aboutsummaryrefslogtreecommitdiffstats
path: root/vendor
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-10-29 01:05:01 +0800
committerFelix Lange <fjl@twurst.com>2016-10-29 01:05:01 +0800
commit289b30715d097edafd5562f66cb3567a70b2d330 (patch)
tree7eaaa6da97c84727469303b986e364606ece57ce /vendor
parent77703045765343c489ded2f43e3ed0f332c5f148 (diff)
downloaddexon-289b30715d097edafd5562f66cb3567a70b2d330.tar
dexon-289b30715d097edafd5562f66cb3567a70b2d330.tar.gz
dexon-289b30715d097edafd5562f66cb3567a70b2d330.tar.bz2
dexon-289b30715d097edafd5562f66cb3567a70b2d330.tar.lz
dexon-289b30715d097edafd5562f66cb3567a70b2d330.tar.xz
dexon-289b30715d097edafd5562f66cb3567a70b2d330.tar.zst
dexon-289b30715d097edafd5562f66cb3567a70b2d330.zip
Godeps, vendor: convert dependency management to trash (#3198)
This commit converts the dependency management from Godeps to the vendor folder, also switching the tool from godep to trash. Since the upstream tool lacks a few features proposed via a few PRs, until those PRs are merged in (if), use github.com/karalabe/trash. You can update dependencies via trash --update. All dependencies have been updated to their latest version. Parts of the build system are reworked to drop old notions of Godeps and invocation of the go vet command so that it doesn't run against the vendor folder, as that will just blow up during vetting. The conversion drops OpenCL (and hence GPU mining support) from ethash and our codebase. The short reasoning is that there's noone to maintain and having opencl libs in our deps messes up builds as go install ./... tries to build them, failing with unsatisfied link errors for the C OpenCL deps. golang.org/x/net/context is not vendored in. We expect it to be fetched by the user (i.e. using go get). To keep ci.go builds reproducible the package is "vendored" in build/_vendor.
Diffstat (limited to 'vendor')
-rw-r--r--vendor/github.com/cespare/cp/LICENSE.txt19
-rw-r--r--vendor/github.com/cespare/cp/README.md9
-rw-r--r--vendor/github.com/cespare/cp/cp.go58
-rw-r--r--vendor/github.com/davecgh/go-spew/.gitignore22
-rw-r--r--vendor/github.com/davecgh/go-spew/.travis.yml14
-rw-r--r--vendor/github.com/davecgh/go-spew/LICENSE15
-rw-r--r--vendor/github.com/davecgh/go-spew/README.md194
-rw-r--r--vendor/github.com/davecgh/go-spew/cov_report.sh22
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/bypass.go152
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/bypasssafe.go38
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/common.go341
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/config.go297
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/doc.go202
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/dump.go509
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/format.go419
-rw-r--r--vendor/github.com/davecgh/go-spew/spew/spew.go148
-rw-r--r--vendor/github.com/davecgh/go-spew/test_coverage.txt61
-rw-r--r--vendor/github.com/ethereum/ethash/.gitignore12
-rw-r--r--vendor/github.com/ethereum/ethash/.travis.yml23
-rw-r--r--vendor/github.com/ethereum/ethash/CMakeLists.txt14
-rw-r--r--vendor/github.com/ethereum/ethash/MANIFEST.in17
-rw-r--r--vendor/github.com/ethereum/ethash/Makefile6
-rw-r--r--vendor/github.com/ethereum/ethash/README.md22
-rw-r--r--vendor/github.com/ethereum/ethash/Vagrantfile7
-rw-r--r--vendor/github.com/ethereum/ethash/appveyor.yml43
-rw-r--r--vendor/github.com/ethereum/ethash/ethash.go441
-rw-r--r--vendor/github.com/ethereum/ethash/ethashc.go51
-rwxr-xr-xvendor/github.com/ethereum/ethash/setup.py47
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/CMakeLists.txt44
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/compiler.h33
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/data_sizes.h812
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/endian.h78
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/ethash.h147
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/fnv.h43
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/internal.c507
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/internal.h179
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/io.c119
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/io.h202
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/io_posix.c111
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/io_win32.c100
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/mmap.h47
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/mmap_win32.c84
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/sha3.c151
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/sha3.h31
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.cpp37
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.h18
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/util.h47
-rw-r--r--vendor/github.com/ethereum/ethash/src/libethash/util_win32.c38
-rw-r--r--vendor/github.com/fatih/color/.travis.yml5
-rw-r--r--vendor/github.com/fatih/color/LICENSE.md20
-rw-r--r--vendor/github.com/fatih/color/README.md154
-rw-r--r--vendor/github.com/fatih/color/color.go423
-rw-r--r--vendor/github.com/fatih/color/doc.go114
-rw-r--r--vendor/github.com/gizak/termui/.gitignore26
-rw-r--r--vendor/github.com/gizak/termui/.travis.yml6
-rw-r--r--vendor/github.com/gizak/termui/LICENSE22
-rw-r--r--vendor/github.com/gizak/termui/README.md150
-rw-r--r--vendor/github.com/gizak/termui/barchart.go149
-rw-r--r--vendor/github.com/gizak/termui/block.go240
-rw-r--r--vendor/github.com/gizak/termui/block_common.go20
-rw-r--r--vendor/github.com/gizak/termui/block_windows.go14
-rw-r--r--vendor/github.com/gizak/termui/buffer.go106
-rw-r--r--vendor/github.com/gizak/termui/canvas.go72
-rwxr-xr-xvendor/github.com/gizak/termui/config26
-rw-r--r--vendor/github.com/gizak/termui/doc.go29
-rw-r--r--vendor/github.com/gizak/termui/events.go323
-rw-r--r--vendor/github.com/gizak/termui/gauge.go109
-rw-r--r--vendor/github.com/gizak/termui/glide.lock14
-rw-r--r--vendor/github.com/gizak/termui/glide.yaml8
-rw-r--r--vendor/github.com/gizak/termui/grid.go279
-rw-r--r--vendor/github.com/gizak/termui/helper.go222
-rw-r--r--vendor/github.com/gizak/termui/linechart.go331
-rw-r--r--vendor/github.com/gizak/termui/linechart_others.go11
-rw-r--r--vendor/github.com/gizak/termui/linechart_windows.go11
-rw-r--r--vendor/github.com/gizak/termui/list.go89
-rw-r--r--vendor/github.com/gizak/termui/mbarchart.go242
-rw-r--r--vendor/github.com/gizak/termui/mkdocs.yml28
-rw-r--r--vendor/github.com/gizak/termui/par.go73
-rw-r--r--vendor/github.com/gizak/termui/pos.go78
-rw-r--r--vendor/github.com/gizak/termui/render.go135
-rw-r--r--vendor/github.com/gizak/termui/sparkline.go167
-rw-r--r--vendor/github.com/gizak/termui/textbuilder.go278
-rw-r--r--vendor/github.com/gizak/termui/theme.go140
-rw-r--r--vendor/github.com/gizak/termui/widget.go94
-rw-r--r--vendor/github.com/golang/snappy/.gitignore16
-rw-r--r--vendor/github.com/golang/snappy/AUTHORS15
-rw-r--r--vendor/github.com/golang/snappy/CONTRIBUTORS37
-rw-r--r--vendor/github.com/golang/snappy/LICENSE27
-rw-r--r--vendor/github.com/golang/snappy/README107
-rw-r--r--vendor/github.com/golang/snappy/decode.go237
-rw-r--r--vendor/github.com/golang/snappy/decode_amd64.go14
-rw-r--r--vendor/github.com/golang/snappy/decode_amd64.s490
-rw-r--r--vendor/github.com/golang/snappy/decode_other.go101
-rw-r--r--vendor/github.com/golang/snappy/encode.go285
-rw-r--r--vendor/github.com/golang/snappy/encode_amd64.go29
-rw-r--r--vendor/github.com/golang/snappy/encode_amd64.s730
-rw-r--r--vendor/github.com/golang/snappy/encode_other.go238
-rw-r--r--vendor/github.com/golang/snappy/snappy.go87
-rw-r--r--vendor/github.com/hashicorp/golang-lru/.gitignore23
-rw-r--r--vendor/github.com/hashicorp/golang-lru/2q.go212
-rw-r--r--vendor/github.com/hashicorp/golang-lru/LICENSE362
-rw-r--r--vendor/github.com/hashicorp/golang-lru/README.md25
-rw-r--r--vendor/github.com/hashicorp/golang-lru/arc.go257
-rw-r--r--vendor/github.com/hashicorp/golang-lru/lru.go114
-rw-r--r--vendor/github.com/hashicorp/golang-lru/simplelru/lru.go160
-rw-r--r--vendor/github.com/huin/goupnp/.gitignore1
-rw-r--r--vendor/github.com/huin/goupnp/LICENSE23
-rw-r--r--vendor/github.com/huin/goupnp/README.md44
-rw-r--r--vendor/github.com/huin/goupnp/dcps/internetgateway1/internetgateway1.go3717
-rw-r--r--vendor/github.com/huin/goupnp/dcps/internetgateway2/internetgateway2.go5378
-rw-r--r--vendor/github.com/huin/goupnp/device.go184
-rw-r--r--vendor/github.com/huin/goupnp/goupnp.go131
-rw-r--r--vendor/github.com/huin/goupnp/httpu/httpu.go132
-rw-r--r--vendor/github.com/huin/goupnp/httpu/serve.go108
-rw-r--r--vendor/github.com/huin/goupnp/scpd/scpd.go167
-rw-r--r--vendor/github.com/huin/goupnp/service_client.go88
-rw-r--r--vendor/github.com/huin/goupnp/soap/soap.go157
-rw-r--r--vendor/github.com/huin/goupnp/soap/types.go519
-rw-r--r--vendor/github.com/huin/goupnp/ssdp/registry.go312
-rw-r--r--vendor/github.com/huin/goupnp/ssdp/ssdp.go83
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/.travis.yml13
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/LICENSE13
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/README.md52
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/natpmp.go153
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/network.go89
-rw-r--r--vendor/github.com/jackpal/go-nat-pmp/recorder.go19
-rw-r--r--vendor/github.com/mattn/go-colorable/.travis.yml8
-rw-r--r--vendor/github.com/mattn/go-colorable/LICENSE21
-rw-r--r--vendor/github.com/mattn/go-colorable/README.md43
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_others.go24
-rw-r--r--vendor/github.com/mattn/go-colorable/colorable_windows.go810
-rw-r--r--vendor/github.com/mattn/go-colorable/noncolorable.go58
-rw-r--r--vendor/github.com/mattn/go-isatty/LICENSE9
-rw-r--r--vendor/github.com/mattn/go-isatty/README.md37
-rw-r--r--vendor/github.com/mattn/go-isatty/doc.go2
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_appengine.go9
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_bsd.go18
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_linux.go18
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_solaris.go16
-rw-r--r--vendor/github.com/mattn/go-isatty/isatty_windows.go19
-rw-r--r--vendor/github.com/mattn/go-runewidth/.travis.yml8
-rw-r--r--vendor/github.com/mattn/go-runewidth/LICENSE21
-rw-r--r--vendor/github.com/mattn/go-runewidth/README.mkd27
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth.go481
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth_js.go8
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth_posix.go77
-rw-r--r--vendor/github.com/mattn/go-runewidth/runewidth_windows.go25
-rw-r--r--vendor/github.com/mitchellh/go-wordwrap/LICENSE.md21
-rw-r--r--vendor/github.com/mitchellh/go-wordwrap/README.md39
-rw-r--r--vendor/github.com/mitchellh/go-wordwrap/wordwrap.go73
-rw-r--r--vendor/github.com/nsf/termbox-go/AUTHORS4
-rw-r--r--vendor/github.com/nsf/termbox-go/LICENSE19
-rw-r--r--vendor/github.com/nsf/termbox-go/README.md29
-rw-r--r--vendor/github.com/nsf/termbox-go/api.go458
-rw-r--r--vendor/github.com/nsf/termbox-go/api_common.go187
-rw-r--r--vendor/github.com/nsf/termbox-go/api_windows.go239
-rwxr-xr-xvendor/github.com/nsf/termbox-go/collect_terminfo.py110
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls.go39
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_darwin.go41
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_darwin_amd64.go40
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_dragonfly.go39
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_freebsd.go39
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_linux.go33
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_netbsd.go39
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_openbsd.go39
-rw-r--r--vendor/github.com/nsf/termbox-go/syscalls_windows.go61
-rw-r--r--vendor/github.com/nsf/termbox-go/termbox.go514
-rw-r--r--vendor/github.com/nsf/termbox-go/termbox_common.go59
-rw-r--r--vendor/github.com/nsf/termbox-go/termbox_windows.go856
-rw-r--r--vendor/github.com/nsf/termbox-go/terminfo.go221
-rw-r--r--vendor/github.com/nsf/termbox-go/terminfo_builtin.go64
-rw-r--r--vendor/github.com/pborman/uuid/.travis.yml9
-rw-r--r--vendor/github.com/pborman/uuid/CONTRIBUTING.md10
-rw-r--r--vendor/github.com/pborman/uuid/CONTRIBUTORS1
-rw-r--r--vendor/github.com/pborman/uuid/LICENSE27
-rw-r--r--vendor/github.com/pborman/uuid/README.md13
-rw-r--r--vendor/github.com/pborman/uuid/dce.go84
-rw-r--r--vendor/github.com/pborman/uuid/doc.go8
-rw-r--r--vendor/github.com/pborman/uuid/hash.go53
-rw-r--r--vendor/github.com/pborman/uuid/json.go34
-rw-r--r--vendor/github.com/pborman/uuid/node.go117
-rw-r--r--vendor/github.com/pborman/uuid/sql.go66
-rw-r--r--vendor/github.com/pborman/uuid/time.go132
-rw-r--r--vendor/github.com/pborman/uuid/util.go43
-rw-r--r--vendor/github.com/pborman/uuid/uuid.go201
-rw-r--r--vendor/github.com/pborman/uuid/version1.go41
-rw-r--r--vendor/github.com/pborman/uuid/version4.go25
-rw-r--r--vendor/github.com/peterh/liner/COPYING21
-rw-r--r--vendor/github.com/peterh/liner/README.md100
-rw-r--r--vendor/github.com/peterh/liner/bsdinput.go41
-rw-r--r--vendor/github.com/peterh/liner/common.go237
-rw-r--r--vendor/github.com/peterh/liner/fallbackinput.go57
-rw-r--r--vendor/github.com/peterh/liner/input.go367
-rw-r--r--vendor/github.com/peterh/liner/input_darwin.go43
-rw-r--r--vendor/github.com/peterh/liner/input_linux.go28
-rw-r--r--vendor/github.com/peterh/liner/input_windows.go324
-rw-r--r--vendor/github.com/peterh/liner/line.go1033
-rw-r--r--vendor/github.com/peterh/liner/output.go79
-rw-r--r--vendor/github.com/peterh/liner/output_windows.go76
-rw-r--r--vendor/github.com/peterh/liner/signal.go12
-rw-r--r--vendor/github.com/peterh/liner/signal_legacy.go11
-rw-r--r--vendor/github.com/peterh/liner/unixmode.go37
-rw-r--r--vendor/github.com/peterh/liner/width.go79
-rw-r--r--vendor/github.com/rcrowley/go-metrics/.gitignore9
-rw-r--r--vendor/github.com/rcrowley/go-metrics/.travis.yml14
-rw-r--r--vendor/github.com/rcrowley/go-metrics/LICENSE29
-rw-r--r--vendor/github.com/rcrowley/go-metrics/README.md153
-rw-r--r--vendor/github.com/rcrowley/go-metrics/counter.go112
-rw-r--r--vendor/github.com/rcrowley/go-metrics/debug.go76
-rw-r--r--vendor/github.com/rcrowley/go-metrics/ewma.go118
-rw-r--r--vendor/github.com/rcrowley/go-metrics/exp/exp.go156
-rw-r--r--vendor/github.com/rcrowley/go-metrics/gauge.go120
-rw-r--r--vendor/github.com/rcrowley/go-metrics/gauge_float64.go127
-rw-r--r--vendor/github.com/rcrowley/go-metrics/graphite.go113
-rw-r--r--vendor/github.com/rcrowley/go-metrics/healthcheck.go61
-rw-r--r--vendor/github.com/rcrowley/go-metrics/histogram.go202
-rw-r--r--vendor/github.com/rcrowley/go-metrics/json.go87
-rw-r--r--vendor/github.com/rcrowley/go-metrics/log.go80
-rw-r--r--vendor/github.com/rcrowley/go-metrics/memory.md285
-rw-r--r--vendor/github.com/rcrowley/go-metrics/meter.go233
-rw-r--r--vendor/github.com/rcrowley/go-metrics/metrics.go13
-rw-r--r--vendor/github.com/rcrowley/go-metrics/opentsdb.go119
-rw-r--r--vendor/github.com/rcrowley/go-metrics/registry.go270
-rw-r--r--vendor/github.com/rcrowley/go-metrics/runtime.go212
-rw-r--r--vendor/github.com/rcrowley/go-metrics/runtime_cgo.go10
-rw-r--r--vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go9
-rw-r--r--vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go7
-rw-r--r--vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go9
-rw-r--r--vendor/github.com/rcrowley/go-metrics/sample.go609
-rw-r--r--vendor/github.com/rcrowley/go-metrics/syslog.go78
-rw-r--r--vendor/github.com/rcrowley/go-metrics/timer.go311
-rwxr-xr-xvendor/github.com/rcrowley/go-metrics/validate.sh10
-rw-r--r--vendor/github.com/rcrowley/go-metrics/writer.go100
-rw-r--r--vendor/github.com/rjeczalik/notify/.gitignore88
-rw-r--r--vendor/github.com/rjeczalik/notify/.travis.yml29
-rw-r--r--vendor/github.com/rjeczalik/notify/AUTHORS10
-rw-r--r--vendor/github.com/rjeczalik/notify/LICENSE21
-rw-r--r--vendor/github.com/rjeczalik/notify/README.md21
-rw-r--r--vendor/github.com/rjeczalik/notify/appveyor.yml23
-rw-r--r--vendor/github.com/rjeczalik/notify/debug.go11
-rw-r--r--vendor/github.com/rjeczalik/notify/debug_debug.go43
-rw-r--r--vendor/github.com/rjeczalik/notify/doc.go40
-rw-r--r--vendor/github.com/rjeczalik/notify/event.go143
-rw-r--r--vendor/github.com/rjeczalik/notify/event_fen.go46
-rw-r--r--vendor/github.com/rjeczalik/notify/event_fsevents.go71
-rw-r--r--vendor/github.com/rjeczalik/notify/event_inotify.go75
-rw-r--r--vendor/github.com/rjeczalik/notify/event_kqueue.go59
-rw-r--r--vendor/github.com/rjeczalik/notify/event_readdcw.go108
-rw-r--r--vendor/github.com/rjeczalik/notify/event_stub.go31
-rw-r--r--vendor/github.com/rjeczalik/notify/event_trigger.go22
-rw-r--r--vendor/github.com/rjeczalik/notify/node.go272
-rw-r--r--vendor/github.com/rjeczalik/notify/notify.go74
-rw-r--r--vendor/github.com/rjeczalik/notify/tree.go22
-rw-r--r--vendor/github.com/rjeczalik/notify/tree_nonrecursive.go292
-rw-r--r--vendor/github.com/rjeczalik/notify/tree_recursive.go354
-rw-r--r--vendor/github.com/rjeczalik/notify/util.go150
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher.go85
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_fen.go170
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_fen_cgo.go141
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_fsevents.go319
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go190
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_inotify.go396
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_kqueue.go192
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_readdcw.go574
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_stub.go23
-rw-r--r--vendor/github.com/rjeczalik/notify/watcher_trigger.go438
-rw-r--r--vendor/github.com/rjeczalik/notify/watchpoint.go103
-rw-r--r--vendor/github.com/rjeczalik/notify/watchpoint_other.go23
-rw-r--r--vendor/github.com/rjeczalik/notify/watchpoint_readdcw.go38
-rw-r--r--vendor/github.com/robertkrimen/otto/.gitignore5
-rw-r--r--vendor/github.com/robertkrimen/otto/DESIGN.markdown1
-rw-r--r--vendor/github.com/robertkrimen/otto/LICENSE7
-rw-r--r--vendor/github.com/robertkrimen/otto/Makefile63
-rw-r--r--vendor/github.com/robertkrimen/otto/README.markdown871
-rw-r--r--vendor/github.com/robertkrimen/otto/ast/README.markdown1068
-rw-r--r--vendor/github.com/robertkrimen/otto/ast/comments.go278
-rw-r--r--vendor/github.com/robertkrimen/otto/ast/node.go515
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin.go353
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_array.go681
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_boolean.go28
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_date.go615
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_error.go126
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_function.go129
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_json.go299
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_math.go151
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_number.go93
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_object.go289
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_regexp.go65
-rw-r--r--vendor/github.com/robertkrimen/otto/builtin_string.go495
-rw-r--r--vendor/github.com/robertkrimen/otto/clone.go173
-rw-r--r--vendor/github.com/robertkrimen/otto/cmpl.go24
-rw-r--r--vendor/github.com/robertkrimen/otto/cmpl_evaluate.go96
-rw-r--r--vendor/github.com/robertkrimen/otto/cmpl_evaluate_expression.go460
-rw-r--r--vendor/github.com/robertkrimen/otto/cmpl_evaluate_statement.go424
-rw-r--r--vendor/github.com/robertkrimen/otto/cmpl_parse.go656
-rw-r--r--vendor/github.com/robertkrimen/otto/console.go51
-rw-r--r--vendor/github.com/robertkrimen/otto/dbg.go9
-rw-r--r--vendor/github.com/robertkrimen/otto/dbg/dbg.go387
-rw-r--r--vendor/github.com/robertkrimen/otto/error.go252
-rw-r--r--vendor/github.com/robertkrimen/otto/evaluate.go318
-rw-r--r--vendor/github.com/robertkrimen/otto/file/README.markdown110
-rw-r--r--vendor/github.com/robertkrimen/otto/file/file.go164
-rw-r--r--vendor/github.com/robertkrimen/otto/global.go221
-rw-r--r--vendor/github.com/robertkrimen/otto/inline.go6649
-rwxr-xr-xvendor/github.com/robertkrimen/otto/inline.pl1086
-rw-r--r--vendor/github.com/robertkrimen/otto/object.go156
-rw-r--r--vendor/github.com/robertkrimen/otto/object_class.go493
-rw-r--r--vendor/github.com/robertkrimen/otto/otto.go770
-rw-r--r--vendor/github.com/robertkrimen/otto/otto_.go178
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/Makefile4
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/README.markdown190
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/dbg.go9
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/error.go175
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/expression.go1005
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/lexer.go866
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/parser.go344
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/regexp.go358
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/scope.go44
-rw-r--r--vendor/github.com/robertkrimen/otto/parser/statement.go938
-rw-r--r--vendor/github.com/robertkrimen/otto/property.go220
-rw-r--r--vendor/github.com/robertkrimen/otto/registry/README.markdown51
-rw-r--r--vendor/github.com/robertkrimen/otto/registry/registry.go47
-rw-r--r--vendor/github.com/robertkrimen/otto/result.go30
-rw-r--r--vendor/github.com/robertkrimen/otto/runtime.go711
-rw-r--r--vendor/github.com/robertkrimen/otto/scope.go35
-rw-r--r--vendor/github.com/robertkrimen/otto/script.go119
-rw-r--r--vendor/github.com/robertkrimen/otto/stash.go296
-rw-r--r--vendor/github.com/robertkrimen/otto/token/Makefile2
-rw-r--r--vendor/github.com/robertkrimen/otto/token/README.markdown171
-rw-r--r--vendor/github.com/robertkrimen/otto/token/token.go116
-rw-r--r--vendor/github.com/robertkrimen/otto/token/token_const.go349
-rwxr-xr-xvendor/github.com/robertkrimen/otto/token/tokenfmt222
-rw-r--r--vendor/github.com/robertkrimen/otto/type_arguments.go106
-rw-r--r--vendor/github.com/robertkrimen/otto/type_array.go109
-rw-r--r--vendor/github.com/robertkrimen/otto/type_boolean.go13
-rw-r--r--vendor/github.com/robertkrimen/otto/type_date.go299
-rw-r--r--vendor/github.com/robertkrimen/otto/type_error.go24
-rw-r--r--vendor/github.com/robertkrimen/otto/type_function.go292
-rw-r--r--vendor/github.com/robertkrimen/otto/type_go_array.go134
-rw-r--r--vendor/github.com/robertkrimen/otto/type_go_map.go87
-rw-r--r--vendor/github.com/robertkrimen/otto/type_go_slice.go126
-rw-r--r--vendor/github.com/robertkrimen/otto/type_go_struct.go146
-rw-r--r--vendor/github.com/robertkrimen/otto/type_number.go5
-rw-r--r--vendor/github.com/robertkrimen/otto/type_reference.go103
-rw-r--r--vendor/github.com/robertkrimen/otto/type_regexp.go146
-rw-r--r--vendor/github.com/robertkrimen/otto/type_string.go112
-rw-r--r--vendor/github.com/robertkrimen/otto/value.go1033
-rw-r--r--vendor/github.com/robertkrimen/otto/value_boolean.go40
-rw-r--r--vendor/github.com/robertkrimen/otto/value_number.go324
-rw-r--r--vendor/github.com/robertkrimen/otto/value_primitive.go23
-rw-r--r--vendor/github.com/robertkrimen/otto/value_string.go103
-rw-r--r--vendor/github.com/rs/cors/.travis.yml4
-rw-r--r--vendor/github.com/rs/cors/LICENSE19
-rw-r--r--vendor/github.com/rs/cors/README.md99
-rw-r--r--vendor/github.com/rs/cors/cors.go412
-rw-r--r--vendor/github.com/rs/cors/utils.go70
-rw-r--r--vendor/github.com/rs/xhandler/.travis.yml7
-rw-r--r--vendor/github.com/rs/xhandler/LICENSE19
-rw-r--r--vendor/github.com/rs/xhandler/README.md134
-rw-r--r--vendor/github.com/rs/xhandler/chain.go121
-rw-r--r--vendor/github.com/rs/xhandler/middleware.go59
-rw-r--r--vendor/github.com/rs/xhandler/xhandler.go42
-rw-r--r--vendor/github.com/syndtr/goleveldb/.travis.yml12
-rw-r--r--vendor/github.com/syndtr/goleveldb/LICENSE24
-rw-r--r--vendor/github.com/syndtr/goleveldb/README.md105
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/batch.go349
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go705
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go195
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/comparer.go67
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go51
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go57
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db.go1091
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go826
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go360
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go183
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_state.go234
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go325
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_util.go102
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/db_write.go443
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/doc.go90
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/errors.go20
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go78
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/filter.go31
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go116
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go60
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go184
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go242
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go132
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go304
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go524
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/key.go143
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go475
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go684
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/options.go107
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/session.go208
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go302
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/session_record.go323
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/session_util.go258
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go583
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go34
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go65
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go81
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go86
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go78
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go218
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go179
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/table.go529
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go1134
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/table/table.go177
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go375
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util.go98
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go293
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go239
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go30
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go48
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/range.go32
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/util/util.go73
-rw-r--r--vendor/github.com/syndtr/goleveldb/leveldb/version.go524
-rw-r--r--vendor/golang.org/x/crypto/.gitattributes10
-rw-r--r--vendor/golang.org/x/crypto/.gitignore2
-rw-r--r--vendor/golang.org/x/crypto/AUTHORS3
-rw-r--r--vendor/golang.org/x/crypto/CONTRIBUTING.md31
-rw-r--r--vendor/golang.org/x/crypto/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/crypto/LICENSE27
-rw-r--r--vendor/golang.org/x/crypto/PATENTS22
-rw-r--r--vendor/golang.org/x/crypto/README3
-rw-r--r--vendor/golang.org/x/crypto/codereview.cfg1
-rw-r--r--vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go77
-rw-r--r--vendor/golang.org/x/crypto/ripemd160/ripemd160.go120
-rw-r--r--vendor/golang.org/x/crypto/ripemd160/ripemd160block.go161
-rw-r--r--vendor/golang.org/x/crypto/scrypt/scrypt.go243
-rw-r--r--vendor/golang.org/x/net/.gitattributes10
-rw-r--r--vendor/golang.org/x/net/.gitignore2
-rw-r--r--vendor/golang.org/x/net/AUTHORS3
-rw-r--r--vendor/golang.org/x/net/CONTRIBUTING.md31
-rw-r--r--vendor/golang.org/x/net/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/net/LICENSE27
-rw-r--r--vendor/golang.org/x/net/PATENTS22
-rw-r--r--vendor/golang.org/x/net/README3
-rw-r--r--vendor/golang.org/x/net/codereview.cfg1
-rw-r--r--vendor/golang.org/x/net/html/atom/atom.go78
-rw-r--r--vendor/golang.org/x/net/html/atom/gen.go648
-rw-r--r--vendor/golang.org/x/net/html/atom/table.go713
-rw-r--r--vendor/golang.org/x/net/html/charset/charset.go257
-rw-r--r--vendor/golang.org/x/net/html/const.go102
-rw-r--r--vendor/golang.org/x/net/html/doc.go106
-rw-r--r--vendor/golang.org/x/net/html/doctype.go156
-rw-r--r--vendor/golang.org/x/net/html/entity.go2253
-rw-r--r--vendor/golang.org/x/net/html/escape.go258
-rw-r--r--vendor/golang.org/x/net/html/foreign.go226
-rw-r--r--vendor/golang.org/x/net/html/node.go193
-rw-r--r--vendor/golang.org/x/net/html/parse.go2094
-rw-r--r--vendor/golang.org/x/net/html/render.go271
-rw-r--r--vendor/golang.org/x/net/html/token.go1219
-rw-r--r--vendor/golang.org/x/net/websocket/client.go106
-rw-r--r--vendor/golang.org/x/net/websocket/dial.go24
-rw-r--r--vendor/golang.org/x/net/websocket/hybi.go583
-rw-r--r--vendor/golang.org/x/net/websocket/server.go113
-rw-r--r--vendor/golang.org/x/net/websocket/websocket.go442
-rw-r--r--vendor/golang.org/x/sys/.gitattributes10
-rw-r--r--vendor/golang.org/x/sys/.gitignore2
-rw-r--r--vendor/golang.org/x/sys/AUTHORS3
-rw-r--r--vendor/golang.org/x/sys/CONTRIBUTING.md31
-rw-r--r--vendor/golang.org/x/sys/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/sys/LICENSE27
-rw-r--r--vendor/golang.org/x/sys/PATENTS22
-rw-r--r--vendor/golang.org/x/sys/README3
-rw-r--r--vendor/golang.org/x/sys/codereview.cfg1
-rw-r--r--vendor/golang.org/x/sys/unix/.gitignore1
-rw-r--r--vendor/golang.org/x/sys/unix/asm.s10
-rw-r--r--vendor/golang.org/x/sys/unix/asm_darwin_386.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_darwin_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_darwin_arm.s30
-rw-r--r--vendor/golang.org/x/sys/unix/asm_darwin_arm64.s30
-rw-r--r--vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_freebsd_386.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_freebsd_arm.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_386.s35
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_arm.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_arm64.s24
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_mips64x.s28
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s28
-rw-r--r--vendor/golang.org/x/sys/unix/asm_linux_s390x.s28
-rw-r--r--vendor/golang.org/x/sys/unix/asm_netbsd_386.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_netbsd_arm.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_openbsd_386.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s29
-rw-r--r--vendor/golang.org/x/sys/unix/asm_solaris_amd64.s17
-rw-r--r--vendor/golang.org/x/sys/unix/bluetooth_linux.go35
-rw-r--r--vendor/golang.org/x/sys/unix/constants.go13
-rw-r--r--vendor/golang.org/x/sys/unix/env_unix.go27
-rw-r--r--vendor/golang.org/x/sys/unix/env_unset.go14
-rw-r--r--vendor/golang.org/x/sys/unix/flock.go24
-rw-r--r--vendor/golang.org/x/sys/unix/flock_linux_32bit.go13
-rw-r--r--vendor/golang.org/x/sys/unix/gccgo.go46
-rw-r--r--vendor/golang.org/x/sys/unix/gccgo_c.c41
-rw-r--r--vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go20
-rw-r--r--vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go20
-rwxr-xr-xvendor/golang.org/x/sys/unix/mkall.sh292
-rwxr-xr-xvendor/golang.org/x/sys/unix/mkerrors.sh483
-rw-r--r--vendor/golang.org/x/sys/unix/mkpost.go62
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksyscall.pl323
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksyscall_solaris.pl294
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysctl_openbsd.pl264
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_darwin.pl39
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl50
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_freebsd.pl63
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_linux.pl58
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_netbsd.pl58
-rwxr-xr-xvendor/golang.org/x/sys/unix/mksysnum_openbsd.pl50
-rw-r--r--vendor/golang.org/x/sys/unix/race.go30
-rw-r--r--vendor/golang.org/x/sys/unix/race0.go25
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_linux.go36
-rw-r--r--vendor/golang.org/x/sys/unix/sockcmsg_unix.go103
-rw-r--r--vendor/golang.org/x/sys/unix/str.go26
-rw-r--r--vendor/golang.org/x/sys/unix/syscall.go76
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_bsd.go628
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin.go511
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_386.go77
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go79
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm.go71
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go77
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_dragonfly.go412
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd.go683
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_386.go61
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go61
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go61
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux.go1110
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_386.go399
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_amd64.go157
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_arm.go263
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_arm64.go190
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go208
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go135
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_s390x.go329
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go169
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd.go492
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_386.go42
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go42
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go42
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_no_getwd.go11
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd.go304
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_386.go42
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go42
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_solaris.go725
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go35
-rw-r--r--vendor/golang.org/x/sys/unix/syscall_unix.go297
-rw-r--r--vendor/golang.org/x/sys/unix/types_darwin.go250
-rw-r--r--vendor/golang.org/x/sys/unix/types_dragonfly.go242
-rw-r--r--vendor/golang.org/x/sys/unix/types_freebsd.go353
-rw-r--r--vendor/golang.org/x/sys/unix/types_linux.go457
-rw-r--r--vendor/golang.org/x/sys/unix/types_netbsd.go232
-rw-r--r--vendor/golang.org/x/sys/unix/types_openbsd.go244
-rw-r--r--vendor/golang.org/x/sys/unix/types_solaris.go262
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_386.go1576
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go1576
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go1293
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go1576
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go1530
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go1743
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go1748
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go1729
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_386.go1819
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go1820
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm.go1743
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go1897
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go1917
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go1917
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go1970
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go1969
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go2027
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go2077
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go1712
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go1702
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go1688
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go1584
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go1583
-rw-r--r--vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go1436
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go1427
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go1443
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go1427
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go1427
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go1413
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go1665
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go1665
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go1665
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_386.go1660
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go1854
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go1761
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go1734
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go1803
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go1803
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go1865
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go1865
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go1645
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go1834
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go1327
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go1327
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go1327
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go1387
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go1387
-rw-r--r--vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go1599
-rw-r--r--vendor/golang.org/x/sys/unix/zsysctl_openbsd.go270
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go398
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go398
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go358
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go398
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go304
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go351
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go351
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go351
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_386.go355
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go321
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go356
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go272
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go327
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go327
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go360
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go353
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go328
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go348
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go273
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go273
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go273
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go207
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go207
-rw-r--r--vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go13
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_386.go447
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go462
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go449
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go457
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go443
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go502
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go505
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go497
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_386.go627
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go645
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm.go616
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go624
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go627
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go627
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go634
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go634
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go649
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go640
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go396
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go403
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go401
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go441
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go448
-rw-r--r--vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go423
-rw-r--r--vendor/golang.org/x/text/.gitattributes10
-rw-r--r--vendor/golang.org/x/text/.gitignore3
-rw-r--r--vendor/golang.org/x/text/AUTHORS3
-rw-r--r--vendor/golang.org/x/text/CONTRIBUTING.md31
-rw-r--r--vendor/golang.org/x/text/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/text/LICENSE27
-rw-r--r--vendor/golang.org/x/text/PATENTS22
-rw-r--r--vendor/golang.org/x/text/README23
-rw-r--r--vendor/golang.org/x/text/codereview.cfg1
-rw-r--r--vendor/golang.org/x/text/encoding/charmap/charmap.go209
-rw-r--r--vendor/golang.org/x/text/encoding/charmap/maketables.go524
-rw-r--r--vendor/golang.org/x/text/encoding/charmap/tables.go6706
-rw-r--r--vendor/golang.org/x/text/encoding/encoding.go335
-rw-r--r--vendor/golang.org/x/text/encoding/htmlindex/gen.go167
-rw-r--r--vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go86
-rw-r--r--vendor/golang.org/x/text/encoding/htmlindex/map.go105
-rw-r--r--vendor/golang.org/x/text/encoding/htmlindex/tables.go352
-rw-r--r--vendor/golang.org/x/text/encoding/internal/identifier/gen.go137
-rw-r--r--vendor/golang.org/x/text/encoding/internal/identifier/identifier.go81
-rw-r--r--vendor/golang.org/x/text/encoding/internal/identifier/mib.go1621
-rw-r--r--vendor/golang.org/x/text/encoding/internal/internal.go75
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/all.go12
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/eucjp.go211
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/iso2022jp.go296
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/maketables.go161
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/shiftjis.go189
-rw-r--r--vendor/golang.org/x/text/encoding/japanese/tables.go26971
-rw-r--r--vendor/golang.org/x/text/encoding/korean/euckr.go178
-rw-r--r--vendor/golang.org/x/text/encoding/korean/maketables.go143
-rw-r--r--vendor/golang.org/x/text/encoding/korean/tables.go34152
-rw-r--r--vendor/golang.org/x/text/encoding/simplifiedchinese/all.go12
-rw-r--r--vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go281
-rw-r--r--vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go240
-rw-r--r--vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go161
-rw-r--r--vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go43999
-rw-r--r--vendor/golang.org/x/text/encoding/traditionalchinese/big5.go198
-rw-r--r--vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go140
-rw-r--r--vendor/golang.org/x/text/encoding/traditionalchinese/tables.go37142
-rw-r--r--vendor/golang.org/x/text/encoding/unicode/override.go82
-rw-r--r--vendor/golang.org/x/text/encoding/unicode/unicode.go434
-rw-r--r--vendor/golang.org/x/text/internal/gen/code.go339
-rw-r--r--vendor/golang.org/x/text/internal/gen/gen.go281
-rw-r--r--vendor/golang.org/x/text/internal/tag/tag.go100
-rw-r--r--vendor/golang.org/x/text/internal/utf8internal/utf8internal.go87
-rw-r--r--vendor/golang.org/x/text/language/Makefile16
-rw-r--r--vendor/golang.org/x/text/language/common.go16
-rw-r--r--vendor/golang.org/x/text/language/coverage.go197
-rw-r--r--vendor/golang.org/x/text/language/gen_common.go20
-rw-r--r--vendor/golang.org/x/text/language/gen_index.go162
-rw-r--r--vendor/golang.org/x/text/language/go1_1.go38
-rw-r--r--vendor/golang.org/x/text/language/go1_2.go11
-rw-r--r--vendor/golang.org/x/text/language/index.go767
-rw-r--r--vendor/golang.org/x/text/language/language.go975
-rw-r--r--vendor/golang.org/x/text/language/lookup.go396
-rw-r--r--vendor/golang.org/x/text/language/maketables.go1648
-rw-r--r--vendor/golang.org/x/text/language/match.go841
-rw-r--r--vendor/golang.org/x/text/language/parse.go859
-rw-r--r--vendor/golang.org/x/text/language/tables.go3547
-rw-r--r--vendor/golang.org/x/text/language/tags.go143
-rw-r--r--vendor/golang.org/x/text/runes/cond.go187
-rw-r--r--vendor/golang.org/x/text/runes/runes.go355
-rw-r--r--vendor/golang.org/x/text/transform/transform.go705
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/base.go100
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/cldr.go130
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/collate.go359
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/decode.go171
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/makexml.go400
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/resolve.go602
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/slice.go144
-rw-r--r--vendor/golang.org/x/text/unicode/cldr/xml.go1456
-rw-r--r--vendor/golang.org/x/tools/.gitattributes10
-rw-r--r--vendor/golang.org/x/tools/.gitignore2
-rw-r--r--vendor/golang.org/x/tools/AUTHORS3
-rw-r--r--vendor/golang.org/x/tools/CONTRIBUTING.md31
-rw-r--r--vendor/golang.org/x/tools/CONTRIBUTORS3
-rw-r--r--vendor/golang.org/x/tools/LICENSE27
-rw-r--r--vendor/golang.org/x/tools/PATENTS22
-rw-r--r--vendor/golang.org/x/tools/README10
-rw-r--r--vendor/golang.org/x/tools/codereview.cfg1
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/enclosing.go627
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/imports.go449
-rw-r--r--vendor/golang.org/x/tools/go/ast/astutil/util.go14
-rw-r--r--vendor/golang.org/x/tools/imports/fastwalk.go172
-rw-r--r--vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go13
-rw-r--r--vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go13
-rw-r--r--vendor/golang.org/x/tools/imports/fastwalk_portable.go29
-rw-r--r--vendor/golang.org/x/tools/imports/fastwalk_unix.go122
-rw-r--r--vendor/golang.org/x/tools/imports/fix.go975
-rw-r--r--vendor/golang.org/x/tools/imports/imports.go289
-rw-r--r--vendor/golang.org/x/tools/imports/mkindex.go173
-rw-r--r--vendor/golang.org/x/tools/imports/mkstdlib.go103
-rw-r--r--vendor/golang.org/x/tools/imports/sortimports.go212
-rw-r--r--vendor/golang.org/x/tools/imports/zstdlib.go9289
-rw-r--r--vendor/gopkg.in/check.v1/.gitignore4
-rw-r--r--vendor/gopkg.in/check.v1/LICENSE25
-rw-r--r--vendor/gopkg.in/check.v1/README.md20
-rw-r--r--vendor/gopkg.in/check.v1/TODO2
-rw-r--r--vendor/gopkg.in/check.v1/benchmark.go187
-rw-r--r--vendor/gopkg.in/check.v1/check.go873
-rw-r--r--vendor/gopkg.in/check.v1/checkers.go458
-rw-r--r--vendor/gopkg.in/check.v1/helpers.go231
-rw-r--r--vendor/gopkg.in/check.v1/printer.go168
-rw-r--r--vendor/gopkg.in/check.v1/reporter.go88
-rw-r--r--vendor/gopkg.in/check.v1/run.go175
-rw-r--r--vendor/gopkg.in/fatih/set.v0/.travis.yml3
-rw-r--r--vendor/gopkg.in/fatih/set.v0/LICENSE.md20
-rw-r--r--vendor/gopkg.in/fatih/set.v0/README.md245
-rw-r--r--vendor/gopkg.in/fatih/set.v0/set.go121
-rw-r--r--vendor/gopkg.in/fatih/set.v0/set_nots.go195
-rw-r--r--vendor/gopkg.in/fatih/set.v0/set_ts.go200
-rwxr-xr-xvendor/gopkg.in/karalabe/cookiejar.v2/LICENSE25
-rwxr-xr-xvendor/gopkg.in/karalabe/cookiejar.v2/README.md109
-rwxr-xr-xvendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque.go66
-rwxr-xr-xvendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack.go91
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/.gitignore22
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/LICENSE.txt8
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/README.md308
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/doc.go50
-rwxr-xr-xvendor/gopkg.in/natefinch/npipe.v2/npipe_windows.go531
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_386.go124
-rw-r--r--vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_amd64.go124
-rw-r--r--vendor/gopkg.in/sourcemap.v1/.travis.yml12
-rw-r--r--vendor/gopkg.in/sourcemap.v1/LICENSE25
-rw-r--r--vendor/gopkg.in/sourcemap.v1/Makefile3
-rw-r--r--vendor/gopkg.in/sourcemap.v1/README.md35
-rw-r--r--vendor/gopkg.in/sourcemap.v1/base64vlq/base64_vlq.go95
-rw-r--r--vendor/gopkg.in/sourcemap.v1/consumer.go312
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/.gitignore2
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/.travis.yml40
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/CHANGELOG.md341
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/LICENSE21
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/README.md1309
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/app.go497
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/appveyor.yml25
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/category.go44
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/cli.go19
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/command.go279
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/context.go549
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/errors.go92
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/flag.go882
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/funcs.go28
-rw-r--r--vendor/gopkg.in/urfave/cli.v1/help.go267
-rwxr-xr-xvendor/gopkg.in/urfave/cli.v1/runtests105
798 files changed, 402364 insertions, 0 deletions
diff --git a/vendor/github.com/cespare/cp/LICENSE.txt b/vendor/github.com/cespare/cp/LICENSE.txt
new file mode 100644
index 000000000..70da676c9
--- /dev/null
+++ b/vendor/github.com/cespare/cp/LICENSE.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2015 Caleb Spare
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/cespare/cp/README.md b/vendor/github.com/cespare/cp/README.md
new file mode 100644
index 000000000..577701fbe
--- /dev/null
+++ b/vendor/github.com/cespare/cp/README.md
@@ -0,0 +1,9 @@
+# cp
+
+[![GoDoc](https://godoc.org/github.com/cespare/cp?status.svg)](https://godoc.org/github.com/cespare/cp)
+
+cp is a small Go package for copying files and directories.
+
+The API may change because I want to add some options in the future (for merging with existing dirs).
+
+It does not currently handle Windows specifically (I think it may require some special treatment).
diff --git a/vendor/github.com/cespare/cp/cp.go b/vendor/github.com/cespare/cp/cp.go
new file mode 100644
index 000000000..d71dbb4ba
--- /dev/null
+++ b/vendor/github.com/cespare/cp/cp.go
@@ -0,0 +1,58 @@
+// Package cp offers simple file and directory copying for Go.
+package cp
+
+import (
+ "errors"
+ "io"
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+var errCopyFileWithDir = errors.New("dir argument to CopyFile")
+
+// CopyFile copies the file with path src to dst. The new file must not exist.
+// It is created with the same permissions as src.
+func CopyFile(dst, src string) error {
+ rf, err := os.Open(src)
+ if err != nil {
+ return err
+ }
+ defer rf.Close()
+ rstat, err := rf.Stat()
+ if err != nil {
+ return err
+ }
+ if rstat.IsDir() {
+ return errCopyFileWithDir
+ }
+
+ wf, err := os.OpenFile(dst, os.O_WRONLY|os.O_CREATE|os.O_EXCL, rstat.Mode())
+ if err != nil {
+ return err
+ }
+ if _, err := io.Copy(wf, rf); err != nil {
+ wf.Close()
+ return err
+ }
+ return wf.Close()
+}
+
+// CopyAll copies the file or (recursively) the directory at src to dst.
+// Permissions are preserved. dst must not already exist.
+func CopyAll(dst, src string) error {
+ return filepath.Walk(src, makeWalkFn(dst, src))
+}
+
+func makeWalkFn(dst, src string) filepath.WalkFunc {
+ return func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ return err
+ }
+ dstPath := filepath.Join(dst, strings.TrimPrefix(path, src))
+ if info.IsDir() {
+ return os.Mkdir(dstPath, info.Mode())
+ }
+ return CopyFile(dstPath, path)
+ }
+}
diff --git a/vendor/github.com/davecgh/go-spew/.gitignore b/vendor/github.com/davecgh/go-spew/.gitignore
new file mode 100644
index 000000000..00268614f
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/.gitignore
@@ -0,0 +1,22 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
diff --git a/vendor/github.com/davecgh/go-spew/.travis.yml b/vendor/github.com/davecgh/go-spew/.travis.yml
new file mode 100644
index 000000000..984e0736e
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/.travis.yml
@@ -0,0 +1,14 @@
+language: go
+go:
+ - 1.5.4
+ - 1.6.3
+ - 1.7
+install:
+ - go get -v golang.org/x/tools/cmd/cover
+script:
+ - go test -v -tags=safe ./spew
+ - go test -v -tags=testcgo ./spew -covermode=count -coverprofile=profile.cov
+after_success:
+ - go get -v github.com/mattn/goveralls
+ - export PATH=$PATH:$HOME/gopath/bin
+ - goveralls -coverprofile=profile.cov -service=travis-ci
diff --git a/vendor/github.com/davecgh/go-spew/LICENSE b/vendor/github.com/davecgh/go-spew/LICENSE
new file mode 100644
index 000000000..bb6733231
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/LICENSE
@@ -0,0 +1,15 @@
+ISC License
+
+Copyright (c) 2012-2013 Dave Collins <dave@davec.name>
+
+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.
diff --git a/vendor/github.com/davecgh/go-spew/README.md b/vendor/github.com/davecgh/go-spew/README.md
new file mode 100644
index 000000000..556170ae6
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/README.md
@@ -0,0 +1,194 @@
+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://web.archive.org/web/20160304013555/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, "<!--\n" + html.EscapeString(spew.Sdump(w)) + "\n-->")
+}
+
+func main() {
+ http.HandleFunc("/", handler)
+ http.ListenAndServe(":8080", nil)
+}
+```
+
+## Sample Dump Output
+
+```
+(main.Foo) {
+ unexportedField: (*main.Bar)(0xf84002e210)({
+ flag: (main.Flag) flagTwo,
+ data: (uintptr) <nil>
+ }),
+ 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 <*><shown>}
+ %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>}
+ %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>}
+ %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>}
+```
+
+## 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 "safe" 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 and when compiled with GopherJS. The
+"safe" 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
new file mode 100644
index 000000000..9579497e4
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/cov_report.sh
@@ -0,0 +1,22 @@
+#!/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/bypass.go b/vendor/github.com/davecgh/go-spew/spew/bypass.go
new file mode 100644
index 000000000..d42a0bc4a
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/bypass.go
@@ -0,0 +1,152 @@
+// Copyright (c) 2015 Dave Collins <dave@davec.name>
+//
+// 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 the code is not running on Google App Engine, compiled by GopherJS, and
+// "-tags safe" is not added to the go build command line. The "disableunsafe"
+// tag is deprecated and thus should not be used.
+// +build !js,!appengine,!safe,!disableunsafe
+
+package spew
+
+import (
+ "reflect"
+ "unsafe"
+)
+
+const (
+ // UnsafeDisabled is a build-time constant which specifies whether or
+ // not access to the unsafe package is available.
+ UnsafeDisabled = false
+
+ // ptrSize is the size of a pointer on the current arch.
+ ptrSize = unsafe.Sizeof((*byte)(nil))
+)
+
+var (
+ // offsetPtr, offsetScalar, and offsetFlag are the offsets for the
+ // internal reflect.Value fields. These values are valid before golang
+ // commit ecccf07e7f9d which changed the format. The are also valid
+ // after commit 82f48826c6c7 which changed the format again to mirror
+ // the original format. Code in the init function updates these offsets
+ // as necessary.
+ offsetPtr = uintptr(ptrSize)
+ offsetScalar = uintptr(0)
+ offsetFlag = uintptr(ptrSize * 2)
+
+ // flagKindWidth and flagKindShift indicate various bits that the
+ // reflect package uses internally to track kind information.
+ //
+ // flagRO indicates whether or not the value field of a reflect.Value is
+ // read-only.
+ //
+ // flagIndir indicates whether the value field of a reflect.Value is
+ // the actual data or a pointer to the data.
+ //
+ // These values are valid before golang commit 90a7c3c86944 which
+ // changed their positions. Code in the init function updates these
+ // flags as necessary.
+ flagKindWidth = uintptr(5)
+ flagKindShift = uintptr(flagKindWidth - 1)
+ flagRO = uintptr(1 << 0)
+ flagIndir = uintptr(1 << 1)
+)
+
+func init() {
+ // Older versions of reflect.Value stored small integers directly in the
+ // ptr field (which is named val in the older versions). Versions
+ // between commits ecccf07e7f9d and 82f48826c6c7 added a new field named
+ // scalar for this purpose which unfortunately came before the flag
+ // field, so the offset of the flag field is different for those
+ // versions.
+ //
+ // This code constructs a new reflect.Value from a known small integer
+ // and checks if the size of the reflect.Value struct indicates it has
+ // the scalar field. When it does, the offsets are updated accordingly.
+ vv := reflect.ValueOf(0xf00)
+ if unsafe.Sizeof(vv) == (ptrSize * 4) {
+ offsetScalar = ptrSize * 2
+ offsetFlag = ptrSize * 3
+ }
+
+ // Commit 90a7c3c86944 changed the flag positions such that the low
+ // order bits are the kind. This code extracts the kind from the flags
+ // field and ensures it's the correct type. When it's not, the flag
+ // order has been changed to the newer format, so the flags are updated
+ // accordingly.
+ upf := unsafe.Pointer(uintptr(unsafe.Pointer(&vv)) + offsetFlag)
+ upfv := *(*uintptr)(upf)
+ flagKindMask := uintptr((1<<flagKindWidth - 1) << flagKindShift)
+ if (upfv&flagKindMask)>>flagKindShift != uintptr(reflect.Int) {
+ flagKindShift = 0
+ flagRO = 1 << 5
+ flagIndir = 1 << 6
+
+ // Commit adf9b30e5594 modified the flags to separate the
+ // flagRO flag into two bits which specifies whether or not the
+ // field is embedded. This causes flagIndir to move over a bit
+ // and means that flagRO is the combination of either of the
+ // original flagRO bit and the new bit.
+ //
+ // This code detects the change by extracting what used to be
+ // the indirect bit to ensure it's set. When it's not, the flag
+ // order has been changed to the newer format, so the flags are
+ // updated accordingly.
+ if upfv&flagIndir == 0 {
+ flagRO = 3 << 5
+ flagIndir = 1 << 7
+ }
+ }
+}
+
+// unsafeReflectValue converts the passed reflect.Value into a one that bypasses
+// the typical safety restrictions preventing access to unaddressable and
+// unexported data. It works by digging the raw pointer to the underlying
+// value out of the protected value and generating a new unprotected (unsafe)
+// reflect.Value to it.
+//
+// This allows us to check for implementations of the Stringer and error
+// interfaces to be used for pretty printing ordinarily unaddressable and
+// inaccessible values such as unexported struct fields.
+func unsafeReflectValue(v reflect.Value) (rv reflect.Value) {
+ indirects := 1
+ vt := v.Type()
+ upv := unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetPtr)
+ rvf := *(*uintptr)(unsafe.Pointer(uintptr(unsafe.Pointer(&v)) + offsetFlag))
+ if rvf&flagIndir != 0 {
+ vt = reflect.PtrTo(v.Type())
+ indirects++
+ } else if offsetScalar != 0 {
+ // The value is in the scalar field when it's not one of the
+ // reference types.
+ switch vt.Kind() {
+ case reflect.Uintptr:
+ case reflect.Chan:
+ case reflect.Func:
+ case reflect.Map:
+ case reflect.Ptr:
+ case reflect.UnsafePointer:
+ default:
+ upv = unsafe.Pointer(uintptr(unsafe.Pointer(&v)) +
+ offsetScalar)
+ }
+ }
+
+ pv := reflect.NewAt(vt, upv)
+ rv = pv
+ for i := 0; i < indirects; i++ {
+ rv = rv.Elem()
+ }
+ return rv
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
new file mode 100644
index 000000000..e47a4e795
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
@@ -0,0 +1,38 @@
+// Copyright (c) 2015 Dave Collins <dave@davec.name>
+//
+// 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 the code is running on Google App Engine, compiled by GopherJS, or
+// "-tags safe" is added to the go build command line. The "disableunsafe"
+// tag is deprecated and thus should not be used.
+// +build js appengine safe disableunsafe
+
+package spew
+
+import "reflect"
+
+const (
+ // UnsafeDisabled is a build-time constant which specifies whether or
+ // not access to the unsafe package is available.
+ UnsafeDisabled = true
+)
+
+// unsafeReflectValue typically converts the passed reflect.Value into a one
+// that bypasses the typical safety restrictions preventing access to
+// unaddressable and unexported data. However, doing this relies on access to
+// the unsafe package. This is a stub version which simply returns the passed
+// reflect.Value when the unsafe package is not available.
+func unsafeReflectValue(v reflect.Value) reflect.Value {
+ return v
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/common.go b/vendor/github.com/davecgh/go-spew/spew/common.go
new file mode 100644
index 000000000..14f02dc15
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/common.go
@@ -0,0 +1,341 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+package spew
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "reflect"
+ "sort"
+ "strconv"
+)
+
+// Some constants in the form of bytes to avoid string overhead. This mirrors
+// the technique used in the fmt package.
+var (
+ panicBytes = []byte("(PANIC=")
+ plusBytes = []byte("+")
+ iBytes = []byte("i")
+ trueBytes = []byte("true")
+ falseBytes = []byte("false")
+ interfaceBytes = []byte("(interface {})")
+ commaNewlineBytes = []byte(",\n")
+ newlineBytes = []byte("\n")
+ openBraceBytes = []byte("{")
+ openBraceNewlineBytes = []byte("{\n")
+ closeBraceBytes = []byte("}")
+ asteriskBytes = []byte("*")
+ colonBytes = []byte(":")
+ colonSpaceBytes = []byte(": ")
+ openParenBytes = []byte("(")
+ closeParenBytes = []byte(")")
+ spaceBytes = []byte(" ")
+ pointerChainBytes = []byte("->")
+ nilAngleBytes = []byte("<nil>")
+ maxNewlineBytes = []byte("<max depth reached>\n")
+ maxShortBytes = []byte("<max>")
+ circularBytes = []byte("<already shown>")
+ circularShortBytes = []byte("<shown>")
+ invalidAngleBytes = []byte("<invalid>")
+ openBracketBytes = []byte("[")
+ closeBracketBytes = []byte("]")
+ percentBytes = []byte("%")
+ precisionBytes = []byte(".")
+ openAngleBytes = []byte("<")
+ closeAngleBytes = []byte(">")
+ openMapBytes = []byte("map[")
+ closeMapBytes = []byte("]")
+ lenEqualsBytes = []byte("len=")
+ capEqualsBytes = []byte("cap=")
+)
+
+// hexDigits is used to map a decimal value to a hex digit.
+var hexDigits = "0123456789abcdef"
+
+// catchPanic handles any panics that might occur during the handleMethods
+// calls.
+func catchPanic(w io.Writer, v reflect.Value) {
+ if err := recover(); err != nil {
+ w.Write(panicBytes)
+ fmt.Fprintf(w, "%v", err)
+ w.Write(closeParenBytes)
+ }
+}
+
+// handleMethods attempts to call the Error and String methods on the underlying
+// type the passed reflect.Value represents and outputes the result to Writer w.
+//
+// It handles panics in any called methods by catching and displaying the error
+// as the formatted value.
+func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handled bool) {
+ // We need an interface to check if the type implements the error or
+ // Stringer interface. However, the reflect package won't give us an
+ // interface on certain things like unexported struct fields in order
+ // to enforce visibility rules. We use unsafe, when it's available,
+ // to bypass these restrictions since this package does not mutate the
+ // values.
+ if !v.CanInterface() {
+ if UnsafeDisabled {
+ return false
+ }
+
+ v = unsafeReflectValue(v)
+ }
+
+ // Choose whether or not to do error and Stringer interface lookups against
+ // the base type or a pointer to the base type depending on settings.
+ // Technically calling one of these methods with a pointer receiver can
+ // mutate the value, however, types which choose to satisify an error or
+ // Stringer interface with a pointer receiver should not be mutating their
+ // state inside these interface methods.
+ if !cs.DisablePointerMethods && !UnsafeDisabled && !v.CanAddr() {
+ v = unsafeReflectValue(v)
+ }
+ if v.CanAddr() {
+ v = v.Addr()
+ }
+
+ // Is it an error or Stringer?
+ switch iface := v.Interface().(type) {
+ case error:
+ defer catchPanic(w, v)
+ if cs.ContinueOnMethod {
+ w.Write(openParenBytes)
+ w.Write([]byte(iface.Error()))
+ w.Write(closeParenBytes)
+ w.Write(spaceBytes)
+ return false
+ }
+
+ w.Write([]byte(iface.Error()))
+ return true
+
+ case fmt.Stringer:
+ defer catchPanic(w, v)
+ if cs.ContinueOnMethod {
+ w.Write(openParenBytes)
+ w.Write([]byte(iface.String()))
+ w.Write(closeParenBytes)
+ w.Write(spaceBytes)
+ return false
+ }
+ w.Write([]byte(iface.String()))
+ return true
+ }
+ return false
+}
+
+// printBool outputs a boolean value as true or false to Writer w.
+func printBool(w io.Writer, val bool) {
+ if val {
+ w.Write(trueBytes)
+ } else {
+ w.Write(falseBytes)
+ }
+}
+
+// printInt outputs a signed integer value to Writer w.
+func printInt(w io.Writer, val int64, base int) {
+ w.Write([]byte(strconv.FormatInt(val, base)))
+}
+
+// printUint outputs an unsigned integer value to Writer w.
+func printUint(w io.Writer, val uint64, base int) {
+ w.Write([]byte(strconv.FormatUint(val, base)))
+}
+
+// printFloat outputs a floating point value using the specified precision,
+// which is expected to be 32 or 64bit, to Writer w.
+func printFloat(w io.Writer, val float64, precision int) {
+ w.Write([]byte(strconv.FormatFloat(val, 'g', -1, precision)))
+}
+
+// printComplex outputs a complex value using the specified float precision
+// for the real and imaginary parts to Writer w.
+func printComplex(w io.Writer, c complex128, floatPrecision int) {
+ r := real(c)
+ w.Write(openParenBytes)
+ w.Write([]byte(strconv.FormatFloat(r, 'g', -1, floatPrecision)))
+ i := imag(c)
+ if i >= 0 {
+ w.Write(plusBytes)
+ }
+ w.Write([]byte(strconv.FormatFloat(i, 'g', -1, floatPrecision)))
+ w.Write(iBytes)
+ w.Write(closeParenBytes)
+}
+
+// printHexPtr outputs a uintptr formatted as hexidecimal with a leading '0x'
+// prefix to Writer w.
+func printHexPtr(w io.Writer, p uintptr) {
+ // Null pointer.
+ num := uint64(p)
+ if num == 0 {
+ w.Write(nilAngleBytes)
+ return
+ }
+
+ // Max uint64 is 16 bytes in hex + 2 bytes for '0x' prefix
+ buf := make([]byte, 18)
+
+ // It's simpler to construct the hex string right to left.
+ base := uint64(16)
+ i := len(buf) - 1
+ for num >= base {
+ buf[i] = hexDigits[num%base]
+ num /= base
+ i--
+ }
+ buf[i] = hexDigits[num]
+
+ // Add '0x' prefix.
+ i--
+ buf[i] = 'x'
+ i--
+ buf[i] = '0'
+
+ // Strip unused leading bytes.
+ buf = buf[i:]
+ w.Write(buf)
+}
+
+// valuesSorter implements sort.Interface to allow a slice of reflect.Value
+// elements to be sorted.
+type valuesSorter struct {
+ values []reflect.Value
+ strings []string // either nil or same len and values
+ cs *ConfigState
+}
+
+// newValuesSorter initializes a valuesSorter instance, which holds a set of
+// surrogate keys on which the data should be sorted. It uses flags in
+// ConfigState to decide if and how to populate those surrogate keys.
+func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Interface {
+ vs := &valuesSorter{values: values, cs: cs}
+ if canSortSimply(vs.values[0].Kind()) {
+ return vs
+ }
+ if !cs.DisableMethods {
+ vs.strings = make([]string, len(values))
+ for i := range vs.values {
+ b := bytes.Buffer{}
+ if !handleMethods(cs, &b, vs.values[i]) {
+ vs.strings = nil
+ break
+ }
+ vs.strings[i] = b.String()
+ }
+ }
+ if vs.strings == nil && cs.SpewKeys {
+ vs.strings = make([]string, len(values))
+ for i := range vs.values {
+ vs.strings[i] = Sprintf("%#v", vs.values[i].Interface())
+ }
+ }
+ return vs
+}
+
+// canSortSimply tests whether a reflect.Kind is a primitive that can be sorted
+// directly, or whether it should be considered for sorting by surrogate keys
+// (if the ConfigState allows it).
+func canSortSimply(kind reflect.Kind) bool {
+ // This switch parallels valueSortLess, except for the default case.
+ switch kind {
+ case reflect.Bool:
+ return true
+ case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
+ return true
+ case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
+ return true
+ case reflect.Float32, reflect.Float64:
+ return true
+ case reflect.String:
+ return true
+ case reflect.Uintptr:
+ return true
+ case reflect.Array:
+ return true
+ }
+ return false
+}
+
+// Len returns the number of values in the slice. It is part of the
+// sort.Interface implementation.
+func (s *valuesSorter) Len() int {
+ return len(s.values)
+}
+
+// Swap swaps the values at the passed indices. It is part of the
+// sort.Interface implementation.
+func (s *valuesSorter) Swap(i, j int) {
+ s.values[i], s.values[j] = s.values[j], s.values[i]
+ if s.strings != nil {
+ s.strings[i], s.strings[j] = s.strings[j], s.strings[i]
+ }
+}
+
+// valueSortLess returns whether the first value should sort before the second
+// value. It is used by valueSorter.Less as part of the sort.Interface
+// implementation.
+func valueSortLess(a, b reflect.Value) bool {
+ switch a.Kind() {
+ case reflect.Bool:
+ return !a.Bool() && b.Bool()
+ case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
+ return a.Int() < b.Int()
+ case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
+ return a.Uint() < b.Uint()
+ case reflect.Float32, reflect.Float64:
+ return a.Float() < b.Float()
+ case reflect.String:
+ return a.String() < b.String()
+ case reflect.Uintptr:
+ return a.Uint() < b.Uint()
+ case reflect.Array:
+ // Compare the contents of both arrays.
+ l := a.Len()
+ for i := 0; i < l; i++ {
+ av := a.Index(i)
+ bv := b.Index(i)
+ if av.Interface() == bv.Interface() {
+ continue
+ }
+ return valueSortLess(av, bv)
+ }
+ }
+ return a.String() < b.String()
+}
+
+// Less returns whether the value at index i should sort before the
+// value at index j. It is part of the sort.Interface implementation.
+func (s *valuesSorter) Less(i, j int) bool {
+ if s.strings == nil {
+ return valueSortLess(s.values[i], s.values[j])
+ }
+ return s.strings[i] < s.strings[j]
+}
+
+// sortValues is a sort function that handles both native types and any type that
+// can be converted to error or Stringer. Other inputs are sorted according to
+// their Value.String() value to ensure display stability.
+func sortValues(values []reflect.Value, cs *ConfigState) {
+ if len(values) == 0 {
+ return
+ }
+ sort.Sort(newValuesSorter(values, cs))
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/config.go b/vendor/github.com/davecgh/go-spew/spew/config.go
new file mode 100644
index 000000000..555282723
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/config.go
@@ -0,0 +1,297 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+package spew
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "os"
+)
+
+// ConfigState houses the configuration options used by spew to format and
+// display values. There is a global instance, Config, that is used to control
+// all top-level Formatter and Dump functionality. Each ConfigState instance
+// provides methods equivalent to the top-level functions.
+//
+// The zero value for ConfigState provides no indentation. You would typically
+// want to set it to a space or a tab.
+//
+// Alternatively, you can use NewDefaultConfig to get a ConfigState instance
+// with default settings. See the documentation of NewDefaultConfig for default
+// values.
+type ConfigState struct {
+ // Indent specifies the string to use for each indentation level. The
+ // global config instance that all top-level functions use set this to a
+ // single space by default. If you would like more indentation, you might
+ // set this to a tab with "\t" or perhaps two spaces with " ".
+ Indent string
+
+ // MaxDepth controls the maximum number of levels to descend into nested
+ // data structures. The default, 0, means there is no limit.
+ //
+ // NOTE: Circular data structures are properly detected, so it is not
+ // necessary to set this value unless you specifically want to limit deeply
+ // nested data structures.
+ MaxDepth int
+
+ // DisableMethods specifies whether or not error and Stringer interfaces are
+ // invoked for types that implement them.
+ DisableMethods bool
+
+ // DisablePointerMethods specifies whether or not to check for and invoke
+ // error and Stringer interfaces on types which only accept a pointer
+ // receiver when the current type is not a pointer.
+ //
+ // NOTE: This might be an unsafe action since calling one of these methods
+ // with a pointer receiver could technically mutate the value, however,
+ // in practice, types which choose to satisify an error or Stringer
+ // interface with a pointer receiver should not be mutating their state
+ // inside these interface methods. As a result, 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 "safe" build tag specified.
+ DisablePointerMethods bool
+
+ // ContinueOnMethod specifies whether or not recursion should continue once
+ // a custom error or Stringer interface is invoked. The default, false,
+ // means it will print the results of invoking the custom error or Stringer
+ // interface and return immediately instead of continuing to recurse into
+ // the internals of the data type.
+ //
+ // NOTE: This flag does not have any effect if method invocation is disabled
+ // via the DisableMethods or DisablePointerMethods options.
+ ContinueOnMethod bool
+
+ // 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
+ // that support the error or Stringer interfaces (if methods are
+ // enabled) are supported, with other types sorted according to the
+ // reflect.Value.String() output which guarantees display stability.
+ SortKeys bool
+
+ // 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.
+ SpewKeys bool
+}
+
+// Config is the active configuration of the top-level functions.
+// The configuration can be changed by modifying the contents of spew.Config.
+var Config = ConfigState{Indent: " "}
+
+// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the formatted string as a value that satisfies error. See NewFormatter
+// for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Errorf(format, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Errorf(format string, a ...interface{}) (err error) {
+ return fmt.Errorf(format, c.convertArgs(a)...)
+}
+
+// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprint(w, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, err error) {
+ return fmt.Fprint(w, c.convertArgs(a)...)
+}
+
+// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprintf(w, format, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
+ return fmt.Fprintf(w, format, c.convertArgs(a)...)
+}
+
+// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it
+// passed with a Formatter interface returned by c.NewFormatter. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprintln(w, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
+ return fmt.Fprintln(w, c.convertArgs(a)...)
+}
+
+// Print is a wrapper for fmt.Print that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Print(c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Print(a ...interface{}) (n int, err error) {
+ return fmt.Print(c.convertArgs(a)...)
+}
+
+// Printf is a wrapper for fmt.Printf that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Printf(format, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Printf(format string, a ...interface{}) (n int, err error) {
+ return fmt.Printf(format, c.convertArgs(a)...)
+}
+
+// Println is a wrapper for fmt.Println that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Println(c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Println(a ...interface{}) (n int, err error) {
+ return fmt.Println(c.convertArgs(a)...)
+}
+
+// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprint(c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Sprint(a ...interface{}) string {
+ return fmt.Sprint(c.convertArgs(a)...)
+}
+
+// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were
+// passed with a Formatter interface returned by c.NewFormatter. It returns
+// the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprintf(format, c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Sprintf(format string, a ...interface{}) string {
+ return fmt.Sprintf(format, c.convertArgs(a)...)
+}
+
+// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it
+// were passed with a Formatter interface returned by c.NewFormatter. It
+// returns the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprintln(c.NewFormatter(a), c.NewFormatter(b))
+func (c *ConfigState) Sprintln(a ...interface{}) string {
+ return fmt.Sprintln(c.convertArgs(a)...)
+}
+
+/*
+NewFormatter returns a custom formatter that satisfies the fmt.Formatter
+interface. As a result, it integrates cleanly with standard fmt package
+printing functions. The formatter is useful for inline printing of smaller data
+types similar to the standard %v format specifier.
+
+The custom formatter only responds to the %v (most compact), %+v (adds pointer
+addresses), %#v (adds types), and %#+v (adds types and pointer addresses) verb
+combinations. Any other verbs such as %x and %q will be sent to the the
+standard fmt package for formatting. In addition, the custom formatter ignores
+the width and precision arguments (however they will still work on the format
+specifiers not handled by the custom formatter).
+
+Typically this function shouldn't be called directly. It is much easier to make
+use of the custom formatter by calling one of the convenience functions such as
+c.Printf, c.Println, or c.Printf.
+*/
+func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {
+ return newFormatter(c, v)
+}
+
+// Fdump formats and displays the passed arguments to io.Writer w. It formats
+// exactly the same as Dump.
+func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {
+ fdump(c, w, a...)
+}
+
+/*
+Dump displays the passed parameters to standard out with newlines, customizable
+indentation, and additional debug information such as complete types and all
+pointer addresses used to indirect to the final value. It provides the
+following features over the built-in printing facilities provided by the fmt
+package:
+
+ * Pointers are dereferenced and followed
+ * Circular data structures are detected and handled properly
+ * Custom Stringer/error interfaces are optionally invoked, including
+ on unexported types
+ * Custom types which only implement the Stringer/error interfaces via
+ a pointer receiver are optionally invoked when passing non-pointer
+ variables
+ * Byte arrays and slices are dumped like the hexdump -C command which
+ includes offsets, byte values in hex, and ASCII output
+
+The configuration options are controlled by modifying the public members
+of c. See ConfigState for options documentation.
+
+See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to
+get the formatted result as a string.
+*/
+func (c *ConfigState) Dump(a ...interface{}) {
+ fdump(c, os.Stdout, a...)
+}
+
+// Sdump returns a string with the passed arguments formatted exactly the same
+// as Dump.
+func (c *ConfigState) Sdump(a ...interface{}) string {
+ var buf bytes.Buffer
+ fdump(c, &buf, a...)
+ return buf.String()
+}
+
+// convertArgs accepts a slice of arguments and returns a slice of the same
+// length with each argument converted to a spew Formatter interface using
+// the ConfigState associated with s.
+func (c *ConfigState) convertArgs(args []interface{}) (formatters []interface{}) {
+ formatters = make([]interface{}, len(args))
+ for index, arg := range args {
+ formatters[index] = newFormatter(c, arg)
+ }
+ return formatters
+}
+
+// NewDefaultConfig returns a ConfigState with the following default settings.
+//
+// Indent: " "
+// MaxDepth: 0
+// DisableMethods: false
+// DisablePointerMethods: false
+// ContinueOnMethod: false
+// SortKeys: false
+func NewDefaultConfig() *ConfigState {
+ return &ConfigState{Indent: " "}
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/doc.go b/vendor/github.com/davecgh/go-spew/spew/doc.go
new file mode 100644
index 000000000..5be0c4060
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/doc.go
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+/*
+Package spew implements a deep pretty printer for Go data structures to aid in
+debugging.
+
+A quick overview of the additional features spew provides over the built-in
+printing facilities for Go data types are as follows:
+
+ * Pointers are dereferenced and followed
+ * Circular data structures are detected and handled properly
+ * Custom Stringer/error interfaces are optionally invoked, including
+ on unexported types
+ * Custom types which only implement the Stringer/error interfaces via
+ a pointer receiver are optionally invoked when passing non-pointer
+ variables
+ * Byte arrays and slices are dumped like the hexdump -C command which
+ includes offsets, byte values in hex, and ASCII output (only when using
+ Dump style)
+
+There are two different approaches spew allows for dumping Go data structures:
+
+ * Dump style which prints with newlines, customizable indentation,
+ and additional debug information such as types and all pointer addresses
+ used to indirect to the final value
+ * A custom Formatter interface that integrates cleanly with the standard fmt
+ package and replaces %v, %+v, %#v, and %#+v to provide inline printing
+ similar to the default %v while providing the additional functionality
+ outlined above and passing unsupported format verbs such as %x and %q
+ along to fmt
+
+Quick Start
+
+This section demonstrates how to quickly get started with spew. See the
+sections below for further details on formatting and configuration options.
+
+To dump a variable with full newlines, indentation, type, and pointer
+information use Dump, Fdump, or Sdump:
+ 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):
+ 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)
+
+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.
+
+The following configuration options are available:
+ * 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.
+ 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
+ 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.
+
+Dump Usage
+
+Simply call spew.Dump with a list of variables you want to dump:
+
+ spew.Dump(myVar1, myVar2, ...)
+
+You may also call spew.Fdump if you would prefer to output to an arbitrary
+io.Writer. For example, to dump to standard error:
+
+ spew.Fdump(os.Stderr, myVar1, myVar2, ...)
+
+A third option is to call spew.Sdump to get the formatted output as a string:
+
+ str := spew.Sdump(myVar1, myVar2, ...)
+
+Sample Dump Output
+
+See the Dump example for details on the setup of the types and variables being
+shown here.
+
+ (main.Foo) {
+ unexportedField: (*main.Bar)(0xf84002e210)({
+ flag: (main.Flag) flagTwo,
+ data: (uintptr) <nil>
+ }),
+ ExportedField: (map[interface {}]interface {}) (len=1) {
+ (string) (len=3) "one": (bool) true
+ }
+ }
+
+Byte (and uint8) arrays and slices are displayed uniquely like the hexdump -C
+command as shown.
+ ([]uint8) (len=32 cap=32) {
+ 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|
+ }
+
+Custom Formatter
+
+Spew provides a custom formatter that implements the fmt.Formatter interface
+so that it integrates cleanly with standard fmt package printing functions. The
+formatter is useful for inline printing of smaller data types similar to the
+standard %v format specifier.
+
+The custom formatter only responds to the %v (most compact), %+v (adds pointer
+addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb
+combinations. Any other verbs such as %x and %q will be sent to the the
+standard fmt package for formatting. In addition, the custom formatter ignores
+the width and precision arguments (however they will still work on the format
+specifiers not handled by the custom formatter).
+
+Custom Formatter Usage
+
+The simplest way to make use of the spew custom formatter is to call one of the
+convenience functions such as spew.Printf, spew.Println, or spew.Printf. The
+functions have syntax you are most likely already familiar with:
+
+ spew.Printf("myVar1: %v -- myVar2: %+v", myVar1, myVar2)
+ spew.Printf("myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
+ spew.Println(myVar, myVar2)
+ spew.Fprintf(os.Stderr, "myVar1: %v -- myVar2: %+v", myVar1, myVar2)
+ spew.Fprintf(os.Stderr, "myVar3: %#v -- myVar4: %#+v", myVar3, myVar4)
+
+See the Index for the full list convenience functions.
+
+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 <*><shown>}
+ %+v: <*>(0xf84003e260){ui8:1 c:<*>(0xf84003e260)<shown>}
+ %#v: (*main.circular){ui8:(uint8)1 c:(*main.circular)<shown>}
+ %#+v: (*main.circular)(0xf84003e260){ui8:(uint8)1 c:(*main.circular)(0xf84003e260)<shown>}
+
+See the Printf example for details on the setup of variables being shown
+here.
+
+Errors
+
+Since it is possible for custom Stringer/error interfaces to panic, spew
+detects them and handles them internally by printing the panic information
+inline with the output. Since spew is intended to provide deep pretty printing
+capabilities on structures, it intentionally does not return any errors.
+*/
+package spew
diff --git a/vendor/github.com/davecgh/go-spew/spew/dump.go b/vendor/github.com/davecgh/go-spew/spew/dump.go
new file mode 100644
index 000000000..a0ff95e27
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/dump.go
@@ -0,0 +1,509 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+package spew
+
+import (
+ "bytes"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "os"
+ "reflect"
+ "regexp"
+ "strconv"
+ "strings"
+)
+
+var (
+ // uint8Type is a reflect.Type representing a uint8. It is used to
+ // convert cgo types to uint8 slices for hexdumping.
+ uint8Type = reflect.TypeOf(uint8(0))
+
+ // cCharRE is a regular expression that matches a cgo char.
+ // It is used to detect character arrays to hexdump them.
+ cCharRE = regexp.MustCompile("^.*\\._Ctype_char$")
+
+ // cUnsignedCharRE is a regular expression that matches a cgo unsigned
+ // char. It is used to detect unsigned character arrays to hexdump
+ // them.
+ cUnsignedCharRE = regexp.MustCompile("^.*\\._Ctype_unsignedchar$")
+
+ // cUint8tCharRE is a regular expression that matches a cgo uint8_t.
+ // It is used to detect uint8_t arrays to hexdump them.
+ cUint8tCharRE = regexp.MustCompile("^.*\\._Ctype_uint8_t$")
+)
+
+// dumpState contains information about the state of a dump operation.
+type dumpState struct {
+ w io.Writer
+ depth int
+ pointers map[uintptr]int
+ ignoreNextType bool
+ ignoreNextIndent bool
+ cs *ConfigState
+}
+
+// indent performs indentation according to the depth level and cs.Indent
+// option.
+func (d *dumpState) indent() {
+ if d.ignoreNextIndent {
+ d.ignoreNextIndent = false
+ return
+ }
+ d.w.Write(bytes.Repeat([]byte(d.cs.Indent), d.depth))
+}
+
+// unpackValue returns values inside of non-nil interfaces when possible.
+// This is useful for data types like structs, arrays, slices, and maps which
+// can contain varying types packed inside an interface.
+func (d *dumpState) unpackValue(v reflect.Value) reflect.Value {
+ if v.Kind() == reflect.Interface && !v.IsNil() {
+ v = v.Elem()
+ }
+ return v
+}
+
+// dumpPtr handles formatting of pointers by indirecting them as necessary.
+func (d *dumpState) dumpPtr(v reflect.Value) {
+ // Remove pointers at or below the current depth from map used to detect
+ // circular refs.
+ for k, depth := range d.pointers {
+ if depth >= d.depth {
+ delete(d.pointers, k)
+ }
+ }
+
+ // Keep list of all dereferenced pointers to show later.
+ pointerChain := make([]uintptr, 0)
+
+ // Figure out how many levels of indirection there are by dereferencing
+ // pointers and unpacking interfaces down the chain while detecting circular
+ // references.
+ nilFound := false
+ cycleFound := false
+ indirects := 0
+ ve := v
+ for ve.Kind() == reflect.Ptr {
+ if ve.IsNil() {
+ nilFound = true
+ break
+ }
+ indirects++
+ addr := ve.Pointer()
+ pointerChain = append(pointerChain, addr)
+ if pd, ok := d.pointers[addr]; ok && pd < d.depth {
+ cycleFound = true
+ indirects--
+ break
+ }
+ d.pointers[addr] = d.depth
+
+ ve = ve.Elem()
+ if ve.Kind() == reflect.Interface {
+ if ve.IsNil() {
+ nilFound = true
+ break
+ }
+ ve = ve.Elem()
+ }
+ }
+
+ // Display type information.
+ d.w.Write(openParenBytes)
+ d.w.Write(bytes.Repeat(asteriskBytes, indirects))
+ d.w.Write([]byte(ve.Type().String()))
+ d.w.Write(closeParenBytes)
+
+ // Display pointer information.
+ if len(pointerChain) > 0 {
+ d.w.Write(openParenBytes)
+ for i, addr := range pointerChain {
+ if i > 0 {
+ d.w.Write(pointerChainBytes)
+ }
+ printHexPtr(d.w, addr)
+ }
+ d.w.Write(closeParenBytes)
+ }
+
+ // Display dereferenced value.
+ d.w.Write(openParenBytes)
+ switch {
+ case nilFound == true:
+ d.w.Write(nilAngleBytes)
+
+ case cycleFound == true:
+ d.w.Write(circularBytes)
+
+ default:
+ d.ignoreNextType = true
+ d.dump(ve)
+ }
+ d.w.Write(closeParenBytes)
+}
+
+// dumpSlice handles formatting of arrays and slices. Byte (uint8 under
+// reflection) arrays and slices are dumped in hexdump -C fashion.
+func (d *dumpState) dumpSlice(v reflect.Value) {
+ // Determine whether this type should be hex dumped or not. Also,
+ // for types which should be hexdumped, try to use the underlying data
+ // first, then fall back to trying to convert them to a uint8 slice.
+ var buf []uint8
+ doConvert := false
+ doHexDump := false
+ numEntries := v.Len()
+ if numEntries > 0 {
+ vt := v.Index(0).Type()
+ vts := vt.String()
+ switch {
+ // C types that need to be converted.
+ case cCharRE.MatchString(vts):
+ fallthrough
+ case cUnsignedCharRE.MatchString(vts):
+ fallthrough
+ case cUint8tCharRE.MatchString(vts):
+ doConvert = true
+
+ // Try to use existing uint8 slices and fall back to converting
+ // and copying if that fails.
+ case vt.Kind() == reflect.Uint8:
+ // We need an addressable interface to convert the type
+ // to a byte slice. However, the reflect package won't
+ // give us an interface on certain things like
+ // unexported struct fields in order to enforce
+ // visibility rules. We use unsafe, when available, to
+ // bypass these restrictions since this package does not
+ // mutate the values.
+ vs := v
+ if !vs.CanInterface() || !vs.CanAddr() {
+ vs = unsafeReflectValue(vs)
+ }
+ if !UnsafeDisabled {
+ vs = vs.Slice(0, numEntries)
+
+ // Use the existing uint8 slice if it can be
+ // type asserted.
+ iface := vs.Interface()
+ if slice, ok := iface.([]uint8); ok {
+ buf = slice
+ doHexDump = true
+ break
+ }
+ }
+
+ // The underlying data needs to be converted if it can't
+ // be type asserted to a uint8 slice.
+ doConvert = true
+ }
+
+ // Copy and convert the underlying type if needed.
+ if doConvert && vt.ConvertibleTo(uint8Type) {
+ // Convert and copy each element into a uint8 byte
+ // slice.
+ buf = make([]uint8, numEntries)
+ for i := 0; i < numEntries; i++ {
+ vv := v.Index(i)
+ buf[i] = uint8(vv.Convert(uint8Type).Uint())
+ }
+ doHexDump = true
+ }
+ }
+
+ // Hexdump the entire slice as needed.
+ if doHexDump {
+ indent := strings.Repeat(d.cs.Indent, d.depth)
+ str := indent + hex.Dump(buf)
+ str = strings.Replace(str, "\n", "\n"+indent, -1)
+ str = strings.TrimRight(str, d.cs.Indent)
+ d.w.Write([]byte(str))
+ return
+ }
+
+ // Recursively call dump for each item.
+ for i := 0; i < numEntries; i++ {
+ d.dump(d.unpackValue(v.Index(i)))
+ if i < (numEntries - 1) {
+ d.w.Write(commaNewlineBytes)
+ } else {
+ d.w.Write(newlineBytes)
+ }
+ }
+}
+
+// dump is the main workhorse for dumping a value. It uses the passed reflect
+// value to figure out what kind of object we are dealing with and formats it
+// appropriately. It is a recursive function, however circular data structures
+// are detected and handled properly.
+func (d *dumpState) dump(v reflect.Value) {
+ // Handle invalid reflect values immediately.
+ kind := v.Kind()
+ if kind == reflect.Invalid {
+ d.w.Write(invalidAngleBytes)
+ return
+ }
+
+ // Handle pointers specially.
+ if kind == reflect.Ptr {
+ d.indent()
+ d.dumpPtr(v)
+ return
+ }
+
+ // Print type information unless already handled elsewhere.
+ if !d.ignoreNextType {
+ d.indent()
+ d.w.Write(openParenBytes)
+ d.w.Write([]byte(v.Type().String()))
+ d.w.Write(closeParenBytes)
+ d.w.Write(spaceBytes)
+ }
+ d.ignoreNextType = false
+
+ // Display length and capacity if the built-in len and cap functions
+ // work with the value's kind and the len/cap itself is non-zero.
+ valueLen, valueCap := 0, 0
+ switch v.Kind() {
+ case reflect.Array, reflect.Slice, reflect.Chan:
+ valueLen, valueCap = v.Len(), v.Cap()
+ case reflect.Map, reflect.String:
+ valueLen = v.Len()
+ }
+ if valueLen != 0 || valueCap != 0 {
+ d.w.Write(openParenBytes)
+ if valueLen != 0 {
+ d.w.Write(lenEqualsBytes)
+ printInt(d.w, int64(valueLen), 10)
+ }
+ if valueCap != 0 {
+ if valueLen != 0 {
+ d.w.Write(spaceBytes)
+ }
+ d.w.Write(capEqualsBytes)
+ printInt(d.w, int64(valueCap), 10)
+ }
+ d.w.Write(closeParenBytes)
+ d.w.Write(spaceBytes)
+ }
+
+ // Call Stringer/error interfaces if they exist and the handle methods flag
+ // is enabled
+ if !d.cs.DisableMethods {
+ if (kind != reflect.Invalid) && (kind != reflect.Interface) {
+ if handled := handleMethods(d.cs, d.w, v); handled {
+ return
+ }
+ }
+ }
+
+ switch kind {
+ case reflect.Invalid:
+ // Do nothing. We should never get here since invalid has already
+ // been handled above.
+
+ case reflect.Bool:
+ printBool(d.w, v.Bool())
+
+ case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
+ printInt(d.w, v.Int(), 10)
+
+ case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
+ printUint(d.w, v.Uint(), 10)
+
+ case reflect.Float32:
+ printFloat(d.w, v.Float(), 32)
+
+ case reflect.Float64:
+ printFloat(d.w, v.Float(), 64)
+
+ case reflect.Complex64:
+ printComplex(d.w, v.Complex(), 32)
+
+ case reflect.Complex128:
+ printComplex(d.w, v.Complex(), 64)
+
+ case reflect.Slice:
+ if v.IsNil() {
+ d.w.Write(nilAngleBytes)
+ break
+ }
+ fallthrough
+
+ case reflect.Array:
+ d.w.Write(openBraceNewlineBytes)
+ d.depth++
+ if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
+ d.indent()
+ d.w.Write(maxNewlineBytes)
+ } else {
+ d.dumpSlice(v)
+ }
+ d.depth--
+ d.indent()
+ d.w.Write(closeBraceBytes)
+
+ case reflect.String:
+ d.w.Write([]byte(strconv.Quote(v.String())))
+
+ case reflect.Interface:
+ // The only time we should get here is for nil interfaces due to
+ // unpackValue calls.
+ if v.IsNil() {
+ d.w.Write(nilAngleBytes)
+ }
+
+ case reflect.Ptr:
+ // Do nothing. We should never get here since pointers have already
+ // been handled above.
+
+ case reflect.Map:
+ // nil maps should be indicated as different than empty maps
+ if v.IsNil() {
+ d.w.Write(nilAngleBytes)
+ break
+ }
+
+ d.w.Write(openBraceNewlineBytes)
+ d.depth++
+ if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
+ d.indent()
+ d.w.Write(maxNewlineBytes)
+ } else {
+ numEntries := v.Len()
+ keys := v.MapKeys()
+ if d.cs.SortKeys {
+ sortValues(keys, d.cs)
+ }
+ for i, key := range keys {
+ d.dump(d.unpackValue(key))
+ d.w.Write(colonSpaceBytes)
+ d.ignoreNextIndent = true
+ d.dump(d.unpackValue(v.MapIndex(key)))
+ if i < (numEntries - 1) {
+ d.w.Write(commaNewlineBytes)
+ } else {
+ d.w.Write(newlineBytes)
+ }
+ }
+ }
+ d.depth--
+ d.indent()
+ d.w.Write(closeBraceBytes)
+
+ case reflect.Struct:
+ d.w.Write(openBraceNewlineBytes)
+ d.depth++
+ if (d.cs.MaxDepth != 0) && (d.depth > d.cs.MaxDepth) {
+ d.indent()
+ d.w.Write(maxNewlineBytes)
+ } else {
+ vt := v.Type()
+ numFields := v.NumField()
+ for i := 0; i < numFields; i++ {
+ d.indent()
+ vtf := vt.Field(i)
+ d.w.Write([]byte(vtf.Name))
+ d.w.Write(colonSpaceBytes)
+ d.ignoreNextIndent = true
+ d.dump(d.unpackValue(v.Field(i)))
+ if i < (numFields - 1) {
+ d.w.Write(commaNewlineBytes)
+ } else {
+ d.w.Write(newlineBytes)
+ }
+ }
+ }
+ d.depth--
+ d.indent()
+ d.w.Write(closeBraceBytes)
+
+ case reflect.Uintptr:
+ printHexPtr(d.w, uintptr(v.Uint()))
+
+ case reflect.UnsafePointer, reflect.Chan, reflect.Func:
+ printHexPtr(d.w, v.Pointer())
+
+ // There were not any other types at the time this code was written, but
+ // fall back to letting the default fmt package handle it in case any new
+ // types are added.
+ default:
+ if v.CanInterface() {
+ fmt.Fprintf(d.w, "%v", v.Interface())
+ } else {
+ fmt.Fprintf(d.w, "%v", v.String())
+ }
+ }
+}
+
+// fdump is a helper function to consolidate the logic from the various public
+// methods which take varying writers and config states.
+func fdump(cs *ConfigState, w io.Writer, a ...interface{}) {
+ for _, arg := range a {
+ if arg == nil {
+ w.Write(interfaceBytes)
+ w.Write(spaceBytes)
+ w.Write(nilAngleBytes)
+ w.Write(newlineBytes)
+ continue
+ }
+
+ d := dumpState{w: w, cs: cs}
+ d.pointers = make(map[uintptr]int)
+ d.dump(reflect.ValueOf(arg))
+ d.w.Write(newlineBytes)
+ }
+}
+
+// Fdump formats and displays the passed arguments to io.Writer w. It formats
+// exactly the same as Dump.
+func Fdump(w io.Writer, a ...interface{}) {
+ fdump(&Config, w, a...)
+}
+
+// Sdump returns a string with the passed arguments formatted exactly the same
+// as Dump.
+func Sdump(a ...interface{}) string {
+ var buf bytes.Buffer
+ fdump(&Config, &buf, a...)
+ return buf.String()
+}
+
+/*
+Dump displays the passed parameters to standard out with newlines, customizable
+indentation, and additional debug information such as complete types and all
+pointer addresses used to indirect to the final value. It provides the
+following features over the built-in printing facilities provided by the fmt
+package:
+
+ * Pointers are dereferenced and followed
+ * Circular data structures are detected and handled properly
+ * Custom Stringer/error interfaces are optionally invoked, including
+ on unexported types
+ * Custom types which only implement the Stringer/error interfaces via
+ a pointer receiver are optionally invoked when passing non-pointer
+ variables
+ * Byte arrays and slices are dumped like the hexdump -C command which
+ includes offsets, byte values in hex, and ASCII output
+
+The configuration options are controlled by an exported package global,
+spew.Config. See ConfigState for options documentation.
+
+See Fdump if you would prefer dumping to an arbitrary io.Writer or Sdump to
+get the formatted result as a string.
+*/
+func Dump(a ...interface{}) {
+ fdump(&Config, os.Stdout, a...)
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/format.go b/vendor/github.com/davecgh/go-spew/spew/format.go
new file mode 100644
index 000000000..ecf3b80e2
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/format.go
@@ -0,0 +1,419 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+package spew
+
+import (
+ "bytes"
+ "fmt"
+ "reflect"
+ "strconv"
+ "strings"
+)
+
+// supportedFlags is a list of all the character flags supported by fmt package.
+const supportedFlags = "0-+# "
+
+// formatState implements the fmt.Formatter interface and contains information
+// about the state of a formatting operation. The NewFormatter function can
+// be used to get a new Formatter which can be used directly as arguments
+// in standard fmt package printing calls.
+type formatState struct {
+ value interface{}
+ fs fmt.State
+ depth int
+ pointers map[uintptr]int
+ ignoreNextType bool
+ cs *ConfigState
+}
+
+// buildDefaultFormat recreates the original format string without precision
+// and width information to pass in to fmt.Sprintf in the case of an
+// unrecognized type. Unless new types are added to the language, this
+// function won't ever be called.
+func (f *formatState) buildDefaultFormat() (format string) {
+ buf := bytes.NewBuffer(percentBytes)
+
+ for _, flag := range supportedFlags {
+ if f.fs.Flag(int(flag)) {
+ buf.WriteRune(flag)
+ }
+ }
+
+ buf.WriteRune('v')
+
+ format = buf.String()
+ return format
+}
+
+// constructOrigFormat recreates the original format string including precision
+// and width information to pass along to the standard fmt package. This allows
+// automatic deferral of all format strings this package doesn't support.
+func (f *formatState) constructOrigFormat(verb rune) (format string) {
+ buf := bytes.NewBuffer(percentBytes)
+
+ for _, flag := range supportedFlags {
+ if f.fs.Flag(int(flag)) {
+ buf.WriteRune(flag)
+ }
+ }
+
+ if width, ok := f.fs.Width(); ok {
+ buf.WriteString(strconv.Itoa(width))
+ }
+
+ if precision, ok := f.fs.Precision(); ok {
+ buf.Write(precisionBytes)
+ buf.WriteString(strconv.Itoa(precision))
+ }
+
+ buf.WriteRune(verb)
+
+ format = buf.String()
+ return format
+}
+
+// unpackValue returns values inside of non-nil interfaces when possible and
+// ensures that types for values which have been unpacked from an interface
+// are displayed when the show types flag is also set.
+// This is useful for data types like structs, arrays, slices, and maps which
+// can contain varying types packed inside an interface.
+func (f *formatState) unpackValue(v reflect.Value) reflect.Value {
+ if v.Kind() == reflect.Interface {
+ f.ignoreNextType = false
+ if !v.IsNil() {
+ v = v.Elem()
+ }
+ }
+ return v
+}
+
+// formatPtr handles formatting of pointers by indirecting them as necessary.
+func (f *formatState) formatPtr(v reflect.Value) {
+ // Display nil if top level pointer is nil.
+ showTypes := f.fs.Flag('#')
+ if v.IsNil() && (!showTypes || f.ignoreNextType) {
+ f.fs.Write(nilAngleBytes)
+ return
+ }
+
+ // Remove pointers at or below the current depth from map used to detect
+ // circular refs.
+ for k, depth := range f.pointers {
+ if depth >= f.depth {
+ delete(f.pointers, k)
+ }
+ }
+
+ // Keep list of all dereferenced pointers to possibly show later.
+ pointerChain := make([]uintptr, 0)
+
+ // Figure out how many levels of indirection there are by derferencing
+ // pointers and unpacking interfaces down the chain while detecting circular
+ // references.
+ nilFound := false
+ cycleFound := false
+ indirects := 0
+ ve := v
+ for ve.Kind() == reflect.Ptr {
+ if ve.IsNil() {
+ nilFound = true
+ break
+ }
+ indirects++
+ addr := ve.Pointer()
+ pointerChain = append(pointerChain, addr)
+ if pd, ok := f.pointers[addr]; ok && pd < f.depth {
+ cycleFound = true
+ indirects--
+ break
+ }
+ f.pointers[addr] = f.depth
+
+ ve = ve.Elem()
+ if ve.Kind() == reflect.Interface {
+ if ve.IsNil() {
+ nilFound = true
+ break
+ }
+ ve = ve.Elem()
+ }
+ }
+
+ // Display type or indirection level depending on flags.
+ if showTypes && !f.ignoreNextType {
+ f.fs.Write(openParenBytes)
+ f.fs.Write(bytes.Repeat(asteriskBytes, indirects))
+ f.fs.Write([]byte(ve.Type().String()))
+ f.fs.Write(closeParenBytes)
+ } else {
+ if nilFound || cycleFound {
+ indirects += strings.Count(ve.Type().String(), "*")
+ }
+ f.fs.Write(openAngleBytes)
+ f.fs.Write([]byte(strings.Repeat("*", indirects)))
+ f.fs.Write(closeAngleBytes)
+ }
+
+ // Display pointer information depending on flags.
+ if f.fs.Flag('+') && (len(pointerChain) > 0) {
+ f.fs.Write(openParenBytes)
+ for i, addr := range pointerChain {
+ if i > 0 {
+ f.fs.Write(pointerChainBytes)
+ }
+ printHexPtr(f.fs, addr)
+ }
+ f.fs.Write(closeParenBytes)
+ }
+
+ // Display dereferenced value.
+ switch {
+ case nilFound == true:
+ f.fs.Write(nilAngleBytes)
+
+ case cycleFound == true:
+ f.fs.Write(circularShortBytes)
+
+ default:
+ f.ignoreNextType = true
+ f.format(ve)
+ }
+}
+
+// format is the main workhorse for providing the Formatter interface. It
+// uses the passed reflect value to figure out what kind of object we are
+// dealing with and formats it appropriately. It is a recursive function,
+// however circular data structures are detected and handled properly.
+func (f *formatState) format(v reflect.Value) {
+ // Handle invalid reflect values immediately.
+ kind := v.Kind()
+ if kind == reflect.Invalid {
+ f.fs.Write(invalidAngleBytes)
+ return
+ }
+
+ // Handle pointers specially.
+ if kind == reflect.Ptr {
+ f.formatPtr(v)
+ return
+ }
+
+ // Print type information unless already handled elsewhere.
+ if !f.ignoreNextType && f.fs.Flag('#') {
+ f.fs.Write(openParenBytes)
+ f.fs.Write([]byte(v.Type().String()))
+ f.fs.Write(closeParenBytes)
+ }
+ f.ignoreNextType = false
+
+ // Call Stringer/error interfaces if they exist and the handle methods
+ // flag is enabled.
+ if !f.cs.DisableMethods {
+ if (kind != reflect.Invalid) && (kind != reflect.Interface) {
+ if handled := handleMethods(f.cs, f.fs, v); handled {
+ return
+ }
+ }
+ }
+
+ switch kind {
+ case reflect.Invalid:
+ // Do nothing. We should never get here since invalid has already
+ // been handled above.
+
+ case reflect.Bool:
+ printBool(f.fs, v.Bool())
+
+ case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
+ printInt(f.fs, v.Int(), 10)
+
+ case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
+ printUint(f.fs, v.Uint(), 10)
+
+ case reflect.Float32:
+ printFloat(f.fs, v.Float(), 32)
+
+ case reflect.Float64:
+ printFloat(f.fs, v.Float(), 64)
+
+ case reflect.Complex64:
+ printComplex(f.fs, v.Complex(), 32)
+
+ case reflect.Complex128:
+ printComplex(f.fs, v.Complex(), 64)
+
+ case reflect.Slice:
+ if v.IsNil() {
+ f.fs.Write(nilAngleBytes)
+ break
+ }
+ fallthrough
+
+ case reflect.Array:
+ f.fs.Write(openBracketBytes)
+ f.depth++
+ if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
+ f.fs.Write(maxShortBytes)
+ } else {
+ numEntries := v.Len()
+ for i := 0; i < numEntries; i++ {
+ if i > 0 {
+ f.fs.Write(spaceBytes)
+ }
+ f.ignoreNextType = true
+ f.format(f.unpackValue(v.Index(i)))
+ }
+ }
+ f.depth--
+ f.fs.Write(closeBracketBytes)
+
+ case reflect.String:
+ f.fs.Write([]byte(v.String()))
+
+ case reflect.Interface:
+ // The only time we should get here is for nil interfaces due to
+ // unpackValue calls.
+ if v.IsNil() {
+ f.fs.Write(nilAngleBytes)
+ }
+
+ case reflect.Ptr:
+ // Do nothing. We should never get here since pointers have already
+ // been handled above.
+
+ case reflect.Map:
+ // nil maps should be indicated as different than empty maps
+ if v.IsNil() {
+ f.fs.Write(nilAngleBytes)
+ break
+ }
+
+ f.fs.Write(openMapBytes)
+ f.depth++
+ if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
+ f.fs.Write(maxShortBytes)
+ } else {
+ keys := v.MapKeys()
+ if f.cs.SortKeys {
+ sortValues(keys, f.cs)
+ }
+ for i, key := range keys {
+ if i > 0 {
+ f.fs.Write(spaceBytes)
+ }
+ f.ignoreNextType = true
+ f.format(f.unpackValue(key))
+ f.fs.Write(colonBytes)
+ f.ignoreNextType = true
+ f.format(f.unpackValue(v.MapIndex(key)))
+ }
+ }
+ f.depth--
+ f.fs.Write(closeMapBytes)
+
+ case reflect.Struct:
+ numFields := v.NumField()
+ f.fs.Write(openBraceBytes)
+ f.depth++
+ if (f.cs.MaxDepth != 0) && (f.depth > f.cs.MaxDepth) {
+ f.fs.Write(maxShortBytes)
+ } else {
+ vt := v.Type()
+ for i := 0; i < numFields; i++ {
+ if i > 0 {
+ f.fs.Write(spaceBytes)
+ }
+ vtf := vt.Field(i)
+ if f.fs.Flag('+') || f.fs.Flag('#') {
+ f.fs.Write([]byte(vtf.Name))
+ f.fs.Write(colonBytes)
+ }
+ f.format(f.unpackValue(v.Field(i)))
+ }
+ }
+ f.depth--
+ f.fs.Write(closeBraceBytes)
+
+ case reflect.Uintptr:
+ printHexPtr(f.fs, uintptr(v.Uint()))
+
+ case reflect.UnsafePointer, reflect.Chan, reflect.Func:
+ printHexPtr(f.fs, v.Pointer())
+
+ // There were not any other types at the time this code was written, but
+ // fall back to letting the default fmt package handle it if any get added.
+ default:
+ format := f.buildDefaultFormat()
+ if v.CanInterface() {
+ fmt.Fprintf(f.fs, format, v.Interface())
+ } else {
+ fmt.Fprintf(f.fs, format, v.String())
+ }
+ }
+}
+
+// Format satisfies the fmt.Formatter interface. See NewFormatter for usage
+// details.
+func (f *formatState) Format(fs fmt.State, verb rune) {
+ f.fs = fs
+
+ // Use standard formatting for verbs that are not v.
+ if verb != 'v' {
+ format := f.constructOrigFormat(verb)
+ fmt.Fprintf(fs, format, f.value)
+ return
+ }
+
+ if f.value == nil {
+ if fs.Flag('#') {
+ fs.Write(interfaceBytes)
+ }
+ fs.Write(nilAngleBytes)
+ return
+ }
+
+ f.format(reflect.ValueOf(f.value))
+}
+
+// newFormatter is a helper function to consolidate the logic from the various
+// public methods which take varying config states.
+func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {
+ fs := &formatState{value: v, cs: cs}
+ fs.pointers = make(map[uintptr]int)
+ return fs
+}
+
+/*
+NewFormatter returns a custom formatter that satisfies the fmt.Formatter
+interface. As a result, it integrates cleanly with standard fmt package
+printing functions. The formatter is useful for inline printing of smaller data
+types similar to the standard %v format specifier.
+
+The custom formatter only responds to the %v (most compact), %+v (adds pointer
+addresses), %#v (adds types), or %#+v (adds types and pointer addresses) verb
+combinations. Any other verbs such as %x and %q will be sent to the the
+standard fmt package for formatting. In addition, the custom formatter ignores
+the width and precision arguments (however they will still work on the format
+specifiers not handled by the custom formatter).
+
+Typically this function shouldn't be called directly. It is much easier to make
+use of the custom formatter by calling one of the convenience functions such as
+Printf, Println, or Fprintf.
+*/
+func NewFormatter(v interface{}) fmt.Formatter {
+ return newFormatter(&Config, v)
+}
diff --git a/vendor/github.com/davecgh/go-spew/spew/spew.go b/vendor/github.com/davecgh/go-spew/spew/spew.go
new file mode 100644
index 000000000..d8233f542
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/spew/spew.go
@@ -0,0 +1,148 @@
+/*
+ * Copyright (c) 2013 Dave Collins <dave@davec.name>
+ *
+ * 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.
+ */
+
+package spew
+
+import (
+ "fmt"
+ "io"
+)
+
+// Errorf is a wrapper for fmt.Errorf that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the formatted string as a value that satisfies error. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Errorf(format, spew.NewFormatter(a), spew.NewFormatter(b))
+func Errorf(format string, a ...interface{}) (err error) {
+ return fmt.Errorf(format, convertArgs(a)...)
+}
+
+// Fprint is a wrapper for fmt.Fprint that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprint(w, spew.NewFormatter(a), spew.NewFormatter(b))
+func Fprint(w io.Writer, a ...interface{}) (n int, err error) {
+ return fmt.Fprint(w, convertArgs(a)...)
+}
+
+// Fprintf is a wrapper for fmt.Fprintf that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprintf(w, format, spew.NewFormatter(a), spew.NewFormatter(b))
+func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error) {
+ return fmt.Fprintf(w, format, convertArgs(a)...)
+}
+
+// Fprintln is a wrapper for fmt.Fprintln that treats each argument as if it
+// passed with a default Formatter interface returned by NewFormatter. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Fprintln(w, spew.NewFormatter(a), spew.NewFormatter(b))
+func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
+ return fmt.Fprintln(w, convertArgs(a)...)
+}
+
+// Print is a wrapper for fmt.Print that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Print(spew.NewFormatter(a), spew.NewFormatter(b))
+func Print(a ...interface{}) (n int, err error) {
+ return fmt.Print(convertArgs(a)...)
+}
+
+// Printf is a wrapper for fmt.Printf that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Printf(format, spew.NewFormatter(a), spew.NewFormatter(b))
+func Printf(format string, a ...interface{}) (n int, err error) {
+ return fmt.Printf(format, convertArgs(a)...)
+}
+
+// Println is a wrapper for fmt.Println that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the number of bytes written and any write error encountered. See
+// NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Println(spew.NewFormatter(a), spew.NewFormatter(b))
+func Println(a ...interface{}) (n int, err error) {
+ return fmt.Println(convertArgs(a)...)
+}
+
+// Sprint is a wrapper for fmt.Sprint that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprint(spew.NewFormatter(a), spew.NewFormatter(b))
+func Sprint(a ...interface{}) string {
+ return fmt.Sprint(convertArgs(a)...)
+}
+
+// Sprintf is a wrapper for fmt.Sprintf that treats each argument as if it were
+// passed with a default Formatter interface returned by NewFormatter. It
+// returns the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprintf(format, spew.NewFormatter(a), spew.NewFormatter(b))
+func Sprintf(format string, a ...interface{}) string {
+ return fmt.Sprintf(format, convertArgs(a)...)
+}
+
+// Sprintln is a wrapper for fmt.Sprintln that treats each argument as if it
+// were passed with a default Formatter interface returned by NewFormatter. It
+// returns the resulting string. See NewFormatter for formatting details.
+//
+// This function is shorthand for the following syntax:
+//
+// fmt.Sprintln(spew.NewFormatter(a), spew.NewFormatter(b))
+func Sprintln(a ...interface{}) string {
+ return fmt.Sprintln(convertArgs(a)...)
+}
+
+// convertArgs accepts a slice of arguments and returns a slice of the same
+// length with each argument converted to a default spew Formatter interface.
+func convertArgs(args []interface{}) (formatters []interface{}) {
+ formatters = make([]interface{}, len(args))
+ for index, arg := range args {
+ formatters[index] = NewFormatter(arg)
+ }
+ return formatters
+}
diff --git a/vendor/github.com/davecgh/go-spew/test_coverage.txt b/vendor/github.com/davecgh/go-spew/test_coverage.txt
new file mode 100644
index 000000000..2cd087a2a
--- /dev/null
+++ b/vendor/github.com/davecgh/go-spew/test_coverage.txt
@@ -0,0 +1,61 @@
+
+github.com/davecgh/go-spew/spew/dump.go dumpState.dump 100.00% (88/88)
+github.com/davecgh/go-spew/spew/format.go formatState.format 100.00% (82/82)
+github.com/davecgh/go-spew/spew/format.go formatState.formatPtr 100.00% (52/52)
+github.com/davecgh/go-spew/spew/dump.go dumpState.dumpPtr 100.00% (44/44)
+github.com/davecgh/go-spew/spew/dump.go dumpState.dumpSlice 100.00% (39/39)
+github.com/davecgh/go-spew/spew/common.go handleMethods 100.00% (30/30)
+github.com/davecgh/go-spew/spew/common.go printHexPtr 100.00% (18/18)
+github.com/davecgh/go-spew/spew/common.go unsafeReflectValue 100.00% (13/13)
+github.com/davecgh/go-spew/spew/format.go formatState.constructOrigFormat 100.00% (12/12)
+github.com/davecgh/go-spew/spew/dump.go fdump 100.00% (11/11)
+github.com/davecgh/go-spew/spew/format.go formatState.Format 100.00% (11/11)
+github.com/davecgh/go-spew/spew/common.go init 100.00% (10/10)
+github.com/davecgh/go-spew/spew/common.go printComplex 100.00% (9/9)
+github.com/davecgh/go-spew/spew/common.go valuesSorter.Less 100.00% (8/8)
+github.com/davecgh/go-spew/spew/format.go formatState.buildDefaultFormat 100.00% (7/7)
+github.com/davecgh/go-spew/spew/format.go formatState.unpackValue 100.00% (5/5)
+github.com/davecgh/go-spew/spew/dump.go dumpState.indent 100.00% (4/4)
+github.com/davecgh/go-spew/spew/common.go catchPanic 100.00% (4/4)
+github.com/davecgh/go-spew/spew/config.go ConfigState.convertArgs 100.00% (4/4)
+github.com/davecgh/go-spew/spew/spew.go convertArgs 100.00% (4/4)
+github.com/davecgh/go-spew/spew/format.go newFormatter 100.00% (3/3)
+github.com/davecgh/go-spew/spew/dump.go Sdump 100.00% (3/3)
+github.com/davecgh/go-spew/spew/common.go printBool 100.00% (3/3)
+github.com/davecgh/go-spew/spew/common.go sortValues 100.00% (3/3)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Sdump 100.00% (3/3)
+github.com/davecgh/go-spew/spew/dump.go dumpState.unpackValue 100.00% (3/3)
+github.com/davecgh/go-spew/spew/spew.go Printf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Println 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Sprint 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Sprintf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Sprintln 100.00% (1/1)
+github.com/davecgh/go-spew/spew/common.go printFloat 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go NewDefaultConfig 100.00% (1/1)
+github.com/davecgh/go-spew/spew/common.go printInt 100.00% (1/1)
+github.com/davecgh/go-spew/spew/common.go printUint 100.00% (1/1)
+github.com/davecgh/go-spew/spew/common.go valuesSorter.Len 100.00% (1/1)
+github.com/davecgh/go-spew/spew/common.go valuesSorter.Swap 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Errorf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Fprint 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Fprintf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Fprintln 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Print 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Printf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Println 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Sprint 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Sprintf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Sprintln 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.NewFormatter 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Fdump 100.00% (1/1)
+github.com/davecgh/go-spew/spew/config.go ConfigState.Dump 100.00% (1/1)
+github.com/davecgh/go-spew/spew/dump.go Fdump 100.00% (1/1)
+github.com/davecgh/go-spew/spew/dump.go Dump 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Fprintln 100.00% (1/1)
+github.com/davecgh/go-spew/spew/format.go NewFormatter 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Errorf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Fprint 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Fprintf 100.00% (1/1)
+github.com/davecgh/go-spew/spew/spew.go Print 100.00% (1/1)
+github.com/davecgh/go-spew/spew ------------------------------- 100.00% (505/505)
+
diff --git a/vendor/github.com/ethereum/ethash/.gitignore b/vendor/github.com/ethereum/ethash/.gitignore
new file mode 100644
index 000000000..da074e6b3
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/.gitignore
@@ -0,0 +1,12 @@
+.idea/
+.DS_Store
+*/**/*un~
+.vagrant/
+*.pyc
+build/
+pyethash.egg-info/
+*.so
+*~
+*.swp
+MANIFEST
+dist/
diff --git a/vendor/github.com/ethereum/ethash/.travis.yml b/vendor/github.com/ethereum/ethash/.travis.yml
new file mode 100644
index 000000000..b83b02bf3
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/.travis.yml
@@ -0,0 +1,23 @@
+language: go
+go:
+ - 1.4.2
+
+before_install:
+ # for g++4.8 and C++11
+ - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
+
+ # Set up go-ethereum
+ - sudo apt-get update -y -qq
+ - sudo apt-get install -yqq libgmp3-dev
+ - git clone --depth=10 https://github.com/ethereum/go-ethereum ${GOPATH}/src/github.com/ethereum/go-ethereum
+ # use canned dependencies from the go-ethereum repository
+ - export GOPATH=$GOPATH:$GOPATH/src/github.com/ethereum/go-ethereum/Godeps/_workspace/
+ - echo $GOPATH
+
+install:
+ # need to explicitly request version 1.48 since by default we get 1.46 which does not work with C++11
+ - sudo apt-get install -qq --yes --force-yes g++-4.8
+ - sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
+ - sudo apt-get install -qq wget cmake bash libboost-test1.48-dev libboost-system1.48-dev libboost-filesystem1.48-dev nodejs python-pip python-dev valgrind
+ - sudo pip install virtualenv -q
+script: "./test/test.sh"
diff --git a/vendor/github.com/ethereum/ethash/CMakeLists.txt b/vendor/github.com/ethereum/ethash/CMakeLists.txt
new file mode 100644
index 000000000..807c43e96
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/CMakeLists.txt
@@ -0,0 +1,14 @@
+cmake_minimum_required(VERSION 2.8.7)
+project(ethash)
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
+set(ETHHASH_LIBS ethash)
+
+if (WIN32 AND WANT_CRYPTOPP)
+ add_subdirectory(cryptopp)
+endif()
+
+add_subdirectory(src/libethash)
+
+add_subdirectory(src/benchmark EXCLUDE_FROM_ALL)
+add_subdirectory(test/c)
diff --git a/vendor/github.com/ethereum/ethash/MANIFEST.in b/vendor/github.com/ethereum/ethash/MANIFEST.in
new file mode 100644
index 000000000..74e73c8be
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/MANIFEST.in
@@ -0,0 +1,17 @@
+include setup.py
+
+# C sources
+include src/libethash/internal.c
+include src/libethash/sha3.c
+include src/libethash/util.c
+include src/python/core.c
+
+# Headers
+include src/libethash/compiler.h
+include src/libethash/data_sizes.h
+include src/libethash/endian.h
+include src/libethash/ethash.h
+include src/libethash/fnv.h
+include src/libethash/internal.h
+include src/libethash/sha3.h
+include src/libethash/util.h
diff --git a/vendor/github.com/ethereum/ethash/Makefile b/vendor/github.com/ethereum/ethash/Makefile
new file mode 100644
index 000000000..741d3b56d
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/Makefile
@@ -0,0 +1,6 @@
+.PHONY: clean test
+test:
+ ./test/test.sh
+
+clean:
+ rm -rf *.so pyethash.egg-info/ build/ test/python/python-virtual-env/ test/c/build/ pyethash.so test/python/*.pyc dist/ MANIFEST
diff --git a/vendor/github.com/ethereum/ethash/README.md b/vendor/github.com/ethereum/ethash/README.md
new file mode 100644
index 000000000..2b2c3b544
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/README.md
@@ -0,0 +1,22 @@
+[![Build Status](https://travis-ci.org/ethereum/ethash.svg?branch=master)](https://travis-ci.org/ethereum/ethash)
+[![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/debris/ethash?branch=master&svg=true)](https://ci.appveyor.com/project/debris/ethash-nr37r/branch/master)
+
+# Ethash
+
+For details on this project, please see the Ethereum wiki:
+https://github.com/ethereum/wiki/wiki/Ethash
+
+### Coding Style for C++ code:
+
+Follow the same exact style as in [cpp-ethereum](https://github.com/ethereum/cpp-ethereum/blob/develop/CodingStandards.txt)
+
+### Coding Style for C code:
+
+The main thing above all is code consistency.
+
+- Tabs for indentation. A tab is 4 spaces
+- Try to stick to the [K&R](http://en.wikipedia.org/wiki/Indent_style#K.26R_style),
+ especially for the C code.
+- Keep the line lengths reasonable. No hard limit on 80 characters but don't go further
+ than 110. Some people work with multiple buffers next to each other.
+ Make them like you :)
diff --git a/vendor/github.com/ethereum/ethash/Vagrantfile b/vendor/github.com/ethereum/ethash/Vagrantfile
new file mode 100644
index 000000000..03891653f
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/Vagrantfile
@@ -0,0 +1,7 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure(2) do |config|
+ config.vm.box = "Ubuntu 12.04"
+ config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/precise/current/precise-server-cloudimg-amd64-vagrant-disk1.box"
+end
diff --git a/vendor/github.com/ethereum/ethash/appveyor.yml b/vendor/github.com/ethereum/ethash/appveyor.yml
new file mode 100644
index 000000000..ac36a0626
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/appveyor.yml
@@ -0,0 +1,43 @@
+version: 1.0.0.{build}
+
+environment:
+ BOOST_ROOT: "c:/projects/ethash/deps/boost"
+
+branches:
+ only:
+ - master
+ - develop
+
+os: Windows Server 2012 R2
+
+clone_folder: c:\projects\ethash
+
+#platform: Any CPU
+#configuration: Debug
+
+install:
+ # by default, all script lines are interpreted as batch
+
+# scripts to run before build
+before_build:
+ - echo "Downloading boost..."
+ - mkdir c:\projects\ethash\deps
+ - cd c:\projects\ethash\deps
+ - curl -O https://build.ethdev.com/builds/windows-precompiled/boost.tar.gz
+ - echo "Unzipping boost..."
+ - 7z x boost.tar.gz > nul
+ - 7z x boost.tar > nul
+ - ls
+ - echo "Running cmake..."
+ - cd c:\projects\ethash
+ - cmake .
+
+build:
+ project: ALL_BUILD.vcxproj # path to Visual Studio solution or project
+
+after_build:
+ - echo "Running tests..."
+ - cd c:\projects\ethash\test\c\Debug
+ - Test.exe
+ - echo "Finished!"
+
diff --git a/vendor/github.com/ethereum/ethash/ethash.go b/vendor/github.com/ethereum/ethash/ethash.go
new file mode 100644
index 000000000..2a31aaf2d
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/ethash.go
@@ -0,0 +1,441 @@
+// Copyright 2015 The go-ethereum Authors
+// Copyright 2015 Lefteris Karapetsas <lefteris@refu.co>
+// Copyright 2015 Matthew Wampler-Doty <matthew.wampler.doty@gmail.com>
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
+
+package ethash
+
+/*
+#include "src/libethash/internal.h"
+
+int ethashGoCallback_cgo(unsigned);
+*/
+import "C"
+
+import (
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "math/big"
+ "math/rand"
+ "os"
+ "os/user"
+ "path/filepath"
+ "runtime"
+ "sync"
+ "sync/atomic"
+ "time"
+ "unsafe"
+
+ "github.com/ethereum/go-ethereum/common"
+ "github.com/ethereum/go-ethereum/crypto"
+ "github.com/ethereum/go-ethereum/logger"
+ "github.com/ethereum/go-ethereum/logger/glog"
+ "github.com/ethereum/go-ethereum/pow"
+)
+
+var (
+ maxUint256 = new(big.Int).Exp(big.NewInt(2), big.NewInt(256), big.NewInt(0))
+ sharedLight = new(Light)
+)
+
+const (
+ epochLength uint64 = 30000
+ cacheSizeForTesting C.uint64_t = 1024
+ dagSizeForTesting C.uint64_t = 1024 * 32
+)
+
+var DefaultDir = defaultDir()
+
+func defaultDir() string {
+ home := os.Getenv("HOME")
+ if user, err := user.Current(); err == nil {
+ home = user.HomeDir
+ }
+ if runtime.GOOS == "windows" {
+ return filepath.Join(home, "AppData", "Ethash")
+ }
+ return filepath.Join(home, ".ethash")
+}
+
+// cache wraps an ethash_light_t with some metadata
+// and automatic memory management.
+type cache struct {
+ epoch uint64
+ used time.Time
+ test bool
+
+ gen sync.Once // ensures cache is only generated once.
+ ptr *C.struct_ethash_light
+}
+
+// generate creates the actual cache. it can be called from multiple
+// goroutines. the first call will generate the cache, subsequent
+// calls wait until it is generated.
+func (cache *cache) generate() {
+ cache.gen.Do(func() {
+ started := time.Now()
+ seedHash := makeSeedHash(cache.epoch)
+ glog.V(logger.Debug).Infof("Generating cache for epoch %d (%x)", cache.epoch, seedHash)
+ size := C.ethash_get_cachesize(C.uint64_t(cache.epoch * epochLength))
+ if cache.test {
+ size = cacheSizeForTesting
+ }
+ cache.ptr = C.ethash_light_new_internal(size, (*C.ethash_h256_t)(unsafe.Pointer(&seedHash[0])))
+ runtime.SetFinalizer(cache, freeCache)
+ glog.V(logger.Debug).Infof("Done generating cache for epoch %d, it took %v", cache.epoch, time.Since(started))
+ })
+}
+
+func freeCache(cache *cache) {
+ C.ethash_light_delete(cache.ptr)
+ cache.ptr = nil
+}
+
+func (cache *cache) compute(dagSize uint64, hash common.Hash, nonce uint64) (ok bool, mixDigest, result common.Hash) {
+ ret := C.ethash_light_compute_internal(cache.ptr, C.uint64_t(dagSize), hashToH256(hash), C.uint64_t(nonce))
+ // Make sure cache is live until after the C call.
+ // This is important because a GC might happen and execute
+ // the finalizer before the call completes.
+ _ = cache
+ return bool(ret.success), h256ToHash(ret.mix_hash), h256ToHash(ret.result)
+}
+
+// Light implements the Verify half of the proof of work. It uses a few small
+// in-memory caches to verify the nonces found by Full.
+type Light struct {
+ test bool // If set, use a smaller cache size
+
+ mu sync.Mutex // Protects the per-epoch map of verification caches
+ caches map[uint64]*cache // Currently maintained verification caches
+ future *cache // Pre-generated cache for the estimated future DAG
+
+ NumCaches int // Maximum number of caches to keep before eviction (only init, don't modify)
+}
+
+// Verify checks whether the block's nonce is valid.
+func (l *Light) Verify(block pow.Block) bool {
+ // TODO: do ethash_quick_verify before getCache in order
+ // to prevent DOS attacks.
+ blockNum := block.NumberU64()
+ if blockNum >= epochLength*2048 {
+ glog.V(logger.Debug).Infof("block number %d too high, limit is %d", epochLength*2048)
+ return false
+ }
+
+ difficulty := block.Difficulty()
+ /* Cannot happen if block header diff is validated prior to PoW, but can
+ happen if PoW is checked first due to parallel PoW checking.
+ We could check the minimum valid difficulty but for SoC we avoid (duplicating)
+ Ethereum protocol consensus rules here which are not in scope of Ethash
+ */
+ if difficulty.Cmp(common.Big0) == 0 {
+ glog.V(logger.Debug).Infof("invalid block difficulty")
+ return false
+ }
+
+ cache := l.getCache(blockNum)
+ dagSize := C.ethash_get_datasize(C.uint64_t(blockNum))
+ if l.test {
+ dagSize = dagSizeForTesting
+ }
+ // Recompute the hash using the cache.
+ ok, mixDigest, result := cache.compute(uint64(dagSize), block.HashNoNonce(), block.Nonce())
+ if !ok {
+ return false
+ }
+
+ // avoid mixdigest malleability as it's not included in a block's "hashNononce"
+ if block.MixDigest() != mixDigest {
+ return false
+ }
+
+ // The actual check.
+ target := new(big.Int).Div(maxUint256, difficulty)
+ return result.Big().Cmp(target) <= 0
+}
+
+func h256ToHash(in C.ethash_h256_t) common.Hash {
+ return *(*common.Hash)(unsafe.Pointer(&in.b))
+}
+
+func hashToH256(in common.Hash) C.ethash_h256_t {
+ return C.ethash_h256_t{b: *(*[32]C.uint8_t)(unsafe.Pointer(&in[0]))}
+}
+
+func (l *Light) getCache(blockNum uint64) *cache {
+ var c *cache
+ epoch := blockNum / epochLength
+
+ // If we have a PoW for that epoch, use that
+ l.mu.Lock()
+ if l.caches == nil {
+ l.caches = make(map[uint64]*cache)
+ }
+ if l.NumCaches == 0 {
+ l.NumCaches = 3
+ }
+ c = l.caches[epoch]
+ if c == nil {
+ // No cached DAG, evict the oldest if the cache limit was reached
+ if len(l.caches) >= l.NumCaches {
+ var evict *cache
+ for _, cache := range l.caches {
+ if evict == nil || evict.used.After(cache.used) {
+ evict = cache
+ }
+ }
+ glog.V(logger.Debug).Infof("Evicting DAG for epoch %d in favour of epoch %d", evict.epoch, epoch)
+ delete(l.caches, evict.epoch)
+ }
+ // If we have the new DAG pre-generated, use that, otherwise create a new one
+ if l.future != nil && l.future.epoch == epoch {
+ glog.V(logger.Debug).Infof("Using pre-generated DAG for epoch %d", epoch)
+ c, l.future = l.future, nil
+ } else {
+ glog.V(logger.Debug).Infof("No pre-generated DAG available, creating new for epoch %d", epoch)
+ c = &cache{epoch: epoch, test: l.test}
+ }
+ l.caches[epoch] = c
+
+ // If we just used up the future cache, or need a refresh, regenerate
+ if l.future == nil || l.future.epoch <= epoch {
+ glog.V(logger.Debug).Infof("Pre-generating DAG for epoch %d", epoch+1)
+ l.future = &cache{epoch: epoch + 1, test: l.test}
+ go l.future.generate()
+ }
+ }
+ c.used = time.Now()
+ l.mu.Unlock()
+
+ // Wait for generation finish and return the cache
+ c.generate()
+ return c
+}
+
+// dag wraps an ethash_full_t with some metadata
+// and automatic memory management.
+type dag struct {
+ epoch uint64
+ test bool
+ dir string
+
+ gen sync.Once // ensures DAG is only generated once.
+ ptr *C.struct_ethash_full
+}
+
+// generate creates the actual DAG. it can be called from multiple
+// goroutines. the first call will generate the DAG, subsequent
+// calls wait until it is generated.
+func (d *dag) generate() {
+ d.gen.Do(func() {
+ var (
+ started = time.Now()
+ seedHash = makeSeedHash(d.epoch)
+ blockNum = C.uint64_t(d.epoch * epochLength)
+ cacheSize = C.ethash_get_cachesize(blockNum)
+ dagSize = C.ethash_get_datasize(blockNum)
+ )
+ if d.test {
+ cacheSize = cacheSizeForTesting
+ dagSize = dagSizeForTesting
+ }
+ if d.dir == "" {
+ d.dir = DefaultDir
+ }
+ glog.V(logger.Info).Infof("Generating DAG for epoch %d (size %d) (%x)", d.epoch, dagSize, seedHash)
+ // Generate a temporary cache.
+ // TODO: this could share the cache with Light
+ cache := C.ethash_light_new_internal(cacheSize, (*C.ethash_h256_t)(unsafe.Pointer(&seedHash[0])))
+ defer C.ethash_light_delete(cache)
+ // Generate the actual DAG.
+ d.ptr = C.ethash_full_new_internal(
+ C.CString(d.dir),
+ hashToH256(seedHash),
+ dagSize,
+ cache,
+ (C.ethash_callback_t)(unsafe.Pointer(C.ethashGoCallback_cgo)),
+ )
+ if d.ptr == nil {
+ panic("ethash_full_new IO or memory error")
+ }
+ runtime.SetFinalizer(d, freeDAG)
+ glog.V(logger.Info).Infof("Done generating DAG for epoch %d, it took %v", d.epoch, time.Since(started))
+ })
+}
+
+func freeDAG(d *dag) {
+ C.ethash_full_delete(d.ptr)
+ d.ptr = nil
+}
+
+func (d *dag) Ptr() unsafe.Pointer {
+ return unsafe.Pointer(d.ptr.data)
+}
+
+//export ethashGoCallback
+func ethashGoCallback(percent C.unsigned) C.int {
+ glog.V(logger.Info).Infof("Generating DAG: %d%%", percent)
+ return 0
+}
+
+// MakeDAG pre-generates a DAG file for the given block number in the
+// given directory. If dir is the empty string, the default directory
+// is used.
+func MakeDAG(blockNum uint64, dir string) error {
+ d := &dag{epoch: blockNum / epochLength, dir: dir}
+ if blockNum >= epochLength*2048 {
+ return fmt.Errorf("block number too high, limit is %d", epochLength*2048)
+ }
+ d.generate()
+ if d.ptr == nil {
+ return errors.New("failed")
+ }
+ return nil
+}
+
+// Full implements the Search half of the proof of work.
+type Full struct {
+ Dir string // use this to specify a non-default DAG directory
+
+ test bool // if set use a smaller DAG size
+ turbo bool
+ hashRate int32
+
+ mu sync.Mutex // protects dag
+ current *dag // current full DAG
+}
+
+func (pow *Full) getDAG(blockNum uint64) (d *dag) {
+ epoch := blockNum / epochLength
+ pow.mu.Lock()
+ if pow.current != nil && pow.current.epoch == epoch {
+ d = pow.current
+ } else {
+ d = &dag{epoch: epoch, test: pow.test, dir: pow.Dir}
+ pow.current = d
+ }
+ pow.mu.Unlock()
+ // wait for it to finish generating.
+ d.generate()
+ return d
+}
+
+func (pow *Full) Search(block pow.Block, stop <-chan struct{}, index int) (nonce uint64, mixDigest []byte) {
+ dag := pow.getDAG(block.NumberU64())
+
+ r := rand.New(rand.NewSource(time.Now().UnixNano()))
+ diff := block.Difficulty()
+
+ i := int64(0)
+ starti := i
+ start := time.Now().UnixNano()
+ previousHashrate := int32(0)
+
+ nonce = uint64(r.Int63())
+ hash := hashToH256(block.HashNoNonce())
+ target := new(big.Int).Div(maxUint256, diff)
+ for {
+ select {
+ case <-stop:
+ atomic.AddInt32(&pow.hashRate, -previousHashrate)
+ return 0, nil
+ default:
+ i++
+
+ // we don't have to update hash rate on every nonce, so update after
+ // first nonce check and then after 2^X nonces
+ if i == 2 || ((i % (1 << 16)) == 0) {
+ elapsed := time.Now().UnixNano() - start
+ hashes := (float64(1e9) / float64(elapsed)) * float64(i-starti)
+ hashrateDiff := int32(hashes) - previousHashrate
+ previousHashrate = int32(hashes)
+ atomic.AddInt32(&pow.hashRate, hashrateDiff)
+ }
+
+ ret := C.ethash_full_compute(dag.ptr, hash, C.uint64_t(nonce))
+ result := h256ToHash(ret.result).Big()
+
+ // TODO: disagrees with the spec https://github.com/ethereum/wiki/wiki/Ethash#mining
+ if ret.success && result.Cmp(target) <= 0 {
+ mixDigest = C.GoBytes(unsafe.Pointer(&ret.mix_hash), C.int(32))
+ atomic.AddInt32(&pow.hashRate, -previousHashrate)
+ return nonce, mixDigest
+ }
+ nonce += 1
+ }
+
+ if !pow.turbo {
+ time.Sleep(20 * time.Microsecond)
+ }
+ }
+}
+
+func (pow *Full) GetHashrate() int64 {
+ return int64(atomic.LoadInt32(&pow.hashRate))
+}
+
+func (pow *Full) Turbo(on bool) {
+ // TODO: this needs to use an atomic operation.
+ pow.turbo = on
+}
+
+// Ethash combines block verification with Light and
+// nonce searching with Full into a single proof of work.
+type Ethash struct {
+ *Light
+ *Full
+}
+
+// New creates an instance of the proof of work.
+func New() *Ethash {
+ return &Ethash{new(Light), &Full{turbo: true}}
+}
+
+// NewShared creates an instance of the proof of work., where a single instance
+// of the Light cache is shared across all instances created with NewShared.
+func NewShared() *Ethash {
+ return &Ethash{sharedLight, &Full{turbo: true}}
+}
+
+// NewForTesting creates a proof of work for use in unit tests.
+// It uses a smaller DAG and cache size to keep test times low.
+// DAG files are stored in a temporary directory.
+//
+// Nonces found by a testing instance are not verifiable with a
+// regular-size cache.
+func NewForTesting() (*Ethash, error) {
+ dir, err := ioutil.TempDir("", "ethash-test")
+ if err != nil {
+ return nil, err
+ }
+ return &Ethash{&Light{test: true}, &Full{Dir: dir, test: true}}, nil
+}
+
+func GetSeedHash(blockNum uint64) ([]byte, error) {
+ if blockNum >= epochLength*2048 {
+ return nil, fmt.Errorf("block number too high, limit is %d", epochLength*2048)
+ }
+ sh := makeSeedHash(blockNum / epochLength)
+ return sh[:], nil
+}
+
+func makeSeedHash(epoch uint64) (sh common.Hash) {
+ for ; epoch > 0; epoch-- {
+ sh = crypto.Sha3Hash(sh[:])
+ }
+ return sh
+}
diff --git a/vendor/github.com/ethereum/ethash/ethashc.go b/vendor/github.com/ethereum/ethash/ethashc.go
new file mode 100644
index 000000000..1d2ba1613
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/ethashc.go
@@ -0,0 +1,51 @@
+// Copyright 2015 The go-ethereum Authors
+// This file is part of the go-ethereum library.
+//
+// The go-ethereum library is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// The go-ethereum library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public License
+// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
+
+package ethash
+
+/*
+ -mno-stack-arg-probe disables stack probing which avoids the function
+ __chkstk_ms being linked. this avoids a clash of this symbol as we also
+ separately link the secp256k1 lib which ends up defining this symbol
+
+ 1. https://gcc.gnu.org/onlinedocs/gccint/Stack-Checking.html
+ 2. https://groups.google.com/forum/#!msg/golang-dev/v1bziURSQ4k/88fXuJ24e-gJ
+ 3. https://groups.google.com/forum/#!topic/golang-nuts/VNP6Mwz_B6o
+
+*/
+
+/*
+#cgo CFLAGS: -std=gnu99 -Wall
+#cgo windows CFLAGS: -mno-stack-arg-probe
+#cgo LDFLAGS: -lm
+
+#include "src/libethash/internal.c"
+#include "src/libethash/sha3.c"
+#include "src/libethash/io.c"
+
+#ifdef _WIN32
+# include "src/libethash/io_win32.c"
+# include "src/libethash/mmap_win32.c"
+#else
+# include "src/libethash/io_posix.c"
+#endif
+
+// 'gateway function' for calling back into go.
+extern int ethashGoCallback(unsigned);
+int ethashGoCallback_cgo(unsigned percent) { return ethashGoCallback(percent); }
+
+*/
+import "C"
diff --git a/vendor/github.com/ethereum/ethash/setup.py b/vendor/github.com/ethereum/ethash/setup.py
new file mode 100755
index 000000000..18aa20f6d
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/setup.py
@@ -0,0 +1,47 @@
+#!/usr/bin/env python
+import os
+from distutils.core import setup, Extension
+sources = [
+ 'src/python/core.c',
+ 'src/libethash/io.c',
+ 'src/libethash/internal.c',
+ 'src/libethash/sha3.c']
+if os.name == 'nt':
+ sources += [
+ 'src/libethash/util_win32.c',
+ 'src/libethash/io_win32.c',
+ 'src/libethash/mmap_win32.c',
+ ]
+else:
+ sources += [
+ 'src/libethash/io_posix.c'
+ ]
+depends = [
+ 'src/libethash/ethash.h',
+ 'src/libethash/compiler.h',
+ 'src/libethash/data_sizes.h',
+ 'src/libethash/endian.h',
+ 'src/libethash/ethash.h',
+ 'src/libethash/io.h',
+ 'src/libethash/fnv.h',
+ 'src/libethash/internal.h',
+ 'src/libethash/sha3.h',
+ 'src/libethash/util.h',
+]
+pyethash = Extension('pyethash',
+ sources=sources,
+ depends=depends,
+ extra_compile_args=["-Isrc/", "-std=gnu99", "-Wall"])
+
+setup(
+ name='pyethash',
+ author="Matthew Wampler-Doty",
+ author_email="matthew.wampler.doty@gmail.com",
+ license='GPL',
+ version='0.1.23',
+ url='https://github.com/ethereum/ethash',
+ download_url='https://github.com/ethereum/ethash/tarball/v23',
+ description=('Python wrappers for ethash, the ethereum proof of work'
+ 'hashing function'),
+ ext_modules=[pyethash],
+)
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/CMakeLists.txt b/vendor/github.com/ethereum/ethash/src/libethash/CMakeLists.txt
new file mode 100644
index 000000000..a65621c3e
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/CMakeLists.txt
@@ -0,0 +1,44 @@
+set(LIBRARY ethash)
+
+if (CPPETHEREUM)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+endif ()
+
+set(CMAKE_BUILD_TYPE Release)
+
+if (NOT MSVC)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99")
+endif()
+
+set(FILES util.h
+ io.c
+ internal.c
+ ethash.h
+ endian.h
+ compiler.h
+ fnv.h
+ data_sizes.h)
+
+if (MSVC)
+ list(APPEND FILES util_win32.c io_win32.c mmap_win32.c)
+else()
+ list(APPEND FILES io_posix.c)
+endif()
+
+if (NOT CRYPTOPP_FOUND)
+ find_package(CryptoPP 5.6.2)
+endif()
+
+if (CRYPTOPP_FOUND)
+ add_definitions(-DWITH_CRYPTOPP)
+ include_directories( ${CRYPTOPP_INCLUDE_DIRS} )
+ list(APPEND FILES sha3_cryptopp.cpp sha3_cryptopp.h)
+else()
+ list(APPEND FILES sha3.c sha3.h)
+endif()
+
+add_library(${LIBRARY} ${FILES})
+
+if (CRYPTOPP_FOUND)
+ TARGET_LINK_LIBRARIES(${LIBRARY} ${CRYPTOPP_LIBRARIES})
+endif()
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/compiler.h b/vendor/github.com/ethereum/ethash/src/libethash/compiler.h
new file mode 100644
index 000000000..9695871cd
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/compiler.h
@@ -0,0 +1,33 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file compiler.h
+ * @date 2014
+ */
+#pragma once
+
+// Visual Studio doesn't support the inline keyword in C mode
+#if defined(_MSC_VER) && !defined(__cplusplus)
+#define inline __inline
+#endif
+
+// pretend restrict is a standard keyword
+#if defined(_MSC_VER)
+#define restrict __restrict
+#else
+#define restrict __restrict__
+#endif
+
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/data_sizes.h b/vendor/github.com/ethereum/ethash/src/libethash/data_sizes.h
new file mode 100644
index 000000000..83cc30bcb
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/data_sizes.h
@@ -0,0 +1,812 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software FoundationUUU,either version 3 of the LicenseUUU,or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be usefulU,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If notUUU,see <http://www.gnu.org/licenses/>.
+*/
+
+/** @file data_sizes.h
+* @author Matthew Wampler-Doty <negacthulhu@gmail.com>
+* @date 2015
+*/
+
+#pragma once
+
+#include <stdint.h>
+#include "compiler.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+
+// 2048 Epochs (~20 years) worth of tabulated DAG sizes
+
+// Generated with the following Mathematica Code:
+
+// GetCacheSizes[n_] := Module[{
+// CacheSizeBytesInit = 2^24,
+// CacheGrowth = 2^17,
+// HashBytes = 64,
+// j = 0},
+// Reap[
+// While[j < n,
+// Module[{i =
+// Floor[(CacheSizeBytesInit + CacheGrowth * j) / HashBytes]},
+// While[! PrimeQ[i], i--];
+// Sow[i*HashBytes]; j++]]]][[2]][[1]]
+
+
+static const uint64_t dag_sizes[2048] = {
+ 1073739904U, 1082130304U, 1090514816U, 1098906752U, 1107293056U,
+ 1115684224U, 1124070016U, 1132461952U, 1140849536U, 1149232768U,
+ 1157627776U, 1166013824U, 1174404736U, 1182786944U, 1191180416U,
+ 1199568512U, 1207958912U, 1216345216U, 1224732032U, 1233124736U,
+ 1241513344U, 1249902464U, 1258290304U, 1266673792U, 1275067264U,
+ 1283453312U, 1291844992U, 1300234112U, 1308619904U, 1317010048U,
+ 1325397376U, 1333787776U, 1342176128U, 1350561664U, 1358954368U,
+ 1367339392U, 1375731584U, 1384118144U, 1392507008U, 1400897408U,
+ 1409284736U, 1417673344U, 1426062464U, 1434451072U, 1442839168U,
+ 1451229056U, 1459615616U, 1468006016U, 1476394112U, 1484782976U,
+ 1493171584U, 1501559168U, 1509948032U, 1518337664U, 1526726528U,
+ 1535114624U, 1543503488U, 1551892096U, 1560278656U, 1568669056U,
+ 1577056384U, 1585446272U, 1593831296U, 1602219392U, 1610610304U,
+ 1619000192U, 1627386752U, 1635773824U, 1644164224U, 1652555648U,
+ 1660943488U, 1669332608U, 1677721216U, 1686109312U, 1694497664U,
+ 1702886272U, 1711274624U, 1719661184U, 1728047744U, 1736434816U,
+ 1744829056U, 1753218944U, 1761606272U, 1769995904U, 1778382464U,
+ 1786772864U, 1795157888U, 1803550592U, 1811937664U, 1820327552U,
+ 1828711552U, 1837102976U, 1845488768U, 1853879936U, 1862269312U,
+ 1870656896U, 1879048064U, 1887431552U, 1895825024U, 1904212096U,
+ 1912601216U, 1920988544U, 1929379456U, 1937765504U, 1946156672U,
+ 1954543232U, 1962932096U, 1971321728U, 1979707264U, 1988093056U,
+ 1996487552U, 2004874624U, 2013262208U, 2021653888U, 2030039936U,
+ 2038430848U, 2046819968U, 2055208576U, 2063596672U, 2071981952U,
+ 2080373632U, 2088762752U, 2097149056U, 2105539712U, 2113928576U,
+ 2122315136U, 2130700672U, 2139092608U, 2147483264U, 2155872128U,
+ 2164257664U, 2172642176U, 2181035392U, 2189426048U, 2197814912U,
+ 2206203008U, 2214587264U, 2222979712U, 2231367808U, 2239758208U,
+ 2248145024U, 2256527744U, 2264922752U, 2273312128U, 2281701248U,
+ 2290086272U, 2298476672U, 2306867072U, 2315251072U, 2323639168U,
+ 2332032128U, 2340420224U, 2348808064U, 2357196416U, 2365580416U,
+ 2373966976U, 2382363008U, 2390748544U, 2399139968U, 2407530368U,
+ 2415918976U, 2424307328U, 2432695424U, 2441084288U, 2449472384U,
+ 2457861248U, 2466247808U, 2474637184U, 2483026816U, 2491414144U,
+ 2499803776U, 2508191872U, 2516582272U, 2524970368U, 2533359232U,
+ 2541743488U, 2550134144U, 2558525056U, 2566913408U, 2575301504U,
+ 2583686528U, 2592073856U, 2600467328U, 2608856192U, 2617240448U,
+ 2625631616U, 2634022016U, 2642407552U, 2650796416U, 2659188352U,
+ 2667574912U, 2675965312U, 2684352896U, 2692738688U, 2701130624U,
+ 2709518464U, 2717907328U, 2726293376U, 2734685056U, 2743073152U,
+ 2751462016U, 2759851648U, 2768232832U, 2776625536U, 2785017728U,
+ 2793401984U, 2801794432U, 2810182016U, 2818571648U, 2826959488U,
+ 2835349376U, 2843734144U, 2852121472U, 2860514432U, 2868900992U,
+ 2877286784U, 2885676928U, 2894069632U, 2902451584U, 2910843008U,
+ 2919234688U, 2927622784U, 2936011648U, 2944400768U, 2952789376U,
+ 2961177728U, 2969565568U, 2977951616U, 2986338944U, 2994731392U,
+ 3003120256U, 3011508352U, 3019895936U, 3028287104U, 3036675968U,
+ 3045063808U, 3053452928U, 3061837696U, 3070228352U, 3078615424U,
+ 3087003776U, 3095394944U, 3103782272U, 3112173184U, 3120562048U,
+ 3128944768U, 3137339264U, 3145725056U, 3154109312U, 3162505088U,
+ 3170893184U, 3179280256U, 3187669376U, 3196056704U, 3204445568U,
+ 3212836736U, 3221224064U, 3229612928U, 3238002304U, 3246391168U,
+ 3254778496U, 3263165824U, 3271556224U, 3279944576U, 3288332416U,
+ 3296719232U, 3305110912U, 3313500032U, 3321887104U, 3330273152U,
+ 3338658944U, 3347053184U, 3355440512U, 3363827072U, 3372220288U,
+ 3380608384U, 3388997504U, 3397384576U, 3405774208U, 3414163072U,
+ 3422551936U, 3430937984U, 3439328384U, 3447714176U, 3456104576U,
+ 3464493952U, 3472883584U, 3481268864U, 3489655168U, 3498048896U,
+ 3506434432U, 3514826368U, 3523213952U, 3531603584U, 3539987072U,
+ 3548380288U, 3556763264U, 3565157248U, 3573545344U, 3581934464U,
+ 3590324096U, 3598712704U, 3607098752U, 3615488384U, 3623877248U,
+ 3632265856U, 3640646528U, 3649043584U, 3657430144U, 3665821568U,
+ 3674207872U, 3682597504U, 3690984832U, 3699367808U, 3707764352U,
+ 3716152448U, 3724541056U, 3732925568U, 3741318016U, 3749706368U,
+ 3758091136U, 3766481536U, 3774872704U, 3783260032U, 3791650432U,
+ 3800036224U, 3808427648U, 3816815488U, 3825204608U, 3833592704U,
+ 3841981568U, 3850370432U, 3858755968U, 3867147904U, 3875536256U,
+ 3883920512U, 3892313728U, 3900702592U, 3909087872U, 3917478784U,
+ 3925868416U, 3934256512U, 3942645376U, 3951032192U, 3959422336U,
+ 3967809152U, 3976200064U, 3984588416U, 3992974976U, 4001363584U,
+ 4009751168U, 4018141312U, 4026530432U, 4034911616U, 4043308928U,
+ 4051695488U, 4060084352U, 4068472448U, 4076862848U, 4085249408U,
+ 4093640576U, 4102028416U, 4110413696U, 4118805632U, 4127194496U,
+ 4135583104U, 4143971968U, 4152360832U, 4160746112U, 4169135744U,
+ 4177525888U, 4185912704U, 4194303616U, 4202691968U, 4211076736U,
+ 4219463552U, 4227855488U, 4236246656U, 4244633728U, 4253022848U,
+ 4261412224U, 4269799808U, 4278184832U, 4286578048U, 4294962304U,
+ 4303349632U, 4311743104U, 4320130432U, 4328521088U, 4336909184U,
+ 4345295488U, 4353687424U, 4362073472U, 4370458496U, 4378852736U,
+ 4387238528U, 4395630208U, 4404019072U, 4412407424U, 4420790656U,
+ 4429182848U, 4437571456U, 4445962112U, 4454344064U, 4462738048U,
+ 4471119232U, 4479516544U, 4487904128U, 4496289664U, 4504682368U,
+ 4513068416U, 4521459584U, 4529846144U, 4538232704U, 4546619776U,
+ 4555010176U, 4563402112U, 4571790208U, 4580174464U, 4588567936U,
+ 4596957056U, 4605344896U, 4613734016U, 4622119808U, 4630511488U,
+ 4638898816U, 4647287936U, 4655675264U, 4664065664U, 4672451968U,
+ 4680842624U, 4689231488U, 4697620352U, 4706007424U, 4714397056U,
+ 4722786176U, 4731173248U, 4739562368U, 4747951744U, 4756340608U,
+ 4764727936U, 4773114496U, 4781504384U, 4789894784U, 4798283648U,
+ 4806667648U, 4815059584U, 4823449472U, 4831835776U, 4840226176U,
+ 4848612224U, 4857003392U, 4865391488U, 4873780096U, 4882169728U,
+ 4890557312U, 4898946944U, 4907333248U, 4915722368U, 4924110976U,
+ 4932499328U, 4940889728U, 4949276032U, 4957666432U, 4966054784U,
+ 4974438016U, 4982831488U, 4991221376U, 4999607168U, 5007998848U,
+ 5016386432U, 5024763776U, 5033164672U, 5041544576U, 5049941888U,
+ 5058329728U, 5066717056U, 5075107456U, 5083494272U, 5091883904U,
+ 5100273536U, 5108662144U, 5117048192U, 5125436032U, 5133827456U,
+ 5142215296U, 5150605184U, 5158993024U, 5167382144U, 5175769472U,
+ 5184157568U, 5192543872U, 5200936064U, 5209324928U, 5217711232U,
+ 5226102656U, 5234490496U, 5242877312U, 5251263872U, 5259654016U,
+ 5268040832U, 5276434304U, 5284819328U, 5293209728U, 5301598592U,
+ 5309986688U, 5318374784U, 5326764416U, 5335151488U, 5343542144U,
+ 5351929472U, 5360319872U, 5368706944U, 5377096576U, 5385484928U,
+ 5393871232U, 5402263424U, 5410650496U, 5419040384U, 5427426944U,
+ 5435816576U, 5444205952U, 5452594816U, 5460981376U, 5469367936U,
+ 5477760896U, 5486148736U, 5494536832U, 5502925952U, 5511315328U,
+ 5519703424U, 5528089984U, 5536481152U, 5544869504U, 5553256064U,
+ 5561645696U, 5570032768U, 5578423936U, 5586811264U, 5595193216U,
+ 5603585408U, 5611972736U, 5620366208U, 5628750464U, 5637143936U,
+ 5645528192U, 5653921408U, 5662310272U, 5670694784U, 5679082624U,
+ 5687474048U, 5695864448U, 5704251008U, 5712641408U, 5721030272U,
+ 5729416832U, 5737806208U, 5746194304U, 5754583936U, 5762969984U,
+ 5771358592U, 5779748224U, 5788137856U, 5796527488U, 5804911232U,
+ 5813300608U, 5821692544U, 5830082176U, 5838468992U, 5846855552U,
+ 5855247488U, 5863636096U, 5872024448U, 5880411008U, 5888799872U,
+ 5897186432U, 5905576832U, 5913966976U, 5922352768U, 5930744704U,
+ 5939132288U, 5947522432U, 5955911296U, 5964299392U, 5972688256U,
+ 5981074304U, 5989465472U, 5997851008U, 6006241408U, 6014627968U,
+ 6023015552U, 6031408256U, 6039796096U, 6048185216U, 6056574848U,
+ 6064963456U, 6073351808U, 6081736064U, 6090128768U, 6098517632U,
+ 6106906496U, 6115289216U, 6123680896U, 6132070016U, 6140459648U,
+ 6148849024U, 6157237376U, 6165624704U, 6174009728U, 6182403712U,
+ 6190792064U, 6199176064U, 6207569792U, 6215952256U, 6224345216U,
+ 6232732544U, 6241124224U, 6249510272U, 6257899136U, 6266287744U,
+ 6274676864U, 6283065728U, 6291454336U, 6299843456U, 6308232064U,
+ 6316620928U, 6325006208U, 6333395584U, 6341784704U, 6350174848U,
+ 6358562176U, 6366951296U, 6375337856U, 6383729536U, 6392119168U,
+ 6400504192U, 6408895616U, 6417283456U, 6425673344U, 6434059136U,
+ 6442444672U, 6450837376U, 6459223424U, 6467613056U, 6476004224U,
+ 6484393088U, 6492781952U, 6501170048U, 6509555072U, 6517947008U,
+ 6526336384U, 6534725504U, 6543112832U, 6551500672U, 6559888768U,
+ 6568278656U, 6576662912U, 6585055616U, 6593443456U, 6601834112U,
+ 6610219648U, 6618610304U, 6626999168U, 6635385472U, 6643777408U,
+ 6652164224U, 6660552832U, 6668941952U, 6677330048U, 6685719424U,
+ 6694107776U, 6702493568U, 6710882176U, 6719274112U, 6727662976U,
+ 6736052096U, 6744437632U, 6752825984U, 6761213824U, 6769604224U,
+ 6777993856U, 6786383488U, 6794770816U, 6803158144U, 6811549312U,
+ 6819937664U, 6828326528U, 6836706176U, 6845101696U, 6853491328U,
+ 6861880448U, 6870269312U, 6878655104U, 6887046272U, 6895433344U,
+ 6903822208U, 6912212864U, 6920596864U, 6928988288U, 6937377152U,
+ 6945764992U, 6954149248U, 6962544256U, 6970928768U, 6979317376U,
+ 6987709312U, 6996093824U, 7004487296U, 7012875392U, 7021258624U,
+ 7029652352U, 7038038912U, 7046427776U, 7054818944U, 7063207808U,
+ 7071595136U, 7079980928U, 7088372608U, 7096759424U, 7105149824U,
+ 7113536896U, 7121928064U, 7130315392U, 7138699648U, 7147092352U,
+ 7155479168U, 7163865728U, 7172249984U, 7180648064U, 7189036672U,
+ 7197424768U, 7205810816U, 7214196608U, 7222589824U, 7230975104U,
+ 7239367552U, 7247755904U, 7256145536U, 7264533376U, 7272921472U,
+ 7281308032U, 7289694848U, 7298088832U, 7306471808U, 7314864512U,
+ 7323253888U, 7331643008U, 7340029568U, 7348419712U, 7356808832U,
+ 7365196672U, 7373585792U, 7381973888U, 7390362752U, 7398750592U,
+ 7407138944U, 7415528576U, 7423915648U, 7432302208U, 7440690304U,
+ 7449080192U, 7457472128U, 7465860992U, 7474249088U, 7482635648U,
+ 7491023744U, 7499412608U, 7507803008U, 7516192384U, 7524579968U,
+ 7532967296U, 7541358464U, 7549745792U, 7558134656U, 7566524032U,
+ 7574912896U, 7583300992U, 7591690112U, 7600075136U, 7608466816U,
+ 7616854912U, 7625244544U, 7633629824U, 7642020992U, 7650410368U,
+ 7658794112U, 7667187328U, 7675574912U, 7683961984U, 7692349568U,
+ 7700739712U, 7709130368U, 7717519232U, 7725905536U, 7734295424U,
+ 7742683264U, 7751069056U, 7759457408U, 7767849088U, 7776238208U,
+ 7784626816U, 7793014912U, 7801405312U, 7809792128U, 7818179968U,
+ 7826571136U, 7834957184U, 7843347328U, 7851732352U, 7860124544U,
+ 7868512384U, 7876902016U, 7885287808U, 7893679744U, 7902067072U,
+ 7910455936U, 7918844288U, 7927230848U, 7935622784U, 7944009344U,
+ 7952400256U, 7960786048U, 7969176704U, 7977565312U, 7985953408U,
+ 7994339968U, 8002730368U, 8011119488U, 8019508096U, 8027896192U,
+ 8036285056U, 8044674688U, 8053062272U, 8061448832U, 8069838464U,
+ 8078227328U, 8086616704U, 8095006592U, 8103393664U, 8111783552U,
+ 8120171392U, 8128560256U, 8136949376U, 8145336704U, 8153726848U,
+ 8162114944U, 8170503296U, 8178891904U, 8187280768U, 8195669632U,
+ 8204058496U, 8212444544U, 8220834176U, 8229222272U, 8237612672U,
+ 8246000768U, 8254389376U, 8262775168U, 8271167104U, 8279553664U,
+ 8287944064U, 8296333184U, 8304715136U, 8313108352U, 8321497984U,
+ 8329885568U, 8338274432U, 8346663296U, 8355052928U, 8363441536U,
+ 8371828352U, 8380217984U, 8388606592U, 8396996224U, 8405384576U,
+ 8413772672U, 8422161536U, 8430549376U, 8438939008U, 8447326592U,
+ 8455715456U, 8464104832U, 8472492928U, 8480882048U, 8489270656U,
+ 8497659776U, 8506045312U, 8514434944U, 8522823808U, 8531208832U,
+ 8539602304U, 8547990656U, 8556378752U, 8564768384U, 8573154176U,
+ 8581542784U, 8589933952U, 8598322816U, 8606705024U, 8615099264U,
+ 8623487872U, 8631876992U, 8640264064U, 8648653952U, 8657040256U,
+ 8665430656U, 8673820544U, 8682209152U, 8690592128U, 8698977152U,
+ 8707374464U, 8715763328U, 8724151424U, 8732540032U, 8740928384U,
+ 8749315712U, 8757704576U, 8766089344U, 8774480768U, 8782871936U,
+ 8791260032U, 8799645824U, 8808034432U, 8816426368U, 8824812928U,
+ 8833199488U, 8841591424U, 8849976448U, 8858366336U, 8866757248U,
+ 8875147136U, 8883532928U, 8891923328U, 8900306816U, 8908700288U,
+ 8917088384U, 8925478784U, 8933867392U, 8942250368U, 8950644608U,
+ 8959032704U, 8967420544U, 8975809664U, 8984197504U, 8992584064U,
+ 9000976256U, 9009362048U, 9017752448U, 9026141312U, 9034530688U,
+ 9042917504U, 9051307904U, 9059694208U, 9068084864U, 9076471424U,
+ 9084861824U, 9093250688U, 9101638528U, 9110027648U, 9118416512U,
+ 9126803584U, 9135188096U, 9143581312U, 9151969664U, 9160356224U,
+ 9168747136U, 9177134464U, 9185525632U, 9193910144U, 9202302848U,
+ 9210690688U, 9219079552U, 9227465344U, 9235854464U, 9244244864U,
+ 9252633472U, 9261021824U, 9269411456U, 9277799296U, 9286188928U,
+ 9294574208U, 9302965888U, 9311351936U, 9319740032U, 9328131968U,
+ 9336516736U, 9344907392U, 9353296768U, 9361685888U, 9370074752U,
+ 9378463616U, 9386849408U, 9395239808U, 9403629184U, 9412016512U,
+ 9420405376U, 9428795008U, 9437181568U, 9445570688U, 9453960832U,
+ 9462346624U, 9470738048U, 9479121536U, 9487515008U, 9495903616U,
+ 9504289664U, 9512678528U, 9521067904U, 9529456256U, 9537843584U,
+ 9546233728U, 9554621312U, 9563011456U, 9571398784U, 9579788672U,
+ 9588178304U, 9596567168U, 9604954496U, 9613343104U, 9621732992U,
+ 9630121856U, 9638508416U, 9646898816U, 9655283584U, 9663675776U,
+ 9672061312U, 9680449664U, 9688840064U, 9697230464U, 9705617536U,
+ 9714003584U, 9722393984U, 9730772608U, 9739172224U, 9747561088U,
+ 9755945344U, 9764338816U, 9772726144U, 9781116544U, 9789503872U,
+ 9797892992U, 9806282624U, 9814670464U, 9823056512U, 9831439232U,
+ 9839833984U, 9848224384U, 9856613504U, 9865000576U, 9873391232U,
+ 9881772416U, 9890162816U, 9898556288U, 9906940544U, 9915333248U,
+ 9923721088U, 9932108672U, 9940496512U, 9948888448U, 9957276544U,
+ 9965666176U, 9974048384U, 9982441088U, 9990830464U, 9999219584U,
+ 10007602816U, 10015996544U, 10024385152U, 10032774016U, 10041163648U,
+ 10049548928U, 10057940096U, 10066329472U, 10074717824U, 10083105152U,
+ 10091495296U, 10099878784U, 10108272256U, 10116660608U, 10125049216U,
+ 10133437312U, 10141825664U, 10150213504U, 10158601088U, 10166991232U,
+ 10175378816U, 10183766144U, 10192157312U, 10200545408U, 10208935552U,
+ 10217322112U, 10225712768U, 10234099328U, 10242489472U, 10250876032U,
+ 10259264896U, 10267656064U, 10276042624U, 10284429184U, 10292820352U,
+ 10301209472U, 10309598848U, 10317987712U, 10326375296U, 10334763392U,
+ 10343153536U, 10351541632U, 10359930752U, 10368318592U, 10376707456U,
+ 10385096576U, 10393484672U, 10401867136U, 10410262144U, 10418647424U,
+ 10427039104U, 10435425664U, 10443810176U, 10452203648U, 10460589952U,
+ 10468982144U, 10477369472U, 10485759104U, 10494147712U, 10502533504U,
+ 10510923392U, 10519313536U, 10527702656U, 10536091264U, 10544478592U,
+ 10552867712U, 10561255808U, 10569642368U, 10578032768U, 10586423168U,
+ 10594805632U, 10603200128U, 10611588992U, 10619976064U, 10628361344U,
+ 10636754048U, 10645143424U, 10653531776U, 10661920384U, 10670307968U,
+ 10678696832U, 10687086464U, 10695475072U, 10703863168U, 10712246144U,
+ 10720639616U, 10729026688U, 10737414784U, 10745806208U, 10754190976U,
+ 10762581376U, 10770971264U, 10779356288U, 10787747456U, 10796135552U,
+ 10804525184U, 10812915584U, 10821301888U, 10829692288U, 10838078336U,
+ 10846469248U, 10854858368U, 10863247232U, 10871631488U, 10880023424U,
+ 10888412032U, 10896799616U, 10905188992U, 10913574016U, 10921964672U,
+ 10930352768U, 10938742912U, 10947132544U, 10955518592U, 10963909504U,
+ 10972298368U, 10980687488U, 10989074816U, 10997462912U, 11005851776U,
+ 11014241152U, 11022627712U, 11031017344U, 11039403904U, 11047793024U,
+ 11056184704U, 11064570752U, 11072960896U, 11081343872U, 11089737856U,
+ 11098128256U, 11106514816U, 11114904448U, 11123293568U, 11131680128U,
+ 11140065152U, 11148458368U, 11156845696U, 11165236864U, 11173624192U,
+ 11182013824U, 11190402688U, 11198790784U, 11207179136U, 11215568768U,
+ 11223957376U, 11232345728U, 11240734592U, 11249122688U, 11257511296U,
+ 11265899648U, 11274285952U, 11282675584U, 11291065472U, 11299452544U,
+ 11307842432U, 11316231296U, 11324616832U, 11333009024U, 11341395584U,
+ 11349782656U, 11358172288U, 11366560384U, 11374950016U, 11383339648U,
+ 11391721856U, 11400117376U, 11408504192U, 11416893568U, 11425283456U,
+ 11433671552U, 11442061184U, 11450444672U, 11458837888U, 11467226752U,
+ 11475611776U, 11484003968U, 11492392064U, 11500780672U, 11509169024U,
+ 11517550976U, 11525944448U, 11534335616U, 11542724224U, 11551111808U,
+ 11559500672U, 11567890304U, 11576277376U, 11584667008U, 11593056128U,
+ 11601443456U, 11609830016U, 11618221952U, 11626607488U, 11634995072U,
+ 11643387776U, 11651775104U, 11660161664U, 11668552576U, 11676940928U,
+ 11685330304U, 11693718656U, 11702106496U, 11710496128U, 11718882688U,
+ 11727273088U, 11735660416U, 11744050048U, 11752437376U, 11760824704U,
+ 11769216128U, 11777604736U, 11785991296U, 11794381952U, 11802770048U,
+ 11811157888U, 11819548544U, 11827932544U, 11836324736U, 11844713344U,
+ 11853100928U, 11861486464U, 11869879936U, 11878268032U, 11886656896U,
+ 11895044992U, 11903433088U, 11911822976U, 11920210816U, 11928600448U,
+ 11936987264U, 11945375872U, 11953761152U, 11962151296U, 11970543488U,
+ 11978928512U, 11987320448U, 11995708288U, 12004095104U, 12012486272U,
+ 12020875136U, 12029255552U, 12037652096U, 12046039168U, 12054429568U,
+ 12062813824U, 12071206528U, 12079594624U, 12087983744U, 12096371072U,
+ 12104759936U, 12113147264U, 12121534592U, 12129924992U, 12138314624U,
+ 12146703232U, 12155091584U, 12163481216U, 12171864704U, 12180255872U,
+ 12188643968U, 12197034112U, 12205424512U, 12213811328U, 12222199424U,
+ 12230590336U, 12238977664U, 12247365248U, 12255755392U, 12264143488U,
+ 12272531584U, 12280920448U, 12289309568U, 12297694592U, 12306086528U,
+ 12314475392U, 12322865024U, 12331253632U, 12339640448U, 12348029312U,
+ 12356418944U, 12364805248U, 12373196672U, 12381580928U, 12389969024U,
+ 12398357632U, 12406750592U, 12415138432U, 12423527552U, 12431916416U,
+ 12440304512U, 12448692352U, 12457081216U, 12465467776U, 12473859968U,
+ 12482245504U, 12490636672U, 12499025536U, 12507411584U, 12515801728U,
+ 12524190592U, 12532577152U, 12540966272U, 12549354368U, 12557743232U,
+ 12566129536U, 12574523264U, 12582911872U, 12591299456U, 12599688064U,
+ 12608074624U, 12616463488U, 12624845696U, 12633239936U, 12641631616U,
+ 12650019968U, 12658407296U, 12666795136U, 12675183232U, 12683574656U,
+ 12691960192U, 12700350592U, 12708740224U, 12717128576U, 12725515904U,
+ 12733906816U, 12742295168U, 12750680192U, 12759071872U, 12767460736U,
+ 12775848832U, 12784236928U, 12792626816U, 12801014656U, 12809404288U,
+ 12817789312U, 12826181504U, 12834568832U, 12842954624U, 12851345792U,
+ 12859732352U, 12868122496U, 12876512128U, 12884901248U, 12893289088U,
+ 12901672832U, 12910067584U, 12918455168U, 12926842496U, 12935232896U,
+ 12943620736U, 12952009856U, 12960396928U, 12968786816U, 12977176192U,
+ 12985563776U, 12993951104U, 13002341504U, 13010730368U, 13019115392U,
+ 13027506304U, 13035895168U, 13044272512U, 13052673152U, 13061062528U,
+ 13069446272U, 13077838976U, 13086227072U, 13094613632U, 13103000192U,
+ 13111393664U, 13119782528U, 13128157568U, 13136559232U, 13144945024U,
+ 13153329536U, 13161724288U, 13170111872U, 13178502784U, 13186884736U,
+ 13195279744U, 13203667072U, 13212057472U, 13220445824U, 13228832128U,
+ 13237221248U, 13245610624U, 13254000512U, 13262388352U, 13270777472U,
+ 13279166336U, 13287553408U, 13295943296U, 13304331904U, 13312719488U,
+ 13321108096U, 13329494656U, 13337885824U, 13346274944U, 13354663808U,
+ 13363051136U, 13371439232U, 13379825024U, 13388210816U, 13396605056U,
+ 13404995456U, 13413380224U, 13421771392U, 13430159744U, 13438546048U,
+ 13446937216U, 13455326848U, 13463708288U, 13472103808U, 13480492672U,
+ 13488875648U, 13497269888U, 13505657728U, 13514045312U, 13522435712U,
+ 13530824576U, 13539210112U, 13547599232U, 13555989376U, 13564379008U,
+ 13572766336U, 13581154432U, 13589544832U, 13597932928U, 13606320512U,
+ 13614710656U, 13623097472U, 13631477632U, 13639874944U, 13648264064U,
+ 13656652928U, 13665041792U, 13673430656U, 13681818496U, 13690207616U,
+ 13698595712U, 13706982272U, 13715373184U, 13723762048U, 13732150144U,
+ 13740536704U, 13748926592U, 13757316224U, 13765700992U, 13774090112U,
+ 13782477952U, 13790869376U, 13799259008U, 13807647872U, 13816036736U,
+ 13824425344U, 13832814208U, 13841202304U, 13849591424U, 13857978752U,
+ 13866368896U, 13874754688U, 13883145344U, 13891533184U, 13899919232U,
+ 13908311168U, 13916692096U, 13925085056U, 13933473152U, 13941866368U,
+ 13950253696U, 13958643584U, 13967032192U, 13975417216U, 13983807616U,
+ 13992197504U, 14000582272U, 14008973696U, 14017363072U, 14025752192U,
+ 14034137984U, 14042528384U, 14050918016U, 14059301504U, 14067691648U,
+ 14076083584U, 14084470144U, 14092852352U, 14101249664U, 14109635968U,
+ 14118024832U, 14126407552U, 14134804352U, 14143188608U, 14151577984U,
+ 14159968384U, 14168357248U, 14176741504U, 14185127296U, 14193521024U,
+ 14201911424U, 14210301824U, 14218685056U, 14227067264U, 14235467392U,
+ 14243855488U, 14252243072U, 14260630144U, 14269021568U, 14277409408U,
+ 14285799296U, 14294187904U, 14302571392U, 14310961792U, 14319353728U,
+ 14327738752U, 14336130944U, 14344518784U, 14352906368U, 14361296512U,
+ 14369685376U, 14378071424U, 14386462592U, 14394848128U, 14403230848U,
+ 14411627392U, 14420013952U, 14428402304U, 14436793472U, 14445181568U,
+ 14453569664U, 14461959808U, 14470347904U, 14478737024U, 14487122816U,
+ 14495511424U, 14503901824U, 14512291712U, 14520677504U, 14529064832U,
+ 14537456768U, 14545845632U, 14554234496U, 14562618496U, 14571011456U,
+ 14579398784U, 14587789184U, 14596172672U, 14604564608U, 14612953984U,
+ 14621341312U, 14629724288U, 14638120832U, 14646503296U, 14654897536U,
+ 14663284864U, 14671675264U, 14680061056U, 14688447616U, 14696835968U,
+ 14705228416U, 14713616768U, 14722003328U, 14730392192U, 14738784128U,
+ 14747172736U, 14755561088U, 14763947648U, 14772336512U, 14780725376U,
+ 14789110144U, 14797499776U, 14805892736U, 14814276992U, 14822670208U,
+ 14831056256U, 14839444352U, 14847836032U, 14856222848U, 14864612992U,
+ 14872997504U, 14881388672U, 14889775744U, 14898165376U, 14906553472U,
+ 14914944896U, 14923329664U, 14931721856U, 14940109696U, 14948497024U,
+ 14956887424U, 14965276544U, 14973663616U, 14982053248U, 14990439808U,
+ 14998830976U, 15007216768U, 15015605888U, 15023995264U, 15032385152U,
+ 15040768384U, 15049154944U, 15057549184U, 15065939072U, 15074328448U,
+ 15082715008U, 15091104128U, 15099493504U, 15107879296U, 15116269184U,
+ 15124659584U, 15133042304U, 15141431936U, 15149824384U, 15158214272U,
+ 15166602368U, 15174991232U, 15183378304U, 15191760512U, 15200154496U,
+ 15208542592U, 15216931712U, 15225323392U, 15233708416U, 15242098048U,
+ 15250489216U, 15258875264U, 15267265408U, 15275654528U, 15284043136U,
+ 15292431488U, 15300819584U, 15309208192U, 15317596544U, 15325986176U,
+ 15334374784U, 15342763648U, 15351151744U, 15359540608U, 15367929728U,
+ 15376318336U, 15384706432U, 15393092992U, 15401481856U, 15409869952U,
+ 15418258816U, 15426649984U, 15435037568U, 15443425664U, 15451815296U,
+ 15460203392U, 15468589184U, 15476979328U, 15485369216U, 15493755776U,
+ 15502146944U, 15510534272U, 15518924416U, 15527311232U, 15535699072U,
+ 15544089472U, 15552478336U, 15560866688U, 15569254528U, 15577642624U,
+ 15586031488U, 15594419072U, 15602809472U, 15611199104U, 15619586432U,
+ 15627975296U, 15636364928U, 15644753792U, 15653141888U, 15661529216U,
+ 15669918848U, 15678305152U, 15686696576U, 15695083136U, 15703474048U,
+ 15711861632U, 15720251264U, 15728636288U, 15737027456U, 15745417088U,
+ 15753804928U, 15762194048U, 15770582656U, 15778971008U, 15787358336U,
+ 15795747712U, 15804132224U, 15812523392U, 15820909696U, 15829300096U,
+ 15837691264U, 15846071936U, 15854466944U, 15862855808U, 15871244672U,
+ 15879634816U, 15888020608U, 15896409728U, 15904799104U, 15913185152U,
+ 15921577088U, 15929966464U, 15938354816U, 15946743424U, 15955129472U,
+ 15963519872U, 15971907968U, 15980296064U, 15988684928U, 15997073024U,
+ 16005460864U, 16013851264U, 16022241152U, 16030629248U, 16039012736U,
+ 16047406976U, 16055794816U, 16064181376U, 16072571264U, 16080957824U,
+ 16089346688U, 16097737856U, 16106125184U, 16114514816U, 16122904192U,
+ 16131292544U, 16139678848U, 16148066944U, 16156453504U, 16164839552U,
+ 16173236096U, 16181623424U, 16190012032U, 16198401152U, 16206790528U,
+ 16215177344U, 16223567744U, 16231956352U, 16240344704U, 16248731008U,
+ 16257117824U, 16265504384U, 16273898624U, 16282281856U, 16290668672U,
+ 16299064192U, 16307449216U, 16315842176U, 16324230016U, 16332613504U,
+ 16341006464U, 16349394304U, 16357783168U, 16366172288U, 16374561664U,
+ 16382951296U, 16391337856U, 16399726208U, 16408116352U, 16416505472U,
+ 16424892032U, 16433282176U, 16441668224U, 16450058624U, 16458448768U,
+ 16466836864U, 16475224448U, 16483613056U, 16492001408U, 16500391808U,
+ 16508779648U, 16517166976U, 16525555328U, 16533944192U, 16542330752U,
+ 16550719616U, 16559110528U, 16567497088U, 16575888512U, 16584274816U,
+ 16592665472U, 16601051008U, 16609442944U, 16617832064U, 16626218624U,
+ 16634607488U, 16642996096U, 16651385728U, 16659773824U, 16668163712U,
+ 16676552576U, 16684938112U, 16693328768U, 16701718144U, 16710095488U,
+ 16718492288U, 16726883968U, 16735272832U, 16743661184U, 16752049792U,
+ 16760436608U, 16768827008U, 16777214336U, 16785599104U, 16793992832U,
+ 16802381696U, 16810768768U, 16819151744U, 16827542656U, 16835934848U,
+ 16844323712U, 16852711552U, 16861101952U, 16869489536U, 16877876864U,
+ 16886265728U, 16894653056U, 16903044736U, 16911431296U, 16919821696U,
+ 16928207488U, 16936592768U, 16944987776U, 16953375616U, 16961763968U,
+ 16970152832U, 16978540928U, 16986929536U, 16995319168U, 17003704448U,
+ 17012096896U, 17020481152U, 17028870784U, 17037262208U, 17045649536U,
+ 17054039936U, 17062426496U, 17070814336U, 17079205504U, 17087592064U,
+ 17095978112U, 17104369024U, 17112759424U, 17121147776U, 17129536384U,
+ 17137926016U, 17146314368U, 17154700928U, 17163089792U, 17171480192U,
+ 17179864192U, 17188256896U, 17196644992U, 17205033856U, 17213423488U,
+ 17221811072U, 17230198912U, 17238588032U, 17246976896U, 17255360384U,
+ 17263754624U, 17272143232U, 17280530048U, 17288918912U, 17297309312U,
+ 17305696384U, 17314085504U, 17322475136U, 17330863744U, 17339252096U,
+ 17347640192U, 17356026496U, 17364413824U, 17372796544U, 17381190016U,
+ 17389583488U, 17397972608U, 17406360704U, 17414748544U, 17423135872U,
+ 17431527296U, 17439915904U, 17448303232U, 17456691584U, 17465081728U,
+ 17473468288U, 17481857408U, 17490247552U, 17498635904U, 17507022464U,
+ 17515409024U, 17523801728U, 17532189824U, 17540577664U, 17548966016U,
+ 17557353344U, 17565741184U, 17574131584U, 17582519168U, 17590907008U,
+ 17599296128U, 17607687808U, 17616076672U, 17624455808U, 17632852352U,
+ 17641238656U, 17649630848U, 17658018944U, 17666403968U, 17674794112U,
+ 17683178368U, 17691573376U, 17699962496U, 17708350592U, 17716739968U,
+ 17725126528U, 17733517184U, 17741898112U, 17750293888U, 17758673024U,
+ 17767070336U, 17775458432U, 17783848832U, 17792236928U, 17800625536U,
+ 17809012352U, 17817402752U, 17825785984U, 17834178944U, 17842563968U,
+ 17850955648U, 17859344512U, 17867732864U, 17876119424U, 17884511872U,
+ 17892900224U, 17901287296U, 17909677696U, 17918058112U, 17926451072U,
+ 17934843776U, 17943230848U, 17951609216U, 17960008576U, 17968397696U,
+ 17976784256U, 17985175424U, 17993564032U, 18001952128U, 18010339712U,
+ 18018728576U, 18027116672U, 18035503232U, 18043894144U, 18052283264U,
+ 18060672128U, 18069056384U, 18077449856U, 18085837184U, 18094225792U,
+ 18102613376U, 18111004544U, 18119388544U, 18127781248U, 18136170368U,
+ 18144558976U, 18152947328U, 18161336192U, 18169724288U, 18178108544U,
+ 18186498944U, 18194886784U, 18203275648U, 18211666048U, 18220048768U,
+ 18228444544U, 18236833408U, 18245220736U
+};
+
+
+// Generated with the following Mathematica Code:
+
+// GetCacheSizes[n_] := Module[{
+// DataSetSizeBytesInit = 2^30,
+// MixBytes = 128,
+// DataSetGrowth = 2^23,
+// HashBytes = 64,
+// CacheMultiplier = 1024,
+// j = 0},
+// Reap[
+// While[j < n,
+// Module[{i = Floor[(DataSetSizeBytesInit + DataSetGrowth * j) / (CacheMultiplier * HashBytes)]},
+// While[! PrimeQ[i], i--];
+// Sow[i*HashBytes]; j++]]]][[2]][[1]]
+
+const uint64_t cache_sizes[2048] = {
+ 16776896U, 16907456U, 17039296U, 17170112U, 17301056U, 17432512U, 17563072U,
+ 17693888U, 17824192U, 17955904U, 18087488U, 18218176U, 18349504U, 18481088U,
+ 18611392U, 18742336U, 18874304U, 19004224U, 19135936U, 19267264U, 19398208U,
+ 19529408U, 19660096U, 19791424U, 19922752U, 20053952U, 20184896U, 20315968U,
+ 20446912U, 20576576U, 20709184U, 20840384U, 20971072U, 21102272U, 21233216U,
+ 21364544U, 21494848U, 21626816U, 21757376U, 21887552U, 22019392U, 22151104U,
+ 22281536U, 22412224U, 22543936U, 22675264U, 22806464U, 22935872U, 23068096U,
+ 23198272U, 23330752U, 23459008U, 23592512U, 23723968U, 23854912U, 23986112U,
+ 24116672U, 24247616U, 24378688U, 24509504U, 24640832U, 24772544U, 24903488U,
+ 25034432U, 25165376U, 25296704U, 25427392U, 25558592U, 25690048U, 25820096U,
+ 25951936U, 26081728U, 26214208U, 26345024U, 26476096U, 26606656U, 26737472U,
+ 26869184U, 26998208U, 27131584U, 27262528U, 27393728U, 27523904U, 27655744U,
+ 27786688U, 27917888U, 28049344U, 28179904U, 28311488U, 28441792U, 28573504U,
+ 28700864U, 28835648U, 28966208U, 29096768U, 29228608U, 29359808U, 29490752U,
+ 29621824U, 29752256U, 29882816U, 30014912U, 30144448U, 30273728U, 30406976U,
+ 30538432U, 30670784U, 30799936U, 30932672U, 31063744U, 31195072U, 31325248U,
+ 31456192U, 31588288U, 31719232U, 31850432U, 31981504U, 32110784U, 32243392U,
+ 32372672U, 32505664U, 32636608U, 32767808U, 32897344U, 33029824U, 33160768U,
+ 33289664U, 33423296U, 33554368U, 33683648U, 33816512U, 33947456U, 34076992U,
+ 34208704U, 34340032U, 34471744U, 34600256U, 34734016U, 34864576U, 34993984U,
+ 35127104U, 35258176U, 35386688U, 35518528U, 35650624U, 35782336U, 35910976U,
+ 36044608U, 36175808U, 36305728U, 36436672U, 36568384U, 36699968U, 36830656U,
+ 36961984U, 37093312U, 37223488U, 37355072U, 37486528U, 37617472U, 37747904U,
+ 37879232U, 38009792U, 38141888U, 38272448U, 38403392U, 38535104U, 38660672U,
+ 38795584U, 38925632U, 39059264U, 39190336U, 39320768U, 39452096U, 39581632U,
+ 39713984U, 39844928U, 39974848U, 40107968U, 40238144U, 40367168U, 40500032U,
+ 40631744U, 40762816U, 40894144U, 41023552U, 41155904U, 41286208U, 41418304U,
+ 41547712U, 41680448U, 41811904U, 41942848U, 42073792U, 42204992U, 42334912U,
+ 42467008U, 42597824U, 42729152U, 42860096U, 42991552U, 43122368U, 43253696U,
+ 43382848U, 43515712U, 43646912U, 43777088U, 43907648U, 44039104U, 44170432U,
+ 44302144U, 44433344U, 44564288U, 44694976U, 44825152U, 44956864U, 45088448U,
+ 45219008U, 45350464U, 45481024U, 45612608U, 45744064U, 45874496U, 46006208U,
+ 46136768U, 46267712U, 46399424U, 46529344U, 46660672U, 46791488U, 46923328U,
+ 47053504U, 47185856U, 47316928U, 47447872U, 47579072U, 47710144U, 47839936U,
+ 47971648U, 48103232U, 48234176U, 48365248U, 48496192U, 48627136U, 48757312U,
+ 48889664U, 49020736U, 49149248U, 49283008U, 49413824U, 49545152U, 49675712U,
+ 49807168U, 49938368U, 50069056U, 50200256U, 50331584U, 50462656U, 50593472U,
+ 50724032U, 50853952U, 50986048U, 51117632U, 51248576U, 51379904U, 51510848U,
+ 51641792U, 51773248U, 51903296U, 52035136U, 52164032U, 52297664U, 52427968U,
+ 52557376U, 52690112U, 52821952U, 52952896U, 53081536U, 53213504U, 53344576U,
+ 53475776U, 53608384U, 53738816U, 53870528U, 54000832U, 54131776U, 54263744U,
+ 54394688U, 54525248U, 54655936U, 54787904U, 54918592U, 55049152U, 55181248U,
+ 55312064U, 55442752U, 55574336U, 55705024U, 55836224U, 55967168U, 56097856U,
+ 56228672U, 56358592U, 56490176U, 56621888U, 56753728U, 56884928U, 57015488U,
+ 57146816U, 57278272U, 57409216U, 57540416U, 57671104U, 57802432U, 57933632U,
+ 58064576U, 58195264U, 58326976U, 58457408U, 58588864U, 58720192U, 58849984U,
+ 58981696U, 59113024U, 59243456U, 59375552U, 59506624U, 59637568U, 59768512U,
+ 59897792U, 60030016U, 60161984U, 60293056U, 60423872U, 60554432U, 60683968U,
+ 60817216U, 60948032U, 61079488U, 61209664U, 61341376U, 61471936U, 61602752U,
+ 61733696U, 61865792U, 61996736U, 62127808U, 62259136U, 62389568U, 62520512U,
+ 62651584U, 62781632U, 62910784U, 63045056U, 63176128U, 63307072U, 63438656U,
+ 63569216U, 63700928U, 63831616U, 63960896U, 64093888U, 64225088U, 64355392U,
+ 64486976U, 64617664U, 64748608U, 64879424U, 65009216U, 65142464U, 65273792U,
+ 65402816U, 65535424U, 65666752U, 65797696U, 65927744U, 66060224U, 66191296U,
+ 66321344U, 66453056U, 66584384U, 66715328U, 66846656U, 66977728U, 67108672U,
+ 67239104U, 67370432U, 67501888U, 67631296U, 67763776U, 67895104U, 68026304U,
+ 68157248U, 68287936U, 68419264U, 68548288U, 68681408U, 68811968U, 68942912U,
+ 69074624U, 69205568U, 69337024U, 69467584U, 69599168U, 69729472U, 69861184U,
+ 69989824U, 70122944U, 70253888U, 70385344U, 70515904U, 70647232U, 70778816U,
+ 70907968U, 71040832U, 71171648U, 71303104U, 71432512U, 71564992U, 71695168U,
+ 71826368U, 71958464U, 72089536U, 72219712U, 72350144U, 72482624U, 72613568U,
+ 72744512U, 72875584U, 73006144U, 73138112U, 73268672U, 73400128U, 73530944U,
+ 73662272U, 73793344U, 73924544U, 74055104U, 74185792U, 74316992U, 74448832U,
+ 74579392U, 74710976U, 74841664U, 74972864U, 75102784U, 75233344U, 75364544U,
+ 75497024U, 75627584U, 75759296U, 75890624U, 76021696U, 76152256U, 76283072U,
+ 76414144U, 76545856U, 76676672U, 76806976U, 76937792U, 77070016U, 77200832U,
+ 77331392U, 77462464U, 77593664U, 77725376U, 77856448U, 77987776U, 78118336U,
+ 78249664U, 78380992U, 78511424U, 78642496U, 78773056U, 78905152U, 79033664U,
+ 79166656U, 79297472U, 79429568U, 79560512U, 79690816U, 79822784U, 79953472U,
+ 80084672U, 80214208U, 80346944U, 80477632U, 80608576U, 80740288U, 80870848U,
+ 81002048U, 81133504U, 81264448U, 81395648U, 81525952U, 81657536U, 81786304U,
+ 81919808U, 82050112U, 82181312U, 82311616U, 82443968U, 82573376U, 82705984U,
+ 82835776U, 82967744U, 83096768U, 83230528U, 83359552U, 83491264U, 83622464U,
+ 83753536U, 83886016U, 84015296U, 84147776U, 84277184U, 84409792U, 84540608U,
+ 84672064U, 84803008U, 84934336U, 85065152U, 85193792U, 85326784U, 85458496U,
+ 85589312U, 85721024U, 85851968U, 85982656U, 86112448U, 86244416U, 86370112U,
+ 86506688U, 86637632U, 86769344U, 86900672U, 87031744U, 87162304U, 87293632U,
+ 87424576U, 87555392U, 87687104U, 87816896U, 87947968U, 88079168U, 88211264U,
+ 88341824U, 88473152U, 88603712U, 88735424U, 88862912U, 88996672U, 89128384U,
+ 89259712U, 89390272U, 89521984U, 89652544U, 89783872U, 89914816U, 90045376U,
+ 90177088U, 90307904U, 90438848U, 90569152U, 90700096U, 90832832U, 90963776U,
+ 91093696U, 91223744U, 91356992U, 91486784U, 91618496U, 91749824U, 91880384U,
+ 92012224U, 92143552U, 92273344U, 92405696U, 92536768U, 92666432U, 92798912U,
+ 92926016U, 93060544U, 93192128U, 93322816U, 93453632U, 93583936U, 93715136U,
+ 93845056U, 93977792U, 94109504U, 94240448U, 94371776U, 94501184U, 94632896U,
+ 94764224U, 94895552U, 95023424U, 95158208U, 95287744U, 95420224U, 95550016U,
+ 95681216U, 95811904U, 95943872U, 96075328U, 96203584U, 96337856U, 96468544U,
+ 96599744U, 96731072U, 96860992U, 96992576U, 97124288U, 97254848U, 97385536U,
+ 97517248U, 97647808U, 97779392U, 97910464U, 98041408U, 98172608U, 98303168U,
+ 98434496U, 98565568U, 98696768U, 98827328U, 98958784U, 99089728U, 99220928U,
+ 99352384U, 99482816U, 99614272U, 99745472U, 99876416U, 100007104U,
+ 100138048U, 100267072U, 100401088U, 100529984U, 100662592U, 100791872U,
+ 100925248U, 101056064U, 101187392U, 101317952U, 101449408U, 101580608U,
+ 101711296U, 101841728U, 101973824U, 102104896U, 102235712U, 102366016U,
+ 102498112U, 102628672U, 102760384U, 102890432U, 103021888U, 103153472U,
+ 103284032U, 103415744U, 103545152U, 103677248U, 103808576U, 103939648U,
+ 104070976U, 104201792U, 104332736U, 104462528U, 104594752U, 104725952U,
+ 104854592U, 104988608U, 105118912U, 105247808U, 105381184U, 105511232U,
+ 105643072U, 105774784U, 105903296U, 106037056U, 106167872U, 106298944U,
+ 106429504U, 106561472U, 106691392U, 106822592U, 106954304U, 107085376U,
+ 107216576U, 107346368U, 107478464U, 107609792U, 107739712U, 107872192U,
+ 108003136U, 108131392U, 108265408U, 108396224U, 108527168U, 108657344U,
+ 108789568U, 108920384U, 109049792U, 109182272U, 109312576U, 109444928U,
+ 109572928U, 109706944U, 109837888U, 109969088U, 110099648U, 110230976U,
+ 110362432U, 110492992U, 110624704U, 110755264U, 110886208U, 111017408U,
+ 111148864U, 111279296U, 111410752U, 111541952U, 111673024U, 111803456U,
+ 111933632U, 112066496U, 112196416U, 112328512U, 112457792U, 112590784U,
+ 112715968U, 112852672U, 112983616U, 113114944U, 113244224U, 113376448U,
+ 113505472U, 113639104U, 113770304U, 113901376U, 114031552U, 114163264U,
+ 114294592U, 114425536U, 114556864U, 114687424U, 114818624U, 114948544U,
+ 115080512U, 115212224U, 115343296U, 115473472U, 115605184U, 115736128U,
+ 115867072U, 115997248U, 116128576U, 116260288U, 116391488U, 116522944U,
+ 116652992U, 116784704U, 116915648U, 117046208U, 117178304U, 117308608U,
+ 117440192U, 117569728U, 117701824U, 117833024U, 117964096U, 118094656U,
+ 118225984U, 118357312U, 118489024U, 118617536U, 118749632U, 118882112U,
+ 119012416U, 119144384U, 119275328U, 119406016U, 119537344U, 119668672U,
+ 119798464U, 119928896U, 120061376U, 120192832U, 120321728U, 120454336U,
+ 120584512U, 120716608U, 120848192U, 120979136U, 121109056U, 121241408U,
+ 121372352U, 121502912U, 121634752U, 121764416U, 121895744U, 122027072U,
+ 122157632U, 122289088U, 122421184U, 122550592U, 122682944U, 122813888U,
+ 122945344U, 123075776U, 123207488U, 123338048U, 123468736U, 123600704U,
+ 123731264U, 123861952U, 123993664U, 124124608U, 124256192U, 124386368U,
+ 124518208U, 124649024U, 124778048U, 124911296U, 125041088U, 125173696U,
+ 125303744U, 125432896U, 125566912U, 125696576U, 125829056U, 125958592U,
+ 126090304U, 126221248U, 126352832U, 126483776U, 126615232U, 126746432U,
+ 126876608U, 127008704U, 127139392U, 127270336U, 127401152U, 127532224U,
+ 127663552U, 127794752U, 127925696U, 128055232U, 128188096U, 128319424U,
+ 128449856U, 128581312U, 128712256U, 128843584U, 128973632U, 129103808U,
+ 129236288U, 129365696U, 129498944U, 129629888U, 129760832U, 129892288U,
+ 130023104U, 130154048U, 130283968U, 130416448U, 130547008U, 130678336U,
+ 130807616U, 130939456U, 131071552U, 131202112U, 131331776U, 131464384U,
+ 131594048U, 131727296U, 131858368U, 131987392U, 132120256U, 132250816U,
+ 132382528U, 132513728U, 132644672U, 132774976U, 132905792U, 133038016U,
+ 133168832U, 133299392U, 133429312U, 133562048U, 133692992U, 133823296U,
+ 133954624U, 134086336U, 134217152U, 134348608U, 134479808U, 134607296U,
+ 134741056U, 134872384U, 135002944U, 135134144U, 135265472U, 135396544U,
+ 135527872U, 135659072U, 135787712U, 135921472U, 136052416U, 136182848U,
+ 136313792U, 136444864U, 136576448U, 136707904U, 136837952U, 136970048U,
+ 137099584U, 137232064U, 137363392U, 137494208U, 137625536U, 137755712U,
+ 137887424U, 138018368U, 138149824U, 138280256U, 138411584U, 138539584U,
+ 138672832U, 138804928U, 138936128U, 139066688U, 139196864U, 139328704U,
+ 139460032U, 139590208U, 139721024U, 139852864U, 139984576U, 140115776U,
+ 140245696U, 140376512U, 140508352U, 140640064U, 140769856U, 140902336U,
+ 141032768U, 141162688U, 141294016U, 141426496U, 141556544U, 141687488U,
+ 141819584U, 141949888U, 142080448U, 142212544U, 142342336U, 142474432U,
+ 142606144U, 142736192U, 142868288U, 142997824U, 143129408U, 143258944U,
+ 143392448U, 143523136U, 143653696U, 143785024U, 143916992U, 144045632U,
+ 144177856U, 144309184U, 144440768U, 144570688U, 144701888U, 144832448U,
+ 144965056U, 145096384U, 145227584U, 145358656U, 145489856U, 145620928U,
+ 145751488U, 145883072U, 146011456U, 146144704U, 146275264U, 146407232U,
+ 146538176U, 146668736U, 146800448U, 146931392U, 147062336U, 147193664U,
+ 147324224U, 147455936U, 147586624U, 147717056U, 147848768U, 147979456U,
+ 148110784U, 148242368U, 148373312U, 148503232U, 148635584U, 148766144U,
+ 148897088U, 149028416U, 149159488U, 149290688U, 149420224U, 149551552U,
+ 149683136U, 149814976U, 149943616U, 150076352U, 150208064U, 150338624U,
+ 150470464U, 150600256U, 150732224U, 150862784U, 150993088U, 151125952U,
+ 151254976U, 151388096U, 151519168U, 151649728U, 151778752U, 151911104U,
+ 152042944U, 152174144U, 152304704U, 152435648U, 152567488U, 152698816U,
+ 152828992U, 152960576U, 153091648U, 153222976U, 153353792U, 153484096U,
+ 153616192U, 153747008U, 153878336U, 154008256U, 154139968U, 154270912U,
+ 154402624U, 154533824U, 154663616U, 154795712U, 154926272U, 155057984U,
+ 155188928U, 155319872U, 155450816U, 155580608U, 155712064U, 155843392U,
+ 155971136U, 156106688U, 156237376U, 156367424U, 156499264U, 156630976U,
+ 156761536U, 156892352U, 157024064U, 157155008U, 157284416U, 157415872U,
+ 157545536U, 157677248U, 157810496U, 157938112U, 158071744U, 158203328U,
+ 158334656U, 158464832U, 158596288U, 158727616U, 158858048U, 158988992U,
+ 159121216U, 159252416U, 159381568U, 159513152U, 159645632U, 159776192U,
+ 159906496U, 160038464U, 160169536U, 160300352U, 160430656U, 160563008U,
+ 160693952U, 160822208U, 160956352U, 161086784U, 161217344U, 161349184U,
+ 161480512U, 161611456U, 161742272U, 161873216U, 162002752U, 162135872U,
+ 162266432U, 162397888U, 162529216U, 162660032U, 162790976U, 162922048U,
+ 163052096U, 163184576U, 163314752U, 163446592U, 163577408U, 163707968U,
+ 163839296U, 163969984U, 164100928U, 164233024U, 164364224U, 164494912U,
+ 164625856U, 164756672U, 164887616U, 165019072U, 165150016U, 165280064U,
+ 165412672U, 165543104U, 165674944U, 165805888U, 165936832U, 166067648U,
+ 166198336U, 166330048U, 166461248U, 166591552U, 166722496U, 166854208U,
+ 166985408U, 167116736U, 167246656U, 167378368U, 167508416U, 167641024U,
+ 167771584U, 167903168U, 168034112U, 168164032U, 168295744U, 168427456U,
+ 168557632U, 168688448U, 168819136U, 168951616U, 169082176U, 169213504U,
+ 169344832U, 169475648U, 169605952U, 169738048U, 169866304U, 169999552U,
+ 170131264U, 170262464U, 170393536U, 170524352U, 170655424U, 170782016U,
+ 170917696U, 171048896U, 171179072U, 171310784U, 171439936U, 171573184U,
+ 171702976U, 171835072U, 171966272U, 172097216U, 172228288U, 172359232U,
+ 172489664U, 172621376U, 172747712U, 172883264U, 173014208U, 173144512U,
+ 173275072U, 173407424U, 173539136U, 173669696U, 173800768U, 173931712U,
+ 174063424U, 174193472U, 174325696U, 174455744U, 174586816U, 174718912U,
+ 174849728U, 174977728U, 175109696U, 175242688U, 175374272U, 175504832U,
+ 175636288U, 175765696U, 175898432U, 176028992U, 176159936U, 176291264U,
+ 176422592U, 176552512U, 176684864U, 176815424U, 176946496U, 177076544U,
+ 177209152U, 177340096U, 177470528U, 177600704U, 177731648U, 177864256U,
+ 177994816U, 178126528U, 178257472U, 178387648U, 178518464U, 178650176U,
+ 178781888U, 178912064U, 179044288U, 179174848U, 179305024U, 179436736U,
+ 179568448U, 179698496U, 179830208U, 179960512U, 180092608U, 180223808U,
+ 180354752U, 180485696U, 180617152U, 180748096U, 180877504U, 181009984U,
+ 181139264U, 181272512U, 181402688U, 181532608U, 181663168U, 181795136U,
+ 181926592U, 182057536U, 182190016U, 182320192U, 182451904U, 182582336U,
+ 182713792U, 182843072U, 182976064U, 183107264U, 183237056U, 183368384U,
+ 183494848U, 183631424U, 183762752U, 183893824U, 184024768U, 184154816U,
+ 184286656U, 184417984U, 184548928U, 184680128U, 184810816U, 184941248U,
+ 185072704U, 185203904U, 185335616U, 185465408U, 185596352U, 185727296U,
+ 185859904U, 185989696U, 186121664U, 186252992U, 186383552U, 186514112U,
+ 186645952U, 186777152U, 186907328U, 187037504U, 187170112U, 187301824U,
+ 187429184U, 187562048U, 187693504U, 187825472U, 187957184U, 188087104U,
+ 188218304U, 188349376U, 188481344U, 188609728U, 188743616U, 188874304U,
+ 189005248U, 189136448U, 189265088U, 189396544U, 189528128U, 189660992U,
+ 189791936U, 189923264U, 190054208U, 190182848U, 190315072U, 190447424U,
+ 190577984U, 190709312U, 190840768U, 190971328U, 191102656U, 191233472U,
+ 191364032U, 191495872U, 191626816U, 191758016U, 191888192U, 192020288U,
+ 192148928U, 192282176U, 192413504U, 192542528U, 192674752U, 192805952U,
+ 192937792U, 193068608U, 193198912U, 193330496U, 193462208U, 193592384U,
+ 193723456U, 193854272U, 193985984U, 194116672U, 194247232U, 194379712U,
+ 194508352U, 194641856U, 194772544U, 194900672U, 195035072U, 195166016U,
+ 195296704U, 195428032U, 195558592U, 195690304U, 195818176U, 195952576U,
+ 196083392U, 196214336U, 196345792U, 196476736U, 196607552U, 196739008U,
+ 196869952U, 197000768U, 197130688U, 197262784U, 197394368U, 197523904U,
+ 197656384U, 197787584U, 197916608U, 198049472U, 198180544U, 198310208U,
+ 198442432U, 198573632U, 198705088U, 198834368U, 198967232U, 199097792U,
+ 199228352U, 199360192U, 199491392U, 199621696U, 199751744U, 199883968U,
+ 200014016U, 200146624U, 200276672U, 200408128U, 200540096U, 200671168U,
+ 200801984U, 200933312U, 201062464U, 201194944U, 201326144U, 201457472U,
+ 201588544U, 201719744U, 201850816U, 201981632U, 202111552U, 202244032U,
+ 202374464U, 202505152U, 202636352U, 202767808U, 202898368U, 203030336U,
+ 203159872U, 203292608U, 203423296U, 203553472U, 203685824U, 203816896U,
+ 203947712U, 204078272U, 204208192U, 204341056U, 204472256U, 204603328U,
+ 204733888U, 204864448U, 204996544U, 205125568U, 205258304U, 205388864U,
+ 205517632U, 205650112U, 205782208U, 205913536U, 206044736U, 206176192U,
+ 206307008U, 206434496U, 206569024U, 206700224U, 206831168U, 206961856U,
+ 207093056U, 207223616U, 207355328U, 207486784U, 207616832U, 207749056U,
+ 207879104U, 208010048U, 208141888U, 208273216U, 208404032U, 208534336U,
+ 208666048U, 208796864U, 208927424U, 209059264U, 209189824U, 209321792U,
+ 209451584U, 209582656U, 209715136U, 209845568U, 209976896U, 210106432U,
+ 210239296U, 210370112U, 210501568U, 210630976U, 210763712U, 210894272U,
+ 211024832U, 211156672U, 211287616U, 211418176U, 211549376U, 211679296U,
+ 211812032U, 211942592U, 212074432U, 212204864U, 212334016U, 212467648U,
+ 212597824U, 212727616U, 212860352U, 212991424U, 213120832U, 213253952U,
+ 213385024U, 213515584U, 213645632U, 213777728U, 213909184U, 214040128U,
+ 214170688U, 214302656U, 214433728U, 214564544U, 214695232U, 214826048U,
+ 214956992U, 215089088U, 215219776U, 215350592U, 215482304U, 215613248U,
+ 215743552U, 215874752U, 216005312U, 216137024U, 216267328U, 216399296U,
+ 216530752U, 216661696U, 216790592U, 216923968U, 217054528U, 217183168U,
+ 217316672U, 217448128U, 217579072U, 217709504U, 217838912U, 217972672U,
+ 218102848U, 218233024U, 218364736U, 218496832U, 218627776U, 218759104U,
+ 218888896U, 219021248U, 219151936U, 219281728U, 219413056U, 219545024U,
+ 219675968U, 219807296U, 219938624U, 220069312U, 220200128U, 220331456U,
+ 220461632U, 220592704U, 220725184U, 220855744U, 220987072U, 221117888U,
+ 221249216U, 221378368U, 221510336U, 221642048U, 221772736U, 221904832U,
+ 222031808U, 222166976U, 222297536U, 222428992U, 222559936U, 222690368U,
+ 222820672U, 222953152U, 223083968U, 223213376U, 223345984U, 223476928U,
+ 223608512U, 223738688U, 223869376U, 224001472U, 224132672U, 224262848U,
+ 224394944U, 224524864U, 224657344U, 224788288U, 224919488U, 225050432U,
+ 225181504U, 225312704U, 225443776U, 225574592U, 225704768U, 225834176U,
+ 225966784U, 226097216U, 226229824U, 226360384U, 226491712U, 226623424U,
+ 226754368U, 226885312U, 227015104U, 227147456U, 227278528U, 227409472U,
+ 227539904U, 227669696U, 227802944U, 227932352U, 228065216U, 228196288U,
+ 228326464U, 228457792U, 228588736U, 228720064U, 228850112U, 228981056U,
+ 229113152U, 229243328U, 229375936U, 229505344U, 229636928U, 229769152U,
+ 229894976U, 230030272U, 230162368U, 230292416U, 230424512U, 230553152U,
+ 230684864U, 230816704U, 230948416U, 231079616U, 231210944U, 231342016U,
+ 231472448U, 231603776U, 231733952U, 231866176U, 231996736U, 232127296U,
+ 232259392U, 232388672U, 232521664U, 232652608U, 232782272U, 232914496U,
+ 233043904U, 233175616U, 233306816U, 233438528U, 233569984U, 233699776U,
+ 233830592U, 233962688U, 234092224U, 234221888U, 234353984U, 234485312U,
+ 234618304U, 234749888U, 234880832U, 235011776U, 235142464U, 235274048U,
+ 235403456U, 235535936U, 235667392U, 235797568U, 235928768U, 236057152U,
+ 236190272U, 236322752U, 236453312U, 236583616U, 236715712U, 236846528U,
+ 236976448U, 237108544U, 237239104U, 237371072U, 237501632U, 237630784U,
+ 237764416U, 237895232U, 238026688U, 238157632U, 238286912U, 238419392U,
+ 238548032U, 238681024U, 238812608U, 238941632U, 239075008U, 239206336U,
+ 239335232U, 239466944U, 239599168U, 239730496U, 239861312U, 239992384U,
+ 240122816U, 240254656U, 240385856U, 240516928U, 240647872U, 240779072U,
+ 240909632U, 241040704U, 241171904U, 241302848U, 241433408U, 241565248U,
+ 241696192U, 241825984U, 241958848U, 242088256U, 242220224U, 242352064U,
+ 242481856U, 242611648U, 242744896U, 242876224U, 243005632U, 243138496U,
+ 243268672U, 243400384U, 243531712U, 243662656U, 243793856U, 243924544U,
+ 244054592U, 244187072U, 244316608U, 244448704U, 244580032U, 244710976U,
+ 244841536U, 244972864U, 245104448U, 245233984U, 245365312U, 245497792U,
+ 245628736U, 245759936U, 245889856U, 246021056U, 246152512U, 246284224U,
+ 246415168U, 246545344U, 246675904U, 246808384U, 246939584U, 247070144U,
+ 247199552U, 247331648U, 247463872U, 247593536U, 247726016U, 247857088U,
+ 247987648U, 248116928U, 248249536U, 248380736U, 248512064U, 248643008U,
+ 248773312U, 248901056U, 249036608U, 249167552U, 249298624U, 249429184U,
+ 249560512U, 249692096U, 249822784U, 249954112U, 250085312U, 250215488U,
+ 250345792U, 250478528U, 250608704U, 250739264U, 250870976U, 251002816U,
+ 251133632U, 251263552U, 251395136U, 251523904U, 251657792U, 251789248U,
+ 251919424U, 252051392U, 252182464U, 252313408U, 252444224U, 252575552U,
+ 252706624U, 252836032U, 252968512U, 253099712U, 253227584U, 253361728U,
+ 253493056U, 253623488U, 253754432U, 253885504U, 254017216U, 254148032U,
+ 254279488U, 254410432U, 254541376U, 254672576U, 254803264U, 254933824U,
+ 255065792U, 255196736U, 255326528U, 255458752U, 255589952U, 255721408U,
+ 255851072U, 255983296U, 256114624U, 256244416U, 256374208U, 256507712U,
+ 256636096U, 256768832U, 256900544U, 257031616U, 257162176U, 257294272U,
+ 257424448U, 257555776U, 257686976U, 257818432U, 257949632U, 258079552U,
+ 258211136U, 258342464U, 258473408U, 258603712U, 258734656U, 258867008U,
+ 258996544U, 259127744U, 259260224U, 259391296U, 259522112U, 259651904U,
+ 259784384U, 259915328U, 260045888U, 260175424U, 260308544U, 260438336U,
+ 260570944U, 260700992U, 260832448U, 260963776U, 261092672U, 261226304U,
+ 261356864U, 261487936U, 261619648U, 261750592U, 261879872U, 262011968U,
+ 262143424U, 262274752U, 262404416U, 262537024U, 262667968U, 262799296U,
+ 262928704U, 263061184U, 263191744U, 263322944U, 263454656U, 263585216U,
+ 263716672U, 263847872U, 263978944U, 264108608U, 264241088U, 264371648U,
+ 264501184U, 264632768U, 264764096U, 264895936U, 265024576U, 265158464U,
+ 265287488U, 265418432U, 265550528U, 265681216U, 265813312U, 265943488U,
+ 266075968U, 266206144U, 266337728U, 266468032U, 266600384U, 266731072U,
+ 266862272U, 266993344U, 267124288U, 267255616U, 267386432U, 267516992U,
+ 267648704U, 267777728U, 267910592U, 268040512U, 268172096U, 268302784U,
+ 268435264U, 268566208U, 268696256U, 268828096U, 268959296U, 269090368U,
+ 269221312U, 269352256U, 269482688U, 269614784U, 269745856U, 269876416U,
+ 270007616U, 270139328U, 270270272U, 270401216U, 270531904U, 270663616U,
+ 270791744U, 270924736U, 271056832U, 271186112U, 271317184U, 271449536U,
+ 271580992U, 271711936U, 271843136U, 271973056U, 272105408U, 272236352U,
+ 272367296U, 272498368U, 272629568U, 272759488U, 272891456U, 273022784U,
+ 273153856U, 273284672U, 273415616U, 273547072U, 273677632U, 273808448U,
+ 273937088U, 274071488U, 274200896U, 274332992U, 274463296U, 274595392U,
+ 274726208U, 274857536U, 274988992U, 275118656U, 275250496U, 275382208U,
+ 275513024U, 275643968U, 275775296U, 275906368U, 276037184U, 276167872U,
+ 276297664U, 276429376U, 276560576U, 276692672U, 276822976U, 276955072U,
+ 277085632U, 277216832U, 277347008U, 277478848U, 277609664U, 277740992U,
+ 277868608U, 278002624U, 278134336U, 278265536U, 278395328U, 278526784U,
+ 278657728U, 278789824U, 278921152U, 279052096U, 279182912U, 279313088U,
+ 279443776U, 279576256U, 279706048U, 279838528U, 279969728U, 280099648U,
+ 280230976U, 280361408U, 280493632U, 280622528U, 280755392U, 280887104U,
+ 281018176U, 281147968U, 281278912U, 281411392U, 281542592U, 281673152U,
+ 281803712U, 281935552U, 282066496U, 282197312U, 282329024U, 282458816U,
+ 282590272U, 282720832U, 282853184U, 282983744U, 283115072U, 283246144U,
+ 283377344U, 283508416U, 283639744U, 283770304U, 283901504U, 284032576U,
+ 284163136U, 284294848U, 284426176U, 284556992U, 284687296U, 284819264U,
+ 284950208U, 285081536U
+};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/endian.h b/vendor/github.com/ethereum/ethash/src/libethash/endian.h
new file mode 100644
index 000000000..5b8abf03d
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/endian.h
@@ -0,0 +1,78 @@
+#pragma once
+
+#include <stdint.h>
+#include "compiler.h"
+
+#if defined(__MINGW32__) || defined(_WIN32)
+ # define LITTLE_ENDIAN 1234
+ # define BYTE_ORDER LITTLE_ENDIAN
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+ # include <sys/endian.h>
+#elif defined(__OpenBSD__) || defined(__SVR4)
+ # include <sys/types.h>
+#elif defined(__APPLE__)
+# include <machine/endian.h>
+#elif defined( BSD ) && (BSD >= 199103)
+ # include <machine/endian.h>
+#elif defined( __QNXNTO__ ) && defined( __LITTLEENDIAN__ )
+ # define LITTLE_ENDIAN 1234
+ # define BYTE_ORDER LITTLE_ENDIAN
+#elif defined( __QNXNTO__ ) && defined( __BIGENDIAN__ )
+ # define BIG_ENDIAN 1234
+ # define BYTE_ORDER BIG_ENDIAN
+#else
+# include <endian.h>
+#endif
+
+#if defined(_WIN32)
+#include <stdlib.h>
+#define ethash_swap_u32(input_) _byteswap_ulong(input_)
+#define ethash_swap_u64(input_) _byteswap_uint64(input_)
+#elif defined(__APPLE__)
+#include <libkern/OSByteOrder.h>
+#define ethash_swap_u32(input_) OSSwapInt32(input_)
+#define ethash_swap_u64(input_) OSSwapInt64(input_)
+#elif defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__)
+#define ethash_swap_u32(input_) bswap32(input_)
+#define ethash_swap_u64(input_) bswap64(input_)
+#elif defined(__OpenBSD__)
+#include <endian.h>
+#define ethash_swap_u32(input_) swap32(input_)
+#define ethash_swap_u64(input_) swap64(input_)
+#else // posix
+#include <byteswap.h>
+#define ethash_swap_u32(input_) bswap_32(input_)
+#define ethash_swap_u64(input_) bswap_64(input_)
+#endif
+
+
+#if LITTLE_ENDIAN == BYTE_ORDER
+
+#define fix_endian32(dst_ ,src_) dst_ = src_
+#define fix_endian32_same(val_)
+#define fix_endian64(dst_, src_) dst_ = src_
+#define fix_endian64_same(val_)
+#define fix_endian_arr32(arr_, size_)
+#define fix_endian_arr64(arr_, size_)
+
+#elif BIG_ENDIAN == BYTE_ORDER
+
+#define fix_endian32(dst_, src_) dst_ = ethash_swap_u32(src_)
+#define fix_endian32_same(val_) val_ = ethash_swap_u32(val_)
+#define fix_endian64(dst_, src_) dst_ = ethash_swap_u64(src_)
+#define fix_endian64_same(val_) val_ = ethash_swap_u64(val_)
+#define fix_endian_arr32(arr_, size_) \
+ do { \
+ for (unsigned i_ = 0; i_ < (size_); ++i_) { \
+ arr_[i_] = ethash_swap_u32(arr_[i_]); \
+ } \
+ } while (0)
+#define fix_endian_arr64(arr_, size_) \
+ do { \
+ for (unsigned i_ = 0; i_ < (size_); ++i_) { \
+ arr_[i_] = ethash_swap_u64(arr_[i_]); \
+ } \
+ } while (0)
+#else
+# error "endian not supported"
+#endif // BYTE_ORDER
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/ethash.h b/vendor/github.com/ethereum/ethash/src/libethash/ethash.h
new file mode 100644
index 000000000..0c6a1f9e9
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/ethash.h
@@ -0,0 +1,147 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/** @file ethash.h
+* @date 2015
+*/
+#pragma once
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stddef.h>
+#include "compiler.h"
+
+#define ETHASH_REVISION 23
+#define ETHASH_DATASET_BYTES_INIT 1073741824U // 2**30
+#define ETHASH_DATASET_BYTES_GROWTH 8388608U // 2**23
+#define ETHASH_CACHE_BYTES_INIT 1073741824U // 2**24
+#define ETHASH_CACHE_BYTES_GROWTH 131072U // 2**17
+#define ETHASH_EPOCH_LENGTH 30000U
+#define ETHASH_MIX_BYTES 128
+#define ETHASH_HASH_BYTES 64
+#define ETHASH_DATASET_PARENTS 256
+#define ETHASH_CACHE_ROUNDS 3
+#define ETHASH_ACCESSES 64
+#define ETHASH_DAG_MAGIC_NUM_SIZE 8
+#define ETHASH_DAG_MAGIC_NUM 0xFEE1DEADBADDCAFE
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/// Type of a seedhash/blockhash e.t.c.
+typedef struct ethash_h256 { uint8_t b[32]; } ethash_h256_t;
+
+// convenience macro to statically initialize an h256_t
+// usage:
+// ethash_h256_t a = ethash_h256_static_init(1, 2, 3, ... )
+// have to provide all 32 values. If you don't provide all the rest
+// will simply be unitialized (not guranteed to be 0)
+#define ethash_h256_static_init(...) \
+ { {__VA_ARGS__} }
+
+struct ethash_light;
+typedef struct ethash_light* ethash_light_t;
+struct ethash_full;
+typedef struct ethash_full* ethash_full_t;
+typedef int(*ethash_callback_t)(unsigned);
+
+typedef struct ethash_return_value {
+ ethash_h256_t result;
+ ethash_h256_t mix_hash;
+ bool success;
+} ethash_return_value_t;
+
+/**
+ * Allocate and initialize a new ethash_light handler
+ *
+ * @param block_number The block number for which to create the handler
+ * @return Newly allocated ethash_light handler or NULL in case of
+ * ERRNOMEM or invalid parameters used for @ref ethash_compute_cache_nodes()
+ */
+ethash_light_t ethash_light_new(uint64_t block_number);
+/**
+ * Frees a previously allocated ethash_light handler
+ * @param light The light handler to free
+ */
+void ethash_light_delete(ethash_light_t light);
+/**
+ * Calculate the light client data
+ *
+ * @param light The light client handler
+ * @param header_hash The header hash to pack into the mix
+ * @param nonce The nonce to pack into the mix
+ * @return an object of ethash_return_value_t holding the return values
+ */
+ethash_return_value_t ethash_light_compute(
+ ethash_light_t light,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+);
+
+/**
+ * Allocate and initialize a new ethash_full handler
+ *
+ * @param light The light handler containing the cache.
+ * @param callback A callback function with signature of @ref ethash_callback_t
+ * It accepts an unsigned with which a progress of DAG calculation
+ * can be displayed. If all goes well the callback should return 0.
+ * If a non-zero value is returned then DAG generation will stop.
+ * Be advised. A progress value of 100 means that DAG creation is
+ * almost complete and that this function will soon return succesfully.
+ * It does not mean that the function has already had a succesfull return.
+ * @return Newly allocated ethash_full handler or NULL in case of
+ * ERRNOMEM or invalid parameters used for @ref ethash_compute_full_data()
+ */
+ethash_full_t ethash_full_new(ethash_light_t light, ethash_callback_t callback);
+
+/**
+ * Frees a previously allocated ethash_full handler
+ * @param full The light handler to free
+ */
+void ethash_full_delete(ethash_full_t full);
+/**
+ * Calculate the full client data
+ *
+ * @param full The full client handler
+ * @param header_hash The header hash to pack into the mix
+ * @param nonce The nonce to pack into the mix
+ * @return An object of ethash_return_value to hold the return value
+ */
+ethash_return_value_t ethash_full_compute(
+ ethash_full_t full,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+);
+/**
+ * Get a pointer to the full DAG data
+ */
+void const* ethash_full_dag(ethash_full_t full);
+/**
+ * Get the size of the DAG data
+ */
+uint64_t ethash_full_dag_size(ethash_full_t full);
+
+/**
+ * Calculate the seedhash for a given block number
+ */
+ethash_h256_t ethash_get_seedhash(uint64_t block_number);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/fnv.h b/vendor/github.com/ethereum/ethash/src/libethash/fnv.h
new file mode 100644
index 000000000..82cd655c4
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/fnv.h
@@ -0,0 +1,43 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file fnv.h
+* @author Matthew Wampler-Doty <negacthulhu@gmail.com>
+* @date 2015
+*/
+
+#pragma once
+#include <stdint.h>
+#include "compiler.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FNV_PRIME 0x01000193
+
+/* The FNV-1 spec multiplies the prime with the input one byte (octet) in turn.
+ We instead multiply it with the full 32-bit input.
+ This gives a different result compared to a canonical FNV-1 implementation.
+*/
+static inline uint32_t fnv_hash(uint32_t const x, uint32_t const y)
+{
+ return x * FNV_PRIME ^ y;
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/internal.c b/vendor/github.com/ethereum/ethash/src/libethash/internal.c
new file mode 100644
index 000000000..0a830fc82
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/internal.c
@@ -0,0 +1,507 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file internal.c
+* @author Tim Hughes <tim@twistedfury.com>
+* @author Matthew Wampler-Doty
+* @date 2015
+*/
+
+#include <assert.h>
+#include <inttypes.h>
+#include <stddef.h>
+#include <errno.h>
+#include <math.h>
+#include "mmap.h"
+#include "ethash.h"
+#include "fnv.h"
+#include "endian.h"
+#include "internal.h"
+#include "data_sizes.h"
+#include "io.h"
+
+#ifdef WITH_CRYPTOPP
+
+#include "sha3_cryptopp.h"
+
+#else
+#include "sha3.h"
+#endif // WITH_CRYPTOPP
+
+uint64_t ethash_get_datasize(uint64_t const block_number)
+{
+ assert(block_number / ETHASH_EPOCH_LENGTH < 2048);
+ return dag_sizes[block_number / ETHASH_EPOCH_LENGTH];
+}
+
+uint64_t ethash_get_cachesize(uint64_t const block_number)
+{
+ assert(block_number / ETHASH_EPOCH_LENGTH < 2048);
+ return cache_sizes[block_number / ETHASH_EPOCH_LENGTH];
+}
+
+// Follows Sergio's "STRICT MEMORY HARD HASHING FUNCTIONS" (2014)
+// https://bitslog.files.wordpress.com/2013/12/memohash-v0-3.pdf
+// SeqMemoHash(s, R, N)
+bool static ethash_compute_cache_nodes(
+ node* const nodes,
+ uint64_t cache_size,
+ ethash_h256_t const* seed
+)
+{
+ if (cache_size % sizeof(node) != 0) {
+ return false;
+ }
+ uint32_t const num_nodes = (uint32_t) (cache_size / sizeof(node));
+
+ SHA3_512(nodes[0].bytes, (uint8_t*)seed, 32);
+
+ for (uint32_t i = 1; i != num_nodes; ++i) {
+ SHA3_512(nodes[i].bytes, nodes[i - 1].bytes, 64);
+ }
+
+ for (uint32_t j = 0; j != ETHASH_CACHE_ROUNDS; j++) {
+ for (uint32_t i = 0; i != num_nodes; i++) {
+ uint32_t const idx = nodes[i].words[0] % num_nodes;
+ node data;
+ data = nodes[(num_nodes - 1 + i) % num_nodes];
+ for (uint32_t w = 0; w != NODE_WORDS; ++w) {
+ data.words[w] ^= nodes[idx].words[w];
+ }
+ SHA3_512(nodes[i].bytes, data.bytes, sizeof(data));
+ }
+ }
+
+ // now perform endian conversion
+ fix_endian_arr32(nodes->words, num_nodes * NODE_WORDS);
+ return true;
+}
+
+void ethash_calculate_dag_item(
+ node* const ret,
+ uint32_t node_index,
+ ethash_light_t const light
+)
+{
+ uint32_t num_parent_nodes = (uint32_t) (light->cache_size / sizeof(node));
+ node const* cache_nodes = (node const *) light->cache;
+ node const* init = &cache_nodes[node_index % num_parent_nodes];
+ memcpy(ret, init, sizeof(node));
+ ret->words[0] ^= node_index;
+ SHA3_512(ret->bytes, ret->bytes, sizeof(node));
+#if defined(_M_X64) && ENABLE_SSE
+ __m128i const fnv_prime = _mm_set1_epi32(FNV_PRIME);
+ __m128i xmm0 = ret->xmm[0];
+ __m128i xmm1 = ret->xmm[1];
+ __m128i xmm2 = ret->xmm[2];
+ __m128i xmm3 = ret->xmm[3];
+#endif
+
+ for (uint32_t i = 0; i != ETHASH_DATASET_PARENTS; ++i) {
+ uint32_t parent_index = fnv_hash(node_index ^ i, ret->words[i % NODE_WORDS]) % num_parent_nodes;
+ node const *parent = &cache_nodes[parent_index];
+
+#if defined(_M_X64) && ENABLE_SSE
+ {
+ xmm0 = _mm_mullo_epi32(xmm0, fnv_prime);
+ xmm1 = _mm_mullo_epi32(xmm1, fnv_prime);
+ xmm2 = _mm_mullo_epi32(xmm2, fnv_prime);
+ xmm3 = _mm_mullo_epi32(xmm3, fnv_prime);
+ xmm0 = _mm_xor_si128(xmm0, parent->xmm[0]);
+ xmm1 = _mm_xor_si128(xmm1, parent->xmm[1]);
+ xmm2 = _mm_xor_si128(xmm2, parent->xmm[2]);
+ xmm3 = _mm_xor_si128(xmm3, parent->xmm[3]);
+
+ // have to write to ret as values are used to compute index
+ ret->xmm[0] = xmm0;
+ ret->xmm[1] = xmm1;
+ ret->xmm[2] = xmm2;
+ ret->xmm[3] = xmm3;
+ }
+ #else
+ {
+ for (unsigned w = 0; w != NODE_WORDS; ++w) {
+ ret->words[w] = fnv_hash(ret->words[w], parent->words[w]);
+ }
+ }
+#endif
+ }
+ SHA3_512(ret->bytes, ret->bytes, sizeof(node));
+}
+
+bool ethash_compute_full_data(
+ void* mem,
+ uint64_t full_size,
+ ethash_light_t const light,
+ ethash_callback_t callback
+)
+{
+ if (full_size % (sizeof(uint32_t) * MIX_WORDS) != 0 ||
+ (full_size % sizeof(node)) != 0) {
+ return false;
+ }
+ uint32_t const max_n = (uint32_t)(full_size / sizeof(node));
+ node* full_nodes = mem;
+ double const progress_change = 1.0f / max_n;
+ double progress = 0.0f;
+ // now compute full nodes
+ for (uint32_t n = 0; n != max_n; ++n) {
+ if (callback &&
+ n % (max_n / 100) == 0 &&
+ callback((unsigned int)(ceil(progress * 100.0f))) != 0) {
+
+ return false;
+ }
+ progress += progress_change;
+ ethash_calculate_dag_item(&(full_nodes[n]), n, light);
+ }
+ return true;
+}
+
+static bool ethash_hash(
+ ethash_return_value_t* ret,
+ node const* full_nodes,
+ ethash_light_t const light,
+ uint64_t full_size,
+ ethash_h256_t const header_hash,
+ uint64_t const nonce
+)
+{
+ if (full_size % MIX_WORDS != 0) {
+ return false;
+ }
+
+ // pack hash and nonce together into first 40 bytes of s_mix
+ assert(sizeof(node) * 8 == 512);
+ node s_mix[MIX_NODES + 1];
+ memcpy(s_mix[0].bytes, &header_hash, 32);
+ fix_endian64(s_mix[0].double_words[4], nonce);
+
+ // compute sha3-512 hash and replicate across mix
+ SHA3_512(s_mix->bytes, s_mix->bytes, 40);
+ fix_endian_arr32(s_mix[0].words, 16);
+
+ node* const mix = s_mix + 1;
+ for (uint32_t w = 0; w != MIX_WORDS; ++w) {
+ mix->words[w] = s_mix[0].words[w % NODE_WORDS];
+ }
+
+ unsigned const page_size = sizeof(uint32_t) * MIX_WORDS;
+ unsigned const num_full_pages = (unsigned) (full_size / page_size);
+
+ for (unsigned i = 0; i != ETHASH_ACCESSES; ++i) {
+ uint32_t const index = fnv_hash(s_mix->words[0] ^ i, mix->words[i % MIX_WORDS]) % num_full_pages;
+
+ for (unsigned n = 0; n != MIX_NODES; ++n) {
+ node const* dag_node;
+ if (full_nodes) {
+ dag_node = &full_nodes[MIX_NODES * index + n];
+ } else {
+ node tmp_node;
+ ethash_calculate_dag_item(&tmp_node, index * MIX_NODES + n, light);
+ dag_node = &tmp_node;
+ }
+
+#if defined(_M_X64) && ENABLE_SSE
+ {
+ __m128i fnv_prime = _mm_set1_epi32(FNV_PRIME);
+ __m128i xmm0 = _mm_mullo_epi32(fnv_prime, mix[n].xmm[0]);
+ __m128i xmm1 = _mm_mullo_epi32(fnv_prime, mix[n].xmm[1]);
+ __m128i xmm2 = _mm_mullo_epi32(fnv_prime, mix[n].xmm[2]);
+ __m128i xmm3 = _mm_mullo_epi32(fnv_prime, mix[n].xmm[3]);
+ mix[n].xmm[0] = _mm_xor_si128(xmm0, dag_node->xmm[0]);
+ mix[n].xmm[1] = _mm_xor_si128(xmm1, dag_node->xmm[1]);
+ mix[n].xmm[2] = _mm_xor_si128(xmm2, dag_node->xmm[2]);
+ mix[n].xmm[3] = _mm_xor_si128(xmm3, dag_node->xmm[3]);
+ }
+ #else
+ {
+ for (unsigned w = 0; w != NODE_WORDS; ++w) {
+ mix[n].words[w] = fnv_hash(mix[n].words[w], dag_node->words[w]);
+ }
+ }
+#endif
+ }
+
+ }
+
+ // compress mix
+ for (uint32_t w = 0; w != MIX_WORDS; w += 4) {
+ uint32_t reduction = mix->words[w + 0];
+ reduction = reduction * FNV_PRIME ^ mix->words[w + 1];
+ reduction = reduction * FNV_PRIME ^ mix->words[w + 2];
+ reduction = reduction * FNV_PRIME ^ mix->words[w + 3];
+ mix->words[w / 4] = reduction;
+ }
+
+ fix_endian_arr32(mix->words, MIX_WORDS / 4);
+ memcpy(&ret->mix_hash, mix->bytes, 32);
+ // final Keccak hash
+ SHA3_256(&ret->result, s_mix->bytes, 64 + 32); // Keccak-256(s + compressed_mix)
+ return true;
+}
+
+void ethash_quick_hash(
+ ethash_h256_t* return_hash,
+ ethash_h256_t const* header_hash,
+ uint64_t nonce,
+ ethash_h256_t const* mix_hash
+)
+{
+ uint8_t buf[64 + 32];
+ memcpy(buf, header_hash, 32);
+ fix_endian64_same(nonce);
+ memcpy(&(buf[32]), &nonce, 8);
+ SHA3_512(buf, buf, 40);
+ memcpy(&(buf[64]), mix_hash, 32);
+ SHA3_256(return_hash, buf, 64 + 32);
+}
+
+ethash_h256_t ethash_get_seedhash(uint64_t block_number)
+{
+ ethash_h256_t ret;
+ ethash_h256_reset(&ret);
+ uint64_t const epochs = block_number / ETHASH_EPOCH_LENGTH;
+ for (uint32_t i = 0; i < epochs; ++i)
+ SHA3_256(&ret, (uint8_t*)&ret, 32);
+ return ret;
+}
+
+bool ethash_quick_check_difficulty(
+ ethash_h256_t const* header_hash,
+ uint64_t const nonce,
+ ethash_h256_t const* mix_hash,
+ ethash_h256_t const* boundary
+)
+{
+
+ ethash_h256_t return_hash;
+ ethash_quick_hash(&return_hash, header_hash, nonce, mix_hash);
+ return ethash_check_difficulty(&return_hash, boundary);
+}
+
+ethash_light_t ethash_light_new_internal(uint64_t cache_size, ethash_h256_t const* seed)
+{
+ struct ethash_light *ret;
+ ret = calloc(sizeof(*ret), 1);
+ if (!ret) {
+ return NULL;
+ }
+ ret->cache = malloc((size_t)cache_size);
+ if (!ret->cache) {
+ goto fail_free_light;
+ }
+ node* nodes = (node*)ret->cache;
+ if (!ethash_compute_cache_nodes(nodes, cache_size, seed)) {
+ goto fail_free_cache_mem;
+ }
+ ret->cache_size = cache_size;
+ return ret;
+
+fail_free_cache_mem:
+ free(ret->cache);
+fail_free_light:
+ free(ret);
+ return NULL;
+}
+
+ethash_light_t ethash_light_new(uint64_t block_number)
+{
+ ethash_h256_t seedhash = ethash_get_seedhash(block_number);
+ ethash_light_t ret;
+ ret = ethash_light_new_internal(ethash_get_cachesize(block_number), &seedhash);
+ ret->block_number = block_number;
+ return ret;
+}
+
+void ethash_light_delete(ethash_light_t light)
+{
+ if (light->cache) {
+ free(light->cache);
+ }
+ free(light);
+}
+
+ethash_return_value_t ethash_light_compute_internal(
+ ethash_light_t light,
+ uint64_t full_size,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+)
+{
+ ethash_return_value_t ret;
+ ret.success = true;
+ if (!ethash_hash(&ret, NULL, light, full_size, header_hash, nonce)) {
+ ret.success = false;
+ }
+ return ret;
+}
+
+ethash_return_value_t ethash_light_compute(
+ ethash_light_t light,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+)
+{
+ uint64_t full_size = ethash_get_datasize(light->block_number);
+ return ethash_light_compute_internal(light, full_size, header_hash, nonce);
+}
+
+static bool ethash_mmap(struct ethash_full* ret, FILE* f)
+{
+ int fd;
+ char* mmapped_data;
+ errno = 0;
+ ret->file = f;
+ if ((fd = ethash_fileno(ret->file)) == -1) {
+ return false;
+ }
+ mmapped_data= mmap(
+ NULL,
+ (size_t)ret->file_size + ETHASH_DAG_MAGIC_NUM_SIZE,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED,
+ fd,
+ 0
+ );
+ if (mmapped_data == MAP_FAILED) {
+ return false;
+ }
+ ret->data = (node*)(mmapped_data + ETHASH_DAG_MAGIC_NUM_SIZE);
+ return true;
+}
+
+ethash_full_t ethash_full_new_internal(
+ char const* dirname,
+ ethash_h256_t const seed_hash,
+ uint64_t full_size,
+ ethash_light_t const light,
+ ethash_callback_t callback
+)
+{
+ struct ethash_full* ret;
+ FILE *f = NULL;
+ ret = calloc(sizeof(*ret), 1);
+ if (!ret) {
+ return NULL;
+ }
+ ret->file_size = (size_t)full_size;
+ switch (ethash_io_prepare(dirname, seed_hash, &f, (size_t)full_size, false)) {
+ case ETHASH_IO_FAIL:
+ // ethash_io_prepare will do all ETHASH_CRITICAL() logging in fail case
+ goto fail_free_full;
+ case ETHASH_IO_MEMO_MATCH:
+ if (!ethash_mmap(ret, f)) {
+ ETHASH_CRITICAL("mmap failure()");
+ goto fail_close_file;
+ }
+ return ret;
+ case ETHASH_IO_MEMO_SIZE_MISMATCH:
+ // if a DAG of same filename but unexpected size is found, silently force new file creation
+ if (ethash_io_prepare(dirname, seed_hash, &f, (size_t)full_size, true) != ETHASH_IO_MEMO_MISMATCH) {
+ ETHASH_CRITICAL("Could not recreate DAG file after finding existing DAG with unexpected size.");
+ goto fail_free_full;
+ }
+ // fallthrough to the mismatch case here, DO NOT go through match
+ case ETHASH_IO_MEMO_MISMATCH:
+ if (!ethash_mmap(ret, f)) {
+ ETHASH_CRITICAL("mmap failure()");
+ goto fail_close_file;
+ }
+ break;
+ }
+
+ if (!ethash_compute_full_data(ret->data, full_size, light, callback)) {
+ ETHASH_CRITICAL("Failure at computing DAG data.");
+ goto fail_free_full_data;
+ }
+
+ // after the DAG has been filled then we finalize it by writting the magic number at the beginning
+ if (fseek(f, 0, SEEK_SET) != 0) {
+ ETHASH_CRITICAL("Could not seek to DAG file start to write magic number.");
+ goto fail_free_full_data;
+ }
+ uint64_t const magic_num = ETHASH_DAG_MAGIC_NUM;
+ if (fwrite(&magic_num, ETHASH_DAG_MAGIC_NUM_SIZE, 1, f) != 1) {
+ ETHASH_CRITICAL("Could not write magic number to DAG's beginning.");
+ goto fail_free_full_data;
+ }
+ if (fflush(f) != 0) {// make sure the magic number IS there
+ ETHASH_CRITICAL("Could not flush memory mapped data to DAG file. Insufficient space?");
+ goto fail_free_full_data;
+ }
+ return ret;
+
+fail_free_full_data:
+ // could check that munmap(..) == 0 but even if it did not can't really do anything here
+ munmap(ret->data, (size_t)full_size);
+fail_close_file:
+ fclose(ret->file);
+fail_free_full:
+ free(ret);
+ return NULL;
+}
+
+ethash_full_t ethash_full_new(ethash_light_t light, ethash_callback_t callback)
+{
+ char strbuf[256];
+ if (!ethash_get_default_dirname(strbuf, 256)) {
+ return NULL;
+ }
+ uint64_t full_size = ethash_get_datasize(light->block_number);
+ ethash_h256_t seedhash = ethash_get_seedhash(light->block_number);
+ return ethash_full_new_internal(strbuf, seedhash, full_size, light, callback);
+}
+
+void ethash_full_delete(ethash_full_t full)
+{
+ // could check that munmap(..) == 0 but even if it did not can't really do anything here
+ munmap(full->data, (size_t)full->file_size);
+ if (full->file) {
+ fclose(full->file);
+ }
+ free(full);
+}
+
+ethash_return_value_t ethash_full_compute(
+ ethash_full_t full,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+)
+{
+ ethash_return_value_t ret;
+ ret.success = true;
+ if (!ethash_hash(
+ &ret,
+ (node const*)full->data,
+ NULL,
+ full->file_size,
+ header_hash,
+ nonce)) {
+ ret.success = false;
+ }
+ return ret;
+}
+
+void const* ethash_full_dag(ethash_full_t full)
+{
+ return full->data;
+}
+
+uint64_t ethash_full_dag_size(ethash_full_t full)
+{
+ return full->file_size;
+}
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/internal.h b/vendor/github.com/ethereum/ethash/src/libethash/internal.h
new file mode 100644
index 000000000..26c395ad6
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/internal.h
@@ -0,0 +1,179 @@
+#pragma once
+#include "compiler.h"
+#include "endian.h"
+#include "ethash.h"
+#include <stdio.h>
+
+#define ENABLE_SSE 0
+
+#if defined(_M_X64) && ENABLE_SSE
+#include <smmintrin.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// compile time settings
+#define NODE_WORDS (64/4)
+#define MIX_WORDS (ETHASH_MIX_BYTES/4)
+#define MIX_NODES (MIX_WORDS / NODE_WORDS)
+#include <stdint.h>
+
+typedef union node {
+ uint8_t bytes[NODE_WORDS * 4];
+ uint32_t words[NODE_WORDS];
+ uint64_t double_words[NODE_WORDS / 2];
+
+#if defined(_M_X64) && ENABLE_SSE
+ __m128i xmm[NODE_WORDS/4];
+#endif
+
+} node;
+
+static inline uint8_t ethash_h256_get(ethash_h256_t const* hash, unsigned int i)
+{
+ return hash->b[i];
+}
+
+static inline void ethash_h256_set(ethash_h256_t* hash, unsigned int i, uint8_t v)
+{
+ hash->b[i] = v;
+}
+
+static inline void ethash_h256_reset(ethash_h256_t* hash)
+{
+ memset(hash, 0, 32);
+}
+
+// Returns if hash is less than or equal to boundary (2^256/difficulty)
+static inline bool ethash_check_difficulty(
+ ethash_h256_t const* hash,
+ ethash_h256_t const* boundary
+)
+{
+ // Boundary is big endian
+ for (int i = 0; i < 32; i++) {
+ if (ethash_h256_get(hash, i) == ethash_h256_get(boundary, i)) {
+ continue;
+ }
+ return ethash_h256_get(hash, i) < ethash_h256_get(boundary, i);
+ }
+ return true;
+}
+
+/**
+ * Difficulty quick check for POW preverification
+ *
+ * @param header_hash The hash of the header
+ * @param nonce The block's nonce
+ * @param mix_hash The mix digest hash
+ * @param boundary The boundary is defined as (2^256 / difficulty)
+ * @return true for succesful pre-verification and false otherwise
+ */
+bool ethash_quick_check_difficulty(
+ ethash_h256_t const* header_hash,
+ uint64_t const nonce,
+ ethash_h256_t const* mix_hash,
+ ethash_h256_t const* boundary
+);
+
+struct ethash_light {
+ void* cache;
+ uint64_t cache_size;
+ uint64_t block_number;
+};
+
+/**
+ * Allocate and initialize a new ethash_light handler. Internal version
+ *
+ * @param cache_size The size of the cache in bytes
+ * @param seed Block seedhash to be used during the computation of the
+ * cache nodes
+ * @return Newly allocated ethash_light handler or NULL in case of
+ * ERRNOMEM or invalid parameters used for @ref ethash_compute_cache_nodes()
+ */
+ethash_light_t ethash_light_new_internal(uint64_t cache_size, ethash_h256_t const* seed);
+
+/**
+ * Calculate the light client data. Internal version.
+ *
+ * @param light The light client handler
+ * @param full_size The size of the full data in bytes.
+ * @param header_hash The header hash to pack into the mix
+ * @param nonce The nonce to pack into the mix
+ * @return The resulting hash.
+ */
+ethash_return_value_t ethash_light_compute_internal(
+ ethash_light_t light,
+ uint64_t full_size,
+ ethash_h256_t const header_hash,
+ uint64_t nonce
+);
+
+struct ethash_full {
+ FILE* file;
+ uint64_t file_size;
+ node* data;
+};
+
+/**
+ * Allocate and initialize a new ethash_full handler. Internal version.
+ *
+ * @param dirname The directory in which to put the DAG file.
+ * @param seedhash The seed hash of the block. Used in the DAG file naming.
+ * @param full_size The size of the full data in bytes.
+ * @param cache A cache object to use that was allocated with @ref ethash_cache_new().
+ * Iff this function succeeds the ethash_full_t will take memory
+ * memory ownership of the cache and free it at deletion. If
+ * not then the user still has to handle freeing of the cache himself.
+ * @param callback A callback function with signature of @ref ethash_callback_t
+ * It accepts an unsigned with which a progress of DAG calculation
+ * can be displayed. If all goes well the callback should return 0.
+ * If a non-zero value is returned then DAG generation will stop.
+ * @return Newly allocated ethash_full handler or NULL in case of
+ * ERRNOMEM or invalid parameters used for @ref ethash_compute_full_data()
+ */
+ethash_full_t ethash_full_new_internal(
+ char const* dirname,
+ ethash_h256_t const seed_hash,
+ uint64_t full_size,
+ ethash_light_t const light,
+ ethash_callback_t callback
+);
+
+void ethash_calculate_dag_item(
+ node* const ret,
+ uint32_t node_index,
+ ethash_light_t const cache
+);
+
+void ethash_quick_hash(
+ ethash_h256_t* return_hash,
+ ethash_h256_t const* header_hash,
+ const uint64_t nonce,
+ ethash_h256_t const* mix_hash
+);
+
+uint64_t ethash_get_datasize(uint64_t const block_number);
+uint64_t ethash_get_cachesize(uint64_t const block_number);
+
+/**
+ * Compute the memory data for a full node's memory
+ *
+ * @param mem A pointer to an ethash full's memory
+ * @param full_size The size of the full data in bytes
+ * @param cache A cache object to use in the calculation
+ * @param callback The callback function. Check @ref ethash_full_new() for details.
+ * @return true if all went fine and false for invalid parameters
+ */
+bool ethash_compute_full_data(
+ void* mem,
+ uint64_t full_size,
+ ethash_light_t const light,
+ ethash_callback_t callback
+);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/io.c b/vendor/github.com/ethereum/ethash/src/libethash/io.c
new file mode 100644
index 000000000..f4db477c2
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/io.c
@@ -0,0 +1,119 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file io.c
+ * @author Lefteris Karapetsas <lefteris@ethdev.com>
+ * @date 2015
+ */
+#include "io.h"
+#include <string.h>
+#include <stdio.h>
+#include <errno.h>
+
+enum ethash_io_rc ethash_io_prepare(
+ char const* dirname,
+ ethash_h256_t const seedhash,
+ FILE** output_file,
+ uint64_t file_size,
+ bool force_create
+)
+{
+ char mutable_name[DAG_MUTABLE_NAME_MAX_SIZE];
+ enum ethash_io_rc ret = ETHASH_IO_FAIL;
+ // reset errno before io calls
+ errno = 0;
+
+ // assert directory exists
+ if (!ethash_mkdir(dirname)) {
+ ETHASH_CRITICAL("Could not create the ethash directory");
+ goto end;
+ }
+
+ ethash_io_mutable_name(ETHASH_REVISION, &seedhash, mutable_name);
+ char* tmpfile = ethash_io_create_filename(dirname, mutable_name, strlen(mutable_name));
+ if (!tmpfile) {
+ ETHASH_CRITICAL("Could not create the full DAG pathname");
+ goto end;
+ }
+
+ FILE *f;
+ if (!force_create) {
+ // try to open the file
+ f = ethash_fopen(tmpfile, "rb+");
+ if (f) {
+ size_t found_size;
+ if (!ethash_file_size(f, &found_size)) {
+ fclose(f);
+ ETHASH_CRITICAL("Could not query size of DAG file: \"%s\"", tmpfile);
+ goto free_memo;
+ }
+ if (file_size != found_size - ETHASH_DAG_MAGIC_NUM_SIZE) {
+ fclose(f);
+ ret = ETHASH_IO_MEMO_SIZE_MISMATCH;
+ goto free_memo;
+ }
+ // compare the magic number, no need to care about endianess since it's local
+ uint64_t magic_num;
+ if (fread(&magic_num, ETHASH_DAG_MAGIC_NUM_SIZE, 1, f) != 1) {
+ // I/O error
+ fclose(f);
+ ETHASH_CRITICAL("Could not read from DAG file: \"%s\"", tmpfile);
+ ret = ETHASH_IO_MEMO_SIZE_MISMATCH;
+ goto free_memo;
+ }
+ if (magic_num != ETHASH_DAG_MAGIC_NUM) {
+ fclose(f);
+ ret = ETHASH_IO_MEMO_SIZE_MISMATCH;
+ goto free_memo;
+ }
+ ret = ETHASH_IO_MEMO_MATCH;
+ goto set_file;
+ }
+ }
+
+ // file does not exist, will need to be created
+ f = ethash_fopen(tmpfile, "wb+");
+ if (!f) {
+ ETHASH_CRITICAL("Could not create DAG file: \"%s\"", tmpfile);
+ goto free_memo;
+ }
+ // make sure it's of the proper size
+ if (fseek(f, (long int)(file_size + ETHASH_DAG_MAGIC_NUM_SIZE - 1), SEEK_SET) != 0) {
+ fclose(f);
+ ETHASH_CRITICAL("Could not seek to the end of DAG file: \"%s\". Insufficient space?", tmpfile);
+ goto free_memo;
+ }
+ if (fputc('\n', f) == EOF) {
+ fclose(f);
+ ETHASH_CRITICAL("Could not write in the end of DAG file: \"%s\". Insufficient space?", tmpfile);
+ goto free_memo;
+ }
+ if (fflush(f) != 0) {
+ fclose(f);
+ ETHASH_CRITICAL("Could not flush at end of DAG file: \"%s\". Insufficient space?", tmpfile);
+ goto free_memo;
+ }
+ ret = ETHASH_IO_MEMO_MISMATCH;
+ goto set_file;
+
+ ret = ETHASH_IO_MEMO_MATCH;
+set_file:
+ *output_file = f;
+free_memo:
+ free(tmpfile);
+end:
+ return ret;
+}
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/io.h b/vendor/github.com/ethereum/ethash/src/libethash/io.h
new file mode 100644
index 000000000..7a27089c7
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/io.h
@@ -0,0 +1,202 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file io.h
+ * @author Lefteris Karapetsas <lefteris@ethdev.com>
+ * @date 2015
+ */
+#pragma once
+#include <stdlib.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include <stdio.h>
+#ifdef __cplusplus
+#define __STDC_FORMAT_MACROS 1
+#endif
+#include <inttypes.h>
+#include "endian.h"
+#include "ethash.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+// Maximum size for mutable part of DAG file name
+// 6 is for "full-R", the suffix of the filename
+// 10 is for maximum number of digits of a uint32_t (for REVISION)
+// 1 is for - and 16 is for the first 16 hex digits for first 8 bytes of
+// the seedhash and last 1 is for the null terminating character
+// Reference: https://github.com/ethereum/wiki/wiki/Ethash-DAG
+#define DAG_MUTABLE_NAME_MAX_SIZE (6 + 10 + 1 + 16 + 1)
+/// Possible return values of @see ethash_io_prepare
+enum ethash_io_rc {
+ ETHASH_IO_FAIL = 0, ///< There has been an IO failure
+ ETHASH_IO_MEMO_SIZE_MISMATCH, ///< DAG with revision/hash match, but file size was wrong.
+ ETHASH_IO_MEMO_MISMATCH, ///< The DAG file did not exist or there was revision/hash mismatch
+ ETHASH_IO_MEMO_MATCH, ///< DAG file existed and revision/hash matched. No need to do anything
+};
+
+// small hack for windows. I don't feel I should use va_args and forward just
+// to have this one function properly cross-platform abstracted
+#if defined(_WIN32) && !defined(__GNUC__)
+#define snprintf(...) sprintf_s(__VA_ARGS__)
+#endif
+
+/**
+ * Logs a critical error in important parts of ethash. Should mostly help
+ * figure out what kind of problem (I/O, memory e.t.c.) causes a NULL
+ * ethash_full_t
+ */
+#ifdef ETHASH_PRINT_CRITICAL_OUTPUT
+#define ETHASH_CRITICAL(...) \
+ do \
+ { \
+ printf("ETHASH CRITICAL ERROR: "__VA_ARGS__); \
+ printf("\n"); \
+ fflush(stdout); \
+ } while (0)
+#else
+#define ETHASH_CRITICAL(...)
+#endif
+
+/**
+ * Prepares io for ethash
+ *
+ * Create the DAG directory and the DAG file if they don't exist.
+ *
+ * @param[in] dirname A null terminated c-string of the path of the ethash
+ * data directory. If it does not exist it's created.
+ * @param[in] seedhash The seedhash of the current block number, used in the
+ * naming of the file as can be seen from the spec at:
+ * https://github.com/ethereum/wiki/wiki/Ethash-DAG
+ * @param[out] output_file If there was no failure then this will point to an open
+ * file descriptor. User is responsible for closing it.
+ * In the case of memo match then the file is open on read
+ * mode, while on the case of mismatch a new file is created
+ * on write mode
+ * @param[in] file_size The size that the DAG file should have on disk
+ * @param[out] force_create If true then there is no check to see if the file
+ * already exists
+ * @return For possible return values @see enum ethash_io_rc
+ */
+enum ethash_io_rc ethash_io_prepare(
+ char const* dirname,
+ ethash_h256_t const seedhash,
+ FILE** output_file,
+ uint64_t file_size,
+ bool force_create
+);
+
+/**
+ * An fopen wrapper for no-warnings crossplatform fopen.
+ *
+ * Msvc compiler considers fopen to be insecure and suggests to use their
+ * alternative. This is a wrapper for this alternative. Another way is to
+ * #define _CRT_SECURE_NO_WARNINGS, but disabling all security warnings does
+ * not sound like a good idea.
+ *
+ * @param file_name The path to the file to open
+ * @param mode Opening mode. Check fopen()
+ * @return The FILE* or NULL in failure
+ */
+FILE* ethash_fopen(char const* file_name, char const* mode);
+
+/**
+ * An strncat wrapper for no-warnings crossplatform strncat.
+ *
+ * Msvc compiler considers strncat to be insecure and suggests to use their
+ * alternative. This is a wrapper for this alternative. Another way is to
+ * #define _CRT_SECURE_NO_WARNINGS, but disabling all security warnings does
+ * not sound like a good idea.
+ *
+ * @param des Destination buffer
+ * @param dest_size Maximum size of the destination buffer. This is the
+ * extra argument for the MSVC secure strncat
+ * @param src Souce buffer
+ * @param count Number of bytes to copy from source
+ * @return If all is well returns the dest buffer. If there is an
+ * error returns NULL
+ */
+char* ethash_strncat(char* dest, size_t dest_size, char const* src, size_t count);
+
+/**
+ * A cross-platform mkdir wrapper to create a directory or assert it's there
+ *
+ * @param dirname The full path of the directory to create
+ * @return true if the directory was created or if it already
+ * existed
+ */
+bool ethash_mkdir(char const* dirname);
+
+/**
+ * Get a file's size
+ *
+ * @param[in] f The open file stream whose size to get
+ * @param[out] size Pass a size_t by reference to contain the file size
+ * @return true in success and false if there was a failure
+ */
+bool ethash_file_size(FILE* f, size_t* ret_size);
+
+/**
+ * Get a file descriptor number from a FILE stream
+ *
+ * @param f The file stream whose fd to get
+ * @return Platform specific fd handler
+ */
+int ethash_fileno(FILE* f);
+
+/**
+ * Create the filename for the DAG.
+ *
+ * @param dirname The directory name in which the DAG file should reside
+ * If it does not end with a directory separator it is appended.
+ * @param filename The actual name of the file
+ * @param filename_length The length of the filename in bytes
+ * @return A char* containing the full name. User must deallocate.
+ */
+char* ethash_io_create_filename(
+ char const* dirname,
+ char const* filename,
+ size_t filename_length
+);
+
+/**
+ * Gets the default directory name for the DAG depending on the system
+ *
+ * The spec defining this directory is here: https://github.com/ethereum/wiki/wiki/Ethash-DAG
+ *
+ * @param[out] strbuf A string buffer of sufficient size to keep the
+ * null termninated string of the directory name
+ * @param[in] buffsize Size of @a strbuf in bytes
+ * @return true for success and false otherwise
+ */
+bool ethash_get_default_dirname(char* strbuf, size_t buffsize);
+
+static inline bool ethash_io_mutable_name(
+ uint32_t revision,
+ ethash_h256_t const* seed_hash,
+ char* output
+)
+{
+ uint64_t hash = *((uint64_t*)seed_hash);
+#if LITTLE_ENDIAN == BYTE_ORDER
+ hash = ethash_swap_u64(hash);
+#endif
+ return snprintf(output, DAG_MUTABLE_NAME_MAX_SIZE, "full-R%u-%016" PRIx64, revision, hash) >= 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/io_posix.c b/vendor/github.com/ethereum/ethash/src/libethash/io_posix.c
new file mode 100644
index 000000000..c9a17d845
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/io_posix.c
@@ -0,0 +1,111 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file io_posix.c
+ * @author Lefteris Karapetsas <lefteris@ethdev.com>
+ * @date 2015
+ */
+
+#include "io.h"
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <errno.h>
+#include <libgen.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <pwd.h>
+
+FILE* ethash_fopen(char const* file_name, char const* mode)
+{
+ return fopen(file_name, mode);
+}
+
+char* ethash_strncat(char* dest, size_t dest_size, char const* src, size_t count)
+{
+ return strlen(dest) + count + 1 <= dest_size ? strncat(dest, src, count) : NULL;
+}
+
+bool ethash_mkdir(char const* dirname)
+{
+ int rc = mkdir(dirname, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+ return rc != -1 || errno == EEXIST;
+}
+
+int ethash_fileno(FILE *f)
+{
+ return fileno(f);
+}
+
+char* ethash_io_create_filename(
+ char const* dirname,
+ char const* filename,
+ size_t filename_length
+)
+{
+ size_t dirlen = strlen(dirname);
+ size_t dest_size = dirlen + filename_length + 1;
+ if (dirname[dirlen] != '/') {
+ dest_size += 1;
+ }
+ char* name = malloc(dest_size);
+ if (!name) {
+ return NULL;
+ }
+
+ name[0] = '\0';
+ ethash_strncat(name, dest_size, dirname, dirlen);
+ if (dirname[dirlen] != '/') {
+ ethash_strncat(name, dest_size, "/", 1);
+ }
+ ethash_strncat(name, dest_size, filename, filename_length);
+ return name;
+}
+
+bool ethash_file_size(FILE* f, size_t* ret_size)
+{
+ struct stat st;
+ int fd;
+ if ((fd = fileno(f)) == -1 || fstat(fd, &st) != 0) {
+ return false;
+ }
+ *ret_size = st.st_size;
+ return true;
+}
+
+bool ethash_get_default_dirname(char* strbuf, size_t buffsize)
+{
+ static const char dir_suffix[] = ".ethash/";
+ strbuf[0] = '\0';
+ char* home_dir = getenv("HOME");
+ if (!home_dir || strlen(home_dir) == 0)
+ {
+ struct passwd* pwd = getpwuid(getuid());
+ if (pwd)
+ home_dir = pwd->pw_dir;
+ }
+
+ size_t len = strlen(home_dir);
+ if (!ethash_strncat(strbuf, buffsize, home_dir, len)) {
+ return false;
+ }
+ if (home_dir[len] != '/') {
+ if (!ethash_strncat(strbuf, buffsize, "/", 1)) {
+ return false;
+ }
+ }
+ return ethash_strncat(strbuf, buffsize, dir_suffix, sizeof(dir_suffix));
+}
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/io_win32.c b/vendor/github.com/ethereum/ethash/src/libethash/io_win32.c
new file mode 100644
index 000000000..34f1aaa77
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/io_win32.c
@@ -0,0 +1,100 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file io_win32.c
+ * @author Lefteris Karapetsas <lefteris@ethdev.com>
+ * @date 2015
+ */
+
+#include "io.h"
+#include <direct.h>
+#include <errno.h>
+#include <stdio.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <shlobj.h>
+
+FILE* ethash_fopen(char const* file_name, char const* mode)
+{
+ FILE* f;
+ return fopen_s(&f, file_name, mode) == 0 ? f : NULL;
+}
+
+char* ethash_strncat(char* dest, size_t dest_size, char const* src, size_t count)
+{
+ return strncat_s(dest, dest_size, src, count) == 0 ? dest : NULL;
+}
+
+bool ethash_mkdir(char const* dirname)
+{
+ int rc = _mkdir(dirname);
+ return rc != -1 || errno == EEXIST;
+}
+
+int ethash_fileno(FILE* f)
+{
+ return _fileno(f);
+}
+
+char* ethash_io_create_filename(
+ char const* dirname,
+ char const* filename,
+ size_t filename_length
+)
+{
+ size_t dirlen = strlen(dirname);
+ size_t dest_size = dirlen + filename_length + 1;
+ if (dirname[dirlen] != '\\' || dirname[dirlen] != '/') {
+ dest_size += 1;
+ }
+ char* name = malloc(dest_size);
+ if (!name) {
+ return NULL;
+ }
+
+ name[0] = '\0';
+ ethash_strncat(name, dest_size, dirname, dirlen);
+ if (dirname[dirlen] != '\\' || dirname[dirlen] != '/') {
+ ethash_strncat(name, dest_size, "\\", 1);
+ }
+ ethash_strncat(name, dest_size, filename, filename_length);
+ return name;
+}
+
+bool ethash_file_size(FILE* f, size_t* ret_size)
+{
+ struct _stat st;
+ int fd;
+ if ((fd = _fileno(f)) == -1 || _fstat(fd, &st) != 0) {
+ return false;
+ }
+ *ret_size = st.st_size;
+ return true;
+}
+
+bool ethash_get_default_dirname(char* strbuf, size_t buffsize)
+{
+ static const char dir_suffix[] = "Ethash\\";
+ strbuf[0] = '\0';
+ if (!SUCCEEDED(SHGetFolderPathA(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, (CHAR*)strbuf))) {
+ return false;
+ }
+ if (!ethash_strncat(strbuf, buffsize, "\\", 1)) {
+ return false;
+ }
+
+ return ethash_strncat(strbuf, buffsize, dir_suffix, sizeof(dir_suffix));
+}
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/mmap.h b/vendor/github.com/ethereum/ethash/src/libethash/mmap.h
new file mode 100644
index 000000000..1e226e83f
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/mmap.h
@@ -0,0 +1,47 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file mmap.h
+ * @author Lefteris Karapetsas <lefteris@ethdev.com>
+ * @date 2015
+ */
+#pragma once
+#if defined(__MINGW32__) || defined(_WIN32)
+#include <sys/types.h>
+
+#define PROT_READ 0x1
+#define PROT_WRITE 0x2
+/* This flag is only available in WinXP+ */
+#ifdef FILE_MAP_EXECUTE
+#define PROT_EXEC 0x4
+#else
+#define PROT_EXEC 0x0
+#define FILE_MAP_EXECUTE 0
+#endif
+
+#define MAP_SHARED 0x01
+#define MAP_PRIVATE 0x02
+#define MAP_ANONYMOUS 0x20
+#define MAP_ANON MAP_ANONYMOUS
+#define MAP_FAILED ((void *) -1)
+
+void* mmap(void* start, size_t length, int prot, int flags, int fd, off_t offset);
+void munmap(void* addr, size_t length);
+#else // posix, yay! ^_^
+#include <sys/mman.h>
+#endif
+
+
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/mmap_win32.c b/vendor/github.com/ethereum/ethash/src/libethash/mmap_win32.c
new file mode 100644
index 000000000..42968b98a
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/mmap_win32.c
@@ -0,0 +1,84 @@
+/* mmap() replacement for Windows
+ *
+ * Author: Mike Frysinger <vapier@gentoo.org>
+ * Placed into the public domain
+ */
+
+/* References:
+ * CreateFileMapping: http://msdn.microsoft.com/en-us/library/aa366537(VS.85).aspx
+ * CloseHandle: http://msdn.microsoft.com/en-us/library/ms724211(VS.85).aspx
+ * MapViewOfFile: http://msdn.microsoft.com/en-us/library/aa366761(VS.85).aspx
+ * UnmapViewOfFile: http://msdn.microsoft.com/en-us/library/aa366882(VS.85).aspx
+ */
+
+#include <io.h>
+#include <windows.h>
+#include "mmap.h"
+
+#ifdef __USE_FILE_OFFSET64
+# define DWORD_HI(x) (x >> 32)
+# define DWORD_LO(x) ((x) & 0xffffffff)
+#else
+# define DWORD_HI(x) (0)
+# define DWORD_LO(x) (x)
+#endif
+
+void* mmap(void* start, size_t length, int prot, int flags, int fd, off_t offset)
+{
+ if (prot & ~(PROT_READ | PROT_WRITE | PROT_EXEC))
+ return MAP_FAILED;
+ if (fd == -1) {
+ if (!(flags & MAP_ANON) || offset)
+ return MAP_FAILED;
+ } else if (flags & MAP_ANON)
+ return MAP_FAILED;
+
+ DWORD flProtect;
+ if (prot & PROT_WRITE) {
+ if (prot & PROT_EXEC)
+ flProtect = PAGE_EXECUTE_READWRITE;
+ else
+ flProtect = PAGE_READWRITE;
+ } else if (prot & PROT_EXEC) {
+ if (prot & PROT_READ)
+ flProtect = PAGE_EXECUTE_READ;
+ else if (prot & PROT_EXEC)
+ flProtect = PAGE_EXECUTE;
+ } else
+ flProtect = PAGE_READONLY;
+
+ off_t end = length + offset;
+ HANDLE mmap_fd, h;
+ if (fd == -1)
+ mmap_fd = INVALID_HANDLE_VALUE;
+ else
+ mmap_fd = (HANDLE)_get_osfhandle(fd);
+ h = CreateFileMapping(mmap_fd, NULL, flProtect, DWORD_HI(end), DWORD_LO(end), NULL);
+ if (h == NULL)
+ return MAP_FAILED;
+
+ DWORD dwDesiredAccess;
+ if (prot & PROT_WRITE)
+ dwDesiredAccess = FILE_MAP_WRITE;
+ else
+ dwDesiredAccess = FILE_MAP_READ;
+ if (prot & PROT_EXEC)
+ dwDesiredAccess |= FILE_MAP_EXECUTE;
+ if (flags & MAP_PRIVATE)
+ dwDesiredAccess |= FILE_MAP_COPY;
+ void *ret = MapViewOfFile(h, dwDesiredAccess, DWORD_HI(offset), DWORD_LO(offset), length);
+ if (ret == NULL) {
+ ret = MAP_FAILED;
+ }
+ // since we are handling the file ourselves with fd, close the Windows Handle here
+ CloseHandle(h);
+ return ret;
+}
+
+void munmap(void* addr, size_t length)
+{
+ UnmapViewOfFile(addr);
+}
+
+#undef DWORD_HI
+#undef DWORD_LO
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/sha3.c b/vendor/github.com/ethereum/ethash/src/libethash/sha3.c
new file mode 100644
index 000000000..e72fe1018
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/sha3.c
@@ -0,0 +1,151 @@
+/** libkeccak-tiny
+*
+* A single-file implementation of SHA-3 and SHAKE.
+*
+* Implementor: David Leon Gil
+* License: CC0, attribution kindly requested. Blame taken too,
+* but not liability.
+*/
+#include "sha3.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/******** The Keccak-f[1600] permutation ********/
+
+/*** Constants. ***/
+static const uint8_t rho[24] = \
+ { 1, 3, 6, 10, 15, 21,
+ 28, 36, 45, 55, 2, 14,
+ 27, 41, 56, 8, 25, 43,
+ 62, 18, 39, 61, 20, 44};
+static const uint8_t pi[24] = \
+ {10, 7, 11, 17, 18, 3,
+ 5, 16, 8, 21, 24, 4,
+ 15, 23, 19, 13, 12, 2,
+ 20, 14, 22, 9, 6, 1};
+static const uint64_t RC[24] = \
+ {1ULL, 0x8082ULL, 0x800000000000808aULL, 0x8000000080008000ULL,
+ 0x808bULL, 0x80000001ULL, 0x8000000080008081ULL, 0x8000000000008009ULL,
+ 0x8aULL, 0x88ULL, 0x80008009ULL, 0x8000000aULL,
+ 0x8000808bULL, 0x800000000000008bULL, 0x8000000000008089ULL, 0x8000000000008003ULL,
+ 0x8000000000008002ULL, 0x8000000000000080ULL, 0x800aULL, 0x800000008000000aULL,
+ 0x8000000080008081ULL, 0x8000000000008080ULL, 0x80000001ULL, 0x8000000080008008ULL};
+
+/*** Helper macros to unroll the permutation. ***/
+#define rol(x, s) (((x) << s) | ((x) >> (64 - s)))
+#define REPEAT6(e) e e e e e e
+#define REPEAT24(e) REPEAT6(e e e e)
+#define REPEAT5(e) e e e e e
+#define FOR5(v, s, e) \
+ v = 0; \
+ REPEAT5(e; v += s;)
+
+/*** Keccak-f[1600] ***/
+static inline void keccakf(void* state) {
+ uint64_t* a = (uint64_t*)state;
+ uint64_t b[5] = {0};
+ uint64_t t = 0;
+ uint8_t x, y;
+
+ for (int i = 0; i < 24; i++) {
+ // Theta
+ FOR5(x, 1,
+ b[x] = 0;
+ FOR5(y, 5,
+ b[x] ^= a[x + y]; ))
+ FOR5(x, 1,
+ FOR5(y, 5,
+ a[y + x] ^= b[(x + 4) % 5] ^ rol(b[(x + 1) % 5], 1); ))
+ // Rho and pi
+ t = a[1];
+ x = 0;
+ REPEAT24(b[0] = a[pi[x]];
+ a[pi[x]] = rol(t, rho[x]);
+ t = b[0];
+ x++; )
+ // Chi
+ FOR5(y,
+ 5,
+ FOR5(x, 1,
+ b[x] = a[y + x];)
+ FOR5(x, 1,
+ a[y + x] = b[x] ^ ((~b[(x + 1) % 5]) & b[(x + 2) % 5]); ))
+ // Iota
+ a[0] ^= RC[i];
+ }
+}
+
+/******** The FIPS202-defined functions. ********/
+
+/*** Some helper macros. ***/
+
+#define _(S) do { S } while (0)
+#define FOR(i, ST, L, S) \
+ _(for (size_t i = 0; i < L; i += ST) { S; })
+#define mkapply_ds(NAME, S) \
+ static inline void NAME(uint8_t* dst, \
+ const uint8_t* src, \
+ size_t len) { \
+ FOR(i, 1, len, S); \
+ }
+#define mkapply_sd(NAME, S) \
+ static inline void NAME(const uint8_t* src, \
+ uint8_t* dst, \
+ size_t len) { \
+ FOR(i, 1, len, S); \
+ }
+
+mkapply_ds(xorin, dst[i] ^= src[i]) // xorin
+mkapply_sd(setout, dst[i] = src[i]) // setout
+
+#define P keccakf
+#define Plen 200
+
+// Fold P*F over the full blocks of an input.
+#define foldP(I, L, F) \
+ while (L >= rate) { \
+ F(a, I, rate); \
+ P(a); \
+ I += rate; \
+ L -= rate; \
+ }
+
+/** The sponge-based hash construction. **/
+static inline int hash(uint8_t* out, size_t outlen,
+ const uint8_t* in, size_t inlen,
+ size_t rate, uint8_t delim) {
+ if ((out == NULL) || ((in == NULL) && inlen != 0) || (rate >= Plen)) {
+ return -1;
+ }
+ uint8_t a[Plen] = {0};
+ // Absorb input.
+ foldP(in, inlen, xorin);
+ // Xor in the DS and pad frame.
+ a[inlen] ^= delim;
+ a[rate - 1] ^= 0x80;
+ // Xor in the last block.
+ xorin(a, in, inlen);
+ // Apply P
+ P(a);
+ // Squeeze output.
+ foldP(out, outlen, setout);
+ setout(a, out, outlen);
+ memset(a, 0, 200);
+ return 0;
+}
+
+#define defsha3(bits) \
+ int sha3_##bits(uint8_t* out, size_t outlen, \
+ const uint8_t* in, size_t inlen) { \
+ if (outlen > (bits/8)) { \
+ return -1; \
+ } \
+ return hash(out, outlen, in, inlen, 200 - (bits / 4), 0x01); \
+ }
+
+/*** FIPS202 SHA3 FOFs ***/
+defsha3(256)
+defsha3(512)
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/sha3.h b/vendor/github.com/ethereum/ethash/src/libethash/sha3.h
new file mode 100644
index 000000000..a38006292
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/sha3.h
@@ -0,0 +1,31 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "compiler.h"
+#include <stdint.h>
+#include <stdlib.h>
+
+struct ethash_h256;
+
+#define decsha3(bits) \
+ int sha3_##bits(uint8_t*, size_t, uint8_t const*, size_t);
+
+decsha3(256)
+decsha3(512)
+
+static inline void SHA3_256(struct ethash_h256 const* ret, uint8_t const* data, size_t const size)
+{
+ sha3_256((uint8_t*)ret, 32, data, size);
+}
+
+static inline void SHA3_512(uint8_t* ret, uint8_t const* data, size_t const size)
+{
+ sha3_512(ret, 64, data, size);
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.cpp b/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.cpp
new file mode 100644
index 000000000..2a7c02664
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.cpp
@@ -0,0 +1,37 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/** @file sha3.cpp
+* @author Tim Hughes <tim@twistedfury.com>
+* @date 2015
+*/
+#include <stdint.h>
+#include <cryptopp/sha3.h>
+
+extern "C" {
+struct ethash_h256;
+typedef struct ethash_h256 ethash_h256_t;
+void SHA3_256(ethash_h256_t const* ret, uint8_t const* data, size_t size)
+{
+ CryptoPP::SHA3_256().CalculateDigest((uint8_t*)ret, data, size);
+}
+
+void SHA3_512(uint8_t* const ret, uint8_t const* data, size_t size)
+{
+ CryptoPP::SHA3_512().CalculateDigest(ret, data, size);
+}
+}
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.h b/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.h
new file mode 100644
index 000000000..9edc407d5
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/sha3_cryptopp.h
@@ -0,0 +1,18 @@
+#pragma once
+
+#include "compiler.h"
+#include <stdint.h>
+#include <stdlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct ethash_h256;
+
+void SHA3_256(struct ethash_h256 const* ret, uint8_t const* data, size_t size);
+void SHA3_512(uint8_t* const ret, uint8_t const* data, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/util.h b/vendor/github.com/ethereum/ethash/src/libethash/util.h
new file mode 100644
index 000000000..c5fc6e55b
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/util.h
@@ -0,0 +1,47 @@
+/*
+ This file is part of ethash.
+
+ ethash is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ ethash is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with ethash. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file util.h
+ * @author Tim Hughes <tim@twistedfury.com>
+ * @date 2015
+ */
+#pragma once
+#include <stdint.h>
+#include "compiler.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef _MSC_VER
+void debugf(char const* str, ...);
+#else
+#define debugf printf
+#endif
+
+static inline uint32_t min_u32(uint32_t a, uint32_t b)
+{
+ return a < b ? a : b;
+}
+
+static inline uint32_t clamp_u32(uint32_t x, uint32_t min_, uint32_t max_)
+{
+ return x < min_ ? min_ : (x > max_ ? max_ : x);
+}
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/vendor/github.com/ethereum/ethash/src/libethash/util_win32.c b/vendor/github.com/ethereum/ethash/src/libethash/util_win32.c
new file mode 100644
index 000000000..268e6db05
--- /dev/null
+++ b/vendor/github.com/ethereum/ethash/src/libethash/util_win32.c
@@ -0,0 +1,38 @@
+/*
+ This file is part of cpp-ethereum.
+
+ cpp-ethereum is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ cpp-ethereum is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>.
+*/
+/** @file util.c
+ * @author Tim Hughes <tim@twistedfury.com>
+ * @date 2015
+ */
+#include <stdarg.h>
+#include <stdio.h>
+#include "util.h"
+
+
+// foward declare without all of Windows.h
+__declspec(dllimport) void __stdcall OutputDebugStringA(char const* lpOutputString);
+
+void debugf(char const* str, ...)
+{
+ va_list args;
+ va_start(args, str);
+
+ char buf[1<<16];
+ _vsnprintf_s(buf, sizeof(buf), sizeof(buf), str, args);
+ buf[sizeof(buf)-1] = '\0';
+ OutputDebugStringA(buf);
+}
diff --git a/vendor/github.com/fatih/color/.travis.yml b/vendor/github.com/fatih/color/.travis.yml
new file mode 100644
index 000000000..57b4b57c8
--- /dev/null
+++ b/vendor/github.com/fatih/color/.travis.yml
@@ -0,0 +1,5 @@
+language: go
+go:
+ - 1.6
+ - tip
+
diff --git a/vendor/github.com/fatih/color/LICENSE.md b/vendor/github.com/fatih/color/LICENSE.md
new file mode 100644
index 000000000..25fdaf639
--- /dev/null
+++ b/vendor/github.com/fatih/color/LICENSE.md
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Fatih Arslan
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/github.com/fatih/color/README.md b/vendor/github.com/fatih/color/README.md
new file mode 100644
index 000000000..6e39e919f
--- /dev/null
+++ b/vendor/github.com/fatih/color/README.md
@@ -0,0 +1,154 @@
+# Color [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/fatih/color) [![Build Status](http://img.shields.io/travis/fatih/color.svg?style=flat-square)](https://travis-ci.org/fatih/color)
+
+
+
+Color lets you use colorized outputs in terms of [ANSI Escape
+Codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors) in Go (Golang). It
+has support for Windows too! The API can be used in several ways, pick one that
+suits you.
+
+
+
+![Color](http://i.imgur.com/c1JI0lA.png)
+
+
+## Install
+
+```bash
+go get github.com/fatih/color
+```
+
+## Examples
+
+### Standard colors
+
+```go
+// Print with default helper functions
+color.Cyan("Prints text in cyan.")
+
+// A newline will be appended automatically
+color.Blue("Prints %s in blue.", "text")
+
+// These are using the default foreground colors
+color.Red("We have red")
+color.Magenta("And many others ..")
+
+```
+
+### Mix and reuse colors
+
+```go
+// Create a new color object
+c := color.New(color.FgCyan).Add(color.Underline)
+c.Println("Prints cyan text with an underline.")
+
+// Or just add them to New()
+d := color.New(color.FgCyan, color.Bold)
+d.Printf("This prints bold cyan %s\n", "too!.")
+
+// Mix up foreground and background colors, create new mixes!
+red := color.New(color.FgRed)
+
+boldRed := red.Add(color.Bold)
+boldRed.Println("This will print text in bold red.")
+
+whiteBackground := red.Add(color.BgWhite)
+whiteBackground.Println("Red text with white background.")
+```
+
+### Custom print functions (PrintFunc)
+
+```go
+// Create a custom print function for convenience
+red := color.New(color.FgRed).PrintfFunc()
+red("Warning")
+red("Error: %s", err)
+
+// Mix up multiple attributes
+notice := color.New(color.Bold, color.FgGreen).PrintlnFunc()
+notice("Don't forget this...")
+```
+
+### Insert into noncolor strings (SprintFunc)
+
+```go
+// Create SprintXxx functions to mix strings with other non-colorized strings:
+yellow := color.New(color.FgYellow).SprintFunc()
+red := color.New(color.FgRed).SprintFunc()
+fmt.Printf("This is a %s and this is %s.\n", yellow("warning"), red("error"))
+
+info := color.New(color.FgWhite, color.BgGreen).SprintFunc()
+fmt.Printf("This %s rocks!\n", info("package"))
+
+// Use helper functions
+fmt.Println("This", color.RedString("warning"), "should be not neglected.")
+fmt.Printf("%v %v\n", color.GreenString("Info:"), "an important message.")
+
+// Windows supported too! Just don't forget to change the output to color.Output
+fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS"))
+```
+
+### Plug into existing code
+
+```go
+// Use handy standard colors
+color.Set(color.FgYellow)
+
+fmt.Println("Existing text will now be in yellow")
+fmt.Printf("This one %s\n", "too")
+
+color.Unset() // Don't forget to unset
+
+// You can mix up parameters
+color.Set(color.FgMagenta, color.Bold)
+defer color.Unset() // Use it in your function
+
+fmt.Println("All text will now be bold magenta.")
+```
+
+### Disable color
+
+There might be a case where you want to disable color output (for example to
+pipe the standard output of your app to somewhere else). `Color` has support to
+disable colors both globally and for single color definition. For example
+suppose you have a CLI app and a `--no-color` bool flag. You can easily disable
+the color output with:
+
+```go
+
+var flagNoColor = flag.Bool("no-color", false, "Disable color output")
+
+if *flagNoColor {
+ color.NoColor = true // disables colorized output
+}
+```
+
+It also has support for single color definitions (local). You can
+disable/enable color output on the fly:
+
+```go
+c := color.New(color.FgCyan)
+c.Println("Prints cyan text")
+
+c.DisableColor()
+c.Println("This is printed without any color")
+
+c.EnableColor()
+c.Println("This prints again cyan...")
+```
+
+## Todo
+
+* Save/Return previous values
+* Evaluate fmt.Formatter interface
+
+
+## Credits
+
+ * [Fatih Arslan](https://github.com/fatih)
+ * Windows support via @mattn: [colorable](https://github.com/mattn/go-colorable)
+
+## License
+
+The MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) for more details
+
diff --git a/vendor/github.com/fatih/color/color.go b/vendor/github.com/fatih/color/color.go
new file mode 100644
index 000000000..06f4867f7
--- /dev/null
+++ b/vendor/github.com/fatih/color/color.go
@@ -0,0 +1,423 @@
+package color
+
+import (
+ "fmt"
+ "os"
+ "strconv"
+ "strings"
+ "sync"
+
+ "github.com/mattn/go-colorable"
+ "github.com/mattn/go-isatty"
+)
+
+// NoColor defines if the output is colorized or not. It's dynamically set to
+// false or true based on the stdout's file descriptor referring to a terminal
+// or not. This is a global option and affects all colors. For more control
+// over each color block use the methods DisableColor() individually.
+var NoColor = !isatty.IsTerminal(os.Stdout.Fd())
+
+// Color defines a custom color object which is defined by SGR parameters.
+type Color struct {
+ params []Attribute
+ noColor *bool
+}
+
+// Attribute defines a single SGR Code
+type Attribute int
+
+const escape = "\x1b"
+
+// Base attributes
+const (
+ Reset Attribute = iota
+ Bold
+ Faint
+ Italic
+ Underline
+ BlinkSlow
+ BlinkRapid
+ ReverseVideo
+ Concealed
+ CrossedOut
+)
+
+// Foreground text colors
+const (
+ FgBlack Attribute = iota + 30
+ FgRed
+ FgGreen
+ FgYellow
+ FgBlue
+ FgMagenta
+ FgCyan
+ FgWhite
+)
+
+// Foreground Hi-Intensity text colors
+const (
+ FgHiBlack Attribute = iota + 90
+ FgHiRed
+ FgHiGreen
+ FgHiYellow
+ FgHiBlue
+ FgHiMagenta
+ FgHiCyan
+ FgHiWhite
+)
+
+// Background text colors
+const (
+ BgBlack Attribute = iota + 40
+ BgRed
+ BgGreen
+ BgYellow
+ BgBlue
+ BgMagenta
+ BgCyan
+ BgWhite
+)
+
+// Background Hi-Intensity text colors
+const (
+ BgHiBlack Attribute = iota + 100
+ BgHiRed
+ BgHiGreen
+ BgHiYellow
+ BgHiBlue
+ BgHiMagenta
+ BgHiCyan
+ BgHiWhite
+)
+
+// New returns a newly created color object.
+func New(value ...Attribute) *Color {
+ c := &Color{params: make([]Attribute, 0)}
+ c.Add(value...)
+ return c
+}
+
+// Set sets the given parameters immediately. It will change the color of
+// output with the given SGR parameters until color.Unset() is called.
+func Set(p ...Attribute) *Color {
+ c := New(p...)
+ c.Set()
+ return c
+}
+
+// Unset resets all escape attributes and clears the output. Usually should
+// be called after Set().
+func Unset() {
+ if NoColor {
+ return
+ }
+
+ fmt.Fprintf(Output, "%s[%dm", escape, Reset)
+}
+
+// Set sets the SGR sequence.
+func (c *Color) Set() *Color {
+ if c.isNoColorSet() {
+ return c
+ }
+
+ fmt.Fprintf(Output, c.format())
+ return c
+}
+
+func (c *Color) unset() {
+ if c.isNoColorSet() {
+ return
+ }
+
+ Unset()
+}
+
+// Add is used to chain SGR parameters. Use as many as parameters to combine
+// and create custom color objects. Example: Add(color.FgRed, color.Underline).
+func (c *Color) Add(value ...Attribute) *Color {
+ c.params = append(c.params, value...)
+ return c
+}
+
+func (c *Color) prepend(value Attribute) {
+ c.params = append(c.params, 0)
+ copy(c.params[1:], c.params[0:])
+ c.params[0] = value
+}
+
+// Output defines the standard output of the print functions. By default
+// os.Stdout is used.
+var Output = colorable.NewColorableStdout()
+
+// Print formats using the default formats for its operands and writes to
+// standard output. Spaces are added between operands when neither is a
+// string. It returns the number of bytes written and any write error
+// encountered. This is the standard fmt.Print() method wrapped with the given
+// color.
+func (c *Color) Print(a ...interface{}) (n int, err error) {
+ c.Set()
+ defer c.unset()
+
+ return fmt.Fprint(Output, a...)
+}
+
+// Printf formats according to a format specifier and writes to standard output.
+// It returns the number of bytes written and any write error encountered.
+// This is the standard fmt.Printf() method wrapped with the given color.
+func (c *Color) Printf(format string, a ...interface{}) (n int, err error) {
+ c.Set()
+ defer c.unset()
+
+ return fmt.Fprintf(Output, format, a...)
+}
+
+// Println formats using the default formats for its operands and writes to
+// standard output. Spaces are always added between operands and a newline is
+// appended. It returns the number of bytes written and any write error
+// encountered. This is the standard fmt.Print() method wrapped with the given
+// color.
+func (c *Color) Println(a ...interface{}) (n int, err error) {
+ c.Set()
+ defer c.unset()
+
+ return fmt.Fprintln(Output, a...)
+}
+
+// PrintFunc returns a new function that prints the passed arguments as
+// colorized with color.Print().
+func (c *Color) PrintFunc() func(a ...interface{}) {
+ return func(a ...interface{}) { c.Print(a...) }
+}
+
+// PrintfFunc returns a new function that prints the passed arguments as
+// colorized with color.Printf().
+func (c *Color) PrintfFunc() func(format string, a ...interface{}) {
+ return func(format string, a ...interface{}) { c.Printf(format, a...) }
+}
+
+// PrintlnFunc returns a new function that prints the passed arguments as
+// colorized with color.Println().
+func (c *Color) PrintlnFunc() func(a ...interface{}) {
+ return func(a ...interface{}) { c.Println(a...) }
+}
+
+// SprintFunc returns a new function that returns colorized strings for the
+// given arguments with fmt.Sprint(). Useful to put into or mix into other
+// string. Windows users should use this in conjuction with color.Output, example:
+//
+// put := New(FgYellow).SprintFunc()
+// fmt.Fprintf(color.Output, "This is a %s", put("warning"))
+func (c *Color) SprintFunc() func(a ...interface{}) string {
+ return func(a ...interface{}) string {
+ return c.wrap(fmt.Sprint(a...))
+ }
+}
+
+// SprintfFunc returns a new function that returns colorized strings for the
+// given arguments with fmt.Sprintf(). Useful to put into or mix into other
+// string. Windows users should use this in conjuction with color.Output.
+func (c *Color) SprintfFunc() func(format string, a ...interface{}) string {
+ return func(format string, a ...interface{}) string {
+ return c.wrap(fmt.Sprintf(format, a...))
+ }
+}
+
+// SprintlnFunc returns a new function that returns colorized strings for the
+// given arguments with fmt.Sprintln(). Useful to put into or mix into other
+// string. Windows users should use this in conjuction with color.Output.
+func (c *Color) SprintlnFunc() func(a ...interface{}) string {
+ return func(a ...interface{}) string {
+ return c.wrap(fmt.Sprintln(a...))
+ }
+}
+
+// sequence returns a formated SGR sequence to be plugged into a "\x1b[...m"
+// an example output might be: "1;36" -> bold cyan
+func (c *Color) sequence() string {
+ format := make([]string, len(c.params))
+ for i, v := range c.params {
+ format[i] = strconv.Itoa(int(v))
+ }
+
+ return strings.Join(format, ";")
+}
+
+// wrap wraps the s string with the colors attributes. The string is ready to
+// be printed.
+func (c *Color) wrap(s string) string {
+ if c.isNoColorSet() {
+ return s
+ }
+
+ return c.format() + s + c.unformat()
+}
+
+func (c *Color) format() string {
+ return fmt.Sprintf("%s[%sm", escape, c.sequence())
+}
+
+func (c *Color) unformat() string {
+ return fmt.Sprintf("%s[%dm", escape, Reset)
+}
+
+// DisableColor disables the color output. Useful to not change any existing
+// code and still being able to output. Can be used for flags like
+// "--no-color". To enable back use EnableColor() method.
+func (c *Color) DisableColor() {
+ c.noColor = boolPtr(true)
+}
+
+// EnableColor enables the color output. Use it in conjuction with
+// DisableColor(). Otherwise this method has no side effects.
+func (c *Color) EnableColor() {
+ c.noColor = boolPtr(false)
+}
+
+func (c *Color) isNoColorSet() bool {
+ // check first if we have user setted action
+ if c.noColor != nil {
+ return *c.noColor
+ }
+
+ // if not return the global option, which is disabled by default
+ return NoColor
+}
+
+// Equals returns a boolean value indicating whether two colors are equal.
+func (c *Color) Equals(c2 *Color) bool {
+ if len(c.params) != len(c2.params) {
+ return false
+ }
+
+ for _, attr := range c.params {
+ if !c2.attrExists(attr) {
+ return false
+ }
+ }
+
+ return true
+}
+
+func (c *Color) attrExists(a Attribute) bool {
+ for _, attr := range c.params {
+ if attr == a {
+ return true
+ }
+ }
+
+ return false
+}
+
+func boolPtr(v bool) *bool {
+ return &v
+}
+
+// colorsCache is used to reduce the count of created Color objects and
+// allows to reuse already created objects with required Attribute.
+var colorsCache = make(map[Attribute]*Color)
+
+var colorsCacheMu = new(sync.Mutex) // protects colorsCache
+
+func getCachedColor(p Attribute) *Color {
+ colorsCacheMu.Lock()
+ defer colorsCacheMu.Unlock()
+
+ c, ok := colorsCache[p]
+ if !ok {
+ c = New(p)
+ colorsCache[p] = c
+ }
+
+ return c
+}
+
+func colorPrint(format string, p Attribute, a ...interface{}) {
+ c := getCachedColor(p)
+
+ if !strings.HasSuffix(format, "\n") {
+ format += "\n"
+ }
+
+ if len(a) == 0 {
+ c.Print(format)
+ } else {
+ c.Printf(format, a...)
+ }
+}
+
+func colorString(format string, p Attribute, a ...interface{}) string {
+ c := getCachedColor(p)
+
+ if len(a) == 0 {
+ return c.SprintFunc()(format)
+ }
+
+ return c.SprintfFunc()(format, a...)
+}
+
+// Black is an convenient helper function to print with black foreground. A
+// newline is appended to format by default.
+func Black(format string, a ...interface{}) { colorPrint(format, FgBlack, a...) }
+
+// Red is an convenient helper function to print with red foreground. A
+// newline is appended to format by default.
+func Red(format string, a ...interface{}) { colorPrint(format, FgRed, a...) }
+
+// Green is an convenient helper function to print with green foreground. A
+// newline is appended to format by default.
+func Green(format string, a ...interface{}) { colorPrint(format, FgGreen, a...) }
+
+// Yellow is an convenient helper function to print with yellow foreground.
+// A newline is appended to format by default.
+func Yellow(format string, a ...interface{}) { colorPrint(format, FgYellow, a...) }
+
+// Blue is an convenient helper function to print with blue foreground. A
+// newline is appended to format by default.
+func Blue(format string, a ...interface{}) { colorPrint(format, FgBlue, a...) }
+
+// Magenta is an convenient helper function to print with magenta foreground.
+// A newline is appended to format by default.
+func Magenta(format string, a ...interface{}) { colorPrint(format, FgMagenta, a...) }
+
+// Cyan is an convenient helper function to print with cyan foreground. A
+// newline is appended to format by default.
+func Cyan(format string, a ...interface{}) { colorPrint(format, FgCyan, a...) }
+
+// White is an convenient helper function to print with white foreground. A
+// newline is appended to format by default.
+func White(format string, a ...interface{}) { colorPrint(format, FgWhite, a...) }
+
+// BlackString is an convenient helper function to return a string with black
+// foreground.
+func BlackString(format string, a ...interface{}) string { return colorString(format, FgBlack, a...) }
+
+// RedString is an convenient helper function to return a string with red
+// foreground.
+func RedString(format string, a ...interface{}) string { return colorString(format, FgRed, a...) }
+
+// GreenString is an convenient helper function to return a string with green
+// foreground.
+func GreenString(format string, a ...interface{}) string { return colorString(format, FgGreen, a...) }
+
+// YellowString is an convenient helper function to return a string with yellow
+// foreground.
+func YellowString(format string, a ...interface{}) string { return colorString(format, FgYellow, a...) }
+
+// BlueString is an convenient helper function to return a string with blue
+// foreground.
+func BlueString(format string, a ...interface{}) string { return colorString(format, FgBlue, a...) }
+
+// MagentaString is an convenient helper function to return a string with magenta
+// foreground.
+func MagentaString(format string, a ...interface{}) string {
+ return colorString(format, FgMagenta, a...)
+}
+
+// CyanString is an convenient helper function to return a string with cyan
+// foreground.
+func CyanString(format string, a ...interface{}) string { return colorString(format, FgCyan, a...) }
+
+// WhiteString is an convenient helper function to return a string with white
+// foreground.
+func WhiteString(format string, a ...interface{}) string { return colorString(format, FgWhite, a...) }
diff --git a/vendor/github.com/fatih/color/doc.go b/vendor/github.com/fatih/color/doc.go
new file mode 100644
index 000000000..17908787c
--- /dev/null
+++ b/vendor/github.com/fatih/color/doc.go
@@ -0,0 +1,114 @@
+/*
+Package color is an ANSI color package to output colorized or SGR defined
+output to the standard output. The API can be used in several way, pick one
+that suits you.
+
+Use simple and default helper functions with predefined foreground colors:
+
+ color.Cyan("Prints text in cyan.")
+
+ // a newline will be appended automatically
+ color.Blue("Prints %s in blue.", "text")
+
+ // More default foreground colors..
+ color.Red("We have red")
+ color.Yellow("Yellow color too!")
+ color.Magenta("And many others ..")
+
+However there are times where custom color mixes are required. Below are some
+examples to create custom color objects and use the print functions of each
+separate color object.
+
+ // Create a new color object
+ c := color.New(color.FgCyan).Add(color.Underline)
+ c.Println("Prints cyan text with an underline.")
+
+ // Or just add them to New()
+ d := color.New(color.FgCyan, color.Bold)
+ d.Printf("This prints bold cyan %s\n", "too!.")
+
+
+ // Mix up foreground and background colors, create new mixes!
+ red := color.New(color.FgRed)
+
+ boldRed := red.Add(color.Bold)
+ boldRed.Println("This will print text in bold red.")
+
+ whiteBackground := red.Add(color.BgWhite)
+ whiteBackground.Println("Red text with White background.")
+
+
+You can create PrintXxx functions to simplify even more:
+
+ // Create a custom print function for convenient
+ red := color.New(color.FgRed).PrintfFunc()
+ red("warning")
+ red("error: %s", err)
+
+ // Mix up multiple attributes
+ notice := color.New(color.Bold, color.FgGreen).PrintlnFunc()
+ notice("don't forget this...")
+
+
+Or create SprintXxx functions to mix strings with other non-colorized strings:
+
+ yellow := New(FgYellow).SprintFunc()
+ red := New(FgRed).SprintFunc()
+
+ fmt.Printf("this is a %s and this is %s.\n", yellow("warning"), red("error"))
+
+ info := New(FgWhite, BgGreen).SprintFunc()
+ fmt.Printf("this %s rocks!\n", info("package"))
+
+Windows support is enabled by default. All Print functions works as intended.
+However only for color.SprintXXX functions, user should use fmt.FprintXXX and
+set the output to color.Output:
+
+ fmt.Fprintf(color.Output, "Windows support: %s", color.GreenString("PASS"))
+
+ info := New(FgWhite, BgGreen).SprintFunc()
+ fmt.Fprintf(color.Output, "this %s rocks!\n", info("package"))
+
+Using with existing code is possible. Just use the Set() method to set the
+standard output to the given parameters. That way a rewrite of an existing
+code is not required.
+
+ // Use handy standard colors.
+ color.Set(color.FgYellow)
+
+ fmt.Println("Existing text will be now in Yellow")
+ fmt.Printf("This one %s\n", "too")
+
+ color.Unset() // don't forget to unset
+
+ // You can mix up parameters
+ color.Set(color.FgMagenta, color.Bold)
+ defer color.Unset() // use it in your function
+
+ fmt.Println("All text will be now bold magenta.")
+
+There might be a case where you want to disable color output (for example to
+pipe the standard output of your app to somewhere else). `Color` has support to
+disable colors both globally and for single color definition. For example
+suppose you have a CLI app and a `--no-color` bool flag. You can easily disable
+the color output with:
+
+ var flagNoColor = flag.Bool("no-color", false, "Disable color output")
+
+ if *flagNoColor {
+ color.NoColor = true // disables colorized output
+ }
+
+It also has support for single color definitions (local). You can
+disable/enable color output on the fly:
+
+ c := color.New(color.FgCyan)
+ c.Println("Prints cyan text")
+
+ c.DisableColor()
+ c.Println("This is printed without any color")
+
+ c.EnableColor()
+ c.Println("This prints again cyan...")
+*/
+package color
diff --git a/vendor/github.com/gizak/termui/.gitignore b/vendor/github.com/gizak/termui/.gitignore
new file mode 100644
index 000000000..8b156b020
--- /dev/null
+++ b/vendor/github.com/gizak/termui/.gitignore
@@ -0,0 +1,26 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
+.DS_Store
+/vendor
diff --git a/vendor/github.com/gizak/termui/.travis.yml b/vendor/github.com/gizak/termui/.travis.yml
new file mode 100644
index 000000000..206e88740
--- /dev/null
+++ b/vendor/github.com/gizak/termui/.travis.yml
@@ -0,0 +1,6 @@
+language: go
+
+go:
+ - tip
+
+script: go test -v ./ \ No newline at end of file
diff --git a/vendor/github.com/gizak/termui/LICENSE b/vendor/github.com/gizak/termui/LICENSE
new file mode 100644
index 000000000..311ccc74f
--- /dev/null
+++ b/vendor/github.com/gizak/termui/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Zack Guo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/vendor/github.com/gizak/termui/README.md b/vendor/github.com/gizak/termui/README.md
new file mode 100644
index 000000000..4f3d4a419
--- /dev/null
+++ b/vendor/github.com/gizak/termui/README.md
@@ -0,0 +1,150 @@
+# termui [![Build Status](https://travis-ci.org/gizak/termui.svg?branch=master)](https://travis-ci.org/gizak/termui) [![Doc Status](https://godoc.org/github.com/gizak/termui?status.png)](https://godoc.org/github.com/gizak/termui)
+
+<img src="./_example/dashboard.gif" alt="demo cast under osx 10.10; Terminal.app; Menlo Regular 12pt.)" width="80%">
+
+`termui` is a cross-platform, easy-to-compile, and fully-customizable terminal dashboard. It is inspired by [blessed-contrib](https://github.com/yaronn/blessed-contrib), but purely in Go.
+
+Now version v2 has arrived! It brings new event system, new theme system, new `Buffer` interface and specific colour text rendering. (some docs are missing, but it will be completed soon!)
+
+## Installation
+
+`master` mirrors v2 branch, to install:
+
+ go get -u github.com/gizak/termui
+
+It is recommanded to use locked deps by using [glide](https://glide.sh): move to `termui` src directory then run `glide up`.
+
+For the compatible reason, you can choose to install the legacy version of `termui`:
+
+ go get gopkg.in/gizak/termui.v1
+
+## Usage
+
+### Layout
+
+To use `termui`, the very first thing you may want to know is how to manage layout. `termui` offers two ways of doing this, known as absolute layout and grid layout.
+
+__Absolute layout__
+
+Each widget has an underlying block structure which basically is a box model. It has border, label and padding properties. A border of a widget can be chosen to hide or display (with its border label), you can pick a different front/back colour for the border as well. To display such a widget at a specific location in terminal window, you need to assign `.X`, `.Y`, `.Height`, `.Width` values for each widget before sending it to `.Render`. Let's demonstrate these by a code snippet:
+
+`````go
+ import ui "github.com/gizak/termui" // <- ui shortcut, optional
+
+ func main() {
+ err := ui.Init()
+ if err != nil {
+ panic(err)
+ }
+ defer ui.Close()
+
+ p := ui.NewPar(":PRESS q TO QUIT DEMO")
+ p.Height = 3
+ p.Width = 50
+ p.TextFgColor = ui.ColorWhite
+ p.BorderLabel = "Text Box"
+ p.BorderFg = ui.ColorCyan
+
+ g := ui.NewGauge()
+ g.Percent = 50
+ g.Width = 50
+ g.Height = 3
+ g.Y = 11
+ g.BorderLabel = "Gauge"
+ g.BarColor = ui.ColorRed
+ g.BorderFg = ui.ColorWhite
+ g.BorderLabelFg = ui.ColorCyan
+
+ ui.Render(p, g) // feel free to call Render, it's async and non-block
+
+ // event handler...
+ }
+`````
+
+Note that components can be overlapped (I'd rather call this a feature...), `Render(rs ...Renderer)` renders its args from left to right (i.e. each component's weight is arising from left to right).
+
+__Grid layout:__
+
+<img src="./_example/grid.gif" alt="grid" width="60%">
+
+Grid layout uses [12 columns grid system](http://www.w3schools.com/bootstrap/bootstrap_grid_system.asp) with expressive syntax. To use `Grid`, all we need to do is build a widget tree consisting of `Row`s and `Col`s (Actually a `Col` is also a `Row` but with a widget endpoint attached).
+
+```go
+ import ui "github.com/gizak/termui"
+ // init and create widgets...
+
+ // build
+ ui.Body.AddRows(
+ ui.NewRow(
+ ui.NewCol(6, 0, widget0),
+ ui.NewCol(6, 0, widget1)),
+ ui.NewRow(
+ ui.NewCol(3, 0, widget2),
+ ui.NewCol(3, 0, widget30, widget31, widget32),
+ ui.NewCol(6, 0, widget4)))
+
+ // calculate layout
+ ui.Body.Align()
+
+ ui.Render(ui.Body)
+```
+
+### Events
+
+`termui` ships with a http-like event mux handling system. All events are channeled up from different sources (typing, click, windows resize, custom event) and then encoded as universal `Event` object. `Event.Path` indicates the event type and `Event.Data` stores the event data struct. Add a handler to a certain event is easy as below:
+
+```go
+ // handle key q pressing
+ ui.Handle("/sys/kbd/q", func(ui.Event) {
+ // press q to quit
+ ui.StopLoop()
+ })
+
+ ui.Handle("/sys/kbd/C-x", func(ui.Event) {
+ // handle Ctrl + x combination
+ })
+
+ ui.Handle("/sys/kbd", func(ui.Event) {
+ // handle all other key pressing
+ })
+
+ // handle a 1s timer
+ ui.Handle("/timer/1s", func(e ui.Event) {
+ t := e.Data.(ui.EvtTimer)
+ // t is a EvtTimer
+ if t.Count%2 ==0 {
+ // do something
+ }
+ })
+
+ ui.Loop() // block until StopLoop is called
+```
+
+### Widgets
+
+Click image to see the corresponding demo codes.
+
+[<img src="./_example/par.png" alt="par" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/par.go)
+[<img src="./_example/list.png" alt="list" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/list.go)
+[<img src="./_example/gauge.png" alt="gauge" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/gauge.go)
+[<img src="./_example/linechart.png" alt="linechart" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/linechart.go)
+[<img src="./_example/barchart.png" alt="barchart" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/barchart.go)
+[<img src="./_example/mbarchart.png" alt="barchart" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/mbarchart.go)
+[<img src="./_example/sparklines.png" alt="sparklines" type="image/png" width="45%">](https://github.com/gizak/termui/blob/master/_example/sparklines.go)
+
+## GoDoc
+
+[godoc](https://godoc.org/github.com/gizak/termui)
+
+## TODO
+
+- [x] Grid layout
+- [x] Event system
+- [x] Canvas widget
+- [x] Refine APIs
+- [ ] Focusable widgets
+
+## Changelog
+
+## License
+This library is under the [MIT License](http://opensource.org/licenses/MIT)
diff --git a/vendor/github.com/gizak/termui/barchart.go b/vendor/github.com/gizak/termui/barchart.go
new file mode 100644
index 000000000..9e2a10689
--- /dev/null
+++ b/vendor/github.com/gizak/termui/barchart.go
@@ -0,0 +1,149 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "fmt"
+
+// BarChart creates multiple bars in a widget:
+/*
+ bc := termui.NewBarChart()
+ data := []int{3, 2, 5, 3, 9, 5}
+ bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"}
+ bc.BorderLabel = "Bar Chart"
+ bc.Data = data
+ bc.Width = 26
+ bc.Height = 10
+ bc.DataLabels = bclabels
+ bc.TextColor = termui.ColorGreen
+ bc.BarColor = termui.ColorRed
+ bc.NumColor = termui.ColorYellow
+*/
+type BarChart struct {
+ Block
+ BarColor Attribute
+ TextColor Attribute
+ NumColor Attribute
+ Data []int
+ DataLabels []string
+ BarWidth int
+ BarGap int
+ CellChar rune
+ labels [][]rune
+ dataNum [][]rune
+ numBar int
+ scale float64
+ max int
+}
+
+// NewBarChart returns a new *BarChart with current theme.
+func NewBarChart() *BarChart {
+ bc := &BarChart{Block: *NewBlock()}
+ bc.BarColor = ThemeAttr("barchart.bar.bg")
+ bc.NumColor = ThemeAttr("barchart.num.fg")
+ bc.TextColor = ThemeAttr("barchart.text.fg")
+ bc.BarGap = 1
+ bc.BarWidth = 3
+ bc.CellChar = ' '
+ return bc
+}
+
+func (bc *BarChart) layout() {
+ bc.numBar = bc.innerArea.Dx() / (bc.BarGap + bc.BarWidth)
+ bc.labels = make([][]rune, bc.numBar)
+ bc.dataNum = make([][]rune, len(bc.Data))
+
+ for i := 0; i < bc.numBar && i < len(bc.DataLabels) && i < len(bc.Data); i++ {
+ bc.labels[i] = trimStr2Runes(bc.DataLabels[i], bc.BarWidth)
+ n := bc.Data[i]
+ s := fmt.Sprint(n)
+ bc.dataNum[i] = trimStr2Runes(s, bc.BarWidth)
+ }
+
+ //bc.max = bc.Data[0] // what if Data is nil? Sometimes when bar graph is nill it produces panic with panic: runtime error: index out of range
+ // Asign a negative value to get maxvalue auto-populates
+ if bc.max == 0 {
+ bc.max = -1
+ }
+ for i := 0; i < len(bc.Data); i++ {
+ if bc.max < bc.Data[i] {
+ bc.max = bc.Data[i]
+ }
+ }
+ bc.scale = float64(bc.max) / float64(bc.innerArea.Dy()-1)
+}
+
+func (bc *BarChart) SetMax(max int) {
+
+ if max > 0 {
+ bc.max = max
+ }
+}
+
+// Buffer implements Bufferer interface.
+func (bc *BarChart) Buffer() Buffer {
+ buf := bc.Block.Buffer()
+ bc.layout()
+
+ for i := 0; i < bc.numBar && i < len(bc.Data) && i < len(bc.DataLabels); i++ {
+ h := int(float64(bc.Data[i]) / bc.scale)
+ oftX := i * (bc.BarWidth + bc.BarGap)
+
+ barBg := bc.Bg
+ barFg := bc.BarColor
+
+ if bc.CellChar == ' ' {
+ barBg = bc.BarColor
+ barFg = ColorDefault
+ if bc.BarColor == ColorDefault { // the same as above
+ barBg |= AttrReverse
+ }
+ }
+
+ // plot bar
+ for j := 0; j < bc.BarWidth; j++ {
+ for k := 0; k < h; k++ {
+ c := Cell{
+ Ch: bc.CellChar,
+ Bg: barBg,
+ Fg: barFg,
+ }
+
+ x := bc.innerArea.Min.X + i*(bc.BarWidth+bc.BarGap) + j
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 2 - k
+ buf.Set(x, y, c)
+ }
+ }
+ // plot text
+ for j, k := 0, 0; j < len(bc.labels[i]); j++ {
+ w := charWidth(bc.labels[i][j])
+ c := Cell{
+ Ch: bc.labels[i][j],
+ Bg: bc.Bg,
+ Fg: bc.TextColor,
+ }
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 1
+ x := bc.innerArea.Min.X + oftX + k
+ buf.Set(x, y, c)
+ k += w
+ }
+ // plot num
+ for j := 0; j < len(bc.dataNum[i]); j++ {
+ c := Cell{
+ Ch: bc.dataNum[i][j],
+ Fg: bc.NumColor,
+ Bg: barBg,
+ }
+
+ if h == 0 {
+ c.Bg = bc.Bg
+ }
+ x := bc.innerArea.Min.X + oftX + (bc.BarWidth-len(bc.dataNum[i]))/2 + j
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 2
+ buf.Set(x, y, c)
+ }
+ }
+
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/block.go b/vendor/github.com/gizak/termui/block.go
new file mode 100644
index 000000000..418738c8d
--- /dev/null
+++ b/vendor/github.com/gizak/termui/block.go
@@ -0,0 +1,240 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "image"
+
+// Hline is a horizontal line.
+type Hline struct {
+ X int
+ Y int
+ Len int
+ Fg Attribute
+ Bg Attribute
+}
+
+// Vline is a vertical line.
+type Vline struct {
+ X int
+ Y int
+ Len int
+ Fg Attribute
+ Bg Attribute
+}
+
+// Buffer draws a horizontal line.
+func (l Hline) Buffer() Buffer {
+ if l.Len <= 0 {
+ return NewBuffer()
+ }
+ return NewFilledBuffer(l.X, l.Y, l.X+l.Len, l.Y+1, HORIZONTAL_LINE, l.Fg, l.Bg)
+}
+
+// Buffer draws a vertical line.
+func (l Vline) Buffer() Buffer {
+ if l.Len <= 0 {
+ return NewBuffer()
+ }
+ return NewFilledBuffer(l.X, l.Y, l.X+1, l.Y+l.Len, VERTICAL_LINE, l.Fg, l.Bg)
+}
+
+// Buffer draws a box border.
+func (b Block) drawBorder(buf Buffer) {
+ if !b.Border {
+ return
+ }
+
+ min := b.area.Min
+ max := b.area.Max
+
+ x0 := min.X
+ y0 := min.Y
+ x1 := max.X - 1
+ y1 := max.Y - 1
+
+ // draw lines
+ if b.BorderTop {
+ buf.Merge(Hline{x0, y0, x1 - x0, b.BorderFg, b.BorderBg}.Buffer())
+ }
+ if b.BorderBottom {
+ buf.Merge(Hline{x0, y1, x1 - x0, b.BorderFg, b.BorderBg}.Buffer())
+ }
+ if b.BorderLeft {
+ buf.Merge(Vline{x0, y0, y1 - y0, b.BorderFg, b.BorderBg}.Buffer())
+ }
+ if b.BorderRight {
+ buf.Merge(Vline{x1, y0, y1 - y0, b.BorderFg, b.BorderBg}.Buffer())
+ }
+
+ // draw corners
+ if b.BorderTop && b.BorderLeft && b.area.Dx() > 0 && b.area.Dy() > 0 {
+ buf.Set(x0, y0, Cell{TOP_LEFT, b.BorderFg, b.BorderBg})
+ }
+ if b.BorderTop && b.BorderRight && b.area.Dx() > 1 && b.area.Dy() > 0 {
+ buf.Set(x1, y0, Cell{TOP_RIGHT, b.BorderFg, b.BorderBg})
+ }
+ if b.BorderBottom && b.BorderLeft && b.area.Dx() > 0 && b.area.Dy() > 1 {
+ buf.Set(x0, y1, Cell{BOTTOM_LEFT, b.BorderFg, b.BorderBg})
+ }
+ if b.BorderBottom && b.BorderRight && b.area.Dx() > 1 && b.area.Dy() > 1 {
+ buf.Set(x1, y1, Cell{BOTTOM_RIGHT, b.BorderFg, b.BorderBg})
+ }
+}
+
+func (b Block) drawBorderLabel(buf Buffer) {
+ maxTxtW := b.area.Dx() - 2
+ tx := DTrimTxCls(DefaultTxBuilder.Build(b.BorderLabel, b.BorderLabelFg, b.BorderLabelBg), maxTxtW)
+
+ for i, w := 0, 0; i < len(tx); i++ {
+ buf.Set(b.area.Min.X+1+w, b.area.Min.Y, tx[i])
+ w += tx[i].Width()
+ }
+}
+
+// Block is a base struct for all other upper level widgets,
+// consider it as css: display:block.
+// Normally you do not need to create it manually.
+type Block struct {
+ area image.Rectangle
+ innerArea image.Rectangle
+ X int
+ Y int
+ Border bool
+ BorderFg Attribute
+ BorderBg Attribute
+ BorderLeft bool
+ BorderRight bool
+ BorderTop bool
+ BorderBottom bool
+ BorderLabel string
+ BorderLabelFg Attribute
+ BorderLabelBg Attribute
+ Display bool
+ Bg Attribute
+ Width int
+ Height int
+ PaddingTop int
+ PaddingBottom int
+ PaddingLeft int
+ PaddingRight int
+ id string
+ Float Align
+}
+
+// NewBlock returns a *Block which inherits styles from current theme.
+func NewBlock() *Block {
+ b := Block{}
+ b.Display = true
+ b.Border = true
+ b.BorderLeft = true
+ b.BorderRight = true
+ b.BorderTop = true
+ b.BorderBottom = true
+ b.BorderBg = ThemeAttr("border.bg")
+ b.BorderFg = ThemeAttr("border.fg")
+ b.BorderLabelBg = ThemeAttr("label.bg")
+ b.BorderLabelFg = ThemeAttr("label.fg")
+ b.Bg = ThemeAttr("block.bg")
+ b.Width = 2
+ b.Height = 2
+ b.id = GenId()
+ b.Float = AlignNone
+ return &b
+}
+
+func (b Block) Id() string {
+ return b.id
+}
+
+// Align computes box model
+func (b *Block) Align() {
+ // outer
+ b.area.Min.X = 0
+ b.area.Min.Y = 0
+ b.area.Max.X = b.Width
+ b.area.Max.Y = b.Height
+
+ // float
+ b.area = AlignArea(TermRect(), b.area, b.Float)
+ b.area = MoveArea(b.area, b.X, b.Y)
+
+ // inner
+ b.innerArea.Min.X = b.area.Min.X + b.PaddingLeft
+ b.innerArea.Min.Y = b.area.Min.Y + b.PaddingTop
+ b.innerArea.Max.X = b.area.Max.X - b.PaddingRight
+ b.innerArea.Max.Y = b.area.Max.Y - b.PaddingBottom
+
+ if b.Border {
+ if b.BorderLeft {
+ b.innerArea.Min.X++
+ }
+ if b.BorderRight {
+ b.innerArea.Max.X--
+ }
+ if b.BorderTop {
+ b.innerArea.Min.Y++
+ }
+ if b.BorderBottom {
+ b.innerArea.Max.Y--
+ }
+ }
+}
+
+// InnerBounds returns the internal bounds of the block after aligning and
+// calculating the padding and border, if any.
+func (b *Block) InnerBounds() image.Rectangle {
+ b.Align()
+ return b.innerArea
+}
+
+// Buffer implements Bufferer interface.
+// Draw background and border (if any).
+func (b *Block) Buffer() Buffer {
+ b.Align()
+
+ buf := NewBuffer()
+ buf.SetArea(b.area)
+ buf.Fill(' ', ColorDefault, b.Bg)
+
+ b.drawBorder(buf)
+ b.drawBorderLabel(buf)
+
+ return buf
+}
+
+// GetHeight implements GridBufferer.
+// It returns current height of the block.
+func (b Block) GetHeight() int {
+ return b.Height
+}
+
+// SetX implements GridBufferer interface, which sets block's x position.
+func (b *Block) SetX(x int) {
+ b.X = x
+}
+
+// SetY implements GridBufferer interface, it sets y position for block.
+func (b *Block) SetY(y int) {
+ b.Y = y
+}
+
+// SetWidth implements GridBuffer interface, it sets block's width.
+func (b *Block) SetWidth(w int) {
+ b.Width = w
+}
+
+func (b Block) InnerWidth() int {
+ return b.innerArea.Dx()
+}
+
+func (b Block) InnerHeight() int {
+ return b.innerArea.Dy()
+}
+
+func (b Block) InnerX() int {
+ return b.innerArea.Min.X
+}
+
+func (b Block) InnerY() int { return b.innerArea.Min.Y }
diff --git a/vendor/github.com/gizak/termui/block_common.go b/vendor/github.com/gizak/termui/block_common.go
new file mode 100644
index 000000000..0f972cbbd
--- /dev/null
+++ b/vendor/github.com/gizak/termui/block_common.go
@@ -0,0 +1,20 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+// +build !windows
+
+package termui
+
+const TOP_RIGHT = '┐'
+const VERTICAL_LINE = '│'
+const HORIZONTAL_LINE = '─'
+const TOP_LEFT = '┌'
+const BOTTOM_RIGHT = '┘'
+const BOTTOM_LEFT = '└'
+const VERTICAL_LEFT = '┤'
+const VERTICAL_RIGHT = '├'
+const HORIZONTAL_DOWN = '┬'
+const HORIZONTAL_UP = '┴'
+const QUOTA_LEFT = '«'
+const QUOTA_RIGHT = '»'
diff --git a/vendor/github.com/gizak/termui/block_windows.go b/vendor/github.com/gizak/termui/block_windows.go
new file mode 100644
index 000000000..4dbc017de
--- /dev/null
+++ b/vendor/github.com/gizak/termui/block_windows.go
@@ -0,0 +1,14 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+// +build windows
+
+package termui
+
+const TOP_RIGHT = '+'
+const VERTICAL_LINE = '|'
+const HORIZONTAL_LINE = '-'
+const TOP_LEFT = '+'
+const BOTTOM_RIGHT = '+'
+const BOTTOM_LEFT = '+'
diff --git a/vendor/github.com/gizak/termui/buffer.go b/vendor/github.com/gizak/termui/buffer.go
new file mode 100644
index 000000000..60e77863a
--- /dev/null
+++ b/vendor/github.com/gizak/termui/buffer.go
@@ -0,0 +1,106 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "image"
+
+// Cell is a rune with assigned Fg and Bg
+type Cell struct {
+ Ch rune
+ Fg Attribute
+ Bg Attribute
+}
+
+// Buffer is a renderable rectangle cell data container.
+type Buffer struct {
+ Area image.Rectangle // selected drawing area
+ CellMap map[image.Point]Cell
+}
+
+// At returns the cell at (x,y).
+func (b Buffer) At(x, y int) Cell {
+ return b.CellMap[image.Pt(x, y)]
+}
+
+// Set assigns a char to (x,y)
+func (b Buffer) Set(x, y int, c Cell) {
+ b.CellMap[image.Pt(x, y)] = c
+}
+
+// Bounds returns the domain for which At can return non-zero color.
+func (b Buffer) Bounds() image.Rectangle {
+ x0, y0, x1, y1 := 0, 0, 0, 0
+ for p := range b.CellMap {
+ if p.X > x1 {
+ x1 = p.X
+ }
+ if p.X < x0 {
+ x0 = p.X
+ }
+ if p.Y > y1 {
+ y1 = p.Y
+ }
+ if p.Y < y0 {
+ y0 = p.Y
+ }
+ }
+ return image.Rect(x0, y0, x1, y1)
+}
+
+// SetArea assigns a new rect area to Buffer b.
+func (b *Buffer) SetArea(r image.Rectangle) {
+ b.Area.Max = r.Max
+ b.Area.Min = r.Min
+}
+
+// Sync sets drawing area to the buffer's bound
+func (b Buffer) Sync() {
+ b.SetArea(b.Bounds())
+}
+
+// NewCell returns a new cell
+func NewCell(ch rune, fg, bg Attribute) Cell {
+ return Cell{ch, fg, bg}
+}
+
+// Merge merges bs Buffers onto b
+func (b *Buffer) Merge(bs ...Buffer) {
+ for _, buf := range bs {
+ for p, v := range buf.CellMap {
+ b.Set(p.X, p.Y, v)
+ }
+ b.SetArea(b.Area.Union(buf.Area))
+ }
+}
+
+// NewBuffer returns a new Buffer
+func NewBuffer() Buffer {
+ return Buffer{
+ CellMap: make(map[image.Point]Cell),
+ Area: image.Rectangle{}}
+}
+
+// Fill fills the Buffer b with ch,fg and bg.
+func (b Buffer) Fill(ch rune, fg, bg Attribute) {
+ for x := b.Area.Min.X; x < b.Area.Max.X; x++ {
+ for y := b.Area.Min.Y; y < b.Area.Max.Y; y++ {
+ b.Set(x, y, Cell{ch, fg, bg})
+ }
+ }
+}
+
+// NewFilledBuffer returns a new Buffer filled with ch, fb and bg.
+func NewFilledBuffer(x0, y0, x1, y1 int, ch rune, fg, bg Attribute) Buffer {
+ buf := NewBuffer()
+ buf.Area.Min = image.Pt(x0, y0)
+ buf.Area.Max = image.Pt(x1, y1)
+
+ for x := buf.Area.Min.X; x < buf.Area.Max.X; x++ {
+ for y := buf.Area.Min.Y; y < buf.Area.Max.Y; y++ {
+ buf.Set(x, y, Cell{ch, fg, bg})
+ }
+ }
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/canvas.go b/vendor/github.com/gizak/termui/canvas.go
new file mode 100644
index 000000000..4173780f3
--- /dev/null
+++ b/vendor/github.com/gizak/termui/canvas.go
@@ -0,0 +1,72 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+/*
+dots:
+ ,___,
+ |1 4|
+ |2 5|
+ |3 6|
+ |7 8|
+ `````
+*/
+
+var brailleBase = '\u2800'
+
+var brailleOftMap = [4][2]rune{
+ {'\u0001', '\u0008'},
+ {'\u0002', '\u0010'},
+ {'\u0004', '\u0020'},
+ {'\u0040', '\u0080'}}
+
+// Canvas contains drawing map: i,j -> rune
+type Canvas map[[2]int]rune
+
+// NewCanvas returns an empty Canvas
+func NewCanvas() Canvas {
+ return make(map[[2]int]rune)
+}
+
+func chOft(x, y int) rune {
+ return brailleOftMap[y%4][x%2]
+}
+
+func (c Canvas) rawCh(x, y int) rune {
+ if ch, ok := c[[2]int{x, y}]; ok {
+ return ch
+ }
+ return '\u0000' //brailleOffset
+}
+
+// return coordinate in terminal
+func chPos(x, y int) (int, int) {
+ return y / 4, x / 2
+}
+
+// Set sets a point (x,y) in the virtual coordinate
+func (c Canvas) Set(x, y int) {
+ i, j := chPos(x, y)
+ ch := c.rawCh(i, j)
+ ch |= chOft(x, y)
+ c[[2]int{i, j}] = ch
+}
+
+// Unset removes point (x,y)
+func (c Canvas) Unset(x, y int) {
+ i, j := chPos(x, y)
+ ch := c.rawCh(i, j)
+ ch &= ^chOft(x, y)
+ c[[2]int{i, j}] = ch
+}
+
+// Buffer returns un-styled points
+func (c Canvas) Buffer() Buffer {
+ buf := NewBuffer()
+ for k, v := range c {
+ buf.Set(k[0], k[1], Cell{Ch: v + brailleBase})
+ }
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/config b/vendor/github.com/gizak/termui/config
new file mode 100755
index 000000000..18fd6a401
--- /dev/null
+++ b/vendor/github.com/gizak/termui/config
@@ -0,0 +1,26 @@
+#!/usr/bin/env perl6
+
+use v6;
+
+my $copyright = '// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+';
+
+sub MAIN('update-docstr', Str $srcp) {
+ if $srcp.IO.f {
+ $_ = $srcp.IO.slurp;
+ if m/^ \/\/\s Copyright .+? \n\n/ {
+ unless ~$/ eq $copyright {
+ s/^ \/\/\s Copyright .+? \n\n /$copyright/;
+ spurt $srcp, $_;
+ say "[updated] doc string for:"~$srcp;
+ }
+ } else {
+ say "[added] doc string for "~$srcp~" (no match found)";
+ $_ = $copyright ~ $_;
+ spurt $srcp, $_;
+ }
+ }
+}
diff --git a/vendor/github.com/gizak/termui/doc.go b/vendor/github.com/gizak/termui/doc.go
new file mode 100644
index 000000000..0d7108d30
--- /dev/null
+++ b/vendor/github.com/gizak/termui/doc.go
@@ -0,0 +1,29 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+/*
+Package termui is a library designed for creating command line UI. For more info, goto http://github.com/gizak/termui
+
+A simplest example:
+ package main
+
+ import ui "github.com/gizak/termui"
+
+ func main() {
+ if err:=ui.Init(); err != nil {
+ panic(err)
+ }
+ defer ui.Close()
+
+ g := ui.NewGauge()
+ g.Percent = 50
+ g.Width = 50
+ g.BorderLabel = "Gauge"
+
+ ui.Render(g)
+
+ ui.Loop()
+ }
+*/
+package termui
diff --git a/vendor/github.com/gizak/termui/events.go b/vendor/github.com/gizak/termui/events.go
new file mode 100644
index 000000000..6627f8942
--- /dev/null
+++ b/vendor/github.com/gizak/termui/events.go
@@ -0,0 +1,323 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "path"
+ "strconv"
+ "sync"
+ "time"
+
+ "github.com/nsf/termbox-go"
+)
+
+type Event struct {
+ Type string
+ Path string
+ From string
+ To string
+ Data interface{}
+ Time int64
+}
+
+var sysEvtChs []chan Event
+
+type EvtKbd struct {
+ KeyStr string
+}
+
+func evtKbd(e termbox.Event) EvtKbd {
+ ek := EvtKbd{}
+
+ k := string(e.Ch)
+ pre := ""
+ mod := ""
+
+ if e.Mod == termbox.ModAlt {
+ mod = "M-"
+ }
+ if e.Ch == 0 {
+ if e.Key > 0xFFFF-12 {
+ k = "<f" + strconv.Itoa(0xFFFF-int(e.Key)+1) + ">"
+ } else if e.Key > 0xFFFF-25 {
+ ks := []string{"<insert>", "<delete>", "<home>", "<end>", "<previous>", "<next>", "<up>", "<down>", "<left>", "<right>"}
+ k = ks[0xFFFF-int(e.Key)-12]
+ }
+
+ if e.Key <= 0x7F {
+ pre = "C-"
+ k = string('a' - 1 + int(e.Key))
+ kmap := map[termbox.Key][2]string{
+ termbox.KeyCtrlSpace: {"C-", "<space>"},
+ termbox.KeyBackspace: {"", "<backspace>"},
+ termbox.KeyTab: {"", "<tab>"},
+ termbox.KeyEnter: {"", "<enter>"},
+ termbox.KeyEsc: {"", "<escape>"},
+ termbox.KeyCtrlBackslash: {"C-", "\\"},
+ termbox.KeyCtrlSlash: {"C-", "/"},
+ termbox.KeySpace: {"", "<space>"},
+ termbox.KeyCtrl8: {"C-", "8"},
+ }
+ if sk, ok := kmap[e.Key]; ok {
+ pre = sk[0]
+ k = sk[1]
+ }
+ }
+ }
+
+ ek.KeyStr = pre + mod + k
+ return ek
+}
+
+func crtTermboxEvt(e termbox.Event) Event {
+ systypemap := map[termbox.EventType]string{
+ termbox.EventKey: "keyboard",
+ termbox.EventResize: "window",
+ termbox.EventMouse: "mouse",
+ termbox.EventError: "error",
+ termbox.EventInterrupt: "interrupt",
+ }
+ ne := Event{From: "/sys", Time: time.Now().Unix()}
+ typ := e.Type
+ ne.Type = systypemap[typ]
+
+ switch typ {
+ case termbox.EventKey:
+ kbd := evtKbd(e)
+ ne.Path = "/sys/kbd/" + kbd.KeyStr
+ ne.Data = kbd
+ case termbox.EventResize:
+ wnd := EvtWnd{}
+ wnd.Width = e.Width
+ wnd.Height = e.Height
+ ne.Path = "/sys/wnd/resize"
+ ne.Data = wnd
+ case termbox.EventError:
+ err := EvtErr(e.Err)
+ ne.Path = "/sys/err"
+ ne.Data = err
+ case termbox.EventMouse:
+ m := EvtMouse{}
+ m.X = e.MouseX
+ m.Y = e.MouseY
+ ne.Path = "/sys/mouse"
+ ne.Data = m
+ }
+ return ne
+}
+
+type EvtWnd struct {
+ Width int
+ Height int
+}
+
+type EvtMouse struct {
+ X int
+ Y int
+ Press string
+}
+
+type EvtErr error
+
+func hookTermboxEvt() {
+ for {
+ e := termbox.PollEvent()
+
+ for _, c := range sysEvtChs {
+ go func(ch chan Event) {
+ ch <- crtTermboxEvt(e)
+ }(c)
+ }
+ }
+}
+
+func NewSysEvtCh() chan Event {
+ ec := make(chan Event)
+ sysEvtChs = append(sysEvtChs, ec)
+ return ec
+}
+
+var DefaultEvtStream = NewEvtStream()
+
+type EvtStream struct {
+ sync.RWMutex
+ srcMap map[string]chan Event
+ stream chan Event
+ wg sync.WaitGroup
+ sigStopLoop chan Event
+ Handlers map[string]func(Event)
+ hook func(Event)
+}
+
+func NewEvtStream() *EvtStream {
+ return &EvtStream{
+ srcMap: make(map[string]chan Event),
+ stream: make(chan Event),
+ Handlers: make(map[string]func(Event)),
+ sigStopLoop: make(chan Event),
+ }
+}
+
+func (es *EvtStream) Init() {
+ es.Merge("internal", es.sigStopLoop)
+ go func() {
+ es.wg.Wait()
+ close(es.stream)
+ }()
+}
+
+func cleanPath(p string) string {
+ if p == "" {
+ return "/"
+ }
+ if p[0] != '/' {
+ p = "/" + p
+ }
+ return path.Clean(p)
+}
+
+func isPathMatch(pattern, path string) bool {
+ if len(pattern) == 0 {
+ return false
+ }
+ n := len(pattern)
+ return len(path) >= n && path[0:n] == pattern
+}
+
+func (es *EvtStream) Merge(name string, ec chan Event) {
+ es.Lock()
+ defer es.Unlock()
+
+ es.wg.Add(1)
+ es.srcMap[name] = ec
+
+ go func(a chan Event) {
+ for n := range a {
+ n.From = name
+ es.stream <- n
+ }
+ es.wg.Done()
+ }(ec)
+}
+
+func (es *EvtStream) Handle(path string, handler func(Event)) {
+ es.Handlers[cleanPath(path)] = handler
+}
+
+func findMatch(mux map[string]func(Event), path string) string {
+ n := -1
+ pattern := ""
+ for m := range mux {
+ if !isPathMatch(m, path) {
+ continue
+ }
+ if len(m) > n {
+ pattern = m
+ n = len(m)
+ }
+ }
+ return pattern
+
+}
+// Remove all existing defined Handlers from the map
+func (es *EvtStream) ResetHandlers() {
+ for Path, _ := range es.Handlers {
+ delete(es.Handlers, Path)
+ }
+ return
+}
+
+func (es *EvtStream) match(path string) string {
+ return findMatch(es.Handlers, path)
+}
+
+func (es *EvtStream) Hook(f func(Event)) {
+ es.hook = f
+}
+
+func (es *EvtStream) Loop() {
+ for e := range es.stream {
+ switch e.Path {
+ case "/sig/stoploop":
+ return
+ }
+ go func(a Event) {
+ es.RLock()
+ defer es.RUnlock()
+ if pattern := es.match(a.Path); pattern != "" {
+ es.Handlers[pattern](a)
+ }
+ }(e)
+ if es.hook != nil {
+ es.hook(e)
+ }
+ }
+}
+
+func (es *EvtStream) StopLoop() {
+ go func() {
+ e := Event{
+ Path: "/sig/stoploop",
+ }
+ es.sigStopLoop <- e
+ }()
+}
+
+func Merge(name string, ec chan Event) {
+ DefaultEvtStream.Merge(name, ec)
+}
+
+func Handle(path string, handler func(Event)) {
+ DefaultEvtStream.Handle(path, handler)
+}
+
+func Loop() {
+ DefaultEvtStream.Loop()
+}
+
+func StopLoop() {
+ DefaultEvtStream.StopLoop()
+}
+
+type EvtTimer struct {
+ Duration time.Duration
+ Count uint64
+}
+
+func NewTimerCh(du time.Duration) chan Event {
+ t := make(chan Event)
+
+ go func(a chan Event) {
+ n := uint64(0)
+ for {
+ n++
+ time.Sleep(du)
+ e := Event{}
+ e.Type = "timer"
+ e.Path = "/timer/" + du.String()
+ e.Time = time.Now().Unix()
+ e.Data = EvtTimer{
+ Duration: du,
+ Count: n,
+ }
+ t <- e
+
+ }
+ }(t)
+ return t
+}
+
+var DefualtHandler = func(e Event) {
+}
+
+var usrEvtCh = make(chan Event)
+
+func SendCustomEvt(path string, data interface{}) {
+ e := Event{}
+ e.Path = path
+ e.Data = data
+ e.Time = time.Now().Unix()
+ usrEvtCh <- e
+}
diff --git a/vendor/github.com/gizak/termui/gauge.go b/vendor/github.com/gizak/termui/gauge.go
new file mode 100644
index 000000000..01af0ea7c
--- /dev/null
+++ b/vendor/github.com/gizak/termui/gauge.go
@@ -0,0 +1,109 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "strconv"
+ "strings"
+)
+
+// Gauge is a progress bar like widget.
+// A simple example:
+/*
+ g := termui.NewGauge()
+ g.Percent = 40
+ g.Width = 50
+ g.Height = 3
+ g.BorderLabel = "Slim Gauge"
+ g.BarColor = termui.ColorRed
+ g.PercentColor = termui.ColorBlue
+*/
+
+const ColorUndef Attribute = Attribute(^uint16(0))
+
+type Gauge struct {
+ Block
+ Percent int
+ BarColor Attribute
+ PercentColor Attribute
+ PercentColorHighlighted Attribute
+ Label string
+ LabelAlign Align
+}
+
+// NewGauge return a new gauge with current theme.
+func NewGauge() *Gauge {
+ g := &Gauge{
+ Block: *NewBlock(),
+ PercentColor: ThemeAttr("gauge.percent.fg"),
+ BarColor: ThemeAttr("gauge.bar.bg"),
+ Label: "{{percent}}%",
+ LabelAlign: AlignCenter,
+ PercentColorHighlighted: ColorUndef,
+ }
+
+ g.Width = 12
+ g.Height = 5
+ return g
+}
+
+// Buffer implements Bufferer interface.
+func (g *Gauge) Buffer() Buffer {
+ buf := g.Block.Buffer()
+
+ // plot bar
+ w := g.Percent * g.innerArea.Dx() / 100
+ for i := 0; i < g.innerArea.Dy(); i++ {
+ for j := 0; j < w; j++ {
+ c := Cell{}
+ c.Ch = ' '
+ c.Bg = g.BarColor
+ if c.Bg == ColorDefault {
+ c.Bg |= AttrReverse
+ }
+ buf.Set(g.innerArea.Min.X+j, g.innerArea.Min.Y+i, c)
+ }
+ }
+
+ // plot percentage
+ s := strings.Replace(g.Label, "{{percent}}", strconv.Itoa(g.Percent), -1)
+ pry := g.innerArea.Min.Y + g.innerArea.Dy()/2
+ rs := str2runes(s)
+ var pos int
+ switch g.LabelAlign {
+ case AlignLeft:
+ pos = 0
+
+ case AlignCenter:
+ pos = (g.innerArea.Dx() - strWidth(s)) / 2
+
+ case AlignRight:
+ pos = g.innerArea.Dx() - strWidth(s) - 1
+ }
+ pos += g.innerArea.Min.X
+
+ for i, v := range rs {
+ c := Cell{
+ Ch: v,
+ Fg: g.PercentColor,
+ }
+
+ if w+g.innerArea.Min.X > pos+i {
+ c.Bg = g.BarColor
+ if c.Bg == ColorDefault {
+ c.Bg |= AttrReverse
+ }
+
+ if g.PercentColorHighlighted != ColorUndef {
+ c.Fg = g.PercentColorHighlighted
+ }
+ } else {
+ c.Bg = g.Block.Bg
+ }
+
+ buf.Set(1+pos+i, pry, c)
+ }
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/glide.lock b/vendor/github.com/gizak/termui/glide.lock
new file mode 100644
index 000000000..798e944d3
--- /dev/null
+++ b/vendor/github.com/gizak/termui/glide.lock
@@ -0,0 +1,14 @@
+hash: 67a478802ee1d122cf1df063c52458d074864900c96a5cc25dc6be4b7638eb1c
+updated: 2016-04-06T21:16:00.849048757-04:00
+imports:
+- name: github.com/mattn/go-runewidth
+ version: d6bea18f789704b5f83375793155289da36a3c7f
+- name: github.com/mitchellh/go-wordwrap
+ version: ad45545899c7b13c020ea92b2072220eefad42b8
+- name: github.com/nsf/termbox-go
+ version: 362329b0aa6447eadd52edd8d660ec1dff470295
+- name: golang.org/x/net
+ version: af4fee9d05b66edc24197d189e6118f8ebce8c2b
+ subpackages:
+ - websocket
+devImports: []
diff --git a/vendor/github.com/gizak/termui/glide.yaml b/vendor/github.com/gizak/termui/glide.yaml
new file mode 100644
index 000000000..d8e445254
--- /dev/null
+++ b/vendor/github.com/gizak/termui/glide.yaml
@@ -0,0 +1,8 @@
+package: github.com/gizak/termui
+import:
+- package: github.com/mattn/go-runewidth
+- package: github.com/mitchellh/go-wordwrap
+- package: github.com/nsf/termbox-go
+- package: golang.org/x/net
+ subpackages:
+ - websocket
diff --git a/vendor/github.com/gizak/termui/grid.go b/vendor/github.com/gizak/termui/grid.go
new file mode 100644
index 000000000..364442e02
--- /dev/null
+++ b/vendor/github.com/gizak/termui/grid.go
@@ -0,0 +1,279 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+// GridBufferer introduces a Bufferer that can be manipulated by Grid.
+type GridBufferer interface {
+ Bufferer
+ GetHeight() int
+ SetWidth(int)
+ SetX(int)
+ SetY(int)
+}
+
+// Row builds a layout tree
+type Row struct {
+ Cols []*Row //children
+ Widget GridBufferer // root
+ X int
+ Y int
+ Width int
+ Height int
+ Span int
+ Offset int
+}
+
+// calculate and set the underlying layout tree's x, y, height and width.
+func (r *Row) calcLayout() {
+ r.assignWidth(r.Width)
+ r.Height = r.solveHeight()
+ r.assignX(r.X)
+ r.assignY(r.Y)
+}
+
+// tell if the node is leaf in the tree.
+func (r *Row) isLeaf() bool {
+ return r.Cols == nil || len(r.Cols) == 0
+}
+
+func (r *Row) isRenderableLeaf() bool {
+ return r.isLeaf() && r.Widget != nil
+}
+
+// assign widgets' (and their parent rows') width recursively.
+func (r *Row) assignWidth(w int) {
+ r.SetWidth(w)
+
+ accW := 0 // acc span and offset
+ calcW := make([]int, len(r.Cols)) // calculated width
+ calcOftX := make([]int, len(r.Cols)) // computated start position of x
+
+ for i, c := range r.Cols {
+ accW += c.Span + c.Offset
+ cw := int(float64(c.Span*r.Width) / 12.0)
+
+ if i >= 1 {
+ calcOftX[i] = calcOftX[i-1] +
+ calcW[i-1] +
+ int(float64(r.Cols[i-1].Offset*r.Width)/12.0)
+ }
+
+ // use up the space if it is the last col
+ if i == len(r.Cols)-1 && accW == 12 {
+ cw = r.Width - calcOftX[i]
+ }
+ calcW[i] = cw
+ r.Cols[i].assignWidth(cw)
+ }
+}
+
+// bottom up calc and set rows' (and their widgets') height,
+// return r's total height.
+func (r *Row) solveHeight() int {
+ if r.isRenderableLeaf() {
+ r.Height = r.Widget.GetHeight()
+ return r.Widget.GetHeight()
+ }
+
+ maxh := 0
+ if !r.isLeaf() {
+ for _, c := range r.Cols {
+ nh := c.solveHeight()
+ // when embed rows in Cols, row widgets stack up
+ if r.Widget != nil {
+ nh += r.Widget.GetHeight()
+ }
+ if nh > maxh {
+ maxh = nh
+ }
+ }
+ }
+
+ r.Height = maxh
+ return maxh
+}
+
+// recursively assign x position for r tree.
+func (r *Row) assignX(x int) {
+ r.SetX(x)
+
+ if !r.isLeaf() {
+ acc := 0
+ for i, c := range r.Cols {
+ if c.Offset != 0 {
+ acc += int(float64(c.Offset*r.Width) / 12.0)
+ }
+ r.Cols[i].assignX(x + acc)
+ acc += c.Width
+ }
+ }
+}
+
+// recursively assign y position to r.
+func (r *Row) assignY(y int) {
+ r.SetY(y)
+
+ if r.isLeaf() {
+ return
+ }
+
+ for i := range r.Cols {
+ acc := 0
+ if r.Widget != nil {
+ acc = r.Widget.GetHeight()
+ }
+ r.Cols[i].assignY(y + acc)
+ }
+
+}
+
+// GetHeight implements GridBufferer interface.
+func (r Row) GetHeight() int {
+ return r.Height
+}
+
+// SetX implements GridBufferer interface.
+func (r *Row) SetX(x int) {
+ r.X = x
+ if r.Widget != nil {
+ r.Widget.SetX(x)
+ }
+}
+
+// SetY implements GridBufferer interface.
+func (r *Row) SetY(y int) {
+ r.Y = y
+ if r.Widget != nil {
+ r.Widget.SetY(y)
+ }
+}
+
+// SetWidth implements GridBufferer interface.
+func (r *Row) SetWidth(w int) {
+ r.Width = w
+ if r.Widget != nil {
+ r.Widget.SetWidth(w)
+ }
+}
+
+// Buffer implements Bufferer interface,
+// recursively merge all widgets buffer
+func (r *Row) Buffer() Buffer {
+ merged := NewBuffer()
+
+ if r.isRenderableLeaf() {
+ return r.Widget.Buffer()
+ }
+
+ // for those are not leaves but have a renderable widget
+ if r.Widget != nil {
+ merged.Merge(r.Widget.Buffer())
+ }
+
+ // collect buffer from children
+ if !r.isLeaf() {
+ for _, c := range r.Cols {
+ merged.Merge(c.Buffer())
+ }
+ }
+
+ return merged
+}
+
+// Grid implements 12 columns system.
+// A simple example:
+/*
+ import ui "github.com/gizak/termui"
+ // init and create widgets...
+
+ // build
+ ui.Body.AddRows(
+ ui.NewRow(
+ ui.NewCol(6, 0, widget0),
+ ui.NewCol(6, 0, widget1)),
+ ui.NewRow(
+ ui.NewCol(3, 0, widget2),
+ ui.NewCol(3, 0, widget30, widget31, widget32),
+ ui.NewCol(6, 0, widget4)))
+
+ // calculate layout
+ ui.Body.Align()
+
+ ui.Render(ui.Body)
+*/
+type Grid struct {
+ Rows []*Row
+ Width int
+ X int
+ Y int
+ BgColor Attribute
+}
+
+// NewGrid returns *Grid with given rows.
+func NewGrid(rows ...*Row) *Grid {
+ return &Grid{Rows: rows}
+}
+
+// AddRows appends given rows to Grid.
+func (g *Grid) AddRows(rs ...*Row) {
+ g.Rows = append(g.Rows, rs...)
+}
+
+// NewRow creates a new row out of given columns.
+func NewRow(cols ...*Row) *Row {
+ rs := &Row{Span: 12, Cols: cols}
+ return rs
+}
+
+// NewCol accepts: widgets are LayoutBufferer or widgets is A NewRow.
+// Note that if multiple widgets are provided, they will stack up in the col.
+func NewCol(span, offset int, widgets ...GridBufferer) *Row {
+ r := &Row{Span: span, Offset: offset}
+
+ if widgets != nil && len(widgets) == 1 {
+ wgt := widgets[0]
+ nw, isRow := wgt.(*Row)
+ if isRow {
+ r.Cols = nw.Cols
+ } else {
+ r.Widget = wgt
+ }
+ return r
+ }
+
+ r.Cols = []*Row{}
+ ir := r
+ for _, w := range widgets {
+ nr := &Row{Span: 12, Widget: w}
+ ir.Cols = []*Row{nr}
+ ir = nr
+ }
+
+ return r
+}
+
+// Align calculate each rows' layout.
+func (g *Grid) Align() {
+ h := 0
+ for _, r := range g.Rows {
+ r.SetWidth(g.Width)
+ r.SetX(g.X)
+ r.SetY(g.Y + h)
+ r.calcLayout()
+ h += r.GetHeight()
+ }
+}
+
+// Buffer implments Bufferer interface.
+func (g Grid) Buffer() Buffer {
+ buf := NewBuffer()
+
+ for _, r := range g.Rows {
+ buf.Merge(r.Buffer())
+ }
+ return buf
+}
+
+var Body *Grid
diff --git a/vendor/github.com/gizak/termui/helper.go b/vendor/github.com/gizak/termui/helper.go
new file mode 100644
index 000000000..308f6c1db
--- /dev/null
+++ b/vendor/github.com/gizak/termui/helper.go
@@ -0,0 +1,222 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "regexp"
+ "strings"
+
+ tm "github.com/nsf/termbox-go"
+)
+import rw "github.com/mattn/go-runewidth"
+
+/* ---------------Port from termbox-go --------------------- */
+
+// Attribute is printable cell's color and style.
+type Attribute uint16
+
+// 8 basic clolrs
+const (
+ ColorDefault Attribute = iota
+ ColorBlack
+ ColorRed
+ ColorGreen
+ ColorYellow
+ ColorBlue
+ ColorMagenta
+ ColorCyan
+ ColorWhite
+)
+
+//Have a constant that defines number of colors
+const NumberofColors = 8
+
+// Text style
+const (
+ AttrBold Attribute = 1 << (iota + 9)
+ AttrUnderline
+ AttrReverse
+)
+
+var (
+ dot = "…"
+ dotw = rw.StringWidth(dot)
+)
+
+/* ----------------------- End ----------------------------- */
+
+func toTmAttr(x Attribute) tm.Attribute {
+ return tm.Attribute(x)
+}
+
+func str2runes(s string) []rune {
+ return []rune(s)
+}
+
+// Here for backwards-compatibility.
+func trimStr2Runes(s string, w int) []rune {
+ return TrimStr2Runes(s, w)
+}
+
+// TrimStr2Runes trims string to w[-1 rune], appends …, and returns the runes
+// of that string if string is grather then n. If string is small then w,
+// return the runes.
+func TrimStr2Runes(s string, w int) []rune {
+ if w <= 0 {
+ return []rune{}
+ }
+
+ sw := rw.StringWidth(s)
+ if sw > w {
+ return []rune(rw.Truncate(s, w, dot))
+ }
+ return str2runes(s)
+}
+
+// TrimStrIfAppropriate trim string to "s[:-1] + …"
+// if string > width otherwise return string
+func TrimStrIfAppropriate(s string, w int) string {
+ if w <= 0 {
+ return ""
+ }
+
+ sw := rw.StringWidth(s)
+ if sw > w {
+ return rw.Truncate(s, w, dot)
+ }
+
+ return s
+}
+
+func strWidth(s string) int {
+ return rw.StringWidth(s)
+}
+
+func charWidth(ch rune) int {
+ return rw.RuneWidth(ch)
+}
+
+var whiteSpaceRegex = regexp.MustCompile(`\s`)
+
+// StringToAttribute converts text to a termui attribute. You may specifiy more
+// then one attribute like that: "BLACK, BOLD, ...". All whitespaces
+// are ignored.
+func StringToAttribute(text string) Attribute {
+ text = whiteSpaceRegex.ReplaceAllString(strings.ToLower(text), "")
+ attributes := strings.Split(text, ",")
+ result := Attribute(0)
+
+ for _, theAttribute := range attributes {
+ var match Attribute
+ switch theAttribute {
+ case "reset", "default":
+ match = ColorDefault
+
+ case "black":
+ match = ColorBlack
+
+ case "red":
+ match = ColorRed
+
+ case "green":
+ match = ColorGreen
+
+ case "yellow":
+ match = ColorYellow
+
+ case "blue":
+ match = ColorBlue
+
+ case "magenta":
+ match = ColorMagenta
+
+ case "cyan":
+ match = ColorCyan
+
+ case "white":
+ match = ColorWhite
+
+ case "bold":
+ match = AttrBold
+
+ case "underline":
+ match = AttrUnderline
+
+ case "reverse":
+ match = AttrReverse
+ }
+
+ result |= match
+ }
+
+ return result
+}
+
+// TextCells returns a coloured text cells []Cell
+func TextCells(s string, fg, bg Attribute) []Cell {
+ cs := make([]Cell, 0, len(s))
+
+ // sequence := MarkdownTextRendererFactory{}.TextRenderer(s).Render(fg, bg)
+ // runes := []rune(sequence.NormalizedText)
+ runes := str2runes(s)
+
+ for n := range runes {
+ // point, _ := sequence.PointAt(n, 0, 0)
+ // cs = append(cs, Cell{point.Ch, point.Fg, point.Bg})
+ cs = append(cs, Cell{runes[n], fg, bg})
+ }
+ return cs
+}
+
+// Width returns the actual screen space the cell takes (usually 1 or 2).
+func (c Cell) Width() int {
+ return charWidth(c.Ch)
+}
+
+// Copy return a copy of c
+func (c Cell) Copy() Cell {
+ return c
+}
+
+// TrimTxCells trims the overflowed text cells sequence.
+func TrimTxCells(cs []Cell, w int) []Cell {
+ if len(cs) <= w {
+ return cs
+ }
+ return cs[:w]
+}
+
+// DTrimTxCls trims the overflowed text cells sequence and append dots at the end.
+func DTrimTxCls(cs []Cell, w int) []Cell {
+ l := len(cs)
+ if l <= 0 {
+ return []Cell{}
+ }
+
+ rt := make([]Cell, 0, w)
+ csw := 0
+ for i := 0; i < l && csw <= w; i++ {
+ c := cs[i]
+ cw := c.Width()
+
+ if cw+csw < w {
+ rt = append(rt, c)
+ csw += cw
+ } else {
+ rt = append(rt, Cell{'…', c.Fg, c.Bg})
+ break
+ }
+ }
+
+ return rt
+}
+
+func CellsToStr(cs []Cell) string {
+ str := ""
+ for _, c := range cs {
+ str += string(c.Ch)
+ }
+ return str
+}
diff --git a/vendor/github.com/gizak/termui/linechart.go b/vendor/github.com/gizak/termui/linechart.go
new file mode 100644
index 000000000..81834efdb
--- /dev/null
+++ b/vendor/github.com/gizak/termui/linechart.go
@@ -0,0 +1,331 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "fmt"
+ "math"
+)
+
+// only 16 possible combinations, why bother
+var braillePatterns = map[[2]int]rune{
+ [2]int{0, 0}: '⣀',
+ [2]int{0, 1}: '⡠',
+ [2]int{0, 2}: '⡐',
+ [2]int{0, 3}: '⡈',
+
+ [2]int{1, 0}: '⢄',
+ [2]int{1, 1}: '⠤',
+ [2]int{1, 2}: '⠔',
+ [2]int{1, 3}: '⠌',
+
+ [2]int{2, 0}: '⢂',
+ [2]int{2, 1}: '⠢',
+ [2]int{2, 2}: '⠒',
+ [2]int{2, 3}: '⠊',
+
+ [2]int{3, 0}: '⢁',
+ [2]int{3, 1}: '⠡',
+ [2]int{3, 2}: '⠑',
+ [2]int{3, 3}: '⠉',
+}
+
+var lSingleBraille = [4]rune{'\u2840', '⠄', '⠂', '⠁'}
+var rSingleBraille = [4]rune{'\u2880', '⠠', '⠐', '⠈'}
+
+// LineChart has two modes: braille(default) and dot. Using braille gives 2x capicity as dot mode,
+// because one braille char can represent two data points.
+/*
+ lc := termui.NewLineChart()
+ lc.BorderLabel = "braille-mode Line Chart"
+ lc.Data = [1.2, 1.3, 1.5, 1.7, 1.5, 1.6, 1.8, 2.0]
+ lc.Width = 50
+ lc.Height = 12
+ lc.AxesColor = termui.ColorWhite
+ lc.LineColor = termui.ColorGreen | termui.AttrBold
+ // termui.Render(lc)...
+*/
+type LineChart struct {
+ Block
+ Data []float64
+ DataLabels []string // if unset, the data indices will be used
+ Mode string // braille | dot
+ DotStyle rune
+ LineColor Attribute
+ scale float64 // data span per cell on y-axis
+ AxesColor Attribute
+ drawingX int
+ drawingY int
+ axisYHeight int
+ axisXWidth int
+ axisYLabelGap int
+ axisXLabelGap int
+ topValue float64
+ bottomValue float64
+ labelX [][]rune
+ labelY [][]rune
+ labelYSpace int
+ maxY float64
+ minY float64
+ autoLabels bool
+}
+
+// NewLineChart returns a new LineChart with current theme.
+func NewLineChart() *LineChart {
+ lc := &LineChart{Block: *NewBlock()}
+ lc.AxesColor = ThemeAttr("linechart.axes.fg")
+ lc.LineColor = ThemeAttr("linechart.line.fg")
+ lc.Mode = "braille"
+ lc.DotStyle = '•'
+ lc.axisXLabelGap = 2
+ lc.axisYLabelGap = 1
+ lc.bottomValue = math.Inf(1)
+ lc.topValue = math.Inf(-1)
+ return lc
+}
+
+// one cell contains two data points
+// so the capicity is 2x as dot-mode
+func (lc *LineChart) renderBraille() Buffer {
+ buf := NewBuffer()
+
+ // return: b -> which cell should the point be in
+ // m -> in the cell, divided into 4 equal height levels, which subcell?
+ getPos := func(d float64) (b, m int) {
+ cnt4 := int((d-lc.bottomValue)/(lc.scale/4) + 0.5)
+ b = cnt4 / 4
+ m = cnt4 % 4
+ return
+ }
+ // plot points
+ for i := 0; 2*i+1 < len(lc.Data) && i < lc.axisXWidth; i++ {
+ b0, m0 := getPos(lc.Data[2*i])
+ b1, m1 := getPos(lc.Data[2*i+1])
+
+ if b0 == b1 {
+ c := Cell{
+ Ch: braillePatterns[[2]int{m0, m1}],
+ Bg: lc.Bg,
+ Fg: lc.LineColor,
+ }
+ y := lc.innerArea.Min.Y + lc.innerArea.Dy() - 3 - b0
+ x := lc.innerArea.Min.X + lc.labelYSpace + 1 + i
+ buf.Set(x, y, c)
+ } else {
+ c0 := Cell{Ch: lSingleBraille[m0],
+ Fg: lc.LineColor,
+ Bg: lc.Bg}
+ x0 := lc.innerArea.Min.X + lc.labelYSpace + 1 + i
+ y0 := lc.innerArea.Min.Y + lc.innerArea.Dy() - 3 - b0
+ buf.Set(x0, y0, c0)
+
+ c1 := Cell{Ch: rSingleBraille[m1],
+ Fg: lc.LineColor,
+ Bg: lc.Bg}
+ x1 := lc.innerArea.Min.X + lc.labelYSpace + 1 + i
+ y1 := lc.innerArea.Min.Y + lc.innerArea.Dy() - 3 - b1
+ buf.Set(x1, y1, c1)
+ }
+
+ }
+ return buf
+}
+
+func (lc *LineChart) renderDot() Buffer {
+ buf := NewBuffer()
+ for i := 0; i < len(lc.Data) && i < lc.axisXWidth; i++ {
+ c := Cell{
+ Ch: lc.DotStyle,
+ Fg: lc.LineColor,
+ Bg: lc.Bg,
+ }
+ x := lc.innerArea.Min.X + lc.labelYSpace + 1 + i
+ y := lc.innerArea.Min.Y + lc.innerArea.Dy() - 3 - int((lc.Data[i]-lc.bottomValue)/lc.scale+0.5)
+ buf.Set(x, y, c)
+ }
+
+ return buf
+}
+
+func (lc *LineChart) calcLabelX() {
+ lc.labelX = [][]rune{}
+
+ for i, l := 0, 0; i < len(lc.DataLabels) && l < lc.axisXWidth; i++ {
+ if lc.Mode == "dot" {
+ if l >= len(lc.DataLabels) {
+ break
+ }
+
+ s := str2runes(lc.DataLabels[l])
+ w := strWidth(lc.DataLabels[l])
+ if l+w <= lc.axisXWidth {
+ lc.labelX = append(lc.labelX, s)
+ }
+ l += w + lc.axisXLabelGap
+ } else { // braille
+ if 2*l >= len(lc.DataLabels) {
+ break
+ }
+
+ s := str2runes(lc.DataLabels[2*l])
+ w := strWidth(lc.DataLabels[2*l])
+ if l+w <= lc.axisXWidth {
+ lc.labelX = append(lc.labelX, s)
+ }
+ l += w + lc.axisXLabelGap
+
+ }
+ }
+}
+
+func shortenFloatVal(x float64) string {
+ s := fmt.Sprintf("%.2f", x)
+ if len(s)-3 > 3 {
+ s = fmt.Sprintf("%.2e", x)
+ }
+
+ if x < 0 {
+ s = fmt.Sprintf("%.2f", x)
+ }
+ return s
+}
+
+func (lc *LineChart) calcLabelY() {
+ span := lc.topValue - lc.bottomValue
+ lc.scale = span / float64(lc.axisYHeight)
+
+ n := (1 + lc.axisYHeight) / (lc.axisYLabelGap + 1)
+ lc.labelY = make([][]rune, n)
+ maxLen := 0
+ for i := 0; i < n; i++ {
+ s := str2runes(shortenFloatVal(lc.bottomValue + float64(i)*span/float64(n)))
+ if len(s) > maxLen {
+ maxLen = len(s)
+ }
+ lc.labelY[i] = s
+ }
+
+ lc.labelYSpace = maxLen
+}
+
+func (lc *LineChart) calcLayout() {
+ // set datalabels if it is not provided
+ if (lc.DataLabels == nil || len(lc.DataLabels) == 0) || lc.autoLabels {
+ lc.autoLabels = true
+ lc.DataLabels = make([]string, len(lc.Data))
+ for i := range lc.Data {
+ lc.DataLabels[i] = fmt.Sprint(i)
+ }
+ }
+
+ // lazy increase, to avoid y shaking frequently
+ // update bound Y when drawing is gonna overflow
+ lc.minY = lc.Data[0]
+ lc.maxY = lc.Data[0]
+
+ // valid visible range
+ vrange := lc.innerArea.Dx()
+ if lc.Mode == "braille" {
+ vrange = 2 * lc.innerArea.Dx()
+ }
+ if vrange > len(lc.Data) {
+ vrange = len(lc.Data)
+ }
+
+ for _, v := range lc.Data[:vrange] {
+ if v > lc.maxY {
+ lc.maxY = v
+ }
+ if v < lc.minY {
+ lc.minY = v
+ }
+ }
+
+ span := lc.maxY - lc.minY
+
+ if lc.minY < lc.bottomValue {
+ lc.bottomValue = lc.minY - 0.2*span
+ }
+
+ if lc.maxY > lc.topValue {
+ lc.topValue = lc.maxY + 0.2*span
+ }
+
+ lc.axisYHeight = lc.innerArea.Dy() - 2
+ lc.calcLabelY()
+
+ lc.axisXWidth = lc.innerArea.Dx() - 1 - lc.labelYSpace
+ lc.calcLabelX()
+
+ lc.drawingX = lc.innerArea.Min.X + 1 + lc.labelYSpace
+ lc.drawingY = lc.innerArea.Min.Y
+}
+
+func (lc *LineChart) plotAxes() Buffer {
+ buf := NewBuffer()
+
+ origY := lc.innerArea.Min.Y + lc.innerArea.Dy() - 2
+ origX := lc.innerArea.Min.X + lc.labelYSpace
+
+ buf.Set(origX, origY, Cell{Ch: ORIGIN, Fg: lc.AxesColor, Bg: lc.Bg})
+
+ for x := origX + 1; x < origX+lc.axisXWidth; x++ {
+ buf.Set(x, origY, Cell{Ch: HDASH, Fg: lc.AxesColor, Bg: lc.Bg})
+ }
+
+ for dy := 1; dy <= lc.axisYHeight; dy++ {
+ buf.Set(origX, origY-dy, Cell{Ch: VDASH, Fg: lc.AxesColor, Bg: lc.Bg})
+ }
+
+ // x label
+ oft := 0
+ for _, rs := range lc.labelX {
+ if oft+len(rs) > lc.axisXWidth {
+ break
+ }
+ for j, r := range rs {
+ c := Cell{
+ Ch: r,
+ Fg: lc.AxesColor,
+ Bg: lc.Bg,
+ }
+ x := origX + oft + j
+ y := lc.innerArea.Min.Y + lc.innerArea.Dy() - 1
+ buf.Set(x, y, c)
+ }
+ oft += len(rs) + lc.axisXLabelGap
+ }
+
+ // y labels
+ for i, rs := range lc.labelY {
+ for j, r := range rs {
+ buf.Set(
+ lc.innerArea.Min.X+j,
+ origY-i*(lc.axisYLabelGap+1),
+ Cell{Ch: r, Fg: lc.AxesColor, Bg: lc.Bg})
+ }
+ }
+
+ return buf
+}
+
+// Buffer implements Bufferer interface.
+func (lc *LineChart) Buffer() Buffer {
+ buf := lc.Block.Buffer()
+
+ if lc.Data == nil || len(lc.Data) == 0 {
+ return buf
+ }
+ lc.calcLayout()
+ buf.Merge(lc.plotAxes())
+
+ if lc.Mode == "dot" {
+ buf.Merge(lc.renderDot())
+ } else {
+ buf.Merge(lc.renderBraille())
+ }
+
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/linechart_others.go b/vendor/github.com/gizak/termui/linechart_others.go
new file mode 100644
index 000000000..7e2e66b3e
--- /dev/null
+++ b/vendor/github.com/gizak/termui/linechart_others.go
@@ -0,0 +1,11 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+// +build !windows
+
+package termui
+
+const VDASH = '┊'
+const HDASH = '┈'
+const ORIGIN = '└'
diff --git a/vendor/github.com/gizak/termui/linechart_windows.go b/vendor/github.com/gizak/termui/linechart_windows.go
new file mode 100644
index 000000000..1478b5ce3
--- /dev/null
+++ b/vendor/github.com/gizak/termui/linechart_windows.go
@@ -0,0 +1,11 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+// +build windows
+
+package termui
+
+const VDASH = '|'
+const HDASH = '-'
+const ORIGIN = '+'
diff --git a/vendor/github.com/gizak/termui/list.go b/vendor/github.com/gizak/termui/list.go
new file mode 100644
index 000000000..0029d2622
--- /dev/null
+++ b/vendor/github.com/gizak/termui/list.go
@@ -0,0 +1,89 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "strings"
+
+// List displays []string as its items,
+// it has a Overflow option (default is "hidden"), when set to "hidden",
+// the item exceeding List's width is truncated, but when set to "wrap",
+// the overflowed text breaks into next line.
+/*
+ strs := []string{
+ "[0] github.com/gizak/termui",
+ "[1] editbox.go",
+ "[2] iterrupt.go",
+ "[3] keyboard.go",
+ "[4] output.go",
+ "[5] random_out.go",
+ "[6] dashboard.go",
+ "[7] nsf/termbox-go"}
+
+ ls := termui.NewList()
+ ls.Items = strs
+ ls.ItemFgColor = termui.ColorYellow
+ ls.BorderLabel = "List"
+ ls.Height = 7
+ ls.Width = 25
+ ls.Y = 0
+*/
+type List struct {
+ Block
+ Items []string
+ Overflow string
+ ItemFgColor Attribute
+ ItemBgColor Attribute
+}
+
+// NewList returns a new *List with current theme.
+func NewList() *List {
+ l := &List{Block: *NewBlock()}
+ l.Overflow = "hidden"
+ l.ItemFgColor = ThemeAttr("list.item.fg")
+ l.ItemBgColor = ThemeAttr("list.item.bg")
+ return l
+}
+
+// Buffer implements Bufferer interface.
+func (l *List) Buffer() Buffer {
+ buf := l.Block.Buffer()
+
+ switch l.Overflow {
+ case "wrap":
+ cs := DefaultTxBuilder.Build(strings.Join(l.Items, "\n"), l.ItemFgColor, l.ItemBgColor)
+ i, j, k := 0, 0, 0
+ for i < l.innerArea.Dy() && k < len(cs) {
+ w := cs[k].Width()
+ if cs[k].Ch == '\n' || j+w > l.innerArea.Dx() {
+ i++
+ j = 0
+ if cs[k].Ch == '\n' {
+ k++
+ }
+ continue
+ }
+ buf.Set(l.innerArea.Min.X+j, l.innerArea.Min.Y+i, cs[k])
+
+ k++
+ j++
+ }
+
+ case "hidden":
+ trimItems := l.Items
+ if len(trimItems) > l.innerArea.Dy() {
+ trimItems = trimItems[:l.innerArea.Dy()]
+ }
+ for i, v := range trimItems {
+ cs := DTrimTxCls(DefaultTxBuilder.Build(v, l.ItemFgColor, l.ItemBgColor), l.innerArea.Dx())
+ j := 0
+ for _, vv := range cs {
+ w := vv.Width()
+ buf.Set(l.innerArea.Min.X+j, l.innerArea.Min.Y+i, vv)
+ j += w
+ }
+ }
+ }
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/mbarchart.go b/vendor/github.com/gizak/termui/mbarchart.go
new file mode 100644
index 000000000..6828e6533
--- /dev/null
+++ b/vendor/github.com/gizak/termui/mbarchart.go
@@ -0,0 +1,242 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "fmt"
+)
+
+// This is the implemetation of multi-colored or stacked bar graph. This is different from default barGraph which is implemented in bar.go
+// Multi-Colored-BarChart creates multiple bars in a widget:
+/*
+ bc := termui.NewMBarChart()
+ data := make([][]int, 2)
+ data[0] := []int{3, 2, 5, 7, 9, 4}
+ data[1] := []int{7, 8, 5, 3, 1, 6}
+ bclabels := []string{"S0", "S1", "S2", "S3", "S4", "S5"}
+ bc.BorderLabel = "Bar Chart"
+ bc.Data = data
+ bc.Width = 26
+ bc.Height = 10
+ bc.DataLabels = bclabels
+ bc.TextColor = termui.ColorGreen
+ bc.BarColor = termui.ColorRed
+ bc.NumColor = termui.ColorYellow
+*/
+type MBarChart struct {
+ Block
+ BarColor [NumberofColors]Attribute
+ TextColor Attribute
+ NumColor [NumberofColors]Attribute
+ Data [NumberofColors][]int
+ DataLabels []string
+ BarWidth int
+ BarGap int
+ labels [][]rune
+ dataNum [NumberofColors][][]rune
+ numBar int
+ scale float64
+ max int
+ minDataLen int
+ numStack int
+ ShowScale bool
+ maxScale []rune
+}
+
+// NewBarChart returns a new *BarChart with current theme.
+func NewMBarChart() *MBarChart {
+ bc := &MBarChart{Block: *NewBlock()}
+ bc.BarColor[0] = ThemeAttr("mbarchart.bar.bg")
+ bc.NumColor[0] = ThemeAttr("mbarchart.num.fg")
+ bc.TextColor = ThemeAttr("mbarchart.text.fg")
+ bc.BarGap = 1
+ bc.BarWidth = 3
+ return bc
+}
+
+func (bc *MBarChart) layout() {
+ bc.numBar = bc.innerArea.Dx() / (bc.BarGap + bc.BarWidth)
+ bc.labels = make([][]rune, bc.numBar)
+ DataLen := 0
+ LabelLen := len(bc.DataLabels)
+ bc.minDataLen = 9999 //Set this to some very hight value so that we find the minimum one We want to know which array among data[][] has got the least length
+
+ // We need to know how many stack/data array data[0] , data[1] are there
+ for i := 0; i < len(bc.Data); i++ {
+ if bc.Data[i] == nil {
+ break
+ }
+ DataLen++
+ }
+ bc.numStack = DataLen
+
+ //We need to know what is the mimimum size of data array data[0] could have 10 elements data[1] could have only 5, so we plot only 5 bar graphs
+
+ for i := 0; i < DataLen; i++ {
+ if bc.minDataLen > len(bc.Data[i]) {
+ bc.minDataLen = len(bc.Data[i])
+ }
+ }
+
+ if LabelLen > bc.minDataLen {
+ LabelLen = bc.minDataLen
+ }
+
+ for i := 0; i < LabelLen && i < bc.numBar; i++ {
+ bc.labels[i] = trimStr2Runes(bc.DataLabels[i], bc.BarWidth)
+ }
+
+ for i := 0; i < bc.numStack; i++ {
+ bc.dataNum[i] = make([][]rune, len(bc.Data[i]))
+ //For each stack of bar calcualte the rune
+ for j := 0; j < LabelLen && i < bc.numBar; j++ {
+ n := bc.Data[i][j]
+ s := fmt.Sprint(n)
+ bc.dataNum[i][j] = trimStr2Runes(s, bc.BarWidth)
+ }
+ //If color is not defined by default then populate a color that is different from the prevous bar
+ if bc.BarColor[i] == ColorDefault && bc.NumColor[i] == ColorDefault {
+ if i == 0 {
+ bc.BarColor[i] = ColorBlack
+ } else {
+ bc.BarColor[i] = bc.BarColor[i-1] + 1
+ if bc.BarColor[i] > NumberofColors {
+ bc.BarColor[i] = ColorBlack
+ }
+ }
+ bc.NumColor[i] = (NumberofColors + 1) - bc.BarColor[i] //Make NumColor opposite of barColor for visibility
+ }
+ }
+
+ //If Max value is not set then we have to populate, this time the max value will be max(sum(d1[0],d2[0],d3[0]) .... sum(d1[n], d2[n], d3[n]))
+
+ if bc.max == 0 {
+ bc.max = -1
+ }
+ for i := 0; i < bc.minDataLen && i < LabelLen; i++ {
+ var dsum int
+ for j := 0; j < bc.numStack; j++ {
+ dsum += bc.Data[j][i]
+ }
+ if dsum > bc.max {
+ bc.max = dsum
+ }
+ }
+
+ //Finally Calculate max sale
+ if bc.ShowScale {
+ s := fmt.Sprintf("%d", bc.max)
+ bc.maxScale = trimStr2Runes(s, len(s))
+ bc.scale = float64(bc.max) / float64(bc.innerArea.Dy()-2)
+ } else {
+ bc.scale = float64(bc.max) / float64(bc.innerArea.Dy()-1)
+ }
+
+}
+
+func (bc *MBarChart) SetMax(max int) {
+
+ if max > 0 {
+ bc.max = max
+ }
+}
+
+// Buffer implements Bufferer interface.
+func (bc *MBarChart) Buffer() Buffer {
+ buf := bc.Block.Buffer()
+ bc.layout()
+ var oftX int
+
+ for i := 0; i < bc.numBar && i < bc.minDataLen && i < len(bc.DataLabels); i++ {
+ ph := 0 //Previous Height to stack up
+ oftX = i * (bc.BarWidth + bc.BarGap)
+ for i1 := 0; i1 < bc.numStack; i1++ {
+ h := int(float64(bc.Data[i1][i]) / bc.scale)
+ // plot bars
+ for j := 0; j < bc.BarWidth; j++ {
+ for k := 0; k < h; k++ {
+ c := Cell{
+ Ch: ' ',
+ Bg: bc.BarColor[i1],
+ }
+ if bc.BarColor[i1] == ColorDefault { // when color is default, space char treated as transparent!
+ c.Bg |= AttrReverse
+ }
+ x := bc.innerArea.Min.X + i*(bc.BarWidth+bc.BarGap) + j
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 2 - k - ph
+ buf.Set(x, y, c)
+
+ }
+ }
+ ph += h
+ }
+ // plot text
+ for j, k := 0, 0; j < len(bc.labels[i]); j++ {
+ w := charWidth(bc.labels[i][j])
+ c := Cell{
+ Ch: bc.labels[i][j],
+ Bg: bc.Bg,
+ Fg: bc.TextColor,
+ }
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 1
+ x := bc.innerArea.Max.X + oftX + ((bc.BarWidth - len(bc.labels[i])) / 2) + k
+ buf.Set(x, y, c)
+ k += w
+ }
+ // plot num
+ ph = 0 //re-initialize previous height
+ for i1 := 0; i1 < bc.numStack; i1++ {
+ h := int(float64(bc.Data[i1][i]) / bc.scale)
+ for j := 0; j < len(bc.dataNum[i1][i]) && h > 0; j++ {
+ c := Cell{
+ Ch: bc.dataNum[i1][i][j],
+ Fg: bc.NumColor[i1],
+ Bg: bc.BarColor[i1],
+ }
+ if bc.BarColor[i1] == ColorDefault { // the same as above
+ c.Bg |= AttrReverse
+ }
+ if h == 0 {
+ c.Bg = bc.Bg
+ }
+ x := bc.innerArea.Min.X + oftX + (bc.BarWidth-len(bc.dataNum[i1][i]))/2 + j
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 2 - ph
+ buf.Set(x, y, c)
+ }
+ ph += h
+ }
+ }
+
+ if bc.ShowScale {
+ //Currently bar graph only supprts data range from 0 to MAX
+ //Plot 0
+ c := Cell{
+ Ch: '0',
+ Bg: bc.Bg,
+ Fg: bc.TextColor,
+ }
+
+ y := bc.innerArea.Min.Y + bc.innerArea.Dy() - 2
+ x := bc.X
+ buf.Set(x, y, c)
+
+ //Plot the maximum sacle value
+ for i := 0; i < len(bc.maxScale); i++ {
+ c := Cell{
+ Ch: bc.maxScale[i],
+ Bg: bc.Bg,
+ Fg: bc.TextColor,
+ }
+
+ y := bc.innerArea.Min.Y
+ x := bc.X + i
+
+ buf.Set(x, y, c)
+ }
+
+ }
+
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/mkdocs.yml b/vendor/github.com/gizak/termui/mkdocs.yml
new file mode 100644
index 000000000..2ab45f064
--- /dev/null
+++ b/vendor/github.com/gizak/termui/mkdocs.yml
@@ -0,0 +1,28 @@
+pages:
+- Home: 'index.md'
+- Quickstart: 'quickstart.md'
+- Recipes: 'recipes.md'
+- References:
+ - Layouts: 'layouts.md'
+ - Components: 'components.md'
+ - Events: 'events.md'
+ - Themes: 'themes.md'
+- Versions: 'versions.md'
+- About: 'about.md'
+
+site_name: termui
+repo_url: https://github.com/gizak/termui/
+site_description: 'termui user guide'
+site_author: gizak
+
+docs_dir: '_docs'
+
+theme: readthedocs
+
+markdown_extensions:
+ - smarty
+ - admonition
+ - toc
+
+extra:
+ version: 1.0
diff --git a/vendor/github.com/gizak/termui/par.go b/vendor/github.com/gizak/termui/par.go
new file mode 100644
index 000000000..78bffd091
--- /dev/null
+++ b/vendor/github.com/gizak/termui/par.go
@@ -0,0 +1,73 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+// Par displays a paragraph.
+/*
+ par := termui.NewPar("Simple Text")
+ par.Height = 3
+ par.Width = 17
+ par.BorderLabel = "Label"
+*/
+type Par struct {
+ Block
+ Text string
+ TextFgColor Attribute
+ TextBgColor Attribute
+ WrapLength int // words wrap limit. Note it may not work properly with multi-width char
+}
+
+// NewPar returns a new *Par with given text as its content.
+func NewPar(s string) *Par {
+ return &Par{
+ Block: *NewBlock(),
+ Text: s,
+ TextFgColor: ThemeAttr("par.text.fg"),
+ TextBgColor: ThemeAttr("par.text.bg"),
+ WrapLength: 0,
+ }
+}
+
+// Buffer implements Bufferer interface.
+func (p *Par) Buffer() Buffer {
+ buf := p.Block.Buffer()
+
+ fg, bg := p.TextFgColor, p.TextBgColor
+ cs := DefaultTxBuilder.Build(p.Text, fg, bg)
+
+ // wrap if WrapLength set
+ if p.WrapLength < 0 {
+ cs = wrapTx(cs, p.Width-2)
+ } else if p.WrapLength > 0 {
+ cs = wrapTx(cs, p.WrapLength)
+ }
+
+ y, x, n := 0, 0, 0
+ for y < p.innerArea.Dy() && n < len(cs) {
+ w := cs[n].Width()
+ if cs[n].Ch == '\n' || x+w > p.innerArea.Dx() {
+ y++
+ x = 0 // set x = 0
+ if cs[n].Ch == '\n' {
+ n++
+ }
+
+ if y >= p.innerArea.Dy() {
+ buf.Set(p.innerArea.Min.X+p.innerArea.Dx()-1,
+ p.innerArea.Min.Y+p.innerArea.Dy()-1,
+ Cell{Ch: '…', Fg: p.TextFgColor, Bg: p.TextBgColor})
+ break
+ }
+ continue
+ }
+
+ buf.Set(p.innerArea.Min.X+x, p.innerArea.Min.Y+y, cs[n])
+
+ n++
+ x += w
+ }
+
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/pos.go b/vendor/github.com/gizak/termui/pos.go
new file mode 100644
index 000000000..2046dce5a
--- /dev/null
+++ b/vendor/github.com/gizak/termui/pos.go
@@ -0,0 +1,78 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "image"
+
+// Align is the position of the gauge's label.
+type Align uint
+
+// All supported positions.
+const (
+ AlignNone Align = 0
+ AlignLeft Align = 1 << iota
+ AlignRight
+ AlignBottom
+ AlignTop
+ AlignCenterVertical
+ AlignCenterHorizontal
+ AlignCenter = AlignCenterVertical | AlignCenterHorizontal
+)
+
+func AlignArea(parent, child image.Rectangle, a Align) image.Rectangle {
+ w, h := child.Dx(), child.Dy()
+
+ // parent center
+ pcx, pcy := parent.Min.X+parent.Dx()/2, parent.Min.Y+parent.Dy()/2
+ // child center
+ ccx, ccy := child.Min.X+child.Dx()/2, child.Min.Y+child.Dy()/2
+
+ if a&AlignLeft == AlignLeft {
+ child.Min.X = parent.Min.X
+ child.Max.X = child.Min.X + w
+ }
+
+ if a&AlignRight == AlignRight {
+ child.Max.X = parent.Max.X
+ child.Min.X = child.Max.X - w
+ }
+
+ if a&AlignBottom == AlignBottom {
+ child.Max.Y = parent.Max.Y
+ child.Min.Y = child.Max.Y - h
+ }
+
+ if a&AlignTop == AlignRight {
+ child.Min.Y = parent.Min.Y
+ child.Max.Y = child.Min.Y + h
+ }
+
+ if a&AlignCenterHorizontal == AlignCenterHorizontal {
+ child.Min.X += pcx - ccx
+ child.Max.X = child.Min.X + w
+ }
+
+ if a&AlignCenterVertical == AlignCenterVertical {
+ child.Min.Y += pcy - ccy
+ child.Max.Y = child.Min.Y + h
+ }
+
+ return child
+}
+
+func MoveArea(a image.Rectangle, dx, dy int) image.Rectangle {
+ a.Min.X += dx
+ a.Max.X += dx
+ a.Min.Y += dy
+ a.Max.Y += dy
+ return a
+}
+
+var termWidth int
+var termHeight int
+
+func TermRect() image.Rectangle {
+ return image.Rect(0, 0, termWidth, termHeight)
+}
diff --git a/vendor/github.com/gizak/termui/render.go b/vendor/github.com/gizak/termui/render.go
new file mode 100644
index 000000000..36544f063
--- /dev/null
+++ b/vendor/github.com/gizak/termui/render.go
@@ -0,0 +1,135 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "image"
+ "sync"
+ "time"
+
+ tm "github.com/nsf/termbox-go"
+)
+
+// Bufferer should be implemented by all renderable components.
+type Bufferer interface {
+ Buffer() Buffer
+}
+
+// Init initializes termui library. This function should be called before any others.
+// After initialization, the library must be finalized by 'Close' function.
+func Init() error {
+ if err := tm.Init(); err != nil {
+ return err
+ }
+
+ sysEvtChs = make([]chan Event, 0)
+ go hookTermboxEvt()
+
+ renderJobs = make(chan []Bufferer)
+ //renderLock = new(sync.RWMutex)
+
+ Body = NewGrid()
+ Body.X = 0
+ Body.Y = 0
+ Body.BgColor = ThemeAttr("bg")
+ Body.Width = TermWidth()
+
+ DefaultEvtStream.Init()
+ DefaultEvtStream.Merge("termbox", NewSysEvtCh())
+ DefaultEvtStream.Merge("timer", NewTimerCh(time.Second))
+ DefaultEvtStream.Merge("custom", usrEvtCh)
+
+ DefaultEvtStream.Handle("/", DefualtHandler)
+ DefaultEvtStream.Handle("/sys/wnd/resize", func(e Event) {
+ w := e.Data.(EvtWnd)
+ Body.Width = w.Width
+ })
+
+ DefaultWgtMgr = NewWgtMgr()
+ DefaultEvtStream.Hook(DefaultWgtMgr.WgtHandlersHook())
+
+ go func() {
+ for bs := range renderJobs {
+ render(bs...)
+ }
+ }()
+
+ return nil
+}
+
+// Close finalizes termui library,
+// should be called after successful initialization when termui's functionality isn't required anymore.
+func Close() {
+ tm.Close()
+}
+
+var renderLock sync.Mutex
+
+func termSync() {
+ renderLock.Lock()
+ tm.Sync()
+ termWidth, termHeight = tm.Size()
+ renderLock.Unlock()
+}
+
+// TermWidth returns the current terminal's width.
+func TermWidth() int {
+ termSync()
+ return termWidth
+}
+
+// TermHeight returns the current terminal's height.
+func TermHeight() int {
+ termSync()
+ return termHeight
+}
+
+// Render renders all Bufferer in the given order from left to right,
+// right could overlap on left ones.
+func render(bs ...Bufferer) {
+
+ for _, b := range bs {
+
+ buf := b.Buffer()
+ // set cels in buf
+ for p, c := range buf.CellMap {
+ if p.In(buf.Area) {
+
+ tm.SetCell(p.X, p.Y, c.Ch, toTmAttr(c.Fg), toTmAttr(c.Bg))
+
+ }
+ }
+
+ }
+
+ renderLock.Lock()
+ // render
+ tm.Flush()
+ renderLock.Unlock()
+}
+
+func Clear() {
+ tm.Clear(tm.ColorDefault, toTmAttr(ThemeAttr("bg")))
+}
+
+func clearArea(r image.Rectangle, bg Attribute) {
+ for i := r.Min.X; i < r.Max.X; i++ {
+ for j := r.Min.Y; j < r.Max.Y; j++ {
+ tm.SetCell(i, j, ' ', tm.ColorDefault, toTmAttr(bg))
+ }
+ }
+}
+
+func ClearArea(r image.Rectangle, bg Attribute) {
+ clearArea(r, bg)
+ tm.Flush()
+}
+
+var renderJobs chan []Bufferer
+
+func Render(bs ...Bufferer) {
+ //go func() { renderJobs <- bs }()
+ renderJobs <- bs
+}
diff --git a/vendor/github.com/gizak/termui/sparkline.go b/vendor/github.com/gizak/termui/sparkline.go
new file mode 100644
index 000000000..312ad9563
--- /dev/null
+++ b/vendor/github.com/gizak/termui/sparkline.go
@@ -0,0 +1,167 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+// Sparkline is like: ▅▆▂▂▅▇▂▂▃▆▆▆▅▃. The data points should be non-negative integers.
+/*
+ data := []int{4, 2, 1, 6, 3, 9, 1, 4, 2, 15, 14, 9, 8, 6, 10, 13, 15, 12, 10, 5, 3, 6, 1}
+ spl := termui.NewSparkline()
+ spl.Data = data
+ spl.Title = "Sparkline 0"
+ spl.LineColor = termui.ColorGreen
+*/
+type Sparkline struct {
+ Data []int
+ Height int
+ Title string
+ TitleColor Attribute
+ LineColor Attribute
+ displayHeight int
+ scale float32
+ max int
+}
+
+// Sparklines is a renderable widget which groups together the given sparklines.
+/*
+ spls := termui.NewSparklines(spl0,spl1,spl2) //...
+ spls.Height = 2
+ spls.Width = 20
+*/
+type Sparklines struct {
+ Block
+ Lines []Sparkline
+ displayLines int
+ displayWidth int
+}
+
+var sparks = []rune{'▁', '▂', '▃', '▄', '▅', '▆', '▇', '█'}
+
+// Add appends a given Sparkline to s *Sparklines.
+func (s *Sparklines) Add(sl Sparkline) {
+ s.Lines = append(s.Lines, sl)
+}
+
+// NewSparkline returns a unrenderable single sparkline that intended to be added into Sparklines.
+func NewSparkline() Sparkline {
+ return Sparkline{
+ Height: 1,
+ TitleColor: ThemeAttr("sparkline.title.fg"),
+ LineColor: ThemeAttr("sparkline.line.fg")}
+}
+
+// NewSparklines return a new *Spaklines with given Sparkline(s), you can always add a new Sparkline later.
+func NewSparklines(ss ...Sparkline) *Sparklines {
+ s := &Sparklines{Block: *NewBlock(), Lines: ss}
+ return s
+}
+
+func (sl *Sparklines) update() {
+ for i, v := range sl.Lines {
+ if v.Title == "" {
+ sl.Lines[i].displayHeight = v.Height
+ } else {
+ sl.Lines[i].displayHeight = v.Height + 1
+ }
+ }
+ sl.displayWidth = sl.innerArea.Dx()
+
+ // get how many lines gotta display
+ h := 0
+ sl.displayLines = 0
+ for _, v := range sl.Lines {
+ if h+v.displayHeight <= sl.innerArea.Dy() {
+ sl.displayLines++
+ } else {
+ break
+ }
+ h += v.displayHeight
+ }
+
+ for i := 0; i < sl.displayLines; i++ {
+ data := sl.Lines[i].Data
+
+ max := 0
+ for _, v := range data {
+ if max < v {
+ max = v
+ }
+ }
+ sl.Lines[i].max = max
+ if max != 0 {
+ sl.Lines[i].scale = float32(8*sl.Lines[i].Height) / float32(max)
+ } else { // when all negative
+ sl.Lines[i].scale = 0
+ }
+ }
+}
+
+// Buffer implements Bufferer interface.
+func (sl *Sparklines) Buffer() Buffer {
+ buf := sl.Block.Buffer()
+ sl.update()
+
+ oftY := 0
+ for i := 0; i < sl.displayLines; i++ {
+ l := sl.Lines[i]
+ data := l.Data
+
+ if len(data) > sl.innerArea.Dx() {
+ data = data[len(data)-sl.innerArea.Dx():]
+ }
+
+ if l.Title != "" {
+ rs := trimStr2Runes(l.Title, sl.innerArea.Dx())
+ oftX := 0
+ for _, v := range rs {
+ w := charWidth(v)
+ c := Cell{
+ Ch: v,
+ Fg: l.TitleColor,
+ Bg: sl.Bg,
+ }
+ x := sl.innerArea.Min.X + oftX
+ y := sl.innerArea.Min.Y + oftY
+ buf.Set(x, y, c)
+ oftX += w
+ }
+ }
+
+ for j, v := range data {
+ // display height of the data point, zero when data is negative
+ h := int(float32(v)*l.scale + 0.5)
+ if v < 0 {
+ h = 0
+ }
+
+ barCnt := h / 8
+ barMod := h % 8
+ for jj := 0; jj < barCnt; jj++ {
+ c := Cell{
+ Ch: ' ', // => sparks[7]
+ Bg: l.LineColor,
+ }
+ x := sl.innerArea.Min.X + j
+ y := sl.innerArea.Min.Y + oftY + l.Height - jj
+
+ //p.Bg = sl.BgColor
+ buf.Set(x, y, c)
+ }
+ if barMod != 0 {
+ c := Cell{
+ Ch: sparks[barMod-1],
+ Fg: l.LineColor,
+ Bg: sl.Bg,
+ }
+ x := sl.innerArea.Min.X + j
+ y := sl.innerArea.Min.Y + oftY + l.Height - barCnt
+ buf.Set(x, y, c)
+ }
+ }
+
+ oftY += l.displayHeight
+ }
+
+ return buf
+}
diff --git a/vendor/github.com/gizak/termui/textbuilder.go b/vendor/github.com/gizak/termui/textbuilder.go
new file mode 100644
index 000000000..06a019bed
--- /dev/null
+++ b/vendor/github.com/gizak/termui/textbuilder.go
@@ -0,0 +1,278 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "regexp"
+ "strings"
+
+ "github.com/mitchellh/go-wordwrap"
+)
+
+// TextBuilder is a minimal interface to produce text []Cell using specific syntax (markdown).
+type TextBuilder interface {
+ Build(s string, fg, bg Attribute) []Cell
+}
+
+// DefaultTxBuilder is set to be MarkdownTxBuilder.
+var DefaultTxBuilder = NewMarkdownTxBuilder()
+
+// MarkdownTxBuilder implements TextBuilder interface, using markdown syntax.
+type MarkdownTxBuilder struct {
+ baseFg Attribute
+ baseBg Attribute
+ plainTx []rune
+ markers []marker
+}
+
+type marker struct {
+ st int
+ ed int
+ fg Attribute
+ bg Attribute
+}
+
+var colorMap = map[string]Attribute{
+ "red": ColorRed,
+ "blue": ColorBlue,
+ "black": ColorBlack,
+ "cyan": ColorCyan,
+ "yellow": ColorYellow,
+ "white": ColorWhite,
+ "default": ColorDefault,
+ "green": ColorGreen,
+ "magenta": ColorMagenta,
+}
+
+var attrMap = map[string]Attribute{
+ "bold": AttrBold,
+ "underline": AttrUnderline,
+ "reverse": AttrReverse,
+}
+
+func rmSpc(s string) string {
+ reg := regexp.MustCompile(`\s+`)
+ return reg.ReplaceAllString(s, "")
+}
+
+// readAttr translates strings like `fg-red,fg-bold,bg-white` to fg and bg Attribute
+func (mtb MarkdownTxBuilder) readAttr(s string) (Attribute, Attribute) {
+ fg := mtb.baseFg
+ bg := mtb.baseBg
+
+ updateAttr := func(a Attribute, attrs []string) Attribute {
+ for _, s := range attrs {
+ // replace the color
+ if c, ok := colorMap[s]; ok {
+ a &= 0xFF00 // erase clr 0 ~ 8 bits
+ a |= c // set clr
+ }
+ // add attrs
+ if c, ok := attrMap[s]; ok {
+ a |= c
+ }
+ }
+ return a
+ }
+
+ ss := strings.Split(s, ",")
+ fgs := []string{}
+ bgs := []string{}
+ for _, v := range ss {
+ subs := strings.Split(v, "-")
+ if len(subs) > 1 {
+ if subs[0] == "fg" {
+ fgs = append(fgs, subs[1])
+ }
+ if subs[0] == "bg" {
+ bgs = append(bgs, subs[1])
+ }
+ }
+ }
+
+ fg = updateAttr(fg, fgs)
+ bg = updateAttr(bg, bgs)
+ return fg, bg
+}
+
+func (mtb *MarkdownTxBuilder) reset() {
+ mtb.plainTx = []rune{}
+ mtb.markers = []marker{}
+}
+
+// parse streams and parses text into normalized text and render sequence.
+func (mtb *MarkdownTxBuilder) parse(str string) {
+ rs := str2runes(str)
+ normTx := []rune{}
+ square := []rune{}
+ brackt := []rune{}
+ accSquare := false
+ accBrackt := false
+ cntSquare := 0
+
+ reset := func() {
+ square = []rune{}
+ brackt = []rune{}
+ accSquare = false
+ accBrackt = false
+ cntSquare = 0
+ }
+ // pipe stacks into normTx and clear
+ rollback := func() {
+ normTx = append(normTx, square...)
+ normTx = append(normTx, brackt...)
+ reset()
+ }
+ // chop first and last
+ chop := func(s []rune) []rune {
+ return s[1 : len(s)-1]
+ }
+
+ for i, r := range rs {
+ switch {
+ // stacking brackt
+ case accBrackt:
+ brackt = append(brackt, r)
+ if ')' == r {
+ fg, bg := mtb.readAttr(string(chop(brackt)))
+ st := len(normTx)
+ ed := len(normTx) + len(square) - 2
+ mtb.markers = append(mtb.markers, marker{st, ed, fg, bg})
+ normTx = append(normTx, chop(square)...)
+ reset()
+ } else if i+1 == len(rs) {
+ rollback()
+ }
+ // stacking square
+ case accSquare:
+ switch {
+ // squares closed and followed by a '('
+ case cntSquare == 0 && '(' == r:
+ accBrackt = true
+ brackt = append(brackt, '(')
+ // squares closed but not followed by a '('
+ case cntSquare == 0:
+ rollback()
+ if '[' == r {
+ accSquare = true
+ cntSquare = 1
+ brackt = append(brackt, '[')
+ } else {
+ normTx = append(normTx, r)
+ }
+ // hit the end
+ case i+1 == len(rs):
+ square = append(square, r)
+ rollback()
+ case '[' == r:
+ cntSquare++
+ square = append(square, '[')
+ case ']' == r:
+ cntSquare--
+ square = append(square, ']')
+ // normal char
+ default:
+ square = append(square, r)
+ }
+ // stacking normTx
+ default:
+ if '[' == r {
+ accSquare = true
+ cntSquare = 1
+ square = append(square, '[')
+ } else {
+ normTx = append(normTx, r)
+ }
+ }
+ }
+
+ mtb.plainTx = normTx
+}
+
+func wrapTx(cs []Cell, wl int) []Cell {
+ tmpCell := make([]Cell, len(cs))
+ copy(tmpCell, cs)
+
+ // get the plaintext
+ plain := CellsToStr(cs)
+
+ // wrap
+ plainWrapped := wordwrap.WrapString(plain, uint(wl))
+
+ // find differences and insert
+ finalCell := tmpCell // finalcell will get the inserts and is what is returned
+
+ plainRune := []rune(plain)
+ plainWrappedRune := []rune(plainWrapped)
+ trigger := "go"
+ plainRuneNew := plainRune
+
+ for trigger != "stop" {
+ plainRune = plainRuneNew
+ for i := range plainRune {
+ if plainRune[i] == plainWrappedRune[i] {
+ trigger = "stop"
+ } else if plainRune[i] != plainWrappedRune[i] && plainWrappedRune[i] == 10 {
+ trigger = "go"
+ cell := Cell{10, 0, 0}
+ j := i - 0
+
+ // insert a cell into the []Cell in correct position
+ tmpCell[i] = cell
+
+ // insert the newline into plain so we avoid indexing errors
+ plainRuneNew = append(plainRune, 10)
+ copy(plainRuneNew[j+1:], plainRuneNew[j:])
+ plainRuneNew[j] = plainWrappedRune[j]
+
+ // restart the inner for loop until plain and plain wrapped are
+ // the same; yeah, it's inefficient, but the text amounts
+ // should be small
+ break
+
+ } else if plainRune[i] != plainWrappedRune[i] &&
+ plainWrappedRune[i-1] == 10 && // if the prior rune is a newline
+ plainRune[i] == 32 { // and this rune is a space
+ trigger = "go"
+ // need to delete plainRune[i] because it gets rid of an extra
+ // space
+ plainRuneNew = append(plainRune[:i], plainRune[i+1:]...)
+ break
+
+ } else {
+ trigger = "stop" // stops the outer for loop
+ }
+ }
+ }
+
+ finalCell = tmpCell
+
+ return finalCell
+}
+
+// Build implements TextBuilder interface.
+func (mtb MarkdownTxBuilder) Build(s string, fg, bg Attribute) []Cell {
+ mtb.baseFg = fg
+ mtb.baseBg = bg
+ mtb.reset()
+ mtb.parse(s)
+ cs := make([]Cell, len(mtb.plainTx))
+ for i := range cs {
+ cs[i] = Cell{Ch: mtb.plainTx[i], Fg: fg, Bg: bg}
+ }
+ for _, mrk := range mtb.markers {
+ for i := mrk.st; i < mrk.ed; i++ {
+ cs[i].Fg = mrk.fg
+ cs[i].Bg = mrk.bg
+ }
+ }
+
+ return cs
+}
+
+// NewMarkdownTxBuilder returns a TextBuilder employing markdown syntax.
+func NewMarkdownTxBuilder() TextBuilder {
+ return MarkdownTxBuilder{}
+}
diff --git a/vendor/github.com/gizak/termui/theme.go b/vendor/github.com/gizak/termui/theme.go
new file mode 100644
index 000000000..c3ccda559
--- /dev/null
+++ b/vendor/github.com/gizak/termui/theme.go
@@ -0,0 +1,140 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import "strings"
+
+/*
+// A ColorScheme represents the current look-and-feel of the dashboard.
+type ColorScheme struct {
+ BodyBg Attribute
+ BlockBg Attribute
+ HasBorder bool
+ BorderFg Attribute
+ BorderBg Attribute
+ BorderLabelTextFg Attribute
+ BorderLabelTextBg Attribute
+ ParTextFg Attribute
+ ParTextBg Attribute
+ SparklineLine Attribute
+ SparklineTitle Attribute
+ GaugeBar Attribute
+ GaugePercent Attribute
+ LineChartLine Attribute
+ LineChartAxes Attribute
+ ListItemFg Attribute
+ ListItemBg Attribute
+ BarChartBar Attribute
+ BarChartText Attribute
+ BarChartNum Attribute
+ MBarChartBar Attribute
+ MBarChartText Attribute
+ MBarChartNum Attribute
+ TabActiveBg Attribute
+}
+
+// default color scheme depends on the user's terminal setting.
+var themeDefault = ColorScheme{HasBorder: true}
+
+var themeHelloWorld = ColorScheme{
+ BodyBg: ColorBlack,
+ BlockBg: ColorBlack,
+ HasBorder: true,
+ BorderFg: ColorWhite,
+ BorderBg: ColorBlack,
+ BorderLabelTextBg: ColorBlack,
+ BorderLabelTextFg: ColorGreen,
+ ParTextBg: ColorBlack,
+ ParTextFg: ColorWhite,
+ SparklineLine: ColorMagenta,
+ SparklineTitle: ColorWhite,
+ GaugeBar: ColorRed,
+ GaugePercent: ColorWhite,
+ LineChartLine: ColorYellow | AttrBold,
+ LineChartAxes: ColorWhite,
+ ListItemBg: ColorBlack,
+ ListItemFg: ColorYellow,
+ BarChartBar: ColorRed,
+ BarChartNum: ColorWhite,
+ BarChartText: ColorCyan,
+ MBarChartBar: ColorRed,
+ MBarChartNum: ColorWhite,
+ MBarChartText: ColorCyan,
+ TabActiveBg: ColorMagenta,
+}
+
+var theme = themeDefault // global dep
+
+// Theme returns the currently used theme.
+func Theme() ColorScheme {
+ return theme
+}
+
+// SetTheme sets a new, custom theme.
+func SetTheme(newTheme ColorScheme) {
+ theme = newTheme
+}
+
+// UseTheme sets a predefined scheme. Currently available: "hello-world" and
+// "black-and-white".
+func UseTheme(th string) {
+ switch th {
+ case "helloworld":
+ theme = themeHelloWorld
+ default:
+ theme = themeDefault
+ }
+}
+*/
+
+var ColorMap = map[string]Attribute{
+ "fg": ColorWhite,
+ "bg": ColorDefault,
+ "border.fg": ColorWhite,
+ "label.fg": ColorGreen,
+ "par.fg": ColorYellow,
+ "par.label.bg": ColorWhite,
+}
+
+func ThemeAttr(name string) Attribute {
+ return lookUpAttr(ColorMap, name)
+}
+
+func lookUpAttr(clrmap map[string]Attribute, name string) Attribute {
+
+ a, ok := clrmap[name]
+ if ok {
+ return a
+ }
+
+ ns := strings.Split(name, ".")
+ for i := range ns {
+ nn := strings.Join(ns[i:len(ns)], ".")
+ a, ok = ColorMap[nn]
+ if ok {
+ break
+ }
+ }
+
+ return a
+}
+
+// 0<=r,g,b <= 5
+func ColorRGB(r, g, b int) Attribute {
+ within := func(n int) int {
+ if n < 0 {
+ return 0
+ }
+
+ if n > 5 {
+ return 5
+ }
+
+ return n
+ }
+
+ r, b, g = within(r), within(b), within(g)
+ return Attribute(0x0f + 36*r + 6*g + b)
+}
diff --git a/vendor/github.com/gizak/termui/widget.go b/vendor/github.com/gizak/termui/widget.go
new file mode 100644
index 000000000..35cf143a3
--- /dev/null
+++ b/vendor/github.com/gizak/termui/widget.go
@@ -0,0 +1,94 @@
+// Copyright 2016 Zack Guo <gizak@icloud.com>. All rights reserved.
+// Use of this source code is governed by a MIT license that can
+// be found in the LICENSE file.
+
+package termui
+
+import (
+ "fmt"
+ "sync"
+)
+
+// event mixins
+type WgtMgr map[string]WgtInfo
+
+type WgtInfo struct {
+ Handlers map[string]func(Event)
+ WgtRef Widget
+ Id string
+}
+
+type Widget interface {
+ Id() string
+}
+
+func NewWgtInfo(wgt Widget) WgtInfo {
+ return WgtInfo{
+ Handlers: make(map[string]func(Event)),
+ WgtRef: wgt,
+ Id: wgt.Id(),
+ }
+}
+
+func NewWgtMgr() WgtMgr {
+ wm := WgtMgr(make(map[string]WgtInfo))
+ return wm
+
+}
+
+func (wm WgtMgr) AddWgt(wgt Widget) {
+ wm[wgt.Id()] = NewWgtInfo(wgt)
+}
+
+func (wm WgtMgr) RmWgt(wgt Widget) {
+ wm.RmWgtById(wgt.Id())
+}
+
+func (wm WgtMgr) RmWgtById(id string) {
+ delete(wm, id)
+}
+
+func (wm WgtMgr) AddWgtHandler(id, path string, h func(Event)) {
+ if w, ok := wm[id]; ok {
+ w.Handlers[path] = h
+ }
+}
+
+func (wm WgtMgr) RmWgtHandler(id, path string) {
+ if w, ok := wm[id]; ok {
+ delete(w.Handlers, path)
+ }
+}
+
+var counter struct {
+ sync.RWMutex
+ count int
+}
+
+func GenId() string {
+ counter.Lock()
+ defer counter.Unlock()
+
+ counter.count += 1
+ return fmt.Sprintf("%d", counter.count)
+}
+
+func (wm WgtMgr) WgtHandlersHook() func(Event) {
+ return func(e Event) {
+ for _, v := range wm {
+ if k := findMatch(v.Handlers, e.Path); k != "" {
+ v.Handlers[k](e)
+ }
+ }
+ }
+}
+
+var DefaultWgtMgr WgtMgr
+
+func (b *Block) Handle(path string, handler func(Event)) {
+ if _, ok := DefaultWgtMgr[b.Id()]; !ok {
+ DefaultWgtMgr.AddWgt(b)
+ }
+
+ DefaultWgtMgr.AddWgtHandler(b.Id(), path, handler)
+}
diff --git a/vendor/github.com/golang/snappy/.gitignore b/vendor/github.com/golang/snappy/.gitignore
new file mode 100644
index 000000000..042091d9b
--- /dev/null
+++ b/vendor/github.com/golang/snappy/.gitignore
@@ -0,0 +1,16 @@
+cmd/snappytool/snappytool
+testdata/bench
+
+# These explicitly listed benchmark data files are for an obsolete version of
+# snappy_test.go.
+testdata/alice29.txt
+testdata/asyoulik.txt
+testdata/fireworks.jpeg
+testdata/geo.protodata
+testdata/html
+testdata/html_x_4
+testdata/kppkn.gtb
+testdata/lcet10.txt
+testdata/paper-100k.pdf
+testdata/plrabn12.txt
+testdata/urls.10K
diff --git a/vendor/github.com/golang/snappy/AUTHORS b/vendor/github.com/golang/snappy/AUTHORS
new file mode 100644
index 000000000..bcfa19520
--- /dev/null
+++ b/vendor/github.com/golang/snappy/AUTHORS
@@ -0,0 +1,15 @@
+# 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 <email address>
+# The email address is not required for organizations.
+
+# Please keep the list sorted.
+
+Damian Gryski <dgryski@gmail.com>
+Google Inc.
+Jan Mercl <0xjnml@gmail.com>
+Rodolfo Carvalho <rhcarvalho@gmail.com>
+Sebastien Binet <seb.binet@gmail.com>
diff --git a/vendor/github.com/golang/snappy/CONTRIBUTORS b/vendor/github.com/golang/snappy/CONTRIBUTORS
new file mode 100644
index 000000000..931ae3160
--- /dev/null
+++ b/vendor/github.com/golang/snappy/CONTRIBUTORS
@@ -0,0 +1,37 @@
+# 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 <email address>
+
+# Please keep the list sorted.
+
+Damian Gryski <dgryski@gmail.com>
+Jan Mercl <0xjnml@gmail.com>
+Kai Backman <kaib@golang.org>
+Marc-Antoine Ruel <maruel@chromium.org>
+Nigel Tao <nigeltao@golang.org>
+Rob Pike <r@golang.org>
+Rodolfo Carvalho <rhcarvalho@gmail.com>
+Russ Cox <rsc@golang.org>
+Sebastien Binet <seb.binet@gmail.com>
diff --git a/vendor/github.com/golang/snappy/LICENSE b/vendor/github.com/golang/snappy/LICENSE
new file mode 100644
index 000000000..6050c10f4
--- /dev/null
+++ b/vendor/github.com/golang/snappy/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2011 The Snappy-Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/golang/snappy/README b/vendor/github.com/golang/snappy/README
new file mode 100644
index 000000000..cea12879a
--- /dev/null
+++ b/vendor/github.com/golang/snappy/README
@@ -0,0 +1,107 @@
+The Snappy compression format in the Go programming language.
+
+To download and install from source:
+$ go get github.com/golang/snappy
+
+Unless otherwise noted, the Snappy-Go source files are distributed
+under the BSD-style license found in the LICENSE file.
+
+
+
+Benchmarks.
+
+The golang/snappy benchmarks include compressing (Z) and decompressing (U) ten
+or so files, the same set used by the C++ Snappy code (github.com/google/snappy
+and note the "google", not "golang"). On an "Intel(R) Core(TM) i7-3770 CPU @
+3.40GHz", Go's GOARCH=amd64 numbers as of 2016-05-29:
+
+"go test -test.bench=."
+
+_UFlat0-8 2.19GB/s ± 0% html
+_UFlat1-8 1.41GB/s ± 0% urls
+_UFlat2-8 23.5GB/s ± 2% jpg
+_UFlat3-8 1.91GB/s ± 0% jpg_200
+_UFlat4-8 14.0GB/s ± 1% pdf
+_UFlat5-8 1.97GB/s ± 0% html4
+_UFlat6-8 814MB/s ± 0% txt1
+_UFlat7-8 785MB/s ± 0% txt2
+_UFlat8-8 857MB/s ± 0% txt3
+_UFlat9-8 719MB/s ± 1% txt4
+_UFlat10-8 2.84GB/s ± 0% pb
+_UFlat11-8 1.05GB/s ± 0% gaviota
+
+_ZFlat0-8 1.04GB/s ± 0% html
+_ZFlat1-8 534MB/s ± 0% urls
+_ZFlat2-8 15.7GB/s ± 1% jpg
+_ZFlat3-8 740MB/s ± 3% jpg_200
+_ZFlat4-8 9.20GB/s ± 1% pdf
+_ZFlat5-8 991MB/s ± 0% html4
+_ZFlat6-8 379MB/s ± 0% txt1
+_ZFlat7-8 352MB/s ± 0% txt2
+_ZFlat8-8 396MB/s ± 1% txt3
+_ZFlat9-8 327MB/s ± 1% txt4
+_ZFlat10-8 1.33GB/s ± 1% pb
+_ZFlat11-8 605MB/s ± 1% gaviota
+
+
+
+"go test -test.bench=. -tags=noasm"
+
+_UFlat0-8 621MB/s ± 2% html
+_UFlat1-8 494MB/s ± 1% urls
+_UFlat2-8 23.2GB/s ± 1% jpg
+_UFlat3-8 1.12GB/s ± 1% jpg_200
+_UFlat4-8 4.35GB/s ± 1% pdf
+_UFlat5-8 609MB/s ± 0% html4
+_UFlat6-8 296MB/s ± 0% txt1
+_UFlat7-8 288MB/s ± 0% txt2
+_UFlat8-8 309MB/s ± 1% txt3
+_UFlat9-8 280MB/s ± 1% txt4
+_UFlat10-8 753MB/s ± 0% pb
+_UFlat11-8 400MB/s ± 0% gaviota
+
+_ZFlat0-8 409MB/s ± 1% html
+_ZFlat1-8 250MB/s ± 1% urls
+_ZFlat2-8 12.3GB/s ± 1% jpg
+_ZFlat3-8 132MB/s ± 0% jpg_200
+_ZFlat4-8 2.92GB/s ± 0% pdf
+_ZFlat5-8 405MB/s ± 1% html4
+_ZFlat6-8 179MB/s ± 1% txt1
+_ZFlat7-8 170MB/s ± 1% txt2
+_ZFlat8-8 189MB/s ± 1% txt3
+_ZFlat9-8 164MB/s ± 1% txt4
+_ZFlat10-8 479MB/s ± 1% pb
+_ZFlat11-8 270MB/s ± 1% gaviota
+
+
+
+For comparison (Go's encoded output is byte-for-byte identical to C++'s), here
+are the numbers from C++ Snappy's
+
+make CXXFLAGS="-O2 -DNDEBUG -g" clean snappy_unittest.log && cat snappy_unittest.log
+
+BM_UFlat/0 2.4GB/s html
+BM_UFlat/1 1.4GB/s urls
+BM_UFlat/2 21.8GB/s jpg
+BM_UFlat/3 1.5GB/s jpg_200
+BM_UFlat/4 13.3GB/s pdf
+BM_UFlat/5 2.1GB/s html4
+BM_UFlat/6 1.0GB/s txt1
+BM_UFlat/7 959.4MB/s txt2
+BM_UFlat/8 1.0GB/s txt3
+BM_UFlat/9 864.5MB/s txt4
+BM_UFlat/10 2.9GB/s pb
+BM_UFlat/11 1.2GB/s gaviota
+
+BM_ZFlat/0 944.3MB/s html (22.31 %)
+BM_ZFlat/1 501.6MB/s urls (47.78 %)
+BM_ZFlat/2 14.3GB/s jpg (99.95 %)
+BM_ZFlat/3 538.3MB/s jpg_200 (73.00 %)
+BM_ZFlat/4 8.3GB/s pdf (83.30 %)
+BM_ZFlat/5 903.5MB/s html4 (22.52 %)
+BM_ZFlat/6 336.0MB/s txt1 (57.88 %)
+BM_ZFlat/7 312.3MB/s txt2 (61.91 %)
+BM_ZFlat/8 353.1MB/s txt3 (54.99 %)
+BM_ZFlat/9 289.9MB/s txt4 (66.26 %)
+BM_ZFlat/10 1.2GB/s pb (19.68 %)
+BM_ZFlat/11 527.4MB/s gaviota (37.72 %)
diff --git a/vendor/github.com/golang/snappy/decode.go b/vendor/github.com/golang/snappy/decode.go
new file mode 100644
index 000000000..72efb0353
--- /dev/null
+++ b/vendor/github.com/golang/snappy/decode.go
@@ -0,0 +1,237 @@
+// 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")
+
+ 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
+}
+
+const (
+ decodeErrCodeCorrupt = 1
+ decodeErrCodeUnsupportedLiteralLength = 2
+)
+
+// 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.
+//
+// The dst and src must not overlap. 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 dLen <= len(dst) {
+ dst = dst[:dLen]
+ } else {
+ dst = make([]byte, dLen)
+ }
+ switch decode(dst, src[s:]) {
+ case 0:
+ return dst, nil
+ case decodeErrCodeUnsupportedLiteralLength:
+ return nil, errUnsupportedLiteralLength
+ }
+ return nil, ErrCorrupt
+}
+
+// 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, maxBlockSize),
+ buf: make([]byte, maxEncodedLenOfMaxBlockSize+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, allowEOF bool) (ok bool) {
+ if _, r.err = io.ReadFull(r.r, p); r.err != nil {
+ if r.err == io.ErrUnexpectedEOF || (r.err == io.EOF && !allowEOF) {
+ 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], true) {
+ 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, false) {
+ 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, false) {
+ 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 n > len(r.decoded) {
+ r.err = ErrCorrupt
+ return 0, r.err
+ }
+ if !r.readFull(r.decoded[:n], false) {
+ 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)], false) {
+ 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], false) {
+ return 0, r.err
+ }
+ }
+}
diff --git a/vendor/github.com/golang/snappy/decode_amd64.go b/vendor/github.com/golang/snappy/decode_amd64.go
new file mode 100644
index 000000000..fcd192b84
--- /dev/null
+++ b/vendor/github.com/golang/snappy/decode_amd64.go
@@ -0,0 +1,14 @@
+// Copyright 2016 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.
+
+// +build !appengine
+// +build gc
+// +build !noasm
+
+package snappy
+
+// decode has the same semantics as in decode_other.go.
+//
+//go:noescape
+func decode(dst, src []byte) int
diff --git a/vendor/github.com/golang/snappy/decode_amd64.s b/vendor/github.com/golang/snappy/decode_amd64.s
new file mode 100644
index 000000000..e6179f65e
--- /dev/null
+++ b/vendor/github.com/golang/snappy/decode_amd64.s
@@ -0,0 +1,490 @@
+// 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 !appengine
+// +build gc
+// +build !noasm
+
+#include "textflag.h"
+
+// The asm code generally follows the pure Go code in decode_other.go, except
+// where marked with a "!!!".
+
+// func decode(dst, src []byte) int
+//
+// All local variables fit into registers. The non-zero stack size is only to
+// spill registers and push args when issuing a CALL. The register allocation:
+// - AX scratch
+// - BX scratch
+// - CX length or x
+// - DX offset
+// - SI &src[s]
+// - DI &dst[d]
+// + R8 dst_base
+// + R9 dst_len
+// + R10 dst_base + dst_len
+// + R11 src_base
+// + R12 src_len
+// + R13 src_base + src_len
+// - R14 used by doCopy
+// - R15 used by doCopy
+//
+// The registers R8-R13 (marked with a "+") are set at the start of the
+// function, and after a CALL returns, and are not otherwise modified.
+//
+// The d variable is implicitly DI - R8, and len(dst)-d is R10 - DI.
+// The s variable is implicitly SI - R11, and len(src)-s is R13 - SI.
+TEXT ·decode(SB), NOSPLIT, $48-56
+ // Initialize SI, DI and R8-R13.
+ MOVQ dst_base+0(FP), R8
+ MOVQ dst_len+8(FP), R9
+ MOVQ R8, DI
+ MOVQ R8, R10
+ ADDQ R9, R10
+ MOVQ src_base+24(FP), R11
+ MOVQ src_len+32(FP), R12
+ MOVQ R11, SI
+ MOVQ R11, R13
+ ADDQ R12, R13
+
+loop:
+ // for s < len(src)
+ CMPQ SI, R13
+ JEQ end
+
+ // CX = uint32(src[s])
+ //
+ // switch src[s] & 0x03
+ MOVBLZX (SI), CX
+ MOVL CX, BX
+ ANDL $3, BX
+ CMPL BX, $1
+ JAE tagCopy
+
+ // ----------------------------------------
+ // The code below handles literal tags.
+
+ // case tagLiteral:
+ // x := uint32(src[s] >> 2)
+ // switch
+ SHRL $2, CX
+ CMPL CX, $60
+ JAE tagLit60Plus
+
+ // case x < 60:
+ // s++
+ INCQ SI
+
+doLit:
+ // This is the end of the inner "switch", when we have a literal tag.
+ //
+ // We assume that CX == x and x fits in a uint32, where x is the variable
+ // used in the pure Go decode_other.go code.
+
+ // length = int(x) + 1
+ //
+ // Unlike the pure Go code, we don't need to check if length <= 0 because
+ // CX can hold 64 bits, so the increment cannot overflow.
+ INCQ CX
+
+ // Prepare to check if copying length bytes will run past the end of dst or
+ // src.
+ //
+ // AX = len(dst) - d
+ // BX = len(src) - s
+ MOVQ R10, AX
+ SUBQ DI, AX
+ MOVQ R13, BX
+ SUBQ SI, BX
+
+ // !!! Try a faster technique for short (16 or fewer bytes) copies.
+ //
+ // if length > 16 || len(dst)-d < 16 || len(src)-s < 16 {
+ // goto callMemmove // Fall back on calling runtime·memmove.
+ // }
+ //
+ // The C++ snappy code calls this TryFastAppend. It also checks len(src)-s
+ // against 21 instead of 16, because it cannot assume that all of its input
+ // is contiguous in memory and so it needs to leave enough source bytes to
+ // read the next tag without refilling buffers, but Go's Decode assumes
+ // contiguousness (the src argument is a []byte).
+ CMPQ CX, $16
+ JGT callMemmove
+ CMPQ AX, $16
+ JLT callMemmove
+ CMPQ BX, $16
+ JLT callMemmove
+
+ // !!! Implement the copy from src to dst as a 16-byte load and store.
+ // (Decode's documentation says that dst and src must not overlap.)
+ //
+ // This always copies 16 bytes, instead of only length bytes, but that's
+ // OK. If the input is a valid Snappy encoding then subsequent iterations
+ // will fix up the overrun. Otherwise, Decode returns a nil []byte (and a
+ // non-nil error), so the overrun will be ignored.
+ //
+ // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or
+ // 16-byte loads and stores. This technique probably wouldn't be as
+ // effective on architectures that are fussier about alignment.
+ MOVOU 0(SI), X0
+ MOVOU X0, 0(DI)
+
+ // d += length
+ // s += length
+ ADDQ CX, DI
+ ADDQ CX, SI
+ JMP loop
+
+callMemmove:
+ // if length > len(dst)-d || length > len(src)-s { etc }
+ CMPQ CX, AX
+ JGT errCorrupt
+ CMPQ CX, BX
+ JGT errCorrupt
+
+ // copy(dst[d:], src[s:s+length])
+ //
+ // This means calling runtime·memmove(&dst[d], &src[s], length), so we push
+ // DI, SI and CX as arguments. Coincidentally, we also need to spill those
+ // three registers to the stack, to save local variables across the CALL.
+ MOVQ DI, 0(SP)
+ MOVQ SI, 8(SP)
+ MOVQ CX, 16(SP)
+ MOVQ DI, 24(SP)
+ MOVQ SI, 32(SP)
+ MOVQ CX, 40(SP)
+ CALL runtime·memmove(SB)
+
+ // Restore local variables: unspill registers from the stack and
+ // re-calculate R8-R13.
+ MOVQ 24(SP), DI
+ MOVQ 32(SP), SI
+ MOVQ 40(SP), CX
+ MOVQ dst_base+0(FP), R8
+ MOVQ dst_len+8(FP), R9
+ MOVQ R8, R10
+ ADDQ R9, R10
+ MOVQ src_base+24(FP), R11
+ MOVQ src_len+32(FP), R12
+ MOVQ R11, R13
+ ADDQ R12, R13
+
+ // d += length
+ // s += length
+ ADDQ CX, DI
+ ADDQ CX, SI
+ JMP loop
+
+tagLit60Plus:
+ // !!! This fragment does the
+ //
+ // s += x - 58; if uint(s) > uint(len(src)) { etc }
+ //
+ // checks. In the asm version, we code it once instead of once per switch case.
+ ADDQ CX, SI
+ SUBQ $58, SI
+ MOVQ SI, BX
+ SUBQ R11, BX
+ CMPQ BX, R12
+ JA errCorrupt
+
+ // case x == 60:
+ CMPL CX, $61
+ JEQ tagLit61
+ JA tagLit62Plus
+
+ // x = uint32(src[s-1])
+ MOVBLZX -1(SI), CX
+ JMP doLit
+
+tagLit61:
+ // case x == 61:
+ // x = uint32(src[s-2]) | uint32(src[s-1])<<8
+ MOVWLZX -2(SI), CX
+ JMP doLit
+
+tagLit62Plus:
+ CMPL CX, $62
+ JA tagLit63
+
+ // case x == 62:
+ // x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(src[s-1])<<16
+ MOVWLZX -3(SI), CX
+ MOVBLZX -1(SI), BX
+ SHLL $16, BX
+ ORL BX, CX
+ JMP doLit
+
+tagLit63:
+ // case x == 63:
+ // x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24
+ MOVL -4(SI), CX
+ JMP doLit
+
+// The code above handles literal tags.
+// ----------------------------------------
+// The code below handles copy tags.
+
+tagCopy4:
+ // case tagCopy4:
+ // s += 5
+ ADDQ $5, SI
+
+ // if uint(s) > uint(len(src)) { etc }
+ MOVQ SI, BX
+ SUBQ R11, BX
+ CMPQ BX, R12
+ JA errCorrupt
+
+ // length = 1 + int(src[s-5])>>2
+ SHRQ $2, CX
+ INCQ CX
+
+ // offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24)
+ MOVLQZX -4(SI), DX
+ JMP doCopy
+
+tagCopy2:
+ // case tagCopy2:
+ // s += 3
+ ADDQ $3, SI
+
+ // if uint(s) > uint(len(src)) { etc }
+ MOVQ SI, BX
+ SUBQ R11, BX
+ CMPQ BX, R12
+ JA errCorrupt
+
+ // length = 1 + int(src[s-3])>>2
+ SHRQ $2, CX
+ INCQ CX
+
+ // offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8)
+ MOVWQZX -2(SI), DX
+ JMP doCopy
+
+tagCopy:
+ // We have a copy tag. We assume that:
+ // - BX == src[s] & 0x03
+ // - CX == src[s]
+ CMPQ BX, $2
+ JEQ tagCopy2
+ JA tagCopy4
+
+ // case tagCopy1:
+ // s += 2
+ ADDQ $2, SI
+
+ // if uint(s) > uint(len(src)) { etc }
+ MOVQ SI, BX
+ SUBQ R11, BX
+ CMPQ BX, R12
+ JA errCorrupt
+
+ // offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]))
+ MOVQ CX, DX
+ ANDQ $0xe0, DX
+ SHLQ $3, DX
+ MOVBQZX -1(SI), BX
+ ORQ BX, DX
+
+ // length = 4 + int(src[s-2])>>2&0x7
+ SHRQ $2, CX
+ ANDQ $7, CX
+ ADDQ $4, CX
+
+doCopy:
+ // This is the end of the outer "switch", when we have a copy tag.
+ //
+ // We assume that:
+ // - CX == length && CX > 0
+ // - DX == offset
+
+ // if offset <= 0 { etc }
+ CMPQ DX, $0
+ JLE errCorrupt
+
+ // if d < offset { etc }
+ MOVQ DI, BX
+ SUBQ R8, BX
+ CMPQ BX, DX
+ JLT errCorrupt
+
+ // if length > len(dst)-d { etc }
+ MOVQ R10, BX
+ SUBQ DI, BX
+ CMPQ CX, BX
+ JGT errCorrupt
+
+ // forwardCopy(dst[d:d+length], dst[d-offset:]); d += length
+ //
+ // Set:
+ // - R14 = len(dst)-d
+ // - R15 = &dst[d-offset]
+ MOVQ R10, R14
+ SUBQ DI, R14
+ MOVQ DI, R15
+ SUBQ DX, R15
+
+ // !!! Try a faster technique for short (16 or fewer bytes) forward copies.
+ //
+ // First, try using two 8-byte load/stores, similar to the doLit technique
+ // above. Even if dst[d:d+length] and dst[d-offset:] can overlap, this is
+ // still OK if offset >= 8. Note that this has to be two 8-byte load/stores
+ // and not one 16-byte load/store, and the first store has to be before the
+ // second load, due to the overlap if offset is in the range [8, 16).
+ //
+ // if length > 16 || offset < 8 || len(dst)-d < 16 {
+ // goto slowForwardCopy
+ // }
+ // copy 16 bytes
+ // d += length
+ CMPQ CX, $16
+ JGT slowForwardCopy
+ CMPQ DX, $8
+ JLT slowForwardCopy
+ CMPQ R14, $16
+ JLT slowForwardCopy
+ MOVQ 0(R15), AX
+ MOVQ AX, 0(DI)
+ MOVQ 8(R15), BX
+ MOVQ BX, 8(DI)
+ ADDQ CX, DI
+ JMP loop
+
+slowForwardCopy:
+ // !!! If the forward copy is longer than 16 bytes, or if offset < 8, we
+ // can still try 8-byte load stores, provided we can overrun up to 10 extra
+ // bytes. As above, the overrun will be fixed up by subsequent iterations
+ // of the outermost loop.
+ //
+ // The C++ snappy code calls this technique IncrementalCopyFastPath. Its
+ // commentary says:
+ //
+ // ----
+ //
+ // The main part of this loop is a simple copy of eight bytes at a time
+ // until we've copied (at least) the requested amount of bytes. However,
+ // if d and d-offset are less than eight bytes apart (indicating a
+ // repeating pattern of length < 8), we first need to expand the pattern in
+ // order to get the correct results. For instance, if the buffer looks like
+ // this, with the eight-byte <d-offset> and <d> patterns marked as
+ // intervals:
+ //
+ // abxxxxxxxxxxxx
+ // [------] d-offset
+ // [------] d
+ //
+ // a single eight-byte copy from <d-offset> to <d> will repeat the pattern
+ // once, after which we can move <d> two bytes without moving <d-offset>:
+ //
+ // ababxxxxxxxxxx
+ // [------] d-offset
+ // [------] d
+ //
+ // and repeat the exercise until the two no longer overlap.
+ //
+ // This allows us to do very well in the special case of one single byte
+ // repeated many times, without taking a big hit for more general cases.
+ //
+ // The worst case of extra writing past the end of the match occurs when
+ // offset == 1 and length == 1; the last copy will read from byte positions
+ // [0..7] and write to [4..11], whereas it was only supposed to write to
+ // position 1. Thus, ten excess bytes.
+ //
+ // ----
+ //
+ // That "10 byte overrun" worst case is confirmed by Go's
+ // TestSlowForwardCopyOverrun, which also tests the fixUpSlowForwardCopy
+ // and finishSlowForwardCopy algorithm.
+ //
+ // if length > len(dst)-d-10 {
+ // goto verySlowForwardCopy
+ // }
+ SUBQ $10, R14
+ CMPQ CX, R14
+ JGT verySlowForwardCopy
+
+makeOffsetAtLeast8:
+ // !!! As above, expand the pattern so that offset >= 8 and we can use
+ // 8-byte load/stores.
+ //
+ // for offset < 8 {
+ // copy 8 bytes from dst[d-offset:] to dst[d:]
+ // length -= offset
+ // d += offset
+ // offset += offset
+ // // The two previous lines together means that d-offset, and therefore
+ // // R15, is unchanged.
+ // }
+ CMPQ DX, $8
+ JGE fixUpSlowForwardCopy
+ MOVQ (R15), BX
+ MOVQ BX, (DI)
+ SUBQ DX, CX
+ ADDQ DX, DI
+ ADDQ DX, DX
+ JMP makeOffsetAtLeast8
+
+fixUpSlowForwardCopy:
+ // !!! Add length (which might be negative now) to d (implied by DI being
+ // &dst[d]) so that d ends up at the right place when we jump back to the
+ // top of the loop. Before we do that, though, we save DI to AX so that, if
+ // length is positive, copying the remaining length bytes will write to the
+ // right place.
+ MOVQ DI, AX
+ ADDQ CX, DI
+
+finishSlowForwardCopy:
+ // !!! Repeat 8-byte load/stores until length <= 0. Ending with a negative
+ // length means that we overrun, but as above, that will be fixed up by
+ // subsequent iterations of the outermost loop.
+ CMPQ CX, $0
+ JLE loop
+ MOVQ (R15), BX
+ MOVQ BX, (AX)
+ ADDQ $8, R15
+ ADDQ $8, AX
+ SUBQ $8, CX
+ JMP finishSlowForwardCopy
+
+verySlowForwardCopy:
+ // verySlowForwardCopy is a simple implementation of forward copy. In C
+ // parlance, this is a do/while loop instead of a while loop, since we know
+ // that length > 0. In Go syntax:
+ //
+ // for {
+ // dst[d] = dst[d - offset]
+ // d++
+ // length--
+ // if length == 0 {
+ // break
+ // }
+ // }
+ MOVB (R15), BX
+ MOVB BX, (DI)
+ INCQ R15
+ INCQ DI
+ DECQ CX
+ JNZ verySlowForwardCopy
+ JMP loop
+
+// The code above handles copy tags.
+// ----------------------------------------
+
+end:
+ // This is the end of the "for s < len(src)".
+ //
+ // if d != len(dst) { etc }
+ CMPQ DI, R10
+ JNE errCorrupt
+
+ // return 0
+ MOVQ $0, ret+48(FP)
+ RET
+
+errCorrupt:
+ // return decodeErrCodeCorrupt
+ MOVQ $1, ret+48(FP)
+ RET
diff --git a/vendor/github.com/golang/snappy/decode_other.go b/vendor/github.com/golang/snappy/decode_other.go
new file mode 100644
index 000000000..8c9f2049b
--- /dev/null
+++ b/vendor/github.com/golang/snappy/decode_other.go
@@ -0,0 +1,101 @@
+// Copyright 2016 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.
+
+// +build !amd64 appengine !gc noasm
+
+package snappy
+
+// decode writes the decoding of src to dst. It assumes that the varint-encoded
+// length of the decompressed bytes has already been read, and that len(dst)
+// equals that length.
+//
+// It returns 0 on success or a decodeErrCodeXxx error code on failure.
+func decode(dst, src []byte) int {
+ var d, s, offset, length int
+ for s < len(src) {
+ switch src[s] & 0x03 {
+ case tagLiteral:
+ x := uint32(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 decodeErrCodeCorrupt
+ }
+ x = uint32(src[s-1])
+ case x == 61:
+ s += 3
+ if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.
+ return decodeErrCodeCorrupt
+ }
+ x = uint32(src[s-2]) | uint32(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 decodeErrCodeCorrupt
+ }
+ x = uint32(src[s-3]) | uint32(src[s-2])<<8 | uint32(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 decodeErrCodeCorrupt
+ }
+ x = uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24
+ }
+ length = int(x) + 1
+ if length <= 0 {
+ return decodeErrCodeUnsupportedLiteralLength
+ }
+ if length > len(dst)-d || length > len(src)-s {
+ return decodeErrCodeCorrupt
+ }
+ copy(dst[d:], src[s:s+length])
+ d += length
+ s += length
+ continue
+
+ case tagCopy1:
+ s += 2
+ if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.
+ return decodeErrCodeCorrupt
+ }
+ length = 4 + int(src[s-2])>>2&0x7
+ offset = int(uint32(src[s-2])&0xe0<<3 | uint32(src[s-1]))
+
+ case tagCopy2:
+ s += 3
+ if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.
+ return decodeErrCodeCorrupt
+ }
+ length = 1 + int(src[s-3])>>2
+ offset = int(uint32(src[s-2]) | uint32(src[s-1])<<8)
+
+ case tagCopy4:
+ s += 5
+ if uint(s) > uint(len(src)) { // The uint conversions catch overflow from the previous line.
+ return decodeErrCodeCorrupt
+ }
+ length = 1 + int(src[s-5])>>2
+ offset = int(uint32(src[s-4]) | uint32(src[s-3])<<8 | uint32(src[s-2])<<16 | uint32(src[s-1])<<24)
+ }
+
+ if offset <= 0 || d < offset || length > len(dst)-d {
+ return decodeErrCodeCorrupt
+ }
+ // Copy from an earlier sub-slice of dst to a later sub-slice. Unlike
+ // the built-in copy function, this byte-by-byte copy always runs
+ // forwards, even if the slices overlap. Conceptually, this is:
+ //
+ // d += forwardCopy(dst[d:d+length], dst[d-offset:])
+ for end := d + length; d != end; d++ {
+ dst[d] = dst[d-offset]
+ }
+ }
+ if d != len(dst) {
+ return decodeErrCodeCorrupt
+ }
+ return 0
+}
diff --git a/vendor/github.com/golang/snappy/encode.go b/vendor/github.com/golang/snappy/encode.go
new file mode 100644
index 000000000..874968906
--- /dev/null
+++ b/vendor/github.com/golang/snappy/encode.go
@@ -0,0 +1,285 @@
+// 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"
+)
+
+// 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.
+//
+// The dst and src must not overlap. It is valid to pass a nil dst.
+func Encode(dst, src []byte) []byte {
+ 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) > maxBlockSize {
+ p, src = p[:maxBlockSize], p[maxBlockSize:]
+ }
+ if len(p) < minNonLiteralBlockSize {
+ d += emitLiteral(dst[d:], p)
+ } else {
+ d += encodeBlock(dst[d:], p)
+ }
+ }
+ return dst[:d]
+}
+
+// inputMargin is the minimum number of extra input bytes to keep, inside
+// encodeBlock's inner loop. On some architectures, this margin lets us
+// implement a fast path for emitLiteral, where the copy of short (<= 16 byte)
+// literals can be implemented as a single load to and store from a 16-byte
+// register. That literal's actual length can be as short as 1 byte, so this
+// can copy up to 15 bytes too much, but that's OK as subsequent iterations of
+// the encoding loop will fix up the copy overrun, and this inputMargin ensures
+// that we don't overrun the dst and src buffers.
+const inputMargin = 16 - 1
+
+// minNonLiteralBlockSize is the minimum size of the input to encodeBlock that
+// could be encoded with a copy tag. This is the minimum with respect to the
+// algorithm used by encodeBlock, not a minimum enforced by the file format.
+//
+// The encoded output must start with at least a 1 byte literal, as there are
+// no previous bytes to copy. A minimal (1 byte) copy after that, generated
+// from an emitCopy call in encodeBlock's main loop, would require at least
+// another inputMargin bytes, for the reason above: we want any emitLiteral
+// calls inside encodeBlock's main loop to use the fast path if possible, which
+// requires being able to overrun by inputMargin bytes. Thus,
+// minNonLiteralBlockSize equals 1 + 1 + inputMargin.
+//
+// The C++ code doesn't use this exact threshold, but it could, as discussed at
+// https://groups.google.com/d/topic/snappy-compression/oGbhsdIJSJ8/discussion
+// The difference between Go (2+inputMargin) and C++ (inputMargin) is purely an
+// optimization. It should not affect the encoded form. This is tested by
+// TestSameEncodingAsCppShortCopies.
+const minNonLiteralBlockSize = 1 + 1 + inputMargin
+
+// 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,
+ 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,
+ ibuf: make([]byte, 0, maxBlockSize),
+ obuf: make([]byte, obufLen),
+ }
+}
+
+// Writer is an io.Writer than can write Snappy-compressed bytes.
+type Writer struct {
+ w io.Writer
+ err error
+
+ // 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) > maxBlockSize {
+ uncompressed, p = p[:maxBlockSize], p[maxBlockSize:]
+ } else {
+ uncompressed, p = p, nil
+ }
+ checksum := crc(uncompressed)
+
+ // Compress the buffer, discarding the result if the improvement
+ // isn't at least 12.5%.
+ compressed := Encode(w.obuf[obufHeaderLen:], uncompressed)
+ chunkType := uint8(chunkTypeCompressedData)
+ chunkLen := 4 + len(compressed)
+ obufEnd := obufHeaderLen + len(compressed)
+ if len(compressed) >= 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/golang/snappy/encode_amd64.go b/vendor/github.com/golang/snappy/encode_amd64.go
new file mode 100644
index 000000000..2a56fb504
--- /dev/null
+++ b/vendor/github.com/golang/snappy/encode_amd64.go
@@ -0,0 +1,29 @@
+// Copyright 2016 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.
+
+// +build !appengine
+// +build gc
+// +build !noasm
+
+package snappy
+
+// emitLiteral has the same semantics as in encode_other.go.
+//
+//go:noescape
+func emitLiteral(dst, lit []byte) int
+
+// emitCopy has the same semantics as in encode_other.go.
+//
+//go:noescape
+func emitCopy(dst []byte, offset, length int) int
+
+// extendMatch has the same semantics as in encode_other.go.
+//
+//go:noescape
+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
diff --git a/vendor/github.com/golang/snappy/encode_amd64.s b/vendor/github.com/golang/snappy/encode_amd64.s
new file mode 100644
index 000000000..adfd979fe
--- /dev/null
+++ b/vendor/github.com/golang/snappy/encode_amd64.s
@@ -0,0 +1,730 @@
+// 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 !appengine
+// +build gc
+// +build !noasm
+
+#include "textflag.h"
+
+// The XXX lines assemble on Go 1.4, 1.5 and 1.7, but not 1.6, due to a
+// Go toolchain regression. See https://github.com/golang/go/issues/15426 and
+// https://github.com/golang/snappy/issues/29
+//
+// As a workaround, the package was built with a known good assembler, and
+// those instructions were disassembled by "objdump -d" to yield the
+// 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15
+// style comments, in AT&T asm syntax. Note that rsp here is a physical
+// register, not Go/asm's SP pseudo-register (see https://golang.org/doc/asm).
+// The instructions were then encoded as "BYTE $0x.." sequences, which assemble
+// fine on Go 1.6.
+
+// The asm code generally follows the pure Go code in encode_other.go, except
+// where marked with a "!!!".
+
+// ----------------------------------------------------------------------------
+
+// func emitLiteral(dst, lit []byte) int
+//
+// All local variables fit into registers. The register allocation:
+// - AX len(lit)
+// - BX n
+// - DX return value
+// - DI &dst[i]
+// - R10 &lit[0]
+//
+// The 24 bytes of stack space is to call runtime·memmove.
+//
+// The unusual register allocation of local variables, such as R10 for the
+// source pointer, matches the allocation used at the call site in encodeBlock,
+// which makes it easier to manually inline this function.
+TEXT ·emitLiteral(SB), NOSPLIT, $24-56
+ MOVQ dst_base+0(FP), DI
+ MOVQ lit_base+24(FP), R10
+ MOVQ lit_len+32(FP), AX
+ MOVQ AX, DX
+ MOVL AX, BX
+ SUBL $1, BX
+
+ CMPL BX, $60
+ JLT oneByte
+ CMPL BX, $256
+ JLT twoBytes
+
+threeBytes:
+ MOVB $0xf4, 0(DI)
+ MOVW BX, 1(DI)
+ ADDQ $3, DI
+ ADDQ $3, DX
+ JMP memmove
+
+twoBytes:
+ MOVB $0xf0, 0(DI)
+ MOVB BX, 1(DI)
+ ADDQ $2, DI
+ ADDQ $2, DX
+ JMP memmove
+
+oneByte:
+ SHLB $2, BX
+ MOVB BX, 0(DI)
+ ADDQ $1, DI
+ ADDQ $1, DX
+
+memmove:
+ MOVQ DX, ret+48(FP)
+
+ // copy(dst[i:], lit)
+ //
+ // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push
+ // DI, R10 and AX as arguments.
+ MOVQ DI, 0(SP)
+ MOVQ R10, 8(SP)
+ MOVQ AX, 16(SP)
+ CALL runtime·memmove(SB)
+ RET
+
+// ----------------------------------------------------------------------------
+
+// func emitCopy(dst []byte, offset, length int) int
+//
+// All local variables fit into registers. The register allocation:
+// - AX length
+// - SI &dst[0]
+// - DI &dst[i]
+// - R11 offset
+//
+// The unusual register allocation of local variables, such as R11 for the
+// offset, matches the allocation used at the call site in encodeBlock, which
+// makes it easier to manually inline this function.
+TEXT ·emitCopy(SB), NOSPLIT, $0-48
+ MOVQ dst_base+0(FP), DI
+ MOVQ DI, SI
+ MOVQ offset+24(FP), R11
+ MOVQ length+32(FP), AX
+
+loop0:
+ // for length >= 68 { etc }
+ CMPL AX, $68
+ JLT step1
+
+ // Emit a length 64 copy, encoded as 3 bytes.
+ MOVB $0xfe, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+ SUBL $64, AX
+ JMP loop0
+
+step1:
+ // if length > 64 { etc }
+ CMPL AX, $64
+ JLE step2
+
+ // Emit a length 60 copy, encoded as 3 bytes.
+ MOVB $0xee, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+ SUBL $60, AX
+
+step2:
+ // if length >= 12 || offset >= 2048 { goto step3 }
+ CMPL AX, $12
+ JGE step3
+ CMPL R11, $2048
+ JGE step3
+
+ // Emit the remaining copy, encoded as 2 bytes.
+ MOVB R11, 1(DI)
+ SHRL $8, R11
+ SHLB $5, R11
+ SUBB $4, AX
+ SHLB $2, AX
+ ORB AX, R11
+ ORB $1, R11
+ MOVB R11, 0(DI)
+ ADDQ $2, DI
+
+ // Return the number of bytes written.
+ SUBQ SI, DI
+ MOVQ DI, ret+40(FP)
+ RET
+
+step3:
+ // Emit the remaining copy, encoded as 3 bytes.
+ SUBL $1, AX
+ SHLB $2, AX
+ ORB $2, AX
+ MOVB AX, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+
+ // Return the number of bytes written.
+ SUBQ SI, DI
+ MOVQ DI, ret+40(FP)
+ RET
+
+// ----------------------------------------------------------------------------
+
+// func extendMatch(src []byte, i, j int) int
+//
+// All local variables fit into registers. The register allocation:
+// - DX &src[0]
+// - SI &src[j]
+// - R13 &src[len(src) - 8]
+// - R14 &src[len(src)]
+// - R15 &src[i]
+//
+// The unusual register allocation of local variables, such as R15 for a source
+// pointer, matches the allocation used at the call site in encodeBlock, which
+// makes it easier to manually inline this function.
+TEXT ·extendMatch(SB), NOSPLIT, $0-48
+ MOVQ src_base+0(FP), DX
+ MOVQ src_len+8(FP), R14
+ MOVQ i+24(FP), R15
+ MOVQ j+32(FP), SI
+ ADDQ DX, R14
+ ADDQ DX, R15
+ ADDQ DX, SI
+ MOVQ R14, R13
+ SUBQ $8, R13
+
+cmp8:
+ // As long as we are 8 or more bytes before the end of src, we can load and
+ // compare 8 bytes at a time. If those 8 bytes are equal, repeat.
+ CMPQ SI, R13
+ JA cmp1
+ MOVQ (R15), AX
+ MOVQ (SI), BX
+ CMPQ AX, BX
+ JNE bsf
+ ADDQ $8, R15
+ ADDQ $8, SI
+ 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, SI
+
+ // Convert from &src[ret] to ret.
+ SUBQ DX, SI
+ MOVQ SI, ret+40(FP)
+ RET
+
+cmp1:
+ // In src's tail, compare 1 byte at a time.
+ CMPQ SI, R14
+ JAE extendMatchEnd
+ MOVB (R15), AX
+ MOVB (SI), BX
+ CMPB AX, BX
+ JNE extendMatchEnd
+ ADDQ $1, R15
+ ADDQ $1, SI
+ JMP cmp1
+
+extendMatchEnd:
+ // Convert from &src[ret] to ret.
+ SUBQ DX, SI
+ MOVQ SI, ret+40(FP)
+ RET
+
+// ----------------------------------------------------------------------------
+
+// func encodeBlock(dst, src []byte) (d int)
+//
+// All local variables fit into registers, other than "var table". The register
+// allocation:
+// - AX . .
+// - BX . .
+// - CX 56 shift (note that amd64 shifts by non-immediates must use CX).
+// - DX 64 &src[0], tableSize
+// - SI 72 &src[s]
+// - DI 80 &dst[d]
+// - R9 88 sLimit
+// - R10 . &src[nextEmit]
+// - R11 96 prevHash, currHash, nextHash, offset
+// - R12 104 &src[base], skip
+// - R13 . &src[nextS], &src[len(src) - 8]
+// - R14 . len(src), bytesBetweenHashLookups, &src[len(src)], x
+// - R15 112 candidate
+//
+// The second column (56, 64, etc) is the stack offset to spill the registers
+// when calling other functions. We could pack this slightly tighter, but it's
+// simpler to have a dedicated spill map independent of the function called.
+//
+// "var table [maxTableSize]uint16" takes up 32768 bytes of stack space. An
+// extra 56 bytes, to call other functions, and an extra 64 bytes, to spill
+// local variables (registers) during calls gives 32768 + 56 + 64 = 32888.
+TEXT ·encodeBlock(SB), 0, $32888-56
+ MOVQ dst_base+0(FP), DI
+ MOVQ src_base+24(FP), SI
+ MOVQ src_len+32(FP), R14
+
+ // shift, tableSize := uint32(32-8), 1<<8
+ MOVQ $24, CX
+ MOVQ $256, DX
+
+calcShift:
+ // for ; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 {
+ // shift--
+ // }
+ CMPQ DX, $16384
+ JGE varTable
+ CMPQ DX, R14
+ JGE varTable
+ SUBQ $1, CX
+ SHLQ $1, DX
+ JMP calcShift
+
+varTable:
+ // var table [maxTableSize]uint16
+ //
+ // In the asm code, unlike the Go code, we can zero-initialize only the
+ // first tableSize elements. Each uint16 element is 2 bytes and each MOVOU
+ // writes 16 bytes, so we can do only tableSize/8 writes instead of the
+ // 2048 writes that would zero-initialize all of table's 32768 bytes.
+ SHRQ $3, DX
+ LEAQ table-32768(SP), BX
+ PXOR X0, X0
+
+memclr:
+ MOVOU X0, 0(BX)
+ ADDQ $16, BX
+ SUBQ $1, DX
+ JNZ memclr
+
+ // !!! DX = &src[0]
+ MOVQ SI, DX
+
+ // sLimit := len(src) - inputMargin
+ MOVQ R14, R9
+ SUBQ $15, R9
+
+ // !!! Pre-emptively spill CX, DX and R9 to the stack. Their values don't
+ // change for the rest of the function.
+ MOVQ CX, 56(SP)
+ MOVQ DX, 64(SP)
+ MOVQ R9, 88(SP)
+
+ // nextEmit := 0
+ MOVQ DX, R10
+
+ // s := 1
+ ADDQ $1, SI
+
+ // nextHash := hash(load32(src, s), shift)
+ MOVL 0(SI), R11
+ IMULL $0x1e35a7bd, R11
+ SHRL CX, R11
+
+outer:
+ // for { etc }
+
+ // skip := 32
+ MOVQ $32, R12
+
+ // nextS := s
+ MOVQ SI, R13
+
+ // candidate := 0
+ MOVQ $0, R15
+
+inner0:
+ // for { etc }
+
+ // s := nextS
+ MOVQ R13, SI
+
+ // bytesBetweenHashLookups := skip >> 5
+ MOVQ R12, R14
+ SHRQ $5, R14
+
+ // nextS = s + bytesBetweenHashLookups
+ ADDQ R14, R13
+
+ // skip += bytesBetweenHashLookups
+ ADDQ R14, R12
+
+ // if nextS > sLimit { goto emitRemainder }
+ MOVQ R13, AX
+ SUBQ DX, AX
+ CMPQ AX, R9
+ JA emitRemainder
+
+ // candidate = int(table[nextHash])
+ // XXX: MOVWQZX table-32768(SP)(R11*2), R15
+ // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15
+ BYTE $0x4e
+ BYTE $0x0f
+ BYTE $0xb7
+ BYTE $0x7c
+ BYTE $0x5c
+ BYTE $0x78
+
+ // table[nextHash] = uint16(s)
+ MOVQ SI, AX
+ SUBQ DX, AX
+
+ // XXX: MOVW AX, table-32768(SP)(R11*2)
+ // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2)
+ BYTE $0x66
+ BYTE $0x42
+ BYTE $0x89
+ BYTE $0x44
+ BYTE $0x5c
+ BYTE $0x78
+
+ // nextHash = hash(load32(src, nextS), shift)
+ MOVL 0(R13), R11
+ IMULL $0x1e35a7bd, R11
+ SHRL CX, R11
+
+ // if load32(src, s) != load32(src, candidate) { continue } break
+ MOVL 0(SI), AX
+ MOVL (DX)(R15*1), BX
+ CMPL AX, BX
+ JNE inner0
+
+fourByteMatch:
+ // As per the encode_other.go code:
+ //
+ // A 4-byte match has been found. We'll later see etc.
+
+ // !!! Jump to a fast path for short (<= 16 byte) literals. See the comment
+ // on inputMargin in encode.go.
+ MOVQ SI, AX
+ SUBQ R10, AX
+ CMPQ AX, $16
+ JLE emitLiteralFastPath
+
+ // ----------------------------------------
+ // Begin inline of the emitLiteral call.
+ //
+ // d += emitLiteral(dst[d:], src[nextEmit:s])
+
+ MOVL AX, BX
+ SUBL $1, BX
+
+ CMPL BX, $60
+ JLT inlineEmitLiteralOneByte
+ CMPL BX, $256
+ JLT inlineEmitLiteralTwoBytes
+
+inlineEmitLiteralThreeBytes:
+ MOVB $0xf4, 0(DI)
+ MOVW BX, 1(DI)
+ ADDQ $3, DI
+ JMP inlineEmitLiteralMemmove
+
+inlineEmitLiteralTwoBytes:
+ MOVB $0xf0, 0(DI)
+ MOVB BX, 1(DI)
+ ADDQ $2, DI
+ JMP inlineEmitLiteralMemmove
+
+inlineEmitLiteralOneByte:
+ SHLB $2, BX
+ MOVB BX, 0(DI)
+ ADDQ $1, DI
+
+inlineEmitLiteralMemmove:
+ // Spill local variables (registers) onto the stack; call; unspill.
+ //
+ // copy(dst[i:], lit)
+ //
+ // This means calling runtime·memmove(&dst[i], &lit[0], len(lit)), so we push
+ // DI, R10 and AX as arguments.
+ MOVQ DI, 0(SP)
+ MOVQ R10, 8(SP)
+ MOVQ AX, 16(SP)
+ ADDQ AX, DI // Finish the "d +=" part of "d += emitLiteral(etc)".
+ MOVQ SI, 72(SP)
+ MOVQ DI, 80(SP)
+ MOVQ R15, 112(SP)
+ CALL runtime·memmove(SB)
+ MOVQ 56(SP), CX
+ MOVQ 64(SP), DX
+ MOVQ 72(SP), SI
+ MOVQ 80(SP), DI
+ MOVQ 88(SP), R9
+ MOVQ 112(SP), R15
+ JMP inner1
+
+inlineEmitLiteralEnd:
+ // End inline of the emitLiteral call.
+ // ----------------------------------------
+
+emitLiteralFastPath:
+ // !!! Emit the 1-byte encoding "uint8(len(lit)-1)<<2".
+ MOVB AX, BX
+ SUBB $1, BX
+ SHLB $2, BX
+ MOVB BX, (DI)
+ ADDQ $1, DI
+
+ // !!! Implement the copy from lit to dst as a 16-byte load and store.
+ // (Encode's documentation says that dst and src must not overlap.)
+ //
+ // This always copies 16 bytes, instead of only len(lit) bytes, but that's
+ // OK. Subsequent iterations will fix up the overrun.
+ //
+ // Note that on amd64, it is legal and cheap to issue unaligned 8-byte or
+ // 16-byte loads and stores. This technique probably wouldn't be as
+ // effective on architectures that are fussier about alignment.
+ MOVOU 0(R10), X0
+ MOVOU X0, 0(DI)
+ ADDQ AX, DI
+
+inner1:
+ // for { etc }
+
+ // base := s
+ MOVQ SI, R12
+
+ // !!! offset := base - candidate
+ MOVQ R12, R11
+ SUBQ R15, R11
+ SUBQ DX, R11
+
+ // ----------------------------------------
+ // Begin inline of the extendMatch call.
+ //
+ // s = extendMatch(src, candidate+4, s+4)
+
+ // !!! R14 = &src[len(src)]
+ MOVQ src_len+32(FP), R14
+ ADDQ DX, R14
+
+ // !!! R13 = &src[len(src) - 8]
+ MOVQ R14, R13
+ SUBQ $8, R13
+
+ // !!! R15 = &src[candidate + 4]
+ ADDQ $4, R15
+ ADDQ DX, R15
+
+ // !!! s += 4
+ ADDQ $4, SI
+
+inlineExtendMatchCmp8:
+ // As long as we are 8 or more bytes before the end of src, we can load and
+ // compare 8 bytes at a time. If those 8 bytes are equal, repeat.
+ CMPQ SI, R13
+ JA inlineExtendMatchCmp1
+ MOVQ (R15), AX
+ MOVQ (SI), BX
+ CMPQ AX, BX
+ JNE inlineExtendMatchBSF
+ ADDQ $8, R15
+ ADDQ $8, SI
+ JMP inlineExtendMatchCmp8
+
+inlineExtendMatchBSF:
+ // 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, SI
+ JMP inlineExtendMatchEnd
+
+inlineExtendMatchCmp1:
+ // In src's tail, compare 1 byte at a time.
+ CMPQ SI, R14
+ JAE inlineExtendMatchEnd
+ MOVB (R15), AX
+ MOVB (SI), BX
+ CMPB AX, BX
+ JNE inlineExtendMatchEnd
+ ADDQ $1, R15
+ ADDQ $1, SI
+ JMP inlineExtendMatchCmp1
+
+inlineExtendMatchEnd:
+ // End inline of the extendMatch call.
+ // ----------------------------------------
+
+ // ----------------------------------------
+ // Begin inline of the emitCopy call.
+ //
+ // d += emitCopy(dst[d:], base-candidate, s-base)
+
+ // !!! length := s - base
+ MOVQ SI, AX
+ SUBQ R12, AX
+
+inlineEmitCopyLoop0:
+ // for length >= 68 { etc }
+ CMPL AX, $68
+ JLT inlineEmitCopyStep1
+
+ // Emit a length 64 copy, encoded as 3 bytes.
+ MOVB $0xfe, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+ SUBL $64, AX
+ JMP inlineEmitCopyLoop0
+
+inlineEmitCopyStep1:
+ // if length > 64 { etc }
+ CMPL AX, $64
+ JLE inlineEmitCopyStep2
+
+ // Emit a length 60 copy, encoded as 3 bytes.
+ MOVB $0xee, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+ SUBL $60, AX
+
+inlineEmitCopyStep2:
+ // if length >= 12 || offset >= 2048 { goto inlineEmitCopyStep3 }
+ CMPL AX, $12
+ JGE inlineEmitCopyStep3
+ CMPL R11, $2048
+ JGE inlineEmitCopyStep3
+
+ // Emit the remaining copy, encoded as 2 bytes.
+ MOVB R11, 1(DI)
+ SHRL $8, R11
+ SHLB $5, R11
+ SUBB $4, AX
+ SHLB $2, AX
+ ORB AX, R11
+ ORB $1, R11
+ MOVB R11, 0(DI)
+ ADDQ $2, DI
+ JMP inlineEmitCopyEnd
+
+inlineEmitCopyStep3:
+ // Emit the remaining copy, encoded as 3 bytes.
+ SUBL $1, AX
+ SHLB $2, AX
+ ORB $2, AX
+ MOVB AX, 0(DI)
+ MOVW R11, 1(DI)
+ ADDQ $3, DI
+
+inlineEmitCopyEnd:
+ // End inline of the emitCopy call.
+ // ----------------------------------------
+
+ // nextEmit = s
+ MOVQ SI, R10
+
+ // if s >= sLimit { goto emitRemainder }
+ MOVQ SI, AX
+ SUBQ DX, AX
+ CMPQ AX, R9
+ JAE emitRemainder
+
+ // As per the encode_other.go code:
+ //
+ // We could immediately etc.
+
+ // x := load64(src, s-1)
+ MOVQ -1(SI), R14
+
+ // prevHash := hash(uint32(x>>0), shift)
+ MOVL R14, R11
+ IMULL $0x1e35a7bd, R11
+ SHRL CX, R11
+
+ // table[prevHash] = uint16(s-1)
+ MOVQ SI, AX
+ SUBQ DX, AX
+ SUBQ $1, AX
+
+ // XXX: MOVW AX, table-32768(SP)(R11*2)
+ // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2)
+ BYTE $0x66
+ BYTE $0x42
+ BYTE $0x89
+ BYTE $0x44
+ BYTE $0x5c
+ BYTE $0x78
+
+ // currHash := hash(uint32(x>>8), shift)
+ SHRQ $8, R14
+ MOVL R14, R11
+ IMULL $0x1e35a7bd, R11
+ SHRL CX, R11
+
+ // candidate = int(table[currHash])
+ // XXX: MOVWQZX table-32768(SP)(R11*2), R15
+ // XXX: 4e 0f b7 7c 5c 78 movzwq 0x78(%rsp,%r11,2),%r15
+ BYTE $0x4e
+ BYTE $0x0f
+ BYTE $0xb7
+ BYTE $0x7c
+ BYTE $0x5c
+ BYTE $0x78
+
+ // table[currHash] = uint16(s)
+ ADDQ $1, AX
+
+ // XXX: MOVW AX, table-32768(SP)(R11*2)
+ // XXX: 66 42 89 44 5c 78 mov %ax,0x78(%rsp,%r11,2)
+ BYTE $0x66
+ BYTE $0x42
+ BYTE $0x89
+ BYTE $0x44
+ BYTE $0x5c
+ BYTE $0x78
+
+ // if uint32(x>>8) == load32(src, candidate) { continue }
+ MOVL (DX)(R15*1), BX
+ CMPL R14, BX
+ JEQ inner1
+
+ // nextHash = hash(uint32(x>>16), shift)
+ SHRQ $8, R14
+ MOVL R14, R11
+ IMULL $0x1e35a7bd, R11
+ SHRL CX, R11
+
+ // s++
+ ADDQ $1, SI
+
+ // break out of the inner1 for loop, i.e. continue the outer loop.
+ JMP outer
+
+emitRemainder:
+ // if nextEmit < len(src) { etc }
+ MOVQ src_len+32(FP), AX
+ ADDQ DX, AX
+ CMPQ R10, AX
+ JEQ encodeBlockEnd
+
+ // d += emitLiteral(dst[d:], src[nextEmit:])
+ //
+ // Push args.
+ MOVQ DI, 0(SP)
+ MOVQ $0, 8(SP) // Unnecessary, as the callee ignores it, but conservative.
+ MOVQ $0, 16(SP) // Unnecessary, as the callee ignores it, but conservative.
+ MOVQ R10, 24(SP)
+ SUBQ R10, AX
+ MOVQ AX, 32(SP)
+ MOVQ AX, 40(SP) // Unnecessary, as the callee ignores it, but conservative.
+
+ // Spill local variables (registers) onto the stack; call; unspill.
+ MOVQ DI, 80(SP)
+ CALL ·emitLiteral(SB)
+ MOVQ 80(SP), DI
+
+ // Finish the "d +=" part of "d += emitLiteral(etc)".
+ ADDQ 48(SP), DI
+
+encodeBlockEnd:
+ MOVQ dst_base+0(FP), AX
+ SUBQ AX, DI
+ MOVQ DI, d+48(FP)
+ RET
diff --git a/vendor/github.com/golang/snappy/encode_other.go b/vendor/github.com/golang/snappy/encode_other.go
new file mode 100644
index 000000000..dbcae905e
--- /dev/null
+++ b/vendor/github.com/golang/snappy/encode_other.go
@@ -0,0 +1,238 @@
+// Copyright 2016 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.
+
+// +build !amd64 appengine !gc noasm
+
+package snappy
+
+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
+}
+
+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
+}
+
+// emitLiteral writes a literal chunk and returns the number of bytes written.
+//
+// It assumes that:
+// dst is long enough to hold the encoded bytes
+// 1 <= len(lit) && len(lit) <= 65536
+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
+ default:
+ dst[0] = 61<<2 | tagLiteral
+ dst[1] = uint8(n)
+ dst[2] = uint8(n >> 8)
+ i = 3
+ }
+ return i + copy(dst[i:], lit)
+}
+
+// emitCopy writes a copy chunk and returns the number of bytes written.
+//
+// It assumes that:
+// dst is long enough to hold the encoded bytes
+// 1 <= offset && offset <= 65535
+// 4 <= length && length <= 65535
+func emitCopy(dst []byte, offset, length int) int {
+ i := 0
+ // The maximum length for a single tagCopy1 or tagCopy2 op is 64 bytes. The
+ // threshold for this loop is a little higher (at 68 = 64 + 4), and the
+ // length emitted down below is is a little lower (at 60 = 64 - 4), because
+ // it's shorter to encode a length 67 copy as a length 60 tagCopy2 followed
+ // by a length 7 tagCopy1 (which encodes as 3+2 bytes) than to encode it as
+ // a length 64 tagCopy2 followed by a length 3 tagCopy2 (which encodes as
+ // 3+3 bytes). The magic 4 in the 64±4 is because the minimum length for a
+ // tagCopy1 op is 4 bytes, which is why a length 3 copy has to be an
+ // encodes-as-3-bytes tagCopy2 instead of an encodes-as-2-bytes tagCopy1.
+ for length >= 68 {
+ // Emit a length 64 copy, encoded as 3 bytes.
+ dst[i+0] = 63<<2 | tagCopy2
+ dst[i+1] = uint8(offset)
+ dst[i+2] = uint8(offset >> 8)
+ i += 3
+ length -= 64
+ }
+ if length > 64 {
+ // Emit a length 60 copy, encoded as 3 bytes.
+ dst[i+0] = 59<<2 | tagCopy2
+ dst[i+1] = uint8(offset)
+ dst[i+2] = uint8(offset >> 8)
+ i += 3
+ length -= 60
+ }
+ if length >= 12 || offset >= 2048 {
+ // Emit the remaining copy, encoded as 3 bytes.
+ dst[i+0] = uint8(length-1)<<2 | tagCopy2
+ dst[i+1] = uint8(offset)
+ dst[i+2] = uint8(offset >> 8)
+ return i + 3
+ }
+ // Emit the remaining copy, encoded as 2 bytes.
+ dst[i+0] = uint8(offset>>8)<<5 | uint8(length-4)<<2 | tagCopy1
+ dst[i+1] = uint8(offset)
+ return i + 2
+}
+
+// extendMatch returns the largest k such that k <= len(src) and that
+// src[i:i+k-j] and src[j:k] have the same contents.
+//
+// It assumes that:
+// 0 <= i && i < j && j <= len(src)
+func extendMatch(src []byte, i, j int) int {
+ for ; j < len(src) && src[i] == src[j]; i, j = i+1, j+1 {
+ }
+ return j
+}
+
+func hash(u, shift uint32) uint32 {
+ return (u * 0x1e35a7bd) >> shift
+}
+
+// encodeBlock 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)) &&
+// minNonLiteralBlockSize <= len(src) && len(src) <= maxBlockSize
+func encodeBlock(dst, src []byte) (d int) {
+ // Initialize the hash table. Its size ranges from 1<<8 to 1<<14 inclusive.
+ // The table element type is uint16, as s < sLimit and sLimit < len(src)
+ // and len(src) <= maxBlockSize and maxBlockSize == 65536.
+ const (
+ maxTableSize = 1 << 14
+ // tableMask is redundant, but helps the compiler eliminate bounds
+ // checks.
+ tableMask = maxTableSize - 1
+ )
+ shift := uint32(32 - 8)
+ for tableSize := 1 << 8; tableSize < maxTableSize && tableSize < len(src); tableSize *= 2 {
+ shift--
+ }
+ // In Go, all array elements are zero-initialized, so there is no advantage
+ // to a smaller tableSize per se. However, it matches the C++ algorithm,
+ // and in the asm versions of this code, we can get away with zeroing only
+ // the first tableSize elements.
+ var table [maxTableSize]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), shift)
+
+ 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
+ }
+ candidate = int(table[nextHash&tableMask])
+ table[nextHash&tableMask] = uint16(s)
+ nextHash = hash(load32(src, nextS), shift)
+ if load32(src, s) == load32(src, candidate) {
+ 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.
+ d += emitLiteral(dst[d:], 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:
+ // s = extendMatch(src, candidate+4, s+4)
+ s += 4
+ for i := candidate + 4; s < len(src) && src[i] == src[s]; i, s = i+1, s+1 {
+ }
+
+ d += emitCopy(dst[d:], base-candidate, s-base)
+ nextEmit = s
+ if s >= sLimit {
+ 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 := load64(src, s-1)
+ prevHash := hash(uint32(x>>0), shift)
+ table[prevHash&tableMask] = uint16(s - 1)
+ currHash := hash(uint32(x>>8), shift)
+ candidate = int(table[currHash&tableMask])
+ table[currHash&tableMask] = uint16(s)
+ if uint32(x>>8) != load32(src, candidate) {
+ nextHash = hash(uint32(x>>16), shift)
+ s++
+ break
+ }
+ }
+ }
+
+emitRemainder:
+ if nextEmit < len(src) {
+ d += emitLiteral(dst[d:], src[nextEmit:])
+ }
+ return d
+}
diff --git a/vendor/github.com/golang/snappy/snappy.go b/vendor/github.com/golang/snappy/snappy.go
new file mode 100644
index 000000000..0cf5e379c
--- /dev/null
+++ b/vendor/github.com/golang/snappy/snappy.go
@@ -0,0 +1,87 @@
+// 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 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/golang/snappy"
+
+import (
+ "hash/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 issued by most
+ encoders. Nonetheless, the offset ranges in [0, 1<<32) and the length in
+ [1, 65). The length is 1 + m. The offset is the little-endian unsigned
+ integer denoted by the next 4 bytes.
+*/
+const (
+ tagLiteral = 0x00
+ tagCopy1 = 0x01
+ tagCopy2 = 0x02
+ tagCopy4 = 0x03
+)
+
+const (
+ checksumSize = 4
+ chunkHeaderSize = 4
+ magicChunk = "\xff\x06\x00\x00" + magicBody
+ magicBody = "sNaPpY"
+
+ // maxBlockSize is the maximum size of the input to encodeBlock. It is not
+ // part of the wire format per se, but some parts of the encoder assume
+ // that an offset fits into a uint16.
+ //
+ // Also, for the framing format (Writer type instead of Encode function),
+ // 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".
+ maxBlockSize = 65536
+
+ // maxEncodedLenOfMaxBlockSize equals MaxEncodedLen(maxBlockSize), 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
+ // TestMaxEncodedLenOfMaxBlockSize.
+ maxEncodedLenOfMaxBlockSize = 76490
+
+ obufHeaderLen = len(magicChunk) + checksumSize + chunkHeaderSize
+ obufLen = obufHeaderLen + maxEncodedLenOfMaxBlockSize
+)
+
+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/hashicorp/golang-lru/.gitignore b/vendor/github.com/hashicorp/golang-lru/.gitignore
new file mode 100644
index 000000000..836562412
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/.gitignore
@@ -0,0 +1,23 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
diff --git a/vendor/github.com/hashicorp/golang-lru/2q.go b/vendor/github.com/hashicorp/golang-lru/2q.go
new file mode 100644
index 000000000..337d96329
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/2q.go
@@ -0,0 +1,212 @@
+package lru
+
+import (
+ "fmt"
+ "sync"
+
+ "github.com/hashicorp/golang-lru/simplelru"
+)
+
+const (
+ // Default2QRecentRatio is the ratio of the 2Q cache dedicated
+ // to recently added entries that have only been accessed once.
+ Default2QRecentRatio = 0.25
+
+ // Default2QGhostEntries is the default ratio of ghost
+ // entries kept to track entries recently evicted
+ Default2QGhostEntries = 0.50
+)
+
+// TwoQueueCache is a thread-safe fixed size 2Q cache.
+// 2Q is an enhancement over the standard LRU cache
+// in that it tracks both frequently and recently used
+// entries separately. This avoids a burst in access to new
+// entries from evicting frequently used entries. It adds some
+// additional tracking overhead to the standard LRU cache, and is
+// computationally about 2x the cost, and adds some metadata over
+// head. The ARCCache is similar, but does not require setting any
+// parameters.
+type TwoQueueCache struct {
+ size int
+ recentSize int
+
+ recent *simplelru.LRU
+ frequent *simplelru.LRU
+ recentEvict *simplelru.LRU
+ lock sync.RWMutex
+}
+
+// New2Q creates a new TwoQueueCache using the default
+// values for the parameters.
+func New2Q(size int) (*TwoQueueCache, error) {
+ return New2QParams(size, Default2QRecentRatio, Default2QGhostEntries)
+}
+
+// New2QParams creates a new TwoQueueCache using the provided
+// parameter values.
+func New2QParams(size int, recentRatio float64, ghostRatio float64) (*TwoQueueCache, error) {
+ if size <= 0 {
+ return nil, fmt.Errorf("invalid size")
+ }
+ if recentRatio < 0.0 || recentRatio > 1.0 {
+ return nil, fmt.Errorf("invalid recent ratio")
+ }
+ if ghostRatio < 0.0 || ghostRatio > 1.0 {
+ return nil, fmt.Errorf("invalid ghost ratio")
+ }
+
+ // Determine the sub-sizes
+ recentSize := int(float64(size) * recentRatio)
+ evictSize := int(float64(size) * ghostRatio)
+
+ // Allocate the LRUs
+ recent, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+ frequent, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+ recentEvict, err := simplelru.NewLRU(evictSize, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ // Initialize the cache
+ c := &TwoQueueCache{
+ size: size,
+ recentSize: recentSize,
+ recent: recent,
+ frequent: frequent,
+ recentEvict: recentEvict,
+ }
+ return c, nil
+}
+
+func (c *TwoQueueCache) Get(key interface{}) (interface{}, bool) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+
+ // Check if this is a frequent value
+ if val, ok := c.frequent.Get(key); ok {
+ return val, ok
+ }
+
+ // If the value is contained in recent, then we
+ // promote it to frequent
+ if val, ok := c.recent.Peek(key); ok {
+ c.recent.Remove(key)
+ c.frequent.Add(key, val)
+ return val, ok
+ }
+
+ // No hit
+ return nil, false
+}
+
+func (c *TwoQueueCache) Add(key, value interface{}) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+
+ // Check if the value is frequently used already,
+ // and just update the value
+ if c.frequent.Contains(key) {
+ c.frequent.Add(key, value)
+ return
+ }
+
+ // Check if the value is recently used, and promote
+ // the value into the frequent list
+ if c.recent.Contains(key) {
+ c.recent.Remove(key)
+ c.frequent.Add(key, value)
+ return
+ }
+
+ // If the value was recently evicted, add it to the
+ // frequently used list
+ if c.recentEvict.Contains(key) {
+ c.ensureSpace(true)
+ c.recentEvict.Remove(key)
+ c.frequent.Add(key, value)
+ return
+ }
+
+ // Add to the recently seen list
+ c.ensureSpace(false)
+ c.recent.Add(key, value)
+ return
+}
+
+// ensureSpace is used to ensure we have space in the cache
+func (c *TwoQueueCache) ensureSpace(recentEvict bool) {
+ // If we have space, nothing to do
+ recentLen := c.recent.Len()
+ freqLen := c.frequent.Len()
+ if recentLen+freqLen < c.size {
+ return
+ }
+
+ // If the recent buffer is larger than
+ // the target, evict from there
+ if recentLen > 0 && (recentLen > c.recentSize || (recentLen == c.recentSize && !recentEvict)) {
+ k, _, _ := c.recent.RemoveOldest()
+ c.recentEvict.Add(k, nil)
+ return
+ }
+
+ // Remove from the frequent list otherwise
+ c.frequent.RemoveOldest()
+}
+
+func (c *TwoQueueCache) Len() int {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.recent.Len() + c.frequent.Len()
+}
+
+func (c *TwoQueueCache) Keys() []interface{} {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ k1 := c.frequent.Keys()
+ k2 := c.recent.Keys()
+ return append(k1, k2...)
+}
+
+func (c *TwoQueueCache) Remove(key interface{}) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ if c.frequent.Remove(key) {
+ return
+ }
+ if c.recent.Remove(key) {
+ return
+ }
+ if c.recentEvict.Remove(key) {
+ return
+ }
+}
+
+func (c *TwoQueueCache) Purge() {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ c.recent.Purge()
+ c.frequent.Purge()
+ c.recentEvict.Purge()
+}
+
+func (c *TwoQueueCache) Contains(key interface{}) bool {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.frequent.Contains(key) || c.recent.Contains(key)
+}
+
+func (c *TwoQueueCache) Peek(key interface{}) (interface{}, bool) {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ if val, ok := c.frequent.Peek(key); ok {
+ return val, ok
+ }
+ return c.recent.Peek(key)
+}
diff --git a/vendor/github.com/hashicorp/golang-lru/LICENSE b/vendor/github.com/hashicorp/golang-lru/LICENSE
new file mode 100644
index 000000000..be2cc4dfb
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/LICENSE
@@ -0,0 +1,362 @@
+Mozilla Public License, version 2.0
+
+1. Definitions
+
+1.1. "Contributor"
+
+ means each individual or legal entity that creates, contributes to the
+ creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+
+ means the combination of the Contributions of others (if any) used by a
+ Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+
+ means Source Code Form to which the initial Contributor has attached the
+ notice in Exhibit A, the Executable Form of such Source Code Form, and
+ Modifications of such Source Code Form, in each case including portions
+ thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ a. that the initial Contributor has attached the notice described in
+ Exhibit B to the Covered Software; or
+
+ b. that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the terms of
+ a Secondary License.
+
+1.6. "Executable Form"
+
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+
+ means a work that combines Covered Software with other material, in a
+ separate file or files, that is not Covered Software.
+
+1.8. "License"
+
+ means this document.
+
+1.9. "Licensable"
+
+ means having the right to grant, to the maximum extent possible, whether
+ at the time of the initial grant or subsequently, any and all of the
+ rights conveyed by this License.
+
+1.10. "Modifications"
+
+ means any of the following:
+
+ a. any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered Software; or
+
+ b. any new file in Source Code Form that contains any Covered Software.
+
+1.11. "Patent Claims" of a Contributor
+
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the License,
+ by the making, using, selling, offering for sale, having made, import,
+ or transfer of either its Contributions or its Contributor Version.
+
+1.12. "Secondary License"
+
+ means either the GNU General Public License, Version 2.0, the GNU Lesser
+ General Public License, Version 2.1, the GNU Affero General Public
+ License, Version 3.0, or any later versions of those licenses.
+
+1.13. "Source Code Form"
+
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that controls, is
+ controlled by, or is under common control with You. For purposes of this
+ definition, "control" means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by contract or
+ otherwise, or (b) ownership of more than fifty percent (50%) of the
+ outstanding shares or beneficial ownership of such entity.
+
+
+2. License Grants and Conditions
+
+2.1. Grants
+
+ Each Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ a. under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+ b. under Patent Claims of such Contributor to make, use, sell, offer for
+ sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+ The licenses granted in Section 2.1 with respect to any Contribution
+ become effective for each Contribution on the date the Contributor first
+ distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+ The licenses granted in this Section 2 are the only rights granted under
+ this License. No additional rights or licenses will be implied from the
+ distribution or licensing of Covered Software under this License.
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
+ Contributor:
+
+ a. for any code that a Contributor has removed from Covered Software; or
+
+ b. for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+ c. under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+ This License does not grant any rights in the trademarks, service marks,
+ or logos of any Contributor (except as may be necessary to comply with
+ the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+ No Contributor makes additional grants as a result of Your choice to
+ distribute the Covered Software under a subsequent version of this
+ License (see Section 10.2) or under the terms of a Secondary License (if
+ permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+ Each Contributor represents that the Contributor believes its
+ Contributions are its original creation(s) or it has sufficient rights to
+ grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+ This License is not intended to limit any rights You have under
+ applicable copyright doctrines of fair use, fair dealing, or other
+ equivalents.
+
+2.7. Conditions
+
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
+ Section 2.1.
+
+
+3. Responsibilities
+
+3.1. Distribution of Source Form
+
+ All distribution of Covered Software in Source Code Form, including any
+ Modifications that You create or to which You contribute, must be under
+ the terms of this License. You must inform recipients that the Source
+ Code Form of the Covered Software is governed by the terms of this
+ License, and how they can obtain a copy of this License. You may not
+ attempt to alter or restrict the recipients' rights in the Source Code
+ Form.
+
+3.2. Distribution of Executable Form
+
+ If You distribute Covered Software in Executable Form then:
+
+ a. such Covered Software must also be made available in Source Code Form,
+ as described in Section 3.1, and You must inform recipients of the
+ Executable Form how they can obtain a copy of such Source Code Form by
+ reasonable means in a timely manner, at a charge no more than the cost
+ of distribution to the recipient; and
+
+ b. You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter the
+ recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+ You may create and distribute a Larger Work under terms of Your choice,
+ provided that You also comply with the requirements of this License for
+ the Covered Software. If the Larger Work is a combination of Covered
+ Software with a work governed by one or more Secondary Licenses, and the
+ Covered Software is not Incompatible With Secondary Licenses, this
+ License permits You to additionally distribute such Covered Software
+ under the terms of such Secondary License(s), so that the recipient of
+ the Larger Work may, at their option, further distribute the Covered
+ Software under the terms of either this License or such Secondary
+ License(s).
+
+3.4. Notices
+
+ You may not remove or alter the substance of any license notices
+ (including copyright notices, patent notices, disclaimers of warranty, or
+ limitations of liability) contained within the Source Code Form of the
+ Covered Software, except that You may alter any license notices to the
+ extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+ You may choose to offer, and to charge a fee for, warranty, support,
+ indemnity or liability obligations to one or more recipients of Covered
+ Software. However, You may do so only on Your own behalf, and not on
+ behalf of any Contributor. You must make it absolutely clear that any
+ such warranty, support, indemnity, or liability obligation is offered by
+ You alone, and You hereby agree to indemnify every Contributor for any
+ liability incurred by such Contributor as a result of warranty, support,
+ indemnity or liability terms You offer. You may include additional
+ disclaimers of warranty and limitations of liability specific to any
+ jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+
+ If it is impossible for You to comply with any of the terms of this License
+ with respect to some or all of the Covered Software due to statute,
+ judicial order, or regulation then You must: (a) comply with the terms of
+ this License to the maximum extent possible; and (b) describe the
+ limitations and the code they affect. Such description must be placed in a
+ text file included with all distributions of the Covered Software under
+ this License. Except to the extent prohibited by statute or regulation,
+ such description must be sufficiently detailed for a recipient of ordinary
+ skill to be able to understand it.
+
+5. Termination
+
+5.1. The rights granted under this License will terminate automatically if You
+ fail to comply with any of its terms. However, if You become compliant,
+ then the rights granted under this License from a particular Contributor
+ are reinstated (a) provisionally, unless and until such Contributor
+ explicitly and finally terminates Your grants, and (b) on an ongoing
+ basis, if such Contributor fails to notify You of the non-compliance by
+ some reasonable means prior to 60 days after You have come back into
+ compliance. Moreover, Your grants from a particular Contributor are
+ reinstated on an ongoing basis if such Contributor notifies You of the
+ non-compliance by some reasonable means, this is the first time You have
+ received notice of non-compliance with this License from such
+ Contributor, and You become compliant prior to 30 days after Your receipt
+ of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+ infringement claim (excluding declaratory judgment actions,
+ counter-claims, and cross-claims) alleging that a Contributor Version
+ directly or indirectly infringes any patent, then the rights granted to
+ You by any and all Contributors for the Covered Software under Section
+ 2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
+ license agreements (excluding distributors and resellers) which have been
+ validly granted by You or Your distributors under this License prior to
+ termination shall survive termination.
+
+6. Disclaimer of Warranty
+
+ Covered Software is provided under this License on an "as is" basis,
+ without warranty of any kind, either expressed, implied, or statutory,
+ including, without limitation, warranties that the Covered Software is free
+ of defects, merchantable, fit for a particular purpose or non-infringing.
+ The entire risk as to the quality and performance of the Covered Software
+ is with You. Should any Covered Software prove defective in any respect,
+ You (not any Contributor) assume the cost of any necessary servicing,
+ repair, or correction. This disclaimer of warranty constitutes an essential
+ part of this License. No use of any Covered Software is authorized under
+ this License except under this disclaimer.
+
+7. Limitation of Liability
+
+ Under no circumstances and under no legal theory, whether tort (including
+ negligence), contract, or otherwise, shall any Contributor, or anyone who
+ distributes Covered Software as permitted above, be liable to You for any
+ direct, indirect, special, incidental, or consequential damages of any
+ character including, without limitation, damages for lost profits, loss of
+ goodwill, work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses, even if such party shall have been
+ informed of the possibility of such damages. This limitation of liability
+ shall not apply to liability for death or personal injury resulting from
+ such party's negligence to the extent applicable law prohibits such
+ limitation. Some jurisdictions do not allow the exclusion or limitation of
+ incidental or consequential damages, so this exclusion and limitation may
+ not apply to You.
+
+8. Litigation
+
+ Any litigation relating to this License may be brought only in the courts
+ of a jurisdiction where the defendant maintains its principal place of
+ business and such litigation shall be governed by laws of that
+ jurisdiction, without reference to its conflict-of-law provisions. Nothing
+ in this Section shall prevent a party's ability to bring cross-claims or
+ counter-claims.
+
+9. Miscellaneous
+
+ This License represents the complete agreement concerning the subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. Any law or regulation which provides that
+ the language of a contract shall be construed against the drafter shall not
+ be used to construe this License against a Contributor.
+
+
+10. Versions of the License
+
+10.1. New Versions
+
+ Mozilla Foundation is the license steward. Except as provided in Section
+ 10.3, no one other than the license steward has the right to modify or
+ publish new versions of this License. Each version will be given a
+ distinguishing version number.
+
+10.2. Effect of New Versions
+
+ You may distribute the Covered Software under the terms of the version
+ of the License under which You originally received the Covered Software,
+ or under the terms of any subsequent version published by the license
+ steward.
+
+10.3. Modified Versions
+
+ If you create software not governed by this License, and you want to
+ create a new license for such software, you may create and use a
+ modified version of this License if you rename the license and remove
+ any references to the name of the license steward (except to note that
+ such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+ Licenses If You choose to distribute Source Code Form that is
+ Incompatible With Secondary Licenses under the terms of this version of
+ the License, the notice described in Exhibit B of this License must be
+ attached.
+
+Exhibit A - Source Code Form License Notice
+
+ This Source Code Form is subject to the
+ terms of the Mozilla Public License, v.
+ 2.0. If a copy of the MPL was not
+ distributed with this file, You can
+ obtain one at
+ http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular file,
+then You may include the notice in a location (such as a LICENSE file in a
+relevant directory) where a recipient would be likely to look for such a
+notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+
+ This Source Code Form is "Incompatible
+ With Secondary Licenses", as defined by
+ the Mozilla Public License, v. 2.0.
diff --git a/vendor/github.com/hashicorp/golang-lru/README.md b/vendor/github.com/hashicorp/golang-lru/README.md
new file mode 100644
index 000000000..33e58cfaf
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/README.md
@@ -0,0 +1,25 @@
+golang-lru
+==========
+
+This provides the `lru` package which implements a fixed-size
+thread safe LRU cache. It is based on the cache in Groupcache.
+
+Documentation
+=============
+
+Full docs are available on [Godoc](http://godoc.org/github.com/hashicorp/golang-lru)
+
+Example
+=======
+
+Using the LRU is very simple:
+
+```go
+l, _ := New(128)
+for i := 0; i < 256; i++ {
+ l.Add(i, nil)
+}
+if l.Len() != 128 {
+ panic(fmt.Sprintf("bad len: %v", l.Len()))
+}
+```
diff --git a/vendor/github.com/hashicorp/golang-lru/arc.go b/vendor/github.com/hashicorp/golang-lru/arc.go
new file mode 100644
index 000000000..a2a252817
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/arc.go
@@ -0,0 +1,257 @@
+package lru
+
+import (
+ "sync"
+
+ "github.com/hashicorp/golang-lru/simplelru"
+)
+
+// ARCCache is a thread-safe fixed size Adaptive Replacement Cache (ARC).
+// ARC is an enhancement over the standard LRU cache in that tracks both
+// frequency and recency of use. This avoids a burst in access to new
+// entries from evicting the frequently used older entries. It adds some
+// additional tracking overhead to a standard LRU cache, computationally
+// it is roughly 2x the cost, and the extra memory overhead is linear
+// with the size of the cache. ARC has been patented by IBM, but is
+// similar to the TwoQueueCache (2Q) which requires setting parameters.
+type ARCCache struct {
+ size int // Size is the total capacity of the cache
+ p int // P is the dynamic preference towards T1 or T2
+
+ t1 *simplelru.LRU // T1 is the LRU for recently accessed items
+ b1 *simplelru.LRU // B1 is the LRU for evictions from t1
+
+ t2 *simplelru.LRU // T2 is the LRU for frequently accessed items
+ b2 *simplelru.LRU // B2 is the LRU for evictions from t2
+
+ lock sync.RWMutex
+}
+
+// NewARC creates an ARC of the given size
+func NewARC(size int) (*ARCCache, error) {
+ // Create the sub LRUs
+ b1, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+ b2, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+ t1, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+ t2, err := simplelru.NewLRU(size, nil)
+ if err != nil {
+ return nil, err
+ }
+
+ // Initialize the ARC
+ c := &ARCCache{
+ size: size,
+ p: 0,
+ t1: t1,
+ b1: b1,
+ t2: t2,
+ b2: b2,
+ }
+ return c, nil
+}
+
+// Get looks up a key's value from the cache.
+func (c *ARCCache) Get(key interface{}) (interface{}, bool) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+
+ // Ff the value is contained in T1 (recent), then
+ // promote it to T2 (frequent)
+ if val, ok := c.t1.Peek(key); ok {
+ c.t1.Remove(key)
+ c.t2.Add(key, val)
+ return val, ok
+ }
+
+ // Check if the value is contained in T2 (frequent)
+ if val, ok := c.t2.Get(key); ok {
+ return val, ok
+ }
+
+ // No hit
+ return nil, false
+}
+
+// Add adds a value to the cache.
+func (c *ARCCache) Add(key, value interface{}) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+
+ // Check if the value is contained in T1 (recent), and potentially
+ // promote it to frequent T2
+ if c.t1.Contains(key) {
+ c.t1.Remove(key)
+ c.t2.Add(key, value)
+ return
+ }
+
+ // Check if the value is already in T2 (frequent) and update it
+ if c.t2.Contains(key) {
+ c.t2.Add(key, value)
+ return
+ }
+
+ // Check if this value was recently evicted as part of the
+ // recently used list
+ if c.b1.Contains(key) {
+ // T1 set is too small, increase P appropriately
+ delta := 1
+ b1Len := c.b1.Len()
+ b2Len := c.b2.Len()
+ if b2Len > b1Len {
+ delta = b2Len / b1Len
+ }
+ if c.p+delta >= c.size {
+ c.p = c.size
+ } else {
+ c.p += delta
+ }
+
+ // Potentially need to make room in the cache
+ if c.t1.Len()+c.t2.Len() >= c.size {
+ c.replace(false)
+ }
+
+ // Remove from B1
+ c.b1.Remove(key)
+
+ // Add the key to the frequently used list
+ c.t2.Add(key, value)
+ return
+ }
+
+ // Check if this value was recently evicted as part of the
+ // frequently used list
+ if c.b2.Contains(key) {
+ // T2 set is too small, decrease P appropriately
+ delta := 1
+ b1Len := c.b1.Len()
+ b2Len := c.b2.Len()
+ if b1Len > b2Len {
+ delta = b1Len / b2Len
+ }
+ if delta >= c.p {
+ c.p = 0
+ } else {
+ c.p -= delta
+ }
+
+ // Potentially need to make room in the cache
+ if c.t1.Len()+c.t2.Len() >= c.size {
+ c.replace(true)
+ }
+
+ // Remove from B2
+ c.b2.Remove(key)
+
+ // Add the key to the frequntly used list
+ c.t2.Add(key, value)
+ return
+ }
+
+ // Potentially need to make room in the cache
+ if c.t1.Len()+c.t2.Len() >= c.size {
+ c.replace(false)
+ }
+
+ // Keep the size of the ghost buffers trim
+ if c.b1.Len() > c.size-c.p {
+ c.b1.RemoveOldest()
+ }
+ if c.b2.Len() > c.p {
+ c.b2.RemoveOldest()
+ }
+
+ // Add to the recently seen list
+ c.t1.Add(key, value)
+ return
+}
+
+// replace is used to adaptively evict from either T1 or T2
+// based on the current learned value of P
+func (c *ARCCache) replace(b2ContainsKey bool) {
+ t1Len := c.t1.Len()
+ if t1Len > 0 && (t1Len > c.p || (t1Len == c.p && b2ContainsKey)) {
+ k, _, ok := c.t1.RemoveOldest()
+ if ok {
+ c.b1.Add(k, nil)
+ }
+ } else {
+ k, _, ok := c.t2.RemoveOldest()
+ if ok {
+ c.b2.Add(k, nil)
+ }
+ }
+}
+
+// Len returns the number of cached entries
+func (c *ARCCache) Len() int {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.t1.Len() + c.t2.Len()
+}
+
+// Keys returns all the cached keys
+func (c *ARCCache) Keys() []interface{} {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ k1 := c.t1.Keys()
+ k2 := c.t2.Keys()
+ return append(k1, k2...)
+}
+
+// Remove is used to purge a key from the cache
+func (c *ARCCache) Remove(key interface{}) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ if c.t1.Remove(key) {
+ return
+ }
+ if c.t2.Remove(key) {
+ return
+ }
+ if c.b1.Remove(key) {
+ return
+ }
+ if c.b2.Remove(key) {
+ return
+ }
+}
+
+// Purge is used to clear the cache
+func (c *ARCCache) Purge() {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ c.t1.Purge()
+ c.t2.Purge()
+ c.b1.Purge()
+ c.b2.Purge()
+}
+
+// Contains is used to check if the cache contains a key
+// without updating recency or frequency.
+func (c *ARCCache) Contains(key interface{}) bool {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.t1.Contains(key) || c.t2.Contains(key)
+}
+
+// Peek is used to inspect the cache value of a key
+// without updating recency or frequency.
+func (c *ARCCache) Peek(key interface{}) (interface{}, bool) {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ if val, ok := c.t1.Peek(key); ok {
+ return val, ok
+ }
+ return c.t2.Peek(key)
+}
diff --git a/vendor/github.com/hashicorp/golang-lru/lru.go b/vendor/github.com/hashicorp/golang-lru/lru.go
new file mode 100644
index 000000000..a6285f989
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/lru.go
@@ -0,0 +1,114 @@
+// This package provides a simple LRU cache. It is based on the
+// LRU implementation in groupcache:
+// https://github.com/golang/groupcache/tree/master/lru
+package lru
+
+import (
+ "sync"
+
+ "github.com/hashicorp/golang-lru/simplelru"
+)
+
+// Cache is a thread-safe fixed size LRU cache.
+type Cache struct {
+ lru *simplelru.LRU
+ lock sync.RWMutex
+}
+
+// New creates an LRU of the given size
+func New(size int) (*Cache, error) {
+ return NewWithEvict(size, nil)
+}
+
+// NewWithEvict constructs a fixed size cache with the given eviction
+// callback.
+func NewWithEvict(size int, onEvicted func(key interface{}, value interface{})) (*Cache, error) {
+ lru, err := simplelru.NewLRU(size, simplelru.EvictCallback(onEvicted))
+ if err != nil {
+ return nil, err
+ }
+ c := &Cache{
+ lru: lru,
+ }
+ return c, nil
+}
+
+// Purge is used to completely clear the cache
+func (c *Cache) Purge() {
+ c.lock.Lock()
+ c.lru.Purge()
+ c.lock.Unlock()
+}
+
+// Add adds a value to the cache. Returns true if an eviction occurred.
+func (c *Cache) Add(key, value interface{}) bool {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ return c.lru.Add(key, value)
+}
+
+// Get looks up a key's value from the cache.
+func (c *Cache) Get(key interface{}) (interface{}, bool) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+ return c.lru.Get(key)
+}
+
+// Check if a key is in the cache, without updating the recent-ness
+// or deleting it for being stale.
+func (c *Cache) Contains(key interface{}) bool {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.lru.Contains(key)
+}
+
+// Returns the key value (or undefined if not found) without updating
+// the "recently used"-ness of the key.
+func (c *Cache) Peek(key interface{}) (interface{}, bool) {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.lru.Peek(key)
+}
+
+// ContainsOrAdd checks if a key is in the cache without updating the
+// recent-ness or deleting it for being stale, and if not, adds the value.
+// Returns whether found and whether an eviction occurred.
+func (c *Cache) ContainsOrAdd(key, value interface{}) (ok, evict bool) {
+ c.lock.Lock()
+ defer c.lock.Unlock()
+
+ if c.lru.Contains(key) {
+ return true, false
+ } else {
+ evict := c.lru.Add(key, value)
+ return false, evict
+ }
+}
+
+// Remove removes the provided key from the cache.
+func (c *Cache) Remove(key interface{}) {
+ c.lock.Lock()
+ c.lru.Remove(key)
+ c.lock.Unlock()
+}
+
+// RemoveOldest removes the oldest item from the cache.
+func (c *Cache) RemoveOldest() {
+ c.lock.Lock()
+ c.lru.RemoveOldest()
+ c.lock.Unlock()
+}
+
+// Keys returns a slice of the keys in the cache, from oldest to newest.
+func (c *Cache) Keys() []interface{} {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.lru.Keys()
+}
+
+// Len returns the number of items in the cache.
+func (c *Cache) Len() int {
+ c.lock.RLock()
+ defer c.lock.RUnlock()
+ return c.lru.Len()
+}
diff --git a/vendor/github.com/hashicorp/golang-lru/simplelru/lru.go b/vendor/github.com/hashicorp/golang-lru/simplelru/lru.go
new file mode 100644
index 000000000..cb416b394
--- /dev/null
+++ b/vendor/github.com/hashicorp/golang-lru/simplelru/lru.go
@@ -0,0 +1,160 @@
+package simplelru
+
+import (
+ "container/list"
+ "errors"
+)
+
+// EvictCallback is used to get a callback when a cache entry is evicted
+type EvictCallback func(key interface{}, value interface{})
+
+// LRU implements a non-thread safe fixed size LRU cache
+type LRU struct {
+ size int
+ evictList *list.List
+ items map[interface{}]*list.Element
+ onEvict EvictCallback
+}
+
+// entry is used to hold a value in the evictList
+type entry struct {
+ key interface{}
+ value interface{}
+}
+
+// NewLRU constructs an LRU of the given size
+func NewLRU(size int, onEvict EvictCallback) (*LRU, error) {
+ if size <= 0 {
+ return nil, errors.New("Must provide a positive size")
+ }
+ c := &LRU{
+ size: size,
+ evictList: list.New(),
+ items: make(map[interface{}]*list.Element),
+ onEvict: onEvict,
+ }
+ return c, nil
+}
+
+// Purge is used to completely clear the cache
+func (c *LRU) Purge() {
+ for k, v := range c.items {
+ if c.onEvict != nil {
+ c.onEvict(k, v.Value.(*entry).value)
+ }
+ delete(c.items, k)
+ }
+ c.evictList.Init()
+}
+
+// Add adds a value to the cache. Returns true if an eviction occurred.
+func (c *LRU) Add(key, value interface{}) bool {
+ // Check for existing item
+ if ent, ok := c.items[key]; ok {
+ c.evictList.MoveToFront(ent)
+ ent.Value.(*entry).value = value
+ return false
+ }
+
+ // Add new item
+ ent := &entry{key, value}
+ entry := c.evictList.PushFront(ent)
+ c.items[key] = entry
+
+ evict := c.evictList.Len() > c.size
+ // Verify size not exceeded
+ if evict {
+ c.removeOldest()
+ }
+ return evict
+}
+
+// Get looks up a key's value from the cache.
+func (c *LRU) Get(key interface{}) (value interface{}, ok bool) {
+ if ent, ok := c.items[key]; ok {
+ c.evictList.MoveToFront(ent)
+ return ent.Value.(*entry).value, true
+ }
+ return
+}
+
+// Check if a key is in the cache, without updating the recent-ness
+// or deleting it for being stale.
+func (c *LRU) Contains(key interface{}) (ok bool) {
+ _, ok = c.items[key]
+ return ok
+}
+
+// Returns the key value (or undefined if not found) without updating
+// the "recently used"-ness of the key.
+func (c *LRU) Peek(key interface{}) (value interface{}, ok bool) {
+ if ent, ok := c.items[key]; ok {
+ return ent.Value.(*entry).value, true
+ }
+ return nil, ok
+}
+
+// Remove removes the provided key from the cache, returning if the
+// key was contained.
+func (c *LRU) Remove(key interface{}) bool {
+ if ent, ok := c.items[key]; ok {
+ c.removeElement(ent)
+ return true
+ }
+ return false
+}
+
+// RemoveOldest removes the oldest item from the cache.
+func (c *LRU) RemoveOldest() (interface{}, interface{}, bool) {
+ ent := c.evictList.Back()
+ if ent != nil {
+ c.removeElement(ent)
+ kv := ent.Value.(*entry)
+ return kv.key, kv.value, true
+ }
+ return nil, nil, false
+}
+
+// GetOldest returns the oldest entry
+func (c *LRU) GetOldest() (interface{}, interface{}, bool) {
+ ent := c.evictList.Back()
+ if ent != nil {
+ kv := ent.Value.(*entry)
+ return kv.key, kv.value, true
+ }
+ return nil, nil, false
+}
+
+// Keys returns a slice of the keys in the cache, from oldest to newest.
+func (c *LRU) Keys() []interface{} {
+ keys := make([]interface{}, len(c.items))
+ i := 0
+ for ent := c.evictList.Back(); ent != nil; ent = ent.Prev() {
+ keys[i] = ent.Value.(*entry).key
+ i++
+ }
+ return keys
+}
+
+// Len returns the number of items in the cache.
+func (c *LRU) Len() int {
+ return c.evictList.Len()
+}
+
+// removeOldest removes the oldest item from the cache.
+func (c *LRU) removeOldest() {
+ ent := c.evictList.Back()
+ if ent != nil {
+ c.removeElement(ent)
+ }
+}
+
+// removeElement is used to remove a given list element from the cache
+func (c *LRU) removeElement(e *list.Element) {
+ c.evictList.Remove(e)
+ kv := e.Value.(*entry)
+ delete(c.items, kv.key)
+ if c.onEvict != nil {
+ c.onEvict(kv.key, kv.value)
+ }
+}
diff --git a/vendor/github.com/huin/goupnp/.gitignore b/vendor/github.com/huin/goupnp/.gitignore
new file mode 100644
index 000000000..09ef375e8
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/.gitignore
@@ -0,0 +1 @@
+/gotasks/specs
diff --git a/vendor/github.com/huin/goupnp/LICENSE b/vendor/github.com/huin/goupnp/LICENSE
new file mode 100644
index 000000000..252e3d639
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/LICENSE
@@ -0,0 +1,23 @@
+Copyright (c) 2013, John Beisley <greatred@gmail.com>
+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.
+
+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 HOLDER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/huin/goupnp/README.md b/vendor/github.com/huin/goupnp/README.md
new file mode 100644
index 000000000..a228ccea6
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/README.md
@@ -0,0 +1,44 @@
+goupnp is a UPnP client library for Go
+
+Installation
+------------
+
+Run `go get -u github.com/huin/goupnp`.
+
+Documentation
+-------------
+
+All doc links below are for ![GoDoc](https://godoc.org/github.com/huin/goupnp?status.svg).
+
+Supported DCPs (you probably want to start with one of these):
+* [av1](https://godoc.org/github.com/huin/goupnp/dcps/av1) - Client for UPnP Device Control Protocol MediaServer v1 and MediaRenderer v1.
+* [internetgateway1](https://godoc.org/github.com/huin/goupnp/dcps/internetgateway1) - Client for UPnP Device Control Protocol Internet Gateway Device v1.
+* [internetgateway2](https://godoc.org/github.com/huin/goupnp/dcps/internetgateway2) - Client for UPnP Device Control Protocol Internet Gateway Device v2.
+
+Core components:
+* [(goupnp)](https://godoc.org/github.com/huin/goupnp) core library - contains datastructures and utilities typically used by the implemented DCPs.
+* [httpu](https://godoc.org/github.com/huin/goupnp/httpu) HTTPU implementation, underlies SSDP.
+* [ssdp](https://godoc.org/github.com/huin/goupnp/ssdp) SSDP client implementation (simple service discovery protocol) - used to discover UPnP services on a network.
+* [soap](https://godoc.org/github.com/huin/goupnp/soap) SOAP client implementation (simple object access protocol) - used to communicate with discovered services.
+
+
+Regenerating dcps generated source code:
+----------------------------------------
+
+1. Install gotasks: `go get -u github.com/jingweno/gotask`
+2. Change to the gotasks directory: `cd gotasks`
+3. Run specgen task: `gotask specgen`
+
+Supporting additional UPnP devices and services:
+------------------------------------------------
+
+Supporting additional services is, in the trivial case, simply a matter of
+adding the service to the `dcpMetadata` whitelist in `gotasks/specgen_task.go`,
+regenerating the source code (see above), and committing that source code.
+
+However, it would be helpful if anyone needing such a service could test the
+service against the service they have, and then reporting any trouble
+encountered as an [issue on this
+project](https://github.com/huin/goupnp/issues/new). If it just works, then
+please report at least minimal working functionality as an issue, and
+optionally contribute the metadata upstream.
diff --git a/vendor/github.com/huin/goupnp/dcps/internetgateway1/internetgateway1.go b/vendor/github.com/huin/goupnp/dcps/internetgateway1/internetgateway1.go
new file mode 100644
index 000000000..1e0802cd4
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/dcps/internetgateway1/internetgateway1.go
@@ -0,0 +1,3717 @@
+// Client for UPnP Device Control Protocol Internet Gateway Device v1.
+//
+// This DCP is documented in detail at: http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v1-Device.pdf
+//
+// Typically, use one of the New* functions to create clients for services.
+package internetgateway1
+
+// Generated file - do not edit by hand. See README.md
+
+import (
+ "net/url"
+ "time"
+
+ "github.com/huin/goupnp"
+ "github.com/huin/goupnp/soap"
+)
+
+// Hack to avoid Go complaining if time isn't used.
+var _ time.Time
+
+// Device URNs:
+const (
+ URN_LANDevice_1 = "urn:schemas-upnp-org:device:LANDevice:1"
+ URN_WANConnectionDevice_1 = "urn:schemas-upnp-org:device:WANConnectionDevice:1"
+ URN_WANDevice_1 = "urn:schemas-upnp-org:device:WANDevice:1"
+)
+
+// Service URNs:
+const (
+ URN_LANHostConfigManagement_1 = "urn:schemas-upnp-org:service:LANHostConfigManagement:1"
+ URN_Layer3Forwarding_1 = "urn:schemas-upnp-org:service:Layer3Forwarding:1"
+ URN_WANCableLinkConfig_1 = "urn:schemas-upnp-org:service:WANCableLinkConfig:1"
+ URN_WANCommonInterfaceConfig_1 = "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"
+ URN_WANDSLLinkConfig_1 = "urn:schemas-upnp-org:service:WANDSLLinkConfig:1"
+ URN_WANEthernetLinkConfig_1 = "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1"
+ URN_WANIPConnection_1 = "urn:schemas-upnp-org:service:WANIPConnection:1"
+ URN_WANPOTSLinkConfig_1 = "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1"
+ URN_WANPPPConnection_1 = "urn:schemas-upnp-org:service:WANPPPConnection:1"
+)
+
+// LANHostConfigManagement1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:LANHostConfigManagement:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type LANHostConfigManagement1 struct {
+ goupnp.ServiceClient
+}
+
+// NewLANHostConfigManagement1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewLANHostConfigManagement1Clients() (clients []*LANHostConfigManagement1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_LANHostConfigManagement_1); err != nil {
+ return
+ }
+ clients = newLANHostConfigManagement1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewLANHostConfigManagement1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewLANHostConfigManagement1ClientsByURL(loc *url.URL) ([]*LANHostConfigManagement1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_LANHostConfigManagement_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewLANHostConfigManagement1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewLANHostConfigManagement1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*LANHostConfigManagement1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_LANHostConfigManagement_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil
+}
+
+func newLANHostConfigManagement1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*LANHostConfigManagement1 {
+ clients := make([]*LANHostConfigManagement1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &LANHostConfigManagement1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *LANHostConfigManagement1) SetDHCPServerConfigurable(NewDHCPServerConfigurable bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDHCPServerConfigurable string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDHCPServerConfigurable, err = soap.MarshalBoolean(NewDHCPServerConfigurable); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPServerConfigurable", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDHCPServerConfigurable() (NewDHCPServerConfigurable bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDHCPServerConfigurable string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPServerConfigurable", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDHCPServerConfigurable, err = soap.UnmarshalBoolean(response.NewDHCPServerConfigurable); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDHCPRelay(NewDHCPRelay bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDHCPRelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDHCPRelay, err = soap.MarshalBoolean(NewDHCPRelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPRelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDHCPRelay() (NewDHCPRelay bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDHCPRelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPRelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDHCPRelay, err = soap.UnmarshalBoolean(response.NewDHCPRelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetSubnetMask(NewSubnetMask string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewSubnetMask string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewSubnetMask, err = soap.MarshalString(NewSubnetMask); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetSubnetMask", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetSubnetMask() (NewSubnetMask string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewSubnetMask string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetSubnetMask", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewSubnetMask, err = soap.UnmarshalString(response.NewSubnetMask); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetIPRouter(NewIPRouters string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIPRouters string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetIPRouter", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteIPRouter(NewIPRouters string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIPRouters string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteIPRouter", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetIPRoutersList() (NewIPRouters string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIPRouters string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetIPRoutersList", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIPRouters, err = soap.UnmarshalString(response.NewIPRouters); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDomainName(NewDomainName string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDomainName string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDomainName, err = soap.MarshalString(NewDomainName); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDomainName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDomainName() (NewDomainName string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDomainName string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDomainName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDomainName, err = soap.UnmarshalString(response.NewDomainName); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetAddressRange(NewMinAddress string, NewMaxAddress string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewMinAddress string
+
+ NewMaxAddress string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewMinAddress, err = soap.MarshalString(NewMinAddress); err != nil {
+ return
+ }
+ if request.NewMaxAddress, err = soap.MarshalString(NewMaxAddress); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetAddressRange", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetAddressRange() (NewMinAddress string, NewMaxAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewMinAddress string
+
+ NewMaxAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetAddressRange", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewMinAddress, err = soap.UnmarshalString(response.NewMinAddress); err != nil {
+ return
+ }
+ if NewMaxAddress, err = soap.UnmarshalString(response.NewMaxAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetReservedAddress(NewReservedAddresses string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewReservedAddresses string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetReservedAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteReservedAddress(NewReservedAddresses string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewReservedAddresses string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteReservedAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetReservedAddresses() (NewReservedAddresses string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewReservedAddresses string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetReservedAddresses", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewReservedAddresses, err = soap.UnmarshalString(response.NewReservedAddresses); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDNSServer(NewDNSServers string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDNSServers string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDNSServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteDNSServer(NewDNSServers string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDNSServers string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteDNSServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDNSServers() (NewDNSServers string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDNSServers string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDNSServers", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDNSServers, err = soap.UnmarshalString(response.NewDNSServers); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// Layer3Forwarding1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:Layer3Forwarding:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type Layer3Forwarding1 struct {
+ goupnp.ServiceClient
+}
+
+// NewLayer3Forwarding1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewLayer3Forwarding1Clients() (clients []*Layer3Forwarding1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_Layer3Forwarding_1); err != nil {
+ return
+ }
+ clients = newLayer3Forwarding1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewLayer3Forwarding1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewLayer3Forwarding1ClientsByURL(loc *url.URL) ([]*Layer3Forwarding1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_Layer3Forwarding_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewLayer3Forwarding1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewLayer3Forwarding1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*Layer3Forwarding1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_Layer3Forwarding_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil
+}
+
+func newLayer3Forwarding1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*Layer3Forwarding1 {
+ clients := make([]*Layer3Forwarding1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &Layer3Forwarding1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *Layer3Forwarding1) SetDefaultConnectionService(NewDefaultConnectionService string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDefaultConnectionService string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDefaultConnectionService, err = soap.MarshalString(NewDefaultConnectionService); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "SetDefaultConnectionService", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *Layer3Forwarding1) GetDefaultConnectionService() (NewDefaultConnectionService string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDefaultConnectionService string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "GetDefaultConnectionService", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDefaultConnectionService, err = soap.UnmarshalString(response.NewDefaultConnectionService); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANCableLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCableLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANCableLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANCableLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANCableLinkConfig1Clients() (clients []*WANCableLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCableLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANCableLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANCableLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANCableLinkConfig1ClientsByURL(loc *url.URL) ([]*WANCableLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCableLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANCableLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANCableLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCableLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCableLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANCableLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCableLinkConfig1 {
+ clients := make([]*WANCableLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANCableLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Return values:
+//
+// * NewCableLinkConfigState: allowed values: notReady, dsSyncComplete, usParamAcquired, rangingComplete, ipComplete, todEstablished, paramTransferComplete, registrationComplete, operational, accessDenied
+//
+// * NewLinkType: allowed values: Ethernet
+func (client *WANCableLinkConfig1) GetCableLinkConfigInfo() (NewCableLinkConfigState string, NewLinkType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewCableLinkConfigState string
+
+ NewLinkType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetCableLinkConfigInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewCableLinkConfigState, err = soap.UnmarshalString(response.NewCableLinkConfigState); err != nil {
+ return
+ }
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetDownstreamFrequency() (NewDownstreamFrequency uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDownstreamFrequency string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamFrequency", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDownstreamFrequency, err = soap.UnmarshalUi4(response.NewDownstreamFrequency); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewDownstreamModulation: allowed values: 64QAM, 256QAM
+func (client *WANCableLinkConfig1) GetDownstreamModulation() (NewDownstreamModulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDownstreamModulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamModulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDownstreamModulation, err = soap.UnmarshalString(response.NewDownstreamModulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamFrequency() (NewUpstreamFrequency uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamFrequency string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamFrequency", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamFrequency, err = soap.UnmarshalUi4(response.NewUpstreamFrequency); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewUpstreamModulation: allowed values: QPSK, 16QAM
+func (client *WANCableLinkConfig1) GetUpstreamModulation() (NewUpstreamModulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamModulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamModulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamModulation, err = soap.UnmarshalString(response.NewUpstreamModulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamChannelID() (NewUpstreamChannelID uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamChannelID string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamChannelID", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamChannelID, err = soap.UnmarshalUi4(response.NewUpstreamChannelID); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamPowerLevel() (NewUpstreamPowerLevel uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamPowerLevel string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamPowerLevel", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamPowerLevel, err = soap.UnmarshalUi4(response.NewUpstreamPowerLevel); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetBPIEncryptionEnabled() (NewBPIEncryptionEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewBPIEncryptionEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetBPIEncryptionEnabled", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewBPIEncryptionEnabled, err = soap.UnmarshalBoolean(response.NewBPIEncryptionEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetConfigFile() (NewConfigFile string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConfigFile string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetConfigFile", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConfigFile, err = soap.UnmarshalString(response.NewConfigFile); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetTFTPServer() (NewTFTPServer string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTFTPServer string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetTFTPServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTFTPServer, err = soap.UnmarshalString(response.NewTFTPServer); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANCommonInterfaceConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANCommonInterfaceConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANCommonInterfaceConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANCommonInterfaceConfig1Clients() (clients []*WANCommonInterfaceConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCommonInterfaceConfig_1); err != nil {
+ return
+ }
+ clients = newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANCommonInterfaceConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANCommonInterfaceConfig1ClientsByURL(loc *url.URL) ([]*WANCommonInterfaceConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCommonInterfaceConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANCommonInterfaceConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANCommonInterfaceConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCommonInterfaceConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCommonInterfaceConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCommonInterfaceConfig1 {
+ clients := make([]*WANCommonInterfaceConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANCommonInterfaceConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANCommonInterfaceConfig1) SetEnabledForInternet(NewEnabledForInternet bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewEnabledForInternet string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewEnabledForInternet, err = soap.MarshalBoolean(NewEnabledForInternet); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "SetEnabledForInternet", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetEnabledForInternet() (NewEnabledForInternet bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewEnabledForInternet string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetEnabledForInternet", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewEnabledForInternet, err = soap.UnmarshalBoolean(response.NewEnabledForInternet); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewWANAccessType: allowed values: DSL, POTS, Cable, Ethernet
+//
+// * NewPhysicalLinkStatus: allowed values: Up, Down
+func (client *WANCommonInterfaceConfig1) GetCommonLinkProperties() (NewWANAccessType string, NewLayer1UpstreamMaxBitRate uint32, NewLayer1DownstreamMaxBitRate uint32, NewPhysicalLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWANAccessType string
+
+ NewLayer1UpstreamMaxBitRate string
+
+ NewLayer1DownstreamMaxBitRate string
+
+ NewPhysicalLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetCommonLinkProperties", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWANAccessType, err = soap.UnmarshalString(response.NewWANAccessType); err != nil {
+ return
+ }
+ if NewLayer1UpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1UpstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewLayer1DownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1DownstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewPhysicalLinkStatus, err = soap.UnmarshalString(response.NewPhysicalLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetWANAccessProvider() (NewWANAccessProvider string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWANAccessProvider string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetWANAccessProvider", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWANAccessProvider, err = soap.UnmarshalString(response.NewWANAccessProvider); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewMaximumActiveConnections: allowed value range: minimum=1, step=1
+func (client *WANCommonInterfaceConfig1) GetMaximumActiveConnections() (NewMaximumActiveConnections uint16, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewMaximumActiveConnections string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetMaximumActiveConnections", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewMaximumActiveConnections, err = soap.UnmarshalUi2(response.NewMaximumActiveConnections); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalBytesSent() (NewTotalBytesSent uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalBytesSent string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesSent", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalBytesSent, err = soap.UnmarshalUi4(response.NewTotalBytesSent); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalBytesReceived() (NewTotalBytesReceived uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalBytesReceived string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesReceived", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalBytesReceived, err = soap.UnmarshalUi4(response.NewTotalBytesReceived); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalPacketsSent() (NewTotalPacketsSent uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalPacketsSent string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsSent", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalPacketsSent, err = soap.UnmarshalUi4(response.NewTotalPacketsSent); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalPacketsReceived() (NewTotalPacketsReceived uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalPacketsReceived string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsReceived", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalPacketsReceived, err = soap.UnmarshalUi4(response.NewTotalPacketsReceived); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetActiveConnection(NewActiveConnectionIndex uint16) (NewActiveConnDeviceContainer string, NewActiveConnectionServiceID string, err error) {
+ // Request structure.
+ request := &struct {
+ NewActiveConnectionIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewActiveConnectionIndex, err = soap.MarshalUi2(NewActiveConnectionIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewActiveConnDeviceContainer string
+
+ NewActiveConnectionServiceID string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetActiveConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewActiveConnDeviceContainer, err = soap.UnmarshalString(response.NewActiveConnDeviceContainer); err != nil {
+ return
+ }
+ if NewActiveConnectionServiceID, err = soap.UnmarshalString(response.NewActiveConnectionServiceID); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANDSLLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANDSLLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANDSLLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANDSLLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANDSLLinkConfig1Clients() (clients []*WANDSLLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANDSLLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANDSLLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANDSLLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANDSLLinkConfig1ClientsByURL(loc *url.URL) ([]*WANDSLLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANDSLLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANDSLLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANDSLLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANDSLLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANDSLLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANDSLLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANDSLLinkConfig1 {
+ clients := make([]*WANDSLLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANDSLLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANDSLLinkConfig1) SetDSLLinkType(NewLinkType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewLinkType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDSLLinkType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewLinkStatus: allowed values: Up, Down
+func (client *WANDSLLinkConfig1) GetDSLLinkInfo() (NewLinkType string, NewLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewLinkType string
+
+ NewLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDSLLinkInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ if NewLinkStatus, err = soap.UnmarshalString(response.NewLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetAutoConfig() (NewAutoConfig bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoConfig string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetAutoConfig", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoConfig, err = soap.UnmarshalBoolean(response.NewAutoConfig); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetModulationType() (NewModulationType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewModulationType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetModulationType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewModulationType, err = soap.UnmarshalString(response.NewModulationType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetDestinationAddress(NewDestinationAddress string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDestinationAddress string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDestinationAddress, err = soap.MarshalString(NewDestinationAddress); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDestinationAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetDestinationAddress() (NewDestinationAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDestinationAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDestinationAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDestinationAddress, err = soap.UnmarshalString(response.NewDestinationAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetATMEncapsulation(NewATMEncapsulation string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewATMEncapsulation string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewATMEncapsulation, err = soap.MarshalString(NewATMEncapsulation); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetATMEncapsulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetATMEncapsulation() (NewATMEncapsulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewATMEncapsulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetATMEncapsulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewATMEncapsulation, err = soap.UnmarshalString(response.NewATMEncapsulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetFCSPreserved(NewFCSPreserved bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewFCSPreserved string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewFCSPreserved, err = soap.MarshalBoolean(NewFCSPreserved); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetFCSPreserved", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetFCSPreserved() (NewFCSPreserved bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewFCSPreserved string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetFCSPreserved", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewFCSPreserved, err = soap.UnmarshalBoolean(response.NewFCSPreserved); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANEthernetLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANEthernetLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANEthernetLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANEthernetLinkConfig1Clients() (clients []*WANEthernetLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANEthernetLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANEthernetLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANEthernetLinkConfig1ClientsByURL(loc *url.URL) ([]*WANEthernetLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANEthernetLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANEthernetLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANEthernetLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANEthernetLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANEthernetLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANEthernetLinkConfig1 {
+ clients := make([]*WANEthernetLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANEthernetLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Return values:
+//
+// * NewEthernetLinkStatus: allowed values: Up, Down
+func (client *WANEthernetLinkConfig1) GetEthernetLinkStatus() (NewEthernetLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewEthernetLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANEthernetLinkConfig_1, "GetEthernetLinkStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewEthernetLinkStatus, err = soap.UnmarshalString(response.NewEthernetLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANIPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANIPConnection1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANIPConnection1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANIPConnection1Clients() (clients []*WANIPConnection1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_1); err != nil {
+ return
+ }
+ clients = newWANIPConnection1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANIPConnection1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANIPConnection1ClientsByURL(loc *url.URL) ([]*WANIPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANIPConnection1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANIPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANIPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection1 {
+ clients := make([]*WANIPConnection1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANIPConnection1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANIPConnection1) SetConnectionType(NewConnectionType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewConnectionType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetConnectionType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, IP_Bridged
+func (client *WANIPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionType string
+
+ NewPossibleConnectionTypes string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetConnectionTypeInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil {
+ return
+ }
+ if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) RequestConnection() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) RequestTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) ForceTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "ForceTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewAutoDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIdleDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected
+//
+// * NewLastConnectionError: allowed values: ERROR_NONE
+func (client *WANIPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionStatus string
+
+ NewLastConnectionError string
+
+ NewUptime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetStatusInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil {
+ return
+ }
+ if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil {
+ return
+ }
+ if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIdleDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRSIPAvailable string
+
+ NewNATEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetNATRSIPStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil {
+ return
+ }
+ if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewProtocol: allowed values: TCP, UDP
+func (client *WANIPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewPortMappingIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil {
+ return
+ }
+ if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil {
+ return
+ }
+ if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil {
+ return
+ }
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "AddPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "DeletePortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewExternalIPAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetExternalIPAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANPOTSLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANPOTSLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANPOTSLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANPOTSLinkConfig1Clients() (clients []*WANPOTSLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPOTSLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANPOTSLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANPOTSLinkConfig1ClientsByURL(loc *url.URL) ([]*WANPOTSLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPOTSLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANPOTSLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANPOTSLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPOTSLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPOTSLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPOTSLinkConfig1 {
+ clients := make([]*WANPOTSLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANPOTSLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Arguments:
+//
+// * NewLinkType: allowed values: PPP_Dialup
+
+func (client *WANPOTSLinkConfig1) SetISPInfo(NewISPPhoneNumber string, NewISPInfo string, NewLinkType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewISPPhoneNumber string
+
+ NewISPInfo string
+
+ NewLinkType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewISPPhoneNumber, err = soap.MarshalString(NewISPPhoneNumber); err != nil {
+ return
+ }
+ if request.NewISPInfo, err = soap.MarshalString(NewISPInfo); err != nil {
+ return
+ }
+ if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetISPInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) SetCallRetryInfo(NewNumberOfRetries uint32, NewDelayBetweenRetries uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewNumberOfRetries string
+
+ NewDelayBetweenRetries string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewNumberOfRetries, err = soap.MarshalUi4(NewNumberOfRetries); err != nil {
+ return
+ }
+ if request.NewDelayBetweenRetries, err = soap.MarshalUi4(NewDelayBetweenRetries); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetCallRetryInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewLinkType: allowed values: PPP_Dialup
+func (client *WANPOTSLinkConfig1) GetISPInfo() (NewISPPhoneNumber string, NewISPInfo string, NewLinkType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewISPPhoneNumber string
+
+ NewISPInfo string
+
+ NewLinkType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetISPInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewISPPhoneNumber, err = soap.UnmarshalString(response.NewISPPhoneNumber); err != nil {
+ return
+ }
+ if NewISPInfo, err = soap.UnmarshalString(response.NewISPInfo); err != nil {
+ return
+ }
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetCallRetryInfo() (NewNumberOfRetries uint32, NewDelayBetweenRetries uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewNumberOfRetries string
+
+ NewDelayBetweenRetries string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetCallRetryInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewNumberOfRetries, err = soap.UnmarshalUi4(response.NewNumberOfRetries); err != nil {
+ return
+ }
+ if NewDelayBetweenRetries, err = soap.UnmarshalUi4(response.NewDelayBetweenRetries); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetFclass() (NewFclass string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewFclass string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetFclass", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewFclass, err = soap.UnmarshalString(response.NewFclass); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataModulationSupported() (NewDataModulationSupported string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataModulationSupported string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataModulationSupported", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataModulationSupported, err = soap.UnmarshalString(response.NewDataModulationSupported); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataProtocol() (NewDataProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataProtocol, err = soap.UnmarshalString(response.NewDataProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataCompression() (NewDataCompression string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataCompression string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataCompression", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataCompression, err = soap.UnmarshalString(response.NewDataCompression); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetPlusVTRCommandSupported() (NewPlusVTRCommandSupported bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPlusVTRCommandSupported string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetPlusVTRCommandSupported", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPlusVTRCommandSupported, err = soap.UnmarshalBoolean(response.NewPlusVTRCommandSupported); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANPPPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPPPConnection:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANPPPConnection1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANPPPConnection1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANPPPConnection1Clients() (clients []*WANPPPConnection1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPPPConnection_1); err != nil {
+ return
+ }
+ clients = newWANPPPConnection1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANPPPConnection1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANPPPConnection1ClientsByURL(loc *url.URL) ([]*WANPPPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPPPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANPPPConnection1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANPPPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPPPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPPPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANPPPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPPPConnection1 {
+ clients := make([]*WANPPPConnection1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANPPPConnection1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANPPPConnection1) SetConnectionType(NewConnectionType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewConnectionType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetConnectionType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, DHCP_Spoofed, PPPoE_Bridged, PPTP_Relay, L2TP_Relay, PPPoE_Relay
+func (client *WANPPPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionType string
+
+ NewPossibleConnectionTypes string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetConnectionTypeInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil {
+ return
+ }
+ if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) ConfigureConnection(NewUserName string, NewPassword string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewUserName string
+
+ NewPassword string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewUserName, err = soap.MarshalString(NewUserName); err != nil {
+ return
+ }
+ if request.NewPassword, err = soap.MarshalString(NewPassword); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ConfigureConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) RequestConnection() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) RequestTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) ForceTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ForceTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewAutoDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIdleDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected
+//
+// * NewLastConnectionError: allowed values: ERROR_NONE
+func (client *WANPPPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionStatus string
+
+ NewLastConnectionError string
+
+ NewUptime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetStatusInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil {
+ return
+ }
+ if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil {
+ return
+ }
+ if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetLinkLayerMaxBitRates() (NewUpstreamMaxBitRate uint32, NewDownstreamMaxBitRate uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamMaxBitRate string
+
+ NewDownstreamMaxBitRate string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetLinkLayerMaxBitRates", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewUpstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewDownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewDownstreamMaxBitRate); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPEncryptionProtocol() (NewPPPEncryptionProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPEncryptionProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPEncryptionProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPEncryptionProtocol, err = soap.UnmarshalString(response.NewPPPEncryptionProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPCompressionProtocol() (NewPPPCompressionProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPCompressionProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPCompressionProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPCompressionProtocol, err = soap.UnmarshalString(response.NewPPPCompressionProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPAuthenticationProtocol() (NewPPPAuthenticationProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPAuthenticationProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPAuthenticationProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPAuthenticationProtocol, err = soap.UnmarshalString(response.NewPPPAuthenticationProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetUserName() (NewUserName string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUserName string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetUserName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUserName, err = soap.UnmarshalString(response.NewUserName); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPassword() (NewPassword string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPassword string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPassword", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPassword, err = soap.UnmarshalString(response.NewPassword); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIdleDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRSIPAvailable string
+
+ NewNATEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetNATRSIPStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil {
+ return
+ }
+ if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewProtocol: allowed values: TCP, UDP
+func (client *WANPPPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewPortMappingIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil {
+ return
+ }
+ if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil {
+ return
+ }
+ if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil {
+ return
+ }
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "AddPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "DeletePortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewExternalIPAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetExternalIPAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
diff --git a/vendor/github.com/huin/goupnp/dcps/internetgateway2/internetgateway2.go b/vendor/github.com/huin/goupnp/dcps/internetgateway2/internetgateway2.go
new file mode 100644
index 000000000..2d67a4a2e
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/dcps/internetgateway2/internetgateway2.go
@@ -0,0 +1,5378 @@
+// Client for UPnP Device Control Protocol Internet Gateway Device v2.
+//
+// This DCP is documented in detail at: http://upnp.org/specs/gw/UPnP-gw-InternetGatewayDevice-v2-Device.pdf
+//
+// Typically, use one of the New* functions to create clients for services.
+package internetgateway2
+
+// Generated file - do not edit by hand. See README.md
+
+import (
+ "net/url"
+ "time"
+
+ "github.com/huin/goupnp"
+ "github.com/huin/goupnp/soap"
+)
+
+// Hack to avoid Go complaining if time isn't used.
+var _ time.Time
+
+// Device URNs:
+const (
+ URN_LANDevice_1 = "urn:schemas-upnp-org:device:LANDevice:1"
+ URN_WANConnectionDevice_1 = "urn:schemas-upnp-org:device:WANConnectionDevice:1"
+ URN_WANConnectionDevice_2 = "urn:schemas-upnp-org:device:WANConnectionDevice:2"
+ URN_WANDevice_1 = "urn:schemas-upnp-org:device:WANDevice:1"
+ URN_WANDevice_2 = "urn:schemas-upnp-org:device:WANDevice:2"
+)
+
+// Service URNs:
+const (
+ URN_DeviceProtection_1 = "urn:schemas-upnp-org:service:DeviceProtection:1"
+ URN_LANHostConfigManagement_1 = "urn:schemas-upnp-org:service:LANHostConfigManagement:1"
+ URN_Layer3Forwarding_1 = "urn:schemas-upnp-org:service:Layer3Forwarding:1"
+ URN_WANCableLinkConfig_1 = "urn:schemas-upnp-org:service:WANCableLinkConfig:1"
+ URN_WANCommonInterfaceConfig_1 = "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1"
+ URN_WANDSLLinkConfig_1 = "urn:schemas-upnp-org:service:WANDSLLinkConfig:1"
+ URN_WANEthernetLinkConfig_1 = "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1"
+ URN_WANIPConnection_1 = "urn:schemas-upnp-org:service:WANIPConnection:1"
+ URN_WANIPConnection_2 = "urn:schemas-upnp-org:service:WANIPConnection:2"
+ URN_WANIPv6FirewallControl_1 = "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1"
+ URN_WANPOTSLinkConfig_1 = "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1"
+ URN_WANPPPConnection_1 = "urn:schemas-upnp-org:service:WANPPPConnection:1"
+)
+
+// DeviceProtection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:DeviceProtection:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type DeviceProtection1 struct {
+ goupnp.ServiceClient
+}
+
+// NewDeviceProtection1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewDeviceProtection1Clients() (clients []*DeviceProtection1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_DeviceProtection_1); err != nil {
+ return
+ }
+ clients = newDeviceProtection1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewDeviceProtection1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewDeviceProtection1ClientsByURL(loc *url.URL) ([]*DeviceProtection1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_DeviceProtection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newDeviceProtection1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewDeviceProtection1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewDeviceProtection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*DeviceProtection1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_DeviceProtection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newDeviceProtection1ClientsFromGenericClients(genericClients), nil
+}
+
+func newDeviceProtection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*DeviceProtection1 {
+ clients := make([]*DeviceProtection1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &DeviceProtection1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *DeviceProtection1) SendSetupMessage(ProtocolType string, InMessage []byte) (OutMessage []byte, err error) {
+ // Request structure.
+ request := &struct {
+ ProtocolType string
+
+ InMessage string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil {
+ return
+ }
+ if request.InMessage, err = soap.MarshalBinBase64(InMessage); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ OutMessage string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "SendSetupMessage", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if OutMessage, err = soap.UnmarshalBinBase64(response.OutMessage); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) GetSupportedProtocols() (ProtocolList string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ ProtocolList string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetSupportedProtocols", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if ProtocolList, err = soap.UnmarshalString(response.ProtocolList); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) GetAssignedRoles() (RoleList string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ RoleList string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetAssignedRoles", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if RoleList, err = soap.UnmarshalString(response.RoleList); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) GetRolesForAction(DeviceUDN string, ServiceId string, ActionName string) (RoleList string, RestrictedRoleList string, err error) {
+ // Request structure.
+ request := &struct {
+ DeviceUDN string
+
+ ServiceId string
+
+ ActionName string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.DeviceUDN, err = soap.MarshalString(DeviceUDN); err != nil {
+ return
+ }
+ if request.ServiceId, err = soap.MarshalString(ServiceId); err != nil {
+ return
+ }
+ if request.ActionName, err = soap.MarshalString(ActionName); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ RoleList string
+
+ RestrictedRoleList string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetRolesForAction", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if RoleList, err = soap.UnmarshalString(response.RoleList); err != nil {
+ return
+ }
+ if RestrictedRoleList, err = soap.UnmarshalString(response.RestrictedRoleList); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) GetUserLoginChallenge(ProtocolType string, Name string) (Salt []byte, Challenge []byte, err error) {
+ // Request structure.
+ request := &struct {
+ ProtocolType string
+
+ Name string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil {
+ return
+ }
+ if request.Name, err = soap.MarshalString(Name); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ Salt string
+
+ Challenge string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetUserLoginChallenge", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if Salt, err = soap.UnmarshalBinBase64(response.Salt); err != nil {
+ return
+ }
+ if Challenge, err = soap.UnmarshalBinBase64(response.Challenge); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) UserLogin(ProtocolType string, Challenge []byte, Authenticator []byte) (err error) {
+ // Request structure.
+ request := &struct {
+ ProtocolType string
+
+ Challenge string
+
+ Authenticator string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil {
+ return
+ }
+ if request.Challenge, err = soap.MarshalBinBase64(Challenge); err != nil {
+ return
+ }
+ if request.Authenticator, err = soap.MarshalBinBase64(Authenticator); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "UserLogin", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) UserLogout() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "UserLogout", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) GetACLData() (ACL string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ ACL string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "GetACLData", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if ACL, err = soap.UnmarshalString(response.ACL); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) AddIdentityList(IdentityList string) (IdentityListResult string, err error) {
+ // Request structure.
+ request := &struct {
+ IdentityList string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.IdentityList, err = soap.MarshalString(IdentityList); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ IdentityListResult string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "AddIdentityList", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if IdentityListResult, err = soap.UnmarshalString(response.IdentityListResult); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) RemoveIdentity(Identity string) (err error) {
+ // Request structure.
+ request := &struct {
+ Identity string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.Identity, err = soap.MarshalString(Identity); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "RemoveIdentity", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) SetUserLoginPassword(ProtocolType string, Name string, Stored []byte, Salt []byte) (err error) {
+ // Request structure.
+ request := &struct {
+ ProtocolType string
+
+ Name string
+
+ Stored string
+
+ Salt string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.ProtocolType, err = soap.MarshalString(ProtocolType); err != nil {
+ return
+ }
+ if request.Name, err = soap.MarshalString(Name); err != nil {
+ return
+ }
+ if request.Stored, err = soap.MarshalBinBase64(Stored); err != nil {
+ return
+ }
+ if request.Salt, err = soap.MarshalBinBase64(Salt); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "SetUserLoginPassword", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) AddRolesForIdentity(Identity string, RoleList string) (err error) {
+ // Request structure.
+ request := &struct {
+ Identity string
+
+ RoleList string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.Identity, err = soap.MarshalString(Identity); err != nil {
+ return
+ }
+ if request.RoleList, err = soap.MarshalString(RoleList); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "AddRolesForIdentity", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *DeviceProtection1) RemoveRolesForIdentity(Identity string, RoleList string) (err error) {
+ // Request structure.
+ request := &struct {
+ Identity string
+
+ RoleList string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.Identity, err = soap.MarshalString(Identity); err != nil {
+ return
+ }
+ if request.RoleList, err = soap.MarshalString(RoleList); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_DeviceProtection_1, "RemoveRolesForIdentity", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+// LANHostConfigManagement1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:LANHostConfigManagement:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type LANHostConfigManagement1 struct {
+ goupnp.ServiceClient
+}
+
+// NewLANHostConfigManagement1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewLANHostConfigManagement1Clients() (clients []*LANHostConfigManagement1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_LANHostConfigManagement_1); err != nil {
+ return
+ }
+ clients = newLANHostConfigManagement1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewLANHostConfigManagement1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewLANHostConfigManagement1ClientsByURL(loc *url.URL) ([]*LANHostConfigManagement1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_LANHostConfigManagement_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewLANHostConfigManagement1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewLANHostConfigManagement1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*LANHostConfigManagement1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_LANHostConfigManagement_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLANHostConfigManagement1ClientsFromGenericClients(genericClients), nil
+}
+
+func newLANHostConfigManagement1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*LANHostConfigManagement1 {
+ clients := make([]*LANHostConfigManagement1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &LANHostConfigManagement1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *LANHostConfigManagement1) SetDHCPServerConfigurable(NewDHCPServerConfigurable bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDHCPServerConfigurable string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDHCPServerConfigurable, err = soap.MarshalBoolean(NewDHCPServerConfigurable); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPServerConfigurable", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDHCPServerConfigurable() (NewDHCPServerConfigurable bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDHCPServerConfigurable string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPServerConfigurable", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDHCPServerConfigurable, err = soap.UnmarshalBoolean(response.NewDHCPServerConfigurable); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDHCPRelay(NewDHCPRelay bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDHCPRelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDHCPRelay, err = soap.MarshalBoolean(NewDHCPRelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDHCPRelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDHCPRelay() (NewDHCPRelay bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDHCPRelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDHCPRelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDHCPRelay, err = soap.UnmarshalBoolean(response.NewDHCPRelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetSubnetMask(NewSubnetMask string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewSubnetMask string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewSubnetMask, err = soap.MarshalString(NewSubnetMask); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetSubnetMask", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetSubnetMask() (NewSubnetMask string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewSubnetMask string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetSubnetMask", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewSubnetMask, err = soap.UnmarshalString(response.NewSubnetMask); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetIPRouter(NewIPRouters string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIPRouters string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetIPRouter", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteIPRouter(NewIPRouters string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIPRouters string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIPRouters, err = soap.MarshalString(NewIPRouters); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteIPRouter", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetIPRoutersList() (NewIPRouters string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIPRouters string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetIPRoutersList", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIPRouters, err = soap.UnmarshalString(response.NewIPRouters); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDomainName(NewDomainName string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDomainName string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDomainName, err = soap.MarshalString(NewDomainName); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDomainName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDomainName() (NewDomainName string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDomainName string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDomainName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDomainName, err = soap.UnmarshalString(response.NewDomainName); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetAddressRange(NewMinAddress string, NewMaxAddress string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewMinAddress string
+
+ NewMaxAddress string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewMinAddress, err = soap.MarshalString(NewMinAddress); err != nil {
+ return
+ }
+ if request.NewMaxAddress, err = soap.MarshalString(NewMaxAddress); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetAddressRange", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetAddressRange() (NewMinAddress string, NewMaxAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewMinAddress string
+
+ NewMaxAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetAddressRange", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewMinAddress, err = soap.UnmarshalString(response.NewMinAddress); err != nil {
+ return
+ }
+ if NewMaxAddress, err = soap.UnmarshalString(response.NewMaxAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetReservedAddress(NewReservedAddresses string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewReservedAddresses string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetReservedAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteReservedAddress(NewReservedAddresses string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewReservedAddresses string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewReservedAddresses, err = soap.MarshalString(NewReservedAddresses); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteReservedAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetReservedAddresses() (NewReservedAddresses string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewReservedAddresses string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetReservedAddresses", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewReservedAddresses, err = soap.UnmarshalString(response.NewReservedAddresses); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) SetDNSServer(NewDNSServers string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDNSServers string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "SetDNSServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) DeleteDNSServer(NewDNSServers string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDNSServers string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDNSServers, err = soap.MarshalString(NewDNSServers); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "DeleteDNSServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *LANHostConfigManagement1) GetDNSServers() (NewDNSServers string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDNSServers string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_LANHostConfigManagement_1, "GetDNSServers", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDNSServers, err = soap.UnmarshalString(response.NewDNSServers); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// Layer3Forwarding1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:Layer3Forwarding:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type Layer3Forwarding1 struct {
+ goupnp.ServiceClient
+}
+
+// NewLayer3Forwarding1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewLayer3Forwarding1Clients() (clients []*Layer3Forwarding1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_Layer3Forwarding_1); err != nil {
+ return
+ }
+ clients = newLayer3Forwarding1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewLayer3Forwarding1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewLayer3Forwarding1ClientsByURL(loc *url.URL) ([]*Layer3Forwarding1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_Layer3Forwarding_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewLayer3Forwarding1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewLayer3Forwarding1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*Layer3Forwarding1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_Layer3Forwarding_1)
+ if err != nil {
+ return nil, err
+ }
+ return newLayer3Forwarding1ClientsFromGenericClients(genericClients), nil
+}
+
+func newLayer3Forwarding1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*Layer3Forwarding1 {
+ clients := make([]*Layer3Forwarding1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &Layer3Forwarding1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *Layer3Forwarding1) SetDefaultConnectionService(NewDefaultConnectionService string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDefaultConnectionService string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDefaultConnectionService, err = soap.MarshalString(NewDefaultConnectionService); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "SetDefaultConnectionService", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *Layer3Forwarding1) GetDefaultConnectionService() (NewDefaultConnectionService string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDefaultConnectionService string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_Layer3Forwarding_1, "GetDefaultConnectionService", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDefaultConnectionService, err = soap.UnmarshalString(response.NewDefaultConnectionService); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANCableLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCableLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANCableLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANCableLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANCableLinkConfig1Clients() (clients []*WANCableLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCableLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANCableLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANCableLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANCableLinkConfig1ClientsByURL(loc *url.URL) ([]*WANCableLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCableLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANCableLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANCableLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCableLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCableLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCableLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANCableLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCableLinkConfig1 {
+ clients := make([]*WANCableLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANCableLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Return values:
+//
+// * NewCableLinkConfigState: allowed values: notReady, dsSyncComplete, usParamAcquired, rangingComplete, ipComplete, todEstablished, paramTransferComplete, registrationComplete, operational, accessDenied
+//
+// * NewLinkType: allowed values: Ethernet
+func (client *WANCableLinkConfig1) GetCableLinkConfigInfo() (NewCableLinkConfigState string, NewLinkType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewCableLinkConfigState string
+
+ NewLinkType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetCableLinkConfigInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewCableLinkConfigState, err = soap.UnmarshalString(response.NewCableLinkConfigState); err != nil {
+ return
+ }
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetDownstreamFrequency() (NewDownstreamFrequency uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDownstreamFrequency string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamFrequency", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDownstreamFrequency, err = soap.UnmarshalUi4(response.NewDownstreamFrequency); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewDownstreamModulation: allowed values: 64QAM, 256QAM
+func (client *WANCableLinkConfig1) GetDownstreamModulation() (NewDownstreamModulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDownstreamModulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetDownstreamModulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDownstreamModulation, err = soap.UnmarshalString(response.NewDownstreamModulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamFrequency() (NewUpstreamFrequency uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamFrequency string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamFrequency", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamFrequency, err = soap.UnmarshalUi4(response.NewUpstreamFrequency); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewUpstreamModulation: allowed values: QPSK, 16QAM
+func (client *WANCableLinkConfig1) GetUpstreamModulation() (NewUpstreamModulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamModulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamModulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamModulation, err = soap.UnmarshalString(response.NewUpstreamModulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamChannelID() (NewUpstreamChannelID uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamChannelID string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamChannelID", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamChannelID, err = soap.UnmarshalUi4(response.NewUpstreamChannelID); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetUpstreamPowerLevel() (NewUpstreamPowerLevel uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamPowerLevel string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetUpstreamPowerLevel", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamPowerLevel, err = soap.UnmarshalUi4(response.NewUpstreamPowerLevel); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetBPIEncryptionEnabled() (NewBPIEncryptionEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewBPIEncryptionEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetBPIEncryptionEnabled", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewBPIEncryptionEnabled, err = soap.UnmarshalBoolean(response.NewBPIEncryptionEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetConfigFile() (NewConfigFile string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConfigFile string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetConfigFile", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConfigFile, err = soap.UnmarshalString(response.NewConfigFile); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCableLinkConfig1) GetTFTPServer() (NewTFTPServer string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTFTPServer string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCableLinkConfig_1, "GetTFTPServer", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTFTPServer, err = soap.UnmarshalString(response.NewTFTPServer); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANCommonInterfaceConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANCommonInterfaceConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANCommonInterfaceConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANCommonInterfaceConfig1Clients() (clients []*WANCommonInterfaceConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANCommonInterfaceConfig_1); err != nil {
+ return
+ }
+ clients = newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANCommonInterfaceConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANCommonInterfaceConfig1ClientsByURL(loc *url.URL) ([]*WANCommonInterfaceConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANCommonInterfaceConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANCommonInterfaceConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANCommonInterfaceConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANCommonInterfaceConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANCommonInterfaceConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANCommonInterfaceConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANCommonInterfaceConfig1 {
+ clients := make([]*WANCommonInterfaceConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANCommonInterfaceConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANCommonInterfaceConfig1) SetEnabledForInternet(NewEnabledForInternet bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewEnabledForInternet string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewEnabledForInternet, err = soap.MarshalBoolean(NewEnabledForInternet); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "SetEnabledForInternet", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetEnabledForInternet() (NewEnabledForInternet bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewEnabledForInternet string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetEnabledForInternet", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewEnabledForInternet, err = soap.UnmarshalBoolean(response.NewEnabledForInternet); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewWANAccessType: allowed values: DSL, POTS, Cable, Ethernet
+//
+// * NewPhysicalLinkStatus: allowed values: Up, Down
+func (client *WANCommonInterfaceConfig1) GetCommonLinkProperties() (NewWANAccessType string, NewLayer1UpstreamMaxBitRate uint32, NewLayer1DownstreamMaxBitRate uint32, NewPhysicalLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWANAccessType string
+
+ NewLayer1UpstreamMaxBitRate string
+
+ NewLayer1DownstreamMaxBitRate string
+
+ NewPhysicalLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetCommonLinkProperties", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWANAccessType, err = soap.UnmarshalString(response.NewWANAccessType); err != nil {
+ return
+ }
+ if NewLayer1UpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1UpstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewLayer1DownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewLayer1DownstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewPhysicalLinkStatus, err = soap.UnmarshalString(response.NewPhysicalLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetWANAccessProvider() (NewWANAccessProvider string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWANAccessProvider string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetWANAccessProvider", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWANAccessProvider, err = soap.UnmarshalString(response.NewWANAccessProvider); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewMaximumActiveConnections: allowed value range: minimum=1, step=1
+func (client *WANCommonInterfaceConfig1) GetMaximumActiveConnections() (NewMaximumActiveConnections uint16, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewMaximumActiveConnections string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetMaximumActiveConnections", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewMaximumActiveConnections, err = soap.UnmarshalUi2(response.NewMaximumActiveConnections); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalBytesSent() (NewTotalBytesSent uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalBytesSent string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesSent", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalBytesSent, err = soap.UnmarshalUi4(response.NewTotalBytesSent); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalBytesReceived() (NewTotalBytesReceived uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalBytesReceived string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalBytesReceived", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalBytesReceived, err = soap.UnmarshalUi4(response.NewTotalBytesReceived); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalPacketsSent() (NewTotalPacketsSent uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalPacketsSent string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsSent", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalPacketsSent, err = soap.UnmarshalUi4(response.NewTotalPacketsSent); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetTotalPacketsReceived() (NewTotalPacketsReceived uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewTotalPacketsReceived string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetTotalPacketsReceived", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewTotalPacketsReceived, err = soap.UnmarshalUi4(response.NewTotalPacketsReceived); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANCommonInterfaceConfig1) GetActiveConnection(NewActiveConnectionIndex uint16) (NewActiveConnDeviceContainer string, NewActiveConnectionServiceID string, err error) {
+ // Request structure.
+ request := &struct {
+ NewActiveConnectionIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewActiveConnectionIndex, err = soap.MarshalUi2(NewActiveConnectionIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewActiveConnDeviceContainer string
+
+ NewActiveConnectionServiceID string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANCommonInterfaceConfig_1, "GetActiveConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewActiveConnDeviceContainer, err = soap.UnmarshalString(response.NewActiveConnDeviceContainer); err != nil {
+ return
+ }
+ if NewActiveConnectionServiceID, err = soap.UnmarshalString(response.NewActiveConnectionServiceID); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANDSLLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANDSLLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANDSLLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANDSLLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANDSLLinkConfig1Clients() (clients []*WANDSLLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANDSLLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANDSLLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANDSLLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANDSLLinkConfig1ClientsByURL(loc *url.URL) ([]*WANDSLLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANDSLLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANDSLLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANDSLLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANDSLLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANDSLLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANDSLLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANDSLLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANDSLLinkConfig1 {
+ clients := make([]*WANDSLLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANDSLLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANDSLLinkConfig1) SetDSLLinkType(NewLinkType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewLinkType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDSLLinkType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewLinkStatus: allowed values: Up, Down
+func (client *WANDSLLinkConfig1) GetDSLLinkInfo() (NewLinkType string, NewLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewLinkType string
+
+ NewLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDSLLinkInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ if NewLinkStatus, err = soap.UnmarshalString(response.NewLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetAutoConfig() (NewAutoConfig bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoConfig string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetAutoConfig", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoConfig, err = soap.UnmarshalBoolean(response.NewAutoConfig); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetModulationType() (NewModulationType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewModulationType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetModulationType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewModulationType, err = soap.UnmarshalString(response.NewModulationType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetDestinationAddress(NewDestinationAddress string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewDestinationAddress string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewDestinationAddress, err = soap.MarshalString(NewDestinationAddress); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetDestinationAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetDestinationAddress() (NewDestinationAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDestinationAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetDestinationAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDestinationAddress, err = soap.UnmarshalString(response.NewDestinationAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetATMEncapsulation(NewATMEncapsulation string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewATMEncapsulation string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewATMEncapsulation, err = soap.MarshalString(NewATMEncapsulation); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetATMEncapsulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetATMEncapsulation() (NewATMEncapsulation string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewATMEncapsulation string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetATMEncapsulation", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewATMEncapsulation, err = soap.UnmarshalString(response.NewATMEncapsulation); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) SetFCSPreserved(NewFCSPreserved bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewFCSPreserved string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewFCSPreserved, err = soap.MarshalBoolean(NewFCSPreserved); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "SetFCSPreserved", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANDSLLinkConfig1) GetFCSPreserved() (NewFCSPreserved bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewFCSPreserved string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANDSLLinkConfig_1, "GetFCSPreserved", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewFCSPreserved, err = soap.UnmarshalBoolean(response.NewFCSPreserved); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANEthernetLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANEthernetLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANEthernetLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANEthernetLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANEthernetLinkConfig1Clients() (clients []*WANEthernetLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANEthernetLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANEthernetLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANEthernetLinkConfig1ClientsByURL(loc *url.URL) ([]*WANEthernetLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANEthernetLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANEthernetLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANEthernetLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANEthernetLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANEthernetLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANEthernetLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANEthernetLinkConfig1 {
+ clients := make([]*WANEthernetLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANEthernetLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Return values:
+//
+// * NewEthernetLinkStatus: allowed values: Up, Down
+func (client *WANEthernetLinkConfig1) GetEthernetLinkStatus() (NewEthernetLinkStatus string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewEthernetLinkStatus string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANEthernetLinkConfig_1, "GetEthernetLinkStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewEthernetLinkStatus, err = soap.UnmarshalString(response.NewEthernetLinkStatus); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANIPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANIPConnection1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANIPConnection1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANIPConnection1Clients() (clients []*WANIPConnection1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_1); err != nil {
+ return
+ }
+ clients = newWANIPConnection1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANIPConnection1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANIPConnection1ClientsByURL(loc *url.URL) ([]*WANIPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANIPConnection1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANIPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANIPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection1 {
+ clients := make([]*WANIPConnection1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANIPConnection1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANIPConnection1) SetConnectionType(NewConnectionType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewConnectionType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetConnectionType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, IP_Bridged
+func (client *WANIPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionType string
+
+ NewPossibleConnectionTypes string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetConnectionTypeInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil {
+ return
+ }
+ if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) RequestConnection() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) RequestTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "RequestTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) ForceTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "ForceTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewAutoDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIdleDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected
+//
+// * NewLastConnectionError: allowed values: ERROR_NONE
+func (client *WANIPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionStatus string
+
+ NewLastConnectionError string
+
+ NewUptime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetStatusInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil {
+ return
+ }
+ if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil {
+ return
+ }
+ if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIdleDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRSIPAvailable string
+
+ NewNATEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetNATRSIPStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil {
+ return
+ }
+ if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewProtocol: allowed values: TCP, UDP
+func (client *WANIPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewPortMappingIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil {
+ return
+ }
+ if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil {
+ return
+ }
+ if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil {
+ return
+ }
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "AddPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "DeletePortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewExternalIPAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_1, "GetExternalIPAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANIPConnection2 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPConnection:2". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANIPConnection2 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANIPConnection2Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANIPConnection2Clients() (clients []*WANIPConnection2, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPConnection_2); err != nil {
+ return
+ }
+ clients = newWANIPConnection2ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANIPConnection2ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANIPConnection2ClientsByURL(loc *url.URL) ([]*WANIPConnection2, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPConnection_2)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection2ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANIPConnection2ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANIPConnection2ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPConnection2, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPConnection_2)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPConnection2ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANIPConnection2ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPConnection2 {
+ clients := make([]*WANIPConnection2, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANIPConnection2{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANIPConnection2) SetConnectionType(NewConnectionType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewConnectionType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetConnectionType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionType string
+
+ NewPossibleConnectionTypes string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetConnectionTypeInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil {
+ return
+ }
+ if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) RequestConnection() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "RequestConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) RequestTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "RequestTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) ForceTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "ForceTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewAutoDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIdleDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "SetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewConnectionStatus: allowed values: Unconfigured, Connecting, Connected, PendingDisconnect, Disconnecting, Disconnected
+//
+// * NewLastConnectionError: allowed values: ERROR_NONE, ERROR_COMMAND_ABORTED, ERROR_NOT_ENABLED_FOR_INTERNET, ERROR_USER_DISCONNECT, ERROR_ISP_DISCONNECT, ERROR_IDLE_DISCONNECT, ERROR_FORCED_DISCONNECT, ERROR_NO_CARRIER, ERROR_IP_CONFIGURATION, ERROR_UNKNOWN
+func (client *WANIPConnection2) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionStatus string
+
+ NewLastConnectionError string
+
+ NewUptime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetStatusInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil {
+ return
+ }
+ if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil {
+ return
+ }
+ if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIdleDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRSIPAvailable string
+
+ NewNATEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetNATRSIPStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil {
+ return
+ }
+ if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewProtocol: allowed values: TCP, UDP
+func (client *WANIPConnection2) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewPortMappingIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetGenericPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil {
+ return
+ }
+ if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil {
+ return
+ }
+ if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil {
+ return
+ }
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetSpecificPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "AddPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "DeletePortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) DeletePortMappingRange(NewStartPort uint16, NewEndPort uint16, NewProtocol string, NewManage bool) (err error) {
+ // Request structure.
+ request := &struct {
+ NewStartPort string
+
+ NewEndPort string
+
+ NewProtocol string
+
+ NewManage string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewStartPort, err = soap.MarshalUi2(NewStartPort); err != nil {
+ return
+ }
+ if request.NewEndPort, err = soap.MarshalUi2(NewEndPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewManage, err = soap.MarshalBoolean(NewManage); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "DeletePortMappingRange", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPConnection2) GetExternalIPAddress() (NewExternalIPAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewExternalIPAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetExternalIPAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) GetListOfPortMappings(NewStartPort uint16, NewEndPort uint16, NewProtocol string, NewManage bool, NewNumberOfPorts uint16) (NewPortListing string, err error) {
+ // Request structure.
+ request := &struct {
+ NewStartPort string
+
+ NewEndPort string
+
+ NewProtocol string
+
+ NewManage string
+
+ NewNumberOfPorts string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewStartPort, err = soap.MarshalUi2(NewStartPort); err != nil {
+ return
+ }
+ if request.NewEndPort, err = soap.MarshalUi2(NewEndPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewManage, err = soap.MarshalBoolean(NewManage); err != nil {
+ return
+ }
+ if request.NewNumberOfPorts, err = soap.MarshalUi2(NewNumberOfPorts); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPortListing string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "GetListOfPortMappings", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPortListing, err = soap.UnmarshalString(response.NewPortListing); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANIPConnection2) AddAnyPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (NewReservedPort uint16, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewReservedPort string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPConnection_2, "AddAnyPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewReservedPort, err = soap.UnmarshalUi2(response.NewReservedPort); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANIPv6FirewallControl1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANIPv6FirewallControl1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANIPv6FirewallControl1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANIPv6FirewallControl1Clients() (clients []*WANIPv6FirewallControl1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANIPv6FirewallControl_1); err != nil {
+ return
+ }
+ clients = newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANIPv6FirewallControl1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANIPv6FirewallControl1ClientsByURL(loc *url.URL) ([]*WANIPv6FirewallControl1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANIPv6FirewallControl_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANIPv6FirewallControl1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANIPv6FirewallControl1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANIPv6FirewallControl1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANIPv6FirewallControl_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANIPv6FirewallControl1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANIPv6FirewallControl1 {
+ clients := make([]*WANIPv6FirewallControl1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANIPv6FirewallControl1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANIPv6FirewallControl1) GetFirewallStatus() (FirewallEnabled bool, InboundPinholeAllowed bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ FirewallEnabled string
+
+ InboundPinholeAllowed string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetFirewallStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if FirewallEnabled, err = soap.UnmarshalBoolean(response.FirewallEnabled); err != nil {
+ return
+ }
+ if InboundPinholeAllowed, err = soap.UnmarshalBoolean(response.InboundPinholeAllowed); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPv6FirewallControl1) GetOutboundPinholeTimeout(RemoteHost string, RemotePort uint16, InternalClient string, InternalPort uint16, Protocol uint16) (OutboundPinholeTimeout uint32, err error) {
+ // Request structure.
+ request := &struct {
+ RemoteHost string
+
+ RemotePort string
+
+ InternalClient string
+
+ InternalPort string
+
+ Protocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.RemoteHost, err = soap.MarshalString(RemoteHost); err != nil {
+ return
+ }
+ if request.RemotePort, err = soap.MarshalUi2(RemotePort); err != nil {
+ return
+ }
+ if request.InternalClient, err = soap.MarshalString(InternalClient); err != nil {
+ return
+ }
+ if request.InternalPort, err = soap.MarshalUi2(InternalPort); err != nil {
+ return
+ }
+ if request.Protocol, err = soap.MarshalUi2(Protocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ OutboundPinholeTimeout string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetOutboundPinholeTimeout", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if OutboundPinholeTimeout, err = soap.UnmarshalUi4(response.OutboundPinholeTimeout); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * LeaseTime: allowed value range: minimum=1, maximum=86400
+
+func (client *WANIPv6FirewallControl1) AddPinhole(RemoteHost string, RemotePort uint16, InternalClient string, InternalPort uint16, Protocol uint16, LeaseTime uint32) (UniqueID uint16, err error) {
+ // Request structure.
+ request := &struct {
+ RemoteHost string
+
+ RemotePort string
+
+ InternalClient string
+
+ InternalPort string
+
+ Protocol string
+
+ LeaseTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.RemoteHost, err = soap.MarshalString(RemoteHost); err != nil {
+ return
+ }
+ if request.RemotePort, err = soap.MarshalUi2(RemotePort); err != nil {
+ return
+ }
+ if request.InternalClient, err = soap.MarshalString(InternalClient); err != nil {
+ return
+ }
+ if request.InternalPort, err = soap.MarshalUi2(InternalPort); err != nil {
+ return
+ }
+ if request.Protocol, err = soap.MarshalUi2(Protocol); err != nil {
+ return
+ }
+ if request.LeaseTime, err = soap.MarshalUi4(LeaseTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ UniqueID string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "AddPinhole", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if UniqueID, err = soap.UnmarshalUi2(response.UniqueID); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewLeaseTime: allowed value range: minimum=1, maximum=86400
+
+func (client *WANIPv6FirewallControl1) UpdatePinhole(UniqueID uint16, NewLeaseTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ UniqueID string
+
+ NewLeaseTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil {
+ return
+ }
+ if request.NewLeaseTime, err = soap.MarshalUi4(NewLeaseTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "UpdatePinhole", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPv6FirewallControl1) DeletePinhole(UniqueID uint16) (err error) {
+ // Request structure.
+ request := &struct {
+ UniqueID string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "DeletePinhole", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPv6FirewallControl1) GetPinholePackets(UniqueID uint16) (PinholePackets uint32, err error) {
+ // Request structure.
+ request := &struct {
+ UniqueID string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ PinholePackets string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "GetPinholePackets", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if PinholePackets, err = soap.UnmarshalUi4(response.PinholePackets); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANIPv6FirewallControl1) CheckPinholeWorking(UniqueID uint16) (IsWorking bool, err error) {
+ // Request structure.
+ request := &struct {
+ UniqueID string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.UniqueID, err = soap.MarshalUi2(UniqueID); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ IsWorking string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANIPv6FirewallControl_1, "CheckPinholeWorking", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if IsWorking, err = soap.UnmarshalBoolean(response.IsWorking); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANPOTSLinkConfig1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPOTSLinkConfig:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANPOTSLinkConfig1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANPOTSLinkConfig1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANPOTSLinkConfig1Clients() (clients []*WANPOTSLinkConfig1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPOTSLinkConfig_1); err != nil {
+ return
+ }
+ clients = newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANPOTSLinkConfig1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANPOTSLinkConfig1ClientsByURL(loc *url.URL) ([]*WANPOTSLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPOTSLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANPOTSLinkConfig1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANPOTSLinkConfig1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPOTSLinkConfig1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPOTSLinkConfig_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANPOTSLinkConfig1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPOTSLinkConfig1 {
+ clients := make([]*WANPOTSLinkConfig1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANPOTSLinkConfig1{genericClients[i]}
+ }
+ return clients
+}
+
+//
+// Arguments:
+//
+// * NewLinkType: allowed values: PPP_Dialup
+
+func (client *WANPOTSLinkConfig1) SetISPInfo(NewISPPhoneNumber string, NewISPInfo string, NewLinkType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewISPPhoneNumber string
+
+ NewISPInfo string
+
+ NewLinkType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewISPPhoneNumber, err = soap.MarshalString(NewISPPhoneNumber); err != nil {
+ return
+ }
+ if request.NewISPInfo, err = soap.MarshalString(NewISPInfo); err != nil {
+ return
+ }
+ if request.NewLinkType, err = soap.MarshalString(NewLinkType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetISPInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) SetCallRetryInfo(NewNumberOfRetries uint32, NewDelayBetweenRetries uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewNumberOfRetries string
+
+ NewDelayBetweenRetries string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewNumberOfRetries, err = soap.MarshalUi4(NewNumberOfRetries); err != nil {
+ return
+ }
+ if request.NewDelayBetweenRetries, err = soap.MarshalUi4(NewDelayBetweenRetries); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "SetCallRetryInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewLinkType: allowed values: PPP_Dialup
+func (client *WANPOTSLinkConfig1) GetISPInfo() (NewISPPhoneNumber string, NewISPInfo string, NewLinkType string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewISPPhoneNumber string
+
+ NewISPInfo string
+
+ NewLinkType string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetISPInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewISPPhoneNumber, err = soap.UnmarshalString(response.NewISPPhoneNumber); err != nil {
+ return
+ }
+ if NewISPInfo, err = soap.UnmarshalString(response.NewISPInfo); err != nil {
+ return
+ }
+ if NewLinkType, err = soap.UnmarshalString(response.NewLinkType); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetCallRetryInfo() (NewNumberOfRetries uint32, NewDelayBetweenRetries uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewNumberOfRetries string
+
+ NewDelayBetweenRetries string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetCallRetryInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewNumberOfRetries, err = soap.UnmarshalUi4(response.NewNumberOfRetries); err != nil {
+ return
+ }
+ if NewDelayBetweenRetries, err = soap.UnmarshalUi4(response.NewDelayBetweenRetries); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetFclass() (NewFclass string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewFclass string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetFclass", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewFclass, err = soap.UnmarshalString(response.NewFclass); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataModulationSupported() (NewDataModulationSupported string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataModulationSupported string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataModulationSupported", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataModulationSupported, err = soap.UnmarshalString(response.NewDataModulationSupported); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataProtocol() (NewDataProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataProtocol, err = soap.UnmarshalString(response.NewDataProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetDataCompression() (NewDataCompression string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewDataCompression string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetDataCompression", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewDataCompression, err = soap.UnmarshalString(response.NewDataCompression); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPOTSLinkConfig1) GetPlusVTRCommandSupported() (NewPlusVTRCommandSupported bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPlusVTRCommandSupported string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPOTSLinkConfig_1, "GetPlusVTRCommandSupported", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPlusVTRCommandSupported, err = soap.UnmarshalBoolean(response.NewPlusVTRCommandSupported); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+// WANPPPConnection1 is a client for UPnP SOAP service with URN "urn:schemas-upnp-org:service:WANPPPConnection:1". See
+// goupnp.ServiceClient, which contains RootDevice and Service attributes which
+// are provided for informational value.
+type WANPPPConnection1 struct {
+ goupnp.ServiceClient
+}
+
+// NewWANPPPConnection1Clients discovers instances of the service on the network,
+// and returns clients to any that are found. errors will contain an error for
+// any devices that replied but which could not be queried, and err will be set
+// if the discovery process failed outright.
+//
+// This is a typical entry calling point into this package.
+func NewWANPPPConnection1Clients() (clients []*WANPPPConnection1, errors []error, err error) {
+ var genericClients []goupnp.ServiceClient
+ if genericClients, errors, err = goupnp.NewServiceClients(URN_WANPPPConnection_1); err != nil {
+ return
+ }
+ clients = newWANPPPConnection1ClientsFromGenericClients(genericClients)
+ return
+}
+
+// NewWANPPPConnection1ClientsByURL discovers instances of the service at the given
+// URL, and returns clients to any that are found. An error is returned if
+// there was an error probing the service.
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered service URL.
+func NewWANPPPConnection1ClientsByURL(loc *url.URL) ([]*WANPPPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsByURL(loc, URN_WANPPPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+// NewWANPPPConnection1ClientsFromRootDevice discovers instances of the service in
+// a given root device, and returns clients to any that are found. An error is
+// returned if there was not at least one instance of the service within the
+// device. The location parameter is simply assigned to the Location attribute
+// of the wrapped ServiceClient(s).
+//
+// This is a typical entry calling point into this package when reusing an
+// previously discovered root device.
+func NewWANPPPConnection1ClientsFromRootDevice(rootDevice *goupnp.RootDevice, loc *url.URL) ([]*WANPPPConnection1, error) {
+ genericClients, err := goupnp.NewServiceClientsFromRootDevice(rootDevice, loc, URN_WANPPPConnection_1)
+ if err != nil {
+ return nil, err
+ }
+ return newWANPPPConnection1ClientsFromGenericClients(genericClients), nil
+}
+
+func newWANPPPConnection1ClientsFromGenericClients(genericClients []goupnp.ServiceClient) []*WANPPPConnection1 {
+ clients := make([]*WANPPPConnection1, len(genericClients))
+ for i := range genericClients {
+ clients[i] = &WANPPPConnection1{genericClients[i]}
+ }
+ return clients
+}
+
+func (client *WANPPPConnection1) SetConnectionType(NewConnectionType string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewConnectionType string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewConnectionType, err = soap.MarshalString(NewConnectionType); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetConnectionType", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewPossibleConnectionTypes: allowed values: Unconfigured, IP_Routed, DHCP_Spoofed, PPPoE_Bridged, PPTP_Relay, L2TP_Relay, PPPoE_Relay
+func (client *WANPPPConnection1) GetConnectionTypeInfo() (NewConnectionType string, NewPossibleConnectionTypes string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionType string
+
+ NewPossibleConnectionTypes string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetConnectionTypeInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionType, err = soap.UnmarshalString(response.NewConnectionType); err != nil {
+ return
+ }
+ if NewPossibleConnectionTypes, err = soap.UnmarshalString(response.NewPossibleConnectionTypes); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) ConfigureConnection(NewUserName string, NewPassword string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewUserName string
+
+ NewPassword string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewUserName, err = soap.MarshalString(NewUserName); err != nil {
+ return
+ }
+ if request.NewPassword, err = soap.MarshalString(NewPassword); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ConfigureConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) RequestConnection() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestConnection", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) RequestTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "RequestTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) ForceTermination() (err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "ForceTermination", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetAutoDisconnectTime(NewAutoDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewAutoDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewAutoDisconnectTime, err = soap.MarshalUi4(NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetIdleDisconnectTime(NewIdleDisconnectTime uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewIdleDisconnectTime string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewIdleDisconnectTime, err = soap.MarshalUi4(NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) SetWarnDisconnectDelay(NewWarnDisconnectDelay uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewWarnDisconnectDelay, err = soap.MarshalUi4(NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "SetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewConnectionStatus: allowed values: Unconfigured, Connected, Disconnected
+//
+// * NewLastConnectionError: allowed values: ERROR_NONE
+func (client *WANPPPConnection1) GetStatusInfo() (NewConnectionStatus string, NewLastConnectionError string, NewUptime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewConnectionStatus string
+
+ NewLastConnectionError string
+
+ NewUptime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetStatusInfo", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewConnectionStatus, err = soap.UnmarshalString(response.NewConnectionStatus); err != nil {
+ return
+ }
+ if NewLastConnectionError, err = soap.UnmarshalString(response.NewLastConnectionError); err != nil {
+ return
+ }
+ if NewUptime, err = soap.UnmarshalUi4(response.NewUptime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetLinkLayerMaxBitRates() (NewUpstreamMaxBitRate uint32, NewDownstreamMaxBitRate uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUpstreamMaxBitRate string
+
+ NewDownstreamMaxBitRate string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetLinkLayerMaxBitRates", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUpstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewUpstreamMaxBitRate); err != nil {
+ return
+ }
+ if NewDownstreamMaxBitRate, err = soap.UnmarshalUi4(response.NewDownstreamMaxBitRate); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPEncryptionProtocol() (NewPPPEncryptionProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPEncryptionProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPEncryptionProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPEncryptionProtocol, err = soap.UnmarshalString(response.NewPPPEncryptionProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPCompressionProtocol() (NewPPPCompressionProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPCompressionProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPCompressionProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPCompressionProtocol, err = soap.UnmarshalString(response.NewPPPCompressionProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPPPAuthenticationProtocol() (NewPPPAuthenticationProtocol string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPPPAuthenticationProtocol string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPPPAuthenticationProtocol", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPPPAuthenticationProtocol, err = soap.UnmarshalString(response.NewPPPAuthenticationProtocol); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetUserName() (NewUserName string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewUserName string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetUserName", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewUserName, err = soap.UnmarshalString(response.NewUserName); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetPassword() (NewPassword string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewPassword string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetPassword", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewPassword, err = soap.UnmarshalString(response.NewPassword); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetAutoDisconnectTime() (NewAutoDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewAutoDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetAutoDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewAutoDisconnectTime, err = soap.UnmarshalUi4(response.NewAutoDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetIdleDisconnectTime() (NewIdleDisconnectTime uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewIdleDisconnectTime string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetIdleDisconnectTime", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewIdleDisconnectTime, err = soap.UnmarshalUi4(response.NewIdleDisconnectTime); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetWarnDisconnectDelay() (NewWarnDisconnectDelay uint32, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewWarnDisconnectDelay string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetWarnDisconnectDelay", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewWarnDisconnectDelay, err = soap.UnmarshalUi4(response.NewWarnDisconnectDelay); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetNATRSIPStatus() (NewRSIPAvailable bool, NewNATEnabled bool, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRSIPAvailable string
+
+ NewNATEnabled string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetNATRSIPStatus", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRSIPAvailable, err = soap.UnmarshalBoolean(response.NewRSIPAvailable); err != nil {
+ return
+ }
+ if NewNATEnabled, err = soap.UnmarshalBoolean(response.NewNATEnabled); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Return values:
+//
+// * NewProtocol: allowed values: TCP, UDP
+func (client *WANPPPConnection1) GetGenericPortMappingEntry(NewPortMappingIndex uint16) (NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewPortMappingIndex string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewPortMappingIndex, err = soap.MarshalUi2(NewPortMappingIndex); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetGenericPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewRemoteHost, err = soap.UnmarshalString(response.NewRemoteHost); err != nil {
+ return
+ }
+ if NewExternalPort, err = soap.UnmarshalUi2(response.NewExternalPort); err != nil {
+ return
+ }
+ if NewProtocol, err = soap.UnmarshalString(response.NewProtocol); err != nil {
+ return
+ }
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) GetSpecificPortMappingEntry(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32, err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetSpecificPortMappingEntry", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewInternalPort, err = soap.UnmarshalUi2(response.NewInternalPort); err != nil {
+ return
+ }
+ if NewInternalClient, err = soap.UnmarshalString(response.NewInternalClient); err != nil {
+ return
+ }
+ if NewEnabled, err = soap.UnmarshalBoolean(response.NewEnabled); err != nil {
+ return
+ }
+ if NewPortMappingDescription, err = soap.UnmarshalString(response.NewPortMappingDescription); err != nil {
+ return
+ }
+ if NewLeaseDuration, err = soap.UnmarshalUi4(response.NewLeaseDuration); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) AddPortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string, NewInternalPort uint16, NewInternalClient string, NewEnabled bool, NewPortMappingDescription string, NewLeaseDuration uint32) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+
+ NewInternalPort string
+
+ NewInternalClient string
+
+ NewEnabled string
+
+ NewPortMappingDescription string
+
+ NewLeaseDuration string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ if request.NewInternalPort, err = soap.MarshalUi2(NewInternalPort); err != nil {
+ return
+ }
+ if request.NewInternalClient, err = soap.MarshalString(NewInternalClient); err != nil {
+ return
+ }
+ if request.NewEnabled, err = soap.MarshalBoolean(NewEnabled); err != nil {
+ return
+ }
+ if request.NewPortMappingDescription, err = soap.MarshalString(NewPortMappingDescription); err != nil {
+ return
+ }
+ if request.NewLeaseDuration, err = soap.MarshalUi4(NewLeaseDuration); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "AddPortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+//
+// Arguments:
+//
+// * NewProtocol: allowed values: TCP, UDP
+
+func (client *WANPPPConnection1) DeletePortMapping(NewRemoteHost string, NewExternalPort uint16, NewProtocol string) (err error) {
+ // Request structure.
+ request := &struct {
+ NewRemoteHost string
+
+ NewExternalPort string
+
+ NewProtocol string
+ }{}
+ // BEGIN Marshal arguments into request.
+
+ if request.NewRemoteHost, err = soap.MarshalString(NewRemoteHost); err != nil {
+ return
+ }
+ if request.NewExternalPort, err = soap.MarshalUi2(NewExternalPort); err != nil {
+ return
+ }
+ if request.NewProtocol, err = soap.MarshalString(NewProtocol); err != nil {
+ return
+ }
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := interface{}(nil)
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "DeletePortMapping", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ // END Unmarshal arguments from response.
+ return
+}
+
+func (client *WANPPPConnection1) GetExternalIPAddress() (NewExternalIPAddress string, err error) {
+ // Request structure.
+ request := interface{}(nil)
+ // BEGIN Marshal arguments into request.
+
+ // END Marshal arguments into request.
+
+ // Response structure.
+ response := &struct {
+ NewExternalIPAddress string
+ }{}
+
+ // Perform the SOAP call.
+ if err = client.SOAPClient.PerformAction(URN_WANPPPConnection_1, "GetExternalIPAddress", request, response); err != nil {
+ return
+ }
+
+ // BEGIN Unmarshal arguments from response.
+
+ if NewExternalIPAddress, err = soap.UnmarshalString(response.NewExternalIPAddress); err != nil {
+ return
+ }
+ // END Unmarshal arguments from response.
+ return
+}
diff --git a/vendor/github.com/huin/goupnp/device.go b/vendor/github.com/huin/goupnp/device.go
new file mode 100644
index 000000000..e5b658b21
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/device.go
@@ -0,0 +1,184 @@
+// This file contains XML structures for communicating with UPnP devices.
+
+package goupnp
+
+import (
+ "encoding/xml"
+ "errors"
+ "fmt"
+ "net/url"
+
+ "github.com/huin/goupnp/scpd"
+ "github.com/huin/goupnp/soap"
+)
+
+const (
+ DeviceXMLNamespace = "urn:schemas-upnp-org:device-1-0"
+)
+
+// RootDevice is the device description as described by section 2.3 "Device
+// description" in
+// http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
+type RootDevice struct {
+ XMLName xml.Name `xml:"root"`
+ SpecVersion SpecVersion `xml:"specVersion"`
+ URLBase url.URL `xml:"-"`
+ URLBaseStr string `xml:"URLBase"`
+ Device Device `xml:"device"`
+}
+
+// SetURLBase sets the URLBase for the RootDevice and its underlying components.
+func (root *RootDevice) SetURLBase(urlBase *url.URL) {
+ root.URLBase = *urlBase
+ root.URLBaseStr = urlBase.String()
+ root.Device.SetURLBase(urlBase)
+}
+
+// SpecVersion is part of a RootDevice, describes the version of the
+// specification that the data adheres to.
+type SpecVersion struct {
+ Major int32 `xml:"major"`
+ Minor int32 `xml:"minor"`
+}
+
+// Device is a UPnP device. It can have child devices.
+type Device struct {
+ DeviceType string `xml:"deviceType"`
+ FriendlyName string `xml:"friendlyName"`
+ Manufacturer string `xml:"manufacturer"`
+ ManufacturerURL URLField `xml:"manufacturerURL"`
+ ModelDescription string `xml:"modelDescription"`
+ ModelName string `xml:"modelName"`
+ ModelNumber string `xml:"modelNumber"`
+ ModelURL URLField `xml:"modelURL"`
+ SerialNumber string `xml:"serialNumber"`
+ UDN string `xml:"UDN"`
+ UPC string `xml:"UPC,omitempty"`
+ Icons []Icon `xml:"iconList>icon,omitempty"`
+ Services []Service `xml:"serviceList>service,omitempty"`
+ Devices []Device `xml:"deviceList>device,omitempty"`
+
+ // Extra observed elements:
+ PresentationURL URLField `xml:"presentationURL"`
+}
+
+// VisitDevices calls visitor for the device, and all its descendent devices.
+func (device *Device) VisitDevices(visitor func(*Device)) {
+ visitor(device)
+ for i := range device.Devices {
+ device.Devices[i].VisitDevices(visitor)
+ }
+}
+
+// VisitServices calls visitor for all Services under the device and all its
+// descendent devices.
+func (device *Device) VisitServices(visitor func(*Service)) {
+ device.VisitDevices(func(d *Device) {
+ for i := range d.Services {
+ visitor(&d.Services[i])
+ }
+ })
+}
+
+// FindService finds all (if any) Services under the device and its descendents
+// that have the given ServiceType.
+func (device *Device) FindService(serviceType string) []*Service {
+ var services []*Service
+ device.VisitServices(func(s *Service) {
+ if s.ServiceType == serviceType {
+ services = append(services, s)
+ }
+ })
+ return services
+}
+
+// SetURLBase sets the URLBase for the Device and its underlying components.
+func (device *Device) SetURLBase(urlBase *url.URL) {
+ device.ManufacturerURL.SetURLBase(urlBase)
+ device.ModelURL.SetURLBase(urlBase)
+ device.PresentationURL.SetURLBase(urlBase)
+ for i := range device.Icons {
+ device.Icons[i].SetURLBase(urlBase)
+ }
+ for i := range device.Services {
+ device.Services[i].SetURLBase(urlBase)
+ }
+ for i := range device.Devices {
+ device.Devices[i].SetURLBase(urlBase)
+ }
+}
+
+func (device *Device) String() string {
+ return fmt.Sprintf("Device ID %s : %s (%s)", device.UDN, device.DeviceType, device.FriendlyName)
+}
+
+// Icon is a representative image that a device might include in its
+// description.
+type Icon struct {
+ Mimetype string `xml:"mimetype"`
+ Width int32 `xml:"width"`
+ Height int32 `xml:"height"`
+ Depth int32 `xml:"depth"`
+ URL URLField `xml:"url"`
+}
+
+// SetURLBase sets the URLBase for the Icon.
+func (icon *Icon) SetURLBase(url *url.URL) {
+ icon.URL.SetURLBase(url)
+}
+
+// Service is a service provided by a UPnP Device.
+type Service struct {
+ ServiceType string `xml:"serviceType"`
+ ServiceId string `xml:"serviceId"`
+ SCPDURL URLField `xml:"SCPDURL"`
+ ControlURL URLField `xml:"controlURL"`
+ EventSubURL URLField `xml:"eventSubURL"`
+}
+
+// SetURLBase sets the URLBase for the Service.
+func (srv *Service) SetURLBase(urlBase *url.URL) {
+ srv.SCPDURL.SetURLBase(urlBase)
+ srv.ControlURL.SetURLBase(urlBase)
+ srv.EventSubURL.SetURLBase(urlBase)
+}
+
+func (srv *Service) String() string {
+ return fmt.Sprintf("Service ID %s : %s", srv.ServiceId, srv.ServiceType)
+}
+
+// RequestSCDP requests the SCPD (soap actions and state variables description)
+// for the service.
+func (srv *Service) RequestSCDP() (*scpd.SCPD, error) {
+ if !srv.SCPDURL.Ok {
+ return nil, errors.New("bad/missing SCPD URL, or no URLBase has been set")
+ }
+ s := new(scpd.SCPD)
+ if err := requestXml(srv.SCPDURL.URL.String(), scpd.SCPDXMLNamespace, s); err != nil {
+ return nil, err
+ }
+ return s, nil
+}
+
+func (srv *Service) NewSOAPClient() *soap.SOAPClient {
+ return soap.NewSOAPClient(srv.ControlURL.URL)
+}
+
+// URLField is a URL that is part of a device description.
+type URLField struct {
+ URL url.URL `xml:"-"`
+ Ok bool `xml:"-"`
+ Str string `xml:",chardata"`
+}
+
+func (uf *URLField) SetURLBase(urlBase *url.URL) {
+ refUrl, err := url.Parse(uf.Str)
+ if err != nil {
+ uf.URL = url.URL{}
+ uf.Ok = false
+ return
+ }
+
+ uf.URL = *urlBase.ResolveReference(refUrl)
+ uf.Ok = true
+}
diff --git a/vendor/github.com/huin/goupnp/goupnp.go b/vendor/github.com/huin/goupnp/goupnp.go
new file mode 100644
index 000000000..fcb8dcd23
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/goupnp.go
@@ -0,0 +1,131 @@
+// goupnp is an implementation of a client for various UPnP services.
+//
+// For most uses, it is recommended to use the code-generated packages under
+// github.com/huin/goupnp/dcps. Example use is shown at
+// http://godoc.org/github.com/huin/goupnp/example
+//
+// A commonly used client is internetgateway1.WANPPPConnection1:
+// http://godoc.org/github.com/huin/goupnp/dcps/internetgateway1#WANPPPConnection1
+//
+// Currently only a couple of schemas have code generated for them from the
+// UPnP example XML specifications. Not all methods will work on these clients,
+// because the generated stubs contain the full set of specified methods from
+// the XML specifications, and the discovered services will likely support a
+// subset of those methods.
+package goupnp
+
+import (
+ "encoding/xml"
+ "fmt"
+ "net/http"
+ "net/url"
+ "time"
+
+ "golang.org/x/net/html/charset"
+
+ "github.com/huin/goupnp/httpu"
+ "github.com/huin/goupnp/ssdp"
+)
+
+// ContextError is an error that wraps an error with some context information.
+type ContextError struct {
+ Context string
+ Err error
+}
+
+func (err ContextError) Error() string {
+ return fmt.Sprintf("%s: %v", err.Context, err.Err)
+}
+
+// MaybeRootDevice contains either a RootDevice or an error.
+type MaybeRootDevice struct {
+ // Set iff Err == nil.
+ Root *RootDevice
+
+ // The location the device was discovered at. This can be used with
+ // DeviceByURL, assuming the device is still present. A location represents
+ // the discovery of a device, regardless of if there was an error probing it.
+ Location *url.URL
+
+ // Any error encountered probing a discovered device.
+ Err error
+}
+
+// DiscoverDevices attempts to find targets of the given type. This is
+// typically the entry-point for this package. searchTarget is typically a URN
+// in the form "urn:schemas-upnp-org:device:..." or
+// "urn:schemas-upnp-org:service:...". A single error is returned for errors
+// while attempting to send the query. An error or RootDevice is returned for
+// each discovered RootDevice.
+func DiscoverDevices(searchTarget string) ([]MaybeRootDevice, error) {
+ httpu, err := httpu.NewHTTPUClient()
+ if err != nil {
+ return nil, err
+ }
+ defer httpu.Close()
+ responses, err := ssdp.SSDPRawSearch(httpu, string(searchTarget), 2, 3)
+ if err != nil {
+ return nil, err
+ }
+
+ results := make([]MaybeRootDevice, len(responses))
+ for i, response := range responses {
+ maybe := &results[i]
+ loc, err := response.Location()
+ if err != nil {
+ maybe.Err = ContextError{"unexpected bad location from search", err}
+ continue
+ }
+ maybe.Location = loc
+ if root, err := DeviceByURL(loc); err != nil {
+ maybe.Err = err
+ } else {
+ maybe.Root = root
+ }
+ }
+
+ return results, nil
+}
+
+func DeviceByURL(loc *url.URL) (*RootDevice, error) {
+ locStr := loc.String()
+ root := new(RootDevice)
+ if err := requestXml(locStr, DeviceXMLNamespace, root); err != nil {
+ return nil, ContextError{fmt.Sprintf("error requesting root device details from %q", locStr), err}
+ }
+ var urlBaseStr string
+ if root.URLBaseStr != "" {
+ urlBaseStr = root.URLBaseStr
+ } else {
+ urlBaseStr = locStr
+ }
+ urlBase, err := url.Parse(urlBaseStr)
+ if err != nil {
+ return nil, ContextError{fmt.Sprintf("error parsing location URL %q", locStr), err}
+ }
+ root.SetURLBase(urlBase)
+ return root, nil
+}
+
+func requestXml(url string, defaultSpace string, doc interface{}) error {
+ timeout := time.Duration(3 * time.Second)
+ client := http.Client{
+ Timeout: timeout,
+ }
+ resp, err := client.Get(url)
+ if err != nil {
+ return err
+ }
+ defer resp.Body.Close()
+
+ if resp.StatusCode != 200 {
+ return fmt.Errorf("goupnp: got response status %s from %q",
+ resp.Status, url)
+ }
+
+ decoder := xml.NewDecoder(resp.Body)
+ decoder.DefaultSpace = defaultSpace
+ decoder.CharsetReader = charset.NewReaderLabel
+
+ return decoder.Decode(doc)
+}
diff --git a/vendor/github.com/huin/goupnp/httpu/httpu.go b/vendor/github.com/huin/goupnp/httpu/httpu.go
new file mode 100644
index 000000000..f52dad68b
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/httpu/httpu.go
@@ -0,0 +1,132 @@
+package httpu
+
+import (
+ "bufio"
+ "bytes"
+ "errors"
+ "fmt"
+ "log"
+ "net"
+ "net/http"
+ "sync"
+ "time"
+)
+
+// HTTPUClient is a client for dealing with HTTPU (HTTP over UDP). Its typical
+// function is for HTTPMU, and particularly SSDP.
+type HTTPUClient struct {
+ connLock sync.Mutex // Protects use of conn.
+ conn net.PacketConn
+}
+
+// NewHTTPUClient creates a new HTTPUClient, opening up a new UDP socket for the
+// purpose.
+func NewHTTPUClient() (*HTTPUClient, error) {
+ conn, err := net.ListenPacket("udp", ":0")
+ if err != nil {
+ return nil, err
+ }
+ return &HTTPUClient{conn: conn}, nil
+}
+
+// NewHTTPUClientAddr creates a new HTTPUClient which will broadcast packets
+// from the specified address, opening up a new UDP socket for the purpose
+func NewHTTPUClientAddr(addr string) (*HTTPUClient, error) {
+ ip := net.ParseIP(addr)
+ if ip == nil {
+ return nil, errors.New("Invalid listening address")
+ }
+ conn, err := net.ListenPacket("udp", ip.String()+":0")
+ if err != nil {
+ return nil, err
+ }
+ return &HTTPUClient{conn: conn}, nil
+}
+
+// Close shuts down the client. The client will no longer be useful following
+// this.
+func (httpu *HTTPUClient) Close() error {
+ httpu.connLock.Lock()
+ defer httpu.connLock.Unlock()
+ return httpu.conn.Close()
+}
+
+// Do performs a request. The timeout is how long to wait for before returning
+// the responses that were received. An error is only returned for failing to
+// send the request. Failures in receipt simply do not add to the resulting
+// responses.
+//
+// Note that at present only one concurrent connection will happen per
+// HTTPUClient.
+func (httpu *HTTPUClient) Do(req *http.Request, timeout time.Duration, numSends int) ([]*http.Response, error) {
+ httpu.connLock.Lock()
+ defer httpu.connLock.Unlock()
+
+ // Create the request. This is a subset of what http.Request.Write does
+ // deliberately to avoid creating extra fields which may confuse some
+ // devices.
+ var requestBuf bytes.Buffer
+ method := req.Method
+ if method == "" {
+ method = "GET"
+ }
+ if _, err := fmt.Fprintf(&requestBuf, "%s %s HTTP/1.1\r\n", method, req.URL.RequestURI()); err != nil {
+ return nil, err
+ }
+ if err := req.Header.Write(&requestBuf); err != nil {
+ return nil, err
+ }
+ if _, err := requestBuf.Write([]byte{'\r', '\n'}); err != nil {
+ return nil, err
+ }
+
+ destAddr, err := net.ResolveUDPAddr("udp", req.Host)
+ if err != nil {
+ return nil, err
+ }
+ if err = httpu.conn.SetDeadline(time.Now().Add(timeout)); err != nil {
+ return nil, err
+ }
+
+ // Send request.
+ for i := 0; i < numSends; i++ {
+ if n, err := httpu.conn.WriteTo(requestBuf.Bytes(), destAddr); err != nil {
+ return nil, err
+ } else if n < len(requestBuf.Bytes()) {
+ return nil, fmt.Errorf("httpu: wrote %d bytes rather than full %d in request",
+ n, len(requestBuf.Bytes()))
+ }
+ time.Sleep(5 * time.Millisecond)
+ }
+
+ // Await responses until timeout.
+ var responses []*http.Response
+ responseBytes := make([]byte, 2048)
+ for {
+ // 2048 bytes should be sufficient for most networks.
+ n, _, err := httpu.conn.ReadFrom(responseBytes)
+ if err != nil {
+ if err, ok := err.(net.Error); ok {
+ if err.Timeout() {
+ break
+ }
+ if err.Temporary() {
+ // Sleep in case this is a persistent error to avoid pegging CPU until deadline.
+ time.Sleep(10 * time.Millisecond)
+ continue
+ }
+ }
+ return nil, err
+ }
+
+ // Parse response.
+ response, err := http.ReadResponse(bufio.NewReader(bytes.NewBuffer(responseBytes[:n])), req)
+ if err != nil {
+ log.Print("httpu: error while parsing response: %v", err)
+ continue
+ }
+
+ responses = append(responses, response)
+ }
+ return responses, err
+}
diff --git a/vendor/github.com/huin/goupnp/httpu/serve.go b/vendor/github.com/huin/goupnp/httpu/serve.go
new file mode 100644
index 000000000..9f67af85b
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/httpu/serve.go
@@ -0,0 +1,108 @@
+package httpu
+
+import (
+ "bufio"
+ "bytes"
+ "log"
+ "net"
+ "net/http"
+ "regexp"
+)
+
+const (
+ DefaultMaxMessageBytes = 2048
+)
+
+var (
+ trailingWhitespaceRx = regexp.MustCompile(" +\r\n")
+ crlf = []byte("\r\n")
+)
+
+// Handler is the interface by which received HTTPU messages are passed to
+// handling code.
+type Handler interface {
+ // ServeMessage is called for each HTTPU message received. peerAddr contains
+ // the address that the message was received from.
+ ServeMessage(r *http.Request)
+}
+
+// HandlerFunc is a function-to-Handler adapter.
+type HandlerFunc func(r *http.Request)
+
+func (f HandlerFunc) ServeMessage(r *http.Request) {
+ f(r)
+}
+
+// A Server defines parameters for running an HTTPU server.
+type Server struct {
+ Addr string // UDP address to listen on
+ Multicast bool // Should listen for multicast?
+ Interface *net.Interface // Network interface to listen on for multicast, nil for default multicast interface
+ Handler Handler // handler to invoke
+ MaxMessageBytes int // maximum number of bytes to read from a packet, DefaultMaxMessageBytes if 0
+}
+
+// ListenAndServe listens on the UDP network address srv.Addr. If srv.Multicast
+// is true, then a multicast UDP listener will be used on srv.Interface (or
+// default interface if nil).
+func (srv *Server) ListenAndServe() error {
+ var err error
+
+ var addr *net.UDPAddr
+ if addr, err = net.ResolveUDPAddr("udp", srv.Addr); err != nil {
+ log.Fatal(err)
+ }
+
+ var conn net.PacketConn
+ if srv.Multicast {
+ if conn, err = net.ListenMulticastUDP("udp", srv.Interface, addr); err != nil {
+ return err
+ }
+ } else {
+ if conn, err = net.ListenUDP("udp", addr); err != nil {
+ return err
+ }
+ }
+
+ return srv.Serve(conn)
+}
+
+// Serve messages received on the given packet listener to the srv.Handler.
+func (srv *Server) Serve(l net.PacketConn) error {
+ maxMessageBytes := DefaultMaxMessageBytes
+ if srv.MaxMessageBytes != 0 {
+ maxMessageBytes = srv.MaxMessageBytes
+ }
+ for {
+ buf := make([]byte, maxMessageBytes)
+ n, peerAddr, err := l.ReadFrom(buf)
+ if err != nil {
+ return err
+ }
+ buf = buf[:n]
+
+ go func(buf []byte, peerAddr net.Addr) {
+ // At least one router's UPnP implementation has added a trailing space
+ // after "HTTP/1.1" - trim it.
+ buf = trailingWhitespaceRx.ReplaceAllLiteral(buf, crlf)
+
+ req, err := http.ReadRequest(bufio.NewReader(bytes.NewBuffer(buf)))
+ if err != nil {
+ log.Printf("httpu: Failed to parse request: %v", err)
+ return
+ }
+ req.RemoteAddr = peerAddr.String()
+ srv.Handler.ServeMessage(req)
+ // No need to call req.Body.Close - underlying reader is bytes.Buffer.
+ }(buf, peerAddr)
+ }
+}
+
+// Serve messages received on the given packet listener to the given handler.
+func Serve(l net.PacketConn, handler Handler) error {
+ srv := Server{
+ Handler: handler,
+ MaxMessageBytes: DefaultMaxMessageBytes,
+ }
+ return srv.Serve(l)
+}
diff --git a/vendor/github.com/huin/goupnp/scpd/scpd.go b/vendor/github.com/huin/goupnp/scpd/scpd.go
new file mode 100644
index 000000000..c9d2e69e8
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/scpd/scpd.go
@@ -0,0 +1,167 @@
+package scpd
+
+import (
+ "encoding/xml"
+ "strings"
+)
+
+const (
+ SCPDXMLNamespace = "urn:schemas-upnp-org:service-1-0"
+)
+
+func cleanWhitespace(s *string) {
+ *s = strings.TrimSpace(*s)
+}
+
+// SCPD is the service description as described by section 2.5 "Service
+// description" in
+// http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.1.pdf
+type SCPD struct {
+ XMLName xml.Name `xml:"scpd"`
+ ConfigId string `xml:"configId,attr"`
+ SpecVersion SpecVersion `xml:"specVersion"`
+ Actions []Action `xml:"actionList>action"`
+ StateVariables []StateVariable `xml:"serviceStateTable>stateVariable"`
+}
+
+// Clean attempts to remove stray whitespace etc. in the structure. It seems
+// unfortunately common for stray whitespace to be present in SCPD documents,
+// this method attempts to make it easy to clean them out.
+func (scpd *SCPD) Clean() {
+ cleanWhitespace(&scpd.ConfigId)
+ for i := range scpd.Actions {
+ scpd.Actions[i].clean()
+ }
+ for i := range scpd.StateVariables {
+ scpd.StateVariables[i].clean()
+ }
+}
+
+func (scpd *SCPD) GetStateVariable(variable string) *StateVariable {
+ for i := range scpd.StateVariables {
+ v := &scpd.StateVariables[i]
+ if v.Name == variable {
+ return v
+ }
+ }
+ return nil
+}
+
+func (scpd *SCPD) GetAction(action string) *Action {
+ for i := range scpd.Actions {
+ a := &scpd.Actions[i]
+ if a.Name == action {
+ return a
+ }
+ }
+ return nil
+}
+
+// SpecVersion is part of a SCPD document, describes the version of the
+// specification that the data adheres to.
+type SpecVersion struct {
+ Major int32 `xml:"major"`
+ Minor int32 `xml:"minor"`
+}
+
+type Action struct {
+ Name string `xml:"name"`
+ Arguments []Argument `xml:"argumentList>argument"`
+}
+
+func (action *Action) clean() {
+ cleanWhitespace(&action.Name)
+ for i := range action.Arguments {
+ action.Arguments[i].clean()
+ }
+}
+
+func (action *Action) InputArguments() []*Argument {
+ var result []*Argument
+ for i := range action.Arguments {
+ arg := &action.Arguments[i]
+ if arg.IsInput() {
+ result = append(result, arg)
+ }
+ }
+ return result
+}
+
+func (action *Action) OutputArguments() []*Argument {
+ var result []*Argument
+ for i := range action.Arguments {
+ arg := &action.Arguments[i]
+ if arg.IsOutput() {
+ result = append(result, arg)
+ }
+ }
+ return result
+}
+
+type Argument struct {
+ Name string `xml:"name"`
+ Direction string `xml:"direction"` // in|out
+ RelatedStateVariable string `xml:"relatedStateVariable"` // ?
+ Retval string `xml:"retval"` // ?
+}
+
+func (arg *Argument) clean() {
+ cleanWhitespace(&arg.Name)
+ cleanWhitespace(&arg.Direction)
+ cleanWhitespace(&arg.RelatedStateVariable)
+ cleanWhitespace(&arg.Retval)
+}
+
+func (arg *Argument) IsInput() bool {
+ return arg.Direction == "in"
+}
+
+func (arg *Argument) IsOutput() bool {
+ return arg.Direction == "out"
+}
+
+type StateVariable struct {
+ Name string `xml:"name"`
+ SendEvents string `xml:"sendEvents,attr"` // yes|no
+ Multicast string `xml:"multicast,attr"` // yes|no
+ DataType DataType `xml:"dataType"`
+ DefaultValue string `xml:"defaultValue"`
+ AllowedValueRange *AllowedValueRange `xml:"allowedValueRange"`
+ AllowedValues []string `xml:"allowedValueList>allowedValue"`
+}
+
+func (v *StateVariable) clean() {
+ cleanWhitespace(&v.Name)
+ cleanWhitespace(&v.SendEvents)
+ cleanWhitespace(&v.Multicast)
+ v.DataType.clean()
+ cleanWhitespace(&v.DefaultValue)
+ if v.AllowedValueRange != nil {
+ v.AllowedValueRange.clean()
+ }
+ for i := range v.AllowedValues {
+ cleanWhitespace(&v.AllowedValues[i])
+ }
+}
+
+type AllowedValueRange struct {
+ Minimum string `xml:"minimum"`
+ Maximum string `xml:"maximum"`
+ Step string `xml:"step"`
+}
+
+func (r *AllowedValueRange) clean() {
+ cleanWhitespace(&r.Minimum)
+ cleanWhitespace(&r.Maximum)
+ cleanWhitespace(&r.Step)
+}
+
+type DataType struct {
+ Name string `xml:",chardata"`
+ Type string `xml:"type,attr"`
+}
+
+func (dt *DataType) clean() {
+ cleanWhitespace(&dt.Name)
+ cleanWhitespace(&dt.Type)
+}
diff --git a/vendor/github.com/huin/goupnp/service_client.go b/vendor/github.com/huin/goupnp/service_client.go
new file mode 100644
index 000000000..9111c93cb
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/service_client.go
@@ -0,0 +1,88 @@
+package goupnp
+
+import (
+ "fmt"
+ "net/url"
+
+ "github.com/huin/goupnp/soap"
+)
+
+// ServiceClient is a SOAP client, root device and the service for the SOAP
+// client rolled into one value. The root device, location, and service are
+// intended to be informational. Location can be used to later recreate a
+// ServiceClient with NewServiceClientByURL if the service is still present;
+// bypassing the discovery process.
+type ServiceClient struct {
+ SOAPClient *soap.SOAPClient
+ RootDevice *RootDevice
+ Location *url.URL
+ Service *Service
+}
+
+// NewServiceClients discovers services, and returns clients for them. err will
+// report any error with the discovery process (blocking any device/service
+// discovery), errors reports errors on a per-root-device basis.
+func NewServiceClients(searchTarget string) (clients []ServiceClient, errors []error, err error) {
+ var maybeRootDevices []MaybeRootDevice
+ if maybeRootDevices, err = DiscoverDevices(searchTarget); err != nil {
+ return
+ }
+
+ clients = make([]ServiceClient, 0, len(maybeRootDevices))
+
+ for _, maybeRootDevice := range maybeRootDevices {
+ if maybeRootDevice.Err != nil {
+ errors = append(errors, maybeRootDevice.Err)
+ continue
+ }
+
+ deviceClients, err := NewServiceClientsFromRootDevice(maybeRootDevice.Root, maybeRootDevice.Location, searchTarget)
+ if err != nil {
+ errors = append(errors, err)
+ continue
+ }
+ clients = append(clients, deviceClients...)
+ }
+
+ return
+}
+
+// NewServiceClientsByURL creates client(s) for the given service URN, for a
+// root device at the given URL.
+func NewServiceClientsByURL(loc *url.URL, searchTarget string) ([]ServiceClient, error) {
+ rootDevice, err := DeviceByURL(loc)
+ if err != nil {
+ return nil, err
+ }
+ return NewServiceClientsFromRootDevice(rootDevice, loc, searchTarget)
+}
+
+// NewServiceClientsFromDevice creates client(s) for the given service URN, in
+// a given root device. The loc parameter is simply assigned to the
+// Location attribute of the returned ServiceClient(s).
+func NewServiceClientsFromRootDevice(rootDevice *RootDevice, loc *url.URL, searchTarget string) ([]ServiceClient, error) {
+ device := &rootDevice.Device
+ srvs := device.FindService(searchTarget)
+ if len(srvs) == 0 {
+ return nil, fmt.Errorf("goupnp: service %q not found within device %q (UDN=%q)",
+ searchTarget, device.FriendlyName, device.UDN)
+ }
+
+ clients := make([]ServiceClient, 0, len(srvs))
+ for _, srv := range srvs {
+ clients = append(clients, ServiceClient{
+ SOAPClient: srv.NewSOAPClient(),
+ RootDevice: rootDevice,
+ Location: loc,
+ Service: srv,
+ })
+ }
+ return clients, nil
+}
+
+// GetServiceClient returns the ServiceClient itself. This is provided so that the
+// service client attributes can be accessed via an interface method on a
+// wrapping type.
+func (client *ServiceClient) GetServiceClient() *ServiceClient {
+ return client
+}
diff --git a/vendor/github.com/huin/goupnp/soap/soap.go b/vendor/github.com/huin/goupnp/soap/soap.go
new file mode 100644
index 000000000..815610734
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/soap/soap.go
@@ -0,0 +1,157 @@
+// Definition for the SOAP structure required for UPnP's SOAP usage.
+
+package soap
+
+import (
+ "bytes"
+ "encoding/xml"
+ "fmt"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "reflect"
+)
+
+const (
+ soapEncodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
+ soapPrefix = xml.Header + `<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body>`
+ soapSuffix = `</s:Body></s:Envelope>`
+)
+
+type SOAPClient struct {
+ EndpointURL url.URL
+ HTTPClient http.Client
+}
+
+func NewSOAPClient(endpointURL url.URL) *SOAPClient {
+ return &SOAPClient{
+ EndpointURL: endpointURL,
+ }
+}
+
+// PerformSOAPAction makes a SOAP request, with the given action.
+// inAction and outAction must both be pointers to structs with string fields
+// only.
+func (client *SOAPClient) PerformAction(actionNamespace, actionName string, inAction interface{}, outAction interface{}) error {
+ requestBytes, err := encodeRequestAction(actionNamespace, actionName, inAction)
+ if err != nil {
+ return err
+ }
+
+ response, err := client.HTTPClient.Do(&http.Request{
+ Method: "POST",
+ URL: &client.EndpointURL,
+ Header: http.Header{
+ "SOAPACTION": []string{`"` + actionNamespace + "#" + actionName + `"`},
+ "CONTENT-TYPE": []string{"text/xml; charset=\"utf-8\""},
+ },
+ Body: ioutil.NopCloser(bytes.NewBuffer(requestBytes)),
+ // Set ContentLength to avoid chunked encoding - some servers might not support it.
+ ContentLength: int64(len(requestBytes)),
+ })
+ if err != nil {
+ return fmt.Errorf("goupnp: error performing SOAP HTTP request: %v", err)
+ }
+ defer response.Body.Close()
+ if response.StatusCode != 200 {
+ return fmt.Errorf("goupnp: SOAP request got HTTP %s", response.Status)
+ }
+
+ responseEnv := newSOAPEnvelope()
+ decoder := xml.NewDecoder(response.Body)
+ if err := decoder.Decode(responseEnv); err != nil {
+ return fmt.Errorf("goupnp: error decoding response body: %v", err)
+ }
+
+ if responseEnv.Body.Fault != nil {
+ return responseEnv.Body.Fault
+ }
+
+ if outAction != nil {
+ if err := xml.Unmarshal(responseEnv.Body.RawAction, outAction); err != nil {
+ return fmt.Errorf("goupnp: error unmarshalling out action: %v, %v", err, responseEnv.Body.RawAction)
+ }
+ }
+
+ return nil
+}
+
+// newSOAPAction creates a soapEnvelope with the given action and arguments.
+func newSOAPEnvelope() *soapEnvelope {
+ return &soapEnvelope{
+ EncodingStyle: soapEncodingStyle,
+ }
+}
+
+// encodeRequestAction is a hacky way to create an encoded SOAP envelope
+// containing the given action. Experiments with one router have shown that it
+// 500s for requests where the outer default xmlns is set to the SOAP
+// namespace, and then reassigning the default namespace within that to the
+// service namespace. Hand-coding the outer XML to work-around this.
+func encodeRequestAction(actionNamespace, actionName string, inAction interface{}) ([]byte, error) {
+ requestBuf := new(bytes.Buffer)
+ requestBuf.WriteString(soapPrefix)
+ requestBuf.WriteString(`<u:`)
+ xml.EscapeText(requestBuf, []byte(actionName))
+ requestBuf.WriteString(` xmlns:u="`)
+ xml.EscapeText(requestBuf, []byte(actionNamespace))
+ requestBuf.WriteString(`">`)
+ if inAction != nil {
+ if err := encodeRequestArgs(requestBuf, inAction); err != nil {
+ return nil, err
+ }
+ }
+ requestBuf.WriteString(`</u:`)
+ xml.EscapeText(requestBuf, []byte(actionName))
+ requestBuf.WriteString(`>`)
+ requestBuf.WriteString(soapSuffix)
+ return requestBuf.Bytes(), nil
+}
+
+func encodeRequestArgs(w *bytes.Buffer, inAction interface{}) error {
+ in := reflect.Indirect(reflect.ValueOf(inAction))
+ if in.Kind() != reflect.Struct {
+ return fmt.Errorf("goupnp: SOAP inAction is not a struct but of type %v", in.Type())
+ }
+ enc := xml.NewEncoder(w)
+ nFields := in.NumField()
+ inType := in.Type()
+ for i := 0; i < nFields; i++ {
+ field := inType.Field(i)
+ argName := field.Name
+ if nameOverride := field.Tag.Get("soap"); nameOverride != "" {
+ argName = nameOverride
+ }
+ value := in.Field(i)
+ if value.Kind() != reflect.String {
+ return fmt.Errorf("goupnp: SOAP arg %q is not of type string, but of type %v", argName, value.Type())
+ }
+ if err := enc.EncodeElement(value.Interface(), xml.StartElement{xml.Name{"", argName}, nil}); err != nil {
+ return fmt.Errorf("goupnp: error encoding SOAP arg %q: %v", argName, err)
+ }
+ }
+ enc.Flush()
+ return nil
+}
+
+type soapEnvelope struct {
+ XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"`
+ EncodingStyle string `xml:"http://schemas.xmlsoap.org/soap/envelope/ encodingStyle,attr"`
+ Body soapBody `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"`
+}
+
+type soapBody struct {
+ Fault *SOAPFaultError `xml:"Fault"`
+ RawAction []byte `xml:",innerxml"`
+}
+
+// SOAPFaultError implements error, and contains SOAP fault information.
+type SOAPFaultError struct {
+ FaultCode string `xml:"faultcode"`
+ FaultString string `xml:"faultstring"`
+ Detail string `xml:"detail"`
+}
+
+func (err *SOAPFaultError) Error() string {
+ return fmt.Sprintf("SOAP fault: %s", err.FaultString)
+}
diff --git a/vendor/github.com/huin/goupnp/soap/types.go b/vendor/github.com/huin/goupnp/soap/types.go
new file mode 100644
index 000000000..fdbeec8d4
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/soap/types.go
@@ -0,0 +1,519 @@
+package soap
+
+import (
+ "encoding/base64"
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "net/url"
+ "regexp"
+ "strconv"
+ "strings"
+ "time"
+ "unicode/utf8"
+)
+
+var (
+ // localLoc acts like time.Local for this package, but is faked out by the
+ // unit tests to ensure that things stay constant (especially when running
+ // this test in a place where local time is UTC which might mask bugs).
+ localLoc = time.Local
+)
+
+func MarshalUi1(v uint8) (string, error) {
+ return strconv.FormatUint(uint64(v), 10), nil
+}
+
+func UnmarshalUi1(s string) (uint8, error) {
+ v, err := strconv.ParseUint(s, 10, 8)
+ return uint8(v), err
+}
+
+func MarshalUi2(v uint16) (string, error) {
+ return strconv.FormatUint(uint64(v), 10), nil
+}
+
+func UnmarshalUi2(s string) (uint16, error) {
+ v, err := strconv.ParseUint(s, 10, 16)
+ return uint16(v), err
+}
+
+func MarshalUi4(v uint32) (string, error) {
+ return strconv.FormatUint(uint64(v), 10), nil
+}
+
+func UnmarshalUi4(s string) (uint32, error) {
+ v, err := strconv.ParseUint(s, 10, 32)
+ return uint32(v), err
+}
+
+func MarshalI1(v int8) (string, error) {
+ return strconv.FormatInt(int64(v), 10), nil
+}
+
+func UnmarshalI1(s string) (int8, error) {
+ v, err := strconv.ParseInt(s, 10, 8)
+ return int8(v), err
+}
+
+func MarshalI2(v int16) (string, error) {
+ return strconv.FormatInt(int64(v), 10), nil
+}
+
+func UnmarshalI2(s string) (int16, error) {
+ v, err := strconv.ParseInt(s, 10, 16)
+ return int16(v), err
+}
+
+func MarshalI4(v int32) (string, error) {
+ return strconv.FormatInt(int64(v), 10), nil
+}
+
+func UnmarshalI4(s string) (int32, error) {
+ v, err := strconv.ParseInt(s, 10, 32)
+ return int32(v), err
+}
+
+func MarshalInt(v int64) (string, error) {
+ return strconv.FormatInt(v, 10), nil
+}
+
+func UnmarshalInt(s string) (int64, error) {
+ return strconv.ParseInt(s, 10, 64)
+}
+
+func MarshalR4(v float32) (string, error) {
+ return strconv.FormatFloat(float64(v), 'G', -1, 32), nil
+}
+
+func UnmarshalR4(s string) (float32, error) {
+ v, err := strconv.ParseFloat(s, 32)
+ return float32(v), err
+}
+
+func MarshalR8(v float64) (string, error) {
+ return strconv.FormatFloat(v, 'G', -1, 64), nil
+}
+
+func UnmarshalR8(s string) (float64, error) {
+ v, err := strconv.ParseFloat(s, 64)
+ return float64(v), err
+}
+
+// MarshalFixed14_4 marshals float64 to SOAP "fixed.14.4" type.
+func MarshalFixed14_4(v float64) (string, error) {
+ if v >= 1e14 || v <= -1e14 {
+ return "", fmt.Errorf("soap fixed14.4: value %v out of bounds", v)
+ }
+ return strconv.FormatFloat(v, 'f', 4, 64), nil
+}
+
+// UnmarshalFixed14_4 unmarshals float64 from SOAP "fixed.14.4" type.
+func UnmarshalFixed14_4(s string) (float64, error) {
+ v, err := strconv.ParseFloat(s, 64)
+ if err != nil {
+ return 0, err
+ }
+ if v >= 1e14 || v <= -1e14 {
+ return 0, fmt.Errorf("soap fixed14.4: value %q out of bounds", s)
+ }
+ return v, nil
+}
+
+// MarshalChar marshals rune to SOAP "char" type.
+func MarshalChar(v rune) (string, error) {
+ if v == 0 {
+ return "", errors.New("soap char: rune 0 is not allowed")
+ }
+ return string(v), nil
+}
+
+// UnmarshalChar unmarshals rune from SOAP "char" type.
+func UnmarshalChar(s string) (rune, error) {
+ if len(s) == 0 {
+ return 0, errors.New("soap char: got empty string")
+ }
+ r, n := utf8.DecodeRune([]byte(s))
+ if n != len(s) {
+ return 0, fmt.Errorf("soap char: value %q is not a single rune", s)
+ }
+ return r, nil
+}
+
+func MarshalString(v string) (string, error) {
+ return v, nil
+}
+
+func UnmarshalString(v string) (string, error) {
+ return v, nil
+}
+
+func parseInt(s string, err *error) int {
+ v, parseErr := strconv.ParseInt(s, 10, 64)
+ if parseErr != nil {
+ *err = parseErr
+ }
+ return int(v)
+}
+
+var dateRegexps = []*regexp.Regexp{
+ // yyyy[-mm[-dd]]
+ regexp.MustCompile(`^(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?$`),
+ // yyyy[mm[dd]]
+ regexp.MustCompile(`^(\d{4})(?:(\d{2})(?:(\d{2}))?)?$`),
+}
+
+func parseDateParts(s string) (year, month, day int, err error) {
+ var parts []string
+ for _, re := range dateRegexps {
+ parts = re.FindStringSubmatch(s)
+ if parts != nil {
+ break
+ }
+ }
+ if parts == nil {
+ err = fmt.Errorf("soap date: value %q is not in a recognized ISO8601 date format", s)
+ return
+ }
+
+ year = parseInt(parts[1], &err)
+ month = 1
+ day = 1
+ if len(parts[2]) != 0 {
+ month = parseInt(parts[2], &err)
+ if len(parts[3]) != 0 {
+ day = parseInt(parts[3], &err)
+ }
+ }
+
+ if err != nil {
+ err = fmt.Errorf("soap date: %q: %v", s, err)
+ }
+
+ return
+}
+
+var timeRegexps = []*regexp.Regexp{
+ // hh[:mm[:ss]]
+ regexp.MustCompile(`^(\d{2})(?::(\d{2})(?::(\d{2}))?)?$`),
+ // hh[mm[ss]]
+ regexp.MustCompile(`^(\d{2})(?:(\d{2})(?:(\d{2}))?)?$`),
+}
+
+func parseTimeParts(s string) (hour, minute, second int, err error) {
+ var parts []string
+ for _, re := range timeRegexps {
+ parts = re.FindStringSubmatch(s)
+ if parts != nil {
+ break
+ }
+ }
+ if parts == nil {
+ err = fmt.Errorf("soap time: value %q is not in ISO8601 time format", s)
+ return
+ }
+
+ hour = parseInt(parts[1], &err)
+ if len(parts[2]) != 0 {
+ minute = parseInt(parts[2], &err)
+ if len(parts[3]) != 0 {
+ second = parseInt(parts[3], &err)
+ }
+ }
+
+ if err != nil {
+ err = fmt.Errorf("soap time: %q: %v", s, err)
+ }
+
+ return
+}
+
+// (+|-)hh[[:]mm]
+var timezoneRegexp = regexp.MustCompile(`^([+-])(\d{2})(?::?(\d{2}))?$`)
+
+func parseTimezone(s string) (offset int, err error) {
+ if s == "Z" {
+ return 0, nil
+ }
+ parts := timezoneRegexp.FindStringSubmatch(s)
+ if parts == nil {
+ err = fmt.Errorf("soap timezone: value %q is not in ISO8601 timezone format", s)
+ return
+ }
+
+ offset = parseInt(parts[2], &err) * 3600
+ if len(parts[3]) != 0 {
+ offset += parseInt(parts[3], &err) * 60
+ }
+ if parts[1] == "-" {
+ offset = -offset
+ }
+
+ if err != nil {
+ err = fmt.Errorf("soap timezone: %q: %v", s, err)
+ }
+
+ return
+}
+
+var completeDateTimeZoneRegexp = regexp.MustCompile(`^([^T]+)(?:T([^-+Z]+)(.+)?)?$`)
+
+// splitCompleteDateTimeZone splits date, time and timezone apart from an
+// ISO8601 string. It does not ensure that the contents of each part are
+// correct, it merely splits on certain delimiters.
+// e.g "2010-09-08T12:15:10+0700" => "2010-09-08", "12:15:10", "+0700".
+// Timezone can only be present if time is also present.
+func splitCompleteDateTimeZone(s string) (dateStr, timeStr, zoneStr string, err error) {
+ parts := completeDateTimeZoneRegexp.FindStringSubmatch(s)
+ if parts == nil {
+ err = fmt.Errorf("soap date/time/zone: value %q is not in ISO8601 datetime format", s)
+ return
+ }
+ dateStr = parts[1]
+ timeStr = parts[2]
+ zoneStr = parts[3]
+ return
+}
+
+// MarshalDate marshals time.Time to SOAP "date" type. Note that this converts
+// to local time, and discards the time-of-day components.
+func MarshalDate(v time.Time) (string, error) {
+ return v.In(localLoc).Format("2006-01-02"), nil
+}
+
+var dateFmts = []string{"2006-01-02", "20060102"}
+
+// UnmarshalDate unmarshals time.Time from SOAP "date" type. This outputs the
+// date as midnight in the local time zone.
+func UnmarshalDate(s string) (time.Time, error) {
+ year, month, day, err := parseDateParts(s)
+ if err != nil {
+ return time.Time{}, err
+ }
+ return time.Date(year, time.Month(month), day, 0, 0, 0, 0, localLoc), nil
+}
+
+// TimeOfDay is used in cases where SOAP "time" or "time.tz" is used.
+type TimeOfDay struct {
+ // Duration of time since midnight.
+ FromMidnight time.Duration
+
+ // Set to true if Offset is specified. If false, then the timezone is
+ // unspecified (and by ISO8601 - implies some "local" time).
+ HasOffset bool
+
+ // Offset is non-zero only if time.tz is used. It is otherwise ignored. If
+ // non-zero, then it is regarded as a UTC offset in seconds. Note that the
+ // sub-minutes is ignored by the marshal function.
+ Offset int
+}
+
+// MarshalTimeOfDay marshals TimeOfDay to the "time" type.
+func MarshalTimeOfDay(v TimeOfDay) (string, error) {
+ d := int64(v.FromMidnight / time.Second)
+ hour := d / 3600
+ d = d % 3600
+ minute := d / 60
+ second := d % 60
+
+ return fmt.Sprintf("%02d:%02d:%02d", hour, minute, second), nil
+}
+
+// UnmarshalTimeOfDay unmarshals TimeOfDay from the "time" type.
+func UnmarshalTimeOfDay(s string) (TimeOfDay, error) {
+ t, err := UnmarshalTimeOfDayTz(s)
+ if err != nil {
+ return TimeOfDay{}, err
+ } else if t.HasOffset {
+ return TimeOfDay{}, fmt.Errorf("soap time: value %q contains unexpected timezone")
+ }
+ return t, nil
+}
+
+// MarshalTimeOfDayTz marshals TimeOfDay to the "time.tz" type.
+func MarshalTimeOfDayTz(v TimeOfDay) (string, error) {
+ d := int64(v.FromMidnight / time.Second)
+ hour := d / 3600
+ d = d % 3600
+ minute := d / 60
+ second := d % 60
+
+ tz := ""
+ if v.HasOffset {
+ if v.Offset == 0 {
+ tz = "Z"
+ } else {
+ offsetMins := v.Offset / 60
+ sign := '+'
+ if offsetMins < 1 {
+ offsetMins = -offsetMins
+ sign = '-'
+ }
+ tz = fmt.Sprintf("%c%02d:%02d", sign, offsetMins/60, offsetMins%60)
+ }
+ }
+
+ return fmt.Sprintf("%02d:%02d:%02d%s", hour, minute, second, tz), nil
+}
+
+// UnmarshalTimeOfDayTz unmarshals TimeOfDay from the "time.tz" type.
+func UnmarshalTimeOfDayTz(s string) (tod TimeOfDay, err error) {
+ zoneIndex := strings.IndexAny(s, "Z+-")
+ var timePart string
+ var hasOffset bool
+ var offset int
+ if zoneIndex == -1 {
+ hasOffset = false
+ timePart = s
+ } else {
+ hasOffset = true
+ timePart = s[:zoneIndex]
+ if offset, err = parseTimezone(s[zoneIndex:]); err != nil {
+ return
+ }
+ }
+
+ hour, minute, second, err := parseTimeParts(timePart)
+ if err != nil {
+ return
+ }
+
+ fromMidnight := time.Duration(hour*3600+minute*60+second) * time.Second
+
+ // ISO8601 special case - values up to 24:00:00 are allowed, so using
+ // strictly greater-than for the maximum value.
+ if fromMidnight > 24*time.Hour || minute >= 60 || second >= 60 {
+ return TimeOfDay{}, fmt.Errorf("soap time.tz: value %q has value(s) out of range", s)
+ }
+
+ return TimeOfDay{
+ FromMidnight: time.Duration(hour*3600+minute*60+second) * time.Second,
+ HasOffset: hasOffset,
+ Offset: offset,
+ }, nil
+}
+
+// MarshalDateTime marshals time.Time to SOAP "dateTime" type. Note that this
+// converts to local time.
+func MarshalDateTime(v time.Time) (string, error) {
+ return v.In(localLoc).Format("2006-01-02T15:04:05"), nil
+}
+
+// UnmarshalDateTime unmarshals time.Time from the SOAP "dateTime" type. This
+// returns a value in the local timezone.
+func UnmarshalDateTime(s string) (result time.Time, err error) {
+ dateStr, timeStr, zoneStr, err := splitCompleteDateTimeZone(s)
+ if err != nil {
+ return
+ }
+
+ if len(zoneStr) != 0 {
+ err = fmt.Errorf("soap datetime: unexpected timezone in %q", s)
+ return
+ }
+
+ year, month, day, err := parseDateParts(dateStr)
+ if err != nil {
+ return
+ }
+
+ var hour, minute, second int
+ if len(timeStr) != 0 {
+ hour, minute, second, err = parseTimeParts(timeStr)
+ if err != nil {
+ return
+ }
+ }
+
+ result = time.Date(year, time.Month(month), day, hour, minute, second, 0, localLoc)
+ return
+}
+
+// MarshalDateTimeTz marshals time.Time to SOAP "dateTime.tz" type.
+func MarshalDateTimeTz(v time.Time) (string, error) {
+ return v.Format("2006-01-02T15:04:05-07:00"), nil
+}
+
+// UnmarshalDateTimeTz unmarshals time.Time from the SOAP "dateTime.tz" type.
+// This returns a value in the local timezone when the timezone is unspecified.
+func UnmarshalDateTimeTz(s string) (result time.Time, err error) {
+ dateStr, timeStr, zoneStr, err := splitCompleteDateTimeZone(s)
+ if err != nil {
+ return
+ }
+
+ year, month, day, err := parseDateParts(dateStr)
+ if err != nil {
+ return
+ }
+
+ var hour, minute, second int
+ var location *time.Location = localLoc
+ if len(timeStr) != 0 {
+ hour, minute, second, err = parseTimeParts(timeStr)
+ if err != nil {
+ return
+ }
+ if len(zoneStr) != 0 {
+ var offset int
+ offset, err = parseTimezone(zoneStr)
+ if offset == 0 {
+ location = time.UTC
+ } else {
+ location = time.FixedZone("", offset)
+ }
+ }
+ }
+
+ result = time.Date(year, time.Month(month), day, hour, minute, second, 0, location)
+ return
+}
+
+// MarshalBoolean marshals bool to SOAP "boolean" type.
+func MarshalBoolean(v bool) (string, error) {
+ if v {
+ return "1", nil
+ }
+ return "0", nil
+}
+
+// UnmarshalBoolean unmarshals bool from the SOAP "boolean" type.
+func UnmarshalBoolean(s string) (bool, error) {
+ switch s {
+ case "0", "false", "no":
+ return false, nil
+ case "1", "true", "yes":
+ return true, nil
+ }
+ return false, fmt.Errorf("soap boolean: %q is not a valid boolean value", s)
+}
+
+// MarshalBinBase64 marshals []byte to SOAP "bin.base64" type.
+func MarshalBinBase64(v []byte) (string, error) {
+ return base64.StdEncoding.EncodeToString(v), nil
+}
+
+// UnmarshalBinBase64 unmarshals []byte from the SOAP "bin.base64" type.
+func UnmarshalBinBase64(s string) ([]byte, error) {
+ return base64.StdEncoding.DecodeString(s)
+}
+
+// MarshalBinHex marshals []byte to SOAP "bin.hex" type.
+func MarshalBinHex(v []byte) (string, error) {
+ return hex.EncodeToString(v), nil
+}
+
+// UnmarshalBinHex unmarshals []byte from the SOAP "bin.hex" type.
+func UnmarshalBinHex(s string) ([]byte, error) {
+ return hex.DecodeString(s)
+}
+
+// MarshalURI marshals *url.URL to SOAP "uri" type.
+func MarshalURI(v *url.URL) (string, error) {
+ return v.String(), nil
+}
+
+// UnmarshalURI unmarshals *url.URL from the SOAP "uri" type.
+func UnmarshalURI(s string) (*url.URL, error) {
+ return url.Parse(s)
+}
diff --git a/vendor/github.com/huin/goupnp/ssdp/registry.go b/vendor/github.com/huin/goupnp/ssdp/registry.go
new file mode 100644
index 000000000..2f84beaae
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/ssdp/registry.go
@@ -0,0 +1,312 @@
+package ssdp
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+ "net/url"
+ "regexp"
+ "strconv"
+ "sync"
+ "time"
+
+ "github.com/huin/goupnp/httpu"
+)
+
+const (
+ maxExpiryTimeSeconds = 24 * 60 * 60
+)
+
+var (
+ maxAgeRx = regexp.MustCompile("max-age=([0-9]+)")
+)
+
+const (
+ EventAlive = EventType(iota)
+ EventUpdate
+ EventByeBye
+)
+
+type EventType int8
+
+func (et EventType) String() string {
+ switch et {
+ case EventAlive:
+ return "EventAlive"
+ case EventUpdate:
+ return "EventUpdate"
+ case EventByeBye:
+ return "EventByeBye"
+ default:
+ return fmt.Sprintf("EventUnknown(%d)", int8(et))
+ }
+}
+
+type Update struct {
+ // The USN of the service.
+ USN string
+ // What happened.
+ EventType EventType
+ // The entry, which is nil if the service was not known and
+ // EventType==EventByeBye. The contents of this must not be modified as it is
+ // shared with the registry and other listeners. Once created, the Registry
+ // does not modify the Entry value - any updates are replaced with a new
+ // Entry value.
+ Entry *Entry
+}
+
+type Entry struct {
+ // The address that the entry data was actually received from.
+ RemoteAddr string
+ // Unique Service Name. Identifies a unique instance of a device or service.
+ USN string
+ // Notfication Type. The type of device or service being announced.
+ NT string
+ // Server's self-identifying string.
+ Server string
+ Host string
+ // Location of the UPnP root device description.
+ Location url.URL
+
+ // Despite BOOTID,CONFIGID being required fields, apparently they are not
+ // always set by devices. Set to -1 if not present.
+
+ BootID int32
+ ConfigID int32
+
+ SearchPort uint16
+
+ // When the last update was received for this entry identified by this USN.
+ LastUpdate time.Time
+ // When the last update's cached values are advised to expire.
+ CacheExpiry time.Time
+}
+
+func newEntryFromRequest(r *http.Request) (*Entry, error) {
+ now := time.Now()
+ expiryDuration, err := parseCacheControlMaxAge(r.Header.Get("CACHE-CONTROL"))
+ if err != nil {
+ return nil, fmt.Errorf("ssdp: error parsing CACHE-CONTROL max age: %v", err)
+ }
+
+ loc, err := url.Parse(r.Header.Get("LOCATION"))
+ if err != nil {
+ return nil, fmt.Errorf("ssdp: error parsing entry Location URL: %v", err)
+ }
+
+ bootID, err := parseUpnpIntHeader(r.Header, "BOOTID.UPNP.ORG", -1)
+ if err != nil {
+ return nil, err
+ }
+ configID, err := parseUpnpIntHeader(r.Header, "CONFIGID.UPNP.ORG", -1)
+ if err != nil {
+ return nil, err
+ }
+ searchPort, err := parseUpnpIntHeader(r.Header, "SEARCHPORT.UPNP.ORG", ssdpSearchPort)
+ if err != nil {
+ return nil, err
+ }
+
+ if searchPort < 1 || searchPort > 65535 {
+ return nil, fmt.Errorf("ssdp: search port %d is out of range", searchPort)
+ }
+
+ return &Entry{
+ RemoteAddr: r.RemoteAddr,
+ USN: r.Header.Get("USN"),
+ NT: r.Header.Get("NT"),
+ Server: r.Header.Get("SERVER"),
+ Host: r.Header.Get("HOST"),
+ Location: *loc,
+ BootID: bootID,
+ ConfigID: configID,
+ SearchPort: uint16(searchPort),
+ LastUpdate: now,
+ CacheExpiry: now.Add(expiryDuration),
+ }, nil
+}
+
+func parseCacheControlMaxAge(cc string) (time.Duration, error) {
+ matches := maxAgeRx.FindStringSubmatch(cc)
+ if len(matches) != 2 {
+ return 0, fmt.Errorf("did not find exactly one max-age in cache control header: %q", cc)
+ }
+ expirySeconds, err := strconv.ParseInt(matches[1], 10, 16)
+ if err != nil {
+ return 0, err
+ }
+ if expirySeconds < 1 || expirySeconds > maxExpiryTimeSeconds {
+ return 0, fmt.Errorf("rejecting bad expiry time of %d seconds", expirySeconds)
+ }
+ return time.Duration(expirySeconds) * time.Second, nil
+}
+
+// parseUpnpIntHeader is intended to parse the
+// {BOOT,CONFIGID,SEARCHPORT}.UPNP.ORG header fields. It returns the def if
+// the head is empty or missing.
+func parseUpnpIntHeader(headers http.Header, headerName string, def int32) (int32, error) {
+ s := headers.Get(headerName)
+ if s == "" {
+ return def, nil
+ }
+ v, err := strconv.ParseInt(s, 10, 32)
+ if err != nil {
+ return 0, fmt.Errorf("ssdp: could not parse header %s: %v", headerName, err)
+ }
+ return int32(v), nil
+}
+
+var _ httpu.Handler = new(Registry)
+
+// Registry maintains knowledge of discovered devices and services.
+//
+// NOTE: the interface for this is experimental and may change, or go away
+// entirely.
+type Registry struct {
+ lock sync.Mutex
+ byUSN map[string]*Entry
+
+ listenersLock sync.RWMutex
+ listeners map[chan<- Update]struct{}
+}
+
+func NewRegistry() *Registry {
+ return &Registry{
+ byUSN: make(map[string]*Entry),
+ listeners: make(map[chan<- Update]struct{}),
+ }
+}
+
+// NewServerAndRegistry is a convenience function to create a registry, and an
+// httpu server to pass it messages. Call ListenAndServe on the server for
+// messages to be processed.
+func NewServerAndRegistry() (*httpu.Server, *Registry) {
+ reg := NewRegistry()
+ srv := &httpu.Server{
+ Addr: ssdpUDP4Addr,
+ Multicast: true,
+ Handler: reg,
+ }
+ return srv, reg
+}
+
+func (reg *Registry) AddListener(c chan<- Update) {
+ reg.listenersLock.Lock()
+ defer reg.listenersLock.Unlock()
+ reg.listeners[c] = struct{}{}
+}
+
+func (reg *Registry) RemoveListener(c chan<- Update) {
+ reg.listenersLock.Lock()
+ defer reg.listenersLock.Unlock()
+ delete(reg.listeners, c)
+}
+
+func (reg *Registry) sendUpdate(u Update) {
+ reg.listenersLock.RLock()
+ defer reg.listenersLock.RUnlock()
+ for c := range reg.listeners {
+ c <- u
+ }
+}
+
+// GetService returns known service (or device) entries for the given service
+// URN.
+func (reg *Registry) GetService(serviceURN string) []*Entry {
+ // Currently assumes that the map is small, so we do a linear search rather
+ // than indexed to avoid maintaining two maps.
+ var results []*Entry
+ reg.lock.Lock()
+ defer reg.lock.Unlock()
+ for _, entry := range reg.byUSN {
+ if entry.NT == serviceURN {
+ results = append(results, entry)
+ }
+ }
+ return results
+}
+
+// ServeMessage implements httpu.Handler, and uses SSDP NOTIFY requests to
+// maintain the registry of devices and services.
+func (reg *Registry) ServeMessage(r *http.Request) {
+ if r.Method != methodNotify {
+ return
+ }
+
+ nts := r.Header.Get("nts")
+
+ var err error
+ switch nts {
+ case ntsAlive:
+ err = reg.handleNTSAlive(r)
+ case ntsUpdate:
+ err = reg.handleNTSUpdate(r)
+ case ntsByebye:
+ err = reg.handleNTSByebye(r)
+ default:
+ err = fmt.Errorf("unknown NTS value: %q", nts)
+ }
+ if err != nil {
+ log.Printf("goupnp/ssdp: failed to handle %s message from %s: %v", nts, r.RemoteAddr, err)
+ }
+}
+
+func (reg *Registry) handleNTSAlive(r *http.Request) error {
+ entry, err := newEntryFromRequest(r)
+ if err != nil {
+ return err
+ }
+
+ reg.lock.Lock()
+ reg.byUSN[entry.USN] = entry
+ reg.lock.Unlock()
+
+ reg.sendUpdate(Update{
+ USN: entry.USN,
+ EventType: EventAlive,
+ Entry: entry,
+ })
+
+ return nil
+}
+
+func (reg *Registry) handleNTSUpdate(r *http.Request) error {
+ entry, err := newEntryFromRequest(r)
+ if err != nil {
+ return err
+ }
+ nextBootID, err := parseUpnpIntHeader(r.Header, "NEXTBOOTID.UPNP.ORG", -1)
+ if err != nil {
+ return err
+ }
+ entry.BootID = nextBootID
+
+ reg.lock.Lock()
+ reg.byUSN[entry.USN] = entry
+ reg.lock.Unlock()
+
+ reg.sendUpdate(Update{
+ USN: entry.USN,
+ EventType: EventUpdate,
+ Entry: entry,
+ })
+
+ return nil
+}
+
+func (reg *Registry) handleNTSByebye(r *http.Request) error {
+ usn := r.Header.Get("USN")
+
+ reg.lock.Lock()
+ entry := reg.byUSN[usn]
+ delete(reg.byUSN, usn)
+ reg.lock.Unlock()
+
+ reg.sendUpdate(Update{
+ USN: usn,
+ EventType: EventByeBye,
+ Entry: entry,
+ })
+
+ return nil
+}
diff --git a/vendor/github.com/huin/goupnp/ssdp/ssdp.go b/vendor/github.com/huin/goupnp/ssdp/ssdp.go
new file mode 100644
index 000000000..8178f5d94
--- /dev/null
+++ b/vendor/github.com/huin/goupnp/ssdp/ssdp.go
@@ -0,0 +1,83 @@
+package ssdp
+
+import (
+ "errors"
+ "log"
+ "net/http"
+ "net/url"
+ "strconv"
+ "time"
+
+ "github.com/huin/goupnp/httpu"
+)
+
+const (
+ ssdpDiscover = `"ssdp:discover"`
+ ntsAlive = `ssdp:alive`
+ ntsByebye = `ssdp:byebye`
+ ntsUpdate = `ssdp:update`
+ ssdpUDP4Addr = "239.255.255.250:1900"
+ ssdpSearchPort = 1900
+ methodSearch = "M-SEARCH"
+ methodNotify = "NOTIFY"
+)
+
+// SSDPRawSearch performs a fairly raw SSDP search request, and returns the
+// unique response(s) that it receives. Each response has the requested
+// searchTarget, a USN, and a valid location. maxWaitSeconds states how long to
+// wait for responses in seconds, and must be a minimum of 1 (the
+// implementation waits an additional 100ms for responses to arrive), 2 is a
+// reasonable value for this. numSends is the number of requests to send - 3 is
+// a reasonable value for this.
+func SSDPRawSearch(httpu *httpu.HTTPUClient, searchTarget string, maxWaitSeconds int, numSends int) ([]*http.Response, error) {
+ if maxWaitSeconds < 1 {
+ return nil, errors.New("ssdp: maxWaitSeconds must be >= 1")
+ }
+
+ seenUsns := make(map[string]bool)
+ var responses []*http.Response
+ req := http.Request{
+ Method: methodSearch,
+ // TODO: Support both IPv4 and IPv6.
+ Host: ssdpUDP4Addr,
+ URL: &url.URL{Opaque: "*"},
+ Header: http.Header{
+ // Putting headers in here avoids them being title-cased.
+ // (The UPnP discovery protocol uses case-sensitive headers)
+ "HOST": []string{ssdpUDP4Addr},
+ "MX": []string{strconv.FormatInt(int64(maxWaitSeconds), 10)},
+ "MAN": []string{ssdpDiscover},
+ "ST": []string{searchTarget},
+ },
+ }
+ allResponses, err := httpu.Do(&req, time.Duration(maxWaitSeconds)*time.Second+100*time.Millisecond, numSends)
+ if err != nil {
+ return nil, err
+ }
+ for _, response := range allResponses {
+ if response.StatusCode != 200 {
+ log.Printf("ssdp: got response status code %q in search response", response.Status)
+ continue
+ }
+ if st := response.Header.Get("ST"); st != searchTarget {
+ log.Printf("ssdp: got unexpected search target result %q", st)
+ continue
+ }
+ location, err := response.Location()
+ if err != nil {
+ log.Printf("ssdp: no usable location in search response (discarding): %v", err)
+ continue
+ }
+ usn := response.Header.Get("USN")
+ if usn == "" {
+ log.Printf("ssdp: empty/missing USN in search response (using location instead): %v", err)
+ usn = location.String()
+ }
+ if _, alreadySeen := seenUsns[usn]; !alreadySeen {
+ seenUsns[usn] = true
+ responses = append(responses, response)
+ }
+ }
+
+ return responses, nil
+}
diff --git a/vendor/github.com/jackpal/go-nat-pmp/.travis.yml b/vendor/github.com/jackpal/go-nat-pmp/.travis.yml
new file mode 100644
index 000000000..9c3f6547d
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/.travis.yml
@@ -0,0 +1,13 @@
+language: go
+
+go:
+ - 1.6.2
+ - tip
+
+allowed_failures:
+ - go: tip
+
+install:
+ - go get -d -v ./... && go install -race -v ./...
+
+script: go test -race -v ./...
diff --git a/vendor/github.com/jackpal/go-nat-pmp/LICENSE b/vendor/github.com/jackpal/go-nat-pmp/LICENSE
new file mode 100644
index 000000000..249514b0f
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/LICENSE
@@ -0,0 +1,13 @@
+ Copyright 2013 John Howard Palevich
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/vendor/github.com/jackpal/go-nat-pmp/README.md b/vendor/github.com/jackpal/go-nat-pmp/README.md
new file mode 100644
index 000000000..3ca687f0b
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/README.md
@@ -0,0 +1,52 @@
+go-nat-pmp
+==========
+
+A Go language client for the NAT-PMP internet protocol for port mapping and discovering the external
+IP address of a firewall.
+
+NAT-PMP is supported by Apple brand routers and open source routers like Tomato and DD-WRT.
+
+See http://tools.ietf.org/html/draft-cheshire-nat-pmp-03
+
+
+[![Build Status](https://travis-ci.org/jackpal/go-nat-pmp.svg)](https://travis-ci.org/jackpal/go-nat-pmp)
+
+Get the package
+---------------
+
+ go get -u github.com/jackpal/go-nat-pmp
+
+Usage
+-----
+
+ import (
+ "github.com/jackpal/gateway"
+ natpmp "github.com/jackpal/go-nat-pmp"
+ )
+
+ gatewayIP, err = gateway.DiscoverGateway()
+ if err != nil {
+ return
+ }
+
+ client := natpmp.NewClient(gatewayIP)
+ response, err := client.GetExternalAddress()
+ if err != nil {
+ return
+ }
+ print("External IP address:", response.ExternalIPAddress)
+
+Clients
+-------
+
+This library is used in the Taipei Torrent BitTorrent client http://github.com/jackpal/Taipei-Torrent
+
+Complete documentation
+----------------------
+
+ http://godoc.org/github.com/jackpal/go-nat-pmp
+
+License
+-------
+
+This project is licensed under the Apache License 2.0.
diff --git a/vendor/github.com/jackpal/go-nat-pmp/natpmp.go b/vendor/github.com/jackpal/go-nat-pmp/natpmp.go
new file mode 100644
index 000000000..5ca7680e4
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/natpmp.go
@@ -0,0 +1,153 @@
+package natpmp
+
+import (
+ "fmt"
+ "net"
+ "time"
+)
+
+// Implement the NAT-PMP protocol, typically supported by Apple routers and open source
+// routers such as DD-WRT and Tomato.
+//
+// See http://tools.ietf.org/html/draft-cheshire-nat-pmp-03
+//
+// Usage:
+//
+// client := natpmp.NewClient(gatewayIP)
+// response, err := client.GetExternalAddress()
+
+// The recommended mapping lifetime for AddPortMapping
+const RECOMMENDED_MAPPING_LIFETIME_SECONDS = 3600
+
+// Interface used to make remote procedure calls.
+type caller interface {
+ call(msg []byte, timeout time.Duration) (result []byte, err error)
+}
+
+// Client is a NAT-PMP protocol client.
+type Client struct {
+ caller caller
+ timeout time.Duration
+}
+
+// Create a NAT-PMP client for the NAT-PMP server at the gateway.
+// Uses default timeout which is around 128 seconds.
+func NewClient(gateway net.IP) (nat *Client) {
+ return &Client{&network{gateway}, 0}
+}
+
+// Create a NAT-PMP client for the NAT-PMP server at the gateway, with a timeout.
+// Timeout defines the total amount of time we will keep retrying before giving up.
+func NewClientWithTimeout(gateway net.IP, timeout time.Duration) (nat *Client) {
+ return &Client{&network{gateway}, timeout}
+}
+
+// Results of the NAT-PMP GetExternalAddress operation.
+type GetExternalAddressResult struct {
+ SecondsSinceStartOfEpoc uint32
+ ExternalIPAddress [4]byte
+}
+
+// Get the external address of the router.
+func (n *Client) GetExternalAddress() (result *GetExternalAddressResult, err error) {
+ msg := make([]byte, 2)
+ msg[0] = 0 // Version 0
+ msg[1] = 0 // OP Code 0
+ response, err := n.rpc(msg, 12)
+ if err != nil {
+ return
+ }
+ result = &GetExternalAddressResult{}
+ result.SecondsSinceStartOfEpoc = readNetworkOrderUint32(response[4:8])
+ copy(result.ExternalIPAddress[:], response[8:12])
+ return
+}
+
+// Results of the NAT-PMP AddPortMapping operation
+type AddPortMappingResult struct {
+ SecondsSinceStartOfEpoc uint32
+ InternalPort uint16
+ MappedExternalPort uint16
+ PortMappingLifetimeInSeconds uint32
+}
+
+// Add (or delete) a port mapping. To delete a mapping, set the requestedExternalPort and lifetime to 0
+func (n *Client) AddPortMapping(protocol string, internalPort, requestedExternalPort int, lifetime int) (result *AddPortMappingResult, err error) {
+ var opcode byte
+ if protocol == "udp" {
+ opcode = 1
+ } else if protocol == "tcp" {
+ opcode = 2
+ } else {
+ err = fmt.Errorf("unknown protocol %v", protocol)
+ return
+ }
+ msg := make([]byte, 12)
+ msg[0] = 0 // Version 0
+ msg[1] = opcode
+ writeNetworkOrderUint16(msg[4:6], uint16(internalPort))
+ writeNetworkOrderUint16(msg[6:8], uint16(requestedExternalPort))
+ writeNetworkOrderUint32(msg[8:12], uint32(lifetime))
+ response, err := n.rpc(msg, 16)
+ if err != nil {
+ return
+ }
+ result = &AddPortMappingResult{}
+ result.SecondsSinceStartOfEpoc = readNetworkOrderUint32(response[4:8])
+ result.InternalPort = readNetworkOrderUint16(response[8:10])
+ result.MappedExternalPort = readNetworkOrderUint16(response[10:12])
+ result.PortMappingLifetimeInSeconds = readNetworkOrderUint32(response[12:16])
+ return
+}
+
+func (n *Client) rpc(msg []byte, resultSize int) (result []byte, err error) {
+ result, err = n.caller.call(msg, n.timeout)
+ if err != nil {
+ return
+ }
+ err = protocolChecks(msg, resultSize, result)
+ return
+}
+
+func protocolChecks(msg []byte, resultSize int, result []byte) (err error) {
+ if len(result) != resultSize {
+ err = fmt.Errorf("unexpected result size %d, expected %d", len(result), resultSize)
+ return
+ }
+ if result[0] != 0 {
+ err = fmt.Errorf("unknown protocol version %d", result[0])
+ return
+ }
+ expectedOp := msg[1] | 0x80
+ if result[1] != expectedOp {
+ err = fmt.Errorf("Unexpected opcode %d. Expected %d", result[1], expectedOp)
+ return
+ }
+ resultCode := readNetworkOrderUint16(result[2:4])
+ if resultCode != 0 {
+ err = fmt.Errorf("Non-zero result code %d", resultCode)
+ return
+ }
+ // If we got here the RPC is good.
+ return
+}
+
+func writeNetworkOrderUint16(buf []byte, d uint16) {
+ buf[0] = byte(d >> 8)
+ buf[1] = byte(d)
+}
+
+func writeNetworkOrderUint32(buf []byte, d uint32) {
+ buf[0] = byte(d >> 24)
+ buf[1] = byte(d >> 16)
+ buf[2] = byte(d >> 8)
+ buf[3] = byte(d)
+}
+
+func readNetworkOrderUint16(buf []byte) uint16 {
+ return (uint16(buf[0]) << 8) | uint16(buf[1])
+}
+
+func readNetworkOrderUint32(buf []byte) uint32 {
+ return (uint32(buf[0]) << 24) | (uint32(buf[1]) << 16) | (uint32(buf[2]) << 8) | uint32(buf[3])
+}
diff --git a/vendor/github.com/jackpal/go-nat-pmp/network.go b/vendor/github.com/jackpal/go-nat-pmp/network.go
new file mode 100644
index 000000000..c42b4fee9
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/network.go
@@ -0,0 +1,89 @@
+package natpmp
+
+import (
+ "fmt"
+ "net"
+ "time"
+)
+
+const nAT_PMP_PORT = 5351
+const nAT_TRIES = 9
+const nAT_INITIAL_MS = 250
+
+// A caller that implements the NAT-PMP RPC protocol.
+type network struct {
+ gateway net.IP
+}
+
+func (n *network) call(msg []byte, timeout time.Duration) (result []byte, err error) {
+ var server net.UDPAddr
+ server.IP = n.gateway
+ server.Port = nAT_PMP_PORT
+ conn, err := net.DialUDP("udp", nil, &server)
+ if err != nil {
+ return
+ }
+ defer conn.Close()
+
+ // 16 bytes is the maximum result size.
+ result = make([]byte, 16)
+
+ var finalTimeout time.Time
+ if timeout != 0 {
+ finalTimeout = time.Now().Add(timeout)
+ }
+
+ needNewDeadline := true
+
+ var tries uint
+ for tries = 0; (tries < nAT_TRIES && finalTimeout.IsZero()) || time.Now().Before(finalTimeout); {
+ if needNewDeadline {
+ nextDeadline := time.Now().Add((nAT_INITIAL_MS << tries) * time.Millisecond)
+ err = conn.SetDeadline(minTime(nextDeadline, finalTimeout))
+ if err != nil {
+ return
+ }
+ needNewDeadline = false
+ }
+ _, err = conn.Write(msg)
+ if err != nil {
+ return
+ }
+ var bytesRead int
+ var remoteAddr *net.UDPAddr
+ bytesRead, remoteAddr, err = conn.ReadFromUDP(result)
+ if err != nil {
+ if err.(net.Error).Timeout() {
+ tries++
+ needNewDeadline = true
+ continue
+ }
+ return
+ }
+ if !remoteAddr.IP.Equal(n.gateway) {
+ // Ignore this packet.
+ // Continue without increasing retransmission timeout or deadline.
+ continue
+ }
+ // Trim result to actual number of bytes received
+ if bytesRead < len(result) {
+ result = result[:bytesRead]
+ }
+ return
+ }
+ err = fmt.Errorf("Timed out trying to contact gateway")
+ return
+}
+
+func minTime(a, b time.Time) time.Time {
+ if a.IsZero() {
+ return b
+ }
+ if b.IsZero() {
+ return a
+ }
+ if a.Before(b) {
+ return a
+ }
+ return b
+}
diff --git a/vendor/github.com/jackpal/go-nat-pmp/recorder.go b/vendor/github.com/jackpal/go-nat-pmp/recorder.go
new file mode 100644
index 000000000..845703672
--- /dev/null
+++ b/vendor/github.com/jackpal/go-nat-pmp/recorder.go
@@ -0,0 +1,19 @@
+package natpmp
+
+import "time"
+
+type callObserver interface {
+ observeCall(msg []byte, result []byte, err error)
+}
+
+// A caller that records the RPC call.
+type recorder struct {
+ child caller
+ observer callObserver
+}
+
+func (n *recorder) call(msg []byte, timeout time.Duration) (result []byte, err error) {
+ result, err = n.child.call(msg, timeout)
+ n.observer.observeCall(msg, result, err)
+ return
+}
diff --git a/vendor/github.com/mattn/go-colorable/.travis.yml b/vendor/github.com/mattn/go-colorable/.travis.yml
new file mode 100644
index 000000000..42768b8bf
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+go:
+ - tip
+
+sudo: false
+
+script:
+ - go test -v
diff --git a/vendor/github.com/mattn/go-colorable/LICENSE b/vendor/github.com/mattn/go-colorable/LICENSE
new file mode 100644
index 000000000..91b5cef30
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Yasuhiro Matsumoto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/mattn/go-colorable/README.md b/vendor/github.com/mattn/go-colorable/README.md
new file mode 100644
index 000000000..e84226a73
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/README.md
@@ -0,0 +1,43 @@
+# go-colorable
+
+Colorable writer for windows.
+
+For example, most of logger packages doesn't show colors on windows. (I know we can do it with ansicon. But I don't want.)
+This package is possible to handle escape sequence for ansi color on windows.
+
+## Too Bad!
+
+![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/bad.png)
+
+
+## So Good!
+
+![](https://raw.githubusercontent.com/mattn/go-colorable/gh-pages/good.png)
+
+## Usage
+
+```go
+logrus.SetFormatter(&logrus.TextFormatter{ForceColors: true})
+logrus.SetOutput(colorable.NewColorableStdout())
+
+logrus.Info("succeeded")
+logrus.Warn("not correct")
+logrus.Error("something error")
+logrus.Fatal("panic")
+```
+
+You can compile above code on non-windows OSs.
+
+## Installation
+
+```
+$ go get github.com/mattn/go-colorable
+```
+
+# License
+
+MIT
+
+# Author
+
+Yasuhiro Matsumoto (a.k.a mattn)
diff --git a/vendor/github.com/mattn/go-colorable/colorable_others.go b/vendor/github.com/mattn/go-colorable/colorable_others.go
new file mode 100644
index 000000000..52d6653b3
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/colorable_others.go
@@ -0,0 +1,24 @@
+// +build !windows
+
+package colorable
+
+import (
+ "io"
+ "os"
+)
+
+func NewColorable(file *os.File) io.Writer {
+ if file == nil {
+ panic("nil passed instead of *os.File to NewColorable()")
+ }
+
+ return file
+}
+
+func NewColorableStdout() io.Writer {
+ return os.Stdout
+}
+
+func NewColorableStderr() io.Writer {
+ return os.Stderr
+}
diff --git a/vendor/github.com/mattn/go-colorable/colorable_windows.go b/vendor/github.com/mattn/go-colorable/colorable_windows.go
new file mode 100644
index 000000000..bc84adfaf
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/colorable_windows.go
@@ -0,0 +1,810 @@
+package colorable
+
+import (
+ "bytes"
+ "io"
+ "math"
+ "os"
+ "strconv"
+ "strings"
+ "syscall"
+ "unsafe"
+
+ "github.com/mattn/go-isatty"
+)
+
+const (
+ foregroundBlue = 0x1
+ foregroundGreen = 0x2
+ foregroundRed = 0x4
+ foregroundIntensity = 0x8
+ foregroundMask = (foregroundRed | foregroundBlue | foregroundGreen | foregroundIntensity)
+ backgroundBlue = 0x10
+ backgroundGreen = 0x20
+ backgroundRed = 0x40
+ backgroundIntensity = 0x80
+ backgroundMask = (backgroundRed | backgroundBlue | backgroundGreen | backgroundIntensity)
+)
+
+type wchar uint16
+type short int16
+type dword uint32
+type word uint16
+
+type coord struct {
+ x short
+ y short
+}
+
+type smallRect struct {
+ left short
+ top short
+ right short
+ bottom short
+}
+
+type consoleScreenBufferInfo struct {
+ size coord
+ cursorPosition coord
+ attributes word
+ window smallRect
+ maximumWindowSize coord
+}
+
+type consoleCursorInfo struct {
+ size dword
+ visible int32
+}
+
+var (
+ kernel32 = syscall.NewLazyDLL("kernel32.dll")
+ procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
+ procSetConsoleTextAttribute = kernel32.NewProc("SetConsoleTextAttribute")
+ procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition")
+ procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
+ procFillConsoleOutputAttribute = kernel32.NewProc("FillConsoleOutputAttribute")
+ procGetConsoleCursorInfo = kernel32.NewProc("GetConsoleCursorInfo")
+ procSetConsoleCursorInfo = kernel32.NewProc("SetConsoleCursorInfo")
+)
+
+type Writer struct {
+ out io.Writer
+ handle syscall.Handle
+ lastbuf bytes.Buffer
+ oldattr word
+}
+
+func NewColorable(file *os.File) io.Writer {
+ if file == nil {
+ panic("nil passed instead of *os.File to NewColorable()")
+ }
+
+ if isatty.IsTerminal(file.Fd()) {
+ var csbi consoleScreenBufferInfo
+ handle := syscall.Handle(file.Fd())
+ procGetConsoleScreenBufferInfo.Call(uintptr(handle), uintptr(unsafe.Pointer(&csbi)))
+ return &Writer{out: file, handle: handle, oldattr: csbi.attributes}
+ } else {
+ return file
+ }
+}
+
+func NewColorableStdout() io.Writer {
+ return NewColorable(os.Stdout)
+}
+
+func NewColorableStderr() io.Writer {
+ return NewColorable(os.Stderr)
+}
+
+var color256 = map[int]int{
+ 0: 0x000000,
+ 1: 0x800000,
+ 2: 0x008000,
+ 3: 0x808000,
+ 4: 0x000080,
+ 5: 0x800080,
+ 6: 0x008080,
+ 7: 0xc0c0c0,
+ 8: 0x808080,
+ 9: 0xff0000,
+ 10: 0x00ff00,
+ 11: 0xffff00,
+ 12: 0x0000ff,
+ 13: 0xff00ff,
+ 14: 0x00ffff,
+ 15: 0xffffff,
+ 16: 0x000000,
+ 17: 0x00005f,
+ 18: 0x000087,
+ 19: 0x0000af,
+ 20: 0x0000d7,
+ 21: 0x0000ff,
+ 22: 0x005f00,
+ 23: 0x005f5f,
+ 24: 0x005f87,
+ 25: 0x005faf,
+ 26: 0x005fd7,
+ 27: 0x005fff,
+ 28: 0x008700,
+ 29: 0x00875f,
+ 30: 0x008787,
+ 31: 0x0087af,
+ 32: 0x0087d7,
+ 33: 0x0087ff,
+ 34: 0x00af00,
+ 35: 0x00af5f,
+ 36: 0x00af87,
+ 37: 0x00afaf,
+ 38: 0x00afd7,
+ 39: 0x00afff,
+ 40: 0x00d700,
+ 41: 0x00d75f,
+ 42: 0x00d787,
+ 43: 0x00d7af,
+ 44: 0x00d7d7,
+ 45: 0x00d7ff,
+ 46: 0x00ff00,
+ 47: 0x00ff5f,
+ 48: 0x00ff87,
+ 49: 0x00ffaf,
+ 50: 0x00ffd7,
+ 51: 0x00ffff,
+ 52: 0x5f0000,
+ 53: 0x5f005f,
+ 54: 0x5f0087,
+ 55: 0x5f00af,
+ 56: 0x5f00d7,
+ 57: 0x5f00ff,
+ 58: 0x5f5f00,
+ 59: 0x5f5f5f,
+ 60: 0x5f5f87,
+ 61: 0x5f5faf,
+ 62: 0x5f5fd7,
+ 63: 0x5f5fff,
+ 64: 0x5f8700,
+ 65: 0x5f875f,
+ 66: 0x5f8787,
+ 67: 0x5f87af,
+ 68: 0x5f87d7,
+ 69: 0x5f87ff,
+ 70: 0x5faf00,
+ 71: 0x5faf5f,
+ 72: 0x5faf87,
+ 73: 0x5fafaf,
+ 74: 0x5fafd7,
+ 75: 0x5fafff,
+ 76: 0x5fd700,
+ 77: 0x5fd75f,
+ 78: 0x5fd787,
+ 79: 0x5fd7af,
+ 80: 0x5fd7d7,
+ 81: 0x5fd7ff,
+ 82: 0x5fff00,
+ 83: 0x5fff5f,
+ 84: 0x5fff87,
+ 85: 0x5fffaf,
+ 86: 0x5fffd7,
+ 87: 0x5fffff,
+ 88: 0x870000,
+ 89: 0x87005f,
+ 90: 0x870087,
+ 91: 0x8700af,
+ 92: 0x8700d7,
+ 93: 0x8700ff,
+ 94: 0x875f00,
+ 95: 0x875f5f,
+ 96: 0x875f87,
+ 97: 0x875faf,
+ 98: 0x875fd7,
+ 99: 0x875fff,
+ 100: 0x878700,
+ 101: 0x87875f,
+ 102: 0x878787,
+ 103: 0x8787af,
+ 104: 0x8787d7,
+ 105: 0x8787ff,
+ 106: 0x87af00,
+ 107: 0x87af5f,
+ 108: 0x87af87,
+ 109: 0x87afaf,
+ 110: 0x87afd7,
+ 111: 0x87afff,
+ 112: 0x87d700,
+ 113: 0x87d75f,
+ 114: 0x87d787,
+ 115: 0x87d7af,
+ 116: 0x87d7d7,
+ 117: 0x87d7ff,
+ 118: 0x87ff00,
+ 119: 0x87ff5f,
+ 120: 0x87ff87,
+ 121: 0x87ffaf,
+ 122: 0x87ffd7,
+ 123: 0x87ffff,
+ 124: 0xaf0000,
+ 125: 0xaf005f,
+ 126: 0xaf0087,
+ 127: 0xaf00af,
+ 128: 0xaf00d7,
+ 129: 0xaf00ff,
+ 130: 0xaf5f00,
+ 131: 0xaf5f5f,
+ 132: 0xaf5f87,
+ 133: 0xaf5faf,
+ 134: 0xaf5fd7,
+ 135: 0xaf5fff,
+ 136: 0xaf8700,
+ 137: 0xaf875f,
+ 138: 0xaf8787,
+ 139: 0xaf87af,
+ 140: 0xaf87d7,
+ 141: 0xaf87ff,
+ 142: 0xafaf00,
+ 143: 0xafaf5f,
+ 144: 0xafaf87,
+ 145: 0xafafaf,
+ 146: 0xafafd7,
+ 147: 0xafafff,
+ 148: 0xafd700,
+ 149: 0xafd75f,
+ 150: 0xafd787,
+ 151: 0xafd7af,
+ 152: 0xafd7d7,
+ 153: 0xafd7ff,
+ 154: 0xafff00,
+ 155: 0xafff5f,
+ 156: 0xafff87,
+ 157: 0xafffaf,
+ 158: 0xafffd7,
+ 159: 0xafffff,
+ 160: 0xd70000,
+ 161: 0xd7005f,
+ 162: 0xd70087,
+ 163: 0xd700af,
+ 164: 0xd700d7,
+ 165: 0xd700ff,
+ 166: 0xd75f00,
+ 167: 0xd75f5f,
+ 168: 0xd75f87,
+ 169: 0xd75faf,
+ 170: 0xd75fd7,
+ 171: 0xd75fff,
+ 172: 0xd78700,
+ 173: 0xd7875f,
+ 174: 0xd78787,
+ 175: 0xd787af,
+ 176: 0xd787d7,
+ 177: 0xd787ff,
+ 178: 0xd7af00,
+ 179: 0xd7af5f,
+ 180: 0xd7af87,
+ 181: 0xd7afaf,
+ 182: 0xd7afd7,
+ 183: 0xd7afff,
+ 184: 0xd7d700,
+ 185: 0xd7d75f,
+ 186: 0xd7d787,
+ 187: 0xd7d7af,
+ 188: 0xd7d7d7,
+ 189: 0xd7d7ff,
+ 190: 0xd7ff00,
+ 191: 0xd7ff5f,
+ 192: 0xd7ff87,
+ 193: 0xd7ffaf,
+ 194: 0xd7ffd7,
+ 195: 0xd7ffff,
+ 196: 0xff0000,
+ 197: 0xff005f,
+ 198: 0xff0087,
+ 199: 0xff00af,
+ 200: 0xff00d7,
+ 201: 0xff00ff,
+ 202: 0xff5f00,
+ 203: 0xff5f5f,
+ 204: 0xff5f87,
+ 205: 0xff5faf,
+ 206: 0xff5fd7,
+ 207: 0xff5fff,
+ 208: 0xff8700,
+ 209: 0xff875f,
+ 210: 0xff8787,
+ 211: 0xff87af,
+ 212: 0xff87d7,
+ 213: 0xff87ff,
+ 214: 0xffaf00,
+ 215: 0xffaf5f,
+ 216: 0xffaf87,
+ 217: 0xffafaf,
+ 218: 0xffafd7,
+ 219: 0xffafff,
+ 220: 0xffd700,
+ 221: 0xffd75f,
+ 222: 0xffd787,
+ 223: 0xffd7af,
+ 224: 0xffd7d7,
+ 225: 0xffd7ff,
+ 226: 0xffff00,
+ 227: 0xffff5f,
+ 228: 0xffff87,
+ 229: 0xffffaf,
+ 230: 0xffffd7,
+ 231: 0xffffff,
+ 232: 0x080808,
+ 233: 0x121212,
+ 234: 0x1c1c1c,
+ 235: 0x262626,
+ 236: 0x303030,
+ 237: 0x3a3a3a,
+ 238: 0x444444,
+ 239: 0x4e4e4e,
+ 240: 0x585858,
+ 241: 0x626262,
+ 242: 0x6c6c6c,
+ 243: 0x767676,
+ 244: 0x808080,
+ 245: 0x8a8a8a,
+ 246: 0x949494,
+ 247: 0x9e9e9e,
+ 248: 0xa8a8a8,
+ 249: 0xb2b2b2,
+ 250: 0xbcbcbc,
+ 251: 0xc6c6c6,
+ 252: 0xd0d0d0,
+ 253: 0xdadada,
+ 254: 0xe4e4e4,
+ 255: 0xeeeeee,
+}
+
+func (w *Writer) Write(data []byte) (n int, err error) {
+ var csbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+
+ er := bytes.NewReader(data)
+ var bw [1]byte
+loop:
+ for {
+ r1, _, err := procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ if r1 == 0 {
+ break loop
+ }
+
+ c1, err := er.ReadByte()
+ if err != nil {
+ break loop
+ }
+ if c1 != 0x1b {
+ bw[0] = c1
+ w.out.Write(bw[:])
+ continue
+ }
+ c2, err := er.ReadByte()
+ if err != nil {
+ w.lastbuf.WriteByte(c1)
+ break loop
+ }
+ if c2 != 0x5b {
+ w.lastbuf.WriteByte(c1)
+ w.lastbuf.WriteByte(c2)
+ continue
+ }
+
+ var buf bytes.Buffer
+ var m byte
+ for {
+ c, err := er.ReadByte()
+ if err != nil {
+ w.lastbuf.WriteByte(c1)
+ w.lastbuf.WriteByte(c2)
+ w.lastbuf.Write(buf.Bytes())
+ break loop
+ }
+ if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {
+ m = c
+ break
+ }
+ buf.Write([]byte(string(c)))
+ }
+
+ var csbi consoleScreenBufferInfo
+ switch m {
+ case 'A':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.y -= short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'B':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.y += short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'C':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.x -= short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'D':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ if n, err = strconv.Atoi(buf.String()); err == nil {
+ var csbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.x += short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ }
+ case 'E':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.x = 0
+ csbi.cursorPosition.y += short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'F':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.x = 0
+ csbi.cursorPosition.y -= short(n)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'G':
+ n, err = strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ csbi.cursorPosition.x = short(n - 1)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'H':
+ token := strings.Split(buf.String(), ";")
+ if len(token) != 2 {
+ continue
+ }
+ n1, err := strconv.Atoi(token[0])
+ if err != nil {
+ continue
+ }
+ n2, err := strconv.Atoi(token[1])
+ if err != nil {
+ continue
+ }
+ csbi.cursorPosition.x = short(n2 - 1)
+ csbi.cursorPosition.y = short(n1 - 1)
+ procSetConsoleCursorPosition.Call(uintptr(w.handle), *(*uintptr)(unsafe.Pointer(&csbi.cursorPosition)))
+ case 'J':
+ n, err := strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ var cursor coord
+ switch n {
+ case 0:
+ cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}
+ case 1:
+ cursor = coord{x: csbi.window.left, y: csbi.window.top}
+ case 2:
+ cursor = coord{x: csbi.window.left, y: csbi.window.top}
+ }
+ var count, written dword
+ count = dword(csbi.size.x - csbi.cursorPosition.x + (csbi.size.y-csbi.cursorPosition.y)*csbi.size.x)
+ procFillConsoleOutputCharacter.Call(uintptr(w.handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))
+ procFillConsoleOutputAttribute.Call(uintptr(w.handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))
+ case 'K':
+ n, err := strconv.Atoi(buf.String())
+ if err != nil {
+ continue
+ }
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ var cursor coord
+ switch n {
+ case 0:
+ cursor = coord{x: csbi.cursorPosition.x, y: csbi.cursorPosition.y}
+ case 1:
+ cursor = coord{x: csbi.window.left, y: csbi.window.top + csbi.cursorPosition.y}
+ case 2:
+ cursor = coord{x: csbi.window.left, y: csbi.window.top + csbi.cursorPosition.y}
+ }
+ var count, written dword
+ count = dword(csbi.size.x - csbi.cursorPosition.x)
+ procFillConsoleOutputCharacter.Call(uintptr(w.handle), uintptr(' '), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))
+ procFillConsoleOutputAttribute.Call(uintptr(w.handle), uintptr(csbi.attributes), uintptr(count), *(*uintptr)(unsafe.Pointer(&cursor)), uintptr(unsafe.Pointer(&written)))
+ case 'm':
+ procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&csbi)))
+ attr := csbi.attributes
+ cs := buf.String()
+ if cs == "" {
+ procSetConsoleTextAttribute.Call(uintptr(w.handle), uintptr(w.oldattr))
+ continue
+ }
+ token := strings.Split(cs, ";")
+ for i := 0; i < len(token); i++ {
+ ns := token[i]
+ if n, err = strconv.Atoi(ns); err == nil {
+ switch {
+ case n == 0 || n == 100:
+ attr = w.oldattr
+ case 1 <= n && n <= 5:
+ attr |= foregroundIntensity
+ case n == 7:
+ attr = ((attr & foregroundMask) << 4) | ((attr & backgroundMask) >> 4)
+ case 22 == n || n == 25 || n == 25:
+ attr |= foregroundIntensity
+ case n == 27:
+ attr = ((attr & foregroundMask) << 4) | ((attr & backgroundMask) >> 4)
+ case 30 <= n && n <= 37:
+ attr &= backgroundMask
+ if (n-30)&1 != 0 {
+ attr |= foregroundRed
+ }
+ if (n-30)&2 != 0 {
+ attr |= foregroundGreen
+ }
+ if (n-30)&4 != 0 {
+ attr |= foregroundBlue
+ }
+ case n == 38: // set foreground color.
+ if i < len(token)-2 && (token[i+1] == "5" || token[i+1] == "05") {
+ if n256, err := strconv.Atoi(token[i+2]); err == nil {
+ if n256foreAttr == nil {
+ n256setup()
+ }
+ attr &= backgroundMask
+ attr |= n256foreAttr[n256]
+ i += 2
+ }
+ } else {
+ attr = attr & (w.oldattr & backgroundMask)
+ }
+ case n == 39: // reset foreground color.
+ attr &= backgroundMask
+ attr |= w.oldattr & foregroundMask
+ case 40 <= n && n <= 47:
+ attr &= foregroundMask
+ if (n-40)&1 != 0 {
+ attr |= backgroundRed
+ }
+ if (n-40)&2 != 0 {
+ attr |= backgroundGreen
+ }
+ if (n-40)&4 != 0 {
+ attr |= backgroundBlue
+ }
+ case n == 48: // set background color.
+ if i < len(token)-2 && token[i+1] == "5" {
+ if n256, err := strconv.Atoi(token[i+2]); err == nil {
+ if n256backAttr == nil {
+ n256setup()
+ }
+ attr &= foregroundMask
+ attr |= n256backAttr[n256]
+ i += 2
+ }
+ } else {
+ attr = attr & (w.oldattr & foregroundMask)
+ }
+ case n == 49: // reset foreground color.
+ attr &= foregroundMask
+ attr |= w.oldattr & backgroundMask
+ case 90 <= n && n <= 97:
+ attr = (attr & backgroundMask)
+ attr |= foregroundIntensity
+ if (n-90)&1 != 0 {
+ attr |= foregroundRed
+ }
+ if (n-90)&2 != 0 {
+ attr |= foregroundGreen
+ }
+ if (n-90)&4 != 0 {
+ attr |= foregroundBlue
+ }
+ case 100 <= n && n <= 107:
+ attr = (attr & foregroundMask)
+ attr |= backgroundIntensity
+ if (n-100)&1 != 0 {
+ attr |= backgroundRed
+ }
+ if (n-100)&2 != 0 {
+ attr |= backgroundGreen
+ }
+ if (n-100)&4 != 0 {
+ attr |= backgroundBlue
+ }
+ }
+ procSetConsoleTextAttribute.Call(uintptr(w.handle), uintptr(attr))
+ }
+ }
+ case 'h':
+ cs := buf.String()
+ if cs == "?25" {
+ var ci consoleCursorInfo
+ procGetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci)))
+ ci.visible = 1
+ procSetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci)))
+ }
+ case 'l':
+ cs := buf.String()
+ if cs == "?25" {
+ var ci consoleCursorInfo
+ procGetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci)))
+ ci.visible = 0
+ procSetConsoleCursorInfo.Call(uintptr(w.handle), uintptr(unsafe.Pointer(&ci)))
+ }
+ }
+ }
+ return len(data) - w.lastbuf.Len(), nil
+}
+
+type consoleColor struct {
+ rgb int
+ red bool
+ green bool
+ blue bool
+ intensity bool
+}
+
+func (c consoleColor) foregroundAttr() (attr word) {
+ if c.red {
+ attr |= foregroundRed
+ }
+ if c.green {
+ attr |= foregroundGreen
+ }
+ if c.blue {
+ attr |= foregroundBlue
+ }
+ if c.intensity {
+ attr |= foregroundIntensity
+ }
+ return
+}
+
+func (c consoleColor) backgroundAttr() (attr word) {
+ if c.red {
+ attr |= backgroundRed
+ }
+ if c.green {
+ attr |= backgroundGreen
+ }
+ if c.blue {
+ attr |= backgroundBlue
+ }
+ if c.intensity {
+ attr |= backgroundIntensity
+ }
+ return
+}
+
+var color16 = []consoleColor{
+ consoleColor{0x000000, false, false, false, false},
+ consoleColor{0x000080, false, false, true, false},
+ consoleColor{0x008000, false, true, false, false},
+ consoleColor{0x008080, false, true, true, false},
+ consoleColor{0x800000, true, false, false, false},
+ consoleColor{0x800080, true, false, true, false},
+ consoleColor{0x808000, true, true, false, false},
+ consoleColor{0xc0c0c0, true, true, true, false},
+ consoleColor{0x808080, false, false, false, true},
+ consoleColor{0x0000ff, false, false, true, true},
+ consoleColor{0x00ff00, false, true, false, true},
+ consoleColor{0x00ffff, false, true, true, true},
+ consoleColor{0xff0000, true, false, false, true},
+ consoleColor{0xff00ff, true, false, true, true},
+ consoleColor{0xffff00, true, true, false, true},
+ consoleColor{0xffffff, true, true, true, true},
+}
+
+type hsv struct {
+ h, s, v float32
+}
+
+func (a hsv) dist(b hsv) float32 {
+ dh := a.h - b.h
+ switch {
+ case dh > 0.5:
+ dh = 1 - dh
+ case dh < -0.5:
+ dh = -1 - dh
+ }
+ ds := a.s - b.s
+ dv := a.v - b.v
+ return float32(math.Sqrt(float64(dh*dh + ds*ds + dv*dv)))
+}
+
+func toHSV(rgb int) hsv {
+ r, g, b := float32((rgb&0xFF0000)>>16)/256.0,
+ float32((rgb&0x00FF00)>>8)/256.0,
+ float32(rgb&0x0000FF)/256.0
+ min, max := minmax3f(r, g, b)
+ h := max - min
+ if h > 0 {
+ if max == r {
+ h = (g - b) / h
+ if h < 0 {
+ h += 6
+ }
+ } else if max == g {
+ h = 2 + (b-r)/h
+ } else {
+ h = 4 + (r-g)/h
+ }
+ }
+ h /= 6.0
+ s := max - min
+ if max != 0 {
+ s /= max
+ }
+ v := max
+ return hsv{h: h, s: s, v: v}
+}
+
+type hsvTable []hsv
+
+func toHSVTable(rgbTable []consoleColor) hsvTable {
+ t := make(hsvTable, len(rgbTable))
+ for i, c := range rgbTable {
+ t[i] = toHSV(c.rgb)
+ }
+ return t
+}
+
+func (t hsvTable) find(rgb int) consoleColor {
+ hsv := toHSV(rgb)
+ n := 7
+ l := float32(5.0)
+ for i, p := range t {
+ d := hsv.dist(p)
+ if d < l {
+ l, n = d, i
+ }
+ }
+ return color16[n]
+}
+
+func minmax3f(a, b, c float32) (min, max float32) {
+ if a < b {
+ if b < c {
+ return a, c
+ } else if a < c {
+ return a, b
+ } else {
+ return c, b
+ }
+ } else {
+ if a < c {
+ return b, c
+ } else if b < c {
+ return b, a
+ } else {
+ return c, a
+ }
+ }
+}
+
+var n256foreAttr []word
+var n256backAttr []word
+
+func n256setup() {
+ n256foreAttr = make([]word, 256)
+ n256backAttr = make([]word, 256)
+ t := toHSVTable(color16)
+ for i, rgb := range color256 {
+ c := t.find(rgb)
+ n256foreAttr[i] = c.foregroundAttr()
+ n256backAttr[i] = c.backgroundAttr()
+ }
+}
diff --git a/vendor/github.com/mattn/go-colorable/noncolorable.go b/vendor/github.com/mattn/go-colorable/noncolorable.go
new file mode 100644
index 000000000..b60801dcd
--- /dev/null
+++ b/vendor/github.com/mattn/go-colorable/noncolorable.go
@@ -0,0 +1,58 @@
+package colorable
+
+import (
+ "bytes"
+ "io"
+)
+
+type NonColorable struct {
+ out io.Writer
+ lastbuf bytes.Buffer
+}
+
+func NewNonColorable(w io.Writer) io.Writer {
+ return &NonColorable{out: w}
+}
+
+func (w *NonColorable) Write(data []byte) (n int, err error) {
+ er := bytes.NewReader(data)
+ var bw [1]byte
+loop:
+ for {
+ c1, err := er.ReadByte()
+ if err != nil {
+ break loop
+ }
+ if c1 != 0x1b {
+ bw[0] = c1
+ w.out.Write(bw[:])
+ continue
+ }
+ c2, err := er.ReadByte()
+ if err != nil {
+ w.lastbuf.WriteByte(c1)
+ break loop
+ }
+ if c2 != 0x5b {
+ w.lastbuf.WriteByte(c1)
+ w.lastbuf.WriteByte(c2)
+ continue
+ }
+
+ var buf bytes.Buffer
+ for {
+ c, err := er.ReadByte()
+ if err != nil {
+ w.lastbuf.WriteByte(c1)
+ w.lastbuf.WriteByte(c2)
+ w.lastbuf.Write(buf.Bytes())
+ break loop
+ }
+ if ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '@' {
+ break
+ }
+ buf.Write([]byte(string(c)))
+ }
+ }
+ return len(data) - w.lastbuf.Len(), nil
+}
diff --git a/vendor/github.com/mattn/go-isatty/LICENSE b/vendor/github.com/mattn/go-isatty/LICENSE
new file mode 100644
index 000000000..65dc692b6
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/LICENSE
@@ -0,0 +1,9 @@
+Copyright (c) Yasuhiro MATSUMOTO <mattn.jp@gmail.com>
+
+MIT License (Expat)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/github.com/mattn/go-isatty/README.md b/vendor/github.com/mattn/go-isatty/README.md
new file mode 100644
index 000000000..74845de4a
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/README.md
@@ -0,0 +1,37 @@
+# go-isatty
+
+isatty for golang
+
+## Usage
+
+```go
+package main
+
+import (
+ "fmt"
+ "github.com/mattn/go-isatty"
+ "os"
+)
+
+func main() {
+ if isatty.IsTerminal(os.Stdout.Fd()) {
+ fmt.Println("Is Terminal")
+ } else {
+ fmt.Println("Is Not Terminal")
+ }
+}
+```
+
+## Installation
+
+```
+$ go get github.com/mattn/go-isatty
+```
+
+# License
+
+MIT
+
+# Author
+
+Yasuhiro Matsumoto (a.k.a mattn)
diff --git a/vendor/github.com/mattn/go-isatty/doc.go b/vendor/github.com/mattn/go-isatty/doc.go
new file mode 100644
index 000000000..17d4f90eb
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/doc.go
@@ -0,0 +1,2 @@
+// Package isatty implements interface to isatty
+package isatty
diff --git a/vendor/github.com/mattn/go-isatty/isatty_appengine.go b/vendor/github.com/mattn/go-isatty/isatty_appengine.go
new file mode 100644
index 000000000..83c588773
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_appengine.go
@@ -0,0 +1,9 @@
+// +build appengine
+
+package isatty
+
+// IsTerminal returns true if the file descriptor is terminal which
+// is always false on on appengine classic which is a sandboxed PaaS.
+func IsTerminal(fd uintptr) bool {
+ return false
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_bsd.go b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
new file mode 100644
index 000000000..42f2514d1
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_bsd.go
@@ -0,0 +1,18 @@
+// +build darwin freebsd openbsd netbsd dragonfly
+// +build !appengine
+
+package isatty
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const ioctlReadTermios = syscall.TIOCGETA
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var termios syscall.Termios
+ _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+ return err == 0
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_linux.go b/vendor/github.com/mattn/go-isatty/isatty_linux.go
new file mode 100644
index 000000000..9d24bac1d
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_linux.go
@@ -0,0 +1,18 @@
+// +build linux
+// +build !appengine
+
+package isatty
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const ioctlReadTermios = syscall.TCGETS
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var termios syscall.Termios
+ _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0)
+ return err == 0
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_solaris.go b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
new file mode 100644
index 000000000..1f0c6bf53
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_solaris.go
@@ -0,0 +1,16 @@
+// +build solaris
+// +build !appengine
+
+package isatty
+
+import (
+ "golang.org/x/sys/unix"
+)
+
+// IsTerminal returns true if the given file descriptor is a terminal.
+// see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c
+func IsTerminal(fd uintptr) bool {
+ var termio unix.Termio
+ err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio)
+ return err == nil
+}
diff --git a/vendor/github.com/mattn/go-isatty/isatty_windows.go b/vendor/github.com/mattn/go-isatty/isatty_windows.go
new file mode 100644
index 000000000..83c398b16
--- /dev/null
+++ b/vendor/github.com/mattn/go-isatty/isatty_windows.go
@@ -0,0 +1,19 @@
+// +build windows
+// +build !appengine
+
+package isatty
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+var kernel32 = syscall.NewLazyDLL("kernel32.dll")
+var procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
+
+// IsTerminal return true if the file descriptor is terminal.
+func IsTerminal(fd uintptr) bool {
+ var st uint32
+ r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0)
+ return r != 0 && e == 0
+}
diff --git a/vendor/github.com/mattn/go-runewidth/.travis.yml b/vendor/github.com/mattn/go-runewidth/.travis.yml
new file mode 100644
index 000000000..5c9c2a30f
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/.travis.yml
@@ -0,0 +1,8 @@
+language: go
+go:
+ - tip
+before_install:
+ - go get github.com/mattn/goveralls
+ - go get golang.org/x/tools/cmd/cover
+script:
+ - $HOME/gopath/bin/goveralls -repotoken lAKAWPzcGsD3A8yBX3BGGtRUdJ6CaGERL
diff --git a/vendor/github.com/mattn/go-runewidth/LICENSE b/vendor/github.com/mattn/go-runewidth/LICENSE
new file mode 100644
index 000000000..91b5cef30
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Yasuhiro Matsumoto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/mattn/go-runewidth/README.mkd b/vendor/github.com/mattn/go-runewidth/README.mkd
new file mode 100644
index 000000000..66663a94b
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/README.mkd
@@ -0,0 +1,27 @@
+go-runewidth
+============
+
+[![Build Status](https://travis-ci.org/mattn/go-runewidth.png?branch=master)](https://travis-ci.org/mattn/go-runewidth)
+[![Coverage Status](https://coveralls.io/repos/mattn/go-runewidth/badge.png?branch=HEAD)](https://coveralls.io/r/mattn/go-runewidth?branch=HEAD)
+[![GoDoc](https://godoc.org/github.com/mattn/go-runewidth?status.svg)](http://godoc.org/github.com/mattn/go-runewidth)
+[![Go Report Card](https://goreportcard.com/badge/github.com/mattn/go-runewidth)](https://goreportcard.com/report/github.com/mattn/go-runewidth)
+
+Provides functions to get fixed width of the character or string.
+
+Usage
+-----
+
+```go
+runewidth.StringWidth("つのだ☆HIRO") == 12
+```
+
+
+Author
+------
+
+Yasuhiro Matsumoto
+
+License
+-------
+
+under the MIT License: http://mattn.mit-license.org/2013
diff --git a/vendor/github.com/mattn/go-runewidth/runewidth.go b/vendor/github.com/mattn/go-runewidth/runewidth.go
new file mode 100644
index 000000000..3e730656b
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/runewidth.go
@@ -0,0 +1,481 @@
+package runewidth
+
+var (
+ // EastAsianWidth will be set true if the current locale is CJK
+ EastAsianWidth = IsEastAsian()
+
+ // DefaultCondition is a condition in current locale
+ DefaultCondition = &Condition{EastAsianWidth}
+)
+
+type interval struct {
+ first rune
+ last rune
+}
+
+var combining = []interval{
+ {0x0300, 0x036F}, {0x0483, 0x0486}, {0x0488, 0x0489},
+ {0x0591, 0x05BD}, {0x05BF, 0x05BF}, {0x05C1, 0x05C2},
+ {0x05C4, 0x05C5}, {0x05C7, 0x05C7}, {0x0600, 0x0603},
+ {0x0610, 0x0615}, {0x064B, 0x065E}, {0x0670, 0x0670},
+ {0x06D6, 0x06E4}, {0x06E7, 0x06E8}, {0x06EA, 0x06ED},
+ {0x070F, 0x070F}, {0x0711, 0x0711}, {0x0730, 0x074A},
+ {0x07A6, 0x07B0}, {0x07EB, 0x07F3}, {0x0901, 0x0902},
+ {0x093C, 0x093C}, {0x0941, 0x0948}, {0x094D, 0x094D},
+ {0x0951, 0x0954}, {0x0962, 0x0963}, {0x0981, 0x0981},
+ {0x09BC, 0x09BC}, {0x09C1, 0x09C4}, {0x09CD, 0x09CD},
+ {0x09E2, 0x09E3}, {0x0A01, 0x0A02}, {0x0A3C, 0x0A3C},
+ {0x0A41, 0x0A42}, {0x0A47, 0x0A48}, {0x0A4B, 0x0A4D},
+ {0x0A70, 0x0A71}, {0x0A81, 0x0A82}, {0x0ABC, 0x0ABC},
+ {0x0AC1, 0x0AC5}, {0x0AC7, 0x0AC8}, {0x0ACD, 0x0ACD},
+ {0x0AE2, 0x0AE3}, {0x0B01, 0x0B01}, {0x0B3C, 0x0B3C},
+ {0x0B3F, 0x0B3F}, {0x0B41, 0x0B43}, {0x0B4D, 0x0B4D},
+ {0x0B56, 0x0B56}, {0x0B82, 0x0B82}, {0x0BC0, 0x0BC0},
+ {0x0BCD, 0x0BCD}, {0x0C3E, 0x0C40}, {0x0C46, 0x0C48},
+ {0x0C4A, 0x0C4D}, {0x0C55, 0x0C56}, {0x0CBC, 0x0CBC},
+ {0x0CBF, 0x0CBF}, {0x0CC6, 0x0CC6}, {0x0CCC, 0x0CCD},
+ {0x0CE2, 0x0CE3}, {0x0D41, 0x0D43}, {0x0D4D, 0x0D4D},
+ {0x0DCA, 0x0DCA}, {0x0DD2, 0x0DD4}, {0x0DD6, 0x0DD6},
+ {0x0E31, 0x0E31}, {0x0E34, 0x0E3A}, {0x0E47, 0x0E4E},
+ {0x0EB1, 0x0EB1}, {0x0EB4, 0x0EB9}, {0x0EBB, 0x0EBC},
+ {0x0EC8, 0x0ECD}, {0x0F18, 0x0F19}, {0x0F35, 0x0F35},
+ {0x0F37, 0x0F37}, {0x0F39, 0x0F39}, {0x0F71, 0x0F7E},
+ {0x0F80, 0x0F84}, {0x0F86, 0x0F87}, {0x0F90, 0x0F97},
+ {0x0F99, 0x0FBC}, {0x0FC6, 0x0FC6}, {0x102D, 0x1030},
+ {0x1032, 0x1032}, {0x1036, 0x1037}, {0x1039, 0x1039},
+ {0x1058, 0x1059}, {0x1160, 0x11FF}, {0x135F, 0x135F},
+ {0x1712, 0x1714}, {0x1732, 0x1734}, {0x1752, 0x1753},
+ {0x1772, 0x1773}, {0x17B4, 0x17B5}, {0x17B7, 0x17BD},
+ {0x17C6, 0x17C6}, {0x17C9, 0x17D3}, {0x17DD, 0x17DD},
+ {0x180B, 0x180D}, {0x18A9, 0x18A9}, {0x1920, 0x1922},
+ {0x1927, 0x1928}, {0x1932, 0x1932}, {0x1939, 0x193B},
+ {0x1A17, 0x1A18}, {0x1B00, 0x1B03}, {0x1B34, 0x1B34},
+ {0x1B36, 0x1B3A}, {0x1B3C, 0x1B3C}, {0x1B42, 0x1B42},
+ {0x1B6B, 0x1B73}, {0x1DC0, 0x1DCA}, {0x1DFE, 0x1DFF},
+ {0x200B, 0x200F}, {0x202A, 0x202E}, {0x2060, 0x2063},
+ {0x206A, 0x206F}, {0x20D0, 0x20EF}, {0x302A, 0x302F},
+ {0x3099, 0x309A}, {0xA806, 0xA806}, {0xA80B, 0xA80B},
+ {0xA825, 0xA826}, {0xFB1E, 0xFB1E}, {0xFE00, 0xFE0F},
+ {0xFE20, 0xFE23}, {0xFEFF, 0xFEFF}, {0xFFF9, 0xFFFB},
+ {0x10A01, 0x10A03}, {0x10A05, 0x10A06}, {0x10A0C, 0x10A0F},
+ {0x10A38, 0x10A3A}, {0x10A3F, 0x10A3F}, {0x1D167, 0x1D169},
+ {0x1D173, 0x1D182}, {0x1D185, 0x1D18B}, {0x1D1AA, 0x1D1AD},
+ {0x1D242, 0x1D244}, {0xE0001, 0xE0001}, {0xE0020, 0xE007F},
+ {0xE0100, 0xE01EF},
+}
+
+type ctype int
+
+const (
+ narrow ctype = iota
+ ambiguous
+ wide
+ halfwidth
+ fullwidth
+ neutral
+)
+
+type intervalType struct {
+ first rune
+ last rune
+ ctype ctype
+}
+
+var ctypes = []intervalType{
+ {0x0020, 0x007E, narrow},
+ {0x00A1, 0x00A1, ambiguous},
+ {0x00A2, 0x00A3, narrow},
+ {0x00A4, 0x00A4, ambiguous},
+ {0x00A5, 0x00A6, narrow},
+ {0x00A7, 0x00A8, ambiguous},
+ {0x00AA, 0x00AA, ambiguous},
+ {0x00AC, 0x00AC, narrow},
+ {0x00AD, 0x00AE, ambiguous},
+ {0x00AF, 0x00AF, narrow},
+ {0x00B0, 0x00B4, ambiguous},
+ {0x00B6, 0x00BA, ambiguous},
+ {0x00BC, 0x00BF, ambiguous},
+ {0x00C6, 0x00C6, ambiguous},
+ {0x00D0, 0x00D0, ambiguous},
+ {0x00D7, 0x00D8, ambiguous},
+ {0x00DE, 0x00E1, ambiguous},
+ {0x00E6, 0x00E6, ambiguous},
+ {0x00E8, 0x00EA, ambiguous},
+ {0x00EC, 0x00ED, ambiguous},
+ {0x00F0, 0x00F0, ambiguous},
+ {0x00F2, 0x00F3, ambiguous},
+ {0x00F7, 0x00FA, ambiguous},
+ {0x00FC, 0x00FC, ambiguous},
+ {0x00FE, 0x00FE, ambiguous},
+ {0x0101, 0x0101, ambiguous},
+ {0x0111, 0x0111, ambiguous},
+ {0x0113, 0x0113, ambiguous},
+ {0x011B, 0x011B, ambiguous},
+ {0x0126, 0x0127, ambiguous},
+ {0x012B, 0x012B, ambiguous},
+ {0x0131, 0x0133, ambiguous},
+ {0x0138, 0x0138, ambiguous},
+ {0x013F, 0x0142, ambiguous},
+ {0x0144, 0x0144, ambiguous},
+ {0x0148, 0x014B, ambiguous},
+ {0x014D, 0x014D, ambiguous},
+ {0x0152, 0x0153, ambiguous},
+ {0x0166, 0x0167, ambiguous},
+ {0x016B, 0x016B, ambiguous},
+ {0x01CE, 0x01CE, ambiguous},
+ {0x01D0, 0x01D0, ambiguous},
+ {0x01D2, 0x01D2, ambiguous},
+ {0x01D4, 0x01D4, ambiguous},
+ {0x01D6, 0x01D6, ambiguous},
+ {0x01D8, 0x01D8, ambiguous},
+ {0x01DA, 0x01DA, ambiguous},
+ {0x01DC, 0x01DC, ambiguous},
+ {0x0251, 0x0251, ambiguous},
+ {0x0261, 0x0261, ambiguous},
+ {0x02C4, 0x02C4, ambiguous},
+ {0x02C7, 0x02C7, ambiguous},
+ {0x02C9, 0x02CB, ambiguous},
+ {0x02CD, 0x02CD, ambiguous},
+ {0x02D0, 0x02D0, ambiguous},
+ {0x02D8, 0x02DB, ambiguous},
+ {0x02DD, 0x02DD, ambiguous},
+ {0x02DF, 0x02DF, ambiguous},
+ {0x0300, 0x036F, ambiguous},
+ {0x0391, 0x03A2, ambiguous},
+ {0x03A3, 0x03A9, ambiguous},
+ {0x03B1, 0x03C1, ambiguous},
+ {0x03C3, 0x03C9, ambiguous},
+ {0x0401, 0x0401, ambiguous},
+ {0x0410, 0x044F, ambiguous},
+ {0x0451, 0x0451, ambiguous},
+ {0x1100, 0x115F, wide},
+ {0x2010, 0x2010, ambiguous},
+ {0x2013, 0x2016, ambiguous},
+ {0x2018, 0x2019, ambiguous},
+ {0x201C, 0x201D, ambiguous},
+ {0x2020, 0x2022, ambiguous},
+ {0x2024, 0x2027, ambiguous},
+ {0x2030, 0x2030, ambiguous},
+ {0x2032, 0x2033, ambiguous},
+ {0x2035, 0x2035, ambiguous},
+ {0x203B, 0x203B, ambiguous},
+ {0x203E, 0x203E, ambiguous},
+ {0x2074, 0x2074, ambiguous},
+ {0x207F, 0x207F, ambiguous},
+ {0x2081, 0x2084, ambiguous},
+ {0x20A9, 0x20A9, halfwidth},
+ {0x20AC, 0x20AC, ambiguous},
+ {0x2103, 0x2103, ambiguous},
+ {0x2105, 0x2105, ambiguous},
+ {0x2109, 0x2109, ambiguous},
+ {0x2113, 0x2113, ambiguous},
+ {0x2116, 0x2116, ambiguous},
+ {0x2121, 0x2122, ambiguous},
+ {0x2126, 0x2126, ambiguous},
+ {0x212B, 0x212B, ambiguous},
+ {0x2153, 0x2154, ambiguous},
+ {0x215B, 0x215E, ambiguous},
+ {0x2160, 0x216B, ambiguous},
+ {0x2170, 0x2179, ambiguous},
+ {0x2189, 0x218A, ambiguous},
+ {0x2190, 0x2199, ambiguous},
+ {0x21B8, 0x21B9, ambiguous},
+ {0x21D2, 0x21D2, ambiguous},
+ {0x21D4, 0x21D4, ambiguous},
+ {0x21E7, 0x21E7, ambiguous},
+ {0x2200, 0x2200, ambiguous},
+ {0x2202, 0x2203, ambiguous},
+ {0x2207, 0x2208, ambiguous},
+ {0x220B, 0x220B, ambiguous},
+ {0x220F, 0x220F, ambiguous},
+ {0x2211, 0x2211, ambiguous},
+ {0x2215, 0x2215, ambiguous},
+ {0x221A, 0x221A, ambiguous},
+ {0x221D, 0x2220, ambiguous},
+ {0x2223, 0x2223, ambiguous},
+ {0x2225, 0x2225, ambiguous},
+ {0x2227, 0x222C, ambiguous},
+ {0x222E, 0x222E, ambiguous},
+ {0x2234, 0x2237, ambiguous},
+ {0x223C, 0x223D, ambiguous},
+ {0x2248, 0x2248, ambiguous},
+ {0x224C, 0x224C, ambiguous},
+ {0x2252, 0x2252, ambiguous},
+ {0x2260, 0x2261, ambiguous},
+ {0x2264, 0x2267, ambiguous},
+ {0x226A, 0x226B, ambiguous},
+ {0x226E, 0x226F, ambiguous},
+ {0x2282, 0x2283, ambiguous},
+ {0x2286, 0x2287, ambiguous},
+ {0x2295, 0x2295, ambiguous},
+ {0x2299, 0x2299, ambiguous},
+ {0x22A5, 0x22A5, ambiguous},
+ {0x22BF, 0x22BF, ambiguous},
+ {0x2312, 0x2312, ambiguous},
+ {0x2329, 0x232A, wide},
+ {0x2460, 0x24E9, ambiguous},
+ {0x24EB, 0x254B, ambiguous},
+ {0x2550, 0x2573, ambiguous},
+ {0x2580, 0x258F, ambiguous},
+ {0x2592, 0x2595, ambiguous},
+ {0x25A0, 0x25A1, ambiguous},
+ {0x25A3, 0x25A9, ambiguous},
+ {0x25B2, 0x25B3, ambiguous},
+ {0x25B6, 0x25B7, ambiguous},
+ {0x25BC, 0x25BD, ambiguous},
+ {0x25C0, 0x25C1, ambiguous},
+ {0x25C6, 0x25C8, ambiguous},
+ {0x25CB, 0x25CB, ambiguous},
+ {0x25CE, 0x25D1, ambiguous},
+ {0x25E2, 0x25E5, ambiguous},
+ {0x25EF, 0x25EF, ambiguous},
+ {0x2605, 0x2606, ambiguous},
+ {0x2609, 0x2609, ambiguous},
+ {0x260E, 0x260F, ambiguous},
+ {0x2614, 0x2615, ambiguous},
+ {0x261C, 0x261C, ambiguous},
+ {0x261E, 0x261E, ambiguous},
+ {0x2640, 0x2640, ambiguous},
+ {0x2642, 0x2642, ambiguous},
+ {0x2660, 0x2661, ambiguous},
+ {0x2663, 0x2665, ambiguous},
+ {0x2667, 0x266A, ambiguous},
+ {0x266C, 0x266D, ambiguous},
+ {0x266F, 0x266F, ambiguous},
+ {0x269E, 0x269F, ambiguous},
+ {0x26BE, 0x26BF, ambiguous},
+ {0x26C4, 0x26CD, ambiguous},
+ {0x26CF, 0x26E1, ambiguous},
+ {0x26E3, 0x26E3, ambiguous},
+ {0x26E8, 0x26FF, ambiguous},
+ {0x273D, 0x273D, ambiguous},
+ {0x2757, 0x2757, ambiguous},
+ {0x2776, 0x277F, ambiguous},
+ {0x27E6, 0x27ED, narrow},
+ {0x2985, 0x2986, narrow},
+ {0x2B55, 0x2B59, ambiguous},
+ {0x2E80, 0x2E9A, wide},
+ {0x2E9B, 0x2EF4, wide},
+ {0x2F00, 0x2FD6, wide},
+ {0x2FF0, 0x2FFC, wide},
+ {0x3000, 0x3000, fullwidth},
+ {0x3001, 0x303E, wide},
+ {0x3041, 0x3097, wide},
+ {0x3099, 0x3100, wide},
+ {0x3105, 0x312E, wide},
+ {0x3131, 0x318F, wide},
+ {0x3190, 0x31BB, wide},
+ {0x31C0, 0x31E4, wide},
+ {0x31F0, 0x321F, wide},
+ {0x3220, 0x3247, wide},
+ {0x3248, 0x324F, ambiguous},
+ {0x3250, 0x32FF, wide},
+ {0x3300, 0x4DBF, wide},
+ {0x4E00, 0xA48D, wide},
+ {0xA490, 0xA4C7, wide},
+ {0xA960, 0xA97D, wide},
+ {0xAC00, 0xD7A4, wide},
+ {0xE000, 0xF8FF, ambiguous},
+ {0xF900, 0xFAFF, wide},
+ {0xFE00, 0xFE0F, ambiguous},
+ {0xFE10, 0xFE1A, wide},
+ {0xFE30, 0xFE53, wide},
+ {0xFE54, 0xFE67, wide},
+ {0xFE68, 0xFE6C, wide},
+ {0xFF01, 0xFF60, fullwidth},
+ {0xFF61, 0xFFBF, halfwidth},
+ {0xFFC2, 0xFFC8, halfwidth},
+ {0xFFCA, 0xFFD0, halfwidth},
+ {0xFFD2, 0xFFD8, halfwidth},
+ {0xFFDA, 0xFFDD, halfwidth},
+ {0xFFE0, 0xFFE7, fullwidth},
+ {0xFFE8, 0xFFEF, halfwidth},
+ {0xFFFD, 0xFFFE, ambiguous},
+ {0x1B000, 0x1B002, wide},
+ {0x1F100, 0x1F10A, ambiguous},
+ {0x1F110, 0x1F12D, ambiguous},
+ {0x1F130, 0x1F169, ambiguous},
+ {0x1F170, 0x1F19B, ambiguous},
+ {0x1F200, 0x1F203, wide},
+ {0x1F210, 0x1F23B, wide},
+ {0x1F240, 0x1F249, wide},
+ {0x1F250, 0x1F252, wide},
+ {0x20000, 0x2FFFE, wide},
+ {0x30000, 0x3FFFE, wide},
+ {0xE0100, 0xE01F0, ambiguous},
+ {0xF0000, 0xFFFFD, ambiguous},
+ {0x100000, 0x10FFFE, ambiguous},
+}
+
+// Condition have flag EastAsianWidth whether the current locale is CJK or not.
+type Condition struct {
+ EastAsianWidth bool
+}
+
+// NewCondition return new instance of Condition which is current locale.
+func NewCondition() *Condition {
+ return &Condition{EastAsianWidth}
+}
+
+// RuneWidth returns the number of cells in r.
+// See http://www.unicode.org/reports/tr11/
+func (c *Condition) RuneWidth(r rune) int {
+ if r == 0 {
+ return 0
+ }
+ if r < 32 || (r >= 0x7f && r < 0xa0) {
+ return 1
+ }
+ for _, iv := range combining {
+ if iv.first <= r && r <= iv.last {
+ return 0
+ }
+ }
+
+ if c.EastAsianWidth && IsAmbiguousWidth(r) {
+ return 2
+ }
+
+ if r >= 0x1100 &&
+ (r <= 0x115f || r == 0x2329 || r == 0x232a ||
+ (r >= 0x2e80 && r <= 0xa4cf && r != 0x303f) ||
+ (r >= 0xac00 && r <= 0xd7a3) ||
+ (r >= 0xf900 && r <= 0xfaff) ||
+ (r >= 0xfe30 && r <= 0xfe6f) ||
+ (r >= 0xff00 && r <= 0xff60) ||
+ (r >= 0xffe0 && r <= 0xffe6) ||
+ (r >= 0x20000 && r <= 0x2fffd) ||
+ (r >= 0x30000 && r <= 0x3fffd)) {
+ return 2
+ }
+ return 1
+}
+
+// StringWidth return width as you can see
+func (c *Condition) StringWidth(s string) (width int) {
+ for _, r := range []rune(s) {
+ width += c.RuneWidth(r)
+ }
+ return width
+}
+
+// Truncate return string truncated with w cells
+func (c *Condition) Truncate(s string, w int, tail string) string {
+ if c.StringWidth(s) <= w {
+ return s
+ }
+ r := []rune(s)
+ tw := c.StringWidth(tail)
+ w -= tw
+ width := 0
+ i := 0
+ for ; i < len(r); i++ {
+ cw := c.RuneWidth(r[i])
+ if width+cw > w {
+ break
+ }
+ width += cw
+ }
+ return string(r[0:i]) + tail
+}
+
+// Wrap return string wrapped with w cells
+func (c *Condition) Wrap(s string, w int) string {
+ width := 0
+ out := ""
+ for _, r := range []rune(s) {
+ cw := RuneWidth(r)
+ if r == '\n' {
+ out += string(r)
+ width = 0
+ continue
+ } else if width+cw > w {
+ out += "\n"
+ width = 0
+ out += string(r)
+ width += cw
+ continue
+ }
+ out += string(r)
+ width += cw
+ }
+ return out
+}
+
+// FillLeft return string filled in left by spaces in w cells
+func (c *Condition) FillLeft(s string, w int) string {
+ width := c.StringWidth(s)
+ count := w - width
+ if count > 0 {
+ b := make([]byte, count)
+ for i := range b {
+ b[i] = ' '
+ }
+ return string(b) + s
+ }
+ return s
+}
+
+// FillRight return string filled in left by spaces in w cells
+func (c *Condition) FillRight(s string, w int) string {
+ width := c.StringWidth(s)
+ count := w - width
+ if count > 0 {
+ b := make([]byte, count)
+ for i := range b {
+ b[i] = ' '
+ }
+ return s + string(b)
+ }
+ return s
+}
+
+// RuneWidth returns the number of cells in r.
+// See http://www.unicode.org/reports/tr11/
+func RuneWidth(r rune) int {
+ return DefaultCondition.RuneWidth(r)
+}
+
+func ct(r rune) ctype {
+ for _, iv := range ctypes {
+ if iv.first <= r && r <= iv.last {
+ return iv.ctype
+ }
+ }
+ return neutral
+}
+
+// IsAmbiguousWidth returns whether is ambiguous width or not.
+func IsAmbiguousWidth(r rune) bool {
+ return ct(r) == ambiguous
+}
+
+// IsNeutralWidth returns whether is neutral width or not.
+func IsNeutralWidth(r rune) bool {
+ return ct(r) == neutral
+}
+
+// StringWidth return width as you can see
+func StringWidth(s string) (width int) {
+ return DefaultCondition.StringWidth(s)
+}
+
+// Truncate return string truncated with w cells
+func Truncate(s string, w int, tail string) string {
+ return DefaultCondition.Truncate(s, w, tail)
+}
+
+// Wrap return string wrapped with w cells
+func Wrap(s string, w int) string {
+ return DefaultCondition.Wrap(s, w)
+}
+
+// FillLeft return string filled in left by spaces in w cells
+func FillLeft(s string, w int) string {
+ return DefaultCondition.FillLeft(s, w)
+}
+
+// FillRight return string filled in left by spaces in w cells
+func FillRight(s string, w int) string {
+ return DefaultCondition.FillRight(s, w)
+}
diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_js.go b/vendor/github.com/mattn/go-runewidth/runewidth_js.go
new file mode 100644
index 000000000..0ce32c5e7
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/runewidth_js.go
@@ -0,0 +1,8 @@
+// +build js
+
+package runewidth
+
+func IsEastAsian() bool {
+ // TODO: Implement this for the web. Detect east asian in a compatible way, and return true.
+ return false
+}
diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_posix.go b/vendor/github.com/mattn/go-runewidth/runewidth_posix.go
new file mode 100644
index 000000000..c579e9a31
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/runewidth_posix.go
@@ -0,0 +1,77 @@
+// +build !windows,!js
+
+package runewidth
+
+import (
+ "os"
+ "regexp"
+ "strings"
+)
+
+var reLoc = regexp.MustCompile(`^[a-z][a-z][a-z]?(?:_[A-Z][A-Z])?\.(.+)`)
+
+var mblenTable = map[string]int{
+ "utf-8": 6,
+ "utf8": 6,
+ "jis": 8,
+ "eucjp": 3,
+ "euckr": 2,
+ "euccn": 2,
+ "sjis": 2,
+ "cp932": 2,
+ "cp51932": 2,
+ "cp936": 2,
+ "cp949": 2,
+ "cp950": 2,
+ "big5": 2,
+ "gbk": 2,
+ "gb2312": 2,
+}
+
+func isEastAsian(locale string) bool {
+ charset := strings.ToLower(locale)
+ r := reLoc.FindStringSubmatch(locale)
+ if len(r) == 2 {
+ charset = strings.ToLower(r[1])
+ }
+
+ if strings.HasSuffix(charset, "@cjk_narrow") {
+ return false
+ }
+
+ for pos, b := range []byte(charset) {
+ if b == '@' {
+ charset = charset[:pos]
+ break
+ }
+ }
+ max := 1
+ if m, ok := mblenTable[charset]; ok {
+ max = m
+ }
+ if max > 1 && (charset[0] != 'u' ||
+ strings.HasPrefix(locale, "ja") ||
+ strings.HasPrefix(locale, "ko") ||
+ strings.HasPrefix(locale, "zh")) {
+ return true
+ }
+ return false
+}
+
+// IsEastAsian return true if the current locale is CJK
+func IsEastAsian() bool {
+ locale := os.Getenv("LC_CTYPE")
+ if locale == "" {
+ locale = os.Getenv("LANG")
+ }
+
+ // ignore C locale
+ if locale == "POSIX" || locale == "C" {
+ return false
+ }
+ if len(locale) > 1 && locale[0] == 'C' && (locale[1] == '.' || locale[1] == '-') {
+ return false
+ }
+
+ return isEastAsian(locale)
+}
diff --git a/vendor/github.com/mattn/go-runewidth/runewidth_windows.go b/vendor/github.com/mattn/go-runewidth/runewidth_windows.go
new file mode 100644
index 000000000..0258876b9
--- /dev/null
+++ b/vendor/github.com/mattn/go-runewidth/runewidth_windows.go
@@ -0,0 +1,25 @@
+package runewidth
+
+import (
+ "syscall"
+)
+
+var (
+ kernel32 = syscall.NewLazyDLL("kernel32")
+ procGetConsoleOutputCP = kernel32.NewProc("GetConsoleOutputCP")
+)
+
+// IsEastAsian return true if the current locale is CJK
+func IsEastAsian() bool {
+ r1, _, _ := procGetConsoleOutputCP.Call()
+ if r1 == 0 {
+ return false
+ }
+
+ switch int(r1) {
+ case 932, 51932, 936, 949, 950:
+ return true
+ }
+
+ return false
+}
diff --git a/vendor/github.com/mitchellh/go-wordwrap/LICENSE.md b/vendor/github.com/mitchellh/go-wordwrap/LICENSE.md
new file mode 100644
index 000000000..229851590
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-wordwrap/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Mitchell Hashimoto
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/mitchellh/go-wordwrap/README.md b/vendor/github.com/mitchellh/go-wordwrap/README.md
new file mode 100644
index 000000000..60ae31170
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-wordwrap/README.md
@@ -0,0 +1,39 @@
+# go-wordwrap
+
+`go-wordwrap` (Golang package: `wordwrap`) is a package for Go that
+automatically wraps words into multiple lines. The primary use case for this
+is in formatting CLI output, but of course word wrapping is a generally useful
+thing to do.
+
+## Installation and Usage
+
+Install using `go get github.com/mitchellh/go-wordwrap`.
+
+Full documentation is available at
+http://godoc.org/github.com/mitchellh/go-wordwrap
+
+Below is an example of its usage ignoring errors:
+
+```go
+wrapped := wordwrap.WrapString("foo bar baz", 3)
+fmt.Println(wrapped)
+```
+
+Would output:
+
+```
+foo
+bar
+baz
+```
+
+## Word Wrap Algorithm
+
+This library doesn't use any clever algorithm for word wrapping. The wrapping
+is actually very naive: whenever there is whitespace or an explicit linebreak.
+The goal of this library is for word wrapping CLI output, so the input is
+typically pretty well controlled human language. Because of this, the naive
+approach typically works just fine.
+
+In the future, we'd like to make the algorithm more advanced. We would do
+so without breaking the API.
diff --git a/vendor/github.com/mitchellh/go-wordwrap/wordwrap.go b/vendor/github.com/mitchellh/go-wordwrap/wordwrap.go
new file mode 100644
index 000000000..ac67205bc
--- /dev/null
+++ b/vendor/github.com/mitchellh/go-wordwrap/wordwrap.go
@@ -0,0 +1,73 @@
+package wordwrap
+
+import (
+ "bytes"
+ "unicode"
+)
+
+// WrapString wraps the given string within lim width in characters.
+//
+// Wrapping is currently naive and only happens at white-space. A future
+// version of the library will implement smarter wrapping. This means that
+// pathological cases can dramatically reach past the limit, such as a very
+// long word.
+func WrapString(s string, lim uint) string {
+ // Initialize a buffer with a slightly larger size to account for breaks
+ init := make([]byte, 0, len(s))
+ buf := bytes.NewBuffer(init)
+
+ var current uint
+ var wordBuf, spaceBuf bytes.Buffer
+
+ for _, char := range s {
+ if char == '\n' {
+ if wordBuf.Len() == 0 {
+ if current+uint(spaceBuf.Len()) > lim {
+ current = 0
+ } else {
+ current += uint(spaceBuf.Len())
+ spaceBuf.WriteTo(buf)
+ }
+ spaceBuf.Reset()
+ } else {
+ current += uint(spaceBuf.Len() + wordBuf.Len())
+ spaceBuf.WriteTo(buf)
+ spaceBuf.Reset()
+ wordBuf.WriteTo(buf)
+ wordBuf.Reset()
+ }
+ buf.WriteRune(char)
+ current = 0
+ } else if unicode.IsSpace(char) {
+ if spaceBuf.Len() == 0 || wordBuf.Len() > 0 {
+ current += uint(spaceBuf.Len() + wordBuf.Len())
+ spaceBuf.WriteTo(buf)
+ spaceBuf.Reset()
+ wordBuf.WriteTo(buf)
+ wordBuf.Reset()
+ }
+
+ spaceBuf.WriteRune(char)
+ } else {
+
+ wordBuf.WriteRune(char)
+
+ if current+uint(spaceBuf.Len()+wordBuf.Len()) > lim && uint(wordBuf.Len()) < lim {
+ buf.WriteRune('\n')
+ current = 0
+ spaceBuf.Reset()
+ }
+ }
+ }
+
+ if wordBuf.Len() == 0 {
+ if current+uint(spaceBuf.Len()) <= lim {
+ spaceBuf.WriteTo(buf)
+ }
+ } else {
+ spaceBuf.WriteTo(buf)
+ wordBuf.WriteTo(buf)
+ }
+
+ return buf.String()
+}
diff --git a/vendor/github.com/nsf/termbox-go/AUTHORS b/vendor/github.com/nsf/termbox-go/AUTHORS
new file mode 100644
index 000000000..fe26fb0fb
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/AUTHORS
@@ -0,0 +1,4 @@
+# Please keep this file sorted.
+
+Georg Reinke <guelfey@googlemail.com>
+nsf <no.smile.face@gmail.com>
diff --git a/vendor/github.com/nsf/termbox-go/LICENSE b/vendor/github.com/nsf/termbox-go/LICENSE
new file mode 100644
index 000000000..d9bc068ce
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/LICENSE
@@ -0,0 +1,19 @@
+Copyright (C) 2012 termbox-go authors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/nsf/termbox-go/README.md b/vendor/github.com/nsf/termbox-go/README.md
new file mode 100644
index 000000000..d152da407
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/README.md
@@ -0,0 +1,29 @@
+## Termbox
+Termbox is a library that provides a minimalistic API which allows the programmer to write text-based user interfaces. The library is crossplatform and has both terminal-based implementations on *nix operating systems and a winapi console based implementation for windows operating systems. The basic idea is an abstraction of the greatest common subset of features available on all major terminals and other terminal-like APIs in a minimalistic fashion. Small API means it is easy to implement, test, maintain and learn it, that's what makes the termbox a distinct library in its area.
+
+### Installation
+Install and update this go package with `go get -u github.com/nsf/termbox-go`
+
+### Examples
+For examples of what can be done take a look at demos in the _demos directory. You can try them with go run: `go run _demos/keyboard.go`
+
+There are also some interesting projects using termbox-go:
+ - [godit](https://github.com/nsf/godit) is an emacsish lightweight text editor written using termbox.
+ - [gomatrix](https://github.com/GeertJohan/gomatrix) connects to The Matrix and displays its data streams in your terminal.
+ - [gotetris](https://github.com/jjinux/gotetris) is an implementation of Tetris.
+ - [sokoban-go](https://github.com/rn2dy/sokoban-go) is an implementation of sokoban game.
+ - [hecate](https://github.com/evanmiller/hecate) is a hex editor designed by Satan.
+ - [httopd](https://github.com/verdverm/httopd) is top for httpd logs.
+ - [mop](https://github.com/michaeldv/mop) is stock market tracker for hackers.
+ - [termui](https://github.com/gizak/termui) is a terminal dashboard.
+ - [termloop](https://github.com/JoelOtter/termloop) is a terminal game engine.
+ - [xterm-color-chart](https://github.com/kutuluk/xterm-color-chart) is a XTerm 256 color chart.
+ - [gocui](https://github.com/jroimartin/gocui) is a minimalist Go library aimed at creating console user interfaces.
+ - [dry](https://github.com/moncho/dry) is an interactive cli to manage Docker containers.
+ - [pxl](https://github.com/ichinaski/pxl) displays images in the terminal.
+ - [snake-game](https://github.com/DyegoCosta/snake-game) is an implementation of the Snake game.
+ - [gone](https://github.com/guillaumebreton/gone) is a CLI pomodoro® timer.
+ - [Spoof.go](https://github.com/sabey/spoofgo) controllable movement spoofing from the cli
+
+### API reference
+[godoc.org/github.com/nsf/termbox-go](http://godoc.org/github.com/nsf/termbox-go)
diff --git a/vendor/github.com/nsf/termbox-go/api.go b/vendor/github.com/nsf/termbox-go/api.go
new file mode 100644
index 000000000..b339e532f
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/api.go
@@ -0,0 +1,458 @@
+// +build !windows
+
+package termbox
+
+import "github.com/mattn/go-runewidth"
+import "fmt"
+import "os"
+import "os/signal"
+import "syscall"
+import "runtime"
+
+// public API
+
+// Initializes termbox library. This function should be called before any other functions.
+// After successful initialization, the library must be finalized using 'Close' function.
+//
+// Example usage:
+// err := termbox.Init()
+// if err != nil {
+// panic(err)
+// }
+// defer termbox.Close()
+func Init() error {
+ var err error
+
+ out, err = os.OpenFile("/dev/tty", syscall.O_WRONLY, 0)
+ if err != nil {
+ return err
+ }
+ in, err = syscall.Open("/dev/tty", syscall.O_RDONLY, 0)
+ if err != nil {
+ return err
+ }
+
+ err = setup_term()
+ if err != nil {
+ return fmt.Errorf("termbox: error while reading terminfo data: %v", err)
+ }
+
+ signal.Notify(sigwinch, syscall.SIGWINCH)
+ signal.Notify(sigio, syscall.SIGIO)
+
+ _, err = fcntl(in, syscall.F_SETFL, syscall.O_ASYNC|syscall.O_NONBLOCK)
+ if err != nil {
+ return err
+ }
+ _, err = fcntl(in, syscall.F_SETOWN, syscall.Getpid())
+ if runtime.GOOS != "darwin" && err != nil {
+ return err
+ }
+ err = tcgetattr(out.Fd(), &orig_tios)
+ if err != nil {
+ return err
+ }
+
+ tios := orig_tios
+ tios.Iflag &^= syscall_IGNBRK | syscall_BRKINT | syscall_PARMRK |
+ syscall_ISTRIP | syscall_INLCR | syscall_IGNCR |
+ syscall_ICRNL | syscall_IXON
+ tios.Lflag &^= syscall_ECHO | syscall_ECHONL | syscall_ICANON |
+ syscall_ISIG | syscall_IEXTEN
+ tios.Cflag &^= syscall_CSIZE | syscall_PARENB
+ tios.Cflag |= syscall_CS8
+ tios.Cc[syscall_VMIN] = 1
+ tios.Cc[syscall_VTIME] = 0
+
+ err = tcsetattr(out.Fd(), &tios)
+ if err != nil {
+ return err
+ }
+
+ out.WriteString(funcs[t_enter_ca])
+ out.WriteString(funcs[t_enter_keypad])
+ out.WriteString(funcs[t_hide_cursor])
+ out.WriteString(funcs[t_clear_screen])
+
+ termw, termh = get_term_size(out.Fd())
+ back_buffer.init(termw, termh)
+ front_buffer.init(termw, termh)
+ back_buffer.clear()
+ front_buffer.clear()
+
+ go func() {
+ buf := make([]byte, 128)
+ for {
+ select {
+ case <-sigio:
+ for {
+ n, err := syscall.Read(in, buf)
+ if err == syscall.EAGAIN || err == syscall.EWOULDBLOCK {
+ break
+ }
+ select {
+ case input_comm <- input_event{buf[:n], err}:
+ ie := <-input_comm
+ buf = ie.data[:128]
+ case <-quit:
+ return
+ }
+ }
+ case <-quit:
+ return
+ }
+ }
+ }()
+
+ IsInit = true
+ return nil
+}
+
+// Interrupt an in-progress call to PollEvent by causing it to return
+// EventInterrupt. Note that this function will block until the PollEvent
+// function has successfully been interrupted.
+func Interrupt() {
+ interrupt_comm <- struct{}{}
+}
+
+// Finalizes termbox library, should be called after successful initialization
+// when termbox's functionality isn't required anymore.
+func Close() {
+ quit <- 1
+ out.WriteString(funcs[t_show_cursor])
+ out.WriteString(funcs[t_sgr0])
+ out.WriteString(funcs[t_clear_screen])
+ out.WriteString(funcs[t_exit_ca])
+ out.WriteString(funcs[t_exit_keypad])
+ out.WriteString(funcs[t_exit_mouse])
+ tcsetattr(out.Fd(), &orig_tios)
+
+ out.Close()
+ syscall.Close(in)
+
+ // reset the state, so that on next Init() it will work again
+ termw = 0
+ termh = 0
+ input_mode = InputEsc
+ out = nil
+ in = 0
+ lastfg = attr_invalid
+ lastbg = attr_invalid
+ lastx = coord_invalid
+ lasty = coord_invalid
+ cursor_x = cursor_hidden
+ cursor_y = cursor_hidden
+ foreground = ColorDefault
+ background = ColorDefault
+ IsInit = false
+}
+
+// Synchronizes the internal back buffer with the terminal.
+func Flush() error {
+ // invalidate cursor position
+ lastx = coord_invalid
+ lasty = coord_invalid
+
+ update_size_maybe()
+
+ for y := 0; y < front_buffer.height; y++ {
+ line_offset := y * front_buffer.width
+ for x := 0; x < front_buffer.width; {
+ cell_offset := line_offset + x
+ back := &back_buffer.cells[cell_offset]
+ front := &front_buffer.cells[cell_offset]
+ if back.Ch < ' ' {
+ back.Ch = ' '
+ }
+ w := runewidth.RuneWidth(back.Ch)
+ if w == 0 || w == 2 && runewidth.IsAmbiguousWidth(back.Ch) {
+ w = 1
+ }
+ if *back == *front {
+ x += w
+ continue
+ }
+ *front = *back
+ send_attr(back.Fg, back.Bg)
+
+ if w == 2 && x == front_buffer.width-1 {
+ // there's not enough space for 2-cells rune,
+ // let's just put a space in there
+ send_char(x, y, ' ')
+ } else {
+ send_char(x, y, back.Ch)
+ if w == 2 {
+ next := cell_offset + 1
+ front_buffer.cells[next] = Cell{
+ Ch: 0,
+ Fg: back.Fg,
+ Bg: back.Bg,
+ }
+ }
+ }
+ x += w
+ }
+ }
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ write_cursor(cursor_x, cursor_y)
+ }
+ return flush()
+}
+
+// Sets the position of the cursor. See also HideCursor().
+func SetCursor(x, y int) {
+ if is_cursor_hidden(cursor_x, cursor_y) && !is_cursor_hidden(x, y) {
+ outbuf.WriteString(funcs[t_show_cursor])
+ }
+
+ if !is_cursor_hidden(cursor_x, cursor_y) && is_cursor_hidden(x, y) {
+ outbuf.WriteString(funcs[t_hide_cursor])
+ }
+
+ cursor_x, cursor_y = x, y
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ write_cursor(cursor_x, cursor_y)
+ }
+}
+
+// The shortcut for SetCursor(-1, -1).
+func HideCursor() {
+ SetCursor(cursor_hidden, cursor_hidden)
+}
+
+// Changes cell's parameters in the internal back buffer at the specified
+// position.
+func SetCell(x, y int, ch rune, fg, bg Attribute) {
+ if x < 0 || x >= back_buffer.width {
+ return
+ }
+ if y < 0 || y >= back_buffer.height {
+ return
+ }
+
+ back_buffer.cells[y*back_buffer.width+x] = Cell{ch, fg, bg}
+}
+
+// Returns a slice into the termbox's back buffer. You can get its dimensions
+// using 'Size' function. The slice remains valid as long as no 'Clear' or
+// 'Flush' function calls were made after call to this function.
+func CellBuffer() []Cell {
+ return back_buffer.cells
+}
+
+// After getting a raw event from PollRawEvent function call, you can parse it
+// again into an ordinary one using termbox logic. That is parse an event as
+// termbox would do it. Returned event in addition to usual Event struct fields
+// sets N field to the amount of bytes used within 'data' slice. If the length
+// of 'data' slice is zero or event cannot be parsed for some other reason, the
+// function will return a special event type: EventNone.
+//
+// IMPORTANT: EventNone may contain a non-zero N, which means you should skip
+// these bytes, because termbox cannot recognize them.
+//
+// NOTE: This API is experimental and may change in future.
+func ParseEvent(data []byte) Event {
+ event := Event{Type: EventKey}
+ ok := extract_event(data, &event)
+ if !ok {
+ return Event{Type: EventNone, N: event.N}
+ }
+ return event
+}
+
+// Wait for an event and return it. This is a blocking function call. Instead
+// of EventKey and EventMouse it returns EventRaw events. Raw event is written
+// into `data` slice and Event's N field is set to the amount of bytes written.
+// The minimum required length of the 'data' slice is 1. This requirement may
+// vary on different platforms.
+//
+// NOTE: This API is experimental and may change in future.
+func PollRawEvent(data []byte) Event {
+ if len(data) == 0 {
+ panic("len(data) >= 1 is a requirement")
+ }
+
+ var event Event
+ if extract_raw_event(data, &event) {
+ return event
+ }
+
+ for {
+ select {
+ case ev := <-input_comm:
+ if ev.err != nil {
+ return Event{Type: EventError, Err: ev.err}
+ }
+
+ inbuf = append(inbuf, ev.data...)
+ input_comm <- ev
+ if extract_raw_event(data, &event) {
+ return event
+ }
+ case <-interrupt_comm:
+ event.Type = EventInterrupt
+ return event
+
+ case <-sigwinch:
+ event.Type = EventResize
+ event.Width, event.Height = get_term_size(out.Fd())
+ return event
+ }
+ }
+}
+
+// Wait for an event and return it. This is a blocking function call.
+func PollEvent() Event {
+ var event Event
+
+ // try to extract event from input buffer, return on success
+ event.Type = EventKey
+ ok := extract_event(inbuf, &event)
+ if event.N != 0 {
+ copy(inbuf, inbuf[event.N:])
+ inbuf = inbuf[:len(inbuf)-event.N]
+ }
+ if ok {
+ return event
+ }
+
+ for {
+ select {
+ case ev := <-input_comm:
+ if ev.err != nil {
+ return Event{Type: EventError, Err: ev.err}
+ }
+
+ inbuf = append(inbuf, ev.data...)
+ input_comm <- ev
+ ok := extract_event(inbuf, &event)
+ if event.N != 0 {
+ copy(inbuf, inbuf[event.N:])
+ inbuf = inbuf[:len(inbuf)-event.N]
+ }
+ if ok {
+ return event
+ }
+ case <-interrupt_comm:
+ event.Type = EventInterrupt
+ return event
+
+ case <-sigwinch:
+ event.Type = EventResize
+ event.Width, event.Height = get_term_size(out.Fd())
+ return event
+ }
+ }
+ panic("unreachable")
+}
+
+// Returns the size of the internal back buffer (which is mostly the same as
+// terminal's window size in characters). But it doesn't always match the size
+// of the terminal window, after the terminal size has changed, the internal
+// back buffer will get in sync only after Clear or Flush function calls.
+func Size() (width int, height int) {
+ return termw, termh
+}
+
+// Clears the internal back buffer.
+func Clear(fg, bg Attribute) error {
+ foreground, background = fg, bg
+ err := update_size_maybe()
+ back_buffer.clear()
+ return err
+}
+
+// Sets termbox input mode. Termbox has two input modes:
+//
+// 1. Esc input mode. When ESC sequence is in the buffer and it doesn't match
+// any known sequence. ESC means KeyEsc. This is the default input mode.
+//
+// 2. Alt input mode. When ESC sequence is in the buffer and it doesn't match
+// any known sequence. ESC enables ModAlt modifier for the next keyboard event.
+//
+// Both input modes can be OR'ed with Mouse mode. Setting Mouse mode bit up will
+// enable mouse button press/release and drag events.
+//
+// If 'mode' is InputCurrent, returns the current input mode. See also Input*
+// constants.
+func SetInputMode(mode InputMode) InputMode {
+ if mode == InputCurrent {
+ return input_mode
+ }
+ if mode&(InputEsc|InputAlt) == 0 {
+ mode |= InputEsc
+ }
+ if mode&(InputEsc|InputAlt) == InputEsc|InputAlt {
+ mode &^= InputAlt
+ }
+ if mode&InputMouse != 0 {
+ out.WriteString(funcs[t_enter_mouse])
+ } else {
+ out.WriteString(funcs[t_exit_mouse])
+ }
+
+ input_mode = mode
+ return input_mode
+}
+
+// Sets the termbox output mode. Termbox has four output options:
+//
+// 1. OutputNormal => [1..8]
+// This mode provides 8 different colors:
+// black, red, green, yellow, blue, magenta, cyan, white
+// Shortcut: ColorBlack, ColorRed, ...
+// Attributes: AttrBold, AttrUnderline, AttrReverse
+//
+// Example usage:
+// SetCell(x, y, '@', ColorBlack | AttrBold, ColorRed);
+//
+// 2. Output256 => [1..256]
+// In this mode you can leverage the 256 terminal mode:
+// 0x01 - 0x08: the 8 colors as in OutputNormal
+// 0x09 - 0x10: Color* | AttrBold
+// 0x11 - 0xe8: 216 different colors
+// 0xe9 - 0x1ff: 24 different shades of grey
+//
+// Example usage:
+// SetCell(x, y, '@', 184, 240);
+// SetCell(x, y, '@', 0xb8, 0xf0);
+//
+// 3. Output216 => [1..216]
+// This mode supports the 3rd range of the 256 mode only.
+// But you dont need to provide an offset.
+//
+// 4. OutputGrayscale => [1..26]
+// This mode supports the 4th range of the 256 mode
+// and black and white colors from 3th range of the 256 mode
+// But you dont need to provide an offset.
+//
+// In all modes, 0x00 represents the default color.
+//
+// `go run _demos/output.go` to see its impact on your terminal.
+//
+// If 'mode' is OutputCurrent, it returns the current output mode.
+//
+// Note that this may return a different OutputMode than the one requested,
+// as the requested mode may not be available on the target platform.
+func SetOutputMode(mode OutputMode) OutputMode {
+ if mode == OutputCurrent {
+ return output_mode
+ }
+
+ output_mode = mode
+ return output_mode
+}
+
+// Sync comes handy when something causes desync between termbox's understanding
+// of a terminal buffer and the reality. Such as a third party process. Sync
+// forces a complete resync between the termbox and a terminal, it may not be
+// visually pretty though.
+func Sync() error {
+ front_buffer.clear()
+ err := send_clear()
+ if err != nil {
+ return err
+ }
+
+ return Flush()
+}
diff --git a/vendor/github.com/nsf/termbox-go/api_common.go b/vendor/github.com/nsf/termbox-go/api_common.go
new file mode 100644
index 000000000..9f23661f5
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/api_common.go
@@ -0,0 +1,187 @@
+// termbox is a library for creating cross-platform text-based interfaces
+package termbox
+
+// public API, common OS agnostic part
+
+type (
+ InputMode int
+ OutputMode int
+ EventType uint8
+ Modifier uint8
+ Key uint16
+ Attribute uint16
+)
+
+// This type represents a termbox event. The 'Mod', 'Key' and 'Ch' fields are
+// valid if 'Type' is EventKey. The 'Width' and 'Height' fields are valid if
+// 'Type' is EventResize. The 'Err' field is valid if 'Type' is EventError.
+type Event struct {
+ Type EventType // one of Event* constants
+ Mod Modifier // one of Mod* constants or 0
+ Key Key // one of Key* constants, invalid if 'Ch' is not 0
+ Ch rune // a unicode character
+ Width int // width of the screen
+ Height int // height of the screen
+ Err error // error in case if input failed
+ MouseX int // x coord of mouse
+ MouseY int // y coord of mouse
+ N int // number of bytes written when getting a raw event
+}
+
+// A cell, single conceptual entity on the screen. The screen is basically a 2d
+// array of cells. 'Ch' is a unicode character, 'Fg' and 'Bg' are foreground
+// and background attributes respectively.
+type Cell struct {
+ Ch rune
+ Fg Attribute
+ Bg Attribute
+}
+
+// To know if termbox has been initialized or not
+var (
+ IsInit bool = false
+)
+
+// Key constants, see Event.Key field.
+const (
+ KeyF1 Key = 0xFFFF - iota
+ KeyF2
+ KeyF3
+ KeyF4
+ KeyF5
+ KeyF6
+ KeyF7
+ KeyF8
+ KeyF9
+ KeyF10
+ KeyF11
+ KeyF12
+ KeyInsert
+ KeyDelete
+ KeyHome
+ KeyEnd
+ KeyPgup
+ KeyPgdn
+ KeyArrowUp
+ KeyArrowDown
+ KeyArrowLeft
+ KeyArrowRight
+ key_min // see terminfo
+ MouseLeft
+ MouseMiddle
+ MouseRight
+ MouseRelease
+ MouseWheelUp
+ MouseWheelDown
+)
+
+const (
+ KeyCtrlTilde Key = 0x00
+ KeyCtrl2 Key = 0x00
+ KeyCtrlSpace Key = 0x00
+ KeyCtrlA Key = 0x01
+ KeyCtrlB Key = 0x02
+ KeyCtrlC Key = 0x03
+ KeyCtrlD Key = 0x04
+ KeyCtrlE Key = 0x05
+ KeyCtrlF Key = 0x06
+ KeyCtrlG Key = 0x07
+ KeyBackspace Key = 0x08
+ KeyCtrlH Key = 0x08
+ KeyTab Key = 0x09
+ KeyCtrlI Key = 0x09
+ KeyCtrlJ Key = 0x0A
+ KeyCtrlK Key = 0x0B
+ KeyCtrlL Key = 0x0C
+ KeyEnter Key = 0x0D
+ KeyCtrlM Key = 0x0D
+ KeyCtrlN Key = 0x0E
+ KeyCtrlO Key = 0x0F
+ KeyCtrlP Key = 0x10
+ KeyCtrlQ Key = 0x11
+ KeyCtrlR Key = 0x12
+ KeyCtrlS Key = 0x13
+ KeyCtrlT Key = 0x14
+ KeyCtrlU Key = 0x15
+ KeyCtrlV Key = 0x16
+ KeyCtrlW Key = 0x17
+ KeyCtrlX Key = 0x18
+ KeyCtrlY Key = 0x19
+ KeyCtrlZ Key = 0x1A
+ KeyEsc Key = 0x1B
+ KeyCtrlLsqBracket Key = 0x1B
+ KeyCtrl3 Key = 0x1B
+ KeyCtrl4 Key = 0x1C
+ KeyCtrlBackslash Key = 0x1C
+ KeyCtrl5 Key = 0x1D
+ KeyCtrlRsqBracket Key = 0x1D
+ KeyCtrl6 Key = 0x1E
+ KeyCtrl7 Key = 0x1F
+ KeyCtrlSlash Key = 0x1F
+ KeyCtrlUnderscore Key = 0x1F
+ KeySpace Key = 0x20
+ KeyBackspace2 Key = 0x7F
+ KeyCtrl8 Key = 0x7F
+)
+
+// Alt modifier constant, see Event.Mod field and SetInputMode function.
+const (
+ ModAlt Modifier = 1 << iota
+ ModMotion
+)
+
+// Cell colors, you can combine a color with multiple attributes using bitwise
+// OR ('|').
+const (
+ ColorDefault Attribute = iota
+ ColorBlack
+ ColorRed
+ ColorGreen
+ ColorYellow
+ ColorBlue
+ ColorMagenta
+ ColorCyan
+ ColorWhite
+)
+
+// Cell attributes, it is possible to use multiple attributes by combining them
+// using bitwise OR ('|'). Although, colors cannot be combined. But you can
+// combine attributes and a single color.
+//
+// It's worth mentioning that some platforms don't support certain attibutes.
+// For example windows console doesn't support AttrUnderline. And on some
+// terminals applying AttrBold to background may result in blinking text. Use
+// them with caution and test your code on various terminals.
+const (
+ AttrBold Attribute = 1 << (iota + 9)
+ AttrUnderline
+ AttrReverse
+)
+
+// Input mode. See SetInputMode function.
+const (
+ InputEsc InputMode = 1 << iota
+ InputAlt
+ InputMouse
+ InputCurrent InputMode = 0
+)
+
+// Output mode. See SetOutputMode function.
+const (
+ OutputCurrent OutputMode = iota
+ OutputNormal
+ Output256
+ Output216
+ OutputGrayscale
+)
+
+// Event type. See Event.Type field.
+const (
+ EventKey EventType = iota
+ EventResize
+ EventMouse
+ EventError
+ EventInterrupt
+ EventRaw
+ EventNone
+)
diff --git a/vendor/github.com/nsf/termbox-go/api_windows.go b/vendor/github.com/nsf/termbox-go/api_windows.go
new file mode 100644
index 000000000..7def30a67
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/api_windows.go
@@ -0,0 +1,239 @@
+package termbox
+
+import (
+ "syscall"
+)
+
+// public API
+
+// Initializes termbox library. This function should be called before any other functions.
+// After successful initialization, the library must be finalized using 'Close' function.
+//
+// Example usage:
+// err := termbox.Init()
+// if err != nil {
+// panic(err)
+// }
+// defer termbox.Close()
+func Init() error {
+ var err error
+
+ interrupt, err = create_event()
+ if err != nil {
+ return err
+ }
+
+ in, err = syscall.Open("CONIN$", syscall.O_RDWR, 0)
+ if err != nil {
+ return err
+ }
+ out, err = syscall.Open("CONOUT$", syscall.O_RDWR, 0)
+ if err != nil {
+ return err
+ }
+
+ err = get_console_mode(in, &orig_mode)
+ if err != nil {
+ return err
+ }
+
+ err = set_console_mode(in, enable_window_input)
+ if err != nil {
+ return err
+ }
+
+ orig_size = get_term_size(out)
+ win_size := get_win_size(out)
+
+ err = set_console_screen_buffer_size(out, win_size)
+ if err != nil {
+ return err
+ }
+
+ err = get_console_cursor_info(out, &orig_cursor_info)
+ if err != nil {
+ return err
+ }
+
+ show_cursor(false)
+ term_size = get_term_size(out)
+ back_buffer.init(int(term_size.x), int(term_size.y))
+ front_buffer.init(int(term_size.x), int(term_size.y))
+ back_buffer.clear()
+ front_buffer.clear()
+ clear()
+
+ diffbuf = make([]diff_msg, 0, 32)
+
+ go input_event_producer()
+ IsInit = true
+ return nil
+}
+
+// Finalizes termbox library, should be called after successful initialization
+// when termbox's functionality isn't required anymore.
+func Close() {
+ // we ignore errors here, because we can't really do anything about them
+ Clear(0, 0)
+ Flush()
+
+ // stop event producer
+ cancel_comm <- true
+ set_event(interrupt)
+ select {
+ case <-input_comm:
+ default:
+ }
+ <-cancel_done_comm
+
+ set_console_cursor_info(out, &orig_cursor_info)
+ set_console_cursor_position(out, coord{})
+ set_console_screen_buffer_size(out, orig_size)
+ set_console_mode(in, orig_mode)
+ syscall.Close(in)
+ syscall.Close(out)
+ syscall.Close(interrupt)
+ IsInit = false
+}
+
+// Interrupt an in-progress call to PollEvent by causing it to return
+// EventInterrupt. Note that this function will block until the PollEvent
+// function has successfully been interrupted.
+func Interrupt() {
+ interrupt_comm <- struct{}{}
+}
+
+// Synchronizes the internal back buffer with the terminal.
+func Flush() error {
+ update_size_maybe()
+ prepare_diff_messages()
+ for _, diff := range diffbuf {
+ r := small_rect{
+ left: 0,
+ top: diff.pos,
+ right: term_size.x - 1,
+ bottom: diff.pos + diff.lines - 1,
+ }
+ write_console_output(out, diff.chars, r)
+ }
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ move_cursor(cursor_x, cursor_y)
+ }
+ return nil
+}
+
+// Sets the position of the cursor. See also HideCursor().
+func SetCursor(x, y int) {
+ if is_cursor_hidden(cursor_x, cursor_y) && !is_cursor_hidden(x, y) {
+ show_cursor(true)
+ }
+
+ if !is_cursor_hidden(cursor_x, cursor_y) && is_cursor_hidden(x, y) {
+ show_cursor(false)
+ }
+
+ cursor_x, cursor_y = x, y
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ move_cursor(cursor_x, cursor_y)
+ }
+}
+
+// The shortcut for SetCursor(-1, -1).
+func HideCursor() {
+ SetCursor(cursor_hidden, cursor_hidden)
+}
+
+// Changes cell's parameters in the internal back buffer at the specified
+// position.
+func SetCell(x, y int, ch rune, fg, bg Attribute) {
+ if x < 0 || x >= back_buffer.width {
+ return
+ }
+ if y < 0 || y >= back_buffer.height {
+ return
+ }
+
+ back_buffer.cells[y*back_buffer.width+x] = Cell{ch, fg, bg}
+}
+
+// Returns a slice into the termbox's back buffer. You can get its dimensions
+// using 'Size' function. The slice remains valid as long as no 'Clear' or
+// 'Flush' function calls were made after call to this function.
+func CellBuffer() []Cell {
+ return back_buffer.cells
+}
+
+// Wait for an event and return it. This is a blocking function call.
+func PollEvent() Event {
+ select {
+ case ev := <-input_comm:
+ return ev
+ case <-interrupt_comm:
+ return Event{Type: EventInterrupt}
+ }
+}
+
+// Returns the size of the internal back buffer (which is mostly the same as
+// console's window size in characters). But it doesn't always match the size
+// of the console window, after the console size has changed, the internal back
+// buffer will get in sync only after Clear or Flush function calls.
+func Size() (int, int) {
+ return int(term_size.x), int(term_size.y)
+}
+
+// Clears the internal back buffer.
+func Clear(fg, bg Attribute) error {
+ foreground, background = fg, bg
+ update_size_maybe()
+ back_buffer.clear()
+ return nil
+}
+
+// Sets termbox input mode. Termbox has two input modes:
+//
+// 1. Esc input mode. When ESC sequence is in the buffer and it doesn't match
+// any known sequence. ESC means KeyEsc. This is the default input mode.
+//
+// 2. Alt input mode. When ESC sequence is in the buffer and it doesn't match
+// any known sequence. ESC enables ModAlt modifier for the next keyboard event.
+//
+// Both input modes can be OR'ed with Mouse mode. Setting Mouse mode bit up will
+// enable mouse button press/release and drag events.
+//
+// If 'mode' is InputCurrent, returns the current input mode. See also Input*
+// constants.
+func SetInputMode(mode InputMode) InputMode {
+ if mode == InputCurrent {
+ return input_mode
+ }
+ if mode&InputMouse != 0 {
+ err := set_console_mode(in, enable_window_input|enable_mouse_input|enable_extended_flags)
+ if err != nil {
+ panic(err)
+ }
+ } else {
+ err := set_console_mode(in, enable_window_input)
+ if err != nil {
+ panic(err)
+ }
+ }
+
+ input_mode = mode
+ return input_mode
+}
+
+// Sets the termbox output mode.
+//
+// Windows console does not support extra colour modes,
+// so this will always set and return OutputNormal.
+func SetOutputMode(mode OutputMode) OutputMode {
+ return OutputNormal
+}
+
+// Sync comes handy when something causes desync between termbox's understanding
+// of a terminal buffer and the reality. Such as a third party process. Sync
+// forces a complete resync between the termbox and a terminal, it may not be
+// visually pretty though. At the moment on Windows it does nothing.
+func Sync() error {
+ return nil
+}
diff --git a/vendor/github.com/nsf/termbox-go/collect_terminfo.py b/vendor/github.com/nsf/termbox-go/collect_terminfo.py
new file mode 100755
index 000000000..5e50975e6
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/collect_terminfo.py
@@ -0,0 +1,110 @@
+#!/usr/bin/env python
+
+import sys, os, subprocess
+
+def escaped(s):
+ return repr(s)[1:-1]
+
+def tput(term, name):
+ try:
+ return subprocess.check_output(['tput', '-T%s' % term, name]).decode()
+ except subprocess.CalledProcessError as e:
+ return e.output.decode()
+
+
+def w(s):
+ if s == None:
+ return
+ sys.stdout.write(s)
+
+terminals = {
+ 'xterm' : 'xterm',
+ 'rxvt-256color' : 'rxvt_256color',
+ 'rxvt-unicode' : 'rxvt_unicode',
+ 'linux' : 'linux',
+ 'Eterm' : 'eterm',
+ 'screen' : 'screen'
+}
+
+keys = [
+ "F1", "kf1",
+ "F2", "kf2",
+ "F3", "kf3",
+ "F4", "kf4",
+ "F5", "kf5",
+ "F6", "kf6",
+ "F7", "kf7",
+ "F8", "kf8",
+ "F9", "kf9",
+ "F10", "kf10",
+ "F11", "kf11",
+ "F12", "kf12",
+ "INSERT", "kich1",
+ "DELETE", "kdch1",
+ "HOME", "khome",
+ "END", "kend",
+ "PGUP", "kpp",
+ "PGDN", "knp",
+ "KEY_UP", "kcuu1",
+ "KEY_DOWN", "kcud1",
+ "KEY_LEFT", "kcub1",
+ "KEY_RIGHT", "kcuf1"
+]
+
+funcs = [
+ "T_ENTER_CA", "smcup",
+ "T_EXIT_CA", "rmcup",
+ "T_SHOW_CURSOR", "cnorm",
+ "T_HIDE_CURSOR", "civis",
+ "T_CLEAR_SCREEN", "clear",
+ "T_SGR0", "sgr0",
+ "T_UNDERLINE", "smul",
+ "T_BOLD", "bold",
+ "T_BLINK", "blink",
+ "T_REVERSE", "rev",
+ "T_ENTER_KEYPAD", "smkx",
+ "T_EXIT_KEYPAD", "rmkx"
+]
+
+def iter_pairs(iterable):
+ iterable = iter(iterable)
+ while True:
+ yield (next(iterable), next(iterable))
+
+def do_term(term, nick):
+ w("// %s\n" % term)
+ w("var %s_keys = []string{\n\t" % nick)
+ for k, v in iter_pairs(keys):
+ w('"')
+ w(escaped(tput(term, v)))
+ w('",')
+ w("\n}\n")
+ w("var %s_funcs = []string{\n\t" % nick)
+ for k,v in iter_pairs(funcs):
+ w('"')
+ if v == "sgr":
+ w("\\033[3%d;4%dm")
+ elif v == "cup":
+ w("\\033[%d;%dH")
+ else:
+ w(escaped(tput(term, v)))
+ w('", ')
+ w("\n}\n\n")
+
+def do_terms(d):
+ w("var terms = []struct {\n")
+ w("\tname string\n")
+ w("\tkeys []string\n")
+ w("\tfuncs []string\n")
+ w("}{\n")
+ for k, v in d.items():
+ w('\t{"%s", %s_keys, %s_funcs},\n' % (k, v, v))
+ w("}\n\n")
+
+w("// +build !windows\n\npackage termbox\n\n")
+
+for k,v in terminals.items():
+ do_term(k, v)
+
+do_terms(terminals)
+
diff --git a/vendor/github.com/nsf/termbox-go/syscalls.go b/vendor/github.com/nsf/termbox-go/syscalls.go
new file mode 100644
index 000000000..4f52bb9af
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls.go
@@ -0,0 +1,39 @@
+// +build ignore
+
+package termbox
+
+/*
+#include <termios.h>
+#include <sys/ioctl.h>
+*/
+import "C"
+
+type syscall_Termios C.struct_termios
+
+const (
+ syscall_IGNBRK = C.IGNBRK
+ syscall_BRKINT = C.BRKINT
+ syscall_PARMRK = C.PARMRK
+ syscall_ISTRIP = C.ISTRIP
+ syscall_INLCR = C.INLCR
+ syscall_IGNCR = C.IGNCR
+ syscall_ICRNL = C.ICRNL
+ syscall_IXON = C.IXON
+ syscall_OPOST = C.OPOST
+ syscall_ECHO = C.ECHO
+ syscall_ECHONL = C.ECHONL
+ syscall_ICANON = C.ICANON
+ syscall_ISIG = C.ISIG
+ syscall_IEXTEN = C.IEXTEN
+ syscall_CSIZE = C.CSIZE
+ syscall_PARENB = C.PARENB
+ syscall_CS8 = C.CS8
+ syscall_VMIN = C.VMIN
+ syscall_VTIME = C.VTIME
+
+ // on darwin change these to (on *bsd too?):
+ // C.TIOCGETA
+ // C.TIOCSETA
+ syscall_TCGETS = C.TCGETS
+ syscall_TCSETS = C.TCSETS
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_darwin.go b/vendor/github.com/nsf/termbox-go/syscalls_darwin.go
new file mode 100644
index 000000000..25b78f7ab
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_darwin.go
@@ -0,0 +1,41 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+// +build !amd64
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x402c7413
+ syscall_TCSETS = 0x802c7414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_darwin_amd64.go b/vendor/github.com/nsf/termbox-go/syscalls_darwin_amd64.go
new file mode 100644
index 000000000..11f25be79
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_darwin_amd64.go
@@ -0,0 +1,40 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint64
+ Oflag uint64
+ Cflag uint64
+ Lflag uint64
+ Cc [20]uint8
+ Pad_cgo_0 [4]byte
+ Ispeed uint64
+ Ospeed uint64
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x40487413
+ syscall_TCSETS = 0x80487414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_dragonfly.go b/vendor/github.com/nsf/termbox-go/syscalls_dragonfly.go
new file mode 100644
index 000000000..e03624ebc
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_dragonfly.go
@@ -0,0 +1,39 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x402c7413
+ syscall_TCSETS = 0x802c7414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_freebsd.go b/vendor/github.com/nsf/termbox-go/syscalls_freebsd.go
new file mode 100644
index 000000000..e03624ebc
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_freebsd.go
@@ -0,0 +1,39 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x402c7413
+ syscall_TCSETS = 0x802c7414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_linux.go b/vendor/github.com/nsf/termbox-go/syscalls_linux.go
new file mode 100644
index 000000000..b88960de6
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_linux.go
@@ -0,0 +1,33 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+import "syscall"
+
+type syscall_Termios syscall.Termios
+
+const (
+ syscall_IGNBRK = syscall.IGNBRK
+ syscall_BRKINT = syscall.BRKINT
+ syscall_PARMRK = syscall.PARMRK
+ syscall_ISTRIP = syscall.ISTRIP
+ syscall_INLCR = syscall.INLCR
+ syscall_IGNCR = syscall.IGNCR
+ syscall_ICRNL = syscall.ICRNL
+ syscall_IXON = syscall.IXON
+ syscall_OPOST = syscall.OPOST
+ syscall_ECHO = syscall.ECHO
+ syscall_ECHONL = syscall.ECHONL
+ syscall_ICANON = syscall.ICANON
+ syscall_ISIG = syscall.ISIG
+ syscall_IEXTEN = syscall.IEXTEN
+ syscall_CSIZE = syscall.CSIZE
+ syscall_PARENB = syscall.PARENB
+ syscall_CS8 = syscall.CS8
+ syscall_VMIN = syscall.VMIN
+ syscall_VTIME = syscall.VTIME
+
+ syscall_TCGETS = syscall.TCGETS
+ syscall_TCSETS = syscall.TCSETS
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_netbsd.go b/vendor/github.com/nsf/termbox-go/syscalls_netbsd.go
new file mode 100644
index 000000000..49a3355b9
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_netbsd.go
@@ -0,0 +1,39 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed int32
+ Ospeed int32
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x402c7413
+ syscall_TCSETS = 0x802c7414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_openbsd.go b/vendor/github.com/nsf/termbox-go/syscalls_openbsd.go
new file mode 100644
index 000000000..49a3355b9
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_openbsd.go
@@ -0,0 +1,39 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs syscalls.go
+
+package termbox
+
+type syscall_Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]uint8
+ Ispeed int32
+ Ospeed int32
+}
+
+const (
+ syscall_IGNBRK = 0x1
+ syscall_BRKINT = 0x2
+ syscall_PARMRK = 0x8
+ syscall_ISTRIP = 0x20
+ syscall_INLCR = 0x40
+ syscall_IGNCR = 0x80
+ syscall_ICRNL = 0x100
+ syscall_IXON = 0x200
+ syscall_OPOST = 0x1
+ syscall_ECHO = 0x8
+ syscall_ECHONL = 0x10
+ syscall_ICANON = 0x100
+ syscall_ISIG = 0x80
+ syscall_IEXTEN = 0x400
+ syscall_CSIZE = 0x300
+ syscall_PARENB = 0x1000
+ syscall_CS8 = 0x300
+ syscall_VMIN = 0x10
+ syscall_VTIME = 0x11
+
+ syscall_TCGETS = 0x402c7413
+ syscall_TCSETS = 0x802c7414
+)
diff --git a/vendor/github.com/nsf/termbox-go/syscalls_windows.go b/vendor/github.com/nsf/termbox-go/syscalls_windows.go
new file mode 100644
index 000000000..472d002a5
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/syscalls_windows.go
@@ -0,0 +1,61 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -DUNICODE syscalls.go
+
+package termbox
+
+const (
+ foreground_blue = 0x1
+ foreground_green = 0x2
+ foreground_red = 0x4
+ foreground_intensity = 0x8
+ background_blue = 0x10
+ background_green = 0x20
+ background_red = 0x40
+ background_intensity = 0x80
+ std_input_handle = -0xa
+ std_output_handle = -0xb
+ key_event = 0x1
+ mouse_event = 0x2
+ window_buffer_size_event = 0x4
+ enable_window_input = 0x8
+ enable_mouse_input = 0x10
+ enable_extended_flags = 0x80
+
+ vk_f1 = 0x70
+ vk_f2 = 0x71
+ vk_f3 = 0x72
+ vk_f4 = 0x73
+ vk_f5 = 0x74
+ vk_f6 = 0x75
+ vk_f7 = 0x76
+ vk_f8 = 0x77
+ vk_f9 = 0x78
+ vk_f10 = 0x79
+ vk_f11 = 0x7a
+ vk_f12 = 0x7b
+ vk_insert = 0x2d
+ vk_delete = 0x2e
+ vk_home = 0x24
+ vk_end = 0x23
+ vk_pgup = 0x21
+ vk_pgdn = 0x22
+ vk_arrow_up = 0x26
+ vk_arrow_down = 0x28
+ vk_arrow_left = 0x25
+ vk_arrow_right = 0x27
+ vk_backspace = 0x8
+ vk_tab = 0x9
+ vk_enter = 0xd
+ vk_esc = 0x1b
+ vk_space = 0x20
+
+ left_alt_pressed = 0x2
+ left_ctrl_pressed = 0x8
+ right_alt_pressed = 0x1
+ right_ctrl_pressed = 0x4
+ shift_pressed = 0x10
+
+ generic_read = 0x80000000
+ generic_write = 0x40000000
+ console_textmode_buffer = 0x1
+)
diff --git a/vendor/github.com/nsf/termbox-go/termbox.go b/vendor/github.com/nsf/termbox-go/termbox.go
new file mode 100644
index 000000000..6e5ba6c8f
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/termbox.go
@@ -0,0 +1,514 @@
+// +build !windows
+
+package termbox
+
+import "unicode/utf8"
+import "bytes"
+import "syscall"
+import "unsafe"
+import "strings"
+import "strconv"
+import "os"
+import "io"
+
+// private API
+
+const (
+ t_enter_ca = iota
+ t_exit_ca
+ t_show_cursor
+ t_hide_cursor
+ t_clear_screen
+ t_sgr0
+ t_underline
+ t_bold
+ t_blink
+ t_reverse
+ t_enter_keypad
+ t_exit_keypad
+ t_enter_mouse
+ t_exit_mouse
+ t_max_funcs
+)
+
+const (
+ coord_invalid = -2
+ attr_invalid = Attribute(0xFFFF)
+)
+
+type input_event struct {
+ data []byte
+ err error
+}
+
+var (
+ // term specific sequences
+ keys []string
+ funcs []string
+
+ // termbox inner state
+ orig_tios syscall_Termios
+ back_buffer cellbuf
+ front_buffer cellbuf
+ termw int
+ termh int
+ input_mode = InputEsc
+ output_mode = OutputNormal
+ out *os.File
+ in int
+ lastfg = attr_invalid
+ lastbg = attr_invalid
+ lastx = coord_invalid
+ lasty = coord_invalid
+ cursor_x = cursor_hidden
+ cursor_y = cursor_hidden
+ foreground = ColorDefault
+ background = ColorDefault
+ inbuf = make([]byte, 0, 64)
+ outbuf bytes.Buffer
+ sigwinch = make(chan os.Signal, 1)
+ sigio = make(chan os.Signal, 1)
+ quit = make(chan int)
+ input_comm = make(chan input_event)
+ interrupt_comm = make(chan struct{})
+ intbuf = make([]byte, 0, 16)
+
+ // grayscale indexes
+ grayscale = []Attribute{
+ 0, 17, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 232,
+ }
+)
+
+func write_cursor(x, y int) {
+ outbuf.WriteString("\033[")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(y+1), 10))
+ outbuf.WriteString(";")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(x+1), 10))
+ outbuf.WriteString("H")
+}
+
+func write_sgr_fg(a Attribute) {
+ switch output_mode {
+ case Output256, Output216, OutputGrayscale:
+ outbuf.WriteString("\033[38;5;")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(a-1), 10))
+ outbuf.WriteString("m")
+ default:
+ outbuf.WriteString("\033[3")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(a-1), 10))
+ outbuf.WriteString("m")
+ }
+}
+
+func write_sgr_bg(a Attribute) {
+ switch output_mode {
+ case Output256, Output216, OutputGrayscale:
+ outbuf.WriteString("\033[48;5;")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(a-1), 10))
+ outbuf.WriteString("m")
+ default:
+ outbuf.WriteString("\033[4")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(a-1), 10))
+ outbuf.WriteString("m")
+ }
+}
+
+func write_sgr(fg, bg Attribute) {
+ switch output_mode {
+ case Output256, Output216, OutputGrayscale:
+ outbuf.WriteString("\033[38;5;")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(fg-1), 10))
+ outbuf.WriteString("m")
+ outbuf.WriteString("\033[48;5;")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(bg-1), 10))
+ outbuf.WriteString("m")
+ default:
+ outbuf.WriteString("\033[3")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(fg-1), 10))
+ outbuf.WriteString(";4")
+ outbuf.Write(strconv.AppendUint(intbuf, uint64(bg-1), 10))
+ outbuf.WriteString("m")
+ }
+}
+
+type winsize struct {
+ rows uint16
+ cols uint16
+ xpixels uint16
+ ypixels uint16
+}
+
+func get_term_size(fd uintptr) (int, int) {
+ var sz winsize
+ _, _, _ = syscall.Syscall(syscall.SYS_IOCTL,
+ fd, uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(&sz)))
+ return int(sz.cols), int(sz.rows)
+}
+
+func send_attr(fg, bg Attribute) {
+ if fg == lastfg && bg == lastbg {
+ return
+ }
+
+ outbuf.WriteString(funcs[t_sgr0])
+
+ var fgcol, bgcol Attribute
+
+ switch output_mode {
+ case Output256:
+ fgcol = fg & 0x1FF
+ bgcol = bg & 0x1FF
+ case Output216:
+ fgcol = fg & 0xFF
+ bgcol = bg & 0xFF
+ if fgcol > 216 {
+ fgcol = ColorDefault
+ }
+ if bgcol > 216 {
+ bgcol = ColorDefault
+ }
+ if fgcol != ColorDefault {
+ fgcol += 0x10
+ }
+ if bgcol != ColorDefault {
+ bgcol += 0x10
+ }
+ case OutputGrayscale:
+ fgcol = fg & 0x1F
+ bgcol = bg & 0x1F
+ if fgcol > 26 {
+ fgcol = ColorDefault
+ }
+ if bgcol > 26 {
+ bgcol = ColorDefault
+ }
+ if fgcol != ColorDefault {
+ fgcol = grayscale[fgcol]
+ }
+ if bgcol != ColorDefault {
+ bgcol = grayscale[bgcol]
+ }
+ default:
+ fgcol = fg & 0x0F
+ bgcol = bg & 0x0F
+ }
+
+ if fgcol != ColorDefault {
+ if bgcol != ColorDefault {
+ write_sgr(fgcol, bgcol)
+ } else {
+ write_sgr_fg(fgcol)
+ }
+ } else if bgcol != ColorDefault {
+ write_sgr_bg(bgcol)
+ }
+
+ if fg&AttrBold != 0 {
+ outbuf.WriteString(funcs[t_bold])
+ }
+ if bg&AttrBold != 0 {
+ outbuf.WriteString(funcs[t_blink])
+ }
+ if fg&AttrUnderline != 0 {
+ outbuf.WriteString(funcs[t_underline])
+ }
+ if fg&AttrReverse|bg&AttrReverse != 0 {
+ outbuf.WriteString(funcs[t_reverse])
+ }
+
+ lastfg, lastbg = fg, bg
+}
+
+func send_char(x, y int, ch rune) {
+ var buf [8]byte
+ n := utf8.EncodeRune(buf[:], ch)
+ if x-1 != lastx || y != lasty {
+ write_cursor(x, y)
+ }
+ lastx, lasty = x, y
+ outbuf.Write(buf[:n])
+}
+
+func flush() error {
+ _, err := io.Copy(out, &outbuf)
+ outbuf.Reset()
+ if err != nil {
+ return err
+ }
+ return nil
+}
+
+func send_clear() error {
+ send_attr(foreground, background)
+ outbuf.WriteString(funcs[t_clear_screen])
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ write_cursor(cursor_x, cursor_y)
+ }
+
+ // we need to invalidate cursor position too and these two vars are
+ // used only for simple cursor positioning optimization, cursor
+ // actually may be in the correct place, but we simply discard
+ // optimization once and it gives us simple solution for the case when
+ // cursor moved
+ lastx = coord_invalid
+ lasty = coord_invalid
+
+ return flush()
+}
+
+func update_size_maybe() error {
+ w, h := get_term_size(out.Fd())
+ if w != termw || h != termh {
+ termw, termh = w, h
+ back_buffer.resize(termw, termh)
+ front_buffer.resize(termw, termh)
+ front_buffer.clear()
+ return send_clear()
+ }
+ return nil
+}
+
+func tcsetattr(fd uintptr, termios *syscall_Termios) error {
+ r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
+ fd, uintptr(syscall_TCSETS), uintptr(unsafe.Pointer(termios)))
+ if r != 0 {
+ return os.NewSyscallError("SYS_IOCTL", e)
+ }
+ return nil
+}
+
+func tcgetattr(fd uintptr, termios *syscall_Termios) error {
+ r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
+ fd, uintptr(syscall_TCGETS), uintptr(unsafe.Pointer(termios)))
+ if r != 0 {
+ return os.NewSyscallError("SYS_IOCTL", e)
+ }
+ return nil
+}
+
+func parse_mouse_event(event *Event, buf string) (int, bool) {
+ if strings.HasPrefix(buf, "\033[M") && len(buf) >= 6 {
+ // X10 mouse encoding, the simplest one
+ // \033 [ M Cb Cx Cy
+ b := buf[3] - 32
+ switch b & 3 {
+ case 0:
+ if b&64 != 0 {
+ event.Key = MouseWheelUp
+ } else {
+ event.Key = MouseLeft
+ }
+ case 1:
+ if b&64 != 0 {
+ event.Key = MouseWheelDown
+ } else {
+ event.Key = MouseMiddle
+ }
+ case 2:
+ event.Key = MouseRight
+ case 3:
+ event.Key = MouseRelease
+ default:
+ return 6, false
+ }
+ event.Type = EventMouse // KeyEvent by default
+ if b&32 != 0 {
+ event.Mod |= ModMotion
+ }
+
+ // the coord is 1,1 for upper left
+ event.MouseX = int(buf[4]) - 1 - 32
+ event.MouseY = int(buf[5]) - 1 - 32
+ return 6, true
+ } else if strings.HasPrefix(buf, "\033[<") || strings.HasPrefix(buf, "\033[") {
+ // xterm 1006 extended mode or urxvt 1015 extended mode
+ // xterm: \033 [ < Cb ; Cx ; Cy (M or m)
+ // urxvt: \033 [ Cb ; Cx ; Cy M
+
+ // find the first M or m, that's where we stop
+ mi := strings.IndexAny(buf, "Mm")
+ if mi == -1 {
+ return 0, false
+ }
+
+ // whether it's a capital M or not
+ isM := buf[mi] == 'M'
+
+ // whether it's urxvt or not
+ isU := false
+
+ // buf[2] is safe here, because having M or m found means we have at
+ // least 3 bytes in a string
+ if buf[2] == '<' {
+ buf = buf[3:mi]
+ } else {
+ isU = true
+ buf = buf[2:mi]
+ }
+
+ s1 := strings.Index(buf, ";")
+ s2 := strings.LastIndex(buf, ";")
+ // not found or only one ';'
+ if s1 == -1 || s2 == -1 || s1 == s2 {
+ return 0, false
+ }
+
+ n1, err := strconv.ParseInt(buf[0:s1], 10, 64)
+ if err != nil {
+ return 0, false
+ }
+ n2, err := strconv.ParseInt(buf[s1+1:s2], 10, 64)
+ if err != nil {
+ return 0, false
+ }
+ n3, err := strconv.ParseInt(buf[s2+1:], 10, 64)
+ if err != nil {
+ return 0, false
+ }
+
+ // on urxvt, first number is encoded exactly as in X10, but we need to
+ // make it zero-based, on xterm it is zero-based already
+ if isU {
+ n1 -= 32
+ }
+ switch n1 & 3 {
+ case 0:
+ if n1&64 != 0 {
+ event.Key = MouseWheelUp
+ } else {
+ event.Key = MouseLeft
+ }
+ case 1:
+ if n1&64 != 0 {
+ event.Key = MouseWheelDown
+ } else {
+ event.Key = MouseMiddle
+ }
+ case 2:
+ event.Key = MouseRight
+ case 3:
+ event.Key = MouseRelease
+ default:
+ return mi + 1, false
+ }
+ if !isM {
+ // on xterm mouse release is signaled by lowercase m
+ event.Key = MouseRelease
+ }
+
+ event.Type = EventMouse // KeyEvent by default
+ if n1&32 != 0 {
+ event.Mod |= ModMotion
+ }
+
+ event.MouseX = int(n2) - 1
+ event.MouseY = int(n3) - 1
+ return mi + 1, true
+ }
+
+ return 0, false
+}
+
+func parse_escape_sequence(event *Event, buf []byte) (int, bool) {
+ bufstr := string(buf)
+ for i, key := range keys {
+ if strings.HasPrefix(bufstr, key) {
+ event.Ch = 0
+ event.Key = Key(0xFFFF - i)
+ return len(key), true
+ }
+ }
+
+ // if none of the keys match, let's try mouse seqences
+ return parse_mouse_event(event, bufstr)
+}
+
+func extract_raw_event(data []byte, event *Event) bool {
+ if len(inbuf) == 0 {
+ return false
+ }
+
+ n := len(data)
+ if n == 0 {
+ return false
+ }
+
+ n = copy(data, inbuf)
+ copy(inbuf, inbuf[n:])
+ inbuf = inbuf[:len(inbuf)-n]
+
+ event.N = n
+ event.Type = EventRaw
+ return true
+}
+
+func extract_event(inbuf []byte, event *Event) bool {
+ if len(inbuf) == 0 {
+ event.N = 0
+ return false
+ }
+
+ if inbuf[0] == '\033' {
+ // possible escape sequence
+ if n, ok := parse_escape_sequence(event, inbuf); n != 0 {
+ event.N = n
+ return ok
+ }
+
+ // it's not escape sequence, then it's Alt or Esc, check input_mode
+ switch {
+ case input_mode&InputEsc != 0:
+ // if we're in escape mode, fill Esc event, pop buffer, return success
+ event.Ch = 0
+ event.Key = KeyEsc
+ event.Mod = 0
+ event.N = 1
+ return true
+ case input_mode&InputAlt != 0:
+ // if we're in alt mode, set Alt modifier to event and redo parsing
+ event.Mod = ModAlt
+ ok := extract_event(inbuf[1:], event)
+ if ok {
+ event.N++
+ } else {
+ event.N = 0
+ }
+ return ok
+ default:
+ panic("unreachable")
+ }
+ }
+
+ // if we're here, this is not an escape sequence and not an alt sequence
+ // so, it's a FUNCTIONAL KEY or a UNICODE character
+
+ // first of all check if it's a functional key
+ if Key(inbuf[0]) <= KeySpace || Key(inbuf[0]) == KeyBackspace2 {
+ // fill event, pop buffer, return success
+ event.Ch = 0
+ event.Key = Key(inbuf[0])
+ event.N = 1
+ return true
+ }
+
+ // the only possible option is utf8 rune
+ if r, n := utf8.DecodeRune(inbuf); r != utf8.RuneError {
+ event.Ch = r
+ event.Key = 0
+ event.N = n
+ return true
+ }
+
+ return false
+}
+
+func fcntl(fd int, cmd int, arg int) (val int, err error) {
+ r, _, e := syscall.Syscall(syscall.SYS_FCNTL, uintptr(fd), uintptr(cmd),
+ uintptr(arg))
+ val = int(r)
+ if e != 0 {
+ err = e
+ }
+ return
+}
diff --git a/vendor/github.com/nsf/termbox-go/termbox_common.go b/vendor/github.com/nsf/termbox-go/termbox_common.go
new file mode 100644
index 000000000..c3355cc25
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/termbox_common.go
@@ -0,0 +1,59 @@
+package termbox
+
+// private API, common OS agnostic part
+
+type cellbuf struct {
+ width int
+ height int
+ cells []Cell
+}
+
+func (this *cellbuf) init(width, height int) {
+ this.width = width
+ this.height = height
+ this.cells = make([]Cell, width*height)
+}
+
+func (this *cellbuf) resize(width, height int) {
+ if this.width == width && this.height == height {
+ return
+ }
+
+ oldw := this.width
+ oldh := this.height
+ oldcells := this.cells
+
+ this.init(width, height)
+ this.clear()
+
+ minw, minh := oldw, oldh
+
+ if width < minw {
+ minw = width
+ }
+ if height < minh {
+ minh = height
+ }
+
+ for i := 0; i < minh; i++ {
+ srco, dsto := i*oldw, i*width
+ src := oldcells[srco : srco+minw]
+ dst := this.cells[dsto : dsto+minw]
+ copy(dst, src)
+ }
+}
+
+func (this *cellbuf) clear() {
+ for i := range this.cells {
+ c := &this.cells[i]
+ c.Ch = ' '
+ c.Fg = foreground
+ c.Bg = background
+ }
+}
+
+const cursor_hidden = -1
+
+func is_cursor_hidden(x, y int) bool {
+ return x == cursor_hidden || y == cursor_hidden
+}
diff --git a/vendor/github.com/nsf/termbox-go/termbox_windows.go b/vendor/github.com/nsf/termbox-go/termbox_windows.go
new file mode 100644
index 000000000..f7dad7b8a
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/termbox_windows.go
@@ -0,0 +1,856 @@
+package termbox
+
+import "syscall"
+import "unsafe"
+import "unicode/utf16"
+import "github.com/mattn/go-runewidth"
+
+type (
+ wchar uint16
+ short int16
+ dword uint32
+ word uint16
+ char_info struct {
+ char wchar
+ attr word
+ }
+ coord struct {
+ x short
+ y short
+ }
+ small_rect struct {
+ left short
+ top short
+ right short
+ bottom short
+ }
+ console_screen_buffer_info struct {
+ size coord
+ cursor_position coord
+ attributes word
+ window small_rect
+ maximum_window_size coord
+ }
+ console_cursor_info struct {
+ size dword
+ visible int32
+ }
+ input_record struct {
+ event_type word
+ _ [2]byte
+ event [16]byte
+ }
+ key_event_record struct {
+ key_down int32
+ repeat_count word
+ virtual_key_code word
+ virtual_scan_code word
+ unicode_char wchar
+ control_key_state dword
+ }
+ window_buffer_size_record struct {
+ size coord
+ }
+ mouse_event_record struct {
+ mouse_pos coord
+ button_state dword
+ control_key_state dword
+ event_flags dword
+ }
+)
+
+const (
+ mouse_lmb = 0x1
+ mouse_rmb = 0x2
+ mouse_mmb = 0x4 | 0x8 | 0x10
+)
+
+func (this coord) uintptr() uintptr {
+ return uintptr(*(*int32)(unsafe.Pointer(&this)))
+}
+
+var kernel32 = syscall.NewLazyDLL("kernel32.dll")
+var is_cjk = runewidth.IsEastAsian()
+
+var (
+ proc_set_console_active_screen_buffer = kernel32.NewProc("SetConsoleActiveScreenBuffer")
+ proc_set_console_screen_buffer_size = kernel32.NewProc("SetConsoleScreenBufferSize")
+ proc_create_console_screen_buffer = kernel32.NewProc("CreateConsoleScreenBuffer")
+ proc_get_console_screen_buffer_info = kernel32.NewProc("GetConsoleScreenBufferInfo")
+ proc_write_console_output = kernel32.NewProc("WriteConsoleOutputW")
+ proc_write_console_output_character = kernel32.NewProc("WriteConsoleOutputCharacterW")
+ proc_write_console_output_attribute = kernel32.NewProc("WriteConsoleOutputAttribute")
+ proc_set_console_cursor_info = kernel32.NewProc("SetConsoleCursorInfo")
+ proc_set_console_cursor_position = kernel32.NewProc("SetConsoleCursorPosition")
+ proc_get_console_cursor_info = kernel32.NewProc("GetConsoleCursorInfo")
+ proc_read_console_input = kernel32.NewProc("ReadConsoleInputW")
+ proc_get_console_mode = kernel32.NewProc("GetConsoleMode")
+ proc_set_console_mode = kernel32.NewProc("SetConsoleMode")
+ proc_fill_console_output_character = kernel32.NewProc("FillConsoleOutputCharacterW")
+ proc_fill_console_output_attribute = kernel32.NewProc("FillConsoleOutputAttribute")
+ proc_create_event = kernel32.NewProc("CreateEventW")
+ proc_wait_for_multiple_objects = kernel32.NewProc("WaitForMultipleObjects")
+ proc_set_event = kernel32.NewProc("SetEvent")
+)
+
+func set_console_active_screen_buffer(h syscall.Handle) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_console_active_screen_buffer.Addr(),
+ 1, uintptr(h), 0, 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func set_console_screen_buffer_size(h syscall.Handle, size coord) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_console_screen_buffer_size.Addr(),
+ 2, uintptr(h), size.uintptr(), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func create_console_screen_buffer() (h syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall6(proc_create_console_screen_buffer.Addr(),
+ 5, uintptr(generic_read|generic_write), 0, 0, console_textmode_buffer, 0, 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return syscall.Handle(r0), err
+}
+
+func get_console_screen_buffer_info(h syscall.Handle, info *console_screen_buffer_info) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_get_console_screen_buffer_info.Addr(),
+ 2, uintptr(h), uintptr(unsafe.Pointer(info)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func write_console_output(h syscall.Handle, chars []char_info, dst small_rect) (err error) {
+ tmp_coord = coord{dst.right - dst.left + 1, dst.bottom - dst.top + 1}
+ tmp_rect = dst
+ r0, _, e1 := syscall.Syscall6(proc_write_console_output.Addr(),
+ 5, uintptr(h), uintptr(unsafe.Pointer(&chars[0])), tmp_coord.uintptr(),
+ tmp_coord0.uintptr(), uintptr(unsafe.Pointer(&tmp_rect)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func write_console_output_character(h syscall.Handle, chars []wchar, pos coord) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_write_console_output_character.Addr(),
+ 5, uintptr(h), uintptr(unsafe.Pointer(&chars[0])), uintptr(len(chars)),
+ pos.uintptr(), uintptr(unsafe.Pointer(&tmp_arg)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func write_console_output_attribute(h syscall.Handle, attrs []word, pos coord) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_write_console_output_attribute.Addr(),
+ 5, uintptr(h), uintptr(unsafe.Pointer(&attrs[0])), uintptr(len(attrs)),
+ pos.uintptr(), uintptr(unsafe.Pointer(&tmp_arg)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func set_console_cursor_info(h syscall.Handle, info *console_cursor_info) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_console_cursor_info.Addr(),
+ 2, uintptr(h), uintptr(unsafe.Pointer(info)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func get_console_cursor_info(h syscall.Handle, info *console_cursor_info) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_get_console_cursor_info.Addr(),
+ 2, uintptr(h), uintptr(unsafe.Pointer(info)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func set_console_cursor_position(h syscall.Handle, pos coord) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_console_cursor_position.Addr(),
+ 2, uintptr(h), pos.uintptr(), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func read_console_input(h syscall.Handle, record *input_record) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_read_console_input.Addr(),
+ 4, uintptr(h), uintptr(unsafe.Pointer(record)), 1, uintptr(unsafe.Pointer(&tmp_arg)), 0, 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func get_console_mode(h syscall.Handle, mode *dword) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_get_console_mode.Addr(),
+ 2, uintptr(h), uintptr(unsafe.Pointer(mode)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func set_console_mode(h syscall.Handle, mode dword) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_console_mode.Addr(),
+ 2, uintptr(h), uintptr(mode), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func fill_console_output_character(h syscall.Handle, char wchar, n int) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_fill_console_output_character.Addr(),
+ 5, uintptr(h), uintptr(char), uintptr(n), tmp_coord.uintptr(),
+ uintptr(unsafe.Pointer(&tmp_arg)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func fill_console_output_attribute(h syscall.Handle, attr word, n int) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_fill_console_output_attribute.Addr(),
+ 5, uintptr(h), uintptr(attr), uintptr(n), tmp_coord.uintptr(),
+ uintptr(unsafe.Pointer(&tmp_arg)), 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func create_event() (out syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall6(proc_create_event.Addr(),
+ 4, 0, 0, 0, 0, 0, 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return syscall.Handle(r0), err
+}
+
+func wait_for_multiple_objects(objects []syscall.Handle) (err error) {
+ r0, _, e1 := syscall.Syscall6(proc_wait_for_multiple_objects.Addr(),
+ 4, uintptr(len(objects)), uintptr(unsafe.Pointer(&objects[0])),
+ 0, 0xFFFFFFFF, 0, 0)
+ if uint32(r0) == 0xFFFFFFFF {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func set_event(ev syscall.Handle) (err error) {
+ r0, _, e1 := syscall.Syscall(proc_set_event.Addr(),
+ 1, uintptr(ev), 0, 0)
+ if int(r0) == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+type diff_msg struct {
+ pos short
+ lines short
+ chars []char_info
+}
+
+type input_event struct {
+ event Event
+ err error
+}
+
+var (
+ orig_cursor_info console_cursor_info
+ orig_size coord
+ orig_mode dword
+ orig_screen syscall.Handle
+ back_buffer cellbuf
+ front_buffer cellbuf
+ term_size coord
+ input_mode = InputEsc
+ cursor_x = cursor_hidden
+ cursor_y = cursor_hidden
+ foreground = ColorDefault
+ background = ColorDefault
+ in syscall.Handle
+ out syscall.Handle
+ interrupt syscall.Handle
+ charbuf []char_info
+ diffbuf []diff_msg
+ beg_x = -1
+ beg_y = -1
+ beg_i = -1
+ input_comm = make(chan Event)
+ interrupt_comm = make(chan struct{})
+ cancel_comm = make(chan bool, 1)
+ cancel_done_comm = make(chan bool)
+ alt_mode_esc = false
+
+ // these ones just to prevent heap allocs at all costs
+ tmp_info console_screen_buffer_info
+ tmp_arg dword
+ tmp_coord0 = coord{0, 0}
+ tmp_coord = coord{0, 0}
+ tmp_rect = small_rect{0, 0, 0, 0}
+)
+
+func get_cursor_position(out syscall.Handle) coord {
+ err := get_console_screen_buffer_info(out, &tmp_info)
+ if err != nil {
+ panic(err)
+ }
+ return tmp_info.cursor_position
+}
+
+func get_term_size(out syscall.Handle) coord {
+ err := get_console_screen_buffer_info(out, &tmp_info)
+ if err != nil {
+ panic(err)
+ }
+ return tmp_info.size
+}
+
+func get_win_size(out syscall.Handle) coord {
+ err := get_console_screen_buffer_info(out, &tmp_info)
+ if err != nil {
+ panic(err)
+ }
+ return coord{
+ x: tmp_info.window.right - tmp_info.window.left + 1,
+ y: tmp_info.window.bottom - tmp_info.window.top + 1,
+ }
+}
+
+func update_size_maybe() {
+ size := get_term_size(out)
+ if size.x != term_size.x || size.y != term_size.y {
+ term_size = size
+ back_buffer.resize(int(size.x), int(size.y))
+ front_buffer.resize(int(size.x), int(size.y))
+ front_buffer.clear()
+ clear()
+
+ area := int(size.x) * int(size.y)
+ if cap(charbuf) < area {
+ charbuf = make([]char_info, 0, area)
+ }
+ }
+}
+
+var color_table_bg = []word{
+ 0, // default (black)
+ 0, // black
+ background_red,
+ background_green,
+ background_red | background_green, // yellow
+ background_blue,
+ background_red | background_blue, // magenta
+ background_green | background_blue, // cyan
+ background_red | background_blue | background_green, // white
+}
+
+var color_table_fg = []word{
+ foreground_red | foreground_blue | foreground_green, // default (white)
+ 0,
+ foreground_red,
+ foreground_green,
+ foreground_red | foreground_green, // yellow
+ foreground_blue,
+ foreground_red | foreground_blue, // magenta
+ foreground_green | foreground_blue, // cyan
+ foreground_red | foreground_blue | foreground_green, // white
+}
+
+const (
+ replacement_char = '\uFFFD'
+ max_rune = '\U0010FFFF'
+ surr1 = 0xd800
+ surr2 = 0xdc00
+ surr3 = 0xe000
+ surr_self = 0x10000
+)
+
+func append_diff_line(y int) int {
+ n := 0
+ for x := 0; x < front_buffer.width; {
+ cell_offset := y*front_buffer.width + x
+ back := &back_buffer.cells[cell_offset]
+ front := &front_buffer.cells[cell_offset]
+ attr, char := cell_to_char_info(*back)
+ charbuf = append(charbuf, char_info{attr: attr, char: char[0]})
+ *front = *back
+ n++
+ w := runewidth.RuneWidth(back.Ch)
+ if w == 0 || w == 2 && runewidth.IsAmbiguousWidth(back.Ch) {
+ w = 1
+ }
+ x += w
+ // If not CJK, fill trailing space with whitespace
+ if !is_cjk && w == 2 {
+ charbuf = append(charbuf, char_info{attr: attr, char: ' '})
+ }
+ }
+ return n
+}
+
+// compares 'back_buffer' with 'front_buffer' and prepares all changes in the form of
+// 'diff_msg's in the 'diff_buf'
+func prepare_diff_messages() {
+ // clear buffers
+ diffbuf = diffbuf[:0]
+ charbuf = charbuf[:0]
+
+ var diff diff_msg
+ gbeg := 0
+ for y := 0; y < front_buffer.height; y++ {
+ same := true
+ line_offset := y * front_buffer.width
+ for x := 0; x < front_buffer.width; x++ {
+ cell_offset := line_offset + x
+ back := &back_buffer.cells[cell_offset]
+ front := &front_buffer.cells[cell_offset]
+ if *back != *front {
+ same = false
+ break
+ }
+ }
+ if same && diff.lines > 0 {
+ diffbuf = append(diffbuf, diff)
+ diff = diff_msg{}
+ }
+ if !same {
+ beg := len(charbuf)
+ end := beg + append_diff_line(y)
+ if diff.lines == 0 {
+ diff.pos = short(y)
+ gbeg = beg
+ }
+ diff.lines++
+ diff.chars = charbuf[gbeg:end]
+ }
+ }
+ if diff.lines > 0 {
+ diffbuf = append(diffbuf, diff)
+ diff = diff_msg{}
+ }
+}
+
+func get_ct(table []word, idx int) word {
+ idx = idx & 0x0F
+ if idx >= len(table) {
+ idx = len(table) - 1
+ }
+ return table[idx]
+}
+
+func cell_to_char_info(c Cell) (attr word, wc [2]wchar) {
+ attr = get_ct(color_table_fg, int(c.Fg)) | get_ct(color_table_bg, int(c.Bg))
+ if c.Fg&AttrReverse|c.Bg&AttrReverse != 0 {
+ attr = (attr&0xF0)>>4 | (attr&0x0F)<<4
+ }
+ if c.Fg&AttrBold != 0 {
+ attr |= foreground_intensity
+ }
+ if c.Bg&AttrBold != 0 {
+ attr |= background_intensity
+ }
+
+ r0, r1 := utf16.EncodeRune(c.Ch)
+ if r0 == 0xFFFD {
+ wc[0] = wchar(c.Ch)
+ wc[1] = ' '
+ } else {
+ wc[0] = wchar(r0)
+ wc[1] = wchar(r1)
+ }
+ return
+}
+
+func move_cursor(x, y int) {
+ err := set_console_cursor_position(out, coord{short(x), short(y)})
+ if err != nil {
+ panic(err)
+ }
+}
+
+func show_cursor(visible bool) {
+ var v int32
+ if visible {
+ v = 1
+ }
+
+ var info console_cursor_info
+ info.size = 100
+ info.visible = v
+ err := set_console_cursor_info(out, &info)
+ if err != nil {
+ panic(err)
+ }
+}
+
+func clear() {
+ var err error
+ attr, char := cell_to_char_info(Cell{
+ ' ',
+ foreground,
+ background,
+ })
+
+ area := int(term_size.x) * int(term_size.y)
+ err = fill_console_output_attribute(out, attr, area)
+ if err != nil {
+ panic(err)
+ }
+ err = fill_console_output_character(out, char[0], area)
+ if err != nil {
+ panic(err)
+ }
+ if !is_cursor_hidden(cursor_x, cursor_y) {
+ move_cursor(cursor_x, cursor_y)
+ }
+}
+
+func key_event_record_to_event(r *key_event_record) (Event, bool) {
+ if r.key_down == 0 {
+ return Event{}, false
+ }
+
+ e := Event{Type: EventKey}
+ if input_mode&InputAlt != 0 {
+ if alt_mode_esc {
+ e.Mod = ModAlt
+ alt_mode_esc = false
+ }
+ if r.control_key_state&(left_alt_pressed|right_alt_pressed) != 0 {
+ e.Mod = ModAlt
+ }
+ }
+
+ ctrlpressed := r.control_key_state&(left_ctrl_pressed|right_ctrl_pressed) != 0
+
+ if r.virtual_key_code >= vk_f1 && r.virtual_key_code <= vk_f12 {
+ switch r.virtual_key_code {
+ case vk_f1:
+ e.Key = KeyF1
+ case vk_f2:
+ e.Key = KeyF2
+ case vk_f3:
+ e.Key = KeyF3
+ case vk_f4:
+ e.Key = KeyF4
+ case vk_f5:
+ e.Key = KeyF5
+ case vk_f6:
+ e.Key = KeyF6
+ case vk_f7:
+ e.Key = KeyF7
+ case vk_f8:
+ e.Key = KeyF8
+ case vk_f9:
+ e.Key = KeyF9
+ case vk_f10:
+ e.Key = KeyF10
+ case vk_f11:
+ e.Key = KeyF11
+ case vk_f12:
+ e.Key = KeyF12
+ default:
+ panic("unreachable")
+ }
+
+ return e, true
+ }
+
+ if r.virtual_key_code <= vk_delete {
+ switch r.virtual_key_code {
+ case vk_insert:
+ e.Key = KeyInsert
+ case vk_delete:
+ e.Key = KeyDelete
+ case vk_home:
+ e.Key = KeyHome
+ case vk_end:
+ e.Key = KeyEnd
+ case vk_pgup:
+ e.Key = KeyPgup
+ case vk_pgdn:
+ e.Key = KeyPgdn
+ case vk_arrow_up:
+ e.Key = KeyArrowUp
+ case vk_arrow_down:
+ e.Key = KeyArrowDown
+ case vk_arrow_left:
+ e.Key = KeyArrowLeft
+ case vk_arrow_right:
+ e.Key = KeyArrowRight
+ case vk_backspace:
+ if ctrlpressed {
+ e.Key = KeyBackspace2
+ } else {
+ e.Key = KeyBackspace
+ }
+ case vk_tab:
+ e.Key = KeyTab
+ case vk_enter:
+ e.Key = KeyEnter
+ case vk_esc:
+ switch {
+ case input_mode&InputEsc != 0:
+ e.Key = KeyEsc
+ case input_mode&InputAlt != 0:
+ alt_mode_esc = true
+ return Event{}, false
+ }
+ case vk_space:
+ if ctrlpressed {
+ // manual return here, because KeyCtrlSpace is zero
+ e.Key = KeyCtrlSpace
+ return e, true
+ } else {
+ e.Key = KeySpace
+ }
+ }
+
+ if e.Key != 0 {
+ return e, true
+ }
+ }
+
+ if ctrlpressed {
+ if Key(r.unicode_char) >= KeyCtrlA && Key(r.unicode_char) <= KeyCtrlRsqBracket {
+ e.Key = Key(r.unicode_char)
+ if input_mode&InputAlt != 0 && e.Key == KeyEsc {
+ alt_mode_esc = true
+ return Event{}, false
+ }
+ return e, true
+ }
+ switch r.virtual_key_code {
+ case 192, 50:
+ // manual return here, because KeyCtrl2 is zero
+ e.Key = KeyCtrl2
+ return e, true
+ case 51:
+ if input_mode&InputAlt != 0 {
+ alt_mode_esc = true
+ return Event{}, false
+ }
+ e.Key = KeyCtrl3
+ case 52:
+ e.Key = KeyCtrl4
+ case 53:
+ e.Key = KeyCtrl5
+ case 54:
+ e.Key = KeyCtrl6
+ case 189, 191, 55:
+ e.Key = KeyCtrl7
+ case 8, 56:
+ e.Key = KeyCtrl8
+ }
+
+ if e.Key != 0 {
+ return e, true
+ }
+ }
+
+ if r.unicode_char != 0 {
+ e.Ch = rune(r.unicode_char)
+ return e, true
+ }
+
+ return Event{}, false
+}
+
+func input_event_producer() {
+ var r input_record
+ var err error
+ var last_button Key
+ var last_button_pressed Key
+ var last_state = dword(0)
+ var last_x, last_y = -1, -1
+ handles := []syscall.Handle{in, interrupt}
+ for {
+ err = wait_for_multiple_objects(handles)
+ if err != nil {
+ input_comm <- Event{Type: EventError, Err: err}
+ }
+
+ select {
+ case <-cancel_comm:
+ cancel_done_comm <- true
+ return
+ default:
+ }
+
+ err = read_console_input(in, &r)
+ if err != nil {
+ input_comm <- Event{Type: EventError, Err: err}
+ }
+
+ switch r.event_type {
+ case key_event:
+ kr := (*key_event_record)(unsafe.Pointer(&r.event))
+ ev, ok := key_event_record_to_event(kr)
+ if ok {
+ for i := 0; i < int(kr.repeat_count); i++ {
+ input_comm <- ev
+ }
+ }
+ case window_buffer_size_event:
+ sr := *(*window_buffer_size_record)(unsafe.Pointer(&r.event))
+ input_comm <- Event{
+ Type: EventResize,
+ Width: int(sr.size.x),
+ Height: int(sr.size.y),
+ }
+ case mouse_event:
+ mr := *(*mouse_event_record)(unsafe.Pointer(&r.event))
+ ev := Event{Type: EventMouse}
+ switch mr.event_flags {
+ case 0, 2:
+ // single or double click
+ cur_state := mr.button_state
+ switch {
+ case last_state&mouse_lmb == 0 && cur_state&mouse_lmb != 0:
+ last_button = MouseLeft
+ last_button_pressed = last_button
+ case last_state&mouse_rmb == 0 && cur_state&mouse_rmb != 0:
+ last_button = MouseRight
+ last_button_pressed = last_button
+ case last_state&mouse_mmb == 0 && cur_state&mouse_mmb != 0:
+ last_button = MouseMiddle
+ last_button_pressed = last_button
+ case last_state&mouse_lmb != 0 && cur_state&mouse_lmb == 0:
+ last_button = MouseRelease
+ case last_state&mouse_rmb != 0 && cur_state&mouse_rmb == 0:
+ last_button = MouseRelease
+ case last_state&mouse_mmb != 0 && cur_state&mouse_mmb == 0:
+ last_button = MouseRelease
+ default:
+ last_state = cur_state
+ continue
+ }
+ last_state = cur_state
+ ev.Key = last_button
+ last_x, last_y = int(mr.mouse_pos.x), int(mr.mouse_pos.y)
+ ev.MouseX = last_x
+ ev.MouseY = last_y
+ case 1:
+ // mouse motion
+ x, y := int(mr.mouse_pos.x), int(mr.mouse_pos.y)
+ if last_state != 0 && (last_x != x || last_y != y) {
+ ev.Key = last_button_pressed
+ ev.Mod = ModMotion
+ ev.MouseX = x
+ ev.MouseY = y
+ last_x, last_y = x, y
+ } else {
+ ev.Type = EventNone
+ }
+ case 4:
+ // mouse wheel
+ n := int16(mr.button_state >> 16)
+ if n > 0 {
+ ev.Key = MouseWheelUp
+ } else {
+ ev.Key = MouseWheelDown
+ }
+ last_x, last_y = int(mr.mouse_pos.x), int(mr.mouse_pos.y)
+ ev.MouseX = last_x
+ ev.MouseY = last_y
+ default:
+ ev.Type = EventNone
+ }
+ if ev.Type != EventNone {
+ input_comm <- ev
+ }
+ }
+ }
+}
diff --git a/vendor/github.com/nsf/termbox-go/terminfo.go b/vendor/github.com/nsf/termbox-go/terminfo.go
new file mode 100644
index 000000000..35dbd70b8
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/terminfo.go
@@ -0,0 +1,221 @@
+// +build !windows
+// This file contains a simple and incomplete implementation of the terminfo
+// database. Information was taken from the ncurses manpages term(5) and
+// terminfo(5). Currently, only the string capabilities for special keys and for
+// functions without parameters are actually used. Colors are still done with
+// ANSI escape sequences. Other special features that are not (yet?) supported
+// are reading from ~/.terminfo, the TERMINFO_DIRS variable, Berkeley database
+// format and extended capabilities.
+
+package termbox
+
+import (
+ "bytes"
+ "encoding/binary"
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "strings"
+)
+
+const (
+ ti_magic = 0432
+ ti_header_length = 12
+ ti_mouse_enter = "\x1b[?1000h\x1b[?1002h\x1b[?1015h\x1b[?1006h"
+ ti_mouse_leave = "\x1b[?1006l\x1b[?1015l\x1b[?1002l\x1b[?1000l"
+)
+
+func load_terminfo() ([]byte, error) {
+ var data []byte
+ var err error
+
+ term := os.Getenv("TERM")
+ if term == "" {
+ return nil, fmt.Errorf("termbox: TERM not set")
+ }
+
+ // The following behaviour follows the one described in terminfo(5) as
+ // distributed by ncurses.
+
+ terminfo := os.Getenv("TERMINFO")
+ if terminfo != "" {
+ // if TERMINFO is set, no other directory should be searched
+ return ti_try_path(terminfo)
+ }
+
+ // next, consider ~/.terminfo
+ home := os.Getenv("HOME")
+ if home != "" {
+ data, err = ti_try_path(home + "/.terminfo")
+ if err == nil {
+ return data, nil
+ }
+ }
+
+ // next, TERMINFO_DIRS
+ dirs := os.Getenv("TERMINFO_DIRS")
+ if dirs != "" {
+ for _, dir := range strings.Split(dirs, ":") {
+ if dir == "" {
+ // "" -> "/usr/share/terminfo"
+ dir = "/usr/share/terminfo"
+ }
+ data, err = ti_try_path(dir)
+ if err == nil {
+ return data, nil
+ }
+ }
+ }
+
+ // fall back to /usr/share/terminfo
+ return ti_try_path("/usr/share/terminfo")
+}
+
+func ti_try_path(path string) (data []byte, err error) {
+ // load_terminfo already made sure it is set
+ term := os.Getenv("TERM")
+
+ // first try, the typical *nix path
+ terminfo := path + "/" + term[0:1] + "/" + term
+ data, err = ioutil.ReadFile(terminfo)
+ if err == nil {
+ return
+ }
+
+ // fallback to darwin specific dirs structure
+ terminfo = path + "/" + hex.EncodeToString([]byte(term[:1])) + "/" + term
+ data, err = ioutil.ReadFile(terminfo)
+ return
+}
+
+func setup_term_builtin() error {
+ name := os.Getenv("TERM")
+ if name == "" {
+ return errors.New("termbox: TERM environment variable not set")
+ }
+
+ for _, t := range terms {
+ if t.name == name {
+ keys = t.keys
+ funcs = t.funcs
+ return nil
+ }
+ }
+
+ compat_table := []struct {
+ partial string
+ keys []string
+ funcs []string
+ }{
+ {"xterm", xterm_keys, xterm_funcs},
+ {"rxvt", rxvt_unicode_keys, rxvt_unicode_funcs},
+ {"linux", linux_keys, linux_funcs},
+ {"Eterm", eterm_keys, eterm_funcs},
+ {"screen", screen_keys, screen_funcs},
+ // let's assume that 'cygwin' is xterm compatible
+ {"cygwin", xterm_keys, xterm_funcs},
+ {"st", xterm_keys, xterm_funcs},
+ }
+
+ // try compatibility variants
+ for _, it := range compat_table {
+ if strings.Contains(name, it.partial) {
+ keys = it.keys
+ funcs = it.funcs
+ return nil
+ }
+ }
+
+ return errors.New("termbox: unsupported terminal")
+}
+
+func setup_term() (err error) {
+ var data []byte
+ var header [6]int16
+ var str_offset, table_offset int16
+
+ data, err = load_terminfo()
+ if err != nil {
+ return setup_term_builtin()
+ }
+
+ rd := bytes.NewReader(data)
+ // 0: magic number, 1: size of names section, 2: size of boolean section, 3:
+ // size of numbers section (in integers), 4: size of the strings section (in
+ // integers), 5: size of the string table
+
+ err = binary.Read(rd, binary.LittleEndian, header[:])
+ if err != nil {
+ return
+ }
+
+ if (header[1]+header[2])%2 != 0 {
+ // old quirk to align everything on word boundaries
+ header[2] += 1
+ }
+ str_offset = ti_header_length + header[1] + header[2] + 2*header[3]
+ table_offset = str_offset + 2*header[4]
+
+ keys = make([]string, 0xFFFF-key_min)
+ for i, _ := range keys {
+ keys[i], err = ti_read_string(rd, str_offset+2*ti_keys[i], table_offset)
+ if err != nil {
+ return
+ }
+ }
+ funcs = make([]string, t_max_funcs)
+ // the last two entries are reserved for mouse. because the table offset is
+ // not there, the two entries have to fill in manually
+ for i, _ := range funcs[:len(funcs)-2] {
+ funcs[i], err = ti_read_string(rd, str_offset+2*ti_funcs[i], table_offset)
+ if err != nil {
+ return
+ }
+ }
+ funcs[t_max_funcs-2] = ti_mouse_enter
+ funcs[t_max_funcs-1] = ti_mouse_leave
+ return nil
+}
+
+func ti_read_string(rd *bytes.Reader, str_off, table int16) (string, error) {
+ var off int16
+
+ _, err := rd.Seek(int64(str_off), 0)
+ if err != nil {
+ return "", err
+ }
+ err = binary.Read(rd, binary.LittleEndian, &off)
+ if err != nil {
+ return "", err
+ }
+ _, err = rd.Seek(int64(table+off), 0)
+ if err != nil {
+ return "", err
+ }
+ var bs []byte
+ for {
+ b, err := rd.ReadByte()
+ if err != nil {
+ return "", err
+ }
+ if b == byte(0x00) {
+ break
+ }
+ bs = append(bs, b)
+ }
+ return string(bs), nil
+}
+
+// "Maps" the function constants from termbox.go to the number of the respective
+// string capability in the terminfo file. Taken from (ncurses) term.h.
+var ti_funcs = []int16{
+ 28, 40, 16, 13, 5, 39, 36, 27, 26, 34, 89, 88,
+}
+
+// Same as above for the special keys.
+var ti_keys = []int16{
+ 66, 68 /* apparently not a typo; 67 is F10 for whatever reason */, 69, 70,
+ 71, 72, 73, 74, 75, 67, 216, 217, 77, 59, 76, 164, 82, 81, 87, 61, 79, 83,
+}
diff --git a/vendor/github.com/nsf/termbox-go/terminfo_builtin.go b/vendor/github.com/nsf/termbox-go/terminfo_builtin.go
new file mode 100644
index 000000000..a94866067
--- /dev/null
+++ b/vendor/github.com/nsf/termbox-go/terminfo_builtin.go
@@ -0,0 +1,64 @@
+// +build !windows
+
+package termbox
+
+// Eterm
+var eterm_keys = []string{
+ "\x1b[11~", "\x1b[12~", "\x1b[13~", "\x1b[14~", "\x1b[15~", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1b[7~", "\x1b[8~", "\x1b[5~", "\x1b[6~", "\x1b[A", "\x1b[B", "\x1b[D", "\x1b[C",
+}
+var eterm_funcs = []string{
+ "\x1b7\x1b[?47h", "\x1b[2J\x1b[?47l\x1b8", "\x1b[?25h", "\x1b[?25l", "\x1b[H\x1b[2J", "\x1b[m\x0f", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "", "", "", "",
+}
+
+// screen
+var screen_keys = []string{
+ "\x1bOP", "\x1bOQ", "\x1bOR", "\x1bOS", "\x1b[15~", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1b[1~", "\x1b[4~", "\x1b[5~", "\x1b[6~", "\x1bOA", "\x1bOB", "\x1bOD", "\x1bOC",
+}
+var screen_funcs = []string{
+ "\x1b[?1049h", "\x1b[?1049l", "\x1b[34h\x1b[?25h", "\x1b[?25l", "\x1b[H\x1b[J", "\x1b[m\x0f", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "\x1b[?1h\x1b=", "\x1b[?1l\x1b>", ti_mouse_enter, ti_mouse_leave,
+}
+
+// xterm
+var xterm_keys = []string{
+ "\x1bOP", "\x1bOQ", "\x1bOR", "\x1bOS", "\x1b[15~", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1bOH", "\x1bOF", "\x1b[5~", "\x1b[6~", "\x1bOA", "\x1bOB", "\x1bOD", "\x1bOC",
+}
+var xterm_funcs = []string{
+ "\x1b[?1049h", "\x1b[?1049l", "\x1b[?12l\x1b[?25h", "\x1b[?25l", "\x1b[H\x1b[2J", "\x1b(B\x1b[m", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "\x1b[?1h\x1b=", "\x1b[?1l\x1b>", ti_mouse_enter, ti_mouse_leave,
+}
+
+// rxvt-unicode
+var rxvt_unicode_keys = []string{
+ "\x1b[11~", "\x1b[12~", "\x1b[13~", "\x1b[14~", "\x1b[15~", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1b[7~", "\x1b[8~", "\x1b[5~", "\x1b[6~", "\x1b[A", "\x1b[B", "\x1b[D", "\x1b[C",
+}
+var rxvt_unicode_funcs = []string{
+ "\x1b[?1049h", "\x1b[r\x1b[?1049l", "\x1b[?25h", "\x1b[?25l", "\x1b[H\x1b[2J", "\x1b[m\x1b(B", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "\x1b=", "\x1b>", ti_mouse_enter, ti_mouse_leave,
+}
+
+// linux
+var linux_keys = []string{
+ "\x1b[[A", "\x1b[[B", "\x1b[[C", "\x1b[[D", "\x1b[[E", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1b[1~", "\x1b[4~", "\x1b[5~", "\x1b[6~", "\x1b[A", "\x1b[B", "\x1b[D", "\x1b[C",
+}
+var linux_funcs = []string{
+ "", "", "\x1b[?25h\x1b[?0c", "\x1b[?25l\x1b[?1c", "\x1b[H\x1b[J", "\x1b[0;10m", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "", "", "", "",
+}
+
+// rxvt-256color
+var rxvt_256color_keys = []string{
+ "\x1b[11~", "\x1b[12~", "\x1b[13~", "\x1b[14~", "\x1b[15~", "\x1b[17~", "\x1b[18~", "\x1b[19~", "\x1b[20~", "\x1b[21~", "\x1b[23~", "\x1b[24~", "\x1b[2~", "\x1b[3~", "\x1b[7~", "\x1b[8~", "\x1b[5~", "\x1b[6~", "\x1b[A", "\x1b[B", "\x1b[D", "\x1b[C",
+}
+var rxvt_256color_funcs = []string{
+ "\x1b7\x1b[?47h", "\x1b[2J\x1b[?47l\x1b8", "\x1b[?25h", "\x1b[?25l", "\x1b[H\x1b[2J", "\x1b[m\x0f", "\x1b[4m", "\x1b[1m", "\x1b[5m", "\x1b[7m", "\x1b=", "\x1b>", ti_mouse_enter, ti_mouse_leave,
+}
+
+var terms = []struct {
+ name string
+ keys []string
+ funcs []string
+}{
+ {"Eterm", eterm_keys, eterm_funcs},
+ {"screen", screen_keys, screen_funcs},
+ {"xterm", xterm_keys, xterm_funcs},
+ {"rxvt-unicode", rxvt_unicode_keys, rxvt_unicode_funcs},
+ {"linux", linux_keys, linux_funcs},
+ {"rxvt-256color", rxvt_256color_keys, rxvt_256color_funcs},
+}
diff --git a/vendor/github.com/pborman/uuid/.travis.yml b/vendor/github.com/pborman/uuid/.travis.yml
new file mode 100644
index 000000000..d8156a60b
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/.travis.yml
@@ -0,0 +1,9 @@
+language: go
+
+go:
+ - 1.4.3
+ - 1.5.3
+ - tip
+
+script:
+ - go test -v ./...
diff --git a/vendor/github.com/pborman/uuid/CONTRIBUTING.md b/vendor/github.com/pborman/uuid/CONTRIBUTING.md
new file mode 100644
index 000000000..04fdf09f1
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/CONTRIBUTING.md
@@ -0,0 +1,10 @@
+# How to contribute
+
+We definitely welcome patches and contribution to this project!
+
+### Legal requirements
+
+In order to protect both you and ourselves, you will need to sign the
+[Contributor License Agreement](https://cla.developers.google.com/clas).
+
+You may have already signed it for other Google projects.
diff --git a/vendor/github.com/pborman/uuid/CONTRIBUTORS b/vendor/github.com/pborman/uuid/CONTRIBUTORS
new file mode 100644
index 000000000..b382a04ed
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/CONTRIBUTORS
@@ -0,0 +1 @@
+Paul Borman <borman@google.com>
diff --git a/vendor/github.com/pborman/uuid/LICENSE b/vendor/github.com/pborman/uuid/LICENSE
new file mode 100644
index 000000000..5dc68268d
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009,2014 Google Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/pborman/uuid/README.md b/vendor/github.com/pborman/uuid/README.md
new file mode 100644
index 000000000..f023d47ca
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/README.md
@@ -0,0 +1,13 @@
+This project was automatically exported from code.google.com/p/go-uuid
+
+# uuid ![build status](https://travis-ci.org/pborman/uuid.svg?branch=master)
+The uuid package generates and inspects UUIDs based on [RFC 412](http://tools.ietf.org/html/rfc4122) and DCE 1.1: Authentication and Security Services.
+
+###### Install
+`go get github.com/pborman/uuid`
+
+###### Documentation
+[![GoDoc](https://godoc.org/github.com/pborman/uuid?status.svg)](http://godoc.org/github.com/pborman/uuid)
+
+Full `go doc` style documentation for the package can be viewed online without installing this package by using the GoDoc site here:
+http://godoc.org/github.com/pborman/uuid
diff --git a/vendor/github.com/pborman/uuid/dce.go b/vendor/github.com/pborman/uuid/dce.go
new file mode 100644
index 000000000..50a0f2d09
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/dce.go
@@ -0,0 +1,84 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "encoding/binary"
+ "fmt"
+ "os"
+)
+
+// A Domain represents a Version 2 domain
+type Domain byte
+
+// Domain constants for DCE Security (Version 2) UUIDs.
+const (
+ Person = Domain(0)
+ Group = Domain(1)
+ Org = Domain(2)
+)
+
+// NewDCESecurity returns a DCE Security (Version 2) UUID.
+//
+// The domain should be one of Person, Group or Org.
+// On a POSIX system the id should be the users UID for the Person
+// domain and the users GID for the Group. The meaning of id for
+// the domain Org or on non-POSIX systems is site defined.
+//
+// For a given domain/id pair the same token may be returned for up to
+// 7 minutes and 10 seconds.
+func NewDCESecurity(domain Domain, id uint32) UUID {
+ uuid := NewUUID()
+ if uuid != nil {
+ uuid[6] = (uuid[6] & 0x0f) | 0x20 // Version 2
+ uuid[9] = byte(domain)
+ binary.BigEndian.PutUint32(uuid[0:], id)
+ }
+ return uuid
+}
+
+// NewDCEPerson returns a DCE Security (Version 2) UUID in the person
+// domain with the id returned by os.Getuid.
+//
+// NewDCEPerson(Person, uint32(os.Getuid()))
+func NewDCEPerson() UUID {
+ return NewDCESecurity(Person, uint32(os.Getuid()))
+}
+
+// NewDCEGroup returns a DCE Security (Version 2) UUID in the group
+// domain with the id returned by os.Getgid.
+//
+// NewDCEGroup(Group, uint32(os.Getgid()))
+func NewDCEGroup() UUID {
+ return NewDCESecurity(Group, uint32(os.Getgid()))
+}
+
+// Domain returns the domain for a Version 2 UUID or false.
+func (uuid UUID) Domain() (Domain, bool) {
+ if v, _ := uuid.Version(); v != 2 {
+ return 0, false
+ }
+ return Domain(uuid[9]), true
+}
+
+// Id returns the id for a Version 2 UUID or false.
+func (uuid UUID) Id() (uint32, bool) {
+ if v, _ := uuid.Version(); v != 2 {
+ return 0, false
+ }
+ return binary.BigEndian.Uint32(uuid[0:4]), true
+}
+
+func (d Domain) String() string {
+ switch d {
+ case Person:
+ return "Person"
+ case Group:
+ return "Group"
+ case Org:
+ return "Org"
+ }
+ return fmt.Sprintf("Domain%d", int(d))
+}
diff --git a/vendor/github.com/pborman/uuid/doc.go b/vendor/github.com/pborman/uuid/doc.go
new file mode 100644
index 000000000..d8bd013e6
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/doc.go
@@ -0,0 +1,8 @@
+// Copyright 2011 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.
+
+// The uuid package generates and inspects UUIDs.
+//
+// UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security Services.
+package uuid
diff --git a/vendor/github.com/pborman/uuid/hash.go b/vendor/github.com/pborman/uuid/hash.go
new file mode 100644
index 000000000..a0420c1ef
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/hash.go
@@ -0,0 +1,53 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "crypto/md5"
+ "crypto/sha1"
+ "hash"
+)
+
+// Well known Name Space IDs and UUIDs
+var (
+ NameSpace_DNS = Parse("6ba7b810-9dad-11d1-80b4-00c04fd430c8")
+ NameSpace_URL = Parse("6ba7b811-9dad-11d1-80b4-00c04fd430c8")
+ NameSpace_OID = Parse("6ba7b812-9dad-11d1-80b4-00c04fd430c8")
+ NameSpace_X500 = Parse("6ba7b814-9dad-11d1-80b4-00c04fd430c8")
+ NIL = Parse("00000000-0000-0000-0000-000000000000")
+)
+
+// NewHash returns a new UUID derived from the hash of space concatenated with
+// data generated by h. The hash should be at least 16 byte in length. The
+// first 16 bytes of the hash are used to form the UUID. The version of the
+// UUID will be the lower 4 bits of version. NewHash is used to implement
+// NewMD5 and NewSHA1.
+func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID {
+ h.Reset()
+ h.Write(space)
+ h.Write([]byte(data))
+ s := h.Sum(nil)
+ uuid := make([]byte, 16)
+ copy(uuid, s)
+ uuid[6] = (uuid[6] & 0x0f) | uint8((version&0xf)<<4)
+ uuid[8] = (uuid[8] & 0x3f) | 0x80 // RFC 4122 variant
+ return uuid
+}
+
+// NewMD5 returns a new MD5 (Version 3) UUID based on the
+// supplied name space and data.
+//
+// NewHash(md5.New(), space, data, 3)
+func NewMD5(space UUID, data []byte) UUID {
+ return NewHash(md5.New(), space, data, 3)
+}
+
+// NewSHA1 returns a new SHA1 (Version 5) UUID based on the
+// supplied name space and data.
+//
+// NewHash(sha1.New(), space, data, 5)
+func NewSHA1(space UUID, data []byte) UUID {
+ return NewHash(sha1.New(), space, data, 5)
+}
diff --git a/vendor/github.com/pborman/uuid/json.go b/vendor/github.com/pborman/uuid/json.go
new file mode 100644
index 000000000..9dda1dfba
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/json.go
@@ -0,0 +1,34 @@
+// Copyright 2014 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.
+
+package uuid
+
+import "errors"
+
+func (u UUID) MarshalJSON() ([]byte, error) {
+ if len(u) != 16 {
+ return []byte(`""`), nil
+ }
+ var js [38]byte
+ js[0] = '"'
+ encodeHex(js[1:], u)
+ js[37] = '"'
+ return js[:], nil
+}
+
+func (u *UUID) UnmarshalJSON(data []byte) error {
+ if string(data) == `""` {
+ return nil
+ }
+ if data[0] != '"' {
+ return errors.New("invalid UUID format")
+ }
+ data = data[1 : len(data)-1]
+ uu := Parse(string(data))
+ if uu == nil {
+ return errors.New("invalid UUID format")
+ }
+ *u = uu
+ return nil
+}
diff --git a/vendor/github.com/pborman/uuid/node.go b/vendor/github.com/pborman/uuid/node.go
new file mode 100644
index 000000000..42d60da8f
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/node.go
@@ -0,0 +1,117 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "net"
+ "sync"
+)
+
+var (
+ nodeMu sync.Mutex
+ interfaces []net.Interface // cached list of interfaces
+ ifname string // name of interface being used
+ nodeID []byte // hardware for version 1 UUIDs
+)
+
+// NodeInterface returns the name of the interface from which the NodeID was
+// derived. The interface "user" is returned if the NodeID was set by
+// SetNodeID.
+func NodeInterface() string {
+ defer nodeMu.Unlock()
+ nodeMu.Lock()
+ return ifname
+}
+
+// SetNodeInterface selects the hardware address to be used for Version 1 UUIDs.
+// If name is "" then the first usable interface found will be used or a random
+// Node ID will be generated. If a named interface cannot be found then false
+// is returned.
+//
+// SetNodeInterface never fails when name is "".
+func SetNodeInterface(name string) bool {
+ defer nodeMu.Unlock()
+ nodeMu.Lock()
+ return setNodeInterface(name)
+}
+
+func setNodeInterface(name string) bool {
+ if interfaces == nil {
+ var err error
+ interfaces, err = net.Interfaces()
+ if err != nil && name != "" {
+ return false
+ }
+ }
+
+ for _, ifs := range interfaces {
+ if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) {
+ if setNodeID(ifs.HardwareAddr) {
+ ifname = ifs.Name
+ return true
+ }
+ }
+ }
+
+ // We found no interfaces with a valid hardware address. If name
+ // does not specify a specific interface generate a random Node ID
+ // (section 4.1.6)
+ if name == "" {
+ if nodeID == nil {
+ nodeID = make([]byte, 6)
+ }
+ randomBits(nodeID)
+ return true
+ }
+ return false
+}
+
+// NodeID returns a slice of a copy of the current Node ID, setting the Node ID
+// if not already set.
+func NodeID() []byte {
+ defer nodeMu.Unlock()
+ nodeMu.Lock()
+ if nodeID == nil {
+ setNodeInterface("")
+ }
+ nid := make([]byte, 6)
+ copy(nid, nodeID)
+ return nid
+}
+
+// SetNodeID sets the Node ID to be used for Version 1 UUIDs. The first 6 bytes
+// of id are used. If id is less than 6 bytes then false is returned and the
+// Node ID is not set.
+func SetNodeID(id []byte) bool {
+ defer nodeMu.Unlock()
+ nodeMu.Lock()
+ if setNodeID(id) {
+ ifname = "user"
+ return true
+ }
+ return false
+}
+
+func setNodeID(id []byte) bool {
+ if len(id) < 6 {
+ return false
+ }
+ if nodeID == nil {
+ nodeID = make([]byte, 6)
+ }
+ copy(nodeID, id)
+ return true
+}
+
+// NodeID returns the 6 byte node id encoded in uuid. It returns nil if uuid is
+// not valid. The NodeID is only well defined for version 1 and 2 UUIDs.
+func (uuid UUID) NodeID() []byte {
+ if len(uuid) != 16 {
+ return nil
+ }
+ node := make([]byte, 6)
+ copy(node, uuid[10:])
+ return node
+}
diff --git a/vendor/github.com/pborman/uuid/sql.go b/vendor/github.com/pborman/uuid/sql.go
new file mode 100644
index 000000000..d015bfd13
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/sql.go
@@ -0,0 +1,66 @@
+// Copyright 2015 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.
+
+package uuid
+
+import (
+ "database/sql/driver"
+ "errors"
+ "fmt"
+)
+
+// Scan implements sql.Scanner so UUIDs can be read from databases transparently
+// Currently, database types that map to string and []byte are supported. Please
+// consult database-specific driver documentation for matching types.
+func (uuid *UUID) Scan(src interface{}) error {
+ switch src.(type) {
+ case string:
+ // if an empty UUID comes from a table, we return a null UUID
+ if src.(string) == "" {
+ return nil
+ }
+
+ // see uuid.Parse for required string format
+ parsed := Parse(src.(string))
+
+ if parsed == nil {
+ return errors.New("Scan: invalid UUID format")
+ }
+
+ *uuid = parsed
+ case []byte:
+ b := src.([]byte)
+
+ // if an empty UUID comes from a table, we return a null UUID
+ if len(b) == 0 {
+ return nil
+ }
+
+ // assumes a simple slice of bytes if 16 bytes
+ // otherwise attempts to parse
+ if len(b) == 16 {
+ *uuid = UUID(b)
+ } else {
+ u := Parse(string(b))
+
+ if u == nil {
+ return errors.New("Scan: invalid UUID format")
+ }
+
+ *uuid = u
+ }
+
+ default:
+ return fmt.Errorf("Scan: unable to scan type %T into UUID", src)
+ }
+
+ return nil
+}
+
+// Value implements sql.Valuer so that UUIDs can be written to databases
+// transparently. Currently, UUIDs map to strings. Please consult
+// database-specific driver documentation for matching types.
+func (uuid UUID) Value() (driver.Value, error) {
+ return uuid.String(), nil
+}
diff --git a/vendor/github.com/pborman/uuid/time.go b/vendor/github.com/pborman/uuid/time.go
new file mode 100644
index 000000000..eedf24219
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/time.go
@@ -0,0 +1,132 @@
+// Copyright 2014 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.
+
+package uuid
+
+import (
+ "encoding/binary"
+ "sync"
+ "time"
+)
+
+// A Time represents a time as the number of 100's of nanoseconds since 15 Oct
+// 1582.
+type Time int64
+
+const (
+ lillian = 2299160 // Julian day of 15 Oct 1582
+ unix = 2440587 // Julian day of 1 Jan 1970
+ epoch = unix - lillian // Days between epochs
+ g1582 = epoch * 86400 // seconds between epochs
+ g1582ns100 = g1582 * 10000000 // 100s of a nanoseconds between epochs
+)
+
+var (
+ timeMu sync.Mutex
+ lasttime uint64 // last time we returned
+ clock_seq uint16 // clock sequence for this run
+
+ timeNow = time.Now // for testing
+)
+
+// UnixTime converts t the number of seconds and nanoseconds using the Unix
+// epoch of 1 Jan 1970.
+func (t Time) UnixTime() (sec, nsec int64) {
+ sec = int64(t - g1582ns100)
+ nsec = (sec % 10000000) * 100
+ sec /= 10000000
+ return sec, nsec
+}
+
+// GetTime returns the current Time (100s of nanoseconds since 15 Oct 1582) and
+// clock sequence as well as adjusting the clock sequence as needed. An error
+// is returned if the current time cannot be determined.
+func GetTime() (Time, uint16, error) {
+ defer timeMu.Unlock()
+ timeMu.Lock()
+ return getTime()
+}
+
+func getTime() (Time, uint16, error) {
+ t := timeNow()
+
+ // If we don't have a clock sequence already, set one.
+ if clock_seq == 0 {
+ setClockSequence(-1)
+ }
+ now := uint64(t.UnixNano()/100) + g1582ns100
+
+ // If time has gone backwards with this clock sequence then we
+ // increment the clock sequence
+ if now <= lasttime {
+ clock_seq = ((clock_seq + 1) & 0x3fff) | 0x8000
+ }
+ lasttime = now
+ return Time(now), clock_seq, nil
+}
+
+// ClockSequence returns the current clock sequence, generating one if not
+// already set. The clock sequence is only used for Version 1 UUIDs.
+//
+// The uuid package does not use global static storage for the clock sequence or
+// the last time a UUID was generated. Unless SetClockSequence a new random
+// clock sequence is generated the first time a clock sequence is requested by
+// ClockSequence, GetTime, or NewUUID. (section 4.2.1.1) sequence is generated
+// for
+func ClockSequence() int {
+ defer timeMu.Unlock()
+ timeMu.Lock()
+ return clockSequence()
+}
+
+func clockSequence() int {
+ if clock_seq == 0 {
+ setClockSequence(-1)
+ }
+ return int(clock_seq & 0x3fff)
+}
+
+// SetClockSeq sets the clock sequence to the lower 14 bits of seq. Setting to
+// -1 causes a new sequence to be generated.
+func SetClockSequence(seq int) {
+ defer timeMu.Unlock()
+ timeMu.Lock()
+ setClockSequence(seq)
+}
+
+func setClockSequence(seq int) {
+ if seq == -1 {
+ var b [2]byte
+ randomBits(b[:]) // clock sequence
+ seq = int(b[0])<<8 | int(b[1])
+ }
+ old_seq := clock_seq
+ clock_seq = uint16(seq&0x3fff) | 0x8000 // Set our variant
+ if old_seq != clock_seq {
+ lasttime = 0
+ }
+}
+
+// Time returns the time in 100s of nanoseconds since 15 Oct 1582 encoded in
+// uuid. It returns false if uuid is not valid. The time is only well defined
+// for version 1 and 2 UUIDs.
+func (uuid UUID) Time() (Time, bool) {
+ if len(uuid) != 16 {
+ return 0, false
+ }
+ time := int64(binary.BigEndian.Uint32(uuid[0:4]))
+ time |= int64(binary.BigEndian.Uint16(uuid[4:6])) << 32
+ time |= int64(binary.BigEndian.Uint16(uuid[6:8])&0xfff) << 48
+ return Time(time), true
+}
+
+// ClockSequence returns the clock sequence encoded in uuid. It returns false
+// if uuid is not valid. The clock sequence is only well defined for version 1
+// and 2 UUIDs.
+func (uuid UUID) ClockSequence() (int, bool) {
+ if len(uuid) != 16 {
+ return 0, false
+ }
+ return int(binary.BigEndian.Uint16(uuid[8:10])) & 0x3fff, true
+}
diff --git a/vendor/github.com/pborman/uuid/util.go b/vendor/github.com/pborman/uuid/util.go
new file mode 100644
index 000000000..fc8e052c7
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/util.go
@@ -0,0 +1,43 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "io"
+)
+
+// randomBits completely fills slice b with random data.
+func randomBits(b []byte) {
+ if _, err := io.ReadFull(rander, b); err != nil {
+ panic(err.Error()) // rand should never fail
+ }
+}
+
+// xvalues returns the value of a byte as a hexadecimal digit or 255.
+var xvalues = [256]byte{
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 255, 255, 255, 255, 255, 255,
+ 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 10, 11, 12, 13, 14, 15, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+}
+
+// xtob converts the the first two hex bytes of x into a byte.
+func xtob(x string) (byte, bool) {
+ b1 := xvalues[x[0]]
+ b2 := xvalues[x[1]]
+ return (b1 << 4) | b2, b1 != 255 && b2 != 255
+}
diff --git a/vendor/github.com/pborman/uuid/uuid.go b/vendor/github.com/pborman/uuid/uuid.go
new file mode 100644
index 000000000..7c643cf0a
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/uuid.go
@@ -0,0 +1,201 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "bytes"
+ "crypto/rand"
+ "encoding/hex"
+ "fmt"
+ "io"
+ "strings"
+)
+
+// Array is a pass-by-value UUID that can be used as an effecient key in a map.
+type Array [16]byte
+
+// UUID converts uuid into a slice.
+func (uuid Array) UUID() UUID {
+ return uuid[:]
+}
+
+// String returns the string representation of uuid,
+// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
+func (uuid Array) String() string {
+ return uuid.UUID().String()
+}
+
+// A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC
+// 4122.
+type UUID []byte
+
+// A Version represents a UUIDs version.
+type Version byte
+
+// A Variant represents a UUIDs variant.
+type Variant byte
+
+// Constants returned by Variant.
+const (
+ Invalid = Variant(iota) // Invalid UUID
+ RFC4122 // The variant specified in RFC4122
+ Reserved // Reserved, NCS backward compatibility.
+ Microsoft // Reserved, Microsoft Corporation backward compatibility.
+ Future // Reserved for future definition.
+)
+
+var rander = rand.Reader // random function
+
+// New returns a new random (version 4) UUID as a string. It is a convenience
+// function for NewRandom().String().
+func New() string {
+ return NewRandom().String()
+}
+
+// Parse decodes s into a UUID or returns nil. Both the UUID form of
+// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and
+// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded.
+func Parse(s string) UUID {
+ if len(s) == 36+9 {
+ if strings.ToLower(s[:9]) != "urn:uuid:" {
+ return nil
+ }
+ s = s[9:]
+ } else if len(s) != 36 {
+ return nil
+ }
+ if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' {
+ return nil
+ }
+ var uuid [16]byte
+ for i, x := range [16]int{
+ 0, 2, 4, 6,
+ 9, 11,
+ 14, 16,
+ 19, 21,
+ 24, 26, 28, 30, 32, 34} {
+ if v, ok := xtob(s[x:]); !ok {
+ return nil
+ } else {
+ uuid[i] = v
+ }
+ }
+ return uuid[:]
+}
+
+// Equal returns true if uuid1 and uuid2 are equal.
+func Equal(uuid1, uuid2 UUID) bool {
+ return bytes.Equal(uuid1, uuid2)
+}
+
+// Array returns an array representation of uuid that can be used as a map key.
+// Array panics if uuid is not valid.
+func (uuid UUID) Array() Array {
+ if len(uuid) != 16 {
+ panic("invalid uuid")
+ }
+ var a Array
+ copy(a[:], uuid)
+ return a
+}
+
+// String returns the string form of uuid, xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
+// , or "" if uuid is invalid.
+func (uuid UUID) String() string {
+ if len(uuid) != 16 {
+ return ""
+ }
+ var buf [36]byte
+ encodeHex(buf[:], uuid)
+ return string(buf[:])
+}
+
+// URN returns the RFC 2141 URN form of uuid,
+// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, or "" if uuid is invalid.
+func (uuid UUID) URN() string {
+ if len(uuid) != 16 {
+ return ""
+ }
+ var buf [36 + 9]byte
+ copy(buf[:], "urn:uuid:")
+ encodeHex(buf[9:], uuid)
+ return string(buf[:])
+}
+
+func encodeHex(dst []byte, uuid UUID) {
+ hex.Encode(dst[:], uuid[:4])
+ dst[8] = '-'
+ hex.Encode(dst[9:13], uuid[4:6])
+ dst[13] = '-'
+ hex.Encode(dst[14:18], uuid[6:8])
+ dst[18] = '-'
+ hex.Encode(dst[19:23], uuid[8:10])
+ dst[23] = '-'
+ hex.Encode(dst[24:], uuid[10:])
+}
+
+// Variant returns the variant encoded in uuid. It returns Invalid if
+// uuid is invalid.
+func (uuid UUID) Variant() Variant {
+ if len(uuid) != 16 {
+ return Invalid
+ }
+ switch {
+ case (uuid[8] & 0xc0) == 0x80:
+ return RFC4122
+ case (uuid[8] & 0xe0) == 0xc0:
+ return Microsoft
+ case (uuid[8] & 0xe0) == 0xe0:
+ return Future
+ default:
+ return Reserved
+ }
+}
+
+// Version returns the version of uuid. It returns false if uuid is not
+// valid.
+func (uuid UUID) Version() (Version, bool) {
+ if len(uuid) != 16 {
+ return 0, false
+ }
+ return Version(uuid[6] >> 4), true
+}
+
+func (v Version) String() string {
+ if v > 15 {
+ return fmt.Sprintf("BAD_VERSION_%d", v)
+ }
+ return fmt.Sprintf("VERSION_%d", v)
+}
+
+func (v Variant) String() string {
+ switch v {
+ case RFC4122:
+ return "RFC4122"
+ case Reserved:
+ return "Reserved"
+ case Microsoft:
+ return "Microsoft"
+ case Future:
+ return "Future"
+ case Invalid:
+ return "Invalid"
+ }
+ return fmt.Sprintf("BadVariant%d", int(v))
+}
+
+// SetRand sets the random number generator to r, which implements io.Reader.
+// If r.Read returns an error when the package requests random data then
+// a panic will be issued.
+//
+// Calling SetRand with nil sets the random number generator to the default
+// generator.
+func SetRand(r io.Reader) {
+ if r == nil {
+ rander = rand.Reader
+ return
+ }
+ rander = r
+}
diff --git a/vendor/github.com/pborman/uuid/version1.go b/vendor/github.com/pborman/uuid/version1.go
new file mode 100644
index 000000000..0127eacfa
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/version1.go
@@ -0,0 +1,41 @@
+// Copyright 2011 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.
+
+package uuid
+
+import (
+ "encoding/binary"
+)
+
+// NewUUID returns a Version 1 UUID based on the current NodeID and clock
+// sequence, and the current time. If the NodeID has not been set by SetNodeID
+// or SetNodeInterface then it will be set automatically. If the NodeID cannot
+// be set NewUUID returns nil. If clock sequence has not been set by
+// SetClockSequence then it will be set automatically. If GetTime fails to
+// return the current NewUUID returns nil.
+func NewUUID() UUID {
+ if nodeID == nil {
+ SetNodeInterface("")
+ }
+
+ now, seq, err := GetTime()
+ if err != nil {
+ return nil
+ }
+
+ uuid := make([]byte, 16)
+
+ time_low := uint32(now & 0xffffffff)
+ time_mid := uint16((now >> 32) & 0xffff)
+ time_hi := uint16((now >> 48) & 0x0fff)
+ time_hi |= 0x1000 // Version 1
+
+ binary.BigEndian.PutUint32(uuid[0:], time_low)
+ binary.BigEndian.PutUint16(uuid[4:], time_mid)
+ binary.BigEndian.PutUint16(uuid[6:], time_hi)
+ binary.BigEndian.PutUint16(uuid[8:], seq)
+ copy(uuid[10:], nodeID)
+
+ return uuid
+}
diff --git a/vendor/github.com/pborman/uuid/version4.go b/vendor/github.com/pborman/uuid/version4.go
new file mode 100644
index 000000000..b3d4a368d
--- /dev/null
+++ b/vendor/github.com/pborman/uuid/version4.go
@@ -0,0 +1,25 @@
+// Copyright 2011 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.
+
+package uuid
+
+// Random returns a Random (Version 4) UUID or panics.
+//
+// The strength of the UUIDs is based on the strength of the crypto/rand
+// package.
+//
+// A note about uniqueness derived from from the UUID Wikipedia entry:
+//
+// Randomly generated UUIDs have 122 random bits. One's annual risk of being
+// hit by a meteorite is estimated to be one chance in 17 billion, that
+// means the probability is about 0.00000000006 (6 × 10−11),
+// equivalent to the odds of creating a few tens of trillions of UUIDs in a
+// year and having one duplicate.
+func NewRandom() UUID {
+ uuid := make([]byte, 16)
+ randomBits([]byte(uuid))
+ uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4
+ uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10
+ return uuid
+}
diff --git a/vendor/github.com/peterh/liner/COPYING b/vendor/github.com/peterh/liner/COPYING
new file mode 100644
index 000000000..9e8c9f206
--- /dev/null
+++ b/vendor/github.com/peterh/liner/COPYING
@@ -0,0 +1,21 @@
+Copyright © 2012 Peter Harris
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice (including the next
+paragraph) shall be included in all copies or substantial portions of the
+Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
diff --git a/vendor/github.com/peterh/liner/README.md b/vendor/github.com/peterh/liner/README.md
new file mode 100644
index 000000000..9148b2492
--- /dev/null
+++ b/vendor/github.com/peterh/liner/README.md
@@ -0,0 +1,100 @@
+Liner
+=====
+
+Liner is a command line editor with history. It was inspired by linenoise;
+everything Unix-like is a VT100 (or is trying very hard to be). If your
+terminal is not pretending to be a VT100, change it. Liner also support
+Windows.
+
+Liner is released under the X11 license (which is similar to the new BSD
+license).
+
+Line Editing
+------------
+
+The following line editing commands are supported on platforms and terminals
+that Liner supports:
+
+Keystroke | Action
+--------- | ------
+Ctrl-A, Home | Move cursor to beginning of line
+Ctrl-E, End | Move cursor to end of line
+Ctrl-B, Left | Move cursor one character left
+Ctrl-F, Right| Move cursor one character right
+Ctrl-Left, Alt-B | Move cursor to previous word
+Ctrl-Right, Alt-F | Move cursor to next word
+Ctrl-D, Del | (if line is *not* empty) Delete character under cursor
+Ctrl-D | (if line *is* empty) End of File - usually quits application
+Ctrl-C | Reset input (create new empty prompt)
+Ctrl-L | Clear screen (line is unmodified)
+Ctrl-T | Transpose previous character with current character
+Ctrl-H, BackSpace | Delete character before cursor
+Ctrl-W | Delete word leading up to cursor
+Ctrl-K | Delete from cursor to end of line
+Ctrl-U | Delete from start of line to cursor
+Ctrl-P, Up | Previous match from history
+Ctrl-N, Down | Next match from history
+Ctrl-R | Reverse Search history (Ctrl-S forward, Ctrl-G cancel)
+Ctrl-Y | Paste from Yank buffer (Alt-Y to paste next yank instead)
+Tab | Next completion
+Shift-Tab | (after Tab) Previous completion
+
+Getting started
+-----------------
+
+```go
+package main
+
+import (
+ "log"
+ "os"
+ "path/filepath"
+ "strings"
+
+ "github.com/peterh/liner"
+)
+
+var (
+ history_fn = filepath.Join(os.TempDir(), ".liner_example_history")
+ names = []string{"john", "james", "mary", "nancy"}
+)
+
+func main() {
+ line := liner.NewLiner()
+ defer line.Close()
+
+ line.SetCtrlCAborts(true)
+
+ line.SetCompleter(func(line string) (c []string) {
+ for _, n := range names {
+ if strings.HasPrefix(n, strings.ToLower(line)) {
+ c = append(c, n)
+ }
+ }
+ return
+ })
+
+ if f, err := os.Open(history_fn); err == nil {
+ line.ReadHistory(f)
+ f.Close()
+ }
+
+ if name, err := line.Prompt("What is your name? "); err == nil {
+ log.Print("Got: ", name)
+ line.AppendHistory(name)
+ } else if err == liner.ErrPromptAborted {
+ log.Print("Aborted")
+ } else {
+ log.Print("Error reading line: ", err)
+ }
+
+ if f, err := os.Create(history_fn); err != nil {
+ log.Print("Error writing history file: ", err)
+ } else {
+ line.WriteHistory(f)
+ f.Close()
+ }
+}
+```
+
+For documentation, see http://godoc.org/github.com/peterh/liner
diff --git a/vendor/github.com/peterh/liner/bsdinput.go b/vendor/github.com/peterh/liner/bsdinput.go
new file mode 100644
index 000000000..35933982f
--- /dev/null
+++ b/vendor/github.com/peterh/liner/bsdinput.go
@@ -0,0 +1,41 @@
+// +build openbsd freebsd netbsd
+
+package liner
+
+import "syscall"
+
+const (
+ getTermios = syscall.TIOCGETA
+ setTermios = syscall.TIOCSETA
+)
+
+const (
+ // Input flags
+ inpck = 0x010
+ istrip = 0x020
+ icrnl = 0x100
+ ixon = 0x200
+
+ // Output flags
+ opost = 0x1
+
+ // Control flags
+ cs8 = 0x300
+
+ // Local flags
+ isig = 0x080
+ icanon = 0x100
+ iexten = 0x400
+)
+
+type termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [20]byte
+ Ispeed int32
+ Ospeed int32
+}
+
+const cursorColumn = false
diff --git a/vendor/github.com/peterh/liner/common.go b/vendor/github.com/peterh/liner/common.go
new file mode 100644
index 000000000..b6162b624
--- /dev/null
+++ b/vendor/github.com/peterh/liner/common.go
@@ -0,0 +1,237 @@
+/*
+Package liner implements a simple command line editor, inspired by linenoise
+(https://github.com/antirez/linenoise/). This package supports WIN32 in
+addition to the xterm codes supported by everything else.
+*/
+package liner
+
+import (
+ "bufio"
+ "container/ring"
+ "errors"
+ "fmt"
+ "io"
+ "strings"
+ "sync"
+ "unicode/utf8"
+)
+
+type commonState struct {
+ terminalSupported bool
+ outputRedirected bool
+ inputRedirected bool
+ history []string
+ historyMutex sync.RWMutex
+ completer WordCompleter
+ columns int
+ killRing *ring.Ring
+ ctrlCAborts bool
+ r *bufio.Reader
+ tabStyle TabStyle
+ multiLineMode bool
+ cursorRows int
+ maxRows int
+ shouldRestart ShouldRestart
+}
+
+// TabStyle is used to select how tab completions are displayed.
+type TabStyle int
+
+// Two tab styles are currently available:
+//
+// TabCircular cycles through each completion item and displays it directly on
+// the prompt
+//
+// TabPrints prints the list of completion items to the screen after a second
+// tab key is pressed. This behaves similar to GNU readline and BASH (which
+// uses readline)
+const (
+ TabCircular TabStyle = iota
+ TabPrints
+)
+
+// ErrPromptAborted is returned from Prompt or PasswordPrompt when the user presses Ctrl-C
+// if SetCtrlCAborts(true) has been called on the State
+var ErrPromptAborted = errors.New("prompt aborted")
+
+// ErrNotTerminalOutput is returned from Prompt or PasswordPrompt if the
+// platform is normally supported, but stdout has been redirected
+var ErrNotTerminalOutput = errors.New("standard output is not a terminal")
+
+// Max elements to save on the killring
+const KillRingMax = 60
+
+// HistoryLimit is the maximum number of entries saved in the scrollback history.
+const HistoryLimit = 1000
+
+// ReadHistory reads scrollback history from r. Returns the number of lines
+// read, and any read error (except io.EOF).
+func (s *State) ReadHistory(r io.Reader) (num int, err error) {
+ s.historyMutex.Lock()
+ defer s.historyMutex.Unlock()
+
+ in := bufio.NewReader(r)
+ num = 0
+ for {
+ line, part, err := in.ReadLine()
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return num, err
+ }
+ if part {
+ return num, fmt.Errorf("line %d is too long", num+1)
+ }
+ if !utf8.Valid(line) {
+ return num, fmt.Errorf("invalid string at line %d", num+1)
+ }
+ num++
+ s.history = append(s.history, string(line))
+ if len(s.history) > HistoryLimit {
+ s.history = s.history[1:]
+ }
+ }
+ return num, nil
+}
+
+// WriteHistory writes scrollback history to w. Returns the number of lines
+// successfully written, and any write error.
+//
+// Unlike the rest of liner's API, WriteHistory is safe to call
+// from another goroutine while Prompt is in progress.
+// This exception is to facilitate the saving of the history buffer
+// during an unexpected exit (for example, due to Ctrl-C being invoked)
+func (s *State) WriteHistory(w io.Writer) (num int, err error) {
+ s.historyMutex.RLock()
+ defer s.historyMutex.RUnlock()
+
+ for _, item := range s.history {
+ _, err := fmt.Fprintln(w, item)
+ if err != nil {
+ return num, err
+ }
+ num++
+ }
+ return num, nil
+}
+
+// AppendHistory appends an entry to the scrollback history. AppendHistory
+// should be called iff Prompt returns a valid command.
+func (s *State) AppendHistory(item string) {
+ s.historyMutex.Lock()
+ defer s.historyMutex.Unlock()
+
+ if len(s.history) > 0 {
+ if item == s.history[len(s.history)-1] {
+ return
+ }
+ }
+ s.history = append(s.history, item)
+ if len(s.history) > HistoryLimit {
+ s.history = s.history[1:]
+ }
+}
+
+// Returns the history lines starting with prefix
+func (s *State) getHistoryByPrefix(prefix string) (ph []string) {
+ for _, h := range s.history {
+ if strings.HasPrefix(h, prefix) {
+ ph = append(ph, h)
+ }
+ }
+ return
+}
+
+// Returns the history lines matching the inteligent search
+func (s *State) getHistoryByPattern(pattern string) (ph []string, pos []int) {
+ if pattern == "" {
+ return
+ }
+ for _, h := range s.history {
+ if i := strings.Index(h, pattern); i >= 0 {
+ ph = append(ph, h)
+ pos = append(pos, i)
+ }
+ }
+ return
+}
+
+// Completer takes the currently edited line content at the left of the cursor
+// and returns a list of completion candidates.
+// If the line is "Hello, wo!!!" and the cursor is before the first '!', "Hello, wo" is passed
+// to the completer which may return {"Hello, world", "Hello, Word"} to have "Hello, world!!!".
+type Completer func(line string) []string
+
+// WordCompleter takes the currently edited line with the cursor position and
+// returns the completion candidates for the partial word to be completed.
+// If the line is "Hello, wo!!!" and the cursor is before the first '!', ("Hello, wo!!!", 9) is passed
+// to the completer which may returns ("Hello, ", {"world", "Word"}, "!!!") to have "Hello, world!!!".
+type WordCompleter func(line string, pos int) (head string, completions []string, tail string)
+
+// SetCompleter sets the completion function that Liner will call to
+// fetch completion candidates when the user presses tab.
+func (s *State) SetCompleter(f Completer) {
+ if f == nil {
+ s.completer = nil
+ return
+ }
+ s.completer = func(line string, pos int) (string, []string, string) {
+ return "", f(string([]rune(line)[:pos])), string([]rune(line)[pos:])
+ }
+}
+
+// SetWordCompleter sets the completion function that Liner will call to
+// fetch completion candidates when the user presses tab.
+func (s *State) SetWordCompleter(f WordCompleter) {
+ s.completer = f
+}
+
+// SetTabCompletionStyle sets the behvavior when the Tab key is pressed
+// for auto-completion. TabCircular is the default behavior and cycles
+// through the list of candidates at the prompt. TabPrints will print
+// the available completion candidates to the screen similar to BASH
+// and GNU Readline
+func (s *State) SetTabCompletionStyle(tabStyle TabStyle) {
+ s.tabStyle = tabStyle
+}
+
+// ModeApplier is the interface that wraps a representation of the terminal
+// mode. ApplyMode sets the terminal to this mode.
+type ModeApplier interface {
+ ApplyMode() error
+}
+
+// SetCtrlCAborts sets whether Prompt on a supported terminal will return an
+// ErrPromptAborted when Ctrl-C is pressed. The default is false (will not
+// return when Ctrl-C is pressed). Unsupported terminals typically raise SIGINT
+// (and Prompt does not return) regardless of the value passed to SetCtrlCAborts.
+func (s *State) SetCtrlCAborts(aborts bool) {
+ s.ctrlCAborts = aborts
+}
+
+// SetMultiLineMode sets whether line is auto-wrapped. The default is false (single line).
+func (s *State) SetMultiLineMode(mlmode bool) {
+ s.multiLineMode = mlmode
+}
+
+// ShouldRestart is passed the error generated by readNext and returns true if
+// the the read should be restarted or false if the error should be returned.
+type ShouldRestart func(err error) bool
+
+// SetShouldRestart sets the restart function that Liner will call to determine
+// whether to retry the call to, or return the error returned by, readNext.
+func (s *State) SetShouldRestart(f ShouldRestart) {
+ s.shouldRestart = f
+}
+
+func (s *State) promptUnsupported(p string) (string, error) {
+ if !s.inputRedirected || !s.terminalSupported {
+ fmt.Print(p)
+ }
+ linebuf, _, err := s.r.ReadLine()
+ if err != nil {
+ return "", err
+ }
+ return string(linebuf), nil
+}
diff --git a/vendor/github.com/peterh/liner/fallbackinput.go b/vendor/github.com/peterh/liner/fallbackinput.go
new file mode 100644
index 000000000..d9eb79d9e
--- /dev/null
+++ b/vendor/github.com/peterh/liner/fallbackinput.go
@@ -0,0 +1,57 @@
+// +build !windows,!linux,!darwin,!openbsd,!freebsd,!netbsd
+
+package liner
+
+import (
+ "bufio"
+ "errors"
+ "os"
+)
+
+// State represents an open terminal
+type State struct {
+ commonState
+}
+
+// Prompt displays p, and then waits for user input. Prompt does not support
+// line editing on this operating system.
+func (s *State) Prompt(p string) (string, error) {
+ return s.promptUnsupported(p)
+}
+
+// PasswordPrompt is not supported in this OS.
+func (s *State) PasswordPrompt(p string) (string, error) {
+ return "", errors.New("liner: function not supported in this terminal")
+}
+
+// NewLiner initializes a new *State
+//
+// Note that this operating system uses a fallback mode without line
+// editing. Patches welcome.
+func NewLiner() *State {
+ var s State
+ s.r = bufio.NewReader(os.Stdin)
+ return &s
+}
+
+// Close returns the terminal to its previous mode
+func (s *State) Close() error {
+ return nil
+}
+
+// TerminalSupported returns false because line editing is not
+// supported on this platform.
+func TerminalSupported() bool {
+ return false
+}
+
+type noopMode struct{}
+
+func (n noopMode) ApplyMode() error {
+ return nil
+}
+
+// TerminalMode returns a noop InputModeSetter on this platform.
+func TerminalMode() (ModeApplier, error) {
+ return noopMode{}, nil
+}
diff --git a/vendor/github.com/peterh/liner/input.go b/vendor/github.com/peterh/liner/input.go
new file mode 100644
index 000000000..0ee6be7af
--- /dev/null
+++ b/vendor/github.com/peterh/liner/input.go
@@ -0,0 +1,367 @@
+// +build linux darwin openbsd freebsd netbsd
+
+package liner
+
+import (
+ "bufio"
+ "errors"
+ "os"
+ "os/signal"
+ "strconv"
+ "strings"
+ "syscall"
+ "time"
+)
+
+type nexter struct {
+ r rune
+ err error
+}
+
+// State represents an open terminal
+type State struct {
+ commonState
+ origMode termios
+ defaultMode termios
+ next <-chan nexter
+ winch chan os.Signal
+ pending []rune
+ useCHA bool
+}
+
+// NewLiner initializes a new *State, and sets the terminal into raw mode. To
+// restore the terminal to its previous state, call State.Close().
+//
+// Note if you are still using Go 1.0: NewLiner handles SIGWINCH, so it will
+// leak a channel every time you call it. Therefore, it is recommened that you
+// upgrade to a newer release of Go, or ensure that NewLiner is only called
+// once.
+func NewLiner() *State {
+ var s State
+ s.r = bufio.NewReader(os.Stdin)
+
+ s.terminalSupported = TerminalSupported()
+ if m, err := TerminalMode(); err == nil {
+ s.origMode = *m.(*termios)
+ } else {
+ s.inputRedirected = true
+ }
+ if _, err := getMode(syscall.Stdout); err != 0 {
+ s.outputRedirected = true
+ }
+ if s.inputRedirected && s.outputRedirected {
+ s.terminalSupported = false
+ }
+ if s.terminalSupported && !s.inputRedirected && !s.outputRedirected {
+ mode := s.origMode
+ mode.Iflag &^= icrnl | inpck | istrip | ixon
+ mode.Cflag |= cs8
+ mode.Lflag &^= syscall.ECHO | icanon | iexten
+ mode.ApplyMode()
+
+ winch := make(chan os.Signal, 1)
+ signal.Notify(winch, syscall.SIGWINCH)
+ s.winch = winch
+
+ s.checkOutput()
+ }
+
+ if !s.outputRedirected {
+ s.outputRedirected = !s.getColumns()
+ }
+
+ return &s
+}
+
+var errTimedOut = errors.New("timeout")
+
+func (s *State) startPrompt() {
+ if s.terminalSupported {
+ if m, err := TerminalMode(); err == nil {
+ s.defaultMode = *m.(*termios)
+ mode := s.defaultMode
+ mode.Lflag &^= isig
+ mode.ApplyMode()
+ }
+ }
+ s.restartPrompt()
+}
+
+func (s *State) restartPrompt() {
+ next := make(chan nexter)
+ go func() {
+ for {
+ var n nexter
+ n.r, _, n.err = s.r.ReadRune()
+ next <- n
+ // Shut down nexter loop when an end condition has been reached
+ if n.err != nil || n.r == '\n' || n.r == '\r' || n.r == ctrlC || n.r == ctrlD {
+ close(next)
+ return
+ }
+ }
+ }()
+ s.next = next
+}
+
+func (s *State) stopPrompt() {
+ if s.terminalSupported {
+ s.defaultMode.ApplyMode()
+ }
+}
+
+func (s *State) nextPending(timeout <-chan time.Time) (rune, error) {
+ select {
+ case thing, ok := <-s.next:
+ if !ok {
+ return 0, errors.New("liner: internal error")
+ }
+ if thing.err != nil {
+ return 0, thing.err
+ }
+ s.pending = append(s.pending, thing.r)
+ return thing.r, nil
+ case <-timeout:
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, errTimedOut
+ }
+ // not reached
+ return 0, nil
+}
+
+func (s *State) readNext() (interface{}, error) {
+ if len(s.pending) > 0 {
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ var r rune
+ select {
+ case thing, ok := <-s.next:
+ if !ok {
+ return 0, errors.New("liner: internal error")
+ }
+ if thing.err != nil {
+ return nil, thing.err
+ }
+ r = thing.r
+ case <-s.winch:
+ s.getColumns()
+ return winch, nil
+ }
+ if r != esc {
+ return r, nil
+ }
+ s.pending = append(s.pending, r)
+
+ // Wait at most 50 ms for the rest of the escape sequence
+ // If nothing else arrives, it was an actual press of the esc key
+ timeout := time.After(50 * time.Millisecond)
+ flag, err := s.nextPending(timeout)
+ if err != nil {
+ if err == errTimedOut {
+ return flag, nil
+ }
+ return unknown, err
+ }
+
+ switch flag {
+ case '[':
+ code, err := s.nextPending(timeout)
+ if err != nil {
+ if err == errTimedOut {
+ return code, nil
+ }
+ return unknown, err
+ }
+ switch code {
+ case 'A':
+ s.pending = s.pending[:0] // escape code complete
+ return up, nil
+ case 'B':
+ s.pending = s.pending[:0] // escape code complete
+ return down, nil
+ case 'C':
+ s.pending = s.pending[:0] // escape code complete
+ return right, nil
+ case 'D':
+ s.pending = s.pending[:0] // escape code complete
+ return left, nil
+ case 'F':
+ s.pending = s.pending[:0] // escape code complete
+ return end, nil
+ case 'H':
+ s.pending = s.pending[:0] // escape code complete
+ return home, nil
+ case 'Z':
+ s.pending = s.pending[:0] // escape code complete
+ return shiftTab, nil
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ num := []rune{code}
+ for {
+ code, err := s.nextPending(timeout)
+ if err != nil {
+ if err == errTimedOut {
+ return code, nil
+ }
+ return nil, err
+ }
+ switch code {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ num = append(num, code)
+ case ';':
+ // Modifier code to follow
+ // This only supports Ctrl-left and Ctrl-right for now
+ x, _ := strconv.ParseInt(string(num), 10, 32)
+ if x != 1 {
+ // Can't be left or right
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ num = num[:0]
+ for {
+ code, err = s.nextPending(timeout)
+ if err != nil {
+ if err == errTimedOut {
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ return nil, err
+ }
+ switch code {
+ case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
+ num = append(num, code)
+ case 'C', 'D':
+ // right, left
+ mod, _ := strconv.ParseInt(string(num), 10, 32)
+ if mod != 5 {
+ // Not bare Ctrl
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ s.pending = s.pending[:0] // escape code complete
+ if code == 'C' {
+ return wordRight, nil
+ }
+ return wordLeft, nil
+ default:
+ // Not left or right
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ }
+ case '~':
+ s.pending = s.pending[:0] // escape code complete
+ x, _ := strconv.ParseInt(string(num), 10, 32)
+ switch x {
+ case 2:
+ return insert, nil
+ case 3:
+ return del, nil
+ case 5:
+ return pageUp, nil
+ case 6:
+ return pageDown, nil
+ case 7:
+ return home, nil
+ case 8:
+ return end, nil
+ case 15:
+ return f5, nil
+ case 17:
+ return f6, nil
+ case 18:
+ return f7, nil
+ case 19:
+ return f8, nil
+ case 20:
+ return f9, nil
+ case 21:
+ return f10, nil
+ case 23:
+ return f11, nil
+ case 24:
+ return f12, nil
+ default:
+ return unknown, nil
+ }
+ default:
+ // unrecognized escape code
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+ }
+ }
+
+ case 'O':
+ code, err := s.nextPending(timeout)
+ if err != nil {
+ if err == errTimedOut {
+ return code, nil
+ }
+ return nil, err
+ }
+ s.pending = s.pending[:0] // escape code complete
+ switch code {
+ case 'c':
+ return wordRight, nil
+ case 'd':
+ return wordLeft, nil
+ case 'H':
+ return home, nil
+ case 'F':
+ return end, nil
+ case 'P':
+ return f1, nil
+ case 'Q':
+ return f2, nil
+ case 'R':
+ return f3, nil
+ case 'S':
+ return f4, nil
+ default:
+ return unknown, nil
+ }
+ case 'b':
+ s.pending = s.pending[:0] // escape code complete
+ return altB, nil
+ case 'f':
+ s.pending = s.pending[:0] // escape code complete
+ return altF, nil
+ case 'y':
+ s.pending = s.pending[:0] // escape code complete
+ return altY, nil
+ default:
+ rv := s.pending[0]
+ s.pending = s.pending[1:]
+ return rv, nil
+ }
+
+ // not reached
+ return r, nil
+}
+
+// Close returns the terminal to its previous mode
+func (s *State) Close() error {
+ stopSignal(s.winch)
+ if !s.inputRedirected {
+ s.origMode.ApplyMode()
+ }
+ return nil
+}
+
+// TerminalSupported returns true if the current terminal supports
+// line editing features, and false if liner will use the 'dumb'
+// fallback for input.
+// Note that TerminalSupported does not check all factors that may
+// cause liner to not fully support the terminal (such as stdin redirection)
+func TerminalSupported() bool {
+ bad := map[string]bool{"": true, "dumb": true, "cons25": true}
+ return !bad[strings.ToLower(os.Getenv("TERM"))]
+}
diff --git a/vendor/github.com/peterh/liner/input_darwin.go b/vendor/github.com/peterh/liner/input_darwin.go
new file mode 100644
index 000000000..e98ab4a49
--- /dev/null
+++ b/vendor/github.com/peterh/liner/input_darwin.go
@@ -0,0 +1,43 @@
+// +build darwin
+
+package liner
+
+import "syscall"
+
+const (
+ getTermios = syscall.TIOCGETA
+ setTermios = syscall.TIOCSETA
+)
+
+const (
+ // Input flags
+ inpck = 0x010
+ istrip = 0x020
+ icrnl = 0x100
+ ixon = 0x200
+
+ // Output flags
+ opost = 0x1
+
+ // Control flags
+ cs8 = 0x300
+
+ // Local flags
+ isig = 0x080
+ icanon = 0x100
+ iexten = 0x400
+)
+
+type termios struct {
+ Iflag uintptr
+ Oflag uintptr
+ Cflag uintptr
+ Lflag uintptr
+ Cc [20]byte
+ Ispeed uintptr
+ Ospeed uintptr
+}
+
+// Terminal.app needs a column for the cursor when the input line is at the
+// bottom of the window.
+const cursorColumn = true
diff --git a/vendor/github.com/peterh/liner/input_linux.go b/vendor/github.com/peterh/liner/input_linux.go
new file mode 100644
index 000000000..56ed185fa
--- /dev/null
+++ b/vendor/github.com/peterh/liner/input_linux.go
@@ -0,0 +1,28 @@
+// +build linux
+
+package liner
+
+import "syscall"
+
+const (
+ getTermios = syscall.TCGETS
+ setTermios = syscall.TCSETS
+)
+
+const (
+ icrnl = syscall.ICRNL
+ inpck = syscall.INPCK
+ istrip = syscall.ISTRIP
+ ixon = syscall.IXON
+ opost = syscall.OPOST
+ cs8 = syscall.CS8
+ isig = syscall.ISIG
+ icanon = syscall.ICANON
+ iexten = syscall.IEXTEN
+)
+
+type termios struct {
+ syscall.Termios
+}
+
+const cursorColumn = false
diff --git a/vendor/github.com/peterh/liner/input_windows.go b/vendor/github.com/peterh/liner/input_windows.go
new file mode 100644
index 000000000..199b9428e
--- /dev/null
+++ b/vendor/github.com/peterh/liner/input_windows.go
@@ -0,0 +1,324 @@
+package liner
+
+import (
+ "bufio"
+ "os"
+ "syscall"
+ "unsafe"
+)
+
+var (
+ kernel32 = syscall.NewLazyDLL("kernel32.dll")
+
+ procGetStdHandle = kernel32.NewProc("GetStdHandle")
+ procReadConsoleInput = kernel32.NewProc("ReadConsoleInputW")
+ procGetConsoleMode = kernel32.NewProc("GetConsoleMode")
+ procSetConsoleMode = kernel32.NewProc("SetConsoleMode")
+ procSetConsoleCursorPosition = kernel32.NewProc("SetConsoleCursorPosition")
+ procGetConsoleScreenBufferInfo = kernel32.NewProc("GetConsoleScreenBufferInfo")
+ procFillConsoleOutputCharacter = kernel32.NewProc("FillConsoleOutputCharacterW")
+)
+
+// These names are from the Win32 api, so they use underscores (contrary to
+// what golint suggests)
+const (
+ std_input_handle = uint32(-10 & 0xFFFFFFFF)
+ std_output_handle = uint32(-11 & 0xFFFFFFFF)
+ std_error_handle = uint32(-12 & 0xFFFFFFFF)
+ invalid_handle_value = ^uintptr(0)
+)
+
+type inputMode uint32
+
+// State represents an open terminal
+type State struct {
+ commonState
+ handle syscall.Handle
+ hOut syscall.Handle
+ origMode inputMode
+ defaultMode inputMode
+ key interface{}
+ repeat uint16
+}
+
+const (
+ enableEchoInput = 0x4
+ enableInsertMode = 0x20
+ enableLineInput = 0x2
+ enableMouseInput = 0x10
+ enableProcessedInput = 0x1
+ enableQuickEditMode = 0x40
+ enableWindowInput = 0x8
+)
+
+// NewLiner initializes a new *State, and sets the terminal into raw mode. To
+// restore the terminal to its previous state, call State.Close().
+func NewLiner() *State {
+ var s State
+ hIn, _, _ := procGetStdHandle.Call(uintptr(std_input_handle))
+ s.handle = syscall.Handle(hIn)
+ hOut, _, _ := procGetStdHandle.Call(uintptr(std_output_handle))
+ s.hOut = syscall.Handle(hOut)
+
+ s.terminalSupported = true
+ if m, err := TerminalMode(); err == nil {
+ s.origMode = m.(inputMode)
+ mode := s.origMode
+ mode &^= enableEchoInput
+ mode &^= enableInsertMode
+ mode &^= enableLineInput
+ mode &^= enableMouseInput
+ mode |= enableWindowInput
+ mode.ApplyMode()
+ } else {
+ s.inputRedirected = true
+ s.r = bufio.NewReader(os.Stdin)
+ }
+
+ s.getColumns()
+ s.outputRedirected = s.columns <= 0
+
+ return &s
+}
+
+// These names are from the Win32 api, so they use underscores (contrary to
+// what golint suggests)
+const (
+ focus_event = 0x0010
+ key_event = 0x0001
+ menu_event = 0x0008
+ mouse_event = 0x0002
+ window_buffer_size_event = 0x0004
+)
+
+type input_record struct {
+ eventType uint16
+ pad uint16
+ blob [16]byte
+}
+
+type key_event_record struct {
+ KeyDown int32
+ RepeatCount uint16
+ VirtualKeyCode uint16
+ VirtualScanCode uint16
+ Char int16
+ ControlKeyState uint32
+}
+
+// These names are from the Win32 api, so they use underscores (contrary to
+// what golint suggests)
+const (
+ vk_tab = 0x09
+ vk_prior = 0x21
+ vk_next = 0x22
+ vk_end = 0x23
+ vk_home = 0x24
+ vk_left = 0x25
+ vk_up = 0x26
+ vk_right = 0x27
+ vk_down = 0x28
+ vk_insert = 0x2d
+ vk_delete = 0x2e
+ vk_f1 = 0x70
+ vk_f2 = 0x71
+ vk_f3 = 0x72
+ vk_f4 = 0x73
+ vk_f5 = 0x74
+ vk_f6 = 0x75
+ vk_f7 = 0x76
+ vk_f8 = 0x77
+ vk_f9 = 0x78
+ vk_f10 = 0x79
+ vk_f11 = 0x7a
+ vk_f12 = 0x7b
+ bKey = 0x42
+ fKey = 0x46
+ yKey = 0x59
+)
+
+const (
+ shiftPressed = 0x0010
+ leftAltPressed = 0x0002
+ leftCtrlPressed = 0x0008
+ rightAltPressed = 0x0001
+ rightCtrlPressed = 0x0004
+
+ modKeys = shiftPressed | leftAltPressed | rightAltPressed | leftCtrlPressed | rightCtrlPressed
+)
+
+func (s *State) readNext() (interface{}, error) {
+ if s.repeat > 0 {
+ s.repeat--
+ return s.key, nil
+ }
+
+ var input input_record
+ pbuf := uintptr(unsafe.Pointer(&input))
+ var rv uint32
+ prv := uintptr(unsafe.Pointer(&rv))
+
+ for {
+ ok, _, err := procReadConsoleInput.Call(uintptr(s.handle), pbuf, 1, prv)
+
+ if ok == 0 {
+ return nil, err
+ }
+
+ if input.eventType == window_buffer_size_event {
+ xy := (*coord)(unsafe.Pointer(&input.blob[0]))
+ s.columns = int(xy.x)
+ if s.columns > 1 {
+ s.columns--
+ }
+ return winch, nil
+ }
+ if input.eventType != key_event {
+ continue
+ }
+ ke := (*key_event_record)(unsafe.Pointer(&input.blob[0]))
+ if ke.KeyDown == 0 {
+ continue
+ }
+
+ if ke.VirtualKeyCode == vk_tab && ke.ControlKeyState&modKeys == shiftPressed {
+ s.key = shiftTab
+ } else if ke.VirtualKeyCode == bKey && (ke.ControlKeyState&modKeys == leftAltPressed ||
+ ke.ControlKeyState&modKeys == rightAltPressed) {
+ s.key = altB
+ } else if ke.VirtualKeyCode == fKey && (ke.ControlKeyState&modKeys == leftAltPressed ||
+ ke.ControlKeyState&modKeys == rightAltPressed) {
+ s.key = altF
+ } else if ke.VirtualKeyCode == yKey && (ke.ControlKeyState&modKeys == leftAltPressed ||
+ ke.ControlKeyState&modKeys == rightAltPressed) {
+ s.key = altY
+ } else if ke.Char > 0 {
+ s.key = rune(ke.Char)
+ } else {
+ switch ke.VirtualKeyCode {
+ case vk_prior:
+ s.key = pageUp
+ case vk_next:
+ s.key = pageDown
+ case vk_end:
+ s.key = end
+ case vk_home:
+ s.key = home
+ case vk_left:
+ s.key = left
+ if ke.ControlKeyState&(leftCtrlPressed|rightCtrlPressed) != 0 {
+ if ke.ControlKeyState&modKeys == ke.ControlKeyState&(leftCtrlPressed|rightCtrlPressed) {
+ s.key = wordLeft
+ }
+ }
+ case vk_right:
+ s.key = right
+ if ke.ControlKeyState&(leftCtrlPressed|rightCtrlPressed) != 0 {
+ if ke.ControlKeyState&modKeys == ke.ControlKeyState&(leftCtrlPressed|rightCtrlPressed) {
+ s.key = wordRight
+ }
+ }
+ case vk_up:
+ s.key = up
+ case vk_down:
+ s.key = down
+ case vk_insert:
+ s.key = insert
+ case vk_delete:
+ s.key = del
+ case vk_f1:
+ s.key = f1
+ case vk_f2:
+ s.key = f2
+ case vk_f3:
+ s.key = f3
+ case vk_f4:
+ s.key = f4
+ case vk_f5:
+ s.key = f5
+ case vk_f6:
+ s.key = f6
+ case vk_f7:
+ s.key = f7
+ case vk_f8:
+ s.key = f8
+ case vk_f9:
+ s.key = f9
+ case vk_f10:
+ s.key = f10
+ case vk_f11:
+ s.key = f11
+ case vk_f12:
+ s.key = f12
+ default:
+ // Eat modifier keys
+ // TODO: return Action(Unknown) if the key isn't a
+ // modifier.
+ continue
+ }
+ }
+
+ if ke.RepeatCount > 1 {
+ s.repeat = ke.RepeatCount - 1
+ }
+ return s.key, nil
+ }
+ return unknown, nil
+}
+
+// Close returns the terminal to its previous mode
+func (s *State) Close() error {
+ s.origMode.ApplyMode()
+ return nil
+}
+
+func (s *State) startPrompt() {
+ if m, err := TerminalMode(); err == nil {
+ s.defaultMode = m.(inputMode)
+ mode := s.defaultMode
+ mode &^= enableProcessedInput
+ mode.ApplyMode()
+ }
+}
+
+func (s *State) restartPrompt() {
+}
+
+func (s *State) stopPrompt() {
+ s.defaultMode.ApplyMode()
+}
+
+// TerminalSupported returns true because line editing is always
+// supported on Windows.
+func TerminalSupported() bool {
+ return true
+}
+
+func (mode inputMode) ApplyMode() error {
+ hIn, _, err := procGetStdHandle.Call(uintptr(std_input_handle))
+ if hIn == invalid_handle_value || hIn == 0 {
+ return err
+ }
+ ok, _, err := procSetConsoleMode.Call(hIn, uintptr(mode))
+ if ok != 0 {
+ err = nil
+ }
+ return err
+}
+
+// TerminalMode returns the current terminal input mode as an InputModeSetter.
+//
+// This function is provided for convenience, and should
+// not be necessary for most users of liner.
+func TerminalMode() (ModeApplier, error) {
+ var mode inputMode
+ hIn, _, err := procGetStdHandle.Call(uintptr(std_input_handle))
+ if hIn == invalid_handle_value || hIn == 0 {
+ return nil, err
+ }
+ ok, _, err := procGetConsoleMode.Call(hIn, uintptr(unsafe.Pointer(&mode)))
+ if ok != 0 {
+ err = nil
+ }
+ return mode, err
+}
diff --git a/vendor/github.com/peterh/liner/line.go b/vendor/github.com/peterh/liner/line.go
new file mode 100644
index 000000000..903dd240d
--- /dev/null
+++ b/vendor/github.com/peterh/liner/line.go
@@ -0,0 +1,1033 @@
+// +build windows linux darwin openbsd freebsd netbsd
+
+package liner
+
+import (
+ "container/ring"
+ "errors"
+ "fmt"
+ "io"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+type action int
+
+const (
+ left action = iota
+ right
+ up
+ down
+ home
+ end
+ insert
+ del
+ pageUp
+ pageDown
+ f1
+ f2
+ f3
+ f4
+ f5
+ f6
+ f7
+ f8
+ f9
+ f10
+ f11
+ f12
+ altB
+ altF
+ altY
+ shiftTab
+ wordLeft
+ wordRight
+ winch
+ unknown
+)
+
+const (
+ ctrlA = 1
+ ctrlB = 2
+ ctrlC = 3
+ ctrlD = 4
+ ctrlE = 5
+ ctrlF = 6
+ ctrlG = 7
+ ctrlH = 8
+ tab = 9
+ lf = 10
+ ctrlK = 11
+ ctrlL = 12
+ cr = 13
+ ctrlN = 14
+ ctrlO = 15
+ ctrlP = 16
+ ctrlQ = 17
+ ctrlR = 18
+ ctrlS = 19
+ ctrlT = 20
+ ctrlU = 21
+ ctrlV = 22
+ ctrlW = 23
+ ctrlX = 24
+ ctrlY = 25
+ ctrlZ = 26
+ esc = 27
+ bs = 127
+)
+
+const (
+ beep = "\a"
+)
+
+type tabDirection int
+
+const (
+ tabForward tabDirection = iota
+ tabReverse
+)
+
+func (s *State) refresh(prompt []rune, buf []rune, pos int) error {
+ if s.multiLineMode {
+ return s.refreshMultiLine(prompt, buf, pos)
+ } else {
+ return s.refreshSingleLine(prompt, buf, pos)
+ }
+}
+
+func (s *State) refreshSingleLine(prompt []rune, buf []rune, pos int) error {
+ s.cursorPos(0)
+ _, err := fmt.Print(string(prompt))
+ if err != nil {
+ return err
+ }
+
+ pLen := countGlyphs(prompt)
+ bLen := countGlyphs(buf)
+ pos = countGlyphs(buf[:pos])
+ if pLen+bLen < s.columns {
+ _, err = fmt.Print(string(buf))
+ s.eraseLine()
+ s.cursorPos(pLen + pos)
+ } else {
+ // Find space available
+ space := s.columns - pLen
+ space-- // space for cursor
+ start := pos - space/2
+ end := start + space
+ if end > bLen {
+ end = bLen
+ start = end - space
+ }
+ if start < 0 {
+ start = 0
+ end = space
+ }
+ pos -= start
+
+ // Leave space for markers
+ if start > 0 {
+ start++
+ }
+ if end < bLen {
+ end--
+ }
+ startRune := len(getPrefixGlyphs(buf, start))
+ line := getPrefixGlyphs(buf[startRune:], end-start)
+
+ // Output
+ if start > 0 {
+ fmt.Print("{")
+ }
+ fmt.Print(string(line))
+ if end < bLen {
+ fmt.Print("}")
+ }
+
+ // Set cursor position
+ s.eraseLine()
+ s.cursorPos(pLen + pos)
+ }
+ return err
+}
+
+func (s *State) refreshMultiLine(prompt []rune, buf []rune, pos int) error {
+ promptColumns := countMultiLineGlyphs(prompt, s.columns, 0)
+ totalColumns := countMultiLineGlyphs(buf, s.columns, promptColumns)
+ totalRows := (totalColumns + s.columns - 1) / s.columns
+ maxRows := s.maxRows
+ if totalRows > s.maxRows {
+ s.maxRows = totalRows
+ }
+ cursorRows := s.cursorRows
+ if cursorRows == 0 {
+ cursorRows = 1
+ }
+
+ /* First step: clear all the lines used before. To do so start by
+ * going to the last row. */
+ if maxRows-cursorRows > 0 {
+ s.moveDown(maxRows - cursorRows)
+ }
+
+ /* Now for every row clear it, go up. */
+ for i := 0; i < maxRows-1; i++ {
+ s.cursorPos(0)
+ s.eraseLine()
+ s.moveUp(1)
+ }
+
+ /* Clean the top line. */
+ s.cursorPos(0)
+ s.eraseLine()
+
+ /* Write the prompt and the current buffer content */
+ if _, err := fmt.Print(string(prompt)); err != nil {
+ return err
+ }
+ if _, err := fmt.Print(string(buf)); err != nil {
+ return err
+ }
+
+ /* If we are at the very end of the screen with our prompt, we need to
+ * emit a newline and move the prompt to the first column. */
+ cursorColumns := countMultiLineGlyphs(buf[:pos], s.columns, promptColumns)
+ if cursorColumns == totalColumns && totalColumns%s.columns == 0 {
+ s.emitNewLine()
+ s.cursorPos(0)
+ totalRows++
+ if totalRows > s.maxRows {
+ s.maxRows = totalRows
+ }
+ }
+
+ /* Move cursor to right position. */
+ cursorRows = (cursorColumns + s.columns) / s.columns
+ if s.cursorRows > 0 && totalRows-cursorRows > 0 {
+ s.moveUp(totalRows - cursorRows)
+ }
+ /* Set column. */
+ s.cursorPos(cursorColumns % s.columns)
+
+ s.cursorRows = cursorRows
+ return nil
+}
+
+func (s *State) resetMultiLine(prompt []rune, buf []rune, pos int) {
+ columns := countMultiLineGlyphs(prompt, s.columns, 0)
+ columns = countMultiLineGlyphs(buf[:pos], s.columns, columns)
+ columns += 2 // ^C
+ cursorRows := (columns + s.columns) / s.columns
+ if s.maxRows-cursorRows > 0 {
+ for i := 0; i < s.maxRows-cursorRows; i++ {
+ fmt.Println() // always moves the cursor down or scrolls the window up as needed
+ }
+ }
+ s.maxRows = 1
+ s.cursorRows = 0
+}
+
+func longestCommonPrefix(strs []string) string {
+ if len(strs) == 0 {
+ return ""
+ }
+ longest := strs[0]
+
+ for _, str := range strs[1:] {
+ for !strings.HasPrefix(str, longest) {
+ longest = longest[:len(longest)-1]
+ }
+ }
+ // Remove trailing partial runes
+ longest = strings.TrimRight(longest, "\uFFFD")
+ return longest
+}
+
+func (s *State) circularTabs(items []string) func(tabDirection) (string, error) {
+ item := -1
+ return func(direction tabDirection) (string, error) {
+ if direction == tabForward {
+ if item < len(items)-1 {
+ item++
+ } else {
+ item = 0
+ }
+ } else if direction == tabReverse {
+ if item > 0 {
+ item--
+ } else {
+ item = len(items) - 1
+ }
+ }
+ return items[item], nil
+ }
+}
+
+func calculateColumns(screenWidth int, items []string) (numColumns, numRows, maxWidth int) {
+ for _, item := range items {
+ if len(item) >= screenWidth {
+ return 1, len(items), screenWidth - 1
+ }
+ if len(item) >= maxWidth {
+ maxWidth = len(item) + 1
+ }
+ }
+
+ numColumns = screenWidth / maxWidth
+ numRows = len(items) / numColumns
+ if len(items)%numColumns > 0 {
+ numRows++
+ }
+
+ if len(items) <= numColumns {
+ maxWidth = 0
+ }
+
+ return
+}
+
+func (s *State) printedTabs(items []string) func(tabDirection) (string, error) {
+ numTabs := 1
+ prefix := longestCommonPrefix(items)
+ return func(direction tabDirection) (string, error) {
+ if len(items) == 1 {
+ return items[0], nil
+ }
+
+ if numTabs == 2 {
+ if len(items) > 100 {
+ fmt.Printf("\nDisplay all %d possibilities? (y or n) ", len(items))
+ prompt:
+ for {
+ next, err := s.readNext()
+ if err != nil {
+ return prefix, err
+ }
+
+ if key, ok := next.(rune); ok {
+ switch key {
+ case 'n', 'N':
+ return prefix, nil
+ case 'y', 'Y':
+ break prompt
+ case ctrlC, ctrlD, cr, lf:
+ s.restartPrompt()
+ }
+ }
+ }
+ }
+ fmt.Println("")
+
+ numColumns, numRows, maxWidth := calculateColumns(s.columns, items)
+
+ for i := 0; i < numRows; i++ {
+ for j := 0; j < numColumns*numRows; j += numRows {
+ if i+j < len(items) {
+ if maxWidth > 0 {
+ fmt.Printf("%-*.[1]*s", maxWidth, items[i+j])
+ } else {
+ fmt.Printf("%v ", items[i+j])
+ }
+ }
+ }
+ fmt.Println("")
+ }
+ } else {
+ numTabs++
+ }
+ return prefix, nil
+ }
+}
+
+func (s *State) tabComplete(p []rune, line []rune, pos int) ([]rune, int, interface{}, error) {
+ if s.completer == nil {
+ return line, pos, rune(esc), nil
+ }
+ head, list, tail := s.completer(string(line), pos)
+ if len(list) <= 0 {
+ return line, pos, rune(esc), nil
+ }
+ hl := utf8.RuneCountInString(head)
+ if len(list) == 1 {
+ s.refresh(p, []rune(head+list[0]+tail), hl+utf8.RuneCountInString(list[0]))
+ return []rune(head + list[0] + tail), hl + utf8.RuneCountInString(list[0]), rune(esc), nil
+ }
+
+ direction := tabForward
+ tabPrinter := s.circularTabs(list)
+ if s.tabStyle == TabPrints {
+ tabPrinter = s.printedTabs(list)
+ }
+
+ for {
+ pick, err := tabPrinter(direction)
+ if err != nil {
+ return line, pos, rune(esc), err
+ }
+ s.refresh(p, []rune(head+pick+tail), hl+utf8.RuneCountInString(pick))
+
+ next, err := s.readNext()
+ if err != nil {
+ return line, pos, rune(esc), err
+ }
+ if key, ok := next.(rune); ok {
+ if key == tab {
+ direction = tabForward
+ continue
+ }
+ if key == esc {
+ return line, pos, rune(esc), nil
+ }
+ }
+ if a, ok := next.(action); ok && a == shiftTab {
+ direction = tabReverse
+ continue
+ }
+ return []rune(head + pick + tail), hl + utf8.RuneCountInString(pick), next, nil
+ }
+ // Not reached
+ return line, pos, rune(esc), nil
+}
+
+// reverse intelligent search, implements a bash-like history search.
+func (s *State) reverseISearch(origLine []rune, origPos int) ([]rune, int, interface{}, error) {
+ p := "(reverse-i-search)`': "
+ s.refresh([]rune(p), origLine, origPos)
+
+ line := []rune{}
+ pos := 0
+ foundLine := string(origLine)
+ foundPos := origPos
+
+ getLine := func() ([]rune, []rune, int) {
+ search := string(line)
+ prompt := "(reverse-i-search)`%s': "
+ return []rune(fmt.Sprintf(prompt, search)), []rune(foundLine), foundPos
+ }
+
+ history, positions := s.getHistoryByPattern(string(line))
+ historyPos := len(history) - 1
+
+ for {
+ next, err := s.readNext()
+ if err != nil {
+ return []rune(foundLine), foundPos, rune(esc), err
+ }
+
+ switch v := next.(type) {
+ case rune:
+ switch v {
+ case ctrlR: // Search backwards
+ if historyPos > 0 && historyPos < len(history) {
+ historyPos--
+ foundLine = history[historyPos]
+ foundPos = positions[historyPos]
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlS: // Search forward
+ if historyPos < len(history)-1 && historyPos >= 0 {
+ historyPos++
+ foundLine = history[historyPos]
+ foundPos = positions[historyPos]
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlH, bs: // Backspace
+ if pos <= 0 {
+ fmt.Print(beep)
+ } else {
+ n := len(getSuffixGlyphs(line[:pos], 1))
+ line = append(line[:pos-n], line[pos:]...)
+ pos -= n
+
+ // For each char deleted, display the last matching line of history
+ history, positions := s.getHistoryByPattern(string(line))
+ historyPos = len(history) - 1
+ if len(history) > 0 {
+ foundLine = history[historyPos]
+ foundPos = positions[historyPos]
+ } else {
+ foundLine = ""
+ foundPos = 0
+ }
+ }
+ case ctrlG: // Cancel
+ return origLine, origPos, rune(esc), err
+
+ case tab, cr, lf, ctrlA, ctrlB, ctrlD, ctrlE, ctrlF, ctrlK,
+ ctrlL, ctrlN, ctrlO, ctrlP, ctrlQ, ctrlT, ctrlU, ctrlV, ctrlW, ctrlX, ctrlY, ctrlZ:
+ fallthrough
+ case 0, ctrlC, esc, 28, 29, 30, 31:
+ return []rune(foundLine), foundPos, next, err
+ default:
+ line = append(line[:pos], append([]rune{v}, line[pos:]...)...)
+ pos++
+
+ // For each keystroke typed, display the last matching line of history
+ history, positions = s.getHistoryByPattern(string(line))
+ historyPos = len(history) - 1
+ if len(history) > 0 {
+ foundLine = history[historyPos]
+ foundPos = positions[historyPos]
+ } else {
+ foundLine = ""
+ foundPos = 0
+ }
+ }
+ case action:
+ return []rune(foundLine), foundPos, next, err
+ }
+ s.refresh(getLine())
+ }
+}
+
+// addToKillRing adds some text to the kill ring. If mode is 0 it adds it to a
+// new node in the end of the kill ring, and move the current pointer to the new
+// node. If mode is 1 or 2 it appends or prepends the text to the current entry
+// of the killRing.
+func (s *State) addToKillRing(text []rune, mode int) {
+ // Don't use the same underlying array as text
+ killLine := make([]rune, len(text))
+ copy(killLine, text)
+
+ // Point killRing to a newNode, procedure depends on the killring state and
+ // append mode.
+ if mode == 0 { // Add new node to killRing
+ if s.killRing == nil { // if killring is empty, create a new one
+ s.killRing = ring.New(1)
+ } else if s.killRing.Len() >= KillRingMax { // if killring is "full"
+ s.killRing = s.killRing.Next()
+ } else { // Normal case
+ s.killRing.Link(ring.New(1))
+ s.killRing = s.killRing.Next()
+ }
+ } else {
+ if s.killRing == nil { // if killring is empty, create a new one
+ s.killRing = ring.New(1)
+ s.killRing.Value = []rune{}
+ }
+ if mode == 1 { // Append to last entry
+ killLine = append(s.killRing.Value.([]rune), killLine...)
+ } else if mode == 2 { // Prepend to last entry
+ killLine = append(killLine, s.killRing.Value.([]rune)...)
+ }
+ }
+
+ // Save text in the current killring node
+ s.killRing.Value = killLine
+}
+
+func (s *State) yank(p []rune, text []rune, pos int) ([]rune, int, interface{}, error) {
+ if s.killRing == nil {
+ return text, pos, rune(esc), nil
+ }
+
+ lineStart := text[:pos]
+ lineEnd := text[pos:]
+ var line []rune
+
+ for {
+ value := s.killRing.Value.([]rune)
+ line = make([]rune, 0)
+ line = append(line, lineStart...)
+ line = append(line, value...)
+ line = append(line, lineEnd...)
+
+ pos = len(lineStart) + len(value)
+ s.refresh(p, line, pos)
+
+ next, err := s.readNext()
+ if err != nil {
+ return line, pos, next, err
+ }
+
+ switch v := next.(type) {
+ case rune:
+ return line, pos, next, nil
+ case action:
+ switch v {
+ case altY:
+ s.killRing = s.killRing.Prev()
+ default:
+ return line, pos, next, nil
+ }
+ }
+ }
+
+ return line, pos, esc, nil
+}
+
+// Prompt displays p and returns a line of user input, not including a trailing
+// newline character. An io.EOF error is returned if the user signals end-of-file
+// by pressing Ctrl-D. Prompt allows line editing if the terminal supports it.
+func (s *State) Prompt(prompt string) (string, error) {
+ return s.PromptWithSuggestion(prompt, "", 0)
+}
+
+// PromptWithSuggestion displays prompt and an editable text with cursor at
+// given position. The cursor will be set to the end of the line if given position
+// is negative or greater than length of text. Returns a line of user input, not
+// including a trailing newline character. An io.EOF error is returned if the user
+// signals end-of-file by pressing Ctrl-D.
+func (s *State) PromptWithSuggestion(prompt string, text string, pos int) (string, error) {
+ if s.inputRedirected || !s.terminalSupported {
+ return s.promptUnsupported(prompt)
+ }
+ if s.outputRedirected {
+ return "", ErrNotTerminalOutput
+ }
+
+ s.historyMutex.RLock()
+ defer s.historyMutex.RUnlock()
+
+ fmt.Print(prompt)
+ p := []rune(prompt)
+ var line = []rune(text)
+ historyEnd := ""
+ prefixHistory := s.getHistoryByPrefix(string(line))
+ historyPos := len(prefixHistory)
+ historyAction := false // used to mark history related actions
+ killAction := 0 // used to mark kill related actions
+
+ defer s.stopPrompt()
+
+ if pos < 0 || len(text) < pos {
+ pos = len(text)
+ }
+ if len(line) > 0 {
+ s.refresh(p, line, pos)
+ }
+
+restart:
+ s.startPrompt()
+ s.getColumns()
+
+mainLoop:
+ for {
+ next, err := s.readNext()
+ haveNext:
+ if err != nil {
+ if s.shouldRestart != nil && s.shouldRestart(err) {
+ goto restart
+ }
+ return "", err
+ }
+
+ historyAction = false
+ switch v := next.(type) {
+ case rune:
+ switch v {
+ case cr, lf:
+ if s.multiLineMode {
+ s.resetMultiLine(p, line, pos)
+ }
+ fmt.Println()
+ break mainLoop
+ case ctrlA: // Start of line
+ pos = 0
+ s.refresh(p, line, pos)
+ case ctrlE: // End of line
+ pos = len(line)
+ s.refresh(p, line, pos)
+ case ctrlB: // left
+ if pos > 0 {
+ pos -= len(getSuffixGlyphs(line[:pos], 1))
+ s.refresh(p, line, pos)
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlF: // right
+ if pos < len(line) {
+ pos += len(getPrefixGlyphs(line[pos:], 1))
+ s.refresh(p, line, pos)
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlD: // del
+ if pos == 0 && len(line) == 0 {
+ // exit
+ return "", io.EOF
+ }
+
+ // ctrlD is a potential EOF, so the rune reader shuts down.
+ // Therefore, if it isn't actually an EOF, we must re-startPrompt.
+ s.restartPrompt()
+
+ if pos >= len(line) {
+ fmt.Print(beep)
+ } else {
+ n := len(getPrefixGlyphs(line[pos:], 1))
+ line = append(line[:pos], line[pos+n:]...)
+ s.refresh(p, line, pos)
+ }
+ case ctrlK: // delete remainder of line
+ if pos >= len(line) {
+ fmt.Print(beep)
+ } else {
+ if killAction > 0 {
+ s.addToKillRing(line[pos:], 1) // Add in apend mode
+ } else {
+ s.addToKillRing(line[pos:], 0) // Add in normal mode
+ }
+
+ killAction = 2 // Mark that there was a kill action
+ line = line[:pos]
+ s.refresh(p, line, pos)
+ }
+ case ctrlP: // up
+ historyAction = true
+ if historyPos > 0 {
+ if historyPos == len(prefixHistory) {
+ historyEnd = string(line)
+ }
+ historyPos--
+ line = []rune(prefixHistory[historyPos])
+ pos = len(line)
+ s.refresh(p, line, pos)
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlN: // down
+ historyAction = true
+ if historyPos < len(prefixHistory) {
+ historyPos++
+ if historyPos == len(prefixHistory) {
+ line = []rune(historyEnd)
+ } else {
+ line = []rune(prefixHistory[historyPos])
+ }
+ pos = len(line)
+ s.refresh(p, line, pos)
+ } else {
+ fmt.Print(beep)
+ }
+ case ctrlT: // transpose prev glyph with glyph under cursor
+ if len(line) < 2 || pos < 1 {
+ fmt.Print(beep)
+ } else {
+ if pos == len(line) {
+ pos -= len(getSuffixGlyphs(line, 1))
+ }
+ prev := getSuffixGlyphs(line[:pos], 1)
+ next := getPrefixGlyphs(line[pos:], 1)
+ scratch := make([]rune, len(prev))
+ copy(scratch, prev)
+ copy(line[pos-len(prev):], next)
+ copy(line[pos-len(prev)+len(next):], scratch)
+ pos += len(next)
+ s.refresh(p, line, pos)
+ }
+ case ctrlL: // clear screen
+ s.eraseScreen()
+ s.refresh(p, line, pos)
+ case ctrlC: // reset
+ fmt.Println("^C")
+ if s.multiLineMode {
+ s.resetMultiLine(p, line, pos)
+ }
+ if s.ctrlCAborts {
+ return "", ErrPromptAborted
+ }
+ line = line[:0]
+ pos = 0
+ fmt.Print(prompt)
+ s.restartPrompt()
+ case ctrlH, bs: // Backspace
+ if pos <= 0 {
+ fmt.Print(beep)
+ } else {
+ n := len(getSuffixGlyphs(line[:pos], 1))
+ line = append(line[:pos-n], line[pos:]...)
+ pos -= n
+ s.refresh(p, line, pos)
+ }
+ case ctrlU: // Erase line before cursor
+ if killAction > 0 {
+ s.addToKillRing(line[:pos], 2) // Add in prepend mode
+ } else {
+ s.addToKillRing(line[:pos], 0) // Add in normal mode
+ }
+
+ killAction = 2 // Mark that there was some killing
+ line = line[pos:]
+ pos = 0
+ s.refresh(p, line, pos)
+ case ctrlW: // Erase word
+ if pos == 0 {
+ fmt.Print(beep)
+ break
+ }
+ // Remove whitespace to the left
+ var buf []rune // Store the deleted chars in a buffer
+ for {
+ if pos == 0 || !unicode.IsSpace(line[pos-1]) {
+ break
+ }
+ buf = append(buf, line[pos-1])
+ line = append(line[:pos-1], line[pos:]...)
+ pos--
+ }
+ // Remove non-whitespace to the left
+ for {
+ if pos == 0 || unicode.IsSpace(line[pos-1]) {
+ break
+ }
+ buf = append(buf, line[pos-1])
+ line = append(line[:pos-1], line[pos:]...)
+ pos--
+ }
+ // Invert the buffer and save the result on the killRing
+ var newBuf []rune
+ for i := len(buf) - 1; i >= 0; i-- {
+ newBuf = append(newBuf, buf[i])
+ }
+ if killAction > 0 {
+ s.addToKillRing(newBuf, 2) // Add in prepend mode
+ } else {
+ s.addToKillRing(newBuf, 0) // Add in normal mode
+ }
+ killAction = 2 // Mark that there was some killing
+
+ s.refresh(p, line, pos)
+ case ctrlY: // Paste from Yank buffer
+ line, pos, next, err = s.yank(p, line, pos)
+ goto haveNext
+ case ctrlR: // Reverse Search
+ line, pos, next, err = s.reverseISearch(line, pos)
+ s.refresh(p, line, pos)
+ goto haveNext
+ case tab: // Tab completion
+ line, pos, next, err = s.tabComplete(p, line, pos)
+ goto haveNext
+ // Catch keys that do nothing, but you don't want them to beep
+ case esc:
+ // DO NOTHING
+ // Unused keys
+ case ctrlG, ctrlO, ctrlQ, ctrlS, ctrlV, ctrlX, ctrlZ:
+ fallthrough
+ // Catch unhandled control codes (anything <= 31)
+ case 0, 28, 29, 30, 31:
+ fmt.Print(beep)
+ default:
+ if pos == len(line) && !s.multiLineMode && countGlyphs(p)+countGlyphs(line) < s.columns-1 {
+ line = append(line, v)
+ fmt.Printf("%c", v)
+ pos++
+ } else {
+ line = append(line[:pos], append([]rune{v}, line[pos:]...)...)
+ pos++
+ s.refresh(p, line, pos)
+ }
+ }
+ case action:
+ switch v {
+ case del:
+ if pos >= len(line) {
+ fmt.Print(beep)
+ } else {
+ n := len(getPrefixGlyphs(line[pos:], 1))
+ line = append(line[:pos], line[pos+n:]...)
+ }
+ case left:
+ if pos > 0 {
+ pos -= len(getSuffixGlyphs(line[:pos], 1))
+ } else {
+ fmt.Print(beep)
+ }
+ case wordLeft, altB:
+ if pos > 0 {
+ var spaceHere, spaceLeft, leftKnown bool
+ for {
+ pos--
+ if pos == 0 {
+ break
+ }
+ if leftKnown {
+ spaceHere = spaceLeft
+ } else {
+ spaceHere = unicode.IsSpace(line[pos])
+ }
+ spaceLeft, leftKnown = unicode.IsSpace(line[pos-1]), true
+ if !spaceHere && spaceLeft {
+ break
+ }
+ }
+ } else {
+ fmt.Print(beep)
+ }
+ case right:
+ if pos < len(line) {
+ pos += len(getPrefixGlyphs(line[pos:], 1))
+ } else {
+ fmt.Print(beep)
+ }
+ case wordRight, altF:
+ if pos < len(line) {
+ var spaceHere, spaceLeft, hereKnown bool
+ for {
+ pos++
+ if pos == len(line) {
+ break
+ }
+ if hereKnown {
+ spaceLeft = spaceHere
+ } else {
+ spaceLeft = unicode.IsSpace(line[pos-1])
+ }
+ spaceHere, hereKnown = unicode.IsSpace(line[pos]), true
+ if spaceHere && !spaceLeft {
+ break
+ }
+ }
+ } else {
+ fmt.Print(beep)
+ }
+ case up:
+ historyAction = true
+ if historyPos > 0 {
+ if historyPos == len(prefixHistory) {
+ historyEnd = string(line)
+ }
+ historyPos--
+ line = []rune(prefixHistory[historyPos])
+ pos = len(line)
+ } else {
+ fmt.Print(beep)
+ }
+ case down:
+ historyAction = true
+ if historyPos < len(prefixHistory) {
+ historyPos++
+ if historyPos == len(prefixHistory) {
+ line = []rune(historyEnd)
+ } else {
+ line = []rune(prefixHistory[historyPos])
+ }
+ pos = len(line)
+ } else {
+ fmt.Print(beep)
+ }
+ case home: // Start of line
+ pos = 0
+ case end: // End of line
+ pos = len(line)
+ case winch: // Window change
+ if s.multiLineMode {
+ if s.maxRows-s.cursorRows > 0 {
+ s.moveDown(s.maxRows - s.cursorRows)
+ }
+ for i := 0; i < s.maxRows-1; i++ {
+ s.cursorPos(0)
+ s.eraseLine()
+ s.moveUp(1)
+ }
+ s.maxRows = 1
+ s.cursorRows = 1
+ }
+ }
+ s.refresh(p, line, pos)
+ }
+ if !historyAction {
+ prefixHistory = s.getHistoryByPrefix(string(line))
+ historyPos = len(prefixHistory)
+ }
+ if killAction > 0 {
+ killAction--
+ }
+ }
+ return string(line), nil
+}
+
+// PasswordPrompt displays p, and then waits for user input. The input typed by
+// the user is not displayed in the terminal.
+func (s *State) PasswordPrompt(prompt string) (string, error) {
+ if !s.terminalSupported {
+ return "", errors.New("liner: function not supported in this terminal")
+ }
+ if s.inputRedirected {
+ return s.promptUnsupported(prompt)
+ }
+ if s.outputRedirected {
+ return "", ErrNotTerminalOutput
+ }
+
+ defer s.stopPrompt()
+
+restart:
+ s.startPrompt()
+ s.getColumns()
+
+ fmt.Print(prompt)
+ p := []rune(prompt)
+ var line []rune
+ pos := 0
+
+mainLoop:
+ for {
+ next, err := s.readNext()
+ if err != nil {
+ if s.shouldRestart != nil && s.shouldRestart(err) {
+ goto restart
+ }
+ return "", err
+ }
+
+ switch v := next.(type) {
+ case rune:
+ switch v {
+ case cr, lf:
+ if s.multiLineMode {
+ s.resetMultiLine(p, line, pos)
+ }
+ fmt.Println()
+ break mainLoop
+ case ctrlD: // del
+ if pos == 0 && len(line) == 0 {
+ // exit
+ return "", io.EOF
+ }
+
+ // ctrlD is a potential EOF, so the rune reader shuts down.
+ // Therefore, if it isn't actually an EOF, we must re-startPrompt.
+ s.restartPrompt()
+ case ctrlL: // clear screen
+ s.eraseScreen()
+ s.refresh(p, []rune{}, 0)
+ case ctrlH, bs: // Backspace
+ if pos <= 0 {
+ fmt.Print(beep)
+ } else {
+ n := len(getSuffixGlyphs(line[:pos], 1))
+ line = append(line[:pos-n], line[pos:]...)
+ pos -= n
+ }
+ case ctrlC:
+ fmt.Println("^C")
+ if s.multiLineMode {
+ s.resetMultiLine(p, line, pos)
+ }
+ if s.ctrlCAborts {
+ return "", ErrPromptAborted
+ }
+ line = line[:0]
+ pos = 0
+ fmt.Print(prompt)
+ s.restartPrompt()
+ // Unused keys
+ case esc, tab, ctrlA, ctrlB, ctrlE, ctrlF, ctrlG, ctrlK, ctrlN, ctrlO, ctrlP, ctrlQ, ctrlR, ctrlS,
+ ctrlT, ctrlU, ctrlV, ctrlW, ctrlX, ctrlY, ctrlZ:
+ fallthrough
+ // Catch unhandled control codes (anything <= 31)
+ case 0, 28, 29, 30, 31:
+ fmt.Print(beep)
+ default:
+ line = append(line[:pos], append([]rune{v}, line[pos:]...)...)
+ pos++
+ }
+ }
+ }
+ return string(line), nil
+}
diff --git a/vendor/github.com/peterh/liner/output.go b/vendor/github.com/peterh/liner/output.go
new file mode 100644
index 000000000..6d83d4ebf
--- /dev/null
+++ b/vendor/github.com/peterh/liner/output.go
@@ -0,0 +1,79 @@
+// +build linux darwin openbsd freebsd netbsd
+
+package liner
+
+import (
+ "fmt"
+ "os"
+ "strings"
+ "syscall"
+ "unsafe"
+)
+
+func (s *State) cursorPos(x int) {
+ if s.useCHA {
+ // 'G' is "Cursor Character Absolute (CHA)"
+ fmt.Printf("\x1b[%dG", x+1)
+ } else {
+ // 'C' is "Cursor Forward (CUF)"
+ fmt.Print("\r")
+ if x > 0 {
+ fmt.Printf("\x1b[%dC", x)
+ }
+ }
+}
+
+func (s *State) eraseLine() {
+ fmt.Print("\x1b[0K")
+}
+
+func (s *State) eraseScreen() {
+ fmt.Print("\x1b[H\x1b[2J")
+}
+
+func (s *State) moveUp(lines int) {
+ fmt.Printf("\x1b[%dA", lines)
+}
+
+func (s *State) moveDown(lines int) {
+ fmt.Printf("\x1b[%dB", lines)
+}
+
+func (s *State) emitNewLine() {
+ fmt.Print("\n")
+}
+
+type winSize struct {
+ row, col uint16
+ xpixel, ypixel uint16
+}
+
+func (s *State) getColumns() bool {
+ var ws winSize
+ ok, _, _ := syscall.Syscall(syscall.SYS_IOCTL, uintptr(syscall.Stdout),
+ syscall.TIOCGWINSZ, uintptr(unsafe.Pointer(&ws)))
+ if int(ok) < 0 {
+ return false
+ }
+ s.columns = int(ws.col)
+ if cursorColumn && s.columns > 1 {
+ s.columns--
+ }
+ return true
+}
+
+func (s *State) checkOutput() {
+ // xterm is known to support CHA
+ if strings.Contains(strings.ToLower(os.Getenv("TERM")), "xterm") {
+ s.useCHA = true
+ return
+ }
+
+ // The test for functional ANSI CHA is unreliable (eg the Windows
+ // telnet command does not support reading the cursor position with
+ // an ANSI DSR request, despite setting TERM=ansi)
+
+ // Assume CHA isn't supported (which should be safe, although it
+ // does result in occasional visible cursor jitter)
+ s.useCHA = false
+}
diff --git a/vendor/github.com/peterh/liner/output_windows.go b/vendor/github.com/peterh/liner/output_windows.go
new file mode 100644
index 000000000..63c9c5d75
--- /dev/null
+++ b/vendor/github.com/peterh/liner/output_windows.go
@@ -0,0 +1,76 @@
+package liner
+
+import (
+ "unsafe"
+)
+
+type coord struct {
+ x, y int16
+}
+type smallRect struct {
+ left, top, right, bottom int16
+}
+
+type consoleScreenBufferInfo struct {
+ dwSize coord
+ dwCursorPosition coord
+ wAttributes int16
+ srWindow smallRect
+ dwMaximumWindowSize coord
+}
+
+func (s *State) cursorPos(x int) {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ procSetConsoleCursorPosition.Call(uintptr(s.hOut),
+ uintptr(int(x)&0xFFFF|int(sbi.dwCursorPosition.y)<<16))
+}
+
+func (s *State) eraseLine() {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ var numWritten uint32
+ procFillConsoleOutputCharacter.Call(uintptr(s.hOut), uintptr(' '),
+ uintptr(sbi.dwSize.x-sbi.dwCursorPosition.x),
+ uintptr(int(sbi.dwCursorPosition.x)&0xFFFF|int(sbi.dwCursorPosition.y)<<16),
+ uintptr(unsafe.Pointer(&numWritten)))
+}
+
+func (s *State) eraseScreen() {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ var numWritten uint32
+ procFillConsoleOutputCharacter.Call(uintptr(s.hOut), uintptr(' '),
+ uintptr(sbi.dwSize.x)*uintptr(sbi.dwSize.y),
+ 0,
+ uintptr(unsafe.Pointer(&numWritten)))
+ procSetConsoleCursorPosition.Call(uintptr(s.hOut), 0)
+}
+
+func (s *State) moveUp(lines int) {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ procSetConsoleCursorPosition.Call(uintptr(s.hOut),
+ uintptr(int(sbi.dwCursorPosition.x)&0xFFFF|(int(sbi.dwCursorPosition.y)-lines)<<16))
+}
+
+func (s *State) moveDown(lines int) {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ procSetConsoleCursorPosition.Call(uintptr(s.hOut),
+ uintptr(int(sbi.dwCursorPosition.x)&0xFFFF|(int(sbi.dwCursorPosition.y)+lines)<<16))
+}
+
+func (s *State) emitNewLine() {
+ // windows doesn't need to omit a new line
+}
+
+func (s *State) getColumns() {
+ var sbi consoleScreenBufferInfo
+ procGetConsoleScreenBufferInfo.Call(uintptr(s.hOut), uintptr(unsafe.Pointer(&sbi)))
+ s.columns = int(sbi.dwSize.x)
+ if s.columns > 1 {
+ // Windows 10 needs a spare column for the cursor
+ s.columns--
+ }
+}
diff --git a/vendor/github.com/peterh/liner/signal.go b/vendor/github.com/peterh/liner/signal.go
new file mode 100644
index 000000000..0cba79e7f
--- /dev/null
+++ b/vendor/github.com/peterh/liner/signal.go
@@ -0,0 +1,12 @@
+// +build go1.1,!windows
+
+package liner
+
+import (
+ "os"
+ "os/signal"
+)
+
+func stopSignal(c chan<- os.Signal) {
+ signal.Stop(c)
+}
diff --git a/vendor/github.com/peterh/liner/signal_legacy.go b/vendor/github.com/peterh/liner/signal_legacy.go
new file mode 100644
index 000000000..fa3672daa
--- /dev/null
+++ b/vendor/github.com/peterh/liner/signal_legacy.go
@@ -0,0 +1,11 @@
+// +build !go1.1,!windows
+
+package liner
+
+import (
+ "os"
+)
+
+func stopSignal(c chan<- os.Signal) {
+ // signal.Stop does not exist before Go 1.1
+}
diff --git a/vendor/github.com/peterh/liner/unixmode.go b/vendor/github.com/peterh/liner/unixmode.go
new file mode 100644
index 000000000..9838923f5
--- /dev/null
+++ b/vendor/github.com/peterh/liner/unixmode.go
@@ -0,0 +1,37 @@
+// +build linux darwin freebsd openbsd netbsd
+
+package liner
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func (mode *termios) ApplyMode() error {
+ _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, uintptr(syscall.Stdin), setTermios, uintptr(unsafe.Pointer(mode)))
+
+ if errno != 0 {
+ return errno
+ }
+ return nil
+}
+
+// TerminalMode returns the current terminal input mode as an InputModeSetter.
+//
+// This function is provided for convenience, and should
+// not be necessary for most users of liner.
+func TerminalMode() (ModeApplier, error) {
+ mode, errno := getMode(syscall.Stdin)
+
+ if errno != 0 {
+ return nil, errno
+ }
+ return mode, nil
+}
+
+func getMode(handle int) (*termios, syscall.Errno) {
+ var mode termios
+ _, _, errno := syscall.Syscall(syscall.SYS_IOCTL, uintptr(handle), getTermios, uintptr(unsafe.Pointer(&mode)))
+
+ return &mode, errno
+}
diff --git a/vendor/github.com/peterh/liner/width.go b/vendor/github.com/peterh/liner/width.go
new file mode 100644
index 000000000..d8984aae9
--- /dev/null
+++ b/vendor/github.com/peterh/liner/width.go
@@ -0,0 +1,79 @@
+package liner
+
+import "unicode"
+
+// These character classes are mostly zero width (when combined).
+// A few might not be, depending on the user's font. Fixing this
+// is non-trivial, given that some terminals don't support
+// ANSI DSR/CPR
+var zeroWidth = []*unicode.RangeTable{
+ unicode.Mn,
+ unicode.Me,
+ unicode.Cc,
+ unicode.Cf,
+}
+
+var doubleWidth = []*unicode.RangeTable{
+ unicode.Han,
+ unicode.Hangul,
+ unicode.Hiragana,
+ unicode.Katakana,
+}
+
+// countGlyphs considers zero-width characters to be zero glyphs wide,
+// and members of Chinese, Japanese, and Korean scripts to be 2 glyphs wide.
+func countGlyphs(s []rune) int {
+ n := 0
+ for _, r := range s {
+ switch {
+ case unicode.IsOneOf(zeroWidth, r):
+ case unicode.IsOneOf(doubleWidth, r):
+ n += 2
+ default:
+ n++
+ }
+ }
+ return n
+}
+
+func countMultiLineGlyphs(s []rune, columns int, start int) int {
+ n := start
+ for _, r := range s {
+ switch {
+ case unicode.IsOneOf(zeroWidth, r):
+ case unicode.IsOneOf(doubleWidth, r):
+ n += 2
+ // no room for a 2-glyphs-wide char in the ending
+ // so skip a column and display it at the beginning
+ if n%columns == 1 {
+ n++
+ }
+ default:
+ n++
+ }
+ }
+ return n
+}
+
+func getPrefixGlyphs(s []rune, num int) []rune {
+ p := 0
+ for n := 0; n < num && p < len(s); p++ {
+ if !unicode.IsOneOf(zeroWidth, s[p]) {
+ n++
+ }
+ }
+ for p < len(s) && unicode.IsOneOf(zeroWidth, s[p]) {
+ p++
+ }
+ return s[:p]
+}
+
+func getSuffixGlyphs(s []rune, num int) []rune {
+ p := len(s)
+ for n := 0; n < num && p > 0; p-- {
+ if !unicode.IsOneOf(zeroWidth, s[p-1]) {
+ n++
+ }
+ }
+ return s[p:]
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/.gitignore b/vendor/github.com/rcrowley/go-metrics/.gitignore
new file mode 100644
index 000000000..83c8f8237
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/.gitignore
@@ -0,0 +1,9 @@
+*.[68]
+*.a
+*.out
+*.swp
+_obj
+_testmain.go
+cmd/metrics-bench/metrics-bench
+cmd/metrics-example/metrics-example
+cmd/never-read/never-read
diff --git a/vendor/github.com/rcrowley/go-metrics/.travis.yml b/vendor/github.com/rcrowley/go-metrics/.travis.yml
new file mode 100644
index 000000000..20aa5d042
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/.travis.yml
@@ -0,0 +1,14 @@
+language: go
+
+go:
+ - 1.2
+ - 1.3
+ - 1.4
+ - 1.5
+
+script:
+ - ./validate.sh
+
+# this should give us faster builds according to
+# http://docs.travis-ci.com/user/migrating-from-legacy/
+sudo: false
diff --git a/vendor/github.com/rcrowley/go-metrics/LICENSE b/vendor/github.com/rcrowley/go-metrics/LICENSE
new file mode 100644
index 000000000..363fa9ee7
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/LICENSE
@@ -0,0 +1,29 @@
+Copyright 2012 Richard Crowley. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY RICHARD CROWLEY ``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 RICHARD CROWLEY 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.
+
+The views and conclusions contained in the software and documentation
+are those of the authors and should not be interpreted as representing
+official policies, either expressed or implied, of Richard Crowley.
diff --git a/vendor/github.com/rcrowley/go-metrics/README.md b/vendor/github.com/rcrowley/go-metrics/README.md
new file mode 100644
index 000000000..2d1a6dcfa
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/README.md
@@ -0,0 +1,153 @@
+go-metrics
+==========
+
+![travis build status](https://travis-ci.org/rcrowley/go-metrics.svg?branch=master)
+
+Go port of Coda Hale's Metrics library: <https://github.com/dropwizard/metrics>.
+
+Documentation: <http://godoc.org/github.com/rcrowley/go-metrics>.
+
+Usage
+-----
+
+Create and update metrics:
+
+```go
+c := metrics.NewCounter()
+metrics.Register("foo", c)
+c.Inc(47)
+
+g := metrics.NewGauge()
+metrics.Register("bar", g)
+g.Update(47)
+
+r := NewRegistry()
+g := metrics.NewRegisteredFunctionalGauge("cache-evictions", r, func() int64 { return cache.getEvictionsCount() })
+
+s := metrics.NewExpDecaySample(1028, 0.015) // or metrics.NewUniformSample(1028)
+h := metrics.NewHistogram(s)
+metrics.Register("baz", h)
+h.Update(47)
+
+m := metrics.NewMeter()
+metrics.Register("quux", m)
+m.Mark(47)
+
+t := metrics.NewTimer()
+metrics.Register("bang", t)
+t.Time(func() {})
+t.Update(47)
+```
+
+Register() is not threadsafe. For threadsafe metric registration use
+GetOrRegister:
+
+```
+t := metrics.GetOrRegisterTimer("account.create.latency", nil)
+t.Time(func() {})
+t.Update(47)
+```
+
+Periodically log every metric in human-readable form to standard error:
+
+```go
+go metrics.Log(metrics.DefaultRegistry, 5 * time.Second, log.New(os.Stderr, "metrics: ", log.Lmicroseconds))
+```
+
+Periodically log every metric in slightly-more-parseable form to syslog:
+
+```go
+w, _ := syslog.Dial("unixgram", "/dev/log", syslog.LOG_INFO, "metrics")
+go metrics.Syslog(metrics.DefaultRegistry, 60e9, w)
+```
+
+Periodically emit every metric to Graphite using the [Graphite client](https://github.com/cyberdelia/go-metrics-graphite):
+
+```go
+
+import "github.com/cyberdelia/go-metrics-graphite"
+
+addr, _ := net.ResolveTCPAddr("tcp", "127.0.0.1:2003")
+go graphite.Graphite(metrics.DefaultRegistry, 10e9, "metrics", addr)
+```
+
+Periodically emit every metric into InfluxDB:
+
+**NOTE:** this has been pulled out of the library due to constant fluctuations
+in the InfluxDB API. In fact, all client libraries are on their way out. see
+issues [#121](https://github.com/rcrowley/go-metrics/issues/121) and
+[#124](https://github.com/rcrowley/go-metrics/issues/124) for progress and details.
+
+```go
+import "github.com/vrischmann/go-metrics-influxdb"
+
+go influxdb.Influxdb(metrics.DefaultRegistry, 10e9, &influxdb.Config{
+ Host: "127.0.0.1:8086",
+ Database: "metrics",
+ Username: "test",
+ Password: "test",
+})
+```
+
+Periodically upload every metric to Librato using the [Librato client](https://github.com/mihasya/go-metrics-librato):
+
+**Note**: the client included with this repository under the `librato` package
+has been deprecated and moved to the repository linked above.
+
+```go
+import "github.com/mihasya/go-metrics-librato"
+
+go librato.Librato(metrics.DefaultRegistry,
+ 10e9, // interval
+ "example@example.com", // account owner email address
+ "token", // Librato API token
+ "hostname", // source
+ []float64{0.95}, // percentiles to send
+ time.Millisecond, // time unit
+)
+```
+
+Periodically emit every metric to StatHat:
+
+```go
+import "github.com/rcrowley/go-metrics/stathat"
+
+go stathat.Stathat(metrics.DefaultRegistry, 10e9, "example@example.com")
+```
+
+Maintain all metrics along with expvars at `/debug/metrics`:
+
+This uses the same mechanism as [the official expvar](http://golang.org/pkg/expvar/)
+but exposed under `/debug/metrics`, which shows a json representation of all your usual expvars
+as well as all your go-metrics.
+
+
+```go
+import "github.com/rcrowley/go-metrics/exp"
+
+exp.Exp(metrics.DefaultRegistry)
+```
+
+Installation
+------------
+
+```sh
+go get github.com/rcrowley/go-metrics
+```
+
+StatHat support additionally requires their Go client:
+
+```sh
+go get github.com/stathat/go
+```
+
+Publishing Metrics
+------------------
+
+Clients are available for the following destinations:
+
+* Librato - [https://github.com/mihasya/go-metrics-librato](https://github.com/mihasya/go-metrics-librato)
+* Graphite - [https://github.com/cyberdelia/go-metrics-graphite](https://github.com/cyberdelia/go-metrics-graphite)
+* InfluxDB - [https://github.com/vrischmann/go-metrics-influxdb](https://github.com/vrischmann/go-metrics-influxdb)
+* Ganglia - [https://github.com/appscode/metlia](https://github.com/appscode/metlia)
+* Prometheus - [https://github.com/deathowl/go-metrics-prometheus](https://github.com/deathowl/go-metrics-prometheus)
diff --git a/vendor/github.com/rcrowley/go-metrics/counter.go b/vendor/github.com/rcrowley/go-metrics/counter.go
new file mode 100644
index 000000000..bb7b039cb
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/counter.go
@@ -0,0 +1,112 @@
+package metrics
+
+import "sync/atomic"
+
+// Counters hold an int64 value that can be incremented and decremented.
+type Counter interface {
+ Clear()
+ Count() int64
+ Dec(int64)
+ Inc(int64)
+ Snapshot() Counter
+}
+
+// GetOrRegisterCounter returns an existing Counter or constructs and registers
+// a new StandardCounter.
+func GetOrRegisterCounter(name string, r Registry) Counter {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, NewCounter).(Counter)
+}
+
+// NewCounter constructs a new StandardCounter.
+func NewCounter() Counter {
+ if UseNilMetrics {
+ return NilCounter{}
+ }
+ return &StandardCounter{0}
+}
+
+// NewRegisteredCounter constructs and registers a new StandardCounter.
+func NewRegisteredCounter(name string, r Registry) Counter {
+ c := NewCounter()
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// CounterSnapshot is a read-only copy of another Counter.
+type CounterSnapshot int64
+
+// Clear panics.
+func (CounterSnapshot) Clear() {
+ panic("Clear called on a CounterSnapshot")
+}
+
+// Count returns the count at the time the snapshot was taken.
+func (c CounterSnapshot) Count() int64 { return int64(c) }
+
+// Dec panics.
+func (CounterSnapshot) Dec(int64) {
+ panic("Dec called on a CounterSnapshot")
+}
+
+// Inc panics.
+func (CounterSnapshot) Inc(int64) {
+ panic("Inc called on a CounterSnapshot")
+}
+
+// Snapshot returns the snapshot.
+func (c CounterSnapshot) Snapshot() Counter { return c }
+
+// NilCounter is a no-op Counter.
+type NilCounter struct{}
+
+// Clear is a no-op.
+func (NilCounter) Clear() {}
+
+// Count is a no-op.
+func (NilCounter) Count() int64 { return 0 }
+
+// Dec is a no-op.
+func (NilCounter) Dec(i int64) {}
+
+// Inc is a no-op.
+func (NilCounter) Inc(i int64) {}
+
+// Snapshot is a no-op.
+func (NilCounter) Snapshot() Counter { return NilCounter{} }
+
+// StandardCounter is the standard implementation of a Counter and uses the
+// sync/atomic package to manage a single int64 value.
+type StandardCounter struct {
+ count int64
+}
+
+// Clear sets the counter to zero.
+func (c *StandardCounter) Clear() {
+ atomic.StoreInt64(&c.count, 0)
+}
+
+// Count returns the current count.
+func (c *StandardCounter) Count() int64 {
+ return atomic.LoadInt64(&c.count)
+}
+
+// Dec decrements the counter by the given amount.
+func (c *StandardCounter) Dec(i int64) {
+ atomic.AddInt64(&c.count, -i)
+}
+
+// Inc increments the counter by the given amount.
+func (c *StandardCounter) Inc(i int64) {
+ atomic.AddInt64(&c.count, i)
+}
+
+// Snapshot returns a read-only copy of the counter.
+func (c *StandardCounter) Snapshot() Counter {
+ return CounterSnapshot(c.Count())
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/debug.go b/vendor/github.com/rcrowley/go-metrics/debug.go
new file mode 100644
index 000000000..043ccefab
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/debug.go
@@ -0,0 +1,76 @@
+package metrics
+
+import (
+ "runtime/debug"
+ "time"
+)
+
+var (
+ debugMetrics struct {
+ GCStats struct {
+ LastGC Gauge
+ NumGC Gauge
+ Pause Histogram
+ //PauseQuantiles Histogram
+ PauseTotal Gauge
+ }
+ ReadGCStats Timer
+ }
+ gcStats debug.GCStats
+)
+
+// Capture new values for the Go garbage collector statistics exported in
+// debug.GCStats. This is designed to be called as a goroutine.
+func CaptureDebugGCStats(r Registry, d time.Duration) {
+ for _ = range time.Tick(d) {
+ CaptureDebugGCStatsOnce(r)
+ }
+}
+
+// Capture new values for the Go garbage collector statistics exported in
+// debug.GCStats. This is designed to be called in a background goroutine.
+// Giving a registry which has not been given to RegisterDebugGCStats will
+// panic.
+//
+// Be careful (but much less so) with this because debug.ReadGCStats calls
+// the C function runtime·lock(runtime·mheap) which, while not a stop-the-world
+// operation, isn't something you want to be doing all the time.
+func CaptureDebugGCStatsOnce(r Registry) {
+ lastGC := gcStats.LastGC
+ t := time.Now()
+ debug.ReadGCStats(&gcStats)
+ debugMetrics.ReadGCStats.UpdateSince(t)
+
+ debugMetrics.GCStats.LastGC.Update(int64(gcStats.LastGC.UnixNano()))
+ debugMetrics.GCStats.NumGC.Update(int64(gcStats.NumGC))
+ if lastGC != gcStats.LastGC && 0 < len(gcStats.Pause) {
+ debugMetrics.GCStats.Pause.Update(int64(gcStats.Pause[0]))
+ }
+ //debugMetrics.GCStats.PauseQuantiles.Update(gcStats.PauseQuantiles)
+ debugMetrics.GCStats.PauseTotal.Update(int64(gcStats.PauseTotal))
+}
+
+// Register metrics for the Go garbage collector statistics exported in
+// debug.GCStats. The metrics are named by their fully-qualified Go symbols,
+// i.e. debug.GCStats.PauseTotal.
+func RegisterDebugGCStats(r Registry) {
+ debugMetrics.GCStats.LastGC = NewGauge()
+ debugMetrics.GCStats.NumGC = NewGauge()
+ debugMetrics.GCStats.Pause = NewHistogram(NewExpDecaySample(1028, 0.015))
+ //debugMetrics.GCStats.PauseQuantiles = NewHistogram(NewExpDecaySample(1028, 0.015))
+ debugMetrics.GCStats.PauseTotal = NewGauge()
+ debugMetrics.ReadGCStats = NewTimer()
+
+ r.Register("debug.GCStats.LastGC", debugMetrics.GCStats.LastGC)
+ r.Register("debug.GCStats.NumGC", debugMetrics.GCStats.NumGC)
+ r.Register("debug.GCStats.Pause", debugMetrics.GCStats.Pause)
+ //r.Register("debug.GCStats.PauseQuantiles", debugMetrics.GCStats.PauseQuantiles)
+ r.Register("debug.GCStats.PauseTotal", debugMetrics.GCStats.PauseTotal)
+ r.Register("debug.ReadGCStats", debugMetrics.ReadGCStats)
+}
+
+// Allocate an initial slice for gcStats.Pause to avoid allocations during
+// normal operation.
+func init() {
+ gcStats.Pause = make([]time.Duration, 11)
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/ewma.go b/vendor/github.com/rcrowley/go-metrics/ewma.go
new file mode 100644
index 000000000..694a1d033
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/ewma.go
@@ -0,0 +1,118 @@
+package metrics
+
+import (
+ "math"
+ "sync"
+ "sync/atomic"
+)
+
+// EWMAs continuously calculate an exponentially-weighted moving average
+// based on an outside source of clock ticks.
+type EWMA interface {
+ Rate() float64
+ Snapshot() EWMA
+ Tick()
+ Update(int64)
+}
+
+// NewEWMA constructs a new EWMA with the given alpha.
+func NewEWMA(alpha float64) EWMA {
+ if UseNilMetrics {
+ return NilEWMA{}
+ }
+ return &StandardEWMA{alpha: alpha}
+}
+
+// NewEWMA1 constructs a new EWMA for a one-minute moving average.
+func NewEWMA1() EWMA {
+ return NewEWMA(1 - math.Exp(-5.0/60.0/1))
+}
+
+// NewEWMA5 constructs a new EWMA for a five-minute moving average.
+func NewEWMA5() EWMA {
+ return NewEWMA(1 - math.Exp(-5.0/60.0/5))
+}
+
+// NewEWMA15 constructs a new EWMA for a fifteen-minute moving average.
+func NewEWMA15() EWMA {
+ return NewEWMA(1 - math.Exp(-5.0/60.0/15))
+}
+
+// EWMASnapshot is a read-only copy of another EWMA.
+type EWMASnapshot float64
+
+// Rate returns the rate of events per second at the time the snapshot was
+// taken.
+func (a EWMASnapshot) Rate() float64 { return float64(a) }
+
+// Snapshot returns the snapshot.
+func (a EWMASnapshot) Snapshot() EWMA { return a }
+
+// Tick panics.
+func (EWMASnapshot) Tick() {
+ panic("Tick called on an EWMASnapshot")
+}
+
+// Update panics.
+func (EWMASnapshot) Update(int64) {
+ panic("Update called on an EWMASnapshot")
+}
+
+// NilEWMA is a no-op EWMA.
+type NilEWMA struct{}
+
+// Rate is a no-op.
+func (NilEWMA) Rate() float64 { return 0.0 }
+
+// Snapshot is a no-op.
+func (NilEWMA) Snapshot() EWMA { return NilEWMA{} }
+
+// Tick is a no-op.
+func (NilEWMA) Tick() {}
+
+// Update is a no-op.
+func (NilEWMA) Update(n int64) {}
+
+// StandardEWMA is the standard implementation of an EWMA and tracks the number
+// of uncounted events and processes them on each tick. It uses the
+// sync/atomic package to manage uncounted events.
+type StandardEWMA struct {
+ uncounted int64 // /!\ this should be the first member to ensure 64-bit alignment
+ alpha float64
+ rate float64
+ init bool
+ mutex sync.Mutex
+}
+
+// Rate returns the moving average rate of events per second.
+func (a *StandardEWMA) Rate() float64 {
+ a.mutex.Lock()
+ defer a.mutex.Unlock()
+ return a.rate * float64(1e9)
+}
+
+// Snapshot returns a read-only copy of the EWMA.
+func (a *StandardEWMA) Snapshot() EWMA {
+ return EWMASnapshot(a.Rate())
+}
+
+// Tick ticks the clock to update the moving average. It assumes it is called
+// every five seconds.
+func (a *StandardEWMA) Tick() {
+ count := atomic.LoadInt64(&a.uncounted)
+ atomic.AddInt64(&a.uncounted, -count)
+ instantRate := float64(count) / float64(5e9)
+ a.mutex.Lock()
+ defer a.mutex.Unlock()
+ if a.init {
+ a.rate += a.alpha * (instantRate - a.rate)
+ } else {
+ a.init = true
+ a.rate = instantRate
+ }
+}
+
+// Update adds n uncounted events.
+func (a *StandardEWMA) Update(n int64) {
+ atomic.AddInt64(&a.uncounted, n)
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/exp/exp.go b/vendor/github.com/rcrowley/go-metrics/exp/exp.go
new file mode 100644
index 000000000..11dd3f898
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/exp/exp.go
@@ -0,0 +1,156 @@
+// Hook go-metrics into expvar
+// on any /debug/metrics request, load all vars from the registry into expvar, and execute regular expvar handler
+package exp
+
+import (
+ "expvar"
+ "fmt"
+ "net/http"
+ "sync"
+
+ "github.com/rcrowley/go-metrics"
+)
+
+type exp struct {
+ expvarLock sync.Mutex // expvar panics if you try to register the same var twice, so we must probe it safely
+ registry metrics.Registry
+}
+
+func (exp *exp) expHandler(w http.ResponseWriter, r *http.Request) {
+ // load our variables into expvar
+ exp.syncToExpvar()
+
+ // now just run the official expvar handler code (which is not publicly callable, so pasted inline)
+ w.Header().Set("Content-Type", "application/json; charset=utf-8")
+ fmt.Fprintf(w, "{\n")
+ first := true
+ expvar.Do(func(kv expvar.KeyValue) {
+ if !first {
+ fmt.Fprintf(w, ",\n")
+ }
+ first = false
+ fmt.Fprintf(w, "%q: %s", kv.Key, kv.Value)
+ })
+ fmt.Fprintf(w, "\n}\n")
+}
+
+// Exp will register an expvar powered metrics handler with http.DefaultServeMux on "/debug/vars"
+func Exp(r metrics.Registry) {
+ h := ExpHandler(r)
+ // this would cause a panic:
+ // panic: http: multiple registrations for /debug/vars
+ // http.HandleFunc("/debug/vars", e.expHandler)
+ // haven't found an elegant way, so just use a different endpoint
+ http.Handle("/debug/metrics", h)
+}
+
+// ExpHandler will return an expvar powered metrics handler.
+func ExpHandler(r metrics.Registry) http.Handler {
+ e := exp{sync.Mutex{}, r}
+ return http.HandlerFunc(e.expHandler)
+}
+
+func (exp *exp) getInt(name string) *expvar.Int {
+ var v *expvar.Int
+ exp.expvarLock.Lock()
+ p := expvar.Get(name)
+ if p != nil {
+ v = p.(*expvar.Int)
+ } else {
+ v = new(expvar.Int)
+ expvar.Publish(name, v)
+ }
+ exp.expvarLock.Unlock()
+ return v
+}
+
+func (exp *exp) getFloat(name string) *expvar.Float {
+ var v *expvar.Float
+ exp.expvarLock.Lock()
+ p := expvar.Get(name)
+ if p != nil {
+ v = p.(*expvar.Float)
+ } else {
+ v = new(expvar.Float)
+ expvar.Publish(name, v)
+ }
+ exp.expvarLock.Unlock()
+ return v
+}
+
+func (exp *exp) publishCounter(name string, metric metrics.Counter) {
+ v := exp.getInt(name)
+ v.Set(metric.Count())
+}
+
+func (exp *exp) publishGauge(name string, metric metrics.Gauge) {
+ v := exp.getInt(name)
+ v.Set(metric.Value())
+}
+func (exp *exp) publishGaugeFloat64(name string, metric metrics.GaugeFloat64) {
+ exp.getFloat(name).Set(metric.Value())
+}
+
+func (exp *exp) publishHistogram(name string, metric metrics.Histogram) {
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ exp.getInt(name + ".count").Set(h.Count())
+ exp.getFloat(name + ".min").Set(float64(h.Min()))
+ exp.getFloat(name + ".max").Set(float64(h.Max()))
+ exp.getFloat(name + ".mean").Set(float64(h.Mean()))
+ exp.getFloat(name + ".std-dev").Set(float64(h.StdDev()))
+ exp.getFloat(name + ".50-percentile").Set(float64(ps[0]))
+ exp.getFloat(name + ".75-percentile").Set(float64(ps[1]))
+ exp.getFloat(name + ".95-percentile").Set(float64(ps[2]))
+ exp.getFloat(name + ".99-percentile").Set(float64(ps[3]))
+ exp.getFloat(name + ".999-percentile").Set(float64(ps[4]))
+}
+
+func (exp *exp) publishMeter(name string, metric metrics.Meter) {
+ m := metric.Snapshot()
+ exp.getInt(name + ".count").Set(m.Count())
+ exp.getFloat(name + ".one-minute").Set(float64(m.Rate1()))
+ exp.getFloat(name + ".five-minute").Set(float64(m.Rate5()))
+ exp.getFloat(name + ".fifteen-minute").Set(float64((m.Rate15())))
+ exp.getFloat(name + ".mean").Set(float64(m.RateMean()))
+}
+
+func (exp *exp) publishTimer(name string, metric metrics.Timer) {
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ exp.getInt(name + ".count").Set(t.Count())
+ exp.getFloat(name + ".min").Set(float64(t.Min()))
+ exp.getFloat(name + ".max").Set(float64(t.Max()))
+ exp.getFloat(name + ".mean").Set(float64(t.Mean()))
+ exp.getFloat(name + ".std-dev").Set(float64(t.StdDev()))
+ exp.getFloat(name + ".50-percentile").Set(float64(ps[0]))
+ exp.getFloat(name + ".75-percentile").Set(float64(ps[1]))
+ exp.getFloat(name + ".95-percentile").Set(float64(ps[2]))
+ exp.getFloat(name + ".99-percentile").Set(float64(ps[3]))
+ exp.getFloat(name + ".999-percentile").Set(float64(ps[4]))
+ exp.getFloat(name + ".one-minute").Set(float64(t.Rate1()))
+ exp.getFloat(name + ".five-minute").Set(float64(t.Rate5()))
+ exp.getFloat(name + ".fifteen-minute").Set(float64((t.Rate15())))
+ exp.getFloat(name + ".mean-rate").Set(float64(t.RateMean()))
+}
+
+func (exp *exp) syncToExpvar() {
+ exp.registry.Each(func(name string, i interface{}) {
+ switch i.(type) {
+ case metrics.Counter:
+ exp.publishCounter(name, i.(metrics.Counter))
+ case metrics.Gauge:
+ exp.publishGauge(name, i.(metrics.Gauge))
+ case metrics.GaugeFloat64:
+ exp.publishGaugeFloat64(name, i.(metrics.GaugeFloat64))
+ case metrics.Histogram:
+ exp.publishHistogram(name, i.(metrics.Histogram))
+ case metrics.Meter:
+ exp.publishMeter(name, i.(metrics.Meter))
+ case metrics.Timer:
+ exp.publishTimer(name, i.(metrics.Timer))
+ default:
+ panic(fmt.Sprintf("unsupported type for '%s': %T", name, i))
+ }
+ })
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/gauge.go b/vendor/github.com/rcrowley/go-metrics/gauge.go
new file mode 100644
index 000000000..d618c4553
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/gauge.go
@@ -0,0 +1,120 @@
+package metrics
+
+import "sync/atomic"
+
+// Gauges hold an int64 value that can be set arbitrarily.
+type Gauge interface {
+ Snapshot() Gauge
+ Update(int64)
+ Value() int64
+}
+
+// GetOrRegisterGauge returns an existing Gauge or constructs and registers a
+// new StandardGauge.
+func GetOrRegisterGauge(name string, r Registry) Gauge {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, NewGauge).(Gauge)
+}
+
+// NewGauge constructs a new StandardGauge.
+func NewGauge() Gauge {
+ if UseNilMetrics {
+ return NilGauge{}
+ }
+ return &StandardGauge{0}
+}
+
+// NewRegisteredGauge constructs and registers a new StandardGauge.
+func NewRegisteredGauge(name string, r Registry) Gauge {
+ c := NewGauge()
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// NewFunctionalGauge constructs a new FunctionalGauge.
+func NewFunctionalGauge(f func() int64) Gauge {
+ if UseNilMetrics {
+ return NilGauge{}
+ }
+ return &FunctionalGauge{value: f}
+}
+
+
+// NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.
+func NewRegisteredFunctionalGauge(name string, r Registry, f func() int64) Gauge {
+ c := NewFunctionalGauge(f)
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// GaugeSnapshot is a read-only copy of another Gauge.
+type GaugeSnapshot int64
+
+// Snapshot returns the snapshot.
+func (g GaugeSnapshot) Snapshot() Gauge { return g }
+
+// Update panics.
+func (GaugeSnapshot) Update(int64) {
+ panic("Update called on a GaugeSnapshot")
+}
+
+// Value returns the value at the time the snapshot was taken.
+func (g GaugeSnapshot) Value() int64 { return int64(g) }
+
+// NilGauge is a no-op Gauge.
+type NilGauge struct{}
+
+// Snapshot is a no-op.
+func (NilGauge) Snapshot() Gauge { return NilGauge{} }
+
+// Update is a no-op.
+func (NilGauge) Update(v int64) {}
+
+// Value is a no-op.
+func (NilGauge) Value() int64 { return 0 }
+
+// StandardGauge is the standard implementation of a Gauge and uses the
+// sync/atomic package to manage a single int64 value.
+type StandardGauge struct {
+ value int64
+}
+
+// Snapshot returns a read-only copy of the gauge.
+func (g *StandardGauge) Snapshot() Gauge {
+ return GaugeSnapshot(g.Value())
+}
+
+// Update updates the gauge's value.
+func (g *StandardGauge) Update(v int64) {
+ atomic.StoreInt64(&g.value, v)
+}
+
+// Value returns the gauge's current value.
+func (g *StandardGauge) Value() int64 {
+ return atomic.LoadInt64(&g.value)
+}
+// FunctionalGauge returns value from given function
+type FunctionalGauge struct {
+ value func() int64
+}
+
+// Value returns the gauge's current value.
+func (g FunctionalGauge) Value() int64 {
+ return g.value()
+}
+
+// Snapshot returns the snapshot.
+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/gauge_float64.go b/vendor/github.com/rcrowley/go-metrics/gauge_float64.go
new file mode 100644
index 000000000..6f93920b2
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/gauge_float64.go
@@ -0,0 +1,127 @@
+package metrics
+
+import "sync"
+
+// GaugeFloat64s hold a float64 value that can be set arbitrarily.
+type GaugeFloat64 interface {
+ Snapshot() GaugeFloat64
+ Update(float64)
+ Value() float64
+}
+
+// GetOrRegisterGaugeFloat64 returns an existing GaugeFloat64 or constructs and registers a
+// new StandardGaugeFloat64.
+func GetOrRegisterGaugeFloat64(name string, r Registry) GaugeFloat64 {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, NewGaugeFloat64()).(GaugeFloat64)
+}
+
+// NewGaugeFloat64 constructs a new StandardGaugeFloat64.
+func NewGaugeFloat64() GaugeFloat64 {
+ if UseNilMetrics {
+ return NilGaugeFloat64{}
+ }
+ return &StandardGaugeFloat64{
+ value: 0.0,
+ }
+}
+
+// NewRegisteredGaugeFloat64 constructs and registers a new StandardGaugeFloat64.
+func NewRegisteredGaugeFloat64(name string, r Registry) GaugeFloat64 {
+ c := NewGaugeFloat64()
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// NewFunctionalGauge constructs a new FunctionalGauge.
+func NewFunctionalGaugeFloat64(f func() float64) GaugeFloat64 {
+ if UseNilMetrics {
+ return NilGaugeFloat64{}
+ }
+ return &FunctionalGaugeFloat64{value: f}
+}
+
+// NewRegisteredFunctionalGauge constructs and registers a new StandardGauge.
+func NewRegisteredFunctionalGaugeFloat64(name string, r Registry, f func() float64) GaugeFloat64 {
+ c := NewFunctionalGaugeFloat64(f)
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// GaugeFloat64Snapshot is a read-only copy of another GaugeFloat64.
+type GaugeFloat64Snapshot float64
+
+// Snapshot returns the snapshot.
+func (g GaugeFloat64Snapshot) Snapshot() GaugeFloat64 { return g }
+
+// Update panics.
+func (GaugeFloat64Snapshot) Update(float64) {
+ panic("Update called on a GaugeFloat64Snapshot")
+}
+
+// Value returns the value at the time the snapshot was taken.
+func (g GaugeFloat64Snapshot) Value() float64 { return float64(g) }
+
+// NilGauge is a no-op Gauge.
+type NilGaugeFloat64 struct{}
+
+// Snapshot is a no-op.
+func (NilGaugeFloat64) Snapshot() GaugeFloat64 { return NilGaugeFloat64{} }
+
+// Update is a no-op.
+func (NilGaugeFloat64) Update(v float64) {}
+
+// Value is a no-op.
+func (NilGaugeFloat64) Value() float64 { return 0.0 }
+
+// StandardGaugeFloat64 is the standard implementation of a GaugeFloat64 and uses
+// sync.Mutex to manage a single float64 value.
+type StandardGaugeFloat64 struct {
+ mutex sync.Mutex
+ value float64
+}
+
+// Snapshot returns a read-only copy of the gauge.
+func (g *StandardGaugeFloat64) Snapshot() GaugeFloat64 {
+ return GaugeFloat64Snapshot(g.Value())
+}
+
+// Update updates the gauge's value.
+func (g *StandardGaugeFloat64) Update(v float64) {
+ g.mutex.Lock()
+ defer g.mutex.Unlock()
+ g.value = v
+}
+
+// Value returns the gauge's current value.
+func (g *StandardGaugeFloat64) Value() float64 {
+ g.mutex.Lock()
+ defer g.mutex.Unlock()
+ return g.value
+}
+
+// FunctionalGaugeFloat64 returns value from given function
+type FunctionalGaugeFloat64 struct {
+ value func() float64
+}
+
+// Value returns the gauge's current value.
+func (g FunctionalGaugeFloat64) Value() float64 {
+ return g.value()
+}
+
+// Snapshot returns the snapshot.
+func (g FunctionalGaugeFloat64) Snapshot() GaugeFloat64 { return GaugeFloat64Snapshot(g.Value()) }
+
+// Update panics.
+func (FunctionalGaugeFloat64) Update(float64) {
+ panic("Update called on a FunctionalGaugeFloat64")
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/graphite.go b/vendor/github.com/rcrowley/go-metrics/graphite.go
new file mode 100644
index 000000000..abd0a7d29
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/graphite.go
@@ -0,0 +1,113 @@
+package metrics
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// GraphiteConfig provides a container with configuration parameters for
+// the Graphite exporter
+type GraphiteConfig struct {
+ Addr *net.TCPAddr // Network address to connect to
+ Registry Registry // Registry to be exported
+ FlushInterval time.Duration // Flush interval
+ DurationUnit time.Duration // Time conversion unit for durations
+ Prefix string // Prefix to be prepended to metric names
+ Percentiles []float64 // Percentiles to export from timers and histograms
+}
+
+// Graphite is a blocking exporter function which reports metrics in r
+// to a graphite server located at addr, flushing them every d duration
+// and prepending metric names with prefix.
+func Graphite(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) {
+ GraphiteWithConfig(GraphiteConfig{
+ Addr: addr,
+ Registry: r,
+ FlushInterval: d,
+ DurationUnit: time.Nanosecond,
+ Prefix: prefix,
+ Percentiles: []float64{0.5, 0.75, 0.95, 0.99, 0.999},
+ })
+}
+
+// GraphiteWithConfig is a blocking exporter function just like Graphite,
+// but it takes a GraphiteConfig instead.
+func GraphiteWithConfig(c GraphiteConfig) {
+ log.Printf("WARNING: This go-metrics client has been DEPRECATED! It has been moved to https://github.com/cyberdelia/go-metrics-graphite and will be removed from rcrowley/go-metrics on August 12th 2015")
+ for _ = range time.Tick(c.FlushInterval) {
+ if err := graphite(&c); nil != err {
+ log.Println(err)
+ }
+ }
+}
+
+// GraphiteOnce performs a single submission to Graphite, returning a
+// non-nil error on failed connections. This can be used in a loop
+// similar to GraphiteWithConfig for custom error handling.
+func GraphiteOnce(c GraphiteConfig) error {
+ log.Printf("WARNING: This go-metrics client has been DEPRECATED! It has been moved to https://github.com/cyberdelia/go-metrics-graphite and will be removed from rcrowley/go-metrics on August 12th 2015")
+ return graphite(&c)
+}
+
+func graphite(c *GraphiteConfig) error {
+ now := time.Now().Unix()
+ du := float64(c.DurationUnit)
+ conn, err := net.DialTCP("tcp", nil, c.Addr)
+ if nil != err {
+ return err
+ }
+ defer conn.Close()
+ w := bufio.NewWriter(conn)
+ c.Registry.Each(func(name string, i interface{}) {
+ switch metric := i.(type) {
+ case Counter:
+ fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, metric.Count(), now)
+ case Gauge:
+ fmt.Fprintf(w, "%s.%s.value %d %d\n", c.Prefix, name, metric.Value(), now)
+ case GaugeFloat64:
+ fmt.Fprintf(w, "%s.%s.value %f %d\n", c.Prefix, name, metric.Value(), now)
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles(c.Percentiles)
+ fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, h.Count(), now)
+ fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, h.Min(), now)
+ fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, h.Max(), now)
+ fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, h.Mean(), now)
+ fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, h.StdDev(), now)
+ for psIdx, psKey := range c.Percentiles {
+ key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1)
+ fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now)
+ }
+ case Meter:
+ m := metric.Snapshot()
+ fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, m.Count(), now)
+ fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, m.Rate1(), now)
+ fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, m.Rate5(), now)
+ fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, m.Rate15(), now)
+ fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, m.RateMean(), now)
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles(c.Percentiles)
+ fmt.Fprintf(w, "%s.%s.count %d %d\n", c.Prefix, name, t.Count(), now)
+ fmt.Fprintf(w, "%s.%s.min %d %d\n", c.Prefix, name, t.Min()/int64(du), now)
+ fmt.Fprintf(w, "%s.%s.max %d %d\n", c.Prefix, name, t.Max()/int64(du), now)
+ fmt.Fprintf(w, "%s.%s.mean %.2f %d\n", c.Prefix, name, t.Mean()/du, now)
+ fmt.Fprintf(w, "%s.%s.std-dev %.2f %d\n", c.Prefix, name, t.StdDev()/du, now)
+ for psIdx, psKey := range c.Percentiles {
+ key := strings.Replace(strconv.FormatFloat(psKey*100.0, 'f', -1, 64), ".", "", 1)
+ fmt.Fprintf(w, "%s.%s.%s-percentile %.2f %d\n", c.Prefix, name, key, ps[psIdx], now)
+ }
+ fmt.Fprintf(w, "%s.%s.one-minute %.2f %d\n", c.Prefix, name, t.Rate1(), now)
+ fmt.Fprintf(w, "%s.%s.five-minute %.2f %d\n", c.Prefix, name, t.Rate5(), now)
+ fmt.Fprintf(w, "%s.%s.fifteen-minute %.2f %d\n", c.Prefix, name, t.Rate15(), now)
+ fmt.Fprintf(w, "%s.%s.mean-rate %.2f %d\n", c.Prefix, name, t.RateMean(), now)
+ }
+ w.Flush()
+ })
+ return nil
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/healthcheck.go b/vendor/github.com/rcrowley/go-metrics/healthcheck.go
new file mode 100644
index 000000000..445131cae
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/healthcheck.go
@@ -0,0 +1,61 @@
+package metrics
+
+// Healthchecks hold an error value describing an arbitrary up/down status.
+type Healthcheck interface {
+ Check()
+ Error() error
+ Healthy()
+ Unhealthy(error)
+}
+
+// NewHealthcheck constructs a new Healthcheck which will use the given
+// function to update its status.
+func NewHealthcheck(f func(Healthcheck)) Healthcheck {
+ if UseNilMetrics {
+ return NilHealthcheck{}
+ }
+ return &StandardHealthcheck{nil, f}
+}
+
+// NilHealthcheck is a no-op.
+type NilHealthcheck struct{}
+
+// Check is a no-op.
+func (NilHealthcheck) Check() {}
+
+// Error is a no-op.
+func (NilHealthcheck) Error() error { return nil }
+
+// Healthy is a no-op.
+func (NilHealthcheck) Healthy() {}
+
+// Unhealthy is a no-op.
+func (NilHealthcheck) Unhealthy(error) {}
+
+// StandardHealthcheck is the standard implementation of a Healthcheck and
+// stores the status and a function to call to update the status.
+type StandardHealthcheck struct {
+ err error
+ f func(Healthcheck)
+}
+
+// Check runs the healthcheck function to update the healthcheck's status.
+func (h *StandardHealthcheck) Check() {
+ h.f(h)
+}
+
+// Error returns the healthcheck's status, which will be nil if it is healthy.
+func (h *StandardHealthcheck) Error() error {
+ return h.err
+}
+
+// Healthy marks the healthcheck as healthy.
+func (h *StandardHealthcheck) Healthy() {
+ h.err = nil
+}
+
+// Unhealthy marks the healthcheck as unhealthy. The error is stored and
+// may be retrieved by the Error method.
+func (h *StandardHealthcheck) Unhealthy(err error) {
+ h.err = err
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/histogram.go b/vendor/github.com/rcrowley/go-metrics/histogram.go
new file mode 100644
index 000000000..dbc837fe4
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/histogram.go
@@ -0,0 +1,202 @@
+package metrics
+
+// Histograms calculate distribution statistics from a series of int64 values.
+type Histogram interface {
+ Clear()
+ Count() int64
+ Max() int64
+ Mean() float64
+ Min() int64
+ Percentile(float64) float64
+ Percentiles([]float64) []float64
+ Sample() Sample
+ Snapshot() Histogram
+ StdDev() float64
+ Sum() int64
+ Update(int64)
+ Variance() float64
+}
+
+// GetOrRegisterHistogram returns an existing Histogram or constructs and
+// registers a new StandardHistogram.
+func GetOrRegisterHistogram(name string, r Registry, s Sample) Histogram {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, func() Histogram { return NewHistogram(s) }).(Histogram)
+}
+
+// NewHistogram constructs a new StandardHistogram from a Sample.
+func NewHistogram(s Sample) Histogram {
+ if UseNilMetrics {
+ return NilHistogram{}
+ }
+ return &StandardHistogram{sample: s}
+}
+
+// NewRegisteredHistogram constructs and registers a new StandardHistogram from
+// a Sample.
+func NewRegisteredHistogram(name string, r Registry, s Sample) Histogram {
+ c := NewHistogram(s)
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// HistogramSnapshot is a read-only copy of another Histogram.
+type HistogramSnapshot struct {
+ sample *SampleSnapshot
+}
+
+// Clear panics.
+func (*HistogramSnapshot) Clear() {
+ panic("Clear called on a HistogramSnapshot")
+}
+
+// Count returns the number of samples recorded at the time the snapshot was
+// taken.
+func (h *HistogramSnapshot) Count() int64 { return h.sample.Count() }
+
+// Max returns the maximum value in the sample at the time the snapshot was
+// taken.
+func (h *HistogramSnapshot) Max() int64 { return h.sample.Max() }
+
+// Mean returns the mean of the values in the sample at the time the snapshot
+// was taken.
+func (h *HistogramSnapshot) Mean() float64 { return h.sample.Mean() }
+
+// Min returns the minimum value in the sample at the time the snapshot was
+// taken.
+func (h *HistogramSnapshot) Min() int64 { return h.sample.Min() }
+
+// Percentile returns an arbitrary percentile of values in the sample at the
+// time the snapshot was taken.
+func (h *HistogramSnapshot) Percentile(p float64) float64 {
+ return h.sample.Percentile(p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of values in the sample
+// at the time the snapshot was taken.
+func (h *HistogramSnapshot) Percentiles(ps []float64) []float64 {
+ return h.sample.Percentiles(ps)
+}
+
+// Sample returns the Sample underlying the histogram.
+func (h *HistogramSnapshot) Sample() Sample { return h.sample }
+
+// Snapshot returns the snapshot.
+func (h *HistogramSnapshot) Snapshot() Histogram { return h }
+
+// StdDev returns the standard deviation of the values in the sample at the
+// time the snapshot was taken.
+func (h *HistogramSnapshot) StdDev() float64 { return h.sample.StdDev() }
+
+// Sum returns the sum in the sample at the time the snapshot was taken.
+func (h *HistogramSnapshot) Sum() int64 { return h.sample.Sum() }
+
+// Update panics.
+func (*HistogramSnapshot) Update(int64) {
+ panic("Update called on a HistogramSnapshot")
+}
+
+// Variance returns the variance of inputs at the time the snapshot was taken.
+func (h *HistogramSnapshot) Variance() float64 { return h.sample.Variance() }
+
+// NilHistogram is a no-op Histogram.
+type NilHistogram struct{}
+
+// Clear is a no-op.
+func (NilHistogram) Clear() {}
+
+// Count is a no-op.
+func (NilHistogram) Count() int64 { return 0 }
+
+// Max is a no-op.
+func (NilHistogram) Max() int64 { return 0 }
+
+// Mean is a no-op.
+func (NilHistogram) Mean() float64 { return 0.0 }
+
+// Min is a no-op.
+func (NilHistogram) Min() int64 { return 0 }
+
+// Percentile is a no-op.
+func (NilHistogram) Percentile(p float64) float64 { return 0.0 }
+
+// Percentiles is a no-op.
+func (NilHistogram) Percentiles(ps []float64) []float64 {
+ return make([]float64, len(ps))
+}
+
+// Sample is a no-op.
+func (NilHistogram) Sample() Sample { return NilSample{} }
+
+// Snapshot is a no-op.
+func (NilHistogram) Snapshot() Histogram { return NilHistogram{} }
+
+// StdDev is a no-op.
+func (NilHistogram) StdDev() float64 { return 0.0 }
+
+// Sum is a no-op.
+func (NilHistogram) Sum() int64 { return 0 }
+
+// Update is a no-op.
+func (NilHistogram) Update(v int64) {}
+
+// Variance is a no-op.
+func (NilHistogram) Variance() float64 { return 0.0 }
+
+// StandardHistogram is the standard implementation of a Histogram and uses a
+// Sample to bound its memory use.
+type StandardHistogram struct {
+ sample Sample
+}
+
+// Clear clears the histogram and its sample.
+func (h *StandardHistogram) Clear() { h.sample.Clear() }
+
+// Count returns the number of samples recorded since the histogram was last
+// cleared.
+func (h *StandardHistogram) Count() int64 { return h.sample.Count() }
+
+// Max returns the maximum value in the sample.
+func (h *StandardHistogram) Max() int64 { return h.sample.Max() }
+
+// Mean returns the mean of the values in the sample.
+func (h *StandardHistogram) Mean() float64 { return h.sample.Mean() }
+
+// Min returns the minimum value in the sample.
+func (h *StandardHistogram) Min() int64 { return h.sample.Min() }
+
+// Percentile returns an arbitrary percentile of the values in the sample.
+func (h *StandardHistogram) Percentile(p float64) float64 {
+ return h.sample.Percentile(p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of the values in the
+// sample.
+func (h *StandardHistogram) Percentiles(ps []float64) []float64 {
+ return h.sample.Percentiles(ps)
+}
+
+// Sample returns the Sample underlying the histogram.
+func (h *StandardHistogram) Sample() Sample { return h.sample }
+
+// Snapshot returns a read-only copy of the histogram.
+func (h *StandardHistogram) Snapshot() Histogram {
+ return &HistogramSnapshot{sample: h.sample.Snapshot().(*SampleSnapshot)}
+}
+
+// StdDev returns the standard deviation of the values in the sample.
+func (h *StandardHistogram) StdDev() float64 { return h.sample.StdDev() }
+
+// Sum returns the sum in the sample.
+func (h *StandardHistogram) Sum() int64 { return h.sample.Sum() }
+
+// Update samples a new value.
+func (h *StandardHistogram) Update(v int64) { h.sample.Update(v) }
+
+// Variance returns the variance of the values in the sample.
+func (h *StandardHistogram) Variance() float64 { return h.sample.Variance() }
diff --git a/vendor/github.com/rcrowley/go-metrics/json.go b/vendor/github.com/rcrowley/go-metrics/json.go
new file mode 100644
index 000000000..2fdcbcfbf
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/json.go
@@ -0,0 +1,87 @@
+package metrics
+
+import (
+ "encoding/json"
+ "io"
+ "time"
+)
+
+// MarshalJSON returns a byte slice containing a JSON representation of all
+// the metrics in the Registry.
+func (r *StandardRegistry) MarshalJSON() ([]byte, error) {
+ data := make(map[string]map[string]interface{})
+ r.Each(func(name string, i interface{}) {
+ values := make(map[string]interface{})
+ switch metric := i.(type) {
+ case Counter:
+ values["count"] = metric.Count()
+ case Gauge:
+ values["value"] = metric.Value()
+ case GaugeFloat64:
+ values["value"] = metric.Value()
+ case Healthcheck:
+ values["error"] = nil
+ metric.Check()
+ if err := metric.Error(); nil != err {
+ values["error"] = metric.Error().Error()
+ }
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ values["count"] = h.Count()
+ values["min"] = h.Min()
+ values["max"] = h.Max()
+ values["mean"] = h.Mean()
+ values["stddev"] = h.StdDev()
+ values["median"] = ps[0]
+ values["75%"] = ps[1]
+ values["95%"] = ps[2]
+ values["99%"] = ps[3]
+ values["99.9%"] = ps[4]
+ case Meter:
+ m := metric.Snapshot()
+ values["count"] = m.Count()
+ values["1m.rate"] = m.Rate1()
+ values["5m.rate"] = m.Rate5()
+ values["15m.rate"] = m.Rate15()
+ values["mean.rate"] = m.RateMean()
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ values["count"] = t.Count()
+ values["min"] = t.Min()
+ values["max"] = t.Max()
+ values["mean"] = t.Mean()
+ values["stddev"] = t.StdDev()
+ values["median"] = ps[0]
+ values["75%"] = ps[1]
+ values["95%"] = ps[2]
+ values["99%"] = ps[3]
+ values["99.9%"] = ps[4]
+ values["1m.rate"] = t.Rate1()
+ values["5m.rate"] = t.Rate5()
+ values["15m.rate"] = t.Rate15()
+ values["mean.rate"] = t.RateMean()
+ }
+ data[name] = values
+ })
+ return json.Marshal(data)
+}
+
+// WriteJSON writes metrics from the given registry periodically to the
+// specified io.Writer as JSON.
+func WriteJSON(r Registry, d time.Duration, w io.Writer) {
+ for _ = range time.Tick(d) {
+ WriteJSONOnce(r, w)
+ }
+}
+
+// WriteJSONOnce writes metrics from the given registry to the specified
+// io.Writer as JSON.
+func WriteJSONOnce(r Registry, w io.Writer) {
+ json.NewEncoder(w).Encode(r)
+}
+
+func (p *PrefixedRegistry) MarshalJSON() ([]byte, error) {
+ return json.Marshal(p.underlying)
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/log.go b/vendor/github.com/rcrowley/go-metrics/log.go
new file mode 100644
index 000000000..f8074c045
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/log.go
@@ -0,0 +1,80 @@
+package metrics
+
+import (
+ "time"
+)
+
+type Logger interface {
+ Printf(format string, v ...interface{})
+}
+
+func Log(r Registry, freq time.Duration, l Logger) {
+ LogScaled(r, freq, time.Nanosecond, l)
+}
+
+// Output each metric in the given registry periodically using the given
+// logger. Print timings in `scale` units (eg time.Millisecond) rather than nanos.
+func LogScaled(r Registry, freq time.Duration, scale time.Duration, l Logger) {
+ du := float64(scale)
+ duSuffix := scale.String()[1:]
+
+ for _ = range time.Tick(freq) {
+ r.Each(func(name string, i interface{}) {
+ switch metric := i.(type) {
+ case Counter:
+ l.Printf("counter %s\n", name)
+ l.Printf(" count: %9d\n", metric.Count())
+ case Gauge:
+ l.Printf("gauge %s\n", name)
+ l.Printf(" value: %9d\n", metric.Value())
+ case GaugeFloat64:
+ l.Printf("gauge %s\n", name)
+ l.Printf(" value: %f\n", metric.Value())
+ case Healthcheck:
+ metric.Check()
+ l.Printf("healthcheck %s\n", name)
+ l.Printf(" error: %v\n", metric.Error())
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ l.Printf("histogram %s\n", name)
+ l.Printf(" count: %9d\n", h.Count())
+ l.Printf(" min: %9d\n", h.Min())
+ l.Printf(" max: %9d\n", h.Max())
+ l.Printf(" mean: %12.2f\n", h.Mean())
+ l.Printf(" stddev: %12.2f\n", h.StdDev())
+ l.Printf(" median: %12.2f\n", ps[0])
+ l.Printf(" 75%%: %12.2f\n", ps[1])
+ l.Printf(" 95%%: %12.2f\n", ps[2])
+ l.Printf(" 99%%: %12.2f\n", ps[3])
+ l.Printf(" 99.9%%: %12.2f\n", ps[4])
+ case Meter:
+ m := metric.Snapshot()
+ l.Printf("meter %s\n", name)
+ l.Printf(" count: %9d\n", m.Count())
+ l.Printf(" 1-min rate: %12.2f\n", m.Rate1())
+ l.Printf(" 5-min rate: %12.2f\n", m.Rate5())
+ l.Printf(" 15-min rate: %12.2f\n", m.Rate15())
+ l.Printf(" mean rate: %12.2f\n", m.RateMean())
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ l.Printf("timer %s\n", name)
+ l.Printf(" count: %9d\n", t.Count())
+ l.Printf(" min: %12.2f%s\n", float64(t.Min())/du, duSuffix)
+ l.Printf(" max: %12.2f%s\n", float64(t.Max())/du, duSuffix)
+ l.Printf(" mean: %12.2f%s\n", t.Mean()/du, duSuffix)
+ l.Printf(" stddev: %12.2f%s\n", t.StdDev()/du, duSuffix)
+ l.Printf(" median: %12.2f%s\n", ps[0]/du, duSuffix)
+ l.Printf(" 75%%: %12.2f%s\n", ps[1]/du, duSuffix)
+ l.Printf(" 95%%: %12.2f%s\n", ps[2]/du, duSuffix)
+ l.Printf(" 99%%: %12.2f%s\n", ps[3]/du, duSuffix)
+ l.Printf(" 99.9%%: %12.2f%s\n", ps[4]/du, duSuffix)
+ l.Printf(" 1-min rate: %12.2f\n", t.Rate1())
+ l.Printf(" 5-min rate: %12.2f\n", t.Rate5())
+ l.Printf(" 15-min rate: %12.2f\n", t.Rate15())
+ l.Printf(" mean rate: %12.2f\n", t.RateMean())
+ }
+ })
+ }
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/memory.md b/vendor/github.com/rcrowley/go-metrics/memory.md
new file mode 100644
index 000000000..47454f54b
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/memory.md
@@ -0,0 +1,285 @@
+Memory usage
+============
+
+(Highly unscientific.)
+
+Command used to gather static memory usage:
+
+```sh
+grep ^Vm "/proc/$(ps fax | grep [m]etrics-bench | awk '{print $1}')/status"
+```
+
+Program used to gather baseline memory usage:
+
+```go
+package main
+
+import "time"
+
+func main() {
+ time.Sleep(600e9)
+}
+```
+
+Baseline
+--------
+
+```
+VmPeak: 42604 kB
+VmSize: 42604 kB
+VmLck: 0 kB
+VmHWM: 1120 kB
+VmRSS: 1120 kB
+VmData: 35460 kB
+VmStk: 136 kB
+VmExe: 1020 kB
+VmLib: 1848 kB
+VmPTE: 36 kB
+VmSwap: 0 kB
+```
+
+Program used to gather metric memory usage (with other metrics being similar):
+
+```go
+package main
+
+import (
+ "fmt"
+ "metrics"
+ "time"
+)
+
+func main() {
+ fmt.Sprintf("foo")
+ metrics.NewRegistry()
+ time.Sleep(600e9)
+}
+```
+
+1000 counters registered
+------------------------
+
+```
+VmPeak: 44016 kB
+VmSize: 44016 kB
+VmLck: 0 kB
+VmHWM: 1928 kB
+VmRSS: 1928 kB
+VmData: 36868 kB
+VmStk: 136 kB
+VmExe: 1024 kB
+VmLib: 1848 kB
+VmPTE: 40 kB
+VmSwap: 0 kB
+```
+
+**1.412 kB virtual, TODO 0.808 kB resident per counter.**
+
+100000 counters registered
+--------------------------
+
+```
+VmPeak: 55024 kB
+VmSize: 55024 kB
+VmLck: 0 kB
+VmHWM: 12440 kB
+VmRSS: 12440 kB
+VmData: 47876 kB
+VmStk: 136 kB
+VmExe: 1024 kB
+VmLib: 1848 kB
+VmPTE: 64 kB
+VmSwap: 0 kB
+```
+
+**0.1242 kB virtual, 0.1132 kB resident per counter.**
+
+1000 gauges registered
+----------------------
+
+```
+VmPeak: 44012 kB
+VmSize: 44012 kB
+VmLck: 0 kB
+VmHWM: 1928 kB
+VmRSS: 1928 kB
+VmData: 36868 kB
+VmStk: 136 kB
+VmExe: 1020 kB
+VmLib: 1848 kB
+VmPTE: 40 kB
+VmSwap: 0 kB
+```
+
+**1.408 kB virtual, 0.808 kB resident per counter.**
+
+100000 gauges registered
+------------------------
+
+```
+VmPeak: 55020 kB
+VmSize: 55020 kB
+VmLck: 0 kB
+VmHWM: 12432 kB
+VmRSS: 12432 kB
+VmData: 47876 kB
+VmStk: 136 kB
+VmExe: 1020 kB
+VmLib: 1848 kB
+VmPTE: 60 kB
+VmSwap: 0 kB
+```
+
+**0.12416 kB virtual, 0.11312 resident per gauge.**
+
+1000 histograms with a uniform sample size of 1028
+--------------------------------------------------
+
+```
+VmPeak: 72272 kB
+VmSize: 72272 kB
+VmLck: 0 kB
+VmHWM: 16204 kB
+VmRSS: 16204 kB
+VmData: 65100 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 80 kB
+VmSwap: 0 kB
+```
+
+**29.668 kB virtual, TODO 15.084 resident per histogram.**
+
+10000 histograms with a uniform sample size of 1028
+---------------------------------------------------
+
+```
+VmPeak: 256912 kB
+VmSize: 256912 kB
+VmLck: 0 kB
+VmHWM: 146204 kB
+VmRSS: 146204 kB
+VmData: 249740 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 448 kB
+VmSwap: 0 kB
+```
+
+**21.4308 kB virtual, 14.5084 kB resident per histogram.**
+
+50000 histograms with a uniform sample size of 1028
+---------------------------------------------------
+
+```
+VmPeak: 908112 kB
+VmSize: 908112 kB
+VmLck: 0 kB
+VmHWM: 645832 kB
+VmRSS: 645588 kB
+VmData: 900940 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 1716 kB
+VmSwap: 1544 kB
+```
+
+**17.31016 kB virtual, 12.88936 kB resident per histogram.**
+
+1000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+-------------------------------------------------------------------------------------
+
+```
+VmPeak: 62480 kB
+VmSize: 62480 kB
+VmLck: 0 kB
+VmHWM: 11572 kB
+VmRSS: 11572 kB
+VmData: 55308 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 64 kB
+VmSwap: 0 kB
+```
+
+**19.876 kB virtual, 10.452 kB resident per histogram.**
+
+10000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+--------------------------------------------------------------------------------------
+
+```
+VmPeak: 153296 kB
+VmSize: 153296 kB
+VmLck: 0 kB
+VmHWM: 101176 kB
+VmRSS: 101176 kB
+VmData: 146124 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 240 kB
+VmSwap: 0 kB
+```
+
+**11.0692 kB virtual, 10.0056 kB resident per histogram.**
+
+50000 histograms with an exponentially-decaying sample size of 1028 and alpha of 0.015
+--------------------------------------------------------------------------------------
+
+```
+VmPeak: 557264 kB
+VmSize: 557264 kB
+VmLck: 0 kB
+VmHWM: 501056 kB
+VmRSS: 501056 kB
+VmData: 550092 kB
+VmStk: 136 kB
+VmExe: 1048 kB
+VmLib: 1848 kB
+VmPTE: 1032 kB
+VmSwap: 0 kB
+```
+
+**10.2932 kB virtual, 9.99872 kB resident per histogram.**
+
+1000 meters
+-----------
+
+```
+VmPeak: 74504 kB
+VmSize: 74504 kB
+VmLck: 0 kB
+VmHWM: 24124 kB
+VmRSS: 24124 kB
+VmData: 67340 kB
+VmStk: 136 kB
+VmExe: 1040 kB
+VmLib: 1848 kB
+VmPTE: 92 kB
+VmSwap: 0 kB
+```
+
+**31.9 kB virtual, 23.004 kB resident per meter.**
+
+10000 meters
+------------
+
+```
+VmPeak: 278920 kB
+VmSize: 278920 kB
+VmLck: 0 kB
+VmHWM: 227300 kB
+VmRSS: 227300 kB
+VmData: 271756 kB
+VmStk: 136 kB
+VmExe: 1040 kB
+VmLib: 1848 kB
+VmPTE: 488 kB
+VmSwap: 0 kB
+```
+
+**23.6316 kB virtual, 22.618 kB resident per meter.**
diff --git a/vendor/github.com/rcrowley/go-metrics/meter.go b/vendor/github.com/rcrowley/go-metrics/meter.go
new file mode 100644
index 000000000..0389ab0b8
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/meter.go
@@ -0,0 +1,233 @@
+package metrics
+
+import (
+ "sync"
+ "time"
+)
+
+// Meters count events to produce exponentially-weighted moving average rates
+// at one-, five-, and fifteen-minutes and a mean rate.
+type Meter interface {
+ Count() int64
+ Mark(int64)
+ Rate1() float64
+ Rate5() float64
+ Rate15() float64
+ RateMean() float64
+ Snapshot() Meter
+}
+
+// GetOrRegisterMeter returns an existing Meter or constructs and registers a
+// new StandardMeter.
+func GetOrRegisterMeter(name string, r Registry) Meter {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, NewMeter).(Meter)
+}
+
+// NewMeter constructs a new StandardMeter and launches a goroutine.
+func NewMeter() Meter {
+ if UseNilMetrics {
+ return NilMeter{}
+ }
+ m := newStandardMeter()
+ arbiter.Lock()
+ defer arbiter.Unlock()
+ arbiter.meters = append(arbiter.meters, m)
+ if !arbiter.started {
+ arbiter.started = true
+ go arbiter.tick()
+ }
+ return m
+}
+
+// NewMeter constructs and registers a new StandardMeter and launches a
+// goroutine.
+func NewRegisteredMeter(name string, r Registry) Meter {
+ c := NewMeter()
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// MeterSnapshot is a read-only copy of another Meter.
+type MeterSnapshot struct {
+ count int64
+ rate1, rate5, rate15, rateMean float64
+}
+
+// Count returns the count of events at the time the snapshot was taken.
+func (m *MeterSnapshot) Count() int64 { return m.count }
+
+// Mark panics.
+func (*MeterSnapshot) Mark(n int64) {
+ panic("Mark called on a MeterSnapshot")
+}
+
+// Rate1 returns the one-minute moving average rate of events per second at the
+// time the snapshot was taken.
+func (m *MeterSnapshot) Rate1() float64 { return m.rate1 }
+
+// Rate5 returns the five-minute moving average rate of events per second at
+// the time the snapshot was taken.
+func (m *MeterSnapshot) Rate5() float64 { return m.rate5 }
+
+// Rate15 returns the fifteen-minute moving average rate of events per second
+// at the time the snapshot was taken.
+func (m *MeterSnapshot) Rate15() float64 { return m.rate15 }
+
+// RateMean returns the meter's mean rate of events per second at the time the
+// snapshot was taken.
+func (m *MeterSnapshot) RateMean() float64 { return m.rateMean }
+
+// Snapshot returns the snapshot.
+func (m *MeterSnapshot) Snapshot() Meter { return m }
+
+// NilMeter is a no-op Meter.
+type NilMeter struct{}
+
+// Count is a no-op.
+func (NilMeter) Count() int64 { return 0 }
+
+// Mark is a no-op.
+func (NilMeter) Mark(n int64) {}
+
+// Rate1 is a no-op.
+func (NilMeter) Rate1() float64 { return 0.0 }
+
+// Rate5 is a no-op.
+func (NilMeter) Rate5() float64 { return 0.0 }
+
+// Rate15is a no-op.
+func (NilMeter) Rate15() float64 { return 0.0 }
+
+// RateMean is a no-op.
+func (NilMeter) RateMean() float64 { return 0.0 }
+
+// Snapshot is a no-op.
+func (NilMeter) Snapshot() Meter { return NilMeter{} }
+
+// StandardMeter is the standard implementation of a Meter.
+type StandardMeter struct {
+ lock sync.RWMutex
+ snapshot *MeterSnapshot
+ a1, a5, a15 EWMA
+ startTime time.Time
+}
+
+func newStandardMeter() *StandardMeter {
+ return &StandardMeter{
+ snapshot: &MeterSnapshot{},
+ a1: NewEWMA1(),
+ a5: NewEWMA5(),
+ a15: NewEWMA15(),
+ startTime: time.Now(),
+ }
+}
+
+// Count returns the number of events recorded.
+func (m *StandardMeter) Count() int64 {
+ m.lock.RLock()
+ count := m.snapshot.count
+ m.lock.RUnlock()
+ return count
+}
+
+// Mark records the occurance of n events.
+func (m *StandardMeter) Mark(n int64) {
+ m.lock.Lock()
+ defer m.lock.Unlock()
+ m.snapshot.count += n
+ m.a1.Update(n)
+ m.a5.Update(n)
+ m.a15.Update(n)
+ m.updateSnapshot()
+}
+
+// Rate1 returns the one-minute moving average rate of events per second.
+func (m *StandardMeter) Rate1() float64 {
+ m.lock.RLock()
+ rate1 := m.snapshot.rate1
+ m.lock.RUnlock()
+ return rate1
+}
+
+// Rate5 returns the five-minute moving average rate of events per second.
+func (m *StandardMeter) Rate5() float64 {
+ m.lock.RLock()
+ rate5 := m.snapshot.rate5
+ m.lock.RUnlock()
+ return rate5
+}
+
+// Rate15 returns the fifteen-minute moving average rate of events per second.
+func (m *StandardMeter) Rate15() float64 {
+ m.lock.RLock()
+ rate15 := m.snapshot.rate15
+ m.lock.RUnlock()
+ return rate15
+}
+
+// RateMean returns the meter's mean rate of events per second.
+func (m *StandardMeter) RateMean() float64 {
+ m.lock.RLock()
+ rateMean := m.snapshot.rateMean
+ m.lock.RUnlock()
+ return rateMean
+}
+
+// Snapshot returns a read-only copy of the meter.
+func (m *StandardMeter) Snapshot() Meter {
+ m.lock.RLock()
+ snapshot := *m.snapshot
+ m.lock.RUnlock()
+ return &snapshot
+}
+
+func (m *StandardMeter) updateSnapshot() {
+ // should run with write lock held on m.lock
+ snapshot := m.snapshot
+ snapshot.rate1 = m.a1.Rate()
+ snapshot.rate5 = m.a5.Rate()
+ snapshot.rate15 = m.a15.Rate()
+ snapshot.rateMean = float64(snapshot.count) / time.Since(m.startTime).Seconds()
+}
+
+func (m *StandardMeter) tick() {
+ m.lock.Lock()
+ defer m.lock.Unlock()
+ m.a1.Tick()
+ m.a5.Tick()
+ m.a15.Tick()
+ m.updateSnapshot()
+}
+
+type meterArbiter struct {
+ sync.RWMutex
+ started bool
+ meters []*StandardMeter
+ ticker *time.Ticker
+}
+
+var arbiter = meterArbiter{ticker: time.NewTicker(5e9)}
+
+// Ticks meters on the scheduled interval
+func (ma *meterArbiter) tick() {
+ for {
+ select {
+ case <-ma.ticker.C:
+ ma.tickMeters()
+ }
+ }
+}
+
+func (ma *meterArbiter) tickMeters() {
+ ma.RLock()
+ defer ma.RUnlock()
+ for _, meter := range ma.meters {
+ meter.tick()
+ }
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/metrics.go b/vendor/github.com/rcrowley/go-metrics/metrics.go
new file mode 100644
index 000000000..b97a49ed1
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/metrics.go
@@ -0,0 +1,13 @@
+// Go port of Coda Hale's Metrics library
+//
+// <https://github.com/rcrowley/go-metrics>
+//
+// Coda Hale's original work: <https://github.com/codahale/metrics>
+package metrics
+
+// UseNilMetrics is checked by the constructor functions for all of the
+// standard metrics. If it is true, the metric returned is a stub.
+//
+// This global kill-switch helps quantify the observer effect and makes
+// for less cluttered pprof profiles.
+var UseNilMetrics bool = false
diff --git a/vendor/github.com/rcrowley/go-metrics/opentsdb.go b/vendor/github.com/rcrowley/go-metrics/opentsdb.go
new file mode 100644
index 000000000..266b6c93d
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/opentsdb.go
@@ -0,0 +1,119 @@
+package metrics
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net"
+ "os"
+ "strings"
+ "time"
+)
+
+var shortHostName string = ""
+
+// OpenTSDBConfig provides a container with configuration parameters for
+// the OpenTSDB exporter
+type OpenTSDBConfig struct {
+ Addr *net.TCPAddr // Network address to connect to
+ Registry Registry // Registry to be exported
+ FlushInterval time.Duration // Flush interval
+ DurationUnit time.Duration // Time conversion unit for durations
+ Prefix string // Prefix to be prepended to metric names
+}
+
+// OpenTSDB is a blocking exporter function which reports metrics in r
+// to a TSDB server located at addr, flushing them every d duration
+// and prepending metric names with prefix.
+func OpenTSDB(r Registry, d time.Duration, prefix string, addr *net.TCPAddr) {
+ OpenTSDBWithConfig(OpenTSDBConfig{
+ Addr: addr,
+ Registry: r,
+ FlushInterval: d,
+ DurationUnit: time.Nanosecond,
+ Prefix: prefix,
+ })
+}
+
+// OpenTSDBWithConfig is a blocking exporter function just like OpenTSDB,
+// but it takes a OpenTSDBConfig instead.
+func OpenTSDBWithConfig(c OpenTSDBConfig) {
+ for _ = range time.Tick(c.FlushInterval) {
+ if err := openTSDB(&c); nil != err {
+ log.Println(err)
+ }
+ }
+}
+
+func getShortHostname() string {
+ if shortHostName == "" {
+ host, _ := os.Hostname()
+ if index := strings.Index(host, "."); index > 0 {
+ shortHostName = host[:index]
+ } else {
+ shortHostName = host
+ }
+ }
+ return shortHostName
+}
+
+func openTSDB(c *OpenTSDBConfig) error {
+ shortHostname := getShortHostname()
+ now := time.Now().Unix()
+ du := float64(c.DurationUnit)
+ conn, err := net.DialTCP("tcp", nil, c.Addr)
+ if nil != err {
+ return err
+ }
+ defer conn.Close()
+ w := bufio.NewWriter(conn)
+ c.Registry.Each(func(name string, i interface{}) {
+ switch metric := i.(type) {
+ case Counter:
+ fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, metric.Count(), shortHostname)
+ case Gauge:
+ fmt.Fprintf(w, "put %s.%s.value %d %d host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname)
+ case GaugeFloat64:
+ fmt.Fprintf(w, "put %s.%s.value %d %f host=%s\n", c.Prefix, name, now, metric.Value(), shortHostname)
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, h.Count(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, h.Min(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, h.Max(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, h.Mean(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, h.StdDev(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0], shortHostname)
+ fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1], shortHostname)
+ fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2], shortHostname)
+ fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3], shortHostname)
+ fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4], shortHostname)
+ case Meter:
+ m := metric.Snapshot()
+ fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, m.Count(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate1(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate5(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, m.Rate15(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, m.RateMean(), shortHostname)
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ fmt.Fprintf(w, "put %s.%s.count %d %d host=%s\n", c.Prefix, name, now, t.Count(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.min %d %d host=%s\n", c.Prefix, name, now, t.Min()/int64(du), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.max %d %d host=%s\n", c.Prefix, name, now, t.Max()/int64(du), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.mean %d %.2f host=%s\n", c.Prefix, name, now, t.Mean()/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.std-dev %d %.2f host=%s\n", c.Prefix, name, now, t.StdDev()/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.50-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[0]/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.75-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[1]/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.95-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[2]/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.99-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[3]/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.999-percentile %d %.2f host=%s\n", c.Prefix, name, now, ps[4]/du, shortHostname)
+ fmt.Fprintf(w, "put %s.%s.one-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate1(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.five-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate5(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.fifteen-minute %d %.2f host=%s\n", c.Prefix, name, now, t.Rate15(), shortHostname)
+ fmt.Fprintf(w, "put %s.%s.mean-rate %d %.2f host=%s\n", c.Prefix, name, now, t.RateMean(), shortHostname)
+ }
+ w.Flush()
+ })
+ return nil
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/registry.go b/vendor/github.com/rcrowley/go-metrics/registry.go
new file mode 100644
index 000000000..9086dcbdd
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/registry.go
@@ -0,0 +1,270 @@
+package metrics
+
+import (
+ "fmt"
+ "reflect"
+ "strings"
+ "sync"
+)
+
+// DuplicateMetric is the error returned by Registry.Register when a metric
+// already exists. If you mean to Register that metric you must first
+// Unregister the existing metric.
+type DuplicateMetric string
+
+func (err DuplicateMetric) Error() string {
+ return fmt.Sprintf("duplicate metric: %s", string(err))
+}
+
+// A Registry holds references to a set of metrics by name and can iterate
+// over them, calling callback functions provided by the user.
+//
+// This is an interface so as to encourage other structs to implement
+// the Registry API as appropriate.
+type Registry interface {
+
+ // Call the given function for each registered metric.
+ Each(func(string, interface{}))
+
+ // Get the metric by the given name or nil if none is registered.
+ Get(string) interface{}
+
+ // Gets an existing metric or registers the given one.
+ // The interface can be the metric to register if not found in registry,
+ // or a function returning the metric for lazy instantiation.
+ GetOrRegister(string, interface{}) interface{}
+
+ // Register the given metric under the given name.
+ Register(string, interface{}) error
+
+ // Run all registered healthchecks.
+ RunHealthchecks()
+
+ // Unregister the metric with the given name.
+ Unregister(string)
+
+ // Unregister all metrics. (Mostly for testing.)
+ UnregisterAll()
+}
+
+// The standard implementation of a Registry is a mutex-protected map
+// of names to metrics.
+type StandardRegistry struct {
+ metrics map[string]interface{}
+ mutex sync.Mutex
+}
+
+// Create a new registry.
+func NewRegistry() Registry {
+ return &StandardRegistry{metrics: make(map[string]interface{})}
+}
+
+// Call the given function for each registered metric.
+func (r *StandardRegistry) Each(f func(string, interface{})) {
+ for name, i := range r.registered() {
+ f(name, i)
+ }
+}
+
+// Get the metric by the given name or nil if none is registered.
+func (r *StandardRegistry) Get(name string) interface{} {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ return r.metrics[name]
+}
+
+// Gets an existing metric or creates and registers a new one. Threadsafe
+// alternative to calling Get and Register on failure.
+// The interface can be the metric to register if not found in registry,
+// or a function returning the metric for lazy instantiation.
+func (r *StandardRegistry) GetOrRegister(name string, i interface{}) interface{} {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ if metric, ok := r.metrics[name]; ok {
+ return metric
+ }
+ if v := reflect.ValueOf(i); v.Kind() == reflect.Func {
+ i = v.Call(nil)[0].Interface()
+ }
+ r.register(name, i)
+ return i
+}
+
+// Register the given metric under the given name. Returns a DuplicateMetric
+// if a metric by the given name is already registered.
+func (r *StandardRegistry) Register(name string, i interface{}) error {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ return r.register(name, i)
+}
+
+// Run all registered healthchecks.
+func (r *StandardRegistry) RunHealthchecks() {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ for _, i := range r.metrics {
+ if h, ok := i.(Healthcheck); ok {
+ h.Check()
+ }
+ }
+}
+
+// Unregister the metric with the given name.
+func (r *StandardRegistry) Unregister(name string) {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ delete(r.metrics, name)
+}
+
+// Unregister all metrics. (Mostly for testing.)
+func (r *StandardRegistry) UnregisterAll() {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ for name, _ := range r.metrics {
+ delete(r.metrics, name)
+ }
+}
+
+func (r *StandardRegistry) register(name string, i interface{}) error {
+ if _, ok := r.metrics[name]; ok {
+ return DuplicateMetric(name)
+ }
+ switch i.(type) {
+ case Counter, Gauge, GaugeFloat64, Healthcheck, Histogram, Meter, Timer:
+ r.metrics[name] = i
+ }
+ return nil
+}
+
+func (r *StandardRegistry) registered() map[string]interface{} {
+ r.mutex.Lock()
+ defer r.mutex.Unlock()
+ metrics := make(map[string]interface{}, len(r.metrics))
+ for name, i := range r.metrics {
+ metrics[name] = i
+ }
+ return metrics
+}
+
+type PrefixedRegistry struct {
+ underlying Registry
+ prefix string
+}
+
+func NewPrefixedRegistry(prefix string) Registry {
+ return &PrefixedRegistry{
+ underlying: NewRegistry(),
+ prefix: prefix,
+ }
+}
+
+func NewPrefixedChildRegistry(parent Registry, prefix string) Registry {
+ return &PrefixedRegistry{
+ underlying: parent,
+ prefix: prefix,
+ }
+}
+
+// Call the given function for each registered metric.
+func (r *PrefixedRegistry) Each(fn func(string, interface{})) {
+ wrappedFn := func (prefix string) func(string, interface{}) {
+ return func(name string, iface interface{}) {
+ if strings.HasPrefix(name,prefix) {
+ fn(name, iface)
+ } else {
+ return
+ }
+ }
+ }
+
+ baseRegistry, prefix := findPrefix(r, "")
+ baseRegistry.Each(wrappedFn(prefix))
+}
+
+func findPrefix(registry Registry, prefix string) (Registry, string) {
+ switch r := registry.(type) {
+ case *PrefixedRegistry:
+ return findPrefix(r.underlying, r.prefix + prefix)
+ case *StandardRegistry:
+ return r, prefix
+ }
+ return nil, ""
+}
+
+// Get the metric by the given name or nil if none is registered.
+func (r *PrefixedRegistry) Get(name string) interface{} {
+ realName := r.prefix + name
+ return r.underlying.Get(realName)
+}
+
+// Gets an existing metric or registers the given one.
+// The interface can be the metric to register if not found in registry,
+// or a function returning the metric for lazy instantiation.
+func (r *PrefixedRegistry) GetOrRegister(name string, metric interface{}) interface{} {
+ realName := r.prefix + name
+ return r.underlying.GetOrRegister(realName, metric)
+}
+
+// Register the given metric under the given name. The name will be prefixed.
+func (r *PrefixedRegistry) Register(name string, metric interface{}) error {
+ realName := r.prefix + name
+ return r.underlying.Register(realName, metric)
+}
+
+// Run all registered healthchecks.
+func (r *PrefixedRegistry) RunHealthchecks() {
+ r.underlying.RunHealthchecks()
+}
+
+// Unregister the metric with the given name. The name will be prefixed.
+func (r *PrefixedRegistry) Unregister(name string) {
+ realName := r.prefix + name
+ r.underlying.Unregister(realName)
+}
+
+// Unregister all metrics. (Mostly for testing.)
+func (r *PrefixedRegistry) UnregisterAll() {
+ r.underlying.UnregisterAll()
+}
+
+var DefaultRegistry Registry = NewRegistry()
+
+// Call the given function for each registered metric.
+func Each(f func(string, interface{})) {
+ DefaultRegistry.Each(f)
+}
+
+// Get the metric by the given name or nil if none is registered.
+func Get(name string) interface{} {
+ return DefaultRegistry.Get(name)
+}
+
+// Gets an existing metric or creates and registers a new one. Threadsafe
+// alternative to calling Get and Register on failure.
+func GetOrRegister(name string, i interface{}) interface{} {
+ return DefaultRegistry.GetOrRegister(name, i)
+}
+
+// Register the given metric under the given name. Returns a DuplicateMetric
+// if a metric by the given name is already registered.
+func Register(name string, i interface{}) error {
+ return DefaultRegistry.Register(name, i)
+}
+
+// Register the given metric under the given name. Panics if a metric by the
+// given name is already registered.
+func MustRegister(name string, i interface{}) {
+ if err := Register(name, i); err != nil {
+ panic(err)
+ }
+}
+
+// Run all registered healthchecks.
+func RunHealthchecks() {
+ DefaultRegistry.RunHealthchecks()
+}
+
+// Unregister the metric with the given name.
+func Unregister(name string) {
+ DefaultRegistry.Unregister(name)
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/runtime.go b/vendor/github.com/rcrowley/go-metrics/runtime.go
new file mode 100644
index 000000000..11c6b785a
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/runtime.go
@@ -0,0 +1,212 @@
+package metrics
+
+import (
+ "runtime"
+ "runtime/pprof"
+ "time"
+)
+
+var (
+ memStats runtime.MemStats
+ runtimeMetrics struct {
+ MemStats struct {
+ Alloc Gauge
+ BuckHashSys Gauge
+ DebugGC Gauge
+ EnableGC Gauge
+ Frees Gauge
+ HeapAlloc Gauge
+ HeapIdle Gauge
+ HeapInuse Gauge
+ HeapObjects Gauge
+ HeapReleased Gauge
+ HeapSys Gauge
+ LastGC Gauge
+ Lookups Gauge
+ Mallocs Gauge
+ MCacheInuse Gauge
+ MCacheSys Gauge
+ MSpanInuse Gauge
+ MSpanSys Gauge
+ NextGC Gauge
+ NumGC Gauge
+ GCCPUFraction GaugeFloat64
+ PauseNs Histogram
+ PauseTotalNs Gauge
+ StackInuse Gauge
+ StackSys Gauge
+ Sys Gauge
+ TotalAlloc Gauge
+ }
+ NumCgoCall Gauge
+ NumGoroutine Gauge
+ NumThread Gauge
+ ReadMemStats Timer
+ }
+ frees uint64
+ lookups uint64
+ mallocs uint64
+ numGC uint32
+ numCgoCalls int64
+
+ threadCreateProfile = pprof.Lookup("threadcreate")
+)
+
+// Capture new values for the Go runtime statistics exported in
+// runtime.MemStats. This is designed to be called as a goroutine.
+func CaptureRuntimeMemStats(r Registry, d time.Duration) {
+ for _ = range time.Tick(d) {
+ CaptureRuntimeMemStatsOnce(r)
+ }
+}
+
+// Capture new values for the Go runtime statistics exported in
+// runtime.MemStats. This is designed to be called in a background
+// goroutine. Giving a registry which has not been given to
+// RegisterRuntimeMemStats will panic.
+//
+// Be very careful with this because runtime.ReadMemStats calls the C
+// functions runtime·semacquire(&runtime·worldsema) and runtime·stoptheworld()
+// and that last one does what it says on the tin.
+func CaptureRuntimeMemStatsOnce(r Registry) {
+ t := time.Now()
+ runtime.ReadMemStats(&memStats) // This takes 50-200us.
+ runtimeMetrics.ReadMemStats.UpdateSince(t)
+
+ runtimeMetrics.MemStats.Alloc.Update(int64(memStats.Alloc))
+ runtimeMetrics.MemStats.BuckHashSys.Update(int64(memStats.BuckHashSys))
+ if memStats.DebugGC {
+ runtimeMetrics.MemStats.DebugGC.Update(1)
+ } else {
+ runtimeMetrics.MemStats.DebugGC.Update(0)
+ }
+ if memStats.EnableGC {
+ runtimeMetrics.MemStats.EnableGC.Update(1)
+ } else {
+ runtimeMetrics.MemStats.EnableGC.Update(0)
+ }
+
+ runtimeMetrics.MemStats.Frees.Update(int64(memStats.Frees - frees))
+ runtimeMetrics.MemStats.HeapAlloc.Update(int64(memStats.HeapAlloc))
+ runtimeMetrics.MemStats.HeapIdle.Update(int64(memStats.HeapIdle))
+ runtimeMetrics.MemStats.HeapInuse.Update(int64(memStats.HeapInuse))
+ runtimeMetrics.MemStats.HeapObjects.Update(int64(memStats.HeapObjects))
+ runtimeMetrics.MemStats.HeapReleased.Update(int64(memStats.HeapReleased))
+ runtimeMetrics.MemStats.HeapSys.Update(int64(memStats.HeapSys))
+ runtimeMetrics.MemStats.LastGC.Update(int64(memStats.LastGC))
+ runtimeMetrics.MemStats.Lookups.Update(int64(memStats.Lookups - lookups))
+ runtimeMetrics.MemStats.Mallocs.Update(int64(memStats.Mallocs - mallocs))
+ runtimeMetrics.MemStats.MCacheInuse.Update(int64(memStats.MCacheInuse))
+ runtimeMetrics.MemStats.MCacheSys.Update(int64(memStats.MCacheSys))
+ runtimeMetrics.MemStats.MSpanInuse.Update(int64(memStats.MSpanInuse))
+ runtimeMetrics.MemStats.MSpanSys.Update(int64(memStats.MSpanSys))
+ runtimeMetrics.MemStats.NextGC.Update(int64(memStats.NextGC))
+ runtimeMetrics.MemStats.NumGC.Update(int64(memStats.NumGC - numGC))
+ runtimeMetrics.MemStats.GCCPUFraction.Update(gcCPUFraction(&memStats))
+
+ // <https://code.google.com/p/go/source/browse/src/pkg/runtime/mgc0.c>
+ i := numGC % uint32(len(memStats.PauseNs))
+ ii := memStats.NumGC % uint32(len(memStats.PauseNs))
+ if memStats.NumGC-numGC >= uint32(len(memStats.PauseNs)) {
+ for i = 0; i < uint32(len(memStats.PauseNs)); i++ {
+ runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i]))
+ }
+ } else {
+ if i > ii {
+ for ; i < uint32(len(memStats.PauseNs)); i++ {
+ runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i]))
+ }
+ i = 0
+ }
+ for ; i < ii; i++ {
+ runtimeMetrics.MemStats.PauseNs.Update(int64(memStats.PauseNs[i]))
+ }
+ }
+ frees = memStats.Frees
+ lookups = memStats.Lookups
+ mallocs = memStats.Mallocs
+ numGC = memStats.NumGC
+
+ runtimeMetrics.MemStats.PauseTotalNs.Update(int64(memStats.PauseTotalNs))
+ runtimeMetrics.MemStats.StackInuse.Update(int64(memStats.StackInuse))
+ runtimeMetrics.MemStats.StackSys.Update(int64(memStats.StackSys))
+ runtimeMetrics.MemStats.Sys.Update(int64(memStats.Sys))
+ runtimeMetrics.MemStats.TotalAlloc.Update(int64(memStats.TotalAlloc))
+
+ currentNumCgoCalls := numCgoCall()
+ runtimeMetrics.NumCgoCall.Update(currentNumCgoCalls - numCgoCalls)
+ numCgoCalls = currentNumCgoCalls
+
+ runtimeMetrics.NumGoroutine.Update(int64(runtime.NumGoroutine()))
+
+ runtimeMetrics.NumThread.Update(int64(threadCreateProfile.Count()))
+}
+
+// Register runtimeMetrics for the Go runtime statistics exported in runtime and
+// specifically runtime.MemStats. The runtimeMetrics are named by their
+// fully-qualified Go symbols, i.e. runtime.MemStats.Alloc.
+func RegisterRuntimeMemStats(r Registry) {
+ runtimeMetrics.MemStats.Alloc = NewGauge()
+ runtimeMetrics.MemStats.BuckHashSys = NewGauge()
+ runtimeMetrics.MemStats.DebugGC = NewGauge()
+ runtimeMetrics.MemStats.EnableGC = NewGauge()
+ runtimeMetrics.MemStats.Frees = NewGauge()
+ runtimeMetrics.MemStats.HeapAlloc = NewGauge()
+ runtimeMetrics.MemStats.HeapIdle = NewGauge()
+ runtimeMetrics.MemStats.HeapInuse = NewGauge()
+ runtimeMetrics.MemStats.HeapObjects = NewGauge()
+ runtimeMetrics.MemStats.HeapReleased = NewGauge()
+ runtimeMetrics.MemStats.HeapSys = NewGauge()
+ runtimeMetrics.MemStats.LastGC = NewGauge()
+ runtimeMetrics.MemStats.Lookups = NewGauge()
+ runtimeMetrics.MemStats.Mallocs = NewGauge()
+ runtimeMetrics.MemStats.MCacheInuse = NewGauge()
+ runtimeMetrics.MemStats.MCacheSys = NewGauge()
+ runtimeMetrics.MemStats.MSpanInuse = NewGauge()
+ runtimeMetrics.MemStats.MSpanSys = NewGauge()
+ runtimeMetrics.MemStats.NextGC = NewGauge()
+ runtimeMetrics.MemStats.NumGC = NewGauge()
+ runtimeMetrics.MemStats.GCCPUFraction = NewGaugeFloat64()
+ runtimeMetrics.MemStats.PauseNs = NewHistogram(NewExpDecaySample(1028, 0.015))
+ runtimeMetrics.MemStats.PauseTotalNs = NewGauge()
+ runtimeMetrics.MemStats.StackInuse = NewGauge()
+ runtimeMetrics.MemStats.StackSys = NewGauge()
+ runtimeMetrics.MemStats.Sys = NewGauge()
+ runtimeMetrics.MemStats.TotalAlloc = NewGauge()
+ runtimeMetrics.NumCgoCall = NewGauge()
+ runtimeMetrics.NumGoroutine = NewGauge()
+ runtimeMetrics.NumThread = NewGauge()
+ runtimeMetrics.ReadMemStats = NewTimer()
+
+ r.Register("runtime.MemStats.Alloc", runtimeMetrics.MemStats.Alloc)
+ r.Register("runtime.MemStats.BuckHashSys", runtimeMetrics.MemStats.BuckHashSys)
+ r.Register("runtime.MemStats.DebugGC", runtimeMetrics.MemStats.DebugGC)
+ r.Register("runtime.MemStats.EnableGC", runtimeMetrics.MemStats.EnableGC)
+ r.Register("runtime.MemStats.Frees", runtimeMetrics.MemStats.Frees)
+ r.Register("runtime.MemStats.HeapAlloc", runtimeMetrics.MemStats.HeapAlloc)
+ r.Register("runtime.MemStats.HeapIdle", runtimeMetrics.MemStats.HeapIdle)
+ r.Register("runtime.MemStats.HeapInuse", runtimeMetrics.MemStats.HeapInuse)
+ r.Register("runtime.MemStats.HeapObjects", runtimeMetrics.MemStats.HeapObjects)
+ r.Register("runtime.MemStats.HeapReleased", runtimeMetrics.MemStats.HeapReleased)
+ r.Register("runtime.MemStats.HeapSys", runtimeMetrics.MemStats.HeapSys)
+ r.Register("runtime.MemStats.LastGC", runtimeMetrics.MemStats.LastGC)
+ r.Register("runtime.MemStats.Lookups", runtimeMetrics.MemStats.Lookups)
+ r.Register("runtime.MemStats.Mallocs", runtimeMetrics.MemStats.Mallocs)
+ r.Register("runtime.MemStats.MCacheInuse", runtimeMetrics.MemStats.MCacheInuse)
+ r.Register("runtime.MemStats.MCacheSys", runtimeMetrics.MemStats.MCacheSys)
+ r.Register("runtime.MemStats.MSpanInuse", runtimeMetrics.MemStats.MSpanInuse)
+ r.Register("runtime.MemStats.MSpanSys", runtimeMetrics.MemStats.MSpanSys)
+ r.Register("runtime.MemStats.NextGC", runtimeMetrics.MemStats.NextGC)
+ r.Register("runtime.MemStats.NumGC", runtimeMetrics.MemStats.NumGC)
+ r.Register("runtime.MemStats.GCCPUFraction", runtimeMetrics.MemStats.GCCPUFraction)
+ r.Register("runtime.MemStats.PauseNs", runtimeMetrics.MemStats.PauseNs)
+ r.Register("runtime.MemStats.PauseTotalNs", runtimeMetrics.MemStats.PauseTotalNs)
+ r.Register("runtime.MemStats.StackInuse", runtimeMetrics.MemStats.StackInuse)
+ r.Register("runtime.MemStats.StackSys", runtimeMetrics.MemStats.StackSys)
+ r.Register("runtime.MemStats.Sys", runtimeMetrics.MemStats.Sys)
+ r.Register("runtime.MemStats.TotalAlloc", runtimeMetrics.MemStats.TotalAlloc)
+ r.Register("runtime.NumCgoCall", runtimeMetrics.NumCgoCall)
+ r.Register("runtime.NumGoroutine", runtimeMetrics.NumGoroutine)
+ r.Register("runtime.NumThread", runtimeMetrics.NumThread)
+ r.Register("runtime.ReadMemStats", runtimeMetrics.ReadMemStats)
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go b/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go
new file mode 100644
index 000000000..e3391f4e8
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/runtime_cgo.go
@@ -0,0 +1,10 @@
+// +build cgo
+// +build !appengine
+
+package metrics
+
+import "runtime"
+
+func numCgoCall() int64 {
+ return runtime.NumCgoCall()
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go b/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go
new file mode 100644
index 000000000..ca12c05ba
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/runtime_gccpufraction.go
@@ -0,0 +1,9 @@
+// +build go1.5
+
+package metrics
+
+import "runtime"
+
+func gcCPUFraction(memStats *runtime.MemStats) float64 {
+ return memStats.GCCPUFraction
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go b/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go
new file mode 100644
index 000000000..616a3b475
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/runtime_no_cgo.go
@@ -0,0 +1,7 @@
+// +build !cgo appengine
+
+package metrics
+
+func numCgoCall() int64 {
+ return 0
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go b/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go
new file mode 100644
index 000000000..be96aa6f1
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/runtime_no_gccpufraction.go
@@ -0,0 +1,9 @@
+// +build !go1.5
+
+package metrics
+
+import "runtime"
+
+func gcCPUFraction(memStats *runtime.MemStats) float64 {
+ return 0
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/sample.go b/vendor/github.com/rcrowley/go-metrics/sample.go
new file mode 100644
index 000000000..5f6a37788
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/sample.go
@@ -0,0 +1,609 @@
+package metrics
+
+import (
+ "math"
+ "math/rand"
+ "sort"
+ "sync"
+ "time"
+)
+
+const rescaleThreshold = time.Hour
+
+// Samples maintain a statistically-significant selection of values from
+// a stream.
+type Sample interface {
+ Clear()
+ Count() int64
+ Max() int64
+ Mean() float64
+ Min() int64
+ Percentile(float64) float64
+ Percentiles([]float64) []float64
+ Size() int
+ Snapshot() Sample
+ StdDev() float64
+ Sum() int64
+ Update(int64)
+ Values() []int64
+ Variance() float64
+}
+
+// ExpDecaySample is an exponentially-decaying sample using a forward-decaying
+// priority reservoir. See Cormode et al's "Forward Decay: A Practical Time
+// Decay Model for Streaming Systems".
+//
+// <http://www.research.att.com/people/Cormode_Graham/library/publications/CormodeShkapenyukSrivastavaXu09.pdf>
+type ExpDecaySample struct {
+ alpha float64
+ count int64
+ mutex sync.Mutex
+ reservoirSize int
+ t0, t1 time.Time
+ values *expDecaySampleHeap
+}
+
+// NewExpDecaySample constructs a new exponentially-decaying sample with the
+// given reservoir size and alpha.
+func NewExpDecaySample(reservoirSize int, alpha float64) Sample {
+ if UseNilMetrics {
+ return NilSample{}
+ }
+ s := &ExpDecaySample{
+ alpha: alpha,
+ reservoirSize: reservoirSize,
+ t0: time.Now(),
+ values: newExpDecaySampleHeap(reservoirSize),
+ }
+ s.t1 = s.t0.Add(rescaleThreshold)
+ return s
+}
+
+// Clear clears all samples.
+func (s *ExpDecaySample) Clear() {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ s.count = 0
+ s.t0 = time.Now()
+ s.t1 = s.t0.Add(rescaleThreshold)
+ s.values.Clear()
+}
+
+// Count returns the number of samples recorded, which may exceed the
+// reservoir size.
+func (s *ExpDecaySample) Count() int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return s.count
+}
+
+// Max returns the maximum value in the sample, which may not be the maximum
+// value ever to be part of the sample.
+func (s *ExpDecaySample) Max() int64 {
+ return SampleMax(s.Values())
+}
+
+// Mean returns the mean of the values in the sample.
+func (s *ExpDecaySample) Mean() float64 {
+ return SampleMean(s.Values())
+}
+
+// Min returns the minimum value in the sample, which may not be the minimum
+// value ever to be part of the sample.
+func (s *ExpDecaySample) Min() int64 {
+ return SampleMin(s.Values())
+}
+
+// Percentile returns an arbitrary percentile of values in the sample.
+func (s *ExpDecaySample) Percentile(p float64) float64 {
+ return SamplePercentile(s.Values(), p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of values in the
+// sample.
+func (s *ExpDecaySample) Percentiles(ps []float64) []float64 {
+ return SamplePercentiles(s.Values(), ps)
+}
+
+// Size returns the size of the sample, which is at most the reservoir size.
+func (s *ExpDecaySample) Size() int {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return s.values.Size()
+}
+
+// Snapshot returns a read-only copy of the sample.
+func (s *ExpDecaySample) Snapshot() Sample {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ vals := s.values.Values()
+ values := make([]int64, len(vals))
+ for i, v := range vals {
+ values[i] = v.v
+ }
+ return &SampleSnapshot{
+ count: s.count,
+ values: values,
+ }
+}
+
+// StdDev returns the standard deviation of the values in the sample.
+func (s *ExpDecaySample) StdDev() float64 {
+ return SampleStdDev(s.Values())
+}
+
+// Sum returns the sum of the values in the sample.
+func (s *ExpDecaySample) Sum() int64 {
+ return SampleSum(s.Values())
+}
+
+// Update samples a new value.
+func (s *ExpDecaySample) Update(v int64) {
+ s.update(time.Now(), v)
+}
+
+// Values returns a copy of the values in the sample.
+func (s *ExpDecaySample) Values() []int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ vals := s.values.Values()
+ values := make([]int64, len(vals))
+ for i, v := range vals {
+ values[i] = v.v
+ }
+ return values
+}
+
+// Variance returns the variance of the values in the sample.
+func (s *ExpDecaySample) Variance() float64 {
+ return SampleVariance(s.Values())
+}
+
+// update samples a new value at a particular timestamp. This is a method all
+// its own to facilitate testing.
+func (s *ExpDecaySample) update(t time.Time, v int64) {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ s.count++
+ if s.values.Size() == s.reservoirSize {
+ s.values.Pop()
+ }
+ s.values.Push(expDecaySample{
+ k: math.Exp(t.Sub(s.t0).Seconds()*s.alpha) / rand.Float64(),
+ v: v,
+ })
+ if t.After(s.t1) {
+ values := s.values.Values()
+ t0 := s.t0
+ s.values.Clear()
+ s.t0 = t
+ s.t1 = s.t0.Add(rescaleThreshold)
+ for _, v := range values {
+ v.k = v.k * math.Exp(-s.alpha*s.t0.Sub(t0).Seconds())
+ s.values.Push(v)
+ }
+ }
+}
+
+// NilSample is a no-op Sample.
+type NilSample struct{}
+
+// Clear is a no-op.
+func (NilSample) Clear() {}
+
+// Count is a no-op.
+func (NilSample) Count() int64 { return 0 }
+
+// Max is a no-op.
+func (NilSample) Max() int64 { return 0 }
+
+// Mean is a no-op.
+func (NilSample) Mean() float64 { return 0.0 }
+
+// Min is a no-op.
+func (NilSample) Min() int64 { return 0 }
+
+// Percentile is a no-op.
+func (NilSample) Percentile(p float64) float64 { return 0.0 }
+
+// Percentiles is a no-op.
+func (NilSample) Percentiles(ps []float64) []float64 {
+ return make([]float64, len(ps))
+}
+
+// Size is a no-op.
+func (NilSample) Size() int { return 0 }
+
+// Sample is a no-op.
+func (NilSample) Snapshot() Sample { return NilSample{} }
+
+// StdDev is a no-op.
+func (NilSample) StdDev() float64 { return 0.0 }
+
+// Sum is a no-op.
+func (NilSample) Sum() int64 { return 0 }
+
+// Update is a no-op.
+func (NilSample) Update(v int64) {}
+
+// Values is a no-op.
+func (NilSample) Values() []int64 { return []int64{} }
+
+// Variance is a no-op.
+func (NilSample) Variance() float64 { return 0.0 }
+
+// SampleMax returns the maximum value of the slice of int64.
+func SampleMax(values []int64) int64 {
+ if 0 == len(values) {
+ return 0
+ }
+ var max int64 = math.MinInt64
+ for _, v := range values {
+ if max < v {
+ max = v
+ }
+ }
+ return max
+}
+
+// SampleMean returns the mean value of the slice of int64.
+func SampleMean(values []int64) float64 {
+ if 0 == len(values) {
+ return 0.0
+ }
+ return float64(SampleSum(values)) / float64(len(values))
+}
+
+// SampleMin returns the minimum value of the slice of int64.
+func SampleMin(values []int64) int64 {
+ if 0 == len(values) {
+ return 0
+ }
+ var min int64 = math.MaxInt64
+ for _, v := range values {
+ if min > v {
+ min = v
+ }
+ }
+ return min
+}
+
+// SamplePercentiles returns an arbitrary percentile of the slice of int64.
+func SamplePercentile(values int64Slice, p float64) float64 {
+ return SamplePercentiles(values, []float64{p})[0]
+}
+
+// SamplePercentiles returns a slice of arbitrary percentiles of the slice of
+// int64.
+func SamplePercentiles(values int64Slice, ps []float64) []float64 {
+ scores := make([]float64, len(ps))
+ size := len(values)
+ if size > 0 {
+ sort.Sort(values)
+ for i, p := range ps {
+ pos := p * float64(size+1)
+ if pos < 1.0 {
+ scores[i] = float64(values[0])
+ } else if pos >= float64(size) {
+ scores[i] = float64(values[size-1])
+ } else {
+ lower := float64(values[int(pos)-1])
+ upper := float64(values[int(pos)])
+ scores[i] = lower + (pos-math.Floor(pos))*(upper-lower)
+ }
+ }
+ }
+ return scores
+}
+
+// SampleSnapshot is a read-only copy of another Sample.
+type SampleSnapshot struct {
+ count int64
+ values []int64
+}
+
+// Clear panics.
+func (*SampleSnapshot) Clear() {
+ panic("Clear called on a SampleSnapshot")
+}
+
+// Count returns the count of inputs at the time the snapshot was taken.
+func (s *SampleSnapshot) Count() int64 { return s.count }
+
+// Max returns the maximal value at the time the snapshot was taken.
+func (s *SampleSnapshot) Max() int64 { return SampleMax(s.values) }
+
+// Mean returns the mean value at the time the snapshot was taken.
+func (s *SampleSnapshot) Mean() float64 { return SampleMean(s.values) }
+
+// Min returns the minimal value at the time the snapshot was taken.
+func (s *SampleSnapshot) Min() int64 { return SampleMin(s.values) }
+
+// Percentile returns an arbitrary percentile of values at the time the
+// snapshot was taken.
+func (s *SampleSnapshot) Percentile(p float64) float64 {
+ return SamplePercentile(s.values, p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of values at the time
+// the snapshot was taken.
+func (s *SampleSnapshot) Percentiles(ps []float64) []float64 {
+ return SamplePercentiles(s.values, ps)
+}
+
+// Size returns the size of the sample at the time the snapshot was taken.
+func (s *SampleSnapshot) Size() int { return len(s.values) }
+
+// Snapshot returns the snapshot.
+func (s *SampleSnapshot) Snapshot() Sample { return s }
+
+// StdDev returns the standard deviation of values at the time the snapshot was
+// taken.
+func (s *SampleSnapshot) StdDev() float64 { return SampleStdDev(s.values) }
+
+// Sum returns the sum of values at the time the snapshot was taken.
+func (s *SampleSnapshot) Sum() int64 { return SampleSum(s.values) }
+
+// Update panics.
+func (*SampleSnapshot) Update(int64) {
+ panic("Update called on a SampleSnapshot")
+}
+
+// Values returns a copy of the values in the sample.
+func (s *SampleSnapshot) Values() []int64 {
+ values := make([]int64, len(s.values))
+ copy(values, s.values)
+ return values
+}
+
+// Variance returns the variance of values at the time the snapshot was taken.
+func (s *SampleSnapshot) Variance() float64 { return SampleVariance(s.values) }
+
+// SampleStdDev returns the standard deviation of the slice of int64.
+func SampleStdDev(values []int64) float64 {
+ return math.Sqrt(SampleVariance(values))
+}
+
+// SampleSum returns the sum of the slice of int64.
+func SampleSum(values []int64) int64 {
+ var sum int64
+ for _, v := range values {
+ sum += v
+ }
+ return sum
+}
+
+// SampleVariance returns the variance of the slice of int64.
+func SampleVariance(values []int64) float64 {
+ if 0 == len(values) {
+ return 0.0
+ }
+ m := SampleMean(values)
+ var sum float64
+ for _, v := range values {
+ d := float64(v) - m
+ sum += d * d
+ }
+ return sum / float64(len(values))
+}
+
+// A uniform sample using Vitter's Algorithm R.
+//
+// <http://www.cs.umd.edu/~samir/498/vitter.pdf>
+type UniformSample struct {
+ count int64
+ mutex sync.Mutex
+ reservoirSize int
+ values []int64
+}
+
+// NewUniformSample constructs a new uniform sample with the given reservoir
+// size.
+func NewUniformSample(reservoirSize int) Sample {
+ if UseNilMetrics {
+ return NilSample{}
+ }
+ return &UniformSample{
+ reservoirSize: reservoirSize,
+ values: make([]int64, 0, reservoirSize),
+ }
+}
+
+// Clear clears all samples.
+func (s *UniformSample) Clear() {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ s.count = 0
+ s.values = make([]int64, 0, s.reservoirSize)
+}
+
+// Count returns the number of samples recorded, which may exceed the
+// reservoir size.
+func (s *UniformSample) Count() int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return s.count
+}
+
+// Max returns the maximum value in the sample, which may not be the maximum
+// value ever to be part of the sample.
+func (s *UniformSample) Max() int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleMax(s.values)
+}
+
+// Mean returns the mean of the values in the sample.
+func (s *UniformSample) Mean() float64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleMean(s.values)
+}
+
+// Min returns the minimum value in the sample, which may not be the minimum
+// value ever to be part of the sample.
+func (s *UniformSample) Min() int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleMin(s.values)
+}
+
+// Percentile returns an arbitrary percentile of values in the sample.
+func (s *UniformSample) Percentile(p float64) float64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SamplePercentile(s.values, p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of values in the
+// sample.
+func (s *UniformSample) Percentiles(ps []float64) []float64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SamplePercentiles(s.values, ps)
+}
+
+// Size returns the size of the sample, which is at most the reservoir size.
+func (s *UniformSample) Size() int {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return len(s.values)
+}
+
+// Snapshot returns a read-only copy of the sample.
+func (s *UniformSample) Snapshot() Sample {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ values := make([]int64, len(s.values))
+ copy(values, s.values)
+ return &SampleSnapshot{
+ count: s.count,
+ values: values,
+ }
+}
+
+// StdDev returns the standard deviation of the values in the sample.
+func (s *UniformSample) StdDev() float64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleStdDev(s.values)
+}
+
+// Sum returns the sum of the values in the sample.
+func (s *UniformSample) Sum() int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleSum(s.values)
+}
+
+// Update samples a new value.
+func (s *UniformSample) Update(v int64) {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ s.count++
+ if len(s.values) < s.reservoirSize {
+ s.values = append(s.values, v)
+ } else {
+ r := rand.Int63n(s.count)
+ if r < int64(len(s.values)) {
+ s.values[int(r)] = v
+ }
+ }
+}
+
+// Values returns a copy of the values in the sample.
+func (s *UniformSample) Values() []int64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ values := make([]int64, len(s.values))
+ copy(values, s.values)
+ return values
+}
+
+// Variance returns the variance of the values in the sample.
+func (s *UniformSample) Variance() float64 {
+ s.mutex.Lock()
+ defer s.mutex.Unlock()
+ return SampleVariance(s.values)
+}
+
+// expDecaySample represents an individual sample in a heap.
+type expDecaySample struct {
+ k float64
+ v int64
+}
+
+func newExpDecaySampleHeap(reservoirSize int) *expDecaySampleHeap {
+ return &expDecaySampleHeap{make([]expDecaySample, 0, reservoirSize)}
+}
+
+// expDecaySampleHeap is a min-heap of expDecaySamples.
+// The internal implementation is copied from the standard library's container/heap
+type expDecaySampleHeap struct {
+ s []expDecaySample
+}
+
+func (h *expDecaySampleHeap) Clear() {
+ h.s = h.s[:0]
+}
+
+func (h *expDecaySampleHeap) Push(s expDecaySample) {
+ n := len(h.s)
+ h.s = h.s[0 : n+1]
+ h.s[n] = s
+ h.up(n)
+}
+
+func (h *expDecaySampleHeap) Pop() expDecaySample {
+ n := len(h.s) - 1
+ h.s[0], h.s[n] = h.s[n], h.s[0]
+ h.down(0, n)
+
+ n = len(h.s)
+ s := h.s[n-1]
+ h.s = h.s[0 : n-1]
+ return s
+}
+
+func (h *expDecaySampleHeap) Size() int {
+ return len(h.s)
+}
+
+func (h *expDecaySampleHeap) Values() []expDecaySample {
+ return h.s
+}
+
+func (h *expDecaySampleHeap) up(j int) {
+ for {
+ i := (j - 1) / 2 // parent
+ if i == j || !(h.s[j].k < h.s[i].k) {
+ break
+ }
+ h.s[i], h.s[j] = h.s[j], h.s[i]
+ j = i
+ }
+}
+
+func (h *expDecaySampleHeap) down(i, n int) {
+ for {
+ j1 := 2*i + 1
+ if j1 >= n || j1 < 0 { // j1 < 0 after int overflow
+ break
+ }
+ j := j1 // left child
+ if j2 := j1 + 1; j2 < n && !(h.s[j1].k < h.s[j2].k) {
+ j = j2 // = 2*i + 2 // right child
+ }
+ if !(h.s[j].k < h.s[i].k) {
+ break
+ }
+ h.s[i], h.s[j] = h.s[j], h.s[i]
+ i = j
+ }
+}
+
+type int64Slice []int64
+
+func (p int64Slice) Len() int { return len(p) }
+func (p int64Slice) Less(i, j int) bool { return p[i] < p[j] }
+func (p int64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
diff --git a/vendor/github.com/rcrowley/go-metrics/syslog.go b/vendor/github.com/rcrowley/go-metrics/syslog.go
new file mode 100644
index 000000000..693f19085
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/syslog.go
@@ -0,0 +1,78 @@
+// +build !windows
+
+package metrics
+
+import (
+ "fmt"
+ "log/syslog"
+ "time"
+)
+
+// Output each metric in the given registry to syslog periodically using
+// the given syslogger.
+func Syslog(r Registry, d time.Duration, w *syslog.Writer) {
+ for _ = range time.Tick(d) {
+ r.Each(func(name string, i interface{}) {
+ switch metric := i.(type) {
+ case Counter:
+ w.Info(fmt.Sprintf("counter %s: count: %d", name, metric.Count()))
+ case Gauge:
+ w.Info(fmt.Sprintf("gauge %s: value: %d", name, metric.Value()))
+ case GaugeFloat64:
+ w.Info(fmt.Sprintf("gauge %s: value: %f", name, metric.Value()))
+ case Healthcheck:
+ metric.Check()
+ w.Info(fmt.Sprintf("healthcheck %s: error: %v", name, metric.Error()))
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ w.Info(fmt.Sprintf(
+ "histogram %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f",
+ name,
+ h.Count(),
+ h.Min(),
+ h.Max(),
+ h.Mean(),
+ h.StdDev(),
+ ps[0],
+ ps[1],
+ ps[2],
+ ps[3],
+ ps[4],
+ ))
+ case Meter:
+ m := metric.Snapshot()
+ w.Info(fmt.Sprintf(
+ "meter %s: count: %d 1-min: %.2f 5-min: %.2f 15-min: %.2f mean: %.2f",
+ name,
+ m.Count(),
+ m.Rate1(),
+ m.Rate5(),
+ m.Rate15(),
+ m.RateMean(),
+ ))
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ w.Info(fmt.Sprintf(
+ "timer %s: count: %d min: %d max: %d mean: %.2f stddev: %.2f median: %.2f 75%%: %.2f 95%%: %.2f 99%%: %.2f 99.9%%: %.2f 1-min: %.2f 5-min: %.2f 15-min: %.2f mean-rate: %.2f",
+ name,
+ t.Count(),
+ t.Min(),
+ t.Max(),
+ t.Mean(),
+ t.StdDev(),
+ ps[0],
+ ps[1],
+ ps[2],
+ ps[3],
+ ps[4],
+ t.Rate1(),
+ t.Rate5(),
+ t.Rate15(),
+ t.RateMean(),
+ ))
+ }
+ })
+ }
+}
diff --git a/vendor/github.com/rcrowley/go-metrics/timer.go b/vendor/github.com/rcrowley/go-metrics/timer.go
new file mode 100644
index 000000000..17db8f8d2
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/timer.go
@@ -0,0 +1,311 @@
+package metrics
+
+import (
+ "sync"
+ "time"
+)
+
+// Timers capture the duration and rate of events.
+type Timer interface {
+ Count() int64
+ Max() int64
+ Mean() float64
+ Min() int64
+ Percentile(float64) float64
+ Percentiles([]float64) []float64
+ Rate1() float64
+ Rate5() float64
+ Rate15() float64
+ RateMean() float64
+ Snapshot() Timer
+ StdDev() float64
+ Sum() int64
+ Time(func())
+ Update(time.Duration)
+ UpdateSince(time.Time)
+ Variance() float64
+}
+
+// GetOrRegisterTimer returns an existing Timer or constructs and registers a
+// new StandardTimer.
+func GetOrRegisterTimer(name string, r Registry) Timer {
+ if nil == r {
+ r = DefaultRegistry
+ }
+ return r.GetOrRegister(name, NewTimer).(Timer)
+}
+
+// NewCustomTimer constructs a new StandardTimer from a Histogram and a Meter.
+func NewCustomTimer(h Histogram, m Meter) Timer {
+ if UseNilMetrics {
+ return NilTimer{}
+ }
+ return &StandardTimer{
+ histogram: h,
+ meter: m,
+ }
+}
+
+// NewRegisteredTimer constructs and registers a new StandardTimer.
+func NewRegisteredTimer(name string, r Registry) Timer {
+ c := NewTimer()
+ if nil == r {
+ r = DefaultRegistry
+ }
+ r.Register(name, c)
+ return c
+}
+
+// NewTimer constructs a new StandardTimer using an exponentially-decaying
+// sample with the same reservoir size and alpha as UNIX load averages.
+func NewTimer() Timer {
+ if UseNilMetrics {
+ return NilTimer{}
+ }
+ return &StandardTimer{
+ histogram: NewHistogram(NewExpDecaySample(1028, 0.015)),
+ meter: NewMeter(),
+ }
+}
+
+// NilTimer is a no-op Timer.
+type NilTimer struct {
+ h Histogram
+ m Meter
+}
+
+// Count is a no-op.
+func (NilTimer) Count() int64 { return 0 }
+
+// Max is a no-op.
+func (NilTimer) Max() int64 { return 0 }
+
+// Mean is a no-op.
+func (NilTimer) Mean() float64 { return 0.0 }
+
+// Min is a no-op.
+func (NilTimer) Min() int64 { return 0 }
+
+// Percentile is a no-op.
+func (NilTimer) Percentile(p float64) float64 { return 0.0 }
+
+// Percentiles is a no-op.
+func (NilTimer) Percentiles(ps []float64) []float64 {
+ return make([]float64, len(ps))
+}
+
+// Rate1 is a no-op.
+func (NilTimer) Rate1() float64 { return 0.0 }
+
+// Rate5 is a no-op.
+func (NilTimer) Rate5() float64 { return 0.0 }
+
+// Rate15 is a no-op.
+func (NilTimer) Rate15() float64 { return 0.0 }
+
+// RateMean is a no-op.
+func (NilTimer) RateMean() float64 { return 0.0 }
+
+// Snapshot is a no-op.
+func (NilTimer) Snapshot() Timer { return NilTimer{} }
+
+// StdDev is a no-op.
+func (NilTimer) StdDev() float64 { return 0.0 }
+
+// Sum is a no-op.
+func (NilTimer) Sum() int64 { return 0 }
+
+// Time is a no-op.
+func (NilTimer) Time(func()) {}
+
+// Update is a no-op.
+func (NilTimer) Update(time.Duration) {}
+
+// UpdateSince is a no-op.
+func (NilTimer) UpdateSince(time.Time) {}
+
+// Variance is a no-op.
+func (NilTimer) Variance() float64 { return 0.0 }
+
+// StandardTimer is the standard implementation of a Timer and uses a Histogram
+// and Meter.
+type StandardTimer struct {
+ histogram Histogram
+ meter Meter
+ mutex sync.Mutex
+}
+
+// Count returns the number of events recorded.
+func (t *StandardTimer) Count() int64 {
+ return t.histogram.Count()
+}
+
+// Max returns the maximum value in the sample.
+func (t *StandardTimer) Max() int64 {
+ return t.histogram.Max()
+}
+
+// Mean returns the mean of the values in the sample.
+func (t *StandardTimer) Mean() float64 {
+ return t.histogram.Mean()
+}
+
+// Min returns the minimum value in the sample.
+func (t *StandardTimer) Min() int64 {
+ return t.histogram.Min()
+}
+
+// Percentile returns an arbitrary percentile of the values in the sample.
+func (t *StandardTimer) Percentile(p float64) float64 {
+ return t.histogram.Percentile(p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of the values in the
+// sample.
+func (t *StandardTimer) Percentiles(ps []float64) []float64 {
+ return t.histogram.Percentiles(ps)
+}
+
+// Rate1 returns the one-minute moving average rate of events per second.
+func (t *StandardTimer) Rate1() float64 {
+ return t.meter.Rate1()
+}
+
+// Rate5 returns the five-minute moving average rate of events per second.
+func (t *StandardTimer) Rate5() float64 {
+ return t.meter.Rate5()
+}
+
+// Rate15 returns the fifteen-minute moving average rate of events per second.
+func (t *StandardTimer) Rate15() float64 {
+ return t.meter.Rate15()
+}
+
+// RateMean returns the meter's mean rate of events per second.
+func (t *StandardTimer) RateMean() float64 {
+ return t.meter.RateMean()
+}
+
+// Snapshot returns a read-only copy of the timer.
+func (t *StandardTimer) Snapshot() Timer {
+ t.mutex.Lock()
+ defer t.mutex.Unlock()
+ return &TimerSnapshot{
+ histogram: t.histogram.Snapshot().(*HistogramSnapshot),
+ meter: t.meter.Snapshot().(*MeterSnapshot),
+ }
+}
+
+// StdDev returns the standard deviation of the values in the sample.
+func (t *StandardTimer) StdDev() float64 {
+ return t.histogram.StdDev()
+}
+
+// Sum returns the sum in the sample.
+func (t *StandardTimer) Sum() int64 {
+ return t.histogram.Sum()
+}
+
+// Record the duration of the execution of the given function.
+func (t *StandardTimer) Time(f func()) {
+ ts := time.Now()
+ f()
+ t.Update(time.Since(ts))
+}
+
+// Record the duration of an event.
+func (t *StandardTimer) Update(d time.Duration) {
+ t.mutex.Lock()
+ defer t.mutex.Unlock()
+ t.histogram.Update(int64(d))
+ t.meter.Mark(1)
+}
+
+// Record the duration of an event that started at a time and ends now.
+func (t *StandardTimer) UpdateSince(ts time.Time) {
+ t.mutex.Lock()
+ defer t.mutex.Unlock()
+ t.histogram.Update(int64(time.Since(ts)))
+ t.meter.Mark(1)
+}
+
+// Variance returns the variance of the values in the sample.
+func (t *StandardTimer) Variance() float64 {
+ return t.histogram.Variance()
+}
+
+// TimerSnapshot is a read-only copy of another Timer.
+type TimerSnapshot struct {
+ histogram *HistogramSnapshot
+ meter *MeterSnapshot
+}
+
+// Count returns the number of events recorded at the time the snapshot was
+// taken.
+func (t *TimerSnapshot) Count() int64 { return t.histogram.Count() }
+
+// Max returns the maximum value at the time the snapshot was taken.
+func (t *TimerSnapshot) Max() int64 { return t.histogram.Max() }
+
+// Mean returns the mean value at the time the snapshot was taken.
+func (t *TimerSnapshot) Mean() float64 { return t.histogram.Mean() }
+
+// Min returns the minimum value at the time the snapshot was taken.
+func (t *TimerSnapshot) Min() int64 { return t.histogram.Min() }
+
+// Percentile returns an arbitrary percentile of sampled values at the time the
+// snapshot was taken.
+func (t *TimerSnapshot) Percentile(p float64) float64 {
+ return t.histogram.Percentile(p)
+}
+
+// Percentiles returns a slice of arbitrary percentiles of sampled values at
+// the time the snapshot was taken.
+func (t *TimerSnapshot) Percentiles(ps []float64) []float64 {
+ return t.histogram.Percentiles(ps)
+}
+
+// Rate1 returns the one-minute moving average rate of events per second at the
+// time the snapshot was taken.
+func (t *TimerSnapshot) Rate1() float64 { return t.meter.Rate1() }
+
+// Rate5 returns the five-minute moving average rate of events per second at
+// the time the snapshot was taken.
+func (t *TimerSnapshot) Rate5() float64 { return t.meter.Rate5() }
+
+// Rate15 returns the fifteen-minute moving average rate of events per second
+// at the time the snapshot was taken.
+func (t *TimerSnapshot) Rate15() float64 { return t.meter.Rate15() }
+
+// RateMean returns the meter's mean rate of events per second at the time the
+// snapshot was taken.
+func (t *TimerSnapshot) RateMean() float64 { return t.meter.RateMean() }
+
+// Snapshot returns the snapshot.
+func (t *TimerSnapshot) Snapshot() Timer { return t }
+
+// StdDev returns the standard deviation of the values at the time the snapshot
+// was taken.
+func (t *TimerSnapshot) StdDev() float64 { return t.histogram.StdDev() }
+
+// Sum returns the sum at the time the snapshot was taken.
+func (t *TimerSnapshot) Sum() int64 { return t.histogram.Sum() }
+
+// Time panics.
+func (*TimerSnapshot) Time(func()) {
+ panic("Time called on a TimerSnapshot")
+}
+
+// Update panics.
+func (*TimerSnapshot) Update(time.Duration) {
+ panic("Update called on a TimerSnapshot")
+}
+
+// UpdateSince panics.
+func (*TimerSnapshot) UpdateSince(time.Time) {
+ panic("UpdateSince called on a TimerSnapshot")
+}
+
+// Variance returns the variance of the values at the time the snapshot was
+// taken.
+func (t *TimerSnapshot) Variance() float64 { return t.histogram.Variance() }
diff --git a/vendor/github.com/rcrowley/go-metrics/validate.sh b/vendor/github.com/rcrowley/go-metrics/validate.sh
new file mode 100755
index 000000000..f6499982e
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/validate.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+set -e
+
+# check there are no formatting issues
+GOFMT_LINES=`gofmt -l . | wc -l | xargs`
+test $GOFMT_LINES -eq 0 || echo "gofmt needs to be run, ${GOFMT_LINES} files have issues"
+
+# run the tests for the root package
+go test .
diff --git a/vendor/github.com/rcrowley/go-metrics/writer.go b/vendor/github.com/rcrowley/go-metrics/writer.go
new file mode 100644
index 000000000..091e971d2
--- /dev/null
+++ b/vendor/github.com/rcrowley/go-metrics/writer.go
@@ -0,0 +1,100 @@
+package metrics
+
+import (
+ "fmt"
+ "io"
+ "sort"
+ "time"
+)
+
+// Write sorts writes each metric in the given registry periodically to the
+// given io.Writer.
+func Write(r Registry, d time.Duration, w io.Writer) {
+ for _ = range time.Tick(d) {
+ WriteOnce(r, w)
+ }
+}
+
+// WriteOnce sorts and writes metrics in the given registry to the given
+// io.Writer.
+func WriteOnce(r Registry, w io.Writer) {
+ var namedMetrics namedMetricSlice
+ r.Each(func(name string, i interface{}) {
+ namedMetrics = append(namedMetrics, namedMetric{name, i})
+ })
+
+ sort.Sort(namedMetrics)
+ for _, namedMetric := range namedMetrics {
+ switch metric := namedMetric.m.(type) {
+ case Counter:
+ fmt.Fprintf(w, "counter %s\n", namedMetric.name)
+ fmt.Fprintf(w, " count: %9d\n", metric.Count())
+ case Gauge:
+ fmt.Fprintf(w, "gauge %s\n", namedMetric.name)
+ fmt.Fprintf(w, " value: %9d\n", metric.Value())
+ case GaugeFloat64:
+ fmt.Fprintf(w, "gauge %s\n", namedMetric.name)
+ fmt.Fprintf(w, " value: %f\n", metric.Value())
+ case Healthcheck:
+ metric.Check()
+ fmt.Fprintf(w, "healthcheck %s\n", namedMetric.name)
+ fmt.Fprintf(w, " error: %v\n", metric.Error())
+ case Histogram:
+ h := metric.Snapshot()
+ ps := h.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ fmt.Fprintf(w, "histogram %s\n", namedMetric.name)
+ fmt.Fprintf(w, " count: %9d\n", h.Count())
+ fmt.Fprintf(w, " min: %9d\n", h.Min())
+ fmt.Fprintf(w, " max: %9d\n", h.Max())
+ fmt.Fprintf(w, " mean: %12.2f\n", h.Mean())
+ fmt.Fprintf(w, " stddev: %12.2f\n", h.StdDev())
+ fmt.Fprintf(w, " median: %12.2f\n", ps[0])
+ fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1])
+ fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2])
+ fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3])
+ fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4])
+ case Meter:
+ m := metric.Snapshot()
+ fmt.Fprintf(w, "meter %s\n", namedMetric.name)
+ fmt.Fprintf(w, " count: %9d\n", m.Count())
+ fmt.Fprintf(w, " 1-min rate: %12.2f\n", m.Rate1())
+ fmt.Fprintf(w, " 5-min rate: %12.2f\n", m.Rate5())
+ fmt.Fprintf(w, " 15-min rate: %12.2f\n", m.Rate15())
+ fmt.Fprintf(w, " mean rate: %12.2f\n", m.RateMean())
+ case Timer:
+ t := metric.Snapshot()
+ ps := t.Percentiles([]float64{0.5, 0.75, 0.95, 0.99, 0.999})
+ fmt.Fprintf(w, "timer %s\n", namedMetric.name)
+ fmt.Fprintf(w, " count: %9d\n", t.Count())
+ fmt.Fprintf(w, " min: %9d\n", t.Min())
+ fmt.Fprintf(w, " max: %9d\n", t.Max())
+ fmt.Fprintf(w, " mean: %12.2f\n", t.Mean())
+ fmt.Fprintf(w, " stddev: %12.2f\n", t.StdDev())
+ fmt.Fprintf(w, " median: %12.2f\n", ps[0])
+ fmt.Fprintf(w, " 75%%: %12.2f\n", ps[1])
+ fmt.Fprintf(w, " 95%%: %12.2f\n", ps[2])
+ fmt.Fprintf(w, " 99%%: %12.2f\n", ps[3])
+ fmt.Fprintf(w, " 99.9%%: %12.2f\n", ps[4])
+ fmt.Fprintf(w, " 1-min rate: %12.2f\n", t.Rate1())
+ fmt.Fprintf(w, " 5-min rate: %12.2f\n", t.Rate5())
+ fmt.Fprintf(w, " 15-min rate: %12.2f\n", t.Rate15())
+ fmt.Fprintf(w, " mean rate: %12.2f\n", t.RateMean())
+ }
+ }
+}
+
+type namedMetric struct {
+ name string
+ m interface{}
+}
+
+// namedMetricSlice is a slice of namedMetrics that implements sort.Interface.
+type namedMetricSlice []namedMetric
+
+func (nms namedMetricSlice) Len() int { return len(nms) }
+
+func (nms namedMetricSlice) Swap(i, j int) { nms[i], nms[j] = nms[j], nms[i] }
+
+func (nms namedMetricSlice) Less(i, j int) bool {
+ return nms[i].name < nms[j].name
+}
diff --git a/vendor/github.com/rjeczalik/notify/.gitignore b/vendor/github.com/rjeczalik/notify/.gitignore
new file mode 100644
index 000000000..86d4fa8b1
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/.gitignore
@@ -0,0 +1,88 @@
+# Created by https://www.gitignore.io
+
+### OSX ###
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+
+### Windows ###
+# Windows image file caches
+Thumbs.db
+ehthumbs.db
+
+# Folder config file
+Desktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+
+### Linux ###
+*~
+
+# KDE directory preferences
+.directory
+
+
+### Go ###
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
+*.test
+*.prof
+
+
+### vim ###
+[._]*.s[a-w][a-z]
+[._]s[a-w][a-z]
+*.un~
+Session.vim
+.netrwhist
+*~
+
diff --git a/vendor/github.com/rjeczalik/notify/.travis.yml b/vendor/github.com/rjeczalik/notify/.travis.yml
new file mode 100644
index 000000000..c92863d50
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/.travis.yml
@@ -0,0 +1,29 @@
+language: go
+
+go:
+ - 1.4.3
+ - 1.6
+
+os:
+ - linux
+ - osx
+
+matrix:
+ include:
+ - os: osx
+ go: 1.6
+ env:
+ - GOFLAGS="-tags kqueue"
+
+env:
+ global:
+ - GOBIN=$HOME/bin
+ - PATH=$HOME/bin:$PATH
+
+install:
+ - go get -t -v ./...
+
+script:
+ - "(go version | grep -q 1.4) || go tool vet -all ."
+ - go install $GOFLAGS ./...
+ - go test -v -race $GOFLAGS ./...
diff --git a/vendor/github.com/rjeczalik/notify/AUTHORS b/vendor/github.com/rjeczalik/notify/AUTHORS
new file mode 100644
index 000000000..9262eae69
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/AUTHORS
@@ -0,0 +1,10 @@
+# List of individuals who contributed to the Notify package.
+#
+# The up-to-date list of the authors one may obtain with:
+#
+# ~ $ git shortlog -es | cut -f2 | rev | uniq -f1 | rev
+#
+
+Pawel Blaszczyk <blaszczykpb@gmail.com>
+Pawel Knap <pawelknap88@gmail.com>
+Rafal Jeczalik <rjeczalik@gmail.com>
diff --git a/vendor/github.com/rjeczalik/notify/LICENSE b/vendor/github.com/rjeczalik/notify/LICENSE
new file mode 100644
index 000000000..3e678817b
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-2015 The Notify Authors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/github.com/rjeczalik/notify/README.md b/vendor/github.com/rjeczalik/notify/README.md
new file mode 100644
index 000000000..a728d1dd0
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/README.md
@@ -0,0 +1,21 @@
+notify [![GoDoc](https://godoc.org/github.com/rjeczalik/notify?status.svg)](https://godoc.org/github.com/rjeczalik/notify) [![Build Status](https://img.shields.io/travis/rjeczalik/notify/master.svg)](https://travis-ci.org/rjeczalik/notify "inotify + FSEvents + kqueue") [![Build status](https://img.shields.io/appveyor/ci/rjeczalik/notify-246.svg)](https://ci.appveyor.com/project/rjeczalik/notify-246 "ReadDirectoryChangesW") [![Coverage Status](https://img.shields.io/coveralls/rjeczalik/notify/master.svg)](https://coveralls.io/r/rjeczalik/notify?branch=master)
+======
+
+Filesystem event notification library on steroids. (under active development)
+
+*Documentation*
+
+[godoc.org/github.com/rjeczalik/notify](https://godoc.org/github.com/rjeczalik/notify)
+
+*Installation*
+
+```
+~ $ go get -u github.com/rjeczalik/notify
+```
+
+*Projects using notify*
+
+- [github.com/rjeczalik/cmd/notify](https://godoc.org/github.com/rjeczalik/cmd/notify)
+- [github.com/cortesi/devd](https://github.com/cortesi/devd)
+- [github.com/cortesi/modd](https://github.com/cortesi/modd)
+
diff --git a/vendor/github.com/rjeczalik/notify/appveyor.yml b/vendor/github.com/rjeczalik/notify/appveyor.yml
new file mode 100644
index 000000000..8e762d05c
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/appveyor.yml
@@ -0,0 +1,23 @@
+version: "{build}"
+
+os: Windows Server 2012 R2
+
+clone_folder: c:\projects\src\github.com\rjeczalik\notify
+
+environment:
+ PATH: c:\projects\bin;%PATH%
+ GOPATH: c:\projects
+ NOTIFY_TIMEOUT: 5s
+
+install:
+ - go version
+ - go get -v -t ./...
+
+build_script:
+ - go tool vet -all .
+ - go build ./...
+ - go test -v -race ./...
+
+test: off
+
+deploy: off
diff --git a/vendor/github.com/rjeczalik/notify/debug.go b/vendor/github.com/rjeczalik/notify/debug.go
new file mode 100644
index 000000000..bd9bc468d
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/debug.go
@@ -0,0 +1,11 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build !debug
+
+package notify
+
+func dbgprint(...interface{}) {}
+
+func dbgprintf(string, ...interface{}) {}
diff --git a/vendor/github.com/rjeczalik/notify/debug_debug.go b/vendor/github.com/rjeczalik/notify/debug_debug.go
new file mode 100644
index 000000000..f0622917f
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/debug_debug.go
@@ -0,0 +1,43 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build debug
+
+package notify
+
+import (
+ "fmt"
+ "os"
+ "runtime"
+ "strings"
+)
+
+func dbgprint(v ...interface{}) {
+ fmt.Printf("[D] ")
+ fmt.Print(v...)
+ fmt.Printf("\n\n")
+}
+
+func dbgprintf(format string, v ...interface{}) {
+ fmt.Printf("[D] ")
+ fmt.Printf(format, v...)
+ fmt.Printf("\n\n")
+}
+
+func dbgcallstack(max int) []string {
+ pc, stack := make([]uintptr, max), make([]string, 0, max)
+ runtime.Callers(2, pc)
+ for _, pc := range pc {
+ if f := runtime.FuncForPC(pc); f != nil {
+ fname := f.Name()
+ idx := strings.LastIndex(fname, string(os.PathSeparator))
+ if idx != -1 {
+ stack = append(stack, fname[idx+1:])
+ } else {
+ stack = append(stack, fname)
+ }
+ }
+ }
+ return stack
+}
diff --git a/vendor/github.com/rjeczalik/notify/doc.go b/vendor/github.com/rjeczalik/notify/doc.go
new file mode 100644
index 000000000..8a99ddda6
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/doc.go
@@ -0,0 +1,40 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// Package notify implements access to filesystem events.
+//
+// Notify is a high-level abstraction over filesystem watchers like inotify,
+// kqueue, FSEvents, FEN or ReadDirectoryChangesW. Watcher implementations are
+// split into two groups: ones that natively support recursive notifications
+// (FSEvents and ReadDirectoryChangesW) and ones that do not (inotify, kqueue, FEN).
+// For more details see watcher and recursiveWatcher interfaces in watcher.go
+// source file.
+//
+// On top of filesystem watchers notify maintains a watchpoint tree, which provides
+// strategy for creating and closing filesystem watches and dispatching filesystem
+// events to user channels.
+//
+// An event set is just an event list joint using bitwise OR operator
+// into a single event value.
+//
+// A filesystem watch or just a watch is platform-specific entity which represents
+// a single path registered for notifications for specific event set. Setting a watch
+// means using platform-specific API calls for creating / initializing said watch.
+// For each watcher the API call is:
+//
+// - FSEvents: FSEventStreamCreate
+// - inotify: notify_add_watch
+// - kqueue: kevent
+// - ReadDirectoryChangesW: CreateFile+ReadDirectoryChangesW
+// - FEN: port_get
+//
+// To rewatch means to either shrink or expand an event set that was previously
+// registered during watch operation for particular filesystem watch.
+//
+// A watchpoint is a list of user channel and event set pairs for particular
+// path (watchpoint tree's node). A single watchpoint can contain multiple
+// different user channels registered to listen for one or more events. A single
+// user channel can be registered in one or more watchpoints, recurisve and
+// non-recursive ones as well.
+package notify
diff --git a/vendor/github.com/rjeczalik/notify/event.go b/vendor/github.com/rjeczalik/notify/event.go
new file mode 100644
index 000000000..e045edcec
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event.go
@@ -0,0 +1,143 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import (
+ "fmt"
+ "strings"
+)
+
+// Event represents the type of filesystem action.
+//
+// Number of available event values is dependent on the target system or the
+// watcher implmenetation used (e.g. it's possible to use either kqueue or
+// FSEvents on Darwin).
+//
+// Please consult documentation for your target platform to see list of all
+// available events.
+type Event uint32
+
+// Create, Remove, Write and Rename are the only event values guaranteed to be
+// present on all platforms.
+const (
+ Create = osSpecificCreate
+ Remove = osSpecificRemove
+ Write = osSpecificWrite
+ Rename = osSpecificRename
+
+ // All is handful alias for all platform-independent event values.
+ All = Create | Remove | Write | Rename
+)
+
+const internal = recursive | omit
+
+// String implements fmt.Stringer interface.
+func (e Event) String() string {
+ var s []string
+ for _, strmap := range []map[Event]string{estr, osestr} {
+ for ev, str := range strmap {
+ if e&ev == ev {
+ s = append(s, str)
+ }
+ }
+ }
+ return strings.Join(s, "|")
+}
+
+// EventInfo describes an event reported by the underlying filesystem notification
+// subsystem.
+//
+// It always describes single event, even if the OS reported a coalesced action.
+// Reported path is absolute and clean.
+//
+// For non-recursive watchpoints its base is always equal to the path passed
+// to corresponding Watch call.
+//
+// The value of Sys if system-dependent and can be nil.
+//
+// Sys
+//
+// Under Darwin (FSEvents) Sys() always returns a non-nil *notify.FSEvent value,
+// which is defined as:
+//
+// type FSEvent struct {
+// Path string // real path of the file or directory
+// ID uint64 // ID of the event (FSEventStreamEventId)
+// Flags uint32 // joint FSEvents* flags (FSEventStreamEventFlags)
+// }
+//
+// For possible values of Flags see Darwin godoc for notify or FSEvents
+// documentation for FSEventStreamEventFlags constants:
+//
+// https://developer.apple.com/library/mac/documentation/Darwin/Reference/FSEvents_Ref/index.html#//apple_ref/doc/constant_group/FSEventStreamEventFlags
+//
+// Under Linux (inotify) Sys() always returns a non-nil *syscall.InotifyEvent
+// value, defined as:
+//
+// type InotifyEvent struct {
+// Wd int32 // Watch descriptor
+// Mask uint32 // Mask describing event
+// Cookie uint32 // Unique cookie associating related events (for rename(2))
+// Len uint32 // Size of name field
+// Name [0]uint8 // Optional null-terminated name
+// }
+//
+// More information about inotify masks and the usage of inotify_event structure
+// can be found at:
+//
+// http://man7.org/linux/man-pages/man7/inotify.7.html
+//
+// Under Darwin, DragonFlyBSD, FreeBSD, NetBSD, OpenBSD (kqueue) Sys() always
+// returns a non-nil *notify.Kevent value, which is defined as:
+//
+// type Kevent struct {
+// Kevent *syscall.Kevent_t // Kevent is a kqueue specific structure
+// FI os.FileInfo // FI describes file/dir
+// }
+//
+// More information about syscall.Kevent_t can be found at:
+//
+// https://www.freebsd.org/cgi/man.cgi?query=kqueue
+//
+// Under Windows (ReadDirectoryChangesW) Sys() always returns nil. The documentation
+// of watcher's WinAPI function can be found at:
+//
+// https://msdn.microsoft.com/en-us/library/windows/desktop/aa365465%28v=vs.85%29.aspx
+type EventInfo interface {
+ Event() Event // event value for the filesystem action
+ Path() string // real path of the file or directory
+ Sys() interface{} // underlying data source (can return nil)
+}
+
+type isDirer interface {
+ isDir() (bool, error)
+}
+
+var _ fmt.Stringer = (*event)(nil)
+var _ isDirer = (*event)(nil)
+
+// String implements fmt.Stringer interface.
+func (e *event) String() string {
+ return e.Event().String() + `: "` + e.Path() + `"`
+}
+
+var estr = map[Event]string{
+ Create: "notify.Create",
+ Remove: "notify.Remove",
+ Write: "notify.Write",
+ Rename: "notify.Rename",
+ // Display name for recursive event is added only for debugging
+ // purposes. It's an internal event after all and won't be exposed to the
+ // user. Having Recursive event printable is helpful, e.g. for reading
+ // testing failure messages:
+ //
+ // --- FAIL: TestWatchpoint (0.00 seconds)
+ // watchpoint_test.go:64: want diff=[notify.Remove notify.Create|notify.Remove];
+ // got [notify.Remove notify.Remove|notify.Create] (i=1)
+ //
+ // Yup, here the diff have Recursive event inside. Go figure.
+ recursive: "recursive",
+ omit: "omit",
+}
diff --git a/vendor/github.com/rjeczalik/notify/event_fen.go b/vendor/github.com/rjeczalik/notify/event_fen.go
new file mode 100644
index 000000000..a3079385d
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_fen.go
@@ -0,0 +1,46 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build solaris
+
+package notify
+
+const (
+ osSpecificCreate Event = 0x00000100 << iota
+ osSpecificRemove
+ osSpecificWrite
+ osSpecificRename
+ // internal
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit
+)
+
+const (
+ FileAccess = fileAccess
+ FileModified = fileModified
+ FileAttrib = fileAttrib
+ FileDelete = fileDelete
+ FileRenameTo = fileRenameTo
+ FileRenameFrom = fileRenameFrom
+ FileTrunc = fileTrunc
+ FileNoFollow = fileNoFollow
+ Unmounted = unmounted
+ MountedOver = mountedOver
+)
+
+var osestr = map[Event]string{
+ FileAccess: "notify.FileAccess",
+ FileModified: "notify.FileModified",
+ FileAttrib: "notify.FileAttrib",
+ FileDelete: "notify.FileDelete",
+ FileRenameTo: "notify.FileRenameTo",
+ FileRenameFrom: "notify.FileRenameFrom",
+ FileTrunc: "notify.FileTrunc",
+ FileNoFollow: "notify.FileNoFollow",
+ Unmounted: "notify.Unmounted",
+ MountedOver: "notify.MountedOver",
+}
diff --git a/vendor/github.com/rjeczalik/notify/event_fsevents.go b/vendor/github.com/rjeczalik/notify/event_fsevents.go
new file mode 100644
index 000000000..6ded80b2c
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_fsevents.go
@@ -0,0 +1,71 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,!kqueue
+
+package notify
+
+const (
+ osSpecificCreate = Event(FSEventsCreated)
+ osSpecificRemove = Event(FSEventsRemoved)
+ osSpecificWrite = Event(FSEventsModified)
+ osSpecificRename = Event(FSEventsRenamed)
+ // internal = Event(0x100000)
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive = Event(0x200000)
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit = Event(0x400000)
+)
+
+// FSEvents specific event values.
+const (
+ FSEventsMustScanSubDirs Event = 0x00001
+ FSEventsUserDropped = 0x00002
+ FSEventsKernelDropped = 0x00004
+ FSEventsEventIdsWrapped = 0x00008
+ FSEventsHistoryDone = 0x00010
+ FSEventsRootChanged = 0x00020
+ FSEventsMount = 0x00040
+ FSEventsUnmount = 0x00080
+ FSEventsCreated = 0x00100
+ FSEventsRemoved = 0x00200
+ FSEventsInodeMetaMod = 0x00400
+ FSEventsRenamed = 0x00800
+ FSEventsModified = 0x01000
+ FSEventsFinderInfoMod = 0x02000
+ FSEventsChangeOwner = 0x04000
+ FSEventsXattrMod = 0x08000
+ FSEventsIsFile = 0x10000
+ FSEventsIsDir = 0x20000
+ FSEventsIsSymlink = 0x40000
+)
+
+var osestr = map[Event]string{
+ FSEventsMustScanSubDirs: "notify.FSEventsMustScanSubDirs",
+ FSEventsUserDropped: "notify.FSEventsUserDropped",
+ FSEventsKernelDropped: "notify.FSEventsKernelDropped",
+ FSEventsEventIdsWrapped: "notify.FSEventsEventIdsWrapped",
+ FSEventsHistoryDone: "notify.FSEventsHistoryDone",
+ FSEventsRootChanged: "notify.FSEventsRootChanged",
+ FSEventsMount: "notify.FSEventsMount",
+ FSEventsUnmount: "notify.FSEventsUnmount",
+ FSEventsInodeMetaMod: "notify.FSEventsInodeMetaMod",
+ FSEventsFinderInfoMod: "notify.FSEventsFinderInfoMod",
+ FSEventsChangeOwner: "notify.FSEventsChangeOwner",
+ FSEventsXattrMod: "notify.FSEventsXattrMod",
+ FSEventsIsFile: "notify.FSEventsIsFile",
+ FSEventsIsDir: "notify.FSEventsIsDir",
+ FSEventsIsSymlink: "notify.FSEventsIsSymlink",
+}
+
+type event struct {
+ fse FSEvent
+ event Event
+}
+
+func (ei *event) Event() Event { return ei.event }
+func (ei *event) Path() string { return ei.fse.Path }
+func (ei *event) Sys() interface{} { return &ei.fse }
+func (ei *event) isDir() (bool, error) { return ei.fse.Flags&FSEventsIsDir != 0, nil }
diff --git a/vendor/github.com/rjeczalik/notify/event_inotify.go b/vendor/github.com/rjeczalik/notify/event_inotify.go
new file mode 100644
index 000000000..82954a9b3
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_inotify.go
@@ -0,0 +1,75 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build linux
+
+package notify
+
+import "syscall"
+
+// Platform independent event values.
+const (
+ osSpecificCreate Event = 0x100000 << iota
+ osSpecificRemove
+ osSpecificWrite
+ osSpecificRename
+ // internal
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit
+)
+
+// Inotify specific masks are legal, implemented events that are guaranteed to
+// work with notify package on linux-based systems.
+const (
+ InAccess = Event(syscall.IN_ACCESS) // File was accessed
+ InModify = Event(syscall.IN_MODIFY) // File was modified
+ InAttrib = Event(syscall.IN_ATTRIB) // Metadata changed
+ InCloseWrite = Event(syscall.IN_CLOSE_WRITE) // Writtable file was closed
+ InCloseNowrite = Event(syscall.IN_CLOSE_NOWRITE) // Unwrittable file closed
+ InOpen = Event(syscall.IN_OPEN) // File was opened
+ InMovedFrom = Event(syscall.IN_MOVED_FROM) // File was moved from X
+ InMovedTo = Event(syscall.IN_MOVED_TO) // File was moved to Y
+ InCreate = Event(syscall.IN_CREATE) // Subfile was created
+ InDelete = Event(syscall.IN_DELETE) // Subfile was deleted
+ InDeleteSelf = Event(syscall.IN_DELETE_SELF) // Self was deleted
+ InMoveSelf = Event(syscall.IN_MOVE_SELF) // Self was moved
+)
+
+var osestr = map[Event]string{
+ InAccess: "notify.InAccess",
+ InModify: "notify.InModify",
+ InAttrib: "notify.InAttrib",
+ InCloseWrite: "notify.InCloseWrite",
+ InCloseNowrite: "notify.InCloseNowrite",
+ InOpen: "notify.InOpen",
+ InMovedFrom: "notify.InMovedFrom",
+ InMovedTo: "notify.InMovedTo",
+ InCreate: "notify.InCreate",
+ InDelete: "notify.InDelete",
+ InDeleteSelf: "notify.InDeleteSelf",
+ InMoveSelf: "notify.InMoveSelf",
+}
+
+// Inotify behavior events are not **currently** supported by notify package.
+const (
+ inDontFollow = Event(syscall.IN_DONT_FOLLOW)
+ inExclUnlink = Event(syscall.IN_EXCL_UNLINK)
+ inMaskAdd = Event(syscall.IN_MASK_ADD)
+ inOneshot = Event(syscall.IN_ONESHOT)
+ inOnlydir = Event(syscall.IN_ONLYDIR)
+)
+
+type event struct {
+ sys syscall.InotifyEvent
+ path string
+ event Event
+}
+
+func (e *event) Event() Event { return e.event }
+func (e *event) Path() string { return e.path }
+func (e *event) Sys() interface{} { return &e.sys }
+func (e *event) isDir() (bool, error) { return e.sys.Mask&syscall.IN_ISDIR != 0, nil }
diff --git a/vendor/github.com/rjeczalik/notify/event_kqueue.go b/vendor/github.com/rjeczalik/notify/event_kqueue.go
new file mode 100644
index 000000000..82e2d8cca
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_kqueue.go
@@ -0,0 +1,59 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,kqueue dragonfly freebsd netbsd openbsd
+
+package notify
+
+import "syscall"
+
+// TODO(pblaszczyk): ensure in runtime notify built-in event values do not
+// overlap with platform-defined ones.
+
+// Platform independent event values.
+const (
+ osSpecificCreate Event = 0x0100 << iota
+ osSpecificRemove
+ osSpecificWrite
+ osSpecificRename
+ // internal
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit
+)
+
+const (
+ // NoteDelete is an even reported when the unlink() system call was called
+ // on the file referenced by the descriptor.
+ NoteDelete = Event(syscall.NOTE_DELETE)
+ // NoteWrite is an event reported when a write occurred on the file
+ // referenced by the descriptor.
+ NoteWrite = Event(syscall.NOTE_WRITE)
+ // NoteExtend is an event reported when the file referenced by the
+ // descriptor was extended.
+ NoteExtend = Event(syscall.NOTE_EXTEND)
+ // NoteAttrib is an event reported when the file referenced
+ // by the descriptor had its attributes changed.
+ NoteAttrib = Event(syscall.NOTE_ATTRIB)
+ // NoteLink is an event reported when the link count on the file changed.
+ NoteLink = Event(syscall.NOTE_LINK)
+ // NoteRename is an event reported when the file referenced
+ // by the descriptor was renamed.
+ NoteRename = Event(syscall.NOTE_RENAME)
+ // NoteRevoke is an event reported when access to the file was revoked via
+ // revoke(2) or the underlying file system was unmounted.
+ NoteRevoke = Event(syscall.NOTE_REVOKE)
+)
+
+var osestr = map[Event]string{
+ NoteDelete: "notify.NoteDelete",
+ NoteWrite: "notify.NoteWrite",
+ NoteExtend: "notify.NoteExtend",
+ NoteAttrib: "notify.NoteAttrib",
+ NoteLink: "notify.NoteLink",
+ NoteRename: "notify.NoteRename",
+ NoteRevoke: "notify.NoteRevoke",
+}
diff --git a/vendor/github.com/rjeczalik/notify/event_readdcw.go b/vendor/github.com/rjeczalik/notify/event_readdcw.go
new file mode 100644
index 000000000..11ead9e29
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_readdcw.go
@@ -0,0 +1,108 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build windows
+
+package notify
+
+import (
+ "os"
+ "path/filepath"
+ "syscall"
+)
+
+// Platform independent event values.
+const (
+ osSpecificCreate Event = 1 << (20 + iota)
+ osSpecificRemove
+ osSpecificWrite
+ osSpecificRename
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit
+ // dirmarker TODO(pknap)
+ dirmarker
+)
+
+// ReadDirectoryChangesW filters.
+const (
+ FileNotifyChangeFileName = Event(syscall.FILE_NOTIFY_CHANGE_FILE_NAME)
+ FileNotifyChangeDirName = Event(syscall.FILE_NOTIFY_CHANGE_DIR_NAME)
+ FileNotifyChangeAttributes = Event(syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES)
+ FileNotifyChangeSize = Event(syscall.FILE_NOTIFY_CHANGE_SIZE)
+ FileNotifyChangeLastWrite = Event(syscall.FILE_NOTIFY_CHANGE_LAST_WRITE)
+ FileNotifyChangeLastAccess = Event(syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS)
+ FileNotifyChangeCreation = Event(syscall.FILE_NOTIFY_CHANGE_CREATION)
+ FileNotifyChangeSecurity = Event(syscallFileNotifyChangeSecurity)
+)
+
+const (
+ fileNotifyChangeAll = 0x17f // logical sum of all FileNotifyChange* events.
+ fileNotifyChangeModified = fileNotifyChangeAll &^ (FileNotifyChangeFileName | FileNotifyChangeDirName)
+)
+
+// according to: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85).aspx
+// this flag should be declared in: http://golang.org/src/pkg/syscall/ztypes_windows.go
+const syscallFileNotifyChangeSecurity = 0x00000100
+
+// ReadDirectoryChangesW actions.
+const (
+ FileActionAdded = Event(syscall.FILE_ACTION_ADDED) << 12
+ FileActionRemoved = Event(syscall.FILE_ACTION_REMOVED) << 12
+ FileActionModified = Event(syscall.FILE_ACTION_MODIFIED) << 14
+ FileActionRenamedOldName = Event(syscall.FILE_ACTION_RENAMED_OLD_NAME) << 15
+ FileActionRenamedNewName = Event(syscall.FILE_ACTION_RENAMED_NEW_NAME) << 16
+)
+
+const fileActionAll = 0x7f000 // logical sum of all FileAction* events.
+
+var osestr = map[Event]string{
+ FileNotifyChangeFileName: "notify.FileNotifyChangeFileName",
+ FileNotifyChangeDirName: "notify.FileNotifyChangeDirName",
+ FileNotifyChangeAttributes: "notify.FileNotifyChangeAttributes",
+ FileNotifyChangeSize: "notify.FileNotifyChangeSize",
+ FileNotifyChangeLastWrite: "notify.FileNotifyChangeLastWrite",
+ FileNotifyChangeLastAccess: "notify.FileNotifyChangeLastAccess",
+ FileNotifyChangeCreation: "notify.FileNotifyChangeCreation",
+ FileNotifyChangeSecurity: "notify.FileNotifyChangeSecurity",
+
+ FileActionAdded: "notify.FileActionAdded",
+ FileActionRemoved: "notify.FileActionRemoved",
+ FileActionModified: "notify.FileActionModified",
+ FileActionRenamedOldName: "notify.FileActionRenamedOldName",
+ FileActionRenamedNewName: "notify.FileActionRenamedNewName",
+}
+
+const (
+ fTypeUnknown uint8 = iota
+ fTypeFile
+ fTypeDirectory
+)
+
+// TODO(ppknap) : doc.
+type event struct {
+ pathw []uint16
+ name string
+ ftype uint8
+ action uint32
+ filter uint32
+ e Event
+}
+
+func (e *event) Event() Event { return e.e }
+func (e *event) Path() string { return filepath.Join(syscall.UTF16ToString(e.pathw), e.name) }
+func (e *event) Sys() interface{} { return e.ftype }
+
+func (e *event) isDir() (bool, error) {
+ if e.ftype != fTypeUnknown {
+ return e.ftype == fTypeDirectory, nil
+ }
+ fi, err := os.Stat(e.Path())
+ if err != nil {
+ return false, err
+ }
+ return fi.IsDir(), nil
+}
diff --git a/vendor/github.com/rjeczalik/notify/event_stub.go b/vendor/github.com/rjeczalik/notify/event_stub.go
new file mode 100644
index 000000000..faac7c7cb
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_stub.go
@@ -0,0 +1,31 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build !darwin,!linux,!freebsd,!dragonfly,!netbsd,!openbsd,!windows
+// +build !kqueue,!solaris
+
+package notify
+
+// Platform independent event values.
+const (
+ osSpecificCreate Event = 1 << iota
+ osSpecificRemove
+ osSpecificWrite
+ osSpecificRename
+ // internal
+ // recursive is used to distinguish recursive eventsets from non-recursive ones
+ recursive
+ // omit is used for dispatching internal events; only those events are sent
+ // for which both the event and the watchpoint has omit in theirs event sets.
+ omit
+)
+
+var osestr = map[Event]string{}
+
+type event struct{}
+
+func (e *event) Event() (_ Event) { return }
+func (e *event) Path() (_ string) { return }
+func (e *event) Sys() (_ interface{}) { return }
+func (e *event) isDir() (_ bool, _ error) { return }
diff --git a/vendor/github.com/rjeczalik/notify/event_trigger.go b/vendor/github.com/rjeczalik/notify/event_trigger.go
new file mode 100644
index 000000000..94470fd37
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/event_trigger.go
@@ -0,0 +1,22 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,kqueue dragonfly freebsd netbsd openbsd solaris
+
+package notify
+
+type event struct {
+ p string
+ e Event
+ d bool
+ pe interface{}
+}
+
+func (e *event) Event() Event { return e.e }
+
+func (e *event) Path() string { return e.p }
+
+func (e *event) Sys() interface{} { return e.pe }
+
+func (e *event) isDir() (bool, error) { return e.d, nil }
diff --git a/vendor/github.com/rjeczalik/notify/node.go b/vendor/github.com/rjeczalik/notify/node.go
new file mode 100644
index 000000000..29c1bb20a
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/node.go
@@ -0,0 +1,272 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import (
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+)
+
+var errSkip = errors.New("notify: skip")
+
+type walkPathFunc func(nd node, isbase bool) error
+
+type walkFunc func(node) error
+
+func errnotexist(name string) error {
+ return &os.PathError{
+ Op: "Node",
+ Path: name,
+ Err: os.ErrNotExist,
+ }
+}
+
+type node struct {
+ Name string
+ Watch watchpoint
+ Child map[string]node
+}
+
+func newnode(name string) node {
+ return node{
+ Name: name,
+ Watch: make(watchpoint),
+ Child: make(map[string]node),
+ }
+}
+
+func (nd node) addchild(name, base string) node {
+ child, ok := nd.Child[base]
+ if !ok {
+ child = newnode(name)
+ nd.Child[base] = child
+ }
+ return child
+}
+
+func (nd node) Add(name string) node {
+ i := indexbase(nd.Name, name)
+ if i == -1 {
+ return node{}
+ }
+ for j := indexSep(name[i:]); j != -1; j = indexSep(name[i:]) {
+ nd = nd.addchild(name[:i+j], name[i:i+j])
+ i += j + 1
+ }
+ return nd.addchild(name, name[i:])
+}
+
+func (nd node) AddDir(fn walkFunc) error {
+ stack := []node{nd}
+Traverse:
+ for n := len(stack); n != 0; n = len(stack) {
+ nd, stack = stack[n-1], stack[:n-1]
+ switch err := fn(nd); err {
+ case nil:
+ case errSkip:
+ continue Traverse
+ default:
+ return fmt.Errorf("error while traversing %q: %v", nd.Name, err)
+ }
+ // TODO(rjeczalik): tolerate open failures - add failed names to
+ // AddDirError and notify users which names are not added to the tree.
+ fi, err := ioutil.ReadDir(nd.Name)
+ if err != nil {
+ return err
+ }
+ for _, fi := range fi {
+ if fi.Mode()&(os.ModeSymlink|os.ModeDir) == os.ModeDir {
+ name := filepath.Join(nd.Name, fi.Name())
+ stack = append(stack, nd.addchild(name, name[len(nd.Name)+1:]))
+ }
+ }
+ }
+ return nil
+}
+
+func (nd node) Get(name string) (node, error) {
+ i := indexbase(nd.Name, name)
+ if i == -1 {
+ return node{}, errnotexist(name)
+ }
+ ok := false
+ for j := indexSep(name[i:]); j != -1; j = indexSep(name[i:]) {
+ if nd, ok = nd.Child[name[i:i+j]]; !ok {
+ return node{}, errnotexist(name)
+ }
+ i += j + 1
+ }
+ if nd, ok = nd.Child[name[i:]]; !ok {
+ return node{}, errnotexist(name)
+ }
+ return nd, nil
+}
+
+func (nd node) Del(name string) error {
+ i := indexbase(nd.Name, name)
+ if i == -1 {
+ return errnotexist(name)
+ }
+ stack := []node{nd}
+ ok := false
+ for j := indexSep(name[i:]); j != -1; j = indexSep(name[i:]) {
+ if nd, ok = nd.Child[name[i:i+j]]; !ok {
+ return errnotexist(name[:i+j])
+ }
+ stack = append(stack, nd)
+ }
+ if nd, ok = nd.Child[name[i:]]; !ok {
+ return errnotexist(name)
+ }
+ nd.Child = nil
+ nd.Watch = nil
+ for name, i = base(nd.Name), len(stack); i != 0; name, i = base(nd.Name), i-1 {
+ nd = stack[i-1]
+ if nd := nd.Child[name]; len(nd.Watch) > 1 || len(nd.Child) != 0 {
+ break
+ } else {
+ nd.Child = nil
+ nd.Watch = nil
+ }
+ delete(nd.Child, name)
+ }
+ return nil
+}
+
+func (nd node) Walk(fn walkFunc) error {
+ stack := []node{nd}
+Traverse:
+ for n := len(stack); n != 0; n = len(stack) {
+ nd, stack = stack[n-1], stack[:n-1]
+ switch err := fn(nd); err {
+ case nil:
+ case errSkip:
+ continue Traverse
+ default:
+ return err
+ }
+ for name, nd := range nd.Child {
+ if name == "" {
+ // Node storing inactive watchpoints has empty name, skip it
+ // form traversing. Root node has also an empty name, but it
+ // never has a parent node.
+ continue
+ }
+ stack = append(stack, nd)
+ }
+ }
+ return nil
+}
+
+func (nd node) WalkPath(name string, fn walkPathFunc) error {
+ i := indexbase(nd.Name, name)
+ if i == -1 {
+ return errnotexist(name)
+ }
+ ok := false
+ for j := indexSep(name[i:]); j != -1; j = indexSep(name[i:]) {
+ switch err := fn(nd, false); err {
+ case nil:
+ case errSkip:
+ return nil
+ default:
+ return err
+ }
+ if nd, ok = nd.Child[name[i:i+j]]; !ok {
+ return errnotexist(name[:i+j])
+ }
+ i += j + 1
+ }
+ switch err := fn(nd, false); err {
+ case nil:
+ case errSkip:
+ return nil
+ default:
+ return err
+ }
+ if nd, ok = nd.Child[name[i:]]; !ok {
+ return errnotexist(name)
+ }
+ switch err := fn(nd, true); err {
+ case nil, errSkip:
+ return nil
+ default:
+ return err
+ }
+}
+
+type root struct {
+ nd node
+}
+
+func (r root) addroot(name string) node {
+ if vol := filepath.VolumeName(name); vol != "" {
+ root, ok := r.nd.Child[vol]
+ if !ok {
+ root = r.nd.addchild(vol, vol)
+ }
+ return root
+ }
+ return r.nd
+}
+
+func (r root) root(name string) (node, error) {
+ if vol := filepath.VolumeName(name); vol != "" {
+ nd, ok := r.nd.Child[vol]
+ if !ok {
+ return node{}, errnotexist(name)
+ }
+ return nd, nil
+ }
+ return r.nd, nil
+}
+
+func (r root) Add(name string) node {
+ return r.addroot(name).Add(name)
+}
+
+func (r root) AddDir(dir string, fn walkFunc) error {
+ return r.Add(dir).AddDir(fn)
+}
+
+func (r root) Del(name string) error {
+ nd, err := r.root(name)
+ if err != nil {
+ return err
+ }
+ return nd.Del(name)
+}
+
+func (r root) Get(name string) (node, error) {
+ nd, err := r.root(name)
+ if err != nil {
+ return node{}, err
+ }
+ if nd.Name != name {
+ if nd, err = nd.Get(name); err != nil {
+ return node{}, err
+ }
+ }
+ return nd, nil
+}
+
+func (r root) Walk(name string, fn walkFunc) error {
+ nd, err := r.Get(name)
+ if err != nil {
+ return err
+ }
+ return nd.Walk(fn)
+}
+
+func (r root) WalkPath(name string, fn walkPathFunc) error {
+ nd, err := r.root(name)
+ if err != nil {
+ return err
+ }
+ return nd.WalkPath(name, fn)
+}
diff --git a/vendor/github.com/rjeczalik/notify/notify.go b/vendor/github.com/rjeczalik/notify/notify.go
new file mode 100644
index 000000000..dbf1e7bc2
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/notify.go
@@ -0,0 +1,74 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// BUG(rjeczalik): Notify does not collect watchpoints, when underlying watches
+// were removed by their os-specific watcher implementations. Instead users are
+// advised to listen on persistant paths to have guarantee they receive events
+// for the whole lifetime of their applications (to discuss see #69).
+
+// BUG(ppknap): Linux (inotify) does not support watcher behavior masks like
+// InOneshot, InOnlydir etc. Instead users are advised to perform the filtering
+// themselves (to discuss see #71).
+
+// BUG(ppknap): Notify was not tested for short path name support under Windows
+// (ReadDirectoryChangesW).
+
+// BUG(ppknap): Windows (ReadDirectoryChangesW) cannot recognize which notification
+// triggers FileActionModified event. (to discuss see #75).
+
+package notify
+
+var defaultTree = newTree()
+
+// Watch sets up a watchpoint on path listening for events given by the events
+// argument.
+//
+// File or directory given by the path must exist, otherwise Watch will fail
+// with non-nil error. Notify resolves, for its internal purpose, any symlinks
+// the provided path may contain, so it may fail if the symlinks form a cycle.
+// It does so, since not all watcher implementations treat passed paths as-is.
+// E.g. FSEvents reports a real path for every event, setting a watchpoint
+// on /tmp will report events with paths rooted at /private/tmp etc.
+//
+// The c almost always is a buffered channel. Watch will not block sending to c
+// - the caller must ensure that c has sufficient buffer space to keep up with
+// the expected event rate.
+//
+// It is allowed to pass the same channel multiple times with different event
+// list or different paths. Calling Watch with different event lists for a single
+// watchpoint expands its event set. The only way to shrink it, is to call
+// Stop on its channel.
+//
+// Calling Watch with empty event list does expand nor shrink watchpoint's event
+// set. If c is the first channel to listen for events on the given path, Watch
+// will seamlessly create a watch on the filesystem.
+//
+// Notify dispatches copies of single filesystem event to all channels registered
+// for each path. If a single filesystem event contains multiple coalesced events,
+// each of them is dispatched separately. E.g. the following filesystem change:
+//
+// ~ $ echo Hello > Notify.txt
+//
+// dispatches two events - notify.Create and notify.Write. However, it may depend
+// on the underlying watcher implementation whether OS reports both of them.
+//
+// Windows and recursive watches
+//
+// If a directory which path was used to create recursive watch under Windows
+// gets deleted, the OS will not report such event. It is advised to keep in
+// mind this limitation while setting recursive watchpoints for your application,
+// e.g. use persistant paths like %userprofile% or watch additionally parent
+// directory of a recursive watchpoint in order to receive delete events for it.
+func Watch(path string, c chan<- EventInfo, events ...Event) error {
+ return defaultTree.Watch(path, c, events...)
+}
+
+// Stop removes all watchpoints registered for c. All underlying watches are
+// also removed, for which c was the last channel listening for events.
+//
+// Stop does not close c. When Stop returns, it is guranteed that c will
+// receive no more signals.
+func Stop(c chan<- EventInfo) {
+ defaultTree.Stop(c)
+}
diff --git a/vendor/github.com/rjeczalik/notify/tree.go b/vendor/github.com/rjeczalik/notify/tree.go
new file mode 100644
index 000000000..cd6afd60d
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/tree.go
@@ -0,0 +1,22 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+const buffer = 128
+
+type tree interface {
+ Watch(string, chan<- EventInfo, ...Event) error
+ Stop(chan<- EventInfo)
+ Close() error
+}
+
+func newTree() tree {
+ c := make(chan EventInfo, buffer)
+ w := newWatcher(c)
+ if rw, ok := w.(recursiveWatcher); ok {
+ return newRecursiveTree(rw, c)
+ }
+ return newNonrecursiveTree(w, c, make(chan EventInfo, buffer))
+}
diff --git a/vendor/github.com/rjeczalik/notify/tree_nonrecursive.go b/vendor/github.com/rjeczalik/notify/tree_nonrecursive.go
new file mode 100644
index 000000000..dfa72d1d2
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/tree_nonrecursive.go
@@ -0,0 +1,292 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import "sync"
+
+// nonrecursiveTree TODO(rjeczalik)
+type nonrecursiveTree struct {
+ rw sync.RWMutex // protects root
+ root root
+ w watcher
+ c chan EventInfo
+ rec chan EventInfo
+}
+
+// newNonrecursiveTree TODO(rjeczalik)
+func newNonrecursiveTree(w watcher, c, rec chan EventInfo) *nonrecursiveTree {
+ if rec == nil {
+ rec = make(chan EventInfo, buffer)
+ }
+ t := &nonrecursiveTree{
+ root: root{nd: newnode("")},
+ w: w,
+ c: c,
+ rec: rec,
+ }
+ go t.dispatch(c)
+ go t.internal(rec)
+ return t
+}
+
+// dispatch TODO(rjeczalik)
+func (t *nonrecursiveTree) dispatch(c <-chan EventInfo) {
+ for ei := range c {
+ dbgprintf("dispatching %v on %q", ei.Event(), ei.Path())
+ go func(ei EventInfo) {
+ var nd node
+ var isrec bool
+ dir, base := split(ei.Path())
+ fn := func(it node, isbase bool) error {
+ isrec = isrec || it.Watch.IsRecursive()
+ if isbase {
+ nd = it
+ } else {
+ it.Watch.Dispatch(ei, recursive)
+ }
+ return nil
+ }
+ t.rw.RLock()
+ // Notify recursive watchpoints found on the path.
+ if err := t.root.WalkPath(dir, fn); err != nil {
+ dbgprint("dispatch did not reach leaf:", err)
+ t.rw.RUnlock()
+ return
+ }
+ // Notify parent watchpoint.
+ nd.Watch.Dispatch(ei, 0)
+ isrec = isrec || nd.Watch.IsRecursive()
+ // If leaf watchpoint exists, notify it.
+ if nd, ok := nd.Child[base]; ok {
+ isrec = isrec || nd.Watch.IsRecursive()
+ nd.Watch.Dispatch(ei, 0)
+ }
+ t.rw.RUnlock()
+ // If the event describes newly leaf directory created within
+ if !isrec || ei.Event() != Create {
+ return
+ }
+ if ok, err := ei.(isDirer).isDir(); !ok || err != nil {
+ return
+ }
+ t.rec <- ei
+ }(ei)
+ }
+}
+
+// internal TODO(rjeczalik)
+func (t *nonrecursiveTree) internal(rec <-chan EventInfo) {
+ for ei := range rec {
+ var nd node
+ var eset = internal
+ t.rw.Lock()
+ t.root.WalkPath(ei.Path(), func(it node, _ bool) error {
+ if e := it.Watch[t.rec]; e != 0 && e > eset {
+ eset = e
+ }
+ nd = it
+ return nil
+ })
+ if eset == internal {
+ t.rw.Unlock()
+ continue
+ }
+ err := nd.Add(ei.Path()).AddDir(t.recFunc(eset))
+ t.rw.Unlock()
+ if err != nil {
+ dbgprintf("internal(%p) error: %v", rec, err)
+ }
+ }
+}
+
+// watchAdd TODO(rjeczalik)
+func (t *nonrecursiveTree) watchAdd(nd node, c chan<- EventInfo, e Event) eventDiff {
+ if e&recursive != 0 {
+ diff := nd.Watch.Add(t.rec, e|Create|omit)
+ nd.Watch.Add(c, e)
+ return diff
+ }
+ return nd.Watch.Add(c, e)
+}
+
+// watchDelMin TODO(rjeczalik)
+func (t *nonrecursiveTree) watchDelMin(min Event, nd node, c chan<- EventInfo, e Event) eventDiff {
+ old, ok := nd.Watch[t.rec]
+ if ok {
+ nd.Watch[t.rec] = min
+ }
+ diff := nd.Watch.Del(c, e)
+ if ok {
+ switch old &^= diff[0] &^ diff[1]; {
+ case old|internal == internal:
+ delete(nd.Watch, t.rec)
+ if set, ok := nd.Watch[nil]; ok && len(nd.Watch) == 1 && set == 0 {
+ delete(nd.Watch, nil)
+ }
+ default:
+ nd.Watch.Add(t.rec, old|Create)
+ switch {
+ case diff == none:
+ case diff[1]|Create == diff[0]:
+ diff = none
+ default:
+ diff[1] |= Create
+ }
+ }
+ }
+ return diff
+}
+
+// watchDel TODO(rjeczalik)
+func (t *nonrecursiveTree) watchDel(nd node, c chan<- EventInfo, e Event) eventDiff {
+ return t.watchDelMin(0, nd, c, e)
+}
+
+// Watch TODO(rjeczalik)
+func (t *nonrecursiveTree) Watch(path string, c chan<- EventInfo, events ...Event) error {
+ if c == nil {
+ panic("notify: Watch using nil channel")
+ }
+ // Expanding with empty event set is a nop.
+ if len(events) == 0 {
+ return nil
+ }
+ path, isrec, err := cleanpath(path)
+ if err != nil {
+ return err
+ }
+ eset := joinevents(events)
+ t.rw.Lock()
+ defer t.rw.Unlock()
+ nd := t.root.Add(path)
+ if isrec {
+ return t.watchrec(nd, c, eset|recursive)
+ }
+ return t.watch(nd, c, eset)
+}
+
+func (t *nonrecursiveTree) watch(nd node, c chan<- EventInfo, e Event) (err error) {
+ diff := nd.Watch.Add(c, e)
+ switch {
+ case diff == none:
+ return nil
+ case diff[1] == 0:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("eset is empty: " + nd.Name)
+ case diff[0] == 0:
+ err = t.w.Watch(nd.Name, diff[1])
+ default:
+ err = t.w.Rewatch(nd.Name, diff[0], diff[1])
+ }
+ if err != nil {
+ nd.Watch.Del(c, diff.Event())
+ return err
+ }
+ return nil
+}
+
+func (t *nonrecursiveTree) recFunc(e Event) walkFunc {
+ return func(nd node) error {
+ switch diff := nd.Watch.Add(t.rec, e|omit|Create); {
+ case diff == none:
+ case diff[1] == 0:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("eset is empty: " + nd.Name)
+ case diff[0] == 0:
+ t.w.Watch(nd.Name, diff[1])
+ default:
+ t.w.Rewatch(nd.Name, diff[0], diff[1])
+ }
+ return nil
+ }
+}
+
+func (t *nonrecursiveTree) watchrec(nd node, c chan<- EventInfo, e Event) error {
+ var traverse func(walkFunc) error
+ // Non-recursive tree listens on Create event for every recursive
+ // watchpoint in order to automagically set a watch for every
+ // created directory.
+ switch diff := nd.Watch.dryAdd(t.rec, e|Create); {
+ case diff == none:
+ t.watchAdd(nd, c, e)
+ nd.Watch.Add(t.rec, e|omit|Create)
+ return nil
+ case diff[1] == 0:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("eset is empty: " + nd.Name)
+ case diff[0] == 0:
+ // TODO(rjeczalik): BFS into directories and skip subtree as soon as first
+ // recursive watchpoint is encountered.
+ traverse = nd.AddDir
+ default:
+ traverse = nd.Walk
+ }
+ // TODO(rjeczalik): account every path that failed to be (re)watched
+ // and retry.
+ if err := traverse(t.recFunc(e)); err != nil {
+ return err
+ }
+ t.watchAdd(nd, c, e)
+ return nil
+}
+
+type walkWatchpointFunc func(Event, node) error
+
+func (t *nonrecursiveTree) walkWatchpoint(nd node, fn walkWatchpointFunc) error {
+ type minode struct {
+ min Event
+ nd node
+ }
+ mnd := minode{nd: nd}
+ stack := []minode{mnd}
+Traverse:
+ for n := len(stack); n != 0; n = len(stack) {
+ mnd, stack = stack[n-1], stack[:n-1]
+ // There must be no recursive watchpoints if the node has no watchpoints
+ // itself (every node in subtree rooted at recursive watchpoints must
+ // have at least nil (total) and t.rec watchpoints).
+ if len(mnd.nd.Watch) != 0 {
+ switch err := fn(mnd.min, mnd.nd); err {
+ case nil:
+ case errSkip:
+ continue Traverse
+ default:
+ return err
+ }
+ }
+ for _, nd := range mnd.nd.Child {
+ stack = append(stack, minode{mnd.nd.Watch[t.rec], nd})
+ }
+ }
+ return nil
+}
+
+// Stop TODO(rjeczalik)
+func (t *nonrecursiveTree) Stop(c chan<- EventInfo) {
+ fn := func(min Event, nd node) error {
+ // TODO(rjeczalik): aggregate watcher errors and retry; in worst case
+ // forward to the user.
+ switch diff := t.watchDelMin(min, nd, c, all); {
+ case diff == none:
+ return nil
+ case diff[1] == 0:
+ t.w.Unwatch(nd.Name)
+ default:
+ t.w.Rewatch(nd.Name, diff[0], diff[1])
+ }
+ return nil
+ }
+ t.rw.Lock()
+ err := t.walkWatchpoint(t.root.nd, fn) // TODO(rjeczalik): store max root per c
+ t.rw.Unlock()
+ dbgprintf("Stop(%p) error: %v\n", c, err)
+}
+
+// Close TODO(rjeczalik)
+func (t *nonrecursiveTree) Close() error {
+ err := t.w.Close()
+ close(t.c)
+ return err
+}
diff --git a/vendor/github.com/rjeczalik/notify/tree_recursive.go b/vendor/github.com/rjeczalik/notify/tree_recursive.go
new file mode 100644
index 000000000..7f00dfe35
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/tree_recursive.go
@@ -0,0 +1,354 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import "sync"
+
+// watchAdd TODO(rjeczalik)
+func watchAdd(nd node, c chan<- EventInfo, e Event) eventDiff {
+ diff := nd.Watch.Add(c, e)
+ if wp := nd.Child[""].Watch; len(wp) != 0 {
+ e = wp.Total()
+ diff[0] |= e
+ diff[1] |= e
+ if diff[0] == diff[1] {
+ return none
+ }
+ }
+ return diff
+}
+
+// watchAddInactive TODO(rjeczalik)
+func watchAddInactive(nd node, c chan<- EventInfo, e Event) eventDiff {
+ wp := nd.Child[""].Watch
+ if wp == nil {
+ wp = make(watchpoint)
+ nd.Child[""] = node{Watch: wp}
+ }
+ diff := wp.Add(c, e)
+ e = nd.Watch.Total()
+ diff[0] |= e
+ diff[1] |= e
+ if diff[0] == diff[1] {
+ return none
+ }
+ return diff
+}
+
+// watchCopy TODO(rjeczalik)
+func watchCopy(src, dst node) {
+ for c, e := range src.Watch {
+ if c == nil {
+ continue
+ }
+ watchAddInactive(dst, c, e)
+ }
+ if wpsrc := src.Child[""].Watch; len(wpsrc) != 0 {
+ wpdst := dst.Child[""].Watch
+ for c, e := range wpsrc {
+ if c == nil {
+ continue
+ }
+ wpdst.Add(c, e)
+ }
+ }
+}
+
+// watchDel TODO(rjeczalik)
+func watchDel(nd node, c chan<- EventInfo, e Event) eventDiff {
+ diff := nd.Watch.Del(c, e)
+ if wp := nd.Child[""].Watch; len(wp) != 0 {
+ diffInactive := wp.Del(c, e)
+ e = wp.Total()
+ // TODO(rjeczalik): add e if e != all?
+ diff[0] |= diffInactive[0] | e
+ diff[1] |= diffInactive[1] | e
+ if diff[0] == diff[1] {
+ return none
+ }
+ }
+ return diff
+}
+
+// watchTotal TODO(rjeczalik)
+func watchTotal(nd node) Event {
+ e := nd.Watch.Total()
+ if wp := nd.Child[""].Watch; len(wp) != 0 {
+ e |= wp.Total()
+ }
+ return e
+}
+
+// watchIsRecursive TODO(rjeczalik)
+func watchIsRecursive(nd node) bool {
+ ok := nd.Watch.IsRecursive()
+ // TODO(rjeczalik): add a test for len(wp) != 0 change the condition.
+ if wp := nd.Child[""].Watch; len(wp) != 0 {
+ // If a watchpoint holds inactive watchpoints, it means it's a parent
+ // one, which is recursive by nature even though it may be not recursive
+ // itself.
+ ok = true
+ }
+ return ok
+}
+
+// recursiveTree TODO(rjeczalik)
+type recursiveTree struct {
+ rw sync.RWMutex // protects root
+ root root
+ // TODO(rjeczalik): merge watcher + recursiveWatcher after #5 and #6
+ w interface {
+ watcher
+ recursiveWatcher
+ }
+ c chan EventInfo
+}
+
+// newRecursiveTree TODO(rjeczalik)
+func newRecursiveTree(w recursiveWatcher, c chan EventInfo) *recursiveTree {
+ t := &recursiveTree{
+ root: root{nd: newnode("")},
+ w: struct {
+ watcher
+ recursiveWatcher
+ }{w.(watcher), w},
+ c: c,
+ }
+ go t.dispatch()
+ return t
+}
+
+// dispatch TODO(rjeczalik)
+func (t *recursiveTree) dispatch() {
+ for ei := range t.c {
+ dbgprintf("dispatching %v on %q", ei.Event(), ei.Path())
+ go func(ei EventInfo) {
+ nd, ok := node{}, false
+ dir, base := split(ei.Path())
+ fn := func(it node, isbase bool) error {
+ if isbase {
+ nd = it
+ } else {
+ it.Watch.Dispatch(ei, recursive)
+ }
+ return nil
+ }
+ t.rw.RLock()
+ defer t.rw.RUnlock()
+ // Notify recursive watchpoints found on the path.
+ if err := t.root.WalkPath(dir, fn); err != nil {
+ dbgprint("dispatch did not reach leaf:", err)
+ return
+ }
+ // Notify parent watchpoint.
+ nd.Watch.Dispatch(ei, 0)
+ // If leaf watchpoint exists, notify it.
+ if nd, ok = nd.Child[base]; ok {
+ nd.Watch.Dispatch(ei, 0)
+ }
+ }(ei)
+ }
+}
+
+// Watch TODO(rjeczalik)
+func (t *recursiveTree) Watch(path string, c chan<- EventInfo, events ...Event) error {
+ if c == nil {
+ panic("notify: Watch using nil channel")
+ }
+ // Expanding with empty event set is a nop.
+ if len(events) == 0 {
+ return nil
+ }
+ path, isrec, err := cleanpath(path)
+ if err != nil {
+ return err
+ }
+ eventset := joinevents(events)
+ if isrec {
+ eventset |= recursive
+ }
+ t.rw.Lock()
+ defer t.rw.Unlock()
+ // case 1: cur is a child
+ //
+ // Look for parent watch which already covers the given path.
+ parent := node{}
+ self := false
+ err = t.root.WalkPath(path, func(nd node, isbase bool) error {
+ if watchTotal(nd) != 0 {
+ parent = nd
+ self = isbase
+ return errSkip
+ }
+ return nil
+ })
+ cur := t.root.Add(path) // add after the walk, so it's less to traverse
+ if err == nil && parent.Watch != nil {
+ // Parent watch found. Register inactive watchpoint, so we have enough
+ // information to shrink the eventset on eventual Stop.
+ // return t.resetwatchpoint(parent, parent, c, eventset|inactive)
+ var diff eventDiff
+ if self {
+ diff = watchAdd(cur, c, eventset)
+ } else {
+ diff = watchAddInactive(parent, c, eventset)
+ }
+ switch {
+ case diff == none:
+ // the parent watchpoint already covers requested subtree with its
+ // eventset
+ case diff[0] == 0:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("dangling watchpoint: " + parent.Name)
+ default:
+ if isrec || watchIsRecursive(parent) {
+ err = t.w.RecursiveRewatch(parent.Name, parent.Name, diff[0], diff[1])
+ } else {
+ err = t.w.Rewatch(parent.Name, diff[0], diff[1])
+ }
+ if err != nil {
+ watchDel(parent, c, diff.Event())
+ return err
+ }
+ watchAdd(cur, c, eventset)
+ // TODO(rjeczalik): account top-most path for c
+ return nil
+ }
+ if !self {
+ watchAdd(cur, c, eventset)
+ }
+ return nil
+ }
+ // case 2: cur is new parent
+ //
+ // Look for children nodes, unwatch n-1 of them and rewatch the last one.
+ var children []node
+ fn := func(nd node) error {
+ if len(nd.Watch) == 0 {
+ return nil
+ }
+ children = append(children, nd)
+ return errSkip
+ }
+ switch must(cur.Walk(fn)); len(children) {
+ case 0:
+ // no child watches, cur holds a new watch
+ case 1:
+ watchAdd(cur, c, eventset) // TODO(rjeczalik): update cache c subtree root?
+ watchCopy(children[0], cur)
+ err = t.w.RecursiveRewatch(children[0].Name, cur.Name, watchTotal(children[0]),
+ watchTotal(cur))
+ if err != nil {
+ // Clean inactive watchpoint. The c chan did not exist before.
+ cur.Child[""] = node{}
+ delete(cur.Watch, c)
+ return err
+ }
+ return nil
+ default:
+ watchAdd(cur, c, eventset)
+ // Copy children inactive watchpoints to the new parent.
+ for _, nd := range children {
+ watchCopy(nd, cur)
+ }
+ // Watch parent subtree.
+ if err = t.w.RecursiveWatch(cur.Name, watchTotal(cur)); err != nil {
+ // Clean inactive watchpoint. The c chan did not exist before.
+ cur.Child[""] = node{}
+ delete(cur.Watch, c)
+ return err
+ }
+ // Unwatch children subtrees.
+ var e error
+ for _, nd := range children {
+ if watchIsRecursive(nd) {
+ e = t.w.RecursiveUnwatch(nd.Name)
+ } else {
+ e = t.w.Unwatch(nd.Name)
+ }
+ if e != nil {
+ err = nonil(err, e)
+ // TODO(rjeczalik): child is still watched, warn all its watchpoints
+ // about possible duplicate events via Error event
+ }
+ }
+ return err
+ }
+ // case 3: cur is new, alone node
+ switch diff := watchAdd(cur, c, eventset); {
+ case diff == none:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("watch requested but no parent watchpoint found: " + cur.Name)
+ case diff[0] == 0:
+ if isrec {
+ err = t.w.RecursiveWatch(cur.Name, diff[1])
+ } else {
+ err = t.w.Watch(cur.Name, diff[1])
+ }
+ if err != nil {
+ watchDel(cur, c, diff.Event())
+ return err
+ }
+ default:
+ // TODO(rjeczalik): cleanup this panic after implementation is stable
+ panic("watch requested but no parent watchpoint found: " + cur.Name)
+ }
+ return nil
+}
+
+// Stop TODO(rjeczalik)
+//
+// TODO(rjeczalik): Split parent watchpoint - transfer watches to children
+// if parent is no longer needed. This carries a risk that underlying
+// watcher calls could fail - reconsider if it's worth the effort.
+func (t *recursiveTree) Stop(c chan<- EventInfo) {
+ var err error
+ fn := func(nd node) (e error) {
+ diff := watchDel(nd, c, all)
+ switch {
+ case diff == none && watchTotal(nd) == 0:
+ // TODO(rjeczalik): There's no watchpoints deeper in the tree,
+ // probably we should remove the nodes as well.
+ return nil
+ case diff == none:
+ // Removing c from nd does not require shrinking its eventset.
+ case diff[1] == 0:
+ if watchIsRecursive(nd) {
+ e = t.w.RecursiveUnwatch(nd.Name)
+ } else {
+ e = t.w.Unwatch(nd.Name)
+ }
+ default:
+ if watchIsRecursive(nd) {
+ e = t.w.RecursiveRewatch(nd.Name, nd.Name, diff[0], diff[1])
+ } else {
+ e = t.w.Rewatch(nd.Name, diff[0], diff[1])
+ }
+ }
+ fn := func(nd node) error {
+ watchDel(nd, c, all)
+ return nil
+ }
+ err = nonil(err, e, nd.Walk(fn))
+ // TODO(rjeczalik): if e != nil store dummy chan in nd.Watch just to
+ // retry un/rewatching next time and/or let the user handle the failure
+ // vie Error event?
+ return errSkip
+ }
+ t.rw.Lock()
+ e := t.root.Walk("", fn) // TODO(rjeczalik): use max root per c
+ t.rw.Unlock()
+ if e != nil {
+ err = nonil(err, e)
+ }
+ dbgprintf("Stop(%p) error: %v\n", c, err)
+}
+
+// Close TODO(rjeczalik)
+func (t *recursiveTree) Close() error {
+ err := t.w.Close()
+ close(t.c)
+ return err
+}
diff --git a/vendor/github.com/rjeczalik/notify/util.go b/vendor/github.com/rjeczalik/notify/util.go
new file mode 100644
index 000000000..67e01fbbd
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/util.go
@@ -0,0 +1,150 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import (
+ "errors"
+ "os"
+ "path/filepath"
+ "strings"
+)
+
+const all = ^Event(0)
+const sep = string(os.PathSeparator)
+
+var errDepth = errors.New("exceeded allowed iteration count (circular symlink?)")
+
+func min(i, j int) int {
+ if i > j {
+ return j
+ }
+ return i
+}
+
+func max(i, j int) int {
+ if i < j {
+ return j
+ }
+ return i
+}
+
+// must panics if err is non-nil.
+func must(err error) {
+ if err != nil {
+ panic(err)
+ }
+}
+
+// nonil gives first non-nil error from the given arguments.
+func nonil(err ...error) error {
+ for _, err := range err {
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func cleanpath(path string) (realpath string, isrec bool, err error) {
+ if strings.HasSuffix(path, "...") {
+ isrec = true
+ path = path[:len(path)-3]
+ }
+ if path, err = filepath.Abs(path); err != nil {
+ return "", false, err
+ }
+ if path, err = canonical(path); err != nil {
+ return "", false, err
+ }
+ return path, isrec, nil
+}
+
+// canonical resolves any symlink in the given path and returns it in a clean form.
+// It expects the path to be absolute. It fails to resolve circular symlinks by
+// maintaining a simple iteration limit.
+func canonical(p string) (string, error) {
+ p, err := filepath.Abs(p)
+ if err != nil {
+ return "", err
+ }
+ for i, j, depth := 1, 0, 1; i < len(p); i, depth = i+1, depth+1 {
+ if depth > 128 {
+ return "", &os.PathError{Op: "canonical", Path: p, Err: errDepth}
+ }
+ if j = strings.IndexRune(p[i:], '/'); j == -1 {
+ j, i = i, len(p)
+ } else {
+ j, i = i, i+j
+ }
+ fi, err := os.Lstat(p[:i])
+ if err != nil {
+ return "", err
+ }
+ if fi.Mode()&os.ModeSymlink == os.ModeSymlink {
+ s, err := os.Readlink(p[:i])
+ if err != nil {
+ return "", err
+ }
+ if filepath.IsAbs(s) {
+ p = "/" + s + p[i:]
+ } else {
+ p = p[:j] + s + p[i:]
+ }
+ i = 1 // no guarantee s is canonical, start all over
+ }
+ }
+ return filepath.Clean(p), nil
+}
+
+func joinevents(events []Event) (e Event) {
+ if len(events) == 0 {
+ e = All
+ } else {
+ for _, event := range events {
+ e |= event
+ }
+ }
+ return
+}
+
+func split(s string) (string, string) {
+ if i := lastIndexSep(s); i != -1 {
+ return s[:i], s[i+1:]
+ }
+ return "", s
+}
+
+func base(s string) string {
+ if i := lastIndexSep(s); i != -1 {
+ return s[i+1:]
+ }
+ return s
+}
+
+func indexbase(root, name string) int {
+ if n, m := len(root), len(name); m >= n && name[:n] == root &&
+ (n == m || name[n] == os.PathSeparator) {
+ return min(n+1, m)
+ }
+ return -1
+}
+
+func indexSep(s string) int {
+ for i := 0; i < len(s); i++ {
+ if s[i] == os.PathSeparator {
+ return i
+ }
+ }
+ return -1
+}
+
+func lastIndexSep(s string) int {
+ for i := len(s) - 1; i >= 0; i-- {
+ if s[i] == os.PathSeparator {
+ return i
+ }
+ }
+ return -1
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher.go b/vendor/github.com/rjeczalik/notify/watcher.go
new file mode 100644
index 000000000..34148eff3
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher.go
@@ -0,0 +1,85 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+import "errors"
+
+var (
+ errAlreadyWatched = errors.New("path is already watched")
+ errNotWatched = errors.New("path is not being watched")
+ errInvalidEventSet = errors.New("invalid event set provided")
+)
+
+// Watcher is a intermediate interface for wrapping inotify, ReadDirChangesW,
+// FSEvents, kqueue and poller implementations.
+//
+// The watcher implementation is expected to do its own mapping between paths and
+// create watchers if underlying event notification does not support it. For
+// the ease of implementation it is guaranteed that paths provided via Watch and
+// Unwatch methods are absolute and clean.
+type watcher interface {
+ // Watch requests a watcher creation for the given path and given event set.
+ Watch(path string, event Event) error
+
+ // Unwatch requests a watcher deletion for the given path and given event set.
+ Unwatch(path string) error
+
+ // Rewatch provides a functionality for modifying existing watch-points, like
+ // expanding its event set.
+ //
+ // Rewatch modifies existing watch-point under for the given path. It passes
+ // the existing event set currently registered for the given path, and the
+ // new, requested event set.
+ //
+ // It is guaranteed that Tree will not pass to Rewatch zero value for any
+ // of its arguments. If old == new and watcher can be upgraded to
+ // recursiveWatcher interface, a watch for the corresponding path is expected
+ // to be changed from recursive to the non-recursive one.
+ Rewatch(path string, old, new Event) error
+
+ // Close unwatches all paths that are registered. When Close returns, it
+ // is expected it will report no more events.
+ Close() error
+}
+
+// RecursiveWatcher is an interface for a Watcher for those OS, which do support
+// recursive watching over directories.
+type recursiveWatcher interface {
+ RecursiveWatch(path string, event Event) error
+
+ // RecursiveUnwatch removes a recursive watch-point given by the path. For
+ // native recursive implementation there is no difference in functionality
+ // between Unwatch and RecursiveUnwatch, however for those platforms, that
+ // requires emulation for recursive watch-points, the implementation differs.
+ RecursiveUnwatch(path string) error
+
+ // RecursiveRewatcher provides a functionality for modifying and/or relocating
+ // existing recursive watch-points.
+ //
+ // To relocate a watch-point means to unwatch oldpath and set a watch-point on
+ // newpath.
+ //
+ // To modify a watch-point means either to expand or shrink its event set.
+ //
+ // Tree can want to either relocate, modify or relocate and modify a watch-point
+ // via single RecursiveRewatch call.
+ //
+ // If oldpath == newpath, the watch-point is expected to change its event set value
+ // from oldevent to newevent.
+ //
+ // If oldevent == newevent, the watch-point is expected to relocate from oldpath
+ // to the newpath.
+ //
+ // If oldpath != newpath and oldevent != newevent, the watch-point is expected
+ // to relocate from oldpath to the newpath first and then change its event set
+ // value from oldevent to the newevent. In other words the end result must be
+ // a watch-point set on newpath with newevent value of its event set.
+ //
+ // It is guaranteed that Tree will not pass to RecurisveRewatcha zero value
+ // for any of its arguments. If oldpath == newpath and oldevent == newevent,
+ // a watch for the corresponding path is expected to be changed for
+ // non-recursive to the recursive one.
+ RecursiveRewatch(oldpath, newpath string, oldevent, newevent Event) error
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_fen.go b/vendor/github.com/rjeczalik/notify/watcher_fen.go
new file mode 100644
index 000000000..60e9a36da
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_fen.go
@@ -0,0 +1,170 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build solaris
+
+package notify
+
+import (
+ "fmt"
+ "os"
+ "syscall"
+)
+
+// newTrigger returns implementation of trigger.
+func newTrigger(pthLkp map[string]*watched) trigger {
+ return &fen{
+ pthLkp: pthLkp,
+ cf: newCfen(),
+ }
+}
+
+// fen is a structure implementing trigger for FEN.
+type fen struct {
+ // p is a FEN port identifier
+ p int
+ // pthLkp is a structure mapping monitored files/dir with data about them,
+ // shared with parent trg structure
+ pthLkp map[string]*watched
+ // cf wraps C operations for FEN
+ cf cfen
+}
+
+// watched is a data structure representing watched file/directory.
+type watched struct {
+ // p is a path to watched file/directory
+ p string
+ // fi provides information about watched file/dir
+ fi os.FileInfo
+ // eDir represents events watched directly
+ eDir Event
+ // eNonDir represents events watched indirectly
+ eNonDir Event
+}
+
+// Stop implements trigger.
+func (f *fen) Stop() error {
+ return f.cf.port_alert(f.p)
+}
+
+// Close implements trigger.
+func (f *fen) Close() (err error) {
+ return syscall.Close(f.p)
+}
+
+// NewWatched implements trigger.
+func (*fen) NewWatched(p string, fi os.FileInfo) (*watched, error) {
+ return &watched{p: p, fi: fi}, nil
+}
+
+// Record implements trigger.
+func (f *fen) Record(w *watched) {
+ f.pthLkp[w.p] = w
+}
+
+// Del implements trigger.
+func (f *fen) Del(w *watched) {
+ delete(f.pthLkp, w.p)
+}
+
+func inter2pe(n interface{}) PortEvent {
+ pe, ok := n.(PortEvent)
+ if !ok {
+ panic(fmt.Sprintf("fen: type should be PortEvent, %T instead", n))
+ }
+ return pe
+}
+
+// Watched implements trigger.
+func (f *fen) Watched(n interface{}) (*watched, int64, error) {
+ pe := inter2pe(n)
+ fo, ok := pe.PortevObject.(*FileObj)
+ if !ok || fo == nil {
+ panic(fmt.Sprintf("fen: type should be *FileObj, %T instead", fo))
+ }
+ w, ok := f.pthLkp[fo.Name]
+ if !ok {
+ return nil, 0, errNotWatched
+ }
+ return w, int64(pe.PortevEvents), nil
+}
+
+// init initializes FEN.
+func (f *fen) Init() (err error) {
+ f.p, err = f.cf.port_create()
+ return
+}
+
+func fi2fo(fi os.FileInfo, p string) FileObj {
+ st, ok := fi.Sys().(*syscall.Stat_t)
+ if !ok {
+ panic(fmt.Sprintf("fen: type should be *syscall.Stat_t, %T instead", st))
+ }
+ return FileObj{Name: p, Atim: st.Atim, Mtim: st.Mtim, Ctim: st.Ctim}
+}
+
+// Unwatch implements trigger.
+func (f *fen) Unwatch(w *watched) error {
+ return f.cf.port_dissociate(f.p, FileObj{Name: w.p})
+}
+
+// Watch implements trigger.
+func (f *fen) Watch(fi os.FileInfo, w *watched, e int64) error {
+ return f.cf.port_associate(f.p, fi2fo(fi, w.p), int(e))
+}
+
+// Wait implements trigger.
+func (f *fen) Wait() (interface{}, error) {
+ var (
+ pe PortEvent
+ err error
+ )
+ err = f.cf.port_get(f.p, &pe)
+ return pe, err
+}
+
+// IsStop implements trigger.
+func (f *fen) IsStop(n interface{}, err error) bool {
+ return err == syscall.EBADF || inter2pe(n).PortevSource == srcAlert
+}
+
+func init() {
+ encode = func(e Event) (o int64) {
+ // Create event is not supported by FEN. Instead FileModified event will
+ // be registered. If this event will be reported on dir which is to be
+ // monitored for Create, dir will be rescanned and Create events will
+ // be generated and returned for new files. In case of files,
+ // if not requested FileModified event is reported, it will be ignored.
+ if e&Create != 0 {
+ o = (o &^ int64(Create)) | int64(FileModified)
+ }
+ if e&Write != 0 {
+ o = (o &^ int64(Write)) | int64(FileModified)
+ }
+ // Following events are 'exception events' and as such cannot be requested
+ // explicitly for monitoring or filtered out. If the will be reported
+ // by FEN and not subscribed with by user, they will be filtered out by
+ // watcher's logic.
+ o &= int64(^Rename & ^Remove &^ FileDelete &^ FileRenameTo &^
+ FileRenameFrom &^ Unmounted &^ MountedOver)
+ return
+ }
+ nat2not = map[Event]Event{
+ FileModified: Write,
+ FileRenameFrom: Rename,
+ FileDelete: Remove,
+ FileAccess: Event(0),
+ FileAttrib: Event(0),
+ FileRenameTo: Event(0),
+ FileTrunc: Event(0),
+ FileNoFollow: Event(0),
+ Unmounted: Event(0),
+ MountedOver: Event(0),
+ }
+ not2nat = map[Event]Event{
+ Write: FileModified,
+ Rename: FileRenameFrom,
+ Remove: FileDelete,
+ }
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_fen_cgo.go b/vendor/github.com/rjeczalik/notify/watcher_fen_cgo.go
new file mode 100644
index 000000000..58ac8e8c6
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_fen_cgo.go
@@ -0,0 +1,141 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build solaris
+
+package notify
+
+// #include <port.h>
+// #include <stdio.h>
+// #include <stdlib.h>
+// struct file_obj* newFo() { return (struct file_obj*) malloc(sizeof(struct file_obj)); }
+// port_event_t* newPe() { return (port_event_t*) malloc(sizeof(port_event_t)); }
+// uintptr_t conv(struct file_obj* fo) { return (uintptr_t) fo; }
+// struct file_obj* dconv(uintptr_t fo) { return (struct file_obj*) fo; }
+import "C"
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+const (
+ fileAccess = Event(C.FILE_ACCESS)
+ fileModified = Event(C.FILE_MODIFIED)
+ fileAttrib = Event(C.FILE_ATTRIB)
+ fileDelete = Event(C.FILE_DELETE)
+ fileRenameTo = Event(C.FILE_RENAME_TO)
+ fileRenameFrom = Event(C.FILE_RENAME_FROM)
+ fileTrunc = Event(C.FILE_TRUNC)
+ fileNoFollow = Event(C.FILE_NOFOLLOW)
+ unmounted = Event(C.UNMOUNTED)
+ mountedOver = Event(C.MOUNTEDOVER)
+)
+
+// PortEvent is a notify's equivalent of port_event_t.
+type PortEvent struct {
+ PortevEvents int // PortevEvents is an equivalent of portev_events.
+ PortevSource uint8 // PortevSource is an equivalent of portev_source.
+ PortevPad uint8 // Portevpad is an equivalent of portev_pad.
+ PortevObject interface{} // PortevObject is an equivalent of portev_object.
+ PortevUser uintptr // PortevUser is an equivalent of portev_user.
+}
+
+// FileObj is a notify's equivalent of file_obj.
+type FileObj struct {
+ Atim syscall.Timespec // Atim is an equivalent of fo_atime.
+ Mtim syscall.Timespec // Mtim is an equivalent of fo_mtime.
+ Ctim syscall.Timespec // Ctim is an equivalent of fo_ctime.
+ Pad [3]uintptr // Pad is an equivalent of fo_pad.
+ Name string // Name is an equivalent of fo_name.
+}
+
+type cfen struct {
+ p2pe map[string]*C.port_event_t
+ p2fo map[string]*C.struct_file_obj
+}
+
+func newCfen() cfen {
+ return cfen{
+ p2pe: make(map[string]*C.port_event_t),
+ p2fo: make(map[string]*C.struct_file_obj),
+ }
+}
+
+func unix2C(sec int64, nsec int64) (C.time_t, C.long) {
+ return C.time_t(sec), C.long(nsec)
+}
+
+func (c *cfen) port_associate(p int, fo FileObj, e int) (err error) {
+ cfo := C.newFo()
+ cfo.fo_atime.tv_sec, cfo.fo_atime.tv_nsec = unix2C(fo.Atim.Unix())
+ cfo.fo_mtime.tv_sec, cfo.fo_mtime.tv_nsec = unix2C(fo.Mtim.Unix())
+ cfo.fo_ctime.tv_sec, cfo.fo_ctime.tv_nsec = unix2C(fo.Ctim.Unix())
+ cfo.fo_name = C.CString(fo.Name)
+ c.p2fo[fo.Name] = cfo
+ _, err = C.port_associate(C.int(p), srcFile, C.conv(cfo), C.int(e), nil)
+ return
+}
+
+func (c *cfen) port_dissociate(port int, fo FileObj) (err error) {
+ cfo, ok := c.p2fo[fo.Name]
+ if !ok {
+ return errNotWatched
+ }
+ _, err = C.port_dissociate(C.int(port), srcFile, C.conv(cfo))
+ C.free(unsafe.Pointer(cfo.fo_name))
+ C.free(unsafe.Pointer(cfo))
+ delete(c.p2fo, fo.Name)
+ return
+}
+
+const srcAlert = C.PORT_SOURCE_ALERT
+const srcFile = C.PORT_SOURCE_FILE
+const alertSet = C.PORT_ALERT_SET
+
+func cfo2fo(cfo *C.struct_file_obj) *FileObj {
+ // Currently remaining attributes are not used.
+ if cfo == nil {
+ return nil
+ }
+ var fo FileObj
+ fo.Name = C.GoString(cfo.fo_name)
+ return &fo
+}
+
+func (c *cfen) port_get(port int, pe *PortEvent) (err error) {
+ cpe := C.newPe()
+ if _, err = C.port_get(C.int(port), cpe, nil); err != nil {
+ C.free(unsafe.Pointer(cpe))
+ return
+ }
+ pe.PortevEvents, pe.PortevSource, pe.PortevPad =
+ int(cpe.portev_events), uint8(cpe.portev_source), uint8(cpe.portev_pad)
+ pe.PortevObject = cfo2fo(C.dconv(cpe.portev_object))
+ pe.PortevUser = uintptr(cpe.portev_user)
+ C.free(unsafe.Pointer(cpe))
+ return
+}
+
+func (c *cfen) port_create() (int, error) {
+ p, err := C.port_create()
+ return int(p), err
+}
+
+func (c *cfen) port_alert(p int) (err error) {
+ _, err = C.port_alert(C.int(p), alertSet, C.int(666), nil)
+ return
+}
+
+func (c *cfen) free() {
+ for i := range c.p2fo {
+ C.free(unsafe.Pointer(c.p2fo[i].fo_name))
+ C.free(unsafe.Pointer(c.p2fo[i]))
+ }
+ for i := range c.p2pe {
+ C.free(unsafe.Pointer(c.p2pe[i]))
+ }
+ c.p2fo = make(map[string]*C.struct_file_obj)
+ c.p2pe = make(map[string]*C.port_event_t)
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_fsevents.go b/vendor/github.com/rjeczalik/notify/watcher_fsevents.go
new file mode 100644
index 000000000..9062c17c7
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_fsevents.go
@@ -0,0 +1,319 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,!kqueue
+
+package notify
+
+import (
+ "errors"
+ "strings"
+ "sync/atomic"
+)
+
+// TODO(rjeczalik): get rid of calls to canonical, it's tree responsibility
+
+const (
+ failure = uint32(FSEventsMustScanSubDirs | FSEventsUserDropped | FSEventsKernelDropped)
+ filter = uint32(FSEventsCreated | FSEventsRemoved | FSEventsRenamed |
+ FSEventsModified | FSEventsInodeMetaMod)
+)
+
+// FSEvent represents single file event. It is created out of values passed by
+// FSEvents to FSEventStreamCallback function.
+type FSEvent struct {
+ Path string // real path of the file or directory
+ ID uint64 // ID of the event (FSEventStreamEventId)
+ Flags uint32 // joint FSEvents* flags (FSEventStreamEventFlags)
+}
+
+// splitflags separates event flags from single set into slice of flags.
+func splitflags(set uint32) (e []uint32) {
+ for i := uint32(1); set != 0; i, set = i<<1, set>>1 {
+ if (set & 1) != 0 {
+ e = append(e, i)
+ }
+ }
+ return
+}
+
+// watch represents a filesystem watchpoint. It is a higher level abstraction
+// over FSEvents' stream, which implements filtering of file events based
+// on path and event set. It emulates non-recursive watch-point by filtering out
+// events which paths are more than 1 level deeper than the watched path.
+type watch struct {
+ // prev stores last event set per path in order to filter out old flags
+ // for new events, which appratenly FSEvents likes to retain. It's a disgusting
+ // hack, it should be researched how to get rid of it.
+ prev map[string]uint32
+ c chan<- EventInfo
+ stream *stream
+ path string
+ events uint32
+ isrec int32
+ flushed bool
+}
+
+// Example format:
+//
+// ~ $ (trigger command) # (event set) -> (effective event set)
+//
+// Heuristics:
+//
+// 1. Create event is removed when it was present in previous event set.
+// Example:
+//
+// ~ $ echo > file # Create|Write -> Create|Write
+// ~ $ echo > file # Create|Write|InodeMetaMod -> Write|InodeMetaMod
+//
+// 2. Remove event is removed if it was present in previouse event set.
+// Example:
+//
+// ~ $ touch file # Create -> Create
+// ~ $ rm file # Create|Remove -> Remove
+// ~ $ touch file # Create|Remove -> Create
+//
+// 3. Write event is removed if not followed by InodeMetaMod on existing
+// file. Example:
+//
+// ~ $ echo > file # Create|Write -> Create|Write
+// ~ $ chmod +x file # Create|Write|ChangeOwner -> ChangeOwner
+//
+// 4. Write&InodeMetaMod is removed when effective event set contain Remove event.
+// Example:
+//
+// ~ $ echo > file # Write|InodeMetaMod -> Write|InodeMetaMod
+// ~ $ rm file # Remove|Write|InodeMetaMod -> Remove
+//
+func (w *watch) strip(base string, set uint32) uint32 {
+ const (
+ write = FSEventsModified | FSEventsInodeMetaMod
+ both = FSEventsCreated | FSEventsRemoved
+ )
+ switch w.prev[base] {
+ case FSEventsCreated:
+ set &^= FSEventsCreated
+ if set&FSEventsRemoved != 0 {
+ w.prev[base] = FSEventsRemoved
+ set &^= write
+ }
+ case FSEventsRemoved:
+ set &^= FSEventsRemoved
+ if set&FSEventsCreated != 0 {
+ w.prev[base] = FSEventsCreated
+ }
+ default:
+ switch set & both {
+ case FSEventsCreated:
+ w.prev[base] = FSEventsCreated
+ case FSEventsRemoved:
+ w.prev[base] = FSEventsRemoved
+ set &^= write
+ }
+ }
+ dbgprintf("split()=%v\n", Event(set))
+ return set
+}
+
+// Dispatch is a stream function which forwards given file events for the watched
+// path to underlying FileInfo channel.
+func (w *watch) Dispatch(ev []FSEvent) {
+ events := atomic.LoadUint32(&w.events)
+ isrec := (atomic.LoadInt32(&w.isrec) == 1)
+ for i := range ev {
+ if ev[i].Flags&FSEventsHistoryDone != 0 {
+ w.flushed = true
+ continue
+ }
+ if !w.flushed {
+ continue
+ }
+ dbgprintf("%v (0x%x) (%s, i=%d, ID=%d, len=%d)\n", Event(ev[i].Flags),
+ ev[i].Flags, ev[i].Path, i, ev[i].ID, len(ev))
+ if ev[i].Flags&failure != 0 {
+ // TODO(rjeczalik): missing error handling
+ continue
+ }
+ if !strings.HasPrefix(ev[i].Path, w.path) {
+ continue
+ }
+ n := len(w.path)
+ base := ""
+ if len(ev[i].Path) > n {
+ if ev[i].Path[n] != '/' {
+ continue
+ }
+ base = ev[i].Path[n+1:]
+ if !isrec && strings.IndexByte(base, '/') != -1 {
+ continue
+ }
+ }
+ // TODO(rjeczalik): get diff only from filtered events?
+ e := w.strip(string(base), ev[i].Flags) & events
+ if e == 0 {
+ continue
+ }
+ for _, e := range splitflags(e) {
+ dbgprintf("%d: single event: %v", ev[i].ID, Event(e))
+ w.c <- &event{
+ fse: ev[i],
+ event: Event(e),
+ }
+ }
+ }
+}
+
+// Stop closes underlying FSEvents stream and stops dispatching events.
+func (w *watch) Stop() {
+ w.stream.Stop()
+ // TODO(rjeczalik): make (*stream).Stop flush synchronously undelivered events,
+ // so the following hack can be removed. It should flush all the streams
+ // concurrently as we care not to block too much here.
+ atomic.StoreUint32(&w.events, 0)
+ atomic.StoreInt32(&w.isrec, 0)
+}
+
+// fsevents implements Watcher and RecursiveWatcher interfaces backed by FSEvents
+// framework.
+type fsevents struct {
+ watches map[string]*watch
+ c chan<- EventInfo
+}
+
+func newWatcher(c chan<- EventInfo) watcher {
+ return &fsevents{
+ watches: make(map[string]*watch),
+ c: c,
+ }
+}
+
+func (fse *fsevents) watch(path string, event Event, isrec int32) (err error) {
+ if path, err = canonical(path); err != nil {
+ return err
+ }
+ if _, ok := fse.watches[path]; ok {
+ return errAlreadyWatched
+ }
+ w := &watch{
+ prev: make(map[string]uint32),
+ c: fse.c,
+ path: path,
+ events: uint32(event),
+ isrec: isrec,
+ }
+ w.stream = newStream(path, w.Dispatch)
+ if err = w.stream.Start(); err != nil {
+ return err
+ }
+ fse.watches[path] = w
+ return nil
+}
+
+func (fse *fsevents) unwatch(path string) (err error) {
+ if path, err = canonical(path); err != nil {
+ return
+ }
+ w, ok := fse.watches[path]
+ if !ok {
+ return errNotWatched
+ }
+ w.stream.Stop()
+ delete(fse.watches, path)
+ return nil
+}
+
+// Watch implements Watcher interface. It fails with non-nil error when setting
+// the watch-point by FSEvents fails or with errAlreadyWatched error when
+// the given path is already watched.
+func (fse *fsevents) Watch(path string, event Event) error {
+ return fse.watch(path, event, 0)
+}
+
+// Unwatch implements Watcher interface. It fails with errNotWatched when
+// the given path is not being watched.
+func (fse *fsevents) Unwatch(path string) error {
+ return fse.unwatch(path)
+}
+
+// Rewatch implements Watcher interface. It fails with errNotWatched when
+// the given path is not being watched or with errInvalidEventSet when oldevent
+// does not match event set the watch-point currently holds.
+func (fse *fsevents) Rewatch(path string, oldevent, newevent Event) error {
+ w, ok := fse.watches[path]
+ if !ok {
+ return errNotWatched
+ }
+ if !atomic.CompareAndSwapUint32(&w.events, uint32(oldevent), uint32(newevent)) {
+ return errInvalidEventSet
+ }
+ atomic.StoreInt32(&w.isrec, 0)
+ return nil
+}
+
+// RecursiveWatch implements RecursiveWatcher interface. It fails with non-nil
+// error when setting the watch-point by FSEvents fails or with errAlreadyWatched
+// error when the given path is already watched.
+func (fse *fsevents) RecursiveWatch(path string, event Event) error {
+ return fse.watch(path, event, 1)
+}
+
+// RecursiveUnwatch implements RecursiveWatcher interface. It fails with
+// errNotWatched when the given path is not being watched.
+//
+// TODO(rjeczalik): fail if w.isrec == 0?
+func (fse *fsevents) RecursiveUnwatch(path string) error {
+ return fse.unwatch(path)
+}
+
+// RecrusiveRewatch implements RecursiveWatcher interface. It fails:
+//
+// * with errNotWatched when the given path is not being watched
+// * with errInvalidEventSet when oldevent does not match the current event set
+// * with errAlreadyWatched when watch-point given by the oldpath was meant to
+// be relocated to newpath, but the newpath is already watched
+// * a non-nil error when setting the watch-point with FSEvents fails
+//
+// TODO(rjeczalik): Improve handling of watch-point relocation? See two TODOs
+// that follows.
+func (fse *fsevents) RecursiveRewatch(oldpath, newpath string, oldevent, newevent Event) error {
+ switch [2]bool{oldpath == newpath, oldevent == newevent} {
+ case [2]bool{true, true}:
+ w, ok := fse.watches[oldpath]
+ if !ok {
+ return errNotWatched
+ }
+ atomic.StoreInt32(&w.isrec, 1)
+ return nil
+ case [2]bool{true, false}:
+ w, ok := fse.watches[oldpath]
+ if !ok {
+ return errNotWatched
+ }
+ if !atomic.CompareAndSwapUint32(&w.events, uint32(oldevent), uint32(newevent)) {
+ return errors.New("invalid event state diff")
+ }
+ atomic.StoreInt32(&w.isrec, 1)
+ return nil
+ default:
+ // TODO(rjeczalik): rewatch newpath only if exists?
+ // TODO(rjeczalik): migrate w.prev to new watch?
+ if _, ok := fse.watches[newpath]; ok {
+ return errAlreadyWatched
+ }
+ if err := fse.Unwatch(oldpath); err != nil {
+ return err
+ }
+ // TODO(rjeczalik): revert unwatch if watch fails?
+ return fse.watch(newpath, newevent, 1)
+ }
+}
+
+// Close unwatches all watch-points.
+func (fse *fsevents) Close() error {
+ for _, w := range fse.watches {
+ w.Stop()
+ }
+ fse.watches = nil
+ return nil
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go b/vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go
new file mode 100644
index 000000000..ee9631a61
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_fsevents_cgo.go
@@ -0,0 +1,190 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,!kqueue
+
+package notify
+
+/*
+#include <CoreServices/CoreServices.h>
+
+typedef void (*CFRunLoopPerformCallBack)(void*);
+
+void gosource(void *);
+void gostream(uintptr_t, uintptr_t, size_t, uintptr_t, uintptr_t, uintptr_t);
+
+static FSEventStreamRef EventStreamCreate(FSEventStreamContext * context, uintptr_t info, CFArrayRef paths, FSEventStreamEventId since, CFTimeInterval latency, FSEventStreamCreateFlags flags) {
+ context->info = (void*) info;
+ return FSEventStreamCreate(NULL, (FSEventStreamCallback) gostream, context, paths, since, latency, flags);
+}
+
+#cgo LDFLAGS: -framework CoreServices
+*/
+import "C"
+
+import (
+ "errors"
+ "os"
+ "sync"
+ "sync/atomic"
+ "time"
+ "unsafe"
+)
+
+var nilstream C.FSEventStreamRef
+
+// Default arguments for FSEventStreamCreate function.
+var (
+ latency C.CFTimeInterval
+ flags = C.FSEventStreamCreateFlags(C.kFSEventStreamCreateFlagFileEvents | C.kFSEventStreamCreateFlagNoDefer)
+ since = uint64(C.FSEventsGetCurrentEventId())
+)
+
+var runloop C.CFRunLoopRef // global runloop which all streams are registered with
+var wg sync.WaitGroup // used to wait until the runloop starts
+
+// source is used for synchronization purposes - it signals when runloop has
+// started and is ready via the wg. It also serves purpose of a dummy source,
+// thanks to it the runloop does not return as it also has at least one source
+// registered.
+var source = C.CFRunLoopSourceCreate(nil, 0, &C.CFRunLoopSourceContext{
+ perform: (C.CFRunLoopPerformCallBack)(C.gosource),
+})
+
+// Errors returned when FSEvents functions fail.
+var (
+ errCreate = os.NewSyscallError("FSEventStreamCreate", errors.New("NULL"))
+ errStart = os.NewSyscallError("FSEventStreamStart", errors.New("false"))
+)
+
+// initializes the global runloop and ensures any created stream awaits its
+// readiness.
+func init() {
+ wg.Add(1)
+ go func() {
+ runloop = C.CFRunLoopGetCurrent()
+ C.CFRunLoopAddSource(runloop, source, C.kCFRunLoopDefaultMode)
+ C.CFRunLoopRun()
+ panic("runloop has just unexpectedly stopped")
+ }()
+ C.CFRunLoopSourceSignal(source)
+}
+
+//export gosource
+func gosource(unsafe.Pointer) {
+ time.Sleep(time.Second)
+ wg.Done()
+}
+
+//export gostream
+func gostream(_, info uintptr, n C.size_t, paths, flags, ids uintptr) {
+ const (
+ offchar = unsafe.Sizeof((*C.char)(nil))
+ offflag = unsafe.Sizeof(C.FSEventStreamEventFlags(0))
+ offid = unsafe.Sizeof(C.FSEventStreamEventId(0))
+ )
+ if n == 0 {
+ return
+ }
+ ev := make([]FSEvent, 0, int(n))
+ for i := uintptr(0); i < uintptr(n); i++ {
+ switch flags := *(*uint32)(unsafe.Pointer((flags + i*offflag))); {
+ case flags&uint32(FSEventsEventIdsWrapped) != 0:
+ atomic.StoreUint64(&since, uint64(C.FSEventsGetCurrentEventId()))
+ default:
+ ev = append(ev, FSEvent{
+ Path: C.GoString(*(**C.char)(unsafe.Pointer(paths + i*offchar))),
+ Flags: flags,
+ ID: *(*uint64)(unsafe.Pointer(ids + i*offid)),
+ })
+ }
+
+ }
+ streamFuncs.get(info)(ev)
+}
+
+// StreamFunc is a callback called when stream receives file events.
+type streamFunc func([]FSEvent)
+
+var streamFuncs = streamFuncRegistry{m: map[uintptr]streamFunc{}}
+
+type streamFuncRegistry struct {
+ mu sync.Mutex
+ m map[uintptr]streamFunc
+ i uintptr
+}
+
+func (r *streamFuncRegistry) get(id uintptr) streamFunc {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+ return r.m[id]
+}
+
+func (r *streamFuncRegistry) add(fn streamFunc) uintptr {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+ r.i++
+ r.m[r.i] = fn
+ return r.i
+}
+
+func (r *streamFuncRegistry) delete(id uintptr) {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+ delete(r.m, id)
+}
+
+// Stream represents single watch-point which listens for events scheduled by
+// the global runloop.
+type stream struct {
+ path string
+ ref C.FSEventStreamRef
+ info uintptr
+}
+
+// NewStream creates a stream for given path, listening for file events and
+// calling fn upon receving any.
+func newStream(path string, fn streamFunc) *stream {
+ return &stream{
+ path: path,
+ info: streamFuncs.add(fn),
+ }
+}
+
+// Start creates a FSEventStream for the given path and schedules it with
+// global runloop. It's a nop if the stream was already started.
+func (s *stream) Start() error {
+ if s.ref != nilstream {
+ return nil
+ }
+ wg.Wait()
+ p := C.CFStringCreateWithCStringNoCopy(nil, C.CString(s.path), C.kCFStringEncodingUTF8, nil)
+ path := C.CFArrayCreate(nil, (*unsafe.Pointer)(unsafe.Pointer(&p)), 1, nil)
+ ctx := C.FSEventStreamContext{}
+ ref := C.EventStreamCreate(&ctx, C.uintptr_t(s.info), path, C.FSEventStreamEventId(atomic.LoadUint64(&since)), latency, flags)
+ if ref == nilstream {
+ return errCreate
+ }
+ C.FSEventStreamScheduleWithRunLoop(ref, runloop, C.kCFRunLoopDefaultMode)
+ if C.FSEventStreamStart(ref) == C.Boolean(0) {
+ C.FSEventStreamInvalidate(ref)
+ return errStart
+ }
+ C.CFRunLoopWakeUp(runloop)
+ s.ref = ref
+ return nil
+}
+
+// Stop stops underlying FSEventStream and unregisters it from global runloop.
+func (s *stream) Stop() {
+ if s.ref == nilstream {
+ return
+ }
+ wg.Wait()
+ C.FSEventStreamStop(s.ref)
+ C.FSEventStreamInvalidate(s.ref)
+ C.CFRunLoopWakeUp(runloop)
+ s.ref = nilstream
+ streamFuncs.delete(s.info)
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_inotify.go b/vendor/github.com/rjeczalik/notify/watcher_inotify.go
new file mode 100644
index 000000000..3ceaa8f3a
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_inotify.go
@@ -0,0 +1,396 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build linux
+
+package notify
+
+import (
+ "bytes"
+ "errors"
+ "path/filepath"
+ "runtime"
+ "sync"
+ "sync/atomic"
+ "syscall"
+ "unsafe"
+)
+
+// eventBufferSize defines the size of the buffer given to read(2) function. One
+// should not depend on this value, since it was arbitrary chosen and may be
+// changed in the future.
+const eventBufferSize = 64 * (syscall.SizeofInotifyEvent + syscall.PathMax + 1)
+
+// consumersCount defines the number of consumers in producer-consumer based
+// implementation. Each consumer is run in a separate goroutine and has read
+// access to watched files map.
+const consumersCount = 2
+
+const invalidDescriptor = -1
+
+// watched is a pair of file path and inotify mask used as a value in
+// watched files map.
+type watched struct {
+ path string
+ mask uint32
+}
+
+// inotify implements Watcher interface.
+type inotify struct {
+ sync.RWMutex // protects inotify.m map
+ m map[int32]*watched // watch descriptor to watched object
+ fd int32 // inotify file descriptor
+ pipefd []int // pipe's read and write descriptors
+ epfd int // epoll descriptor
+ epes []syscall.EpollEvent // epoll events
+ buffer [eventBufferSize]byte // inotify event buffer
+ wg sync.WaitGroup // wait group used to close main loop
+ c chan<- EventInfo // event dispatcher channel
+}
+
+// NewWatcher creates new non-recursive inotify backed by inotify.
+func newWatcher(c chan<- EventInfo) watcher {
+ i := &inotify{
+ m: make(map[int32]*watched),
+ fd: invalidDescriptor,
+ pipefd: []int{invalidDescriptor, invalidDescriptor},
+ epfd: invalidDescriptor,
+ epes: make([]syscall.EpollEvent, 0),
+ c: c,
+ }
+ runtime.SetFinalizer(i, func(i *inotify) {
+ i.epollclose()
+ if i.fd != invalidDescriptor {
+ syscall.Close(int(i.fd))
+ }
+ })
+ return i
+}
+
+// Watch implements notify.watcher interface.
+func (i *inotify) Watch(path string, e Event) error {
+ return i.watch(path, e)
+}
+
+// Rewatch implements notify.watcher interface.
+func (i *inotify) Rewatch(path string, _, newevent Event) error {
+ return i.watch(path, newevent)
+}
+
+// watch adds a new watcher to the set of watched objects or modifies the existing
+// one. If called for the first time, this function initializes inotify filesystem
+// monitor and starts producer-consumers goroutines.
+func (i *inotify) watch(path string, e Event) (err error) {
+ if e&^(All|Event(syscall.IN_ALL_EVENTS)) != 0 {
+ return errors.New("notify: unknown event")
+ }
+ if err = i.lazyinit(); err != nil {
+ return
+ }
+ iwd, err := syscall.InotifyAddWatch(int(i.fd), path, encode(e))
+ if err != nil {
+ return
+ }
+ i.RLock()
+ wd := i.m[int32(iwd)]
+ i.RUnlock()
+ if wd == nil {
+ i.Lock()
+ if i.m[int32(iwd)] == nil {
+ i.m[int32(iwd)] = &watched{path: path, mask: uint32(e)}
+ }
+ i.Unlock()
+ } else {
+ i.Lock()
+ wd.mask = uint32(e)
+ i.Unlock()
+ }
+ return nil
+}
+
+// lazyinit sets up all required file descriptors and starts 1+consumersCount
+// goroutines. The producer goroutine blocks until file-system notifications
+// occur. Then, all events are read from system buffer and sent to consumer
+// goroutines which construct valid notify events. This method uses
+// Double-Checked Locking optimization.
+func (i *inotify) lazyinit() error {
+ if atomic.LoadInt32(&i.fd) == invalidDescriptor {
+ i.Lock()
+ defer i.Unlock()
+ if atomic.LoadInt32(&i.fd) == invalidDescriptor {
+ fd, err := syscall.InotifyInit()
+ if err != nil {
+ return err
+ }
+ i.fd = int32(fd)
+ if err = i.epollinit(); err != nil {
+ _, _ = i.epollclose(), syscall.Close(int(fd)) // Ignore errors.
+ i.fd = invalidDescriptor
+ return err
+ }
+ esch := make(chan []*event)
+ go i.loop(esch)
+ i.wg.Add(consumersCount)
+ for n := 0; n < consumersCount; n++ {
+ go i.send(esch)
+ }
+ }
+ }
+ return nil
+}
+
+// epollinit opens an epoll file descriptor and creates a pipe which will be
+// used to wake up the epoll_wait(2) function. Then, file descriptor associated
+// with inotify event queue and the read end of the pipe are added to epoll set.
+// Note that `fd` member must be set before this function is called.
+func (i *inotify) epollinit() (err error) {
+ if i.epfd, err = syscall.EpollCreate1(0); err != nil {
+ return
+ }
+ if err = syscall.Pipe(i.pipefd); err != nil {
+ return
+ }
+ i.epes = []syscall.EpollEvent{
+ {Events: syscall.EPOLLIN, Fd: i.fd},
+ {Events: syscall.EPOLLIN, Fd: int32(i.pipefd[0])},
+ }
+ if err = syscall.EpollCtl(i.epfd, syscall.EPOLL_CTL_ADD, int(i.fd), &i.epes[0]); err != nil {
+ return
+ }
+ return syscall.EpollCtl(i.epfd, syscall.EPOLL_CTL_ADD, i.pipefd[0], &i.epes[1])
+}
+
+// epollclose closes the file descriptor created by the call to epoll_create(2)
+// and two file descriptors opened by pipe(2) function.
+func (i *inotify) epollclose() (err error) {
+ if i.epfd != invalidDescriptor {
+ if err = syscall.Close(i.epfd); err == nil {
+ i.epfd = invalidDescriptor
+ }
+ }
+ for n, fd := range i.pipefd {
+ if fd != invalidDescriptor {
+ switch e := syscall.Close(fd); {
+ case e != nil && err == nil:
+ err = e
+ case e == nil:
+ i.pipefd[n] = invalidDescriptor
+ }
+ }
+ }
+ return
+}
+
+// loop blocks until either inotify or pipe file descriptor is ready for I/O.
+// All read operations triggered by filesystem notifications are forwarded to
+// one of the event's consumers. If pipe fd became ready, loop function closes
+// all file descriptors opened by lazyinit method and returns afterwards.
+func (i *inotify) loop(esch chan<- []*event) {
+ epes := make([]syscall.EpollEvent, 1)
+ fd := atomic.LoadInt32(&i.fd)
+ for {
+ switch _, err := syscall.EpollWait(i.epfd, epes, -1); err {
+ case nil:
+ switch epes[0].Fd {
+ case fd:
+ esch <- i.read()
+ epes[0].Fd = 0
+ case int32(i.pipefd[0]):
+ i.Lock()
+ defer i.Unlock()
+ if err = syscall.Close(int(fd)); err != nil && err != syscall.EINTR {
+ panic("notify: close(2) error " + err.Error())
+ }
+ atomic.StoreInt32(&i.fd, invalidDescriptor)
+ if err = i.epollclose(); err != nil && err != syscall.EINTR {
+ panic("notify: epollclose error " + err.Error())
+ }
+ close(esch)
+ return
+ }
+ case syscall.EINTR:
+ continue
+ default: // We should never reach this line.
+ panic("notify: epoll_wait(2) error " + err.Error())
+ }
+ }
+}
+
+// read reads events from an inotify file descriptor. It does not handle errors
+// returned from read(2) function since they are not critical to watcher logic.
+func (i *inotify) read() (es []*event) {
+ n, err := syscall.Read(int(i.fd), i.buffer[:])
+ if err != nil || n < syscall.SizeofInotifyEvent {
+ return
+ }
+ var sys *syscall.InotifyEvent
+ nmin := n - syscall.SizeofInotifyEvent
+ for pos, path := 0, ""; pos <= nmin; {
+ sys = (*syscall.InotifyEvent)(unsafe.Pointer(&i.buffer[pos]))
+ pos += syscall.SizeofInotifyEvent
+ if path = ""; sys.Len > 0 {
+ endpos := pos + int(sys.Len)
+ path = string(bytes.TrimRight(i.buffer[pos:endpos], "\x00"))
+ pos = endpos
+ }
+ es = append(es, &event{
+ sys: syscall.InotifyEvent{
+ Wd: sys.Wd,
+ Mask: sys.Mask,
+ Cookie: sys.Cookie,
+ },
+ path: path,
+ })
+ }
+ return
+}
+
+// send is a consumer function which sends events to event dispatcher channel.
+// It is run in a separate goroutine in order to not block loop method when
+// possibly expensive write operations are performed on inotify map.
+func (i *inotify) send(esch <-chan []*event) {
+ for es := range esch {
+ for _, e := range i.transform(es) {
+ if e != nil {
+ i.c <- e
+ }
+ }
+ }
+ i.wg.Done()
+}
+
+// transform prepares events read from inotify file descriptor for sending to
+// user. It removes invalid events and these which are no longer present in
+// inotify map. This method may also split one raw event into two different ones
+// when system-dependent result is required.
+func (i *inotify) transform(es []*event) []*event {
+ var multi []*event
+ i.RLock()
+ for idx, e := range es {
+ if e.sys.Mask&(syscall.IN_IGNORED|syscall.IN_Q_OVERFLOW) != 0 {
+ es[idx] = nil
+ continue
+ }
+ wd, ok := i.m[e.sys.Wd]
+ if !ok || e.sys.Mask&encode(Event(wd.mask)) == 0 {
+ es[idx] = nil
+ continue
+ }
+ if e.path == "" {
+ e.path = wd.path
+ } else {
+ e.path = filepath.Join(wd.path, e.path)
+ }
+ multi = append(multi, decode(Event(wd.mask), e))
+ if e.event == 0 {
+ es[idx] = nil
+ }
+ }
+ i.RUnlock()
+ es = append(es, multi...)
+ return es
+}
+
+// encode converts notify system-independent events to valid inotify mask
+// which can be passed to inotify_add_watch(2) function.
+func encode(e Event) uint32 {
+ if e&Create != 0 {
+ e = (e ^ Create) | InCreate | InMovedTo
+ }
+ if e&Remove != 0 {
+ e = (e ^ Remove) | InDelete | InDeleteSelf
+ }
+ if e&Write != 0 {
+ e = (e ^ Write) | InModify
+ }
+ if e&Rename != 0 {
+ e = (e ^ Rename) | InMovedFrom | InMoveSelf
+ }
+ return uint32(e)
+}
+
+// decode uses internally stored mask to distinguish whether system-independent
+// or system-dependent event is requested. The first one is created by modifying
+// `e` argument. decode method sets e.event value to 0 when an event should be
+// skipped. System-dependent event is set as the function's return value which
+// can be nil when the event should not be passed on.
+func decode(mask Event, e *event) (syse *event) {
+ if sysmask := uint32(mask) & e.sys.Mask; sysmask != 0 {
+ syse = &event{sys: syscall.InotifyEvent{
+ Wd: e.sys.Wd,
+ Mask: e.sys.Mask,
+ Cookie: e.sys.Cookie,
+ }, event: Event(sysmask), path: e.path}
+ }
+ imask := encode(mask)
+ switch {
+ case mask&Create != 0 && imask&uint32(InCreate|InMovedTo)&e.sys.Mask != 0:
+ e.event = Create
+ case mask&Remove != 0 && imask&uint32(InDelete|InDeleteSelf)&e.sys.Mask != 0:
+ e.event = Remove
+ case mask&Write != 0 && imask&uint32(InModify)&e.sys.Mask != 0:
+ e.event = Write
+ case mask&Rename != 0 && imask&uint32(InMovedFrom|InMoveSelf)&e.sys.Mask != 0:
+ e.event = Rename
+ default:
+ e.event = 0
+ }
+ return
+}
+
+// Unwatch implements notify.watcher interface. It looks for watch descriptor
+// related to registered path and if found, calls inotify_rm_watch(2) function.
+// This method is allowed to return EINVAL error when concurrently requested to
+// delete identical path.
+func (i *inotify) Unwatch(path string) (err error) {
+ iwd := int32(invalidDescriptor)
+ i.RLock()
+ for iwdkey, wd := range i.m {
+ if wd.path == path {
+ iwd = iwdkey
+ break
+ }
+ }
+ i.RUnlock()
+ if iwd == invalidDescriptor {
+ return errors.New("notify: path " + path + " is already watched")
+ }
+ fd := atomic.LoadInt32(&i.fd)
+ if _, err = syscall.InotifyRmWatch(int(fd), uint32(iwd)); err != nil {
+ return
+ }
+ i.Lock()
+ delete(i.m, iwd)
+ i.Unlock()
+ return nil
+}
+
+// Close implements notify.watcher interface. It removes all existing watch
+// descriptors and wakes up producer goroutine by sending data to the write end
+// of the pipe. The function waits for a signal from producer which means that
+// all operations on current monitoring instance are done.
+func (i *inotify) Close() (err error) {
+ i.Lock()
+ if fd := atomic.LoadInt32(&i.fd); fd == invalidDescriptor {
+ i.Unlock()
+ return nil
+ }
+ for iwd := range i.m {
+ if _, e := syscall.InotifyRmWatch(int(i.fd), uint32(iwd)); e != nil && err == nil {
+ err = e
+ }
+ delete(i.m, iwd)
+ }
+ switch _, errwrite := syscall.Write(i.pipefd[1], []byte{0x00}); {
+ case errwrite != nil && err == nil:
+ err = errwrite
+ fallthrough
+ case errwrite != nil:
+ i.Unlock()
+ default:
+ i.Unlock()
+ i.wg.Wait()
+ }
+ return
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_kqueue.go b/vendor/github.com/rjeczalik/notify/watcher_kqueue.go
new file mode 100644
index 000000000..d5f7788c4
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_kqueue.go
@@ -0,0 +1,192 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,kqueue dragonfly freebsd netbsd openbsd
+
+package notify
+
+import (
+ "fmt"
+ "os"
+ "syscall"
+)
+
+// newTrigger returns implementation of trigger.
+func newTrigger(pthLkp map[string]*watched) trigger {
+ return &kq{
+ pthLkp: pthLkp,
+ idLkp: make(map[int]*watched),
+ }
+}
+
+// kq is a structure implementing trigger for kqueue.
+type kq struct {
+ // fd is a kqueue file descriptor
+ fd int
+ // pipefds are file descriptors used to stop `Kevent` call.
+ pipefds [2]int
+ // idLkp is a data structure mapping file descriptors with data about watching
+ // represented by them files/directories.
+ idLkp map[int]*watched
+ // pthLkp is a structure mapping monitored files/dir with data about them,
+ // shared with parent trg structure
+ pthLkp map[string]*watched
+}
+
+// watched is a data structure representing watched file/directory.
+type watched struct {
+ // p is a path to watched file/directory.
+ p string
+ // fd is a file descriptor for watched file/directory.
+ fd int
+ // fi provides information about watched file/dir.
+ fi os.FileInfo
+ // eDir represents events watched directly.
+ eDir Event
+ // eNonDir represents events watched indirectly.
+ eNonDir Event
+}
+
+// Stop implements trigger.
+func (k *kq) Stop() (err error) {
+ // trigger event used to interrupt Kevent call.
+ _, err = syscall.Write(k.pipefds[1], []byte{0x00})
+ return
+}
+
+// Close implements trigger.
+func (k *kq) Close() error {
+ return syscall.Close(k.fd)
+}
+
+// NewWatched implements trigger.
+func (*kq) NewWatched(p string, fi os.FileInfo) (*watched, error) {
+ fd, err := syscall.Open(p, syscall.O_NONBLOCK|syscall.O_RDONLY, 0)
+ if err != nil {
+ return nil, err
+ }
+ return &watched{fd: fd, p: p, fi: fi}, nil
+}
+
+// Record implements trigger.
+func (k *kq) Record(w *watched) {
+ k.idLkp[w.fd], k.pthLkp[w.p] = w, w
+}
+
+// Del implements trigger.
+func (k *kq) Del(w *watched) {
+ syscall.Close(w.fd)
+ delete(k.idLkp, w.fd)
+ delete(k.pthLkp, w.p)
+}
+
+func inter2kq(n interface{}) syscall.Kevent_t {
+ kq, ok := n.(syscall.Kevent_t)
+ if !ok {
+ panic(fmt.Sprintf("kqueue: type should be Kevent_t, %T instead", n))
+ }
+ return kq
+}
+
+// Init implements trigger.
+func (k *kq) Init() (err error) {
+ if k.fd, err = syscall.Kqueue(); err != nil {
+ return
+ }
+ // Creates pipe used to stop `Kevent` call by registering it,
+ // watching read end and writing to other end of it.
+ if err = syscall.Pipe(k.pipefds[:]); err != nil {
+ return nonil(err, k.Close())
+ }
+ var kevn [1]syscall.Kevent_t
+ syscall.SetKevent(&kevn[0], k.pipefds[0], syscall.EVFILT_READ, syscall.EV_ADD)
+ if _, err = syscall.Kevent(k.fd, kevn[:], nil, nil); err != nil {
+ return nonil(err, k.Close())
+ }
+ return
+}
+
+// Unwatch implements trigger.
+func (k *kq) Unwatch(w *watched) (err error) {
+ var kevn [1]syscall.Kevent_t
+ syscall.SetKevent(&kevn[0], w.fd, syscall.EVFILT_VNODE, syscall.EV_DELETE)
+
+ _, err = syscall.Kevent(k.fd, kevn[:], nil, nil)
+ return
+}
+
+// Watch implements trigger.
+func (k *kq) Watch(fi os.FileInfo, w *watched, e int64) (err error) {
+ var kevn [1]syscall.Kevent_t
+ syscall.SetKevent(&kevn[0], w.fd, syscall.EVFILT_VNODE,
+ syscall.EV_ADD|syscall.EV_CLEAR)
+ kevn[0].Fflags = uint32(e)
+
+ _, err = syscall.Kevent(k.fd, kevn[:], nil, nil)
+ return
+}
+
+// Wait implements trigger.
+func (k *kq) Wait() (interface{}, error) {
+ var (
+ kevn [1]syscall.Kevent_t
+ err error
+ )
+ kevn[0] = syscall.Kevent_t{}
+ _, err = syscall.Kevent(k.fd, nil, kevn[:], nil)
+
+ return kevn[0], err
+}
+
+// Watched implements trigger.
+func (k *kq) Watched(n interface{}) (*watched, int64, error) {
+ kevn, ok := n.(syscall.Kevent_t)
+ if !ok {
+ panic(fmt.Sprintf("kq: type should be syscall.Kevent_t, %T instead", kevn))
+ }
+ if _, ok = k.idLkp[int(kevn.Ident)]; !ok {
+ return nil, 0, errNotWatched
+ }
+ return k.idLkp[int(kevn.Ident)], int64(kevn.Fflags), nil
+}
+
+// IsStop implements trigger.
+func (k *kq) IsStop(n interface{}, err error) bool {
+ return int(inter2kq(n).Ident) == k.pipefds[0]
+}
+
+func init() {
+ encode = func(e Event) (o int64) {
+ // Create event is not supported by kqueue. Instead NoteWrite event will
+ // be registered. If this event will be reported on dir which is to be
+ // monitored for Create, dir will be rescanned and Create events will
+ // be generated and returned for new files. In case of files,
+ // if not requested NoteRename event is reported, it will be ignored.
+ o = int64(e &^ Create)
+ if e&Write != 0 {
+ o = (o &^ int64(Write)) | int64(NoteWrite)
+ }
+ if e&Rename != 0 {
+ o = (o &^ int64(Rename)) | int64(NoteRename)
+ }
+ if e&Remove != 0 {
+ o = (o &^ int64(Remove)) | int64(NoteDelete)
+ }
+ return
+ }
+ nat2not = map[Event]Event{
+ NoteWrite: Write,
+ NoteRename: Rename,
+ NoteDelete: Remove,
+ NoteExtend: Event(0),
+ NoteAttrib: Event(0),
+ NoteRevoke: Event(0),
+ NoteLink: Event(0),
+ }
+ not2nat = map[Event]Event{
+ Write: NoteWrite,
+ Rename: NoteRename,
+ Remove: NoteDelete,
+ }
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_readdcw.go b/vendor/github.com/rjeczalik/notify/watcher_readdcw.go
new file mode 100644
index 000000000..5923bfdda
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_readdcw.go
@@ -0,0 +1,574 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build windows
+
+package notify
+
+import (
+ "errors"
+ "runtime"
+ "sync"
+ "sync/atomic"
+ "syscall"
+ "unsafe"
+)
+
+// readBufferSize defines the size of an array in which read statuses are stored.
+// The buffer have to be DWORD-aligned and, if notify is used in monitoring a
+// directory over the network, its size must not be greater than 64KB. Each of
+// watched directories uses its own buffer for storing events.
+const readBufferSize = 4096
+
+// Since all operations which go through the Windows completion routine are done
+// asynchronously, filter may set one of the constants belor. They were defined
+// in order to distinguish whether current folder should be re-registered in
+// ReadDirectoryChangesW function or some control operations need to be executed.
+const (
+ stateRewatch uint32 = 1 << (28 + iota)
+ stateUnwatch
+ stateCPClose
+)
+
+// Filter used in current implementation was split into four segments:
+// - bits 0-11 store ReadDirectoryChangesW filters,
+// - bits 12-19 store File notify actions,
+// - bits 20-27 store notify specific events and flags,
+// - bits 28-31 store states which are used in loop's FSM.
+// Constants below are used as masks to retrieve only specific filter parts.
+const (
+ onlyNotifyChanges uint32 = 0x00000FFF
+ onlyNGlobalEvents uint32 = 0x0FF00000
+ onlyMachineStates uint32 = 0xF0000000
+)
+
+// grip represents a single watched directory. It stores the data required by
+// ReadDirectoryChangesW function. Only the filter, recursive, and handle members
+// may by modified by watcher implementation. Rest of the them have to remain
+// constant since they are used by Windows completion routine. This indicates that
+// grip can be removed only when all operations on the file handle are finished.
+type grip struct {
+ handle syscall.Handle
+ filter uint32
+ recursive bool
+ pathw []uint16
+ buffer [readBufferSize]byte
+ parent *watched
+ ovlapped *overlappedEx
+}
+
+// overlappedEx stores information used in asynchronous input and output.
+// Additionally, overlappedEx contains a pointer to 'grip' item which is used in
+// order to gather the structure in which the overlappedEx object was created.
+type overlappedEx struct {
+ syscall.Overlapped
+ parent *grip
+}
+
+// newGrip creates a new file handle that can be used in overlapped operations.
+// Then, the handle is associated with I/O completion port 'cph' and its value
+// is stored in newly created 'grip' object.
+func newGrip(cph syscall.Handle, parent *watched, filter uint32) (*grip, error) {
+ g := &grip{
+ handle: syscall.InvalidHandle,
+ filter: filter,
+ recursive: parent.recursive,
+ pathw: parent.pathw,
+ parent: parent,
+ ovlapped: &overlappedEx{},
+ }
+ if err := g.register(cph); err != nil {
+ return nil, err
+ }
+ g.ovlapped.parent = g
+ return g, nil
+}
+
+// NOTE : Thread safe
+func (g *grip) register(cph syscall.Handle) (err error) {
+ if g.handle, err = syscall.CreateFile(
+ &g.pathw[0],
+ syscall.FILE_LIST_DIRECTORY,
+ syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE|syscall.FILE_SHARE_DELETE,
+ nil,
+ syscall.OPEN_EXISTING,
+ syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OVERLAPPED,
+ 0,
+ ); err != nil {
+ return
+ }
+ if _, err = syscall.CreateIoCompletionPort(g.handle, cph, 0, 0); err != nil {
+ syscall.CloseHandle(g.handle)
+ return
+ }
+ return g.readDirChanges()
+}
+
+// readDirChanges tells the system to store file change information in grip's
+// buffer. Directory changes that occur between calls to this function are added
+// to the buffer and then, returned with the next call.
+func (g *grip) readDirChanges() error {
+ return syscall.ReadDirectoryChanges(
+ g.handle,
+ &g.buffer[0],
+ uint32(unsafe.Sizeof(g.buffer)),
+ g.recursive,
+ encode(g.filter),
+ nil,
+ (*syscall.Overlapped)(unsafe.Pointer(g.ovlapped)),
+ 0,
+ )
+}
+
+// encode transforms a generic filter, which contains platform independent and
+// implementation specific bit fields, to value that can be used as NotifyFilter
+// parameter in ReadDirectoryChangesW function.
+func encode(filter uint32) uint32 {
+ e := Event(filter & (onlyNGlobalEvents | onlyNotifyChanges))
+ if e&dirmarker != 0 {
+ return uint32(FileNotifyChangeDirName)
+ }
+ if e&Create != 0 {
+ e = (e ^ Create) | FileNotifyChangeFileName
+ }
+ if e&Remove != 0 {
+ e = (e ^ Remove) | FileNotifyChangeFileName
+ }
+ if e&Write != 0 {
+ e = (e ^ Write) | FileNotifyChangeAttributes | FileNotifyChangeSize |
+ FileNotifyChangeCreation | FileNotifyChangeSecurity
+ }
+ if e&Rename != 0 {
+ e = (e ^ Rename) | FileNotifyChangeFileName
+ }
+ return uint32(e)
+}
+
+// watched is made in order to check whether an action comes from a directory or
+// file. This approach requires two file handlers per single monitored folder. The
+// second grip handles actions which include creating or deleting a directory. If
+// these processes are not monitored, only the first grip is created.
+type watched struct {
+ filter uint32
+ recursive bool
+ count uint8
+ pathw []uint16
+ digrip [2]*grip
+}
+
+// newWatched creates a new watched instance. It splits the filter variable into
+// two parts. The first part is responsible for watching all events which can be
+// created for a file in watched directory structure and the second one watches
+// only directory Create/Remove actions. If all operations succeed, the Create
+// message is sent to I/O completion port queue for further processing.
+func newWatched(cph syscall.Handle, filter uint32, recursive bool,
+ path string) (wd *watched, err error) {
+ wd = &watched{
+ filter: filter,
+ recursive: recursive,
+ }
+ if wd.pathw, err = syscall.UTF16FromString(path); err != nil {
+ return
+ }
+ if err = wd.recreate(cph); err != nil {
+ return
+ }
+ return wd, nil
+}
+
+// TODO : doc
+func (wd *watched) recreate(cph syscall.Handle) (err error) {
+ filefilter := wd.filter &^ uint32(FileNotifyChangeDirName)
+ if err = wd.updateGrip(0, cph, filefilter == 0, filefilter); err != nil {
+ return
+ }
+ dirfilter := wd.filter & uint32(FileNotifyChangeDirName|Create|Remove)
+ if err = wd.updateGrip(1, cph, dirfilter == 0, wd.filter|uint32(dirmarker)); err != nil {
+ return
+ }
+ wd.filter &^= onlyMachineStates
+ return
+}
+
+// TODO : doc
+func (wd *watched) updateGrip(idx int, cph syscall.Handle, reset bool,
+ newflag uint32) (err error) {
+ if reset {
+ wd.digrip[idx] = nil
+ } else {
+ if wd.digrip[idx] == nil {
+ if wd.digrip[idx], err = newGrip(cph, wd, newflag); err != nil {
+ wd.closeHandle()
+ return
+ }
+ } else {
+ wd.digrip[idx].filter = newflag
+ wd.digrip[idx].recursive = wd.recursive
+ if err = wd.digrip[idx].register(cph); err != nil {
+ wd.closeHandle()
+ return
+ }
+ }
+ wd.count++
+ }
+ return
+}
+
+// closeHandle closes handles that are stored in digrip array. Function always
+// tries to close all of the handlers before it exits, even when there are errors
+// returned from the operating system kernel.
+func (wd *watched) closeHandle() (err error) {
+ for _, g := range wd.digrip {
+ if g != nil && g.handle != syscall.InvalidHandle {
+ switch suberr := syscall.CloseHandle(g.handle); {
+ case suberr == nil:
+ g.handle = syscall.InvalidHandle
+ case err == nil:
+ err = suberr
+ }
+ }
+ }
+ return
+}
+
+// watcher implements Watcher interface. It stores a set of watched directories.
+// All operations which remove watched objects from map `m` must be performed in
+// loop goroutine since these structures are used internally by operating system.
+type readdcw struct {
+ sync.Mutex
+ m map[string]*watched
+ cph syscall.Handle
+ start bool
+ wg sync.WaitGroup
+ c chan<- EventInfo
+}
+
+// NewWatcher creates new non-recursive watcher backed by ReadDirectoryChangesW.
+func newWatcher(c chan<- EventInfo) watcher {
+ r := &readdcw{
+ m: make(map[string]*watched),
+ cph: syscall.InvalidHandle,
+ c: c,
+ }
+ runtime.SetFinalizer(r, func(r *readdcw) {
+ if r.cph != syscall.InvalidHandle {
+ syscall.CloseHandle(r.cph)
+ }
+ })
+ return r
+}
+
+// Watch implements notify.Watcher interface.
+func (r *readdcw) Watch(path string, event Event) error {
+ return r.watch(path, event, false)
+}
+
+// RecursiveWatch implements notify.RecursiveWatcher interface.
+func (r *readdcw) RecursiveWatch(path string, event Event) error {
+ return r.watch(path, event, true)
+}
+
+// watch inserts a directory to the group of watched folders. If watched folder
+// already exists, function tries to rewatch it with new filters(NOT VALID). Moreover,
+// watch starts the main event loop goroutine when called for the first time.
+func (r *readdcw) watch(path string, event Event, recursive bool) (err error) {
+ if event&^(All|fileNotifyChangeAll) != 0 {
+ return errors.New("notify: unknown event")
+ }
+ r.Lock()
+ wd, ok := r.m[path]
+ r.Unlock()
+ if !ok {
+ if err = r.lazyinit(); err != nil {
+ return
+ }
+ r.Lock()
+ if wd, ok = r.m[path]; ok {
+ r.Unlock()
+ return
+ }
+ if wd, err = newWatched(r.cph, uint32(event), recursive, path); err != nil {
+ r.Unlock()
+ return
+ }
+ r.m[path] = wd
+ r.Unlock()
+ }
+ return nil
+}
+
+// lazyinit creates an I/O completion port and starts the main event processing
+// loop. This method uses Double-Checked Locking optimization.
+func (r *readdcw) lazyinit() (err error) {
+ invalid := uintptr(syscall.InvalidHandle)
+ if atomic.LoadUintptr((*uintptr)(&r.cph)) == invalid {
+ r.Lock()
+ defer r.Unlock()
+ if atomic.LoadUintptr((*uintptr)(&r.cph)) == invalid {
+ cph := syscall.InvalidHandle
+ if cph, err = syscall.CreateIoCompletionPort(cph, 0, 0, 0); err != nil {
+ return
+ }
+ r.cph, r.start = cph, true
+ go r.loop()
+ }
+ }
+ return
+}
+
+// TODO(pknap) : doc
+func (r *readdcw) loop() {
+ var n, key uint32
+ var overlapped *syscall.Overlapped
+ for {
+ err := syscall.GetQueuedCompletionStatus(r.cph, &n, &key, &overlapped, syscall.INFINITE)
+ if key == stateCPClose {
+ r.Lock()
+ handle := r.cph
+ r.cph = syscall.InvalidHandle
+ r.Unlock()
+ syscall.CloseHandle(handle)
+ r.wg.Done()
+ return
+ }
+ if overlapped == nil {
+ // TODO: check key == rewatch delete or 0(panic)
+ continue
+ }
+ overEx := (*overlappedEx)(unsafe.Pointer(overlapped))
+ if n == 0 {
+ r.loopstate(overEx)
+ } else {
+ r.loopevent(n, overEx)
+ if err = overEx.parent.readDirChanges(); err != nil {
+ // TODO: error handling
+ }
+ }
+ }
+}
+
+// TODO(pknap) : doc
+func (r *readdcw) loopstate(overEx *overlappedEx) {
+ filter := atomic.LoadUint32(&overEx.parent.parent.filter)
+ if filter&onlyMachineStates == 0 {
+ return
+ }
+ if overEx.parent.parent.count--; overEx.parent.parent.count == 0 {
+ switch filter & onlyMachineStates {
+ case stateRewatch:
+ r.Lock()
+ overEx.parent.parent.recreate(r.cph)
+ r.Unlock()
+ case stateUnwatch:
+ r.Lock()
+ delete(r.m, syscall.UTF16ToString(overEx.parent.pathw))
+ r.Unlock()
+ case stateCPClose:
+ default:
+ panic(`notify: windows loopstate logic error`)
+ }
+ }
+}
+
+// TODO(pknap) : doc
+func (r *readdcw) loopevent(n uint32, overEx *overlappedEx) {
+ events := []*event{}
+ var currOffset uint32
+ for {
+ raw := (*syscall.FileNotifyInformation)(unsafe.Pointer(&overEx.parent.buffer[currOffset]))
+ name := syscall.UTF16ToString((*[syscall.MAX_LONG_PATH]uint16)(unsafe.Pointer(&raw.FileName))[:raw.FileNameLength>>1])
+ events = append(events, &event{
+ pathw: overEx.parent.pathw,
+ filter: overEx.parent.filter,
+ action: raw.Action,
+ name: name,
+ })
+ if raw.NextEntryOffset == 0 {
+ break
+ }
+ if currOffset += raw.NextEntryOffset; currOffset >= n {
+ break
+ }
+ }
+ r.send(events)
+}
+
+// TODO(pknap) : doc
+func (r *readdcw) send(es []*event) {
+ for _, e := range es {
+ var syse Event
+ if e.e, syse = decode(e.filter, e.action); e.e == 0 && syse == 0 {
+ continue
+ }
+ switch {
+ case e.action == syscall.FILE_ACTION_MODIFIED:
+ e.ftype = fTypeUnknown
+ case e.filter&uint32(dirmarker) != 0:
+ e.ftype = fTypeDirectory
+ default:
+ e.ftype = fTypeFile
+ }
+ switch {
+ case e.e == 0:
+ e.e = syse
+ case syse != 0:
+ r.c <- &event{
+ pathw: e.pathw,
+ name: e.name,
+ ftype: e.ftype,
+ action: e.action,
+ filter: e.filter,
+ e: syse,
+ }
+ }
+ r.c <- e
+ }
+}
+
+// Rewatch implements notify.Rewatcher interface.
+func (r *readdcw) Rewatch(path string, oldevent, newevent Event) error {
+ return r.rewatch(path, uint32(oldevent), uint32(newevent), false)
+}
+
+// RecursiveRewatch implements notify.RecursiveRewatcher interface.
+func (r *readdcw) RecursiveRewatch(oldpath, newpath string, oldevent,
+ newevent Event) error {
+ if oldpath != newpath {
+ if err := r.unwatch(oldpath); err != nil {
+ return err
+ }
+ return r.watch(newpath, newevent, true)
+ }
+ return r.rewatch(newpath, uint32(oldevent), uint32(newevent), true)
+}
+
+// TODO : (pknap) doc.
+func (r *readdcw) rewatch(path string, oldevent, newevent uint32, recursive bool) (err error) {
+ if Event(newevent)&^(All|fileNotifyChangeAll) != 0 {
+ return errors.New("notify: unknown event")
+ }
+ var wd *watched
+ r.Lock()
+ if wd, err = r.nonStateWatched(path); err != nil {
+ r.Unlock()
+ return
+ }
+ if wd.filter&(onlyNotifyChanges|onlyNGlobalEvents) != oldevent {
+ panic(`notify: windows re-watcher logic error`)
+ }
+ wd.filter = stateRewatch | newevent
+ wd.recursive, recursive = recursive, wd.recursive
+ if err = wd.closeHandle(); err != nil {
+ wd.filter = oldevent
+ wd.recursive = recursive
+ r.Unlock()
+ return
+ }
+ r.Unlock()
+ return
+}
+
+// TODO : pknap
+func (r *readdcw) nonStateWatched(path string) (wd *watched, err error) {
+ wd, ok := r.m[path]
+ if !ok || wd == nil {
+ err = errors.New(`notify: ` + path + ` path is unwatched`)
+ return
+ }
+ if filter := atomic.LoadUint32(&wd.filter); filter&onlyMachineStates != 0 {
+ err = errors.New(`notify: another re/unwatching operation in progress`)
+ return
+ }
+ return
+}
+
+// Unwatch implements notify.Watcher interface.
+func (r *readdcw) Unwatch(path string) error {
+ return r.unwatch(path)
+}
+
+// RecursiveUnwatch implements notify.RecursiveWatcher interface.
+func (r *readdcw) RecursiveUnwatch(path string) error {
+ return r.unwatch(path)
+}
+
+// TODO : pknap
+func (r *readdcw) unwatch(path string) (err error) {
+ var wd *watched
+ r.Lock()
+ if wd, err = r.nonStateWatched(path); err != nil {
+ r.Unlock()
+ return
+ }
+ wd.filter |= stateUnwatch
+ if err = wd.closeHandle(); err != nil {
+ wd.filter &^= stateUnwatch
+ r.Unlock()
+ return
+ }
+ r.Unlock()
+ return
+}
+
+// Close resets the whole watcher object, closes all existing file descriptors,
+// and sends stateCPClose state as completion key to the main watcher's loop.
+func (r *readdcw) Close() (err error) {
+ r.Lock()
+ if !r.start {
+ r.Unlock()
+ return nil
+ }
+ for _, wd := range r.m {
+ wd.filter &^= onlyMachineStates
+ wd.filter |= stateCPClose
+ if e := wd.closeHandle(); e != nil && err == nil {
+ err = e
+ }
+ }
+ r.start = false
+ r.Unlock()
+ r.wg.Add(1)
+ if e := syscall.PostQueuedCompletionStatus(r.cph, 0, stateCPClose, nil); e != nil && err == nil {
+ return e
+ }
+ r.wg.Wait()
+ return
+}
+
+// decode creates a notify event from both non-raw filter and action which was
+// returned from completion routine. Function may return Event(0) in case when
+// filter was replaced by a new value which does not contain fields that are
+// valid with passed action.
+func decode(filter, action uint32) (Event, Event) {
+ switch action {
+ case syscall.FILE_ACTION_ADDED:
+ return gensys(filter, Create, FileActionAdded)
+ case syscall.FILE_ACTION_REMOVED:
+ return gensys(filter, Remove, FileActionRemoved)
+ case syscall.FILE_ACTION_MODIFIED:
+ return gensys(filter, Write, FileActionModified)
+ case syscall.FILE_ACTION_RENAMED_OLD_NAME:
+ return gensys(filter, Rename, FileActionRenamedOldName)
+ case syscall.FILE_ACTION_RENAMED_NEW_NAME:
+ return gensys(filter, Rename, FileActionRenamedNewName)
+ }
+ panic(`notify: cannot decode internal mask`)
+}
+
+// gensys decides whether the Windows action, system-independent event or both
+// of them should be returned. Since the grip's filter may be atomically changed
+// during watcher lifetime, it is possible that neither Windows nor notify masks
+// are watched by the user when this function is called.
+func gensys(filter uint32, ge, se Event) (gene, syse Event) {
+ isdir := filter&uint32(dirmarker) != 0
+ if isdir && filter&uint32(FileNotifyChangeDirName) != 0 ||
+ !isdir && filter&uint32(FileNotifyChangeFileName) != 0 ||
+ filter&uint32(fileNotifyChangeModified) != 0 {
+ syse = se
+ }
+ if filter&uint32(ge) != 0 {
+ gene = ge
+ }
+ return
+}
diff --git a/vendor/github.com/rjeczalik/notify/watcher_stub.go b/vendor/github.com/rjeczalik/notify/watcher_stub.go
new file mode 100644
index 000000000..68b9c135b
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_stub.go
@@ -0,0 +1,23 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build !darwin,!linux,!freebsd,!dragonfly,!netbsd,!openbsd,!windows
+// +build !kqueue,!solaris
+
+package notify
+
+import "errors"
+
+type stub struct{ error }
+
+// newWatcher stub.
+func newWatcher(chan<- EventInfo) watcher {
+ return stub{errors.New("notify: not implemented")}
+}
+
+// Following methods implement notify.watcher interface.
+func (s stub) Watch(string, Event) error { return s }
+func (s stub) Rewatch(string, Event, Event) error { return s }
+func (s stub) Unwatch(string) (err error) { return s }
+func (s stub) Close() error { return s }
diff --git a/vendor/github.com/rjeczalik/notify/watcher_trigger.go b/vendor/github.com/rjeczalik/notify/watcher_trigger.go
new file mode 100644
index 000000000..f25a6fcbf
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watcher_trigger.go
@@ -0,0 +1,438 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build darwin,kqueue dragonfly freebsd netbsd openbsd solaris
+
+// watcher_trigger is used for FEN and kqueue which behave similarly:
+// only files and dirs can be watched directly, but not files inside dirs.
+// As a result Create events have to be generated by implementation when
+// after Write event is returned for watched dir, it is rescanned and Create
+// event is returned for new files and these are automatically added
+// to watchlist. In case of removal of watched directory, native system returns
+// events for all files, but for Rename, they also need to be generated.
+// As a result native system works as something like trigger for rescan,
+// but contains additional data about dir in which changes occurred. For files
+// detailed data is returned.
+// Usage of watcher_trigger requires:
+// - trigger implementation,
+// - encode func,
+// - not2nat, nat2not maps.
+// Required manual operations on filesystem can lead to loss of precision.
+
+package notify
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+ "sync"
+ "syscall"
+)
+
+// trigger is to be implemented by platform implementation like FEN or kqueue.
+type trigger interface {
+ // Close closes watcher's main native file descriptor.
+ Close() error
+ // Stop waiting for new events.
+ Stop() error
+ // Create new instance of watched.
+ NewWatched(string, os.FileInfo) (*watched, error)
+ // Record internally new *watched instance.
+ Record(*watched)
+ // Del removes internal copy of *watched instance.
+ Del(*watched)
+ // Watched returns *watched instance and native events for native type.
+ Watched(interface{}) (*watched, int64, error)
+ // Init initializes native watcher call.
+ Init() error
+ // Watch starts watching provided file/dir.
+ Watch(os.FileInfo, *watched, int64) error
+ // Unwatch stops watching provided file/dir.
+ Unwatch(*watched) error
+ // Wait for new events.
+ Wait() (interface{}, error)
+ // IsStop checks if Wait finished because of request watcher's stop.
+ IsStop(n interface{}, err error) bool
+}
+
+// encode Event to native representation. Implementation is to be provided by
+// platform specific implementation.
+var encode func(Event) int64
+
+var (
+ // nat2not matches native events to notify's ones. To be initialized by
+ // platform dependent implementation.
+ nat2not map[Event]Event
+ // not2nat matches notify's events to native ones. To be initialized by
+ // platform dependent implementation.
+ not2nat map[Event]Event
+)
+
+// trg is a main structure implementing watcher.
+type trg struct {
+ sync.Mutex
+ // s is a channel used to stop monitoring.
+ s chan struct{}
+ // c is a channel used to pass events further.
+ c chan<- EventInfo
+ // pthLkp is a data structure mapping file names with data about watching
+ // represented by them files/directories.
+ pthLkp map[string]*watched
+ // t is a platform dependent implementation of trigger.
+ t trigger
+}
+
+// newWatcher returns new watcher's implementation.
+func newWatcher(c chan<- EventInfo) watcher {
+ t := &trg{
+ s: make(chan struct{}, 1),
+ pthLkp: make(map[string]*watched, 0),
+ c: c,
+ }
+ t.t = newTrigger(t.pthLkp)
+ if err := t.t.Init(); err != nil {
+ panic(err)
+ }
+ go t.monitor()
+ return t
+}
+
+// Close implements watcher.
+func (t *trg) Close() (err error) {
+ t.Lock()
+ if err = t.t.Stop(); err != nil {
+ t.Unlock()
+ return
+ }
+ <-t.s
+ var e error
+ for _, w := range t.pthLkp {
+ if e = t.unwatch(w.p, w.fi); e != nil {
+ dbgprintf("trg: unwatch %q failed: %q\n", w.p, e)
+ err = nonil(err, e)
+ }
+ }
+ if e = t.t.Close(); e != nil {
+ dbgprintf("trg: closing native watch failed: %q\n", e)
+ err = nonil(err, e)
+ }
+ t.Unlock()
+ return
+}
+
+// send reported events one by one through chan.
+func (t *trg) send(evn []event) {
+ for i := range evn {
+ t.c <- &evn[i]
+ }
+}
+
+// singlewatch starts to watch given p file/directory.
+func (t *trg) singlewatch(p string, e Event, direct mode, fi os.FileInfo) (err error) {
+ w, ok := t.pthLkp[p]
+ if !ok {
+ if w, err = t.t.NewWatched(p, fi); err != nil {
+ return
+ }
+ }
+ switch direct {
+ case dir:
+ w.eDir |= e
+ case ndir:
+ w.eNonDir |= e
+ case both:
+ w.eDir |= e
+ w.eNonDir |= e
+ }
+ var ee int64
+ // Native Write event is added to wait for Create events (Write event on
+ // directory triggers it's rescan).
+ if e&Create != 0 && fi.IsDir() {
+ ee = int64(not2nat[Write])
+ }
+ if err = t.t.Watch(fi, w, encode(w.eDir|w.eNonDir)|ee); err != nil {
+ return
+ }
+ if !ok {
+ t.t.Record(w)
+ return nil
+ }
+ return errAlreadyWatched
+}
+
+// decode converts event received from native to notify.Event
+// representation taking into account requested events (w).
+func decode(o int64, w Event) (e Event) {
+ for f, n := range nat2not {
+ if o&int64(f) != 0 {
+ if w&f != 0 {
+ e |= f
+ }
+ if w&n != 0 {
+ e |= n
+ }
+ }
+ }
+
+ return
+}
+
+func (t *trg) watch(p string, e Event, fi os.FileInfo) error {
+ if err := t.singlewatch(p, e, dir, fi); err != nil {
+ if err != errAlreadyWatched {
+ return nil
+ }
+ }
+ if fi.IsDir() {
+ err := t.walk(p, func(fi os.FileInfo) (err error) {
+ if err = t.singlewatch(filepath.Join(p, fi.Name()), e, ndir,
+ fi); err != nil {
+ if err != errAlreadyWatched {
+ return
+ }
+ }
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// walk runs f func on each file/dir from p directory.
+func (t *trg) walk(p string, fn func(os.FileInfo) error) error {
+ fp, err := os.Open(p)
+ if err != nil {
+ return err
+ }
+ ls, err := fp.Readdir(0)
+ fp.Close()
+ if err != nil {
+ return err
+ }
+ for i := range ls {
+ if err := fn(ls[i]); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func (t *trg) unwatch(p string, fi os.FileInfo) error {
+ if fi.IsDir() {
+ err := t.walk(p, func(fi os.FileInfo) error {
+ err := t.singleunwatch(filepath.Join(p, fi.Name()), ndir)
+ if err != errNotWatched {
+ return err
+ }
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+ }
+ return t.singleunwatch(p, dir)
+}
+
+// Watch implements Watcher interface.
+func (t *trg) Watch(p string, e Event) error {
+ fi, err := os.Stat(p)
+ if err != nil {
+ return err
+ }
+ t.Lock()
+ err = t.watch(p, e, fi)
+ t.Unlock()
+ return err
+}
+
+// Unwatch implements Watcher interface.
+func (t *trg) Unwatch(p string) error {
+ fi, err := os.Stat(p)
+ if err != nil {
+ return err
+ }
+ t.Lock()
+ err = t.unwatch(p, fi)
+ t.Unlock()
+ return err
+}
+
+// Rewatch implements Watcher interface.
+//
+// TODO(rjeczalik): This is a naive hack. Rewrite might help.
+func (t *trg) Rewatch(p string, _, e Event) error {
+ fi, err := os.Stat(p)
+ if err != nil {
+ return err
+ }
+ t.Lock()
+ if err = t.unwatch(p, fi); err == nil {
+ // TODO(rjeczalik): If watch fails then we leave trigger in inconsistent
+ // state. Handle? Panic? Native version of rewatch?
+ err = t.watch(p, e, fi)
+ }
+ t.Unlock()
+ return nil
+}
+
+func (*trg) file(w *watched, n interface{}, e Event) (evn []event) {
+ evn = append(evn, event{w.p, e, w.fi.IsDir(), n})
+ return
+}
+
+func (t *trg) dir(w *watched, n interface{}, e, ge Event) (evn []event) {
+ // If it's dir and delete we have to send it and continue, because
+ // other processing relies on opening (in this case not existing) dir.
+ // Events for contents of this dir are reported by native impl.
+ // However events for rename must be generated for all monitored files
+ // inside of moved directory, because native impl does not report it independently
+ // for each file descriptor being moved in result of move action on
+ // parent dirLiczba dostępnych dni urlopowych: 0ectory.
+ if (ge & (not2nat[Rename] | not2nat[Remove])) != 0 {
+ // Write is reported also for Remove on directory. Because of that
+ // we have to filter it out explicitly.
+ evn = append(evn, event{w.p, e & ^Write & ^not2nat[Write], true, n})
+ if ge&not2nat[Rename] != 0 {
+ for p := range t.pthLkp {
+ if strings.HasPrefix(p, w.p+string(os.PathSeparator)) {
+ if err := t.singleunwatch(p, both); err != nil && err != errNotWatched &&
+ !os.IsNotExist(err) {
+ dbgprintf("trg: failed stop watching moved file (%q): %q\n",
+ p, err)
+ }
+ if (w.eDir|w.eNonDir)&(not2nat[Rename]|Rename) != 0 {
+ evn = append(evn, event{
+ p, (w.eDir | w.eNonDir) & e &^ Write &^ not2nat[Write],
+ w.fi.IsDir(), nil,
+ })
+ }
+ }
+ }
+ }
+ t.t.Del(w)
+ return
+ }
+ if (ge & not2nat[Write]) != 0 {
+ switch err := t.walk(w.p, func(fi os.FileInfo) error {
+ p := filepath.Join(w.p, fi.Name())
+ switch err := t.singlewatch(p, w.eDir, ndir, fi); {
+ case os.IsNotExist(err) && ((w.eDir & Remove) != 0):
+ evn = append(evn, event{p, Remove, fi.IsDir(), n})
+ case err == errAlreadyWatched:
+ case err != nil:
+ dbgprintf("trg: watching %q failed: %q", p, err)
+ case (w.eDir & Create) != 0:
+ evn = append(evn, event{p, Create, fi.IsDir(), n})
+ default:
+ }
+ return nil
+ }); {
+ case os.IsNotExist(err):
+ return
+ case err != nil:
+ dbgprintf("trg: dir processing failed: %q", err)
+ default:
+ }
+ }
+ return
+}
+
+type mode uint
+
+const (
+ dir mode = iota
+ ndir
+ both
+)
+
+// unwatch stops watching p file/directory.
+func (t *trg) singleunwatch(p string, direct mode) error {
+ w, ok := t.pthLkp[p]
+ if !ok {
+ return errNotWatched
+ }
+ switch direct {
+ case dir:
+ w.eDir = 0
+ case ndir:
+ w.eNonDir = 0
+ case both:
+ w.eDir, w.eNonDir = 0, 0
+ }
+ if err := t.t.Unwatch(w); err != nil {
+ return err
+ }
+ if w.eNonDir|w.eDir != 0 {
+ mod := dir
+ if w.eNonDir == 0 {
+ mod = ndir
+ }
+ if err := t.singlewatch(p, w.eNonDir|w.eDir, mod,
+ w.fi); err != nil && err != errAlreadyWatched {
+ return err
+ }
+ } else {
+ t.t.Del(w)
+ }
+ return nil
+}
+
+func (t *trg) monitor() {
+ var (
+ n interface{}
+ err error
+ )
+ for {
+ switch n, err = t.t.Wait(); {
+ case err == syscall.EINTR:
+ case t.t.IsStop(n, err):
+ t.s <- struct{}{}
+ return
+ case err != nil:
+ dbgprintf("trg: failed to read events: %q\n", err)
+ default:
+ t.send(t.process(n))
+ }
+ }
+}
+
+// process event returned by port_get call.
+func (t *trg) process(n interface{}) (evn []event) {
+ t.Lock()
+ w, ge, err := t.t.Watched(n)
+ if err != nil {
+ t.Unlock()
+ dbgprintf("trg: %v event lookup failed: %q", Event(ge), err)
+ return
+ }
+
+ e := decode(ge, w.eDir|w.eNonDir)
+ if ge&int64(not2nat[Remove]|not2nat[Rename]) == 0 {
+ switch fi, err := os.Stat(w.p); {
+ case err != nil:
+ default:
+ if err = t.t.Watch(fi, w, (encode(w.eDir | w.eNonDir))); err != nil {
+ dbgprintf("trg: %q is no longer watched: %q", w.p, err)
+ t.t.Del(w)
+ }
+ }
+ }
+ if e == Event(0) {
+ t.Unlock()
+ return
+ }
+
+ if w.fi.IsDir() {
+ evn = append(evn, t.dir(w, n, e, Event(ge))...)
+ } else {
+ evn = append(evn, t.file(w, n, e)...)
+ }
+ if Event(ge)&(not2nat[Remove]|not2nat[Rename]) != 0 {
+ t.t.Del(w)
+ }
+ t.Unlock()
+ return
+}
diff --git a/vendor/github.com/rjeczalik/notify/watchpoint.go b/vendor/github.com/rjeczalik/notify/watchpoint.go
new file mode 100644
index 000000000..5afc914f4
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watchpoint.go
@@ -0,0 +1,103 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+package notify
+
+// EventDiff describes a change to an event set - EventDiff[0] is an old state,
+// while EventDiff[1] is a new state. If event set has not changed (old == new),
+// functions typically return the None value.
+type eventDiff [2]Event
+
+func (diff eventDiff) Event() Event {
+ return diff[1] &^ diff[0]
+}
+
+// Watchpoint
+//
+// The nil key holds total event set - logical sum for all registered events.
+// It speeds up computing EventDiff for Add method.
+//
+// The rec key holds an event set for a watchpoints created by RecursiveWatch
+// for a Watcher implementation which is not natively recursive.
+type watchpoint map[chan<- EventInfo]Event
+
+// None is an empty event diff, think null object.
+var none eventDiff
+
+// rec is just a placeholder
+var rec = func() (ch chan<- EventInfo) {
+ ch = make(chan<- EventInfo)
+ close(ch)
+ return
+}()
+
+func (wp watchpoint) dryAdd(ch chan<- EventInfo, e Event) eventDiff {
+ if e &^= internal; wp[ch]&e == e {
+ return none
+ }
+ total := wp[ch] &^ internal
+ return eventDiff{total, total | e}
+}
+
+// Add assumes neither c nor e are nil or zero values.
+func (wp watchpoint) Add(c chan<- EventInfo, e Event) (diff eventDiff) {
+ wp[c] |= e
+ diff[0] = wp[nil]
+ diff[1] = diff[0] | e
+ wp[nil] = diff[1] &^ omit
+ // Strip diff from internal events.
+ diff[0] &^= internal
+ diff[1] &^= internal
+ if diff[0] == diff[1] {
+ return none
+ }
+ return
+}
+
+func (wp watchpoint) Del(c chan<- EventInfo, e Event) (diff eventDiff) {
+ wp[c] &^= e
+ if wp[c] == 0 {
+ delete(wp, c)
+ }
+ diff[0] = wp[nil]
+ delete(wp, nil)
+ if len(wp) != 0 {
+ // Recalculate total event set.
+ for _, e := range wp {
+ diff[1] |= e
+ }
+ wp[nil] = diff[1] &^ omit
+ }
+ // Strip diff from internal events.
+ diff[0] &^= internal
+ diff[1] &^= internal
+ if diff[0] == diff[1] {
+ return none
+ }
+ return
+}
+
+func (wp watchpoint) Dispatch(ei EventInfo, extra Event) {
+ e := eventmask(ei, extra)
+ if !matches(wp[nil], e) {
+ return
+ }
+ for ch, eset := range wp {
+ if ch != nil && matches(eset, e) {
+ select {
+ case ch <- ei:
+ default: // Drop event if receiver is too slow
+ dbgprintf("dropped %s on %q: receiver too slow", ei.Event(), ei.Path())
+ }
+ }
+ }
+}
+
+func (wp watchpoint) Total() Event {
+ return wp[nil] &^ internal
+}
+
+func (wp watchpoint) IsRecursive() bool {
+ return wp[nil]&recursive != 0
+}
diff --git a/vendor/github.com/rjeczalik/notify/watchpoint_other.go b/vendor/github.com/rjeczalik/notify/watchpoint_other.go
new file mode 100644
index 000000000..881631c99
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watchpoint_other.go
@@ -0,0 +1,23 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build !windows
+
+package notify
+
+// eventmask uses ei to create a new event which contains internal flags used by
+// notify package logic.
+func eventmask(ei EventInfo, extra Event) Event {
+ return ei.Event() | extra
+}
+
+// matches reports a match only when:
+//
+// - for user events, when event is present in the given set
+// - for internal events, when additionaly both event and set have omit bit set
+//
+// Internal events must not be sent to user channels and vice versa.
+func matches(set, event Event) bool {
+ return (set&omit)^(event&omit) == 0 && set&event == event
+}
diff --git a/vendor/github.com/rjeczalik/notify/watchpoint_readdcw.go b/vendor/github.com/rjeczalik/notify/watchpoint_readdcw.go
new file mode 100644
index 000000000..9fd1e1df3
--- /dev/null
+++ b/vendor/github.com/rjeczalik/notify/watchpoint_readdcw.go
@@ -0,0 +1,38 @@
+// Copyright (c) 2014-2015 The Notify Authors. All rights reserved.
+// Use of this source code is governed by the MIT license that can be
+// found in the LICENSE file.
+
+// +build windows
+
+package notify
+
+// eventmask uses ei to create a new event which contains internal flags used by
+// notify package logic. If one of FileAction* masks is detected, this function
+// adds corresponding FileNotifyChange* values. This allows non registered
+// FileAction* events to be passed on.
+func eventmask(ei EventInfo, extra Event) (e Event) {
+ if e = ei.Event() | extra; e&fileActionAll != 0 {
+ if ev, ok := ei.(*event); ok {
+ switch ev.ftype {
+ case fTypeFile:
+ e |= FileNotifyChangeFileName
+ case fTypeDirectory:
+ e |= FileNotifyChangeDirName
+ case fTypeUnknown:
+ e |= fileNotifyChangeModified
+ }
+ return e &^ fileActionAll
+ }
+ }
+ return
+}
+
+// matches reports a match only when:
+//
+// - for user events, when event is present in the given set
+// - for internal events, when additionally both event and set have omit bit set
+//
+// Internal events must not be sent to user channels and vice versa.
+func matches(set, event Event) bool {
+ return (set&omit)^(event&omit) == 0 && (set&event == event || set&fileNotifyChangeModified&event != 0)
+}
diff --git a/vendor/github.com/robertkrimen/otto/.gitignore b/vendor/github.com/robertkrimen/otto/.gitignore
new file mode 100644
index 000000000..8c2a16949
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/.gitignore
@@ -0,0 +1,5 @@
+/.test
+/otto/otto
+/otto/otto-*
+/test/test-*.js
+/test/tester
diff --git a/vendor/github.com/robertkrimen/otto/DESIGN.markdown b/vendor/github.com/robertkrimen/otto/DESIGN.markdown
new file mode 100644
index 000000000..288752987
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/DESIGN.markdown
@@ -0,0 +1 @@
+* Designate the filename of "anonymous" source code by the hash (md5/sha1, etc.)
diff --git a/vendor/github.com/robertkrimen/otto/LICENSE b/vendor/github.com/robertkrimen/otto/LICENSE
new file mode 100644
index 000000000..b6179fe38
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/LICENSE
@@ -0,0 +1,7 @@
+Copyright (c) 2012 Robert Krimen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/github.com/robertkrimen/otto/Makefile b/vendor/github.com/robertkrimen/otto/Makefile
new file mode 100644
index 000000000..9868db3ca
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/Makefile
@@ -0,0 +1,63 @@
+.PHONY: test test-race test-release release release-check test-262
+.PHONY: parser
+.PHONY: otto assets underscore
+
+TESTS := \
+ ~
+
+TEST := -v --run
+TEST := -v
+TEST := -v --run Test\($(subst $(eval) ,\|,$(TESTS))\)
+TEST := .
+
+test: parser inline.go
+ go test -i
+ go test $(TEST)
+ @echo PASS
+
+parser:
+ $(MAKE) -C parser
+
+inline.go: inline.pl
+ ./$< > $@
+
+#################
+# release, test #
+#################
+
+release: test-race test-release
+ for package in . parser token ast file underscore registry; do (cd $$package && godocdown --signature > README.markdown); done
+ @echo \*\*\* make release-check
+ @echo PASS
+
+release-check: .test
+ $(MAKE) -C test build test
+ $(MAKE) -C .test/test262 build test
+ @echo PASS
+
+test-262: .test
+ $(MAKE) -C .test/test262 build test
+ @echo PASS
+
+test-release:
+ go test -i
+ go test
+
+test-race:
+ go test -race -i
+ go test -race
+
+#################################
+# otto, assets, underscore, ... #
+#################################
+
+otto:
+ $(MAKE) -C otto
+
+assets:
+ mkdir -p .assets
+ for file in underscore/test/*.js; do tr "\`" "_" < $$file > .assets/`basename $$file`; done
+
+underscore:
+ $(MAKE) -C $@
+
diff --git a/vendor/github.com/robertkrimen/otto/README.markdown b/vendor/github.com/robertkrimen/otto/README.markdown
new file mode 100644
index 000000000..ed14f0ae9
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/README.markdown
@@ -0,0 +1,871 @@
+# otto
+--
+```go
+import "github.com/robertkrimen/otto"
+```
+
+Package otto is a JavaScript parser and interpreter written natively in Go.
+
+http://godoc.org/github.com/robertkrimen/otto
+
+```go
+import (
+ "github.com/robertkrimen/otto"
+)
+```
+
+Run something in the VM
+
+```go
+vm := otto.New()
+vm.Run(`
+ abc = 2 + 2;
+ console.log("The value of abc is " + abc); // 4
+`)
+```
+
+Get a value out of the VM
+
+```go
+if value, err := vm.Get("abc"); err == nil {
+ if value_int, err := value.ToInteger(); err == nil {
+ fmt.Printf("", value_int, err)
+ }
+}
+```
+
+Set a number
+
+```go
+vm.Set("def", 11)
+vm.Run(`
+ console.log("The value of def is " + def);
+ // The value of def is 11
+`)
+```
+
+Set a string
+
+```go
+vm.Set("xyzzy", "Nothing happens.")
+vm.Run(`
+ console.log(xyzzy.length); // 16
+`)
+```
+
+Get the value of an expression
+
+```go
+value, _ = vm.Run("xyzzy.length")
+{
+ // value is an int64 with a value of 16
+ value, _ := value.ToInteger()
+}
+```
+
+An error happens
+
+```go
+value, err = vm.Run("abcdefghijlmnopqrstuvwxyz.length")
+if err != nil {
+ // err = ReferenceError: abcdefghijlmnopqrstuvwxyz is not defined
+ // If there is an error, then value.IsUndefined() is true
+ ...
+}
+```
+
+Set a Go function
+
+```go
+vm.Set("sayHello", func(call otto.FunctionCall) otto.Value {
+ fmt.Printf("Hello, %s.\n", call.Argument(0).String())
+ return otto.Value{}
+})
+```
+
+Set a Go function that returns something useful
+
+```go
+vm.Set("twoPlus", func(call otto.FunctionCall) otto.Value {
+ right, _ := call.Argument(0).ToInteger()
+ result, _ := vm.ToValue(2 + right)
+ return result
+})
+```
+
+Use the functions in JavaScript
+
+```go
+result, _ = vm.Run(`
+ sayHello("Xyzzy"); // Hello, Xyzzy.
+ sayHello(); // Hello, undefined
+
+ result = twoPlus(2.0); // 4
+`)
+```
+
+### Parser
+
+A separate parser is available in the parser package if you're just interested
+in building an AST.
+
+http://godoc.org/github.com/robertkrimen/otto/parser
+
+Parse and return an AST
+
+```go
+filenamee := "" // A filename is optional
+src := `
+ // Sample xyzzy example
+ (function(){
+ if (3.14159 > 0) {
+ console.log("Hello, World.");
+ return;
+ }
+
+ var xyzzy = NaN;
+ console.log("Nothing happens.");
+ return xyzzy;
+ })();
+`
+
+// Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+program, err := parser.ParseFile(nil, filename, src, 0)
+```
+
+### otto
+
+You can run (Go) JavaScript from the commandline with:
+http://github.com/robertkrimen/otto/tree/master/otto
+
+ $ go get -v github.com/robertkrimen/otto/otto
+
+Run JavaScript by entering some source on stdin or by giving otto a filename:
+
+ $ otto example.js
+
+### underscore
+
+Optionally include the JavaScript utility-belt library, underscore, with this
+import:
+
+```go
+import (
+ "github.com/robertkrimen/otto"
+ _ "github.com/robertkrimen/otto/underscore"
+)
+
+// Now every otto runtime will come loaded with underscore
+```
+
+For more information: http://github.com/robertkrimen/otto/tree/master/underscore
+
+
+### Caveat Emptor
+
+The following are some limitations with otto:
+
+ * "use strict" will parse, but does nothing.
+ * The regular expression engine (re2/regexp) is not fully compatible with the ECMA5 specification.
+ * Otto targets ES5. ES6 features (eg: Typed Arrays) are not supported.
+
+
+### Regular Expression Incompatibility
+
+Go translates JavaScript-style regular expressions into something that is
+"regexp" compatible via `parser.TransformRegExp`. Unfortunately, RegExp requires
+backtracking for some patterns, and backtracking is not supported by the
+standard Go engine: https://code.google.com/p/re2/wiki/Syntax
+
+Therefore, the following syntax is incompatible:
+
+ (?=) // Lookahead (positive), currently a parsing error
+ (?!) // Lookahead (backhead), currently a parsing error
+ \1 // Backreference (\1, \2, \3, ...), currently a parsing error
+
+A brief discussion of these limitations: "Regexp (?!re)"
+https://groups.google.com/forum/?fromgroups=#%21topic/golang-nuts/7qgSDWPIh_E
+
+More information about re2: https://code.google.com/p/re2/
+
+In addition to the above, re2 (Go) has a different definition for \s: [\t\n\f\r
+]. The JavaScript definition, on the other hand, also includes \v, Unicode
+"Separator, Space", etc.
+
+
+### Halting Problem
+
+If you want to stop long running executions (like third-party code), you can use
+the interrupt channel to do this:
+
+```go
+package main
+
+import (
+ "errors"
+ "fmt"
+ "os"
+ "time"
+
+ "github.com/robertkrimen/otto"
+)
+
+var halt = errors.New("Stahp")
+
+func main() {
+ runUnsafe(`var abc = [];`)
+ runUnsafe(`
+ while (true) {
+ // Loop forever
+ }`)
+}
+
+func runUnsafe(unsafe string) {
+ start := time.Now()
+ defer func() {
+ duration := time.Since(start)
+ if caught := recover(); caught != nil {
+ if caught == halt {
+ fmt.Fprintf(os.Stderr, "Some code took to long! Stopping after: %v\n", duration)
+ return
+ }
+ panic(caught) // Something else happened, repanic!
+ }
+ fmt.Fprintf(os.Stderr, "Ran code successfully: %v\n", duration)
+ }()
+
+ vm := otto.New()
+ vm.Interrupt = make(chan func(), 1) // The buffer prevents blocking
+
+ go func() {
+ time.Sleep(2 * time.Second) // Stop after two seconds
+ vm.Interrupt <- func() {
+ panic(halt)
+ }
+ }()
+
+ vm.Run(unsafe) // Here be dragons (risky code)
+}
+```
+
+Where is setTimeout/setInterval?
+
+These timing functions are not actually part of the ECMA-262 specification.
+Typically, they belong to the `window` object (in the browser). It would not be
+difficult to provide something like these via Go, but you probably want to wrap
+otto in an event loop in that case.
+
+For an example of how this could be done in Go with otto, see natto:
+
+http://github.com/robertkrimen/natto
+
+Here is some more discussion of the issue:
+
+* http://book.mixu.net/node/ch2.html
+
+* http://en.wikipedia.org/wiki/Reentrancy_%28computing%29
+
+* http://aaroncrane.co.uk/2009/02/perl_safe_signals/
+
+## Usage
+
+```go
+var ErrVersion = errors.New("version mismatch")
+```
+
+#### type Error
+
+```go
+type Error struct {
+}
+```
+
+An Error represents a runtime error, e.g. a TypeError, a ReferenceError, etc.
+
+#### func (Error) Error
+
+```go
+func (err Error) Error() string
+```
+Error returns a description of the error
+
+ TypeError: 'def' is not a function
+
+#### func (Error) String
+
+```go
+func (err Error) String() string
+```
+String returns a description of the error and a trace of where the error
+occurred.
+
+ TypeError: 'def' is not a function
+ at xyz (<anonymous>:3:9)
+ at <anonymous>:7:1/
+
+#### type FunctionCall
+
+```go
+type FunctionCall struct {
+ This Value
+ ArgumentList []Value
+ Otto *Otto
+}
+```
+
+FunctionCall is an encapsulation of a JavaScript function call.
+
+#### func (FunctionCall) Argument
+
+```go
+func (self FunctionCall) Argument(index int) Value
+```
+Argument will return the value of the argument at the given index.
+
+If no such argument exists, undefined is returned.
+
+#### type Object
+
+```go
+type Object struct {
+}
+```
+
+Object is the representation of a JavaScript object.
+
+#### func (Object) Call
+
+```go
+func (self Object) Call(name string, argumentList ...interface{}) (Value, error)
+```
+Call a method on the object.
+
+It is essentially equivalent to:
+
+ var method, _ := object.Get(name)
+ method.Call(object, argumentList...)
+
+An undefined value and an error will result if:
+
+ 1. There is an error during conversion of the argument list
+ 2. The property is not actually a function
+ 3. An (uncaught) exception is thrown
+
+#### func (Object) Class
+
+```go
+func (self Object) Class() string
+```
+Class will return the class string of the object.
+
+The return value will (generally) be one of:
+
+ Object
+ Function
+ Array
+ String
+ Number
+ Boolean
+ Date
+ RegExp
+
+#### func (Object) Get
+
+```go
+func (self Object) Get(name string) (Value, error)
+```
+Get the value of the property with the given name.
+
+#### func (Object) Keys
+
+```go
+func (self Object) Keys() []string
+```
+Get the keys for the object
+
+Equivalent to calling Object.keys on the object
+
+#### func (Object) Set
+
+```go
+func (self Object) Set(name string, value interface{}) error
+```
+Set the property of the given name to the given value.
+
+An error will result if the setting the property triggers an exception (i.e.
+read-only), or there is an error during conversion of the given value.
+
+#### func (Object) Value
+
+```go
+func (self Object) Value() Value
+```
+Value will return self as a value.
+
+#### type Otto
+
+```go
+type Otto struct {
+ // Interrupt is a channel for interrupting the runtime. You can use this to halt a long running execution, for example.
+ // See "Halting Problem" for more information.
+ Interrupt chan func()
+}
+```
+
+Otto is the representation of the JavaScript runtime. Each instance of Otto has
+a self-contained namespace.
+
+#### func New
+
+```go
+func New() *Otto
+```
+New will allocate a new JavaScript runtime
+
+#### func Run
+
+```go
+func Run(src interface{}) (*Otto, Value, error)
+```
+Run will allocate a new JavaScript runtime, run the given source on the
+allocated runtime, and return the runtime, resulting value, and error (if any).
+
+src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST
+always be in UTF-8.
+
+src may also be a Script.
+
+src may also be a Program, but if the AST has been modified, then runtime
+behavior is undefined.
+
+#### func (Otto) Call
+
+```go
+func (self Otto) Call(source string, this interface{}, argumentList ...interface{}) (Value, error)
+```
+Call the given JavaScript with a given this and arguments.
+
+If this is nil, then some special handling takes place to determine the proper
+this value, falling back to a "standard" invocation if necessary (where this is
+undefined).
+
+If source begins with "new " (A lowercase new followed by a space), then Call
+will invoke the function constructor rather than performing a function call. In
+this case, the this argument has no effect.
+
+```go
+// value is a String object
+value, _ := vm.Call("Object", nil, "Hello, World.")
+
+// Likewise...
+value, _ := vm.Call("new Object", nil, "Hello, World.")
+
+// This will perform a concat on the given array and return the result
+// value is [ 1, 2, 3, undefined, 4, 5, 6, 7, "abc" ]
+value, _ := vm.Call(`[ 1, 2, 3, undefined, 4 ].concat`, nil, 5, 6, 7, "abc")
+```
+
+#### func (*Otto) Compile
+
+```go
+func (self *Otto) Compile(filename string, src interface{}) (*Script, error)
+```
+Compile will parse the given source and return a Script value or nil and an
+error if there was a problem during compilation.
+
+```go
+script, err := vm.Compile("", `var abc; if (!abc) abc = 0; abc += 2; abc;`)
+vm.Run(script)
+```
+
+#### func (*Otto) Copy
+
+```go
+func (in *Otto) Copy() *Otto
+```
+Copy will create a copy/clone of the runtime.
+
+Copy is useful for saving some time when creating many similar runtimes.
+
+This method works by walking the original runtime and cloning each object,
+scope, stash, etc. into a new runtime.
+
+Be on the lookout for memory leaks or inadvertent sharing of resources.
+
+#### func (Otto) Get
+
+```go
+func (self Otto) Get(name string) (Value, error)
+```
+Get the value of the top-level binding of the given name.
+
+If there is an error (like the binding does not exist), then the value will be
+undefined.
+
+#### func (Otto) Object
+
+```go
+func (self Otto) Object(source string) (*Object, error)
+```
+Object will run the given source and return the result as an object.
+
+For example, accessing an existing object:
+
+```go
+object, _ := vm.Object(`Number`)
+```
+
+Or, creating a new object:
+
+```go
+object, _ := vm.Object(`({ xyzzy: "Nothing happens." })`)
+```
+
+Or, creating and assigning an object:
+
+```go
+object, _ := vm.Object(`xyzzy = {}`)
+object.Set("volume", 11)
+```
+
+If there is an error (like the source does not result in an object), then nil
+and an error is returned.
+
+#### func (Otto) Run
+
+```go
+func (self Otto) Run(src interface{}) (Value, error)
+```
+Run will run the given source (parsing it first if necessary), returning the
+resulting value and error (if any)
+
+src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST
+always be in UTF-8.
+
+If the runtime is unable to parse source, then this function will return
+undefined and the parse error (nothing will be evaluated in this case).
+
+src may also be a Script.
+
+src may also be a Program, but if the AST has been modified, then runtime
+behavior is undefined.
+
+#### func (Otto) Set
+
+```go
+func (self Otto) Set(name string, value interface{}) error
+```
+Set the top-level binding of the given name to the given value.
+
+Set will automatically apply ToValue to the given value in order to convert it
+to a JavaScript value (type Value).
+
+If there is an error (like the binding is read-only, or the ToValue conversion
+fails), then an error is returned.
+
+If the top-level binding does not exist, it will be created.
+
+#### func (Otto) ToValue
+
+```go
+func (self Otto) ToValue(value interface{}) (Value, error)
+```
+ToValue will convert an interface{} value to a value digestible by
+otto/JavaScript.
+
+#### type Script
+
+```go
+type Script struct {
+}
+```
+
+Script is a handle for some (reusable) JavaScript. Passing a Script value to a
+run method will evaluate the JavaScript.
+
+#### func (*Script) String
+
+```go
+func (self *Script) String() string
+```
+
+#### type Value
+
+```go
+type Value struct {
+}
+```
+
+Value is the representation of a JavaScript value.
+
+#### func FalseValue
+
+```go
+func FalseValue() Value
+```
+FalseValue will return a value representing false.
+
+It is equivalent to:
+
+```go
+ToValue(false)
+```
+
+#### func NaNValue
+
+```go
+func NaNValue() Value
+```
+NaNValue will return a value representing NaN.
+
+It is equivalent to:
+
+```go
+ToValue(math.NaN())
+```
+
+#### func NullValue
+
+```go
+func NullValue() Value
+```
+NullValue will return a Value representing null.
+
+#### func ToValue
+
+```go
+func ToValue(value interface{}) (Value, error)
+```
+ToValue will convert an interface{} value to a value digestible by
+otto/JavaScript
+
+This function will not work for advanced types (struct, map, slice/array, etc.)
+and you should use Otto.ToValue instead.
+
+#### func TrueValue
+
+```go
+func TrueValue() Value
+```
+TrueValue will return a value representing true.
+
+It is equivalent to:
+
+```go
+ToValue(true)
+```
+
+#### func UndefinedValue
+
+```go
+func UndefinedValue() Value
+```
+UndefinedValue will return a Value representing undefined.
+
+#### func (Value) Call
+
+```go
+func (value Value) Call(this Value, argumentList ...interface{}) (Value, error)
+```
+Call the value as a function with the given this value and argument list and
+return the result of invocation. It is essentially equivalent to:
+
+ value.apply(thisValue, argumentList)
+
+An undefined value and an error will result if:
+
+ 1. There is an error during conversion of the argument list
+ 2. The value is not actually a function
+ 3. An (uncaught) exception is thrown
+
+#### func (Value) Class
+
+```go
+func (value Value) Class() string
+```
+Class will return the class string of the value or the empty string if value is
+not an object.
+
+The return value will (generally) be one of:
+
+ Object
+ Function
+ Array
+ String
+ Number
+ Boolean
+ Date
+ RegExp
+
+#### func (Value) Export
+
+```go
+func (self Value) Export() (interface{}, error)
+```
+Export will attempt to convert the value to a Go representation and return it
+via an interface{} kind.
+
+Export returns an error, but it will always be nil. It is present for backwards
+compatibility.
+
+If a reasonable conversion is not possible, then the original value is returned.
+
+ undefined -> nil (FIXME?: Should be Value{})
+ null -> nil
+ boolean -> bool
+ number -> A number type (int, float32, uint64, ...)
+ string -> string
+ Array -> []interface{}
+ Object -> map[string]interface{}
+
+#### func (Value) IsBoolean
+
+```go
+func (value Value) IsBoolean() bool
+```
+IsBoolean will return true if value is a boolean (primitive).
+
+#### func (Value) IsDefined
+
+```go
+func (value Value) IsDefined() bool
+```
+IsDefined will return false if the value is undefined, and true otherwise.
+
+#### func (Value) IsFunction
+
+```go
+func (value Value) IsFunction() bool
+```
+IsFunction will return true if value is a function.
+
+#### func (Value) IsNaN
+
+```go
+func (value Value) IsNaN() bool
+```
+IsNaN will return true if value is NaN (or would convert to NaN).
+
+#### func (Value) IsNull
+
+```go
+func (value Value) IsNull() bool
+```
+IsNull will return true if the value is null, and false otherwise.
+
+#### func (Value) IsNumber
+
+```go
+func (value Value) IsNumber() bool
+```
+IsNumber will return true if value is a number (primitive).
+
+#### func (Value) IsObject
+
+```go
+func (value Value) IsObject() bool
+```
+IsObject will return true if value is an object.
+
+#### func (Value) IsPrimitive
+
+```go
+func (value Value) IsPrimitive() bool
+```
+IsPrimitive will return true if value is a primitive (any kind of primitive).
+
+#### func (Value) IsString
+
+```go
+func (value Value) IsString() bool
+```
+IsString will return true if value is a string (primitive).
+
+#### func (Value) IsUndefined
+
+```go
+func (value Value) IsUndefined() bool
+```
+IsUndefined will return true if the value is undefined, and false otherwise.
+
+#### func (Value) Object
+
+```go
+func (value Value) Object() *Object
+```
+Object will return the object of the value, or nil if value is not an object.
+
+This method will not do any implicit conversion. For example, calling this
+method on a string primitive value will not return a String object.
+
+#### func (Value) String
+
+```go
+func (value Value) String() string
+```
+String will return the value as a string.
+
+This method will make return the empty string if there is an error.
+
+#### func (Value) ToBoolean
+
+```go
+func (value Value) ToBoolean() (bool, error)
+```
+ToBoolean will convert the value to a boolean (bool).
+
+ ToValue(0).ToBoolean() => false
+ ToValue("").ToBoolean() => false
+ ToValue(true).ToBoolean() => true
+ ToValue(1).ToBoolean() => true
+ ToValue("Nothing happens").ToBoolean() => true
+
+If there is an error during the conversion process (like an uncaught exception),
+then the result will be false and an error.
+
+#### func (Value) ToFloat
+
+```go
+func (value Value) ToFloat() (float64, error)
+```
+ToFloat will convert the value to a number (float64).
+
+ ToValue(0).ToFloat() => 0.
+ ToValue(1.1).ToFloat() => 1.1
+ ToValue("11").ToFloat() => 11.
+
+If there is an error during the conversion process (like an uncaught exception),
+then the result will be 0 and an error.
+
+#### func (Value) ToInteger
+
+```go
+func (value Value) ToInteger() (int64, error)
+```
+ToInteger will convert the value to a number (int64).
+
+ ToValue(0).ToInteger() => 0
+ ToValue(1.1).ToInteger() => 1
+ ToValue("11").ToInteger() => 11
+
+If there is an error during the conversion process (like an uncaught exception),
+then the result will be 0 and an error.
+
+#### func (Value) ToString
+
+```go
+func (value Value) ToString() (string, error)
+```
+ToString will convert the value to a string (string).
+
+ ToValue(0).ToString() => "0"
+ ToValue(false).ToString() => "false"
+ ToValue(1.1).ToString() => "1.1"
+ ToValue("11").ToString() => "11"
+ ToValue('Nothing happens.').ToString() => "Nothing happens."
+
+If there is an error during the conversion process (like an uncaught exception),
+then the result will be the empty string ("") and an error.
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/ast/README.markdown b/vendor/github.com/robertkrimen/otto/ast/README.markdown
new file mode 100644
index 000000000..a785da911
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/ast/README.markdown
@@ -0,0 +1,1068 @@
+# ast
+--
+ import "github.com/robertkrimen/otto/ast"
+
+Package ast declares types representing a JavaScript AST.
+
+
+### Warning
+
+The parser and AST interfaces are still works-in-progress (particularly where
+node types are concerned) and may change in the future.
+
+## Usage
+
+#### type ArrayLiteral
+
+```go
+type ArrayLiteral struct {
+ LeftBracket file.Idx
+ RightBracket file.Idx
+ Value []Expression
+}
+```
+
+
+#### func (*ArrayLiteral) Idx0
+
+```go
+func (self *ArrayLiteral) Idx0() file.Idx
+```
+
+#### func (*ArrayLiteral) Idx1
+
+```go
+func (self *ArrayLiteral) Idx1() file.Idx
+```
+
+#### type AssignExpression
+
+```go
+type AssignExpression struct {
+ Operator token.Token
+ Left Expression
+ Right Expression
+}
+```
+
+
+#### func (*AssignExpression) Idx0
+
+```go
+func (self *AssignExpression) Idx0() file.Idx
+```
+
+#### func (*AssignExpression) Idx1
+
+```go
+func (self *AssignExpression) Idx1() file.Idx
+```
+
+#### type BadExpression
+
+```go
+type BadExpression struct {
+ From file.Idx
+ To file.Idx
+}
+```
+
+
+#### func (*BadExpression) Idx0
+
+```go
+func (self *BadExpression) Idx0() file.Idx
+```
+
+#### func (*BadExpression) Idx1
+
+```go
+func (self *BadExpression) Idx1() file.Idx
+```
+
+#### type BadStatement
+
+```go
+type BadStatement struct {
+ From file.Idx
+ To file.Idx
+}
+```
+
+
+#### func (*BadStatement) Idx0
+
+```go
+func (self *BadStatement) Idx0() file.Idx
+```
+
+#### func (*BadStatement) Idx1
+
+```go
+func (self *BadStatement) Idx1() file.Idx
+```
+
+#### type BinaryExpression
+
+```go
+type BinaryExpression struct {
+ Operator token.Token
+ Left Expression
+ Right Expression
+ Comparison bool
+}
+```
+
+
+#### func (*BinaryExpression) Idx0
+
+```go
+func (self *BinaryExpression) Idx0() file.Idx
+```
+
+#### func (*BinaryExpression) Idx1
+
+```go
+func (self *BinaryExpression) Idx1() file.Idx
+```
+
+#### type BlockStatement
+
+```go
+type BlockStatement struct {
+ LeftBrace file.Idx
+ List []Statement
+ RightBrace file.Idx
+}
+```
+
+
+#### func (*BlockStatement) Idx0
+
+```go
+func (self *BlockStatement) Idx0() file.Idx
+```
+
+#### func (*BlockStatement) Idx1
+
+```go
+func (self *BlockStatement) Idx1() file.Idx
+```
+
+#### type BooleanLiteral
+
+```go
+type BooleanLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value bool
+}
+```
+
+
+#### func (*BooleanLiteral) Idx0
+
+```go
+func (self *BooleanLiteral) Idx0() file.Idx
+```
+
+#### func (*BooleanLiteral) Idx1
+
+```go
+func (self *BooleanLiteral) Idx1() file.Idx
+```
+
+#### type BracketExpression
+
+```go
+type BracketExpression struct {
+ Left Expression
+ Member Expression
+ LeftBracket file.Idx
+ RightBracket file.Idx
+}
+```
+
+
+#### func (*BracketExpression) Idx0
+
+```go
+func (self *BracketExpression) Idx0() file.Idx
+```
+
+#### func (*BracketExpression) Idx1
+
+```go
+func (self *BracketExpression) Idx1() file.Idx
+```
+
+#### type BranchStatement
+
+```go
+type BranchStatement struct {
+ Idx file.Idx
+ Token token.Token
+ Label *Identifier
+}
+```
+
+
+#### func (*BranchStatement) Idx0
+
+```go
+func (self *BranchStatement) Idx0() file.Idx
+```
+
+#### func (*BranchStatement) Idx1
+
+```go
+func (self *BranchStatement) Idx1() file.Idx
+```
+
+#### type CallExpression
+
+```go
+type CallExpression struct {
+ Callee Expression
+ LeftParenthesis file.Idx
+ ArgumentList []Expression
+ RightParenthesis file.Idx
+}
+```
+
+
+#### func (*CallExpression) Idx0
+
+```go
+func (self *CallExpression) Idx0() file.Idx
+```
+
+#### func (*CallExpression) Idx1
+
+```go
+func (self *CallExpression) Idx1() file.Idx
+```
+
+#### type CaseStatement
+
+```go
+type CaseStatement struct {
+ Case file.Idx
+ Test Expression
+ Consequent []Statement
+}
+```
+
+
+#### func (*CaseStatement) Idx0
+
+```go
+func (self *CaseStatement) Idx0() file.Idx
+```
+
+#### func (*CaseStatement) Idx1
+
+```go
+func (self *CaseStatement) Idx1() file.Idx
+```
+
+#### type CatchStatement
+
+```go
+type CatchStatement struct {
+ Catch file.Idx
+ Parameter *Identifier
+ Body Statement
+}
+```
+
+
+#### func (*CatchStatement) Idx0
+
+```go
+func (self *CatchStatement) Idx0() file.Idx
+```
+
+#### func (*CatchStatement) Idx1
+
+```go
+func (self *CatchStatement) Idx1() file.Idx
+```
+
+#### type ConditionalExpression
+
+```go
+type ConditionalExpression struct {
+ Test Expression
+ Consequent Expression
+ Alternate Expression
+}
+```
+
+
+#### func (*ConditionalExpression) Idx0
+
+```go
+func (self *ConditionalExpression) Idx0() file.Idx
+```
+
+#### func (*ConditionalExpression) Idx1
+
+```go
+func (self *ConditionalExpression) Idx1() file.Idx
+```
+
+#### type DebuggerStatement
+
+```go
+type DebuggerStatement struct {
+ Debugger file.Idx
+}
+```
+
+
+#### func (*DebuggerStatement) Idx0
+
+```go
+func (self *DebuggerStatement) Idx0() file.Idx
+```
+
+#### func (*DebuggerStatement) Idx1
+
+```go
+func (self *DebuggerStatement) Idx1() file.Idx
+```
+
+#### type Declaration
+
+```go
+type Declaration interface {
+ // contains filtered or unexported methods
+}
+```
+
+All declaration nodes implement the Declaration interface.
+
+#### type DoWhileStatement
+
+```go
+type DoWhileStatement struct {
+ Do file.Idx
+ Test Expression
+ Body Statement
+}
+```
+
+
+#### func (*DoWhileStatement) Idx0
+
+```go
+func (self *DoWhileStatement) Idx0() file.Idx
+```
+
+#### func (*DoWhileStatement) Idx1
+
+```go
+func (self *DoWhileStatement) Idx1() file.Idx
+```
+
+#### type DotExpression
+
+```go
+type DotExpression struct {
+ Left Expression
+ Identifier Identifier
+}
+```
+
+
+#### func (*DotExpression) Idx0
+
+```go
+func (self *DotExpression) Idx0() file.Idx
+```
+
+#### func (*DotExpression) Idx1
+
+```go
+func (self *DotExpression) Idx1() file.Idx
+```
+
+#### type EmptyStatement
+
+```go
+type EmptyStatement struct {
+ Semicolon file.Idx
+}
+```
+
+
+#### func (*EmptyStatement) Idx0
+
+```go
+func (self *EmptyStatement) Idx0() file.Idx
+```
+
+#### func (*EmptyStatement) Idx1
+
+```go
+func (self *EmptyStatement) Idx1() file.Idx
+```
+
+#### type Expression
+
+```go
+type Expression interface {
+ Node
+ // contains filtered or unexported methods
+}
+```
+
+All expression nodes implement the Expression interface.
+
+#### type ExpressionStatement
+
+```go
+type ExpressionStatement struct {
+ Expression Expression
+}
+```
+
+
+#### func (*ExpressionStatement) Idx0
+
+```go
+func (self *ExpressionStatement) Idx0() file.Idx
+```
+
+#### func (*ExpressionStatement) Idx1
+
+```go
+func (self *ExpressionStatement) Idx1() file.Idx
+```
+
+#### type ForInStatement
+
+```go
+type ForInStatement struct {
+ For file.Idx
+ Into Expression
+ Source Expression
+ Body Statement
+}
+```
+
+
+#### func (*ForInStatement) Idx0
+
+```go
+func (self *ForInStatement) Idx0() file.Idx
+```
+
+#### func (*ForInStatement) Idx1
+
+```go
+func (self *ForInStatement) Idx1() file.Idx
+```
+
+#### type ForStatement
+
+```go
+type ForStatement struct {
+ For file.Idx
+ Initializer Expression
+ Update Expression
+ Test Expression
+ Body Statement
+}
+```
+
+
+#### func (*ForStatement) Idx0
+
+```go
+func (self *ForStatement) Idx0() file.Idx
+```
+
+#### func (*ForStatement) Idx1
+
+```go
+func (self *ForStatement) Idx1() file.Idx
+```
+
+#### type FunctionDeclaration
+
+```go
+type FunctionDeclaration struct {
+ Function *FunctionLiteral
+}
+```
+
+
+#### type FunctionLiteral
+
+```go
+type FunctionLiteral struct {
+ Function file.Idx
+ Name *Identifier
+ ParameterList *ParameterList
+ Body Statement
+ Source string
+
+ DeclarationList []Declaration
+}
+```
+
+
+#### func (*FunctionLiteral) Idx0
+
+```go
+func (self *FunctionLiteral) Idx0() file.Idx
+```
+
+#### func (*FunctionLiteral) Idx1
+
+```go
+func (self *FunctionLiteral) Idx1() file.Idx
+```
+
+#### type Identifier
+
+```go
+type Identifier struct {
+ Name string
+ Idx file.Idx
+}
+```
+
+
+#### func (*Identifier) Idx0
+
+```go
+func (self *Identifier) Idx0() file.Idx
+```
+
+#### func (*Identifier) Idx1
+
+```go
+func (self *Identifier) Idx1() file.Idx
+```
+
+#### type IfStatement
+
+```go
+type IfStatement struct {
+ If file.Idx
+ Test Expression
+ Consequent Statement
+ Alternate Statement
+}
+```
+
+
+#### func (*IfStatement) Idx0
+
+```go
+func (self *IfStatement) Idx0() file.Idx
+```
+
+#### func (*IfStatement) Idx1
+
+```go
+func (self *IfStatement) Idx1() file.Idx
+```
+
+#### type LabelledStatement
+
+```go
+type LabelledStatement struct {
+ Label *Identifier
+ Colon file.Idx
+ Statement Statement
+}
+```
+
+
+#### func (*LabelledStatement) Idx0
+
+```go
+func (self *LabelledStatement) Idx0() file.Idx
+```
+
+#### func (*LabelledStatement) Idx1
+
+```go
+func (self *LabelledStatement) Idx1() file.Idx
+```
+
+#### type NewExpression
+
+```go
+type NewExpression struct {
+ New file.Idx
+ Callee Expression
+ LeftParenthesis file.Idx
+ ArgumentList []Expression
+ RightParenthesis file.Idx
+}
+```
+
+
+#### func (*NewExpression) Idx0
+
+```go
+func (self *NewExpression) Idx0() file.Idx
+```
+
+#### func (*NewExpression) Idx1
+
+```go
+func (self *NewExpression) Idx1() file.Idx
+```
+
+#### type Node
+
+```go
+type Node interface {
+ Idx0() file.Idx // The index of the first character belonging to the node
+ Idx1() file.Idx // The index of the first character immediately after the node
+}
+```
+
+All nodes implement the Node interface.
+
+#### type NullLiteral
+
+```go
+type NullLiteral struct {
+ Idx file.Idx
+ Literal string
+}
+```
+
+
+#### func (*NullLiteral) Idx0
+
+```go
+func (self *NullLiteral) Idx0() file.Idx
+```
+
+#### func (*NullLiteral) Idx1
+
+```go
+func (self *NullLiteral) Idx1() file.Idx
+```
+
+#### type NumberLiteral
+
+```go
+type NumberLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value interface{}
+}
+```
+
+
+#### func (*NumberLiteral) Idx0
+
+```go
+func (self *NumberLiteral) Idx0() file.Idx
+```
+
+#### func (*NumberLiteral) Idx1
+
+```go
+func (self *NumberLiteral) Idx1() file.Idx
+```
+
+#### type ObjectLiteral
+
+```go
+type ObjectLiteral struct {
+ LeftBrace file.Idx
+ RightBrace file.Idx
+ Value []Property
+}
+```
+
+
+#### func (*ObjectLiteral) Idx0
+
+```go
+func (self *ObjectLiteral) Idx0() file.Idx
+```
+
+#### func (*ObjectLiteral) Idx1
+
+```go
+func (self *ObjectLiteral) Idx1() file.Idx
+```
+
+#### type ParameterList
+
+```go
+type ParameterList struct {
+ Opening file.Idx
+ List []*Identifier
+ Closing file.Idx
+}
+```
+
+
+#### type Program
+
+```go
+type Program struct {
+ Body []Statement
+
+ DeclarationList []Declaration
+
+ File *file.File
+}
+```
+
+
+#### func (*Program) Idx0
+
+```go
+func (self *Program) Idx0() file.Idx
+```
+
+#### func (*Program) Idx1
+
+```go
+func (self *Program) Idx1() file.Idx
+```
+
+#### type Property
+
+```go
+type Property struct {
+ Key string
+ Kind string
+ Value Expression
+}
+```
+
+
+#### type RegExpLiteral
+
+```go
+type RegExpLiteral struct {
+ Idx file.Idx
+ Literal string
+ Pattern string
+ Flags string
+ Value string
+}
+```
+
+
+#### func (*RegExpLiteral) Idx0
+
+```go
+func (self *RegExpLiteral) Idx0() file.Idx
+```
+
+#### func (*RegExpLiteral) Idx1
+
+```go
+func (self *RegExpLiteral) Idx1() file.Idx
+```
+
+#### type ReturnStatement
+
+```go
+type ReturnStatement struct {
+ Return file.Idx
+ Argument Expression
+}
+```
+
+
+#### func (*ReturnStatement) Idx0
+
+```go
+func (self *ReturnStatement) Idx0() file.Idx
+```
+
+#### func (*ReturnStatement) Idx1
+
+```go
+func (self *ReturnStatement) Idx1() file.Idx
+```
+
+#### type SequenceExpression
+
+```go
+type SequenceExpression struct {
+ Sequence []Expression
+}
+```
+
+
+#### func (*SequenceExpression) Idx0
+
+```go
+func (self *SequenceExpression) Idx0() file.Idx
+```
+
+#### func (*SequenceExpression) Idx1
+
+```go
+func (self *SequenceExpression) Idx1() file.Idx
+```
+
+#### type Statement
+
+```go
+type Statement interface {
+ Node
+ // contains filtered or unexported methods
+}
+```
+
+All statement nodes implement the Statement interface.
+
+#### type StringLiteral
+
+```go
+type StringLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value string
+}
+```
+
+
+#### func (*StringLiteral) Idx0
+
+```go
+func (self *StringLiteral) Idx0() file.Idx
+```
+
+#### func (*StringLiteral) Idx1
+
+```go
+func (self *StringLiteral) Idx1() file.Idx
+```
+
+#### type SwitchStatement
+
+```go
+type SwitchStatement struct {
+ Switch file.Idx
+ Discriminant Expression
+ Default int
+ Body []*CaseStatement
+}
+```
+
+
+#### func (*SwitchStatement) Idx0
+
+```go
+func (self *SwitchStatement) Idx0() file.Idx
+```
+
+#### func (*SwitchStatement) Idx1
+
+```go
+func (self *SwitchStatement) Idx1() file.Idx
+```
+
+#### type ThisExpression
+
+```go
+type ThisExpression struct {
+ Idx file.Idx
+}
+```
+
+
+#### func (*ThisExpression) Idx0
+
+```go
+func (self *ThisExpression) Idx0() file.Idx
+```
+
+#### func (*ThisExpression) Idx1
+
+```go
+func (self *ThisExpression) Idx1() file.Idx
+```
+
+#### type ThrowStatement
+
+```go
+type ThrowStatement struct {
+ Throw file.Idx
+ Argument Expression
+}
+```
+
+
+#### func (*ThrowStatement) Idx0
+
+```go
+func (self *ThrowStatement) Idx0() file.Idx
+```
+
+#### func (*ThrowStatement) Idx1
+
+```go
+func (self *ThrowStatement) Idx1() file.Idx
+```
+
+#### type TryStatement
+
+```go
+type TryStatement struct {
+ Try file.Idx
+ Body Statement
+ Catch *CatchStatement
+ Finally Statement
+}
+```
+
+
+#### func (*TryStatement) Idx0
+
+```go
+func (self *TryStatement) Idx0() file.Idx
+```
+
+#### func (*TryStatement) Idx1
+
+```go
+func (self *TryStatement) Idx1() file.Idx
+```
+
+#### type UnaryExpression
+
+```go
+type UnaryExpression struct {
+ Operator token.Token
+ Idx file.Idx // If a prefix operation
+ Operand Expression
+ Postfix bool
+}
+```
+
+
+#### func (*UnaryExpression) Idx0
+
+```go
+func (self *UnaryExpression) Idx0() file.Idx
+```
+
+#### func (*UnaryExpression) Idx1
+
+```go
+func (self *UnaryExpression) Idx1() file.Idx
+```
+
+#### type VariableDeclaration
+
+```go
+type VariableDeclaration struct {
+ Var file.Idx
+ List []*VariableExpression
+}
+```
+
+
+#### type VariableExpression
+
+```go
+type VariableExpression struct {
+ Name string
+ Idx file.Idx
+ Initializer Expression
+}
+```
+
+
+#### func (*VariableExpression) Idx0
+
+```go
+func (self *VariableExpression) Idx0() file.Idx
+```
+
+#### func (*VariableExpression) Idx1
+
+```go
+func (self *VariableExpression) Idx1() file.Idx
+```
+
+#### type VariableStatement
+
+```go
+type VariableStatement struct {
+ Var file.Idx
+ List []Expression
+}
+```
+
+
+#### func (*VariableStatement) Idx0
+
+```go
+func (self *VariableStatement) Idx0() file.Idx
+```
+
+#### func (*VariableStatement) Idx1
+
+```go
+func (self *VariableStatement) Idx1() file.Idx
+```
+
+#### type WhileStatement
+
+```go
+type WhileStatement struct {
+ While file.Idx
+ Test Expression
+ Body Statement
+}
+```
+
+
+#### func (*WhileStatement) Idx0
+
+```go
+func (self *WhileStatement) Idx0() file.Idx
+```
+
+#### func (*WhileStatement) Idx1
+
+```go
+func (self *WhileStatement) Idx1() file.Idx
+```
+
+#### type WithStatement
+
+```go
+type WithStatement struct {
+ With file.Idx
+ Object Expression
+ Body Statement
+}
+```
+
+
+#### func (*WithStatement) Idx0
+
+```go
+func (self *WithStatement) Idx0() file.Idx
+```
+
+#### func (*WithStatement) Idx1
+
+```go
+func (self *WithStatement) Idx1() file.Idx
+```
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/ast/comments.go b/vendor/github.com/robertkrimen/otto/ast/comments.go
new file mode 100644
index 000000000..ef2cc3d89
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/ast/comments.go
@@ -0,0 +1,278 @@
+package ast
+
+import (
+ "fmt"
+ "github.com/robertkrimen/otto/file"
+)
+
+// CommentPosition determines where the comment is in a given context
+type CommentPosition int
+
+const (
+ _ CommentPosition = iota
+ LEADING // Before the pertinent expression
+ TRAILING // After the pertinent expression
+ KEY // Before a key in an object
+ COLON // After a colon in a field declaration
+ FINAL // Final comments in a block, not belonging to a specific expression or the comment after a trailing , in an array or object literal
+ IF // After an if keyword
+ WHILE // After a while keyword
+ DO // After do keyword
+ FOR // After a for keyword
+ WITH // After a with keyword
+ TBD
+)
+
+// Comment contains the data of the comment
+type Comment struct {
+ Begin file.Idx
+ Text string
+ Position CommentPosition
+}
+
+// NewComment creates a new comment
+func NewComment(text string, idx file.Idx) *Comment {
+ comment := &Comment{
+ Begin: idx,
+ Text: text,
+ Position: TBD,
+ }
+
+ return comment
+}
+
+// String returns a stringified version of the position
+func (cp CommentPosition) String() string {
+ switch cp {
+ case LEADING:
+ return "Leading"
+ case TRAILING:
+ return "Trailing"
+ case KEY:
+ return "Key"
+ case COLON:
+ return "Colon"
+ case FINAL:
+ return "Final"
+ case IF:
+ return "If"
+ case WHILE:
+ return "While"
+ case DO:
+ return "Do"
+ case FOR:
+ return "For"
+ case WITH:
+ return "With"
+ default:
+ return "???"
+ }
+}
+
+// String returns a stringified version of the comment
+func (c Comment) String() string {
+ return fmt.Sprintf("Comment: %v", c.Text)
+}
+
+// Comments defines the current view of comments from the parser
+type Comments struct {
+ // CommentMap is a reference to the parser comment map
+ CommentMap CommentMap
+ // Comments lists the comments scanned, not linked to a node yet
+ Comments []*Comment
+ // future lists the comments after a line break during a sequence of comments
+ future []*Comment
+ // Current is node for which comments are linked to
+ Current Expression
+
+ // wasLineBreak determines if a line break occured while scanning for comments
+ wasLineBreak bool
+ // primary determines whether or not processing a primary expression
+ primary bool
+ // afterBlock determines whether or not being after a block statement
+ afterBlock bool
+}
+
+func NewComments() *Comments {
+ comments := &Comments{
+ CommentMap: CommentMap{},
+ }
+
+ return comments
+}
+
+func (c *Comments) String() string {
+ return fmt.Sprintf("NODE: %v, Comments: %v, Future: %v(LINEBREAK:%v)", c.Current, len(c.Comments), len(c.future), c.wasLineBreak)
+}
+
+// FetchAll returns all the currently scanned comments,
+// including those from the next line
+func (c *Comments) FetchAll() []*Comment {
+ defer func() {
+ c.Comments = nil
+ c.future = nil
+ }()
+
+ return append(c.Comments, c.future...)
+}
+
+// Fetch returns all the currently scanned comments
+func (c *Comments) Fetch() []*Comment {
+ defer func() {
+ c.Comments = nil
+ }()
+
+ return c.Comments
+}
+
+// ResetLineBreak marks the beginning of a new statement
+func (c *Comments) ResetLineBreak() {
+ c.wasLineBreak = false
+}
+
+// MarkPrimary will mark the context as processing a primary expression
+func (c *Comments) MarkPrimary() {
+ c.primary = true
+ c.wasLineBreak = false
+}
+
+// AfterBlock will mark the context as being after a block.
+func (c *Comments) AfterBlock() {
+ c.afterBlock = true
+}
+
+// AddComment adds a comment to the view.
+// Depending on the context, comments are added normally or as post line break.
+func (c *Comments) AddComment(comment *Comment) {
+ if c.primary {
+ if !c.wasLineBreak {
+ c.Comments = append(c.Comments, comment)
+ } else {
+ c.future = append(c.future, comment)
+ }
+ } else {
+ if !c.wasLineBreak || (c.Current == nil && !c.afterBlock) {
+ c.Comments = append(c.Comments, comment)
+ } else {
+ c.future = append(c.future, comment)
+ }
+ }
+}
+
+// MarkComments will mark the found comments as the given position.
+func (c *Comments) MarkComments(position CommentPosition) {
+ for _, comment := range c.Comments {
+ if comment.Position == TBD {
+ comment.Position = position
+ }
+ }
+ for _, c := range c.future {
+ if c.Position == TBD {
+ c.Position = position
+ }
+ }
+}
+
+// Unset the current node and apply the comments to the current expression.
+// Resets context variables.
+func (c *Comments) Unset() {
+ if c.Current != nil {
+ c.applyComments(c.Current, c.Current, TRAILING)
+ c.Current = nil
+ }
+ c.wasLineBreak = false
+ c.primary = false
+ c.afterBlock = false
+}
+
+// SetExpression sets the current expression.
+// It is applied the found comments, unless the previous expression has not been unset.
+// It is skipped if the node is already set or if it is a part of the previous node.
+func (c *Comments) SetExpression(node Expression) {
+ // Skipping same node
+ if c.Current == node {
+ return
+ }
+ if c.Current != nil && c.Current.Idx1() == node.Idx1() {
+ c.Current = node
+ return
+ }
+ previous := c.Current
+ c.Current = node
+
+ // Apply the found comments and futures to the node and the previous.
+ c.applyComments(node, previous, TRAILING)
+}
+
+// PostProcessNode applies all found comments to the given node
+func (c *Comments) PostProcessNode(node Node) {
+ c.applyComments(node, nil, TRAILING)
+}
+
+// applyComments applies both the comments and the future comments to the given node and the previous one,
+// based on the context.
+func (c *Comments) applyComments(node, previous Node, position CommentPosition) {
+ if previous != nil {
+ c.CommentMap.AddComments(previous, c.Comments, position)
+ c.Comments = nil
+ } else {
+ c.CommentMap.AddComments(node, c.Comments, position)
+ c.Comments = nil
+ }
+ // Only apply the future comments to the node if the previous is set.
+ // This is for detecting end of line comments and which node comments on the following lines belongs to
+ if previous != nil {
+ c.CommentMap.AddComments(node, c.future, position)
+ c.future = nil
+ }
+}
+
+// AtLineBreak will mark a line break
+func (c *Comments) AtLineBreak() {
+ c.wasLineBreak = true
+}
+
+// CommentMap is the data structure where all found comments are stored
+type CommentMap map[Node][]*Comment
+
+// AddComment adds a single comment to the map
+func (cm CommentMap) AddComment(node Node, comment *Comment) {
+ list := cm[node]
+ list = append(list, comment)
+
+ cm[node] = list
+}
+
+// AddComments adds a slice of comments, given a node and an updated position
+func (cm CommentMap) AddComments(node Node, comments []*Comment, position CommentPosition) {
+ for _, comment := range comments {
+ if comment.Position == TBD {
+ comment.Position = position
+ }
+ cm.AddComment(node, comment)
+ }
+}
+
+// Size returns the size of the map
+func (cm CommentMap) Size() int {
+ size := 0
+ for _, comments := range cm {
+ size += len(comments)
+ }
+
+ return size
+}
+
+// MoveComments moves comments with a given position from a node to another
+func (cm CommentMap) MoveComments(from, to Node, position CommentPosition) {
+ for i, c := range cm[from] {
+ if c.Position == position {
+ cm.AddComment(to, c)
+
+ // Remove the comment from the "from" slice
+ cm[from][i] = cm[from][len(cm[from])-1]
+ cm[from][len(cm[from])-1] = nil
+ cm[from] = cm[from][:len(cm[from])-1]
+ }
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/ast/node.go b/vendor/github.com/robertkrimen/otto/ast/node.go
new file mode 100644
index 000000000..49ae375d1
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/ast/node.go
@@ -0,0 +1,515 @@
+/*
+Package ast declares types representing a JavaScript AST.
+
+Warning
+
+The parser and AST interfaces are still works-in-progress (particularly where
+node types are concerned) and may change in the future.
+
+*/
+package ast
+
+import (
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+)
+
+// All nodes implement the Node interface.
+type Node interface {
+ Idx0() file.Idx // The index of the first character belonging to the node
+ Idx1() file.Idx // The index of the first character immediately after the node
+}
+
+// ========== //
+// Expression //
+// ========== //
+
+type (
+ // All expression nodes implement the Expression interface.
+ Expression interface {
+ Node
+ _expressionNode()
+ }
+
+ ArrayLiteral struct {
+ LeftBracket file.Idx
+ RightBracket file.Idx
+ Value []Expression
+ }
+
+ AssignExpression struct {
+ Operator token.Token
+ Left Expression
+ Right Expression
+ }
+
+ BadExpression struct {
+ From file.Idx
+ To file.Idx
+ }
+
+ BinaryExpression struct {
+ Operator token.Token
+ Left Expression
+ Right Expression
+ Comparison bool
+ }
+
+ BooleanLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value bool
+ }
+
+ BracketExpression struct {
+ Left Expression
+ Member Expression
+ LeftBracket file.Idx
+ RightBracket file.Idx
+ }
+
+ CallExpression struct {
+ Callee Expression
+ LeftParenthesis file.Idx
+ ArgumentList []Expression
+ RightParenthesis file.Idx
+ }
+
+ ConditionalExpression struct {
+ Test Expression
+ Consequent Expression
+ Alternate Expression
+ }
+
+ DotExpression struct {
+ Left Expression
+ Identifier *Identifier
+ }
+
+ EmptyExpression struct {
+ Begin file.Idx
+ End file.Idx
+ }
+
+ FunctionLiteral struct {
+ Function file.Idx
+ Name *Identifier
+ ParameterList *ParameterList
+ Body Statement
+ Source string
+
+ DeclarationList []Declaration
+ }
+
+ Identifier struct {
+ Name string
+ Idx file.Idx
+ }
+
+ NewExpression struct {
+ New file.Idx
+ Callee Expression
+ LeftParenthesis file.Idx
+ ArgumentList []Expression
+ RightParenthesis file.Idx
+ }
+
+ NullLiteral struct {
+ Idx file.Idx
+ Literal string
+ }
+
+ NumberLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value interface{}
+ }
+
+ ObjectLiteral struct {
+ LeftBrace file.Idx
+ RightBrace file.Idx
+ Value []Property
+ }
+
+ ParameterList struct {
+ Opening file.Idx
+ List []*Identifier
+ Closing file.Idx
+ }
+
+ Property struct {
+ Key string
+ Kind string
+ Value Expression
+ }
+
+ RegExpLiteral struct {
+ Idx file.Idx
+ Literal string
+ Pattern string
+ Flags string
+ Value string
+ }
+
+ SequenceExpression struct {
+ Sequence []Expression
+ }
+
+ StringLiteral struct {
+ Idx file.Idx
+ Literal string
+ Value string
+ }
+
+ ThisExpression struct {
+ Idx file.Idx
+ }
+
+ UnaryExpression struct {
+ Operator token.Token
+ Idx file.Idx // If a prefix operation
+ Operand Expression
+ Postfix bool
+ }
+
+ VariableExpression struct {
+ Name string
+ Idx file.Idx
+ Initializer Expression
+ }
+)
+
+// _expressionNode
+
+func (*ArrayLiteral) _expressionNode() {}
+func (*AssignExpression) _expressionNode() {}
+func (*BadExpression) _expressionNode() {}
+func (*BinaryExpression) _expressionNode() {}
+func (*BooleanLiteral) _expressionNode() {}
+func (*BracketExpression) _expressionNode() {}
+func (*CallExpression) _expressionNode() {}
+func (*ConditionalExpression) _expressionNode() {}
+func (*DotExpression) _expressionNode() {}
+func (*EmptyExpression) _expressionNode() {}
+func (*FunctionLiteral) _expressionNode() {}
+func (*Identifier) _expressionNode() {}
+func (*NewExpression) _expressionNode() {}
+func (*NullLiteral) _expressionNode() {}
+func (*NumberLiteral) _expressionNode() {}
+func (*ObjectLiteral) _expressionNode() {}
+func (*RegExpLiteral) _expressionNode() {}
+func (*SequenceExpression) _expressionNode() {}
+func (*StringLiteral) _expressionNode() {}
+func (*ThisExpression) _expressionNode() {}
+func (*UnaryExpression) _expressionNode() {}
+func (*VariableExpression) _expressionNode() {}
+
+// ========= //
+// Statement //
+// ========= //
+
+type (
+ // All statement nodes implement the Statement interface.
+ Statement interface {
+ Node
+ _statementNode()
+ }
+
+ BadStatement struct {
+ From file.Idx
+ To file.Idx
+ }
+
+ BlockStatement struct {
+ LeftBrace file.Idx
+ List []Statement
+ RightBrace file.Idx
+ }
+
+ BranchStatement struct {
+ Idx file.Idx
+ Token token.Token
+ Label *Identifier
+ }
+
+ CaseStatement struct {
+ Case file.Idx
+ Test Expression
+ Consequent []Statement
+ }
+
+ CatchStatement struct {
+ Catch file.Idx
+ Parameter *Identifier
+ Body Statement
+ }
+
+ DebuggerStatement struct {
+ Debugger file.Idx
+ }
+
+ DoWhileStatement struct {
+ Do file.Idx
+ Test Expression
+ Body Statement
+ }
+
+ EmptyStatement struct {
+ Semicolon file.Idx
+ }
+
+ ExpressionStatement struct {
+ Expression Expression
+ }
+
+ ForInStatement struct {
+ For file.Idx
+ Into Expression
+ Source Expression
+ Body Statement
+ }
+
+ ForStatement struct {
+ For file.Idx
+ Initializer Expression
+ Update Expression
+ Test Expression
+ Body Statement
+ }
+
+ FunctionStatement struct {
+ Function *FunctionLiteral
+ }
+
+ IfStatement struct {
+ If file.Idx
+ Test Expression
+ Consequent Statement
+ Alternate Statement
+ }
+
+ LabelledStatement struct {
+ Label *Identifier
+ Colon file.Idx
+ Statement Statement
+ }
+
+ ReturnStatement struct {
+ Return file.Idx
+ Argument Expression
+ }
+
+ SwitchStatement struct {
+ Switch file.Idx
+ Discriminant Expression
+ Default int
+ Body []*CaseStatement
+ }
+
+ ThrowStatement struct {
+ Throw file.Idx
+ Argument Expression
+ }
+
+ TryStatement struct {
+ Try file.Idx
+ Body Statement
+ Catch *CatchStatement
+ Finally Statement
+ }
+
+ VariableStatement struct {
+ Var file.Idx
+ List []Expression
+ }
+
+ WhileStatement struct {
+ While file.Idx
+ Test Expression
+ Body Statement
+ }
+
+ WithStatement struct {
+ With file.Idx
+ Object Expression
+ Body Statement
+ }
+)
+
+// _statementNode
+
+func (*BadStatement) _statementNode() {}
+func (*BlockStatement) _statementNode() {}
+func (*BranchStatement) _statementNode() {}
+func (*CaseStatement) _statementNode() {}
+func (*CatchStatement) _statementNode() {}
+func (*DebuggerStatement) _statementNode() {}
+func (*DoWhileStatement) _statementNode() {}
+func (*EmptyStatement) _statementNode() {}
+func (*ExpressionStatement) _statementNode() {}
+func (*ForInStatement) _statementNode() {}
+func (*ForStatement) _statementNode() {}
+func (*FunctionStatement) _statementNode() {}
+func (*IfStatement) _statementNode() {}
+func (*LabelledStatement) _statementNode() {}
+func (*ReturnStatement) _statementNode() {}
+func (*SwitchStatement) _statementNode() {}
+func (*ThrowStatement) _statementNode() {}
+func (*TryStatement) _statementNode() {}
+func (*VariableStatement) _statementNode() {}
+func (*WhileStatement) _statementNode() {}
+func (*WithStatement) _statementNode() {}
+
+// =========== //
+// Declaration //
+// =========== //
+
+type (
+ // All declaration nodes implement the Declaration interface.
+ Declaration interface {
+ _declarationNode()
+ }
+
+ FunctionDeclaration struct {
+ Function *FunctionLiteral
+ }
+
+ VariableDeclaration struct {
+ Var file.Idx
+ List []*VariableExpression
+ }
+)
+
+// _declarationNode
+
+func (*FunctionDeclaration) _declarationNode() {}
+func (*VariableDeclaration) _declarationNode() {}
+
+// ==== //
+// Node //
+// ==== //
+
+type Program struct {
+ Body []Statement
+
+ DeclarationList []Declaration
+
+ File *file.File
+
+ Comments CommentMap
+}
+
+// ==== //
+// Idx0 //
+// ==== //
+
+func (self *ArrayLiteral) Idx0() file.Idx { return self.LeftBracket }
+func (self *AssignExpression) Idx0() file.Idx { return self.Left.Idx0() }
+func (self *BadExpression) Idx0() file.Idx { return self.From }
+func (self *BinaryExpression) Idx0() file.Idx { return self.Left.Idx0() }
+func (self *BooleanLiteral) Idx0() file.Idx { return self.Idx }
+func (self *BracketExpression) Idx0() file.Idx { return self.Left.Idx0() }
+func (self *CallExpression) Idx0() file.Idx { return self.Callee.Idx0() }
+func (self *ConditionalExpression) Idx0() file.Idx { return self.Test.Idx0() }
+func (self *DotExpression) Idx0() file.Idx { return self.Left.Idx0() }
+func (self *EmptyExpression) Idx0() file.Idx { return self.Begin }
+func (self *FunctionLiteral) Idx0() file.Idx { return self.Function }
+func (self *Identifier) Idx0() file.Idx { return self.Idx }
+func (self *NewExpression) Idx0() file.Idx { return self.New }
+func (self *NullLiteral) Idx0() file.Idx { return self.Idx }
+func (self *NumberLiteral) Idx0() file.Idx { return self.Idx }
+func (self *ObjectLiteral) Idx0() file.Idx { return self.LeftBrace }
+func (self *RegExpLiteral) Idx0() file.Idx { return self.Idx }
+func (self *SequenceExpression) Idx0() file.Idx { return self.Sequence[0].Idx0() }
+func (self *StringLiteral) Idx0() file.Idx { return self.Idx }
+func (self *ThisExpression) Idx0() file.Idx { return self.Idx }
+func (self *UnaryExpression) Idx0() file.Idx { return self.Idx }
+func (self *VariableExpression) Idx0() file.Idx { return self.Idx }
+
+func (self *BadStatement) Idx0() file.Idx { return self.From }
+func (self *BlockStatement) Idx0() file.Idx { return self.LeftBrace }
+func (self *BranchStatement) Idx0() file.Idx { return self.Idx }
+func (self *CaseStatement) Idx0() file.Idx { return self.Case }
+func (self *CatchStatement) Idx0() file.Idx { return self.Catch }
+func (self *DebuggerStatement) Idx0() file.Idx { return self.Debugger }
+func (self *DoWhileStatement) Idx0() file.Idx { return self.Do }
+func (self *EmptyStatement) Idx0() file.Idx { return self.Semicolon }
+func (self *ExpressionStatement) Idx0() file.Idx { return self.Expression.Idx0() }
+func (self *ForInStatement) Idx0() file.Idx { return self.For }
+func (self *ForStatement) Idx0() file.Idx { return self.For }
+func (self *FunctionStatement) Idx0() file.Idx { return self.Function.Idx0() }
+func (self *IfStatement) Idx0() file.Idx { return self.If }
+func (self *LabelledStatement) Idx0() file.Idx { return self.Label.Idx0() }
+func (self *Program) Idx0() file.Idx { return self.Body[0].Idx0() }
+func (self *ReturnStatement) Idx0() file.Idx { return self.Return }
+func (self *SwitchStatement) Idx0() file.Idx { return self.Switch }
+func (self *ThrowStatement) Idx0() file.Idx { return self.Throw }
+func (self *TryStatement) Idx0() file.Idx { return self.Try }
+func (self *VariableStatement) Idx0() file.Idx { return self.Var }
+func (self *WhileStatement) Idx0() file.Idx { return self.While }
+func (self *WithStatement) Idx0() file.Idx { return self.With }
+
+// ==== //
+// Idx1 //
+// ==== //
+
+func (self *ArrayLiteral) Idx1() file.Idx { return self.RightBracket }
+func (self *AssignExpression) Idx1() file.Idx { return self.Right.Idx1() }
+func (self *BadExpression) Idx1() file.Idx { return self.To }
+func (self *BinaryExpression) Idx1() file.Idx { return self.Right.Idx1() }
+func (self *BooleanLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) }
+func (self *BracketExpression) Idx1() file.Idx { return self.RightBracket + 1 }
+func (self *CallExpression) Idx1() file.Idx { return self.RightParenthesis + 1 }
+func (self *ConditionalExpression) Idx1() file.Idx { return self.Test.Idx1() }
+func (self *DotExpression) Idx1() file.Idx { return self.Identifier.Idx1() }
+func (self *EmptyExpression) Idx1() file.Idx { return self.End }
+func (self *FunctionLiteral) Idx1() file.Idx { return self.Body.Idx1() }
+func (self *Identifier) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Name)) }
+func (self *NewExpression) Idx1() file.Idx { return self.RightParenthesis + 1 }
+func (self *NullLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + 4) } // "null"
+func (self *NumberLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) }
+func (self *ObjectLiteral) Idx1() file.Idx { return self.RightBrace }
+func (self *RegExpLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) }
+func (self *SequenceExpression) Idx1() file.Idx { return self.Sequence[0].Idx1() }
+func (self *StringLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) }
+func (self *ThisExpression) Idx1() file.Idx { return self.Idx }
+func (self *UnaryExpression) Idx1() file.Idx {
+ if self.Postfix {
+ return self.Operand.Idx1() + 2 // ++ --
+ }
+ return self.Operand.Idx1()
+}
+func (self *VariableExpression) Idx1() file.Idx {
+ if self.Initializer == nil {
+ return file.Idx(int(self.Idx) + len(self.Name) + 1)
+ }
+ return self.Initializer.Idx1()
+}
+
+func (self *BadStatement) Idx1() file.Idx { return self.To }
+func (self *BlockStatement) Idx1() file.Idx { return self.RightBrace + 1 }
+func (self *BranchStatement) Idx1() file.Idx { return self.Idx }
+func (self *CaseStatement) Idx1() file.Idx { return self.Consequent[len(self.Consequent)-1].Idx1() }
+func (self *CatchStatement) Idx1() file.Idx { return self.Body.Idx1() }
+func (self *DebuggerStatement) Idx1() file.Idx { return self.Debugger + 8 }
+func (self *DoWhileStatement) Idx1() file.Idx { return self.Test.Idx1() }
+func (self *EmptyStatement) Idx1() file.Idx { return self.Semicolon + 1 }
+func (self *ExpressionStatement) Idx1() file.Idx { return self.Expression.Idx1() }
+func (self *ForInStatement) Idx1() file.Idx { return self.Body.Idx1() }
+func (self *ForStatement) Idx1() file.Idx { return self.Body.Idx1() }
+func (self *FunctionStatement) Idx1() file.Idx { return self.Function.Idx1() }
+func (self *IfStatement) Idx1() file.Idx {
+ if self.Alternate != nil {
+ return self.Alternate.Idx1()
+ }
+ return self.Consequent.Idx1()
+}
+func (self *LabelledStatement) Idx1() file.Idx { return self.Colon + 1 }
+func (self *Program) Idx1() file.Idx { return self.Body[len(self.Body)-1].Idx1() }
+func (self *ReturnStatement) Idx1() file.Idx { return self.Return }
+func (self *SwitchStatement) Idx1() file.Idx { return self.Body[len(self.Body)-1].Idx1() }
+func (self *ThrowStatement) Idx1() file.Idx { return self.Throw }
+func (self *TryStatement) Idx1() file.Idx { return self.Try }
+func (self *VariableStatement) Idx1() file.Idx { return self.List[len(self.List)-1].Idx1() }
+func (self *WhileStatement) Idx1() file.Idx { return self.Body.Idx1() }
+func (self *WithStatement) Idx1() file.Idx { return self.Body.Idx1() }
diff --git a/vendor/github.com/robertkrimen/otto/builtin.go b/vendor/github.com/robertkrimen/otto/builtin.go
new file mode 100644
index 000000000..83f715083
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin.go
@@ -0,0 +1,353 @@
+package otto
+
+import (
+ "encoding/hex"
+ "math"
+ "net/url"
+ "regexp"
+ "strconv"
+ "strings"
+ "unicode/utf16"
+ "unicode/utf8"
+)
+
+// Global
+func builtinGlobal_eval(call FunctionCall) Value {
+ src := call.Argument(0)
+ if !src.IsString() {
+ return src
+ }
+ runtime := call.runtime
+ program := runtime.cmpl_parseOrThrow(src.string(), nil)
+ if !call.eval {
+ // Not a direct call to eval, so we enter the global ExecutionContext
+ runtime.enterGlobalScope()
+ defer runtime.leaveScope()
+ }
+ returnValue := runtime.cmpl_evaluate_nodeProgram(program, true)
+ if returnValue.isEmpty() {
+ return Value{}
+ }
+ return returnValue
+}
+
+func builtinGlobal_isNaN(call FunctionCall) Value {
+ value := call.Argument(0).float64()
+ return toValue_bool(math.IsNaN(value))
+}
+
+func builtinGlobal_isFinite(call FunctionCall) Value {
+ value := call.Argument(0).float64()
+ return toValue_bool(!math.IsNaN(value) && !math.IsInf(value, 0))
+}
+
+// radix 3 => 2 (ASCII 50) +47
+// radix 11 => A/a (ASCII 65/97) +54/+86
+var parseInt_alphabetTable = func() []string {
+ table := []string{"", "", "01"}
+ for radix := 3; radix <= 36; radix += 1 {
+ alphabet := table[radix-1]
+ if radix <= 10 {
+ alphabet += string(radix + 47)
+ } else {
+ alphabet += string(radix+54) + string(radix+86)
+ }
+ table = append(table, alphabet)
+ }
+ return table
+}()
+
+func digitValue(chr rune) int {
+ switch {
+ case '0' <= chr && chr <= '9':
+ return int(chr - '0')
+ case 'a' <= chr && chr <= 'z':
+ return int(chr - 'a' + 10)
+ case 'A' <= chr && chr <= 'Z':
+ return int(chr - 'A' + 10)
+ }
+ return 36 // Larger than any legal digit value
+}
+
+func builtinGlobal_parseInt(call FunctionCall) Value {
+ input := strings.TrimSpace(call.Argument(0).string())
+ if len(input) == 0 {
+ return NaNValue()
+ }
+
+ radix := int(toInt32(call.Argument(1)))
+
+ negative := false
+ switch input[0] {
+ case '+':
+ input = input[1:]
+ case '-':
+ negative = true
+ input = input[1:]
+ }
+
+ strip := true
+ if radix == 0 {
+ radix = 10
+ } else {
+ if radix < 2 || radix > 36 {
+ return NaNValue()
+ } else if radix != 16 {
+ strip = false
+ }
+ }
+
+ switch len(input) {
+ case 0:
+ return NaNValue()
+ case 1:
+ default:
+ if strip {
+ if input[0] == '0' && (input[1] == 'x' || input[1] == 'X') {
+ input = input[2:]
+ radix = 16
+ }
+ }
+ }
+
+ base := radix
+ index := 0
+ for ; index < len(input); index++ {
+ digit := digitValue(rune(input[index])) // If not ASCII, then an error anyway
+ if digit >= base {
+ break
+ }
+ }
+ input = input[0:index]
+
+ value, err := strconv.ParseInt(input, radix, 64)
+ if err != nil {
+ if err.(*strconv.NumError).Err == strconv.ErrRange {
+ base := float64(base)
+ // Could just be a very large number (e.g. 0x8000000000000000)
+ var value float64
+ for _, chr := range input {
+ digit := float64(digitValue(chr))
+ if digit >= base {
+ goto error
+ }
+ value = value*base + digit
+ }
+ if negative {
+ value *= -1
+ }
+ return toValue_float64(value)
+ }
+ error:
+ return NaNValue()
+ }
+ if negative {
+ value *= -1
+ }
+
+ return toValue_int64(value)
+}
+
+var parseFloat_matchBadSpecial = regexp.MustCompile(`[\+\-]?(?:[Ii]nf$|infinity)`)
+var parseFloat_matchValid = regexp.MustCompile(`[0-9eE\+\-\.]|Infinity`)
+
+func builtinGlobal_parseFloat(call FunctionCall) Value {
+ // Caveat emptor: This implementation does NOT match the specification
+ input := strings.TrimSpace(call.Argument(0).string())
+ if parseFloat_matchBadSpecial.MatchString(input) {
+ return NaNValue()
+ }
+ value, err := strconv.ParseFloat(input, 64)
+ if err != nil {
+ for end := len(input); end > 0; end-- {
+ input := input[0:end]
+ if !parseFloat_matchValid.MatchString(input) {
+ return NaNValue()
+ }
+ value, err = strconv.ParseFloat(input, 64)
+ if err == nil {
+ break
+ }
+ }
+ if err != nil {
+ return NaNValue()
+ }
+ }
+ return toValue_float64(value)
+}
+
+// encodeURI/decodeURI
+
+func _builtinGlobal_encodeURI(call FunctionCall, escape *regexp.Regexp) Value {
+ value := call.Argument(0)
+ var input []uint16
+ switch vl := value.value.(type) {
+ case []uint16:
+ input = vl
+ default:
+ input = utf16.Encode([]rune(value.string()))
+ }
+ if len(input) == 0 {
+ return toValue_string("")
+ }
+ output := []byte{}
+ length := len(input)
+ encode := make([]byte, 4)
+ for index := 0; index < length; {
+ value := input[index]
+ decode := utf16.Decode(input[index : index+1])
+ if value >= 0xDC00 && value <= 0xDFFF {
+ panic(call.runtime.panicURIError("URI malformed"))
+ }
+ if value >= 0xD800 && value <= 0xDBFF {
+ index += 1
+ if index >= length {
+ panic(call.runtime.panicURIError("URI malformed"))
+ }
+ // input = ..., value, value1, ...
+ value1 := input[index]
+ if value1 < 0xDC00 || value1 > 0xDFFF {
+ panic(call.runtime.panicURIError("URI malformed"))
+ }
+ decode = []rune{((rune(value) - 0xD800) * 0x400) + (rune(value1) - 0xDC00) + 0x10000}
+ }
+ index += 1
+ size := utf8.EncodeRune(encode, decode[0])
+ encode := encode[0:size]
+ output = append(output, encode...)
+ }
+ {
+ value := escape.ReplaceAllFunc(output, func(target []byte) []byte {
+ // Probably a better way of doing this
+ if target[0] == ' ' {
+ return []byte("%20")
+ }
+ return []byte(url.QueryEscape(string(target)))
+ })
+ return toValue_string(string(value))
+ }
+}
+
+var encodeURI_Regexp = regexp.MustCompile(`([^~!@#$&*()=:/,;?+'])`)
+
+func builtinGlobal_encodeURI(call FunctionCall) Value {
+ return _builtinGlobal_encodeURI(call, encodeURI_Regexp)
+}
+
+var encodeURIComponent_Regexp = regexp.MustCompile(`([^~!*()'])`)
+
+func builtinGlobal_encodeURIComponent(call FunctionCall) Value {
+ return _builtinGlobal_encodeURI(call, encodeURIComponent_Regexp)
+}
+
+// 3B/2F/3F/3A/40/26/3D/2B/24/2C/23
+var decodeURI_guard = regexp.MustCompile(`(?i)(?:%)(3B|2F|3F|3A|40|26|3D|2B|24|2C|23)`)
+
+func _decodeURI(input string, reserve bool) (string, bool) {
+ if reserve {
+ input = decodeURI_guard.ReplaceAllString(input, "%25$1")
+ }
+ input = strings.Replace(input, "+", "%2B", -1) // Ugly hack to make QueryUnescape work with our use case
+ output, err := url.QueryUnescape(input)
+ if err != nil || !utf8.ValidString(output) {
+ return "", true
+ }
+ return output, false
+}
+
+func builtinGlobal_decodeURI(call FunctionCall) Value {
+ output, err := _decodeURI(call.Argument(0).string(), true)
+ if err {
+ panic(call.runtime.panicURIError("URI malformed"))
+ }
+ return toValue_string(output)
+}
+
+func builtinGlobal_decodeURIComponent(call FunctionCall) Value {
+ output, err := _decodeURI(call.Argument(0).string(), false)
+ if err {
+ panic(call.runtime.panicURIError("URI malformed"))
+ }
+ return toValue_string(output)
+}
+
+// escape/unescape
+
+func builtin_shouldEscape(chr byte) bool {
+ if 'A' <= chr && chr <= 'Z' || 'a' <= chr && chr <= 'z' || '0' <= chr && chr <= '9' {
+ return false
+ }
+ return !strings.ContainsRune("*_+-./", rune(chr))
+}
+
+const escapeBase16 = "0123456789ABCDEF"
+
+func builtin_escape(input string) string {
+ output := make([]byte, 0, len(input))
+ length := len(input)
+ for index := 0; index < length; {
+ if builtin_shouldEscape(input[index]) {
+ chr, width := utf8.DecodeRuneInString(input[index:])
+ chr16 := utf16.Encode([]rune{chr})[0]
+ if 256 > chr16 {
+ output = append(output, '%',
+ escapeBase16[chr16>>4],
+ escapeBase16[chr16&15],
+ )
+ } else {
+ output = append(output, '%', 'u',
+ escapeBase16[chr16>>12],
+ escapeBase16[(chr16>>8)&15],
+ escapeBase16[(chr16>>4)&15],
+ escapeBase16[chr16&15],
+ )
+ }
+ index += width
+
+ } else {
+ output = append(output, input[index])
+ index += 1
+ }
+ }
+ return string(output)
+}
+
+func builtin_unescape(input string) string {
+ output := make([]rune, 0, len(input))
+ length := len(input)
+ for index := 0; index < length; {
+ if input[index] == '%' {
+ if index <= length-6 && input[index+1] == 'u' {
+ byte16, err := hex.DecodeString(input[index+2 : index+6])
+ if err == nil {
+ value := uint16(byte16[0])<<8 + uint16(byte16[1])
+ chr := utf16.Decode([]uint16{value})[0]
+ output = append(output, chr)
+ index += 6
+ continue
+ }
+ }
+ if index <= length-3 {
+ byte8, err := hex.DecodeString(input[index+1 : index+3])
+ if err == nil {
+ value := uint16(byte8[0])
+ chr := utf16.Decode([]uint16{value})[0]
+ output = append(output, chr)
+ index += 3
+ continue
+ }
+ }
+ }
+ output = append(output, rune(input[index]))
+ index += 1
+ }
+ return string(output)
+}
+
+func builtinGlobal_escape(call FunctionCall) Value {
+ return toValue_string(builtin_escape(call.Argument(0).string()))
+}
+
+func builtinGlobal_unescape(call FunctionCall) Value {
+ return toValue_string(builtin_unescape(call.Argument(0).string()))
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_array.go b/vendor/github.com/robertkrimen/otto/builtin_array.go
new file mode 100644
index 000000000..557ffc024
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_array.go
@@ -0,0 +1,681 @@
+package otto
+
+import (
+ "strconv"
+ "strings"
+)
+
+// Array
+
+func builtinArray(call FunctionCall) Value {
+ return toValue_object(builtinNewArrayNative(call.runtime, call.ArgumentList))
+}
+
+func builtinNewArray(self *_object, argumentList []Value) Value {
+ return toValue_object(builtinNewArrayNative(self.runtime, argumentList))
+}
+
+func builtinNewArrayNative(runtime *_runtime, argumentList []Value) *_object {
+ if len(argumentList) == 1 {
+ firstArgument := argumentList[0]
+ if firstArgument.IsNumber() {
+ return runtime.newArray(arrayUint32(runtime, firstArgument))
+ }
+ }
+ return runtime.newArrayOf(argumentList)
+}
+
+func builtinArray_toString(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ join := thisObject.get("join")
+ if join.isCallable() {
+ join := join._object()
+ return join.call(call.This, call.ArgumentList, false, nativeFrame)
+ }
+ return builtinObject_toString(call)
+}
+
+func builtinArray_toLocaleString(call FunctionCall) Value {
+ separator := ","
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+ if length == 0 {
+ return toValue_string("")
+ }
+ stringList := make([]string, 0, length)
+ for index := int64(0); index < length; index += 1 {
+ value := thisObject.get(arrayIndexToString(index))
+ stringValue := ""
+ switch value.kind {
+ case valueEmpty, valueUndefined, valueNull:
+ default:
+ object := call.runtime.toObject(value)
+ toLocaleString := object.get("toLocaleString")
+ if !toLocaleString.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ stringValue = toLocaleString.call(call.runtime, toValue_object(object)).string()
+ }
+ stringList = append(stringList, stringValue)
+ }
+ return toValue_string(strings.Join(stringList, separator))
+}
+
+func builtinArray_concat(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ valueArray := []Value{}
+ source := append([]Value{toValue_object(thisObject)}, call.ArgumentList...)
+ for _, item := range source {
+ switch item.kind {
+ case valueObject:
+ object := item._object()
+ if isArray(object) {
+ length := object.get("length").number().int64
+ for index := int64(0); index < length; index += 1 {
+ name := strconv.FormatInt(index, 10)
+ if object.hasProperty(name) {
+ valueArray = append(valueArray, object.get(name))
+ } else {
+ valueArray = append(valueArray, Value{})
+ }
+ }
+ continue
+ }
+ fallthrough
+ default:
+ valueArray = append(valueArray, item)
+ }
+ }
+ return toValue_object(call.runtime.newArrayOf(valueArray))
+}
+
+func builtinArray_shift(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+ if 0 == length {
+ thisObject.put("length", toValue_int64(0), true)
+ return Value{}
+ }
+ first := thisObject.get("0")
+ for index := int64(1); index < length; index++ {
+ from := arrayIndexToString(index)
+ to := arrayIndexToString(index - 1)
+ if thisObject.hasProperty(from) {
+ thisObject.put(to, thisObject.get(from), true)
+ } else {
+ thisObject.delete(to, true)
+ }
+ }
+ thisObject.delete(arrayIndexToString(length-1), true)
+ thisObject.put("length", toValue_int64(length-1), true)
+ return first
+}
+
+func builtinArray_push(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ itemList := call.ArgumentList
+ index := int64(toUint32(thisObject.get("length")))
+ for len(itemList) > 0 {
+ thisObject.put(arrayIndexToString(index), itemList[0], true)
+ itemList = itemList[1:]
+ index += 1
+ }
+ length := toValue_int64(index)
+ thisObject.put("length", length, true)
+ return length
+}
+
+func builtinArray_pop(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+ if 0 == length {
+ thisObject.put("length", toValue_uint32(0), true)
+ return Value{}
+ }
+ last := thisObject.get(arrayIndexToString(length - 1))
+ thisObject.delete(arrayIndexToString(length-1), true)
+ thisObject.put("length", toValue_int64(length-1), true)
+ return last
+}
+
+func builtinArray_join(call FunctionCall) Value {
+ separator := ","
+ {
+ argument := call.Argument(0)
+ if argument.IsDefined() {
+ separator = argument.string()
+ }
+ }
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+ if length == 0 {
+ return toValue_string("")
+ }
+ stringList := make([]string, 0, length)
+ for index := int64(0); index < length; index += 1 {
+ value := thisObject.get(arrayIndexToString(index))
+ stringValue := ""
+ switch value.kind {
+ case valueEmpty, valueUndefined, valueNull:
+ default:
+ stringValue = value.string()
+ }
+ stringList = append(stringList, stringValue)
+ }
+ return toValue_string(strings.Join(stringList, separator))
+}
+
+func builtinArray_splice(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+
+ start := valueToRangeIndex(call.Argument(0), length, false)
+ deleteCount := valueToRangeIndex(call.Argument(1), int64(length)-start, true)
+ valueArray := make([]Value, deleteCount)
+
+ for index := int64(0); index < deleteCount; index++ {
+ indexString := arrayIndexToString(int64(start + index))
+ if thisObject.hasProperty(indexString) {
+ valueArray[index] = thisObject.get(indexString)
+ }
+ }
+
+ // 0, <1, 2, 3, 4>, 5, 6, 7
+ // a, b
+ // length 8 - delete 4 @ start 1
+
+ itemList := []Value{}
+ itemCount := int64(len(call.ArgumentList))
+ if itemCount > 2 {
+ itemCount -= 2 // Less the first two arguments
+ itemList = call.ArgumentList[2:]
+ } else {
+ itemCount = 0
+ }
+ if itemCount < deleteCount {
+ // The Object/Array is shrinking
+ stop := int64(length) - deleteCount
+ // The new length of the Object/Array before
+ // appending the itemList remainder
+ // Stopping at the lower bound of the insertion:
+ // Move an item from the after the deleted portion
+ // to a position after the inserted portion
+ for index := start; index < stop; index++ {
+ from := arrayIndexToString(index + deleteCount) // Position just after deletion
+ to := arrayIndexToString(index + itemCount) // Position just after splice (insertion)
+ if thisObject.hasProperty(from) {
+ thisObject.put(to, thisObject.get(from), true)
+ } else {
+ thisObject.delete(to, true)
+ }
+ }
+ // Delete off the end
+ // We don't bother to delete below <stop + itemCount> (if any) since those
+ // will be overwritten anyway
+ for index := int64(length); index > (stop + itemCount); index-- {
+ thisObject.delete(arrayIndexToString(index-1), true)
+ }
+ } else if itemCount > deleteCount {
+ // The Object/Array is growing
+ // The itemCount is greater than the deleteCount, so we do
+ // not have to worry about overwriting what we should be moving
+ // ---
+ // Starting from the upper bound of the deletion:
+ // Move an item from the after the deleted portion
+ // to a position after the inserted portion
+ for index := int64(length) - deleteCount; index > start; index-- {
+ from := arrayIndexToString(index + deleteCount - 1)
+ to := arrayIndexToString(index + itemCount - 1)
+ if thisObject.hasProperty(from) {
+ thisObject.put(to, thisObject.get(from), true)
+ } else {
+ thisObject.delete(to, true)
+ }
+ }
+ }
+
+ for index := int64(0); index < itemCount; index++ {
+ thisObject.put(arrayIndexToString(index+start), itemList[index], true)
+ }
+ thisObject.put("length", toValue_int64(int64(length)+itemCount-deleteCount), true)
+
+ return toValue_object(call.runtime.newArrayOf(valueArray))
+}
+
+func builtinArray_slice(call FunctionCall) Value {
+ thisObject := call.thisObject()
+
+ length := int64(toUint32(thisObject.get("length")))
+ start, end := rangeStartEnd(call.ArgumentList, length, false)
+
+ if start >= end {
+ // Always an empty array
+ return toValue_object(call.runtime.newArray(0))
+ }
+ sliceLength := end - start
+ sliceValueArray := make([]Value, sliceLength)
+
+ for index := int64(0); index < sliceLength; index++ {
+ from := arrayIndexToString(index + start)
+ if thisObject.hasProperty(from) {
+ sliceValueArray[index] = thisObject.get(from)
+ }
+ }
+
+ return toValue_object(call.runtime.newArrayOf(sliceValueArray))
+}
+
+func builtinArray_unshift(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+ itemList := call.ArgumentList
+ itemCount := int64(len(itemList))
+
+ for index := length; index > 0; index-- {
+ from := arrayIndexToString(index - 1)
+ to := arrayIndexToString(index + itemCount - 1)
+ if thisObject.hasProperty(from) {
+ thisObject.put(to, thisObject.get(from), true)
+ } else {
+ thisObject.delete(to, true)
+ }
+ }
+
+ for index := int64(0); index < itemCount; index++ {
+ thisObject.put(arrayIndexToString(index), itemList[index], true)
+ }
+
+ newLength := toValue_int64(length + itemCount)
+ thisObject.put("length", newLength, true)
+ return newLength
+}
+
+func builtinArray_reverse(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := int64(toUint32(thisObject.get("length")))
+
+ lower := struct {
+ name string
+ index int64
+ exists bool
+ }{}
+ upper := lower
+
+ lower.index = 0
+ middle := length / 2 // Division will floor
+
+ for lower.index != middle {
+ lower.name = arrayIndexToString(lower.index)
+ upper.index = length - lower.index - 1
+ upper.name = arrayIndexToString(upper.index)
+
+ lower.exists = thisObject.hasProperty(lower.name)
+ upper.exists = thisObject.hasProperty(upper.name)
+
+ if lower.exists && upper.exists {
+ lowerValue := thisObject.get(lower.name)
+ upperValue := thisObject.get(upper.name)
+ thisObject.put(lower.name, upperValue, true)
+ thisObject.put(upper.name, lowerValue, true)
+ } else if !lower.exists && upper.exists {
+ value := thisObject.get(upper.name)
+ thisObject.delete(upper.name, true)
+ thisObject.put(lower.name, value, true)
+ } else if lower.exists && !upper.exists {
+ value := thisObject.get(lower.name)
+ thisObject.delete(lower.name, true)
+ thisObject.put(upper.name, value, true)
+ } else {
+ // Nothing happens.
+ }
+
+ lower.index += 1
+ }
+
+ return call.This
+}
+
+func sortCompare(thisObject *_object, index0, index1 uint, compare *_object) int {
+ j := struct {
+ name string
+ exists bool
+ defined bool
+ value string
+ }{}
+ k := j
+ j.name = arrayIndexToString(int64(index0))
+ j.exists = thisObject.hasProperty(j.name)
+ k.name = arrayIndexToString(int64(index1))
+ k.exists = thisObject.hasProperty(k.name)
+
+ if !j.exists && !k.exists {
+ return 0
+ } else if !j.exists {
+ return 1
+ } else if !k.exists {
+ return -1
+ }
+
+ x := thisObject.get(j.name)
+ y := thisObject.get(k.name)
+ j.defined = x.IsDefined()
+ k.defined = y.IsDefined()
+
+ if !j.defined && !k.defined {
+ return 0
+ } else if !j.defined {
+ return 1
+ } else if !k.defined {
+ return -1
+ }
+
+ if compare == nil {
+ j.value = x.string()
+ k.value = y.string()
+
+ if j.value == k.value {
+ return 0
+ } else if j.value < k.value {
+ return -1
+ }
+
+ return 1
+ }
+
+ return int(toInt32(compare.call(Value{}, []Value{x, y}, false, nativeFrame)))
+}
+
+func arraySortSwap(thisObject *_object, index0, index1 uint) {
+
+ j := struct {
+ name string
+ exists bool
+ }{}
+ k := j
+
+ j.name = arrayIndexToString(int64(index0))
+ j.exists = thisObject.hasProperty(j.name)
+ k.name = arrayIndexToString(int64(index1))
+ k.exists = thisObject.hasProperty(k.name)
+
+ if j.exists && k.exists {
+ jValue := thisObject.get(j.name)
+ kValue := thisObject.get(k.name)
+ thisObject.put(j.name, kValue, true)
+ thisObject.put(k.name, jValue, true)
+ } else if !j.exists && k.exists {
+ value := thisObject.get(k.name)
+ thisObject.delete(k.name, true)
+ thisObject.put(j.name, value, true)
+ } else if j.exists && !k.exists {
+ value := thisObject.get(j.name)
+ thisObject.delete(j.name, true)
+ thisObject.put(k.name, value, true)
+ } else {
+ // Nothing happens.
+ }
+}
+
+func arraySortQuickPartition(thisObject *_object, left, right, pivot uint, compare *_object) (uint, uint) {
+ arraySortSwap(thisObject, pivot, right) // Right is now the pivot value
+ cursor := left
+ cursor2 := left
+ for index := left; index < right; index++ {
+ comparison := sortCompare(thisObject, index, right, compare) // Compare to the pivot value
+ if comparison < 0 {
+ arraySortSwap(thisObject, index, cursor)
+ if cursor < cursor2 {
+ arraySortSwap(thisObject, index, cursor2)
+ }
+ cursor += 1
+ cursor2 += 1
+ } else if comparison == 0 {
+ arraySortSwap(thisObject, index, cursor2)
+ cursor2 += 1
+ }
+ }
+ arraySortSwap(thisObject, cursor2, right)
+ return cursor, cursor2
+}
+
+func arraySortQuickSort(thisObject *_object, left, right uint, compare *_object) {
+ if left < right {
+ middle := left + (right-left)/2
+ pivot, pivot2 := arraySortQuickPartition(thisObject, left, right, middle, compare)
+ if pivot > 0 {
+ arraySortQuickSort(thisObject, left, pivot-1, compare)
+ }
+ arraySortQuickSort(thisObject, pivot2+1, right, compare)
+ }
+}
+
+func builtinArray_sort(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ length := uint(toUint32(thisObject.get("length")))
+ compareValue := call.Argument(0)
+ compare := compareValue._object()
+ if compareValue.IsUndefined() {
+ } else if !compareValue.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ if length > 1 {
+ arraySortQuickSort(thisObject, 0, length-1, compare)
+ }
+ return call.This
+}
+
+func builtinArray_isArray(call FunctionCall) Value {
+ return toValue_bool(isArray(call.Argument(0)._object()))
+}
+
+func builtinArray_indexOf(call FunctionCall) Value {
+ thisObject, matchValue := call.thisObject(), call.Argument(0)
+ if length := int64(toUint32(thisObject.get("length"))); length > 0 {
+ index := int64(0)
+ if len(call.ArgumentList) > 1 {
+ index = call.Argument(1).number().int64
+ }
+ if index < 0 {
+ if index += length; index < 0 {
+ index = 0
+ }
+ } else if index >= length {
+ index = -1
+ }
+ for ; index >= 0 && index < length; index++ {
+ name := arrayIndexToString(int64(index))
+ if !thisObject.hasProperty(name) {
+ continue
+ }
+ value := thisObject.get(name)
+ if strictEqualityComparison(matchValue, value) {
+ return toValue_uint32(uint32(index))
+ }
+ }
+ }
+ return toValue_int(-1)
+}
+
+func builtinArray_lastIndexOf(call FunctionCall) Value {
+ thisObject, matchValue := call.thisObject(), call.Argument(0)
+ length := int64(toUint32(thisObject.get("length")))
+ index := length - 1
+ if len(call.ArgumentList) > 1 {
+ index = call.Argument(1).number().int64
+ }
+ if 0 > index {
+ index += length
+ }
+ if index > length {
+ index = length - 1
+ } else if 0 > index {
+ return toValue_int(-1)
+ }
+ for ; index >= 0; index-- {
+ name := arrayIndexToString(int64(index))
+ if !thisObject.hasProperty(name) {
+ continue
+ }
+ value := thisObject.get(name)
+ if strictEqualityComparison(matchValue, value) {
+ return toValue_uint32(uint32(index))
+ }
+ }
+ return toValue_int(-1)
+}
+
+func builtinArray_every(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ length := int64(toUint32(thisObject.get("length")))
+ callThis := call.Argument(1)
+ for index := int64(0); index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ if value := thisObject.get(key); iterator.call(call.runtime, callThis, value, toValue_int64(index), this).bool() {
+ continue
+ }
+ return falseValue
+ }
+ }
+ return trueValue
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_some(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ length := int64(toUint32(thisObject.get("length")))
+ callThis := call.Argument(1)
+ for index := int64(0); index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ if value := thisObject.get(key); iterator.call(call.runtime, callThis, value, toValue_int64(index), this).bool() {
+ return trueValue
+ }
+ }
+ }
+ return falseValue
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_forEach(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ length := int64(toUint32(thisObject.get("length")))
+ callThis := call.Argument(1)
+ for index := int64(0); index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ iterator.call(call.runtime, callThis, thisObject.get(key), toValue_int64(index), this)
+ }
+ }
+ return Value{}
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_map(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ length := int64(toUint32(thisObject.get("length")))
+ callThis := call.Argument(1)
+ values := make([]Value, length)
+ for index := int64(0); index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ values[index] = iterator.call(call.runtime, callThis, thisObject.get(key), index, this)
+ } else {
+ values[index] = Value{}
+ }
+ }
+ return toValue_object(call.runtime.newArrayOf(values))
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_filter(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ length := int64(toUint32(thisObject.get("length")))
+ callThis := call.Argument(1)
+ values := make([]Value, 0)
+ for index := int64(0); index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ value := thisObject.get(key)
+ if iterator.call(call.runtime, callThis, value, index, this).bool() {
+ values = append(values, value)
+ }
+ }
+ }
+ return toValue_object(call.runtime.newArrayOf(values))
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_reduce(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ initial := len(call.ArgumentList) > 1
+ start := call.Argument(1)
+ length := int64(toUint32(thisObject.get("length")))
+ index := int64(0)
+ if length > 0 || initial {
+ var accumulator Value
+ if !initial {
+ for ; index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ accumulator = thisObject.get(key)
+ index++
+ break
+ }
+ }
+ } else {
+ accumulator = start
+ }
+ for ; index < length; index++ {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ accumulator = iterator.call(call.runtime, Value{}, accumulator, thisObject.get(key), key, this)
+ }
+ }
+ return accumulator
+ }
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinArray_reduceRight(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ this := toValue_object(thisObject)
+ if iterator := call.Argument(0); iterator.isCallable() {
+ initial := len(call.ArgumentList) > 1
+ start := call.Argument(1)
+ length := int64(toUint32(thisObject.get("length")))
+ if length > 0 || initial {
+ index := length - 1
+ var accumulator Value
+ if !initial {
+ for ; index >= 0; index-- {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ accumulator = thisObject.get(key)
+ index--
+ break
+ }
+ }
+ } else {
+ accumulator = start
+ }
+ for ; index >= 0; index-- {
+ if key := arrayIndexToString(index); thisObject.hasProperty(key) {
+ accumulator = iterator.call(call.runtime, Value{}, accumulator, thisObject.get(key), key, this)
+ }
+ }
+ return accumulator
+ }
+ }
+ panic(call.runtime.panicTypeError())
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_boolean.go b/vendor/github.com/robertkrimen/otto/builtin_boolean.go
new file mode 100644
index 000000000..59b8e789b
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_boolean.go
@@ -0,0 +1,28 @@
+package otto
+
+// Boolean
+
+func builtinBoolean(call FunctionCall) Value {
+ return toValue_bool(call.Argument(0).bool())
+}
+
+func builtinNewBoolean(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newBoolean(valueOfArrayIndex(argumentList, 0)))
+}
+
+func builtinBoolean_toString(call FunctionCall) Value {
+ value := call.This
+ if !value.IsBoolean() {
+ // Will throw a TypeError if ThisObject is not a Boolean
+ value = call.thisClassObject("Boolean").primitiveValue()
+ }
+ return toValue_string(value.string())
+}
+
+func builtinBoolean_valueOf(call FunctionCall) Value {
+ value := call.This
+ if !value.IsBoolean() {
+ value = call.thisClassObject("Boolean").primitiveValue()
+ }
+ return value
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_date.go b/vendor/github.com/robertkrimen/otto/builtin_date.go
new file mode 100644
index 000000000..f20bf8e3f
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_date.go
@@ -0,0 +1,615 @@
+package otto
+
+import (
+ "math"
+ Time "time"
+)
+
+// Date
+
+const (
+ // TODO Be like V8?
+ // builtinDate_goDateTimeLayout = "Mon Jan 2 2006 15:04:05 GMT-0700 (MST)"
+ builtinDate_goDateTimeLayout = Time.RFC1123 // "Mon, 02 Jan 2006 15:04:05 MST"
+ builtinDate_goDateLayout = "Mon, 02 Jan 2006"
+ builtinDate_goTimeLayout = "15:04:05 MST"
+)
+
+func builtinDate(call FunctionCall) Value {
+ date := &_dateObject{}
+ date.Set(newDateTime([]Value{}, Time.Local))
+ return toValue_string(date.Time().Format(builtinDate_goDateTimeLayout))
+}
+
+func builtinNewDate(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newDate(newDateTime(argumentList, Time.Local)))
+}
+
+func builtinDate_toString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format(builtinDate_goDateTimeLayout))
+}
+
+func builtinDate_toDateString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format(builtinDate_goDateLayout))
+}
+
+func builtinDate_toTimeString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format(builtinDate_goTimeLayout))
+}
+
+func builtinDate_toUTCString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Format(builtinDate_goDateTimeLayout))
+}
+
+func builtinDate_toISOString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Format("2006-01-02T15:04:05.000Z"))
+}
+
+func builtinDate_toJSON(call FunctionCall) Value {
+ object := call.thisObject()
+ value := object.DefaultValue(defaultValueHintNumber) // FIXME object.primitiveNumberValue
+ { // FIXME value.isFinite
+ value := value.float64()
+ if math.IsNaN(value) || math.IsInf(value, 0) {
+ return nullValue
+ }
+ }
+ toISOString := object.get("toISOString")
+ if !toISOString.isCallable() {
+ // FIXME
+ panic(call.runtime.panicTypeError())
+ }
+ return toISOString.call(call.runtime, toValue_object(object), []Value{})
+}
+
+func builtinDate_toGMTString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Format("Mon, 02 Jan 2006 15:04:05 GMT"))
+}
+
+func builtinDate_getTime(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ // We do this (convert away from a float) so the user
+ // does not get something back in exponential notation
+ return toValue_int64(int64(date.Epoch()))
+}
+
+func builtinDate_setTime(call FunctionCall) Value {
+ object := call.thisObject()
+ date := dateObjectOf(call.runtime, call.thisObject())
+ date.Set(call.Argument(0).float64())
+ object.value = date
+ return date.Value()
+}
+
+func _builtinDate_beforeSet(call FunctionCall, argumentLimit int, timeLocal bool) (*_object, *_dateObject, *_ecmaTime, []int) {
+ object := call.thisObject()
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return nil, nil, nil, nil
+ }
+
+ if argumentLimit > len(call.ArgumentList) {
+ argumentLimit = len(call.ArgumentList)
+ }
+
+ if argumentLimit == 0 {
+ object.value = invalidDateObject
+ return nil, nil, nil, nil
+ }
+
+ valueList := make([]int, argumentLimit)
+ for index := 0; index < argumentLimit; index++ {
+ value := call.ArgumentList[index]
+ nm := value.number()
+ switch nm.kind {
+ case numberInteger, numberFloat:
+ default:
+ object.value = invalidDateObject
+ return nil, nil, nil, nil
+ }
+ valueList[index] = int(nm.int64)
+ }
+ baseTime := date.Time()
+ if timeLocal {
+ baseTime = baseTime.Local()
+ }
+ ecmaTime := ecmaTime(baseTime)
+ return object, &date, &ecmaTime, valueList
+}
+
+func builtinDate_parse(call FunctionCall) Value {
+ date := call.Argument(0).string()
+ return toValue_float64(dateParse(date))
+}
+
+func builtinDate_UTC(call FunctionCall) Value {
+ return toValue_float64(newDateTime(call.ArgumentList, Time.UTC))
+}
+
+func builtinDate_now(call FunctionCall) Value {
+ call.ArgumentList = []Value(nil)
+ return builtinDate_UTC(call)
+}
+
+// This is a placeholder
+func builtinDate_toLocaleString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format("2006-01-02 15:04:05"))
+}
+
+// This is a placeholder
+func builtinDate_toLocaleDateString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format("2006-01-02"))
+}
+
+// This is a placeholder
+func builtinDate_toLocaleTimeString(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return toValue_string("Invalid Date")
+ }
+ return toValue_string(date.Time().Local().Format("15:04:05"))
+}
+
+func builtinDate_valueOf(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return date.Value()
+}
+
+func builtinDate_getYear(call FunctionCall) Value {
+ // Will throw a TypeError is ThisObject is nil or
+ // does not have Class of "Date"
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Year() - 1900)
+}
+
+func builtinDate_getFullYear(call FunctionCall) Value {
+ // Will throw a TypeError is ThisObject is nil or
+ // does not have Class of "Date"
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Year())
+}
+
+func builtinDate_getUTCFullYear(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Year())
+}
+
+func builtinDate_getMonth(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(dateFromGoMonth(date.Time().Local().Month()))
+}
+
+func builtinDate_getUTCMonth(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(dateFromGoMonth(date.Time().Month()))
+}
+
+func builtinDate_getDate(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Day())
+}
+
+func builtinDate_getUTCDate(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Day())
+}
+
+func builtinDate_getDay(call FunctionCall) Value {
+ // Actually day of the week
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(dateFromGoDay(date.Time().Local().Weekday()))
+}
+
+func builtinDate_getUTCDay(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(dateFromGoDay(date.Time().Weekday()))
+}
+
+func builtinDate_getHours(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Hour())
+}
+
+func builtinDate_getUTCHours(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Hour())
+}
+
+func builtinDate_getMinutes(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Minute())
+}
+
+func builtinDate_getUTCMinutes(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Minute())
+}
+
+func builtinDate_getSeconds(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Second())
+}
+
+func builtinDate_getUTCSeconds(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Second())
+}
+
+func builtinDate_getMilliseconds(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Local().Nanosecond() / (100 * 100 * 100))
+}
+
+func builtinDate_getUTCMilliseconds(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ return toValue_int(date.Time().Nanosecond() / (100 * 100 * 100))
+}
+
+func builtinDate_getTimezoneOffset(call FunctionCall) Value {
+ date := dateObjectOf(call.runtime, call.thisObject())
+ if date.isNaN {
+ return NaNValue()
+ }
+ timeLocal := date.Time().Local()
+ // Is this kosher?
+ timeLocalAsUTC := Time.Date(
+ timeLocal.Year(),
+ timeLocal.Month(),
+ timeLocal.Day(),
+ timeLocal.Hour(),
+ timeLocal.Minute(),
+ timeLocal.Second(),
+ timeLocal.Nanosecond(),
+ Time.UTC,
+ )
+ return toValue_float64(date.Time().Sub(timeLocalAsUTC).Seconds() / 60)
+}
+
+func builtinDate_setMilliseconds(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 1, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ ecmaTime.millisecond = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCMilliseconds(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 1, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ ecmaTime.millisecond = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setSeconds(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 2, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 1 {
+ ecmaTime.millisecond = value[1]
+ }
+ ecmaTime.second = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCSeconds(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 2, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 1 {
+ ecmaTime.millisecond = value[1]
+ }
+ ecmaTime.second = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setMinutes(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 3, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 2 {
+ ecmaTime.millisecond = value[2]
+ ecmaTime.second = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.second = value[1]
+ }
+ ecmaTime.minute = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCMinutes(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 3, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 2 {
+ ecmaTime.millisecond = value[2]
+ ecmaTime.second = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.second = value[1]
+ }
+ ecmaTime.minute = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setHours(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 4, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 3 {
+ ecmaTime.millisecond = value[3]
+ ecmaTime.second = value[2]
+ ecmaTime.minute = value[1]
+ } else if len(value) > 2 {
+ ecmaTime.second = value[2]
+ ecmaTime.minute = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.minute = value[1]
+ }
+ ecmaTime.hour = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCHours(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 4, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 3 {
+ ecmaTime.millisecond = value[3]
+ ecmaTime.second = value[2]
+ ecmaTime.minute = value[1]
+ } else if len(value) > 2 {
+ ecmaTime.second = value[2]
+ ecmaTime.minute = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.minute = value[1]
+ }
+ ecmaTime.hour = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setDate(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 1, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ ecmaTime.day = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCDate(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 1, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ ecmaTime.day = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setMonth(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 2, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 1 {
+ ecmaTime.day = value[1]
+ }
+ ecmaTime.month = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCMonth(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 2, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 1 {
+ ecmaTime.day = value[1]
+ }
+ ecmaTime.month = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setYear(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 1, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ year := value[0]
+ if 0 <= year && year <= 99 {
+ year += 1900
+ }
+ ecmaTime.year = year
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setFullYear(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 3, true)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 2 {
+ ecmaTime.day = value[2]
+ ecmaTime.month = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.month = value[1]
+ }
+ ecmaTime.year = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+func builtinDate_setUTCFullYear(call FunctionCall) Value {
+ object, date, ecmaTime, value := _builtinDate_beforeSet(call, 3, false)
+ if ecmaTime == nil {
+ return NaNValue()
+ }
+
+ if len(value) > 2 {
+ ecmaTime.day = value[2]
+ ecmaTime.month = value[1]
+ } else if len(value) > 1 {
+ ecmaTime.month = value[1]
+ }
+ ecmaTime.year = value[0]
+
+ date.SetTime(ecmaTime.goTime())
+ object.value = *date
+ return date.Value()
+}
+
+// toUTCString
+// toISOString
+// toJSONString
+// toJSON
diff --git a/vendor/github.com/robertkrimen/otto/builtin_error.go b/vendor/github.com/robertkrimen/otto/builtin_error.go
new file mode 100644
index 000000000..41da84ef2
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_error.go
@@ -0,0 +1,126 @@
+package otto
+
+import (
+ "fmt"
+)
+
+func builtinError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newError("Error", call.Argument(0), 1))
+}
+
+func builtinNewError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newError("Error", valueOfArrayIndex(argumentList, 0), 0))
+}
+
+func builtinError_toString(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ if thisObject == nil {
+ panic(call.runtime.panicTypeError())
+ }
+
+ name := "Error"
+ nameValue := thisObject.get("name")
+ if nameValue.IsDefined() {
+ name = nameValue.string()
+ }
+
+ message := ""
+ messageValue := thisObject.get("message")
+ if messageValue.IsDefined() {
+ message = messageValue.string()
+ }
+
+ if len(name) == 0 {
+ return toValue_string(message)
+ }
+
+ if len(message) == 0 {
+ return toValue_string(name)
+ }
+
+ return toValue_string(fmt.Sprintf("%s: %s", name, message))
+}
+
+func (runtime *_runtime) newEvalError(message Value) *_object {
+ self := runtime.newErrorObject("EvalError", message, 0)
+ self.prototype = runtime.global.EvalErrorPrototype
+ return self
+}
+
+func builtinEvalError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newEvalError(call.Argument(0)))
+}
+
+func builtinNewEvalError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newEvalError(valueOfArrayIndex(argumentList, 0)))
+}
+
+func (runtime *_runtime) newTypeError(message Value) *_object {
+ self := runtime.newErrorObject("TypeError", message, 0)
+ self.prototype = runtime.global.TypeErrorPrototype
+ return self
+}
+
+func builtinTypeError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newTypeError(call.Argument(0)))
+}
+
+func builtinNewTypeError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newTypeError(valueOfArrayIndex(argumentList, 0)))
+}
+
+func (runtime *_runtime) newRangeError(message Value) *_object {
+ self := runtime.newErrorObject("RangeError", message, 0)
+ self.prototype = runtime.global.RangeErrorPrototype
+ return self
+}
+
+func builtinRangeError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newRangeError(call.Argument(0)))
+}
+
+func builtinNewRangeError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newRangeError(valueOfArrayIndex(argumentList, 0)))
+}
+
+func (runtime *_runtime) newURIError(message Value) *_object {
+ self := runtime.newErrorObject("URIError", message, 0)
+ self.prototype = runtime.global.URIErrorPrototype
+ return self
+}
+
+func (runtime *_runtime) newReferenceError(message Value) *_object {
+ self := runtime.newErrorObject("ReferenceError", message, 0)
+ self.prototype = runtime.global.ReferenceErrorPrototype
+ return self
+}
+
+func builtinReferenceError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newReferenceError(call.Argument(0)))
+}
+
+func builtinNewReferenceError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newReferenceError(valueOfArrayIndex(argumentList, 0)))
+}
+
+func (runtime *_runtime) newSyntaxError(message Value) *_object {
+ self := runtime.newErrorObject("SyntaxError", message, 0)
+ self.prototype = runtime.global.SyntaxErrorPrototype
+ return self
+}
+
+func builtinSyntaxError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newSyntaxError(call.Argument(0)))
+}
+
+func builtinNewSyntaxError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newSyntaxError(valueOfArrayIndex(argumentList, 0)))
+}
+
+func builtinURIError(call FunctionCall) Value {
+ return toValue_object(call.runtime.newURIError(call.Argument(0)))
+}
+
+func builtinNewURIError(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newURIError(valueOfArrayIndex(argumentList, 0)))
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_function.go b/vendor/github.com/robertkrimen/otto/builtin_function.go
new file mode 100644
index 000000000..3d07566c6
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_function.go
@@ -0,0 +1,129 @@
+package otto
+
+import (
+ "fmt"
+ "regexp"
+ "strings"
+ "unicode"
+
+ "github.com/robertkrimen/otto/parser"
+)
+
+// Function
+
+func builtinFunction(call FunctionCall) Value {
+ return toValue_object(builtinNewFunctionNative(call.runtime, call.ArgumentList))
+}
+
+func builtinNewFunction(self *_object, argumentList []Value) Value {
+ return toValue_object(builtinNewFunctionNative(self.runtime, argumentList))
+}
+
+func argumentList2parameterList(argumentList []Value) []string {
+ parameterList := make([]string, 0, len(argumentList))
+ for _, value := range argumentList {
+ tmp := strings.FieldsFunc(value.string(), func(chr rune) bool {
+ return chr == ',' || unicode.IsSpace(chr)
+ })
+ parameterList = append(parameterList, tmp...)
+ }
+ return parameterList
+}
+
+var matchIdentifier = regexp.MustCompile(`^[$_\p{L}][$_\p{L}\d}]*$`)
+
+func builtinNewFunctionNative(runtime *_runtime, argumentList []Value) *_object {
+ var parameterList, body string
+ count := len(argumentList)
+ if count > 0 {
+ tmp := make([]string, 0, count-1)
+ for _, value := range argumentList[0 : count-1] {
+ tmp = append(tmp, value.string())
+ }
+ parameterList = strings.Join(tmp, ",")
+ body = argumentList[count-1].string()
+ }
+
+ // FIXME
+ function, err := parser.ParseFunction(parameterList, body)
+ runtime.parseThrow(err) // Will panic/throw appropriately
+ cmpl := _compiler{}
+ cmpl_function := cmpl.parseExpression(function)
+
+ return runtime.newNodeFunction(cmpl_function.(*_nodeFunctionLiteral), runtime.globalStash)
+}
+
+func builtinFunction_toString(call FunctionCall) Value {
+ object := call.thisClassObject("Function") // Should throw a TypeError unless Function
+ switch fn := object.value.(type) {
+ case _nativeFunctionObject:
+ return toValue_string(fmt.Sprintf("function %s() { [native code] }", fn.name))
+ case _nodeFunctionObject:
+ return toValue_string(fn.node.source)
+ case _bindFunctionObject:
+ return toValue_string("function () { [native code] }")
+ }
+
+ panic(call.runtime.panicTypeError("Function.toString()"))
+}
+
+func builtinFunction_apply(call FunctionCall) Value {
+ if !call.This.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ this := call.Argument(0)
+ if this.IsUndefined() {
+ // FIXME Not ECMA5
+ this = toValue_object(call.runtime.globalObject)
+ }
+ argumentList := call.Argument(1)
+ switch argumentList.kind {
+ case valueUndefined, valueNull:
+ return call.thisObject().call(this, nil, false, nativeFrame)
+ case valueObject:
+ default:
+ panic(call.runtime.panicTypeError())
+ }
+
+ arrayObject := argumentList._object()
+ thisObject := call.thisObject()
+ length := int64(toUint32(arrayObject.get("length")))
+ valueArray := make([]Value, length)
+ for index := int64(0); index < length; index++ {
+ valueArray[index] = arrayObject.get(arrayIndexToString(index))
+ }
+ return thisObject.call(this, valueArray, false, nativeFrame)
+}
+
+func builtinFunction_call(call FunctionCall) Value {
+ if !call.This.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ thisObject := call.thisObject()
+ this := call.Argument(0)
+ if this.IsUndefined() {
+ // FIXME Not ECMA5
+ this = toValue_object(call.runtime.globalObject)
+ }
+ if len(call.ArgumentList) >= 1 {
+ return thisObject.call(this, call.ArgumentList[1:], false, nativeFrame)
+ }
+ return thisObject.call(this, nil, false, nativeFrame)
+}
+
+func builtinFunction_bind(call FunctionCall) Value {
+ target := call.This
+ if !target.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ targetObject := target._object()
+
+ this := call.Argument(0)
+ argumentList := call.slice(1)
+ if this.IsUndefined() {
+ // FIXME Do this elsewhere?
+ this = toValue_object(call.runtime.globalObject)
+ }
+
+ return toValue_object(call.runtime.newBoundFunction(targetObject, this, argumentList))
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_json.go b/vendor/github.com/robertkrimen/otto/builtin_json.go
new file mode 100644
index 000000000..aed54bf12
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_json.go
@@ -0,0 +1,299 @@
+package otto
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "strings"
+)
+
+type _builtinJSON_parseContext struct {
+ call FunctionCall
+ reviver Value
+}
+
+func builtinJSON_parse(call FunctionCall) Value {
+ ctx := _builtinJSON_parseContext{
+ call: call,
+ }
+ revive := false
+ if reviver := call.Argument(1); reviver.isCallable() {
+ revive = true
+ ctx.reviver = reviver
+ }
+
+ var root interface{}
+ err := json.Unmarshal([]byte(call.Argument(0).string()), &root)
+ if err != nil {
+ panic(call.runtime.panicSyntaxError(err.Error()))
+ }
+ value, exists := builtinJSON_parseWalk(ctx, root)
+ if !exists {
+ value = Value{}
+ }
+ if revive {
+ root := ctx.call.runtime.newObject()
+ root.put("", value, false)
+ return builtinJSON_reviveWalk(ctx, root, "")
+ }
+ return value
+}
+
+func builtinJSON_reviveWalk(ctx _builtinJSON_parseContext, holder *_object, name string) Value {
+ value := holder.get(name)
+ if object := value._object(); object != nil {
+ if isArray(object) {
+ length := int64(objectLength(object))
+ for index := int64(0); index < length; index += 1 {
+ name := arrayIndexToString(index)
+ value := builtinJSON_reviveWalk(ctx, object, name)
+ if value.IsUndefined() {
+ object.delete(name, false)
+ } else {
+ object.defineProperty(name, value, 0111, false)
+ }
+ }
+ } else {
+ object.enumerate(false, func(name string) bool {
+ value := builtinJSON_reviveWalk(ctx, object, name)
+ if value.IsUndefined() {
+ object.delete(name, false)
+ } else {
+ object.defineProperty(name, value, 0111, false)
+ }
+ return true
+ })
+ }
+ }
+ return ctx.reviver.call(ctx.call.runtime, toValue_object(holder), name, value)
+}
+
+func builtinJSON_parseWalk(ctx _builtinJSON_parseContext, rawValue interface{}) (Value, bool) {
+ switch value := rawValue.(type) {
+ case nil:
+ return nullValue, true
+ case bool:
+ return toValue_bool(value), true
+ case string:
+ return toValue_string(value), true
+ case float64:
+ return toValue_float64(value), true
+ case []interface{}:
+ arrayValue := make([]Value, len(value))
+ for index, rawValue := range value {
+ if value, exists := builtinJSON_parseWalk(ctx, rawValue); exists {
+ arrayValue[index] = value
+ }
+ }
+ return toValue_object(ctx.call.runtime.newArrayOf(arrayValue)), true
+ case map[string]interface{}:
+ object := ctx.call.runtime.newObject()
+ for name, rawValue := range value {
+ if value, exists := builtinJSON_parseWalk(ctx, rawValue); exists {
+ object.put(name, value, false)
+ }
+ }
+ return toValue_object(object), true
+ }
+ return Value{}, false
+}
+
+type _builtinJSON_stringifyContext struct {
+ call FunctionCall
+ stack []*_object
+ propertyList []string
+ replacerFunction *Value
+ gap string
+}
+
+func builtinJSON_stringify(call FunctionCall) Value {
+ ctx := _builtinJSON_stringifyContext{
+ call: call,
+ stack: []*_object{nil},
+ }
+ replacer := call.Argument(1)._object()
+ if replacer != nil {
+ if isArray(replacer) {
+ length := objectLength(replacer)
+ seen := map[string]bool{}
+ propertyList := make([]string, length)
+ length = 0
+ for index, _ := range propertyList {
+ value := replacer.get(arrayIndexToString(int64(index)))
+ switch value.kind {
+ case valueObject:
+ switch value.value.(*_object).class {
+ case "String":
+ case "Number":
+ default:
+ continue
+ }
+ case valueString:
+ case valueNumber:
+ default:
+ continue
+ }
+ name := value.string()
+ if seen[name] {
+ continue
+ }
+ seen[name] = true
+ length += 1
+ propertyList[index] = name
+ }
+ ctx.propertyList = propertyList[0:length]
+ } else if replacer.class == "Function" {
+ value := toValue_object(replacer)
+ ctx.replacerFunction = &value
+ }
+ }
+ if spaceValue, exists := call.getArgument(2); exists {
+ if spaceValue.kind == valueObject {
+ switch spaceValue.value.(*_object).class {
+ case "String":
+ spaceValue = toValue_string(spaceValue.string())
+ case "Number":
+ spaceValue = spaceValue.numberValue()
+ }
+ }
+ switch spaceValue.kind {
+ case valueString:
+ value := spaceValue.string()
+ if len(value) > 10 {
+ ctx.gap = value[0:10]
+ } else {
+ ctx.gap = value
+ }
+ case valueNumber:
+ value := spaceValue.number().int64
+ if value > 10 {
+ value = 10
+ } else if value < 0 {
+ value = 0
+ }
+ ctx.gap = strings.Repeat(" ", int(value))
+ }
+ }
+ holder := call.runtime.newObject()
+ holder.put("", call.Argument(0), false)
+ value, exists := builtinJSON_stringifyWalk(ctx, "", holder)
+ if !exists {
+ return Value{}
+ }
+ valueJSON, err := json.Marshal(value)
+ if err != nil {
+ panic(call.runtime.panicTypeError(err.Error()))
+ }
+ if ctx.gap != "" {
+ valueJSON1 := bytes.Buffer{}
+ json.Indent(&valueJSON1, valueJSON, "", ctx.gap)
+ valueJSON = valueJSON1.Bytes()
+ }
+ return toValue_string(string(valueJSON))
+}
+
+func builtinJSON_stringifyWalk(ctx _builtinJSON_stringifyContext, key string, holder *_object) (interface{}, bool) {
+ value := holder.get(key)
+
+ if value.IsObject() {
+ object := value._object()
+ if toJSON := object.get("toJSON"); toJSON.IsFunction() {
+ value = toJSON.call(ctx.call.runtime, value, key)
+ } else {
+ // If the object is a GoStruct or something that implements json.Marshaler
+ if object.objectClass.marshalJSON != nil {
+ marshaler := object.objectClass.marshalJSON(object)
+ if marshaler != nil {
+ return marshaler, true
+ }
+ }
+ }
+ }
+
+ if ctx.replacerFunction != nil {
+ value = (*ctx.replacerFunction).call(ctx.call.runtime, toValue_object(holder), key, value)
+ }
+
+ if value.kind == valueObject {
+ switch value.value.(*_object).class {
+ case "Boolean":
+ value = value._object().value.(Value)
+ case "String":
+ value = toValue_string(value.string())
+ case "Number":
+ value = value.numberValue()
+ }
+ }
+
+ switch value.kind {
+ case valueBoolean:
+ return value.bool(), true
+ case valueString:
+ return value.string(), true
+ case valueNumber:
+ integer := value.number()
+ switch integer.kind {
+ case numberInteger:
+ return integer.int64, true
+ case numberFloat:
+ return integer.float64, true
+ default:
+ return nil, true
+ }
+ case valueNull:
+ return nil, true
+ case valueObject:
+ holder := value._object()
+ if value := value._object(); nil != value {
+ for _, object := range ctx.stack {
+ if holder == object {
+ panic(ctx.call.runtime.panicTypeError("Converting circular structure to JSON"))
+ }
+ }
+ ctx.stack = append(ctx.stack, value)
+ defer func() { ctx.stack = ctx.stack[:len(ctx.stack)-1] }()
+ }
+ if isArray(holder) {
+ var length uint32
+ switch value := holder.get("length").value.(type) {
+ case uint32:
+ length = value
+ case int:
+ if value >= 0 {
+ length = uint32(value)
+ }
+ default:
+ panic(ctx.call.runtime.panicTypeError(fmt.Sprintf("JSON.stringify: invalid length: %v (%[1]T)", value)))
+ }
+ array := make([]interface{}, length)
+ for index, _ := range array {
+ name := arrayIndexToString(int64(index))
+ value, _ := builtinJSON_stringifyWalk(ctx, name, holder)
+ array[index] = value
+ }
+ return array, true
+ } else if holder.class != "Function" {
+ object := map[string]interface{}{}
+ if ctx.propertyList != nil {
+ for _, name := range ctx.propertyList {
+ value, exists := builtinJSON_stringifyWalk(ctx, name, holder)
+ if exists {
+ object[name] = value
+ }
+ }
+ } else {
+ // Go maps are without order, so this doesn't conform to the ECMA ordering
+ // standard, but oh well...
+ holder.enumerate(false, func(name string) bool {
+ value, exists := builtinJSON_stringifyWalk(ctx, name, holder)
+ if exists {
+ object[name] = value
+ }
+ return true
+ })
+ }
+ return object, true
+ }
+ }
+ return nil, false
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_math.go b/vendor/github.com/robertkrimen/otto/builtin_math.go
new file mode 100644
index 000000000..7ce90c339
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_math.go
@@ -0,0 +1,151 @@
+package otto
+
+import (
+ "math"
+ "math/rand"
+)
+
+// Math
+
+func builtinMath_abs(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Abs(number))
+}
+
+func builtinMath_acos(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Acos(number))
+}
+
+func builtinMath_asin(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Asin(number))
+}
+
+func builtinMath_atan(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Atan(number))
+}
+
+func builtinMath_atan2(call FunctionCall) Value {
+ y := call.Argument(0).float64()
+ if math.IsNaN(y) {
+ return NaNValue()
+ }
+ x := call.Argument(1).float64()
+ if math.IsNaN(x) {
+ return NaNValue()
+ }
+ return toValue_float64(math.Atan2(y, x))
+}
+
+func builtinMath_cos(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Cos(number))
+}
+
+func builtinMath_ceil(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Ceil(number))
+}
+
+func builtinMath_exp(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Exp(number))
+}
+
+func builtinMath_floor(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Floor(number))
+}
+
+func builtinMath_log(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Log(number))
+}
+
+func builtinMath_max(call FunctionCall) Value {
+ switch len(call.ArgumentList) {
+ case 0:
+ return negativeInfinityValue()
+ case 1:
+ return toValue_float64(call.ArgumentList[0].float64())
+ }
+ result := call.ArgumentList[0].float64()
+ if math.IsNaN(result) {
+ return NaNValue()
+ }
+ for _, value := range call.ArgumentList[1:] {
+ value := value.float64()
+ if math.IsNaN(value) {
+ return NaNValue()
+ }
+ result = math.Max(result, value)
+ }
+ return toValue_float64(result)
+}
+
+func builtinMath_min(call FunctionCall) Value {
+ switch len(call.ArgumentList) {
+ case 0:
+ return positiveInfinityValue()
+ case 1:
+ return toValue_float64(call.ArgumentList[0].float64())
+ }
+ result := call.ArgumentList[0].float64()
+ if math.IsNaN(result) {
+ return NaNValue()
+ }
+ for _, value := range call.ArgumentList[1:] {
+ value := value.float64()
+ if math.IsNaN(value) {
+ return NaNValue()
+ }
+ result = math.Min(result, value)
+ }
+ return toValue_float64(result)
+}
+
+func builtinMath_pow(call FunctionCall) Value {
+ // TODO Make sure this works according to the specification (15.8.2.13)
+ x := call.Argument(0).float64()
+ y := call.Argument(1).float64()
+ if math.Abs(x) == 1 && math.IsInf(y, 0) {
+ return NaNValue()
+ }
+ return toValue_float64(math.Pow(x, y))
+}
+
+func builtinMath_random(call FunctionCall) Value {
+ var v float64
+ if call.runtime.random != nil {
+ v = call.runtime.random()
+ } else {
+ v = rand.Float64()
+ }
+ return toValue_float64(v)
+}
+
+func builtinMath_round(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ value := math.Floor(number + 0.5)
+ if value == 0 {
+ value = math.Copysign(0, number)
+ }
+ return toValue_float64(value)
+}
+
+func builtinMath_sin(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Sin(number))
+}
+
+func builtinMath_sqrt(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Sqrt(number))
+}
+
+func builtinMath_tan(call FunctionCall) Value {
+ number := call.Argument(0).float64()
+ return toValue_float64(math.Tan(number))
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_number.go b/vendor/github.com/robertkrimen/otto/builtin_number.go
new file mode 100644
index 000000000..f99a42a2f
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_number.go
@@ -0,0 +1,93 @@
+package otto
+
+import (
+ "math"
+ "strconv"
+)
+
+// Number
+
+func numberValueFromNumberArgumentList(argumentList []Value) Value {
+ if len(argumentList) > 0 {
+ return argumentList[0].numberValue()
+ }
+ return toValue_int(0)
+}
+
+func builtinNumber(call FunctionCall) Value {
+ return numberValueFromNumberArgumentList(call.ArgumentList)
+}
+
+func builtinNewNumber(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newNumber(numberValueFromNumberArgumentList(argumentList)))
+}
+
+func builtinNumber_toString(call FunctionCall) Value {
+ // Will throw a TypeError if ThisObject is not a Number
+ value := call.thisClassObject("Number").primitiveValue()
+ radix := 10
+ radixArgument := call.Argument(0)
+ if radixArgument.IsDefined() {
+ integer := toIntegerFloat(radixArgument)
+ if integer < 2 || integer > 36 {
+ panic(call.runtime.panicRangeError("toString() radix must be between 2 and 36"))
+ }
+ radix = int(integer)
+ }
+ if radix == 10 {
+ return toValue_string(value.string())
+ }
+ return toValue_string(numberToStringRadix(value, radix))
+}
+
+func builtinNumber_valueOf(call FunctionCall) Value {
+ return call.thisClassObject("Number").primitiveValue()
+}
+
+func builtinNumber_toFixed(call FunctionCall) Value {
+ precision := toIntegerFloat(call.Argument(0))
+ if 20 < precision || 0 > precision {
+ panic(call.runtime.panicRangeError("toFixed() precision must be between 0 and 20"))
+ }
+ if call.This.IsNaN() {
+ return toValue_string("NaN")
+ }
+ value := call.This.float64()
+ if math.Abs(value) >= 1e21 {
+ return toValue_string(floatToString(value, 64))
+ }
+ return toValue_string(strconv.FormatFloat(call.This.float64(), 'f', int(precision), 64))
+}
+
+func builtinNumber_toExponential(call FunctionCall) Value {
+ if call.This.IsNaN() {
+ return toValue_string("NaN")
+ }
+ precision := float64(-1)
+ if value := call.Argument(0); value.IsDefined() {
+ precision = toIntegerFloat(value)
+ if 0 > precision {
+ panic(call.runtime.panicRangeError("toString() radix must be between 2 and 36"))
+ }
+ }
+ return toValue_string(strconv.FormatFloat(call.This.float64(), 'e', int(precision), 64))
+}
+
+func builtinNumber_toPrecision(call FunctionCall) Value {
+ if call.This.IsNaN() {
+ return toValue_string("NaN")
+ }
+ value := call.Argument(0)
+ if value.IsUndefined() {
+ return toValue_string(call.This.string())
+ }
+ precision := toIntegerFloat(value)
+ if 1 > precision {
+ panic(call.runtime.panicRangeError("toPrecision() precision must be greater than 1"))
+ }
+ return toValue_string(strconv.FormatFloat(call.This.float64(), 'g', int(precision), 64))
+}
+
+func builtinNumber_toLocaleString(call FunctionCall) Value {
+ return builtinNumber_toString(call)
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_object.go b/vendor/github.com/robertkrimen/otto/builtin_object.go
new file mode 100644
index 000000000..c2433f7be
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_object.go
@@ -0,0 +1,289 @@
+package otto
+
+import (
+ "fmt"
+)
+
+// Object
+
+func builtinObject(call FunctionCall) Value {
+ value := call.Argument(0)
+ switch value.kind {
+ case valueUndefined, valueNull:
+ return toValue_object(call.runtime.newObject())
+ }
+
+ return toValue_object(call.runtime.toObject(value))
+}
+
+func builtinNewObject(self *_object, argumentList []Value) Value {
+ value := valueOfArrayIndex(argumentList, 0)
+ switch value.kind {
+ case valueNull, valueUndefined:
+ case valueNumber, valueString, valueBoolean:
+ return toValue_object(self.runtime.toObject(value))
+ case valueObject:
+ return value
+ default:
+ }
+ return toValue_object(self.runtime.newObject())
+}
+
+func builtinObject_valueOf(call FunctionCall) Value {
+ return toValue_object(call.thisObject())
+}
+
+func builtinObject_hasOwnProperty(call FunctionCall) Value {
+ propertyName := call.Argument(0).string()
+ thisObject := call.thisObject()
+ return toValue_bool(thisObject.hasOwnProperty(propertyName))
+}
+
+func builtinObject_isPrototypeOf(call FunctionCall) Value {
+ value := call.Argument(0)
+ if !value.IsObject() {
+ return falseValue
+ }
+ prototype := call.toObject(value).prototype
+ thisObject := call.thisObject()
+ for prototype != nil {
+ if thisObject == prototype {
+ return trueValue
+ }
+ prototype = prototype.prototype
+ }
+ return falseValue
+}
+
+func builtinObject_propertyIsEnumerable(call FunctionCall) Value {
+ propertyName := call.Argument(0).string()
+ thisObject := call.thisObject()
+ property := thisObject.getOwnProperty(propertyName)
+ if property != nil && property.enumerable() {
+ return trueValue
+ }
+ return falseValue
+}
+
+func builtinObject_toString(call FunctionCall) Value {
+ result := ""
+ if call.This.IsUndefined() {
+ result = "[object Undefined]"
+ } else if call.This.IsNull() {
+ result = "[object Null]"
+ } else {
+ result = fmt.Sprintf("[object %s]", call.thisObject().class)
+ }
+ return toValue_string(result)
+}
+
+func builtinObject_toLocaleString(call FunctionCall) Value {
+ toString := call.thisObject().get("toString")
+ if !toString.isCallable() {
+ panic(call.runtime.panicTypeError())
+ }
+ return toString.call(call.runtime, call.This)
+}
+
+func builtinObject_getPrototypeOf(call FunctionCall) Value {
+ objectValue := call.Argument(0)
+ object := objectValue._object()
+ if object == nil {
+ panic(call.runtime.panicTypeError())
+ }
+
+ if object.prototype == nil {
+ return nullValue
+ }
+
+ return toValue_object(object.prototype)
+}
+
+func builtinObject_getOwnPropertyDescriptor(call FunctionCall) Value {
+ objectValue := call.Argument(0)
+ object := objectValue._object()
+ if object == nil {
+ panic(call.runtime.panicTypeError())
+ }
+
+ name := call.Argument(1).string()
+ descriptor := object.getOwnProperty(name)
+ if descriptor == nil {
+ return Value{}
+ }
+ return toValue_object(call.runtime.fromPropertyDescriptor(*descriptor))
+}
+
+func builtinObject_defineProperty(call FunctionCall) Value {
+ objectValue := call.Argument(0)
+ object := objectValue._object()
+ if object == nil {
+ panic(call.runtime.panicTypeError())
+ }
+ name := call.Argument(1).string()
+ descriptor := toPropertyDescriptor(call.runtime, call.Argument(2))
+ object.defineOwnProperty(name, descriptor, true)
+ return objectValue
+}
+
+func builtinObject_defineProperties(call FunctionCall) Value {
+ objectValue := call.Argument(0)
+ object := objectValue._object()
+ if object == nil {
+ panic(call.runtime.panicTypeError())
+ }
+
+ properties := call.runtime.toObject(call.Argument(1))
+ properties.enumerate(false, func(name string) bool {
+ descriptor := toPropertyDescriptor(call.runtime, properties.get(name))
+ object.defineOwnProperty(name, descriptor, true)
+ return true
+ })
+
+ return objectValue
+}
+
+func builtinObject_create(call FunctionCall) Value {
+ prototypeValue := call.Argument(0)
+ if !prototypeValue.IsNull() && !prototypeValue.IsObject() {
+ panic(call.runtime.panicTypeError())
+ }
+
+ object := call.runtime.newObject()
+ object.prototype = prototypeValue._object()
+
+ propertiesValue := call.Argument(1)
+ if propertiesValue.IsDefined() {
+ properties := call.runtime.toObject(propertiesValue)
+ properties.enumerate(false, func(name string) bool {
+ descriptor := toPropertyDescriptor(call.runtime, properties.get(name))
+ object.defineOwnProperty(name, descriptor, true)
+ return true
+ })
+ }
+
+ return toValue_object(object)
+}
+
+func builtinObject_isExtensible(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ return toValue_bool(object.extensible)
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinObject_preventExtensions(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ object.extensible = false
+ } else {
+ panic(call.runtime.panicTypeError())
+ }
+ return object
+}
+
+func builtinObject_isSealed(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ if object.extensible {
+ return toValue_bool(false)
+ }
+ result := true
+ object.enumerate(true, func(name string) bool {
+ property := object.getProperty(name)
+ if property.configurable() {
+ result = false
+ }
+ return true
+ })
+ return toValue_bool(result)
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinObject_seal(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ object.enumerate(true, func(name string) bool {
+ if property := object.getOwnProperty(name); nil != property && property.configurable() {
+ property.configureOff()
+ object.defineOwnProperty(name, *property, true)
+ }
+ return true
+ })
+ object.extensible = false
+ } else {
+ panic(call.runtime.panicTypeError())
+ }
+ return object
+}
+
+func builtinObject_isFrozen(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ if object.extensible {
+ return toValue_bool(false)
+ }
+ result := true
+ object.enumerate(true, func(name string) bool {
+ property := object.getProperty(name)
+ if property.configurable() || property.writable() {
+ result = false
+ }
+ return true
+ })
+ return toValue_bool(result)
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinObject_freeze(call FunctionCall) Value {
+ object := call.Argument(0)
+ if object := object._object(); object != nil {
+ object.enumerate(true, func(name string) bool {
+ if property, update := object.getOwnProperty(name), false; nil != property {
+ if property.isDataDescriptor() && property.writable() {
+ property.writeOff()
+ update = true
+ }
+ if property.configurable() {
+ property.configureOff()
+ update = true
+ }
+ if update {
+ object.defineOwnProperty(name, *property, true)
+ }
+ }
+ return true
+ })
+ object.extensible = false
+ } else {
+ panic(call.runtime.panicTypeError())
+ }
+ return object
+}
+
+func builtinObject_keys(call FunctionCall) Value {
+ if object, keys := call.Argument(0)._object(), []Value(nil); nil != object {
+ object.enumerate(false, func(name string) bool {
+ keys = append(keys, toValue_string(name))
+ return true
+ })
+ return toValue_object(call.runtime.newArrayOf(keys))
+ }
+ panic(call.runtime.panicTypeError())
+}
+
+func builtinObject_getOwnPropertyNames(call FunctionCall) Value {
+ if object, propertyNames := call.Argument(0)._object(), []Value(nil); nil != object {
+ object.enumerate(true, func(name string) bool {
+ if object.hasOwnProperty(name) {
+ propertyNames = append(propertyNames, toValue_string(name))
+ }
+ return true
+ })
+ return toValue_object(call.runtime.newArrayOf(propertyNames))
+ }
+ panic(call.runtime.panicTypeError())
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_regexp.go b/vendor/github.com/robertkrimen/otto/builtin_regexp.go
new file mode 100644
index 000000000..99422510d
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_regexp.go
@@ -0,0 +1,65 @@
+package otto
+
+import (
+ "fmt"
+)
+
+// RegExp
+
+func builtinRegExp(call FunctionCall) Value {
+ pattern := call.Argument(0)
+ flags := call.Argument(1)
+ if object := pattern._object(); object != nil {
+ if object.class == "RegExp" && flags.IsUndefined() {
+ return pattern
+ }
+ }
+ return toValue_object(call.runtime.newRegExp(pattern, flags))
+}
+
+func builtinNewRegExp(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newRegExp(
+ valueOfArrayIndex(argumentList, 0),
+ valueOfArrayIndex(argumentList, 1),
+ ))
+}
+
+func builtinRegExp_toString(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ source := thisObject.get("source").string()
+ flags := []byte{}
+ if thisObject.get("global").bool() {
+ flags = append(flags, 'g')
+ }
+ if thisObject.get("ignoreCase").bool() {
+ flags = append(flags, 'i')
+ }
+ if thisObject.get("multiline").bool() {
+ flags = append(flags, 'm')
+ }
+ return toValue_string(fmt.Sprintf("/%s/%s", source, flags))
+}
+
+func builtinRegExp_exec(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ target := call.Argument(0).string()
+ match, result := execRegExp(thisObject, target)
+ if !match {
+ return nullValue
+ }
+ return toValue_object(execResultToArray(call.runtime, target, result))
+}
+
+func builtinRegExp_test(call FunctionCall) Value {
+ thisObject := call.thisObject()
+ target := call.Argument(0).string()
+ match, _ := execRegExp(thisObject, target)
+ return toValue_bool(match)
+}
+
+func builtinRegExp_compile(call FunctionCall) Value {
+ // This (useless) function is deprecated, but is here to provide some
+ // semblance of compatibility.
+ // Caveat emptor: it may not be around for long.
+ return Value{}
+}
diff --git a/vendor/github.com/robertkrimen/otto/builtin_string.go b/vendor/github.com/robertkrimen/otto/builtin_string.go
new file mode 100644
index 000000000..f5f09fee1
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/builtin_string.go
@@ -0,0 +1,495 @@
+package otto
+
+import (
+ "bytes"
+ "regexp"
+ "strconv"
+ "strings"
+ "unicode/utf8"
+)
+
+// String
+
+func stringValueFromStringArgumentList(argumentList []Value) Value {
+ if len(argumentList) > 0 {
+ return toValue_string(argumentList[0].string())
+ }
+ return toValue_string("")
+}
+
+func builtinString(call FunctionCall) Value {
+ return stringValueFromStringArgumentList(call.ArgumentList)
+}
+
+func builtinNewString(self *_object, argumentList []Value) Value {
+ return toValue_object(self.runtime.newString(stringValueFromStringArgumentList(argumentList)))
+}
+
+func builtinString_toString(call FunctionCall) Value {
+ return call.thisClassObject("String").primitiveValue()
+}
+func builtinString_valueOf(call FunctionCall) Value {
+ return call.thisClassObject("String").primitiveValue()
+}
+
+func builtinString_fromCharCode(call FunctionCall) Value {
+ chrList := make([]uint16, len(call.ArgumentList))
+ for index, value := range call.ArgumentList {
+ chrList[index] = toUint16(value)
+ }
+ return toValue_string16(chrList)
+}
+
+func builtinString_charAt(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ idx := int(call.Argument(0).number().int64)
+ chr := stringAt(call.This._object().stringValue(), idx)
+ if chr == utf8.RuneError {
+ return toValue_string("")
+ }
+ return toValue_string(string(chr))
+}
+
+func builtinString_charCodeAt(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ idx := int(call.Argument(0).number().int64)
+ chr := stringAt(call.This._object().stringValue(), idx)
+ if chr == utf8.RuneError {
+ return NaNValue()
+ }
+ return toValue_uint16(uint16(chr))
+}
+
+func builtinString_concat(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ var value bytes.Buffer
+ value.WriteString(call.This.string())
+ for _, item := range call.ArgumentList {
+ value.WriteString(item.string())
+ }
+ return toValue_string(value.String())
+}
+
+func builtinString_indexOf(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ value := call.This.string()
+ target := call.Argument(0).string()
+ if 2 > len(call.ArgumentList) {
+ return toValue_int(strings.Index(value, target))
+ }
+ start := toIntegerFloat(call.Argument(1))
+ if 0 > start {
+ start = 0
+ } else if start >= float64(len(value)) {
+ if target == "" {
+ return toValue_int(len(value))
+ }
+ return toValue_int(-1)
+ }
+ index := strings.Index(value[int(start):], target)
+ if index >= 0 {
+ index += int(start)
+ }
+ return toValue_int(index)
+}
+
+func builtinString_lastIndexOf(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ value := call.This.string()
+ target := call.Argument(0).string()
+ if 2 > len(call.ArgumentList) || call.ArgumentList[1].IsUndefined() {
+ return toValue_int(strings.LastIndex(value, target))
+ }
+ length := len(value)
+ if length == 0 {
+ return toValue_int(strings.LastIndex(value, target))
+ }
+ start := call.ArgumentList[1].number()
+ if start.kind == numberInfinity { // FIXME
+ // startNumber is infinity, so start is the end of string (start = length)
+ return toValue_int(strings.LastIndex(value, target))
+ }
+ if 0 > start.int64 {
+ start.int64 = 0
+ }
+ end := int(start.int64) + len(target)
+ if end > length {
+ end = length
+ }
+ return toValue_int(strings.LastIndex(value[:end], target))
+}
+
+func builtinString_match(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := call.This.string()
+ matcherValue := call.Argument(0)
+ matcher := matcherValue._object()
+ if !matcherValue.IsObject() || matcher.class != "RegExp" {
+ matcher = call.runtime.newRegExp(matcherValue, Value{})
+ }
+ global := matcher.get("global").bool()
+ if !global {
+ match, result := execRegExp(matcher, target)
+ if !match {
+ return nullValue
+ }
+ return toValue_object(execResultToArray(call.runtime, target, result))
+ }
+
+ {
+ result := matcher.regExpValue().regularExpression.FindAllStringIndex(target, -1)
+ matchCount := len(result)
+ if result == nil {
+ matcher.put("lastIndex", toValue_int(0), true)
+ return Value{} // !match
+ }
+ matchCount = len(result)
+ valueArray := make([]Value, matchCount)
+ for index := 0; index < matchCount; index++ {
+ valueArray[index] = toValue_string(target[result[index][0]:result[index][1]])
+ }
+ matcher.put("lastIndex", toValue_int(result[matchCount-1][1]), true)
+ return toValue_object(call.runtime.newArrayOf(valueArray))
+ }
+}
+
+var builtinString_replace_Regexp = regexp.MustCompile("\\$(?:[\\$\\&\\'\\`1-9]|0[1-9]|[1-9][0-9])")
+
+func builtinString_findAndReplaceString(input []byte, lastIndex int, match []int, target []byte, replaceValue []byte) (output []byte) {
+ matchCount := len(match) / 2
+ output = input
+ if match[0] != lastIndex {
+ output = append(output, target[lastIndex:match[0]]...)
+ }
+ replacement := builtinString_replace_Regexp.ReplaceAllFunc(replaceValue, func(part []byte) []byte {
+ // TODO Check if match[0] or match[1] can be -1 in this scenario
+ switch part[1] {
+ case '$':
+ return []byte{'$'}
+ case '&':
+ return target[match[0]:match[1]]
+ case '`':
+ return target[:match[0]]
+ case '\'':
+ return target[match[1]:len(target)]
+ }
+ matchNumberParse, error := strconv.ParseInt(string(part[1:]), 10, 64)
+ matchNumber := int(matchNumberParse)
+ if error != nil || matchNumber >= matchCount {
+ return []byte{}
+ }
+ offset := 2 * matchNumber
+ if match[offset] != -1 {
+ return target[match[offset]:match[offset+1]]
+ }
+ return []byte{} // The empty string
+ })
+ output = append(output, replacement...)
+ return output
+}
+
+func builtinString_replace(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := []byte(call.This.string())
+ searchValue := call.Argument(0)
+ searchObject := searchValue._object()
+
+ // TODO If a capture is -1?
+ var search *regexp.Regexp
+ global := false
+ find := 1
+ if searchValue.IsObject() && searchObject.class == "RegExp" {
+ regExp := searchObject.regExpValue()
+ search = regExp.regularExpression
+ if regExp.global {
+ find = -1
+ }
+ } else {
+ search = regexp.MustCompile(regexp.QuoteMeta(searchValue.string()))
+ }
+
+ found := search.FindAllSubmatchIndex(target, find)
+ if found == nil {
+ return toValue_string(string(target)) // !match
+ }
+
+ {
+ lastIndex := 0
+ result := []byte{}
+
+ replaceValue := call.Argument(1)
+ if replaceValue.isCallable() {
+ target := string(target)
+ replace := replaceValue._object()
+ for _, match := range found {
+ if match[0] != lastIndex {
+ result = append(result, target[lastIndex:match[0]]...)
+ }
+ matchCount := len(match) / 2
+ argumentList := make([]Value, matchCount+2)
+ for index := 0; index < matchCount; index++ {
+ offset := 2 * index
+ if match[offset] != -1 {
+ argumentList[index] = toValue_string(target[match[offset]:match[offset+1]])
+ } else {
+ argumentList[index] = Value{}
+ }
+ }
+ argumentList[matchCount+0] = toValue_int(match[0])
+ argumentList[matchCount+1] = toValue_string(target)
+ replacement := replace.call(Value{}, argumentList, false, nativeFrame).string()
+ result = append(result, []byte(replacement)...)
+ lastIndex = match[1]
+ }
+
+ } else {
+ replace := []byte(replaceValue.string())
+ for _, match := range found {
+ result = builtinString_findAndReplaceString(result, lastIndex, match, target, replace)
+ lastIndex = match[1]
+ }
+ }
+
+ if lastIndex != len(target) {
+ result = append(result, target[lastIndex:]...)
+ }
+
+ if global && searchObject != nil {
+ searchObject.put("lastIndex", toValue_int(lastIndex), true)
+ }
+
+ return toValue_string(string(result))
+ }
+}
+
+func builtinString_search(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := call.This.string()
+ searchValue := call.Argument(0)
+ search := searchValue._object()
+ if !searchValue.IsObject() || search.class != "RegExp" {
+ search = call.runtime.newRegExp(searchValue, Value{})
+ }
+ result := search.regExpValue().regularExpression.FindStringIndex(target)
+ if result == nil {
+ return toValue_int(-1)
+ }
+ return toValue_int(result[0])
+}
+
+func stringSplitMatch(target string, targetLength int64, index uint, search string, searchLength int64) (bool, uint) {
+ if int64(index)+searchLength > searchLength {
+ return false, 0
+ }
+ found := strings.Index(target[index:], search)
+ if 0 > found {
+ return false, 0
+ }
+ return true, uint(found)
+}
+
+func builtinString_split(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := call.This.string()
+
+ separatorValue := call.Argument(0)
+ limitValue := call.Argument(1)
+ limit := -1
+ if limitValue.IsDefined() {
+ limit = int(toUint32(limitValue))
+ }
+
+ if limit == 0 {
+ return toValue_object(call.runtime.newArray(0))
+ }
+
+ if separatorValue.IsUndefined() {
+ return toValue_object(call.runtime.newArrayOf([]Value{toValue_string(target)}))
+ }
+
+ if separatorValue.isRegExp() {
+ targetLength := len(target)
+ search := separatorValue._object().regExpValue().regularExpression
+ valueArray := []Value{}
+ result := search.FindAllStringSubmatchIndex(target, -1)
+ lastIndex := 0
+ found := 0
+
+ for _, match := range result {
+ if match[0] == match[1] {
+ // FIXME Ugh, this is a hack
+ if match[0] == 0 || match[0] == targetLength {
+ continue
+ }
+ }
+
+ if lastIndex != match[0] {
+ valueArray = append(valueArray, toValue_string(target[lastIndex:match[0]]))
+ found++
+ } else if lastIndex == match[0] {
+ if lastIndex != -1 {
+ valueArray = append(valueArray, toValue_string(""))
+ found++
+ }
+ }
+
+ lastIndex = match[1]
+ if found == limit {
+ goto RETURN
+ }
+
+ captureCount := len(match) / 2
+ for index := 1; index < captureCount; index++ {
+ offset := index * 2
+ value := Value{}
+ if match[offset] != -1 {
+ value = toValue_string(target[match[offset]:match[offset+1]])
+ }
+ valueArray = append(valueArray, value)
+ found++
+ if found == limit {
+ goto RETURN
+ }
+ }
+ }
+
+ if found != limit {
+ if lastIndex != targetLength {
+ valueArray = append(valueArray, toValue_string(target[lastIndex:targetLength]))
+ } else {
+ valueArray = append(valueArray, toValue_string(""))
+ }
+ }
+
+ RETURN:
+ return toValue_object(call.runtime.newArrayOf(valueArray))
+
+ } else {
+ separator := separatorValue.string()
+
+ splitLimit := limit
+ excess := false
+ if limit > 0 {
+ splitLimit = limit + 1
+ excess = true
+ }
+
+ split := strings.SplitN(target, separator, splitLimit)
+
+ if excess && len(split) > limit {
+ split = split[:limit]
+ }
+
+ return call.runtime.toValue(split)
+ }
+}
+
+func builtinString_slice(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := call.This.string()
+
+ length := int64(len(target))
+ start, end := rangeStartEnd(call.ArgumentList, length, false)
+ if end-start <= 0 {
+ return toValue_string("")
+ }
+ return toValue_string(target[start:end])
+}
+
+func builtinString_substring(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ target := call.This.string()
+
+ length := int64(len(target))
+ start, end := rangeStartEnd(call.ArgumentList, length, true)
+ if start > end {
+ start, end = end, start
+ }
+ return toValue_string(target[start:end])
+}
+
+func builtinString_substr(call FunctionCall) Value {
+ target := call.This.string()
+
+ size := int64(len(target))
+ start, length := rangeStartLength(call.ArgumentList, size)
+
+ if start >= size {
+ return toValue_string("")
+ }
+
+ if length <= 0 {
+ return toValue_string("")
+ }
+
+ if start+length >= size {
+ // Cap length to be to the end of the string
+ // start = 3, length = 5, size = 4 [0, 1, 2, 3]
+ // 4 - 3 = 1
+ // target[3:4]
+ length = size - start
+ }
+
+ return toValue_string(target[start : start+length])
+}
+
+func builtinString_toLowerCase(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ return toValue_string(strings.ToLower(call.This.string()))
+}
+
+func builtinString_toUpperCase(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ return toValue_string(strings.ToUpper(call.This.string()))
+}
+
+// 7.2 Table 2 — Whitespace Characters & 7.3 Table 3 - Line Terminator Characters
+const builtinString_trim_whitespace = "\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF"
+
+func builtinString_trim(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ return toValue(strings.Trim(call.This.string(),
+ builtinString_trim_whitespace))
+}
+
+// Mozilla extension, not ECMAScript 5
+func builtinString_trimLeft(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ return toValue(strings.TrimLeft(call.This.string(),
+ builtinString_trim_whitespace))
+}
+
+// Mozilla extension, not ECMAScript 5
+func builtinString_trimRight(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ return toValue(strings.TrimRight(call.This.string(),
+ builtinString_trim_whitespace))
+}
+
+func builtinString_localeCompare(call FunctionCall) Value {
+ checkObjectCoercible(call.runtime, call.This)
+ this := call.This.string()
+ that := call.Argument(0).string()
+ if this < that {
+ return toValue_int(-1)
+ } else if this == that {
+ return toValue_int(0)
+ }
+ return toValue_int(1)
+}
+
+/*
+An alternate version of String.trim
+func builtinString_trim(call FunctionCall) Value {
+ checkObjectCoercible(call.This)
+ return toValue_string(strings.TrimFunc(call.string(.This), isWhiteSpaceOrLineTerminator))
+}
+*/
+
+func builtinString_toLocaleLowerCase(call FunctionCall) Value {
+ return builtinString_toLowerCase(call)
+}
+
+func builtinString_toLocaleUpperCase(call FunctionCall) Value {
+ return builtinString_toUpperCase(call)
+}
diff --git a/vendor/github.com/robertkrimen/otto/clone.go b/vendor/github.com/robertkrimen/otto/clone.go
new file mode 100644
index 000000000..23b59f8ac
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/clone.go
@@ -0,0 +1,173 @@
+package otto
+
+import (
+ "fmt"
+)
+
+type _clone struct {
+ runtime *_runtime
+ _object map[*_object]*_object
+ _objectStash map[*_objectStash]*_objectStash
+ _dclStash map[*_dclStash]*_dclStash
+ _fnStash map[*_fnStash]*_fnStash
+}
+
+func (in *_runtime) clone() *_runtime {
+
+ in.lck.Lock()
+ defer in.lck.Unlock()
+
+ out := &_runtime{
+ debugger: in.debugger,
+ random: in.random,
+ stackLimit: in.stackLimit,
+ traceLimit: in.traceLimit,
+ }
+
+ clone := _clone{
+ runtime: out,
+ _object: make(map[*_object]*_object),
+ _objectStash: make(map[*_objectStash]*_objectStash),
+ _dclStash: make(map[*_dclStash]*_dclStash),
+ _fnStash: make(map[*_fnStash]*_fnStash),
+ }
+
+ globalObject := clone.object(in.globalObject)
+ out.globalStash = out.newObjectStash(globalObject, nil)
+ out.globalObject = globalObject
+ out.global = _global{
+ clone.object(in.global.Object),
+ clone.object(in.global.Function),
+ clone.object(in.global.Array),
+ clone.object(in.global.String),
+ clone.object(in.global.Boolean),
+ clone.object(in.global.Number),
+ clone.object(in.global.Math),
+ clone.object(in.global.Date),
+ clone.object(in.global.RegExp),
+ clone.object(in.global.Error),
+ clone.object(in.global.EvalError),
+ clone.object(in.global.TypeError),
+ clone.object(in.global.RangeError),
+ clone.object(in.global.ReferenceError),
+ clone.object(in.global.SyntaxError),
+ clone.object(in.global.URIError),
+ clone.object(in.global.JSON),
+
+ clone.object(in.global.ObjectPrototype),
+ clone.object(in.global.FunctionPrototype),
+ clone.object(in.global.ArrayPrototype),
+ clone.object(in.global.StringPrototype),
+ clone.object(in.global.BooleanPrototype),
+ clone.object(in.global.NumberPrototype),
+ clone.object(in.global.DatePrototype),
+ clone.object(in.global.RegExpPrototype),
+ clone.object(in.global.ErrorPrototype),
+ clone.object(in.global.EvalErrorPrototype),
+ clone.object(in.global.TypeErrorPrototype),
+ clone.object(in.global.RangeErrorPrototype),
+ clone.object(in.global.ReferenceErrorPrototype),
+ clone.object(in.global.SyntaxErrorPrototype),
+ clone.object(in.global.URIErrorPrototype),
+ }
+
+ out.eval = out.globalObject.property["eval"].value.(Value).value.(*_object)
+ out.globalObject.prototype = out.global.ObjectPrototype
+
+ // Not sure if this is necessary, but give some help to the GC
+ clone.runtime = nil
+ clone._object = nil
+ clone._objectStash = nil
+ clone._dclStash = nil
+ clone._fnStash = nil
+
+ return out
+}
+
+func (clone *_clone) object(in *_object) *_object {
+ if out, exists := clone._object[in]; exists {
+ return out
+ }
+ out := &_object{}
+ clone._object[in] = out
+ return in.objectClass.clone(in, out, clone)
+}
+
+func (clone *_clone) dclStash(in *_dclStash) (*_dclStash, bool) {
+ if out, exists := clone._dclStash[in]; exists {
+ return out, true
+ }
+ out := &_dclStash{}
+ clone._dclStash[in] = out
+ return out, false
+}
+
+func (clone *_clone) objectStash(in *_objectStash) (*_objectStash, bool) {
+ if out, exists := clone._objectStash[in]; exists {
+ return out, true
+ }
+ out := &_objectStash{}
+ clone._objectStash[in] = out
+ return out, false
+}
+
+func (clone *_clone) fnStash(in *_fnStash) (*_fnStash, bool) {
+ if out, exists := clone._fnStash[in]; exists {
+ return out, true
+ }
+ out := &_fnStash{}
+ clone._fnStash[in] = out
+ return out, false
+}
+
+func (clone *_clone) value(in Value) Value {
+ out := in
+ switch value := in.value.(type) {
+ case *_object:
+ out.value = clone.object(value)
+ }
+ return out
+}
+
+func (clone *_clone) valueArray(in []Value) []Value {
+ out := make([]Value, len(in))
+ for index, value := range in {
+ out[index] = clone.value(value)
+ }
+ return out
+}
+
+func (clone *_clone) stash(in _stash) _stash {
+ if in == nil {
+ return nil
+ }
+ return in.clone(clone)
+}
+
+func (clone *_clone) property(in _property) _property {
+ out := in
+
+ switch value := in.value.(type) {
+ case Value:
+ out.value = clone.value(value)
+ case _propertyGetSet:
+ p := _propertyGetSet{}
+ if value[0] != nil {
+ p[0] = clone.object(value[0])
+ }
+ if value[1] != nil {
+ p[1] = clone.object(value[1])
+ }
+ out.value = p
+ default:
+ panic(fmt.Errorf("in.value.(Value) != true; in.value is %T", in.value))
+ }
+
+ return out
+}
+
+func (clone *_clone) dclProperty(in _dclProperty) _dclProperty {
+ out := in
+ out.value = clone.value(in.value)
+ return out
+}
diff --git a/vendor/github.com/robertkrimen/otto/cmpl.go b/vendor/github.com/robertkrimen/otto/cmpl.go
new file mode 100644
index 000000000..c191b4527
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/cmpl.go
@@ -0,0 +1,24 @@
+package otto
+
+import (
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/file"
+)
+
+type _file struct {
+ name string
+ src string
+ base int // This will always be 1 or greater
+}
+
+type _compiler struct {
+ file *file.File
+ program *ast.Program
+}
+
+func (cmpl *_compiler) parse() *_nodeProgram {
+ if cmpl.program != nil {
+ cmpl.file = cmpl.program.File
+ }
+ return cmpl._parse(cmpl.program)
+}
diff --git a/vendor/github.com/robertkrimen/otto/cmpl_evaluate.go b/vendor/github.com/robertkrimen/otto/cmpl_evaluate.go
new file mode 100644
index 000000000..6741bf394
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/cmpl_evaluate.go
@@ -0,0 +1,96 @@
+package otto
+
+import (
+ "strconv"
+)
+
+func (self *_runtime) cmpl_evaluate_nodeProgram(node *_nodeProgram, eval bool) Value {
+ if !eval {
+ self.enterGlobalScope()
+ defer func() {
+ self.leaveScope()
+ }()
+ }
+ self.cmpl_functionDeclaration(node.functionList)
+ self.cmpl_variableDeclaration(node.varList)
+ self.scope.frame.file = node.file
+ return self.cmpl_evaluate_nodeStatementList(node.body)
+}
+
+func (self *_runtime) cmpl_call_nodeFunction(function *_object, stash *_fnStash, node *_nodeFunctionLiteral, this Value, argumentList []Value) Value {
+
+ indexOfParameterName := make([]string, len(argumentList))
+ // function(abc, def, ghi)
+ // indexOfParameterName[0] = "abc"
+ // indexOfParameterName[1] = "def"
+ // indexOfParameterName[2] = "ghi"
+ // ...
+
+ argumentsFound := false
+ for index, name := range node.parameterList {
+ if name == "arguments" {
+ argumentsFound = true
+ }
+ value := Value{}
+ if index < len(argumentList) {
+ value = argumentList[index]
+ indexOfParameterName[index] = name
+ }
+ // strict = false
+ self.scope.lexical.setValue(name, value, false)
+ }
+
+ if !argumentsFound {
+ arguments := self.newArgumentsObject(indexOfParameterName, stash, len(argumentList))
+ arguments.defineProperty("callee", toValue_object(function), 0101, false)
+ stash.arguments = arguments
+ // strict = false
+ self.scope.lexical.setValue("arguments", toValue_object(arguments), false)
+ for index, _ := range argumentList {
+ if index < len(node.parameterList) {
+ continue
+ }
+ indexAsString := strconv.FormatInt(int64(index), 10)
+ arguments.defineProperty(indexAsString, argumentList[index], 0111, false)
+ }
+ }
+
+ self.cmpl_functionDeclaration(node.functionList)
+ self.cmpl_variableDeclaration(node.varList)
+
+ result := self.cmpl_evaluate_nodeStatement(node.body)
+ if result.kind == valueResult {
+ return result
+ }
+
+ return Value{}
+}
+
+func (self *_runtime) cmpl_functionDeclaration(list []*_nodeFunctionLiteral) {
+ executionContext := self.scope
+ eval := executionContext.eval
+ stash := executionContext.variable
+
+ for _, function := range list {
+ name := function.name
+ value := self.cmpl_evaluate_nodeExpression(function)
+ if !stash.hasBinding(name) {
+ stash.createBinding(name, eval == true, value)
+ } else {
+ // TODO 10.5.5.e
+ stash.setBinding(name, value, false) // TODO strict
+ }
+ }
+}
+
+func (self *_runtime) cmpl_variableDeclaration(list []string) {
+ executionContext := self.scope
+ eval := executionContext.eval
+ stash := executionContext.variable
+
+ for _, name := range list {
+ if !stash.hasBinding(name) {
+ stash.createBinding(name, eval == true, Value{}) // TODO strict?
+ }
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/cmpl_evaluate_expression.go b/vendor/github.com/robertkrimen/otto/cmpl_evaluate_expression.go
new file mode 100644
index 000000000..8586a484f
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/cmpl_evaluate_expression.go
@@ -0,0 +1,460 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "runtime"
+
+ "github.com/robertkrimen/otto/token"
+)
+
+func (self *_runtime) cmpl_evaluate_nodeExpression(node _nodeExpression) Value {
+ // Allow interpreter interruption
+ // If the Interrupt channel is nil, then
+ // we avoid runtime.Gosched() overhead (if any)
+ // FIXME: Test this
+ if self.otto.Interrupt != nil {
+ runtime.Gosched()
+ select {
+ case value := <-self.otto.Interrupt:
+ value()
+ default:
+ }
+ }
+
+ switch node := node.(type) {
+
+ case *_nodeArrayLiteral:
+ return self.cmpl_evaluate_nodeArrayLiteral(node)
+
+ case *_nodeAssignExpression:
+ return self.cmpl_evaluate_nodeAssignExpression(node)
+
+ case *_nodeBinaryExpression:
+ if node.comparison {
+ return self.cmpl_evaluate_nodeBinaryExpression_comparison(node)
+ } else {
+ return self.cmpl_evaluate_nodeBinaryExpression(node)
+ }
+
+ case *_nodeBracketExpression:
+ return self.cmpl_evaluate_nodeBracketExpression(node)
+
+ case *_nodeCallExpression:
+ return self.cmpl_evaluate_nodeCallExpression(node, nil)
+
+ case *_nodeConditionalExpression:
+ return self.cmpl_evaluate_nodeConditionalExpression(node)
+
+ case *_nodeDotExpression:
+ return self.cmpl_evaluate_nodeDotExpression(node)
+
+ case *_nodeFunctionLiteral:
+ var local = self.scope.lexical
+ if node.name != "" {
+ local = self.newDeclarationStash(local)
+ }
+
+ value := toValue_object(self.newNodeFunction(node, local))
+ if node.name != "" {
+ local.createBinding(node.name, false, value)
+ }
+ return value
+
+ case *_nodeIdentifier:
+ name := node.name
+ // TODO Should be true or false (strictness) depending on context
+ // getIdentifierReference should not return nil, but we check anyway and panic
+ // so as not to propagate the nil into something else
+ reference := getIdentifierReference(self, self.scope.lexical, name, false, _at(node.idx))
+ if reference == nil {
+ // Should never get here!
+ panic(hereBeDragons("referenceError == nil: " + name))
+ }
+ return toValue(reference)
+
+ case *_nodeLiteral:
+ return node.value
+
+ case *_nodeNewExpression:
+ return self.cmpl_evaluate_nodeNewExpression(node)
+
+ case *_nodeObjectLiteral:
+ return self.cmpl_evaluate_nodeObjectLiteral(node)
+
+ case *_nodeRegExpLiteral:
+ return toValue_object(self._newRegExp(node.pattern, node.flags))
+
+ case *_nodeSequenceExpression:
+ return self.cmpl_evaluate_nodeSequenceExpression(node)
+
+ case *_nodeThisExpression:
+ return toValue_object(self.scope.this)
+
+ case *_nodeUnaryExpression:
+ return self.cmpl_evaluate_nodeUnaryExpression(node)
+
+ case *_nodeVariableExpression:
+ return self.cmpl_evaluate_nodeVariableExpression(node)
+ }
+
+ panic(fmt.Errorf("Here be dragons: evaluate_nodeExpression(%T)", node))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeArrayLiteral(node *_nodeArrayLiteral) Value {
+
+ valueArray := []Value{}
+
+ for _, node := range node.value {
+ if node == nil {
+ valueArray = append(valueArray, emptyValue)
+ } else {
+ valueArray = append(valueArray, self.cmpl_evaluate_nodeExpression(node).resolve())
+ }
+ }
+
+ result := self.newArrayOf(valueArray)
+
+ return toValue_object(result)
+}
+
+func (self *_runtime) cmpl_evaluate_nodeAssignExpression(node *_nodeAssignExpression) Value {
+
+ left := self.cmpl_evaluate_nodeExpression(node.left)
+ right := self.cmpl_evaluate_nodeExpression(node.right)
+ rightValue := right.resolve()
+
+ result := rightValue
+ if node.operator != token.ASSIGN {
+ result = self.calculateBinaryExpression(node.operator, left, rightValue)
+ }
+
+ self.putValue(left.reference(), result)
+
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeBinaryExpression(node *_nodeBinaryExpression) Value {
+
+ left := self.cmpl_evaluate_nodeExpression(node.left)
+ leftValue := left.resolve()
+
+ switch node.operator {
+ // Logical
+ case token.LOGICAL_AND:
+ if !leftValue.bool() {
+ return leftValue
+ }
+ right := self.cmpl_evaluate_nodeExpression(node.right)
+ return right.resolve()
+ case token.LOGICAL_OR:
+ if leftValue.bool() {
+ return leftValue
+ }
+ right := self.cmpl_evaluate_nodeExpression(node.right)
+ return right.resolve()
+ }
+
+ return self.calculateBinaryExpression(node.operator, leftValue, self.cmpl_evaluate_nodeExpression(node.right))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeBinaryExpression_comparison(node *_nodeBinaryExpression) Value {
+
+ left := self.cmpl_evaluate_nodeExpression(node.left).resolve()
+ right := self.cmpl_evaluate_nodeExpression(node.right).resolve()
+
+ return toValue_bool(self.calculateComparison(node.operator, left, right))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeBracketExpression(node *_nodeBracketExpression) Value {
+ target := self.cmpl_evaluate_nodeExpression(node.left)
+ targetValue := target.resolve()
+ member := self.cmpl_evaluate_nodeExpression(node.member)
+ memberValue := member.resolve()
+
+ // TODO Pass in base value as-is, and defer toObject till later?
+ object, err := self.objectCoerce(targetValue)
+ if err != nil {
+ panic(self.panicTypeError("Cannot access member '%s' of %s", memberValue.string(), err.Error(), _at(node.idx)))
+ }
+ return toValue(newPropertyReference(self, object, memberValue.string(), false, _at(node.idx)))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeCallExpression(node *_nodeCallExpression, withArgumentList []interface{}) Value {
+ rt := self
+ this := Value{}
+ callee := self.cmpl_evaluate_nodeExpression(node.callee)
+
+ argumentList := []Value{}
+ if withArgumentList != nil {
+ argumentList = self.toValueArray(withArgumentList...)
+ } else {
+ for _, argumentNode := range node.argumentList {
+ argumentList = append(argumentList, self.cmpl_evaluate_nodeExpression(argumentNode).resolve())
+ }
+ }
+
+ rf := callee.reference()
+ vl := callee.resolve()
+
+ eval := false // Whether this call is a (candidate for) direct call to eval
+ name := ""
+ if rf != nil {
+ switch rf := rf.(type) {
+ case *_propertyReference:
+ name = rf.name
+ object := rf.base
+ this = toValue_object(object)
+ eval = rf.name == "eval" // Possible direct eval
+ case *_stashReference:
+ // TODO ImplicitThisValue
+ name = rf.name
+ eval = rf.name == "eval" // Possible direct eval
+ default:
+ // FIXME?
+ panic(rt.panicTypeError("Here be dragons"))
+ }
+ }
+
+ at := _at(-1)
+ switch callee := node.callee.(type) {
+ case *_nodeIdentifier:
+ at = _at(callee.idx)
+ case *_nodeDotExpression:
+ at = _at(callee.idx)
+ case *_nodeBracketExpression:
+ at = _at(callee.idx)
+ }
+
+ frame := _frame{
+ callee: name,
+ file: self.scope.frame.file,
+ }
+
+ if !vl.IsFunction() {
+ if name == "" {
+ // FIXME Maybe typeof?
+ panic(rt.panicTypeError("%v is not a function", vl, at))
+ }
+ panic(rt.panicTypeError("'%s' is not a function", name, at))
+ }
+
+ self.scope.frame.offset = int(at)
+
+ return vl._object().call(this, argumentList, eval, frame)
+}
+
+func (self *_runtime) cmpl_evaluate_nodeConditionalExpression(node *_nodeConditionalExpression) Value {
+ test := self.cmpl_evaluate_nodeExpression(node.test)
+ testValue := test.resolve()
+ if testValue.bool() {
+ return self.cmpl_evaluate_nodeExpression(node.consequent)
+ }
+ return self.cmpl_evaluate_nodeExpression(node.alternate)
+}
+
+func (self *_runtime) cmpl_evaluate_nodeDotExpression(node *_nodeDotExpression) Value {
+ target := self.cmpl_evaluate_nodeExpression(node.left)
+ targetValue := target.resolve()
+ // TODO Pass in base value as-is, and defer toObject till later?
+ object, err := self.objectCoerce(targetValue)
+ if err != nil {
+ panic(self.panicTypeError("Cannot access member '%s' of %s", node.identifier, err.Error(), _at(node.idx)))
+ }
+ return toValue(newPropertyReference(self, object, node.identifier, false, _at(node.idx)))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeNewExpression(node *_nodeNewExpression) Value {
+ rt := self
+ callee := self.cmpl_evaluate_nodeExpression(node.callee)
+
+ argumentList := []Value{}
+ for _, argumentNode := range node.argumentList {
+ argumentList = append(argumentList, self.cmpl_evaluate_nodeExpression(argumentNode).resolve())
+ }
+
+ rf := callee.reference()
+ vl := callee.resolve()
+
+ name := ""
+ if rf != nil {
+ switch rf := rf.(type) {
+ case *_propertyReference:
+ name = rf.name
+ case *_stashReference:
+ name = rf.name
+ default:
+ panic(rt.panicTypeError("Here be dragons"))
+ }
+ }
+
+ at := _at(-1)
+ switch callee := node.callee.(type) {
+ case *_nodeIdentifier:
+ at = _at(callee.idx)
+ case *_nodeDotExpression:
+ at = _at(callee.idx)
+ case *_nodeBracketExpression:
+ at = _at(callee.idx)
+ }
+
+ if !vl.IsFunction() {
+ if name == "" {
+ // FIXME Maybe typeof?
+ panic(rt.panicTypeError("%v is not a function", vl, at))
+ }
+ panic(rt.panicTypeError("'%s' is not a function", name, at))
+ }
+
+ self.scope.frame.offset = int(at)
+
+ return vl._object().construct(argumentList)
+}
+
+func (self *_runtime) cmpl_evaluate_nodeObjectLiteral(node *_nodeObjectLiteral) Value {
+
+ result := self.newObject()
+
+ for _, property := range node.value {
+ switch property.kind {
+ case "value":
+ result.defineProperty(property.key, self.cmpl_evaluate_nodeExpression(property.value).resolve(), 0111, false)
+ case "get":
+ getter := self.newNodeFunction(property.value.(*_nodeFunctionLiteral), self.scope.lexical)
+ descriptor := _property{}
+ descriptor.mode = 0211
+ descriptor.value = _propertyGetSet{getter, nil}
+ result.defineOwnProperty(property.key, descriptor, false)
+ case "set":
+ setter := self.newNodeFunction(property.value.(*_nodeFunctionLiteral), self.scope.lexical)
+ descriptor := _property{}
+ descriptor.mode = 0211
+ descriptor.value = _propertyGetSet{nil, setter}
+ result.defineOwnProperty(property.key, descriptor, false)
+ default:
+ panic(fmt.Errorf("Here be dragons: evaluate_nodeObjectLiteral: invalid property.Kind: %v", property.kind))
+ }
+ }
+
+ return toValue_object(result)
+}
+
+func (self *_runtime) cmpl_evaluate_nodeSequenceExpression(node *_nodeSequenceExpression) Value {
+ var result Value
+ for _, node := range node.sequence {
+ result = self.cmpl_evaluate_nodeExpression(node)
+ result = result.resolve()
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeUnaryExpression(node *_nodeUnaryExpression) Value {
+
+ target := self.cmpl_evaluate_nodeExpression(node.operand)
+ switch node.operator {
+ case token.TYPEOF, token.DELETE:
+ if target.kind == valueReference && target.reference().invalid() {
+ if node.operator == token.TYPEOF {
+ return toValue_string("undefined")
+ }
+ return trueValue
+ }
+ }
+
+ switch node.operator {
+ case token.NOT:
+ targetValue := target.resolve()
+ if targetValue.bool() {
+ return falseValue
+ }
+ return trueValue
+ case token.BITWISE_NOT:
+ targetValue := target.resolve()
+ integerValue := toInt32(targetValue)
+ return toValue_int32(^integerValue)
+ case token.PLUS:
+ targetValue := target.resolve()
+ return toValue_float64(targetValue.float64())
+ case token.MINUS:
+ targetValue := target.resolve()
+ value := targetValue.float64()
+ // TODO Test this
+ sign := float64(-1)
+ if math.Signbit(value) {
+ sign = 1
+ }
+ return toValue_float64(math.Copysign(value, sign))
+ case token.INCREMENT:
+ targetValue := target.resolve()
+ if node.postfix {
+ // Postfix++
+ oldValue := targetValue.float64()
+ newValue := toValue_float64(+1 + oldValue)
+ self.putValue(target.reference(), newValue)
+ return toValue_float64(oldValue)
+ } else {
+ // ++Prefix
+ newValue := toValue_float64(+1 + targetValue.float64())
+ self.putValue(target.reference(), newValue)
+ return newValue
+ }
+ case token.DECREMENT:
+ targetValue := target.resolve()
+ if node.postfix {
+ // Postfix--
+ oldValue := targetValue.float64()
+ newValue := toValue_float64(-1 + oldValue)
+ self.putValue(target.reference(), newValue)
+ return toValue_float64(oldValue)
+ } else {
+ // --Prefix
+ newValue := toValue_float64(-1 + targetValue.float64())
+ self.putValue(target.reference(), newValue)
+ return newValue
+ }
+ case token.VOID:
+ target.resolve() // FIXME Side effect?
+ return Value{}
+ case token.DELETE:
+ reference := target.reference()
+ if reference == nil {
+ return trueValue
+ }
+ return toValue_bool(target.reference().delete())
+ case token.TYPEOF:
+ targetValue := target.resolve()
+ switch targetValue.kind {
+ case valueUndefined:
+ return toValue_string("undefined")
+ case valueNull:
+ return toValue_string("object")
+ case valueBoolean:
+ return toValue_string("boolean")
+ case valueNumber:
+ return toValue_string("number")
+ case valueString:
+ return toValue_string("string")
+ case valueObject:
+ if targetValue._object().isCall() {
+ return toValue_string("function")
+ }
+ return toValue_string("object")
+ default:
+ // FIXME ?
+ }
+ }
+
+ panic(hereBeDragons())
+}
+
+func (self *_runtime) cmpl_evaluate_nodeVariableExpression(node *_nodeVariableExpression) Value {
+ if node.initializer != nil {
+ // FIXME If reference is nil
+ left := getIdentifierReference(self, self.scope.lexical, node.name, false, _at(node.idx))
+ right := self.cmpl_evaluate_nodeExpression(node.initializer)
+ rightValue := right.resolve()
+
+ self.putValue(left, rightValue)
+ }
+ return toValue_string(node.name)
+}
diff --git a/vendor/github.com/robertkrimen/otto/cmpl_evaluate_statement.go b/vendor/github.com/robertkrimen/otto/cmpl_evaluate_statement.go
new file mode 100644
index 000000000..e16c6ac6c
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/cmpl_evaluate_statement.go
@@ -0,0 +1,424 @@
+package otto
+
+import (
+ "fmt"
+ "runtime"
+
+ "github.com/robertkrimen/otto/token"
+)
+
+func (self *_runtime) cmpl_evaluate_nodeStatement(node _nodeStatement) Value {
+ // Allow interpreter interruption
+ // If the Interrupt channel is nil, then
+ // we avoid runtime.Gosched() overhead (if any)
+ // FIXME: Test this
+ if self.otto.Interrupt != nil {
+ runtime.Gosched()
+ select {
+ case value := <-self.otto.Interrupt:
+ value()
+ default:
+ }
+ }
+
+ switch node := node.(type) {
+
+ case *_nodeBlockStatement:
+ labels := self.labels
+ self.labels = nil
+
+ value := self.cmpl_evaluate_nodeStatementList(node.list)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreak(labels) {
+ case resultBreak:
+ return emptyValue
+ }
+ }
+ return value
+
+ case *_nodeBranchStatement:
+ target := node.label
+ switch node.branch { // FIXME Maybe node.kind? node.operator?
+ case token.BREAK:
+ return toValue(newBreakResult(target))
+ case token.CONTINUE:
+ return toValue(newContinueResult(target))
+ }
+
+ case *_nodeDebuggerStatement:
+ if self.debugger != nil {
+ self.debugger(self.otto)
+ }
+ return emptyValue // Nothing happens.
+
+ case *_nodeDoWhileStatement:
+ return self.cmpl_evaluate_nodeDoWhileStatement(node)
+
+ case *_nodeEmptyStatement:
+ return emptyValue
+
+ case *_nodeExpressionStatement:
+ return self.cmpl_evaluate_nodeExpression(node.expression)
+
+ case *_nodeForInStatement:
+ return self.cmpl_evaluate_nodeForInStatement(node)
+
+ case *_nodeForStatement:
+ return self.cmpl_evaluate_nodeForStatement(node)
+
+ case *_nodeIfStatement:
+ return self.cmpl_evaluate_nodeIfStatement(node)
+
+ case *_nodeLabelledStatement:
+ self.labels = append(self.labels, node.label)
+ defer func() {
+ if len(self.labels) > 0 {
+ self.labels = self.labels[:len(self.labels)-1] // Pop the label
+ } else {
+ self.labels = nil
+ }
+ }()
+ return self.cmpl_evaluate_nodeStatement(node.statement)
+
+ case *_nodeReturnStatement:
+ if node.argument != nil {
+ return toValue(newReturnResult(self.cmpl_evaluate_nodeExpression(node.argument).resolve()))
+ }
+ return toValue(newReturnResult(Value{}))
+
+ case *_nodeSwitchStatement:
+ return self.cmpl_evaluate_nodeSwitchStatement(node)
+
+ case *_nodeThrowStatement:
+ value := self.cmpl_evaluate_nodeExpression(node.argument).resolve()
+ panic(newException(value))
+
+ case *_nodeTryStatement:
+ return self.cmpl_evaluate_nodeTryStatement(node)
+
+ case *_nodeVariableStatement:
+ // Variables are already defined, this is initialization only
+ for _, variable := range node.list {
+ self.cmpl_evaluate_nodeVariableExpression(variable.(*_nodeVariableExpression))
+ }
+ return emptyValue
+
+ case *_nodeWhileStatement:
+ return self.cmpl_evaluate_nodeWhileStatement(node)
+
+ case *_nodeWithStatement:
+ return self.cmpl_evaluate_nodeWithStatement(node)
+
+ }
+
+ panic(fmt.Errorf("Here be dragons: evaluate_nodeStatement(%T)", node))
+}
+
+func (self *_runtime) cmpl_evaluate_nodeStatementList(list []_nodeStatement) Value {
+ var result Value
+ for _, node := range list {
+ value := self.cmpl_evaluate_nodeStatement(node)
+ switch value.kind {
+ case valueResult:
+ return value
+ case valueEmpty:
+ default:
+ // We have getValue here to (for example) trigger a
+ // ReferenceError (of the not defined variety)
+ // Not sure if this is the best way to error out early
+ // for such errors or if there is a better way
+ // TODO Do we still need this?
+ result = value.resolve()
+ }
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeDoWhileStatement(node *_nodeDoWhileStatement) Value {
+
+ labels := append(self.labels, "")
+ self.labels = nil
+
+ test := node.test
+
+ result := emptyValue
+resultBreak:
+ for {
+ for _, node := range node.body {
+ value := self.cmpl_evaluate_nodeStatement(node)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreakContinue(labels) {
+ case resultReturn:
+ return value
+ case resultBreak:
+ break resultBreak
+ case resultContinue:
+ goto resultContinue
+ }
+ case valueEmpty:
+ default:
+ result = value
+ }
+ }
+ resultContinue:
+ if !self.cmpl_evaluate_nodeExpression(test).resolve().bool() {
+ // Stahp: do ... while (false)
+ break
+ }
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeForInStatement(node *_nodeForInStatement) Value {
+
+ labels := append(self.labels, "")
+ self.labels = nil
+
+ source := self.cmpl_evaluate_nodeExpression(node.source)
+ sourceValue := source.resolve()
+
+ switch sourceValue.kind {
+ case valueUndefined, valueNull:
+ return emptyValue
+ }
+
+ sourceObject := self.toObject(sourceValue)
+
+ into := node.into
+ body := node.body
+
+ result := emptyValue
+ object := sourceObject
+ for object != nil {
+ enumerateValue := emptyValue
+ object.enumerate(false, func(name string) bool {
+ into := self.cmpl_evaluate_nodeExpression(into)
+ // In the case of: for (var abc in def) ...
+ if into.reference() == nil {
+ identifier := into.string()
+ // TODO Should be true or false (strictness) depending on context
+ into = toValue(getIdentifierReference(self, self.scope.lexical, identifier, false, -1))
+ }
+ self.putValue(into.reference(), toValue_string(name))
+ for _, node := range body {
+ value := self.cmpl_evaluate_nodeStatement(node)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreakContinue(labels) {
+ case resultReturn:
+ enumerateValue = value
+ return false
+ case resultBreak:
+ object = nil
+ return false
+ case resultContinue:
+ return true
+ }
+ case valueEmpty:
+ default:
+ enumerateValue = value
+ }
+ }
+ return true
+ })
+ if object == nil {
+ break
+ }
+ object = object.prototype
+ if !enumerateValue.isEmpty() {
+ result = enumerateValue
+ }
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeForStatement(node *_nodeForStatement) Value {
+
+ labels := append(self.labels, "")
+ self.labels = nil
+
+ initializer := node.initializer
+ test := node.test
+ update := node.update
+ body := node.body
+
+ if initializer != nil {
+ initialResult := self.cmpl_evaluate_nodeExpression(initializer)
+ initialResult.resolve() // Side-effect trigger
+ }
+
+ result := emptyValue
+resultBreak:
+ for {
+ if test != nil {
+ testResult := self.cmpl_evaluate_nodeExpression(test)
+ testResultValue := testResult.resolve()
+ if testResultValue.bool() == false {
+ break
+ }
+ }
+ for _, node := range body {
+ value := self.cmpl_evaluate_nodeStatement(node)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreakContinue(labels) {
+ case resultReturn:
+ return value
+ case resultBreak:
+ break resultBreak
+ case resultContinue:
+ goto resultContinue
+ }
+ case valueEmpty:
+ default:
+ result = value
+ }
+ }
+ resultContinue:
+ if update != nil {
+ updateResult := self.cmpl_evaluate_nodeExpression(update)
+ updateResult.resolve() // Side-effect trigger
+ }
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeIfStatement(node *_nodeIfStatement) Value {
+ test := self.cmpl_evaluate_nodeExpression(node.test)
+ testValue := test.resolve()
+ if testValue.bool() {
+ return self.cmpl_evaluate_nodeStatement(node.consequent)
+ } else if node.alternate != nil {
+ return self.cmpl_evaluate_nodeStatement(node.alternate)
+ }
+
+ return emptyValue
+}
+
+func (self *_runtime) cmpl_evaluate_nodeSwitchStatement(node *_nodeSwitchStatement) Value {
+
+ labels := append(self.labels, "")
+ self.labels = nil
+
+ discriminantResult := self.cmpl_evaluate_nodeExpression(node.discriminant)
+ target := node.default_
+
+ for index, clause := range node.body {
+ test := clause.test
+ if test != nil {
+ if self.calculateComparison(token.STRICT_EQUAL, discriminantResult, self.cmpl_evaluate_nodeExpression(test)) {
+ target = index
+ break
+ }
+ }
+ }
+
+ result := emptyValue
+ if target != -1 {
+ for _, clause := range node.body[target:] {
+ for _, statement := range clause.consequent {
+ value := self.cmpl_evaluate_nodeStatement(statement)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreak(labels) {
+ case resultReturn:
+ return value
+ case resultBreak:
+ return emptyValue
+ }
+ case valueEmpty:
+ default:
+ result = value
+ }
+ }
+ }
+ }
+
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeTryStatement(node *_nodeTryStatement) Value {
+ tryCatchValue, exception := self.tryCatchEvaluate(func() Value {
+ return self.cmpl_evaluate_nodeStatement(node.body)
+ })
+
+ if exception && node.catch != nil {
+ outer := self.scope.lexical
+ self.scope.lexical = self.newDeclarationStash(outer)
+ defer func() {
+ self.scope.lexical = outer
+ }()
+ // TODO If necessary, convert TypeError<runtime> => TypeError
+ // That, is, such errors can be thrown despite not being JavaScript "native"
+ // strict = false
+ self.scope.lexical.setValue(node.catch.parameter, tryCatchValue, false)
+
+ // FIXME node.CatchParameter
+ // FIXME node.Catch
+ tryCatchValue, exception = self.tryCatchEvaluate(func() Value {
+ return self.cmpl_evaluate_nodeStatement(node.catch.body)
+ })
+ }
+
+ if node.finally != nil {
+ finallyValue := self.cmpl_evaluate_nodeStatement(node.finally)
+ if finallyValue.kind == valueResult {
+ return finallyValue
+ }
+ }
+
+ if exception {
+ panic(newException(tryCatchValue))
+ }
+
+ return tryCatchValue
+}
+
+func (self *_runtime) cmpl_evaluate_nodeWhileStatement(node *_nodeWhileStatement) Value {
+
+ test := node.test
+ body := node.body
+ labels := append(self.labels, "")
+ self.labels = nil
+
+ result := emptyValue
+resultBreakContinue:
+ for {
+ if !self.cmpl_evaluate_nodeExpression(test).resolve().bool() {
+ // Stahp: while (false) ...
+ break
+ }
+ for _, node := range body {
+ value := self.cmpl_evaluate_nodeStatement(node)
+ switch value.kind {
+ case valueResult:
+ switch value.evaluateBreakContinue(labels) {
+ case resultReturn:
+ return value
+ case resultBreak:
+ break resultBreakContinue
+ case resultContinue:
+ continue resultBreakContinue
+ }
+ case valueEmpty:
+ default:
+ result = value
+ }
+ }
+ }
+ return result
+}
+
+func (self *_runtime) cmpl_evaluate_nodeWithStatement(node *_nodeWithStatement) Value {
+ object := self.cmpl_evaluate_nodeExpression(node.object)
+ outer := self.scope.lexical
+ lexical := self.newObjectStash(self.toObject(object.resolve()), outer)
+ self.scope.lexical = lexical
+ defer func() {
+ self.scope.lexical = outer
+ }()
+
+ return self.cmpl_evaluate_nodeStatement(node.body)
+}
diff --git a/vendor/github.com/robertkrimen/otto/cmpl_parse.go b/vendor/github.com/robertkrimen/otto/cmpl_parse.go
new file mode 100644
index 000000000..dc5baa12a
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/cmpl_parse.go
@@ -0,0 +1,656 @@
+package otto
+
+import (
+ "fmt"
+ "regexp"
+
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+)
+
+var trueLiteral = &_nodeLiteral{value: toValue_bool(true)}
+var falseLiteral = &_nodeLiteral{value: toValue_bool(false)}
+var nullLiteral = &_nodeLiteral{value: nullValue}
+var emptyStatement = &_nodeEmptyStatement{}
+
+func (cmpl *_compiler) parseExpression(in ast.Expression) _nodeExpression {
+ if in == nil {
+ return nil
+ }
+
+ switch in := in.(type) {
+
+ case *ast.ArrayLiteral:
+ out := &_nodeArrayLiteral{
+ value: make([]_nodeExpression, len(in.Value)),
+ }
+ for i, value := range in.Value {
+ out.value[i] = cmpl.parseExpression(value)
+ }
+ return out
+
+ case *ast.AssignExpression:
+ return &_nodeAssignExpression{
+ operator: in.Operator,
+ left: cmpl.parseExpression(in.Left),
+ right: cmpl.parseExpression(in.Right),
+ }
+
+ case *ast.BinaryExpression:
+ return &_nodeBinaryExpression{
+ operator: in.Operator,
+ left: cmpl.parseExpression(in.Left),
+ right: cmpl.parseExpression(in.Right),
+ comparison: in.Comparison,
+ }
+
+ case *ast.BooleanLiteral:
+ if in.Value {
+ return trueLiteral
+ }
+ return falseLiteral
+
+ case *ast.BracketExpression:
+ return &_nodeBracketExpression{
+ idx: in.Left.Idx0(),
+ left: cmpl.parseExpression(in.Left),
+ member: cmpl.parseExpression(in.Member),
+ }
+
+ case *ast.CallExpression:
+ out := &_nodeCallExpression{
+ callee: cmpl.parseExpression(in.Callee),
+ argumentList: make([]_nodeExpression, len(in.ArgumentList)),
+ }
+ for i, value := range in.ArgumentList {
+ out.argumentList[i] = cmpl.parseExpression(value)
+ }
+ return out
+
+ case *ast.ConditionalExpression:
+ return &_nodeConditionalExpression{
+ test: cmpl.parseExpression(in.Test),
+ consequent: cmpl.parseExpression(in.Consequent),
+ alternate: cmpl.parseExpression(in.Alternate),
+ }
+
+ case *ast.DotExpression:
+ return &_nodeDotExpression{
+ idx: in.Left.Idx0(),
+ left: cmpl.parseExpression(in.Left),
+ identifier: in.Identifier.Name,
+ }
+
+ case *ast.EmptyExpression:
+ return nil
+
+ case *ast.FunctionLiteral:
+ name := ""
+ if in.Name != nil {
+ name = in.Name.Name
+ }
+ out := &_nodeFunctionLiteral{
+ name: name,
+ body: cmpl.parseStatement(in.Body),
+ source: in.Source,
+ file: cmpl.file,
+ }
+ if in.ParameterList != nil {
+ list := in.ParameterList.List
+ out.parameterList = make([]string, len(list))
+ for i, value := range list {
+ out.parameterList[i] = value.Name
+ }
+ }
+ for _, value := range in.DeclarationList {
+ switch value := value.(type) {
+ case *ast.FunctionDeclaration:
+ out.functionList = append(out.functionList, cmpl.parseExpression(value.Function).(*_nodeFunctionLiteral))
+ case *ast.VariableDeclaration:
+ for _, value := range value.List {
+ out.varList = append(out.varList, value.Name)
+ }
+ default:
+ panic(fmt.Errorf("Here be dragons: parseProgram.declaration(%T)", value))
+ }
+ }
+ return out
+
+ case *ast.Identifier:
+ return &_nodeIdentifier{
+ idx: in.Idx,
+ name: in.Name,
+ }
+
+ case *ast.NewExpression:
+ out := &_nodeNewExpression{
+ callee: cmpl.parseExpression(in.Callee),
+ argumentList: make([]_nodeExpression, len(in.ArgumentList)),
+ }
+ for i, value := range in.ArgumentList {
+ out.argumentList[i] = cmpl.parseExpression(value)
+ }
+ return out
+
+ case *ast.NullLiteral:
+ return nullLiteral
+
+ case *ast.NumberLiteral:
+ return &_nodeLiteral{
+ value: toValue(in.Value),
+ }
+
+ case *ast.ObjectLiteral:
+ out := &_nodeObjectLiteral{
+ value: make([]_nodeProperty, len(in.Value)),
+ }
+ for i, value := range in.Value {
+ out.value[i] = _nodeProperty{
+ key: value.Key,
+ kind: value.Kind,
+ value: cmpl.parseExpression(value.Value),
+ }
+ }
+ return out
+
+ case *ast.RegExpLiteral:
+ return &_nodeRegExpLiteral{
+ flags: in.Flags,
+ pattern: in.Pattern,
+ }
+
+ case *ast.SequenceExpression:
+ out := &_nodeSequenceExpression{
+ sequence: make([]_nodeExpression, len(in.Sequence)),
+ }
+ for i, value := range in.Sequence {
+ out.sequence[i] = cmpl.parseExpression(value)
+ }
+ return out
+
+ case *ast.StringLiteral:
+ return &_nodeLiteral{
+ value: toValue_string(in.Value),
+ }
+
+ case *ast.ThisExpression:
+ return &_nodeThisExpression{}
+
+ case *ast.UnaryExpression:
+ return &_nodeUnaryExpression{
+ operator: in.Operator,
+ operand: cmpl.parseExpression(in.Operand),
+ postfix: in.Postfix,
+ }
+
+ case *ast.VariableExpression:
+ return &_nodeVariableExpression{
+ idx: in.Idx0(),
+ name: in.Name,
+ initializer: cmpl.parseExpression(in.Initializer),
+ }
+
+ }
+
+ panic(fmt.Errorf("Here be dragons: cmpl.parseExpression(%T)", in))
+}
+
+func (cmpl *_compiler) parseStatement(in ast.Statement) _nodeStatement {
+ if in == nil {
+ return nil
+ }
+
+ switch in := in.(type) {
+
+ case *ast.BlockStatement:
+ out := &_nodeBlockStatement{
+ list: make([]_nodeStatement, len(in.List)),
+ }
+ for i, value := range in.List {
+ out.list[i] = cmpl.parseStatement(value)
+ }
+ return out
+
+ case *ast.BranchStatement:
+ out := &_nodeBranchStatement{
+ branch: in.Token,
+ }
+ if in.Label != nil {
+ out.label = in.Label.Name
+ }
+ return out
+
+ case *ast.DebuggerStatement:
+ return &_nodeDebuggerStatement{}
+
+ case *ast.DoWhileStatement:
+ out := &_nodeDoWhileStatement{
+ test: cmpl.parseExpression(in.Test),
+ }
+ body := cmpl.parseStatement(in.Body)
+ if block, ok := body.(*_nodeBlockStatement); ok {
+ out.body = block.list
+ } else {
+ out.body = append(out.body, body)
+ }
+ return out
+
+ case *ast.EmptyStatement:
+ return emptyStatement
+
+ case *ast.ExpressionStatement:
+ return &_nodeExpressionStatement{
+ expression: cmpl.parseExpression(in.Expression),
+ }
+
+ case *ast.ForInStatement:
+ out := &_nodeForInStatement{
+ into: cmpl.parseExpression(in.Into),
+ source: cmpl.parseExpression(in.Source),
+ }
+ body := cmpl.parseStatement(in.Body)
+ if block, ok := body.(*_nodeBlockStatement); ok {
+ out.body = block.list
+ } else {
+ out.body = append(out.body, body)
+ }
+ return out
+
+ case *ast.ForStatement:
+ out := &_nodeForStatement{
+ initializer: cmpl.parseExpression(in.Initializer),
+ update: cmpl.parseExpression(in.Update),
+ test: cmpl.parseExpression(in.Test),
+ }
+ body := cmpl.parseStatement(in.Body)
+ if block, ok := body.(*_nodeBlockStatement); ok {
+ out.body = block.list
+ } else {
+ out.body = append(out.body, body)
+ }
+ return out
+
+ case *ast.FunctionStatement:
+ return emptyStatement
+
+ case *ast.IfStatement:
+ return &_nodeIfStatement{
+ test: cmpl.parseExpression(in.Test),
+ consequent: cmpl.parseStatement(in.Consequent),
+ alternate: cmpl.parseStatement(in.Alternate),
+ }
+
+ case *ast.LabelledStatement:
+ return &_nodeLabelledStatement{
+ label: in.Label.Name,
+ statement: cmpl.parseStatement(in.Statement),
+ }
+
+ case *ast.ReturnStatement:
+ return &_nodeReturnStatement{
+ argument: cmpl.parseExpression(in.Argument),
+ }
+
+ case *ast.SwitchStatement:
+ out := &_nodeSwitchStatement{
+ discriminant: cmpl.parseExpression(in.Discriminant),
+ default_: in.Default,
+ body: make([]*_nodeCaseStatement, len(in.Body)),
+ }
+ for i, clause := range in.Body {
+ out.body[i] = &_nodeCaseStatement{
+ test: cmpl.parseExpression(clause.Test),
+ consequent: make([]_nodeStatement, len(clause.Consequent)),
+ }
+ for j, value := range clause.Consequent {
+ out.body[i].consequent[j] = cmpl.parseStatement(value)
+ }
+ }
+ return out
+
+ case *ast.ThrowStatement:
+ return &_nodeThrowStatement{
+ argument: cmpl.parseExpression(in.Argument),
+ }
+
+ case *ast.TryStatement:
+ out := &_nodeTryStatement{
+ body: cmpl.parseStatement(in.Body),
+ finally: cmpl.parseStatement(in.Finally),
+ }
+ if in.Catch != nil {
+ out.catch = &_nodeCatchStatement{
+ parameter: in.Catch.Parameter.Name,
+ body: cmpl.parseStatement(in.Catch.Body),
+ }
+ }
+ return out
+
+ case *ast.VariableStatement:
+ out := &_nodeVariableStatement{
+ list: make([]_nodeExpression, len(in.List)),
+ }
+ for i, value := range in.List {
+ out.list[i] = cmpl.parseExpression(value)
+ }
+ return out
+
+ case *ast.WhileStatement:
+ out := &_nodeWhileStatement{
+ test: cmpl.parseExpression(in.Test),
+ }
+ body := cmpl.parseStatement(in.Body)
+ if block, ok := body.(*_nodeBlockStatement); ok {
+ out.body = block.list
+ } else {
+ out.body = append(out.body, body)
+ }
+ return out
+
+ case *ast.WithStatement:
+ return &_nodeWithStatement{
+ object: cmpl.parseExpression(in.Object),
+ body: cmpl.parseStatement(in.Body),
+ }
+
+ }
+
+ panic(fmt.Errorf("Here be dragons: cmpl.parseStatement(%T)", in))
+}
+
+func cmpl_parse(in *ast.Program) *_nodeProgram {
+ cmpl := _compiler{
+ program: in,
+ }
+ return cmpl.parse()
+}
+
+func (cmpl *_compiler) _parse(in *ast.Program) *_nodeProgram {
+ out := &_nodeProgram{
+ body: make([]_nodeStatement, len(in.Body)),
+ file: in.File,
+ }
+ for i, value := range in.Body {
+ out.body[i] = cmpl.parseStatement(value)
+ }
+ for _, value := range in.DeclarationList {
+ switch value := value.(type) {
+ case *ast.FunctionDeclaration:
+ out.functionList = append(out.functionList, cmpl.parseExpression(value.Function).(*_nodeFunctionLiteral))
+ case *ast.VariableDeclaration:
+ for _, value := range value.List {
+ out.varList = append(out.varList, value.Name)
+ }
+ default:
+ panic(fmt.Errorf("Here be dragons: cmpl.parseProgram.DeclarationList(%T)", value))
+ }
+ }
+ return out
+}
+
+type _nodeProgram struct {
+ body []_nodeStatement
+
+ varList []string
+ functionList []*_nodeFunctionLiteral
+
+ variableList []_nodeDeclaration
+
+ file *file.File
+}
+
+type _nodeDeclaration struct {
+ name string
+ definition _node
+}
+
+type _node interface {
+}
+
+type (
+ _nodeExpression interface {
+ _node
+ _expressionNode()
+ }
+
+ _nodeArrayLiteral struct {
+ value []_nodeExpression
+ }
+
+ _nodeAssignExpression struct {
+ operator token.Token
+ left _nodeExpression
+ right _nodeExpression
+ }
+
+ _nodeBinaryExpression struct {
+ operator token.Token
+ left _nodeExpression
+ right _nodeExpression
+ comparison bool
+ }
+
+ _nodeBracketExpression struct {
+ idx file.Idx
+ left _nodeExpression
+ member _nodeExpression
+ }
+
+ _nodeCallExpression struct {
+ callee _nodeExpression
+ argumentList []_nodeExpression
+ }
+
+ _nodeConditionalExpression struct {
+ test _nodeExpression
+ consequent _nodeExpression
+ alternate _nodeExpression
+ }
+
+ _nodeDotExpression struct {
+ idx file.Idx
+ left _nodeExpression
+ identifier string
+ }
+
+ _nodeFunctionLiteral struct {
+ name string
+ body _nodeStatement
+ source string
+ parameterList []string
+ varList []string
+ functionList []*_nodeFunctionLiteral
+ file *file.File
+ }
+
+ _nodeIdentifier struct {
+ idx file.Idx
+ name string
+ }
+
+ _nodeLiteral struct {
+ value Value
+ }
+
+ _nodeNewExpression struct {
+ callee _nodeExpression
+ argumentList []_nodeExpression
+ }
+
+ _nodeObjectLiteral struct {
+ value []_nodeProperty
+ }
+
+ _nodeProperty struct {
+ key string
+ kind string
+ value _nodeExpression
+ }
+
+ _nodeRegExpLiteral struct {
+ flags string
+ pattern string // Value?
+ regexp *regexp.Regexp
+ }
+
+ _nodeSequenceExpression struct {
+ sequence []_nodeExpression
+ }
+
+ _nodeThisExpression struct {
+ }
+
+ _nodeUnaryExpression struct {
+ operator token.Token
+ operand _nodeExpression
+ postfix bool
+ }
+
+ _nodeVariableExpression struct {
+ idx file.Idx
+ name string
+ initializer _nodeExpression
+ }
+)
+
+type (
+ _nodeStatement interface {
+ _node
+ _statementNode()
+ }
+
+ _nodeBlockStatement struct {
+ list []_nodeStatement
+ }
+
+ _nodeBranchStatement struct {
+ branch token.Token
+ label string
+ }
+
+ _nodeCaseStatement struct {
+ test _nodeExpression
+ consequent []_nodeStatement
+ }
+
+ _nodeCatchStatement struct {
+ parameter string
+ body _nodeStatement
+ }
+
+ _nodeDebuggerStatement struct {
+ }
+
+ _nodeDoWhileStatement struct {
+ test _nodeExpression
+ body []_nodeStatement
+ }
+
+ _nodeEmptyStatement struct {
+ }
+
+ _nodeExpressionStatement struct {
+ expression _nodeExpression
+ }
+
+ _nodeForInStatement struct {
+ into _nodeExpression
+ source _nodeExpression
+ body []_nodeStatement
+ }
+
+ _nodeForStatement struct {
+ initializer _nodeExpression
+ update _nodeExpression
+ test _nodeExpression
+ body []_nodeStatement
+ }
+
+ _nodeIfStatement struct {
+ test _nodeExpression
+ consequent _nodeStatement
+ alternate _nodeStatement
+ }
+
+ _nodeLabelledStatement struct {
+ label string
+ statement _nodeStatement
+ }
+
+ _nodeReturnStatement struct {
+ argument _nodeExpression
+ }
+
+ _nodeSwitchStatement struct {
+ discriminant _nodeExpression
+ default_ int
+ body []*_nodeCaseStatement
+ }
+
+ _nodeThrowStatement struct {
+ argument _nodeExpression
+ }
+
+ _nodeTryStatement struct {
+ body _nodeStatement
+ catch *_nodeCatchStatement
+ finally _nodeStatement
+ }
+
+ _nodeVariableStatement struct {
+ list []_nodeExpression
+ }
+
+ _nodeWhileStatement struct {
+ test _nodeExpression
+ body []_nodeStatement
+ }
+
+ _nodeWithStatement struct {
+ object _nodeExpression
+ body _nodeStatement
+ }
+)
+
+// _expressionNode
+
+func (*_nodeArrayLiteral) _expressionNode() {}
+func (*_nodeAssignExpression) _expressionNode() {}
+func (*_nodeBinaryExpression) _expressionNode() {}
+func (*_nodeBracketExpression) _expressionNode() {}
+func (*_nodeCallExpression) _expressionNode() {}
+func (*_nodeConditionalExpression) _expressionNode() {}
+func (*_nodeDotExpression) _expressionNode() {}
+func (*_nodeFunctionLiteral) _expressionNode() {}
+func (*_nodeIdentifier) _expressionNode() {}
+func (*_nodeLiteral) _expressionNode() {}
+func (*_nodeNewExpression) _expressionNode() {}
+func (*_nodeObjectLiteral) _expressionNode() {}
+func (*_nodeRegExpLiteral) _expressionNode() {}
+func (*_nodeSequenceExpression) _expressionNode() {}
+func (*_nodeThisExpression) _expressionNode() {}
+func (*_nodeUnaryExpression) _expressionNode() {}
+func (*_nodeVariableExpression) _expressionNode() {}
+
+// _statementNode
+
+func (*_nodeBlockStatement) _statementNode() {}
+func (*_nodeBranchStatement) _statementNode() {}
+func (*_nodeCaseStatement) _statementNode() {}
+func (*_nodeCatchStatement) _statementNode() {}
+func (*_nodeDebuggerStatement) _statementNode() {}
+func (*_nodeDoWhileStatement) _statementNode() {}
+func (*_nodeEmptyStatement) _statementNode() {}
+func (*_nodeExpressionStatement) _statementNode() {}
+func (*_nodeForInStatement) _statementNode() {}
+func (*_nodeForStatement) _statementNode() {}
+func (*_nodeIfStatement) _statementNode() {}
+func (*_nodeLabelledStatement) _statementNode() {}
+func (*_nodeReturnStatement) _statementNode() {}
+func (*_nodeSwitchStatement) _statementNode() {}
+func (*_nodeThrowStatement) _statementNode() {}
+func (*_nodeTryStatement) _statementNode() {}
+func (*_nodeVariableStatement) _statementNode() {}
+func (*_nodeWhileStatement) _statementNode() {}
+func (*_nodeWithStatement) _statementNode() {}
diff --git a/vendor/github.com/robertkrimen/otto/console.go b/vendor/github.com/robertkrimen/otto/console.go
new file mode 100644
index 000000000..948face77
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/console.go
@@ -0,0 +1,51 @@
+package otto
+
+import (
+ "fmt"
+ "os"
+ "strings"
+)
+
+func formatForConsole(argumentList []Value) string {
+ output := []string{}
+ for _, argument := range argumentList {
+ output = append(output, fmt.Sprintf("%v", argument))
+ }
+ return strings.Join(output, " ")
+}
+
+func builtinConsole_log(call FunctionCall) Value {
+ fmt.Fprintln(os.Stdout, formatForConsole(call.ArgumentList))
+ return Value{}
+}
+
+func builtinConsole_error(call FunctionCall) Value {
+ fmt.Fprintln(os.Stdout, formatForConsole(call.ArgumentList))
+ return Value{}
+}
+
+// Nothing happens.
+func builtinConsole_dir(call FunctionCall) Value {
+ return Value{}
+}
+
+func builtinConsole_time(call FunctionCall) Value {
+ return Value{}
+}
+
+func builtinConsole_timeEnd(call FunctionCall) Value {
+ return Value{}
+}
+
+func builtinConsole_trace(call FunctionCall) Value {
+ return Value{}
+}
+
+func builtinConsole_assert(call FunctionCall) Value {
+ return Value{}
+}
+
+func (runtime *_runtime) newConsole() *_object {
+
+ return newConsoleObject(runtime)
+}
diff --git a/vendor/github.com/robertkrimen/otto/dbg.go b/vendor/github.com/robertkrimen/otto/dbg.go
new file mode 100644
index 000000000..51fbdc206
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/dbg.go
@@ -0,0 +1,9 @@
+// This file was AUTOMATICALLY GENERATED by dbg-import (smuggol) for github.com/robertkrimen/dbg
+
+package otto
+
+import (
+ Dbg "github.com/robertkrimen/otto/dbg"
+)
+
+var dbg, dbgf = Dbg.New()
diff --git a/vendor/github.com/robertkrimen/otto/dbg/dbg.go b/vendor/github.com/robertkrimen/otto/dbg/dbg.go
new file mode 100644
index 000000000..8c27fa293
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/dbg/dbg.go
@@ -0,0 +1,387 @@
+// This file was AUTOMATICALLY GENERATED by dbg-import (smuggol) from github.com/robertkrimen/dbg
+
+/*
+Package dbg is a println/printf/log-debugging utility library.
+
+ import (
+ Dbg "github.com/robertkrimen/dbg"
+ )
+
+ dbg, dbgf := Dbg.New()
+
+ dbg("Emit some debug stuff", []byte{120, 121, 122, 122, 121}, math.Pi)
+ # "2013/01/28 16:50:03 Emit some debug stuff [120 121 122 122 121] 3.141592653589793"
+
+ dbgf("With a %s formatting %.2f", "little", math.Pi)
+ # "2013/01/28 16:51:55 With a little formatting (3.14)"
+
+ dbgf("%/fatal//A fatal debug statement: should not be here")
+ # "A fatal debug statement: should not be here"
+ # ...and then, os.Exit(1)
+
+ dbgf("%/panic//Can also panic %s", "this")
+ # "Can also panic this"
+ # ...as a panic, equivalent to: panic("Can also panic this")
+
+ dbgf("Any %s arguments without a corresponding %%", "extra", "are treated like arguments to dbg()")
+ # "2013/01/28 17:14:40 Any extra arguments (without a corresponding %) are treated like arguments to dbg()"
+
+ dbgf("%d %d", 1, 2, 3, 4, 5)
+ # "2013/01/28 17:16:32 Another example: 1 2 3 4 5"
+
+ dbgf("%@: Include the function name for a little context (via %s)", "%@")
+ # "2013... github.com/robertkrimen/dbg.TestSynopsis: Include the function name for a little context (via %@)"
+
+By default, dbg uses log (log.Println, log.Printf, log.Panic, etc.) for output.
+However, you can also provide your own output destination by invoking dbg.New with
+a customization function:
+
+ import (
+ "bytes"
+ Dbg "github.com/robertkrimen/dbg"
+ "os"
+ )
+
+ # dbg to os.Stderr
+ dbg, dbgf := Dbg.New(func(dbgr *Dbgr) {
+ dbgr.SetOutput(os.Stderr)
+ })
+
+ # A slightly contrived example:
+ var buffer bytes.Buffer
+ dbg, dbgf := New(func(dbgr *Dbgr) {
+ dbgr.SetOutput(&buffer)
+ })
+
+*/
+package dbg
+
+import (
+ "bytes"
+ "fmt"
+ "io"
+ "log"
+ "os"
+ "regexp"
+ "runtime"
+ "strings"
+ "unicode"
+)
+
+type _frmt struct {
+ ctl string
+ format string
+ operandCount int
+ panic bool
+ fatal bool
+ check bool
+}
+
+var (
+ ctlTest = regexp.MustCompile(`^\s*%/`)
+ ctlScan = regexp.MustCompile(`%?/(panic|fatal|check)(?:\s|$)`)
+)
+
+func operandCount(format string) int {
+ count := 0
+ end := len(format)
+ for at := 0; at < end; {
+ for at < end && format[at] != '%' {
+ at++
+ }
+ at++
+ if at < end {
+ if format[at] != '%' && format[at] != '@' {
+ count++
+ }
+ at++
+ }
+ }
+ return count
+}
+
+func parseFormat(format string) (frmt _frmt) {
+ if ctlTest.MatchString(format) {
+ format = strings.TrimLeftFunc(format, unicode.IsSpace)
+ index := strings.Index(format, "//")
+ if index != -1 {
+ frmt.ctl = format[0:index]
+ format = format[index+2:] // Skip the second slash via +2 (instead of +1)
+ } else {
+ frmt.ctl = format
+ format = ""
+ }
+ for _, tmp := range ctlScan.FindAllStringSubmatch(frmt.ctl, -1) {
+ for _, value := range tmp[1:] {
+ switch value {
+ case "panic":
+ frmt.panic = true
+ case "fatal":
+ frmt.fatal = true
+ case "check":
+ frmt.check = true
+ }
+ }
+ }
+ }
+ frmt.format = format
+ frmt.operandCount = operandCount(format)
+ return
+}
+
+type Dbgr struct {
+ emit _emit
+}
+
+type DbgFunction func(values ...interface{})
+
+func NewDbgr() *Dbgr {
+ self := &Dbgr{}
+ return self
+}
+
+/*
+New will create and return a pair of debugging functions. You can customize where
+they output to by passing in an (optional) customization function:
+
+ import (
+ Dbg "github.com/robertkrimen/dbg"
+ "os"
+ )
+
+ # dbg to os.Stderr
+ dbg, dbgf := Dbg.New(func(dbgr *Dbgr) {
+ dbgr.SetOutput(os.Stderr)
+ })
+
+*/
+func New(options ...interface{}) (dbg DbgFunction, dbgf DbgFunction) {
+ dbgr := NewDbgr()
+ if len(options) > 0 {
+ if fn, ok := options[0].(func(*Dbgr)); ok {
+ fn(dbgr)
+ }
+ }
+ return dbgr.DbgDbgf()
+}
+
+func (self Dbgr) Dbg(values ...interface{}) {
+ self.getEmit().emit(_frmt{}, "", values...)
+}
+
+func (self Dbgr) Dbgf(values ...interface{}) {
+ self.dbgf(values...)
+}
+
+func (self Dbgr) DbgDbgf() (dbg DbgFunction, dbgf DbgFunction) {
+ dbg = func(vl ...interface{}) {
+ self.Dbg(vl...)
+ }
+ dbgf = func(vl ...interface{}) {
+ self.dbgf(vl...)
+ }
+ return dbg, dbgf // Redundant, but...
+}
+
+func (self Dbgr) dbgf(values ...interface{}) {
+
+ var frmt _frmt
+ if len(values) > 0 {
+ tmp := fmt.Sprint(values[0])
+ frmt = parseFormat(tmp)
+ values = values[1:]
+ }
+
+ buffer_f := bytes.Buffer{}
+ format := frmt.format
+ end := len(format)
+ for at := 0; at < end; {
+ last := at
+ for at < end && format[at] != '%' {
+ at++
+ }
+ if at > last {
+ buffer_f.WriteString(format[last:at])
+ }
+ if at >= end {
+ break
+ }
+ // format[at] == '%'
+ at++
+ // format[at] == ?
+ if format[at] == '@' {
+ depth := 2
+ pc, _, _, _ := runtime.Caller(depth)
+ name := runtime.FuncForPC(pc).Name()
+ buffer_f.WriteString(name)
+ } else {
+ buffer_f.WriteString(format[at-1 : at+1])
+ }
+ at++
+ }
+
+ //values_f := append([]interface{}{}, values[0:frmt.operandCount]...)
+ values_f := values[0:frmt.operandCount]
+ values_dbg := values[frmt.operandCount:]
+ if len(values_dbg) > 0 {
+ // Adjust frmt.format:
+ // (%v instead of %s because: frmt.check)
+ {
+ tmp := format
+ if len(tmp) > 0 {
+ if unicode.IsSpace(rune(tmp[len(tmp)-1])) {
+ buffer_f.WriteString("%v")
+ } else {
+ buffer_f.WriteString(" %v")
+ }
+ } else if frmt.check {
+ // Performing a check, so no output
+ } else {
+ buffer_f.WriteString("%v")
+ }
+ }
+
+ // Adjust values_f:
+ if !frmt.check {
+ tmp := []string{}
+ for _, value := range values_dbg {
+ tmp = append(tmp, fmt.Sprintf("%v", value))
+ }
+ // First, make a copy of values_f, so we avoid overwriting values_dbg when appending
+ values_f = append([]interface{}{}, values_f...)
+ values_f = append(values_f, strings.Join(tmp, " "))
+ }
+ }
+
+ format = buffer_f.String()
+ if frmt.check {
+ // We do not actually emit to the log, but panic if
+ // a non-nil value is detected (e.g. a non-nil error)
+ for _, value := range values_dbg {
+ if value != nil {
+ if format == "" {
+ panic(value)
+ } else {
+ panic(fmt.Sprintf(format, append(values_f, value)...))
+ }
+ }
+ }
+ } else {
+ self.getEmit().emit(frmt, format, values_f...)
+ }
+}
+
+// Idiot-proof &Dbgr{}, etc.
+func (self *Dbgr) getEmit() _emit {
+ if self.emit == nil {
+ self.emit = standardEmit()
+ }
+ return self.emit
+}
+
+// SetOutput will accept the following as a destination for output:
+//
+// *log.Logger Print*/Panic*/Fatal* of the logger
+// io.Writer -
+// nil Reset to the default output (os.Stderr)
+// "log" Print*/Panic*/Fatal* via the "log" package
+//
+func (self *Dbgr) SetOutput(output interface{}) {
+ if output == nil {
+ self.emit = standardEmit()
+ return
+ }
+ switch output := output.(type) {
+ case *log.Logger:
+ self.emit = _emitLogger{
+ logger: output,
+ }
+ return
+ case io.Writer:
+ self.emit = _emitWriter{
+ writer: output,
+ }
+ return
+ case string:
+ if output == "log" {
+ self.emit = _emitLog{}
+ return
+ }
+ }
+ panic(output)
+}
+
+// ======== //
+// = emit = //
+// ======== //
+
+func standardEmit() _emit {
+ return _emitWriter{
+ writer: os.Stderr,
+ }
+}
+
+func ln(tmp string) string {
+ length := len(tmp)
+ if length > 0 && tmp[length-1] != '\n' {
+ return tmp + "\n"
+ }
+ return tmp
+}
+
+type _emit interface {
+ emit(_frmt, string, ...interface{})
+}
+
+type _emitWriter struct {
+ writer io.Writer
+}
+
+func (self _emitWriter) emit(frmt _frmt, format string, values ...interface{}) {
+ if format == "" {
+ fmt.Fprintln(self.writer, values...)
+ } else {
+ if frmt.panic {
+ panic(fmt.Sprintf(format, values...))
+ }
+ fmt.Fprintf(self.writer, ln(format), values...)
+ if frmt.fatal {
+ os.Exit(1)
+ }
+ }
+}
+
+type _emitLogger struct {
+ logger *log.Logger
+}
+
+func (self _emitLogger) emit(frmt _frmt, format string, values ...interface{}) {
+ if format == "" {
+ self.logger.Println(values...)
+ } else {
+ if frmt.panic {
+ self.logger.Panicf(format, values...)
+ } else if frmt.fatal {
+ self.logger.Fatalf(format, values...)
+ } else {
+ self.logger.Printf(format, values...)
+ }
+ }
+}
+
+type _emitLog struct {
+}
+
+func (self _emitLog) emit(frmt _frmt, format string, values ...interface{}) {
+ if format == "" {
+ log.Println(values...)
+ } else {
+ if frmt.panic {
+ log.Panicf(format, values...)
+ } else if frmt.fatal {
+ log.Fatalf(format, values...)
+ } else {
+ log.Printf(format, values...)
+ }
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/error.go b/vendor/github.com/robertkrimen/otto/error.go
new file mode 100644
index 000000000..41a5c10e7
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/error.go
@@ -0,0 +1,252 @@
+package otto
+
+import (
+ "errors"
+ "fmt"
+
+ "github.com/robertkrimen/otto/file"
+)
+
+type _exception struct {
+ value interface{}
+}
+
+func newException(value interface{}) *_exception {
+ return &_exception{
+ value: value,
+ }
+}
+
+func (self *_exception) eject() interface{} {
+ value := self.value
+ self.value = nil // Prevent Go from holding on to the value, whatever it is
+ return value
+}
+
+type _error struct {
+ name string
+ message string
+ trace []_frame
+
+ offset int
+}
+
+func (err _error) format() string {
+ if len(err.name) == 0 {
+ return err.message
+ }
+ if len(err.message) == 0 {
+ return err.name
+ }
+ return fmt.Sprintf("%s: %s", err.name, err.message)
+}
+
+func (err _error) formatWithStack() string {
+ str := err.format() + "\n"
+ for _, frame := range err.trace {
+ str += " at " + frame.location() + "\n"
+ }
+ return str
+}
+
+type _frame struct {
+ native bool
+ nativeFile string
+ nativeLine int
+ file *file.File
+ offset int
+ callee string
+}
+
+var (
+ nativeFrame = _frame{}
+)
+
+type _at int
+
+func (fr _frame) location() string {
+ str := "<unknown>"
+
+ switch {
+ case fr.native:
+ str = "<native code>"
+ if fr.nativeFile != "" && fr.nativeLine != 0 {
+ str = fmt.Sprintf("%s:%d", fr.nativeFile, fr.nativeLine)
+ }
+ case fr.file != nil:
+ if p := fr.file.Position(file.Idx(fr.offset)); p != nil {
+ path, line, column := p.Filename, p.Line, p.Column
+
+ if path == "" {
+ path = "<anonymous>"
+ }
+
+ str = fmt.Sprintf("%s:%d:%d", path, line, column)
+ }
+ }
+
+ if fr.callee != "" {
+ str = fmt.Sprintf("%s (%s)", fr.callee, str)
+ }
+
+ return str
+}
+
+// An Error represents a runtime error, e.g. a TypeError, a ReferenceError, etc.
+type Error struct {
+ _error
+}
+
+// Error returns a description of the error
+//
+// TypeError: 'def' is not a function
+//
+func (err Error) Error() string {
+ return err.format()
+}
+
+// String returns a description of the error and a trace of where the
+// error occurred.
+//
+// TypeError: 'def' is not a function
+// at xyz (<anonymous>:3:9)
+// at <anonymous>:7:1/
+//
+func (err Error) String() string {
+ return err.formatWithStack()
+}
+
+func (err _error) describe(format string, in ...interface{}) string {
+ return fmt.Sprintf(format, in...)
+}
+
+func (self _error) messageValue() Value {
+ if self.message == "" {
+ return Value{}
+ }
+ return toValue_string(self.message)
+}
+
+func (rt *_runtime) typeErrorResult(throw bool) bool {
+ if throw {
+ panic(rt.panicTypeError())
+ }
+ return false
+}
+
+func newError(rt *_runtime, name string, stackFramesToPop int, in ...interface{}) _error {
+ err := _error{
+ name: name,
+ offset: -1,
+ }
+ description := ""
+ length := len(in)
+
+ if rt != nil && rt.scope != nil {
+ scope := rt.scope
+
+ for i := 0; i < stackFramesToPop; i++ {
+ if scope.outer != nil {
+ scope = scope.outer
+ }
+ }
+
+ frame := scope.frame
+
+ if length > 0 {
+ if at, ok := in[length-1].(_at); ok {
+ in = in[0 : length-1]
+ if scope != nil {
+ frame.offset = int(at)
+ }
+ length--
+ }
+ if length > 0 {
+ description, in = in[0].(string), in[1:]
+ }
+ }
+
+ limit := rt.traceLimit
+
+ err.trace = append(err.trace, frame)
+ if scope != nil {
+ for scope = scope.outer; scope != nil; scope = scope.outer {
+ if limit--; limit == 0 {
+ break
+ }
+
+ if scope.frame.offset >= 0 {
+ err.trace = append(err.trace, scope.frame)
+ }
+ }
+ }
+ } else {
+ if length > 0 {
+ description, in = in[0].(string), in[1:]
+ }
+ }
+ err.message = err.describe(description, in...)
+
+ return err
+}
+
+func (rt *_runtime) panicTypeError(argumentList ...interface{}) *_exception {
+ return &_exception{
+ value: newError(rt, "TypeError", 0, argumentList...),
+ }
+}
+
+func (rt *_runtime) panicReferenceError(argumentList ...interface{}) *_exception {
+ return &_exception{
+ value: newError(rt, "ReferenceError", 0, argumentList...),
+ }
+}
+
+func (rt *_runtime) panicURIError(argumentList ...interface{}) *_exception {
+ return &_exception{
+ value: newError(rt, "URIError", 0, argumentList...),
+ }
+}
+
+func (rt *_runtime) panicSyntaxError(argumentList ...interface{}) *_exception {
+ return &_exception{
+ value: newError(rt, "SyntaxError", 0, argumentList...),
+ }
+}
+
+func (rt *_runtime) panicRangeError(argumentList ...interface{}) *_exception {
+ return &_exception{
+ value: newError(rt, "RangeError", 0, argumentList...),
+ }
+}
+
+func catchPanic(function func()) (err error) {
+ defer func() {
+ if caught := recover(); caught != nil {
+ if exception, ok := caught.(*_exception); ok {
+ caught = exception.eject()
+ }
+ switch caught := caught.(type) {
+ case *Error:
+ err = caught
+ return
+ case _error:
+ err = &Error{caught}
+ return
+ case Value:
+ if vl := caught._object(); vl != nil {
+ switch vl := vl.value.(type) {
+ case _error:
+ err = &Error{vl}
+ return
+ }
+ }
+ err = errors.New(caught.string())
+ return
+ }
+ panic(caught)
+ }
+ }()
+ function()
+ return nil
+}
diff --git a/vendor/github.com/robertkrimen/otto/evaluate.go b/vendor/github.com/robertkrimen/otto/evaluate.go
new file mode 100644
index 000000000..093054cc3
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/evaluate.go
@@ -0,0 +1,318 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "strings"
+
+ "github.com/robertkrimen/otto/token"
+)
+
+func (self *_runtime) evaluateMultiply(left float64, right float64) Value {
+ // TODO 11.5.1
+ return Value{}
+}
+
+func (self *_runtime) evaluateDivide(left float64, right float64) Value {
+ if math.IsNaN(left) || math.IsNaN(right) {
+ return NaNValue()
+ }
+ if math.IsInf(left, 0) && math.IsInf(right, 0) {
+ return NaNValue()
+ }
+ if left == 0 && right == 0 {
+ return NaNValue()
+ }
+ if math.IsInf(left, 0) {
+ if math.Signbit(left) == math.Signbit(right) {
+ return positiveInfinityValue()
+ } else {
+ return negativeInfinityValue()
+ }
+ }
+ if math.IsInf(right, 0) {
+ if math.Signbit(left) == math.Signbit(right) {
+ return positiveZeroValue()
+ } else {
+ return negativeZeroValue()
+ }
+ }
+ if right == 0 {
+ if math.Signbit(left) == math.Signbit(right) {
+ return positiveInfinityValue()
+ } else {
+ return negativeInfinityValue()
+ }
+ }
+ return toValue_float64(left / right)
+}
+
+func (self *_runtime) evaluateModulo(left float64, right float64) Value {
+ // TODO 11.5.3
+ return Value{}
+}
+
+func (self *_runtime) calculateBinaryExpression(operator token.Token, left Value, right Value) Value {
+
+ leftValue := left.resolve()
+
+ switch operator {
+
+ // Additive
+ case token.PLUS:
+ leftValue = toPrimitive(leftValue)
+ rightValue := right.resolve()
+ rightValue = toPrimitive(rightValue)
+
+ if leftValue.IsString() || rightValue.IsString() {
+ return toValue_string(strings.Join([]string{leftValue.string(), rightValue.string()}, ""))
+ } else {
+ return toValue_float64(leftValue.float64() + rightValue.float64())
+ }
+ case token.MINUS:
+ rightValue := right.resolve()
+ return toValue_float64(leftValue.float64() - rightValue.float64())
+
+ // Multiplicative
+ case token.MULTIPLY:
+ rightValue := right.resolve()
+ return toValue_float64(leftValue.float64() * rightValue.float64())
+ case token.SLASH:
+ rightValue := right.resolve()
+ return self.evaluateDivide(leftValue.float64(), rightValue.float64())
+ case token.REMAINDER:
+ rightValue := right.resolve()
+ return toValue_float64(math.Mod(leftValue.float64(), rightValue.float64()))
+
+ // Logical
+ case token.LOGICAL_AND:
+ left := leftValue.bool()
+ if !left {
+ return falseValue
+ }
+ return toValue_bool(right.resolve().bool())
+ case token.LOGICAL_OR:
+ left := leftValue.bool()
+ if left {
+ return trueValue
+ }
+ return toValue_bool(right.resolve().bool())
+
+ // Bitwise
+ case token.AND:
+ rightValue := right.resolve()
+ return toValue_int32(toInt32(leftValue) & toInt32(rightValue))
+ case token.OR:
+ rightValue := right.resolve()
+ return toValue_int32(toInt32(leftValue) | toInt32(rightValue))
+ case token.EXCLUSIVE_OR:
+ rightValue := right.resolve()
+ return toValue_int32(toInt32(leftValue) ^ toInt32(rightValue))
+
+ // Shift
+ // (Masking of 0x1f is to restrict the shift to a maximum of 31 places)
+ case token.SHIFT_LEFT:
+ rightValue := right.resolve()
+ return toValue_int32(toInt32(leftValue) << (toUint32(rightValue) & 0x1f))
+ case token.SHIFT_RIGHT:
+ rightValue := right.resolve()
+ return toValue_int32(toInt32(leftValue) >> (toUint32(rightValue) & 0x1f))
+ case token.UNSIGNED_SHIFT_RIGHT:
+ rightValue := right.resolve()
+ // Shifting an unsigned integer is a logical shift
+ return toValue_uint32(toUint32(leftValue) >> (toUint32(rightValue) & 0x1f))
+
+ case token.INSTANCEOF:
+ rightValue := right.resolve()
+ if !rightValue.IsObject() {
+ panic(self.panicTypeError("Expecting a function in instanceof check, but got: %v", rightValue))
+ }
+ return toValue_bool(rightValue._object().hasInstance(leftValue))
+
+ case token.IN:
+ rightValue := right.resolve()
+ if !rightValue.IsObject() {
+ panic(self.panicTypeError())
+ }
+ return toValue_bool(rightValue._object().hasProperty(leftValue.string()))
+ }
+
+ panic(hereBeDragons(operator))
+}
+
+func valueKindDispatchKey(left _valueKind, right _valueKind) int {
+ return (int(left) << 2) + int(right)
+}
+
+var equalDispatch map[int](func(Value, Value) bool) = makeEqualDispatch()
+
+func makeEqualDispatch() map[int](func(Value, Value) bool) {
+ key := valueKindDispatchKey
+ return map[int](func(Value, Value) bool){
+
+ key(valueNumber, valueObject): func(x Value, y Value) bool { return x.float64() == y.float64() },
+ key(valueString, valueObject): func(x Value, y Value) bool { return x.float64() == y.float64() },
+ key(valueObject, valueNumber): func(x Value, y Value) bool { return x.float64() == y.float64() },
+ key(valueObject, valueString): func(x Value, y Value) bool { return x.float64() == y.float64() },
+ }
+}
+
+type _lessThanResult int
+
+const (
+ lessThanFalse _lessThanResult = iota
+ lessThanTrue
+ lessThanUndefined
+)
+
+func calculateLessThan(left Value, right Value, leftFirst bool) _lessThanResult {
+
+ x := Value{}
+ y := x
+
+ if leftFirst {
+ x = toNumberPrimitive(left)
+ y = toNumberPrimitive(right)
+ } else {
+ y = toNumberPrimitive(right)
+ x = toNumberPrimitive(left)
+ }
+
+ result := false
+ if x.kind != valueString || y.kind != valueString {
+ x, y := x.float64(), y.float64()
+ if math.IsNaN(x) || math.IsNaN(y) {
+ return lessThanUndefined
+ }
+ result = x < y
+ } else {
+ x, y := x.string(), y.string()
+ result = x < y
+ }
+
+ if result {
+ return lessThanTrue
+ }
+
+ return lessThanFalse
+}
+
+// FIXME Probably a map is not the most efficient way to do this
+var lessThanTable [4](map[_lessThanResult]bool) = [4](map[_lessThanResult]bool){
+ // <
+ map[_lessThanResult]bool{
+ lessThanFalse: false,
+ lessThanTrue: true,
+ lessThanUndefined: false,
+ },
+
+ // >
+ map[_lessThanResult]bool{
+ lessThanFalse: false,
+ lessThanTrue: true,
+ lessThanUndefined: false,
+ },
+
+ // <=
+ map[_lessThanResult]bool{
+ lessThanFalse: true,
+ lessThanTrue: false,
+ lessThanUndefined: false,
+ },
+
+ // >=
+ map[_lessThanResult]bool{
+ lessThanFalse: true,
+ lessThanTrue: false,
+ lessThanUndefined: false,
+ },
+}
+
+func (self *_runtime) calculateComparison(comparator token.Token, left Value, right Value) bool {
+
+ // FIXME Use strictEqualityComparison?
+ // TODO This might be redundant now (with regards to evaluateComparison)
+ x := left.resolve()
+ y := right.resolve()
+
+ kindEqualKind := false
+ result := true
+ negate := false
+
+ switch comparator {
+ case token.LESS:
+ result = lessThanTable[0][calculateLessThan(x, y, true)]
+ case token.GREATER:
+ result = lessThanTable[1][calculateLessThan(y, x, false)]
+ case token.LESS_OR_EQUAL:
+ result = lessThanTable[2][calculateLessThan(y, x, false)]
+ case token.GREATER_OR_EQUAL:
+ result = lessThanTable[3][calculateLessThan(x, y, true)]
+ case token.STRICT_NOT_EQUAL:
+ negate = true
+ fallthrough
+ case token.STRICT_EQUAL:
+ if x.kind != y.kind {
+ result = false
+ } else {
+ kindEqualKind = true
+ }
+ case token.NOT_EQUAL:
+ negate = true
+ fallthrough
+ case token.EQUAL:
+ if x.kind == y.kind {
+ kindEqualKind = true
+ } else if x.kind <= valueNull && y.kind <= valueNull {
+ result = true
+ } else if x.kind <= valueNull || y.kind <= valueNull {
+ result = false
+ } else if x.kind <= valueString && y.kind <= valueString {
+ result = x.float64() == y.float64()
+ } else if x.kind == valueBoolean {
+ result = self.calculateComparison(token.EQUAL, toValue_float64(x.float64()), y)
+ } else if y.kind == valueBoolean {
+ result = self.calculateComparison(token.EQUAL, x, toValue_float64(y.float64()))
+ } else if x.kind == valueObject {
+ result = self.calculateComparison(token.EQUAL, toPrimitive(x), y)
+ } else if y.kind == valueObject {
+ result = self.calculateComparison(token.EQUAL, x, toPrimitive(y))
+ } else {
+ panic(hereBeDragons("Unable to test for equality: %v ==? %v", x, y))
+ }
+ default:
+ panic(fmt.Errorf("Unknown comparator %s", comparator.String()))
+ }
+
+ if kindEqualKind {
+ switch x.kind {
+ case valueUndefined, valueNull:
+ result = true
+ case valueNumber:
+ x := x.float64()
+ y := y.float64()
+ if math.IsNaN(x) || math.IsNaN(y) {
+ result = false
+ } else {
+ result = x == y
+ }
+ case valueString:
+ result = x.string() == y.string()
+ case valueBoolean:
+ result = x.bool() == y.bool()
+ case valueObject:
+ result = x._object() == y._object()
+ default:
+ goto ERROR
+ }
+ }
+
+ if negate {
+ result = !result
+ }
+
+ return result
+
+ERROR:
+ panic(hereBeDragons("%v (%v) %s %v (%v)", x, x.kind, comparator, y, y.kind))
+}
diff --git a/vendor/github.com/robertkrimen/otto/file/README.markdown b/vendor/github.com/robertkrimen/otto/file/README.markdown
new file mode 100644
index 000000000..79757baa8
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/file/README.markdown
@@ -0,0 +1,110 @@
+# file
+--
+ import "github.com/robertkrimen/otto/file"
+
+Package file encapsulates the file abstractions used by the ast & parser.
+
+## Usage
+
+#### type File
+
+```go
+type File struct {
+}
+```
+
+
+#### func NewFile
+
+```go
+func NewFile(filename, src string, base int) *File
+```
+
+#### func (*File) Base
+
+```go
+func (fl *File) Base() int
+```
+
+#### func (*File) Name
+
+```go
+func (fl *File) Name() string
+```
+
+#### func (*File) Source
+
+```go
+func (fl *File) Source() string
+```
+
+#### type FileSet
+
+```go
+type FileSet struct {
+}
+```
+
+A FileSet represents a set of source files.
+
+#### func (*FileSet) AddFile
+
+```go
+func (self *FileSet) AddFile(filename, src string) int
+```
+AddFile adds a new file with the given filename and src.
+
+This an internal method, but exported for cross-package use.
+
+#### func (*FileSet) File
+
+```go
+func (self *FileSet) File(idx Idx) *File
+```
+
+#### func (*FileSet) Position
+
+```go
+func (self *FileSet) Position(idx Idx) *Position
+```
+Position converts an Idx in the FileSet into a Position.
+
+#### type Idx
+
+```go
+type Idx int
+```
+
+Idx is a compact encoding of a source position within a file set. It can be
+converted into a Position for a more convenient, but much larger,
+representation.
+
+#### type Position
+
+```go
+type Position struct {
+ Filename string // The filename where the error occurred, if any
+ Offset int // The src offset
+ Line int // The line number, starting at 1
+ Column int // The column number, starting at 1 (The character count)
+
+}
+```
+
+Position describes an arbitrary source position including the filename, line,
+and column location.
+
+#### func (*Position) String
+
+```go
+func (self *Position) String() string
+```
+String returns a string in one of several forms:
+
+ file:line:column A valid position with filename
+ line:column A valid position without filename
+ file An invalid position with filename
+ - An invalid position without filename
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/file/file.go b/vendor/github.com/robertkrimen/otto/file/file.go
new file mode 100644
index 000000000..9093206e8
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/file/file.go
@@ -0,0 +1,164 @@
+// Package file encapsulates the file abstractions used by the ast & parser.
+//
+package file
+
+import (
+ "fmt"
+ "strings"
+
+ "gopkg.in/sourcemap.v1"
+)
+
+// Idx is a compact encoding of a source position within a file set.
+// It can be converted into a Position for a more convenient, but much
+// larger, representation.
+type Idx int
+
+// Position describes an arbitrary source position
+// including the filename, line, and column location.
+type Position struct {
+ Filename string // The filename where the error occurred, if any
+ Offset int // The src offset
+ Line int // The line number, starting at 1
+ Column int // The column number, starting at 1 (The character count)
+
+}
+
+// A Position is valid if the line number is > 0.
+
+func (self *Position) isValid() bool {
+ return self.Line > 0
+}
+
+// String returns a string in one of several forms:
+//
+// file:line:column A valid position with filename
+// line:column A valid position without filename
+// file An invalid position with filename
+// - An invalid position without filename
+//
+func (self *Position) String() string {
+ str := self.Filename
+ if self.isValid() {
+ if str != "" {
+ str += ":"
+ }
+ str += fmt.Sprintf("%d:%d", self.Line, self.Column)
+ }
+ if str == "" {
+ str = "-"
+ }
+ return str
+}
+
+// FileSet
+
+// A FileSet represents a set of source files.
+type FileSet struct {
+ files []*File
+ last *File
+}
+
+// AddFile adds a new file with the given filename and src.
+//
+// This an internal method, but exported for cross-package use.
+func (self *FileSet) AddFile(filename, src string) int {
+ base := self.nextBase()
+ file := &File{
+ name: filename,
+ src: src,
+ base: base,
+ }
+ self.files = append(self.files, file)
+ self.last = file
+ return base
+}
+
+func (self *FileSet) nextBase() int {
+ if self.last == nil {
+ return 1
+ }
+ return self.last.base + len(self.last.src) + 1
+}
+
+func (self *FileSet) File(idx Idx) *File {
+ for _, file := range self.files {
+ if idx <= Idx(file.base+len(file.src)) {
+ return file
+ }
+ }
+ return nil
+}
+
+// Position converts an Idx in the FileSet into a Position.
+func (self *FileSet) Position(idx Idx) *Position {
+ for _, file := range self.files {
+ if idx <= Idx(file.base+len(file.src)) {
+ return file.Position(idx - Idx(file.base))
+ }
+ }
+
+ return nil
+}
+
+type File struct {
+ name string
+ src string
+ base int // This will always be 1 or greater
+ sm *sourcemap.Consumer
+}
+
+func NewFile(filename, src string, base int) *File {
+ return &File{
+ name: filename,
+ src: src,
+ base: base,
+ }
+}
+
+func (fl *File) WithSourceMap(sm *sourcemap.Consumer) *File {
+ fl.sm = sm
+ return fl
+}
+
+func (fl *File) Name() string {
+ return fl.name
+}
+
+func (fl *File) Source() string {
+ return fl.src
+}
+
+func (fl *File) Base() int {
+ return fl.base
+}
+
+func (fl *File) Position(idx Idx) *Position {
+ position := &Position{}
+
+ offset := int(idx) - fl.base
+
+ if offset >= len(fl.src) || offset < 0 {
+ return nil
+ }
+
+ src := fl.src[:offset]
+
+ position.Filename = fl.name
+ position.Offset = offset
+ position.Line = strings.Count(src, "\n") + 1
+
+ if index := strings.LastIndex(src, "\n"); index >= 0 {
+ position.Column = offset - index
+ } else {
+ position.Column = len(src) + 1
+ }
+
+ if fl.sm != nil {
+ if f, _, l, c, ok := fl.sm.Source(position.Line, position.Column); ok {
+ position.Filename, position.Line, position.Column = f, l, c
+ }
+ }
+
+ return position
+}
diff --git a/vendor/github.com/robertkrimen/otto/global.go b/vendor/github.com/robertkrimen/otto/global.go
new file mode 100644
index 000000000..eb2a2a0fb
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/global.go
@@ -0,0 +1,221 @@
+package otto
+
+import (
+ "strconv"
+ "time"
+)
+
+var (
+ prototypeValueObject = interface{}(nil)
+ prototypeValueFunction = _nativeFunctionObject{
+ call: func(_ FunctionCall) Value {
+ return Value{}
+ },
+ }
+ prototypeValueString = _stringASCII("")
+ // TODO Make this just false?
+ prototypeValueBoolean = Value{
+ kind: valueBoolean,
+ value: false,
+ }
+ prototypeValueNumber = Value{
+ kind: valueNumber,
+ value: 0,
+ }
+ prototypeValueDate = _dateObject{
+ epoch: 0,
+ isNaN: false,
+ time: time.Unix(0, 0).UTC(),
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ }
+ prototypeValueRegExp = _regExpObject{
+ regularExpression: nil,
+ global: false,
+ ignoreCase: false,
+ multiline: false,
+ source: "",
+ flags: "",
+ }
+)
+
+func newContext() *_runtime {
+
+ self := &_runtime{}
+
+ self.globalStash = self.newObjectStash(nil, nil)
+ self.globalObject = self.globalStash.object
+
+ _newContext(self)
+
+ self.eval = self.globalObject.property["eval"].value.(Value).value.(*_object)
+ self.globalObject.prototype = self.global.ObjectPrototype
+
+ return self
+}
+
+func (runtime *_runtime) newBaseObject() *_object {
+ self := newObject(runtime, "")
+ return self
+}
+
+func (runtime *_runtime) newClassObject(class string) *_object {
+ return newObject(runtime, class)
+}
+
+func (runtime *_runtime) newPrimitiveObject(class string, value Value) *_object {
+ self := runtime.newClassObject(class)
+ self.value = value
+ return self
+}
+
+func (self *_object) primitiveValue() Value {
+ switch value := self.value.(type) {
+ case Value:
+ return value
+ case _stringObject:
+ return toValue_string(value.String())
+ }
+ return Value{}
+}
+
+func (self *_object) hasPrimitive() bool {
+ switch self.value.(type) {
+ case Value, _stringObject:
+ return true
+ }
+ return false
+}
+
+func (runtime *_runtime) newObject() *_object {
+ self := runtime.newClassObject("Object")
+ self.prototype = runtime.global.ObjectPrototype
+ return self
+}
+
+func (runtime *_runtime) newArray(length uint32) *_object {
+ self := runtime.newArrayObject(length)
+ self.prototype = runtime.global.ArrayPrototype
+ return self
+}
+
+func (runtime *_runtime) newArrayOf(valueArray []Value) *_object {
+ self := runtime.newArray(uint32(len(valueArray)))
+ for index, value := range valueArray {
+ if value.isEmpty() {
+ continue
+ }
+ self.defineProperty(strconv.FormatInt(int64(index), 10), value, 0111, false)
+ }
+ return self
+}
+
+func (runtime *_runtime) newString(value Value) *_object {
+ self := runtime.newStringObject(value)
+ self.prototype = runtime.global.StringPrototype
+ return self
+}
+
+func (runtime *_runtime) newBoolean(value Value) *_object {
+ self := runtime.newBooleanObject(value)
+ self.prototype = runtime.global.BooleanPrototype
+ return self
+}
+
+func (runtime *_runtime) newNumber(value Value) *_object {
+ self := runtime.newNumberObject(value)
+ self.prototype = runtime.global.NumberPrototype
+ return self
+}
+
+func (runtime *_runtime) newRegExp(patternValue Value, flagsValue Value) *_object {
+
+ pattern := ""
+ flags := ""
+ if object := patternValue._object(); object != nil && object.class == "RegExp" {
+ if flagsValue.IsDefined() {
+ panic(runtime.panicTypeError("Cannot supply flags when constructing one RegExp from another"))
+ }
+ regExp := object.regExpValue()
+ pattern = regExp.source
+ flags = regExp.flags
+ } else {
+ if patternValue.IsDefined() {
+ pattern = patternValue.string()
+ }
+ if flagsValue.IsDefined() {
+ flags = flagsValue.string()
+ }
+ }
+
+ return runtime._newRegExp(pattern, flags)
+}
+
+func (runtime *_runtime) _newRegExp(pattern string, flags string) *_object {
+ self := runtime.newRegExpObject(pattern, flags)
+ self.prototype = runtime.global.RegExpPrototype
+ return self
+}
+
+// TODO Should (probably) be one argument, right? This is redundant
+func (runtime *_runtime) newDate(epoch float64) *_object {
+ self := runtime.newDateObject(epoch)
+ self.prototype = runtime.global.DatePrototype
+ return self
+}
+
+func (runtime *_runtime) newError(name string, message Value, stackFramesToPop int) *_object {
+ var self *_object
+ switch name {
+ case "EvalError":
+ return runtime.newEvalError(message)
+ case "TypeError":
+ return runtime.newTypeError(message)
+ case "RangeError":
+ return runtime.newRangeError(message)
+ case "ReferenceError":
+ return runtime.newReferenceError(message)
+ case "SyntaxError":
+ return runtime.newSyntaxError(message)
+ case "URIError":
+ return runtime.newURIError(message)
+ }
+
+ self = runtime.newErrorObject(name, message, stackFramesToPop)
+ self.prototype = runtime.global.ErrorPrototype
+ if name != "" {
+ self.defineProperty("name", toValue_string(name), 0111, false)
+ }
+ return self
+}
+
+func (runtime *_runtime) newNativeFunction(name, file string, line int, _nativeFunction _nativeFunction) *_object {
+ self := runtime.newNativeFunctionObject(name, file, line, _nativeFunction, 0)
+ self.prototype = runtime.global.FunctionPrototype
+ prototype := runtime.newObject()
+ self.defineProperty("prototype", toValue_object(prototype), 0100, false)
+ prototype.defineProperty("constructor", toValue_object(self), 0100, false)
+ return self
+}
+
+func (runtime *_runtime) newNodeFunction(node *_nodeFunctionLiteral, scopeEnvironment _stash) *_object {
+ // TODO Implement 13.2 fully
+ self := runtime.newNodeFunctionObject(node, scopeEnvironment)
+ self.prototype = runtime.global.FunctionPrototype
+ prototype := runtime.newObject()
+ self.defineProperty("prototype", toValue_object(prototype), 0100, false)
+ prototype.defineProperty("constructor", toValue_object(self), 0101, false)
+ return self
+}
+
+// FIXME Only in one place...
+func (runtime *_runtime) newBoundFunction(target *_object, this Value, argumentList []Value) *_object {
+ self := runtime.newBoundFunctionObject(target, this, argumentList)
+ self.prototype = runtime.global.FunctionPrototype
+ prototype := runtime.newObject()
+ self.defineProperty("prototype", toValue_object(prototype), 0100, false)
+ prototype.defineProperty("constructor", toValue_object(self), 0100, false)
+ return self
+}
diff --git a/vendor/github.com/robertkrimen/otto/inline.go b/vendor/github.com/robertkrimen/otto/inline.go
new file mode 100644
index 000000000..6e5df8393
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/inline.go
@@ -0,0 +1,6649 @@
+package otto
+
+import (
+ "math"
+)
+
+func _newContext(runtime *_runtime) {
+ {
+ runtime.global.ObjectPrototype = &_object{
+ runtime: runtime,
+ class: "Object",
+ objectClass: _classObject,
+ prototype: nil,
+ extensible: true,
+ value: prototypeValueObject,
+ }
+ }
+ {
+ runtime.global.FunctionPrototype = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueFunction,
+ }
+ }
+ {
+ valueOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "valueOf",
+ call: builtinObject_valueOf,
+ },
+ }
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinObject_toString,
+ },
+ }
+ toLocaleString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleString",
+ call: builtinObject_toLocaleString,
+ },
+ }
+ hasOwnProperty_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "hasOwnProperty",
+ call: builtinObject_hasOwnProperty,
+ },
+ }
+ isPrototypeOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isPrototypeOf",
+ call: builtinObject_isPrototypeOf,
+ },
+ }
+ propertyIsEnumerable_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "propertyIsEnumerable",
+ call: builtinObject_propertyIsEnumerable,
+ },
+ }
+ runtime.global.ObjectPrototype.property = map[string]_property{
+ "valueOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: valueOf_function,
+ },
+ },
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "toLocaleString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleString_function,
+ },
+ },
+ "hasOwnProperty": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: hasOwnProperty_function,
+ },
+ },
+ "isPrototypeOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isPrototypeOf_function,
+ },
+ },
+ "propertyIsEnumerable": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: propertyIsEnumerable_function,
+ },
+ },
+ "constructor": _property{
+ mode: 0101,
+ value: Value{},
+ },
+ }
+ runtime.global.ObjectPrototype.propertyOrder = []string{
+ "valueOf",
+ "toString",
+ "toLocaleString",
+ "hasOwnProperty",
+ "isPrototypeOf",
+ "propertyIsEnumerable",
+ "constructor",
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinFunction_toString,
+ },
+ }
+ apply_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "apply",
+ call: builtinFunction_apply,
+ },
+ }
+ call_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "call",
+ call: builtinFunction_call,
+ },
+ }
+ bind_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "bind",
+ call: builtinFunction_bind,
+ },
+ }
+ runtime.global.FunctionPrototype.property = map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "apply": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: apply_function,
+ },
+ },
+ "call": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: call_function,
+ },
+ },
+ "bind": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: bind_function,
+ },
+ },
+ "constructor": _property{
+ mode: 0101,
+ value: Value{},
+ },
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ }
+ runtime.global.FunctionPrototype.propertyOrder = []string{
+ "toString",
+ "apply",
+ "call",
+ "bind",
+ "constructor",
+ "length",
+ }
+ }
+ {
+ getPrototypeOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getPrototypeOf",
+ call: builtinObject_getPrototypeOf,
+ },
+ }
+ getOwnPropertyDescriptor_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getOwnPropertyDescriptor",
+ call: builtinObject_getOwnPropertyDescriptor,
+ },
+ }
+ defineProperty_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "defineProperty",
+ call: builtinObject_defineProperty,
+ },
+ }
+ defineProperties_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "defineProperties",
+ call: builtinObject_defineProperties,
+ },
+ }
+ create_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "create",
+ call: builtinObject_create,
+ },
+ }
+ isExtensible_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isExtensible",
+ call: builtinObject_isExtensible,
+ },
+ }
+ preventExtensions_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "preventExtensions",
+ call: builtinObject_preventExtensions,
+ },
+ }
+ isSealed_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isSealed",
+ call: builtinObject_isSealed,
+ },
+ }
+ seal_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "seal",
+ call: builtinObject_seal,
+ },
+ }
+ isFrozen_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isFrozen",
+ call: builtinObject_isFrozen,
+ },
+ }
+ freeze_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "freeze",
+ call: builtinObject_freeze,
+ },
+ }
+ keys_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "keys",
+ call: builtinObject_keys,
+ },
+ }
+ getOwnPropertyNames_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getOwnPropertyNames",
+ call: builtinObject_getOwnPropertyNames,
+ },
+ }
+ runtime.global.Object = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Object",
+ call: builtinObject,
+ construct: builtinNewObject,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ObjectPrototype,
+ },
+ },
+ "getPrototypeOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getPrototypeOf_function,
+ },
+ },
+ "getOwnPropertyDescriptor": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getOwnPropertyDescriptor_function,
+ },
+ },
+ "defineProperty": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: defineProperty_function,
+ },
+ },
+ "defineProperties": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: defineProperties_function,
+ },
+ },
+ "create": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: create_function,
+ },
+ },
+ "isExtensible": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isExtensible_function,
+ },
+ },
+ "preventExtensions": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: preventExtensions_function,
+ },
+ },
+ "isSealed": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isSealed_function,
+ },
+ },
+ "seal": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: seal_function,
+ },
+ },
+ "isFrozen": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isFrozen_function,
+ },
+ },
+ "freeze": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: freeze_function,
+ },
+ },
+ "keys": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: keys_function,
+ },
+ },
+ "getOwnPropertyNames": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getOwnPropertyNames_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ "getPrototypeOf",
+ "getOwnPropertyDescriptor",
+ "defineProperty",
+ "defineProperties",
+ "create",
+ "isExtensible",
+ "preventExtensions",
+ "isSealed",
+ "seal",
+ "isFrozen",
+ "freeze",
+ "keys",
+ "getOwnPropertyNames",
+ },
+ }
+ runtime.global.ObjectPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Object,
+ },
+ }
+ }
+ {
+ Function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Function",
+ call: builtinFunction,
+ construct: builtinNewFunction,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.FunctionPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.Function = Function
+ runtime.global.FunctionPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Function,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinArray_toString,
+ },
+ }
+ toLocaleString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleString",
+ call: builtinArray_toLocaleString,
+ },
+ }
+ concat_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "concat",
+ call: builtinArray_concat,
+ },
+ }
+ join_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "join",
+ call: builtinArray_join,
+ },
+ }
+ splice_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "splice",
+ call: builtinArray_splice,
+ },
+ }
+ shift_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "shift",
+ call: builtinArray_shift,
+ },
+ }
+ pop_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "pop",
+ call: builtinArray_pop,
+ },
+ }
+ push_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "push",
+ call: builtinArray_push,
+ },
+ }
+ slice_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "slice",
+ call: builtinArray_slice,
+ },
+ }
+ unshift_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "unshift",
+ call: builtinArray_unshift,
+ },
+ }
+ reverse_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "reverse",
+ call: builtinArray_reverse,
+ },
+ }
+ sort_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "sort",
+ call: builtinArray_sort,
+ },
+ }
+ indexOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "indexOf",
+ call: builtinArray_indexOf,
+ },
+ }
+ lastIndexOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "lastIndexOf",
+ call: builtinArray_lastIndexOf,
+ },
+ }
+ every_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "every",
+ call: builtinArray_every,
+ },
+ }
+ some_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "some",
+ call: builtinArray_some,
+ },
+ }
+ forEach_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "forEach",
+ call: builtinArray_forEach,
+ },
+ }
+ map_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "map",
+ call: builtinArray_map,
+ },
+ }
+ filter_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "filter",
+ call: builtinArray_filter,
+ },
+ }
+ reduce_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "reduce",
+ call: builtinArray_reduce,
+ },
+ }
+ reduceRight_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "reduceRight",
+ call: builtinArray_reduceRight,
+ },
+ }
+ isArray_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isArray",
+ call: builtinArray_isArray,
+ },
+ }
+ runtime.global.ArrayPrototype = &_object{
+ runtime: runtime,
+ class: "Array",
+ objectClass: _classArray,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0100,
+ value: Value{
+ kind: valueNumber,
+ value: uint32(0),
+ },
+ },
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "toLocaleString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleString_function,
+ },
+ },
+ "concat": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: concat_function,
+ },
+ },
+ "join": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: join_function,
+ },
+ },
+ "splice": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: splice_function,
+ },
+ },
+ "shift": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: shift_function,
+ },
+ },
+ "pop": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: pop_function,
+ },
+ },
+ "push": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: push_function,
+ },
+ },
+ "slice": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: slice_function,
+ },
+ },
+ "unshift": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: unshift_function,
+ },
+ },
+ "reverse": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: reverse_function,
+ },
+ },
+ "sort": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: sort_function,
+ },
+ },
+ "indexOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: indexOf_function,
+ },
+ },
+ "lastIndexOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: lastIndexOf_function,
+ },
+ },
+ "every": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: every_function,
+ },
+ },
+ "some": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: some_function,
+ },
+ },
+ "forEach": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: forEach_function,
+ },
+ },
+ "map": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: map_function,
+ },
+ },
+ "filter": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: filter_function,
+ },
+ },
+ "reduce": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: reduce_function,
+ },
+ },
+ "reduceRight": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: reduceRight_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "toString",
+ "toLocaleString",
+ "concat",
+ "join",
+ "splice",
+ "shift",
+ "pop",
+ "push",
+ "slice",
+ "unshift",
+ "reverse",
+ "sort",
+ "indexOf",
+ "lastIndexOf",
+ "every",
+ "some",
+ "forEach",
+ "map",
+ "filter",
+ "reduce",
+ "reduceRight",
+ },
+ }
+ runtime.global.Array = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Array",
+ call: builtinArray,
+ construct: builtinNewArray,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ArrayPrototype,
+ },
+ },
+ "isArray": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isArray_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ "isArray",
+ },
+ }
+ runtime.global.ArrayPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Array,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinString_toString,
+ },
+ }
+ valueOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "valueOf",
+ call: builtinString_valueOf,
+ },
+ }
+ charAt_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "charAt",
+ call: builtinString_charAt,
+ },
+ }
+ charCodeAt_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "charCodeAt",
+ call: builtinString_charCodeAt,
+ },
+ }
+ concat_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "concat",
+ call: builtinString_concat,
+ },
+ }
+ indexOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "indexOf",
+ call: builtinString_indexOf,
+ },
+ }
+ lastIndexOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "lastIndexOf",
+ call: builtinString_lastIndexOf,
+ },
+ }
+ match_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "match",
+ call: builtinString_match,
+ },
+ }
+ replace_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "replace",
+ call: builtinString_replace,
+ },
+ }
+ search_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "search",
+ call: builtinString_search,
+ },
+ }
+ split_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "split",
+ call: builtinString_split,
+ },
+ }
+ slice_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "slice",
+ call: builtinString_slice,
+ },
+ }
+ substring_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "substring",
+ call: builtinString_substring,
+ },
+ }
+ toLowerCase_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLowerCase",
+ call: builtinString_toLowerCase,
+ },
+ }
+ toUpperCase_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toUpperCase",
+ call: builtinString_toUpperCase,
+ },
+ }
+ substr_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "substr",
+ call: builtinString_substr,
+ },
+ }
+ trim_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "trim",
+ call: builtinString_trim,
+ },
+ }
+ trimLeft_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "trimLeft",
+ call: builtinString_trimLeft,
+ },
+ }
+ trimRight_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "trimRight",
+ call: builtinString_trimRight,
+ },
+ }
+ localeCompare_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "localeCompare",
+ call: builtinString_localeCompare,
+ },
+ }
+ toLocaleLowerCase_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleLowerCase",
+ call: builtinString_toLocaleLowerCase,
+ },
+ }
+ toLocaleUpperCase_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleUpperCase",
+ call: builtinString_toLocaleUpperCase,
+ },
+ }
+ fromCharCode_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "fromCharCode",
+ call: builtinString_fromCharCode,
+ },
+ }
+ runtime.global.StringPrototype = &_object{
+ runtime: runtime,
+ class: "String",
+ objectClass: _classString,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueString,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: int(0),
+ },
+ },
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "valueOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: valueOf_function,
+ },
+ },
+ "charAt": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: charAt_function,
+ },
+ },
+ "charCodeAt": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: charCodeAt_function,
+ },
+ },
+ "concat": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: concat_function,
+ },
+ },
+ "indexOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: indexOf_function,
+ },
+ },
+ "lastIndexOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: lastIndexOf_function,
+ },
+ },
+ "match": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: match_function,
+ },
+ },
+ "replace": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: replace_function,
+ },
+ },
+ "search": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: search_function,
+ },
+ },
+ "split": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: split_function,
+ },
+ },
+ "slice": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: slice_function,
+ },
+ },
+ "substring": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: substring_function,
+ },
+ },
+ "toLowerCase": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLowerCase_function,
+ },
+ },
+ "toUpperCase": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toUpperCase_function,
+ },
+ },
+ "substr": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: substr_function,
+ },
+ },
+ "trim": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: trim_function,
+ },
+ },
+ "trimLeft": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: trimLeft_function,
+ },
+ },
+ "trimRight": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: trimRight_function,
+ },
+ },
+ "localeCompare": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: localeCompare_function,
+ },
+ },
+ "toLocaleLowerCase": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleLowerCase_function,
+ },
+ },
+ "toLocaleUpperCase": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleUpperCase_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "toString",
+ "valueOf",
+ "charAt",
+ "charCodeAt",
+ "concat",
+ "indexOf",
+ "lastIndexOf",
+ "match",
+ "replace",
+ "search",
+ "split",
+ "slice",
+ "substring",
+ "toLowerCase",
+ "toUpperCase",
+ "substr",
+ "trim",
+ "trimLeft",
+ "trimRight",
+ "localeCompare",
+ "toLocaleLowerCase",
+ "toLocaleUpperCase",
+ },
+ }
+ runtime.global.String = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "String",
+ call: builtinString,
+ construct: builtinNewString,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.StringPrototype,
+ },
+ },
+ "fromCharCode": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: fromCharCode_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ "fromCharCode",
+ },
+ }
+ runtime.global.StringPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.String,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinBoolean_toString,
+ },
+ }
+ valueOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "valueOf",
+ call: builtinBoolean_valueOf,
+ },
+ }
+ runtime.global.BooleanPrototype = &_object{
+ runtime: runtime,
+ class: "Boolean",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueBoolean,
+ property: map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "valueOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: valueOf_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "toString",
+ "valueOf",
+ },
+ }
+ runtime.global.Boolean = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Boolean",
+ call: builtinBoolean,
+ construct: builtinNewBoolean,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.BooleanPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.BooleanPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Boolean,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinNumber_toString,
+ },
+ }
+ valueOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "valueOf",
+ call: builtinNumber_valueOf,
+ },
+ }
+ toFixed_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toFixed",
+ call: builtinNumber_toFixed,
+ },
+ }
+ toExponential_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toExponential",
+ call: builtinNumber_toExponential,
+ },
+ }
+ toPrecision_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toPrecision",
+ call: builtinNumber_toPrecision,
+ },
+ }
+ toLocaleString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleString",
+ call: builtinNumber_toLocaleString,
+ },
+ }
+ runtime.global.NumberPrototype = &_object{
+ runtime: runtime,
+ class: "Number",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueNumber,
+ property: map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "valueOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: valueOf_function,
+ },
+ },
+ "toFixed": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toFixed_function,
+ },
+ },
+ "toExponential": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toExponential_function,
+ },
+ },
+ "toPrecision": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toPrecision_function,
+ },
+ },
+ "toLocaleString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleString_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "toString",
+ "valueOf",
+ "toFixed",
+ "toExponential",
+ "toPrecision",
+ "toLocaleString",
+ },
+ }
+ runtime.global.Number = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Number",
+ call: builtinNumber,
+ construct: builtinNewNumber,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.NumberPrototype,
+ },
+ },
+ "MAX_VALUE": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.MaxFloat64,
+ },
+ },
+ "MIN_VALUE": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.SmallestNonzeroFloat64,
+ },
+ },
+ "NaN": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.NaN(),
+ },
+ },
+ "NEGATIVE_INFINITY": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Inf(-1),
+ },
+ },
+ "POSITIVE_INFINITY": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Inf(+1),
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ "MAX_VALUE",
+ "MIN_VALUE",
+ "NaN",
+ "NEGATIVE_INFINITY",
+ "POSITIVE_INFINITY",
+ },
+ }
+ runtime.global.NumberPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Number,
+ },
+ }
+ }
+ {
+ abs_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "abs",
+ call: builtinMath_abs,
+ },
+ }
+ acos_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "acos",
+ call: builtinMath_acos,
+ },
+ }
+ asin_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "asin",
+ call: builtinMath_asin,
+ },
+ }
+ atan_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "atan",
+ call: builtinMath_atan,
+ },
+ }
+ atan2_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "atan2",
+ call: builtinMath_atan2,
+ },
+ }
+ ceil_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "ceil",
+ call: builtinMath_ceil,
+ },
+ }
+ cos_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "cos",
+ call: builtinMath_cos,
+ },
+ }
+ exp_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "exp",
+ call: builtinMath_exp,
+ },
+ }
+ floor_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "floor",
+ call: builtinMath_floor,
+ },
+ }
+ log_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "log",
+ call: builtinMath_log,
+ },
+ }
+ max_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "max",
+ call: builtinMath_max,
+ },
+ }
+ min_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "min",
+ call: builtinMath_min,
+ },
+ }
+ pow_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "pow",
+ call: builtinMath_pow,
+ },
+ }
+ random_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "random",
+ call: builtinMath_random,
+ },
+ }
+ round_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "round",
+ call: builtinMath_round,
+ },
+ }
+ sin_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "sin",
+ call: builtinMath_sin,
+ },
+ }
+ sqrt_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "sqrt",
+ call: builtinMath_sqrt,
+ },
+ }
+ tan_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "tan",
+ call: builtinMath_tan,
+ },
+ }
+ runtime.global.Math = &_object{
+ runtime: runtime,
+ class: "Math",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "abs": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: abs_function,
+ },
+ },
+ "acos": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: acos_function,
+ },
+ },
+ "asin": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: asin_function,
+ },
+ },
+ "atan": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: atan_function,
+ },
+ },
+ "atan2": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: atan2_function,
+ },
+ },
+ "ceil": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: ceil_function,
+ },
+ },
+ "cos": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: cos_function,
+ },
+ },
+ "exp": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: exp_function,
+ },
+ },
+ "floor": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: floor_function,
+ },
+ },
+ "log": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: log_function,
+ },
+ },
+ "max": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: max_function,
+ },
+ },
+ "min": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: min_function,
+ },
+ },
+ "pow": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: pow_function,
+ },
+ },
+ "random": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: random_function,
+ },
+ },
+ "round": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: round_function,
+ },
+ },
+ "sin": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: sin_function,
+ },
+ },
+ "sqrt": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: sqrt_function,
+ },
+ },
+ "tan": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: tan_function,
+ },
+ },
+ "E": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.E,
+ },
+ },
+ "LN10": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Ln10,
+ },
+ },
+ "LN2": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Ln2,
+ },
+ },
+ "LOG2E": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Log2E,
+ },
+ },
+ "LOG10E": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Log10E,
+ },
+ },
+ "PI": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Pi,
+ },
+ },
+ "SQRT1_2": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: sqrt1_2,
+ },
+ },
+ "SQRT2": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Sqrt2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "abs",
+ "acos",
+ "asin",
+ "atan",
+ "atan2",
+ "ceil",
+ "cos",
+ "exp",
+ "floor",
+ "log",
+ "max",
+ "min",
+ "pow",
+ "random",
+ "round",
+ "sin",
+ "sqrt",
+ "tan",
+ "E",
+ "LN10",
+ "LN2",
+ "LOG2E",
+ "LOG10E",
+ "PI",
+ "SQRT1_2",
+ "SQRT2",
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinDate_toString,
+ },
+ }
+ toDateString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toDateString",
+ call: builtinDate_toDateString,
+ },
+ }
+ toTimeString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toTimeString",
+ call: builtinDate_toTimeString,
+ },
+ }
+ toUTCString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toUTCString",
+ call: builtinDate_toUTCString,
+ },
+ }
+ toISOString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toISOString",
+ call: builtinDate_toISOString,
+ },
+ }
+ toJSON_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toJSON",
+ call: builtinDate_toJSON,
+ },
+ }
+ toGMTString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toGMTString",
+ call: builtinDate_toGMTString,
+ },
+ }
+ toLocaleString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleString",
+ call: builtinDate_toLocaleString,
+ },
+ }
+ toLocaleDateString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleDateString",
+ call: builtinDate_toLocaleDateString,
+ },
+ }
+ toLocaleTimeString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toLocaleTimeString",
+ call: builtinDate_toLocaleTimeString,
+ },
+ }
+ valueOf_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "valueOf",
+ call: builtinDate_valueOf,
+ },
+ }
+ getTime_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getTime",
+ call: builtinDate_getTime,
+ },
+ }
+ getYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getYear",
+ call: builtinDate_getYear,
+ },
+ }
+ getFullYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getFullYear",
+ call: builtinDate_getFullYear,
+ },
+ }
+ getUTCFullYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCFullYear",
+ call: builtinDate_getUTCFullYear,
+ },
+ }
+ getMonth_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getMonth",
+ call: builtinDate_getMonth,
+ },
+ }
+ getUTCMonth_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCMonth",
+ call: builtinDate_getUTCMonth,
+ },
+ }
+ getDate_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getDate",
+ call: builtinDate_getDate,
+ },
+ }
+ getUTCDate_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCDate",
+ call: builtinDate_getUTCDate,
+ },
+ }
+ getDay_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getDay",
+ call: builtinDate_getDay,
+ },
+ }
+ getUTCDay_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCDay",
+ call: builtinDate_getUTCDay,
+ },
+ }
+ getHours_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getHours",
+ call: builtinDate_getHours,
+ },
+ }
+ getUTCHours_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCHours",
+ call: builtinDate_getUTCHours,
+ },
+ }
+ getMinutes_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getMinutes",
+ call: builtinDate_getMinutes,
+ },
+ }
+ getUTCMinutes_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCMinutes",
+ call: builtinDate_getUTCMinutes,
+ },
+ }
+ getSeconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getSeconds",
+ call: builtinDate_getSeconds,
+ },
+ }
+ getUTCSeconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCSeconds",
+ call: builtinDate_getUTCSeconds,
+ },
+ }
+ getMilliseconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getMilliseconds",
+ call: builtinDate_getMilliseconds,
+ },
+ }
+ getUTCMilliseconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getUTCMilliseconds",
+ call: builtinDate_getUTCMilliseconds,
+ },
+ }
+ getTimezoneOffset_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "getTimezoneOffset",
+ call: builtinDate_getTimezoneOffset,
+ },
+ }
+ setTime_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setTime",
+ call: builtinDate_setTime,
+ },
+ }
+ setMilliseconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setMilliseconds",
+ call: builtinDate_setMilliseconds,
+ },
+ }
+ setUTCMilliseconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCMilliseconds",
+ call: builtinDate_setUTCMilliseconds,
+ },
+ }
+ setSeconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setSeconds",
+ call: builtinDate_setSeconds,
+ },
+ }
+ setUTCSeconds_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCSeconds",
+ call: builtinDate_setUTCSeconds,
+ },
+ }
+ setMinutes_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setMinutes",
+ call: builtinDate_setMinutes,
+ },
+ }
+ setUTCMinutes_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCMinutes",
+ call: builtinDate_setUTCMinutes,
+ },
+ }
+ setHours_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 4,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setHours",
+ call: builtinDate_setHours,
+ },
+ }
+ setUTCHours_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 4,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCHours",
+ call: builtinDate_setUTCHours,
+ },
+ }
+ setDate_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setDate",
+ call: builtinDate_setDate,
+ },
+ }
+ setUTCDate_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCDate",
+ call: builtinDate_setUTCDate,
+ },
+ }
+ setMonth_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setMonth",
+ call: builtinDate_setMonth,
+ },
+ }
+ setUTCMonth_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCMonth",
+ call: builtinDate_setUTCMonth,
+ },
+ }
+ setYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setYear",
+ call: builtinDate_setYear,
+ },
+ }
+ setFullYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setFullYear",
+ call: builtinDate_setFullYear,
+ },
+ }
+ setUTCFullYear_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "setUTCFullYear",
+ call: builtinDate_setUTCFullYear,
+ },
+ }
+ parse_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "parse",
+ call: builtinDate_parse,
+ },
+ }
+ UTC_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 7,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "UTC",
+ call: builtinDate_UTC,
+ },
+ }
+ now_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "now",
+ call: builtinDate_now,
+ },
+ }
+ runtime.global.DatePrototype = &_object{
+ runtime: runtime,
+ class: "Date",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueDate,
+ property: map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "toDateString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toDateString_function,
+ },
+ },
+ "toTimeString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toTimeString_function,
+ },
+ },
+ "toUTCString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toUTCString_function,
+ },
+ },
+ "toISOString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toISOString_function,
+ },
+ },
+ "toJSON": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toJSON_function,
+ },
+ },
+ "toGMTString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toGMTString_function,
+ },
+ },
+ "toLocaleString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleString_function,
+ },
+ },
+ "toLocaleDateString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleDateString_function,
+ },
+ },
+ "toLocaleTimeString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toLocaleTimeString_function,
+ },
+ },
+ "valueOf": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: valueOf_function,
+ },
+ },
+ "getTime": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getTime_function,
+ },
+ },
+ "getYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getYear_function,
+ },
+ },
+ "getFullYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getFullYear_function,
+ },
+ },
+ "getUTCFullYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCFullYear_function,
+ },
+ },
+ "getMonth": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getMonth_function,
+ },
+ },
+ "getUTCMonth": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCMonth_function,
+ },
+ },
+ "getDate": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getDate_function,
+ },
+ },
+ "getUTCDate": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCDate_function,
+ },
+ },
+ "getDay": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getDay_function,
+ },
+ },
+ "getUTCDay": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCDay_function,
+ },
+ },
+ "getHours": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getHours_function,
+ },
+ },
+ "getUTCHours": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCHours_function,
+ },
+ },
+ "getMinutes": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getMinutes_function,
+ },
+ },
+ "getUTCMinutes": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCMinutes_function,
+ },
+ },
+ "getSeconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getSeconds_function,
+ },
+ },
+ "getUTCSeconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCSeconds_function,
+ },
+ },
+ "getMilliseconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getMilliseconds_function,
+ },
+ },
+ "getUTCMilliseconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getUTCMilliseconds_function,
+ },
+ },
+ "getTimezoneOffset": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: getTimezoneOffset_function,
+ },
+ },
+ "setTime": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setTime_function,
+ },
+ },
+ "setMilliseconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setMilliseconds_function,
+ },
+ },
+ "setUTCMilliseconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCMilliseconds_function,
+ },
+ },
+ "setSeconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setSeconds_function,
+ },
+ },
+ "setUTCSeconds": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCSeconds_function,
+ },
+ },
+ "setMinutes": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setMinutes_function,
+ },
+ },
+ "setUTCMinutes": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCMinutes_function,
+ },
+ },
+ "setHours": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setHours_function,
+ },
+ },
+ "setUTCHours": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCHours_function,
+ },
+ },
+ "setDate": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setDate_function,
+ },
+ },
+ "setUTCDate": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCDate_function,
+ },
+ },
+ "setMonth": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setMonth_function,
+ },
+ },
+ "setUTCMonth": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCMonth_function,
+ },
+ },
+ "setYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setYear_function,
+ },
+ },
+ "setFullYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setFullYear_function,
+ },
+ },
+ "setUTCFullYear": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: setUTCFullYear_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "toString",
+ "toDateString",
+ "toTimeString",
+ "toUTCString",
+ "toISOString",
+ "toJSON",
+ "toGMTString",
+ "toLocaleString",
+ "toLocaleDateString",
+ "toLocaleTimeString",
+ "valueOf",
+ "getTime",
+ "getYear",
+ "getFullYear",
+ "getUTCFullYear",
+ "getMonth",
+ "getUTCMonth",
+ "getDate",
+ "getUTCDate",
+ "getDay",
+ "getUTCDay",
+ "getHours",
+ "getUTCHours",
+ "getMinutes",
+ "getUTCMinutes",
+ "getSeconds",
+ "getUTCSeconds",
+ "getMilliseconds",
+ "getUTCMilliseconds",
+ "getTimezoneOffset",
+ "setTime",
+ "setMilliseconds",
+ "setUTCMilliseconds",
+ "setSeconds",
+ "setUTCSeconds",
+ "setMinutes",
+ "setUTCMinutes",
+ "setHours",
+ "setUTCHours",
+ "setDate",
+ "setUTCDate",
+ "setMonth",
+ "setUTCMonth",
+ "setYear",
+ "setFullYear",
+ "setUTCFullYear",
+ },
+ }
+ runtime.global.Date = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Date",
+ call: builtinDate,
+ construct: builtinNewDate,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 7,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.DatePrototype,
+ },
+ },
+ "parse": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: parse_function,
+ },
+ },
+ "UTC": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: UTC_function,
+ },
+ },
+ "now": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: now_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ "parse",
+ "UTC",
+ "now",
+ },
+ }
+ runtime.global.DatePrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Date,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinRegExp_toString,
+ },
+ }
+ exec_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "exec",
+ call: builtinRegExp_exec,
+ },
+ }
+ test_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "test",
+ call: builtinRegExp_test,
+ },
+ }
+ compile_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "compile",
+ call: builtinRegExp_compile,
+ },
+ }
+ runtime.global.RegExpPrototype = &_object{
+ runtime: runtime,
+ class: "RegExp",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: prototypeValueRegExp,
+ property: map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "exec": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: exec_function,
+ },
+ },
+ "test": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: test_function,
+ },
+ },
+ "compile": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: compile_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "toString",
+ "exec",
+ "test",
+ "compile",
+ },
+ }
+ runtime.global.RegExp = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "RegExp",
+ call: builtinRegExp,
+ construct: builtinNewRegExp,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RegExpPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.RegExpPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RegExp,
+ },
+ }
+ }
+ {
+ toString_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "toString",
+ call: builtinError_toString,
+ },
+ }
+ runtime.global.ErrorPrototype = &_object{
+ runtime: runtime,
+ class: "Error",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "toString": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: toString_function,
+ },
+ },
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "Error",
+ },
+ },
+ "message": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "toString",
+ "name",
+ "message",
+ },
+ }
+ runtime.global.Error = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "Error",
+ call: builtinError,
+ construct: builtinNewError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.ErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Error,
+ },
+ }
+ }
+ {
+ runtime.global.EvalErrorPrototype = &_object{
+ runtime: runtime,
+ class: "EvalError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "EvalError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.EvalError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "EvalError",
+ call: builtinEvalError,
+ construct: builtinNewEvalError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.EvalErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.EvalErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.EvalError,
+ },
+ }
+ }
+ {
+ runtime.global.TypeErrorPrototype = &_object{
+ runtime: runtime,
+ class: "TypeError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "TypeError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.TypeError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "TypeError",
+ call: builtinTypeError,
+ construct: builtinNewTypeError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.TypeErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.TypeErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.TypeError,
+ },
+ }
+ }
+ {
+ runtime.global.RangeErrorPrototype = &_object{
+ runtime: runtime,
+ class: "RangeError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "RangeError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.RangeError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "RangeError",
+ call: builtinRangeError,
+ construct: builtinNewRangeError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RangeErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.RangeErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RangeError,
+ },
+ }
+ }
+ {
+ runtime.global.ReferenceErrorPrototype = &_object{
+ runtime: runtime,
+ class: "ReferenceError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "ReferenceError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.ReferenceError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "ReferenceError",
+ call: builtinReferenceError,
+ construct: builtinNewReferenceError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ReferenceErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.ReferenceErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ReferenceError,
+ },
+ }
+ }
+ {
+ runtime.global.SyntaxErrorPrototype = &_object{
+ runtime: runtime,
+ class: "SyntaxError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "SyntaxError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.SyntaxError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "SyntaxError",
+ call: builtinSyntaxError,
+ construct: builtinNewSyntaxError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.SyntaxErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.SyntaxErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.SyntaxError,
+ },
+ }
+ }
+ {
+ runtime.global.URIErrorPrototype = &_object{
+ runtime: runtime,
+ class: "URIError",
+ objectClass: _classObject,
+ prototype: runtime.global.ErrorPrototype,
+ extensible: true,
+ value: nil,
+ property: map[string]_property{
+ "name": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueString,
+ value: "URIError",
+ },
+ },
+ },
+ propertyOrder: []string{
+ "name",
+ },
+ }
+ runtime.global.URIError = &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: _nativeFunctionObject{
+ name: "URIError",
+ call: builtinURIError,
+ construct: builtinNewURIError,
+ },
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ "prototype": _property{
+ mode: 0,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.URIErrorPrototype,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ "prototype",
+ },
+ }
+ runtime.global.URIErrorPrototype.property["constructor"] =
+ _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.URIError,
+ },
+ }
+ }
+ {
+ parse_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "parse",
+ call: builtinJSON_parse,
+ },
+ }
+ stringify_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 3,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "stringify",
+ call: builtinJSON_stringify,
+ },
+ }
+ runtime.global.JSON = &_object{
+ runtime: runtime,
+ class: "JSON",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "parse": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: parse_function,
+ },
+ },
+ "stringify": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: stringify_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "parse",
+ "stringify",
+ },
+ }
+ }
+ {
+ eval_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "eval",
+ call: builtinGlobal_eval,
+ },
+ }
+ parseInt_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 2,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "parseInt",
+ call: builtinGlobal_parseInt,
+ },
+ }
+ parseFloat_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "parseFloat",
+ call: builtinGlobal_parseFloat,
+ },
+ }
+ isNaN_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isNaN",
+ call: builtinGlobal_isNaN,
+ },
+ }
+ isFinite_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "isFinite",
+ call: builtinGlobal_isFinite,
+ },
+ }
+ decodeURI_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "decodeURI",
+ call: builtinGlobal_decodeURI,
+ },
+ }
+ decodeURIComponent_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "decodeURIComponent",
+ call: builtinGlobal_decodeURIComponent,
+ },
+ }
+ encodeURI_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "encodeURI",
+ call: builtinGlobal_encodeURI,
+ },
+ }
+ encodeURIComponent_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "encodeURIComponent",
+ call: builtinGlobal_encodeURIComponent,
+ },
+ }
+ escape_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "escape",
+ call: builtinGlobal_escape,
+ },
+ }
+ unescape_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 1,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "unescape",
+ call: builtinGlobal_unescape,
+ },
+ }
+ runtime.globalObject.property = map[string]_property{
+ "eval": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: eval_function,
+ },
+ },
+ "parseInt": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: parseInt_function,
+ },
+ },
+ "parseFloat": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: parseFloat_function,
+ },
+ },
+ "isNaN": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isNaN_function,
+ },
+ },
+ "isFinite": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: isFinite_function,
+ },
+ },
+ "decodeURI": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: decodeURI_function,
+ },
+ },
+ "decodeURIComponent": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: decodeURIComponent_function,
+ },
+ },
+ "encodeURI": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: encodeURI_function,
+ },
+ },
+ "encodeURIComponent": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: encodeURIComponent_function,
+ },
+ },
+ "escape": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: escape_function,
+ },
+ },
+ "unescape": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: unescape_function,
+ },
+ },
+ "Object": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Object,
+ },
+ },
+ "Function": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Function,
+ },
+ },
+ "Array": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Array,
+ },
+ },
+ "String": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.String,
+ },
+ },
+ "Boolean": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Boolean,
+ },
+ },
+ "Number": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Number,
+ },
+ },
+ "Math": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Math,
+ },
+ },
+ "Date": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Date,
+ },
+ },
+ "RegExp": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RegExp,
+ },
+ },
+ "Error": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.Error,
+ },
+ },
+ "EvalError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.EvalError,
+ },
+ },
+ "TypeError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.TypeError,
+ },
+ },
+ "RangeError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.RangeError,
+ },
+ },
+ "ReferenceError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.ReferenceError,
+ },
+ },
+ "SyntaxError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.SyntaxError,
+ },
+ },
+ "URIError": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.URIError,
+ },
+ },
+ "JSON": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: runtime.global.JSON,
+ },
+ },
+ "undefined": _property{
+ mode: 0,
+ value: Value{
+ kind: valueUndefined,
+ },
+ },
+ "NaN": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.NaN(),
+ },
+ },
+ "Infinity": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: math.Inf(+1),
+ },
+ },
+ }
+ runtime.globalObject.propertyOrder = []string{
+ "eval",
+ "parseInt",
+ "parseFloat",
+ "isNaN",
+ "isFinite",
+ "decodeURI",
+ "decodeURIComponent",
+ "encodeURI",
+ "encodeURIComponent",
+ "escape",
+ "unescape",
+ "Object",
+ "Function",
+ "Array",
+ "String",
+ "Boolean",
+ "Number",
+ "Math",
+ "Date",
+ "RegExp",
+ "Error",
+ "EvalError",
+ "TypeError",
+ "RangeError",
+ "ReferenceError",
+ "SyntaxError",
+ "URIError",
+ "JSON",
+ "undefined",
+ "NaN",
+ "Infinity",
+ }
+ }
+}
+
+func newConsoleObject(runtime *_runtime) *_object {
+ {
+ log_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "log",
+ call: builtinConsole_log,
+ },
+ }
+ debug_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "debug",
+ call: builtinConsole_log,
+ },
+ }
+ info_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "info",
+ call: builtinConsole_log,
+ },
+ }
+ error_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "error",
+ call: builtinConsole_error,
+ },
+ }
+ warn_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "warn",
+ call: builtinConsole_error,
+ },
+ }
+ dir_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "dir",
+ call: builtinConsole_dir,
+ },
+ }
+ time_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "time",
+ call: builtinConsole_time,
+ },
+ }
+ timeEnd_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "timeEnd",
+ call: builtinConsole_timeEnd,
+ },
+ }
+ trace_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "trace",
+ call: builtinConsole_trace,
+ },
+ }
+ assert_function := &_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "length": _property{
+ mode: 0,
+ value: Value{
+ kind: valueNumber,
+ value: 0,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "length",
+ },
+ value: _nativeFunctionObject{
+ name: "assert",
+ call: builtinConsole_assert,
+ },
+ }
+ return &_object{
+ runtime: runtime,
+ class: "Object",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ property: map[string]_property{
+ "log": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: log_function,
+ },
+ },
+ "debug": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: debug_function,
+ },
+ },
+ "info": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: info_function,
+ },
+ },
+ "error": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: error_function,
+ },
+ },
+ "warn": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: warn_function,
+ },
+ },
+ "dir": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: dir_function,
+ },
+ },
+ "time": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: time_function,
+ },
+ },
+ "timeEnd": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: timeEnd_function,
+ },
+ },
+ "trace": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: trace_function,
+ },
+ },
+ "assert": _property{
+ mode: 0101,
+ value: Value{
+ kind: valueObject,
+ value: assert_function,
+ },
+ },
+ },
+ propertyOrder: []string{
+ "log",
+ "debug",
+ "info",
+ "error",
+ "warn",
+ "dir",
+ "time",
+ "timeEnd",
+ "trace",
+ "assert",
+ },
+ }
+ }
+}
+
+func toValue_int(value int) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_int8(value int8) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_int16(value int16) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_int32(value int32) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_int64(value int64) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_uint(value uint) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_uint8(value uint8) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_uint16(value uint16) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_uint32(value uint32) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_uint64(value uint64) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_float32(value float32) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_float64(value float64) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+
+func toValue_string(value string) Value {
+ return Value{
+ kind: valueString,
+ value: value,
+ }
+}
+
+func toValue_string16(value []uint16) Value {
+ return Value{
+ kind: valueString,
+ value: value,
+ }
+}
+
+func toValue_bool(value bool) Value {
+ return Value{
+ kind: valueBoolean,
+ value: value,
+ }
+}
+
+func toValue_object(value *_object) Value {
+ return Value{
+ kind: valueObject,
+ value: value,
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/inline.pl b/vendor/github.com/robertkrimen/otto/inline.pl
new file mode 100755
index 000000000..c3620b4a2
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/inline.pl
@@ -0,0 +1,1086 @@
+#!/usr/bin/env perl
+
+my $_fmt;
+$_fmt = "gofmt";
+$_fmt = "cat -n" if "cat" eq ($ARGV[0] || "");
+
+use strict;
+use warnings;
+use IO::File;
+
+my $self = __PACKAGE__;
+
+sub functionLabel ($) {
+ return "$_[0]_function";
+}
+
+sub trim ($) {
+ local $_ = shift;
+ s/^\s*//, s/\s*$// for $_;
+ return $_;
+}
+
+open my $fmt, "|-", "$_fmt" or die $!;
+
+$fmt->print(<<_END_);
+package otto
+
+import (
+ "math"
+)
+
+func _newContext(runtime *_runtime) {
+@{[ join "\n", $self->newContext() ]}
+}
+
+func newConsoleObject(runtime *_runtime) *_object {
+@{[ join "\n", $self->newConsoleObject() ]}
+}
+_END_
+
+for (qw/int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float32 float64/) {
+ $fmt->print(<<_END_);
+
+func toValue_$_(value $_) Value {
+ return Value{
+ kind: valueNumber,
+ value: value,
+ }
+}
+_END_
+}
+
+$fmt->print(<<_END_);
+
+func toValue_string(value string) Value {
+ return Value{
+ kind: valueString,
+ value: value,
+ }
+}
+
+func toValue_string16(value []uint16) Value {
+ return Value{
+ kind: valueString,
+ value: value,
+ }
+}
+
+func toValue_bool(value bool) Value {
+ return Value{
+ kind: valueBoolean,
+ value: value,
+ }
+}
+
+func toValue_object(value *_object) Value {
+ return Value{
+ kind: valueObject,
+ value: value,
+ }
+}
+_END_
+
+close $fmt;
+
+sub newConsoleObject {
+ my $self = shift;
+
+ return
+ $self->block(sub {
+ my $class = "Console";
+ my @got = $self->functionDeclare(
+ $class,
+ "log", 0,
+ "debug:log", 0,
+ "info:log", 0,
+ "error", 0,
+ "warn:error", 0,
+ "dir", 0,
+ "time", 0,
+ "timeEnd", 0,
+ "trace", 0,
+ "assert", 0,
+ );
+ return
+ "return @{[ $self->newObject(@got) ]}"
+ }),
+ ;
+}
+
+sub newContext {
+ my $self = shift;
+ return
+ # ObjectPrototype
+ $self->block(sub {
+ my $class = "Object";
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ undef,
+ "prototypeValueObject",
+ ),
+ }),
+
+ # FunctionPrototype
+ $self->block(sub {
+ my $class = "Function";
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ "prototypeValueFunction",
+ ),
+ }),
+
+ # ObjectPrototype
+ $self->block(sub {
+ my $class = "Object";
+ my @got = $self->functionDeclare(
+ $class,
+ "valueOf", 0,
+ "toString", 0,
+ "toLocaleString", 0,
+ "hasOwnProperty", 1,
+ "isPrototypeOf", 1,
+ "propertyIsEnumerable", 1,
+ );
+ my @propertyMap = $self->propertyMap(
+ @got,
+ $self->property("constructor", undef),
+ );
+ my $propertyOrder = $self->propertyOrder(@propertyMap);
+ $propertyOrder =~ s/^propertyOrder: //;
+ return
+ ".${class}Prototype.property =", @propertyMap,
+ ".${class}Prototype.propertyOrder =", $propertyOrder,
+ }),
+
+ # FunctionPrototype
+ $self->block(sub {
+ my $class = "Function";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "apply", 2,
+ "call", 1,
+ "bind", 1,
+ );
+ my @propertyMap = $self->propertyMap(
+ @got,
+ $self->property("constructor", undef),
+ $self->property("length", $self->numberValue(0), "0"),
+ );
+ my $propertyOrder = $self->propertyOrder(@propertyMap);
+ $propertyOrder =~ s/^propertyOrder: //;
+ return
+ ".${class}Prototype.property =", @propertyMap,
+ ".${class}Prototype.propertyOrder =", $propertyOrder,
+ }),
+
+ # Object
+ $self->block(sub {
+ my $class = "Object";
+ return
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ "getPrototypeOf", 1,
+ "getOwnPropertyDescriptor", 2,
+ "defineProperty", 3,
+ "defineProperties", 2,
+ "create", 2,
+ "isExtensible", 1,
+ "preventExtensions", 1,
+ "isSealed", 1,
+ "seal", 1,
+ "isFrozen", 1,
+ "freeze", 1,
+ "keys", 1,
+ "getOwnPropertyNames", 1,
+ ),
+ ),
+ }),
+
+ # Function
+ $self->block(sub {
+ my $class = "Function";
+ return
+ "Function :=",
+ $self->globalFunction(
+ $class,
+ 1,
+ ),
+ ".$class = Function",
+ }),
+
+ # Array
+ $self->block(sub {
+ my $class = "Array";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "toLocaleString", 0,
+ "concat", 1,
+ "join", 1,
+ "splice", 2,
+ "shift", 0,
+ "pop", 0,
+ "push", 1,
+ "slice", 2,
+ "unshift", 1,
+ "reverse", 0,
+ "sort", 1,
+ "indexOf", 1,
+ "lastIndexOf", 1,
+ "every", 1,
+ "some", 1,
+ "forEach", 1,
+ "map", 1,
+ "filter", 1,
+ "reduce", 1,
+ "reduceRight", 1,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classArray",
+ ".ObjectPrototype",
+ undef,
+ $self->property("length", $self->numberValue("uint32(0)"), "0100"),
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ "isArray", 1,
+ ),
+ ),
+ }),
+
+ # String
+ $self->block(sub {
+ my $class = "String";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "valueOf", 0,
+ "charAt", 1,
+ "charCodeAt", 1,
+ "concat", 1,
+ "indexOf", 1,
+ "lastIndexOf", 1,
+ "match", 1,
+ "replace", 2,
+ "search", 1,
+ "split", 2,
+ "slice", 2,
+ "substring", 2,
+ "toLowerCase", 0,
+ "toUpperCase", 0,
+ "substr", 2,
+ "trim", 0,
+ "trimLeft", 0,
+ "trimRight", 0,
+ "localeCompare", 1,
+ "toLocaleLowerCase", 0,
+ "toLocaleUpperCase", 0,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classString",
+ ".ObjectPrototype",
+ "prototypeValueString",
+ $self->property("length", $self->numberValue("int(0)"), "0"),
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ "fromCharCode", 1,
+ ),
+ ),
+ }),
+
+ # Boolean
+ $self->block(sub {
+ my $class = "Boolean";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "valueOf", 0,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ "prototypeValueBoolean",
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ ),
+ ),
+ }),
+
+ # Number
+ $self->block(sub {
+ my $class = "Number";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "valueOf", 0,
+ "toFixed", 1,
+ "toExponential", 1,
+ "toPrecision", 1,
+ "toLocaleString", 1,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ "prototypeValueNumber",
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ ),
+ $self->numberConstantDeclare(
+ "MAX_VALUE", "math.MaxFloat64",
+ "MIN_VALUE", "math.SmallestNonzeroFloat64",
+ "NaN", "math.NaN()",
+ "NEGATIVE_INFINITY", "math.Inf(-1)",
+ "POSITIVE_INFINITY", "math.Inf(+1)",
+ ),
+ ),
+ }),
+
+ # Math
+ $self->block(sub {
+ my $class = "Math";
+ return
+ ".$class =",
+ $self->globalObject(
+ $class,
+ $self->functionDeclare(
+ $class,
+ "abs", 1,
+ "acos", 1,
+ "asin", 1,
+ "atan", 1,
+ "atan2", 1,
+ "ceil", 1,
+ "cos", 1,
+ "exp", 1,
+ "floor", 1,
+ "log", 1,
+ "max", 2,
+ "min", 2,
+ "pow", 2,
+ "random", 0,
+ "round", 1,
+ "sin", 1,
+ "sqrt", 1,
+ "tan", 1,
+ ),
+ $self->numberConstantDeclare(
+ "E", "math.E",
+ "LN10", "math.Ln10",
+ "LN2", "math.Ln2",
+ "LOG2E", "math.Log2E",
+ "LOG10E", "math.Log10E",
+ "PI", "math.Pi",
+ "SQRT1_2", "sqrt1_2",
+ "SQRT2", "math.Sqrt2",
+ )
+ ),
+ }),
+
+ # Date
+ $self->block(sub {
+ my $class = "Date";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "toDateString", 0,
+ "toTimeString", 0,
+ "toUTCString", 0,
+ "toISOString", 0,
+ "toJSON", 1,
+ "toGMTString", 0,
+ "toLocaleString", 0,
+ "toLocaleDateString", 0,
+ "toLocaleTimeString", 0,
+ "valueOf", 0,
+ "getTime", 0,
+ "getYear", 0,
+ "getFullYear", 0,
+ "getUTCFullYear", 0,
+ "getMonth", 0,
+ "getUTCMonth", 0,
+ "getDate", 0,
+ "getUTCDate", 0,
+ "getDay", 0,
+ "getUTCDay", 0,
+ "getHours", 0,
+ "getUTCHours", 0,
+ "getMinutes", 0,
+ "getUTCMinutes", 0,
+ "getSeconds", 0,
+ "getUTCSeconds", 0,
+ "getMilliseconds", 0,
+ "getUTCMilliseconds", 0,
+ "getTimezoneOffset", 0,
+ "setTime", 1,
+ "setMilliseconds", 1,
+ "setUTCMilliseconds", 1,
+ "setSeconds", 2,
+ "setUTCSeconds", 2,
+ "setMinutes", 3,
+ "setUTCMinutes", 3,
+ "setHours", 4,
+ "setUTCHours", 4,
+ "setDate", 1,
+ "setUTCDate", 1,
+ "setMonth", 2,
+ "setUTCMonth", 2,
+ "setYear", 1,
+ "setFullYear", 3,
+ "setUTCFullYear", 3,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ "prototypeValueDate",
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 7,
+ $self->functionDeclare(
+ $class,
+ "parse", 1,
+ "UTC", 7,
+ "now", 0,
+ ),
+ ),
+ }),
+
+ # RegExp
+ $self->block(sub {
+ my $class = "RegExp";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ "exec", 1,
+ "test", 1,
+ "compile", 1,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ "prototypeValueRegExp",
+ @got,
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 2,
+ $self->functionDeclare(
+ $class,
+ ),
+ ),
+ }),
+
+ # Error
+ $self->block(sub {
+ my $class = "Error";
+ my @got = $self->functionDeclare(
+ $class,
+ "toString", 0,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ObjectPrototype",
+ undef,
+ @got,
+ $self->property("name", $self->stringValue("Error")),
+ $self->property("message", $self->stringValue("")),
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ ),
+ ),
+ }),
+
+ (map {
+ my $class = "${_}Error";
+ $self->block(sub {
+ my @got = $self->functionDeclare(
+ $class,
+ );
+ return
+ ".${class}Prototype =",
+ $self->globalPrototype(
+ $class,
+ "_classObject",
+ ".ErrorPrototype",
+ undef,
+ @got,
+ $self->property("name", $self->stringValue($class)),
+ ),
+ ".$class =",
+ $self->globalFunction(
+ $class,
+ 1,
+ $self->functionDeclare(
+ $class,
+ ),
+ ),
+ });
+ } qw/Eval Type Range Reference Syntax URI/),
+
+ # JSON
+ $self->block(sub {
+ my $class = "JSON";
+ return
+ ".$class =",
+ $self->globalObject(
+ $class,
+ $self->functionDeclare(
+ $class,
+ "parse", 2,
+ "stringify", 3,
+ ),
+ ),
+ }),
+
+ # Global
+ $self->block(sub {
+ my $class = "Global";
+ my @got = $self->functionDeclare(
+ $class,
+ "eval", 1,
+ "parseInt", 2,
+ "parseFloat", 1,
+ "isNaN", 1,
+ "isFinite", 1,
+ "decodeURI", 1,
+ "decodeURIComponent", 1,
+ "encodeURI", 1,
+ "encodeURIComponent", 1,
+ "escape", 1,
+ "unescape", 1,
+ );
+ my @propertyMap = $self->propertyMap(
+ @got,
+ $self->globalDeclare(
+ "Object",
+ "Function",
+ "Array",
+ "String",
+ "Boolean",
+ "Number",
+ "Math",
+ "Date",
+ "RegExp",
+ "Error",
+ "EvalError",
+ "TypeError",
+ "RangeError",
+ "ReferenceError",
+ "SyntaxError",
+ "URIError",
+ "JSON",
+ ),
+ $self->property("undefined", $self->undefinedValue(), "0"),
+ $self->property("NaN", $self->numberValue("math.NaN()"), "0"),
+ $self->property("Infinity", $self->numberValue("math.Inf(+1)"), "0"),
+ );
+ my $propertyOrder = $self->propertyOrder(@propertyMap);
+ $propertyOrder =~ s/^propertyOrder: //;
+ return
+ "runtime.globalObject.property =",
+ @propertyMap,
+ "runtime.globalObject.propertyOrder =",
+ $propertyOrder,
+ ;
+ }),
+ ;
+}
+
+sub propertyMap {
+ my $self = shift;
+ return "map[string]_property{", (join ",\n", @_, ""), "}",
+}
+
+our (@preblock, @postblock);
+sub block {
+ my $self = shift;
+ local @preblock = ();
+ local @postblock = ();
+ my @input = $_[0]->();
+ my @output;
+ while (@input) {
+ local $_ = shift @input;
+ if (m/^\./) {
+ $_ = "runtime.global$_";
+ }
+ if (m/ :?=$/) {
+ $_ .= shift @input;
+ }
+ push @output, $_;
+ }
+ return
+ "{",
+ @preblock,
+ @output,
+ @postblock,
+ "}",
+ ;
+}
+
+sub numberConstantDeclare {
+ my $self = shift;
+ my @got;
+ while (@_) {
+ my $name = shift;
+ my $value = shift;
+ push @got, $self->property($name, $self->numberValue($value), "0"),
+ }
+ return @got;
+}
+
+sub functionDeclare {
+ my $self = shift;
+ my $class = shift;
+ my $builtin = "builtin${class}";
+ my @got;
+ while (@_) {
+ my $name = shift;
+ my $length = shift;
+ $name = $self->newFunction($name, "${builtin}_", $length);
+ push @got, $self->functionProperty($name),
+ }
+ return @got;
+}
+
+sub globalDeclare {
+ my $self = shift;
+ my @got;
+ while (@_) {
+ my $name = shift;
+ push @got, $self->property($name, $self->objectValue("runtime.global.$name"), "0101"),
+ }
+ return @got;
+}
+
+sub propertyOrder {
+ my $self = shift;
+ my $propertyMap = join "", @_;
+
+ my (@keys) = $propertyMap =~ m/("\w+"):/g;
+ my $propertyOrder =
+ join "\n", "propertyOrder: []string{", (join ",\n", @keys, ""), "}";
+ return $propertyOrder;
+}
+
+sub globalObject {
+ my $self = shift;
+ my $name = shift;
+
+ my $propertyMap = "";
+ if (@_) {
+ $propertyMap = join "\n", $self->propertyMap(@_);
+ my $propertyOrder = $self->propertyOrder($propertyMap);
+ $propertyMap = "property: $propertyMap,\n$propertyOrder,";
+ }
+
+ return trim <<_END_;
+&_object{
+ runtime: runtime,
+ class: "$name",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ $propertyMap
+}
+_END_
+}
+
+sub globalFunction {
+ my $self = shift;
+ my $name = shift;
+ my $length = shift;
+
+ my $builtin = "builtin${name}";
+ my $builtinNew = "builtinNew${name}";
+ my $prototype = "runtime.global.${name}Prototype";
+ my $propertyMap = "";
+ unshift @_,
+ $self->property("length", $self->numberValue($length), "0"),
+ $self->property("prototype", $self->objectValue($prototype), "0"),
+ ;
+
+ if (@_) {
+ $propertyMap = join "\n", $self->propertyMap(@_);
+ my $propertyOrder = $self->propertyOrder($propertyMap);
+ $propertyMap = "property: $propertyMap,\n$propertyOrder,";
+ }
+
+ push @postblock, $self->statement(
+ "$prototype.property[\"constructor\"] =",
+ $self->property(undef, $self->objectValue("runtime.global.${name}"), "0101"),
+ );
+
+ return trim <<_END_;
+&_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ value: @{[ $self->nativeFunctionOf($name, $builtin, $builtinNew) ]},
+ $propertyMap
+}
+_END_
+}
+
+sub nativeCallFunction {
+ my $self = shift;
+ my $name = shift;
+ my $func = shift;
+ return trim <<_END_;
+_nativeCallFunction{ "$name", $func }
+_END_
+}
+
+sub globalPrototype {
+ my $self = shift;
+ my $class = shift;
+ my $classObject = shift;
+ my $prototype = shift;
+ my $value = shift;
+
+ if (!defined $prototype) {
+ $prototype = "nil";
+ }
+
+ if (!defined $value) {
+ $value = "nil";
+ }
+
+ if ($prototype =~ m/^\./) {
+ $prototype = "runtime.global$prototype";
+ }
+
+ my $propertyMap = "";
+ if (@_) {
+ $propertyMap = join "\n", $self->propertyMap(@_);
+ my $propertyOrder = $self->propertyOrder($propertyMap);
+ $propertyMap = "property: $propertyMap,\n$propertyOrder,";
+ }
+
+ return trim <<_END_;
+&_object{
+ runtime: runtime,
+ class: "$class",
+ objectClass: $classObject,
+ prototype: $prototype,
+ extensible: true,
+ value: $value,
+ $propertyMap
+}
+_END_
+}
+
+sub newFunction {
+ my $self = shift;
+ my $name = shift;
+ my $func = shift;
+ my $length = shift;
+
+ my @name = ($name, $name);
+ if ($name =~ m/^(\w+):(\w+)$/) {
+ @name = ($1, $2);
+ $name = $name[0];
+ }
+
+ if ($func =~ m/^builtin\w+_$/) {
+ $func = "$func$name[1]";
+ }
+
+ my $propertyOrder = "";
+ my @propertyMap = (
+ $self->property("length", $self->numberValue($length), "0"),
+ );
+
+ if (@propertyMap) {
+ $propertyOrder = $self->propertyOrder(@propertyMap);
+ $propertyOrder = "$propertyOrder,";
+ }
+
+ my $label = functionLabel($name);
+ push @preblock, $self->statement(
+ "$label := @{[ trim <<_END_ ]}",
+&_object{
+ runtime: runtime,
+ class: "Function",
+ objectClass: _classObject,
+ prototype: runtime.global.FunctionPrototype,
+ extensible: true,
+ property: @{[ join "\n", $self->propertyMap(@propertyMap) ]},
+ $propertyOrder
+ value: @{[ $self->nativeFunctionOf($name, $func) ]},
+}
+_END_
+ );
+
+ return $name;
+}
+
+sub newObject {
+ my $self = shift;
+
+ my $propertyMap = join "\n", $self->propertyMap(@_);
+ my $propertyOrder = $self->propertyOrder($propertyMap);
+
+ return trim <<_END_;
+&_object{
+ runtime: runtime,
+ class: "Object",
+ objectClass: _classObject,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ property: $propertyMap,
+ $propertyOrder,
+}
+_END_
+}
+
+sub newPrototypeObject {
+ my $self = shift;
+ my $class = shift;
+ my $objectClass = shift;
+ my $value = shift;
+ if (defined $value) {
+ $value = "value: $value,";
+ }
+
+ my $propertyMap = join "\n", $self->propertyMap(@_);
+ my $propertyOrder = $self->propertyOrder($propertyMap);
+
+ return trim <<_END_;
+&_object{
+ runtime: runtime,
+ class: "$class",
+ objectClass: $objectClass,
+ prototype: runtime.global.ObjectPrototype,
+ extensible: true,
+ property: $propertyMap,
+ $propertyOrder,
+ $value
+}
+_END_
+}
+
+sub functionProperty {
+ my $self = shift;
+ my $name = shift;
+
+ return $self->property(
+ $name,
+ $self->objectValue(functionLabel($name))
+ );
+}
+
+sub statement {
+ my $self = shift;
+ return join "\n", @_;
+}
+
+sub functionOf {
+ my $self = shift;
+ my $call = shift;
+ my $construct = shift;
+ if ($construct) {
+ $construct = "construct: $construct,";
+ } else {
+ $construct = "";
+ }
+
+ return trim <<_END_
+_functionObject{
+ call: $call,
+ $construct
+}
+_END_
+}
+
+sub nativeFunctionOf {
+ my $self = shift;
+ my $name = shift;
+ my $call = shift;
+ my $construct = shift;
+ if ($construct) {
+ $construct = "construct: $construct,";
+ } else {
+ $construct = "";
+ }
+
+ return trim <<_END_
+_nativeFunctionObject{
+ name: "$name",
+ call: $call,
+ $construct
+}
+_END_
+}
+
+sub nameProperty {
+ my $self = shift;
+ my $name = shift;
+ my $value = shift;
+
+ return trim <<_END_;
+"$name": _property{
+ mode: 0101,
+ value: $value,
+}
+_END_
+}
+
+sub numberValue {
+ my $self = shift;
+ my $value = shift;
+ return trim <<_END_;
+Value{
+ kind: valueNumber,
+ value: $value,
+}
+_END_
+}
+
+sub property {
+ my $self = shift;
+ my $name = shift;
+ my $value = shift;
+ my $mode = shift;
+ $mode = "0101" unless defined $mode;
+ if (! defined $value) {
+ $value = "Value{}";
+ }
+ if (defined $name) {
+ return trim <<_END_;
+"$name": _property{
+ mode: $mode,
+ value: $value,
+}
+_END_
+ } else {
+ return trim <<_END_;
+_property{
+ mode: $mode,
+ value: $value,
+}
+_END_
+ }
+
+}
+
+sub objectProperty {
+ my $self = shift;
+ my $name = shift;
+ my $value = shift;
+
+ return trim <<_END_;
+"$name": _property{
+ mode: 0101,
+ value: @{[ $self->objectValue($value)]},
+}
+_END_
+}
+
+sub objectValue {
+ my $self = shift;
+ my $value = shift;
+ return trim <<_END_
+Value{
+ kind: valueObject,
+ value: $value,
+}
+_END_
+}
+
+sub stringValue {
+ my $self = shift;
+ my $value = shift;
+ return trim <<_END_
+Value{
+ kind: valueString,
+ value: "$value",
+}
+_END_
+}
+
+sub booleanValue {
+ my $self = shift;
+ my $value = shift;
+ return trim <<_END_
+Value{
+ kind: valueBoolean,
+ value: $value,
+}
+_END_
+}
+
+sub undefinedValue {
+ my $self = shift;
+ return trim <<_END_
+Value{
+ kind: valueUndefined,
+}
+_END_
+}
diff --git a/vendor/github.com/robertkrimen/otto/object.go b/vendor/github.com/robertkrimen/otto/object.go
new file mode 100644
index 000000000..849812c91
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/object.go
@@ -0,0 +1,156 @@
+package otto
+
+type _object struct {
+ runtime *_runtime
+
+ class string
+ objectClass *_objectClass
+ value interface{}
+
+ prototype *_object
+ extensible bool
+
+ property map[string]_property
+ propertyOrder []string
+}
+
+func newObject(runtime *_runtime, class string) *_object {
+ self := &_object{
+ runtime: runtime,
+ class: class,
+ objectClass: _classObject,
+ property: make(map[string]_property),
+ extensible: true,
+ }
+ return self
+}
+
+// 8.12
+
+// 8.12.1
+func (self *_object) getOwnProperty(name string) *_property {
+ return self.objectClass.getOwnProperty(self, name)
+}
+
+// 8.12.2
+func (self *_object) getProperty(name string) *_property {
+ return self.objectClass.getProperty(self, name)
+}
+
+// 8.12.3
+func (self *_object) get(name string) Value {
+ return self.objectClass.get(self, name)
+}
+
+// 8.12.4
+func (self *_object) canPut(name string) bool {
+ return self.objectClass.canPut(self, name)
+}
+
+// 8.12.5
+func (self *_object) put(name string, value Value, throw bool) {
+ self.objectClass.put(self, name, value, throw)
+}
+
+// 8.12.6
+func (self *_object) hasProperty(name string) bool {
+ return self.objectClass.hasProperty(self, name)
+}
+
+func (self *_object) hasOwnProperty(name string) bool {
+ return self.objectClass.hasOwnProperty(self, name)
+}
+
+type _defaultValueHint int
+
+const (
+ defaultValueNoHint _defaultValueHint = iota
+ defaultValueHintString
+ defaultValueHintNumber
+)
+
+// 8.12.8
+func (self *_object) DefaultValue(hint _defaultValueHint) Value {
+ if hint == defaultValueNoHint {
+ if self.class == "Date" {
+ // Date exception
+ hint = defaultValueHintString
+ } else {
+ hint = defaultValueHintNumber
+ }
+ }
+ methodSequence := []string{"valueOf", "toString"}
+ if hint == defaultValueHintString {
+ methodSequence = []string{"toString", "valueOf"}
+ }
+ for _, methodName := range methodSequence {
+ method := self.get(methodName)
+ // FIXME This is redundant...
+ if method.isCallable() {
+ result := method._object().call(toValue_object(self), nil, false, nativeFrame)
+ if result.IsPrimitive() {
+ return result
+ }
+ }
+ }
+
+ panic(self.runtime.panicTypeError())
+}
+
+func (self *_object) String() string {
+ return self.DefaultValue(defaultValueHintString).string()
+}
+
+func (self *_object) defineProperty(name string, value Value, mode _propertyMode, throw bool) bool {
+ return self.defineOwnProperty(name, _property{value, mode}, throw)
+}
+
+// 8.12.9
+func (self *_object) defineOwnProperty(name string, descriptor _property, throw bool) bool {
+ return self.objectClass.defineOwnProperty(self, name, descriptor, throw)
+}
+
+func (self *_object) delete(name string, throw bool) bool {
+ return self.objectClass.delete(self, name, throw)
+}
+
+func (self *_object) enumerate(all bool, each func(string) bool) {
+ self.objectClass.enumerate(self, all, each)
+}
+
+func (self *_object) _exists(name string) bool {
+ _, exists := self.property[name]
+ return exists
+}
+
+func (self *_object) _read(name string) (_property, bool) {
+ property, exists := self.property[name]
+ return property, exists
+}
+
+func (self *_object) _write(name string, value interface{}, mode _propertyMode) {
+ if value == nil {
+ value = Value{}
+ }
+ _, exists := self.property[name]
+ self.property[name] = _property{value, mode}
+ if !exists {
+ self.propertyOrder = append(self.propertyOrder, name)
+ }
+}
+
+func (self *_object) _delete(name string) {
+ _, exists := self.property[name]
+ delete(self.property, name)
+ if exists {
+ for index, property := range self.propertyOrder {
+ if name == property {
+ if index == len(self.propertyOrder)-1 {
+ self.propertyOrder = self.propertyOrder[:index]
+ } else {
+ self.propertyOrder = append(self.propertyOrder[:index], self.propertyOrder[index+1:]...)
+ }
+ }
+ }
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/object_class.go b/vendor/github.com/robertkrimen/otto/object_class.go
new file mode 100644
index 000000000..d18b9cede
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/object_class.go
@@ -0,0 +1,493 @@
+package otto
+
+import (
+ "encoding/json"
+)
+
+type _objectClass struct {
+ getOwnProperty func(*_object, string) *_property
+ getProperty func(*_object, string) *_property
+ get func(*_object, string) Value
+ canPut func(*_object, string) bool
+ put func(*_object, string, Value, bool)
+ hasProperty func(*_object, string) bool
+ hasOwnProperty func(*_object, string) bool
+ defineOwnProperty func(*_object, string, _property, bool) bool
+ delete func(*_object, string, bool) bool
+ enumerate func(*_object, bool, func(string) bool)
+ clone func(*_object, *_object, *_clone) *_object
+ marshalJSON func(*_object) json.Marshaler
+}
+
+func objectEnumerate(self *_object, all bool, each func(string) bool) {
+ for _, name := range self.propertyOrder {
+ if all || self.property[name].enumerable() {
+ if !each(name) {
+ return
+ }
+ }
+ }
+}
+
+var (
+ _classObject,
+ _classArray,
+ _classString,
+ _classArguments,
+ _classGoStruct,
+ _classGoMap,
+ _classGoArray,
+ _classGoSlice,
+ _ *_objectClass
+)
+
+func init() {
+ _classObject = &_objectClass{
+ objectGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ objectDefineOwnProperty,
+ objectDelete,
+ objectEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classArray = &_objectClass{
+ objectGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ arrayDefineOwnProperty,
+ objectDelete,
+ objectEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classString = &_objectClass{
+ stringGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ objectDefineOwnProperty,
+ objectDelete,
+ stringEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classArguments = &_objectClass{
+ argumentsGetOwnProperty,
+ objectGetProperty,
+ argumentsGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ argumentsDefineOwnProperty,
+ argumentsDelete,
+ objectEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classGoStruct = &_objectClass{
+ goStructGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ goStructCanPut,
+ goStructPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ objectDefineOwnProperty,
+ objectDelete,
+ goStructEnumerate,
+ objectClone,
+ goStructMarshalJSON,
+ }
+
+ _classGoMap = &_objectClass{
+ goMapGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ goMapDefineOwnProperty,
+ goMapDelete,
+ goMapEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classGoArray = &_objectClass{
+ goArrayGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ goArrayDefineOwnProperty,
+ goArrayDelete,
+ goArrayEnumerate,
+ objectClone,
+ nil,
+ }
+
+ _classGoSlice = &_objectClass{
+ goSliceGetOwnProperty,
+ objectGetProperty,
+ objectGet,
+ objectCanPut,
+ objectPut,
+ objectHasProperty,
+ objectHasOwnProperty,
+ goSliceDefineOwnProperty,
+ goSliceDelete,
+ goSliceEnumerate,
+ objectClone,
+ nil,
+ }
+}
+
+// Allons-y
+
+// 8.12.1
+func objectGetOwnProperty(self *_object, name string) *_property {
+ // Return a _copy_ of the property
+ property, exists := self._read(name)
+ if !exists {
+ return nil
+ }
+ return &property
+}
+
+// 8.12.2
+func objectGetProperty(self *_object, name string) *_property {
+ property := self.getOwnProperty(name)
+ if property != nil {
+ return property
+ }
+ if self.prototype != nil {
+ return self.prototype.getProperty(name)
+ }
+ return nil
+}
+
+// 8.12.3
+func objectGet(self *_object, name string) Value {
+ property := self.getProperty(name)
+ if property != nil {
+ return property.get(self)
+ }
+ return Value{}
+}
+
+// 8.12.4
+func objectCanPut(self *_object, name string) bool {
+ canPut, _, _ := _objectCanPut(self, name)
+ return canPut
+}
+
+func _objectCanPut(self *_object, name string) (canPut bool, property *_property, setter *_object) {
+ property = self.getOwnProperty(name)
+ if property != nil {
+ switch propertyValue := property.value.(type) {
+ case Value:
+ canPut = property.writable()
+ return
+ case _propertyGetSet:
+ setter = propertyValue[1]
+ canPut = setter != nil
+ return
+ default:
+ panic(self.runtime.panicTypeError())
+ }
+ }
+
+ if self.prototype == nil {
+ return self.extensible, nil, nil
+ }
+
+ property = self.prototype.getProperty(name)
+ if property == nil {
+ return self.extensible, nil, nil
+ }
+
+ switch propertyValue := property.value.(type) {
+ case Value:
+ if !self.extensible {
+ return false, nil, nil
+ }
+ return property.writable(), nil, nil
+ case _propertyGetSet:
+ setter = propertyValue[1]
+ canPut = setter != nil
+ return
+ default:
+ panic(self.runtime.panicTypeError())
+ }
+}
+
+// 8.12.5
+func objectPut(self *_object, name string, value Value, throw bool) {
+
+ if true {
+ // Shortcut...
+ //
+ // So, right now, every class is using objectCanPut and every class
+ // is using objectPut.
+ //
+ // If that were to no longer be the case, we would have to have
+ // something to detect that here, so that we do not use an
+ // incompatible canPut routine
+ canPut, property, setter := _objectCanPut(self, name)
+ if !canPut {
+ self.runtime.typeErrorResult(throw)
+ } else if setter != nil {
+ setter.call(toValue(self), []Value{value}, false, nativeFrame)
+ } else if property != nil {
+ property.value = value
+ self.defineOwnProperty(name, *property, throw)
+ } else {
+ self.defineProperty(name, value, 0111, throw)
+ }
+ return
+ }
+
+ // The long way...
+ //
+ // Right now, code should never get here, see above
+ if !self.canPut(name) {
+ self.runtime.typeErrorResult(throw)
+ return
+ }
+
+ property := self.getOwnProperty(name)
+ if property == nil {
+ property = self.getProperty(name)
+ if property != nil {
+ if getSet, isAccessor := property.value.(_propertyGetSet); isAccessor {
+ getSet[1].call(toValue(self), []Value{value}, false, nativeFrame)
+ return
+ }
+ }
+ self.defineProperty(name, value, 0111, throw)
+ } else {
+ switch propertyValue := property.value.(type) {
+ case Value:
+ property.value = value
+ self.defineOwnProperty(name, *property, throw)
+ case _propertyGetSet:
+ if propertyValue[1] != nil {
+ propertyValue[1].call(toValue(self), []Value{value}, false, nativeFrame)
+ return
+ }
+ if throw {
+ panic(self.runtime.panicTypeError())
+ }
+ default:
+ panic(self.runtime.panicTypeError())
+ }
+ }
+}
+
+// 8.12.6
+func objectHasProperty(self *_object, name string) bool {
+ return self.getProperty(name) != nil
+}
+
+func objectHasOwnProperty(self *_object, name string) bool {
+ return self.getOwnProperty(name) != nil
+}
+
+// 8.12.9
+func objectDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ property, exists := self._read(name)
+ {
+ if !exists {
+ if !self.extensible {
+ goto Reject
+ }
+ if newGetSet, isAccessor := descriptor.value.(_propertyGetSet); isAccessor {
+ if newGetSet[0] == &_nilGetSetObject {
+ newGetSet[0] = nil
+ }
+ if newGetSet[1] == &_nilGetSetObject {
+ newGetSet[1] = nil
+ }
+ descriptor.value = newGetSet
+ }
+ self._write(name, descriptor.value, descriptor.mode)
+ return true
+ }
+ if descriptor.isEmpty() {
+ return true
+ }
+
+ // TODO Per 8.12.9.6 - We should shortcut here (returning true) if
+ // the current and new (define) properties are the same
+
+ configurable := property.configurable()
+ if !configurable {
+ if descriptor.configurable() {
+ goto Reject
+ }
+ // Test that, if enumerable is set on the property descriptor, then it should
+ // be the same as the existing property
+ if descriptor.enumerateSet() && descriptor.enumerable() != property.enumerable() {
+ goto Reject
+ }
+ }
+ value, isDataDescriptor := property.value.(Value)
+ getSet, _ := property.value.(_propertyGetSet)
+ if descriptor.isGenericDescriptor() {
+ // GenericDescriptor
+ } else if isDataDescriptor != descriptor.isDataDescriptor() {
+ // DataDescriptor <=> AccessorDescriptor
+ if !configurable {
+ goto Reject
+ }
+ } else if isDataDescriptor && descriptor.isDataDescriptor() {
+ // DataDescriptor <=> DataDescriptor
+ if !configurable {
+ if !property.writable() && descriptor.writable() {
+ goto Reject
+ }
+ if !property.writable() {
+ if descriptor.value != nil && !sameValue(value, descriptor.value.(Value)) {
+ goto Reject
+ }
+ }
+ }
+ } else {
+ // AccessorDescriptor <=> AccessorDescriptor
+ newGetSet, _ := descriptor.value.(_propertyGetSet)
+ presentGet, presentSet := true, true
+ if newGetSet[0] == &_nilGetSetObject {
+ // Present, but nil
+ newGetSet[0] = nil
+ } else if newGetSet[0] == nil {
+ // Missing, not even nil
+ newGetSet[0] = getSet[0]
+ presentGet = false
+ }
+ if newGetSet[1] == &_nilGetSetObject {
+ // Present, but nil
+ newGetSet[1] = nil
+ } else if newGetSet[1] == nil {
+ // Missing, not even nil
+ newGetSet[1] = getSet[1]
+ presentSet = false
+ }
+ if !configurable {
+ if (presentGet && (getSet[0] != newGetSet[0])) || (presentSet && (getSet[1] != newGetSet[1])) {
+ goto Reject
+ }
+ }
+ descriptor.value = newGetSet
+ }
+ {
+ // This section will preserve attributes of
+ // the original property, if necessary
+ value1 := descriptor.value
+ if value1 == nil {
+ value1 = property.value
+ } else if newGetSet, isAccessor := descriptor.value.(_propertyGetSet); isAccessor {
+ if newGetSet[0] == &_nilGetSetObject {
+ newGetSet[0] = nil
+ }
+ if newGetSet[1] == &_nilGetSetObject {
+ newGetSet[1] = nil
+ }
+ value1 = newGetSet
+ }
+ mode1 := descriptor.mode
+ if mode1&0222 != 0 {
+ // TODO Factor this out into somewhere testable
+ // (Maybe put into switch ...)
+ mode0 := property.mode
+ if mode1&0200 != 0 {
+ if descriptor.isDataDescriptor() {
+ mode1 &= ^0200 // Turn off "writable" missing
+ mode1 |= (mode0 & 0100)
+ }
+ }
+ if mode1&020 != 0 {
+ mode1 |= (mode0 & 010)
+ }
+ if mode1&02 != 0 {
+ mode1 |= (mode0 & 01)
+ }
+ mode1 &= 0311 // 0311 to preserve the non-setting on "writable"
+ }
+ self._write(name, value1, mode1)
+ }
+ return true
+ }
+Reject:
+ if throw {
+ panic(self.runtime.panicTypeError())
+ }
+ return false
+}
+
+func objectDelete(self *_object, name string, throw bool) bool {
+ property_ := self.getOwnProperty(name)
+ if property_ == nil {
+ return true
+ }
+ if property_.configurable() {
+ self._delete(name)
+ return true
+ }
+ return self.runtime.typeErrorResult(throw)
+}
+
+func objectClone(in *_object, out *_object, clone *_clone) *_object {
+ *out = *in
+
+ out.runtime = clone.runtime
+ if out.prototype != nil {
+ out.prototype = clone.object(in.prototype)
+ }
+ out.property = make(map[string]_property, len(in.property))
+ out.propertyOrder = make([]string, len(in.propertyOrder))
+ copy(out.propertyOrder, in.propertyOrder)
+ for index, property := range in.property {
+ out.property[index] = clone.property(property)
+ }
+
+ switch value := in.value.(type) {
+ case _nativeFunctionObject:
+ out.value = value
+ case _bindFunctionObject:
+ out.value = _bindFunctionObject{
+ target: clone.object(value.target),
+ this: clone.value(value.this),
+ argumentList: clone.valueArray(value.argumentList),
+ }
+ case _nodeFunctionObject:
+ out.value = _nodeFunctionObject{
+ node: value.node,
+ stash: clone.stash(value.stash),
+ }
+ case _argumentsObject:
+ out.value = value.clone(clone)
+ }
+
+ return out
+}
diff --git a/vendor/github.com/robertkrimen/otto/otto.go b/vendor/github.com/robertkrimen/otto/otto.go
new file mode 100644
index 000000000..b5b528d53
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/otto.go
@@ -0,0 +1,770 @@
+/*
+Package otto is a JavaScript parser and interpreter written natively in Go.
+
+http://godoc.org/github.com/robertkrimen/otto
+
+ import (
+ "github.com/robertkrimen/otto"
+ )
+
+Run something in the VM
+
+ vm := otto.New()
+ vm.Run(`
+ abc = 2 + 2;
+ console.log("The value of abc is " + abc); // 4
+ `)
+
+Get a value out of the VM
+
+ value, err := vm.Get("abc")
+ value, _ := value.ToInteger()
+ }
+
+Set a number
+
+ vm.Set("def", 11)
+ vm.Run(`
+ console.log("The value of def is " + def);
+ // The value of def is 11
+ `)
+
+Set a string
+
+ vm.Set("xyzzy", "Nothing happens.")
+ vm.Run(`
+ console.log(xyzzy.length); // 16
+ `)
+
+Get the value of an expression
+
+ value, _ = vm.Run("xyzzy.length")
+ {
+ // value is an int64 with a value of 16
+ value, _ := value.ToInteger()
+ }
+
+An error happens
+
+ value, err = vm.Run("abcdefghijlmnopqrstuvwxyz.length")
+ if err != nil {
+ // err = ReferenceError: abcdefghijlmnopqrstuvwxyz is not defined
+ // If there is an error, then value.IsUndefined() is true
+ ...
+ }
+
+Set a Go function
+
+ vm.Set("sayHello", func(call otto.FunctionCall) otto.Value {
+ fmt.Printf("Hello, %s.\n", call.Argument(0).String())
+ return otto.Value{}
+ })
+
+Set a Go function that returns something useful
+
+ vm.Set("twoPlus", func(call otto.FunctionCall) otto.Value {
+ right, _ := call.Argument(0).ToInteger()
+ result, _ := vm.ToValue(2 + right)
+ return result
+ })
+
+Use the functions in JavaScript
+
+ result, _ = vm.Run(`
+ sayHello("Xyzzy"); // Hello, Xyzzy.
+ sayHello(); // Hello, undefined
+
+ result = twoPlus(2.0); // 4
+ `)
+
+Parser
+
+A separate parser is available in the parser package if you're just interested in building an AST.
+
+http://godoc.org/github.com/robertkrimen/otto/parser
+
+Parse and return an AST
+
+ filename := "" // A filename is optional
+ src := `
+ // Sample xyzzy example
+ (function(){
+ if (3.14159 > 0) {
+ console.log("Hello, World.");
+ return;
+ }
+
+ var xyzzy = NaN;
+ console.log("Nothing happens.");
+ return xyzzy;
+ })();
+ `
+
+ // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+ program, err := parser.ParseFile(nil, filename, src, 0)
+
+otto
+
+You can run (Go) JavaScript from the commandline with: http://github.com/robertkrimen/otto/tree/master/otto
+
+ $ go get -v github.com/robertkrimen/otto/otto
+
+Run JavaScript by entering some source on stdin or by giving otto a filename:
+
+ $ otto example.js
+
+underscore
+
+Optionally include the JavaScript utility-belt library, underscore, with this import:
+
+ import (
+ "github.com/robertkrimen/otto"
+ _ "github.com/robertkrimen/otto/underscore"
+ )
+
+ // Now every otto runtime will come loaded with underscore
+
+For more information: http://github.com/robertkrimen/otto/tree/master/underscore
+
+Caveat Emptor
+
+The following are some limitations with otto:
+
+ * "use strict" will parse, but does nothing.
+ * The regular expression engine (re2/regexp) is not fully compatible with the ECMA5 specification.
+ * Otto targets ES5. ES6 features (eg: Typed Arrays) are not supported.
+
+Regular Expression Incompatibility
+
+Go translates JavaScript-style regular expressions into something that is "regexp" compatible via `parser.TransformRegExp`.
+Unfortunately, RegExp requires backtracking for some patterns, and backtracking is not supported by the standard Go engine: https://code.google.com/p/re2/wiki/Syntax
+
+Therefore, the following syntax is incompatible:
+
+ (?=) // Lookahead (positive), currently a parsing error
+ (?!) // Lookahead (backhead), currently a parsing error
+ \1 // Backreference (\1, \2, \3, ...), currently a parsing error
+
+A brief discussion of these limitations: "Regexp (?!re)" https://groups.google.com/forum/?fromgroups=#%21topic/golang-nuts/7qgSDWPIh_E
+
+More information about re2: https://code.google.com/p/re2/
+
+In addition to the above, re2 (Go) has a different definition for \s: [\t\n\f\r ].
+The JavaScript definition, on the other hand, also includes \v, Unicode "Separator, Space", etc.
+
+Halting Problem
+
+If you want to stop long running executions (like third-party code), you can use the interrupt channel to do this:
+
+ package main
+
+ import (
+ "errors"
+ "fmt"
+ "os"
+ "time"
+
+ "github.com/robertkrimen/otto"
+ )
+
+ var halt = errors.New("Stahp")
+
+ func main() {
+ runUnsafe(`var abc = [];`)
+ runUnsafe(`
+ while (true) {
+ // Loop forever
+ }`)
+ }
+
+ func runUnsafe(unsafe string) {
+ start := time.Now()
+ defer func() {
+ duration := time.Since(start)
+ if caught := recover(); caught != nil {
+ if caught == halt {
+ fmt.Fprintf(os.Stderr, "Some code took to long! Stopping after: %v\n", duration)
+ return
+ }
+ panic(caught) // Something else happened, repanic!
+ }
+ fmt.Fprintf(os.Stderr, "Ran code successfully: %v\n", duration)
+ }()
+
+ vm := otto.New()
+ vm.Interrupt = make(chan func(), 1) // The buffer prevents blocking
+
+ go func() {
+ time.Sleep(2 * time.Second) // Stop after two seconds
+ vm.Interrupt <- func() {
+ panic(halt)
+ }
+ }()
+
+ vm.Run(unsafe) // Here be dragons (risky code)
+ }
+
+Where is setTimeout/setInterval?
+
+These timing functions are not actually part of the ECMA-262 specification. Typically, they belong to the `windows` object (in the browser).
+It would not be difficult to provide something like these via Go, but you probably want to wrap otto in an event loop in that case.
+
+For an example of how this could be done in Go with otto, see natto:
+
+http://github.com/robertkrimen/natto
+
+Here is some more discussion of the issue:
+
+* http://book.mixu.net/node/ch2.html
+
+* http://en.wikipedia.org/wiki/Reentrancy_%28computing%29
+
+* http://aaroncrane.co.uk/2009/02/perl_safe_signals/
+
+*/
+package otto
+
+import (
+ "fmt"
+ "strings"
+
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/registry"
+)
+
+// Otto is the representation of the JavaScript runtime. Each instance of Otto has a self-contained namespace.
+type Otto struct {
+ // Interrupt is a channel for interrupting the runtime. You can use this to halt a long running execution, for example.
+ // See "Halting Problem" for more information.
+ Interrupt chan func()
+ runtime *_runtime
+}
+
+// New will allocate a new JavaScript runtime
+func New() *Otto {
+ self := &Otto{
+ runtime: newContext(),
+ }
+ self.runtime.otto = self
+ self.runtime.traceLimit = 10
+ self.Set("console", self.runtime.newConsole())
+
+ registry.Apply(func(entry registry.Entry) {
+ self.Run(entry.Source())
+ })
+
+ return self
+}
+
+func (otto *Otto) clone() *Otto {
+ self := &Otto{
+ runtime: otto.runtime.clone(),
+ }
+ self.runtime.otto = self
+ return self
+}
+
+// Run will allocate a new JavaScript runtime, run the given source
+// on the allocated runtime, and return the runtime, resulting value, and
+// error (if any).
+//
+// src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST always be in UTF-8.
+//
+// src may also be a Script.
+//
+// src may also be a Program, but if the AST has been modified, then runtime behavior is undefined.
+//
+func Run(src interface{}) (*Otto, Value, error) {
+ otto := New()
+ value, err := otto.Run(src) // This already does safety checking
+ return otto, value, err
+}
+
+// Run will run the given source (parsing it first if necessary), returning the resulting value and error (if any)
+//
+// src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST always be in UTF-8.
+//
+// If the runtime is unable to parse source, then this function will return undefined and the parse error (nothing
+// will be evaluated in this case).
+//
+// src may also be a Script.
+//
+// src may also be a Program, but if the AST has been modified, then runtime behavior is undefined.
+//
+func (self Otto) Run(src interface{}) (Value, error) {
+ value, err := self.runtime.cmpl_run(src, nil)
+ if !value.safe() {
+ value = Value{}
+ }
+ return value, err
+}
+
+// Eval will do the same thing as Run, except without leaving the current scope.
+//
+// By staying in the same scope, the code evaluated has access to everything
+// already defined in the current stack frame. This is most useful in, for
+// example, a debugger call.
+func (self Otto) Eval(src interface{}) (Value, error) {
+ if self.runtime.scope == nil {
+ self.runtime.enterGlobalScope()
+ defer self.runtime.leaveScope()
+ }
+
+ value, err := self.runtime.cmpl_eval(src, nil)
+ if !value.safe() {
+ value = Value{}
+ }
+ return value, err
+}
+
+// Get the value of the top-level binding of the given name.
+//
+// If there is an error (like the binding does not exist), then the value
+// will be undefined.
+func (self Otto) Get(name string) (Value, error) {
+ value := Value{}
+ err := catchPanic(func() {
+ value = self.getValue(name)
+ })
+ if !value.safe() {
+ value = Value{}
+ }
+ return value, err
+}
+
+func (self Otto) getValue(name string) Value {
+ return self.runtime.globalStash.getBinding(name, false)
+}
+
+// Set the top-level binding of the given name to the given value.
+//
+// Set will automatically apply ToValue to the given value in order
+// to convert it to a JavaScript value (type Value).
+//
+// If there is an error (like the binding is read-only, or the ToValue conversion
+// fails), then an error is returned.
+//
+// If the top-level binding does not exist, it will be created.
+func (self Otto) Set(name string, value interface{}) error {
+ {
+ value, err := self.ToValue(value)
+ if err != nil {
+ return err
+ }
+ err = catchPanic(func() {
+ self.setValue(name, value)
+ })
+ return err
+ }
+}
+
+func (self Otto) setValue(name string, value Value) {
+ self.runtime.globalStash.setValue(name, value, false)
+}
+
+func (self Otto) SetDebuggerHandler(fn func(vm *Otto)) {
+ self.runtime.debugger = fn
+}
+
+func (self Otto) SetRandomSource(fn func() float64) {
+ self.runtime.random = fn
+}
+
+// SetStackDepthLimit sets an upper limit to the depth of the JavaScript
+// stack. In simpler terms, this limits the number of "nested" function calls
+// you can make in a particular interpreter instance.
+//
+// Note that this doesn't take into account the Go stack depth. If your
+// JavaScript makes a call to a Go function, otto won't keep track of what
+// happens outside the interpreter. So if your Go function is infinitely
+// recursive, you're still in trouble.
+func (self Otto) SetStackDepthLimit(limit int) {
+ self.runtime.stackLimit = limit
+}
+
+// SetStackTraceLimit sets an upper limit to the number of stack frames that
+// otto will use when formatting an error's stack trace. By default, the limit
+// is 10. This is consistent with V8 and SpiderMonkey.
+//
+// TODO: expose via `Error.stackTraceLimit`
+func (self Otto) SetStackTraceLimit(limit int) {
+ self.runtime.traceLimit = limit
+}
+
+// MakeCustomError creates a new Error object with the given name and message,
+// returning it as a Value.
+func (self Otto) MakeCustomError(name, message string) Value {
+ return self.runtime.toValue(self.runtime.newError(name, self.runtime.toValue(message), 0))
+}
+
+// MakeRangeError creates a new RangeError object with the given message,
+// returning it as a Value.
+func (self Otto) MakeRangeError(message string) Value {
+ return self.runtime.toValue(self.runtime.newRangeError(self.runtime.toValue(message)))
+}
+
+// MakeSyntaxError creates a new SyntaxError object with the given message,
+// returning it as a Value.
+func (self Otto) MakeSyntaxError(message string) Value {
+ return self.runtime.toValue(self.runtime.newSyntaxError(self.runtime.toValue(message)))
+}
+
+// MakeTypeError creates a new TypeError object with the given message,
+// returning it as a Value.
+func (self Otto) MakeTypeError(message string) Value {
+ return self.runtime.toValue(self.runtime.newTypeError(self.runtime.toValue(message)))
+}
+
+// Context is a structure that contains information about the current execution
+// context.
+type Context struct {
+ Filename string
+ Line int
+ Column int
+ Callee string
+ Symbols map[string]Value
+ This Value
+ Stacktrace []string
+}
+
+// Context returns the current execution context of the vm, traversing up to
+// ten stack frames, and skipping any innermost native function stack frames.
+func (self Otto) Context() Context {
+ return self.ContextSkip(10, true)
+}
+
+// ContextLimit returns the current execution context of the vm, with a
+// specific limit on the number of stack frames to traverse, skipping any
+// innermost native function stack frames.
+func (self Otto) ContextLimit(limit int) Context {
+ return self.ContextSkip(limit, true)
+}
+
+// ContextSkip returns the current execution context of the vm, with a
+// specific limit on the number of stack frames to traverse, optionally
+// skipping any innermost native function stack frames.
+func (self Otto) ContextSkip(limit int, skipNative bool) (ctx Context) {
+ // Ensure we are operating in a scope
+ if self.runtime.scope == nil {
+ self.runtime.enterGlobalScope()
+ defer self.runtime.leaveScope()
+ }
+
+ scope := self.runtime.scope
+ frame := scope.frame
+
+ for skipNative && frame.native && scope.outer != nil {
+ scope = scope.outer
+ frame = scope.frame
+ }
+
+ // Get location information
+ ctx.Filename = "<unknown>"
+ ctx.Callee = frame.callee
+
+ switch {
+ case frame.native:
+ ctx.Filename = frame.nativeFile
+ ctx.Line = frame.nativeLine
+ ctx.Column = 0
+ case frame.file != nil:
+ ctx.Filename = "<anonymous>"
+
+ if p := frame.file.Position(file.Idx(frame.offset)); p != nil {
+ ctx.Line = p.Line
+ ctx.Column = p.Column
+
+ if p.Filename != "" {
+ ctx.Filename = p.Filename
+ }
+ }
+ }
+
+ // Get the current scope this Value
+ ctx.This = toValue_object(scope.this)
+
+ // Build stacktrace (up to 10 levels deep)
+ ctx.Symbols = make(map[string]Value)
+ ctx.Stacktrace = append(ctx.Stacktrace, frame.location())
+ for limit != 0 {
+ // Get variables
+ stash := scope.lexical
+ for {
+ for _, name := range getStashProperties(stash) {
+ if _, ok := ctx.Symbols[name]; !ok {
+ ctx.Symbols[name] = stash.getBinding(name, true)
+ }
+ }
+ stash = stash.outer()
+ if stash == nil || stash.outer() == nil {
+ break
+ }
+ }
+
+ scope = scope.outer
+ if scope == nil {
+ break
+ }
+ if scope.frame.offset >= 0 {
+ ctx.Stacktrace = append(ctx.Stacktrace, scope.frame.location())
+ }
+ limit--
+ }
+
+ return
+}
+
+// Call the given JavaScript with a given this and arguments.
+//
+// If this is nil, then some special handling takes place to determine the proper
+// this value, falling back to a "standard" invocation if necessary (where this is
+// undefined).
+//
+// If source begins with "new " (A lowercase new followed by a space), then
+// Call will invoke the function constructor rather than performing a function call.
+// In this case, the this argument has no effect.
+//
+// // value is a String object
+// value, _ := vm.Call("Object", nil, "Hello, World.")
+//
+// // Likewise...
+// value, _ := vm.Call("new Object", nil, "Hello, World.")
+//
+// // This will perform a concat on the given array and return the result
+// // value is [ 1, 2, 3, undefined, 4, 5, 6, 7, "abc" ]
+// value, _ := vm.Call(`[ 1, 2, 3, undefined, 4 ].concat`, nil, 5, 6, 7, "abc")
+//
+func (self Otto) Call(source string, this interface{}, argumentList ...interface{}) (Value, error) {
+
+ thisValue := Value{}
+
+ construct := false
+ if strings.HasPrefix(source, "new ") {
+ source = source[4:]
+ construct = true
+ }
+
+ // FIXME enterGlobalScope
+ self.runtime.enterGlobalScope()
+ defer func() {
+ self.runtime.leaveScope()
+ }()
+
+ if !construct && this == nil {
+ program, err := self.runtime.cmpl_parse("", source+"()", nil)
+ if err == nil {
+ if node, ok := program.body[0].(*_nodeExpressionStatement); ok {
+ if node, ok := node.expression.(*_nodeCallExpression); ok {
+ var value Value
+ err := catchPanic(func() {
+ value = self.runtime.cmpl_evaluate_nodeCallExpression(node, argumentList)
+ })
+ if err != nil {
+ return Value{}, err
+ }
+ return value, nil
+ }
+ }
+ }
+ } else {
+ value, err := self.ToValue(this)
+ if err != nil {
+ return Value{}, err
+ }
+ thisValue = value
+ }
+
+ {
+ this := thisValue
+
+ fn, err := self.Run(source)
+ if err != nil {
+ return Value{}, err
+ }
+
+ if construct {
+ result, err := fn.constructSafe(self.runtime, this, argumentList...)
+ if err != nil {
+ return Value{}, err
+ }
+ return result, nil
+ }
+
+ result, err := fn.Call(this, argumentList...)
+ if err != nil {
+ return Value{}, err
+ }
+ return result, nil
+ }
+}
+
+// Object will run the given source and return the result as an object.
+//
+// For example, accessing an existing object:
+//
+// object, _ := vm.Object(`Number`)
+//
+// Or, creating a new object:
+//
+// object, _ := vm.Object(`({ xyzzy: "Nothing happens." })`)
+//
+// Or, creating and assigning an object:
+//
+// object, _ := vm.Object(`xyzzy = {}`)
+// object.Set("volume", 11)
+//
+// If there is an error (like the source does not result in an object), then
+// nil and an error is returned.
+func (self Otto) Object(source string) (*Object, error) {
+ value, err := self.runtime.cmpl_run(source, nil)
+ if err != nil {
+ return nil, err
+ }
+ if value.IsObject() {
+ return value.Object(), nil
+ }
+ return nil, fmt.Errorf("value is not an object")
+}
+
+// ToValue will convert an interface{} value to a value digestible by otto/JavaScript.
+func (self Otto) ToValue(value interface{}) (Value, error) {
+ return self.runtime.safeToValue(value)
+}
+
+// Copy will create a copy/clone of the runtime.
+//
+// Copy is useful for saving some time when creating many similar runtimes.
+//
+// This method works by walking the original runtime and cloning each object, scope, stash,
+// etc. into a new runtime.
+//
+// Be on the lookout for memory leaks or inadvertent sharing of resources.
+func (in *Otto) Copy() *Otto {
+ out := &Otto{
+ runtime: in.runtime.clone(),
+ }
+ out.runtime.otto = out
+ return out
+}
+
+// Object{}
+
+// Object is the representation of a JavaScript object.
+type Object struct {
+ object *_object
+ value Value
+}
+
+func _newObject(object *_object, value Value) *Object {
+ // value MUST contain object!
+ return &Object{
+ object: object,
+ value: value,
+ }
+}
+
+// Call a method on the object.
+//
+// It is essentially equivalent to:
+//
+// var method, _ := object.Get(name)
+// method.Call(object, argumentList...)
+//
+// An undefined value and an error will result if:
+//
+// 1. There is an error during conversion of the argument list
+// 2. The property is not actually a function
+// 3. An (uncaught) exception is thrown
+//
+func (self Object) Call(name string, argumentList ...interface{}) (Value, error) {
+ // TODO: Insert an example using JavaScript below...
+ // e.g., Object("JSON").Call("stringify", ...)
+
+ function, err := self.Get(name)
+ if err != nil {
+ return Value{}, err
+ }
+ return function.Call(self.Value(), argumentList...)
+}
+
+// Value will return self as a value.
+func (self Object) Value() Value {
+ return self.value
+}
+
+// Get the value of the property with the given name.
+func (self Object) Get(name string) (Value, error) {
+ value := Value{}
+ err := catchPanic(func() {
+ value = self.object.get(name)
+ })
+ if !value.safe() {
+ value = Value{}
+ }
+ return value, err
+}
+
+// Set the property of the given name to the given value.
+//
+// An error will result if the setting the property triggers an exception (i.e. read-only),
+// or there is an error during conversion of the given value.
+func (self Object) Set(name string, value interface{}) error {
+ {
+ value, err := self.object.runtime.safeToValue(value)
+ if err != nil {
+ return err
+ }
+ err = catchPanic(func() {
+ self.object.put(name, value, true)
+ })
+ return err
+ }
+}
+
+// Keys gets the keys for the given object.
+//
+// Equivalent to calling Object.keys on the object.
+func (self Object) Keys() []string {
+ var keys []string
+ self.object.enumerate(false, func(name string) bool {
+ keys = append(keys, name)
+ return true
+ })
+ return keys
+}
+
+// KeysByParent gets the keys (and those of the parents) for the given object,
+// in order of "closest" to "furthest".
+func (self Object) KeysByParent() [][]string {
+ var a [][]string
+
+ for o := self.object; o != nil; o = o.prototype {
+ var l []string
+
+ o.enumerate(false, func(name string) bool {
+ l = append(l, name)
+ return true
+ })
+
+ a = append(a, l)
+ }
+
+ return a
+}
+
+// Class will return the class string of the object.
+//
+// The return value will (generally) be one of:
+//
+// Object
+// Function
+// Array
+// String
+// Number
+// Boolean
+// Date
+// RegExp
+//
+func (self Object) Class() string {
+ return self.object.class
+}
diff --git a/vendor/github.com/robertkrimen/otto/otto_.go b/vendor/github.com/robertkrimen/otto/otto_.go
new file mode 100644
index 000000000..304a83150
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/otto_.go
@@ -0,0 +1,178 @@
+package otto
+
+import (
+ "fmt"
+ "regexp"
+ runtime_ "runtime"
+ "strconv"
+ "strings"
+)
+
+var isIdentifier_Regexp *regexp.Regexp = regexp.MustCompile(`^[a-zA-Z\$][a-zA-Z0-9\$]*$`)
+
+func isIdentifier(string_ string) bool {
+ return isIdentifier_Regexp.MatchString(string_)
+}
+
+func (self *_runtime) toValueArray(arguments ...interface{}) []Value {
+ length := len(arguments)
+ if length == 1 {
+ if valueArray, ok := arguments[0].([]Value); ok {
+ return valueArray
+ }
+ return []Value{self.toValue(arguments[0])}
+ }
+
+ valueArray := make([]Value, length)
+ for index, value := range arguments {
+ valueArray[index] = self.toValue(value)
+ }
+
+ return valueArray
+}
+
+func stringToArrayIndex(name string) int64 {
+ index, err := strconv.ParseInt(name, 10, 64)
+ if err != nil {
+ return -1
+ }
+ if index < 0 {
+ return -1
+ }
+ if index >= maxUint32 {
+ // The value 2^32 (or above) is not a valid index because
+ // you cannot store a uint32 length for an index of uint32
+ return -1
+ }
+ return index
+}
+
+func isUint32(value int64) bool {
+ return value >= 0 && value <= maxUint32
+}
+
+func arrayIndexToString(index int64) string {
+ return strconv.FormatInt(index, 10)
+}
+
+func valueOfArrayIndex(array []Value, index int) Value {
+ value, _ := getValueOfArrayIndex(array, index)
+ return value
+}
+
+func getValueOfArrayIndex(array []Value, index int) (Value, bool) {
+ if index >= 0 && index < len(array) {
+ value := array[index]
+ if !value.isEmpty() {
+ return value, true
+ }
+ }
+ return Value{}, false
+}
+
+// A range index can be anything from 0 up to length. It is NOT safe to use as an index
+// to an array, but is useful for slicing and in some ECMA algorithms.
+func valueToRangeIndex(indexValue Value, length int64, negativeIsZero bool) int64 {
+ index := indexValue.number().int64
+ if negativeIsZero {
+ if index < 0 {
+ index = 0
+ }
+ // minimum(index, length)
+ if index >= length {
+ index = length
+ }
+ return index
+ }
+
+ if index < 0 {
+ index += length
+ if index < 0 {
+ index = 0
+ }
+ } else {
+ if index > length {
+ index = length
+ }
+ }
+ return index
+}
+
+func rangeStartEnd(array []Value, size int64, negativeIsZero bool) (start, end int64) {
+ start = valueToRangeIndex(valueOfArrayIndex(array, 0), size, negativeIsZero)
+ if len(array) == 1 {
+ // If there is only the start argument, then end = size
+ end = size
+ return
+ }
+
+ // Assuming the argument is undefined...
+ end = size
+ endValue := valueOfArrayIndex(array, 1)
+ if !endValue.IsUndefined() {
+ // Which it is not, so get the value as an array index
+ end = valueToRangeIndex(endValue, size, negativeIsZero)
+ }
+ return
+}
+
+func rangeStartLength(source []Value, size int64) (start, length int64) {
+ start = valueToRangeIndex(valueOfArrayIndex(source, 0), size, false)
+
+ // Assume the second argument is missing or undefined
+ length = int64(size)
+ if len(source) == 1 {
+ // If there is only the start argument, then length = size
+ return
+ }
+
+ lengthValue := valueOfArrayIndex(source, 1)
+ if !lengthValue.IsUndefined() {
+ // Which it is not, so get the value as an array index
+ length = lengthValue.number().int64
+ }
+ return
+}
+
+func boolFields(input string) (result map[string]bool) {
+ result = map[string]bool{}
+ for _, word := range strings.Fields(input) {
+ result[word] = true
+ }
+ return result
+}
+
+func hereBeDragons(arguments ...interface{}) string {
+ pc, _, _, _ := runtime_.Caller(1)
+ name := runtime_.FuncForPC(pc).Name()
+ message := fmt.Sprintf("Here be dragons -- %s", name)
+ if len(arguments) > 0 {
+ message += ": "
+ argument0 := fmt.Sprintf("%s", arguments[0])
+ if len(arguments) == 1 {
+ message += argument0
+ } else {
+ message += fmt.Sprintf(argument0, arguments[1:]...)
+ }
+ } else {
+ message += "."
+ }
+ return message
+}
+
+func throwHereBeDragons(arguments ...interface{}) {
+ panic(hereBeDragons(arguments...))
+}
+
+func eachPair(list []interface{}, fn func(_0, _1 interface{})) {
+ for len(list) > 0 {
+ var _0, _1 interface{}
+ _0 = list[0]
+ list = list[1:] // Pop off first
+ if len(list) > 0 {
+ _1 = list[0]
+ list = list[1:] // Pop off second
+ }
+ fn(_0, _1)
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/Makefile b/vendor/github.com/robertkrimen/otto/parser/Makefile
new file mode 100644
index 000000000..766fd4d0b
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/Makefile
@@ -0,0 +1,4 @@
+.PHONY: test
+
+test:
+ go test
diff --git a/vendor/github.com/robertkrimen/otto/parser/README.markdown b/vendor/github.com/robertkrimen/otto/parser/README.markdown
new file mode 100644
index 000000000..c3cae5b60
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/README.markdown
@@ -0,0 +1,190 @@
+# parser
+--
+ import "github.com/robertkrimen/otto/parser"
+
+Package parser implements a parser for JavaScript.
+
+ import (
+ "github.com/robertkrimen/otto/parser"
+ )
+
+Parse and return an AST
+
+ filename := "" // A filename is optional
+ src := `
+ // Sample xyzzy example
+ (function(){
+ if (3.14159 > 0) {
+ console.log("Hello, World.");
+ return;
+ }
+
+ var xyzzy = NaN;
+ console.log("Nothing happens.");
+ return xyzzy;
+ })();
+ `
+
+ // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+ program, err := parser.ParseFile(nil, filename, src, 0)
+
+
+### Warning
+
+The parser and AST interfaces are still works-in-progress (particularly where
+node types are concerned) and may change in the future.
+
+## Usage
+
+#### func ParseFile
+
+```go
+func ParseFile(fileSet *file.FileSet, filename string, src interface{}, mode Mode) (*ast.Program, error)
+```
+ParseFile parses the source code of a single JavaScript/ECMAScript source file
+and returns the corresponding ast.Program node.
+
+If fileSet == nil, ParseFile parses source without a FileSet. If fileSet != nil,
+ParseFile first adds filename and src to fileSet.
+
+The filename argument is optional and is used for labelling errors, etc.
+
+src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST
+always be in UTF-8.
+
+ // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+ program, err := parser.ParseFile(nil, "", `if (abc > 1) {}`, 0)
+
+#### func ParseFunction
+
+```go
+func ParseFunction(parameterList, body string) (*ast.FunctionLiteral, error)
+```
+ParseFunction parses a given parameter list and body as a function and returns
+the corresponding ast.FunctionLiteral node.
+
+The parameter list, if any, should be a comma-separated list of identifiers.
+
+#### func ReadSource
+
+```go
+func ReadSource(filename string, src interface{}) ([]byte, error)
+```
+
+#### func TransformRegExp
+
+```go
+func TransformRegExp(pattern string) (string, error)
+```
+TransformRegExp transforms a JavaScript pattern into a Go "regexp" pattern.
+
+re2 (Go) cannot do backtracking, so the presence of a lookahead (?=) (?!) or
+backreference (\1, \2, ...) will cause an error.
+
+re2 (Go) has a different definition for \s: [\t\n\f\r ]. The JavaScript
+definition, on the other hand, also includes \v, Unicode "Separator, Space",
+etc.
+
+If the pattern is invalid (not valid even in JavaScript), then this function
+returns the empty string and an error.
+
+If the pattern is valid, but incompatible (contains a lookahead or
+backreference), then this function returns the transformation (a non-empty
+string) AND an error.
+
+#### type Error
+
+```go
+type Error struct {
+ Position file.Position
+ Message string
+}
+```
+
+An Error represents a parsing error. It includes the position where the error
+occurred and a message/description.
+
+#### func (Error) Error
+
+```go
+func (self Error) Error() string
+```
+
+#### type ErrorList
+
+```go
+type ErrorList []*Error
+```
+
+ErrorList is a list of *Errors.
+
+#### func (*ErrorList) Add
+
+```go
+func (self *ErrorList) Add(position file.Position, msg string)
+```
+Add adds an Error with given position and message to an ErrorList.
+
+#### func (ErrorList) Err
+
+```go
+func (self ErrorList) Err() error
+```
+Err returns an error equivalent to this ErrorList. If the list is empty, Err
+returns nil.
+
+#### func (ErrorList) Error
+
+```go
+func (self ErrorList) Error() string
+```
+Error implements the Error interface.
+
+#### func (ErrorList) Len
+
+```go
+func (self ErrorList) Len() int
+```
+
+#### func (ErrorList) Less
+
+```go
+func (self ErrorList) Less(i, j int) bool
+```
+
+#### func (*ErrorList) Reset
+
+```go
+func (self *ErrorList) Reset()
+```
+Reset resets an ErrorList to no errors.
+
+#### func (ErrorList) Sort
+
+```go
+func (self ErrorList) Sort()
+```
+
+#### func (ErrorList) Swap
+
+```go
+func (self ErrorList) Swap(i, j int)
+```
+
+#### type Mode
+
+```go
+type Mode uint
+```
+
+A Mode value is a set of flags (or 0). They control optional parser
+functionality.
+
+```go
+const (
+ IgnoreRegExpErrors Mode = 1 << iota // Ignore RegExp compatibility errors (allow backtracking)
+)
+```
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/parser/dbg.go b/vendor/github.com/robertkrimen/otto/parser/dbg.go
new file mode 100644
index 000000000..3c5f2f698
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/dbg.go
@@ -0,0 +1,9 @@
+// This file was AUTOMATICALLY GENERATED by dbg-import (smuggol) for github.com/robertkrimen/dbg
+
+package parser
+
+import (
+ Dbg "github.com/robertkrimen/otto/dbg"
+)
+
+var dbg, dbgf = Dbg.New()
diff --git a/vendor/github.com/robertkrimen/otto/parser/error.go b/vendor/github.com/robertkrimen/otto/parser/error.go
new file mode 100644
index 000000000..e0f74a5cf
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/error.go
@@ -0,0 +1,175 @@
+package parser
+
+import (
+ "fmt"
+ "sort"
+
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+)
+
+const (
+ err_UnexpectedToken = "Unexpected token %v"
+ err_UnexpectedEndOfInput = "Unexpected end of input"
+ err_UnexpectedEscape = "Unexpected escape"
+)
+
+// UnexpectedNumber: 'Unexpected number',
+// UnexpectedString: 'Unexpected string',
+// UnexpectedIdentifier: 'Unexpected identifier',
+// UnexpectedReserved: 'Unexpected reserved word',
+// NewlineAfterThrow: 'Illegal newline after throw',
+// InvalidRegExp: 'Invalid regular expression',
+// UnterminatedRegExp: 'Invalid regular expression: missing /',
+// InvalidLHSInAssignment: 'Invalid left-hand side in assignment',
+// InvalidLHSInForIn: 'Invalid left-hand side in for-in',
+// MultipleDefaultsInSwitch: 'More than one default clause in switch statement',
+// NoCatchOrFinally: 'Missing catch or finally after try',
+// UnknownLabel: 'Undefined label \'%0\'',
+// Redeclaration: '%0 \'%1\' has already been declared',
+// IllegalContinue: 'Illegal continue statement',
+// IllegalBreak: 'Illegal break statement',
+// IllegalReturn: 'Illegal return statement',
+// StrictModeWith: 'Strict mode code may not include a with statement',
+// StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',
+// StrictVarName: 'Variable name may not be eval or arguments in strict mode',
+// StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',
+// StrictParamDupe: 'Strict mode function may not have duplicate parameter names',
+// StrictFunctionName: 'Function name may not be eval or arguments in strict mode',
+// StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',
+// StrictDelete: 'Delete of an unqualified identifier in strict mode.',
+// StrictDuplicateProperty: 'Duplicate data property in object literal not allowed in strict mode',
+// AccessorDataProperty: 'Object literal may not have data and accessor property with the same name',
+// AccessorGetSet: 'Object literal may not have multiple get/set accessors with the same name',
+// StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',
+// StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',
+// StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',
+// StrictReservedWord: 'Use of future reserved word in strict mode'
+
+// A SyntaxError is a description of an ECMAScript syntax error.
+
+// An Error represents a parsing error. It includes the position where the error occurred and a message/description.
+type Error struct {
+ Position file.Position
+ Message string
+}
+
+// FIXME Should this be "SyntaxError"?
+
+func (self Error) Error() string {
+ filename := self.Position.Filename
+ if filename == "" {
+ filename = "(anonymous)"
+ }
+ return fmt.Sprintf("%s: Line %d:%d %s",
+ filename,
+ self.Position.Line,
+ self.Position.Column,
+ self.Message,
+ )
+}
+
+func (self *_parser) error(place interface{}, msg string, msgValues ...interface{}) *Error {
+ idx := file.Idx(0)
+ switch place := place.(type) {
+ case int:
+ idx = self.idxOf(place)
+ case file.Idx:
+ if place == 0 {
+ idx = self.idxOf(self.chrOffset)
+ } else {
+ idx = place
+ }
+ default:
+ panic(fmt.Errorf("error(%T, ...)", place))
+ }
+
+ position := self.position(idx)
+ msg = fmt.Sprintf(msg, msgValues...)
+ self.errors.Add(position, msg)
+ return self.errors[len(self.errors)-1]
+}
+
+func (self *_parser) errorUnexpected(idx file.Idx, chr rune) error {
+ if chr == -1 {
+ return self.error(idx, err_UnexpectedEndOfInput)
+ }
+ return self.error(idx, err_UnexpectedToken, token.ILLEGAL)
+}
+
+func (self *_parser) errorUnexpectedToken(tkn token.Token) error {
+ switch tkn {
+ case token.EOF:
+ return self.error(file.Idx(0), err_UnexpectedEndOfInput)
+ }
+ value := tkn.String()
+ switch tkn {
+ case token.BOOLEAN, token.NULL:
+ value = self.literal
+ case token.IDENTIFIER:
+ return self.error(self.idx, "Unexpected identifier")
+ case token.KEYWORD:
+ // TODO Might be a future reserved word
+ return self.error(self.idx, "Unexpected reserved word")
+ case token.NUMBER:
+ return self.error(self.idx, "Unexpected number")
+ case token.STRING:
+ return self.error(self.idx, "Unexpected string")
+ }
+ return self.error(self.idx, err_UnexpectedToken, value)
+}
+
+// ErrorList is a list of *Errors.
+//
+type ErrorList []*Error
+
+// Add adds an Error with given position and message to an ErrorList.
+func (self *ErrorList) Add(position file.Position, msg string) {
+ *self = append(*self, &Error{position, msg})
+}
+
+// Reset resets an ErrorList to no errors.
+func (self *ErrorList) Reset() { *self = (*self)[0:0] }
+
+func (self ErrorList) Len() int { return len(self) }
+func (self ErrorList) Swap(i, j int) { self[i], self[j] = self[j], self[i] }
+func (self ErrorList) Less(i, j int) bool {
+ x := &self[i].Position
+ y := &self[j].Position
+ if x.Filename < y.Filename {
+ return true
+ }
+ if x.Filename == y.Filename {
+ if x.Line < y.Line {
+ return true
+ }
+ if x.Line == y.Line {
+ return x.Column < y.Column
+ }
+ }
+ return false
+}
+
+func (self ErrorList) Sort() {
+ sort.Sort(self)
+}
+
+// Error implements the Error interface.
+func (self ErrorList) Error() string {
+ switch len(self) {
+ case 0:
+ return "no errors"
+ case 1:
+ return self[0].Error()
+ }
+ return fmt.Sprintf("%s (and %d more errors)", self[0].Error(), len(self)-1)
+}
+
+// Err returns an error equivalent to this ErrorList.
+// If the list is empty, Err returns nil.
+func (self ErrorList) Err() error {
+ if len(self) == 0 {
+ return nil
+ }
+ return self
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/expression.go b/vendor/github.com/robertkrimen/otto/parser/expression.go
new file mode 100644
index 000000000..63a169d40
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/expression.go
@@ -0,0 +1,1005 @@
+package parser
+
+import (
+ "regexp"
+
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+)
+
+func (self *_parser) parseIdentifier() *ast.Identifier {
+ literal := self.literal
+ idx := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.LEADING)
+ }
+ self.next()
+ exp := &ast.Identifier{
+ Name: literal,
+ Idx: idx,
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp)
+ }
+
+ return exp
+}
+
+func (self *_parser) parsePrimaryExpression() ast.Expression {
+ literal := self.literal
+ idx := self.idx
+ switch self.token {
+ case token.IDENTIFIER:
+ self.next()
+ if len(literal) > 1 {
+ tkn, strict := token.IsKeyword(literal)
+ if tkn == token.KEYWORD {
+ if !strict {
+ self.error(idx, "Unexpected reserved word")
+ }
+ }
+ }
+ return &ast.Identifier{
+ Name: literal,
+ Idx: idx,
+ }
+ case token.NULL:
+ self.next()
+ return &ast.NullLiteral{
+ Idx: idx,
+ Literal: literal,
+ }
+ case token.BOOLEAN:
+ self.next()
+ value := false
+ switch literal {
+ case "true":
+ value = true
+ case "false":
+ value = false
+ default:
+ self.error(idx, "Illegal boolean literal")
+ }
+ return &ast.BooleanLiteral{
+ Idx: idx,
+ Literal: literal,
+ Value: value,
+ }
+ case token.STRING:
+ self.next()
+ value, err := parseStringLiteral(literal[1 : len(literal)-1])
+ if err != nil {
+ self.error(idx, err.Error())
+ }
+ return &ast.StringLiteral{
+ Idx: idx,
+ Literal: literal,
+ Value: value,
+ }
+ case token.NUMBER:
+ self.next()
+ value, err := parseNumberLiteral(literal)
+ if err != nil {
+ self.error(idx, err.Error())
+ value = 0
+ }
+ return &ast.NumberLiteral{
+ Idx: idx,
+ Literal: literal,
+ Value: value,
+ }
+ case token.SLASH, token.QUOTIENT_ASSIGN:
+ return self.parseRegExpLiteral()
+ case token.LEFT_BRACE:
+ return self.parseObjectLiteral()
+ case token.LEFT_BRACKET:
+ return self.parseArrayLiteral()
+ case token.LEFT_PARENTHESIS:
+ self.expect(token.LEFT_PARENTHESIS)
+ expression := self.parseExpression()
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+ return expression
+ case token.THIS:
+ self.next()
+ return &ast.ThisExpression{
+ Idx: idx,
+ }
+ case token.FUNCTION:
+ return self.parseFunction(false)
+ }
+
+ self.errorUnexpectedToken(self.token)
+ self.nextStatement()
+ return &ast.BadExpression{From: idx, To: self.idx}
+}
+
+func (self *_parser) parseRegExpLiteral() *ast.RegExpLiteral {
+
+ offset := self.chrOffset - 1 // Opening slash already gotten
+ if self.token == token.QUOTIENT_ASSIGN {
+ offset -= 1 // =
+ }
+ idx := self.idxOf(offset)
+
+ pattern, err := self.scanString(offset)
+ endOffset := self.chrOffset
+
+ self.next()
+ if err == nil {
+ pattern = pattern[1 : len(pattern)-1]
+ }
+
+ flags := ""
+ if self.token == token.IDENTIFIER { // gim
+
+ flags = self.literal
+ self.next()
+ endOffset = self.chrOffset - 1
+ }
+
+ var value string
+ // TODO 15.10
+ {
+ // Test during parsing that this is a valid regular expression
+ // Sorry, (?=) and (?!) are invalid (for now)
+ pattern, err := TransformRegExp(pattern)
+ if err != nil {
+ if pattern == "" || self.mode&IgnoreRegExpErrors == 0 {
+ self.error(idx, "Invalid regular expression: %s", err.Error())
+ }
+ } else {
+ _, err = regexp.Compile(pattern)
+ if err != nil {
+ // We should not get here, ParseRegExp should catch any errors
+ self.error(idx, "Invalid regular expression: %s", err.Error()[22:]) // Skip redundant "parse regexp error"
+ } else {
+ value = pattern
+ }
+ }
+ }
+
+ literal := self.str[offset:endOffset]
+
+ return &ast.RegExpLiteral{
+ Idx: idx,
+ Literal: literal,
+ Pattern: pattern,
+ Flags: flags,
+ Value: value,
+ }
+}
+
+func (self *_parser) parseVariableDeclaration(declarationList *[]*ast.VariableExpression) ast.Expression {
+
+ if self.token != token.IDENTIFIER {
+ idx := self.expect(token.IDENTIFIER)
+ self.nextStatement()
+ return &ast.BadExpression{From: idx, To: self.idx}
+ }
+
+ literal := self.literal
+ idx := self.idx
+ self.next()
+ node := &ast.VariableExpression{
+ Name: literal,
+ Idx: idx,
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(node)
+ }
+
+ if declarationList != nil {
+ *declarationList = append(*declarationList, node)
+ }
+
+ if self.token == token.ASSIGN {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ node.Initializer = self.parseAssignmentExpression()
+ }
+
+ return node
+}
+
+func (self *_parser) parseVariableDeclarationList(var_ file.Idx) []ast.Expression {
+
+ var declarationList []*ast.VariableExpression // Avoid bad expressions
+ var list []ast.Expression
+
+ for {
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.LEADING)
+ }
+ decl := self.parseVariableDeclaration(&declarationList)
+ list = append(list, decl)
+ if self.token != token.COMMA {
+ break
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ }
+
+ self.scope.declare(&ast.VariableDeclaration{
+ Var: var_,
+ List: declarationList,
+ })
+
+ return list
+}
+
+func (self *_parser) parseObjectPropertyKey() (string, string) {
+ idx, tkn, literal := self.idx, self.token, self.literal
+ value := ""
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.KEY)
+ }
+ self.next()
+
+ switch tkn {
+ case token.IDENTIFIER:
+ value = literal
+ case token.NUMBER:
+ var err error
+ _, err = parseNumberLiteral(literal)
+ if err != nil {
+ self.error(idx, err.Error())
+ } else {
+ value = literal
+ }
+ case token.STRING:
+ var err error
+ value, err = parseStringLiteral(literal[1 : len(literal)-1])
+ if err != nil {
+ self.error(idx, err.Error())
+ }
+ default:
+ // null, false, class, etc.
+ if matchIdentifier.MatchString(literal) {
+ value = literal
+ }
+ }
+ return literal, value
+}
+
+func (self *_parser) parseObjectProperty() ast.Property {
+ literal, value := self.parseObjectPropertyKey()
+ if literal == "get" && self.token != token.COLON {
+ idx := self.idx
+ _, value := self.parseObjectPropertyKey()
+ parameterList := self.parseFunctionParameterList()
+
+ node := &ast.FunctionLiteral{
+ Function: idx,
+ ParameterList: parameterList,
+ }
+ self.parseFunctionBlock(node)
+ return ast.Property{
+ Key: value,
+ Kind: "get",
+ Value: node,
+ }
+ } else if literal == "set" && self.token != token.COLON {
+ idx := self.idx
+ _, value := self.parseObjectPropertyKey()
+ parameterList := self.parseFunctionParameterList()
+
+ node := &ast.FunctionLiteral{
+ Function: idx,
+ ParameterList: parameterList,
+ }
+ self.parseFunctionBlock(node)
+ return ast.Property{
+ Key: value,
+ Kind: "set",
+ Value: node,
+ }
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.COLON)
+ }
+ self.expect(token.COLON)
+
+ exp := ast.Property{
+ Key: value,
+ Kind: "value",
+ Value: self.parseAssignmentExpression(),
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp.Value)
+ }
+ return exp
+}
+
+func (self *_parser) parseObjectLiteral() ast.Expression {
+ var value []ast.Property
+ idx0 := self.expect(token.LEFT_BRACE)
+ for self.token != token.RIGHT_BRACE && self.token != token.EOF {
+ value = append(value, self.parseObjectProperty())
+ if self.token == token.COMMA {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ continue
+ }
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.FINAL)
+ }
+ idx1 := self.expect(token.RIGHT_BRACE)
+
+ return &ast.ObjectLiteral{
+ LeftBrace: idx0,
+ RightBrace: idx1,
+ Value: value,
+ }
+}
+
+func (self *_parser) parseArrayLiteral() ast.Expression {
+ idx0 := self.expect(token.LEFT_BRACKET)
+ var value []ast.Expression
+ for self.token != token.RIGHT_BRACKET && self.token != token.EOF {
+ if self.token == token.COMMA {
+ // This kind of comment requires a special empty expression node.
+ empty := &ast.EmptyExpression{self.idx, self.idx}
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(empty)
+ self.comments.Unset()
+ }
+ value = append(value, empty)
+ self.next()
+ continue
+ }
+
+ exp := self.parseAssignmentExpression()
+
+ value = append(value, exp)
+ if self.token != token.RIGHT_BRACKET {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.COMMA)
+ }
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.FINAL)
+ }
+ idx1 := self.expect(token.RIGHT_BRACKET)
+
+ return &ast.ArrayLiteral{
+ LeftBracket: idx0,
+ RightBracket: idx1,
+ Value: value,
+ }
+}
+
+func (self *_parser) parseArgumentList() (argumentList []ast.Expression, idx0, idx1 file.Idx) {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ idx0 = self.expect(token.LEFT_PARENTHESIS)
+ if self.token != token.RIGHT_PARENTHESIS {
+ for {
+ exp := self.parseAssignmentExpression()
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp)
+ }
+ argumentList = append(argumentList, exp)
+ if self.token != token.COMMA {
+ break
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ }
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ idx1 = self.expect(token.RIGHT_PARENTHESIS)
+ return
+}
+
+func (self *_parser) parseCallExpression(left ast.Expression) ast.Expression {
+ argumentList, idx0, idx1 := self.parseArgumentList()
+ exp := &ast.CallExpression{
+ Callee: left,
+ LeftParenthesis: idx0,
+ ArgumentList: argumentList,
+ RightParenthesis: idx1,
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp)
+ }
+ return exp
+}
+
+func (self *_parser) parseDotMember(left ast.Expression) ast.Expression {
+ period := self.expect(token.PERIOD)
+
+ literal := self.literal
+ idx := self.idx
+
+ if !matchIdentifier.MatchString(literal) {
+ self.expect(token.IDENTIFIER)
+ self.nextStatement()
+ return &ast.BadExpression{From: period, To: self.idx}
+ }
+
+ self.next()
+
+ return &ast.DotExpression{
+ Left: left,
+ Identifier: &ast.Identifier{
+ Idx: idx,
+ Name: literal,
+ },
+ }
+}
+
+func (self *_parser) parseBracketMember(left ast.Expression) ast.Expression {
+ idx0 := self.expect(token.LEFT_BRACKET)
+ member := self.parseExpression()
+ idx1 := self.expect(token.RIGHT_BRACKET)
+ return &ast.BracketExpression{
+ LeftBracket: idx0,
+ Left: left,
+ Member: member,
+ RightBracket: idx1,
+ }
+}
+
+func (self *_parser) parseNewExpression() ast.Expression {
+ idx := self.expect(token.NEW)
+ callee := self.parseLeftHandSideExpression()
+ node := &ast.NewExpression{
+ New: idx,
+ Callee: callee,
+ }
+ if self.token == token.LEFT_PARENTHESIS {
+ argumentList, idx0, idx1 := self.parseArgumentList()
+ node.ArgumentList = argumentList
+ node.LeftParenthesis = idx0
+ node.RightParenthesis = idx1
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(node)
+ }
+
+ return node
+}
+
+func (self *_parser) parseLeftHandSideExpression() ast.Expression {
+
+ var left ast.Expression
+ if self.token == token.NEW {
+ left = self.parseNewExpression()
+ } else {
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.LEADING)
+ self.comments.MarkPrimary()
+ }
+ left = self.parsePrimaryExpression()
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(left)
+ }
+
+ for {
+ if self.token == token.PERIOD {
+ left = self.parseDotMember(left)
+ } else if self.token == token.LEFT_BRACKET {
+ left = self.parseBracketMember(left)
+ } else {
+ break
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseLeftHandSideExpressionAllowCall() ast.Expression {
+
+ allowIn := self.scope.allowIn
+ self.scope.allowIn = true
+ defer func() {
+ self.scope.allowIn = allowIn
+ }()
+
+ var left ast.Expression
+ if self.token == token.NEW {
+ var newComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ newComments = self.comments.FetchAll()
+ self.comments.MarkComments(ast.LEADING)
+ self.comments.MarkPrimary()
+ }
+ left = self.parseNewExpression()
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(left, newComments, ast.LEADING)
+ }
+ } else {
+ if self.mode&StoreComments != 0 {
+ self.comments.MarkComments(ast.LEADING)
+ self.comments.MarkPrimary()
+ }
+ left = self.parsePrimaryExpression()
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(left)
+ }
+
+ for {
+ if self.token == token.PERIOD {
+ left = self.parseDotMember(left)
+ } else if self.token == token.LEFT_BRACKET {
+ left = self.parseBracketMember(left)
+ } else if self.token == token.LEFT_PARENTHESIS {
+ left = self.parseCallExpression(left)
+ } else {
+ break
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parsePostfixExpression() ast.Expression {
+ operand := self.parseLeftHandSideExpressionAllowCall()
+
+ switch self.token {
+ case token.INCREMENT, token.DECREMENT:
+ // Make sure there is no line terminator here
+ if self.implicitSemicolon {
+ break
+ }
+ tkn := self.token
+ idx := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ switch operand.(type) {
+ case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression:
+ default:
+ self.error(idx, "Invalid left-hand side in assignment")
+ self.nextStatement()
+ return &ast.BadExpression{From: idx, To: self.idx}
+ }
+ exp := &ast.UnaryExpression{
+ Operator: tkn,
+ Idx: idx,
+ Operand: operand,
+ Postfix: true,
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp)
+ }
+
+ return exp
+ }
+
+ return operand
+}
+
+func (self *_parser) parseUnaryExpression() ast.Expression {
+
+ switch self.token {
+ case token.PLUS, token.MINUS, token.NOT, token.BITWISE_NOT:
+ fallthrough
+ case token.DELETE, token.VOID, token.TYPEOF:
+ tkn := self.token
+ idx := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ return &ast.UnaryExpression{
+ Operator: tkn,
+ Idx: idx,
+ Operand: self.parseUnaryExpression(),
+ }
+ case token.INCREMENT, token.DECREMENT:
+ tkn := self.token
+ idx := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ operand := self.parseUnaryExpression()
+ switch operand.(type) {
+ case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression:
+ default:
+ self.error(idx, "Invalid left-hand side in assignment")
+ self.nextStatement()
+ return &ast.BadExpression{From: idx, To: self.idx}
+ }
+ return &ast.UnaryExpression{
+ Operator: tkn,
+ Idx: idx,
+ Operand: operand,
+ }
+ }
+
+ return self.parsePostfixExpression()
+}
+
+func (self *_parser) parseMultiplicativeExpression() ast.Expression {
+ next := self.parseUnaryExpression
+ left := next()
+
+ for self.token == token.MULTIPLY || self.token == token.SLASH ||
+ self.token == token.REMAINDER {
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseAdditiveExpression() ast.Expression {
+ next := self.parseMultiplicativeExpression
+ left := next()
+
+ for self.token == token.PLUS || self.token == token.MINUS {
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseShiftExpression() ast.Expression {
+ next := self.parseAdditiveExpression
+ left := next()
+
+ for self.token == token.SHIFT_LEFT || self.token == token.SHIFT_RIGHT ||
+ self.token == token.UNSIGNED_SHIFT_RIGHT {
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseRelationalExpression() ast.Expression {
+ next := self.parseShiftExpression
+ left := next()
+
+ allowIn := self.scope.allowIn
+ self.scope.allowIn = true
+ defer func() {
+ self.scope.allowIn = allowIn
+ }()
+
+ switch self.token {
+ case token.LESS, token.LESS_OR_EQUAL, token.GREATER, token.GREATER_OR_EQUAL:
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ exp := &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: self.parseRelationalExpression(),
+ Comparison: true,
+ }
+ return exp
+ case token.INSTANCEOF:
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ exp := &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: self.parseRelationalExpression(),
+ }
+ return exp
+ case token.IN:
+ if !allowIn {
+ return left
+ }
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ exp := &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: self.parseRelationalExpression(),
+ }
+ return exp
+ }
+
+ return left
+}
+
+func (self *_parser) parseEqualityExpression() ast.Expression {
+ next := self.parseRelationalExpression
+ left := next()
+
+ for self.token == token.EQUAL || self.token == token.NOT_EQUAL ||
+ self.token == token.STRICT_EQUAL || self.token == token.STRICT_NOT_EQUAL {
+ tkn := self.token
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ Comparison: true,
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseBitwiseAndExpression() ast.Expression {
+ next := self.parseEqualityExpression
+ left := next()
+
+ for self.token == token.AND {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ tkn := self.token
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseBitwiseExclusiveOrExpression() ast.Expression {
+ next := self.parseBitwiseAndExpression
+ left := next()
+
+ for self.token == token.EXCLUSIVE_OR {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ tkn := self.token
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseBitwiseOrExpression() ast.Expression {
+ next := self.parseBitwiseExclusiveOrExpression
+ left := next()
+
+ for self.token == token.OR {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ tkn := self.token
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseLogicalAndExpression() ast.Expression {
+ next := self.parseBitwiseOrExpression
+ left := next()
+
+ for self.token == token.LOGICAL_AND {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ tkn := self.token
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseLogicalOrExpression() ast.Expression {
+ next := self.parseLogicalAndExpression
+ left := next()
+
+ for self.token == token.LOGICAL_OR {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ tkn := self.token
+ self.next()
+
+ left = &ast.BinaryExpression{
+ Operator: tkn,
+ Left: left,
+ Right: next(),
+ }
+ }
+
+ return left
+}
+
+func (self *_parser) parseConditionlExpression() ast.Expression {
+ left := self.parseLogicalOrExpression()
+
+ if self.token == token.QUESTION_MARK {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+
+ consequent := self.parseAssignmentExpression()
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.COLON)
+ exp := &ast.ConditionalExpression{
+ Test: left,
+ Consequent: consequent,
+ Alternate: self.parseAssignmentExpression(),
+ }
+
+ return exp
+ }
+
+ return left
+}
+
+func (self *_parser) parseAssignmentExpression() ast.Expression {
+ left := self.parseConditionlExpression()
+ var operator token.Token
+ switch self.token {
+ case token.ASSIGN:
+ operator = self.token
+ case token.ADD_ASSIGN:
+ operator = token.PLUS
+ case token.SUBTRACT_ASSIGN:
+ operator = token.MINUS
+ case token.MULTIPLY_ASSIGN:
+ operator = token.MULTIPLY
+ case token.QUOTIENT_ASSIGN:
+ operator = token.SLASH
+ case token.REMAINDER_ASSIGN:
+ operator = token.REMAINDER
+ case token.AND_ASSIGN:
+ operator = token.AND
+ case token.AND_NOT_ASSIGN:
+ operator = token.AND_NOT
+ case token.OR_ASSIGN:
+ operator = token.OR
+ case token.EXCLUSIVE_OR_ASSIGN:
+ operator = token.EXCLUSIVE_OR
+ case token.SHIFT_LEFT_ASSIGN:
+ operator = token.SHIFT_LEFT
+ case token.SHIFT_RIGHT_ASSIGN:
+ operator = token.SHIFT_RIGHT
+ case token.UNSIGNED_SHIFT_RIGHT_ASSIGN:
+ operator = token.UNSIGNED_SHIFT_RIGHT
+ }
+
+ if operator != 0 {
+ idx := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ switch left.(type) {
+ case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression:
+ default:
+ self.error(left.Idx0(), "Invalid left-hand side in assignment")
+ self.nextStatement()
+ return &ast.BadExpression{From: idx, To: self.idx}
+ }
+
+ exp := &ast.AssignExpression{
+ Left: left,
+ Operator: operator,
+ Right: self.parseAssignmentExpression(),
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.SetExpression(exp)
+ }
+
+ return exp
+ }
+
+ return left
+}
+
+func (self *_parser) parseExpression() ast.Expression {
+ next := self.parseAssignmentExpression
+ left := next()
+
+ if self.token == token.COMMA {
+ sequence := []ast.Expression{left}
+ for {
+ if self.token != token.COMMA {
+ break
+ }
+ self.next()
+ sequence = append(sequence, next())
+ }
+ return &ast.SequenceExpression{
+ Sequence: sequence,
+ }
+ }
+
+ return left
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/lexer.go b/vendor/github.com/robertkrimen/otto/parser/lexer.go
new file mode 100644
index 000000000..d9d69e124
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/lexer.go
@@ -0,0 +1,866 @@
+package parser
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "regexp"
+ "strconv"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+)
+
+type _chr struct {
+ value rune
+ width int
+}
+
+var matchIdentifier = regexp.MustCompile(`^[$_\p{L}][$_\p{L}\d}]*$`)
+
+func isDecimalDigit(chr rune) bool {
+ return '0' <= chr && chr <= '9'
+}
+
+func digitValue(chr rune) int {
+ switch {
+ case '0' <= chr && chr <= '9':
+ return int(chr - '0')
+ case 'a' <= chr && chr <= 'f':
+ return int(chr - 'a' + 10)
+ case 'A' <= chr && chr <= 'F':
+ return int(chr - 'A' + 10)
+ }
+ return 16 // Larger than any legal digit value
+}
+
+func isDigit(chr rune, base int) bool {
+ return digitValue(chr) < base
+}
+
+func isIdentifierStart(chr rune) bool {
+ return chr == '$' || chr == '_' || chr == '\\' ||
+ 'a' <= chr && chr <= 'z' || 'A' <= chr && chr <= 'Z' ||
+ chr >= utf8.RuneSelf && unicode.IsLetter(chr)
+}
+
+func isIdentifierPart(chr rune) bool {
+ return chr == '$' || chr == '_' || chr == '\\' ||
+ 'a' <= chr && chr <= 'z' || 'A' <= chr && chr <= 'Z' ||
+ '0' <= chr && chr <= '9' ||
+ chr >= utf8.RuneSelf && (unicode.IsLetter(chr) || unicode.IsDigit(chr))
+}
+
+func (self *_parser) scanIdentifier() (string, error) {
+ offset := self.chrOffset
+ parse := false
+ for isIdentifierPart(self.chr) {
+ if self.chr == '\\' {
+ distance := self.chrOffset - offset
+ self.read()
+ if self.chr != 'u' {
+ return "", fmt.Errorf("Invalid identifier escape character: %c (%s)", self.chr, string(self.chr))
+ }
+ parse = true
+ var value rune
+ for j := 0; j < 4; j++ {
+ self.read()
+ decimal, ok := hex2decimal(byte(self.chr))
+ if !ok {
+ return "", fmt.Errorf("Invalid identifier escape character: %c (%s)", self.chr, string(self.chr))
+ }
+ value = value<<4 | decimal
+ }
+ if value == '\\' {
+ return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value))
+ } else if distance == 0 {
+ if !isIdentifierStart(value) {
+ return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value))
+ }
+ } else if distance > 0 {
+ if !isIdentifierPart(value) {
+ return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value))
+ }
+ }
+ }
+ self.read()
+ }
+ literal := string(self.str[offset:self.chrOffset])
+ if parse {
+ return parseStringLiteral(literal)
+ }
+ return literal, nil
+}
+
+// 7.2
+func isLineWhiteSpace(chr rune) bool {
+ switch chr {
+ case '\u0009', '\u000b', '\u000c', '\u0020', '\u00a0', '\ufeff':
+ return true
+ case '\u000a', '\u000d', '\u2028', '\u2029':
+ return false
+ case '\u0085':
+ return false
+ }
+ return unicode.IsSpace(chr)
+}
+
+// 7.3
+func isLineTerminator(chr rune) bool {
+ switch chr {
+ case '\u000a', '\u000d', '\u2028', '\u2029':
+ return true
+ }
+ return false
+}
+
+func (self *_parser) scan() (tkn token.Token, literal string, idx file.Idx) {
+
+ self.implicitSemicolon = false
+
+ for {
+ self.skipWhiteSpace()
+
+ idx = self.idxOf(self.chrOffset)
+ insertSemicolon := false
+
+ switch chr := self.chr; {
+ case isIdentifierStart(chr):
+ var err error
+ literal, err = self.scanIdentifier()
+ if err != nil {
+ tkn = token.ILLEGAL
+ break
+ }
+ if len(literal) > 1 {
+ // Keywords are longer than 1 character, avoid lookup otherwise
+ var strict bool
+ tkn, strict = token.IsKeyword(literal)
+
+ switch tkn {
+
+ case 0: // Not a keyword
+ if literal == "true" || literal == "false" {
+ self.insertSemicolon = true
+ tkn = token.BOOLEAN
+ return
+ } else if literal == "null" {
+ self.insertSemicolon = true
+ tkn = token.NULL
+ return
+ }
+
+ case token.KEYWORD:
+ tkn = token.KEYWORD
+ if strict {
+ // TODO If strict and in strict mode, then this is not a break
+ break
+ }
+ return
+
+ case
+ token.THIS,
+ token.BREAK,
+ token.THROW, // A newline after a throw is not allowed, but we need to detect it
+ token.RETURN,
+ token.CONTINUE,
+ token.DEBUGGER:
+ self.insertSemicolon = true
+ return
+
+ default:
+ return
+
+ }
+ }
+ self.insertSemicolon = true
+ tkn = token.IDENTIFIER
+ return
+ case '0' <= chr && chr <= '9':
+ self.insertSemicolon = true
+ tkn, literal = self.scanNumericLiteral(false)
+ return
+ default:
+ self.read()
+ switch chr {
+ case -1:
+ if self.insertSemicolon {
+ self.insertSemicolon = false
+ self.implicitSemicolon = true
+ }
+ tkn = token.EOF
+ case '\r', '\n', '\u2028', '\u2029':
+ self.insertSemicolon = false
+ self.implicitSemicolon = true
+ self.comments.AtLineBreak()
+ continue
+ case ':':
+ tkn = token.COLON
+ case '.':
+ if digitValue(self.chr) < 10 {
+ insertSemicolon = true
+ tkn, literal = self.scanNumericLiteral(true)
+ } else {
+ tkn = token.PERIOD
+ }
+ case ',':
+ tkn = token.COMMA
+ case ';':
+ tkn = token.SEMICOLON
+ case '(':
+ tkn = token.LEFT_PARENTHESIS
+ case ')':
+ tkn = token.RIGHT_PARENTHESIS
+ insertSemicolon = true
+ case '[':
+ tkn = token.LEFT_BRACKET
+ case ']':
+ tkn = token.RIGHT_BRACKET
+ insertSemicolon = true
+ case '{':
+ tkn = token.LEFT_BRACE
+ case '}':
+ tkn = token.RIGHT_BRACE
+ insertSemicolon = true
+ case '+':
+ tkn = self.switch3(token.PLUS, token.ADD_ASSIGN, '+', token.INCREMENT)
+ if tkn == token.INCREMENT {
+ insertSemicolon = true
+ }
+ case '-':
+ tkn = self.switch3(token.MINUS, token.SUBTRACT_ASSIGN, '-', token.DECREMENT)
+ if tkn == token.DECREMENT {
+ insertSemicolon = true
+ }
+ case '*':
+ tkn = self.switch2(token.MULTIPLY, token.MULTIPLY_ASSIGN)
+ case '/':
+ if self.chr == '/' {
+ if self.mode&StoreComments != 0 {
+ literal := string(self.readSingleLineComment())
+ self.comments.AddComment(ast.NewComment(literal, self.idx))
+ continue
+ }
+ self.skipSingleLineComment()
+ continue
+ } else if self.chr == '*' {
+ if self.mode&StoreComments != 0 {
+ literal = string(self.readMultiLineComment())
+ self.comments.AddComment(ast.NewComment(literal, self.idx))
+ continue
+ }
+ self.skipMultiLineComment()
+ continue
+ } else {
+ // Could be division, could be RegExp literal
+ tkn = self.switch2(token.SLASH, token.QUOTIENT_ASSIGN)
+ insertSemicolon = true
+ }
+ case '%':
+ tkn = self.switch2(token.REMAINDER, token.REMAINDER_ASSIGN)
+ case '^':
+ tkn = self.switch2(token.EXCLUSIVE_OR, token.EXCLUSIVE_OR_ASSIGN)
+ case '<':
+ tkn = self.switch4(token.LESS, token.LESS_OR_EQUAL, '<', token.SHIFT_LEFT, token.SHIFT_LEFT_ASSIGN)
+ case '>':
+ tkn = self.switch6(token.GREATER, token.GREATER_OR_EQUAL, '>', token.SHIFT_RIGHT, token.SHIFT_RIGHT_ASSIGN, '>', token.UNSIGNED_SHIFT_RIGHT, token.UNSIGNED_SHIFT_RIGHT_ASSIGN)
+ case '=':
+ tkn = self.switch2(token.ASSIGN, token.EQUAL)
+ if tkn == token.EQUAL && self.chr == '=' {
+ self.read()
+ tkn = token.STRICT_EQUAL
+ }
+ case '!':
+ tkn = self.switch2(token.NOT, token.NOT_EQUAL)
+ if tkn == token.NOT_EQUAL && self.chr == '=' {
+ self.read()
+ tkn = token.STRICT_NOT_EQUAL
+ }
+ case '&':
+ if self.chr == '^' {
+ self.read()
+ tkn = self.switch2(token.AND_NOT, token.AND_NOT_ASSIGN)
+ } else {
+ tkn = self.switch3(token.AND, token.AND_ASSIGN, '&', token.LOGICAL_AND)
+ }
+ case '|':
+ tkn = self.switch3(token.OR, token.OR_ASSIGN, '|', token.LOGICAL_OR)
+ case '~':
+ tkn = token.BITWISE_NOT
+ case '?':
+ tkn = token.QUESTION_MARK
+ case '"', '\'':
+ insertSemicolon = true
+ tkn = token.STRING
+ var err error
+ literal, err = self.scanString(self.chrOffset - 1)
+ if err != nil {
+ tkn = token.ILLEGAL
+ }
+ default:
+ self.errorUnexpected(idx, chr)
+ tkn = token.ILLEGAL
+ }
+ }
+ self.insertSemicolon = insertSemicolon
+ return
+ }
+}
+
+func (self *_parser) switch2(tkn0, tkn1 token.Token) token.Token {
+ if self.chr == '=' {
+ self.read()
+ return tkn1
+ }
+ return tkn0
+}
+
+func (self *_parser) switch3(tkn0, tkn1 token.Token, chr2 rune, tkn2 token.Token) token.Token {
+ if self.chr == '=' {
+ self.read()
+ return tkn1
+ }
+ if self.chr == chr2 {
+ self.read()
+ return tkn2
+ }
+ return tkn0
+}
+
+func (self *_parser) switch4(tkn0, tkn1 token.Token, chr2 rune, tkn2, tkn3 token.Token) token.Token {
+ if self.chr == '=' {
+ self.read()
+ return tkn1
+ }
+ if self.chr == chr2 {
+ self.read()
+ if self.chr == '=' {
+ self.read()
+ return tkn3
+ }
+ return tkn2
+ }
+ return tkn0
+}
+
+func (self *_parser) switch6(tkn0, tkn1 token.Token, chr2 rune, tkn2, tkn3 token.Token, chr3 rune, tkn4, tkn5 token.Token) token.Token {
+ if self.chr == '=' {
+ self.read()
+ return tkn1
+ }
+ if self.chr == chr2 {
+ self.read()
+ if self.chr == '=' {
+ self.read()
+ return tkn3
+ }
+ if self.chr == chr3 {
+ self.read()
+ if self.chr == '=' {
+ self.read()
+ return tkn5
+ }
+ return tkn4
+ }
+ return tkn2
+ }
+ return tkn0
+}
+
+func (self *_parser) chrAt(index int) _chr {
+ value, width := utf8.DecodeRuneInString(self.str[index:])
+ return _chr{
+ value: value,
+ width: width,
+ }
+}
+
+func (self *_parser) _peek() rune {
+ if self.offset+1 < self.length {
+ return rune(self.str[self.offset+1])
+ }
+ return -1
+}
+
+func (self *_parser) read() {
+ if self.offset < self.length {
+ self.chrOffset = self.offset
+ chr, width := rune(self.str[self.offset]), 1
+ if chr >= utf8.RuneSelf { // !ASCII
+ chr, width = utf8.DecodeRuneInString(self.str[self.offset:])
+ if chr == utf8.RuneError && width == 1 {
+ self.error(self.chrOffset, "Invalid UTF-8 character")
+ }
+ }
+ self.offset += width
+ self.chr = chr
+ } else {
+ self.chrOffset = self.length
+ self.chr = -1 // EOF
+ }
+}
+
+// This is here since the functions are so similar
+func (self *_RegExp_parser) read() {
+ if self.offset < self.length {
+ self.chrOffset = self.offset
+ chr, width := rune(self.str[self.offset]), 1
+ if chr >= utf8.RuneSelf { // !ASCII
+ chr, width = utf8.DecodeRuneInString(self.str[self.offset:])
+ if chr == utf8.RuneError && width == 1 {
+ self.error(self.chrOffset, "Invalid UTF-8 character")
+ }
+ }
+ self.offset += width
+ self.chr = chr
+ } else {
+ self.chrOffset = self.length
+ self.chr = -1 // EOF
+ }
+}
+
+func (self *_parser) readSingleLineComment() (result []rune) {
+ for self.chr != -1 {
+ self.read()
+ if isLineTerminator(self.chr) {
+ return
+ }
+ result = append(result, self.chr)
+ }
+
+ // Get rid of the trailing -1
+ result = result[:len(result)-1]
+
+ return
+}
+
+func (self *_parser) readMultiLineComment() (result []rune) {
+ self.read()
+ for self.chr >= 0 {
+ chr := self.chr
+ self.read()
+ if chr == '*' && self.chr == '/' {
+ self.read()
+ return
+ }
+
+ result = append(result, chr)
+ }
+
+ self.errorUnexpected(0, self.chr)
+
+ return
+}
+
+func (self *_parser) skipSingleLineComment() {
+ for self.chr != -1 {
+ self.read()
+ if isLineTerminator(self.chr) {
+ return
+ }
+ }
+}
+
+func (self *_parser) skipMultiLineComment() {
+ self.read()
+ for self.chr >= 0 {
+ chr := self.chr
+ self.read()
+ if chr == '*' && self.chr == '/' {
+ self.read()
+ return
+ }
+ }
+
+ self.errorUnexpected(0, self.chr)
+}
+
+func (self *_parser) skipWhiteSpace() {
+ for {
+ switch self.chr {
+ case ' ', '\t', '\f', '\v', '\u00a0', '\ufeff':
+ self.read()
+ continue
+ case '\r':
+ if self._peek() == '\n' {
+ self.comments.AtLineBreak()
+ self.read()
+ }
+ fallthrough
+ case '\u2028', '\u2029', '\n':
+ if self.insertSemicolon {
+ return
+ }
+ self.comments.AtLineBreak()
+ self.read()
+ continue
+ }
+ if self.chr >= utf8.RuneSelf {
+ if unicode.IsSpace(self.chr) {
+ self.read()
+ continue
+ }
+ }
+ break
+ }
+}
+
+func (self *_parser) skipLineWhiteSpace() {
+ for isLineWhiteSpace(self.chr) {
+ self.read()
+ }
+}
+
+func (self *_parser) scanMantissa(base int) {
+ for digitValue(self.chr) < base {
+ self.read()
+ }
+}
+
+func (self *_parser) scanEscape(quote rune) {
+
+ var length, base uint32
+ switch self.chr {
+ //case '0', '1', '2', '3', '4', '5', '6', '7':
+ // Octal:
+ // length, base, limit = 3, 8, 255
+ case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"', '\'', '0':
+ self.read()
+ return
+ case '\r', '\n', '\u2028', '\u2029':
+ self.scanNewline()
+ return
+ case 'x':
+ self.read()
+ length, base = 2, 16
+ case 'u':
+ self.read()
+ length, base = 4, 16
+ default:
+ self.read() // Always make progress
+ return
+ }
+
+ var value uint32
+ for ; length > 0 && self.chr != quote && self.chr >= 0; length-- {
+ digit := uint32(digitValue(self.chr))
+ if digit >= base {
+ break
+ }
+ value = value*base + digit
+ self.read()
+ }
+}
+
+func (self *_parser) scanString(offset int) (string, error) {
+ // " ' /
+ quote := rune(self.str[offset])
+
+ for self.chr != quote {
+ chr := self.chr
+ if chr == '\n' || chr == '\r' || chr == '\u2028' || chr == '\u2029' || chr < 0 {
+ goto newline
+ }
+ self.read()
+ if chr == '\\' {
+ if quote == '/' {
+ if self.chr == '\n' || self.chr == '\r' || self.chr == '\u2028' || self.chr == '\u2029' || self.chr < 0 {
+ goto newline
+ }
+ self.read()
+ } else {
+ self.scanEscape(quote)
+ }
+ } else if chr == '[' && quote == '/' {
+ // Allow a slash (/) in a bracket character class ([...])
+ // TODO Fix this, this is hacky...
+ quote = -1
+ } else if chr == ']' && quote == -1 {
+ quote = '/'
+ }
+ }
+
+ // " ' /
+ self.read()
+
+ return string(self.str[offset:self.chrOffset]), nil
+
+newline:
+ self.scanNewline()
+ err := "String not terminated"
+ if quote == '/' {
+ err = "Invalid regular expression: missing /"
+ self.error(self.idxOf(offset), err)
+ }
+ return "", errors.New(err)
+}
+
+func (self *_parser) scanNewline() {
+ if self.chr == '\r' {
+ self.read()
+ if self.chr != '\n' {
+ return
+ }
+ }
+ self.read()
+}
+
+func hex2decimal(chr byte) (value rune, ok bool) {
+ {
+ chr := rune(chr)
+ switch {
+ case '0' <= chr && chr <= '9':
+ return chr - '0', true
+ case 'a' <= chr && chr <= 'f':
+ return chr - 'a' + 10, true
+ case 'A' <= chr && chr <= 'F':
+ return chr - 'A' + 10, true
+ }
+ return
+ }
+}
+
+func parseNumberLiteral(literal string) (value interface{}, err error) {
+ // TODO Is Uint okay? What about -MAX_UINT
+ value, err = strconv.ParseInt(literal, 0, 64)
+ if err == nil {
+ return
+ }
+
+ parseIntErr := err // Save this first error, just in case
+
+ value, err = strconv.ParseFloat(literal, 64)
+ if err == nil {
+ return
+ } else if err.(*strconv.NumError).Err == strconv.ErrRange {
+ // Infinity, etc.
+ return value, nil
+ }
+
+ err = parseIntErr
+
+ if err.(*strconv.NumError).Err == strconv.ErrRange {
+ if len(literal) > 2 && literal[0] == '0' && (literal[1] == 'X' || literal[1] == 'x') {
+ // Could just be a very large number (e.g. 0x8000000000000000)
+ var value float64
+ literal = literal[2:]
+ for _, chr := range literal {
+ digit := digitValue(chr)
+ if digit >= 16 {
+ goto error
+ }
+ value = value*16 + float64(digit)
+ }
+ return value, nil
+ }
+ }
+
+error:
+ return nil, errors.New("Illegal numeric literal")
+}
+
+func parseStringLiteral(literal string) (string, error) {
+ // Best case scenario...
+ if literal == "" {
+ return "", nil
+ }
+
+ // Slightly less-best case scenario...
+ if !strings.ContainsRune(literal, '\\') {
+ return literal, nil
+ }
+
+ str := literal
+ buffer := bytes.NewBuffer(make([]byte, 0, 3*len(literal)/2))
+
+ for len(str) > 0 {
+ switch chr := str[0]; {
+ // We do not explicitly handle the case of the quote
+ // value, which can be: " ' /
+ // This assumes we're already passed a partially well-formed literal
+ case chr >= utf8.RuneSelf:
+ chr, size := utf8.DecodeRuneInString(str)
+ buffer.WriteRune(chr)
+ str = str[size:]
+ continue
+ case chr != '\\':
+ buffer.WriteByte(chr)
+ str = str[1:]
+ continue
+ }
+
+ if len(str) <= 1 {
+ panic("len(str) <= 1")
+ }
+ chr := str[1]
+ var value rune
+ if chr >= utf8.RuneSelf {
+ str = str[1:]
+ var size int
+ value, size = utf8.DecodeRuneInString(str)
+ str = str[size:] // \ + <character>
+ } else {
+ str = str[2:] // \<character>
+ switch chr {
+ case 'b':
+ value = '\b'
+ case 'f':
+ value = '\f'
+ case 'n':
+ value = '\n'
+ case 'r':
+ value = '\r'
+ case 't':
+ value = '\t'
+ case 'v':
+ value = '\v'
+ case 'x', 'u':
+ size := 0
+ switch chr {
+ case 'x':
+ size = 2
+ case 'u':
+ size = 4
+ }
+ if len(str) < size {
+ return "", fmt.Errorf("invalid escape: \\%s: len(%q) != %d", string(chr), str, size)
+ }
+ for j := 0; j < size; j++ {
+ decimal, ok := hex2decimal(str[j])
+ if !ok {
+ return "", fmt.Errorf("invalid escape: \\%s: %q", string(chr), str[:size])
+ }
+ value = value<<4 | decimal
+ }
+ str = str[size:]
+ if chr == 'x' {
+ break
+ }
+ if value > utf8.MaxRune {
+ panic("value > utf8.MaxRune")
+ }
+ case '0':
+ if len(str) == 0 || '0' > str[0] || str[0] > '7' {
+ value = 0
+ break
+ }
+ fallthrough
+ case '1', '2', '3', '4', '5', '6', '7':
+ // TODO strict
+ value = rune(chr) - '0'
+ j := 0
+ for ; j < 2; j++ {
+ if len(str) < j+1 {
+ break
+ }
+ chr := str[j]
+ if '0' > chr || chr > '7' {
+ break
+ }
+ decimal := rune(str[j]) - '0'
+ value = (value << 3) | decimal
+ }
+ str = str[j:]
+ case '\\':
+ value = '\\'
+ case '\'', '"':
+ value = rune(chr)
+ case '\r':
+ if len(str) > 0 {
+ if str[0] == '\n' {
+ str = str[1:]
+ }
+ }
+ fallthrough
+ case '\n':
+ continue
+ default:
+ value = rune(chr)
+ }
+ }
+ buffer.WriteRune(value)
+ }
+
+ return buffer.String(), nil
+}
+
+func (self *_parser) scanNumericLiteral(decimalPoint bool) (token.Token, string) {
+
+ offset := self.chrOffset
+ tkn := token.NUMBER
+
+ if decimalPoint {
+ offset--
+ self.scanMantissa(10)
+ goto exponent
+ }
+
+ if self.chr == '0' {
+ offset := self.chrOffset
+ self.read()
+ if self.chr == 'x' || self.chr == 'X' {
+ // Hexadecimal
+ self.read()
+ if isDigit(self.chr, 16) {
+ self.read()
+ } else {
+ return token.ILLEGAL, self.str[offset:self.chrOffset]
+ }
+ self.scanMantissa(16)
+
+ if self.chrOffset-offset <= 2 {
+ // Only "0x" or "0X"
+ self.error(0, "Illegal hexadecimal number")
+ }
+
+ goto hexadecimal
+ } else if self.chr == '.' {
+ // Float
+ goto float
+ } else {
+ // Octal, Float
+ if self.chr == 'e' || self.chr == 'E' {
+ goto exponent
+ }
+ self.scanMantissa(8)
+ if self.chr == '8' || self.chr == '9' {
+ return token.ILLEGAL, self.str[offset:self.chrOffset]
+ }
+ goto octal
+ }
+ }
+
+ self.scanMantissa(10)
+
+float:
+ if self.chr == '.' {
+ self.read()
+ self.scanMantissa(10)
+ }
+
+exponent:
+ if self.chr == 'e' || self.chr == 'E' {
+ self.read()
+ if self.chr == '-' || self.chr == '+' {
+ self.read()
+ }
+ if isDecimalDigit(self.chr) {
+ self.read()
+ self.scanMantissa(10)
+ } else {
+ return token.ILLEGAL, self.str[offset:self.chrOffset]
+ }
+ }
+
+hexadecimal:
+octal:
+ if isIdentifierStart(self.chr) || isDecimalDigit(self.chr) {
+ return token.ILLEGAL, self.str[offset:self.chrOffset]
+ }
+
+ return tkn, self.str[offset:self.chrOffset]
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/parser.go b/vendor/github.com/robertkrimen/otto/parser/parser.go
new file mode 100644
index 000000000..75b7c500c
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/parser.go
@@ -0,0 +1,344 @@
+/*
+Package parser implements a parser for JavaScript.
+
+ import (
+ "github.com/robertkrimen/otto/parser"
+ )
+
+Parse and return an AST
+
+ filename := "" // A filename is optional
+ src := `
+ // Sample xyzzy example
+ (function(){
+ if (3.14159 > 0) {
+ console.log("Hello, World.");
+ return;
+ }
+
+ var xyzzy = NaN;
+ console.log("Nothing happens.");
+ return xyzzy;
+ })();
+ `
+
+ // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+ program, err := parser.ParseFile(nil, filename, src, 0)
+
+Warning
+
+The parser and AST interfaces are still works-in-progress (particularly where
+node types are concerned) and may change in the future.
+
+*/
+package parser
+
+import (
+ "bytes"
+ "encoding/base64"
+ "errors"
+ "io"
+ "io/ioutil"
+
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/file"
+ "github.com/robertkrimen/otto/token"
+ "gopkg.in/sourcemap.v1"
+)
+
+// A Mode value is a set of flags (or 0). They control optional parser functionality.
+type Mode uint
+
+const (
+ IgnoreRegExpErrors Mode = 1 << iota // Ignore RegExp compatibility errors (allow backtracking)
+ StoreComments // Store the comments from source to the comments map
+)
+
+type _parser struct {
+ str string
+ length int
+ base int
+
+ chr rune // The current character
+ chrOffset int // The offset of current character
+ offset int // The offset after current character (may be greater than 1)
+
+ idx file.Idx // The index of token
+ token token.Token // The token
+ literal string // The literal of the token, if any
+
+ scope *_scope
+ insertSemicolon bool // If we see a newline, then insert an implicit semicolon
+ implicitSemicolon bool // An implicit semicolon exists
+
+ errors ErrorList
+
+ recover struct {
+ // Scratch when trying to seek to the next statement, etc.
+ idx file.Idx
+ count int
+ }
+
+ mode Mode
+
+ file *file.File
+
+ comments *ast.Comments
+}
+
+type Parser interface {
+ Scan() (tkn token.Token, literal string, idx file.Idx)
+}
+
+func _newParser(filename, src string, base int, sm *sourcemap.Consumer) *_parser {
+ return &_parser{
+ chr: ' ', // This is set so we can start scanning by skipping whitespace
+ str: src,
+ length: len(src),
+ base: base,
+ file: file.NewFile(filename, src, base).WithSourceMap(sm),
+ comments: ast.NewComments(),
+ }
+}
+
+// Returns a new Parser.
+func NewParser(filename, src string) Parser {
+ return _newParser(filename, src, 1, nil)
+}
+
+func ReadSource(filename string, src interface{}) ([]byte, error) {
+ if src != nil {
+ switch src := src.(type) {
+ case string:
+ return []byte(src), nil
+ case []byte:
+ return src, nil
+ case *bytes.Buffer:
+ if src != nil {
+ return src.Bytes(), nil
+ }
+ case io.Reader:
+ var bfr bytes.Buffer
+ if _, err := io.Copy(&bfr, src); err != nil {
+ return nil, err
+ }
+ return bfr.Bytes(), nil
+ }
+ return nil, errors.New("invalid source")
+ }
+ return ioutil.ReadFile(filename)
+}
+
+func ReadSourceMap(filename string, src interface{}) (*sourcemap.Consumer, error) {
+ if src == nil {
+ return nil, nil
+ }
+
+ switch src := src.(type) {
+ case string:
+ return sourcemap.Parse(filename, []byte(src))
+ case []byte:
+ return sourcemap.Parse(filename, src)
+ case *bytes.Buffer:
+ if src != nil {
+ return sourcemap.Parse(filename, src.Bytes())
+ }
+ case io.Reader:
+ var bfr bytes.Buffer
+ if _, err := io.Copy(&bfr, src); err != nil {
+ return nil, err
+ }
+ return sourcemap.Parse(filename, bfr.Bytes())
+ case *sourcemap.Consumer:
+ return src, nil
+ }
+
+ return nil, errors.New("invalid sourcemap type")
+}
+
+func ParseFileWithSourceMap(fileSet *file.FileSet, filename string, javascriptSource, sourcemapSource interface{}, mode Mode) (*ast.Program, error) {
+ src, err := ReadSource(filename, javascriptSource)
+ if err != nil {
+ return nil, err
+ }
+
+ if sourcemapSource == nil {
+ lines := bytes.Split(src, []byte("\n"))
+ lastLine := lines[len(lines)-1]
+ if bytes.HasPrefix(lastLine, []byte("//# sourceMappingURL=data:application/json")) {
+ bits := bytes.SplitN(lastLine, []byte(","), 2)
+ if len(bits) == 2 {
+ if d, err := base64.StdEncoding.DecodeString(string(bits[1])); err == nil {
+ sourcemapSource = d
+ }
+ }
+ }
+ }
+
+ sm, err := ReadSourceMap(filename, sourcemapSource)
+ if err != nil {
+ return nil, err
+ }
+
+ base := 1
+ if fileSet != nil {
+ base = fileSet.AddFile(filename, string(src))
+ }
+
+ parser := _newParser(filename, string(src), base, sm)
+ parser.mode = mode
+ program, err := parser.parse()
+ program.Comments = parser.comments.CommentMap
+
+ return program, err
+}
+
+// ParseFile parses the source code of a single JavaScript/ECMAScript source file and returns
+// the corresponding ast.Program node.
+//
+// If fileSet == nil, ParseFile parses source without a FileSet.
+// If fileSet != nil, ParseFile first adds filename and src to fileSet.
+//
+// The filename argument is optional and is used for labelling errors, etc.
+//
+// src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST always be in UTF-8.
+//
+// // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList
+// program, err := parser.ParseFile(nil, "", `if (abc > 1) {}`, 0)
+//
+func ParseFile(fileSet *file.FileSet, filename string, src interface{}, mode Mode) (*ast.Program, error) {
+ return ParseFileWithSourceMap(fileSet, filename, src, nil, mode)
+}
+
+// ParseFunction parses a given parameter list and body as a function and returns the
+// corresponding ast.FunctionLiteral node.
+//
+// The parameter list, if any, should be a comma-separated list of identifiers.
+//
+func ParseFunction(parameterList, body string) (*ast.FunctionLiteral, error) {
+
+ src := "(function(" + parameterList + ") {\n" + body + "\n})"
+
+ parser := _newParser("", src, 1, nil)
+ program, err := parser.parse()
+ if err != nil {
+ return nil, err
+ }
+
+ return program.Body[0].(*ast.ExpressionStatement).Expression.(*ast.FunctionLiteral), nil
+}
+
+// Scan reads a single token from the source at the current offset, increments the offset and
+// returns the token.Token token, a string literal representing the value of the token (if applicable)
+// and it's current file.Idx index.
+func (self *_parser) Scan() (tkn token.Token, literal string, idx file.Idx) {
+ return self.scan()
+}
+
+func (self *_parser) slice(idx0, idx1 file.Idx) string {
+ from := int(idx0) - self.base
+ to := int(idx1) - self.base
+ if from >= 0 && to <= len(self.str) {
+ return self.str[from:to]
+ }
+
+ return ""
+}
+
+func (self *_parser) parse() (*ast.Program, error) {
+ self.next()
+ program := self.parseProgram()
+ if false {
+ self.errors.Sort()
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(program, self.comments.FetchAll(), ast.TRAILING)
+ }
+
+ return program, self.errors.Err()
+}
+
+func (self *_parser) next() {
+ self.token, self.literal, self.idx = self.scan()
+}
+
+func (self *_parser) optionalSemicolon() {
+ if self.token == token.SEMICOLON {
+ self.next()
+ return
+ }
+
+ if self.implicitSemicolon {
+ self.implicitSemicolon = false
+ return
+ }
+
+ if self.token != token.EOF && self.token != token.RIGHT_BRACE {
+ self.expect(token.SEMICOLON)
+ }
+}
+
+func (self *_parser) semicolon() {
+ if self.token != token.RIGHT_PARENTHESIS && self.token != token.RIGHT_BRACE {
+ if self.implicitSemicolon {
+ self.implicitSemicolon = false
+ return
+ }
+
+ self.expect(token.SEMICOLON)
+ }
+}
+
+func (self *_parser) idxOf(offset int) file.Idx {
+ return file.Idx(self.base + offset)
+}
+
+func (self *_parser) expect(value token.Token) file.Idx {
+ idx := self.idx
+ if self.token != value {
+ self.errorUnexpectedToken(self.token)
+ }
+ self.next()
+ return idx
+}
+
+func lineCount(str string) (int, int) {
+ line, last := 0, -1
+ pair := false
+ for index, chr := range str {
+ switch chr {
+ case '\r':
+ line += 1
+ last = index
+ pair = true
+ continue
+ case '\n':
+ if !pair {
+ line += 1
+ }
+ last = index
+ case '\u2028', '\u2029':
+ line += 1
+ last = index + 2
+ }
+ pair = false
+ }
+ return line, last
+}
+
+func (self *_parser) position(idx file.Idx) file.Position {
+ position := file.Position{}
+ offset := int(idx) - self.base
+ str := self.str[:offset]
+ position.Filename = self.file.Name()
+ line, last := lineCount(str)
+ position.Line = 1 + line
+ if last >= 0 {
+ position.Column = offset - last
+ } else {
+ position.Column = 1 + len(str)
+ }
+
+ return position
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/regexp.go b/vendor/github.com/robertkrimen/otto/parser/regexp.go
new file mode 100644
index 000000000..f614dae74
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/regexp.go
@@ -0,0 +1,358 @@
+package parser
+
+import (
+ "bytes"
+ "fmt"
+ "strconv"
+)
+
+type _RegExp_parser struct {
+ str string
+ length int
+
+ chr rune // The current character
+ chrOffset int // The offset of current character
+ offset int // The offset after current character (may be greater than 1)
+
+ errors []error
+ invalid bool // The input is an invalid JavaScript RegExp
+
+ goRegexp *bytes.Buffer
+}
+
+// TransformRegExp transforms a JavaScript pattern into a Go "regexp" pattern.
+//
+// re2 (Go) cannot do backtracking, so the presence of a lookahead (?=) (?!) or
+// backreference (\1, \2, ...) will cause an error.
+//
+// re2 (Go) has a different definition for \s: [\t\n\f\r ].
+// The JavaScript definition, on the other hand, also includes \v, Unicode "Separator, Space", etc.
+//
+// If the pattern is invalid (not valid even in JavaScript), then this function
+// returns the empty string and an error.
+//
+// If the pattern is valid, but incompatible (contains a lookahead or backreference),
+// then this function returns the transformation (a non-empty string) AND an error.
+func TransformRegExp(pattern string) (string, error) {
+
+ if pattern == "" {
+ return "", nil
+ }
+
+ // TODO If without \, if without (?=, (?!, then another shortcut
+
+ parser := _RegExp_parser{
+ str: pattern,
+ length: len(pattern),
+ goRegexp: bytes.NewBuffer(make([]byte, 0, 3*len(pattern)/2)),
+ }
+ parser.read() // Pull in the first character
+ parser.scan()
+ var err error
+ if len(parser.errors) > 0 {
+ err = parser.errors[0]
+ }
+ if parser.invalid {
+ return "", err
+ }
+
+ // Might not be re2 compatible, but is still a valid JavaScript RegExp
+ return parser.goRegexp.String(), err
+}
+
+func (self *_RegExp_parser) scan() {
+ for self.chr != -1 {
+ switch self.chr {
+ case '\\':
+ self.read()
+ self.scanEscape(false)
+ case '(':
+ self.pass()
+ self.scanGroup()
+ case '[':
+ self.pass()
+ self.scanBracket()
+ case ')':
+ self.error(-1, "Unmatched ')'")
+ self.invalid = true
+ self.pass()
+ default:
+ self.pass()
+ }
+ }
+}
+
+// (...)
+func (self *_RegExp_parser) scanGroup() {
+ str := self.str[self.chrOffset:]
+ if len(str) > 1 { // A possibility of (?= or (?!
+ if str[0] == '?' {
+ if str[1] == '=' || str[1] == '!' {
+ self.error(-1, "re2: Invalid (%s) <lookahead>", self.str[self.chrOffset:self.chrOffset+2])
+ }
+ }
+ }
+ for self.chr != -1 && self.chr != ')' {
+ switch self.chr {
+ case '\\':
+ self.read()
+ self.scanEscape(false)
+ case '(':
+ self.pass()
+ self.scanGroup()
+ case '[':
+ self.pass()
+ self.scanBracket()
+ default:
+ self.pass()
+ continue
+ }
+ }
+ if self.chr != ')' {
+ self.error(-1, "Unterminated group")
+ self.invalid = true
+ return
+ }
+ self.pass()
+}
+
+// [...]
+func (self *_RegExp_parser) scanBracket() {
+ for self.chr != -1 {
+ if self.chr == ']' {
+ break
+ } else if self.chr == '\\' {
+ self.read()
+ self.scanEscape(true)
+ continue
+ }
+ self.pass()
+ }
+ if self.chr != ']' {
+ self.error(-1, "Unterminated character class")
+ self.invalid = true
+ return
+ }
+ self.pass()
+}
+
+// \...
+func (self *_RegExp_parser) scanEscape(inClass bool) {
+ offset := self.chrOffset
+
+ var length, base uint32
+ switch self.chr {
+
+ case '0', '1', '2', '3', '4', '5', '6', '7':
+ var value int64
+ size := 0
+ for {
+ digit := int64(digitValue(self.chr))
+ if digit >= 8 {
+ // Not a valid digit
+ break
+ }
+ value = value*8 + digit
+ self.read()
+ size += 1
+ }
+ if size == 1 { // The number of characters read
+ _, err := self.goRegexp.Write([]byte{'\\', byte(value) + '0'})
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ if value != 0 {
+ // An invalid backreference
+ self.error(-1, "re2: Invalid \\%d <backreference>", value)
+ }
+ return
+ }
+ tmp := []byte{'\\', 'x', '0', 0}
+ if value >= 16 {
+ tmp = tmp[0:2]
+ } else {
+ tmp = tmp[0:3]
+ }
+ tmp = strconv.AppendInt(tmp, value, 16)
+ _, err := self.goRegexp.Write(tmp)
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ return
+
+ case '8', '9':
+ size := 0
+ for {
+ digit := digitValue(self.chr)
+ if digit >= 10 {
+ // Not a valid digit
+ break
+ }
+ self.read()
+ size += 1
+ }
+ err := self.goRegexp.WriteByte('\\')
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ _, err = self.goRegexp.WriteString(self.str[offset:self.chrOffset])
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ self.error(-1, "re2: Invalid \\%s <backreference>", self.str[offset:self.chrOffset])
+ return
+
+ case 'x':
+ self.read()
+ length, base = 2, 16
+
+ case 'u':
+ self.read()
+ length, base = 4, 16
+
+ case 'b':
+ if inClass {
+ _, err := self.goRegexp.Write([]byte{'\\', 'x', '0', '8'})
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ self.read()
+ return
+ }
+ fallthrough
+
+ case 'B':
+ fallthrough
+
+ case 'd', 'D', 's', 'S', 'w', 'W':
+ // This is slightly broken, because ECMAScript
+ // includes \v in \s, \S, while re2 does not
+ fallthrough
+
+ case '\\':
+ fallthrough
+
+ case 'f', 'n', 'r', 't', 'v':
+ err := self.goRegexp.WriteByte('\\')
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ self.pass()
+ return
+
+ case 'c':
+ self.read()
+ var value int64
+ if 'a' <= self.chr && self.chr <= 'z' {
+ value = int64(self.chr) - 'a' + 1
+ } else if 'A' <= self.chr && self.chr <= 'Z' {
+ value = int64(self.chr) - 'A' + 1
+ } else {
+ err := self.goRegexp.WriteByte('c')
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ return
+ }
+ tmp := []byte{'\\', 'x', '0', 0}
+ if value >= 16 {
+ tmp = tmp[0:2]
+ } else {
+ tmp = tmp[0:3]
+ }
+ tmp = strconv.AppendInt(tmp, value, 16)
+ _, err := self.goRegexp.Write(tmp)
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ self.read()
+ return
+
+ default:
+ // $ is an identifier character, so we have to have
+ // a special case for it here
+ if self.chr == '$' || !isIdentifierPart(self.chr) {
+ // A non-identifier character needs escaping
+ err := self.goRegexp.WriteByte('\\')
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ } else {
+ // Unescape the character for re2
+ }
+ self.pass()
+ return
+ }
+
+ // Otherwise, we're a \u.... or \x...
+ valueOffset := self.chrOffset
+
+ var value uint32
+ {
+ length := length
+ for ; length > 0; length-- {
+ digit := uint32(digitValue(self.chr))
+ if digit >= base {
+ // Not a valid digit
+ goto skip
+ }
+ value = value*base + digit
+ self.read()
+ }
+ }
+
+ if length == 4 {
+ _, err := self.goRegexp.Write([]byte{
+ '\\',
+ 'x',
+ '{',
+ self.str[valueOffset+0],
+ self.str[valueOffset+1],
+ self.str[valueOffset+2],
+ self.str[valueOffset+3],
+ '}',
+ })
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ } else if length == 2 {
+ _, err := self.goRegexp.Write([]byte{
+ '\\',
+ 'x',
+ self.str[valueOffset+0],
+ self.str[valueOffset+1],
+ })
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ } else {
+ // Should never, ever get here...
+ self.error(-1, "re2: Illegal branch in scanEscape")
+ goto skip
+ }
+
+ return
+
+skip:
+ _, err := self.goRegexp.WriteString(self.str[offset:self.chrOffset])
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+}
+
+func (self *_RegExp_parser) pass() {
+ if self.chr != -1 {
+ _, err := self.goRegexp.WriteRune(self.chr)
+ if err != nil {
+ self.errors = append(self.errors, err)
+ }
+ }
+ self.read()
+}
+
+// TODO Better error reporting, use the offset, etc.
+func (self *_RegExp_parser) error(offset int, msg string, msgValues ...interface{}) error {
+ err := fmt.Errorf(msg, msgValues...)
+ self.errors = append(self.errors, err)
+ return err
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/scope.go b/vendor/github.com/robertkrimen/otto/parser/scope.go
new file mode 100644
index 000000000..e1dbdda13
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/scope.go
@@ -0,0 +1,44 @@
+package parser
+
+import (
+ "github.com/robertkrimen/otto/ast"
+)
+
+type _scope struct {
+ outer *_scope
+ allowIn bool
+ inIteration bool
+ inSwitch bool
+ inFunction bool
+ declarationList []ast.Declaration
+
+ labels []string
+}
+
+func (self *_parser) openScope() {
+ self.scope = &_scope{
+ outer: self.scope,
+ allowIn: true,
+ }
+}
+
+func (self *_parser) closeScope() {
+ self.scope = self.scope.outer
+}
+
+func (self *_scope) declare(declaration ast.Declaration) {
+ self.declarationList = append(self.declarationList, declaration)
+}
+
+func (self *_scope) hasLabel(name string) bool {
+ for _, label := range self.labels {
+ if label == name {
+ return true
+ }
+ }
+ if self.outer != nil && !self.inFunction {
+ // Crossing a function boundary to look for a label is verboten
+ return self.outer.hasLabel(name)
+ }
+ return false
+}
diff --git a/vendor/github.com/robertkrimen/otto/parser/statement.go b/vendor/github.com/robertkrimen/otto/parser/statement.go
new file mode 100644
index 000000000..6ff19d975
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/parser/statement.go
@@ -0,0 +1,938 @@
+package parser
+
+import (
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/token"
+)
+
+func (self *_parser) parseBlockStatement() *ast.BlockStatement {
+ node := &ast.BlockStatement{}
+
+ // Find comments before the leading brace
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, self.comments.FetchAll(), ast.LEADING)
+ self.comments.Unset()
+ }
+
+ node.LeftBrace = self.expect(token.LEFT_BRACE)
+ node.List = self.parseStatementList()
+
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ self.comments.CommentMap.AddComments(node, self.comments.FetchAll(), ast.FINAL)
+ self.comments.AfterBlock()
+ }
+
+ node.RightBrace = self.expect(token.RIGHT_BRACE)
+
+ // Find comments after the trailing brace
+ if self.mode&StoreComments != 0 {
+ self.comments.ResetLineBreak()
+ self.comments.CommentMap.AddComments(node, self.comments.Fetch(), ast.TRAILING)
+ }
+
+ return node
+}
+
+func (self *_parser) parseEmptyStatement() ast.Statement {
+ idx := self.expect(token.SEMICOLON)
+ return &ast.EmptyStatement{Semicolon: idx}
+}
+
+func (self *_parser) parseStatementList() (list []ast.Statement) {
+ for self.token != token.RIGHT_BRACE && self.token != token.EOF {
+ statement := self.parseStatement()
+ list = append(list, statement)
+ }
+
+ return
+}
+
+func (self *_parser) parseStatement() ast.Statement {
+
+ if self.token == token.EOF {
+ self.errorUnexpectedToken(self.token)
+ return &ast.BadStatement{From: self.idx, To: self.idx + 1}
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.ResetLineBreak()
+ }
+
+ switch self.token {
+ case token.SEMICOLON:
+ return self.parseEmptyStatement()
+ case token.LEFT_BRACE:
+ return self.parseBlockStatement()
+ case token.IF:
+ return self.parseIfStatement()
+ case token.DO:
+ statement := self.parseDoWhileStatement()
+ self.comments.PostProcessNode(statement)
+ return statement
+ case token.WHILE:
+ return self.parseWhileStatement()
+ case token.FOR:
+ return self.parseForOrForInStatement()
+ case token.BREAK:
+ return self.parseBreakStatement()
+ case token.CONTINUE:
+ return self.parseContinueStatement()
+ case token.DEBUGGER:
+ return self.parseDebuggerStatement()
+ case token.WITH:
+ return self.parseWithStatement()
+ case token.VAR:
+ return self.parseVariableStatement()
+ case token.FUNCTION:
+ return self.parseFunctionStatement()
+ case token.SWITCH:
+ return self.parseSwitchStatement()
+ case token.RETURN:
+ return self.parseReturnStatement()
+ case token.THROW:
+ return self.parseThrowStatement()
+ case token.TRY:
+ return self.parseTryStatement()
+ }
+
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+
+ expression := self.parseExpression()
+
+ if identifier, isIdentifier := expression.(*ast.Identifier); isIdentifier && self.token == token.COLON {
+ // LabelledStatement
+ colon := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next() // :
+
+ label := identifier.Name
+ for _, value := range self.scope.labels {
+ if label == value {
+ self.error(identifier.Idx0(), "Label '%s' already exists", label)
+ }
+ }
+ var labelComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ labelComments = self.comments.FetchAll()
+ }
+ self.scope.labels = append(self.scope.labels, label) // Push the label
+ statement := self.parseStatement()
+ self.scope.labels = self.scope.labels[:len(self.scope.labels)-1] // Pop the label
+ exp := &ast.LabelledStatement{
+ Label: identifier,
+ Colon: colon,
+ Statement: statement,
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(exp, labelComments, ast.LEADING)
+ }
+
+ return exp
+ }
+
+ self.optionalSemicolon()
+
+ statement := &ast.ExpressionStatement{
+ Expression: expression,
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(statement, comments, ast.LEADING)
+ }
+ return statement
+}
+
+func (self *_parser) parseTryStatement() ast.Statement {
+ var tryComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ tryComments = self.comments.FetchAll()
+ }
+ node := &ast.TryStatement{
+ Try: self.expect(token.TRY),
+ Body: self.parseBlockStatement(),
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, tryComments, ast.LEADING)
+ self.comments.CommentMap.AddComments(node.Body, self.comments.FetchAll(), ast.TRAILING)
+ }
+
+ if self.token == token.CATCH {
+ catch := self.idx
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ self.expect(token.LEFT_PARENTHESIS)
+ if self.token != token.IDENTIFIER {
+ self.expect(token.IDENTIFIER)
+ self.nextStatement()
+ return &ast.BadStatement{From: catch, To: self.idx}
+ } else {
+ identifier := self.parseIdentifier()
+ self.expect(token.RIGHT_PARENTHESIS)
+ node.Catch = &ast.CatchStatement{
+ Catch: catch,
+ Parameter: identifier,
+ Body: self.parseBlockStatement(),
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node.Catch.Body, self.comments.FetchAll(), ast.TRAILING)
+ }
+ }
+ }
+
+ if self.token == token.FINALLY {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next()
+ if self.mode&StoreComments != 0 {
+ tryComments = self.comments.FetchAll()
+ }
+
+ node.Finally = self.parseBlockStatement()
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node.Finally, tryComments, ast.LEADING)
+ }
+ }
+
+ if node.Catch == nil && node.Finally == nil {
+ self.error(node.Try, "Missing catch or finally after try")
+ return &ast.BadStatement{From: node.Try, To: node.Body.Idx1()}
+ }
+
+ return node
+}
+
+func (self *_parser) parseFunctionParameterList() *ast.ParameterList {
+ opening := self.expect(token.LEFT_PARENTHESIS)
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ var list []*ast.Identifier
+ for self.token != token.RIGHT_PARENTHESIS && self.token != token.EOF {
+ if self.token != token.IDENTIFIER {
+ self.expect(token.IDENTIFIER)
+ } else {
+ identifier := self.parseIdentifier()
+ list = append(list, identifier)
+ }
+ if self.token != token.RIGHT_PARENTHESIS {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.COMMA)
+ }
+ }
+ closing := self.expect(token.RIGHT_PARENTHESIS)
+
+ return &ast.ParameterList{
+ Opening: opening,
+ List: list,
+ Closing: closing,
+ }
+}
+
+func (self *_parser) parseParameterList() (list []string) {
+ for self.token != token.EOF {
+ if self.token != token.IDENTIFIER {
+ self.expect(token.IDENTIFIER)
+ }
+ list = append(list, self.literal)
+ self.next()
+ if self.token != token.EOF {
+ self.expect(token.COMMA)
+ }
+ }
+ return
+}
+
+func (self *_parser) parseFunctionStatement() *ast.FunctionStatement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ function := &ast.FunctionStatement{
+ Function: self.parseFunction(true),
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(function, comments, ast.LEADING)
+ }
+
+ return function
+}
+
+func (self *_parser) parseFunction(declaration bool) *ast.FunctionLiteral {
+
+ node := &ast.FunctionLiteral{
+ Function: self.expect(token.FUNCTION),
+ }
+
+ var name *ast.Identifier
+ if self.token == token.IDENTIFIER {
+ name = self.parseIdentifier()
+ if declaration {
+ self.scope.declare(&ast.FunctionDeclaration{
+ Function: node,
+ })
+ }
+ } else if declaration {
+ // Use expect error handling
+ self.expect(token.IDENTIFIER)
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ node.Name = name
+ node.ParameterList = self.parseFunctionParameterList()
+ self.parseFunctionBlock(node)
+ node.Source = self.slice(node.Idx0(), node.Idx1())
+
+ return node
+}
+
+func (self *_parser) parseFunctionBlock(node *ast.FunctionLiteral) {
+ {
+ self.openScope()
+ inFunction := self.scope.inFunction
+ self.scope.inFunction = true
+ defer func() {
+ self.scope.inFunction = inFunction
+ self.closeScope()
+ }()
+ node.Body = self.parseBlockStatement()
+ node.DeclarationList = self.scope.declarationList
+ }
+}
+
+func (self *_parser) parseDebuggerStatement() ast.Statement {
+ idx := self.expect(token.DEBUGGER)
+
+ node := &ast.DebuggerStatement{
+ Debugger: idx,
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, self.comments.FetchAll(), ast.TRAILING)
+ }
+
+ self.semicolon()
+ return node
+}
+
+func (self *_parser) parseReturnStatement() ast.Statement {
+ idx := self.expect(token.RETURN)
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+
+ if !self.scope.inFunction {
+ self.error(idx, "Illegal return statement")
+ self.nextStatement()
+ return &ast.BadStatement{From: idx, To: self.idx}
+ }
+
+ node := &ast.ReturnStatement{
+ Return: idx,
+ }
+
+ if !self.implicitSemicolon && self.token != token.SEMICOLON && self.token != token.RIGHT_BRACE && self.token != token.EOF {
+ node.Argument = self.parseExpression()
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ }
+
+ self.semicolon()
+
+ return node
+}
+
+func (self *_parser) parseThrowStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ idx := self.expect(token.THROW)
+
+ if self.implicitSemicolon {
+ if self.chr == -1 { // Hackish
+ self.error(idx, "Unexpected end of input")
+ } else {
+ self.error(idx, "Illegal newline after throw")
+ }
+ self.nextStatement()
+ return &ast.BadStatement{From: idx, To: self.idx}
+ }
+
+ node := &ast.ThrowStatement{
+ Argument: self.parseExpression(),
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ }
+
+ self.semicolon()
+
+ return node
+}
+
+func (self *_parser) parseSwitchStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ self.expect(token.SWITCH)
+ if self.mode&StoreComments != 0 {
+ comments = append(comments, self.comments.FetchAll()...)
+ }
+ self.expect(token.LEFT_PARENTHESIS)
+ node := &ast.SwitchStatement{
+ Discriminant: self.parseExpression(),
+ Default: -1,
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+ if self.mode&StoreComments != 0 {
+ comments = append(comments, self.comments.FetchAll()...)
+ }
+
+ self.expect(token.LEFT_BRACE)
+
+ inSwitch := self.scope.inSwitch
+ self.scope.inSwitch = true
+ defer func() {
+ self.scope.inSwitch = inSwitch
+ }()
+
+ for index := 0; self.token != token.EOF; index++ {
+ if self.token == token.RIGHT_BRACE {
+ self.next()
+ break
+ }
+
+ clause := self.parseCaseStatement()
+ if clause.Test == nil {
+ if node.Default != -1 {
+ self.error(clause.Case, "Already saw a default in switch")
+ }
+ node.Default = index
+ }
+ node.Body = append(node.Body, clause)
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ }
+
+ return node
+}
+
+func (self *_parser) parseWithStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ self.expect(token.WITH)
+ var withComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ withComments = self.comments.FetchAll()
+ }
+
+ self.expect(token.LEFT_PARENTHESIS)
+
+ node := &ast.WithStatement{
+ Object: self.parseExpression(),
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+
+ if self.mode&StoreComments != 0 {
+ //comments = append(comments, self.comments.FetchAll()...)
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(node, withComments, ast.WITH)
+ }
+
+ node.Body = self.parseStatement()
+
+ return node
+}
+
+func (self *_parser) parseCaseStatement() *ast.CaseStatement {
+ node := &ast.CaseStatement{
+ Case: self.idx,
+ }
+
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ self.comments.Unset()
+ }
+
+ if self.token == token.DEFAULT {
+ self.next()
+ } else {
+ self.expect(token.CASE)
+ node.Test = self.parseExpression()
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.COLON)
+
+ for {
+ if self.token == token.EOF ||
+ self.token == token.RIGHT_BRACE ||
+ self.token == token.CASE ||
+ self.token == token.DEFAULT {
+ break
+ }
+ consequent := self.parseStatement()
+ node.Consequent = append(node.Consequent, consequent)
+ }
+
+ // Link the comments to the case statement
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ }
+
+ return node
+}
+
+func (self *_parser) parseIterationStatement() ast.Statement {
+ inIteration := self.scope.inIteration
+ self.scope.inIteration = true
+ defer func() {
+ self.scope.inIteration = inIteration
+ }()
+ return self.parseStatement()
+}
+
+func (self *_parser) parseForIn(into ast.Expression) *ast.ForInStatement {
+
+ // Already have consumed "<into> in"
+
+ source := self.parseExpression()
+ self.expect(token.RIGHT_PARENTHESIS)
+ body := self.parseIterationStatement()
+
+ forin := &ast.ForInStatement{
+ Into: into,
+ Source: source,
+ Body: body,
+ }
+
+ return forin
+}
+
+func (self *_parser) parseFor(initializer ast.Expression) *ast.ForStatement {
+
+ // Already have consumed "<initializer> ;"
+
+ var test, update ast.Expression
+
+ if self.token != token.SEMICOLON {
+ test = self.parseExpression()
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.SEMICOLON)
+
+ if self.token != token.RIGHT_PARENTHESIS {
+ update = self.parseExpression()
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+ body := self.parseIterationStatement()
+
+ forstatement := &ast.ForStatement{
+ Initializer: initializer,
+ Test: test,
+ Update: update,
+ Body: body,
+ }
+
+ return forstatement
+}
+
+func (self *_parser) parseForOrForInStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ idx := self.expect(token.FOR)
+ var forComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ forComments = self.comments.FetchAll()
+ }
+ self.expect(token.LEFT_PARENTHESIS)
+
+ var left []ast.Expression
+
+ forIn := false
+ if self.token != token.SEMICOLON {
+
+ allowIn := self.scope.allowIn
+ self.scope.allowIn = false
+ if self.token == token.VAR {
+ var_ := self.idx
+ var varComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ varComments = self.comments.FetchAll()
+ self.comments.Unset()
+ }
+ self.next()
+ list := self.parseVariableDeclarationList(var_)
+ if len(list) == 1 && self.token == token.IN {
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.next() // in
+ forIn = true
+ left = []ast.Expression{list[0]} // There is only one declaration
+ } else {
+ left = list
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(left[0], varComments, ast.LEADING)
+ }
+ } else {
+ left = append(left, self.parseExpression())
+ if self.token == token.IN {
+ self.next()
+ forIn = true
+ }
+ }
+ self.scope.allowIn = allowIn
+ }
+
+ if forIn {
+ switch left[0].(type) {
+ case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression, *ast.VariableExpression:
+ // These are all acceptable
+ default:
+ self.error(idx, "Invalid left-hand side in for-in")
+ self.nextStatement()
+ return &ast.BadStatement{From: idx, To: self.idx}
+ }
+
+ forin := self.parseForIn(left[0])
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(forin, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(forin, forComments, ast.FOR)
+ }
+ return forin
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.Unset()
+ }
+ self.expect(token.SEMICOLON)
+ initializer := &ast.SequenceExpression{Sequence: left}
+ forstatement := self.parseFor(initializer)
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(forstatement, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(forstatement, forComments, ast.FOR)
+ }
+ return forstatement
+}
+
+func (self *_parser) parseVariableStatement() *ast.VariableStatement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ idx := self.expect(token.VAR)
+
+ list := self.parseVariableDeclarationList(idx)
+
+ statement := &ast.VariableStatement{
+ Var: idx,
+ List: list,
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(statement, comments, ast.LEADING)
+ self.comments.Unset()
+ }
+ self.semicolon()
+
+ return statement
+}
+
+func (self *_parser) parseDoWhileStatement() ast.Statement {
+ inIteration := self.scope.inIteration
+ self.scope.inIteration = true
+ defer func() {
+ self.scope.inIteration = inIteration
+ }()
+
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ self.expect(token.DO)
+ var doComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ doComments = self.comments.FetchAll()
+ }
+
+ node := &ast.DoWhileStatement{}
+ if self.token == token.LEFT_BRACE {
+ node.Body = self.parseBlockStatement()
+ } else {
+ node.Body = self.parseStatement()
+ }
+
+ self.expect(token.WHILE)
+ var whileComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ whileComments = self.comments.FetchAll()
+ }
+ self.expect(token.LEFT_PARENTHESIS)
+ node.Test = self.parseExpression()
+ self.expect(token.RIGHT_PARENTHESIS)
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(node, doComments, ast.DO)
+ self.comments.CommentMap.AddComments(node, whileComments, ast.WHILE)
+ }
+
+ return node
+}
+
+func (self *_parser) parseWhileStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ self.expect(token.WHILE)
+
+ var whileComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ whileComments = self.comments.FetchAll()
+ }
+
+ self.expect(token.LEFT_PARENTHESIS)
+ node := &ast.WhileStatement{
+ Test: self.parseExpression(),
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+ node.Body = self.parseIterationStatement()
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(node, whileComments, ast.WHILE)
+ }
+
+ return node
+}
+
+func (self *_parser) parseIfStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ self.expect(token.IF)
+ var ifComments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ ifComments = self.comments.FetchAll()
+ }
+
+ self.expect(token.LEFT_PARENTHESIS)
+ node := &ast.IfStatement{
+ Test: self.parseExpression(),
+ }
+ self.expect(token.RIGHT_PARENTHESIS)
+ if self.token == token.LEFT_BRACE {
+ node.Consequent = self.parseBlockStatement()
+ } else {
+ node.Consequent = self.parseStatement()
+ }
+
+ if self.token == token.ELSE {
+ self.next()
+ node.Alternate = self.parseStatement()
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(node, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(node, ifComments, ast.IF)
+ }
+
+ return node
+}
+
+func (self *_parser) parseSourceElement() ast.Statement {
+ statement := self.parseStatement()
+ //self.comments.Unset()
+ return statement
+}
+
+func (self *_parser) parseSourceElements() []ast.Statement {
+ body := []ast.Statement(nil)
+
+ for {
+ if self.token != token.STRING {
+ break
+ }
+ body = append(body, self.parseSourceElement())
+ }
+
+ for self.token != token.EOF {
+ body = append(body, self.parseSourceElement())
+ }
+
+ return body
+}
+
+func (self *_parser) parseProgram() *ast.Program {
+ self.openScope()
+ defer self.closeScope()
+ return &ast.Program{
+ Body: self.parseSourceElements(),
+ DeclarationList: self.scope.declarationList,
+ File: self.file,
+ }
+}
+
+func (self *_parser) parseBreakStatement() ast.Statement {
+ var comments []*ast.Comment
+ if self.mode&StoreComments != 0 {
+ comments = self.comments.FetchAll()
+ }
+ idx := self.expect(token.BREAK)
+ semicolon := self.implicitSemicolon
+ if self.token == token.SEMICOLON {
+ semicolon = true
+ self.next()
+ }
+
+ if semicolon || self.token == token.RIGHT_BRACE {
+ self.implicitSemicolon = false
+ if !self.scope.inIteration && !self.scope.inSwitch {
+ goto illegal
+ }
+ breakStatement := &ast.BranchStatement{
+ Idx: idx,
+ Token: token.BREAK,
+ }
+
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(breakStatement, comments, ast.LEADING)
+ self.comments.CommentMap.AddComments(breakStatement, self.comments.FetchAll(), ast.TRAILING)
+ }
+
+ return breakStatement
+ }
+
+ if self.token == token.IDENTIFIER {
+ identifier := self.parseIdentifier()
+ if !self.scope.hasLabel(identifier.Name) {
+ self.error(idx, "Undefined label '%s'", identifier.Name)
+ return &ast.BadStatement{From: idx, To: identifier.Idx1()}
+ }
+ self.semicolon()
+ breakStatement := &ast.BranchStatement{
+ Idx: idx,
+ Token: token.BREAK,
+ Label: identifier,
+ }
+ if self.mode&StoreComments != 0 {
+ self.comments.CommentMap.AddComments(breakStatement, comments, ast.LEADING)
+ }
+
+ return breakStatement
+ }
+
+ self.expect(token.IDENTIFIER)
+
+illegal:
+ self.error(idx, "Illegal break statement")
+ self.nextStatement()
+ return &ast.BadStatement{From: idx, To: self.idx}
+}
+
+func (self *_parser) parseContinueStatement() ast.Statement {
+ idx := self.expect(token.CONTINUE)
+ semicolon := self.implicitSemicolon
+ if self.token == token.SEMICOLON {
+ semicolon = true
+ self.next()
+ }
+
+ if semicolon || self.token == token.RIGHT_BRACE {
+ self.implicitSemicolon = false
+ if !self.scope.inIteration {
+ goto illegal
+ }
+ return &ast.BranchStatement{
+ Idx: idx,
+ Token: token.CONTINUE,
+ }
+ }
+
+ if self.token == token.IDENTIFIER {
+ identifier := self.parseIdentifier()
+ if !self.scope.hasLabel(identifier.Name) {
+ self.error(idx, "Undefined label '%s'", identifier.Name)
+ return &ast.BadStatement{From: idx, To: identifier.Idx1()}
+ }
+ if !self.scope.inIteration {
+ goto illegal
+ }
+ self.semicolon()
+ return &ast.BranchStatement{
+ Idx: idx,
+ Token: token.CONTINUE,
+ Label: identifier,
+ }
+ }
+
+ self.expect(token.IDENTIFIER)
+
+illegal:
+ self.error(idx, "Illegal continue statement")
+ self.nextStatement()
+ return &ast.BadStatement{From: idx, To: self.idx}
+}
+
+// Find the next statement after an error (recover)
+func (self *_parser) nextStatement() {
+ for {
+ switch self.token {
+ case token.BREAK, token.CONTINUE,
+ token.FOR, token.IF, token.RETURN, token.SWITCH,
+ token.VAR, token.DO, token.TRY, token.WITH,
+ token.WHILE, token.THROW, token.CATCH, token.FINALLY:
+ // Return only if parser made some progress since last
+ // sync or if it has not reached 10 next calls without
+ // progress. Otherwise consume at least one token to
+ // avoid an endless parser loop
+ if self.idx == self.recover.idx && self.recover.count < 10 {
+ self.recover.count++
+ return
+ }
+ if self.idx > self.recover.idx {
+ self.recover.idx = self.idx
+ self.recover.count = 0
+ return
+ }
+ // Reaching here indicates a parser bug, likely an
+ // incorrect token list in this function, but it only
+ // leads to skipping of possibly correct code if a
+ // previous error is present, and thus is preferred
+ // over a non-terminating parse.
+ case token.EOF:
+ return
+ }
+ self.next()
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/property.go b/vendor/github.com/robertkrimen/otto/property.go
new file mode 100644
index 000000000..5445eccde
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/property.go
@@ -0,0 +1,220 @@
+package otto
+
+// property
+
+type _propertyMode int
+
+const (
+ modeWriteMask _propertyMode = 0700
+ modeEnumerateMask = 0070
+ modeConfigureMask = 0007
+ modeOnMask = 0111
+ modeOffMask = 0000
+ modeSetMask = 0222 // If value is 2, then mode is neither "On" nor "Off"
+)
+
+type _propertyGetSet [2]*_object
+
+var _nilGetSetObject _object = _object{}
+
+type _property struct {
+ value interface{}
+ mode _propertyMode
+}
+
+func (self _property) writable() bool {
+ return self.mode&modeWriteMask == modeWriteMask&modeOnMask
+}
+
+func (self *_property) writeOn() {
+ self.mode = (self.mode & ^modeWriteMask) | (modeWriteMask & modeOnMask)
+}
+
+func (self *_property) writeOff() {
+ self.mode &= ^modeWriteMask
+}
+
+func (self *_property) writeClear() {
+ self.mode = (self.mode & ^modeWriteMask) | (modeWriteMask & modeSetMask)
+}
+
+func (self _property) writeSet() bool {
+ return 0 == self.mode&modeWriteMask&modeSetMask
+}
+
+func (self _property) enumerable() bool {
+ return self.mode&modeEnumerateMask == modeEnumerateMask&modeOnMask
+}
+
+func (self *_property) enumerateOn() {
+ self.mode = (self.mode & ^modeEnumerateMask) | (modeEnumerateMask & modeOnMask)
+}
+
+func (self *_property) enumerateOff() {
+ self.mode &= ^modeEnumerateMask
+}
+
+func (self _property) enumerateSet() bool {
+ return 0 == self.mode&modeEnumerateMask&modeSetMask
+}
+
+func (self _property) configurable() bool {
+ return self.mode&modeConfigureMask == modeConfigureMask&modeOnMask
+}
+
+func (self *_property) configureOn() {
+ self.mode = (self.mode & ^modeConfigureMask) | (modeConfigureMask & modeOnMask)
+}
+
+func (self *_property) configureOff() {
+ self.mode &= ^modeConfigureMask
+}
+
+func (self _property) configureSet() bool {
+ return 0 == self.mode&modeConfigureMask&modeSetMask
+}
+
+func (self _property) copy() *_property {
+ property := self
+ return &property
+}
+
+func (self _property) get(this *_object) Value {
+ switch value := self.value.(type) {
+ case Value:
+ return value
+ case _propertyGetSet:
+ if value[0] != nil {
+ return value[0].call(toValue(this), nil, false, nativeFrame)
+ }
+ }
+ return Value{}
+}
+
+func (self _property) isAccessorDescriptor() bool {
+ setGet, test := self.value.(_propertyGetSet)
+ return test && (setGet[0] != nil || setGet[1] != nil)
+}
+
+func (self _property) isDataDescriptor() bool {
+ if self.writeSet() { // Either "On" or "Off"
+ return true
+ }
+ value, valid := self.value.(Value)
+ return valid && !value.isEmpty()
+}
+
+func (self _property) isGenericDescriptor() bool {
+ return !(self.isDataDescriptor() || self.isAccessorDescriptor())
+}
+
+func (self _property) isEmpty() bool {
+ return self.mode == 0222 && self.isGenericDescriptor()
+}
+
+// _enumerableValue, _enumerableTrue, _enumerableFalse?
+// .enumerableValue() .enumerableExists()
+
+func toPropertyDescriptor(rt *_runtime, value Value) (descriptor _property) {
+ objectDescriptor := value._object()
+ if objectDescriptor == nil {
+ panic(rt.panicTypeError())
+ }
+
+ {
+ descriptor.mode = modeSetMask // Initially nothing is set
+ if objectDescriptor.hasProperty("enumerable") {
+ if objectDescriptor.get("enumerable").bool() {
+ descriptor.enumerateOn()
+ } else {
+ descriptor.enumerateOff()
+ }
+ }
+
+ if objectDescriptor.hasProperty("configurable") {
+ if objectDescriptor.get("configurable").bool() {
+ descriptor.configureOn()
+ } else {
+ descriptor.configureOff()
+ }
+ }
+
+ if objectDescriptor.hasProperty("writable") {
+ if objectDescriptor.get("writable").bool() {
+ descriptor.writeOn()
+ } else {
+ descriptor.writeOff()
+ }
+ }
+ }
+
+ var getter, setter *_object
+ getterSetter := false
+
+ if objectDescriptor.hasProperty("get") {
+ value := objectDescriptor.get("get")
+ if value.IsDefined() {
+ if !value.isCallable() {
+ panic(rt.panicTypeError())
+ }
+ getter = value._object()
+ getterSetter = true
+ } else {
+ getter = &_nilGetSetObject
+ getterSetter = true
+ }
+ }
+
+ if objectDescriptor.hasProperty("set") {
+ value := objectDescriptor.get("set")
+ if value.IsDefined() {
+ if !value.isCallable() {
+ panic(rt.panicTypeError())
+ }
+ setter = value._object()
+ getterSetter = true
+ } else {
+ setter = &_nilGetSetObject
+ getterSetter = true
+ }
+ }
+
+ if getterSetter {
+ if descriptor.writeSet() {
+ panic(rt.panicTypeError())
+ }
+ descriptor.value = _propertyGetSet{getter, setter}
+ }
+
+ if objectDescriptor.hasProperty("value") {
+ if getterSetter {
+ panic(rt.panicTypeError())
+ }
+ descriptor.value = objectDescriptor.get("value")
+ }
+
+ return
+}
+
+func (self *_runtime) fromPropertyDescriptor(descriptor _property) *_object {
+ object := self.newObject()
+ if descriptor.isDataDescriptor() {
+ object.defineProperty("value", descriptor.value.(Value), 0111, false)
+ object.defineProperty("writable", toValue_bool(descriptor.writable()), 0111, false)
+ } else if descriptor.isAccessorDescriptor() {
+ getSet := descriptor.value.(_propertyGetSet)
+ get := Value{}
+ if getSet[0] != nil {
+ get = toValue_object(getSet[0])
+ }
+ set := Value{}
+ if getSet[1] != nil {
+ set = toValue_object(getSet[1])
+ }
+ object.defineProperty("get", get, 0111, false)
+ object.defineProperty("set", set, 0111, false)
+ }
+ object.defineProperty("enumerable", toValue_bool(descriptor.enumerable()), 0111, false)
+ object.defineProperty("configurable", toValue_bool(descriptor.configurable()), 0111, false)
+ return object
+}
diff --git a/vendor/github.com/robertkrimen/otto/registry/README.markdown b/vendor/github.com/robertkrimen/otto/registry/README.markdown
new file mode 100644
index 000000000..ba2d38909
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/registry/README.markdown
@@ -0,0 +1,51 @@
+# registry
+--
+ import "github.com/robertkrimen/otto/registry"
+
+Package registry is an expirmental package to facillitate altering the otto
+runtime via import.
+
+This interface can change at any time.
+
+## Usage
+
+#### func Apply
+
+```go
+func Apply(callback func(Entry))
+```
+
+#### type Entry
+
+```go
+type Entry struct {
+}
+```
+
+
+#### func Register
+
+```go
+func Register(source func() string) *Entry
+```
+
+#### func (*Entry) Disable
+
+```go
+func (self *Entry) Disable()
+```
+
+#### func (*Entry) Enable
+
+```go
+func (self *Entry) Enable()
+```
+
+#### func (Entry) Source
+
+```go
+func (self Entry) Source() string
+```
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/registry/registry.go b/vendor/github.com/robertkrimen/otto/registry/registry.go
new file mode 100644
index 000000000..966638ac4
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/registry/registry.go
@@ -0,0 +1,47 @@
+/*
+Package registry is an expirmental package to facillitate altering the otto runtime via import.
+
+This interface can change at any time.
+*/
+package registry
+
+var registry []*Entry = make([]*Entry, 0)
+
+type Entry struct {
+ active bool
+ source func() string
+}
+
+func newEntry(source func() string) *Entry {
+ return &Entry{
+ active: true,
+ source: source,
+ }
+}
+
+func (self *Entry) Enable() {
+ self.active = true
+}
+
+func (self *Entry) Disable() {
+ self.active = false
+}
+
+func (self Entry) Source() string {
+ return self.source()
+}
+
+func Apply(callback func(Entry)) {
+ for _, entry := range registry {
+ if !entry.active {
+ continue
+ }
+ callback(*entry)
+ }
+}
+
+func Register(source func() string) *Entry {
+ entry := newEntry(source)
+ registry = append(registry, entry)
+ return entry
+}
diff --git a/vendor/github.com/robertkrimen/otto/result.go b/vendor/github.com/robertkrimen/otto/result.go
new file mode 100644
index 000000000..63642e7d0
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/result.go
@@ -0,0 +1,30 @@
+package otto
+
+import ()
+
+type _resultKind int
+
+const (
+ resultNormal _resultKind = iota
+ resultReturn
+ resultBreak
+ resultContinue
+)
+
+type _result struct {
+ kind _resultKind
+ value Value
+ target string
+}
+
+func newReturnResult(value Value) _result {
+ return _result{resultReturn, value, ""}
+}
+
+func newContinueResult(target string) _result {
+ return _result{resultContinue, emptyValue, target}
+}
+
+func newBreakResult(target string) _result {
+ return _result{resultBreak, emptyValue, target}
+}
diff --git a/vendor/github.com/robertkrimen/otto/runtime.go b/vendor/github.com/robertkrimen/otto/runtime.go
new file mode 100644
index 000000000..5762bd0c3
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/runtime.go
@@ -0,0 +1,711 @@
+package otto
+
+import (
+ "errors"
+ "fmt"
+ "math"
+ "path"
+ "reflect"
+ "runtime"
+ "strconv"
+ "sync"
+
+ "github.com/robertkrimen/otto/ast"
+ "github.com/robertkrimen/otto/parser"
+)
+
+type _global struct {
+ Object *_object // Object( ... ), new Object( ... ) - 1 (length)
+ Function *_object // Function( ... ), new Function( ... ) - 1
+ Array *_object // Array( ... ), new Array( ... ) - 1
+ String *_object // String( ... ), new String( ... ) - 1
+ Boolean *_object // Boolean( ... ), new Boolean( ... ) - 1
+ Number *_object // Number( ... ), new Number( ... ) - 1
+ Math *_object
+ Date *_object // Date( ... ), new Date( ... ) - 7
+ RegExp *_object // RegExp( ... ), new RegExp( ... ) - 2
+ Error *_object // Error( ... ), new Error( ... ) - 1
+ EvalError *_object
+ TypeError *_object
+ RangeError *_object
+ ReferenceError *_object
+ SyntaxError *_object
+ URIError *_object
+ JSON *_object
+
+ ObjectPrototype *_object // Object.prototype
+ FunctionPrototype *_object // Function.prototype
+ ArrayPrototype *_object // Array.prototype
+ StringPrototype *_object // String.prototype
+ BooleanPrototype *_object // Boolean.prototype
+ NumberPrototype *_object // Number.prototype
+ DatePrototype *_object // Date.prototype
+ RegExpPrototype *_object // RegExp.prototype
+ ErrorPrototype *_object // Error.prototype
+ EvalErrorPrototype *_object
+ TypeErrorPrototype *_object
+ RangeErrorPrototype *_object
+ ReferenceErrorPrototype *_object
+ SyntaxErrorPrototype *_object
+ URIErrorPrototype *_object
+}
+
+type _runtime struct {
+ global _global
+ globalObject *_object
+ globalStash *_objectStash
+ scope *_scope
+ otto *Otto
+ eval *_object // The builtin eval, for determine indirect versus direct invocation
+ debugger func(*Otto)
+ random func() float64
+ stackLimit int
+ traceLimit int
+
+ labels []string // FIXME
+ lck sync.Mutex
+}
+
+func (self *_runtime) enterScope(scope *_scope) {
+ scope.outer = self.scope
+ if self.scope != nil {
+ if self.stackLimit != 0 && self.scope.depth+1 >= self.stackLimit {
+ panic(self.panicRangeError("Maximum call stack size exceeded"))
+ }
+
+ scope.depth = self.scope.depth + 1
+ }
+
+ self.scope = scope
+}
+
+func (self *_runtime) leaveScope() {
+ self.scope = self.scope.outer
+}
+
+// FIXME This is used in two places (cloning)
+func (self *_runtime) enterGlobalScope() {
+ self.enterScope(newScope(self.globalStash, self.globalStash, self.globalObject))
+}
+
+func (self *_runtime) enterFunctionScope(outer _stash, this Value) *_fnStash {
+ if outer == nil {
+ outer = self.globalStash
+ }
+ stash := self.newFunctionStash(outer)
+ var thisObject *_object
+ switch this.kind {
+ case valueUndefined, valueNull:
+ thisObject = self.globalObject
+ default:
+ thisObject = self.toObject(this)
+ }
+ self.enterScope(newScope(stash, stash, thisObject))
+ return stash
+}
+
+func (self *_runtime) putValue(reference _reference, value Value) {
+ name := reference.putValue(value)
+ if name != "" {
+ // Why? -- If reference.base == nil
+ // strict = false
+ self.globalObject.defineProperty(name, value, 0111, false)
+ }
+}
+
+func (self *_runtime) tryCatchEvaluate(inner func() Value) (tryValue Value, exception bool) {
+ // resultValue = The value of the block (e.g. the last statement)
+ // throw = Something was thrown
+ // throwValue = The value of what was thrown
+ // other = Something that changes flow (return, break, continue) that is not a throw
+ // Otherwise, some sort of unknown panic happened, we'll just propagate it
+ defer func() {
+ if caught := recover(); caught != nil {
+ if exception, ok := caught.(*_exception); ok {
+ caught = exception.eject()
+ }
+ switch caught := caught.(type) {
+ case _error:
+ exception = true
+ tryValue = toValue_object(self.newError(caught.name, caught.messageValue(), 0))
+ case Value:
+ exception = true
+ tryValue = caught
+ default:
+ panic(caught)
+ }
+ }
+ }()
+
+ tryValue = inner()
+ return
+}
+
+// toObject
+
+func (self *_runtime) toObject(value Value) *_object {
+ switch value.kind {
+ case valueEmpty, valueUndefined, valueNull:
+ panic(self.panicTypeError())
+ case valueBoolean:
+ return self.newBoolean(value)
+ case valueString:
+ return self.newString(value)
+ case valueNumber:
+ return self.newNumber(value)
+ case valueObject:
+ return value._object()
+ }
+ panic(self.panicTypeError())
+}
+
+func (self *_runtime) objectCoerce(value Value) (*_object, error) {
+ switch value.kind {
+ case valueUndefined:
+ return nil, errors.New("undefined")
+ case valueNull:
+ return nil, errors.New("null")
+ case valueBoolean:
+ return self.newBoolean(value), nil
+ case valueString:
+ return self.newString(value), nil
+ case valueNumber:
+ return self.newNumber(value), nil
+ case valueObject:
+ return value._object(), nil
+ }
+ panic(self.panicTypeError())
+}
+
+func checkObjectCoercible(rt *_runtime, value Value) {
+ isObject, mustCoerce := testObjectCoercible(value)
+ if !isObject && !mustCoerce {
+ panic(rt.panicTypeError())
+ }
+}
+
+// testObjectCoercible
+
+func testObjectCoercible(value Value) (isObject bool, mustCoerce bool) {
+ switch value.kind {
+ case valueReference, valueEmpty, valueNull, valueUndefined:
+ return false, false
+ case valueNumber, valueString, valueBoolean:
+ return false, true
+ case valueObject:
+ return true, false
+ default:
+ panic("this should never happen")
+ }
+}
+
+func (self *_runtime) safeToValue(value interface{}) (Value, error) {
+ result := Value{}
+ err := catchPanic(func() {
+ result = self.toValue(value)
+ })
+ return result, err
+}
+
+// convertNumeric converts numeric parameter val from js to that of type t if it is safe to do so, otherwise it panics.
+// This allows literals (int64), bitwise values (int32) and the general form (float64) of javascript numerics to be passed as parameters to go functions easily.
+func (self *_runtime) convertNumeric(v Value, t reflect.Type) reflect.Value {
+ val := reflect.ValueOf(v.export())
+
+ if val.Kind() == t.Kind() {
+ return val
+ }
+
+ if val.Kind() == reflect.Interface {
+ val = reflect.ValueOf(val.Interface())
+ }
+
+ switch val.Kind() {
+ case reflect.Float32, reflect.Float64:
+ f64 := val.Float()
+ switch t.Kind() {
+ case reflect.Float64:
+ return reflect.ValueOf(f64)
+ case reflect.Float32:
+ if reflect.Zero(t).OverflowFloat(f64) {
+ panic(self.panicRangeError("converting float64 to float32 would overflow"))
+ }
+
+ return val.Convert(t)
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ i64 := int64(f64)
+ if float64(i64) != f64 {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would cause loss of precision", val.Type(), t)))
+ }
+
+ // The float represents an integer
+ val = reflect.ValueOf(i64)
+ default:
+ panic(self.panicTypeError(fmt.Sprintf("cannot convert %v to %v", val.Type(), t)))
+ }
+ }
+
+ switch val.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ i64 := val.Int()
+ switch t.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if reflect.Zero(t).OverflowInt(i64) {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would overflow", val.Type(), t)))
+ }
+ return val.Convert(t)
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ if i64 < 0 {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would underflow", val.Type(), t)))
+ }
+ if reflect.Zero(t).OverflowUint(uint64(i64)) {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would overflow", val.Type(), t)))
+ }
+ return val.Convert(t)
+ }
+
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ u64 := val.Uint()
+ switch t.Kind() {
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
+ if u64 > math.MaxInt64 || reflect.Zero(t).OverflowInt(int64(u64)) {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would overflow", val.Type(), t)))
+ }
+ return val.Convert(t)
+ case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ if reflect.Zero(t).OverflowUint(u64) {
+ panic(self.panicRangeError(fmt.Sprintf("converting %v to %v would overflow", val.Type(), t)))
+ }
+ return val.Convert(t)
+ }
+ }
+
+ panic(self.panicTypeError(fmt.Sprintf("unsupported type %v for numeric conversion", val.Type())))
+}
+
+var typeOfValue = reflect.TypeOf(Value{})
+
+// convertCallParameter converts request val to type t if possible.
+// If the conversion fails due to overflow or type miss-match then it panics.
+// If no conversion is known then the original value is returned.
+func (self *_runtime) convertCallParameter(v Value, t reflect.Type) reflect.Value {
+ if t == typeOfValue {
+ return reflect.ValueOf(v)
+ }
+
+ if v.kind == valueObject {
+ if gso, ok := v._object().value.(*_goStructObject); ok {
+ if gso.value.Type().AssignableTo(t) {
+ return gso.value
+ }
+ }
+ }
+
+ if t.Kind() == reflect.Interface {
+ iv := reflect.ValueOf(v.export())
+ if iv.Type().AssignableTo(t) {
+ return iv
+ }
+ }
+
+ tk := t.Kind()
+
+ if tk == reflect.Ptr {
+ switch v.kind {
+ case valueEmpty, valueNull, valueUndefined:
+ return reflect.Zero(t)
+ default:
+ var vv reflect.Value
+ if err := catchPanic(func() { vv = self.convertCallParameter(v, t.Elem()) }); err == nil {
+ if vv.CanAddr() {
+ return vv.Addr()
+ }
+
+ pv := reflect.New(vv.Type())
+ pv.Elem().Set(vv)
+ return pv
+ }
+ }
+ }
+
+ switch tk {
+ case reflect.Bool:
+ return reflect.ValueOf(v.bool())
+ case reflect.String:
+ switch v.kind {
+ case valueString:
+ return reflect.ValueOf(v.value)
+ case valueNumber:
+ return reflect.ValueOf(fmt.Sprintf("%v", v.value))
+ }
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Float32, reflect.Float64:
+ switch v.kind {
+ case valueNumber:
+ return self.convertNumeric(v, t)
+ }
+ case reflect.Slice:
+ if o := v._object(); o != nil {
+ if lv := o.get("length"); lv.IsNumber() {
+ l := lv.number().int64
+
+ s := reflect.MakeSlice(t, int(l), int(l))
+
+ tt := t.Elem()
+
+ if o.class == "Array" {
+ for i := int64(0); i < l; i++ {
+ p, ok := o.property[strconv.FormatInt(i, 10)]
+ if !ok {
+ continue
+ }
+
+ e, ok := p.value.(Value)
+ if !ok {
+ continue
+ }
+
+ ev := self.convertCallParameter(e, tt)
+
+ s.Index(int(i)).Set(ev)
+ }
+ } else if o.class == "GoArray" {
+
+ var gslice bool
+ switch o.value.(type) {
+ case *_goSliceObject:
+ gslice = true
+ case *_goArrayObject:
+ gslice = false
+ }
+
+ for i := int64(0); i < l; i++ {
+ var p *_property
+ if gslice {
+ p = goSliceGetOwnProperty(o, strconv.FormatInt(i, 10))
+ } else {
+ p = goArrayGetOwnProperty(o, strconv.FormatInt(i, 10))
+ }
+ if p == nil {
+ continue
+ }
+
+ e, ok := p.value.(Value)
+ if !ok {
+ continue
+ }
+
+ ev := self.convertCallParameter(e, tt)
+
+ s.Index(int(i)).Set(ev)
+ }
+ }
+
+ return s
+ }
+ }
+ case reflect.Map:
+ if o := v._object(); o != nil && t.Key().Kind() == reflect.String {
+ m := reflect.MakeMap(t)
+
+ o.enumerate(false, func(k string) bool {
+ m.SetMapIndex(reflect.ValueOf(k), self.convertCallParameter(o.get(k), t.Elem()))
+ return true
+ })
+
+ return m
+ }
+ case reflect.Func:
+ if t.NumOut() > 1 {
+ panic(self.panicTypeError("converting JavaScript values to Go functions with more than one return value is currently not supported"))
+ }
+
+ if o := v._object(); o != nil && o.class == "Function" {
+ return reflect.MakeFunc(t, func(args []reflect.Value) []reflect.Value {
+ l := make([]interface{}, len(args))
+ for i, a := range args {
+ if a.CanInterface() {
+ l[i] = a.Interface()
+ }
+ }
+
+ rv, err := v.Call(nullValue, l...)
+ if err != nil {
+ panic(err)
+ }
+
+ if t.NumOut() == 0 {
+ return nil
+ }
+
+ return []reflect.Value{self.convertCallParameter(rv, t.Out(0))}
+ })
+ }
+ }
+
+ if tk == reflect.String {
+ if o := v._object(); o != nil && o.hasProperty("toString") {
+ if fn := o.get("toString"); fn.IsFunction() {
+ sv, err := fn.Call(v)
+ if err != nil {
+ panic(err)
+ }
+
+ var r reflect.Value
+ if err := catchPanic(func() { r = self.convertCallParameter(sv, t) }); err == nil {
+ return r
+ }
+ }
+ }
+
+ return reflect.ValueOf(v.String())
+ }
+
+ s := "OTTO DOES NOT UNDERSTAND THIS TYPE"
+ switch v.kind {
+ case valueBoolean:
+ s = "boolean"
+ case valueNull:
+ s = "null"
+ case valueNumber:
+ s = "number"
+ case valueString:
+ s = "string"
+ case valueUndefined:
+ s = "undefined"
+ case valueObject:
+ s = v.Class()
+ }
+
+ panic(self.panicTypeError("can't convert from %q to %q", s, t.String()))
+}
+
+func (self *_runtime) toValue(value interface{}) Value {
+ switch value := value.(type) {
+ case Value:
+ return value
+ case func(FunctionCall) Value:
+ var name, file string
+ var line int
+ pc := reflect.ValueOf(value).Pointer()
+ fn := runtime.FuncForPC(pc)
+ if fn != nil {
+ name = fn.Name()
+ file, line = fn.FileLine(pc)
+ file = path.Base(file)
+ }
+ return toValue_object(self.newNativeFunction(name, file, line, value))
+ case _nativeFunction:
+ var name, file string
+ var line int
+ pc := reflect.ValueOf(value).Pointer()
+ fn := runtime.FuncForPC(pc)
+ if fn != nil {
+ name = fn.Name()
+ file, line = fn.FileLine(pc)
+ file = path.Base(file)
+ }
+ return toValue_object(self.newNativeFunction(name, file, line, value))
+ case Object, *Object, _object, *_object:
+ // Nothing happens.
+ // FIXME We should really figure out what can come here.
+ // This catch-all is ugly.
+ default:
+ {
+ value := reflect.ValueOf(value)
+
+ switch value.Kind() {
+ case reflect.Ptr:
+ switch reflect.Indirect(value).Kind() {
+ case reflect.Struct:
+ return toValue_object(self.newGoStructObject(value))
+ case reflect.Array:
+ return toValue_object(self.newGoArray(value))
+ }
+ case reflect.Struct:
+ return toValue_object(self.newGoStructObject(value))
+ case reflect.Map:
+ return toValue_object(self.newGoMapObject(value))
+ case reflect.Slice:
+ return toValue_object(self.newGoSlice(value))
+ case reflect.Array:
+ return toValue_object(self.newGoArray(value))
+ case reflect.Func:
+ var name, file string
+ var line int
+ if v := reflect.ValueOf(value); v.Kind() == reflect.Ptr {
+ pc := v.Pointer()
+ fn := runtime.FuncForPC(pc)
+ if fn != nil {
+ name = fn.Name()
+ file, line = fn.FileLine(pc)
+ file = path.Base(file)
+ }
+ }
+
+ typ := value.Type()
+
+ return toValue_object(self.newNativeFunction(name, file, line, func(c FunctionCall) Value {
+ nargs := typ.NumIn()
+
+ if len(c.ArgumentList) != nargs {
+ if typ.IsVariadic() {
+ if len(c.ArgumentList) < nargs-1 {
+ panic(self.panicRangeError(fmt.Sprintf("expected at least %d arguments; got %d", nargs-1, len(c.ArgumentList))))
+ }
+ } else {
+ panic(self.panicRangeError(fmt.Sprintf("expected %d argument(s); got %d", nargs, len(c.ArgumentList))))
+ }
+ }
+
+ in := make([]reflect.Value, len(c.ArgumentList))
+
+ callSlice := false
+
+ for i, a := range c.ArgumentList {
+ var t reflect.Type
+
+ n := i
+ if n >= nargs-1 && typ.IsVariadic() {
+ if n > nargs-1 {
+ n = nargs - 1
+ }
+
+ t = typ.In(n).Elem()
+ } else {
+ t = typ.In(n)
+ }
+
+ // if this is a variadic Go function, and the caller has supplied
+ // exactly the number of JavaScript arguments required, and this
+ // is the last JavaScript argument, try treating the it as the
+ // actual set of variadic Go arguments. if that succeeds, break
+ // out of the loop.
+ if typ.IsVariadic() && len(c.ArgumentList) == nargs && i == nargs-1 {
+ var v reflect.Value
+ if err := catchPanic(func() { v = self.convertCallParameter(a, typ.In(n)) }); err == nil {
+ in[i] = v
+ callSlice = true
+ break
+ }
+ }
+
+ in[i] = self.convertCallParameter(a, t)
+ }
+
+ var out []reflect.Value
+ if callSlice {
+ out = value.CallSlice(in)
+ } else {
+ out = value.Call(in)
+ }
+
+ switch len(out) {
+ case 0:
+ return Value{}
+ case 1:
+ return self.toValue(out[0].Interface())
+ default:
+ s := make([]interface{}, len(out))
+ for i, v := range out {
+ s[i] = self.toValue(v.Interface())
+ }
+
+ return self.toValue(s)
+ }
+ }))
+ }
+ }
+ }
+
+ return toValue(value)
+}
+
+func (runtime *_runtime) newGoSlice(value reflect.Value) *_object {
+ self := runtime.newGoSliceObject(value)
+ self.prototype = runtime.global.ArrayPrototype
+ return self
+}
+
+func (runtime *_runtime) newGoArray(value reflect.Value) *_object {
+ self := runtime.newGoArrayObject(value)
+ self.prototype = runtime.global.ArrayPrototype
+ return self
+}
+
+func (runtime *_runtime) parse(filename string, src, sm interface{}) (*ast.Program, error) {
+ return parser.ParseFileWithSourceMap(nil, filename, src, sm, 0)
+}
+
+func (runtime *_runtime) cmpl_parse(filename string, src, sm interface{}) (*_nodeProgram, error) {
+ program, err := parser.ParseFileWithSourceMap(nil, filename, src, sm, 0)
+ if err != nil {
+ return nil, err
+ }
+
+ return cmpl_parse(program), nil
+}
+
+func (self *_runtime) parseSource(src, sm interface{}) (*_nodeProgram, *ast.Program, error) {
+ switch src := src.(type) {
+ case *ast.Program:
+ return nil, src, nil
+ case *Script:
+ return src.program, nil, nil
+ }
+
+ program, err := self.parse("", src, sm)
+
+ return nil, program, err
+}
+
+func (self *_runtime) cmpl_runOrEval(src, sm interface{}, eval bool) (Value, error) {
+ result := Value{}
+ cmpl_program, program, err := self.parseSource(src, sm)
+ if err != nil {
+ return result, err
+ }
+ if cmpl_program == nil {
+ cmpl_program = cmpl_parse(program)
+ }
+ err = catchPanic(func() {
+ result = self.cmpl_evaluate_nodeProgram(cmpl_program, eval)
+ })
+ switch result.kind {
+ case valueEmpty:
+ result = Value{}
+ case valueReference:
+ result = result.resolve()
+ }
+ return result, err
+}
+
+func (self *_runtime) cmpl_run(src, sm interface{}) (Value, error) {
+ return self.cmpl_runOrEval(src, sm, false)
+}
+
+func (self *_runtime) cmpl_eval(src, sm interface{}) (Value, error) {
+ return self.cmpl_runOrEval(src, sm, true)
+}
+
+func (self *_runtime) parseThrow(err error) {
+ if err == nil {
+ return
+ }
+ switch err := err.(type) {
+ case parser.ErrorList:
+ {
+ err := err[0]
+ if err.Message == "Invalid left-hand side in assignment" {
+ panic(self.panicReferenceError(err.Message))
+ }
+ panic(self.panicSyntaxError(err.Message))
+ }
+ }
+ panic(self.panicSyntaxError(err.Error()))
+}
+
+func (self *_runtime) cmpl_parseOrThrow(src, sm interface{}) *_nodeProgram {
+ program, err := self.cmpl_parse("", src, sm)
+ self.parseThrow(err) // Will panic/throw appropriately
+ return program
+}
diff --git a/vendor/github.com/robertkrimen/otto/scope.go b/vendor/github.com/robertkrimen/otto/scope.go
new file mode 100644
index 000000000..465e6b98c
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/scope.go
@@ -0,0 +1,35 @@
+package otto
+
+// _scope:
+// entryFile
+// entryIdx
+// top?
+// outer => nil
+
+// _stash:
+// lexical
+// variable
+//
+// _thisStash (ObjectEnvironment)
+// _fnStash
+// _dclStash
+
+// An ECMA-262 ExecutionContext
+type _scope struct {
+ lexical _stash
+ variable _stash
+ this *_object
+ eval bool // Replace this with kind?
+ outer *_scope
+ depth int
+
+ frame _frame
+}
+
+func newScope(lexical _stash, variable _stash, this *_object) *_scope {
+ return &_scope{
+ lexical: lexical,
+ variable: variable,
+ this: this,
+ }
+}
diff --git a/vendor/github.com/robertkrimen/otto/script.go b/vendor/github.com/robertkrimen/otto/script.go
new file mode 100644
index 000000000..2ae890ecd
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/script.go
@@ -0,0 +1,119 @@
+package otto
+
+import (
+ "bytes"
+ "encoding/gob"
+ "errors"
+)
+
+var ErrVersion = errors.New("version mismatch")
+
+var scriptVersion = "2014-04-13/1"
+
+// Script is a handle for some (reusable) JavaScript.
+// Passing a Script value to a run method will evaluate the JavaScript.
+//
+type Script struct {
+ version string
+ program *_nodeProgram
+ filename string
+ src string
+}
+
+// Compile will parse the given source and return a Script value or nil and
+// an error if there was a problem during compilation.
+//
+// script, err := vm.Compile("", `var abc; if (!abc) abc = 0; abc += 2; abc;`)
+// vm.Run(script)
+//
+func (self *Otto) Compile(filename string, src interface{}) (*Script, error) {
+ return self.CompileWithSourceMap(filename, src, nil)
+}
+
+// CompileWithSourceMap does the same thing as Compile, but with the obvious
+// difference of applying a source map.
+func (self *Otto) CompileWithSourceMap(filename string, src, sm interface{}) (*Script, error) {
+ program, err := self.runtime.parse(filename, src, sm)
+ if err != nil {
+ return nil, err
+ }
+
+ cmpl_program := cmpl_parse(program)
+
+ script := &Script{
+ version: scriptVersion,
+ program: cmpl_program,
+ filename: filename,
+ src: program.File.Source(),
+ }
+
+ return script, nil
+}
+
+func (self *Script) String() string {
+ return "// " + self.filename + "\n" + self.src
+}
+
+// MarshalBinary will marshal a script into a binary form. A marshalled script
+// that is later unmarshalled can be executed on the same version of the otto runtime.
+//
+// The binary format can change at any time and should be considered unspecified and opaque.
+//
+func (self *Script) marshalBinary() ([]byte, error) {
+ var bfr bytes.Buffer
+ encoder := gob.NewEncoder(&bfr)
+ err := encoder.Encode(self.version)
+ if err != nil {
+ return nil, err
+ }
+ err = encoder.Encode(self.program)
+ if err != nil {
+ return nil, err
+ }
+ err = encoder.Encode(self.filename)
+ if err != nil {
+ return nil, err
+ }
+ err = encoder.Encode(self.src)
+ if err != nil {
+ return nil, err
+ }
+ return bfr.Bytes(), nil
+}
+
+// UnmarshalBinary will vivify a marshalled script into something usable. If the script was
+// originally marshalled on a different version of the otto runtime, then this method
+// will return an error.
+//
+// The binary format can change at any time and should be considered unspecified and opaque.
+//
+func (self *Script) unmarshalBinary(data []byte) error {
+ decoder := gob.NewDecoder(bytes.NewReader(data))
+ err := decoder.Decode(&self.version)
+ if err != nil {
+ goto error
+ }
+ if self.version != scriptVersion {
+ err = ErrVersion
+ goto error
+ }
+ err = decoder.Decode(&self.program)
+ if err != nil {
+ goto error
+ }
+ err = decoder.Decode(&self.filename)
+ if err != nil {
+ goto error
+ }
+ err = decoder.Decode(&self.src)
+ if err != nil {
+ goto error
+ }
+ return nil
+error:
+ self.version = ""
+ self.program = nil
+ self.filename = ""
+ self.src = ""
+ return err
+}
diff --git a/vendor/github.com/robertkrimen/otto/stash.go b/vendor/github.com/robertkrimen/otto/stash.go
new file mode 100644
index 000000000..0d3ffa511
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/stash.go
@@ -0,0 +1,296 @@
+package otto
+
+import (
+ "fmt"
+)
+
+// ======
+// _stash
+// ======
+
+type _stash interface {
+ hasBinding(string) bool //
+ createBinding(string, bool, Value) // CreateMutableBinding
+ setBinding(string, Value, bool) // SetMutableBinding
+ getBinding(string, bool) Value // GetBindingValue
+ deleteBinding(string) bool //
+ setValue(string, Value, bool) // createBinding + setBinding
+
+ outer() _stash
+ runtime() *_runtime
+
+ newReference(string, bool, _at) _reference
+
+ clone(clone *_clone) _stash
+}
+
+// ==========
+// _objectStash
+// ==========
+
+type _objectStash struct {
+ _runtime *_runtime
+ _outer _stash
+ object *_object
+}
+
+func (self *_objectStash) runtime() *_runtime {
+ return self._runtime
+}
+
+func (runtime *_runtime) newObjectStash(object *_object, outer _stash) *_objectStash {
+ if object == nil {
+ object = runtime.newBaseObject()
+ object.class = "environment"
+ }
+ return &_objectStash{
+ _runtime: runtime,
+ _outer: outer,
+ object: object,
+ }
+}
+
+func (in *_objectStash) clone(clone *_clone) _stash {
+ out, exists := clone.objectStash(in)
+ if exists {
+ return out
+ }
+ *out = _objectStash{
+ clone.runtime,
+ clone.stash(in._outer),
+ clone.object(in.object),
+ }
+ return out
+}
+
+func (self *_objectStash) hasBinding(name string) bool {
+ return self.object.hasProperty(name)
+}
+
+func (self *_objectStash) createBinding(name string, deletable bool, value Value) {
+ if self.object.hasProperty(name) {
+ panic(hereBeDragons())
+ }
+ mode := _propertyMode(0111)
+ if !deletable {
+ mode = _propertyMode(0110)
+ }
+ // TODO False?
+ self.object.defineProperty(name, value, mode, false)
+}
+
+func (self *_objectStash) setBinding(name string, value Value, strict bool) {
+ self.object.put(name, value, strict)
+}
+
+func (self *_objectStash) setValue(name string, value Value, throw bool) {
+ if !self.hasBinding(name) {
+ self.createBinding(name, true, value) // Configurable by default
+ } else {
+ self.setBinding(name, value, throw)
+ }
+}
+
+func (self *_objectStash) getBinding(name string, throw bool) Value {
+ if self.object.hasProperty(name) {
+ return self.object.get(name)
+ }
+ if throw { // strict?
+ panic(self._runtime.panicReferenceError("Not Defined", name))
+ }
+ return Value{}
+}
+
+func (self *_objectStash) deleteBinding(name string) bool {
+ return self.object.delete(name, false)
+}
+
+func (self *_objectStash) outer() _stash {
+ return self._outer
+}
+
+func (self *_objectStash) newReference(name string, strict bool, at _at) _reference {
+ return newPropertyReference(self._runtime, self.object, name, strict, at)
+}
+
+// =========
+// _dclStash
+// =========
+
+type _dclStash struct {
+ _runtime *_runtime
+ _outer _stash
+ property map[string]_dclProperty
+}
+
+type _dclProperty struct {
+ value Value
+ mutable bool
+ deletable bool
+ readable bool
+}
+
+func (runtime *_runtime) newDeclarationStash(outer _stash) *_dclStash {
+ return &_dclStash{
+ _runtime: runtime,
+ _outer: outer,
+ property: map[string]_dclProperty{},
+ }
+}
+
+func (in *_dclStash) clone(clone *_clone) _stash {
+ out, exists := clone.dclStash(in)
+ if exists {
+ return out
+ }
+ property := make(map[string]_dclProperty, len(in.property))
+ for index, value := range in.property {
+ property[index] = clone.dclProperty(value)
+ }
+ *out = _dclStash{
+ clone.runtime,
+ clone.stash(in._outer),
+ property,
+ }
+ return out
+}
+
+func (self *_dclStash) hasBinding(name string) bool {
+ _, exists := self.property[name]
+ return exists
+}
+
+func (self *_dclStash) runtime() *_runtime {
+ return self._runtime
+}
+
+func (self *_dclStash) createBinding(name string, deletable bool, value Value) {
+ _, exists := self.property[name]
+ if exists {
+ panic(fmt.Errorf("createBinding: %s: already exists", name))
+ }
+ self.property[name] = _dclProperty{
+ value: value,
+ mutable: true,
+ deletable: deletable,
+ readable: false,
+ }
+}
+
+func (self *_dclStash) setBinding(name string, value Value, strict bool) {
+ property, exists := self.property[name]
+ if !exists {
+ panic(fmt.Errorf("setBinding: %s: missing", name))
+ }
+ if property.mutable {
+ property.value = value
+ self.property[name] = property
+ } else {
+ self._runtime.typeErrorResult(strict)
+ }
+}
+
+func (self *_dclStash) setValue(name string, value Value, throw bool) {
+ if !self.hasBinding(name) {
+ self.createBinding(name, false, value) // NOT deletable by default
+ } else {
+ self.setBinding(name, value, throw)
+ }
+}
+
+// FIXME This is called a __lot__
+func (self *_dclStash) getBinding(name string, throw bool) Value {
+ property, exists := self.property[name]
+ if !exists {
+ panic(fmt.Errorf("getBinding: %s: missing", name))
+ }
+ if !property.mutable && !property.readable {
+ if throw { // strict?
+ panic(self._runtime.panicTypeError())
+ }
+ return Value{}
+ }
+ return property.value
+}
+
+func (self *_dclStash) deleteBinding(name string) bool {
+ property, exists := self.property[name]
+ if !exists {
+ return true
+ }
+ if !property.deletable {
+ return false
+ }
+ delete(self.property, name)
+ return true
+}
+
+func (self *_dclStash) outer() _stash {
+ return self._outer
+}
+
+func (self *_dclStash) newReference(name string, strict bool, _ _at) _reference {
+ return &_stashReference{
+ name: name,
+ base: self,
+ }
+}
+
+// ========
+// _fnStash
+// ========
+
+type _fnStash struct {
+ _dclStash
+ arguments *_object
+ indexOfArgumentName map[string]string
+}
+
+func (runtime *_runtime) newFunctionStash(outer _stash) *_fnStash {
+ return &_fnStash{
+ _dclStash: _dclStash{
+ _runtime: runtime,
+ _outer: outer,
+ property: map[string]_dclProperty{},
+ },
+ }
+}
+
+func (in *_fnStash) clone(clone *_clone) _stash {
+ out, exists := clone.fnStash(in)
+ if exists {
+ return out
+ }
+ dclStash := in._dclStash.clone(clone).(*_dclStash)
+ index := make(map[string]string, len(in.indexOfArgumentName))
+ for name, value := range in.indexOfArgumentName {
+ index[name] = value
+ }
+ *out = _fnStash{
+ _dclStash: *dclStash,
+ arguments: clone.object(in.arguments),
+ indexOfArgumentName: index,
+ }
+ return out
+}
+
+func getStashProperties(stash _stash) (keys []string) {
+ switch vars := stash.(type) {
+ case *_dclStash:
+ for k := range vars.property {
+ keys = append(keys, k)
+ }
+ case *_fnStash:
+ for k := range vars.property {
+ keys = append(keys, k)
+ }
+ case *_objectStash:
+ for k := range vars.object.property {
+ keys = append(keys, k)
+ }
+ default:
+ panic("unknown stash type")
+ }
+
+ return
+}
diff --git a/vendor/github.com/robertkrimen/otto/token/Makefile b/vendor/github.com/robertkrimen/otto/token/Makefile
new file mode 100644
index 000000000..1e85c7348
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/token/Makefile
@@ -0,0 +1,2 @@
+token_const.go: tokenfmt
+ ./$^ | gofmt > $@
diff --git a/vendor/github.com/robertkrimen/otto/token/README.markdown b/vendor/github.com/robertkrimen/otto/token/README.markdown
new file mode 100644
index 000000000..ff3b16104
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/token/README.markdown
@@ -0,0 +1,171 @@
+# token
+--
+ import "github.com/robertkrimen/otto/token"
+
+Package token defines constants representing the lexical tokens of JavaScript
+(ECMA5).
+
+## Usage
+
+```go
+const (
+ ILLEGAL
+ EOF
+ COMMENT
+ KEYWORD
+
+ STRING
+ BOOLEAN
+ NULL
+ NUMBER
+ IDENTIFIER
+
+ PLUS // +
+ MINUS // -
+ MULTIPLY // *
+ SLASH // /
+ REMAINDER // %
+
+ AND // &
+ OR // |
+ EXCLUSIVE_OR // ^
+ SHIFT_LEFT // <<
+ SHIFT_RIGHT // >>
+ UNSIGNED_SHIFT_RIGHT // >>>
+ AND_NOT // &^
+
+ ADD_ASSIGN // +=
+ SUBTRACT_ASSIGN // -=
+ MULTIPLY_ASSIGN // *=
+ QUOTIENT_ASSIGN // /=
+ REMAINDER_ASSIGN // %=
+
+ AND_ASSIGN // &=
+ OR_ASSIGN // |=
+ EXCLUSIVE_OR_ASSIGN // ^=
+ SHIFT_LEFT_ASSIGN // <<=
+ SHIFT_RIGHT_ASSIGN // >>=
+ UNSIGNED_SHIFT_RIGHT_ASSIGN // >>>=
+ AND_NOT_ASSIGN // &^=
+
+ LOGICAL_AND // &&
+ LOGICAL_OR // ||
+ INCREMENT // ++
+ DECREMENT // --
+
+ EQUAL // ==
+ STRICT_EQUAL // ===
+ LESS // <
+ GREATER // >
+ ASSIGN // =
+ NOT // !
+
+ BITWISE_NOT // ~
+
+ NOT_EQUAL // !=
+ STRICT_NOT_EQUAL // !==
+ LESS_OR_EQUAL // <=
+ GREATER_OR_EQUAL // >=
+
+ LEFT_PARENTHESIS // (
+ LEFT_BRACKET // [
+ LEFT_BRACE // {
+ COMMA // ,
+ PERIOD // .
+
+ RIGHT_PARENTHESIS // )
+ RIGHT_BRACKET // ]
+ RIGHT_BRACE // }
+ SEMICOLON // ;
+ COLON // :
+ QUESTION_MARK // ?
+
+ IF
+ IN
+ DO
+
+ VAR
+ FOR
+ NEW
+ TRY
+
+ THIS
+ ELSE
+ CASE
+ VOID
+ WITH
+
+ WHILE
+ BREAK
+ CATCH
+ THROW
+
+ RETURN
+ TYPEOF
+ DELETE
+ SWITCH
+
+ DEFAULT
+ FINALLY
+
+ FUNCTION
+ CONTINUE
+ DEBUGGER
+
+ INSTANCEOF
+)
+```
+
+#### type Token
+
+```go
+type Token int
+```
+
+Token is the set of lexical tokens in JavaScript (ECMA5).
+
+#### func IsKeyword
+
+```go
+func IsKeyword(literal string) (Token, bool)
+```
+IsKeyword returns the keyword token if literal is a keyword, a KEYWORD token if
+the literal is a future keyword (const, let, class, super, ...), or 0 if the
+literal is not a keyword.
+
+If the literal is a keyword, IsKeyword returns a second value indicating if the
+literal is considered a future keyword in strict-mode only.
+
+7.6.1.2 Future Reserved Words:
+
+ const
+ class
+ enum
+ export
+ extends
+ import
+ super
+
+7.6.1.2 Future Reserved Words (strict):
+
+ implements
+ interface
+ let
+ package
+ private
+ protected
+ public
+ static
+
+#### func (Token) String
+
+```go
+func (tkn Token) String() string
+```
+String returns the string corresponding to the token. For operators, delimiters,
+and keywords the string is the actual token string (e.g., for the token PLUS,
+the String() is "+"). For all other tokens the string corresponds to the token
+name (e.g. for the token IDENTIFIER, the string is "IDENTIFIER").
+
+--
+**godocdown** http://github.com/robertkrimen/godocdown
diff --git a/vendor/github.com/robertkrimen/otto/token/token.go b/vendor/github.com/robertkrimen/otto/token/token.go
new file mode 100644
index 000000000..0e941ac96
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/token/token.go
@@ -0,0 +1,116 @@
+// Package token defines constants representing the lexical tokens of JavaScript (ECMA5).
+package token
+
+import (
+ "strconv"
+)
+
+// Token is the set of lexical tokens in JavaScript (ECMA5).
+type Token int
+
+// String returns the string corresponding to the token.
+// For operators, delimiters, and keywords the string is the actual
+// token string (e.g., for the token PLUS, the String() is
+// "+"). For all other tokens the string corresponds to the token
+// name (e.g. for the token IDENTIFIER, the string is "IDENTIFIER").
+//
+func (tkn Token) String() string {
+ if 0 == tkn {
+ return "UNKNOWN"
+ }
+ if tkn < Token(len(token2string)) {
+ return token2string[tkn]
+ }
+ return "token(" + strconv.Itoa(int(tkn)) + ")"
+}
+
+// This is not used for anything
+func (tkn Token) precedence(in bool) int {
+
+ switch tkn {
+ case LOGICAL_OR:
+ return 1
+
+ case LOGICAL_AND:
+ return 2
+
+ case OR, OR_ASSIGN:
+ return 3
+
+ case EXCLUSIVE_OR:
+ return 4
+
+ case AND, AND_ASSIGN, AND_NOT, AND_NOT_ASSIGN:
+ return 5
+
+ case EQUAL,
+ NOT_EQUAL,
+ STRICT_EQUAL,
+ STRICT_NOT_EQUAL:
+ return 6
+
+ case LESS, GREATER, LESS_OR_EQUAL, GREATER_OR_EQUAL, INSTANCEOF:
+ return 7
+
+ case IN:
+ if in {
+ return 7
+ }
+ return 0
+
+ case SHIFT_LEFT, SHIFT_RIGHT, UNSIGNED_SHIFT_RIGHT:
+ fallthrough
+ case SHIFT_LEFT_ASSIGN, SHIFT_RIGHT_ASSIGN, UNSIGNED_SHIFT_RIGHT_ASSIGN:
+ return 8
+
+ case PLUS, MINUS, ADD_ASSIGN, SUBTRACT_ASSIGN:
+ return 9
+
+ case MULTIPLY, SLASH, REMAINDER, MULTIPLY_ASSIGN, QUOTIENT_ASSIGN, REMAINDER_ASSIGN:
+ return 11
+ }
+ return 0
+}
+
+type _keyword struct {
+ token Token
+ futureKeyword bool
+ strict bool
+}
+
+// IsKeyword returns the keyword token if literal is a keyword, a KEYWORD token
+// if the literal is a future keyword (const, let, class, super, ...), or 0 if the literal is not a keyword.
+//
+// If the literal is a keyword, IsKeyword returns a second value indicating if the literal
+// is considered a future keyword in strict-mode only.
+//
+// 7.6.1.2 Future Reserved Words:
+//
+// const
+// class
+// enum
+// export
+// extends
+// import
+// super
+//
+// 7.6.1.2 Future Reserved Words (strict):
+//
+// implements
+// interface
+// let
+// package
+// private
+// protected
+// public
+// static
+//
+func IsKeyword(literal string) (Token, bool) {
+ if keyword, exists := keywordTable[literal]; exists {
+ if keyword.futureKeyword {
+ return KEYWORD, keyword.strict
+ }
+ return keyword.token, false
+ }
+ return 0, false
+}
diff --git a/vendor/github.com/robertkrimen/otto/token/token_const.go b/vendor/github.com/robertkrimen/otto/token/token_const.go
new file mode 100644
index 000000000..b1d83c6de
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/token/token_const.go
@@ -0,0 +1,349 @@
+package token
+
+const (
+ _ Token = iota
+
+ ILLEGAL
+ EOF
+ COMMENT
+ KEYWORD
+
+ STRING
+ BOOLEAN
+ NULL
+ NUMBER
+ IDENTIFIER
+
+ PLUS // +
+ MINUS // -
+ MULTIPLY // *
+ SLASH // /
+ REMAINDER // %
+
+ AND // &
+ OR // |
+ EXCLUSIVE_OR // ^
+ SHIFT_LEFT // <<
+ SHIFT_RIGHT // >>
+ UNSIGNED_SHIFT_RIGHT // >>>
+ AND_NOT // &^
+
+ ADD_ASSIGN // +=
+ SUBTRACT_ASSIGN // -=
+ MULTIPLY_ASSIGN // *=
+ QUOTIENT_ASSIGN // /=
+ REMAINDER_ASSIGN // %=
+
+ AND_ASSIGN // &=
+ OR_ASSIGN // |=
+ EXCLUSIVE_OR_ASSIGN // ^=
+ SHIFT_LEFT_ASSIGN // <<=
+ SHIFT_RIGHT_ASSIGN // >>=
+ UNSIGNED_SHIFT_RIGHT_ASSIGN // >>>=
+ AND_NOT_ASSIGN // &^=
+
+ LOGICAL_AND // &&
+ LOGICAL_OR // ||
+ INCREMENT // ++
+ DECREMENT // --
+
+ EQUAL // ==
+ STRICT_EQUAL // ===
+ LESS // <
+ GREATER // >
+ ASSIGN // =
+ NOT // !
+
+ BITWISE_NOT // ~
+
+ NOT_EQUAL // !=
+ STRICT_NOT_EQUAL // !==
+ LESS_OR_EQUAL // <=
+ GREATER_OR_EQUAL // >=
+
+ LEFT_PARENTHESIS // (
+ LEFT_BRACKET // [
+ LEFT_BRACE // {
+ COMMA // ,
+ PERIOD // .
+
+ RIGHT_PARENTHESIS // )
+ RIGHT_BRACKET // ]
+ RIGHT_BRACE // }
+ SEMICOLON // ;
+ COLON // :
+ QUESTION_MARK // ?
+
+ firstKeyword
+ IF
+ IN
+ DO
+
+ VAR
+ FOR
+ NEW
+ TRY
+
+ THIS
+ ELSE
+ CASE
+ VOID
+ WITH
+
+ WHILE
+ BREAK
+ CATCH
+ THROW
+
+ RETURN
+ TYPEOF
+ DELETE
+ SWITCH
+
+ DEFAULT
+ FINALLY
+
+ FUNCTION
+ CONTINUE
+ DEBUGGER
+
+ INSTANCEOF
+ lastKeyword
+)
+
+var token2string = [...]string{
+ ILLEGAL: "ILLEGAL",
+ EOF: "EOF",
+ COMMENT: "COMMENT",
+ KEYWORD: "KEYWORD",
+ STRING: "STRING",
+ BOOLEAN: "BOOLEAN",
+ NULL: "NULL",
+ NUMBER: "NUMBER",
+ IDENTIFIER: "IDENTIFIER",
+ PLUS: "+",
+ MINUS: "-",
+ MULTIPLY: "*",
+ SLASH: "/",
+ REMAINDER: "%",
+ AND: "&",
+ OR: "|",
+ EXCLUSIVE_OR: "^",
+ SHIFT_LEFT: "<<",
+ SHIFT_RIGHT: ">>",
+ UNSIGNED_SHIFT_RIGHT: ">>>",
+ AND_NOT: "&^",
+ ADD_ASSIGN: "+=",
+ SUBTRACT_ASSIGN: "-=",
+ MULTIPLY_ASSIGN: "*=",
+ QUOTIENT_ASSIGN: "/=",
+ REMAINDER_ASSIGN: "%=",
+ AND_ASSIGN: "&=",
+ OR_ASSIGN: "|=",
+ EXCLUSIVE_OR_ASSIGN: "^=",
+ SHIFT_LEFT_ASSIGN: "<<=",
+ SHIFT_RIGHT_ASSIGN: ">>=",
+ UNSIGNED_SHIFT_RIGHT_ASSIGN: ">>>=",
+ AND_NOT_ASSIGN: "&^=",
+ LOGICAL_AND: "&&",
+ LOGICAL_OR: "||",
+ INCREMENT: "++",
+ DECREMENT: "--",
+ EQUAL: "==",
+ STRICT_EQUAL: "===",
+ LESS: "<",
+ GREATER: ">",
+ ASSIGN: "=",
+ NOT: "!",
+ BITWISE_NOT: "~",
+ NOT_EQUAL: "!=",
+ STRICT_NOT_EQUAL: "!==",
+ LESS_OR_EQUAL: "<=",
+ GREATER_OR_EQUAL: ">=",
+ LEFT_PARENTHESIS: "(",
+ LEFT_BRACKET: "[",
+ LEFT_BRACE: "{",
+ COMMA: ",",
+ PERIOD: ".",
+ RIGHT_PARENTHESIS: ")",
+ RIGHT_BRACKET: "]",
+ RIGHT_BRACE: "}",
+ SEMICOLON: ";",
+ COLON: ":",
+ QUESTION_MARK: "?",
+ IF: "if",
+ IN: "in",
+ DO: "do",
+ VAR: "var",
+ FOR: "for",
+ NEW: "new",
+ TRY: "try",
+ THIS: "this",
+ ELSE: "else",
+ CASE: "case",
+ VOID: "void",
+ WITH: "with",
+ WHILE: "while",
+ BREAK: "break",
+ CATCH: "catch",
+ THROW: "throw",
+ RETURN: "return",
+ TYPEOF: "typeof",
+ DELETE: "delete",
+ SWITCH: "switch",
+ DEFAULT: "default",
+ FINALLY: "finally",
+ FUNCTION: "function",
+ CONTINUE: "continue",
+ DEBUGGER: "debugger",
+ INSTANCEOF: "instanceof",
+}
+
+var keywordTable = map[string]_keyword{
+ "if": _keyword{
+ token: IF,
+ },
+ "in": _keyword{
+ token: IN,
+ },
+ "do": _keyword{
+ token: DO,
+ },
+ "var": _keyword{
+ token: VAR,
+ },
+ "for": _keyword{
+ token: FOR,
+ },
+ "new": _keyword{
+ token: NEW,
+ },
+ "try": _keyword{
+ token: TRY,
+ },
+ "this": _keyword{
+ token: THIS,
+ },
+ "else": _keyword{
+ token: ELSE,
+ },
+ "case": _keyword{
+ token: CASE,
+ },
+ "void": _keyword{
+ token: VOID,
+ },
+ "with": _keyword{
+ token: WITH,
+ },
+ "while": _keyword{
+ token: WHILE,
+ },
+ "break": _keyword{
+ token: BREAK,
+ },
+ "catch": _keyword{
+ token: CATCH,
+ },
+ "throw": _keyword{
+ token: THROW,
+ },
+ "return": _keyword{
+ token: RETURN,
+ },
+ "typeof": _keyword{
+ token: TYPEOF,
+ },
+ "delete": _keyword{
+ token: DELETE,
+ },
+ "switch": _keyword{
+ token: SWITCH,
+ },
+ "default": _keyword{
+ token: DEFAULT,
+ },
+ "finally": _keyword{
+ token: FINALLY,
+ },
+ "function": _keyword{
+ token: FUNCTION,
+ },
+ "continue": _keyword{
+ token: CONTINUE,
+ },
+ "debugger": _keyword{
+ token: DEBUGGER,
+ },
+ "instanceof": _keyword{
+ token: INSTANCEOF,
+ },
+ "const": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "class": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "enum": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "export": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "extends": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "import": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "super": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+ "implements": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "interface": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "let": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "package": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "private": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "protected": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "public": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+ "static": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+}
diff --git a/vendor/github.com/robertkrimen/otto/token/tokenfmt b/vendor/github.com/robertkrimen/otto/token/tokenfmt
new file mode 100755
index 000000000..63dd5d9e6
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/token/tokenfmt
@@ -0,0 +1,222 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+my (%token, @order, @keywords);
+
+{
+ my $keywords;
+ my @const;
+ push @const, <<_END_;
+package token
+
+const(
+ _ Token = iota
+_END_
+
+ for (split m/\n/, <<_END_) {
+ILLEGAL
+EOF
+COMMENT
+KEYWORD
+
+STRING
+BOOLEAN
+NULL
+NUMBER
+IDENTIFIER
+
+PLUS +
+MINUS -
+MULTIPLY *
+SLASH /
+REMAINDER %
+
+AND &
+OR |
+EXCLUSIVE_OR ^
+SHIFT_LEFT <<
+SHIFT_RIGHT >>
+UNSIGNED_SHIFT_RIGHT >>>
+AND_NOT &^
+
+ADD_ASSIGN +=
+SUBTRACT_ASSIGN -=
+MULTIPLY_ASSIGN *=
+QUOTIENT_ASSIGN /=
+REMAINDER_ASSIGN %=
+
+AND_ASSIGN &=
+OR_ASSIGN |=
+EXCLUSIVE_OR_ASSIGN ^=
+SHIFT_LEFT_ASSIGN <<=
+SHIFT_RIGHT_ASSIGN >>=
+UNSIGNED_SHIFT_RIGHT_ASSIGN >>>=
+AND_NOT_ASSIGN &^=
+
+LOGICAL_AND &&
+LOGICAL_OR ||
+INCREMENT ++
+DECREMENT --
+
+EQUAL ==
+STRICT_EQUAL ===
+LESS <
+GREATER >
+ASSIGN =
+NOT !
+
+BITWISE_NOT ~
+
+NOT_EQUAL !=
+STRICT_NOT_EQUAL !==
+LESS_OR_EQUAL <=
+GREATER_OR_EQUAL <=
+
+LEFT_PARENTHESIS (
+LEFT_BRACKET [
+LEFT_BRACE {
+COMMA ,
+PERIOD .
+
+RIGHT_PARENTHESIS )
+RIGHT_BRACKET ]
+RIGHT_BRACE }
+SEMICOLON ;
+COLON :
+QUESTION_MARK ?
+
+firstKeyword
+IF
+IN
+DO
+
+VAR
+FOR
+NEW
+TRY
+
+THIS
+ELSE
+CASE
+VOID
+WITH
+
+WHILE
+BREAK
+CATCH
+THROW
+
+RETURN
+TYPEOF
+DELETE
+SWITCH
+
+DEFAULT
+FINALLY
+
+FUNCTION
+CONTINUE
+DEBUGGER
+
+INSTANCEOF
+lastKeyword
+_END_
+ chomp;
+
+ next if m/^\s*#/;
+
+ my ($name, $symbol) = m/(\w+)\s*(\S+)?/;
+
+ if (defined $symbol) {
+ push @order, $name;
+ push @const, "$name // $symbol";
+ $token{$name} = $symbol;
+ } elsif (defined $name) {
+ $keywords ||= $name eq 'firstKeyword';
+
+ push @const, $name;
+ #$const[-1] .= " Token = iota" if 2 == @const;
+ if ($name =~ m/^([A-Z]+)/) {
+ push @keywords, $name if $keywords;
+ push @order, $name;
+ if ($token{SEMICOLON}) {
+ $token{$name} = lc $1;
+ } else {
+ $token{$name} = $name;
+ }
+ }
+ } else {
+ push @const, "";
+ }
+
+ }
+ push @const, ")";
+ print join "\n", @const, "";
+}
+
+{
+ print <<_END_;
+
+var token2string = [...]string{
+_END_
+ for my $name (@order) {
+ print "$name: \"$token{$name}\",\n";
+ }
+ print <<_END_;
+}
+_END_
+
+ print <<_END_;
+
+var keywordTable = map[string]_keyword{
+_END_
+ for my $name (@keywords) {
+ print <<_END_
+ "@{[ lc $name ]}": _keyword{
+ token: $name,
+ },
+_END_
+ }
+
+ for my $name (qw/
+ const
+ class
+ enum
+ export
+ extends
+ import
+ super
+ /) {
+ print <<_END_
+ "$name": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ },
+_END_
+ }
+
+ for my $name (qw/
+ implements
+ interface
+ let
+ package
+ private
+ protected
+ public
+ static
+ /) {
+ print <<_END_
+ "$name": _keyword{
+ token: KEYWORD,
+ futureKeyword: true,
+ strict: true,
+ },
+_END_
+ }
+
+ print <<_END_;
+}
+_END_
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_arguments.go b/vendor/github.com/robertkrimen/otto/type_arguments.go
new file mode 100644
index 000000000..841d75855
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_arguments.go
@@ -0,0 +1,106 @@
+package otto
+
+import (
+ "strconv"
+)
+
+func (runtime *_runtime) newArgumentsObject(indexOfParameterName []string, stash _stash, length int) *_object {
+ self := runtime.newClassObject("Arguments")
+
+ for index, _ := range indexOfParameterName {
+ name := strconv.FormatInt(int64(index), 10)
+ objectDefineOwnProperty(self, name, _property{Value{}, 0111}, false)
+ }
+
+ self.objectClass = _classArguments
+ self.value = _argumentsObject{
+ indexOfParameterName: indexOfParameterName,
+ stash: stash,
+ }
+
+ self.prototype = runtime.global.ObjectPrototype
+
+ self.defineProperty("length", toValue_int(length), 0101, false)
+
+ return self
+}
+
+type _argumentsObject struct {
+ indexOfParameterName []string
+ // function(abc, def, ghi)
+ // indexOfParameterName[0] = "abc"
+ // indexOfParameterName[1] = "def"
+ // indexOfParameterName[2] = "ghi"
+ // ...
+ stash _stash
+}
+
+func (in _argumentsObject) clone(clone *_clone) _argumentsObject {
+ indexOfParameterName := make([]string, len(in.indexOfParameterName))
+ copy(indexOfParameterName, in.indexOfParameterName)
+ return _argumentsObject{
+ indexOfParameterName,
+ clone.stash(in.stash),
+ }
+}
+
+func (self _argumentsObject) get(name string) (Value, bool) {
+ index := stringToArrayIndex(name)
+ if index >= 0 && index < int64(len(self.indexOfParameterName)) {
+ name := self.indexOfParameterName[index]
+ if name == "" {
+ return Value{}, false
+ }
+ return self.stash.getBinding(name, false), true
+ }
+ return Value{}, false
+}
+
+func (self _argumentsObject) put(name string, value Value) {
+ index := stringToArrayIndex(name)
+ name = self.indexOfParameterName[index]
+ self.stash.setBinding(name, value, false)
+}
+
+func (self _argumentsObject) delete(name string) {
+ index := stringToArrayIndex(name)
+ self.indexOfParameterName[index] = ""
+}
+
+func argumentsGet(self *_object, name string) Value {
+ if value, exists := self.value.(_argumentsObject).get(name); exists {
+ return value
+ }
+ return objectGet(self, name)
+}
+
+func argumentsGetOwnProperty(self *_object, name string) *_property {
+ property := objectGetOwnProperty(self, name)
+ if value, exists := self.value.(_argumentsObject).get(name); exists {
+ property.value = value
+ }
+ return property
+}
+
+func argumentsDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ if _, exists := self.value.(_argumentsObject).get(name); exists {
+ if !objectDefineOwnProperty(self, name, descriptor, false) {
+ return self.runtime.typeErrorResult(throw)
+ }
+ if value, valid := descriptor.value.(Value); valid {
+ self.value.(_argumentsObject).put(name, value)
+ }
+ return true
+ }
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+}
+
+func argumentsDelete(self *_object, name string, throw bool) bool {
+ if !objectDelete(self, name, throw) {
+ return false
+ }
+ if _, exists := self.value.(_argumentsObject).get(name); exists {
+ self.value.(_argumentsObject).delete(name)
+ }
+ return true
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_array.go b/vendor/github.com/robertkrimen/otto/type_array.go
new file mode 100644
index 000000000..c8a974b02
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_array.go
@@ -0,0 +1,109 @@
+package otto
+
+import (
+ "strconv"
+)
+
+func (runtime *_runtime) newArrayObject(length uint32) *_object {
+ self := runtime.newObject()
+ self.class = "Array"
+ self.defineProperty("length", toValue_uint32(length), 0100, false)
+ self.objectClass = _classArray
+ return self
+}
+
+func isArray(object *_object) bool {
+ return object != nil && (object.class == "Array" || object.class == "GoArray")
+}
+
+func objectLength(object *_object) uint32 {
+ if object == nil {
+ return 0
+ }
+ switch object.class {
+ case "Array":
+ return object.get("length").value.(uint32)
+ case "String":
+ return uint32(object.get("length").value.(int))
+ case "GoArray":
+ return uint32(object.get("length").value.(int))
+ }
+ return 0
+}
+
+func arrayUint32(rt *_runtime, value Value) uint32 {
+ nm := value.number()
+ if nm.kind != numberInteger || !isUint32(nm.int64) {
+ // FIXME
+ panic(rt.panicRangeError())
+ }
+ return uint32(nm.int64)
+}
+
+func arrayDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ lengthProperty := self.getOwnProperty("length")
+ lengthValue, valid := lengthProperty.value.(Value)
+ if !valid {
+ panic("Array.length != Value{}")
+ }
+ length := lengthValue.value.(uint32)
+ if name == "length" {
+ if descriptor.value == nil {
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+ }
+ newLengthValue, isValue := descriptor.value.(Value)
+ if !isValue {
+ panic(self.runtime.panicTypeError())
+ }
+ newLength := arrayUint32(self.runtime, newLengthValue)
+ descriptor.value = toValue_uint32(newLength)
+ if newLength > length {
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+ }
+ if !lengthProperty.writable() {
+ goto Reject
+ }
+ newWritable := true
+ if descriptor.mode&0700 == 0 {
+ // If writable is off
+ newWritable = false
+ descriptor.mode |= 0100
+ }
+ if !objectDefineOwnProperty(self, name, descriptor, throw) {
+ return false
+ }
+ for newLength < length {
+ length--
+ if !self.delete(strconv.FormatInt(int64(length), 10), false) {
+ descriptor.value = toValue_uint32(length + 1)
+ if !newWritable {
+ descriptor.mode &= 0077
+ }
+ objectDefineOwnProperty(self, name, descriptor, false)
+ goto Reject
+ }
+ }
+ if !newWritable {
+ descriptor.mode &= 0077
+ objectDefineOwnProperty(self, name, descriptor, false)
+ }
+ } else if index := stringToArrayIndex(name); index >= 0 {
+ if index >= int64(length) && !lengthProperty.writable() {
+ goto Reject
+ }
+ if !objectDefineOwnProperty(self, strconv.FormatInt(index, 10), descriptor, false) {
+ goto Reject
+ }
+ if index >= int64(length) {
+ lengthProperty.value = toValue_uint32(uint32(index + 1))
+ objectDefineOwnProperty(self, "length", *lengthProperty, false)
+ return true
+ }
+ }
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+Reject:
+ if throw {
+ panic(self.runtime.panicTypeError())
+ }
+ return false
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_boolean.go b/vendor/github.com/robertkrimen/otto/type_boolean.go
new file mode 100644
index 000000000..afc45c69b
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_boolean.go
@@ -0,0 +1,13 @@
+package otto
+
+import (
+ "strconv"
+)
+
+func (runtime *_runtime) newBooleanObject(value Value) *_object {
+ return runtime.newPrimitiveObject("Boolean", toValue_bool(value.bool()))
+}
+
+func booleanToString(value bool) string {
+ return strconv.FormatBool(value)
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_date.go b/vendor/github.com/robertkrimen/otto/type_date.go
new file mode 100644
index 000000000..7079e649c
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_date.go
@@ -0,0 +1,299 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "regexp"
+ Time "time"
+)
+
+type _dateObject struct {
+ time Time.Time // Time from the "time" package, a cached version of time
+ epoch int64
+ value Value
+ isNaN bool
+}
+
+var (
+ invalidDateObject = _dateObject{
+ time: Time.Time{},
+ epoch: -1,
+ value: NaNValue(),
+ isNaN: true,
+ }
+)
+
+type _ecmaTime struct {
+ year int
+ month int
+ day int
+ hour int
+ minute int
+ second int
+ millisecond int
+ location *Time.Location // Basically, either local or UTC
+}
+
+func ecmaTime(goTime Time.Time) _ecmaTime {
+ return _ecmaTime{
+ goTime.Year(),
+ dateFromGoMonth(goTime.Month()),
+ goTime.Day(),
+ goTime.Hour(),
+ goTime.Minute(),
+ goTime.Second(),
+ goTime.Nanosecond() / (100 * 100 * 100),
+ goTime.Location(),
+ }
+}
+
+func (self *_ecmaTime) goTime() Time.Time {
+ return Time.Date(
+ self.year,
+ dateToGoMonth(self.month),
+ self.day,
+ self.hour,
+ self.minute,
+ self.second,
+ self.millisecond*(100*100*100),
+ self.location,
+ )
+}
+
+func (self *_dateObject) Time() Time.Time {
+ return self.time
+}
+
+func (self *_dateObject) Epoch() int64 {
+ return self.epoch
+}
+
+func (self *_dateObject) Value() Value {
+ return self.value
+}
+
+// FIXME A date should only be in the range of -100,000,000 to +100,000,000 (1970): 15.9.1.1
+func (self *_dateObject) SetNaN() {
+ self.time = Time.Time{}
+ self.epoch = -1
+ self.value = NaNValue()
+ self.isNaN = true
+}
+
+func (self *_dateObject) SetTime(time Time.Time) {
+ self.Set(timeToEpoch(time))
+}
+
+func epoch2dateObject(epoch float64) _dateObject {
+ date := _dateObject{}
+ date.Set(epoch)
+ return date
+}
+
+func (self *_dateObject) Set(epoch float64) {
+ // epoch
+ self.epoch = epochToInteger(epoch)
+
+ // time
+ time, err := epochToTime(epoch)
+ self.time = time // Is either a valid time, or the zero-value for time.Time
+
+ // value & isNaN
+ if err != nil {
+ self.isNaN = true
+ self.epoch = -1
+ self.value = NaNValue()
+ } else {
+ self.value = toValue_int64(self.epoch)
+ }
+}
+
+func epochToInteger(value float64) int64 {
+ if value > 0 {
+ return int64(math.Floor(value))
+ }
+ return int64(math.Ceil(value))
+}
+
+func epochToTime(value float64) (time Time.Time, err error) {
+ epochWithMilli := value
+ if math.IsNaN(epochWithMilli) || math.IsInf(epochWithMilli, 0) {
+ err = fmt.Errorf("Invalid time %v", value)
+ return
+ }
+
+ epoch := int64(epochWithMilli / 1000)
+ milli := int64(epochWithMilli) % 1000
+
+ time = Time.Unix(int64(epoch), milli*1000000).UTC()
+ return
+}
+
+func timeToEpoch(time Time.Time) float64 {
+ return float64(time.UnixNano() / (1000 * 1000))
+}
+
+func (runtime *_runtime) newDateObject(epoch float64) *_object {
+ self := runtime.newObject()
+ self.class = "Date"
+
+ // FIXME This is ugly...
+ date := _dateObject{}
+ date.Set(epoch)
+ self.value = date
+ return self
+}
+
+func (self *_object) dateValue() _dateObject {
+ value, _ := self.value.(_dateObject)
+ return value
+}
+
+func dateObjectOf(rt *_runtime, _dateObject *_object) _dateObject {
+ if _dateObject == nil || _dateObject.class != "Date" {
+ panic(rt.panicTypeError())
+ }
+ return _dateObject.dateValue()
+}
+
+// JavaScript is 0-based, Go is 1-based (15.9.1.4)
+func dateToGoMonth(month int) Time.Month {
+ return Time.Month(month + 1)
+}
+
+func dateFromGoMonth(month Time.Month) int {
+ return int(month) - 1
+}
+
+// Both JavaScript & Go are 0-based (Sunday == 0)
+func dateToGoDay(day int) Time.Weekday {
+ return Time.Weekday(day)
+}
+
+func dateFromGoDay(day Time.Weekday) int {
+ return int(day)
+}
+
+func newDateTime(argumentList []Value, location *Time.Location) (epoch float64) {
+
+ pick := func(index int, default_ float64) (float64, bool) {
+ if index >= len(argumentList) {
+ return default_, false
+ }
+ value := argumentList[index].float64()
+ if math.IsNaN(value) || math.IsInf(value, 0) {
+ return 0, true
+ }
+ return value, false
+ }
+
+ if len(argumentList) >= 2 { // 2-argument, 3-argument, ...
+ var year, month, day, hour, minute, second, millisecond float64
+ var invalid bool
+ if year, invalid = pick(0, 1900.0); invalid {
+ goto INVALID
+ }
+ if month, invalid = pick(1, 0.0); invalid {
+ goto INVALID
+ }
+ if day, invalid = pick(2, 1.0); invalid {
+ goto INVALID
+ }
+ if hour, invalid = pick(3, 0.0); invalid {
+ goto INVALID
+ }
+ if minute, invalid = pick(4, 0.0); invalid {
+ goto INVALID
+ }
+ if second, invalid = pick(5, 0.0); invalid {
+ goto INVALID
+ }
+ if millisecond, invalid = pick(6, 0.0); invalid {
+ goto INVALID
+ }
+
+ if year >= 0 && year <= 99 {
+ year += 1900
+ }
+
+ time := Time.Date(int(year), dateToGoMonth(int(month)), int(day), int(hour), int(minute), int(second), int(millisecond)*1000*1000, location)
+ return timeToEpoch(time)
+
+ } else if len(argumentList) == 0 { // 0-argument
+ time := Time.Now().UTC()
+ return timeToEpoch(time)
+ } else { // 1-argument
+ value := valueOfArrayIndex(argumentList, 0)
+ value = toPrimitive(value)
+ if value.IsString() {
+ return dateParse(value.string())
+ }
+
+ return value.float64()
+ }
+
+INVALID:
+ epoch = math.NaN()
+ return
+}
+
+var (
+ dateLayoutList = []string{
+ "2006",
+ "2006-01",
+ "2006-01-02",
+
+ "2006T15:04",
+ "2006-01T15:04",
+ "2006-01-02T15:04",
+
+ "2006T15:04:05",
+ "2006-01T15:04:05",
+ "2006-01-02T15:04:05",
+
+ "2006T15:04:05.000",
+ "2006-01T15:04:05.000",
+ "2006-01-02T15:04:05.000",
+
+ "2006T15:04-0700",
+ "2006-01T15:04-0700",
+ "2006-01-02T15:04-0700",
+
+ "2006T15:04:05-0700",
+ "2006-01T15:04:05-0700",
+ "2006-01-02T15:04:05-0700",
+
+ "2006T15:04:05.000-0700",
+ "2006-01T15:04:05.000-0700",
+ "2006-01-02T15:04:05.000-0700",
+
+ Time.RFC1123,
+ }
+ matchDateTimeZone = regexp.MustCompile(`^(.*)(?:(Z)|([\+\-]\d{2}):(\d{2}))$`)
+)
+
+func dateParse(date string) (epoch float64) {
+ // YYYY-MM-DDTHH:mm:ss.sssZ
+ var time Time.Time
+ var err error
+ {
+ date := date
+ if match := matchDateTimeZone.FindStringSubmatch(date); match != nil {
+ if match[2] == "Z" {
+ date = match[1] + "+0000"
+ } else {
+ date = match[1] + match[3] + match[4]
+ }
+ }
+ for _, layout := range dateLayoutList {
+ time, err = Time.Parse(layout, date)
+ if err == nil {
+ break
+ }
+ }
+ }
+ if err != nil {
+ return math.NaN()
+ }
+ return float64(time.UnixNano()) / (1000 * 1000) // UnixMilli()
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_error.go b/vendor/github.com/robertkrimen/otto/type_error.go
new file mode 100644
index 000000000..84e5d79b1
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_error.go
@@ -0,0 +1,24 @@
+package otto
+
+func (rt *_runtime) newErrorObject(name string, message Value, stackFramesToPop int) *_object {
+ self := rt.newClassObject("Error")
+ if message.IsDefined() {
+ msg := message.string()
+ self.defineProperty("message", toValue_string(msg), 0111, false)
+ self.value = newError(rt, name, stackFramesToPop, msg)
+ } else {
+ self.value = newError(rt, name, stackFramesToPop)
+ }
+
+ self.defineOwnProperty("stack", _property{
+ value: _propertyGetSet{
+ rt.newNativeFunction("get", "internal", 0, func(FunctionCall) Value {
+ return toValue_string(self.value.(_error).formatWithStack())
+ }),
+ &_nilGetSetObject,
+ },
+ mode: modeConfigureMask & modeOnMask,
+ }, false)
+
+ return self
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_function.go b/vendor/github.com/robertkrimen/otto/type_function.go
new file mode 100644
index 000000000..5637dc605
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_function.go
@@ -0,0 +1,292 @@
+package otto
+
+// _constructFunction
+type _constructFunction func(*_object, []Value) Value
+
+// 13.2.2 [[Construct]]
+func defaultConstruct(fn *_object, argumentList []Value) Value {
+ object := fn.runtime.newObject()
+ object.class = "Object"
+
+ prototype := fn.get("prototype")
+ if prototype.kind != valueObject {
+ prototype = toValue_object(fn.runtime.global.ObjectPrototype)
+ }
+ object.prototype = prototype._object()
+
+ this := toValue_object(object)
+ value := fn.call(this, argumentList, false, nativeFrame)
+ if value.kind == valueObject {
+ return value
+ }
+ return this
+}
+
+// _nativeFunction
+type _nativeFunction func(FunctionCall) Value
+
+// ===================== //
+// _nativeFunctionObject //
+// ===================== //
+
+type _nativeFunctionObject struct {
+ name string
+ file string
+ line int
+ call _nativeFunction // [[Call]]
+ construct _constructFunction // [[Construct]]
+}
+
+func (runtime *_runtime) newNativeFunctionObject(name, file string, line int, native _nativeFunction, length int) *_object {
+ self := runtime.newClassObject("Function")
+ self.value = _nativeFunctionObject{
+ name: name,
+ file: file,
+ line: line,
+ call: native,
+ construct: defaultConstruct,
+ }
+ self.defineProperty("length", toValue_int(length), 0000, false)
+ return self
+}
+
+// =================== //
+// _bindFunctionObject //
+// =================== //
+
+type _bindFunctionObject struct {
+ target *_object
+ this Value
+ argumentList []Value
+}
+
+func (runtime *_runtime) newBoundFunctionObject(target *_object, this Value, argumentList []Value) *_object {
+ self := runtime.newClassObject("Function")
+ self.value = _bindFunctionObject{
+ target: target,
+ this: this,
+ argumentList: argumentList,
+ }
+ length := int(toInt32(target.get("length")))
+ length -= len(argumentList)
+ if length < 0 {
+ length = 0
+ }
+ self.defineProperty("length", toValue_int(length), 0000, false)
+ self.defineProperty("caller", Value{}, 0000, false) // TODO Should throw a TypeError
+ self.defineProperty("arguments", Value{}, 0000, false) // TODO Should throw a TypeError
+ return self
+}
+
+// [[Construct]]
+func (fn _bindFunctionObject) construct(argumentList []Value) Value {
+ object := fn.target
+ switch value := object.value.(type) {
+ case _nativeFunctionObject:
+ return value.construct(object, fn.argumentList)
+ case _nodeFunctionObject:
+ argumentList = append(fn.argumentList, argumentList...)
+ return object.construct(argumentList)
+ }
+ panic(fn.target.runtime.panicTypeError())
+}
+
+// =================== //
+// _nodeFunctionObject //
+// =================== //
+
+type _nodeFunctionObject struct {
+ node *_nodeFunctionLiteral
+ stash _stash
+}
+
+func (runtime *_runtime) newNodeFunctionObject(node *_nodeFunctionLiteral, stash _stash) *_object {
+ self := runtime.newClassObject("Function")
+ self.value = _nodeFunctionObject{
+ node: node,
+ stash: stash,
+ }
+ self.defineProperty("length", toValue_int(len(node.parameterList)), 0000, false)
+ return self
+}
+
+// ======= //
+// _object //
+// ======= //
+
+func (self *_object) isCall() bool {
+ switch fn := self.value.(type) {
+ case _nativeFunctionObject:
+ return fn.call != nil
+ case _bindFunctionObject:
+ return true
+ case _nodeFunctionObject:
+ return true
+ }
+ return false
+}
+
+func (self *_object) call(this Value, argumentList []Value, eval bool, frame _frame) Value {
+ switch fn := self.value.(type) {
+
+ case _nativeFunctionObject:
+ // Since eval is a native function, we only have to check for it here
+ if eval {
+ eval = self == self.runtime.eval // If eval is true, then it IS a direct eval
+ }
+
+ // Enter a scope, name from the native object...
+ rt := self.runtime
+ if rt.scope != nil && !eval {
+ rt.enterFunctionScope(rt.scope.lexical, this)
+ rt.scope.frame = _frame{
+ native: true,
+ nativeFile: fn.file,
+ nativeLine: fn.line,
+ callee: fn.name,
+ file: nil,
+ }
+ defer func() {
+ rt.leaveScope()
+ }()
+ }
+
+ return fn.call(FunctionCall{
+ runtime: self.runtime,
+ eval: eval,
+
+ This: this,
+ ArgumentList: argumentList,
+ Otto: self.runtime.otto,
+ })
+
+ case _bindFunctionObject:
+ // TODO Passthrough site, do not enter a scope
+ argumentList = append(fn.argumentList, argumentList...)
+ return fn.target.call(fn.this, argumentList, false, frame)
+
+ case _nodeFunctionObject:
+ rt := self.runtime
+ stash := rt.enterFunctionScope(fn.stash, this)
+ rt.scope.frame = _frame{
+ callee: fn.node.name,
+ file: fn.node.file,
+ }
+ defer func() {
+ rt.leaveScope()
+ }()
+ callValue := rt.cmpl_call_nodeFunction(self, stash, fn.node, this, argumentList)
+ if value, valid := callValue.value.(_result); valid {
+ return value.value
+ }
+ return callValue
+ }
+
+ panic(self.runtime.panicTypeError("%v is not a function", toValue_object(self)))
+}
+
+func (self *_object) construct(argumentList []Value) Value {
+ switch fn := self.value.(type) {
+
+ case _nativeFunctionObject:
+ if fn.call == nil {
+ panic(self.runtime.panicTypeError("%v is not a function", toValue_object(self)))
+ }
+ if fn.construct == nil {
+ panic(self.runtime.panicTypeError("%v is not a constructor", toValue_object(self)))
+ }
+ return fn.construct(self, argumentList)
+
+ case _bindFunctionObject:
+ return fn.construct(argumentList)
+
+ case _nodeFunctionObject:
+ return defaultConstruct(self, argumentList)
+ }
+
+ panic(self.runtime.panicTypeError("%v is not a function", toValue_object(self)))
+}
+
+// 15.3.5.3
+func (self *_object) hasInstance(of Value) bool {
+ if !self.isCall() {
+ // We should not have a hasInstance method
+ panic(self.runtime.panicTypeError())
+ }
+ if !of.IsObject() {
+ return false
+ }
+ prototype := self.get("prototype")
+ if !prototype.IsObject() {
+ panic(self.runtime.panicTypeError())
+ }
+ prototypeObject := prototype._object()
+
+ value := of._object().prototype
+ for value != nil {
+ if value == prototypeObject {
+ return true
+ }
+ value = value.prototype
+ }
+ return false
+}
+
+// ============ //
+// FunctionCall //
+// ============ //
+
+// FunctionCall is an encapsulation of a JavaScript function call.
+type FunctionCall struct {
+ runtime *_runtime
+ _thisObject *_object
+ eval bool // This call is a direct call to eval
+
+ This Value
+ ArgumentList []Value
+ Otto *Otto
+}
+
+// Argument will return the value of the argument at the given index.
+//
+// If no such argument exists, undefined is returned.
+func (self FunctionCall) Argument(index int) Value {
+ return valueOfArrayIndex(self.ArgumentList, index)
+}
+
+func (self FunctionCall) getArgument(index int) (Value, bool) {
+ return getValueOfArrayIndex(self.ArgumentList, index)
+}
+
+func (self FunctionCall) slice(index int) []Value {
+ if index < len(self.ArgumentList) {
+ return self.ArgumentList[index:]
+ }
+ return []Value{}
+}
+
+func (self *FunctionCall) thisObject() *_object {
+ if self._thisObject == nil {
+ this := self.This.resolve() // FIXME Is this right?
+ self._thisObject = self.runtime.toObject(this)
+ }
+ return self._thisObject
+}
+
+func (self *FunctionCall) thisClassObject(class string) *_object {
+ thisObject := self.thisObject()
+ if thisObject.class != class {
+ panic(self.runtime.panicTypeError())
+ }
+ return self._thisObject
+}
+
+func (self FunctionCall) toObject(value Value) *_object {
+ return self.runtime.toObject(value)
+}
+
+// CallerLocation will return file location information (file:line:pos) where this function is being called.
+func (self FunctionCall) CallerLocation() string {
+ // see error.go for location()
+ return self.runtime.scope.outer.frame.location()
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_go_array.go b/vendor/github.com/robertkrimen/otto/type_go_array.go
new file mode 100644
index 000000000..13a0b10f2
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_go_array.go
@@ -0,0 +1,134 @@
+package otto
+
+import (
+ "reflect"
+ "strconv"
+)
+
+func (runtime *_runtime) newGoArrayObject(value reflect.Value) *_object {
+ self := runtime.newObject()
+ self.class = "GoArray"
+ self.objectClass = _classGoArray
+ self.value = _newGoArrayObject(value)
+ return self
+}
+
+type _goArrayObject struct {
+ value reflect.Value
+ writable bool
+ propertyMode _propertyMode
+}
+
+func _newGoArrayObject(value reflect.Value) *_goArrayObject {
+ writable := value.Kind() == reflect.Ptr // The Array is addressable (like a Slice)
+ mode := _propertyMode(0010)
+ if writable {
+ mode = 0110
+ }
+ self := &_goArrayObject{
+ value: value,
+ writable: writable,
+ propertyMode: mode,
+ }
+ return self
+}
+
+func (self _goArrayObject) getValue(index int64) (reflect.Value, bool) {
+ value := reflect.Indirect(self.value)
+ if index < int64(value.Len()) {
+ return value.Index(int(index)), true
+ }
+ return reflect.Value{}, false
+}
+
+func (self _goArrayObject) setValue(index int64, value Value) bool {
+ indexValue, exists := self.getValue(index)
+ if !exists {
+ return false
+ }
+ reflectValue, err := value.toReflectValue(reflect.Indirect(self.value).Type().Elem().Kind())
+ if err != nil {
+ panic(err)
+ }
+ indexValue.Set(reflectValue)
+ return true
+}
+
+func goArrayGetOwnProperty(self *_object, name string) *_property {
+ // length
+ if name == "length" {
+ return &_property{
+ value: toValue(reflect.Indirect(self.value.(*_goArrayObject).value).Len()),
+ mode: 0,
+ }
+ }
+
+ // .0, .1, .2, ...
+ index := stringToArrayIndex(name)
+ if index >= 0 {
+ object := self.value.(*_goArrayObject)
+ value := Value{}
+ reflectValue, exists := object.getValue(index)
+ if exists {
+ value = self.runtime.toValue(reflectValue.Interface())
+ }
+ return &_property{
+ value: value,
+ mode: object.propertyMode,
+ }
+ }
+
+ return objectGetOwnProperty(self, name)
+}
+
+func goArrayEnumerate(self *_object, all bool, each func(string) bool) {
+ object := self.value.(*_goArrayObject)
+ // .0, .1, .2, ...
+
+ for index, length := 0, object.value.Len(); index < length; index++ {
+ name := strconv.FormatInt(int64(index), 10)
+ if !each(name) {
+ return
+ }
+ }
+
+ objectEnumerate(self, all, each)
+}
+
+func goArrayDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ if name == "length" {
+ return self.runtime.typeErrorResult(throw)
+ } else if index := stringToArrayIndex(name); index >= 0 {
+ object := self.value.(*_goArrayObject)
+ if object.writable {
+ if self.value.(*_goArrayObject).setValue(index, descriptor.value.(Value)) {
+ return true
+ }
+ }
+ return self.runtime.typeErrorResult(throw)
+ }
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+}
+
+func goArrayDelete(self *_object, name string, throw bool) bool {
+ // length
+ if name == "length" {
+ return self.runtime.typeErrorResult(throw)
+ }
+
+ // .0, .1, .2, ...
+ index := stringToArrayIndex(name)
+ if index >= 0 {
+ object := self.value.(*_goArrayObject)
+ if object.writable {
+ indexValue, exists := object.getValue(index)
+ if exists {
+ indexValue.Set(reflect.Zero(reflect.Indirect(object.value).Type().Elem()))
+ return true
+ }
+ }
+ return self.runtime.typeErrorResult(throw)
+ }
+
+ return self.delete(name, throw)
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_go_map.go b/vendor/github.com/robertkrimen/otto/type_go_map.go
new file mode 100644
index 000000000..3e204a028
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_go_map.go
@@ -0,0 +1,87 @@
+package otto
+
+import (
+ "reflect"
+)
+
+func (runtime *_runtime) newGoMapObject(value reflect.Value) *_object {
+ self := runtime.newObject()
+ self.class = "Object" // TODO Should this be something else?
+ self.objectClass = _classGoMap
+ self.value = _newGoMapObject(value)
+ return self
+}
+
+type _goMapObject struct {
+ value reflect.Value
+ keyKind reflect.Kind
+ valueKind reflect.Kind
+}
+
+func _newGoMapObject(value reflect.Value) *_goMapObject {
+ if value.Kind() != reflect.Map {
+ dbgf("%/panic//%@: %v != reflect.Map", value.Kind())
+ }
+ self := &_goMapObject{
+ value: value,
+ keyKind: value.Type().Key().Kind(),
+ valueKind: value.Type().Elem().Kind(),
+ }
+ return self
+}
+
+func (self _goMapObject) toKey(name string) reflect.Value {
+ reflectValue, err := stringToReflectValue(name, self.keyKind)
+ if err != nil {
+ panic(err)
+ }
+ return reflectValue
+}
+
+func (self _goMapObject) toValue(value Value) reflect.Value {
+ reflectValue, err := value.toReflectValue(self.valueKind)
+ if err != nil {
+ panic(err)
+ }
+ return reflectValue
+}
+
+func goMapGetOwnProperty(self *_object, name string) *_property {
+ object := self.value.(*_goMapObject)
+ value := object.value.MapIndex(object.toKey(name))
+ if value.IsValid() {
+ return &_property{self.runtime.toValue(value.Interface()), 0111}
+ }
+
+ return nil
+}
+
+func goMapEnumerate(self *_object, all bool, each func(string) bool) {
+ object := self.value.(*_goMapObject)
+ keys := object.value.MapKeys()
+ for _, key := range keys {
+ if !each(toValue(key).String()) {
+ return
+ }
+ }
+}
+
+func goMapDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ object := self.value.(*_goMapObject)
+ // TODO ...or 0222
+ if descriptor.mode != 0111 {
+ return self.runtime.typeErrorResult(throw)
+ }
+ if !descriptor.isDataDescriptor() {
+ return self.runtime.typeErrorResult(throw)
+ }
+ object.value.SetMapIndex(object.toKey(name), object.toValue(descriptor.value.(Value)))
+ return true
+}
+
+func goMapDelete(self *_object, name string, throw bool) bool {
+ object := self.value.(*_goMapObject)
+ object.value.SetMapIndex(object.toKey(name), reflect.Value{})
+ // FIXME
+ return true
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_go_slice.go b/vendor/github.com/robertkrimen/otto/type_go_slice.go
new file mode 100644
index 000000000..78c69e684
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_go_slice.go
@@ -0,0 +1,126 @@
+package otto
+
+import (
+ "reflect"
+ "strconv"
+)
+
+func (runtime *_runtime) newGoSliceObject(value reflect.Value) *_object {
+ self := runtime.newObject()
+ self.class = "GoArray" // TODO GoSlice?
+ self.objectClass = _classGoSlice
+ self.value = _newGoSliceObject(value)
+ return self
+}
+
+type _goSliceObject struct {
+ value reflect.Value
+}
+
+func _newGoSliceObject(value reflect.Value) *_goSliceObject {
+ self := &_goSliceObject{
+ value: value,
+ }
+ return self
+}
+
+func (self _goSliceObject) getValue(index int64) (reflect.Value, bool) {
+ if index < int64(self.value.Len()) {
+ return self.value.Index(int(index)), true
+ }
+ return reflect.Value{}, false
+}
+
+func (self _goSliceObject) setValue(index int64, value Value) bool {
+ indexValue, exists := self.getValue(index)
+ if !exists {
+ return false
+ }
+ reflectValue, err := value.toReflectValue(self.value.Type().Elem().Kind())
+ if err != nil {
+ panic(err)
+ }
+ indexValue.Set(reflectValue)
+ return true
+}
+
+func goSliceGetOwnProperty(self *_object, name string) *_property {
+ // length
+ if name == "length" {
+ return &_property{
+ value: toValue(self.value.(*_goSliceObject).value.Len()),
+ mode: 0,
+ }
+ }
+
+ // .0, .1, .2, ...
+ index := stringToArrayIndex(name)
+ if index >= 0 {
+ value := Value{}
+ reflectValue, exists := self.value.(*_goSliceObject).getValue(index)
+ if exists {
+ value = self.runtime.toValue(reflectValue.Interface())
+ }
+ return &_property{
+ value: value,
+ mode: 0110,
+ }
+ }
+
+ // Other methods
+ if method := self.value.(*_goSliceObject).value.MethodByName(name); (method != reflect.Value{}) {
+ return &_property{
+ value: self.runtime.toValue(method.Interface()),
+ mode: 0110,
+ }
+ }
+
+ return objectGetOwnProperty(self, name)
+}
+
+func goSliceEnumerate(self *_object, all bool, each func(string) bool) {
+ object := self.value.(*_goSliceObject)
+ // .0, .1, .2, ...
+
+ for index, length := 0, object.value.Len(); index < length; index++ {
+ name := strconv.FormatInt(int64(index), 10)
+ if !each(name) {
+ return
+ }
+ }
+
+ objectEnumerate(self, all, each)
+}
+
+func goSliceDefineOwnProperty(self *_object, name string, descriptor _property, throw bool) bool {
+ if name == "length" {
+ return self.runtime.typeErrorResult(throw)
+ } else if index := stringToArrayIndex(name); index >= 0 {
+ if self.value.(*_goSliceObject).setValue(index, descriptor.value.(Value)) {
+ return true
+ }
+ return self.runtime.typeErrorResult(throw)
+ }
+ return objectDefineOwnProperty(self, name, descriptor, throw)
+}
+
+func goSliceDelete(self *_object, name string, throw bool) bool {
+ // length
+ if name == "length" {
+ return self.runtime.typeErrorResult(throw)
+ }
+
+ // .0, .1, .2, ...
+ index := stringToArrayIndex(name)
+ if index >= 0 {
+ object := self.value.(*_goSliceObject)
+ indexValue, exists := object.getValue(index)
+ if exists {
+ indexValue.Set(reflect.Zero(object.value.Type().Elem()))
+ return true
+ }
+ return self.runtime.typeErrorResult(throw)
+ }
+
+ return self.delete(name, throw)
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_go_struct.go b/vendor/github.com/robertkrimen/otto/type_go_struct.go
new file mode 100644
index 000000000..608ac6660
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_go_struct.go
@@ -0,0 +1,146 @@
+package otto
+
+import (
+ "encoding/json"
+ "reflect"
+)
+
+// FIXME Make a note about not being able to modify a struct unless it was
+// passed as a pointer-to: &struct{ ... }
+// This seems to be a limitation of the reflect package.
+// This goes for the other Go constructs too.
+// I guess we could get around it by either:
+// 1. Creating a new struct every time
+// 2. Creating an addressable? struct in the constructor
+
+func (runtime *_runtime) newGoStructObject(value reflect.Value) *_object {
+ self := runtime.newObject()
+ self.class = "Object" // TODO Should this be something else?
+ self.objectClass = _classGoStruct
+ self.value = _newGoStructObject(value)
+ return self
+}
+
+type _goStructObject struct {
+ value reflect.Value
+}
+
+func _newGoStructObject(value reflect.Value) *_goStructObject {
+ if reflect.Indirect(value).Kind() != reflect.Struct {
+ dbgf("%/panic//%@: %v != reflect.Struct", value.Kind())
+ }
+ self := &_goStructObject{
+ value: value,
+ }
+ return self
+}
+
+func (self _goStructObject) getValue(name string) reflect.Value {
+ if validGoStructName(name) {
+ // Do not reveal hidden or unexported fields
+ if field := reflect.Indirect(self.value).FieldByName(name); (field != reflect.Value{}) {
+ return field
+ }
+
+ if method := self.value.MethodByName(name); (method != reflect.Value{}) {
+ return method
+ }
+ }
+
+ return reflect.Value{}
+}
+
+func (self _goStructObject) field(name string) (reflect.StructField, bool) {
+ return reflect.Indirect(self.value).Type().FieldByName(name)
+}
+
+func (self _goStructObject) method(name string) (reflect.Method, bool) {
+ return reflect.Indirect(self.value).Type().MethodByName(name)
+}
+
+func (self _goStructObject) setValue(name string, value Value) bool {
+ field, exists := self.field(name)
+ if !exists {
+ return false
+ }
+ fieldValue := self.getValue(name)
+ reflectValue, err := value.toReflectValue(field.Type.Kind())
+ if err != nil {
+ panic(err)
+ }
+ fieldValue.Set(reflectValue)
+
+ return true
+}
+
+func goStructGetOwnProperty(self *_object, name string) *_property {
+ object := self.value.(*_goStructObject)
+ value := object.getValue(name)
+ if value.IsValid() {
+ return &_property{self.runtime.toValue(value.Interface()), 0110}
+ }
+
+ return objectGetOwnProperty(self, name)
+}
+
+func validGoStructName(name string) bool {
+ if name == "" {
+ return false
+ }
+ return 'A' <= name[0] && name[0] <= 'Z' // TODO What about Unicode?
+}
+
+func goStructEnumerate(self *_object, all bool, each func(string) bool) {
+ object := self.value.(*_goStructObject)
+
+ // Enumerate fields
+ for index := 0; index < reflect.Indirect(object.value).NumField(); index++ {
+ name := reflect.Indirect(object.value).Type().Field(index).Name
+ if validGoStructName(name) {
+ if !each(name) {
+ return
+ }
+ }
+ }
+
+ // Enumerate methods
+ for index := 0; index < object.value.NumMethod(); index++ {
+ name := object.value.Type().Method(index).Name
+ if validGoStructName(name) {
+ if !each(name) {
+ return
+ }
+ }
+ }
+
+ objectEnumerate(self, all, each)
+}
+
+func goStructCanPut(self *_object, name string) bool {
+ object := self.value.(*_goStructObject)
+ value := object.getValue(name)
+ if value.IsValid() {
+ return true
+ }
+
+ return objectCanPut(self, name)
+}
+
+func goStructPut(self *_object, name string, value Value, throw bool) {
+ object := self.value.(*_goStructObject)
+ if object.setValue(name, value) {
+ return
+ }
+
+ objectPut(self, name, value, throw)
+}
+
+func goStructMarshalJSON(self *_object) json.Marshaler {
+ object := self.value.(*_goStructObject)
+ goValue := reflect.Indirect(object.value).Interface()
+ switch marshaler := goValue.(type) {
+ case json.Marshaler:
+ return marshaler
+ }
+ return nil
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_number.go b/vendor/github.com/robertkrimen/otto/type_number.go
new file mode 100644
index 000000000..28de4444c
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_number.go
@@ -0,0 +1,5 @@
+package otto
+
+func (runtime *_runtime) newNumberObject(value Value) *_object {
+ return runtime.newPrimitiveObject("Number", value.numberValue())
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_reference.go b/vendor/github.com/robertkrimen/otto/type_reference.go
new file mode 100644
index 000000000..fd770c6f4
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_reference.go
@@ -0,0 +1,103 @@
+package otto
+
+type _reference interface {
+ invalid() bool // IsUnresolvableReference
+ getValue() Value // getValue
+ putValue(Value) string // PutValue
+ delete() bool
+}
+
+// PropertyReference
+
+type _propertyReference struct {
+ name string
+ strict bool
+ base *_object
+ runtime *_runtime
+ at _at
+}
+
+func newPropertyReference(rt *_runtime, base *_object, name string, strict bool, at _at) *_propertyReference {
+ return &_propertyReference{
+ runtime: rt,
+ name: name,
+ strict: strict,
+ base: base,
+ at: at,
+ }
+}
+
+func (self *_propertyReference) invalid() bool {
+ return self.base == nil
+}
+
+func (self *_propertyReference) getValue() Value {
+ if self.base == nil {
+ panic(self.runtime.panicReferenceError("'%s' is not defined", self.name, self.at))
+ }
+ return self.base.get(self.name)
+}
+
+func (self *_propertyReference) putValue(value Value) string {
+ if self.base == nil {
+ return self.name
+ }
+ self.base.put(self.name, value, self.strict)
+ return ""
+}
+
+func (self *_propertyReference) delete() bool {
+ if self.base == nil {
+ // TODO Throw an error if strict
+ return true
+ }
+ return self.base.delete(self.name, self.strict)
+}
+
+// ArgumentReference
+
+func newArgumentReference(runtime *_runtime, base *_object, name string, strict bool, at _at) *_propertyReference {
+ if base == nil {
+ panic(hereBeDragons())
+ }
+ return newPropertyReference(runtime, base, name, strict, at)
+}
+
+type _stashReference struct {
+ name string
+ strict bool
+ base _stash
+}
+
+func (self *_stashReference) invalid() bool {
+ return false // The base (an environment) will never be nil
+}
+
+func (self *_stashReference) getValue() Value {
+ return self.base.getBinding(self.name, self.strict)
+}
+
+func (self *_stashReference) putValue(value Value) string {
+ self.base.setValue(self.name, value, self.strict)
+ return ""
+}
+
+func (self *_stashReference) delete() bool {
+ if self.base == nil {
+ // This should never be reached, but just in case
+ return false
+ }
+ return self.base.deleteBinding(self.name)
+}
+
+// getIdentifierReference
+
+func getIdentifierReference(runtime *_runtime, stash _stash, name string, strict bool, at _at) _reference {
+ if stash == nil {
+ return newPropertyReference(runtime, nil, name, strict, at)
+ }
+ if stash.hasBinding(name) {
+ return stash.newReference(name, strict, at)
+ }
+ return getIdentifierReference(runtime, stash.outer(), name, strict, at)
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_regexp.go b/vendor/github.com/robertkrimen/otto/type_regexp.go
new file mode 100644
index 000000000..57fe31640
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_regexp.go
@@ -0,0 +1,146 @@
+package otto
+
+import (
+ "fmt"
+ "regexp"
+ "unicode/utf8"
+
+ "github.com/robertkrimen/otto/parser"
+)
+
+type _regExpObject struct {
+ regularExpression *regexp.Regexp
+ global bool
+ ignoreCase bool
+ multiline bool
+ source string
+ flags string
+}
+
+func (runtime *_runtime) newRegExpObject(pattern string, flags string) *_object {
+ self := runtime.newObject()
+ self.class = "RegExp"
+
+ global := false
+ ignoreCase := false
+ multiline := false
+ re2flags := ""
+
+ // TODO Maybe clean up the panicking here... TypeError, SyntaxError, ?
+
+ for _, chr := range flags {
+ switch chr {
+ case 'g':
+ if global {
+ panic(runtime.panicSyntaxError("newRegExpObject: %s %s", pattern, flags))
+ }
+ global = true
+ case 'm':
+ if multiline {
+ panic(runtime.panicSyntaxError("newRegExpObject: %s %s", pattern, flags))
+ }
+ multiline = true
+ re2flags += "m"
+ case 'i':
+ if ignoreCase {
+ panic(runtime.panicSyntaxError("newRegExpObject: %s %s", pattern, flags))
+ }
+ ignoreCase = true
+ re2flags += "i"
+ }
+ }
+
+ re2pattern, err := parser.TransformRegExp(pattern)
+ if err != nil {
+ panic(runtime.panicTypeError("Invalid regular expression: %s", err.Error()))
+ }
+ if len(re2flags) > 0 {
+ re2pattern = fmt.Sprintf("(?%s:%s)", re2flags, re2pattern)
+ }
+
+ regularExpression, err := regexp.Compile(re2pattern)
+ if err != nil {
+ panic(runtime.panicSyntaxError("Invalid regular expression: %s", err.Error()[22:]))
+ }
+
+ self.value = _regExpObject{
+ regularExpression: regularExpression,
+ global: global,
+ ignoreCase: ignoreCase,
+ multiline: multiline,
+ source: pattern,
+ flags: flags,
+ }
+ self.defineProperty("global", toValue_bool(global), 0, false)
+ self.defineProperty("ignoreCase", toValue_bool(ignoreCase), 0, false)
+ self.defineProperty("multiline", toValue_bool(multiline), 0, false)
+ self.defineProperty("lastIndex", toValue_int(0), 0100, false)
+ self.defineProperty("source", toValue_string(pattern), 0, false)
+ return self
+}
+
+func (self *_object) regExpValue() _regExpObject {
+ value, _ := self.value.(_regExpObject)
+ return value
+}
+
+func execRegExp(this *_object, target string) (match bool, result []int) {
+ if this.class != "RegExp" {
+ panic(this.runtime.panicTypeError("Calling RegExp.exec on a non-RegExp object"))
+ }
+ lastIndex := this.get("lastIndex").number().int64
+ index := lastIndex
+ global := this.get("global").bool()
+ if !global {
+ index = 0
+ }
+ if 0 > index || index > int64(len(target)) {
+ } else {
+ result = this.regExpValue().regularExpression.FindStringSubmatchIndex(target[index:])
+ }
+ if result == nil {
+ //this.defineProperty("lastIndex", toValue_(0), 0111, true)
+ this.put("lastIndex", toValue_int(0), true)
+ return // !match
+ }
+ match = true
+ startIndex := index
+ endIndex := int(lastIndex) + result[1]
+ // We do this shift here because the .FindStringSubmatchIndex above
+ // was done on a local subordinate slice of the string, not the whole string
+ for index, _ := range result {
+ result[index] += int(startIndex)
+ }
+ if global {
+ //this.defineProperty("lastIndex", toValue_(endIndex), 0111, true)
+ this.put("lastIndex", toValue_int(endIndex), true)
+ }
+ return // match
+}
+
+func execResultToArray(runtime *_runtime, target string, result []int) *_object {
+ captureCount := len(result) / 2
+ valueArray := make([]Value, captureCount)
+ for index := 0; index < captureCount; index++ {
+ offset := 2 * index
+ if result[offset] != -1 {
+ valueArray[index] = toValue_string(target[result[offset]:result[offset+1]])
+ } else {
+ valueArray[index] = Value{}
+ }
+ }
+ matchIndex := result[0]
+ if matchIndex != 0 {
+ matchIndex = 0
+ // Find the rune index in the string, not the byte index
+ for index := 0; index < result[0]; {
+ _, size := utf8.DecodeRuneInString(target[index:])
+ matchIndex += 1
+ index += size
+ }
+ }
+ match := runtime.newArrayOf(valueArray)
+ match.defineProperty("input", toValue_string(target), 0111, false)
+ match.defineProperty("index", toValue_int(matchIndex), 0111, false)
+ return match
+}
diff --git a/vendor/github.com/robertkrimen/otto/type_string.go b/vendor/github.com/robertkrimen/otto/type_string.go
new file mode 100644
index 000000000..ef3afa42b
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/type_string.go
@@ -0,0 +1,112 @@
+package otto
+
+import (
+ "strconv"
+ "unicode/utf8"
+)
+
+type _stringObject interface {
+ Length() int
+ At(int) rune
+ String() string
+}
+
+type _stringASCII string
+
+func (str _stringASCII) Length() int {
+ return len(str)
+}
+
+func (str _stringASCII) At(at int) rune {
+ return rune(str[at])
+}
+
+func (str _stringASCII) String() string {
+ return string(str)
+}
+
+type _stringWide struct {
+ string string
+ length int
+ runes []rune
+}
+
+func (str _stringWide) Length() int {
+ return str.length
+}
+
+func (str _stringWide) At(at int) rune {
+ if str.runes == nil {
+ str.runes = []rune(str.string)
+ }
+ return str.runes[at]
+}
+
+func (str _stringWide) String() string {
+ return str.string
+}
+
+func _newStringObject(str string) _stringObject {
+ for i := 0; i < len(str); i++ {
+ if str[i] >= utf8.RuneSelf {
+ goto wide
+ }
+ }
+
+ return _stringASCII(str)
+
+wide:
+ return &_stringWide{
+ string: str,
+ length: utf8.RuneCountInString(str),
+ }
+}
+
+func stringAt(str _stringObject, index int) rune {
+ if 0 <= index && index < str.Length() {
+ return str.At(index)
+ }
+ return utf8.RuneError
+}
+
+func (runtime *_runtime) newStringObject(value Value) *_object {
+ str := _newStringObject(value.string())
+
+ self := runtime.newClassObject("String")
+ self.defineProperty("length", toValue_int(str.Length()), 0, false)
+ self.objectClass = _classString
+ self.value = str
+ return self
+}
+
+func (self *_object) stringValue() _stringObject {
+ if str, ok := self.value.(_stringObject); ok {
+ return str
+ }
+ return nil
+}
+
+func stringEnumerate(self *_object, all bool, each func(string) bool) {
+ if str := self.stringValue(); str != nil {
+ length := str.Length()
+ for index := 0; index < length; index++ {
+ if !each(strconv.FormatInt(int64(index), 10)) {
+ return
+ }
+ }
+ }
+ objectEnumerate(self, all, each)
+}
+
+func stringGetOwnProperty(self *_object, name string) *_property {
+ if property := objectGetOwnProperty(self, name); property != nil {
+ return property
+ }
+ // TODO Test a string of length >= +int32 + 1?
+ if index := stringToArrayIndex(name); index >= 0 {
+ if chr := stringAt(self.stringValue(), int(index)); chr != utf8.RuneError {
+ return &_property{toValue_string(string(chr)), 0}
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/robertkrimen/otto/value.go b/vendor/github.com/robertkrimen/otto/value.go
new file mode 100644
index 000000000..90c140604
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/value.go
@@ -0,0 +1,1033 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "reflect"
+ "strconv"
+ "unicode/utf16"
+)
+
+type _valueKind int
+
+const (
+ valueUndefined _valueKind = iota
+ valueNull
+ valueNumber
+ valueString
+ valueBoolean
+ valueObject
+
+ // These are invalid outside of the runtime
+ valueEmpty
+ valueResult
+ valueReference
+)
+
+// Value is the representation of a JavaScript value.
+type Value struct {
+ kind _valueKind
+ value interface{}
+}
+
+func (value Value) safe() bool {
+ return value.kind < valueEmpty
+}
+
+var (
+ emptyValue = Value{kind: valueEmpty}
+ nullValue = Value{kind: valueNull}
+ falseValue = Value{kind: valueBoolean, value: false}
+ trueValue = Value{kind: valueBoolean, value: true}
+)
+
+// ToValue will convert an interface{} value to a value digestible by otto/JavaScript
+//
+// This function will not work for advanced types (struct, map, slice/array, etc.) and
+// you should use Otto.ToValue instead.
+func ToValue(value interface{}) (Value, error) {
+ result := Value{}
+ err := catchPanic(func() {
+ result = toValue(value)
+ })
+ return result, err
+}
+
+func (value Value) isEmpty() bool {
+ return value.kind == valueEmpty
+}
+
+// Undefined
+
+// UndefinedValue will return a Value representing undefined.
+func UndefinedValue() Value {
+ return Value{}
+}
+
+// IsDefined will return false if the value is undefined, and true otherwise.
+func (value Value) IsDefined() bool {
+ return value.kind != valueUndefined
+}
+
+// IsUndefined will return true if the value is undefined, and false otherwise.
+func (value Value) IsUndefined() bool {
+ return value.kind == valueUndefined
+}
+
+// NullValue will return a Value representing null.
+func NullValue() Value {
+ return Value{kind: valueNull}
+}
+
+// IsNull will return true if the value is null, and false otherwise.
+func (value Value) IsNull() bool {
+ return value.kind == valueNull
+}
+
+// ---
+
+func (value Value) isCallable() bool {
+ switch value := value.value.(type) {
+ case *_object:
+ return value.isCall()
+ }
+ return false
+}
+
+// Call the value as a function with the given this value and argument list and
+// return the result of invocation. It is essentially equivalent to:
+//
+// value.apply(thisValue, argumentList)
+//
+// An undefined value and an error will result if:
+//
+// 1. There is an error during conversion of the argument list
+// 2. The value is not actually a function
+// 3. An (uncaught) exception is thrown
+//
+func (value Value) Call(this Value, argumentList ...interface{}) (Value, error) {
+ result := Value{}
+ err := catchPanic(func() {
+ // FIXME
+ result = value.call(nil, this, argumentList...)
+ })
+ if !value.safe() {
+ value = Value{}
+ }
+ return result, err
+}
+
+func (value Value) call(rt *_runtime, this Value, argumentList ...interface{}) Value {
+ switch function := value.value.(type) {
+ case *_object:
+ return function.call(this, function.runtime.toValueArray(argumentList...), false, nativeFrame)
+ }
+ if rt == nil {
+ panic("FIXME TypeError")
+ }
+ panic(rt.panicTypeError())
+}
+
+func (value Value) constructSafe(rt *_runtime, this Value, argumentList ...interface{}) (Value, error) {
+ result := Value{}
+ err := catchPanic(func() {
+ result = value.construct(rt, this, argumentList...)
+ })
+ return result, err
+}
+
+func (value Value) construct(rt *_runtime, this Value, argumentList ...interface{}) Value {
+ switch fn := value.value.(type) {
+ case *_object:
+ return fn.construct(fn.runtime.toValueArray(argumentList...))
+ }
+ if rt == nil {
+ panic("FIXME TypeError")
+ }
+ panic(rt.panicTypeError())
+}
+
+// IsPrimitive will return true if value is a primitive (any kind of primitive).
+func (value Value) IsPrimitive() bool {
+ return !value.IsObject()
+}
+
+// IsBoolean will return true if value is a boolean (primitive).
+func (value Value) IsBoolean() bool {
+ return value.kind == valueBoolean
+}
+
+// IsNumber will return true if value is a number (primitive).
+func (value Value) IsNumber() bool {
+ return value.kind == valueNumber
+}
+
+// IsNaN will return true if value is NaN (or would convert to NaN).
+func (value Value) IsNaN() bool {
+ switch value := value.value.(type) {
+ case float64:
+ return math.IsNaN(value)
+ case float32:
+ return math.IsNaN(float64(value))
+ case int, int8, int32, int64:
+ return false
+ case uint, uint8, uint32, uint64:
+ return false
+ }
+
+ return math.IsNaN(value.float64())
+}
+
+// IsString will return true if value is a string (primitive).
+func (value Value) IsString() bool {
+ return value.kind == valueString
+}
+
+// IsObject will return true if value is an object.
+func (value Value) IsObject() bool {
+ return value.kind == valueObject
+}
+
+// IsFunction will return true if value is a function.
+func (value Value) IsFunction() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "Function"
+}
+
+// Class will return the class string of the value or the empty string if value is not an object.
+//
+// The return value will (generally) be one of:
+//
+// Object
+// Function
+// Array
+// String
+// Number
+// Boolean
+// Date
+// RegExp
+//
+func (value Value) Class() string {
+ if value.kind != valueObject {
+ return ""
+ }
+ return value.value.(*_object).class
+}
+
+func (value Value) isArray() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return isArray(value.value.(*_object))
+}
+
+func (value Value) isStringObject() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "String"
+}
+
+func (value Value) isBooleanObject() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "Boolean"
+}
+
+func (value Value) isNumberObject() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "Number"
+}
+
+func (value Value) isDate() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "Date"
+}
+
+func (value Value) isRegExp() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "RegExp"
+}
+
+func (value Value) isError() bool {
+ if value.kind != valueObject {
+ return false
+ }
+ return value.value.(*_object).class == "Error"
+}
+
+// ---
+
+func toValue_reflectValuePanic(value interface{}, kind reflect.Kind) {
+ // FIXME?
+ switch kind {
+ case reflect.Struct:
+ panic(newError(nil, "TypeError", 0, "invalid value (struct): missing runtime: %v (%T)", value, value))
+ case reflect.Map:
+ panic(newError(nil, "TypeError", 0, "invalid value (map): missing runtime: %v (%T)", value, value))
+ case reflect.Slice:
+ panic(newError(nil, "TypeError", 0, "invalid value (slice): missing runtime: %v (%T)", value, value))
+ }
+}
+
+func toValue(value interface{}) Value {
+ switch value := value.(type) {
+ case Value:
+ return value
+ case bool:
+ return Value{valueBoolean, value}
+ case int:
+ return Value{valueNumber, value}
+ case int8:
+ return Value{valueNumber, value}
+ case int16:
+ return Value{valueNumber, value}
+ case int32:
+ return Value{valueNumber, value}
+ case int64:
+ return Value{valueNumber, value}
+ case uint:
+ return Value{valueNumber, value}
+ case uint8:
+ return Value{valueNumber, value}
+ case uint16:
+ return Value{valueNumber, value}
+ case uint32:
+ return Value{valueNumber, value}
+ case uint64:
+ return Value{valueNumber, value}
+ case float32:
+ return Value{valueNumber, float64(value)}
+ case float64:
+ return Value{valueNumber, value}
+ case []uint16:
+ return Value{valueString, value}
+ case string:
+ return Value{valueString, value}
+ // A rune is actually an int32, which is handled above
+ case *_object:
+ return Value{valueObject, value}
+ case *Object:
+ return Value{valueObject, value.object}
+ case Object:
+ return Value{valueObject, value.object}
+ case _reference: // reference is an interface (already a pointer)
+ return Value{valueReference, value}
+ case _result:
+ return Value{valueResult, value}
+ case nil:
+ // TODO Ugh.
+ return Value{}
+ case reflect.Value:
+ for value.Kind() == reflect.Ptr {
+ // We were given a pointer, so we'll drill down until we get a non-pointer
+ //
+ // These semantics might change if we want to start supporting pointers to values transparently
+ // (It would be best not to depend on this behavior)
+ // FIXME: UNDEFINED
+ if value.IsNil() {
+ return Value{}
+ }
+ value = value.Elem()
+ }
+ switch value.Kind() {
+ case reflect.Bool:
+ return Value{valueBoolean, bool(value.Bool())}
+ case reflect.Int:
+ return Value{valueNumber, int(value.Int())}
+ case reflect.Int8:
+ return Value{valueNumber, int8(value.Int())}
+ case reflect.Int16:
+ return Value{valueNumber, int16(value.Int())}
+ case reflect.Int32:
+ return Value{valueNumber, int32(value.Int())}
+ case reflect.Int64:
+ return Value{valueNumber, int64(value.Int())}
+ case reflect.Uint:
+ return Value{valueNumber, uint(value.Uint())}
+ case reflect.Uint8:
+ return Value{valueNumber, uint8(value.Uint())}
+ case reflect.Uint16:
+ return Value{valueNumber, uint16(value.Uint())}
+ case reflect.Uint32:
+ return Value{valueNumber, uint32(value.Uint())}
+ case reflect.Uint64:
+ return Value{valueNumber, uint64(value.Uint())}
+ case reflect.Float32:
+ return Value{valueNumber, float32(value.Float())}
+ case reflect.Float64:
+ return Value{valueNumber, float64(value.Float())}
+ case reflect.String:
+ return Value{valueString, string(value.String())}
+ default:
+ toValue_reflectValuePanic(value.Interface(), value.Kind())
+ }
+ default:
+ return toValue(reflect.ValueOf(value))
+ }
+ // FIXME?
+ panic(newError(nil, "TypeError", 0, "invalid value: %v (%T)", value, value))
+}
+
+// String will return the value as a string.
+//
+// This method will make return the empty string if there is an error.
+func (value Value) String() string {
+ result := ""
+ catchPanic(func() {
+ result = value.string()
+ })
+ return result
+}
+
+// ToBoolean will convert the value to a boolean (bool).
+//
+// ToValue(0).ToBoolean() => false
+// ToValue("").ToBoolean() => false
+// ToValue(true).ToBoolean() => true
+// ToValue(1).ToBoolean() => true
+// ToValue("Nothing happens").ToBoolean() => true
+//
+// If there is an error during the conversion process (like an uncaught exception), then the result will be false and an error.
+func (value Value) ToBoolean() (bool, error) {
+ result := false
+ err := catchPanic(func() {
+ result = value.bool()
+ })
+ return result, err
+}
+
+func (value Value) numberValue() Value {
+ if value.kind == valueNumber {
+ return value
+ }
+ return Value{valueNumber, value.float64()}
+}
+
+// ToFloat will convert the value to a number (float64).
+//
+// ToValue(0).ToFloat() => 0.
+// ToValue(1.1).ToFloat() => 1.1
+// ToValue("11").ToFloat() => 11.
+//
+// If there is an error during the conversion process (like an uncaught exception), then the result will be 0 and an error.
+func (value Value) ToFloat() (float64, error) {
+ result := float64(0)
+ err := catchPanic(func() {
+ result = value.float64()
+ })
+ return result, err
+}
+
+// ToInteger will convert the value to a number (int64).
+//
+// ToValue(0).ToInteger() => 0
+// ToValue(1.1).ToInteger() => 1
+// ToValue("11").ToInteger() => 11
+//
+// If there is an error during the conversion process (like an uncaught exception), then the result will be 0 and an error.
+func (value Value) ToInteger() (int64, error) {
+ result := int64(0)
+ err := catchPanic(func() {
+ result = value.number().int64
+ })
+ return result, err
+}
+
+// ToString will convert the value to a string (string).
+//
+// ToValue(0).ToString() => "0"
+// ToValue(false).ToString() => "false"
+// ToValue(1.1).ToString() => "1.1"
+// ToValue("11").ToString() => "11"
+// ToValue('Nothing happens.').ToString() => "Nothing happens."
+//
+// If there is an error during the conversion process (like an uncaught exception), then the result will be the empty string ("") and an error.
+func (value Value) ToString() (string, error) {
+ result := ""
+ err := catchPanic(func() {
+ result = value.string()
+ })
+ return result, err
+}
+
+func (value Value) _object() *_object {
+ switch value := value.value.(type) {
+ case *_object:
+ return value
+ }
+ return nil
+}
+
+// Object will return the object of the value, or nil if value is not an object.
+//
+// This method will not do any implicit conversion. For example, calling this method on a string primitive value will not return a String object.
+func (value Value) Object() *Object {
+ switch object := value.value.(type) {
+ case *_object:
+ return _newObject(object, value)
+ }
+ return nil
+}
+
+func (value Value) reference() _reference {
+ switch value := value.value.(type) {
+ case _reference:
+ return value
+ }
+ return nil
+}
+
+func (value Value) resolve() Value {
+ switch value := value.value.(type) {
+ case _reference:
+ return value.getValue()
+ }
+ return value
+}
+
+var (
+ __NaN__ float64 = math.NaN()
+ __PositiveInfinity__ float64 = math.Inf(+1)
+ __NegativeInfinity__ float64 = math.Inf(-1)
+ __PositiveZero__ float64 = 0
+ __NegativeZero__ float64 = math.Float64frombits(0 | (1 << 63))
+)
+
+func positiveInfinity() float64 {
+ return __PositiveInfinity__
+}
+
+func negativeInfinity() float64 {
+ return __NegativeInfinity__
+}
+
+func positiveZero() float64 {
+ return __PositiveZero__
+}
+
+func negativeZero() float64 {
+ return __NegativeZero__
+}
+
+// NaNValue will return a value representing NaN.
+//
+// It is equivalent to:
+//
+// ToValue(math.NaN())
+//
+func NaNValue() Value {
+ return Value{valueNumber, __NaN__}
+}
+
+func positiveInfinityValue() Value {
+ return Value{valueNumber, __PositiveInfinity__}
+}
+
+func negativeInfinityValue() Value {
+ return Value{valueNumber, __NegativeInfinity__}
+}
+
+func positiveZeroValue() Value {
+ return Value{valueNumber, __PositiveZero__}
+}
+
+func negativeZeroValue() Value {
+ return Value{valueNumber, __NegativeZero__}
+}
+
+// TrueValue will return a value representing true.
+//
+// It is equivalent to:
+//
+// ToValue(true)
+//
+func TrueValue() Value {
+ return Value{valueBoolean, true}
+}
+
+// FalseValue will return a value representing false.
+//
+// It is equivalent to:
+//
+// ToValue(false)
+//
+func FalseValue() Value {
+ return Value{valueBoolean, false}
+}
+
+func sameValue(x Value, y Value) bool {
+ if x.kind != y.kind {
+ return false
+ }
+ result := false
+ switch x.kind {
+ case valueUndefined, valueNull:
+ result = true
+ case valueNumber:
+ x := x.float64()
+ y := y.float64()
+ if math.IsNaN(x) && math.IsNaN(y) {
+ result = true
+ } else {
+ result = x == y
+ if result && x == 0 {
+ // Since +0 != -0
+ result = math.Signbit(x) == math.Signbit(y)
+ }
+ }
+ case valueString:
+ result = x.string() == y.string()
+ case valueBoolean:
+ result = x.bool() == y.bool()
+ case valueObject:
+ result = x._object() == y._object()
+ default:
+ panic(hereBeDragons())
+ }
+
+ return result
+}
+
+func strictEqualityComparison(x Value, y Value) bool {
+ if x.kind != y.kind {
+ return false
+ }
+ result := false
+ switch x.kind {
+ case valueUndefined, valueNull:
+ result = true
+ case valueNumber:
+ x := x.float64()
+ y := y.float64()
+ if math.IsNaN(x) && math.IsNaN(y) {
+ result = false
+ } else {
+ result = x == y
+ }
+ case valueString:
+ result = x.string() == y.string()
+ case valueBoolean:
+ result = x.bool() == y.bool()
+ case valueObject:
+ result = x._object() == y._object()
+ default:
+ panic(hereBeDragons())
+ }
+
+ return result
+}
+
+// Export will attempt to convert the value to a Go representation
+// and return it via an interface{} kind.
+//
+// Export returns an error, but it will always be nil. It is present
+// for backwards compatibility.
+//
+// If a reasonable conversion is not possible, then the original
+// value is returned.
+//
+// undefined -> nil (FIXME?: Should be Value{})
+// null -> nil
+// boolean -> bool
+// number -> A number type (int, float32, uint64, ...)
+// string -> string
+// Array -> []interface{}
+// Object -> map[string]interface{}
+//
+func (self Value) Export() (interface{}, error) {
+ return self.export(), nil
+}
+
+func (self Value) export() interface{} {
+
+ switch self.kind {
+ case valueUndefined:
+ return nil
+ case valueNull:
+ return nil
+ case valueNumber, valueBoolean:
+ return self.value
+ case valueString:
+ switch value := self.value.(type) {
+ case string:
+ return value
+ case []uint16:
+ return string(utf16.Decode(value))
+ }
+ case valueObject:
+ object := self._object()
+ switch value := object.value.(type) {
+ case *_goStructObject:
+ return value.value.Interface()
+ case *_goMapObject:
+ return value.value.Interface()
+ case *_goArrayObject:
+ return value.value.Interface()
+ case *_goSliceObject:
+ return value.value.Interface()
+ }
+ if object.class == "Array" {
+ result := make([]interface{}, 0)
+ lengthValue := object.get("length")
+ length := lengthValue.value.(uint32)
+ kind := reflect.Invalid
+ state := 0
+ var t reflect.Type
+ for index := uint32(0); index < length; index += 1 {
+ name := strconv.FormatInt(int64(index), 10)
+ if !object.hasProperty(name) {
+ continue
+ }
+ value := object.get(name).export()
+
+ t = reflect.TypeOf(value)
+
+ var k reflect.Kind
+ if t != nil {
+ k = t.Kind()
+ }
+
+ if state == 0 {
+ kind = k
+ state = 1
+ } else if state == 1 && kind != k {
+ state = 2
+ }
+
+ result = append(result, value)
+ }
+
+ if state != 1 || kind == reflect.Interface || t == nil {
+ // No common type
+ return result
+ }
+
+ // Convert to the common type
+ val := reflect.MakeSlice(reflect.SliceOf(t), len(result), len(result))
+ for i, v := range result {
+ val.Index(i).Set(reflect.ValueOf(v))
+ }
+ return val.Interface()
+ } else {
+ result := make(map[string]interface{})
+ // TODO Should we export everything? Or just what is enumerable?
+ object.enumerate(false, func(name string) bool {
+ value := object.get(name)
+ if value.IsDefined() {
+ result[name] = value.export()
+ }
+ return true
+ })
+ return result
+ }
+ }
+
+ if self.safe() {
+ return self
+ }
+
+ return Value{}
+}
+
+func (self Value) evaluateBreakContinue(labels []string) _resultKind {
+ result := self.value.(_result)
+ if result.kind == resultBreak || result.kind == resultContinue {
+ for _, label := range labels {
+ if label == result.target {
+ return result.kind
+ }
+ }
+ }
+ return resultReturn
+}
+
+func (self Value) evaluateBreak(labels []string) _resultKind {
+ result := self.value.(_result)
+ if result.kind == resultBreak {
+ for _, label := range labels {
+ if label == result.target {
+ return result.kind
+ }
+ }
+ }
+ return resultReturn
+}
+
+func (self Value) exportNative() interface{} {
+
+ switch self.kind {
+ case valueUndefined:
+ return self
+ case valueNull:
+ return nil
+ case valueNumber, valueBoolean:
+ return self.value
+ case valueString:
+ switch value := self.value.(type) {
+ case string:
+ return value
+ case []uint16:
+ return string(utf16.Decode(value))
+ }
+ case valueObject:
+ object := self._object()
+ switch value := object.value.(type) {
+ case *_goStructObject:
+ return value.value.Interface()
+ case *_goMapObject:
+ return value.value.Interface()
+ case *_goArrayObject:
+ return value.value.Interface()
+ case *_goSliceObject:
+ return value.value.Interface()
+ }
+ }
+
+ return self
+}
+
+// Make a best effort to return a reflect.Value corresponding to reflect.Kind, but
+// fallback to just returning the Go value we have handy.
+func (value Value) toReflectValue(kind reflect.Kind) (reflect.Value, error) {
+ if kind != reflect.Float32 && kind != reflect.Float64 && kind != reflect.Interface {
+ switch value := value.value.(type) {
+ case float32:
+ _, frac := math.Modf(float64(value))
+ if frac > 0 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %v to reflect.Kind: %v", value, kind)
+ }
+ case float64:
+ _, frac := math.Modf(value)
+ if frac > 0 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %v to reflect.Kind: %v", value, kind)
+ }
+ }
+ }
+
+ switch kind {
+ case reflect.Bool: // Bool
+ return reflect.ValueOf(value.bool()), nil
+ case reflect.Int: // Int
+ // We convert to float64 here because converting to int64 will not tell us
+ // if a value is outside the range of int64
+ tmp := toIntegerFloat(value)
+ if tmp < float_minInt || tmp > float_maxInt {
+ return reflect.Value{}, fmt.Errorf("RangeError: %f (%v) to int", tmp, value)
+ } else {
+ return reflect.ValueOf(int(tmp)), nil
+ }
+ case reflect.Int8: // Int8
+ tmp := value.number().int64
+ if tmp < int64_minInt8 || tmp > int64_maxInt8 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to int8", tmp, value)
+ } else {
+ return reflect.ValueOf(int8(tmp)), nil
+ }
+ case reflect.Int16: // Int16
+ tmp := value.number().int64
+ if tmp < int64_minInt16 || tmp > int64_maxInt16 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to int16", tmp, value)
+ } else {
+ return reflect.ValueOf(int16(tmp)), nil
+ }
+ case reflect.Int32: // Int32
+ tmp := value.number().int64
+ if tmp < int64_minInt32 || tmp > int64_maxInt32 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to int32", tmp, value)
+ } else {
+ return reflect.ValueOf(int32(tmp)), nil
+ }
+ case reflect.Int64: // Int64
+ // We convert to float64 here because converting to int64 will not tell us
+ // if a value is outside the range of int64
+ tmp := toIntegerFloat(value)
+ if tmp < float_minInt64 || tmp > float_maxInt64 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %f (%v) to int", tmp, value)
+ } else {
+ return reflect.ValueOf(int64(tmp)), nil
+ }
+ case reflect.Uint: // Uint
+ // We convert to float64 here because converting to int64 will not tell us
+ // if a value is outside the range of uint
+ tmp := toIntegerFloat(value)
+ if tmp < 0 || tmp > float_maxUint {
+ return reflect.Value{}, fmt.Errorf("RangeError: %f (%v) to uint", tmp, value)
+ } else {
+ return reflect.ValueOf(uint(tmp)), nil
+ }
+ case reflect.Uint8: // Uint8
+ tmp := value.number().int64
+ if tmp < 0 || tmp > int64_maxUint8 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to uint8", tmp, value)
+ } else {
+ return reflect.ValueOf(uint8(tmp)), nil
+ }
+ case reflect.Uint16: // Uint16
+ tmp := value.number().int64
+ if tmp < 0 || tmp > int64_maxUint16 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to uint16", tmp, value)
+ } else {
+ return reflect.ValueOf(uint16(tmp)), nil
+ }
+ case reflect.Uint32: // Uint32
+ tmp := value.number().int64
+ if tmp < 0 || tmp > int64_maxUint32 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %d (%v) to uint32", tmp, value)
+ } else {
+ return reflect.ValueOf(uint32(tmp)), nil
+ }
+ case reflect.Uint64: // Uint64
+ // We convert to float64 here because converting to int64 will not tell us
+ // if a value is outside the range of uint64
+ tmp := toIntegerFloat(value)
+ if tmp < 0 || tmp > float_maxUint64 {
+ return reflect.Value{}, fmt.Errorf("RangeError: %f (%v) to uint64", tmp, value)
+ } else {
+ return reflect.ValueOf(uint64(tmp)), nil
+ }
+ case reflect.Float32: // Float32
+ tmp := value.float64()
+ tmp1 := tmp
+ if 0 > tmp1 {
+ tmp1 = -tmp1
+ }
+ if tmp1 > 0 && (tmp1 < math.SmallestNonzeroFloat32 || tmp1 > math.MaxFloat32) {
+ return reflect.Value{}, fmt.Errorf("RangeError: %f (%v) to float32", tmp, value)
+ } else {
+ return reflect.ValueOf(float32(tmp)), nil
+ }
+ case reflect.Float64: // Float64
+ value := value.float64()
+ return reflect.ValueOf(float64(value)), nil
+ case reflect.String: // String
+ return reflect.ValueOf(value.string()), nil
+ case reflect.Invalid: // Invalid
+ case reflect.Complex64: // FIXME? Complex64
+ case reflect.Complex128: // FIXME? Complex128
+ case reflect.Chan: // FIXME? Chan
+ case reflect.Func: // FIXME? Func
+ case reflect.Ptr: // FIXME? Ptr
+ case reflect.UnsafePointer: // FIXME? UnsafePointer
+ default:
+ switch value.kind {
+ case valueObject:
+ object := value._object()
+ switch vl := object.value.(type) {
+ case *_goStructObject: // Struct
+ return reflect.ValueOf(vl.value.Interface()), nil
+ case *_goMapObject: // Map
+ return reflect.ValueOf(vl.value.Interface()), nil
+ case *_goArrayObject: // Array
+ return reflect.ValueOf(vl.value.Interface()), nil
+ case *_goSliceObject: // Slice
+ return reflect.ValueOf(vl.value.Interface()), nil
+ }
+ return reflect.ValueOf(value.exportNative()), nil
+ case valueEmpty, valueResult, valueReference:
+ // These are invalid, and should panic
+ default:
+ return reflect.ValueOf(value.value), nil
+ }
+ }
+
+ // FIXME Should this end up as a TypeError?
+ panic(fmt.Errorf("invalid conversion of %v (%v) to reflect.Kind: %v", value.kind, value, kind))
+}
+
+func stringToReflectValue(value string, kind reflect.Kind) (reflect.Value, error) {
+ switch kind {
+ case reflect.Bool:
+ value, err := strconv.ParseBool(value)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(value), nil
+ case reflect.Int:
+ value, err := strconv.ParseInt(value, 0, 0)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(int(value)), nil
+ case reflect.Int8:
+ value, err := strconv.ParseInt(value, 0, 8)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(int8(value)), nil
+ case reflect.Int16:
+ value, err := strconv.ParseInt(value, 0, 16)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(int16(value)), nil
+ case reflect.Int32:
+ value, err := strconv.ParseInt(value, 0, 32)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(int32(value)), nil
+ case reflect.Int64:
+ value, err := strconv.ParseInt(value, 0, 64)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(int64(value)), nil
+ case reflect.Uint:
+ value, err := strconv.ParseUint(value, 0, 0)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(uint(value)), nil
+ case reflect.Uint8:
+ value, err := strconv.ParseUint(value, 0, 8)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(uint8(value)), nil
+ case reflect.Uint16:
+ value, err := strconv.ParseUint(value, 0, 16)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(uint16(value)), nil
+ case reflect.Uint32:
+ value, err := strconv.ParseUint(value, 0, 32)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(uint32(value)), nil
+ case reflect.Uint64:
+ value, err := strconv.ParseUint(value, 0, 64)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(uint64(value)), nil
+ case reflect.Float32:
+ value, err := strconv.ParseFloat(value, 32)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(float32(value)), nil
+ case reflect.Float64:
+ value, err := strconv.ParseFloat(value, 64)
+ if err != nil {
+ return reflect.Value{}, err
+ }
+ return reflect.ValueOf(float64(value)), nil
+ case reflect.String:
+ return reflect.ValueOf(value), nil
+ }
+
+ // FIXME This should end up as a TypeError?
+ panic(fmt.Errorf("invalid conversion of %q to reflect.Kind: %v", value, kind))
+}
diff --git a/vendor/github.com/robertkrimen/otto/value_boolean.go b/vendor/github.com/robertkrimen/otto/value_boolean.go
new file mode 100644
index 000000000..3040f4163
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/value_boolean.go
@@ -0,0 +1,40 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "reflect"
+)
+
+func (value Value) bool() bool {
+ if value.kind == valueBoolean {
+ return value.value.(bool)
+ }
+ if value.IsUndefined() {
+ return false
+ }
+ if value.IsNull() {
+ return false
+ }
+ switch value := value.value.(type) {
+ case bool:
+ return value
+ case int, int8, int16, int32, int64:
+ return 0 != reflect.ValueOf(value).Int()
+ case uint, uint8, uint16, uint32, uint64:
+ return 0 != reflect.ValueOf(value).Uint()
+ case float32:
+ return 0 != value
+ case float64:
+ if math.IsNaN(value) || value == 0 {
+ return false
+ }
+ return true
+ case string:
+ return 0 != len(value)
+ }
+ if value.IsObject() {
+ return true
+ }
+ panic(fmt.Errorf("toBoolean(%T)", value.value))
+}
diff --git a/vendor/github.com/robertkrimen/otto/value_number.go b/vendor/github.com/robertkrimen/otto/value_number.go
new file mode 100644
index 000000000..870bf115b
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/value_number.go
@@ -0,0 +1,324 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "regexp"
+ "strconv"
+ "strings"
+)
+
+var stringToNumberParseInteger = regexp.MustCompile(`^(?:0[xX])`)
+
+func parseNumber(value string) float64 {
+ value = strings.TrimSpace(value)
+
+ if value == "" {
+ return 0
+ }
+
+ parseFloat := false
+ if strings.IndexRune(value, '.') != -1 {
+ parseFloat = true
+ } else if stringToNumberParseInteger.MatchString(value) {
+ parseFloat = false
+ } else {
+ parseFloat = true
+ }
+
+ if parseFloat {
+ number, err := strconv.ParseFloat(value, 64)
+ if err != nil && err.(*strconv.NumError).Err != strconv.ErrRange {
+ return math.NaN()
+ }
+ return number
+ }
+
+ number, err := strconv.ParseInt(value, 0, 64)
+ if err != nil {
+ return math.NaN()
+ }
+ return float64(number)
+}
+
+func (value Value) float64() float64 {
+ switch value.kind {
+ case valueUndefined:
+ return math.NaN()
+ case valueNull:
+ return 0
+ }
+ switch value := value.value.(type) {
+ case bool:
+ if value {
+ return 1
+ }
+ return 0
+ case int:
+ return float64(value)
+ case int8:
+ return float64(value)
+ case int16:
+ return float64(value)
+ case int32:
+ return float64(value)
+ case int64:
+ return float64(value)
+ case uint:
+ return float64(value)
+ case uint8:
+ return float64(value)
+ case uint16:
+ return float64(value)
+ case uint32:
+ return float64(value)
+ case uint64:
+ return float64(value)
+ case float64:
+ return value
+ case string:
+ return parseNumber(value)
+ case *_object:
+ return value.DefaultValue(defaultValueHintNumber).float64()
+ }
+ panic(fmt.Errorf("toFloat(%T)", value.value))
+}
+
+const (
+ float_2_64 float64 = 18446744073709551616.0
+ float_2_63 float64 = 9223372036854775808.0
+ float_2_32 float64 = 4294967296.0
+ float_2_31 float64 = 2147483648.0
+ float_2_16 float64 = 65536.0
+ integer_2_32 int64 = 4294967296
+ integer_2_31 int64 = 2146483648
+ sqrt1_2 float64 = math.Sqrt2 / 2
+)
+
+const (
+ maxInt8 = math.MaxInt8
+ minInt8 = math.MinInt8
+ maxInt16 = math.MaxInt16
+ minInt16 = math.MinInt16
+ maxInt32 = math.MaxInt32
+ minInt32 = math.MinInt32
+ maxInt64 = math.MaxInt64
+ minInt64 = math.MinInt64
+ maxUint8 = math.MaxUint8
+ maxUint16 = math.MaxUint16
+ maxUint32 = math.MaxUint32
+ maxUint64 = math.MaxUint64
+ maxUint = ^uint(0)
+ minUint = 0
+ maxInt = int(^uint(0) >> 1)
+ minInt = -maxInt - 1
+
+ // int64
+ int64_maxInt int64 = int64(maxInt)
+ int64_minInt int64 = int64(minInt)
+ int64_maxInt8 int64 = math.MaxInt8
+ int64_minInt8 int64 = math.MinInt8
+ int64_maxInt16 int64 = math.MaxInt16
+ int64_minInt16 int64 = math.MinInt16
+ int64_maxInt32 int64 = math.MaxInt32
+ int64_minInt32 int64 = math.MinInt32
+ int64_maxUint8 int64 = math.MaxUint8
+ int64_maxUint16 int64 = math.MaxUint16
+ int64_maxUint32 int64 = math.MaxUint32
+
+ // float64
+ float_maxInt float64 = float64(int(^uint(0) >> 1))
+ float_minInt float64 = float64(int(-maxInt - 1))
+ float_minUint float64 = float64(0)
+ float_maxUint float64 = float64(uint(^uint(0)))
+ float_minUint64 float64 = float64(0)
+ float_maxUint64 float64 = math.MaxUint64
+ float_maxInt64 float64 = math.MaxInt64
+ float_minInt64 float64 = math.MinInt64
+)
+
+func toIntegerFloat(value Value) float64 {
+ float := value.float64()
+ if math.IsInf(float, 0) {
+ } else if math.IsNaN(float) {
+ float = 0
+ } else if float > 0 {
+ float = math.Floor(float)
+ } else {
+ float = math.Ceil(float)
+ }
+ return float
+}
+
+type _numberKind int
+
+const (
+ numberInteger _numberKind = iota // 3.0 => 3.0
+ numberFloat // 3.14159 => 3.0, 1+2**63 > 2**63-1
+ numberInfinity // Infinity => 2**63-1
+ numberNaN // NaN => 0
+)
+
+type _number struct {
+ kind _numberKind
+ int64 int64
+ float64 float64
+}
+
+// FIXME
+// http://www.goinggo.net/2013/08/gustavos-ieee-754-brain-teaser.html
+// http://bazaar.launchpad.net/~niemeyer/strepr/trunk/view/6/strepr.go#L160
+func (value Value) number() (number _number) {
+ switch value := value.value.(type) {
+ case int8:
+ number.int64 = int64(value)
+ return
+ case int16:
+ number.int64 = int64(value)
+ return
+ case uint8:
+ number.int64 = int64(value)
+ return
+ case uint16:
+ number.int64 = int64(value)
+ return
+ case uint32:
+ number.int64 = int64(value)
+ return
+ case int:
+ number.int64 = int64(value)
+ return
+ case int64:
+ number.int64 = value
+ return
+ }
+
+ float := value.float64()
+ if float == 0 {
+ return
+ }
+
+ number.kind = numberFloat
+ number.float64 = float
+
+ if math.IsNaN(float) {
+ number.kind = numberNaN
+ return
+ }
+
+ if math.IsInf(float, 0) {
+ number.kind = numberInfinity
+ }
+
+ if float >= float_maxInt64 {
+ number.int64 = math.MaxInt64
+ return
+ }
+
+ if float <= float_minInt64 {
+ number.int64 = math.MinInt64
+ return
+ }
+
+ integer := float64(0)
+ if float > 0 {
+ integer = math.Floor(float)
+ } else {
+ integer = math.Ceil(float)
+ }
+
+ if float == integer {
+ number.kind = numberInteger
+ }
+ number.int64 = int64(float)
+ return
+}
+
+// ECMA 262: 9.5
+func toInt32(value Value) int32 {
+ {
+ switch value := value.value.(type) {
+ case int8:
+ return int32(value)
+ case int16:
+ return int32(value)
+ case int32:
+ return value
+ }
+ }
+ floatValue := value.float64()
+ if math.IsNaN(floatValue) || math.IsInf(floatValue, 0) {
+ return 0
+ }
+ if floatValue == 0 { // This will work for +0 & -0
+ return 0
+ }
+ remainder := math.Mod(floatValue, float_2_32)
+ if remainder > 0 {
+ remainder = math.Floor(remainder)
+ } else {
+ remainder = math.Ceil(remainder) + float_2_32
+ }
+ if remainder > float_2_31 {
+ return int32(remainder - float_2_32)
+ }
+ return int32(remainder)
+}
+
+func toUint32(value Value) uint32 {
+ {
+ switch value := value.value.(type) {
+ case int8:
+ return uint32(value)
+ case int16:
+ return uint32(value)
+ case uint8:
+ return uint32(value)
+ case uint16:
+ return uint32(value)
+ case uint32:
+ return value
+ }
+ }
+ floatValue := value.float64()
+ if math.IsNaN(floatValue) || math.IsInf(floatValue, 0) {
+ return 0
+ }
+ if floatValue == 0 {
+ return 0
+ }
+ remainder := math.Mod(floatValue, float_2_32)
+ if remainder > 0 {
+ remainder = math.Floor(remainder)
+ } else {
+ remainder = math.Ceil(remainder) + float_2_32
+ }
+ return uint32(remainder)
+}
+
+func toUint16(value Value) uint16 {
+ {
+ switch value := value.value.(type) {
+ case int8:
+ return uint16(value)
+ case uint8:
+ return uint16(value)
+ case uint16:
+ return value
+ }
+ }
+ floatValue := value.float64()
+ if math.IsNaN(floatValue) || math.IsInf(floatValue, 0) {
+ return 0
+ }
+ if floatValue == 0 {
+ return 0
+ }
+ remainder := math.Mod(floatValue, float_2_16)
+ if remainder > 0 {
+ remainder = math.Floor(remainder)
+ } else {
+ remainder = math.Ceil(remainder) + float_2_16
+ }
+ return uint16(remainder)
+}
diff --git a/vendor/github.com/robertkrimen/otto/value_primitive.go b/vendor/github.com/robertkrimen/otto/value_primitive.go
new file mode 100644
index 000000000..11ed329d1
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/value_primitive.go
@@ -0,0 +1,23 @@
+package otto
+
+func toStringPrimitive(value Value) Value {
+ return _toPrimitive(value, defaultValueHintString)
+}
+
+func toNumberPrimitive(value Value) Value {
+ return _toPrimitive(value, defaultValueHintNumber)
+}
+
+func toPrimitive(value Value) Value {
+ return _toPrimitive(value, defaultValueNoHint)
+}
+
+func _toPrimitive(value Value, hint _defaultValueHint) Value {
+ switch value.kind {
+ case valueNull, valueUndefined, valueNumber, valueString, valueBoolean:
+ return value
+ case valueObject:
+ return value._object().DefaultValue(hint)
+ }
+ panic(hereBeDragons(value.kind, value))
+}
diff --git a/vendor/github.com/robertkrimen/otto/value_string.go b/vendor/github.com/robertkrimen/otto/value_string.go
new file mode 100644
index 000000000..0fbfd6b25
--- /dev/null
+++ b/vendor/github.com/robertkrimen/otto/value_string.go
@@ -0,0 +1,103 @@
+package otto
+
+import (
+ "fmt"
+ "math"
+ "regexp"
+ "strconv"
+ "unicode/utf16"
+)
+
+var matchLeading0Exponent = regexp.MustCompile(`([eE][\+\-])0+([1-9])`) // 1e-07 => 1e-7
+
+// FIXME
+// https://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/conversions.cc?spec=svn18082&r=18082
+func floatToString(value float64, bitsize int) string {
+ // TODO Fit to ECMA-262 9.8.1 specification
+ if math.IsNaN(value) {
+ return "NaN"
+ } else if math.IsInf(value, 0) {
+ if math.Signbit(value) {
+ return "-Infinity"
+ }
+ return "Infinity"
+ }
+ exponent := math.Log10(math.Abs(value))
+ if exponent >= 21 || exponent < -6 {
+ return matchLeading0Exponent.ReplaceAllString(strconv.FormatFloat(value, 'g', -1, bitsize), "$1$2")
+ }
+ return strconv.FormatFloat(value, 'f', -1, bitsize)
+}
+
+func numberToStringRadix(value Value, radix int) string {
+ float := value.float64()
+ if math.IsNaN(float) {
+ return "NaN"
+ } else if math.IsInf(float, 1) {
+ return "Infinity"
+ } else if math.IsInf(float, -1) {
+ return "-Infinity"
+ }
+ // FIXME This is very broken
+ // Need to do proper radix conversion for floats, ...
+ // This truncates large floats (so bad).
+ return strconv.FormatInt(int64(float), radix)
+}
+
+func (value Value) string() string {
+ if value.kind == valueString {
+ switch value := value.value.(type) {
+ case string:
+ return value
+ case []uint16:
+ return string(utf16.Decode(value))
+ }
+ }
+ if value.IsUndefined() {
+ return "undefined"
+ }
+ if value.IsNull() {
+ return "null"
+ }
+ switch value := value.value.(type) {
+ case bool:
+ return strconv.FormatBool(value)
+ case int:
+ return strconv.FormatInt(int64(value), 10)
+ case int8:
+ return strconv.FormatInt(int64(value), 10)
+ case int16:
+ return strconv.FormatInt(int64(value), 10)
+ case int32:
+ return strconv.FormatInt(int64(value), 10)
+ case int64:
+ return strconv.FormatInt(value, 10)
+ case uint:
+ return strconv.FormatUint(uint64(value), 10)
+ case uint8:
+ return strconv.FormatUint(uint64(value), 10)
+ case uint16:
+ return strconv.FormatUint(uint64(value), 10)
+ case uint32:
+ return strconv.FormatUint(uint64(value), 10)
+ case uint64:
+ return strconv.FormatUint(value, 10)
+ case float32:
+ if value == 0 {
+ return "0" // Take care not to return -0
+ }
+ return floatToString(float64(value), 32)
+ case float64:
+ if value == 0 {
+ return "0" // Take care not to return -0
+ }
+ return floatToString(value, 64)
+ case []uint16:
+ return string(utf16.Decode(value))
+ case string:
+ return value
+ case *_object:
+ return value.DefaultValue(defaultValueHintString).string()
+ }
+ panic(fmt.Errorf("%v.string( %T)", value.value, value.value))
+}
diff --git a/vendor/github.com/rs/cors/.travis.yml b/vendor/github.com/rs/cors/.travis.yml
new file mode 100644
index 000000000..bbb5185a2
--- /dev/null
+++ b/vendor/github.com/rs/cors/.travis.yml
@@ -0,0 +1,4 @@
+language: go
+go:
+- 1.3
+- 1.4
diff --git a/vendor/github.com/rs/cors/LICENSE b/vendor/github.com/rs/cors/LICENSE
new file mode 100644
index 000000000..d8e2df5a4
--- /dev/null
+++ b/vendor/github.com/rs/cors/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2014 Olivier Poitrey <rs@dailymotion.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/rs/cors/README.md b/vendor/github.com/rs/cors/README.md
new file mode 100644
index 000000000..4bf56724e
--- /dev/null
+++ b/vendor/github.com/rs/cors/README.md
@@ -0,0 +1,99 @@
+# Go CORS handler [![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/rs/cors) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/rs/cors/master/LICENSE) [![build](https://img.shields.io/travis/rs/cors.svg?style=flat)](https://travis-ci.org/rs/cors) [![Coverage](http://gocover.io/_badge/github.com/rs/cors)](http://gocover.io/github.com/rs/cors)
+
+CORS is a `net/http` handler implementing [Cross Origin Resource Sharing W3 specification](http://www.w3.org/TR/cors/) in Golang.
+
+## Getting Started
+
+After installing Go and setting up your [GOPATH](http://golang.org/doc/code.html#GOPATH), create your first `.go` file. We'll call it `server.go`.
+
+```go
+package main
+
+import (
+ "net/http"
+
+ "github.com/rs/cors"
+)
+
+func main() {
+ mux := http.NewServeMux()
+ mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+ w.Header().Set("Content-Type", "application/json")
+ w.Write([]byte("{\"hello\": \"world\"}"))
+ })
+
+ // cors.Default() setup the middleware with default options being
+ // all origins accepted with simple methods (GET, POST). See
+ // documentation below for more options.
+ handler := cors.Default().Handler(mux)
+ http.ListenAndServe(":8080", handler)
+}
+```
+
+Install `cors`:
+
+ go get github.com/rs/cors
+
+Then run your server:
+
+ go run server.go
+
+The server now runs on `localhost:8080`:
+
+ $ curl -D - -H 'Origin: http://foo.com' http://localhost:8080/
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: foo.com
+ Content-Type: application/json
+ Date: Sat, 25 Oct 2014 03:43:57 GMT
+ Content-Length: 18
+
+ {"hello": "world"}
+
+### More Examples
+
+* `net/http`: [examples/nethttp/server.go](https://github.com/rs/cors/blob/master/examples/nethttp/server.go)
+* [Goji](https://goji.io): [examples/goji/server.go](https://github.com/rs/cors/blob/master/examples/goji/server.go)
+* [Martini](http://martini.codegangsta.io): [examples/martini/server.go](https://github.com/rs/cors/blob/master/examples/martini/server.go)
+* [Negroni](https://github.com/codegangsta/negroni): [examples/negroni/server.go](https://github.com/rs/cors/blob/master/examples/negroni/server.go)
+* [Alice](https://github.com/justinas/alice): [examples/alice/server.go](https://github.com/rs/cors/blob/master/examples/alice/server.go)
+
+## Parameters
+
+Parameters are passed to the middleware thru the `cors.New` method as follow:
+
+```go
+c := cors.New(cors.Options{
+ AllowedOrigins: []string{"http://foo.com"},
+ AllowCredentials: true,
+})
+
+// Insert the middleware
+handler = c.Handler(handler)
+```
+
+* **AllowedOrigins** `[]string`: A list of origins a cross-domain request can be executed from. If the special `*` value is present in the list, all origins will be allowed. An origin may contain a wildcard (`*`) to replace 0 or more characters (i.e.: `http://*.domain.com`). Usage of wildcards implies a small performance penality. Only one wildcard can be used per origin. The default value is `*`.
+* **AllowOriginFunc** `func (origin string) bool`: A custom function to validate the origin. It take the origin as argument and returns true if allowed or false otherwise. If this option is set, the content of `AllowedOrigins` is ignored
+* **AllowedMethods** `[]string`: A list of methods the client is allowed to use with cross-domain requests. Default value is simple methods (`GET` and `POST`).
+* **AllowedHeaders** `[]string`: A list of non simple headers the client is allowed to use with cross-domain requests.
+* **ExposedHeaders** `[]string`: Indicates which headers are safe to expose to the API of a CORS API specification
+* **AllowCredentials** `bool`: Indicates whether the request can include user credentials like cookies, HTTP authentication or client side SSL certificates. The default is `false`.
+* **MaxAge** `int`: Indicates how long (in seconds) the results of a preflight request can be cached. The default is `0` which stands for no max age.
+* **OptionsPassthrough** `bool`: Instructs preflight to let other potential next handlers to process the `OPTIONS` method. Turn this on if your application handles `OPTIONS`.
+* **Debug** `bool`: Debugging flag adds additional output to debug server side CORS issues.
+
+See [API documentation](http://godoc.org/github.com/rs/cors) for more info.
+
+## Benchmarks
+
+ BenchmarkWithout 20000000 64.6 ns/op 8 B/op 1 allocs/op
+ BenchmarkDefault 3000000 469 ns/op 114 B/op 2 allocs/op
+ BenchmarkAllowedOrigin 3000000 608 ns/op 114 B/op 2 allocs/op
+ BenchmarkPreflight 20000000 73.2 ns/op 0 B/op 0 allocs/op
+ BenchmarkPreflightHeader 20000000 73.6 ns/op 0 B/op 0 allocs/op
+ BenchmarkParseHeaderList 2000000 847 ns/op 184 B/op 6 allocs/op
+ BenchmarkParse…Single 5000000 290 ns/op 32 B/op 3 allocs/op
+ BenchmarkParse…Normalized 2000000 776 ns/op 160 B/op 6 allocs/op
+
+## Licenses
+
+All source code is licensed under the [MIT License](https://raw.github.com/rs/cors/master/LICENSE).
diff --git a/vendor/github.com/rs/cors/cors.go b/vendor/github.com/rs/cors/cors.go
new file mode 100644
index 000000000..4bb22d8fc
--- /dev/null
+++ b/vendor/github.com/rs/cors/cors.go
@@ -0,0 +1,412 @@
+/*
+Package cors is net/http handler to handle CORS related requests
+as defined by http://www.w3.org/TR/cors/
+
+You can configure it by passing an option struct to cors.New:
+
+ c := cors.New(cors.Options{
+ AllowedOrigins: []string{"foo.com"},
+ AllowedMethods: []string{"GET", "POST", "DELETE"},
+ AllowCredentials: true,
+ })
+
+Then insert the handler in the chain:
+
+ handler = c.Handler(handler)
+
+See Options documentation for more options.
+
+The resulting handler is a standard net/http handler.
+*/
+package cors
+
+import (
+ "log"
+ "net/http"
+ "os"
+ "strconv"
+ "strings"
+
+ "github.com/rs/xhandler"
+ "golang.org/x/net/context"
+)
+
+// Options is a configuration container to setup the CORS middleware.
+type Options struct {
+ // AllowedOrigins is a list of origins a cross-domain request can be executed from.
+ // If the special "*" value is present in the list, all origins will be allowed.
+ // An origin may contain a wildcard (*) to replace 0 or more characters
+ // (i.e.: http://*.domain.com). Usage of wildcards implies a small performance penality.
+ // Only one wildcard can be used per origin.
+ // Default value is ["*"]
+ AllowedOrigins []string
+ // AllowOriginFunc is a custom function to validate the origin. It take the origin
+ // as argument and returns true if allowed or false otherwise. If this option is
+ // set, the content of AllowedOrigins is ignored.
+ AllowOriginFunc func(origin string) bool
+ // AllowedMethods is a list of methods the client is allowed to use with
+ // cross-domain requests. Default value is simple methods (GET and POST)
+ AllowedMethods []string
+ // AllowedHeaders is list of non simple headers the client is allowed to use with
+ // cross-domain requests.
+ // If the special "*" value is present in the list, all headers will be allowed.
+ // Default value is [] but "Origin" is always appended to the list.
+ AllowedHeaders []string
+ // ExposedHeaders indicates which headers are safe to expose to the API of a CORS
+ // API specification
+ ExposedHeaders []string
+ // AllowCredentials indicates whether the request can include user credentials like
+ // cookies, HTTP authentication or client side SSL certificates.
+ AllowCredentials bool
+ // MaxAge indicates how long (in seconds) the results of a preflight request
+ // can be cached
+ MaxAge int
+ // OptionsPassthrough instructs preflight to let other potential next handlers to
+ // process the OPTIONS method. Turn this on if your application handles OPTIONS.
+ OptionsPassthrough bool
+ // Debugging flag adds additional output to debug server side CORS issues
+ Debug bool
+}
+
+// Cors http handler
+type Cors struct {
+ // Debug logger
+ Log *log.Logger
+ // Set to true when allowed origins contains a "*"
+ allowedOriginsAll bool
+ // Normalized list of plain allowed origins
+ allowedOrigins []string
+ // List of allowed origins containing wildcards
+ allowedWOrigins []wildcard
+ // Optional origin validator function
+ allowOriginFunc func(origin string) bool
+ // Set to true when allowed headers contains a "*"
+ allowedHeadersAll bool
+ // Normalized list of allowed headers
+ allowedHeaders []string
+ // Normalized list of allowed methods
+ allowedMethods []string
+ // Normalized list of exposed headers
+ exposedHeaders []string
+ allowCredentials bool
+ maxAge int
+ optionPassthrough bool
+}
+
+// New creates a new Cors handler with the provided options.
+func New(options Options) *Cors {
+ c := &Cors{
+ exposedHeaders: convert(options.ExposedHeaders, http.CanonicalHeaderKey),
+ allowOriginFunc: options.AllowOriginFunc,
+ allowCredentials: options.AllowCredentials,
+ maxAge: options.MaxAge,
+ optionPassthrough: options.OptionsPassthrough,
+ }
+ if options.Debug {
+ c.Log = log.New(os.Stdout, "[cors] ", log.LstdFlags)
+ }
+
+ // Normalize options
+ // Note: for origins and methods matching, the spec requires a case-sensitive matching.
+ // As it may error prone, we chose to ignore the spec here.
+
+ // Allowed Origins
+ if len(options.AllowedOrigins) == 0 {
+ // Default is all origins
+ c.allowedOriginsAll = true
+ } else {
+ c.allowedOrigins = []string{}
+ c.allowedWOrigins = []wildcard{}
+ for _, origin := range options.AllowedOrigins {
+ // Normalize
+ origin = strings.ToLower(origin)
+ if origin == "*" {
+ // If "*" is present in the list, turn the whole list into a match all
+ c.allowedOriginsAll = true
+ c.allowedOrigins = nil
+ c.allowedWOrigins = nil
+ break
+ } else if i := strings.IndexByte(origin, '*'); i >= 0 {
+ // Split the origin in two: start and end string without the *
+ w := wildcard{origin[0:i], origin[i+1 : len(origin)]}
+ c.allowedWOrigins = append(c.allowedWOrigins, w)
+ } else {
+ c.allowedOrigins = append(c.allowedOrigins, origin)
+ }
+ }
+ }
+
+ // Allowed Headers
+ if len(options.AllowedHeaders) == 0 {
+ // Use sensible defaults
+ c.allowedHeaders = []string{"Origin", "Accept", "Content-Type"}
+ } else {
+ // Origin is always appended as some browsers will always request for this header at preflight
+ c.allowedHeaders = convert(append(options.AllowedHeaders, "Origin"), http.CanonicalHeaderKey)
+ for _, h := range options.AllowedHeaders {
+ if h == "*" {
+ c.allowedHeadersAll = true
+ c.allowedHeaders = nil
+ break
+ }
+ }
+ }
+
+ // Allowed Methods
+ if len(options.AllowedMethods) == 0 {
+ // Default is spec's "simple" methods
+ c.allowedMethods = []string{"GET", "POST"}
+ } else {
+ c.allowedMethods = convert(options.AllowedMethods, strings.ToUpper)
+ }
+
+ return c
+}
+
+// Default creates a new Cors handler with default options
+func Default() *Cors {
+ return New(Options{})
+}
+
+// Handler apply the CORS specification on the request, and add relevant CORS headers
+// as necessary.
+func (c *Cors) Handler(h http.Handler) http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ if r.Method == "OPTIONS" {
+ c.logf("Handler: Preflight request")
+ c.handlePreflight(w, r)
+ // Preflight requests are standalone and should stop the chain as some other
+ // middleware may not handle OPTIONS requests correctly. One typical example
+ // is authentication middleware ; OPTIONS requests won't carry authentication
+ // headers (see #1)
+ if c.optionPassthrough {
+ h.ServeHTTP(w, r)
+ } else {
+ w.WriteHeader(http.StatusOK)
+ }
+ } else {
+ c.logf("Handler: Actual request")
+ c.handleActualRequest(w, r)
+ h.ServeHTTP(w, r)
+ }
+ })
+}
+
+// HandlerC is net/context aware handler
+func (c *Cors) HandlerC(h xhandler.HandlerC) xhandler.HandlerC {
+ return xhandler.HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ if r.Method == "OPTIONS" {
+ c.logf("Handler: Preflight request")
+ c.handlePreflight(w, r)
+ // Preflight requests are standalone and should stop the chain as some other
+ // middleware may not handle OPTIONS requests correctly. One typical example
+ // is authentication middleware ; OPTIONS requests won't carry authentication
+ // headers (see #1)
+ if c.optionPassthrough {
+ h.ServeHTTPC(ctx, w, r)
+ } else {
+ w.WriteHeader(http.StatusOK)
+ }
+ } else {
+ c.logf("Handler: Actual request")
+ c.handleActualRequest(w, r)
+ h.ServeHTTPC(ctx, w, r)
+ }
+ })
+}
+
+// HandlerFunc provides Martini compatible handler
+func (c *Cors) HandlerFunc(w http.ResponseWriter, r *http.Request) {
+ if r.Method == "OPTIONS" {
+ c.logf("HandlerFunc: Preflight request")
+ c.handlePreflight(w, r)
+ } else {
+ c.logf("HandlerFunc: Actual request")
+ c.handleActualRequest(w, r)
+ }
+}
+
+// Negroni compatible interface
+func (c *Cors) ServeHTTP(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
+ if r.Method == "OPTIONS" {
+ c.logf("ServeHTTP: Preflight request")
+ c.handlePreflight(w, r)
+ // Preflight requests are standalone and should stop the chain as some other
+ // middleware may not handle OPTIONS requests correctly. One typical example
+ // is authentication middleware ; OPTIONS requests won't carry authentication
+ // headers (see #1)
+ if c.optionPassthrough {
+ next(w, r)
+ } else {
+ w.WriteHeader(http.StatusOK)
+ }
+ } else {
+ c.logf("ServeHTTP: Actual request")
+ c.handleActualRequest(w, r)
+ next(w, r)
+ }
+}
+
+// handlePreflight handles pre-flight CORS requests
+func (c *Cors) handlePreflight(w http.ResponseWriter, r *http.Request) {
+ headers := w.Header()
+ origin := r.Header.Get("Origin")
+
+ if r.Method != "OPTIONS" {
+ c.logf(" Preflight aborted: %s!=OPTIONS", r.Method)
+ return
+ }
+ // Always set Vary headers
+ // see https://github.com/rs/cors/issues/10,
+ // https://github.com/rs/cors/commit/dbdca4d95feaa7511a46e6f1efb3b3aa505bc43f#commitcomment-12352001
+ headers.Add("Vary", "Origin")
+ headers.Add("Vary", "Access-Control-Request-Method")
+ headers.Add("Vary", "Access-Control-Request-Headers")
+
+ if origin == "" {
+ c.logf(" Preflight aborted: empty origin")
+ return
+ }
+ if !c.isOriginAllowed(origin) {
+ c.logf(" Preflight aborted: origin '%s' not allowed", origin)
+ return
+ }
+
+ reqMethod := r.Header.Get("Access-Control-Request-Method")
+ if !c.isMethodAllowed(reqMethod) {
+ c.logf(" Preflight aborted: method '%s' not allowed", reqMethod)
+ return
+ }
+ reqHeaders := parseHeaderList(r.Header.Get("Access-Control-Request-Headers"))
+ if !c.areHeadersAllowed(reqHeaders) {
+ c.logf(" Preflight aborted: headers '%v' not allowed", reqHeaders)
+ return
+ }
+ headers.Set("Access-Control-Allow-Origin", origin)
+ // Spec says: Since the list of methods can be unbounded, simply returning the method indicated
+ // by Access-Control-Request-Method (if supported) can be enough
+ headers.Set("Access-Control-Allow-Methods", strings.ToUpper(reqMethod))
+ if len(reqHeaders) > 0 {
+
+ // Spec says: Since the list of headers can be unbounded, simply returning supported headers
+ // from Access-Control-Request-Headers can be enough
+ headers.Set("Access-Control-Allow-Headers", strings.Join(reqHeaders, ", "))
+ }
+ if c.allowCredentials {
+ headers.Set("Access-Control-Allow-Credentials", "true")
+ }
+ if c.maxAge > 0 {
+ headers.Set("Access-Control-Max-Age", strconv.Itoa(c.maxAge))
+ }
+ c.logf(" Preflight response headers: %v", headers)
+}
+
+// handleActualRequest handles simple cross-origin requests, actual request or redirects
+func (c *Cors) handleActualRequest(w http.ResponseWriter, r *http.Request) {
+ headers := w.Header()
+ origin := r.Header.Get("Origin")
+
+ if r.Method == "OPTIONS" {
+ c.logf(" Actual request no headers added: method == %s", r.Method)
+ return
+ }
+ // Always set Vary, see https://github.com/rs/cors/issues/10
+ headers.Add("Vary", "Origin")
+ if origin == "" {
+ c.logf(" Actual request no headers added: missing origin")
+ return
+ }
+ if !c.isOriginAllowed(origin) {
+ c.logf(" Actual request no headers added: origin '%s' not allowed", origin)
+ return
+ }
+
+ // Note that spec does define a way to specifically disallow a simple method like GET or
+ // POST. Access-Control-Allow-Methods is only used for pre-flight requests and the
+ // spec doesn't instruct to check the allowed methods for simple cross-origin requests.
+ // We think it's a nice feature to be able to have control on those methods though.
+ if !c.isMethodAllowed(r.Method) {
+ c.logf(" Actual request no headers added: method '%s' not allowed", r.Method)
+
+ return
+ }
+ headers.Set("Access-Control-Allow-Origin", origin)
+ if len(c.exposedHeaders) > 0 {
+ headers.Set("Access-Control-Expose-Headers", strings.Join(c.exposedHeaders, ", "))
+ }
+ if c.allowCredentials {
+ headers.Set("Access-Control-Allow-Credentials", "true")
+ }
+ c.logf(" Actual response added headers: %v", headers)
+}
+
+// convenience method. checks if debugging is turned on before printing
+func (c *Cors) logf(format string, a ...interface{}) {
+ if c.Log != nil {
+ c.Log.Printf(format, a...)
+ }
+}
+
+// isOriginAllowed checks if a given origin is allowed to perform cross-domain requests
+// on the endpoint
+func (c *Cors) isOriginAllowed(origin string) bool {
+ if c.allowOriginFunc != nil {
+ return c.allowOriginFunc(origin)
+ }
+ if c.allowedOriginsAll {
+ return true
+ }
+ origin = strings.ToLower(origin)
+ for _, o := range c.allowedOrigins {
+ if o == origin {
+ return true
+ }
+ }
+ for _, w := range c.allowedWOrigins {
+ if w.match(origin) {
+ return true
+ }
+ }
+ return false
+}
+
+// isMethodAllowed checks if a given method can be used as part of a cross-domain request
+// on the endpoing
+func (c *Cors) isMethodAllowed(method string) bool {
+ if len(c.allowedMethods) == 0 {
+ // If no method allowed, always return false, even for preflight request
+ return false
+ }
+ method = strings.ToUpper(method)
+ if method == "OPTIONS" {
+ // Always allow preflight requests
+ return true
+ }
+ for _, m := range c.allowedMethods {
+ if m == method {
+ return true
+ }
+ }
+ return false
+}
+
+// areHeadersAllowed checks if a given list of headers are allowed to used within
+// a cross-domain request.
+func (c *Cors) areHeadersAllowed(requestedHeaders []string) bool {
+ if c.allowedHeadersAll || len(requestedHeaders) == 0 {
+ return true
+ }
+ for _, header := range requestedHeaders {
+ header = http.CanonicalHeaderKey(header)
+ found := false
+ for _, h := range c.allowedHeaders {
+ if h == header {
+ found = true
+ }
+ }
+ if !found {
+ return false
+ }
+ }
+ return true
+}
diff --git a/vendor/github.com/rs/cors/utils.go b/vendor/github.com/rs/cors/utils.go
new file mode 100644
index 000000000..c7a0aa060
--- /dev/null
+++ b/vendor/github.com/rs/cors/utils.go
@@ -0,0 +1,70 @@
+package cors
+
+import "strings"
+
+const toLower = 'a' - 'A'
+
+type converter func(string) string
+
+type wildcard struct {
+ prefix string
+ suffix string
+}
+
+func (w wildcard) match(s string) bool {
+ return len(s) >= len(w.prefix+w.suffix) && strings.HasPrefix(s, w.prefix) && strings.HasSuffix(s, w.suffix)
+}
+
+// convert converts a list of string using the passed converter function
+func convert(s []string, c converter) []string {
+ out := []string{}
+ for _, i := range s {
+ out = append(out, c(i))
+ }
+ return out
+}
+
+// parseHeaderList tokenize + normalize a string containing a list of headers
+func parseHeaderList(headerList string) []string {
+ l := len(headerList)
+ h := make([]byte, 0, l)
+ upper := true
+ // Estimate the number headers in order to allocate the right splice size
+ t := 0
+ for i := 0; i < l; i++ {
+ if headerList[i] == ',' {
+ t++
+ }
+ }
+ headers := make([]string, 0, t)
+ for i := 0; i < l; i++ {
+ b := headerList[i]
+ if b >= 'a' && b <= 'z' {
+ if upper {
+ h = append(h, b-toLower)
+ } else {
+ h = append(h, b)
+ }
+ } else if b >= 'A' && b <= 'Z' {
+ if !upper {
+ h = append(h, b+toLower)
+ } else {
+ h = append(h, b)
+ }
+ } else if b == '-' || b == '_' || (b >= '0' && b <= '9') {
+ h = append(h, b)
+ }
+
+ if b == ' ' || b == ',' || i == l-1 {
+ if len(h) > 0 {
+ // Flush the found header
+ headers = append(headers, string(h))
+ h = h[:0]
+ upper = true
+ }
+ } else {
+ upper = b == '-' || b == '_'
+ }
+ }
+ return headers
+}
diff --git a/vendor/github.com/rs/xhandler/.travis.yml b/vendor/github.com/rs/xhandler/.travis.yml
new file mode 100644
index 000000000..b65c7a9f1
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/.travis.yml
@@ -0,0 +1,7 @@
+language: go
+go:
+- 1.5
+- tip
+matrix:
+ allow_failures:
+ - go: tip
diff --git a/vendor/github.com/rs/xhandler/LICENSE b/vendor/github.com/rs/xhandler/LICENSE
new file mode 100644
index 000000000..47c5e9d2d
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2015 Olivier Poitrey <rs@dailymotion.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/vendor/github.com/rs/xhandler/README.md b/vendor/github.com/rs/xhandler/README.md
new file mode 100644
index 000000000..91c594bd2
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/README.md
@@ -0,0 +1,134 @@
+# XHandler
+
+[![godoc](http://img.shields.io/badge/godoc-reference-blue.svg?style=flat)](https://godoc.org/github.com/rs/xhandler) [![license](http://img.shields.io/badge/license-MIT-red.svg?style=flat)](https://raw.githubusercontent.com/rs/xhandler/master/LICENSE) [![Build Status](https://travis-ci.org/rs/xhandler.svg?branch=master)](https://travis-ci.org/rs/xhandler) [![Coverage](http://gocover.io/_badge/github.com/rs/xhandler)](http://gocover.io/github.com/rs/xhandler)
+
+XHandler is a bridge between [net/context](https://godoc.org/golang.org/x/net/context) and `http.Handler`.
+
+It lets you enforce `net/context` in your handlers without sacrificing compatibility with existing `http.Handlers` nor imposing a specific router.
+
+Thanks to `net/context` deadline management, `xhandler` is able to enforce a per request deadline and will cancel the context when the client closes the connection unexpectedly.
+
+You may create your own `net/context` aware handler pretty much the same way as you would do with http.Handler.
+
+Read more about xhandler on [Dailymotion engineering blog](http://engineering.dailymotion.com/our-way-to-go/).
+
+## Installing
+
+ go get -u github.com/rs/xhandler
+
+## Usage
+
+```go
+package main
+
+import (
+ "log"
+ "net/http"
+ "time"
+
+ "github.com/rs/cors"
+ "github.com/rs/xhandler"
+ "golang.org/x/net/context"
+)
+
+type myMiddleware struct {
+ next xhandler.HandlerC
+}
+
+func (h myMiddleware) ServeHTTPC(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ ctx = context.WithValue(ctx, "test", "World")
+ h.next.ServeHTTPC(ctx, w, r)
+}
+
+func main() {
+ c := xhandler.Chain{}
+
+ // Add close notifier handler so context is cancelled when the client closes
+ // the connection
+ c.UseC(xhandler.CloseHandler)
+
+ // Add timeout handler
+ c.UseC(xhandler.TimeoutHandler(2 * time.Second))
+
+ // Middleware putting something in the context
+ c.UseC(func(next xhandler.HandlerC) xhandler.HandlerC {
+ return myMiddleware{next: next}
+ })
+
+ // Mix it with a non-context-aware middleware handler
+ c.Use(cors.Default().Handler)
+
+ // Final handler (using handlerFuncC), reading from the context
+ xh := xhandler.HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ value := ctx.Value("test").(string)
+ w.Write([]byte("Hello " + value))
+ })
+
+ // Bridge context aware handlers with http.Handler using xhandler.Handle()
+ http.Handle("/test", c.Handler(xh))
+
+ if err := http.ListenAndServe(":8080", nil); err != nil {
+ log.Fatal(err)
+ }
+}
+```
+
+### Using xmux
+
+Xhandler comes with an optional context aware [muxer](https://github.com/rs/xmux) forked from [httprouter](https://github.com/julienschmidt/httprouter):
+
+```go
+package main
+
+import (
+ "fmt"
+ "log"
+ "net/http"
+ "time"
+
+ "github.com/rs/xhandler"
+ "github.com/rs/xmux"
+ "golang.org/x/net/context"
+)
+
+func main() {
+ c := xhandler.Chain{}
+
+ // Append a context-aware middleware handler
+ c.UseC(xhandler.CloseHandler)
+
+ // Another context-aware middleware handler
+ c.UseC(xhandler.TimeoutHandler(2 * time.Second))
+
+ mux := xmux.New()
+
+ // Use c.Handler to terminate the chain with your final handler
+ mux.GET("/welcome/:name", xhandler.HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, req *http.Request) {
+ fmt.Fprintf(w, "Welcome %s!", xmux.Params(ctx).Get("name"))
+ }))
+
+ if err := http.ListenAndServe(":8080", c.Handler(mux)); err != nil {
+ log.Fatal(err)
+ }
+}
+```
+
+See [xmux](https://github.com/rs/xmux) for more examples.
+
+## Context Aware Middleware
+
+Here is a list of `net/context` aware middleware handlers implementing `xhandler.HandlerC` interface.
+
+Feel free to put up a PR linking your middleware if you have built one:
+
+| Middleware | Author | Description |
+| ---------- | ------ | ----------- |
+| [xmux](https://github.com/rs/xmux) | [Olivier Poitrey](https://github.com/rs) | HTTP request muxer |
+| [xlog](https://github.com/rs/xlog) | [Olivier Poitrey](https://github.com/rs) | HTTP handler logger |
+| [xstats](https://github.com/rs/xstats) | [Olivier Poitrey](https://github.com/rs) | A generic client for service instrumentation |
+| [xaccess](https://github.com/rs/xaccess) | [Olivier Poitrey](https://github.com/rs) | HTTP handler access logger with [xlog](https://github.com/rs/xlog) and [xstats](https://github.com/rs/xstats) |
+| [cors](https://github.com/rs/cors) | [Olivier Poitrey](https://github.com/rs) | [Cross Origin Resource Sharing](http://www.w3.org/TR/cors/) (CORS) support |
+
+## Licenses
+
+All source code is licensed under the [MIT License](https://raw.github.com/rs/xhandler/master/LICENSE).
diff --git a/vendor/github.com/rs/xhandler/chain.go b/vendor/github.com/rs/xhandler/chain.go
new file mode 100644
index 000000000..3e4bd359c
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/chain.go
@@ -0,0 +1,121 @@
+package xhandler
+
+import (
+ "net/http"
+
+ "golang.org/x/net/context"
+)
+
+// Chain is a helper for chaining middleware handlers together for easier
+// management.
+type Chain []func(next HandlerC) HandlerC
+
+// Add appends a variable number of additional middleware handlers
+// to the middleware chain. Middleware handlers can either be
+// context-aware or non-context aware handlers with the appropriate
+// function signatures.
+func (c *Chain) Add(f ...interface{}) {
+ for _, h := range f {
+ switch v := h.(type) {
+ case func(http.Handler) http.Handler:
+ c.Use(v)
+ case func(HandlerC) HandlerC:
+ c.UseC(v)
+ default:
+ panic("Adding invalid handler to the middleware chain")
+ }
+ }
+}
+
+// With creates a new middleware chain from an existing chain,
+// extending it with additional middleware. Middleware handlers
+// can either be context-aware or non-context aware handlers
+// with the appropriate function signatures.
+func (c *Chain) With(f ...interface{}) *Chain {
+ n := make(Chain, len(*c))
+ copy(n, *c)
+ n.Add(f...)
+ return &n
+}
+
+// UseC appends a context-aware handler to the middleware chain.
+func (c *Chain) UseC(f func(next HandlerC) HandlerC) {
+ *c = append(*c, f)
+}
+
+// Use appends a standard http.Handler to the middleware chain without
+// losing track of the context when inserted between two context aware handlers.
+//
+// Caveat: the f function will be called on each request so you are better off putting
+// any initialization sequence outside of this function.
+func (c *Chain) Use(f func(next http.Handler) http.Handler) {
+ xf := func(next HandlerC) HandlerC {
+ return HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ n := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ next.ServeHTTPC(ctx, w, r)
+ })
+ f(n).ServeHTTP(w, r)
+ })
+ }
+ *c = append(*c, xf)
+}
+
+// Handler wraps the provided final handler with all the middleware appended to
+// the chain and returns a new standard http.Handler instance.
+// The context.Background() context is injected automatically.
+func (c Chain) Handler(xh HandlerC) http.Handler {
+ ctx := context.Background()
+ return c.HandlerCtx(ctx, xh)
+}
+
+// HandlerFC is a helper to provide a function (HandlerFuncC) to Handler().
+//
+// HandlerFC is equivalent to:
+// c.Handler(xhandler.HandlerFuncC(xhc))
+func (c Chain) HandlerFC(xhf HandlerFuncC) http.Handler {
+ ctx := context.Background()
+ return c.HandlerCtx(ctx, HandlerFuncC(xhf))
+}
+
+// HandlerH is a helper to provide a standard http handler (http.HandlerFunc)
+// to Handler(). Your final handler won't have access to the context though.
+func (c Chain) HandlerH(h http.Handler) http.Handler {
+ ctx := context.Background()
+ return c.HandlerCtx(ctx, HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ h.ServeHTTP(w, r)
+ }))
+}
+
+// HandlerF is a helper to provide a standard http handler function
+// (http.HandlerFunc) to Handler(). Your final handler won't have access
+// to the context though.
+func (c Chain) HandlerF(hf http.HandlerFunc) http.Handler {
+ ctx := context.Background()
+ return c.HandlerCtx(ctx, HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ hf(w, r)
+ }))
+}
+
+// HandlerCtx wraps the provided final handler with all the middleware appended to
+// the chain and returns a new standard http.Handler instance.
+func (c Chain) HandlerCtx(ctx context.Context, xh HandlerC) http.Handler {
+ return New(ctx, c.HandlerC(xh))
+}
+
+// HandlerC wraps the provided final handler with all the middleware appended to
+// the chain and returns a HandlerC instance.
+func (c Chain) HandlerC(xh HandlerC) HandlerC {
+ for i := len(c) - 1; i >= 0; i-- {
+ xh = c[i](xh)
+ }
+ return xh
+}
+
+// HandlerCF wraps the provided final handler func with all the middleware appended to
+// the chain and returns a HandlerC instance.
+//
+// HandlerCF is equivalent to:
+// c.HandlerC(xhandler.HandlerFuncC(xhc))
+func (c Chain) HandlerCF(xhc HandlerFuncC) HandlerC {
+ return c.HandlerC(HandlerFuncC(xhc))
+}
diff --git a/vendor/github.com/rs/xhandler/middleware.go b/vendor/github.com/rs/xhandler/middleware.go
new file mode 100644
index 000000000..7ad8fba62
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/middleware.go
@@ -0,0 +1,59 @@
+package xhandler
+
+import (
+ "net/http"
+ "time"
+
+ "golang.org/x/net/context"
+)
+
+// CloseHandler returns a Handler, cancelling the context when the client
+// connection closes unexpectedly.
+func CloseHandler(next HandlerC) HandlerC {
+ return HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ // Cancel the context if the client closes the connection
+ if wcn, ok := w.(http.CloseNotifier); ok {
+ var cancel context.CancelFunc
+ ctx, cancel = context.WithCancel(ctx)
+ defer cancel()
+
+ notify := wcn.CloseNotify()
+ go func() {
+ select {
+ case <-notify:
+ cancel()
+ case <-ctx.Done():
+ }
+ }()
+ }
+
+ next.ServeHTTPC(ctx, w, r)
+ })
+}
+
+// TimeoutHandler returns a Handler which adds a timeout to the context.
+//
+// Child handlers have the responsability of obeying the context deadline and to return
+// an appropriate error (or not) response in case of timeout.
+func TimeoutHandler(timeout time.Duration) func(next HandlerC) HandlerC {
+ return func(next HandlerC) HandlerC {
+ return HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ ctx, _ = context.WithTimeout(ctx, timeout)
+ next.ServeHTTPC(ctx, w, r)
+ })
+ }
+}
+
+// If is a special handler that will skip insert the condNext handler only if a condition
+// applies at runtime.
+func If(cond func(ctx context.Context, w http.ResponseWriter, r *http.Request) bool, condNext func(next HandlerC) HandlerC) func(next HandlerC) HandlerC {
+ return func(next HandlerC) HandlerC {
+ return HandlerFuncC(func(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ if cond(ctx, w, r) {
+ condNext(next).ServeHTTPC(ctx, w, r)
+ } else {
+ next.ServeHTTPC(ctx, w, r)
+ }
+ })
+ }
+}
diff --git a/vendor/github.com/rs/xhandler/xhandler.go b/vendor/github.com/rs/xhandler/xhandler.go
new file mode 100644
index 000000000..bc832cb1f
--- /dev/null
+++ b/vendor/github.com/rs/xhandler/xhandler.go
@@ -0,0 +1,42 @@
+// Package xhandler provides a bridge between http.Handler and net/context.
+//
+// xhandler enforces net/context in your handlers without sacrificing
+// compatibility with existing http.Handlers nor imposing a specific router.
+//
+// Thanks to net/context deadline management, xhandler is able to enforce
+// a per request deadline and will cancel the context in when the client close
+// the connection unexpectedly.
+//
+// You may create net/context aware middlewares pretty much the same way as
+// you would with http.Handler.
+package xhandler // import "github.com/rs/xhandler"
+
+import (
+ "net/http"
+
+ "golang.org/x/net/context"
+)
+
+// HandlerC is a net/context aware http.Handler
+type HandlerC interface {
+ ServeHTTPC(context.Context, http.ResponseWriter, *http.Request)
+}
+
+// HandlerFuncC type is an adapter to allow the use of ordinary functions
+// as an xhandler.Handler. If f is a function with the appropriate signature,
+// xhandler.HandlerFuncC(f) is a xhandler.Handler object that calls f.
+type HandlerFuncC func(context.Context, http.ResponseWriter, *http.Request)
+
+// ServeHTTPC calls f(ctx, w, r).
+func (f HandlerFuncC) ServeHTTPC(ctx context.Context, w http.ResponseWriter, r *http.Request) {
+ f(ctx, w, r)
+}
+
+// New creates a conventional http.Handler injecting the provided root
+// context to sub handlers. This handler is used as a bridge between conventional
+// http.Handler and context aware handlers.
+func New(ctx context.Context, h HandlerC) http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ h.ServeHTTPC(ctx, w, r)
+ })
+}
diff --git a/vendor/github.com/syndtr/goleveldb/.travis.yml b/vendor/github.com/syndtr/goleveldb/.travis.yml
new file mode 100644
index 000000000..82de37735
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/.travis.yml
@@ -0,0 +1,12 @@
+language: go
+
+go:
+ - 1.4
+ - 1.5
+ - 1.6
+ - 1.7
+ - tip
+
+script:
+ - go test -timeout 1h ./...
+ - go test -timeout 30m -race -run "TestDB_(Concurrent|GoleveldbIssue74)" ./leveldb
diff --git a/vendor/github.com/syndtr/goleveldb/LICENSE b/vendor/github.com/syndtr/goleveldb/LICENSE
new file mode 100644
index 000000000..4a772d1ab
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/LICENSE
@@ -0,0 +1,24 @@
+Copyright 2012 Suryandaru Triandana <syndtr@gmail.com>
+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.
+
+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
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/github.com/syndtr/goleveldb/README.md b/vendor/github.com/syndtr/goleveldb/README.md
new file mode 100644
index 000000000..259286f55
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/README.md
@@ -0,0 +1,105 @@
+This is an implementation of the [LevelDB key/value database](http:code.google.com/p/leveldb) in the [Go programming language](http:golang.org).
+
+[![Build Status](https://travis-ci.org/syndtr/goleveldb.png?branch=master)](https://travis-ci.org/syndtr/goleveldb)
+
+Installation
+-----------
+
+ go get github.com/syndtr/goleveldb/leveldb
+
+Requirements
+-----------
+
+* Need at least `go1.4` or newer.
+
+Usage
+-----------
+
+Create or open a database:
+```go
+db, err := leveldb.OpenFile("path/to/db", nil)
+...
+defer db.Close()
+...
+```
+Read or modify the database content:
+```go
+// Remember that the contents of the returned slice should not be modified.
+data, err := db.Get([]byte("key"), nil)
+...
+err = db.Put([]byte("key"), []byte("value"), nil)
+...
+err = db.Delete([]byte("key"), nil)
+...
+```
+
+Iterate over database content:
+```go
+iter := db.NewIterator(nil, nil)
+for iter.Next() {
+ // Remember that the contents of the returned slice should not be modified, and
+ // only valid until the next call to Next.
+ key := iter.Key()
+ value := iter.Value()
+ ...
+}
+iter.Release()
+err = iter.Error()
+...
+```
+Seek-then-Iterate:
+```go
+iter := db.NewIterator(nil, nil)
+for ok := iter.Seek(key); ok; ok = iter.Next() {
+ // Use key/value.
+ ...
+}
+iter.Release()
+err = iter.Error()
+...
+```
+Iterate over subset of database content:
+```go
+iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil)
+for iter.Next() {
+ // Use key/value.
+ ...
+}
+iter.Release()
+err = iter.Error()
+...
+```
+Iterate over subset of database content with a particular prefix:
+```go
+iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil)
+for iter.Next() {
+ // Use key/value.
+ ...
+}
+iter.Release()
+err = iter.Error()
+...
+```
+Batch writes:
+```go
+batch := new(leveldb.Batch)
+batch.Put([]byte("foo"), []byte("value"))
+batch.Put([]byte("bar"), []byte("another value"))
+batch.Delete([]byte("baz"))
+err = db.Write(batch, nil)
+...
+```
+Use bloom filter:
+```go
+o := &opt.Options{
+ Filter: filter.NewBloomFilter(10),
+}
+db, err := leveldb.OpenFile("path/to/db", o)
+...
+defer db.Close()
+...
+```
+Documentation
+-----------
+
+You can read package documentation [here](http:godoc.org/github.com/syndtr/goleveldb).
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/batch.go b/vendor/github.com/syndtr/goleveldb/leveldb/batch.go
new file mode 100644
index 000000000..225920002
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/batch.go
@@ -0,0 +1,349 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "encoding/binary"
+ "fmt"
+ "io"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/memdb"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+// ErrBatchCorrupted records reason of batch corruption. This error will be
+// wrapped with errors.ErrCorrupted.
+type ErrBatchCorrupted struct {
+ Reason string
+}
+
+func (e *ErrBatchCorrupted) Error() string {
+ return fmt.Sprintf("leveldb: batch corrupted: %s", e.Reason)
+}
+
+func newErrBatchCorrupted(reason string) error {
+ return errors.NewErrCorrupted(storage.FileDesc{}, &ErrBatchCorrupted{reason})
+}
+
+const (
+ batchHeaderLen = 8 + 4
+ batchGrowRec = 3000
+ batchBufioSize = 16
+)
+
+// BatchReplay wraps basic batch operations.
+type BatchReplay interface {
+ Put(key, value []byte)
+ Delete(key []byte)
+}
+
+type batchIndex struct {
+ keyType keyType
+ keyPos, keyLen int
+ valuePos, valueLen int
+}
+
+func (index batchIndex) k(data []byte) []byte {
+ return data[index.keyPos : index.keyPos+index.keyLen]
+}
+
+func (index batchIndex) v(data []byte) []byte {
+ if index.valueLen != 0 {
+ return data[index.valuePos : index.valuePos+index.valueLen]
+ }
+ return nil
+}
+
+func (index batchIndex) kv(data []byte) (key, value []byte) {
+ return index.k(data), index.v(data)
+}
+
+// Batch is a write batch.
+type Batch struct {
+ data []byte
+ index []batchIndex
+
+ // internalLen is sums of key/value pair length plus 8-bytes internal key.
+ internalLen int
+}
+
+func (b *Batch) grow(n int) {
+ o := len(b.data)
+ if cap(b.data)-o < n {
+ div := 1
+ if len(b.index) > batchGrowRec {
+ div = len(b.index) / batchGrowRec
+ }
+ ndata := make([]byte, o, o+n+o/div)
+ copy(ndata, b.data)
+ b.data = ndata
+ }
+}
+
+func (b *Batch) appendRec(kt keyType, key, value []byte) {
+ n := 1 + binary.MaxVarintLen32 + len(key)
+ if kt == keyTypeVal {
+ n += binary.MaxVarintLen32 + len(value)
+ }
+ b.grow(n)
+ index := batchIndex{keyType: kt}
+ o := len(b.data)
+ data := b.data[:o+n]
+ data[o] = byte(kt)
+ o++
+ o += binary.PutUvarint(data[o:], uint64(len(key)))
+ index.keyPos = o
+ index.keyLen = len(key)
+ o += copy(data[o:], key)
+ if kt == keyTypeVal {
+ o += binary.PutUvarint(data[o:], uint64(len(value)))
+ index.valuePos = o
+ index.valueLen = len(value)
+ o += copy(data[o:], value)
+ }
+ b.data = data[:o]
+ b.index = append(b.index, index)
+ b.internalLen += index.keyLen + index.valueLen + 8
+}
+
+// Put appends 'put operation' of the given key/value pair to the batch.
+// It is safe to modify the contents of the argument after Put returns but not
+// before.
+func (b *Batch) Put(key, value []byte) {
+ b.appendRec(keyTypeVal, key, value)
+}
+
+// Delete appends 'delete operation' of the given key to the batch.
+// It is safe to modify the contents of the argument after Delete returns but
+// not before.
+func (b *Batch) Delete(key []byte) {
+ b.appendRec(keyTypeDel, key, nil)
+}
+
+// Dump dumps batch contents. The returned slice can be loaded into the
+// batch using Load method.
+// The returned slice is not its own copy, so the contents should not be
+// modified.
+func (b *Batch) Dump() []byte {
+ return b.data
+}
+
+// Load loads given slice into the batch. Previous contents of the batch
+// will be discarded.
+// The given slice will not be copied and will be used as batch buffer, so
+// it is not safe to modify the contents of the slice.
+func (b *Batch) Load(data []byte) error {
+ return b.decode(data, -1)
+}
+
+// Replay replays batch contents.
+func (b *Batch) Replay(r BatchReplay) error {
+ for _, index := range b.index {
+ switch index.keyType {
+ case keyTypeVal:
+ r.Put(index.k(b.data), index.v(b.data))
+ case keyTypeDel:
+ r.Delete(index.k(b.data))
+ }
+ }
+ return nil
+}
+
+// Len returns number of records in the batch.
+func (b *Batch) Len() int {
+ return len(b.index)
+}
+
+// Reset resets the batch.
+func (b *Batch) Reset() {
+ b.data = b.data[:0]
+ b.index = b.index[:0]
+ b.internalLen = 0
+}
+
+func (b *Batch) replayInternal(fn func(i int, kt keyType, k, v []byte) error) error {
+ for i, index := range b.index {
+ if err := fn(i, index.keyType, index.k(b.data), index.v(b.data)); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func (b *Batch) append(p *Batch) {
+ ob := len(b.data)
+ oi := len(b.index)
+ b.data = append(b.data, p.data...)
+ b.index = append(b.index, p.index...)
+ b.internalLen += p.internalLen
+
+ // Updating index offset.
+ if ob != 0 {
+ for ; oi < len(b.index); oi++ {
+ index := &b.index[oi]
+ index.keyPos += ob
+ if index.valueLen != 0 {
+ index.valuePos += ob
+ }
+ }
+ }
+}
+
+func (b *Batch) decode(data []byte, expectedLen int) error {
+ b.data = data
+ b.index = b.index[:0]
+ b.internalLen = 0
+ err := decodeBatch(data, func(i int, index batchIndex) error {
+ b.index = append(b.index, index)
+ b.internalLen += index.keyLen + index.valueLen + 8
+ return nil
+ })
+ if err != nil {
+ return err
+ }
+ if expectedLen >= 0 && len(b.index) != expectedLen {
+ return newErrBatchCorrupted(fmt.Sprintf("invalid records length: %d vs %d", expectedLen, len(b.index)))
+ }
+ return nil
+}
+
+func (b *Batch) putMem(seq uint64, mdb *memdb.DB) error {
+ var ik []byte
+ for i, index := range b.index {
+ ik = makeInternalKey(ik, index.k(b.data), seq+uint64(i), index.keyType)
+ if err := mdb.Put(ik, index.v(b.data)); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func (b *Batch) revertMem(seq uint64, mdb *memdb.DB) error {
+ var ik []byte
+ for i, index := range b.index {
+ ik = makeInternalKey(ik, index.k(b.data), seq+uint64(i), index.keyType)
+ if err := mdb.Delete(ik); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func newBatch() interface{} {
+ return &Batch{}
+}
+
+func decodeBatch(data []byte, fn func(i int, index batchIndex) error) error {
+ var index batchIndex
+ for i, o := 0, 0; o < len(data); i++ {
+ // Key type.
+ index.keyType = keyType(data[o])
+ if index.keyType > keyTypeVal {
+ return newErrBatchCorrupted(fmt.Sprintf("bad record: invalid type %#x", uint(index.keyType)))
+ }
+ o++
+
+ // Key.
+ x, n := binary.Uvarint(data[o:])
+ o += n
+ if n <= 0 || o+int(x) > len(data) {
+ return newErrBatchCorrupted("bad record: invalid key length")
+ }
+ index.keyPos = o
+ index.keyLen = int(x)
+ o += index.keyLen
+
+ // Value.
+ if index.keyType == keyTypeVal {
+ x, n = binary.Uvarint(data[o:])
+ o += n
+ if n <= 0 || o+int(x) > len(data) {
+ return newErrBatchCorrupted("bad record: invalid value length")
+ }
+ index.valuePos = o
+ index.valueLen = int(x)
+ o += index.valueLen
+ } else {
+ index.valuePos = 0
+ index.valueLen = 0
+ }
+
+ if err := fn(i, index); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func decodeBatchToMem(data []byte, expectSeq uint64, mdb *memdb.DB) (seq uint64, batchLen int, err error) {
+ seq, batchLen, err = decodeBatchHeader(data)
+ if err != nil {
+ return 0, 0, err
+ }
+ if seq < expectSeq {
+ return 0, 0, newErrBatchCorrupted("invalid sequence number")
+ }
+ data = data[batchHeaderLen:]
+ var ik []byte
+ var decodedLen int
+ err = decodeBatch(data, func(i int, index batchIndex) error {
+ if i >= batchLen {
+ return newErrBatchCorrupted("invalid records length")
+ }
+ ik = makeInternalKey(ik, index.k(data), seq+uint64(i), index.keyType)
+ if err := mdb.Put(ik, index.v(data)); err != nil {
+ return err
+ }
+ decodedLen++
+ return nil
+ })
+ if err == nil && decodedLen != batchLen {
+ err = newErrBatchCorrupted(fmt.Sprintf("invalid records length: %d vs %d", batchLen, decodedLen))
+ }
+ return
+}
+
+func encodeBatchHeader(dst []byte, seq uint64, batchLen int) []byte {
+ dst = ensureBuffer(dst, batchHeaderLen)
+ binary.LittleEndian.PutUint64(dst, seq)
+ binary.LittleEndian.PutUint32(dst[8:], uint32(batchLen))
+ return dst
+}
+
+func decodeBatchHeader(data []byte) (seq uint64, batchLen int, err error) {
+ if len(data) < batchHeaderLen {
+ return 0, 0, newErrBatchCorrupted("too short")
+ }
+
+ seq = binary.LittleEndian.Uint64(data)
+ batchLen = int(binary.LittleEndian.Uint32(data[8:]))
+ if batchLen < 0 {
+ return 0, 0, newErrBatchCorrupted("invalid records length")
+ }
+ return
+}
+
+func batchesLen(batches []*Batch) int {
+ batchLen := 0
+ for _, batch := range batches {
+ batchLen += batch.Len()
+ }
+ return batchLen
+}
+
+func writeBatchesWithHeader(wr io.Writer, batches []*Batch, seq uint64) error {
+ if _, err := wr.Write(encodeBatchHeader(nil, seq, batchesLen(batches))); err != nil {
+ return err
+ }
+ for _, batch := range batches {
+ if _, err := wr.Write(batch.data); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go b/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go
new file mode 100644
index 000000000..c5940b232
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/cache/cache.go
@@ -0,0 +1,705 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package cache provides interface and implementation of a cache algorithms.
+package cache
+
+import (
+ "sync"
+ "sync/atomic"
+ "unsafe"
+
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// Cacher provides interface to implements a caching functionality.
+// An implementation must be safe for concurrent use.
+type Cacher interface {
+ // Capacity returns cache capacity.
+ Capacity() int
+
+ // SetCapacity sets cache capacity.
+ SetCapacity(capacity int)
+
+ // Promote promotes the 'cache node'.
+ Promote(n *Node)
+
+ // Ban evicts the 'cache node' and prevent subsequent 'promote'.
+ Ban(n *Node)
+
+ // Evict evicts the 'cache node'.
+ Evict(n *Node)
+
+ // EvictNS evicts 'cache node' with the given namespace.
+ EvictNS(ns uint64)
+
+ // EvictAll evicts all 'cache node'.
+ EvictAll()
+
+ // Close closes the 'cache tree'
+ Close() error
+}
+
+// Value is a 'cacheable object'. It may implements util.Releaser, if
+// so the the Release method will be called once object is released.
+type Value interface{}
+
+// NamespaceGetter provides convenient wrapper for namespace.
+type NamespaceGetter struct {
+ Cache *Cache
+ NS uint64
+}
+
+// Get simply calls Cache.Get() method.
+func (g *NamespaceGetter) Get(key uint64, setFunc func() (size int, value Value)) *Handle {
+ return g.Cache.Get(g.NS, key, setFunc)
+}
+
+// The hash tables implementation is based on:
+// "Dynamic-Sized Nonblocking Hash Tables", by Yujie Liu,
+// Kunlong Zhang, and Michael Spear.
+// ACM Symposium on Principles of Distributed Computing, Jul 2014.
+
+const (
+ mInitialSize = 1 << 4
+ mOverflowThreshold = 1 << 5
+ mOverflowGrowThreshold = 1 << 7
+)
+
+type mBucket struct {
+ mu sync.Mutex
+ node []*Node
+ frozen bool
+}
+
+func (b *mBucket) freeze() []*Node {
+ b.mu.Lock()
+ defer b.mu.Unlock()
+ if !b.frozen {
+ b.frozen = true
+ }
+ return b.node
+}
+
+func (b *mBucket) get(r *Cache, h *mNode, hash uint32, ns, key uint64, noset bool) (done, added bool, n *Node) {
+ b.mu.Lock()
+
+ if b.frozen {
+ b.mu.Unlock()
+ return
+ }
+
+ // Scan the node.
+ for _, n := range b.node {
+ if n.hash == hash && n.ns == ns && n.key == key {
+ atomic.AddInt32(&n.ref, 1)
+ b.mu.Unlock()
+ return true, false, n
+ }
+ }
+
+ // Get only.
+ if noset {
+ b.mu.Unlock()
+ return true, false, nil
+ }
+
+ // Create node.
+ n = &Node{
+ r: r,
+ hash: hash,
+ ns: ns,
+ key: key,
+ ref: 1,
+ }
+ // Add node to bucket.
+ b.node = append(b.node, n)
+ bLen := len(b.node)
+ b.mu.Unlock()
+
+ // Update counter.
+ grow := atomic.AddInt32(&r.nodes, 1) >= h.growThreshold
+ if bLen > mOverflowThreshold {
+ grow = grow || atomic.AddInt32(&h.overflow, 1) >= mOverflowGrowThreshold
+ }
+
+ // Grow.
+ if grow && atomic.CompareAndSwapInt32(&h.resizeInProgess, 0, 1) {
+ nhLen := len(h.buckets) << 1
+ nh := &mNode{
+ buckets: make([]unsafe.Pointer, nhLen),
+ mask: uint32(nhLen) - 1,
+ pred: unsafe.Pointer(h),
+ growThreshold: int32(nhLen * mOverflowThreshold),
+ shrinkThreshold: int32(nhLen >> 1),
+ }
+ ok := atomic.CompareAndSwapPointer(&r.mHead, unsafe.Pointer(h), unsafe.Pointer(nh))
+ if !ok {
+ panic("BUG: failed swapping head")
+ }
+ go nh.initBuckets()
+ }
+
+ return true, true, n
+}
+
+func (b *mBucket) delete(r *Cache, h *mNode, hash uint32, ns, key uint64) (done, deleted bool) {
+ b.mu.Lock()
+
+ if b.frozen {
+ b.mu.Unlock()
+ return
+ }
+
+ // Scan the node.
+ var (
+ n *Node
+ bLen int
+ )
+ for i := range b.node {
+ n = b.node[i]
+ if n.ns == ns && n.key == key {
+ if atomic.LoadInt32(&n.ref) == 0 {
+ deleted = true
+
+ // Call releaser.
+ if n.value != nil {
+ if r, ok := n.value.(util.Releaser); ok {
+ r.Release()
+ }
+ n.value = nil
+ }
+
+ // Remove node from bucket.
+ b.node = append(b.node[:i], b.node[i+1:]...)
+ bLen = len(b.node)
+ }
+ break
+ }
+ }
+ b.mu.Unlock()
+
+ if deleted {
+ // Call OnDel.
+ for _, f := range n.onDel {
+ f()
+ }
+
+ // Update counter.
+ atomic.AddInt32(&r.size, int32(n.size)*-1)
+ shrink := atomic.AddInt32(&r.nodes, -1) < h.shrinkThreshold
+ if bLen >= mOverflowThreshold {
+ atomic.AddInt32(&h.overflow, -1)
+ }
+
+ // Shrink.
+ if shrink && len(h.buckets) > mInitialSize && atomic.CompareAndSwapInt32(&h.resizeInProgess, 0, 1) {
+ nhLen := len(h.buckets) >> 1
+ nh := &mNode{
+ buckets: make([]unsafe.Pointer, nhLen),
+ mask: uint32(nhLen) - 1,
+ pred: unsafe.Pointer(h),
+ growThreshold: int32(nhLen * mOverflowThreshold),
+ shrinkThreshold: int32(nhLen >> 1),
+ }
+ ok := atomic.CompareAndSwapPointer(&r.mHead, unsafe.Pointer(h), unsafe.Pointer(nh))
+ if !ok {
+ panic("BUG: failed swapping head")
+ }
+ go nh.initBuckets()
+ }
+ }
+
+ return true, deleted
+}
+
+type mNode struct {
+ buckets []unsafe.Pointer // []*mBucket
+ mask uint32
+ pred unsafe.Pointer // *mNode
+ resizeInProgess int32
+
+ overflow int32
+ growThreshold int32
+ shrinkThreshold int32
+}
+
+func (n *mNode) initBucket(i uint32) *mBucket {
+ if b := (*mBucket)(atomic.LoadPointer(&n.buckets[i])); b != nil {
+ return b
+ }
+
+ p := (*mNode)(atomic.LoadPointer(&n.pred))
+ if p != nil {
+ var node []*Node
+ if n.mask > p.mask {
+ // Grow.
+ pb := (*mBucket)(atomic.LoadPointer(&p.buckets[i&p.mask]))
+ if pb == nil {
+ pb = p.initBucket(i & p.mask)
+ }
+ m := pb.freeze()
+ // Split nodes.
+ for _, x := range m {
+ if x.hash&n.mask == i {
+ node = append(node, x)
+ }
+ }
+ } else {
+ // Shrink.
+ pb0 := (*mBucket)(atomic.LoadPointer(&p.buckets[i]))
+ if pb0 == nil {
+ pb0 = p.initBucket(i)
+ }
+ pb1 := (*mBucket)(atomic.LoadPointer(&p.buckets[i+uint32(len(n.buckets))]))
+ if pb1 == nil {
+ pb1 = p.initBucket(i + uint32(len(n.buckets)))
+ }
+ m0 := pb0.freeze()
+ m1 := pb1.freeze()
+ // Merge nodes.
+ node = make([]*Node, 0, len(m0)+len(m1))
+ node = append(node, m0...)
+ node = append(node, m1...)
+ }
+ b := &mBucket{node: node}
+ if atomic.CompareAndSwapPointer(&n.buckets[i], nil, unsafe.Pointer(b)) {
+ if len(node) > mOverflowThreshold {
+ atomic.AddInt32(&n.overflow, int32(len(node)-mOverflowThreshold))
+ }
+ return b
+ }
+ }
+
+ return (*mBucket)(atomic.LoadPointer(&n.buckets[i]))
+}
+
+func (n *mNode) initBuckets() {
+ for i := range n.buckets {
+ n.initBucket(uint32(i))
+ }
+ atomic.StorePointer(&n.pred, nil)
+}
+
+// Cache is a 'cache map'.
+type Cache struct {
+ mu sync.RWMutex
+ mHead unsafe.Pointer // *mNode
+ nodes int32
+ size int32
+ cacher Cacher
+ closed bool
+}
+
+// NewCache creates a new 'cache map'. The cacher is optional and
+// may be nil.
+func NewCache(cacher Cacher) *Cache {
+ h := &mNode{
+ buckets: make([]unsafe.Pointer, mInitialSize),
+ mask: mInitialSize - 1,
+ growThreshold: int32(mInitialSize * mOverflowThreshold),
+ shrinkThreshold: 0,
+ }
+ for i := range h.buckets {
+ h.buckets[i] = unsafe.Pointer(&mBucket{})
+ }
+ r := &Cache{
+ mHead: unsafe.Pointer(h),
+ cacher: cacher,
+ }
+ return r
+}
+
+func (r *Cache) getBucket(hash uint32) (*mNode, *mBucket) {
+ h := (*mNode)(atomic.LoadPointer(&r.mHead))
+ i := hash & h.mask
+ b := (*mBucket)(atomic.LoadPointer(&h.buckets[i]))
+ if b == nil {
+ b = h.initBucket(i)
+ }
+ return h, b
+}
+
+func (r *Cache) delete(n *Node) bool {
+ for {
+ h, b := r.getBucket(n.hash)
+ done, deleted := b.delete(r, h, n.hash, n.ns, n.key)
+ if done {
+ return deleted
+ }
+ }
+ return false
+}
+
+// Nodes returns number of 'cache node' in the map.
+func (r *Cache) Nodes() int {
+ return int(atomic.LoadInt32(&r.nodes))
+}
+
+// Size returns sums of 'cache node' size in the map.
+func (r *Cache) Size() int {
+ return int(atomic.LoadInt32(&r.size))
+}
+
+// Capacity returns cache capacity.
+func (r *Cache) Capacity() int {
+ if r.cacher == nil {
+ return 0
+ }
+ return r.cacher.Capacity()
+}
+
+// SetCapacity sets cache capacity.
+func (r *Cache) SetCapacity(capacity int) {
+ if r.cacher != nil {
+ r.cacher.SetCapacity(capacity)
+ }
+}
+
+// Get gets 'cache node' with the given namespace and key.
+// If cache node is not found and setFunc is not nil, Get will atomically creates
+// the 'cache node' by calling setFunc. Otherwise Get will returns nil.
+//
+// The returned 'cache handle' should be released after use by calling Release
+// method.
+func (r *Cache) Get(ns, key uint64, setFunc func() (size int, value Value)) *Handle {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+ if r.closed {
+ return nil
+ }
+
+ hash := murmur32(ns, key, 0xf00)
+ for {
+ h, b := r.getBucket(hash)
+ done, _, n := b.get(r, h, hash, ns, key, setFunc == nil)
+ if done {
+ if n != nil {
+ n.mu.Lock()
+ if n.value == nil {
+ if setFunc == nil {
+ n.mu.Unlock()
+ n.unref()
+ return nil
+ }
+
+ n.size, n.value = setFunc()
+ if n.value == nil {
+ n.size = 0
+ n.mu.Unlock()
+ n.unref()
+ return nil
+ }
+ atomic.AddInt32(&r.size, int32(n.size))
+ }
+ n.mu.Unlock()
+ if r.cacher != nil {
+ r.cacher.Promote(n)
+ }
+ return &Handle{unsafe.Pointer(n)}
+ }
+
+ break
+ }
+ }
+ return nil
+}
+
+// Delete removes and ban 'cache node' with the given namespace and key.
+// A banned 'cache node' will never inserted into the 'cache tree'. Ban
+// only attributed to the particular 'cache node', so when a 'cache node'
+// is recreated it will not be banned.
+//
+// If onDel is not nil, then it will be executed if such 'cache node'
+// doesn't exist or once the 'cache node' is released.
+//
+// Delete return true is such 'cache node' exist.
+func (r *Cache) Delete(ns, key uint64, onDel func()) bool {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+ if r.closed {
+ return false
+ }
+
+ hash := murmur32(ns, key, 0xf00)
+ for {
+ h, b := r.getBucket(hash)
+ done, _, n := b.get(r, h, hash, ns, key, true)
+ if done {
+ if n != nil {
+ if onDel != nil {
+ n.mu.Lock()
+ n.onDel = append(n.onDel, onDel)
+ n.mu.Unlock()
+ }
+ if r.cacher != nil {
+ r.cacher.Ban(n)
+ }
+ n.unref()
+ return true
+ }
+
+ break
+ }
+ }
+
+ if onDel != nil {
+ onDel()
+ }
+
+ return false
+}
+
+// Evict evicts 'cache node' with the given namespace and key. This will
+// simply call Cacher.Evict.
+//
+// Evict return true is such 'cache node' exist.
+func (r *Cache) Evict(ns, key uint64) bool {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+ if r.closed {
+ return false
+ }
+
+ hash := murmur32(ns, key, 0xf00)
+ for {
+ h, b := r.getBucket(hash)
+ done, _, n := b.get(r, h, hash, ns, key, true)
+ if done {
+ if n != nil {
+ if r.cacher != nil {
+ r.cacher.Evict(n)
+ }
+ n.unref()
+ return true
+ }
+
+ break
+ }
+ }
+
+ return false
+}
+
+// EvictNS evicts 'cache node' with the given namespace. This will
+// simply call Cacher.EvictNS.
+func (r *Cache) EvictNS(ns uint64) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+ if r.closed {
+ return
+ }
+
+ if r.cacher != nil {
+ r.cacher.EvictNS(ns)
+ }
+}
+
+// EvictAll evicts all 'cache node'. This will simply call Cacher.EvictAll.
+func (r *Cache) EvictAll() {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+ if r.closed {
+ return
+ }
+
+ if r.cacher != nil {
+ r.cacher.EvictAll()
+ }
+}
+
+// Close closes the 'cache map' and forcefully releases all 'cache node'.
+func (r *Cache) Close() error {
+ r.mu.Lock()
+ if !r.closed {
+ r.closed = true
+
+ h := (*mNode)(r.mHead)
+ h.initBuckets()
+
+ for i := range h.buckets {
+ b := (*mBucket)(h.buckets[i])
+ for _, n := range b.node {
+ // Call releaser.
+ if n.value != nil {
+ if r, ok := n.value.(util.Releaser); ok {
+ r.Release()
+ }
+ n.value = nil
+ }
+
+ // Call OnDel.
+ for _, f := range n.onDel {
+ f()
+ }
+ n.onDel = nil
+ }
+ }
+ }
+ r.mu.Unlock()
+
+ // Avoid deadlock.
+ if r.cacher != nil {
+ if err := r.cacher.Close(); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// CloseWeak closes the 'cache map' and evict all 'cache node' from cacher, but
+// unlike Close it doesn't forcefully releases 'cache node'.
+func (r *Cache) CloseWeak() error {
+ r.mu.Lock()
+ if !r.closed {
+ r.closed = true
+ }
+ r.mu.Unlock()
+
+ // Avoid deadlock.
+ if r.cacher != nil {
+ r.cacher.EvictAll()
+ if err := r.cacher.Close(); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+// Node is a 'cache node'.
+type Node struct {
+ r *Cache
+
+ hash uint32
+ ns, key uint64
+
+ mu sync.Mutex
+ size int
+ value Value
+
+ ref int32
+ onDel []func()
+
+ CacheData unsafe.Pointer
+}
+
+// NS returns this 'cache node' namespace.
+func (n *Node) NS() uint64 {
+ return n.ns
+}
+
+// Key returns this 'cache node' key.
+func (n *Node) Key() uint64 {
+ return n.key
+}
+
+// Size returns this 'cache node' size.
+func (n *Node) Size() int {
+ return n.size
+}
+
+// Value returns this 'cache node' value.
+func (n *Node) Value() Value {
+ return n.value
+}
+
+// Ref returns this 'cache node' ref counter.
+func (n *Node) Ref() int32 {
+ return atomic.LoadInt32(&n.ref)
+}
+
+// GetHandle returns an handle for this 'cache node'.
+func (n *Node) GetHandle() *Handle {
+ if atomic.AddInt32(&n.ref, 1) <= 1 {
+ panic("BUG: Node.GetHandle on zero ref")
+ }
+ return &Handle{unsafe.Pointer(n)}
+}
+
+func (n *Node) unref() {
+ if atomic.AddInt32(&n.ref, -1) == 0 {
+ n.r.delete(n)
+ }
+}
+
+func (n *Node) unrefLocked() {
+ if atomic.AddInt32(&n.ref, -1) == 0 {
+ n.r.mu.RLock()
+ if !n.r.closed {
+ n.r.delete(n)
+ }
+ n.r.mu.RUnlock()
+ }
+}
+
+// Handle is a 'cache handle' of a 'cache node'.
+type Handle struct {
+ n unsafe.Pointer // *Node
+}
+
+// Value returns the value of the 'cache node'.
+func (h *Handle) Value() Value {
+ n := (*Node)(atomic.LoadPointer(&h.n))
+ if n != nil {
+ return n.value
+ }
+ return nil
+}
+
+// Release releases this 'cache handle'.
+// It is safe to call release multiple times.
+func (h *Handle) Release() {
+ nPtr := atomic.LoadPointer(&h.n)
+ if nPtr != nil && atomic.CompareAndSwapPointer(&h.n, nPtr, nil) {
+ n := (*Node)(nPtr)
+ n.unrefLocked()
+ }
+}
+
+func murmur32(ns, key uint64, seed uint32) uint32 {
+ const (
+ m = uint32(0x5bd1e995)
+ r = 24
+ )
+
+ k1 := uint32(ns >> 32)
+ k2 := uint32(ns)
+ k3 := uint32(key >> 32)
+ k4 := uint32(key)
+
+ k1 *= m
+ k1 ^= k1 >> r
+ k1 *= m
+
+ k2 *= m
+ k2 ^= k2 >> r
+ k2 *= m
+
+ k3 *= m
+ k3 ^= k3 >> r
+ k3 *= m
+
+ k4 *= m
+ k4 ^= k4 >> r
+ k4 *= m
+
+ h := seed
+
+ h *= m
+ h ^= k1
+ h *= m
+ h ^= k2
+ h *= m
+ h ^= k3
+ h *= m
+ h ^= k4
+
+ h ^= h >> 13
+ h *= m
+ h ^= h >> 15
+
+ return h
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go b/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go
new file mode 100644
index 000000000..d9a84cde1
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/cache/lru.go
@@ -0,0 +1,195 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package cache
+
+import (
+ "sync"
+ "unsafe"
+)
+
+type lruNode struct {
+ n *Node
+ h *Handle
+ ban bool
+
+ next, prev *lruNode
+}
+
+func (n *lruNode) insert(at *lruNode) {
+ x := at.next
+ at.next = n
+ n.prev = at
+ n.next = x
+ x.prev = n
+}
+
+func (n *lruNode) remove() {
+ if n.prev != nil {
+ n.prev.next = n.next
+ n.next.prev = n.prev
+ n.prev = nil
+ n.next = nil
+ } else {
+ panic("BUG: removing removed node")
+ }
+}
+
+type lru struct {
+ mu sync.Mutex
+ capacity int
+ used int
+ recent lruNode
+}
+
+func (r *lru) reset() {
+ r.recent.next = &r.recent
+ r.recent.prev = &r.recent
+ r.used = 0
+}
+
+func (r *lru) Capacity() int {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+ return r.capacity
+}
+
+func (r *lru) SetCapacity(capacity int) {
+ var evicted []*lruNode
+
+ r.mu.Lock()
+ r.capacity = capacity
+ for r.used > r.capacity {
+ rn := r.recent.prev
+ if rn == nil {
+ panic("BUG: invalid LRU used or capacity counter")
+ }
+ rn.remove()
+ rn.n.CacheData = nil
+ r.used -= rn.n.Size()
+ evicted = append(evicted, rn)
+ }
+ r.mu.Unlock()
+
+ for _, rn := range evicted {
+ rn.h.Release()
+ }
+}
+
+func (r *lru) Promote(n *Node) {
+ var evicted []*lruNode
+
+ r.mu.Lock()
+ if n.CacheData == nil {
+ if n.Size() <= r.capacity {
+ rn := &lruNode{n: n, h: n.GetHandle()}
+ rn.insert(&r.recent)
+ n.CacheData = unsafe.Pointer(rn)
+ r.used += n.Size()
+
+ for r.used > r.capacity {
+ rn := r.recent.prev
+ if rn == nil {
+ panic("BUG: invalid LRU used or capacity counter")
+ }
+ rn.remove()
+ rn.n.CacheData = nil
+ r.used -= rn.n.Size()
+ evicted = append(evicted, rn)
+ }
+ }
+ } else {
+ rn := (*lruNode)(n.CacheData)
+ if !rn.ban {
+ rn.remove()
+ rn.insert(&r.recent)
+ }
+ }
+ r.mu.Unlock()
+
+ for _, rn := range evicted {
+ rn.h.Release()
+ }
+}
+
+func (r *lru) Ban(n *Node) {
+ r.mu.Lock()
+ if n.CacheData == nil {
+ n.CacheData = unsafe.Pointer(&lruNode{n: n, ban: true})
+ } else {
+ rn := (*lruNode)(n.CacheData)
+ if !rn.ban {
+ rn.remove()
+ rn.ban = true
+ r.used -= rn.n.Size()
+ r.mu.Unlock()
+
+ rn.h.Release()
+ rn.h = nil
+ return
+ }
+ }
+ r.mu.Unlock()
+}
+
+func (r *lru) Evict(n *Node) {
+ r.mu.Lock()
+ rn := (*lruNode)(n.CacheData)
+ if rn == nil || rn.ban {
+ r.mu.Unlock()
+ return
+ }
+ n.CacheData = nil
+ r.mu.Unlock()
+
+ rn.h.Release()
+}
+
+func (r *lru) EvictNS(ns uint64) {
+ var evicted []*lruNode
+
+ r.mu.Lock()
+ for e := r.recent.prev; e != &r.recent; {
+ rn := e
+ e = e.prev
+ if rn.n.NS() == ns {
+ rn.remove()
+ rn.n.CacheData = nil
+ r.used -= rn.n.Size()
+ evicted = append(evicted, rn)
+ }
+ }
+ r.mu.Unlock()
+
+ for _, rn := range evicted {
+ rn.h.Release()
+ }
+}
+
+func (r *lru) EvictAll() {
+ r.mu.Lock()
+ back := r.recent.prev
+ for rn := back; rn != &r.recent; rn = rn.prev {
+ rn.n.CacheData = nil
+ }
+ r.reset()
+ r.mu.Unlock()
+
+ for rn := back; rn != &r.recent; rn = rn.prev {
+ rn.h.Release()
+ }
+}
+
+func (r *lru) Close() error {
+ return nil
+}
+
+// NewLRU create a new LRU-cache.
+func NewLRU(capacity int) Cacher {
+ r := &lru{capacity: capacity}
+ r.reset()
+ return r
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go
new file mode 100644
index 000000000..448402b82
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/comparer.go
@@ -0,0 +1,67 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+)
+
+type iComparer struct {
+ ucmp comparer.Comparer
+}
+
+func (icmp *iComparer) uName() string {
+ return icmp.ucmp.Name()
+}
+
+func (icmp *iComparer) uCompare(a, b []byte) int {
+ return icmp.ucmp.Compare(a, b)
+}
+
+func (icmp *iComparer) uSeparator(dst, a, b []byte) []byte {
+ return icmp.ucmp.Separator(dst, a, b)
+}
+
+func (icmp *iComparer) uSuccessor(dst, b []byte) []byte {
+ return icmp.ucmp.Successor(dst, b)
+}
+
+func (icmp *iComparer) Name() string {
+ return icmp.uName()
+}
+
+func (icmp *iComparer) Compare(a, b []byte) int {
+ x := icmp.uCompare(internalKey(a).ukey(), internalKey(b).ukey())
+ if x == 0 {
+ if m, n := internalKey(a).num(), internalKey(b).num(); m > n {
+ return -1
+ } else if m < n {
+ return 1
+ }
+ }
+ return x
+}
+
+func (icmp *iComparer) Separator(dst, a, b []byte) []byte {
+ ua, ub := internalKey(a).ukey(), internalKey(b).ukey()
+ dst = icmp.uSeparator(dst, ua, ub)
+ if dst != nil && len(dst) < len(ua) && icmp.uCompare(ua, dst) < 0 {
+ // Append earliest possible number.
+ return append(dst, keyMaxNumBytes...)
+ }
+ return nil
+}
+
+func (icmp *iComparer) Successor(dst, b []byte) []byte {
+ ub := internalKey(b).ukey()
+ dst = icmp.uSuccessor(dst, ub)
+ if dst != nil && len(dst) < len(ub) && icmp.uCompare(ub, dst) < 0 {
+ // Append earliest possible number.
+ return append(dst, keyMaxNumBytes...)
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go
new file mode 100644
index 000000000..14dddf88d
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/bytes_comparer.go
@@ -0,0 +1,51 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package comparer
+
+import "bytes"
+
+type bytesComparer struct{}
+
+func (bytesComparer) Compare(a, b []byte) int {
+ return bytes.Compare(a, b)
+}
+
+func (bytesComparer) Name() string {
+ return "leveldb.BytewiseComparator"
+}
+
+func (bytesComparer) Separator(dst, a, b []byte) []byte {
+ i, n := 0, len(a)
+ if n > len(b) {
+ n = len(b)
+ }
+ for ; i < n && a[i] == b[i]; i++ {
+ }
+ if i >= n {
+ // Do not shorten if one string is a prefix of the other
+ } else if c := a[i]; c < 0xff && c+1 < b[i] {
+ dst = append(dst, a[:i+1]...)
+ dst[i]++
+ return dst
+ }
+ return nil
+}
+
+func (bytesComparer) Successor(dst, b []byte) []byte {
+ for i, c := range b {
+ if c != 0xff {
+ dst = append(dst, b[:i+1]...)
+ dst[i]++
+ return dst
+ }
+ }
+ return nil
+}
+
+// DefaultComparer are default implementation of the Comparer interface.
+// It uses the natural ordering, consistent with bytes.Compare.
+var DefaultComparer = bytesComparer{}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go
new file mode 100644
index 000000000..14a28f16f
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/comparer/comparer.go
@@ -0,0 +1,57 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package comparer provides interface and implementation for ordering
+// sets of data.
+package comparer
+
+// BasicComparer is the interface that wraps the basic Compare method.
+type BasicComparer interface {
+ // Compare returns -1, 0, or +1 depending on whether a is 'less than',
+ // 'equal to' or 'greater than' b. The two arguments can only be 'equal'
+ // if their contents are exactly equal. Furthermore, the empty slice
+ // must be 'less than' any non-empty slice.
+ Compare(a, b []byte) int
+}
+
+// Comparer defines a total ordering over the space of []byte keys: a 'less
+// than' relationship.
+type Comparer interface {
+ BasicComparer
+
+ // Name returns name of the comparer.
+ //
+ // The Level-DB on-disk format stores the comparer name, and opening a
+ // database with a different comparer from the one it was created with
+ // will result in an error.
+ //
+ // An implementation to a new name whenever the comparer implementation
+ // changes in a way that will cause the relative ordering of any two keys
+ // to change.
+ //
+ // Names starting with "leveldb." are reserved and should not be used
+ // by any users of this package.
+ Name() string
+
+ // Bellow are advanced functions used used to reduce the space requirements
+ // for internal data structures such as index blocks.
+
+ // Separator appends a sequence of bytes x to dst such that a <= x && x < b,
+ // where 'less than' is consistent with Compare. An implementation should
+ // return nil if x equal to a.
+ //
+ // Either contents of a or b should not by any means modified. Doing so
+ // may cause corruption on the internal state.
+ Separator(dst, a, b []byte) []byte
+
+ // Successor appends a sequence of bytes x to dst such that x >= b, where
+ // 'less than' is consistent with Compare. An implementation should return
+ // nil if x equal to b.
+ //
+ // Contents of b should not by any means modified. Doing so may cause
+ // corruption on the internal state.
+ Successor(dst, b []byte) []byte
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db.go b/vendor/github.com/syndtr/goleveldb/leveldb/db.go
new file mode 100644
index 000000000..a02cb2c50
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db.go
@@ -0,0 +1,1091 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "container/list"
+ "fmt"
+ "io"
+ "os"
+ "runtime"
+ "strings"
+ "sync"
+ "sync/atomic"
+ "time"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/journal"
+ "github.com/syndtr/goleveldb/leveldb/memdb"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/table"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// DB is a LevelDB database.
+type DB struct {
+ // Need 64-bit alignment.
+ seq uint64
+
+ // Session.
+ s *session
+
+ // MemDB.
+ memMu sync.RWMutex
+ memPool chan *memdb.DB
+ mem, frozenMem *memDB
+ journal *journal.Writer
+ journalWriter storage.Writer
+ journalFd storage.FileDesc
+ frozenJournalFd storage.FileDesc
+ frozenSeq uint64
+
+ // Snapshot.
+ snapsMu sync.Mutex
+ snapsList *list.List
+
+ // Stats.
+ aliveSnaps, aliveIters int32
+
+ // Write.
+ batchPool sync.Pool
+ writeMergeC chan writeMerge
+ writeMergedC chan bool
+ writeLockC chan struct{}
+ writeAckC chan error
+ writeDelay time.Duration
+ writeDelayN int
+ tr *Transaction
+
+ // Compaction.
+ compCommitLk sync.Mutex
+ tcompCmdC chan cCmd
+ tcompPauseC chan chan<- struct{}
+ mcompCmdC chan cCmd
+ compErrC chan error
+ compPerErrC chan error
+ compErrSetC chan error
+ compWriteLocking bool
+ compStats cStats
+ memdbMaxLevel int // For testing.
+
+ // Close.
+ closeW sync.WaitGroup
+ closeC chan struct{}
+ closed uint32
+ closer io.Closer
+}
+
+func openDB(s *session) (*DB, error) {
+ s.log("db@open opening")
+ start := time.Now()
+ db := &DB{
+ s: s,
+ // Initial sequence
+ seq: s.stSeqNum,
+ // MemDB
+ memPool: make(chan *memdb.DB, 1),
+ // Snapshot
+ snapsList: list.New(),
+ // Write
+ batchPool: sync.Pool{New: newBatch},
+ writeMergeC: make(chan writeMerge),
+ writeMergedC: make(chan bool),
+ writeLockC: make(chan struct{}, 1),
+ writeAckC: make(chan error),
+ // Compaction
+ tcompCmdC: make(chan cCmd),
+ tcompPauseC: make(chan chan<- struct{}),
+ mcompCmdC: make(chan cCmd),
+ compErrC: make(chan error),
+ compPerErrC: make(chan error),
+ compErrSetC: make(chan error),
+ // Close
+ closeC: make(chan struct{}),
+ }
+
+ // Read-only mode.
+ readOnly := s.o.GetReadOnly()
+
+ if readOnly {
+ // Recover journals (read-only mode).
+ if err := db.recoverJournalRO(); err != nil {
+ return nil, err
+ }
+ } else {
+ // Recover journals.
+ if err := db.recoverJournal(); err != nil {
+ return nil, err
+ }
+
+ // Remove any obsolete files.
+ if err := db.checkAndCleanFiles(); err != nil {
+ // Close journal.
+ if db.journal != nil {
+ db.journal.Close()
+ db.journalWriter.Close()
+ }
+ return nil, err
+ }
+
+ }
+
+ // Doesn't need to be included in the wait group.
+ go db.compactionError()
+ go db.mpoolDrain()
+
+ if readOnly {
+ db.SetReadOnly()
+ } else {
+ db.closeW.Add(2)
+ go db.tCompaction()
+ go db.mCompaction()
+ // go db.jWriter()
+ }
+
+ s.logf("db@open done T·%v", time.Since(start))
+
+ runtime.SetFinalizer(db, (*DB).Close)
+ return db, nil
+}
+
+// Open opens or creates a DB for the given storage.
+// The DB will be created if not exist, unless ErrorIfMissing is true.
+// Also, if ErrorIfExist is true and the DB exist Open will returns
+// os.ErrExist error.
+//
+// Open will return an error with type of ErrCorrupted if corruption
+// detected in the DB. Use errors.IsCorrupted to test whether an error is
+// due to corruption. Corrupted DB can be recovered with Recover function.
+//
+// The returned DB instance is safe for concurrent use.
+// The DB must be closed after use, by calling Close method.
+func Open(stor storage.Storage, o *opt.Options) (db *DB, err error) {
+ s, err := newSession(stor, o)
+ if err != nil {
+ return
+ }
+ defer func() {
+ if err != nil {
+ s.close()
+ s.release()
+ }
+ }()
+
+ err = s.recover()
+ if err != nil {
+ if !os.IsNotExist(err) || s.o.GetErrorIfMissing() {
+ return
+ }
+ err = s.create()
+ if err != nil {
+ return
+ }
+ } else if s.o.GetErrorIfExist() {
+ err = os.ErrExist
+ return
+ }
+
+ return openDB(s)
+}
+
+// OpenFile opens or creates a DB for the given path.
+// The DB will be created if not exist, unless ErrorIfMissing is true.
+// Also, if ErrorIfExist is true and the DB exist OpenFile will returns
+// os.ErrExist error.
+//
+// OpenFile uses standard file-system backed storage implementation as
+// described in the leveldb/storage package.
+//
+// OpenFile will return an error with type of ErrCorrupted if corruption
+// detected in the DB. Use errors.IsCorrupted to test whether an error is
+// due to corruption. Corrupted DB can be recovered with Recover function.
+//
+// The returned DB instance is safe for concurrent use.
+// The DB must be closed after use, by calling Close method.
+func OpenFile(path string, o *opt.Options) (db *DB, err error) {
+ stor, err := storage.OpenFile(path, o.GetReadOnly())
+ if err != nil {
+ return
+ }
+ db, err = Open(stor, o)
+ if err != nil {
+ stor.Close()
+ } else {
+ db.closer = stor
+ }
+ return
+}
+
+// Recover recovers and opens a DB with missing or corrupted manifest files
+// for the given storage. It will ignore any manifest files, valid or not.
+// The DB must already exist or it will returns an error.
+// Also, Recover will ignore ErrorIfMissing and ErrorIfExist options.
+//
+// The returned DB instance is safe for concurrent use.
+// The DB must be closed after use, by calling Close method.
+func Recover(stor storage.Storage, o *opt.Options) (db *DB, err error) {
+ s, err := newSession(stor, o)
+ if err != nil {
+ return
+ }
+ defer func() {
+ if err != nil {
+ s.close()
+ s.release()
+ }
+ }()
+
+ err = recoverTable(s, o)
+ if err != nil {
+ return
+ }
+ return openDB(s)
+}
+
+// RecoverFile recovers and opens a DB with missing or corrupted manifest files
+// for the given path. It will ignore any manifest files, valid or not.
+// The DB must already exist or it will returns an error.
+// Also, Recover will ignore ErrorIfMissing and ErrorIfExist options.
+//
+// RecoverFile uses standard file-system backed storage implementation as described
+// in the leveldb/storage package.
+//
+// The returned DB instance is safe for concurrent use.
+// The DB must be closed after use, by calling Close method.
+func RecoverFile(path string, o *opt.Options) (db *DB, err error) {
+ stor, err := storage.OpenFile(path, false)
+ if err != nil {
+ return
+ }
+ db, err = Recover(stor, o)
+ if err != nil {
+ stor.Close()
+ } else {
+ db.closer = stor
+ }
+ return
+}
+
+func recoverTable(s *session, o *opt.Options) error {
+ o = dupOptions(o)
+ // Mask StrictReader, lets StrictRecovery doing its job.
+ o.Strict &= ^opt.StrictReader
+
+ // Get all tables and sort it by file number.
+ fds, err := s.stor.List(storage.TypeTable)
+ if err != nil {
+ return err
+ }
+ sortFds(fds)
+
+ var (
+ maxSeq uint64
+ recoveredKey, goodKey, corruptedKey, corruptedBlock, droppedTable int
+
+ // We will drop corrupted table.
+ strict = o.GetStrict(opt.StrictRecovery)
+ noSync = o.GetNoSync()
+
+ rec = &sessionRecord{}
+ bpool = util.NewBufferPool(o.GetBlockSize() + 5)
+ )
+ buildTable := func(iter iterator.Iterator) (tmpFd storage.FileDesc, size int64, err error) {
+ tmpFd = s.newTemp()
+ writer, err := s.stor.Create(tmpFd)
+ if err != nil {
+ return
+ }
+ defer func() {
+ writer.Close()
+ if err != nil {
+ s.stor.Remove(tmpFd)
+ tmpFd = storage.FileDesc{}
+ }
+ }()
+
+ // Copy entries.
+ tw := table.NewWriter(writer, o)
+ for iter.Next() {
+ key := iter.Key()
+ if validInternalKey(key) {
+ err = tw.Append(key, iter.Value())
+ if err != nil {
+ return
+ }
+ }
+ }
+ err = iter.Error()
+ if err != nil {
+ return
+ }
+ err = tw.Close()
+ if err != nil {
+ return
+ }
+ if !noSync {
+ err = writer.Sync()
+ if err != nil {
+ return
+ }
+ }
+ size = int64(tw.BytesLen())
+ return
+ }
+ recoverTable := func(fd storage.FileDesc) error {
+ s.logf("table@recovery recovering @%d", fd.Num)
+ reader, err := s.stor.Open(fd)
+ if err != nil {
+ return err
+ }
+ var closed bool
+ defer func() {
+ if !closed {
+ reader.Close()
+ }
+ }()
+
+ // Get file size.
+ size, err := reader.Seek(0, 2)
+ if err != nil {
+ return err
+ }
+
+ var (
+ tSeq uint64
+ tgoodKey, tcorruptedKey, tcorruptedBlock int
+ imin, imax []byte
+ )
+ tr, err := table.NewReader(reader, size, fd, nil, bpool, o)
+ if err != nil {
+ return err
+ }
+ iter := tr.NewIterator(nil, nil)
+ if itererr, ok := iter.(iterator.ErrorCallbackSetter); ok {
+ itererr.SetErrorCallback(func(err error) {
+ if errors.IsCorrupted(err) {
+ s.logf("table@recovery block corruption @%d %q", fd.Num, err)
+ tcorruptedBlock++
+ }
+ })
+ }
+
+ // Scan the table.
+ for iter.Next() {
+ key := iter.Key()
+ _, seq, _, kerr := parseInternalKey(key)
+ if kerr != nil {
+ tcorruptedKey++
+ continue
+ }
+ tgoodKey++
+ if seq > tSeq {
+ tSeq = seq
+ }
+ if imin == nil {
+ imin = append([]byte{}, key...)
+ }
+ imax = append(imax[:0], key...)
+ }
+ if err := iter.Error(); err != nil {
+ iter.Release()
+ return err
+ }
+ iter.Release()
+
+ goodKey += tgoodKey
+ corruptedKey += tcorruptedKey
+ corruptedBlock += tcorruptedBlock
+
+ if strict && (tcorruptedKey > 0 || tcorruptedBlock > 0) {
+ droppedTable++
+ s.logf("table@recovery dropped @%d Gk·%d Ck·%d Cb·%d S·%d Q·%d", fd.Num, tgoodKey, tcorruptedKey, tcorruptedBlock, size, tSeq)
+ return nil
+ }
+
+ if tgoodKey > 0 {
+ if tcorruptedKey > 0 || tcorruptedBlock > 0 {
+ // Rebuild the table.
+ s.logf("table@recovery rebuilding @%d", fd.Num)
+ iter := tr.NewIterator(nil, nil)
+ tmpFd, newSize, err := buildTable(iter)
+ iter.Release()
+ if err != nil {
+ return err
+ }
+ closed = true
+ reader.Close()
+ if err := s.stor.Rename(tmpFd, fd); err != nil {
+ return err
+ }
+ size = newSize
+ }
+ if tSeq > maxSeq {
+ maxSeq = tSeq
+ }
+ recoveredKey += tgoodKey
+ // Add table to level 0.
+ rec.addTable(0, fd.Num, size, imin, imax)
+ s.logf("table@recovery recovered @%d Gk·%d Ck·%d Cb·%d S·%d Q·%d", fd.Num, tgoodKey, tcorruptedKey, tcorruptedBlock, size, tSeq)
+ } else {
+ droppedTable++
+ s.logf("table@recovery unrecoverable @%d Ck·%d Cb·%d S·%d", fd.Num, tcorruptedKey, tcorruptedBlock, size)
+ }
+
+ return nil
+ }
+
+ // Recover all tables.
+ if len(fds) > 0 {
+ s.logf("table@recovery F·%d", len(fds))
+
+ // Mark file number as used.
+ s.markFileNum(fds[len(fds)-1].Num)
+
+ for _, fd := range fds {
+ if err := recoverTable(fd); err != nil {
+ return err
+ }
+ }
+
+ s.logf("table@recovery recovered F·%d N·%d Gk·%d Ck·%d Q·%d", len(fds), recoveredKey, goodKey, corruptedKey, maxSeq)
+ }
+
+ // Set sequence number.
+ rec.setSeqNum(maxSeq)
+
+ // Create new manifest.
+ if err := s.create(); err != nil {
+ return err
+ }
+
+ // Commit.
+ return s.commit(rec)
+}
+
+func (db *DB) recoverJournal() error {
+ // Get all journals and sort it by file number.
+ rawFds, err := db.s.stor.List(storage.TypeJournal)
+ if err != nil {
+ return err
+ }
+ sortFds(rawFds)
+
+ // Journals that will be recovered.
+ var fds []storage.FileDesc
+ for _, fd := range rawFds {
+ if fd.Num >= db.s.stJournalNum || fd.Num == db.s.stPrevJournalNum {
+ fds = append(fds, fd)
+ }
+ }
+
+ var (
+ ofd storage.FileDesc // Obsolete file.
+ rec = &sessionRecord{}
+ )
+
+ // Recover journals.
+ if len(fds) > 0 {
+ db.logf("journal@recovery F·%d", len(fds))
+
+ // Mark file number as used.
+ db.s.markFileNum(fds[len(fds)-1].Num)
+
+ var (
+ // Options.
+ strict = db.s.o.GetStrict(opt.StrictJournal)
+ checksum = db.s.o.GetStrict(opt.StrictJournalChecksum)
+ writeBuffer = db.s.o.GetWriteBuffer()
+
+ jr *journal.Reader
+ mdb = memdb.New(db.s.icmp, writeBuffer)
+ buf = &util.Buffer{}
+ batchSeq uint64
+ batchLen int
+ )
+
+ for _, fd := range fds {
+ db.logf("journal@recovery recovering @%d", fd.Num)
+
+ fr, err := db.s.stor.Open(fd)
+ if err != nil {
+ return err
+ }
+
+ // Create or reset journal reader instance.
+ if jr == nil {
+ jr = journal.NewReader(fr, dropper{db.s, fd}, strict, checksum)
+ } else {
+ jr.Reset(fr, dropper{db.s, fd}, strict, checksum)
+ }
+
+ // Flush memdb and remove obsolete journal file.
+ if !ofd.Zero() {
+ if mdb.Len() > 0 {
+ if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil {
+ fr.Close()
+ return err
+ }
+ }
+
+ rec.setJournalNum(fd.Num)
+ rec.setSeqNum(db.seq)
+ if err := db.s.commit(rec); err != nil {
+ fr.Close()
+ return err
+ }
+ rec.resetAddedTables()
+
+ db.s.stor.Remove(ofd)
+ ofd = storage.FileDesc{}
+ }
+
+ // Replay journal to memdb.
+ mdb.Reset()
+ for {
+ r, err := jr.Next()
+ if err != nil {
+ if err == io.EOF {
+ break
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+
+ buf.Reset()
+ if _, err := buf.ReadFrom(r); err != nil {
+ if err == io.ErrUnexpectedEOF {
+ // This is error returned due to corruption, with strict == false.
+ continue
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+ batchSeq, batchLen, err = decodeBatchToMem(buf.Bytes(), db.seq, mdb)
+ if err != nil {
+ if !strict && errors.IsCorrupted(err) {
+ db.s.logf("journal error: %v (skipped)", err)
+ // We won't apply sequence number as it might be corrupted.
+ continue
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+
+ // Save sequence number.
+ db.seq = batchSeq + uint64(batchLen)
+
+ // Flush it if large enough.
+ if mdb.Size() >= writeBuffer {
+ if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil {
+ fr.Close()
+ return err
+ }
+
+ mdb.Reset()
+ }
+ }
+
+ fr.Close()
+ ofd = fd
+ }
+
+ // Flush the last memdb.
+ if mdb.Len() > 0 {
+ if _, err := db.s.flushMemdb(rec, mdb, 0); err != nil {
+ return err
+ }
+ }
+ }
+
+ // Create a new journal.
+ if _, err := db.newMem(0); err != nil {
+ return err
+ }
+
+ // Commit.
+ rec.setJournalNum(db.journalFd.Num)
+ rec.setSeqNum(db.seq)
+ if err := db.s.commit(rec); err != nil {
+ // Close journal on error.
+ if db.journal != nil {
+ db.journal.Close()
+ db.journalWriter.Close()
+ }
+ return err
+ }
+
+ // Remove the last obsolete journal file.
+ if !ofd.Zero() {
+ db.s.stor.Remove(ofd)
+ }
+
+ return nil
+}
+
+func (db *DB) recoverJournalRO() error {
+ // Get all journals and sort it by file number.
+ rawFds, err := db.s.stor.List(storage.TypeJournal)
+ if err != nil {
+ return err
+ }
+ sortFds(rawFds)
+
+ // Journals that will be recovered.
+ var fds []storage.FileDesc
+ for _, fd := range rawFds {
+ if fd.Num >= db.s.stJournalNum || fd.Num == db.s.stPrevJournalNum {
+ fds = append(fds, fd)
+ }
+ }
+
+ var (
+ // Options.
+ strict = db.s.o.GetStrict(opt.StrictJournal)
+ checksum = db.s.o.GetStrict(opt.StrictJournalChecksum)
+ writeBuffer = db.s.o.GetWriteBuffer()
+
+ mdb = memdb.New(db.s.icmp, writeBuffer)
+ )
+
+ // Recover journals.
+ if len(fds) > 0 {
+ db.logf("journal@recovery RO·Mode F·%d", len(fds))
+
+ var (
+ jr *journal.Reader
+ buf = &util.Buffer{}
+ batchSeq uint64
+ batchLen int
+ )
+
+ for _, fd := range fds {
+ db.logf("journal@recovery recovering @%d", fd.Num)
+
+ fr, err := db.s.stor.Open(fd)
+ if err != nil {
+ return err
+ }
+
+ // Create or reset journal reader instance.
+ if jr == nil {
+ jr = journal.NewReader(fr, dropper{db.s, fd}, strict, checksum)
+ } else {
+ jr.Reset(fr, dropper{db.s, fd}, strict, checksum)
+ }
+
+ // Replay journal to memdb.
+ for {
+ r, err := jr.Next()
+ if err != nil {
+ if err == io.EOF {
+ break
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+
+ buf.Reset()
+ if _, err := buf.ReadFrom(r); err != nil {
+ if err == io.ErrUnexpectedEOF {
+ // This is error returned due to corruption, with strict == false.
+ continue
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+ batchSeq, batchLen, err = decodeBatchToMem(buf.Bytes(), db.seq, mdb)
+ if err != nil {
+ if !strict && errors.IsCorrupted(err) {
+ db.s.logf("journal error: %v (skipped)", err)
+ // We won't apply sequence number as it might be corrupted.
+ continue
+ }
+
+ fr.Close()
+ return errors.SetFd(err, fd)
+ }
+
+ // Save sequence number.
+ db.seq = batchSeq + uint64(batchLen)
+ }
+
+ fr.Close()
+ }
+ }
+
+ // Set memDB.
+ db.mem = &memDB{db: db, DB: mdb, ref: 1}
+
+ return nil
+}
+
+func memGet(mdb *memdb.DB, ikey internalKey, icmp *iComparer) (ok bool, mv []byte, err error) {
+ mk, mv, err := mdb.Find(ikey)
+ if err == nil {
+ ukey, _, kt, kerr := parseInternalKey(mk)
+ if kerr != nil {
+ // Shouldn't have had happen.
+ panic(kerr)
+ }
+ if icmp.uCompare(ukey, ikey.ukey()) == 0 {
+ if kt == keyTypeDel {
+ return true, nil, ErrNotFound
+ }
+ return true, mv, nil
+
+ }
+ } else if err != ErrNotFound {
+ return true, nil, err
+ }
+ return
+}
+
+func (db *DB) get(auxm *memdb.DB, auxt tFiles, key []byte, seq uint64, ro *opt.ReadOptions) (value []byte, err error) {
+ ikey := makeInternalKey(nil, key, seq, keyTypeSeek)
+
+ if auxm != nil {
+ if ok, mv, me := memGet(auxm, ikey, db.s.icmp); ok {
+ return append([]byte{}, mv...), me
+ }
+ }
+
+ em, fm := db.getMems()
+ for _, m := range [...]*memDB{em, fm} {
+ if m == nil {
+ continue
+ }
+ defer m.decref()
+
+ if ok, mv, me := memGet(m.DB, ikey, db.s.icmp); ok {
+ return append([]byte{}, mv...), me
+ }
+ }
+
+ v := db.s.version()
+ value, cSched, err := v.get(auxt, ikey, ro, false)
+ v.release()
+ if cSched {
+ // Trigger table compaction.
+ db.compTrigger(db.tcompCmdC)
+ }
+ return
+}
+
+func nilIfNotFound(err error) error {
+ if err == ErrNotFound {
+ return nil
+ }
+ return err
+}
+
+func (db *DB) has(auxm *memdb.DB, auxt tFiles, key []byte, seq uint64, ro *opt.ReadOptions) (ret bool, err error) {
+ ikey := makeInternalKey(nil, key, seq, keyTypeSeek)
+
+ if auxm != nil {
+ if ok, _, me := memGet(auxm, ikey, db.s.icmp); ok {
+ return me == nil, nilIfNotFound(me)
+ }
+ }
+
+ em, fm := db.getMems()
+ for _, m := range [...]*memDB{em, fm} {
+ if m == nil {
+ continue
+ }
+ defer m.decref()
+
+ if ok, _, me := memGet(m.DB, ikey, db.s.icmp); ok {
+ return me == nil, nilIfNotFound(me)
+ }
+ }
+
+ v := db.s.version()
+ _, cSched, err := v.get(auxt, ikey, ro, true)
+ v.release()
+ if cSched {
+ // Trigger table compaction.
+ db.compTrigger(db.tcompCmdC)
+ }
+ if err == nil {
+ ret = true
+ } else if err == ErrNotFound {
+ err = nil
+ }
+ return
+}
+
+// Get gets the value for the given key. It returns ErrNotFound if the
+// DB does not contains the key.
+//
+// The returned slice is its own copy, it is safe to modify the contents
+// of the returned slice.
+// It is safe to modify the contents of the argument after Get returns.
+func (db *DB) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) {
+ err = db.ok()
+ if err != nil {
+ return
+ }
+
+ se := db.acquireSnapshot()
+ defer db.releaseSnapshot(se)
+ return db.get(nil, nil, key, se.seq, ro)
+}
+
+// Has returns true if the DB does contains the given key.
+//
+// It is safe to modify the contents of the argument after Get returns.
+func (db *DB) Has(key []byte, ro *opt.ReadOptions) (ret bool, err error) {
+ err = db.ok()
+ if err != nil {
+ return
+ }
+
+ se := db.acquireSnapshot()
+ defer db.releaseSnapshot(se)
+ return db.has(nil, nil, key, se.seq, ro)
+}
+
+// NewIterator returns an iterator for the latest snapshot of the
+// underlying DB.
+// The returned iterator is not safe for concurrent use, but it is safe to use
+// multiple iterators concurrently, with each in a dedicated goroutine.
+// It is also safe to use an iterator concurrently with modifying its
+// underlying DB. The resultant key/value pairs are guaranteed to be
+// consistent.
+//
+// Slice allows slicing the iterator to only contains keys in the given
+// range. A nil Range.Start is treated as a key before all keys in the
+// DB. And a nil Range.Limit is treated as a key after all keys in
+// the DB.
+//
+// The iterator must be released after use, by calling Release method.
+//
+// Also read Iterator documentation of the leveldb/iterator package.
+func (db *DB) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ if err := db.ok(); err != nil {
+ return iterator.NewEmptyIterator(err)
+ }
+
+ se := db.acquireSnapshot()
+ defer db.releaseSnapshot(se)
+ // Iterator holds 'version' lock, 'version' is immutable so snapshot
+ // can be released after iterator created.
+ return db.newIterator(nil, nil, se.seq, slice, ro)
+}
+
+// GetSnapshot returns a latest snapshot of the underlying DB. A snapshot
+// is a frozen snapshot of a DB state at a particular point in time. The
+// content of snapshot are guaranteed to be consistent.
+//
+// The snapshot must be released after use, by calling Release method.
+func (db *DB) GetSnapshot() (*Snapshot, error) {
+ if err := db.ok(); err != nil {
+ return nil, err
+ }
+
+ return db.newSnapshot(), nil
+}
+
+// GetProperty returns value of the given property name.
+//
+// Property names:
+// leveldb.num-files-at-level{n}
+// Returns the number of files at level 'n'.
+// leveldb.stats
+// Returns statistics of the underlying DB.
+// leveldb.sstables
+// Returns sstables list for each level.
+// leveldb.blockpool
+// Returns block pool stats.
+// leveldb.cachedblock
+// Returns size of cached block.
+// leveldb.openedtables
+// Returns number of opened tables.
+// leveldb.alivesnaps
+// Returns number of alive snapshots.
+// leveldb.aliveiters
+// Returns number of alive iterators.
+func (db *DB) GetProperty(name string) (value string, err error) {
+ err = db.ok()
+ if err != nil {
+ return
+ }
+
+ const prefix = "leveldb."
+ if !strings.HasPrefix(name, prefix) {
+ return "", ErrNotFound
+ }
+ p := name[len(prefix):]
+
+ v := db.s.version()
+ defer v.release()
+
+ numFilesPrefix := "num-files-at-level"
+ switch {
+ case strings.HasPrefix(p, numFilesPrefix):
+ var level uint
+ var rest string
+ n, _ := fmt.Sscanf(p[len(numFilesPrefix):], "%d%s", &level, &rest)
+ if n != 1 {
+ err = ErrNotFound
+ } else {
+ value = fmt.Sprint(v.tLen(int(level)))
+ }
+ case p == "stats":
+ value = "Compactions\n" +
+ " Level | Tables | Size(MB) | Time(sec) | Read(MB) | Write(MB)\n" +
+ "-------+------------+---------------+---------------+---------------+---------------\n"
+ for level, tables := range v.levels {
+ duration, read, write := db.compStats.getStat(level)
+ if len(tables) == 0 && duration == 0 {
+ continue
+ }
+ value += fmt.Sprintf(" %3d | %10d | %13.5f | %13.5f | %13.5f | %13.5f\n",
+ level, len(tables), float64(tables.size())/1048576.0, duration.Seconds(),
+ float64(read)/1048576.0, float64(write)/1048576.0)
+ }
+ case p == "sstables":
+ for level, tables := range v.levels {
+ value += fmt.Sprintf("--- level %d ---\n", level)
+ for _, t := range tables {
+ value += fmt.Sprintf("%d:%d[%q .. %q]\n", t.fd.Num, t.size, t.imin, t.imax)
+ }
+ }
+ case p == "blockpool":
+ value = fmt.Sprintf("%v", db.s.tops.bpool)
+ case p == "cachedblock":
+ if db.s.tops.bcache != nil {
+ value = fmt.Sprintf("%d", db.s.tops.bcache.Size())
+ } else {
+ value = "<nil>"
+ }
+ case p == "openedtables":
+ value = fmt.Sprintf("%d", db.s.tops.cache.Size())
+ case p == "alivesnaps":
+ value = fmt.Sprintf("%d", atomic.LoadInt32(&db.aliveSnaps))
+ case p == "aliveiters":
+ value = fmt.Sprintf("%d", atomic.LoadInt32(&db.aliveIters))
+ default:
+ err = ErrNotFound
+ }
+
+ return
+}
+
+// SizeOf calculates approximate sizes of the given key ranges.
+// The length of the returned sizes are equal with the length of the given
+// ranges. The returned sizes measure storage space usage, so if the user
+// data compresses by a factor of ten, the returned sizes will be one-tenth
+// the size of the corresponding user data size.
+// The results may not include the sizes of recently written data.
+func (db *DB) SizeOf(ranges []util.Range) (Sizes, error) {
+ if err := db.ok(); err != nil {
+ return nil, err
+ }
+
+ v := db.s.version()
+ defer v.release()
+
+ sizes := make(Sizes, 0, len(ranges))
+ for _, r := range ranges {
+ imin := makeInternalKey(nil, r.Start, keyMaxSeq, keyTypeSeek)
+ imax := makeInternalKey(nil, r.Limit, keyMaxSeq, keyTypeSeek)
+ start, err := v.offsetOf(imin)
+ if err != nil {
+ return nil, err
+ }
+ limit, err := v.offsetOf(imax)
+ if err != nil {
+ return nil, err
+ }
+ var size int64
+ if limit >= start {
+ size = limit - start
+ }
+ sizes = append(sizes, size)
+ }
+
+ return sizes, nil
+}
+
+// Close closes the DB. This will also releases any outstanding snapshot,
+// abort any in-flight compaction and discard open transaction.
+//
+// It is not safe to close a DB until all outstanding iterators are released.
+// It is valid to call Close multiple times. Other methods should not be
+// called after the DB has been closed.
+func (db *DB) Close() error {
+ if !db.setClosed() {
+ return ErrClosed
+ }
+
+ start := time.Now()
+ db.log("db@close closing")
+
+ // Clear the finalizer.
+ runtime.SetFinalizer(db, nil)
+
+ // Get compaction error.
+ var err error
+ select {
+ case err = <-db.compErrC:
+ if err == ErrReadOnly {
+ err = nil
+ }
+ default:
+ }
+
+ // Signal all goroutines.
+ close(db.closeC)
+
+ // Discard open transaction.
+ if db.tr != nil {
+ db.tr.Discard()
+ }
+
+ // Acquire writer lock.
+ db.writeLockC <- struct{}{}
+
+ // Wait for all gorotines to exit.
+ db.closeW.Wait()
+
+ // Closes journal.
+ if db.journal != nil {
+ db.journal.Close()
+ db.journalWriter.Close()
+ db.journal = nil
+ db.journalWriter = nil
+ }
+
+ if db.writeDelayN > 0 {
+ db.logf("db@write was delayed N·%d T·%v", db.writeDelayN, db.writeDelay)
+ }
+
+ // Close session.
+ db.s.close()
+ db.logf("db@close done T·%v", time.Since(start))
+ db.s.release()
+
+ if db.closer != nil {
+ if err1 := db.closer.Close(); err == nil {
+ err = err1
+ }
+ db.closer = nil
+ }
+
+ // Clear memdbs.
+ db.clearMems()
+
+ return err
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go
new file mode 100644
index 000000000..2d0ad0753
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_compaction.go
@@ -0,0 +1,826 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "sync"
+ "time"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+var (
+ errCompactionTransactExiting = errors.New("leveldb: compaction transact exiting")
+)
+
+type cStat struct {
+ duration time.Duration
+ read int64
+ write int64
+}
+
+func (p *cStat) add(n *cStatStaging) {
+ p.duration += n.duration
+ p.read += n.read
+ p.write += n.write
+}
+
+func (p *cStat) get() (duration time.Duration, read, write int64) {
+ return p.duration, p.read, p.write
+}
+
+type cStatStaging struct {
+ start time.Time
+ duration time.Duration
+ on bool
+ read int64
+ write int64
+}
+
+func (p *cStatStaging) startTimer() {
+ if !p.on {
+ p.start = time.Now()
+ p.on = true
+ }
+}
+
+func (p *cStatStaging) stopTimer() {
+ if p.on {
+ p.duration += time.Since(p.start)
+ p.on = false
+ }
+}
+
+type cStats struct {
+ lk sync.Mutex
+ stats []cStat
+}
+
+func (p *cStats) addStat(level int, n *cStatStaging) {
+ p.lk.Lock()
+ if level >= len(p.stats) {
+ newStats := make([]cStat, level+1)
+ copy(newStats, p.stats)
+ p.stats = newStats
+ }
+ p.stats[level].add(n)
+ p.lk.Unlock()
+}
+
+func (p *cStats) getStat(level int) (duration time.Duration, read, write int64) {
+ p.lk.Lock()
+ defer p.lk.Unlock()
+ if level < len(p.stats) {
+ return p.stats[level].get()
+ }
+ return
+}
+
+func (db *DB) compactionError() {
+ var err error
+noerr:
+ // No error.
+ for {
+ select {
+ case err = <-db.compErrSetC:
+ switch {
+ case err == nil:
+ case err == ErrReadOnly, errors.IsCorrupted(err):
+ goto hasperr
+ default:
+ goto haserr
+ }
+ case <-db.closeC:
+ return
+ }
+ }
+haserr:
+ // Transient error.
+ for {
+ select {
+ case db.compErrC <- err:
+ case err = <-db.compErrSetC:
+ switch {
+ case err == nil:
+ goto noerr
+ case err == ErrReadOnly, errors.IsCorrupted(err):
+ goto hasperr
+ default:
+ }
+ case <-db.closeC:
+ return
+ }
+ }
+hasperr:
+ // Persistent error.
+ for {
+ select {
+ case db.compErrC <- err:
+ case db.compPerErrC <- err:
+ case db.writeLockC <- struct{}{}:
+ // Hold write lock, so that write won't pass-through.
+ db.compWriteLocking = true
+ case <-db.closeC:
+ if db.compWriteLocking {
+ // We should release the lock or Close will hang.
+ <-db.writeLockC
+ }
+ return
+ }
+ }
+}
+
+type compactionTransactCounter int
+
+func (cnt *compactionTransactCounter) incr() {
+ *cnt++
+}
+
+type compactionTransactInterface interface {
+ run(cnt *compactionTransactCounter) error
+ revert() error
+}
+
+func (db *DB) compactionTransact(name string, t compactionTransactInterface) {
+ defer func() {
+ if x := recover(); x != nil {
+ if x == errCompactionTransactExiting {
+ if err := t.revert(); err != nil {
+ db.logf("%s revert error %q", name, err)
+ }
+ }
+ panic(x)
+ }
+ }()
+
+ const (
+ backoffMin = 1 * time.Second
+ backoffMax = 8 * time.Second
+ backoffMul = 2 * time.Second
+ )
+ var (
+ backoff = backoffMin
+ backoffT = time.NewTimer(backoff)
+ lastCnt = compactionTransactCounter(0)
+
+ disableBackoff = db.s.o.GetDisableCompactionBackoff()
+ )
+ for n := 0; ; n++ {
+ // Check whether the DB is closed.
+ if db.isClosed() {
+ db.logf("%s exiting", name)
+ db.compactionExitTransact()
+ } else if n > 0 {
+ db.logf("%s retrying N·%d", name, n)
+ }
+
+ // Execute.
+ cnt := compactionTransactCounter(0)
+ err := t.run(&cnt)
+ if err != nil {
+ db.logf("%s error I·%d %q", name, cnt, err)
+ }
+
+ // Set compaction error status.
+ select {
+ case db.compErrSetC <- err:
+ case perr := <-db.compPerErrC:
+ if err != nil {
+ db.logf("%s exiting (persistent error %q)", name, perr)
+ db.compactionExitTransact()
+ }
+ case <-db.closeC:
+ db.logf("%s exiting", name)
+ db.compactionExitTransact()
+ }
+ if err == nil {
+ return
+ }
+ if errors.IsCorrupted(err) {
+ db.logf("%s exiting (corruption detected)", name)
+ db.compactionExitTransact()
+ }
+
+ if !disableBackoff {
+ // Reset backoff duration if counter is advancing.
+ if cnt > lastCnt {
+ backoff = backoffMin
+ lastCnt = cnt
+ }
+
+ // Backoff.
+ backoffT.Reset(backoff)
+ if backoff < backoffMax {
+ backoff *= backoffMul
+ if backoff > backoffMax {
+ backoff = backoffMax
+ }
+ }
+ select {
+ case <-backoffT.C:
+ case <-db.closeC:
+ db.logf("%s exiting", name)
+ db.compactionExitTransact()
+ }
+ }
+ }
+}
+
+type compactionTransactFunc struct {
+ runFunc func(cnt *compactionTransactCounter) error
+ revertFunc func() error
+}
+
+func (t *compactionTransactFunc) run(cnt *compactionTransactCounter) error {
+ return t.runFunc(cnt)
+}
+
+func (t *compactionTransactFunc) revert() error {
+ if t.revertFunc != nil {
+ return t.revertFunc()
+ }
+ return nil
+}
+
+func (db *DB) compactionTransactFunc(name string, run func(cnt *compactionTransactCounter) error, revert func() error) {
+ db.compactionTransact(name, &compactionTransactFunc{run, revert})
+}
+
+func (db *DB) compactionExitTransact() {
+ panic(errCompactionTransactExiting)
+}
+
+func (db *DB) compactionCommit(name string, rec *sessionRecord) {
+ db.compCommitLk.Lock()
+ defer db.compCommitLk.Unlock() // Defer is necessary.
+ db.compactionTransactFunc(name+"@commit", func(cnt *compactionTransactCounter) error {
+ return db.s.commit(rec)
+ }, nil)
+}
+
+func (db *DB) memCompaction() {
+ mdb := db.getFrozenMem()
+ if mdb == nil {
+ return
+ }
+ defer mdb.decref()
+
+ db.logf("memdb@flush N·%d S·%s", mdb.Len(), shortenb(mdb.Size()))
+
+ // Don't compact empty memdb.
+ if mdb.Len() == 0 {
+ db.logf("memdb@flush skipping")
+ // drop frozen memdb
+ db.dropFrozenMem()
+ return
+ }
+
+ // Pause table compaction.
+ resumeC := make(chan struct{})
+ select {
+ case db.tcompPauseC <- (chan<- struct{})(resumeC):
+ case <-db.compPerErrC:
+ close(resumeC)
+ resumeC = nil
+ case <-db.closeC:
+ return
+ }
+
+ var (
+ rec = &sessionRecord{}
+ stats = &cStatStaging{}
+ flushLevel int
+ )
+
+ // Generate tables.
+ db.compactionTransactFunc("memdb@flush", func(cnt *compactionTransactCounter) (err error) {
+ stats.startTimer()
+ flushLevel, err = db.s.flushMemdb(rec, mdb.DB, db.memdbMaxLevel)
+ stats.stopTimer()
+ return
+ }, func() error {
+ for _, r := range rec.addedTables {
+ db.logf("memdb@flush revert @%d", r.num)
+ if err := db.s.stor.Remove(storage.FileDesc{Type: storage.TypeTable, Num: r.num}); err != nil {
+ return err
+ }
+ }
+ return nil
+ })
+
+ rec.setJournalNum(db.journalFd.Num)
+ rec.setSeqNum(db.frozenSeq)
+
+ // Commit.
+ stats.startTimer()
+ db.compactionCommit("memdb", rec)
+ stats.stopTimer()
+
+ db.logf("memdb@flush committed F·%d T·%v", len(rec.addedTables), stats.duration)
+
+ for _, r := range rec.addedTables {
+ stats.write += r.size
+ }
+ db.compStats.addStat(flushLevel, stats)
+
+ // Drop frozen memdb.
+ db.dropFrozenMem()
+
+ // Resume table compaction.
+ if resumeC != nil {
+ select {
+ case <-resumeC:
+ close(resumeC)
+ case <-db.closeC:
+ return
+ }
+ }
+
+ // Trigger table compaction.
+ db.compTrigger(db.tcompCmdC)
+}
+
+type tableCompactionBuilder struct {
+ db *DB
+ s *session
+ c *compaction
+ rec *sessionRecord
+ stat0, stat1 *cStatStaging
+
+ snapHasLastUkey bool
+ snapLastUkey []byte
+ snapLastSeq uint64
+ snapIter int
+ snapKerrCnt int
+ snapDropCnt int
+
+ kerrCnt int
+ dropCnt int
+
+ minSeq uint64
+ strict bool
+ tableSize int
+
+ tw *tWriter
+}
+
+func (b *tableCompactionBuilder) appendKV(key, value []byte) error {
+ // Create new table if not already.
+ if b.tw == nil {
+ // Check for pause event.
+ if b.db != nil {
+ select {
+ case ch := <-b.db.tcompPauseC:
+ b.db.pauseCompaction(ch)
+ case <-b.db.closeC:
+ b.db.compactionExitTransact()
+ default:
+ }
+ }
+
+ // Create new table.
+ var err error
+ b.tw, err = b.s.tops.create()
+ if err != nil {
+ return err
+ }
+ }
+
+ // Write key/value into table.
+ return b.tw.append(key, value)
+}
+
+func (b *tableCompactionBuilder) needFlush() bool {
+ return b.tw.tw.BytesLen() >= b.tableSize
+}
+
+func (b *tableCompactionBuilder) flush() error {
+ t, err := b.tw.finish()
+ if err != nil {
+ return err
+ }
+ b.rec.addTableFile(b.c.sourceLevel+1, t)
+ b.stat1.write += t.size
+ b.s.logf("table@build created L%d@%d N·%d S·%s %q:%q", b.c.sourceLevel+1, t.fd.Num, b.tw.tw.EntriesLen(), shortenb(int(t.size)), t.imin, t.imax)
+ b.tw = nil
+ return nil
+}
+
+func (b *tableCompactionBuilder) cleanup() {
+ if b.tw != nil {
+ b.tw.drop()
+ b.tw = nil
+ }
+}
+
+func (b *tableCompactionBuilder) run(cnt *compactionTransactCounter) error {
+ snapResumed := b.snapIter > 0
+ hasLastUkey := b.snapHasLastUkey // The key might has zero length, so this is necessary.
+ lastUkey := append([]byte{}, b.snapLastUkey...)
+ lastSeq := b.snapLastSeq
+ b.kerrCnt = b.snapKerrCnt
+ b.dropCnt = b.snapDropCnt
+ // Restore compaction state.
+ b.c.restore()
+
+ defer b.cleanup()
+
+ b.stat1.startTimer()
+ defer b.stat1.stopTimer()
+
+ iter := b.c.newIterator()
+ defer iter.Release()
+ for i := 0; iter.Next(); i++ {
+ // Incr transact counter.
+ cnt.incr()
+
+ // Skip until last state.
+ if i < b.snapIter {
+ continue
+ }
+
+ resumed := false
+ if snapResumed {
+ resumed = true
+ snapResumed = false
+ }
+
+ ikey := iter.Key()
+ ukey, seq, kt, kerr := parseInternalKey(ikey)
+
+ if kerr == nil {
+ shouldStop := !resumed && b.c.shouldStopBefore(ikey)
+
+ if !hasLastUkey || b.s.icmp.uCompare(lastUkey, ukey) != 0 {
+ // First occurrence of this user key.
+
+ // Only rotate tables if ukey doesn't hop across.
+ if b.tw != nil && (shouldStop || b.needFlush()) {
+ if err := b.flush(); err != nil {
+ return err
+ }
+
+ // Creates snapshot of the state.
+ b.c.save()
+ b.snapHasLastUkey = hasLastUkey
+ b.snapLastUkey = append(b.snapLastUkey[:0], lastUkey...)
+ b.snapLastSeq = lastSeq
+ b.snapIter = i
+ b.snapKerrCnt = b.kerrCnt
+ b.snapDropCnt = b.dropCnt
+ }
+
+ hasLastUkey = true
+ lastUkey = append(lastUkey[:0], ukey...)
+ lastSeq = keyMaxSeq
+ }
+
+ switch {
+ case lastSeq <= b.minSeq:
+ // Dropped because newer entry for same user key exist
+ fallthrough // (A)
+ case kt == keyTypeDel && seq <= b.minSeq && b.c.baseLevelForKey(lastUkey):
+ // For this user key:
+ // (1) there is no data in higher levels
+ // (2) data in lower levels will have larger seq numbers
+ // (3) data in layers that are being compacted here and have
+ // smaller seq numbers will be dropped in the next
+ // few iterations of this loop (by rule (A) above).
+ // Therefore this deletion marker is obsolete and can be dropped.
+ lastSeq = seq
+ b.dropCnt++
+ continue
+ default:
+ lastSeq = seq
+ }
+ } else {
+ if b.strict {
+ return kerr
+ }
+
+ // Don't drop corrupted keys.
+ hasLastUkey = false
+ lastUkey = lastUkey[:0]
+ lastSeq = keyMaxSeq
+ b.kerrCnt++
+ }
+
+ if err := b.appendKV(ikey, iter.Value()); err != nil {
+ return err
+ }
+ }
+
+ if err := iter.Error(); err != nil {
+ return err
+ }
+
+ // Finish last table.
+ if b.tw != nil && !b.tw.empty() {
+ return b.flush()
+ }
+ return nil
+}
+
+func (b *tableCompactionBuilder) revert() error {
+ for _, at := range b.rec.addedTables {
+ b.s.logf("table@build revert @%d", at.num)
+ if err := b.s.stor.Remove(storage.FileDesc{Type: storage.TypeTable, Num: at.num}); err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+func (db *DB) tableCompaction(c *compaction, noTrivial bool) {
+ defer c.release()
+
+ rec := &sessionRecord{}
+ rec.addCompPtr(c.sourceLevel, c.imax)
+
+ if !noTrivial && c.trivial() {
+ t := c.levels[0][0]
+ db.logf("table@move L%d@%d -> L%d", c.sourceLevel, t.fd.Num, c.sourceLevel+1)
+ rec.delTable(c.sourceLevel, t.fd.Num)
+ rec.addTableFile(c.sourceLevel+1, t)
+ db.compactionCommit("table-move", rec)
+ return
+ }
+
+ var stats [2]cStatStaging
+ for i, tables := range c.levels {
+ for _, t := range tables {
+ stats[i].read += t.size
+ // Insert deleted tables into record
+ rec.delTable(c.sourceLevel+i, t.fd.Num)
+ }
+ }
+ sourceSize := int(stats[0].read + stats[1].read)
+ minSeq := db.minSeq()
+ db.logf("table@compaction L%d·%d -> L%d·%d S·%s Q·%d", c.sourceLevel, len(c.levels[0]), c.sourceLevel+1, len(c.levels[1]), shortenb(sourceSize), minSeq)
+
+ b := &tableCompactionBuilder{
+ db: db,
+ s: db.s,
+ c: c,
+ rec: rec,
+ stat1: &stats[1],
+ minSeq: minSeq,
+ strict: db.s.o.GetStrict(opt.StrictCompaction),
+ tableSize: db.s.o.GetCompactionTableSize(c.sourceLevel + 1),
+ }
+ db.compactionTransact("table@build", b)
+
+ // Commit.
+ stats[1].startTimer()
+ db.compactionCommit("table", rec)
+ stats[1].stopTimer()
+
+ resultSize := int(stats[1].write)
+ db.logf("table@compaction committed F%s S%s Ke·%d D·%d T·%v", sint(len(rec.addedTables)-len(rec.deletedTables)), sshortenb(resultSize-sourceSize), b.kerrCnt, b.dropCnt, stats[1].duration)
+
+ // Save compaction stats
+ for i := range stats {
+ db.compStats.addStat(c.sourceLevel+1, &stats[i])
+ }
+}
+
+func (db *DB) tableRangeCompaction(level int, umin, umax []byte) error {
+ db.logf("table@compaction range L%d %q:%q", level, umin, umax)
+ if level >= 0 {
+ if c := db.s.getCompactionRange(level, umin, umax, true); c != nil {
+ db.tableCompaction(c, true)
+ }
+ } else {
+ // Retry until nothing to compact.
+ for {
+ compacted := false
+
+ // Scan for maximum level with overlapped tables.
+ v := db.s.version()
+ m := 1
+ for i := m; i < len(v.levels); i++ {
+ tables := v.levels[i]
+ if tables.overlaps(db.s.icmp, umin, umax, false) {
+ m = i
+ }
+ }
+ v.release()
+
+ for level := 0; level < m; level++ {
+ if c := db.s.getCompactionRange(level, umin, umax, false); c != nil {
+ db.tableCompaction(c, true)
+ compacted = true
+ }
+ }
+
+ if !compacted {
+ break
+ }
+ }
+ }
+
+ return nil
+}
+
+func (db *DB) tableAutoCompaction() {
+ if c := db.s.pickCompaction(); c != nil {
+ db.tableCompaction(c, false)
+ }
+}
+
+func (db *DB) tableNeedCompaction() bool {
+ v := db.s.version()
+ defer v.release()
+ return v.needCompaction()
+}
+
+func (db *DB) pauseCompaction(ch chan<- struct{}) {
+ select {
+ case ch <- struct{}{}:
+ case <-db.closeC:
+ db.compactionExitTransact()
+ }
+}
+
+type cCmd interface {
+ ack(err error)
+}
+
+type cAuto struct {
+ ackC chan<- error
+}
+
+func (r cAuto) ack(err error) {
+ if r.ackC != nil {
+ defer func() {
+ recover()
+ }()
+ r.ackC <- err
+ }
+}
+
+type cRange struct {
+ level int
+ min, max []byte
+ ackC chan<- error
+}
+
+func (r cRange) ack(err error) {
+ if r.ackC != nil {
+ defer func() {
+ recover()
+ }()
+ r.ackC <- err
+ }
+}
+
+// This will trigger auto compaction but will not wait for it.
+func (db *DB) compTrigger(compC chan<- cCmd) {
+ select {
+ case compC <- cAuto{}:
+ default:
+ }
+}
+
+// This will trigger auto compaction and/or wait for all compaction to be done.
+func (db *DB) compTriggerWait(compC chan<- cCmd) (err error) {
+ ch := make(chan error)
+ defer close(ch)
+ // Send cmd.
+ select {
+ case compC <- cAuto{ch}:
+ case err = <-db.compErrC:
+ return
+ case <-db.closeC:
+ return ErrClosed
+ }
+ // Wait cmd.
+ select {
+ case err = <-ch:
+ case err = <-db.compErrC:
+ case <-db.closeC:
+ return ErrClosed
+ }
+ return err
+}
+
+// Send range compaction request.
+func (db *DB) compTriggerRange(compC chan<- cCmd, level int, min, max []byte) (err error) {
+ ch := make(chan error)
+ defer close(ch)
+ // Send cmd.
+ select {
+ case compC <- cRange{level, min, max, ch}:
+ case err := <-db.compErrC:
+ return err
+ case <-db.closeC:
+ return ErrClosed
+ }
+ // Wait cmd.
+ select {
+ case err = <-ch:
+ case err = <-db.compErrC:
+ case <-db.closeC:
+ return ErrClosed
+ }
+ return err
+}
+
+func (db *DB) mCompaction() {
+ var x cCmd
+
+ defer func() {
+ if x := recover(); x != nil {
+ if x != errCompactionTransactExiting {
+ panic(x)
+ }
+ }
+ if x != nil {
+ x.ack(ErrClosed)
+ }
+ db.closeW.Done()
+ }()
+
+ for {
+ select {
+ case x = <-db.mcompCmdC:
+ switch x.(type) {
+ case cAuto:
+ db.memCompaction()
+ x.ack(nil)
+ x = nil
+ default:
+ panic("leveldb: unknown command")
+ }
+ case <-db.closeC:
+ return
+ }
+ }
+}
+
+func (db *DB) tCompaction() {
+ var x cCmd
+ var ackQ []cCmd
+
+ defer func() {
+ if x := recover(); x != nil {
+ if x != errCompactionTransactExiting {
+ panic(x)
+ }
+ }
+ for i := range ackQ {
+ ackQ[i].ack(ErrClosed)
+ ackQ[i] = nil
+ }
+ if x != nil {
+ x.ack(ErrClosed)
+ }
+ db.closeW.Done()
+ }()
+
+ for {
+ if db.tableNeedCompaction() {
+ select {
+ case x = <-db.tcompCmdC:
+ case ch := <-db.tcompPauseC:
+ db.pauseCompaction(ch)
+ continue
+ case <-db.closeC:
+ return
+ default:
+ }
+ } else {
+ for i := range ackQ {
+ ackQ[i].ack(nil)
+ ackQ[i] = nil
+ }
+ ackQ = ackQ[:0]
+ select {
+ case x = <-db.tcompCmdC:
+ case ch := <-db.tcompPauseC:
+ db.pauseCompaction(ch)
+ continue
+ case <-db.closeC:
+ return
+ }
+ }
+ if x != nil {
+ switch cmd := x.(type) {
+ case cAuto:
+ ackQ = append(ackQ, x)
+ case cRange:
+ x.ack(db.tableRangeCompaction(cmd.level, cmd.min, cmd.max))
+ default:
+ panic("leveldb: unknown command")
+ }
+ x = nil
+ }
+ db.tableAutoCompaction()
+ }
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go
new file mode 100644
index 000000000..03c24cdab
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_iter.go
@@ -0,0 +1,360 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "errors"
+ "math/rand"
+ "runtime"
+ "sync"
+ "sync/atomic"
+
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+var (
+ errInvalidInternalKey = errors.New("leveldb: Iterator: invalid internal key")
+)
+
+type memdbReleaser struct {
+ once sync.Once
+ m *memDB
+}
+
+func (mr *memdbReleaser) Release() {
+ mr.once.Do(func() {
+ mr.m.decref()
+ })
+}
+
+func (db *DB) newRawIterator(auxm *memDB, auxt tFiles, slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ strict := opt.GetStrict(db.s.o.Options, ro, opt.StrictReader)
+ em, fm := db.getMems()
+ v := db.s.version()
+
+ tableIts := v.getIterators(slice, ro)
+ n := len(tableIts) + len(auxt) + 3
+ its := make([]iterator.Iterator, 0, n)
+
+ if auxm != nil {
+ ami := auxm.NewIterator(slice)
+ ami.SetReleaser(&memdbReleaser{m: auxm})
+ its = append(its, ami)
+ }
+ for _, t := range auxt {
+ its = append(its, v.s.tops.newIterator(t, slice, ro))
+ }
+
+ emi := em.NewIterator(slice)
+ emi.SetReleaser(&memdbReleaser{m: em})
+ its = append(its, emi)
+ if fm != nil {
+ fmi := fm.NewIterator(slice)
+ fmi.SetReleaser(&memdbReleaser{m: fm})
+ its = append(its, fmi)
+ }
+ its = append(its, tableIts...)
+ mi := iterator.NewMergedIterator(its, db.s.icmp, strict)
+ mi.SetReleaser(&versionReleaser{v: v})
+ return mi
+}
+
+func (db *DB) newIterator(auxm *memDB, auxt tFiles, seq uint64, slice *util.Range, ro *opt.ReadOptions) *dbIter {
+ var islice *util.Range
+ if slice != nil {
+ islice = &util.Range{}
+ if slice.Start != nil {
+ islice.Start = makeInternalKey(nil, slice.Start, keyMaxSeq, keyTypeSeek)
+ }
+ if slice.Limit != nil {
+ islice.Limit = makeInternalKey(nil, slice.Limit, keyMaxSeq, keyTypeSeek)
+ }
+ }
+ rawIter := db.newRawIterator(auxm, auxt, islice, ro)
+ iter := &dbIter{
+ db: db,
+ icmp: db.s.icmp,
+ iter: rawIter,
+ seq: seq,
+ strict: opt.GetStrict(db.s.o.Options, ro, opt.StrictReader),
+ key: make([]byte, 0),
+ value: make([]byte, 0),
+ }
+ atomic.AddInt32(&db.aliveIters, 1)
+ runtime.SetFinalizer(iter, (*dbIter).Release)
+ return iter
+}
+
+func (db *DB) iterSamplingRate() int {
+ return rand.Intn(2 * db.s.o.GetIteratorSamplingRate())
+}
+
+type dir int
+
+const (
+ dirReleased dir = iota - 1
+ dirSOI
+ dirEOI
+ dirBackward
+ dirForward
+)
+
+// dbIter represent an interator states over a database session.
+type dbIter struct {
+ db *DB
+ icmp *iComparer
+ iter iterator.Iterator
+ seq uint64
+ strict bool
+
+ smaplingGap int
+ dir dir
+ key []byte
+ value []byte
+ err error
+ releaser util.Releaser
+}
+
+func (i *dbIter) sampleSeek() {
+ ikey := i.iter.Key()
+ i.smaplingGap -= len(ikey) + len(i.iter.Value())
+ for i.smaplingGap < 0 {
+ i.smaplingGap += i.db.iterSamplingRate()
+ i.db.sampleSeek(ikey)
+ }
+}
+
+func (i *dbIter) setErr(err error) {
+ i.err = err
+ i.key = nil
+ i.value = nil
+}
+
+func (i *dbIter) iterErr() {
+ if err := i.iter.Error(); err != nil {
+ i.setErr(err)
+ }
+}
+
+func (i *dbIter) Valid() bool {
+ return i.err == nil && i.dir > dirEOI
+}
+
+func (i *dbIter) First() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.iter.First() {
+ i.dir = dirSOI
+ return i.next()
+ }
+ i.dir = dirEOI
+ i.iterErr()
+ return false
+}
+
+func (i *dbIter) Last() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.iter.Last() {
+ return i.prev()
+ }
+ i.dir = dirSOI
+ i.iterErr()
+ return false
+}
+
+func (i *dbIter) Seek(key []byte) bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ ikey := makeInternalKey(nil, key, i.seq, keyTypeSeek)
+ if i.iter.Seek(ikey) {
+ i.dir = dirSOI
+ return i.next()
+ }
+ i.dir = dirEOI
+ i.iterErr()
+ return false
+}
+
+func (i *dbIter) next() bool {
+ for {
+ if ukey, seq, kt, kerr := parseInternalKey(i.iter.Key()); kerr == nil {
+ i.sampleSeek()
+ if seq <= i.seq {
+ switch kt {
+ case keyTypeDel:
+ // Skip deleted key.
+ i.key = append(i.key[:0], ukey...)
+ i.dir = dirForward
+ case keyTypeVal:
+ if i.dir == dirSOI || i.icmp.uCompare(ukey, i.key) > 0 {
+ i.key = append(i.key[:0], ukey...)
+ i.value = append(i.value[:0], i.iter.Value()...)
+ i.dir = dirForward
+ return true
+ }
+ }
+ }
+ } else if i.strict {
+ i.setErr(kerr)
+ break
+ }
+ if !i.iter.Next() {
+ i.dir = dirEOI
+ i.iterErr()
+ break
+ }
+ }
+ return false
+}
+
+func (i *dbIter) Next() bool {
+ if i.dir == dirEOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if !i.iter.Next() || (i.dir == dirBackward && !i.iter.Next()) {
+ i.dir = dirEOI
+ i.iterErr()
+ return false
+ }
+ return i.next()
+}
+
+func (i *dbIter) prev() bool {
+ i.dir = dirBackward
+ del := true
+ if i.iter.Valid() {
+ for {
+ if ukey, seq, kt, kerr := parseInternalKey(i.iter.Key()); kerr == nil {
+ i.sampleSeek()
+ if seq <= i.seq {
+ if !del && i.icmp.uCompare(ukey, i.key) < 0 {
+ return true
+ }
+ del = (kt == keyTypeDel)
+ if !del {
+ i.key = append(i.key[:0], ukey...)
+ i.value = append(i.value[:0], i.iter.Value()...)
+ }
+ }
+ } else if i.strict {
+ i.setErr(kerr)
+ return false
+ }
+ if !i.iter.Prev() {
+ break
+ }
+ }
+ }
+ if del {
+ i.dir = dirSOI
+ i.iterErr()
+ return false
+ }
+ return true
+}
+
+func (i *dbIter) Prev() bool {
+ if i.dir == dirSOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ switch i.dir {
+ case dirEOI:
+ return i.Last()
+ case dirForward:
+ for i.iter.Prev() {
+ if ukey, _, _, kerr := parseInternalKey(i.iter.Key()); kerr == nil {
+ i.sampleSeek()
+ if i.icmp.uCompare(ukey, i.key) < 0 {
+ goto cont
+ }
+ } else if i.strict {
+ i.setErr(kerr)
+ return false
+ }
+ }
+ i.dir = dirSOI
+ i.iterErr()
+ return false
+ }
+
+cont:
+ return i.prev()
+}
+
+func (i *dbIter) Key() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.key
+}
+
+func (i *dbIter) Value() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.value
+}
+
+func (i *dbIter) Release() {
+ if i.dir != dirReleased {
+ // Clear the finalizer.
+ runtime.SetFinalizer(i, nil)
+
+ if i.releaser != nil {
+ i.releaser.Release()
+ i.releaser = nil
+ }
+
+ i.dir = dirReleased
+ i.key = nil
+ i.value = nil
+ i.iter.Release()
+ i.iter = nil
+ atomic.AddInt32(&i.db.aliveIters, -1)
+ i.db = nil
+ }
+}
+
+func (i *dbIter) SetReleaser(releaser util.Releaser) {
+ if i.dir == dirReleased {
+ panic(util.ErrReleased)
+ }
+ if i.releaser != nil && releaser != nil {
+ panic(util.ErrHasReleaser)
+ }
+ i.releaser = releaser
+}
+
+func (i *dbIter) Error() error {
+ return i.err
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go
new file mode 100644
index 000000000..2c69d2e53
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_snapshot.go
@@ -0,0 +1,183 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "container/list"
+ "fmt"
+ "runtime"
+ "sync"
+ "sync/atomic"
+
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+type snapshotElement struct {
+ seq uint64
+ ref int
+ e *list.Element
+}
+
+// Acquires a snapshot, based on latest sequence.
+func (db *DB) acquireSnapshot() *snapshotElement {
+ db.snapsMu.Lock()
+ defer db.snapsMu.Unlock()
+
+ seq := db.getSeq()
+
+ if e := db.snapsList.Back(); e != nil {
+ se := e.Value.(*snapshotElement)
+ if se.seq == seq {
+ se.ref++
+ return se
+ } else if seq < se.seq {
+ panic("leveldb: sequence number is not increasing")
+ }
+ }
+ se := &snapshotElement{seq: seq, ref: 1}
+ se.e = db.snapsList.PushBack(se)
+ return se
+}
+
+// Releases given snapshot element.
+func (db *DB) releaseSnapshot(se *snapshotElement) {
+ db.snapsMu.Lock()
+ defer db.snapsMu.Unlock()
+
+ se.ref--
+ if se.ref == 0 {
+ db.snapsList.Remove(se.e)
+ se.e = nil
+ } else if se.ref < 0 {
+ panic("leveldb: Snapshot: negative element reference")
+ }
+}
+
+// Gets minimum sequence that not being snapshotted.
+func (db *DB) minSeq() uint64 {
+ db.snapsMu.Lock()
+ defer db.snapsMu.Unlock()
+
+ if e := db.snapsList.Front(); e != nil {
+ return e.Value.(*snapshotElement).seq
+ }
+
+ return db.getSeq()
+}
+
+// Snapshot is a DB snapshot.
+type Snapshot struct {
+ db *DB
+ elem *snapshotElement
+ mu sync.RWMutex
+ released bool
+}
+
+// Creates new snapshot object.
+func (db *DB) newSnapshot() *Snapshot {
+ snap := &Snapshot{
+ db: db,
+ elem: db.acquireSnapshot(),
+ }
+ atomic.AddInt32(&db.aliveSnaps, 1)
+ runtime.SetFinalizer(snap, (*Snapshot).Release)
+ return snap
+}
+
+func (snap *Snapshot) String() string {
+ return fmt.Sprintf("leveldb.Snapshot{%d}", snap.elem.seq)
+}
+
+// Get gets the value for the given key. It returns ErrNotFound if
+// the DB does not contains the key.
+//
+// The caller should not modify the contents of the returned slice, but
+// it is safe to modify the contents of the argument after Get returns.
+func (snap *Snapshot) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) {
+ err = snap.db.ok()
+ if err != nil {
+ return
+ }
+ snap.mu.RLock()
+ defer snap.mu.RUnlock()
+ if snap.released {
+ err = ErrSnapshotReleased
+ return
+ }
+ return snap.db.get(nil, nil, key, snap.elem.seq, ro)
+}
+
+// Has returns true if the DB does contains the given key.
+//
+// It is safe to modify the contents of the argument after Get returns.
+func (snap *Snapshot) Has(key []byte, ro *opt.ReadOptions) (ret bool, err error) {
+ err = snap.db.ok()
+ if err != nil {
+ return
+ }
+ snap.mu.RLock()
+ defer snap.mu.RUnlock()
+ if snap.released {
+ err = ErrSnapshotReleased
+ return
+ }
+ return snap.db.has(nil, nil, key, snap.elem.seq, ro)
+}
+
+// NewIterator returns an iterator for the snapshot of the underlying DB.
+// The returned iterator is not safe for concurrent use, but it is safe to use
+// multiple iterators concurrently, with each in a dedicated goroutine.
+// It is also safe to use an iterator concurrently with modifying its
+// underlying DB. The resultant key/value pairs are guaranteed to be
+// consistent.
+//
+// Slice allows slicing the iterator to only contains keys in the given
+// range. A nil Range.Start is treated as a key before all keys in the
+// DB. And a nil Range.Limit is treated as a key after all keys in
+// the DB.
+//
+// The iterator must be released after use, by calling Release method.
+// Releasing the snapshot doesn't mean releasing the iterator too, the
+// iterator would be still valid until released.
+//
+// Also read Iterator documentation of the leveldb/iterator package.
+func (snap *Snapshot) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ if err := snap.db.ok(); err != nil {
+ return iterator.NewEmptyIterator(err)
+ }
+ snap.mu.Lock()
+ defer snap.mu.Unlock()
+ if snap.released {
+ return iterator.NewEmptyIterator(ErrSnapshotReleased)
+ }
+ // Since iterator already hold version ref, it doesn't need to
+ // hold snapshot ref.
+ return snap.db.newIterator(nil, nil, snap.elem.seq, slice, ro)
+}
+
+// Release releases the snapshot. This will not release any returned
+// iterators, the iterators would still be valid until released or the
+// underlying DB is closed.
+//
+// Other methods should not be called after the snapshot has been released.
+func (snap *Snapshot) Release() {
+ snap.mu.Lock()
+ defer snap.mu.Unlock()
+
+ if !snap.released {
+ // Clear the finalizer.
+ runtime.SetFinalizer(snap, nil)
+
+ snap.released = true
+ snap.db.releaseSnapshot(snap.elem)
+ atomic.AddInt32(&snap.db.aliveSnaps, -1)
+ snap.db = nil
+ snap.elem = nil
+ }
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go
new file mode 100644
index 000000000..85b02d24b
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_state.go
@@ -0,0 +1,234 @@
+// Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "sync/atomic"
+ "time"
+
+ "github.com/syndtr/goleveldb/leveldb/journal"
+ "github.com/syndtr/goleveldb/leveldb/memdb"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+type memDB struct {
+ db *DB
+ *memdb.DB
+ ref int32
+}
+
+func (m *memDB) getref() int32 {
+ return atomic.LoadInt32(&m.ref)
+}
+
+func (m *memDB) incref() {
+ atomic.AddInt32(&m.ref, 1)
+}
+
+func (m *memDB) decref() {
+ if ref := atomic.AddInt32(&m.ref, -1); ref == 0 {
+ // Only put back memdb with std capacity.
+ if m.Capacity() == m.db.s.o.GetWriteBuffer() {
+ m.Reset()
+ m.db.mpoolPut(m.DB)
+ }
+ m.db = nil
+ m.DB = nil
+ } else if ref < 0 {
+ panic("negative memdb ref")
+ }
+}
+
+// Get latest sequence number.
+func (db *DB) getSeq() uint64 {
+ return atomic.LoadUint64(&db.seq)
+}
+
+// Atomically adds delta to seq.
+func (db *DB) addSeq(delta uint64) {
+ atomic.AddUint64(&db.seq, delta)
+}
+
+func (db *DB) setSeq(seq uint64) {
+ atomic.StoreUint64(&db.seq, seq)
+}
+
+func (db *DB) sampleSeek(ikey internalKey) {
+ v := db.s.version()
+ if v.sampleSeek(ikey) {
+ // Trigger table compaction.
+ db.compTrigger(db.tcompCmdC)
+ }
+ v.release()
+}
+
+func (db *DB) mpoolPut(mem *memdb.DB) {
+ if !db.isClosed() {
+ select {
+ case db.memPool <- mem:
+ default:
+ }
+ }
+}
+
+func (db *DB) mpoolGet(n int) *memDB {
+ var mdb *memdb.DB
+ select {
+ case mdb = <-db.memPool:
+ default:
+ }
+ if mdb == nil || mdb.Capacity() < n {
+ mdb = memdb.New(db.s.icmp, maxInt(db.s.o.GetWriteBuffer(), n))
+ }
+ return &memDB{
+ db: db,
+ DB: mdb,
+ }
+}
+
+func (db *DB) mpoolDrain() {
+ ticker := time.NewTicker(30 * time.Second)
+ for {
+ select {
+ case <-ticker.C:
+ select {
+ case <-db.memPool:
+ default:
+ }
+ case <-db.closeC:
+ ticker.Stop()
+ // Make sure the pool is drained.
+ select {
+ case <-db.memPool:
+ case <-time.After(time.Second):
+ }
+ close(db.memPool)
+ return
+ }
+ }
+}
+
+// Create new memdb and froze the old one; need external synchronization.
+// newMem only called synchronously by the writer.
+func (db *DB) newMem(n int) (mem *memDB, err error) {
+ fd := storage.FileDesc{Type: storage.TypeJournal, Num: db.s.allocFileNum()}
+ w, err := db.s.stor.Create(fd)
+ if err != nil {
+ db.s.reuseFileNum(fd.Num)
+ return
+ }
+
+ db.memMu.Lock()
+ defer db.memMu.Unlock()
+
+ if db.frozenMem != nil {
+ panic("still has frozen mem")
+ }
+
+ if db.journal == nil {
+ db.journal = journal.NewWriter(w)
+ } else {
+ db.journal.Reset(w)
+ db.journalWriter.Close()
+ db.frozenJournalFd = db.journalFd
+ }
+ db.journalWriter = w
+ db.journalFd = fd
+ db.frozenMem = db.mem
+ mem = db.mpoolGet(n)
+ mem.incref() // for self
+ mem.incref() // for caller
+ db.mem = mem
+ // The seq only incremented by the writer. And whoever called newMem
+ // should hold write lock, so no need additional synchronization here.
+ db.frozenSeq = db.seq
+ return
+}
+
+// Get all memdbs.
+func (db *DB) getMems() (e, f *memDB) {
+ db.memMu.RLock()
+ defer db.memMu.RUnlock()
+ if db.mem != nil {
+ db.mem.incref()
+ } else if !db.isClosed() {
+ panic("nil effective mem")
+ }
+ if db.frozenMem != nil {
+ db.frozenMem.incref()
+ }
+ return db.mem, db.frozenMem
+}
+
+// Get effective memdb.
+func (db *DB) getEffectiveMem() *memDB {
+ db.memMu.RLock()
+ defer db.memMu.RUnlock()
+ if db.mem != nil {
+ db.mem.incref()
+ } else if !db.isClosed() {
+ panic("nil effective mem")
+ }
+ return db.mem
+}
+
+// Check whether we has frozen memdb.
+func (db *DB) hasFrozenMem() bool {
+ db.memMu.RLock()
+ defer db.memMu.RUnlock()
+ return db.frozenMem != nil
+}
+
+// Get frozen memdb.
+func (db *DB) getFrozenMem() *memDB {
+ db.memMu.RLock()
+ defer db.memMu.RUnlock()
+ if db.frozenMem != nil {
+ db.frozenMem.incref()
+ }
+ return db.frozenMem
+}
+
+// Drop frozen memdb; assume that frozen memdb isn't nil.
+func (db *DB) dropFrozenMem() {
+ db.memMu.Lock()
+ if err := db.s.stor.Remove(db.frozenJournalFd); err != nil {
+ db.logf("journal@remove removing @%d %q", db.frozenJournalFd.Num, err)
+ } else {
+ db.logf("journal@remove removed @%d", db.frozenJournalFd.Num)
+ }
+ db.frozenJournalFd = storage.FileDesc{}
+ db.frozenMem.decref()
+ db.frozenMem = nil
+ db.memMu.Unlock()
+}
+
+// Clear mems ptr; used by DB.Close().
+func (db *DB) clearMems() {
+ db.memMu.Lock()
+ db.mem = nil
+ db.frozenMem = nil
+ db.memMu.Unlock()
+}
+
+// Set closed flag; return true if not already closed.
+func (db *DB) setClosed() bool {
+ return atomic.CompareAndSwapUint32(&db.closed, 0, 1)
+}
+
+// Check whether DB was closed.
+func (db *DB) isClosed() bool {
+ return atomic.LoadUint32(&db.closed) != 0
+}
+
+// Check read ok status.
+func (db *DB) ok() error {
+ if db.isClosed() {
+ return ErrClosed
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go
new file mode 100644
index 000000000..b8f7e7d21
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_transaction.go
@@ -0,0 +1,325 @@
+// Copyright (c) 2016, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "errors"
+ "sync"
+ "time"
+
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+var errTransactionDone = errors.New("leveldb: transaction already closed")
+
+// Transaction is the transaction handle.
+type Transaction struct {
+ db *DB
+ lk sync.RWMutex
+ seq uint64
+ mem *memDB
+ tables tFiles
+ ikScratch []byte
+ rec sessionRecord
+ stats cStatStaging
+ closed bool
+}
+
+// Get gets the value for the given key. It returns ErrNotFound if the
+// DB does not contains the key.
+//
+// The returned slice is its own copy, it is safe to modify the contents
+// of the returned slice.
+// It is safe to modify the contents of the argument after Get returns.
+func (tr *Transaction) Get(key []byte, ro *opt.ReadOptions) ([]byte, error) {
+ tr.lk.RLock()
+ defer tr.lk.RUnlock()
+ if tr.closed {
+ return nil, errTransactionDone
+ }
+ return tr.db.get(tr.mem.DB, tr.tables, key, tr.seq, ro)
+}
+
+// Has returns true if the DB does contains the given key.
+//
+// It is safe to modify the contents of the argument after Has returns.
+func (tr *Transaction) Has(key []byte, ro *opt.ReadOptions) (bool, error) {
+ tr.lk.RLock()
+ defer tr.lk.RUnlock()
+ if tr.closed {
+ return false, errTransactionDone
+ }
+ return tr.db.has(tr.mem.DB, tr.tables, key, tr.seq, ro)
+}
+
+// NewIterator returns an iterator for the latest snapshot of the transaction.
+// The returned iterator is not safe for concurrent use, but it is safe to use
+// multiple iterators concurrently, with each in a dedicated goroutine.
+// It is also safe to use an iterator concurrently while writes to the
+// transaction. The resultant key/value pairs are guaranteed to be consistent.
+//
+// Slice allows slicing the iterator to only contains keys in the given
+// range. A nil Range.Start is treated as a key before all keys in the
+// DB. And a nil Range.Limit is treated as a key after all keys in
+// the DB.
+//
+// The iterator must be released after use, by calling Release method.
+//
+// Also read Iterator documentation of the leveldb/iterator package.
+func (tr *Transaction) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ tr.lk.RLock()
+ defer tr.lk.RUnlock()
+ if tr.closed {
+ return iterator.NewEmptyIterator(errTransactionDone)
+ }
+ tr.mem.incref()
+ return tr.db.newIterator(tr.mem, tr.tables, tr.seq, slice, ro)
+}
+
+func (tr *Transaction) flush() error {
+ // Flush memdb.
+ if tr.mem.Len() != 0 {
+ tr.stats.startTimer()
+ iter := tr.mem.NewIterator(nil)
+ t, n, err := tr.db.s.tops.createFrom(iter)
+ iter.Release()
+ tr.stats.stopTimer()
+ if err != nil {
+ return err
+ }
+ if tr.mem.getref() == 1 {
+ tr.mem.Reset()
+ } else {
+ tr.mem.decref()
+ tr.mem = tr.db.mpoolGet(0)
+ tr.mem.incref()
+ }
+ tr.tables = append(tr.tables, t)
+ tr.rec.addTableFile(0, t)
+ tr.stats.write += t.size
+ tr.db.logf("transaction@flush created L0@%d N·%d S·%s %q:%q", t.fd.Num, n, shortenb(int(t.size)), t.imin, t.imax)
+ }
+ return nil
+}
+
+func (tr *Transaction) put(kt keyType, key, value []byte) error {
+ tr.ikScratch = makeInternalKey(tr.ikScratch, key, tr.seq+1, kt)
+ if tr.mem.Free() < len(tr.ikScratch)+len(value) {
+ if err := tr.flush(); err != nil {
+ return err
+ }
+ }
+ if err := tr.mem.Put(tr.ikScratch, value); err != nil {
+ return err
+ }
+ tr.seq++
+ return nil
+}
+
+// Put sets the value for the given key. It overwrites any previous value
+// for that key; a DB is not a multi-map.
+// Please note that the transaction is not compacted until committed, so if you
+// writes 10 same keys, then those 10 same keys are in the transaction.
+//
+// It is safe to modify the contents of the arguments after Put returns.
+func (tr *Transaction) Put(key, value []byte, wo *opt.WriteOptions) error {
+ tr.lk.Lock()
+ defer tr.lk.Unlock()
+ if tr.closed {
+ return errTransactionDone
+ }
+ return tr.put(keyTypeVal, key, value)
+}
+
+// Delete deletes the value for the given key.
+// Please note that the transaction is not compacted until committed, so if you
+// writes 10 same keys, then those 10 same keys are in the transaction.
+//
+// It is safe to modify the contents of the arguments after Delete returns.
+func (tr *Transaction) Delete(key []byte, wo *opt.WriteOptions) error {
+ tr.lk.Lock()
+ defer tr.lk.Unlock()
+ if tr.closed {
+ return errTransactionDone
+ }
+ return tr.put(keyTypeDel, key, nil)
+}
+
+// Write apply the given batch to the transaction. The batch will be applied
+// sequentially.
+// Please note that the transaction is not compacted until committed, so if you
+// writes 10 same keys, then those 10 same keys are in the transaction.
+//
+// It is safe to modify the contents of the arguments after Write returns.
+func (tr *Transaction) Write(b *Batch, wo *opt.WriteOptions) error {
+ if b == nil || b.Len() == 0 {
+ return nil
+ }
+
+ tr.lk.Lock()
+ defer tr.lk.Unlock()
+ if tr.closed {
+ return errTransactionDone
+ }
+ return b.replayInternal(func(i int, kt keyType, k, v []byte) error {
+ return tr.put(kt, k, v)
+ })
+}
+
+func (tr *Transaction) setDone() {
+ tr.closed = true
+ tr.db.tr = nil
+ tr.mem.decref()
+ <-tr.db.writeLockC
+}
+
+// Commit commits the transaction. If error is not nil, then the transaction is
+// not committed, it can then either be retried or discarded.
+//
+// Other methods should not be called after transaction has been committed.
+func (tr *Transaction) Commit() error {
+ if err := tr.db.ok(); err != nil {
+ return err
+ }
+
+ tr.lk.Lock()
+ defer tr.lk.Unlock()
+ if tr.closed {
+ return errTransactionDone
+ }
+ if err := tr.flush(); err != nil {
+ // Return error, lets user decide either to retry or discard
+ // transaction.
+ return err
+ }
+ if len(tr.tables) != 0 {
+ // Committing transaction.
+ tr.rec.setSeqNum(tr.seq)
+ tr.db.compCommitLk.Lock()
+ tr.stats.startTimer()
+ var cerr error
+ for retry := 0; retry < 3; retry++ {
+ cerr = tr.db.s.commit(&tr.rec)
+ if cerr != nil {
+ tr.db.logf("transaction@commit error R·%d %q", retry, cerr)
+ select {
+ case <-time.After(time.Second):
+ case <-tr.db.closeC:
+ tr.db.logf("transaction@commit exiting")
+ tr.db.compCommitLk.Unlock()
+ return cerr
+ }
+ } else {
+ // Success. Set db.seq.
+ tr.db.setSeq(tr.seq)
+ break
+ }
+ }
+ tr.stats.stopTimer()
+ if cerr != nil {
+ // Return error, lets user decide either to retry or discard
+ // transaction.
+ return cerr
+ }
+
+ // Update compaction stats. This is safe as long as we hold compCommitLk.
+ tr.db.compStats.addStat(0, &tr.stats)
+
+ // Trigger table auto-compaction.
+ tr.db.compTrigger(tr.db.tcompCmdC)
+ tr.db.compCommitLk.Unlock()
+
+ // Additionally, wait compaction when certain threshold reached.
+ // Ignore error, returns error only if transaction can't be committed.
+ tr.db.waitCompaction()
+ }
+ // Only mark as done if transaction committed successfully.
+ tr.setDone()
+ return nil
+}
+
+func (tr *Transaction) discard() {
+ // Discard transaction.
+ for _, t := range tr.tables {
+ tr.db.logf("transaction@discard @%d", t.fd.Num)
+ if err1 := tr.db.s.stor.Remove(t.fd); err1 == nil {
+ tr.db.s.reuseFileNum(t.fd.Num)
+ }
+ }
+}
+
+// Discard discards the transaction.
+//
+// Other methods should not be called after transaction has been discarded.
+func (tr *Transaction) Discard() {
+ tr.lk.Lock()
+ if !tr.closed {
+ tr.discard()
+ tr.setDone()
+ }
+ tr.lk.Unlock()
+}
+
+func (db *DB) waitCompaction() error {
+ if db.s.tLen(0) >= db.s.o.GetWriteL0PauseTrigger() {
+ return db.compTriggerWait(db.tcompCmdC)
+ }
+ return nil
+}
+
+// OpenTransaction opens an atomic DB transaction. Only one transaction can be
+// opened at a time. Subsequent call to Write and OpenTransaction will be blocked
+// until in-flight transaction is committed or discarded.
+// The returned transaction handle is safe for concurrent use.
+//
+// Transaction is expensive and can overwhelm compaction, especially if
+// transaction size is small. Use with caution.
+//
+// The transaction must be closed once done, either by committing or discarding
+// the transaction.
+// Closing the DB will discard open transaction.
+func (db *DB) OpenTransaction() (*Transaction, error) {
+ if err := db.ok(); err != nil {
+ return nil, err
+ }
+
+ // The write happen synchronously.
+ select {
+ case db.writeLockC <- struct{}{}:
+ case err := <-db.compPerErrC:
+ return nil, err
+ case <-db.closeC:
+ return nil, ErrClosed
+ }
+
+ if db.tr != nil {
+ panic("leveldb: has open transaction")
+ }
+
+ // Flush current memdb.
+ if db.mem != nil && db.mem.Len() != 0 {
+ if _, err := db.rotateMem(0, true); err != nil {
+ return nil, err
+ }
+ }
+
+ // Wait compaction when certain threshold reached.
+ if err := db.waitCompaction(); err != nil {
+ return nil, err
+ }
+
+ tr := &Transaction{
+ db: db,
+ seq: db.seq,
+ mem: db.mpoolGet(0),
+ }
+ tr.mem.incref()
+ db.tr = tr
+ return tr, nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go
new file mode 100644
index 000000000..7ecd960d2
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_util.go
@@ -0,0 +1,102 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// Reader is the interface that wraps basic Get and NewIterator methods.
+// This interface implemented by both DB and Snapshot.
+type Reader interface {
+ Get(key []byte, ro *opt.ReadOptions) (value []byte, err error)
+ NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator
+}
+
+// Sizes is list of size.
+type Sizes []int64
+
+// Sum returns sum of the sizes.
+func (sizes Sizes) Sum() int64 {
+ var sum int64
+ for _, size := range sizes {
+ sum += size
+ }
+ return sum
+}
+
+// Logging.
+func (db *DB) log(v ...interface{}) { db.s.log(v...) }
+func (db *DB) logf(format string, v ...interface{}) { db.s.logf(format, v...) }
+
+// Check and clean files.
+func (db *DB) checkAndCleanFiles() error {
+ v := db.s.version()
+ defer v.release()
+
+ tmap := make(map[int64]bool)
+ for _, tables := range v.levels {
+ for _, t := range tables {
+ tmap[t.fd.Num] = false
+ }
+ }
+
+ fds, err := db.s.stor.List(storage.TypeAll)
+ if err != nil {
+ return err
+ }
+
+ var nt int
+ var rem []storage.FileDesc
+ for _, fd := range fds {
+ keep := true
+ switch fd.Type {
+ case storage.TypeManifest:
+ keep = fd.Num >= db.s.manifestFd.Num
+ case storage.TypeJournal:
+ if !db.frozenJournalFd.Zero() {
+ keep = fd.Num >= db.frozenJournalFd.Num
+ } else {
+ keep = fd.Num >= db.journalFd.Num
+ }
+ case storage.TypeTable:
+ _, keep = tmap[fd.Num]
+ if keep {
+ tmap[fd.Num] = true
+ nt++
+ }
+ }
+
+ if !keep {
+ rem = append(rem, fd)
+ }
+ }
+
+ if nt != len(tmap) {
+ var mfds []storage.FileDesc
+ for num, present := range tmap {
+ if !present {
+ mfds = append(mfds, storage.FileDesc{storage.TypeTable, num})
+ db.logf("db@janitor table missing @%d", num)
+ }
+ }
+ return errors.NewErrCorrupted(storage.FileDesc{}, &errors.ErrMissingFiles{Fds: mfds})
+ }
+
+ db.logf("db@janitor F·%d G·%d", len(fds), len(rem))
+ for _, fd := range rem {
+ db.logf("db@janitor removing %s-%d", fd.Type, fd.Num)
+ if err := db.s.stor.Remove(fd); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
new file mode 100644
index 000000000..cc428b695
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/db_write.go
@@ -0,0 +1,443 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "time"
+
+ "github.com/syndtr/goleveldb/leveldb/memdb"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+func (db *DB) writeJournal(batches []*Batch, seq uint64, sync bool) error {
+ wr, err := db.journal.Next()
+ if err != nil {
+ return err
+ }
+ if err := writeBatchesWithHeader(wr, batches, seq); err != nil {
+ return err
+ }
+ if err := db.journal.Flush(); err != nil {
+ return err
+ }
+ if sync {
+ return db.journalWriter.Sync()
+ }
+ return nil
+}
+
+func (db *DB) rotateMem(n int, wait bool) (mem *memDB, err error) {
+ // Wait for pending memdb compaction.
+ err = db.compTriggerWait(db.mcompCmdC)
+ if err != nil {
+ return
+ }
+
+ // Create new memdb and journal.
+ mem, err = db.newMem(n)
+ if err != nil {
+ return
+ }
+
+ // Schedule memdb compaction.
+ if wait {
+ err = db.compTriggerWait(db.mcompCmdC)
+ } else {
+ db.compTrigger(db.mcompCmdC)
+ }
+ return
+}
+
+func (db *DB) flush(n int) (mdb *memDB, mdbFree int, err error) {
+ delayed := false
+ slowdownTrigger := db.s.o.GetWriteL0SlowdownTrigger()
+ pauseTrigger := db.s.o.GetWriteL0PauseTrigger()
+ flush := func() (retry bool) {
+ mdb = db.getEffectiveMem()
+ if mdb == nil {
+ err = ErrClosed
+ return false
+ }
+ defer func() {
+ if retry {
+ mdb.decref()
+ mdb = nil
+ }
+ }()
+ tLen := db.s.tLen(0)
+ mdbFree = mdb.Free()
+ switch {
+ case tLen >= slowdownTrigger && !delayed:
+ delayed = true
+ time.Sleep(time.Millisecond)
+ case mdbFree >= n:
+ return false
+ case tLen >= pauseTrigger:
+ delayed = true
+ err = db.compTriggerWait(db.tcompCmdC)
+ if err != nil {
+ return false
+ }
+ default:
+ // Allow memdb to grow if it has no entry.
+ if mdb.Len() == 0 {
+ mdbFree = n
+ } else {
+ mdb.decref()
+ mdb, err = db.rotateMem(n, false)
+ if err == nil {
+ mdbFree = mdb.Free()
+ } else {
+ mdbFree = 0
+ }
+ }
+ return false
+ }
+ return true
+ }
+ start := time.Now()
+ for flush() {
+ }
+ if delayed {
+ db.writeDelay += time.Since(start)
+ db.writeDelayN++
+ } else if db.writeDelayN > 0 {
+ db.logf("db@write was delayed N·%d T·%v", db.writeDelayN, db.writeDelay)
+ db.writeDelay = 0
+ db.writeDelayN = 0
+ }
+ return
+}
+
+type writeMerge struct {
+ sync bool
+ batch *Batch
+ keyType keyType
+ key, value []byte
+}
+
+func (db *DB) unlockWrite(overflow bool, merged int, err error) {
+ for i := 0; i < merged; i++ {
+ db.writeAckC <- err
+ }
+ if overflow {
+ // Pass lock to the next write (that failed to merge).
+ db.writeMergedC <- false
+ } else {
+ // Release lock.
+ <-db.writeLockC
+ }
+}
+
+// ourBatch if defined should equal with batch.
+func (db *DB) writeLocked(batch, ourBatch *Batch, merge, sync bool) error {
+ // Try to flush memdb. This method would also trying to throttle writes
+ // if it is too fast and compaction cannot catch-up.
+ mdb, mdbFree, err := db.flush(batch.internalLen)
+ if err != nil {
+ db.unlockWrite(false, 0, err)
+ return err
+ }
+ defer mdb.decref()
+
+ var (
+ overflow bool
+ merged int
+ batches = []*Batch{batch}
+ )
+
+ if merge {
+ // Merge limit.
+ var mergeLimit int
+ if batch.internalLen > 128<<10 {
+ mergeLimit = (1 << 20) - batch.internalLen
+ } else {
+ mergeLimit = 128 << 10
+ }
+ mergeCap := mdbFree - batch.internalLen
+ if mergeLimit > mergeCap {
+ mergeLimit = mergeCap
+ }
+
+ merge:
+ for mergeLimit > 0 {
+ select {
+ case incoming := <-db.writeMergeC:
+ if incoming.batch != nil {
+ // Merge batch.
+ if incoming.batch.internalLen > mergeLimit {
+ overflow = true
+ break merge
+ }
+ batches = append(batches, incoming.batch)
+ mergeLimit -= incoming.batch.internalLen
+ } else {
+ // Merge put.
+ internalLen := len(incoming.key) + len(incoming.value) + 8
+ if internalLen > mergeLimit {
+ overflow = true
+ break merge
+ }
+ if ourBatch == nil {
+ ourBatch = db.batchPool.Get().(*Batch)
+ ourBatch.Reset()
+ batches = append(batches, ourBatch)
+ }
+ // We can use same batch since concurrent write doesn't
+ // guarantee write order.
+ ourBatch.appendRec(incoming.keyType, incoming.key, incoming.value)
+ mergeLimit -= internalLen
+ }
+ sync = sync || incoming.sync
+ merged++
+ db.writeMergedC <- true
+
+ default:
+ break merge
+ }
+ }
+ }
+
+ // Seq number.
+ seq := db.seq + 1
+
+ // Write journal.
+ if err := db.writeJournal(batches, seq, sync); err != nil {
+ db.unlockWrite(overflow, merged, err)
+ return err
+ }
+
+ // Put batches.
+ for _, batch := range batches {
+ if err := batch.putMem(seq, mdb.DB); err != nil {
+ panic(err)
+ }
+ seq += uint64(batch.Len())
+ }
+
+ // Incr seq number.
+ db.addSeq(uint64(batchesLen(batches)))
+
+ // Rotate memdb if it's reach the threshold.
+ if batch.internalLen >= mdbFree {
+ db.rotateMem(0, false)
+ }
+
+ db.unlockWrite(overflow, merged, nil)
+ return nil
+}
+
+// Write apply the given batch to the DB. The batch records will be applied
+// sequentially. Write might be used concurrently, when used concurrently and
+// batch is small enough, write will try to merge the batches. Set NoWriteMerge
+// option to true to disable write merge.
+//
+// It is safe to modify the contents of the arguments after Write returns but
+// not before. Write will not modify content of the batch.
+func (db *DB) Write(batch *Batch, wo *opt.WriteOptions) error {
+ if err := db.ok(); err != nil || batch == nil || batch.Len() == 0 {
+ return err
+ }
+
+ // If the batch size is larger than write buffer, it may justified to write
+ // using transaction instead. Using transaction the batch will be written
+ // into tables directly, skipping the journaling.
+ if batch.internalLen > db.s.o.GetWriteBuffer() && !db.s.o.GetDisableLargeBatchTransaction() {
+ tr, err := db.OpenTransaction()
+ if err != nil {
+ return err
+ }
+ if err := tr.Write(batch, wo); err != nil {
+ tr.Discard()
+ return err
+ }
+ return tr.Commit()
+ }
+
+ merge := !wo.GetNoWriteMerge() && !db.s.o.GetNoWriteMerge()
+ sync := wo.GetSync() && !db.s.o.GetNoSync()
+
+ // Acquire write lock.
+ if merge {
+ select {
+ case db.writeMergeC <- writeMerge{sync: sync, batch: batch}:
+ if <-db.writeMergedC {
+ // Write is merged.
+ return <-db.writeAckC
+ }
+ // Write is not merged, the write lock is handed to us. Continue.
+ case db.writeLockC <- struct{}{}:
+ // Write lock acquired.
+ case err := <-db.compPerErrC:
+ // Compaction error.
+ return err
+ case <-db.closeC:
+ // Closed
+ return ErrClosed
+ }
+ } else {
+ select {
+ case db.writeLockC <- struct{}{}:
+ // Write lock acquired.
+ case err := <-db.compPerErrC:
+ // Compaction error.
+ return err
+ case <-db.closeC:
+ // Closed
+ return ErrClosed
+ }
+ }
+
+ return db.writeLocked(batch, nil, merge, sync)
+}
+
+func (db *DB) putRec(kt keyType, key, value []byte, wo *opt.WriteOptions) error {
+ if err := db.ok(); err != nil {
+ return err
+ }
+
+ merge := !wo.GetNoWriteMerge() && !db.s.o.GetNoWriteMerge()
+ sync := wo.GetSync() && !db.s.o.GetNoSync()
+
+ // Acquire write lock.
+ if merge {
+ select {
+ case db.writeMergeC <- writeMerge{sync: sync, keyType: kt, key: key, value: value}:
+ if <-db.writeMergedC {
+ // Write is merged.
+ return <-db.writeAckC
+ }
+ // Write is not merged, the write lock is handed to us. Continue.
+ case db.writeLockC <- struct{}{}:
+ // Write lock acquired.
+ case err := <-db.compPerErrC:
+ // Compaction error.
+ return err
+ case <-db.closeC:
+ // Closed
+ return ErrClosed
+ }
+ } else {
+ select {
+ case db.writeLockC <- struct{}{}:
+ // Write lock acquired.
+ case err := <-db.compPerErrC:
+ // Compaction error.
+ return err
+ case <-db.closeC:
+ // Closed
+ return ErrClosed
+ }
+ }
+
+ batch := db.batchPool.Get().(*Batch)
+ batch.Reset()
+ batch.appendRec(kt, key, value)
+ return db.writeLocked(batch, batch, merge, sync)
+}
+
+// Put sets the value for the given key. It overwrites any previous value
+// for that key; a DB is not a multi-map. Write merge also applies for Put, see
+// Write.
+//
+// It is safe to modify the contents of the arguments after Put returns but not
+// before.
+func (db *DB) Put(key, value []byte, wo *opt.WriteOptions) error {
+ return db.putRec(keyTypeVal, key, value, wo)
+}
+
+// Delete deletes the value for the given key. Delete will not returns error if
+// key doesn't exist. Write merge also applies for Delete, see Write.
+//
+// It is safe to modify the contents of the arguments after Delete returns but
+// not before.
+func (db *DB) Delete(key []byte, wo *opt.WriteOptions) error {
+ return db.putRec(keyTypeDel, key, nil, wo)
+}
+
+func isMemOverlaps(icmp *iComparer, mem *memdb.DB, min, max []byte) bool {
+ iter := mem.NewIterator(nil)
+ defer iter.Release()
+ return (max == nil || (iter.First() && icmp.uCompare(max, internalKey(iter.Key()).ukey()) >= 0)) &&
+ (min == nil || (iter.Last() && icmp.uCompare(min, internalKey(iter.Key()).ukey()) <= 0))
+}
+
+// CompactRange compacts the underlying DB for the given key range.
+// In particular, deleted and overwritten versions are discarded,
+// and the data is rearranged to reduce the cost of operations
+// needed to access the data. This operation should typically only
+// be invoked by users who understand the underlying implementation.
+//
+// A nil Range.Start is treated as a key before all keys in the DB.
+// And a nil Range.Limit is treated as a key after all keys in the DB.
+// Therefore if both is nil then it will compact entire DB.
+func (db *DB) CompactRange(r util.Range) error {
+ if err := db.ok(); err != nil {
+ return err
+ }
+
+ // Lock writer.
+ select {
+ case db.writeLockC <- struct{}{}:
+ case err := <-db.compPerErrC:
+ return err
+ case <-db.closeC:
+ return ErrClosed
+ }
+
+ // Check for overlaps in memdb.
+ mdb := db.getEffectiveMem()
+ if mdb == nil {
+ return ErrClosed
+ }
+ defer mdb.decref()
+ if isMemOverlaps(db.s.icmp, mdb.DB, r.Start, r.Limit) {
+ // Memdb compaction.
+ if _, err := db.rotateMem(0, false); err != nil {
+ <-db.writeLockC
+ return err
+ }
+ <-db.writeLockC
+ if err := db.compTriggerWait(db.mcompCmdC); err != nil {
+ return err
+ }
+ } else {
+ <-db.writeLockC
+ }
+
+ // Table compaction.
+ return db.compTriggerRange(db.tcompCmdC, -1, r.Start, r.Limit)
+}
+
+// SetReadOnly makes DB read-only. It will stay read-only until reopened.
+func (db *DB) SetReadOnly() error {
+ if err := db.ok(); err != nil {
+ return err
+ }
+
+ // Lock writer.
+ select {
+ case db.writeLockC <- struct{}{}:
+ db.compWriteLocking = true
+ case err := <-db.compPerErrC:
+ return err
+ case <-db.closeC:
+ return ErrClosed
+ }
+
+ // Set compaction read-only.
+ select {
+ case db.compErrSetC <- ErrReadOnly:
+ case perr := <-db.compPerErrC:
+ return perr
+ case <-db.closeC:
+ return ErrClosed
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/doc.go b/vendor/github.com/syndtr/goleveldb/leveldb/doc.go
new file mode 100644
index 000000000..53f13bb24
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/doc.go
@@ -0,0 +1,90 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package leveldb provides implementation of LevelDB key/value database.
+//
+// Create or open a database:
+//
+// db, err := leveldb.OpenFile("path/to/db", nil)
+// ...
+// defer db.Close()
+// ...
+//
+// Read or modify the database content:
+//
+// // Remember that the contents of the returned slice should not be modified.
+// data, err := db.Get([]byte("key"), nil)
+// ...
+// err = db.Put([]byte("key"), []byte("value"), nil)
+// ...
+// err = db.Delete([]byte("key"), nil)
+// ...
+//
+// Iterate over database content:
+//
+// iter := db.NewIterator(nil, nil)
+// for iter.Next() {
+// // Remember that the contents of the returned slice should not be modified, and
+// // only valid until the next call to Next.
+// key := iter.Key()
+// value := iter.Value()
+// ...
+// }
+// iter.Release()
+// err = iter.Error()
+// ...
+//
+// Iterate over subset of database content with a particular prefix:
+// iter := db.NewIterator(util.BytesPrefix([]byte("foo-")), nil)
+// for iter.Next() {
+// // Use key/value.
+// ...
+// }
+// iter.Release()
+// err = iter.Error()
+// ...
+//
+// Seek-then-Iterate:
+//
+// iter := db.NewIterator(nil, nil)
+// for ok := iter.Seek(key); ok; ok = iter.Next() {
+// // Use key/value.
+// ...
+// }
+// iter.Release()
+// err = iter.Error()
+// ...
+//
+// Iterate over subset of database content:
+//
+// iter := db.NewIterator(&util.Range{Start: []byte("foo"), Limit: []byte("xoo")}, nil)
+// for iter.Next() {
+// // Use key/value.
+// ...
+// }
+// iter.Release()
+// err = iter.Error()
+// ...
+//
+// Batch writes:
+//
+// batch := new(leveldb.Batch)
+// batch.Put([]byte("foo"), []byte("value"))
+// batch.Put([]byte("bar"), []byte("another value"))
+// batch.Delete([]byte("baz"))
+// err = db.Write(batch, nil)
+// ...
+//
+// Use bloom filter:
+//
+// o := &opt.Options{
+// Filter: filter.NewBloomFilter(10),
+// }
+// db, err := leveldb.OpenFile("path/to/db", o)
+// ...
+// defer db.Close()
+// ...
+package leveldb
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/errors.go b/vendor/github.com/syndtr/goleveldb/leveldb/errors.go
new file mode 100644
index 000000000..de2649812
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/errors.go
@@ -0,0 +1,20 @@
+// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/errors"
+)
+
+// Common errors.
+var (
+ ErrNotFound = errors.ErrNotFound
+ ErrReadOnly = errors.New("leveldb: read-only mode")
+ ErrSnapshotReleased = errors.New("leveldb: snapshot released")
+ ErrIterReleased = errors.New("leveldb: iterator released")
+ ErrClosed = errors.New("leveldb: closed")
+)
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go b/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go
new file mode 100644
index 000000000..8d6146b6f
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/errors/errors.go
@@ -0,0 +1,78 @@
+// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package errors provides common error types used throughout leveldb.
+package errors
+
+import (
+ "errors"
+ "fmt"
+
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// Common errors.
+var (
+ ErrNotFound = New("leveldb: not found")
+ ErrReleased = util.ErrReleased
+ ErrHasReleaser = util.ErrHasReleaser
+)
+
+// New returns an error that formats as the given text.
+func New(text string) error {
+ return errors.New(text)
+}
+
+// ErrCorrupted is the type that wraps errors that indicate corruption in
+// the database.
+type ErrCorrupted struct {
+ Fd storage.FileDesc
+ Err error
+}
+
+func (e *ErrCorrupted) Error() string {
+ if !e.Fd.Zero() {
+ return fmt.Sprintf("%v [file=%v]", e.Err, e.Fd)
+ }
+ return e.Err.Error()
+}
+
+// NewErrCorrupted creates new ErrCorrupted error.
+func NewErrCorrupted(fd storage.FileDesc, err error) error {
+ return &ErrCorrupted{fd, err}
+}
+
+// IsCorrupted returns a boolean indicating whether the error is indicating
+// a corruption.
+func IsCorrupted(err error) bool {
+ switch err.(type) {
+ case *ErrCorrupted:
+ return true
+ case *storage.ErrCorrupted:
+ return true
+ }
+ return false
+}
+
+// ErrMissingFiles is the type that indicating a corruption due to missing
+// files. ErrMissingFiles always wrapped with ErrCorrupted.
+type ErrMissingFiles struct {
+ Fds []storage.FileDesc
+}
+
+func (e *ErrMissingFiles) Error() string { return "file missing" }
+
+// SetFd sets 'file info' of the given error with the given file.
+// Currently only ErrCorrupted is supported, otherwise will do nothing.
+func SetFd(err error, fd storage.FileDesc) error {
+ switch x := err.(type) {
+ case *ErrCorrupted:
+ x.Fd = fd
+ return x
+ }
+ return err
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter.go
new file mode 100644
index 000000000..e961e420d
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/filter.go
@@ -0,0 +1,31 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/filter"
+)
+
+type iFilter struct {
+ filter.Filter
+}
+
+func (f iFilter) Contains(filter, key []byte) bool {
+ return f.Filter.Contains(filter, internalKey(key).ukey())
+}
+
+func (f iFilter) NewGenerator() filter.FilterGenerator {
+ return iFilterGenerator{f.Filter.NewGenerator()}
+}
+
+type iFilterGenerator struct {
+ filter.FilterGenerator
+}
+
+func (g iFilterGenerator) Add(key []byte) {
+ g.FilterGenerator.Add(internalKey(key).ukey())
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go
new file mode 100644
index 000000000..bab0e9970
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/filter/bloom.go
@@ -0,0 +1,116 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package filter
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+func bloomHash(key []byte) uint32 {
+ return util.Hash(key, 0xbc9f1d34)
+}
+
+type bloomFilter int
+
+// The bloom filter serializes its parameters and is backward compatible
+// with respect to them. Therefor, its parameters are not added to its
+// name.
+func (bloomFilter) Name() string {
+ return "leveldb.BuiltinBloomFilter"
+}
+
+func (f bloomFilter) Contains(filter, key []byte) bool {
+ nBytes := len(filter) - 1
+ if nBytes < 1 {
+ return false
+ }
+ nBits := uint32(nBytes * 8)
+
+ // Use the encoded k so that we can read filters generated by
+ // bloom filters created using different parameters.
+ k := filter[nBytes]
+ if k > 30 {
+ // Reserved for potentially new encodings for short bloom filters.
+ // Consider it a match.
+ return true
+ }
+
+ kh := bloomHash(key)
+ delta := (kh >> 17) | (kh << 15) // Rotate right 17 bits
+ for j := uint8(0); j < k; j++ {
+ bitpos := kh % nBits
+ if (uint32(filter[bitpos/8]) & (1 << (bitpos % 8))) == 0 {
+ return false
+ }
+ kh += delta
+ }
+ return true
+}
+
+func (f bloomFilter) NewGenerator() FilterGenerator {
+ // Round down to reduce probing cost a little bit.
+ k := uint8(f * 69 / 100) // 0.69 =~ ln(2)
+ if k < 1 {
+ k = 1
+ } else if k > 30 {
+ k = 30
+ }
+ return &bloomFilterGenerator{
+ n: int(f),
+ k: k,
+ }
+}
+
+type bloomFilterGenerator struct {
+ n int
+ k uint8
+
+ keyHashes []uint32
+}
+
+func (g *bloomFilterGenerator) Add(key []byte) {
+ // Use double-hashing to generate a sequence of hash values.
+ // See analysis in [Kirsch,Mitzenmacher 2006].
+ g.keyHashes = append(g.keyHashes, bloomHash(key))
+}
+
+func (g *bloomFilterGenerator) Generate(b Buffer) {
+ // Compute bloom filter size (in both bits and bytes)
+ nBits := uint32(len(g.keyHashes) * g.n)
+ // For small n, we can see a very high false positive rate. Fix it
+ // by enforcing a minimum bloom filter length.
+ if nBits < 64 {
+ nBits = 64
+ }
+ nBytes := (nBits + 7) / 8
+ nBits = nBytes * 8
+
+ dest := b.Alloc(int(nBytes) + 1)
+ dest[nBytes] = g.k
+ for _, kh := range g.keyHashes {
+ delta := (kh >> 17) | (kh << 15) // Rotate right 17 bits
+ for j := uint8(0); j < g.k; j++ {
+ bitpos := kh % nBits
+ dest[bitpos/8] |= (1 << (bitpos % 8))
+ kh += delta
+ }
+ }
+
+ g.keyHashes = g.keyHashes[:0]
+}
+
+// NewBloomFilter creates a new initialized bloom filter for given
+// bitsPerKey.
+//
+// Since bitsPerKey is persisted individually for each bloom filter
+// serialization, bloom filters are backwards compatible with respect to
+// changing bitsPerKey. This means that no big performance penalty will
+// be experienced when changing the parameter. See documentation for
+// opt.Options.Filter for more information.
+func NewBloomFilter(bitsPerKey int) Filter {
+ return bloomFilter(bitsPerKey)
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go b/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go
new file mode 100644
index 000000000..7a925c5a8
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/filter/filter.go
@@ -0,0 +1,60 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package filter provides interface and implementation of probabilistic
+// data structure.
+//
+// The filter is resposible for creating small filter from a set of keys.
+// These filter will then used to test whether a key is a member of the set.
+// In many cases, a filter can cut down the number of disk seeks from a
+// handful to a single disk seek per DB.Get call.
+package filter
+
+// Buffer is the interface that wraps basic Alloc, Write and WriteByte methods.
+type Buffer interface {
+ // Alloc allocs n bytes of slice from the buffer. This also advancing
+ // write offset.
+ Alloc(n int) []byte
+
+ // Write appends the contents of p to the buffer.
+ Write(p []byte) (n int, err error)
+
+ // WriteByte appends the byte c to the buffer.
+ WriteByte(c byte) error
+}
+
+// Filter is the filter.
+type Filter interface {
+ // Name returns the name of this policy.
+ //
+ // Note that if the filter encoding changes in an incompatible way,
+ // the name returned by this method must be changed. Otherwise, old
+ // incompatible filters may be passed to methods of this type.
+ Name() string
+
+ // NewGenerator creates a new filter generator.
+ NewGenerator() FilterGenerator
+
+ // Contains returns true if the filter contains the given key.
+ //
+ // The filter are filters generated by the filter generator.
+ Contains(filter, key []byte) bool
+}
+
+// FilterGenerator is the filter generator.
+type FilterGenerator interface {
+ // Add adds a key to the filter generator.
+ //
+ // The key may become invalid after call to this method end, therefor
+ // key must be copied if implementation require keeping key for later
+ // use. The key should not modified directly, doing so may cause
+ // undefined results.
+ Add(key []byte)
+
+ // Generate generates filters based on keys passed so far. After call
+ // to Generate the filter generator maybe resetted, depends on implementation.
+ Generate(b Buffer)
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go
new file mode 100644
index 000000000..a23ab05f7
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/array_iter.go
@@ -0,0 +1,184 @@
+// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package iterator
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// BasicArray is the interface that wraps basic Len and Search method.
+type BasicArray interface {
+ // Len returns length of the array.
+ Len() int
+
+ // Search finds smallest index that point to a key that is greater
+ // than or equal to the given key.
+ Search(key []byte) int
+}
+
+// Array is the interface that wraps BasicArray and basic Index method.
+type Array interface {
+ BasicArray
+
+ // Index returns key/value pair with index of i.
+ Index(i int) (key, value []byte)
+}
+
+// Array is the interface that wraps BasicArray and basic Get method.
+type ArrayIndexer interface {
+ BasicArray
+
+ // Get returns a new data iterator with index of i.
+ Get(i int) Iterator
+}
+
+type basicArrayIterator struct {
+ util.BasicReleaser
+ array BasicArray
+ pos int
+ err error
+}
+
+func (i *basicArrayIterator) Valid() bool {
+ return i.pos >= 0 && i.pos < i.array.Len() && !i.Released()
+}
+
+func (i *basicArrayIterator) First() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.array.Len() == 0 {
+ i.pos = -1
+ return false
+ }
+ i.pos = 0
+ return true
+}
+
+func (i *basicArrayIterator) Last() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ n := i.array.Len()
+ if n == 0 {
+ i.pos = 0
+ return false
+ }
+ i.pos = n - 1
+ return true
+}
+
+func (i *basicArrayIterator) Seek(key []byte) bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ n := i.array.Len()
+ if n == 0 {
+ i.pos = 0
+ return false
+ }
+ i.pos = i.array.Search(key)
+ if i.pos >= n {
+ return false
+ }
+ return true
+}
+
+func (i *basicArrayIterator) Next() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ i.pos++
+ if n := i.array.Len(); i.pos >= n {
+ i.pos = n
+ return false
+ }
+ return true
+}
+
+func (i *basicArrayIterator) Prev() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ i.pos--
+ if i.pos < 0 {
+ i.pos = -1
+ return false
+ }
+ return true
+}
+
+func (i *basicArrayIterator) Error() error { return i.err }
+
+type arrayIterator struct {
+ basicArrayIterator
+ array Array
+ pos int
+ key, value []byte
+}
+
+func (i *arrayIterator) updateKV() {
+ if i.pos == i.basicArrayIterator.pos {
+ return
+ }
+ i.pos = i.basicArrayIterator.pos
+ if i.Valid() {
+ i.key, i.value = i.array.Index(i.pos)
+ } else {
+ i.key = nil
+ i.value = nil
+ }
+}
+
+func (i *arrayIterator) Key() []byte {
+ i.updateKV()
+ return i.key
+}
+
+func (i *arrayIterator) Value() []byte {
+ i.updateKV()
+ return i.value
+}
+
+type arrayIteratorIndexer struct {
+ basicArrayIterator
+ array ArrayIndexer
+}
+
+func (i *arrayIteratorIndexer) Get() Iterator {
+ if i.Valid() {
+ return i.array.Get(i.basicArrayIterator.pos)
+ }
+ return nil
+}
+
+// NewArrayIterator returns an iterator from the given array.
+func NewArrayIterator(array Array) Iterator {
+ return &arrayIterator{
+ basicArrayIterator: basicArrayIterator{array: array, pos: -1},
+ array: array,
+ pos: -1,
+ }
+}
+
+// NewArrayIndexer returns an index iterator from the given array.
+func NewArrayIndexer(array ArrayIndexer) IteratorIndexer {
+ return &arrayIteratorIndexer{
+ basicArrayIterator: basicArrayIterator{array: array, pos: -1},
+ array: array,
+ }
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go
new file mode 100644
index 000000000..939adbb93
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/indexed_iter.go
@@ -0,0 +1,242 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package iterator
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// IteratorIndexer is the interface that wraps CommonIterator and basic Get
+// method. IteratorIndexer provides index for indexed iterator.
+type IteratorIndexer interface {
+ CommonIterator
+
+ // Get returns a new data iterator for the current position, or nil if
+ // done.
+ Get() Iterator
+}
+
+type indexedIterator struct {
+ util.BasicReleaser
+ index IteratorIndexer
+ strict bool
+
+ data Iterator
+ err error
+ errf func(err error)
+ closed bool
+}
+
+func (i *indexedIterator) setData() {
+ if i.data != nil {
+ i.data.Release()
+ }
+ i.data = i.index.Get()
+}
+
+func (i *indexedIterator) clearData() {
+ if i.data != nil {
+ i.data.Release()
+ }
+ i.data = nil
+}
+
+func (i *indexedIterator) indexErr() {
+ if err := i.index.Error(); err != nil {
+ if i.errf != nil {
+ i.errf(err)
+ }
+ i.err = err
+ }
+}
+
+func (i *indexedIterator) dataErr() bool {
+ if err := i.data.Error(); err != nil {
+ if i.errf != nil {
+ i.errf(err)
+ }
+ if i.strict || !errors.IsCorrupted(err) {
+ i.err = err
+ return true
+ }
+ }
+ return false
+}
+
+func (i *indexedIterator) Valid() bool {
+ return i.data != nil && i.data.Valid()
+}
+
+func (i *indexedIterator) First() bool {
+ if i.err != nil {
+ return false
+ } else if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if !i.index.First() {
+ i.indexErr()
+ i.clearData()
+ return false
+ }
+ i.setData()
+ return i.Next()
+}
+
+func (i *indexedIterator) Last() bool {
+ if i.err != nil {
+ return false
+ } else if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if !i.index.Last() {
+ i.indexErr()
+ i.clearData()
+ return false
+ }
+ i.setData()
+ if !i.data.Last() {
+ if i.dataErr() {
+ return false
+ }
+ i.clearData()
+ return i.Prev()
+ }
+ return true
+}
+
+func (i *indexedIterator) Seek(key []byte) bool {
+ if i.err != nil {
+ return false
+ } else if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if !i.index.Seek(key) {
+ i.indexErr()
+ i.clearData()
+ return false
+ }
+ i.setData()
+ if !i.data.Seek(key) {
+ if i.dataErr() {
+ return false
+ }
+ i.clearData()
+ return i.Next()
+ }
+ return true
+}
+
+func (i *indexedIterator) Next() bool {
+ if i.err != nil {
+ return false
+ } else if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ switch {
+ case i.data != nil && !i.data.Next():
+ if i.dataErr() {
+ return false
+ }
+ i.clearData()
+ fallthrough
+ case i.data == nil:
+ if !i.index.Next() {
+ i.indexErr()
+ return false
+ }
+ i.setData()
+ return i.Next()
+ }
+ return true
+}
+
+func (i *indexedIterator) Prev() bool {
+ if i.err != nil {
+ return false
+ } else if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ switch {
+ case i.data != nil && !i.data.Prev():
+ if i.dataErr() {
+ return false
+ }
+ i.clearData()
+ fallthrough
+ case i.data == nil:
+ if !i.index.Prev() {
+ i.indexErr()
+ return false
+ }
+ i.setData()
+ if !i.data.Last() {
+ if i.dataErr() {
+ return false
+ }
+ i.clearData()
+ return i.Prev()
+ }
+ }
+ return true
+}
+
+func (i *indexedIterator) Key() []byte {
+ if i.data == nil {
+ return nil
+ }
+ return i.data.Key()
+}
+
+func (i *indexedIterator) Value() []byte {
+ if i.data == nil {
+ return nil
+ }
+ return i.data.Value()
+}
+
+func (i *indexedIterator) Release() {
+ i.clearData()
+ i.index.Release()
+ i.BasicReleaser.Release()
+}
+
+func (i *indexedIterator) Error() error {
+ if i.err != nil {
+ return i.err
+ }
+ if err := i.index.Error(); err != nil {
+ return err
+ }
+ return nil
+}
+
+func (i *indexedIterator) SetErrorCallback(f func(err error)) {
+ i.errf = f
+}
+
+// NewIndexedIterator returns an 'indexed iterator'. An index is iterator
+// that returns another iterator, a 'data iterator'. A 'data iterator' is the
+// iterator that contains actual key/value pairs.
+//
+// If strict is true the any 'corruption errors' (i.e errors.IsCorrupted(err) == true)
+// won't be ignored and will halt 'indexed iterator', otherwise the iterator will
+// continue to the next 'data iterator'. Corruption on 'index iterator' will not be
+// ignored and will halt the iterator.
+func NewIndexedIterator(index IteratorIndexer, strict bool) Iterator {
+ return &indexedIterator{index: index, strict: strict}
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go
new file mode 100644
index 000000000..3b5553274
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/iter.go
@@ -0,0 +1,132 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package iterator provides interface and implementation to traverse over
+// contents of a database.
+package iterator
+
+import (
+ "errors"
+
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+var (
+ ErrIterReleased = errors.New("leveldb/iterator: iterator released")
+)
+
+// IteratorSeeker is the interface that wraps the 'seeks method'.
+type IteratorSeeker interface {
+ // First moves the iterator to the first key/value pair. If the iterator
+ // only contains one key/value pair then First and Last would moves
+ // to the same key/value pair.
+ // It returns whether such pair exist.
+ First() bool
+
+ // Last moves the iterator to the last key/value pair. If the iterator
+ // only contains one key/value pair then First and Last would moves
+ // to the same key/value pair.
+ // It returns whether such pair exist.
+ Last() bool
+
+ // Seek moves the iterator to the first key/value pair whose key is greater
+ // than or equal to the given key.
+ // It returns whether such pair exist.
+ //
+ // It is safe to modify the contents of the argument after Seek returns.
+ Seek(key []byte) bool
+
+ // Next moves the iterator to the next key/value pair.
+ // It returns whether the iterator is exhausted.
+ Next() bool
+
+ // Prev moves the iterator to the previous key/value pair.
+ // It returns whether the iterator is exhausted.
+ Prev() bool
+}
+
+// CommonIterator is the interface that wraps common iterator methods.
+type CommonIterator interface {
+ IteratorSeeker
+
+ // util.Releaser is the interface that wraps basic Release method.
+ // When called Release will releases any resources associated with the
+ // iterator.
+ util.Releaser
+
+ // util.ReleaseSetter is the interface that wraps the basic SetReleaser
+ // method.
+ util.ReleaseSetter
+
+ // TODO: Remove this when ready.
+ Valid() bool
+
+ // Error returns any accumulated error. Exhausting all the key/value pairs
+ // is not considered to be an error.
+ Error() error
+}
+
+// Iterator iterates over a DB's key/value pairs in key order.
+//
+// When encounter an error any 'seeks method' will return false and will
+// yield no key/value pairs. The error can be queried by calling the Error
+// method. Calling Release is still necessary.
+//
+// An iterator must be released after use, but it is not necessary to read
+// an iterator until exhaustion.
+// Also, an iterator is not necessarily safe for concurrent use, but it is
+// safe to use multiple iterators concurrently, with each in a dedicated
+// goroutine.
+type Iterator interface {
+ CommonIterator
+
+ // Key returns the key of the current key/value pair, or nil if done.
+ // The caller should not modify the contents of the returned slice, and
+ // its contents may change on the next call to any 'seeks method'.
+ Key() []byte
+
+ // Value returns the key of the current key/value pair, or nil if done.
+ // The caller should not modify the contents of the returned slice, and
+ // its contents may change on the next call to any 'seeks method'.
+ Value() []byte
+}
+
+// ErrorCallbackSetter is the interface that wraps basic SetErrorCallback
+// method.
+//
+// ErrorCallbackSetter implemented by indexed and merged iterator.
+type ErrorCallbackSetter interface {
+ // SetErrorCallback allows set an error callback of the corresponding
+ // iterator. Use nil to clear the callback.
+ SetErrorCallback(f func(err error))
+}
+
+type emptyIterator struct {
+ util.BasicReleaser
+ err error
+}
+
+func (i *emptyIterator) rErr() {
+ if i.err == nil && i.Released() {
+ i.err = ErrIterReleased
+ }
+}
+
+func (*emptyIterator) Valid() bool { return false }
+func (i *emptyIterator) First() bool { i.rErr(); return false }
+func (i *emptyIterator) Last() bool { i.rErr(); return false }
+func (i *emptyIterator) Seek(key []byte) bool { i.rErr(); return false }
+func (i *emptyIterator) Next() bool { i.rErr(); return false }
+func (i *emptyIterator) Prev() bool { i.rErr(); return false }
+func (*emptyIterator) Key() []byte { return nil }
+func (*emptyIterator) Value() []byte { return nil }
+func (i *emptyIterator) Error() error { return i.err }
+
+// NewEmptyIterator creates an empty iterator. The err parameter can be
+// nil, but if not nil the given err will be returned by Error method.
+func NewEmptyIterator(err error) Iterator {
+ return &emptyIterator{err: err}
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go
new file mode 100644
index 000000000..1a7e29df8
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/iterator/merged_iter.go
@@ -0,0 +1,304 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package iterator
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+type dir int
+
+const (
+ dirReleased dir = iota - 1
+ dirSOI
+ dirEOI
+ dirBackward
+ dirForward
+)
+
+type mergedIterator struct {
+ cmp comparer.Comparer
+ iters []Iterator
+ strict bool
+
+ keys [][]byte
+ index int
+ dir dir
+ err error
+ errf func(err error)
+ releaser util.Releaser
+}
+
+func assertKey(key []byte) []byte {
+ if key == nil {
+ panic("leveldb/iterator: nil key")
+ }
+ return key
+}
+
+func (i *mergedIterator) iterErr(iter Iterator) bool {
+ if err := iter.Error(); err != nil {
+ if i.errf != nil {
+ i.errf(err)
+ }
+ if i.strict || !errors.IsCorrupted(err) {
+ i.err = err
+ return true
+ }
+ }
+ return false
+}
+
+func (i *mergedIterator) Valid() bool {
+ return i.err == nil && i.dir > dirEOI
+}
+
+func (i *mergedIterator) First() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ for x, iter := range i.iters {
+ switch {
+ case iter.First():
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ }
+ i.dir = dirSOI
+ return i.next()
+}
+
+func (i *mergedIterator) Last() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ for x, iter := range i.iters {
+ switch {
+ case iter.Last():
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ }
+ i.dir = dirEOI
+ return i.prev()
+}
+
+func (i *mergedIterator) Seek(key []byte) bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ for x, iter := range i.iters {
+ switch {
+ case iter.Seek(key):
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ }
+ i.dir = dirSOI
+ return i.next()
+}
+
+func (i *mergedIterator) next() bool {
+ var key []byte
+ if i.dir == dirForward {
+ key = i.keys[i.index]
+ }
+ for x, tkey := range i.keys {
+ if tkey != nil && (key == nil || i.cmp.Compare(tkey, key) < 0) {
+ key = tkey
+ i.index = x
+ }
+ }
+ if key == nil {
+ i.dir = dirEOI
+ return false
+ }
+ i.dir = dirForward
+ return true
+}
+
+func (i *mergedIterator) Next() bool {
+ if i.dir == dirEOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ switch i.dir {
+ case dirSOI:
+ return i.First()
+ case dirBackward:
+ key := append([]byte{}, i.keys[i.index]...)
+ if !i.Seek(key) {
+ return false
+ }
+ return i.Next()
+ }
+
+ x := i.index
+ iter := i.iters[x]
+ switch {
+ case iter.Next():
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ return i.next()
+}
+
+func (i *mergedIterator) prev() bool {
+ var key []byte
+ if i.dir == dirBackward {
+ key = i.keys[i.index]
+ }
+ for x, tkey := range i.keys {
+ if tkey != nil && (key == nil || i.cmp.Compare(tkey, key) > 0) {
+ key = tkey
+ i.index = x
+ }
+ }
+ if key == nil {
+ i.dir = dirSOI
+ return false
+ }
+ i.dir = dirBackward
+ return true
+}
+
+func (i *mergedIterator) Prev() bool {
+ if i.dir == dirSOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ switch i.dir {
+ case dirEOI:
+ return i.Last()
+ case dirForward:
+ key := append([]byte{}, i.keys[i.index]...)
+ for x, iter := range i.iters {
+ if x == i.index {
+ continue
+ }
+ seek := iter.Seek(key)
+ switch {
+ case seek && iter.Prev(), !seek && iter.Last():
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ }
+ }
+
+ x := i.index
+ iter := i.iters[x]
+ switch {
+ case iter.Prev():
+ i.keys[x] = assertKey(iter.Key())
+ case i.iterErr(iter):
+ return false
+ default:
+ i.keys[x] = nil
+ }
+ return i.prev()
+}
+
+func (i *mergedIterator) Key() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.keys[i.index]
+}
+
+func (i *mergedIterator) Value() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.iters[i.index].Value()
+}
+
+func (i *mergedIterator) Release() {
+ if i.dir != dirReleased {
+ i.dir = dirReleased
+ for _, iter := range i.iters {
+ iter.Release()
+ }
+ i.iters = nil
+ i.keys = nil
+ if i.releaser != nil {
+ i.releaser.Release()
+ i.releaser = nil
+ }
+ }
+}
+
+func (i *mergedIterator) SetReleaser(releaser util.Releaser) {
+ if i.dir == dirReleased {
+ panic(util.ErrReleased)
+ }
+ if i.releaser != nil && releaser != nil {
+ panic(util.ErrHasReleaser)
+ }
+ i.releaser = releaser
+}
+
+func (i *mergedIterator) Error() error {
+ return i.err
+}
+
+func (i *mergedIterator) SetErrorCallback(f func(err error)) {
+ i.errf = f
+}
+
+// NewMergedIterator returns an iterator that merges its input. Walking the
+// resultant iterator will return all key/value pairs of all input iterators
+// in strictly increasing key order, as defined by cmp.
+// The input's key ranges may overlap, but there are assumed to be no duplicate
+// keys: if iters[i] contains a key k then iters[j] will not contain that key k.
+// None of the iters may be nil.
+//
+// If strict is true the any 'corruption errors' (i.e errors.IsCorrupted(err) == true)
+// won't be ignored and will halt 'merged iterator', otherwise the iterator will
+// continue to the next 'input iterator'.
+func NewMergedIterator(iters []Iterator, cmp comparer.Comparer, strict bool) Iterator {
+ return &mergedIterator{
+ iters: iters,
+ cmp: cmp,
+ strict: strict,
+ keys: make([][]byte, len(iters)),
+ }
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go b/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go
new file mode 100644
index 000000000..d094c3d0f
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/journal/journal.go
@@ -0,0 +1,524 @@
+// Copyright 2011 The LevelDB-Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Taken from: https://code.google.com/p/leveldb-go/source/browse/leveldb/record/record.go?r=1d5ccbe03246da926391ee12d1c6caae054ff4b0
+// License, authors and contributors informations can be found at bellow URLs respectively:
+// https://code.google.com/p/leveldb-go/source/browse/LICENSE
+// https://code.google.com/p/leveldb-go/source/browse/AUTHORS
+// https://code.google.com/p/leveldb-go/source/browse/CONTRIBUTORS
+
+// Package journal reads and writes sequences of journals. Each journal is a stream
+// of bytes that completes before the next journal starts.
+//
+// When reading, call Next to obtain an io.Reader for the next journal. Next will
+// return io.EOF when there are no more journals. It is valid to call Next
+// without reading the current journal to exhaustion.
+//
+// When writing, call Next to obtain an io.Writer for the next journal. Calling
+// Next finishes the current journal. Call Close to finish the final journal.
+//
+// Optionally, call Flush to finish the current journal and flush the underlying
+// writer without starting a new journal. To start a new journal after flushing,
+// call Next.
+//
+// Neither Readers or Writers are safe to use concurrently.
+//
+// Example code:
+// func read(r io.Reader) ([]string, error) {
+// var ss []string
+// journals := journal.NewReader(r, nil, true, true)
+// for {
+// j, err := journals.Next()
+// if err == io.EOF {
+// break
+// }
+// if err != nil {
+// return nil, err
+// }
+// s, err := ioutil.ReadAll(j)
+// if err != nil {
+// return nil, err
+// }
+// ss = append(ss, string(s))
+// }
+// return ss, nil
+// }
+//
+// func write(w io.Writer, ss []string) error {
+// journals := journal.NewWriter(w)
+// for _, s := range ss {
+// j, err := journals.Next()
+// if err != nil {
+// return err
+// }
+// if _, err := j.Write([]byte(s)), err != nil {
+// return err
+// }
+// }
+// return journals.Close()
+// }
+//
+// The wire format is that the stream is divided into 32KiB blocks, and each
+// block contains a number of tightly packed chunks. Chunks cannot cross block
+// boundaries. The last block may be shorter than 32 KiB. Any unused bytes in a
+// block must be zero.
+//
+// A journal maps to one or more chunks. Each chunk has a 7 byte header (a 4
+// byte checksum, a 2 byte little-endian uint16 length, and a 1 byte chunk type)
+// followed by a payload. The checksum is over the chunk type and the payload.
+//
+// There are four chunk types: whether the chunk is the full journal, or the
+// first, middle or last chunk of a multi-chunk journal. A multi-chunk journal
+// has one first chunk, zero or more middle chunks, and one last chunk.
+//
+// The wire format allows for limited recovery in the face of data corruption:
+// on a format error (such as a checksum mismatch), the reader moves to the
+// next block and looks for the next full or first chunk.
+package journal
+
+import (
+ "encoding/binary"
+ "fmt"
+ "io"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// These constants are part of the wire format and should not be changed.
+const (
+ fullChunkType = 1
+ firstChunkType = 2
+ middleChunkType = 3
+ lastChunkType = 4
+)
+
+const (
+ blockSize = 32 * 1024
+ headerSize = 7
+)
+
+type flusher interface {
+ Flush() error
+}
+
+// ErrCorrupted is the error type that generated by corrupted block or chunk.
+type ErrCorrupted struct {
+ Size int
+ Reason string
+}
+
+func (e *ErrCorrupted) Error() string {
+ return fmt.Sprintf("leveldb/journal: block/chunk corrupted: %s (%d bytes)", e.Reason, e.Size)
+}
+
+// Dropper is the interface that wrap simple Drop method. The Drop
+// method will be called when the journal reader dropping a block or chunk.
+type Dropper interface {
+ Drop(err error)
+}
+
+// Reader reads journals from an underlying io.Reader.
+type Reader struct {
+ // r is the underlying reader.
+ r io.Reader
+ // the dropper.
+ dropper Dropper
+ // strict flag.
+ strict bool
+ // checksum flag.
+ checksum bool
+ // seq is the sequence number of the current journal.
+ seq int
+ // buf[i:j] is the unread portion of the current chunk's payload.
+ // The low bound, i, excludes the chunk header.
+ i, j int
+ // n is the number of bytes of buf that are valid. Once reading has started,
+ // only the final block can have n < blockSize.
+ n int
+ // last is whether the current chunk is the last chunk of the journal.
+ last bool
+ // err is any accumulated error.
+ err error
+ // buf is the buffer.
+ buf [blockSize]byte
+}
+
+// NewReader returns a new reader. The dropper may be nil, and if
+// strict is true then corrupted or invalid chunk will halt the journal
+// reader entirely.
+func NewReader(r io.Reader, dropper Dropper, strict, checksum bool) *Reader {
+ return &Reader{
+ r: r,
+ dropper: dropper,
+ strict: strict,
+ checksum: checksum,
+ last: true,
+ }
+}
+
+var errSkip = errors.New("leveldb/journal: skipped")
+
+func (r *Reader) corrupt(n int, reason string, skip bool) error {
+ if r.dropper != nil {
+ r.dropper.Drop(&ErrCorrupted{n, reason})
+ }
+ if r.strict && !skip {
+ r.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrCorrupted{n, reason})
+ return r.err
+ }
+ return errSkip
+}
+
+// nextChunk sets r.buf[r.i:r.j] to hold the next chunk's payload, reading the
+// next block into the buffer if necessary.
+func (r *Reader) nextChunk(first bool) error {
+ for {
+ if r.j+headerSize <= r.n {
+ checksum := binary.LittleEndian.Uint32(r.buf[r.j+0 : r.j+4])
+ length := binary.LittleEndian.Uint16(r.buf[r.j+4 : r.j+6])
+ chunkType := r.buf[r.j+6]
+ unprocBlock := r.n - r.j
+ if checksum == 0 && length == 0 && chunkType == 0 {
+ // Drop entire block.
+ r.i = r.n
+ r.j = r.n
+ return r.corrupt(unprocBlock, "zero header", false)
+ }
+ if chunkType < fullChunkType || chunkType > lastChunkType {
+ // Drop entire block.
+ r.i = r.n
+ r.j = r.n
+ return r.corrupt(unprocBlock, fmt.Sprintf("invalid chunk type %#x", chunkType), false)
+ }
+ r.i = r.j + headerSize
+ r.j = r.j + headerSize + int(length)
+ if r.j > r.n {
+ // Drop entire block.
+ r.i = r.n
+ r.j = r.n
+ return r.corrupt(unprocBlock, "chunk length overflows block", false)
+ } else if r.checksum && checksum != util.NewCRC(r.buf[r.i-1:r.j]).Value() {
+ // Drop entire block.
+ r.i = r.n
+ r.j = r.n
+ return r.corrupt(unprocBlock, "checksum mismatch", false)
+ }
+ if first && chunkType != fullChunkType && chunkType != firstChunkType {
+ chunkLength := (r.j - r.i) + headerSize
+ r.i = r.j
+ // Report the error, but skip it.
+ return r.corrupt(chunkLength, "orphan chunk", true)
+ }
+ r.last = chunkType == fullChunkType || chunkType == lastChunkType
+ return nil
+ }
+
+ // The last block.
+ if r.n < blockSize && r.n > 0 {
+ if !first {
+ return r.corrupt(0, "missing chunk part", false)
+ }
+ r.err = io.EOF
+ return r.err
+ }
+
+ // Read block.
+ n, err := io.ReadFull(r.r, r.buf[:])
+ if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {
+ return err
+ }
+ if n == 0 {
+ if !first {
+ return r.corrupt(0, "missing chunk part", false)
+ }
+ r.err = io.EOF
+ return r.err
+ }
+ r.i, r.j, r.n = 0, 0, n
+ }
+}
+
+// Next returns a reader for the next journal. It returns io.EOF if there are no
+// more journals. The reader returned becomes stale after the next Next call,
+// and should no longer be used. If strict is false, the reader will returns
+// io.ErrUnexpectedEOF error when found corrupted journal.
+func (r *Reader) Next() (io.Reader, error) {
+ r.seq++
+ if r.err != nil {
+ return nil, r.err
+ }
+ r.i = r.j
+ for {
+ if err := r.nextChunk(true); err == nil {
+ break
+ } else if err != errSkip {
+ return nil, err
+ }
+ }
+ return &singleReader{r, r.seq, nil}, nil
+}
+
+// Reset resets the journal reader, allows reuse of the journal reader. Reset returns
+// last accumulated error.
+func (r *Reader) Reset(reader io.Reader, dropper Dropper, strict, checksum bool) error {
+ r.seq++
+ err := r.err
+ r.r = reader
+ r.dropper = dropper
+ r.strict = strict
+ r.checksum = checksum
+ r.i = 0
+ r.j = 0
+ r.n = 0
+ r.last = true
+ r.err = nil
+ return err
+}
+
+type singleReader struct {
+ r *Reader
+ seq int
+ err error
+}
+
+func (x *singleReader) Read(p []byte) (int, error) {
+ r := x.r
+ if r.seq != x.seq {
+ return 0, errors.New("leveldb/journal: stale reader")
+ }
+ if x.err != nil {
+ return 0, x.err
+ }
+ if r.err != nil {
+ return 0, r.err
+ }
+ for r.i == r.j {
+ if r.last {
+ return 0, io.EOF
+ }
+ x.err = r.nextChunk(false)
+ if x.err != nil {
+ if x.err == errSkip {
+ x.err = io.ErrUnexpectedEOF
+ }
+ return 0, x.err
+ }
+ }
+ n := copy(p, r.buf[r.i:r.j])
+ r.i += n
+ return n, nil
+}
+
+func (x *singleReader) ReadByte() (byte, error) {
+ r := x.r
+ if r.seq != x.seq {
+ return 0, errors.New("leveldb/journal: stale reader")
+ }
+ if x.err != nil {
+ return 0, x.err
+ }
+ if r.err != nil {
+ return 0, r.err
+ }
+ for r.i == r.j {
+ if r.last {
+ return 0, io.EOF
+ }
+ x.err = r.nextChunk(false)
+ if x.err != nil {
+ if x.err == errSkip {
+ x.err = io.ErrUnexpectedEOF
+ }
+ return 0, x.err
+ }
+ }
+ c := r.buf[r.i]
+ r.i++
+ return c, nil
+}
+
+// Writer writes journals to an underlying io.Writer.
+type Writer struct {
+ // w is the underlying writer.
+ w io.Writer
+ // seq is the sequence number of the current journal.
+ seq int
+ // f is w as a flusher.
+ f flusher
+ // buf[i:j] is the bytes that will become the current chunk.
+ // The low bound, i, includes the chunk header.
+ i, j int
+ // buf[:written] has already been written to w.
+ // written is zero unless Flush has been called.
+ written int
+ // first is whether the current chunk is the first chunk of the journal.
+ first bool
+ // pending is whether a chunk is buffered but not yet written.
+ pending bool
+ // err is any accumulated error.
+ err error
+ // buf is the buffer.
+ buf [blockSize]byte
+}
+
+// NewWriter returns a new Writer.
+func NewWriter(w io.Writer) *Writer {
+ f, _ := w.(flusher)
+ return &Writer{
+ w: w,
+ f: f,
+ }
+}
+
+// fillHeader fills in the header for the pending chunk.
+func (w *Writer) fillHeader(last bool) {
+ if w.i+headerSize > w.j || w.j > blockSize {
+ panic("leveldb/journal: bad writer state")
+ }
+ if last {
+ if w.first {
+ w.buf[w.i+6] = fullChunkType
+ } else {
+ w.buf[w.i+6] = lastChunkType
+ }
+ } else {
+ if w.first {
+ w.buf[w.i+6] = firstChunkType
+ } else {
+ w.buf[w.i+6] = middleChunkType
+ }
+ }
+ binary.LittleEndian.PutUint32(w.buf[w.i+0:w.i+4], util.NewCRC(w.buf[w.i+6:w.j]).Value())
+ binary.LittleEndian.PutUint16(w.buf[w.i+4:w.i+6], uint16(w.j-w.i-headerSize))
+}
+
+// writeBlock writes the buffered block to the underlying writer, and reserves
+// space for the next chunk's header.
+func (w *Writer) writeBlock() {
+ _, w.err = w.w.Write(w.buf[w.written:])
+ w.i = 0
+ w.j = headerSize
+ w.written = 0
+}
+
+// writePending finishes the current journal and writes the buffer to the
+// underlying writer.
+func (w *Writer) writePending() {
+ if w.err != nil {
+ return
+ }
+ if w.pending {
+ w.fillHeader(true)
+ w.pending = false
+ }
+ _, w.err = w.w.Write(w.buf[w.written:w.j])
+ w.written = w.j
+}
+
+// Close finishes the current journal and closes the writer.
+func (w *Writer) Close() error {
+ w.seq++
+ w.writePending()
+ if w.err != nil {
+ return w.err
+ }
+ w.err = errors.New("leveldb/journal: closed Writer")
+ return nil
+}
+
+// Flush finishes the current journal, writes to the underlying writer, and
+// flushes it if that writer implements interface{ Flush() error }.
+func (w *Writer) Flush() error {
+ w.seq++
+ w.writePending()
+ if w.err != nil {
+ return w.err
+ }
+ if w.f != nil {
+ w.err = w.f.Flush()
+ return w.err
+ }
+ return nil
+}
+
+// Reset resets the journal writer, allows reuse of the journal writer. Reset
+// will also closes the journal writer if not already.
+func (w *Writer) Reset(writer io.Writer) (err error) {
+ w.seq++
+ if w.err == nil {
+ w.writePending()
+ err = w.err
+ }
+ w.w = writer
+ w.f, _ = writer.(flusher)
+ w.i = 0
+ w.j = 0
+ w.written = 0
+ w.first = false
+ w.pending = false
+ w.err = nil
+ return
+}
+
+// Next returns a writer for the next journal. The writer returned becomes stale
+// after the next Close, Flush or Next call, and should no longer be used.
+func (w *Writer) Next() (io.Writer, error) {
+ w.seq++
+ if w.err != nil {
+ return nil, w.err
+ }
+ if w.pending {
+ w.fillHeader(true)
+ }
+ w.i = w.j
+ w.j = w.j + headerSize
+ // Check if there is room in the block for the header.
+ if w.j > blockSize {
+ // Fill in the rest of the block with zeroes.
+ for k := w.i; k < blockSize; k++ {
+ w.buf[k] = 0
+ }
+ w.writeBlock()
+ if w.err != nil {
+ return nil, w.err
+ }
+ }
+ w.first = true
+ w.pending = true
+ return singleWriter{w, w.seq}, nil
+}
+
+type singleWriter struct {
+ w *Writer
+ seq int
+}
+
+func (x singleWriter) Write(p []byte) (int, error) {
+ w := x.w
+ if w.seq != x.seq {
+ return 0, errors.New("leveldb/journal: stale writer")
+ }
+ if w.err != nil {
+ return 0, w.err
+ }
+ n0 := len(p)
+ for len(p) > 0 {
+ // Write a block, if it is full.
+ if w.j == blockSize {
+ w.fillHeader(false)
+ w.writeBlock()
+ if w.err != nil {
+ return 0, w.err
+ }
+ w.first = false
+ }
+ // Copy bytes into the buffer.
+ n := copy(w.buf[w.j:], p)
+ w.j += n
+ p = p[n:]
+ }
+ return n0, nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/key.go b/vendor/github.com/syndtr/goleveldb/leveldb/key.go
new file mode 100644
index 000000000..ad8f51ec8
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/key.go
@@ -0,0 +1,143 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "encoding/binary"
+ "fmt"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+// ErrInternalKeyCorrupted records internal key corruption.
+type ErrInternalKeyCorrupted struct {
+ Ikey []byte
+ Reason string
+}
+
+func (e *ErrInternalKeyCorrupted) Error() string {
+ return fmt.Sprintf("leveldb: internal key %q corrupted: %s", e.Ikey, e.Reason)
+}
+
+func newErrInternalKeyCorrupted(ikey []byte, reason string) error {
+ return errors.NewErrCorrupted(storage.FileDesc{}, &ErrInternalKeyCorrupted{append([]byte{}, ikey...), reason})
+}
+
+type keyType uint
+
+func (kt keyType) String() string {
+ switch kt {
+ case keyTypeDel:
+ return "d"
+ case keyTypeVal:
+ return "v"
+ }
+ return fmt.Sprintf("<invalid:%#x>", uint(kt))
+}
+
+// Value types encoded as the last component of internal keys.
+// Don't modify; this value are saved to disk.
+const (
+ keyTypeDel = keyType(0)
+ keyTypeVal = keyType(1)
+)
+
+// keyTypeSeek defines the keyType that should be passed when constructing an
+// internal key for seeking to a particular sequence number (since we
+// sort sequence numbers in decreasing order and the value type is
+// embedded as the low 8 bits in the sequence number in internal keys,
+// we need to use the highest-numbered ValueType, not the lowest).
+const keyTypeSeek = keyTypeVal
+
+const (
+ // Maximum value possible for sequence number; the 8-bits are
+ // used by value type, so its can packed together in single
+ // 64-bit integer.
+ keyMaxSeq = (uint64(1) << 56) - 1
+ // Maximum value possible for packed sequence number and type.
+ keyMaxNum = (keyMaxSeq << 8) | uint64(keyTypeSeek)
+)
+
+// Maximum number encoded in bytes.
+var keyMaxNumBytes = make([]byte, 8)
+
+func init() {
+ binary.LittleEndian.PutUint64(keyMaxNumBytes, keyMaxNum)
+}
+
+type internalKey []byte
+
+func makeInternalKey(dst, ukey []byte, seq uint64, kt keyType) internalKey {
+ if seq > keyMaxSeq {
+ panic("leveldb: invalid sequence number")
+ } else if kt > keyTypeVal {
+ panic("leveldb: invalid type")
+ }
+
+ dst = ensureBuffer(dst, len(ukey)+8)
+ copy(dst, ukey)
+ binary.LittleEndian.PutUint64(dst[len(ukey):], (seq<<8)|uint64(kt))
+ return internalKey(dst)
+}
+
+func parseInternalKey(ik []byte) (ukey []byte, seq uint64, kt keyType, err error) {
+ if len(ik) < 8 {
+ return nil, 0, 0, newErrInternalKeyCorrupted(ik, "invalid length")
+ }
+ num := binary.LittleEndian.Uint64(ik[len(ik)-8:])
+ seq, kt = uint64(num>>8), keyType(num&0xff)
+ if kt > keyTypeVal {
+ return nil, 0, 0, newErrInternalKeyCorrupted(ik, "invalid type")
+ }
+ ukey = ik[:len(ik)-8]
+ return
+}
+
+func validInternalKey(ik []byte) bool {
+ _, _, _, err := parseInternalKey(ik)
+ return err == nil
+}
+
+func (ik internalKey) assert() {
+ if ik == nil {
+ panic("leveldb: nil internalKey")
+ }
+ if len(ik) < 8 {
+ panic(fmt.Sprintf("leveldb: internal key %q, len=%d: invalid length", []byte(ik), len(ik)))
+ }
+}
+
+func (ik internalKey) ukey() []byte {
+ ik.assert()
+ return ik[:len(ik)-8]
+}
+
+func (ik internalKey) num() uint64 {
+ ik.assert()
+ return binary.LittleEndian.Uint64(ik[len(ik)-8:])
+}
+
+func (ik internalKey) parseNum() (seq uint64, kt keyType) {
+ num := ik.num()
+ seq, kt = uint64(num>>8), keyType(num&0xff)
+ if kt > keyTypeVal {
+ panic(fmt.Sprintf("leveldb: internal key %q, len=%d: invalid type %#x", []byte(ik), len(ik), kt))
+ }
+ return
+}
+
+func (ik internalKey) String() string {
+ if ik == nil {
+ return "<nil>"
+ }
+
+ if ukey, seq, kt, err := parseInternalKey(ik); err == nil {
+ return fmt.Sprintf("%s,%s%d", shorten(string(ukey)), kt, seq)
+ }
+ return fmt.Sprintf("<invalid:%#x>", []byte(ik))
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go b/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go
new file mode 100644
index 000000000..18a19ed42
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/memdb/memdb.go
@@ -0,0 +1,475 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package memdb provides in-memory key/value database implementation.
+package memdb
+
+import (
+ "math/rand"
+ "sync"
+
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// Common errors.
+var (
+ ErrNotFound = errors.ErrNotFound
+ ErrIterReleased = errors.New("leveldb/memdb: iterator released")
+)
+
+const tMaxHeight = 12
+
+type dbIter struct {
+ util.BasicReleaser
+ p *DB
+ slice *util.Range
+ node int
+ forward bool
+ key, value []byte
+ err error
+}
+
+func (i *dbIter) fill(checkStart, checkLimit bool) bool {
+ if i.node != 0 {
+ n := i.p.nodeData[i.node]
+ m := n + i.p.nodeData[i.node+nKey]
+ i.key = i.p.kvData[n:m]
+ if i.slice != nil {
+ switch {
+ case checkLimit && i.slice.Limit != nil && i.p.cmp.Compare(i.key, i.slice.Limit) >= 0:
+ fallthrough
+ case checkStart && i.slice.Start != nil && i.p.cmp.Compare(i.key, i.slice.Start) < 0:
+ i.node = 0
+ goto bail
+ }
+ }
+ i.value = i.p.kvData[m : m+i.p.nodeData[i.node+nVal]]
+ return true
+ }
+bail:
+ i.key = nil
+ i.value = nil
+ return false
+}
+
+func (i *dbIter) Valid() bool {
+ return i.node != 0
+}
+
+func (i *dbIter) First() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ i.forward = true
+ i.p.mu.RLock()
+ defer i.p.mu.RUnlock()
+ if i.slice != nil && i.slice.Start != nil {
+ i.node, _ = i.p.findGE(i.slice.Start, false)
+ } else {
+ i.node = i.p.nodeData[nNext]
+ }
+ return i.fill(false, true)
+}
+
+func (i *dbIter) Last() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ i.forward = false
+ i.p.mu.RLock()
+ defer i.p.mu.RUnlock()
+ if i.slice != nil && i.slice.Limit != nil {
+ i.node = i.p.findLT(i.slice.Limit)
+ } else {
+ i.node = i.p.findLast()
+ }
+ return i.fill(true, false)
+}
+
+func (i *dbIter) Seek(key []byte) bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ i.forward = true
+ i.p.mu.RLock()
+ defer i.p.mu.RUnlock()
+ if i.slice != nil && i.slice.Start != nil && i.p.cmp.Compare(key, i.slice.Start) < 0 {
+ key = i.slice.Start
+ }
+ i.node, _ = i.p.findGE(key, false)
+ return i.fill(false, true)
+}
+
+func (i *dbIter) Next() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.node == 0 {
+ if !i.forward {
+ return i.First()
+ }
+ return false
+ }
+ i.forward = true
+ i.p.mu.RLock()
+ defer i.p.mu.RUnlock()
+ i.node = i.p.nodeData[i.node+nNext]
+ return i.fill(false, true)
+}
+
+func (i *dbIter) Prev() bool {
+ if i.Released() {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.node == 0 {
+ if i.forward {
+ return i.Last()
+ }
+ return false
+ }
+ i.forward = false
+ i.p.mu.RLock()
+ defer i.p.mu.RUnlock()
+ i.node = i.p.findLT(i.key)
+ return i.fill(true, false)
+}
+
+func (i *dbIter) Key() []byte {
+ return i.key
+}
+
+func (i *dbIter) Value() []byte {
+ return i.value
+}
+
+func (i *dbIter) Error() error { return i.err }
+
+func (i *dbIter) Release() {
+ if !i.Released() {
+ i.p = nil
+ i.node = 0
+ i.key = nil
+ i.value = nil
+ i.BasicReleaser.Release()
+ }
+}
+
+const (
+ nKV = iota
+ nKey
+ nVal
+ nHeight
+ nNext
+)
+
+// DB is an in-memory key/value database.
+type DB struct {
+ cmp comparer.BasicComparer
+ rnd *rand.Rand
+
+ mu sync.RWMutex
+ kvData []byte
+ // Node data:
+ // [0] : KV offset
+ // [1] : Key length
+ // [2] : Value length
+ // [3] : Height
+ // [3..height] : Next nodes
+ nodeData []int
+ prevNode [tMaxHeight]int
+ maxHeight int
+ n int
+ kvSize int
+}
+
+func (p *DB) randHeight() (h int) {
+ const branching = 4
+ h = 1
+ for h < tMaxHeight && p.rnd.Int()%branching == 0 {
+ h++
+ }
+ return
+}
+
+// Must hold RW-lock if prev == true, as it use shared prevNode slice.
+func (p *DB) findGE(key []byte, prev bool) (int, bool) {
+ node := 0
+ h := p.maxHeight - 1
+ for {
+ next := p.nodeData[node+nNext+h]
+ cmp := 1
+ if next != 0 {
+ o := p.nodeData[next]
+ cmp = p.cmp.Compare(p.kvData[o:o+p.nodeData[next+nKey]], key)
+ }
+ if cmp < 0 {
+ // Keep searching in this list
+ node = next
+ } else {
+ if prev {
+ p.prevNode[h] = node
+ } else if cmp == 0 {
+ return next, true
+ }
+ if h == 0 {
+ return next, cmp == 0
+ }
+ h--
+ }
+ }
+}
+
+func (p *DB) findLT(key []byte) int {
+ node := 0
+ h := p.maxHeight - 1
+ for {
+ next := p.nodeData[node+nNext+h]
+ o := p.nodeData[next]
+ if next == 0 || p.cmp.Compare(p.kvData[o:o+p.nodeData[next+nKey]], key) >= 0 {
+ if h == 0 {
+ break
+ }
+ h--
+ } else {
+ node = next
+ }
+ }
+ return node
+}
+
+func (p *DB) findLast() int {
+ node := 0
+ h := p.maxHeight - 1
+ for {
+ next := p.nodeData[node+nNext+h]
+ if next == 0 {
+ if h == 0 {
+ break
+ }
+ h--
+ } else {
+ node = next
+ }
+ }
+ return node
+}
+
+// Put sets the value for the given key. It overwrites any previous value
+// for that key; a DB is not a multi-map.
+//
+// It is safe to modify the contents of the arguments after Put returns.
+func (p *DB) Put(key []byte, value []byte) error {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ if node, exact := p.findGE(key, true); exact {
+ kvOffset := len(p.kvData)
+ p.kvData = append(p.kvData, key...)
+ p.kvData = append(p.kvData, value...)
+ p.nodeData[node] = kvOffset
+ m := p.nodeData[node+nVal]
+ p.nodeData[node+nVal] = len(value)
+ p.kvSize += len(value) - m
+ return nil
+ }
+
+ h := p.randHeight()
+ if h > p.maxHeight {
+ for i := p.maxHeight; i < h; i++ {
+ p.prevNode[i] = 0
+ }
+ p.maxHeight = h
+ }
+
+ kvOffset := len(p.kvData)
+ p.kvData = append(p.kvData, key...)
+ p.kvData = append(p.kvData, value...)
+ // Node
+ node := len(p.nodeData)
+ p.nodeData = append(p.nodeData, kvOffset, len(key), len(value), h)
+ for i, n := range p.prevNode[:h] {
+ m := n + nNext + i
+ p.nodeData = append(p.nodeData, p.nodeData[m])
+ p.nodeData[m] = node
+ }
+
+ p.kvSize += len(key) + len(value)
+ p.n++
+ return nil
+}
+
+// Delete deletes the value for the given key. It returns ErrNotFound if
+// the DB does not contain the key.
+//
+// It is safe to modify the contents of the arguments after Delete returns.
+func (p *DB) Delete(key []byte) error {
+ p.mu.Lock()
+ defer p.mu.Unlock()
+
+ node, exact := p.findGE(key, true)
+ if !exact {
+ return ErrNotFound
+ }
+
+ h := p.nodeData[node+nHeight]
+ for i, n := range p.prevNode[:h] {
+ m := n + 4 + i
+ p.nodeData[m] = p.nodeData[p.nodeData[m]+nNext+i]
+ }
+
+ p.kvSize -= p.nodeData[node+nKey] + p.nodeData[node+nVal]
+ p.n--
+ return nil
+}
+
+// Contains returns true if the given key are in the DB.
+//
+// It is safe to modify the contents of the arguments after Contains returns.
+func (p *DB) Contains(key []byte) bool {
+ p.mu.RLock()
+ _, exact := p.findGE(key, false)
+ p.mu.RUnlock()
+ return exact
+}
+
+// Get gets the value for the given key. It returns error.ErrNotFound if the
+// DB does not contain the key.
+//
+// The caller should not modify the contents of the returned slice, but
+// it is safe to modify the contents of the argument after Get returns.
+func (p *DB) Get(key []byte) (value []byte, err error) {
+ p.mu.RLock()
+ if node, exact := p.findGE(key, false); exact {
+ o := p.nodeData[node] + p.nodeData[node+nKey]
+ value = p.kvData[o : o+p.nodeData[node+nVal]]
+ } else {
+ err = ErrNotFound
+ }
+ p.mu.RUnlock()
+ return
+}
+
+// Find finds key/value pair whose key is greater than or equal to the
+// given key. It returns ErrNotFound if the table doesn't contain
+// such pair.
+//
+// The caller should not modify the contents of the returned slice, but
+// it is safe to modify the contents of the argument after Find returns.
+func (p *DB) Find(key []byte) (rkey, value []byte, err error) {
+ p.mu.RLock()
+ if node, _ := p.findGE(key, false); node != 0 {
+ n := p.nodeData[node]
+ m := n + p.nodeData[node+nKey]
+ rkey = p.kvData[n:m]
+ value = p.kvData[m : m+p.nodeData[node+nVal]]
+ } else {
+ err = ErrNotFound
+ }
+ p.mu.RUnlock()
+ return
+}
+
+// NewIterator returns an iterator of the DB.
+// The returned iterator is not safe for concurrent use, but it is safe to use
+// multiple iterators concurrently, with each in a dedicated goroutine.
+// It is also safe to use an iterator concurrently with modifying its
+// underlying DB. However, the resultant key/value pairs are not guaranteed
+// to be a consistent snapshot of the DB at a particular point in time.
+//
+// Slice allows slicing the iterator to only contains keys in the given
+// range. A nil Range.Start is treated as a key before all keys in the
+// DB. And a nil Range.Limit is treated as a key after all keys in
+// the DB.
+//
+// The iterator must be released after use, by calling Release method.
+//
+// Also read Iterator documentation of the leveldb/iterator package.
+func (p *DB) NewIterator(slice *util.Range) iterator.Iterator {
+ return &dbIter{p: p, slice: slice}
+}
+
+// Capacity returns keys/values buffer capacity.
+func (p *DB) Capacity() int {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+ return cap(p.kvData)
+}
+
+// Size returns sum of keys and values length. Note that deleted
+// key/value will not be accounted for, but it will still consume
+// the buffer, since the buffer is append only.
+func (p *DB) Size() int {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+ return p.kvSize
+}
+
+// Free returns keys/values free buffer before need to grow.
+func (p *DB) Free() int {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+ return cap(p.kvData) - len(p.kvData)
+}
+
+// Len returns the number of entries in the DB.
+func (p *DB) Len() int {
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+ return p.n
+}
+
+// Reset resets the DB to initial empty state. Allows reuse the buffer.
+func (p *DB) Reset() {
+ p.mu.Lock()
+ p.rnd = rand.New(rand.NewSource(0xdeadbeef))
+ p.maxHeight = 1
+ p.n = 0
+ p.kvSize = 0
+ p.kvData = p.kvData[:0]
+ p.nodeData = p.nodeData[:nNext+tMaxHeight]
+ p.nodeData[nKV] = 0
+ p.nodeData[nKey] = 0
+ p.nodeData[nVal] = 0
+ p.nodeData[nHeight] = tMaxHeight
+ for n := 0; n < tMaxHeight; n++ {
+ p.nodeData[nNext+n] = 0
+ p.prevNode[n] = 0
+ }
+ p.mu.Unlock()
+}
+
+// New creates a new initialized in-memory key/value DB. The capacity
+// is the initial key/value buffer capacity. The capacity is advisory,
+// not enforced.
+//
+// This DB is append-only, deleting an entry would remove entry node but not
+// reclaim KV buffer.
+//
+// The returned DB instance is safe for concurrent use.
+func New(cmp comparer.BasicComparer, capacity int) *DB {
+ p := &DB{
+ cmp: cmp,
+ rnd: rand.New(rand.NewSource(0xdeadbeef)),
+ maxHeight: 1,
+ kvData: make([]byte, 0, capacity),
+ nodeData: make([]int, 4+tMaxHeight),
+ }
+ p.nodeData[nHeight] = tMaxHeight
+ return p
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go b/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go
new file mode 100644
index 000000000..44e7d9adc
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/opt/options.go
@@ -0,0 +1,684 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package opt provides sets of options used by LevelDB.
+package opt
+
+import (
+ "math"
+
+ "github.com/syndtr/goleveldb/leveldb/cache"
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+ "github.com/syndtr/goleveldb/leveldb/filter"
+)
+
+const (
+ KiB = 1024
+ MiB = KiB * 1024
+ GiB = MiB * 1024
+)
+
+var (
+ DefaultBlockCacher = LRUCacher
+ DefaultBlockCacheCapacity = 8 * MiB
+ DefaultBlockRestartInterval = 16
+ DefaultBlockSize = 4 * KiB
+ DefaultCompactionExpandLimitFactor = 25
+ DefaultCompactionGPOverlapsFactor = 10
+ DefaultCompactionL0Trigger = 4
+ DefaultCompactionSourceLimitFactor = 1
+ DefaultCompactionTableSize = 2 * MiB
+ DefaultCompactionTableSizeMultiplier = 1.0
+ DefaultCompactionTotalSize = 10 * MiB
+ DefaultCompactionTotalSizeMultiplier = 10.0
+ DefaultCompressionType = SnappyCompression
+ DefaultIteratorSamplingRate = 1 * MiB
+ DefaultOpenFilesCacher = LRUCacher
+ DefaultOpenFilesCacheCapacity = 500
+ DefaultWriteBuffer = 4 * MiB
+ DefaultWriteL0PauseTrigger = 12
+ DefaultWriteL0SlowdownTrigger = 8
+)
+
+// Cacher is a caching algorithm.
+type Cacher interface {
+ New(capacity int) cache.Cacher
+}
+
+type CacherFunc struct {
+ NewFunc func(capacity int) cache.Cacher
+}
+
+func (f *CacherFunc) New(capacity int) cache.Cacher {
+ if f.NewFunc != nil {
+ return f.NewFunc(capacity)
+ }
+ return nil
+}
+
+func noCacher(int) cache.Cacher { return nil }
+
+var (
+ // LRUCacher is the LRU-cache algorithm.
+ LRUCacher = &CacherFunc{cache.NewLRU}
+
+ // NoCacher is the value to disable caching algorithm.
+ NoCacher = &CacherFunc{}
+)
+
+// Compression is the 'sorted table' block compression algorithm to use.
+type Compression uint
+
+func (c Compression) String() string {
+ switch c {
+ case DefaultCompression:
+ return "default"
+ case NoCompression:
+ return "none"
+ case SnappyCompression:
+ return "snappy"
+ }
+ return "invalid"
+}
+
+const (
+ DefaultCompression Compression = iota
+ NoCompression
+ SnappyCompression
+ nCompression
+)
+
+// Strict is the DB 'strict level'.
+type Strict uint
+
+const (
+ // If present then a corrupted or invalid chunk or block in manifest
+ // journal will cause an error instead of being dropped.
+ // This will prevent database with corrupted manifest to be opened.
+ StrictManifest Strict = 1 << iota
+
+ // If present then journal chunk checksum will be verified.
+ StrictJournalChecksum
+
+ // If present then a corrupted or invalid chunk or block in journal
+ // will cause an error instead of being dropped.
+ // This will prevent database with corrupted journal to be opened.
+ StrictJournal
+
+ // If present then 'sorted table' block checksum will be verified.
+ // This has effect on both 'read operation' and compaction.
+ StrictBlockChecksum
+
+ // If present then a corrupted 'sorted table' will fails compaction.
+ // The database will enter read-only mode.
+ StrictCompaction
+
+ // If present then a corrupted 'sorted table' will halts 'read operation'.
+ StrictReader
+
+ // If present then leveldb.Recover will drop corrupted 'sorted table'.
+ StrictRecovery
+
+ // This only applicable for ReadOptions, if present then this ReadOptions
+ // 'strict level' will override global ones.
+ StrictOverride
+
+ // StrictAll enables all strict flags.
+ StrictAll = StrictManifest | StrictJournalChecksum | StrictJournal | StrictBlockChecksum | StrictCompaction | StrictReader | StrictRecovery
+
+ // DefaultStrict is the default strict flags. Specify any strict flags
+ // will override default strict flags as whole (i.e. not OR'ed).
+ DefaultStrict = StrictJournalChecksum | StrictBlockChecksum | StrictCompaction | StrictReader
+
+ // NoStrict disables all strict flags. Override default strict flags.
+ NoStrict = ^StrictAll
+)
+
+// Options holds the optional parameters for the DB at large.
+type Options struct {
+ // AltFilters defines one or more 'alternative filters'.
+ // 'alternative filters' will be used during reads if a filter block
+ // does not match with the 'effective filter'.
+ //
+ // The default value is nil
+ AltFilters []filter.Filter
+
+ // BlockCacher provides cache algorithm for LevelDB 'sorted table' block caching.
+ // Specify NoCacher to disable caching algorithm.
+ //
+ // The default value is LRUCacher.
+ BlockCacher Cacher
+
+ // BlockCacheCapacity defines the capacity of the 'sorted table' block caching.
+ // Use -1 for zero, this has same effect as specifying NoCacher to BlockCacher.
+ //
+ // The default value is 8MiB.
+ BlockCacheCapacity int
+
+ // BlockRestartInterval is the number of keys between restart points for
+ // delta encoding of keys.
+ //
+ // The default value is 16.
+ BlockRestartInterval int
+
+ // BlockSize is the minimum uncompressed size in bytes of each 'sorted table'
+ // block.
+ //
+ // The default value is 4KiB.
+ BlockSize int
+
+ // CompactionExpandLimitFactor limits compaction size after expanded.
+ // This will be multiplied by table size limit at compaction target level.
+ //
+ // The default value is 25.
+ CompactionExpandLimitFactor int
+
+ // CompactionGPOverlapsFactor limits overlaps in grandparent (Level + 2) that a
+ // single 'sorted table' generates.
+ // This will be multiplied by table size limit at grandparent level.
+ //
+ // The default value is 10.
+ CompactionGPOverlapsFactor int
+
+ // CompactionL0Trigger defines number of 'sorted table' at level-0 that will
+ // trigger compaction.
+ //
+ // The default value is 4.
+ CompactionL0Trigger int
+
+ // CompactionSourceLimitFactor limits compaction source size. This doesn't apply to
+ // level-0.
+ // This will be multiplied by table size limit at compaction target level.
+ //
+ // The default value is 1.
+ CompactionSourceLimitFactor int
+
+ // CompactionTableSize limits size of 'sorted table' that compaction generates.
+ // The limits for each level will be calculated as:
+ // CompactionTableSize * (CompactionTableSizeMultiplier ^ Level)
+ // The multiplier for each level can also fine-tuned using CompactionTableSizeMultiplierPerLevel.
+ //
+ // The default value is 2MiB.
+ CompactionTableSize int
+
+ // CompactionTableSizeMultiplier defines multiplier for CompactionTableSize.
+ //
+ // The default value is 1.
+ CompactionTableSizeMultiplier float64
+
+ // CompactionTableSizeMultiplierPerLevel defines per-level multiplier for
+ // CompactionTableSize.
+ // Use zero to skip a level.
+ //
+ // The default value is nil.
+ CompactionTableSizeMultiplierPerLevel []float64
+
+ // CompactionTotalSize limits total size of 'sorted table' for each level.
+ // The limits for each level will be calculated as:
+ // CompactionTotalSize * (CompactionTotalSizeMultiplier ^ Level)
+ // The multiplier for each level can also fine-tuned using
+ // CompactionTotalSizeMultiplierPerLevel.
+ //
+ // The default value is 10MiB.
+ CompactionTotalSize int
+
+ // CompactionTotalSizeMultiplier defines multiplier for CompactionTotalSize.
+ //
+ // The default value is 10.
+ CompactionTotalSizeMultiplier float64
+
+ // CompactionTotalSizeMultiplierPerLevel defines per-level multiplier for
+ // CompactionTotalSize.
+ // Use zero to skip a level.
+ //
+ // The default value is nil.
+ CompactionTotalSizeMultiplierPerLevel []float64
+
+ // Comparer defines a total ordering over the space of []byte keys: a 'less
+ // than' relationship. The same comparison algorithm must be used for reads
+ // and writes over the lifetime of the DB.
+ //
+ // The default value uses the same ordering as bytes.Compare.
+ Comparer comparer.Comparer
+
+ // Compression defines the 'sorted table' block compression to use.
+ //
+ // The default value (DefaultCompression) uses snappy compression.
+ Compression Compression
+
+ // DisableBufferPool allows disable use of util.BufferPool functionality.
+ //
+ // The default value is false.
+ DisableBufferPool bool
+
+ // DisableBlockCache allows disable use of cache.Cache functionality on
+ // 'sorted table' block.
+ //
+ // The default value is false.
+ DisableBlockCache bool
+
+ // DisableCompactionBackoff allows disable compaction retry backoff.
+ //
+ // The default value is false.
+ DisableCompactionBackoff bool
+
+ // DisableLargeBatchTransaction allows disabling switch-to-transaction mode
+ // on large batch write. If enable batch writes large than WriteBuffer will
+ // use transaction.
+ //
+ // The default is false.
+ DisableLargeBatchTransaction bool
+
+ // ErrorIfExist defines whether an error should returned if the DB already
+ // exist.
+ //
+ // The default value is false.
+ ErrorIfExist bool
+
+ // ErrorIfMissing defines whether an error should returned if the DB is
+ // missing. If false then the database will be created if missing, otherwise
+ // an error will be returned.
+ //
+ // The default value is false.
+ ErrorIfMissing bool
+
+ // Filter defines an 'effective filter' to use. An 'effective filter'
+ // if defined will be used to generate per-table filter block.
+ // The filter name will be stored on disk.
+ // During reads LevelDB will try to find matching filter from
+ // 'effective filter' and 'alternative filters'.
+ //
+ // Filter can be changed after a DB has been created. It is recommended
+ // to put old filter to the 'alternative filters' to mitigate lack of
+ // filter during transition period.
+ //
+ // A filter is used to reduce disk reads when looking for a specific key.
+ //
+ // The default value is nil.
+ Filter filter.Filter
+
+ // IteratorSamplingRate defines approximate gap (in bytes) between read
+ // sampling of an iterator. The samples will be used to determine when
+ // compaction should be triggered.
+ //
+ // The default is 1MiB.
+ IteratorSamplingRate int
+
+ // NoSync allows completely disable fsync.
+ //
+ // The default is false.
+ NoSync bool
+
+ // NoWriteMerge allows disabling write merge.
+ //
+ // The default is false.
+ NoWriteMerge bool
+
+ // OpenFilesCacher provides cache algorithm for open files caching.
+ // Specify NoCacher to disable caching algorithm.
+ //
+ // The default value is LRUCacher.
+ OpenFilesCacher Cacher
+
+ // OpenFilesCacheCapacity defines the capacity of the open files caching.
+ // Use -1 for zero, this has same effect as specifying NoCacher to OpenFilesCacher.
+ //
+ // The default value is 500.
+ OpenFilesCacheCapacity int
+
+ // If true then opens DB in read-only mode.
+ //
+ // The default value is false.
+ ReadOnly bool
+
+ // Strict defines the DB strict level.
+ Strict Strict
+
+ // WriteBuffer defines maximum size of a 'memdb' before flushed to
+ // 'sorted table'. 'memdb' is an in-memory DB backed by an on-disk
+ // unsorted journal.
+ //
+ // LevelDB may held up to two 'memdb' at the same time.
+ //
+ // The default value is 4MiB.
+ WriteBuffer int
+
+ // WriteL0StopTrigger defines number of 'sorted table' at level-0 that will
+ // pause write.
+ //
+ // The default value is 12.
+ WriteL0PauseTrigger int
+
+ // WriteL0SlowdownTrigger defines number of 'sorted table' at level-0 that
+ // will trigger write slowdown.
+ //
+ // The default value is 8.
+ WriteL0SlowdownTrigger int
+}
+
+func (o *Options) GetAltFilters() []filter.Filter {
+ if o == nil {
+ return nil
+ }
+ return o.AltFilters
+}
+
+func (o *Options) GetBlockCacher() Cacher {
+ if o == nil || o.BlockCacher == nil {
+ return DefaultBlockCacher
+ } else if o.BlockCacher == NoCacher {
+ return nil
+ }
+ return o.BlockCacher
+}
+
+func (o *Options) GetBlockCacheCapacity() int {
+ if o == nil || o.BlockCacheCapacity == 0 {
+ return DefaultBlockCacheCapacity
+ } else if o.BlockCacheCapacity < 0 {
+ return 0
+ }
+ return o.BlockCacheCapacity
+}
+
+func (o *Options) GetBlockRestartInterval() int {
+ if o == nil || o.BlockRestartInterval <= 0 {
+ return DefaultBlockRestartInterval
+ }
+ return o.BlockRestartInterval
+}
+
+func (o *Options) GetBlockSize() int {
+ if o == nil || o.BlockSize <= 0 {
+ return DefaultBlockSize
+ }
+ return o.BlockSize
+}
+
+func (o *Options) GetCompactionExpandLimit(level int) int {
+ factor := DefaultCompactionExpandLimitFactor
+ if o != nil && o.CompactionExpandLimitFactor > 0 {
+ factor = o.CompactionExpandLimitFactor
+ }
+ return o.GetCompactionTableSize(level+1) * factor
+}
+
+func (o *Options) GetCompactionGPOverlaps(level int) int {
+ factor := DefaultCompactionGPOverlapsFactor
+ if o != nil && o.CompactionGPOverlapsFactor > 0 {
+ factor = o.CompactionGPOverlapsFactor
+ }
+ return o.GetCompactionTableSize(level+2) * factor
+}
+
+func (o *Options) GetCompactionL0Trigger() int {
+ if o == nil || o.CompactionL0Trigger == 0 {
+ return DefaultCompactionL0Trigger
+ }
+ return o.CompactionL0Trigger
+}
+
+func (o *Options) GetCompactionSourceLimit(level int) int {
+ factor := DefaultCompactionSourceLimitFactor
+ if o != nil && o.CompactionSourceLimitFactor > 0 {
+ factor = o.CompactionSourceLimitFactor
+ }
+ return o.GetCompactionTableSize(level+1) * factor
+}
+
+func (o *Options) GetCompactionTableSize(level int) int {
+ var (
+ base = DefaultCompactionTableSize
+ mult float64
+ )
+ if o != nil {
+ if o.CompactionTableSize > 0 {
+ base = o.CompactionTableSize
+ }
+ if level < len(o.CompactionTableSizeMultiplierPerLevel) && o.CompactionTableSizeMultiplierPerLevel[level] > 0 {
+ mult = o.CompactionTableSizeMultiplierPerLevel[level]
+ } else if o.CompactionTableSizeMultiplier > 0 {
+ mult = math.Pow(o.CompactionTableSizeMultiplier, float64(level))
+ }
+ }
+ if mult == 0 {
+ mult = math.Pow(DefaultCompactionTableSizeMultiplier, float64(level))
+ }
+ return int(float64(base) * mult)
+}
+
+func (o *Options) GetCompactionTotalSize(level int) int64 {
+ var (
+ base = DefaultCompactionTotalSize
+ mult float64
+ )
+ if o != nil {
+ if o.CompactionTotalSize > 0 {
+ base = o.CompactionTotalSize
+ }
+ if level < len(o.CompactionTotalSizeMultiplierPerLevel) && o.CompactionTotalSizeMultiplierPerLevel[level] > 0 {
+ mult = o.CompactionTotalSizeMultiplierPerLevel[level]
+ } else if o.CompactionTotalSizeMultiplier > 0 {
+ mult = math.Pow(o.CompactionTotalSizeMultiplier, float64(level))
+ }
+ }
+ if mult == 0 {
+ mult = math.Pow(DefaultCompactionTotalSizeMultiplier, float64(level))
+ }
+ return int64(float64(base) * mult)
+}
+
+func (o *Options) GetComparer() comparer.Comparer {
+ if o == nil || o.Comparer == nil {
+ return comparer.DefaultComparer
+ }
+ return o.Comparer
+}
+
+func (o *Options) GetCompression() Compression {
+ if o == nil || o.Compression <= DefaultCompression || o.Compression >= nCompression {
+ return DefaultCompressionType
+ }
+ return o.Compression
+}
+
+func (o *Options) GetDisableBufferPool() bool {
+ if o == nil {
+ return false
+ }
+ return o.DisableBufferPool
+}
+
+func (o *Options) GetDisableBlockCache() bool {
+ if o == nil {
+ return false
+ }
+ return o.DisableBlockCache
+}
+
+func (o *Options) GetDisableCompactionBackoff() bool {
+ if o == nil {
+ return false
+ }
+ return o.DisableCompactionBackoff
+}
+
+func (o *Options) GetDisableLargeBatchTransaction() bool {
+ if o == nil {
+ return false
+ }
+ return o.DisableLargeBatchTransaction
+}
+
+func (o *Options) GetErrorIfExist() bool {
+ if o == nil {
+ return false
+ }
+ return o.ErrorIfExist
+}
+
+func (o *Options) GetErrorIfMissing() bool {
+ if o == nil {
+ return false
+ }
+ return o.ErrorIfMissing
+}
+
+func (o *Options) GetFilter() filter.Filter {
+ if o == nil {
+ return nil
+ }
+ return o.Filter
+}
+
+func (o *Options) GetIteratorSamplingRate() int {
+ if o == nil || o.IteratorSamplingRate <= 0 {
+ return DefaultIteratorSamplingRate
+ }
+ return o.IteratorSamplingRate
+}
+
+func (o *Options) GetNoSync() bool {
+ if o == nil {
+ return false
+ }
+ return o.NoSync
+}
+
+func (o *Options) GetNoWriteMerge() bool {
+ if o == nil {
+ return false
+ }
+ return o.NoWriteMerge
+}
+
+func (o *Options) GetOpenFilesCacher() Cacher {
+ if o == nil || o.OpenFilesCacher == nil {
+ return DefaultOpenFilesCacher
+ }
+ if o.OpenFilesCacher == NoCacher {
+ return nil
+ }
+ return o.OpenFilesCacher
+}
+
+func (o *Options) GetOpenFilesCacheCapacity() int {
+ if o == nil || o.OpenFilesCacheCapacity == 0 {
+ return DefaultOpenFilesCacheCapacity
+ } else if o.OpenFilesCacheCapacity < 0 {
+ return 0
+ }
+ return o.OpenFilesCacheCapacity
+}
+
+func (o *Options) GetReadOnly() bool {
+ if o == nil {
+ return false
+ }
+ return o.ReadOnly
+}
+
+func (o *Options) GetStrict(strict Strict) bool {
+ if o == nil || o.Strict == 0 {
+ return DefaultStrict&strict != 0
+ }
+ return o.Strict&strict != 0
+}
+
+func (o *Options) GetWriteBuffer() int {
+ if o == nil || o.WriteBuffer <= 0 {
+ return DefaultWriteBuffer
+ }
+ return o.WriteBuffer
+}
+
+func (o *Options) GetWriteL0PauseTrigger() int {
+ if o == nil || o.WriteL0PauseTrigger == 0 {
+ return DefaultWriteL0PauseTrigger
+ }
+ return o.WriteL0PauseTrigger
+}
+
+func (o *Options) GetWriteL0SlowdownTrigger() int {
+ if o == nil || o.WriteL0SlowdownTrigger == 0 {
+ return DefaultWriteL0SlowdownTrigger
+ }
+ return o.WriteL0SlowdownTrigger
+}
+
+// ReadOptions holds the optional parameters for 'read operation'. The
+// 'read operation' includes Get, Find and NewIterator.
+type ReadOptions struct {
+ // DontFillCache defines whether block reads for this 'read operation'
+ // should be cached. If false then the block will be cached. This does
+ // not affects already cached block.
+ //
+ // The default value is false.
+ DontFillCache bool
+
+ // Strict will be OR'ed with global DB 'strict level' unless StrictOverride
+ // is present. Currently only StrictReader that has effect here.
+ Strict Strict
+}
+
+func (ro *ReadOptions) GetDontFillCache() bool {
+ if ro == nil {
+ return false
+ }
+ return ro.DontFillCache
+}
+
+func (ro *ReadOptions) GetStrict(strict Strict) bool {
+ if ro == nil {
+ return false
+ }
+ return ro.Strict&strict != 0
+}
+
+// WriteOptions holds the optional parameters for 'write operation'. The
+// 'write operation' includes Write, Put and Delete.
+type WriteOptions struct {
+ // NoWriteMerge allows disabling write merge.
+ //
+ // The default is false.
+ NoWriteMerge bool
+
+ // Sync is whether to sync underlying writes from the OS buffer cache
+ // through to actual disk, if applicable. Setting Sync can result in
+ // slower writes.
+ //
+ // If false, and the machine crashes, then some recent writes may be lost.
+ // Note that if it is just the process that crashes (and the machine does
+ // not) then no writes will be lost.
+ //
+ // In other words, Sync being false has the same semantics as a write
+ // system call. Sync being true means write followed by fsync.
+ //
+ // The default value is false.
+ Sync bool
+}
+
+func (wo *WriteOptions) GetNoWriteMerge() bool {
+ if wo == nil {
+ return false
+ }
+ return wo.NoWriteMerge
+}
+
+func (wo *WriteOptions) GetSync() bool {
+ if wo == nil {
+ return false
+ }
+ return wo.Sync
+}
+
+func GetStrict(o *Options, ro *ReadOptions, strict Strict) bool {
+ if ro.GetStrict(StrictOverride) {
+ return ro.GetStrict(strict)
+ } else {
+ return o.GetStrict(strict) || ro.GetStrict(strict)
+ }
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/options.go b/vendor/github.com/syndtr/goleveldb/leveldb/options.go
new file mode 100644
index 000000000..b072b1ac4
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/options.go
@@ -0,0 +1,107 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "github.com/syndtr/goleveldb/leveldb/filter"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+)
+
+func dupOptions(o *opt.Options) *opt.Options {
+ newo := &opt.Options{}
+ if o != nil {
+ *newo = *o
+ }
+ if newo.Strict == 0 {
+ newo.Strict = opt.DefaultStrict
+ }
+ return newo
+}
+
+func (s *session) setOptions(o *opt.Options) {
+ no := dupOptions(o)
+ // Alternative filters.
+ if filters := o.GetAltFilters(); len(filters) > 0 {
+ no.AltFilters = make([]filter.Filter, len(filters))
+ for i, filter := range filters {
+ no.AltFilters[i] = &iFilter{filter}
+ }
+ }
+ // Comparer.
+ s.icmp = &iComparer{o.GetComparer()}
+ no.Comparer = s.icmp
+ // Filter.
+ if filter := o.GetFilter(); filter != nil {
+ no.Filter = &iFilter{filter}
+ }
+
+ s.o = &cachedOptions{Options: no}
+ s.o.cache()
+}
+
+const optCachedLevel = 7
+
+type cachedOptions struct {
+ *opt.Options
+
+ compactionExpandLimit []int
+ compactionGPOverlaps []int
+ compactionSourceLimit []int
+ compactionTableSize []int
+ compactionTotalSize []int64
+}
+
+func (co *cachedOptions) cache() {
+ co.compactionExpandLimit = make([]int, optCachedLevel)
+ co.compactionGPOverlaps = make([]int, optCachedLevel)
+ co.compactionSourceLimit = make([]int, optCachedLevel)
+ co.compactionTableSize = make([]int, optCachedLevel)
+ co.compactionTotalSize = make([]int64, optCachedLevel)
+
+ for level := 0; level < optCachedLevel; level++ {
+ co.compactionExpandLimit[level] = co.Options.GetCompactionExpandLimit(level)
+ co.compactionGPOverlaps[level] = co.Options.GetCompactionGPOverlaps(level)
+ co.compactionSourceLimit[level] = co.Options.GetCompactionSourceLimit(level)
+ co.compactionTableSize[level] = co.Options.GetCompactionTableSize(level)
+ co.compactionTotalSize[level] = co.Options.GetCompactionTotalSize(level)
+ }
+}
+
+func (co *cachedOptions) GetCompactionExpandLimit(level int) int {
+ if level < optCachedLevel {
+ return co.compactionExpandLimit[level]
+ }
+ return co.Options.GetCompactionExpandLimit(level)
+}
+
+func (co *cachedOptions) GetCompactionGPOverlaps(level int) int {
+ if level < optCachedLevel {
+ return co.compactionGPOverlaps[level]
+ }
+ return co.Options.GetCompactionGPOverlaps(level)
+}
+
+func (co *cachedOptions) GetCompactionSourceLimit(level int) int {
+ if level < optCachedLevel {
+ return co.compactionSourceLimit[level]
+ }
+ return co.Options.GetCompactionSourceLimit(level)
+}
+
+func (co *cachedOptions) GetCompactionTableSize(level int) int {
+ if level < optCachedLevel {
+ return co.compactionTableSize[level]
+ }
+ return co.Options.GetCompactionTableSize(level)
+}
+
+func (co *cachedOptions) GetCompactionTotalSize(level int) int64 {
+ if level < optCachedLevel {
+ return co.compactionTotalSize[level]
+ }
+ return co.Options.GetCompactionTotalSize(level)
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session.go b/vendor/github.com/syndtr/goleveldb/leveldb/session.go
new file mode 100644
index 000000000..f3e747701
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/session.go
@@ -0,0 +1,208 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "sync"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/journal"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+// ErrManifestCorrupted records manifest corruption. This error will be
+// wrapped with errors.ErrCorrupted.
+type ErrManifestCorrupted struct {
+ Field string
+ Reason string
+}
+
+func (e *ErrManifestCorrupted) Error() string {
+ return fmt.Sprintf("leveldb: manifest corrupted (field '%s'): %s", e.Field, e.Reason)
+}
+
+func newErrManifestCorrupted(fd storage.FileDesc, field, reason string) error {
+ return errors.NewErrCorrupted(fd, &ErrManifestCorrupted{field, reason})
+}
+
+// session represent a persistent database session.
+type session struct {
+ // Need 64-bit alignment.
+ stNextFileNum int64 // current unused file number
+ stJournalNum int64 // current journal file number; need external synchronization
+ stPrevJournalNum int64 // prev journal file number; no longer used; for compatibility with older version of leveldb
+ stTempFileNum int64
+ stSeqNum uint64 // last mem compacted seq; need external synchronization
+
+ stor storage.Storage
+ storLock storage.Locker
+ o *cachedOptions
+ icmp *iComparer
+ tops *tOps
+
+ manifest *journal.Writer
+ manifestWriter storage.Writer
+ manifestFd storage.FileDesc
+
+ stCompPtrs []internalKey // compaction pointers; need external synchronization
+ stVersion *version // current version
+ vmu sync.Mutex
+}
+
+// Creates new initialized session instance.
+func newSession(stor storage.Storage, o *opt.Options) (s *session, err error) {
+ if stor == nil {
+ return nil, os.ErrInvalid
+ }
+ storLock, err := stor.Lock()
+ if err != nil {
+ return
+ }
+ s = &session{
+ stor: stor,
+ storLock: storLock,
+ }
+ s.setOptions(o)
+ s.tops = newTableOps(s)
+ s.setVersion(newVersion(s))
+ s.log("log@legend F·NumFile S·FileSize N·Entry C·BadEntry B·BadBlock Ke·KeyError D·DroppedEntry L·Level Q·SeqNum T·TimeElapsed")
+ return
+}
+
+// Close session.
+func (s *session) close() {
+ s.tops.close()
+ if s.manifest != nil {
+ s.manifest.Close()
+ }
+ if s.manifestWriter != nil {
+ s.manifestWriter.Close()
+ }
+ s.manifest = nil
+ s.manifestWriter = nil
+ s.setVersion(&version{s: s, closing: true})
+}
+
+// Release session lock.
+func (s *session) release() {
+ s.storLock.Unlock()
+}
+
+// Create a new database session; need external synchronization.
+func (s *session) create() error {
+ // create manifest
+ return s.newManifest(nil, nil)
+}
+
+// Recover a database session; need external synchronization.
+func (s *session) recover() (err error) {
+ defer func() {
+ if os.IsNotExist(err) {
+ // Don't return os.ErrNotExist if the underlying storage contains
+ // other files that belong to LevelDB. So the DB won't get trashed.
+ if fds, _ := s.stor.List(storage.TypeAll); len(fds) > 0 {
+ err = &errors.ErrCorrupted{Fd: storage.FileDesc{Type: storage.TypeManifest}, Err: &errors.ErrMissingFiles{}}
+ }
+ }
+ }()
+
+ fd, err := s.stor.GetMeta()
+ if err != nil {
+ return
+ }
+
+ reader, err := s.stor.Open(fd)
+ if err != nil {
+ return
+ }
+ defer reader.Close()
+
+ var (
+ // Options.
+ strict = s.o.GetStrict(opt.StrictManifest)
+
+ jr = journal.NewReader(reader, dropper{s, fd}, strict, true)
+ rec = &sessionRecord{}
+ staging = s.stVersion.newStaging()
+ )
+ for {
+ var r io.Reader
+ r, err = jr.Next()
+ if err != nil {
+ if err == io.EOF {
+ err = nil
+ break
+ }
+ return errors.SetFd(err, fd)
+ }
+
+ err = rec.decode(r)
+ if err == nil {
+ // save compact pointers
+ for _, r := range rec.compPtrs {
+ s.setCompPtr(r.level, internalKey(r.ikey))
+ }
+ // commit record to version staging
+ staging.commit(rec)
+ } else {
+ err = errors.SetFd(err, fd)
+ if strict || !errors.IsCorrupted(err) {
+ return
+ }
+ s.logf("manifest error: %v (skipped)", errors.SetFd(err, fd))
+ }
+ rec.resetCompPtrs()
+ rec.resetAddedTables()
+ rec.resetDeletedTables()
+ }
+
+ switch {
+ case !rec.has(recComparer):
+ return newErrManifestCorrupted(fd, "comparer", "missing")
+ case rec.comparer != s.icmp.uName():
+ return newErrManifestCorrupted(fd, "comparer", fmt.Sprintf("mismatch: want '%s', got '%s'", s.icmp.uName(), rec.comparer))
+ case !rec.has(recNextFileNum):
+ return newErrManifestCorrupted(fd, "next-file-num", "missing")
+ case !rec.has(recJournalNum):
+ return newErrManifestCorrupted(fd, "journal-file-num", "missing")
+ case !rec.has(recSeqNum):
+ return newErrManifestCorrupted(fd, "seq-num", "missing")
+ }
+
+ s.manifestFd = fd
+ s.setVersion(staging.finish())
+ s.setNextFileNum(rec.nextFileNum)
+ s.recordCommited(rec)
+ return nil
+}
+
+// Commit session; need external synchronization.
+func (s *session) commit(r *sessionRecord) (err error) {
+ v := s.version()
+ defer v.release()
+
+ // spawn new version based on current version
+ nv := v.spawn(r)
+
+ if s.manifest == nil {
+ // manifest journal writer not yet created, create one
+ err = s.newManifest(r, nv)
+ } else {
+ err = s.flushManifest(r)
+ }
+
+ // finally, apply new version if no error rise
+ if err == nil {
+ s.setVersion(nv)
+ }
+
+ return
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go b/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go
new file mode 100644
index 000000000..089cd00b2
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/session_compaction.go
@@ -0,0 +1,302 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "sync/atomic"
+
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/memdb"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+)
+
+func (s *session) pickMemdbLevel(umin, umax []byte, maxLevel int) int {
+ v := s.version()
+ defer v.release()
+ return v.pickMemdbLevel(umin, umax, maxLevel)
+}
+
+func (s *session) flushMemdb(rec *sessionRecord, mdb *memdb.DB, maxLevel int) (int, error) {
+ // Create sorted table.
+ iter := mdb.NewIterator(nil)
+ defer iter.Release()
+ t, n, err := s.tops.createFrom(iter)
+ if err != nil {
+ return 0, err
+ }
+
+ // Pick level other than zero can cause compaction issue with large
+ // bulk insert and delete on strictly incrementing key-space. The
+ // problem is that the small deletion markers trapped at lower level,
+ // while key/value entries keep growing at higher level. Since the
+ // key-space is strictly incrementing it will not overlaps with
+ // higher level, thus maximum possible level is always picked, while
+ // overlapping deletion marker pushed into lower level.
+ // See: https://github.com/syndtr/goleveldb/issues/127.
+ flushLevel := s.pickMemdbLevel(t.imin.ukey(), t.imax.ukey(), maxLevel)
+ rec.addTableFile(flushLevel, t)
+
+ s.logf("memdb@flush created L%d@%d N·%d S·%s %q:%q", flushLevel, t.fd.Num, n, shortenb(int(t.size)), t.imin, t.imax)
+ return flushLevel, nil
+}
+
+// Pick a compaction based on current state; need external synchronization.
+func (s *session) pickCompaction() *compaction {
+ v := s.version()
+
+ var sourceLevel int
+ var t0 tFiles
+ if v.cScore >= 1 {
+ sourceLevel = v.cLevel
+ cptr := s.getCompPtr(sourceLevel)
+ tables := v.levels[sourceLevel]
+ for _, t := range tables {
+ if cptr == nil || s.icmp.Compare(t.imax, cptr) > 0 {
+ t0 = append(t0, t)
+ break
+ }
+ }
+ if len(t0) == 0 {
+ t0 = append(t0, tables[0])
+ }
+ } else {
+ if p := atomic.LoadPointer(&v.cSeek); p != nil {
+ ts := (*tSet)(p)
+ sourceLevel = ts.level
+ t0 = append(t0, ts.table)
+ } else {
+ v.release()
+ return nil
+ }
+ }
+
+ return newCompaction(s, v, sourceLevel, t0)
+}
+
+// Create compaction from given level and range; need external synchronization.
+func (s *session) getCompactionRange(sourceLevel int, umin, umax []byte, noLimit bool) *compaction {
+ v := s.version()
+
+ if sourceLevel >= len(v.levels) {
+ v.release()
+ return nil
+ }
+
+ t0 := v.levels[sourceLevel].getOverlaps(nil, s.icmp, umin, umax, sourceLevel == 0)
+ if len(t0) == 0 {
+ v.release()
+ return nil
+ }
+
+ // Avoid compacting too much in one shot in case the range is large.
+ // But we cannot do this for level-0 since level-0 files can overlap
+ // and we must not pick one file and drop another older file if the
+ // two files overlap.
+ if !noLimit && sourceLevel > 0 {
+ limit := int64(v.s.o.GetCompactionSourceLimit(sourceLevel))
+ total := int64(0)
+ for i, t := range t0 {
+ total += t.size
+ if total >= limit {
+ s.logf("table@compaction limiting F·%d -> F·%d", len(t0), i+1)
+ t0 = t0[:i+1]
+ break
+ }
+ }
+ }
+
+ return newCompaction(s, v, sourceLevel, t0)
+}
+
+func newCompaction(s *session, v *version, sourceLevel int, t0 tFiles) *compaction {
+ c := &compaction{
+ s: s,
+ v: v,
+ sourceLevel: sourceLevel,
+ levels: [2]tFiles{t0, nil},
+ maxGPOverlaps: int64(s.o.GetCompactionGPOverlaps(sourceLevel)),
+ tPtrs: make([]int, len(v.levels)),
+ }
+ c.expand()
+ c.save()
+ return c
+}
+
+// compaction represent a compaction state.
+type compaction struct {
+ s *session
+ v *version
+
+ sourceLevel int
+ levels [2]tFiles
+ maxGPOverlaps int64
+
+ gp tFiles
+ gpi int
+ seenKey bool
+ gpOverlappedBytes int64
+ imin, imax internalKey
+ tPtrs []int
+ released bool
+
+ snapGPI int
+ snapSeenKey bool
+ snapGPOverlappedBytes int64
+ snapTPtrs []int
+}
+
+func (c *compaction) save() {
+ c.snapGPI = c.gpi
+ c.snapSeenKey = c.seenKey
+ c.snapGPOverlappedBytes = c.gpOverlappedBytes
+ c.snapTPtrs = append(c.snapTPtrs[:0], c.tPtrs...)
+}
+
+func (c *compaction) restore() {
+ c.gpi = c.snapGPI
+ c.seenKey = c.snapSeenKey
+ c.gpOverlappedBytes = c.snapGPOverlappedBytes
+ c.tPtrs = append(c.tPtrs[:0], c.snapTPtrs...)
+}
+
+func (c *compaction) release() {
+ if !c.released {
+ c.released = true
+ c.v.release()
+ }
+}
+
+// Expand compacted tables; need external synchronization.
+func (c *compaction) expand() {
+ limit := int64(c.s.o.GetCompactionExpandLimit(c.sourceLevel))
+ vt0 := c.v.levels[c.sourceLevel]
+ vt1 := tFiles{}
+ if level := c.sourceLevel + 1; level < len(c.v.levels) {
+ vt1 = c.v.levels[level]
+ }
+
+ t0, t1 := c.levels[0], c.levels[1]
+ imin, imax := t0.getRange(c.s.icmp)
+ // We expand t0 here just incase ukey hop across tables.
+ t0 = vt0.getOverlaps(t0, c.s.icmp, imin.ukey(), imax.ukey(), c.sourceLevel == 0)
+ if len(t0) != len(c.levels[0]) {
+ imin, imax = t0.getRange(c.s.icmp)
+ }
+ t1 = vt1.getOverlaps(t1, c.s.icmp, imin.ukey(), imax.ukey(), false)
+ // Get entire range covered by compaction.
+ amin, amax := append(t0, t1...).getRange(c.s.icmp)
+
+ // See if we can grow the number of inputs in "sourceLevel" without
+ // changing the number of "sourceLevel+1" files we pick up.
+ if len(t1) > 0 {
+ exp0 := vt0.getOverlaps(nil, c.s.icmp, amin.ukey(), amax.ukey(), c.sourceLevel == 0)
+ if len(exp0) > len(t0) && t1.size()+exp0.size() < limit {
+ xmin, xmax := exp0.getRange(c.s.icmp)
+ exp1 := vt1.getOverlaps(nil, c.s.icmp, xmin.ukey(), xmax.ukey(), false)
+ if len(exp1) == len(t1) {
+ c.s.logf("table@compaction expanding L%d+L%d (F·%d S·%s)+(F·%d S·%s) -> (F·%d S·%s)+(F·%d S·%s)",
+ c.sourceLevel, c.sourceLevel+1, len(t0), shortenb(int(t0.size())), len(t1), shortenb(int(t1.size())),
+ len(exp0), shortenb(int(exp0.size())), len(exp1), shortenb(int(exp1.size())))
+ imin, imax = xmin, xmax
+ t0, t1 = exp0, exp1
+ amin, amax = append(t0, t1...).getRange(c.s.icmp)
+ }
+ }
+ }
+
+ // Compute the set of grandparent files that overlap this compaction
+ // (parent == sourceLevel+1; grandparent == sourceLevel+2)
+ if level := c.sourceLevel + 2; level < len(c.v.levels) {
+ c.gp = c.v.levels[level].getOverlaps(c.gp, c.s.icmp, amin.ukey(), amax.ukey(), false)
+ }
+
+ c.levels[0], c.levels[1] = t0, t1
+ c.imin, c.imax = imin, imax
+}
+
+// Check whether compaction is trivial.
+func (c *compaction) trivial() bool {
+ return len(c.levels[0]) == 1 && len(c.levels[1]) == 0 && c.gp.size() <= c.maxGPOverlaps
+}
+
+func (c *compaction) baseLevelForKey(ukey []byte) bool {
+ for level := c.sourceLevel + 2; level < len(c.v.levels); level++ {
+ tables := c.v.levels[level]
+ for c.tPtrs[level] < len(tables) {
+ t := tables[c.tPtrs[level]]
+ if c.s.icmp.uCompare(ukey, t.imax.ukey()) <= 0 {
+ // We've advanced far enough.
+ if c.s.icmp.uCompare(ukey, t.imin.ukey()) >= 0 {
+ // Key falls in this file's range, so definitely not base level.
+ return false
+ }
+ break
+ }
+ c.tPtrs[level]++
+ }
+ }
+ return true
+}
+
+func (c *compaction) shouldStopBefore(ikey internalKey) bool {
+ for ; c.gpi < len(c.gp); c.gpi++ {
+ gp := c.gp[c.gpi]
+ if c.s.icmp.Compare(ikey, gp.imax) <= 0 {
+ break
+ }
+ if c.seenKey {
+ c.gpOverlappedBytes += gp.size
+ }
+ }
+ c.seenKey = true
+
+ if c.gpOverlappedBytes > c.maxGPOverlaps {
+ // Too much overlap for current output; start new output.
+ c.gpOverlappedBytes = 0
+ return true
+ }
+ return false
+}
+
+// Creates an iterator.
+func (c *compaction) newIterator() iterator.Iterator {
+ // Creates iterator slice.
+ icap := len(c.levels)
+ if c.sourceLevel == 0 {
+ // Special case for level-0.
+ icap = len(c.levels[0]) + 1
+ }
+ its := make([]iterator.Iterator, 0, icap)
+
+ // Options.
+ ro := &opt.ReadOptions{
+ DontFillCache: true,
+ Strict: opt.StrictOverride,
+ }
+ strict := c.s.o.GetStrict(opt.StrictCompaction)
+ if strict {
+ ro.Strict |= opt.StrictReader
+ }
+
+ for i, tables := range c.levels {
+ if len(tables) == 0 {
+ continue
+ }
+
+ // Level-0 is not sorted and may overlaps each other.
+ if c.sourceLevel+i == 0 {
+ for _, t := range tables {
+ its = append(its, c.s.tops.newIterator(t, nil, ro))
+ }
+ } else {
+ it := iterator.NewIndexedIterator(tables.newIndexIterator(c.s.tops, c.s.icmp, nil, ro), strict)
+ its = append(its, it)
+ }
+ }
+
+ return iterator.NewMergedIterator(its, c.s.icmp, strict)
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go b/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go
new file mode 100644
index 000000000..854e1aa6f
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/session_record.go
@@ -0,0 +1,323 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "bufio"
+ "encoding/binary"
+ "io"
+ "strings"
+
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+type byteReader interface {
+ io.Reader
+ io.ByteReader
+}
+
+// These numbers are written to disk and should not be changed.
+const (
+ recComparer = 1
+ recJournalNum = 2
+ recNextFileNum = 3
+ recSeqNum = 4
+ recCompPtr = 5
+ recDelTable = 6
+ recAddTable = 7
+ // 8 was used for large value refs
+ recPrevJournalNum = 9
+)
+
+type cpRecord struct {
+ level int
+ ikey internalKey
+}
+
+type atRecord struct {
+ level int
+ num int64
+ size int64
+ imin internalKey
+ imax internalKey
+}
+
+type dtRecord struct {
+ level int
+ num int64
+}
+
+type sessionRecord struct {
+ hasRec int
+ comparer string
+ journalNum int64
+ prevJournalNum int64
+ nextFileNum int64
+ seqNum uint64
+ compPtrs []cpRecord
+ addedTables []atRecord
+ deletedTables []dtRecord
+
+ scratch [binary.MaxVarintLen64]byte
+ err error
+}
+
+func (p *sessionRecord) has(rec int) bool {
+ return p.hasRec&(1<<uint(rec)) != 0
+}
+
+func (p *sessionRecord) setComparer(name string) {
+ p.hasRec |= 1 << recComparer
+ p.comparer = name
+}
+
+func (p *sessionRecord) setJournalNum(num int64) {
+ p.hasRec |= 1 << recJournalNum
+ p.journalNum = num
+}
+
+func (p *sessionRecord) setPrevJournalNum(num int64) {
+ p.hasRec |= 1 << recPrevJournalNum
+ p.prevJournalNum = num
+}
+
+func (p *sessionRecord) setNextFileNum(num int64) {
+ p.hasRec |= 1 << recNextFileNum
+ p.nextFileNum = num
+}
+
+func (p *sessionRecord) setSeqNum(num uint64) {
+ p.hasRec |= 1 << recSeqNum
+ p.seqNum = num
+}
+
+func (p *sessionRecord) addCompPtr(level int, ikey internalKey) {
+ p.hasRec |= 1 << recCompPtr
+ p.compPtrs = append(p.compPtrs, cpRecord{level, ikey})
+}
+
+func (p *sessionRecord) resetCompPtrs() {
+ p.hasRec &= ^(1 << recCompPtr)
+ p.compPtrs = p.compPtrs[:0]
+}
+
+func (p *sessionRecord) addTable(level int, num, size int64, imin, imax internalKey) {
+ p.hasRec |= 1 << recAddTable
+ p.addedTables = append(p.addedTables, atRecord{level, num, size, imin, imax})
+}
+
+func (p *sessionRecord) addTableFile(level int, t *tFile) {
+ p.addTable(level, t.fd.Num, t.size, t.imin, t.imax)
+}
+
+func (p *sessionRecord) resetAddedTables() {
+ p.hasRec &= ^(1 << recAddTable)
+ p.addedTables = p.addedTables[:0]
+}
+
+func (p *sessionRecord) delTable(level int, num int64) {
+ p.hasRec |= 1 << recDelTable
+ p.deletedTables = append(p.deletedTables, dtRecord{level, num})
+}
+
+func (p *sessionRecord) resetDeletedTables() {
+ p.hasRec &= ^(1 << recDelTable)
+ p.deletedTables = p.deletedTables[:0]
+}
+
+func (p *sessionRecord) putUvarint(w io.Writer, x uint64) {
+ if p.err != nil {
+ return
+ }
+ n := binary.PutUvarint(p.scratch[:], x)
+ _, p.err = w.Write(p.scratch[:n])
+}
+
+func (p *sessionRecord) putVarint(w io.Writer, x int64) {
+ if x < 0 {
+ panic("invalid negative value")
+ }
+ p.putUvarint(w, uint64(x))
+}
+
+func (p *sessionRecord) putBytes(w io.Writer, x []byte) {
+ if p.err != nil {
+ return
+ }
+ p.putUvarint(w, uint64(len(x)))
+ if p.err != nil {
+ return
+ }
+ _, p.err = w.Write(x)
+}
+
+func (p *sessionRecord) encode(w io.Writer) error {
+ p.err = nil
+ if p.has(recComparer) {
+ p.putUvarint(w, recComparer)
+ p.putBytes(w, []byte(p.comparer))
+ }
+ if p.has(recJournalNum) {
+ p.putUvarint(w, recJournalNum)
+ p.putVarint(w, p.journalNum)
+ }
+ if p.has(recNextFileNum) {
+ p.putUvarint(w, recNextFileNum)
+ p.putVarint(w, p.nextFileNum)
+ }
+ if p.has(recSeqNum) {
+ p.putUvarint(w, recSeqNum)
+ p.putUvarint(w, p.seqNum)
+ }
+ for _, r := range p.compPtrs {
+ p.putUvarint(w, recCompPtr)
+ p.putUvarint(w, uint64(r.level))
+ p.putBytes(w, r.ikey)
+ }
+ for _, r := range p.deletedTables {
+ p.putUvarint(w, recDelTable)
+ p.putUvarint(w, uint64(r.level))
+ p.putVarint(w, r.num)
+ }
+ for _, r := range p.addedTables {
+ p.putUvarint(w, recAddTable)
+ p.putUvarint(w, uint64(r.level))
+ p.putVarint(w, r.num)
+ p.putVarint(w, r.size)
+ p.putBytes(w, r.imin)
+ p.putBytes(w, r.imax)
+ }
+ return p.err
+}
+
+func (p *sessionRecord) readUvarintMayEOF(field string, r io.ByteReader, mayEOF bool) uint64 {
+ if p.err != nil {
+ return 0
+ }
+ x, err := binary.ReadUvarint(r)
+ if err != nil {
+ if err == io.ErrUnexpectedEOF || (mayEOF == false && err == io.EOF) {
+ p.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrManifestCorrupted{field, "short read"})
+ } else if strings.HasPrefix(err.Error(), "binary:") {
+ p.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrManifestCorrupted{field, err.Error()})
+ } else {
+ p.err = err
+ }
+ return 0
+ }
+ return x
+}
+
+func (p *sessionRecord) readUvarint(field string, r io.ByteReader) uint64 {
+ return p.readUvarintMayEOF(field, r, false)
+}
+
+func (p *sessionRecord) readVarint(field string, r io.ByteReader) int64 {
+ x := int64(p.readUvarintMayEOF(field, r, false))
+ if x < 0 {
+ p.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrManifestCorrupted{field, "invalid negative value"})
+ }
+ return x
+}
+
+func (p *sessionRecord) readBytes(field string, r byteReader) []byte {
+ if p.err != nil {
+ return nil
+ }
+ n := p.readUvarint(field, r)
+ if p.err != nil {
+ return nil
+ }
+ x := make([]byte, n)
+ _, p.err = io.ReadFull(r, x)
+ if p.err != nil {
+ if p.err == io.ErrUnexpectedEOF {
+ p.err = errors.NewErrCorrupted(storage.FileDesc{}, &ErrManifestCorrupted{field, "short read"})
+ }
+ return nil
+ }
+ return x
+}
+
+func (p *sessionRecord) readLevel(field string, r io.ByteReader) int {
+ if p.err != nil {
+ return 0
+ }
+ x := p.readUvarint(field, r)
+ if p.err != nil {
+ return 0
+ }
+ return int(x)
+}
+
+func (p *sessionRecord) decode(r io.Reader) error {
+ br, ok := r.(byteReader)
+ if !ok {
+ br = bufio.NewReader(r)
+ }
+ p.err = nil
+ for p.err == nil {
+ rec := p.readUvarintMayEOF("field-header", br, true)
+ if p.err != nil {
+ if p.err == io.EOF {
+ return nil
+ }
+ return p.err
+ }
+ switch rec {
+ case recComparer:
+ x := p.readBytes("comparer", br)
+ if p.err == nil {
+ p.setComparer(string(x))
+ }
+ case recJournalNum:
+ x := p.readVarint("journal-num", br)
+ if p.err == nil {
+ p.setJournalNum(x)
+ }
+ case recPrevJournalNum:
+ x := p.readVarint("prev-journal-num", br)
+ if p.err == nil {
+ p.setPrevJournalNum(x)
+ }
+ case recNextFileNum:
+ x := p.readVarint("next-file-num", br)
+ if p.err == nil {
+ p.setNextFileNum(x)
+ }
+ case recSeqNum:
+ x := p.readUvarint("seq-num", br)
+ if p.err == nil {
+ p.setSeqNum(x)
+ }
+ case recCompPtr:
+ level := p.readLevel("comp-ptr.level", br)
+ ikey := p.readBytes("comp-ptr.ikey", br)
+ if p.err == nil {
+ p.addCompPtr(level, internalKey(ikey))
+ }
+ case recAddTable:
+ level := p.readLevel("add-table.level", br)
+ num := p.readVarint("add-table.num", br)
+ size := p.readVarint("add-table.size", br)
+ imin := p.readBytes("add-table.imin", br)
+ imax := p.readBytes("add-table.imax", br)
+ if p.err == nil {
+ p.addTable(level, num, size, imin, imax)
+ }
+ case recDelTable:
+ level := p.readLevel("del-table.level", br)
+ num := p.readVarint("del-table.num", br)
+ if p.err == nil {
+ p.delTable(level, num)
+ }
+ }
+ }
+
+ return p.err
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/session_util.go b/vendor/github.com/syndtr/goleveldb/leveldb/session_util.go
new file mode 100644
index 000000000..34ad61798
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/session_util.go
@@ -0,0 +1,258 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "fmt"
+ "sync/atomic"
+
+ "github.com/syndtr/goleveldb/leveldb/journal"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+// Logging.
+
+type dropper struct {
+ s *session
+ fd storage.FileDesc
+}
+
+func (d dropper) Drop(err error) {
+ if e, ok := err.(*journal.ErrCorrupted); ok {
+ d.s.logf("journal@drop %s-%d S·%s %q", d.fd.Type, d.fd.Num, shortenb(e.Size), e.Reason)
+ } else {
+ d.s.logf("journal@drop %s-%d %q", d.fd.Type, d.fd.Num, err)
+ }
+}
+
+func (s *session) log(v ...interface{}) { s.stor.Log(fmt.Sprint(v...)) }
+func (s *session) logf(format string, v ...interface{}) { s.stor.Log(fmt.Sprintf(format, v...)) }
+
+// File utils.
+
+func (s *session) newTemp() storage.FileDesc {
+ num := atomic.AddInt64(&s.stTempFileNum, 1) - 1
+ return storage.FileDesc{storage.TypeTemp, num}
+}
+
+// Session state.
+
+// Get current version. This will incr version ref, must call
+// version.release (exactly once) after use.
+func (s *session) version() *version {
+ s.vmu.Lock()
+ defer s.vmu.Unlock()
+ s.stVersion.ref++
+ return s.stVersion
+}
+
+func (s *session) tLen(level int) int {
+ s.vmu.Lock()
+ defer s.vmu.Unlock()
+ return s.stVersion.tLen(level)
+}
+
+// Set current version to v.
+func (s *session) setVersion(v *version) {
+ s.vmu.Lock()
+ v.ref = 1 // Holds by session.
+ if old := s.stVersion; old != nil {
+ v.ref++ // Holds by old version.
+ old.next = v
+ old.releaseNB()
+ }
+ s.stVersion = v
+ s.vmu.Unlock()
+}
+
+// Get current unused file number.
+func (s *session) nextFileNum() int64 {
+ return atomic.LoadInt64(&s.stNextFileNum)
+}
+
+// Set current unused file number to num.
+func (s *session) setNextFileNum(num int64) {
+ atomic.StoreInt64(&s.stNextFileNum, num)
+}
+
+// Mark file number as used.
+func (s *session) markFileNum(num int64) {
+ nextFileNum := num + 1
+ for {
+ old, x := s.stNextFileNum, nextFileNum
+ if old > x {
+ x = old
+ }
+ if atomic.CompareAndSwapInt64(&s.stNextFileNum, old, x) {
+ break
+ }
+ }
+}
+
+// Allocate a file number.
+func (s *session) allocFileNum() int64 {
+ return atomic.AddInt64(&s.stNextFileNum, 1) - 1
+}
+
+// Reuse given file number.
+func (s *session) reuseFileNum(num int64) {
+ for {
+ old, x := s.stNextFileNum, num
+ if old != x+1 {
+ x = old
+ }
+ if atomic.CompareAndSwapInt64(&s.stNextFileNum, old, x) {
+ break
+ }
+ }
+}
+
+// Set compaction ptr at given level; need external synchronization.
+func (s *session) setCompPtr(level int, ik internalKey) {
+ if level >= len(s.stCompPtrs) {
+ newCompPtrs := make([]internalKey, level+1)
+ copy(newCompPtrs, s.stCompPtrs)
+ s.stCompPtrs = newCompPtrs
+ }
+ s.stCompPtrs[level] = append(internalKey{}, ik...)
+}
+
+// Get compaction ptr at given level; need external synchronization.
+func (s *session) getCompPtr(level int) internalKey {
+ if level >= len(s.stCompPtrs) {
+ return nil
+ }
+ return s.stCompPtrs[level]
+}
+
+// Manifest related utils.
+
+// Fill given session record obj with current states; need external
+// synchronization.
+func (s *session) fillRecord(r *sessionRecord, snapshot bool) {
+ r.setNextFileNum(s.nextFileNum())
+
+ if snapshot {
+ if !r.has(recJournalNum) {
+ r.setJournalNum(s.stJournalNum)
+ }
+
+ if !r.has(recSeqNum) {
+ r.setSeqNum(s.stSeqNum)
+ }
+
+ for level, ik := range s.stCompPtrs {
+ if ik != nil {
+ r.addCompPtr(level, ik)
+ }
+ }
+
+ r.setComparer(s.icmp.uName())
+ }
+}
+
+// Mark if record has been committed, this will update session state;
+// need external synchronization.
+func (s *session) recordCommited(rec *sessionRecord) {
+ if rec.has(recJournalNum) {
+ s.stJournalNum = rec.journalNum
+ }
+
+ if rec.has(recPrevJournalNum) {
+ s.stPrevJournalNum = rec.prevJournalNum
+ }
+
+ if rec.has(recSeqNum) {
+ s.stSeqNum = rec.seqNum
+ }
+
+ for _, r := range rec.compPtrs {
+ s.setCompPtr(r.level, internalKey(r.ikey))
+ }
+}
+
+// Create a new manifest file; need external synchronization.
+func (s *session) newManifest(rec *sessionRecord, v *version) (err error) {
+ fd := storage.FileDesc{storage.TypeManifest, s.allocFileNum()}
+ writer, err := s.stor.Create(fd)
+ if err != nil {
+ return
+ }
+ jw := journal.NewWriter(writer)
+
+ if v == nil {
+ v = s.version()
+ defer v.release()
+ }
+ if rec == nil {
+ rec = &sessionRecord{}
+ }
+ s.fillRecord(rec, true)
+ v.fillRecord(rec)
+
+ defer func() {
+ if err == nil {
+ s.recordCommited(rec)
+ if s.manifest != nil {
+ s.manifest.Close()
+ }
+ if s.manifestWriter != nil {
+ s.manifestWriter.Close()
+ }
+ if !s.manifestFd.Zero() {
+ s.stor.Remove(s.manifestFd)
+ }
+ s.manifestFd = fd
+ s.manifestWriter = writer
+ s.manifest = jw
+ } else {
+ writer.Close()
+ s.stor.Remove(fd)
+ s.reuseFileNum(fd.Num)
+ }
+ }()
+
+ w, err := jw.Next()
+ if err != nil {
+ return
+ }
+ err = rec.encode(w)
+ if err != nil {
+ return
+ }
+ err = jw.Flush()
+ if err != nil {
+ return
+ }
+ err = s.stor.SetMeta(fd)
+ return
+}
+
+// Flush record to disk.
+func (s *session) flushManifest(rec *sessionRecord) (err error) {
+ s.fillRecord(rec, false)
+ w, err := s.manifest.Next()
+ if err != nil {
+ return
+ }
+ err = rec.encode(w)
+ if err != nil {
+ return
+ }
+ err = s.manifest.Flush()
+ if err != nil {
+ return
+ }
+ if !s.o.GetNoSync() {
+ err = s.manifestWriter.Sync()
+ if err != nil {
+ return
+ }
+ }
+ s.recordCommited(rec)
+ return
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go
new file mode 100644
index 000000000..e53434cab
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage.go
@@ -0,0 +1,583 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reservefs.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package storage
+
+import (
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "runtime"
+ "strconv"
+ "strings"
+ "sync"
+ "time"
+)
+
+var (
+ errFileOpen = errors.New("leveldb/storage: file still open")
+ errReadOnly = errors.New("leveldb/storage: storage is read-only")
+)
+
+type fileLock interface {
+ release() error
+}
+
+type fileStorageLock struct {
+ fs *fileStorage
+}
+
+func (lock *fileStorageLock) Unlock() {
+ if lock.fs != nil {
+ lock.fs.mu.Lock()
+ defer lock.fs.mu.Unlock()
+ if lock.fs.slock == lock {
+ lock.fs.slock = nil
+ }
+ }
+}
+
+const logSizeThreshold = 1024 * 1024 // 1 MiB
+
+// fileStorage is a file-system backed storage.
+type fileStorage struct {
+ path string
+ readOnly bool
+
+ mu sync.Mutex
+ flock fileLock
+ slock *fileStorageLock
+ logw *os.File
+ logSize int64
+ buf []byte
+ // Opened file counter; if open < 0 means closed.
+ open int
+ day int
+}
+
+// OpenFile returns a new filesytem-backed storage implementation with the given
+// path. This also acquire a file lock, so any subsequent attempt to open the
+// same path will fail.
+//
+// The storage must be closed after use, by calling Close method.
+func OpenFile(path string, readOnly bool) (Storage, error) {
+ if fi, err := os.Stat(path); err == nil {
+ if !fi.IsDir() {
+ return nil, fmt.Errorf("leveldb/storage: open %s: not a directory", path)
+ }
+ } else if os.IsNotExist(err) && !readOnly {
+ if err := os.MkdirAll(path, 0755); err != nil {
+ return nil, err
+ }
+ } else {
+ return nil, err
+ }
+
+ flock, err := newFileLock(filepath.Join(path, "LOCK"), readOnly)
+ if err != nil {
+ return nil, err
+ }
+
+ defer func() {
+ if err != nil {
+ flock.release()
+ }
+ }()
+
+ var (
+ logw *os.File
+ logSize int64
+ )
+ if !readOnly {
+ logw, err = os.OpenFile(filepath.Join(path, "LOG"), os.O_WRONLY|os.O_CREATE, 0644)
+ if err != nil {
+ return nil, err
+ }
+ logSize, err = logw.Seek(0, os.SEEK_END)
+ if err != nil {
+ logw.Close()
+ return nil, err
+ }
+ }
+
+ fs := &fileStorage{
+ path: path,
+ readOnly: readOnly,
+ flock: flock,
+ logw: logw,
+ logSize: logSize,
+ }
+ runtime.SetFinalizer(fs, (*fileStorage).Close)
+ return fs, nil
+}
+
+func (fs *fileStorage) Lock() (Locker, error) {
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return nil, ErrClosed
+ }
+ if fs.readOnly {
+ return &fileStorageLock{}, nil
+ }
+ if fs.slock != nil {
+ return nil, ErrLocked
+ }
+ fs.slock = &fileStorageLock{fs: fs}
+ return fs.slock, nil
+}
+
+func itoa(buf []byte, i int, wid int) []byte {
+ u := uint(i)
+ if u == 0 && wid <= 1 {
+ return append(buf, '0')
+ }
+
+ // Assemble decimal in reverse order.
+ var b [32]byte
+ bp := len(b)
+ for ; u > 0 || wid > 0; u /= 10 {
+ bp--
+ wid--
+ b[bp] = byte(u%10) + '0'
+ }
+ return append(buf, b[bp:]...)
+}
+
+func (fs *fileStorage) printDay(t time.Time) {
+ if fs.day == t.Day() {
+ return
+ }
+ fs.day = t.Day()
+ fs.logw.Write([]byte("=============== " + t.Format("Jan 2, 2006 (MST)") + " ===============\n"))
+}
+
+func (fs *fileStorage) doLog(t time.Time, str string) {
+ if fs.logSize > logSizeThreshold {
+ // Rotate log file.
+ fs.logw.Close()
+ fs.logw = nil
+ fs.logSize = 0
+ rename(filepath.Join(fs.path, "LOG"), filepath.Join(fs.path, "LOG.old"))
+ }
+ if fs.logw == nil {
+ var err error
+ fs.logw, err = os.OpenFile(filepath.Join(fs.path, "LOG"), os.O_WRONLY|os.O_CREATE, 0644)
+ if err != nil {
+ return
+ }
+ // Force printDay on new log file.
+ fs.day = 0
+ }
+ fs.printDay(t)
+ hour, min, sec := t.Clock()
+ msec := t.Nanosecond() / 1e3
+ // time
+ fs.buf = itoa(fs.buf[:0], hour, 2)
+ fs.buf = append(fs.buf, ':')
+ fs.buf = itoa(fs.buf, min, 2)
+ fs.buf = append(fs.buf, ':')
+ fs.buf = itoa(fs.buf, sec, 2)
+ fs.buf = append(fs.buf, '.')
+ fs.buf = itoa(fs.buf, msec, 6)
+ fs.buf = append(fs.buf, ' ')
+ // write
+ fs.buf = append(fs.buf, []byte(str)...)
+ fs.buf = append(fs.buf, '\n')
+ fs.logw.Write(fs.buf)
+}
+
+func (fs *fileStorage) Log(str string) {
+ if !fs.readOnly {
+ t := time.Now()
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return
+ }
+ fs.doLog(t, str)
+ }
+}
+
+func (fs *fileStorage) log(str string) {
+ if !fs.readOnly {
+ fs.doLog(time.Now(), str)
+ }
+}
+
+func (fs *fileStorage) SetMeta(fd FileDesc) (err error) {
+ if !FileDescOk(fd) {
+ return ErrInvalidFile
+ }
+ if fs.readOnly {
+ return errReadOnly
+ }
+
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return ErrClosed
+ }
+ defer func() {
+ if err != nil {
+ fs.log(fmt.Sprintf("CURRENT: %v", err))
+ }
+ }()
+ path := fmt.Sprintf("%s.%d", filepath.Join(fs.path, "CURRENT"), fd.Num)
+ w, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
+ if err != nil {
+ return
+ }
+ _, err = fmt.Fprintln(w, fsGenName(fd))
+ // Close the file first.
+ if cerr := w.Close(); cerr != nil {
+ fs.log(fmt.Sprintf("close CURRENT.%d: %v", fd.Num, cerr))
+ }
+ if err != nil {
+ return
+ }
+ return rename(path, filepath.Join(fs.path, "CURRENT"))
+}
+
+func (fs *fileStorage) GetMeta() (fd FileDesc, err error) {
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return FileDesc{}, ErrClosed
+ }
+ dir, err := os.Open(fs.path)
+ if err != nil {
+ return
+ }
+ names, err := dir.Readdirnames(0)
+ // Close the dir first before checking for Readdirnames error.
+ if ce := dir.Close(); ce != nil {
+ fs.log(fmt.Sprintf("close dir: %v", ce))
+ }
+ if err != nil {
+ return
+ }
+ // Find latest CURRENT file.
+ var rem []string
+ var pend bool
+ var cerr error
+ for _, name := range names {
+ if strings.HasPrefix(name, "CURRENT") {
+ pend1 := len(name) > 7
+ var pendNum int64
+ // Make sure it is valid name for a CURRENT file, otherwise skip it.
+ if pend1 {
+ if name[7] != '.' || len(name) < 9 {
+ fs.log(fmt.Sprintf("skipping %s: invalid file name", name))
+ continue
+ }
+ var e1 error
+ if pendNum, e1 = strconv.ParseInt(name[8:], 10, 0); e1 != nil {
+ fs.log(fmt.Sprintf("skipping %s: invalid file num: %v", name, e1))
+ continue
+ }
+ }
+ path := filepath.Join(fs.path, name)
+ r, e1 := os.OpenFile(path, os.O_RDONLY, 0)
+ if e1 != nil {
+ return FileDesc{}, e1
+ }
+ b, e1 := ioutil.ReadAll(r)
+ if e1 != nil {
+ r.Close()
+ return FileDesc{}, e1
+ }
+ var fd1 FileDesc
+ if len(b) < 1 || b[len(b)-1] != '\n' || !fsParseNamePtr(string(b[:len(b)-1]), &fd1) {
+ fs.log(fmt.Sprintf("skipping %s: corrupted or incomplete", name))
+ if pend1 {
+ rem = append(rem, name)
+ }
+ if !pend1 || cerr == nil {
+ metaFd, _ := fsParseName(name)
+ cerr = &ErrCorrupted{
+ Fd: metaFd,
+ Err: errors.New("leveldb/storage: corrupted or incomplete meta file"),
+ }
+ }
+ } else if pend1 && pendNum != fd1.Num {
+ fs.log(fmt.Sprintf("skipping %s: inconsistent pending-file num: %d vs %d", name, pendNum, fd1.Num))
+ rem = append(rem, name)
+ } else if fd1.Num < fd.Num {
+ fs.log(fmt.Sprintf("skipping %s: obsolete", name))
+ if pend1 {
+ rem = append(rem, name)
+ }
+ } else {
+ fd = fd1
+ pend = pend1
+ }
+ if err := r.Close(); err != nil {
+ fs.log(fmt.Sprintf("close %s: %v", name, err))
+ }
+ }
+ }
+ // Don't remove any files if there is no valid CURRENT file.
+ if fd.Zero() {
+ if cerr != nil {
+ err = cerr
+ } else {
+ err = os.ErrNotExist
+ }
+ return
+ }
+ if !fs.readOnly {
+ // Rename pending CURRENT file to an effective CURRENT.
+ if pend {
+ path := fmt.Sprintf("%s.%d", filepath.Join(fs.path, "CURRENT"), fd.Num)
+ if err := rename(path, filepath.Join(fs.path, "CURRENT")); err != nil {
+ fs.log(fmt.Sprintf("CURRENT.%d -> CURRENT: %v", fd.Num, err))
+ }
+ }
+ // Remove obsolete or incomplete pending CURRENT files.
+ for _, name := range rem {
+ path := filepath.Join(fs.path, name)
+ if err := os.Remove(path); err != nil {
+ fs.log(fmt.Sprintf("remove %s: %v", name, err))
+ }
+ }
+ }
+ return
+}
+
+func (fs *fileStorage) List(ft FileType) (fds []FileDesc, err error) {
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return nil, ErrClosed
+ }
+ dir, err := os.Open(fs.path)
+ if err != nil {
+ return
+ }
+ names, err := dir.Readdirnames(0)
+ // Close the dir first before checking for Readdirnames error.
+ if cerr := dir.Close(); cerr != nil {
+ fs.log(fmt.Sprintf("close dir: %v", cerr))
+ }
+ if err == nil {
+ for _, name := range names {
+ if fd, ok := fsParseName(name); ok && fd.Type&ft != 0 {
+ fds = append(fds, fd)
+ }
+ }
+ }
+ return
+}
+
+func (fs *fileStorage) Open(fd FileDesc) (Reader, error) {
+ if !FileDescOk(fd) {
+ return nil, ErrInvalidFile
+ }
+
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return nil, ErrClosed
+ }
+ of, err := os.OpenFile(filepath.Join(fs.path, fsGenName(fd)), os.O_RDONLY, 0)
+ if err != nil {
+ if fsHasOldName(fd) && os.IsNotExist(err) {
+ of, err = os.OpenFile(filepath.Join(fs.path, fsGenOldName(fd)), os.O_RDONLY, 0)
+ if err == nil {
+ goto ok
+ }
+ }
+ return nil, err
+ }
+ok:
+ fs.open++
+ return &fileWrap{File: of, fs: fs, fd: fd}, nil
+}
+
+func (fs *fileStorage) Create(fd FileDesc) (Writer, error) {
+ if !FileDescOk(fd) {
+ return nil, ErrInvalidFile
+ }
+ if fs.readOnly {
+ return nil, errReadOnly
+ }
+
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return nil, ErrClosed
+ }
+ of, err := os.OpenFile(filepath.Join(fs.path, fsGenName(fd)), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
+ if err != nil {
+ return nil, err
+ }
+ fs.open++
+ return &fileWrap{File: of, fs: fs, fd: fd}, nil
+}
+
+func (fs *fileStorage) Remove(fd FileDesc) error {
+ if !FileDescOk(fd) {
+ return ErrInvalidFile
+ }
+ if fs.readOnly {
+ return errReadOnly
+ }
+
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return ErrClosed
+ }
+ err := os.Remove(filepath.Join(fs.path, fsGenName(fd)))
+ if err != nil {
+ if fsHasOldName(fd) && os.IsNotExist(err) {
+ if e1 := os.Remove(filepath.Join(fs.path, fsGenOldName(fd))); !os.IsNotExist(e1) {
+ fs.log(fmt.Sprintf("remove %s: %v (old name)", fd, err))
+ err = e1
+ }
+ } else {
+ fs.log(fmt.Sprintf("remove %s: %v", fd, err))
+ }
+ }
+ return err
+}
+
+func (fs *fileStorage) Rename(oldfd, newfd FileDesc) error {
+ if !FileDescOk(oldfd) || !FileDescOk(newfd) {
+ return ErrInvalidFile
+ }
+ if oldfd == newfd {
+ return nil
+ }
+ if fs.readOnly {
+ return errReadOnly
+ }
+
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return ErrClosed
+ }
+ return rename(filepath.Join(fs.path, fsGenName(oldfd)), filepath.Join(fs.path, fsGenName(newfd)))
+}
+
+func (fs *fileStorage) Close() error {
+ fs.mu.Lock()
+ defer fs.mu.Unlock()
+ if fs.open < 0 {
+ return ErrClosed
+ }
+ // Clear the finalizer.
+ runtime.SetFinalizer(fs, nil)
+
+ if fs.open > 0 {
+ fs.log(fmt.Sprintf("close: warning, %d files still open", fs.open))
+ }
+ fs.open = -1
+ if fs.logw != nil {
+ fs.logw.Close()
+ }
+ return fs.flock.release()
+}
+
+type fileWrap struct {
+ *os.File
+ fs *fileStorage
+ fd FileDesc
+ closed bool
+}
+
+func (fw *fileWrap) Sync() error {
+ if err := fw.File.Sync(); err != nil {
+ return err
+ }
+ if fw.fd.Type == TypeManifest {
+ // Also sync parent directory if file type is manifest.
+ // See: https://code.google.com/p/leveldb/issues/detail?id=190.
+ if err := syncDir(fw.fs.path); err != nil {
+ fw.fs.log(fmt.Sprintf("syncDir: %v", err))
+ return err
+ }
+ }
+ return nil
+}
+
+func (fw *fileWrap) Close() error {
+ fw.fs.mu.Lock()
+ defer fw.fs.mu.Unlock()
+ if fw.closed {
+ return ErrClosed
+ }
+ fw.closed = true
+ fw.fs.open--
+ err := fw.File.Close()
+ if err != nil {
+ fw.fs.log(fmt.Sprintf("close %s: %v", fw.fd, err))
+ }
+ return err
+}
+
+func fsGenName(fd FileDesc) string {
+ switch fd.Type {
+ case TypeManifest:
+ return fmt.Sprintf("MANIFEST-%06d", fd.Num)
+ case TypeJournal:
+ return fmt.Sprintf("%06d.log", fd.Num)
+ case TypeTable:
+ return fmt.Sprintf("%06d.ldb", fd.Num)
+ case TypeTemp:
+ return fmt.Sprintf("%06d.tmp", fd.Num)
+ default:
+ panic("invalid file type")
+ }
+}
+
+func fsHasOldName(fd FileDesc) bool {
+ return fd.Type == TypeTable
+}
+
+func fsGenOldName(fd FileDesc) string {
+ switch fd.Type {
+ case TypeTable:
+ return fmt.Sprintf("%06d.sst", fd.Num)
+ }
+ return fsGenName(fd)
+}
+
+func fsParseName(name string) (fd FileDesc, ok bool) {
+ var tail string
+ _, err := fmt.Sscanf(name, "%d.%s", &fd.Num, &tail)
+ if err == nil {
+ switch tail {
+ case "log":
+ fd.Type = TypeJournal
+ case "ldb", "sst":
+ fd.Type = TypeTable
+ case "tmp":
+ fd.Type = TypeTemp
+ default:
+ return
+ }
+ return fd, true
+ }
+ n, _ := fmt.Sscanf(name, "MANIFEST-%d%s", &fd.Num, &tail)
+ if n == 1 {
+ fd.Type = TypeManifest
+ return fd, true
+ }
+ return
+}
+
+func fsParseNamePtr(name string, fd *FileDesc) bool {
+ _fd, ok := fsParseName(name)
+ if fd != nil {
+ *fd = _fd
+ }
+ return ok
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go
new file mode 100644
index 000000000..5545aeef2
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_nacl.go
@@ -0,0 +1,34 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// +build nacl
+
+package storage
+
+import (
+ "os"
+ "syscall"
+)
+
+func newFileLock(path string, readOnly bool) (fl fileLock, err error) {
+ return nil, syscall.ENOTSUP
+}
+
+func setFileLock(f *os.File, readOnly, lock bool) error {
+ return syscall.ENOTSUP
+}
+
+func rename(oldpath, newpath string) error {
+ return syscall.ENOTSUP
+}
+
+func isErrInvalid(err error) bool {
+ return false
+}
+
+func syncDir(name string) error {
+ return syscall.ENOTSUP
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go
new file mode 100644
index 000000000..bab62bfce
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_plan9.go
@@ -0,0 +1,65 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package storage
+
+import (
+ "os"
+ "path/filepath"
+)
+
+type plan9FileLock struct {
+ f *os.File
+}
+
+func (fl *plan9FileLock) release() error {
+ return fl.f.Close()
+}
+
+func newFileLock(path string, readOnly bool) (fl fileLock, err error) {
+ var (
+ flag int
+ perm os.FileMode
+ )
+ if readOnly {
+ flag = os.O_RDONLY
+ } else {
+ flag = os.O_RDWR
+ perm = os.ModeExclusive
+ }
+ f, err := os.OpenFile(path, flag, perm)
+ if os.IsNotExist(err) {
+ f, err = os.OpenFile(path, flag|os.O_CREATE, perm|0644)
+ }
+ if err != nil {
+ return
+ }
+ fl = &plan9FileLock{f: f}
+ return
+}
+
+func rename(oldpath, newpath string) error {
+ if _, err := os.Stat(newpath); err == nil {
+ if err := os.Remove(newpath); err != nil {
+ return err
+ }
+ }
+
+ _, fname := filepath.Split(newpath)
+ return os.Rename(oldpath, fname)
+}
+
+func syncDir(name string) error {
+ f, err := os.Open(name)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ if err := f.Sync(); err != nil {
+ return err
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go
new file mode 100644
index 000000000..79901ee4a
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_solaris.go
@@ -0,0 +1,81 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// +build solaris
+
+package storage
+
+import (
+ "os"
+ "syscall"
+)
+
+type unixFileLock struct {
+ f *os.File
+}
+
+func (fl *unixFileLock) release() error {
+ if err := setFileLock(fl.f, false, false); err != nil {
+ return err
+ }
+ return fl.f.Close()
+}
+
+func newFileLock(path string, readOnly bool) (fl fileLock, err error) {
+ var flag int
+ if readOnly {
+ flag = os.O_RDONLY
+ } else {
+ flag = os.O_RDWR
+ }
+ f, err := os.OpenFile(path, flag, 0)
+ if os.IsNotExist(err) {
+ f, err = os.OpenFile(path, flag|os.O_CREATE, 0644)
+ }
+ if err != nil {
+ return
+ }
+ err = setFileLock(f, readOnly, true)
+ if err != nil {
+ f.Close()
+ return
+ }
+ fl = &unixFileLock{f: f}
+ return
+}
+
+func setFileLock(f *os.File, readOnly, lock bool) error {
+ flock := syscall.Flock_t{
+ Type: syscall.F_UNLCK,
+ Start: 0,
+ Len: 0,
+ Whence: 1,
+ }
+ if lock {
+ if readOnly {
+ flock.Type = syscall.F_RDLCK
+ } else {
+ flock.Type = syscall.F_WRLCK
+ }
+ }
+ return syscall.FcntlFlock(f.Fd(), syscall.F_SETLK, &flock)
+}
+
+func rename(oldpath, newpath string) error {
+ return os.Rename(oldpath, newpath)
+}
+
+func syncDir(name string) error {
+ f, err := os.Open(name)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ if err := f.Sync(); err != nil {
+ return err
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go
new file mode 100644
index 000000000..7e2991537
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_unix.go
@@ -0,0 +1,86 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// 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 storage
+
+import (
+ "os"
+ "syscall"
+)
+
+type unixFileLock struct {
+ f *os.File
+}
+
+func (fl *unixFileLock) release() error {
+ if err := setFileLock(fl.f, false, false); err != nil {
+ return err
+ }
+ return fl.f.Close()
+}
+
+func newFileLock(path string, readOnly bool) (fl fileLock, err error) {
+ var flag int
+ if readOnly {
+ flag = os.O_RDONLY
+ } else {
+ flag = os.O_RDWR
+ }
+ f, err := os.OpenFile(path, flag, 0)
+ if os.IsNotExist(err) {
+ f, err = os.OpenFile(path, flag|os.O_CREATE, 0644)
+ }
+ if err != nil {
+ return
+ }
+ err = setFileLock(f, readOnly, true)
+ if err != nil {
+ f.Close()
+ return
+ }
+ fl = &unixFileLock{f: f}
+ return
+}
+
+func setFileLock(f *os.File, readOnly, lock bool) error {
+ how := syscall.LOCK_UN
+ if lock {
+ if readOnly {
+ how = syscall.LOCK_SH
+ } else {
+ how = syscall.LOCK_EX
+ }
+ }
+ return syscall.Flock(int(f.Fd()), how|syscall.LOCK_NB)
+}
+
+func rename(oldpath, newpath string) error {
+ return os.Rename(oldpath, newpath)
+}
+
+func isErrInvalid(err error) bool {
+ if err == os.ErrInvalid {
+ return true
+ }
+ if syserr, ok := err.(*os.SyscallError); ok && syserr.Err == syscall.EINVAL {
+ return true
+ }
+ return false
+}
+
+func syncDir(name string) error {
+ f, err := os.Open(name)
+ if err != nil {
+ return err
+ }
+ defer f.Close()
+ if err := f.Sync(); err != nil && !isErrInvalid(err) {
+ return err
+ }
+ return nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go
new file mode 100644
index 000000000..899335fd7
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/file_storage_windows.go
@@ -0,0 +1,78 @@
+// Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package storage
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+var (
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+
+ procMoveFileExW = modkernel32.NewProc("MoveFileExW")
+)
+
+const (
+ _MOVEFILE_REPLACE_EXISTING = 1
+)
+
+type windowsFileLock struct {
+ fd syscall.Handle
+}
+
+func (fl *windowsFileLock) release() error {
+ return syscall.Close(fl.fd)
+}
+
+func newFileLock(path string, readOnly bool) (fl fileLock, err error) {
+ pathp, err := syscall.UTF16PtrFromString(path)
+ if err != nil {
+ return
+ }
+ var access, shareMode uint32
+ if readOnly {
+ access = syscall.GENERIC_READ
+ shareMode = syscall.FILE_SHARE_READ
+ } else {
+ access = syscall.GENERIC_READ | syscall.GENERIC_WRITE
+ }
+ fd, err := syscall.CreateFile(pathp, access, shareMode, nil, syscall.OPEN_EXISTING, syscall.FILE_ATTRIBUTE_NORMAL, 0)
+ if err == syscall.ERROR_FILE_NOT_FOUND {
+ fd, err = syscall.CreateFile(pathp, access, shareMode, nil, syscall.OPEN_ALWAYS, syscall.FILE_ATTRIBUTE_NORMAL, 0)
+ }
+ if err != nil {
+ return
+ }
+ fl = &windowsFileLock{fd: fd}
+ return
+}
+
+func moveFileEx(from *uint16, to *uint16, flags uint32) error {
+ r1, _, e1 := syscall.Syscall(procMoveFileExW.Addr(), 3, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(to)), uintptr(flags))
+ if r1 == 0 {
+ if e1 != 0 {
+ return error(e1)
+ }
+ return syscall.EINVAL
+ }
+ return nil
+}
+
+func rename(oldpath, newpath string) error {
+ from, err := syscall.UTF16PtrFromString(oldpath)
+ if err != nil {
+ return err
+ }
+ to, err := syscall.UTF16PtrFromString(newpath)
+ if err != nil {
+ return err
+ }
+ return moveFileEx(from, to, _MOVEFILE_REPLACE_EXISTING)
+}
+
+func syncDir(name string) error { return nil }
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go
new file mode 100644
index 000000000..9b0421f03
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/mem_storage.go
@@ -0,0 +1,218 @@
+// Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package storage
+
+import (
+ "bytes"
+ "os"
+ "sync"
+)
+
+const typeShift = 3
+
+type memStorageLock struct {
+ ms *memStorage
+}
+
+func (lock *memStorageLock) Unlock() {
+ ms := lock.ms
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ if ms.slock == lock {
+ ms.slock = nil
+ }
+ return
+}
+
+// memStorage is a memory-backed storage.
+type memStorage struct {
+ mu sync.Mutex
+ slock *memStorageLock
+ files map[uint64]*memFile
+ meta FileDesc
+}
+
+// NewMemStorage returns a new memory-backed storage implementation.
+func NewMemStorage() Storage {
+ return &memStorage{
+ files: make(map[uint64]*memFile),
+ }
+}
+
+func (ms *memStorage) Lock() (Locker, error) {
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ if ms.slock != nil {
+ return nil, ErrLocked
+ }
+ ms.slock = &memStorageLock{ms: ms}
+ return ms.slock, nil
+}
+
+func (*memStorage) Log(str string) {}
+
+func (ms *memStorage) SetMeta(fd FileDesc) error {
+ if !FileDescOk(fd) {
+ return ErrInvalidFile
+ }
+
+ ms.mu.Lock()
+ ms.meta = fd
+ ms.mu.Unlock()
+ return nil
+}
+
+func (ms *memStorage) GetMeta() (FileDesc, error) {
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ if ms.meta.Zero() {
+ return FileDesc{}, os.ErrNotExist
+ }
+ return ms.meta, nil
+}
+
+func (ms *memStorage) List(ft FileType) ([]FileDesc, error) {
+ ms.mu.Lock()
+ var fds []FileDesc
+ for x := range ms.files {
+ fd := unpackFile(x)
+ if fd.Type&ft != 0 {
+ fds = append(fds, fd)
+ }
+ }
+ ms.mu.Unlock()
+ return fds, nil
+}
+
+func (ms *memStorage) Open(fd FileDesc) (Reader, error) {
+ if !FileDescOk(fd) {
+ return nil, ErrInvalidFile
+ }
+
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ if m, exist := ms.files[packFile(fd)]; exist {
+ if m.open {
+ return nil, errFileOpen
+ }
+ m.open = true
+ return &memReader{Reader: bytes.NewReader(m.Bytes()), ms: ms, m: m}, nil
+ }
+ return nil, os.ErrNotExist
+}
+
+func (ms *memStorage) Create(fd FileDesc) (Writer, error) {
+ if !FileDescOk(fd) {
+ return nil, ErrInvalidFile
+ }
+
+ x := packFile(fd)
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ m, exist := ms.files[x]
+ if exist {
+ if m.open {
+ return nil, errFileOpen
+ }
+ m.Reset()
+ } else {
+ m = &memFile{}
+ ms.files[x] = m
+ }
+ m.open = true
+ return &memWriter{memFile: m, ms: ms}, nil
+}
+
+func (ms *memStorage) Remove(fd FileDesc) error {
+ if !FileDescOk(fd) {
+ return ErrInvalidFile
+ }
+
+ x := packFile(fd)
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ if _, exist := ms.files[x]; exist {
+ delete(ms.files, x)
+ return nil
+ }
+ return os.ErrNotExist
+}
+
+func (ms *memStorage) Rename(oldfd, newfd FileDesc) error {
+ if FileDescOk(oldfd) || FileDescOk(newfd) {
+ return ErrInvalidFile
+ }
+ if oldfd == newfd {
+ return nil
+ }
+
+ oldx := packFile(oldfd)
+ newx := packFile(newfd)
+ ms.mu.Lock()
+ defer ms.mu.Unlock()
+ oldm, exist := ms.files[oldx]
+ if !exist {
+ return os.ErrNotExist
+ }
+ newm, exist := ms.files[newx]
+ if (exist && newm.open) || oldm.open {
+ return errFileOpen
+ }
+ delete(ms.files, oldx)
+ ms.files[newx] = oldm
+ return nil
+}
+
+func (*memStorage) Close() error { return nil }
+
+type memFile struct {
+ bytes.Buffer
+ open bool
+}
+
+type memReader struct {
+ *bytes.Reader
+ ms *memStorage
+ m *memFile
+ closed bool
+}
+
+func (mr *memReader) Close() error {
+ mr.ms.mu.Lock()
+ defer mr.ms.mu.Unlock()
+ if mr.closed {
+ return ErrClosed
+ }
+ mr.m.open = false
+ return nil
+}
+
+type memWriter struct {
+ *memFile
+ ms *memStorage
+ closed bool
+}
+
+func (*memWriter) Sync() error { return nil }
+
+func (mw *memWriter) Close() error {
+ mw.ms.mu.Lock()
+ defer mw.ms.mu.Unlock()
+ if mw.closed {
+ return ErrClosed
+ }
+ mw.memFile.open = false
+ return nil
+}
+
+func packFile(fd FileDesc) uint64 {
+ return uint64(fd.Num)<<typeShift | uint64(fd.Type)
+}
+
+func unpackFile(x uint64) FileDesc {
+ return FileDesc{FileType(x) & TypeAll, int64(x >> typeShift)}
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go b/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go
new file mode 100644
index 000000000..c16bce6b6
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/storage/storage.go
@@ -0,0 +1,179 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package storage provides storage abstraction for LevelDB.
+package storage
+
+import (
+ "errors"
+ "fmt"
+ "io"
+)
+
+// FileType represent a file type.
+type FileType int
+
+// File types.
+const (
+ TypeManifest FileType = 1 << iota
+ TypeJournal
+ TypeTable
+ TypeTemp
+
+ TypeAll = TypeManifest | TypeJournal | TypeTable | TypeTemp
+)
+
+func (t FileType) String() string {
+ switch t {
+ case TypeManifest:
+ return "manifest"
+ case TypeJournal:
+ return "journal"
+ case TypeTable:
+ return "table"
+ case TypeTemp:
+ return "temp"
+ }
+ return fmt.Sprintf("<unknown:%d>", t)
+}
+
+// Common error.
+var (
+ ErrInvalidFile = errors.New("leveldb/storage: invalid file for argument")
+ ErrLocked = errors.New("leveldb/storage: already locked")
+ ErrClosed = errors.New("leveldb/storage: closed")
+)
+
+// ErrCorrupted is the type that wraps errors that indicate corruption of
+// a file. Package storage has its own type instead of using
+// errors.ErrCorrupted to prevent circular import.
+type ErrCorrupted struct {
+ Fd FileDesc
+ Err error
+}
+
+func (e *ErrCorrupted) Error() string {
+ if !e.Fd.Zero() {
+ return fmt.Sprintf("%v [file=%v]", e.Err, e.Fd)
+ }
+ return e.Err.Error()
+}
+
+// Syncer is the interface that wraps basic Sync method.
+type Syncer interface {
+ // Sync commits the current contents of the file to stable storage.
+ Sync() error
+}
+
+// Reader is the interface that groups the basic Read, Seek, ReadAt and Close
+// methods.
+type Reader interface {
+ io.ReadSeeker
+ io.ReaderAt
+ io.Closer
+}
+
+// Writer is the interface that groups the basic Write, Sync and Close
+// methods.
+type Writer interface {
+ io.WriteCloser
+ Syncer
+}
+
+// Locker is the interface that wraps Unlock method.
+type Locker interface {
+ Unlock()
+}
+
+// FileDesc is a 'file descriptor'.
+type FileDesc struct {
+ Type FileType
+ Num int64
+}
+
+func (fd FileDesc) String() string {
+ switch fd.Type {
+ case TypeManifest:
+ return fmt.Sprintf("MANIFEST-%06d", fd.Num)
+ case TypeJournal:
+ return fmt.Sprintf("%06d.log", fd.Num)
+ case TypeTable:
+ return fmt.Sprintf("%06d.ldb", fd.Num)
+ case TypeTemp:
+ return fmt.Sprintf("%06d.tmp", fd.Num)
+ default:
+ return fmt.Sprintf("%#x-%d", fd.Type, fd.Num)
+ }
+}
+
+// Zero returns true if fd == (FileDesc{}).
+func (fd FileDesc) Zero() bool {
+ return fd == (FileDesc{})
+}
+
+// FileDescOk returns true if fd is a valid 'file descriptor'.
+func FileDescOk(fd FileDesc) bool {
+ switch fd.Type {
+ case TypeManifest:
+ case TypeJournal:
+ case TypeTable:
+ case TypeTemp:
+ default:
+ return false
+ }
+ return fd.Num >= 0
+}
+
+// Storage is the storage. A storage instance must be safe for concurrent use.
+type Storage interface {
+ // Lock locks the storage. Any subsequent attempt to call Lock will fail
+ // until the last lock released.
+ // Caller should call Unlock method after use.
+ Lock() (Locker, error)
+
+ // Log logs a string. This is used for logging.
+ // An implementation may write to a file, stdout or simply do nothing.
+ Log(str string)
+
+ // SetMeta store 'file descriptor' that can later be acquired using GetMeta
+ // method. The 'file descriptor' should point to a valid file.
+ // SetMeta should be implemented in such way that changes should happen
+ // atomically.
+ SetMeta(fd FileDesc) error
+
+ // GetMeta returns 'file descriptor' stored in meta. The 'file descriptor'
+ // can be updated using SetMeta method.
+ // Returns os.ErrNotExist if meta doesn't store any 'file descriptor', or
+ // 'file descriptor' point to nonexistent file.
+ GetMeta() (FileDesc, error)
+
+ // List returns file descriptors that match the given file types.
+ // The file types may be OR'ed together.
+ List(ft FileType) ([]FileDesc, error)
+
+ // Open opens file with the given 'file descriptor' read-only.
+ // Returns os.ErrNotExist error if the file does not exist.
+ // Returns ErrClosed if the underlying storage is closed.
+ Open(fd FileDesc) (Reader, error)
+
+ // Create creates file with the given 'file descriptor', truncate if already
+ // exist and opens write-only.
+ // Returns ErrClosed if the underlying storage is closed.
+ Create(fd FileDesc) (Writer, error)
+
+ // Remove removes file with the given 'file descriptor'.
+ // Returns ErrClosed if the underlying storage is closed.
+ Remove(fd FileDesc) error
+
+ // Rename renames file from oldfd to newfd.
+ // Returns ErrClosed if the underlying storage is closed.
+ Rename(oldfd, newfd FileDesc) error
+
+ // Close closes the storage.
+ // It is valid to call Close multiple times. Other methods should not be
+ // called after the storage has been closed.
+ Close() error
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table.go b/vendor/github.com/syndtr/goleveldb/leveldb/table.go
new file mode 100644
index 000000000..81d18a531
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/table.go
@@ -0,0 +1,529 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "fmt"
+ "sort"
+ "sync/atomic"
+
+ "github.com/syndtr/goleveldb/leveldb/cache"
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/table"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// tFile holds basic information about a table.
+type tFile struct {
+ fd storage.FileDesc
+ seekLeft int32
+ size int64
+ imin, imax internalKey
+}
+
+// Returns true if given key is after largest key of this table.
+func (t *tFile) after(icmp *iComparer, ukey []byte) bool {
+ return ukey != nil && icmp.uCompare(ukey, t.imax.ukey()) > 0
+}
+
+// Returns true if given key is before smallest key of this table.
+func (t *tFile) before(icmp *iComparer, ukey []byte) bool {
+ return ukey != nil && icmp.uCompare(ukey, t.imin.ukey()) < 0
+}
+
+// Returns true if given key range overlaps with this table key range.
+func (t *tFile) overlaps(icmp *iComparer, umin, umax []byte) bool {
+ return !t.after(icmp, umin) && !t.before(icmp, umax)
+}
+
+// Cosumes one seek and return current seeks left.
+func (t *tFile) consumeSeek() int32 {
+ return atomic.AddInt32(&t.seekLeft, -1)
+}
+
+// Creates new tFile.
+func newTableFile(fd storage.FileDesc, size int64, imin, imax internalKey) *tFile {
+ f := &tFile{
+ fd: fd,
+ size: size,
+ imin: imin,
+ imax: imax,
+ }
+
+ // We arrange to automatically compact this file after
+ // a certain number of seeks. Let's assume:
+ // (1) One seek costs 10ms
+ // (2) Writing or reading 1MB costs 10ms (100MB/s)
+ // (3) A compaction of 1MB does 25MB of IO:
+ // 1MB read from this level
+ // 10-12MB read from next level (boundaries may be misaligned)
+ // 10-12MB written to next level
+ // This implies that 25 seeks cost the same as the compaction
+ // of 1MB of data. I.e., one seek costs approximately the
+ // same as the compaction of 40KB of data. We are a little
+ // conservative and allow approximately one seek for every 16KB
+ // of data before triggering a compaction.
+ f.seekLeft = int32(size / 16384)
+ if f.seekLeft < 100 {
+ f.seekLeft = 100
+ }
+
+ return f
+}
+
+func tableFileFromRecord(r atRecord) *tFile {
+ return newTableFile(storage.FileDesc{storage.TypeTable, r.num}, r.size, r.imin, r.imax)
+}
+
+// tFiles hold multiple tFile.
+type tFiles []*tFile
+
+func (tf tFiles) Len() int { return len(tf) }
+func (tf tFiles) Swap(i, j int) { tf[i], tf[j] = tf[j], tf[i] }
+
+func (tf tFiles) nums() string {
+ x := "[ "
+ for i, f := range tf {
+ if i != 0 {
+ x += ", "
+ }
+ x += fmt.Sprint(f.fd.Num)
+ }
+ x += " ]"
+ return x
+}
+
+// Returns true if i smallest key is less than j.
+// This used for sort by key in ascending order.
+func (tf tFiles) lessByKey(icmp *iComparer, i, j int) bool {
+ a, b := tf[i], tf[j]
+ n := icmp.Compare(a.imin, b.imin)
+ if n == 0 {
+ return a.fd.Num < b.fd.Num
+ }
+ return n < 0
+}
+
+// Returns true if i file number is greater than j.
+// This used for sort by file number in descending order.
+func (tf tFiles) lessByNum(i, j int) bool {
+ return tf[i].fd.Num > tf[j].fd.Num
+}
+
+// Sorts tables by key in ascending order.
+func (tf tFiles) sortByKey(icmp *iComparer) {
+ sort.Sort(&tFilesSortByKey{tFiles: tf, icmp: icmp})
+}
+
+// Sorts tables by file number in descending order.
+func (tf tFiles) sortByNum() {
+ sort.Sort(&tFilesSortByNum{tFiles: tf})
+}
+
+// Returns sum of all tables size.
+func (tf tFiles) size() (sum int64) {
+ for _, t := range tf {
+ sum += t.size
+ }
+ return sum
+}
+
+// Searches smallest index of tables whose its smallest
+// key is after or equal with given key.
+func (tf tFiles) searchMin(icmp *iComparer, ikey internalKey) int {
+ return sort.Search(len(tf), func(i int) bool {
+ return icmp.Compare(tf[i].imin, ikey) >= 0
+ })
+}
+
+// Searches smallest index of tables whose its largest
+// key is after or equal with given key.
+func (tf tFiles) searchMax(icmp *iComparer, ikey internalKey) int {
+ return sort.Search(len(tf), func(i int) bool {
+ return icmp.Compare(tf[i].imax, ikey) >= 0
+ })
+}
+
+// Returns true if given key range overlaps with one or more
+// tables key range. If unsorted is true then binary search will not be used.
+func (tf tFiles) overlaps(icmp *iComparer, umin, umax []byte, unsorted bool) bool {
+ if unsorted {
+ // Check against all files.
+ for _, t := range tf {
+ if t.overlaps(icmp, umin, umax) {
+ return true
+ }
+ }
+ return false
+ }
+
+ i := 0
+ if len(umin) > 0 {
+ // Find the earliest possible internal key for min.
+ i = tf.searchMax(icmp, makeInternalKey(nil, umin, keyMaxSeq, keyTypeSeek))
+ }
+ if i >= len(tf) {
+ // Beginning of range is after all files, so no overlap.
+ return false
+ }
+ return !tf[i].before(icmp, umax)
+}
+
+// Returns tables whose its key range overlaps with given key range.
+// Range will be expanded if ukey found hop across tables.
+// If overlapped is true then the search will be restarted if umax
+// expanded.
+// The dst content will be overwritten.
+func (tf tFiles) getOverlaps(dst tFiles, icmp *iComparer, umin, umax []byte, overlapped bool) tFiles {
+ dst = dst[:0]
+ for i := 0; i < len(tf); {
+ t := tf[i]
+ if t.overlaps(icmp, umin, umax) {
+ if umin != nil && icmp.uCompare(t.imin.ukey(), umin) < 0 {
+ umin = t.imin.ukey()
+ dst = dst[:0]
+ i = 0
+ continue
+ } else if umax != nil && icmp.uCompare(t.imax.ukey(), umax) > 0 {
+ umax = t.imax.ukey()
+ // Restart search if it is overlapped.
+ if overlapped {
+ dst = dst[:0]
+ i = 0
+ continue
+ }
+ }
+
+ dst = append(dst, t)
+ }
+ i++
+ }
+
+ return dst
+}
+
+// Returns tables key range.
+func (tf tFiles) getRange(icmp *iComparer) (imin, imax internalKey) {
+ for i, t := range tf {
+ if i == 0 {
+ imin, imax = t.imin, t.imax
+ continue
+ }
+ if icmp.Compare(t.imin, imin) < 0 {
+ imin = t.imin
+ }
+ if icmp.Compare(t.imax, imax) > 0 {
+ imax = t.imax
+ }
+ }
+
+ return
+}
+
+// Creates iterator index from tables.
+func (tf tFiles) newIndexIterator(tops *tOps, icmp *iComparer, slice *util.Range, ro *opt.ReadOptions) iterator.IteratorIndexer {
+ if slice != nil {
+ var start, limit int
+ if slice.Start != nil {
+ start = tf.searchMax(icmp, internalKey(slice.Start))
+ }
+ if slice.Limit != nil {
+ limit = tf.searchMin(icmp, internalKey(slice.Limit))
+ } else {
+ limit = tf.Len()
+ }
+ tf = tf[start:limit]
+ }
+ return iterator.NewArrayIndexer(&tFilesArrayIndexer{
+ tFiles: tf,
+ tops: tops,
+ icmp: icmp,
+ slice: slice,
+ ro: ro,
+ })
+}
+
+// Tables iterator index.
+type tFilesArrayIndexer struct {
+ tFiles
+ tops *tOps
+ icmp *iComparer
+ slice *util.Range
+ ro *opt.ReadOptions
+}
+
+func (a *tFilesArrayIndexer) Search(key []byte) int {
+ return a.searchMax(a.icmp, internalKey(key))
+}
+
+func (a *tFilesArrayIndexer) Get(i int) iterator.Iterator {
+ if i == 0 || i == a.Len()-1 {
+ return a.tops.newIterator(a.tFiles[i], a.slice, a.ro)
+ }
+ return a.tops.newIterator(a.tFiles[i], nil, a.ro)
+}
+
+// Helper type for sortByKey.
+type tFilesSortByKey struct {
+ tFiles
+ icmp *iComparer
+}
+
+func (x *tFilesSortByKey) Less(i, j int) bool {
+ return x.lessByKey(x.icmp, i, j)
+}
+
+// Helper type for sortByNum.
+type tFilesSortByNum struct {
+ tFiles
+}
+
+func (x *tFilesSortByNum) Less(i, j int) bool {
+ return x.lessByNum(i, j)
+}
+
+// Table operations.
+type tOps struct {
+ s *session
+ noSync bool
+ cache *cache.Cache
+ bcache *cache.Cache
+ bpool *util.BufferPool
+}
+
+// Creates an empty table and returns table writer.
+func (t *tOps) create() (*tWriter, error) {
+ fd := storage.FileDesc{storage.TypeTable, t.s.allocFileNum()}
+ fw, err := t.s.stor.Create(fd)
+ if err != nil {
+ return nil, err
+ }
+ return &tWriter{
+ t: t,
+ fd: fd,
+ w: fw,
+ tw: table.NewWriter(fw, t.s.o.Options),
+ }, nil
+}
+
+// Builds table from src iterator.
+func (t *tOps) createFrom(src iterator.Iterator) (f *tFile, n int, err error) {
+ w, err := t.create()
+ if err != nil {
+ return
+ }
+
+ defer func() {
+ if err != nil {
+ w.drop()
+ }
+ }()
+
+ for src.Next() {
+ err = w.append(src.Key(), src.Value())
+ if err != nil {
+ return
+ }
+ }
+ err = src.Error()
+ if err != nil {
+ return
+ }
+
+ n = w.tw.EntriesLen()
+ f, err = w.finish()
+ return
+}
+
+// Opens table. It returns a cache handle, which should
+// be released after use.
+func (t *tOps) open(f *tFile) (ch *cache.Handle, err error) {
+ ch = t.cache.Get(0, uint64(f.fd.Num), func() (size int, value cache.Value) {
+ var r storage.Reader
+ r, err = t.s.stor.Open(f.fd)
+ if err != nil {
+ return 0, nil
+ }
+
+ var bcache *cache.NamespaceGetter
+ if t.bcache != nil {
+ bcache = &cache.NamespaceGetter{Cache: t.bcache, NS: uint64(f.fd.Num)}
+ }
+
+ var tr *table.Reader
+ tr, err = table.NewReader(r, f.size, f.fd, bcache, t.bpool, t.s.o.Options)
+ if err != nil {
+ r.Close()
+ return 0, nil
+ }
+ return 1, tr
+
+ })
+ if ch == nil && err == nil {
+ err = ErrClosed
+ }
+ return
+}
+
+// Finds key/value pair whose key is greater than or equal to the
+// given key.
+func (t *tOps) find(f *tFile, key []byte, ro *opt.ReadOptions) (rkey, rvalue []byte, err error) {
+ ch, err := t.open(f)
+ if err != nil {
+ return nil, nil, err
+ }
+ defer ch.Release()
+ return ch.Value().(*table.Reader).Find(key, true, ro)
+}
+
+// Finds key that is greater than or equal to the given key.
+func (t *tOps) findKey(f *tFile, key []byte, ro *opt.ReadOptions) (rkey []byte, err error) {
+ ch, err := t.open(f)
+ if err != nil {
+ return nil, err
+ }
+ defer ch.Release()
+ return ch.Value().(*table.Reader).FindKey(key, true, ro)
+}
+
+// Returns approximate offset of the given key.
+func (t *tOps) offsetOf(f *tFile, key []byte) (offset int64, err error) {
+ ch, err := t.open(f)
+ if err != nil {
+ return
+ }
+ defer ch.Release()
+ return ch.Value().(*table.Reader).OffsetOf(key)
+}
+
+// Creates an iterator from the given table.
+func (t *tOps) newIterator(f *tFile, slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ ch, err := t.open(f)
+ if err != nil {
+ return iterator.NewEmptyIterator(err)
+ }
+ iter := ch.Value().(*table.Reader).NewIterator(slice, ro)
+ iter.SetReleaser(ch)
+ return iter
+}
+
+// Removes table from persistent storage. It waits until
+// no one use the the table.
+func (t *tOps) remove(f *tFile) {
+ t.cache.Delete(0, uint64(f.fd.Num), func() {
+ if err := t.s.stor.Remove(f.fd); err != nil {
+ t.s.logf("table@remove removing @%d %q", f.fd.Num, err)
+ } else {
+ t.s.logf("table@remove removed @%d", f.fd.Num)
+ }
+ if t.bcache != nil {
+ t.bcache.EvictNS(uint64(f.fd.Num))
+ }
+ })
+}
+
+// Closes the table ops instance. It will close all tables,
+// regadless still used or not.
+func (t *tOps) close() {
+ t.bpool.Close()
+ t.cache.Close()
+ if t.bcache != nil {
+ t.bcache.CloseWeak()
+ }
+}
+
+// Creates new initialized table ops instance.
+func newTableOps(s *session) *tOps {
+ var (
+ cacher cache.Cacher
+ bcache *cache.Cache
+ bpool *util.BufferPool
+ )
+ if s.o.GetOpenFilesCacheCapacity() > 0 {
+ cacher = cache.NewLRU(s.o.GetOpenFilesCacheCapacity())
+ }
+ if !s.o.GetDisableBlockCache() {
+ var bcacher cache.Cacher
+ if s.o.GetBlockCacheCapacity() > 0 {
+ bcacher = cache.NewLRU(s.o.GetBlockCacheCapacity())
+ }
+ bcache = cache.NewCache(bcacher)
+ }
+ if !s.o.GetDisableBufferPool() {
+ bpool = util.NewBufferPool(s.o.GetBlockSize() + 5)
+ }
+ return &tOps{
+ s: s,
+ noSync: s.o.GetNoSync(),
+ cache: cache.NewCache(cacher),
+ bcache: bcache,
+ bpool: bpool,
+ }
+}
+
+// tWriter wraps the table writer. It keep track of file descriptor
+// and added key range.
+type tWriter struct {
+ t *tOps
+
+ fd storage.FileDesc
+ w storage.Writer
+ tw *table.Writer
+
+ first, last []byte
+}
+
+// Append key/value pair to the table.
+func (w *tWriter) append(key, value []byte) error {
+ if w.first == nil {
+ w.first = append([]byte{}, key...)
+ }
+ w.last = append(w.last[:0], key...)
+ return w.tw.Append(key, value)
+}
+
+// Returns true if the table is empty.
+func (w *tWriter) empty() bool {
+ return w.first == nil
+}
+
+// Closes the storage.Writer.
+func (w *tWriter) close() {
+ if w.w != nil {
+ w.w.Close()
+ w.w = nil
+ }
+}
+
+// Finalizes the table and returns table file.
+func (w *tWriter) finish() (f *tFile, err error) {
+ defer w.close()
+ err = w.tw.Close()
+ if err != nil {
+ return
+ }
+ if !w.t.noSync {
+ err = w.w.Sync()
+ if err != nil {
+ return
+ }
+ }
+ f = newTableFile(w.fd, int64(w.tw.BytesLen()), internalKey(w.first), internalKey(w.last))
+ return
+}
+
+// Drops the table.
+func (w *tWriter) drop() {
+ w.close()
+ w.t.s.stor.Remove(w.fd)
+ w.t.s.reuseFileNum(w.fd.Num)
+ w.tw = nil
+ w.first = nil
+ w.last = nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go
new file mode 100644
index 000000000..c5be420b3
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/table/reader.go
@@ -0,0 +1,1134 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package table
+
+import (
+ "encoding/binary"
+ "fmt"
+ "io"
+ "sort"
+ "strings"
+ "sync"
+
+ "github.com/golang/snappy"
+
+ "github.com/syndtr/goleveldb/leveldb/cache"
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+ "github.com/syndtr/goleveldb/leveldb/errors"
+ "github.com/syndtr/goleveldb/leveldb/filter"
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/storage"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+// Reader errors.
+var (
+ ErrNotFound = errors.ErrNotFound
+ ErrReaderReleased = errors.New("leveldb/table: reader released")
+ ErrIterReleased = errors.New("leveldb/table: iterator released")
+)
+
+// ErrCorrupted describes error due to corruption. This error will be wrapped
+// with errors.ErrCorrupted.
+type ErrCorrupted struct {
+ Pos int64
+ Size int64
+ Kind string
+ Reason string
+}
+
+func (e *ErrCorrupted) Error() string {
+ return fmt.Sprintf("leveldb/table: corruption on %s (pos=%d): %s", e.Kind, e.Pos, e.Reason)
+}
+
+func max(x, y int) int {
+ if x > y {
+ return x
+ }
+ return y
+}
+
+type block struct {
+ bpool *util.BufferPool
+ bh blockHandle
+ data []byte
+ restartsLen int
+ restartsOffset int
+}
+
+func (b *block) seek(cmp comparer.Comparer, rstart, rlimit int, key []byte) (index, offset int, err error) {
+ index = sort.Search(b.restartsLen-rstart-(b.restartsLen-rlimit), func(i int) bool {
+ offset := int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*(rstart+i):]))
+ offset++ // shared always zero, since this is a restart point
+ v1, n1 := binary.Uvarint(b.data[offset:]) // key length
+ _, n2 := binary.Uvarint(b.data[offset+n1:]) // value length
+ m := offset + n1 + n2
+ return cmp.Compare(b.data[m:m+int(v1)], key) > 0
+ }) + rstart - 1
+ if index < rstart {
+ // The smallest key is greater-than key sought.
+ index = rstart
+ }
+ offset = int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*index:]))
+ return
+}
+
+func (b *block) restartIndex(rstart, rlimit, offset int) int {
+ return sort.Search(b.restartsLen-rstart-(b.restartsLen-rlimit), func(i int) bool {
+ return int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*(rstart+i):])) > offset
+ }) + rstart - 1
+}
+
+func (b *block) restartOffset(index int) int {
+ return int(binary.LittleEndian.Uint32(b.data[b.restartsOffset+4*index:]))
+}
+
+func (b *block) entry(offset int) (key, value []byte, nShared, n int, err error) {
+ if offset >= b.restartsOffset {
+ if offset != b.restartsOffset {
+ err = &ErrCorrupted{Reason: "entries offset not aligned"}
+ }
+ return
+ }
+ v0, n0 := binary.Uvarint(b.data[offset:]) // Shared prefix length
+ v1, n1 := binary.Uvarint(b.data[offset+n0:]) // Key length
+ v2, n2 := binary.Uvarint(b.data[offset+n0+n1:]) // Value length
+ m := n0 + n1 + n2
+ n = m + int(v1) + int(v2)
+ if n0 <= 0 || n1 <= 0 || n2 <= 0 || offset+n > b.restartsOffset {
+ err = &ErrCorrupted{Reason: "entries corrupted"}
+ return
+ }
+ key = b.data[offset+m : offset+m+int(v1)]
+ value = b.data[offset+m+int(v1) : offset+n]
+ nShared = int(v0)
+ return
+}
+
+func (b *block) Release() {
+ b.bpool.Put(b.data)
+ b.bpool = nil
+ b.data = nil
+}
+
+type dir int
+
+const (
+ dirReleased dir = iota - 1
+ dirSOI
+ dirEOI
+ dirBackward
+ dirForward
+)
+
+type blockIter struct {
+ tr *Reader
+ block *block
+ blockReleaser util.Releaser
+ releaser util.Releaser
+ key, value []byte
+ offset int
+ // Previous offset, only filled by Next.
+ prevOffset int
+ prevNode []int
+ prevKeys []byte
+ restartIndex int
+ // Iterator direction.
+ dir dir
+ // Restart index slice range.
+ riStart int
+ riLimit int
+ // Offset slice range.
+ offsetStart int
+ offsetRealStart int
+ offsetLimit int
+ // Error.
+ err error
+}
+
+func (i *blockIter) sErr(err error) {
+ i.err = err
+ i.key = nil
+ i.value = nil
+ i.prevNode = nil
+ i.prevKeys = nil
+}
+
+func (i *blockIter) reset() {
+ if i.dir == dirBackward {
+ i.prevNode = i.prevNode[:0]
+ i.prevKeys = i.prevKeys[:0]
+ }
+ i.restartIndex = i.riStart
+ i.offset = i.offsetStart
+ i.dir = dirSOI
+ i.key = i.key[:0]
+ i.value = nil
+}
+
+func (i *blockIter) isFirst() bool {
+ switch i.dir {
+ case dirForward:
+ return i.prevOffset == i.offsetRealStart
+ case dirBackward:
+ return len(i.prevNode) == 1 && i.restartIndex == i.riStart
+ }
+ return false
+}
+
+func (i *blockIter) isLast() bool {
+ switch i.dir {
+ case dirForward, dirBackward:
+ return i.offset == i.offsetLimit
+ }
+ return false
+}
+
+func (i *blockIter) First() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.dir == dirBackward {
+ i.prevNode = i.prevNode[:0]
+ i.prevKeys = i.prevKeys[:0]
+ }
+ i.dir = dirSOI
+ return i.Next()
+}
+
+func (i *blockIter) Last() bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.dir == dirBackward {
+ i.prevNode = i.prevNode[:0]
+ i.prevKeys = i.prevKeys[:0]
+ }
+ i.dir = dirEOI
+ return i.Prev()
+}
+
+func (i *blockIter) Seek(key []byte) bool {
+ if i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ ri, offset, err := i.block.seek(i.tr.cmp, i.riStart, i.riLimit, key)
+ if err != nil {
+ i.sErr(err)
+ return false
+ }
+ i.restartIndex = ri
+ i.offset = max(i.offsetStart, offset)
+ if i.dir == dirSOI || i.dir == dirEOI {
+ i.dir = dirForward
+ }
+ for i.Next() {
+ if i.tr.cmp.Compare(i.key, key) >= 0 {
+ return true
+ }
+ }
+ return false
+}
+
+func (i *blockIter) Next() bool {
+ if i.dir == dirEOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ if i.dir == dirSOI {
+ i.restartIndex = i.riStart
+ i.offset = i.offsetStart
+ } else if i.dir == dirBackward {
+ i.prevNode = i.prevNode[:0]
+ i.prevKeys = i.prevKeys[:0]
+ }
+ for i.offset < i.offsetRealStart {
+ key, value, nShared, n, err := i.block.entry(i.offset)
+ if err != nil {
+ i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err))
+ return false
+ }
+ if n == 0 {
+ i.dir = dirEOI
+ return false
+ }
+ i.key = append(i.key[:nShared], key...)
+ i.value = value
+ i.offset += n
+ }
+ if i.offset >= i.offsetLimit {
+ i.dir = dirEOI
+ if i.offset != i.offsetLimit {
+ i.sErr(i.tr.newErrCorruptedBH(i.block.bh, "entries offset not aligned"))
+ }
+ return false
+ }
+ key, value, nShared, n, err := i.block.entry(i.offset)
+ if err != nil {
+ i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err))
+ return false
+ }
+ if n == 0 {
+ i.dir = dirEOI
+ return false
+ }
+ i.key = append(i.key[:nShared], key...)
+ i.value = value
+ i.prevOffset = i.offset
+ i.offset += n
+ i.dir = dirForward
+ return true
+}
+
+func (i *blockIter) Prev() bool {
+ if i.dir == dirSOI || i.err != nil {
+ return false
+ } else if i.dir == dirReleased {
+ i.err = ErrIterReleased
+ return false
+ }
+
+ var ri int
+ if i.dir == dirForward {
+ // Change direction.
+ i.offset = i.prevOffset
+ if i.offset == i.offsetRealStart {
+ i.dir = dirSOI
+ return false
+ }
+ ri = i.block.restartIndex(i.restartIndex, i.riLimit, i.offset)
+ i.dir = dirBackward
+ } else if i.dir == dirEOI {
+ // At the end of iterator.
+ i.restartIndex = i.riLimit
+ i.offset = i.offsetLimit
+ if i.offset == i.offsetRealStart {
+ i.dir = dirSOI
+ return false
+ }
+ ri = i.riLimit - 1
+ i.dir = dirBackward
+ } else if len(i.prevNode) == 1 {
+ // This is the end of a restart range.
+ i.offset = i.prevNode[0]
+ i.prevNode = i.prevNode[:0]
+ if i.restartIndex == i.riStart {
+ i.dir = dirSOI
+ return false
+ }
+ i.restartIndex--
+ ri = i.restartIndex
+ } else {
+ // In the middle of restart range, get from cache.
+ n := len(i.prevNode) - 3
+ node := i.prevNode[n:]
+ i.prevNode = i.prevNode[:n]
+ // Get the key.
+ ko := node[0]
+ i.key = append(i.key[:0], i.prevKeys[ko:]...)
+ i.prevKeys = i.prevKeys[:ko]
+ // Get the value.
+ vo := node[1]
+ vl := vo + node[2]
+ i.value = i.block.data[vo:vl]
+ i.offset = vl
+ return true
+ }
+ // Build entries cache.
+ i.key = i.key[:0]
+ i.value = nil
+ offset := i.block.restartOffset(ri)
+ if offset == i.offset {
+ ri--
+ if ri < 0 {
+ i.dir = dirSOI
+ return false
+ }
+ offset = i.block.restartOffset(ri)
+ }
+ i.prevNode = append(i.prevNode, offset)
+ for {
+ key, value, nShared, n, err := i.block.entry(offset)
+ if err != nil {
+ i.sErr(i.tr.fixErrCorruptedBH(i.block.bh, err))
+ return false
+ }
+ if offset >= i.offsetRealStart {
+ if i.value != nil {
+ // Appends 3 variables:
+ // 1. Previous keys offset
+ // 2. Value offset in the data block
+ // 3. Value length
+ i.prevNode = append(i.prevNode, len(i.prevKeys), offset-len(i.value), len(i.value))
+ i.prevKeys = append(i.prevKeys, i.key...)
+ }
+ i.value = value
+ }
+ i.key = append(i.key[:nShared], key...)
+ offset += n
+ // Stop if target offset reached.
+ if offset >= i.offset {
+ if offset != i.offset {
+ i.sErr(i.tr.newErrCorruptedBH(i.block.bh, "entries offset not aligned"))
+ return false
+ }
+
+ break
+ }
+ }
+ i.restartIndex = ri
+ i.offset = offset
+ return true
+}
+
+func (i *blockIter) Key() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.key
+}
+
+func (i *blockIter) Value() []byte {
+ if i.err != nil || i.dir <= dirEOI {
+ return nil
+ }
+ return i.value
+}
+
+func (i *blockIter) Release() {
+ if i.dir != dirReleased {
+ i.tr = nil
+ i.block = nil
+ i.prevNode = nil
+ i.prevKeys = nil
+ i.key = nil
+ i.value = nil
+ i.dir = dirReleased
+ if i.blockReleaser != nil {
+ i.blockReleaser.Release()
+ i.blockReleaser = nil
+ }
+ if i.releaser != nil {
+ i.releaser.Release()
+ i.releaser = nil
+ }
+ }
+}
+
+func (i *blockIter) SetReleaser(releaser util.Releaser) {
+ if i.dir == dirReleased {
+ panic(util.ErrReleased)
+ }
+ if i.releaser != nil && releaser != nil {
+ panic(util.ErrHasReleaser)
+ }
+ i.releaser = releaser
+}
+
+func (i *blockIter) Valid() bool {
+ return i.err == nil && (i.dir == dirBackward || i.dir == dirForward)
+}
+
+func (i *blockIter) Error() error {
+ return i.err
+}
+
+type filterBlock struct {
+ bpool *util.BufferPool
+ data []byte
+ oOffset int
+ baseLg uint
+ filtersNum int
+}
+
+func (b *filterBlock) contains(filter filter.Filter, offset uint64, key []byte) bool {
+ i := int(offset >> b.baseLg)
+ if i < b.filtersNum {
+ o := b.data[b.oOffset+i*4:]
+ n := int(binary.LittleEndian.Uint32(o))
+ m := int(binary.LittleEndian.Uint32(o[4:]))
+ if n < m && m <= b.oOffset {
+ return filter.Contains(b.data[n:m], key)
+ } else if n == m {
+ return false
+ }
+ }
+ return true
+}
+
+func (b *filterBlock) Release() {
+ b.bpool.Put(b.data)
+ b.bpool = nil
+ b.data = nil
+}
+
+type indexIter struct {
+ *blockIter
+ tr *Reader
+ slice *util.Range
+ // Options
+ fillCache bool
+}
+
+func (i *indexIter) Get() iterator.Iterator {
+ value := i.Value()
+ if value == nil {
+ return nil
+ }
+ dataBH, n := decodeBlockHandle(value)
+ if n == 0 {
+ return iterator.NewEmptyIterator(i.tr.newErrCorruptedBH(i.tr.indexBH, "bad data block handle"))
+ }
+
+ var slice *util.Range
+ if i.slice != nil && (i.blockIter.isFirst() || i.blockIter.isLast()) {
+ slice = i.slice
+ }
+ return i.tr.getDataIterErr(dataBH, slice, i.tr.verifyChecksum, i.fillCache)
+}
+
+// Reader is a table reader.
+type Reader struct {
+ mu sync.RWMutex
+ fd storage.FileDesc
+ reader io.ReaderAt
+ cache *cache.NamespaceGetter
+ err error
+ bpool *util.BufferPool
+ // Options
+ o *opt.Options
+ cmp comparer.Comparer
+ filter filter.Filter
+ verifyChecksum bool
+
+ dataEnd int64
+ metaBH, indexBH, filterBH blockHandle
+ indexBlock *block
+ filterBlock *filterBlock
+}
+
+func (r *Reader) blockKind(bh blockHandle) string {
+ switch bh.offset {
+ case r.metaBH.offset:
+ return "meta-block"
+ case r.indexBH.offset:
+ return "index-block"
+ case r.filterBH.offset:
+ if r.filterBH.length > 0 {
+ return "filter-block"
+ }
+ }
+ return "data-block"
+}
+
+func (r *Reader) newErrCorrupted(pos, size int64, kind, reason string) error {
+ return &errors.ErrCorrupted{Fd: r.fd, Err: &ErrCorrupted{Pos: pos, Size: size, Kind: kind, Reason: reason}}
+}
+
+func (r *Reader) newErrCorruptedBH(bh blockHandle, reason string) error {
+ return r.newErrCorrupted(int64(bh.offset), int64(bh.length), r.blockKind(bh), reason)
+}
+
+func (r *Reader) fixErrCorruptedBH(bh blockHandle, err error) error {
+ if cerr, ok := err.(*ErrCorrupted); ok {
+ cerr.Pos = int64(bh.offset)
+ cerr.Size = int64(bh.length)
+ cerr.Kind = r.blockKind(bh)
+ return &errors.ErrCorrupted{Fd: r.fd, Err: cerr}
+ }
+ return err
+}
+
+func (r *Reader) readRawBlock(bh blockHandle, verifyChecksum bool) ([]byte, error) {
+ data := r.bpool.Get(int(bh.length + blockTrailerLen))
+ if _, err := r.reader.ReadAt(data, int64(bh.offset)); err != nil && err != io.EOF {
+ return nil, err
+ }
+
+ if verifyChecksum {
+ n := bh.length + 1
+ checksum0 := binary.LittleEndian.Uint32(data[n:])
+ checksum1 := util.NewCRC(data[:n]).Value()
+ if checksum0 != checksum1 {
+ r.bpool.Put(data)
+ return nil, r.newErrCorruptedBH(bh, fmt.Sprintf("checksum mismatch, want=%#x got=%#x", checksum0, checksum1))
+ }
+ }
+
+ switch data[bh.length] {
+ case blockTypeNoCompression:
+ data = data[:bh.length]
+ case blockTypeSnappyCompression:
+ decLen, err := snappy.DecodedLen(data[:bh.length])
+ if err != nil {
+ return nil, r.newErrCorruptedBH(bh, err.Error())
+ }
+ decData := r.bpool.Get(decLen)
+ decData, err = snappy.Decode(decData, data[:bh.length])
+ r.bpool.Put(data)
+ if err != nil {
+ r.bpool.Put(decData)
+ return nil, r.newErrCorruptedBH(bh, err.Error())
+ }
+ data = decData
+ default:
+ r.bpool.Put(data)
+ return nil, r.newErrCorruptedBH(bh, fmt.Sprintf("unknown compression type %#x", data[bh.length]))
+ }
+ return data, nil
+}
+
+func (r *Reader) readBlock(bh blockHandle, verifyChecksum bool) (*block, error) {
+ data, err := r.readRawBlock(bh, verifyChecksum)
+ if err != nil {
+ return nil, err
+ }
+ restartsLen := int(binary.LittleEndian.Uint32(data[len(data)-4:]))
+ b := &block{
+ bpool: r.bpool,
+ bh: bh,
+ data: data,
+ restartsLen: restartsLen,
+ restartsOffset: len(data) - (restartsLen+1)*4,
+ }
+ return b, nil
+}
+
+func (r *Reader) readBlockCached(bh blockHandle, verifyChecksum, fillCache bool) (*block, util.Releaser, error) {
+ if r.cache != nil {
+ var (
+ err error
+ ch *cache.Handle
+ )
+ if fillCache {
+ ch = r.cache.Get(bh.offset, func() (size int, value cache.Value) {
+ var b *block
+ b, err = r.readBlock(bh, verifyChecksum)
+ if err != nil {
+ return 0, nil
+ }
+ return cap(b.data), b
+ })
+ } else {
+ ch = r.cache.Get(bh.offset, nil)
+ }
+ if ch != nil {
+ b, ok := ch.Value().(*block)
+ if !ok {
+ ch.Release()
+ return nil, nil, errors.New("leveldb/table: inconsistent block type")
+ }
+ return b, ch, err
+ } else if err != nil {
+ return nil, nil, err
+ }
+ }
+
+ b, err := r.readBlock(bh, verifyChecksum)
+ return b, b, err
+}
+
+func (r *Reader) readFilterBlock(bh blockHandle) (*filterBlock, error) {
+ data, err := r.readRawBlock(bh, true)
+ if err != nil {
+ return nil, err
+ }
+ n := len(data)
+ if n < 5 {
+ return nil, r.newErrCorruptedBH(bh, "too short")
+ }
+ m := n - 5
+ oOffset := int(binary.LittleEndian.Uint32(data[m:]))
+ if oOffset > m {
+ return nil, r.newErrCorruptedBH(bh, "invalid data-offsets offset")
+ }
+ b := &filterBlock{
+ bpool: r.bpool,
+ data: data,
+ oOffset: oOffset,
+ baseLg: uint(data[n-1]),
+ filtersNum: (m - oOffset) / 4,
+ }
+ return b, nil
+}
+
+func (r *Reader) readFilterBlockCached(bh blockHandle, fillCache bool) (*filterBlock, util.Releaser, error) {
+ if r.cache != nil {
+ var (
+ err error
+ ch *cache.Handle
+ )
+ if fillCache {
+ ch = r.cache.Get(bh.offset, func() (size int, value cache.Value) {
+ var b *filterBlock
+ b, err = r.readFilterBlock(bh)
+ if err != nil {
+ return 0, nil
+ }
+ return cap(b.data), b
+ })
+ } else {
+ ch = r.cache.Get(bh.offset, nil)
+ }
+ if ch != nil {
+ b, ok := ch.Value().(*filterBlock)
+ if !ok {
+ ch.Release()
+ return nil, nil, errors.New("leveldb/table: inconsistent block type")
+ }
+ return b, ch, err
+ } else if err != nil {
+ return nil, nil, err
+ }
+ }
+
+ b, err := r.readFilterBlock(bh)
+ return b, b, err
+}
+
+func (r *Reader) getIndexBlock(fillCache bool) (b *block, rel util.Releaser, err error) {
+ if r.indexBlock == nil {
+ return r.readBlockCached(r.indexBH, true, fillCache)
+ }
+ return r.indexBlock, util.NoopReleaser{}, nil
+}
+
+func (r *Reader) getFilterBlock(fillCache bool) (*filterBlock, util.Releaser, error) {
+ if r.filterBlock == nil {
+ return r.readFilterBlockCached(r.filterBH, fillCache)
+ }
+ return r.filterBlock, util.NoopReleaser{}, nil
+}
+
+func (r *Reader) newBlockIter(b *block, bReleaser util.Releaser, slice *util.Range, inclLimit bool) *blockIter {
+ bi := &blockIter{
+ tr: r,
+ block: b,
+ blockReleaser: bReleaser,
+ // Valid key should never be nil.
+ key: make([]byte, 0),
+ dir: dirSOI,
+ riStart: 0,
+ riLimit: b.restartsLen,
+ offsetStart: 0,
+ offsetRealStart: 0,
+ offsetLimit: b.restartsOffset,
+ }
+ if slice != nil {
+ if slice.Start != nil {
+ if bi.Seek(slice.Start) {
+ bi.riStart = b.restartIndex(bi.restartIndex, b.restartsLen, bi.prevOffset)
+ bi.offsetStart = b.restartOffset(bi.riStart)
+ bi.offsetRealStart = bi.prevOffset
+ } else {
+ bi.riStart = b.restartsLen
+ bi.offsetStart = b.restartsOffset
+ bi.offsetRealStart = b.restartsOffset
+ }
+ }
+ if slice.Limit != nil {
+ if bi.Seek(slice.Limit) && (!inclLimit || bi.Next()) {
+ bi.offsetLimit = bi.prevOffset
+ bi.riLimit = bi.restartIndex + 1
+ }
+ }
+ bi.reset()
+ if bi.offsetStart > bi.offsetLimit {
+ bi.sErr(errors.New("leveldb/table: invalid slice range"))
+ }
+ }
+ return bi
+}
+
+func (r *Reader) getDataIter(dataBH blockHandle, slice *util.Range, verifyChecksum, fillCache bool) iterator.Iterator {
+ b, rel, err := r.readBlockCached(dataBH, verifyChecksum, fillCache)
+ if err != nil {
+ return iterator.NewEmptyIterator(err)
+ }
+ return r.newBlockIter(b, rel, slice, false)
+}
+
+func (r *Reader) getDataIterErr(dataBH blockHandle, slice *util.Range, verifyChecksum, fillCache bool) iterator.Iterator {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ if r.err != nil {
+ return iterator.NewEmptyIterator(r.err)
+ }
+
+ return r.getDataIter(dataBH, slice, verifyChecksum, fillCache)
+}
+
+// NewIterator creates an iterator from the table.
+//
+// Slice allows slicing the iterator to only contains keys in the given
+// range. A nil Range.Start is treated as a key before all keys in the
+// table. And a nil Range.Limit is treated as a key after all keys in
+// the table.
+//
+// The returned iterator is not safe for concurrent use and should be released
+// after use.
+//
+// Also read Iterator documentation of the leveldb/iterator package.
+func (r *Reader) NewIterator(slice *util.Range, ro *opt.ReadOptions) iterator.Iterator {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ if r.err != nil {
+ return iterator.NewEmptyIterator(r.err)
+ }
+
+ fillCache := !ro.GetDontFillCache()
+ indexBlock, rel, err := r.getIndexBlock(fillCache)
+ if err != nil {
+ return iterator.NewEmptyIterator(err)
+ }
+ index := &indexIter{
+ blockIter: r.newBlockIter(indexBlock, rel, slice, true),
+ tr: r,
+ slice: slice,
+ fillCache: !ro.GetDontFillCache(),
+ }
+ return iterator.NewIndexedIterator(index, opt.GetStrict(r.o, ro, opt.StrictReader))
+}
+
+func (r *Reader) find(key []byte, filtered bool, ro *opt.ReadOptions, noValue bool) (rkey, value []byte, err error) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ if r.err != nil {
+ err = r.err
+ return
+ }
+
+ indexBlock, rel, err := r.getIndexBlock(true)
+ if err != nil {
+ return
+ }
+ defer rel.Release()
+
+ index := r.newBlockIter(indexBlock, nil, nil, true)
+ defer index.Release()
+
+ if !index.Seek(key) {
+ if err = index.Error(); err == nil {
+ err = ErrNotFound
+ }
+ return
+ }
+
+ dataBH, n := decodeBlockHandle(index.Value())
+ if n == 0 {
+ r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle")
+ return nil, nil, r.err
+ }
+
+ // The filter should only used for exact match.
+ if filtered && r.filter != nil {
+ filterBlock, frel, ferr := r.getFilterBlock(true)
+ if ferr == nil {
+ if !filterBlock.contains(r.filter, dataBH.offset, key) {
+ frel.Release()
+ return nil, nil, ErrNotFound
+ }
+ frel.Release()
+ } else if !errors.IsCorrupted(ferr) {
+ return nil, nil, ferr
+ }
+ }
+
+ data := r.getDataIter(dataBH, nil, r.verifyChecksum, !ro.GetDontFillCache())
+ if !data.Seek(key) {
+ data.Release()
+ if err = data.Error(); err != nil {
+ return
+ }
+
+ // The nearest greater-than key is the first key of the next block.
+ if !index.Next() {
+ if err = index.Error(); err == nil {
+ err = ErrNotFound
+ }
+ return
+ }
+
+ dataBH, n = decodeBlockHandle(index.Value())
+ if n == 0 {
+ r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle")
+ return nil, nil, r.err
+ }
+
+ data = r.getDataIter(dataBH, nil, r.verifyChecksum, !ro.GetDontFillCache())
+ if !data.Next() {
+ data.Release()
+ if err = data.Error(); err == nil {
+ err = ErrNotFound
+ }
+ return
+ }
+ }
+
+ // Key doesn't use block buffer, no need to copy the buffer.
+ rkey = data.Key()
+ if !noValue {
+ if r.bpool == nil {
+ value = data.Value()
+ } else {
+ // Value does use block buffer, and since the buffer will be
+ // recycled, it need to be copied.
+ value = append([]byte{}, data.Value()...)
+ }
+ }
+ data.Release()
+ return
+}
+
+// Find finds key/value pair whose key is greater than or equal to the
+// given key. It returns ErrNotFound if the table doesn't contain
+// such pair.
+// If filtered is true then the nearest 'block' will be checked against
+// 'filter data' (if present) and will immediately return ErrNotFound if
+// 'filter data' indicates that such pair doesn't exist.
+//
+// The caller may modify the contents of the returned slice as it is its
+// own copy.
+// It is safe to modify the contents of the argument after Find returns.
+func (r *Reader) Find(key []byte, filtered bool, ro *opt.ReadOptions) (rkey, value []byte, err error) {
+ return r.find(key, filtered, ro, false)
+}
+
+// FindKey finds key that is greater than or equal to the given key.
+// It returns ErrNotFound if the table doesn't contain such key.
+// If filtered is true then the nearest 'block' will be checked against
+// 'filter data' (if present) and will immediately return ErrNotFound if
+// 'filter data' indicates that such key doesn't exist.
+//
+// The caller may modify the contents of the returned slice as it is its
+// own copy.
+// It is safe to modify the contents of the argument after Find returns.
+func (r *Reader) FindKey(key []byte, filtered bool, ro *opt.ReadOptions) (rkey []byte, err error) {
+ rkey, _, err = r.find(key, filtered, ro, true)
+ return
+}
+
+// Get gets the value for the given key. It returns errors.ErrNotFound
+// if the table does not contain the key.
+//
+// The caller may modify the contents of the returned slice as it is its
+// own copy.
+// It is safe to modify the contents of the argument after Find returns.
+func (r *Reader) Get(key []byte, ro *opt.ReadOptions) (value []byte, err error) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ if r.err != nil {
+ err = r.err
+ return
+ }
+
+ rkey, value, err := r.find(key, false, ro, false)
+ if err == nil && r.cmp.Compare(rkey, key) != 0 {
+ value = nil
+ err = ErrNotFound
+ }
+ return
+}
+
+// OffsetOf returns approximate offset for the given key.
+//
+// It is safe to modify the contents of the argument after Get returns.
+func (r *Reader) OffsetOf(key []byte) (offset int64, err error) {
+ r.mu.RLock()
+ defer r.mu.RUnlock()
+
+ if r.err != nil {
+ err = r.err
+ return
+ }
+
+ indexBlock, rel, err := r.readBlockCached(r.indexBH, true, true)
+ if err != nil {
+ return
+ }
+ defer rel.Release()
+
+ index := r.newBlockIter(indexBlock, nil, nil, true)
+ defer index.Release()
+ if index.Seek(key) {
+ dataBH, n := decodeBlockHandle(index.Value())
+ if n == 0 {
+ r.err = r.newErrCorruptedBH(r.indexBH, "bad data block handle")
+ return
+ }
+ offset = int64(dataBH.offset)
+ return
+ }
+ err = index.Error()
+ if err == nil {
+ offset = r.dataEnd
+ }
+ return
+}
+
+// Release implements util.Releaser.
+// It also close the file if it is an io.Closer.
+func (r *Reader) Release() {
+ r.mu.Lock()
+ defer r.mu.Unlock()
+
+ if closer, ok := r.reader.(io.Closer); ok {
+ closer.Close()
+ }
+ if r.indexBlock != nil {
+ r.indexBlock.Release()
+ r.indexBlock = nil
+ }
+ if r.filterBlock != nil {
+ r.filterBlock.Release()
+ r.filterBlock = nil
+ }
+ r.reader = nil
+ r.cache = nil
+ r.bpool = nil
+ r.err = ErrReaderReleased
+}
+
+// NewReader creates a new initialized table reader for the file.
+// The fi, cache and bpool is optional and can be nil.
+//
+// The returned table reader instance is safe for concurrent use.
+func NewReader(f io.ReaderAt, size int64, fd storage.FileDesc, cache *cache.NamespaceGetter, bpool *util.BufferPool, o *opt.Options) (*Reader, error) {
+ if f == nil {
+ return nil, errors.New("leveldb/table: nil file")
+ }
+
+ r := &Reader{
+ fd: fd,
+ reader: f,
+ cache: cache,
+ bpool: bpool,
+ o: o,
+ cmp: o.GetComparer(),
+ verifyChecksum: o.GetStrict(opt.StrictBlockChecksum),
+ }
+
+ if size < footerLen {
+ r.err = r.newErrCorrupted(0, size, "table", "too small")
+ return r, nil
+ }
+
+ footerPos := size - footerLen
+ var footer [footerLen]byte
+ if _, err := r.reader.ReadAt(footer[:], footerPos); err != nil && err != io.EOF {
+ return nil, err
+ }
+ if string(footer[footerLen-len(magic):footerLen]) != magic {
+ r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad magic number")
+ return r, nil
+ }
+
+ var n int
+ // Decode the metaindex block handle.
+ r.metaBH, n = decodeBlockHandle(footer[:])
+ if n == 0 {
+ r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad metaindex block handle")
+ return r, nil
+ }
+
+ // Decode the index block handle.
+ r.indexBH, n = decodeBlockHandle(footer[n:])
+ if n == 0 {
+ r.err = r.newErrCorrupted(footerPos, footerLen, "table-footer", "bad index block handle")
+ return r, nil
+ }
+
+ // Read metaindex block.
+ metaBlock, err := r.readBlock(r.metaBH, true)
+ if err != nil {
+ if errors.IsCorrupted(err) {
+ r.err = err
+ return r, nil
+ }
+ return nil, err
+ }
+
+ // Set data end.
+ r.dataEnd = int64(r.metaBH.offset)
+
+ // Read metaindex.
+ metaIter := r.newBlockIter(metaBlock, nil, nil, true)
+ for metaIter.Next() {
+ key := string(metaIter.Key())
+ if !strings.HasPrefix(key, "filter.") {
+ continue
+ }
+ fn := key[7:]
+ if f0 := o.GetFilter(); f0 != nil && f0.Name() == fn {
+ r.filter = f0
+ } else {
+ for _, f0 := range o.GetAltFilters() {
+ if f0.Name() == fn {
+ r.filter = f0
+ break
+ }
+ }
+ }
+ if r.filter != nil {
+ filterBH, n := decodeBlockHandle(metaIter.Value())
+ if n == 0 {
+ continue
+ }
+ r.filterBH = filterBH
+ // Update data end.
+ r.dataEnd = int64(filterBH.offset)
+ break
+ }
+ }
+ metaIter.Release()
+ metaBlock.Release()
+
+ // Cache index and filter block locally, since we don't have global cache.
+ if cache == nil {
+ r.indexBlock, err = r.readBlock(r.indexBH, true)
+ if err != nil {
+ if errors.IsCorrupted(err) {
+ r.err = err
+ return r, nil
+ }
+ return nil, err
+ }
+ if r.filter != nil {
+ r.filterBlock, err = r.readFilterBlock(r.filterBH)
+ if err != nil {
+ if !errors.IsCorrupted(err) {
+ return nil, err
+ }
+
+ // Don't use filter then.
+ r.filter = nil
+ }
+ }
+ }
+
+ return r, nil
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go
new file mode 100644
index 000000000..beacdc1f0
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/table/table.go
@@ -0,0 +1,177 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package table allows read and write sorted key/value.
+package table
+
+import (
+ "encoding/binary"
+)
+
+/*
+Table:
+
+Table is consist of one or more data blocks, an optional filter block
+a metaindex block, an index block and a table footer. Metaindex block
+is a special block used to keep parameters of the table, such as filter
+block name and its block handle. Index block is a special block used to
+keep record of data blocks offset and length, index block use one as
+restart interval. The key used by index block are the last key of preceding
+block, shorter separator of adjacent blocks or shorter successor of the
+last key of the last block. Filter block is an optional block contains
+sequence of filter data generated by a filter generator.
+
+Table data structure:
+ + optional
+ /
+ +--------------+--------------+--------------+------+-------+-----------------+-------------+--------+
+ | data block 1 | ... | data block n | filter block | metaindex block | index block | footer |
+ +--------------+--------------+--------------+--------------+-----------------+-------------+--------+
+
+ Each block followed by a 5-bytes trailer contains compression type and checksum.
+
+Table block trailer:
+
+ +---------------------------+-------------------+
+ | compression type (1-byte) | checksum (4-byte) |
+ +---------------------------+-------------------+
+
+ The checksum is a CRC-32 computed using Castagnoli's polynomial. Compression
+ type also included in the checksum.
+
+Table footer:
+
+ +------------------- 40-bytes -------------------+
+ / \
+ +------------------------+--------------------+------+-----------------+
+ | metaindex block handle / index block handle / ---- | magic (8-bytes) |
+ +------------------------+--------------------+------+-----------------+
+
+ The magic are first 64-bit of SHA-1 sum of "http://code.google.com/p/leveldb/".
+
+NOTE: All fixed-length integer are little-endian.
+*/
+
+/*
+Block:
+
+Block is consist of one or more key/value entries and a block trailer.
+Block entry shares key prefix with its preceding key until a restart
+point reached. A block should contains at least one restart point.
+First restart point are always zero.
+
+Block data structure:
+
+ + restart point + restart point (depends on restart interval)
+ / /
+ +---------------+---------------+---------------+---------------+---------+
+ | block entry 1 | block entry 2 | ... | block entry n | trailer |
+ +---------------+---------------+---------------+---------------+---------+
+
+Key/value entry:
+
+ +---- key len ----+
+ / \
+ +-------+---------+-----------+---------+--------------------+--------------+----------------+
+ | shared (varint) | not shared (varint) | value len (varint) | key (varlen) | value (varlen) |
+ +-----------------+---------------------+--------------------+--------------+----------------+
+
+ Block entry shares key prefix with its preceding key:
+ Conditions:
+ restart_interval=2
+ entry one : key=deck,value=v1
+ entry two : key=dock,value=v2
+ entry three: key=duck,value=v3
+ The entries will be encoded as follow:
+
+ + restart point (offset=0) + restart point (offset=16)
+ / /
+ +-----+-----+-----+----------+--------+-----+-----+-----+---------+--------+-----+-----+-----+----------+--------+
+ | 0 | 4 | 2 | "deck" | "v1" | 1 | 3 | 2 | "ock" | "v2" | 0 | 4 | 2 | "duck" | "v3" |
+ +-----+-----+-----+----------+--------+-----+-----+-----+---------+--------+-----+-----+-----+----------+--------+
+ \ / \ / \ /
+ +----------- entry one -----------+ +----------- entry two ----------+ +---------- entry three ----------+
+
+ The block trailer will contains two restart points:
+
+ +------------+-----------+--------+
+ | 0 | 16 | 2 |
+ +------------+-----------+---+----+
+ \ / \
+ +-- restart points --+ + restart points length
+
+Block trailer:
+
+ +-- 4-bytes --+
+ / \
+ +-----------------+-----------------+-----------------+------------------------------+
+ | restart point 1 | .... | restart point n | restart points len (4-bytes) |
+ +-----------------+-----------------+-----------------+------------------------------+
+
+
+NOTE: All fixed-length integer are little-endian.
+*/
+
+/*
+Filter block:
+
+Filter block consist of one or more filter data and a filter block trailer.
+The trailer contains filter data offsets, a trailer offset and a 1-byte base Lg.
+
+Filter block data structure:
+
+ + offset 1 + offset 2 + offset n + trailer offset
+ / / / /
+ +---------------+---------------+---------------+---------+
+ | filter data 1 | ... | filter data n | trailer |
+ +---------------+---------------+---------------+---------+
+
+Filter block trailer:
+
+ +- 4-bytes -+
+ / \
+ +---------------+---------------+---------------+-------------------------------+------------------+
+ | data 1 offset | .... | data n offset | data-offsets offset (4-bytes) | base Lg (1-byte) |
+ +-------------- +---------------+---------------+-------------------------------+------------------+
+
+
+NOTE: All fixed-length integer are little-endian.
+*/
+
+const (
+ blockTrailerLen = 5
+ footerLen = 48
+
+ magic = "\x57\xfb\x80\x8b\x24\x75\x47\xdb"
+
+ // The block type gives the per-block compression format.
+ // These constants are part of the file format and should not be changed.
+ blockTypeNoCompression = 0
+ blockTypeSnappyCompression = 1
+
+ // Generate new filter every 2KB of data
+ filterBaseLg = 11
+ filterBase = 1 << filterBaseLg
+)
+
+type blockHandle struct {
+ offset, length uint64
+}
+
+func decodeBlockHandle(src []byte) (blockHandle, int) {
+ offset, n := binary.Uvarint(src)
+ length, m := binary.Uvarint(src[n:])
+ if n == 0 || m == 0 {
+ return blockHandle{}, 0
+ }
+ return blockHandle{offset, length}, n + m
+}
+
+func encodeBlockHandle(dst []byte, b blockHandle) int {
+ n := binary.PutUvarint(dst, b.offset)
+ m := binary.PutUvarint(dst[n:], b.length)
+ return n + m
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go b/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go
new file mode 100644
index 000000000..b96b271d8
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/table/writer.go
@@ -0,0 +1,375 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package table
+
+import (
+ "encoding/binary"
+ "errors"
+ "fmt"
+ "io"
+
+ "github.com/golang/snappy"
+
+ "github.com/syndtr/goleveldb/leveldb/comparer"
+ "github.com/syndtr/goleveldb/leveldb/filter"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+func sharedPrefixLen(a, b []byte) int {
+ i, n := 0, len(a)
+ if n > len(b) {
+ n = len(b)
+ }
+ for i < n && a[i] == b[i] {
+ i++
+ }
+ return i
+}
+
+type blockWriter struct {
+ restartInterval int
+ buf util.Buffer
+ nEntries int
+ prevKey []byte
+ restarts []uint32
+ scratch []byte
+}
+
+func (w *blockWriter) append(key, value []byte) {
+ nShared := 0
+ if w.nEntries%w.restartInterval == 0 {
+ w.restarts = append(w.restarts, uint32(w.buf.Len()))
+ } else {
+ nShared = sharedPrefixLen(w.prevKey, key)
+ }
+ n := binary.PutUvarint(w.scratch[0:], uint64(nShared))
+ n += binary.PutUvarint(w.scratch[n:], uint64(len(key)-nShared))
+ n += binary.PutUvarint(w.scratch[n:], uint64(len(value)))
+ w.buf.Write(w.scratch[:n])
+ w.buf.Write(key[nShared:])
+ w.buf.Write(value)
+ w.prevKey = append(w.prevKey[:0], key...)
+ w.nEntries++
+}
+
+func (w *blockWriter) finish() {
+ // Write restarts entry.
+ if w.nEntries == 0 {
+ // Must have at least one restart entry.
+ w.restarts = append(w.restarts, 0)
+ }
+ w.restarts = append(w.restarts, uint32(len(w.restarts)))
+ for _, x := range w.restarts {
+ buf4 := w.buf.Alloc(4)
+ binary.LittleEndian.PutUint32(buf4, x)
+ }
+}
+
+func (w *blockWriter) reset() {
+ w.buf.Reset()
+ w.nEntries = 0
+ w.restarts = w.restarts[:0]
+}
+
+func (w *blockWriter) bytesLen() int {
+ restartsLen := len(w.restarts)
+ if restartsLen == 0 {
+ restartsLen = 1
+ }
+ return w.buf.Len() + 4*restartsLen + 4
+}
+
+type filterWriter struct {
+ generator filter.FilterGenerator
+ buf util.Buffer
+ nKeys int
+ offsets []uint32
+}
+
+func (w *filterWriter) add(key []byte) {
+ if w.generator == nil {
+ return
+ }
+ w.generator.Add(key)
+ w.nKeys++
+}
+
+func (w *filterWriter) flush(offset uint64) {
+ if w.generator == nil {
+ return
+ }
+ for x := int(offset / filterBase); x > len(w.offsets); {
+ w.generate()
+ }
+}
+
+func (w *filterWriter) finish() {
+ if w.generator == nil {
+ return
+ }
+ // Generate last keys.
+
+ if w.nKeys > 0 {
+ w.generate()
+ }
+ w.offsets = append(w.offsets, uint32(w.buf.Len()))
+ for _, x := range w.offsets {
+ buf4 := w.buf.Alloc(4)
+ binary.LittleEndian.PutUint32(buf4, x)
+ }
+ w.buf.WriteByte(filterBaseLg)
+}
+
+func (w *filterWriter) generate() {
+ // Record offset.
+ w.offsets = append(w.offsets, uint32(w.buf.Len()))
+ // Generate filters.
+ if w.nKeys > 0 {
+ w.generator.Generate(&w.buf)
+ w.nKeys = 0
+ }
+}
+
+// Writer is a table writer.
+type Writer struct {
+ writer io.Writer
+ err error
+ // Options
+ cmp comparer.Comparer
+ filter filter.Filter
+ compression opt.Compression
+ blockSize int
+
+ dataBlock blockWriter
+ indexBlock blockWriter
+ filterBlock filterWriter
+ pendingBH blockHandle
+ offset uint64
+ nEntries int
+ // Scratch allocated enough for 5 uvarint. Block writer should not use
+ // first 20-bytes since it will be used to encode block handle, which
+ // then passed to the block writer itself.
+ scratch [50]byte
+ comparerScratch []byte
+ compressionScratch []byte
+}
+
+func (w *Writer) writeBlock(buf *util.Buffer, compression opt.Compression) (bh blockHandle, err error) {
+ // Compress the buffer if necessary.
+ var b []byte
+ if compression == opt.SnappyCompression {
+ // Allocate scratch enough for compression and block trailer.
+ if n := snappy.MaxEncodedLen(buf.Len()) + blockTrailerLen; len(w.compressionScratch) < n {
+ w.compressionScratch = make([]byte, n)
+ }
+ compressed := snappy.Encode(w.compressionScratch, buf.Bytes())
+ n := len(compressed)
+ b = compressed[:n+blockTrailerLen]
+ b[n] = blockTypeSnappyCompression
+ } else {
+ tmp := buf.Alloc(blockTrailerLen)
+ tmp[0] = blockTypeNoCompression
+ b = buf.Bytes()
+ }
+
+ // Calculate the checksum.
+ n := len(b) - 4
+ checksum := util.NewCRC(b[:n]).Value()
+ binary.LittleEndian.PutUint32(b[n:], checksum)
+
+ // Write the buffer to the file.
+ _, err = w.writer.Write(b)
+ if err != nil {
+ return
+ }
+ bh = blockHandle{w.offset, uint64(len(b) - blockTrailerLen)}
+ w.offset += uint64(len(b))
+ return
+}
+
+func (w *Writer) flushPendingBH(key []byte) {
+ if w.pendingBH.length == 0 {
+ return
+ }
+ var separator []byte
+ if len(key) == 0 {
+ separator = w.cmp.Successor(w.comparerScratch[:0], w.dataBlock.prevKey)
+ } else {
+ separator = w.cmp.Separator(w.comparerScratch[:0], w.dataBlock.prevKey, key)
+ }
+ if separator == nil {
+ separator = w.dataBlock.prevKey
+ } else {
+ w.comparerScratch = separator
+ }
+ n := encodeBlockHandle(w.scratch[:20], w.pendingBH)
+ // Append the block handle to the index block.
+ w.indexBlock.append(separator, w.scratch[:n])
+ // Reset prev key of the data block.
+ w.dataBlock.prevKey = w.dataBlock.prevKey[:0]
+ // Clear pending block handle.
+ w.pendingBH = blockHandle{}
+}
+
+func (w *Writer) finishBlock() error {
+ w.dataBlock.finish()
+ bh, err := w.writeBlock(&w.dataBlock.buf, w.compression)
+ if err != nil {
+ return err
+ }
+ w.pendingBH = bh
+ // Reset the data block.
+ w.dataBlock.reset()
+ // Flush the filter block.
+ w.filterBlock.flush(w.offset)
+ return nil
+}
+
+// Append appends key/value pair to the table. The keys passed must
+// be in increasing order.
+//
+// It is safe to modify the contents of the arguments after Append returns.
+func (w *Writer) Append(key, value []byte) error {
+ if w.err != nil {
+ return w.err
+ }
+ if w.nEntries > 0 && w.cmp.Compare(w.dataBlock.prevKey, key) >= 0 {
+ w.err = fmt.Errorf("leveldb/table: Writer: keys are not in increasing order: %q, %q", w.dataBlock.prevKey, key)
+ return w.err
+ }
+
+ w.flushPendingBH(key)
+ // Append key/value pair to the data block.
+ w.dataBlock.append(key, value)
+ // Add key to the filter block.
+ w.filterBlock.add(key)
+
+ // Finish the data block if block size target reached.
+ if w.dataBlock.bytesLen() >= w.blockSize {
+ if err := w.finishBlock(); err != nil {
+ w.err = err
+ return w.err
+ }
+ }
+ w.nEntries++
+ return nil
+}
+
+// BlocksLen returns number of blocks written so far.
+func (w *Writer) BlocksLen() int {
+ n := w.indexBlock.nEntries
+ if w.pendingBH.length > 0 {
+ // Includes the pending block.
+ n++
+ }
+ return n
+}
+
+// EntriesLen returns number of entries added so far.
+func (w *Writer) EntriesLen() int {
+ return w.nEntries
+}
+
+// BytesLen returns number of bytes written so far.
+func (w *Writer) BytesLen() int {
+ return int(w.offset)
+}
+
+// Close will finalize the table. Calling Append is not possible
+// after Close, but calling BlocksLen, EntriesLen and BytesLen
+// is still possible.
+func (w *Writer) Close() error {
+ if w.err != nil {
+ return w.err
+ }
+
+ // Write the last data block. Or empty data block if there
+ // aren't any data blocks at all.
+ if w.dataBlock.nEntries > 0 || w.nEntries == 0 {
+ if err := w.finishBlock(); err != nil {
+ w.err = err
+ return w.err
+ }
+ }
+ w.flushPendingBH(nil)
+
+ // Write the filter block.
+ var filterBH blockHandle
+ w.filterBlock.finish()
+ if buf := &w.filterBlock.buf; buf.Len() > 0 {
+ filterBH, w.err = w.writeBlock(buf, opt.NoCompression)
+ if w.err != nil {
+ return w.err
+ }
+ }
+
+ // Write the metaindex block.
+ if filterBH.length > 0 {
+ key := []byte("filter." + w.filter.Name())
+ n := encodeBlockHandle(w.scratch[:20], filterBH)
+ w.dataBlock.append(key, w.scratch[:n])
+ }
+ w.dataBlock.finish()
+ metaindexBH, err := w.writeBlock(&w.dataBlock.buf, w.compression)
+ if err != nil {
+ w.err = err
+ return w.err
+ }
+
+ // Write the index block.
+ w.indexBlock.finish()
+ indexBH, err := w.writeBlock(&w.indexBlock.buf, w.compression)
+ if err != nil {
+ w.err = err
+ return w.err
+ }
+
+ // Write the table footer.
+ footer := w.scratch[:footerLen]
+ for i := range footer {
+ footer[i] = 0
+ }
+ n := encodeBlockHandle(footer, metaindexBH)
+ encodeBlockHandle(footer[n:], indexBH)
+ copy(footer[footerLen-len(magic):], magic)
+ if _, err := w.writer.Write(footer); err != nil {
+ w.err = err
+ return w.err
+ }
+ w.offset += footerLen
+
+ w.err = errors.New("leveldb/table: writer is closed")
+ return nil
+}
+
+// NewWriter creates a new initialized table writer for the file.
+//
+// Table writer is not safe for concurrent use.
+func NewWriter(f io.Writer, o *opt.Options) *Writer {
+ w := &Writer{
+ writer: f,
+ cmp: o.GetComparer(),
+ filter: o.GetFilter(),
+ compression: o.GetCompression(),
+ blockSize: o.GetBlockSize(),
+ comparerScratch: make([]byte, 0),
+ }
+ // data block
+ w.dataBlock.restartInterval = o.GetBlockRestartInterval()
+ // The first 20-bytes are used for encoding block handle.
+ w.dataBlock.scratch = w.scratch[20:]
+ // index block
+ w.indexBlock.restartInterval = 1
+ w.indexBlock.scratch = w.scratch[20:]
+ // filter block
+ if w.filter != nil {
+ w.filterBlock.generator = w.filter.NewGenerator()
+ w.filterBlock.flush(0)
+ }
+ return w
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util.go b/vendor/github.com/syndtr/goleveldb/leveldb/util.go
new file mode 100644
index 000000000..e572a329e
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util.go
@@ -0,0 +1,98 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "fmt"
+ "sort"
+
+ "github.com/syndtr/goleveldb/leveldb/storage"
+)
+
+func shorten(str string) string {
+ if len(str) <= 8 {
+ return str
+ }
+ return str[:3] + ".." + str[len(str)-3:]
+}
+
+var bunits = [...]string{"", "Ki", "Mi", "Gi"}
+
+func shortenb(bytes int) string {
+ i := 0
+ for ; bytes > 1024 && i < 4; i++ {
+ bytes /= 1024
+ }
+ return fmt.Sprintf("%d%sB", bytes, bunits[i])
+}
+
+func sshortenb(bytes int) string {
+ if bytes == 0 {
+ return "~"
+ }
+ sign := "+"
+ if bytes < 0 {
+ sign = "-"
+ bytes *= -1
+ }
+ i := 0
+ for ; bytes > 1024 && i < 4; i++ {
+ bytes /= 1024
+ }
+ return fmt.Sprintf("%s%d%sB", sign, bytes, bunits[i])
+}
+
+func sint(x int) string {
+ if x == 0 {
+ return "~"
+ }
+ sign := "+"
+ if x < 0 {
+ sign = "-"
+ x *= -1
+ }
+ return fmt.Sprintf("%s%d", sign, x)
+}
+
+func minInt(a, b int) int {
+ if a < b {
+ return a
+ }
+ return b
+}
+
+func maxInt(a, b int) int {
+ if a > b {
+ return a
+ }
+ return b
+}
+
+type fdSorter []storage.FileDesc
+
+func (p fdSorter) Len() int {
+ return len(p)
+}
+
+func (p fdSorter) Less(i, j int) bool {
+ return p[i].Num < p[j].Num
+}
+
+func (p fdSorter) Swap(i, j int) {
+ p[i], p[j] = p[j], p[i]
+}
+
+func sortFds(fds []storage.FileDesc) {
+ sort.Sort(fdSorter(fds))
+}
+
+func ensureBuffer(b []byte, n int) []byte {
+ if cap(b) < n {
+ return make([]byte, n)
+ }
+ return b[:n]
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go
new file mode 100644
index 000000000..21de24255
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer.go
@@ -0,0 +1,293 @@
+// 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 util
+
+// This a copy of Go std bytes.Buffer with some modification
+// and some features stripped.
+
+import (
+ "bytes"
+ "io"
+)
+
+// A Buffer is a variable-sized buffer of bytes with Read and Write methods.
+// The zero value for Buffer is an empty buffer ready to use.
+type Buffer struct {
+ buf []byte // contents are the bytes buf[off : len(buf)]
+ off int // read at &buf[off], write at &buf[len(buf)]
+ bootstrap [64]byte // memory to hold first slice; helps small buffers (Printf) avoid allocation.
+}
+
+// Bytes returns a slice of the contents of the unread portion of the buffer;
+// len(b.Bytes()) == b.Len(). If the caller changes the contents of the
+// returned slice, the contents of the buffer will change provided there
+// are no intervening method calls on the Buffer.
+func (b *Buffer) Bytes() []byte { return b.buf[b.off:] }
+
+// String returns the contents of the unread portion of the buffer
+// as a string. If the Buffer is a nil pointer, it returns "<nil>".
+func (b *Buffer) String() string {
+ if b == nil {
+ // Special case, useful in debugging.
+ return "<nil>"
+ }
+ return string(b.buf[b.off:])
+}
+
+// Len returns the number of bytes of the unread portion of the buffer;
+// b.Len() == len(b.Bytes()).
+func (b *Buffer) Len() int { return len(b.buf) - b.off }
+
+// Truncate discards all but the first n unread bytes from the buffer.
+// It panics if n is negative or greater than the length of the buffer.
+func (b *Buffer) Truncate(n int) {
+ switch {
+ case n < 0 || n > b.Len():
+ panic("leveldb/util.Buffer: truncation out of range")
+ case n == 0:
+ // Reuse buffer space.
+ b.off = 0
+ }
+ b.buf = b.buf[0 : b.off+n]
+}
+
+// Reset resets the buffer so it has no content.
+// b.Reset() is the same as b.Truncate(0).
+func (b *Buffer) Reset() { b.Truncate(0) }
+
+// grow grows the buffer to guarantee space for n more bytes.
+// It returns the index where bytes should be written.
+// If the buffer can't grow it will panic with bytes.ErrTooLarge.
+func (b *Buffer) grow(n int) int {
+ m := b.Len()
+ // If buffer is empty, reset to recover space.
+ if m == 0 && b.off != 0 {
+ b.Truncate(0)
+ }
+ if len(b.buf)+n > cap(b.buf) {
+ var buf []byte
+ if b.buf == nil && n <= len(b.bootstrap) {
+ buf = b.bootstrap[0:]
+ } else if m+n <= cap(b.buf)/2 {
+ // We can slide things down instead of allocating a new
+ // slice. We only need m+n <= cap(b.buf) to slide, but
+ // we instead let capacity get twice as large so we
+ // don't spend all our time copying.
+ copy(b.buf[:], b.buf[b.off:])
+ buf = b.buf[:m]
+ } else {
+ // not enough space anywhere
+ buf = makeSlice(2*cap(b.buf) + n)
+ copy(buf, b.buf[b.off:])
+ }
+ b.buf = buf
+ b.off = 0
+ }
+ b.buf = b.buf[0 : b.off+m+n]
+ return b.off + m
+}
+
+// Alloc allocs n bytes of slice from the buffer, growing the buffer as
+// needed. If n is negative, Alloc will panic.
+// If the buffer can't grow it will panic with bytes.ErrTooLarge.
+func (b *Buffer) Alloc(n int) []byte {
+ if n < 0 {
+ panic("leveldb/util.Buffer.Alloc: negative count")
+ }
+ m := b.grow(n)
+ return b.buf[m:]
+}
+
+// Grow grows the buffer's capacity, if necessary, to guarantee space for
+// another n bytes. After Grow(n), at least n bytes can be written to the
+// buffer without another allocation.
+// If n is negative, Grow will panic.
+// If the buffer can't grow it will panic with bytes.ErrTooLarge.
+func (b *Buffer) Grow(n int) {
+ if n < 0 {
+ panic("leveldb/util.Buffer.Grow: negative count")
+ }
+ m := b.grow(n)
+ b.buf = b.buf[0:m]
+}
+
+// Write appends the contents of p to the buffer, growing the buffer as
+// needed. The return value n is the length of p; err is always nil. If the
+// buffer becomes too large, Write will panic with bytes.ErrTooLarge.
+func (b *Buffer) Write(p []byte) (n int, err error) {
+ m := b.grow(len(p))
+ return copy(b.buf[m:], p), nil
+}
+
+// MinRead is the minimum slice size passed to a Read call by
+// Buffer.ReadFrom. As long as the Buffer has at least MinRead bytes beyond
+// what is required to hold the contents of r, ReadFrom will not grow the
+// underlying buffer.
+const MinRead = 512
+
+// ReadFrom reads data from r until EOF and appends it to the buffer, growing
+// the buffer as needed. The return value n is the number of bytes read. Any
+// error except io.EOF encountered during the read is also returned. If the
+// buffer becomes too large, ReadFrom will panic with bytes.ErrTooLarge.
+func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) {
+ // If buffer is empty, reset to recover space.
+ if b.off >= len(b.buf) {
+ b.Truncate(0)
+ }
+ for {
+ if free := cap(b.buf) - len(b.buf); free < MinRead {
+ // not enough space at end
+ newBuf := b.buf
+ if b.off+free < MinRead {
+ // not enough space using beginning of buffer;
+ // double buffer capacity
+ newBuf = makeSlice(2*cap(b.buf) + MinRead)
+ }
+ copy(newBuf, b.buf[b.off:])
+ b.buf = newBuf[:len(b.buf)-b.off]
+ b.off = 0
+ }
+ m, e := r.Read(b.buf[len(b.buf):cap(b.buf)])
+ b.buf = b.buf[0 : len(b.buf)+m]
+ n += int64(m)
+ if e == io.EOF {
+ break
+ }
+ if e != nil {
+ return n, e
+ }
+ }
+ return n, nil // err is EOF, so return nil explicitly
+}
+
+// makeSlice allocates a slice of size n. If the allocation fails, it panics
+// with bytes.ErrTooLarge.
+func makeSlice(n int) []byte {
+ // If the make fails, give a known error.
+ defer func() {
+ if recover() != nil {
+ panic(bytes.ErrTooLarge)
+ }
+ }()
+ return make([]byte, n)
+}
+
+// WriteTo writes data to w until the buffer is drained or an error occurs.
+// The return value n is the number of bytes written; it always fits into an
+// int, but it is int64 to match the io.WriterTo interface. Any error
+// encountered during the write is also returned.
+func (b *Buffer) WriteTo(w io.Writer) (n int64, err error) {
+ if b.off < len(b.buf) {
+ nBytes := b.Len()
+ m, e := w.Write(b.buf[b.off:])
+ if m > nBytes {
+ panic("leveldb/util.Buffer.WriteTo: invalid Write count")
+ }
+ b.off += m
+ n = int64(m)
+ if e != nil {
+ return n, e
+ }
+ // all bytes should have been written, by definition of
+ // Write method in io.Writer
+ if m != nBytes {
+ return n, io.ErrShortWrite
+ }
+ }
+ // Buffer is now empty; reset.
+ b.Truncate(0)
+ return
+}
+
+// WriteByte appends the byte c to the buffer, growing the buffer as needed.
+// The returned error is always nil, but is included to match bufio.Writer's
+// WriteByte. If the buffer becomes too large, WriteByte will panic with
+// bytes.ErrTooLarge.
+func (b *Buffer) WriteByte(c byte) error {
+ m := b.grow(1)
+ b.buf[m] = c
+ return nil
+}
+
+// Read reads the next len(p) bytes from the buffer or until the buffer
+// is drained. The return value n is the number of bytes read. If the
+// buffer has no data to return, err is io.EOF (unless len(p) is zero);
+// otherwise it is nil.
+func (b *Buffer) Read(p []byte) (n int, err error) {
+ if b.off >= len(b.buf) {
+ // Buffer is empty, reset to recover space.
+ b.Truncate(0)
+ if len(p) == 0 {
+ return
+ }
+ return 0, io.EOF
+ }
+ n = copy(p, b.buf[b.off:])
+ b.off += n
+ return
+}
+
+// Next returns a slice containing the next n bytes from the buffer,
+// advancing the buffer as if the bytes had been returned by Read.
+// If there are fewer than n bytes in the buffer, Next returns the entire buffer.
+// The slice is only valid until the next call to a read or write method.
+func (b *Buffer) Next(n int) []byte {
+ m := b.Len()
+ if n > m {
+ n = m
+ }
+ data := b.buf[b.off : b.off+n]
+ b.off += n
+ return data
+}
+
+// ReadByte reads and returns the next byte from the buffer.
+// If no byte is available, it returns error io.EOF.
+func (b *Buffer) ReadByte() (c byte, err error) {
+ if b.off >= len(b.buf) {
+ // Buffer is empty, reset to recover space.
+ b.Truncate(0)
+ return 0, io.EOF
+ }
+ c = b.buf[b.off]
+ b.off++
+ return c, nil
+}
+
+// ReadBytes reads until the first occurrence of delim in the input,
+// returning a slice containing the data up to and including the delimiter.
+// If ReadBytes encounters an error before finding a delimiter,
+// it returns the data read before the error and the error itself (often io.EOF).
+// ReadBytes returns err != nil if and only if the returned data does not end in
+// delim.
+func (b *Buffer) ReadBytes(delim byte) (line []byte, err error) {
+ slice, err := b.readSlice(delim)
+ // return a copy of slice. The buffer's backing array may
+ // be overwritten by later calls.
+ line = append(line, slice...)
+ return
+}
+
+// readSlice is like ReadBytes but returns a reference to internal buffer data.
+func (b *Buffer) readSlice(delim byte) (line []byte, err error) {
+ i := bytes.IndexByte(b.buf[b.off:], delim)
+ end := b.off + i + 1
+ if i < 0 {
+ end = len(b.buf)
+ err = io.EOF
+ }
+ line = b.buf[b.off:end]
+ b.off = end
+ return line, err
+}
+
+// NewBuffer creates and initializes a new Buffer using buf as its initial
+// contents. It is intended to prepare a Buffer to read existing data. It
+// can also be used to size the internal buffer for writing. To do that,
+// buf should have the desired capacity but a length of zero.
+//
+// In most cases, new(Buffer) (or just declaring a Buffer variable) is
+// sufficient to initialize a Buffer.
+func NewBuffer(buf []byte) *Buffer { return &Buffer{buf: buf} }
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go
new file mode 100644
index 000000000..2f3db974a
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/buffer_pool.go
@@ -0,0 +1,239 @@
+// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package util
+
+import (
+ "fmt"
+ "sync"
+ "sync/atomic"
+ "time"
+)
+
+type buffer struct {
+ b []byte
+ miss int
+}
+
+// BufferPool is a 'buffer pool'.
+type BufferPool struct {
+ pool [6]chan []byte
+ size [5]uint32
+ sizeMiss [5]uint32
+ sizeHalf [5]uint32
+ baseline [4]int
+ baseline0 int
+
+ mu sync.RWMutex
+ closed bool
+ closeC chan struct{}
+
+ get uint32
+ put uint32
+ half uint32
+ less uint32
+ equal uint32
+ greater uint32
+ miss uint32
+}
+
+func (p *BufferPool) poolNum(n int) int {
+ if n <= p.baseline0 && n > p.baseline0/2 {
+ return 0
+ }
+ for i, x := range p.baseline {
+ if n <= x {
+ return i + 1
+ }
+ }
+ return len(p.baseline) + 1
+}
+
+// Get returns buffer with length of n.
+func (p *BufferPool) Get(n int) []byte {
+ if p == nil {
+ return make([]byte, n)
+ }
+
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+
+ if p.closed {
+ return make([]byte, n)
+ }
+
+ atomic.AddUint32(&p.get, 1)
+
+ poolNum := p.poolNum(n)
+ pool := p.pool[poolNum]
+ if poolNum == 0 {
+ // Fast path.
+ select {
+ case b := <-pool:
+ switch {
+ case cap(b) > n:
+ if cap(b)-n >= n {
+ atomic.AddUint32(&p.half, 1)
+ select {
+ case pool <- b:
+ default:
+ }
+ return make([]byte, n)
+ } else {
+ atomic.AddUint32(&p.less, 1)
+ return b[:n]
+ }
+ case cap(b) == n:
+ atomic.AddUint32(&p.equal, 1)
+ return b[:n]
+ default:
+ atomic.AddUint32(&p.greater, 1)
+ }
+ default:
+ atomic.AddUint32(&p.miss, 1)
+ }
+
+ return make([]byte, n, p.baseline0)
+ } else {
+ sizePtr := &p.size[poolNum-1]
+
+ select {
+ case b := <-pool:
+ switch {
+ case cap(b) > n:
+ if cap(b)-n >= n {
+ atomic.AddUint32(&p.half, 1)
+ sizeHalfPtr := &p.sizeHalf[poolNum-1]
+ if atomic.AddUint32(sizeHalfPtr, 1) == 20 {
+ atomic.StoreUint32(sizePtr, uint32(cap(b)/2))
+ atomic.StoreUint32(sizeHalfPtr, 0)
+ } else {
+ select {
+ case pool <- b:
+ default:
+ }
+ }
+ return make([]byte, n)
+ } else {
+ atomic.AddUint32(&p.less, 1)
+ return b[:n]
+ }
+ case cap(b) == n:
+ atomic.AddUint32(&p.equal, 1)
+ return b[:n]
+ default:
+ atomic.AddUint32(&p.greater, 1)
+ if uint32(cap(b)) >= atomic.LoadUint32(sizePtr) {
+ select {
+ case pool <- b:
+ default:
+ }
+ }
+ }
+ default:
+ atomic.AddUint32(&p.miss, 1)
+ }
+
+ if size := atomic.LoadUint32(sizePtr); uint32(n) > size {
+ if size == 0 {
+ atomic.CompareAndSwapUint32(sizePtr, 0, uint32(n))
+ } else {
+ sizeMissPtr := &p.sizeMiss[poolNum-1]
+ if atomic.AddUint32(sizeMissPtr, 1) == 20 {
+ atomic.StoreUint32(sizePtr, uint32(n))
+ atomic.StoreUint32(sizeMissPtr, 0)
+ }
+ }
+ return make([]byte, n)
+ } else {
+ return make([]byte, n, size)
+ }
+ }
+}
+
+// Put adds given buffer to the pool.
+func (p *BufferPool) Put(b []byte) {
+ if p == nil {
+ return
+ }
+
+ p.mu.RLock()
+ defer p.mu.RUnlock()
+
+ if p.closed {
+ return
+ }
+
+ atomic.AddUint32(&p.put, 1)
+
+ pool := p.pool[p.poolNum(cap(b))]
+ select {
+ case pool <- b:
+ default:
+ }
+
+}
+
+func (p *BufferPool) Close() {
+ if p == nil {
+ return
+ }
+
+ p.mu.Lock()
+ if !p.closed {
+ p.closed = true
+ p.closeC <- struct{}{}
+ }
+ p.mu.Unlock()
+}
+
+func (p *BufferPool) String() string {
+ if p == nil {
+ return "<nil>"
+ }
+
+ return fmt.Sprintf("BufferPool{B·%d Z·%v Zm·%v Zh·%v G·%d P·%d H·%d <·%d =·%d >·%d M·%d}",
+ p.baseline0, p.size, p.sizeMiss, p.sizeHalf, p.get, p.put, p.half, p.less, p.equal, p.greater, p.miss)
+}
+
+func (p *BufferPool) drain() {
+ ticker := time.NewTicker(2 * time.Second)
+ defer ticker.Stop()
+ for {
+ select {
+ case <-ticker.C:
+ for _, ch := range p.pool {
+ select {
+ case <-ch:
+ default:
+ }
+ }
+ case <-p.closeC:
+ close(p.closeC)
+ for _, ch := range p.pool {
+ close(ch)
+ }
+ return
+ }
+ }
+}
+
+// NewBufferPool creates a new initialized 'buffer pool'.
+func NewBufferPool(baseline int) *BufferPool {
+ if baseline <= 0 {
+ panic("baseline can't be <= 0")
+ }
+ p := &BufferPool{
+ baseline0: baseline,
+ baseline: [...]int{baseline / 4, baseline / 2, baseline * 2, baseline * 4},
+ closeC: make(chan struct{}, 1),
+ }
+ for i, cap := range []int{2, 2, 4, 4, 2, 1} {
+ p.pool[i] = make(chan []byte, cap)
+ }
+ go p.drain()
+ return p
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go
new file mode 100644
index 000000000..631c9d610
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/crc32.go
@@ -0,0 +1,30 @@
+// Copyright 2011 The LevelDB-Go 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 util
+
+import (
+ "hash/crc32"
+)
+
+var table = crc32.MakeTable(crc32.Castagnoli)
+
+// CRC is a CRC-32 checksum computed using Castagnoli's polynomial.
+type CRC uint32
+
+// NewCRC creates a new crc based on the given bytes.
+func NewCRC(b []byte) CRC {
+ return CRC(0).Update(b)
+}
+
+// Update updates the crc with the given bytes.
+func (c CRC) Update(b []byte) CRC {
+ return CRC(crc32.Update(uint32(c), table, b))
+}
+
+// Value returns a masked crc.
+func (c CRC) Value() uint32 {
+ return uint32(c>>15|c<<17) + 0xa282ead8
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go
new file mode 100644
index 000000000..7f3fa4e2c
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/hash.go
@@ -0,0 +1,48 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package util
+
+import (
+ "encoding/binary"
+)
+
+// Hash return hash of the given data.
+func Hash(data []byte, seed uint32) uint32 {
+ // Similar to murmur hash
+ const (
+ m = uint32(0xc6a4a793)
+ r = uint32(24)
+ )
+ var (
+ h = seed ^ (uint32(len(data)) * m)
+ i int
+ )
+
+ for n := len(data) - len(data)%4; i < n; i += 4 {
+ h += binary.LittleEndian.Uint32(data[i:])
+ h *= m
+ h ^= (h >> 16)
+ }
+
+ switch len(data) - i {
+ default:
+ panic("not reached")
+ case 3:
+ h += uint32(data[i+2]) << 16
+ fallthrough
+ case 2:
+ h += uint32(data[i+1]) << 8
+ fallthrough
+ case 1:
+ h += uint32(data[i])
+ h *= m
+ h ^= (h >> r)
+ case 0:
+ }
+
+ return h
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go
new file mode 100644
index 000000000..85159583d
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/range.go
@@ -0,0 +1,32 @@
+// Copyright (c) 2014, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package util
+
+// Range is a key range.
+type Range struct {
+ // Start of the key range, include in the range.
+ Start []byte
+
+ // Limit of the key range, not include in the range.
+ Limit []byte
+}
+
+// BytesPrefix returns key range that satisfy the given prefix.
+// This only applicable for the standard 'bytes comparer'.
+func BytesPrefix(prefix []byte) *Range {
+ var limit []byte
+ for i := len(prefix) - 1; i >= 0; i-- {
+ c := prefix[i]
+ if c < 0xff {
+ limit = make([]byte, i+1)
+ copy(limit, prefix)
+ limit[i] = c + 1
+ break
+ }
+ }
+ return &Range{prefix, limit}
+}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go b/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go
new file mode 100644
index 000000000..f35976865
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/util/util.go
@@ -0,0 +1,73 @@
+// Copyright (c) 2013, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Package util provides utilities used throughout leveldb.
+package util
+
+import (
+ "errors"
+)
+
+var (
+ ErrReleased = errors.New("leveldb: resource already relesed")
+ ErrHasReleaser = errors.New("leveldb: releaser already defined")
+)
+
+// Releaser is the interface that wraps the basic Release method.
+type Releaser interface {
+ // Release releases associated resources. Release should always success
+ // and can be called multipe times without causing error.
+ Release()
+}
+
+// ReleaseSetter is the interface that wraps the basic SetReleaser method.
+type ReleaseSetter interface {
+ // SetReleaser associates the given releaser to the resources. The
+ // releaser will be called once coresponding resources released.
+ // Calling SetReleaser with nil will clear the releaser.
+ //
+ // This will panic if a releaser already present or coresponding
+ // resource is already released. Releaser should be cleared first
+ // before assigned a new one.
+ SetReleaser(releaser Releaser)
+}
+
+// BasicReleaser provides basic implementation of Releaser and ReleaseSetter.
+type BasicReleaser struct {
+ releaser Releaser
+ released bool
+}
+
+// Released returns whether Release method already called.
+func (r *BasicReleaser) Released() bool {
+ return r.released
+}
+
+// Release implements Releaser.Release.
+func (r *BasicReleaser) Release() {
+ if !r.released {
+ if r.releaser != nil {
+ r.releaser.Release()
+ r.releaser = nil
+ }
+ r.released = true
+ }
+}
+
+// SetReleaser implements ReleaseSetter.SetReleaser.
+func (r *BasicReleaser) SetReleaser(releaser Releaser) {
+ if r.released {
+ panic(ErrReleased)
+ }
+ if r.releaser != nil && releaser != nil {
+ panic(ErrHasReleaser)
+ }
+ r.releaser = releaser
+}
+
+type NoopReleaser struct{}
+
+func (NoopReleaser) Release() {}
diff --git a/vendor/github.com/syndtr/goleveldb/leveldb/version.go b/vendor/github.com/syndtr/goleveldb/leveldb/version.go
new file mode 100644
index 000000000..c60f12c20
--- /dev/null
+++ b/vendor/github.com/syndtr/goleveldb/leveldb/version.go
@@ -0,0 +1,524 @@
+// Copyright (c) 2012, Suryandaru Triandana <syndtr@gmail.com>
+// All rights reserved.
+//
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package leveldb
+
+import (
+ "fmt"
+ "sync/atomic"
+ "unsafe"
+
+ "github.com/syndtr/goleveldb/leveldb/iterator"
+ "github.com/syndtr/goleveldb/leveldb/opt"
+ "github.com/syndtr/goleveldb/leveldb/util"
+)
+
+type tSet struct {
+ level int
+ table *tFile
+}
+
+type version struct {
+ s *session
+
+ levels []tFiles
+
+ // Level that should be compacted next and its compaction score.
+ // Score < 1 means compaction is not strictly needed. These fields
+ // are initialized by computeCompaction()
+ cLevel int
+ cScore float64
+
+ cSeek unsafe.Pointer
+
+ closing bool
+ ref int
+ // Succeeding version.
+ next *version
+}
+
+func newVersion(s *session) *version {
+ return &version{s: s}
+}
+
+func (v *version) releaseNB() {
+ v.ref--
+ if v.ref > 0 {
+ return
+ }
+ if v.ref < 0 {
+ panic("negative version ref")
+ }
+
+ nextTables := make(map[int64]bool)
+ for _, tt := range v.next.levels {
+ for _, t := range tt {
+ num := t.fd.Num
+ nextTables[num] = true
+ }
+ }
+
+ for _, tt := range v.levels {
+ for _, t := range tt {
+ num := t.fd.Num
+ if _, ok := nextTables[num]; !ok {
+ v.s.tops.remove(t)
+ }
+ }
+ }
+
+ v.next.releaseNB()
+ v.next = nil
+}
+
+func (v *version) release() {
+ v.s.vmu.Lock()
+ v.releaseNB()
+ v.s.vmu.Unlock()
+}
+
+func (v *version) walkOverlapping(aux tFiles, ikey internalKey, f func(level int, t *tFile) bool, lf func(level int) bool) {
+ ukey := ikey.ukey()
+
+ // Aux level.
+ if aux != nil {
+ for _, t := range aux {
+ if t.overlaps(v.s.icmp, ukey, ukey) {
+ if !f(-1, t) {
+ return
+ }
+ }
+ }
+
+ if lf != nil && !lf(-1) {
+ return
+ }
+ }
+
+ // Walk tables level-by-level.
+ for level, tables := range v.levels {
+ if len(tables) == 0 {
+ continue
+ }
+
+ if level == 0 {
+ // Level-0 files may overlap each other. Find all files that
+ // overlap ukey.
+ for _, t := range tables {
+ if t.overlaps(v.s.icmp, ukey, ukey) {
+ if !f(level, t) {
+ return
+ }
+ }
+ }
+ } else {
+ if i := tables.searchMax(v.s.icmp, ikey); i < len(tables) {
+ t := tables[i]
+ if v.s.icmp.uCompare(ukey, t.imin.ukey()) >= 0 {
+ if !f(level, t) {
+ return
+ }
+ }
+ }
+ }
+
+ if lf != nil && !lf(level) {
+ return
+ }
+ }
+}
+
+func (v *version) get(aux tFiles, ikey internalKey, ro *opt.ReadOptions, noValue bool) (value []byte, tcomp bool, err error) {
+ if v.closing {
+ return nil, false, ErrClosed
+ }
+
+ ukey := ikey.ukey()
+
+ var (
+ tset *tSet
+ tseek bool
+
+ // Level-0.
+ zfound bool
+ zseq uint64
+ zkt keyType
+ zval []byte
+ )
+
+ err = ErrNotFound
+
+ // Since entries never hop across level, finding key/value
+ // in smaller level make later levels irrelevant.
+ v.walkOverlapping(aux, ikey, func(level int, t *tFile) bool {
+ if level >= 0 && !tseek {
+ if tset == nil {
+ tset = &tSet{level, t}
+ } else {
+ tseek = true
+ }
+ }
+
+ var (
+ fikey, fval []byte
+ ferr error
+ )
+ if noValue {
+ fikey, ferr = v.s.tops.findKey(t, ikey, ro)
+ } else {
+ fikey, fval, ferr = v.s.tops.find(t, ikey, ro)
+ }
+
+ switch ferr {
+ case nil:
+ case ErrNotFound:
+ return true
+ default:
+ err = ferr
+ return false
+ }
+
+ if fukey, fseq, fkt, fkerr := parseInternalKey(fikey); fkerr == nil {
+ if v.s.icmp.uCompare(ukey, fukey) == 0 {
+ // Level <= 0 may overlaps each-other.
+ if level <= 0 {
+ if fseq >= zseq {
+ zfound = true
+ zseq = fseq
+ zkt = fkt
+ zval = fval
+ }
+ } else {
+ switch fkt {
+ case keyTypeVal:
+ value = fval
+ err = nil
+ case keyTypeDel:
+ default:
+ panic("leveldb: invalid internalKey type")
+ }
+ return false
+ }
+ }
+ } else {
+ err = fkerr
+ return false
+ }
+
+ return true
+ }, func(level int) bool {
+ if zfound {
+ switch zkt {
+ case keyTypeVal:
+ value = zval
+ err = nil
+ case keyTypeDel:
+ default:
+ panic("leveldb: invalid internalKey type")
+ }
+ return false
+ }
+
+ return true
+ })
+
+ if tseek && tset.table.consumeSeek() <= 0 {
+ tcomp = atomic.CompareAndSwapPointer(&v.cSeek, nil, unsafe.Pointer(tset))
+ }
+
+ return
+}
+
+func (v *version) sampleSeek(ikey internalKey) (tcomp bool) {
+ var tset *tSet
+
+ v.walkOverlapping(nil, ikey, func(level int, t *tFile) bool {
+ if tset == nil {
+ tset = &tSet{level, t}
+ return true
+ }
+ if tset.table.consumeSeek() <= 0 {
+ tcomp = atomic.CompareAndSwapPointer(&v.cSeek, nil, unsafe.Pointer(tset))
+ }
+ return false
+ }, nil)
+
+ return
+}
+
+func (v *version) getIterators(slice *util.Range, ro *opt.ReadOptions) (its []iterator.Iterator) {
+ strict := opt.GetStrict(v.s.o.Options, ro, opt.StrictReader)
+ for level, tables := range v.levels {
+ if level == 0 {
+ // Merge all level zero files together since they may overlap.
+ for _, t := range tables {
+ its = append(its, v.s.tops.newIterator(t, slice, ro))
+ }
+ } else if len(tables) != 0 {
+ its = append(its, iterator.NewIndexedIterator(tables.newIndexIterator(v.s.tops, v.s.icmp, slice, ro), strict))
+ }
+ }
+ return
+}
+
+func (v *version) newStaging() *versionStaging {
+ return &versionStaging{base: v}
+}
+
+// Spawn a new version based on this version.
+func (v *version) spawn(r *sessionRecord) *version {
+ staging := v.newStaging()
+ staging.commit(r)
+ return staging.finish()
+}
+
+func (v *version) fillRecord(r *sessionRecord) {
+ for level, tables := range v.levels {
+ for _, t := range tables {
+ r.addTableFile(level, t)
+ }
+ }
+}
+
+func (v *version) tLen(level int) int {
+ if level < len(v.levels) {
+ return len(v.levels[level])
+ }
+ return 0
+}
+
+func (v *version) offsetOf(ikey internalKey) (n int64, err error) {
+ for level, tables := range v.levels {
+ for _, t := range tables {
+ if v.s.icmp.Compare(t.imax, ikey) <= 0 {
+ // Entire file is before "ikey", so just add the file size
+ n += t.size
+ } else if v.s.icmp.Compare(t.imin, ikey) > 0 {
+ // Entire file is after "ikey", so ignore
+ if level > 0 {
+ // Files other than level 0 are sorted by meta->min, so
+ // no further files in this level will contain data for
+ // "ikey".
+ break
+ }
+ } else {
+ // "ikey" falls in the range for this table. Add the
+ // approximate offset of "ikey" within the table.
+ if m, err := v.s.tops.offsetOf(t, ikey); err == nil {
+ n += m
+ } else {
+ return 0, err
+ }
+ }
+ }
+ }
+
+ return
+}
+
+func (v *version) pickMemdbLevel(umin, umax []byte, maxLevel int) (level int) {
+ if maxLevel > 0 {
+ if len(v.levels) == 0 {
+ return maxLevel
+ }
+ if !v.levels[0].overlaps(v.s.icmp, umin, umax, true) {
+ var overlaps tFiles
+ for ; level < maxLevel; level++ {
+ if pLevel := level + 1; pLevel >= len(v.levels) {
+ return maxLevel
+ } else if v.levels[pLevel].overlaps(v.s.icmp, umin, umax, false) {
+ break
+ }
+ if gpLevel := level + 2; gpLevel < len(v.levels) {
+ overlaps = v.levels[gpLevel].getOverlaps(overlaps, v.s.icmp, umin, umax, false)
+ if overlaps.size() > int64(v.s.o.GetCompactionGPOverlaps(level)) {
+ break
+ }
+ }
+ }
+ }
+ }
+ return
+}
+
+func (v *version) computeCompaction() {
+ // Precomputed best level for next compaction
+ bestLevel := int(-1)
+ bestScore := float64(-1)
+
+ statFiles := make([]int, len(v.levels))
+ statSizes := make([]string, len(v.levels))
+ statScore := make([]string, len(v.levels))
+ statTotSize := int64(0)
+
+ for level, tables := range v.levels {
+ var score float64
+ size := tables.size()
+ if level == 0 {
+ // We treat level-0 specially by bounding the number of files
+ // instead of number of bytes for two reasons:
+ //
+ // (1) With larger write-buffer sizes, it is nice not to do too
+ // many level-0 compaction.
+ //
+ // (2) The files in level-0 are merged on every read and
+ // therefore we wish to avoid too many files when the individual
+ // file size is small (perhaps because of a small write-buffer
+ // setting, or very high compression ratios, or lots of
+ // overwrites/deletions).
+ score = float64(len(tables)) / float64(v.s.o.GetCompactionL0Trigger())
+ } else {
+ score = float64(size) / float64(v.s.o.GetCompactionTotalSize(level))
+ }
+
+ if score > bestScore {
+ bestLevel = level
+ bestScore = score
+ }
+
+ statFiles[level] = len(tables)
+ statSizes[level] = shortenb(int(size))
+ statScore[level] = fmt.Sprintf("%.2f", score)
+ statTotSize += size
+ }
+
+ v.cLevel = bestLevel
+ v.cScore = bestScore
+
+ v.s.logf("version@stat F·%v S·%s%v Sc·%v", statFiles, shortenb(int(statTotSize)), statSizes, statScore)
+}
+
+func (v *version) needCompaction() bool {
+ return v.cScore >= 1 || atomic.LoadPointer(&v.cSeek) != nil
+}
+
+type tablesScratch struct {
+ added map[int64]atRecord
+ deleted map[int64]struct{}
+}
+
+type versionStaging struct {
+ base *version
+ levels []tablesScratch
+}
+
+func (p *versionStaging) getScratch(level int) *tablesScratch {
+ if level >= len(p.levels) {
+ newLevels := make([]tablesScratch, level+1)
+ copy(newLevels, p.levels)
+ p.levels = newLevels
+ }
+ return &(p.levels[level])
+}
+
+func (p *versionStaging) commit(r *sessionRecord) {
+ // Deleted tables.
+ for _, r := range r.deletedTables {
+ scratch := p.getScratch(r.level)
+ if r.level < len(p.base.levels) && len(p.base.levels[r.level]) > 0 {
+ if scratch.deleted == nil {
+ scratch.deleted = make(map[int64]struct{})
+ }
+ scratch.deleted[r.num] = struct{}{}
+ }
+ if scratch.added != nil {
+ delete(scratch.added, r.num)
+ }
+ }
+
+ // New tables.
+ for _, r := range r.addedTables {
+ scratch := p.getScratch(r.level)
+ if scratch.added == nil {
+ scratch.added = make(map[int64]atRecord)
+ }
+ scratch.added[r.num] = r
+ if scratch.deleted != nil {
+ delete(scratch.deleted, r.num)
+ }
+ }
+}
+
+func (p *versionStaging) finish() *version {
+ // Build new version.
+ nv := newVersion(p.base.s)
+ numLevel := len(p.levels)
+ if len(p.base.levels) > numLevel {
+ numLevel = len(p.base.levels)
+ }
+ nv.levels = make([]tFiles, numLevel)
+ for level := 0; level < numLevel; level++ {
+ var baseTabels tFiles
+ if level < len(p.base.levels) {
+ baseTabels = p.base.levels[level]
+ }
+
+ if level < len(p.levels) {
+ scratch := p.levels[level]
+
+ var nt tFiles
+ // Prealloc list if possible.
+ if n := len(baseTabels) + len(scratch.added) - len(scratch.deleted); n > 0 {
+ nt = make(tFiles, 0, n)
+ }
+
+ // Base tables.
+ for _, t := range baseTabels {
+ if _, ok := scratch.deleted[t.fd.Num]; ok {
+ continue
+ }
+ if _, ok := scratch.added[t.fd.Num]; ok {
+ continue
+ }
+ nt = append(nt, t)
+ }
+
+ // New tables.
+ for _, r := range scratch.added {
+ nt = append(nt, tableFileFromRecord(r))
+ }
+
+ if len(nt) != 0 {
+ // Sort tables.
+ if level == 0 {
+ nt.sortByNum()
+ } else {
+ nt.sortByKey(p.base.s.icmp)
+ }
+
+ nv.levels[level] = nt
+ }
+ } else {
+ nv.levels[level] = baseTabels
+ }
+ }
+
+ // Trim levels.
+ n := len(nv.levels)
+ for ; n > 0 && nv.levels[n-1] == nil; n-- {
+ }
+ nv.levels = nv.levels[:n]
+
+ // Compute compaction score for new version.
+ nv.computeCompaction()
+
+ return nv
+}
+
+type versionReleaser struct {
+ v *version
+ once bool
+}
+
+func (vr *versionReleaser) Release() {
+ v := vr.v
+ v.s.vmu.Lock()
+ if !vr.once {
+ v.releaseNB()
+ vr.once = true
+ }
+ v.s.vmu.Unlock()
+}
diff --git a/vendor/golang.org/x/crypto/.gitattributes b/vendor/golang.org/x/crypto/.gitattributes
new file mode 100644
index 000000000..d2f212e5d
--- /dev/null
+++ b/vendor/golang.org/x/crypto/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/vendor/golang.org/x/crypto/.gitignore b/vendor/golang.org/x/crypto/.gitignore
new file mode 100644
index 000000000..8339fd61d
--- /dev/null
+++ b/vendor/golang.org/x/crypto/.gitignore
@@ -0,0 +1,2 @@
+# Add no patterns to .hgignore except for files generated by the build.
+last-change
diff --git a/vendor/golang.org/x/crypto/AUTHORS b/vendor/golang.org/x/crypto/AUTHORS
new file mode 100644
index 000000000..15167cd74
--- /dev/null
+++ b/vendor/golang.org/x/crypto/AUTHORS
@@ -0,0 +1,3 @@
+# 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/crypto/CONTRIBUTING.md b/vendor/golang.org/x/crypto/CONTRIBUTING.md
new file mode 100644
index 000000000..88dff59bc
--- /dev/null
+++ b/vendor/golang.org/x/crypto/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# 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/crypto/CONTRIBUTORS b/vendor/golang.org/x/crypto/CONTRIBUTORS
new file mode 100644
index 000000000..1c4577e96
--- /dev/null
+++ b/vendor/golang.org/x/crypto/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# 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/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE
new file mode 100644
index 000000000..6a66aea5e
--- /dev/null
+++ b/vendor/golang.org/x/crypto/LICENSE
@@ -0,0 +1,27 @@
+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 000000000..733099041
--- /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/crypto/README b/vendor/golang.org/x/crypto/README
new file mode 100644
index 000000000..f1e0cbf94
--- /dev/null
+++ b/vendor/golang.org/x/crypto/README
@@ -0,0 +1,3 @@
+This repository holds supplementary Go cryptography libraries.
+
+To submit changes to this repository, see http://golang.org/doc/contribute.html.
diff --git a/vendor/golang.org/x/crypto/codereview.cfg b/vendor/golang.org/x/crypto/codereview.cfg
new file mode 100644
index 000000000..3f8b14b64
--- /dev/null
+++ b/vendor/golang.org/x/crypto/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go
new file mode 100644
index 000000000..593f65300
--- /dev/null
+++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go
@@ -0,0 +1,77 @@
+// 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 pbkdf2 implements the key derivation function PBKDF2 as defined in RFC
+2898 / PKCS #5 v2.0.
+
+A key derivation function is useful when encrypting data based on a password
+or any other not-fully-random data. It uses a pseudorandom function to derive
+a secure encryption key based on the password.
+
+While v2.0 of the standard defines only one pseudorandom function to use,
+HMAC-SHA1, the drafted v2.1 specification allows use of all five FIPS Approved
+Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To
+choose, you can pass the `New` functions from the different SHA packages to
+pbkdf2.Key.
+*/
+package pbkdf2 // import "golang.org/x/crypto/pbkdf2"
+
+import (
+ "crypto/hmac"
+ "hash"
+)
+
+// Key derives a key from the password, salt and iteration count, returning a
+// []byte of length keylen that can be used as cryptographic key. The key is
+// derived based on the method described as PBKDF2 with the HMAC variant using
+// the supplied hash function.
+//
+// For example, to use a HMAC-SHA-1 based PBKDF2 key derivation function, you
+// can get a derived key for e.g. AES-256 (which needs a 32-byte key) by
+// doing:
+//
+// dk := pbkdf2.Key([]byte("some password"), salt, 4096, 32, sha1.New)
+//
+// Remember to get a good random salt. At least 8 bytes is recommended by the
+// RFC.
+//
+// Using a higher iteration count will increase the cost of an exhaustive
+// search but will also make derivation proportionally slower.
+func Key(password, salt []byte, iter, keyLen int, h func() hash.Hash) []byte {
+ prf := hmac.New(h, password)
+ hashLen := prf.Size()
+ numBlocks := (keyLen + hashLen - 1) / hashLen
+
+ var buf [4]byte
+ dk := make([]byte, 0, numBlocks*hashLen)
+ U := make([]byte, hashLen)
+ for block := 1; block <= numBlocks; block++ {
+ // N.B.: || means concatenation, ^ means XOR
+ // for each block T_i = U_1 ^ U_2 ^ ... ^ U_iter
+ // U_1 = PRF(password, salt || uint(i))
+ prf.Reset()
+ prf.Write(salt)
+ buf[0] = byte(block >> 24)
+ buf[1] = byte(block >> 16)
+ buf[2] = byte(block >> 8)
+ buf[3] = byte(block)
+ prf.Write(buf[:4])
+ dk = prf.Sum(dk)
+ T := dk[len(dk)-hashLen:]
+ copy(U, T)
+
+ // U_n = PRF(password, U_(n-1))
+ for n := 2; n <= iter; n++ {
+ prf.Reset()
+ prf.Write(U)
+ U = U[:0]
+ U = prf.Sum(U)
+ for x := range U {
+ T[x] ^= U[x]
+ }
+ }
+ }
+ return dk[:keyLen]
+}
diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
new file mode 100644
index 000000000..6c6e84236
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160.go
@@ -0,0 +1,120 @@
+// 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 ripemd160 implements the RIPEMD-160 hash algorithm.
+package ripemd160 // import "golang.org/x/crypto/ripemd160"
+
+// RIPEMD-160 is designed by by Hans Dobbertin, Antoon Bosselaers, and Bart
+// Preneel with specifications available at:
+// http://homes.esat.kuleuven.be/~cosicart/pdf/AB-9601/AB-9601.pdf.
+
+import (
+ "crypto"
+ "hash"
+)
+
+func init() {
+ crypto.RegisterHash(crypto.RIPEMD160, New)
+}
+
+// The size of the checksum in bytes.
+const Size = 20
+
+// The block size of the hash algorithm in bytes.
+const BlockSize = 64
+
+const (
+ _s0 = 0x67452301
+ _s1 = 0xefcdab89
+ _s2 = 0x98badcfe
+ _s3 = 0x10325476
+ _s4 = 0xc3d2e1f0
+)
+
+// digest represents the partial evaluation of a checksum.
+type digest struct {
+ s [5]uint32 // running context
+ x [BlockSize]byte // temporary buffer
+ nx int // index into x
+ tc uint64 // total count of bytes processed
+}
+
+func (d *digest) Reset() {
+ d.s[0], d.s[1], d.s[2], d.s[3], d.s[4] = _s0, _s1, _s2, _s3, _s4
+ d.nx = 0
+ d.tc = 0
+}
+
+// New returns a new hash.Hash computing the checksum.
+func New() hash.Hash {
+ result := new(digest)
+ result.Reset()
+ return result
+}
+
+func (d *digest) Size() int { return Size }
+
+func (d *digest) BlockSize() int { return BlockSize }
+
+func (d *digest) Write(p []byte) (nn int, err error) {
+ nn = len(p)
+ d.tc += uint64(nn)
+ if d.nx > 0 {
+ n := len(p)
+ if n > BlockSize-d.nx {
+ n = BlockSize - d.nx
+ }
+ for i := 0; i < n; i++ {
+ d.x[d.nx+i] = p[i]
+ }
+ d.nx += n
+ if d.nx == BlockSize {
+ _Block(d, d.x[0:])
+ d.nx = 0
+ }
+ p = p[n:]
+ }
+ n := _Block(d, p)
+ p = p[n:]
+ if len(p) > 0 {
+ d.nx = copy(d.x[:], p)
+ }
+ return
+}
+
+func (d0 *digest) Sum(in []byte) []byte {
+ // Make a copy of d0 so that caller can keep writing and summing.
+ d := *d0
+
+ // Padding. Add a 1 bit and 0 bits until 56 bytes mod 64.
+ tc := d.tc
+ var tmp [64]byte
+ tmp[0] = 0x80
+ if tc%64 < 56 {
+ d.Write(tmp[0 : 56-tc%64])
+ } else {
+ d.Write(tmp[0 : 64+56-tc%64])
+ }
+
+ // Length in bits.
+ tc <<= 3
+ for i := uint(0); i < 8; i++ {
+ tmp[i] = byte(tc >> (8 * i))
+ }
+ d.Write(tmp[0:8])
+
+ if d.nx != 0 {
+ panic("d.nx != 0")
+ }
+
+ var digest [Size]byte
+ for i, s := range d.s {
+ digest[i*4] = byte(s)
+ digest[i*4+1] = byte(s >> 8)
+ digest[i*4+2] = byte(s >> 16)
+ digest[i*4+3] = byte(s >> 24)
+ }
+
+ return append(in, digest[:]...)
+}
diff --git a/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go
new file mode 100644
index 000000000..7bc8e6c48
--- /dev/null
+++ b/vendor/golang.org/x/crypto/ripemd160/ripemd160block.go
@@ -0,0 +1,161 @@
+// 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.
+
+// RIPEMD-160 block step.
+// In its own file so that a faster assembly or C version
+// can be substituted easily.
+
+package ripemd160
+
+// work buffer indices and roll amounts for one line
+var _n = [80]uint{
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,
+ 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,
+ 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,
+ 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13,
+}
+
+var _r = [80]uint{
+ 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,
+ 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,
+ 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,
+ 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,
+ 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6,
+}
+
+// same for the other parallel one
+var n_ = [80]uint{
+ 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,
+ 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,
+ 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,
+ 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,
+ 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11,
+}
+
+var r_ = [80]uint{
+ 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,
+ 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,
+ 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,
+ 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,
+ 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11,
+}
+
+func _Block(md *digest, p []byte) int {
+ n := 0
+ var x [16]uint32
+ var alpha, beta uint32
+ for len(p) >= BlockSize {
+ a, b, c, d, e := md.s[0], md.s[1], md.s[2], md.s[3], md.s[4]
+ aa, bb, cc, dd, ee := a, b, c, d, e
+ j := 0
+ for i := 0; i < 16; i++ {
+ x[i] = uint32(p[j]) | uint32(p[j+1])<<8 | uint32(p[j+2])<<16 | uint32(p[j+3])<<24
+ j += 4
+ }
+
+ // round 1
+ i := 0
+ for i < 16 {
+ alpha = a + (b ^ c ^ d) + x[_n[i]]
+ s := _r[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb ^ (cc | ^dd)) + x[n_[i]] + 0x50a28be6
+ s = r_[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 2
+ for i < 32 {
+ alpha = a + (b&c | ^b&d) + x[_n[i]] + 0x5a827999
+ s := _r[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb&dd | cc&^dd) + x[n_[i]] + 0x5c4dd124
+ s = r_[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 3
+ for i < 48 {
+ alpha = a + (b | ^c ^ d) + x[_n[i]] + 0x6ed9eba1
+ s := _r[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb | ^cc ^ dd) + x[n_[i]] + 0x6d703ef3
+ s = r_[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 4
+ for i < 64 {
+ alpha = a + (b&d | c&^d) + x[_n[i]] + 0x8f1bbcdc
+ s := _r[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb&cc | ^bb&dd) + x[n_[i]] + 0x7a6d76e9
+ s = r_[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // round 5
+ for i < 80 {
+ alpha = a + (b ^ (c | ^d)) + x[_n[i]] + 0xa953fd4e
+ s := _r[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + e
+ beta = c<<10 | c>>22
+ a, b, c, d, e = e, alpha, b, beta, d
+
+ // parallel line
+ alpha = aa + (bb ^ cc ^ dd) + x[n_[i]]
+ s = r_[i]
+ alpha = (alpha<<s | alpha>>(32-s)) + ee
+ beta = cc<<10 | cc>>22
+ aa, bb, cc, dd, ee = ee, alpha, bb, beta, dd
+
+ i++
+ }
+
+ // combine results
+ dd += c + md.s[1]
+ md.s[1] = md.s[2] + d + ee
+ md.s[2] = md.s[3] + e + aa
+ md.s[3] = md.s[4] + a + bb
+ md.s[4] = md.s[0] + b + cc
+ md.s[0] = dd
+
+ p = p[BlockSize:]
+ n += BlockSize
+ }
+ return n
+}
diff --git a/vendor/golang.org/x/crypto/scrypt/scrypt.go b/vendor/golang.org/x/crypto/scrypt/scrypt.go
new file mode 100644
index 000000000..7455395cf
--- /dev/null
+++ b/vendor/golang.org/x/crypto/scrypt/scrypt.go
@@ -0,0 +1,243 @@
+// 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 scrypt implements the scrypt key derivation function as defined in
+// Colin Percival's paper "Stronger Key Derivation via Sequential Memory-Hard
+// Functions" (http://www.tarsnap.com/scrypt/scrypt.pdf).
+package scrypt // import "golang.org/x/crypto/scrypt"
+
+import (
+ "crypto/sha256"
+ "errors"
+
+ "golang.org/x/crypto/pbkdf2"
+)
+
+const maxInt = int(^uint(0) >> 1)
+
+// blockCopy copies n numbers from src into dst.
+func blockCopy(dst, src []uint32, n int) {
+ copy(dst, src[:n])
+}
+
+// blockXOR XORs numbers from dst with n numbers from src.
+func blockXOR(dst, src []uint32, n int) {
+ for i, v := range src[:n] {
+ dst[i] ^= v
+ }
+}
+
+// salsaXOR applies Salsa20/8 to the XOR of 16 numbers from tmp and in,
+// and puts the result into both both tmp and out.
+func salsaXOR(tmp *[16]uint32, in, out []uint32) {
+ w0 := tmp[0] ^ in[0]
+ w1 := tmp[1] ^ in[1]
+ w2 := tmp[2] ^ in[2]
+ w3 := tmp[3] ^ in[3]
+ w4 := tmp[4] ^ in[4]
+ w5 := tmp[5] ^ in[5]
+ w6 := tmp[6] ^ in[6]
+ w7 := tmp[7] ^ in[7]
+ w8 := tmp[8] ^ in[8]
+ w9 := tmp[9] ^ in[9]
+ w10 := tmp[10] ^ in[10]
+ w11 := tmp[11] ^ in[11]
+ w12 := tmp[12] ^ in[12]
+ w13 := tmp[13] ^ in[13]
+ w14 := tmp[14] ^ in[14]
+ w15 := tmp[15] ^ in[15]
+
+ x0, x1, x2, x3, x4, x5, x6, x7, x8 := w0, w1, w2, w3, w4, w5, w6, w7, w8
+ x9, x10, x11, x12, x13, x14, x15 := w9, w10, w11, w12, w13, w14, w15
+
+ for i := 0; i < 8; i += 2 {
+ u := x0 + x12
+ x4 ^= u<<7 | u>>(32-7)
+ u = x4 + x0
+ x8 ^= u<<9 | u>>(32-9)
+ u = x8 + x4
+ x12 ^= u<<13 | u>>(32-13)
+ u = x12 + x8
+ x0 ^= u<<18 | u>>(32-18)
+
+ u = x5 + x1
+ x9 ^= u<<7 | u>>(32-7)
+ u = x9 + x5
+ x13 ^= u<<9 | u>>(32-9)
+ u = x13 + x9
+ x1 ^= u<<13 | u>>(32-13)
+ u = x1 + x13
+ x5 ^= u<<18 | u>>(32-18)
+
+ u = x10 + x6
+ x14 ^= u<<7 | u>>(32-7)
+ u = x14 + x10
+ x2 ^= u<<9 | u>>(32-9)
+ u = x2 + x14
+ x6 ^= u<<13 | u>>(32-13)
+ u = x6 + x2
+ x10 ^= u<<18 | u>>(32-18)
+
+ u = x15 + x11
+ x3 ^= u<<7 | u>>(32-7)
+ u = x3 + x15
+ x7 ^= u<<9 | u>>(32-9)
+ u = x7 + x3
+ x11 ^= u<<13 | u>>(32-13)
+ u = x11 + x7
+ x15 ^= u<<18 | u>>(32-18)
+
+ u = x0 + x3
+ x1 ^= u<<7 | u>>(32-7)
+ u = x1 + x0
+ x2 ^= u<<9 | u>>(32-9)
+ u = x2 + x1
+ x3 ^= u<<13 | u>>(32-13)
+ u = x3 + x2
+ x0 ^= u<<18 | u>>(32-18)
+
+ u = x5 + x4
+ x6 ^= u<<7 | u>>(32-7)
+ u = x6 + x5
+ x7 ^= u<<9 | u>>(32-9)
+ u = x7 + x6
+ x4 ^= u<<13 | u>>(32-13)
+ u = x4 + x7
+ x5 ^= u<<18 | u>>(32-18)
+
+ u = x10 + x9
+ x11 ^= u<<7 | u>>(32-7)
+ u = x11 + x10
+ x8 ^= u<<9 | u>>(32-9)
+ u = x8 + x11
+ x9 ^= u<<13 | u>>(32-13)
+ u = x9 + x8
+ x10 ^= u<<18 | u>>(32-18)
+
+ u = x15 + x14
+ x12 ^= u<<7 | u>>(32-7)
+ u = x12 + x15
+ x13 ^= u<<9 | u>>(32-9)
+ u = x13 + x12
+ x14 ^= u<<13 | u>>(32-13)
+ u = x14 + x13
+ x15 ^= u<<18 | u>>(32-18)
+ }
+ x0 += w0
+ x1 += w1
+ x2 += w2
+ x3 += w3
+ x4 += w4
+ x5 += w5
+ x6 += w6
+ x7 += w7
+ x8 += w8
+ x9 += w9
+ x10 += w10
+ x11 += w11
+ x12 += w12
+ x13 += w13
+ x14 += w14
+ x15 += w15
+
+ out[0], tmp[0] = x0, x0
+ out[1], tmp[1] = x1, x1
+ out[2], tmp[2] = x2, x2
+ out[3], tmp[3] = x3, x3
+ out[4], tmp[4] = x4, x4
+ out[5], tmp[5] = x5, x5
+ out[6], tmp[6] = x6, x6
+ out[7], tmp[7] = x7, x7
+ out[8], tmp[8] = x8, x8
+ out[9], tmp[9] = x9, x9
+ out[10], tmp[10] = x10, x10
+ out[11], tmp[11] = x11, x11
+ out[12], tmp[12] = x12, x12
+ out[13], tmp[13] = x13, x13
+ out[14], tmp[14] = x14, x14
+ out[15], tmp[15] = x15, x15
+}
+
+func blockMix(tmp *[16]uint32, in, out []uint32, r int) {
+ blockCopy(tmp[:], in[(2*r-1)*16:], 16)
+ for i := 0; i < 2*r; i += 2 {
+ salsaXOR(tmp, in[i*16:], out[i*8:])
+ salsaXOR(tmp, in[i*16+16:], out[i*8+r*16:])
+ }
+}
+
+func integer(b []uint32, r int) uint64 {
+ j := (2*r - 1) * 16
+ return uint64(b[j]) | uint64(b[j+1])<<32
+}
+
+func smix(b []byte, r, N int, v, xy []uint32) {
+ var tmp [16]uint32
+ x := xy
+ y := xy[32*r:]
+
+ j := 0
+ for i := 0; i < 32*r; i++ {
+ x[i] = uint32(b[j]) | uint32(b[j+1])<<8 | uint32(b[j+2])<<16 | uint32(b[j+3])<<24
+ j += 4
+ }
+ for i := 0; i < N; i += 2 {
+ blockCopy(v[i*(32*r):], x, 32*r)
+ blockMix(&tmp, x, y, r)
+
+ blockCopy(v[(i+1)*(32*r):], y, 32*r)
+ blockMix(&tmp, y, x, r)
+ }
+ for i := 0; i < N; i += 2 {
+ j := int(integer(x, r) & uint64(N-1))
+ blockXOR(x, v[j*(32*r):], 32*r)
+ blockMix(&tmp, x, y, r)
+
+ j = int(integer(y, r) & uint64(N-1))
+ blockXOR(y, v[j*(32*r):], 32*r)
+ blockMix(&tmp, y, x, r)
+ }
+ j = 0
+ for _, v := range x[:32*r] {
+ b[j+0] = byte(v >> 0)
+ b[j+1] = byte(v >> 8)
+ b[j+2] = byte(v >> 16)
+ b[j+3] = byte(v >> 24)
+ j += 4
+ }
+}
+
+// Key derives a key from the password, salt, and cost parameters, returning
+// a byte slice of length keyLen that can be used as cryptographic key.
+//
+// N is a CPU/memory cost parameter, which must be a power of two greater than 1.
+// r and p must satisfy r * p < 2³⁰. If the parameters do not satisfy the
+// limits, the function returns a nil byte slice and an error.
+//
+// For example, you can get a derived key for e.g. AES-256 (which needs a
+// 32-byte key) by doing:
+//
+// dk, err := scrypt.Key([]byte("some password"), salt, 16384, 8, 1, 32)
+//
+// The recommended parameters for interactive logins as of 2009 are N=16384,
+// r=8, p=1. They should be increased as memory latency and CPU parallelism
+// increases. Remember to get a good random salt.
+func Key(password, salt []byte, N, r, p, keyLen int) ([]byte, error) {
+ if N <= 1 || N&(N-1) != 0 {
+ return nil, errors.New("scrypt: N must be > 1 and a power of 2")
+ }
+ if uint64(r)*uint64(p) >= 1<<30 || r > maxInt/128/p || r > maxInt/256 || N > maxInt/128/r {
+ return nil, errors.New("scrypt: parameters are too large")
+ }
+
+ xy := make([]uint32, 64*r)
+ v := make([]uint32, 32*N*r)
+ b := pbkdf2.Key(password, salt, 1, p*128*r, sha256.New)
+
+ for i := 0; i < p; i++ {
+ smix(b[i*128*r:], r, N, v, xy)
+ }
+
+ return pbkdf2.Key(password, b, 1, keyLen, sha256.New), nil
+}
diff --git a/vendor/golang.org/x/net/.gitattributes b/vendor/golang.org/x/net/.gitattributes
new file mode 100644
index 000000000..d2f212e5d
--- /dev/null
+++ b/vendor/golang.org/x/net/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/vendor/golang.org/x/net/.gitignore b/vendor/golang.org/x/net/.gitignore
new file mode 100644
index 000000000..8339fd61d
--- /dev/null
+++ b/vendor/golang.org/x/net/.gitignore
@@ -0,0 +1,2 @@
+# Add no patterns to .hgignore except for files generated by the build.
+last-change
diff --git a/vendor/golang.org/x/net/AUTHORS b/vendor/golang.org/x/net/AUTHORS
new file mode 100644
index 000000000..15167cd74
--- /dev/null
+++ b/vendor/golang.org/x/net/AUTHORS
@@ -0,0 +1,3 @@
+# 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
new file mode 100644
index 000000000..88dff59bc
--- /dev/null
+++ b/vendor/golang.org/x/net/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# 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
new file mode 100644
index 000000000..1c4577e96
--- /dev/null
+++ b/vendor/golang.org/x/net/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# 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/LICENSE b/vendor/golang.org/x/net/LICENSE
new file mode 100644
index 000000000..6a66aea5e
--- /dev/null
+++ b/vendor/golang.org/x/net/LICENSE
@@ -0,0 +1,27 @@
+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/net/PATENTS b/vendor/golang.org/x/net/PATENTS
new file mode 100644
index 000000000..733099041
--- /dev/null
+++ b/vendor/golang.org/x/net/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/README b/vendor/golang.org/x/net/README
new file mode 100644
index 000000000..6b13d8e50
--- /dev/null
+++ b/vendor/golang.org/x/net/README
@@ -0,0 +1,3 @@
+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/codereview.cfg b/vendor/golang.org/x/net/codereview.cfg
new file mode 100644
index 000000000..3f8b14b64
--- /dev/null
+++ b/vendor/golang.org/x/net/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/vendor/golang.org/x/net/html/atom/atom.go b/vendor/golang.org/x/net/html/atom/atom.go
new file mode 100644
index 000000000..cd0a8ac15
--- /dev/null
+++ b/vendor/golang.org/x/net/html/atom/atom.go
@@ -0,0 +1,78 @@
+// 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
new file mode 100644
index 000000000..6bfa86601
--- /dev/null
+++ b/vendor/golang.org/x/net/html/atom/gen.go
@@ -0,0 +1,648 @@
+// 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<<k)
+ t.mask = 1<<k - 1
+ for _, s := range x {
+ if !t.insert(s) {
+ return false
+ }
+ }
+ return true
+}
+
+// insert inserts s in the table.
+func (t *table) insert(s string) bool {
+ h1, h2 := t.hash(s)
+ if t.tab[h1] == "" {
+ t.tab[h1] = s
+ return true
+ }
+ if t.tab[h2] == "" {
+ t.tab[h2] = s
+ return true
+ }
+ if t.push(h1, 0) {
+ t.tab[h1] = s
+ return true
+ }
+ if t.push(h2, 0) {
+ t.tab[h2] = s
+ return true
+ }
+ return false
+}
+
+// push attempts to push aside the entry in slot i.
+func (t *table) push(i uint32, depth int) bool {
+ if depth > 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
new file mode 100644
index 000000000..2605ba310
--- /dev/null
+++ b/vendor/golang.org/x/net/html/atom/table.go
@@ -0,0 +1,713 @@
+// 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
new file mode 100644
index 000000000..13bed1599
--- /dev/null
+++ b/vendor/golang.org/x/net/html/charset/charset.go
@@ -0,0 +1,257 @@
+// 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/const.go b/vendor/golang.org/x/net/html/const.go
new file mode 100644
index 000000000..52f651ff6
--- /dev/null
+++ b/vendor/golang.org/x/net/html/const.go
@@ -0,0 +1,102 @@
+// 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
new file mode 100644
index 000000000..94f496874
--- /dev/null
+++ b/vendor/golang.org/x/net/html/doc.go
@@ -0,0 +1,106 @@
+// 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 "&lt;") 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
new file mode 100644
index 000000000..c484e5a94
--- /dev/null
+++ b/vendor/golang.org/x/net/html/doctype.go
@@ -0,0 +1,156 @@
+// 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
new file mode 100644
index 000000000..a50c04c60
--- /dev/null
+++ b/vendor/golang.org/x/net/html/entity.go
@@ -0,0 +1,2253 @@
+// 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
new file mode 100644
index 000000000..d85613962
--- /dev/null
+++ b/vendor/golang.org/x/net/html/escape.go
@@ -0,0 +1,258 @@
+// 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 "&lt;" 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&lt;b" becomes "a<b".
+// attribute should be true if parsing an attribute value.
+func unescape(b []byte, attribute bool) []byte {
+ for i, c := range b {
+ if c == '&' {
+ dst, src := unescapeEntity(b, i, i, attribute)
+ for src < len(b) {
+ c := b[src]
+ if c == '&' {
+ dst, src = unescapeEntity(b, dst, src, attribute)
+ } else {
+ b[dst] = c
+ dst, src = dst+1, src+1
+ }
+ }
+ return b[0:dst]
+ }
+ }
+ return b
+}
+
+// lower lower-cases the A-Z bytes in b in-place, so that "aBc" becomes "abc".
+func lower(b []byte) []byte {
+ for i, c := range b {
+ if 'A' <= c && c <= 'Z' {
+ b[i] = c + 'a' - 'A'
+ }
+ }
+ return b
+}
+
+const escapedChars = "&'<>\"\r"
+
+func escape(w writer, s string) error {
+ i := strings.IndexAny(s, escapedChars)
+ for i != -1 {
+ if _, err := w.WriteString(s[:i]); err != nil {
+ return err
+ }
+ var esc string
+ switch s[i] {
+ case '&':
+ esc = "&amp;"
+ case '\'':
+ // "&#39;" is shorter than "&apos;" and apos was not in HTML until HTML5.
+ esc = "&#39;"
+ case '<':
+ esc = "&lt;"
+ case '>':
+ esc = "&gt;"
+ case '"':
+ // "&#34;" is shorter than "&quot;".
+ esc = "&#34;"
+ case '\r':
+ esc = "&#13;"
+ 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 "&lt;". 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 "&lt;" to become "<". It unescapes a
+// larger range of entities than EscapeString escapes. For example, "&aacute;"
+// unescapes to "á", as does "&#225;" 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
new file mode 100644
index 000000000..d3b384409
--- /dev/null
+++ b/vendor/golang.org/x/net/html/foreign.go
@@ -0,0 +1,226 @@
+// 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
new file mode 100644
index 000000000..26b657aec
--- /dev/null
+++ b/vendor/golang.org/x/net/html/node.go
@@ -0,0 +1,193 @@
+// 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<b" rather than "a&lt;b". For element nodes, DataAtom
+// is the atom for Data, or zero if Data is not a known tag name.
+//
+// An empty Namespace implies a "http://www.w3.org/1999/xhtml" namespace.
+// Similarly, "math" is short for "http://www.w3.org/1998/Math/MathML", and
+// "svg" is short for "http://www.w3.org/2000/svg".
+type Node struct {
+ Parent, FirstChild, LastChild, PrevSibling, NextSibling *Node
+
+ Type NodeType
+ DataAtom atom.Atom
+ Data string
+ Namespace string
+ Attr []Attribute
+}
+
+// InsertBefore inserts newChild as a child of n, immediately before oldChild
+// in the sequence of n's children. oldChild may be nil, in which case newChild
+// is appended to the end of n's children.
+//
+// It will panic if newChild already has a parent or siblings.
+func (n *Node) InsertBefore(newChild, oldChild *Node) {
+ if newChild.Parent != nil || newChild.PrevSibling != nil || newChild.NextSibling != nil {
+ panic("html: InsertBefore called for an attached child Node")
+ }
+ var prev, next *Node
+ if oldChild != nil {
+ prev, next = oldChild.PrevSibling, oldChild
+ } else {
+ prev = n.LastChild
+ }
+ if prev != nil {
+ prev.NextSibling = newChild
+ } else {
+ n.FirstChild = newChild
+ }
+ if next != nil {
+ next.PrevSibling = newChild
+ } else {
+ n.LastChild = newChild
+ }
+ newChild.Parent = n
+ newChild.PrevSibling = prev
+ newChild.NextSibling = next
+}
+
+// AppendChild adds a node c as a child of n.
+//
+// It will panic if c already has a parent or siblings.
+func (n *Node) AppendChild(c *Node) {
+ if c.Parent != nil || c.PrevSibling != nil || c.NextSibling != nil {
+ panic("html: AppendChild called for an attached child Node")
+ }
+ last := n.LastChild
+ if last != nil {
+ last.NextSibling = c
+ } else {
+ n.FirstChild = c
+ }
+ n.LastChild = c
+ c.Parent = n
+ c.PrevSibling = last
+}
+
+// RemoveChild removes a node c that is a child of n. Afterwards, c will have
+// no parent and no siblings.
+//
+// It will panic if c's parent is not n.
+func (n *Node) RemoveChild(c *Node) {
+ if c.Parent != n {
+ panic("html: RemoveChild called for a non-child Node")
+ }
+ if n.FirstChild == c {
+ n.FirstChild = c.NextSibling
+ }
+ if c.NextSibling != nil {
+ c.NextSibling.PrevSibling = c.PrevSibling
+ }
+ if n.LastChild == c {
+ n.LastChild = c.PrevSibling
+ }
+ if c.PrevSibling != nil {
+ c.PrevSibling.NextSibling = c.NextSibling
+ }
+ c.Parent = nil
+ c.PrevSibling = nil
+ c.NextSibling = nil
+}
+
+// reparentChildren reparents all of src's child nodes to dst.
+func reparentChildren(dst, src *Node) {
+ for {
+ child := src.FirstChild
+ if child == nil {
+ break
+ }
+ src.RemoveChild(child)
+ dst.AppendChild(child)
+ }
+}
+
+// clone returns a new node with the same type, data and attributes.
+// The clone has no parent, no siblings and no children.
+func (n *Node) clone() *Node {
+ m := &Node{
+ Type: n.Type,
+ DataAtom: n.DataAtom,
+ Data: n.Data,
+ Attr: make([]Attribute, len(n.Attr)),
+ }
+ copy(m.Attr, n.Attr)
+ return m
+}
+
+// nodeStack is a stack of nodes.
+type nodeStack []*Node
+
+// pop pops the stack. It will panic if s is empty.
+func (s *nodeStack) pop() *Node {
+ i := len(*s)
+ n := (*s)[i-1]
+ *s = (*s)[:i-1]
+ return n
+}
+
+// top returns the most recently pushed node, or nil if s is empty.
+func (s *nodeStack) top() *Node {
+ if i := len(*s); i > 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
new file mode 100644
index 000000000..be4b2bf5a
--- /dev/null
+++ b/vendor/golang.org/x/net/html/parse.go
@@ -0,0 +1,2094 @@
+// 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 <hr/> 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: <head> 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 <body> 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 <pre> 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 <textarea> block.
+ if d != "" && d[0] == '\r' {
+ d = d[1:]
+ }
+ if d != "" && d[0] == '\n' {
+ d = d[1:]
+ }
+ }
+ if d == "" {
+ return true
+ }
+ p.addText(d)
+ return true
+ case EndTagToken:
+ p.oe.pop()
+ }
+ p.im = p.originalIM
+ p.originalIM = nil
+ return p.tok.Type == EndTagToken
+}
+
+// Section 12.2.5.4.9.
+func inTableIM(p *parser) bool {
+ switch p.tok.Type {
+ case ErrorToken:
+ // Stop parsing.
+ return true
+ case TextToken:
+ p.tok.Data = strings.Replace(p.tok.Data, "\x00", "", -1)
+ switch p.oe.top().DataAtom {
+ case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+ if strings.Trim(p.tok.Data, whitespace) == "" {
+ p.addText(p.tok.Data)
+ return true
+ }
+ }
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Caption:
+ p.clearStackToContext(tableScope)
+ p.afe = append(p.afe, &scopeMarker)
+ p.addElement()
+ p.im = inCaptionIM
+ return true
+ case a.Colgroup:
+ p.clearStackToContext(tableScope)
+ p.addElement()
+ p.im = inColumnGroupIM
+ return true
+ case a.Col:
+ p.parseImpliedToken(StartTagToken, a.Colgroup, a.Colgroup.String())
+ return false
+ case a.Tbody, a.Tfoot, a.Thead:
+ p.clearStackToContext(tableScope)
+ p.addElement()
+ p.im = inTableBodyIM
+ return true
+ case a.Td, a.Th, a.Tr:
+ p.parseImpliedToken(StartTagToken, a.Tbody, a.Tbody.String())
+ return false
+ case a.Table:
+ if p.popUntil(tableScope, a.Table) {
+ p.resetInsertionMode()
+ return false
+ }
+ // Ignore the token.
+ return true
+ case a.Style, a.Script:
+ return inHeadIM(p)
+ case a.Input:
+ for _, t := range p.tok.Attr {
+ if t.Key == "type" && strings.ToLower(t.Val) == "hidden" {
+ p.addElement()
+ p.oe.pop()
+ return true
+ }
+ }
+ // Otherwise drop down to the default action.
+ case a.Form:
+ if p.form != nil {
+ // Ignore the token.
+ return true
+ }
+ p.addElement()
+ p.form = p.oe.pop()
+ case a.Select:
+ p.reconstructActiveFormattingElements()
+ switch p.top().DataAtom {
+ case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+ p.fosterParenting = true
+ }
+ p.addElement()
+ p.fosterParenting = false
+ p.framesetOK = false
+ p.im = inSelectInTableIM
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Table:
+ if p.popUntil(tableScope, a.Table) {
+ p.resetInsertionMode()
+ return true
+ }
+ // Ignore the token.
+ return true
+ case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+ // 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.fosterParenting = true
+ defer func() { p.fosterParenting = false }()
+
+ return inBodyIM(p)
+}
+
+// Section 12.2.5.4.11.
+func inCaptionIM(p *parser) bool {
+ switch p.tok.Type {
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Thead, a.Tr:
+ if p.popUntil(tableScope, a.Caption) {
+ p.clearActiveFormattingElements()
+ p.im = inTableIM
+ return false
+ } else {
+ // Ignore the token.
+ return true
+ }
+ case a.Select:
+ p.reconstructActiveFormattingElements()
+ p.addElement()
+ p.framesetOK = false
+ p.im = inSelectInTableIM
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Caption:
+ if p.popUntil(tableScope, a.Caption) {
+ p.clearActiveFormattingElements()
+ p.im = inTableIM
+ }
+ return true
+ case a.Table:
+ if p.popUntil(tableScope, a.Caption) {
+ p.clearActiveFormattingElements()
+ p.im = inTableIM
+ return false
+ } else {
+ // Ignore the token.
+ return true
+ }
+ case a.Body, a.Col, a.Colgroup, a.Html, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+ // Ignore the token.
+ return true
+ }
+ }
+ return inBodyIM(p)
+}
+
+// Section 12.2.5.4.12.
+func inColumnGroupIM(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 CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ return true
+ case DoctypeToken:
+ // Ignore the token.
+ return true
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ return inBodyIM(p)
+ case a.Col:
+ p.addElement()
+ p.oe.pop()
+ p.acknowledgeSelfClosingTag()
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Colgroup:
+ if p.oe.top().DataAtom != a.Html {
+ p.oe.pop()
+ p.im = inTableIM
+ }
+ return true
+ case a.Col:
+ // Ignore the token.
+ return true
+ }
+ }
+ if p.oe.top().DataAtom != a.Html {
+ p.oe.pop()
+ p.im = inTableIM
+ return false
+ }
+ return true
+}
+
+// Section 12.2.5.4.13.
+func inTableBodyIM(p *parser) bool {
+ switch p.tok.Type {
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Tr:
+ p.clearStackToContext(tableBodyScope)
+ p.addElement()
+ p.im = inRowIM
+ return true
+ case a.Td, a.Th:
+ p.parseImpliedToken(StartTagToken, a.Tr, a.Tr.String())
+ return false
+ case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead:
+ if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
+ p.im = inTableIM
+ return false
+ }
+ // Ignore the token.
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Tbody, a.Tfoot, a.Thead:
+ if p.elementInScope(tableScope, p.tok.DataAtom) {
+ p.clearStackToContext(tableBodyScope)
+ p.oe.pop()
+ p.im = inTableIM
+ }
+ return true
+ case a.Table:
+ if p.popUntil(tableScope, a.Tbody, a.Thead, a.Tfoot) {
+ p.im = inTableIM
+ return false
+ }
+ // Ignore the token.
+ return true
+ case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th, a.Tr:
+ // Ignore the token.
+ return true
+ }
+ case CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ return true
+ }
+
+ return inTableIM(p)
+}
+
+// Section 12.2.5.4.14.
+func inRowIM(p *parser) bool {
+ switch p.tok.Type {
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Td, a.Th:
+ p.clearStackToContext(tableRowScope)
+ p.addElement()
+ p.afe = append(p.afe, &scopeMarker)
+ p.im = inCellIM
+ return true
+ case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+ if p.popUntil(tableScope, a.Tr) {
+ p.im = inTableBodyIM
+ return false
+ }
+ // Ignore the token.
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Tr:
+ if p.popUntil(tableScope, a.Tr) {
+ p.im = inTableBodyIM
+ return true
+ }
+ // Ignore the token.
+ return true
+ case a.Table:
+ if p.popUntil(tableScope, a.Tr) {
+ p.im = inTableBodyIM
+ return false
+ }
+ // Ignore the token.
+ return true
+ case a.Tbody, a.Tfoot, a.Thead:
+ if p.elementInScope(tableScope, p.tok.DataAtom) {
+ p.parseImpliedToken(EndTagToken, a.Tr, a.Tr.String())
+ return false
+ }
+ // Ignore the token.
+ return true
+ case a.Body, a.Caption, a.Col, a.Colgroup, a.Html, a.Td, a.Th:
+ // Ignore the token.
+ return true
+ }
+ }
+
+ return inTableIM(p)
+}
+
+// Section 12.2.5.4.15.
+func inCellIM(p *parser) bool {
+ switch p.tok.Type {
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Caption, a.Col, a.Colgroup, a.Tbody, a.Td, a.Tfoot, a.Th, a.Thead, a.Tr:
+ if p.popUntil(tableScope, a.Td, a.Th) {
+ // Close the cell and reprocess.
+ p.clearActiveFormattingElements()
+ p.im = inRowIM
+ return false
+ }
+ // Ignore the token.
+ return true
+ case a.Select:
+ p.reconstructActiveFormattingElements()
+ p.addElement()
+ p.framesetOK = false
+ p.im = inSelectInTableIM
+ return true
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Td, a.Th:
+ if !p.popUntil(tableScope, p.tok.DataAtom) {
+ // Ignore the token.
+ return true
+ }
+ p.clearActiveFormattingElements()
+ p.im = inRowIM
+ return true
+ case a.Body, a.Caption, a.Col, a.Colgroup, a.Html:
+ // Ignore the token.
+ return true
+ case a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr:
+ if !p.elementInScope(tableScope, p.tok.DataAtom) {
+ // Ignore the token.
+ return true
+ }
+ // Close the cell and reprocess.
+ p.popUntil(tableScope, a.Td, a.Th)
+ p.clearActiveFormattingElements()
+ p.im = inRowIM
+ return false
+ }
+ }
+ return inBodyIM(p)
+}
+
+// Section 12.2.5.4.16.
+func inSelectIM(p *parser) bool {
+ switch p.tok.Type {
+ case ErrorToken:
+ // Stop parsing.
+ return true
+ case TextToken:
+ p.addText(strings.Replace(p.tok.Data, "\x00", "", -1))
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ return inBodyIM(p)
+ case a.Option:
+ if p.top().DataAtom == a.Option {
+ p.oe.pop()
+ }
+ p.addElement()
+ case a.Optgroup:
+ if p.top().DataAtom == a.Option {
+ p.oe.pop()
+ }
+ if p.top().DataAtom == a.Optgroup {
+ p.oe.pop()
+ }
+ p.addElement()
+ case a.Select:
+ p.tok.Type = EndTagToken
+ return false
+ case a.Input, a.Keygen, a.Textarea:
+ if p.elementInScope(selectScope, a.Select) {
+ p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
+ return false
+ }
+ // In order to properly ignore <textarea>, we need to change the tokenizer mode.
+ p.tokenizer.NextIsNotRawText()
+ // Ignore the token.
+ return true
+ case a.Script:
+ return inHeadIM(p)
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Option:
+ if p.top().DataAtom == a.Option {
+ p.oe.pop()
+ }
+ case a.Optgroup:
+ i := len(p.oe) - 1
+ if p.oe[i].DataAtom == a.Option {
+ i--
+ }
+ if p.oe[i].DataAtom == a.Optgroup {
+ p.oe = p.oe[:i]
+ }
+ case a.Select:
+ if p.popUntil(selectScope, a.Select) {
+ p.resetInsertionMode()
+ }
+ }
+ case CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ case DoctypeToken:
+ // Ignore the token.
+ return true
+ }
+
+ return true
+}
+
+// Section 12.2.5.4.17.
+func inSelectInTableIM(p *parser) bool {
+ switch p.tok.Type {
+ case StartTagToken, EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Caption, a.Table, a.Tbody, a.Tfoot, a.Thead, a.Tr, a.Td, a.Th:
+ if p.tok.Type == StartTagToken || p.elementInScope(tableScope, p.tok.DataAtom) {
+ p.parseImpliedToken(EndTagToken, a.Select, a.Select.String())
+ return false
+ } else {
+ // Ignore the token.
+ return true
+ }
+ }
+ }
+ return inSelectIM(p)
+}
+
+// Section 12.2.5.4.18.
+func afterBodyIM(p *parser) bool {
+ switch p.tok.Type {
+ case ErrorToken:
+ // Stop parsing.
+ return true
+ case TextToken:
+ s := strings.TrimLeft(p.tok.Data, whitespace)
+ if len(s) == 0 {
+ // It was all whitespace.
+ return inBodyIM(p)
+ }
+ case StartTagToken:
+ if p.tok.DataAtom == a.Html {
+ return inBodyIM(p)
+ }
+ case EndTagToken:
+ if p.tok.DataAtom == a.Html {
+ if !p.fragment {
+ p.im = afterAfterBodyIM
+ }
+ return true
+ }
+ case CommentToken:
+ // The comment is attached to the <html> element.
+ if len(p.oe) < 1 || p.oe[0].DataAtom != a.Html {
+ panic("html: bad parser state: <html> element not found, in the after-body insertion mode")
+ }
+ p.oe[0].AppendChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ return true
+ }
+ p.im = inBodyIM
+ return false
+}
+
+// Section 12.2.5.4.19.
+func inFramesetIM(p *parser) bool {
+ switch p.tok.Type {
+ case CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ case TextToken:
+ // Ignore all text but whitespace.
+ s := strings.Map(func(c rune) rune {
+ switch c {
+ case ' ', '\t', '\n', '\f', '\r':
+ return c
+ }
+ return -1
+ }, p.tok.Data)
+ if s != "" {
+ p.addText(s)
+ }
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ return inBodyIM(p)
+ case a.Frameset:
+ p.addElement()
+ case a.Frame:
+ p.addElement()
+ p.oe.pop()
+ p.acknowledgeSelfClosingTag()
+ case a.Noframes:
+ return inHeadIM(p)
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Frameset:
+ if p.oe.top().DataAtom != a.Html {
+ p.oe.pop()
+ if p.oe.top().DataAtom != a.Frameset {
+ p.im = afterFramesetIM
+ return true
+ }
+ }
+ }
+ default:
+ // Ignore the token.
+ }
+ return true
+}
+
+// Section 12.2.5.4.20.
+func afterFramesetIM(p *parser) bool {
+ switch p.tok.Type {
+ case CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ case TextToken:
+ // Ignore all text but whitespace.
+ s := strings.Map(func(c rune) rune {
+ switch c {
+ case ' ', '\t', '\n', '\f', '\r':
+ return c
+ }
+ return -1
+ }, p.tok.Data)
+ if s != "" {
+ p.addText(s)
+ }
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ return inBodyIM(p)
+ case a.Noframes:
+ return inHeadIM(p)
+ }
+ case EndTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ p.im = afterAfterFramesetIM
+ return true
+ }
+ default:
+ // Ignore the token.
+ }
+ return true
+}
+
+// Section 12.2.5.4.21.
+func afterAfterBodyIM(p *parser) bool {
+ switch p.tok.Type {
+ case ErrorToken:
+ // Stop parsing.
+ return true
+ case TextToken:
+ s := strings.TrimLeft(p.tok.Data, whitespace)
+ if len(s) == 0 {
+ // It was all whitespace.
+ return inBodyIM(p)
+ }
+ case StartTagToken:
+ if p.tok.DataAtom == a.Html {
+ return inBodyIM(p)
+ }
+ case CommentToken:
+ p.doc.AppendChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ return true
+ case DoctypeToken:
+ return inBodyIM(p)
+ }
+ p.im = inBodyIM
+ return false
+}
+
+// Section 12.2.5.4.22.
+func afterAfterFramesetIM(p *parser) bool {
+ switch p.tok.Type {
+ case CommentToken:
+ p.doc.AppendChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ case TextToken:
+ // Ignore all text but whitespace.
+ s := strings.Map(func(c rune) rune {
+ switch c {
+ case ' ', '\t', '\n', '\f', '\r':
+ return c
+ }
+ return -1
+ }, p.tok.Data)
+ if s != "" {
+ p.tok.Data = s
+ return inBodyIM(p)
+ }
+ case StartTagToken:
+ switch p.tok.DataAtom {
+ case a.Html:
+ return inBodyIM(p)
+ case a.Noframes:
+ return inHeadIM(p)
+ }
+ case DoctypeToken:
+ return inBodyIM(p)
+ default:
+ // Ignore the token.
+ }
+ return true
+}
+
+const whitespaceOrNUL = whitespace + "\x00"
+
+// Section 12.2.5.5.
+func parseForeignContent(p *parser) bool {
+ switch p.tok.Type {
+ case TextToken:
+ if p.framesetOK {
+ p.framesetOK = strings.TrimLeft(p.tok.Data, whitespaceOrNUL) == ""
+ }
+ p.tok.Data = strings.Replace(p.tok.Data, "\x00", "\ufffd", -1)
+ p.addText(p.tok.Data)
+ case CommentToken:
+ p.addChild(&Node{
+ Type: CommentNode,
+ Data: p.tok.Data,
+ })
+ case StartTagToken:
+ b := breakout[p.tok.Data]
+ if p.tok.DataAtom == a.Font {
+ loop:
+ for _, attr := range p.tok.Attr {
+ switch attr.Key {
+ case "color", "face", "size":
+ b = true
+ break loop
+ }
+ }
+ }
+ if b {
+ for i := len(p.oe) - 1; i >= 0; i-- {
+ n := p.oe[i]
+ if n.Namespace == "" || htmlIntegrationPoint(n) || mathMLTextIntegrationPoint(n) {
+ p.oe = p.oe[:i+1]
+ break
+ }
+ }
+ return false
+ }
+ switch p.top().Namespace {
+ case "math":
+ adjustAttributeNames(p.tok.Attr, mathMLAttributeAdjustments)
+ case "svg":
+ // Adjust SVG tag names. The tokenizer lower-cases tag names, but
+ // SVG wants e.g. "foreignObject" with a capital second "O".
+ if x := svgTagNameAdjustments[p.tok.Data]; x != "" {
+ p.tok.DataAtom = a.Lookup([]byte(x))
+ p.tok.Data = x
+ }
+ adjustAttributeNames(p.tok.Attr, svgAttributeAdjustments)
+ default:
+ panic("html: bad parser state: unexpected namespace")
+ }
+ adjustForeignAttributes(p.tok.Attr)
+ namespace := p.top().Namespace
+ p.addElement()
+ p.top().Namespace = namespace
+ if namespace != "" {
+ // Don't let the tokenizer go into raw text mode in foreign content
+ // (e.g. in an SVG <title> tag).
+ p.tokenizer.NextIsNotRawText()
+ }
+ if p.hasSelfClosingToken {
+ p.oe.pop()
+ p.acknowledgeSelfClosingTag()
+ }
+ case EndTagToken:
+ for i := len(p.oe) - 1; i >= 0; i-- {
+ if p.oe[i].Namespace == "" {
+ return p.im(p)
+ }
+ if strings.EqualFold(p.oe[i].Data, p.tok.Data) {
+ p.oe = p.oe[:i]
+ break
+ }
+ }
+ return true
+ default:
+ // Ignore the token.
+ }
+ return true
+}
+
+// Section 12.2.5.
+func (p *parser) inForeignContent() bool {
+ if len(p.oe) == 0 {
+ return false
+ }
+ n := p.oe[len(p.oe)-1]
+ if n.Namespace == "" {
+ return false
+ }
+ if mathMLTextIntegrationPoint(n) {
+ if p.tok.Type == StartTagToken && p.tok.DataAtom != a.Mglyph && p.tok.DataAtom != a.Malignmark {
+ return false
+ }
+ if p.tok.Type == TextToken {
+ return false
+ }
+ }
+ if n.Namespace == "math" && n.DataAtom == a.AnnotationXml && p.tok.Type == StartTagToken && p.tok.DataAtom == a.Svg {
+ return false
+ }
+ if htmlIntegrationPoint(n) && (p.tok.Type == StartTagToken || p.tok.Type == TextToken) {
+ return false
+ }
+ if p.tok.Type == ErrorToken {
+ return false
+ }
+ return true
+}
+
+// parseImpliedToken parses a token as though it had appeared in the parser's
+// input.
+func (p *parser) parseImpliedToken(t TokenType, dataAtom a.Atom, data string) {
+ realToken, selfClosing := p.tok, p.hasSelfClosingToken
+ p.tok = Token{
+ Type: t,
+ DataAtom: dataAtom,
+ Data: data,
+ }
+ p.hasSelfClosingToken = false
+ p.parseCurrentToken()
+ p.tok, p.hasSelfClosingToken = realToken, selfClosing
+}
+
+// parseCurrentToken runs the current token through the parsing routines
+// until it is consumed.
+func (p *parser) parseCurrentToken() {
+ if p.tok.Type == SelfClosingTagToken {
+ p.hasSelfClosingToken = true
+ p.tok.Type = StartTagToken
+ }
+
+ consumed := false
+ for !consumed {
+ if p.inForeignContent() {
+ consumed = parseForeignContent(p)
+ } else {
+ consumed = p.im(p)
+ }
+ }
+
+ if p.hasSelfClosingToken {
+ // This is a parse error, but ignore it.
+ p.hasSelfClosingToken = false
+ }
+}
+
+func (p *parser) parse() error {
+ // Iterate until EOF. Any other error will cause an early return.
+ var err error
+ for err != io.EOF {
+ // CDATA sections are allowed only in foreign content.
+ n := p.oe.top()
+ p.tokenizer.AllowCDATA(n != nil && n.Namespace != "")
+ // Read and parse the next token.
+ p.tokenizer.Next()
+ p.tok = p.tokenizer.Token()
+ if p.tok.Type == ErrorToken {
+ err = p.tokenizer.Err()
+ if err != nil && err != io.EOF {
+ return err
+ }
+ }
+ p.parseCurrentToken()
+ }
+ return nil
+}
+
+// Parse returns the parse tree for the HTML from the given Reader.
+// The input is assumed to be UTF-8 encoded.
+func Parse(r io.Reader) (*Node, error) {
+ p := &parser{
+ tokenizer: NewTokenizer(r),
+ doc: &Node{
+ Type: DocumentNode,
+ },
+ scripting: true,
+ framesetOK: true,
+ im: initialIM,
+ }
+ err := p.parse()
+ if err != nil {
+ return nil, err
+ }
+ return p.doc, nil
+}
+
+// ParseFragment parses a fragment of HTML and returns the nodes that were
+// found. If the fragment is the InnerHTML for an existing element, pass that
+// element in context.
+func ParseFragment(r io.Reader, context *Node) ([]*Node, error) {
+ contextTag := ""
+ if context != nil {
+ if context.Type != ElementNode {
+ return nil, errors.New("html: ParseFragment of non-element Node")
+ }
+ // The next check isn't just context.DataAtom.String() == context.Data because
+ // it is valid to pass an element whose tag isn't a known atom. For example,
+ // DataAtom == 0 and Data = "tagfromthefuture" is perfectly consistent.
+ if context.DataAtom != a.Lookup([]byte(context.Data)) {
+ return nil, fmt.Errorf("html: inconsistent Node: DataAtom=%q, Data=%q", context.DataAtom, context.Data)
+ }
+ contextTag = context.DataAtom.String()
+ }
+ p := &parser{
+ tokenizer: NewTokenizerFragment(r, contextTag),
+ doc: &Node{
+ Type: DocumentNode,
+ },
+ scripting: true,
+ fragment: true,
+ context: context,
+ }
+
+ root := &Node{
+ Type: ElementNode,
+ DataAtom: a.Html,
+ Data: a.Html.String(),
+ }
+ p.doc.AppendChild(root)
+ p.oe = nodeStack{root}
+ p.resetInsertionMode()
+
+ for n := context; n != nil; n = n.Parent {
+ if n.Type == ElementNode && n.DataAtom == a.Form {
+ p.form = n
+ break
+ }
+ }
+
+ err := p.parse()
+ if err != nil {
+ return nil, err
+ }
+
+ parent := p.doc
+ if context != nil {
+ parent = root
+ }
+
+ var result []*Node
+ for c := parent.FirstChild; c != nil; {
+ next := c.NextSibling
+ parent.RemoveChild(c)
+ result = append(result, c)
+ c = next
+ }
+ return result, nil
+}
diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go
new file mode 100644
index 000000000..d34564f49
--- /dev/null
+++ b/vendor/golang.org/x/net/html/render.go
@@ -0,0 +1,271 @@
+// 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 (
+ "bufio"
+ "errors"
+ "fmt"
+ "io"
+ "strings"
+)
+
+type writer interface {
+ io.Writer
+ io.ByteWriter
+ WriteString(string) (int, error)
+}
+
+// Render renders the parse tree n to the given writer.
+//
+// Rendering is done on a 'best effort' basis: calling Parse on the output of
+// Render will always result in something similar to the original tree, but it
+// is not necessarily an exact clone unless the original tree was 'well-formed'.
+// 'Well-formed' is not easily specified; the HTML5 specification is
+// complicated.
+//
+// Calling Parse on arbitrary input typically results in a 'well-formed' parse
+// tree. However, it is possible for Parse to yield a 'badly-formed' parse tree.
+// For example, in a 'well-formed' parse tree, no <a> element is a child of
+// another <a> element: parsing "<a><a>" results in two sibling elements.
+// Similarly, in a 'well-formed' parse tree, no <a> element is a child of a
+// <table> element: parsing "<p><table><a>" results in a <p> with two sibling
+// children; the <a> is reparented to the <table>'s parent. However, calling
+// Parse on "<a><table><a>" does not return an error, but the result has an <a>
+// element with an <a> child, and is therefore not 'well-formed'.
+//
+// Programmatically constructed trees are typically also 'well-formed', but it
+// is possible to construct a tree that looks innocuous but, when rendered and
+// re-parsed, results in a different tree. A simple example is that a solitary
+// text node would become a tree containing <html>, <head> and <body> elements.
+// Another example is that the programmatic equivalent of "a<head>b</head>c"
+// becomes "<html><head><head/><body>abc</body></html>".
+func Render(w io.Writer, n *Node) error {
+ if x, ok := w.(writer); ok {
+ return render(x, n)
+ }
+ buf := bufio.NewWriter(w)
+ if err := render(buf, n); err != nil {
+ return err
+ }
+ return buf.Flush()
+}
+
+// plaintextAbort is returned from render1 when a <plaintext> element
+// has been rendered. No more end tags should be rendered after that.
+var plaintextAbort = errors.New("html: internal error (plaintext abort)")
+
+func render(w writer, n *Node) error {
+ err := render1(w, n)
+ if err == plaintextAbort {
+ err = nil
+ }
+ return err
+}
+
+func render1(w writer, n *Node) error {
+ // Render non-element nodes; these are the easy cases.
+ switch n.Type {
+ case ErrorNode:
+ return errors.New("html: cannot render an ErrorNode node")
+ case TextNode:
+ return escape(w, n.Data)
+ case DocumentNode:
+ for c := n.FirstChild; c != nil; c = c.NextSibling {
+ if err := render1(w, c); err != nil {
+ return err
+ }
+ }
+ return nil
+ case ElementNode:
+ // No-op.
+ case CommentNode:
+ if _, err := w.WriteString("<!--"); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(n.Data); err != nil {
+ return err
+ }
+ if _, err := w.WriteString("-->"); err != nil {
+ return err
+ }
+ return nil
+ case DoctypeNode:
+ if _, err := w.WriteString("<!DOCTYPE "); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(n.Data); err != nil {
+ return err
+ }
+ if n.Attr != nil {
+ var p, s string
+ for _, a := range n.Attr {
+ switch a.Key {
+ case "public":
+ p = a.Val
+ case "system":
+ s = a.Val
+ }
+ }
+ if p != "" {
+ if _, err := w.WriteString(" PUBLIC "); err != nil {
+ return err
+ }
+ if err := writeQuoted(w, p); err != nil {
+ return err
+ }
+ if s != "" {
+ if err := w.WriteByte(' '); err != nil {
+ return err
+ }
+ if err := writeQuoted(w, s); err != nil {
+ return err
+ }
+ }
+ } else if s != "" {
+ if _, err := w.WriteString(" SYSTEM "); err != nil {
+ return err
+ }
+ if err := writeQuoted(w, s); err != nil {
+ return err
+ }
+ }
+ }
+ return w.WriteByte('>')
+ default:
+ return errors.New("html: unknown node type")
+ }
+
+ // Render the <xxx> opening tag.
+ if err := w.WriteByte('<'); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(n.Data); err != nil {
+ return err
+ }
+ for _, a := range n.Attr {
+ if err := w.WriteByte(' '); err != nil {
+ return err
+ }
+ if a.Namespace != "" {
+ if _, err := w.WriteString(a.Namespace); err != nil {
+ return err
+ }
+ if err := w.WriteByte(':'); err != nil {
+ return err
+ }
+ }
+ if _, err := w.WriteString(a.Key); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(`="`); err != nil {
+ return err
+ }
+ if err := escape(w, a.Val); err != nil {
+ return err
+ }
+ if err := w.WriteByte('"'); err != nil {
+ return err
+ }
+ }
+ if voidElements[n.Data] {
+ if n.FirstChild != nil {
+ return fmt.Errorf("html: void element <%s> has child nodes", n.Data)
+ }
+ _, err := w.WriteString("/>")
+ return err
+ }
+ if err := w.WriteByte('>'); err != nil {
+ return err
+ }
+
+ // Add initial newline where there is danger of a newline beging ignored.
+ if c := n.FirstChild; c != nil && c.Type == TextNode && strings.HasPrefix(c.Data, "\n") {
+ switch n.Data {
+ case "pre", "listing", "textarea":
+ if err := w.WriteByte('\n'); err != nil {
+ return err
+ }
+ }
+ }
+
+ // Render any child nodes.
+ switch n.Data {
+ case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp":
+ for c := n.FirstChild; c != nil; c = c.NextSibling {
+ if c.Type == TextNode {
+ if _, err := w.WriteString(c.Data); err != nil {
+ return err
+ }
+ } else {
+ if err := render1(w, c); err != nil {
+ return err
+ }
+ }
+ }
+ if n.Data == "plaintext" {
+ // Don't render anything else. <plaintext> must be the
+ // last element in the file, with no closing tag.
+ return plaintextAbort
+ }
+ default:
+ for c := n.FirstChild; c != nil; c = c.NextSibling {
+ if err := render1(w, c); err != nil {
+ return err
+ }
+ }
+ }
+
+ // Render the </xxx> closing tag.
+ if _, err := w.WriteString("</"); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(n.Data); err != nil {
+ return err
+ }
+ return w.WriteByte('>')
+}
+
+// writeQuoted writes s to w surrounded by quotes. Normally it will use double
+// quotes, but if s contains a double quote, it will use single quotes.
+// It is used for writing the identifiers in a doctype declaration.
+// In valid HTML, they can't contain both types of quotes.
+func writeQuoted(w writer, s string) error {
+ var q byte = '"'
+ if strings.Contains(s, `"`) {
+ q = '\''
+ }
+ if err := w.WriteByte(q); err != nil {
+ return err
+ }
+ if _, err := w.WriteString(s); err != nil {
+ return err
+ }
+ if err := w.WriteByte(q); err != nil {
+ return err
+ }
+ return nil
+}
+
+// Section 12.1.2, "Elements", gives this list of void elements. Void elements
+// are those that can't have any contents.
+var voidElements = map[string]bool{
+ "area": true,
+ "base": true,
+ "br": true,
+ "col": true,
+ "command": true,
+ "embed": true,
+ "hr": true,
+ "img": true,
+ "input": true,
+ "keygen": true,
+ "link": true,
+ "meta": true,
+ "param": true,
+ "source": true,
+ "track": true,
+ "wbr": true,
+}
diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go
new file mode 100644
index 000000000..893e272a9
--- /dev/null
+++ b/vendor/golang.org/x/net/html/token.go
@@ -0,0 +1,1219 @@
+// 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"
+ "errors"
+ "io"
+ "strconv"
+ "strings"
+
+ "golang.org/x/net/html/atom"
+)
+
+// A TokenType is the type of a Token.
+type TokenType uint32
+
+const (
+ // ErrorToken means that an error occurred during tokenization.
+ ErrorToken TokenType = iota
+ // TextToken means a text node.
+ TextToken
+ // A StartTagToken looks like <a>.
+ StartTagToken
+ // An EndTagToken looks like </a>.
+ EndTagToken
+ // A SelfClosingTagToken tag looks like <br/>.
+ SelfClosingTagToken
+ // A CommentToken looks like <!--x-->.
+ CommentToken
+ // A DoctypeToken looks like <!DOCTYPE x>
+ DoctypeToken
+)
+
+// ErrBufferExceeded means that the buffering limit was exceeded.
+var ErrBufferExceeded = errors.New("max buffer exceeded")
+
+// String returns a string representation of the TokenType.
+func (t TokenType) String() string {
+ switch t {
+ case ErrorToken:
+ return "Error"
+ case TextToken:
+ return "Text"
+ case StartTagToken:
+ return "StartTag"
+ case EndTagToken:
+ return "EndTag"
+ case SelfClosingTagToken:
+ return "SelfClosingTag"
+ case CommentToken:
+ return "Comment"
+ case DoctypeToken:
+ return "Doctype"
+ }
+ return "Invalid(" + strconv.Itoa(int(t)) + ")"
+}
+
+// An Attribute is an attribute namespace-key-value triple. Namespace is
+// non-empty for foreign attributes like xlink, Key is alphabetic (and hence
+// does not contain escapable characters like '&', '<' or '>'), and Val is
+// unescaped (it looks like "a<b" rather than "a&lt;b").
+//
+// Namespace is only used by the parser, not the tokenizer.
+type Attribute struct {
+ Namespace, Key, Val string
+}
+
+// A Token consists of a TokenType and some Data (tag name for start and end
+// tags, content for text, comments and doctypes). A tag Token may also contain
+// a slice of Attributes. Data is unescaped for all Tokens (it looks like "a<b"
+// rather than "a&lt;b"). For tag Tokens, DataAtom is the atom for Data, or
+// zero if Data is not a known tag name.
+type Token struct {
+ Type TokenType
+ DataAtom atom.Atom
+ Data string
+ Attr []Attribute
+}
+
+// tagString returns a string representation of a tag Token's Data and Attr.
+func (t Token) tagString() string {
+ if len(t.Attr) == 0 {
+ return t.Data
+ }
+ buf := bytes.NewBufferString(t.Data)
+ for _, a := range t.Attr {
+ buf.WriteByte(' ')
+ buf.WriteString(a.Key)
+ buf.WriteString(`="`)
+ escape(buf, a.Val)
+ buf.WriteByte('"')
+ }
+ return buf.String()
+}
+
+// String returns a string representation of the Token.
+func (t Token) String() string {
+ switch t.Type {
+ case ErrorToken:
+ return ""
+ case TextToken:
+ return EscapeString(t.Data)
+ case StartTagToken:
+ return "<" + t.tagString() + ">"
+ case EndTagToken:
+ return "</" + t.tagString() + ">"
+ case SelfClosingTagToken:
+ return "<" + t.tagString() + "/>"
+ case CommentToken:
+ return "<!--" + t.Data + "-->"
+ case DoctypeToken:
+ return "<!DOCTYPE " + t.Data + ">"
+ }
+ return "Invalid(" + strconv.Itoa(int(t.Type)) + ")"
+}
+
+// span is a range of bytes in a Tokenizer's buffer. The start is inclusive,
+// the end is exclusive.
+type span struct {
+ start, end int
+}
+
+// A Tokenizer returns a stream of HTML Tokens.
+type Tokenizer struct {
+ // r is the source of the HTML text.
+ r io.Reader
+ // tt is the TokenType of the current token.
+ tt TokenType
+ // err is the first error encountered during tokenization. It is possible
+ // for tt != Error && err != nil to hold: this means that Next returned a
+ // valid token but the subsequent Next call will return an error token.
+ // For example, if the HTML text input was just "plain", then the first
+ // Next call would set z.err to io.EOF but return a TextToken, and all
+ // subsequent Next calls would return an ErrorToken.
+ // err is never reset. Once it becomes non-nil, it stays non-nil.
+ err error
+ // readErr is the error returned by the io.Reader r. It is separate from
+ // err because it is valid for an io.Reader to return (n int, err1 error)
+ // such that n > 0 && err1 != nil, and callers should always process the
+ // n > 0 bytes before considering the error err1.
+ readErr error
+ // buf[raw.start:raw.end] holds the raw bytes of the current token.
+ // buf[raw.end:] is buffered input that will yield future tokens.
+ raw span
+ buf []byte
+ // maxBuf limits the data buffered in buf. A value of 0 means unlimited.
+ maxBuf int
+ // buf[data.start:data.end] holds the raw bytes of the current token's data:
+ // a text token's text, a tag token's tag name, etc.
+ data span
+ // pendingAttr is the attribute key and value currently being tokenized.
+ // When complete, pendingAttr is pushed onto attr. nAttrReturned is
+ // incremented on each call to TagAttr.
+ pendingAttr [2]span
+ attr [][2]span
+ nAttrReturned int
+ // rawTag is the "script" in "</script>" that closes the next token. If
+ // non-empty, the subsequent call to Next will return a raw or RCDATA text
+ // token: one that treats "<p>" as text instead of an element.
+ // rawTag's contents are lower-cased.
+ rawTag string
+ // textIsRaw is whether the current text token's data is not escaped.
+ textIsRaw bool
+ // convertNUL is whether NUL bytes in the current token's data should
+ // be converted into \ufffd replacement characters.
+ convertNUL bool
+ // allowCDATA is whether CDATA sections are allowed in the current context.
+ allowCDATA bool
+}
+
+// AllowCDATA sets whether or not the tokenizer recognizes <![CDATA[foo]]> as
+// the text "foo". The default value is false, which means to recognize it as
+// a bogus comment "<!-- [CDATA[foo]] -->" instead.
+//
+// Strictly speaking, an HTML5 compliant tokenizer should allow CDATA if and
+// only if tokenizing foreign content, such as MathML and SVG. However,
+// tracking foreign-contentness is difficult to do purely in the tokenizer,
+// as opposed to the parser, due to HTML integration points: an <svg> element
+// can contain a <foreignObject> that is foreign-to-SVG but not foreign-to-
+// HTML. For strict compliance with the HTML5 tokenization algorithm, it is the
+// responsibility of the user of a tokenizer to call AllowCDATA as appropriate.
+// In practice, if using the tokenizer without caring whether MathML or SVG
+// CDATA is text or comments, such as tokenizing HTML to find all the anchor
+// text, it is acceptable to ignore this responsibility.
+func (z *Tokenizer) AllowCDATA(allowCDATA bool) {
+ z.allowCDATA = allowCDATA
+}
+
+// NextIsNotRawText instructs the tokenizer that the next token should not be
+// considered as 'raw text'. Some elements, such as script and title elements,
+// normally require the next token after the opening tag to be 'raw text' that
+// has no child elements. For example, tokenizing "<title>a<b>c</b>d</title>"
+// yields a start tag token for "<title>", a text token for "a<b>c</b>d", and
+// an end tag token for "</title>". There are no distinct start tag or end tag
+// tokens for the "<b>" and "</b>".
+//
+// This tokenizer implementation will generally look for raw text at the right
+// times. Strictly speaking, an HTML5 compliant tokenizer should not look for
+// raw text if in foreign content: <title> generally needs raw text, but a
+// <title> inside an <svg> does not. Another example is that a <textarea>
+// generally needs raw text, but a <textarea> is not allowed as an immediate
+// child of a <select>; in normal parsing, a <textarea> implies </select>, but
+// one cannot close the implicit element when parsing a <select>'s InnerHTML.
+// Similarly to AllowCDATA, tracking the correct moment to override raw-text-
+// ness is difficult to do purely in the tokenizer, as opposed to the parser.
+// For strict compliance with the HTML5 tokenization algorithm, it is the
+// responsibility of the user of a tokenizer to call NextIsNotRawText as
+// appropriate. In practice, like AllowCDATA, it is acceptable to ignore this
+// responsibility for basic usage.
+//
+// Note that this 'raw text' concept is different from the one offered by the
+// Tokenizer.Raw method.
+func (z *Tokenizer) NextIsNotRawText() {
+ z.rawTag = ""
+}
+
+// Err returns the error associated with the most recent ErrorToken token.
+// This is typically io.EOF, meaning the end of tokenization.
+func (z *Tokenizer) Err() error {
+ if z.tt != ErrorToken {
+ return nil
+ }
+ return z.err
+}
+
+// readByte returns the next byte from the input stream, doing a buffered read
+// from z.r into z.buf if necessary. z.buf[z.raw.start:z.raw.end] remains a contiguous byte
+// slice that holds all the bytes read so far for the current token.
+// It sets z.err if the underlying reader returns an error.
+// Pre-condition: z.err == nil.
+func (z *Tokenizer) readByte() byte {
+ if z.raw.end >= len(z.buf) {
+ // Our buffer is exhausted and we have to read from z.r. Check if the
+ // previous read resulted in an error.
+ if z.readErr != nil {
+ z.err = z.readErr
+ return 0
+ }
+ // We copy z.buf[z.raw.start:z.raw.end] to the beginning of z.buf. If the length
+ // z.raw.end - z.raw.start is more than half the capacity of z.buf, then we
+ // allocate a new buffer before the copy.
+ c := cap(z.buf)
+ d := z.raw.end - z.raw.start
+ var buf1 []byte
+ if 2*d > c {
+ buf1 = make([]byte, d, 2*c)
+ } else {
+ buf1 = z.buf[:d]
+ }
+ copy(buf1, z.buf[z.raw.start:z.raw.end])
+ if x := z.raw.start; x != 0 {
+ // Adjust the data/attr spans to refer to the same contents after the copy.
+ z.data.start -= x
+ z.data.end -= x
+ z.pendingAttr[0].start -= x
+ z.pendingAttr[0].end -= x
+ z.pendingAttr[1].start -= x
+ z.pendingAttr[1].end -= x
+ for i := range z.attr {
+ z.attr[i][0].start -= x
+ z.attr[i][0].end -= x
+ z.attr[i][1].start -= x
+ z.attr[i][1].end -= x
+ }
+ }
+ z.raw.start, z.raw.end, z.buf = 0, d, buf1[:d]
+ // Now that we have copied the live bytes to the start of the buffer,
+ // we read from z.r into the remainder.
+ var n int
+ n, z.readErr = readAtLeastOneByte(z.r, buf1[d:cap(buf1)])
+ if n == 0 {
+ z.err = z.readErr
+ return 0
+ }
+ z.buf = buf1[:d+n]
+ }
+ x := z.buf[z.raw.end]
+ z.raw.end++
+ if z.maxBuf > 0 && z.raw.end-z.raw.start >= z.maxBuf {
+ z.err = ErrBufferExceeded
+ return 0
+ }
+ return x
+}
+
+// Buffered returns a slice containing data buffered but not yet tokenized.
+func (z *Tokenizer) Buffered() []byte {
+ return z.buf[z.raw.end:]
+}
+
+// readAtLeastOneByte wraps an io.Reader so that reading cannot return (0, nil).
+// It returns io.ErrNoProgress if the underlying r.Read method returns (0, nil)
+// too many times in succession.
+func readAtLeastOneByte(r io.Reader, b []byte) (int, error) {
+ for i := 0; i < 100; i++ {
+ n, err := r.Read(b)
+ if n != 0 || err != nil {
+ return n, err
+ }
+ }
+ return 0, io.ErrNoProgress
+}
+
+// skipWhiteSpace skips past any white space.
+func (z *Tokenizer) skipWhiteSpace() {
+ if z.err != nil {
+ return
+ }
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f':
+ // No-op.
+ default:
+ z.raw.end--
+ return
+ }
+ }
+}
+
+// readRawOrRCDATA reads until the next "</foo>", where "foo" is z.rawTag and
+// is typically something like "script" or "textarea".
+func (z *Tokenizer) readRawOrRCDATA() {
+ if z.rawTag == "script" {
+ z.readScript()
+ z.textIsRaw = true
+ z.rawTag = ""
+ return
+ }
+loop:
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ break loop
+ }
+ if c != '<' {
+ continue loop
+ }
+ c = z.readByte()
+ if z.err != nil {
+ break loop
+ }
+ if c != '/' {
+ continue loop
+ }
+ if z.readRawEndTag() || z.err != nil {
+ break loop
+ }
+ }
+ z.data.end = z.raw.end
+ // A textarea's or title's RCDATA can contain escaped entities.
+ z.textIsRaw = z.rawTag != "textarea" && z.rawTag != "title"
+ z.rawTag = ""
+}
+
+// readRawEndTag attempts to read a tag like "</foo>", where "foo" is z.rawTag.
+// If it succeeds, it backs up the input position to reconsume the tag and
+// returns true. Otherwise it returns false. The opening "</" has already been
+// consumed.
+func (z *Tokenizer) readRawEndTag() bool {
+ for i := 0; i < len(z.rawTag); i++ {
+ c := z.readByte()
+ if z.err != nil {
+ return false
+ }
+ if c != z.rawTag[i] && c != z.rawTag[i]-('a'-'A') {
+ z.raw.end--
+ return false
+ }
+ }
+ c := z.readByte()
+ if z.err != nil {
+ return false
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f', '/', '>':
+ // The 3 is 2 for the leading "</" plus 1 for the trailing character c.
+ z.raw.end -= 3 + len(z.rawTag)
+ return true
+ }
+ z.raw.end--
+ return false
+}
+
+// readScript reads until the next </script> tag, following the byzantine
+// rules for escaping/hiding the closing tag.
+func (z *Tokenizer) readScript() {
+ defer func() {
+ z.data.end = z.raw.end
+ }()
+ var c byte
+
+scriptData:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c == '<' {
+ goto scriptDataLessThanSign
+ }
+ goto scriptData
+
+scriptDataLessThanSign:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '/':
+ goto scriptDataEndTagOpen
+ case '!':
+ goto scriptDataEscapeStart
+ }
+ z.raw.end--
+ goto scriptData
+
+scriptDataEndTagOpen:
+ if z.readRawEndTag() || z.err != nil {
+ return
+ }
+ goto scriptData
+
+scriptDataEscapeStart:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c == '-' {
+ goto scriptDataEscapeStartDash
+ }
+ z.raw.end--
+ goto scriptData
+
+scriptDataEscapeStartDash:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c == '-' {
+ goto scriptDataEscapedDashDash
+ }
+ z.raw.end--
+ goto scriptData
+
+scriptDataEscaped:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataEscapedDash
+ case '<':
+ goto scriptDataEscapedLessThanSign
+ }
+ goto scriptDataEscaped
+
+scriptDataEscapedDash:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataEscapedDashDash
+ case '<':
+ goto scriptDataEscapedLessThanSign
+ }
+ goto scriptDataEscaped
+
+scriptDataEscapedDashDash:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataEscapedDashDash
+ case '<':
+ goto scriptDataEscapedLessThanSign
+ case '>':
+ goto scriptData
+ }
+ goto scriptDataEscaped
+
+scriptDataEscapedLessThanSign:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c == '/' {
+ goto scriptDataEscapedEndTagOpen
+ }
+ if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
+ goto scriptDataDoubleEscapeStart
+ }
+ z.raw.end--
+ goto scriptData
+
+scriptDataEscapedEndTagOpen:
+ if z.readRawEndTag() || z.err != nil {
+ return
+ }
+ goto scriptDataEscaped
+
+scriptDataDoubleEscapeStart:
+ z.raw.end--
+ for i := 0; i < len("script"); i++ {
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c != "script"[i] && c != "SCRIPT"[i] {
+ z.raw.end--
+ goto scriptDataEscaped
+ }
+ }
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f', '/', '>':
+ goto scriptDataDoubleEscaped
+ }
+ z.raw.end--
+ goto scriptDataEscaped
+
+scriptDataDoubleEscaped:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataDoubleEscapedDash
+ case '<':
+ goto scriptDataDoubleEscapedLessThanSign
+ }
+ goto scriptDataDoubleEscaped
+
+scriptDataDoubleEscapedDash:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataDoubleEscapedDashDash
+ case '<':
+ goto scriptDataDoubleEscapedLessThanSign
+ }
+ goto scriptDataDoubleEscaped
+
+scriptDataDoubleEscapedDashDash:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch c {
+ case '-':
+ goto scriptDataDoubleEscapedDashDash
+ case '<':
+ goto scriptDataDoubleEscapedLessThanSign
+ case '>':
+ goto scriptData
+ }
+ goto scriptDataDoubleEscaped
+
+scriptDataDoubleEscapedLessThanSign:
+ c = z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c == '/' {
+ goto scriptDataDoubleEscapeEnd
+ }
+ z.raw.end--
+ goto scriptDataDoubleEscaped
+
+scriptDataDoubleEscapeEnd:
+ if z.readRawEndTag() {
+ z.raw.end += len("</script>")
+ goto scriptDataEscaped
+ }
+ if z.err != nil {
+ return
+ }
+ goto scriptDataDoubleEscaped
+}
+
+// readComment reads the next comment token starting with "<!--". The opening
+// "<!--" has already been consumed.
+func (z *Tokenizer) readComment() {
+ z.data.start = z.raw.end
+ defer func() {
+ if z.data.end < z.data.start {
+ // It's a comment with no data, like <!-->.
+ z.data.end = z.data.start
+ }
+ }()
+ for dashCount := 2; ; {
+ c := z.readByte()
+ if z.err != nil {
+ // Ignore up to two dashes at EOF.
+ if dashCount > 2 {
+ dashCount = 2
+ }
+ z.data.end = z.raw.end - dashCount
+ return
+ }
+ switch c {
+ case '-':
+ dashCount++
+ continue
+ case '>':
+ if dashCount >= 2 {
+ z.data.end = z.raw.end - len("-->")
+ return
+ }
+ case '!':
+ if dashCount >= 2 {
+ c = z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return
+ }
+ if c == '>' {
+ z.data.end = z.raw.end - len("--!>")
+ return
+ }
+ }
+ }
+ dashCount = 0
+ }
+}
+
+// readUntilCloseAngle reads until the next ">".
+func (z *Tokenizer) readUntilCloseAngle() {
+ z.data.start = z.raw.end
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return
+ }
+ if c == '>' {
+ z.data.end = z.raw.end - len(">")
+ return
+ }
+ }
+}
+
+// readMarkupDeclaration reads the next token starting with "<!". It might be
+// a "<!--comment-->", a "<!DOCTYPE foo>", a "<![CDATA[section]]>" or
+// "<!a bogus comment". The opening "<!" has already been consumed.
+func (z *Tokenizer) readMarkupDeclaration() TokenType {
+ z.data.start = z.raw.end
+ var c [2]byte
+ for i := 0; i < 2; i++ {
+ c[i] = z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return CommentToken
+ }
+ }
+ if c[0] == '-' && c[1] == '-' {
+ z.readComment()
+ return CommentToken
+ }
+ z.raw.end -= 2
+ if z.readDoctype() {
+ return DoctypeToken
+ }
+ if z.allowCDATA && z.readCDATA() {
+ z.convertNUL = true
+ return TextToken
+ }
+ // It's a bogus comment.
+ z.readUntilCloseAngle()
+ return CommentToken
+}
+
+// readDoctype attempts to read a doctype declaration and returns true if
+// successful. The opening "<!" has already been consumed.
+func (z *Tokenizer) readDoctype() bool {
+ const s = "DOCTYPE"
+ for i := 0; i < len(s); i++ {
+ c := z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return false
+ }
+ if c != s[i] && c != s[i]+('a'-'A') {
+ // Back up to read the fragment of "DOCTYPE" again.
+ z.raw.end = z.data.start
+ return false
+ }
+ }
+ if z.skipWhiteSpace(); z.err != nil {
+ z.data.start = z.raw.end
+ z.data.end = z.raw.end
+ return true
+ }
+ z.readUntilCloseAngle()
+ return true
+}
+
+// readCDATA attempts to read a CDATA section and returns true if
+// successful. The opening "<!" has already been consumed.
+func (z *Tokenizer) readCDATA() bool {
+ const s = "[CDATA["
+ for i := 0; i < len(s); i++ {
+ c := z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return false
+ }
+ if c != s[i] {
+ // Back up to read the fragment of "[CDATA[" again.
+ z.raw.end = z.data.start
+ return false
+ }
+ }
+ z.data.start = z.raw.end
+ brackets := 0
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return true
+ }
+ switch c {
+ case ']':
+ brackets++
+ case '>':
+ if brackets >= 2 {
+ z.data.end = z.raw.end - len("]]>")
+ return true
+ }
+ brackets = 0
+ default:
+ brackets = 0
+ }
+ }
+}
+
+// startTagIn returns whether the start tag in z.buf[z.data.start:z.data.end]
+// case-insensitively matches any element of ss.
+func (z *Tokenizer) startTagIn(ss ...string) bool {
+loop:
+ for _, s := range ss {
+ if z.data.end-z.data.start != len(s) {
+ continue loop
+ }
+ for i := 0; i < len(s); i++ {
+ c := z.buf[z.data.start+i]
+ if 'A' <= c && c <= 'Z' {
+ c += 'a' - 'A'
+ }
+ if c != s[i] {
+ continue loop
+ }
+ }
+ return true
+ }
+ return false
+}
+
+// readStartTag reads the next start tag token. The opening "<a" has already
+// been consumed, where 'a' means anything in [A-Za-z].
+func (z *Tokenizer) readStartTag() TokenType {
+ z.readTag(true)
+ if z.err != nil {
+ return ErrorToken
+ }
+ // Several tags flag the tokenizer's next token as raw.
+ c, raw := z.buf[z.data.start], false
+ if 'A' <= c && c <= 'Z' {
+ c += 'a' - 'A'
+ }
+ switch c {
+ case 'i':
+ raw = z.startTagIn("iframe")
+ case 'n':
+ raw = z.startTagIn("noembed", "noframes", "noscript")
+ case 'p':
+ raw = z.startTagIn("plaintext")
+ case 's':
+ raw = z.startTagIn("script", "style")
+ case 't':
+ raw = z.startTagIn("textarea", "title")
+ case 'x':
+ raw = z.startTagIn("xmp")
+ }
+ if raw {
+ z.rawTag = strings.ToLower(string(z.buf[z.data.start:z.data.end]))
+ }
+ // Look for a self-closing token like "<br/>".
+ if z.err == nil && z.buf[z.raw.end-2] == '/' {
+ return SelfClosingTagToken
+ }
+ return StartTagToken
+}
+
+// readTag reads the next tag token and its attributes. If saveAttr, those
+// attributes are saved in z.attr, otherwise z.attr is set to an empty slice.
+// The opening "<a" or "</a" has already been consumed, where 'a' means anything
+// in [A-Za-z].
+func (z *Tokenizer) readTag(saveAttr bool) {
+ z.attr = z.attr[:0]
+ z.nAttrReturned = 0
+ // Read the tag name and attribute key/value pairs.
+ z.readTagName()
+ if z.skipWhiteSpace(); z.err != nil {
+ return
+ }
+ for {
+ c := z.readByte()
+ if z.err != nil || c == '>' {
+ break
+ }
+ z.raw.end--
+ z.readTagAttrKey()
+ z.readTagAttrVal()
+ // Save pendingAttr if saveAttr and that attribute has a non-empty key.
+ if saveAttr && z.pendingAttr[0].start != z.pendingAttr[0].end {
+ z.attr = append(z.attr, z.pendingAttr)
+ }
+ if z.skipWhiteSpace(); z.err != nil {
+ break
+ }
+ }
+}
+
+// readTagName sets z.data to the "div" in "<div k=v>". The reader (z.raw.end)
+// is positioned such that the first byte of the tag name (the "d" in "<div")
+// has already been consumed.
+func (z *Tokenizer) readTagName() {
+ z.data.start = z.raw.end - 1
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.data.end = z.raw.end
+ return
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f':
+ z.data.end = z.raw.end - 1
+ return
+ case '/', '>':
+ z.raw.end--
+ z.data.end = z.raw.end
+ return
+ }
+ }
+}
+
+// readTagAttrKey sets z.pendingAttr[0] to the "k" in "<div k=v>".
+// Precondition: z.err == nil.
+func (z *Tokenizer) readTagAttrKey() {
+ z.pendingAttr[0].start = z.raw.end
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.pendingAttr[0].end = z.raw.end
+ return
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f', '/':
+ z.pendingAttr[0].end = z.raw.end - 1
+ return
+ case '=', '>':
+ z.raw.end--
+ z.pendingAttr[0].end = z.raw.end
+ return
+ }
+ }
+}
+
+// readTagAttrVal sets z.pendingAttr[1] to the "v" in "<div k=v>".
+func (z *Tokenizer) readTagAttrVal() {
+ z.pendingAttr[1].start = z.raw.end
+ z.pendingAttr[1].end = z.raw.end
+ if z.skipWhiteSpace(); z.err != nil {
+ return
+ }
+ c := z.readByte()
+ if z.err != nil {
+ return
+ }
+ if c != '=' {
+ z.raw.end--
+ return
+ }
+ if z.skipWhiteSpace(); z.err != nil {
+ return
+ }
+ quote := z.readByte()
+ if z.err != nil {
+ return
+ }
+ switch quote {
+ case '>':
+ z.raw.end--
+ return
+
+ case '\'', '"':
+ z.pendingAttr[1].start = z.raw.end
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.pendingAttr[1].end = z.raw.end
+ return
+ }
+ if c == quote {
+ z.pendingAttr[1].end = z.raw.end - 1
+ return
+ }
+ }
+
+ default:
+ z.pendingAttr[1].start = z.raw.end - 1
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ z.pendingAttr[1].end = z.raw.end
+ return
+ }
+ switch c {
+ case ' ', '\n', '\r', '\t', '\f':
+ z.pendingAttr[1].end = z.raw.end - 1
+ return
+ case '>':
+ z.raw.end--
+ z.pendingAttr[1].end = z.raw.end
+ return
+ }
+ }
+ }
+}
+
+// Next scans the next token and returns its type.
+func (z *Tokenizer) Next() TokenType {
+ z.raw.start = z.raw.end
+ z.data.start = z.raw.end
+ z.data.end = z.raw.end
+ if z.err != nil {
+ z.tt = ErrorToken
+ return z.tt
+ }
+ if z.rawTag != "" {
+ if z.rawTag == "plaintext" {
+ // Read everything up to EOF.
+ for z.err == nil {
+ z.readByte()
+ }
+ z.data.end = z.raw.end
+ z.textIsRaw = true
+ } else {
+ z.readRawOrRCDATA()
+ }
+ if z.data.end > z.data.start {
+ z.tt = TextToken
+ z.convertNUL = true
+ return z.tt
+ }
+ }
+ z.textIsRaw = false
+ z.convertNUL = false
+
+loop:
+ for {
+ c := z.readByte()
+ if z.err != nil {
+ break loop
+ }
+ if c != '<' {
+ continue loop
+ }
+
+ // Check if the '<' we have just read is part of a tag, comment
+ // or doctype. If not, it's part of the accumulated text token.
+ c = z.readByte()
+ if z.err != nil {
+ break loop
+ }
+ var tokenType TokenType
+ switch {
+ case 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z':
+ tokenType = StartTagToken
+ case c == '/':
+ tokenType = EndTagToken
+ case c == '!' || c == '?':
+ // We use CommentToken to mean any of "<!--actual comments-->",
+ // "<!DOCTYPE declarations>" and "<?xml processing instructions?>".
+ tokenType = CommentToken
+ default:
+ // Reconsume the current character.
+ z.raw.end--
+ continue
+ }
+
+ // We have a non-text token, but we might have accumulated some text
+ // before that. If so, we return the text first, and return the non-
+ // text token on the subsequent call to Next.
+ if x := z.raw.end - len("<a"); z.raw.start < x {
+ z.raw.end = x
+ z.data.end = x
+ z.tt = TextToken
+ return z.tt
+ }
+ switch tokenType {
+ case StartTagToken:
+ z.tt = z.readStartTag()
+ return z.tt
+ case EndTagToken:
+ c = z.readByte()
+ if z.err != nil {
+ break loop
+ }
+ if c == '>' {
+ // "</>" does not generate a token at all. Generate an empty comment
+ // to allow passthrough clients to pick up the data using Raw.
+ // Reset the tokenizer state and start again.
+ z.tt = CommentToken
+ return z.tt
+ }
+ if 'a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' {
+ z.readTag(false)
+ if z.err != nil {
+ z.tt = ErrorToken
+ } else {
+ z.tt = EndTagToken
+ }
+ return z.tt
+ }
+ z.raw.end--
+ z.readUntilCloseAngle()
+ z.tt = CommentToken
+ return z.tt
+ case CommentToken:
+ if c == '!' {
+ z.tt = z.readMarkupDeclaration()
+ return z.tt
+ }
+ z.raw.end--
+ z.readUntilCloseAngle()
+ z.tt = CommentToken
+ return z.tt
+ }
+ }
+ if z.raw.start < z.raw.end {
+ z.data.end = z.raw.end
+ z.tt = TextToken
+ return z.tt
+ }
+ z.tt = ErrorToken
+ return z.tt
+}
+
+// Raw returns the unmodified text of the current token. Calling Next, Token,
+// Text, TagName or TagAttr may change the contents of the returned slice.
+func (z *Tokenizer) Raw() []byte {
+ return z.buf[z.raw.start:z.raw.end]
+}
+
+// convertNewlines converts "\r" and "\r\n" in s to "\n".
+// The conversion happens in place, but the resulting slice may be shorter.
+func convertNewlines(s []byte) []byte {
+ for i, c := range s {
+ if c != '\r' {
+ continue
+ }
+
+ src := i + 1
+ if src >= len(s) || s[src] != '\n' {
+ s[i] = '\n'
+ continue
+ }
+
+ dst := i
+ for src < len(s) {
+ if s[src] == '\r' {
+ if src+1 < len(s) && s[src+1] == '\n' {
+ src++
+ }
+ s[dst] = '\n'
+ } else {
+ s[dst] = s[src]
+ }
+ src++
+ dst++
+ }
+ return s[:dst]
+ }
+ return s
+}
+
+var (
+ nul = []byte("\x00")
+ replacement = []byte("\ufffd")
+)
+
+// Text returns the unescaped text of a text, comment or doctype token. The
+// contents of the returned slice may change on the next call to Next.
+func (z *Tokenizer) Text() []byte {
+ switch z.tt {
+ case TextToken, CommentToken, DoctypeToken:
+ s := z.buf[z.data.start:z.data.end]
+ z.data.start = z.raw.end
+ z.data.end = z.raw.end
+ s = convertNewlines(s)
+ if (z.convertNUL || z.tt == CommentToken) && bytes.Contains(s, nul) {
+ s = bytes.Replace(s, nul, replacement, -1)
+ }
+ if !z.textIsRaw {
+ s = unescape(s, false)
+ }
+ return s
+ }
+ return nil
+}
+
+// TagName returns the lower-cased name of a tag token (the `img` out of
+// `<IMG SRC="foo">`) and whether the tag has attributes.
+// The contents of the returned slice may change on the next call to Next.
+func (z *Tokenizer) TagName() (name []byte, hasAttr bool) {
+ if z.data.start < z.data.end {
+ switch z.tt {
+ case StartTagToken, EndTagToken, SelfClosingTagToken:
+ s := z.buf[z.data.start:z.data.end]
+ z.data.start = z.raw.end
+ z.data.end = z.raw.end
+ return lower(s), z.nAttrReturned < len(z.attr)
+ }
+ }
+ return nil, false
+}
+
+// TagAttr returns the lower-cased key and unescaped value of the next unparsed
+// attribute for the current tag token and whether there are more attributes.
+// The contents of the returned slices may change on the next call to Next.
+func (z *Tokenizer) TagAttr() (key, val []byte, moreAttr bool) {
+ if z.nAttrReturned < len(z.attr) {
+ switch z.tt {
+ case StartTagToken, SelfClosingTagToken:
+ x := z.attr[z.nAttrReturned]
+ z.nAttrReturned++
+ key = z.buf[x[0].start:x[0].end]
+ val = z.buf[x[1].start:x[1].end]
+ return lower(key), unescape(convertNewlines(val), true), z.nAttrReturned < len(z.attr)
+ }
+ }
+ return nil, nil, false
+}
+
+// Token returns the next Token. The result's Data and Attr values remain valid
+// after subsequent Next calls.
+func (z *Tokenizer) Token() Token {
+ t := Token{Type: z.tt}
+ switch z.tt {
+ case TextToken, CommentToken, DoctypeToken:
+ t.Data = string(z.Text())
+ case StartTagToken, SelfClosingTagToken, EndTagToken:
+ name, moreAttr := z.TagName()
+ for moreAttr {
+ var key, val []byte
+ key, val, moreAttr = z.TagAttr()
+ t.Attr = append(t.Attr, Attribute{"", atom.String(key), string(val)})
+ }
+ if a := atom.Lookup(name); a != 0 {
+ t.DataAtom, t.Data = a, a.String()
+ } else {
+ t.DataAtom, t.Data = 0, string(name)
+ }
+ }
+ return t
+}
+
+// SetMaxBuf sets a limit on the amount of data buffered during tokenization.
+// A value of 0 means unlimited.
+func (z *Tokenizer) SetMaxBuf(n int) {
+ z.maxBuf = n
+}
+
+// NewTokenizer returns a new HTML Tokenizer for the given Reader.
+// The input is assumed to be UTF-8 encoded.
+func NewTokenizer(r io.Reader) *Tokenizer {
+ return NewTokenizerFragment(r, "")
+}
+
+// NewTokenizerFragment returns a new HTML Tokenizer for the given Reader, for
+// tokenizing an existing element's InnerHTML fragment. contextTag is that
+// element's tag, such as "div" or "iframe".
+//
+// For example, how the InnerHTML "a<b" is tokenized depends on whether it is
+// for a <p> tag or a <script> tag.
+//
+// The input is assumed to be UTF-8 encoded.
+func NewTokenizerFragment(r io.Reader, contextTag string) *Tokenizer {
+ z := &Tokenizer{
+ r: r,
+ buf: make([]byte, 0, 4096),
+ }
+ if contextTag != "" {
+ switch s := strings.ToLower(contextTag); s {
+ case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "title", "textarea", "xmp":
+ z.rawTag = s
+ }
+ }
+ return z
+}
diff --git a/vendor/golang.org/x/net/websocket/client.go b/vendor/golang.org/x/net/websocket/client.go
new file mode 100644
index 000000000..69a4ac7ee
--- /dev/null
+++ b/vendor/golang.org/x/net/websocket/client.go
@@ -0,0 +1,106 @@
+// 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 websocket
+
+import (
+ "bufio"
+ "io"
+ "net"
+ "net/http"
+ "net/url"
+)
+
+// DialError is an error that occurs while dialling a websocket server.
+type DialError struct {
+ *Config
+ Err error
+}
+
+func (e *DialError) Error() string {
+ return "websocket.Dial " + e.Config.Location.String() + ": " + e.Err.Error()
+}
+
+// NewConfig creates a new WebSocket config for client connection.
+func NewConfig(server, origin string) (config *Config, err error) {
+ config = new(Config)
+ config.Version = ProtocolVersionHybi13
+ config.Location, err = url.ParseRequestURI(server)
+ if err != nil {
+ return
+ }
+ config.Origin, err = url.ParseRequestURI(origin)
+ if err != nil {
+ return
+ }
+ config.Header = http.Header(make(map[string][]string))
+ return
+}
+
+// NewClient creates a new WebSocket client connection over rwc.
+func NewClient(config *Config, rwc io.ReadWriteCloser) (ws *Conn, err error) {
+ br := bufio.NewReader(rwc)
+ bw := bufio.NewWriter(rwc)
+ err = hybiClientHandshake(config, br, bw)
+ if err != nil {
+ return
+ }
+ buf := bufio.NewReadWriter(br, bw)
+ ws = newHybiClientConn(config, buf, rwc)
+ return
+}
+
+// Dial opens a new client connection to a WebSocket.
+func Dial(url_, protocol, origin string) (ws *Conn, err error) {
+ config, err := NewConfig(url_, origin)
+ if err != nil {
+ return nil, err
+ }
+ if protocol != "" {
+ config.Protocol = []string{protocol}
+ }
+ return DialConfig(config)
+}
+
+var portMap = map[string]string{
+ "ws": "80",
+ "wss": "443",
+}
+
+func parseAuthority(location *url.URL) string {
+ if _, ok := portMap[location.Scheme]; ok {
+ if _, _, err := net.SplitHostPort(location.Host); err != nil {
+ return net.JoinHostPort(location.Host, portMap[location.Scheme])
+ }
+ }
+ return location.Host
+}
+
+// DialConfig opens a new client connection to a WebSocket with a config.
+func DialConfig(config *Config) (ws *Conn, err error) {
+ var client net.Conn
+ if config.Location == nil {
+ return nil, &DialError{config, ErrBadWebSocketLocation}
+ }
+ if config.Origin == nil {
+ return nil, &DialError{config, ErrBadWebSocketOrigin}
+ }
+ dialer := config.Dialer
+ if dialer == nil {
+ dialer = &net.Dialer{}
+ }
+ client, err = dialWithDialer(dialer, config)
+ if err != nil {
+ goto Error
+ }
+ ws, err = NewClient(config, client)
+ if err != nil {
+ client.Close()
+ goto Error
+ }
+ return
+
+Error:
+ return nil, &DialError{config, err}
+}
diff --git a/vendor/golang.org/x/net/websocket/dial.go b/vendor/golang.org/x/net/websocket/dial.go
new file mode 100644
index 000000000..2dab943a4
--- /dev/null
+++ b/vendor/golang.org/x/net/websocket/dial.go
@@ -0,0 +1,24 @@
+// 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 websocket
+
+import (
+ "crypto/tls"
+ "net"
+)
+
+func dialWithDialer(dialer *net.Dialer, config *Config) (conn net.Conn, err error) {
+ switch config.Location.Scheme {
+ case "ws":
+ conn, err = dialer.Dial("tcp", parseAuthority(config.Location))
+
+ case "wss":
+ conn, err = tls.DialWithDialer(dialer, "tcp", parseAuthority(config.Location), config.TlsConfig)
+
+ default:
+ err = ErrBadScheme
+ }
+ return
+}
diff --git a/vendor/golang.org/x/net/websocket/hybi.go b/vendor/golang.org/x/net/websocket/hybi.go
new file mode 100644
index 000000000..8cffdd16c
--- /dev/null
+++ b/vendor/golang.org/x/net/websocket/hybi.go
@@ -0,0 +1,583 @@
+// 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 websocket
+
+// This file implements a protocol of hybi draft.
+// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17
+
+import (
+ "bufio"
+ "bytes"
+ "crypto/rand"
+ "crypto/sha1"
+ "encoding/base64"
+ "encoding/binary"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+const (
+ websocketGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
+
+ closeStatusNormal = 1000
+ closeStatusGoingAway = 1001
+ closeStatusProtocolError = 1002
+ closeStatusUnsupportedData = 1003
+ closeStatusFrameTooLarge = 1004
+ closeStatusNoStatusRcvd = 1005
+ closeStatusAbnormalClosure = 1006
+ closeStatusBadMessageData = 1007
+ closeStatusPolicyViolation = 1008
+ closeStatusTooBigData = 1009
+ closeStatusExtensionMismatch = 1010
+
+ maxControlFramePayloadLength = 125
+)
+
+var (
+ ErrBadMaskingKey = &ProtocolError{"bad masking key"}
+ ErrBadPongMessage = &ProtocolError{"bad pong message"}
+ ErrBadClosingStatus = &ProtocolError{"bad closing status"}
+ ErrUnsupportedExtensions = &ProtocolError{"unsupported extensions"}
+ ErrNotImplemented = &ProtocolError{"not implemented"}
+
+ handshakeHeader = map[string]bool{
+ "Host": true,
+ "Upgrade": true,
+ "Connection": true,
+ "Sec-Websocket-Key": true,
+ "Sec-Websocket-Origin": true,
+ "Sec-Websocket-Version": true,
+ "Sec-Websocket-Protocol": true,
+ "Sec-Websocket-Accept": true,
+ }
+)
+
+// A hybiFrameHeader is a frame header as defined in hybi draft.
+type hybiFrameHeader struct {
+ Fin bool
+ Rsv [3]bool
+ OpCode byte
+ Length int64
+ MaskingKey []byte
+
+ data *bytes.Buffer
+}
+
+// A hybiFrameReader is a reader for hybi frame.
+type hybiFrameReader struct {
+ reader io.Reader
+
+ header hybiFrameHeader
+ pos int64
+ length int
+}
+
+func (frame *hybiFrameReader) Read(msg []byte) (n int, err error) {
+ n, err = frame.reader.Read(msg)
+ if frame.header.MaskingKey != nil {
+ for i := 0; i < n; i++ {
+ msg[i] = msg[i] ^ frame.header.MaskingKey[frame.pos%4]
+ frame.pos++
+ }
+ }
+ return n, err
+}
+
+func (frame *hybiFrameReader) PayloadType() byte { return frame.header.OpCode }
+
+func (frame *hybiFrameReader) HeaderReader() io.Reader {
+ if frame.header.data == nil {
+ return nil
+ }
+ if frame.header.data.Len() == 0 {
+ return nil
+ }
+ return frame.header.data
+}
+
+func (frame *hybiFrameReader) TrailerReader() io.Reader { return nil }
+
+func (frame *hybiFrameReader) Len() (n int) { return frame.length }
+
+// A hybiFrameReaderFactory creates new frame reader based on its frame type.
+type hybiFrameReaderFactory struct {
+ *bufio.Reader
+}
+
+// NewFrameReader reads a frame header from the connection, and creates new reader for the frame.
+// See Section 5.2 Base Framing protocol for detail.
+// http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17#section-5.2
+func (buf hybiFrameReaderFactory) NewFrameReader() (frame frameReader, err error) {
+ hybiFrame := new(hybiFrameReader)
+ frame = hybiFrame
+ var header []byte
+ var b byte
+ // First byte. FIN/RSV1/RSV2/RSV3/OpCode(4bits)
+ b, err = buf.ReadByte()
+ if err != nil {
+ return
+ }
+ header = append(header, b)
+ hybiFrame.header.Fin = ((header[0] >> 7) & 1) != 0
+ for i := 0; i < 3; i++ {
+ j := uint(6 - i)
+ hybiFrame.header.Rsv[i] = ((header[0] >> j) & 1) != 0
+ }
+ hybiFrame.header.OpCode = header[0] & 0x0f
+
+ // Second byte. Mask/Payload len(7bits)
+ b, err = buf.ReadByte()
+ if err != nil {
+ return
+ }
+ header = append(header, b)
+ mask := (b & 0x80) != 0
+ b &= 0x7f
+ lengthFields := 0
+ switch {
+ case b <= 125: // Payload length 7bits.
+ hybiFrame.header.Length = int64(b)
+ case b == 126: // Payload length 7+16bits
+ lengthFields = 2
+ case b == 127: // Payload length 7+64bits
+ lengthFields = 8
+ }
+ for i := 0; i < lengthFields; i++ {
+ b, err = buf.ReadByte()
+ if err != nil {
+ return
+ }
+ if lengthFields == 8 && i == 0 { // MSB must be zero when 7+64 bits
+ b &= 0x7f
+ }
+ header = append(header, b)
+ hybiFrame.header.Length = hybiFrame.header.Length*256 + int64(b)
+ }
+ if mask {
+ // Masking key. 4 bytes.
+ for i := 0; i < 4; i++ {
+ b, err = buf.ReadByte()
+ if err != nil {
+ return
+ }
+ header = append(header, b)
+ hybiFrame.header.MaskingKey = append(hybiFrame.header.MaskingKey, b)
+ }
+ }
+ hybiFrame.reader = io.LimitReader(buf.Reader, hybiFrame.header.Length)
+ hybiFrame.header.data = bytes.NewBuffer(header)
+ hybiFrame.length = len(header) + int(hybiFrame.header.Length)
+ return
+}
+
+// A HybiFrameWriter is a writer for hybi frame.
+type hybiFrameWriter struct {
+ writer *bufio.Writer
+
+ header *hybiFrameHeader
+}
+
+func (frame *hybiFrameWriter) Write(msg []byte) (n int, err error) {
+ var header []byte
+ var b byte
+ if frame.header.Fin {
+ b |= 0x80
+ }
+ for i := 0; i < 3; i++ {
+ if frame.header.Rsv[i] {
+ j := uint(6 - i)
+ b |= 1 << j
+ }
+ }
+ b |= frame.header.OpCode
+ header = append(header, b)
+ if frame.header.MaskingKey != nil {
+ b = 0x80
+ } else {
+ b = 0
+ }
+ lengthFields := 0
+ length := len(msg)
+ switch {
+ case length <= 125:
+ b |= byte(length)
+ case length < 65536:
+ b |= 126
+ lengthFields = 2
+ default:
+ b |= 127
+ lengthFields = 8
+ }
+ header = append(header, b)
+ for i := 0; i < lengthFields; i++ {
+ j := uint((lengthFields - i - 1) * 8)
+ b = byte((length >> j) & 0xff)
+ header = append(header, b)
+ }
+ if frame.header.MaskingKey != nil {
+ if len(frame.header.MaskingKey) != 4 {
+ return 0, ErrBadMaskingKey
+ }
+ header = append(header, frame.header.MaskingKey...)
+ frame.writer.Write(header)
+ data := make([]byte, length)
+ for i := range data {
+ data[i] = msg[i] ^ frame.header.MaskingKey[i%4]
+ }
+ frame.writer.Write(data)
+ err = frame.writer.Flush()
+ return length, err
+ }
+ frame.writer.Write(header)
+ frame.writer.Write(msg)
+ err = frame.writer.Flush()
+ return length, err
+}
+
+func (frame *hybiFrameWriter) Close() error { return nil }
+
+type hybiFrameWriterFactory struct {
+ *bufio.Writer
+ needMaskingKey bool
+}
+
+func (buf hybiFrameWriterFactory) NewFrameWriter(payloadType byte) (frame frameWriter, err error) {
+ frameHeader := &hybiFrameHeader{Fin: true, OpCode: payloadType}
+ if buf.needMaskingKey {
+ frameHeader.MaskingKey, err = generateMaskingKey()
+ if err != nil {
+ return nil, err
+ }
+ }
+ return &hybiFrameWriter{writer: buf.Writer, header: frameHeader}, nil
+}
+
+type hybiFrameHandler struct {
+ conn *Conn
+ payloadType byte
+}
+
+func (handler *hybiFrameHandler) HandleFrame(frame frameReader) (frameReader, error) {
+ if handler.conn.IsServerConn() {
+ // The client MUST mask all frames sent to the server.
+ if frame.(*hybiFrameReader).header.MaskingKey == nil {
+ handler.WriteClose(closeStatusProtocolError)
+ return nil, io.EOF
+ }
+ } else {
+ // The server MUST NOT mask all frames.
+ if frame.(*hybiFrameReader).header.MaskingKey != nil {
+ handler.WriteClose(closeStatusProtocolError)
+ return nil, io.EOF
+ }
+ }
+ if header := frame.HeaderReader(); header != nil {
+ io.Copy(ioutil.Discard, header)
+ }
+ switch frame.PayloadType() {
+ case ContinuationFrame:
+ frame.(*hybiFrameReader).header.OpCode = handler.payloadType
+ case TextFrame, BinaryFrame:
+ handler.payloadType = frame.PayloadType()
+ case CloseFrame:
+ return nil, io.EOF
+ case PingFrame, PongFrame:
+ b := make([]byte, maxControlFramePayloadLength)
+ n, err := io.ReadFull(frame, b)
+ if err != nil && err != io.EOF && err != io.ErrUnexpectedEOF {
+ return nil, err
+ }
+ io.Copy(ioutil.Discard, frame)
+ if frame.PayloadType() == PingFrame {
+ if _, err := handler.WritePong(b[:n]); err != nil {
+ return nil, err
+ }
+ }
+ return nil, nil
+ }
+ return frame, nil
+}
+
+func (handler *hybiFrameHandler) WriteClose(status int) (err error) {
+ handler.conn.wio.Lock()
+ defer handler.conn.wio.Unlock()
+ w, err := handler.conn.frameWriterFactory.NewFrameWriter(CloseFrame)
+ if err != nil {
+ return err
+ }
+ msg := make([]byte, 2)
+ binary.BigEndian.PutUint16(msg, uint16(status))
+ _, err = w.Write(msg)
+ w.Close()
+ return err
+}
+
+func (handler *hybiFrameHandler) WritePong(msg []byte) (n int, err error) {
+ handler.conn.wio.Lock()
+ defer handler.conn.wio.Unlock()
+ w, err := handler.conn.frameWriterFactory.NewFrameWriter(PongFrame)
+ if err != nil {
+ return 0, err
+ }
+ n, err = w.Write(msg)
+ w.Close()
+ return n, err
+}
+
+// newHybiConn creates a new WebSocket connection speaking hybi draft protocol.
+func newHybiConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+ if buf == nil {
+ br := bufio.NewReader(rwc)
+ bw := bufio.NewWriter(rwc)
+ buf = bufio.NewReadWriter(br, bw)
+ }
+ ws := &Conn{config: config, request: request, buf: buf, rwc: rwc,
+ frameReaderFactory: hybiFrameReaderFactory{buf.Reader},
+ frameWriterFactory: hybiFrameWriterFactory{
+ buf.Writer, request == nil},
+ PayloadType: TextFrame,
+ defaultCloseStatus: closeStatusNormal}
+ ws.frameHandler = &hybiFrameHandler{conn: ws}
+ return ws
+}
+
+// generateMaskingKey generates a masking key for a frame.
+func generateMaskingKey() (maskingKey []byte, err error) {
+ maskingKey = make([]byte, 4)
+ if _, err = io.ReadFull(rand.Reader, maskingKey); err != nil {
+ return
+ }
+ return
+}
+
+// generateNonce generates a nonce consisting of a randomly selected 16-byte
+// value that has been base64-encoded.
+func generateNonce() (nonce []byte) {
+ key := make([]byte, 16)
+ if _, err := io.ReadFull(rand.Reader, key); err != nil {
+ panic(err)
+ }
+ nonce = make([]byte, 24)
+ base64.StdEncoding.Encode(nonce, key)
+ return
+}
+
+// removeZone removes IPv6 zone identifer from host.
+// E.g., "[fe80::1%en0]:8080" to "[fe80::1]:8080"
+func removeZone(host string) string {
+ if !strings.HasPrefix(host, "[") {
+ return host
+ }
+ i := strings.LastIndex(host, "]")
+ if i < 0 {
+ return host
+ }
+ j := strings.LastIndex(host[:i], "%")
+ if j < 0 {
+ return host
+ }
+ return host[:j] + host[i:]
+}
+
+// getNonceAccept computes the base64-encoded SHA-1 of the concatenation of
+// the nonce ("Sec-WebSocket-Key" value) with the websocket GUID string.
+func getNonceAccept(nonce []byte) (expected []byte, err error) {
+ h := sha1.New()
+ if _, err = h.Write(nonce); err != nil {
+ return
+ }
+ if _, err = h.Write([]byte(websocketGUID)); err != nil {
+ return
+ }
+ expected = make([]byte, 28)
+ base64.StdEncoding.Encode(expected, h.Sum(nil))
+ return
+}
+
+// Client handshake described in draft-ietf-hybi-thewebsocket-protocol-17
+func hybiClientHandshake(config *Config, br *bufio.Reader, bw *bufio.Writer) (err error) {
+ bw.WriteString("GET " + config.Location.RequestURI() + " HTTP/1.1\r\n")
+
+ // According to RFC 6874, an HTTP client, proxy, or other
+ // intermediary must remove any IPv6 zone identifier attached
+ // to an outgoing URI.
+ bw.WriteString("Host: " + removeZone(config.Location.Host) + "\r\n")
+ bw.WriteString("Upgrade: websocket\r\n")
+ bw.WriteString("Connection: Upgrade\r\n")
+ nonce := generateNonce()
+ if config.handshakeData != nil {
+ nonce = []byte(config.handshakeData["key"])
+ }
+ bw.WriteString("Sec-WebSocket-Key: " + string(nonce) + "\r\n")
+ bw.WriteString("Origin: " + strings.ToLower(config.Origin.String()) + "\r\n")
+
+ if config.Version != ProtocolVersionHybi13 {
+ return ErrBadProtocolVersion
+ }
+
+ bw.WriteString("Sec-WebSocket-Version: " + fmt.Sprintf("%d", config.Version) + "\r\n")
+ if len(config.Protocol) > 0 {
+ bw.WriteString("Sec-WebSocket-Protocol: " + strings.Join(config.Protocol, ", ") + "\r\n")
+ }
+ // TODO(ukai): send Sec-WebSocket-Extensions.
+ err = config.Header.WriteSubset(bw, handshakeHeader)
+ if err != nil {
+ return err
+ }
+
+ bw.WriteString("\r\n")
+ if err = bw.Flush(); err != nil {
+ return err
+ }
+
+ resp, err := http.ReadResponse(br, &http.Request{Method: "GET"})
+ if err != nil {
+ return err
+ }
+ if resp.StatusCode != 101 {
+ return ErrBadStatus
+ }
+ if strings.ToLower(resp.Header.Get("Upgrade")) != "websocket" ||
+ strings.ToLower(resp.Header.Get("Connection")) != "upgrade" {
+ return ErrBadUpgrade
+ }
+ expectedAccept, err := getNonceAccept(nonce)
+ if err != nil {
+ return err
+ }
+ if resp.Header.Get("Sec-WebSocket-Accept") != string(expectedAccept) {
+ return ErrChallengeResponse
+ }
+ if resp.Header.Get("Sec-WebSocket-Extensions") != "" {
+ return ErrUnsupportedExtensions
+ }
+ offeredProtocol := resp.Header.Get("Sec-WebSocket-Protocol")
+ if offeredProtocol != "" {
+ protocolMatched := false
+ for i := 0; i < len(config.Protocol); i++ {
+ if config.Protocol[i] == offeredProtocol {
+ protocolMatched = true
+ break
+ }
+ }
+ if !protocolMatched {
+ return ErrBadWebSocketProtocol
+ }
+ config.Protocol = []string{offeredProtocol}
+ }
+
+ return nil
+}
+
+// newHybiClientConn creates a client WebSocket connection after handshake.
+func newHybiClientConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser) *Conn {
+ return newHybiConn(config, buf, rwc, nil)
+}
+
+// A HybiServerHandshaker performs a server handshake using hybi draft protocol.
+type hybiServerHandshaker struct {
+ *Config
+ accept []byte
+}
+
+func (c *hybiServerHandshaker) ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error) {
+ c.Version = ProtocolVersionHybi13
+ if req.Method != "GET" {
+ return http.StatusMethodNotAllowed, ErrBadRequestMethod
+ }
+ // HTTP version can be safely ignored.
+
+ if strings.ToLower(req.Header.Get("Upgrade")) != "websocket" ||
+ !strings.Contains(strings.ToLower(req.Header.Get("Connection")), "upgrade") {
+ return http.StatusBadRequest, ErrNotWebSocket
+ }
+
+ key := req.Header.Get("Sec-Websocket-Key")
+ if key == "" {
+ return http.StatusBadRequest, ErrChallengeResponse
+ }
+ version := req.Header.Get("Sec-Websocket-Version")
+ switch version {
+ case "13":
+ c.Version = ProtocolVersionHybi13
+ default:
+ return http.StatusBadRequest, ErrBadWebSocketVersion
+ }
+ var scheme string
+ if req.TLS != nil {
+ scheme = "wss"
+ } else {
+ scheme = "ws"
+ }
+ c.Location, err = url.ParseRequestURI(scheme + "://" + req.Host + req.URL.RequestURI())
+ if err != nil {
+ return http.StatusBadRequest, err
+ }
+ protocol := strings.TrimSpace(req.Header.Get("Sec-Websocket-Protocol"))
+ if protocol != "" {
+ protocols := strings.Split(protocol, ",")
+ for i := 0; i < len(protocols); i++ {
+ c.Protocol = append(c.Protocol, strings.TrimSpace(protocols[i]))
+ }
+ }
+ c.accept, err = getNonceAccept([]byte(key))
+ if err != nil {
+ return http.StatusInternalServerError, err
+ }
+ return http.StatusSwitchingProtocols, nil
+}
+
+// Origin parses the Origin header in req.
+// If the Origin header is not set, it returns nil and nil.
+func Origin(config *Config, req *http.Request) (*url.URL, error) {
+ var origin string
+ switch config.Version {
+ case ProtocolVersionHybi13:
+ origin = req.Header.Get("Origin")
+ }
+ if origin == "" {
+ return nil, nil
+ }
+ return url.ParseRequestURI(origin)
+}
+
+func (c *hybiServerHandshaker) AcceptHandshake(buf *bufio.Writer) (err error) {
+ if len(c.Protocol) > 0 {
+ if len(c.Protocol) != 1 {
+ // You need choose a Protocol in Handshake func in Server.
+ return ErrBadWebSocketProtocol
+ }
+ }
+ buf.WriteString("HTTP/1.1 101 Switching Protocols\r\n")
+ buf.WriteString("Upgrade: websocket\r\n")
+ buf.WriteString("Connection: Upgrade\r\n")
+ buf.WriteString("Sec-WebSocket-Accept: " + string(c.accept) + "\r\n")
+ if len(c.Protocol) > 0 {
+ buf.WriteString("Sec-WebSocket-Protocol: " + c.Protocol[0] + "\r\n")
+ }
+ // TODO(ukai): send Sec-WebSocket-Extensions.
+ if c.Header != nil {
+ err := c.Header.WriteSubset(buf, handshakeHeader)
+ if err != nil {
+ return err
+ }
+ }
+ buf.WriteString("\r\n")
+ return buf.Flush()
+}
+
+func (c *hybiServerHandshaker) NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+ return newHybiServerConn(c.Config, buf, rwc, request)
+}
+
+// newHybiServerConn returns a new WebSocket connection speaking hybi draft protocol.
+func newHybiServerConn(config *Config, buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) *Conn {
+ return newHybiConn(config, buf, rwc, request)
+}
diff --git a/vendor/golang.org/x/net/websocket/server.go b/vendor/golang.org/x/net/websocket/server.go
new file mode 100644
index 000000000..0895dea19
--- /dev/null
+++ b/vendor/golang.org/x/net/websocket/server.go
@@ -0,0 +1,113 @@
+// 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 websocket
+
+import (
+ "bufio"
+ "fmt"
+ "io"
+ "net/http"
+)
+
+func newServerConn(rwc io.ReadWriteCloser, buf *bufio.ReadWriter, req *http.Request, config *Config, handshake func(*Config, *http.Request) error) (conn *Conn, err error) {
+ var hs serverHandshaker = &hybiServerHandshaker{Config: config}
+ code, err := hs.ReadHandshake(buf.Reader, req)
+ if err == ErrBadWebSocketVersion {
+ fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+ fmt.Fprintf(buf, "Sec-WebSocket-Version: %s\r\n", SupportedProtocolVersion)
+ buf.WriteString("\r\n")
+ buf.WriteString(err.Error())
+ buf.Flush()
+ return
+ }
+ if err != nil {
+ fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+ buf.WriteString("\r\n")
+ buf.WriteString(err.Error())
+ buf.Flush()
+ return
+ }
+ if handshake != nil {
+ err = handshake(config, req)
+ if err != nil {
+ code = http.StatusForbidden
+ fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+ buf.WriteString("\r\n")
+ buf.Flush()
+ return
+ }
+ }
+ err = hs.AcceptHandshake(buf.Writer)
+ if err != nil {
+ code = http.StatusBadRequest
+ fmt.Fprintf(buf, "HTTP/1.1 %03d %s\r\n", code, http.StatusText(code))
+ buf.WriteString("\r\n")
+ buf.Flush()
+ return
+ }
+ conn = hs.NewServerConn(buf, rwc, req)
+ return
+}
+
+// Server represents a server of a WebSocket.
+type Server struct {
+ // Config is a WebSocket configuration for new WebSocket connection.
+ Config
+
+ // Handshake is an optional function in WebSocket handshake.
+ // For example, you can check, or don't check Origin header.
+ // Another example, you can select config.Protocol.
+ Handshake func(*Config, *http.Request) error
+
+ // Handler handles a WebSocket connection.
+ Handler
+}
+
+// ServeHTTP implements the http.Handler interface for a WebSocket
+func (s Server) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+ s.serveWebSocket(w, req)
+}
+
+func (s Server) serveWebSocket(w http.ResponseWriter, req *http.Request) {
+ rwc, buf, err := w.(http.Hijacker).Hijack()
+ if err != nil {
+ panic("Hijack failed: " + err.Error())
+ }
+ // The server should abort the WebSocket connection if it finds
+ // the client did not send a handshake that matches with protocol
+ // specification.
+ defer rwc.Close()
+ conn, err := newServerConn(rwc, buf, req, &s.Config, s.Handshake)
+ if err != nil {
+ return
+ }
+ if conn == nil {
+ panic("unexpected nil conn")
+ }
+ s.Handler(conn)
+}
+
+// Handler is a simple interface to a WebSocket browser client.
+// It checks if Origin header is valid URL by default.
+// You might want to verify websocket.Conn.Config().Origin in the func.
+// If you use Server instead of Handler, you could call websocket.Origin and
+// check the origin in your Handshake func. So, if you want to accept
+// non-browser clients, which do not send an Origin header, set a
+// Server.Handshake that does not check the origin.
+type Handler func(*Conn)
+
+func checkOrigin(config *Config, req *http.Request) (err error) {
+ config.Origin, err = Origin(config, req)
+ if err == nil && config.Origin == nil {
+ return fmt.Errorf("null origin")
+ }
+ return err
+}
+
+// ServeHTTP implements the http.Handler interface for a WebSocket
+func (h Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+ s := Server{Handler: h, Handshake: checkOrigin}
+ s.serveWebSocket(w, req)
+}
diff --git a/vendor/golang.org/x/net/websocket/websocket.go b/vendor/golang.org/x/net/websocket/websocket.go
new file mode 100644
index 000000000..a7731d9c9
--- /dev/null
+++ b/vendor/golang.org/x/net/websocket/websocket.go
@@ -0,0 +1,442 @@
+// 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 websocket implements a client and server for the WebSocket protocol
+// as specified in RFC 6455.
+package websocket // import "golang.org/x/net/websocket"
+
+import (
+ "bufio"
+ "crypto/tls"
+ "encoding/json"
+ "errors"
+ "io"
+ "io/ioutil"
+ "net"
+ "net/http"
+ "net/url"
+ "sync"
+ "time"
+)
+
+const (
+ ProtocolVersionHybi13 = 13
+ ProtocolVersionHybi = ProtocolVersionHybi13
+ SupportedProtocolVersion = "13"
+
+ ContinuationFrame = 0
+ TextFrame = 1
+ BinaryFrame = 2
+ CloseFrame = 8
+ PingFrame = 9
+ PongFrame = 10
+ UnknownFrame = 255
+
+ DefaultMaxPayloadBytes = 32 << 20 // 32MB
+)
+
+// ProtocolError represents WebSocket protocol errors.
+type ProtocolError struct {
+ ErrorString string
+}
+
+func (err *ProtocolError) Error() string { return err.ErrorString }
+
+var (
+ ErrBadProtocolVersion = &ProtocolError{"bad protocol version"}
+ ErrBadScheme = &ProtocolError{"bad scheme"}
+ ErrBadStatus = &ProtocolError{"bad status"}
+ ErrBadUpgrade = &ProtocolError{"missing or bad upgrade"}
+ ErrBadWebSocketOrigin = &ProtocolError{"missing or bad WebSocket-Origin"}
+ ErrBadWebSocketLocation = &ProtocolError{"missing or bad WebSocket-Location"}
+ ErrBadWebSocketProtocol = &ProtocolError{"missing or bad WebSocket-Protocol"}
+ ErrBadWebSocketVersion = &ProtocolError{"missing or bad WebSocket Version"}
+ ErrChallengeResponse = &ProtocolError{"mismatch challenge/response"}
+ ErrBadFrame = &ProtocolError{"bad frame"}
+ ErrBadFrameBoundary = &ProtocolError{"not on frame boundary"}
+ ErrNotWebSocket = &ProtocolError{"not websocket protocol"}
+ ErrBadRequestMethod = &ProtocolError{"bad method"}
+ ErrNotSupported = &ProtocolError{"not supported"}
+)
+
+// ErrFrameTooLarge is returned by Codec's Receive method if payload size
+// exceeds limit set by Conn.MaxPayloadBytes
+var ErrFrameTooLarge = errors.New("websocket: frame payload size exceeds limit")
+
+// Addr is an implementation of net.Addr for WebSocket.
+type Addr struct {
+ *url.URL
+}
+
+// Network returns the network type for a WebSocket, "websocket".
+func (addr *Addr) Network() string { return "websocket" }
+
+// Config is a WebSocket configuration
+type Config struct {
+ // A WebSocket server address.
+ Location *url.URL
+
+ // A Websocket client origin.
+ Origin *url.URL
+
+ // WebSocket subprotocols.
+ Protocol []string
+
+ // WebSocket protocol version.
+ Version int
+
+ // TLS config for secure WebSocket (wss).
+ TlsConfig *tls.Config
+
+ // Additional header fields to be sent in WebSocket opening handshake.
+ Header http.Header
+
+ // Dialer used when opening websocket connections.
+ Dialer *net.Dialer
+
+ handshakeData map[string]string
+}
+
+// serverHandshaker is an interface to handle WebSocket server side handshake.
+type serverHandshaker interface {
+ // ReadHandshake reads handshake request message from client.
+ // Returns http response code and error if any.
+ ReadHandshake(buf *bufio.Reader, req *http.Request) (code int, err error)
+
+ // AcceptHandshake accepts the client handshake request and sends
+ // handshake response back to client.
+ AcceptHandshake(buf *bufio.Writer) (err error)
+
+ // NewServerConn creates a new WebSocket connection.
+ NewServerConn(buf *bufio.ReadWriter, rwc io.ReadWriteCloser, request *http.Request) (conn *Conn)
+}
+
+// frameReader is an interface to read a WebSocket frame.
+type frameReader interface {
+ // Reader is to read payload of the frame.
+ io.Reader
+
+ // PayloadType returns payload type.
+ PayloadType() byte
+
+ // HeaderReader returns a reader to read header of the frame.
+ HeaderReader() io.Reader
+
+ // TrailerReader returns a reader to read trailer of the frame.
+ // If it returns nil, there is no trailer in the frame.
+ TrailerReader() io.Reader
+
+ // Len returns total length of the frame, including header and trailer.
+ Len() int
+}
+
+// frameReaderFactory is an interface to creates new frame reader.
+type frameReaderFactory interface {
+ NewFrameReader() (r frameReader, err error)
+}
+
+// frameWriter is an interface to write a WebSocket frame.
+type frameWriter interface {
+ // Writer is to write payload of the frame.
+ io.WriteCloser
+}
+
+// frameWriterFactory is an interface to create new frame writer.
+type frameWriterFactory interface {
+ NewFrameWriter(payloadType byte) (w frameWriter, err error)
+}
+
+type frameHandler interface {
+ HandleFrame(frame frameReader) (r frameReader, err error)
+ WriteClose(status int) (err error)
+}
+
+// Conn represents a WebSocket connection.
+//
+// Multiple goroutines may invoke methods on a Conn simultaneously.
+type Conn struct {
+ config *Config
+ request *http.Request
+
+ buf *bufio.ReadWriter
+ rwc io.ReadWriteCloser
+
+ rio sync.Mutex
+ frameReaderFactory
+ frameReader
+
+ wio sync.Mutex
+ frameWriterFactory
+
+ frameHandler
+ PayloadType byte
+ defaultCloseStatus int
+
+ // MaxPayloadBytes limits the size of frame payload received over Conn
+ // by Codec's Receive method. If zero, DefaultMaxPayloadBytes is used.
+ MaxPayloadBytes int
+}
+
+// Read implements the io.Reader interface:
+// it reads data of a frame from the WebSocket connection.
+// if msg is not large enough for the frame data, it fills the msg and next Read
+// will read the rest of the frame data.
+// it reads Text frame or Binary frame.
+func (ws *Conn) Read(msg []byte) (n int, err error) {
+ ws.rio.Lock()
+ defer ws.rio.Unlock()
+again:
+ if ws.frameReader == nil {
+ frame, err := ws.frameReaderFactory.NewFrameReader()
+ if err != nil {
+ return 0, err
+ }
+ ws.frameReader, err = ws.frameHandler.HandleFrame(frame)
+ if err != nil {
+ return 0, err
+ }
+ if ws.frameReader == nil {
+ goto again
+ }
+ }
+ n, err = ws.frameReader.Read(msg)
+ if err == io.EOF {
+ if trailer := ws.frameReader.TrailerReader(); trailer != nil {
+ io.Copy(ioutil.Discard, trailer)
+ }
+ ws.frameReader = nil
+ goto again
+ }
+ return n, err
+}
+
+// Write implements the io.Writer interface:
+// it writes data as a frame to the WebSocket connection.
+func (ws *Conn) Write(msg []byte) (n int, err error) {
+ ws.wio.Lock()
+ defer ws.wio.Unlock()
+ w, err := ws.frameWriterFactory.NewFrameWriter(ws.PayloadType)
+ if err != nil {
+ return 0, err
+ }
+ n, err = w.Write(msg)
+ w.Close()
+ return n, err
+}
+
+// Close implements the io.Closer interface.
+func (ws *Conn) Close() error {
+ err := ws.frameHandler.WriteClose(ws.defaultCloseStatus)
+ err1 := ws.rwc.Close()
+ if err != nil {
+ return err
+ }
+ return err1
+}
+
+func (ws *Conn) IsClientConn() bool { return ws.request == nil }
+func (ws *Conn) IsServerConn() bool { return ws.request != nil }
+
+// LocalAddr returns the WebSocket Origin for the connection for client, or
+// the WebSocket location for server.
+func (ws *Conn) LocalAddr() net.Addr {
+ if ws.IsClientConn() {
+ return &Addr{ws.config.Origin}
+ }
+ return &Addr{ws.config.Location}
+}
+
+// RemoteAddr returns the WebSocket location for the connection for client, or
+// the Websocket Origin for server.
+func (ws *Conn) RemoteAddr() net.Addr {
+ if ws.IsClientConn() {
+ return &Addr{ws.config.Location}
+ }
+ return &Addr{ws.config.Origin}
+}
+
+var errSetDeadline = errors.New("websocket: cannot set deadline: not using a net.Conn")
+
+// SetDeadline sets the connection's network read & write deadlines.
+func (ws *Conn) SetDeadline(t time.Time) error {
+ if conn, ok := ws.rwc.(net.Conn); ok {
+ return conn.SetDeadline(t)
+ }
+ return errSetDeadline
+}
+
+// SetReadDeadline sets the connection's network read deadline.
+func (ws *Conn) SetReadDeadline(t time.Time) error {
+ if conn, ok := ws.rwc.(net.Conn); ok {
+ return conn.SetReadDeadline(t)
+ }
+ return errSetDeadline
+}
+
+// SetWriteDeadline sets the connection's network write deadline.
+func (ws *Conn) SetWriteDeadline(t time.Time) error {
+ if conn, ok := ws.rwc.(net.Conn); ok {
+ return conn.SetWriteDeadline(t)
+ }
+ return errSetDeadline
+}
+
+// Config returns the WebSocket config.
+func (ws *Conn) Config() *Config { return ws.config }
+
+// Request returns the http request upgraded to the WebSocket.
+// It is nil for client side.
+func (ws *Conn) Request() *http.Request { return ws.request }
+
+// Codec represents a symmetric pair of functions that implement a codec.
+type Codec struct {
+ Marshal func(v interface{}) (data []byte, payloadType byte, err error)
+ Unmarshal func(data []byte, payloadType byte, v interface{}) (err error)
+}
+
+// Send sends v marshaled by cd.Marshal as single frame to ws.
+func (cd Codec) Send(ws *Conn, v interface{}) (err error) {
+ data, payloadType, err := cd.Marshal(v)
+ if err != nil {
+ return err
+ }
+ ws.wio.Lock()
+ defer ws.wio.Unlock()
+ w, err := ws.frameWriterFactory.NewFrameWriter(payloadType)
+ if err != nil {
+ return err
+ }
+ _, err = w.Write(data)
+ w.Close()
+ return err
+}
+
+// Receive receives single frame from ws, unmarshaled by cd.Unmarshal and stores
+// in v. The whole frame payload is read to an in-memory buffer; max size of
+// payload is defined by ws.MaxPayloadBytes. If frame payload size exceeds
+// limit, ErrFrameTooLarge is returned; in this case frame is not read off wire
+// completely. The next call to Receive would read and discard leftover data of
+// previous oversized frame before processing next frame.
+func (cd Codec) Receive(ws *Conn, v interface{}) (err error) {
+ ws.rio.Lock()
+ defer ws.rio.Unlock()
+ if ws.frameReader != nil {
+ _, err = io.Copy(ioutil.Discard, ws.frameReader)
+ if err != nil {
+ return err
+ }
+ ws.frameReader = nil
+ }
+again:
+ frame, err := ws.frameReaderFactory.NewFrameReader()
+ if err != nil {
+ return err
+ }
+ frame, err = ws.frameHandler.HandleFrame(frame)
+ if err != nil {
+ return err
+ }
+ if frame == nil {
+ goto again
+ }
+ maxPayloadBytes := ws.MaxPayloadBytes
+ if maxPayloadBytes == 0 {
+ maxPayloadBytes = DefaultMaxPayloadBytes
+ }
+ if hf, ok := frame.(*hybiFrameReader); ok && hf.header.Length > int64(maxPayloadBytes) {
+ // payload size exceeds limit, no need to call Unmarshal
+ //
+ // set frameReader to current oversized frame so that
+ // the next call to this function can drain leftover
+ // data before processing the next frame
+ ws.frameReader = frame
+ return ErrFrameTooLarge
+ }
+ payloadType := frame.PayloadType()
+ data, err := ioutil.ReadAll(frame)
+ if err != nil {
+ return err
+ }
+ return cd.Unmarshal(data, payloadType, v)
+}
+
+func marshal(v interface{}) (msg []byte, payloadType byte, err error) {
+ switch data := v.(type) {
+ case string:
+ return []byte(data), TextFrame, nil
+ case []byte:
+ return data, BinaryFrame, nil
+ }
+ return nil, UnknownFrame, ErrNotSupported
+}
+
+func unmarshal(msg []byte, payloadType byte, v interface{}) (err error) {
+ switch data := v.(type) {
+ case *string:
+ *data = string(msg)
+ return nil
+ case *[]byte:
+ *data = msg
+ return nil
+ }
+ return ErrNotSupported
+}
+
+/*
+Message is a codec to send/receive text/binary data in a frame on WebSocket connection.
+To send/receive text frame, use string type.
+To send/receive binary frame, use []byte type.
+
+Trivial usage:
+
+ import "websocket"
+
+ // receive text frame
+ var message string
+ websocket.Message.Receive(ws, &message)
+
+ // send text frame
+ message = "hello"
+ websocket.Message.Send(ws, message)
+
+ // receive binary frame
+ var data []byte
+ websocket.Message.Receive(ws, &data)
+
+ // send binary frame
+ data = []byte{0, 1, 2}
+ websocket.Message.Send(ws, data)
+
+*/
+var Message = Codec{marshal, unmarshal}
+
+func jsonMarshal(v interface{}) (msg []byte, payloadType byte, err error) {
+ msg, err = json.Marshal(v)
+ return msg, TextFrame, err
+}
+
+func jsonUnmarshal(msg []byte, payloadType byte, v interface{}) (err error) {
+ return json.Unmarshal(msg, v)
+}
+
+/*
+JSON is a codec to send/receive JSON data in a frame from a WebSocket connection.
+
+Trivial usage:
+
+ import "websocket"
+
+ type T struct {
+ Msg string
+ Count int
+ }
+
+ // receive JSON type T
+ var data T
+ websocket.JSON.Receive(ws, &data)
+
+ // send JSON type T
+ websocket.JSON.Send(ws, data)
+*/
+var JSON = Codec{jsonMarshal, jsonUnmarshal}
diff --git a/vendor/golang.org/x/sys/.gitattributes b/vendor/golang.org/x/sys/.gitattributes
new file mode 100644
index 000000000..d2f212e5d
--- /dev/null
+++ b/vendor/golang.org/x/sys/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/vendor/golang.org/x/sys/.gitignore b/vendor/golang.org/x/sys/.gitignore
new file mode 100644
index 000000000..8339fd61d
--- /dev/null
+++ b/vendor/golang.org/x/sys/.gitignore
@@ -0,0 +1,2 @@
+# Add no patterns to .hgignore except for files generated by the build.
+last-change
diff --git a/vendor/golang.org/x/sys/AUTHORS b/vendor/golang.org/x/sys/AUTHORS
new file mode 100644
index 000000000..15167cd74
--- /dev/null
+++ b/vendor/golang.org/x/sys/AUTHORS
@@ -0,0 +1,3 @@
+# 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/sys/CONTRIBUTING.md b/vendor/golang.org/x/sys/CONTRIBUTING.md
new file mode 100644
index 000000000..88dff59bc
--- /dev/null
+++ b/vendor/golang.org/x/sys/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# 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/sys/CONTRIBUTORS b/vendor/golang.org/x/sys/CONTRIBUTORS
new file mode 100644
index 000000000..1c4577e96
--- /dev/null
+++ b/vendor/golang.org/x/sys/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# 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/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE
new file mode 100644
index 000000000..6a66aea5e
--- /dev/null
+++ b/vendor/golang.org/x/sys/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS
new file mode 100644
index 000000000..733099041
--- /dev/null
+++ b/vendor/golang.org/x/sys/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/sys/README b/vendor/golang.org/x/sys/README
new file mode 100644
index 000000000..bd422b40c
--- /dev/null
+++ b/vendor/golang.org/x/sys/README
@@ -0,0 +1,3 @@
+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/golang.org/x/sys/codereview.cfg b/vendor/golang.org/x/sys/codereview.cfg
new file mode 100644
index 000000000..3f8b14b64
--- /dev/null
+++ b/vendor/golang.org/x/sys/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/vendor/golang.org/x/sys/unix/.gitignore b/vendor/golang.org/x/sys/unix/.gitignore
new file mode 100644
index 000000000..e48271590
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/.gitignore
@@ -0,0 +1 @@
+_obj/
diff --git a/vendor/golang.org/x/sys/unix/asm.s b/vendor/golang.org/x/sys/unix/asm.s
new file mode 100644
index 000000000..8ed2fdb94
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm.s
@@ -0,0 +1,10 @@
+// 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/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s
new file mode 100644
index 000000000..8a7278319
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s
new file mode 100644
index 000000000..6321421f2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s
new file mode 100644
index 000000000..333242d50
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s
@@ -0,0 +1,30 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+// +build arm,darwin
+
+#include "textflag.h"
+
+//
+// System call support for ARM, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s
new file mode 100644
index 000000000..97e017437
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s
@@ -0,0 +1,30 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+// +build arm64,darwin
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, Darwin
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
new file mode 100644
index 000000000..d5ed6726c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, DragonFly
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-64
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-88
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-112
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-64
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-88
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s
new file mode 100644
index 000000000..c9a0a2601
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s
new file mode 100644
index 000000000..35172477c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s
new file mode 100644
index 000000000..9227c875b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s
@@ -0,0 +1,29 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, FreeBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s
new file mode 100644
index 000000000..4db290932
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s
@@ -0,0 +1,35 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for 386, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·socketcall(SB),NOSPLIT,$0-36
+ JMP syscall·socketcall(SB)
+
+TEXT ·rawsocketcall(SB),NOSPLIT,$0-36
+ JMP syscall·rawsocketcall(SB)
+
+TEXT ·seek(SB),NOSPLIT,$0-28
+ JMP syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
new file mode 100644
index 000000000..44e25c62f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for AMD64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
+
+TEXT ·gettimeofday(SB),NOSPLIT,$0-16
+ JMP syscall·gettimeofday(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
new file mode 100644
index 000000000..cf0b57465
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for arm, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
+
+TEXT ·seek(SB),NOSPLIT,$0-32
+ B syscall·seek(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
new file mode 100644
index 000000000..4be9bfede
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s
@@ -0,0 +1,24 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build arm64
+// +build !gccgo
+
+#include "textflag.h"
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ B syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
new file mode 100644
index 000000000..724e580c4
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s
@@ -0,0 +1,28 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips64 mips64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for mips64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
new file mode 100644
index 000000000..8d231feb4
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s
@@ -0,0 +1,28 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build ppc64 ppc64le
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for ppc64, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ BR syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ BR syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ BR syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ BR syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
new file mode 100644
index 000000000..11889859f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s
@@ -0,0 +1,28 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build s390x
+// +build linux
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System calls for s390x, Linux
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ BR syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ BR syscall·Syscall6(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ BR syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ BR syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s
new file mode 100644
index 000000000..48bdcd763
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s
new file mode 100644
index 000000000..2ede05c72
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s
new file mode 100644
index 000000000..e8928571c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s
@@ -0,0 +1,29 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for ARM, NetBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ B syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ B syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ B syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ B syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ B syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s
new file mode 100644
index 000000000..00576f3c8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for 386, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-28
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-40
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-52
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-28
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s
new file mode 100644
index 000000000..790ef77f8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s
@@ -0,0 +1,29 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build !gccgo
+
+#include "textflag.h"
+
+//
+// System call support for AMD64, OpenBSD
+//
+
+// Just jump to package syscall's implementation for all these functions.
+// The runtime may know about them.
+
+TEXT ·Syscall(SB),NOSPLIT,$0-56
+ JMP syscall·Syscall(SB)
+
+TEXT ·Syscall6(SB),NOSPLIT,$0-80
+ JMP syscall·Syscall6(SB)
+
+TEXT ·Syscall9(SB),NOSPLIT,$0-104
+ JMP syscall·Syscall9(SB)
+
+TEXT ·RawSyscall(SB),NOSPLIT,$0-56
+ JMP syscall·RawSyscall(SB)
+
+TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
+ JMP syscall·RawSyscall6(SB)
diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
new file mode 100644
index 000000000..43ed17a05
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s
@@ -0,0 +1,17 @@
+// 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/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
new file mode 100644
index 000000000..6e3229697
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go
@@ -0,0 +1,35 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Bluetooth sockets and messages
+
+package unix
+
+// Bluetooth Protocols
+const (
+ BTPROTO_L2CAP = 0
+ BTPROTO_HCI = 1
+ BTPROTO_SCO = 2
+ BTPROTO_RFCOMM = 3
+ BTPROTO_BNEP = 4
+ BTPROTO_CMTP = 5
+ BTPROTO_HIDP = 6
+ BTPROTO_AVDTP = 7
+)
+
+const (
+ HCI_CHANNEL_RAW = 0
+ HCI_CHANNEL_USER = 1
+ HCI_CHANNEL_MONITOR = 2
+ HCI_CHANNEL_CONTROL = 3
+)
+
+// Socketoption Level
+const (
+ SOL_BLUETOOTH = 0x112
+ SOL_HCI = 0x0
+ SOL_L2CAP = 0x6
+ SOL_RFCOMM = 0x12
+ SOL_SCO = 0x11
+)
diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go
new file mode 100644
index 000000000..a96f0ebc2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/constants.go
@@ -0,0 +1,13 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+const (
+ R_OK = 0x4
+ W_OK = 0x2
+ X_OK = 0x1
+)
diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go
new file mode 100644
index 000000000..45e281a04
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/env_unix.go
@@ -0,0 +1,27 @@
+// Copyright 2010 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Unix environment variables.
+
+package unix
+
+import "syscall"
+
+func Getenv(key string) (value string, found bool) {
+ return syscall.Getenv(key)
+}
+
+func Setenv(key, value string) error {
+ return syscall.Setenv(key, value)
+}
+
+func Clearenv() {
+ syscall.Clearenv()
+}
+
+func Environ() []string {
+ return syscall.Environ()
+}
diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go
new file mode 100644
index 000000000..922226255
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/env_unset.go
@@ -0,0 +1,14 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.4
+
+package unix
+
+import "syscall"
+
+func Unsetenv(key string) error {
+ // This was added in Go 1.4.
+ return syscall.Unsetenv(key)
+}
diff --git a/vendor/golang.org/x/sys/unix/flock.go b/vendor/golang.org/x/sys/unix/flock.go
new file mode 100644
index 000000000..ce67a5952
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/flock.go
@@ -0,0 +1,24 @@
+// +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/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go
new file mode 100644
index 000000000..362831c3f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go
@@ -0,0 +1,13 @@
+// +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/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go
new file mode 100644
index 000000000..94c823212
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo.go
@@ -0,0 +1,46 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo
+
+package unix
+
+import "syscall"
+
+// We can't use the gc-syntax .s files for gccgo. On the plus side
+// much of the functionality can be written directly in Go.
+
+//extern gccgoRealSyscall
+func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr)
+
+func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ syscall.Entersyscall()
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9)
+ syscall.Exitsyscall()
+ return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0)
+ return r, 0, syscall.Errno(errno)
+}
+
+func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
+ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0)
+ return r, 0, syscall.Errno(errno)
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c
new file mode 100644
index 000000000..07f6be039
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo_c.c
@@ -0,0 +1,41 @@
+// 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 <errno.h>
+#include <stdint.h>
+#include <unistd.h>
+
+#define _STRINGIFY2_(x) #x
+#define _STRINGIFY_(x) _STRINGIFY2_(x)
+#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__)
+
+// Call syscall from C code because the gccgo support for calling from
+// Go to C does not support varargs functions.
+
+struct ret {
+ uintptr_t r;
+ uintptr_t err;
+};
+
+struct ret
+gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9)
+{
+ struct ret r;
+
+ errno = 0;
+ r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9);
+ r.err = errno;
+ return r;
+}
+
+// Define the use function in C so that it is not inlined.
+
+extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline));
+
+void
+use(void *p __attribute__ ((unused)))
+{
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
new file mode 100644
index 000000000..bffe1a77d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go
@@ -0,0 +1,20 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo,linux,amd64
+
+package unix
+
+import "syscall"
+
+//extern gettimeofday
+func realGettimeofday(*Timeval, *byte) int32
+
+func gettimeofday(tv *Timeval) (err syscall.Errno) {
+ r := realGettimeofday(tv, nil)
+ if r < 0 {
+ return syscall.GetErrno()
+ }
+ return 0
+}
diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
new file mode 100644
index 000000000..56332692c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go
@@ -0,0 +1,20 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build gccgo,linux,sparc64
+
+package unix
+
+import "syscall"
+
+//extern sysconf
+func realSysconf(name int) int64
+
+func sysconf(name int) (n int64, err syscall.Errno) {
+ r := realSysconf(name)
+ if r < 0 {
+ return 0, syscall.GetErrno()
+ }
+ return r, 0
+}
diff --git a/vendor/golang.org/x/sys/unix/mkall.sh b/vendor/golang.org/x/sys/unix/mkall.sh
new file mode 100755
index 000000000..2a1473f16
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkall.sh
@@ -0,0 +1,292 @@
+#!/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 signed 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 signed 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"
+ ;;
+linux_s390x)
+ GOOSARCH_in=syscall_linux_s390x.go
+ unistd_h=/usr/include/asm/unistd.h
+ mkerrors="$mkerrors -m64"
+ mksysnum="./mksysnum_linux.pl $unistd_h"
+ # Let the type of C char be signed to make the bare sys
+ # API more consistent between platforms.
+ # This is a deliberate departure from the way the syscall
+ # package generates its version of the types file.
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
+ ;;
+linux_sparc64)
+ GOOSARCH_in=syscall_linux_sparc64.go
+ unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h
+ mkerrors="$mkerrors -m64"
+ mksysnum="./mksysnum_linux.pl $unistd_h"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+netbsd_386)
+ mkerrors="$mkerrors -m32"
+ mksyscall="./mksyscall.pl -l32 -netbsd"
+ mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+netbsd_amd64)
+ mkerrors="$mkerrors -m64"
+ mksyscall="./mksyscall.pl -netbsd"
+ mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
+ mktypes="GOARCH=$GOARCH go tool cgo -godefs"
+ ;;
+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 | go run mkpost.go >>ztypes_$GOOSARCH.go";
+ fi
+) | $run
diff --git a/vendor/golang.org/x/sys/unix/mkerrors.sh b/vendor/golang.org/x/sys/unix/mkerrors.sh
new file mode 100755
index 000000000..33b7922bd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkerrors.sh
@@ -0,0 +1,483 @@
+#!/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 <sys/types.h>
+#include <sys/event.h>
+#include <sys/ptrace.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <termios.h>
+'
+
+includes_DragonFly='
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <net/ip_mroute/ip_mroute.h>
+'
+
+includes_FreeBSD='
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <sys/extattr.h>
+
+#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 <bits/sockaddr.h>
+#include <sys/epoll.h>
+#include <sys/inotify.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/prctl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/socket.h>
+#include <linux/if.h>
+#include <linux/if_arp.h>
+#include <linux/if_ether.h>
+#include <linux/if_tun.h>
+#include <linux/if_packet.h>
+#include <linux/if_addr.h>
+#include <linux/filter.h>
+#include <linux/netlink.h>
+#include <linux/reboot.h>
+#include <linux/rtnetlink.h>
+#include <linux/ptrace.h>
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/icmpv6.h>
+#include <linux/serial.h>
+#include <net/route.h>
+#include <asm/termbits.h>
+
+#ifndef MSG_FASTOPEN
+#define MSG_FASTOPEN 0x20000000
+#endif
+
+#ifndef PTRACE_GETREGS
+#define PTRACE_GETREGS 0xc
+#endif
+
+#ifndef PTRACE_SETREGS
+#define PTRACE_SETREGS 0xd
+#endif
+
+#ifdef SOL_BLUETOOTH
+// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h
+// but it is already in bluetooth_linux.go
+#undef SOL_BLUETOOTH
+#endif
+'
+
+includes_NetBSD='
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/termios.h>
+#include <sys/ttycom.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <netinet/if_ether.h>
+
+// Needed since <sys/param.h> refers to it...
+#define schedppq 1
+'
+
+includes_OpenBSD='
+#include <sys/types.h>
+#include <sys/param.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/sysctl.h>
+#include <sys/termios.h>
+#include <sys/ttycom.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/if_var.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/in_systm.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+#include <netinet/if_ether.h>
+#include <net/if_bridge.h>
+
+// 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 <limits.h>
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/sockio.h>
+#include <sys/mman.h>
+#include <sys/wait.h>
+#include <sys/ioctl.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_arp.h>
+#include <net/if_types.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <termios.h>
+#include <netinet/ip.h>
+#include <netinet/ip_mroute.h>
+'
+
+
+includes='
+#include <sys/types.h>
+#include <sys/file.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/ip.h>
+#include <netinet/ip6.h>
+#include <netinet/tcp.h>
+#include <errno.h>
+#include <sys/signal.h>
+#include <signal.h>
+#include <sys/resource.h>
+#include <time.h>
+'
+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}# <asm/elf.h> contains ELF_ARCH, etc.
+
+ $2 ~ /^EXTATTR_NAMESPACE_NAMES/ ||
+ $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next}
+
+ $2 !~ /^ETH_/ &&
+ $2 !~ /^EPROC_/ &&
+ $2 !~ /^EQUIV_/ &&
+ $2 !~ /^EXPR_/ &&
+ $2 ~ /^E[A-Z0-9_]+$/ ||
+ $2 ~ /^B[0-9_]+$/ ||
+ $2 == "BOTHER" ||
+ $2 ~ /^CI?BAUD(EX)?$/ ||
+ $2 == "IBSHIFT" ||
+ $2 ~ /^V[A-Z0-9]+$/ ||
+ $2 ~ /^CS[A-Z0-9]/ ||
+ $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ ||
+ $2 ~ /^IGN/ ||
+ $2 ~ /^IX(ON|ANY|OFF)$/ ||
+ $2 ~ /^IN(LCR|PCK)$/ ||
+ $2 ~ /(^FLU?SH)|(FLU?SH$)/ ||
+ $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ ||
+ $2 == "BRKINT" ||
+ $2 == "HUPCL" ||
+ $2 == "PENDIN" ||
+ $2 == "TOSTOP" ||
+ $2 == "XCASE" ||
+ $2 == "ALTWERASE" ||
+ $2 == "NOKERNINFO" ||
+ $2 ~ /^PAR/ ||
+ $2 ~ /^SIG[^_]/ ||
+ $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ ||
+ $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ ||
+ $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ ||
+ $2 ~ /^O?XTABS$/ ||
+ $2 ~ /^TC[IO](ON|OFF)$/ ||
+ $2 ~ /^IN_/ ||
+ $2 ~ /^LOCK_(SH|EX|NB|UN)$/ ||
+ $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|ICMP6|TCP|EVFILT|NOTE|EV|SHUT|PROT|MAP|PACKET|MSG|SCM|MCL|DT|MADV|PR)_/ ||
+ $2 == "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|SBRKP?|XONC)$/ ||
+ $2 !~ "RTF_BITS" &&
+ $2 ~ /^(IFF|IFT|NET_RT|RTM|RTF|RTV|RTA|RTAX)_/ ||
+ $2 ~ /^BIOC/ ||
+ $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ ||
+ $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|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 <errno.h>' | $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 <signal.h>' | $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 <errno.h>' | $CC -x c - -E -dM $ccflags |
+ awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' |
+ sort >_error.grep
+echo '#include <signal.h>' | $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 <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <ctype.h>
+#include <string.h>
+#include <signal.h>
+
+#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<nelem(errors); i++) {
+ e = errors[i];
+ if(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<nelem(signals); i++) {
+ e = signals[i];
+ if(i > 0 && signals[i-1] == e)
+ continue;
+ strcpy(buf, strsignal(e));
+ // lowercase first letter: Bad -> bad, but STREAM -> STREAM.
+ if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z)
+ buf[0] += a - A;
+ // cut trailing : number.
+ p = strrchr(buf, ":"[0]);
+ if(p)
+ *p = '\0';
+ printf("\t%d: \"%s\",\n", e, buf);
+ }
+ printf("}\n\n");
+
+ return 0;
+}
+
+'
+) >_errors.c
+
+$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out
diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go
new file mode 100644
index 000000000..ed50d902a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mkpost.go
@@ -0,0 +1,62 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+// mkpost processes the output of cgo -godefs to
+// modify the generated types. It is used to clean up
+// the sys API in an architecture specific manner.
+//
+// mkpost is run after cgo -godefs by mkall.sh.
+package main
+
+import (
+ "fmt"
+ "go/format"
+ "io/ioutil"
+ "log"
+ "os"
+ "regexp"
+)
+
+func main() {
+ b, err := ioutil.ReadAll(os.Stdin)
+ if err != nil {
+ log.Fatal(err)
+ }
+ s := string(b)
+
+ goarch := os.Getenv("GOARCH")
+ goos := os.Getenv("GOOS")
+ if goarch == "s390x" && goos == "linux" {
+ // Export the types of PtraceRegs fields.
+ re := regexp.MustCompile("ptrace(Psw|Fpregs|Per)")
+ s = re.ReplaceAllString(s, "Ptrace$1")
+
+ // Replace padding fields inserted by cgo with blank identifiers.
+ re = regexp.MustCompile("Pad_cgo[A-Za-z0-9_]*")
+ s = re.ReplaceAllString(s, "_")
+
+ // Replace other unwanted fields with blank identifiers.
+ re = regexp.MustCompile("X_[A-Za-z0-9_]*")
+ s = re.ReplaceAllString(s, "_")
+
+ // Replace the control_regs union with a blank identifier for now.
+ re = regexp.MustCompile("(Control_regs)\\s+\\[0\\]uint64")
+ s = re.ReplaceAllString(s, "_ [0]uint64")
+ }
+
+ // gofmt
+ b, err = format.Source([]byte(s))
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Append this command to the header to show where the new file
+ // came from.
+ re := regexp.MustCompile("(cgo -godefs [a-zA-Z0-9_]+\\.go.*)")
+ b = re.ReplaceAll(b, []byte("$1 | go run mkpost.go"))
+
+ fmt.Printf("%s", b)
+}
diff --git a/vendor/golang.org/x/sys/unix/mksyscall.pl b/vendor/golang.org/x/sys/unix/mksyscall.pl
new file mode 100755
index 000000000..b1e7766da
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksyscall.pl
@@ -0,0 +1,323 @@
+#!/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 <<EOF;
+// $cmdline
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+var _ syscall.Errno
+
+$text
+EOF
+exit 0;
diff --git a/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl b/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
new file mode 100755
index 000000000..06bade768
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksyscall_solaris.pl
@@ -0,0 +1,294 @@
+#!/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_solaris.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 err.
+# * If go func name needs to be different than its libc name,
+# * or the function is not in libc, name could be specified
+# * at the end, after "=" sign, like
+# //sys getsockopt(s int, level int, name int, val uintptr, vallen *_Socklen) (err error) = libsocket.getsockopt
+
+use strict;
+
+my $cmdline = "mksyscall_solaris.pl " . join(' ', @ARGV);
+my $errors = 0;
+my $_32bit = "";
+
+binmode STDOUT;
+
+if($ARGV[0] eq "-b32") {
+ $_32bit = "big-endian";
+ shift;
+} elsif($ARGV[0] eq "-l32") {
+ $_32bit = "little-endian";
+ shift;
+}
+
+if($ARGV[0] =~ /^-/) {
+ print STDERR "usage: mksyscall_solaris.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 $package = "";
+my $text = "";
+my $dynimports = "";
+my $linknames = "";
+my @vars = ();
+while(<>) {
+ 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 <<EOF;
+// $cmdline
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package $package
+
+import (
+ "syscall"
+ "unsafe"
+)
+EOF
+
+print "import \"golang.org/x/sys/unix\"\n" if $package ne "unix";
+
+my $vardecls = "\t" . join(",\n\t", @vars);
+$vardecls .= " syscallFunc";
+
+chomp($_=<<EOF);
+
+$dynimports
+$linknames
+var (
+$vardecls
+)
+
+$text
+EOF
+print $_;
+exit 0;
diff --git a/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl
new file mode 100755
index 000000000..be67afa41
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysctl_openbsd.pl
@@ -0,0 +1,264 @@
+#!/usr/bin/env perl
+
+# 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.
+
+#
+# Parse the header files for OpenBSD and generate a Go usable sysctl MIB.
+#
+# Build a MIB with each entry being an array containing the level, type and
+# a hash that will contain additional entries if the current entry is a node.
+# We then walk this MIB and create a flattened sysctl name to OID hash.
+#
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $debug = 0;
+my %ctls = ();
+
+my @headers = qw (
+ sys/sysctl.h
+ sys/socket.h
+ sys/tty.h
+ sys/malloc.h
+ sys/mount.h
+ sys/namei.h
+ sys/sem.h
+ sys/shm.h
+ sys/vmmeter.h
+ uvm/uvm_param.h
+ uvm/uvm_swap_encrypt.h
+ ddb/db_var.h
+ net/if.h
+ net/if_pfsync.h
+ net/pipex.h
+ netinet/in.h
+ netinet/icmp_var.h
+ netinet/igmp_var.h
+ netinet/ip_ah.h
+ netinet/ip_carp.h
+ netinet/ip_divert.h
+ netinet/ip_esp.h
+ netinet/ip_ether.h
+ netinet/ip_gre.h
+ netinet/ip_ipcomp.h
+ netinet/ip_ipip.h
+ netinet/pim_var.h
+ netinet/tcp_var.h
+ netinet/udp_var.h
+ netinet6/in6.h
+ netinet6/ip6_divert.h
+ netinet6/pim6_var.h
+ netinet/icmp6.h
+ netmpls/mpls.h
+);
+
+my @ctls = qw (
+ kern
+ vm
+ fs
+ net
+ #debug # Special handling required
+ hw
+ #machdep # Arch specific
+ user
+ ddb
+ #vfs # Special handling required
+ fs.posix
+ kern.forkstat
+ kern.intrcnt
+ kern.malloc
+ kern.nchstats
+ kern.seminfo
+ kern.shminfo
+ kern.timecounter
+ kern.tty
+ kern.watchdog
+ net.bpf
+ net.ifq
+ net.inet
+ net.inet.ah
+ net.inet.carp
+ net.inet.divert
+ net.inet.esp
+ net.inet.etherip
+ net.inet.gre
+ net.inet.icmp
+ net.inet.igmp
+ net.inet.ip
+ net.inet.ip.ifq
+ net.inet.ipcomp
+ net.inet.ipip
+ net.inet.mobileip
+ net.inet.pfsync
+ net.inet.pim
+ net.inet.tcp
+ net.inet.udp
+ net.inet6
+ net.inet6.divert
+ net.inet6.ip6
+ net.inet6.icmp6
+ net.inet6.pim6
+ net.inet6.tcp6
+ net.inet6.udp6
+ net.mpls
+ net.mpls.ifq
+ net.key
+ net.pflow
+ net.pfsync
+ net.pipex
+ net.rt
+ vm.swapencrypt
+ #vfsgenctl # Special handling required
+);
+
+# Node name "fixups"
+my %ctl_map = (
+ "ipproto" => "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 (<HEADER>) {
+ 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($_) && $_ !~ /^}/) {
+ $_ = <HEADER>;
+ $i++ if $_ =~ /{.*}/;
+ next if $_ !~ /{\s+"(\w+)",\s+(CTLTYPE_[A-Z]+)\s+}/;
+ $$node{$1} = [ $i, $2, {} ];
+ }
+ }
+ }
+ close HEADER;
+}
+
+&build_sysctl(\%mib, "", []);
+
+print <<EOF;
+// mksysctl_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix;
+
+type mibentry struct {
+ ctlname string
+ ctloid []_C_int
+}
+
+var sysctlMib = []mibentry {
+EOF
+
+foreach my $name (sort keys %sysctl) {
+ my @oid = @{$sysctl{$name}};
+ print "\t{ \"$name\", []_C_int{ ", join(', ', @oid), " } }, \n";
+}
+
+print <<EOF;
+}
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl b/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl
new file mode 100755
index 000000000..d3e5147fc
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_darwin.pl
@@ -0,0 +1,39 @@
+#!/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.
+#
+# Generate system call table for Darwin from sys/syscall.h
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_darwin.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl b/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl
new file mode 100755
index 000000000..266a248c7
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_dragonfly.pl
@@ -0,0 +1,50 @@
+#!/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.
+#
+# Generate system call table for DragonFly from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_dragonfly.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl
new file mode 100755
index 000000000..b767e124c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_freebsd.pl
@@ -0,0 +1,63 @@
+#!/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.
+#
+# Generate system call table for FreeBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_freebsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_linux.pl b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
new file mode 100755
index 000000000..4d4017deb
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_linux.pl
@@ -0,0 +1,58 @@
+#!/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.
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_linux.pl ". join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const(
+EOF
+
+sub fmt {
+ my ($name, $num) = @_;
+ if($num > 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(<GCC>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl
new file mode 100755
index 000000000..e74616a65
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_netbsd.pl
@@ -0,0 +1,58 @@
+#!/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.
+#
+# Generate system call table for OpenBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_netbsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+my $line = '';
+while(<>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl b/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl
new file mode 100755
index 000000000..ae5aad586
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/mksysnum_openbsd.pl
@@ -0,0 +1,50 @@
+#!/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.
+#
+# Generate system call table for OpenBSD from master list
+# (for example, /usr/src/sys/kern/syscalls.master).
+
+use strict;
+
+if($ENV{'GOARCH'} eq "" || $ENV{'GOOS'} eq "") {
+ print STDERR "GOARCH or GOOS not defined in environment\n";
+ exit 1;
+}
+
+my $command = "mksysnum_openbsd.pl " . join(' ', @ARGV);
+
+print <<EOF;
+// $command
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build $ENV{'GOARCH'},$ENV{'GOOS'}
+
+package unix
+
+const (
+EOF
+
+while(<>){
+ 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 <<EOF;
+)
+EOF
diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go
new file mode 100644
index 000000000..3c7627eb5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/race.go
@@ -0,0 +1,30 @@
+// 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 darwin,race linux,race freebsd,race
+
+package unix
+
+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/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go
new file mode 100644
index 000000000..f8678e0d2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/race0.go
@@ -0,0 +1,25 @@
+// 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 darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
+
+package unix
+
+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/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
new file mode 100644
index 000000000..d9ff4731a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go
@@ -0,0 +1,36 @@
+// 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.
+
+// Socket control messages
+
+package unix
+
+import "unsafe"
+
+// UnixCredentials encodes credentials into a socket control message
+// for sending to another process. This can be used for
+// authentication.
+func UnixCredentials(ucred *Ucred) []byte {
+ b := make([]byte, CmsgSpace(SizeofUcred))
+ h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+ h.Level = SOL_SOCKET
+ h.Type = SCM_CREDENTIALS
+ h.SetLen(CmsgLen(SizeofUcred))
+ *((*Ucred)(cmsgData(h))) = *ucred
+ return b
+}
+
+// ParseUnixCredentials decodes a socket control message that contains
+// credentials in a Ucred structure. To receive such a message, the
+// SO_PASSCRED option must be enabled on the socket.
+func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) {
+ if m.Header.Level != SOL_SOCKET {
+ return nil, EINVAL
+ }
+ if m.Header.Type != SCM_CREDENTIALS {
+ return nil, EINVAL
+ }
+ ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0]))
+ return &ucred, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
new file mode 100644
index 000000000..f1493a3e6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go
@@ -0,0 +1,103 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+// Socket control messages
+
+package unix
+
+import "unsafe"
+
+// Round the length of a raw sockaddr up to align it properly.
+func cmsgAlignOf(salen int) int {
+ salign := sizeofPtr
+ // NOTE: It seems like 64-bit Darwin and DragonFly BSD kernels
+ // still require 32-bit aligned access to network subsystem.
+ if darwin64Bit || dragonfly64Bit {
+ salign = 4
+ }
+ return (salen + salign - 1) & ^(salign - 1)
+}
+
+// CmsgLen returns the value to store in the Len field of the Cmsghdr
+// structure, taking into account any necessary alignment.
+func CmsgLen(datalen int) int {
+ return cmsgAlignOf(SizeofCmsghdr) + datalen
+}
+
+// CmsgSpace returns the number of bytes an ancillary element with
+// payload of the passed data length occupies.
+func CmsgSpace(datalen int) int {
+ return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen)
+}
+
+func cmsgData(h *Cmsghdr) unsafe.Pointer {
+ return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)))
+}
+
+// SocketControlMessage represents a socket control message.
+type SocketControlMessage struct {
+ Header Cmsghdr
+ Data []byte
+}
+
+// ParseSocketControlMessage parses b as an array of socket control
+// messages.
+func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) {
+ var msgs []SocketControlMessage
+ i := 0
+ for i+CmsgLen(0) <= len(b) {
+ h, dbuf, err := socketControlMessageHeaderAndData(b[i:])
+ if err != nil {
+ return nil, err
+ }
+ m := SocketControlMessage{Header: *h, Data: dbuf}
+ msgs = append(msgs, m)
+ i += cmsgAlignOf(int(h.Len))
+ }
+ return msgs, nil
+}
+
+func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) {
+ h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+ if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) {
+ return nil, nil, EINVAL
+ }
+ return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil
+}
+
+// UnixRights encodes a set of open file descriptors into a socket
+// control message for sending to another process.
+func UnixRights(fds ...int) []byte {
+ datalen := len(fds) * 4
+ b := make([]byte, CmsgSpace(datalen))
+ h := (*Cmsghdr)(unsafe.Pointer(&b[0]))
+ h.Level = SOL_SOCKET
+ h.Type = SCM_RIGHTS
+ h.SetLen(CmsgLen(datalen))
+ data := cmsgData(h)
+ for _, fd := range fds {
+ *(*int32)(data) = int32(fd)
+ data = unsafe.Pointer(uintptr(data) + 4)
+ }
+ return b
+}
+
+// ParseUnixRights decodes a socket control message that contains an
+// integer array of open file descriptors from another process.
+func ParseUnixRights(m *SocketControlMessage) ([]int, error) {
+ if m.Header.Level != SOL_SOCKET {
+ return nil, EINVAL
+ }
+ if m.Header.Type != SCM_RIGHTS {
+ return nil, EINVAL
+ }
+ fds := make([]int, len(m.Data)>>2)
+ for i, j := 0, 0; i < len(m.Data); i += 4 {
+ fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i])))
+ j++
+ }
+ return fds, nil
+}
diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go
new file mode 100644
index 000000000..35ed66435
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/str.go
@@ -0,0 +1,26 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package unix
+
+func itoa(val int) string { // do it here rather than with fmt to avoid dependency
+ if val < 0 {
+ return "-" + uitoa(uint(-val))
+ }
+ return uitoa(uint(val))
+}
+
+func uitoa(val uint) string {
+ var buf [32]byte // big enough for int64
+ i := len(buf) - 1
+ for val >= 10 {
+ buf[i] = byte(val%10 + '0')
+ i--
+ val /= 10
+ }
+ buf[i] = byte(val + '0')
+ return string(buf[i:])
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go
new file mode 100644
index 000000000..a0bcf842c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall.go
@@ -0,0 +1,76 @@
+// 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
+}
+
+func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 }
+
+// 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/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go
new file mode 100644
index 000000000..e9671764c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go
@@ -0,0 +1,628 @@
+// 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/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go
new file mode 100644
index 000000000..3d534d2da
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go
@@ -0,0 +1,511 @@
+// 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,
+ )
+ use(unsafe.Pointer(_p0))
+ 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))
+ use(unsafe.Pointer(_p0))
+ 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/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
new file mode 100644
index 000000000..c172a3da5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go
@@ -0,0 +1,77 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,darwin
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int32(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int32(nsec / 1e9)
+ return
+}
+
+//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = int32(sec)
+ tv.Usec = int32(usec)
+ return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var length = uint64(count)
+
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+
+ written = int(length)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/386 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
new file mode 100644
index 000000000..fc1e5a4a8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go
@@ -0,0 +1,79 @@
+// 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 NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = sec
+ tv.Usec = usec
+ return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var length = uint64(count)
+
+ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+
+ written = int(length)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/amd64 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
new file mode 100644
index 000000000..d286cf408
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go
@@ -0,0 +1,71 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int32(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int32(nsec / 1e9)
+ return
+}
+
+//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = int32(sec)
+ tv.Usec = int32(usec)
+ return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var length = uint64(count)
+
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0)
+
+ written = int(length)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
new file mode 100644
index 000000000..c33905cdc
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go
@@ -0,0 +1,77 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm64,darwin
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 16384 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error)
+func Gettimeofday(tv *Timeval) (err error) {
+ // The tv passed to gettimeofday must be non-nil
+ // but is otherwise unused. The answers come back
+ // in the two registers.
+ sec, usec, err := gettimeofday(tv)
+ tv.Sec = sec
+ tv.Usec = usec
+ return err
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var length = uint64(count)
+
+ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0)
+
+ written = int(length)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic
+
+// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions
+// of darwin/arm64 the syscall is called sysctl instead of __sysctl.
+const SYS___SYSCTL = SYS_SYSCTL
diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
new file mode 100644
index 000000000..ec408ee78
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
@@ -0,0 +1,412 @@
+// 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))
+ use(unsafe.Pointer(_p0))
+ 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/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
new file mode 100644
index 000000000..da7cb7982
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,dragonfly
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = nsec % 1e9 / 1e3
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var writtenOut uint64 = 0
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
+
+ written = int(writtenOut)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
new file mode 100644
index 000000000..520ccbeaf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go
@@ -0,0 +1,683 @@
+// 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))
+ use(unsafe.Pointer(_p0))
+ 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/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
new file mode 100644
index 000000000..6a0cd804d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,freebsd
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int32(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int32(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var writtenOut uint64 = 0
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)
+
+ written = int(writtenOut)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
new file mode 100644
index 000000000..e142540ef
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go
@@ -0,0 +1,61 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,freebsd
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = nsec % 1e9 / 1e3
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var writtenOut uint64 = 0
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0)
+
+ written = int(writtenOut)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
new file mode 100644
index 000000000..5504cb125
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go
@@ -0,0 +1,61 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,freebsd
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = nsec / 1e9
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ var writtenOut uint64 = 0
+ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0)
+
+ written = int(writtenOut)
+
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go
new file mode 100644
index 000000000..cfac4a440
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux.go
@@ -0,0 +1,1110 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error)
+
+func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ if len(fds) == 0 {
+ return ppoll(nil, 0, timeout, sigmask)
+ }
+ return ppoll(&fds[0], len(fds), timeout, sigmask)
+}
+
+//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error)
+
+func Readlink(path string, buf []byte) (n int, err error) {
+ return Readlinkat(AT_FDCWD, path, buf)
+}
+
+func Rename(oldpath string, newpath string) (err error) {
+ return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath)
+}
+
+func Rmdir(path string) error {
+ return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR)
+}
+
+//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error)
+
+func Symlink(oldpath string, newpath string) (err error) {
+ return Symlinkat(oldpath, AT_FDCWD, newpath)
+}
+
+func Unlink(path string) error {
+ return Unlinkat(AT_FDCWD, path, 0)
+}
+
+//sys Unlinkat(dirfd int, path string, flags int) (err error)
+
+//sys utimes(path string, times *[2]Timeval) (err error)
+
+func Utimes(path string, tv []Timeval) error {
+ if tv == nil {
+ err := utimensat(AT_FDCWD, path, nil, 0)
+ if err != ENOSYS {
+ return err
+ }
+ return utimes(path, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+ var ts [2]Timespec
+ ts[0] = NsecToTimespec(TimevalToNsec(tv[0]))
+ ts[1] = NsecToTimespec(TimevalToNsec(tv[1]))
+ err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ if err != ENOSYS {
+ return err
+ }
+ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error)
+
+func UtimesNano(path string, ts []Timespec) error {
+ if ts == nil {
+ err := utimensat(AT_FDCWD, path, nil, 0)
+ if err != ENOSYS {
+ return err
+ }
+ return utimes(path, nil)
+ }
+ if len(ts) != 2 {
+ return EINVAL
+ }
+ err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+ if err != ENOSYS {
+ return err
+ }
+ // If the utimensat syscall isn't available (utimensat was added to Linux
+ // in 2.6.22, Released, 8 July 2007) then fall back to utimes
+ var tv [2]Timeval
+ for i := 0; i < 2; i++ {
+ tv[i] = NsecToTimeval(TimespecToNsec(ts[i]))
+ }
+ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ if ts == nil {
+ return utimensat(dirfd, path, nil, flags)
+ }
+ if len(ts) != 2 {
+ return EINVAL
+ }
+ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+}
+
+//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error)
+
+func Futimesat(dirfd int, path string, tv []Timeval) error {
+ pathp, err := BytePtrFromString(path)
+ if err != nil {
+ return err
+ }
+ if tv == nil {
+ return futimesat(dirfd, pathp, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+ return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func Futimes(fd int, tv []Timeval) (err error) {
+ // Believe it or not, this is the best we can do on Linux
+ // (and is what glibc does).
+ return Utimes("/proc/self/fd/"+itoa(fd), tv)
+}
+
+const ImplementsGetwd = true
+
+//sys Getcwd(buf []byte) (n int, err error)
+
+func Getwd() (wd string, err error) {
+ var buf [PathMax]byte
+ n, err := Getcwd(buf[0:])
+ if err != nil {
+ return "", err
+ }
+ // Getcwd returns the number of bytes written to buf, including the NUL.
+ if n < 1 || n > len(buf) || buf[n-1] != 0 {
+ return "", EINVAL
+ }
+ return string(buf[0 : n-1]), nil
+}
+
+func Getgroups() (gids []int, err error) {
+ n, err := getgroups(0, nil)
+ if err != nil {
+ return nil, err
+ }
+ if n == 0 {
+ return nil, nil
+ }
+
+ // Sanity check group count. Max is 1<<16 on Linux.
+ if n < 0 || n > 1<<20 {
+ return nil, EINVAL
+ }
+
+ a := make([]_Gid_t, n)
+ n, err = getgroups(n, &a[0])
+ if err != nil {
+ return nil, err
+ }
+ gids = make([]int, n)
+ for i, v := range a[0:n] {
+ gids[i] = int(v)
+ }
+ return
+}
+
+func Setgroups(gids []int) (err error) {
+ if len(gids) == 0 {
+ return setgroups(0, nil)
+ }
+
+ a := make([]_Gid_t, len(gids))
+ for i, v := range gids {
+ a[i] = _Gid_t(v)
+ }
+ return setgroups(len(a), &a[0])
+}
+
+type WaitStatus uint32
+
+// Wait status is 7 bits at bottom, either 0 (exited),
+// 0x7F (stopped), or a signal number that caused an exit.
+// The 0x80 bit is whether there was a core dump.
+// An extra number (exit code, signal causing a stop)
+// is in the high bits. At least that's the idea.
+// There are various irregularities. For example, the
+// "continued" status is 0xFFFF, distinguishing itself
+// from stopped via the core dump bit.
+
+const (
+ mask = 0x7F
+ core = 0x80
+ exited = 0x00
+ stopped = 0x7F
+ shift = 8
+)
+
+func (w WaitStatus) Exited() bool { return w&mask == exited }
+
+func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited }
+
+func (w WaitStatus) Stopped() bool { return w&0xFF == stopped }
+
+func (w WaitStatus) Continued() bool { return w == 0xFFFF }
+
+func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+func (w WaitStatus) ExitStatus() int {
+ if !w.Exited() {
+ return -1
+ }
+ return int(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) Signal() syscall.Signal {
+ if !w.Signaled() {
+ return -1
+ }
+ return syscall.Signal(w & mask)
+}
+
+func (w WaitStatus) StopSignal() syscall.Signal {
+ if !w.Stopped() {
+ return -1
+ }
+ return syscall.Signal(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) TrapCause() int {
+ if w.StopSignal() != SIGTRAP {
+ return -1
+ }
+ return int(w>>shift) >> 8
+}
+
+//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error)
+
+func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) {
+ var status _C_int
+ wpid, err = wait4(pid, &status, options, rusage)
+ if wstatus != nil {
+ *wstatus = WaitStatus(status)
+ }
+ return
+}
+
+func Mkfifo(path string, mode uint32) (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
+}
+
+type SockaddrHCI struct {
+ Dev uint16
+ Channel uint16
+ raw RawSockaddrHCI
+}
+
+func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ sa.raw.Family = AF_BLUETOOTH
+ sa.raw.Dev = sa.Dev
+ sa.raw.Channel = sa.Channel
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil
+}
+
+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 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 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)
+//sys Setns(fd int, nstype int) (err error)
+
+// issue 1435.
+// On linux Setuid and Setgid only affects the current thread, not the process.
+// This does not match what most callers expect so we must return an error
+// here rather than letting the caller think that the call succeeded.
+
+func Setuid(uid int) (err error) {
+ return EOPNOTSUPP
+}
+
+func Setgid(uid int) (err error) {
+ return EOPNOTSUPP
+}
+
+//sys Setpriority(which int, who int, prio int) (err error)
+//sys Setxattr(path string, attr string, data []byte, flags int) (err error)
+//sys Sync()
+//sysnb Sysinfo(info *Sysinfo_t) (err error)
+//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error)
+//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error)
+//sysnb Times(tms *Tms) (ticks uintptr, err error)
+//sysnb Umask(mask int) (oldmask int)
+//sysnb Uname(buf *Utsname) (err error)
+//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2
+//sys Unshare(flags int) (err error)
+//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+//sys write(fd int, p []byte) (n int, err error)
+//sys exitThread(code int) (err error) = SYS_EXIT
+//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ
+//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE
+
+// mmap varies by architecture; see syscall_linux_*.go.
+//sys munmap(addr uintptr, length uintptr) (err error)
+
+var mapper = &mmapper{
+ active: make(map[*byte][]byte),
+ mmap: mmap,
+ munmap: munmap,
+}
+
+func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) {
+ return mapper.Mmap(fd, offset, length, prot, flags)
+}
+
+func Munmap(b []byte) (err error) {
+ return mapper.Munmap(b)
+}
+
+//sys Madvise(b []byte, advice int) (err error)
+//sys Mprotect(b []byte, prot int) (err error)
+//sys Mlock(b []byte) (err error)
+//sys 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
+// 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/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
new file mode 100644
index 000000000..2b881b979
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go
@@ -0,0 +1,399 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP)
+// so that go vet can check that they are correct.
+
+// +build 386,linux
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int32(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = int32(nsec / 1e9)
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ return
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe(&pp)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+// 64-bit file system and 32-bit uid calls
+// (386 default is 32-bit file system and 16-bit uid).
+//sys Dup2(oldfd int, newfd int) (err error)
+//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64
+//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+//sysnb Getegid() (egid int) = SYS_GETEGID32
+//sysnb Geteuid() (euid int) = SYS_GETEUID32
+//sysnb Getgid() (gid int) = SYS_GETGID32
+//sysnb Getuid() (uid int) = SYS_GETUID32
+//sysnb InotifyInit() (fd int, err error)
+//sys Ioperm(from int, num int, on int) (err error)
+//sys Iopl(level int) (err error)
+//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
+//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
+//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
+//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
+//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+
+//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Pause() (err error)
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+ page := uintptr(offset / 4096)
+ if offset != int64(page)*4096 {
+ return 0, EINVAL
+ }
+ return mmap2(addr, length, prot, flags, fd, page)
+}
+
+type rlimit32 struct {
+ Cur uint32
+ Max uint32
+}
+
+//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT
+
+const rlimInf32 = ^uint32(0)
+const rlimInf64 = ^uint64(0)
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ err = prlimit(0, resource, nil, rlim)
+ if err != ENOSYS {
+ return err
+ }
+
+ rl := rlimit32{}
+ err = getrlimit(resource, &rl)
+ if err != nil {
+ return
+ }
+
+ if rl.Cur == rlimInf32 {
+ rlim.Cur = rlimInf64
+ } else {
+ rlim.Cur = uint64(rl.Cur)
+ }
+
+ if rl.Max == rlimInf32 {
+ rlim.Max = rlimInf64
+ } else {
+ rlim.Max = uint64(rl.Max)
+ }
+ return
+}
+
+//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ err = prlimit(0, resource, rlim, nil)
+ if err != ENOSYS {
+ return err
+ }
+
+ rl := rlimit32{}
+ if rlim.Cur == rlimInf64 {
+ rl.Cur = rlimInf32
+ } else if rlim.Cur < uint64(rlimInf32) {
+ rl.Cur = uint32(rlim.Cur)
+ } else {
+ return EINVAL
+ }
+ if rlim.Max == rlimInf64 {
+ rl.Max = rlimInf32
+ } else if rlim.Max < uint64(rlimInf32) {
+ rl.Max = uint32(rlim.Max)
+ } else {
+ return EINVAL
+ }
+
+ return setrlimit(resource, &rl)
+}
+
+// Underlying system call writes to newoffset via pointer.
+// Implemented in assembly to avoid allocation.
+func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ newoffset, errno := seek(fd, offset, whence)
+ if errno != 0 {
+ return 0, errno
+ }
+ return newoffset, nil
+}
+
+// Vsyscalls on amd64.
+//sysnb Gettimeofday(tv *Timeval) (err error)
+//sysnb Time(t *Time_t) (tt Time_t, err error)
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+// On x86 Linux, all the socket calls go through an extra indirection,
+// I think because the 5-register system call interface can't handle
+// the 6-argument calls like sendto and recvfrom. Instead the
+// arguments to the underlying system call are the number below
+// and a pointer to an array of uintptr. We hide the pointer in the
+// socketcall assembly to avoid allocation on every system call.
+
+const (
+ // see linux/net.h
+ _SOCKET = 1
+ _BIND = 2
+ _CONNECT = 3
+ _LISTEN = 4
+ _ACCEPT = 5
+ _GETSOCKNAME = 6
+ _GETPEERNAME = 7
+ _SOCKETPAIR = 8
+ _SEND = 9
+ _RECV = 10
+ _SENDTO = 11
+ _RECVFROM = 12
+ _SHUTDOWN = 13
+ _SETSOCKOPT = 14
+ _GETSOCKOPT = 15
+ _SENDMSG = 16
+ _RECVMSG = 17
+ _ACCEPT4 = 18
+ _RECVMMSG = 19
+ _SENDMMSG = 20
+)
+
+func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) {
+ fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) {
+ fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) {
+ _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) {
+ _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func socket(domain int, typ int, proto int) (fd int, err error) {
+ fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) {
+ _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) {
+ _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) {
+ var base uintptr
+ if len(p) > 0 {
+ base = uintptr(unsafe.Pointer(&p[0]))
+ }
+ n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) {
+ var base uintptr
+ if len(p) > 0 {
+ base = uintptr(unsafe.Pointer(&p[0]))
+ }
+ _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) {
+ n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func Listen(s int, n int) (err error) {
+ _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func Shutdown(s, how int) (err error) {
+ _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0)
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+ pathp, err := BytePtrFromString(path)
+ if err != nil {
+ return err
+ }
+ _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
new file mode 100644
index 000000000..18911c2d9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go
@@ -0,0 +1,157 @@
+// 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Getuid() (uid int)
+//sysnb InotifyInit() (fd int, err error)
+//sys Ioperm(from int, num int, on int) (err error)
+//sys Iopl(level int) (err error)
+//sys Lchown(path string, uid int, gid int) (err error)
+//sys Listen(s int, n int) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error)
+//sys Pause() (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys Stat(path string, stat *Stat_t) (err error)
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error)
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+//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
+}
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = nsec % 1e9 / 1e3
+ return
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe(&pp)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Rip }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
new file mode 100644
index 000000000..71d870228
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go
@@ -0,0 +1,263 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,linux
+
+package unix
+
+import (
+ "syscall"
+ "unsafe"
+)
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int32(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = int32(nsec / 1e9)
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ return
+}
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, 0)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+// Underlying system call writes to newoffset via pointer.
+// Implemented in assembly to avoid allocation.
+func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
+
+func Seek(fd int, offset int64, whence int) (newoffset int64, err error) {
+ newoffset, errno := seek(fd, offset, whence)
+ if errno != 0 {
+ return 0, errno
+ }
+ return newoffset, nil
+}
+
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32
+//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+
+// 64-bit file system and 32-bit uid calls
+// (16-bit uid calls are not always supported in newer kernels)
+//sys Dup2(oldfd int, newfd int) (err error)
+//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32
+//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64
+//sysnb Getegid() (egid int) = SYS_GETEGID32
+//sysnb Geteuid() (euid int) = SYS_GETEUID32
+//sysnb Getgid() (gid int) = SYS_GETGID32
+//sysnb Getuid() (uid int) = SYS_GETUID32
+//sysnb InotifyInit() (fd int, err error)
+//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32
+//sys Listen(s int, n int) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT
+//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32
+//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32
+//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32
+//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32
+//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error)
+//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64
+
+// Vsyscalls on amd64.
+//sysnb Gettimeofday(tv *Timeval) (err error)
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Pause() (err error)
+
+func Time(t *Time_t) (Time_t, error) {
+ var tv Timeval
+ err := Gettimeofday(&tv)
+ if err != nil {
+ return 0, err
+ }
+ if t != nil {
+ *t = Time_t(tv.Sec)
+ }
+ return Time_t(tv.Sec), nil
+}
+
+func Utime(path string, buf *Utimbuf) error {
+ tv := []Timeval{
+ {Sec: buf.Actime},
+ {Sec: buf.Modtime},
+ }
+ return Utimes(path, tv)
+}
+
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64
+//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error)
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+ pathp, err := BytePtrFromString(path)
+ if err != nil {
+ return err
+ }
+ _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf)))
+ if e != 0 {
+ err = e
+ }
+ return
+}
+
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+ page := uintptr(offset / 4096)
+ if offset != int64(page)*4096 {
+ return 0, EINVAL
+ }
+ return mmap2(addr, length, prot, flags, fd, page)
+}
+
+type rlimit32 struct {
+ Cur uint32
+ Max uint32
+}
+
+//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT
+
+const rlimInf32 = ^uint32(0)
+const rlimInf64 = ^uint64(0)
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ err = prlimit(0, resource, nil, rlim)
+ if err != ENOSYS {
+ return err
+ }
+
+ rl := rlimit32{}
+ err = getrlimit(resource, &rl)
+ if err != nil {
+ return
+ }
+
+ if rl.Cur == rlimInf32 {
+ rlim.Cur = rlimInf64
+ } else {
+ rlim.Cur = uint64(rl.Cur)
+ }
+
+ if rl.Max == rlimInf32 {
+ rlim.Max = rlimInf64
+ } else {
+ rlim.Max = uint64(rl.Max)
+ }
+ return
+}
+
+//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ err = prlimit(0, resource, rlim, nil)
+ if err != ENOSYS {
+ return err
+ }
+
+ rl := rlimit32{}
+ if rlim.Cur == rlimInf64 {
+ rl.Cur = rlimInf32
+ } else if rlim.Cur < uint64(rlimInf32) {
+ rl.Cur = uint32(rlim.Cur)
+ } else {
+ return EINVAL
+ }
+ if rlim.Max == rlimInf64 {
+ rl.Max = rlimInf32
+ } else if rlim.Max < uint64(rlimInf32) {
+ rl.Max = uint32(rlim.Max)
+ } else {
+ return EINVAL
+ }
+
+ return setrlimit(resource, &rl)
+}
+
+func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
new file mode 100644
index 000000000..4a136396c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go
@@ -0,0 +1,190 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm64,linux
+
+package unix
+
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Getuid() (uid int)
+//sys Listen(s int, n int) (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+
+func Stat(path string, stat *Stat_t) (err error) {
+ return Fstatat(AT_FDCWD, path, stat, 0)
+}
+
+func Lchown(path string, uid int, gid int) (err error) {
+ return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW)
+}
+
+func Lstat(path string, stat *Stat_t) (err error) {
+ return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW)
+}
+
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error)
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb Gettimeofday(tv *Timeval) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = nsec % 1e9 / 1e3
+ return
+}
+
+func Time(t *Time_t) (Time_t, error) {
+ var tv Timeval
+ err := Gettimeofday(&tv)
+ if err != nil {
+ return 0, err
+ }
+ if t != nil {
+ *t = Time_t(tv.Sec)
+ }
+ return Time_t(tv.Sec), nil
+}
+
+func Utime(path string, buf *Utimbuf) error {
+ tv := []Timeval{
+ {Sec: buf.Actime},
+ {Sec: buf.Modtime},
+ }
+ return Utimes(path, tv)
+}
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, 0)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Pc }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+func InotifyInit() (fd int, err error) {
+ return InotifyInit1(0)
+}
+
+func Dup2(oldfd int, newfd int) (err error) {
+ return Dup3(oldfd, newfd, 0)
+}
+
+func Pause() (err error) {
+ _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove
+// these when the deprecated syscalls that the syscall package relies on
+// are removed.
+const (
+ SYS_GETPGRP = 1060
+ SYS_UTIMES = 1037
+ SYS_FUTIMESAT = 1066
+ SYS_PAUSE = 1061
+ SYS_USTAT = 1070
+ SYS_UTIME = 1063
+ SYS_LCHOWN = 1032
+ SYS_TIME = 1062
+ SYS_EPOLL_CREATE = 1042
+ SYS_EPOLL_WAIT = 1069
+)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ var ts *Timespec
+ if timeout >= 0 {
+ ts = new(Timespec)
+ *ts = NsecToTimespec(int64(timeout) * 1e6)
+ }
+ if len(fds) == 0 {
+ return ppoll(nil, 0, ts, nil)
+ }
+ return ppoll(&fds[0], len(fds), ts, nil)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
new file mode 100644
index 000000000..8119fde37
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go
@@ -0,0 +1,208 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build mips64 mips64le
+
+package unix
+
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Getuid() (uid int)
+//sys Lchown(path string, uid int, gid int) (err error)
+//sys Listen(s int, n int) (err error)
+//sys Pause() (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error)
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+ var tv Timeval
+ err = Gettimeofday(&tv)
+ if err != nil {
+ return 0, err
+ }
+ if t != nil {
+ *t = Time_t(tv.Sec)
+ }
+ return Time_t(tv.Sec), nil
+}
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = nsec % 1e9 / 1e3
+ return
+}
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, 0)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+ return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+ return ENOSYS
+}
+
+type stat_t struct {
+ Dev uint32
+ Pad0 [3]int32
+ Ino uint64
+ Mode uint32
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Rdev uint32
+ Pad1 [3]uint32
+ Size int64
+ Atime uint32
+ Atime_nsec uint32
+ Mtime uint32
+ Mtime_nsec uint32
+ Ctime uint32
+ Ctime_nsec uint32
+ Blksize uint32
+ Pad2 uint32
+ Blocks int64
+}
+
+//sys fstat(fd int, st *stat_t) (err error)
+//sys lstat(path string, st *stat_t) (err error)
+//sys stat(path string, st *stat_t) (err error)
+
+func Fstat(fd int, s *Stat_t) (err error) {
+ st := &stat_t{}
+ err = fstat(fd, st)
+ fillStat_t(s, st)
+ return
+}
+
+func Lstat(path string, s *Stat_t) (err error) {
+ st := &stat_t{}
+ err = lstat(path, st)
+ fillStat_t(s, st)
+ return
+}
+
+func Stat(path string, s *Stat_t) (err error) {
+ st := &stat_t{}
+ err = stat(path, st)
+ fillStat_t(s, st)
+ return
+}
+
+func fillStat_t(s *Stat_t, st *stat_t) {
+ s.Dev = st.Dev
+ s.Ino = st.Ino
+ s.Mode = st.Mode
+ s.Nlink = st.Nlink
+ s.Uid = st.Uid
+ s.Gid = st.Gid
+ s.Rdev = st.Rdev
+ s.Size = st.Size
+ s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)}
+ s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)}
+ s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)}
+ s.Blksize = st.Blksize
+ s.Blocks = st.Blocks
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Regs[64] }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
new file mode 100644
index 000000000..60770f627
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go
@@ -0,0 +1,135 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux
+// +build ppc64 ppc64le
+
+package unix
+
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Dup2(oldfd int, newfd int) (err error)
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT
+//sysnb Getuid() (uid int)
+//sysnb InotifyInit() (fd int, err error)
+//sys Ioperm(from int, num int, on int) (err error)
+//sys Iopl(level int) (err error)
+//sys Lchown(path string, uid int, gid int) (err error)
+//sys Listen(s int, n int) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error)
+//sys Pause() (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys Stat(path string, stat *Stat_t) (err error)
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2
+//sys Truncate(path string, length int64) (err error)
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func Getpagesize() int { return 65536 }
+
+//sysnb Gettimeofday(tv *Timeval) (err error)
+//sysnb Time(t *Time_t) (tt Time_t, err error)
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = nsec % 1e9 / 1e3
+ return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Nip }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe(&pp)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
new file mode 100644
index 000000000..81c5f4732
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go
@@ -0,0 +1,329 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build s390x,linux
+
+package unix
+
+import (
+ "unsafe"
+)
+
+//sys Dup2(oldfd int, newfd int) (err error)
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Getuid() (uid int)
+//sysnb InotifyInit() (fd int, err error)
+//sys Lchown(path string, uid int, gid int) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error)
+//sys Pause() (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys Stat(path string, stat *Stat_t) (err error)
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+
+func Getpagesize() int { return 4096 }
+
+//sysnb Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+ var tv Timeval
+ err = Gettimeofday(&tv)
+ if err != nil {
+ return 0, err
+ }
+ if t != nil {
+ *t = Time_t(tv.Sec)
+ }
+ return Time_t(tv.Sec), nil
+}
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = nsec % 1e9 / 1e3
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0.
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+ return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+ return ENOSYS
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct.
+// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in <asm/unistd.h>.
+func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) {
+ mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)}
+ r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0)
+ use(unsafe.Pointer(&mmap_args[0]))
+ xaddr = uintptr(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// On s390x Linux, all the socket calls go through an extra indirection.
+// The arguments to the underlying system call (SYS_SOCKETCALL) are the
+// number below and a pointer to an array of uintptr.
+const (
+ // see linux/net.h
+ netSocket = 1
+ netBind = 2
+ netConnect = 3
+ netListen = 4
+ netAccept = 5
+ netGetSockName = 6
+ netGetPeerName = 7
+ netSocketPair = 8
+ netSend = 9
+ netRecv = 10
+ netSendTo = 11
+ netRecvFrom = 12
+ netShutdown = 13
+ netSetSockOpt = 14
+ netGetSockOpt = 15
+ netSendMsg = 16
+ netRecvMsg = 17
+ netAccept4 = 18
+ netRecvMMsg = 19
+ netSendMMsg = 20
+)
+
+func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) {
+ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+ fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(fd), nil
+}
+
+func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) {
+ args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)}
+ fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(fd), nil
+}
+
+func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {
+ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+ _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error {
+ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))}
+ _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func socketpair(domain int, typ int, flags int, fd *[2]int32) error {
+ args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))}
+ _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error {
+ args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error {
+ args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func socket(domain int, typ int, proto int) (int, error) {
+ args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)}
+ fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(fd), nil
+}
+
+func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error {
+ args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))}
+ _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error {
+ args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) {
+ var base uintptr
+ if len(p) > 0 {
+ base = uintptr(unsafe.Pointer(&p[0]))
+ }
+ args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))}
+ n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(n), nil
+}
+
+func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error {
+ var base uintptr
+ if len(p) > 0 {
+ base = uintptr(unsafe.Pointer(&p[0]))
+ }
+ args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func recvmsg(s int, msg *Msghdr, flags int) (int, error) {
+ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}
+ n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(n), nil
+}
+
+func sendmsg(s int, msg *Msghdr, flags int) (int, error) {
+ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)}
+ n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return 0, err
+ }
+ return int(n), nil
+}
+
+func Listen(s int, n int) error {
+ args := [2]uintptr{uintptr(s), uintptr(n)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+func Shutdown(s, how int) error {
+ args := [2]uintptr{uintptr(s), uintptr(how)}
+ _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0)
+ if err != 0 {
+ return err
+ }
+ return nil
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
new file mode 100644
index 000000000..20b7454d7
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go
@@ -0,0 +1,169 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build sparc64,linux
+
+package unix
+
+import (
+ "sync/atomic"
+ "syscall"
+)
+
+//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error)
+//sys Dup2(oldfd int, newfd int) (err error)
+//sys Fchown(fd int, uid int, gid int) (err error)
+//sys Fstat(fd int, stat *Stat_t) (err error)
+//sys Fstatfs(fd int, buf *Statfs_t) (err error)
+//sys Ftruncate(fd int, length int64) (err error)
+//sysnb Getegid() (egid int)
+//sysnb Geteuid() (euid int)
+//sysnb Getgid() (gid int)
+//sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Getuid() (uid int)
+//sysnb InotifyInit() (fd int, err error)
+//sys Lchown(path string, uid int, gid int) (err error)
+//sys Listen(s int, n int) (err error)
+//sys Lstat(path string, stat *Stat_t) (err error)
+//sys Pause() (err error)
+//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64
+//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64
+//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK
+//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error)
+//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error)
+//sys Setfsgid(gid int) (err error)
+//sys Setfsuid(uid int) (err error)
+//sysnb Setregid(rgid int, egid int) (err error)
+//sysnb Setresgid(rgid int, egid int, sgid int) (err error)
+//sysnb Setresuid(ruid int, euid int, suid int) (err error)
+//sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+//sysnb Setreuid(ruid int, euid int) (err error)
+//sys Shutdown(fd int, how int) (err error)
+//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error)
+//sys Stat(path string, stat *Stat_t) (err error)
+//sys Statfs(path string, buf *Statfs_t) (err error)
+//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error)
+//sys Truncate(path string, length int64) (err error)
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error)
+//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error)
+//sysnb getgroups(n int, list *_Gid_t) (nn int, err error)
+//sysnb setgroups(n int, list *_Gid_t) (err error)
+//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error)
+//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error)
+//sysnb socket(domain int, typ int, proto int) (fd int, err error)
+//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error)
+//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error)
+//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error)
+//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error)
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error)
+//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+
+func sysconf(name int) (n int64, err syscall.Errno)
+
+// pageSize caches the value of Getpagesize, since it can't change
+// once the system is booted.
+var pageSize int64 // accessed atomically
+
+func Getpagesize() int {
+ n := atomic.LoadInt64(&pageSize)
+ if n == 0 {
+ n, _ = sysconf(_SC_PAGESIZE)
+ atomic.StoreInt64(&pageSize, n)
+ }
+ return int(n)
+}
+
+func Ioperm(from int, num int, on int) (err error) {
+ return ENOSYS
+}
+
+func Iopl(level int) (err error) {
+ return ENOSYS
+}
+
+//sysnb Gettimeofday(tv *Timeval) (err error)
+
+func Time(t *Time_t) (tt Time_t, err error) {
+ var tv Timeval
+ err = Gettimeofday(&tv)
+ if err != nil {
+ return 0, err
+ }
+ if t != nil {
+ *t = Time_t(tv.Sec)
+ }
+ return Time_t(tv.Sec), nil
+}
+
+//sys Utime(path string, buf *Utimbuf) (err error)
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Sec = nsec / 1e9
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ return
+}
+
+func (r *PtraceRegs) PC() uint64 { return r.Tpc }
+
+func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc }
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint64(length)
+}
+
+//sysnb pipe(p *[2]_C_int) (err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe(&pp)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sysnb pipe2(p *[2]_C_int, flags int) (err error)
+
+func Pipe2(p []int, flags int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ err = pipe2(&pp, flags)
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return
+}
+
+//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error)
+
+func Poll(fds []PollFd, timeout int) (n int, err error) {
+ if len(fds) == 0 {
+ return poll(nil, 0, timeout)
+ }
+ return poll(&fds[0], len(fds), timeout)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
new file mode 100644
index 000000000..c4e945cd6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go
@@ -0,0 +1,492 @@
+// 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/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
new file mode 100644
index 000000000..afaca0983
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int64(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = uint32(mode)
+ k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
new file mode 100644
index 000000000..a6ff04ce5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int64(nsec / 1e9)
+ ts.Nsec = int64(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = uint32(mode)
+ k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
new file mode 100644
index 000000000..68a6969b2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go
@@ -0,0 +1,42 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build arm,netbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int64(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = uint32(mode)
+ k.Flags = uint32(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
new file mode 100644
index 000000000..530792ea9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go
@@ -0,0 +1,11 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build dragonfly freebsd netbsd openbsd
+
+package unix
+
+const ImplementsGetwd = false
+
+func Getwd() (string, error) { return "", ENOTSUP }
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
new file mode 100644
index 000000000..554a82342
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go
@@ -0,0 +1,304 @@
+// 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))
+ use(unsafe.Pointer(_p0))
+ 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/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
new file mode 100644
index 000000000..a66ddc59c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build 386,openbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = int64(nsec / 1e9)
+ ts.Nsec = int32(nsec % 1e9)
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = int32(nsec % 1e9 / 1e3)
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint32(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint32(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
new file mode 100644
index 000000000..0776c1faf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go
@@ -0,0 +1,42 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,openbsd
+
+package unix
+
+func Getpagesize() int { return 4096 }
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = nsec % 1e9 / 1e3
+ tv.Sec = nsec / 1e9
+ return
+}
+
+func SetKevent(k *Kevent_t, fd, mode, flags int) {
+ k.Ident = uint64(fd)
+ k.Filter = int16(mode)
+ k.Flags = uint16(flags)
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (msghdr *Msghdr) SetControllen(length int) {
+ msghdr.Controllen = uint32(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go
new file mode 100644
index 000000000..acb74b1d1
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go
@@ -0,0 +1,725 @@
+// 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
+}
+
+//sysnb pipe(p *[2]_C_int) (n int, err error)
+
+func Pipe(p []int) (err error) {
+ if len(p) != 2 {
+ return EINVAL
+ }
+ var pp [2]_C_int
+ n, err := pipe(&pp)
+ if n != 0 {
+ return err
+ }
+ p[0] = int(pp[0])
+ p[1] = int(pp[1])
+ return nil
+}
+
+func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ if sa.Port < 0 || sa.Port > 0xFFFF {
+ return nil, 0, EINVAL
+ }
+ sa.raw.Family = AF_INET
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+ p[0] = byte(sa.Port >> 8)
+ p[1] = byte(sa.Port)
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.raw.Addr[i] = sa.Addr[i]
+ }
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil
+}
+
+func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ if sa.Port < 0 || sa.Port > 0xFFFF {
+ return nil, 0, EINVAL
+ }
+ sa.raw.Family = AF_INET6
+ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port))
+ p[0] = byte(sa.Port >> 8)
+ p[1] = byte(sa.Port)
+ sa.raw.Scope_id = sa.ZoneId
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.raw.Addr[i] = sa.Addr[i]
+ }
+ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil
+}
+
+func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) {
+ name := sa.Name
+ n := len(name)
+ if n >= len(sa.raw.Path) {
+ return nil, 0, EINVAL
+ }
+ sa.raw.Family = AF_UNIX
+ for i := 0; i < n; i++ {
+ sa.raw.Path[i] = int8(name[i])
+ }
+ // length is family (uint16), name, NUL.
+ sl := _Socklen(2)
+ if n > 0 {
+ sl += _Socklen(n) + 1
+ }
+ if sa.raw.Path[0] == '@' {
+ sa.raw.Path[0] = 0
+ // Don't count trailing NUL for abstract address.
+ sl--
+ }
+
+ return unsafe.Pointer(&sa.raw), sl, nil
+}
+
+//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname
+
+func Getsockname(fd int) (sa Sockaddr, err error) {
+ var rsa RawSockaddrAny
+ var len _Socklen = SizeofSockaddrAny
+ if err = getsockname(fd, &rsa, &len); err != nil {
+ return
+ }
+ return anyToSockaddr(&rsa)
+}
+
+const ImplementsGetwd = true
+
+//sys Getcwd(buf []byte) (n int, err error)
+
+func Getwd() (wd string, err error) {
+ var buf [PathMax]byte
+ // Getcwd will return an error if it failed for any reason.
+ _, err = Getcwd(buf[0:])
+ if err != nil {
+ return "", err
+ }
+ n := clen(buf[:])
+ if n < 1 {
+ return "", EINVAL
+ }
+ return string(buf[:n]), nil
+}
+
+/*
+ * Wrapped
+ */
+
+//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error)
+//sysnb setgroups(ngid int, gid *_Gid_t) (err error)
+
+func Getgroups() (gids []int, err error) {
+ n, err := getgroups(0, nil)
+ // Check for error and sanity check group count. Newer versions of
+ // Solaris allow up to 1024 (NGROUPS_MAX).
+ if n < 0 || n > 1024 {
+ if err != nil {
+ return nil, err
+ }
+ return nil, EINVAL
+ } else if n == 0 {
+ return nil, nil
+ }
+
+ a := make([]_Gid_t, n)
+ n, err = getgroups(n, &a[0])
+ if n == -1 {
+ return nil, err
+ }
+ gids = make([]int, n)
+ for i, v := range a[0:n] {
+ gids[i] = int(v)
+ }
+ return
+}
+
+func Setgroups(gids []int) (err error) {
+ if len(gids) == 0 {
+ return setgroups(0, nil)
+ }
+
+ a := make([]_Gid_t, len(gids))
+ for i, v := range gids {
+ a[i] = _Gid_t(v)
+ }
+ return setgroups(len(a), &a[0])
+}
+
+func ReadDirent(fd int, buf []byte) (n int, err error) {
+ // Final argument is (basep *uintptr) and the syscall doesn't take nil.
+ // TODO(rsc): Can we use a single global basep for all calls?
+ return Getdents(fd, buf, new(uintptr))
+}
+
+// Wait status is 7 bits at bottom, either 0 (exited),
+// 0x7F (stopped), or a signal number that caused an exit.
+// The 0x80 bit is whether there was a core dump.
+// An extra number (exit code, signal causing a stop)
+// is in the high bits.
+
+type WaitStatus uint32
+
+const (
+ mask = 0x7F
+ core = 0x80
+ shift = 8
+
+ exited = 0
+ stopped = 0x7F
+)
+
+func (w WaitStatus) Exited() bool { return w&mask == exited }
+
+func (w WaitStatus) ExitStatus() int {
+ if w&mask != exited {
+ return -1
+ }
+ return int(w >> shift)
+}
+
+func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 }
+
+func (w WaitStatus) Signal() syscall.Signal {
+ sig := syscall.Signal(w & mask)
+ if sig == stopped || sig == 0 {
+ return -1
+ }
+ return sig
+}
+
+func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 }
+
+func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP }
+
+func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP }
+
+func (w WaitStatus) StopSignal() syscall.Signal {
+ if !w.Stopped() {
+ return -1
+ }
+ return syscall.Signal(w>>shift) & 0xFF
+}
+
+func (w WaitStatus) TrapCause() int { return -1 }
+
+//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error)
+
+func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) {
+ var status _C_int
+ rpid, err := wait4(int32(pid), &status, options, rusage)
+ wpid := int(rpid)
+ if wpid == -1 {
+ return wpid, err
+ }
+ if wstatus != nil {
+ *wstatus = WaitStatus(status)
+ }
+ return wpid, nil
+}
+
+//sys gethostname(buf []byte) (n int, err error)
+
+func Gethostname() (name string, err error) {
+ var buf [MaxHostNameLen]byte
+ n, err := gethostname(buf[:])
+ if n != 0 {
+ return "", err
+ }
+ n = clen(buf[:])
+ if n < 1 {
+ return "", EFAULT
+ }
+ return string(buf[:n]), nil
+}
+
+//sys utimes(path string, times *[2]Timeval) (err error)
+
+func Utimes(path string, tv []Timeval) (err error) {
+ if tv == nil {
+ return utimes(path, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error)
+
+func UtimesNano(path string, ts []Timespec) error {
+ if ts == nil {
+ return utimensat(AT_FDCWD, path, nil, 0)
+ }
+ if len(ts) != 2 {
+ return EINVAL
+ }
+ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0)
+}
+
+func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error {
+ if ts == nil {
+ return utimensat(dirfd, path, nil, flags)
+ }
+ if len(ts) != 2 {
+ return EINVAL
+ }
+ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags)
+}
+
+//sys fcntl(fd int, cmd int, arg int) (val int, err error)
+
+// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
+func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0)
+ if e1 != 0 {
+ return e1
+ }
+ return nil
+}
+
+//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error)
+
+func Futimesat(dirfd int, path string, tv []Timeval) error {
+ pathp, err := BytePtrFromString(path)
+ if err != nil {
+ return err
+ }
+ if tv == nil {
+ return futimesat(dirfd, pathp, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+ return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+// Solaris doesn't have an futimes function because it allows NULL to be
+// specified as the path for futimesat. However, Go doesn't like
+// NULL-style string interfaces, so this simple wrapper is provided.
+func Futimes(fd int, tv []Timeval) error {
+ if tv == nil {
+ return futimesat(fd, nil, nil)
+ }
+ if len(tv) != 2 {
+ return EINVAL
+ }
+ return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0])))
+}
+
+func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) {
+ switch rsa.Addr.Family {
+ case AF_UNIX:
+ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa))
+ sa := new(SockaddrUnix)
+ // Assume path ends at NUL.
+ // This is not technically the Solaris semantics for
+ // abstract Unix domain sockets -- they are supposed
+ // to be uninterpreted fixed-size binary blobs -- but
+ // everyone uses this convention.
+ n := 0
+ for n < len(pp.Path) && pp.Path[n] != 0 {
+ n++
+ }
+ bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n]
+ sa.Name = string(bytes)
+ return sa, nil
+
+ case AF_INET:
+ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa))
+ sa := new(SockaddrInet4)
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+ sa.Port = int(p[0])<<8 + int(p[1])
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.Addr[i] = pp.Addr[i]
+ }
+ return sa, nil
+
+ case AF_INET6:
+ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa))
+ sa := new(SockaddrInet6)
+ p := (*[2]byte)(unsafe.Pointer(&pp.Port))
+ sa.Port = int(p[0])<<8 + int(p[1])
+ sa.ZoneId = pp.Scope_id
+ for i := 0; i < len(sa.Addr); i++ {
+ sa.Addr[i] = pp.Addr[i]
+ }
+ return sa, nil
+ }
+ return nil, EAFNOSUPPORT
+}
+
+//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept
+
+func Accept(fd int) (nfd int, sa Sockaddr, err error) {
+ var rsa RawSockaddrAny
+ var len _Socklen = SizeofSockaddrAny
+ nfd, err = accept(fd, &rsa, &len)
+ if nfd == -1 {
+ return
+ }
+ sa, err = anyToSockaddr(&rsa)
+ if err != nil {
+ Close(nfd)
+ nfd = 0
+ }
+ return
+}
+
+//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.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, flags int) (err error)
+//sys Ustat(dev int, ubuf *Ustat_t) (err error)
+//sys Utime(path string, buf *Utimbuf) (err error)
+//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.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/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
new file mode 100644
index 000000000..5aff62c3b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go
@@ -0,0 +1,35 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,solaris
+
+package unix
+
+func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) }
+
+func NsecToTimespec(nsec int64) (ts Timespec) {
+ ts.Sec = nsec / 1e9
+ ts.Nsec = nsec % 1e9
+ return
+}
+
+func NsecToTimeval(nsec int64) (tv Timeval) {
+ nsec += 999 // round up to microsecond
+ tv.Usec = nsec % 1e9 / 1e3
+ tv.Sec = int64(nsec / 1e9)
+ return
+}
+
+func (iov *Iovec) SetLen(length int) {
+ iov.Len = uint64(length)
+}
+
+func (cmsg *Cmsghdr) SetLen(length int) {
+ cmsg.Len = uint32(length)
+}
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ // TODO(aram): implement this, see issue 5847.
+ panic("unimplemented")
+}
diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go
new file mode 100644
index 000000000..b46b25028
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/syscall_unix.go
@@ -0,0 +1,297 @@
+// 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/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go
new file mode 100644
index 000000000..115326182
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_darwin.go
@@ -0,0 +1,250 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <unistd.h>
+#include <mach/mach.h>
+#include <mach/message.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/param.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/if_var.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+
+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/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go
new file mode 100644
index 000000000..f3c971dff
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_dragonfly.go
@@ -0,0 +1,242 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/param.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+
+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/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go
new file mode 100644
index 000000000..ae24557ad
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_freebsd.go
@@ -0,0 +1,353 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/param.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+
+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/golang.org/x/sys/unix/types_linux.go b/vendor/golang.org/x/sys/unix/types_linux.go
new file mode 100644
index 000000000..de80e2c8c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_linux.go
@@ -0,0 +1,457 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <netpacket/packet.h>
+#include <poll.h>
+#include <signal.h>
+#include <stdio.h>
+#include <sys/epoll.h>
+#include <sys/inotify.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/param.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/stat.h>
+#include <sys/statfs.h>
+#include <sys/sysinfo.h>
+#include <sys/time.h>
+#include <sys/times.h>
+#include <sys/timex.h>
+#include <sys/types.h>
+#include <sys/un.h>
+#include <sys/user.h>
+#include <sys/utsname.h>
+#include <sys/wait.h>
+#include <linux/filter.h>
+#include <linux/netlink.h>
+#include <linux/rtnetlink.h>
+#include <linux/icmpv6.h>
+#include <asm/termbits.h>
+#include <time.h>
+#include <unistd.h>
+#include <ustat.h>
+#include <utime.h>
+#include <bluetooth/bluetooth.h>
+#include <bluetooth/hci.h>
+
+#ifdef TCSETS2
+// On systems that have "struct termios2" use this as type Termios.
+typedef struct termios2 termios_t;
+#else
+typedef struct termios termios_t;
+#endif
+
+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;
+#elif defined(__mips__)
+typedef struct user PtraceRegs;
+#elif defined(__s390x__)
+typedef struct _user_regs_struct PtraceRegs;
+#elif defined(__sparc__)
+#include <asm/ptrace.h>
+typedef struct pt_regs PtraceRegs;
+#else
+typedef struct user_regs_struct PtraceRegs;
+#endif
+
+#if defined(__s390x__)
+typedef struct _user_psw_struct ptracePsw;
+typedef struct _user_fpregs_struct ptraceFpregs;
+typedef struct _user_per_struct ptracePer;
+#else
+typedef struct {} ptracePsw;
+typedef struct {} ptraceFpregs;
+typedef struct {} ptracePer;
+#endif
+
+// The real epoll_event is a union, and godefs doesn't handle it well.
+struct my_epoll_event {
+ uint32_t events;
+#if defined(__ARM_EABI__) || defined(__aarch64__)
+ // padding is not specified in linux/eventpoll.h but added to conform to the
+ // alignment requirements of EABI
+ int32_t padFd;
+#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__)
+ 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 RawSockaddrHCI C.struct_sockaddr_hci
+
+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
+ SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci
+ 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
+
+// Structures contained in PtraceRegs on s390x (exported by mkpost.go)
+type ptracePsw C.ptracePsw
+
+type ptraceFpregs C.ptraceFpregs
+
+type ptracePer C.ptracePer
+
+// 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_FOLLOW = C.AT_SYMLINK_FOLLOW
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+)
+
+type PollFd C.struct_pollfd
+
+const (
+ POLLIN = C.POLLIN
+ POLLPRI = C.POLLPRI
+ POLLOUT = C.POLLOUT
+ POLLRDHUP = C.POLLRDHUP
+ POLLERR = C.POLLERR
+ POLLHUP = C.POLLHUP
+ POLLNVAL = C.POLLNVAL
+)
+
+type Sigset_t C.sigset_t
+
+// sysconf information
+
+const _SC_PAGESIZE = C._SC_PAGESIZE
+
+// Terminal handling
+
+type Termios C.termios_t
diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go
new file mode 100644
index 000000000..d15f93d19
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_netbsd.go
@@ -0,0 +1,232 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/sysctl.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+
+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/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go
new file mode 100644
index 000000000..b66fe25f7
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_openbsd.go
@@ -0,0 +1,244 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <termios.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include <sys/types.h>
+#include <sys/event.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/ptrace.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/uio.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+
+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/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go
new file mode 100644
index 000000000..c5d5c8f16
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/types_solaris.go
@@ -0,0 +1,262 @@
+// 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 <dirent.h>
+#include <fcntl.h>
+#include <netdb.h>
+#include <limits.h>
+#include <signal.h>
+#include <termios.h>
+#include <termio.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/param.h>
+#include <sys/resource.h>
+#include <sys/select.h>
+#include <sys/signal.h>
+#include <sys/socket.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/times.h>
+#include <sys/types.h>
+#include <sys/utsname.h>
+#include <sys/un.h>
+#include <sys/wait.h>
+#include <net/bpf.h>
+#include <net/if.h>
+#include <net/if_dl.h>
+#include <net/route.h>
+#include <netinet/in.h>
+#include <netinet/icmp6.h>
+#include <netinet/tcp.h>
+#include <ustat.h>
+#include <utime.h>
+
+enum {
+ sizeofPtr = sizeof(void*),
+};
+
+union sockaddr_all {
+ struct sockaddr s1; // this one gets used for fields
+ struct sockaddr_in s2; // these pad it out
+ struct sockaddr_in6 s3;
+ struct sockaddr_un s4;
+ struct sockaddr_dl s5;
+};
+
+struct sockaddr_any {
+ struct sockaddr addr;
+ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)];
+};
+
+*/
+import "C"
+
+// Machine characteristics; for internal use.
+
+const (
+ sizeofPtr = C.sizeofPtr
+ sizeofShort = C.sizeof_short
+ sizeofInt = C.sizeof_int
+ sizeofLong = C.sizeof_long
+ sizeofLongLong = C.sizeof_longlong
+ PathMax = C.PATH_MAX
+ MaxHostNameLen = C.MAXHOSTNAMELEN
+)
+
+// Basic types
+
+type (
+ _C_short C.short
+ _C_int C.int
+ _C_long C.long
+ _C_long_long C.longlong
+)
+
+// Time
+
+type Timespec C.struct_timespec
+
+type Timeval C.struct_timeval
+
+type Timeval32 C.struct_timeval32
+
+type Tms C.struct_tms
+
+type Utimbuf C.struct_utimbuf
+
+// Processes
+
+type Rusage C.struct_rusage
+
+type Rlimit C.struct_rlimit
+
+type _Gid_t C.gid_t
+
+// Files
+
+const ( // Directory mode bits
+ S_IFMT = C.S_IFMT
+ S_IFIFO = C.S_IFIFO
+ S_IFCHR = C.S_IFCHR
+ S_IFDIR = C.S_IFDIR
+ S_IFBLK = C.S_IFBLK
+ S_IFREG = C.S_IFREG
+ S_IFLNK = C.S_IFLNK
+ S_IFSOCK = C.S_IFSOCK
+ S_ISUID = C.S_ISUID
+ S_ISGID = C.S_ISGID
+ S_ISVTX = C.S_ISVTX
+ S_IRUSR = C.S_IRUSR
+ S_IWUSR = C.S_IWUSR
+ S_IXUSR = C.S_IXUSR
+)
+
+type Stat_t C.struct_stat
+
+type Flock_t C.struct_flock
+
+type Dirent C.struct_dirent
+
+// Sockets
+
+type RawSockaddrInet4 C.struct_sockaddr_in
+
+type RawSockaddrInet6 C.struct_sockaddr_in6
+
+type RawSockaddrUnix C.struct_sockaddr_un
+
+type RawSockaddrDatalink C.struct_sockaddr_dl
+
+type RawSockaddr C.struct_sockaddr
+
+type RawSockaddrAny C.struct_sockaddr_any
+
+type _Socklen C.socklen_t
+
+type Linger C.struct_linger
+
+type Iovec C.struct_iovec
+
+type IPMreq C.struct_ip_mreq
+
+type IPv6Mreq C.struct_ipv6_mreq
+
+type Msghdr C.struct_msghdr
+
+type Cmsghdr C.struct_cmsghdr
+
+type Inet6Pktinfo C.struct_in6_pktinfo
+
+type IPv6MTUInfo C.struct_ip6_mtuinfo
+
+type ICMPv6Filter C.struct_icmp6_filter
+
+const (
+ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in
+ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6
+ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any
+ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un
+ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl
+ SizeofLinger = C.sizeof_struct_linger
+ SizeofIPMreq = C.sizeof_struct_ip_mreq
+ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq
+ SizeofMsghdr = C.sizeof_struct_msghdr
+ SizeofCmsghdr = C.sizeof_struct_cmsghdr
+ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo
+ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo
+ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter
+)
+
+// Select
+
+type FdSet C.fd_set
+
+// Misc
+
+type Utsname C.struct_utsname
+
+type Ustat_t C.struct_ustat
+
+const (
+ AT_FDCWD = C.AT_FDCWD
+ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW
+ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW
+ AT_REMOVEDIR = C.AT_REMOVEDIR
+ AT_EACCESS = C.AT_EACCESS
+)
+
+// Routing and interface messages
+
+const (
+ SizeofIfMsghdr = C.sizeof_struct_if_msghdr
+ SizeofIfData = C.sizeof_struct_if_data
+ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr
+ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr
+ SizeofRtMetrics = C.sizeof_struct_rt_metrics
+)
+
+type IfMsghdr C.struct_if_msghdr
+
+type IfData C.struct_if_data
+
+type IfaMsghdr C.struct_ifa_msghdr
+
+type RtMsghdr C.struct_rt_msghdr
+
+type RtMetrics C.struct_rt_metrics
+
+// Berkeley packet filter
+
+const (
+ SizeofBpfVersion = C.sizeof_struct_bpf_version
+ SizeofBpfStat = C.sizeof_struct_bpf_stat
+ SizeofBpfProgram = C.sizeof_struct_bpf_program
+ SizeofBpfInsn = C.sizeof_struct_bpf_insn
+ SizeofBpfHdr = C.sizeof_struct_bpf_hdr
+)
+
+type BpfVersion C.struct_bpf_version
+
+type BpfStat C.struct_bpf_stat
+
+type BpfProgram C.struct_bpf_program
+
+type BpfInsn C.struct_bpf_insn
+
+type BpfTimeval C.struct_bpf_timeval
+
+type BpfHdr C.struct_bpf_hdr
+
+// sysconf information
+
+const _SC_PAGESIZE = C._SC_PAGESIZE
+
+// Terminal handling
+
+type Termios C.struct_termios
+
+type Termio C.struct_termio
+
+type Winsize C.struct_winsize
diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
new file mode 100644
index 000000000..8e6388835
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go
@@ -0,0 +1,1576 @@
+// 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/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
new file mode 100644
index 000000000..9594f9381
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go
@@ -0,0 +1,1576 @@
+// 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/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
new file mode 100644
index 000000000..a410e88ed
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go
@@ -0,0 +1,1293 @@
+// 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/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
new file mode 100644
index 000000000..3189c6b34
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go
@@ -0,0 +1,1576 @@
+// 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/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
new file mode 100644
index 000000000..0feceee15
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go
@@ -0,0 +1,1530 @@
+// 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/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
new file mode 100644
index 000000000..7b95751c3
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go
@@ -0,0 +1,1743 @@
+// 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/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
new file mode 100644
index 000000000..e48e7799a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go
@@ -0,0 +1,1748 @@
+// 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/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
new file mode 100644
index 000000000..2afbe2d5e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go
@@ -0,0 +1,1729 @@
+// 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/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
new file mode 100644
index 000000000..8f920124b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go
@@ -0,0 +1,1819 @@
+// 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
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ 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
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_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
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_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
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x4000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x8000
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 0x410000
+ O_TRUNC = 0x200
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_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
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x540b
+ TCGETA = 0x5405
+ TCGETS = 0x5401
+ TCGETS2 = 0x802c542a
+ TCGETX = 0x5432
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_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
+ TCSBRK = 0x5409
+ TCSBRKP = 0x5425
+ TCSETA = 0x5406
+ TCSETAF = 0x5408
+ TCSETAW = 0x5407
+ TCSETS = 0x5402
+ TCSETS2 = 0x402c542b
+ TCSETSF = 0x5404
+ TCSETSF2 = 0x402c542d
+ TCSETSW = 0x5403
+ TCSETSW2 = 0x402c542c
+ TCSETX = 0x5433
+ TCSETXF = 0x5434
+ TCSETXW = 0x5435
+ TCXONC = 0x540a
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x80045432
+ TIOCGETD = 0x5424
+ TIOCGEXCL = 0x80045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x540f
+ TIOCGPKT = 0x80045438
+ TIOCGPTLCK = 0x80045439
+ TIOCGPTN = 0x80045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x5413
+ TIOCINQ = 0x541b
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x5411
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x5423
+ TIOCSIG = 0x40045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x5410
+ TIOCSPTLCK = 0x40045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTI = 0x5412
+ TIOCSWINSZ = 0x5414
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x100
+ 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
+ XCASE = 0x4
+ XTABS = 0x1800
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale 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/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
new file mode 100644
index 000000000..49b6c3546
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go
@@ -0,0 +1,1820 @@
+// 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
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ 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
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_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
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_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
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x4000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 0x410000
+ O_TRUNC = 0x200
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_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
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x540b
+ TCGETA = 0x5405
+ TCGETS = 0x5401
+ TCGETS2 = 0x802c542a
+ TCGETX = 0x5432
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_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
+ TCSBRK = 0x5409
+ TCSBRKP = 0x5425
+ TCSETA = 0x5406
+ TCSETAF = 0x5408
+ TCSETAW = 0x5407
+ TCSETS = 0x5402
+ TCSETS2 = 0x402c542b
+ TCSETSF = 0x5404
+ TCSETSF2 = 0x402c542d
+ TCSETSW = 0x5403
+ TCSETSW2 = 0x402c542c
+ TCSETX = 0x5433
+ TCSETXF = 0x5434
+ TCSETXW = 0x5435
+ TCXONC = 0x540a
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x80045432
+ TIOCGETD = 0x5424
+ TIOCGEXCL = 0x80045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x540f
+ TIOCGPKT = 0x80045438
+ TIOCGPTLCK = 0x80045439
+ TIOCGPTN = 0x80045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x5413
+ TIOCINQ = 0x541b
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x5411
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x5423
+ TIOCSIG = 0x40045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x5410
+ TIOCSPTLCK = 0x40045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTI = 0x5412
+ TIOCSWINSZ = 0x5414
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x100
+ 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
+ XCASE = 0x4
+ XTABS = 0x1800
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale 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/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
new file mode 100644
index 000000000..f036758f9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go
@@ -0,0 +1,1743 @@
+// 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
+ 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
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ELF_NGREG = 0x12
+ ELF_PRARGSZ = 0x50
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ 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
+ EXTA = 0xe
+ EXTB = 0xf
+ EXTPROC = 0x10000
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_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
+ 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_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
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_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
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x10000
+ O_DIRECTORY = 0x4000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x1000
+ O_LARGEFILE = 0x20000
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x8000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 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
+ PARENB = 0x100
+ 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_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
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x540b
+ TCGETA = 0x5405
+ TCGETS = 0x5401
+ TCGETS2 = 0x802c542a
+ TCGETX = 0x5432
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_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
+ TCSBRK = 0x5409
+ TCSBRKP = 0x5425
+ TCSETA = 0x5406
+ TCSETAF = 0x5408
+ TCSETAW = 0x5407
+ TCSETS = 0x5402
+ TCSETS2 = 0x402c542b
+ TCSETSF = 0x5404
+ TCSETSF2 = 0x402c542d
+ TCSETSW = 0x5403
+ TCSETSW2 = 0x402c542c
+ TCSETX = 0x5433
+ TCSETXF = 0x5434
+ TCSETXW = 0x5435
+ TCXONC = 0x540a
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x80045432
+ TIOCGETD = 0x5424
+ TIOCGEXCL = 0x80045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x540f
+ TIOCGPKT = 0x80045438
+ TIOCGPTLCK = 0x80045439
+ TIOCGPTN = 0x80045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x5413
+ TIOCINQ = 0x541b
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x5411
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x5423
+ TIOCSIG = 0x40045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x5410
+ TIOCSPTLCK = 0x40045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTI = 0x5412
+ TIOCSWINSZ = 0x5414
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x100
+ 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
+ XCASE = 0x4
+ XTABS = 0x1800
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale 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/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
new file mode 100644
index 000000000..16dcbc9cb
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go
@@ -0,0 +1,1897 @@
+// 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
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ 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
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_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
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DODUMP = 0x11
+ MADV_DOFORK = 0xb
+ MADV_DONTDUMP = 0x10
+ MADV_DONTFORK = 0xa
+ MADV_DONTNEED = 0x4
+ MADV_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
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x10000
+ O_DIRECTORY = 0x4000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x8000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 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
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x540b
+ TCGETA = 0x5405
+ TCGETS = 0x5401
+ TCGETS2 = 0x802c542a
+ TCGETX = 0x5432
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_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
+ TCSBRK = 0x5409
+ TCSBRKP = 0x5425
+ TCSETA = 0x5406
+ TCSETAF = 0x5408
+ TCSETAW = 0x5407
+ TCSETS = 0x5402
+ TCSETS2 = 0x402c542b
+ TCSETSF = 0x5404
+ TCSETSF2 = 0x402c542d
+ TCSETSW = 0x5403
+ TCSETSW2 = 0x402c542c
+ TCSETX = 0x5433
+ TCSETXF = 0x5434
+ TCSETXW = 0x5435
+ TCXONC = 0x540a
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x80045432
+ TIOCGETD = 0x5424
+ TIOCGEXCL = 0x80045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x540f
+ TIOCGPKT = 0x80045438
+ TIOCGPTLCK = 0x80045439
+ TIOCGPTN = 0x80045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x5413
+ TIOCINQ = 0x541b
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x5411
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x5423
+ TIOCSIG = 0x40045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x5410
+ TIOCSPTLCK = 0x40045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTI = 0x5412
+ TIOCSWINSZ = 0x5414
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x100
+ 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
+ XCASE = 0x4
+ XTABS = 0x1800
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale file handle",
+ 117: "structure needs cleaning",
+ 118: "not a XENIX named type file",
+ 119: "no XENIX semaphores available",
+ 120: "is a named type file",
+ 121: "remote I/O error",
+ 122: "disk quota exceeded",
+ 123: "no medium found",
+ 124: "wrong medium type",
+ 125: "operation canceled",
+ 126: "required key not available",
+ 127: "key has expired",
+ 128: "key has been revoked",
+ 129: "key was rejected by service",
+ 130: "owner died",
+ 131: "state not recoverable",
+ 132: "operation not possible due to RF-kill",
+ 133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "bus error",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "user defined signal 1",
+ 11: "segmentation fault",
+ 12: "user defined signal 2",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "stack fault",
+ 17: "child exited",
+ 18: "continued",
+ 19: "stopped (signal)",
+ 20: "stopped",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "urgent I/O condition",
+ 24: "CPU time limit exceeded",
+ 25: "file size limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window changed",
+ 29: "I/O possible",
+ 30: "power failure",
+ 31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
new file mode 100644
index 000000000..36535b242
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go
@@ -0,0 +1,1917 @@
+// mkerrors.sh
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build mips64,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_IB = 0x1b
+ 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_MPLS = 0x1c
+ AF_NETBEUI = 0xd
+ AF_NETLINK = 0x10
+ AF_NETROM = 0x6
+ AF_NFC = 0x27
+ AF_PACKET = 0x11
+ AF_PHONET = 0x23
+ AF_PPPOX = 0x18
+ AF_RDS = 0x15
+ AF_ROSE = 0xb
+ AF_ROUTE = 0x10
+ AF_RXRPC = 0x21
+ AF_SECURITY = 0xe
+ AF_SNA = 0x16
+ AF_TIPC = 0x1e
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
+ AF_WANPIPE = 0x19
+ AF_X25 = 0x9
+ ARPHRD_6LOWPAN = 0x339
+ ARPHRD_ADAPT = 0x108
+ ARPHRD_APPLETLK = 0x8
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ASH = 0x30d
+ ARPHRD_ATM = 0x13
+ ARPHRD_AX25 = 0x3
+ ARPHRD_BIF = 0x307
+ ARPHRD_CAIF = 0x336
+ ARPHRD_CAN = 0x118
+ ARPHRD_CHAOS = 0x5
+ ARPHRD_CISCO = 0x201
+ ARPHRD_CSLIP = 0x101
+ ARPHRD_CSLIP6 = 0x103
+ ARPHRD_DDCMP = 0x205
+ ARPHRD_DLCI = 0xf
+ ARPHRD_ECONET = 0x30e
+ ARPHRD_EETHER = 0x2
+ ARPHRD_ETHER = 0x1
+ ARPHRD_EUI64 = 0x1b
+ ARPHRD_FCAL = 0x311
+ ARPHRD_FCFABRIC = 0x313
+ ARPHRD_FCPL = 0x312
+ ARPHRD_FCPP = 0x310
+ ARPHRD_FDDI = 0x306
+ ARPHRD_FRAD = 0x302
+ ARPHRD_HDLC = 0x201
+ ARPHRD_HIPPI = 0x30c
+ ARPHRD_HWX25 = 0x110
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_IEEE80211 = 0x321
+ ARPHRD_IEEE80211_PRISM = 0x322
+ ARPHRD_IEEE80211_RADIOTAP = 0x323
+ ARPHRD_IEEE802154 = 0x324
+ ARPHRD_IEEE802154_MONITOR = 0x325
+ ARPHRD_IEEE802_TR = 0x320
+ ARPHRD_INFINIBAND = 0x20
+ ARPHRD_IP6GRE = 0x337
+ ARPHRD_IPDDP = 0x309
+ ARPHRD_IPGRE = 0x30a
+ ARPHRD_IRDA = 0x30f
+ ARPHRD_LAPB = 0x204
+ ARPHRD_LOCALTLK = 0x305
+ ARPHRD_LOOPBACK = 0x304
+ ARPHRD_METRICOM = 0x17
+ ARPHRD_NETLINK = 0x338
+ ARPHRD_NETROM = 0x0
+ ARPHRD_NONE = 0xfffe
+ ARPHRD_PHONET = 0x334
+ ARPHRD_PHONET_PIPE = 0x335
+ ARPHRD_PIMREG = 0x30b
+ ARPHRD_PPP = 0x200
+ ARPHRD_PRONET = 0x4
+ ARPHRD_RAWHDLC = 0x206
+ ARPHRD_ROSE = 0x10e
+ ARPHRD_RSRVD = 0x104
+ ARPHRD_SIT = 0x308
+ ARPHRD_SKIP = 0x303
+ ARPHRD_SLIP = 0x100
+ ARPHRD_SLIP6 = 0x102
+ ARPHRD_TUNNEL = 0x300
+ ARPHRD_TUNNEL6 = 0x301
+ ARPHRD_VOID = 0xffff
+ ARPHRD_X25 = 0x10f
+ B0 = 0x0
+ B1000000 = 0x1008
+ B110 = 0x3
+ B115200 = 0x1002
+ B1152000 = 0x1009
+ B1200 = 0x9
+ B134 = 0x4
+ B150 = 0x5
+ B1500000 = 0x100a
+ B1800 = 0xa
+ B19200 = 0xe
+ B200 = 0x6
+ B2000000 = 0x100b
+ B230400 = 0x1003
+ B2400 = 0xb
+ B2500000 = 0x100c
+ B300 = 0x7
+ B3000000 = 0x100d
+ B3500000 = 0x100e
+ B38400 = 0xf
+ B4000000 = 0x100f
+ B460800 = 0x1004
+ B4800 = 0xc
+ B50 = 0x1
+ B500000 = 0x1005
+ B57600 = 0x1001
+ B576000 = 0x1006
+ B600 = 0x8
+ B75 = 0x2
+ B921600 = 0x1007
+ B9600 = 0xd
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LL_OFF = -0x200000
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXINSNS = 0x1000
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MOD = 0x90
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_NET_OFF = -0x100000
+ BPF_OR = 0x40
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BPF_XOR = 0xa0
+ BRKINT = 0x2
+ 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_TAI = 0xb
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ 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
+ 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_TSN = 0x22f0
+ ETH_P_WAN_PPP = 0x7
+ ETH_P_WCCP = 0x883e
+ ETH_P_X25 = 0x805
+ ETH_P_XDSA = 0xf8
+ EXTA = 0xe
+ EXTB = 0xf
+ EXTPROC = 0x10000
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FLUSHO = 0x2000
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0x406
+ F_EXLCK = 0x4
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLEASE = 0x401
+ F_GETLK = 0xe
+ F_GETLK64 = 0xe
+ F_GETOWN = 0x17
+ F_GETOWN_EX = 0x10
+ F_GETPIPE_SZ = 0x408
+ F_GETSIG = 0xb
+ F_LOCK = 0x1
+ F_NOTIFY = 0x402
+ F_OFD_GETLK = 0x24
+ F_OFD_SETLK = 0x25
+ F_OFD_SETLKW = 0x26
+ F_OK = 0x0
+ F_RDLCK = 0x0
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLEASE = 0x400
+ F_SETLK = 0x6
+ F_SETLK64 = 0x6
+ F_SETLKW = 0x7
+ F_SETLKW64 = 0x7
+ F_SETOWN = 0x18
+ F_SETOWN_EX = 0xf
+ F_SETPIPE_SZ = 0x407
+ F_SETSIG = 0xa
+ F_SHLCK = 0x8
+ F_TEST = 0x3
+ F_TLOCK = 0x2
+ F_ULOCK = 0x0
+ F_UNLCK = 0x2
+ F_WRLCK = 0x1
+ HUPCL = 0x400
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x100
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_MANAGETEMPADDR = 0x100
+ IFA_F_MCAUTOJOIN = 0x400
+ IFA_F_NODAD = 0x2
+ IFA_F_NOPREFIXROUTE = 0x200
+ IFA_F_OPTIMISTIC = 0x4
+ IFA_F_PERMANENT = 0x80
+ IFA_F_SECONDARY = 0x1
+ IFA_F_STABLE_PRIVACY = 0x800
+ IFA_F_TEMPORARY = 0x1
+ IFA_F_TENTATIVE = 0x40
+ IFA_MAX = 0x8
+ IFF_ALLMULTI = 0x200
+ IFF_ATTACH_QUEUE = 0x200
+ IFF_AUTOMEDIA = 0x4000
+ IFF_BROADCAST = 0x2
+ IFF_DEBUG = 0x4
+ IFF_DETACH_QUEUE = 0x400
+ IFF_DORMANT = 0x20000
+ IFF_DYNAMIC = 0x8000
+ IFF_ECHO = 0x40000
+ IFF_LOOPBACK = 0x8
+ IFF_LOWER_UP = 0x10000
+ IFF_MASTER = 0x400
+ IFF_MULTICAST = 0x1000
+ IFF_MULTI_QUEUE = 0x100
+ IFF_NOARP = 0x80
+ IFF_NOFILTER = 0x1000
+ IFF_NOTRAILERS = 0x20
+ IFF_NO_PI = 0x1000
+ IFF_ONE_QUEUE = 0x2000
+ IFF_PERSIST = 0x800
+ IFF_POINTOPOINT = 0x10
+ IFF_PORTSEL = 0x2000
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SLAVE = 0x800
+ IFF_TAP = 0x2
+ IFF_TUN = 0x1
+ IFF_TUN_EXCL = 0x8000
+ IFF_UP = 0x1
+ IFF_VNET_HDR = 0x4000
+ IFF_VOLATILE = 0x70c5a
+ IFNAMSIZ = 0x10
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_ACCESS = 0x1
+ IN_ALL_EVENTS = 0xfff
+ IN_ATTRIB = 0x4
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLOEXEC = 0x80000
+ IN_CLOSE = 0x18
+ IN_CLOSE_NOWRITE = 0x10
+ IN_CLOSE_WRITE = 0x8
+ IN_CREATE = 0x100
+ IN_DELETE = 0x200
+ IN_DELETE_SELF = 0x400
+ IN_DONT_FOLLOW = 0x2000000
+ IN_EXCL_UNLINK = 0x4000000
+ IN_IGNORED = 0x8000
+ IN_ISDIR = 0x40000000
+ IN_LOOPBACKNET = 0x7f
+ IN_MASK_ADD = 0x20000000
+ IN_MODIFY = 0x2
+ IN_MOVE = 0xc0
+ IN_MOVED_FROM = 0x40
+ IN_MOVED_TO = 0x80
+ IN_MOVE_SELF = 0x800
+ IN_NONBLOCK = 0x80
+ IN_ONESHOT = 0x80000000
+ IN_ONLYDIR = 0x1000000
+ IN_OPEN = 0x20
+ IN_Q_OVERFLOW = 0x4000
+ IN_UNMOUNT = 0x2000
+ IPPROTO_AH = 0x33
+ IPPROTO_BEETPH = 0x5e
+ IPPROTO_COMP = 0x6c
+ IPPROTO_DCCP = 0x21
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_ESP = 0x32
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MH = 0x87
+ IPPROTO_MTP = 0x5c
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_SCTP = 0x84
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_UDPLITE = 0x88
+ IPV6_2292DSTOPTS = 0x4
+ IPV6_2292HOPLIMIT = 0x8
+ IPV6_2292HOPOPTS = 0x3
+ IPV6_2292PKTINFO = 0x2
+ IPV6_2292PKTOPTIONS = 0x6
+ IPV6_2292RTHDR = 0x5
+ IPV6_ADDRFORM = 0x1
+ IPV6_ADD_MEMBERSHIP = 0x14
+ IPV6_AUTHHDR = 0xa
+ IPV6_CHECKSUM = 0x7
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DROP_MEMBERSHIP = 0x15
+ IPV6_DSTOPTS = 0x3b
+ IPV6_HOPLIMIT = 0x34
+ IPV6_HOPOPTS = 0x36
+ IPV6_IPSEC_POLICY = 0x22
+ IPV6_JOIN_ANYCAST = 0x1b
+ IPV6_JOIN_GROUP = 0x14
+ IPV6_LEAVE_ANYCAST = 0x1c
+ IPV6_LEAVE_GROUP = 0x15
+ IPV6_MTU = 0x18
+ IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_HOPS = 0x12
+ IPV6_MULTICAST_IF = 0x11
+ IPV6_MULTICAST_LOOP = 0x13
+ IPV6_NEXTHOP = 0x9
+ IPV6_PATHMTU = 0x3d
+ IPV6_PKTINFO = 0x32
+ IPV6_PMTUDISC_DO = 0x2
+ IPV6_PMTUDISC_DONT = 0x0
+ IPV6_PMTUDISC_INTERFACE = 0x4
+ IPV6_PMTUDISC_OMIT = 0x5
+ IPV6_PMTUDISC_PROBE = 0x3
+ IPV6_PMTUDISC_WANT = 0x1
+ IPV6_RECVDSTOPTS = 0x3a
+ IPV6_RECVERR = 0x19
+ IPV6_RECVHOPLIMIT = 0x33
+ IPV6_RECVHOPOPTS = 0x35
+ IPV6_RECVPATHMTU = 0x3c
+ IPV6_RECVPKTINFO = 0x31
+ IPV6_RECVRTHDR = 0x38
+ IPV6_RECVTCLASS = 0x42
+ IPV6_ROUTER_ALERT = 0x16
+ IPV6_RTHDR = 0x39
+ IPV6_RTHDRDSTOPTS = 0x37
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_RXDSTOPTS = 0x3b
+ IPV6_RXHOPOPTS = 0x36
+ IPV6_TCLASS = 0x43
+ IPV6_UNICAST_HOPS = 0x10
+ IPV6_V6ONLY = 0x1a
+ IPV6_XFRM_POLICY = 0x23
+ IP_ADD_MEMBERSHIP = 0x23
+ IP_ADD_SOURCE_MEMBERSHIP = 0x27
+ IP_BLOCK_SOURCE = 0x26
+ IP_CHECKSUM = 0x17
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0x24
+ IP_DROP_SOURCE_MEMBERSHIP = 0x28
+ IP_FREEBIND = 0xf
+ IP_HDRINCL = 0x3
+ IP_IPSEC_POLICY = 0x10
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINTTL = 0x15
+ IP_MSFILTER = 0x29
+ IP_MSS = 0x240
+ IP_MTU = 0xe
+ IP_MTU_DISCOVER = 0xa
+ IP_MULTICAST_ALL = 0x31
+ IP_MULTICAST_IF = 0x20
+ IP_MULTICAST_LOOP = 0x22
+ IP_MULTICAST_TTL = 0x21
+ IP_NODEFRAG = 0x16
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x4
+ IP_ORIGDSTADDR = 0x14
+ IP_PASSSEC = 0x12
+ IP_PKTINFO = 0x8
+ IP_PKTOPTIONS = 0x9
+ IP_PMTUDISC = 0xa
+ IP_PMTUDISC_DO = 0x2
+ IP_PMTUDISC_DONT = 0x0
+ IP_PMTUDISC_INTERFACE = 0x4
+ IP_PMTUDISC_OMIT = 0x5
+ IP_PMTUDISC_PROBE = 0x3
+ IP_PMTUDISC_WANT = 0x1
+ IP_RECVERR = 0xb
+ IP_RECVOPTS = 0x6
+ IP_RECVORIGDSTADDR = 0x14
+ IP_RECVRETOPTS = 0x7
+ IP_RECVTOS = 0xd
+ IP_RECVTTL = 0xc
+ IP_RETOPTS = 0x7
+ IP_RF = 0x8000
+ IP_ROUTER_ALERT = 0x5
+ IP_TOS = 0x1
+ IP_TRANSPARENT = 0x13
+ IP_TTL = 0x2
+ IP_UNBLOCK_SOURCE = 0x25
+ IP_UNICAST_IF = 0x32
+ IP_XFRM_POLICY = 0x11
+ ISIG = 0x1
+ ISTRIP = 0x20
+ 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 = 0x800
+ MAP_ANONYMOUS = 0x800
+ MAP_DENYWRITE = 0x2000
+ MAP_EXECUTABLE = 0x4000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_GROWSDOWN = 0x1000
+ MAP_HUGETLB = 0x80000
+ MAP_HUGE_MASK = 0x3f
+ MAP_HUGE_SHIFT = 0x1a
+ MAP_LOCKED = 0x8000
+ MAP_NONBLOCK = 0x20000
+ MAP_NORESERVE = 0x400
+ MAP_POPULATE = 0x10000
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x800
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x40000
+ MAP_TYPE = 0xf
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ 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_LAZYTIME = 0x2000000
+ MS_MANDLOCK = 0x40
+ MS_MGC_MSK = 0xffff0000
+ MS_MGC_VAL = 0xc0ed0000
+ MS_MOVE = 0x2000
+ MS_NOATIME = 0x400
+ MS_NODEV = 0x4
+ MS_NODIRATIME = 0x800
+ MS_NOEXEC = 0x8
+ MS_NOSUID = 0x2
+ MS_NOUSER = -0x80000000
+ MS_POSIXACL = 0x10000
+ MS_PRIVATE = 0x40000
+ MS_RDONLY = 0x1
+ MS_REC = 0x4000
+ MS_RELATIME = 0x200000
+ MS_REMOUNT = 0x20
+ MS_RMT_MASK = 0x2800051
+ MS_SHARED = 0x100000
+ MS_SILENT = 0x8000
+ MS_SLAVE = 0x80000
+ MS_STRICTATIME = 0x1000000
+ MS_SYNC = 0x4
+ MS_SYNCHRONOUS = 0x10
+ MS_UNBINDABLE = 0x20000
+ NAME_MAX = 0xff
+ NETLINK_ADD_MEMBERSHIP = 0x1
+ NETLINK_AUDIT = 0x9
+ NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
+ NETLINK_CONNECTOR = 0xb
+ NETLINK_CRYPTO = 0x15
+ NETLINK_DNRTMSG = 0xe
+ NETLINK_DROP_MEMBERSHIP = 0x2
+ NETLINK_ECRYPTFS = 0x13
+ NETLINK_FIB_LOOKUP = 0xa
+ NETLINK_FIREWALL = 0x3
+ NETLINK_GENERIC = 0x10
+ NETLINK_INET_DIAG = 0x4
+ NETLINK_IP6_FW = 0xd
+ NETLINK_ISCSI = 0x8
+ NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
+ NETLINK_NETFILTER = 0xc
+ NETLINK_NFLOG = 0x5
+ NETLINK_NO_ENOBUFS = 0x5
+ NETLINK_PKTINFO = 0x3
+ NETLINK_RDMA = 0x14
+ NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
+ NETLINK_SCSITRANSPORT = 0x12
+ NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
+ NETLINK_UNUSED = 0x1
+ NETLINK_USERSOCK = 0x2
+ NETLINK_XFRM = 0x6
+ 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 = 0x8
+ O_ASYNC = 0x1000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x100
+ O_DIRECT = 0x8000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x10
+ O_EXCL = 0x400
+ O_FSYNC = 0x4010
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x80
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x800
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x80
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x4010
+ O_SYNC = 0x4010
+ O_TMPFILE = 0x410000
+ O_TRUNC = 0x200
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_CBPF = 0x6
+ PACKET_FANOUT_CPU = 0x2
+ PACKET_FANOUT_DATA = 0x16
+ PACKET_FANOUT_EBPF = 0x7
+ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+ PACKET_FANOUT_HASH = 0x0
+ PACKET_FANOUT_LB = 0x1
+ PACKET_FANOUT_QM = 0x5
+ PACKET_FANOUT_RND = 0x4
+ PACKET_FANOUT_ROLLOVER = 0x3
+ PACKET_FASTROUTE = 0x6
+ PACKET_HDRLEN = 0xb
+ PACKET_HOST = 0x0
+ PACKET_KERNEL = 0x7
+ PACKET_LOOPBACK = 0x5
+ PACKET_LOSS = 0xe
+ PACKET_MR_ALLMULTI = 0x2
+ PACKET_MR_MULTICAST = 0x0
+ PACKET_MR_PROMISC = 0x1
+ PACKET_MR_UNICAST = 0x3
+ PACKET_MULTICAST = 0x2
+ PACKET_ORIGDEV = 0x9
+ PACKET_OTHERHOST = 0x3
+ PACKET_OUTGOING = 0x4
+ PACKET_QDISC_BYPASS = 0x14
+ PACKET_RECV_OUTPUT = 0x3
+ PACKET_RESERVE = 0xc
+ PACKET_ROLLOVER_STATS = 0x15
+ PACKET_RX_RING = 0x5
+ PACKET_STATISTICS = 0x6
+ PACKET_TIMESTAMP = 0x11
+ PACKET_TX_HAS_OFF = 0x13
+ PACKET_TX_RING = 0xd
+ PACKET_TX_TIMESTAMP = 0x10
+ PACKET_USER = 0x6
+ PACKET_VERSION = 0xa
+ PACKET_VNET_HDR = 0xf
+ PARENB = 0x100
+ PARITY_CRC16_PR0 = 0x2
+ PARITY_CRC16_PR0_CCITT = 0x4
+ PARITY_CRC16_PR1 = 0x3
+ PARITY_CRC16_PR1_CCITT = 0x5
+ PARITY_CRC32_PR0_CCITT = 0x6
+ PARITY_CRC32_PR1_CCITT = 0x7
+ PARITY_DEFAULT = 0x0
+ PARITY_NONE = 0x1
+ PARMRK = 0x8
+ PARODD = 0x200
+ PENDIN = 0x4000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_GROWSDOWN = 0x1000000
+ PROT_GROWSUP = 0x2000000
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PR_CAPBSET_DROP = 0x18
+ PR_CAPBSET_READ = 0x17
+ PR_CAP_AMBIENT = 0x2f
+ PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+ PR_CAP_AMBIENT_IS_SET = 0x1
+ PR_CAP_AMBIENT_LOWER = 0x3
+ PR_CAP_AMBIENT_RAISE = 0x2
+ PR_ENDIAN_BIG = 0x0
+ PR_ENDIAN_LITTLE = 0x1
+ PR_ENDIAN_PPC_LITTLE = 0x2
+ PR_FPEMU_NOPRINT = 0x1
+ PR_FPEMU_SIGFPE = 0x2
+ PR_FP_EXC_ASYNC = 0x2
+ PR_FP_EXC_DISABLED = 0x0
+ PR_FP_EXC_DIV = 0x10000
+ PR_FP_EXC_INV = 0x100000
+ PR_FP_EXC_NONRECOV = 0x1
+ PR_FP_EXC_OVF = 0x20000
+ PR_FP_EXC_PRECISE = 0x3
+ PR_FP_EXC_RES = 0x80000
+ PR_FP_EXC_SW_ENABLE = 0x80
+ PR_FP_EXC_UND = 0x40000
+ PR_FP_MODE_FR = 0x1
+ PR_FP_MODE_FRE = 0x2
+ PR_GET_CHILD_SUBREAPER = 0x25
+ PR_GET_DUMPABLE = 0x3
+ PR_GET_ENDIAN = 0x13
+ PR_GET_FPEMU = 0x9
+ PR_GET_FPEXC = 0xb
+ PR_GET_FP_MODE = 0x2e
+ PR_GET_KEEPCAPS = 0x7
+ PR_GET_NAME = 0x10
+ PR_GET_NO_NEW_PRIVS = 0x27
+ PR_GET_PDEATHSIG = 0x2
+ PR_GET_SECCOMP = 0x15
+ PR_GET_SECUREBITS = 0x1b
+ PR_GET_THP_DISABLE = 0x2a
+ PR_GET_TID_ADDRESS = 0x28
+ PR_GET_TIMERSLACK = 0x1e
+ PR_GET_TIMING = 0xd
+ PR_GET_TSC = 0x19
+ PR_GET_UNALIGN = 0x5
+ PR_MCE_KILL = 0x21
+ PR_MCE_KILL_CLEAR = 0x0
+ PR_MCE_KILL_DEFAULT = 0x2
+ PR_MCE_KILL_EARLY = 0x1
+ PR_MCE_KILL_GET = 0x22
+ PR_MCE_KILL_LATE = 0x0
+ PR_MCE_KILL_SET = 0x1
+ PR_MPX_DISABLE_MANAGEMENT = 0x2c
+ PR_MPX_ENABLE_MANAGEMENT = 0x2b
+ PR_SET_CHILD_SUBREAPER = 0x24
+ PR_SET_DUMPABLE = 0x4
+ PR_SET_ENDIAN = 0x14
+ PR_SET_FPEMU = 0xa
+ PR_SET_FPEXC = 0xc
+ PR_SET_FP_MODE = 0x2d
+ PR_SET_KEEPCAPS = 0x8
+ PR_SET_MM = 0x23
+ PR_SET_MM_ARG_END = 0x9
+ PR_SET_MM_ARG_START = 0x8
+ PR_SET_MM_AUXV = 0xc
+ PR_SET_MM_BRK = 0x7
+ PR_SET_MM_END_CODE = 0x2
+ PR_SET_MM_END_DATA = 0x4
+ PR_SET_MM_ENV_END = 0xb
+ PR_SET_MM_ENV_START = 0xa
+ PR_SET_MM_EXE_FILE = 0xd
+ PR_SET_MM_MAP = 0xe
+ PR_SET_MM_MAP_SIZE = 0xf
+ PR_SET_MM_START_BRK = 0x6
+ PR_SET_MM_START_CODE = 0x1
+ PR_SET_MM_START_DATA = 0x3
+ PR_SET_MM_START_STACK = 0x5
+ PR_SET_NAME = 0xf
+ PR_SET_NO_NEW_PRIVS = 0x26
+ PR_SET_PDEATHSIG = 0x1
+ PR_SET_PTRACER = 0x59616d61
+ PR_SET_PTRACER_ANY = -0x1
+ PR_SET_SECCOMP = 0x16
+ PR_SET_SECUREBITS = 0x1c
+ PR_SET_THP_DISABLE = 0x29
+ PR_SET_TIMERSLACK = 0x1d
+ PR_SET_TIMING = 0xe
+ PR_SET_TSC = 0x1a
+ PR_SET_UNALIGN = 0x6
+ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+ PR_TASK_PERF_EVENTS_ENABLE = 0x20
+ PR_TIMING_STATISTICAL = 0x0
+ PR_TIMING_TIMESTAMP = 0x1
+ PR_TSC_ENABLE = 0x1
+ PR_TSC_SIGSEGV = 0x2
+ PR_UNALIGN_NOPRINT = 0x1
+ PR_UNALIGN_SIGBUS = 0x2
+ PTRACE_ATTACH = 0x10
+ PTRACE_CONT = 0x7
+ PTRACE_DETACH = 0x11
+ PTRACE_EVENT_CLONE = 0x3
+ PTRACE_EVENT_EXEC = 0x4
+ PTRACE_EVENT_EXIT = 0x6
+ PTRACE_EVENT_FORK = 0x1
+ PTRACE_EVENT_SECCOMP = 0x7
+ PTRACE_EVENT_STOP = 0x80
+ PTRACE_EVENT_VFORK = 0x2
+ PTRACE_EVENT_VFORK_DONE = 0x5
+ PTRACE_GETEVENTMSG = 0x4201
+ PTRACE_GETFPREGS = 0xe
+ PTRACE_GETREGS = 0xc
+ PTRACE_GETREGSET = 0x4204
+ PTRACE_GETSIGINFO = 0x4202
+ PTRACE_GETSIGMASK = 0x420a
+ PTRACE_GET_THREAD_AREA = 0x19
+ PTRACE_GET_THREAD_AREA_3264 = 0xc4
+ PTRACE_GET_WATCH_REGS = 0xd0
+ PTRACE_INTERRUPT = 0x4207
+ PTRACE_KILL = 0x8
+ PTRACE_LISTEN = 0x4208
+ PTRACE_OLDSETOPTIONS = 0x15
+ PTRACE_O_EXITKILL = 0x100000
+ PTRACE_O_MASK = 0x3000ff
+ PTRACE_O_SUSPEND_SECCOMP = 0x200000
+ PTRACE_O_TRACECLONE = 0x8
+ PTRACE_O_TRACEEXEC = 0x10
+ PTRACE_O_TRACEEXIT = 0x40
+ PTRACE_O_TRACEFORK = 0x2
+ PTRACE_O_TRACESECCOMP = 0x80
+ PTRACE_O_TRACESYSGOOD = 0x1
+ PTRACE_O_TRACEVFORK = 0x4
+ PTRACE_O_TRACEVFORKDONE = 0x20
+ PTRACE_PEEKDATA = 0x2
+ PTRACE_PEEKDATA_3264 = 0xc1
+ PTRACE_PEEKSIGINFO = 0x4209
+ PTRACE_PEEKSIGINFO_SHARED = 0x1
+ PTRACE_PEEKTEXT = 0x1
+ PTRACE_PEEKTEXT_3264 = 0xc0
+ PTRACE_PEEKUSR = 0x3
+ PTRACE_POKEDATA = 0x5
+ PTRACE_POKEDATA_3264 = 0xc3
+ PTRACE_POKETEXT = 0x4
+ PTRACE_POKETEXT_3264 = 0xc2
+ PTRACE_POKEUSR = 0x6
+ PTRACE_SEIZE = 0x4206
+ PTRACE_SETFPREGS = 0xf
+ PTRACE_SETOPTIONS = 0x4200
+ PTRACE_SETREGS = 0xd
+ PTRACE_SETREGSET = 0x4205
+ PTRACE_SETSIGINFO = 0x4203
+ PTRACE_SETSIGMASK = 0x420b
+ PTRACE_SET_THREAD_AREA = 0x1a
+ PTRACE_SET_WATCH_REGS = 0xd1
+ PTRACE_SINGLESTEP = 0x9
+ PTRACE_SYSCALL = 0x18
+ PTRACE_TRACEME = 0x0
+ RLIMIT_AS = 0x6
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = -0x1
+ RTAX_ADVMSS = 0x8
+ RTAX_CC_ALGO = 0x10
+ RTAX_CWND = 0x7
+ RTAX_FEATURES = 0xc
+ RTAX_FEATURE_ALLFRAG = 0x8
+ RTAX_FEATURE_ECN = 0x1
+ RTAX_FEATURE_MASK = 0xf
+ RTAX_FEATURE_SACK = 0x2
+ RTAX_FEATURE_TIMESTAMP = 0x4
+ RTAX_HOPLIMIT = 0xa
+ RTAX_INITCWND = 0xb
+ RTAX_INITRWND = 0xe
+ RTAX_LOCK = 0x1
+ RTAX_MAX = 0x10
+ RTAX_MTU = 0x2
+ RTAX_QUICKACK = 0xf
+ RTAX_REORDERING = 0x9
+ RTAX_RTO_MIN = 0xd
+ RTAX_RTT = 0x4
+ RTAX_RTTVAR = 0x5
+ RTAX_SSTHRESH = 0x6
+ RTAX_UNSPEC = 0x0
+ RTAX_WINDOW = 0x3
+ RTA_ALIGNTO = 0x4
+ RTA_MAX = 0x16
+ RTCF_DIRECTSRC = 0x4000000
+ RTCF_DOREDIRECT = 0x1000000
+ RTCF_LOG = 0x2000000
+ RTCF_MASQ = 0x400000
+ RTCF_NAT = 0x800000
+ RTCF_VALVE = 0x200000
+ RTF_ADDRCLASSMASK = 0xf8000000
+ RTF_ADDRCONF = 0x40000
+ RTF_ALLONLINK = 0x20000
+ RTF_BROADCAST = 0x10000000
+ RTF_CACHE = 0x1000000
+ RTF_DEFAULT = 0x10000
+ RTF_DYNAMIC = 0x10
+ RTF_FLOW = 0x2000000
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_INTERFACE = 0x40000000
+ RTF_IRTT = 0x100
+ RTF_LINKRT = 0x100000
+ RTF_LOCAL = 0x80000000
+ RTF_MODIFIED = 0x20
+ RTF_MSS = 0x40
+ RTF_MTU = 0x40
+ RTF_MULTICAST = 0x20000000
+ RTF_NAT = 0x8000000
+ RTF_NOFORWARD = 0x1000
+ RTF_NONEXTHOP = 0x200000
+ RTF_NOPMTUDISC = 0x4000
+ RTF_POLICY = 0x4000000
+ RTF_REINSTATE = 0x8
+ RTF_REJECT = 0x200
+ RTF_STATIC = 0x400
+ RTF_THROW = 0x2000
+ RTF_UP = 0x1
+ RTF_WINDOW = 0x80
+ RTF_XRESOLVE = 0x800
+ RTM_BASE = 0x10
+ RTM_DELACTION = 0x31
+ RTM_DELADDR = 0x15
+ RTM_DELADDRLABEL = 0x49
+ RTM_DELLINK = 0x11
+ RTM_DELMDB = 0x55
+ RTM_DELNEIGH = 0x1d
+ RTM_DELNSID = 0x59
+ RTM_DELQDISC = 0x25
+ RTM_DELROUTE = 0x19
+ RTM_DELRULE = 0x21
+ RTM_DELTCLASS = 0x29
+ RTM_DELTFILTER = 0x2d
+ RTM_F_CLONED = 0x200
+ RTM_F_EQUALIZE = 0x400
+ RTM_F_NOTIFY = 0x100
+ RTM_F_PREFIX = 0x800
+ RTM_GETACTION = 0x32
+ RTM_GETADDR = 0x16
+ RTM_GETADDRLABEL = 0x4a
+ RTM_GETANYCAST = 0x3e
+ RTM_GETDCB = 0x4e
+ RTM_GETLINK = 0x12
+ RTM_GETMDB = 0x56
+ RTM_GETMULTICAST = 0x3a
+ RTM_GETNEIGH = 0x1e
+ RTM_GETNEIGHTBL = 0x42
+ RTM_GETNETCONF = 0x52
+ RTM_GETNSID = 0x5a
+ RTM_GETQDISC = 0x26
+ RTM_GETROUTE = 0x1a
+ RTM_GETRULE = 0x22
+ RTM_GETTCLASS = 0x2a
+ RTM_GETTFILTER = 0x2e
+ RTM_MAX = 0x5b
+ RTM_NEWACTION = 0x30
+ RTM_NEWADDR = 0x14
+ RTM_NEWADDRLABEL = 0x48
+ RTM_NEWLINK = 0x10
+ RTM_NEWMDB = 0x54
+ RTM_NEWNDUSEROPT = 0x44
+ RTM_NEWNEIGH = 0x1c
+ RTM_NEWNEIGHTBL = 0x40
+ RTM_NEWNETCONF = 0x50
+ RTM_NEWNSID = 0x58
+ RTM_NEWPREFIX = 0x34
+ RTM_NEWQDISC = 0x24
+ RTM_NEWROUTE = 0x18
+ RTM_NEWRULE = 0x20
+ RTM_NEWTCLASS = 0x28
+ RTM_NEWTFILTER = 0x2c
+ RTM_NR_FAMILIES = 0x13
+ RTM_NR_MSGTYPES = 0x4c
+ RTM_SETDCB = 0x4f
+ RTM_SETLINK = 0x13
+ RTM_SETNEIGHTBL = 0x43
+ RTNH_ALIGNTO = 0x4
+ RTNH_COMPARE_MASK = 0x11
+ RTNH_F_DEAD = 0x1
+ RTNH_F_LINKDOWN = 0x10
+ RTNH_F_OFFLOAD = 0x8
+ RTNH_F_ONLINK = 0x4
+ RTNH_F_PERVASIVE = 0x2
+ RTN_MAX = 0xb
+ RTPROT_BABEL = 0x2a
+ RTPROT_BIRD = 0xc
+ RTPROT_BOOT = 0x3
+ RTPROT_DHCP = 0x10
+ RTPROT_DNROUTED = 0xd
+ RTPROT_GATED = 0x8
+ RTPROT_KERNEL = 0x2
+ RTPROT_MROUTED = 0x11
+ RTPROT_MRT = 0xa
+ RTPROT_NTK = 0xf
+ RTPROT_RA = 0x9
+ RTPROT_REDIRECT = 0x1
+ RTPROT_STATIC = 0x4
+ RTPROT_UNSPEC = 0x0
+ RTPROT_XORP = 0xe
+ RTPROT_ZEBRA = 0xb
+ RT_CLASS_DEFAULT = 0xfd
+ RT_CLASS_LOCAL = 0xff
+ RT_CLASS_MAIN = 0xfe
+ RT_CLASS_MAX = 0xff
+ RT_CLASS_UNSPEC = 0x0
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_CREDENTIALS = 0x2
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x1d
+ SCM_TIMESTAMPING = 0x25
+ SCM_TIMESTAMPNS = 0x23
+ SCM_WIFI_STATUS = 0x29
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDDLCI = 0x8980
+ SIOCADDMULTI = 0x8931
+ SIOCADDRT = 0x890b
+ SIOCATMARK = 0x40047307
+ 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 = 0x40047309
+ 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 = 0x80047308
+ SIOCSRARP = 0x8962
+ SOCK_CLOEXEC = 0x80000
+ SOCK_DCCP = 0x6
+ SOCK_DGRAM = 0x1
+ SOCK_NONBLOCK = 0x80
+ SOCK_PACKET = 0xa
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x2
+ 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 = 0xffff
+ SOL_TCP = 0x6
+ SOL_X25 = 0x106
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x1009
+ SO_ATTACH_BPF = 0x32
+ SO_ATTACH_FILTER = 0x1a
+ SO_BINDTODEVICE = 0x19
+ SO_BPF_EXTENSIONS = 0x30
+ SO_BROADCAST = 0x20
+ SO_BSDCOMPAT = 0xe
+ SO_BUSY_POLL = 0x2e
+ SO_DEBUG = 0x1
+ SO_DETACH_BPF = 0x1b
+ SO_DETACH_FILTER = 0x1b
+ SO_DOMAIN = 0x1029
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_GET_FILTER = 0x1a
+ SO_INCOMING_CPU = 0x31
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_LOCK_FILTER = 0x2c
+ SO_MARK = 0x24
+ SO_MAX_PACING_RATE = 0x2f
+ SO_NOFCS = 0x2b
+ SO_NO_CHECK = 0xb
+ SO_OOBINLINE = 0x100
+ SO_PASSCRED = 0x11
+ SO_PASSSEC = 0x22
+ SO_PEEK_OFF = 0x2a
+ SO_PEERCRED = 0x12
+ SO_PEERNAME = 0x1c
+ SO_PEERSEC = 0x1e
+ SO_PRIORITY = 0xc
+ SO_PROTOCOL = 0x1028
+ SO_RCVBUF = 0x1002
+ SO_RCVBUFFORCE = 0x21
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RXQ_OVFL = 0x28
+ SO_SECURITY_AUTHENTICATION = 0x16
+ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+ SO_SELECT_ERR_QUEUE = 0x2d
+ SO_SNDBUF = 0x1001
+ SO_SNDBUFFORCE = 0x1f
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_STYLE = 0x1008
+ SO_TIMESTAMP = 0x1d
+ SO_TIMESTAMPING = 0x25
+ SO_TIMESTAMPNS = 0x23
+ SO_TYPE = 0x1008
+ SO_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 = 0x5407
+ 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 = 0x5410
+ TCSBRK = 0x5405
+ TCXONC = 0x5406
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x80047478
+ TIOCEXCL = 0x740d
+ TIOCGDEV = 0x40045432
+ TIOCGETD = 0x7400
+ TIOCGETP = 0x7408
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x5492
+ TIOCGLCKTRMIOS = 0x548b
+ TIOCGLTC = 0x7474
+ TIOCGPGRP = 0x40047477
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40045430
+ TIOCGRS485 = 0x4020542e
+ TIOCGSERIAL = 0x5484
+ TIOCGSID = 0x7416
+ TIOCGSOFTCAR = 0x5481
+ TIOCGWINSZ = 0x40087468
+ TIOCINQ = 0x467f
+ TIOCLINUX = 0x5483
+ TIOCMBIC = 0x741c
+ TIOCMBIS = 0x741b
+ TIOCMGET = 0x741d
+ TIOCMIWAIT = 0x5491
+ TIOCMSET = 0x741a
+ TIOCM_CAR = 0x100
+ TIOCM_CD = 0x100
+ TIOCM_CTS = 0x40
+ TIOCM_DSR = 0x400
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x200
+ TIOCM_RNG = 0x200
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x20
+ TIOCM_ST = 0x10
+ TIOCNOTTY = 0x5471
+ TIOCNXCL = 0x740e
+ TIOCOUTQ = 0x7472
+ TIOCPKT = 0x5470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x5480
+ TIOCSERCONFIG = 0x5488
+ TIOCSERGETLSR = 0x548e
+ TIOCSERGETMULTI = 0x548f
+ TIOCSERGSTRUCT = 0x548d
+ TIOCSERGWILD = 0x5489
+ TIOCSERSETMULTI = 0x5490
+ TIOCSERSWILD = 0x548a
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x7401
+ TIOCSETN = 0x740a
+ TIOCSETP = 0x7409
+ TIOCSIG = 0x80045436
+ TIOCSLCKTRMIOS = 0x548c
+ TIOCSLTC = 0x7475
+ TIOCSPGRP = 0x80047476
+ TIOCSPTLCK = 0x80045431
+ TIOCSRS485 = 0xc020542f
+ TIOCSSERIAL = 0x5485
+ TIOCSSOFTCAR = 0x5482
+ TIOCSTI = 0x5472
+ TIOCSWINSZ = 0x80087467
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x8000
+ TUNATTACHFILTER = 0x801054d5
+ TUNDETACHFILTER = 0x801054d6
+ TUNGETFEATURES = 0x400454cf
+ TUNGETFILTER = 0x401054db
+ TUNGETIFF = 0x400454d2
+ TUNGETSNDBUF = 0x400454d3
+ TUNGETVNETBE = 0x400454df
+ TUNGETVNETHDRSZ = 0x400454d7
+ TUNGETVNETLE = 0x400454dd
+ TUNSETDEBUG = 0x800454c9
+ TUNSETGROUP = 0x800454ce
+ TUNSETIFF = 0x800454ca
+ TUNSETIFINDEX = 0x800454da
+ TUNSETLINK = 0x800454cd
+ TUNSETNOCSUM = 0x800454c8
+ TUNSETOFFLOAD = 0x800454d0
+ TUNSETOWNER = 0x800454cc
+ TUNSETPERSIST = 0x800454cb
+ TUNSETQUEUE = 0x800454d9
+ TUNSETSNDBUF = 0x800454d4
+ TUNSETTXFILTER = 0x800454d1
+ TUNSETVNETBE = 0x800454de
+ TUNSETVNETHDRSZ = 0x800454d8
+ TUNSETVNETLE = 0x800454dc
+ VDISCARD = 0xd
+ VEOF = 0x10
+ VEOL = 0x11
+ VEOL2 = 0x6
+ VERASE = 0x2
+ VINTR = 0x0
+ VKILL = 0x3
+ VLNEXT = 0xf
+ VMIN = 0x4
+ VQUIT = 0x1
+ VREPRINT = 0xc
+ VSTART = 0x8
+ VSTOP = 0x9
+ VSUSP = 0xa
+ VSWTC = 0x7
+ VSWTCH = 0x7
+ VT0 = 0x0
+ VT1 = 0x4000
+ VTDLY = 0x4000
+ VTIME = 0x5
+ VWERASE = 0xe
+ WALL = 0x40000000
+ WCLONE = 0x80000000
+ WCONTINUED = 0x8
+ WEXITED = 0x4
+ WNOHANG = 0x1
+ WNOTHREAD = 0x20000000
+ WNOWAIT = 0x1000000
+ WORDSIZE = 0x40
+ WSTOPPED = 0x2
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+ ECONNREFUSED = syscall.Errno(0x92)
+ ECONNRESET = syscall.Errno(0x83)
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+ EIDRM = syscall.Errno(0x24)
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+ EKEYREVOKED = syscall.Errno(0xa3)
+ EL2HLT = syscall.Errno(0x2c)
+ EL2NSYNC = syscall.Errno(0x26)
+ EL3HLT = syscall.Errno(0x27)
+ EL3RST = syscall.Errno(0x28)
+ ELIBACC = syscall.Errno(0x53)
+ ELIBBAD = syscall.Errno(0x54)
+ ELIBEXEC = syscall.Errno(0x57)
+ ELIBMAX = syscall.Errno(0x56)
+ ELIBSCN = syscall.Errno(0x55)
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+ ENAVAIL = syscall.Errno(0x8a)
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+ SIGURG = syscall.Signal(0x15)
+ SIGUSR1 = syscall.Signal(0x10)
+ SIGUSR2 = syscall.Signal(0x11)
+ SIGVTALRM = syscall.Signal(0x1c)
+ SIGWINCH = syscall.Signal(0x14)
+ SIGXCPU = syscall.Signal(0x1e)
+ SIGXFSZ = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "no message of desired type",
+ 36: "identifier removed",
+ 37: "channel number out of range",
+ 38: "level 2 not synchronized",
+ 39: "level 3 halted",
+ 40: "level 3 reset",
+ 41: "link number out of range",
+ 42: "protocol driver not attached",
+ 43: "no CSI structure available",
+ 44: "level 2 halted",
+ 45: "resource deadlock avoided",
+ 46: "no locks available",
+ 50: "invalid exchange",
+ 51: "invalid request descriptor",
+ 52: "exchange full",
+ 53: "no anode",
+ 54: "invalid request code",
+ 55: "invalid slot",
+ 56: "file locking deadlock error",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 73: "RFS specific error",
+ 74: "multihop attempted",
+ 77: "bad message",
+ 78: "file name too long",
+ 79: "value too large for defined data type",
+ 80: "name not unique on network",
+ 81: "file descriptor in bad state",
+ 82: "remote address changed",
+ 83: "can not access a needed shared library",
+ 84: "accessing a corrupted shared library",
+ 85: ".lib section in a.out corrupted",
+ 86: "attempting to link in too many shared libraries",
+ 87: "cannot exec a shared library directly",
+ 88: "invalid or incomplete multibyte or wide character",
+ 89: "function not implemented",
+ 90: "too many levels of symbolic links",
+ 91: "interrupted system call should be restarted",
+ 92: "streams pipe error",
+ 93: "directory not empty",
+ 94: "too many users",
+ 95: "socket operation on non-socket",
+ 96: "destination address required",
+ 97: "message too long",
+ 98: "protocol wrong type for socket",
+ 99: "protocol not available",
+ 120: "protocol not supported",
+ 121: "socket type not supported",
+ 122: "operation not supported",
+ 123: "protocol family not supported",
+ 124: "address family not supported by protocol",
+ 125: "address already in use",
+ 126: "cannot assign requested address",
+ 127: "network is down",
+ 128: "network is unreachable",
+ 129: "network dropped connection on reset",
+ 130: "software caused connection abort",
+ 131: "connection reset by peer",
+ 132: "no buffer space available",
+ 133: "transport endpoint is already connected",
+ 134: "transport endpoint is not connected",
+ 135: "structure needs cleaning",
+ 137: "not a XENIX named type file",
+ 138: "no XENIX semaphores available",
+ 139: "is a named type file",
+ 140: "remote I/O error",
+ 141: "unknown error 141",
+ 142: "unknown error 142",
+ 143: "cannot send after transport endpoint shutdown",
+ 144: "too many references: cannot splice",
+ 145: "connection timed out",
+ 146: "connection refused",
+ 147: "host is down",
+ 148: "no route to host",
+ 149: "operation already in progress",
+ 150: "operation now in progress",
+ 151: "stale file handle",
+ 158: "operation canceled",
+ 159: "no medium found",
+ 160: "wrong medium type",
+ 161: "required key not available",
+ 162: "key has expired",
+ 163: "key has been revoked",
+ 164: "key was rejected by service",
+ 165: "owner died",
+ 166: "state not recoverable",
+ 167: "operation not possible due to RF-kill",
+ 168: "memory page has hardware error",
+ 1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "user defined signal 1",
+ 17: "user defined signal 2",
+ 18: "child exited",
+ 19: "power failure",
+ 20: "window changed",
+ 21: "urgent I/O condition",
+ 22: "I/O possible",
+ 23: "stopped (signal)",
+ 24: "stopped",
+ 25: "continued",
+ 26: "stopped (tty input)",
+ 27: "stopped (tty output)",
+ 28: "virtual timer expired",
+ 29: "profiling timer expired",
+ 30: "CPU time limit exceeded",
+ 31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
new file mode 100644
index 000000000..112f05de5
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go
@@ -0,0 +1,1917 @@
+// mkerrors.sh
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build mips64le,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_IB = 0x1b
+ 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_MPLS = 0x1c
+ AF_NETBEUI = 0xd
+ AF_NETLINK = 0x10
+ AF_NETROM = 0x6
+ AF_NFC = 0x27
+ AF_PACKET = 0x11
+ AF_PHONET = 0x23
+ AF_PPPOX = 0x18
+ AF_RDS = 0x15
+ AF_ROSE = 0xb
+ AF_ROUTE = 0x10
+ AF_RXRPC = 0x21
+ AF_SECURITY = 0xe
+ AF_SNA = 0x16
+ AF_TIPC = 0x1e
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
+ AF_WANPIPE = 0x19
+ AF_X25 = 0x9
+ ARPHRD_6LOWPAN = 0x339
+ ARPHRD_ADAPT = 0x108
+ ARPHRD_APPLETLK = 0x8
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ASH = 0x30d
+ ARPHRD_ATM = 0x13
+ ARPHRD_AX25 = 0x3
+ ARPHRD_BIF = 0x307
+ ARPHRD_CAIF = 0x336
+ ARPHRD_CAN = 0x118
+ ARPHRD_CHAOS = 0x5
+ ARPHRD_CISCO = 0x201
+ ARPHRD_CSLIP = 0x101
+ ARPHRD_CSLIP6 = 0x103
+ ARPHRD_DDCMP = 0x205
+ ARPHRD_DLCI = 0xf
+ ARPHRD_ECONET = 0x30e
+ ARPHRD_EETHER = 0x2
+ ARPHRD_ETHER = 0x1
+ ARPHRD_EUI64 = 0x1b
+ ARPHRD_FCAL = 0x311
+ ARPHRD_FCFABRIC = 0x313
+ ARPHRD_FCPL = 0x312
+ ARPHRD_FCPP = 0x310
+ ARPHRD_FDDI = 0x306
+ ARPHRD_FRAD = 0x302
+ ARPHRD_HDLC = 0x201
+ ARPHRD_HIPPI = 0x30c
+ ARPHRD_HWX25 = 0x110
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_IEEE80211 = 0x321
+ ARPHRD_IEEE80211_PRISM = 0x322
+ ARPHRD_IEEE80211_RADIOTAP = 0x323
+ ARPHRD_IEEE802154 = 0x324
+ ARPHRD_IEEE802154_MONITOR = 0x325
+ ARPHRD_IEEE802_TR = 0x320
+ ARPHRD_INFINIBAND = 0x20
+ ARPHRD_IP6GRE = 0x337
+ ARPHRD_IPDDP = 0x309
+ ARPHRD_IPGRE = 0x30a
+ ARPHRD_IRDA = 0x30f
+ ARPHRD_LAPB = 0x204
+ ARPHRD_LOCALTLK = 0x305
+ ARPHRD_LOOPBACK = 0x304
+ ARPHRD_METRICOM = 0x17
+ ARPHRD_NETLINK = 0x338
+ ARPHRD_NETROM = 0x0
+ ARPHRD_NONE = 0xfffe
+ ARPHRD_PHONET = 0x334
+ ARPHRD_PHONET_PIPE = 0x335
+ ARPHRD_PIMREG = 0x30b
+ ARPHRD_PPP = 0x200
+ ARPHRD_PRONET = 0x4
+ ARPHRD_RAWHDLC = 0x206
+ ARPHRD_ROSE = 0x10e
+ ARPHRD_RSRVD = 0x104
+ ARPHRD_SIT = 0x308
+ ARPHRD_SKIP = 0x303
+ ARPHRD_SLIP = 0x100
+ ARPHRD_SLIP6 = 0x102
+ ARPHRD_TUNNEL = 0x300
+ ARPHRD_TUNNEL6 = 0x301
+ ARPHRD_VOID = 0xffff
+ ARPHRD_X25 = 0x10f
+ B0 = 0x0
+ B1000000 = 0x1008
+ B110 = 0x3
+ B115200 = 0x1002
+ B1152000 = 0x1009
+ B1200 = 0x9
+ B134 = 0x4
+ B150 = 0x5
+ B1500000 = 0x100a
+ B1800 = 0xa
+ B19200 = 0xe
+ B200 = 0x6
+ B2000000 = 0x100b
+ B230400 = 0x1003
+ B2400 = 0xb
+ B2500000 = 0x100c
+ B300 = 0x7
+ B3000000 = 0x100d
+ B3500000 = 0x100e
+ B38400 = 0xf
+ B4000000 = 0x100f
+ B460800 = 0x1004
+ B4800 = 0xc
+ B50 = 0x1
+ B500000 = 0x1005
+ B57600 = 0x1001
+ B576000 = 0x1006
+ B600 = 0x8
+ B75 = 0x2
+ B921600 = 0x1007
+ B9600 = 0xd
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LL_OFF = -0x200000
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXINSNS = 0x1000
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MOD = 0x90
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_NET_OFF = -0x100000
+ BPF_OR = 0x40
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BPF_XOR = 0xa0
+ BRKINT = 0x2
+ 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_TAI = 0xb
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ 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
+ 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_TSN = 0x22f0
+ ETH_P_WAN_PPP = 0x7
+ ETH_P_WCCP = 0x883e
+ ETH_P_X25 = 0x805
+ ETH_P_XDSA = 0xf8
+ EXTA = 0xe
+ EXTB = 0xf
+ EXTPROC = 0x10000
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FLUSHO = 0x2000
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0x406
+ F_EXLCK = 0x4
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLEASE = 0x401
+ F_GETLK = 0xe
+ F_GETLK64 = 0xe
+ F_GETOWN = 0x17
+ F_GETOWN_EX = 0x10
+ F_GETPIPE_SZ = 0x408
+ F_GETSIG = 0xb
+ F_LOCK = 0x1
+ F_NOTIFY = 0x402
+ F_OFD_GETLK = 0x24
+ F_OFD_SETLK = 0x25
+ F_OFD_SETLKW = 0x26
+ F_OK = 0x0
+ F_RDLCK = 0x0
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLEASE = 0x400
+ F_SETLK = 0x6
+ F_SETLK64 = 0x6
+ F_SETLKW = 0x7
+ F_SETLKW64 = 0x7
+ F_SETOWN = 0x18
+ F_SETOWN_EX = 0xf
+ F_SETPIPE_SZ = 0x407
+ F_SETSIG = 0xa
+ F_SHLCK = 0x8
+ F_TEST = 0x3
+ F_TLOCK = 0x2
+ F_ULOCK = 0x0
+ F_UNLCK = 0x2
+ F_WRLCK = 0x1
+ HUPCL = 0x400
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x100
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_MANAGETEMPADDR = 0x100
+ IFA_F_MCAUTOJOIN = 0x400
+ IFA_F_NODAD = 0x2
+ IFA_F_NOPREFIXROUTE = 0x200
+ IFA_F_OPTIMISTIC = 0x4
+ IFA_F_PERMANENT = 0x80
+ IFA_F_SECONDARY = 0x1
+ IFA_F_STABLE_PRIVACY = 0x800
+ IFA_F_TEMPORARY = 0x1
+ IFA_F_TENTATIVE = 0x40
+ IFA_MAX = 0x8
+ IFF_ALLMULTI = 0x200
+ IFF_ATTACH_QUEUE = 0x200
+ IFF_AUTOMEDIA = 0x4000
+ IFF_BROADCAST = 0x2
+ IFF_DEBUG = 0x4
+ IFF_DETACH_QUEUE = 0x400
+ IFF_DORMANT = 0x20000
+ IFF_DYNAMIC = 0x8000
+ IFF_ECHO = 0x40000
+ IFF_LOOPBACK = 0x8
+ IFF_LOWER_UP = 0x10000
+ IFF_MASTER = 0x400
+ IFF_MULTICAST = 0x1000
+ IFF_MULTI_QUEUE = 0x100
+ IFF_NOARP = 0x80
+ IFF_NOFILTER = 0x1000
+ IFF_NOTRAILERS = 0x20
+ IFF_NO_PI = 0x1000
+ IFF_ONE_QUEUE = 0x2000
+ IFF_PERSIST = 0x800
+ IFF_POINTOPOINT = 0x10
+ IFF_PORTSEL = 0x2000
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SLAVE = 0x800
+ IFF_TAP = 0x2
+ IFF_TUN = 0x1
+ IFF_TUN_EXCL = 0x8000
+ IFF_UP = 0x1
+ IFF_VNET_HDR = 0x4000
+ IFF_VOLATILE = 0x70c5a
+ IFNAMSIZ = 0x10
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_ACCESS = 0x1
+ IN_ALL_EVENTS = 0xfff
+ IN_ATTRIB = 0x4
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLOEXEC = 0x80000
+ IN_CLOSE = 0x18
+ IN_CLOSE_NOWRITE = 0x10
+ IN_CLOSE_WRITE = 0x8
+ IN_CREATE = 0x100
+ IN_DELETE = 0x200
+ IN_DELETE_SELF = 0x400
+ IN_DONT_FOLLOW = 0x2000000
+ IN_EXCL_UNLINK = 0x4000000
+ IN_IGNORED = 0x8000
+ IN_ISDIR = 0x40000000
+ IN_LOOPBACKNET = 0x7f
+ IN_MASK_ADD = 0x20000000
+ IN_MODIFY = 0x2
+ IN_MOVE = 0xc0
+ IN_MOVED_FROM = 0x40
+ IN_MOVED_TO = 0x80
+ IN_MOVE_SELF = 0x800
+ IN_NONBLOCK = 0x80
+ IN_ONESHOT = 0x80000000
+ IN_ONLYDIR = 0x1000000
+ IN_OPEN = 0x20
+ IN_Q_OVERFLOW = 0x4000
+ IN_UNMOUNT = 0x2000
+ IPPROTO_AH = 0x33
+ IPPROTO_BEETPH = 0x5e
+ IPPROTO_COMP = 0x6c
+ IPPROTO_DCCP = 0x21
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_ESP = 0x32
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MH = 0x87
+ IPPROTO_MTP = 0x5c
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_SCTP = 0x84
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_UDPLITE = 0x88
+ IPV6_2292DSTOPTS = 0x4
+ IPV6_2292HOPLIMIT = 0x8
+ IPV6_2292HOPOPTS = 0x3
+ IPV6_2292PKTINFO = 0x2
+ IPV6_2292PKTOPTIONS = 0x6
+ IPV6_2292RTHDR = 0x5
+ IPV6_ADDRFORM = 0x1
+ IPV6_ADD_MEMBERSHIP = 0x14
+ IPV6_AUTHHDR = 0xa
+ IPV6_CHECKSUM = 0x7
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DROP_MEMBERSHIP = 0x15
+ IPV6_DSTOPTS = 0x3b
+ IPV6_HOPLIMIT = 0x34
+ IPV6_HOPOPTS = 0x36
+ IPV6_IPSEC_POLICY = 0x22
+ IPV6_JOIN_ANYCAST = 0x1b
+ IPV6_JOIN_GROUP = 0x14
+ IPV6_LEAVE_ANYCAST = 0x1c
+ IPV6_LEAVE_GROUP = 0x15
+ IPV6_MTU = 0x18
+ IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_HOPS = 0x12
+ IPV6_MULTICAST_IF = 0x11
+ IPV6_MULTICAST_LOOP = 0x13
+ IPV6_NEXTHOP = 0x9
+ IPV6_PATHMTU = 0x3d
+ IPV6_PKTINFO = 0x32
+ IPV6_PMTUDISC_DO = 0x2
+ IPV6_PMTUDISC_DONT = 0x0
+ IPV6_PMTUDISC_INTERFACE = 0x4
+ IPV6_PMTUDISC_OMIT = 0x5
+ IPV6_PMTUDISC_PROBE = 0x3
+ IPV6_PMTUDISC_WANT = 0x1
+ IPV6_RECVDSTOPTS = 0x3a
+ IPV6_RECVERR = 0x19
+ IPV6_RECVHOPLIMIT = 0x33
+ IPV6_RECVHOPOPTS = 0x35
+ IPV6_RECVPATHMTU = 0x3c
+ IPV6_RECVPKTINFO = 0x31
+ IPV6_RECVRTHDR = 0x38
+ IPV6_RECVTCLASS = 0x42
+ IPV6_ROUTER_ALERT = 0x16
+ IPV6_RTHDR = 0x39
+ IPV6_RTHDRDSTOPTS = 0x37
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_RXDSTOPTS = 0x3b
+ IPV6_RXHOPOPTS = 0x36
+ IPV6_TCLASS = 0x43
+ IPV6_UNICAST_HOPS = 0x10
+ IPV6_V6ONLY = 0x1a
+ IPV6_XFRM_POLICY = 0x23
+ IP_ADD_MEMBERSHIP = 0x23
+ IP_ADD_SOURCE_MEMBERSHIP = 0x27
+ IP_BLOCK_SOURCE = 0x26
+ IP_CHECKSUM = 0x17
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0x24
+ IP_DROP_SOURCE_MEMBERSHIP = 0x28
+ IP_FREEBIND = 0xf
+ IP_HDRINCL = 0x3
+ IP_IPSEC_POLICY = 0x10
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINTTL = 0x15
+ IP_MSFILTER = 0x29
+ IP_MSS = 0x240
+ IP_MTU = 0xe
+ IP_MTU_DISCOVER = 0xa
+ IP_MULTICAST_ALL = 0x31
+ IP_MULTICAST_IF = 0x20
+ IP_MULTICAST_LOOP = 0x22
+ IP_MULTICAST_TTL = 0x21
+ IP_NODEFRAG = 0x16
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x4
+ IP_ORIGDSTADDR = 0x14
+ IP_PASSSEC = 0x12
+ IP_PKTINFO = 0x8
+ IP_PKTOPTIONS = 0x9
+ IP_PMTUDISC = 0xa
+ IP_PMTUDISC_DO = 0x2
+ IP_PMTUDISC_DONT = 0x0
+ IP_PMTUDISC_INTERFACE = 0x4
+ IP_PMTUDISC_OMIT = 0x5
+ IP_PMTUDISC_PROBE = 0x3
+ IP_PMTUDISC_WANT = 0x1
+ IP_RECVERR = 0xb
+ IP_RECVOPTS = 0x6
+ IP_RECVORIGDSTADDR = 0x14
+ IP_RECVRETOPTS = 0x7
+ IP_RECVTOS = 0xd
+ IP_RECVTTL = 0xc
+ IP_RETOPTS = 0x7
+ IP_RF = 0x8000
+ IP_ROUTER_ALERT = 0x5
+ IP_TOS = 0x1
+ IP_TRANSPARENT = 0x13
+ IP_TTL = 0x2
+ IP_UNBLOCK_SOURCE = 0x25
+ IP_UNICAST_IF = 0x32
+ IP_XFRM_POLICY = 0x11
+ ISIG = 0x1
+ ISTRIP = 0x20
+ 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 = 0x800
+ MAP_ANONYMOUS = 0x800
+ MAP_DENYWRITE = 0x2000
+ MAP_EXECUTABLE = 0x4000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_GROWSDOWN = 0x1000
+ MAP_HUGETLB = 0x80000
+ MAP_HUGE_MASK = 0x3f
+ MAP_HUGE_SHIFT = 0x1a
+ MAP_LOCKED = 0x8000
+ MAP_NONBLOCK = 0x20000
+ MAP_NORESERVE = 0x400
+ MAP_POPULATE = 0x10000
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x800
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x40000
+ MAP_TYPE = 0xf
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ 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_LAZYTIME = 0x2000000
+ MS_MANDLOCK = 0x40
+ MS_MGC_MSK = 0xffff0000
+ MS_MGC_VAL = 0xc0ed0000
+ MS_MOVE = 0x2000
+ MS_NOATIME = 0x400
+ MS_NODEV = 0x4
+ MS_NODIRATIME = 0x800
+ MS_NOEXEC = 0x8
+ MS_NOSUID = 0x2
+ MS_NOUSER = -0x80000000
+ MS_POSIXACL = 0x10000
+ MS_PRIVATE = 0x40000
+ MS_RDONLY = 0x1
+ MS_REC = 0x4000
+ MS_RELATIME = 0x200000
+ MS_REMOUNT = 0x20
+ MS_RMT_MASK = 0x2800051
+ MS_SHARED = 0x100000
+ MS_SILENT = 0x8000
+ MS_SLAVE = 0x80000
+ MS_STRICTATIME = 0x1000000
+ MS_SYNC = 0x4
+ MS_SYNCHRONOUS = 0x10
+ MS_UNBINDABLE = 0x20000
+ NAME_MAX = 0xff
+ NETLINK_ADD_MEMBERSHIP = 0x1
+ NETLINK_AUDIT = 0x9
+ NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
+ NETLINK_CONNECTOR = 0xb
+ NETLINK_CRYPTO = 0x15
+ NETLINK_DNRTMSG = 0xe
+ NETLINK_DROP_MEMBERSHIP = 0x2
+ NETLINK_ECRYPTFS = 0x13
+ NETLINK_FIB_LOOKUP = 0xa
+ NETLINK_FIREWALL = 0x3
+ NETLINK_GENERIC = 0x10
+ NETLINK_INET_DIAG = 0x4
+ NETLINK_IP6_FW = 0xd
+ NETLINK_ISCSI = 0x8
+ NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
+ NETLINK_NETFILTER = 0xc
+ NETLINK_NFLOG = 0x5
+ NETLINK_NO_ENOBUFS = 0x5
+ NETLINK_PKTINFO = 0x3
+ NETLINK_RDMA = 0x14
+ NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
+ NETLINK_SCSITRANSPORT = 0x12
+ NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
+ NETLINK_UNUSED = 0x1
+ NETLINK_USERSOCK = 0x2
+ NETLINK_XFRM = 0x6
+ 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 = 0x8
+ O_ASYNC = 0x1000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x100
+ O_DIRECT = 0x8000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x10
+ O_EXCL = 0x400
+ O_FSYNC = 0x4010
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x80
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x800
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x80
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x4010
+ O_SYNC = 0x4010
+ O_TMPFILE = 0x410000
+ O_TRUNC = 0x200
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_CBPF = 0x6
+ PACKET_FANOUT_CPU = 0x2
+ PACKET_FANOUT_DATA = 0x16
+ PACKET_FANOUT_EBPF = 0x7
+ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+ PACKET_FANOUT_HASH = 0x0
+ PACKET_FANOUT_LB = 0x1
+ PACKET_FANOUT_QM = 0x5
+ PACKET_FANOUT_RND = 0x4
+ PACKET_FANOUT_ROLLOVER = 0x3
+ PACKET_FASTROUTE = 0x6
+ PACKET_HDRLEN = 0xb
+ PACKET_HOST = 0x0
+ PACKET_KERNEL = 0x7
+ PACKET_LOOPBACK = 0x5
+ PACKET_LOSS = 0xe
+ PACKET_MR_ALLMULTI = 0x2
+ PACKET_MR_MULTICAST = 0x0
+ PACKET_MR_PROMISC = 0x1
+ PACKET_MR_UNICAST = 0x3
+ PACKET_MULTICAST = 0x2
+ PACKET_ORIGDEV = 0x9
+ PACKET_OTHERHOST = 0x3
+ PACKET_OUTGOING = 0x4
+ PACKET_QDISC_BYPASS = 0x14
+ PACKET_RECV_OUTPUT = 0x3
+ PACKET_RESERVE = 0xc
+ PACKET_ROLLOVER_STATS = 0x15
+ PACKET_RX_RING = 0x5
+ PACKET_STATISTICS = 0x6
+ PACKET_TIMESTAMP = 0x11
+ PACKET_TX_HAS_OFF = 0x13
+ PACKET_TX_RING = 0xd
+ PACKET_TX_TIMESTAMP = 0x10
+ PACKET_USER = 0x6
+ PACKET_VERSION = 0xa
+ PACKET_VNET_HDR = 0xf
+ PARENB = 0x100
+ PARITY_CRC16_PR0 = 0x2
+ PARITY_CRC16_PR0_CCITT = 0x4
+ PARITY_CRC16_PR1 = 0x3
+ PARITY_CRC16_PR1_CCITT = 0x5
+ PARITY_CRC32_PR0_CCITT = 0x6
+ PARITY_CRC32_PR1_CCITT = 0x7
+ PARITY_DEFAULT = 0x0
+ PARITY_NONE = 0x1
+ PARMRK = 0x8
+ PARODD = 0x200
+ PENDIN = 0x4000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_GROWSDOWN = 0x1000000
+ PROT_GROWSUP = 0x2000000
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PR_CAPBSET_DROP = 0x18
+ PR_CAPBSET_READ = 0x17
+ PR_CAP_AMBIENT = 0x2f
+ PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+ PR_CAP_AMBIENT_IS_SET = 0x1
+ PR_CAP_AMBIENT_LOWER = 0x3
+ PR_CAP_AMBIENT_RAISE = 0x2
+ PR_ENDIAN_BIG = 0x0
+ PR_ENDIAN_LITTLE = 0x1
+ PR_ENDIAN_PPC_LITTLE = 0x2
+ PR_FPEMU_NOPRINT = 0x1
+ PR_FPEMU_SIGFPE = 0x2
+ PR_FP_EXC_ASYNC = 0x2
+ PR_FP_EXC_DISABLED = 0x0
+ PR_FP_EXC_DIV = 0x10000
+ PR_FP_EXC_INV = 0x100000
+ PR_FP_EXC_NONRECOV = 0x1
+ PR_FP_EXC_OVF = 0x20000
+ PR_FP_EXC_PRECISE = 0x3
+ PR_FP_EXC_RES = 0x80000
+ PR_FP_EXC_SW_ENABLE = 0x80
+ PR_FP_EXC_UND = 0x40000
+ PR_FP_MODE_FR = 0x1
+ PR_FP_MODE_FRE = 0x2
+ PR_GET_CHILD_SUBREAPER = 0x25
+ PR_GET_DUMPABLE = 0x3
+ PR_GET_ENDIAN = 0x13
+ PR_GET_FPEMU = 0x9
+ PR_GET_FPEXC = 0xb
+ PR_GET_FP_MODE = 0x2e
+ PR_GET_KEEPCAPS = 0x7
+ PR_GET_NAME = 0x10
+ PR_GET_NO_NEW_PRIVS = 0x27
+ PR_GET_PDEATHSIG = 0x2
+ PR_GET_SECCOMP = 0x15
+ PR_GET_SECUREBITS = 0x1b
+ PR_GET_THP_DISABLE = 0x2a
+ PR_GET_TID_ADDRESS = 0x28
+ PR_GET_TIMERSLACK = 0x1e
+ PR_GET_TIMING = 0xd
+ PR_GET_TSC = 0x19
+ PR_GET_UNALIGN = 0x5
+ PR_MCE_KILL = 0x21
+ PR_MCE_KILL_CLEAR = 0x0
+ PR_MCE_KILL_DEFAULT = 0x2
+ PR_MCE_KILL_EARLY = 0x1
+ PR_MCE_KILL_GET = 0x22
+ PR_MCE_KILL_LATE = 0x0
+ PR_MCE_KILL_SET = 0x1
+ PR_MPX_DISABLE_MANAGEMENT = 0x2c
+ PR_MPX_ENABLE_MANAGEMENT = 0x2b
+ PR_SET_CHILD_SUBREAPER = 0x24
+ PR_SET_DUMPABLE = 0x4
+ PR_SET_ENDIAN = 0x14
+ PR_SET_FPEMU = 0xa
+ PR_SET_FPEXC = 0xc
+ PR_SET_FP_MODE = 0x2d
+ PR_SET_KEEPCAPS = 0x8
+ PR_SET_MM = 0x23
+ PR_SET_MM_ARG_END = 0x9
+ PR_SET_MM_ARG_START = 0x8
+ PR_SET_MM_AUXV = 0xc
+ PR_SET_MM_BRK = 0x7
+ PR_SET_MM_END_CODE = 0x2
+ PR_SET_MM_END_DATA = 0x4
+ PR_SET_MM_ENV_END = 0xb
+ PR_SET_MM_ENV_START = 0xa
+ PR_SET_MM_EXE_FILE = 0xd
+ PR_SET_MM_MAP = 0xe
+ PR_SET_MM_MAP_SIZE = 0xf
+ PR_SET_MM_START_BRK = 0x6
+ PR_SET_MM_START_CODE = 0x1
+ PR_SET_MM_START_DATA = 0x3
+ PR_SET_MM_START_STACK = 0x5
+ PR_SET_NAME = 0xf
+ PR_SET_NO_NEW_PRIVS = 0x26
+ PR_SET_PDEATHSIG = 0x1
+ PR_SET_PTRACER = 0x59616d61
+ PR_SET_PTRACER_ANY = -0x1
+ PR_SET_SECCOMP = 0x16
+ PR_SET_SECUREBITS = 0x1c
+ PR_SET_THP_DISABLE = 0x29
+ PR_SET_TIMERSLACK = 0x1d
+ PR_SET_TIMING = 0xe
+ PR_SET_TSC = 0x1a
+ PR_SET_UNALIGN = 0x6
+ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+ PR_TASK_PERF_EVENTS_ENABLE = 0x20
+ PR_TIMING_STATISTICAL = 0x0
+ PR_TIMING_TIMESTAMP = 0x1
+ PR_TSC_ENABLE = 0x1
+ PR_TSC_SIGSEGV = 0x2
+ PR_UNALIGN_NOPRINT = 0x1
+ PR_UNALIGN_SIGBUS = 0x2
+ PTRACE_ATTACH = 0x10
+ PTRACE_CONT = 0x7
+ PTRACE_DETACH = 0x11
+ PTRACE_EVENT_CLONE = 0x3
+ PTRACE_EVENT_EXEC = 0x4
+ PTRACE_EVENT_EXIT = 0x6
+ PTRACE_EVENT_FORK = 0x1
+ PTRACE_EVENT_SECCOMP = 0x7
+ PTRACE_EVENT_STOP = 0x80
+ PTRACE_EVENT_VFORK = 0x2
+ PTRACE_EVENT_VFORK_DONE = 0x5
+ PTRACE_GETEVENTMSG = 0x4201
+ PTRACE_GETFPREGS = 0xe
+ PTRACE_GETREGS = 0xc
+ PTRACE_GETREGSET = 0x4204
+ PTRACE_GETSIGINFO = 0x4202
+ PTRACE_GETSIGMASK = 0x420a
+ PTRACE_GET_THREAD_AREA = 0x19
+ PTRACE_GET_THREAD_AREA_3264 = 0xc4
+ PTRACE_GET_WATCH_REGS = 0xd0
+ PTRACE_INTERRUPT = 0x4207
+ PTRACE_KILL = 0x8
+ PTRACE_LISTEN = 0x4208
+ PTRACE_OLDSETOPTIONS = 0x15
+ PTRACE_O_EXITKILL = 0x100000
+ PTRACE_O_MASK = 0x3000ff
+ PTRACE_O_SUSPEND_SECCOMP = 0x200000
+ PTRACE_O_TRACECLONE = 0x8
+ PTRACE_O_TRACEEXEC = 0x10
+ PTRACE_O_TRACEEXIT = 0x40
+ PTRACE_O_TRACEFORK = 0x2
+ PTRACE_O_TRACESECCOMP = 0x80
+ PTRACE_O_TRACESYSGOOD = 0x1
+ PTRACE_O_TRACEVFORK = 0x4
+ PTRACE_O_TRACEVFORKDONE = 0x20
+ PTRACE_PEEKDATA = 0x2
+ PTRACE_PEEKDATA_3264 = 0xc1
+ PTRACE_PEEKSIGINFO = 0x4209
+ PTRACE_PEEKSIGINFO_SHARED = 0x1
+ PTRACE_PEEKTEXT = 0x1
+ PTRACE_PEEKTEXT_3264 = 0xc0
+ PTRACE_PEEKUSR = 0x3
+ PTRACE_POKEDATA = 0x5
+ PTRACE_POKEDATA_3264 = 0xc3
+ PTRACE_POKETEXT = 0x4
+ PTRACE_POKETEXT_3264 = 0xc2
+ PTRACE_POKEUSR = 0x6
+ PTRACE_SEIZE = 0x4206
+ PTRACE_SETFPREGS = 0xf
+ PTRACE_SETOPTIONS = 0x4200
+ PTRACE_SETREGS = 0xd
+ PTRACE_SETREGSET = 0x4205
+ PTRACE_SETSIGINFO = 0x4203
+ PTRACE_SETSIGMASK = 0x420b
+ PTRACE_SET_THREAD_AREA = 0x1a
+ PTRACE_SET_WATCH_REGS = 0xd1
+ PTRACE_SINGLESTEP = 0x9
+ PTRACE_SYSCALL = 0x18
+ PTRACE_TRACEME = 0x0
+ RLIMIT_AS = 0x6
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x5
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = -0x1
+ RTAX_ADVMSS = 0x8
+ RTAX_CC_ALGO = 0x10
+ RTAX_CWND = 0x7
+ RTAX_FEATURES = 0xc
+ RTAX_FEATURE_ALLFRAG = 0x8
+ RTAX_FEATURE_ECN = 0x1
+ RTAX_FEATURE_MASK = 0xf
+ RTAX_FEATURE_SACK = 0x2
+ RTAX_FEATURE_TIMESTAMP = 0x4
+ RTAX_HOPLIMIT = 0xa
+ RTAX_INITCWND = 0xb
+ RTAX_INITRWND = 0xe
+ RTAX_LOCK = 0x1
+ RTAX_MAX = 0x10
+ RTAX_MTU = 0x2
+ RTAX_QUICKACK = 0xf
+ RTAX_REORDERING = 0x9
+ RTAX_RTO_MIN = 0xd
+ RTAX_RTT = 0x4
+ RTAX_RTTVAR = 0x5
+ RTAX_SSTHRESH = 0x6
+ RTAX_UNSPEC = 0x0
+ RTAX_WINDOW = 0x3
+ RTA_ALIGNTO = 0x4
+ RTA_MAX = 0x16
+ RTCF_DIRECTSRC = 0x4000000
+ RTCF_DOREDIRECT = 0x1000000
+ RTCF_LOG = 0x2000000
+ RTCF_MASQ = 0x400000
+ RTCF_NAT = 0x800000
+ RTCF_VALVE = 0x200000
+ RTF_ADDRCLASSMASK = 0xf8000000
+ RTF_ADDRCONF = 0x40000
+ RTF_ALLONLINK = 0x20000
+ RTF_BROADCAST = 0x10000000
+ RTF_CACHE = 0x1000000
+ RTF_DEFAULT = 0x10000
+ RTF_DYNAMIC = 0x10
+ RTF_FLOW = 0x2000000
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_INTERFACE = 0x40000000
+ RTF_IRTT = 0x100
+ RTF_LINKRT = 0x100000
+ RTF_LOCAL = 0x80000000
+ RTF_MODIFIED = 0x20
+ RTF_MSS = 0x40
+ RTF_MTU = 0x40
+ RTF_MULTICAST = 0x20000000
+ RTF_NAT = 0x8000000
+ RTF_NOFORWARD = 0x1000
+ RTF_NONEXTHOP = 0x200000
+ RTF_NOPMTUDISC = 0x4000
+ RTF_POLICY = 0x4000000
+ RTF_REINSTATE = 0x8
+ RTF_REJECT = 0x200
+ RTF_STATIC = 0x400
+ RTF_THROW = 0x2000
+ RTF_UP = 0x1
+ RTF_WINDOW = 0x80
+ RTF_XRESOLVE = 0x800
+ RTM_BASE = 0x10
+ RTM_DELACTION = 0x31
+ RTM_DELADDR = 0x15
+ RTM_DELADDRLABEL = 0x49
+ RTM_DELLINK = 0x11
+ RTM_DELMDB = 0x55
+ RTM_DELNEIGH = 0x1d
+ RTM_DELNSID = 0x59
+ RTM_DELQDISC = 0x25
+ RTM_DELROUTE = 0x19
+ RTM_DELRULE = 0x21
+ RTM_DELTCLASS = 0x29
+ RTM_DELTFILTER = 0x2d
+ RTM_F_CLONED = 0x200
+ RTM_F_EQUALIZE = 0x400
+ RTM_F_NOTIFY = 0x100
+ RTM_F_PREFIX = 0x800
+ RTM_GETACTION = 0x32
+ RTM_GETADDR = 0x16
+ RTM_GETADDRLABEL = 0x4a
+ RTM_GETANYCAST = 0x3e
+ RTM_GETDCB = 0x4e
+ RTM_GETLINK = 0x12
+ RTM_GETMDB = 0x56
+ RTM_GETMULTICAST = 0x3a
+ RTM_GETNEIGH = 0x1e
+ RTM_GETNEIGHTBL = 0x42
+ RTM_GETNETCONF = 0x52
+ RTM_GETNSID = 0x5a
+ RTM_GETQDISC = 0x26
+ RTM_GETROUTE = 0x1a
+ RTM_GETRULE = 0x22
+ RTM_GETTCLASS = 0x2a
+ RTM_GETTFILTER = 0x2e
+ RTM_MAX = 0x5b
+ RTM_NEWACTION = 0x30
+ RTM_NEWADDR = 0x14
+ RTM_NEWADDRLABEL = 0x48
+ RTM_NEWLINK = 0x10
+ RTM_NEWMDB = 0x54
+ RTM_NEWNDUSEROPT = 0x44
+ RTM_NEWNEIGH = 0x1c
+ RTM_NEWNEIGHTBL = 0x40
+ RTM_NEWNETCONF = 0x50
+ RTM_NEWNSID = 0x58
+ RTM_NEWPREFIX = 0x34
+ RTM_NEWQDISC = 0x24
+ RTM_NEWROUTE = 0x18
+ RTM_NEWRULE = 0x20
+ RTM_NEWTCLASS = 0x28
+ RTM_NEWTFILTER = 0x2c
+ RTM_NR_FAMILIES = 0x13
+ RTM_NR_MSGTYPES = 0x4c
+ RTM_SETDCB = 0x4f
+ RTM_SETLINK = 0x13
+ RTM_SETNEIGHTBL = 0x43
+ RTNH_ALIGNTO = 0x4
+ RTNH_COMPARE_MASK = 0x11
+ RTNH_F_DEAD = 0x1
+ RTNH_F_LINKDOWN = 0x10
+ RTNH_F_OFFLOAD = 0x8
+ RTNH_F_ONLINK = 0x4
+ RTNH_F_PERVASIVE = 0x2
+ RTN_MAX = 0xb
+ RTPROT_BABEL = 0x2a
+ RTPROT_BIRD = 0xc
+ RTPROT_BOOT = 0x3
+ RTPROT_DHCP = 0x10
+ RTPROT_DNROUTED = 0xd
+ RTPROT_GATED = 0x8
+ RTPROT_KERNEL = 0x2
+ RTPROT_MROUTED = 0x11
+ RTPROT_MRT = 0xa
+ RTPROT_NTK = 0xf
+ RTPROT_RA = 0x9
+ RTPROT_REDIRECT = 0x1
+ RTPROT_STATIC = 0x4
+ RTPROT_UNSPEC = 0x0
+ RTPROT_XORP = 0xe
+ RTPROT_ZEBRA = 0xb
+ RT_CLASS_DEFAULT = 0xfd
+ RT_CLASS_LOCAL = 0xff
+ RT_CLASS_MAIN = 0xfe
+ RT_CLASS_MAX = 0xff
+ RT_CLASS_UNSPEC = 0x0
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_CREDENTIALS = 0x2
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x1d
+ SCM_TIMESTAMPING = 0x25
+ SCM_TIMESTAMPNS = 0x23
+ SCM_WIFI_STATUS = 0x29
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDDLCI = 0x8980
+ SIOCADDMULTI = 0x8931
+ SIOCADDRT = 0x890b
+ SIOCATMARK = 0x40047307
+ 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 = 0x40047309
+ 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 = 0x80047308
+ SIOCSRARP = 0x8962
+ SOCK_CLOEXEC = 0x80000
+ SOCK_DCCP = 0x6
+ SOCK_DGRAM = 0x1
+ SOCK_NONBLOCK = 0x80
+ SOCK_PACKET = 0xa
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x2
+ 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 = 0xffff
+ SOL_TCP = 0x6
+ SOL_X25 = 0x106
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x1009
+ SO_ATTACH_BPF = 0x32
+ SO_ATTACH_FILTER = 0x1a
+ SO_BINDTODEVICE = 0x19
+ SO_BPF_EXTENSIONS = 0x30
+ SO_BROADCAST = 0x20
+ SO_BSDCOMPAT = 0xe
+ SO_BUSY_POLL = 0x2e
+ SO_DEBUG = 0x1
+ SO_DETACH_BPF = 0x1b
+ SO_DETACH_FILTER = 0x1b
+ SO_DOMAIN = 0x1029
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_GET_FILTER = 0x1a
+ SO_INCOMING_CPU = 0x31
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_LOCK_FILTER = 0x2c
+ SO_MARK = 0x24
+ SO_MAX_PACING_RATE = 0x2f
+ SO_NOFCS = 0x2b
+ SO_NO_CHECK = 0xb
+ SO_OOBINLINE = 0x100
+ SO_PASSCRED = 0x11
+ SO_PASSSEC = 0x22
+ SO_PEEK_OFF = 0x2a
+ SO_PEERCRED = 0x12
+ SO_PEERNAME = 0x1c
+ SO_PEERSEC = 0x1e
+ SO_PRIORITY = 0xc
+ SO_PROTOCOL = 0x1028
+ SO_RCVBUF = 0x1002
+ SO_RCVBUFFORCE = 0x21
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RXQ_OVFL = 0x28
+ SO_SECURITY_AUTHENTICATION = 0x16
+ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+ SO_SELECT_ERR_QUEUE = 0x2d
+ SO_SNDBUF = 0x1001
+ SO_SNDBUFFORCE = 0x1f
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_STYLE = 0x1008
+ SO_TIMESTAMP = 0x1d
+ SO_TIMESTAMPING = 0x25
+ SO_TIMESTAMPNS = 0x23
+ SO_TYPE = 0x1008
+ SO_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 = 0x5407
+ 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 = 0x5410
+ TCSBRK = 0x5405
+ TCXONC = 0x5406
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x80047478
+ TIOCEXCL = 0x740d
+ TIOCGDEV = 0x40045432
+ TIOCGETD = 0x7400
+ TIOCGETP = 0x7408
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x5492
+ TIOCGLCKTRMIOS = 0x548b
+ TIOCGLTC = 0x7474
+ TIOCGPGRP = 0x40047477
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40045430
+ TIOCGRS485 = 0x4020542e
+ TIOCGSERIAL = 0x5484
+ TIOCGSID = 0x7416
+ TIOCGSOFTCAR = 0x5481
+ TIOCGWINSZ = 0x40087468
+ TIOCINQ = 0x467f
+ TIOCLINUX = 0x5483
+ TIOCMBIC = 0x741c
+ TIOCMBIS = 0x741b
+ TIOCMGET = 0x741d
+ TIOCMIWAIT = 0x5491
+ TIOCMSET = 0x741a
+ TIOCM_CAR = 0x100
+ TIOCM_CD = 0x100
+ TIOCM_CTS = 0x40
+ TIOCM_DSR = 0x400
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x200
+ TIOCM_RNG = 0x200
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x20
+ TIOCM_ST = 0x10
+ TIOCNOTTY = 0x5471
+ TIOCNXCL = 0x740e
+ TIOCOUTQ = 0x7472
+ TIOCPKT = 0x5470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x5480
+ TIOCSERCONFIG = 0x5488
+ TIOCSERGETLSR = 0x548e
+ TIOCSERGETMULTI = 0x548f
+ TIOCSERGSTRUCT = 0x548d
+ TIOCSERGWILD = 0x5489
+ TIOCSERSETMULTI = 0x5490
+ TIOCSERSWILD = 0x548a
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x7401
+ TIOCSETN = 0x740a
+ TIOCSETP = 0x7409
+ TIOCSIG = 0x80045436
+ TIOCSLCKTRMIOS = 0x548c
+ TIOCSLTC = 0x7475
+ TIOCSPGRP = 0x80047476
+ TIOCSPTLCK = 0x80045431
+ TIOCSRS485 = 0xc020542f
+ TIOCSSERIAL = 0x5485
+ TIOCSSOFTCAR = 0x5482
+ TIOCSTI = 0x5472
+ TIOCSWINSZ = 0x80087467
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x8000
+ TUNATTACHFILTER = 0x801054d5
+ TUNDETACHFILTER = 0x801054d6
+ TUNGETFEATURES = 0x400454cf
+ TUNGETFILTER = 0x401054db
+ TUNGETIFF = 0x400454d2
+ TUNGETSNDBUF = 0x400454d3
+ TUNGETVNETBE = 0x400454df
+ TUNGETVNETHDRSZ = 0x400454d7
+ TUNGETVNETLE = 0x400454dd
+ TUNSETDEBUG = 0x800454c9
+ TUNSETGROUP = 0x800454ce
+ TUNSETIFF = 0x800454ca
+ TUNSETIFINDEX = 0x800454da
+ TUNSETLINK = 0x800454cd
+ TUNSETNOCSUM = 0x800454c8
+ TUNSETOFFLOAD = 0x800454d0
+ TUNSETOWNER = 0x800454cc
+ TUNSETPERSIST = 0x800454cb
+ TUNSETQUEUE = 0x800454d9
+ TUNSETSNDBUF = 0x800454d4
+ TUNSETTXFILTER = 0x800454d1
+ TUNSETVNETBE = 0x800454de
+ TUNSETVNETHDRSZ = 0x800454d8
+ TUNSETVNETLE = 0x800454dc
+ VDISCARD = 0xd
+ VEOF = 0x10
+ VEOL = 0x11
+ VEOL2 = 0x6
+ VERASE = 0x2
+ VINTR = 0x0
+ VKILL = 0x3
+ VLNEXT = 0xf
+ VMIN = 0x4
+ VQUIT = 0x1
+ VREPRINT = 0xc
+ VSTART = 0x8
+ VSTOP = 0x9
+ VSUSP = 0xa
+ VSWTC = 0x7
+ VSWTCH = 0x7
+ VT0 = 0x0
+ VT1 = 0x4000
+ VTDLY = 0x4000
+ VTIME = 0x5
+ VWERASE = 0xe
+ WALL = 0x40000000
+ WCLONE = 0x80000000
+ WCONTINUED = 0x8
+ WEXITED = 0x4
+ WNOHANG = 0x1
+ WNOTHREAD = 0x20000000
+ WNOWAIT = 0x1000000
+ WORDSIZE = 0x40
+ WSTOPPED = 0x2
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x7d)
+ EADDRNOTAVAIL = syscall.Errno(0x7e)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x7c)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x95)
+ EBADE = syscall.Errno(0x32)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x51)
+ EBADMSG = syscall.Errno(0x4d)
+ EBADR = syscall.Errno(0x33)
+ EBADRQC = syscall.Errno(0x36)
+ EBADSLT = syscall.Errno(0x37)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x9e)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x25)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x82)
+ ECONNREFUSED = syscall.Errno(0x92)
+ ECONNRESET = syscall.Errno(0x83)
+ EDEADLK = syscall.Errno(0x2d)
+ EDEADLOCK = syscall.Errno(0x38)
+ EDESTADDRREQ = syscall.Errno(0x60)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x46d)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x93)
+ EHOSTUNREACH = syscall.Errno(0x94)
+ EHWPOISON = syscall.Errno(0xa8)
+ EIDRM = syscall.Errno(0x24)
+ EILSEQ = syscall.Errno(0x58)
+ EINIT = syscall.Errno(0x8d)
+ EINPROGRESS = syscall.Errno(0x96)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x85)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x8b)
+ EKEYEXPIRED = syscall.Errno(0xa2)
+ EKEYREJECTED = syscall.Errno(0xa4)
+ EKEYREVOKED = syscall.Errno(0xa3)
+ EL2HLT = syscall.Errno(0x2c)
+ EL2NSYNC = syscall.Errno(0x26)
+ EL3HLT = syscall.Errno(0x27)
+ EL3RST = syscall.Errno(0x28)
+ ELIBACC = syscall.Errno(0x53)
+ ELIBBAD = syscall.Errno(0x54)
+ ELIBEXEC = syscall.Errno(0x57)
+ ELIBMAX = syscall.Errno(0x56)
+ ELIBSCN = syscall.Errno(0x55)
+ ELNRNG = syscall.Errno(0x29)
+ ELOOP = syscall.Errno(0x5a)
+ EMEDIUMTYPE = syscall.Errno(0xa0)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x61)
+ EMULTIHOP = syscall.Errno(0x4a)
+ ENAMETOOLONG = syscall.Errno(0x4e)
+ ENAVAIL = syscall.Errno(0x8a)
+ ENETDOWN = syscall.Errno(0x7f)
+ ENETRESET = syscall.Errno(0x81)
+ ENETUNREACH = syscall.Errno(0x80)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x35)
+ ENOBUFS = syscall.Errno(0x84)
+ ENOCSI = syscall.Errno(0x2b)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0xa1)
+ ENOLCK = syscall.Errno(0x2e)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x9f)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x23)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x63)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x59)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x86)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x5d)
+ ENOTNAM = syscall.Errno(0x89)
+ ENOTRECOVERABLE = syscall.Errno(0xa6)
+ ENOTSOCK = syscall.Errno(0x5f)
+ ENOTSUP = syscall.Errno(0x7a)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x50)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x7a)
+ EOVERFLOW = syscall.Errno(0x4f)
+ EOWNERDEAD = syscall.Errno(0xa5)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x7b)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x78)
+ EPROTOTYPE = syscall.Errno(0x62)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x52)
+ EREMDEV = syscall.Errno(0x8e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x8c)
+ ERESTART = syscall.Errno(0x5b)
+ ERFKILL = syscall.Errno(0xa7)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x8f)
+ ESOCKTNOSUPPORT = syscall.Errno(0x79)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x97)
+ ESTRPIPE = syscall.Errno(0x5c)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x91)
+ ETOOMANYREFS = syscall.Errno(0x90)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x87)
+ EUNATCH = syscall.Errno(0x2a)
+ EUSERS = syscall.Errno(0x5e)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x34)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x12)
+ SIGCLD = syscall.Signal(0x12)
+ SIGCONT = syscall.Signal(0x19)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x16)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x16)
+ SIGPROF = syscall.Signal(0x1d)
+ SIGPWR = syscall.Signal(0x13)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x17)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x18)
+ SIGTTIN = syscall.Signal(0x1a)
+ SIGTTOU = syscall.Signal(0x1b)
+ SIGURG = syscall.Signal(0x15)
+ SIGUSR1 = syscall.Signal(0x10)
+ SIGUSR2 = syscall.Signal(0x11)
+ SIGVTALRM = syscall.Signal(0x1c)
+ SIGWINCH = syscall.Signal(0x14)
+ SIGXCPU = syscall.Signal(0x1e)
+ SIGXFSZ = syscall.Signal(0x1f)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "no message of desired type",
+ 36: "identifier removed",
+ 37: "channel number out of range",
+ 38: "level 2 not synchronized",
+ 39: "level 3 halted",
+ 40: "level 3 reset",
+ 41: "link number out of range",
+ 42: "protocol driver not attached",
+ 43: "no CSI structure available",
+ 44: "level 2 halted",
+ 45: "resource deadlock avoided",
+ 46: "no locks available",
+ 50: "invalid exchange",
+ 51: "invalid request descriptor",
+ 52: "exchange full",
+ 53: "no anode",
+ 54: "invalid request code",
+ 55: "invalid slot",
+ 56: "file locking deadlock error",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 73: "RFS specific error",
+ 74: "multihop attempted",
+ 77: "bad message",
+ 78: "file name too long",
+ 79: "value too large for defined data type",
+ 80: "name not unique on network",
+ 81: "file descriptor in bad state",
+ 82: "remote address changed",
+ 83: "can not access a needed shared library",
+ 84: "accessing a corrupted shared library",
+ 85: ".lib section in a.out corrupted",
+ 86: "attempting to link in too many shared libraries",
+ 87: "cannot exec a shared library directly",
+ 88: "invalid or incomplete multibyte or wide character",
+ 89: "function not implemented",
+ 90: "too many levels of symbolic links",
+ 91: "interrupted system call should be restarted",
+ 92: "streams pipe error",
+ 93: "directory not empty",
+ 94: "too many users",
+ 95: "socket operation on non-socket",
+ 96: "destination address required",
+ 97: "message too long",
+ 98: "protocol wrong type for socket",
+ 99: "protocol not available",
+ 120: "protocol not supported",
+ 121: "socket type not supported",
+ 122: "operation not supported",
+ 123: "protocol family not supported",
+ 124: "address family not supported by protocol",
+ 125: "address already in use",
+ 126: "cannot assign requested address",
+ 127: "network is down",
+ 128: "network is unreachable",
+ 129: "network dropped connection on reset",
+ 130: "software caused connection abort",
+ 131: "connection reset by peer",
+ 132: "no buffer space available",
+ 133: "transport endpoint is already connected",
+ 134: "transport endpoint is not connected",
+ 135: "structure needs cleaning",
+ 137: "not a XENIX named type file",
+ 138: "no XENIX semaphores available",
+ 139: "is a named type file",
+ 140: "remote I/O error",
+ 141: "unknown error 141",
+ 142: "unknown error 142",
+ 143: "cannot send after transport endpoint shutdown",
+ 144: "too many references: cannot splice",
+ 145: "connection timed out",
+ 146: "connection refused",
+ 147: "host is down",
+ 148: "no route to host",
+ 149: "operation already in progress",
+ 150: "operation now in progress",
+ 151: "stale file handle",
+ 158: "operation canceled",
+ 159: "no medium found",
+ 160: "wrong medium type",
+ 161: "required key not available",
+ 162: "key has expired",
+ 163: "key has been revoked",
+ 164: "key was rejected by service",
+ 165: "owner died",
+ 166: "state not recoverable",
+ 167: "operation not possible due to RF-kill",
+ 168: "memory page has hardware error",
+ 1133: "disk quota exceeded",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "user defined signal 1",
+ 17: "user defined signal 2",
+ 18: "child exited",
+ 19: "power failure",
+ 20: "window changed",
+ 21: "urgent I/O condition",
+ 22: "I/O possible",
+ 23: "stopped (signal)",
+ 24: "stopped",
+ 25: "continued",
+ 26: "stopped (tty input)",
+ 27: "stopped (tty output)",
+ 28: "virtual timer expired",
+ 29: "profiling timer expired",
+ 30: "CPU time limit exceeded",
+ 31: "file size limit exceeded",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
new file mode 100644
index 000000000..8b42ca2fe
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go
@@ -0,0 +1,1970 @@
+// 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
+ BOTHER = 0x1f
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x8000
+ BSDLY = 0x8000
+ CBAUD = 0xff
+ CBAUDEX = 0x0
+ CFLUSH = 0xf
+ CIBAUD = 0xff0000
+ CLOCAL = 0x8000
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x1000
+ CR2 = 0x2000
+ CR3 = 0x3000
+ CRDLY = 0x3000
+ CREAD = 0x800
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIGNAL = 0xff
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ 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
+ FF0 = 0x0
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x100
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_MANAGETEMPADDR = 0x100
+ IFA_F_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
+ IUCLC = 0x1000
+ 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
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+ NL3 = 0x300
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x300
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80000000
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x4
+ ONLCR = 0x2
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x20000
+ O_DIRECTORY = 0x4000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x8000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 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
+ TAB0 = 0x0
+ TAB1 = 0x400
+ TAB2 = 0x800
+ TAB3 = 0xc00
+ TABDLY = 0xc00
+ TCFLSH = 0x2000741f
+ TCGETA = 0x40147417
+ TCGETS = 0x402c7413
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 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
+ TCSBRK = 0x2000741d
+ TCSBRKP = 0x5425
+ TCSETA = 0x80147418
+ TCSETAF = 0x8014741c
+ TCSETAW = 0x80147419
+ TCSETS = 0x802c7414
+ TCSETSF = 0x802c7416
+ TCSETSW = 0x802c7415
+ TCXONC = 0x2000741e
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x40045432
+ TIOCGETC = 0x40067412
+ TIOCGETD = 0x5424
+ TIOCGETP = 0x40067408
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGLTC = 0x40067474
+ TIOCGPGRP = 0x40047477
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x40087468
+ TIOCINQ = 0x4004667f
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_LOOP = 0x8000
+ TIOCM_OUT1 = 0x2000
+ TIOCM_OUT2 = 0x4000
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETC = 0x80067411
+ TIOCSETD = 0x5423
+ TIOCSETN = 0x8006740a
+ TIOCSETP = 0x80067409
+ TIOCSIG = 0x80045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSLTC = 0x80067475
+ TIOCSPGRP = 0x80047476
+ TIOCSPTLCK = 0x80045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTART = 0x2000746e
+ TIOCSTI = 0x5412
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x400000
+ 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
+ XCASE = 0x4000
+ XTABS = 0xc00
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x3a)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 58: "file locking deadlock error",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale file handle",
+ 117: "structure needs cleaning",
+ 118: "not a XENIX named type file",
+ 119: "no XENIX semaphores available",
+ 120: "is a named type file",
+ 121: "remote I/O error",
+ 122: "disk quota exceeded",
+ 123: "no medium found",
+ 124: "wrong medium type",
+ 125: "operation canceled",
+ 126: "required key not available",
+ 127: "key has expired",
+ 128: "key has been revoked",
+ 129: "key was rejected by service",
+ 130: "owner died",
+ 131: "state not recoverable",
+ 132: "operation not possible due to RF-kill",
+ 133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "bus error",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "user defined signal 1",
+ 11: "segmentation fault",
+ 12: "user defined signal 2",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "stack fault",
+ 17: "child exited",
+ 18: "continued",
+ 19: "stopped (signal)",
+ 20: "stopped",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "urgent I/O condition",
+ 24: "CPU time limit exceeded",
+ 25: "file size limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window changed",
+ 29: "I/O possible",
+ 30: "power failure",
+ 31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
new file mode 100644
index 000000000..e8d12b5d6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go
@@ -0,0 +1,1969 @@
+// 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
+ BOTHER = 0x1f
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_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
+ BS0 = 0x0
+ BS1 = 0x8000
+ BSDLY = 0x8000
+ CBAUD = 0xff
+ CBAUDEX = 0x0
+ CFLUSH = 0xf
+ CIBAUD = 0xff0000
+ CLOCAL = 0x8000
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x1000
+ CR2 = 0x2000
+ CR3 = 0x3000
+ CRDLY = 0x3000
+ CREAD = 0x800
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIGNAL = 0xff
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ 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
+ FF0 = 0x0
+ FF1 = 0x4000
+ FFDLY = 0x4000
+ 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
+ IBSHIFT = 0x10
+ ICANON = 0x100
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_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
+ IUCLC = 0x1000
+ 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
+ NL0 = 0x0
+ NL1 = 0x100
+ NL2 = 0x200
+ NL3 = 0x300
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x300
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80000000
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x4
+ ONLCR = 0x2
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x20000
+ O_DIRECTORY = 0x4000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x8000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 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
+ TAB0 = 0x0
+ TAB1 = 0x400
+ TAB2 = 0x800
+ TAB3 = 0xc00
+ TABDLY = 0xc00
+ TCFLSH = 0x2000741f
+ TCGETA = 0x40147417
+ TCGETS = 0x402c7413
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 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
+ TCSBRK = 0x2000741d
+ TCSBRKP = 0x5425
+ TCSETA = 0x80147418
+ TCSETAF = 0x8014741c
+ TCSETAW = 0x80147419
+ TCSETS = 0x802c7414
+ TCSETSF = 0x802c7416
+ TCSETSW = 0x802c7415
+ TCXONC = 0x2000741e
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x40045432
+ TIOCGETC = 0x40067412
+ TIOCGETD = 0x5424
+ TIOCGETP = 0x40067408
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGLTC = 0x40067474
+ TIOCGPGRP = 0x40047477
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x40087468
+ TIOCINQ = 0x4004667f
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_LOOP = 0x8000
+ TIOCM_OUT1 = 0x2000
+ TIOCM_OUT2 = 0x4000
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETC = 0x80067411
+ TIOCSETD = 0x5423
+ TIOCSETN = 0x8006740a
+ TIOCSETP = 0x80067409
+ TIOCSIG = 0x80045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSLTC = 0x80067475
+ TIOCSPGRP = 0x80047476
+ TIOCSPTLCK = 0x80045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTART = 0x2000746e
+ TIOCSTI = 0x5412
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x400000
+ 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
+ XCASE = 0x4000
+ XTABS = 0xc00
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x3a)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 58: "file locking deadlock error",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale file handle",
+ 117: "structure needs cleaning",
+ 118: "not a XENIX named type file",
+ 119: "no XENIX semaphores available",
+ 120: "is a named type file",
+ 121: "remote I/O error",
+ 122: "disk quota exceeded",
+ 123: "no medium found",
+ 124: "wrong medium type",
+ 125: "operation canceled",
+ 126: "required key not available",
+ 127: "key has expired",
+ 128: "key has been revoked",
+ 129: "key was rejected by service",
+ 130: "owner died",
+ 131: "state not recoverable",
+ 132: "operation not possible due to RF-kill",
+ 133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "bus error",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "user defined signal 1",
+ 11: "segmentation fault",
+ 12: "user defined signal 2",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "stack fault",
+ 17: "child exited",
+ 18: "continued",
+ 19: "stopped (signal)",
+ 20: "stopped",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "urgent I/O condition",
+ 24: "CPU time limit exceeded",
+ 25: "file size limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window changed",
+ 29: "I/O possible",
+ 30: "power failure",
+ 31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
new file mode 100644
index 000000000..329f25e7c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go
@@ -0,0 +1,2027 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build s390x,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_ALG = 0x26
+ AF_APPLETALK = 0x5
+ AF_ASH = 0x12
+ AF_ATMPVC = 0x8
+ AF_ATMSVC = 0x14
+ AF_AX25 = 0x3
+ AF_BLUETOOTH = 0x1f
+ AF_BRIDGE = 0x7
+ AF_CAIF = 0x25
+ AF_CAN = 0x1d
+ AF_DECnet = 0xc
+ AF_ECONET = 0x13
+ AF_FILE = 0x1
+ AF_IB = 0x1b
+ AF_IEEE802154 = 0x24
+ AF_INET = 0x2
+ AF_INET6 = 0xa
+ AF_IPX = 0x4
+ AF_IRDA = 0x17
+ AF_ISDN = 0x22
+ AF_IUCV = 0x20
+ AF_KEY = 0xf
+ AF_LLC = 0x1a
+ AF_LOCAL = 0x1
+ AF_MAX = 0x29
+ AF_MPLS = 0x1c
+ AF_NETBEUI = 0xd
+ AF_NETLINK = 0x10
+ AF_NETROM = 0x6
+ AF_NFC = 0x27
+ AF_PACKET = 0x11
+ AF_PHONET = 0x23
+ AF_PPPOX = 0x18
+ AF_RDS = 0x15
+ AF_ROSE = 0xb
+ AF_ROUTE = 0x10
+ AF_RXRPC = 0x21
+ AF_SECURITY = 0xe
+ AF_SNA = 0x16
+ AF_TIPC = 0x1e
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
+ AF_WANPIPE = 0x19
+ AF_X25 = 0x9
+ ARPHRD_6LOWPAN = 0x339
+ ARPHRD_ADAPT = 0x108
+ ARPHRD_APPLETLK = 0x8
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ASH = 0x30d
+ ARPHRD_ATM = 0x13
+ ARPHRD_AX25 = 0x3
+ ARPHRD_BIF = 0x307
+ ARPHRD_CAIF = 0x336
+ ARPHRD_CAN = 0x118
+ ARPHRD_CHAOS = 0x5
+ ARPHRD_CISCO = 0x201
+ ARPHRD_CSLIP = 0x101
+ ARPHRD_CSLIP6 = 0x103
+ ARPHRD_DDCMP = 0x205
+ ARPHRD_DLCI = 0xf
+ ARPHRD_ECONET = 0x30e
+ ARPHRD_EETHER = 0x2
+ ARPHRD_ETHER = 0x1
+ ARPHRD_EUI64 = 0x1b
+ ARPHRD_FCAL = 0x311
+ ARPHRD_FCFABRIC = 0x313
+ ARPHRD_FCPL = 0x312
+ ARPHRD_FCPP = 0x310
+ ARPHRD_FDDI = 0x306
+ ARPHRD_FRAD = 0x302
+ ARPHRD_HDLC = 0x201
+ ARPHRD_HIPPI = 0x30c
+ ARPHRD_HWX25 = 0x110
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_IEEE80211 = 0x321
+ ARPHRD_IEEE80211_PRISM = 0x322
+ ARPHRD_IEEE80211_RADIOTAP = 0x323
+ ARPHRD_IEEE802154 = 0x324
+ ARPHRD_IEEE802154_MONITOR = 0x325
+ ARPHRD_IEEE802_TR = 0x320
+ ARPHRD_INFINIBAND = 0x20
+ ARPHRD_IP6GRE = 0x337
+ ARPHRD_IPDDP = 0x309
+ ARPHRD_IPGRE = 0x30a
+ ARPHRD_IRDA = 0x30f
+ ARPHRD_LAPB = 0x204
+ ARPHRD_LOCALTLK = 0x305
+ ARPHRD_LOOPBACK = 0x304
+ ARPHRD_METRICOM = 0x17
+ ARPHRD_NETLINK = 0x338
+ ARPHRD_NETROM = 0x0
+ ARPHRD_NONE = 0xfffe
+ ARPHRD_PHONET = 0x334
+ ARPHRD_PHONET_PIPE = 0x335
+ ARPHRD_PIMREG = 0x30b
+ ARPHRD_PPP = 0x200
+ ARPHRD_PRONET = 0x4
+ ARPHRD_RAWHDLC = 0x206
+ ARPHRD_ROSE = 0x10e
+ ARPHRD_RSRVD = 0x104
+ ARPHRD_SIT = 0x308
+ ARPHRD_SKIP = 0x303
+ ARPHRD_SLIP = 0x100
+ ARPHRD_SLIP6 = 0x102
+ ARPHRD_TUNNEL = 0x300
+ ARPHRD_TUNNEL6 = 0x301
+ ARPHRD_VOID = 0xffff
+ ARPHRD_X25 = 0x10f
+ B0 = 0x0
+ B1000000 = 0x1008
+ B110 = 0x3
+ B115200 = 0x1002
+ B1152000 = 0x1009
+ B1200 = 0x9
+ B134 = 0x4
+ B150 = 0x5
+ B1500000 = 0x100a
+ B1800 = 0xa
+ B19200 = 0xe
+ B200 = 0x6
+ B2000000 = 0x100b
+ B230400 = 0x1003
+ B2400 = 0xb
+ B2500000 = 0x100c
+ B300 = 0x7
+ B3000000 = 0x100d
+ B3500000 = 0x100e
+ B38400 = 0xf
+ B4000000 = 0x100f
+ B460800 = 0x1004
+ B4800 = 0xc
+ B50 = 0x1
+ B500000 = 0x1005
+ B57600 = 0x1001
+ B576000 = 0x1006
+ B600 = 0x8
+ B75 = 0x2
+ B921600 = 0x1007
+ B9600 = 0xd
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LL_OFF = -0x200000
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXINSNS = 0x1000
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MOD = 0x90
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_NET_OFF = -0x100000
+ BPF_OR = 0x40
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BPF_XOR = 0xa0
+ BRKINT = 0x2
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_TAI = 0xb
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ 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_TSN = 0x22f0
+ ETH_P_WAN_PPP = 0x7
+ ETH_P_WCCP = 0x883e
+ ETH_P_X25 = 0x805
+ ETH_P_XDSA = 0xf8
+ EXTA = 0xe
+ EXTB = 0xf
+ EXTPROC = 0x10000
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ 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_OFD_GETLK = 0x24
+ F_OFD_SETLK = 0x25
+ F_OFD_SETLKW = 0x26
+ F_OK = 0x0
+ F_RDLCK = 0x0
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLEASE = 0x400
+ F_SETLK = 0x6
+ F_SETLK64 = 0x6
+ F_SETLKW = 0x7
+ F_SETLKW64 = 0x7
+ F_SETOWN = 0x8
+ F_SETOWN_EX = 0xf
+ F_SETPIPE_SZ = 0x407
+ F_SETSIG = 0xa
+ F_SHLCK = 0x8
+ F_TEST = 0x3
+ F_TLOCK = 0x2
+ F_ULOCK = 0x0
+ F_UNLCK = 0x2
+ F_WRLCK = 0x1
+ HUPCL = 0x400
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_MANAGETEMPADDR = 0x100
+ IFA_F_MCAUTOJOIN = 0x400
+ IFA_F_NODAD = 0x2
+ IFA_F_NOPREFIXROUTE = 0x200
+ IFA_F_OPTIMISTIC = 0x4
+ IFA_F_PERMANENT = 0x80
+ IFA_F_SECONDARY = 0x1
+ IFA_F_STABLE_PRIVACY = 0x800
+ IFA_F_TEMPORARY = 0x1
+ IFA_F_TENTATIVE = 0x40
+ IFA_MAX = 0x8
+ IFF_ALLMULTI = 0x200
+ IFF_ATTACH_QUEUE = 0x200
+ IFF_AUTOMEDIA = 0x4000
+ IFF_BROADCAST = 0x2
+ IFF_DEBUG = 0x4
+ IFF_DETACH_QUEUE = 0x400
+ IFF_DORMANT = 0x20000
+ IFF_DYNAMIC = 0x8000
+ IFF_ECHO = 0x40000
+ IFF_LOOPBACK = 0x8
+ IFF_LOWER_UP = 0x10000
+ IFF_MASTER = 0x400
+ IFF_MULTICAST = 0x1000
+ IFF_MULTI_QUEUE = 0x100
+ IFF_NOARP = 0x80
+ IFF_NOFILTER = 0x1000
+ IFF_NOTRAILERS = 0x20
+ IFF_NO_PI = 0x1000
+ IFF_ONE_QUEUE = 0x2000
+ IFF_PERSIST = 0x800
+ IFF_POINTOPOINT = 0x10
+ IFF_PORTSEL = 0x2000
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SLAVE = 0x800
+ IFF_TAP = 0x2
+ IFF_TUN = 0x1
+ IFF_TUN_EXCL = 0x8000
+ IFF_UP = 0x1
+ IFF_VNET_HDR = 0x4000
+ IFF_VOLATILE = 0x70c5a
+ IFNAMSIZ = 0x10
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_ACCESS = 0x1
+ IN_ALL_EVENTS = 0xfff
+ IN_ATTRIB = 0x4
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLOEXEC = 0x80000
+ IN_CLOSE = 0x18
+ IN_CLOSE_NOWRITE = 0x10
+ IN_CLOSE_WRITE = 0x8
+ IN_CREATE = 0x100
+ IN_DELETE = 0x200
+ IN_DELETE_SELF = 0x400
+ IN_DONT_FOLLOW = 0x2000000
+ IN_EXCL_UNLINK = 0x4000000
+ IN_IGNORED = 0x8000
+ IN_ISDIR = 0x40000000
+ IN_LOOPBACKNET = 0x7f
+ IN_MASK_ADD = 0x20000000
+ IN_MODIFY = 0x2
+ IN_MOVE = 0xc0
+ IN_MOVED_FROM = 0x40
+ IN_MOVED_TO = 0x80
+ IN_MOVE_SELF = 0x800
+ IN_NONBLOCK = 0x800
+ IN_ONESHOT = 0x80000000
+ IN_ONLYDIR = 0x1000000
+ IN_OPEN = 0x20
+ IN_Q_OVERFLOW = 0x4000
+ IN_UNMOUNT = 0x2000
+ IPPROTO_AH = 0x33
+ IPPROTO_BEETPH = 0x5e
+ IPPROTO_COMP = 0x6c
+ IPPROTO_DCCP = 0x21
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_ESP = 0x32
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MH = 0x87
+ IPPROTO_MPLS = 0x89
+ IPPROTO_MTP = 0x5c
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_SCTP = 0x84
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_UDPLITE = 0x88
+ IPV6_2292DSTOPTS = 0x4
+ IPV6_2292HOPLIMIT = 0x8
+ IPV6_2292HOPOPTS = 0x3
+ IPV6_2292PKTINFO = 0x2
+ IPV6_2292PKTOPTIONS = 0x6
+ IPV6_2292RTHDR = 0x5
+ IPV6_ADDRFORM = 0x1
+ IPV6_ADD_MEMBERSHIP = 0x14
+ IPV6_AUTHHDR = 0xa
+ IPV6_CHECKSUM = 0x7
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DROP_MEMBERSHIP = 0x15
+ IPV6_DSTOPTS = 0x3b
+ IPV6_HOPLIMIT = 0x34
+ IPV6_HOPOPTS = 0x36
+ IPV6_IPSEC_POLICY = 0x22
+ IPV6_JOIN_ANYCAST = 0x1b
+ IPV6_JOIN_GROUP = 0x14
+ IPV6_LEAVE_ANYCAST = 0x1c
+ IPV6_LEAVE_GROUP = 0x15
+ IPV6_MTU = 0x18
+ IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_HOPS = 0x12
+ IPV6_MULTICAST_IF = 0x11
+ IPV6_MULTICAST_LOOP = 0x13
+ IPV6_NEXTHOP = 0x9
+ IPV6_PATHMTU = 0x3d
+ IPV6_PKTINFO = 0x32
+ IPV6_PMTUDISC_DO = 0x2
+ IPV6_PMTUDISC_DONT = 0x0
+ IPV6_PMTUDISC_INTERFACE = 0x4
+ IPV6_PMTUDISC_OMIT = 0x5
+ IPV6_PMTUDISC_PROBE = 0x3
+ IPV6_PMTUDISC_WANT = 0x1
+ IPV6_RECVDSTOPTS = 0x3a
+ IPV6_RECVERR = 0x19
+ IPV6_RECVHOPLIMIT = 0x33
+ IPV6_RECVHOPOPTS = 0x35
+ IPV6_RECVPATHMTU = 0x3c
+ IPV6_RECVPKTINFO = 0x31
+ IPV6_RECVRTHDR = 0x38
+ IPV6_RECVTCLASS = 0x42
+ IPV6_ROUTER_ALERT = 0x16
+ IPV6_RTHDR = 0x39
+ IPV6_RTHDRDSTOPTS = 0x37
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_RXDSTOPTS = 0x3b
+ IPV6_RXHOPOPTS = 0x36
+ IPV6_TCLASS = 0x43
+ IPV6_UNICAST_HOPS = 0x10
+ IPV6_V6ONLY = 0x1a
+ IPV6_XFRM_POLICY = 0x23
+ IP_ADD_MEMBERSHIP = 0x23
+ IP_ADD_SOURCE_MEMBERSHIP = 0x27
+ IP_BIND_ADDRESS_NO_PORT = 0x18
+ IP_BLOCK_SOURCE = 0x26
+ IP_CHECKSUM = 0x17
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0x24
+ IP_DROP_SOURCE_MEMBERSHIP = 0x28
+ IP_FREEBIND = 0xf
+ IP_HDRINCL = 0x3
+ IP_IPSEC_POLICY = 0x10
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINTTL = 0x15
+ IP_MSFILTER = 0x29
+ IP_MSS = 0x240
+ IP_MTU = 0xe
+ IP_MTU_DISCOVER = 0xa
+ IP_MULTICAST_ALL = 0x31
+ IP_MULTICAST_IF = 0x20
+ IP_MULTICAST_LOOP = 0x22
+ IP_MULTICAST_TTL = 0x21
+ IP_NODEFRAG = 0x16
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x4
+ IP_ORIGDSTADDR = 0x14
+ IP_PASSSEC = 0x12
+ IP_PKTINFO = 0x8
+ IP_PKTOPTIONS = 0x9
+ IP_PMTUDISC = 0xa
+ IP_PMTUDISC_DO = 0x2
+ IP_PMTUDISC_DONT = 0x0
+ IP_PMTUDISC_INTERFACE = 0x4
+ IP_PMTUDISC_OMIT = 0x5
+ IP_PMTUDISC_PROBE = 0x3
+ IP_PMTUDISC_WANT = 0x1
+ IP_RECVERR = 0xb
+ IP_RECVOPTS = 0x6
+ IP_RECVORIGDSTADDR = 0x14
+ IP_RECVRETOPTS = 0x7
+ IP_RECVTOS = 0xd
+ IP_RECVTTL = 0xc
+ IP_RETOPTS = 0x7
+ IP_RF = 0x8000
+ IP_ROUTER_ALERT = 0x5
+ IP_TOS = 0x1
+ IP_TRANSPARENT = 0x13
+ IP_TTL = 0x2
+ IP_UNBLOCK_SOURCE = 0x25
+ IP_UNICAST_IF = 0x32
+ IP_XFRM_POLICY = 0x11
+ ISIG = 0x1
+ ISTRIP = 0x20
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DODUMP = 0x11
+ MADV_DOFORK = 0xb
+ MADV_DONTDUMP = 0x10
+ MADV_DONTFORK = 0xa
+ MADV_DONTNEED = 0x4
+ MADV_HUGEPAGE = 0xe
+ MADV_HWPOISON = 0x64
+ MADV_MERGEABLE = 0xc
+ MADV_NOHUGEPAGE = 0xf
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_REMOVE = 0x9
+ MADV_SEQUENTIAL = 0x2
+ MADV_UNMERGEABLE = 0xd
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x20
+ MAP_ANONYMOUS = 0x20
+ MAP_DENYWRITE = 0x800
+ MAP_EXECUTABLE = 0x1000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_GROWSDOWN = 0x100
+ MAP_HUGETLB = 0x40000
+ MAP_HUGE_MASK = 0x3f
+ MAP_HUGE_SHIFT = 0x1a
+ MAP_LOCKED = 0x2000
+ MAP_NONBLOCK = 0x10000
+ MAP_NORESERVE = 0x4000
+ MAP_POPULATE = 0x8000
+ MAP_PRIVATE = 0x2
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x20000
+ MAP_TYPE = 0xf
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MCL_ONFAULT = 0x4
+ MNT_DETACH = 0x2
+ MNT_EXPIRE = 0x4
+ MNT_FORCE = 0x1
+ MSG_CMSG_CLOEXEC = 0x40000000
+ MSG_CONFIRM = 0x800
+ MSG_CTRUNC = 0x8
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x40
+ MSG_EOR = 0x80
+ MSG_ERRQUEUE = 0x2000
+ MSG_FASTOPEN = 0x20000000
+ MSG_FIN = 0x200
+ MSG_MORE = 0x8000
+ MSG_NOSIGNAL = 0x4000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_PROXY = 0x10
+ MSG_RST = 0x1000
+ MSG_SYN = 0x400
+ MSG_TRUNC = 0x20
+ MSG_TRYHARD = 0x4
+ MSG_WAITALL = 0x100
+ MSG_WAITFORONE = 0x10000
+ MS_ACTIVE = 0x40000000
+ MS_ASYNC = 0x1
+ MS_BIND = 0x1000
+ MS_DIRSYNC = 0x80
+ MS_INVALIDATE = 0x2
+ MS_I_VERSION = 0x800000
+ MS_KERNMOUNT = 0x400000
+ MS_LAZYTIME = 0x2000000
+ MS_MANDLOCK = 0x40
+ MS_MGC_MSK = 0xffff0000
+ MS_MGC_VAL = 0xc0ed0000
+ MS_MOVE = 0x2000
+ MS_NOATIME = 0x400
+ MS_NODEV = 0x4
+ MS_NODIRATIME = 0x800
+ MS_NOEXEC = 0x8
+ MS_NOSUID = 0x2
+ MS_NOUSER = -0x80000000
+ MS_POSIXACL = 0x10000
+ MS_PRIVATE = 0x40000
+ MS_RDONLY = 0x1
+ MS_REC = 0x4000
+ MS_RELATIME = 0x200000
+ MS_REMOUNT = 0x20
+ MS_RMT_MASK = 0x2800051
+ MS_SHARED = 0x100000
+ MS_SILENT = 0x8000
+ MS_SLAVE = 0x80000
+ MS_STRICTATIME = 0x1000000
+ MS_SYNC = 0x4
+ MS_SYNCHRONOUS = 0x10
+ MS_UNBINDABLE = 0x20000
+ NAME_MAX = 0xff
+ NETLINK_ADD_MEMBERSHIP = 0x1
+ NETLINK_AUDIT = 0x9
+ NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
+ NETLINK_CONNECTOR = 0xb
+ NETLINK_CRYPTO = 0x15
+ NETLINK_DNRTMSG = 0xe
+ NETLINK_DROP_MEMBERSHIP = 0x2
+ NETLINK_ECRYPTFS = 0x13
+ NETLINK_FIB_LOOKUP = 0xa
+ NETLINK_FIREWALL = 0x3
+ NETLINK_GENERIC = 0x10
+ NETLINK_INET_DIAG = 0x4
+ NETLINK_IP6_FW = 0xd
+ NETLINK_ISCSI = 0x8
+ NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
+ NETLINK_NETFILTER = 0xc
+ NETLINK_NFLOG = 0x5
+ NETLINK_NO_ENOBUFS = 0x5
+ NETLINK_PKTINFO = 0x3
+ NETLINK_RDMA = 0x14
+ NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
+ NETLINK_SCSITRANSPORT = 0x12
+ NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
+ NETLINK_UNUSED = 0x1
+ NETLINK_USERSOCK = 0x2
+ NETLINK_XFRM = 0x6
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x400
+ O_ASYNC = 0x2000
+ O_CLOEXEC = 0x80000
+ O_CREAT = 0x40
+ O_DIRECT = 0x4000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x1000
+ O_EXCL = 0x80
+ O_FSYNC = 0x101000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x800
+ O_NOATIME = 0x40000
+ O_NOCTTY = 0x100
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x800
+ O_PATH = 0x200000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x101000
+ O_SYNC = 0x101000
+ O_TMPFILE = 0x410000
+ O_TRUNC = 0x200
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_CBPF = 0x6
+ PACKET_FANOUT_CPU = 0x2
+ PACKET_FANOUT_DATA = 0x16
+ PACKET_FANOUT_EBPF = 0x7
+ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+ PACKET_FANOUT_HASH = 0x0
+ PACKET_FANOUT_LB = 0x1
+ PACKET_FANOUT_QM = 0x5
+ PACKET_FANOUT_RND = 0x4
+ PACKET_FANOUT_ROLLOVER = 0x3
+ PACKET_FASTROUTE = 0x6
+ PACKET_HDRLEN = 0xb
+ PACKET_HOST = 0x0
+ PACKET_KERNEL = 0x7
+ PACKET_LOOPBACK = 0x5
+ PACKET_LOSS = 0xe
+ PACKET_MR_ALLMULTI = 0x2
+ PACKET_MR_MULTICAST = 0x0
+ PACKET_MR_PROMISC = 0x1
+ PACKET_MR_UNICAST = 0x3
+ PACKET_MULTICAST = 0x2
+ PACKET_ORIGDEV = 0x9
+ PACKET_OTHERHOST = 0x3
+ PACKET_OUTGOING = 0x4
+ PACKET_QDISC_BYPASS = 0x14
+ PACKET_RECV_OUTPUT = 0x3
+ PACKET_RESERVE = 0xc
+ PACKET_ROLLOVER_STATS = 0x15
+ PACKET_RX_RING = 0x5
+ PACKET_STATISTICS = 0x6
+ PACKET_TIMESTAMP = 0x11
+ PACKET_TX_HAS_OFF = 0x13
+ PACKET_TX_RING = 0xd
+ PACKET_TX_TIMESTAMP = 0x10
+ PACKET_USER = 0x6
+ PACKET_VERSION = 0xa
+ PACKET_VNET_HDR = 0xf
+ PARENB = 0x100
+ PARITY_CRC16_PR0 = 0x2
+ PARITY_CRC16_PR0_CCITT = 0x4
+ PARITY_CRC16_PR1 = 0x3
+ PARITY_CRC16_PR1_CCITT = 0x5
+ PARITY_CRC32_PR0_CCITT = 0x6
+ PARITY_CRC32_PR1_CCITT = 0x7
+ PARITY_DEFAULT = 0x0
+ PARITY_NONE = 0x1
+ PARMRK = 0x8
+ PARODD = 0x200
+ PENDIN = 0x4000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_GROWSDOWN = 0x1000000
+ PROT_GROWSUP = 0x2000000
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PR_CAPBSET_DROP = 0x18
+ PR_CAPBSET_READ = 0x17
+ PR_CAP_AMBIENT = 0x2f
+ PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+ PR_CAP_AMBIENT_IS_SET = 0x1
+ PR_CAP_AMBIENT_LOWER = 0x3
+ PR_CAP_AMBIENT_RAISE = 0x2
+ PR_ENDIAN_BIG = 0x0
+ PR_ENDIAN_LITTLE = 0x1
+ PR_ENDIAN_PPC_LITTLE = 0x2
+ PR_FPEMU_NOPRINT = 0x1
+ PR_FPEMU_SIGFPE = 0x2
+ PR_FP_EXC_ASYNC = 0x2
+ PR_FP_EXC_DISABLED = 0x0
+ PR_FP_EXC_DIV = 0x10000
+ PR_FP_EXC_INV = 0x100000
+ PR_FP_EXC_NONRECOV = 0x1
+ PR_FP_EXC_OVF = 0x20000
+ PR_FP_EXC_PRECISE = 0x3
+ PR_FP_EXC_RES = 0x80000
+ PR_FP_EXC_SW_ENABLE = 0x80
+ PR_FP_EXC_UND = 0x40000
+ PR_FP_MODE_FR = 0x1
+ PR_FP_MODE_FRE = 0x2
+ PR_GET_CHILD_SUBREAPER = 0x25
+ PR_GET_DUMPABLE = 0x3
+ PR_GET_ENDIAN = 0x13
+ PR_GET_FPEMU = 0x9
+ PR_GET_FPEXC = 0xb
+ PR_GET_FP_MODE = 0x2e
+ PR_GET_KEEPCAPS = 0x7
+ PR_GET_NAME = 0x10
+ PR_GET_NO_NEW_PRIVS = 0x27
+ PR_GET_PDEATHSIG = 0x2
+ PR_GET_SECCOMP = 0x15
+ PR_GET_SECUREBITS = 0x1b
+ PR_GET_THP_DISABLE = 0x2a
+ PR_GET_TID_ADDRESS = 0x28
+ PR_GET_TIMERSLACK = 0x1e
+ PR_GET_TIMING = 0xd
+ PR_GET_TSC = 0x19
+ PR_GET_UNALIGN = 0x5
+ PR_MCE_KILL = 0x21
+ PR_MCE_KILL_CLEAR = 0x0
+ PR_MCE_KILL_DEFAULT = 0x2
+ PR_MCE_KILL_EARLY = 0x1
+ PR_MCE_KILL_GET = 0x22
+ PR_MCE_KILL_LATE = 0x0
+ PR_MCE_KILL_SET = 0x1
+ PR_MPX_DISABLE_MANAGEMENT = 0x2c
+ PR_MPX_ENABLE_MANAGEMENT = 0x2b
+ PR_SET_CHILD_SUBREAPER = 0x24
+ PR_SET_DUMPABLE = 0x4
+ PR_SET_ENDIAN = 0x14
+ PR_SET_FPEMU = 0xa
+ PR_SET_FPEXC = 0xc
+ PR_SET_FP_MODE = 0x2d
+ PR_SET_KEEPCAPS = 0x8
+ PR_SET_MM = 0x23
+ PR_SET_MM_ARG_END = 0x9
+ PR_SET_MM_ARG_START = 0x8
+ PR_SET_MM_AUXV = 0xc
+ PR_SET_MM_BRK = 0x7
+ PR_SET_MM_END_CODE = 0x2
+ PR_SET_MM_END_DATA = 0x4
+ PR_SET_MM_ENV_END = 0xb
+ PR_SET_MM_ENV_START = 0xa
+ PR_SET_MM_EXE_FILE = 0xd
+ PR_SET_MM_MAP = 0xe
+ PR_SET_MM_MAP_SIZE = 0xf
+ PR_SET_MM_START_BRK = 0x6
+ PR_SET_MM_START_CODE = 0x1
+ PR_SET_MM_START_DATA = 0x3
+ PR_SET_MM_START_STACK = 0x5
+ PR_SET_NAME = 0xf
+ PR_SET_NO_NEW_PRIVS = 0x26
+ PR_SET_PDEATHSIG = 0x1
+ PR_SET_PTRACER = 0x59616d61
+ PR_SET_PTRACER_ANY = -0x1
+ PR_SET_SECCOMP = 0x16
+ PR_SET_SECUREBITS = 0x1c
+ PR_SET_THP_DISABLE = 0x29
+ PR_SET_TIMERSLACK = 0x1d
+ PR_SET_TIMING = 0xe
+ PR_SET_TSC = 0x1a
+ PR_SET_UNALIGN = 0x6
+ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+ PR_TASK_PERF_EVENTS_ENABLE = 0x20
+ PR_TIMING_STATISTICAL = 0x0
+ PR_TIMING_TIMESTAMP = 0x1
+ PR_TSC_ENABLE = 0x1
+ PR_TSC_SIGSEGV = 0x2
+ PR_UNALIGN_NOPRINT = 0x1
+ PR_UNALIGN_SIGBUS = 0x2
+ PTRACE_ATTACH = 0x10
+ PTRACE_CONT = 0x7
+ PTRACE_DETACH = 0x11
+ PTRACE_DISABLE_TE = 0x5010
+ PTRACE_ENABLE_TE = 0x5009
+ PTRACE_EVENT_CLONE = 0x3
+ PTRACE_EVENT_EXEC = 0x4
+ PTRACE_EVENT_EXIT = 0x6
+ PTRACE_EVENT_FORK = 0x1
+ PTRACE_EVENT_SECCOMP = 0x7
+ PTRACE_EVENT_STOP = 0x80
+ PTRACE_EVENT_VFORK = 0x2
+ PTRACE_EVENT_VFORK_DONE = 0x5
+ PTRACE_GETEVENTMSG = 0x4201
+ PTRACE_GETREGS = 0xc
+ PTRACE_GETREGSET = 0x4204
+ PTRACE_GETSIGINFO = 0x4202
+ PTRACE_GETSIGMASK = 0x420a
+ PTRACE_GET_LAST_BREAK = 0x5006
+ PTRACE_INTERRUPT = 0x4207
+ PTRACE_KILL = 0x8
+ PTRACE_LISTEN = 0x4208
+ PTRACE_OLDSETOPTIONS = 0x15
+ PTRACE_O_EXITKILL = 0x100000
+ PTRACE_O_MASK = 0x3000ff
+ PTRACE_O_SUSPEND_SECCOMP = 0x200000
+ PTRACE_O_TRACECLONE = 0x8
+ PTRACE_O_TRACEEXEC = 0x10
+ PTRACE_O_TRACEEXIT = 0x40
+ PTRACE_O_TRACEFORK = 0x2
+ PTRACE_O_TRACESECCOMP = 0x80
+ PTRACE_O_TRACESYSGOOD = 0x1
+ PTRACE_O_TRACEVFORK = 0x4
+ PTRACE_O_TRACEVFORKDONE = 0x20
+ PTRACE_PEEKDATA = 0x2
+ PTRACE_PEEKDATA_AREA = 0x5003
+ PTRACE_PEEKSIGINFO = 0x4209
+ PTRACE_PEEKSIGINFO_SHARED = 0x1
+ PTRACE_PEEKTEXT = 0x1
+ PTRACE_PEEKTEXT_AREA = 0x5002
+ PTRACE_PEEKUSR = 0x3
+ PTRACE_PEEKUSR_AREA = 0x5000
+ PTRACE_PEEK_SYSTEM_CALL = 0x5007
+ PTRACE_POKEDATA = 0x5
+ PTRACE_POKEDATA_AREA = 0x5005
+ PTRACE_POKETEXT = 0x4
+ PTRACE_POKETEXT_AREA = 0x5004
+ PTRACE_POKEUSR = 0x6
+ PTRACE_POKEUSR_AREA = 0x5001
+ PTRACE_POKE_SYSTEM_CALL = 0x5008
+ PTRACE_PROT = 0x15
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+ PTRACE_SEIZE = 0x4206
+ PTRACE_SETOPTIONS = 0x4200
+ PTRACE_SETREGS = 0xd
+ PTRACE_SETREGSET = 0x4205
+ PTRACE_SETSIGINFO = 0x4203
+ PTRACE_SETSIGMASK = 0x420b
+ PTRACE_SINGLEBLOCK = 0xc
+ PTRACE_SINGLESTEP = 0x9
+ PTRACE_SYSCALL = 0x18
+ PTRACE_TE_ABORT_RAND = 0x5011
+ PTRACE_TRACEME = 0x0
+ PT_ACR0 = 0x90
+ PT_ACR1 = 0x94
+ PT_ACR10 = 0xb8
+ PT_ACR11 = 0xbc
+ PT_ACR12 = 0xc0
+ PT_ACR13 = 0xc4
+ PT_ACR14 = 0xc8
+ PT_ACR15 = 0xcc
+ PT_ACR2 = 0x98
+ PT_ACR3 = 0x9c
+ PT_ACR4 = 0xa0
+ PT_ACR5 = 0xa4
+ PT_ACR6 = 0xa8
+ PT_ACR7 = 0xac
+ PT_ACR8 = 0xb0
+ PT_ACR9 = 0xb4
+ PT_CR_10 = 0x168
+ PT_CR_11 = 0x170
+ PT_CR_9 = 0x160
+ PT_ENDREGS = 0x1af
+ PT_FPC = 0xd8
+ PT_FPR0 = 0xe0
+ PT_FPR1 = 0xe8
+ PT_FPR10 = 0x130
+ PT_FPR11 = 0x138
+ PT_FPR12 = 0x140
+ PT_FPR13 = 0x148
+ PT_FPR14 = 0x150
+ PT_FPR15 = 0x158
+ PT_FPR2 = 0xf0
+ PT_FPR3 = 0xf8
+ PT_FPR4 = 0x100
+ PT_FPR5 = 0x108
+ PT_FPR6 = 0x110
+ PT_FPR7 = 0x118
+ PT_FPR8 = 0x120
+ PT_FPR9 = 0x128
+ PT_GPR0 = 0x10
+ PT_GPR1 = 0x18
+ PT_GPR10 = 0x60
+ PT_GPR11 = 0x68
+ PT_GPR12 = 0x70
+ PT_GPR13 = 0x78
+ PT_GPR14 = 0x80
+ PT_GPR15 = 0x88
+ PT_GPR2 = 0x20
+ PT_GPR3 = 0x28
+ PT_GPR4 = 0x30
+ PT_GPR5 = 0x38
+ PT_GPR6 = 0x40
+ PT_GPR7 = 0x48
+ PT_GPR8 = 0x50
+ PT_GPR9 = 0x58
+ PT_IEEE_IP = 0x1a8
+ PT_LASTOFF = 0x1a8
+ PT_ORIGGPR2 = 0xd0
+ PT_PSWADDR = 0x8
+ PT_PSWMASK = 0x0
+ RLIMIT_AS = 0x9
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x7
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = -0x1
+ RTAX_ADVMSS = 0x8
+ RTAX_CC_ALGO = 0x10
+ RTAX_CWND = 0x7
+ RTAX_FEATURES = 0xc
+ RTAX_FEATURE_ALLFRAG = 0x8
+ RTAX_FEATURE_ECN = 0x1
+ RTAX_FEATURE_MASK = 0xf
+ RTAX_FEATURE_SACK = 0x2
+ RTAX_FEATURE_TIMESTAMP = 0x4
+ RTAX_HOPLIMIT = 0xa
+ RTAX_INITCWND = 0xb
+ RTAX_INITRWND = 0xe
+ RTAX_LOCK = 0x1
+ RTAX_MAX = 0x10
+ RTAX_MTU = 0x2
+ RTAX_QUICKACK = 0xf
+ RTAX_REORDERING = 0x9
+ RTAX_RTO_MIN = 0xd
+ RTAX_RTT = 0x4
+ RTAX_RTTVAR = 0x5
+ RTAX_SSTHRESH = 0x6
+ RTAX_UNSPEC = 0x0
+ RTAX_WINDOW = 0x3
+ RTA_ALIGNTO = 0x4
+ RTA_MAX = 0x16
+ RTCF_DIRECTSRC = 0x4000000
+ RTCF_DOREDIRECT = 0x1000000
+ RTCF_LOG = 0x2000000
+ RTCF_MASQ = 0x400000
+ RTCF_NAT = 0x800000
+ RTCF_VALVE = 0x200000
+ RTF_ADDRCLASSMASK = 0xf8000000
+ RTF_ADDRCONF = 0x40000
+ RTF_ALLONLINK = 0x20000
+ RTF_BROADCAST = 0x10000000
+ RTF_CACHE = 0x1000000
+ RTF_DEFAULT = 0x10000
+ RTF_DYNAMIC = 0x10
+ RTF_FLOW = 0x2000000
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_INTERFACE = 0x40000000
+ RTF_IRTT = 0x100
+ RTF_LINKRT = 0x100000
+ RTF_LOCAL = 0x80000000
+ RTF_MODIFIED = 0x20
+ RTF_MSS = 0x40
+ RTF_MTU = 0x40
+ RTF_MULTICAST = 0x20000000
+ RTF_NAT = 0x8000000
+ RTF_NOFORWARD = 0x1000
+ RTF_NONEXTHOP = 0x200000
+ RTF_NOPMTUDISC = 0x4000
+ RTF_POLICY = 0x4000000
+ RTF_REINSTATE = 0x8
+ RTF_REJECT = 0x200
+ RTF_STATIC = 0x400
+ RTF_THROW = 0x2000
+ RTF_UP = 0x1
+ RTF_WINDOW = 0x80
+ RTF_XRESOLVE = 0x800
+ RTM_BASE = 0x10
+ RTM_DELACTION = 0x31
+ RTM_DELADDR = 0x15
+ RTM_DELADDRLABEL = 0x49
+ RTM_DELLINK = 0x11
+ RTM_DELMDB = 0x55
+ RTM_DELNEIGH = 0x1d
+ RTM_DELNSID = 0x59
+ RTM_DELQDISC = 0x25
+ RTM_DELROUTE = 0x19
+ RTM_DELRULE = 0x21
+ RTM_DELTCLASS = 0x29
+ RTM_DELTFILTER = 0x2d
+ RTM_F_CLONED = 0x200
+ RTM_F_EQUALIZE = 0x400
+ RTM_F_LOOKUP_TABLE = 0x1000
+ RTM_F_NOTIFY = 0x100
+ RTM_F_PREFIX = 0x800
+ RTM_GETACTION = 0x32
+ RTM_GETADDR = 0x16
+ RTM_GETADDRLABEL = 0x4a
+ RTM_GETANYCAST = 0x3e
+ RTM_GETDCB = 0x4e
+ RTM_GETLINK = 0x12
+ RTM_GETMDB = 0x56
+ RTM_GETMULTICAST = 0x3a
+ RTM_GETNEIGH = 0x1e
+ RTM_GETNEIGHTBL = 0x42
+ RTM_GETNETCONF = 0x52
+ RTM_GETNSID = 0x5a
+ RTM_GETQDISC = 0x26
+ RTM_GETROUTE = 0x1a
+ RTM_GETRULE = 0x22
+ RTM_GETTCLASS = 0x2a
+ RTM_GETTFILTER = 0x2e
+ RTM_MAX = 0x5b
+ RTM_NEWACTION = 0x30
+ RTM_NEWADDR = 0x14
+ RTM_NEWADDRLABEL = 0x48
+ RTM_NEWLINK = 0x10
+ RTM_NEWMDB = 0x54
+ RTM_NEWNDUSEROPT = 0x44
+ RTM_NEWNEIGH = 0x1c
+ RTM_NEWNEIGHTBL = 0x40
+ RTM_NEWNETCONF = 0x50
+ RTM_NEWNSID = 0x58
+ RTM_NEWPREFIX = 0x34
+ RTM_NEWQDISC = 0x24
+ RTM_NEWROUTE = 0x18
+ RTM_NEWRULE = 0x20
+ RTM_NEWTCLASS = 0x28
+ RTM_NEWTFILTER = 0x2c
+ RTM_NR_FAMILIES = 0x13
+ RTM_NR_MSGTYPES = 0x4c
+ RTM_SETDCB = 0x4f
+ RTM_SETLINK = 0x13
+ RTM_SETNEIGHTBL = 0x43
+ RTNH_ALIGNTO = 0x4
+ RTNH_COMPARE_MASK = 0x11
+ RTNH_F_DEAD = 0x1
+ RTNH_F_LINKDOWN = 0x10
+ RTNH_F_OFFLOAD = 0x8
+ RTNH_F_ONLINK = 0x4
+ RTNH_F_PERVASIVE = 0x2
+ RTN_MAX = 0xb
+ RTPROT_BABEL = 0x2a
+ RTPROT_BIRD = 0xc
+ RTPROT_BOOT = 0x3
+ RTPROT_DHCP = 0x10
+ RTPROT_DNROUTED = 0xd
+ RTPROT_GATED = 0x8
+ RTPROT_KERNEL = 0x2
+ RTPROT_MROUTED = 0x11
+ RTPROT_MRT = 0xa
+ RTPROT_NTK = 0xf
+ RTPROT_RA = 0x9
+ RTPROT_REDIRECT = 0x1
+ RTPROT_STATIC = 0x4
+ RTPROT_UNSPEC = 0x0
+ RTPROT_XORP = 0xe
+ RTPROT_ZEBRA = 0xb
+ RT_CLASS_DEFAULT = 0xfd
+ RT_CLASS_LOCAL = 0xff
+ RT_CLASS_MAIN = 0xfe
+ RT_CLASS_MAX = 0xff
+ RT_CLASS_UNSPEC = 0x0
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_CREDENTIALS = 0x2
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x1d
+ SCM_TIMESTAMPING = 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_BPF = 0x32
+ 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_BPF = 0x1b
+ SO_DETACH_FILTER = 0x1b
+ SO_DOMAIN = 0x27
+ SO_DONTROUTE = 0x5
+ SO_ERROR = 0x4
+ SO_GET_FILTER = 0x1a
+ SO_INCOMING_CPU = 0x31
+ SO_KEEPALIVE = 0x9
+ SO_LINGER = 0xd
+ SO_LOCK_FILTER = 0x2c
+ SO_MARK = 0x24
+ SO_MAX_PACING_RATE = 0x2f
+ SO_NOFCS = 0x2b
+ SO_NO_CHECK = 0xb
+ SO_OOBINLINE = 0xa
+ SO_PASSCRED = 0x10
+ SO_PASSSEC = 0x22
+ SO_PEEK_OFF = 0x2a
+ SO_PEERCRED = 0x11
+ SO_PEERNAME = 0x1c
+ SO_PEERSEC = 0x1f
+ SO_PRIORITY = 0xc
+ SO_PROTOCOL = 0x26
+ SO_RCVBUF = 0x8
+ SO_RCVBUFFORCE = 0x21
+ SO_RCVLOWAT = 0x12
+ SO_RCVTIMEO = 0x14
+ SO_REUSEADDR = 0x2
+ SO_REUSEPORT = 0xf
+ SO_RXQ_OVFL = 0x28
+ SO_SECURITY_AUTHENTICATION = 0x16
+ SO_SECURITY_ENCRYPTION_NETWORK = 0x18
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17
+ SO_SELECT_ERR_QUEUE = 0x2d
+ SO_SNDBUF = 0x7
+ SO_SNDBUFFORCE = 0x20
+ SO_SNDLOWAT = 0x13
+ SO_SNDTIMEO = 0x15
+ SO_TIMESTAMP = 0x1d
+ SO_TIMESTAMPING = 0x25
+ SO_TIMESTAMPNS = 0x23
+ SO_TYPE = 0x3
+ SO_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
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x540b
+ TCGETA = 0x5405
+ TCGETS = 0x5401
+ TCGETS2 = 0x802c542a
+ TCGETX = 0x5432
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_CC_INFO = 0x1a
+ TCP_CONGESTION = 0xd
+ TCP_COOKIE_IN_ALWAYS = 0x1
+ TCP_COOKIE_MAX = 0x10
+ TCP_COOKIE_MIN = 0x8
+ TCP_COOKIE_OUT_NEVER = 0x2
+ TCP_COOKIE_PAIR_SIZE = 0x20
+ TCP_COOKIE_TRANSACTIONS = 0xf
+ TCP_CORK = 0x3
+ TCP_DEFER_ACCEPT = 0x9
+ TCP_FASTOPEN = 0x17
+ TCP_INFO = 0xb
+ TCP_KEEPCNT = 0x6
+ TCP_KEEPIDLE = 0x4
+ TCP_KEEPINTVL = 0x5
+ TCP_LINGER2 = 0x8
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0xe
+ TCP_MD5SIG_MAXKEYLEN = 0x50
+ TCP_MSS = 0x200
+ TCP_MSS_DEFAULT = 0x218
+ TCP_MSS_DESIRED = 0x4c4
+ TCP_NODELAY = 0x1
+ TCP_NOTSENT_LOWAT = 0x19
+ TCP_QUEUE_SEQ = 0x15
+ TCP_QUICKACK = 0xc
+ TCP_REPAIR = 0x13
+ TCP_REPAIR_OPTIONS = 0x16
+ TCP_REPAIR_QUEUE = 0x14
+ TCP_SAVED_SYN = 0x1c
+ TCP_SAVE_SYN = 0x1b
+ TCP_SYNCNT = 0x7
+ TCP_S_DATA_IN = 0x4
+ TCP_S_DATA_OUT = 0x8
+ TCP_THIN_DUPACK = 0x11
+ TCP_THIN_LINEAR_TIMEOUTS = 0x10
+ TCP_TIMESTAMP = 0x18
+ TCP_USER_TIMEOUT = 0x12
+ TCP_WINDOW_CLAMP = 0xa
+ TCSAFLUSH = 0x2
+ TCSBRK = 0x5409
+ TCSBRKP = 0x5425
+ TCSETA = 0x5406
+ TCSETAF = 0x5408
+ TCSETAW = 0x5407
+ TCSETS = 0x5402
+ TCSETS2 = 0x402c542b
+ TCSETSF = 0x5404
+ TCSETSF2 = 0x402c542d
+ TCSETSW = 0x5403
+ TCSETSW2 = 0x402c542c
+ TCSETX = 0x5433
+ TCSETXF = 0x5434
+ TCSETXW = 0x5435
+ TCXONC = 0x540a
+ TIOCCBRK = 0x5428
+ TIOCCONS = 0x541d
+ TIOCEXCL = 0x540c
+ TIOCGDEV = 0x80045432
+ TIOCGETD = 0x5424
+ TIOCGEXCL = 0x80045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x540f
+ TIOCGPKT = 0x80045438
+ TIOCGPTLCK = 0x80045439
+ TIOCGPTN = 0x80045430
+ TIOCGRS485 = 0x542e
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x5429
+ TIOCGSOFTCAR = 0x5419
+ TIOCGWINSZ = 0x5413
+ TIOCINQ = 0x541b
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x5417
+ TIOCMBIS = 0x5416
+ TIOCMGET = 0x5415
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x5418
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x5422
+ TIOCNXCL = 0x540d
+ TIOCOUTQ = 0x5411
+ TIOCPKT = 0x5420
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x5427
+ TIOCSCTTY = 0x540e
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x5423
+ TIOCSIG = 0x40045436
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x5410
+ TIOCSPTLCK = 0x40045431
+ TIOCSRS485 = 0x542f
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x541a
+ TIOCSTI = 0x5412
+ TIOCSWINSZ = 0x5414
+ TIOCVHANGUP = 0x5437
+ TOSTOP = 0x100
+ TUNATTACHFILTER = 0x401054d5
+ TUNDETACHFILTER = 0x401054d6
+ TUNGETFEATURES = 0x800454cf
+ TUNGETFILTER = 0x801054db
+ TUNGETIFF = 0x800454d2
+ TUNGETSNDBUF = 0x800454d3
+ TUNGETVNETBE = 0x800454df
+ TUNGETVNETHDRSZ = 0x800454d7
+ TUNGETVNETLE = 0x800454dd
+ TUNSETDEBUG = 0x400454c9
+ TUNSETGROUP = 0x400454ce
+ TUNSETIFF = 0x400454ca
+ TUNSETIFINDEX = 0x400454da
+ TUNSETLINK = 0x400454cd
+ TUNSETNOCSUM = 0x400454c8
+ TUNSETOFFLOAD = 0x400454d0
+ TUNSETOWNER = 0x400454cc
+ TUNSETPERSIST = 0x400454cb
+ TUNSETQUEUE = 0x400454d9
+ TUNSETSNDBUF = 0x400454d4
+ TUNSETTXFILTER = 0x400454d1
+ TUNSETVNETBE = 0x400454de
+ TUNSETVNETHDRSZ = 0x400454d8
+ TUNSETVNETLE = 0x400454dc
+ 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
+ XCASE = 0x4
+ XTABS = 0x1800
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x62)
+ EADDRNOTAVAIL = syscall.Errno(0x63)
+ EADV = syscall.Errno(0x44)
+ EAFNOSUPPORT = syscall.Errno(0x61)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x72)
+ EBADE = syscall.Errno(0x34)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x4d)
+ EBADMSG = syscall.Errno(0x4a)
+ EBADR = syscall.Errno(0x35)
+ EBADRQC = syscall.Errno(0x38)
+ EBADSLT = syscall.Errno(0x39)
+ EBFONT = syscall.Errno(0x3b)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7d)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x2c)
+ ECOMM = syscall.Errno(0x46)
+ ECONNABORTED = syscall.Errno(0x67)
+ ECONNREFUSED = syscall.Errno(0x6f)
+ ECONNRESET = syscall.Errno(0x68)
+ EDEADLK = syscall.Errno(0x23)
+ EDEADLOCK = syscall.Errno(0x23)
+ EDESTADDRREQ = syscall.Errno(0x59)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x49)
+ EDQUOT = syscall.Errno(0x7a)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x70)
+ EHOSTUNREACH = syscall.Errno(0x71)
+ EHWPOISON = syscall.Errno(0x85)
+ EIDRM = syscall.Errno(0x2b)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x73)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x6a)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x7f)
+ EKEYREJECTED = syscall.Errno(0x81)
+ EKEYREVOKED = syscall.Errno(0x80)
+ EL2HLT = syscall.Errno(0x33)
+ EL2NSYNC = syscall.Errno(0x2d)
+ EL3HLT = syscall.Errno(0x2e)
+ EL3RST = syscall.Errno(0x2f)
+ ELIBACC = syscall.Errno(0x4f)
+ ELIBBAD = syscall.Errno(0x50)
+ ELIBEXEC = syscall.Errno(0x53)
+ ELIBMAX = syscall.Errno(0x52)
+ ELIBSCN = syscall.Errno(0x51)
+ ELNRNG = syscall.Errno(0x30)
+ ELOOP = syscall.Errno(0x28)
+ EMEDIUMTYPE = syscall.Errno(0x7c)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x5a)
+ EMULTIHOP = syscall.Errno(0x48)
+ ENAMETOOLONG = syscall.Errno(0x24)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x64)
+ ENETRESET = syscall.Errno(0x66)
+ ENETUNREACH = syscall.Errno(0x65)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x37)
+ ENOBUFS = syscall.Errno(0x69)
+ ENOCSI = syscall.Errno(0x32)
+ ENODATA = syscall.Errno(0x3d)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x7e)
+ ENOLCK = syscall.Errno(0x25)
+ ENOLINK = syscall.Errno(0x43)
+ ENOMEDIUM = syscall.Errno(0x7b)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x2a)
+ ENONET = syscall.Errno(0x40)
+ ENOPKG = syscall.Errno(0x41)
+ ENOPROTOOPT = syscall.Errno(0x5c)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x3f)
+ ENOSTR = syscall.Errno(0x3c)
+ ENOSYS = syscall.Errno(0x26)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x6b)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x27)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x83)
+ ENOTSOCK = syscall.Errno(0x58)
+ ENOTSUP = syscall.Errno(0x5f)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x4c)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x5f)
+ EOVERFLOW = syscall.Errno(0x4b)
+ EOWNERDEAD = syscall.Errno(0x82)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x60)
+ EPIPE = syscall.Errno(0x20)
+ EPROTO = syscall.Errno(0x47)
+ EPROTONOSUPPORT = syscall.Errno(0x5d)
+ EPROTOTYPE = syscall.Errno(0x5b)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x4e)
+ EREMOTE = syscall.Errno(0x42)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x55)
+ ERFKILL = syscall.Errno(0x84)
+ EROFS = syscall.Errno(0x1e)
+ ESHUTDOWN = syscall.Errno(0x6c)
+ ESOCKTNOSUPPORT = syscall.Errno(0x5e)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x45)
+ ESTALE = syscall.Errno(0x74)
+ ESTRPIPE = syscall.Errno(0x56)
+ ETIME = syscall.Errno(0x3e)
+ ETIMEDOUT = syscall.Errno(0x6e)
+ ETOOMANYREFS = syscall.Errno(0x6d)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x31)
+ EUSERS = syscall.Errno(0x57)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x36)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0x7)
+ SIGCHLD = syscall.Signal(0x11)
+ SIGCLD = syscall.Signal(0x11)
+ SIGCONT = syscall.Signal(0x12)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x1d)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x1d)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1e)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTKFLT = syscall.Signal(0x10)
+ SIGSTOP = syscall.Signal(0x13)
+ SIGSYS = syscall.Signal(0x1f)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x14)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGUNUSED = syscall.Signal(0x1f)
+ SIGURG = syscall.Signal(0x17)
+ SIGUSR1 = syscall.Signal(0xa)
+ SIGUSR2 = syscall.Signal(0xc)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 35: "resource deadlock avoided",
+ 36: "file name too long",
+ 37: "no locks available",
+ 38: "function not implemented",
+ 39: "directory not empty",
+ 40: "too many levels of symbolic links",
+ 42: "no message of desired type",
+ 43: "identifier removed",
+ 44: "channel number out of range",
+ 45: "level 2 not synchronized",
+ 46: "level 3 halted",
+ 47: "level 3 reset",
+ 48: "link number out of range",
+ 49: "protocol driver not attached",
+ 50: "no CSI structure available",
+ 51: "level 2 halted",
+ 52: "invalid exchange",
+ 53: "invalid request descriptor",
+ 54: "exchange full",
+ 55: "no anode",
+ 56: "invalid request code",
+ 57: "invalid slot",
+ 59: "bad font file format",
+ 60: "device not a stream",
+ 61: "no data available",
+ 62: "timer expired",
+ 63: "out of streams resources",
+ 64: "machine is not on the network",
+ 65: "package not installed",
+ 66: "object is remote",
+ 67: "link has been severed",
+ 68: "advertise error",
+ 69: "srmount error",
+ 70: "communication error on send",
+ 71: "protocol error",
+ 72: "multihop attempted",
+ 73: "RFS specific error",
+ 74: "bad message",
+ 75: "value too large for defined data type",
+ 76: "name not unique on network",
+ 77: "file descriptor in bad state",
+ 78: "remote address changed",
+ 79: "can not access a needed shared library",
+ 80: "accessing a corrupted shared library",
+ 81: ".lib section in a.out corrupted",
+ 82: "attempting to link in too many shared libraries",
+ 83: "cannot exec a shared library directly",
+ 84: "invalid or incomplete multibyte or wide character",
+ 85: "interrupted system call should be restarted",
+ 86: "streams pipe error",
+ 87: "too many users",
+ 88: "socket operation on non-socket",
+ 89: "destination address required",
+ 90: "message too long",
+ 91: "protocol wrong type for socket",
+ 92: "protocol not available",
+ 93: "protocol not supported",
+ 94: "socket type not supported",
+ 95: "operation not supported",
+ 96: "protocol family not supported",
+ 97: "address family not supported by protocol",
+ 98: "address already in use",
+ 99: "cannot assign requested address",
+ 100: "network is down",
+ 101: "network is unreachable",
+ 102: "network dropped connection on reset",
+ 103: "software caused connection abort",
+ 104: "connection reset by peer",
+ 105: "no buffer space available",
+ 106: "transport endpoint is already connected",
+ 107: "transport endpoint is not connected",
+ 108: "cannot send after transport endpoint shutdown",
+ 109: "too many references: cannot splice",
+ 110: "connection timed out",
+ 111: "connection refused",
+ 112: "host is down",
+ 113: "no route to host",
+ 114: "operation already in progress",
+ 115: "operation now in progress",
+ 116: "stale file handle",
+ 117: "structure needs cleaning",
+ 118: "not a XENIX named type file",
+ 119: "no XENIX semaphores available",
+ 120: "is a named type file",
+ 121: "remote I/O error",
+ 122: "disk quota exceeded",
+ 123: "no medium found",
+ 124: "wrong medium type",
+ 125: "operation canceled",
+ 126: "required key not available",
+ 127: "key has expired",
+ 128: "key has been revoked",
+ 129: "key was rejected by service",
+ 130: "owner died",
+ 131: "state not recoverable",
+ 132: "operation not possible due to RF-kill",
+ 133: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "bus error",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "user defined signal 1",
+ 11: "segmentation fault",
+ 12: "user defined signal 2",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "stack fault",
+ 17: "child exited",
+ 18: "continued",
+ 19: "stopped (signal)",
+ 20: "stopped",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "urgent I/O condition",
+ 24: "CPU time limit exceeded",
+ 25: "file size limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window changed",
+ 29: "I/O possible",
+ 30: "power failure",
+ 31: "bad system call",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
new file mode 100644
index 000000000..766d1e612
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go
@@ -0,0 +1,2077 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build sparc64,linux
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_ALG = 0x26
+ AF_APPLETALK = 0x5
+ AF_ASH = 0x12
+ AF_ATMPVC = 0x8
+ AF_ATMSVC = 0x14
+ AF_AX25 = 0x3
+ AF_BLUETOOTH = 0x1f
+ AF_BRIDGE = 0x7
+ AF_CAIF = 0x25
+ AF_CAN = 0x1d
+ AF_DECnet = 0xc
+ AF_ECONET = 0x13
+ AF_FILE = 0x1
+ AF_IB = 0x1b
+ AF_IEEE802154 = 0x24
+ AF_INET = 0x2
+ AF_INET6 = 0xa
+ AF_IPX = 0x4
+ AF_IRDA = 0x17
+ AF_ISDN = 0x22
+ AF_IUCV = 0x20
+ AF_KCM = 0x29
+ AF_KEY = 0xf
+ AF_LLC = 0x1a
+ AF_LOCAL = 0x1
+ AF_MAX = 0x2a
+ AF_MPLS = 0x1c
+ AF_NETBEUI = 0xd
+ AF_NETLINK = 0x10
+ AF_NETROM = 0x6
+ AF_NFC = 0x27
+ AF_PACKET = 0x11
+ AF_PHONET = 0x23
+ AF_PPPOX = 0x18
+ AF_RDS = 0x15
+ AF_ROSE = 0xb
+ AF_ROUTE = 0x10
+ AF_RXRPC = 0x21
+ AF_SECURITY = 0xe
+ AF_SNA = 0x16
+ AF_TIPC = 0x1e
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ AF_VSOCK = 0x28
+ AF_WANPIPE = 0x19
+ AF_X25 = 0x9
+ ARPHRD_6LOWPAN = 0x339
+ ARPHRD_ADAPT = 0x108
+ ARPHRD_APPLETLK = 0x8
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ASH = 0x30d
+ ARPHRD_ATM = 0x13
+ ARPHRD_AX25 = 0x3
+ ARPHRD_BIF = 0x307
+ ARPHRD_CAIF = 0x336
+ ARPHRD_CAN = 0x118
+ ARPHRD_CHAOS = 0x5
+ ARPHRD_CISCO = 0x201
+ ARPHRD_CSLIP = 0x101
+ ARPHRD_CSLIP6 = 0x103
+ ARPHRD_DDCMP = 0x205
+ ARPHRD_DLCI = 0xf
+ ARPHRD_ECONET = 0x30e
+ ARPHRD_EETHER = 0x2
+ ARPHRD_ETHER = 0x1
+ ARPHRD_EUI64 = 0x1b
+ ARPHRD_FCAL = 0x311
+ ARPHRD_FCFABRIC = 0x313
+ ARPHRD_FCPL = 0x312
+ ARPHRD_FCPP = 0x310
+ ARPHRD_FDDI = 0x306
+ ARPHRD_FRAD = 0x302
+ ARPHRD_HDLC = 0x201
+ ARPHRD_HIPPI = 0x30c
+ ARPHRD_HWX25 = 0x110
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_IEEE80211 = 0x321
+ ARPHRD_IEEE80211_PRISM = 0x322
+ ARPHRD_IEEE80211_RADIOTAP = 0x323
+ ARPHRD_IEEE802154 = 0x324
+ ARPHRD_IEEE802154_MONITOR = 0x325
+ ARPHRD_IEEE802_TR = 0x320
+ ARPHRD_INFINIBAND = 0x20
+ ARPHRD_IP6GRE = 0x337
+ ARPHRD_IPDDP = 0x309
+ ARPHRD_IPGRE = 0x30a
+ ARPHRD_IRDA = 0x30f
+ ARPHRD_LAPB = 0x204
+ ARPHRD_LOCALTLK = 0x305
+ ARPHRD_LOOPBACK = 0x304
+ ARPHRD_METRICOM = 0x17
+ ARPHRD_NETLINK = 0x338
+ ARPHRD_NETROM = 0x0
+ ARPHRD_NONE = 0xfffe
+ ARPHRD_PHONET = 0x334
+ ARPHRD_PHONET_PIPE = 0x335
+ ARPHRD_PIMREG = 0x30b
+ ARPHRD_PPP = 0x200
+ ARPHRD_PRONET = 0x4
+ ARPHRD_RAWHDLC = 0x206
+ ARPHRD_ROSE = 0x10e
+ ARPHRD_RSRVD = 0x104
+ ARPHRD_SIT = 0x308
+ ARPHRD_SKIP = 0x303
+ ARPHRD_SLIP = 0x100
+ ARPHRD_SLIP6 = 0x102
+ ARPHRD_TUNNEL = 0x300
+ ARPHRD_TUNNEL6 = 0x301
+ ARPHRD_VOID = 0xffff
+ ARPHRD_X25 = 0x10f
+ ASI_LEON_DFLUSH = 0x11
+ ASI_LEON_IFLUSH = 0x10
+ ASI_LEON_MMUFLUSH = 0x18
+ B0 = 0x0
+ B1000000 = 0x100c
+ B110 = 0x3
+ B115200 = 0x1002
+ B1152000 = 0x100d
+ B1200 = 0x9
+ B134 = 0x4
+ B150 = 0x5
+ B1500000 = 0x100e
+ B153600 = 0x1006
+ B1800 = 0xa
+ B19200 = 0xe
+ B200 = 0x6
+ B2000000 = 0x100f
+ B230400 = 0x1003
+ B2400 = 0xb
+ B300 = 0x7
+ B307200 = 0x1007
+ B38400 = 0xf
+ B460800 = 0x1004
+ B4800 = 0xc
+ B50 = 0x1
+ B500000 = 0x100a
+ B57600 = 0x1001
+ B576000 = 0x100b
+ B600 = 0x8
+ B614400 = 0x1008
+ B75 = 0x2
+ B76800 = 0x1005
+ B921600 = 0x1009
+ B9600 = 0xd
+ BOTHER = 0x1000
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LL_OFF = -0x200000
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXINSNS = 0x1000
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MOD = 0x90
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_NET_OFF = -0x100000
+ BPF_OR = 0x40
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BPF_XOR = 0xa0
+ BRKINT = 0x2
+ BS0 = 0x0
+ BS1 = 0x2000
+ BSDLY = 0x2000
+ CBAUD = 0x100f
+ CBAUDEX = 0x1000
+ CFLUSH = 0xf
+ CIBAUD = 0x100f0000
+ CLOCAL = 0x800
+ CLOCK_BOOTTIME = 0x7
+ CLOCK_BOOTTIME_ALARM = 0x9
+ CLOCK_DEFAULT = 0x0
+ CLOCK_EXT = 0x1
+ CLOCK_INT = 0x2
+ CLOCK_MONOTONIC = 0x1
+ CLOCK_MONOTONIC_COARSE = 0x6
+ CLOCK_MONOTONIC_RAW = 0x4
+ CLOCK_PROCESS_CPUTIME_ID = 0x2
+ CLOCK_REALTIME = 0x0
+ CLOCK_REALTIME_ALARM = 0x8
+ CLOCK_REALTIME_COARSE = 0x5
+ CLOCK_TAI = 0xb
+ CLOCK_THREAD_CPUTIME_ID = 0x3
+ CLOCK_TXFROMRX = 0x4
+ CLOCK_TXINT = 0x3
+ CLONE_CHILD_CLEARTID = 0x200000
+ CLONE_CHILD_SETTID = 0x1000000
+ CLONE_DETACHED = 0x400000
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_IO = 0x80000000
+ CLONE_NEWCGROUP = 0x2000000
+ CLONE_NEWIPC = 0x8000000
+ CLONE_NEWNET = 0x40000000
+ CLONE_NEWNS = 0x20000
+ CLONE_NEWPID = 0x20000000
+ CLONE_NEWUSER = 0x10000000
+ CLONE_NEWUTS = 0x4000000
+ CLONE_PARENT = 0x8000
+ CLONE_PARENT_SETTID = 0x100000
+ CLONE_PTRACE = 0x2000
+ CLONE_SETTLS = 0x80000
+ CLONE_SIGHAND = 0x800
+ CLONE_SYSVSEM = 0x40000
+ CLONE_THREAD = 0x10000
+ CLONE_UNTRACED = 0x800000
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CMSPAR = 0x40000000
+ CR0 = 0x0
+ CR1 = 0x200
+ CR2 = 0x400
+ CR3 = 0x600
+ CRDLY = 0x600
+ CREAD = 0x80
+ CRTSCTS = 0x80000000
+ CS5 = 0x0
+ CS6 = 0x10
+ CS7 = 0x20
+ CS8 = 0x30
+ CSIGNAL = 0xff
+ CSIZE = 0x30
+ CSTART = 0x11
+ CSTATUS = 0x0
+ CSTOP = 0x13
+ CSTOPB = 0x40
+ CSUSP = 0x1a
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x200
+ ECHOE = 0x10
+ ECHOK = 0x20
+ ECHOKE = 0x800
+ ECHONL = 0x40
+ ECHOPRT = 0x400
+ EMT_TAGOVF = 0x1
+ ENCODING_DEFAULT = 0x0
+ ENCODING_FM_MARK = 0x3
+ ENCODING_FM_SPACE = 0x4
+ ENCODING_MANCHESTER = 0x5
+ ENCODING_NRZ = 0x1
+ ENCODING_NRZI = 0x2
+ EPOLLERR = 0x8
+ EPOLLET = 0x80000000
+ EPOLLEXCLUSIVE = 0x10000000
+ EPOLLHUP = 0x10
+ EPOLLIN = 0x1
+ EPOLLMSG = 0x400
+ EPOLLONESHOT = 0x40000000
+ EPOLLOUT = 0x4
+ EPOLLPRI = 0x2
+ EPOLLRDBAND = 0x80
+ EPOLLRDHUP = 0x2000
+ EPOLLRDNORM = 0x40
+ EPOLLWAKEUP = 0x20000000
+ EPOLLWRBAND = 0x200
+ EPOLLWRNORM = 0x100
+ EPOLL_CLOEXEC = 0x400000
+ EPOLL_CTL_ADD = 0x1
+ EPOLL_CTL_DEL = 0x2
+ EPOLL_CTL_MOD = 0x3
+ ETH_P_1588 = 0x88f7
+ ETH_P_8021AD = 0x88a8
+ ETH_P_8021AH = 0x88e7
+ ETH_P_8021Q = 0x8100
+ ETH_P_80221 = 0x8917
+ ETH_P_802_2 = 0x4
+ ETH_P_802_3 = 0x1
+ ETH_P_802_3_MIN = 0x600
+ ETH_P_802_EX1 = 0x88b5
+ ETH_P_AARP = 0x80f3
+ ETH_P_AF_IUCV = 0xfbfb
+ ETH_P_ALL = 0x3
+ ETH_P_AOE = 0x88a2
+ ETH_P_ARCNET = 0x1a
+ ETH_P_ARP = 0x806
+ ETH_P_ATALK = 0x809b
+ ETH_P_ATMFATE = 0x8884
+ ETH_P_ATMMPOA = 0x884c
+ ETH_P_AX25 = 0x2
+ ETH_P_BATMAN = 0x4305
+ ETH_P_BPQ = 0x8ff
+ ETH_P_CAIF = 0xf7
+ ETH_P_CAN = 0xc
+ ETH_P_CANFD = 0xd
+ ETH_P_CONTROL = 0x16
+ ETH_P_CUST = 0x6006
+ ETH_P_DDCMP = 0x6
+ ETH_P_DEC = 0x6000
+ ETH_P_DIAG = 0x6005
+ ETH_P_DNA_DL = 0x6001
+ ETH_P_DNA_RC = 0x6002
+ ETH_P_DNA_RT = 0x6003
+ ETH_P_DSA = 0x1b
+ ETH_P_ECONET = 0x18
+ ETH_P_EDSA = 0xdada
+ ETH_P_FCOE = 0x8906
+ ETH_P_FIP = 0x8914
+ ETH_P_HDLC = 0x19
+ ETH_P_HSR = 0x892f
+ ETH_P_IEEE802154 = 0xf6
+ ETH_P_IEEEPUP = 0xa00
+ ETH_P_IEEEPUPAT = 0xa01
+ ETH_P_IP = 0x800
+ ETH_P_IPV6 = 0x86dd
+ ETH_P_IPX = 0x8137
+ ETH_P_IRDA = 0x17
+ ETH_P_LAT = 0x6004
+ ETH_P_LINK_CTL = 0x886c
+ ETH_P_LOCALTALK = 0x9
+ ETH_P_LOOP = 0x60
+ ETH_P_LOOPBACK = 0x9000
+ ETH_P_MACSEC = 0x88e5
+ ETH_P_MOBITEX = 0x15
+ ETH_P_MPLS_MC = 0x8848
+ ETH_P_MPLS_UC = 0x8847
+ ETH_P_MVRP = 0x88f5
+ ETH_P_PAE = 0x888e
+ ETH_P_PAUSE = 0x8808
+ ETH_P_PHONET = 0xf5
+ ETH_P_PPPTALK = 0x10
+ ETH_P_PPP_DISC = 0x8863
+ ETH_P_PPP_MP = 0x8
+ ETH_P_PPP_SES = 0x8864
+ ETH_P_PRP = 0x88fb
+ ETH_P_PUP = 0x200
+ ETH_P_PUPAT = 0x201
+ ETH_P_QINQ1 = 0x9100
+ ETH_P_QINQ2 = 0x9200
+ ETH_P_QINQ3 = 0x9300
+ ETH_P_RARP = 0x8035
+ ETH_P_SCA = 0x6007
+ ETH_P_SLOW = 0x8809
+ ETH_P_SNAP = 0x5
+ ETH_P_TDLS = 0x890d
+ ETH_P_TEB = 0x6558
+ ETH_P_TIPC = 0x88ca
+ ETH_P_TRAILER = 0x1c
+ ETH_P_TR_802_2 = 0x11
+ ETH_P_TSN = 0x22f0
+ ETH_P_WAN_PPP = 0x7
+ ETH_P_WCCP = 0x883e
+ ETH_P_X25 = 0x805
+ ETH_P_XDSA = 0xf8
+ EXTA = 0xe
+ EXTB = 0xf
+ EXTPROC = 0x10000
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FF0 = 0x0
+ FF1 = 0x8000
+ FFDLY = 0x8000
+ FLUSHO = 0x2000
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0x406
+ F_EXLCK = 0x4
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLEASE = 0x401
+ F_GETLK = 0x7
+ F_GETLK64 = 0x7
+ F_GETOWN = 0x5
+ F_GETOWN_EX = 0x10
+ F_GETPIPE_SZ = 0x408
+ F_GETSIG = 0xb
+ F_LOCK = 0x1
+ F_NOTIFY = 0x402
+ F_OFD_GETLK = 0x24
+ F_OFD_SETLK = 0x25
+ F_OFD_SETLKW = 0x26
+ F_OK = 0x0
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLEASE = 0x400
+ F_SETLK = 0x8
+ F_SETLK64 = 0x8
+ F_SETLKW = 0x9
+ F_SETLKW64 = 0x9
+ F_SETOWN = 0x6
+ F_SETOWN_EX = 0xf
+ F_SETPIPE_SZ = 0x407
+ F_SETSIG = 0xa
+ F_SHLCK = 0x8
+ F_TEST = 0x3
+ F_TLOCK = 0x2
+ F_ULOCK = 0x0
+ F_UNLCK = 0x3
+ F_WRLCK = 0x2
+ HUPCL = 0x400
+ IBSHIFT = 0x10
+ ICANON = 0x2
+ ICMPV6_FILTER = 0x1
+ ICRNL = 0x100
+ IEXTEN = 0x8000
+ IFA_F_DADFAILED = 0x8
+ IFA_F_DEPRECATED = 0x20
+ IFA_F_HOMEADDRESS = 0x10
+ IFA_F_MANAGETEMPADDR = 0x100
+ IFA_F_MCAUTOJOIN = 0x400
+ IFA_F_NODAD = 0x2
+ IFA_F_NOPREFIXROUTE = 0x200
+ IFA_F_OPTIMISTIC = 0x4
+ IFA_F_PERMANENT = 0x80
+ IFA_F_SECONDARY = 0x1
+ IFA_F_STABLE_PRIVACY = 0x800
+ IFA_F_TEMPORARY = 0x1
+ IFA_F_TENTATIVE = 0x40
+ IFA_MAX = 0x8
+ IFF_ALLMULTI = 0x200
+ IFF_ATTACH_QUEUE = 0x200
+ IFF_AUTOMEDIA = 0x4000
+ IFF_BROADCAST = 0x2
+ IFF_DEBUG = 0x4
+ IFF_DETACH_QUEUE = 0x400
+ IFF_DORMANT = 0x20000
+ IFF_DYNAMIC = 0x8000
+ IFF_ECHO = 0x40000
+ IFF_LOOPBACK = 0x8
+ IFF_LOWER_UP = 0x10000
+ IFF_MASTER = 0x400
+ IFF_MULTICAST = 0x1000
+ IFF_MULTI_QUEUE = 0x100
+ IFF_NOARP = 0x80
+ IFF_NOFILTER = 0x1000
+ IFF_NOTRAILERS = 0x20
+ IFF_NO_PI = 0x1000
+ IFF_ONE_QUEUE = 0x2000
+ IFF_PERSIST = 0x800
+ IFF_POINTOPOINT = 0x10
+ IFF_PORTSEL = 0x2000
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SLAVE = 0x800
+ IFF_TAP = 0x2
+ IFF_TUN = 0x1
+ IFF_TUN_EXCL = 0x8000
+ IFF_UP = 0x1
+ IFF_VNET_HDR = 0x4000
+ IFF_VOLATILE = 0x70c5a
+ IFNAMSIZ = 0x10
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_ACCESS = 0x1
+ IN_ALL_EVENTS = 0xfff
+ IN_ATTRIB = 0x4
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLOEXEC = 0x400000
+ IN_CLOSE = 0x18
+ IN_CLOSE_NOWRITE = 0x10
+ IN_CLOSE_WRITE = 0x8
+ IN_CREATE = 0x100
+ IN_DELETE = 0x200
+ IN_DELETE_SELF = 0x400
+ IN_DONT_FOLLOW = 0x2000000
+ IN_EXCL_UNLINK = 0x4000000
+ IN_IGNORED = 0x8000
+ IN_ISDIR = 0x40000000
+ IN_LOOPBACKNET = 0x7f
+ IN_MASK_ADD = 0x20000000
+ IN_MODIFY = 0x2
+ IN_MOVE = 0xc0
+ IN_MOVED_FROM = 0x40
+ IN_MOVED_TO = 0x80
+ IN_MOVE_SELF = 0x800
+ IN_NONBLOCK = 0x4000
+ IN_ONESHOT = 0x80000000
+ IN_ONLYDIR = 0x1000000
+ IN_OPEN = 0x20
+ IN_Q_OVERFLOW = 0x4000
+ IN_UNMOUNT = 0x2000
+ IPPROTO_AH = 0x33
+ IPPROTO_BEETPH = 0x5e
+ IPPROTO_COMP = 0x6c
+ IPPROTO_DCCP = 0x21
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_ESP = 0x32
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MH = 0x87
+ IPPROTO_MPLS = 0x89
+ IPPROTO_MTP = 0x5c
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_SCTP = 0x84
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_UDPLITE = 0x88
+ IPV6_2292DSTOPTS = 0x4
+ IPV6_2292HOPLIMIT = 0x8
+ IPV6_2292HOPOPTS = 0x3
+ IPV6_2292PKTINFO = 0x2
+ IPV6_2292PKTOPTIONS = 0x6
+ IPV6_2292RTHDR = 0x5
+ IPV6_ADDRFORM = 0x1
+ IPV6_ADD_MEMBERSHIP = 0x14
+ IPV6_AUTHHDR = 0xa
+ IPV6_CHECKSUM = 0x7
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DROP_MEMBERSHIP = 0x15
+ IPV6_DSTOPTS = 0x3b
+ IPV6_HDRINCL = 0x24
+ IPV6_HOPLIMIT = 0x34
+ IPV6_HOPOPTS = 0x36
+ IPV6_IPSEC_POLICY = 0x22
+ IPV6_JOIN_ANYCAST = 0x1b
+ IPV6_JOIN_GROUP = 0x14
+ IPV6_LEAVE_ANYCAST = 0x1c
+ IPV6_LEAVE_GROUP = 0x15
+ IPV6_MTU = 0x18
+ IPV6_MTU_DISCOVER = 0x17
+ IPV6_MULTICAST_HOPS = 0x12
+ IPV6_MULTICAST_IF = 0x11
+ IPV6_MULTICAST_LOOP = 0x13
+ IPV6_NEXTHOP = 0x9
+ IPV6_PATHMTU = 0x3d
+ IPV6_PKTINFO = 0x32
+ IPV6_PMTUDISC_DO = 0x2
+ IPV6_PMTUDISC_DONT = 0x0
+ IPV6_PMTUDISC_INTERFACE = 0x4
+ IPV6_PMTUDISC_OMIT = 0x5
+ IPV6_PMTUDISC_PROBE = 0x3
+ IPV6_PMTUDISC_WANT = 0x1
+ IPV6_RECVDSTOPTS = 0x3a
+ IPV6_RECVERR = 0x19
+ IPV6_RECVHOPLIMIT = 0x33
+ IPV6_RECVHOPOPTS = 0x35
+ IPV6_RECVPATHMTU = 0x3c
+ IPV6_RECVPKTINFO = 0x31
+ IPV6_RECVRTHDR = 0x38
+ IPV6_RECVTCLASS = 0x42
+ IPV6_ROUTER_ALERT = 0x16
+ IPV6_RTHDR = 0x39
+ IPV6_RTHDRDSTOPTS = 0x37
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_RXDSTOPTS = 0x3b
+ IPV6_RXHOPOPTS = 0x36
+ IPV6_TCLASS = 0x43
+ IPV6_UNICAST_HOPS = 0x10
+ IPV6_V6ONLY = 0x1a
+ IPV6_XFRM_POLICY = 0x23
+ IP_ADD_MEMBERSHIP = 0x23
+ IP_ADD_SOURCE_MEMBERSHIP = 0x27
+ IP_BIND_ADDRESS_NO_PORT = 0x18
+ IP_BLOCK_SOURCE = 0x26
+ IP_CHECKSUM = 0x17
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0x24
+ IP_DROP_SOURCE_MEMBERSHIP = 0x28
+ IP_FREEBIND = 0xf
+ IP_HDRINCL = 0x3
+ IP_IPSEC_POLICY = 0x10
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINTTL = 0x15
+ IP_MSFILTER = 0x29
+ IP_MSS = 0x240
+ IP_MTU = 0xe
+ IP_MTU_DISCOVER = 0xa
+ IP_MULTICAST_ALL = 0x31
+ IP_MULTICAST_IF = 0x20
+ IP_MULTICAST_LOOP = 0x22
+ IP_MULTICAST_TTL = 0x21
+ IP_NODEFRAG = 0x16
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x4
+ IP_ORIGDSTADDR = 0x14
+ IP_PASSSEC = 0x12
+ IP_PKTINFO = 0x8
+ IP_PKTOPTIONS = 0x9
+ IP_PMTUDISC = 0xa
+ IP_PMTUDISC_DO = 0x2
+ IP_PMTUDISC_DONT = 0x0
+ IP_PMTUDISC_INTERFACE = 0x4
+ IP_PMTUDISC_OMIT = 0x5
+ IP_PMTUDISC_PROBE = 0x3
+ IP_PMTUDISC_WANT = 0x1
+ IP_RECVERR = 0xb
+ IP_RECVOPTS = 0x6
+ IP_RECVORIGDSTADDR = 0x14
+ IP_RECVRETOPTS = 0x7
+ IP_RECVTOS = 0xd
+ IP_RECVTTL = 0xc
+ IP_RETOPTS = 0x7
+ IP_RF = 0x8000
+ IP_ROUTER_ALERT = 0x5
+ IP_TOS = 0x1
+ IP_TRANSPARENT = 0x13
+ IP_TTL = 0x2
+ IP_UNBLOCK_SOURCE = 0x25
+ IP_UNICAST_IF = 0x32
+ IP_XFRM_POLICY = 0x11
+ ISIG = 0x1
+ ISTRIP = 0x20
+ IUCLC = 0x200
+ IUTF8 = 0x4000
+ IXANY = 0x800
+ IXOFF = 0x1000
+ IXON = 0x400
+ LINUX_REBOOT_CMD_CAD_OFF = 0x0
+ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef
+ LINUX_REBOOT_CMD_HALT = 0xcdef0123
+ LINUX_REBOOT_CMD_KEXEC = 0x45584543
+ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc
+ LINUX_REBOOT_CMD_RESTART = 0x1234567
+ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4
+ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2
+ LINUX_REBOOT_MAGIC1 = 0xfee1dead
+ LINUX_REBOOT_MAGIC2 = 0x28121969
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DODUMP = 0x11
+ MADV_DOFORK = 0xb
+ MADV_DONTDUMP = 0x10
+ MADV_DONTFORK = 0xa
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x8
+ MADV_HUGEPAGE = 0xe
+ MADV_HWPOISON = 0x64
+ MADV_MERGEABLE = 0xc
+ MADV_NOHUGEPAGE = 0xf
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_REMOVE = 0x9
+ MADV_SEQUENTIAL = 0x2
+ MADV_UNMERGEABLE = 0xd
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x20
+ MAP_ANONYMOUS = 0x20
+ MAP_DENYWRITE = 0x800
+ MAP_EXECUTABLE = 0x1000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_GROWSDOWN = 0x200
+ MAP_HUGETLB = 0x40000
+ MAP_HUGE_MASK = 0x3f
+ MAP_HUGE_SHIFT = 0x1a
+ MAP_LOCKED = 0x100
+ MAP_NONBLOCK = 0x10000
+ MAP_NORESERVE = 0x40
+ MAP_POPULATE = 0x8000
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x20000
+ MAP_TYPE = 0xf
+ MCL_CURRENT = 0x2000
+ MCL_FUTURE = 0x4000
+ MCL_ONFAULT = 0x8000
+ MNT_DETACH = 0x2
+ MNT_EXPIRE = 0x4
+ MNT_FORCE = 0x1
+ MSG_BATCH = 0x40000
+ MSG_CMSG_CLOEXEC = 0x40000000
+ MSG_CONFIRM = 0x800
+ MSG_CTRUNC = 0x8
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x40
+ MSG_EOR = 0x80
+ MSG_ERRQUEUE = 0x2000
+ MSG_FASTOPEN = 0x20000000
+ MSG_FIN = 0x200
+ MSG_MORE = 0x8000
+ MSG_NOSIGNAL = 0x4000
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_PROXY = 0x10
+ MSG_RST = 0x1000
+ MSG_SYN = 0x400
+ MSG_TRUNC = 0x20
+ MSG_TRYHARD = 0x4
+ MSG_WAITALL = 0x100
+ MSG_WAITFORONE = 0x10000
+ MS_ACTIVE = 0x40000000
+ MS_ASYNC = 0x1
+ MS_BIND = 0x1000
+ MS_DIRSYNC = 0x80
+ MS_INVALIDATE = 0x2
+ MS_I_VERSION = 0x800000
+ MS_KERNMOUNT = 0x400000
+ MS_LAZYTIME = 0x2000000
+ MS_MANDLOCK = 0x40
+ MS_MGC_MSK = 0xffff0000
+ MS_MGC_VAL = 0xc0ed0000
+ MS_MOVE = 0x2000
+ MS_NOATIME = 0x400
+ MS_NODEV = 0x4
+ MS_NODIRATIME = 0x800
+ MS_NOEXEC = 0x8
+ MS_NOSUID = 0x2
+ MS_NOUSER = -0x80000000
+ MS_POSIXACL = 0x10000
+ MS_PRIVATE = 0x40000
+ MS_RDONLY = 0x1
+ MS_REC = 0x4000
+ MS_RELATIME = 0x200000
+ MS_REMOUNT = 0x20
+ MS_RMT_MASK = 0x2800051
+ MS_SHARED = 0x100000
+ MS_SILENT = 0x8000
+ MS_SLAVE = 0x80000
+ MS_STRICTATIME = 0x1000000
+ MS_SYNC = 0x4
+ MS_SYNCHRONOUS = 0x10
+ MS_UNBINDABLE = 0x20000
+ NAME_MAX = 0xff
+ NETLINK_ADD_MEMBERSHIP = 0x1
+ NETLINK_AUDIT = 0x9
+ NETLINK_BROADCAST_ERROR = 0x4
+ NETLINK_CAP_ACK = 0xa
+ NETLINK_CONNECTOR = 0xb
+ NETLINK_CRYPTO = 0x15
+ NETLINK_DNRTMSG = 0xe
+ NETLINK_DROP_MEMBERSHIP = 0x2
+ NETLINK_ECRYPTFS = 0x13
+ NETLINK_FIB_LOOKUP = 0xa
+ NETLINK_FIREWALL = 0x3
+ NETLINK_GENERIC = 0x10
+ NETLINK_INET_DIAG = 0x4
+ NETLINK_IP6_FW = 0xd
+ NETLINK_ISCSI = 0x8
+ NETLINK_KOBJECT_UEVENT = 0xf
+ NETLINK_LISTEN_ALL_NSID = 0x8
+ NETLINK_LIST_MEMBERSHIPS = 0x9
+ NETLINK_NETFILTER = 0xc
+ NETLINK_NFLOG = 0x5
+ NETLINK_NO_ENOBUFS = 0x5
+ NETLINK_PKTINFO = 0x3
+ NETLINK_RDMA = 0x14
+ NETLINK_ROUTE = 0x0
+ NETLINK_RX_RING = 0x6
+ NETLINK_SCSITRANSPORT = 0x12
+ NETLINK_SELINUX = 0x7
+ NETLINK_SOCK_DIAG = 0x4
+ NETLINK_TX_RING = 0x7
+ NETLINK_UNUSED = 0x1
+ NETLINK_USERSOCK = 0x2
+ NETLINK_XFRM = 0x6
+ NL0 = 0x0
+ NL1 = 0x100
+ NLA_ALIGNTO = 0x4
+ NLA_F_NESTED = 0x8000
+ NLA_F_NET_BYTEORDER = 0x4000
+ NLA_HDRLEN = 0x4
+ NLDLY = 0x100
+ NLMSG_ALIGNTO = 0x4
+ NLMSG_DONE = 0x3
+ NLMSG_ERROR = 0x2
+ NLMSG_HDRLEN = 0x10
+ NLMSG_MIN_TYPE = 0x10
+ NLMSG_NOOP = 0x1
+ NLMSG_OVERRUN = 0x4
+ NLM_F_ACK = 0x4
+ NLM_F_APPEND = 0x800
+ NLM_F_ATOMIC = 0x400
+ NLM_F_CREATE = 0x400
+ NLM_F_DUMP = 0x300
+ NLM_F_DUMP_FILTERED = 0x20
+ NLM_F_DUMP_INTR = 0x10
+ NLM_F_ECHO = 0x8
+ NLM_F_EXCL = 0x200
+ NLM_F_MATCH = 0x200
+ NLM_F_MULTI = 0x2
+ NLM_F_REPLACE = 0x100
+ NLM_F_REQUEST = 0x1
+ NLM_F_ROOT = 0x100
+ NOFLSH = 0x80
+ OCRNL = 0x8
+ OFDEL = 0x80
+ OFILL = 0x40
+ OLCUC = 0x2
+ ONLCR = 0x4
+ ONLRET = 0x20
+ ONOCR = 0x10
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x400000
+ O_CREAT = 0x200
+ O_DIRECT = 0x100000
+ O_DIRECTORY = 0x10000
+ O_DSYNC = 0x2000
+ O_EXCL = 0x800
+ O_FSYNC = 0x802000
+ O_LARGEFILE = 0x0
+ O_NDELAY = 0x4004
+ O_NOATIME = 0x200000
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x20000
+ O_NONBLOCK = 0x4000
+ O_PATH = 0x1000000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x802000
+ O_SYNC = 0x802000
+ O_TMPFILE = 0x2010000
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PACKET_ADD_MEMBERSHIP = 0x1
+ PACKET_AUXDATA = 0x8
+ PACKET_BROADCAST = 0x1
+ PACKET_COPY_THRESH = 0x7
+ PACKET_DROP_MEMBERSHIP = 0x2
+ PACKET_FANOUT = 0x12
+ PACKET_FANOUT_CBPF = 0x6
+ PACKET_FANOUT_CPU = 0x2
+ PACKET_FANOUT_DATA = 0x16
+ PACKET_FANOUT_EBPF = 0x7
+ PACKET_FANOUT_FLAG_DEFRAG = 0x8000
+ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000
+ PACKET_FANOUT_HASH = 0x0
+ PACKET_FANOUT_LB = 0x1
+ PACKET_FANOUT_QM = 0x5
+ PACKET_FANOUT_RND = 0x4
+ PACKET_FANOUT_ROLLOVER = 0x3
+ PACKET_FASTROUTE = 0x6
+ PACKET_HDRLEN = 0xb
+ PACKET_HOST = 0x0
+ PACKET_KERNEL = 0x7
+ PACKET_LOOPBACK = 0x5
+ PACKET_LOSS = 0xe
+ PACKET_MR_ALLMULTI = 0x2
+ PACKET_MR_MULTICAST = 0x0
+ PACKET_MR_PROMISC = 0x1
+ PACKET_MR_UNICAST = 0x3
+ PACKET_MULTICAST = 0x2
+ PACKET_ORIGDEV = 0x9
+ PACKET_OTHERHOST = 0x3
+ PACKET_OUTGOING = 0x4
+ PACKET_QDISC_BYPASS = 0x14
+ PACKET_RECV_OUTPUT = 0x3
+ PACKET_RESERVE = 0xc
+ PACKET_ROLLOVER_STATS = 0x15
+ PACKET_RX_RING = 0x5
+ PACKET_STATISTICS = 0x6
+ PACKET_TIMESTAMP = 0x11
+ PACKET_TX_HAS_OFF = 0x13
+ PACKET_TX_RING = 0xd
+ PACKET_TX_TIMESTAMP = 0x10
+ PACKET_USER = 0x6
+ PACKET_VERSION = 0xa
+ PACKET_VNET_HDR = 0xf
+ PARENB = 0x100
+ PARITY_CRC16_PR0 = 0x2
+ PARITY_CRC16_PR0_CCITT = 0x4
+ PARITY_CRC16_PR1 = 0x3
+ PARITY_CRC16_PR1_CCITT = 0x5
+ PARITY_CRC32_PR0_CCITT = 0x6
+ PARITY_CRC32_PR1_CCITT = 0x7
+ PARITY_DEFAULT = 0x0
+ PARITY_NONE = 0x1
+ PARMRK = 0x8
+ PARODD = 0x200
+ PENDIN = 0x4000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_GROWSDOWN = 0x1000000
+ PROT_GROWSUP = 0x2000000
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PR_CAPBSET_DROP = 0x18
+ PR_CAPBSET_READ = 0x17
+ PR_CAP_AMBIENT = 0x2f
+ PR_CAP_AMBIENT_CLEAR_ALL = 0x4
+ PR_CAP_AMBIENT_IS_SET = 0x1
+ PR_CAP_AMBIENT_LOWER = 0x3
+ PR_CAP_AMBIENT_RAISE = 0x2
+ PR_ENDIAN_BIG = 0x0
+ PR_ENDIAN_LITTLE = 0x1
+ PR_ENDIAN_PPC_LITTLE = 0x2
+ PR_FPEMU_NOPRINT = 0x1
+ PR_FPEMU_SIGFPE = 0x2
+ PR_FP_EXC_ASYNC = 0x2
+ PR_FP_EXC_DISABLED = 0x0
+ PR_FP_EXC_DIV = 0x10000
+ PR_FP_EXC_INV = 0x100000
+ PR_FP_EXC_NONRECOV = 0x1
+ PR_FP_EXC_OVF = 0x20000
+ PR_FP_EXC_PRECISE = 0x3
+ PR_FP_EXC_RES = 0x80000
+ PR_FP_EXC_SW_ENABLE = 0x80
+ PR_FP_EXC_UND = 0x40000
+ PR_FP_MODE_FR = 0x1
+ PR_FP_MODE_FRE = 0x2
+ PR_GET_CHILD_SUBREAPER = 0x25
+ PR_GET_DUMPABLE = 0x3
+ PR_GET_ENDIAN = 0x13
+ PR_GET_FPEMU = 0x9
+ PR_GET_FPEXC = 0xb
+ PR_GET_FP_MODE = 0x2e
+ PR_GET_KEEPCAPS = 0x7
+ PR_GET_NAME = 0x10
+ PR_GET_NO_NEW_PRIVS = 0x27
+ PR_GET_PDEATHSIG = 0x2
+ PR_GET_SECCOMP = 0x15
+ PR_GET_SECUREBITS = 0x1b
+ PR_GET_THP_DISABLE = 0x2a
+ PR_GET_TID_ADDRESS = 0x28
+ PR_GET_TIMERSLACK = 0x1e
+ PR_GET_TIMING = 0xd
+ PR_GET_TSC = 0x19
+ PR_GET_UNALIGN = 0x5
+ PR_MCE_KILL = 0x21
+ PR_MCE_KILL_CLEAR = 0x0
+ PR_MCE_KILL_DEFAULT = 0x2
+ PR_MCE_KILL_EARLY = 0x1
+ PR_MCE_KILL_GET = 0x22
+ PR_MCE_KILL_LATE = 0x0
+ PR_MCE_KILL_SET = 0x1
+ PR_MPX_DISABLE_MANAGEMENT = 0x2c
+ PR_MPX_ENABLE_MANAGEMENT = 0x2b
+ PR_SET_CHILD_SUBREAPER = 0x24
+ PR_SET_DUMPABLE = 0x4
+ PR_SET_ENDIAN = 0x14
+ PR_SET_FPEMU = 0xa
+ PR_SET_FPEXC = 0xc
+ PR_SET_FP_MODE = 0x2d
+ PR_SET_KEEPCAPS = 0x8
+ PR_SET_MM = 0x23
+ PR_SET_MM_ARG_END = 0x9
+ PR_SET_MM_ARG_START = 0x8
+ PR_SET_MM_AUXV = 0xc
+ PR_SET_MM_BRK = 0x7
+ PR_SET_MM_END_CODE = 0x2
+ PR_SET_MM_END_DATA = 0x4
+ PR_SET_MM_ENV_END = 0xb
+ PR_SET_MM_ENV_START = 0xa
+ PR_SET_MM_EXE_FILE = 0xd
+ PR_SET_MM_MAP = 0xe
+ PR_SET_MM_MAP_SIZE = 0xf
+ PR_SET_MM_START_BRK = 0x6
+ PR_SET_MM_START_CODE = 0x1
+ PR_SET_MM_START_DATA = 0x3
+ PR_SET_MM_START_STACK = 0x5
+ PR_SET_NAME = 0xf
+ PR_SET_NO_NEW_PRIVS = 0x26
+ PR_SET_PDEATHSIG = 0x1
+ PR_SET_PTRACER = 0x59616d61
+ PR_SET_PTRACER_ANY = -0x1
+ PR_SET_SECCOMP = 0x16
+ PR_SET_SECUREBITS = 0x1c
+ PR_SET_THP_DISABLE = 0x29
+ PR_SET_TIMERSLACK = 0x1d
+ PR_SET_TIMING = 0xe
+ PR_SET_TSC = 0x1a
+ PR_SET_UNALIGN = 0x6
+ PR_TASK_PERF_EVENTS_DISABLE = 0x1f
+ PR_TASK_PERF_EVENTS_ENABLE = 0x20
+ PR_TIMING_STATISTICAL = 0x0
+ PR_TIMING_TIMESTAMP = 0x1
+ PR_TSC_ENABLE = 0x1
+ PR_TSC_SIGSEGV = 0x2
+ PR_UNALIGN_NOPRINT = 0x1
+ PR_UNALIGN_SIGBUS = 0x2
+ PTRACE_ATTACH = 0x10
+ PTRACE_CONT = 0x7
+ PTRACE_DETACH = 0x11
+ PTRACE_EVENT_CLONE = 0x3
+ PTRACE_EVENT_EXEC = 0x4
+ PTRACE_EVENT_EXIT = 0x6
+ PTRACE_EVENT_FORK = 0x1
+ PTRACE_EVENT_SECCOMP = 0x7
+ PTRACE_EVENT_STOP = 0x80
+ PTRACE_EVENT_VFORK = 0x2
+ PTRACE_EVENT_VFORK_DONE = 0x5
+ PTRACE_GETEVENTMSG = 0x4201
+ PTRACE_GETFPAREGS = 0x14
+ PTRACE_GETFPREGS = 0xe
+ PTRACE_GETFPREGS64 = 0x19
+ PTRACE_GETREGS = 0xc
+ PTRACE_GETREGS64 = 0x16
+ PTRACE_GETREGSET = 0x4204
+ PTRACE_GETSIGINFO = 0x4202
+ PTRACE_GETSIGMASK = 0x420a
+ PTRACE_INTERRUPT = 0x4207
+ PTRACE_KILL = 0x8
+ PTRACE_LISTEN = 0x4208
+ PTRACE_O_EXITKILL = 0x100000
+ PTRACE_O_MASK = 0x3000ff
+ PTRACE_O_SUSPEND_SECCOMP = 0x200000
+ PTRACE_O_TRACECLONE = 0x8
+ PTRACE_O_TRACEEXEC = 0x10
+ PTRACE_O_TRACEEXIT = 0x40
+ PTRACE_O_TRACEFORK = 0x2
+ PTRACE_O_TRACESECCOMP = 0x80
+ PTRACE_O_TRACESYSGOOD = 0x1
+ PTRACE_O_TRACEVFORK = 0x4
+ PTRACE_O_TRACEVFORKDONE = 0x20
+ PTRACE_PEEKDATA = 0x2
+ PTRACE_PEEKSIGINFO = 0x4209
+ PTRACE_PEEKSIGINFO_SHARED = 0x1
+ PTRACE_PEEKTEXT = 0x1
+ PTRACE_PEEKUSR = 0x3
+ PTRACE_POKEDATA = 0x5
+ PTRACE_POKETEXT = 0x4
+ PTRACE_POKEUSR = 0x6
+ PTRACE_READDATA = 0x10
+ PTRACE_READTEXT = 0x12
+ PTRACE_SECCOMP_GET_FILTER = 0x420c
+ PTRACE_SEIZE = 0x4206
+ PTRACE_SETFPAREGS = 0x15
+ PTRACE_SETFPREGS = 0xf
+ PTRACE_SETFPREGS64 = 0x1a
+ PTRACE_SETOPTIONS = 0x4200
+ PTRACE_SETREGS = 0xd
+ PTRACE_SETREGS64 = 0x17
+ PTRACE_SETREGSET = 0x4205
+ PTRACE_SETSIGINFO = 0x4203
+ PTRACE_SETSIGMASK = 0x420b
+ PTRACE_SINGLESTEP = 0x9
+ PTRACE_SPARC_DETACH = 0xb
+ PTRACE_SYSCALL = 0x18
+ PTRACE_TRACEME = 0x0
+ PTRACE_WRITEDATA = 0x11
+ PTRACE_WRITETEXT = 0x13
+ PT_FP = 0x48
+ PT_G0 = 0x10
+ PT_G1 = 0x14
+ PT_G2 = 0x18
+ PT_G3 = 0x1c
+ PT_G4 = 0x20
+ PT_G5 = 0x24
+ PT_G6 = 0x28
+ PT_G7 = 0x2c
+ PT_I0 = 0x30
+ PT_I1 = 0x34
+ PT_I2 = 0x38
+ PT_I3 = 0x3c
+ PT_I4 = 0x40
+ PT_I5 = 0x44
+ PT_I6 = 0x48
+ PT_I7 = 0x4c
+ PT_NPC = 0x8
+ PT_PC = 0x4
+ PT_PSR = 0x0
+ PT_REGS_MAGIC = 0x57ac6c00
+ PT_TNPC = 0x90
+ PT_TPC = 0x88
+ PT_TSTATE = 0x80
+ PT_V9_FP = 0x70
+ PT_V9_G0 = 0x0
+ PT_V9_G1 = 0x8
+ PT_V9_G2 = 0x10
+ PT_V9_G3 = 0x18
+ PT_V9_G4 = 0x20
+ PT_V9_G5 = 0x28
+ PT_V9_G6 = 0x30
+ PT_V9_G7 = 0x38
+ PT_V9_I0 = 0x40
+ PT_V9_I1 = 0x48
+ PT_V9_I2 = 0x50
+ PT_V9_I3 = 0x58
+ PT_V9_I4 = 0x60
+ PT_V9_I5 = 0x68
+ PT_V9_I6 = 0x70
+ PT_V9_I7 = 0x78
+ PT_V9_MAGIC = 0x9c
+ PT_V9_TNPC = 0x90
+ PT_V9_TPC = 0x88
+ PT_V9_TSTATE = 0x80
+ PT_V9_Y = 0x98
+ PT_WIM = 0x10
+ PT_Y = 0xc
+ RLIMIT_AS = 0x9
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x6
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = -0x1
+ RTAX_ADVMSS = 0x8
+ RTAX_CC_ALGO = 0x10
+ RTAX_CWND = 0x7
+ RTAX_FEATURES = 0xc
+ RTAX_FEATURE_ALLFRAG = 0x8
+ RTAX_FEATURE_ECN = 0x1
+ RTAX_FEATURE_MASK = 0xf
+ RTAX_FEATURE_SACK = 0x2
+ RTAX_FEATURE_TIMESTAMP = 0x4
+ RTAX_HOPLIMIT = 0xa
+ RTAX_INITCWND = 0xb
+ RTAX_INITRWND = 0xe
+ RTAX_LOCK = 0x1
+ RTAX_MAX = 0x10
+ RTAX_MTU = 0x2
+ RTAX_QUICKACK = 0xf
+ RTAX_REORDERING = 0x9
+ RTAX_RTO_MIN = 0xd
+ RTAX_RTT = 0x4
+ RTAX_RTTVAR = 0x5
+ RTAX_SSTHRESH = 0x6
+ RTAX_UNSPEC = 0x0
+ RTAX_WINDOW = 0x3
+ RTA_ALIGNTO = 0x4
+ RTA_MAX = 0x18
+ RTCF_DIRECTSRC = 0x4000000
+ RTCF_DOREDIRECT = 0x1000000
+ RTCF_LOG = 0x2000000
+ RTCF_MASQ = 0x400000
+ RTCF_NAT = 0x800000
+ RTCF_VALVE = 0x200000
+ RTF_ADDRCLASSMASK = 0xf8000000
+ RTF_ADDRCONF = 0x40000
+ RTF_ALLONLINK = 0x20000
+ RTF_BROADCAST = 0x10000000
+ RTF_CACHE = 0x1000000
+ RTF_DEFAULT = 0x10000
+ RTF_DYNAMIC = 0x10
+ RTF_FLOW = 0x2000000
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_INTERFACE = 0x40000000
+ RTF_IRTT = 0x100
+ RTF_LINKRT = 0x100000
+ RTF_LOCAL = 0x80000000
+ RTF_MODIFIED = 0x20
+ RTF_MSS = 0x40
+ RTF_MTU = 0x40
+ RTF_MULTICAST = 0x20000000
+ RTF_NAT = 0x8000000
+ RTF_NOFORWARD = 0x1000
+ RTF_NONEXTHOP = 0x200000
+ RTF_NOPMTUDISC = 0x4000
+ RTF_POLICY = 0x4000000
+ RTF_REINSTATE = 0x8
+ RTF_REJECT = 0x200
+ RTF_STATIC = 0x400
+ RTF_THROW = 0x2000
+ RTF_UP = 0x1
+ RTF_WINDOW = 0x80
+ RTF_XRESOLVE = 0x800
+ RTM_BASE = 0x10
+ RTM_DELACTION = 0x31
+ RTM_DELADDR = 0x15
+ RTM_DELADDRLABEL = 0x49
+ RTM_DELLINK = 0x11
+ RTM_DELMDB = 0x55
+ RTM_DELNEIGH = 0x1d
+ RTM_DELNSID = 0x59
+ RTM_DELQDISC = 0x25
+ RTM_DELROUTE = 0x19
+ RTM_DELRULE = 0x21
+ RTM_DELTCLASS = 0x29
+ RTM_DELTFILTER = 0x2d
+ RTM_F_CLONED = 0x200
+ RTM_F_EQUALIZE = 0x400
+ RTM_F_LOOKUP_TABLE = 0x1000
+ RTM_F_NOTIFY = 0x100
+ RTM_F_PREFIX = 0x800
+ RTM_GETACTION = 0x32
+ RTM_GETADDR = 0x16
+ RTM_GETADDRLABEL = 0x4a
+ RTM_GETANYCAST = 0x3e
+ RTM_GETDCB = 0x4e
+ RTM_GETLINK = 0x12
+ RTM_GETMDB = 0x56
+ RTM_GETMULTICAST = 0x3a
+ RTM_GETNEIGH = 0x1e
+ RTM_GETNEIGHTBL = 0x42
+ RTM_GETNETCONF = 0x52
+ RTM_GETNSID = 0x5a
+ RTM_GETQDISC = 0x26
+ RTM_GETROUTE = 0x1a
+ RTM_GETRULE = 0x22
+ RTM_GETSTATS = 0x5e
+ RTM_GETTCLASS = 0x2a
+ RTM_GETTFILTER = 0x2e
+ RTM_MAX = 0x5f
+ RTM_NEWACTION = 0x30
+ RTM_NEWADDR = 0x14
+ RTM_NEWADDRLABEL = 0x48
+ RTM_NEWLINK = 0x10
+ RTM_NEWMDB = 0x54
+ RTM_NEWNDUSEROPT = 0x44
+ RTM_NEWNEIGH = 0x1c
+ RTM_NEWNEIGHTBL = 0x40
+ RTM_NEWNETCONF = 0x50
+ RTM_NEWNSID = 0x58
+ RTM_NEWPREFIX = 0x34
+ RTM_NEWQDISC = 0x24
+ RTM_NEWROUTE = 0x18
+ RTM_NEWRULE = 0x20
+ RTM_NEWSTATS = 0x5c
+ RTM_NEWTCLASS = 0x28
+ RTM_NEWTFILTER = 0x2c
+ RTM_NR_FAMILIES = 0x14
+ RTM_NR_MSGTYPES = 0x50
+ RTM_SETDCB = 0x4f
+ RTM_SETLINK = 0x13
+ RTM_SETNEIGHTBL = 0x43
+ RTNH_ALIGNTO = 0x4
+ RTNH_COMPARE_MASK = 0x11
+ RTNH_F_DEAD = 0x1
+ RTNH_F_LINKDOWN = 0x10
+ RTNH_F_OFFLOAD = 0x8
+ RTNH_F_ONLINK = 0x4
+ RTNH_F_PERVASIVE = 0x2
+ RTN_MAX = 0xb
+ RTPROT_BABEL = 0x2a
+ RTPROT_BIRD = 0xc
+ RTPROT_BOOT = 0x3
+ RTPROT_DHCP = 0x10
+ RTPROT_DNROUTED = 0xd
+ RTPROT_GATED = 0x8
+ RTPROT_KERNEL = 0x2
+ RTPROT_MROUTED = 0x11
+ RTPROT_MRT = 0xa
+ RTPROT_NTK = 0xf
+ RTPROT_RA = 0x9
+ RTPROT_REDIRECT = 0x1
+ RTPROT_STATIC = 0x4
+ RTPROT_UNSPEC = 0x0
+ RTPROT_XORP = 0xe
+ RTPROT_ZEBRA = 0xb
+ RT_CLASS_DEFAULT = 0xfd
+ RT_CLASS_LOCAL = 0xff
+ RT_CLASS_MAIN = 0xfe
+ RT_CLASS_MAX = 0xff
+ RT_CLASS_UNSPEC = 0x0
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_CREDENTIALS = 0x2
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x1d
+ SCM_TIMESTAMPING = 0x23
+ SCM_TIMESTAMPNS = 0x21
+ SCM_WIFI_STATUS = 0x25
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDDLCI = 0x8980
+ SIOCADDMULTI = 0x8931
+ SIOCADDRT = 0x890b
+ SIOCATMARK = 0x8905
+ SIOCBONDCHANGEACTIVE = 0x8995
+ SIOCBONDENSLAVE = 0x8990
+ SIOCBONDINFOQUERY = 0x8994
+ SIOCBONDRELEASE = 0x8991
+ SIOCBONDSETHWADDR = 0x8992
+ SIOCBONDSLAVEINFOQUERY = 0x8993
+ SIOCBRADDBR = 0x89a0
+ SIOCBRADDIF = 0x89a2
+ SIOCBRDELBR = 0x89a1
+ SIOCBRDELIF = 0x89a3
+ SIOCDARP = 0x8953
+ SIOCDELDLCI = 0x8981
+ SIOCDELMULTI = 0x8932
+ SIOCDELRT = 0x890c
+ SIOCDEVPRIVATE = 0x89f0
+ SIOCDIFADDR = 0x8936
+ SIOCDRARP = 0x8960
+ SIOCETHTOOL = 0x8946
+ SIOCGARP = 0x8954
+ SIOCGHWTSTAMP = 0x89b1
+ SIOCGIFADDR = 0x8915
+ SIOCGIFBR = 0x8940
+ SIOCGIFBRDADDR = 0x8919
+ SIOCGIFCONF = 0x8912
+ SIOCGIFCOUNT = 0x8938
+ SIOCGIFDSTADDR = 0x8917
+ SIOCGIFENCAP = 0x8925
+ SIOCGIFFLAGS = 0x8913
+ SIOCGIFHWADDR = 0x8927
+ SIOCGIFINDEX = 0x8933
+ SIOCGIFMAP = 0x8970
+ SIOCGIFMEM = 0x891f
+ SIOCGIFMETRIC = 0x891d
+ SIOCGIFMTU = 0x8921
+ SIOCGIFNAME = 0x8910
+ SIOCGIFNETMASK = 0x891b
+ SIOCGIFPFLAGS = 0x8935
+ SIOCGIFSLAVE = 0x8929
+ SIOCGIFTXQLEN = 0x8942
+ SIOCGIFVLAN = 0x8982
+ SIOCGMIIPHY = 0x8947
+ SIOCGMIIREG = 0x8948
+ SIOCGPGRP = 0x8904
+ SIOCGRARP = 0x8961
+ SIOCGSTAMP = 0x8906
+ SIOCGSTAMPNS = 0x8907
+ SIOCINQ = 0x4004667f
+ SIOCOUTQ = 0x40047473
+ SIOCOUTQNSD = 0x894b
+ SIOCPROTOPRIVATE = 0x89e0
+ SIOCRTMSG = 0x890d
+ SIOCSARP = 0x8955
+ SIOCSHWTSTAMP = 0x89b0
+ SIOCSIFADDR = 0x8916
+ SIOCSIFBR = 0x8941
+ SIOCSIFBRDADDR = 0x891a
+ SIOCSIFDSTADDR = 0x8918
+ SIOCSIFENCAP = 0x8926
+ SIOCSIFFLAGS = 0x8914
+ SIOCSIFHWADDR = 0x8924
+ SIOCSIFHWBROADCAST = 0x8937
+ SIOCSIFLINK = 0x8911
+ SIOCSIFMAP = 0x8971
+ SIOCSIFMEM = 0x8920
+ SIOCSIFMETRIC = 0x891e
+ SIOCSIFMTU = 0x8922
+ SIOCSIFNAME = 0x8923
+ SIOCSIFNETMASK = 0x891c
+ SIOCSIFPFLAGS = 0x8934
+ SIOCSIFSLAVE = 0x8930
+ SIOCSIFTXQLEN = 0x8943
+ SIOCSIFVLAN = 0x8983
+ SIOCSMIIREG = 0x8949
+ SIOCSPGRP = 0x8902
+ SIOCSRARP = 0x8962
+ SIOCWANDEV = 0x894a
+ SOCK_CLOEXEC = 0x400000
+ SOCK_DCCP = 0x6
+ SOCK_DGRAM = 0x2
+ SOCK_NONBLOCK = 0x4000
+ SOCK_PACKET = 0xa
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_AAL = 0x109
+ SOL_ALG = 0x117
+ SOL_ATM = 0x108
+ SOL_CAIF = 0x116
+ SOL_DCCP = 0x10d
+ SOL_DECNET = 0x105
+ SOL_ICMPV6 = 0x3a
+ SOL_IP = 0x0
+ SOL_IPV6 = 0x29
+ SOL_IRDA = 0x10a
+ SOL_IUCV = 0x115
+ SOL_KCM = 0x119
+ SOL_LLC = 0x10c
+ SOL_NETBEUI = 0x10b
+ SOL_NETLINK = 0x10e
+ SOL_NFC = 0x118
+ SOL_PACKET = 0x107
+ SOL_PNPIPE = 0x113
+ SOL_PPPOL2TP = 0x111
+ SOL_RAW = 0xff
+ SOL_RDS = 0x114
+ SOL_RXRPC = 0x110
+ SOL_SOCKET = 0xffff
+ SOL_TCP = 0x6
+ SOL_TIPC = 0x10f
+ SOL_X25 = 0x106
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x8000
+ SO_ATTACH_BPF = 0x34
+ SO_ATTACH_FILTER = 0x1a
+ SO_ATTACH_REUSEPORT_CBPF = 0x35
+ SO_ATTACH_REUSEPORT_EBPF = 0x36
+ SO_BINDTODEVICE = 0xd
+ SO_BPF_EXTENSIONS = 0x32
+ SO_BROADCAST = 0x20
+ SO_BSDCOMPAT = 0x400
+ SO_BUSY_POLL = 0x30
+ SO_CNX_ADVICE = 0x37
+ SO_DEBUG = 0x1
+ SO_DETACH_BPF = 0x1b
+ SO_DETACH_FILTER = 0x1b
+ SO_DOMAIN = 0x1029
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_GET_FILTER = 0x1a
+ SO_INCOMING_CPU = 0x33
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_LOCK_FILTER = 0x28
+ SO_MARK = 0x22
+ SO_MAX_PACING_RATE = 0x31
+ SO_NOFCS = 0x27
+ SO_NO_CHECK = 0xb
+ SO_OOBINLINE = 0x100
+ SO_PASSCRED = 0x2
+ SO_PASSSEC = 0x1f
+ SO_PEEK_OFF = 0x26
+ SO_PEERCRED = 0x40
+ SO_PEERNAME = 0x1c
+ SO_PEERSEC = 0x1e
+ SO_PRIORITY = 0xc
+ SO_PROTOCOL = 0x1028
+ SO_RCVBUF = 0x1002
+ SO_RCVBUFFORCE = 0x100b
+ SO_RCVLOWAT = 0x800
+ SO_RCVTIMEO = 0x2000
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RXQ_OVFL = 0x24
+ SO_SECURITY_AUTHENTICATION = 0x5001
+ SO_SECURITY_ENCRYPTION_NETWORK = 0x5004
+ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002
+ SO_SELECT_ERR_QUEUE = 0x29
+ SO_SNDBUF = 0x1001
+ SO_SNDBUFFORCE = 0x100a
+ SO_SNDLOWAT = 0x1000
+ SO_SNDTIMEO = 0x4000
+ SO_TIMESTAMP = 0x1d
+ SO_TIMESTAMPING = 0x23
+ SO_TIMESTAMPNS = 0x21
+ SO_TYPE = 0x1008
+ SO_WIFI_STATUS = 0x25
+ S_BLKSIZE = 0x200
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
+ TAB0 = 0x0
+ TAB1 = 0x800
+ TAB2 = 0x1000
+ TAB3 = 0x1800
+ TABDLY = 0x1800
+ TCFLSH = 0x20005407
+ TCGETA = 0x40125401
+ TCGETS = 0x40245408
+ TCGETS2 = 0x402c540c
+ TCIFLUSH = 0x0
+ TCIOFF = 0x2
+ TCIOFLUSH = 0x2
+ TCION = 0x3
+ TCOFLUSH = 0x1
+ TCOOFF = 0x0
+ TCOON = 0x1
+ TCP_CC_INFO = 0x1a
+ TCP_CONGESTION = 0xd
+ TCP_COOKIE_IN_ALWAYS = 0x1
+ TCP_COOKIE_MAX = 0x10
+ TCP_COOKIE_MIN = 0x8
+ TCP_COOKIE_OUT_NEVER = 0x2
+ TCP_COOKIE_PAIR_SIZE = 0x20
+ TCP_COOKIE_TRANSACTIONS = 0xf
+ TCP_CORK = 0x3
+ TCP_DEFER_ACCEPT = 0x9
+ TCP_FASTOPEN = 0x17
+ TCP_INFO = 0xb
+ TCP_KEEPCNT = 0x6
+ TCP_KEEPIDLE = 0x4
+ TCP_KEEPINTVL = 0x5
+ TCP_LINGER2 = 0x8
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0xe
+ TCP_MD5SIG_MAXKEYLEN = 0x50
+ TCP_MSS = 0x200
+ TCP_MSS_DEFAULT = 0x218
+ TCP_MSS_DESIRED = 0x4c4
+ TCP_NODELAY = 0x1
+ TCP_NOTSENT_LOWAT = 0x19
+ TCP_QUEUE_SEQ = 0x15
+ TCP_QUICKACK = 0xc
+ TCP_REPAIR = 0x13
+ TCP_REPAIR_OPTIONS = 0x16
+ TCP_REPAIR_QUEUE = 0x14
+ TCP_SAVED_SYN = 0x1c
+ TCP_SAVE_SYN = 0x1b
+ TCP_SYNCNT = 0x7
+ TCP_S_DATA_IN = 0x4
+ TCP_S_DATA_OUT = 0x8
+ TCP_THIN_DUPACK = 0x11
+ TCP_THIN_LINEAR_TIMEOUTS = 0x10
+ TCP_TIMESTAMP = 0x18
+ TCP_USER_TIMEOUT = 0x12
+ TCP_WINDOW_CLAMP = 0xa
+ TCSAFLUSH = 0x2
+ TCSBRK = 0x20005405
+ TCSBRKP = 0x5425
+ TCSETA = 0x80125402
+ TCSETAF = 0x80125404
+ TCSETAW = 0x80125403
+ TCSETS = 0x80245409
+ TCSETS2 = 0x802c540d
+ TCSETSF = 0x8024540b
+ TCSETSF2 = 0x802c540f
+ TCSETSW = 0x8024540a
+ TCSETSW2 = 0x802c540e
+ TCXONC = 0x20005406
+ TIOCCBRK = 0x2000747a
+ TIOCCONS = 0x20007424
+ TIOCEXCL = 0x2000740d
+ TIOCGDEV = 0x40045432
+ TIOCGETD = 0x40047400
+ TIOCGEXCL = 0x40045440
+ TIOCGICOUNT = 0x545d
+ TIOCGLCKTRMIOS = 0x5456
+ TIOCGPGRP = 0x40047483
+ TIOCGPKT = 0x40045438
+ TIOCGPTLCK = 0x40045439
+ TIOCGPTN = 0x40047486
+ TIOCGRS485 = 0x40205441
+ TIOCGSERIAL = 0x541e
+ TIOCGSID = 0x40047485
+ TIOCGSOFTCAR = 0x40047464
+ TIOCGWINSZ = 0x40087468
+ TIOCINQ = 0x4004667f
+ TIOCLINUX = 0x541c
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMIWAIT = 0x545c
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_LOOP = 0x8000
+ TIOCM_OUT1 = 0x2000
+ TIOCM_OUT2 = 0x4000
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007484
+ TIOCSERCONFIG = 0x5453
+ TIOCSERGETLSR = 0x5459
+ TIOCSERGETMULTI = 0x545a
+ TIOCSERGSTRUCT = 0x5458
+ TIOCSERGWILD = 0x5454
+ TIOCSERSETMULTI = 0x545b
+ TIOCSERSWILD = 0x5455
+ TIOCSER_TEMT = 0x1
+ TIOCSETD = 0x80047401
+ TIOCSIG = 0x80047488
+ TIOCSLCKTRMIOS = 0x5457
+ TIOCSPGRP = 0x80047482
+ TIOCSPTLCK = 0x80047487
+ TIOCSRS485 = 0xc0205442
+ TIOCSSERIAL = 0x541f
+ TIOCSSOFTCAR = 0x80047465
+ TIOCSTART = 0x2000746e
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCVHANGUP = 0x20005437
+ TOSTOP = 0x100
+ TUNATTACHFILTER = 0x801054d5
+ TUNDETACHFILTER = 0x801054d6
+ TUNGETFEATURES = 0x400454cf
+ TUNGETFILTER = 0x401054db
+ TUNGETIFF = 0x400454d2
+ TUNGETSNDBUF = 0x400454d3
+ TUNGETVNETBE = 0x400454df
+ TUNGETVNETHDRSZ = 0x400454d7
+ TUNGETVNETLE = 0x400454dd
+ TUNSETDEBUG = 0x800454c9
+ TUNSETGROUP = 0x800454ce
+ TUNSETIFF = 0x800454ca
+ TUNSETIFINDEX = 0x800454da
+ TUNSETLINK = 0x800454cd
+ TUNSETNOCSUM = 0x800454c8
+ TUNSETOFFLOAD = 0x800454d0
+ TUNSETOWNER = 0x800454cc
+ TUNSETPERSIST = 0x800454cb
+ TUNSETQUEUE = 0x800454d9
+ TUNSETSNDBUF = 0x800454d4
+ TUNSETTXFILTER = 0x800454d1
+ TUNSETVNETBE = 0x800454de
+ TUNSETVNETHDRSZ = 0x800454d8
+ TUNSETVNETLE = 0x800454dc
+ VDISCARD = 0xd
+ VDSUSP = 0xb
+ VEOF = 0x4
+ VEOL = 0x5
+ VEOL2 = 0x6
+ VERASE = 0x2
+ VINTR = 0x0
+ VKILL = 0x3
+ VLNEXT = 0xf
+ VMIN = 0x4
+ VQUIT = 0x1
+ VREPRINT = 0xc
+ VSTART = 0x8
+ VSTOP = 0x9
+ VSUSP = 0xa
+ VSWTC = 0x7
+ VT0 = 0x0
+ VT1 = 0x4000
+ VTDLY = 0x4000
+ VTIME = 0x5
+ VWERASE = 0xe
+ WALL = 0x40000000
+ WCLONE = 0x80000000
+ WCONTINUED = 0x8
+ WEXITED = 0x4
+ WNOHANG = 0x1
+ WNOTHREAD = 0x20000000
+ WNOWAIT = 0x1000000
+ WORDSIZE = 0x40
+ WRAP = 0x20000
+ WSTOPPED = 0x2
+ WUNTRACED = 0x2
+ XCASE = 0x4
+ XTABS = 0x1800
+ __TIOCFLUSH = 0x80047410
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EADV = syscall.Errno(0x53)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0xb)
+ EALREADY = syscall.Errno(0x25)
+ EBADE = syscall.Errno(0x66)
+ EBADF = syscall.Errno(0x9)
+ EBADFD = syscall.Errno(0x5d)
+ EBADMSG = syscall.Errno(0x4c)
+ EBADR = syscall.Errno(0x67)
+ EBADRQC = syscall.Errno(0x6a)
+ EBADSLT = syscall.Errno(0x6b)
+ EBFONT = syscall.Errno(0x6d)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x7f)
+ ECHILD = syscall.Errno(0xa)
+ ECHRNG = syscall.Errno(0x5e)
+ ECOMM = syscall.Errno(0x55)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0x4e)
+ EDEADLOCK = syscall.Errno(0x6c)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDOTDOT = syscall.Errno(0x58)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EHWPOISON = syscall.Errno(0x87)
+ EIDRM = syscall.Errno(0x4d)
+ EILSEQ = syscall.Errno(0x7a)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ EISNAM = syscall.Errno(0x78)
+ EKEYEXPIRED = syscall.Errno(0x81)
+ EKEYREJECTED = syscall.Errno(0x83)
+ EKEYREVOKED = syscall.Errno(0x82)
+ EL2HLT = syscall.Errno(0x65)
+ EL2NSYNC = syscall.Errno(0x5f)
+ EL3HLT = syscall.Errno(0x60)
+ EL3RST = syscall.Errno(0x61)
+ ELIBACC = syscall.Errno(0x72)
+ ELIBBAD = syscall.Errno(0x70)
+ ELIBEXEC = syscall.Errno(0x6e)
+ ELIBMAX = syscall.Errno(0x7b)
+ ELIBSCN = syscall.Errno(0x7c)
+ ELNRNG = syscall.Errno(0x62)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x7e)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ EMULTIHOP = syscall.Errno(0x57)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENAVAIL = syscall.Errno(0x77)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOANO = syscall.Errno(0x69)
+ ENOBUFS = syscall.Errno(0x37)
+ ENOCSI = syscall.Errno(0x64)
+ ENODATA = syscall.Errno(0x6f)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOKEY = syscall.Errno(0x80)
+ ENOLCK = syscall.Errno(0x4f)
+ ENOLINK = syscall.Errno(0x52)
+ ENOMEDIUM = syscall.Errno(0x7d)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x4b)
+ ENONET = syscall.Errno(0x50)
+ ENOPKG = syscall.Errno(0x71)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x4a)
+ ENOSTR = syscall.Errno(0x48)
+ ENOSYS = syscall.Errno(0x5a)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTNAM = syscall.Errno(0x76)
+ ENOTRECOVERABLE = syscall.Errno(0x85)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x2d)
+ ENOTTY = syscall.Errno(0x19)
+ ENOTUNIQ = syscall.Errno(0x73)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x5c)
+ EOWNERDEAD = syscall.Errno(0x84)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROTO = syscall.Errno(0x56)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMCHG = syscall.Errno(0x59)
+ EREMOTE = syscall.Errno(0x47)
+ EREMOTEIO = syscall.Errno(0x79)
+ ERESTART = syscall.Errno(0x74)
+ ERFKILL = syscall.Errno(0x86)
+ EROFS = syscall.Errno(0x1e)
+ ERREMOTE = syscall.Errno(0x51)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESRMNT = syscall.Errno(0x54)
+ ESTALE = syscall.Errno(0x46)
+ ESTRPIPE = syscall.Errno(0x5b)
+ ETIME = syscall.Errno(0x49)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUCLEAN = syscall.Errno(0x75)
+ EUNATCH = syscall.Errno(0x63)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0xb)
+ EXDEV = syscall.Errno(0x12)
+ EXFULL = syscall.Errno(0x68)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGLOST = syscall.Signal(0x1d)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPOLL = syscall.Signal(0x17)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x1d)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "no such device or address",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource temporarily unavailable",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device or resource busy",
+ 17: "file exists",
+ 18: "invalid cross-device link",
+ 19: "no such device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "numerical result out of range",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol",
+ 48: "address already in use",
+ 49: "cannot assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "transport endpoint is already connected",
+ 57: "transport endpoint is not connected",
+ 58: "cannot send after transport endpoint shutdown",
+ 59: "too many references: cannot splice",
+ 60: "connection timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disk quota exceeded",
+ 70: "stale file handle",
+ 71: "object is remote",
+ 72: "device not a stream",
+ 73: "timer expired",
+ 74: "out of streams resources",
+ 75: "no message of desired type",
+ 76: "bad message",
+ 77: "identifier removed",
+ 78: "resource deadlock avoided",
+ 79: "no locks available",
+ 80: "machine is not on the network",
+ 81: "unknown error 81",
+ 82: "link has been severed",
+ 83: "advertise error",
+ 84: "srmount error",
+ 85: "communication error on send",
+ 86: "protocol error",
+ 87: "multihop attempted",
+ 88: "RFS specific error",
+ 89: "remote address changed",
+ 90: "function not implemented",
+ 91: "streams pipe error",
+ 92: "value too large for defined data type",
+ 93: "file descriptor in bad state",
+ 94: "channel number out of range",
+ 95: "level 2 not synchronized",
+ 96: "level 3 halted",
+ 97: "level 3 reset",
+ 98: "link number out of range",
+ 99: "protocol driver not attached",
+ 100: "no CSI structure available",
+ 101: "level 2 halted",
+ 102: "invalid exchange",
+ 103: "invalid request descriptor",
+ 104: "exchange full",
+ 105: "no anode",
+ 106: "invalid request code",
+ 107: "invalid slot",
+ 108: "file locking deadlock error",
+ 109: "bad font file format",
+ 110: "cannot exec a shared library directly",
+ 111: "no data available",
+ 112: "accessing a corrupted shared library",
+ 113: "package not installed",
+ 114: "can not access a needed shared library",
+ 115: "name not unique on network",
+ 116: "interrupted system call should be restarted",
+ 117: "structure needs cleaning",
+ 118: "not a XENIX named type file",
+ 119: "no XENIX semaphores available",
+ 120: "is a named type file",
+ 121: "remote I/O error",
+ 122: "invalid or incomplete multibyte or wide character",
+ 123: "attempting to link in too many shared libraries",
+ 124: ".lib section in a.out corrupted",
+ 125: "no medium found",
+ 126: "wrong medium type",
+ 127: "operation canceled",
+ 128: "required key not available",
+ 129: "key has expired",
+ 130: "key has been revoked",
+ 131: "key was rejected by service",
+ 132: "owner died",
+ 133: "state not recoverable",
+ 134: "operation not possible due to RF-kill",
+ 135: "memory page has hardware error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/breakpoint trap",
+ 6: "aborted",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "stopped (signal)",
+ 18: "stopped",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "CPU time limit exceeded",
+ 25: "file size limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window changed",
+ 29: "resource lost",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
new file mode 100644
index 000000000..b4338d5f2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go
@@ -0,0 +1,1712 @@
+// mkerrors.sh -m32
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build 386,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_APPLETALK = 0x10
+ AF_ARP = 0x1c
+ AF_BLUETOOTH = 0x1f
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1a
+ AF_ECMA = 0x8
+ AF_HYLINK = 0xf
+ AF_IEEE80211 = 0x20
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x18
+ AF_IPX = 0x17
+ AF_ISDN = 0x1a
+ AF_ISO = 0x7
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x23
+ AF_MPLS = 0x21
+ AF_NATM = 0x1b
+ AF_NS = 0x6
+ AF_OROUTE = 0x11
+ AF_OSI = 0x7
+ AF_PUP = 0x4
+ AF_ROUTE = 0x22
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_STRIP = 0x17
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B460800 = 0x70800
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B921600 = 0xe1000
+ B9600 = 0x2580
+ BIOCFEEDBACK = 0x8004427d
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc0084277
+ BIOCGETIF = 0x4090426b
+ BIOCGFEEDBACK = 0x4004427c
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRTIMEOUT = 0x400c427b
+ BIOCGSEESENT = 0x40044278
+ BIOCGSTATS = 0x4080426f
+ BIOCGSTATSOLD = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDLT = 0x80044276
+ BIOCSETF = 0x80084267
+ BIOCSETIF = 0x8090426c
+ BIOCSFEEDBACK = 0x8004427d
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRTIMEOUT = 0x800c427a
+ BIOCSSEESENT = 0x80044279
+ BIOCSTCPF = 0x80084272
+ BIOCSUDPF = 0x80084273
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x4
+ BPF_ALIGNMENT32 = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DFLTBUFSIZE = 0x100000
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x1000000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CLONE_CSIGNAL = 0xff
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_PID = 0x1000
+ CLONE_PTRACE = 0x2000
+ CLONE_SIGHAND = 0x800
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x14
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+ DIOCBSFLUSH = 0x20006478
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+ DLT_AOS = 0xde
+ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
+ DLT_ARCNET = 0x7
+ DLT_ARCNET_LINUX = 0x81
+ DLT_ATM_CLIP = 0x13
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AURORA = 0x7e
+ DLT_AX25 = 0x3
+ DLT_AX25_KISS = 0xca
+ DLT_BACNET_MS_TP = 0xa5
+ DLT_BLUETOOTH_HCI_H4 = 0xbb
+ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+ DLT_CAN20B = 0xbe
+ DLT_CAN_SOCKETCAN = 0xe3
+ DLT_CHAOS = 0x5
+ DLT_CISCO_IOS = 0x76
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DECT = 0xdd
+ DLT_DOCSIS = 0x8f
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_ENC = 0x6d
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+ DLT_FLEXRAY = 0xd2
+ DLT_FRELAY = 0x6b
+ DLT_FRELAY_WITH_DIR = 0xce
+ DLT_GCOM_SERIAL = 0xad
+ DLT_GCOM_T1E1 = 0xac
+ DLT_GPF_F = 0xab
+ DLT_GPF_T = 0xaa
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+ DLT_HDLC = 0x10
+ DLT_HHDLC = 0x79
+ DLT_HIPPI = 0xf
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_IEEE802_11_RADIO_AVS = 0xa3
+ DLT_IEEE802_15_4 = 0xc3
+ DLT_IEEE802_15_4_LINUX = 0xbf
+ DLT_IEEE802_15_4_NONASK_PHY = 0xd7
+ DLT_IEEE802_16_MAC_CPS = 0xbc
+ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
+ DLT_IPMB = 0xc7
+ DLT_IPMB_LINUX = 0xd1
+ DLT_IPNET = 0xe2
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_CHDLC = 0xb5
+ DLT_JUNIPER_ES = 0x84
+ DLT_JUNIPER_ETHER = 0xb2
+ DLT_JUNIPER_FRELAY = 0xb4
+ DLT_JUNIPER_GGSN = 0x85
+ DLT_JUNIPER_ISM = 0xc2
+ DLT_JUNIPER_MFR = 0x86
+ DLT_JUNIPER_MLFR = 0x83
+ DLT_JUNIPER_MLPPP = 0x82
+ DLT_JUNIPER_MONITOR = 0xa4
+ DLT_JUNIPER_PIC_PEER = 0xae
+ DLT_JUNIPER_PPP = 0xb3
+ DLT_JUNIPER_PPPOE = 0xa7
+ DLT_JUNIPER_PPPOE_ATM = 0xa8
+ DLT_JUNIPER_SERVICES = 0x88
+ DLT_JUNIPER_ST = 0xc8
+ DLT_JUNIPER_VP = 0xb7
+ DLT_LAPB_WITH_DIR = 0xcf
+ DLT_LAPD = 0xcb
+ DLT_LIN = 0xd4
+ DLT_LINUX_EVDEV = 0xd8
+ DLT_LINUX_IRDA = 0x90
+ DLT_LINUX_LAPD = 0xb1
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
+ DLT_LTALK = 0x72
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+ DLT_MPLS = 0xdb
+ DLT_MTP2 = 0x8c
+ DLT_MTP2_WITH_PHDR = 0x8b
+ DLT_MTP3 = 0x8d
+ DLT_NULL = 0x0
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+ DLT_PPP_WITH_DIR = 0xcc
+ DLT_PRISM_HEADER = 0x77
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
+ DLT_RAWAF_MASK = 0x2240000
+ DLT_RIO = 0x7c
+ DLT_SCCP = 0x8e
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xd
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_WIHART = 0xdf
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EMUL_LINUX = 0x1
+ EMUL_LINUX32 = 0x5
+ EMUL_MAXID = 0x6
+ EN_SW_CTL_INF = 0x1000
+ EN_SW_CTL_PREC = 0x300
+ EN_SW_CTL_ROUND = 0xc00
+ EN_SW_DATACHAIN = 0x80
+ EN_SW_DENORM = 0x2
+ EN_SW_INVOP = 0x1
+ EN_SW_OVERFLOW = 0x8
+ EN_SW_PRECLOSS = 0x20
+ EN_SW_UNDERFLOW = 0x10
+ EN_SW_ZERODIV = 0x4
+ ETHERCAP_JUMBO_MTU = 0x4
+ ETHERCAP_VLAN_HWTAGGING = 0x2
+ ETHERCAP_VLAN_MTU = 0x1
+ ETHERMIN = 0x2e
+ ETHERMTU = 0x5dc
+ ETHERMTU_JUMBO = 0x2328
+ ETHERTYPE_8023 = 0x4
+ ETHERTYPE_AARP = 0x80f3
+ ETHERTYPE_ACCTON = 0x8390
+ ETHERTYPE_AEONIC = 0x8036
+ ETHERTYPE_ALPHA = 0x814a
+ ETHERTYPE_AMBER = 0x6008
+ ETHERTYPE_AMOEBA = 0x8145
+ ETHERTYPE_APOLLO = 0x80f7
+ ETHERTYPE_APOLLODOMAIN = 0x8019
+ ETHERTYPE_APPLETALK = 0x809b
+ ETHERTYPE_APPLITEK = 0x80c7
+ ETHERTYPE_ARGONAUT = 0x803a
+ ETHERTYPE_ARP = 0x806
+ ETHERTYPE_AT = 0x809b
+ ETHERTYPE_ATALK = 0x809b
+ ETHERTYPE_ATOMIC = 0x86df
+ ETHERTYPE_ATT = 0x8069
+ ETHERTYPE_ATTSTANFORD = 0x8008
+ ETHERTYPE_AUTOPHON = 0x806a
+ ETHERTYPE_AXIS = 0x8856
+ ETHERTYPE_BCLOOP = 0x9003
+ ETHERTYPE_BOFL = 0x8102
+ ETHERTYPE_CABLETRON = 0x7034
+ ETHERTYPE_CHAOS = 0x804
+ ETHERTYPE_COMDESIGN = 0x806c
+ ETHERTYPE_COMPUGRAPHIC = 0x806d
+ ETHERTYPE_COUNTERPOINT = 0x8062
+ ETHERTYPE_CRONUS = 0x8004
+ ETHERTYPE_CRONUSVLN = 0x8003
+ ETHERTYPE_DCA = 0x1234
+ ETHERTYPE_DDE = 0x807b
+ ETHERTYPE_DEBNI = 0xaaaa
+ ETHERTYPE_DECAM = 0x8048
+ ETHERTYPE_DECCUST = 0x6006
+ ETHERTYPE_DECDIAG = 0x6005
+ ETHERTYPE_DECDNS = 0x803c
+ ETHERTYPE_DECDTS = 0x803e
+ ETHERTYPE_DECEXPER = 0x6000
+ ETHERTYPE_DECLAST = 0x8041
+ ETHERTYPE_DECLTM = 0x803f
+ ETHERTYPE_DECMUMPS = 0x6009
+ ETHERTYPE_DECNETBIOS = 0x8040
+ ETHERTYPE_DELTACON = 0x86de
+ ETHERTYPE_DIDDLE = 0x4321
+ ETHERTYPE_DLOG1 = 0x660
+ ETHERTYPE_DLOG2 = 0x661
+ ETHERTYPE_DN = 0x6003
+ ETHERTYPE_DOGFIGHT = 0x1989
+ ETHERTYPE_DSMD = 0x8039
+ ETHERTYPE_ECMA = 0x803
+ ETHERTYPE_ENCRYPT = 0x803d
+ ETHERTYPE_ES = 0x805d
+ ETHERTYPE_EXCELAN = 0x8010
+ ETHERTYPE_EXPERDATA = 0x8049
+ ETHERTYPE_FLIP = 0x8146
+ ETHERTYPE_FLOWCONTROL = 0x8808
+ ETHERTYPE_FRARP = 0x808
+ ETHERTYPE_GENDYN = 0x8068
+ ETHERTYPE_HAYES = 0x8130
+ ETHERTYPE_HIPPI_FP = 0x8180
+ ETHERTYPE_HITACHI = 0x8820
+ ETHERTYPE_HP = 0x8005
+ ETHERTYPE_IEEEPUP = 0xa00
+ ETHERTYPE_IEEEPUPAT = 0xa01
+ ETHERTYPE_IMLBL = 0x4c42
+ ETHERTYPE_IMLBLDIAG = 0x424c
+ ETHERTYPE_IP = 0x800
+ ETHERTYPE_IPAS = 0x876c
+ ETHERTYPE_IPV6 = 0x86dd
+ ETHERTYPE_IPX = 0x8137
+ ETHERTYPE_IPXNEW = 0x8037
+ ETHERTYPE_KALPANA = 0x8582
+ ETHERTYPE_LANBRIDGE = 0x8038
+ ETHERTYPE_LANPROBE = 0x8888
+ ETHERTYPE_LAT = 0x6004
+ ETHERTYPE_LBACK = 0x9000
+ ETHERTYPE_LITTLE = 0x8060
+ ETHERTYPE_LOGICRAFT = 0x8148
+ ETHERTYPE_LOOPBACK = 0x9000
+ ETHERTYPE_MATRA = 0x807a
+ ETHERTYPE_MAX = 0xffff
+ ETHERTYPE_MERIT = 0x807c
+ ETHERTYPE_MICP = 0x873a
+ ETHERTYPE_MOPDL = 0x6001
+ ETHERTYPE_MOPRC = 0x6002
+ ETHERTYPE_MOTOROLA = 0x818d
+ ETHERTYPE_MPLS = 0x8847
+ ETHERTYPE_MPLS_MCAST = 0x8848
+ ETHERTYPE_MUMPS = 0x813f
+ ETHERTYPE_NBPCC = 0x3c04
+ ETHERTYPE_NBPCLAIM = 0x3c09
+ ETHERTYPE_NBPCLREQ = 0x3c05
+ ETHERTYPE_NBPCLRSP = 0x3c06
+ ETHERTYPE_NBPCREQ = 0x3c02
+ ETHERTYPE_NBPCRSP = 0x3c03
+ ETHERTYPE_NBPDG = 0x3c07
+ ETHERTYPE_NBPDGB = 0x3c08
+ ETHERTYPE_NBPDLTE = 0x3c0a
+ ETHERTYPE_NBPRAR = 0x3c0c
+ ETHERTYPE_NBPRAS = 0x3c0b
+ ETHERTYPE_NBPRST = 0x3c0d
+ ETHERTYPE_NBPSCD = 0x3c01
+ ETHERTYPE_NBPVCD = 0x3c00
+ ETHERTYPE_NBS = 0x802
+ ETHERTYPE_NCD = 0x8149
+ ETHERTYPE_NESTAR = 0x8006
+ ETHERTYPE_NETBEUI = 0x8191
+ ETHERTYPE_NOVELL = 0x8138
+ ETHERTYPE_NS = 0x600
+ ETHERTYPE_NSAT = 0x601
+ ETHERTYPE_NSCOMPAT = 0x807
+ ETHERTYPE_NTRAILER = 0x10
+ ETHERTYPE_OS9 = 0x7007
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+ ETHERTYPE_PPPOE = 0x8864
+ ETHERTYPE_PPPOEDISC = 0x8863
+ ETHERTYPE_PRIMENTS = 0x7031
+ ETHERTYPE_PUP = 0x200
+ ETHERTYPE_PUPAT = 0x200
+ ETHERTYPE_RACAL = 0x7030
+ ETHERTYPE_RATIONAL = 0x8150
+ ETHERTYPE_RAWFR = 0x6559
+ ETHERTYPE_RCL = 0x1995
+ ETHERTYPE_RDP = 0x8739
+ ETHERTYPE_RETIX = 0x80f2
+ ETHERTYPE_REVARP = 0x8035
+ ETHERTYPE_SCA = 0x6007
+ ETHERTYPE_SECTRA = 0x86db
+ ETHERTYPE_SECUREDATA = 0x876d
+ ETHERTYPE_SGITW = 0x817e
+ ETHERTYPE_SG_BOUNCE = 0x8016
+ ETHERTYPE_SG_DIAG = 0x8013
+ ETHERTYPE_SG_NETGAMES = 0x8014
+ ETHERTYPE_SG_RESV = 0x8015
+ ETHERTYPE_SIMNET = 0x5208
+ ETHERTYPE_SLOWPROTOCOLS = 0x8809
+ ETHERTYPE_SNA = 0x80d5
+ ETHERTYPE_SNMP = 0x814c
+ ETHERTYPE_SONIX = 0xfaf5
+ ETHERTYPE_SPIDER = 0x809f
+ ETHERTYPE_SPRITE = 0x500
+ ETHERTYPE_STP = 0x8181
+ ETHERTYPE_TALARIS = 0x812b
+ ETHERTYPE_TALARISMC = 0x852b
+ ETHERTYPE_TCPCOMP = 0x876b
+ ETHERTYPE_TCPSM = 0x9002
+ ETHERTYPE_TEC = 0x814f
+ ETHERTYPE_TIGAN = 0x802f
+ ETHERTYPE_TRAIL = 0x1000
+ ETHERTYPE_TRANSETHER = 0x6558
+ ETHERTYPE_TYMSHARE = 0x802e
+ ETHERTYPE_UBBST = 0x7005
+ ETHERTYPE_UBDEBUG = 0x900
+ ETHERTYPE_UBDIAGLOOP = 0x7002
+ ETHERTYPE_UBDL = 0x7000
+ ETHERTYPE_UBNIU = 0x7001
+ ETHERTYPE_UBNMC = 0x7003
+ ETHERTYPE_VALID = 0x1600
+ ETHERTYPE_VARIAN = 0x80dd
+ ETHERTYPE_VAXELN = 0x803b
+ ETHERTYPE_VEECO = 0x8067
+ ETHERTYPE_VEXP = 0x805b
+ ETHERTYPE_VGLAB = 0x8131
+ ETHERTYPE_VINES = 0xbad
+ ETHERTYPE_VINESECHO = 0xbaf
+ ETHERTYPE_VINESLOOP = 0xbae
+ ETHERTYPE_VITAL = 0xff00
+ ETHERTYPE_VLAN = 0x8100
+ ETHERTYPE_VLTLMAN = 0x8080
+ ETHERTYPE_VPROD = 0x805c
+ ETHERTYPE_VURESERVED = 0x8147
+ ETHERTYPE_WATERLOO = 0x8130
+ ETHERTYPE_WELLFLEET = 0x8103
+ ETHERTYPE_X25 = 0x805
+ ETHERTYPE_X75 = 0x801
+ ETHERTYPE_XNSSM = 0x9001
+ ETHERTYPE_XTP = 0x817d
+ ETHER_ADDR_LEN = 0x6
+ ETHER_CRC_LEN = 0x4
+ ETHER_CRC_POLY_BE = 0x4c11db6
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MAX_LEN_JUMBO = 0x233a
+ ETHER_MIN_LEN = 0x40
+ ETHER_PPPOE_ENCAP_LEN = 0x8
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = 0x2
+ EVFILT_PROC = 0x4
+ EVFILT_READ = 0x0
+ EVFILT_SIGNAL = 0x5
+ EVFILT_SYSCOUNT = 0x7
+ EVFILT_TIMER = 0x6
+ EVFILT_VNODE = 0x3
+ EVFILT_WRITE = 0x1
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x100
+ FLUSHO = 0x800000
+ F_CLOSEM = 0xa
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0xc
+ F_FSCTL = -0x80000000
+ F_FSDIRMASK = 0x70000000
+ F_FSIN = 0x10000000
+ F_FSINOUT = 0x30000000
+ F_FSOUT = 0x20000000
+ F_FSPRIV = 0x8000
+ F_FSVOID = 0x40000000
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETNOSIGPIPE = 0xd
+ F_GETOWN = 0x5
+ F_MAXFD = 0xb
+ F_OK = 0x0
+ F_PARAM_MASK = 0xfff
+ F_PARAM_MAX = 0xfff
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETNOSIGPIPE = 0xe
+ F_SETOWN = 0x6
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+ IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8f52
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BRIDGE = 0xd1
+ IFT_BSC = 0x53
+ IFT_CARP = 0xf8
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ECONET = 0xce
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf2
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INFINIBAND = 0xc7
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L2VLAN = 0x87
+ IFT_L3IPVLAN = 0x88
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf5
+ IFT_PFSYNC = 0xf6
+ IFT_PLC = 0xae
+ IFT_PON155 = 0xcf
+ IFT_PON622 = 0xd0
+ IFT_POS = 0xab
+ IFT_PPP = 0x17
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPATM = 0xc5
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_Q2931 = 0xc9
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SIPSIG = 0xcc
+ IFT_SIPTG = 0xcb
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TELINK = 0xc8
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VIRTUALTG = 0xca
+ IFT_VOICEDID = 0xd5
+ IFT_VOICEEM = 0x64
+ IFT_VOICEEMFGD = 0xd3
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFGDEANA = 0xd4
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERCABLE = 0xc6
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LOOPBACKNET = 0x7f
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_IPV6_ICMP = 0x3a
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x34
+ IPPROTO_MOBILE = 0x37
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PFSYNC = 0xf0
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_VRRP = 0x70
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DSTOPTS = 0x32
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_HLIMDEC = 0x1
+ IPV6_HOPLIMIT = 0x2f
+ IPV6_HOPOPTS = 0x31
+ IPV6_IPSEC_POLICY = 0x1c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVDSTOPTS = 0x28
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRTHDR = 0x26
+ IPV6_RECVTCLASS = 0x39
+ IPV6_RTHDR = 0x33
+ IPV6_RTHDRDSTOPTS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x3d
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_USE_MIN_MTU = 0x2a
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_EF = 0x8000
+ IP_ERRORMTU = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPSEC_POLICY = 0x16
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINFRAGSIZE = 0x45
+ IP_MINTTL = 0x18
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x1
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
+ IP_RECVRETOPTS = 0x6
+ IP_RECVTTL = 0x17
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x6
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ALIGNMENT_16MB = 0x18000000
+ MAP_ALIGNMENT_1TB = 0x28000000
+ MAP_ALIGNMENT_256TB = 0x30000000
+ MAP_ALIGNMENT_4GB = 0x20000000
+ MAP_ALIGNMENT_64KB = 0x10000000
+ MAP_ALIGNMENT_64PB = 0x38000000
+ MAP_ALIGNMENT_MASK = -0x1000000
+ MAP_ALIGNMENT_SHIFT = 0x18
+ MAP_ANON = 0x1000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_HASSEMAPHORE = 0x200
+ MAP_INHERIT = 0x80
+ MAP_INHERIT_COPY = 0x1
+ MAP_INHERIT_DEFAULT = 0x1
+ MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x2000
+ MAP_TRYFIXED = 0x400
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_IOVUSRSPACE = 0x4000000
+ MSG_LENUSRSPACE = 0x8000000
+ MSG_MCAST = 0x200
+ MSG_NAMEMBUF = 0x1000000
+ MSG_NBIO = 0x1000
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_USERFLAGS = 0xffffff
+ MSG_WAITALL = 0x40
+ MS_ASYNC = 0x1
+ MS_INVALIDATE = 0x2
+ MS_SYNC = 0x4
+ NAME_MAX = 0x1ff
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x5
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXTEND = 0x4
+ NOTE_FORK = 0x40000000
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_PCTRLMASK = 0xf0000000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ OFIOGETBMAP = 0xc004667a
+ ONLCR = 0x2
+ ONLRET = 0x40
+ ONOCR = 0x20
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_ALT_IO = 0x40000
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x400000
+ O_CREAT = 0x200
+ O_DIRECT = 0x80000
+ O_DIRECTORY = 0x200000
+ O_DSYNC = 0x10000
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_NOSIGPIPE = 0x1000000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x20000
+ O_SHLOCK = 0x10
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PRI_IOFLUSH = 0x7c
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ RLIMIT_AS = 0xa
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_MAX = 0x9
+ RTAX_NETMASK = 0x2
+ RTAX_TAG = 0x8
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_NETMASK = 0x4
+ RTA_TAG = 0x100
+ RTF_ANNOUNCE = 0x20000
+ RTF_BLACKHOLE = 0x1000
+ RTF_CLONED = 0x2000
+ RTF_CLONING = 0x100
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+ RTF_MASK = 0x80
+ RTF_MODIFIED = 0x20
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_REJECT = 0x8
+ RTF_SRC = 0x10000
+ RTF_STATIC = 0x800
+ RTF_UP = 0x1
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_CHGADDR = 0x15
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_GET = 0x4
+ RTM_IEEE80211 = 0x11
+ RTM_IFANNOUNCE = 0x10
+ RTM_IFINFO = 0x14
+ RTM_LLINFO_UPD = 0x13
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_OIFINFO = 0xf
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ RTM_OOIFINFO = 0xe
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_SETGATE = 0x12
+ RTM_VERSION = 0x4
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ SCM_CREDS = 0x4
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x8
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80906931
+ SIOCADDRT = 0x8030720a
+ SIOCAIFADDR = 0x8040691a
+ SIOCALIFADDR = 0x8118691c
+ SIOCATMARK = 0x40047307
+ SIOCDELMULTI = 0x80906932
+ SIOCDELRT = 0x8030720b
+ SIOCDIFADDR = 0x80906919
+ SIOCDIFPHYADDR = 0x80906949
+ SIOCDLIFADDR = 0x8118691e
+ SIOCGDRVSPEC = 0xc01c697b
+ SIOCGETPFSYNC = 0xc09069f8
+ SIOCGETSGCNT = 0xc0147534
+ SIOCGETVIFCNT = 0xc0147533
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0906921
+ SIOCGIFADDRPREF = 0xc0946920
+ SIOCGIFALIAS = 0xc040691b
+ SIOCGIFBRDADDR = 0xc0906923
+ SIOCGIFCAP = 0xc0206976
+ SIOCGIFCONF = 0xc0086926
+ SIOCGIFDATA = 0xc0946985
+ SIOCGIFDLT = 0xc0906977
+ SIOCGIFDSTADDR = 0xc0906922
+ SIOCGIFFLAGS = 0xc0906911
+ SIOCGIFGENERIC = 0xc090693a
+ SIOCGIFMEDIA = 0xc0286936
+ SIOCGIFMETRIC = 0xc0906917
+ SIOCGIFMTU = 0xc090697e
+ SIOCGIFNETMASK = 0xc0906925
+ SIOCGIFPDSTADDR = 0xc0906948
+ SIOCGIFPSRCADDR = 0xc0906947
+ SIOCGLIFADDR = 0xc118691d
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCGLINKSTR = 0xc01c6987
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGVH = 0xc0906983
+ SIOCIFCREATE = 0x8090697a
+ SIOCIFDESTROY = 0x80906979
+ SIOCIFGCLONERS = 0xc00c6978
+ SIOCINITIFADDR = 0xc0446984
+ SIOCSDRVSPEC = 0x801c697b
+ SIOCSETPFSYNC = 0x809069f7
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8090690c
+ SIOCSIFADDRPREF = 0x8094691f
+ SIOCSIFBRDADDR = 0x80906913
+ SIOCSIFCAP = 0x80206975
+ SIOCSIFDSTADDR = 0x8090690e
+ SIOCSIFFLAGS = 0x80906910
+ SIOCSIFGENERIC = 0x80906939
+ SIOCSIFMEDIA = 0xc0906935
+ SIOCSIFMETRIC = 0x80906918
+ SIOCSIFMTU = 0x8090697f
+ SIOCSIFNETMASK = 0x80906916
+ SIOCSIFPHYADDR = 0x80406946
+ SIOCSLIFPHYADDR = 0x8118694a
+ SIOCSLINKSTR = 0x801c6988
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSVH = 0xc0906982
+ SIOCZIFDATA = 0xc0946986
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_DGRAM = 0x2
+ SOCK_FLAGS_MASK = 0xf0000000
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_NOSIGPIPE = 0x40000000
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_ACCEPTFILTER = 0x1000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_NOHEADER = 0x100a
+ SO_NOSIGPIPE = 0x800
+ SO_OOBINLINE = 0x100
+ SO_OVERFLOWED = 0x1009
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x100c
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x100b
+ SO_TIMESTAMP = 0x2000
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SYSCTL_VERSION = 0x1000000
+ SYSCTL_VERS_0 = 0x0
+ SYSCTL_VERS_1 = 0x1000000
+ SYSCTL_VERS_MASK = 0xff000000
+ S_ARCH1 = 0x10000
+ S_ARCH2 = 0x20000
+ S_BLKSIZE = 0x200
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_IFWHT = 0xe000
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISTXT = 0x200
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
+ S_LOGIN_SET = 0x1
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_CONGCTL = 0x20
+ TCP_KEEPCNT = 0x6
+ TCP_KEEPIDLE = 0x3
+ TCP_KEEPINIT = 0x7
+ TCP_KEEPINTVL = 0x5
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0x10
+ TCP_MINMSS = 0xd8
+ TCP_MSS = 0x218
+ TCP_NODELAY = 0x1
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDCDTIMESTAMP = 0x400c7458
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLAG_CDTRCTS = 0x10
+ TIOCFLAG_CLOCAL = 0x2
+ TIOCFLAG_CRTSCTS = 0x4
+ TIOCFLAG_MDMBUF = 0x8
+ TIOCFLAG_SOFTCAR = 0x1
+ TIOCFLUSH = 0x80047410
+ TIOCGETA = 0x402c7413
+ TIOCGETD = 0x4004741a
+ TIOCGFLAGS = 0x4004745d
+ TIOCGLINED = 0x40207442
+ TIOCGPGRP = 0x40047477
+ TIOCGQSIZE = 0x40047481
+ TIOCGRANTPT = 0x20007447
+ TIOCGSID = 0x40047463
+ TIOCGSIZE = 0x40087468
+ TIOCGWINSZ = 0x40087468
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCPTMGET = 0x40287446
+ TIOCPTSNAME = 0x40287448
+ TIOCRCVFRAME = 0x80047445
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007461
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x802c7414
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x2000745f
+ TIOCSLINED = 0x80207443
+ TIOCSPGRP = 0x80047476
+ TIOCSQSIZE = 0x80047480
+ TIOCSSIZE = 0x80087467
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x80047465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
+ TIOCXMTFRAME = 0x80047444
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VTIME = 0x11
+ VWERASE = 0x4
+ WALL = 0x8
+ WALLSIG = 0x8
+ WALTSIG = 0x4
+ WCLONE = 0x4
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+ WNOWAIT = 0x10000
+ WNOZOMBIE = 0x20000
+ WOPTSCHECKED = 0x40000
+ WSTOPPED = 0x7f
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0x23)
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
+ EBADMSG = syscall.Errno(0x58)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x57)
+ ECHILD = syscall.Errno(0xa)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0xb)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EFTYPE = syscall.Errno(0x4f)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EIDRM = syscall.Errno(0x52)
+ EILSEQ = syscall.Errno(0x55)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ ELAST = syscall.Errno(0x60)
+ ELOOP = syscall.Errno(0x3e)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ EMULTIHOP = syscall.Errno(0x5e)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENEEDAUTH = syscall.Errno(0x51)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOATTR = syscall.Errno(0x5d)
+ ENOBUFS = syscall.Errno(0x37)
+ ENODATA = syscall.Errno(0x59)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOLCK = syscall.Errno(0x4d)
+ ENOLINK = syscall.Errno(0x5f)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x53)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x5a)
+ ENOSTR = syscall.Errno(0x5b)
+ ENOSYS = syscall.Errno(0x4e)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x56)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x54)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
+ EPROTO = syscall.Errno(0x60)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMOTE = syscall.Errno(0x47)
+ EROFS = syscall.Errno(0x1e)
+ ERPCMISMATCH = syscall.Errno(0x49)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESTALE = syscall.Errno(0x46)
+ ETIME = syscall.Errno(0x5c)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0x23)
+ EXDEV = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINFO = syscall.Signal(0x1d)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x20)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "device not configured",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource deadlock avoided",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device busy",
+ 17: "file exists",
+ 18: "cross-device link",
+ 19: "operation not supported by device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "result too large or too small",
+ 35: "resource temporarily unavailable",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol option not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol family",
+ 48: "address already in use",
+ 49: "can't assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "socket is already connected",
+ 57: "socket is not connected",
+ 58: "can't send after socket shutdown",
+ 59: "too many references: can't splice",
+ 60: "connection timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disc quota exceeded",
+ 70: "stale NFS file handle",
+ 71: "too many levels of remote in path",
+ 72: "RPC struct is bad",
+ 73: "RPC version wrong",
+ 74: "RPC prog. not avail",
+ 75: "program version wrong",
+ 76: "bad procedure for program",
+ 77: "no locks available",
+ 78: "function not implemented",
+ 79: "inappropriate file type or format",
+ 80: "authentication error",
+ 81: "need authenticator",
+ 82: "identifier removed",
+ 83: "no message of desired type",
+ 84: "value too large to be stored in data type",
+ 85: "illegal byte sequence",
+ 86: "not supported",
+ 87: "operation Canceled",
+ 88: "bad or Corrupt message",
+ 89: "no message available",
+ 90: "no STREAM resources",
+ 91: "not a STREAM",
+ 92: "STREAM ioctl timeout",
+ 93: "attribute not found",
+ 94: "multihop attempted",
+ 95: "link has been severed",
+ 96: "protocol error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/BPT trap",
+ 6: "abort trap",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "stopped (signal)",
+ 18: "stopped",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "cputime limit exceeded",
+ 25: "filesize limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window size changes",
+ 29: "information request",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+ 32: "power fail/restart",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
new file mode 100644
index 000000000..4994437b6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go
@@ -0,0 +1,1702 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build amd64,netbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_APPLETALK = 0x10
+ AF_ARP = 0x1c
+ AF_BLUETOOTH = 0x1f
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1a
+ AF_ECMA = 0x8
+ AF_HYLINK = 0xf
+ AF_IEEE80211 = 0x20
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x18
+ AF_IPX = 0x17
+ AF_ISDN = 0x1a
+ AF_ISO = 0x7
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x23
+ AF_MPLS = 0x21
+ AF_NATM = 0x1b
+ AF_NS = 0x6
+ AF_OROUTE = 0x11
+ AF_OSI = 0x7
+ AF_PUP = 0x4
+ AF_ROUTE = 0x22
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ ARPHRD_ARCNET = 0x7
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ ARPHRD_STRIP = 0x17
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B460800 = 0x70800
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B921600 = 0xe1000
+ B9600 = 0x2580
+ BIOCFEEDBACK = 0x8004427d
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc0104277
+ BIOCGETIF = 0x4090426b
+ BIOCGFEEDBACK = 0x4004427c
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRTIMEOUT = 0x4010427b
+ BIOCGSEESENT = 0x40044278
+ BIOCGSTATS = 0x4080426f
+ BIOCGSTATSOLD = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDLT = 0x80044276
+ BIOCSETF = 0x80104267
+ BIOCSETIF = 0x8090426c
+ BIOCSFEEDBACK = 0x8004427d
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRTIMEOUT = 0x8010427a
+ BIOCSSEESENT = 0x80044279
+ BIOCSTCPF = 0x80104272
+ BIOCSUDPF = 0x80104273
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x8
+ BPF_ALIGNMENT32 = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DFLTBUFSIZE = 0x100000
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x1000000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CLONE_CSIGNAL = 0xff
+ CLONE_FILES = 0x400
+ CLONE_FS = 0x200
+ CLONE_PID = 0x1000
+ CLONE_PTRACE = 0x2000
+ CLONE_SIGHAND = 0x800
+ CLONE_VFORK = 0x4000
+ CLONE_VM = 0x100
+ CREAD = 0x800
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0x14
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ CTL_QUERY = -0x2
+ DIOCBSFLUSH = 0x20006478
+ DLT_A429 = 0xb8
+ DLT_A653_ICM = 0xb9
+ DLT_AIRONET_HEADER = 0x78
+ DLT_AOS = 0xde
+ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a
+ DLT_ARCNET = 0x7
+ DLT_ARCNET_LINUX = 0x81
+ DLT_ATM_CLIP = 0x13
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AURORA = 0x7e
+ DLT_AX25 = 0x3
+ DLT_AX25_KISS = 0xca
+ DLT_BACNET_MS_TP = 0xa5
+ DLT_BLUETOOTH_HCI_H4 = 0xbb
+ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9
+ DLT_CAN20B = 0xbe
+ DLT_CAN_SOCKETCAN = 0xe3
+ DLT_CHAOS = 0x5
+ DLT_CISCO_IOS = 0x76
+ DLT_C_HDLC = 0x68
+ DLT_C_HDLC_WITH_DIR = 0xcd
+ DLT_DECT = 0xdd
+ DLT_DOCSIS = 0x8f
+ DLT_ECONET = 0x73
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_ENC = 0x6d
+ DLT_ERF = 0xc5
+ DLT_ERF_ETH = 0xaf
+ DLT_ERF_POS = 0xb0
+ DLT_FC_2 = 0xe0
+ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1
+ DLT_FDDI = 0xa
+ DLT_FLEXRAY = 0xd2
+ DLT_FRELAY = 0x6b
+ DLT_FRELAY_WITH_DIR = 0xce
+ DLT_GCOM_SERIAL = 0xad
+ DLT_GCOM_T1E1 = 0xac
+ DLT_GPF_F = 0xab
+ DLT_GPF_T = 0xaa
+ DLT_GPRS_LLC = 0xa9
+ DLT_GSMTAP_ABIS = 0xda
+ DLT_GSMTAP_UM = 0xd9
+ DLT_HDLC = 0x10
+ DLT_HHDLC = 0x79
+ DLT_HIPPI = 0xf
+ DLT_IBM_SN = 0x92
+ DLT_IBM_SP = 0x91
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_IEEE802_11_RADIO_AVS = 0xa3
+ DLT_IEEE802_15_4 = 0xc3
+ DLT_IEEE802_15_4_LINUX = 0xbf
+ DLT_IEEE802_15_4_NONASK_PHY = 0xd7
+ DLT_IEEE802_16_MAC_CPS = 0xbc
+ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1
+ DLT_IPMB = 0xc7
+ DLT_IPMB_LINUX = 0xd1
+ DLT_IPNET = 0xe2
+ DLT_IPV4 = 0xe4
+ DLT_IPV6 = 0xe5
+ DLT_IP_OVER_FC = 0x7a
+ DLT_JUNIPER_ATM1 = 0x89
+ DLT_JUNIPER_ATM2 = 0x87
+ DLT_JUNIPER_CHDLC = 0xb5
+ DLT_JUNIPER_ES = 0x84
+ DLT_JUNIPER_ETHER = 0xb2
+ DLT_JUNIPER_FRELAY = 0xb4
+ DLT_JUNIPER_GGSN = 0x85
+ DLT_JUNIPER_ISM = 0xc2
+ DLT_JUNIPER_MFR = 0x86
+ DLT_JUNIPER_MLFR = 0x83
+ DLT_JUNIPER_MLPPP = 0x82
+ DLT_JUNIPER_MONITOR = 0xa4
+ DLT_JUNIPER_PIC_PEER = 0xae
+ DLT_JUNIPER_PPP = 0xb3
+ DLT_JUNIPER_PPPOE = 0xa7
+ DLT_JUNIPER_PPPOE_ATM = 0xa8
+ DLT_JUNIPER_SERVICES = 0x88
+ DLT_JUNIPER_ST = 0xc8
+ DLT_JUNIPER_VP = 0xb7
+ DLT_LAPB_WITH_DIR = 0xcf
+ DLT_LAPD = 0xcb
+ DLT_LIN = 0xd4
+ DLT_LINUX_EVDEV = 0xd8
+ DLT_LINUX_IRDA = 0x90
+ DLT_LINUX_LAPD = 0xb1
+ DLT_LINUX_SLL = 0x71
+ DLT_LOOP = 0x6c
+ DLT_LTALK = 0x72
+ DLT_MFR = 0xb6
+ DLT_MOST = 0xd3
+ DLT_MPLS = 0xdb
+ DLT_MTP2 = 0x8c
+ DLT_MTP2_WITH_PHDR = 0x8b
+ DLT_MTP3 = 0x8d
+ DLT_NULL = 0x0
+ DLT_PCI_EXP = 0x7d
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPI = 0xc0
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0xe
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_PPPD = 0xa6
+ DLT_PPP_SERIAL = 0x32
+ DLT_PPP_WITH_DIR = 0xcc
+ DLT_PRISM_HEADER = 0x77
+ DLT_PRONET = 0x4
+ DLT_RAIF1 = 0xc6
+ DLT_RAW = 0xc
+ DLT_RAWAF_MASK = 0x2240000
+ DLT_RIO = 0x7c
+ DLT_SCCP = 0x8e
+ DLT_SITA = 0xc4
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xd
+ DLT_SUNATM = 0x7b
+ DLT_SYMANTEC_FIREWALL = 0x63
+ DLT_TZSP = 0x80
+ DLT_USB = 0xba
+ DLT_USB_LINUX = 0xbd
+ DLT_USB_LINUX_MMAPPED = 0xdc
+ DLT_WIHART = 0xdf
+ DLT_X2E_SERIAL = 0xd5
+ DLT_X2E_XORAYA = 0xd6
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ DT_WHT = 0xe
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EMUL_LINUX = 0x1
+ EMUL_LINUX32 = 0x5
+ EMUL_MAXID = 0x6
+ ETHERCAP_JUMBO_MTU = 0x4
+ ETHERCAP_VLAN_HWTAGGING = 0x2
+ ETHERCAP_VLAN_MTU = 0x1
+ ETHERMIN = 0x2e
+ ETHERMTU = 0x5dc
+ ETHERMTU_JUMBO = 0x2328
+ ETHERTYPE_8023 = 0x4
+ ETHERTYPE_AARP = 0x80f3
+ ETHERTYPE_ACCTON = 0x8390
+ ETHERTYPE_AEONIC = 0x8036
+ ETHERTYPE_ALPHA = 0x814a
+ ETHERTYPE_AMBER = 0x6008
+ ETHERTYPE_AMOEBA = 0x8145
+ ETHERTYPE_APOLLO = 0x80f7
+ ETHERTYPE_APOLLODOMAIN = 0x8019
+ ETHERTYPE_APPLETALK = 0x809b
+ ETHERTYPE_APPLITEK = 0x80c7
+ ETHERTYPE_ARGONAUT = 0x803a
+ ETHERTYPE_ARP = 0x806
+ ETHERTYPE_AT = 0x809b
+ ETHERTYPE_ATALK = 0x809b
+ ETHERTYPE_ATOMIC = 0x86df
+ ETHERTYPE_ATT = 0x8069
+ ETHERTYPE_ATTSTANFORD = 0x8008
+ ETHERTYPE_AUTOPHON = 0x806a
+ ETHERTYPE_AXIS = 0x8856
+ ETHERTYPE_BCLOOP = 0x9003
+ ETHERTYPE_BOFL = 0x8102
+ ETHERTYPE_CABLETRON = 0x7034
+ ETHERTYPE_CHAOS = 0x804
+ ETHERTYPE_COMDESIGN = 0x806c
+ ETHERTYPE_COMPUGRAPHIC = 0x806d
+ ETHERTYPE_COUNTERPOINT = 0x8062
+ ETHERTYPE_CRONUS = 0x8004
+ ETHERTYPE_CRONUSVLN = 0x8003
+ ETHERTYPE_DCA = 0x1234
+ ETHERTYPE_DDE = 0x807b
+ ETHERTYPE_DEBNI = 0xaaaa
+ ETHERTYPE_DECAM = 0x8048
+ ETHERTYPE_DECCUST = 0x6006
+ ETHERTYPE_DECDIAG = 0x6005
+ ETHERTYPE_DECDNS = 0x803c
+ ETHERTYPE_DECDTS = 0x803e
+ ETHERTYPE_DECEXPER = 0x6000
+ ETHERTYPE_DECLAST = 0x8041
+ ETHERTYPE_DECLTM = 0x803f
+ ETHERTYPE_DECMUMPS = 0x6009
+ ETHERTYPE_DECNETBIOS = 0x8040
+ ETHERTYPE_DELTACON = 0x86de
+ ETHERTYPE_DIDDLE = 0x4321
+ ETHERTYPE_DLOG1 = 0x660
+ ETHERTYPE_DLOG2 = 0x661
+ ETHERTYPE_DN = 0x6003
+ ETHERTYPE_DOGFIGHT = 0x1989
+ ETHERTYPE_DSMD = 0x8039
+ ETHERTYPE_ECMA = 0x803
+ ETHERTYPE_ENCRYPT = 0x803d
+ ETHERTYPE_ES = 0x805d
+ ETHERTYPE_EXCELAN = 0x8010
+ ETHERTYPE_EXPERDATA = 0x8049
+ ETHERTYPE_FLIP = 0x8146
+ ETHERTYPE_FLOWCONTROL = 0x8808
+ ETHERTYPE_FRARP = 0x808
+ ETHERTYPE_GENDYN = 0x8068
+ ETHERTYPE_HAYES = 0x8130
+ ETHERTYPE_HIPPI_FP = 0x8180
+ ETHERTYPE_HITACHI = 0x8820
+ ETHERTYPE_HP = 0x8005
+ ETHERTYPE_IEEEPUP = 0xa00
+ ETHERTYPE_IEEEPUPAT = 0xa01
+ ETHERTYPE_IMLBL = 0x4c42
+ ETHERTYPE_IMLBLDIAG = 0x424c
+ ETHERTYPE_IP = 0x800
+ ETHERTYPE_IPAS = 0x876c
+ ETHERTYPE_IPV6 = 0x86dd
+ ETHERTYPE_IPX = 0x8137
+ ETHERTYPE_IPXNEW = 0x8037
+ ETHERTYPE_KALPANA = 0x8582
+ ETHERTYPE_LANBRIDGE = 0x8038
+ ETHERTYPE_LANPROBE = 0x8888
+ ETHERTYPE_LAT = 0x6004
+ ETHERTYPE_LBACK = 0x9000
+ ETHERTYPE_LITTLE = 0x8060
+ ETHERTYPE_LOGICRAFT = 0x8148
+ ETHERTYPE_LOOPBACK = 0x9000
+ ETHERTYPE_MATRA = 0x807a
+ ETHERTYPE_MAX = 0xffff
+ ETHERTYPE_MERIT = 0x807c
+ ETHERTYPE_MICP = 0x873a
+ ETHERTYPE_MOPDL = 0x6001
+ ETHERTYPE_MOPRC = 0x6002
+ ETHERTYPE_MOTOROLA = 0x818d
+ ETHERTYPE_MPLS = 0x8847
+ ETHERTYPE_MPLS_MCAST = 0x8848
+ ETHERTYPE_MUMPS = 0x813f
+ ETHERTYPE_NBPCC = 0x3c04
+ ETHERTYPE_NBPCLAIM = 0x3c09
+ ETHERTYPE_NBPCLREQ = 0x3c05
+ ETHERTYPE_NBPCLRSP = 0x3c06
+ ETHERTYPE_NBPCREQ = 0x3c02
+ ETHERTYPE_NBPCRSP = 0x3c03
+ ETHERTYPE_NBPDG = 0x3c07
+ ETHERTYPE_NBPDGB = 0x3c08
+ ETHERTYPE_NBPDLTE = 0x3c0a
+ ETHERTYPE_NBPRAR = 0x3c0c
+ ETHERTYPE_NBPRAS = 0x3c0b
+ ETHERTYPE_NBPRST = 0x3c0d
+ ETHERTYPE_NBPSCD = 0x3c01
+ ETHERTYPE_NBPVCD = 0x3c00
+ ETHERTYPE_NBS = 0x802
+ ETHERTYPE_NCD = 0x8149
+ ETHERTYPE_NESTAR = 0x8006
+ ETHERTYPE_NETBEUI = 0x8191
+ ETHERTYPE_NOVELL = 0x8138
+ ETHERTYPE_NS = 0x600
+ ETHERTYPE_NSAT = 0x601
+ ETHERTYPE_NSCOMPAT = 0x807
+ ETHERTYPE_NTRAILER = 0x10
+ ETHERTYPE_OS9 = 0x7007
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+ ETHERTYPE_PPPOE = 0x8864
+ ETHERTYPE_PPPOEDISC = 0x8863
+ ETHERTYPE_PRIMENTS = 0x7031
+ ETHERTYPE_PUP = 0x200
+ ETHERTYPE_PUPAT = 0x200
+ ETHERTYPE_RACAL = 0x7030
+ ETHERTYPE_RATIONAL = 0x8150
+ ETHERTYPE_RAWFR = 0x6559
+ ETHERTYPE_RCL = 0x1995
+ ETHERTYPE_RDP = 0x8739
+ ETHERTYPE_RETIX = 0x80f2
+ ETHERTYPE_REVARP = 0x8035
+ ETHERTYPE_SCA = 0x6007
+ ETHERTYPE_SECTRA = 0x86db
+ ETHERTYPE_SECUREDATA = 0x876d
+ ETHERTYPE_SGITW = 0x817e
+ ETHERTYPE_SG_BOUNCE = 0x8016
+ ETHERTYPE_SG_DIAG = 0x8013
+ ETHERTYPE_SG_NETGAMES = 0x8014
+ ETHERTYPE_SG_RESV = 0x8015
+ ETHERTYPE_SIMNET = 0x5208
+ ETHERTYPE_SLOWPROTOCOLS = 0x8809
+ ETHERTYPE_SNA = 0x80d5
+ ETHERTYPE_SNMP = 0x814c
+ ETHERTYPE_SONIX = 0xfaf5
+ ETHERTYPE_SPIDER = 0x809f
+ ETHERTYPE_SPRITE = 0x500
+ ETHERTYPE_STP = 0x8181
+ ETHERTYPE_TALARIS = 0x812b
+ ETHERTYPE_TALARISMC = 0x852b
+ ETHERTYPE_TCPCOMP = 0x876b
+ ETHERTYPE_TCPSM = 0x9002
+ ETHERTYPE_TEC = 0x814f
+ ETHERTYPE_TIGAN = 0x802f
+ ETHERTYPE_TRAIL = 0x1000
+ ETHERTYPE_TRANSETHER = 0x6558
+ ETHERTYPE_TYMSHARE = 0x802e
+ ETHERTYPE_UBBST = 0x7005
+ ETHERTYPE_UBDEBUG = 0x900
+ ETHERTYPE_UBDIAGLOOP = 0x7002
+ ETHERTYPE_UBDL = 0x7000
+ ETHERTYPE_UBNIU = 0x7001
+ ETHERTYPE_UBNMC = 0x7003
+ ETHERTYPE_VALID = 0x1600
+ ETHERTYPE_VARIAN = 0x80dd
+ ETHERTYPE_VAXELN = 0x803b
+ ETHERTYPE_VEECO = 0x8067
+ ETHERTYPE_VEXP = 0x805b
+ ETHERTYPE_VGLAB = 0x8131
+ ETHERTYPE_VINES = 0xbad
+ ETHERTYPE_VINESECHO = 0xbaf
+ ETHERTYPE_VINESLOOP = 0xbae
+ ETHERTYPE_VITAL = 0xff00
+ ETHERTYPE_VLAN = 0x8100
+ ETHERTYPE_VLTLMAN = 0x8080
+ ETHERTYPE_VPROD = 0x805c
+ ETHERTYPE_VURESERVED = 0x8147
+ ETHERTYPE_WATERLOO = 0x8130
+ ETHERTYPE_WELLFLEET = 0x8103
+ ETHERTYPE_X25 = 0x805
+ ETHERTYPE_X75 = 0x801
+ ETHERTYPE_XNSSM = 0x9001
+ ETHERTYPE_XTP = 0x817d
+ ETHER_ADDR_LEN = 0x6
+ ETHER_CRC_LEN = 0x4
+ ETHER_CRC_POLY_BE = 0x4c11db6
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MAX_LEN_JUMBO = 0x233a
+ ETHER_MIN_LEN = 0x40
+ ETHER_PPPOE_ENCAP_LEN = 0x8
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = 0x2
+ EVFILT_PROC = 0x4
+ EVFILT_READ = 0x0
+ EVFILT_SIGNAL = 0x5
+ EVFILT_SYSCOUNT = 0x7
+ EVFILT_TIMER = 0x6
+ EVFILT_VNODE = 0x3
+ EVFILT_WRITE = 0x1
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x100
+ FLUSHO = 0x800000
+ F_CLOSEM = 0xa
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0xc
+ F_FSCTL = -0x80000000
+ F_FSDIRMASK = 0x70000000
+ F_FSIN = 0x10000000
+ F_FSINOUT = 0x30000000
+ F_FSOUT = 0x20000000
+ F_FSPRIV = 0x8000
+ F_FSVOID = 0x40000000
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETNOSIGPIPE = 0xd
+ F_GETOWN = 0x5
+ F_MAXFD = 0xb
+ F_OK = 0x0
+ F_PARAM_MASK = 0xfff
+ F_PARAM_MAX = 0xfff
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETNOSIGPIPE = 0xe
+ F_SETOWN = 0x6
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+ IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8f52
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BRIDGE = 0xd1
+ IFT_BSC = 0x53
+ IFT_CARP = 0xf8
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ECONET = 0xce
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf2
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INFINIBAND = 0xc7
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L2VLAN = 0x87
+ IFT_L3IPVLAN = 0x88
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf5
+ IFT_PFSYNC = 0xf6
+ IFT_PLC = 0xae
+ IFT_PON155 = 0xcf
+ IFT_PON622 = 0xd0
+ IFT_POS = 0xab
+ IFT_PPP = 0x17
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPATM = 0xc5
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf1
+ IFT_Q2931 = 0xc9
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SIPSIG = 0xcc
+ IFT_SIPTG = 0xcb
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_STF = 0xd7
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TELINK = 0xc8
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VIRTUALTG = 0xca
+ IFT_VOICEDID = 0xd5
+ IFT_VOICEEM = 0x64
+ IFT_VOICEEMFGD = 0xd3
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFGDEANA = 0xd4
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERCABLE = 0xc6
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LOOPBACKNET = 0x7f
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_IPV6_ICMP = 0x3a
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x34
+ IPPROTO_MOBILE = 0x37
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PFSYNC = 0xf0
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPPROTO_VRRP = 0x70
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DSTOPTS = 0x32
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_HLIMDEC = 0x1
+ IPV6_HOPLIMIT = 0x2f
+ IPV6_HOPOPTS = 0x31
+ IPV6_IPSEC_POLICY = 0x1c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
+ IPV6_PATHMTU = 0x2c
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVDSTOPTS = 0x28
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRTHDR = 0x26
+ IPV6_RECVTCLASS = 0x39
+ IPV6_RTHDR = 0x33
+ IPV6_RTHDRDSTOPTS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x3d
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_USE_MIN_MTU = 0x2a
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_EF = 0x8000
+ IP_ERRORMTU = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPSEC_POLICY = 0x16
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0x14
+ IP_MF = 0x2000
+ IP_MINFRAGSIZE = 0x45
+ IP_MINTTL = 0x18
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x1
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVIF = 0x14
+ IP_RECVOPTS = 0x5
+ IP_RECVRETOPTS = 0x6
+ IP_RECVTTL = 0x17
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x6
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ALIGNMENT_16MB = 0x18000000
+ MAP_ALIGNMENT_1TB = 0x28000000
+ MAP_ALIGNMENT_256TB = 0x30000000
+ MAP_ALIGNMENT_4GB = 0x20000000
+ MAP_ALIGNMENT_64KB = 0x10000000
+ MAP_ALIGNMENT_64PB = 0x38000000
+ MAP_ALIGNMENT_MASK = -0x1000000
+ MAP_ALIGNMENT_SHIFT = 0x18
+ MAP_ANON = 0x1000
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_HASSEMAPHORE = 0x200
+ MAP_INHERIT = 0x80
+ MAP_INHERIT_COPY = 0x1
+ MAP_INHERIT_DEFAULT = 0x1
+ MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_STACK = 0x2000
+ MAP_TRYFIXED = 0x400
+ MAP_WIRED = 0x800
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MSG_BCAST = 0x100
+ MSG_CMSG_CLOEXEC = 0x800
+ MSG_CONTROLMBUF = 0x2000000
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_IOVUSRSPACE = 0x4000000
+ MSG_LENUSRSPACE = 0x8000000
+ MSG_MCAST = 0x200
+ MSG_NAMEMBUF = 0x1000000
+ MSG_NBIO = 0x1000
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_USERFLAGS = 0xffffff
+ MSG_WAITALL = 0x40
+ MS_ASYNC = 0x1
+ MS_INVALIDATE = 0x2
+ MS_SYNC = 0x4
+ NAME_MAX = 0x1ff
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x5
+ NET_RT_MAXID = 0x6
+ NET_RT_OIFLIST = 0x4
+ NET_RT_OOIFLIST = 0x3
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXTEND = 0x4
+ NOTE_FORK = 0x40000000
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_PCTRLMASK = 0xf0000000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ OFIOGETBMAP = 0xc004667a
+ ONLCR = 0x2
+ ONLRET = 0x40
+ ONOCR = 0x20
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_ALT_IO = 0x40000
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x400000
+ O_CREAT = 0x200
+ O_DIRECT = 0x80000
+ O_DIRECTORY = 0x200000
+ O_DSYNC = 0x10000
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_NOSIGPIPE = 0x1000000
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x20000
+ O_SHLOCK = 0x10
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PRI_IOFLUSH = 0x7c
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ RLIMIT_AS = 0xa
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_MAX = 0x9
+ RTAX_NETMASK = 0x2
+ RTAX_TAG = 0x8
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_NETMASK = 0x4
+ RTA_TAG = 0x100
+ RTF_ANNOUNCE = 0x20000
+ RTF_BLACKHOLE = 0x1000
+ RTF_CLONED = 0x2000
+ RTF_CLONING = 0x100
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+ RTF_MASK = 0x80
+ RTF_MODIFIED = 0x20
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_REJECT = 0x8
+ RTF_SRC = 0x10000
+ RTF_STATIC = 0x800
+ RTF_UP = 0x1
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_CHGADDR = 0x15
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_GET = 0x4
+ RTM_IEEE80211 = 0x11
+ RTM_IFANNOUNCE = 0x10
+ RTM_IFINFO = 0x14
+ RTM_LLINFO_UPD = 0x13
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_OIFINFO = 0xf
+ RTM_OLDADD = 0x9
+ RTM_OLDDEL = 0xa
+ RTM_OOIFINFO = 0xe
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_SETGATE = 0x12
+ RTM_VERSION = 0x4
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ SCM_CREDS = 0x4
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x8
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80906931
+ SIOCADDRT = 0x8038720a
+ SIOCAIFADDR = 0x8040691a
+ SIOCALIFADDR = 0x8118691c
+ SIOCATMARK = 0x40047307
+ SIOCDELMULTI = 0x80906932
+ SIOCDELRT = 0x8038720b
+ SIOCDIFADDR = 0x80906919
+ SIOCDIFPHYADDR = 0x80906949
+ SIOCDLIFADDR = 0x8118691e
+ SIOCGDRVSPEC = 0xc028697b
+ SIOCGETPFSYNC = 0xc09069f8
+ SIOCGETSGCNT = 0xc0207534
+ SIOCGETVIFCNT = 0xc0287533
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0906921
+ SIOCGIFADDRPREF = 0xc0986920
+ SIOCGIFALIAS = 0xc040691b
+ SIOCGIFBRDADDR = 0xc0906923
+ SIOCGIFCAP = 0xc0206976
+ SIOCGIFCONF = 0xc0106926
+ SIOCGIFDATA = 0xc0986985
+ SIOCGIFDLT = 0xc0906977
+ SIOCGIFDSTADDR = 0xc0906922
+ SIOCGIFFLAGS = 0xc0906911
+ SIOCGIFGENERIC = 0xc090693a
+ SIOCGIFMEDIA = 0xc0306936
+ SIOCGIFMETRIC = 0xc0906917
+ SIOCGIFMTU = 0xc090697e
+ SIOCGIFNETMASK = 0xc0906925
+ SIOCGIFPDSTADDR = 0xc0906948
+ SIOCGIFPSRCADDR = 0xc0906947
+ SIOCGLIFADDR = 0xc118691d
+ SIOCGLIFPHYADDR = 0xc118694b
+ SIOCGLINKSTR = 0xc0286987
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGVH = 0xc0906983
+ SIOCIFCREATE = 0x8090697a
+ SIOCIFDESTROY = 0x80906979
+ SIOCIFGCLONERS = 0xc0106978
+ SIOCINITIFADDR = 0xc0706984
+ SIOCSDRVSPEC = 0x8028697b
+ SIOCSETPFSYNC = 0x809069f7
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8090690c
+ SIOCSIFADDRPREF = 0x8098691f
+ SIOCSIFBRDADDR = 0x80906913
+ SIOCSIFCAP = 0x80206975
+ SIOCSIFDSTADDR = 0x8090690e
+ SIOCSIFFLAGS = 0x80906910
+ SIOCSIFGENERIC = 0x80906939
+ SIOCSIFMEDIA = 0xc0906935
+ SIOCSIFMETRIC = 0x80906918
+ SIOCSIFMTU = 0x8090697f
+ SIOCSIFNETMASK = 0x80906916
+ SIOCSIFPHYADDR = 0x80406946
+ SIOCSLIFPHYADDR = 0x8118694a
+ SIOCSLINKSTR = 0x80286988
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSVH = 0xc0906982
+ SIOCZIFDATA = 0xc0986986
+ SOCK_CLOEXEC = 0x10000000
+ SOCK_DGRAM = 0x2
+ SOCK_FLAGS_MASK = 0xf0000000
+ SOCK_NONBLOCK = 0x20000000
+ SOCK_NOSIGPIPE = 0x40000000
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_ACCEPTFILTER = 0x1000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_NOHEADER = 0x100a
+ SO_NOSIGPIPE = 0x800
+ SO_OOBINLINE = 0x100
+ SO_OVERFLOWED = 0x1009
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x100c
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x100b
+ SO_TIMESTAMP = 0x2000
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ SYSCTL_VERSION = 0x1000000
+ SYSCTL_VERS_0 = 0x0
+ SYSCTL_VERS_1 = 0x1000000
+ SYSCTL_VERS_MASK = 0xff000000
+ S_ARCH1 = 0x10000
+ S_ARCH2 = 0x20000
+ S_BLKSIZE = 0x200
+ S_IEXEC = 0x40
+ S_IFBLK = 0x6000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFIFO = 0x1000
+ S_IFLNK = 0xa000
+ S_IFMT = 0xf000
+ S_IFREG = 0x8000
+ S_IFSOCK = 0xc000
+ S_IFWHT = 0xe000
+ S_IREAD = 0x100
+ S_IRGRP = 0x20
+ S_IROTH = 0x4
+ S_IRUSR = 0x100
+ S_IRWXG = 0x38
+ S_IRWXO = 0x7
+ S_IRWXU = 0x1c0
+ S_ISGID = 0x400
+ S_ISTXT = 0x200
+ S_ISUID = 0x800
+ S_ISVTX = 0x200
+ S_IWGRP = 0x10
+ S_IWOTH = 0x2
+ S_IWRITE = 0x80
+ S_IWUSR = 0x80
+ S_IXGRP = 0x8
+ S_IXOTH = 0x1
+ S_IXUSR = 0x40
+ S_LOGIN_SET = 0x1
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_CONGCTL = 0x20
+ TCP_KEEPCNT = 0x6
+ TCP_KEEPIDLE = 0x3
+ TCP_KEEPINIT = 0x7
+ TCP_KEEPINTVL = 0x5
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0x10
+ TCP_MINMSS = 0xd8
+ TCP_MSS = 0x218
+ TCP_NODELAY = 0x1
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDCDTIMESTAMP = 0x40107458
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLAG_CDTRCTS = 0x10
+ TIOCFLAG_CLOCAL = 0x2
+ TIOCFLAG_CRTSCTS = 0x4
+ TIOCFLAG_MDMBUF = 0x8
+ TIOCFLAG_SOFTCAR = 0x1
+ TIOCFLUSH = 0x80047410
+ TIOCGETA = 0x402c7413
+ TIOCGETD = 0x4004741a
+ TIOCGFLAGS = 0x4004745d
+ TIOCGLINED = 0x40207442
+ TIOCGPGRP = 0x40047477
+ TIOCGQSIZE = 0x40047481
+ TIOCGRANTPT = 0x20007447
+ TIOCGSID = 0x40047463
+ TIOCGSIZE = 0x40087468
+ TIOCGWINSZ = 0x40087468
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCPTMGET = 0x40287446
+ TIOCPTSNAME = 0x40287448
+ TIOCRCVFRAME = 0x80087445
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007461
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x802c7414
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x2000745f
+ TIOCSLINED = 0x80207443
+ TIOCSPGRP = 0x80047476
+ TIOCSQSIZE = 0x80047480
+ TIOCSSIZE = 0x80087467
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x80047465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
+ TIOCXMTFRAME = 0x80087444
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VTIME = 0x11
+ VWERASE = 0x4
+ WALL = 0x8
+ WALLSIG = 0x8
+ WALTSIG = 0x4
+ WCLONE = 0x4
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+ WNOWAIT = 0x10000
+ WNOZOMBIE = 0x20000
+ WOPTSCHECKED = 0x40000
+ WSTOPPED = 0x7f
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0x23)
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
+ EBADMSG = syscall.Errno(0x58)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x57)
+ ECHILD = syscall.Errno(0xa)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0xb)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EFTYPE = syscall.Errno(0x4f)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EIDRM = syscall.Errno(0x52)
+ EILSEQ = syscall.Errno(0x55)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ ELAST = syscall.Errno(0x60)
+ ELOOP = syscall.Errno(0x3e)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ EMULTIHOP = syscall.Errno(0x5e)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENEEDAUTH = syscall.Errno(0x51)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOATTR = syscall.Errno(0x5d)
+ ENOBUFS = syscall.Errno(0x37)
+ ENODATA = syscall.Errno(0x59)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOLCK = syscall.Errno(0x4d)
+ ENOLINK = syscall.Errno(0x5f)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x53)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSR = syscall.Errno(0x5a)
+ ENOSTR = syscall.Errno(0x5b)
+ ENOSYS = syscall.Errno(0x4e)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x56)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x54)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
+ EPROTO = syscall.Errno(0x60)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMOTE = syscall.Errno(0x47)
+ EROFS = syscall.Errno(0x1e)
+ ERPCMISMATCH = syscall.Errno(0x49)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESTALE = syscall.Errno(0x46)
+ ETIME = syscall.Errno(0x5c)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0x23)
+ EXDEV = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINFO = syscall.Signal(0x1d)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGPWR = syscall.Signal(0x20)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "device not configured",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource deadlock avoided",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device busy",
+ 17: "file exists",
+ 18: "cross-device link",
+ 19: "operation not supported by device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "result too large or too small",
+ 35: "resource temporarily unavailable",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol option not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol family",
+ 48: "address already in use",
+ 49: "can't assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "socket is already connected",
+ 57: "socket is not connected",
+ 58: "can't send after socket shutdown",
+ 59: "too many references: can't splice",
+ 60: "connection timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disc quota exceeded",
+ 70: "stale NFS file handle",
+ 71: "too many levels of remote in path",
+ 72: "RPC struct is bad",
+ 73: "RPC version wrong",
+ 74: "RPC prog. not avail",
+ 75: "program version wrong",
+ 76: "bad procedure for program",
+ 77: "no locks available",
+ 78: "function not implemented",
+ 79: "inappropriate file type or format",
+ 80: "authentication error",
+ 81: "need authenticator",
+ 82: "identifier removed",
+ 83: "no message of desired type",
+ 84: "value too large to be stored in data type",
+ 85: "illegal byte sequence",
+ 86: "not supported",
+ 87: "operation Canceled",
+ 88: "bad or Corrupt message",
+ 89: "no message available",
+ 90: "no STREAM resources",
+ 91: "not a STREAM",
+ 92: "STREAM ioctl timeout",
+ 93: "attribute not found",
+ 94: "multihop attempted",
+ 95: "link has been severed",
+ 96: "protocol error",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/BPT trap",
+ 6: "abort trap",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "stopped (signal)",
+ 18: "stopped",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "cputime limit exceeded",
+ 25: "filesize limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window size changes",
+ 29: "information request",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+ 32: "power fail/restart",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
new file mode 100644
index 000000000..ac85ca645
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go
@@ -0,0 +1,1688 @@
+// 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/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
new file mode 100644
index 000000000..3322e998d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go
@@ -0,0 +1,1584 @@
+// mkerrors.sh -m32
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build 386,openbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m32 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_APPLETALK = 0x10
+ AF_BLUETOOTH = 0x20
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1a
+ AF_ECMA = 0x8
+ AF_ENCAP = 0x1c
+ AF_HYLINK = 0xf
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x18
+ AF_IPX = 0x17
+ AF_ISDN = 0x1a
+ AF_ISO = 0x7
+ AF_KEY = 0x1e
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x24
+ AF_MPLS = 0x21
+ AF_NATM = 0x1b
+ AF_NS = 0x6
+ AF_OSI = 0x7
+ AF_PUP = 0x4
+ AF_ROUTE = 0x11
+ AF_SIP = 0x1d
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B9600 = 0x2580
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDIRFILT = 0x4004427c
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc008427b
+ BIOCGETIF = 0x4020426b
+ BIOCGFILDROP = 0x40044278
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRSIG = 0x40044273
+ BIOCGRTIMEOUT = 0x400c426e
+ BIOCGSTATS = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCLOCK = 0x20004276
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDIRFILT = 0x8004427d
+ BIOCSDLT = 0x8004427a
+ BIOCSETF = 0x80084267
+ BIOCSETIF = 0x8020426c
+ BIOCSETWF = 0x80084277
+ BIOCSFILDROP = 0x80044279
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRSIG = 0x80044272
+ BIOCSRTIMEOUT = 0x800c426d
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIRECTION_IN = 0x1
+ BPF_DIRECTION_OUT = 0x2
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x200000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0xff
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+ DLT_ARCNET = 0x7
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AX25 = 0x3
+ DLT_CHAOS = 0x5
+ DLT_C_HDLC = 0x68
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_ENC = 0xd
+ DLT_FDDI = 0xa
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_LOOP = 0xc
+ DLT_MPLS = 0xdb
+ DLT_NULL = 0x0
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0x10
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_SERIAL = 0x32
+ DLT_PRONET = 0x4
+ DLT_RAW = 0xe
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xf
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EMT_TAGOVF = 0x1
+ EMUL_ENABLED = 0x1
+ EMUL_NATIVE = 0x2
+ ENDRUNDISC = 0x9
+ ETHERMIN = 0x2e
+ ETHERMTU = 0x5dc
+ ETHERTYPE_8023 = 0x4
+ ETHERTYPE_AARP = 0x80f3
+ ETHERTYPE_ACCTON = 0x8390
+ ETHERTYPE_AEONIC = 0x8036
+ ETHERTYPE_ALPHA = 0x814a
+ ETHERTYPE_AMBER = 0x6008
+ ETHERTYPE_AMOEBA = 0x8145
+ ETHERTYPE_AOE = 0x88a2
+ ETHERTYPE_APOLLO = 0x80f7
+ ETHERTYPE_APOLLODOMAIN = 0x8019
+ ETHERTYPE_APPLETALK = 0x809b
+ ETHERTYPE_APPLITEK = 0x80c7
+ ETHERTYPE_ARGONAUT = 0x803a
+ ETHERTYPE_ARP = 0x806
+ ETHERTYPE_AT = 0x809b
+ ETHERTYPE_ATALK = 0x809b
+ ETHERTYPE_ATOMIC = 0x86df
+ ETHERTYPE_ATT = 0x8069
+ ETHERTYPE_ATTSTANFORD = 0x8008
+ ETHERTYPE_AUTOPHON = 0x806a
+ ETHERTYPE_AXIS = 0x8856
+ ETHERTYPE_BCLOOP = 0x9003
+ ETHERTYPE_BOFL = 0x8102
+ ETHERTYPE_CABLETRON = 0x7034
+ ETHERTYPE_CHAOS = 0x804
+ ETHERTYPE_COMDESIGN = 0x806c
+ ETHERTYPE_COMPUGRAPHIC = 0x806d
+ ETHERTYPE_COUNTERPOINT = 0x8062
+ ETHERTYPE_CRONUS = 0x8004
+ ETHERTYPE_CRONUSVLN = 0x8003
+ ETHERTYPE_DCA = 0x1234
+ ETHERTYPE_DDE = 0x807b
+ ETHERTYPE_DEBNI = 0xaaaa
+ ETHERTYPE_DECAM = 0x8048
+ ETHERTYPE_DECCUST = 0x6006
+ ETHERTYPE_DECDIAG = 0x6005
+ ETHERTYPE_DECDNS = 0x803c
+ ETHERTYPE_DECDTS = 0x803e
+ ETHERTYPE_DECEXPER = 0x6000
+ ETHERTYPE_DECLAST = 0x8041
+ ETHERTYPE_DECLTM = 0x803f
+ ETHERTYPE_DECMUMPS = 0x6009
+ ETHERTYPE_DECNETBIOS = 0x8040
+ ETHERTYPE_DELTACON = 0x86de
+ ETHERTYPE_DIDDLE = 0x4321
+ ETHERTYPE_DLOG1 = 0x660
+ ETHERTYPE_DLOG2 = 0x661
+ ETHERTYPE_DN = 0x6003
+ ETHERTYPE_DOGFIGHT = 0x1989
+ ETHERTYPE_DSMD = 0x8039
+ ETHERTYPE_ECMA = 0x803
+ ETHERTYPE_ENCRYPT = 0x803d
+ ETHERTYPE_ES = 0x805d
+ ETHERTYPE_EXCELAN = 0x8010
+ ETHERTYPE_EXPERDATA = 0x8049
+ ETHERTYPE_FLIP = 0x8146
+ ETHERTYPE_FLOWCONTROL = 0x8808
+ ETHERTYPE_FRARP = 0x808
+ ETHERTYPE_GENDYN = 0x8068
+ ETHERTYPE_HAYES = 0x8130
+ ETHERTYPE_HIPPI_FP = 0x8180
+ ETHERTYPE_HITACHI = 0x8820
+ ETHERTYPE_HP = 0x8005
+ ETHERTYPE_IEEEPUP = 0xa00
+ ETHERTYPE_IEEEPUPAT = 0xa01
+ ETHERTYPE_IMLBL = 0x4c42
+ ETHERTYPE_IMLBLDIAG = 0x424c
+ ETHERTYPE_IP = 0x800
+ ETHERTYPE_IPAS = 0x876c
+ ETHERTYPE_IPV6 = 0x86dd
+ ETHERTYPE_IPX = 0x8137
+ ETHERTYPE_IPXNEW = 0x8037
+ ETHERTYPE_KALPANA = 0x8582
+ ETHERTYPE_LANBRIDGE = 0x8038
+ ETHERTYPE_LANPROBE = 0x8888
+ ETHERTYPE_LAT = 0x6004
+ ETHERTYPE_LBACK = 0x9000
+ ETHERTYPE_LITTLE = 0x8060
+ ETHERTYPE_LLDP = 0x88cc
+ ETHERTYPE_LOGICRAFT = 0x8148
+ ETHERTYPE_LOOPBACK = 0x9000
+ ETHERTYPE_MATRA = 0x807a
+ ETHERTYPE_MAX = 0xffff
+ ETHERTYPE_MERIT = 0x807c
+ ETHERTYPE_MICP = 0x873a
+ ETHERTYPE_MOPDL = 0x6001
+ ETHERTYPE_MOPRC = 0x6002
+ ETHERTYPE_MOTOROLA = 0x818d
+ ETHERTYPE_MPLS = 0x8847
+ ETHERTYPE_MPLS_MCAST = 0x8848
+ ETHERTYPE_MUMPS = 0x813f
+ ETHERTYPE_NBPCC = 0x3c04
+ ETHERTYPE_NBPCLAIM = 0x3c09
+ ETHERTYPE_NBPCLREQ = 0x3c05
+ ETHERTYPE_NBPCLRSP = 0x3c06
+ ETHERTYPE_NBPCREQ = 0x3c02
+ ETHERTYPE_NBPCRSP = 0x3c03
+ ETHERTYPE_NBPDG = 0x3c07
+ ETHERTYPE_NBPDGB = 0x3c08
+ ETHERTYPE_NBPDLTE = 0x3c0a
+ ETHERTYPE_NBPRAR = 0x3c0c
+ ETHERTYPE_NBPRAS = 0x3c0b
+ ETHERTYPE_NBPRST = 0x3c0d
+ ETHERTYPE_NBPSCD = 0x3c01
+ ETHERTYPE_NBPVCD = 0x3c00
+ ETHERTYPE_NBS = 0x802
+ ETHERTYPE_NCD = 0x8149
+ ETHERTYPE_NESTAR = 0x8006
+ ETHERTYPE_NETBEUI = 0x8191
+ ETHERTYPE_NOVELL = 0x8138
+ ETHERTYPE_NS = 0x600
+ ETHERTYPE_NSAT = 0x601
+ ETHERTYPE_NSCOMPAT = 0x807
+ ETHERTYPE_NTRAILER = 0x10
+ ETHERTYPE_OS9 = 0x7007
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+ ETHERTYPE_PPPOE = 0x8864
+ ETHERTYPE_PPPOEDISC = 0x8863
+ ETHERTYPE_PRIMENTS = 0x7031
+ ETHERTYPE_PUP = 0x200
+ ETHERTYPE_PUPAT = 0x200
+ ETHERTYPE_QINQ = 0x88a8
+ ETHERTYPE_RACAL = 0x7030
+ ETHERTYPE_RATIONAL = 0x8150
+ ETHERTYPE_RAWFR = 0x6559
+ ETHERTYPE_RCL = 0x1995
+ ETHERTYPE_RDP = 0x8739
+ ETHERTYPE_RETIX = 0x80f2
+ ETHERTYPE_REVARP = 0x8035
+ ETHERTYPE_SCA = 0x6007
+ ETHERTYPE_SECTRA = 0x86db
+ ETHERTYPE_SECUREDATA = 0x876d
+ ETHERTYPE_SGITW = 0x817e
+ ETHERTYPE_SG_BOUNCE = 0x8016
+ ETHERTYPE_SG_DIAG = 0x8013
+ ETHERTYPE_SG_NETGAMES = 0x8014
+ ETHERTYPE_SG_RESV = 0x8015
+ ETHERTYPE_SIMNET = 0x5208
+ ETHERTYPE_SLOW = 0x8809
+ ETHERTYPE_SNA = 0x80d5
+ ETHERTYPE_SNMP = 0x814c
+ ETHERTYPE_SONIX = 0xfaf5
+ ETHERTYPE_SPIDER = 0x809f
+ ETHERTYPE_SPRITE = 0x500
+ ETHERTYPE_STP = 0x8181
+ ETHERTYPE_TALARIS = 0x812b
+ ETHERTYPE_TALARISMC = 0x852b
+ ETHERTYPE_TCPCOMP = 0x876b
+ ETHERTYPE_TCPSM = 0x9002
+ ETHERTYPE_TEC = 0x814f
+ ETHERTYPE_TIGAN = 0x802f
+ ETHERTYPE_TRAIL = 0x1000
+ ETHERTYPE_TRANSETHER = 0x6558
+ ETHERTYPE_TYMSHARE = 0x802e
+ ETHERTYPE_UBBST = 0x7005
+ ETHERTYPE_UBDEBUG = 0x900
+ ETHERTYPE_UBDIAGLOOP = 0x7002
+ ETHERTYPE_UBDL = 0x7000
+ ETHERTYPE_UBNIU = 0x7001
+ ETHERTYPE_UBNMC = 0x7003
+ ETHERTYPE_VALID = 0x1600
+ ETHERTYPE_VARIAN = 0x80dd
+ ETHERTYPE_VAXELN = 0x803b
+ ETHERTYPE_VEECO = 0x8067
+ ETHERTYPE_VEXP = 0x805b
+ ETHERTYPE_VGLAB = 0x8131
+ ETHERTYPE_VINES = 0xbad
+ ETHERTYPE_VINESECHO = 0xbaf
+ ETHERTYPE_VINESLOOP = 0xbae
+ ETHERTYPE_VITAL = 0xff00
+ ETHERTYPE_VLAN = 0x8100
+ ETHERTYPE_VLTLMAN = 0x8080
+ ETHERTYPE_VPROD = 0x805c
+ ETHERTYPE_VURESERVED = 0x8147
+ ETHERTYPE_WATERLOO = 0x8130
+ ETHERTYPE_WELLFLEET = 0x8103
+ ETHERTYPE_X25 = 0x805
+ ETHERTYPE_X75 = 0x801
+ ETHERTYPE_XNSSM = 0x9001
+ ETHERTYPE_XTP = 0x817d
+ ETHER_ADDR_LEN = 0x6
+ ETHER_ALIGN = 0x2
+ ETHER_CRC_LEN = 0x4
+ ETHER_CRC_POLY_BE = 0x4c11db6
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_DIX_LEN = 0x600
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MIN_LEN = 0x40
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = -0x3
+ EVFILT_PROC = -0x5
+ EVFILT_READ = -0x1
+ EVFILT_SIGNAL = -0x6
+ EVFILT_SYSCOUNT = 0x7
+ EVFILT_TIMER = -0x7
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FLUSHO = 0x800000
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0xa
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETOWN = 0x5
+ F_OK = 0x0
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETOWN = 0x6
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+ IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8e52
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BLUETOOTH = 0xf8
+ IFT_BRIDGE = 0xd1
+ IFT_BSC = 0x53
+ IFT_CARP = 0xf7
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DUMMY = 0xf1
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ECONET = 0xce
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf3
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INFINIBAND = 0xc7
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L2VLAN = 0x87
+ IFT_L3IPVLAN = 0x88
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf5
+ IFT_PFLOW = 0xf9
+ IFT_PFSYNC = 0xf6
+ IFT_PLC = 0xae
+ IFT_PON155 = 0xcf
+ IFT_PON622 = 0xd0
+ IFT_POS = 0xab
+ IFT_PPP = 0x17
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPATM = 0xc5
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf2
+ IFT_Q2931 = 0xc9
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SIPSIG = 0xcc
+ IFT_SIPTG = 0xcb
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TELINK = 0xc8
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VIRTUALTG = 0xca
+ IFT_VOICEDID = 0xd5
+ IFT_VOICEEM = 0x64
+ IFT_VOICEEMFGD = 0xd3
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFGDEANA = 0xd4
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERCABLE = 0xc6
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LOOPBACKNET = 0x7f
+ IN_RFC3021_HOST = 0x1
+ IN_RFC3021_NET = 0xfffffffe
+ IN_RFC3021_NSHIFT = 0x1f
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DIVERT = 0x102
+ IPPROTO_DIVERT_INIT = 0x2
+ IPPROTO_DIVERT_RESP = 0x1
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x103
+ IPPROTO_MOBILE = 0x37
+ IPPROTO_MPLS = 0x89
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PFSYNC = 0xf0
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPV6_AUTH_LEVEL = 0x35
+ IPV6_AUTOFLOWLABEL = 0x3b
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DSTOPTS = 0x32
+ IPV6_ESP_NETWORK_LEVEL = 0x37
+ IPV6_ESP_TRANS_LEVEL = 0x36
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_HLIMDEC = 0x1
+ IPV6_HOPLIMIT = 0x2f
+ IPV6_HOPOPTS = 0x31
+ IPV6_IPCOMP_LEVEL = 0x3c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
+ IPV6_OPTIONS = 0x1
+ IPV6_PATHMTU = 0x2c
+ IPV6_PIPEX = 0x3f
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVDSTOPTS = 0x28
+ IPV6_RECVDSTPORT = 0x40
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRTHDR = 0x26
+ IPV6_RECVTCLASS = 0x39
+ IPV6_RTABLE = 0x1021
+ IPV6_RTHDR = 0x33
+ IPV6_RTHDRDSTOPTS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x3d
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_USE_MIN_MTU = 0x2a
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_AUTH_LEVEL = 0x14
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DIVERTFL = 0x1022
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_ESP_NETWORK_LEVEL = 0x16
+ IP_ESP_TRANS_LEVEL = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPCOMP_LEVEL = 0x1d
+ IP_IPSECFLOWINFO = 0x24
+ IP_IPSEC_LOCAL_AUTH = 0x1b
+ IP_IPSEC_LOCAL_CRED = 0x19
+ IP_IPSEC_LOCAL_ID = 0x17
+ IP_IPSEC_REMOTE_AUTH = 0x1c
+ IP_IPSEC_REMOTE_CRED = 0x1a
+ IP_IPSEC_REMOTE_ID = 0x18
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MF = 0x2000
+ IP_MINTTL = 0x20
+ IP_MIN_MEMBERSHIPS = 0xf
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x1
+ IP_PIPEX = 0x22
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVDSTPORT = 0x21
+ IP_RECVIF = 0x1e
+ IP_RECVOPTS = 0x5
+ IP_RECVRETOPTS = 0x6
+ IP_RECVRTABLE = 0x23
+ IP_RECVTTL = 0x1f
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_RTABLE = 0x1021
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x6
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+ MAP_COPY = 0x4
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_FLAGMASK = 0x1ff7
+ MAP_HASSEMAPHORE = 0x200
+ MAP_INHERIT = 0x80
+ MAP_INHERIT_COPY = 0x1
+ MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NOEXTEND = 0x100
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_TRYFIXED = 0x400
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MSG_BCAST = 0x100
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_MCAST = 0x200
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MS_ASYNC = 0x1
+ MS_INVALIDATE = 0x4
+ MS_SYNC = 0x2
+ NAME_MAX = 0xff
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+ NET_RT_MAXID = 0x6
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EOF = 0x2
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXTEND = 0x4
+ NOTE_FORK = 0x40000000
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_PCTRLMASK = 0xf0000000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_TRUNCATE = 0x80
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ ONLCR = 0x2
+ ONLRET = 0x80
+ ONOCR = 0x40
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x10000
+ O_CREAT = 0x200
+ O_DIRECTORY = 0x20000
+ O_DSYNC = 0x80
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x80
+ O_SHLOCK = 0x10
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PF_FLUSH = 0x1
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ PT_MASK = 0x3ff000
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_LABEL = 0xa
+ RTAX_MAX = 0xb
+ RTAX_NETMASK = 0x2
+ RTAX_SRC = 0x8
+ RTAX_SRCMASK = 0x9
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_LABEL = 0x400
+ RTA_NETMASK = 0x4
+ RTA_SRC = 0x100
+ RTA_SRCMASK = 0x200
+ RTF_ANNOUNCE = 0x4000
+ RTF_BLACKHOLE = 0x1000
+ RTF_CLONED = 0x10000
+ RTF_CLONING = 0x100
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_FMASK = 0x10f808
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+ RTF_MASK = 0x80
+ RTF_MODIFIED = 0x20
+ RTF_MPATH = 0x40000
+ RTF_MPLS = 0x100000
+ RTF_PERMANENT_ARP = 0x2000
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_PROTO3 = 0x2000
+ RTF_REJECT = 0x8
+ RTF_SOURCE = 0x20000
+ RTF_STATIC = 0x800
+ RTF_TUNNEL = 0x100000
+ RTF_UP = 0x1
+ RTF_USETRAILERS = 0x8000
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_DESYNC = 0x10
+ RTM_GET = 0x4
+ RTM_IFANNOUNCE = 0xf
+ RTM_IFINFO = 0xe
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MAXSIZE = 0x800
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_VERSION = 0x5
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RT_TABLEID_MAX = 0xff
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x4
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80206931
+ SIOCAIFADDR = 0x8040691a
+ SIOCAIFGROUP = 0x80246987
+ SIOCALIFADDR = 0x8218691c
+ SIOCATMARK = 0x40047307
+ SIOCBRDGADD = 0x8054693c
+ SIOCBRDGADDS = 0x80546941
+ SIOCBRDGARL = 0x806e694d
+ SIOCBRDGDADDR = 0x81286947
+ SIOCBRDGDEL = 0x8054693d
+ SIOCBRDGDELS = 0x80546942
+ SIOCBRDGFLUSH = 0x80546948
+ SIOCBRDGFRL = 0x806e694e
+ SIOCBRDGGCACHE = 0xc0146941
+ SIOCBRDGGFD = 0xc0146952
+ SIOCBRDGGHT = 0xc0146951
+ SIOCBRDGGIFFLGS = 0xc054693e
+ SIOCBRDGGMA = 0xc0146953
+ SIOCBRDGGPARAM = 0xc03c6958
+ SIOCBRDGGPRI = 0xc0146950
+ SIOCBRDGGRL = 0xc028694f
+ SIOCBRDGGSIFS = 0xc054693c
+ SIOCBRDGGTO = 0xc0146946
+ SIOCBRDGIFS = 0xc0546942
+ SIOCBRDGRTS = 0xc0186943
+ SIOCBRDGSADDR = 0xc1286944
+ SIOCBRDGSCACHE = 0x80146940
+ SIOCBRDGSFD = 0x80146952
+ SIOCBRDGSHT = 0x80146951
+ SIOCBRDGSIFCOST = 0x80546955
+ SIOCBRDGSIFFLGS = 0x8054693f
+ SIOCBRDGSIFPRIO = 0x80546954
+ SIOCBRDGSMA = 0x80146953
+ SIOCBRDGSPRI = 0x80146950
+ SIOCBRDGSPROTO = 0x8014695a
+ SIOCBRDGSTO = 0x80146945
+ SIOCBRDGSTXHC = 0x80146959
+ SIOCDELMULTI = 0x80206932
+ SIOCDIFADDR = 0x80206919
+ SIOCDIFGROUP = 0x80246989
+ SIOCDIFPHYADDR = 0x80206949
+ SIOCDLIFADDR = 0x8218691e
+ SIOCGETKALIVE = 0xc01869a4
+ SIOCGETLABEL = 0x8020699a
+ SIOCGETPFLOW = 0xc02069fe
+ SIOCGETPFSYNC = 0xc02069f8
+ SIOCGETSGCNT = 0xc0147534
+ SIOCGETVIFCNT = 0xc0147533
+ SIOCGETVLAN = 0xc0206990
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFASYNCMAP = 0xc020697c
+ SIOCGIFBRDADDR = 0xc0206923
+ SIOCGIFCONF = 0xc0086924
+ SIOCGIFDATA = 0xc020691b
+ SIOCGIFDESCR = 0xc0206981
+ SIOCGIFDSTADDR = 0xc0206922
+ SIOCGIFFLAGS = 0xc0206911
+ SIOCGIFGATTR = 0xc024698b
+ SIOCGIFGENERIC = 0xc020693a
+ SIOCGIFGMEMB = 0xc024698a
+ SIOCGIFGROUP = 0xc0246988
+ SIOCGIFHARDMTU = 0xc02069a5
+ SIOCGIFMEDIA = 0xc0286936
+ SIOCGIFMETRIC = 0xc0206917
+ SIOCGIFMTU = 0xc020697e
+ SIOCGIFNETMASK = 0xc0206925
+ SIOCGIFPDSTADDR = 0xc0206948
+ SIOCGIFPRIORITY = 0xc020699c
+ SIOCGIFPSRCADDR = 0xc0206947
+ SIOCGIFRDOMAIN = 0xc02069a0
+ SIOCGIFRTLABEL = 0xc0206983
+ SIOCGIFTIMESLOT = 0xc0206986
+ SIOCGIFXFLAGS = 0xc020699e
+ SIOCGLIFADDR = 0xc218691d
+ SIOCGLIFPHYADDR = 0xc218694b
+ SIOCGLIFPHYRTABLE = 0xc02069a2
+ SIOCGLIFPHYTTL = 0xc02069a9
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGSPPPPARAMS = 0xc0206994
+ SIOCGVH = 0xc02069f6
+ SIOCGVNETID = 0xc02069a7
+ SIOCIFCREATE = 0x8020697a
+ SIOCIFDESTROY = 0x80206979
+ SIOCIFGCLONERS = 0xc00c6978
+ SIOCSETKALIVE = 0x801869a3
+ SIOCSETLABEL = 0x80206999
+ SIOCSETPFLOW = 0x802069fd
+ SIOCSETPFSYNC = 0x802069f7
+ SIOCSETVLAN = 0x8020698f
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8020690c
+ SIOCSIFASYNCMAP = 0x8020697d
+ SIOCSIFBRDADDR = 0x80206913
+ SIOCSIFDESCR = 0x80206980
+ SIOCSIFDSTADDR = 0x8020690e
+ SIOCSIFFLAGS = 0x80206910
+ SIOCSIFGATTR = 0x8024698c
+ SIOCSIFGENERIC = 0x80206939
+ SIOCSIFLLADDR = 0x8020691f
+ SIOCSIFMEDIA = 0xc0206935
+ SIOCSIFMETRIC = 0x80206918
+ SIOCSIFMTU = 0x8020697f
+ SIOCSIFNETMASK = 0x80206916
+ SIOCSIFPHYADDR = 0x80406946
+ SIOCSIFPRIORITY = 0x8020699b
+ SIOCSIFRDOMAIN = 0x8020699f
+ SIOCSIFRTLABEL = 0x80206982
+ SIOCSIFTIMESLOT = 0x80206985
+ SIOCSIFXFLAGS = 0x8020699d
+ SIOCSLIFPHYADDR = 0x8218694a
+ SIOCSLIFPHYRTABLE = 0x802069a1
+ SIOCSLIFPHYTTL = 0x802069a8
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSSPPPPARAMS = 0x80206993
+ SIOCSVH = 0xc02069f5
+ SIOCSVNETID = 0x802069a6
+ SOCK_DGRAM = 0x2
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_BINDANY = 0x1000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_NETPROC = 0x1020
+ SO_OOBINLINE = 0x100
+ SO_PEERCRED = 0x1022
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RTABLE = 0x1021
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_SPLICE = 0x1023
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_SACK = 0x3
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0x4
+ TCP_MSS = 0x200
+ TCP_NODELAY = 0x1
+ TCP_NOPUSH = 0x10
+ TCP_NSTATES = 0xb
+ TCP_SACK_ENABLE = 0x8
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLAG_CLOCAL = 0x2
+ TIOCFLAG_CRTSCTS = 0x4
+ TIOCFLAG_MDMBUF = 0x8
+ TIOCFLAG_PPS = 0x10
+ TIOCFLAG_SOFTCAR = 0x1
+ TIOCFLUSH = 0x80047410
+ TIOCGETA = 0x402c7413
+ TIOCGETD = 0x4004741a
+ TIOCGFLAGS = 0x4004745d
+ TIOCGPGRP = 0x40047477
+ TIOCGSID = 0x40047463
+ TIOCGTSTAMP = 0x400c745b
+ TIOCGWINSZ = 0x40087468
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMODG = 0x4004746a
+ TIOCMODS = 0x8004746d
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007461
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x802c7414
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x8004745f
+ TIOCSPGRP = 0x80047476
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x80047465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSTSTAMP = 0x8008745a
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VTIME = 0x11
+ VWERASE = 0x4
+ WALTSIG = 0x4
+ WCONTINUED = 0x8
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+ WSTOPPED = 0x7f
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0x23)
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x58)
+ ECHILD = syscall.Errno(0xa)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0xb)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EFTYPE = syscall.Errno(0x4f)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EIDRM = syscall.Errno(0x59)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EIPSEC = syscall.Errno(0x52)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ ELAST = syscall.Errno(0x5b)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x56)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENEEDAUTH = syscall.Errno(0x51)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOATTR = syscall.Errno(0x53)
+ ENOBUFS = syscall.Errno(0x37)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOLCK = syscall.Errno(0x4d)
+ ENOMEDIUM = syscall.Errno(0x55)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x5a)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSYS = syscall.Errno(0x4e)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x5b)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x57)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMOTE = syscall.Errno(0x47)
+ EROFS = syscall.Errno(0x1e)
+ ERPCMISMATCH = syscall.Errno(0x49)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESTALE = syscall.Errno(0x46)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0x23)
+ EXDEV = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINFO = syscall.Signal(0x1d)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTHR = syscall.Signal(0x20)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "device not configured",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource deadlock avoided",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device busy",
+ 17: "file exists",
+ 18: "cross-device link",
+ 19: "operation not supported by device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "result too large",
+ 35: "resource temporarily unavailable",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol family",
+ 48: "address already in use",
+ 49: "can't assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "socket is already connected",
+ 57: "socket is not connected",
+ 58: "can't send after socket shutdown",
+ 59: "too many references: can't splice",
+ 60: "connection timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disc quota exceeded",
+ 70: "stale NFS file handle",
+ 71: "too many levels of remote in path",
+ 72: "RPC struct is bad",
+ 73: "RPC version wrong",
+ 74: "RPC prog. not avail",
+ 75: "program version wrong",
+ 76: "bad procedure for program",
+ 77: "no locks available",
+ 78: "function not implemented",
+ 79: "inappropriate file type or format",
+ 80: "authentication error",
+ 81: "need authenticator",
+ 82: "IPsec processing failure",
+ 83: "attribute not found",
+ 84: "illegal byte sequence",
+ 85: "no medium found",
+ 86: "wrong medium type",
+ 87: "value too large to be stored in data type",
+ 88: "operation canceled",
+ 89: "identifier removed",
+ 90: "no message of desired type",
+ 91: "not supported",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/BPT trap",
+ 6: "abort trap",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "stopped (signal)",
+ 18: "stopped",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "cputime limit exceeded",
+ 25: "filesize limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window size changes",
+ 29: "information request",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+ 32: "thread AST",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
new file mode 100644
index 000000000..1758ecca9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go
@@ -0,0 +1,1583 @@
+// mkerrors.sh -m64
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build amd64,openbsd
+
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -m64 _const.go
+
+package unix
+
+import "syscall"
+
+const (
+ AF_APPLETALK = 0x10
+ AF_BLUETOOTH = 0x20
+ AF_CCITT = 0xa
+ AF_CHAOS = 0x5
+ AF_CNT = 0x15
+ AF_COIP = 0x14
+ AF_DATAKIT = 0x9
+ AF_DECnet = 0xc
+ AF_DLI = 0xd
+ AF_E164 = 0x1a
+ AF_ECMA = 0x8
+ AF_ENCAP = 0x1c
+ AF_HYLINK = 0xf
+ AF_IMPLINK = 0x3
+ AF_INET = 0x2
+ AF_INET6 = 0x18
+ AF_IPX = 0x17
+ AF_ISDN = 0x1a
+ AF_ISO = 0x7
+ AF_KEY = 0x1e
+ AF_LAT = 0xe
+ AF_LINK = 0x12
+ AF_LOCAL = 0x1
+ AF_MAX = 0x24
+ AF_MPLS = 0x21
+ AF_NATM = 0x1b
+ AF_NS = 0x6
+ AF_OSI = 0x7
+ AF_PUP = 0x4
+ AF_ROUTE = 0x11
+ AF_SIP = 0x1d
+ AF_SNA = 0xb
+ AF_UNIX = 0x1
+ AF_UNSPEC = 0x0
+ ARPHRD_ETHER = 0x1
+ ARPHRD_FRELAY = 0xf
+ ARPHRD_IEEE1394 = 0x18
+ ARPHRD_IEEE802 = 0x6
+ B0 = 0x0
+ B110 = 0x6e
+ B115200 = 0x1c200
+ B1200 = 0x4b0
+ B134 = 0x86
+ B14400 = 0x3840
+ B150 = 0x96
+ B1800 = 0x708
+ B19200 = 0x4b00
+ B200 = 0xc8
+ B230400 = 0x38400
+ B2400 = 0x960
+ B28800 = 0x7080
+ B300 = 0x12c
+ B38400 = 0x9600
+ B4800 = 0x12c0
+ B50 = 0x32
+ B57600 = 0xe100
+ B600 = 0x258
+ B7200 = 0x1c20
+ B75 = 0x4b
+ B76800 = 0x12c00
+ B9600 = 0x2580
+ BIOCFLUSH = 0x20004268
+ BIOCGBLEN = 0x40044266
+ BIOCGDIRFILT = 0x4004427c
+ BIOCGDLT = 0x4004426a
+ BIOCGDLTLIST = 0xc010427b
+ BIOCGETIF = 0x4020426b
+ BIOCGFILDROP = 0x40044278
+ BIOCGHDRCMPLT = 0x40044274
+ BIOCGRSIG = 0x40044273
+ BIOCGRTIMEOUT = 0x4010426e
+ BIOCGSTATS = 0x4008426f
+ BIOCIMMEDIATE = 0x80044270
+ BIOCLOCK = 0x20004276
+ BIOCPROMISC = 0x20004269
+ BIOCSBLEN = 0xc0044266
+ BIOCSDIRFILT = 0x8004427d
+ BIOCSDLT = 0x8004427a
+ BIOCSETF = 0x80104267
+ BIOCSETIF = 0x8020426c
+ BIOCSETWF = 0x80104277
+ BIOCSFILDROP = 0x80044279
+ BIOCSHDRCMPLT = 0x80044275
+ BIOCSRSIG = 0x80044272
+ BIOCSRTIMEOUT = 0x8010426d
+ BIOCVERSION = 0x40044271
+ BPF_A = 0x10
+ BPF_ABS = 0x20
+ BPF_ADD = 0x0
+ BPF_ALIGNMENT = 0x4
+ BPF_ALU = 0x4
+ BPF_AND = 0x50
+ BPF_B = 0x10
+ BPF_DIRECTION_IN = 0x1
+ BPF_DIRECTION_OUT = 0x2
+ BPF_DIV = 0x30
+ BPF_H = 0x8
+ BPF_IMM = 0x0
+ BPF_IND = 0x40
+ BPF_JA = 0x0
+ BPF_JEQ = 0x10
+ BPF_JGE = 0x30
+ BPF_JGT = 0x20
+ BPF_JMP = 0x5
+ BPF_JSET = 0x40
+ BPF_K = 0x0
+ BPF_LD = 0x0
+ BPF_LDX = 0x1
+ BPF_LEN = 0x80
+ BPF_LSH = 0x60
+ BPF_MAJOR_VERSION = 0x1
+ BPF_MAXBUFSIZE = 0x200000
+ BPF_MAXINSNS = 0x200
+ BPF_MEM = 0x60
+ BPF_MEMWORDS = 0x10
+ BPF_MINBUFSIZE = 0x20
+ BPF_MINOR_VERSION = 0x1
+ BPF_MISC = 0x7
+ BPF_MSH = 0xa0
+ BPF_MUL = 0x20
+ BPF_NEG = 0x80
+ BPF_OR = 0x40
+ BPF_RELEASE = 0x30bb6
+ BPF_RET = 0x6
+ BPF_RSH = 0x70
+ BPF_ST = 0x2
+ BPF_STX = 0x3
+ BPF_SUB = 0x10
+ BPF_TAX = 0x0
+ BPF_TXA = 0x80
+ BPF_W = 0x0
+ BPF_X = 0x8
+ BRKINT = 0x2
+ CFLUSH = 0xf
+ CLOCAL = 0x8000
+ CREAD = 0x800
+ CS5 = 0x0
+ CS6 = 0x100
+ CS7 = 0x200
+ CS8 = 0x300
+ CSIZE = 0x300
+ CSTART = 0x11
+ CSTATUS = 0xff
+ CSTOP = 0x13
+ CSTOPB = 0x400
+ CSUSP = 0x1a
+ CTL_MAXNAME = 0xc
+ CTL_NET = 0x4
+ DIOCOSFPFLUSH = 0x2000444e
+ DLT_ARCNET = 0x7
+ DLT_ATM_RFC1483 = 0xb
+ DLT_AX25 = 0x3
+ DLT_CHAOS = 0x5
+ DLT_C_HDLC = 0x68
+ DLT_EN10MB = 0x1
+ DLT_EN3MB = 0x2
+ DLT_ENC = 0xd
+ DLT_FDDI = 0xa
+ DLT_IEEE802 = 0x6
+ DLT_IEEE802_11 = 0x69
+ DLT_IEEE802_11_RADIO = 0x7f
+ DLT_LOOP = 0xc
+ DLT_MPLS = 0xdb
+ DLT_NULL = 0x0
+ DLT_PFLOG = 0x75
+ DLT_PFSYNC = 0x12
+ DLT_PPP = 0x9
+ DLT_PPP_BSDOS = 0x10
+ DLT_PPP_ETHER = 0x33
+ DLT_PPP_SERIAL = 0x32
+ DLT_PRONET = 0x4
+ DLT_RAW = 0xe
+ DLT_SLIP = 0x8
+ DLT_SLIP_BSDOS = 0xf
+ DT_BLK = 0x6
+ DT_CHR = 0x2
+ DT_DIR = 0x4
+ DT_FIFO = 0x1
+ DT_LNK = 0xa
+ DT_REG = 0x8
+ DT_SOCK = 0xc
+ DT_UNKNOWN = 0x0
+ ECHO = 0x8
+ ECHOCTL = 0x40
+ ECHOE = 0x2
+ ECHOK = 0x4
+ ECHOKE = 0x1
+ ECHONL = 0x10
+ ECHOPRT = 0x20
+ EMT_TAGOVF = 0x1
+ EMUL_ENABLED = 0x1
+ EMUL_NATIVE = 0x2
+ ENDRUNDISC = 0x9
+ ETHERMIN = 0x2e
+ ETHERMTU = 0x5dc
+ ETHERTYPE_8023 = 0x4
+ ETHERTYPE_AARP = 0x80f3
+ ETHERTYPE_ACCTON = 0x8390
+ ETHERTYPE_AEONIC = 0x8036
+ ETHERTYPE_ALPHA = 0x814a
+ ETHERTYPE_AMBER = 0x6008
+ ETHERTYPE_AMOEBA = 0x8145
+ ETHERTYPE_AOE = 0x88a2
+ ETHERTYPE_APOLLO = 0x80f7
+ ETHERTYPE_APOLLODOMAIN = 0x8019
+ ETHERTYPE_APPLETALK = 0x809b
+ ETHERTYPE_APPLITEK = 0x80c7
+ ETHERTYPE_ARGONAUT = 0x803a
+ ETHERTYPE_ARP = 0x806
+ ETHERTYPE_AT = 0x809b
+ ETHERTYPE_ATALK = 0x809b
+ ETHERTYPE_ATOMIC = 0x86df
+ ETHERTYPE_ATT = 0x8069
+ ETHERTYPE_ATTSTANFORD = 0x8008
+ ETHERTYPE_AUTOPHON = 0x806a
+ ETHERTYPE_AXIS = 0x8856
+ ETHERTYPE_BCLOOP = 0x9003
+ ETHERTYPE_BOFL = 0x8102
+ ETHERTYPE_CABLETRON = 0x7034
+ ETHERTYPE_CHAOS = 0x804
+ ETHERTYPE_COMDESIGN = 0x806c
+ ETHERTYPE_COMPUGRAPHIC = 0x806d
+ ETHERTYPE_COUNTERPOINT = 0x8062
+ ETHERTYPE_CRONUS = 0x8004
+ ETHERTYPE_CRONUSVLN = 0x8003
+ ETHERTYPE_DCA = 0x1234
+ ETHERTYPE_DDE = 0x807b
+ ETHERTYPE_DEBNI = 0xaaaa
+ ETHERTYPE_DECAM = 0x8048
+ ETHERTYPE_DECCUST = 0x6006
+ ETHERTYPE_DECDIAG = 0x6005
+ ETHERTYPE_DECDNS = 0x803c
+ ETHERTYPE_DECDTS = 0x803e
+ ETHERTYPE_DECEXPER = 0x6000
+ ETHERTYPE_DECLAST = 0x8041
+ ETHERTYPE_DECLTM = 0x803f
+ ETHERTYPE_DECMUMPS = 0x6009
+ ETHERTYPE_DECNETBIOS = 0x8040
+ ETHERTYPE_DELTACON = 0x86de
+ ETHERTYPE_DIDDLE = 0x4321
+ ETHERTYPE_DLOG1 = 0x660
+ ETHERTYPE_DLOG2 = 0x661
+ ETHERTYPE_DN = 0x6003
+ ETHERTYPE_DOGFIGHT = 0x1989
+ ETHERTYPE_DSMD = 0x8039
+ ETHERTYPE_ECMA = 0x803
+ ETHERTYPE_ENCRYPT = 0x803d
+ ETHERTYPE_ES = 0x805d
+ ETHERTYPE_EXCELAN = 0x8010
+ ETHERTYPE_EXPERDATA = 0x8049
+ ETHERTYPE_FLIP = 0x8146
+ ETHERTYPE_FLOWCONTROL = 0x8808
+ ETHERTYPE_FRARP = 0x808
+ ETHERTYPE_GENDYN = 0x8068
+ ETHERTYPE_HAYES = 0x8130
+ ETHERTYPE_HIPPI_FP = 0x8180
+ ETHERTYPE_HITACHI = 0x8820
+ ETHERTYPE_HP = 0x8005
+ ETHERTYPE_IEEEPUP = 0xa00
+ ETHERTYPE_IEEEPUPAT = 0xa01
+ ETHERTYPE_IMLBL = 0x4c42
+ ETHERTYPE_IMLBLDIAG = 0x424c
+ ETHERTYPE_IP = 0x800
+ ETHERTYPE_IPAS = 0x876c
+ ETHERTYPE_IPV6 = 0x86dd
+ ETHERTYPE_IPX = 0x8137
+ ETHERTYPE_IPXNEW = 0x8037
+ ETHERTYPE_KALPANA = 0x8582
+ ETHERTYPE_LANBRIDGE = 0x8038
+ ETHERTYPE_LANPROBE = 0x8888
+ ETHERTYPE_LAT = 0x6004
+ ETHERTYPE_LBACK = 0x9000
+ ETHERTYPE_LITTLE = 0x8060
+ ETHERTYPE_LLDP = 0x88cc
+ ETHERTYPE_LOGICRAFT = 0x8148
+ ETHERTYPE_LOOPBACK = 0x9000
+ ETHERTYPE_MATRA = 0x807a
+ ETHERTYPE_MAX = 0xffff
+ ETHERTYPE_MERIT = 0x807c
+ ETHERTYPE_MICP = 0x873a
+ ETHERTYPE_MOPDL = 0x6001
+ ETHERTYPE_MOPRC = 0x6002
+ ETHERTYPE_MOTOROLA = 0x818d
+ ETHERTYPE_MPLS = 0x8847
+ ETHERTYPE_MPLS_MCAST = 0x8848
+ ETHERTYPE_MUMPS = 0x813f
+ ETHERTYPE_NBPCC = 0x3c04
+ ETHERTYPE_NBPCLAIM = 0x3c09
+ ETHERTYPE_NBPCLREQ = 0x3c05
+ ETHERTYPE_NBPCLRSP = 0x3c06
+ ETHERTYPE_NBPCREQ = 0x3c02
+ ETHERTYPE_NBPCRSP = 0x3c03
+ ETHERTYPE_NBPDG = 0x3c07
+ ETHERTYPE_NBPDGB = 0x3c08
+ ETHERTYPE_NBPDLTE = 0x3c0a
+ ETHERTYPE_NBPRAR = 0x3c0c
+ ETHERTYPE_NBPRAS = 0x3c0b
+ ETHERTYPE_NBPRST = 0x3c0d
+ ETHERTYPE_NBPSCD = 0x3c01
+ ETHERTYPE_NBPVCD = 0x3c00
+ ETHERTYPE_NBS = 0x802
+ ETHERTYPE_NCD = 0x8149
+ ETHERTYPE_NESTAR = 0x8006
+ ETHERTYPE_NETBEUI = 0x8191
+ ETHERTYPE_NOVELL = 0x8138
+ ETHERTYPE_NS = 0x600
+ ETHERTYPE_NSAT = 0x601
+ ETHERTYPE_NSCOMPAT = 0x807
+ ETHERTYPE_NTRAILER = 0x10
+ ETHERTYPE_OS9 = 0x7007
+ ETHERTYPE_OS9NET = 0x7009
+ ETHERTYPE_PACER = 0x80c6
+ ETHERTYPE_PAE = 0x888e
+ ETHERTYPE_PCS = 0x4242
+ ETHERTYPE_PLANNING = 0x8044
+ ETHERTYPE_PPP = 0x880b
+ ETHERTYPE_PPPOE = 0x8864
+ ETHERTYPE_PPPOEDISC = 0x8863
+ ETHERTYPE_PRIMENTS = 0x7031
+ ETHERTYPE_PUP = 0x200
+ ETHERTYPE_PUPAT = 0x200
+ ETHERTYPE_QINQ = 0x88a8
+ ETHERTYPE_RACAL = 0x7030
+ ETHERTYPE_RATIONAL = 0x8150
+ ETHERTYPE_RAWFR = 0x6559
+ ETHERTYPE_RCL = 0x1995
+ ETHERTYPE_RDP = 0x8739
+ ETHERTYPE_RETIX = 0x80f2
+ ETHERTYPE_REVARP = 0x8035
+ ETHERTYPE_SCA = 0x6007
+ ETHERTYPE_SECTRA = 0x86db
+ ETHERTYPE_SECUREDATA = 0x876d
+ ETHERTYPE_SGITW = 0x817e
+ ETHERTYPE_SG_BOUNCE = 0x8016
+ ETHERTYPE_SG_DIAG = 0x8013
+ ETHERTYPE_SG_NETGAMES = 0x8014
+ ETHERTYPE_SG_RESV = 0x8015
+ ETHERTYPE_SIMNET = 0x5208
+ ETHERTYPE_SLOW = 0x8809
+ ETHERTYPE_SNA = 0x80d5
+ ETHERTYPE_SNMP = 0x814c
+ ETHERTYPE_SONIX = 0xfaf5
+ ETHERTYPE_SPIDER = 0x809f
+ ETHERTYPE_SPRITE = 0x500
+ ETHERTYPE_STP = 0x8181
+ ETHERTYPE_TALARIS = 0x812b
+ ETHERTYPE_TALARISMC = 0x852b
+ ETHERTYPE_TCPCOMP = 0x876b
+ ETHERTYPE_TCPSM = 0x9002
+ ETHERTYPE_TEC = 0x814f
+ ETHERTYPE_TIGAN = 0x802f
+ ETHERTYPE_TRAIL = 0x1000
+ ETHERTYPE_TRANSETHER = 0x6558
+ ETHERTYPE_TYMSHARE = 0x802e
+ ETHERTYPE_UBBST = 0x7005
+ ETHERTYPE_UBDEBUG = 0x900
+ ETHERTYPE_UBDIAGLOOP = 0x7002
+ ETHERTYPE_UBDL = 0x7000
+ ETHERTYPE_UBNIU = 0x7001
+ ETHERTYPE_UBNMC = 0x7003
+ ETHERTYPE_VALID = 0x1600
+ ETHERTYPE_VARIAN = 0x80dd
+ ETHERTYPE_VAXELN = 0x803b
+ ETHERTYPE_VEECO = 0x8067
+ ETHERTYPE_VEXP = 0x805b
+ ETHERTYPE_VGLAB = 0x8131
+ ETHERTYPE_VINES = 0xbad
+ ETHERTYPE_VINESECHO = 0xbaf
+ ETHERTYPE_VINESLOOP = 0xbae
+ ETHERTYPE_VITAL = 0xff00
+ ETHERTYPE_VLAN = 0x8100
+ ETHERTYPE_VLTLMAN = 0x8080
+ ETHERTYPE_VPROD = 0x805c
+ ETHERTYPE_VURESERVED = 0x8147
+ ETHERTYPE_WATERLOO = 0x8130
+ ETHERTYPE_WELLFLEET = 0x8103
+ ETHERTYPE_X25 = 0x805
+ ETHERTYPE_X75 = 0x801
+ ETHERTYPE_XNSSM = 0x9001
+ ETHERTYPE_XTP = 0x817d
+ ETHER_ADDR_LEN = 0x6
+ ETHER_ALIGN = 0x2
+ ETHER_CRC_LEN = 0x4
+ ETHER_CRC_POLY_BE = 0x4c11db6
+ ETHER_CRC_POLY_LE = 0xedb88320
+ ETHER_HDR_LEN = 0xe
+ ETHER_MAX_DIX_LEN = 0x600
+ ETHER_MAX_LEN = 0x5ee
+ ETHER_MIN_LEN = 0x40
+ ETHER_TYPE_LEN = 0x2
+ ETHER_VLAN_ENCAP_LEN = 0x4
+ EVFILT_AIO = -0x3
+ EVFILT_PROC = -0x5
+ EVFILT_READ = -0x1
+ EVFILT_SIGNAL = -0x6
+ EVFILT_SYSCOUNT = 0x7
+ EVFILT_TIMER = -0x7
+ EVFILT_VNODE = -0x4
+ EVFILT_WRITE = -0x2
+ EV_ADD = 0x1
+ EV_CLEAR = 0x20
+ EV_DELETE = 0x2
+ EV_DISABLE = 0x8
+ EV_ENABLE = 0x4
+ EV_EOF = 0x8000
+ EV_ERROR = 0x4000
+ EV_FLAG1 = 0x2000
+ EV_ONESHOT = 0x10
+ EV_SYSFLAGS = 0xf000
+ EXTA = 0x4b00
+ EXTB = 0x9600
+ EXTPROC = 0x800
+ FD_CLOEXEC = 0x1
+ FD_SETSIZE = 0x400
+ FLUSHO = 0x800000
+ F_DUPFD = 0x0
+ F_DUPFD_CLOEXEC = 0xa
+ F_GETFD = 0x1
+ F_GETFL = 0x3
+ F_GETLK = 0x7
+ F_GETOWN = 0x5
+ F_OK = 0x0
+ F_RDLCK = 0x1
+ F_SETFD = 0x2
+ F_SETFL = 0x4
+ F_SETLK = 0x8
+ F_SETLKW = 0x9
+ F_SETOWN = 0x6
+ F_UNLCK = 0x2
+ F_WRLCK = 0x3
+ HUPCL = 0x4000
+ ICANON = 0x100
+ ICMP6_FILTER = 0x12
+ ICRNL = 0x100
+ IEXTEN = 0x400
+ IFAN_ARRIVAL = 0x0
+ IFAN_DEPARTURE = 0x1
+ IFA_ROUTE = 0x1
+ IFF_ALLMULTI = 0x200
+ IFF_BROADCAST = 0x2
+ IFF_CANTCHANGE = 0x8e52
+ IFF_DEBUG = 0x4
+ IFF_LINK0 = 0x1000
+ IFF_LINK1 = 0x2000
+ IFF_LINK2 = 0x4000
+ IFF_LOOPBACK = 0x8
+ IFF_MULTICAST = 0x8000
+ IFF_NOARP = 0x80
+ IFF_NOTRAILERS = 0x20
+ IFF_OACTIVE = 0x400
+ IFF_POINTOPOINT = 0x10
+ IFF_PROMISC = 0x100
+ IFF_RUNNING = 0x40
+ IFF_SIMPLEX = 0x800
+ IFF_UP = 0x1
+ IFNAMSIZ = 0x10
+ IFT_1822 = 0x2
+ IFT_A12MPPSWITCH = 0x82
+ IFT_AAL2 = 0xbb
+ IFT_AAL5 = 0x31
+ IFT_ADSL = 0x5e
+ IFT_AFLANE8023 = 0x3b
+ IFT_AFLANE8025 = 0x3c
+ IFT_ARAP = 0x58
+ IFT_ARCNET = 0x23
+ IFT_ARCNETPLUS = 0x24
+ IFT_ASYNC = 0x54
+ IFT_ATM = 0x25
+ IFT_ATMDXI = 0x69
+ IFT_ATMFUNI = 0x6a
+ IFT_ATMIMA = 0x6b
+ IFT_ATMLOGICAL = 0x50
+ IFT_ATMRADIO = 0xbd
+ IFT_ATMSUBINTERFACE = 0x86
+ IFT_ATMVCIENDPT = 0xc2
+ IFT_ATMVIRTUAL = 0x95
+ IFT_BGPPOLICYACCOUNTING = 0xa2
+ IFT_BLUETOOTH = 0xf8
+ IFT_BRIDGE = 0xd1
+ IFT_BSC = 0x53
+ IFT_CARP = 0xf7
+ IFT_CCTEMUL = 0x3d
+ IFT_CEPT = 0x13
+ IFT_CES = 0x85
+ IFT_CHANNEL = 0x46
+ IFT_CNR = 0x55
+ IFT_COFFEE = 0x84
+ IFT_COMPOSITELINK = 0x9b
+ IFT_DCN = 0x8d
+ IFT_DIGITALPOWERLINE = 0x8a
+ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba
+ IFT_DLSW = 0x4a
+ IFT_DOCSCABLEDOWNSTREAM = 0x80
+ IFT_DOCSCABLEMACLAYER = 0x7f
+ IFT_DOCSCABLEUPSTREAM = 0x81
+ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd
+ IFT_DS0 = 0x51
+ IFT_DS0BUNDLE = 0x52
+ IFT_DS1FDL = 0xaa
+ IFT_DS3 = 0x1e
+ IFT_DTM = 0x8c
+ IFT_DUMMY = 0xf1
+ IFT_DVBASILN = 0xac
+ IFT_DVBASIOUT = 0xad
+ IFT_DVBRCCDOWNSTREAM = 0x93
+ IFT_DVBRCCMACLAYER = 0x92
+ IFT_DVBRCCUPSTREAM = 0x94
+ IFT_ECONET = 0xce
+ IFT_ENC = 0xf4
+ IFT_EON = 0x19
+ IFT_EPLRS = 0x57
+ IFT_ESCON = 0x49
+ IFT_ETHER = 0x6
+ IFT_FAITH = 0xf3
+ IFT_FAST = 0x7d
+ IFT_FASTETHER = 0x3e
+ IFT_FASTETHERFX = 0x45
+ IFT_FDDI = 0xf
+ IFT_FIBRECHANNEL = 0x38
+ IFT_FRAMERELAYINTERCONNECT = 0x3a
+ IFT_FRAMERELAYMPI = 0x5c
+ IFT_FRDLCIENDPT = 0xc1
+ IFT_FRELAY = 0x20
+ IFT_FRELAYDCE = 0x2c
+ IFT_FRF16MFRBUNDLE = 0xa3
+ IFT_FRFORWARD = 0x9e
+ IFT_G703AT2MB = 0x43
+ IFT_G703AT64K = 0x42
+ IFT_GIF = 0xf0
+ IFT_GIGABITETHERNET = 0x75
+ IFT_GR303IDT = 0xb2
+ IFT_GR303RDT = 0xb1
+ IFT_H323GATEKEEPER = 0xa4
+ IFT_H323PROXY = 0xa5
+ IFT_HDH1822 = 0x3
+ IFT_HDLC = 0x76
+ IFT_HDSL2 = 0xa8
+ IFT_HIPERLAN2 = 0xb7
+ IFT_HIPPI = 0x2f
+ IFT_HIPPIINTERFACE = 0x39
+ IFT_HOSTPAD = 0x5a
+ IFT_HSSI = 0x2e
+ IFT_HY = 0xe
+ IFT_IBM370PARCHAN = 0x48
+ IFT_IDSL = 0x9a
+ IFT_IEEE1394 = 0x90
+ IFT_IEEE80211 = 0x47
+ IFT_IEEE80212 = 0x37
+ IFT_IEEE8023ADLAG = 0xa1
+ IFT_IFGSN = 0x91
+ IFT_IMT = 0xbe
+ IFT_INFINIBAND = 0xc7
+ IFT_INTERLEAVE = 0x7c
+ IFT_IP = 0x7e
+ IFT_IPFORWARD = 0x8e
+ IFT_IPOVERATM = 0x72
+ IFT_IPOVERCDLC = 0x6d
+ IFT_IPOVERCLAW = 0x6e
+ IFT_IPSWITCH = 0x4e
+ IFT_ISDN = 0x3f
+ IFT_ISDNBASIC = 0x14
+ IFT_ISDNPRIMARY = 0x15
+ IFT_ISDNS = 0x4b
+ IFT_ISDNU = 0x4c
+ IFT_ISO88022LLC = 0x29
+ IFT_ISO88023 = 0x7
+ IFT_ISO88024 = 0x8
+ IFT_ISO88025 = 0x9
+ IFT_ISO88025CRFPINT = 0x62
+ IFT_ISO88025DTR = 0x56
+ IFT_ISO88025FIBER = 0x73
+ IFT_ISO88026 = 0xa
+ IFT_ISUP = 0xb3
+ IFT_L2VLAN = 0x87
+ IFT_L3IPVLAN = 0x88
+ IFT_L3IPXVLAN = 0x89
+ IFT_LAPB = 0x10
+ IFT_LAPD = 0x4d
+ IFT_LAPF = 0x77
+ IFT_LINEGROUP = 0xd2
+ IFT_LOCALTALK = 0x2a
+ IFT_LOOP = 0x18
+ IFT_MEDIAMAILOVERIP = 0x8b
+ IFT_MFSIGLINK = 0xa7
+ IFT_MIOX25 = 0x26
+ IFT_MODEM = 0x30
+ IFT_MPC = 0x71
+ IFT_MPLS = 0xa6
+ IFT_MPLSTUNNEL = 0x96
+ IFT_MSDSL = 0x8f
+ IFT_MVL = 0xbf
+ IFT_MYRINET = 0x63
+ IFT_NFAS = 0xaf
+ IFT_NSIP = 0x1b
+ IFT_OPTICALCHANNEL = 0xc3
+ IFT_OPTICALTRANSPORT = 0xc4
+ IFT_OTHER = 0x1
+ IFT_P10 = 0xc
+ IFT_P80 = 0xd
+ IFT_PARA = 0x22
+ IFT_PFLOG = 0xf5
+ IFT_PFLOW = 0xf9
+ IFT_PFSYNC = 0xf6
+ IFT_PLC = 0xae
+ IFT_PON155 = 0xcf
+ IFT_PON622 = 0xd0
+ IFT_POS = 0xab
+ IFT_PPP = 0x17
+ IFT_PPPMULTILINKBUNDLE = 0x6c
+ IFT_PROPATM = 0xc5
+ IFT_PROPBWAP2MP = 0xb8
+ IFT_PROPCNLS = 0x59
+ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5
+ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4
+ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6
+ IFT_PROPMUX = 0x36
+ IFT_PROPVIRTUAL = 0x35
+ IFT_PROPWIRELESSP2P = 0x9d
+ IFT_PTPSERIAL = 0x16
+ IFT_PVC = 0xf2
+ IFT_Q2931 = 0xc9
+ IFT_QLLC = 0x44
+ IFT_RADIOMAC = 0xbc
+ IFT_RADSL = 0x5f
+ IFT_REACHDSL = 0xc0
+ IFT_RFC1483 = 0x9f
+ IFT_RS232 = 0x21
+ IFT_RSRB = 0x4f
+ IFT_SDLC = 0x11
+ IFT_SDSL = 0x60
+ IFT_SHDSL = 0xa9
+ IFT_SIP = 0x1f
+ IFT_SIPSIG = 0xcc
+ IFT_SIPTG = 0xcb
+ IFT_SLIP = 0x1c
+ IFT_SMDSDXI = 0x2b
+ IFT_SMDSICIP = 0x34
+ IFT_SONET = 0x27
+ IFT_SONETOVERHEADCHANNEL = 0xb9
+ IFT_SONETPATH = 0x32
+ IFT_SONETVT = 0x33
+ IFT_SRP = 0x97
+ IFT_SS7SIGLINK = 0x9c
+ IFT_STACKTOSTACK = 0x6f
+ IFT_STARLAN = 0xb
+ IFT_T1 = 0x12
+ IFT_TDLC = 0x74
+ IFT_TELINK = 0xc8
+ IFT_TERMPAD = 0x5b
+ IFT_TR008 = 0xb0
+ IFT_TRANSPHDLC = 0x7b
+ IFT_TUNNEL = 0x83
+ IFT_ULTRA = 0x1d
+ IFT_USB = 0xa0
+ IFT_V11 = 0x40
+ IFT_V35 = 0x2d
+ IFT_V36 = 0x41
+ IFT_V37 = 0x78
+ IFT_VDSL = 0x61
+ IFT_VIRTUALIPADDRESS = 0x70
+ IFT_VIRTUALTG = 0xca
+ IFT_VOICEDID = 0xd5
+ IFT_VOICEEM = 0x64
+ IFT_VOICEEMFGD = 0xd3
+ IFT_VOICEENCAP = 0x67
+ IFT_VOICEFGDEANA = 0xd4
+ IFT_VOICEFXO = 0x65
+ IFT_VOICEFXS = 0x66
+ IFT_VOICEOVERATM = 0x98
+ IFT_VOICEOVERCABLE = 0xc6
+ IFT_VOICEOVERFRAMERELAY = 0x99
+ IFT_VOICEOVERIP = 0x68
+ IFT_X213 = 0x5d
+ IFT_X25 = 0x5
+ IFT_X25DDN = 0x4
+ IFT_X25HUNTGROUP = 0x7a
+ IFT_X25MLP = 0x79
+ IFT_X25PLE = 0x28
+ IFT_XETHER = 0x1a
+ IGNBRK = 0x1
+ IGNCR = 0x80
+ IGNPAR = 0x4
+ IMAXBEL = 0x2000
+ INLCR = 0x40
+ INPCK = 0x10
+ IN_CLASSA_HOST = 0xffffff
+ IN_CLASSA_MAX = 0x80
+ IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 0x18
+ IN_CLASSB_HOST = 0xffff
+ IN_CLASSB_MAX = 0x10000
+ IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 0x10
+ IN_CLASSC_HOST = 0xff
+ IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 0x8
+ IN_CLASSD_HOST = 0xfffffff
+ IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 0x1c
+ IN_LOOPBACKNET = 0x7f
+ IN_RFC3021_HOST = 0x1
+ IN_RFC3021_NET = 0xfffffffe
+ IN_RFC3021_NSHIFT = 0x1f
+ IPPROTO_AH = 0x33
+ IPPROTO_CARP = 0x70
+ IPPROTO_DIVERT = 0x102
+ IPPROTO_DIVERT_INIT = 0x2
+ IPPROTO_DIVERT_RESP = 0x1
+ IPPROTO_DONE = 0x101
+ IPPROTO_DSTOPTS = 0x3c
+ IPPROTO_EGP = 0x8
+ IPPROTO_ENCAP = 0x62
+ IPPROTO_EON = 0x50
+ IPPROTO_ESP = 0x32
+ IPPROTO_ETHERIP = 0x61
+ IPPROTO_FRAGMENT = 0x2c
+ IPPROTO_GGP = 0x3
+ IPPROTO_GRE = 0x2f
+ IPPROTO_HOPOPTS = 0x0
+ IPPROTO_ICMP = 0x1
+ IPPROTO_ICMPV6 = 0x3a
+ IPPROTO_IDP = 0x16
+ IPPROTO_IGMP = 0x2
+ IPPROTO_IP = 0x0
+ IPPROTO_IPCOMP = 0x6c
+ IPPROTO_IPIP = 0x4
+ IPPROTO_IPV4 = 0x4
+ IPPROTO_IPV6 = 0x29
+ IPPROTO_MAX = 0x100
+ IPPROTO_MAXID = 0x103
+ IPPROTO_MOBILE = 0x37
+ IPPROTO_MPLS = 0x89
+ IPPROTO_NONE = 0x3b
+ IPPROTO_PFSYNC = 0xf0
+ IPPROTO_PIM = 0x67
+ IPPROTO_PUP = 0xc
+ IPPROTO_RAW = 0xff
+ IPPROTO_ROUTING = 0x2b
+ IPPROTO_RSVP = 0x2e
+ IPPROTO_TCP = 0x6
+ IPPROTO_TP = 0x1d
+ IPPROTO_UDP = 0x11
+ IPV6_AUTH_LEVEL = 0x35
+ IPV6_AUTOFLOWLABEL = 0x3b
+ IPV6_CHECKSUM = 0x1a
+ IPV6_DEFAULT_MULTICAST_HOPS = 0x1
+ IPV6_DEFAULT_MULTICAST_LOOP = 0x1
+ IPV6_DEFHLIM = 0x40
+ IPV6_DONTFRAG = 0x3e
+ IPV6_DSTOPTS = 0x32
+ IPV6_ESP_NETWORK_LEVEL = 0x37
+ IPV6_ESP_TRANS_LEVEL = 0x36
+ IPV6_FAITH = 0x1d
+ IPV6_FLOWINFO_MASK = 0xffffff0f
+ IPV6_FLOWLABEL_MASK = 0xffff0f00
+ IPV6_FRAGTTL = 0x78
+ IPV6_HLIMDEC = 0x1
+ IPV6_HOPLIMIT = 0x2f
+ IPV6_HOPOPTS = 0x31
+ IPV6_IPCOMP_LEVEL = 0x3c
+ IPV6_JOIN_GROUP = 0xc
+ IPV6_LEAVE_GROUP = 0xd
+ IPV6_MAXHLIM = 0xff
+ IPV6_MAXPACKET = 0xffff
+ IPV6_MMTU = 0x500
+ IPV6_MULTICAST_HOPS = 0xa
+ IPV6_MULTICAST_IF = 0x9
+ IPV6_MULTICAST_LOOP = 0xb
+ IPV6_NEXTHOP = 0x30
+ IPV6_OPTIONS = 0x1
+ IPV6_PATHMTU = 0x2c
+ IPV6_PIPEX = 0x3f
+ IPV6_PKTINFO = 0x2e
+ IPV6_PORTRANGE = 0xe
+ IPV6_PORTRANGE_DEFAULT = 0x0
+ IPV6_PORTRANGE_HIGH = 0x1
+ IPV6_PORTRANGE_LOW = 0x2
+ IPV6_RECVDSTOPTS = 0x28
+ IPV6_RECVDSTPORT = 0x40
+ IPV6_RECVHOPLIMIT = 0x25
+ IPV6_RECVHOPOPTS = 0x27
+ IPV6_RECVPATHMTU = 0x2b
+ IPV6_RECVPKTINFO = 0x24
+ IPV6_RECVRTHDR = 0x26
+ IPV6_RECVTCLASS = 0x39
+ IPV6_RTABLE = 0x1021
+ IPV6_RTHDR = 0x33
+ IPV6_RTHDRDSTOPTS = 0x23
+ IPV6_RTHDR_LOOSE = 0x0
+ IPV6_RTHDR_STRICT = 0x1
+ IPV6_RTHDR_TYPE_0 = 0x0
+ IPV6_SOCKOPT_RESERVED1 = 0x3
+ IPV6_TCLASS = 0x3d
+ IPV6_UNICAST_HOPS = 0x4
+ IPV6_USE_MIN_MTU = 0x2a
+ IPV6_V6ONLY = 0x1b
+ IPV6_VERSION = 0x60
+ IPV6_VERSION_MASK = 0xf0
+ IP_ADD_MEMBERSHIP = 0xc
+ IP_AUTH_LEVEL = 0x14
+ IP_DEFAULT_MULTICAST_LOOP = 0x1
+ IP_DEFAULT_MULTICAST_TTL = 0x1
+ IP_DF = 0x4000
+ IP_DIVERTFL = 0x1022
+ IP_DROP_MEMBERSHIP = 0xd
+ IP_ESP_NETWORK_LEVEL = 0x16
+ IP_ESP_TRANS_LEVEL = 0x15
+ IP_HDRINCL = 0x2
+ IP_IPCOMP_LEVEL = 0x1d
+ IP_IPSECFLOWINFO = 0x24
+ IP_IPSEC_LOCAL_AUTH = 0x1b
+ IP_IPSEC_LOCAL_CRED = 0x19
+ IP_IPSEC_LOCAL_ID = 0x17
+ IP_IPSEC_REMOTE_AUTH = 0x1c
+ IP_IPSEC_REMOTE_CRED = 0x1a
+ IP_IPSEC_REMOTE_ID = 0x18
+ IP_MAXPACKET = 0xffff
+ IP_MAX_MEMBERSHIPS = 0xfff
+ IP_MF = 0x2000
+ IP_MINTTL = 0x20
+ IP_MIN_MEMBERSHIPS = 0xf
+ IP_MSS = 0x240
+ IP_MULTICAST_IF = 0x9
+ IP_MULTICAST_LOOP = 0xb
+ IP_MULTICAST_TTL = 0xa
+ IP_OFFMASK = 0x1fff
+ IP_OPTIONS = 0x1
+ IP_PIPEX = 0x22
+ IP_PORTRANGE = 0x13
+ IP_PORTRANGE_DEFAULT = 0x0
+ IP_PORTRANGE_HIGH = 0x1
+ IP_PORTRANGE_LOW = 0x2
+ IP_RECVDSTADDR = 0x7
+ IP_RECVDSTPORT = 0x21
+ IP_RECVIF = 0x1e
+ IP_RECVOPTS = 0x5
+ IP_RECVRETOPTS = 0x6
+ IP_RECVRTABLE = 0x23
+ IP_RECVTTL = 0x1f
+ IP_RETOPTS = 0x8
+ IP_RF = 0x8000
+ IP_RTABLE = 0x1021
+ IP_TOS = 0x3
+ IP_TTL = 0x4
+ ISIG = 0x80
+ ISTRIP = 0x20
+ IXANY = 0x800
+ IXOFF = 0x400
+ IXON = 0x200
+ LCNT_OVERLOAD_FLUSH = 0x6
+ LOCK_EX = 0x2
+ LOCK_NB = 0x4
+ LOCK_SH = 0x1
+ LOCK_UN = 0x8
+ MADV_DONTNEED = 0x4
+ MADV_FREE = 0x6
+ MADV_NORMAL = 0x0
+ MADV_RANDOM = 0x1
+ MADV_SEQUENTIAL = 0x2
+ MADV_SPACEAVAIL = 0x5
+ MADV_WILLNEED = 0x3
+ MAP_ANON = 0x1000
+ MAP_COPY = 0x4
+ MAP_FILE = 0x0
+ MAP_FIXED = 0x10
+ MAP_FLAGMASK = 0x1ff7
+ MAP_HASSEMAPHORE = 0x200
+ MAP_INHERIT = 0x80
+ MAP_INHERIT_COPY = 0x1
+ MAP_INHERIT_DONATE_COPY = 0x3
+ MAP_INHERIT_NONE = 0x2
+ MAP_INHERIT_SHARE = 0x0
+ MAP_NOEXTEND = 0x100
+ MAP_NORESERVE = 0x40
+ MAP_PRIVATE = 0x2
+ MAP_RENAME = 0x20
+ MAP_SHARED = 0x1
+ MAP_TRYFIXED = 0x400
+ MCL_CURRENT = 0x1
+ MCL_FUTURE = 0x2
+ MSG_BCAST = 0x100
+ MSG_CTRUNC = 0x20
+ MSG_DONTROUTE = 0x4
+ MSG_DONTWAIT = 0x80
+ MSG_EOR = 0x8
+ MSG_MCAST = 0x200
+ MSG_NOSIGNAL = 0x400
+ MSG_OOB = 0x1
+ MSG_PEEK = 0x2
+ MSG_TRUNC = 0x10
+ MSG_WAITALL = 0x40
+ MS_ASYNC = 0x1
+ MS_INVALIDATE = 0x4
+ MS_SYNC = 0x2
+ NAME_MAX = 0xff
+ NET_RT_DUMP = 0x1
+ NET_RT_FLAGS = 0x2
+ NET_RT_IFLIST = 0x3
+ NET_RT_MAXID = 0x6
+ NET_RT_STATS = 0x4
+ NET_RT_TABLE = 0x5
+ NOFLSH = 0x80000000
+ NOTE_ATTRIB = 0x8
+ NOTE_CHILD = 0x4
+ NOTE_DELETE = 0x1
+ NOTE_EOF = 0x2
+ NOTE_EXEC = 0x20000000
+ NOTE_EXIT = 0x80000000
+ NOTE_EXTEND = 0x4
+ NOTE_FORK = 0x40000000
+ NOTE_LINK = 0x10
+ NOTE_LOWAT = 0x1
+ NOTE_PCTRLMASK = 0xf0000000
+ NOTE_PDATAMASK = 0xfffff
+ NOTE_RENAME = 0x20
+ NOTE_REVOKE = 0x40
+ NOTE_TRACK = 0x1
+ NOTE_TRACKERR = 0x2
+ NOTE_TRUNCATE = 0x80
+ NOTE_WRITE = 0x2
+ OCRNL = 0x10
+ ONLCR = 0x2
+ ONLRET = 0x80
+ ONOCR = 0x40
+ ONOEOT = 0x8
+ OPOST = 0x1
+ O_ACCMODE = 0x3
+ O_APPEND = 0x8
+ O_ASYNC = 0x40
+ O_CLOEXEC = 0x10000
+ O_CREAT = 0x200
+ O_DIRECTORY = 0x20000
+ O_DSYNC = 0x80
+ O_EXCL = 0x800
+ O_EXLOCK = 0x20
+ O_FSYNC = 0x80
+ O_NDELAY = 0x4
+ O_NOCTTY = 0x8000
+ O_NOFOLLOW = 0x100
+ O_NONBLOCK = 0x4
+ O_RDONLY = 0x0
+ O_RDWR = 0x2
+ O_RSYNC = 0x80
+ O_SHLOCK = 0x10
+ O_SYNC = 0x80
+ O_TRUNC = 0x400
+ O_WRONLY = 0x1
+ PARENB = 0x1000
+ PARMRK = 0x8
+ PARODD = 0x2000
+ PENDIN = 0x20000000
+ PF_FLUSH = 0x1
+ PRIO_PGRP = 0x1
+ PRIO_PROCESS = 0x0
+ PRIO_USER = 0x2
+ PROT_EXEC = 0x4
+ PROT_NONE = 0x0
+ PROT_READ = 0x1
+ PROT_WRITE = 0x2
+ RLIMIT_CORE = 0x4
+ RLIMIT_CPU = 0x0
+ RLIMIT_DATA = 0x2
+ RLIMIT_FSIZE = 0x1
+ RLIMIT_NOFILE = 0x8
+ RLIMIT_STACK = 0x3
+ RLIM_INFINITY = 0x7fffffffffffffff
+ RTAX_AUTHOR = 0x6
+ RTAX_BRD = 0x7
+ RTAX_DST = 0x0
+ RTAX_GATEWAY = 0x1
+ RTAX_GENMASK = 0x3
+ RTAX_IFA = 0x5
+ RTAX_IFP = 0x4
+ RTAX_LABEL = 0xa
+ RTAX_MAX = 0xb
+ RTAX_NETMASK = 0x2
+ RTAX_SRC = 0x8
+ RTAX_SRCMASK = 0x9
+ RTA_AUTHOR = 0x40
+ RTA_BRD = 0x80
+ RTA_DST = 0x1
+ RTA_GATEWAY = 0x2
+ RTA_GENMASK = 0x8
+ RTA_IFA = 0x20
+ RTA_IFP = 0x10
+ RTA_LABEL = 0x400
+ RTA_NETMASK = 0x4
+ RTA_SRC = 0x100
+ RTA_SRCMASK = 0x200
+ RTF_ANNOUNCE = 0x4000
+ RTF_BLACKHOLE = 0x1000
+ RTF_CLONED = 0x10000
+ RTF_CLONING = 0x100
+ RTF_DONE = 0x40
+ RTF_DYNAMIC = 0x10
+ RTF_FMASK = 0x10f808
+ RTF_GATEWAY = 0x2
+ RTF_HOST = 0x4
+ RTF_LLINFO = 0x400
+ RTF_MASK = 0x80
+ RTF_MODIFIED = 0x20
+ RTF_MPATH = 0x40000
+ RTF_MPLS = 0x100000
+ RTF_PERMANENT_ARP = 0x2000
+ RTF_PROTO1 = 0x8000
+ RTF_PROTO2 = 0x4000
+ RTF_PROTO3 = 0x2000
+ RTF_REJECT = 0x8
+ RTF_SOURCE = 0x20000
+ RTF_STATIC = 0x800
+ RTF_TUNNEL = 0x100000
+ RTF_UP = 0x1
+ RTF_USETRAILERS = 0x8000
+ RTF_XRESOLVE = 0x200
+ RTM_ADD = 0x1
+ RTM_CHANGE = 0x3
+ RTM_DELADDR = 0xd
+ RTM_DELETE = 0x2
+ RTM_DESYNC = 0x10
+ RTM_GET = 0x4
+ RTM_IFANNOUNCE = 0xf
+ RTM_IFINFO = 0xe
+ RTM_LOCK = 0x8
+ RTM_LOSING = 0x5
+ RTM_MAXSIZE = 0x800
+ RTM_MISS = 0x7
+ RTM_NEWADDR = 0xc
+ RTM_REDIRECT = 0x6
+ RTM_RESOLVE = 0xb
+ RTM_RTTUNIT = 0xf4240
+ RTM_VERSION = 0x5
+ RTV_EXPIRE = 0x4
+ RTV_HOPCOUNT = 0x2
+ RTV_MTU = 0x1
+ RTV_RPIPE = 0x8
+ RTV_RTT = 0x40
+ RTV_RTTVAR = 0x80
+ RTV_SPIPE = 0x10
+ RTV_SSTHRESH = 0x20
+ RT_TABLEID_MAX = 0xff
+ RUSAGE_CHILDREN = -0x1
+ RUSAGE_SELF = 0x0
+ RUSAGE_THREAD = 0x1
+ SCM_RIGHTS = 0x1
+ SCM_TIMESTAMP = 0x4
+ SHUT_RD = 0x0
+ SHUT_RDWR = 0x2
+ SHUT_WR = 0x1
+ SIOCADDMULTI = 0x80206931
+ SIOCAIFADDR = 0x8040691a
+ SIOCAIFGROUP = 0x80286987
+ SIOCALIFADDR = 0x8218691c
+ SIOCATMARK = 0x40047307
+ SIOCBRDGADD = 0x8058693c
+ SIOCBRDGADDS = 0x80586941
+ SIOCBRDGARL = 0x806e694d
+ SIOCBRDGDADDR = 0x81286947
+ SIOCBRDGDEL = 0x8058693d
+ SIOCBRDGDELS = 0x80586942
+ SIOCBRDGFLUSH = 0x80586948
+ SIOCBRDGFRL = 0x806e694e
+ SIOCBRDGGCACHE = 0xc0146941
+ SIOCBRDGGFD = 0xc0146952
+ SIOCBRDGGHT = 0xc0146951
+ SIOCBRDGGIFFLGS = 0xc058693e
+ SIOCBRDGGMA = 0xc0146953
+ SIOCBRDGGPARAM = 0xc0406958
+ SIOCBRDGGPRI = 0xc0146950
+ SIOCBRDGGRL = 0xc030694f
+ SIOCBRDGGSIFS = 0xc058693c
+ SIOCBRDGGTO = 0xc0146946
+ SIOCBRDGIFS = 0xc0586942
+ SIOCBRDGRTS = 0xc0206943
+ SIOCBRDGSADDR = 0xc1286944
+ SIOCBRDGSCACHE = 0x80146940
+ SIOCBRDGSFD = 0x80146952
+ SIOCBRDGSHT = 0x80146951
+ SIOCBRDGSIFCOST = 0x80586955
+ SIOCBRDGSIFFLGS = 0x8058693f
+ SIOCBRDGSIFPRIO = 0x80586954
+ SIOCBRDGSMA = 0x80146953
+ SIOCBRDGSPRI = 0x80146950
+ SIOCBRDGSPROTO = 0x8014695a
+ SIOCBRDGSTO = 0x80146945
+ SIOCBRDGSTXHC = 0x80146959
+ SIOCDELMULTI = 0x80206932
+ SIOCDIFADDR = 0x80206919
+ SIOCDIFGROUP = 0x80286989
+ SIOCDIFPHYADDR = 0x80206949
+ SIOCDLIFADDR = 0x8218691e
+ SIOCGETKALIVE = 0xc01869a4
+ SIOCGETLABEL = 0x8020699a
+ SIOCGETPFLOW = 0xc02069fe
+ SIOCGETPFSYNC = 0xc02069f8
+ SIOCGETSGCNT = 0xc0207534
+ SIOCGETVIFCNT = 0xc0287533
+ SIOCGETVLAN = 0xc0206990
+ SIOCGHIWAT = 0x40047301
+ SIOCGIFADDR = 0xc0206921
+ SIOCGIFASYNCMAP = 0xc020697c
+ SIOCGIFBRDADDR = 0xc0206923
+ SIOCGIFCONF = 0xc0106924
+ SIOCGIFDATA = 0xc020691b
+ SIOCGIFDESCR = 0xc0206981
+ SIOCGIFDSTADDR = 0xc0206922
+ SIOCGIFFLAGS = 0xc0206911
+ SIOCGIFGATTR = 0xc028698b
+ SIOCGIFGENERIC = 0xc020693a
+ SIOCGIFGMEMB = 0xc028698a
+ SIOCGIFGROUP = 0xc0286988
+ SIOCGIFHARDMTU = 0xc02069a5
+ SIOCGIFMEDIA = 0xc0306936
+ SIOCGIFMETRIC = 0xc0206917
+ SIOCGIFMTU = 0xc020697e
+ SIOCGIFNETMASK = 0xc0206925
+ SIOCGIFPDSTADDR = 0xc0206948
+ SIOCGIFPRIORITY = 0xc020699c
+ SIOCGIFPSRCADDR = 0xc0206947
+ SIOCGIFRDOMAIN = 0xc02069a0
+ SIOCGIFRTLABEL = 0xc0206983
+ SIOCGIFTIMESLOT = 0xc0206986
+ SIOCGIFXFLAGS = 0xc020699e
+ SIOCGLIFADDR = 0xc218691d
+ SIOCGLIFPHYADDR = 0xc218694b
+ SIOCGLIFPHYRTABLE = 0xc02069a2
+ SIOCGLIFPHYTTL = 0xc02069a9
+ SIOCGLOWAT = 0x40047303
+ SIOCGPGRP = 0x40047309
+ SIOCGSPPPPARAMS = 0xc0206994
+ SIOCGVH = 0xc02069f6
+ SIOCGVNETID = 0xc02069a7
+ SIOCIFCREATE = 0x8020697a
+ SIOCIFDESTROY = 0x80206979
+ SIOCIFGCLONERS = 0xc0106978
+ SIOCSETKALIVE = 0x801869a3
+ SIOCSETLABEL = 0x80206999
+ SIOCSETPFLOW = 0x802069fd
+ SIOCSETPFSYNC = 0x802069f7
+ SIOCSETVLAN = 0x8020698f
+ SIOCSHIWAT = 0x80047300
+ SIOCSIFADDR = 0x8020690c
+ SIOCSIFASYNCMAP = 0x8020697d
+ SIOCSIFBRDADDR = 0x80206913
+ SIOCSIFDESCR = 0x80206980
+ SIOCSIFDSTADDR = 0x8020690e
+ SIOCSIFFLAGS = 0x80206910
+ SIOCSIFGATTR = 0x8028698c
+ SIOCSIFGENERIC = 0x80206939
+ SIOCSIFLLADDR = 0x8020691f
+ SIOCSIFMEDIA = 0xc0206935
+ SIOCSIFMETRIC = 0x80206918
+ SIOCSIFMTU = 0x8020697f
+ SIOCSIFNETMASK = 0x80206916
+ SIOCSIFPHYADDR = 0x80406946
+ SIOCSIFPRIORITY = 0x8020699b
+ SIOCSIFRDOMAIN = 0x8020699f
+ SIOCSIFRTLABEL = 0x80206982
+ SIOCSIFTIMESLOT = 0x80206985
+ SIOCSIFXFLAGS = 0x8020699d
+ SIOCSLIFPHYADDR = 0x8218694a
+ SIOCSLIFPHYRTABLE = 0x802069a1
+ SIOCSLIFPHYTTL = 0x802069a8
+ SIOCSLOWAT = 0x80047302
+ SIOCSPGRP = 0x80047308
+ SIOCSSPPPPARAMS = 0x80206993
+ SIOCSVH = 0xc02069f5
+ SIOCSVNETID = 0x802069a6
+ SOCK_DGRAM = 0x2
+ SOCK_RAW = 0x3
+ SOCK_RDM = 0x4
+ SOCK_SEQPACKET = 0x5
+ SOCK_STREAM = 0x1
+ SOL_SOCKET = 0xffff
+ SOMAXCONN = 0x80
+ SO_ACCEPTCONN = 0x2
+ SO_BINDANY = 0x1000
+ SO_BROADCAST = 0x20
+ SO_DEBUG = 0x1
+ SO_DONTROUTE = 0x10
+ SO_ERROR = 0x1007
+ SO_KEEPALIVE = 0x8
+ SO_LINGER = 0x80
+ SO_NETPROC = 0x1020
+ SO_OOBINLINE = 0x100
+ SO_PEERCRED = 0x1022
+ SO_RCVBUF = 0x1002
+ SO_RCVLOWAT = 0x1004
+ SO_RCVTIMEO = 0x1006
+ SO_REUSEADDR = 0x4
+ SO_REUSEPORT = 0x200
+ SO_RTABLE = 0x1021
+ SO_SNDBUF = 0x1001
+ SO_SNDLOWAT = 0x1003
+ SO_SNDTIMEO = 0x1005
+ SO_SPLICE = 0x1023
+ SO_TIMESTAMP = 0x800
+ SO_TYPE = 0x1008
+ SO_USELOOPBACK = 0x40
+ TCIFLUSH = 0x1
+ TCIOFLUSH = 0x3
+ TCOFLUSH = 0x2
+ TCP_MAXBURST = 0x4
+ TCP_MAXSEG = 0x2
+ TCP_MAXWIN = 0xffff
+ TCP_MAX_SACK = 0x3
+ TCP_MAX_WINSHIFT = 0xe
+ TCP_MD5SIG = 0x4
+ TCP_MSS = 0x200
+ TCP_NODELAY = 0x1
+ TCP_NOPUSH = 0x10
+ TCP_NSTATES = 0xb
+ TCP_SACK_ENABLE = 0x8
+ TCSAFLUSH = 0x2
+ TIOCCBRK = 0x2000747a
+ TIOCCDTR = 0x20007478
+ TIOCCONS = 0x80047462
+ TIOCDRAIN = 0x2000745e
+ TIOCEXCL = 0x2000740d
+ TIOCEXT = 0x80047460
+ TIOCFLAG_CLOCAL = 0x2
+ TIOCFLAG_CRTSCTS = 0x4
+ TIOCFLAG_MDMBUF = 0x8
+ TIOCFLAG_PPS = 0x10
+ TIOCFLAG_SOFTCAR = 0x1
+ TIOCFLUSH = 0x80047410
+ TIOCGETA = 0x402c7413
+ TIOCGETD = 0x4004741a
+ TIOCGFLAGS = 0x4004745d
+ TIOCGPGRP = 0x40047477
+ TIOCGSID = 0x40047463
+ TIOCGTSTAMP = 0x4010745b
+ TIOCGWINSZ = 0x40087468
+ TIOCMBIC = 0x8004746b
+ TIOCMBIS = 0x8004746c
+ TIOCMGET = 0x4004746a
+ TIOCMODG = 0x4004746a
+ TIOCMODS = 0x8004746d
+ TIOCMSET = 0x8004746d
+ TIOCM_CAR = 0x40
+ TIOCM_CD = 0x40
+ TIOCM_CTS = 0x20
+ TIOCM_DSR = 0x100
+ TIOCM_DTR = 0x2
+ TIOCM_LE = 0x1
+ TIOCM_RI = 0x80
+ TIOCM_RNG = 0x80
+ TIOCM_RTS = 0x4
+ TIOCM_SR = 0x10
+ TIOCM_ST = 0x8
+ TIOCNOTTY = 0x20007471
+ TIOCNXCL = 0x2000740e
+ TIOCOUTQ = 0x40047473
+ TIOCPKT = 0x80047470
+ TIOCPKT_DATA = 0x0
+ TIOCPKT_DOSTOP = 0x20
+ TIOCPKT_FLUSHREAD = 0x1
+ TIOCPKT_FLUSHWRITE = 0x2
+ TIOCPKT_IOCTL = 0x40
+ TIOCPKT_NOSTOP = 0x10
+ TIOCPKT_START = 0x8
+ TIOCPKT_STOP = 0x4
+ TIOCREMOTE = 0x80047469
+ TIOCSBRK = 0x2000747b
+ TIOCSCTTY = 0x20007461
+ TIOCSDTR = 0x20007479
+ TIOCSETA = 0x802c7414
+ TIOCSETAF = 0x802c7416
+ TIOCSETAW = 0x802c7415
+ TIOCSETD = 0x8004741b
+ TIOCSFLAGS = 0x8004745c
+ TIOCSIG = 0x8004745f
+ TIOCSPGRP = 0x80047476
+ TIOCSTART = 0x2000746e
+ TIOCSTAT = 0x80047465
+ TIOCSTI = 0x80017472
+ TIOCSTOP = 0x2000746f
+ TIOCSTSTAMP = 0x8008745a
+ TIOCSWINSZ = 0x80087467
+ TIOCUCNTL = 0x80047466
+ TOSTOP = 0x400000
+ VDISCARD = 0xf
+ VDSUSP = 0xb
+ VEOF = 0x0
+ VEOL = 0x1
+ VEOL2 = 0x2
+ VERASE = 0x3
+ VINTR = 0x8
+ VKILL = 0x5
+ VLNEXT = 0xe
+ VMIN = 0x10
+ VQUIT = 0x9
+ VREPRINT = 0x6
+ VSTART = 0xc
+ VSTATUS = 0x12
+ VSTOP = 0xd
+ VSUSP = 0xa
+ VTIME = 0x11
+ VWERASE = 0x4
+ WALTSIG = 0x4
+ WCONTINUED = 0x8
+ WCOREFLAG = 0x80
+ WNOHANG = 0x1
+ WSTOPPED = 0x7f
+ WUNTRACED = 0x2
+)
+
+// Errors
+const (
+ E2BIG = syscall.Errno(0x7)
+ EACCES = syscall.Errno(0xd)
+ EADDRINUSE = syscall.Errno(0x30)
+ EADDRNOTAVAIL = syscall.Errno(0x31)
+ EAFNOSUPPORT = syscall.Errno(0x2f)
+ EAGAIN = syscall.Errno(0x23)
+ EALREADY = syscall.Errno(0x25)
+ EAUTH = syscall.Errno(0x50)
+ EBADF = syscall.Errno(0x9)
+ EBADRPC = syscall.Errno(0x48)
+ EBUSY = syscall.Errno(0x10)
+ ECANCELED = syscall.Errno(0x58)
+ ECHILD = syscall.Errno(0xa)
+ ECONNABORTED = syscall.Errno(0x35)
+ ECONNREFUSED = syscall.Errno(0x3d)
+ ECONNRESET = syscall.Errno(0x36)
+ EDEADLK = syscall.Errno(0xb)
+ EDESTADDRREQ = syscall.Errno(0x27)
+ EDOM = syscall.Errno(0x21)
+ EDQUOT = syscall.Errno(0x45)
+ EEXIST = syscall.Errno(0x11)
+ EFAULT = syscall.Errno(0xe)
+ EFBIG = syscall.Errno(0x1b)
+ EFTYPE = syscall.Errno(0x4f)
+ EHOSTDOWN = syscall.Errno(0x40)
+ EHOSTUNREACH = syscall.Errno(0x41)
+ EIDRM = syscall.Errno(0x59)
+ EILSEQ = syscall.Errno(0x54)
+ EINPROGRESS = syscall.Errno(0x24)
+ EINTR = syscall.Errno(0x4)
+ EINVAL = syscall.Errno(0x16)
+ EIO = syscall.Errno(0x5)
+ EIPSEC = syscall.Errno(0x52)
+ EISCONN = syscall.Errno(0x38)
+ EISDIR = syscall.Errno(0x15)
+ ELAST = syscall.Errno(0x5b)
+ ELOOP = syscall.Errno(0x3e)
+ EMEDIUMTYPE = syscall.Errno(0x56)
+ EMFILE = syscall.Errno(0x18)
+ EMLINK = syscall.Errno(0x1f)
+ EMSGSIZE = syscall.Errno(0x28)
+ ENAMETOOLONG = syscall.Errno(0x3f)
+ ENEEDAUTH = syscall.Errno(0x51)
+ ENETDOWN = syscall.Errno(0x32)
+ ENETRESET = syscall.Errno(0x34)
+ ENETUNREACH = syscall.Errno(0x33)
+ ENFILE = syscall.Errno(0x17)
+ ENOATTR = syscall.Errno(0x53)
+ ENOBUFS = syscall.Errno(0x37)
+ ENODEV = syscall.Errno(0x13)
+ ENOENT = syscall.Errno(0x2)
+ ENOEXEC = syscall.Errno(0x8)
+ ENOLCK = syscall.Errno(0x4d)
+ ENOMEDIUM = syscall.Errno(0x55)
+ ENOMEM = syscall.Errno(0xc)
+ ENOMSG = syscall.Errno(0x5a)
+ ENOPROTOOPT = syscall.Errno(0x2a)
+ ENOSPC = syscall.Errno(0x1c)
+ ENOSYS = syscall.Errno(0x4e)
+ ENOTBLK = syscall.Errno(0xf)
+ ENOTCONN = syscall.Errno(0x39)
+ ENOTDIR = syscall.Errno(0x14)
+ ENOTEMPTY = syscall.Errno(0x42)
+ ENOTSOCK = syscall.Errno(0x26)
+ ENOTSUP = syscall.Errno(0x5b)
+ ENOTTY = syscall.Errno(0x19)
+ ENXIO = syscall.Errno(0x6)
+ EOPNOTSUPP = syscall.Errno(0x2d)
+ EOVERFLOW = syscall.Errno(0x57)
+ EPERM = syscall.Errno(0x1)
+ EPFNOSUPPORT = syscall.Errno(0x2e)
+ EPIPE = syscall.Errno(0x20)
+ EPROCLIM = syscall.Errno(0x43)
+ EPROCUNAVAIL = syscall.Errno(0x4c)
+ EPROGMISMATCH = syscall.Errno(0x4b)
+ EPROGUNAVAIL = syscall.Errno(0x4a)
+ EPROTONOSUPPORT = syscall.Errno(0x2b)
+ EPROTOTYPE = syscall.Errno(0x29)
+ ERANGE = syscall.Errno(0x22)
+ EREMOTE = syscall.Errno(0x47)
+ EROFS = syscall.Errno(0x1e)
+ ERPCMISMATCH = syscall.Errno(0x49)
+ ESHUTDOWN = syscall.Errno(0x3a)
+ ESOCKTNOSUPPORT = syscall.Errno(0x2c)
+ ESPIPE = syscall.Errno(0x1d)
+ ESRCH = syscall.Errno(0x3)
+ ESTALE = syscall.Errno(0x46)
+ ETIMEDOUT = syscall.Errno(0x3c)
+ ETOOMANYREFS = syscall.Errno(0x3b)
+ ETXTBSY = syscall.Errno(0x1a)
+ EUSERS = syscall.Errno(0x44)
+ EWOULDBLOCK = syscall.Errno(0x23)
+ EXDEV = syscall.Errno(0x12)
+)
+
+// Signals
+const (
+ SIGABRT = syscall.Signal(0x6)
+ SIGALRM = syscall.Signal(0xe)
+ SIGBUS = syscall.Signal(0xa)
+ SIGCHLD = syscall.Signal(0x14)
+ SIGCONT = syscall.Signal(0x13)
+ SIGEMT = syscall.Signal(0x7)
+ SIGFPE = syscall.Signal(0x8)
+ SIGHUP = syscall.Signal(0x1)
+ SIGILL = syscall.Signal(0x4)
+ SIGINFO = syscall.Signal(0x1d)
+ SIGINT = syscall.Signal(0x2)
+ SIGIO = syscall.Signal(0x17)
+ SIGIOT = syscall.Signal(0x6)
+ SIGKILL = syscall.Signal(0x9)
+ SIGPIPE = syscall.Signal(0xd)
+ SIGPROF = syscall.Signal(0x1b)
+ SIGQUIT = syscall.Signal(0x3)
+ SIGSEGV = syscall.Signal(0xb)
+ SIGSTOP = syscall.Signal(0x11)
+ SIGSYS = syscall.Signal(0xc)
+ SIGTERM = syscall.Signal(0xf)
+ SIGTHR = syscall.Signal(0x20)
+ SIGTRAP = syscall.Signal(0x5)
+ SIGTSTP = syscall.Signal(0x12)
+ SIGTTIN = syscall.Signal(0x15)
+ SIGTTOU = syscall.Signal(0x16)
+ SIGURG = syscall.Signal(0x10)
+ SIGUSR1 = syscall.Signal(0x1e)
+ SIGUSR2 = syscall.Signal(0x1f)
+ SIGVTALRM = syscall.Signal(0x1a)
+ SIGWINCH = syscall.Signal(0x1c)
+ SIGXCPU = syscall.Signal(0x18)
+ SIGXFSZ = syscall.Signal(0x19)
+)
+
+// Error table
+var errors = [...]string{
+ 1: "operation not permitted",
+ 2: "no such file or directory",
+ 3: "no such process",
+ 4: "interrupted system call",
+ 5: "input/output error",
+ 6: "device not configured",
+ 7: "argument list too long",
+ 8: "exec format error",
+ 9: "bad file descriptor",
+ 10: "no child processes",
+ 11: "resource deadlock avoided",
+ 12: "cannot allocate memory",
+ 13: "permission denied",
+ 14: "bad address",
+ 15: "block device required",
+ 16: "device busy",
+ 17: "file exists",
+ 18: "cross-device link",
+ 19: "operation not supported by device",
+ 20: "not a directory",
+ 21: "is a directory",
+ 22: "invalid argument",
+ 23: "too many open files in system",
+ 24: "too many open files",
+ 25: "inappropriate ioctl for device",
+ 26: "text file busy",
+ 27: "file too large",
+ 28: "no space left on device",
+ 29: "illegal seek",
+ 30: "read-only file system",
+ 31: "too many links",
+ 32: "broken pipe",
+ 33: "numerical argument out of domain",
+ 34: "result too large",
+ 35: "resource temporarily unavailable",
+ 36: "operation now in progress",
+ 37: "operation already in progress",
+ 38: "socket operation on non-socket",
+ 39: "destination address required",
+ 40: "message too long",
+ 41: "protocol wrong type for socket",
+ 42: "protocol not available",
+ 43: "protocol not supported",
+ 44: "socket type not supported",
+ 45: "operation not supported",
+ 46: "protocol family not supported",
+ 47: "address family not supported by protocol family",
+ 48: "address already in use",
+ 49: "can't assign requested address",
+ 50: "network is down",
+ 51: "network is unreachable",
+ 52: "network dropped connection on reset",
+ 53: "software caused connection abort",
+ 54: "connection reset by peer",
+ 55: "no buffer space available",
+ 56: "socket is already connected",
+ 57: "socket is not connected",
+ 58: "can't send after socket shutdown",
+ 59: "too many references: can't splice",
+ 60: "connection timed out",
+ 61: "connection refused",
+ 62: "too many levels of symbolic links",
+ 63: "file name too long",
+ 64: "host is down",
+ 65: "no route to host",
+ 66: "directory not empty",
+ 67: "too many processes",
+ 68: "too many users",
+ 69: "disc quota exceeded",
+ 70: "stale NFS file handle",
+ 71: "too many levels of remote in path",
+ 72: "RPC struct is bad",
+ 73: "RPC version wrong",
+ 74: "RPC prog. not avail",
+ 75: "program version wrong",
+ 76: "bad procedure for program",
+ 77: "no locks available",
+ 78: "function not implemented",
+ 79: "inappropriate file type or format",
+ 80: "authentication error",
+ 81: "need authenticator",
+ 82: "IPsec processing failure",
+ 83: "attribute not found",
+ 84: "illegal byte sequence",
+ 85: "no medium found",
+ 86: "wrong medium type",
+ 87: "value too large to be stored in data type",
+ 88: "operation canceled",
+ 89: "identifier removed",
+ 90: "no message of desired type",
+ 91: "not supported",
+}
+
+// Signal table
+var signals = [...]string{
+ 1: "hangup",
+ 2: "interrupt",
+ 3: "quit",
+ 4: "illegal instruction",
+ 5: "trace/BPT trap",
+ 6: "abort trap",
+ 7: "EMT trap",
+ 8: "floating point exception",
+ 9: "killed",
+ 10: "bus error",
+ 11: "segmentation fault",
+ 12: "bad system call",
+ 13: "broken pipe",
+ 14: "alarm clock",
+ 15: "terminated",
+ 16: "urgent I/O condition",
+ 17: "stopped (signal)",
+ 18: "stopped",
+ 19: "continued",
+ 20: "child exited",
+ 21: "stopped (tty input)",
+ 22: "stopped (tty output)",
+ 23: "I/O possible",
+ 24: "cputime limit exceeded",
+ 25: "filesize limit exceeded",
+ 26: "virtual timer expired",
+ 27: "profiling timer expired",
+ 28: "window size changes",
+ 29: "information request",
+ 30: "user defined signal 1",
+ 31: "user defined signal 2",
+ 32: "thread AST",
+}
diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
new file mode 100644
index 000000000..a08922b98
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go
@@ -0,0 +1,1436 @@
+// 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/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
new file mode 100644
index 000000000..031034a34
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go
@@ -0,0 +1,1427 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
new file mode 100644
index 000000000..ee96f78ba
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go
@@ -0,0 +1,1443 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
new file mode 100644
index 000000000..e52cd0d54
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go
@@ -0,0 +1,1427 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
new file mode 100644
index 000000000..9863ef99e
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go
@@ -0,0 +1,1427 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
new file mode 100644
index 000000000..78de48dcf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go
@@ -0,0 +1,1413 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
new file mode 100644
index 000000000..fade994dc
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go
@@ -0,0 +1,1665 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
new file mode 100644
index 000000000..c28281e83
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go
@@ -0,0 +1,1665 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
new file mode 100644
index 000000000..a18ba5c88
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go
@@ -0,0 +1,1665 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
new file mode 100644
index 000000000..80f6a1b0a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go
@@ -0,0 +1,1660 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func getrlimit(resource int, rlim *rlimit32) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Time(t *Time_t) (tt Time_t, err error) {
+ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0)
+ tt = Time_t(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
new file mode 100644
index 000000000..078c8f05a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go
@@ -0,0 +1,1854 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ use(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 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 pipe(p *[2]_C_int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
new file mode 100644
index 000000000..76e5f7c0b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go
@@ -0,0 +1,1761 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Truncate(path string, length int64) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0)
+ use(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_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setrlimit(resource int, rlim *rlimit32) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
new file mode 100644
index 000000000..72b79470a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go
@@ -0,0 +1,1734 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0)
+ use(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 pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
new file mode 100644
index 000000000..ba55509ea
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go
@@ -0,0 +1,1803 @@
+// mksyscall.pl syscall_linux.go syscall_linux_mips64x.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build mips64,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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ use(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 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 pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fstat(fd int, st *stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func lstat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func stat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
new file mode 100644
index 000000000..2b1cc8473
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go
@@ -0,0 +1,1803 @@
+// mksyscall.pl syscall_linux.go syscall_linux_mips64x.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build mips64le,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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Statfs(path string, buf *Statfs_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ use(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 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 pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func fstat(fd int, st *stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func lstat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func stat(path string, st *stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
new file mode 100644
index 000000000..25f39db9d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go
@@ -0,0 +1,1865 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ use(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
+}
+
+// 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 pipe(p *[2]_C_int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
new file mode 100644
index 000000000..70702b516
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go
@@ -0,0 +1,1865 @@
+// 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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ioperm(from int, num int, on int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Iopl(level int) (err error) {
+ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ use(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
+}
+
+// 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 pipe(p *[2]_C_int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
new file mode 100644
index 000000000..94b93d3d0
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go
@@ -0,0 +1,1645 @@
+// mksyscall.pl syscall_linux.go syscall_linux_s390x.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build s390x,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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 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 EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fadvise(fd int, offset int64, length int64, advice int) (err error) {
+ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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_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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ use(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 getgroups(n int, list *_Gid_t) (nn int, err error) {
+ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+ nn = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func setgroups(n int, list *_Gid_t) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
new file mode 100644
index 000000000..774b10ed8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go
@@ -0,0 +1,1834 @@
+// mksyscall.pl syscall_linux.go syscall_linux_sparc64.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+// +build sparc64,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 ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 unsafe.Pointer
+ if len(buf) > 0 {
+ _p1 = unsafe.Pointer(&buf[0])
+ } else {
+ _p1 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0)
+ 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 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 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 Setns(fd int, nstype int) (err error) {
+ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setpriority(which int, who int, prio int) (err error) {
+ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setxattr(path string, attr string, data []byte, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ var _p1 *byte
+ _p1, err = BytePtrFromString(attr)
+ if err != nil {
+ return
+ }
+ var _p2 unsafe.Pointer
+ if len(data) > 0 {
+ _p2 = unsafe.Pointer(&data[0])
+ } else {
+ _p2 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0)
+ 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 write(fd int, p []byte) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func exitThread(code int) (err error) {
+ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func readlen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func writelen(fd int, p *byte, np int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func munmap(addr uintptr, length uintptr) (err error) {
+ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Madvise(b []byte, advice int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mprotect(b []byte, prot int) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlock(b []byte) (err error) {
+ var _p0 unsafe.Pointer
+ if len(b) > 0 {
+ _p0 = unsafe.Pointer(&b[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Mlockall(flags int) (err error) {
+ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Munlockall() (err error) {
+ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(events) > 0 {
+ _p0 = unsafe.Pointer(&events[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Dup2(oldfd int, newfd int) (err error) {
+ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fchown(fd int, uid int, gid int) (err error) {
+ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstat(fd int, stat *Stat_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Fstatfs(fd int, buf *Statfs_t) (err error) {
+ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Ftruncate(fd int, length int64) (err error) {
+ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getegid() (egid int) {
+ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0)
+ egid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Geteuid() (euid int) {
+ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0)
+ euid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getgid() (gid int) {
+ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0)
+ gid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Getuid() (uid int) {
+ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0)
+ uid = int(r0)
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func InotifyInit() (fd int, err error) {
+ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0)
+ fd = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Lchown(path string, uid int, gid int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid))
+ use(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 Pause() (err error) {
+ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pread(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Pwrite(fd int, p []byte, offset int64) (n int, err error) {
+ var _p0 unsafe.Pointer
+ if len(p) > 0 {
+ _p0 = unsafe.Pointer(&p[0])
+ } else {
+ _p0 = unsafe.Pointer(&_zero)
+ }
+ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Seek(fd int, offset int64, whence int) (off int64, err error) {
+ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence))
+ off = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) {
+ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0)
+ written = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsgid(gid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setfsuid(uid int) (err error) {
+ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setregid(rgid int, egid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresgid(rgid int, egid int, sgid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setresuid(ruid int, euid int, suid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setrlimit(resource int, rlim *Rlimit) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Setreuid(ruid int, euid int) (err error) {
+ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Shutdown(fd int, how int) (err error) {
+ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) {
+ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags))
+ n = int64(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Stat(path string, stat *Stat_t) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0)
+ use(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 Gettimeofday(tv *Timeval) (err error) {
+ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func Utime(path string, buf *Utimbuf) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0)
+ use(unsafe.Pointer(_p0))
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe(p *[2]_C_int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func pipe2(p *[2]_C_int, flags int) (err error) {
+ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
+
+// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT
+
+func poll(fds *PollFd, nfds int, timeout int) (n int, err error) {
+ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout))
+ n = int(r0)
+ if e1 != 0 {
+ err = errnoErr(e1)
+ }
+ return
+}
diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
new file mode 100644
index 000000000..b16e1d0ee
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go
@@ -0,0 +1,1327 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
new file mode 100644
index 000000000..b63667da9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go
@@ -0,0 +1,1327 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
new file mode 100644
index 000000000..b0d19038d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go
@@ -0,0 +1,1327 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
new file mode 100644
index 000000000..f91a5b856
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go
@@ -0,0 +1,1387 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
new file mode 100644
index 000000000..2e8d59d72
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go
@@ -0,0 +1,1387 @@
+// 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))
+ use(_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, 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/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
new file mode 100644
index 000000000..c0ecfc044
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go
@@ -0,0 +1,1599 @@
+// 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_pipe pipe "libc.so"
+//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so"
+//go:cgo_import_dynamic libc_getcwd getcwd "libc.so"
+//go:cgo_import_dynamic libc_getgroups getgroups "libc.so"
+//go:cgo_import_dynamic libc_setgroups setgroups "libc.so"
+//go:cgo_import_dynamic libc_wait4 wait4 "libc.so"
+//go:cgo_import_dynamic libc_gethostname gethostname "libc.so"
+//go:cgo_import_dynamic libc_utimes utimes "libc.so"
+//go:cgo_import_dynamic libc_utimensat utimensat "libc.so"
+//go:cgo_import_dynamic libc_fcntl fcntl "libc.so"
+//go:cgo_import_dynamic libc_futimesat futimesat "libc.so"
+//go:cgo_import_dynamic libc_accept accept "libsocket.so"
+//go:cgo_import_dynamic libc_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 procpipe libc_pipe
+//go:linkname procgetsockname libc_getsockname
+//go:linkname procGetcwd libc_getcwd
+//go:linkname procgetgroups libc_getgroups
+//go:linkname procsetgroups libc_setgroups
+//go:linkname procwait4 libc_wait4
+//go:linkname procgethostname libc_gethostname
+//go:linkname procutimes libc_utimes
+//go:linkname procutimensat libc_utimensat
+//go:linkname procfcntl libc_fcntl
+//go:linkname procfutimesat libc_futimesat
+//go:linkname procaccept libc_accept
+//go:linkname 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 (
+ procpipe,
+ procgetsockname,
+ procGetcwd,
+ procgetgroups,
+ procsetgroups,
+ procwait4,
+ procgethostname,
+ 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 pipe(p *[2]_C_int) (n int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) {
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func Getcwd(buf []byte) (n int, err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+ _p0 = &buf[0]
+ }
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func getgroups(ngid int, gid *_Gid_t) (n int, err error) {
+ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func setgroups(ngid int, gid *_Gid_t) (err error) {
+ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) {
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0)
+ wpid = int32(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func gethostname(buf []byte) (n int, err error) {
+ var _p0 *byte
+ if len(buf) > 0 {
+ _p0 = &buf[0]
+ }
+ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0)
+ n = int(r0)
+ if e1 != 0 {
+ err = e1
+ }
+ return
+}
+
+func utimes(path string, times *[2]Timeval) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0)
+ 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, flags int) (err error) {
+ var _p0 *byte
+ _p0, err = BytePtrFromString(path)
+ if err != nil {
+ return
+ }
+ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0)
+ 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/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
new file mode 100644
index 000000000..83bb935b9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go
@@ -0,0 +1,270 @@
+// mksysctl_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+package unix
+
+type mibentry struct {
+ ctlname string
+ ctloid []_C_int
+}
+
+var sysctlMib = []mibentry{
+ {"ddb.console", []_C_int{9, 6}},
+ {"ddb.log", []_C_int{9, 7}},
+ {"ddb.max_line", []_C_int{9, 3}},
+ {"ddb.max_width", []_C_int{9, 2}},
+ {"ddb.panic", []_C_int{9, 5}},
+ {"ddb.radix", []_C_int{9, 1}},
+ {"ddb.tab_stop_width", []_C_int{9, 4}},
+ {"ddb.trigger", []_C_int{9, 8}},
+ {"fs.posix.setuid", []_C_int{3, 1, 1}},
+ {"hw.allowpowerdown", []_C_int{6, 22}},
+ {"hw.byteorder", []_C_int{6, 4}},
+ {"hw.cpuspeed", []_C_int{6, 12}},
+ {"hw.diskcount", []_C_int{6, 10}},
+ {"hw.disknames", []_C_int{6, 8}},
+ {"hw.diskstats", []_C_int{6, 9}},
+ {"hw.machine", []_C_int{6, 1}},
+ {"hw.model", []_C_int{6, 2}},
+ {"hw.ncpu", []_C_int{6, 3}},
+ {"hw.ncpufound", []_C_int{6, 21}},
+ {"hw.pagesize", []_C_int{6, 7}},
+ {"hw.physmem", []_C_int{6, 19}},
+ {"hw.product", []_C_int{6, 15}},
+ {"hw.serialno", []_C_int{6, 17}},
+ {"hw.setperf", []_C_int{6, 13}},
+ {"hw.usermem", []_C_int{6, 20}},
+ {"hw.uuid", []_C_int{6, 18}},
+ {"hw.vendor", []_C_int{6, 14}},
+ {"hw.version", []_C_int{6, 16}},
+ {"kern.arandom", []_C_int{1, 37}},
+ {"kern.argmax", []_C_int{1, 8}},
+ {"kern.boottime", []_C_int{1, 21}},
+ {"kern.bufcachepercent", []_C_int{1, 72}},
+ {"kern.ccpu", []_C_int{1, 45}},
+ {"kern.clockrate", []_C_int{1, 12}},
+ {"kern.consdev", []_C_int{1, 75}},
+ {"kern.cp_time", []_C_int{1, 40}},
+ {"kern.cp_time2", []_C_int{1, 71}},
+ {"kern.cryptodevallowsoft", []_C_int{1, 53}},
+ {"kern.domainname", []_C_int{1, 22}},
+ {"kern.file", []_C_int{1, 73}},
+ {"kern.forkstat", []_C_int{1, 42}},
+ {"kern.fscale", []_C_int{1, 46}},
+ {"kern.fsync", []_C_int{1, 33}},
+ {"kern.hostid", []_C_int{1, 11}},
+ {"kern.hostname", []_C_int{1, 10}},
+ {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}},
+ {"kern.job_control", []_C_int{1, 19}},
+ {"kern.malloc.buckets", []_C_int{1, 39, 1}},
+ {"kern.malloc.kmemnames", []_C_int{1, 39, 3}},
+ {"kern.maxclusters", []_C_int{1, 67}},
+ {"kern.maxfiles", []_C_int{1, 7}},
+ {"kern.maxlocksperuid", []_C_int{1, 70}},
+ {"kern.maxpartitions", []_C_int{1, 23}},
+ {"kern.maxproc", []_C_int{1, 6}},
+ {"kern.maxthread", []_C_int{1, 25}},
+ {"kern.maxvnodes", []_C_int{1, 5}},
+ {"kern.mbstat", []_C_int{1, 59}},
+ {"kern.msgbuf", []_C_int{1, 48}},
+ {"kern.msgbufsize", []_C_int{1, 38}},
+ {"kern.nchstats", []_C_int{1, 41}},
+ {"kern.netlivelocks", []_C_int{1, 76}},
+ {"kern.nfiles", []_C_int{1, 56}},
+ {"kern.ngroups", []_C_int{1, 18}},
+ {"kern.nosuidcoredump", []_C_int{1, 32}},
+ {"kern.nprocs", []_C_int{1, 47}},
+ {"kern.nselcoll", []_C_int{1, 43}},
+ {"kern.nthreads", []_C_int{1, 26}},
+ {"kern.numvnodes", []_C_int{1, 58}},
+ {"kern.osrelease", []_C_int{1, 2}},
+ {"kern.osrevision", []_C_int{1, 3}},
+ {"kern.ostype", []_C_int{1, 1}},
+ {"kern.osversion", []_C_int{1, 27}},
+ {"kern.pool_debug", []_C_int{1, 77}},
+ {"kern.posix1version", []_C_int{1, 17}},
+ {"kern.proc", []_C_int{1, 66}},
+ {"kern.random", []_C_int{1, 31}},
+ {"kern.rawpartition", []_C_int{1, 24}},
+ {"kern.saved_ids", []_C_int{1, 20}},
+ {"kern.securelevel", []_C_int{1, 9}},
+ {"kern.seminfo", []_C_int{1, 61}},
+ {"kern.shminfo", []_C_int{1, 62}},
+ {"kern.somaxconn", []_C_int{1, 28}},
+ {"kern.sominconn", []_C_int{1, 29}},
+ {"kern.splassert", []_C_int{1, 54}},
+ {"kern.stackgap_random", []_C_int{1, 50}},
+ {"kern.sysvipc_info", []_C_int{1, 51}},
+ {"kern.sysvmsg", []_C_int{1, 34}},
+ {"kern.sysvsem", []_C_int{1, 35}},
+ {"kern.sysvshm", []_C_int{1, 36}},
+ {"kern.timecounter.choice", []_C_int{1, 69, 4}},
+ {"kern.timecounter.hardware", []_C_int{1, 69, 3}},
+ {"kern.timecounter.tick", []_C_int{1, 69, 1}},
+ {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}},
+ {"kern.tty.maxptys", []_C_int{1, 44, 6}},
+ {"kern.tty.nptys", []_C_int{1, 44, 7}},
+ {"kern.tty.tk_cancc", []_C_int{1, 44, 4}},
+ {"kern.tty.tk_nin", []_C_int{1, 44, 1}},
+ {"kern.tty.tk_nout", []_C_int{1, 44, 2}},
+ {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}},
+ {"kern.tty.ttyinfo", []_C_int{1, 44, 5}},
+ {"kern.ttycount", []_C_int{1, 57}},
+ {"kern.userasymcrypto", []_C_int{1, 60}},
+ {"kern.usercrypto", []_C_int{1, 52}},
+ {"kern.usermount", []_C_int{1, 30}},
+ {"kern.version", []_C_int{1, 4}},
+ {"kern.vnode", []_C_int{1, 13}},
+ {"kern.watchdog.auto", []_C_int{1, 64, 2}},
+ {"kern.watchdog.period", []_C_int{1, 64, 1}},
+ {"net.bpf.bufsize", []_C_int{4, 31, 1}},
+ {"net.bpf.maxbufsize", []_C_int{4, 31, 2}},
+ {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}},
+ {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}},
+ {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}},
+ {"net.inet.carp.log", []_C_int{4, 2, 112, 3}},
+ {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}},
+ {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}},
+ {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}},
+ {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}},
+ {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}},
+ {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}},
+ {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}},
+ {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}},
+ {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}},
+ {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}},
+ {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}},
+ {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}},
+ {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}},
+ {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}},
+ {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}},
+ {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}},
+ {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}},
+ {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}},
+ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}},
+ {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}},
+ {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}},
+ {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}},
+ {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}},
+ {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}},
+ {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}},
+ {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}},
+ {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}},
+ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}},
+ {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}},
+ {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}},
+ {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}},
+ {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}},
+ {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}},
+ {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}},
+ {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}},
+ {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}},
+ {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}},
+ {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}},
+ {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}},
+ {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}},
+ {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}},
+ {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}},
+ {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}},
+ {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}},
+ {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}},
+ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}},
+ {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}},
+ {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}},
+ {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}},
+ {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}},
+ {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}},
+ {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}},
+ {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}},
+ {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}},
+ {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}},
+ {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}},
+ {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}},
+ {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}},
+ {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}},
+ {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}},
+ {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}},
+ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}},
+ {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}},
+ {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}},
+ {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}},
+ {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}},
+ {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}},
+ {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}},
+ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}},
+ {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}},
+ {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}},
+ {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}},
+ {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}},
+ {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}},
+ {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}},
+ {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}},
+ {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}},
+ {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}},
+ {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}},
+ {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}},
+ {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}},
+ {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}},
+ {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}},
+ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}},
+ {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}},
+ {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}},
+ {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}},
+ {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}},
+ {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}},
+ {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}},
+ {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}},
+ {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}},
+ {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}},
+ {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}},
+ {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}},
+ {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}},
+ {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}},
+ {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}},
+ {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}},
+ {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}},
+ {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}},
+ {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}},
+ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}},
+ {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}},
+ {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}},
+ {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}},
+ {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}},
+ {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}},
+ {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}},
+ {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}},
+ {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}},
+ {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}},
+ {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}},
+ {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}},
+ {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}},
+ {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}},
+ {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}},
+ {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}},
+ {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}},
+ {"net.key.sadb_dump", []_C_int{4, 30, 1}},
+ {"net.key.spd_dump", []_C_int{4, 30, 2}},
+ {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}},
+ {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}},
+ {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}},
+ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}},
+ {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}},
+ {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}},
+ {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}},
+ {"net.mpls.ttl", []_C_int{4, 33, 2}},
+ {"net.pflow.stats", []_C_int{4, 34, 1}},
+ {"net.pipex.enable", []_C_int{4, 35, 1}},
+ {"vm.anonmin", []_C_int{2, 7}},
+ {"vm.loadavg", []_C_int{2, 2}},
+ {"vm.maxslp", []_C_int{2, 10}},
+ {"vm.nkmempages", []_C_int{2, 6}},
+ {"vm.psstrings", []_C_int{2, 3}},
+ {"vm.swapencrypt.enable", []_C_int{2, 5, 0}},
+ {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}},
+ {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}},
+ {"vm.uspace", []_C_int{2, 11}},
+ {"vm.uvmexp", []_C_int{2, 4}},
+ {"vm.vmmeter", []_C_int{2, 1}},
+ {"vm.vnodemin", []_C_int{2, 9}},
+ {"vm.vtextmin", []_C_int{2, 8}},
+}
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
new file mode 100644
index 000000000..2786773ba
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go
@@ -0,0 +1,398 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build 386,darwin
+
+package unix
+
+const (
+ SYS_SYSCALL = 0
+ SYS_EXIT = 1
+ SYS_FORK = 2
+ SYS_READ = 3
+ SYS_WRITE = 4
+ SYS_OPEN = 5
+ SYS_CLOSE = 6
+ SYS_WAIT4 = 7
+ SYS_LINK = 9
+ SYS_UNLINK = 10
+ SYS_CHDIR = 12
+ SYS_FCHDIR = 13
+ SYS_MKNOD = 14
+ SYS_CHMOD = 15
+ SYS_CHOWN = 16
+ SYS_GETFSSTAT = 18
+ SYS_GETPID = 20
+ SYS_SETUID = 23
+ SYS_GETUID = 24
+ SYS_GETEUID = 25
+ SYS_PTRACE = 26
+ SYS_RECVMSG = 27
+ SYS_SENDMSG = 28
+ SYS_RECVFROM = 29
+ SYS_ACCEPT = 30
+ SYS_GETPEERNAME = 31
+ SYS_GETSOCKNAME = 32
+ SYS_ACCESS = 33
+ SYS_CHFLAGS = 34
+ SYS_FCHFLAGS = 35
+ SYS_SYNC = 36
+ SYS_KILL = 37
+ SYS_GETPPID = 39
+ SYS_DUP = 41
+ SYS_PIPE = 42
+ SYS_GETEGID = 43
+ SYS_SIGACTION = 46
+ SYS_GETGID = 47
+ SYS_SIGPROCMASK = 48
+ SYS_GETLOGIN = 49
+ SYS_SETLOGIN = 50
+ SYS_ACCT = 51
+ SYS_SIGPENDING = 52
+ SYS_SIGALTSTACK = 53
+ SYS_IOCTL = 54
+ SYS_REBOOT = 55
+ SYS_REVOKE = 56
+ SYS_SYMLINK = 57
+ SYS_READLINK = 58
+ SYS_EXECVE = 59
+ SYS_UMASK = 60
+ SYS_CHROOT = 61
+ SYS_MSYNC = 65
+ SYS_VFORK = 66
+ SYS_MUNMAP = 73
+ SYS_MPROTECT = 74
+ SYS_MADVISE = 75
+ SYS_MINCORE = 78
+ SYS_GETGROUPS = 79
+ SYS_SETGROUPS = 80
+ SYS_GETPGRP = 81
+ SYS_SETPGID = 82
+ SYS_SETITIMER = 83
+ SYS_SWAPON = 85
+ SYS_GETITIMER = 86
+ SYS_GETDTABLESIZE = 89
+ SYS_DUP2 = 90
+ SYS_FCNTL = 92
+ SYS_SELECT = 93
+ SYS_FSYNC = 95
+ SYS_SETPRIORITY = 96
+ SYS_SOCKET = 97
+ SYS_CONNECT = 98
+ SYS_GETPRIORITY = 100
+ SYS_BIND = 104
+ SYS_SETSOCKOPT = 105
+ SYS_LISTEN = 106
+ SYS_SIGSUSPEND = 111
+ SYS_GETTIMEOFDAY = 116
+ SYS_GETRUSAGE = 117
+ SYS_GETSOCKOPT = 118
+ SYS_READV = 120
+ SYS_WRITEV = 121
+ SYS_SETTIMEOFDAY = 122
+ SYS_FCHOWN = 123
+ SYS_FCHMOD = 124
+ SYS_SETREUID = 126
+ SYS_SETREGID = 127
+ SYS_RENAME = 128
+ SYS_FLOCK = 131
+ SYS_MKFIFO = 132
+ SYS_SENDTO = 133
+ SYS_SHUTDOWN = 134
+ SYS_SOCKETPAIR = 135
+ SYS_MKDIR = 136
+ SYS_RMDIR = 137
+ SYS_UTIMES = 138
+ SYS_FUTIMES = 139
+ SYS_ADJTIME = 140
+ SYS_GETHOSTUUID = 142
+ SYS_SETSID = 147
+ SYS_GETPGID = 151
+ SYS_SETPRIVEXEC = 152
+ SYS_PREAD = 153
+ SYS_PWRITE = 154
+ SYS_NFSSVC = 155
+ SYS_STATFS = 157
+ SYS_FSTATFS = 158
+ SYS_UNMOUNT = 159
+ SYS_GETFH = 161
+ SYS_QUOTACTL = 165
+ SYS_MOUNT = 167
+ SYS_CSOPS = 169
+ SYS_CSOPS_AUDITTOKEN = 170
+ SYS_WAITID = 173
+ SYS_KDEBUG_TRACE64 = 179
+ SYS_KDEBUG_TRACE = 180
+ SYS_SETGID = 181
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
+ SYS_CHUD = 185
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+ SYS_LSTAT = 190
+ SYS_PATHCONF = 191
+ SYS_FPATHCONF = 192
+ SYS_GETRLIMIT = 194
+ SYS_SETRLIMIT = 195
+ SYS_GETDIRENTRIES = 196
+ SYS_MMAP = 197
+ SYS_LSEEK = 199
+ SYS_TRUNCATE = 200
+ SYS_FTRUNCATE = 201
+ SYS_SYSCTL = 202
+ SYS_MLOCK = 203
+ SYS_MUNLOCK = 204
+ SYS_UNDELETE = 205
+ SYS_OPEN_DPROTECTED_NP = 216
+ SYS_GETATTRLIST = 220
+ SYS_SETATTRLIST = 221
+ SYS_GETDIRENTRIESATTR = 222
+ SYS_EXCHANGEDATA = 223
+ SYS_SEARCHFS = 225
+ SYS_DELETE = 226
+ SYS_COPYFILE = 227
+ SYS_FGETATTRLIST = 228
+ SYS_FSETATTRLIST = 229
+ SYS_POLL = 230
+ SYS_WATCHEVENT = 231
+ SYS_WAITEVENT = 232
+ SYS_MODWATCH = 233
+ SYS_GETXATTR = 234
+ SYS_FGETXATTR = 235
+ SYS_SETXATTR = 236
+ SYS_FSETXATTR = 237
+ SYS_REMOVEXATTR = 238
+ SYS_FREMOVEXATTR = 239
+ SYS_LISTXATTR = 240
+ SYS_FLISTXATTR = 241
+ SYS_FSCTL = 242
+ SYS_INITGROUPS = 243
+ SYS_POSIX_SPAWN = 244
+ SYS_FFSCTL = 245
+ SYS_NFSCLNT = 247
+ SYS_FHOPEN = 248
+ SYS_MINHERIT = 250
+ SYS_SEMSYS = 251
+ SYS_MSGSYS = 252
+ SYS_SHMSYS = 253
+ SYS_SEMCTL = 254
+ SYS_SEMGET = 255
+ SYS_SEMOP = 256
+ SYS_MSGCTL = 258
+ SYS_MSGGET = 259
+ SYS_MSGSND = 260
+ SYS_MSGRCV = 261
+ SYS_SHMAT = 262
+ SYS_SHMCTL = 263
+ SYS_SHMDT = 264
+ SYS_SHMGET = 265
+ SYS_SHM_OPEN = 266
+ SYS_SHM_UNLINK = 267
+ SYS_SEM_OPEN = 268
+ SYS_SEM_CLOSE = 269
+ SYS_SEM_UNLINK = 270
+ SYS_SEM_WAIT = 271
+ SYS_SEM_TRYWAIT = 272
+ SYS_SEM_POST = 273
+ SYS_SYSCTLBYNAME = 274
+ SYS_OPEN_EXTENDED = 277
+ SYS_UMASK_EXTENDED = 278
+ SYS_STAT_EXTENDED = 279
+ SYS_LSTAT_EXTENDED = 280
+ SYS_FSTAT_EXTENDED = 281
+ SYS_CHMOD_EXTENDED = 282
+ SYS_FCHMOD_EXTENDED = 283
+ SYS_ACCESS_EXTENDED = 284
+ SYS_SETTID = 285
+ SYS_GETTID = 286
+ SYS_SETSGROUPS = 287
+ SYS_GETSGROUPS = 288
+ SYS_SETWGROUPS = 289
+ SYS_GETWGROUPS = 290
+ SYS_MKFIFO_EXTENDED = 291
+ SYS_MKDIR_EXTENDED = 292
+ SYS_IDENTITYSVC = 293
+ SYS_SHARED_REGION_CHECK_NP = 294
+ SYS_VM_PRESSURE_MONITOR = 296
+ SYS_PSYNCH_RW_LONGRDLOCK = 297
+ SYS_PSYNCH_RW_YIELDWRLOCK = 298
+ SYS_PSYNCH_RW_DOWNGRADE = 299
+ SYS_PSYNCH_RW_UPGRADE = 300
+ SYS_PSYNCH_MUTEXWAIT = 301
+ SYS_PSYNCH_MUTEXDROP = 302
+ SYS_PSYNCH_CVBROAD = 303
+ SYS_PSYNCH_CVSIGNAL = 304
+ SYS_PSYNCH_CVWAIT = 305
+ SYS_PSYNCH_RW_RDLOCK = 306
+ SYS_PSYNCH_RW_WRLOCK = 307
+ SYS_PSYNCH_RW_UNLOCK = 308
+ SYS_PSYNCH_RW_UNLOCK2 = 309
+ SYS_GETSID = 310
+ SYS_SETTID_WITH_PID = 311
+ SYS_PSYNCH_CVCLRPREPOST = 312
+ SYS_AIO_FSYNC = 313
+ SYS_AIO_RETURN = 314
+ SYS_AIO_SUSPEND = 315
+ SYS_AIO_CANCEL = 316
+ SYS_AIO_ERROR = 317
+ SYS_AIO_READ = 318
+ SYS_AIO_WRITE = 319
+ SYS_LIO_LISTIO = 320
+ SYS_IOPOLICYSYS = 322
+ SYS_PROCESS_POLICY = 323
+ SYS_MLOCKALL = 324
+ SYS_MUNLOCKALL = 325
+ SYS_ISSETUGID = 327
+ SYS___PTHREAD_KILL = 328
+ SYS___PTHREAD_SIGMASK = 329
+ SYS___SIGWAIT = 330
+ SYS___DISABLE_THREADSIGNAL = 331
+ SYS___PTHREAD_MARKCANCEL = 332
+ SYS___PTHREAD_CANCELED = 333
+ SYS___SEMWAIT_SIGNAL = 334
+ SYS_PROC_INFO = 336
+ SYS_SENDFILE = 337
+ SYS_STAT64 = 338
+ SYS_FSTAT64 = 339
+ SYS_LSTAT64 = 340
+ SYS_STAT64_EXTENDED = 341
+ SYS_LSTAT64_EXTENDED = 342
+ SYS_FSTAT64_EXTENDED = 343
+ SYS_GETDIRENTRIES64 = 344
+ SYS_STATFS64 = 345
+ SYS_FSTATFS64 = 346
+ SYS_GETFSSTAT64 = 347
+ SYS___PTHREAD_CHDIR = 348
+ SYS___PTHREAD_FCHDIR = 349
+ SYS_AUDIT = 350
+ SYS_AUDITON = 351
+ SYS_GETAUID = 353
+ SYS_SETAUID = 354
+ SYS_GETAUDIT_ADDR = 357
+ SYS_SETAUDIT_ADDR = 358
+ SYS_AUDITCTL = 359
+ SYS_BSDTHREAD_CREATE = 360
+ SYS_BSDTHREAD_TERMINATE = 361
+ SYS_KQUEUE = 362
+ SYS_KEVENT = 363
+ SYS_LCHOWN = 364
+ SYS_STACK_SNAPSHOT = 365
+ SYS_BSDTHREAD_REGISTER = 366
+ SYS_WORKQ_OPEN = 367
+ SYS_WORKQ_KERNRETURN = 368
+ SYS_KEVENT64 = 369
+ SYS___OLD_SEMWAIT_SIGNAL = 370
+ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+ SYS___MAC_SET_FILE = 383
+ SYS___MAC_GET_LINK = 384
+ SYS___MAC_SET_LINK = 385
+ SYS___MAC_GET_PROC = 386
+ SYS___MAC_SET_PROC = 387
+ SYS___MAC_GET_FD = 388
+ SYS___MAC_SET_FD = 389
+ SYS___MAC_GET_PID = 390
+ SYS___MAC_GET_LCID = 391
+ SYS___MAC_GET_LCTX = 392
+ SYS___MAC_SET_LCTX = 393
+ SYS_SETLCID = 394
+ SYS_GETLCID = 395
+ SYS_READ_NOCANCEL = 396
+ SYS_WRITE_NOCANCEL = 397
+ SYS_OPEN_NOCANCEL = 398
+ SYS_CLOSE_NOCANCEL = 399
+ SYS_WAIT4_NOCANCEL = 400
+ SYS_RECVMSG_NOCANCEL = 401
+ SYS_SENDMSG_NOCANCEL = 402
+ SYS_RECVFROM_NOCANCEL = 403
+ SYS_ACCEPT_NOCANCEL = 404
+ SYS_MSYNC_NOCANCEL = 405
+ SYS_FCNTL_NOCANCEL = 406
+ SYS_SELECT_NOCANCEL = 407
+ SYS_FSYNC_NOCANCEL = 408
+ SYS_CONNECT_NOCANCEL = 409
+ SYS_SIGSUSPEND_NOCANCEL = 410
+ SYS_READV_NOCANCEL = 411
+ SYS_WRITEV_NOCANCEL = 412
+ SYS_SENDTO_NOCANCEL = 413
+ SYS_PREAD_NOCANCEL = 414
+ SYS_PWRITE_NOCANCEL = 415
+ SYS_WAITID_NOCANCEL = 416
+ SYS_POLL_NOCANCEL = 417
+ SYS_MSGSND_NOCANCEL = 418
+ SYS_MSGRCV_NOCANCEL = 419
+ SYS_SEM_WAIT_NOCANCEL = 420
+ SYS_AIO_SUSPEND_NOCANCEL = 421
+ SYS___SIGWAIT_NOCANCEL = 422
+ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423
+ SYS___MAC_MOUNT = 424
+ SYS___MAC_GET_MOUNT = 425
+ SYS___MAC_GETFSSTAT = 426
+ SYS_FSGETPATH = 427
+ SYS_AUDIT_SESSION_SELF = 428
+ SYS_AUDIT_SESSION_JOIN = 429
+ SYS_FILEPORT_MAKEPORT = 430
+ SYS_FILEPORT_MAKEFD = 431
+ SYS_AUDIT_SESSION_PORT = 432
+ SYS_PID_SUSPEND = 433
+ SYS_PID_RESUME = 434
+ SYS_PID_HIBERNATE = 435
+ SYS_PID_SHUTDOWN_SOCKETS = 436
+ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+ SYS_KAS_INFO = 439
+ SYS_MEMORYSTATUS_CONTROL = 440
+ SYS_GUARDED_OPEN_NP = 441
+ SYS_GUARDED_CLOSE_NP = 442
+ SYS_GUARDED_KQUEUE_NP = 443
+ SYS_CHANGE_FDGUARD_NP = 444
+ SYS_PROC_RLIMIT_CONTROL = 446
+ SYS_CONNECTX = 447
+ SYS_DISCONNECTX = 448
+ SYS_PEELOFF = 449
+ SYS_SOCKET_DELEGATE = 450
+ SYS_TELEMETRY = 451
+ SYS_PROC_UUID_POLICY = 452
+ SYS_MEMORYSTATUS_GET_LEVEL = 453
+ SYS_SYSTEM_OVERRIDE = 454
+ SYS_VFS_PURGE = 455
+ SYS_SFI_CTL = 456
+ SYS_SFI_PIDCTL = 457
+ SYS_COALITION = 458
+ SYS_COALITION_INFO = 459
+ SYS_NECP_MATCH_POLICY = 460
+ SYS_GETATTRLISTBULK = 461
+ SYS_OPENAT = 463
+ SYS_OPENAT_NOCANCEL = 464
+ SYS_RENAMEAT = 465
+ SYS_FACCESSAT = 466
+ SYS_FCHMODAT = 467
+ SYS_FCHOWNAT = 468
+ SYS_FSTATAT = 469
+ SYS_FSTATAT64 = 470
+ SYS_LINKAT = 471
+ SYS_UNLINKAT = 472
+ SYS_READLINKAT = 473
+ SYS_SYMLINKAT = 474
+ SYS_MKDIRAT = 475
+ SYS_GETATTRLISTAT = 476
+ SYS_PROC_TRACE_LOG = 477
+ SYS_BSDTHREAD_CTL = 478
+ SYS_OPENBYID_NP = 479
+ SYS_RECVMSG_X = 480
+ SYS_SENDMSG_X = 481
+ SYS_THREAD_SELFUSAGE = 482
+ SYS_CSRCTL = 483
+ SYS_GUARDED_OPEN_DPROTECTED_NP = 484
+ SYS_GUARDED_WRITE_NP = 485
+ SYS_GUARDED_PWRITE_NP = 486
+ SYS_GUARDED_WRITEV_NP = 487
+ SYS_RENAME_EXT = 488
+ SYS_MREMAP_ENCRYPTED = 489
+ SYS_MAXSYSCALL = 490
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
new file mode 100644
index 000000000..09de240c8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go
@@ -0,0 +1,398 @@
+// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build amd64,darwin
+
+package unix
+
+const (
+ SYS_SYSCALL = 0
+ SYS_EXIT = 1
+ SYS_FORK = 2
+ SYS_READ = 3
+ SYS_WRITE = 4
+ SYS_OPEN = 5
+ SYS_CLOSE = 6
+ SYS_WAIT4 = 7
+ SYS_LINK = 9
+ SYS_UNLINK = 10
+ SYS_CHDIR = 12
+ SYS_FCHDIR = 13
+ SYS_MKNOD = 14
+ SYS_CHMOD = 15
+ SYS_CHOWN = 16
+ SYS_GETFSSTAT = 18
+ SYS_GETPID = 20
+ SYS_SETUID = 23
+ SYS_GETUID = 24
+ SYS_GETEUID = 25
+ SYS_PTRACE = 26
+ SYS_RECVMSG = 27
+ SYS_SENDMSG = 28
+ SYS_RECVFROM = 29
+ SYS_ACCEPT = 30
+ SYS_GETPEERNAME = 31
+ SYS_GETSOCKNAME = 32
+ SYS_ACCESS = 33
+ SYS_CHFLAGS = 34
+ SYS_FCHFLAGS = 35
+ SYS_SYNC = 36
+ SYS_KILL = 37
+ SYS_GETPPID = 39
+ SYS_DUP = 41
+ SYS_PIPE = 42
+ SYS_GETEGID = 43
+ SYS_SIGACTION = 46
+ SYS_GETGID = 47
+ SYS_SIGPROCMASK = 48
+ SYS_GETLOGIN = 49
+ SYS_SETLOGIN = 50
+ SYS_ACCT = 51
+ SYS_SIGPENDING = 52
+ SYS_SIGALTSTACK = 53
+ SYS_IOCTL = 54
+ SYS_REBOOT = 55
+ SYS_REVOKE = 56
+ SYS_SYMLINK = 57
+ SYS_READLINK = 58
+ SYS_EXECVE = 59
+ SYS_UMASK = 60
+ SYS_CHROOT = 61
+ SYS_MSYNC = 65
+ SYS_VFORK = 66
+ SYS_MUNMAP = 73
+ SYS_MPROTECT = 74
+ SYS_MADVISE = 75
+ SYS_MINCORE = 78
+ SYS_GETGROUPS = 79
+ SYS_SETGROUPS = 80
+ SYS_GETPGRP = 81
+ SYS_SETPGID = 82
+ SYS_SETITIMER = 83
+ SYS_SWAPON = 85
+ SYS_GETITIMER = 86
+ SYS_GETDTABLESIZE = 89
+ SYS_DUP2 = 90
+ SYS_FCNTL = 92
+ SYS_SELECT = 93
+ SYS_FSYNC = 95
+ SYS_SETPRIORITY = 96
+ SYS_SOCKET = 97
+ SYS_CONNECT = 98
+ SYS_GETPRIORITY = 100
+ SYS_BIND = 104
+ SYS_SETSOCKOPT = 105
+ SYS_LISTEN = 106
+ SYS_SIGSUSPEND = 111
+ SYS_GETTIMEOFDAY = 116
+ SYS_GETRUSAGE = 117
+ SYS_GETSOCKOPT = 118
+ SYS_READV = 120
+ SYS_WRITEV = 121
+ SYS_SETTIMEOFDAY = 122
+ SYS_FCHOWN = 123
+ SYS_FCHMOD = 124
+ SYS_SETREUID = 126
+ SYS_SETREGID = 127
+ SYS_RENAME = 128
+ SYS_FLOCK = 131
+ SYS_MKFIFO = 132
+ SYS_SENDTO = 133
+ SYS_SHUTDOWN = 134
+ SYS_SOCKETPAIR = 135
+ SYS_MKDIR = 136
+ SYS_RMDIR = 137
+ SYS_UTIMES = 138
+ SYS_FUTIMES = 139
+ SYS_ADJTIME = 140
+ SYS_GETHOSTUUID = 142
+ SYS_SETSID = 147
+ SYS_GETPGID = 151
+ SYS_SETPRIVEXEC = 152
+ SYS_PREAD = 153
+ SYS_PWRITE = 154
+ SYS_NFSSVC = 155
+ SYS_STATFS = 157
+ SYS_FSTATFS = 158
+ SYS_UNMOUNT = 159
+ SYS_GETFH = 161
+ SYS_QUOTACTL = 165
+ SYS_MOUNT = 167
+ SYS_CSOPS = 169
+ SYS_CSOPS_AUDITTOKEN = 170
+ SYS_WAITID = 173
+ SYS_KDEBUG_TRACE64 = 179
+ SYS_KDEBUG_TRACE = 180
+ SYS_SETGID = 181
+ SYS_SETEGID = 182
+ SYS_SETEUID = 183
+ SYS_SIGRETURN = 184
+ SYS_CHUD = 185
+ SYS_FDATASYNC = 187
+ SYS_STAT = 188
+ SYS_FSTAT = 189
+ SYS_LSTAT = 190
+ SYS_PATHCONF = 191
+ SYS_FPATHCONF = 192
+ SYS_GETRLIMIT = 194
+ SYS_SETRLIMIT = 195
+ SYS_GETDIRENTRIES = 196
+ SYS_MMAP = 197
+ SYS_LSEEK = 199
+ SYS_TRUNCATE = 200
+ SYS_FTRUNCATE = 201
+ SYS_SYSCTL = 202
+ SYS_MLOCK = 203
+ SYS_MUNLOCK = 204
+ SYS_UNDELETE = 205
+ SYS_OPEN_DPROTECTED_NP = 216
+ SYS_GETATTRLIST = 220
+ SYS_SETATTRLIST = 221
+ SYS_GETDIRENTRIESATTR = 222
+ SYS_EXCHANGEDATA = 223
+ SYS_SEARCHFS = 225
+ SYS_DELETE = 226
+ SYS_COPYFILE = 227
+ SYS_FGETATTRLIST = 228
+ SYS_FSETATTRLIST = 229
+ SYS_POLL = 230
+ SYS_WATCHEVENT = 231
+ SYS_WAITEVENT = 232
+ SYS_MODWATCH = 233
+ SYS_GETXATTR = 234
+ SYS_FGETXATTR = 235
+ SYS_SETXATTR = 236
+ SYS_FSETXATTR = 237
+ SYS_REMOVEXATTR = 238
+ SYS_FREMOVEXATTR = 239
+ SYS_LISTXATTR = 240
+ SYS_FLISTXATTR = 241
+ SYS_FSCTL = 242
+ SYS_INITGROUPS = 243
+ SYS_POSIX_SPAWN = 244
+ SYS_FFSCTL = 245
+ SYS_NFSCLNT = 247
+ SYS_FHOPEN = 248
+ SYS_MINHERIT = 250
+ SYS_SEMSYS = 251
+ SYS_MSGSYS = 252
+ SYS_SHMSYS = 253
+ SYS_SEMCTL = 254
+ SYS_SEMGET = 255
+ SYS_SEMOP = 256
+ SYS_MSGCTL = 258
+ SYS_MSGGET = 259
+ SYS_MSGSND = 260
+ SYS_MSGRCV = 261
+ SYS_SHMAT = 262
+ SYS_SHMCTL = 263
+ SYS_SHMDT = 264
+ SYS_SHMGET = 265
+ SYS_SHM_OPEN = 266
+ SYS_SHM_UNLINK = 267
+ SYS_SEM_OPEN = 268
+ SYS_SEM_CLOSE = 269
+ SYS_SEM_UNLINK = 270
+ SYS_SEM_WAIT = 271
+ SYS_SEM_TRYWAIT = 272
+ SYS_SEM_POST = 273
+ SYS_SYSCTLBYNAME = 274
+ SYS_OPEN_EXTENDED = 277
+ SYS_UMASK_EXTENDED = 278
+ SYS_STAT_EXTENDED = 279
+ SYS_LSTAT_EXTENDED = 280
+ SYS_FSTAT_EXTENDED = 281
+ SYS_CHMOD_EXTENDED = 282
+ SYS_FCHMOD_EXTENDED = 283
+ SYS_ACCESS_EXTENDED = 284
+ SYS_SETTID = 285
+ SYS_GETTID = 286
+ SYS_SETSGROUPS = 287
+ SYS_GETSGROUPS = 288
+ SYS_SETWGROUPS = 289
+ SYS_GETWGROUPS = 290
+ SYS_MKFIFO_EXTENDED = 291
+ SYS_MKDIR_EXTENDED = 292
+ SYS_IDENTITYSVC = 293
+ SYS_SHARED_REGION_CHECK_NP = 294
+ SYS_VM_PRESSURE_MONITOR = 296
+ SYS_PSYNCH_RW_LONGRDLOCK = 297
+ SYS_PSYNCH_RW_YIELDWRLOCK = 298
+ SYS_PSYNCH_RW_DOWNGRADE = 299
+ SYS_PSYNCH_RW_UPGRADE = 300
+ SYS_PSYNCH_MUTEXWAIT = 301
+ SYS_PSYNCH_MUTEXDROP = 302
+ SYS_PSYNCH_CVBROAD = 303
+ SYS_PSYNCH_CVSIGNAL = 304
+ SYS_PSYNCH_CVWAIT = 305
+ SYS_PSYNCH_RW_RDLOCK = 306
+ SYS_PSYNCH_RW_WRLOCK = 307
+ SYS_PSYNCH_RW_UNLOCK = 308
+ SYS_PSYNCH_RW_UNLOCK2 = 309
+ SYS_GETSID = 310
+ SYS_SETTID_WITH_PID = 311
+ SYS_PSYNCH_CVCLRPREPOST = 312
+ SYS_AIO_FSYNC = 313
+ SYS_AIO_RETURN = 314
+ SYS_AIO_SUSPEND = 315
+ SYS_AIO_CANCEL = 316
+ SYS_AIO_ERROR = 317
+ SYS_AIO_READ = 318
+ SYS_AIO_WRITE = 319
+ SYS_LIO_LISTIO = 320
+ SYS_IOPOLICYSYS = 322
+ SYS_PROCESS_POLICY = 323
+ SYS_MLOCKALL = 324
+ SYS_MUNLOCKALL = 325
+ SYS_ISSETUGID = 327
+ SYS___PTHREAD_KILL = 328
+ SYS___PTHREAD_SIGMASK = 329
+ SYS___SIGWAIT = 330
+ SYS___DISABLE_THREADSIGNAL = 331
+ SYS___PTHREAD_MARKCANCEL = 332
+ SYS___PTHREAD_CANCELED = 333
+ SYS___SEMWAIT_SIGNAL = 334
+ SYS_PROC_INFO = 336
+ SYS_SENDFILE = 337
+ SYS_STAT64 = 338
+ SYS_FSTAT64 = 339
+ SYS_LSTAT64 = 340
+ SYS_STAT64_EXTENDED = 341
+ SYS_LSTAT64_EXTENDED = 342
+ SYS_FSTAT64_EXTENDED = 343
+ SYS_GETDIRENTRIES64 = 344
+ SYS_STATFS64 = 345
+ SYS_FSTATFS64 = 346
+ SYS_GETFSSTAT64 = 347
+ SYS___PTHREAD_CHDIR = 348
+ SYS___PTHREAD_FCHDIR = 349
+ SYS_AUDIT = 350
+ SYS_AUDITON = 351
+ SYS_GETAUID = 353
+ SYS_SETAUID = 354
+ SYS_GETAUDIT_ADDR = 357
+ SYS_SETAUDIT_ADDR = 358
+ SYS_AUDITCTL = 359
+ SYS_BSDTHREAD_CREATE = 360
+ SYS_BSDTHREAD_TERMINATE = 361
+ SYS_KQUEUE = 362
+ SYS_KEVENT = 363
+ SYS_LCHOWN = 364
+ SYS_STACK_SNAPSHOT = 365
+ SYS_BSDTHREAD_REGISTER = 366
+ SYS_WORKQ_OPEN = 367
+ SYS_WORKQ_KERNRETURN = 368
+ SYS_KEVENT64 = 369
+ SYS___OLD_SEMWAIT_SIGNAL = 370
+ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371
+ SYS_THREAD_SELFID = 372
+ SYS_LEDGER = 373
+ SYS___MAC_EXECVE = 380
+ SYS___MAC_SYSCALL = 381
+ SYS___MAC_GET_FILE = 382
+ SYS___MAC_SET_FILE = 383
+ SYS___MAC_GET_LINK = 384
+ SYS___MAC_SET_LINK = 385
+ SYS___MAC_GET_PROC = 386
+ SYS___MAC_SET_PROC = 387
+ SYS___MAC_GET_FD = 388
+ SYS___MAC_SET_FD = 389
+ SYS___MAC_GET_PID = 390
+ SYS___MAC_GET_LCID = 391
+ SYS___MAC_GET_LCTX = 392
+ SYS___MAC_SET_LCTX = 393
+ SYS_SETLCID = 394
+ SYS_GETLCID = 395
+ SYS_READ_NOCANCEL = 396
+ SYS_WRITE_NOCANCEL = 397
+ SYS_OPEN_NOCANCEL = 398
+ SYS_CLOSE_NOCANCEL = 399
+ SYS_WAIT4_NOCANCEL = 400
+ SYS_RECVMSG_NOCANCEL = 401
+ SYS_SENDMSG_NOCANCEL = 402
+ SYS_RECVFROM_NOCANCEL = 403
+ SYS_ACCEPT_NOCANCEL = 404
+ SYS_MSYNC_NOCANCEL = 405
+ SYS_FCNTL_NOCANCEL = 406
+ SYS_SELECT_NOCANCEL = 407
+ SYS_FSYNC_NOCANCEL = 408
+ SYS_CONNECT_NOCANCEL = 409
+ SYS_SIGSUSPEND_NOCANCEL = 410
+ SYS_READV_NOCANCEL = 411
+ SYS_WRITEV_NOCANCEL = 412
+ SYS_SENDTO_NOCANCEL = 413
+ SYS_PREAD_NOCANCEL = 414
+ SYS_PWRITE_NOCANCEL = 415
+ SYS_WAITID_NOCANCEL = 416
+ SYS_POLL_NOCANCEL = 417
+ SYS_MSGSND_NOCANCEL = 418
+ SYS_MSGRCV_NOCANCEL = 419
+ SYS_SEM_WAIT_NOCANCEL = 420
+ SYS_AIO_SUSPEND_NOCANCEL = 421
+ SYS___SIGWAIT_NOCANCEL = 422
+ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423
+ SYS___MAC_MOUNT = 424
+ SYS___MAC_GET_MOUNT = 425
+ SYS___MAC_GETFSSTAT = 426
+ SYS_FSGETPATH = 427
+ SYS_AUDIT_SESSION_SELF = 428
+ SYS_AUDIT_SESSION_JOIN = 429
+ SYS_FILEPORT_MAKEPORT = 430
+ SYS_FILEPORT_MAKEFD = 431
+ SYS_AUDIT_SESSION_PORT = 432
+ SYS_PID_SUSPEND = 433
+ SYS_PID_RESUME = 434
+ SYS_PID_HIBERNATE = 435
+ SYS_PID_SHUTDOWN_SOCKETS = 436
+ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438
+ SYS_KAS_INFO = 439
+ SYS_MEMORYSTATUS_CONTROL = 440
+ SYS_GUARDED_OPEN_NP = 441
+ SYS_GUARDED_CLOSE_NP = 442
+ SYS_GUARDED_KQUEUE_NP = 443
+ SYS_CHANGE_FDGUARD_NP = 444
+ SYS_PROC_RLIMIT_CONTROL = 446
+ SYS_CONNECTX = 447
+ SYS_DISCONNECTX = 448
+ SYS_PEELOFF = 449
+ SYS_SOCKET_DELEGATE = 450
+ SYS_TELEMETRY = 451
+ SYS_PROC_UUID_POLICY = 452
+ SYS_MEMORYSTATUS_GET_LEVEL = 453
+ SYS_SYSTEM_OVERRIDE = 454
+ SYS_VFS_PURGE = 455
+ SYS_SFI_CTL = 456
+ SYS_SFI_PIDCTL = 457
+ SYS_COALITION = 458
+ SYS_COALITION_INFO = 459
+ SYS_NECP_MATCH_POLICY = 460
+ SYS_GETATTRLISTBULK = 461
+ SYS_OPENAT = 463
+ SYS_OPENAT_NOCANCEL = 464
+ SYS_RENAMEAT = 465
+ SYS_FACCESSAT = 466
+ SYS_FCHMODAT = 467
+ SYS_FCHOWNAT = 468
+ SYS_FSTATAT = 469
+ SYS_FSTATAT64 = 470
+ SYS_LINKAT = 471
+ SYS_UNLINKAT = 472
+ SYS_READLINKAT = 473
+ SYS_SYMLINKAT = 474
+ SYS_MKDIRAT = 475
+ SYS_GETATTRLISTAT = 476
+ SYS_PROC_TRACE_LOG = 477
+ SYS_BSDTHREAD_CTL = 478
+ SYS_OPENBYID_NP = 479
+ SYS_RECVMSG_X = 480
+ SYS_SENDMSG_X = 481
+ SYS_THREAD_SELFUSAGE = 482
+ SYS_CSRCTL = 483
+ SYS_GUARDED_OPEN_DPROTECTED_NP = 484
+ SYS_GUARDED_WRITE_NP = 485
+ SYS_GUARDED_PWRITE_NP = 486
+ SYS_GUARDED_WRITEV_NP = 487
+ SYS_RENAME_EXT = 488
+ SYS_MREMAP_ENCRYPTED = 489
+ SYS_MAXSYSCALL = 490
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
new file mode 100644
index 000000000..b8c9aea85
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go
@@ -0,0 +1,358 @@
+// 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/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
new file mode 100644
index 000000000..26677ebbf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go
@@ -0,0 +1,398 @@
+// 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/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
new file mode 100644
index 000000000..d6038fa9b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go
@@ -0,0 +1,304 @@
+// 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/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
new file mode 100644
index 000000000..262a84536
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go
@@ -0,0 +1,351 @@
+// 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/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
new file mode 100644
index 000000000..57a60ea12
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go
@@ -0,0 +1,351 @@
+// 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/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
new file mode 100644
index 000000000..206b9f612
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go
@@ -0,0 +1,351 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
new file mode 100644
index 000000000..ba952c675
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go
@@ -0,0 +1,355 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
new file mode 100644
index 000000000..ddac31f58
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go
@@ -0,0 +1,321 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
new file mode 100644
index 000000000..45ced17fc
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go
@@ -0,0 +1,356 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
new file mode 100644
index 000000000..2e9514f28
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go
@@ -0,0 +1,272 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
new file mode 100644
index 000000000..5ffe1c719
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go
@@ -0,0 +1,327 @@
+// mksysnum_linux.pl /usr/include/asm/unistd.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build mips64,linux
+
+package unix
+
+const (
+ SYS_READ = 5000
+ SYS_WRITE = 5001
+ SYS_OPEN = 5002
+ SYS_CLOSE = 5003
+ SYS_STAT = 5004
+ SYS_FSTAT = 5005
+ SYS_LSTAT = 5006
+ SYS_POLL = 5007
+ SYS_LSEEK = 5008
+ SYS_MMAP = 5009
+ SYS_MPROTECT = 5010
+ SYS_MUNMAP = 5011
+ SYS_BRK = 5012
+ SYS_RT_SIGACTION = 5013
+ SYS_RT_SIGPROCMASK = 5014
+ SYS_IOCTL = 5015
+ SYS_PREAD64 = 5016
+ SYS_PWRITE64 = 5017
+ SYS_READV = 5018
+ SYS_WRITEV = 5019
+ SYS_ACCESS = 5020
+ SYS_PIPE = 5021
+ SYS__NEWSELECT = 5022
+ SYS_SCHED_YIELD = 5023
+ SYS_MREMAP = 5024
+ SYS_MSYNC = 5025
+ SYS_MINCORE = 5026
+ SYS_MADVISE = 5027
+ SYS_SHMGET = 5028
+ SYS_SHMAT = 5029
+ SYS_SHMCTL = 5030
+ SYS_DUP = 5031
+ SYS_DUP2 = 5032
+ SYS_PAUSE = 5033
+ SYS_NANOSLEEP = 5034
+ SYS_GETITIMER = 5035
+ SYS_SETITIMER = 5036
+ SYS_ALARM = 5037
+ SYS_GETPID = 5038
+ SYS_SENDFILE = 5039
+ SYS_SOCKET = 5040
+ SYS_CONNECT = 5041
+ SYS_ACCEPT = 5042
+ SYS_SENDTO = 5043
+ SYS_RECVFROM = 5044
+ SYS_SENDMSG = 5045
+ SYS_RECVMSG = 5046
+ SYS_SHUTDOWN = 5047
+ SYS_BIND = 5048
+ SYS_LISTEN = 5049
+ SYS_GETSOCKNAME = 5050
+ SYS_GETPEERNAME = 5051
+ SYS_SOCKETPAIR = 5052
+ SYS_SETSOCKOPT = 5053
+ SYS_GETSOCKOPT = 5054
+ SYS_CLONE = 5055
+ SYS_FORK = 5056
+ SYS_EXECVE = 5057
+ SYS_EXIT = 5058
+ SYS_WAIT4 = 5059
+ SYS_KILL = 5060
+ SYS_UNAME = 5061
+ SYS_SEMGET = 5062
+ SYS_SEMOP = 5063
+ SYS_SEMCTL = 5064
+ SYS_SHMDT = 5065
+ SYS_MSGGET = 5066
+ SYS_MSGSND = 5067
+ SYS_MSGRCV = 5068
+ SYS_MSGCTL = 5069
+ SYS_FCNTL = 5070
+ SYS_FLOCK = 5071
+ SYS_FSYNC = 5072
+ SYS_FDATASYNC = 5073
+ SYS_TRUNCATE = 5074
+ SYS_FTRUNCATE = 5075
+ SYS_GETDENTS = 5076
+ SYS_GETCWD = 5077
+ SYS_CHDIR = 5078
+ SYS_FCHDIR = 5079
+ SYS_RENAME = 5080
+ SYS_MKDIR = 5081
+ SYS_RMDIR = 5082
+ SYS_CREAT = 5083
+ SYS_LINK = 5084
+ SYS_UNLINK = 5085
+ SYS_SYMLINK = 5086
+ SYS_READLINK = 5087
+ SYS_CHMOD = 5088
+ SYS_FCHMOD = 5089
+ SYS_CHOWN = 5090
+ SYS_FCHOWN = 5091
+ SYS_LCHOWN = 5092
+ SYS_UMASK = 5093
+ SYS_GETTIMEOFDAY = 5094
+ SYS_GETRLIMIT = 5095
+ SYS_GETRUSAGE = 5096
+ SYS_SYSINFO = 5097
+ SYS_TIMES = 5098
+ SYS_PTRACE = 5099
+ SYS_GETUID = 5100
+ SYS_SYSLOG = 5101
+ SYS_GETGID = 5102
+ SYS_SETUID = 5103
+ SYS_SETGID = 5104
+ SYS_GETEUID = 5105
+ SYS_GETEGID = 5106
+ SYS_SETPGID = 5107
+ SYS_GETPPID = 5108
+ SYS_GETPGRP = 5109
+ SYS_SETSID = 5110
+ SYS_SETREUID = 5111
+ SYS_SETREGID = 5112
+ SYS_GETGROUPS = 5113
+ SYS_SETGROUPS = 5114
+ SYS_SETRESUID = 5115
+ SYS_GETRESUID = 5116
+ SYS_SETRESGID = 5117
+ SYS_GETRESGID = 5118
+ SYS_GETPGID = 5119
+ SYS_SETFSUID = 5120
+ SYS_SETFSGID = 5121
+ SYS_GETSID = 5122
+ SYS_CAPGET = 5123
+ SYS_CAPSET = 5124
+ SYS_RT_SIGPENDING = 5125
+ SYS_RT_SIGTIMEDWAIT = 5126
+ SYS_RT_SIGQUEUEINFO = 5127
+ SYS_RT_SIGSUSPEND = 5128
+ SYS_SIGALTSTACK = 5129
+ SYS_UTIME = 5130
+ SYS_MKNOD = 5131
+ SYS_PERSONALITY = 5132
+ SYS_USTAT = 5133
+ SYS_STATFS = 5134
+ SYS_FSTATFS = 5135
+ SYS_SYSFS = 5136
+ SYS_GETPRIORITY = 5137
+ SYS_SETPRIORITY = 5138
+ SYS_SCHED_SETPARAM = 5139
+ SYS_SCHED_GETPARAM = 5140
+ SYS_SCHED_SETSCHEDULER = 5141
+ SYS_SCHED_GETSCHEDULER = 5142
+ SYS_SCHED_GET_PRIORITY_MAX = 5143
+ SYS_SCHED_GET_PRIORITY_MIN = 5144
+ SYS_SCHED_RR_GET_INTERVAL = 5145
+ SYS_MLOCK = 5146
+ SYS_MUNLOCK = 5147
+ SYS_MLOCKALL = 5148
+ SYS_MUNLOCKALL = 5149
+ SYS_VHANGUP = 5150
+ SYS_PIVOT_ROOT = 5151
+ SYS__SYSCTL = 5152
+ SYS_PRCTL = 5153
+ SYS_ADJTIMEX = 5154
+ SYS_SETRLIMIT = 5155
+ SYS_CHROOT = 5156
+ SYS_SYNC = 5157
+ SYS_ACCT = 5158
+ SYS_SETTIMEOFDAY = 5159
+ SYS_MOUNT = 5160
+ SYS_UMOUNT2 = 5161
+ SYS_SWAPON = 5162
+ SYS_SWAPOFF = 5163
+ SYS_REBOOT = 5164
+ SYS_SETHOSTNAME = 5165
+ SYS_SETDOMAINNAME = 5166
+ SYS_CREATE_MODULE = 5167
+ SYS_INIT_MODULE = 5168
+ SYS_DELETE_MODULE = 5169
+ SYS_GET_KERNEL_SYMS = 5170
+ SYS_QUERY_MODULE = 5171
+ SYS_QUOTACTL = 5172
+ SYS_NFSSERVCTL = 5173
+ SYS_GETPMSG = 5174
+ SYS_PUTPMSG = 5175
+ SYS_AFS_SYSCALL = 5176
+ SYS_RESERVED177 = 5177
+ SYS_GETTID = 5178
+ SYS_READAHEAD = 5179
+ SYS_SETXATTR = 5180
+ SYS_LSETXATTR = 5181
+ SYS_FSETXATTR = 5182
+ SYS_GETXATTR = 5183
+ SYS_LGETXATTR = 5184
+ SYS_FGETXATTR = 5185
+ SYS_LISTXATTR = 5186
+ SYS_LLISTXATTR = 5187
+ SYS_FLISTXATTR = 5188
+ SYS_REMOVEXATTR = 5189
+ SYS_LREMOVEXATTR = 5190
+ SYS_FREMOVEXATTR = 5191
+ SYS_TKILL = 5192
+ SYS_RESERVED193 = 5193
+ SYS_FUTEX = 5194
+ SYS_SCHED_SETAFFINITY = 5195
+ SYS_SCHED_GETAFFINITY = 5196
+ SYS_CACHEFLUSH = 5197
+ SYS_CACHECTL = 5198
+ SYS_SYSMIPS = 5199
+ SYS_IO_SETUP = 5200
+ SYS_IO_DESTROY = 5201
+ SYS_IO_GETEVENTS = 5202
+ SYS_IO_SUBMIT = 5203
+ SYS_IO_CANCEL = 5204
+ SYS_EXIT_GROUP = 5205
+ SYS_LOOKUP_DCOOKIE = 5206
+ SYS_EPOLL_CREATE = 5207
+ SYS_EPOLL_CTL = 5208
+ SYS_EPOLL_WAIT = 5209
+ SYS_REMAP_FILE_PAGES = 5210
+ SYS_RT_SIGRETURN = 5211
+ SYS_SET_TID_ADDRESS = 5212
+ SYS_RESTART_SYSCALL = 5213
+ SYS_SEMTIMEDOP = 5214
+ SYS_FADVISE64 = 5215
+ SYS_TIMER_CREATE = 5216
+ SYS_TIMER_SETTIME = 5217
+ SYS_TIMER_GETTIME = 5218
+ SYS_TIMER_GETOVERRUN = 5219
+ SYS_TIMER_DELETE = 5220
+ SYS_CLOCK_SETTIME = 5221
+ SYS_CLOCK_GETTIME = 5222
+ SYS_CLOCK_GETRES = 5223
+ SYS_CLOCK_NANOSLEEP = 5224
+ SYS_TGKILL = 5225
+ SYS_UTIMES = 5226
+ SYS_MBIND = 5227
+ SYS_GET_MEMPOLICY = 5228
+ SYS_SET_MEMPOLICY = 5229
+ SYS_MQ_OPEN = 5230
+ SYS_MQ_UNLINK = 5231
+ SYS_MQ_TIMEDSEND = 5232
+ SYS_MQ_TIMEDRECEIVE = 5233
+ SYS_MQ_NOTIFY = 5234
+ SYS_MQ_GETSETATTR = 5235
+ SYS_VSERVER = 5236
+ SYS_WAITID = 5237
+ SYS_ADD_KEY = 5239
+ SYS_REQUEST_KEY = 5240
+ SYS_KEYCTL = 5241
+ SYS_SET_THREAD_AREA = 5242
+ SYS_INOTIFY_INIT = 5243
+ SYS_INOTIFY_ADD_WATCH = 5244
+ SYS_INOTIFY_RM_WATCH = 5245
+ SYS_MIGRATE_PAGES = 5246
+ SYS_OPENAT = 5247
+ SYS_MKDIRAT = 5248
+ SYS_MKNODAT = 5249
+ SYS_FCHOWNAT = 5250
+ SYS_FUTIMESAT = 5251
+ SYS_NEWFSTATAT = 5252
+ SYS_UNLINKAT = 5253
+ SYS_RENAMEAT = 5254
+ SYS_LINKAT = 5255
+ SYS_SYMLINKAT = 5256
+ SYS_READLINKAT = 5257
+ SYS_FCHMODAT = 5258
+ SYS_FACCESSAT = 5259
+ SYS_PSELECT6 = 5260
+ SYS_PPOLL = 5261
+ SYS_UNSHARE = 5262
+ SYS_SPLICE = 5263
+ SYS_SYNC_FILE_RANGE = 5264
+ SYS_TEE = 5265
+ SYS_VMSPLICE = 5266
+ SYS_MOVE_PAGES = 5267
+ SYS_SET_ROBUST_LIST = 5268
+ SYS_GET_ROBUST_LIST = 5269
+ SYS_KEXEC_LOAD = 5270
+ SYS_GETCPU = 5271
+ SYS_EPOLL_PWAIT = 5272
+ SYS_IOPRIO_SET = 5273
+ SYS_IOPRIO_GET = 5274
+ SYS_UTIMENSAT = 5275
+ SYS_SIGNALFD = 5276
+ SYS_TIMERFD = 5277
+ SYS_EVENTFD = 5278
+ SYS_FALLOCATE = 5279
+ SYS_TIMERFD_CREATE = 5280
+ SYS_TIMERFD_GETTIME = 5281
+ SYS_TIMERFD_SETTIME = 5282
+ SYS_SIGNALFD4 = 5283
+ SYS_EVENTFD2 = 5284
+ SYS_EPOLL_CREATE1 = 5285
+ SYS_DUP3 = 5286
+ SYS_PIPE2 = 5287
+ SYS_INOTIFY_INIT1 = 5288
+ SYS_PREADV = 5289
+ SYS_PWRITEV = 5290
+ SYS_RT_TGSIGQUEUEINFO = 5291
+ SYS_PERF_EVENT_OPEN = 5292
+ SYS_ACCEPT4 = 5293
+ SYS_RECVMMSG = 5294
+ SYS_FANOTIFY_INIT = 5295
+ SYS_FANOTIFY_MARK = 5296
+ SYS_PRLIMIT64 = 5297
+ SYS_NAME_TO_HANDLE_AT = 5298
+ SYS_OPEN_BY_HANDLE_AT = 5299
+ SYS_CLOCK_ADJTIME = 5300
+ SYS_SYNCFS = 5301
+ SYS_SENDMMSG = 5302
+ SYS_SETNS = 5303
+ SYS_PROCESS_VM_READV = 5304
+ SYS_PROCESS_VM_WRITEV = 5305
+ SYS_KCMP = 5306
+ SYS_FINIT_MODULE = 5307
+ SYS_GETDENTS64 = 5308
+ SYS_SCHED_SETATTR = 5309
+ SYS_SCHED_GETATTR = 5310
+ SYS_RENAMEAT2 = 5311
+ SYS_SECCOMP = 5312
+ SYS_GETRANDOM = 5313
+ SYS_MEMFD_CREATE = 5314
+ SYS_BPF = 5315
+ SYS_EXECVEAT = 5316
+ SYS_USERFAULTFD = 5317
+ SYS_MEMBARRIER = 5318
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
new file mode 100644
index 000000000..d192b940c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go
@@ -0,0 +1,327 @@
+// mksysnum_linux.pl /usr/include/asm/unistd.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build mips64le,linux
+
+package unix
+
+const (
+ SYS_READ = 5000
+ SYS_WRITE = 5001
+ SYS_OPEN = 5002
+ SYS_CLOSE = 5003
+ SYS_STAT = 5004
+ SYS_FSTAT = 5005
+ SYS_LSTAT = 5006
+ SYS_POLL = 5007
+ SYS_LSEEK = 5008
+ SYS_MMAP = 5009
+ SYS_MPROTECT = 5010
+ SYS_MUNMAP = 5011
+ SYS_BRK = 5012
+ SYS_RT_SIGACTION = 5013
+ SYS_RT_SIGPROCMASK = 5014
+ SYS_IOCTL = 5015
+ SYS_PREAD64 = 5016
+ SYS_PWRITE64 = 5017
+ SYS_READV = 5018
+ SYS_WRITEV = 5019
+ SYS_ACCESS = 5020
+ SYS_PIPE = 5021
+ SYS__NEWSELECT = 5022
+ SYS_SCHED_YIELD = 5023
+ SYS_MREMAP = 5024
+ SYS_MSYNC = 5025
+ SYS_MINCORE = 5026
+ SYS_MADVISE = 5027
+ SYS_SHMGET = 5028
+ SYS_SHMAT = 5029
+ SYS_SHMCTL = 5030
+ SYS_DUP = 5031
+ SYS_DUP2 = 5032
+ SYS_PAUSE = 5033
+ SYS_NANOSLEEP = 5034
+ SYS_GETITIMER = 5035
+ SYS_SETITIMER = 5036
+ SYS_ALARM = 5037
+ SYS_GETPID = 5038
+ SYS_SENDFILE = 5039
+ SYS_SOCKET = 5040
+ SYS_CONNECT = 5041
+ SYS_ACCEPT = 5042
+ SYS_SENDTO = 5043
+ SYS_RECVFROM = 5044
+ SYS_SENDMSG = 5045
+ SYS_RECVMSG = 5046
+ SYS_SHUTDOWN = 5047
+ SYS_BIND = 5048
+ SYS_LISTEN = 5049
+ SYS_GETSOCKNAME = 5050
+ SYS_GETPEERNAME = 5051
+ SYS_SOCKETPAIR = 5052
+ SYS_SETSOCKOPT = 5053
+ SYS_GETSOCKOPT = 5054
+ SYS_CLONE = 5055
+ SYS_FORK = 5056
+ SYS_EXECVE = 5057
+ SYS_EXIT = 5058
+ SYS_WAIT4 = 5059
+ SYS_KILL = 5060
+ SYS_UNAME = 5061
+ SYS_SEMGET = 5062
+ SYS_SEMOP = 5063
+ SYS_SEMCTL = 5064
+ SYS_SHMDT = 5065
+ SYS_MSGGET = 5066
+ SYS_MSGSND = 5067
+ SYS_MSGRCV = 5068
+ SYS_MSGCTL = 5069
+ SYS_FCNTL = 5070
+ SYS_FLOCK = 5071
+ SYS_FSYNC = 5072
+ SYS_FDATASYNC = 5073
+ SYS_TRUNCATE = 5074
+ SYS_FTRUNCATE = 5075
+ SYS_GETDENTS = 5076
+ SYS_GETCWD = 5077
+ SYS_CHDIR = 5078
+ SYS_FCHDIR = 5079
+ SYS_RENAME = 5080
+ SYS_MKDIR = 5081
+ SYS_RMDIR = 5082
+ SYS_CREAT = 5083
+ SYS_LINK = 5084
+ SYS_UNLINK = 5085
+ SYS_SYMLINK = 5086
+ SYS_READLINK = 5087
+ SYS_CHMOD = 5088
+ SYS_FCHMOD = 5089
+ SYS_CHOWN = 5090
+ SYS_FCHOWN = 5091
+ SYS_LCHOWN = 5092
+ SYS_UMASK = 5093
+ SYS_GETTIMEOFDAY = 5094
+ SYS_GETRLIMIT = 5095
+ SYS_GETRUSAGE = 5096
+ SYS_SYSINFO = 5097
+ SYS_TIMES = 5098
+ SYS_PTRACE = 5099
+ SYS_GETUID = 5100
+ SYS_SYSLOG = 5101
+ SYS_GETGID = 5102
+ SYS_SETUID = 5103
+ SYS_SETGID = 5104
+ SYS_GETEUID = 5105
+ SYS_GETEGID = 5106
+ SYS_SETPGID = 5107
+ SYS_GETPPID = 5108
+ SYS_GETPGRP = 5109
+ SYS_SETSID = 5110
+ SYS_SETREUID = 5111
+ SYS_SETREGID = 5112
+ SYS_GETGROUPS = 5113
+ SYS_SETGROUPS = 5114
+ SYS_SETRESUID = 5115
+ SYS_GETRESUID = 5116
+ SYS_SETRESGID = 5117
+ SYS_GETRESGID = 5118
+ SYS_GETPGID = 5119
+ SYS_SETFSUID = 5120
+ SYS_SETFSGID = 5121
+ SYS_GETSID = 5122
+ SYS_CAPGET = 5123
+ SYS_CAPSET = 5124
+ SYS_RT_SIGPENDING = 5125
+ SYS_RT_SIGTIMEDWAIT = 5126
+ SYS_RT_SIGQUEUEINFO = 5127
+ SYS_RT_SIGSUSPEND = 5128
+ SYS_SIGALTSTACK = 5129
+ SYS_UTIME = 5130
+ SYS_MKNOD = 5131
+ SYS_PERSONALITY = 5132
+ SYS_USTAT = 5133
+ SYS_STATFS = 5134
+ SYS_FSTATFS = 5135
+ SYS_SYSFS = 5136
+ SYS_GETPRIORITY = 5137
+ SYS_SETPRIORITY = 5138
+ SYS_SCHED_SETPARAM = 5139
+ SYS_SCHED_GETPARAM = 5140
+ SYS_SCHED_SETSCHEDULER = 5141
+ SYS_SCHED_GETSCHEDULER = 5142
+ SYS_SCHED_GET_PRIORITY_MAX = 5143
+ SYS_SCHED_GET_PRIORITY_MIN = 5144
+ SYS_SCHED_RR_GET_INTERVAL = 5145
+ SYS_MLOCK = 5146
+ SYS_MUNLOCK = 5147
+ SYS_MLOCKALL = 5148
+ SYS_MUNLOCKALL = 5149
+ SYS_VHANGUP = 5150
+ SYS_PIVOT_ROOT = 5151
+ SYS__SYSCTL = 5152
+ SYS_PRCTL = 5153
+ SYS_ADJTIMEX = 5154
+ SYS_SETRLIMIT = 5155
+ SYS_CHROOT = 5156
+ SYS_SYNC = 5157
+ SYS_ACCT = 5158
+ SYS_SETTIMEOFDAY = 5159
+ SYS_MOUNT = 5160
+ SYS_UMOUNT2 = 5161
+ SYS_SWAPON = 5162
+ SYS_SWAPOFF = 5163
+ SYS_REBOOT = 5164
+ SYS_SETHOSTNAME = 5165
+ SYS_SETDOMAINNAME = 5166
+ SYS_CREATE_MODULE = 5167
+ SYS_INIT_MODULE = 5168
+ SYS_DELETE_MODULE = 5169
+ SYS_GET_KERNEL_SYMS = 5170
+ SYS_QUERY_MODULE = 5171
+ SYS_QUOTACTL = 5172
+ SYS_NFSSERVCTL = 5173
+ SYS_GETPMSG = 5174
+ SYS_PUTPMSG = 5175
+ SYS_AFS_SYSCALL = 5176
+ SYS_RESERVED177 = 5177
+ SYS_GETTID = 5178
+ SYS_READAHEAD = 5179
+ SYS_SETXATTR = 5180
+ SYS_LSETXATTR = 5181
+ SYS_FSETXATTR = 5182
+ SYS_GETXATTR = 5183
+ SYS_LGETXATTR = 5184
+ SYS_FGETXATTR = 5185
+ SYS_LISTXATTR = 5186
+ SYS_LLISTXATTR = 5187
+ SYS_FLISTXATTR = 5188
+ SYS_REMOVEXATTR = 5189
+ SYS_LREMOVEXATTR = 5190
+ SYS_FREMOVEXATTR = 5191
+ SYS_TKILL = 5192
+ SYS_RESERVED193 = 5193
+ SYS_FUTEX = 5194
+ SYS_SCHED_SETAFFINITY = 5195
+ SYS_SCHED_GETAFFINITY = 5196
+ SYS_CACHEFLUSH = 5197
+ SYS_CACHECTL = 5198
+ SYS_SYSMIPS = 5199
+ SYS_IO_SETUP = 5200
+ SYS_IO_DESTROY = 5201
+ SYS_IO_GETEVENTS = 5202
+ SYS_IO_SUBMIT = 5203
+ SYS_IO_CANCEL = 5204
+ SYS_EXIT_GROUP = 5205
+ SYS_LOOKUP_DCOOKIE = 5206
+ SYS_EPOLL_CREATE = 5207
+ SYS_EPOLL_CTL = 5208
+ SYS_EPOLL_WAIT = 5209
+ SYS_REMAP_FILE_PAGES = 5210
+ SYS_RT_SIGRETURN = 5211
+ SYS_SET_TID_ADDRESS = 5212
+ SYS_RESTART_SYSCALL = 5213
+ SYS_SEMTIMEDOP = 5214
+ SYS_FADVISE64 = 5215
+ SYS_TIMER_CREATE = 5216
+ SYS_TIMER_SETTIME = 5217
+ SYS_TIMER_GETTIME = 5218
+ SYS_TIMER_GETOVERRUN = 5219
+ SYS_TIMER_DELETE = 5220
+ SYS_CLOCK_SETTIME = 5221
+ SYS_CLOCK_GETTIME = 5222
+ SYS_CLOCK_GETRES = 5223
+ SYS_CLOCK_NANOSLEEP = 5224
+ SYS_TGKILL = 5225
+ SYS_UTIMES = 5226
+ SYS_MBIND = 5227
+ SYS_GET_MEMPOLICY = 5228
+ SYS_SET_MEMPOLICY = 5229
+ SYS_MQ_OPEN = 5230
+ SYS_MQ_UNLINK = 5231
+ SYS_MQ_TIMEDSEND = 5232
+ SYS_MQ_TIMEDRECEIVE = 5233
+ SYS_MQ_NOTIFY = 5234
+ SYS_MQ_GETSETATTR = 5235
+ SYS_VSERVER = 5236
+ SYS_WAITID = 5237
+ SYS_ADD_KEY = 5239
+ SYS_REQUEST_KEY = 5240
+ SYS_KEYCTL = 5241
+ SYS_SET_THREAD_AREA = 5242
+ SYS_INOTIFY_INIT = 5243
+ SYS_INOTIFY_ADD_WATCH = 5244
+ SYS_INOTIFY_RM_WATCH = 5245
+ SYS_MIGRATE_PAGES = 5246
+ SYS_OPENAT = 5247
+ SYS_MKDIRAT = 5248
+ SYS_MKNODAT = 5249
+ SYS_FCHOWNAT = 5250
+ SYS_FUTIMESAT = 5251
+ SYS_NEWFSTATAT = 5252
+ SYS_UNLINKAT = 5253
+ SYS_RENAMEAT = 5254
+ SYS_LINKAT = 5255
+ SYS_SYMLINKAT = 5256
+ SYS_READLINKAT = 5257
+ SYS_FCHMODAT = 5258
+ SYS_FACCESSAT = 5259
+ SYS_PSELECT6 = 5260
+ SYS_PPOLL = 5261
+ SYS_UNSHARE = 5262
+ SYS_SPLICE = 5263
+ SYS_SYNC_FILE_RANGE = 5264
+ SYS_TEE = 5265
+ SYS_VMSPLICE = 5266
+ SYS_MOVE_PAGES = 5267
+ SYS_SET_ROBUST_LIST = 5268
+ SYS_GET_ROBUST_LIST = 5269
+ SYS_KEXEC_LOAD = 5270
+ SYS_GETCPU = 5271
+ SYS_EPOLL_PWAIT = 5272
+ SYS_IOPRIO_SET = 5273
+ SYS_IOPRIO_GET = 5274
+ SYS_UTIMENSAT = 5275
+ SYS_SIGNALFD = 5276
+ SYS_TIMERFD = 5277
+ SYS_EVENTFD = 5278
+ SYS_FALLOCATE = 5279
+ SYS_TIMERFD_CREATE = 5280
+ SYS_TIMERFD_GETTIME = 5281
+ SYS_TIMERFD_SETTIME = 5282
+ SYS_SIGNALFD4 = 5283
+ SYS_EVENTFD2 = 5284
+ SYS_EPOLL_CREATE1 = 5285
+ SYS_DUP3 = 5286
+ SYS_PIPE2 = 5287
+ SYS_INOTIFY_INIT1 = 5288
+ SYS_PREADV = 5289
+ SYS_PWRITEV = 5290
+ SYS_RT_TGSIGQUEUEINFO = 5291
+ SYS_PERF_EVENT_OPEN = 5292
+ SYS_ACCEPT4 = 5293
+ SYS_RECVMMSG = 5294
+ SYS_FANOTIFY_INIT = 5295
+ SYS_FANOTIFY_MARK = 5296
+ SYS_PRLIMIT64 = 5297
+ SYS_NAME_TO_HANDLE_AT = 5298
+ SYS_OPEN_BY_HANDLE_AT = 5299
+ SYS_CLOCK_ADJTIME = 5300
+ SYS_SYNCFS = 5301
+ SYS_SENDMMSG = 5302
+ SYS_SETNS = 5303
+ SYS_PROCESS_VM_READV = 5304
+ SYS_PROCESS_VM_WRITEV = 5305
+ SYS_KCMP = 5306
+ SYS_FINIT_MODULE = 5307
+ SYS_GETDENTS64 = 5308
+ SYS_SCHED_SETATTR = 5309
+ SYS_SCHED_GETATTR = 5310
+ SYS_RENAMEAT2 = 5311
+ SYS_SECCOMP = 5312
+ SYS_GETRANDOM = 5313
+ SYS_MEMFD_CREATE = 5314
+ SYS_BPF = 5315
+ SYS_EXECVEAT = 5316
+ SYS_USERFAULTFD = 5317
+ SYS_MEMBARRIER = 5318
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
new file mode 100644
index 000000000..e1b08f00d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go
@@ -0,0 +1,360 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
new file mode 100644
index 000000000..45e63f51a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go
@@ -0,0 +1,353 @@
+// 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/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
new file mode 100644
index 000000000..42d4f5cda
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go
@@ -0,0 +1,328 @@
+// mksysnum_linux.pl /usr/include/asm/unistd.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build s390x,linux
+
+package unix
+
+const (
+ SYS_EXIT = 1
+ SYS_FORK = 2
+ SYS_READ = 3
+ SYS_WRITE = 4
+ SYS_OPEN = 5
+ SYS_CLOSE = 6
+ SYS_RESTART_SYSCALL = 7
+ SYS_CREAT = 8
+ SYS_LINK = 9
+ SYS_UNLINK = 10
+ SYS_EXECVE = 11
+ SYS_CHDIR = 12
+ SYS_MKNOD = 14
+ SYS_CHMOD = 15
+ SYS_LSEEK = 19
+ SYS_GETPID = 20
+ SYS_MOUNT = 21
+ SYS_UMOUNT = 22
+ SYS_PTRACE = 26
+ SYS_ALARM = 27
+ SYS_PAUSE = 29
+ SYS_UTIME = 30
+ SYS_ACCESS = 33
+ SYS_NICE = 34
+ SYS_SYNC = 36
+ SYS_KILL = 37
+ SYS_RENAME = 38
+ SYS_MKDIR = 39
+ SYS_RMDIR = 40
+ SYS_DUP = 41
+ SYS_PIPE = 42
+ SYS_TIMES = 43
+ SYS_BRK = 45
+ SYS_SIGNAL = 48
+ SYS_ACCT = 51
+ SYS_UMOUNT2 = 52
+ SYS_IOCTL = 54
+ SYS_FCNTL = 55
+ SYS_SETPGID = 57
+ SYS_UMASK = 60
+ SYS_CHROOT = 61
+ SYS_USTAT = 62
+ SYS_DUP2 = 63
+ SYS_GETPPID = 64
+ SYS_GETPGRP = 65
+ SYS_SETSID = 66
+ SYS_SIGACTION = 67
+ SYS_SIGSUSPEND = 72
+ SYS_SIGPENDING = 73
+ SYS_SETHOSTNAME = 74
+ SYS_SETRLIMIT = 75
+ SYS_GETRUSAGE = 77
+ SYS_GETTIMEOFDAY = 78
+ SYS_SETTIMEOFDAY = 79
+ SYS_SYMLINK = 83
+ SYS_READLINK = 85
+ SYS_USELIB = 86
+ SYS_SWAPON = 87
+ SYS_REBOOT = 88
+ SYS_READDIR = 89
+ SYS_MMAP = 90
+ SYS_MUNMAP = 91
+ SYS_TRUNCATE = 92
+ SYS_FTRUNCATE = 93
+ SYS_FCHMOD = 94
+ SYS_GETPRIORITY = 96
+ SYS_SETPRIORITY = 97
+ SYS_STATFS = 99
+ SYS_FSTATFS = 100
+ SYS_SOCKETCALL = 102
+ SYS_SYSLOG = 103
+ SYS_SETITIMER = 104
+ SYS_GETITIMER = 105
+ SYS_STAT = 106
+ SYS_LSTAT = 107
+ SYS_FSTAT = 108
+ SYS_LOOKUP_DCOOKIE = 110
+ SYS_VHANGUP = 111
+ SYS_IDLE = 112
+ SYS_WAIT4 = 114
+ SYS_SWAPOFF = 115
+ SYS_SYSINFO = 116
+ SYS_IPC = 117
+ SYS_FSYNC = 118
+ SYS_SIGRETURN = 119
+ SYS_CLONE = 120
+ SYS_SETDOMAINNAME = 121
+ SYS_UNAME = 122
+ SYS_ADJTIMEX = 124
+ SYS_MPROTECT = 125
+ SYS_SIGPROCMASK = 126
+ SYS_CREATE_MODULE = 127
+ SYS_INIT_MODULE = 128
+ SYS_DELETE_MODULE = 129
+ SYS_GET_KERNEL_SYMS = 130
+ SYS_QUOTACTL = 131
+ SYS_GETPGID = 132
+ SYS_FCHDIR = 133
+ SYS_BDFLUSH = 134
+ SYS_SYSFS = 135
+ SYS_PERSONALITY = 136
+ SYS_AFS_SYSCALL = 137
+ SYS_GETDENTS = 141
+ SYS_FLOCK = 143
+ SYS_MSYNC = 144
+ SYS_READV = 145
+ SYS_WRITEV = 146
+ SYS_GETSID = 147
+ SYS_FDATASYNC = 148
+ SYS__SYSCTL = 149
+ SYS_MLOCK = 150
+ SYS_MUNLOCK = 151
+ SYS_MLOCKALL = 152
+ SYS_MUNLOCKALL = 153
+ SYS_SCHED_SETPARAM = 154
+ SYS_SCHED_GETPARAM = 155
+ SYS_SCHED_SETSCHEDULER = 156
+ SYS_SCHED_GETSCHEDULER = 157
+ SYS_SCHED_YIELD = 158
+ SYS_SCHED_GET_PRIORITY_MAX = 159
+ SYS_SCHED_GET_PRIORITY_MIN = 160
+ SYS_SCHED_RR_GET_INTERVAL = 161
+ SYS_NANOSLEEP = 162
+ SYS_MREMAP = 163
+ SYS_QUERY_MODULE = 167
+ SYS_POLL = 168
+ SYS_NFSSERVCTL = 169
+ SYS_PRCTL = 172
+ SYS_RT_SIGRETURN = 173
+ SYS_RT_SIGACTION = 174
+ SYS_RT_SIGPROCMASK = 175
+ SYS_RT_SIGPENDING = 176
+ SYS_RT_SIGTIMEDWAIT = 177
+ SYS_RT_SIGQUEUEINFO = 178
+ SYS_RT_SIGSUSPEND = 179
+ SYS_PREAD64 = 180
+ SYS_PWRITE64 = 181
+ SYS_GETCWD = 183
+ SYS_CAPGET = 184
+ SYS_CAPSET = 185
+ SYS_SIGALTSTACK = 186
+ SYS_SENDFILE = 187
+ SYS_GETPMSG = 188
+ SYS_PUTPMSG = 189
+ SYS_VFORK = 190
+ SYS_PIVOT_ROOT = 217
+ SYS_MINCORE = 218
+ SYS_MADVISE = 219
+ SYS_GETDENTS64 = 220
+ SYS_READAHEAD = 222
+ SYS_SETXATTR = 224
+ SYS_LSETXATTR = 225
+ SYS_FSETXATTR = 226
+ SYS_GETXATTR = 227
+ SYS_LGETXATTR = 228
+ SYS_FGETXATTR = 229
+ SYS_LISTXATTR = 230
+ SYS_LLISTXATTR = 231
+ SYS_FLISTXATTR = 232
+ SYS_REMOVEXATTR = 233
+ SYS_LREMOVEXATTR = 234
+ SYS_FREMOVEXATTR = 235
+ SYS_GETTID = 236
+ SYS_TKILL = 237
+ SYS_FUTEX = 238
+ SYS_SCHED_SETAFFINITY = 239
+ SYS_SCHED_GETAFFINITY = 240
+ SYS_TGKILL = 241
+ SYS_IO_SETUP = 243
+ SYS_IO_DESTROY = 244
+ SYS_IO_GETEVENTS = 245
+ SYS_IO_SUBMIT = 246
+ SYS_IO_CANCEL = 247
+ SYS_EXIT_GROUP = 248
+ SYS_EPOLL_CREATE = 249
+ SYS_EPOLL_CTL = 250
+ SYS_EPOLL_WAIT = 251
+ SYS_SET_TID_ADDRESS = 252
+ SYS_FADVISE64 = 253
+ SYS_TIMER_CREATE = 254
+ SYS_TIMER_SETTIME = 255
+ SYS_TIMER_GETTIME = 256
+ SYS_TIMER_GETOVERRUN = 257
+ SYS_TIMER_DELETE = 258
+ SYS_CLOCK_SETTIME = 259
+ SYS_CLOCK_GETTIME = 260
+ SYS_CLOCK_GETRES = 261
+ SYS_CLOCK_NANOSLEEP = 262
+ SYS_STATFS64 = 265
+ SYS_FSTATFS64 = 266
+ SYS_REMAP_FILE_PAGES = 267
+ SYS_MBIND = 268
+ SYS_GET_MEMPOLICY = 269
+ SYS_SET_MEMPOLICY = 270
+ SYS_MQ_OPEN = 271
+ SYS_MQ_UNLINK = 272
+ SYS_MQ_TIMEDSEND = 273
+ SYS_MQ_TIMEDRECEIVE = 274
+ SYS_MQ_NOTIFY = 275
+ SYS_MQ_GETSETATTR = 276
+ SYS_KEXEC_LOAD = 277
+ SYS_ADD_KEY = 278
+ SYS_REQUEST_KEY = 279
+ SYS_KEYCTL = 280
+ SYS_WAITID = 281
+ SYS_IOPRIO_SET = 282
+ SYS_IOPRIO_GET = 283
+ SYS_INOTIFY_INIT = 284
+ SYS_INOTIFY_ADD_WATCH = 285
+ SYS_INOTIFY_RM_WATCH = 286
+ SYS_MIGRATE_PAGES = 287
+ SYS_OPENAT = 288
+ SYS_MKDIRAT = 289
+ SYS_MKNODAT = 290
+ SYS_FCHOWNAT = 291
+ SYS_FUTIMESAT = 292
+ SYS_UNLINKAT = 294
+ SYS_RENAMEAT = 295
+ SYS_LINKAT = 296
+ SYS_SYMLINKAT = 297
+ SYS_READLINKAT = 298
+ SYS_FCHMODAT = 299
+ SYS_FACCESSAT = 300
+ SYS_PSELECT6 = 301
+ SYS_PPOLL = 302
+ SYS_UNSHARE = 303
+ SYS_SET_ROBUST_LIST = 304
+ SYS_GET_ROBUST_LIST = 305
+ SYS_SPLICE = 306
+ SYS_SYNC_FILE_RANGE = 307
+ SYS_TEE = 308
+ SYS_VMSPLICE = 309
+ SYS_MOVE_PAGES = 310
+ SYS_GETCPU = 311
+ SYS_EPOLL_PWAIT = 312
+ SYS_UTIMES = 313
+ SYS_FALLOCATE = 314
+ SYS_UTIMENSAT = 315
+ SYS_SIGNALFD = 316
+ SYS_TIMERFD = 317
+ SYS_EVENTFD = 318
+ SYS_TIMERFD_CREATE = 319
+ SYS_TIMERFD_SETTIME = 320
+ SYS_TIMERFD_GETTIME = 321
+ SYS_SIGNALFD4 = 322
+ SYS_EVENTFD2 = 323
+ SYS_INOTIFY_INIT1 = 324
+ SYS_PIPE2 = 325
+ SYS_DUP3 = 326
+ SYS_EPOLL_CREATE1 = 327
+ SYS_PREADV = 328
+ SYS_PWRITEV = 329
+ SYS_RT_TGSIGQUEUEINFO = 330
+ SYS_PERF_EVENT_OPEN = 331
+ SYS_FANOTIFY_INIT = 332
+ SYS_FANOTIFY_MARK = 333
+ SYS_PRLIMIT64 = 334
+ SYS_NAME_TO_HANDLE_AT = 335
+ SYS_OPEN_BY_HANDLE_AT = 336
+ SYS_CLOCK_ADJTIME = 337
+ SYS_SYNCFS = 338
+ SYS_SETNS = 339
+ SYS_PROCESS_VM_READV = 340
+ SYS_PROCESS_VM_WRITEV = 341
+ SYS_S390_RUNTIME_INSTR = 342
+ SYS_KCMP = 343
+ SYS_FINIT_MODULE = 344
+ SYS_SCHED_SETATTR = 345
+ SYS_SCHED_GETATTR = 346
+ SYS_RENAMEAT2 = 347
+ SYS_SECCOMP = 348
+ SYS_GETRANDOM = 349
+ SYS_MEMFD_CREATE = 350
+ SYS_BPF = 351
+ SYS_S390_PCI_MMIO_WRITE = 352
+ SYS_S390_PCI_MMIO_READ = 353
+ SYS_EXECVEAT = 354
+ SYS_USERFAULTFD = 355
+ SYS_MEMBARRIER = 356
+ SYS_RECVMMSG = 357
+ SYS_SENDMMSG = 358
+ SYS_SOCKET = 359
+ SYS_SOCKETPAIR = 360
+ SYS_BIND = 361
+ SYS_CONNECT = 362
+ SYS_LISTEN = 363
+ SYS_ACCEPT4 = 364
+ SYS_GETSOCKOPT = 365
+ SYS_SETSOCKOPT = 366
+ SYS_GETSOCKNAME = 367
+ SYS_GETPEERNAME = 368
+ SYS_SENDTO = 369
+ SYS_SENDMSG = 370
+ SYS_RECVFROM = 371
+ SYS_RECVMSG = 372
+ SYS_SHUTDOWN = 373
+ SYS_MLOCK2 = 374
+ SYS_SELECT = 142
+ SYS_GETRLIMIT = 191
+ SYS_LCHOWN = 198
+ SYS_GETUID = 199
+ SYS_GETGID = 200
+ SYS_GETEUID = 201
+ SYS_GETEGID = 202
+ SYS_SETREUID = 203
+ SYS_SETREGID = 204
+ SYS_GETGROUPS = 205
+ SYS_SETGROUPS = 206
+ SYS_FCHOWN = 207
+ SYS_SETRESUID = 208
+ SYS_GETRESUID = 209
+ SYS_SETRESGID = 210
+ SYS_GETRESGID = 211
+ SYS_CHOWN = 212
+ SYS_SETUID = 213
+ SYS_SETGID = 214
+ SYS_SETFSUID = 215
+ SYS_SETFSGID = 216
+ SYS_NEWFSTATAT = 293
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
new file mode 100644
index 000000000..46b5bee1d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go
@@ -0,0 +1,348 @@
+// mksysnum_linux.pl /usr/include/sparc64-linux-gnu/asm/unistd.h
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build sparc64,linux
+
+package unix
+
+const (
+ SYS_RESTART_SYSCALL = 0
+ SYS_EXIT = 1
+ SYS_FORK = 2
+ SYS_READ = 3
+ SYS_WRITE = 4
+ SYS_OPEN = 5
+ SYS_CLOSE = 6
+ SYS_WAIT4 = 7
+ SYS_CREAT = 8
+ SYS_LINK = 9
+ SYS_UNLINK = 10
+ SYS_EXECV = 11
+ SYS_CHDIR = 12
+ SYS_CHOWN = 13
+ SYS_MKNOD = 14
+ SYS_CHMOD = 15
+ SYS_LCHOWN = 16
+ SYS_BRK = 17
+ SYS_PERFCTR = 18
+ SYS_LSEEK = 19
+ SYS_GETPID = 20
+ SYS_CAPGET = 21
+ SYS_CAPSET = 22
+ SYS_SETUID = 23
+ SYS_GETUID = 24
+ SYS_VMSPLICE = 25
+ SYS_PTRACE = 26
+ SYS_ALARM = 27
+ SYS_SIGALTSTACK = 28
+ SYS_PAUSE = 29
+ SYS_UTIME = 30
+ SYS_ACCESS = 33
+ SYS_NICE = 34
+ SYS_SYNC = 36
+ SYS_KILL = 37
+ SYS_STAT = 38
+ SYS_SENDFILE = 39
+ SYS_LSTAT = 40
+ SYS_DUP = 41
+ SYS_PIPE = 42
+ SYS_TIMES = 43
+ SYS_UMOUNT2 = 45
+ SYS_SETGID = 46
+ SYS_GETGID = 47
+ SYS_SIGNAL = 48
+ SYS_GETEUID = 49
+ SYS_GETEGID = 50
+ SYS_ACCT = 51
+ SYS_MEMORY_ORDERING = 52
+ SYS_IOCTL = 54
+ SYS_REBOOT = 55
+ SYS_SYMLINK = 57
+ SYS_READLINK = 58
+ SYS_EXECVE = 59
+ SYS_UMASK = 60
+ SYS_CHROOT = 61
+ SYS_FSTAT = 62
+ SYS_FSTAT64 = 63
+ SYS_GETPAGESIZE = 64
+ SYS_MSYNC = 65
+ SYS_VFORK = 66
+ SYS_PREAD64 = 67
+ SYS_PWRITE64 = 68
+ SYS_MMAP = 71
+ SYS_MUNMAP = 73
+ SYS_MPROTECT = 74
+ SYS_MADVISE = 75
+ SYS_VHANGUP = 76
+ SYS_MINCORE = 78
+ SYS_GETGROUPS = 79
+ SYS_SETGROUPS = 80
+ SYS_GETPGRP = 81
+ SYS_SETITIMER = 83
+ SYS_SWAPON = 85
+ SYS_GETITIMER = 86
+ SYS_SETHOSTNAME = 88
+ SYS_DUP2 = 90
+ SYS_FCNTL = 92
+ SYS_SELECT = 93
+ SYS_FSYNC = 95
+ SYS_SETPRIORITY = 96
+ SYS_SOCKET = 97
+ SYS_CONNECT = 98
+ SYS_ACCEPT = 99
+ SYS_GETPRIORITY = 100
+ SYS_RT_SIGRETURN = 101
+ SYS_RT_SIGACTION = 102
+ SYS_RT_SIGPROCMASK = 103
+ SYS_RT_SIGPENDING = 104
+ SYS_RT_SIGTIMEDWAIT = 105
+ SYS_RT_SIGQUEUEINFO = 106
+ SYS_RT_SIGSUSPEND = 107
+ SYS_SETRESUID = 108
+ SYS_GETRESUID = 109
+ SYS_SETRESGID = 110
+ SYS_GETRESGID = 111
+ SYS_RECVMSG = 113
+ SYS_SENDMSG = 114
+ SYS_GETTIMEOFDAY = 116
+ SYS_GETRUSAGE = 117
+ SYS_GETSOCKOPT = 118
+ SYS_GETCWD = 119
+ SYS_READV = 120
+ SYS_WRITEV = 121
+ SYS_SETTIMEOFDAY = 122
+ SYS_FCHOWN = 123
+ SYS_FCHMOD = 124
+ SYS_RECVFROM = 125
+ SYS_SETREUID = 126
+ SYS_SETREGID = 127
+ SYS_RENAME = 128
+ SYS_TRUNCATE = 129
+ SYS_FTRUNCATE = 130
+ SYS_FLOCK = 131
+ SYS_LSTAT64 = 132
+ SYS_SENDTO = 133
+ SYS_SHUTDOWN = 134
+ SYS_SOCKETPAIR = 135
+ SYS_MKDIR = 136
+ SYS_RMDIR = 137
+ SYS_UTIMES = 138
+ SYS_STAT64 = 139
+ SYS_SENDFILE64 = 140
+ SYS_GETPEERNAME = 141
+ SYS_FUTEX = 142
+ SYS_GETTID = 143
+ SYS_GETRLIMIT = 144
+ SYS_SETRLIMIT = 145
+ SYS_PIVOT_ROOT = 146
+ SYS_PRCTL = 147
+ SYS_PCICONFIG_READ = 148
+ SYS_PCICONFIG_WRITE = 149
+ SYS_GETSOCKNAME = 150
+ SYS_INOTIFY_INIT = 151
+ SYS_INOTIFY_ADD_WATCH = 152
+ SYS_POLL = 153
+ SYS_GETDENTS64 = 154
+ SYS_INOTIFY_RM_WATCH = 156
+ SYS_STATFS = 157
+ SYS_FSTATFS = 158
+ SYS_UMOUNT = 159
+ SYS_SCHED_SET_AFFINITY = 160
+ SYS_SCHED_GET_AFFINITY = 161
+ SYS_GETDOMAINNAME = 162
+ SYS_SETDOMAINNAME = 163
+ SYS_UTRAP_INSTALL = 164
+ SYS_QUOTACTL = 165
+ SYS_SET_TID_ADDRESS = 166
+ SYS_MOUNT = 167
+ SYS_USTAT = 168
+ SYS_SETXATTR = 169
+ SYS_LSETXATTR = 170
+ SYS_FSETXATTR = 171
+ SYS_GETXATTR = 172
+ SYS_LGETXATTR = 173
+ SYS_GETDENTS = 174
+ SYS_SETSID = 175
+ SYS_FCHDIR = 176
+ SYS_FGETXATTR = 177
+ SYS_LISTXATTR = 178
+ SYS_LLISTXATTR = 179
+ SYS_FLISTXATTR = 180
+ SYS_REMOVEXATTR = 181
+ SYS_LREMOVEXATTR = 182
+ SYS_SIGPENDING = 183
+ SYS_QUERY_MODULE = 184
+ SYS_SETPGID = 185
+ SYS_FREMOVEXATTR = 186
+ SYS_TKILL = 187
+ SYS_EXIT_GROUP = 188
+ SYS_UNAME = 189
+ SYS_INIT_MODULE = 190
+ SYS_PERSONALITY = 191
+ SYS_REMAP_FILE_PAGES = 192
+ SYS_EPOLL_CREATE = 193
+ SYS_EPOLL_CTL = 194
+ SYS_EPOLL_WAIT = 195
+ SYS_IOPRIO_SET = 196
+ SYS_GETPPID = 197
+ SYS_SIGACTION = 198
+ SYS_SGETMASK = 199
+ SYS_SSETMASK = 200
+ SYS_SIGSUSPEND = 201
+ SYS_OLDLSTAT = 202
+ SYS_USELIB = 203
+ SYS_READDIR = 204
+ SYS_READAHEAD = 205
+ SYS_SOCKETCALL = 206
+ SYS_SYSLOG = 207
+ SYS_LOOKUP_DCOOKIE = 208
+ SYS_FADVISE64 = 209
+ SYS_FADVISE64_64 = 210
+ SYS_TGKILL = 211
+ SYS_WAITPID = 212
+ SYS_SWAPOFF = 213
+ SYS_SYSINFO = 214
+ SYS_IPC = 215
+ SYS_SIGRETURN = 216
+ SYS_CLONE = 217
+ SYS_IOPRIO_GET = 218
+ SYS_ADJTIMEX = 219
+ SYS_SIGPROCMASK = 220
+ SYS_CREATE_MODULE = 221
+ SYS_DELETE_MODULE = 222
+ SYS_GET_KERNEL_SYMS = 223
+ SYS_GETPGID = 224
+ SYS_BDFLUSH = 225
+ SYS_SYSFS = 226
+ SYS_AFS_SYSCALL = 227
+ SYS_SETFSUID = 228
+ SYS_SETFSGID = 229
+ SYS__NEWSELECT = 230
+ SYS_SPLICE = 232
+ SYS_STIME = 233
+ SYS_STATFS64 = 234
+ SYS_FSTATFS64 = 235
+ SYS__LLSEEK = 236
+ SYS_MLOCK = 237
+ SYS_MUNLOCK = 238
+ SYS_MLOCKALL = 239
+ SYS_MUNLOCKALL = 240
+ SYS_SCHED_SETPARAM = 241
+ SYS_SCHED_GETPARAM = 242
+ SYS_SCHED_SETSCHEDULER = 243
+ SYS_SCHED_GETSCHEDULER = 244
+ SYS_SCHED_YIELD = 245
+ SYS_SCHED_GET_PRIORITY_MAX = 246
+ SYS_SCHED_GET_PRIORITY_MIN = 247
+ SYS_SCHED_RR_GET_INTERVAL = 248
+ SYS_NANOSLEEP = 249
+ SYS_MREMAP = 250
+ SYS__SYSCTL = 251
+ SYS_GETSID = 252
+ SYS_FDATASYNC = 253
+ SYS_NFSSERVCTL = 254
+ SYS_SYNC_FILE_RANGE = 255
+ SYS_CLOCK_SETTIME = 256
+ SYS_CLOCK_GETTIME = 257
+ SYS_CLOCK_GETRES = 258
+ SYS_CLOCK_NANOSLEEP = 259
+ SYS_SCHED_GETAFFINITY = 260
+ SYS_SCHED_SETAFFINITY = 261
+ SYS_TIMER_SETTIME = 262
+ SYS_TIMER_GETTIME = 263
+ SYS_TIMER_GETOVERRUN = 264
+ SYS_TIMER_DELETE = 265
+ SYS_TIMER_CREATE = 266
+ SYS_IO_SETUP = 268
+ SYS_IO_DESTROY = 269
+ SYS_IO_SUBMIT = 270
+ SYS_IO_CANCEL = 271
+ SYS_IO_GETEVENTS = 272
+ SYS_MQ_OPEN = 273
+ SYS_MQ_UNLINK = 274
+ SYS_MQ_TIMEDSEND = 275
+ SYS_MQ_TIMEDRECEIVE = 276
+ SYS_MQ_NOTIFY = 277
+ SYS_MQ_GETSETATTR = 278
+ SYS_WAITID = 279
+ SYS_TEE = 280
+ SYS_ADD_KEY = 281
+ SYS_REQUEST_KEY = 282
+ SYS_KEYCTL = 283
+ SYS_OPENAT = 284
+ SYS_MKDIRAT = 285
+ SYS_MKNODAT = 286
+ SYS_FCHOWNAT = 287
+ SYS_FUTIMESAT = 288
+ SYS_FSTATAT64 = 289
+ SYS_UNLINKAT = 290
+ SYS_RENAMEAT = 291
+ SYS_LINKAT = 292
+ SYS_SYMLINKAT = 293
+ SYS_READLINKAT = 294
+ SYS_FCHMODAT = 295
+ SYS_FACCESSAT = 296
+ SYS_PSELECT6 = 297
+ SYS_PPOLL = 298
+ SYS_UNSHARE = 299
+ SYS_SET_ROBUST_LIST = 300
+ SYS_GET_ROBUST_LIST = 301
+ SYS_MIGRATE_PAGES = 302
+ SYS_MBIND = 303
+ SYS_GET_MEMPOLICY = 304
+ SYS_SET_MEMPOLICY = 305
+ SYS_KEXEC_LOAD = 306
+ SYS_MOVE_PAGES = 307
+ SYS_GETCPU = 308
+ SYS_EPOLL_PWAIT = 309
+ SYS_UTIMENSAT = 310
+ SYS_SIGNALFD = 311
+ SYS_TIMERFD_CREATE = 312
+ SYS_EVENTFD = 313
+ SYS_FALLOCATE = 314
+ SYS_TIMERFD_SETTIME = 315
+ SYS_TIMERFD_GETTIME = 316
+ SYS_SIGNALFD4 = 317
+ SYS_EVENTFD2 = 318
+ SYS_EPOLL_CREATE1 = 319
+ SYS_DUP3 = 320
+ SYS_PIPE2 = 321
+ SYS_INOTIFY_INIT1 = 322
+ SYS_ACCEPT4 = 323
+ SYS_PREADV = 324
+ SYS_PWRITEV = 325
+ SYS_RT_TGSIGQUEUEINFO = 326
+ SYS_PERF_EVENT_OPEN = 327
+ SYS_RECVMMSG = 328
+ SYS_FANOTIFY_INIT = 329
+ SYS_FANOTIFY_MARK = 330
+ SYS_PRLIMIT64 = 331
+ SYS_NAME_TO_HANDLE_AT = 332
+ SYS_OPEN_BY_HANDLE_AT = 333
+ SYS_CLOCK_ADJTIME = 334
+ SYS_SYNCFS = 335
+ SYS_SENDMMSG = 336
+ SYS_SETNS = 337
+ SYS_PROCESS_VM_READV = 338
+ SYS_PROCESS_VM_WRITEV = 339
+ SYS_KERN_FEATURES = 340
+ SYS_KCMP = 341
+ SYS_FINIT_MODULE = 342
+ SYS_SCHED_SETATTR = 343
+ SYS_SCHED_GETATTR = 344
+ SYS_RENAMEAT2 = 345
+ SYS_SECCOMP = 346
+ SYS_GETRANDOM = 347
+ SYS_MEMFD_CREATE = 348
+ SYS_BPF = 349
+ SYS_EXECVEAT = 350
+ SYS_MEMBARRIER = 351
+ SYS_USERFAULTFD = 352
+ SYS_BIND = 353
+ SYS_LISTEN = 354
+ SYS_SETSOCKOPT = 355
+ SYS_MLOCK2 = 356
+ SYS_COPY_FILE_RANGE = 357
+ SYS_PREADV2 = 358
+ SYS_PWRITEV2 = 359
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
new file mode 100644
index 000000000..f60d8f988
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go
@@ -0,0 +1,273 @@
+// 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/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
new file mode 100644
index 000000000..48a91d464
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go
@@ -0,0 +1,273 @@
+// 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/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
new file mode 100644
index 000000000..612ba662c
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go
@@ -0,0 +1,273 @@
+// 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/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
new file mode 100644
index 000000000..3e8ce2a1d
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go
@@ -0,0 +1,207 @@
+// mksysnum_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build 386,openbsd
+
+package unix
+
+const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+ SYS_OPEN = 5 // { int sys_open(const char *path, \
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+ SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+ SYS_SYNC = 36 // { void sys_sync(void); }
+ SYS_KILL = 37 // { int sys_kill(int pid, int signum); }
+ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); }
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+ SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+ SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+ SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \
+ SYS_EXECVE = 59 // { int sys_execve(const char *path, \
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+ SYS_STATFS = 63 // { int sys_statfs(const char *path, \
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+ SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+ SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+ SYS_KEVENT = 72 // { int sys_kevent(int fd, \
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+ SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+ SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); }
+ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+ SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+ SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+ SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
new file mode 100644
index 000000000..bd28146dd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go
@@ -0,0 +1,207 @@
+// mksysnum_openbsd.pl
+// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT
+
+// +build amd64,openbsd
+
+package unix
+
+const (
+ SYS_EXIT = 1 // { void sys_exit(int rval); }
+ SYS_FORK = 2 // { int sys_fork(void); }
+ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); }
+ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \
+ SYS_OPEN = 5 // { int sys_open(const char *path, \
+ SYS_CLOSE = 6 // { int sys_close(int fd); }
+ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \
+ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); }
+ SYS_UNLINK = 10 // { int sys_unlink(const char *path); }
+ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \
+ SYS_CHDIR = 12 // { int sys_chdir(const char *path); }
+ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); }
+ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \
+ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); }
+ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \
+ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break
+ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); }
+ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \
+ SYS_GETPID = 20 // { pid_t sys_getpid(void); }
+ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \
+ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); }
+ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); }
+ SYS_GETUID = 24 // { uid_t sys_getuid(void); }
+ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); }
+ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \
+ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \
+ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \
+ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \
+ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \
+ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \
+ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \
+ SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); }
+ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); }
+ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); }
+ SYS_SYNC = 36 // { void sys_sync(void); }
+ SYS_KILL = 37 // { int sys_kill(int pid, int signum); }
+ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); }
+ SYS_GETPPID = 39 // { pid_t sys_getppid(void); }
+ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); }
+ SYS_DUP = 41 // { int sys_dup(int fd); }
+ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \
+ SYS_GETEGID = 43 // { gid_t sys_getegid(void); }
+ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \
+ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \
+ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \
+ SYS_GETGID = 47 // { gid_t sys_getgid(void); }
+ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); }
+ SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); }
+ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); }
+ SYS_ACCT = 51 // { int sys_acct(const char *path); }
+ SYS_SIGPENDING = 52 // { int sys_sigpending(void); }
+ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); }
+ SYS_IOCTL = 54 // { int sys_ioctl(int fd, \
+ SYS_REBOOT = 55 // { int sys_reboot(int opt); }
+ SYS_REVOKE = 56 // { int sys_revoke(const char *path); }
+ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \
+ SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \
+ SYS_EXECVE = 59 // { int sys_execve(const char *path, \
+ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); }
+ SYS_CHROOT = 61 // { int sys_chroot(const char *path); }
+ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \
+ SYS_STATFS = 63 // { int sys_statfs(const char *path, \
+ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); }
+ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \
+ SYS_VFORK = 66 // { int sys_vfork(void); }
+ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \
+ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \
+ SYS_SETITIMER = 69 // { int sys_setitimer(int which, \
+ SYS_GETITIMER = 70 // { int sys_getitimer(int which, \
+ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \
+ SYS_KEVENT = 72 // { int sys_kevent(int fd, \
+ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); }
+ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \
+ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \
+ SYS_UTIMES = 76 // { int sys_utimes(const char *path, \
+ SYS_FUTIMES = 77 // { int sys_futimes(int fd, \
+ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \
+ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \
+ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \
+ SYS_GETPGRP = 81 // { int sys_getpgrp(void); }
+ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); }
+ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \
+ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \
+ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \
+ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \
+ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \
+ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); }
+ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \
+ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); }
+ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \
+ SYS_FSYNC = 95 // { int sys_fsync(int fd); }
+ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); }
+ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); }
+ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \
+ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); }
+ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); }
+ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); }
+ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \
+ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \
+ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); }
+ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \
+ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \
+ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); }
+ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \
+ SYS_READV = 120 // { ssize_t sys_readv(int fd, \
+ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \
+ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); }
+ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); }
+ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); }
+ SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); }
+ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); }
+ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); }
+ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); }
+ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \
+ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); }
+ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \
+ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); }
+ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); }
+ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \
+ SYS_SETSID = 147 // { int sys_setsid(void); }
+ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \
+ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); }
+ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); }
+ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); }
+ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \
+ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \
+ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); }
+ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); }
+ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); }
+ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); }
+ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); }
+ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); }
+ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \
+ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \
+ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \
+ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \
+ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \
+ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); }
+ SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \
+ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); }
+ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); }
+ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); }
+ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \
+ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); }
+ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); }
+ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \
+ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \
+ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \
+ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); }
+ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \
+ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \
+ SYS_ISSETUGID = 253 // { int sys_issetugid(void); }
+ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); }
+ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); }
+ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); }
+ SYS_PIPE = 263 // { int sys_pipe(int *fdp); }
+ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); }
+ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \
+ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \
+ SYS_KQUEUE = 269 // { int sys_kqueue(void); }
+ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); }
+ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); }
+ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \
+ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \
+ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \
+ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \
+ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \
+ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); }
+ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \
+ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); }
+ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \
+ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \
+ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \
+ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \
+ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \
+ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); }
+ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); }
+ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \
+ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); }
+ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \
+ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); }
+ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \
+ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); }
+ SYS_GETRTABLE = 311 // { int sys_getrtable(void); }
+ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \
+ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \
+ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \
+ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \
+ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \
+ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \
+ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \
+ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \
+ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \
+ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \
+ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \
+ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \
+ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); }
+ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); }
+)
diff --git a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
new file mode 100644
index 000000000..c70865985
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go
@@ -0,0 +1,13 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build amd64,solaris
+
+package unix
+
+// TODO(aram): remove these before Go 1.3.
+const (
+ SYS_EXECVE = 59
+ SYS_FCNTL = 62
+)
diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
new file mode 100644
index 000000000..2de1d44e2
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go
@@ -0,0 +1,447 @@
+// +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/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
new file mode 100644
index 000000000..044657878
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go
@@ -0,0 +1,462 @@
+// +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/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
new file mode 100644
index 000000000..66df363ce
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go
@@ -0,0 +1,449 @@
+// 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/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
new file mode 100644
index 000000000..85d56eabd
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go
@@ -0,0 +1,457 @@
+// +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/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
new file mode 100644
index 000000000..8a6f4e1ce
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go
@@ -0,0 +1,443 @@
+// 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/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
new file mode 100644
index 000000000..8cf30947b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go
@@ -0,0 +1,502 @@
+// +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/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
new file mode 100644
index 000000000..e5feb207b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go
@@ -0,0 +1,505 @@
+// +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/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
new file mode 100644
index 000000000..5472b5428
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go
@@ -0,0 +1,497 @@
+// 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/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
new file mode 100644
index 000000000..f3ddf5345
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
@@ -0,0 +1,627 @@
+// +build 386,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+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
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type 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
+ SizeofSockaddrHCI = 0x6
+ 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_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
new file mode 100644
index 000000000..a923bef35
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
@@ -0,0 +1,645 @@
+// +build amd64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec 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
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type 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
+ SizeofSockaddrHCI = 0x6
+ 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_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
new file mode 100644
index 000000000..35f11bd1b
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
@@ -0,0 +1,616 @@
+// +build arm,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go | go run mkpost.go
+
+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
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type 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
+ SizeofSockaddrHCI = 0x6
+ 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_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
new file mode 100644
index 000000000..e786addf7
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
@@ -0,0 +1,624 @@
+// +build arm64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -fsigned-char types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec 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 RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+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
+ SizeofSockaddrHCI = 0x6
+ 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
+ PadFd int32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
new file mode 100644
index 000000000..b29894deb
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
@@ -0,0 +1,627 @@
+// +build mips64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int64
+}
+
+type Timex struct {
+ Modes uint32
+ Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+ Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+ Time Timeval
+ Tick int64
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+ Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+ Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+ Utime int64
+ Stime int64
+ Cutime int64
+ Cstime int64
+}
+
+type Utimbuf struct {
+ Actime int64
+ Modtime int64
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev uint32
+ Pad1 [3]int32
+ Ino uint64
+ Mode uint32
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Rdev uint32
+ Pad2 [3]uint32
+ Size int64
+ Atim Timespec
+ Mtim Timespec
+ Ctim Timespec
+ Blksize uint32
+ Pad4 uint32
+ Blocks int64
+}
+
+type Statfs_t struct {
+ Type int64
+ Bsize int64
+ Frsize int64
+ Blocks uint64
+ Bfree uint64
+ Files uint64
+ Ffree uint64
+ Bavail uint64
+ Fsid Fsid
+ Namelen int64
+ Flags int64
+ Spare [5]int64
+}
+
+type Dirent struct {
+ Ino uint64
+ Off int64
+ Reclen uint16
+ Type uint8
+ Name [256]int8
+ Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+ X__val [2]int32
+}
+
+type Flock_t struct {
+ Type int16
+ Whence int16
+ Pad_cgo_0 [4]byte
+ Start int64
+ Len int64
+ Pid int32
+ Pad_cgo_1 [4]byte
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *byte
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+ Multiaddr [4]byte /* in_addr */
+ Address [4]byte /* in_addr */
+ Ifindex int32
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+ Pad_cgo_1 [4]byte
+}
+
+type Cmsghdr struct {
+ Len uint64
+ Level int32
+ Type int32
+}
+
+type Inet4Pktinfo struct {
+ Ifindex int32
+ Spec_dst [4]byte /* in_addr */
+ Addr [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Data [8]uint32
+}
+
+type Ucred struct {
+ Pid int32
+ Uid uint32
+ Gid uint32
+}
+
+type TCPInfo struct {
+ State uint8
+ Ca_state uint8
+ Retransmits uint8
+ Probes uint8
+ Backoff uint8
+ Options uint8
+ Pad_cgo_0 [2]byte
+ Rto uint32
+ Ato uint32
+ Snd_mss uint32
+ Rcv_mss uint32
+ Unacked uint32
+ Sacked uint32
+ Lost uint32
+ Retrans uint32
+ Fackets uint32
+ Last_data_sent uint32
+ Last_ack_sent uint32
+ Last_data_recv uint32
+ Last_ack_recv uint32
+ Pmtu uint32
+ Rcv_ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Snd_ssthresh uint32
+ Snd_cwnd uint32
+ Advmss uint32
+ Reordering uint32
+ Rcv_rtt uint32
+ Rcv_space uint32
+ Total_retrans uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x70
+ SizeofSockaddrUnix = 0x6e
+ SizeofSockaddrLinklayer = 0x14
+ SizeofSockaddrNetlink = 0xc
+ SizeofSockaddrHCI = 0x6
+ 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 = 0x27
+ RT_SCOPE_UNIVERSE = 0x0
+ RT_SCOPE_SITE = 0xc8
+ RT_SCOPE_LINK = 0xfd
+ RT_SCOPE_HOST = 0xfe
+ RT_SCOPE_NOWHERE = 0xff
+ RT_TABLE_UNSPEC = 0x0
+ RT_TABLE_COMPAT = 0xfc
+ RT_TABLE_DEFAULT = 0xfd
+ RT_TABLE_MAIN = 0xfe
+ RT_TABLE_LOCAL = 0xff
+ RT_TABLE_MAX = 0xffffffff
+ RTA_UNSPEC = 0x0
+ RTA_DST = 0x1
+ RTA_SRC = 0x2
+ RTA_IIF = 0x3
+ RTA_OIF = 0x4
+ RTA_GATEWAY = 0x5
+ RTA_PRIORITY = 0x6
+ RTA_PREFSRC = 0x7
+ RTA_METRICS = 0x8
+ RTA_MULTIPATH = 0x9
+ RTA_FLOW = 0xb
+ RTA_CACHEINFO = 0xc
+ RTA_TABLE = 0xf
+ RTN_UNSPEC = 0x0
+ RTN_UNICAST = 0x1
+ RTN_LOCAL = 0x2
+ RTN_BROADCAST = 0x3
+ RTN_ANYCAST = 0x4
+ RTN_MULTICAST = 0x5
+ RTN_BLACKHOLE = 0x6
+ RTN_UNREACHABLE = 0x7
+ RTN_PROHIBIT = 0x8
+ RTN_THROW = 0x9
+ RTN_NAT = 0xa
+ RTN_XRESOLVE = 0xb
+ RTNLGRP_NONE = 0x0
+ RTNLGRP_LINK = 0x1
+ RTNLGRP_NOTIFY = 0x2
+ RTNLGRP_NEIGH = 0x3
+ RTNLGRP_TC = 0x4
+ RTNLGRP_IPV4_IFADDR = 0x5
+ RTNLGRP_IPV4_MROUTE = 0x6
+ RTNLGRP_IPV4_ROUTE = 0x7
+ RTNLGRP_IPV4_RULE = 0x8
+ RTNLGRP_IPV6_IFADDR = 0x9
+ RTNLGRP_IPV6_MROUTE = 0xa
+ RTNLGRP_IPV6_ROUTE = 0xb
+ RTNLGRP_IPV6_IFINFO = 0xc
+ RTNLGRP_IPV6_PREFIX = 0x12
+ RTNLGRP_IPV6_RULE = 0x13
+ RTNLGRP_ND_USEROPT = 0x14
+ SizeofNlMsghdr = 0x10
+ SizeofNlMsgerr = 0x14
+ SizeofRtGenmsg = 0x1
+ SizeofNlAttr = 0x4
+ SizeofRtAttr = 0x4
+ SizeofIfInfomsg = 0x10
+ SizeofIfAddrmsg = 0x8
+ SizeofRtMsg = 0xc
+ SizeofRtNexthop = 0x8
+)
+
+type NlMsghdr struct {
+ Len uint32
+ Type uint16
+ Flags uint16
+ Seq uint32
+ Pid uint32
+}
+
+type NlMsgerr struct {
+ Error int32
+ Msg NlMsghdr
+}
+
+type RtGenmsg struct {
+ Family uint8
+}
+
+type NlAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type RtAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type IfInfomsg struct {
+ Family uint8
+ X__ifi_pad uint8
+ Type uint16
+ Index int32
+ Flags uint32
+ Change uint32
+}
+
+type IfAddrmsg struct {
+ Family uint8
+ Prefixlen uint8
+ Flags uint8
+ Scope uint8
+ Index uint32
+}
+
+type RtMsg struct {
+ Family uint8
+ Dst_len uint8
+ Src_len uint8
+ Tos uint8
+ Table uint8
+ Protocol uint8
+ Scope uint8
+ Type uint8
+ Flags uint32
+}
+
+type RtNexthop struct {
+ Len uint16
+ Flags uint8
+ Hops uint8
+ Ifindex int32
+}
+
+const (
+ SizeofSockFilter = 0x8
+ SizeofSockFprog = 0x10
+)
+
+type SockFilter struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type SockFprog struct {
+ Len uint16
+ Pad_cgo_0 [6]byte
+ Filter *SockFilter
+}
+
+type InotifyEvent struct {
+ Wd int32
+ Mask uint32
+ Cookie uint32
+ Len uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+ Regs [102]uint64
+ U_tsize uint64
+ U_dsize uint64
+ U_ssize uint64
+ Start_code uint64
+ Start_data uint64
+ Start_stack uint64
+ Signal int64
+ U_ar0 uint64
+ Magic uint64
+ U_comm [32]int8
+}
+
+type FdSet struct {
+ Bits [16]int64
+}
+
+type Sysinfo_t struct {
+ Uptime int64
+ Loads [3]uint64
+ Totalram uint64
+ Freeram uint64
+ Sharedram uint64
+ Bufferram uint64
+ Totalswap uint64
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+ Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+ X_f [0]int8
+ Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+ Sysname [65]int8
+ Nodename [65]int8
+ Release [65]int8
+ Version [65]int8
+ Machine [65]int8
+ Domainname [65]int8
+}
+
+type Ustat_t struct {
+ Tfree int32
+ Pad_cgo_0 [4]byte
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+ Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+ Events uint32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [32]uint8
+ Pad_cgo_0 [3]byte
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
new file mode 100644
index 000000000..d9af71b69
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
@@ -0,0 +1,627 @@
+// +build mips64le,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int64
+}
+
+type Timex struct {
+ Modes uint32
+ Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+ Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+ Time Timeval
+ Tick int64
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+ Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+ Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+ Utime int64
+ Stime int64
+ Cutime int64
+ Cstime int64
+}
+
+type Utimbuf struct {
+ Actime int64
+ Modtime int64
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev uint32
+ Pad1 [3]int32
+ Ino uint64
+ Mode uint32
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Rdev uint32
+ Pad2 [3]uint32
+ Size int64
+ Atim Timespec
+ Mtim Timespec
+ Ctim Timespec
+ Blksize uint32
+ Pad4 uint32
+ Blocks int64
+}
+
+type Statfs_t struct {
+ Type int64
+ Bsize int64
+ Frsize int64
+ Blocks uint64
+ Bfree uint64
+ Files uint64
+ Ffree uint64
+ Bavail uint64
+ Fsid Fsid
+ Namelen int64
+ Flags int64
+ Spare [5]int64
+}
+
+type Dirent struct {
+ Ino uint64
+ Off int64
+ Reclen uint16
+ Type uint8
+ Name [256]int8
+ Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+ X__val [2]int32
+}
+
+type Flock_t struct {
+ Type int16
+ Whence int16
+ Pad_cgo_0 [4]byte
+ Start int64
+ Len int64
+ Pid int32
+ Pad_cgo_1 [4]byte
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *byte
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+ Multiaddr [4]byte /* in_addr */
+ Address [4]byte /* in_addr */
+ Ifindex int32
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+ Pad_cgo_1 [4]byte
+}
+
+type Cmsghdr struct {
+ Len uint64
+ Level int32
+ Type int32
+}
+
+type Inet4Pktinfo struct {
+ Ifindex int32
+ Spec_dst [4]byte /* in_addr */
+ Addr [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Data [8]uint32
+}
+
+type Ucred struct {
+ Pid int32
+ Uid uint32
+ Gid uint32
+}
+
+type TCPInfo struct {
+ State uint8
+ Ca_state uint8
+ Retransmits uint8
+ Probes uint8
+ Backoff uint8
+ Options uint8
+ Pad_cgo_0 [2]byte
+ Rto uint32
+ Ato uint32
+ Snd_mss uint32
+ Rcv_mss uint32
+ Unacked uint32
+ Sacked uint32
+ Lost uint32
+ Retrans uint32
+ Fackets uint32
+ Last_data_sent uint32
+ Last_ack_sent uint32
+ Last_data_recv uint32
+ Last_ack_recv uint32
+ Pmtu uint32
+ Rcv_ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Snd_ssthresh uint32
+ Snd_cwnd uint32
+ Advmss uint32
+ Reordering uint32
+ Rcv_rtt uint32
+ Rcv_space uint32
+ Total_retrans uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x70
+ SizeofSockaddrUnix = 0x6e
+ SizeofSockaddrLinklayer = 0x14
+ SizeofSockaddrNetlink = 0xc
+ SizeofSockaddrHCI = 0x6
+ 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 = 0x27
+ RT_SCOPE_UNIVERSE = 0x0
+ RT_SCOPE_SITE = 0xc8
+ RT_SCOPE_LINK = 0xfd
+ RT_SCOPE_HOST = 0xfe
+ RT_SCOPE_NOWHERE = 0xff
+ RT_TABLE_UNSPEC = 0x0
+ RT_TABLE_COMPAT = 0xfc
+ RT_TABLE_DEFAULT = 0xfd
+ RT_TABLE_MAIN = 0xfe
+ RT_TABLE_LOCAL = 0xff
+ RT_TABLE_MAX = 0xffffffff
+ RTA_UNSPEC = 0x0
+ RTA_DST = 0x1
+ RTA_SRC = 0x2
+ RTA_IIF = 0x3
+ RTA_OIF = 0x4
+ RTA_GATEWAY = 0x5
+ RTA_PRIORITY = 0x6
+ RTA_PREFSRC = 0x7
+ RTA_METRICS = 0x8
+ RTA_MULTIPATH = 0x9
+ RTA_FLOW = 0xb
+ RTA_CACHEINFO = 0xc
+ RTA_TABLE = 0xf
+ RTN_UNSPEC = 0x0
+ RTN_UNICAST = 0x1
+ RTN_LOCAL = 0x2
+ RTN_BROADCAST = 0x3
+ RTN_ANYCAST = 0x4
+ RTN_MULTICAST = 0x5
+ RTN_BLACKHOLE = 0x6
+ RTN_UNREACHABLE = 0x7
+ RTN_PROHIBIT = 0x8
+ RTN_THROW = 0x9
+ RTN_NAT = 0xa
+ RTN_XRESOLVE = 0xb
+ RTNLGRP_NONE = 0x0
+ RTNLGRP_LINK = 0x1
+ RTNLGRP_NOTIFY = 0x2
+ RTNLGRP_NEIGH = 0x3
+ RTNLGRP_TC = 0x4
+ RTNLGRP_IPV4_IFADDR = 0x5
+ RTNLGRP_IPV4_MROUTE = 0x6
+ RTNLGRP_IPV4_ROUTE = 0x7
+ RTNLGRP_IPV4_RULE = 0x8
+ RTNLGRP_IPV6_IFADDR = 0x9
+ RTNLGRP_IPV6_MROUTE = 0xa
+ RTNLGRP_IPV6_ROUTE = 0xb
+ RTNLGRP_IPV6_IFINFO = 0xc
+ RTNLGRP_IPV6_PREFIX = 0x12
+ RTNLGRP_IPV6_RULE = 0x13
+ RTNLGRP_ND_USEROPT = 0x14
+ SizeofNlMsghdr = 0x10
+ SizeofNlMsgerr = 0x14
+ SizeofRtGenmsg = 0x1
+ SizeofNlAttr = 0x4
+ SizeofRtAttr = 0x4
+ SizeofIfInfomsg = 0x10
+ SizeofIfAddrmsg = 0x8
+ SizeofRtMsg = 0xc
+ SizeofRtNexthop = 0x8
+)
+
+type NlMsghdr struct {
+ Len uint32
+ Type uint16
+ Flags uint16
+ Seq uint32
+ Pid uint32
+}
+
+type NlMsgerr struct {
+ Error int32
+ Msg NlMsghdr
+}
+
+type RtGenmsg struct {
+ Family uint8
+}
+
+type NlAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type RtAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type IfInfomsg struct {
+ Family uint8
+ X__ifi_pad uint8
+ Type uint16
+ Index int32
+ Flags uint32
+ Change uint32
+}
+
+type IfAddrmsg struct {
+ Family uint8
+ Prefixlen uint8
+ Flags uint8
+ Scope uint8
+ Index uint32
+}
+
+type RtMsg struct {
+ Family uint8
+ Dst_len uint8
+ Src_len uint8
+ Tos uint8
+ Table uint8
+ Protocol uint8
+ Scope uint8
+ Type uint8
+ Flags uint32
+}
+
+type RtNexthop struct {
+ Len uint16
+ Flags uint8
+ Hops uint8
+ Ifindex int32
+}
+
+const (
+ SizeofSockFilter = 0x8
+ SizeofSockFprog = 0x10
+)
+
+type SockFilter struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type SockFprog struct {
+ Len uint16
+ Pad_cgo_0 [6]byte
+ Filter *SockFilter
+}
+
+type InotifyEvent struct {
+ Wd int32
+ Mask uint32
+ Cookie uint32
+ Len uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+ Regs [102]uint64
+ U_tsize uint64
+ U_dsize uint64
+ U_ssize uint64
+ Start_code uint64
+ Start_data uint64
+ Start_stack uint64
+ Signal int64
+ U_ar0 uint64
+ Magic uint64
+ U_comm [32]int8
+}
+
+type FdSet struct {
+ Bits [16]int64
+}
+
+type Sysinfo_t struct {
+ Uptime int64
+ Loads [3]uint64
+ Totalram uint64
+ Freeram uint64
+ Sharedram uint64
+ Bufferram uint64
+ Totalswap uint64
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+ Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+ X_f [0]int8
+ Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+ Sysname [65]int8
+ Nodename [65]int8
+ Release [65]int8
+ Version [65]int8
+ Machine [65]int8
+ Domainname [65]int8
+}
+
+type Ustat_t struct {
+ Tfree int32
+ Pad_cgo_0 [4]byte
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+ Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+ Events uint32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [32]uint8
+ Pad_cgo_0 [3]byte
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
new file mode 100644
index 000000000..4218170a9
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
@@ -0,0 +1,634 @@
+// +build ppc64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec 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 RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+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
+ SizeofSockaddrHCI = 0x6
+ 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
+ X_padFd int32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [19]uint8
+ Line uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
new file mode 100644
index 000000000..7db4c78c6
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
@@ -0,0 +1,634 @@
+// +build ppc64le,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec 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 RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+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
+ SizeofSockaddrHCI = 0x6
+ 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
+ X_padFd int32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [19]uint8
+ Line uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
new file mode 100644
index 000000000..76ee57cbf
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
@@ -0,0 +1,649 @@
+// +build s390x,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs -- -fsigned-char types_linux.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int64
+}
+
+type Timex struct {
+ Modes uint32
+ _ [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+ _ [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+ Time Timeval
+ Tick int64
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+ _ [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+ _ [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+ Utime int64
+ Stime int64
+ Cutime int64
+ Cstime int64
+}
+
+type Utimbuf struct {
+ Actime int64
+ Modtime int64
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev uint64
+ Ino uint64
+ Nlink uint64
+ Mode uint32
+ Uid uint32
+ Gid uint32
+ _ int32
+ Rdev uint64
+ Size int64
+ Atim Timespec
+ Mtim Timespec
+ Ctim Timespec
+ Blksize int64
+ Blocks int64
+ _ [3]int64
+}
+
+type Statfs_t struct {
+ Type uint32
+ Bsize uint32
+ Blocks uint64
+ Bfree uint64
+ Bavail uint64
+ Files uint64
+ Ffree uint64
+ Fsid Fsid
+ Namelen uint32
+ Frsize uint32
+ Flags uint32
+ Spare [4]uint32
+ _ [4]byte
+}
+
+type Dirent struct {
+ Ino uint64
+ Off int64
+ Reclen uint16
+ Type uint8
+ Name [256]int8
+ _ [5]byte
+}
+
+type Fsid struct {
+ _ [2]int32
+}
+
+type Flock_t struct {
+ Type int16
+ Whence int16
+ _ [4]byte
+ Start int64
+ Len int64
+ Pid int32
+ _ [4]byte
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x6
+ FADV_NOREUSE = 0x7
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type 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
+ _ [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+ _ [4]byte
+}
+
+type Cmsghdr struct {
+ Len uint64
+ Level int32
+ Type int32
+}
+
+type Inet4Pktinfo struct {
+ Ifindex int32
+ Spec_dst [4]byte /* in_addr */
+ Addr [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Data [8]uint32
+}
+
+type Ucred struct {
+ Pid int32
+ Uid uint32
+ Gid uint32
+}
+
+type TCPInfo struct {
+ State uint8
+ Ca_state uint8
+ Retransmits uint8
+ Probes uint8
+ Backoff uint8
+ Options uint8
+ _ [2]byte
+ Rto uint32
+ Ato uint32
+ Snd_mss uint32
+ Rcv_mss uint32
+ Unacked uint32
+ Sacked uint32
+ Lost uint32
+ Retrans uint32
+ Fackets uint32
+ Last_data_sent uint32
+ Last_ack_sent uint32
+ Last_data_recv uint32
+ Last_ack_recv uint32
+ Pmtu uint32
+ Rcv_ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Snd_ssthresh uint32
+ Snd_cwnd uint32
+ Advmss uint32
+ Reordering uint32
+ Rcv_rtt uint32
+ Rcv_space uint32
+ Total_retrans uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x70
+ SizeofSockaddrUnix = 0x6e
+ SizeofSockaddrLinklayer = 0x14
+ SizeofSockaddrNetlink = 0xc
+ SizeofSockaddrHCI = 0x6
+ 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 = 0x27
+ RT_SCOPE_UNIVERSE = 0x0
+ RT_SCOPE_SITE = 0xc8
+ RT_SCOPE_LINK = 0xfd
+ RT_SCOPE_HOST = 0xfe
+ RT_SCOPE_NOWHERE = 0xff
+ RT_TABLE_UNSPEC = 0x0
+ RT_TABLE_COMPAT = 0xfc
+ RT_TABLE_DEFAULT = 0xfd
+ RT_TABLE_MAIN = 0xfe
+ RT_TABLE_LOCAL = 0xff
+ RT_TABLE_MAX = 0xffffffff
+ RTA_UNSPEC = 0x0
+ RTA_DST = 0x1
+ RTA_SRC = 0x2
+ RTA_IIF = 0x3
+ RTA_OIF = 0x4
+ RTA_GATEWAY = 0x5
+ RTA_PRIORITY = 0x6
+ RTA_PREFSRC = 0x7
+ RTA_METRICS = 0x8
+ RTA_MULTIPATH = 0x9
+ RTA_FLOW = 0xb
+ RTA_CACHEINFO = 0xc
+ RTA_TABLE = 0xf
+ RTN_UNSPEC = 0x0
+ RTN_UNICAST = 0x1
+ RTN_LOCAL = 0x2
+ RTN_BROADCAST = 0x3
+ RTN_ANYCAST = 0x4
+ RTN_MULTICAST = 0x5
+ RTN_BLACKHOLE = 0x6
+ RTN_UNREACHABLE = 0x7
+ RTN_PROHIBIT = 0x8
+ RTN_THROW = 0x9
+ RTN_NAT = 0xa
+ RTN_XRESOLVE = 0xb
+ RTNLGRP_NONE = 0x0
+ RTNLGRP_LINK = 0x1
+ RTNLGRP_NOTIFY = 0x2
+ RTNLGRP_NEIGH = 0x3
+ RTNLGRP_TC = 0x4
+ RTNLGRP_IPV4_IFADDR = 0x5
+ RTNLGRP_IPV4_MROUTE = 0x6
+ RTNLGRP_IPV4_ROUTE = 0x7
+ RTNLGRP_IPV4_RULE = 0x8
+ RTNLGRP_IPV6_IFADDR = 0x9
+ RTNLGRP_IPV6_MROUTE = 0xa
+ RTNLGRP_IPV6_ROUTE = 0xb
+ RTNLGRP_IPV6_IFINFO = 0xc
+ RTNLGRP_IPV6_PREFIX = 0x12
+ RTNLGRP_IPV6_RULE = 0x13
+ RTNLGRP_ND_USEROPT = 0x14
+ SizeofNlMsghdr = 0x10
+ SizeofNlMsgerr = 0x14
+ SizeofRtGenmsg = 0x1
+ SizeofNlAttr = 0x4
+ SizeofRtAttr = 0x4
+ SizeofIfInfomsg = 0x10
+ SizeofIfAddrmsg = 0x8
+ SizeofRtMsg = 0xc
+ SizeofRtNexthop = 0x8
+)
+
+type NlMsghdr struct {
+ Len uint32
+ Type uint16
+ Flags uint16
+ Seq uint32
+ Pid uint32
+}
+
+type NlMsgerr struct {
+ Error int32
+ Msg NlMsghdr
+}
+
+type RtGenmsg struct {
+ Family uint8
+}
+
+type NlAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type RtAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type IfInfomsg struct {
+ Family uint8
+ _ uint8
+ Type uint16
+ Index int32
+ Flags uint32
+ Change uint32
+}
+
+type IfAddrmsg struct {
+ Family uint8
+ Prefixlen uint8
+ Flags uint8
+ Scope uint8
+ Index uint32
+}
+
+type RtMsg struct {
+ Family uint8
+ Dst_len uint8
+ Src_len uint8
+ Tos uint8
+ Table uint8
+ Protocol uint8
+ Scope uint8
+ Type uint8
+ Flags uint32
+}
+
+type RtNexthop struct {
+ Len uint16
+ Flags uint8
+ Hops uint8
+ Ifindex int32
+}
+
+const (
+ SizeofSockFilter = 0x8
+ SizeofSockFprog = 0x10
+)
+
+type SockFilter struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type SockFprog struct {
+ Len uint16
+ _ [6]byte
+ Filter *SockFilter
+}
+
+type InotifyEvent struct {
+ Wd int32
+ Mask uint32
+ Cookie uint32
+ Len uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+ Psw PtracePsw
+ Gprs [16]uint64
+ Acrs [16]uint32
+ Orig_gpr2 uint64
+ Fp_regs PtraceFpregs
+ Per_info PtracePer
+ Ieee_instruction_pointer uint64
+}
+
+type PtracePsw struct {
+ Mask uint64
+ Addr uint64
+}
+
+type PtraceFpregs struct {
+ Fpc uint32
+ _ [4]byte
+ Fprs [16]float64
+}
+
+type PtracePer struct {
+ _ [0]uint64
+ _ [24]byte
+ _ [8]byte
+ Starting_addr uint64
+ Ending_addr uint64
+ Perc_atmid uint16
+ _ [6]byte
+ Address uint64
+ Access_id uint8
+ _ [7]byte
+}
+
+type FdSet struct {
+ Bits [16]int64
+}
+
+type Sysinfo_t struct {
+ Uptime int64
+ Loads [3]uint64
+ Totalram uint64
+ Freeram uint64
+ Sharedram uint64
+ Bufferram uint64
+ Totalswap uint64
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+ _ [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+ _ [0]int8
+ _ [4]byte
+}
+
+type Utsname struct {
+ Sysname [65]int8
+ Nodename [65]int8
+ Release [65]int8
+ Version [65]int8
+ Machine [65]int8
+ Domainname [65]int8
+}
+
+type Ustat_t struct {
+ Tfree int32
+ _ [4]byte
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+ _ [4]byte
+}
+
+type EpollEvent struct {
+ Events uint32
+ _ int32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x2000
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
new file mode 100644
index 000000000..7d18b704a
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
@@ -0,0 +1,640 @@
+// +build sparc64,linux
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_linux.go | go run mkpost.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x1000
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int32
+ Pad_cgo_0 [4]byte
+}
+
+type Timex struct {
+ Modes uint32
+ Pad_cgo_0 [4]byte
+ Offset int64
+ Freq int64
+ Maxerror int64
+ Esterror int64
+ Status int32
+ Pad_cgo_1 [4]byte
+ Constant int64
+ Precision int64
+ Tolerance int64
+ Time Timeval
+ Tick int64
+ Ppsfreq int64
+ Jitter int64
+ Shift int32
+ Pad_cgo_2 [4]byte
+ Stabil int64
+ Jitcnt int64
+ Calcnt int64
+ Errcnt int64
+ Stbcnt int64
+ Tai int32
+ Pad_cgo_3 [44]byte
+}
+
+type Time_t int64
+
+type Tms struct {
+ Utime int64
+ Stime int64
+ Cutime int64
+ Cstime int64
+}
+
+type Utimbuf struct {
+ Actime int64
+ Modtime int64
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+type Stat_t struct {
+ Dev uint64
+ X__pad1 uint16
+ Pad_cgo_0 [6]byte
+ Ino uint64
+ Mode uint32
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Rdev uint64
+ X__pad2 uint16
+ Pad_cgo_1 [6]byte
+ Size int64
+ Blksize int64
+ Blocks int64
+ Atim Timespec
+ Mtim Timespec
+ Ctim Timespec
+ X__glibc_reserved4 uint64
+ X__glibc_reserved5 uint64
+}
+
+type Statfs_t struct {
+ Type int64
+ Bsize int64
+ Blocks uint64
+ Bfree uint64
+ Bavail uint64
+ Files uint64
+ Ffree uint64
+ Fsid Fsid
+ Namelen int64
+ Frsize int64
+ Flags int64
+ Spare [4]int64
+}
+
+type Dirent struct {
+ Ino uint64
+ Off int64
+ Reclen uint16
+ Type uint8
+ Name [256]int8
+ Pad_cgo_0 [5]byte
+}
+
+type Fsid struct {
+ X__val [2]int32
+}
+
+type Flock_t struct {
+ Type int16
+ Whence int16
+ Pad_cgo_0 [4]byte
+ Start int64
+ Len int64
+ Pid int32
+ X__glibc_reserved int16
+ Pad_cgo_1 [2]byte
+}
+
+const (
+ FADV_NORMAL = 0x0
+ FADV_RANDOM = 0x1
+ FADV_SEQUENTIAL = 0x2
+ FADV_WILLNEED = 0x3
+ FADV_DONTNEED = 0x4
+ FADV_NOREUSE = 0x5
+)
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]uint8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrLinklayer struct {
+ Family uint16
+ Protocol uint16
+ Ifindex int32
+ Hatype uint16
+ Pkttype uint8
+ Halen uint8
+ Addr [8]uint8
+}
+
+type RawSockaddrNetlink struct {
+ Family uint16
+ Pad uint16
+ Pid uint32
+ Groups uint32
+}
+
+type RawSockaddrHCI struct {
+ Family uint16
+ Dev uint16
+ Channel uint16
+}
+
+type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [96]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *byte
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPMreqn struct {
+ Multiaddr [4]byte /* in_addr */
+ Address [4]byte /* in_addr */
+ Ifindex int32
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen uint64
+ Control *byte
+ Controllen uint64
+ Flags int32
+ Pad_cgo_1 [4]byte
+}
+
+type Cmsghdr struct {
+ Len uint64
+ Level int32
+ Type int32
+}
+
+type Inet4Pktinfo struct {
+ Ifindex int32
+ Spec_dst [4]byte /* in_addr */
+ Addr [4]byte /* in_addr */
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ Data [8]uint32
+}
+
+type Ucred struct {
+ Pid int32
+ Uid uint32
+ Gid uint32
+}
+
+type TCPInfo struct {
+ State uint8
+ Ca_state uint8
+ Retransmits uint8
+ Probes uint8
+ Backoff uint8
+ Options uint8
+ Pad_cgo_0 [2]byte
+ Rto uint32
+ Ato uint32
+ Snd_mss uint32
+ Rcv_mss uint32
+ Unacked uint32
+ Sacked uint32
+ Lost uint32
+ Retrans uint32
+ Fackets uint32
+ Last_data_sent uint32
+ Last_ack_sent uint32
+ Last_data_recv uint32
+ Last_ack_recv uint32
+ Pmtu uint32
+ Rcv_ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Snd_ssthresh uint32
+ Snd_cwnd uint32
+ Advmss uint32
+ Reordering uint32
+ Rcv_rtt uint32
+ Rcv_space uint32
+ Total_retrans uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x1c
+ SizeofSockaddrAny = 0x70
+ SizeofSockaddrUnix = 0x6e
+ SizeofSockaddrLinklayer = 0x14
+ SizeofSockaddrNetlink = 0xc
+ SizeofSockaddrHCI = 0x6
+ SizeofLinger = 0x8
+ SizeofIPMreq = 0x8
+ SizeofIPMreqn = 0xc
+ SizeofIPv6Mreq = 0x14
+ SizeofMsghdr = 0x38
+ SizeofCmsghdr = 0x10
+ SizeofInet4Pktinfo = 0xc
+ SizeofInet6Pktinfo = 0x14
+ SizeofIPv6MTUInfo = 0x20
+ SizeofICMPv6Filter = 0x20
+ SizeofUcred = 0xc
+ SizeofTCPInfo = 0x68
+)
+
+const (
+ IFA_UNSPEC = 0x0
+ IFA_ADDRESS = 0x1
+ IFA_LOCAL = 0x2
+ IFA_LABEL = 0x3
+ IFA_BROADCAST = 0x4
+ IFA_ANYCAST = 0x5
+ IFA_CACHEINFO = 0x6
+ IFA_MULTICAST = 0x7
+ IFLA_UNSPEC = 0x0
+ IFLA_ADDRESS = 0x1
+ IFLA_BROADCAST = 0x2
+ IFLA_IFNAME = 0x3
+ IFLA_MTU = 0x4
+ IFLA_LINK = 0x5
+ IFLA_QDISC = 0x6
+ IFLA_STATS = 0x7
+ IFLA_COST = 0x8
+ IFLA_PRIORITY = 0x9
+ IFLA_MASTER = 0xa
+ IFLA_WIRELESS = 0xb
+ IFLA_PROTINFO = 0xc
+ IFLA_TXQLEN = 0xd
+ IFLA_MAP = 0xe
+ IFLA_WEIGHT = 0xf
+ IFLA_OPERSTATE = 0x10
+ IFLA_LINKMODE = 0x11
+ IFLA_LINKINFO = 0x12
+ IFLA_NET_NS_PID = 0x13
+ IFLA_IFALIAS = 0x14
+ IFLA_MAX = 0x2a
+ RT_SCOPE_UNIVERSE = 0x0
+ RT_SCOPE_SITE = 0xc8
+ RT_SCOPE_LINK = 0xfd
+ RT_SCOPE_HOST = 0xfe
+ RT_SCOPE_NOWHERE = 0xff
+ RT_TABLE_UNSPEC = 0x0
+ RT_TABLE_COMPAT = 0xfc
+ RT_TABLE_DEFAULT = 0xfd
+ RT_TABLE_MAIN = 0xfe
+ RT_TABLE_LOCAL = 0xff
+ RT_TABLE_MAX = 0xffffffff
+ RTA_UNSPEC = 0x0
+ RTA_DST = 0x1
+ RTA_SRC = 0x2
+ RTA_IIF = 0x3
+ RTA_OIF = 0x4
+ RTA_GATEWAY = 0x5
+ RTA_PRIORITY = 0x6
+ RTA_PREFSRC = 0x7
+ RTA_METRICS = 0x8
+ RTA_MULTIPATH = 0x9
+ RTA_FLOW = 0xb
+ RTA_CACHEINFO = 0xc
+ RTA_TABLE = 0xf
+ RTN_UNSPEC = 0x0
+ RTN_UNICAST = 0x1
+ RTN_LOCAL = 0x2
+ RTN_BROADCAST = 0x3
+ RTN_ANYCAST = 0x4
+ RTN_MULTICAST = 0x5
+ RTN_BLACKHOLE = 0x6
+ RTN_UNREACHABLE = 0x7
+ RTN_PROHIBIT = 0x8
+ RTN_THROW = 0x9
+ RTN_NAT = 0xa
+ RTN_XRESOLVE = 0xb
+ RTNLGRP_NONE = 0x0
+ RTNLGRP_LINK = 0x1
+ RTNLGRP_NOTIFY = 0x2
+ RTNLGRP_NEIGH = 0x3
+ RTNLGRP_TC = 0x4
+ RTNLGRP_IPV4_IFADDR = 0x5
+ RTNLGRP_IPV4_MROUTE = 0x6
+ RTNLGRP_IPV4_ROUTE = 0x7
+ RTNLGRP_IPV4_RULE = 0x8
+ RTNLGRP_IPV6_IFADDR = 0x9
+ RTNLGRP_IPV6_MROUTE = 0xa
+ RTNLGRP_IPV6_ROUTE = 0xb
+ RTNLGRP_IPV6_IFINFO = 0xc
+ RTNLGRP_IPV6_PREFIX = 0x12
+ RTNLGRP_IPV6_RULE = 0x13
+ RTNLGRP_ND_USEROPT = 0x14
+ SizeofNlMsghdr = 0x10
+ SizeofNlMsgerr = 0x14
+ SizeofRtGenmsg = 0x1
+ SizeofNlAttr = 0x4
+ SizeofRtAttr = 0x4
+ SizeofIfInfomsg = 0x10
+ SizeofIfAddrmsg = 0x8
+ SizeofRtMsg = 0xc
+ SizeofRtNexthop = 0x8
+)
+
+type NlMsghdr struct {
+ Len uint32
+ Type uint16
+ Flags uint16
+ Seq uint32
+ Pid uint32
+}
+
+type NlMsgerr struct {
+ Error int32
+ Msg NlMsghdr
+}
+
+type RtGenmsg struct {
+ Family uint8
+}
+
+type NlAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type RtAttr struct {
+ Len uint16
+ Type uint16
+}
+
+type IfInfomsg struct {
+ Family uint8
+ X__ifi_pad uint8
+ Type uint16
+ Index int32
+ Flags uint32
+ Change uint32
+}
+
+type IfAddrmsg struct {
+ Family uint8
+ Prefixlen uint8
+ Flags uint8
+ Scope uint8
+ Index uint32
+}
+
+type RtMsg struct {
+ Family uint8
+ Dst_len uint8
+ Src_len uint8
+ Tos uint8
+ Table uint8
+ Protocol uint8
+ Scope uint8
+ Type uint8
+ Flags uint32
+}
+
+type RtNexthop struct {
+ Len uint16
+ Flags uint8
+ Hops uint8
+ Ifindex int32
+}
+
+const (
+ SizeofSockFilter = 0x8
+ SizeofSockFprog = 0x10
+)
+
+type SockFilter struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type SockFprog struct {
+ Len uint16
+ Pad_cgo_0 [6]byte
+ Filter *SockFilter
+}
+
+type InotifyEvent struct {
+ Wd int32
+ Mask uint32
+ Cookie uint32
+ Len uint32
+}
+
+const SizeofInotifyEvent = 0x10
+
+type PtraceRegs struct {
+ Regs [16]uint64
+ Tstate uint64
+ Tpc uint64
+ Tnpc uint64
+ Y uint32
+ Magic uint32
+}
+
+type ptracePsw struct {
+}
+
+type ptraceFpregs struct {
+}
+
+type ptracePer struct {
+}
+
+type FdSet struct {
+ Bits [16]int64
+}
+
+type Sysinfo_t struct {
+ Uptime int64
+ Loads [3]uint64
+ Totalram uint64
+ Freeram uint64
+ Sharedram uint64
+ Bufferram uint64
+ Totalswap uint64
+ Freeswap uint64
+ Procs uint16
+ Pad uint16
+ Pad_cgo_0 [4]byte
+ Totalhigh uint64
+ Freehigh uint64
+ Unit uint32
+ X_f [0]int8
+ Pad_cgo_1 [4]byte
+}
+
+type Utsname struct {
+ Sysname [65]int8
+ Nodename [65]int8
+ Release [65]int8
+ Version [65]int8
+ Machine [65]int8
+ Domainname [65]int8
+}
+
+type Ustat_t struct {
+ Tfree int32
+ Pad_cgo_0 [4]byte
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+ Pad_cgo_1 [4]byte
+}
+
+type EpollEvent struct {
+ Events uint32
+ X_padFd int32
+ Fd int32
+ Pad int32
+}
+
+const (
+ AT_FDCWD = -0x64
+ AT_REMOVEDIR = 0x200
+ AT_SYMLINK_FOLLOW = 0x400
+ AT_SYMLINK_NOFOLLOW = 0x100
+)
+
+type PollFd struct {
+ Fd int32
+ Events int16
+ Revents int16
+}
+
+const (
+ POLLIN = 0x1
+ POLLPRI = 0x2
+ POLLOUT = 0x4
+ POLLRDHUP = 0x800
+ POLLERR = 0x8
+ POLLHUP = 0x10
+ POLLNVAL = 0x20
+)
+
+type Sigset_t struct {
+ X__val [16]uint64
+}
+
+const _SC_PAGESIZE = 0x1e
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Line uint8
+ Cc [19]uint8
+ Ispeed uint32
+ Ospeed uint32
+}
diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
new file mode 100644
index 000000000..caf755fb8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go
@@ -0,0 +1,396 @@
+// 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/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
new file mode 100644
index 000000000..91b4a5305
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go
@@ -0,0 +1,403 @@
+// 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/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
new file mode 100644
index 000000000..c0758f9d3
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go
@@ -0,0 +1,401 @@
+// 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/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
new file mode 100644
index 000000000..860a46979
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go
@@ -0,0 +1,441 @@
+// 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/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
new file mode 100644
index 000000000..23c52727f
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go
@@ -0,0 +1,448 @@
+// 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/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
new file mode 100644
index 000000000..02777e4d8
--- /dev/null
+++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go
@@ -0,0 +1,423 @@
+// +build amd64,solaris
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs types_solaris.go | go run mkpost.go
+
+package unix
+
+const (
+ sizeofPtr = 0x8
+ sizeofShort = 0x2
+ sizeofInt = 0x4
+ sizeofLong = 0x8
+ sizeofLongLong = 0x8
+ PathMax = 0x400
+ MaxHostNameLen = 0x100
+)
+
+type (
+ _C_short int16
+ _C_int int32
+ _C_long int64
+ _C_long_long int64
+)
+
+type Timespec struct {
+ Sec int64
+ Nsec int64
+}
+
+type Timeval struct {
+ Sec int64
+ Usec int64
+}
+
+type Timeval32 struct {
+ Sec int32
+ Usec int32
+}
+
+type Tms struct {
+ Utime int64
+ Stime int64
+ Cutime int64
+ Cstime int64
+}
+
+type Utimbuf struct {
+ Actime int64
+ Modtime int64
+}
+
+type Rusage struct {
+ Utime Timeval
+ Stime Timeval
+ Maxrss int64
+ Ixrss int64
+ Idrss int64
+ Isrss int64
+ Minflt int64
+ Majflt int64
+ Nswap int64
+ Inblock int64
+ Oublock int64
+ Msgsnd int64
+ Msgrcv int64
+ Nsignals int64
+ Nvcsw int64
+ Nivcsw int64
+}
+
+type Rlimit struct {
+ Cur uint64
+ Max uint64
+}
+
+type _Gid_t uint32
+
+const (
+ S_IFMT = 0xf000
+ S_IFIFO = 0x1000
+ S_IFCHR = 0x2000
+ S_IFDIR = 0x4000
+ S_IFBLK = 0x6000
+ S_IFREG = 0x8000
+ S_IFLNK = 0xa000
+ S_IFSOCK = 0xc000
+ S_ISUID = 0x800
+ S_ISGID = 0x400
+ S_ISVTX = 0x200
+ S_IRUSR = 0x100
+ S_IWUSR = 0x80
+ S_IXUSR = 0x40
+)
+
+type Stat_t struct {
+ Dev uint64
+ Ino uint64
+ Mode uint32
+ Nlink uint32
+ Uid uint32
+ Gid uint32
+ Rdev uint64
+ Size int64
+ Atim Timespec
+ Mtim Timespec
+ Ctim Timespec
+ Blksize int32
+ Pad_cgo_0 [4]byte
+ Blocks int64
+ Fstype [16]int8
+}
+
+type Flock_t struct {
+ Type int16
+ Whence int16
+ Pad_cgo_0 [4]byte
+ Start int64
+ Len int64
+ Sysid int32
+ Pid int32
+ Pad [4]int64
+}
+
+type Dirent struct {
+ Ino uint64
+ Off int64
+ Reclen uint16
+ Name [1]int8
+ Pad_cgo_0 [5]byte
+}
+
+type RawSockaddrInet4 struct {
+ Family uint16
+ Port uint16
+ Addr [4]byte /* in_addr */
+ Zero [8]int8
+}
+
+type RawSockaddrInet6 struct {
+ Family uint16
+ Port uint16
+ Flowinfo uint32
+ Addr [16]byte /* in6_addr */
+ Scope_id uint32
+ X__sin6_src_id uint32
+}
+
+type RawSockaddrUnix struct {
+ Family uint16
+ Path [108]int8
+}
+
+type RawSockaddrDatalink struct {
+ Family uint16
+ Index uint16
+ Type uint8
+ Nlen uint8
+ Alen uint8
+ Slen uint8
+ Data [244]int8
+}
+
+type RawSockaddr struct {
+ Family uint16
+ Data [14]int8
+}
+
+type RawSockaddrAny struct {
+ Addr RawSockaddr
+ Pad [236]int8
+}
+
+type _Socklen uint32
+
+type Linger struct {
+ Onoff int32
+ Linger int32
+}
+
+type Iovec struct {
+ Base *int8
+ Len uint64
+}
+
+type IPMreq struct {
+ Multiaddr [4]byte /* in_addr */
+ Interface [4]byte /* in_addr */
+}
+
+type IPv6Mreq struct {
+ Multiaddr [16]byte /* in6_addr */
+ Interface uint32
+}
+
+type Msghdr struct {
+ Name *byte
+ Namelen uint32
+ Pad_cgo_0 [4]byte
+ Iov *Iovec
+ Iovlen int32
+ Pad_cgo_1 [4]byte
+ Accrights *int8
+ Accrightslen int32
+ Pad_cgo_2 [4]byte
+}
+
+type Cmsghdr struct {
+ Len uint32
+ Level int32
+ Type int32
+}
+
+type Inet6Pktinfo struct {
+ Addr [16]byte /* in6_addr */
+ Ifindex uint32
+}
+
+type IPv6MTUInfo struct {
+ Addr RawSockaddrInet6
+ Mtu uint32
+}
+
+type ICMPv6Filter struct {
+ X__icmp6_filt [8]uint32
+}
+
+const (
+ SizeofSockaddrInet4 = 0x10
+ SizeofSockaddrInet6 = 0x20
+ SizeofSockaddrAny = 0xfc
+ SizeofSockaddrUnix = 0x6e
+ SizeofSockaddrDatalink = 0xfc
+ SizeofLinger = 0x8
+ SizeofIPMreq = 0x8
+ SizeofIPv6Mreq = 0x14
+ SizeofMsghdr = 0x30
+ SizeofCmsghdr = 0xc
+ SizeofInet6Pktinfo = 0x14
+ SizeofIPv6MTUInfo = 0x24
+ SizeofICMPv6Filter = 0x20
+)
+
+type FdSet struct {
+ Bits [1024]int64
+}
+
+type Utsname struct {
+ Sysname [257]int8
+ Nodename [257]int8
+ Release [257]int8
+ Version [257]int8
+ Machine [257]int8
+}
+
+type Ustat_t struct {
+ Tfree int64
+ Tinode uint64
+ Fname [6]int8
+ Fpack [6]int8
+ Pad_cgo_0 [4]byte
+}
+
+const (
+ AT_FDCWD = 0xffd19553
+ AT_SYMLINK_NOFOLLOW = 0x1000
+ AT_SYMLINK_FOLLOW = 0x2000
+ AT_REMOVEDIR = 0x1
+ AT_EACCESS = 0x4
+)
+
+const (
+ SizeofIfMsghdr = 0x54
+ SizeofIfData = 0x44
+ SizeofIfaMsghdr = 0x14
+ SizeofRtMsghdr = 0x4c
+ SizeofRtMetrics = 0x28
+)
+
+type IfMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Data IfData
+}
+
+type IfData struct {
+ Type uint8
+ Addrlen uint8
+ Hdrlen uint8
+ Pad_cgo_0 [1]byte
+ Mtu uint32
+ Metric uint32
+ Baudrate uint32
+ Ipackets uint32
+ Ierrors uint32
+ Opackets uint32
+ Oerrors uint32
+ Collisions uint32
+ Ibytes uint32
+ Obytes uint32
+ Imcasts uint32
+ Omcasts uint32
+ Iqdrops uint32
+ Noproto uint32
+ Lastchange Timeval32
+}
+
+type IfaMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Addrs int32
+ Flags int32
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Metric int32
+}
+
+type RtMsghdr struct {
+ Msglen uint16
+ Version uint8
+ Type uint8
+ Index uint16
+ Pad_cgo_0 [2]byte
+ Flags int32
+ Addrs int32
+ Pid int32
+ Seq int32
+ Errno int32
+ Use int32
+ Inits uint32
+ Rmx RtMetrics
+}
+
+type RtMetrics struct {
+ Locks uint32
+ Mtu uint32
+ Hopcount uint32
+ Expire uint32
+ Recvpipe uint32
+ Sendpipe uint32
+ Ssthresh uint32
+ Rtt uint32
+ Rttvar uint32
+ Pksent uint32
+}
+
+const (
+ SizeofBpfVersion = 0x4
+ SizeofBpfStat = 0x80
+ SizeofBpfProgram = 0x10
+ SizeofBpfInsn = 0x8
+ SizeofBpfHdr = 0x14
+)
+
+type BpfVersion struct {
+ Major uint16
+ Minor uint16
+}
+
+type BpfStat struct {
+ Recv uint64
+ Drop uint64
+ Capt uint64
+ Padding [13]uint64
+}
+
+type BpfProgram struct {
+ Len uint32
+ Pad_cgo_0 [4]byte
+ Insns *BpfInsn
+}
+
+type BpfInsn struct {
+ Code uint16
+ Jt uint8
+ Jf uint8
+ K uint32
+}
+
+type BpfTimeval struct {
+ Sec int32
+ Usec int32
+}
+
+type BpfHdr struct {
+ Tstamp BpfTimeval
+ Caplen uint32
+ Datalen uint32
+ Hdrlen uint16
+ Pad_cgo_0 [2]byte
+}
+
+const _SC_PAGESIZE = 0xb
+
+type Termios struct {
+ Iflag uint32
+ Oflag uint32
+ Cflag uint32
+ Lflag uint32
+ Cc [19]uint8
+ Pad_cgo_0 [1]byte
+}
+
+type Termio struct {
+ Iflag uint16
+ Oflag uint16
+ Cflag uint16
+ Lflag uint16
+ Line int8
+ Cc [8]uint8
+ Pad_cgo_0 [1]byte
+}
+
+type Winsize struct {
+ Row uint16
+ Col uint16
+ Xpixel uint16
+ Ypixel uint16
+}
diff --git a/vendor/golang.org/x/text/.gitattributes b/vendor/golang.org/x/text/.gitattributes
new file mode 100644
index 000000000..d2f212e5d
--- /dev/null
+++ b/vendor/golang.org/x/text/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/vendor/golang.org/x/text/.gitignore b/vendor/golang.org/x/text/.gitignore
new file mode 100644
index 000000000..782aa6b4c
--- /dev/null
+++ b/vendor/golang.org/x/text/.gitignore
@@ -0,0 +1,3 @@
+# Add no patterns to .gitignore except for files generated by the build.
+last-change
+/DATA
diff --git a/vendor/golang.org/x/text/AUTHORS b/vendor/golang.org/x/text/AUTHORS
new file mode 100644
index 000000000..15167cd74
--- /dev/null
+++ b/vendor/golang.org/x/text/AUTHORS
@@ -0,0 +1,3 @@
+# 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/text/CONTRIBUTING.md b/vendor/golang.org/x/text/CONTRIBUTING.md
new file mode 100644
index 000000000..88dff59bc
--- /dev/null
+++ b/vendor/golang.org/x/text/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# 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/text/CONTRIBUTORS b/vendor/golang.org/x/text/CONTRIBUTORS
new file mode 100644
index 000000000..1c4577e96
--- /dev/null
+++ b/vendor/golang.org/x/text/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# 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/text/LICENSE b/vendor/golang.org/x/text/LICENSE
new file mode 100644
index 000000000..6a66aea5e
--- /dev/null
+++ b/vendor/golang.org/x/text/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/text/PATENTS b/vendor/golang.org/x/text/PATENTS
new file mode 100644
index 000000000..733099041
--- /dev/null
+++ b/vendor/golang.org/x/text/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/text/README b/vendor/golang.org/x/text/README
new file mode 100644
index 000000000..4826fe8fb
--- /dev/null
+++ b/vendor/golang.org/x/text/README
@@ -0,0 +1,23 @@
+This repository holds supplementary Go libraries for text processing, many involving Unicode.
+
+To submit changes to this repository, see http://golang.org/doc/contribute.html.
+
+To generate the tables in this repository (except for the encoding tables),
+run go generate from this directory. By default tables are generated for the
+Unicode version in core and the CLDR version defined in
+golang.org/x/text/unicode/cldr.
+
+Running go generate will as a side effect create a DATA subdirectory in this
+directory which holds all files that are used as a source for generating the
+tables. This directory will also serve as a cache.
+
+Run
+
+ go test ./...
+
+from this directory to run all tests. Add the "-tags icu" flag to also run
+ICU conformance tests (if available). This requires that you have the correct
+ICU version installed on your system.
+
+TODO:
+- updating unversioned source files. \ No newline at end of file
diff --git a/vendor/golang.org/x/text/codereview.cfg b/vendor/golang.org/x/text/codereview.cfg
new file mode 100644
index 000000000..3f8b14b64
--- /dev/null
+++ b/vendor/golang.org/x/text/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/vendor/golang.org/x/text/encoding/charmap/charmap.go b/vendor/golang.org/x/text/encoding/charmap/charmap.go
new file mode 100644
index 000000000..6e62a8374
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/charmap/charmap.go
@@ -0,0 +1,209 @@
+// 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.
+
+//go:generate go run maketables.go
+
+// Package charmap provides simple character encodings such as IBM Code Page 437
+// and Windows 1252.
+package charmap // import "golang.org/x/text/encoding/charmap"
+
+import (
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// These encodings vary only in the way clients should interpret them. Their
+// coded character set is identical and a single implementation can be shared.
+var (
+ // ISO8859_6E is the ISO 8859-6E encoding.
+ ISO8859_6E encoding.Encoding = &iso8859_6E
+
+ // ISO8859_6I is the ISO 8859-6I encoding.
+ ISO8859_6I encoding.Encoding = &iso8859_6I
+
+ // ISO8859_8E is the ISO 8859-8E encoding.
+ ISO8859_8E encoding.Encoding = &iso8859_8E
+
+ // ISO8859_8I is the ISO 8859-8I encoding.
+ ISO8859_8I encoding.Encoding = &iso8859_8I
+
+ iso8859_6E = internal.Encoding{
+ ISO8859_6,
+ "ISO-8859-6E",
+ identifier.ISO88596E,
+ }
+
+ iso8859_6I = internal.Encoding{
+ ISO8859_6,
+ "ISO-8859-6I",
+ identifier.ISO88596I,
+ }
+
+ iso8859_8E = internal.Encoding{
+ ISO8859_8,
+ "ISO-8859-8E",
+ identifier.ISO88598E,
+ }
+
+ iso8859_8I = internal.Encoding{
+ ISO8859_8,
+ "ISO-8859-8I",
+ identifier.ISO88598I,
+ }
+)
+
+// All is a list of all defined encodings in this package.
+var All = listAll
+
+// TODO: implement these encodings, in order of importance.
+// ASCII, ISO8859_1: Rather common. Close to Windows 1252.
+// ISO8859_9: Close to Windows 1254.
+
+// utf8Enc holds a rune's UTF-8 encoding in data[:len].
+type utf8Enc struct {
+ len uint8
+ data [3]byte
+}
+
+// charmap describes an 8-bit character set encoding.
+type charmap struct {
+ // name is the encoding's name.
+ name string
+ // mib is the encoding type of this encoder.
+ mib identifier.MIB
+ // asciiSuperset states whether the encoding is a superset of ASCII.
+ asciiSuperset bool
+ // low is the lower bound of the encoded byte for a non-ASCII rune. If
+ // charmap.asciiSuperset is true then this will be 0x80, otherwise 0x00.
+ low uint8
+ // replacement is the encoded replacement character.
+ replacement byte
+ // decode is the map from encoded byte to UTF-8.
+ decode [256]utf8Enc
+ // encoding is the map from runes to encoded bytes. Each entry is a
+ // uint32: the high 8 bits are the encoded byte and the low 24 bits are
+ // the rune. The table entries are sorted by ascending rune.
+ encode [256]uint32
+}
+
+func (m *charmap) NewDecoder() *encoding.Decoder {
+ return &encoding.Decoder{Transformer: charmapDecoder{charmap: m}}
+}
+
+func (m *charmap) NewEncoder() *encoding.Encoder {
+ return &encoding.Encoder{Transformer: charmapEncoder{charmap: m}}
+}
+
+func (m *charmap) String() string {
+ return m.name
+}
+
+func (m *charmap) ID() (mib identifier.MIB, other string) {
+ return m.mib, ""
+}
+
+// charmapDecoder implements transform.Transformer by decoding to UTF-8.
+type charmapDecoder struct {
+ transform.NopResetter
+ charmap *charmap
+}
+
+func (m charmapDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ for i, c := range src {
+ if m.charmap.asciiSuperset && c < utf8.RuneSelf {
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = c
+ nDst++
+ nSrc = i + 1
+ continue
+ }
+
+ decode := &m.charmap.decode[c]
+ n := int(decode.len)
+ if nDst+n > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ // It's 15% faster to avoid calling copy for these tiny slices.
+ for j := 0; j < n; j++ {
+ dst[nDst] = decode.data[j]
+ nDst++
+ }
+ nSrc = i + 1
+ }
+ return nDst, nSrc, err
+}
+
+// charmapEncoder implements transform.Transformer by encoding from UTF-8.
+type charmapEncoder struct {
+ transform.NopResetter
+ charmap *charmap
+}
+
+func (m charmapEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for nSrc < len(src) {
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ if m.charmap.asciiSuperset {
+ nSrc++
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+ }
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ } else {
+ err = internal.RepertoireError(m.charmap.replacement)
+ }
+ break
+ }
+ }
+
+ // Binary search in [low, high) for that rune in the m.charmap.encode table.
+ for low, high := int(m.charmap.low), 0x100; ; {
+ if low >= high {
+ err = internal.RepertoireError(m.charmap.replacement)
+ break loop
+ }
+ mid := (low + high) / 2
+ got := m.charmap.encode[mid]
+ gotRune := rune(got & (1<<24 - 1))
+ if gotRune < r {
+ low = mid + 1
+ } else if gotRune > r {
+ high = mid
+ } else {
+ dst[nDst] = byte(got >> 24)
+ nDst++
+ break
+ }
+ }
+ nSrc += size
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/encoding/charmap/maketables.go b/vendor/golang.org/x/text/encoding/charmap/maketables.go
new file mode 100644
index 000000000..9672c552d
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/charmap/maketables.go
@@ -0,0 +1,524 @@
+// 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 ignore
+
+package main
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "sort"
+ "strings"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/internal/gen"
+)
+
+const ascii = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" +
+ "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" +
+ ` !"#$%&'()*+,-./0123456789:;<=>?` +
+ `@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` +
+ "`abcdefghijklmnopqrstuvwxyz{|}~\u007f"
+
+var encodings = []struct {
+ name string
+ mib string
+ comment string
+ varName string
+ replacement byte
+ mapping string
+}{
+ {
+ "IBM Code Page 437",
+ "PC8CodePage437",
+ "",
+ "CodePage437",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM437-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 850",
+ "PC850Multilingual",
+ "",
+ "CodePage850",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM850-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 852",
+ "PCp852",
+ "",
+ "CodePage852",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM852-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 855",
+ "IBM855",
+ "",
+ "CodePage855",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM855-2.1.2.ucm",
+ },
+ {
+ "Windows Code Page 858", // PC latin1 with Euro
+ "IBM00858",
+ "",
+ "CodePage858",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/windows-858-2000.ucm",
+ },
+ {
+ "IBM Code Page 860",
+ "IBM860",
+ "",
+ "CodePage860",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM860-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 862",
+ "PC862LatinHebrew",
+ "",
+ "CodePage862",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM862-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 863",
+ "IBM863",
+ "",
+ "CodePage863",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM863-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 865",
+ "IBM865",
+ "",
+ "CodePage865",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/glibc-IBM865-2.1.2.ucm",
+ },
+ {
+ "IBM Code Page 866",
+ "IBM866",
+ "",
+ "CodePage866",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-ibm866.txt",
+ },
+ {
+ "ISO 8859-1",
+ "ISOLatin1",
+ "",
+ "ISO8859_1",
+ encoding.ASCIISub,
+ "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/iso-8859_1-1998.ucm",
+ },
+ {
+ "ISO 8859-2",
+ "ISOLatin2",
+ "",
+ "ISO8859_2",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-2.txt",
+ },
+ {
+ "ISO 8859-3",
+ "ISOLatin3",
+ "",
+ "ISO8859_3",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-3.txt",
+ },
+ {
+ "ISO 8859-4",
+ "ISOLatin4",
+ "",
+ "ISO8859_4",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-4.txt",
+ },
+ {
+ "ISO 8859-5",
+ "ISOLatinCyrillic",
+ "",
+ "ISO8859_5",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-5.txt",
+ },
+ {
+ "ISO 8859-6",
+ "ISOLatinArabic",
+ "",
+ "ISO8859_6,ISO8859_6E,ISO8859_6I",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-6.txt",
+ },
+ {
+ "ISO 8859-7",
+ "ISOLatinGreek",
+ "",
+ "ISO8859_7",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-7.txt",
+ },
+ {
+ "ISO 8859-8",
+ "ISOLatinHebrew",
+ "",
+ "ISO8859_8,ISO8859_8E,ISO8859_8I",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-8.txt",
+ },
+ {
+ "ISO 8859-10",
+ "ISOLatin6",
+ "",
+ "ISO8859_10",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-10.txt",
+ },
+ {
+ "ISO 8859-13",
+ "ISO885913",
+ "",
+ "ISO8859_13",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-13.txt",
+ },
+ {
+ "ISO 8859-14",
+ "ISO885914",
+ "",
+ "ISO8859_14",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-14.txt",
+ },
+ {
+ "ISO 8859-15",
+ "ISO885915",
+ "",
+ "ISO8859_15",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-15.txt",
+ },
+ {
+ "ISO 8859-16",
+ "ISO885916",
+ "",
+ "ISO8859_16",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-iso-8859-16.txt",
+ },
+ {
+ "KOI8-R",
+ "KOI8R",
+ "",
+ "KOI8R",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-koi8-r.txt",
+ },
+ {
+ "KOI8-U",
+ "KOI8U",
+ "",
+ "KOI8U",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-koi8-u.txt",
+ },
+ {
+ "Macintosh",
+ "Macintosh",
+ "",
+ "Macintosh",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-macintosh.txt",
+ },
+ {
+ "Macintosh Cyrillic",
+ "MacintoshCyrillic",
+ "",
+ "MacintoshCyrillic",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-x-mac-cyrillic.txt",
+ },
+ {
+ "Windows 874",
+ "Windows874",
+ "",
+ "Windows874",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-874.txt",
+ },
+ {
+ "Windows 1250",
+ "Windows1250",
+ "",
+ "Windows1250",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1250.txt",
+ },
+ {
+ "Windows 1251",
+ "Windows1251",
+ "",
+ "Windows1251",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1251.txt",
+ },
+ {
+ "Windows 1252",
+ "Windows1252",
+ "",
+ "Windows1252",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1252.txt",
+ },
+ {
+ "Windows 1253",
+ "Windows1253",
+ "",
+ "Windows1253",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1253.txt",
+ },
+ {
+ "Windows 1254",
+ "Windows1254",
+ "",
+ "Windows1254",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1254.txt",
+ },
+ {
+ "Windows 1255",
+ "Windows1255",
+ "",
+ "Windows1255",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1255.txt",
+ },
+ {
+ "Windows 1256",
+ "Windows1256",
+ "",
+ "Windows1256",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1256.txt",
+ },
+ {
+ "Windows 1257",
+ "Windows1257",
+ "",
+ "Windows1257",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1257.txt",
+ },
+ {
+ "Windows 1258",
+ "Windows1258",
+ "",
+ "Windows1258",
+ encoding.ASCIISub,
+ "http://encoding.spec.whatwg.org/index-windows-1258.txt",
+ },
+ {
+ "X-User-Defined",
+ "XUserDefined",
+ "It is defined at http://encoding.spec.whatwg.org/#x-user-defined",
+ "XUserDefined",
+ encoding.ASCIISub,
+ ascii +
+ "\uf780\uf781\uf782\uf783\uf784\uf785\uf786\uf787" +
+ "\uf788\uf789\uf78a\uf78b\uf78c\uf78d\uf78e\uf78f" +
+ "\uf790\uf791\uf792\uf793\uf794\uf795\uf796\uf797" +
+ "\uf798\uf799\uf79a\uf79b\uf79c\uf79d\uf79e\uf79f" +
+ "\uf7a0\uf7a1\uf7a2\uf7a3\uf7a4\uf7a5\uf7a6\uf7a7" +
+ "\uf7a8\uf7a9\uf7aa\uf7ab\uf7ac\uf7ad\uf7ae\uf7af" +
+ "\uf7b0\uf7b1\uf7b2\uf7b3\uf7b4\uf7b5\uf7b6\uf7b7" +
+ "\uf7b8\uf7b9\uf7ba\uf7bb\uf7bc\uf7bd\uf7be\uf7bf" +
+ "\uf7c0\uf7c1\uf7c2\uf7c3\uf7c4\uf7c5\uf7c6\uf7c7" +
+ "\uf7c8\uf7c9\uf7ca\uf7cb\uf7cc\uf7cd\uf7ce\uf7cf" +
+ "\uf7d0\uf7d1\uf7d2\uf7d3\uf7d4\uf7d5\uf7d6\uf7d7" +
+ "\uf7d8\uf7d9\uf7da\uf7db\uf7dc\uf7dd\uf7de\uf7df" +
+ "\uf7e0\uf7e1\uf7e2\uf7e3\uf7e4\uf7e5\uf7e6\uf7e7" +
+ "\uf7e8\uf7e9\uf7ea\uf7eb\uf7ec\uf7ed\uf7ee\uf7ef" +
+ "\uf7f0\uf7f1\uf7f2\uf7f3\uf7f4\uf7f5\uf7f6\uf7f7" +
+ "\uf7f8\uf7f9\uf7fa\uf7fb\uf7fc\uf7fd\uf7fe\uf7ff",
+ },
+}
+
+func getWHATWG(url string) string {
+ res, err := http.Get(url)
+ if err != nil {
+ log.Fatalf("%q: Get: %v", url, err)
+ }
+ defer res.Body.Close()
+
+ mapping := make([]rune, 128)
+ for i := range mapping {
+ mapping[i] = '\ufffd'
+ }
+
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := 0, 0
+ if _, err := fmt.Sscanf(s, "%d\t0x%x", &x, &y); err != nil {
+ log.Fatalf("could not parse %q", s)
+ }
+ if x < 0 || 128 <= x {
+ log.Fatalf("code %d is out of range", x)
+ }
+ if 0x80 <= y && y < 0xa0 {
+ // We diverge from the WHATWG spec by mapping control characters
+ // in the range [0x80, 0xa0) to U+FFFD.
+ continue
+ }
+ mapping[x] = rune(y)
+ }
+ return ascii + string(mapping)
+}
+
+func getUCM(url string) string {
+ res, err := http.Get(url)
+ if err != nil {
+ log.Fatalf("%q: Get: %v", url, err)
+ }
+ defer res.Body.Close()
+
+ mapping := make([]rune, 256)
+ for i := range mapping {
+ mapping[i] = '\ufffd'
+ }
+
+ charsFound := 0
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ var c byte
+ var r rune
+ if _, err := fmt.Sscanf(s, `<U%x> \x%x |0`, &r, &c); err != nil {
+ continue
+ }
+ mapping[c] = r
+ charsFound++
+ }
+
+ if charsFound < 200 {
+ log.Fatalf("%q: only %d characters found (wrong page format?)", url, charsFound)
+ }
+
+ return string(mapping)
+}
+
+func main() {
+ mibs := map[string]bool{}
+ all := []string{}
+
+ w := gen.NewCodeWriter()
+ defer w.WriteGoFile("tables.go", "charmap")
+
+ printf := func(s string, a ...interface{}) { fmt.Fprintf(w, s, a...) }
+
+ printf("import (\n")
+ printf("\t\"golang.org/x/text/encoding\"\n")
+ printf("\t\"golang.org/x/text/encoding/internal/identifier\"\n")
+ printf(")\n\n")
+ for _, e := range encodings {
+ varNames := strings.Split(e.varName, ",")
+ all = append(all, varNames...)
+ varName := varNames[0]
+ switch {
+ case strings.HasPrefix(e.mapping, "http://encoding.spec.whatwg.org/"):
+ e.mapping = getWHATWG(e.mapping)
+ case strings.HasPrefix(e.mapping, "http://source.icu-project.org/repos/icu/data/trunk/charset/data/ucm/"):
+ e.mapping = getUCM(e.mapping)
+ }
+
+ asciiSuperset, low := strings.HasPrefix(e.mapping, ascii), 0x00
+ if asciiSuperset {
+ low = 0x80
+ }
+ lvn := 1
+ if strings.HasPrefix(varName, "ISO") || strings.HasPrefix(varName, "KOI") {
+ lvn = 3
+ }
+ lowerVarName := strings.ToLower(varName[:lvn]) + varName[lvn:]
+ printf("// %s is the %s encoding.\n", varName, e.name)
+ if e.comment != "" {
+ printf("//\n// %s\n", e.comment)
+ }
+ printf("var %s encoding.Encoding = &%s\n\nvar %s = charmap{\nname: %q,\n",
+ varName, lowerVarName, lowerVarName, e.name)
+ if mibs[e.mib] {
+ log.Fatalf("MIB type %q declared multiple times.", e.mib)
+ }
+ printf("mib: identifier.%s,\n", e.mib)
+ printf("asciiSuperset: %t,\n", asciiSuperset)
+ printf("low: 0x%02x,\n", low)
+ printf("replacement: 0x%02x,\n", e.replacement)
+
+ printf("decode: [256]utf8Enc{\n")
+ i, backMapping := 0, map[rune]byte{}
+ for _, c := range e.mapping {
+ if _, ok := backMapping[c]; !ok && c != utf8.RuneError {
+ backMapping[c] = byte(i)
+ }
+ var buf [8]byte
+ n := utf8.EncodeRune(buf[:], c)
+ if n > 3 {
+ panic(fmt.Sprintf("rune %q (%U) is too long", c, c))
+ }
+ printf("{%d,[3]byte{0x%02x,0x%02x,0x%02x}},", n, buf[0], buf[1], buf[2])
+ if i%2 == 1 {
+ printf("\n")
+ }
+ i++
+ }
+ printf("},\n")
+
+ printf("encode: [256]uint32{\n")
+ encode := make([]uint32, 0, 256)
+ for c, i := range backMapping {
+ encode = append(encode, uint32(i)<<24|uint32(c))
+ }
+ sort.Sort(byRune(encode))
+ for len(encode) < cap(encode) {
+ encode = append(encode, encode[len(encode)-1])
+ }
+ for i, enc := range encode {
+ printf("0x%08x,", enc)
+ if i%8 == 7 {
+ printf("\n")
+ }
+ }
+ printf("},\n}\n")
+
+ // Add an estimate of the size of a single charmap{} struct value, which
+ // includes two 256 elem arrays of 4 bytes and some extra fields, which
+ // align to 3 uint64s on 64-bit architectures.
+ w.Size += 2*4*256 + 3*8
+ }
+ // TODO: add proper line breaking.
+ printf("var listAll = []encoding.Encoding{\n%s,\n}\n\n", strings.Join(all, ",\n"))
+}
+
+type byRune []uint32
+
+func (b byRune) Len() int { return len(b) }
+func (b byRune) Less(i, j int) bool { return b[i]&0xffffff < b[j]&0xffffff }
+func (b byRune) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
diff --git a/vendor/golang.org/x/text/encoding/charmap/tables.go b/vendor/golang.org/x/text/encoding/charmap/tables.go
new file mode 100644
index 000000000..5ae8dbcfa
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/charmap/tables.go
@@ -0,0 +1,6706 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package charmap
+
+import (
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/identifier"
+)
+
+// CodePage437 is the IBM Code Page 437 encoding.
+var CodePage437 encoding.Encoding = &codePage437
+
+var codePage437 = charmap{
+ name: "IBM Code Page 437",
+ mib: identifier.PC8CodePage437,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}},
+ {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}},
+ {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}},
+ {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}},
+ {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac,
+ 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc,
+ 0xab0000bd, 0xa80000bf, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1,
+ 0x990000d6, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5,
+ 0x910000e6, 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed,
+ 0x8c0000ee, 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7,
+ 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398,
+ 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3,
+ 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229,
+ 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage850 is the IBM Code Page 850 encoding.
+var CodePage850 encoding.Encoding = &codePage850
+
+var codePage850 = charmap{
+ name: "IBM Code Page 850",
+ mib: identifier.PC850Multilingual,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}},
+ {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}},
+ {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}},
+ {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}},
+ {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}},
+ {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7,
+ 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af,
+ 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7,
+ 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf,
+ 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7,
+ 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf,
+ 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7,
+ 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df,
+ 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7,
+ 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef,
+ 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7,
+ 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff,
+ 0xd5000131, 0x9f000192, 0xf2002017, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514,
+ 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551,
+ 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569,
+ 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage852 is the IBM Code Page 852 encoding.
+var CodePage852 encoding.Encoding = &codePage852
+
+var codePage852 = charmap{
+ name: "IBM Code Page 852",
+ mib: identifier.PCp852,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc5, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc5, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}},
+ {2, [3]byte{0xc4, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}},
+ {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}},
+ {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}},
+ {2, [3]byte{0xc5, 0xa5, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbe, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x9f, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x9a, 0x00}},
+ {2, [3]byte{0xc5, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {2, [3]byte{0xc4, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}},
+ {2, [3]byte{0xc4, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x8f, 0x00}}, {2, [3]byte{0xc5, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}},
+ {2, [3]byte{0xc4, 0x9b, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc5, 0xa2, 0x00}},
+ {2, [3]byte{0xc5, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc5, 0x84, 0x00}}, {2, [3]byte{0xc5, 0x88, 0x00}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}},
+ {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}},
+ {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}},
+ {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}},
+ {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}},
+ {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}},
+ {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}},
+ {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x99, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xcf0000a4, 0xf50000a7, 0xf90000a8, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xf80000b0,
+ 0xef0000b4, 0xf70000b8, 0xaf0000bb, 0xb50000c1, 0xb60000c2, 0x8e0000c4, 0x800000c7, 0x900000c9,
+ 0xd30000cb, 0xd60000cd, 0xd70000ce, 0xe00000d3, 0xe20000d4, 0x990000d6, 0x9e0000d7, 0xe90000da,
+ 0x9a0000dc, 0xed0000dd, 0xe10000df, 0xa00000e1, 0x830000e2, 0x840000e4, 0x870000e7, 0x820000e9,
+ 0x890000eb, 0xa10000ed, 0x8c0000ee, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0xa30000fa,
+ 0x810000fc, 0xec0000fd, 0xc6000102, 0xc7000103, 0xa4000104, 0xa5000105, 0x8f000106, 0x86000107,
+ 0xac00010c, 0x9f00010d, 0xd200010e, 0xd400010f, 0xd1000110, 0xd0000111, 0xa8000118, 0xa9000119,
+ 0xb700011a, 0xd800011b, 0x91000139, 0x9200013a, 0x9500013d, 0x9600013e, 0x9d000141, 0x88000142,
+ 0xe3000143, 0xe4000144, 0xd5000147, 0xe5000148, 0x8a000150, 0x8b000151, 0xe8000154, 0xea000155,
+ 0xfc000158, 0xfd000159, 0x9700015a, 0x9800015b, 0xb800015e, 0xad00015f, 0xe6000160, 0xe7000161,
+ 0xdd000162, 0xee000163, 0x9b000164, 0x9c000165, 0xde00016e, 0x8500016f, 0xeb000170, 0xfb000171,
+ 0x8d000179, 0xab00017a, 0xbd00017b, 0xbe00017c, 0xa600017d, 0xa700017e, 0xf30002c7, 0xf40002d8,
+ 0xfa0002d9, 0xf20002db, 0xf10002dd, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514,
+ 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551,
+ 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569,
+ 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage855 is the IBM Code Page 855 encoding.
+var CodePage855 encoding.Encoding = &codePage855
+
+var codePage855 = charmap{
+ name: "IBM Code Page 855",
+ mib: identifier.IBM855,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x82, 0x00}},
+ {2, [3]byte{0xd1, 0x93, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}},
+ {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x84, 0x00}},
+ {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}},
+ {2, [3]byte{0xd1, 0x97, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}},
+ {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}},
+ {2, [3]byte{0xd1, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x8a, 0x00}},
+ {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}},
+ {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}},
+ {2, [3]byte{0xd1, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xae, 0x00}},
+ {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}},
+ {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}},
+ {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}},
+ {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0x94, 0x00}},
+ {2, [3]byte{0xd0, 0xb5, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xa4, 0x00}},
+ {2, [3]byte{0xd0, 0xb3, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xd1, 0x85, 0x00}},
+ {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}},
+ {2, [3]byte{0xd0, 0x98, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xd0, 0xb9, 0x00}},
+ {2, [3]byte{0xd0, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}},
+ {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}},
+ {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}},
+ {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}},
+ {2, [3]byte{0xd0, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xd0, 0x9f, 0x00}},
+ {2, [3]byte{0xd1, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xd0, 0xaf, 0x00}}, {2, [3]byte{0xd1, 0x80, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd0, 0xa1, 0x00}}, {2, [3]byte{0xd1, 0x82, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd0, 0xa3, 0x00}}, {2, [3]byte{0xd0, 0xb6, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}},
+ {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x8c, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}},
+ {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd0, 0xab, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}},
+ {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}},
+ {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}},
+ {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd0, 0xa9, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}},
+ {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xcf0000a4, 0xfd0000a7, 0xae0000ab, 0xf00000ad, 0xaf0000bb, 0x85000401, 0x81000402,
+ 0x83000403, 0x87000404, 0x89000405, 0x8b000406, 0x8d000407, 0x8f000408, 0x91000409, 0x9300040a,
+ 0x9500040b, 0x9700040c, 0x9900040e, 0x9b00040f, 0xa1000410, 0xa3000411, 0xec000412, 0xad000413,
+ 0xa7000414, 0xa9000415, 0xea000416, 0xf4000417, 0xb8000418, 0xbe000419, 0xc700041a, 0xd100041b,
+ 0xd300041c, 0xd500041d, 0xd700041e, 0xdd00041f, 0xe2000420, 0xe4000421, 0xe6000422, 0xe8000423,
+ 0xab000424, 0xb6000425, 0xa5000426, 0xfc000427, 0xf6000428, 0xfa000429, 0x9f00042a, 0xf200042b,
+ 0xee00042c, 0xf800042d, 0x9d00042e, 0xe000042f, 0xa0000430, 0xa2000431, 0xeb000432, 0xac000433,
+ 0xa6000434, 0xa8000435, 0xe9000436, 0xf3000437, 0xb7000438, 0xbd000439, 0xc600043a, 0xd000043b,
+ 0xd200043c, 0xd400043d, 0xd600043e, 0xd800043f, 0xe1000440, 0xe3000441, 0xe5000442, 0xe7000443,
+ 0xaa000444, 0xb5000445, 0xa4000446, 0xfb000447, 0xf5000448, 0xf9000449, 0x9e00044a, 0xf100044b,
+ 0xed00044c, 0xf700044d, 0x9c00044e, 0xde00044f, 0x84000451, 0x80000452, 0x82000453, 0x86000454,
+ 0x88000455, 0x8a000456, 0x8c000457, 0x8e000458, 0x90000459, 0x9200045a, 0x9400045b, 0x9600045c,
+ 0x9800045e, 0x9a00045f, 0xef002116, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514,
+ 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551,
+ 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569,
+ 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage858 is the Windows Code Page 858 encoding.
+var CodePage858 encoding.Encoding = &codePage858
+
+var codePage858 = charmap{
+ name: "Windows Code Page 858",
+ mib: identifier.IBM00858,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}},
+ {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xae, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}},
+ {2, [3]byte{0xc2, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa5, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x90, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}},
+ {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}},
+ {2, [3]byte{0xc3, 0x8f, 0x00}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {2, [3]byte{0xc2, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xbe, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9a, 0x00}},
+ {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}},
+ {2, [3]byte{0xc2, 0xad, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x97}}, {2, [3]byte{0xc2, 0xbe, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xa8, 0x00}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0xbd0000a2, 0x9c0000a3, 0xcf0000a4, 0xbe0000a5, 0xdd0000a6, 0xf50000a7,
+ 0xf90000a8, 0xb80000a9, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf00000ad, 0xa90000ae, 0xee0000af,
+ 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xfc0000b3, 0xef0000b4, 0xe60000b5, 0xf40000b6, 0xfa0000b7,
+ 0xf70000b8, 0xfb0000b9, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xf30000be, 0xa80000bf,
+ 0xb70000c0, 0xb50000c1, 0xb60000c2, 0xc70000c3, 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7,
+ 0xd40000c8, 0x900000c9, 0xd20000ca, 0xd30000cb, 0xde0000cc, 0xd60000cd, 0xd70000ce, 0xd80000cf,
+ 0xd10000d0, 0xa50000d1, 0xe30000d2, 0xe00000d3, 0xe20000d4, 0xe50000d5, 0x990000d6, 0x9e0000d7,
+ 0x9d0000d8, 0xeb0000d9, 0xe90000da, 0xea0000db, 0x9a0000dc, 0xed0000dd, 0xe80000de, 0xe10000df,
+ 0x850000e0, 0xa00000e1, 0x830000e2, 0xc60000e3, 0x840000e4, 0x860000e5, 0x910000e6, 0x870000e7,
+ 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee, 0x8b0000ef,
+ 0xd00000f0, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0xe40000f5, 0x940000f6, 0xf60000f7,
+ 0x9b0000f8, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0xec0000fd, 0xe70000fe, 0x980000ff,
+ 0x9f000192, 0xf2002017, 0xd50020ac, 0xc4002500, 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514,
+ 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c, 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551,
+ 0xc9002554, 0xbb002557, 0xc800255a, 0xbc00255d, 0xcc002560, 0xb9002563, 0xcb002566, 0xca002569,
+ 0xce00256c, 0xdf002580, 0xdc002584, 0xdb002588, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage860 is the IBM Code Page 860 encoding.
+var CodePage860 encoding.Encoding = &codePage860
+
+var codePage860 = charmap{
+ name: "IBM Code Page 860",
+ mib: identifier.IBM860,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x8a, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x92, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}},
+ {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}},
+ {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}},
+ {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}},
+ {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0,
+ 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc, 0xab0000bd,
+ 0xa80000bf, 0x910000c0, 0x860000c1, 0x8f0000c2, 0x8e0000c3, 0x800000c7, 0x920000c8, 0x900000c9,
+ 0x890000ca, 0x980000cc, 0x8b0000cd, 0xa50000d1, 0xa90000d2, 0x9f0000d3, 0x8c0000d4, 0x990000d5,
+ 0x9d0000d9, 0x960000da, 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e3,
+ 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x8d0000ec, 0xa10000ed, 0xa40000f1, 0x950000f2,
+ 0xa20000f3, 0x930000f4, 0x940000f5, 0xf60000f7, 0x970000f9, 0xa30000fa, 0x810000fc, 0xe2000393,
+ 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0,
+ 0xe50003c3, 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e,
+ 0xef002229, 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xf4002320, 0xf5002321, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage862 is the IBM Code Page 862 encoding.
+var CodePage862 encoding.Encoding = &codePage862
+
+var codePage862 = charmap{
+ name: "IBM Code Page 862",
+ mib: identifier.PC862LatinHebrew,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}},
+ {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}},
+ {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}},
+ {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}},
+ {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}},
+ {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}},
+ {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}},
+ {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}},
+ {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}},
+ {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}},
+ {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}},
+ {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}},
+ {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}},
+ {2, [3]byte{0xd7, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}},
+ {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}},
+ {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}},
+ {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}},
+ {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0x9b0000a2, 0x9c0000a3, 0x9d0000a5, 0xa60000aa, 0xae0000ab, 0xaa0000ac,
+ 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xaf0000bb, 0xac0000bc,
+ 0xab0000bd, 0xa80000bf, 0xa50000d1, 0xe10000df, 0xa00000e1, 0xa10000ed, 0xa40000f1, 0xa20000f3,
+ 0xf60000f7, 0xa30000fa, 0x9f000192, 0xe2000393, 0xe9000398, 0xe40003a3, 0xe80003a6, 0xea0003a9,
+ 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3, 0xe70003c4, 0xed0003c6, 0x800005d0,
+ 0x810005d1, 0x820005d2, 0x830005d3, 0x840005d4, 0x850005d5, 0x860005d6, 0x870005d7, 0x880005d8,
+ 0x890005d9, 0x8a0005da, 0x8b0005db, 0x8c0005dc, 0x8d0005dd, 0x8e0005de, 0x8f0005df, 0x900005e0,
+ 0x910005e1, 0x920005e2, 0x930005e3, 0x940005e4, 0x950005e5, 0x960005e6, 0x970005e7, 0x980005e8,
+ 0x990005e9, 0x9a0005ea, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229,
+ 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage863 is the IBM Code Page 863 encoding.
+var CodePage863 encoding.Encoding = &codePage863
+
+var codePage863 = charmap{
+ name: "IBM Code Page 863",
+ mib: identifier.IBM863,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x97}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa2, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9b, 0x00}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xb3, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbe, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}},
+ {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}},
+ {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}},
+ {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}},
+ {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0x9b0000a2, 0x9c0000a3, 0x980000a4, 0xa00000a6, 0x8f0000a7, 0xa40000a8, 0xae0000ab,
+ 0xaa0000ac, 0xa70000af, 0xf80000b0, 0xf10000b1, 0xfd0000b2, 0xa60000b3, 0xa10000b4, 0xe60000b5,
+ 0x860000b6, 0xfa0000b7, 0xa50000b8, 0xaf0000bb, 0xac0000bc, 0xab0000bd, 0xad0000be, 0x8e0000c0,
+ 0x840000c2, 0x800000c7, 0x910000c8, 0x900000c9, 0x920000ca, 0x940000cb, 0xa80000ce, 0x950000cf,
+ 0x990000d4, 0x9d0000d9, 0x9e0000db, 0x9a0000dc, 0xe10000df, 0x850000e0, 0x830000e2, 0x870000e7,
+ 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8c0000ee, 0x8b0000ef, 0xa20000f3, 0x930000f4,
+ 0xf60000f7, 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x9f000192, 0xe2000393, 0xe9000398,
+ 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3,
+ 0xe70003c4, 0xed0003c6, 0x8d002017, 0xfc00207f, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229,
+ 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage865 is the IBM Code Page 865 encoding.
+var CodePage865 encoding.Encoding = &codePage865
+
+var codePage865 = charmap{
+ name: "IBM Code Page 865",
+ mib: identifier.IBM865,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xa7}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0xa1, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xb3, 0x00}}, {2, [3]byte{0xc3, 0xba, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0x90}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xab, 0x00}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xce, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0x93, 0x00}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {2, [3]byte{0xce, 0xa3, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0xb5, 0x00}}, {2, [3]byte{0xcf, 0x84, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0x98, 0x00}},
+ {2, [3]byte{0xce, 0xa9, 0x00}}, {2, [3]byte{0xce, 0xb4, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xcf, 0x86, 0x00}},
+ {2, [3]byte{0xce, 0xb5, 0x00}}, {3, [3]byte{0xe2, 0x88, 0xa9}},
+ {3, [3]byte{0xe2, 0x89, 0xa1}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa5}}, {3, [3]byte{0xe2, 0x89, 0xa4}},
+ {3, [3]byte{0xe2, 0x8c, 0xa0}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x81, 0xbf}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xad0000a1, 0x9c0000a3, 0xaf0000a4, 0xa60000aa, 0xae0000ab, 0xaa0000ac, 0xf80000b0,
+ 0xf10000b1, 0xfd0000b2, 0xe60000b5, 0xfa0000b7, 0xa70000ba, 0xac0000bc, 0xab0000bd, 0xa80000bf,
+ 0x8e0000c4, 0x8f0000c5, 0x920000c6, 0x800000c7, 0x900000c9, 0xa50000d1, 0x990000d6, 0x9d0000d8,
+ 0x9a0000dc, 0xe10000df, 0x850000e0, 0xa00000e1, 0x830000e2, 0x840000e4, 0x860000e5, 0x910000e6,
+ 0x870000e7, 0x8a0000e8, 0x820000e9, 0x880000ea, 0x890000eb, 0x8d0000ec, 0xa10000ed, 0x8c0000ee,
+ 0x8b0000ef, 0xa40000f1, 0x950000f2, 0xa20000f3, 0x930000f4, 0x940000f6, 0xf60000f7, 0x9b0000f8,
+ 0x970000f9, 0xa30000fa, 0x960000fb, 0x810000fc, 0x980000ff, 0x9f000192, 0xe2000393, 0xe9000398,
+ 0xe40003a3, 0xe80003a6, 0xea0003a9, 0xe00003b1, 0xeb0003b4, 0xee0003b5, 0xe30003c0, 0xe50003c3,
+ 0xe70003c4, 0xed0003c6, 0xfc00207f, 0x9e0020a7, 0xf9002219, 0xfb00221a, 0xec00221e, 0xef002229,
+ 0xf7002248, 0xf0002261, 0xf3002264, 0xf2002265, 0xa9002310, 0xf4002320, 0xf5002321, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// CodePage866 is the IBM Code Page 866 encoding.
+var CodePage866 encoding.Encoding = &codePage866
+
+var codePage866 = charmap{
+ name: "IBM Code Page 866",
+ mib: identifier.IBM866,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}},
+ {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}},
+ {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}},
+ {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}},
+ {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}},
+ {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}},
+ {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}},
+ {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}},
+ {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}},
+ {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}},
+ {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}},
+ {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa1}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0x91}}, {3, [3]byte{0xe2, 0x95, 0x97}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0x9c}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0xbc}},
+ {3, [3]byte{0xe2, 0x95, 0x9e}}, {3, [3]byte{0xe2, 0x95, 0x9f}},
+ {3, [3]byte{0xe2, 0x95, 0x9a}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0xa9}}, {3, [3]byte{0xe2, 0x95, 0xa6}},
+ {3, [3]byte{0xe2, 0x95, 0xa0}}, {3, [3]byte{0xe2, 0x95, 0x90}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa4}},
+ {3, [3]byte{0xe2, 0x95, 0xa5}}, {3, [3]byte{0xe2, 0x95, 0x99}},
+ {3, [3]byte{0xe2, 0x95, 0x98}}, {3, [3]byte{0xe2, 0x95, 0x92}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x8c}},
+ {3, [3]byte{0xe2, 0x96, 0x90}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}},
+ {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xd1, 0x91, 0x00}},
+ {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}},
+ {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xc2, 0xa4, 0x00}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {2, [3]byte{0xc2, 0xa0, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xff0000a0, 0xfd0000a4, 0xf80000b0, 0xfa0000b7, 0xf0000401, 0xf2000404, 0xf4000407, 0xf600040e,
+ 0x80000410, 0x81000411, 0x82000412, 0x83000413, 0x84000414, 0x85000415, 0x86000416, 0x87000417,
+ 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b, 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f,
+ 0x90000420, 0x91000421, 0x92000422, 0x93000423, 0x94000424, 0x95000425, 0x96000426, 0x97000427,
+ 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b, 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f,
+ 0xa0000430, 0xa1000431, 0xa2000432, 0xa3000433, 0xa4000434, 0xa5000435, 0xa6000436, 0xa7000437,
+ 0xa8000438, 0xa9000439, 0xaa00043a, 0xab00043b, 0xac00043c, 0xad00043d, 0xae00043e, 0xaf00043f,
+ 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446, 0xe7000447,
+ 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e, 0xef00044f,
+ 0xf1000451, 0xf3000454, 0xf5000457, 0xf700045e, 0xfc002116, 0xf9002219, 0xfb00221a, 0xc4002500,
+ 0xb3002502, 0xda00250c, 0xbf002510, 0xc0002514, 0xd9002518, 0xc300251c, 0xb4002524, 0xc200252c,
+ 0xc1002534, 0xc500253c, 0xcd002550, 0xba002551, 0xd5002552, 0xd6002553, 0xc9002554, 0xb8002555,
+ 0xb7002556, 0xbb002557, 0xd4002558, 0xd3002559, 0xc800255a, 0xbe00255b, 0xbd00255c, 0xbc00255d,
+ 0xc600255e, 0xc700255f, 0xcc002560, 0xb5002561, 0xb6002562, 0xb9002563, 0xd1002564, 0xd2002565,
+ 0xcb002566, 0xcf002567, 0xd0002568, 0xca002569, 0xd800256a, 0xd700256b, 0xce00256c, 0xdf002580,
+ 0xdc002584, 0xdb002588, 0xdd00258c, 0xde002590, 0xb0002591, 0xb1002592, 0xb2002593, 0xfe0025a0,
+ },
+}
+
+// ISO8859_1 is the ISO 8859-1 encoding.
+var ISO8859_1 encoding.Encoding = &iso8859_1
+
+var iso8859_1 = charmap{
+ name: "ISO 8859-1",
+ mib: identifier.ISOLatin1,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc2, 0x80, 0x00}}, {2, [3]byte{0xc2, 0x81, 0x00}},
+ {2, [3]byte{0xc2, 0x82, 0x00}}, {2, [3]byte{0xc2, 0x83, 0x00}},
+ {2, [3]byte{0xc2, 0x84, 0x00}}, {2, [3]byte{0xc2, 0x85, 0x00}},
+ {2, [3]byte{0xc2, 0x86, 0x00}}, {2, [3]byte{0xc2, 0x87, 0x00}},
+ {2, [3]byte{0xc2, 0x88, 0x00}}, {2, [3]byte{0xc2, 0x89, 0x00}},
+ {2, [3]byte{0xc2, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0x8b, 0x00}},
+ {2, [3]byte{0xc2, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0x8d, 0x00}},
+ {2, [3]byte{0xc2, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0x8f, 0x00}},
+ {2, [3]byte{0xc2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0x91, 0x00}},
+ {2, [3]byte{0xc2, 0x92, 0x00}}, {2, [3]byte{0xc2, 0x93, 0x00}},
+ {2, [3]byte{0xc2, 0x94, 0x00}}, {2, [3]byte{0xc2, 0x95, 0x00}},
+ {2, [3]byte{0xc2, 0x96, 0x00}}, {2, [3]byte{0xc2, 0x97, 0x00}},
+ {2, [3]byte{0xc2, 0x98, 0x00}}, {2, [3]byte{0xc2, 0x99, 0x00}},
+ {2, [3]byte{0xc2, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0x9b, 0x00}},
+ {2, [3]byte{0xc2, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0x9d, 0x00}},
+ {2, [3]byte{0xc2, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0x9f, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0x80000080, 0x81000081, 0x82000082, 0x83000083, 0x84000084, 0x85000085, 0x86000086, 0x87000087,
+ 0x88000088, 0x89000089, 0x8a00008a, 0x8b00008b, 0x8c00008c, 0x8d00008d, 0x8e00008e, 0x8f00008f,
+ 0x90000090, 0x91000091, 0x92000092, 0x93000093, 0x94000094, 0x95000095, 0x96000096, 0x97000097,
+ 0x98000098, 0x99000099, 0x9a00009a, 0x9b00009b, 0x9c00009c, 0x9d00009d, 0x9e00009e, 0x9f00009f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7,
+ 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af,
+ 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7,
+ 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf,
+ 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7,
+ 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7,
+ 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df,
+ 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7,
+ 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef,
+ 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7,
+ 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff,
+ },
+}
+
+// ISO8859_2 is the ISO 8859-2 encoding.
+var ISO8859_2 encoding.Encoding = &iso8859_2
+
+var iso8859_2 = charmap{
+ name: "ISO 8859-2",
+ mib: identifier.ISOLatin2,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}},
+ {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xbd, 0x00}},
+ {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}},
+ {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}},
+ {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xbe, 0x00}},
+ {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}},
+ {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}},
+ {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}},
+ {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}},
+ {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}},
+ {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}},
+ {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb40000b4, 0xb80000b8,
+ 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce,
+ 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc, 0xdd0000dd, 0xdf0000df,
+ 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee,
+ 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc, 0xfd0000fd, 0xc3000102,
+ 0xe3000103, 0xa1000104, 0xb1000105, 0xc6000106, 0xe6000107, 0xc800010c, 0xe800010d, 0xcf00010e,
+ 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a, 0xec00011b, 0xc5000139,
+ 0xe500013a, 0xa500013d, 0xb500013e, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144, 0xd2000147,
+ 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158, 0xf8000159, 0xa600015a,
+ 0xb600015b, 0xaa00015e, 0xba00015f, 0xa9000160, 0xb9000161, 0xde000162, 0xfe000163, 0xab000164,
+ 0xbb000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0xac000179, 0xbc00017a, 0xaf00017b,
+ 0xbf00017c, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xa20002d8, 0xff0002d9, 0xb20002db, 0xbd0002dd,
+ 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd,
+ 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd,
+ 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd,
+ 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd, 0xbd0002dd,
+ },
+}
+
+// ISO8859_3 is the ISO 8859-3 encoding.
+var ISO8859_3 encoding.Encoding = &iso8859_3
+
+var iso8859_3 = charmap{
+ name: "ISO 8859-3",
+ mib: identifier.ISOLatin3,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa6, 0x00}},
+ {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc4, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}},
+ {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc4, 0x9e, 0x00}},
+ {2, [3]byte{0xc4, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc4, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}},
+ {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc4, 0x9f, 0x00}},
+ {2, [3]byte{0xc4, 0xb5, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x8a, 0x00}},
+ {2, [3]byte{0xc4, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc4, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc4, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xac, 0x00}},
+ {2, [3]byte{0xc5, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x89, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc4, 0x9d, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xad, 0x00}},
+ {2, [3]byte{0xc5, 0x9d, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xb00000b0, 0xb20000b2,
+ 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb70000b7, 0xb80000b8, 0xbd0000bd, 0xc00000c0, 0xc10000c1,
+ 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc,
+ 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6,
+ 0xd70000d7, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1,
+ 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec,
+ 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf60000f6,
+ 0xf70000f7, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc6000108, 0xe6000109, 0xc500010a,
+ 0xe500010b, 0xd800011c, 0xf800011d, 0xab00011e, 0xbb00011f, 0xd5000120, 0xf5000121, 0xa6000124,
+ 0xb6000125, 0xa1000126, 0xb1000127, 0xa9000130, 0xb9000131, 0xac000134, 0xbc000135, 0xde00015c,
+ 0xfe00015d, 0xaa00015e, 0xba00015f, 0xdd00016c, 0xfd00016d, 0xaf00017b, 0xbf00017c, 0xa20002d8,
+ 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9,
+ 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9,
+ 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9,
+ 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9,
+ 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9, 0xff0002d9,
+ },
+}
+
+// ISO8859_4 is the ISO 8859-4 encoding.
+var ISO8859_4 encoding.Encoding = &iso8859_4
+
+var iso8859_4 = charmap{
+ name: "ISO 8859-4",
+ mib: identifier.ISOLatin4,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}},
+ {2, [3]byte{0xc4, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0x96, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}},
+ {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc5, 0xa0, 0x00}},
+ {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}},
+ {2, [3]byte{0xc5, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x97, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xa1, 0x00}},
+ {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}},
+ {2, [3]byte{0xc5, 0xa7, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0xaa, 0x00}},
+ {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}},
+ {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}},
+ {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0xab, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}},
+ {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa40000a4, 0xa70000a7, 0xa80000a8, 0xad0000ad, 0xaf0000af, 0xb00000b0, 0xb40000b4,
+ 0xb80000b8, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9,
+ 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8,
+ 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4,
+ 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xf40000f4, 0xf50000f5,
+ 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xc0000100, 0xe0000101,
+ 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d, 0xd0000110, 0xf0000111, 0xaa000112, 0xba000113,
+ 0xcc000116, 0xec000117, 0xca000118, 0xea000119, 0xab000122, 0xbb000123, 0xa5000128, 0xb5000129,
+ 0xcf00012a, 0xef00012b, 0xc700012e, 0xe700012f, 0xd3000136, 0xf3000137, 0xa2000138, 0xa600013b,
+ 0xb600013c, 0xd1000145, 0xf1000146, 0xbd00014a, 0xbf00014b, 0xd200014c, 0xf200014d, 0xa3000156,
+ 0xb3000157, 0xa9000160, 0xb9000161, 0xac000166, 0xbc000167, 0xdd000168, 0xfd000169, 0xde00016a,
+ 0xfe00016b, 0xd9000172, 0xf9000173, 0xae00017d, 0xbe00017e, 0xb70002c7, 0xff0002d9, 0xb20002db,
+ 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db,
+ 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db,
+ 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db,
+ 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db, 0xb20002db,
+ },
+}
+
+// ISO8859_5 is the ISO 8859-5 encoding.
+var ISO8859_5 encoding.Encoding = &iso8859_5
+
+var iso8859_5 = charmap{
+ name: "ISO 8859-5",
+ mib: identifier.ISOLatinCyrillic,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x81, 0x00}},
+ {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}},
+ {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}},
+ {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}},
+ {2, [3]byte{0xd0, 0x88, 0x00}}, {2, [3]byte{0xd0, 0x89, 0x00}},
+ {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}},
+ {2, [3]byte{0xd0, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}},
+ {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}},
+ {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}},
+ {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}},
+ {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}},
+ {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}},
+ {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}},
+ {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}},
+ {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}},
+ {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}},
+ {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}},
+ {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}},
+ {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}},
+ {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd1, 0x91, 0x00}},
+ {2, [3]byte{0xd1, 0x92, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}},
+ {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}},
+ {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}},
+ {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}},
+ {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9b, 0x00}},
+ {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xfd0000a7, 0xad0000ad, 0xa1000401, 0xa2000402, 0xa3000403, 0xa4000404, 0xa5000405,
+ 0xa6000406, 0xa7000407, 0xa8000408, 0xa9000409, 0xaa00040a, 0xab00040b, 0xac00040c, 0xae00040e,
+ 0xaf00040f, 0xb0000410, 0xb1000411, 0xb2000412, 0xb3000413, 0xb4000414, 0xb5000415, 0xb6000416,
+ 0xb7000417, 0xb8000418, 0xb9000419, 0xba00041a, 0xbb00041b, 0xbc00041c, 0xbd00041d, 0xbe00041e,
+ 0xbf00041f, 0xc0000420, 0xc1000421, 0xc2000422, 0xc3000423, 0xc4000424, 0xc5000425, 0xc6000426,
+ 0xc7000427, 0xc8000428, 0xc9000429, 0xca00042a, 0xcb00042b, 0xcc00042c, 0xcd00042d, 0xce00042e,
+ 0xcf00042f, 0xd0000430, 0xd1000431, 0xd2000432, 0xd3000433, 0xd4000434, 0xd5000435, 0xd6000436,
+ 0xd7000437, 0xd8000438, 0xd9000439, 0xda00043a, 0xdb00043b, 0xdc00043c, 0xdd00043d, 0xde00043e,
+ 0xdf00043f, 0xe0000440, 0xe1000441, 0xe2000442, 0xe3000443, 0xe4000444, 0xe5000445, 0xe6000446,
+ 0xe7000447, 0xe8000448, 0xe9000449, 0xea00044a, 0xeb00044b, 0xec00044c, 0xed00044d, 0xee00044e,
+ 0xef00044f, 0xf1000451, 0xf2000452, 0xf3000453, 0xf4000454, 0xf5000455, 0xf6000456, 0xf7000457,
+ 0xf8000458, 0xf9000459, 0xfa00045a, 0xfb00045b, 0xfc00045c, 0xfe00045e, 0xff00045f, 0xf0002116,
+ 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116,
+ 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116,
+ 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116,
+ 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116, 0xf0002116,
+ },
+}
+
+// ISO8859_6 is the ISO 8859-6 encoding.
+var ISO8859_6 encoding.Encoding = &iso8859_6
+
+var iso8859_6 = charmap{
+ name: "ISO 8859-6",
+ mib: identifier.ISOLatinArabic,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xd8, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9b, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0x9f, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd8, 0xa1, 0x00}},
+ {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}},
+ {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}},
+ {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}},
+ {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}},
+ {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}},
+ {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}},
+ {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}},
+ {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}},
+ {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}},
+ {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}},
+ {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xd8, 0xb7, 0x00}},
+ {2, [3]byte{0xd8, 0xb8, 0x00}}, {2, [3]byte{0xd8, 0xb9, 0x00}},
+ {2, [3]byte{0xd8, 0xba, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}},
+ {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}},
+ {2, [3]byte{0xd9, 0x84, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}},
+ {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}},
+ {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xd9, 0x89, 0x00}},
+ {2, [3]byte{0xd9, 0x8a, 0x00}}, {2, [3]byte{0xd9, 0x8b, 0x00}},
+ {2, [3]byte{0xd9, 0x8c, 0x00}}, {2, [3]byte{0xd9, 0x8d, 0x00}},
+ {2, [3]byte{0xd9, 0x8e, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}},
+ {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xd9, 0x91, 0x00}},
+ {2, [3]byte{0xd9, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa40000a4, 0xad0000ad, 0xac00060c, 0xbb00061b, 0xbf00061f, 0xc1000621, 0xc2000622,
+ 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626, 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a,
+ 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e, 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632,
+ 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636, 0xd7000637, 0xd8000638, 0xd9000639, 0xda00063a,
+ 0xe0000640, 0xe1000641, 0xe2000642, 0xe3000643, 0xe4000644, 0xe5000645, 0xe6000646, 0xe7000647,
+ 0xe8000648, 0xe9000649, 0xea00064a, 0xeb00064b, 0xec00064c, 0xed00064d, 0xee00064e, 0xef00064f,
+ 0xf0000650, 0xf1000651, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652, 0xf2000652,
+ },
+}
+
+// ISO8859_7 is the ISO 8859-7 encoding.
+var ISO8859_7 encoding.Encoding = &iso8859_7
+
+var iso8859_7 = charmap{
+ name: "ISO 8859-7",
+ mib: identifier.ISOLatinGreek,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x82, 0xaf}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xcd, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x95}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}},
+ {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}},
+ {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}},
+ {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}},
+ {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}},
+ {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}},
+ {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}},
+ {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}},
+ {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}},
+ {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}},
+ {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}},
+ {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}},
+ {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}},
+ {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}},
+ {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}},
+ {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}},
+ {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}},
+ {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}},
+ {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}},
+ {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}},
+ {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}},
+ {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}},
+ {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}},
+ {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}},
+ {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}},
+ {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}},
+ {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}},
+ {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}},
+ {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}},
+ {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}},
+ {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa30000a3, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac,
+ 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb70000b7, 0xbb0000bb, 0xbd0000bd,
+ 0xaa00037a, 0xb4000384, 0xb5000385, 0xb6000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c,
+ 0xbe00038e, 0xbf00038f, 0xc0000390, 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395,
+ 0xc6000396, 0xc7000397, 0xc8000398, 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d,
+ 0xce00039e, 0xcf00039f, 0xd00003a0, 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6,
+ 0xd70003a7, 0xd80003a8, 0xd90003a9, 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae,
+ 0xdf0003af, 0xe00003b0, 0xe10003b1, 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6,
+ 0xe70003b7, 0xe80003b8, 0xe90003b9, 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be,
+ 0xef0003bf, 0xf00003c0, 0xf10003c1, 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6,
+ 0xf70003c7, 0xf80003c8, 0xf90003c9, 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce,
+ 0xaf002015, 0xa1002018, 0xa2002019, 0xa40020ac, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af,
+ 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af,
+ 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af,
+ 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af,
+ 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af, 0xa50020af,
+ },
+}
+
+// ISO8859_8 is the ISO 8859-8 encoding.
+var ISO8859_8 encoding.Encoding = &iso8859_8
+
+var iso8859_8 = charmap{
+ name: "ISO 8859-8",
+ mib: identifier.ISOLatinHebrew,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x97}},
+ {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}},
+ {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}},
+ {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}},
+ {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}},
+ {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}},
+ {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}},
+ {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}},
+ {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}},
+ {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}},
+ {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}},
+ {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}},
+ {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}},
+ {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}},
+ {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}},
+ {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8,
+ 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1,
+ 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9,
+ 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xaa0000d7, 0xba0000f7, 0xe00005d0, 0xe10005d1,
+ 0xe20005d2, 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9,
+ 0xea0005da, 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1,
+ 0xf20005e2, 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9,
+ 0xfa0005ea, 0xfd00200e, 0xfe00200f, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017, 0xdf002017,
+ },
+}
+
+// ISO8859_10 is the ISO 8859-10 encoding.
+var ISO8859_10 encoding.Encoding = &iso8859_10
+
+var iso8859_10 = charmap{
+ name: "ISO 8859-10",
+ mib: identifier.ISOLatin6,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}},
+ {2, [3]byte{0xc4, 0x92, 0x00}}, {2, [3]byte{0xc4, 0xa2, 0x00}},
+ {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xa8, 0x00}},
+ {2, [3]byte{0xc4, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc4, 0xbb, 0x00}}, {2, [3]byte{0xc4, 0x90, 0x00}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0xa6, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc5, 0xaa, 0x00}}, {2, [3]byte{0xc5, 0x8a, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}},
+ {2, [3]byte{0xc4, 0x93, 0x00}}, {2, [3]byte{0xc4, 0xa3, 0x00}},
+ {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc4, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x91, 0x00}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0xa7, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}},
+ {2, [3]byte{0xc5, 0xab, 0x00}}, {2, [3]byte{0xc5, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x85, 0x00}},
+ {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0xa8, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xb2, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc4, 0x97, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc5, 0x86, 0x00}},
+ {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0xb8, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa70000a7, 0xad0000ad, 0xb00000b0, 0xb70000b7, 0xc10000c1, 0xc20000c2, 0xc30000c3,
+ 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc90000c9, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd00000d0, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xda0000da, 0xdb0000db,
+ 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4,
+ 0xe50000e5, 0xe60000e6, 0xe90000e9, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf00000f0,
+ 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc,
+ 0xfd0000fd, 0xfe0000fe, 0xc0000100, 0xe0000101, 0xa1000104, 0xb1000105, 0xc800010c, 0xe800010d,
+ 0xa9000110, 0xb9000111, 0xa2000112, 0xb2000113, 0xcc000116, 0xec000117, 0xca000118, 0xea000119,
+ 0xa3000122, 0xb3000123, 0xa5000128, 0xb5000129, 0xa400012a, 0xb400012b, 0xc700012e, 0xe700012f,
+ 0xa6000136, 0xb6000137, 0xff000138, 0xa800013b, 0xb800013c, 0xd1000145, 0xf1000146, 0xaf00014a,
+ 0xbf00014b, 0xd200014c, 0xf200014d, 0xaa000160, 0xba000161, 0xab000166, 0xbb000167, 0xd7000168,
+ 0xf7000169, 0xae00016a, 0xbe00016b, 0xd9000172, 0xf9000173, 0xac00017d, 0xbc00017e, 0xbd002015,
+ 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015,
+ 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015,
+ 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015,
+ 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015, 0xbd002015,
+ },
+}
+
+// ISO8859_13 is the ISO 8859-13 encoding.
+var ISO8859_13 encoding.Encoding = &iso8859_13
+
+var iso8859_13 = charmap{
+ name: "ISO 8859-13",
+ mib: identifier.ISO885913,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9c}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}},
+ {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}},
+ {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}},
+ {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}},
+ {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}},
+ {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}},
+ {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}},
+ {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x99}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab,
+ 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb50000b5,
+ 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4,
+ 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8,
+ 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5, 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5,
+ 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc, 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105,
+ 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d, 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117,
+ 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123, 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f,
+ 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c, 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144,
+ 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d, 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b,
+ 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b, 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a,
+ 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e, 0xff002019, 0xb400201c, 0xa100201d, 0xa500201e,
+ 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e,
+ 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e,
+ 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e,
+ 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e, 0xa500201e,
+ },
+}
+
+// ISO8859_14 is the ISO 8859-14 encoding.
+var ISO8859_14 encoding.Encoding = &iso8859_14
+
+var iso8859_14 = charmap{
+ name: "ISO 8859-14",
+ mib: identifier.ISO885914,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe1, 0xb8, 0x82}},
+ {3, [3]byte{0xe1, 0xb8, 0x83}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc4, 0x8a, 0x00}}, {2, [3]byte{0xc4, 0x8b, 0x00}},
+ {3, [3]byte{0xe1, 0xb8, 0x8a}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {3, [3]byte{0xe1, 0xba, 0x80}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {3, [3]byte{0xe1, 0xba, 0x82}}, {3, [3]byte{0xe1, 0xb8, 0x8b}},
+ {3, [3]byte{0xe1, 0xbb, 0xb2}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}},
+ {3, [3]byte{0xe1, 0xb8, 0x9e}}, {3, [3]byte{0xe1, 0xb8, 0x9f}},
+ {2, [3]byte{0xc4, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0xa1, 0x00}},
+ {3, [3]byte{0xe1, 0xb9, 0x80}}, {3, [3]byte{0xe1, 0xb9, 0x81}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0x96}},
+ {3, [3]byte{0xe1, 0xba, 0x81}}, {3, [3]byte{0xe1, 0xb9, 0x97}},
+ {3, [3]byte{0xe1, 0xba, 0x83}}, {3, [3]byte{0xe1, 0xb9, 0xa0}},
+ {3, [3]byte{0xe1, 0xbb, 0xb3}}, {3, [3]byte{0xe1, 0xba, 0x84}},
+ {3, [3]byte{0xe1, 0xba, 0x85}}, {3, [3]byte{0xe1, 0xb9, 0xa1}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc5, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xaa}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc5, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc5, 0xb5, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {3, [3]byte{0xe1, 0xb9, 0xab}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc5, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa30000a3, 0xa70000a7, 0xa90000a9, 0xad0000ad, 0xae0000ae, 0xb60000b6, 0xc00000c0,
+ 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8,
+ 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1,
+ 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd80000d8, 0xd90000d9, 0xda0000da,
+ 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3,
+ 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb,
+ 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4,
+ 0xf50000f5, 0xf60000f6, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd,
+ 0xff0000ff, 0xa400010a, 0xa500010b, 0xb2000120, 0xb3000121, 0xd0000174, 0xf0000175, 0xde000176,
+ 0xfe000177, 0xaf000178, 0xa1001e02, 0xa2001e03, 0xa6001e0a, 0xab001e0b, 0xb0001e1e, 0xb1001e1f,
+ 0xb4001e40, 0xb5001e41, 0xb7001e56, 0xb9001e57, 0xbb001e60, 0xbf001e61, 0xd7001e6a, 0xf7001e6b,
+ 0xa8001e80, 0xb8001e81, 0xaa001e82, 0xba001e83, 0xbd001e84, 0xbe001e85, 0xac001ef2, 0xbc001ef3,
+ 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3,
+ 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3,
+ 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3,
+ 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3, 0xbc001ef3,
+ },
+}
+
+// ISO8859_15 is the ISO 8859-15 encoding.
+var ISO8859_15 encoding.Encoding = &iso8859_15
+
+var iso8859_15 = charmap{
+ name: "ISO 8859-15",
+ mib: identifier.ISO885915,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}},
+ {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa70000a7, 0xa90000a9, 0xaa0000aa,
+ 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2,
+ 0xb30000b3, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbf0000bf,
+ 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7,
+ 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7,
+ 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df,
+ 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7,
+ 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef,
+ 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7,
+ 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff,
+ 0xbc000152, 0xbd000153, 0xa6000160, 0xa8000161, 0xbe000178, 0xb400017d, 0xb800017e, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ },
+}
+
+// ISO8859_16 is the ISO 8859-16 encoding.
+var ISO8859_16 encoding.Encoding = &iso8859_16
+
+var iso8859_16 = charmap{
+ name: "ISO 8859-16",
+ mib: identifier.ISO885916,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}},
+ {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0x9e}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc8, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9d}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc4, 0x8d, 0x00}},
+ {2, [3]byte{0xc8, 0x99, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}},
+ {2, [3]byte{0xc5, 0xb8, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc5, 0x9a, 0x00}},
+ {2, [3]byte{0xc5, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0x98, 0x00}},
+ {2, [3]byte{0xc8, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc5, 0x9b, 0x00}},
+ {2, [3]byte{0xc5, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0x99, 0x00}},
+ {2, [3]byte{0xc8, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xad0000ad, 0xb00000b0, 0xb10000b1, 0xb60000b6,
+ 0xb70000b7, 0xbb0000bb, 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc60000c6, 0xc70000c7,
+ 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc,
+ 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe60000e6, 0xe70000e7, 0xe80000e8,
+ 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf20000f2,
+ 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xff0000ff,
+ 0xc3000102, 0xe3000103, 0xa1000104, 0xa2000105, 0xc5000106, 0xe5000107, 0xb200010c, 0xb900010d,
+ 0xd0000110, 0xf0000111, 0xdd000118, 0xfd000119, 0xa3000141, 0xb3000142, 0xd1000143, 0xf1000144,
+ 0xd5000150, 0xf5000151, 0xbc000152, 0xbd000153, 0xd700015a, 0xf700015b, 0xa6000160, 0xa8000161,
+ 0xd8000170, 0xf8000171, 0xbe000178, 0xac000179, 0xae00017a, 0xaf00017b, 0xbf00017c, 0xb400017d,
+ 0xb800017e, 0xaa000218, 0xba000219, 0xde00021a, 0xfe00021b, 0xb500201d, 0xa500201e, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac, 0xa40020ac,
+ },
+}
+
+// KOI8R is the KOI8-R encoding.
+var KOI8R encoding.Encoding = &koi8R
+
+var koi8R = charmap{
+ name: "KOI8-R",
+ mib: identifier.KOI8R,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}},
+ {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x93}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {3, [3]byte{0xe2, 0x95, 0x95}}, {3, [3]byte{0xe2, 0x95, 0x96}},
+ {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}},
+ {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {3, [3]byte{0xe2, 0x95, 0x9c}},
+ {3, [3]byte{0xe2, 0x95, 0x9d}}, {3, [3]byte{0xe2, 0x95, 0x9e}},
+ {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}},
+ {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0xa2}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {3, [3]byte{0xe2, 0x95, 0xa4}}, {3, [3]byte{0xe2, 0x95, 0xa5}},
+ {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {3, [3]byte{0xe2, 0x95, 0xab}},
+ {3, [3]byte{0xe2, 0x95, 0xac}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}},
+ {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}},
+ {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}},
+ {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}},
+ {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}},
+ {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}},
+ {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}},
+ {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}},
+ {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}},
+ {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}},
+ {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}},
+ {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}},
+ {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xe1000410,
+ 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414, 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418,
+ 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c, 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420,
+ 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424, 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428,
+ 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c, 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430,
+ 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434, 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438,
+ 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c, 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440,
+ 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444, 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448,
+ 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c, 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451,
+ 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320, 0x9b002321, 0x80002500,
+ 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c, 0x87002524, 0x8800252c,
+ 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa4002553, 0xa5002554, 0xa6002555,
+ 0xa7002556, 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xad00255c, 0xae00255d,
+ 0xaf00255e, 0xb000255f, 0xb1002560, 0xb2002561, 0xb4002562, 0xb5002563, 0xb6002564, 0xb7002565,
+ 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0xbd00256b, 0xbe00256c, 0x8b002580,
+ 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0,
+ },
+}
+
+// KOI8U is the KOI8-U encoding.
+var KOI8U encoding.Encoding = &koi8U
+
+var koi8U = charmap{
+ name: "KOI8-U",
+ mib: identifier.KOI8U,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x94, 0x80}}, {3, [3]byte{0xe2, 0x94, 0x82}},
+ {3, [3]byte{0xe2, 0x94, 0x8c}}, {3, [3]byte{0xe2, 0x94, 0x90}},
+ {3, [3]byte{0xe2, 0x94, 0x94}}, {3, [3]byte{0xe2, 0x94, 0x98}},
+ {3, [3]byte{0xe2, 0x94, 0x9c}}, {3, [3]byte{0xe2, 0x94, 0xa4}},
+ {3, [3]byte{0xe2, 0x94, 0xac}}, {3, [3]byte{0xe2, 0x94, 0xb4}},
+ {3, [3]byte{0xe2, 0x94, 0xbc}}, {3, [3]byte{0xe2, 0x96, 0x80}},
+ {3, [3]byte{0xe2, 0x96, 0x84}}, {3, [3]byte{0xe2, 0x96, 0x88}},
+ {3, [3]byte{0xe2, 0x96, 0x8c}}, {3, [3]byte{0xe2, 0x96, 0x90}},
+ {3, [3]byte{0xe2, 0x96, 0x91}}, {3, [3]byte{0xe2, 0x96, 0x92}},
+ {3, [3]byte{0xe2, 0x96, 0x93}}, {3, [3]byte{0xe2, 0x8c, 0xa0}},
+ {3, [3]byte{0xe2, 0x96, 0xa0}}, {3, [3]byte{0xe2, 0x88, 0x99}},
+ {3, [3]byte{0xe2, 0x88, 0x9a}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x8c, 0xa1}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb2, 0x00}},
+ {2, [3]byte{0xc2, 0xb7, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x90}}, {3, [3]byte{0xe2, 0x95, 0x91}},
+ {3, [3]byte{0xe2, 0x95, 0x92}}, {2, [3]byte{0xd1, 0x91, 0x00}},
+ {2, [3]byte{0xd1, 0x94, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x94}},
+ {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0x97}}, {3, [3]byte{0xe2, 0x95, 0x98}},
+ {3, [3]byte{0xe2, 0x95, 0x99}}, {3, [3]byte{0xe2, 0x95, 0x9a}},
+ {3, [3]byte{0xe2, 0x95, 0x9b}}, {2, [3]byte{0xd2, 0x91, 0x00}},
+ {2, [3]byte{0xd1, 0x9e, 0x00}}, {3, [3]byte{0xe2, 0x95, 0x9e}},
+ {3, [3]byte{0xe2, 0x95, 0x9f}}, {3, [3]byte{0xe2, 0x95, 0xa0}},
+ {3, [3]byte{0xe2, 0x95, 0xa1}}, {2, [3]byte{0xd0, 0x81, 0x00}},
+ {2, [3]byte{0xd0, 0x84, 0x00}}, {3, [3]byte{0xe2, 0x95, 0xa3}},
+ {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}},
+ {3, [3]byte{0xe2, 0x95, 0xa6}}, {3, [3]byte{0xe2, 0x95, 0xa7}},
+ {3, [3]byte{0xe2, 0x95, 0xa8}}, {3, [3]byte{0xe2, 0x95, 0xa9}},
+ {3, [3]byte{0xe2, 0x95, 0xaa}}, {2, [3]byte{0xd2, 0x90, 0x00}},
+ {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd0, 0xb0, 0x00}},
+ {2, [3]byte{0xd0, 0xb1, 0x00}}, {2, [3]byte{0xd1, 0x86, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd1, 0x85, 0x00}}, {2, [3]byte{0xd0, 0xb8, 0x00}},
+ {2, [3]byte{0xd0, 0xb9, 0x00}}, {2, [3]byte{0xd0, 0xba, 0x00}},
+ {2, [3]byte{0xd0, 0xbb, 0x00}}, {2, [3]byte{0xd0, 0xbc, 0x00}},
+ {2, [3]byte{0xd0, 0xbd, 0x00}}, {2, [3]byte{0xd0, 0xbe, 0x00}},
+ {2, [3]byte{0xd0, 0xbf, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb2, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd0, 0xb7, 0x00}}, {2, [3]byte{0xd1, 0x88, 0x00}},
+ {2, [3]byte{0xd1, 0x8d, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x8a, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x90, 0x00}},
+ {2, [3]byte{0xd0, 0x91, 0x00}}, {2, [3]byte{0xd0, 0xa6, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0xa5, 0x00}}, {2, [3]byte{0xd0, 0x98, 0x00}},
+ {2, [3]byte{0xd0, 0x99, 0x00}}, {2, [3]byte{0xd0, 0x9a, 0x00}},
+ {2, [3]byte{0xd0, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x9c, 0x00}},
+ {2, [3]byte{0xd0, 0x9d, 0x00}}, {2, [3]byte{0xd0, 0x9e, 0x00}},
+ {2, [3]byte{0xd0, 0x9f, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x92, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0x97, 0x00}}, {2, [3]byte{0xd0, 0xa8, 0x00}},
+ {2, [3]byte{0xd0, 0xad, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xa7, 0x00}}, {2, [3]byte{0xd0, 0xaa, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0x9a0000a0, 0xbf0000a9, 0x9c0000b0, 0x9d0000b2, 0x9e0000b7, 0x9f0000f7, 0xb3000401, 0xb4000404,
+ 0xb6000406, 0xb7000407, 0xbe00040e, 0xe1000410, 0xe2000411, 0xf7000412, 0xe7000413, 0xe4000414,
+ 0xe5000415, 0xf6000416, 0xfa000417, 0xe9000418, 0xea000419, 0xeb00041a, 0xec00041b, 0xed00041c,
+ 0xee00041d, 0xef00041e, 0xf000041f, 0xf2000420, 0xf3000421, 0xf4000422, 0xf5000423, 0xe6000424,
+ 0xe8000425, 0xe3000426, 0xfe000427, 0xfb000428, 0xfd000429, 0xff00042a, 0xf900042b, 0xf800042c,
+ 0xfc00042d, 0xe000042e, 0xf100042f, 0xc1000430, 0xc2000431, 0xd7000432, 0xc7000433, 0xc4000434,
+ 0xc5000435, 0xd6000436, 0xda000437, 0xc9000438, 0xca000439, 0xcb00043a, 0xcc00043b, 0xcd00043c,
+ 0xce00043d, 0xcf00043e, 0xd000043f, 0xd2000440, 0xd3000441, 0xd4000442, 0xd5000443, 0xc6000444,
+ 0xc8000445, 0xc3000446, 0xde000447, 0xdb000448, 0xdd000449, 0xdf00044a, 0xd900044b, 0xd800044c,
+ 0xdc00044d, 0xc000044e, 0xd100044f, 0xa3000451, 0xa4000454, 0xa6000456, 0xa7000457, 0xae00045e,
+ 0xbd000490, 0xad000491, 0x95002219, 0x9600221a, 0x97002248, 0x98002264, 0x99002265, 0x93002320,
+ 0x9b002321, 0x80002500, 0x81002502, 0x8200250c, 0x83002510, 0x84002514, 0x85002518, 0x8600251c,
+ 0x87002524, 0x8800252c, 0x89002534, 0x8a00253c, 0xa0002550, 0xa1002551, 0xa2002552, 0xa5002554,
+ 0xa8002557, 0xa9002558, 0xaa002559, 0xab00255a, 0xac00255b, 0xaf00255e, 0xb000255f, 0xb1002560,
+ 0xb2002561, 0xb5002563, 0xb8002566, 0xb9002567, 0xba002568, 0xbb002569, 0xbc00256a, 0x8b002580,
+ 0x8c002584, 0x8d002588, 0x8e00258c, 0x8f002590, 0x90002591, 0x91002592, 0x92002593, 0x940025a0,
+ },
+}
+
+// Macintosh is the Macintosh encoding.
+var Macintosh encoding.Encoding = &macintosh
+
+var macintosh = charmap{
+ name: "Macintosh",
+ mib: identifier.Macintosh,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x91, 0x00}}, {2, [3]byte{0xc3, 0x96, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa2, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa5, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa9, 0x00}}, {2, [3]byte{0xc3, 0xa8, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xad, 0x00}}, {2, [3]byte{0xc3, 0xac, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xb1, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb4, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xbb, 0x00}}, {2, [3]byte{0xc3, 0xbc, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xc2, 0xb4, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x98, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}},
+ {2, [3]byte{0xc2, 0xa5, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x82}}, {3, [3]byte{0xe2, 0x88, 0x91}},
+ {3, [3]byte{0xe2, 0x88, 0x8f}}, {2, [3]byte{0xcf, 0x80, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0xab}}, {2, [3]byte{0xc2, 0xaa, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xbf, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0x80, 0x00}},
+ {2, [3]byte{0xc3, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xc5, 0x93, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}},
+ {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x97, 0x8a}},
+ {2, [3]byte{0xc3, 0xbf, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}},
+ {3, [3]byte{0xe2, 0x81, 0x84}}, {3, [3]byte{0xe2, 0x82, 0xac}},
+ {3, [3]byte{0xe2, 0x80, 0xb9}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {3, [3]byte{0xef, 0xac, 0x81}}, {3, [3]byte{0xef, 0xac, 0x82}},
+ {3, [3]byte{0xe2, 0x80, 0xa1}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xe2, 0x80, 0x9e}},
+ {3, [3]byte{0xe2, 0x80, 0xb0}}, {2, [3]byte{0xc3, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x8b, 0x00}}, {2, [3]byte{0xc3, 0x88, 0x00}},
+ {2, [3]byte{0xc3, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0x8e, 0x00}},
+ {2, [3]byte{0xc3, 0x8f, 0x00}}, {2, [3]byte{0xc3, 0x8c, 0x00}},
+ {2, [3]byte{0xc3, 0x93, 0x00}}, {2, [3]byte{0xc3, 0x94, 0x00}},
+ {3, [3]byte{0xef, 0xa3, 0xbf}}, {2, [3]byte{0xc3, 0x92, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x99, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {2, [3]byte{0xcb, 0x9c, 0x00}},
+ {2, [3]byte{0xc2, 0xaf, 0x00}}, {2, [3]byte{0xcb, 0x98, 0x00}},
+ {2, [3]byte{0xcb, 0x99, 0x00}}, {2, [3]byte{0xcb, 0x9a, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xca0000a0, 0xc10000a1, 0xa20000a2, 0xa30000a3, 0xb40000a5, 0xa40000a7, 0xac0000a8, 0xa90000a9,
+ 0xbb0000aa, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xf80000af, 0xa10000b0, 0xb10000b1, 0xab0000b4,
+ 0xb50000b5, 0xa60000b6, 0xe10000b7, 0xfc0000b8, 0xbc0000ba, 0xc80000bb, 0xc00000bf, 0xcb0000c0,
+ 0xe70000c1, 0xe50000c2, 0xcc0000c3, 0x800000c4, 0x810000c5, 0xae0000c6, 0x820000c7, 0xe90000c8,
+ 0x830000c9, 0xe60000ca, 0xe80000cb, 0xed0000cc, 0xea0000cd, 0xeb0000ce, 0xec0000cf, 0x840000d1,
+ 0xf10000d2, 0xee0000d3, 0xef0000d4, 0xcd0000d5, 0x850000d6, 0xaf0000d8, 0xf40000d9, 0xf20000da,
+ 0xf30000db, 0x860000dc, 0xa70000df, 0x880000e0, 0x870000e1, 0x890000e2, 0x8b0000e3, 0x8a0000e4,
+ 0x8c0000e5, 0xbe0000e6, 0x8d0000e7, 0x8f0000e8, 0x8e0000e9, 0x900000ea, 0x910000eb, 0x930000ec,
+ 0x920000ed, 0x940000ee, 0x950000ef, 0x960000f1, 0x980000f2, 0x970000f3, 0x990000f4, 0x9b0000f5,
+ 0x9a0000f6, 0xd60000f7, 0xbf0000f8, 0x9d0000f9, 0x9c0000fa, 0x9e0000fb, 0x9f0000fc, 0xd80000ff,
+ 0xf5000131, 0xce000152, 0xcf000153, 0xd9000178, 0xc4000192, 0xf60002c6, 0xff0002c7, 0xf90002d8,
+ 0xfa0002d9, 0xfb0002da, 0xfe0002db, 0xf70002dc, 0xfd0002dd, 0xbd0003a9, 0xb90003c0, 0xd0002013,
+ 0xd1002014, 0xd4002018, 0xd5002019, 0xe200201a, 0xd200201c, 0xd300201d, 0xe300201e, 0xa0002020,
+ 0xe0002021, 0xa5002022, 0xc9002026, 0xe4002030, 0xdc002039, 0xdd00203a, 0xda002044, 0xdb0020ac,
+ 0xaa002122, 0xb6002202, 0xc6002206, 0xb800220f, 0xb7002211, 0xc300221a, 0xb000221e, 0xba00222b,
+ 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265, 0xd70025ca, 0xf000f8ff, 0xde00fb01, 0xdf00fb02,
+ },
+}
+
+// MacintoshCyrillic is the Macintosh Cyrillic encoding.
+var MacintoshCyrillic encoding.Encoding = &macintoshCyrillic
+
+var macintoshCyrillic = charmap{
+ name: "Macintosh Cyrillic",
+ mib: identifier.MacintoshCyrillic,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}},
+ {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}},
+ {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}},
+ {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}},
+ {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}},
+ {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}},
+ {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {2, [3]byte{0xc2, 0xb0, 0x00}},
+ {2, [3]byte{0xd2, 0x90, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0x86, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {3, [3]byte{0xe2, 0x84, 0xa2}}, {2, [3]byte{0xd0, 0x82, 0x00}},
+ {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0xa0}},
+ {2, [3]byte{0xd0, 0x83, 0x00}}, {2, [3]byte{0xd1, 0x93, 0x00}},
+ {3, [3]byte{0xe2, 0x88, 0x9e}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {3, [3]byte{0xe2, 0x89, 0xa4}}, {3, [3]byte{0xe2, 0x89, 0xa5}},
+ {2, [3]byte{0xd1, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}},
+ {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x94, 0x00}},
+ {2, [3]byte{0xd0, 0x87, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x89, 0x00}}, {2, [3]byte{0xd1, 0x99, 0x00}},
+ {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x9a, 0x00}},
+ {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {3, [3]byte{0xe2, 0x88, 0x9a}},
+ {2, [3]byte{0xc6, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x89, 0x88}},
+ {3, [3]byte{0xe2, 0x88, 0x86}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xbb, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}},
+ {2, [3]byte{0xd1, 0x9c, 0x00}}, {2, [3]byte{0xd1, 0x95, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xe2, 0x80, 0x9c}}, {3, [3]byte{0xe2, 0x80, 0x9d}},
+ {3, [3]byte{0xe2, 0x80, 0x98}}, {3, [3]byte{0xe2, 0x80, 0x99}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x9e}},
+ {2, [3]byte{0xd0, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x9e, 0x00}},
+ {2, [3]byte{0xd0, 0x8f, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}},
+ {3, [3]byte{0xe2, 0x84, 0x96}}, {2, [3]byte{0xd0, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x91, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}},
+ {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}},
+ {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}},
+ {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}},
+ {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}},
+ {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}},
+ {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {3, [3]byte{0xe2, 0x82, 0xac}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xca0000a0, 0xa30000a3, 0xa40000a7, 0xa90000a9, 0xc70000ab, 0xc20000ac, 0xa80000ae, 0xa10000b0,
+ 0xb10000b1, 0xb50000b5, 0xa60000b6, 0xc80000bb, 0xd60000f7, 0xc4000192, 0xdd000401, 0xab000402,
+ 0xae000403, 0xb8000404, 0xc1000405, 0xa7000406, 0xba000407, 0xb7000408, 0xbc000409, 0xbe00040a,
+ 0xcb00040b, 0xcd00040c, 0xd800040e, 0xda00040f, 0x80000410, 0x81000411, 0x82000412, 0x83000413,
+ 0x84000414, 0x85000415, 0x86000416, 0x87000417, 0x88000418, 0x89000419, 0x8a00041a, 0x8b00041b,
+ 0x8c00041c, 0x8d00041d, 0x8e00041e, 0x8f00041f, 0x90000420, 0x91000421, 0x92000422, 0x93000423,
+ 0x94000424, 0x95000425, 0x96000426, 0x97000427, 0x98000428, 0x99000429, 0x9a00042a, 0x9b00042b,
+ 0x9c00042c, 0x9d00042d, 0x9e00042e, 0x9f00042f, 0xe0000430, 0xe1000431, 0xe2000432, 0xe3000433,
+ 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a, 0xeb00043b,
+ 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442, 0xf3000443,
+ 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a, 0xfb00044b,
+ 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xdf00044f, 0xde000451, 0xac000452, 0xaf000453, 0xb9000454,
+ 0xcf000455, 0xb4000456, 0xbb000457, 0xc0000458, 0xbd000459, 0xbf00045a, 0xcc00045b, 0xce00045c,
+ 0xd900045e, 0xdb00045f, 0xa2000490, 0xb6000491, 0xd0002013, 0xd1002014, 0xd4002018, 0xd5002019,
+ 0xd200201c, 0xd300201d, 0xd700201e, 0xa0002020, 0xa5002022, 0xc9002026, 0xff0020ac, 0xdc002116,
+ 0xaa002122, 0xc6002206, 0xc300221a, 0xb000221e, 0xc5002248, 0xad002260, 0xb2002264, 0xb3002265,
+ },
+}
+
+// Windows874 is the Windows 874 encoding.
+var Windows874 encoding.Encoding = &windows874
+
+var windows874 = charmap{
+ name: "Windows 874",
+ mib: identifier.Windows874,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xe0, 0xb8, 0x81}},
+ {3, [3]byte{0xe0, 0xb8, 0x82}}, {3, [3]byte{0xe0, 0xb8, 0x83}},
+ {3, [3]byte{0xe0, 0xb8, 0x84}}, {3, [3]byte{0xe0, 0xb8, 0x85}},
+ {3, [3]byte{0xe0, 0xb8, 0x86}}, {3, [3]byte{0xe0, 0xb8, 0x87}},
+ {3, [3]byte{0xe0, 0xb8, 0x88}}, {3, [3]byte{0xe0, 0xb8, 0x89}},
+ {3, [3]byte{0xe0, 0xb8, 0x8a}}, {3, [3]byte{0xe0, 0xb8, 0x8b}},
+ {3, [3]byte{0xe0, 0xb8, 0x8c}}, {3, [3]byte{0xe0, 0xb8, 0x8d}},
+ {3, [3]byte{0xe0, 0xb8, 0x8e}}, {3, [3]byte{0xe0, 0xb8, 0x8f}},
+ {3, [3]byte{0xe0, 0xb8, 0x90}}, {3, [3]byte{0xe0, 0xb8, 0x91}},
+ {3, [3]byte{0xe0, 0xb8, 0x92}}, {3, [3]byte{0xe0, 0xb8, 0x93}},
+ {3, [3]byte{0xe0, 0xb8, 0x94}}, {3, [3]byte{0xe0, 0xb8, 0x95}},
+ {3, [3]byte{0xe0, 0xb8, 0x96}}, {3, [3]byte{0xe0, 0xb8, 0x97}},
+ {3, [3]byte{0xe0, 0xb8, 0x98}}, {3, [3]byte{0xe0, 0xb8, 0x99}},
+ {3, [3]byte{0xe0, 0xb8, 0x9a}}, {3, [3]byte{0xe0, 0xb8, 0x9b}},
+ {3, [3]byte{0xe0, 0xb8, 0x9c}}, {3, [3]byte{0xe0, 0xb8, 0x9d}},
+ {3, [3]byte{0xe0, 0xb8, 0x9e}}, {3, [3]byte{0xe0, 0xb8, 0x9f}},
+ {3, [3]byte{0xe0, 0xb8, 0xa0}}, {3, [3]byte{0xe0, 0xb8, 0xa1}},
+ {3, [3]byte{0xe0, 0xb8, 0xa2}}, {3, [3]byte{0xe0, 0xb8, 0xa3}},
+ {3, [3]byte{0xe0, 0xb8, 0xa4}}, {3, [3]byte{0xe0, 0xb8, 0xa5}},
+ {3, [3]byte{0xe0, 0xb8, 0xa6}}, {3, [3]byte{0xe0, 0xb8, 0xa7}},
+ {3, [3]byte{0xe0, 0xb8, 0xa8}}, {3, [3]byte{0xe0, 0xb8, 0xa9}},
+ {3, [3]byte{0xe0, 0xb8, 0xaa}}, {3, [3]byte{0xe0, 0xb8, 0xab}},
+ {3, [3]byte{0xe0, 0xb8, 0xac}}, {3, [3]byte{0xe0, 0xb8, 0xad}},
+ {3, [3]byte{0xe0, 0xb8, 0xae}}, {3, [3]byte{0xe0, 0xb8, 0xaf}},
+ {3, [3]byte{0xe0, 0xb8, 0xb0}}, {3, [3]byte{0xe0, 0xb8, 0xb1}},
+ {3, [3]byte{0xe0, 0xb8, 0xb2}}, {3, [3]byte{0xe0, 0xb8, 0xb3}},
+ {3, [3]byte{0xe0, 0xb8, 0xb4}}, {3, [3]byte{0xe0, 0xb8, 0xb5}},
+ {3, [3]byte{0xe0, 0xb8, 0xb6}}, {3, [3]byte{0xe0, 0xb8, 0xb7}},
+ {3, [3]byte{0xe0, 0xb8, 0xb8}}, {3, [3]byte{0xe0, 0xb8, 0xb9}},
+ {3, [3]byte{0xe0, 0xb8, 0xba}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe0, 0xb8, 0xbf}},
+ {3, [3]byte{0xe0, 0xb9, 0x80}}, {3, [3]byte{0xe0, 0xb9, 0x81}},
+ {3, [3]byte{0xe0, 0xb9, 0x82}}, {3, [3]byte{0xe0, 0xb9, 0x83}},
+ {3, [3]byte{0xe0, 0xb9, 0x84}}, {3, [3]byte{0xe0, 0xb9, 0x85}},
+ {3, [3]byte{0xe0, 0xb9, 0x86}}, {3, [3]byte{0xe0, 0xb9, 0x87}},
+ {3, [3]byte{0xe0, 0xb9, 0x88}}, {3, [3]byte{0xe0, 0xb9, 0x89}},
+ {3, [3]byte{0xe0, 0xb9, 0x8a}}, {3, [3]byte{0xe0, 0xb9, 0x8b}},
+ {3, [3]byte{0xe0, 0xb9, 0x8c}}, {3, [3]byte{0xe0, 0xb9, 0x8d}},
+ {3, [3]byte{0xe0, 0xb9, 0x8e}}, {3, [3]byte{0xe0, 0xb9, 0x8f}},
+ {3, [3]byte{0xe0, 0xb9, 0x90}}, {3, [3]byte{0xe0, 0xb9, 0x91}},
+ {3, [3]byte{0xe0, 0xb9, 0x92}}, {3, [3]byte{0xe0, 0xb9, 0x93}},
+ {3, [3]byte{0xe0, 0xb9, 0x94}}, {3, [3]byte{0xe0, 0xb9, 0x95}},
+ {3, [3]byte{0xe0, 0xb9, 0x96}}, {3, [3]byte{0xe0, 0xb9, 0x97}},
+ {3, [3]byte{0xe0, 0xb9, 0x98}}, {3, [3]byte{0xe0, 0xb9, 0x99}},
+ {3, [3]byte{0xe0, 0xb9, 0x9a}}, {3, [3]byte{0xe0, 0xb9, 0x9b}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa1000e01, 0xa2000e02, 0xa3000e03, 0xa4000e04, 0xa5000e05, 0xa6000e06, 0xa7000e07,
+ 0xa8000e08, 0xa9000e09, 0xaa000e0a, 0xab000e0b, 0xac000e0c, 0xad000e0d, 0xae000e0e, 0xaf000e0f,
+ 0xb0000e10, 0xb1000e11, 0xb2000e12, 0xb3000e13, 0xb4000e14, 0xb5000e15, 0xb6000e16, 0xb7000e17,
+ 0xb8000e18, 0xb9000e19, 0xba000e1a, 0xbb000e1b, 0xbc000e1c, 0xbd000e1d, 0xbe000e1e, 0xbf000e1f,
+ 0xc0000e20, 0xc1000e21, 0xc2000e22, 0xc3000e23, 0xc4000e24, 0xc5000e25, 0xc6000e26, 0xc7000e27,
+ 0xc8000e28, 0xc9000e29, 0xca000e2a, 0xcb000e2b, 0xcc000e2c, 0xcd000e2d, 0xce000e2e, 0xcf000e2f,
+ 0xd0000e30, 0xd1000e31, 0xd2000e32, 0xd3000e33, 0xd4000e34, 0xd5000e35, 0xd6000e36, 0xd7000e37,
+ 0xd8000e38, 0xd9000e39, 0xda000e3a, 0xdf000e3f, 0xe0000e40, 0xe1000e41, 0xe2000e42, 0xe3000e43,
+ 0xe4000e44, 0xe5000e45, 0xe6000e46, 0xe7000e47, 0xe8000e48, 0xe9000e49, 0xea000e4a, 0xeb000e4b,
+ 0xec000e4c, 0xed000e4d, 0xee000e4e, 0xef000e4f, 0xf0000e50, 0xf1000e51, 0xf2000e52, 0xf3000e53,
+ 0xf4000e54, 0xf5000e55, 0xf6000e56, 0xf7000e57, 0xf8000e58, 0xf9000e59, 0xfa000e5a, 0xfb000e5b,
+ 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x9300201c, 0x9400201d, 0x95002022, 0x85002026,
+ 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac,
+ 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac,
+ 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac,
+ 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac, 0x800020ac,
+ },
+}
+
+// Windows1250 is the Windows 1250 encoding.
+var Windows1250 encoding.Encoding = &windows1250
+
+var windows1250 = charmap{
+ name: "Windows 1250",
+ mib: identifier.Windows1250,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xa4, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc5, 0xb9, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xa5, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xcb, 0x87, 0x00}},
+ {2, [3]byte{0xcb, 0x98, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0x84, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc4, 0x85, 0x00}},
+ {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc4, 0xbd, 0x00}}, {2, [3]byte{0xcb, 0x9d, 0x00}},
+ {2, [3]byte{0xc4, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xb9, 0x00}},
+ {2, [3]byte{0xc4, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc4, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc4, 0x8e, 0x00}},
+ {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc5, 0x87, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc5, 0x90, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc5, 0x98, 0x00}}, {2, [3]byte{0xc5, 0xae, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xb0, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc5, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc5, 0x95, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc4, 0xba, 0x00}},
+ {2, [3]byte{0xc4, 0x87, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc4, 0x9b, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc4, 0x8f, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}},
+ {2, [3]byte{0xc5, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc5, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0x99, 0x00}}, {2, [3]byte{0xc5, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc5, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc5, 0xa3, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9, 0xab0000ab, 0xac0000ac,
+ 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7,
+ 0xb80000b8, 0xbb0000bb, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc70000c7, 0xc90000c9, 0xcb0000cb,
+ 0xcd0000cd, 0xce0000ce, 0xd30000d3, 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xda0000da, 0xdc0000dc,
+ 0xdd0000dd, 0xdf0000df, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe70000e7, 0xe90000e9, 0xeb0000eb,
+ 0xed0000ed, 0xee0000ee, 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xfa0000fa, 0xfc0000fc,
+ 0xfd0000fd, 0xc3000102, 0xe3000103, 0xa5000104, 0xb9000105, 0xc6000106, 0xe6000107, 0xc800010c,
+ 0xe800010d, 0xcf00010e, 0xef00010f, 0xd0000110, 0xf0000111, 0xca000118, 0xea000119, 0xcc00011a,
+ 0xec00011b, 0xc5000139, 0xe500013a, 0xbc00013d, 0xbe00013e, 0xa3000141, 0xb3000142, 0xd1000143,
+ 0xf1000144, 0xd2000147, 0xf2000148, 0xd5000150, 0xf5000151, 0xc0000154, 0xe0000155, 0xd8000158,
+ 0xf8000159, 0x8c00015a, 0x9c00015b, 0xaa00015e, 0xba00015f, 0x8a000160, 0x9a000161, 0xde000162,
+ 0xfe000163, 0x8d000164, 0x9d000165, 0xd900016e, 0xf900016f, 0xdb000170, 0xfb000171, 0x8f000179,
+ 0x9f00017a, 0xaf00017b, 0xbf00017c, 0x8e00017d, 0x9e00017e, 0xa10002c7, 0xa20002d8, 0xff0002d9,
+ 0xb20002db, 0xbd0002dd, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c,
+ 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039,
+ 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1251 is the Windows 1251 encoding.
+var Windows1251 encoding.Encoding = &windows1251
+
+var windows1251 = charmap{
+ name: "Windows 1251",
+ mib: identifier.Windows1251,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {2, [3]byte{0xd0, 0x82, 0x00}}, {2, [3]byte{0xd0, 0x83, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xd1, 0x93, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {2, [3]byte{0xd0, 0x89, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xd0, 0x8a, 0x00}}, {2, [3]byte{0xd0, 0x8c, 0x00}},
+ {2, [3]byte{0xd0, 0x8b, 0x00}}, {2, [3]byte{0xd0, 0x8f, 0x00}},
+ {2, [3]byte{0xd1, 0x92, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {2, [3]byte{0xd1, 0x99, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xd1, 0x9a, 0x00}}, {2, [3]byte{0xd1, 0x9c, 0x00}},
+ {2, [3]byte{0xd1, 0x9b, 0x00}}, {2, [3]byte{0xd1, 0x9f, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0x8e, 0x00}},
+ {2, [3]byte{0xd1, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x88, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xd2, 0x90, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xd0, 0x81, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xd0, 0x87, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xd0, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x96, 0x00}},
+ {2, [3]byte{0xd2, 0x91, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xd1, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x84, 0x96}},
+ {2, [3]byte{0xd1, 0x94, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xd1, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x95, 0x00}}, {2, [3]byte{0xd1, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x90, 0x00}}, {2, [3]byte{0xd0, 0x91, 0x00}},
+ {2, [3]byte{0xd0, 0x92, 0x00}}, {2, [3]byte{0xd0, 0x93, 0x00}},
+ {2, [3]byte{0xd0, 0x94, 0x00}}, {2, [3]byte{0xd0, 0x95, 0x00}},
+ {2, [3]byte{0xd0, 0x96, 0x00}}, {2, [3]byte{0xd0, 0x97, 0x00}},
+ {2, [3]byte{0xd0, 0x98, 0x00}}, {2, [3]byte{0xd0, 0x99, 0x00}},
+ {2, [3]byte{0xd0, 0x9a, 0x00}}, {2, [3]byte{0xd0, 0x9b, 0x00}},
+ {2, [3]byte{0xd0, 0x9c, 0x00}}, {2, [3]byte{0xd0, 0x9d, 0x00}},
+ {2, [3]byte{0xd0, 0x9e, 0x00}}, {2, [3]byte{0xd0, 0x9f, 0x00}},
+ {2, [3]byte{0xd0, 0xa0, 0x00}}, {2, [3]byte{0xd0, 0xa1, 0x00}},
+ {2, [3]byte{0xd0, 0xa2, 0x00}}, {2, [3]byte{0xd0, 0xa3, 0x00}},
+ {2, [3]byte{0xd0, 0xa4, 0x00}}, {2, [3]byte{0xd0, 0xa5, 0x00}},
+ {2, [3]byte{0xd0, 0xa6, 0x00}}, {2, [3]byte{0xd0, 0xa7, 0x00}},
+ {2, [3]byte{0xd0, 0xa8, 0x00}}, {2, [3]byte{0xd0, 0xa9, 0x00}},
+ {2, [3]byte{0xd0, 0xaa, 0x00}}, {2, [3]byte{0xd0, 0xab, 0x00}},
+ {2, [3]byte{0xd0, 0xac, 0x00}}, {2, [3]byte{0xd0, 0xad, 0x00}},
+ {2, [3]byte{0xd0, 0xae, 0x00}}, {2, [3]byte{0xd0, 0xaf, 0x00}},
+ {2, [3]byte{0xd0, 0xb0, 0x00}}, {2, [3]byte{0xd0, 0xb1, 0x00}},
+ {2, [3]byte{0xd0, 0xb2, 0x00}}, {2, [3]byte{0xd0, 0xb3, 0x00}},
+ {2, [3]byte{0xd0, 0xb4, 0x00}}, {2, [3]byte{0xd0, 0xb5, 0x00}},
+ {2, [3]byte{0xd0, 0xb6, 0x00}}, {2, [3]byte{0xd0, 0xb7, 0x00}},
+ {2, [3]byte{0xd0, 0xb8, 0x00}}, {2, [3]byte{0xd0, 0xb9, 0x00}},
+ {2, [3]byte{0xd0, 0xba, 0x00}}, {2, [3]byte{0xd0, 0xbb, 0x00}},
+ {2, [3]byte{0xd0, 0xbc, 0x00}}, {2, [3]byte{0xd0, 0xbd, 0x00}},
+ {2, [3]byte{0xd0, 0xbe, 0x00}}, {2, [3]byte{0xd0, 0xbf, 0x00}},
+ {2, [3]byte{0xd1, 0x80, 0x00}}, {2, [3]byte{0xd1, 0x81, 0x00}},
+ {2, [3]byte{0xd1, 0x82, 0x00}}, {2, [3]byte{0xd1, 0x83, 0x00}},
+ {2, [3]byte{0xd1, 0x84, 0x00}}, {2, [3]byte{0xd1, 0x85, 0x00}},
+ {2, [3]byte{0xd1, 0x86, 0x00}}, {2, [3]byte{0xd1, 0x87, 0x00}},
+ {2, [3]byte{0xd1, 0x88, 0x00}}, {2, [3]byte{0xd1, 0x89, 0x00}},
+ {2, [3]byte{0xd1, 0x8a, 0x00}}, {2, [3]byte{0xd1, 0x8b, 0x00}},
+ {2, [3]byte{0xd1, 0x8c, 0x00}}, {2, [3]byte{0xd1, 0x8d, 0x00}},
+ {2, [3]byte{0xd1, 0x8e, 0x00}}, {2, [3]byte{0xd1, 0x8f, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad,
+ 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xa8000401,
+ 0x80000402, 0x81000403, 0xaa000404, 0xbd000405, 0xb2000406, 0xaf000407, 0xa3000408, 0x8a000409,
+ 0x8c00040a, 0x8e00040b, 0x8d00040c, 0xa100040e, 0x8f00040f, 0xc0000410, 0xc1000411, 0xc2000412,
+ 0xc3000413, 0xc4000414, 0xc5000415, 0xc6000416, 0xc7000417, 0xc8000418, 0xc9000419, 0xca00041a,
+ 0xcb00041b, 0xcc00041c, 0xcd00041d, 0xce00041e, 0xcf00041f, 0xd0000420, 0xd1000421, 0xd2000422,
+ 0xd3000423, 0xd4000424, 0xd5000425, 0xd6000426, 0xd7000427, 0xd8000428, 0xd9000429, 0xda00042a,
+ 0xdb00042b, 0xdc00042c, 0xdd00042d, 0xde00042e, 0xdf00042f, 0xe0000430, 0xe1000431, 0xe2000432,
+ 0xe3000433, 0xe4000434, 0xe5000435, 0xe6000436, 0xe7000437, 0xe8000438, 0xe9000439, 0xea00043a,
+ 0xeb00043b, 0xec00043c, 0xed00043d, 0xee00043e, 0xef00043f, 0xf0000440, 0xf1000441, 0xf2000442,
+ 0xf3000443, 0xf4000444, 0xf5000445, 0xf6000446, 0xf7000447, 0xf8000448, 0xf9000449, 0xfa00044a,
+ 0xfb00044b, 0xfc00044c, 0xfd00044d, 0xfe00044e, 0xff00044f, 0xb8000451, 0x90000452, 0x83000453,
+ 0xba000454, 0xbe000455, 0xb3000456, 0xbf000457, 0xbc000458, 0x9a000459, 0x9c00045a, 0x9e00045b,
+ 0x9d00045c, 0xa200045e, 0x9f00045f, 0xa5000490, 0xb4000491, 0x96002013, 0x97002014, 0x91002018,
+ 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022,
+ 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x880020ac, 0xb9002116, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1252 is the Windows 1252 encoding.
+var Windows1252 encoding.Encoding = &windows1252
+
+var windows1252 = charmap{
+ name: "Windows 1252",
+ mib: identifier.Windows1252,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xc5, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc3, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc3, 0x9d, 0x00}},
+ {2, [3]byte{0xc3, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc3, 0xb0, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc3, 0xbd, 0x00}},
+ {2, [3]byte{0xc3, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7,
+ 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af,
+ 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7,
+ 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf,
+ 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7,
+ 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd00000d0, 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7,
+ 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdd0000dd, 0xde0000de, 0xdf0000df,
+ 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7,
+ 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef,
+ 0xf00000f0, 0xf10000f1, 0xf20000f2, 0xf30000f3, 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7,
+ 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb, 0xfc0000fc, 0xfd0000fd, 0xfe0000fe, 0xff0000ff,
+ 0x8c000152, 0x9c000153, 0x8a000160, 0x9a000161, 0x9f000178, 0x8e00017d, 0x9e00017e, 0x83000192,
+ 0x880002c6, 0x980002dc, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c,
+ 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039,
+ 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1253 is the Windows 1253 encoding.
+var Windows1253 encoding.Encoding = &windows1253
+
+var windows1253 = charmap{
+ name: "Windows 1253",
+ mib: identifier.Windows1253,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xce, 0x85, 0x00}},
+ {2, [3]byte{0xce, 0x86, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x95}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xce, 0x84, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xce, 0x88, 0x00}}, {2, [3]byte{0xce, 0x89, 0x00}},
+ {2, [3]byte{0xce, 0x8a, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xce, 0x8c, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xce, 0x8e, 0x00}}, {2, [3]byte{0xce, 0x8f, 0x00}},
+ {2, [3]byte{0xce, 0x90, 0x00}}, {2, [3]byte{0xce, 0x91, 0x00}},
+ {2, [3]byte{0xce, 0x92, 0x00}}, {2, [3]byte{0xce, 0x93, 0x00}},
+ {2, [3]byte{0xce, 0x94, 0x00}}, {2, [3]byte{0xce, 0x95, 0x00}},
+ {2, [3]byte{0xce, 0x96, 0x00}}, {2, [3]byte{0xce, 0x97, 0x00}},
+ {2, [3]byte{0xce, 0x98, 0x00}}, {2, [3]byte{0xce, 0x99, 0x00}},
+ {2, [3]byte{0xce, 0x9a, 0x00}}, {2, [3]byte{0xce, 0x9b, 0x00}},
+ {2, [3]byte{0xce, 0x9c, 0x00}}, {2, [3]byte{0xce, 0x9d, 0x00}},
+ {2, [3]byte{0xce, 0x9e, 0x00}}, {2, [3]byte{0xce, 0x9f, 0x00}},
+ {2, [3]byte{0xce, 0xa0, 0x00}}, {2, [3]byte{0xce, 0xa1, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xce, 0xa3, 0x00}},
+ {2, [3]byte{0xce, 0xa4, 0x00}}, {2, [3]byte{0xce, 0xa5, 0x00}},
+ {2, [3]byte{0xce, 0xa6, 0x00}}, {2, [3]byte{0xce, 0xa7, 0x00}},
+ {2, [3]byte{0xce, 0xa8, 0x00}}, {2, [3]byte{0xce, 0xa9, 0x00}},
+ {2, [3]byte{0xce, 0xaa, 0x00}}, {2, [3]byte{0xce, 0xab, 0x00}},
+ {2, [3]byte{0xce, 0xac, 0x00}}, {2, [3]byte{0xce, 0xad, 0x00}},
+ {2, [3]byte{0xce, 0xae, 0x00}}, {2, [3]byte{0xce, 0xaf, 0x00}},
+ {2, [3]byte{0xce, 0xb0, 0x00}}, {2, [3]byte{0xce, 0xb1, 0x00}},
+ {2, [3]byte{0xce, 0xb2, 0x00}}, {2, [3]byte{0xce, 0xb3, 0x00}},
+ {2, [3]byte{0xce, 0xb4, 0x00}}, {2, [3]byte{0xce, 0xb5, 0x00}},
+ {2, [3]byte{0xce, 0xb6, 0x00}}, {2, [3]byte{0xce, 0xb7, 0x00}},
+ {2, [3]byte{0xce, 0xb8, 0x00}}, {2, [3]byte{0xce, 0xb9, 0x00}},
+ {2, [3]byte{0xce, 0xba, 0x00}}, {2, [3]byte{0xce, 0xbb, 0x00}},
+ {2, [3]byte{0xce, 0xbc, 0x00}}, {2, [3]byte{0xce, 0xbd, 0x00}},
+ {2, [3]byte{0xce, 0xbe, 0x00}}, {2, [3]byte{0xce, 0xbf, 0x00}},
+ {2, [3]byte{0xcf, 0x80, 0x00}}, {2, [3]byte{0xcf, 0x81, 0x00}},
+ {2, [3]byte{0xcf, 0x82, 0x00}}, {2, [3]byte{0xcf, 0x83, 0x00}},
+ {2, [3]byte{0xcf, 0x84, 0x00}}, {2, [3]byte{0xcf, 0x85, 0x00}},
+ {2, [3]byte{0xcf, 0x86, 0x00}}, {2, [3]byte{0xcf, 0x87, 0x00}},
+ {2, [3]byte{0xcf, 0x88, 0x00}}, {2, [3]byte{0xcf, 0x89, 0x00}},
+ {2, [3]byte{0xcf, 0x8a, 0x00}}, {2, [3]byte{0xcf, 0x8b, 0x00}},
+ {2, [3]byte{0xcf, 0x8c, 0x00}}, {2, [3]byte{0xcf, 0x8d, 0x00}},
+ {2, [3]byte{0xcf, 0x8e, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8, 0xa90000a9,
+ 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3,
+ 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xbb0000bb, 0xbd0000bd, 0x83000192, 0xb4000384, 0xa1000385,
+ 0xa2000386, 0xb8000388, 0xb9000389, 0xba00038a, 0xbc00038c, 0xbe00038e, 0xbf00038f, 0xc0000390,
+ 0xc1000391, 0xc2000392, 0xc3000393, 0xc4000394, 0xc5000395, 0xc6000396, 0xc7000397, 0xc8000398,
+ 0xc9000399, 0xca00039a, 0xcb00039b, 0xcc00039c, 0xcd00039d, 0xce00039e, 0xcf00039f, 0xd00003a0,
+ 0xd10003a1, 0xd30003a3, 0xd40003a4, 0xd50003a5, 0xd60003a6, 0xd70003a7, 0xd80003a8, 0xd90003a9,
+ 0xda0003aa, 0xdb0003ab, 0xdc0003ac, 0xdd0003ad, 0xde0003ae, 0xdf0003af, 0xe00003b0, 0xe10003b1,
+ 0xe20003b2, 0xe30003b3, 0xe40003b4, 0xe50003b5, 0xe60003b6, 0xe70003b7, 0xe80003b8, 0xe90003b9,
+ 0xea0003ba, 0xeb0003bb, 0xec0003bc, 0xed0003bd, 0xee0003be, 0xef0003bf, 0xf00003c0, 0xf10003c1,
+ 0xf20003c2, 0xf30003c3, 0xf40003c4, 0xf50003c5, 0xf60003c6, 0xf70003c7, 0xf80003c8, 0xf90003c9,
+ 0xfa0003ca, 0xfb0003cb, 0xfc0003cc, 0xfd0003cd, 0xfe0003ce, 0x96002013, 0x97002014, 0xaf002015,
+ 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021,
+ 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1254 is the Windows 1254 encoding.
+var Windows1254 encoding.Encoding = &windows1254
+
+var windows1254 = charmap{
+ name: "Windows 1254",
+ mib: identifier.Windows1254,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc3, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xc3, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc4, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xc3, 0x92, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc4, 0xb0, 0x00}},
+ {2, [3]byte{0xc5, 0x9e, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc3, 0xa3, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xac, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xc3, 0xb2, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc4, 0xb1, 0x00}},
+ {2, [3]byte{0xc5, 0x9f, 0x00}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7,
+ 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af,
+ 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7,
+ 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf,
+ 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc30000c3, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7,
+ 0xc80000c8, 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcc0000cc, 0xcd0000cd, 0xce0000ce, 0xcf0000cf,
+ 0xd10000d1, 0xd20000d2, 0xd30000d3, 0xd40000d4, 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xd80000d8,
+ 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc, 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2,
+ 0xe30000e3, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7, 0xe80000e8, 0xe90000e9, 0xea0000ea,
+ 0xeb0000eb, 0xec0000ec, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1, 0xf20000f2, 0xf30000f3,
+ 0xf40000f4, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb,
+ 0xfc0000fc, 0xff0000ff, 0xd000011e, 0xf000011f, 0xdd000130, 0xfd000131, 0x8c000152, 0x9c000153,
+ 0xde00015e, 0xfe00015f, 0x8a000160, 0x9a000161, 0x9f000178, 0x83000192, 0x880002c6, 0x980002dc,
+ 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e,
+ 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1255 is the Windows 1255 encoding.
+var Windows1255 encoding.Encoding = &windows1255
+
+var windows1255 = charmap{
+ name: "Windows 1255",
+ mib: identifier.Windows1255,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xaa}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xb7, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xd6, 0xb0, 0x00}}, {2, [3]byte{0xd6, 0xb1, 0x00}},
+ {2, [3]byte{0xd6, 0xb2, 0x00}}, {2, [3]byte{0xd6, 0xb3, 0x00}},
+ {2, [3]byte{0xd6, 0xb4, 0x00}}, {2, [3]byte{0xd6, 0xb5, 0x00}},
+ {2, [3]byte{0xd6, 0xb6, 0x00}}, {2, [3]byte{0xd6, 0xb7, 0x00}},
+ {2, [3]byte{0xd6, 0xb8, 0x00}}, {2, [3]byte{0xd6, 0xb9, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xd6, 0xbb, 0x00}},
+ {2, [3]byte{0xd6, 0xbc, 0x00}}, {2, [3]byte{0xd6, 0xbd, 0x00}},
+ {2, [3]byte{0xd6, 0xbe, 0x00}}, {2, [3]byte{0xd6, 0xbf, 0x00}},
+ {2, [3]byte{0xd7, 0x80, 0x00}}, {2, [3]byte{0xd7, 0x81, 0x00}},
+ {2, [3]byte{0xd7, 0x82, 0x00}}, {2, [3]byte{0xd7, 0x83, 0x00}},
+ {2, [3]byte{0xd7, 0xb0, 0x00}}, {2, [3]byte{0xd7, 0xb1, 0x00}},
+ {2, [3]byte{0xd7, 0xb2, 0x00}}, {2, [3]byte{0xd7, 0xb3, 0x00}},
+ {2, [3]byte{0xd7, 0xb4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xd7, 0x90, 0x00}}, {2, [3]byte{0xd7, 0x91, 0x00}},
+ {2, [3]byte{0xd7, 0x92, 0x00}}, {2, [3]byte{0xd7, 0x93, 0x00}},
+ {2, [3]byte{0xd7, 0x94, 0x00}}, {2, [3]byte{0xd7, 0x95, 0x00}},
+ {2, [3]byte{0xd7, 0x96, 0x00}}, {2, [3]byte{0xd7, 0x97, 0x00}},
+ {2, [3]byte{0xd7, 0x98, 0x00}}, {2, [3]byte{0xd7, 0x99, 0x00}},
+ {2, [3]byte{0xd7, 0x9a, 0x00}}, {2, [3]byte{0xd7, 0x9b, 0x00}},
+ {2, [3]byte{0xd7, 0x9c, 0x00}}, {2, [3]byte{0xd7, 0x9d, 0x00}},
+ {2, [3]byte{0xd7, 0x9e, 0x00}}, {2, [3]byte{0xd7, 0x9f, 0x00}},
+ {2, [3]byte{0xd7, 0xa0, 0x00}}, {2, [3]byte{0xd7, 0xa1, 0x00}},
+ {2, [3]byte{0xd7, 0xa2, 0x00}}, {2, [3]byte{0xd7, 0xa3, 0x00}},
+ {2, [3]byte{0xd7, 0xa4, 0x00}}, {2, [3]byte{0xd7, 0xa5, 0x00}},
+ {2, [3]byte{0xd7, 0xa6, 0x00}}, {2, [3]byte{0xd7, 0xa7, 0x00}},
+ {2, [3]byte{0xd7, 0xa8, 0x00}}, {2, [3]byte{0xd7, 0xa9, 0x00}},
+ {2, [3]byte{0xd7, 0xaa, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x8e}},
+ {3, [3]byte{0xe2, 0x80, 0x8f}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8,
+ 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1,
+ 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9,
+ 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf, 0xaa0000d7, 0xba0000f7, 0x83000192,
+ 0x880002c6, 0x980002dc, 0xc00005b0, 0xc10005b1, 0xc20005b2, 0xc30005b3, 0xc40005b4, 0xc50005b5,
+ 0xc60005b6, 0xc70005b7, 0xc80005b8, 0xc90005b9, 0xcb0005bb, 0xcc0005bc, 0xcd0005bd, 0xce0005be,
+ 0xcf0005bf, 0xd00005c0, 0xd10005c1, 0xd20005c2, 0xd30005c3, 0xe00005d0, 0xe10005d1, 0xe20005d2,
+ 0xe30005d3, 0xe40005d4, 0xe50005d5, 0xe60005d6, 0xe70005d7, 0xe80005d8, 0xe90005d9, 0xea0005da,
+ 0xeb0005db, 0xec0005dc, 0xed0005dd, 0xee0005de, 0xef0005df, 0xf00005e0, 0xf10005e1, 0xf20005e2,
+ 0xf30005e3, 0xf40005e4, 0xf50005e5, 0xf60005e6, 0xf70005e7, 0xf80005e8, 0xf90005e9, 0xfa0005ea,
+ 0xd40005f0, 0xd50005f1, 0xd60005f2, 0xd70005f3, 0xd80005f4, 0xfd00200e, 0xfe00200f, 0x96002013,
+ 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020,
+ 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xa40020aa, 0x800020ac,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1256 is the Windows 1256 encoding.
+var Windows1256 encoding.Encoding = &windows1256
+
+var windows1256 = charmap{
+ name: "Windows 1256",
+ mib: identifier.Windows1256,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {2, [3]byte{0xd9, 0xbe, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {2, [3]byte{0xd9, 0xb9, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {2, [3]byte{0xda, 0x86, 0x00}},
+ {2, [3]byte{0xda, 0x98, 0x00}}, {2, [3]byte{0xda, 0x88, 0x00}},
+ {2, [3]byte{0xda, 0xaf, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {2, [3]byte{0xda, 0xa9, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {2, [3]byte{0xda, 0x91, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8c}},
+ {3, [3]byte{0xe2, 0x80, 0x8d}}, {2, [3]byte{0xda, 0xba, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xd8, 0x8c, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xda, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xd8, 0x9b, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xd8, 0x9f, 0x00}},
+ {2, [3]byte{0xdb, 0x81, 0x00}}, {2, [3]byte{0xd8, 0xa1, 0x00}},
+ {2, [3]byte{0xd8, 0xa2, 0x00}}, {2, [3]byte{0xd8, 0xa3, 0x00}},
+ {2, [3]byte{0xd8, 0xa4, 0x00}}, {2, [3]byte{0xd8, 0xa5, 0x00}},
+ {2, [3]byte{0xd8, 0xa6, 0x00}}, {2, [3]byte{0xd8, 0xa7, 0x00}},
+ {2, [3]byte{0xd8, 0xa8, 0x00}}, {2, [3]byte{0xd8, 0xa9, 0x00}},
+ {2, [3]byte{0xd8, 0xaa, 0x00}}, {2, [3]byte{0xd8, 0xab, 0x00}},
+ {2, [3]byte{0xd8, 0xac, 0x00}}, {2, [3]byte{0xd8, 0xad, 0x00}},
+ {2, [3]byte{0xd8, 0xae, 0x00}}, {2, [3]byte{0xd8, 0xaf, 0x00}},
+ {2, [3]byte{0xd8, 0xb0, 0x00}}, {2, [3]byte{0xd8, 0xb1, 0x00}},
+ {2, [3]byte{0xd8, 0xb2, 0x00}}, {2, [3]byte{0xd8, 0xb3, 0x00}},
+ {2, [3]byte{0xd8, 0xb4, 0x00}}, {2, [3]byte{0xd8, 0xb5, 0x00}},
+ {2, [3]byte{0xd8, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xd8, 0xb7, 0x00}}, {2, [3]byte{0xd8, 0xb8, 0x00}},
+ {2, [3]byte{0xd8, 0xb9, 0x00}}, {2, [3]byte{0xd8, 0xba, 0x00}},
+ {2, [3]byte{0xd9, 0x80, 0x00}}, {2, [3]byte{0xd9, 0x81, 0x00}},
+ {2, [3]byte{0xd9, 0x82, 0x00}}, {2, [3]byte{0xd9, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xd9, 0x84, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xd9, 0x85, 0x00}},
+ {2, [3]byte{0xd9, 0x86, 0x00}}, {2, [3]byte{0xd9, 0x87, 0x00}},
+ {2, [3]byte{0xd9, 0x88, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xd9, 0x89, 0x00}}, {2, [3]byte{0xd9, 0x8a, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xd9, 0x8b, 0x00}}, {2, [3]byte{0xd9, 0x8c, 0x00}},
+ {2, [3]byte{0xd9, 0x8d, 0x00}}, {2, [3]byte{0xd9, 0x8e, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xd9, 0x8f, 0x00}},
+ {2, [3]byte{0xd9, 0x90, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xd9, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xd9, 0x92, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {3, [3]byte{0xe2, 0x80, 0x8e}},
+ {3, [3]byte{0xe2, 0x80, 0x8f}}, {2, [3]byte{0xdb, 0x92, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7, 0xa80000a8,
+ 0xa90000a9, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af, 0xb00000b0, 0xb10000b1,
+ 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0xb80000b8, 0xb90000b9,
+ 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xd70000d7, 0xe00000e0, 0xe20000e2, 0xe70000e7,
+ 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xee0000ee, 0xef0000ef, 0xf40000f4, 0xf70000f7,
+ 0xf90000f9, 0xfb0000fb, 0xfc0000fc, 0x8c000152, 0x9c000153, 0x83000192, 0x880002c6, 0xa100060c,
+ 0xba00061b, 0xbf00061f, 0xc1000621, 0xc2000622, 0xc3000623, 0xc4000624, 0xc5000625, 0xc6000626,
+ 0xc7000627, 0xc8000628, 0xc9000629, 0xca00062a, 0xcb00062b, 0xcc00062c, 0xcd00062d, 0xce00062e,
+ 0xcf00062f, 0xd0000630, 0xd1000631, 0xd2000632, 0xd3000633, 0xd4000634, 0xd5000635, 0xd6000636,
+ 0xd8000637, 0xd9000638, 0xda000639, 0xdb00063a, 0xdc000640, 0xdd000641, 0xde000642, 0xdf000643,
+ 0xe1000644, 0xe3000645, 0xe4000646, 0xe5000647, 0xe6000648, 0xec000649, 0xed00064a, 0xf000064b,
+ 0xf100064c, 0xf200064d, 0xf300064e, 0xf500064f, 0xf6000650, 0xf8000651, 0xfa000652, 0x8a000679,
+ 0x8100067e, 0x8d000686, 0x8f000688, 0x9a000691, 0x8e000698, 0x980006a9, 0x900006af, 0x9f0006ba,
+ 0xaa0006be, 0xc00006c1, 0xff0006d2, 0x9d00200c, 0x9e00200d, 0xfd00200e, 0xfe00200f, 0x96002013,
+ 0x97002014, 0x91002018, 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020,
+ 0x87002021, 0x95002022, 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122,
+ },
+}
+
+// Windows1257 is the Windows 1257 encoding.
+var Windows1257 encoding.Encoding = &windows1257
+
+var windows1257 = charmap{
+ name: "Windows 1257",
+ mib: identifier.Windows1257,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xa8, 0x00}},
+ {2, [3]byte{0xcb, 0x87, 0x00}}, {2, [3]byte{0xc2, 0xb8, 0x00}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xcb, 0x9b, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0x96, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc3, 0x86, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc5, 0x97, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc3, 0xa6, 0x00}},
+ {2, [3]byte{0xc4, 0x84, 0x00}}, {2, [3]byte{0xc4, 0xae, 0x00}},
+ {2, [3]byte{0xc4, 0x80, 0x00}}, {2, [3]byte{0xc4, 0x86, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc4, 0x98, 0x00}}, {2, [3]byte{0xc4, 0x92, 0x00}},
+ {2, [3]byte{0xc4, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc5, 0xb9, 0x00}}, {2, [3]byte{0xc4, 0x96, 0x00}},
+ {2, [3]byte{0xc4, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0xb6, 0x00}},
+ {2, [3]byte{0xc4, 0xaa, 0x00}}, {2, [3]byte{0xc4, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0xa0, 0x00}}, {2, [3]byte{0xc5, 0x83, 0x00}},
+ {2, [3]byte{0xc5, 0x85, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc5, 0x8c, 0x00}}, {2, [3]byte{0xc3, 0x95, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc5, 0xb2, 0x00}}, {2, [3]byte{0xc5, 0x81, 0x00}},
+ {2, [3]byte{0xc5, 0x9a, 0x00}}, {2, [3]byte{0xc5, 0xaa, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc5, 0xbb, 0x00}},
+ {2, [3]byte{0xc5, 0xbd, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc4, 0x85, 0x00}}, {2, [3]byte{0xc4, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x81, 0x00}}, {2, [3]byte{0xc4, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc4, 0x99, 0x00}}, {2, [3]byte{0xc4, 0x93, 0x00}},
+ {2, [3]byte{0xc4, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc5, 0xba, 0x00}}, {2, [3]byte{0xc4, 0x97, 0x00}},
+ {2, [3]byte{0xc4, 0xa3, 0x00}}, {2, [3]byte{0xc4, 0xb7, 0x00}},
+ {2, [3]byte{0xc4, 0xab, 0x00}}, {2, [3]byte{0xc4, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0xa1, 0x00}}, {2, [3]byte{0xc5, 0x84, 0x00}},
+ {2, [3]byte{0xc5, 0x86, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc5, 0x8d, 0x00}}, {2, [3]byte{0xc3, 0xb5, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc5, 0xb3, 0x00}}, {2, [3]byte{0xc5, 0x82, 0x00}},
+ {2, [3]byte{0xc5, 0x9b, 0x00}}, {2, [3]byte{0xc5, 0xab, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc5, 0xbc, 0x00}},
+ {2, [3]byte{0xc5, 0xbe, 0x00}}, {2, [3]byte{0xcb, 0x99, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa60000a6, 0xa70000a7, 0x8d0000a8, 0xa90000a9,
+ 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0x9d0000af, 0xb00000b0, 0xb10000b1, 0xb20000b2,
+ 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7, 0x8f0000b8, 0xb90000b9, 0xbb0000bb,
+ 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xc40000c4, 0xc50000c5, 0xaf0000c6, 0xc90000c9, 0xd30000d3,
+ 0xd50000d5, 0xd60000d6, 0xd70000d7, 0xa80000d8, 0xdc0000dc, 0xdf0000df, 0xe40000e4, 0xe50000e5,
+ 0xbf0000e6, 0xe90000e9, 0xf30000f3, 0xf50000f5, 0xf60000f6, 0xf70000f7, 0xb80000f8, 0xfc0000fc,
+ 0xc2000100, 0xe2000101, 0xc0000104, 0xe0000105, 0xc3000106, 0xe3000107, 0xc800010c, 0xe800010d,
+ 0xc7000112, 0xe7000113, 0xcb000116, 0xeb000117, 0xc6000118, 0xe6000119, 0xcc000122, 0xec000123,
+ 0xce00012a, 0xee00012b, 0xc100012e, 0xe100012f, 0xcd000136, 0xed000137, 0xcf00013b, 0xef00013c,
+ 0xd9000141, 0xf9000142, 0xd1000143, 0xf1000144, 0xd2000145, 0xf2000146, 0xd400014c, 0xf400014d,
+ 0xaa000156, 0xba000157, 0xda00015a, 0xfa00015b, 0xd0000160, 0xf0000161, 0xdb00016a, 0xfb00016b,
+ 0xd8000172, 0xf8000173, 0xca000179, 0xea00017a, 0xdd00017b, 0xfd00017c, 0xde00017d, 0xfe00017e,
+ 0x8e0002c7, 0xff0002d9, 0x9e0002db, 0x96002013, 0x97002014, 0x91002018, 0x92002019, 0x8200201a,
+ 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022, 0x85002026, 0x89002030,
+ 0x8b002039, 0x9b00203a, 0x800020ac, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// Windows1258 is the Windows 1258 encoding.
+var Windows1258 encoding.Encoding = &windows1258
+
+var windows1258 = charmap{
+ name: "Windows 1258",
+ mib: identifier.Windows1258,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xac}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xe2, 0x80, 0x9a}}, {2, [3]byte{0xc6, 0x92, 0x00}},
+ {3, [3]byte{0xe2, 0x80, 0x9e}}, {3, [3]byte{0xe2, 0x80, 0xa6}},
+ {3, [3]byte{0xe2, 0x80, 0xa0}}, {3, [3]byte{0xe2, 0x80, 0xa1}},
+ {2, [3]byte{0xcb, 0x86, 0x00}}, {3, [3]byte{0xe2, 0x80, 0xb0}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xb9}},
+ {2, [3]byte{0xc5, 0x92, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0x98}},
+ {3, [3]byte{0xe2, 0x80, 0x99}}, {3, [3]byte{0xe2, 0x80, 0x9c}},
+ {3, [3]byte{0xe2, 0x80, 0x9d}}, {3, [3]byte{0xe2, 0x80, 0xa2}},
+ {3, [3]byte{0xe2, 0x80, 0x93}}, {3, [3]byte{0xe2, 0x80, 0x94}},
+ {2, [3]byte{0xcb, 0x9c, 0x00}}, {3, [3]byte{0xe2, 0x84, 0xa2}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {3, [3]byte{0xe2, 0x80, 0xba}},
+ {2, [3]byte{0xc5, 0x93, 0x00}}, {3, [3]byte{0xef, 0xbf, 0xbd}},
+ {3, [3]byte{0xef, 0xbf, 0xbd}}, {2, [3]byte{0xc5, 0xb8, 0x00}},
+ {2, [3]byte{0xc2, 0xa0, 0x00}}, {2, [3]byte{0xc2, 0xa1, 0x00}},
+ {2, [3]byte{0xc2, 0xa2, 0x00}}, {2, [3]byte{0xc2, 0xa3, 0x00}},
+ {2, [3]byte{0xc2, 0xa4, 0x00}}, {2, [3]byte{0xc2, 0xa5, 0x00}},
+ {2, [3]byte{0xc2, 0xa6, 0x00}}, {2, [3]byte{0xc2, 0xa7, 0x00}},
+ {2, [3]byte{0xc2, 0xa8, 0x00}}, {2, [3]byte{0xc2, 0xa9, 0x00}},
+ {2, [3]byte{0xc2, 0xaa, 0x00}}, {2, [3]byte{0xc2, 0xab, 0x00}},
+ {2, [3]byte{0xc2, 0xac, 0x00}}, {2, [3]byte{0xc2, 0xad, 0x00}},
+ {2, [3]byte{0xc2, 0xae, 0x00}}, {2, [3]byte{0xc2, 0xaf, 0x00}},
+ {2, [3]byte{0xc2, 0xb0, 0x00}}, {2, [3]byte{0xc2, 0xb1, 0x00}},
+ {2, [3]byte{0xc2, 0xb2, 0x00}}, {2, [3]byte{0xc2, 0xb3, 0x00}},
+ {2, [3]byte{0xc2, 0xb4, 0x00}}, {2, [3]byte{0xc2, 0xb5, 0x00}},
+ {2, [3]byte{0xc2, 0xb6, 0x00}}, {2, [3]byte{0xc2, 0xb7, 0x00}},
+ {2, [3]byte{0xc2, 0xb8, 0x00}}, {2, [3]byte{0xc2, 0xb9, 0x00}},
+ {2, [3]byte{0xc2, 0xba, 0x00}}, {2, [3]byte{0xc2, 0xbb, 0x00}},
+ {2, [3]byte{0xc2, 0xbc, 0x00}}, {2, [3]byte{0xc2, 0xbd, 0x00}},
+ {2, [3]byte{0xc2, 0xbe, 0x00}}, {2, [3]byte{0xc2, 0xbf, 0x00}},
+ {2, [3]byte{0xc3, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x81, 0x00}},
+ {2, [3]byte{0xc3, 0x82, 0x00}}, {2, [3]byte{0xc4, 0x82, 0x00}},
+ {2, [3]byte{0xc3, 0x84, 0x00}}, {2, [3]byte{0xc3, 0x85, 0x00}},
+ {2, [3]byte{0xc3, 0x86, 0x00}}, {2, [3]byte{0xc3, 0x87, 0x00}},
+ {2, [3]byte{0xc3, 0x88, 0x00}}, {2, [3]byte{0xc3, 0x89, 0x00}},
+ {2, [3]byte{0xc3, 0x8a, 0x00}}, {2, [3]byte{0xc3, 0x8b, 0x00}},
+ {2, [3]byte{0xcc, 0x80, 0x00}}, {2, [3]byte{0xc3, 0x8d, 0x00}},
+ {2, [3]byte{0xc3, 0x8e, 0x00}}, {2, [3]byte{0xc3, 0x8f, 0x00}},
+ {2, [3]byte{0xc4, 0x90, 0x00}}, {2, [3]byte{0xc3, 0x91, 0x00}},
+ {2, [3]byte{0xcc, 0x89, 0x00}}, {2, [3]byte{0xc3, 0x93, 0x00}},
+ {2, [3]byte{0xc3, 0x94, 0x00}}, {2, [3]byte{0xc6, 0xa0, 0x00}},
+ {2, [3]byte{0xc3, 0x96, 0x00}}, {2, [3]byte{0xc3, 0x97, 0x00}},
+ {2, [3]byte{0xc3, 0x98, 0x00}}, {2, [3]byte{0xc3, 0x99, 0x00}},
+ {2, [3]byte{0xc3, 0x9a, 0x00}}, {2, [3]byte{0xc3, 0x9b, 0x00}},
+ {2, [3]byte{0xc3, 0x9c, 0x00}}, {2, [3]byte{0xc6, 0xaf, 0x00}},
+ {2, [3]byte{0xcc, 0x83, 0x00}}, {2, [3]byte{0xc3, 0x9f, 0x00}},
+ {2, [3]byte{0xc3, 0xa0, 0x00}}, {2, [3]byte{0xc3, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xa2, 0x00}}, {2, [3]byte{0xc4, 0x83, 0x00}},
+ {2, [3]byte{0xc3, 0xa4, 0x00}}, {2, [3]byte{0xc3, 0xa5, 0x00}},
+ {2, [3]byte{0xc3, 0xa6, 0x00}}, {2, [3]byte{0xc3, 0xa7, 0x00}},
+ {2, [3]byte{0xc3, 0xa8, 0x00}}, {2, [3]byte{0xc3, 0xa9, 0x00}},
+ {2, [3]byte{0xc3, 0xaa, 0x00}}, {2, [3]byte{0xc3, 0xab, 0x00}},
+ {2, [3]byte{0xcc, 0x81, 0x00}}, {2, [3]byte{0xc3, 0xad, 0x00}},
+ {2, [3]byte{0xc3, 0xae, 0x00}}, {2, [3]byte{0xc3, 0xaf, 0x00}},
+ {2, [3]byte{0xc4, 0x91, 0x00}}, {2, [3]byte{0xc3, 0xb1, 0x00}},
+ {2, [3]byte{0xcc, 0xa3, 0x00}}, {2, [3]byte{0xc3, 0xb3, 0x00}},
+ {2, [3]byte{0xc3, 0xb4, 0x00}}, {2, [3]byte{0xc6, 0xa1, 0x00}},
+ {2, [3]byte{0xc3, 0xb6, 0x00}}, {2, [3]byte{0xc3, 0xb7, 0x00}},
+ {2, [3]byte{0xc3, 0xb8, 0x00}}, {2, [3]byte{0xc3, 0xb9, 0x00}},
+ {2, [3]byte{0xc3, 0xba, 0x00}}, {2, [3]byte{0xc3, 0xbb, 0x00}},
+ {2, [3]byte{0xc3, 0xbc, 0x00}}, {2, [3]byte{0xc6, 0xb0, 0x00}},
+ {3, [3]byte{0xe2, 0x82, 0xab}}, {2, [3]byte{0xc3, 0xbf, 0x00}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0xa00000a0, 0xa10000a1, 0xa20000a2, 0xa30000a3, 0xa40000a4, 0xa50000a5, 0xa60000a6, 0xa70000a7,
+ 0xa80000a8, 0xa90000a9, 0xaa0000aa, 0xab0000ab, 0xac0000ac, 0xad0000ad, 0xae0000ae, 0xaf0000af,
+ 0xb00000b0, 0xb10000b1, 0xb20000b2, 0xb30000b3, 0xb40000b4, 0xb50000b5, 0xb60000b6, 0xb70000b7,
+ 0xb80000b8, 0xb90000b9, 0xba0000ba, 0xbb0000bb, 0xbc0000bc, 0xbd0000bd, 0xbe0000be, 0xbf0000bf,
+ 0xc00000c0, 0xc10000c1, 0xc20000c2, 0xc40000c4, 0xc50000c5, 0xc60000c6, 0xc70000c7, 0xc80000c8,
+ 0xc90000c9, 0xca0000ca, 0xcb0000cb, 0xcd0000cd, 0xce0000ce, 0xcf0000cf, 0xd10000d1, 0xd30000d3,
+ 0xd40000d4, 0xd60000d6, 0xd70000d7, 0xd80000d8, 0xd90000d9, 0xda0000da, 0xdb0000db, 0xdc0000dc,
+ 0xdf0000df, 0xe00000e0, 0xe10000e1, 0xe20000e2, 0xe40000e4, 0xe50000e5, 0xe60000e6, 0xe70000e7,
+ 0xe80000e8, 0xe90000e9, 0xea0000ea, 0xeb0000eb, 0xed0000ed, 0xee0000ee, 0xef0000ef, 0xf10000f1,
+ 0xf30000f3, 0xf40000f4, 0xf60000f6, 0xf70000f7, 0xf80000f8, 0xf90000f9, 0xfa0000fa, 0xfb0000fb,
+ 0xfc0000fc, 0xff0000ff, 0xc3000102, 0xe3000103, 0xd0000110, 0xf0000111, 0x8c000152, 0x9c000153,
+ 0x9f000178, 0x83000192, 0xd50001a0, 0xf50001a1, 0xdd0001af, 0xfd0001b0, 0x880002c6, 0x980002dc,
+ 0xcc000300, 0xec000301, 0xde000303, 0xd2000309, 0xf2000323, 0x96002013, 0x97002014, 0x91002018,
+ 0x92002019, 0x8200201a, 0x9300201c, 0x9400201d, 0x8400201e, 0x86002020, 0x87002021, 0x95002022,
+ 0x85002026, 0x89002030, 0x8b002039, 0x9b00203a, 0xfe0020ab, 0x800020ac, 0x99002122, 0x99002122,
+ 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122, 0x99002122,
+ },
+}
+
+// XUserDefined is the X-User-Defined encoding.
+//
+// It is defined at http://encoding.spec.whatwg.org/#x-user-defined
+var XUserDefined encoding.Encoding = &xUserDefined
+
+var xUserDefined = charmap{
+ name: "X-User-Defined",
+ mib: identifier.XUserDefined,
+ asciiSuperset: true,
+ low: 0x80,
+ replacement: 0x1a,
+ decode: [256]utf8Enc{
+ {1, [3]byte{0x00, 0x00, 0x00}}, {1, [3]byte{0x01, 0x00, 0x00}},
+ {1, [3]byte{0x02, 0x00, 0x00}}, {1, [3]byte{0x03, 0x00, 0x00}},
+ {1, [3]byte{0x04, 0x00, 0x00}}, {1, [3]byte{0x05, 0x00, 0x00}},
+ {1, [3]byte{0x06, 0x00, 0x00}}, {1, [3]byte{0x07, 0x00, 0x00}},
+ {1, [3]byte{0x08, 0x00, 0x00}}, {1, [3]byte{0x09, 0x00, 0x00}},
+ {1, [3]byte{0x0a, 0x00, 0x00}}, {1, [3]byte{0x0b, 0x00, 0x00}},
+ {1, [3]byte{0x0c, 0x00, 0x00}}, {1, [3]byte{0x0d, 0x00, 0x00}},
+ {1, [3]byte{0x0e, 0x00, 0x00}}, {1, [3]byte{0x0f, 0x00, 0x00}},
+ {1, [3]byte{0x10, 0x00, 0x00}}, {1, [3]byte{0x11, 0x00, 0x00}},
+ {1, [3]byte{0x12, 0x00, 0x00}}, {1, [3]byte{0x13, 0x00, 0x00}},
+ {1, [3]byte{0x14, 0x00, 0x00}}, {1, [3]byte{0x15, 0x00, 0x00}},
+ {1, [3]byte{0x16, 0x00, 0x00}}, {1, [3]byte{0x17, 0x00, 0x00}},
+ {1, [3]byte{0x18, 0x00, 0x00}}, {1, [3]byte{0x19, 0x00, 0x00}},
+ {1, [3]byte{0x1a, 0x00, 0x00}}, {1, [3]byte{0x1b, 0x00, 0x00}},
+ {1, [3]byte{0x1c, 0x00, 0x00}}, {1, [3]byte{0x1d, 0x00, 0x00}},
+ {1, [3]byte{0x1e, 0x00, 0x00}}, {1, [3]byte{0x1f, 0x00, 0x00}},
+ {1, [3]byte{0x20, 0x00, 0x00}}, {1, [3]byte{0x21, 0x00, 0x00}},
+ {1, [3]byte{0x22, 0x00, 0x00}}, {1, [3]byte{0x23, 0x00, 0x00}},
+ {1, [3]byte{0x24, 0x00, 0x00}}, {1, [3]byte{0x25, 0x00, 0x00}},
+ {1, [3]byte{0x26, 0x00, 0x00}}, {1, [3]byte{0x27, 0x00, 0x00}},
+ {1, [3]byte{0x28, 0x00, 0x00}}, {1, [3]byte{0x29, 0x00, 0x00}},
+ {1, [3]byte{0x2a, 0x00, 0x00}}, {1, [3]byte{0x2b, 0x00, 0x00}},
+ {1, [3]byte{0x2c, 0x00, 0x00}}, {1, [3]byte{0x2d, 0x00, 0x00}},
+ {1, [3]byte{0x2e, 0x00, 0x00}}, {1, [3]byte{0x2f, 0x00, 0x00}},
+ {1, [3]byte{0x30, 0x00, 0x00}}, {1, [3]byte{0x31, 0x00, 0x00}},
+ {1, [3]byte{0x32, 0x00, 0x00}}, {1, [3]byte{0x33, 0x00, 0x00}},
+ {1, [3]byte{0x34, 0x00, 0x00}}, {1, [3]byte{0x35, 0x00, 0x00}},
+ {1, [3]byte{0x36, 0x00, 0x00}}, {1, [3]byte{0x37, 0x00, 0x00}},
+ {1, [3]byte{0x38, 0x00, 0x00}}, {1, [3]byte{0x39, 0x00, 0x00}},
+ {1, [3]byte{0x3a, 0x00, 0x00}}, {1, [3]byte{0x3b, 0x00, 0x00}},
+ {1, [3]byte{0x3c, 0x00, 0x00}}, {1, [3]byte{0x3d, 0x00, 0x00}},
+ {1, [3]byte{0x3e, 0x00, 0x00}}, {1, [3]byte{0x3f, 0x00, 0x00}},
+ {1, [3]byte{0x40, 0x00, 0x00}}, {1, [3]byte{0x41, 0x00, 0x00}},
+ {1, [3]byte{0x42, 0x00, 0x00}}, {1, [3]byte{0x43, 0x00, 0x00}},
+ {1, [3]byte{0x44, 0x00, 0x00}}, {1, [3]byte{0x45, 0x00, 0x00}},
+ {1, [3]byte{0x46, 0x00, 0x00}}, {1, [3]byte{0x47, 0x00, 0x00}},
+ {1, [3]byte{0x48, 0x00, 0x00}}, {1, [3]byte{0x49, 0x00, 0x00}},
+ {1, [3]byte{0x4a, 0x00, 0x00}}, {1, [3]byte{0x4b, 0x00, 0x00}},
+ {1, [3]byte{0x4c, 0x00, 0x00}}, {1, [3]byte{0x4d, 0x00, 0x00}},
+ {1, [3]byte{0x4e, 0x00, 0x00}}, {1, [3]byte{0x4f, 0x00, 0x00}},
+ {1, [3]byte{0x50, 0x00, 0x00}}, {1, [3]byte{0x51, 0x00, 0x00}},
+ {1, [3]byte{0x52, 0x00, 0x00}}, {1, [3]byte{0x53, 0x00, 0x00}},
+ {1, [3]byte{0x54, 0x00, 0x00}}, {1, [3]byte{0x55, 0x00, 0x00}},
+ {1, [3]byte{0x56, 0x00, 0x00}}, {1, [3]byte{0x57, 0x00, 0x00}},
+ {1, [3]byte{0x58, 0x00, 0x00}}, {1, [3]byte{0x59, 0x00, 0x00}},
+ {1, [3]byte{0x5a, 0x00, 0x00}}, {1, [3]byte{0x5b, 0x00, 0x00}},
+ {1, [3]byte{0x5c, 0x00, 0x00}}, {1, [3]byte{0x5d, 0x00, 0x00}},
+ {1, [3]byte{0x5e, 0x00, 0x00}}, {1, [3]byte{0x5f, 0x00, 0x00}},
+ {1, [3]byte{0x60, 0x00, 0x00}}, {1, [3]byte{0x61, 0x00, 0x00}},
+ {1, [3]byte{0x62, 0x00, 0x00}}, {1, [3]byte{0x63, 0x00, 0x00}},
+ {1, [3]byte{0x64, 0x00, 0x00}}, {1, [3]byte{0x65, 0x00, 0x00}},
+ {1, [3]byte{0x66, 0x00, 0x00}}, {1, [3]byte{0x67, 0x00, 0x00}},
+ {1, [3]byte{0x68, 0x00, 0x00}}, {1, [3]byte{0x69, 0x00, 0x00}},
+ {1, [3]byte{0x6a, 0x00, 0x00}}, {1, [3]byte{0x6b, 0x00, 0x00}},
+ {1, [3]byte{0x6c, 0x00, 0x00}}, {1, [3]byte{0x6d, 0x00, 0x00}},
+ {1, [3]byte{0x6e, 0x00, 0x00}}, {1, [3]byte{0x6f, 0x00, 0x00}},
+ {1, [3]byte{0x70, 0x00, 0x00}}, {1, [3]byte{0x71, 0x00, 0x00}},
+ {1, [3]byte{0x72, 0x00, 0x00}}, {1, [3]byte{0x73, 0x00, 0x00}},
+ {1, [3]byte{0x74, 0x00, 0x00}}, {1, [3]byte{0x75, 0x00, 0x00}},
+ {1, [3]byte{0x76, 0x00, 0x00}}, {1, [3]byte{0x77, 0x00, 0x00}},
+ {1, [3]byte{0x78, 0x00, 0x00}}, {1, [3]byte{0x79, 0x00, 0x00}},
+ {1, [3]byte{0x7a, 0x00, 0x00}}, {1, [3]byte{0x7b, 0x00, 0x00}},
+ {1, [3]byte{0x7c, 0x00, 0x00}}, {1, [3]byte{0x7d, 0x00, 0x00}},
+ {1, [3]byte{0x7e, 0x00, 0x00}}, {1, [3]byte{0x7f, 0x00, 0x00}},
+ {3, [3]byte{0xef, 0x9e, 0x80}}, {3, [3]byte{0xef, 0x9e, 0x81}},
+ {3, [3]byte{0xef, 0x9e, 0x82}}, {3, [3]byte{0xef, 0x9e, 0x83}},
+ {3, [3]byte{0xef, 0x9e, 0x84}}, {3, [3]byte{0xef, 0x9e, 0x85}},
+ {3, [3]byte{0xef, 0x9e, 0x86}}, {3, [3]byte{0xef, 0x9e, 0x87}},
+ {3, [3]byte{0xef, 0x9e, 0x88}}, {3, [3]byte{0xef, 0x9e, 0x89}},
+ {3, [3]byte{0xef, 0x9e, 0x8a}}, {3, [3]byte{0xef, 0x9e, 0x8b}},
+ {3, [3]byte{0xef, 0x9e, 0x8c}}, {3, [3]byte{0xef, 0x9e, 0x8d}},
+ {3, [3]byte{0xef, 0x9e, 0x8e}}, {3, [3]byte{0xef, 0x9e, 0x8f}},
+ {3, [3]byte{0xef, 0x9e, 0x90}}, {3, [3]byte{0xef, 0x9e, 0x91}},
+ {3, [3]byte{0xef, 0x9e, 0x92}}, {3, [3]byte{0xef, 0x9e, 0x93}},
+ {3, [3]byte{0xef, 0x9e, 0x94}}, {3, [3]byte{0xef, 0x9e, 0x95}},
+ {3, [3]byte{0xef, 0x9e, 0x96}}, {3, [3]byte{0xef, 0x9e, 0x97}},
+ {3, [3]byte{0xef, 0x9e, 0x98}}, {3, [3]byte{0xef, 0x9e, 0x99}},
+ {3, [3]byte{0xef, 0x9e, 0x9a}}, {3, [3]byte{0xef, 0x9e, 0x9b}},
+ {3, [3]byte{0xef, 0x9e, 0x9c}}, {3, [3]byte{0xef, 0x9e, 0x9d}},
+ {3, [3]byte{0xef, 0x9e, 0x9e}}, {3, [3]byte{0xef, 0x9e, 0x9f}},
+ {3, [3]byte{0xef, 0x9e, 0xa0}}, {3, [3]byte{0xef, 0x9e, 0xa1}},
+ {3, [3]byte{0xef, 0x9e, 0xa2}}, {3, [3]byte{0xef, 0x9e, 0xa3}},
+ {3, [3]byte{0xef, 0x9e, 0xa4}}, {3, [3]byte{0xef, 0x9e, 0xa5}},
+ {3, [3]byte{0xef, 0x9e, 0xa6}}, {3, [3]byte{0xef, 0x9e, 0xa7}},
+ {3, [3]byte{0xef, 0x9e, 0xa8}}, {3, [3]byte{0xef, 0x9e, 0xa9}},
+ {3, [3]byte{0xef, 0x9e, 0xaa}}, {3, [3]byte{0xef, 0x9e, 0xab}},
+ {3, [3]byte{0xef, 0x9e, 0xac}}, {3, [3]byte{0xef, 0x9e, 0xad}},
+ {3, [3]byte{0xef, 0x9e, 0xae}}, {3, [3]byte{0xef, 0x9e, 0xaf}},
+ {3, [3]byte{0xef, 0x9e, 0xb0}}, {3, [3]byte{0xef, 0x9e, 0xb1}},
+ {3, [3]byte{0xef, 0x9e, 0xb2}}, {3, [3]byte{0xef, 0x9e, 0xb3}},
+ {3, [3]byte{0xef, 0x9e, 0xb4}}, {3, [3]byte{0xef, 0x9e, 0xb5}},
+ {3, [3]byte{0xef, 0x9e, 0xb6}}, {3, [3]byte{0xef, 0x9e, 0xb7}},
+ {3, [3]byte{0xef, 0x9e, 0xb8}}, {3, [3]byte{0xef, 0x9e, 0xb9}},
+ {3, [3]byte{0xef, 0x9e, 0xba}}, {3, [3]byte{0xef, 0x9e, 0xbb}},
+ {3, [3]byte{0xef, 0x9e, 0xbc}}, {3, [3]byte{0xef, 0x9e, 0xbd}},
+ {3, [3]byte{0xef, 0x9e, 0xbe}}, {3, [3]byte{0xef, 0x9e, 0xbf}},
+ {3, [3]byte{0xef, 0x9f, 0x80}}, {3, [3]byte{0xef, 0x9f, 0x81}},
+ {3, [3]byte{0xef, 0x9f, 0x82}}, {3, [3]byte{0xef, 0x9f, 0x83}},
+ {3, [3]byte{0xef, 0x9f, 0x84}}, {3, [3]byte{0xef, 0x9f, 0x85}},
+ {3, [3]byte{0xef, 0x9f, 0x86}}, {3, [3]byte{0xef, 0x9f, 0x87}},
+ {3, [3]byte{0xef, 0x9f, 0x88}}, {3, [3]byte{0xef, 0x9f, 0x89}},
+ {3, [3]byte{0xef, 0x9f, 0x8a}}, {3, [3]byte{0xef, 0x9f, 0x8b}},
+ {3, [3]byte{0xef, 0x9f, 0x8c}}, {3, [3]byte{0xef, 0x9f, 0x8d}},
+ {3, [3]byte{0xef, 0x9f, 0x8e}}, {3, [3]byte{0xef, 0x9f, 0x8f}},
+ {3, [3]byte{0xef, 0x9f, 0x90}}, {3, [3]byte{0xef, 0x9f, 0x91}},
+ {3, [3]byte{0xef, 0x9f, 0x92}}, {3, [3]byte{0xef, 0x9f, 0x93}},
+ {3, [3]byte{0xef, 0x9f, 0x94}}, {3, [3]byte{0xef, 0x9f, 0x95}},
+ {3, [3]byte{0xef, 0x9f, 0x96}}, {3, [3]byte{0xef, 0x9f, 0x97}},
+ {3, [3]byte{0xef, 0x9f, 0x98}}, {3, [3]byte{0xef, 0x9f, 0x99}},
+ {3, [3]byte{0xef, 0x9f, 0x9a}}, {3, [3]byte{0xef, 0x9f, 0x9b}},
+ {3, [3]byte{0xef, 0x9f, 0x9c}}, {3, [3]byte{0xef, 0x9f, 0x9d}},
+ {3, [3]byte{0xef, 0x9f, 0x9e}}, {3, [3]byte{0xef, 0x9f, 0x9f}},
+ {3, [3]byte{0xef, 0x9f, 0xa0}}, {3, [3]byte{0xef, 0x9f, 0xa1}},
+ {3, [3]byte{0xef, 0x9f, 0xa2}}, {3, [3]byte{0xef, 0x9f, 0xa3}},
+ {3, [3]byte{0xef, 0x9f, 0xa4}}, {3, [3]byte{0xef, 0x9f, 0xa5}},
+ {3, [3]byte{0xef, 0x9f, 0xa6}}, {3, [3]byte{0xef, 0x9f, 0xa7}},
+ {3, [3]byte{0xef, 0x9f, 0xa8}}, {3, [3]byte{0xef, 0x9f, 0xa9}},
+ {3, [3]byte{0xef, 0x9f, 0xaa}}, {3, [3]byte{0xef, 0x9f, 0xab}},
+ {3, [3]byte{0xef, 0x9f, 0xac}}, {3, [3]byte{0xef, 0x9f, 0xad}},
+ {3, [3]byte{0xef, 0x9f, 0xae}}, {3, [3]byte{0xef, 0x9f, 0xaf}},
+ {3, [3]byte{0xef, 0x9f, 0xb0}}, {3, [3]byte{0xef, 0x9f, 0xb1}},
+ {3, [3]byte{0xef, 0x9f, 0xb2}}, {3, [3]byte{0xef, 0x9f, 0xb3}},
+ {3, [3]byte{0xef, 0x9f, 0xb4}}, {3, [3]byte{0xef, 0x9f, 0xb5}},
+ {3, [3]byte{0xef, 0x9f, 0xb6}}, {3, [3]byte{0xef, 0x9f, 0xb7}},
+ {3, [3]byte{0xef, 0x9f, 0xb8}}, {3, [3]byte{0xef, 0x9f, 0xb9}},
+ {3, [3]byte{0xef, 0x9f, 0xba}}, {3, [3]byte{0xef, 0x9f, 0xbb}},
+ {3, [3]byte{0xef, 0x9f, 0xbc}}, {3, [3]byte{0xef, 0x9f, 0xbd}},
+ {3, [3]byte{0xef, 0x9f, 0xbe}}, {3, [3]byte{0xef, 0x9f, 0xbf}},
+ },
+ encode: [256]uint32{
+ 0x00000000, 0x01000001, 0x02000002, 0x03000003, 0x04000004, 0x05000005, 0x06000006, 0x07000007,
+ 0x08000008, 0x09000009, 0x0a00000a, 0x0b00000b, 0x0c00000c, 0x0d00000d, 0x0e00000e, 0x0f00000f,
+ 0x10000010, 0x11000011, 0x12000012, 0x13000013, 0x14000014, 0x15000015, 0x16000016, 0x17000017,
+ 0x18000018, 0x19000019, 0x1a00001a, 0x1b00001b, 0x1c00001c, 0x1d00001d, 0x1e00001e, 0x1f00001f,
+ 0x20000020, 0x21000021, 0x22000022, 0x23000023, 0x24000024, 0x25000025, 0x26000026, 0x27000027,
+ 0x28000028, 0x29000029, 0x2a00002a, 0x2b00002b, 0x2c00002c, 0x2d00002d, 0x2e00002e, 0x2f00002f,
+ 0x30000030, 0x31000031, 0x32000032, 0x33000033, 0x34000034, 0x35000035, 0x36000036, 0x37000037,
+ 0x38000038, 0x39000039, 0x3a00003a, 0x3b00003b, 0x3c00003c, 0x3d00003d, 0x3e00003e, 0x3f00003f,
+ 0x40000040, 0x41000041, 0x42000042, 0x43000043, 0x44000044, 0x45000045, 0x46000046, 0x47000047,
+ 0x48000048, 0x49000049, 0x4a00004a, 0x4b00004b, 0x4c00004c, 0x4d00004d, 0x4e00004e, 0x4f00004f,
+ 0x50000050, 0x51000051, 0x52000052, 0x53000053, 0x54000054, 0x55000055, 0x56000056, 0x57000057,
+ 0x58000058, 0x59000059, 0x5a00005a, 0x5b00005b, 0x5c00005c, 0x5d00005d, 0x5e00005e, 0x5f00005f,
+ 0x60000060, 0x61000061, 0x62000062, 0x63000063, 0x64000064, 0x65000065, 0x66000066, 0x67000067,
+ 0x68000068, 0x69000069, 0x6a00006a, 0x6b00006b, 0x6c00006c, 0x6d00006d, 0x6e00006e, 0x6f00006f,
+ 0x70000070, 0x71000071, 0x72000072, 0x73000073, 0x74000074, 0x75000075, 0x76000076, 0x77000077,
+ 0x78000078, 0x79000079, 0x7a00007a, 0x7b00007b, 0x7c00007c, 0x7d00007d, 0x7e00007e, 0x7f00007f,
+ 0x8000f780, 0x8100f781, 0x8200f782, 0x8300f783, 0x8400f784, 0x8500f785, 0x8600f786, 0x8700f787,
+ 0x8800f788, 0x8900f789, 0x8a00f78a, 0x8b00f78b, 0x8c00f78c, 0x8d00f78d, 0x8e00f78e, 0x8f00f78f,
+ 0x9000f790, 0x9100f791, 0x9200f792, 0x9300f793, 0x9400f794, 0x9500f795, 0x9600f796, 0x9700f797,
+ 0x9800f798, 0x9900f799, 0x9a00f79a, 0x9b00f79b, 0x9c00f79c, 0x9d00f79d, 0x9e00f79e, 0x9f00f79f,
+ 0xa000f7a0, 0xa100f7a1, 0xa200f7a2, 0xa300f7a3, 0xa400f7a4, 0xa500f7a5, 0xa600f7a6, 0xa700f7a7,
+ 0xa800f7a8, 0xa900f7a9, 0xaa00f7aa, 0xab00f7ab, 0xac00f7ac, 0xad00f7ad, 0xae00f7ae, 0xaf00f7af,
+ 0xb000f7b0, 0xb100f7b1, 0xb200f7b2, 0xb300f7b3, 0xb400f7b4, 0xb500f7b5, 0xb600f7b6, 0xb700f7b7,
+ 0xb800f7b8, 0xb900f7b9, 0xba00f7ba, 0xbb00f7bb, 0xbc00f7bc, 0xbd00f7bd, 0xbe00f7be, 0xbf00f7bf,
+ 0xc000f7c0, 0xc100f7c1, 0xc200f7c2, 0xc300f7c3, 0xc400f7c4, 0xc500f7c5, 0xc600f7c6, 0xc700f7c7,
+ 0xc800f7c8, 0xc900f7c9, 0xca00f7ca, 0xcb00f7cb, 0xcc00f7cc, 0xcd00f7cd, 0xce00f7ce, 0xcf00f7cf,
+ 0xd000f7d0, 0xd100f7d1, 0xd200f7d2, 0xd300f7d3, 0xd400f7d4, 0xd500f7d5, 0xd600f7d6, 0xd700f7d7,
+ 0xd800f7d8, 0xd900f7d9, 0xda00f7da, 0xdb00f7db, 0xdc00f7dc, 0xdd00f7dd, 0xde00f7de, 0xdf00f7df,
+ 0xe000f7e0, 0xe100f7e1, 0xe200f7e2, 0xe300f7e3, 0xe400f7e4, 0xe500f7e5, 0xe600f7e6, 0xe700f7e7,
+ 0xe800f7e8, 0xe900f7e9, 0xea00f7ea, 0xeb00f7eb, 0xec00f7ec, 0xed00f7ed, 0xee00f7ee, 0xef00f7ef,
+ 0xf000f7f0, 0xf100f7f1, 0xf200f7f2, 0xf300f7f3, 0xf400f7f4, 0xf500f7f5, 0xf600f7f6, 0xf700f7f7,
+ 0xf800f7f8, 0xf900f7f9, 0xfa00f7fa, 0xfb00f7fb, 0xfc00f7fc, 0xfd00f7fd, 0xfe00f7fe, 0xff00f7ff,
+ },
+}
+var listAll = []encoding.Encoding{
+ CodePage437,
+ CodePage850,
+ CodePage852,
+ CodePage855,
+ CodePage858,
+ CodePage860,
+ CodePage862,
+ CodePage863,
+ CodePage865,
+ CodePage866,
+ ISO8859_1,
+ ISO8859_2,
+ ISO8859_3,
+ ISO8859_4,
+ ISO8859_5,
+ ISO8859_6,
+ ISO8859_6E,
+ ISO8859_6I,
+ ISO8859_7,
+ ISO8859_8,
+ ISO8859_8E,
+ ISO8859_8I,
+ ISO8859_10,
+ ISO8859_13,
+ ISO8859_14,
+ ISO8859_15,
+ ISO8859_16,
+ KOI8R,
+ KOI8U,
+ Macintosh,
+ MacintoshCyrillic,
+ Windows874,
+ Windows1250,
+ Windows1251,
+ Windows1252,
+ Windows1253,
+ Windows1254,
+ Windows1255,
+ Windows1256,
+ Windows1257,
+ Windows1258,
+ XUserDefined,
+}
+
+// Total table size 78736 bytes (76KiB); checksum: 811C9DC5
diff --git a/vendor/golang.org/x/text/encoding/encoding.go b/vendor/golang.org/x/text/encoding/encoding.go
new file mode 100644
index 000000000..221f175c0
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/encoding.go
@@ -0,0 +1,335 @@
+// 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 encoding defines an interface for character encodings, such as Shift
+// JIS and Windows 1252, that can convert to and from UTF-8.
+//
+// Encoding implementations are provided in other packages, such as
+// golang.org/x/text/encoding/charmap and
+// golang.org/x/text/encoding/japanese.
+package encoding // import "golang.org/x/text/encoding"
+
+import (
+ "errors"
+ "io"
+ "strconv"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// TODO:
+// - There seems to be some inconsistency in when decoders return errors
+// and when not. Also documentation seems to suggest they shouldn't return
+// errors at all (except for UTF-16).
+// - Encoders seem to rely on or at least benefit from the input being in NFC
+// normal form. Perhaps add an example how users could prepare their output.
+
+// Encoding is a character set encoding that can be transformed to and from
+// UTF-8.
+type Encoding interface {
+ // NewDecoder returns a Decoder.
+ NewDecoder() *Decoder
+
+ // NewEncoder returns an Encoder.
+ NewEncoder() *Encoder
+}
+
+// A Decoder converts bytes to UTF-8. It implements transform.Transformer.
+//
+// Transforming source bytes that are not of that encoding will not result in an
+// error per se. Each byte that cannot be transcoded will be represented in the
+// output by the UTF-8 encoding of '\uFFFD', the replacement rune.
+type Decoder struct {
+ transform.Transformer
+
+ // This forces external creators of Decoders to use names in struct
+ // initializers, allowing for future extendibility without having to break
+ // code.
+ _ struct{}
+}
+
+// Bytes converts the given encoded bytes to UTF-8. It returns the converted
+// bytes or nil, err if any error occurred.
+func (d *Decoder) Bytes(b []byte) ([]byte, error) {
+ b, _, err := transform.Bytes(d, b)
+ if err != nil {
+ return nil, err
+ }
+ return b, nil
+}
+
+// String converts the given encoded string to UTF-8. It returns the converted
+// string or "", err if any error occurred.
+func (d *Decoder) String(s string) (string, error) {
+ s, _, err := transform.String(d, s)
+ if err != nil {
+ return "", err
+ }
+ return s, nil
+}
+
+// Reader wraps another Reader to decode its bytes.
+//
+// The Decoder may not be used for any other operation as long as the returned
+// Reader is in use.
+func (d *Decoder) Reader(r io.Reader) io.Reader {
+ return transform.NewReader(r, d)
+}
+
+// An Encoder converts bytes from UTF-8. It implements transform.Transformer.
+//
+// Each rune that cannot be transcoded will result in an error. In this case,
+// the transform will consume all source byte up to, not including the offending
+// rune. Transforming source bytes that are not valid UTF-8 will be replaced by
+// `\uFFFD`. To return early with an error instead, use transform.Chain to
+// preprocess the data with a UTF8Validator.
+type Encoder struct {
+ transform.Transformer
+
+ // This forces external creators of Encoders to use names in struct
+ // initializers, allowing for future extendibility without having to break
+ // code.
+ _ struct{}
+}
+
+// Bytes converts bytes from UTF-8. It returns the converted bytes or nil, err if
+// any error occurred.
+func (e *Encoder) Bytes(b []byte) ([]byte, error) {
+ b, _, err := transform.Bytes(e, b)
+ if err != nil {
+ return nil, err
+ }
+ return b, nil
+}
+
+// String converts a string from UTF-8. It returns the converted string or
+// "", err if any error occurred.
+func (e *Encoder) String(s string) (string, error) {
+ s, _, err := transform.String(e, s)
+ if err != nil {
+ return "", err
+ }
+ return s, nil
+}
+
+// Writer wraps another Writer to encode its UTF-8 output.
+//
+// The Encoder may not be used for any other operation as long as the returned
+// Writer is in use.
+func (e *Encoder) Writer(w io.Writer) io.Writer {
+ return transform.NewWriter(w, e)
+}
+
+// ASCIISub is the ASCII substitute character, as recommended by
+// http://unicode.org/reports/tr36/#Text_Comparison
+const ASCIISub = '\x1a'
+
+// Nop is the nop encoding. Its transformed bytes are the same as the source
+// bytes; it does not replace invalid UTF-8 sequences.
+var Nop Encoding = nop{}
+
+type nop struct{}
+
+func (nop) NewDecoder() *Decoder {
+ return &Decoder{Transformer: transform.Nop}
+}
+func (nop) NewEncoder() *Encoder {
+ return &Encoder{Transformer: transform.Nop}
+}
+
+// Replacement is the replacement encoding. Decoding from the replacement
+// encoding yields a single '\uFFFD' replacement rune. Encoding from UTF-8 to
+// the replacement encoding yields the same as the source bytes except that
+// invalid UTF-8 is converted to '\uFFFD'.
+//
+// It is defined at http://encoding.spec.whatwg.org/#replacement
+var Replacement Encoding = replacement{}
+
+type replacement struct{}
+
+func (replacement) NewDecoder() *Decoder {
+ return &Decoder{Transformer: replacementDecoder{}}
+}
+
+func (replacement) NewEncoder() *Encoder {
+ return &Encoder{Transformer: replacementEncoder{}}
+}
+
+func (replacement) ID() (mib identifier.MIB, other string) {
+ return identifier.Replacement, ""
+}
+
+type replacementDecoder struct{ transform.NopResetter }
+
+func (replacementDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if len(dst) < 3 {
+ return 0, 0, transform.ErrShortDst
+ }
+ if atEOF {
+ const fffd = "\ufffd"
+ dst[0] = fffd[0]
+ dst[1] = fffd[1]
+ dst[2] = fffd[2]
+ nDst = 3
+ }
+ return nDst, len(src), nil
+}
+
+type replacementEncoder struct{ transform.NopResetter }
+
+func (replacementEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ r = '\ufffd'
+ }
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ return nDst, nSrc, err
+}
+
+// HTMLEscapeUnsupported wraps encoders to replace source runes outside the
+// repertoire of the destination encoding with HTML escape sequences.
+//
+// This wrapper exists to comply to URL and HTML forms requiring a
+// non-terminating legacy encoder. The produced sequences may lead to data
+// loss as they are indistinguishable from legitimate input. To avoid this
+// issue, use UTF-8 encodings whenever possible.
+func HTMLEscapeUnsupported(e *Encoder) *Encoder {
+ return &Encoder{Transformer: &errorHandler{e, errorToHTML}}
+}
+
+// ReplaceUnsupported wraps encoders to replace source runes outside the
+// repertoire of the destination encoding with an encoding-specific
+// replacement.
+//
+// This wrapper is only provided for backwards compatibility and legacy
+// handling. Its use is strongly discouraged. Use UTF-8 whenever possible.
+func ReplaceUnsupported(e *Encoder) *Encoder {
+ return &Encoder{Transformer: &errorHandler{e, errorToReplacement}}
+}
+
+type errorHandler struct {
+ *Encoder
+ handler func(dst []byte, r rune, err repertoireError) (n int, ok bool)
+}
+
+// TODO: consider making this error public in some form.
+type repertoireError interface {
+ Replacement() byte
+}
+
+func (h errorHandler) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ nDst, nSrc, err = h.Transformer.Transform(dst, src, atEOF)
+ for err != nil {
+ rerr, ok := err.(repertoireError)
+ if !ok {
+ return nDst, nSrc, err
+ }
+ r, sz := utf8.DecodeRune(src[nSrc:])
+ n, ok := h.handler(dst[nDst:], r, rerr)
+ if !ok {
+ return nDst, nSrc, transform.ErrShortDst
+ }
+ err = nil
+ nDst += n
+ if nSrc += sz; nSrc < len(src) {
+ var dn, sn int
+ dn, sn, err = h.Transformer.Transform(dst[nDst:], src[nSrc:], atEOF)
+ nDst += dn
+ nSrc += sn
+ }
+ }
+ return nDst, nSrc, err
+}
+
+func errorToHTML(dst []byte, r rune, err repertoireError) (n int, ok bool) {
+ buf := [8]byte{}
+ b := strconv.AppendUint(buf[:0], uint64(r), 10)
+ if n = len(b) + len("&#;"); n >= len(dst) {
+ return 0, false
+ }
+ dst[0] = '&'
+ dst[1] = '#'
+ dst[copy(dst[2:], b)+2] = ';'
+ return n, true
+}
+
+func errorToReplacement(dst []byte, r rune, err repertoireError) (n int, ok bool) {
+ if len(dst) == 0 {
+ return 0, false
+ }
+ dst[0] = err.Replacement()
+ return 1, true
+}
+
+// ErrInvalidUTF8 means that a transformer encountered invalid UTF-8.
+var ErrInvalidUTF8 = errors.New("encoding: invalid UTF-8")
+
+// UTF8Validator is a transformer that returns ErrInvalidUTF8 on the first
+// input byte that is not valid UTF-8.
+var UTF8Validator transform.Transformer = utf8Validator{}
+
+type utf8Validator struct{ transform.NopResetter }
+
+func (utf8Validator) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ n := len(src)
+ if n > len(dst) {
+ n = len(dst)
+ }
+ for i := 0; i < n; {
+ if c := src[i]; c < utf8.RuneSelf {
+ dst[i] = c
+ i++
+ continue
+ }
+ _, size := utf8.DecodeRune(src[i:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ err = ErrInvalidUTF8
+ if !atEOF && !utf8.FullRune(src[i:]) {
+ err = transform.ErrShortSrc
+ }
+ return i, i, err
+ }
+ if i+size > len(dst) {
+ return i, i, transform.ErrShortDst
+ }
+ for ; size > 0; size-- {
+ dst[i] = src[i]
+ i++
+ }
+ }
+ if len(src) > len(dst) {
+ err = transform.ErrShortDst
+ }
+ return n, n, err
+}
diff --git a/vendor/golang.org/x/text/encoding/htmlindex/gen.go b/vendor/golang.org/x/text/encoding/htmlindex/gen.go
new file mode 100644
index 000000000..d10e5e09f
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/htmlindex/gen.go
@@ -0,0 +1,167 @@
+// 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 ignore
+
+package main
+
+import (
+ "bytes"
+ "encoding/json"
+ "fmt"
+ "log"
+ "strings"
+
+ "golang.org/x/text/internal/gen"
+)
+
+type group struct {
+ Encodings []struct {
+ Labels []string
+ Name string
+ }
+}
+
+func main() {
+ gen.Init()
+
+ r := gen.Open("http://www.w3.org/TR", "w3", "encoding/indexes/encodings.json")
+ var groups []group
+ if err := json.NewDecoder(r).Decode(&groups); err != nil {
+ log.Fatalf("Error reading encodings.json: %v", err)
+ }
+
+ w := &bytes.Buffer{}
+ fmt.Fprintln(w, "type htmlEncoding byte")
+ fmt.Fprintln(w, "const (")
+ for i, g := range groups {
+ for _, e := range g.Encodings {
+ name := consts[e.Name]
+ if name == "" {
+ log.Fatalf("No const defined for %s.", e.Name)
+ }
+ if i == 0 {
+ fmt.Fprintf(w, "%s htmlEncoding = iota\n", name)
+ } else {
+ fmt.Fprintf(w, "%s\n", name)
+ }
+ }
+ }
+ fmt.Fprintln(w, "numEncodings")
+ fmt.Fprint(w, ")\n\n")
+
+ fmt.Fprintln(w, "var canonical = [numEncodings]string{")
+ for _, g := range groups {
+ for _, e := range g.Encodings {
+ fmt.Fprintf(w, "%q,\n", e.Name)
+ }
+ }
+ fmt.Fprint(w, "}\n\n")
+
+ fmt.Fprintln(w, "var nameMap = map[string]htmlEncoding{")
+ for _, g := range groups {
+ for _, e := range g.Encodings {
+ for _, l := range e.Labels {
+ fmt.Fprintf(w, "%q: %s,\n", l, consts[e.Name])
+ }
+ }
+ }
+ fmt.Fprint(w, "}\n\n")
+
+ var tags []string
+ fmt.Fprintln(w, "var localeMap = []htmlEncoding{")
+ for _, loc := range locales {
+ tags = append(tags, loc.tag)
+ fmt.Fprintf(w, "%s, // %s \n", consts[loc.name], loc.tag)
+ }
+ fmt.Fprint(w, "}\n\n")
+
+ fmt.Fprintf(w, "const locales = %q\n", strings.Join(tags, " "))
+
+ gen.WriteGoFile("tables.go", "htmlindex", w.Bytes())
+}
+
+// consts maps canonical encoding name to internal constant.
+var consts = map[string]string{
+ "utf-8": "utf8",
+ "ibm866": "ibm866",
+ "iso-8859-2": "iso8859_2",
+ "iso-8859-3": "iso8859_3",
+ "iso-8859-4": "iso8859_4",
+ "iso-8859-5": "iso8859_5",
+ "iso-8859-6": "iso8859_6",
+ "iso-8859-7": "iso8859_7",
+ "iso-8859-8": "iso8859_8",
+ "iso-8859-8-i": "iso8859_8I",
+ "iso-8859-10": "iso8859_10",
+ "iso-8859-13": "iso8859_13",
+ "iso-8859-14": "iso8859_14",
+ "iso-8859-15": "iso8859_15",
+ "iso-8859-16": "iso8859_16",
+ "koi8-r": "koi8r",
+ "koi8-u": "koi8u",
+ "macintosh": "macintosh",
+ "windows-874": "windows874",
+ "windows-1250": "windows1250",
+ "windows-1251": "windows1251",
+ "windows-1252": "windows1252",
+ "windows-1253": "windows1253",
+ "windows-1254": "windows1254",
+ "windows-1255": "windows1255",
+ "windows-1256": "windows1256",
+ "windows-1257": "windows1257",
+ "windows-1258": "windows1258",
+ "x-mac-cyrillic": "macintoshCyrillic",
+ "gbk": "gbk",
+ "gb18030": "gb18030",
+ // "hz-gb-2312": "hzgb2312", // Was removed from WhatWG
+ "big5": "big5",
+ "euc-jp": "eucjp",
+ "iso-2022-jp": "iso2022jp",
+ "shift_jis": "shiftJIS",
+ "euc-kr": "euckr",
+ "replacement": "replacement",
+ "utf-16be": "utf16be",
+ "utf-16le": "utf16le",
+ "x-user-defined": "xUserDefined",
+}
+
+// locales is taken from
+// https://html.spec.whatwg.org/multipage/syntax.html#encoding-sniffing-algorithm.
+var locales = []struct{ tag, name string }{
+ {"und", "windows-1252"}, // The default value.
+ {"ar", "windows-1256"},
+ {"ba", "windows-1251"},
+ {"be", "windows-1251"},
+ {"bg", "windows-1251"},
+ {"cs", "windows-1250"},
+ {"el", "iso-8859-7"},
+ {"et", "windows-1257"},
+ {"fa", "windows-1256"},
+ {"he", "windows-1255"},
+ {"hr", "windows-1250"},
+ {"hu", "iso-8859-2"},
+ {"ja", "shift_jis"},
+ {"kk", "windows-1251"},
+ {"ko", "euc-kr"},
+ {"ku", "windows-1254"},
+ {"ky", "windows-1251"},
+ {"lt", "windows-1257"},
+ {"lv", "windows-1257"},
+ {"mk", "windows-1251"},
+ {"pl", "iso-8859-2"},
+ {"ru", "windows-1251"},
+ {"sah", "windows-1251"},
+ {"sk", "windows-1250"},
+ {"sl", "iso-8859-2"},
+ {"sr", "windows-1251"},
+ {"tg", "windows-1251"},
+ {"th", "windows-874"},
+ {"tr", "windows-1254"},
+ {"tt", "windows-1251"},
+ {"uk", "windows-1251"},
+ {"vi", "windows-1258"},
+ {"zh-hans", "gb18030"},
+ {"zh-hant", "big5"},
+}
diff --git a/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go b/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go
new file mode 100644
index 000000000..70f2ac4bc
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go
@@ -0,0 +1,86 @@
+// 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.
+
+//go:generate go run gen.go
+
+// Package htmlindex maps character set encoding names to Encodings as
+// recommended by the W3C for use in HTML 5. See http://www.w3.org/TR/encoding.
+package htmlindex
+
+// TODO: perhaps have a "bare" version of the index (used by this package) that
+// is not pre-loaded with all encodings. Global variables in encodings prevent
+// the linker from being able to purge unneeded tables. This means that
+// referencing all encodings, as this package does for the default index, links
+// in all encodings unconditionally.
+//
+// This issue can be solved by either solving the linking issue (see
+// https://github.com/golang/go/issues/6330) or refactoring the encoding tables
+// (e.g. moving the tables to internal packages that do not use global
+// variables).
+
+// TODO: allow canonicalizing names
+
+import (
+ "errors"
+ "strings"
+ "sync"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/language"
+)
+
+var (
+ errInvalidName = errors.New("htmlindex: invalid encoding name")
+ errUnknown = errors.New("htmlindex: unknown Encoding")
+ errUnsupported = errors.New("htmlindex: this encoding is not supported")
+)
+
+var (
+ matcherOnce sync.Once
+ matcher language.Matcher
+)
+
+// LanguageDefault returns the canonical name of the default encoding for a
+// given language.
+func LanguageDefault(tag language.Tag) string {
+ matcherOnce.Do(func() {
+ tags := []language.Tag{}
+ for _, t := range strings.Split(locales, " ") {
+ tags = append(tags, language.MustParse(t))
+ }
+ matcher = language.NewMatcher(tags)
+ })
+ _, i, _ := matcher.Match(tag)
+ return canonical[localeMap[i]] // Default is Windows-1252.
+}
+
+// Get returns an Encoding for one of the names listed in
+// http://www.w3.org/TR/encoding using the Default Index. Matching is case-
+// insensitive.
+func Get(name string) (encoding.Encoding, error) {
+ x, ok := nameMap[strings.ToLower(strings.TrimSpace(name))]
+ if !ok {
+ return nil, errInvalidName
+ }
+ return encodings[x], nil
+}
+
+// Name reports the canonical name of the given Encoding. It will return
+// an error if e is not associated with a supported encoding scheme.
+func Name(e encoding.Encoding) (string, error) {
+ id, ok := e.(identifier.Interface)
+ if !ok {
+ return "", errUnknown
+ }
+ mib, _ := id.ID()
+ if mib == 0 {
+ return "", errUnknown
+ }
+ v, ok := mibMap[mib]
+ if !ok {
+ return "", errUnsupported
+ }
+ return canonical[v], nil
+}
diff --git a/vendor/golang.org/x/text/encoding/htmlindex/map.go b/vendor/golang.org/x/text/encoding/htmlindex/map.go
new file mode 100644
index 000000000..c61439045
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/htmlindex/map.go
@@ -0,0 +1,105 @@
+// 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 htmlindex
+
+import (
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/charmap"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/encoding/japanese"
+ "golang.org/x/text/encoding/korean"
+ "golang.org/x/text/encoding/simplifiedchinese"
+ "golang.org/x/text/encoding/traditionalchinese"
+ "golang.org/x/text/encoding/unicode"
+)
+
+// mibMap maps a MIB identifier to an htmlEncoding index.
+var mibMap = map[identifier.MIB]htmlEncoding{
+ identifier.UTF8: utf8,
+ identifier.UTF16BE: utf16be,
+ identifier.UTF16LE: utf16le,
+ identifier.IBM866: ibm866,
+ identifier.ISOLatin2: iso8859_2,
+ identifier.ISOLatin3: iso8859_3,
+ identifier.ISOLatin4: iso8859_4,
+ identifier.ISOLatinCyrillic: iso8859_5,
+ identifier.ISOLatinArabic: iso8859_6,
+ identifier.ISOLatinGreek: iso8859_7,
+ identifier.ISOLatinHebrew: iso8859_8,
+ identifier.ISO88598I: iso8859_8I,
+ identifier.ISOLatin6: iso8859_10,
+ identifier.ISO885913: iso8859_13,
+ identifier.ISO885914: iso8859_14,
+ identifier.ISO885915: iso8859_15,
+ identifier.ISO885916: iso8859_16,
+ identifier.KOI8R: koi8r,
+ identifier.KOI8U: koi8u,
+ identifier.Macintosh: macintosh,
+ identifier.MacintoshCyrillic: macintoshCyrillic,
+ identifier.Windows874: windows874,
+ identifier.Windows1250: windows1250,
+ identifier.Windows1251: windows1251,
+ identifier.Windows1252: windows1252,
+ identifier.Windows1253: windows1253,
+ identifier.Windows1254: windows1254,
+ identifier.Windows1255: windows1255,
+ identifier.Windows1256: windows1256,
+ identifier.Windows1257: windows1257,
+ identifier.Windows1258: windows1258,
+ identifier.XUserDefined: xUserDefined,
+ identifier.GBK: gbk,
+ identifier.GB18030: gb18030,
+ identifier.Big5: big5,
+ identifier.EUCPkdFmtJapanese: eucjp,
+ identifier.ISO2022JP: iso2022jp,
+ identifier.ShiftJIS: shiftJIS,
+ identifier.EUCKR: euckr,
+ identifier.Replacement: replacement,
+}
+
+// encodings maps the internal htmlEncoding to an Encoding.
+// TODO: consider using a reusable index in encoding/internal.
+var encodings = [numEncodings]encoding.Encoding{
+ utf8: unicode.UTF8,
+ ibm866: charmap.CodePage866,
+ iso8859_2: charmap.ISO8859_2,
+ iso8859_3: charmap.ISO8859_3,
+ iso8859_4: charmap.ISO8859_4,
+ iso8859_5: charmap.ISO8859_5,
+ iso8859_6: charmap.ISO8859_6,
+ iso8859_7: charmap.ISO8859_7,
+ iso8859_8: charmap.ISO8859_8,
+ iso8859_8I: charmap.ISO8859_8I,
+ iso8859_10: charmap.ISO8859_10,
+ iso8859_13: charmap.ISO8859_13,
+ iso8859_14: charmap.ISO8859_14,
+ iso8859_15: charmap.ISO8859_15,
+ iso8859_16: charmap.ISO8859_16,
+ koi8r: charmap.KOI8R,
+ koi8u: charmap.KOI8U,
+ macintosh: charmap.Macintosh,
+ windows874: charmap.Windows874,
+ windows1250: charmap.Windows1250,
+ windows1251: charmap.Windows1251,
+ windows1252: charmap.Windows1252,
+ windows1253: charmap.Windows1253,
+ windows1254: charmap.Windows1254,
+ windows1255: charmap.Windows1255,
+ windows1256: charmap.Windows1256,
+ windows1257: charmap.Windows1257,
+ windows1258: charmap.Windows1258,
+ macintoshCyrillic: charmap.MacintoshCyrillic,
+ gbk: simplifiedchinese.GBK,
+ gb18030: simplifiedchinese.GB18030,
+ big5: traditionalchinese.Big5,
+ eucjp: japanese.EUCJP,
+ iso2022jp: japanese.ISO2022JP,
+ shiftJIS: japanese.ShiftJIS,
+ euckr: korean.EUCKR,
+ replacement: encoding.Replacement,
+ utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM),
+ utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM),
+ xUserDefined: charmap.XUserDefined,
+}
diff --git a/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/vendor/golang.org/x/text/encoding/htmlindex/tables.go
new file mode 100644
index 000000000..78950d3c3
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/htmlindex/tables.go
@@ -0,0 +1,352 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package htmlindex
+
+type htmlEncoding byte
+
+const (
+ utf8 htmlEncoding = iota
+ ibm866
+ iso8859_2
+ iso8859_3
+ iso8859_4
+ iso8859_5
+ iso8859_6
+ iso8859_7
+ iso8859_8
+ iso8859_8I
+ iso8859_10
+ iso8859_13
+ iso8859_14
+ iso8859_15
+ iso8859_16
+ koi8r
+ koi8u
+ macintosh
+ windows874
+ windows1250
+ windows1251
+ windows1252
+ windows1253
+ windows1254
+ windows1255
+ windows1256
+ windows1257
+ windows1258
+ macintoshCyrillic
+ gbk
+ gb18030
+ big5
+ eucjp
+ iso2022jp
+ shiftJIS
+ euckr
+ replacement
+ utf16be
+ utf16le
+ xUserDefined
+ numEncodings
+)
+
+var canonical = [numEncodings]string{
+ "utf-8",
+ "ibm866",
+ "iso-8859-2",
+ "iso-8859-3",
+ "iso-8859-4",
+ "iso-8859-5",
+ "iso-8859-6",
+ "iso-8859-7",
+ "iso-8859-8",
+ "iso-8859-8-i",
+ "iso-8859-10",
+ "iso-8859-13",
+ "iso-8859-14",
+ "iso-8859-15",
+ "iso-8859-16",
+ "koi8-r",
+ "koi8-u",
+ "macintosh",
+ "windows-874",
+ "windows-1250",
+ "windows-1251",
+ "windows-1252",
+ "windows-1253",
+ "windows-1254",
+ "windows-1255",
+ "windows-1256",
+ "windows-1257",
+ "windows-1258",
+ "x-mac-cyrillic",
+ "gbk",
+ "gb18030",
+ "big5",
+ "euc-jp",
+ "iso-2022-jp",
+ "shift_jis",
+ "euc-kr",
+ "replacement",
+ "utf-16be",
+ "utf-16le",
+ "x-user-defined",
+}
+
+var nameMap = map[string]htmlEncoding{
+ "unicode-1-1-utf-8": utf8,
+ "utf-8": utf8,
+ "utf8": utf8,
+ "866": ibm866,
+ "cp866": ibm866,
+ "csibm866": ibm866,
+ "ibm866": ibm866,
+ "csisolatin2": iso8859_2,
+ "iso-8859-2": iso8859_2,
+ "iso-ir-101": iso8859_2,
+ "iso8859-2": iso8859_2,
+ "iso88592": iso8859_2,
+ "iso_8859-2": iso8859_2,
+ "iso_8859-2:1987": iso8859_2,
+ "l2": iso8859_2,
+ "latin2": iso8859_2,
+ "csisolatin3": iso8859_3,
+ "iso-8859-3": iso8859_3,
+ "iso-ir-109": iso8859_3,
+ "iso8859-3": iso8859_3,
+ "iso88593": iso8859_3,
+ "iso_8859-3": iso8859_3,
+ "iso_8859-3:1988": iso8859_3,
+ "l3": iso8859_3,
+ "latin3": iso8859_3,
+ "csisolatin4": iso8859_4,
+ "iso-8859-4": iso8859_4,
+ "iso-ir-110": iso8859_4,
+ "iso8859-4": iso8859_4,
+ "iso88594": iso8859_4,
+ "iso_8859-4": iso8859_4,
+ "iso_8859-4:1988": iso8859_4,
+ "l4": iso8859_4,
+ "latin4": iso8859_4,
+ "csisolatincyrillic": iso8859_5,
+ "cyrillic": iso8859_5,
+ "iso-8859-5": iso8859_5,
+ "iso-ir-144": iso8859_5,
+ "iso8859-5": iso8859_5,
+ "iso88595": iso8859_5,
+ "iso_8859-5": iso8859_5,
+ "iso_8859-5:1988": iso8859_5,
+ "arabic": iso8859_6,
+ "asmo-708": iso8859_6,
+ "csiso88596e": iso8859_6,
+ "csiso88596i": iso8859_6,
+ "csisolatinarabic": iso8859_6,
+ "ecma-114": iso8859_6,
+ "iso-8859-6": iso8859_6,
+ "iso-8859-6-e": iso8859_6,
+ "iso-8859-6-i": iso8859_6,
+ "iso-ir-127": iso8859_6,
+ "iso8859-6": iso8859_6,
+ "iso88596": iso8859_6,
+ "iso_8859-6": iso8859_6,
+ "iso_8859-6:1987": iso8859_6,
+ "csisolatingreek": iso8859_7,
+ "ecma-118": iso8859_7,
+ "elot_928": iso8859_7,
+ "greek": iso8859_7,
+ "greek8": iso8859_7,
+ "iso-8859-7": iso8859_7,
+ "iso-ir-126": iso8859_7,
+ "iso8859-7": iso8859_7,
+ "iso88597": iso8859_7,
+ "iso_8859-7": iso8859_7,
+ "iso_8859-7:1987": iso8859_7,
+ "sun_eu_greek": iso8859_7,
+ "csiso88598e": iso8859_8,
+ "csisolatinhebrew": iso8859_8,
+ "hebrew": iso8859_8,
+ "iso-8859-8": iso8859_8,
+ "iso-8859-8-e": iso8859_8,
+ "iso-ir-138": iso8859_8,
+ "iso8859-8": iso8859_8,
+ "iso88598": iso8859_8,
+ "iso_8859-8": iso8859_8,
+ "iso_8859-8:1988": iso8859_8,
+ "visual": iso8859_8,
+ "csiso88598i": iso8859_8I,
+ "iso-8859-8-i": iso8859_8I,
+ "logical": iso8859_8I,
+ "csisolatin6": iso8859_10,
+ "iso-8859-10": iso8859_10,
+ "iso-ir-157": iso8859_10,
+ "iso8859-10": iso8859_10,
+ "iso885910": iso8859_10,
+ "l6": iso8859_10,
+ "latin6": iso8859_10,
+ "iso-8859-13": iso8859_13,
+ "iso8859-13": iso8859_13,
+ "iso885913": iso8859_13,
+ "iso-8859-14": iso8859_14,
+ "iso8859-14": iso8859_14,
+ "iso885914": iso8859_14,
+ "csisolatin9": iso8859_15,
+ "iso-8859-15": iso8859_15,
+ "iso8859-15": iso8859_15,
+ "iso885915": iso8859_15,
+ "iso_8859-15": iso8859_15,
+ "l9": iso8859_15,
+ "iso-8859-16": iso8859_16,
+ "cskoi8r": koi8r,
+ "koi": koi8r,
+ "koi8": koi8r,
+ "koi8-r": koi8r,
+ "koi8_r": koi8r,
+ "koi8-ru": koi8u,
+ "koi8-u": koi8u,
+ "csmacintosh": macintosh,
+ "mac": macintosh,
+ "macintosh": macintosh,
+ "x-mac-roman": macintosh,
+ "dos-874": windows874,
+ "iso-8859-11": windows874,
+ "iso8859-11": windows874,
+ "iso885911": windows874,
+ "tis-620": windows874,
+ "windows-874": windows874,
+ "cp1250": windows1250,
+ "windows-1250": windows1250,
+ "x-cp1250": windows1250,
+ "cp1251": windows1251,
+ "windows-1251": windows1251,
+ "x-cp1251": windows1251,
+ "ansi_x3.4-1968": windows1252,
+ "ascii": windows1252,
+ "cp1252": windows1252,
+ "cp819": windows1252,
+ "csisolatin1": windows1252,
+ "ibm819": windows1252,
+ "iso-8859-1": windows1252,
+ "iso-ir-100": windows1252,
+ "iso8859-1": windows1252,
+ "iso88591": windows1252,
+ "iso_8859-1": windows1252,
+ "iso_8859-1:1987": windows1252,
+ "l1": windows1252,
+ "latin1": windows1252,
+ "us-ascii": windows1252,
+ "windows-1252": windows1252,
+ "x-cp1252": windows1252,
+ "cp1253": windows1253,
+ "windows-1253": windows1253,
+ "x-cp1253": windows1253,
+ "cp1254": windows1254,
+ "csisolatin5": windows1254,
+ "iso-8859-9": windows1254,
+ "iso-ir-148": windows1254,
+ "iso8859-9": windows1254,
+ "iso88599": windows1254,
+ "iso_8859-9": windows1254,
+ "iso_8859-9:1989": windows1254,
+ "l5": windows1254,
+ "latin5": windows1254,
+ "windows-1254": windows1254,
+ "x-cp1254": windows1254,
+ "cp1255": windows1255,
+ "windows-1255": windows1255,
+ "x-cp1255": windows1255,
+ "cp1256": windows1256,
+ "windows-1256": windows1256,
+ "x-cp1256": windows1256,
+ "cp1257": windows1257,
+ "windows-1257": windows1257,
+ "x-cp1257": windows1257,
+ "cp1258": windows1258,
+ "windows-1258": windows1258,
+ "x-cp1258": windows1258,
+ "x-mac-cyrillic": macintoshCyrillic,
+ "x-mac-ukrainian": macintoshCyrillic,
+ "chinese": gbk,
+ "csgb2312": gbk,
+ "csiso58gb231280": gbk,
+ "gb2312": gbk,
+ "gb_2312": gbk,
+ "gb_2312-80": gbk,
+ "gbk": gbk,
+ "iso-ir-58": gbk,
+ "x-gbk": gbk,
+ "gb18030": gb18030,
+ "big5": big5,
+ "big5-hkscs": big5,
+ "cn-big5": big5,
+ "csbig5": big5,
+ "x-x-big5": big5,
+ "cseucpkdfmtjapanese": eucjp,
+ "euc-jp": eucjp,
+ "x-euc-jp": eucjp,
+ "csiso2022jp": iso2022jp,
+ "iso-2022-jp": iso2022jp,
+ "csshiftjis": shiftJIS,
+ "ms932": shiftJIS,
+ "ms_kanji": shiftJIS,
+ "shift-jis": shiftJIS,
+ "shift_jis": shiftJIS,
+ "sjis": shiftJIS,
+ "windows-31j": shiftJIS,
+ "x-sjis": shiftJIS,
+ "cseuckr": euckr,
+ "csksc56011987": euckr,
+ "euc-kr": euckr,
+ "iso-ir-149": euckr,
+ "korean": euckr,
+ "ks_c_5601-1987": euckr,
+ "ks_c_5601-1989": euckr,
+ "ksc5601": euckr,
+ "ksc_5601": euckr,
+ "windows-949": euckr,
+ "csiso2022kr": replacement,
+ "hz-gb-2312": replacement,
+ "iso-2022-cn": replacement,
+ "iso-2022-cn-ext": replacement,
+ "iso-2022-kr": replacement,
+ "utf-16be": utf16be,
+ "utf-16": utf16le,
+ "utf-16le": utf16le,
+ "x-user-defined": xUserDefined,
+}
+
+var localeMap = []htmlEncoding{
+ windows1252, // und
+ windows1256, // ar
+ windows1251, // ba
+ windows1251, // be
+ windows1251, // bg
+ windows1250, // cs
+ iso8859_7, // el
+ windows1257, // et
+ windows1256, // fa
+ windows1255, // he
+ windows1250, // hr
+ iso8859_2, // hu
+ shiftJIS, // ja
+ windows1251, // kk
+ euckr, // ko
+ windows1254, // ku
+ windows1251, // ky
+ windows1257, // lt
+ windows1257, // lv
+ windows1251, // mk
+ iso8859_2, // pl
+ windows1251, // ru
+ windows1251, // sah
+ windows1250, // sk
+ iso8859_2, // sl
+ windows1251, // sr
+ windows1251, // tg
+ windows874, // th
+ windows1254, // tr
+ windows1251, // tt
+ windows1251, // uk
+ windows1258, // vi
+ gb18030, // zh-hans
+ big5, // zh-hant
+}
+
+const locales = "und ar ba be bg cs el et fa he hr hu ja kk ko ku ky lt lv mk pl ru sah sk sl sr tg th tr tt uk vi zh-hans zh-hant"
diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/gen.go b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go
new file mode 100644
index 000000000..0c8eba7e5
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/internal/identifier/gen.go
@@ -0,0 +1,137 @@
+// 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 ignore
+
+package main
+
+import (
+ "bytes"
+ "encoding/xml"
+ "fmt"
+ "io"
+ "log"
+ "strings"
+
+ "golang.org/x/text/internal/gen"
+)
+
+type registry struct {
+ XMLName xml.Name `xml:"registry"`
+ Updated string `xml:"updated"`
+ Registry []struct {
+ ID string `xml:"id,attr"`
+ Record []struct {
+ Name string `xml:"name"`
+ Xref []struct {
+ Type string `xml:"type,attr"`
+ Data string `xml:"data,attr"`
+ } `xml:"xref"`
+ Desc struct {
+ Data string `xml:",innerxml"`
+ // Any []struct {
+ // Data string `xml:",chardata"`
+ // } `xml:",any"`
+ // Data string `xml:",chardata"`
+ } `xml:"description,"`
+ MIB string `xml:"value"`
+ Alias []string `xml:"alias"`
+ MIME string `xml:"preferred_alias"`
+ } `xml:"record"`
+ } `xml:"registry"`
+}
+
+func main() {
+ r := gen.OpenIANAFile("assignments/character-sets/character-sets.xml")
+ reg := &registry{}
+ if err := xml.NewDecoder(r).Decode(&reg); err != nil && err != io.EOF {
+ log.Fatalf("Error decoding charset registry: %v", err)
+ }
+ if len(reg.Registry) == 0 || reg.Registry[0].ID != "character-sets-1" {
+ log.Fatalf("Unexpected ID %s", reg.Registry[0].ID)
+ }
+
+ w := &bytes.Buffer{}
+ fmt.Fprintf(w, "const (\n")
+ for _, rec := range reg.Registry[0].Record {
+ constName := ""
+ for _, a := range rec.Alias {
+ if strings.HasPrefix(a, "cs") && strings.IndexByte(a, '-') == -1 {
+ // Some of the constant definitions have comments in them. Strip those.
+ constName = strings.Title(strings.SplitN(a[2:], "\n", 2)[0])
+ }
+ }
+ if constName == "" {
+ switch rec.MIB {
+ case "2085":
+ constName = "HZGB2312" // Not listed as alias for some reason.
+ default:
+ log.Fatalf("No cs alias defined for %s.", rec.MIB)
+ }
+ }
+ if rec.MIME != "" {
+ rec.MIME = fmt.Sprintf(" (MIME: %s)", rec.MIME)
+ }
+ fmt.Fprintf(w, "// %s is the MIB identifier with IANA name %s%s.\n//\n", constName, rec.Name, rec.MIME)
+ if len(rec.Desc.Data) > 0 {
+ fmt.Fprint(w, "// ")
+ d := xml.NewDecoder(strings.NewReader(rec.Desc.Data))
+ inElem := true
+ attr := ""
+ for {
+ t, err := d.Token()
+ if err != nil {
+ if err != io.EOF {
+ log.Fatal(err)
+ }
+ break
+ }
+ switch x := t.(type) {
+ case xml.CharData:
+ attr = "" // Don't need attribute info.
+ a := bytes.Split([]byte(x), []byte("\n"))
+ for i, b := range a {
+ if b = bytes.TrimSpace(b); len(b) != 0 {
+ if !inElem && i > 0 {
+ fmt.Fprint(w, "\n// ")
+ }
+ inElem = false
+ fmt.Fprintf(w, "%s ", string(b))
+ }
+ }
+ case xml.StartElement:
+ if x.Name.Local == "xref" {
+ inElem = true
+ use := false
+ for _, a := range x.Attr {
+ if a.Name.Local == "type" {
+ use = use || a.Value != "person"
+ }
+ if a.Name.Local == "data" && use {
+ attr = a.Value + " "
+ }
+ }
+ }
+ case xml.EndElement:
+ inElem = false
+ fmt.Fprint(w, attr)
+ }
+ }
+ fmt.Fprint(w, "\n")
+ }
+ for _, x := range rec.Xref {
+ switch x.Type {
+ case "rfc":
+ fmt.Fprintf(w, "// Reference: %s\n", strings.ToUpper(x.Data))
+ case "uri":
+ fmt.Fprintf(w, "// Reference: %s\n", x.Data)
+ }
+ }
+ fmt.Fprintf(w, "%s MIB = %s\n", constName, rec.MIB)
+ fmt.Fprintln(w)
+ }
+ fmt.Fprintln(w, ")")
+
+ gen.WriteGoFile("mib.go", "identifier", w.Bytes())
+}
diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go
new file mode 100644
index 000000000..2a2da0ef2
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go
@@ -0,0 +1,81 @@
+// 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.
+
+//go:generate go run gen.go
+
+// Package identifier defines the contract between implementations of Encoding
+// and Index by defining identifiers that uniquely identify standardized coded
+// character sets (CCS) and character encoding schemes (CES), which we will
+// together refer to as encodings, for which Encoding implementations provide
+// converters to and from UTF-8. This package is typically only of concern to
+// implementers of Indexes and Encodings.
+//
+// One part of the identifier is the MIB code, which is defined by IANA and
+// uniquely identifies a CCS or CES. Each code is associated with data that
+// references authorities, official documentation as well as aliases and MIME
+// names.
+//
+// Not all CESs are covered by the IANA registry. The "other" string that is
+// returned by ID can be used to identify other character sets or versions of
+// existing ones.
+//
+// It is recommended that each package that provides a set of Encodings provide
+// the All and Common variables to reference all supported encodings and
+// commonly used subset. This allows Index implementations to include all
+// available encodings without explicitly referencing or knowing about them.
+package identifier
+
+// Note: this package is internal, but could be made public if there is a need
+// for writing third-party Indexes and Encodings.
+
+// References:
+// - http://source.icu-project.org/repos/icu/icu/trunk/source/data/mappings/convrtrs.txt
+// - http://www.iana.org/assignments/character-sets/character-sets.xhtml
+// - http://www.iana.org/assignments/ianacharset-mib/ianacharset-mib
+// - http://www.ietf.org/rfc/rfc2978.txt
+// - http://www.unicode.org/reports/tr22/
+// - http://www.w3.org/TR/encoding/
+// - http://www.w3.org/TR/encoding/indexes/encodings.json
+// - https://encoding.spec.whatwg.org/
+// - https://tools.ietf.org/html/rfc6657#section-5
+
+// Interface can be implemented by Encodings to define the CCS or CES for which
+// it implements conversions.
+type Interface interface {
+ // ID returns an encoding identifier. Exactly one of the mib and other
+ // values should be non-zero.
+ //
+ // In the usual case it is only necessary to indicate the MIB code. The
+ // other string can be used to specify encodings for which there is no MIB,
+ // such as "x-mac-dingbat".
+ //
+ // The other string may only contain the characters a-z, A-Z, 0-9, - and _.
+ ID() (mib MIB, other string)
+
+ // NOTE: the restrictions on the encoding are to allow extending the syntax
+ // with additional information such as versions, vendors and other variants.
+}
+
+// A MIB identifies an encoding. It is derived from the IANA MIB codes and adds
+// some identifiers for some encodings that are not covered by the IANA
+// standard.
+//
+// See http://www.iana.org/assignments/ianacharset-mib.
+type MIB uint16
+
+// These additional MIB types are not defined in IANA. They are added because
+// they are common and defined within the text repo.
+const (
+ // Unofficial marks the start of encodings not registered by IANA.
+ Unofficial MIB = 10000 + iota
+
+ // Replacement is the WhatWG replacement encoding.
+ Replacement
+
+ // XUserDefined is the code for x-user-defined.
+ XUserDefined
+
+ // MacintoshCyrillic is the code for x-mac-cyrillic.
+ MacintoshCyrillic
+)
diff --git a/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go
new file mode 100644
index 000000000..915abfa29
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/internal/identifier/mib.go
@@ -0,0 +1,1621 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package identifier
+
+const (
+ // ASCII is the MIB identifier with IANA name US-ASCII (MIME: US-ASCII).
+ //
+ // ANSI X3.4-1986
+ // Reference: RFC2046
+ ASCII MIB = 3
+
+ // ISOLatin1 is the MIB identifier with IANA name ISO_8859-1:1987 (MIME: ISO-8859-1).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin1 MIB = 4
+
+ // ISOLatin2 is the MIB identifier with IANA name ISO_8859-2:1987 (MIME: ISO-8859-2).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin2 MIB = 5
+
+ // ISOLatin3 is the MIB identifier with IANA name ISO_8859-3:1988 (MIME: ISO-8859-3).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin3 MIB = 6
+
+ // ISOLatin4 is the MIB identifier with IANA name ISO_8859-4:1988 (MIME: ISO-8859-4).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin4 MIB = 7
+
+ // ISOLatinCyrillic is the MIB identifier with IANA name ISO_8859-5:1988 (MIME: ISO-8859-5).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatinCyrillic MIB = 8
+
+ // ISOLatinArabic is the MIB identifier with IANA name ISO_8859-6:1987 (MIME: ISO-8859-6).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatinArabic MIB = 9
+
+ // ISOLatinGreek is the MIB identifier with IANA name ISO_8859-7:1987 (MIME: ISO-8859-7).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1947
+ // Reference: RFC1345
+ ISOLatinGreek MIB = 10
+
+ // ISOLatinHebrew is the MIB identifier with IANA name ISO_8859-8:1988 (MIME: ISO-8859-8).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatinHebrew MIB = 11
+
+ // ISOLatin5 is the MIB identifier with IANA name ISO_8859-9:1989 (MIME: ISO-8859-9).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin5 MIB = 12
+
+ // ISOLatin6 is the MIB identifier with IANA name ISO-8859-10 (MIME: ISO-8859-10).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOLatin6 MIB = 13
+
+ // ISOTextComm is the MIB identifier with IANA name ISO_6937-2-add.
+ //
+ // ISO-IR: International Register of Escape Sequences and ISO 6937-2:1983
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISOTextComm MIB = 14
+
+ // HalfWidthKatakana is the MIB identifier with IANA name JIS_X0201.
+ //
+ // JIS X 0201-1976. One byte only, this is equivalent to
+ // JIS/Roman (similar to ASCII) plus eight-bit half-width
+ // Katakana
+ // Reference: RFC1345
+ HalfWidthKatakana MIB = 15
+
+ // JISEncoding is the MIB identifier with IANA name JIS_Encoding.
+ //
+ // JIS X 0202-1991. Uses ISO 2022 escape sequences to
+ // shift code sets as documented in JIS X 0202-1991.
+ JISEncoding MIB = 16
+
+ // ShiftJIS is the MIB identifier with IANA name Shift_JIS (MIME: Shift_JIS).
+ //
+ // This charset is an extension of csHalfWidthKatakana by
+ // adding graphic characters in JIS X 0208. The CCS's are
+ // JIS X0201:1997 and JIS X0208:1997. The
+ // complete definition is shown in Appendix 1 of JIS
+ // X0208:1997.
+ // This charset can be used for the top-level media type "text".
+ ShiftJIS MIB = 17
+
+ // EUCPkdFmtJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Packed_Format_for_Japanese (MIME: EUC-JP).
+ //
+ // Standardized by OSF, UNIX International, and UNIX Systems
+ // Laboratories Pacific. Uses ISO 2022 rules to select
+ // code set 0: US-ASCII (a single 7-bit byte set)
+ // code set 1: JIS X0208-1990 (a double 8-bit byte set)
+ // restricted to A0-FF in both bytes
+ // code set 2: Half Width Katakana (a single 7-bit byte set)
+ // requiring SS2 as the character prefix
+ // code set 3: JIS X0212-1990 (a double 7-bit byte set)
+ // restricted to A0-FF in both bytes
+ // requiring SS3 as the character prefix
+ EUCPkdFmtJapanese MIB = 18
+
+ // EUCFixWidJapanese is the MIB identifier with IANA name Extended_UNIX_Code_Fixed_Width_for_Japanese.
+ //
+ // Used in Japan. Each character is 2 octets.
+ // code set 0: US-ASCII (a single 7-bit byte set)
+ // 1st byte = 00
+ // 2nd byte = 20-7E
+ // code set 1: JIS X0208-1990 (a double 7-bit byte set)
+ // restricted to A0-FF in both bytes
+ // code set 2: Half Width Katakana (a single 7-bit byte set)
+ // 1st byte = 00
+ // 2nd byte = A0-FF
+ // code set 3: JIS X0212-1990 (a double 7-bit byte set)
+ // restricted to A0-FF in
+ // the first byte
+ // and 21-7E in the second byte
+ EUCFixWidJapanese MIB = 19
+
+ // ISO4UnitedKingdom is the MIB identifier with IANA name BS_4730.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO4UnitedKingdom MIB = 20
+
+ // ISO11SwedishForNames is the MIB identifier with IANA name SEN_850200_C.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO11SwedishForNames MIB = 21
+
+ // ISO15Italian is the MIB identifier with IANA name IT.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO15Italian MIB = 22
+
+ // ISO17Spanish is the MIB identifier with IANA name ES.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO17Spanish MIB = 23
+
+ // ISO21German is the MIB identifier with IANA name DIN_66003.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO21German MIB = 24
+
+ // ISO60Norwegian1 is the MIB identifier with IANA name NS_4551-1.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO60Norwegian1 MIB = 25
+
+ // ISO69French is the MIB identifier with IANA name NF_Z_62-010.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO69French MIB = 26
+
+ // ISO10646UTF1 is the MIB identifier with IANA name ISO-10646-UTF-1.
+ //
+ // Universal Transfer Format (1), this is the multibyte
+ // encoding, that subsets ASCII-7. It does not have byte
+ // ordering issues.
+ ISO10646UTF1 MIB = 27
+
+ // ISO646basic1983 is the MIB identifier with IANA name ISO_646.basic:1983.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO646basic1983 MIB = 28
+
+ // INVARIANT is the MIB identifier with IANA name INVARIANT.
+ //
+ // Reference: RFC1345
+ INVARIANT MIB = 29
+
+ // ISO2IntlRefVersion is the MIB identifier with IANA name ISO_646.irv:1983.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO2IntlRefVersion MIB = 30
+
+ // NATSSEFI is the MIB identifier with IANA name NATS-SEFI.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ NATSSEFI MIB = 31
+
+ // NATSSEFIADD is the MIB identifier with IANA name NATS-SEFI-ADD.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ NATSSEFIADD MIB = 32
+
+ // NATSDANO is the MIB identifier with IANA name NATS-DANO.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ NATSDANO MIB = 33
+
+ // NATSDANOADD is the MIB identifier with IANA name NATS-DANO-ADD.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ NATSDANOADD MIB = 34
+
+ // ISO10Swedish is the MIB identifier with IANA name SEN_850200_B.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO10Swedish MIB = 35
+
+ // KSC56011987 is the MIB identifier with IANA name KS_C_5601-1987.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ KSC56011987 MIB = 36
+
+ // ISO2022KR is the MIB identifier with IANA name ISO-2022-KR (MIME: ISO-2022-KR).
+ //
+ // rfc1557 (see also KS_C_5601-1987)
+ // Reference: RFC1557
+ ISO2022KR MIB = 37
+
+ // EUCKR is the MIB identifier with IANA name EUC-KR (MIME: EUC-KR).
+ //
+ // rfc1557 (see also KS_C_5861-1992)
+ // Reference: RFC1557
+ EUCKR MIB = 38
+
+ // ISO2022JP is the MIB identifier with IANA name ISO-2022-JP (MIME: ISO-2022-JP).
+ //
+ // rfc1468 (see also rfc2237 )
+ // Reference: RFC1468
+ ISO2022JP MIB = 39
+
+ // ISO2022JP2 is the MIB identifier with IANA name ISO-2022-JP-2 (MIME: ISO-2022-JP-2).
+ //
+ // rfc1554
+ // Reference: RFC1554
+ ISO2022JP2 MIB = 40
+
+ // ISO13JISC6220jp is the MIB identifier with IANA name JIS_C6220-1969-jp.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO13JISC6220jp MIB = 41
+
+ // ISO14JISC6220ro is the MIB identifier with IANA name JIS_C6220-1969-ro.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO14JISC6220ro MIB = 42
+
+ // ISO16Portuguese is the MIB identifier with IANA name PT.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO16Portuguese MIB = 43
+
+ // ISO18Greek7Old is the MIB identifier with IANA name greek7-old.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO18Greek7Old MIB = 44
+
+ // ISO19LatinGreek is the MIB identifier with IANA name latin-greek.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO19LatinGreek MIB = 45
+
+ // ISO25French is the MIB identifier with IANA name NF_Z_62-010_(1973).
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO25French MIB = 46
+
+ // ISO27LatinGreek1 is the MIB identifier with IANA name Latin-greek-1.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO27LatinGreek1 MIB = 47
+
+ // ISO5427Cyrillic is the MIB identifier with IANA name ISO_5427.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO5427Cyrillic MIB = 48
+
+ // ISO42JISC62261978 is the MIB identifier with IANA name JIS_C6226-1978.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO42JISC62261978 MIB = 49
+
+ // ISO47BSViewdata is the MIB identifier with IANA name BS_viewdata.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO47BSViewdata MIB = 50
+
+ // ISO49INIS is the MIB identifier with IANA name INIS.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO49INIS MIB = 51
+
+ // ISO50INIS8 is the MIB identifier with IANA name INIS-8.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO50INIS8 MIB = 52
+
+ // ISO51INISCyrillic is the MIB identifier with IANA name INIS-cyrillic.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO51INISCyrillic MIB = 53
+
+ // ISO54271981 is the MIB identifier with IANA name ISO_5427:1981.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO54271981 MIB = 54
+
+ // ISO5428Greek is the MIB identifier with IANA name ISO_5428:1980.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO5428Greek MIB = 55
+
+ // ISO57GB1988 is the MIB identifier with IANA name GB_1988-80.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO57GB1988 MIB = 56
+
+ // ISO58GB231280 is the MIB identifier with IANA name GB_2312-80.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO58GB231280 MIB = 57
+
+ // ISO61Norwegian2 is the MIB identifier with IANA name NS_4551-2.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO61Norwegian2 MIB = 58
+
+ // ISO70VideotexSupp1 is the MIB identifier with IANA name videotex-suppl.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO70VideotexSupp1 MIB = 59
+
+ // ISO84Portuguese2 is the MIB identifier with IANA name PT2.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO84Portuguese2 MIB = 60
+
+ // ISO85Spanish2 is the MIB identifier with IANA name ES2.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO85Spanish2 MIB = 61
+
+ // ISO86Hungarian is the MIB identifier with IANA name MSZ_7795.3.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO86Hungarian MIB = 62
+
+ // ISO87JISX0208 is the MIB identifier with IANA name JIS_C6226-1983.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO87JISX0208 MIB = 63
+
+ // ISO88Greek7 is the MIB identifier with IANA name greek7.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO88Greek7 MIB = 64
+
+ // ISO89ASMO449 is the MIB identifier with IANA name ASMO_449.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO89ASMO449 MIB = 65
+
+ // ISO90 is the MIB identifier with IANA name iso-ir-90.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO90 MIB = 66
+
+ // ISO91JISC62291984a is the MIB identifier with IANA name JIS_C6229-1984-a.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO91JISC62291984a MIB = 67
+
+ // ISO92JISC62991984b is the MIB identifier with IANA name JIS_C6229-1984-b.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO92JISC62991984b MIB = 68
+
+ // ISO93JIS62291984badd is the MIB identifier with IANA name JIS_C6229-1984-b-add.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO93JIS62291984badd MIB = 69
+
+ // ISO94JIS62291984hand is the MIB identifier with IANA name JIS_C6229-1984-hand.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO94JIS62291984hand MIB = 70
+
+ // ISO95JIS62291984handadd is the MIB identifier with IANA name JIS_C6229-1984-hand-add.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO95JIS62291984handadd MIB = 71
+
+ // ISO96JISC62291984kana is the MIB identifier with IANA name JIS_C6229-1984-kana.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO96JISC62291984kana MIB = 72
+
+ // ISO2033 is the MIB identifier with IANA name ISO_2033-1983.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO2033 MIB = 73
+
+ // ISO99NAPLPS is the MIB identifier with IANA name ANSI_X3.110-1983.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO99NAPLPS MIB = 74
+
+ // ISO102T617bit is the MIB identifier with IANA name T.61-7bit.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO102T617bit MIB = 75
+
+ // ISO103T618bit is the MIB identifier with IANA name T.61-8bit.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO103T618bit MIB = 76
+
+ // ISO111ECMACyrillic is the MIB identifier with IANA name ECMA-cyrillic.
+ //
+ // ISO registry
+ // (formerly ECMA
+ // registry )
+ ISO111ECMACyrillic MIB = 77
+
+ // ISO121Canadian1 is the MIB identifier with IANA name CSA_Z243.4-1985-1.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO121Canadian1 MIB = 78
+
+ // ISO122Canadian2 is the MIB identifier with IANA name CSA_Z243.4-1985-2.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO122Canadian2 MIB = 79
+
+ // ISO123CSAZ24341985gr is the MIB identifier with IANA name CSA_Z243.4-1985-gr.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO123CSAZ24341985gr MIB = 80
+
+ // ISO88596E is the MIB identifier with IANA name ISO_8859-6-E (MIME: ISO-8859-6-E).
+ //
+ // rfc1556
+ // Reference: RFC1556
+ ISO88596E MIB = 81
+
+ // ISO88596I is the MIB identifier with IANA name ISO_8859-6-I (MIME: ISO-8859-6-I).
+ //
+ // rfc1556
+ // Reference: RFC1556
+ ISO88596I MIB = 82
+
+ // ISO128T101G2 is the MIB identifier with IANA name T.101-G2.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO128T101G2 MIB = 83
+
+ // ISO88598E is the MIB identifier with IANA name ISO_8859-8-E (MIME: ISO-8859-8-E).
+ //
+ // rfc1556
+ // Reference: RFC1556
+ ISO88598E MIB = 84
+
+ // ISO88598I is the MIB identifier with IANA name ISO_8859-8-I (MIME: ISO-8859-8-I).
+ //
+ // rfc1556
+ // Reference: RFC1556
+ ISO88598I MIB = 85
+
+ // ISO139CSN369103 is the MIB identifier with IANA name CSN_369103.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO139CSN369103 MIB = 86
+
+ // ISO141JUSIB1002 is the MIB identifier with IANA name JUS_I.B1.002.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO141JUSIB1002 MIB = 87
+
+ // ISO143IECP271 is the MIB identifier with IANA name IEC_P27-1.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO143IECP271 MIB = 88
+
+ // ISO146Serbian is the MIB identifier with IANA name JUS_I.B1.003-serb.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO146Serbian MIB = 89
+
+ // ISO147Macedonian is the MIB identifier with IANA name JUS_I.B1.003-mac.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO147Macedonian MIB = 90
+
+ // ISO150GreekCCITT is the MIB identifier with IANA name greek-ccitt.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO150GreekCCITT MIB = 91
+
+ // ISO151Cuba is the MIB identifier with IANA name NC_NC00-10:81.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO151Cuba MIB = 92
+
+ // ISO6937Add is the MIB identifier with IANA name ISO_6937-2-25.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO6937Add MIB = 93
+
+ // ISO153GOST1976874 is the MIB identifier with IANA name GOST_19768-74.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO153GOST1976874 MIB = 94
+
+ // ISO8859Supp is the MIB identifier with IANA name ISO_8859-supp.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO8859Supp MIB = 95
+
+ // ISO10367Box is the MIB identifier with IANA name ISO_10367-box.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO10367Box MIB = 96
+
+ // ISO158Lap is the MIB identifier with IANA name latin-lap.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO158Lap MIB = 97
+
+ // ISO159JISX02121990 is the MIB identifier with IANA name JIS_X0212-1990.
+ //
+ // ISO-IR: International Register of Escape Sequences
+ // Note: The current registration authority is IPSJ/ITSCJ, Japan.
+ // Reference: RFC1345
+ ISO159JISX02121990 MIB = 98
+
+ // ISO646Danish is the MIB identifier with IANA name DS_2089.
+ //
+ // Danish Standard, DS 2089, February 1974
+ // Reference: RFC1345
+ ISO646Danish MIB = 99
+
+ // USDK is the MIB identifier with IANA name us-dk.
+ //
+ // Reference: RFC1345
+ USDK MIB = 100
+
+ // DKUS is the MIB identifier with IANA name dk-us.
+ //
+ // Reference: RFC1345
+ DKUS MIB = 101
+
+ // KSC5636 is the MIB identifier with IANA name KSC5636.
+ //
+ // Reference: RFC1345
+ KSC5636 MIB = 102
+
+ // Unicode11UTF7 is the MIB identifier with IANA name UNICODE-1-1-UTF-7.
+ //
+ // rfc1642
+ // Reference: RFC1642
+ Unicode11UTF7 MIB = 103
+
+ // ISO2022CN is the MIB identifier with IANA name ISO-2022-CN.
+ //
+ // rfc1922
+ // Reference: RFC1922
+ ISO2022CN MIB = 104
+
+ // ISO2022CNEXT is the MIB identifier with IANA name ISO-2022-CN-EXT.
+ //
+ // rfc1922
+ // Reference: RFC1922
+ ISO2022CNEXT MIB = 105
+
+ // UTF8 is the MIB identifier with IANA name UTF-8.
+ //
+ // rfc3629
+ // Reference: RFC3629
+ UTF8 MIB = 106
+
+ // ISO885913 is the MIB identifier with IANA name ISO-8859-13.
+ //
+ // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-13 http://www.iana.org/assignments/charset-reg/ISO-8859-13
+ ISO885913 MIB = 109
+
+ // ISO885914 is the MIB identifier with IANA name ISO-8859-14.
+ //
+ // ISO See http://www.iana.org/assignments/charset-reg/ISO-8859-14
+ ISO885914 MIB = 110
+
+ // ISO885915 is the MIB identifier with IANA name ISO-8859-15.
+ //
+ // ISO
+ // Please see: http://www.iana.org/assignments/charset-reg/ISO-8859-15
+ ISO885915 MIB = 111
+
+ // ISO885916 is the MIB identifier with IANA name ISO-8859-16.
+ //
+ // ISO
+ ISO885916 MIB = 112
+
+ // GBK is the MIB identifier with IANA name GBK.
+ //
+ // Chinese IT Standardization Technical Committee
+ // Please see: http://www.iana.org/assignments/charset-reg/GBK
+ GBK MIB = 113
+
+ // GB18030 is the MIB identifier with IANA name GB18030.
+ //
+ // Chinese IT Standardization Technical Committee
+ // Please see: http://www.iana.org/assignments/charset-reg/GB18030
+ GB18030 MIB = 114
+
+ // OSDEBCDICDF0415 is the MIB identifier with IANA name OSD_EBCDIC_DF04_15.
+ //
+ // Fujitsu-Siemens standard mainframe EBCDIC encoding
+ // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-15
+ OSDEBCDICDF0415 MIB = 115
+
+ // OSDEBCDICDF03IRV is the MIB identifier with IANA name OSD_EBCDIC_DF03_IRV.
+ //
+ // Fujitsu-Siemens standard mainframe EBCDIC encoding
+ // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF03-IRV
+ OSDEBCDICDF03IRV MIB = 116
+
+ // OSDEBCDICDF041 is the MIB identifier with IANA name OSD_EBCDIC_DF04_1.
+ //
+ // Fujitsu-Siemens standard mainframe EBCDIC encoding
+ // Please see: http://www.iana.org/assignments/charset-reg/OSD-EBCDIC-DF04-1
+ OSDEBCDICDF041 MIB = 117
+
+ // ISO115481 is the MIB identifier with IANA name ISO-11548-1.
+ //
+ // See http://www.iana.org/assignments/charset-reg/ISO-11548-1
+ ISO115481 MIB = 118
+
+ // KZ1048 is the MIB identifier with IANA name KZ-1048.
+ //
+ // See http://www.iana.org/assignments/charset-reg/KZ-1048
+ KZ1048 MIB = 119
+
+ // Unicode is the MIB identifier with IANA name ISO-10646-UCS-2.
+ //
+ // the 2-octet Basic Multilingual Plane, aka Unicode
+ // this needs to specify network byte order: the standard
+ // does not specify (it is a 16-bit integer space)
+ Unicode MIB = 1000
+
+ // UCS4 is the MIB identifier with IANA name ISO-10646-UCS-4.
+ //
+ // the full code space. (same comment about byte order,
+ // these are 31-bit numbers.
+ UCS4 MIB = 1001
+
+ // UnicodeASCII is the MIB identifier with IANA name ISO-10646-UCS-Basic.
+ //
+ // ASCII subset of Unicode. Basic Latin = collection 1
+ // See ISO 10646, Appendix A
+ UnicodeASCII MIB = 1002
+
+ // UnicodeLatin1 is the MIB identifier with IANA name ISO-10646-Unicode-Latin1.
+ //
+ // ISO Latin-1 subset of Unicode. Basic Latin and Latin-1
+ // Supplement = collections 1 and 2. See ISO 10646,
+ // Appendix A. See rfc1815 .
+ UnicodeLatin1 MIB = 1003
+
+ // UnicodeJapanese is the MIB identifier with IANA name ISO-10646-J-1.
+ //
+ // ISO 10646 Japanese, see rfc1815 .
+ UnicodeJapanese MIB = 1004
+
+ // UnicodeIBM1261 is the MIB identifier with IANA name ISO-Unicode-IBM-1261.
+ //
+ // IBM Latin-2, -3, -5, Extended Presentation Set, GCSGID: 1261
+ UnicodeIBM1261 MIB = 1005
+
+ // UnicodeIBM1268 is the MIB identifier with IANA name ISO-Unicode-IBM-1268.
+ //
+ // IBM Latin-4 Extended Presentation Set, GCSGID: 1268
+ UnicodeIBM1268 MIB = 1006
+
+ // UnicodeIBM1276 is the MIB identifier with IANA name ISO-Unicode-IBM-1276.
+ //
+ // IBM Cyrillic Greek Extended Presentation Set, GCSGID: 1276
+ UnicodeIBM1276 MIB = 1007
+
+ // UnicodeIBM1264 is the MIB identifier with IANA name ISO-Unicode-IBM-1264.
+ //
+ // IBM Arabic Presentation Set, GCSGID: 1264
+ UnicodeIBM1264 MIB = 1008
+
+ // UnicodeIBM1265 is the MIB identifier with IANA name ISO-Unicode-IBM-1265.
+ //
+ // IBM Hebrew Presentation Set, GCSGID: 1265
+ UnicodeIBM1265 MIB = 1009
+
+ // Unicode11 is the MIB identifier with IANA name UNICODE-1-1.
+ //
+ // rfc1641
+ // Reference: RFC1641
+ Unicode11 MIB = 1010
+
+ // SCSU is the MIB identifier with IANA name SCSU.
+ //
+ // SCSU See http://www.iana.org/assignments/charset-reg/SCSU
+ SCSU MIB = 1011
+
+ // UTF7 is the MIB identifier with IANA name UTF-7.
+ //
+ // rfc2152
+ // Reference: RFC2152
+ UTF7 MIB = 1012
+
+ // UTF16BE is the MIB identifier with IANA name UTF-16BE.
+ //
+ // rfc2781
+ // Reference: RFC2781
+ UTF16BE MIB = 1013
+
+ // UTF16LE is the MIB identifier with IANA name UTF-16LE.
+ //
+ // rfc2781
+ // Reference: RFC2781
+ UTF16LE MIB = 1014
+
+ // UTF16 is the MIB identifier with IANA name UTF-16.
+ //
+ // rfc2781
+ // Reference: RFC2781
+ UTF16 MIB = 1015
+
+ // CESU8 is the MIB identifier with IANA name CESU-8.
+ //
+ // http://www.unicode.org/unicode/reports/tr26
+ CESU8 MIB = 1016
+
+ // UTF32 is the MIB identifier with IANA name UTF-32.
+ //
+ // http://www.unicode.org/unicode/reports/tr19/
+ UTF32 MIB = 1017
+
+ // UTF32BE is the MIB identifier with IANA name UTF-32BE.
+ //
+ // http://www.unicode.org/unicode/reports/tr19/
+ UTF32BE MIB = 1018
+
+ // UTF32LE is the MIB identifier with IANA name UTF-32LE.
+ //
+ // http://www.unicode.org/unicode/reports/tr19/
+ UTF32LE MIB = 1019
+
+ // BOCU1 is the MIB identifier with IANA name BOCU-1.
+ //
+ // http://www.unicode.org/notes/tn6/
+ BOCU1 MIB = 1020
+
+ // Windows30Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.0-Latin-1.
+ //
+ // Extended ISO 8859-1 Latin-1 for Windows 3.0.
+ // PCL Symbol Set id: 9U
+ Windows30Latin1 MIB = 2000
+
+ // Windows31Latin1 is the MIB identifier with IANA name ISO-8859-1-Windows-3.1-Latin-1.
+ //
+ // Extended ISO 8859-1 Latin-1 for Windows 3.1.
+ // PCL Symbol Set id: 19U
+ Windows31Latin1 MIB = 2001
+
+ // Windows31Latin2 is the MIB identifier with IANA name ISO-8859-2-Windows-Latin-2.
+ //
+ // Extended ISO 8859-2. Latin-2 for Windows 3.1.
+ // PCL Symbol Set id: 9E
+ Windows31Latin2 MIB = 2002
+
+ // Windows31Latin5 is the MIB identifier with IANA name ISO-8859-9-Windows-Latin-5.
+ //
+ // Extended ISO 8859-9. Latin-5 for Windows 3.1
+ // PCL Symbol Set id: 5T
+ Windows31Latin5 MIB = 2003
+
+ // HPRoman8 is the MIB identifier with IANA name hp-roman8.
+ //
+ // LaserJet IIP Printer User's Manual,
+ // HP part no 33471-90901, Hewlet-Packard, June 1989.
+ // Reference: RFC1345
+ HPRoman8 MIB = 2004
+
+ // AdobeStandardEncoding is the MIB identifier with IANA name Adobe-Standard-Encoding.
+ //
+ // PostScript Language Reference Manual
+ // PCL Symbol Set id: 10J
+ AdobeStandardEncoding MIB = 2005
+
+ // VenturaUS is the MIB identifier with IANA name Ventura-US.
+ //
+ // Ventura US. ASCII plus characters typically used in
+ // publishing, like pilcrow, copyright, registered, trade mark,
+ // section, dagger, and double dagger in the range A0 (hex)
+ // to FF (hex).
+ // PCL Symbol Set id: 14J
+ VenturaUS MIB = 2006
+
+ // VenturaInternational is the MIB identifier with IANA name Ventura-International.
+ //
+ // Ventura International. ASCII plus coded characters similar
+ // to Roman8.
+ // PCL Symbol Set id: 13J
+ VenturaInternational MIB = 2007
+
+ // DECMCS is the MIB identifier with IANA name DEC-MCS.
+ //
+ // VAX/VMS User's Manual,
+ // Order Number: AI-Y517A-TE, April 1986.
+ // Reference: RFC1345
+ DECMCS MIB = 2008
+
+ // PC850Multilingual is the MIB identifier with IANA name IBM850.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ PC850Multilingual MIB = 2009
+
+ // PC8DanishNorwegian is the MIB identifier with IANA name PC8-Danish-Norwegian.
+ //
+ // PC Danish Norwegian
+ // 8-bit PC set for Danish Norwegian
+ // PCL Symbol Set id: 11U
+ PC8DanishNorwegian MIB = 2012
+
+ // PC862LatinHebrew is the MIB identifier with IANA name IBM862.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ PC862LatinHebrew MIB = 2013
+
+ // PC8Turkish is the MIB identifier with IANA name PC8-Turkish.
+ //
+ // PC Latin Turkish. PCL Symbol Set id: 9T
+ PC8Turkish MIB = 2014
+
+ // IBMSymbols is the MIB identifier with IANA name IBM-Symbols.
+ //
+ // Presentation Set, CPGID: 259
+ IBMSymbols MIB = 2015
+
+ // IBMThai is the MIB identifier with IANA name IBM-Thai.
+ //
+ // Presentation Set, CPGID: 838
+ IBMThai MIB = 2016
+
+ // HPLegal is the MIB identifier with IANA name HP-Legal.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 1U
+ HPLegal MIB = 2017
+
+ // HPPiFont is the MIB identifier with IANA name HP-Pi-font.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 15U
+ HPPiFont MIB = 2018
+
+ // HPMath8 is the MIB identifier with IANA name HP-Math8.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 8M
+ HPMath8 MIB = 2019
+
+ // HPPSMath is the MIB identifier with IANA name Adobe-Symbol-Encoding.
+ //
+ // PostScript Language Reference Manual
+ // PCL Symbol Set id: 5M
+ HPPSMath MIB = 2020
+
+ // HPDesktop is the MIB identifier with IANA name HP-DeskTop.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 7J
+ HPDesktop MIB = 2021
+
+ // VenturaMath is the MIB identifier with IANA name Ventura-Math.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 6M
+ VenturaMath MIB = 2022
+
+ // MicrosoftPublishing is the MIB identifier with IANA name Microsoft-Publishing.
+ //
+ // PCL 5 Comparison Guide, Hewlett-Packard,
+ // HP part number 5961-0510, October 1992
+ // PCL Symbol Set id: 6J
+ MicrosoftPublishing MIB = 2023
+
+ // Windows31J is the MIB identifier with IANA name Windows-31J.
+ //
+ // Windows Japanese. A further extension of Shift_JIS
+ // to include NEC special characters (Row 13), NEC
+ // selection of IBM extensions (Rows 89 to 92), and IBM
+ // extensions (Rows 115 to 119). The CCS's are
+ // JIS X0201:1997, JIS X0208:1997, and these extensions.
+ // This charset can be used for the top-level media type "text",
+ // but it is of limited or specialized use (see rfc2278 ).
+ // PCL Symbol Set id: 19K
+ Windows31J MIB = 2024
+
+ // GB2312 is the MIB identifier with IANA name GB2312 (MIME: GB2312).
+ //
+ // Chinese for People's Republic of China (PRC) mixed one byte,
+ // two byte set:
+ // 20-7E = one byte ASCII
+ // A1-FE = two byte PRC Kanji
+ // See GB 2312-80
+ // PCL Symbol Set Id: 18C
+ GB2312 MIB = 2025
+
+ // Big5 is the MIB identifier with IANA name Big5 (MIME: Big5).
+ //
+ // Chinese for Taiwan Multi-byte set.
+ // PCL Symbol Set Id: 18T
+ Big5 MIB = 2026
+
+ // Macintosh is the MIB identifier with IANA name macintosh.
+ //
+ // The Unicode Standard ver1.0, ISBN 0-201-56788-1, Oct 1991
+ // Reference: RFC1345
+ Macintosh MIB = 2027
+
+ // IBM037 is the MIB identifier with IANA name IBM037.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM037 MIB = 2028
+
+ // IBM038 is the MIB identifier with IANA name IBM038.
+ //
+ // IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ // Reference: RFC1345
+ IBM038 MIB = 2029
+
+ // IBM273 is the MIB identifier with IANA name IBM273.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM273 MIB = 2030
+
+ // IBM274 is the MIB identifier with IANA name IBM274.
+ //
+ // IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ // Reference: RFC1345
+ IBM274 MIB = 2031
+
+ // IBM275 is the MIB identifier with IANA name IBM275.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM275 MIB = 2032
+
+ // IBM277 is the MIB identifier with IANA name IBM277.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM277 MIB = 2033
+
+ // IBM278 is the MIB identifier with IANA name IBM278.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM278 MIB = 2034
+
+ // IBM280 is the MIB identifier with IANA name IBM280.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM280 MIB = 2035
+
+ // IBM281 is the MIB identifier with IANA name IBM281.
+ //
+ // IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ // Reference: RFC1345
+ IBM281 MIB = 2036
+
+ // IBM284 is the MIB identifier with IANA name IBM284.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM284 MIB = 2037
+
+ // IBM285 is the MIB identifier with IANA name IBM285.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM285 MIB = 2038
+
+ // IBM290 is the MIB identifier with IANA name IBM290.
+ //
+ // IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ // Reference: RFC1345
+ IBM290 MIB = 2039
+
+ // IBM297 is the MIB identifier with IANA name IBM297.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM297 MIB = 2040
+
+ // IBM420 is the MIB identifier with IANA name IBM420.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990,
+ // IBM NLS RM p 11-11
+ // Reference: RFC1345
+ IBM420 MIB = 2041
+
+ // IBM423 is the MIB identifier with IANA name IBM423.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM423 MIB = 2042
+
+ // IBM424 is the MIB identifier with IANA name IBM424.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM424 MIB = 2043
+
+ // PC8CodePage437 is the MIB identifier with IANA name IBM437.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ PC8CodePage437 MIB = 2011
+
+ // IBM500 is the MIB identifier with IANA name IBM500.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM500 MIB = 2044
+
+ // IBM851 is the MIB identifier with IANA name IBM851.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM851 MIB = 2045
+
+ // PCp852 is the MIB identifier with IANA name IBM852.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ PCp852 MIB = 2010
+
+ // IBM855 is the MIB identifier with IANA name IBM855.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM855 MIB = 2046
+
+ // IBM857 is the MIB identifier with IANA name IBM857.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM857 MIB = 2047
+
+ // IBM860 is the MIB identifier with IANA name IBM860.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM860 MIB = 2048
+
+ // IBM861 is the MIB identifier with IANA name IBM861.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM861 MIB = 2049
+
+ // IBM863 is the MIB identifier with IANA name IBM863.
+ //
+ // IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+ // Reference: RFC1345
+ IBM863 MIB = 2050
+
+ // IBM864 is the MIB identifier with IANA name IBM864.
+ //
+ // IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+ // Reference: RFC1345
+ IBM864 MIB = 2051
+
+ // IBM865 is the MIB identifier with IANA name IBM865.
+ //
+ // IBM DOS 3.3 Ref (Abridged), 94X9575 (Feb 1987)
+ // Reference: RFC1345
+ IBM865 MIB = 2052
+
+ // IBM868 is the MIB identifier with IANA name IBM868.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM868 MIB = 2053
+
+ // IBM869 is the MIB identifier with IANA name IBM869.
+ //
+ // IBM Keyboard layouts and code pages, PN 07G4586 June 1991
+ // Reference: RFC1345
+ IBM869 MIB = 2054
+
+ // IBM870 is the MIB identifier with IANA name IBM870.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM870 MIB = 2055
+
+ // IBM871 is the MIB identifier with IANA name IBM871.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM871 MIB = 2056
+
+ // IBM880 is the MIB identifier with IANA name IBM880.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM880 MIB = 2057
+
+ // IBM891 is the MIB identifier with IANA name IBM891.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM891 MIB = 2058
+
+ // IBM903 is the MIB identifier with IANA name IBM903.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM903 MIB = 2059
+
+ // IBBM904 is the MIB identifier with IANA name IBM904.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBBM904 MIB = 2060
+
+ // IBM905 is the MIB identifier with IANA name IBM905.
+ //
+ // IBM 3174 Character Set Ref, GA27-3831-02, March 1990
+ // Reference: RFC1345
+ IBM905 MIB = 2061
+
+ // IBM918 is the MIB identifier with IANA name IBM918.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM918 MIB = 2062
+
+ // IBM1026 is the MIB identifier with IANA name IBM1026.
+ //
+ // IBM NLS RM Vol2 SE09-8002-01, March 1990
+ // Reference: RFC1345
+ IBM1026 MIB = 2063
+
+ // IBMEBCDICATDE is the MIB identifier with IANA name EBCDIC-AT-DE.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ IBMEBCDICATDE MIB = 2064
+
+ // EBCDICATDEA is the MIB identifier with IANA name EBCDIC-AT-DE-A.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICATDEA MIB = 2065
+
+ // EBCDICCAFR is the MIB identifier with IANA name EBCDIC-CA-FR.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICCAFR MIB = 2066
+
+ // EBCDICDKNO is the MIB identifier with IANA name EBCDIC-DK-NO.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICDKNO MIB = 2067
+
+ // EBCDICDKNOA is the MIB identifier with IANA name EBCDIC-DK-NO-A.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICDKNOA MIB = 2068
+
+ // EBCDICFISE is the MIB identifier with IANA name EBCDIC-FI-SE.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICFISE MIB = 2069
+
+ // EBCDICFISEA is the MIB identifier with IANA name EBCDIC-FI-SE-A.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICFISEA MIB = 2070
+
+ // EBCDICFR is the MIB identifier with IANA name EBCDIC-FR.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICFR MIB = 2071
+
+ // EBCDICIT is the MIB identifier with IANA name EBCDIC-IT.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICIT MIB = 2072
+
+ // EBCDICPT is the MIB identifier with IANA name EBCDIC-PT.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICPT MIB = 2073
+
+ // EBCDICES is the MIB identifier with IANA name EBCDIC-ES.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICES MIB = 2074
+
+ // EBCDICESA is the MIB identifier with IANA name EBCDIC-ES-A.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICESA MIB = 2075
+
+ // EBCDICESS is the MIB identifier with IANA name EBCDIC-ES-S.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICESS MIB = 2076
+
+ // EBCDICUK is the MIB identifier with IANA name EBCDIC-UK.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICUK MIB = 2077
+
+ // EBCDICUS is the MIB identifier with IANA name EBCDIC-US.
+ //
+ // IBM 3270 Char Set Ref Ch 10, GA27-2837-9, April 1987
+ // Reference: RFC1345
+ EBCDICUS MIB = 2078
+
+ // Unknown8BiT is the MIB identifier with IANA name UNKNOWN-8BIT.
+ //
+ // Reference: RFC1428
+ Unknown8BiT MIB = 2079
+
+ // Mnemonic is the MIB identifier with IANA name MNEMONIC.
+ //
+ // rfc1345 , also known as "mnemonic+ascii+38"
+ // Reference: RFC1345
+ Mnemonic MIB = 2080
+
+ // Mnem is the MIB identifier with IANA name MNEM.
+ //
+ // rfc1345 , also known as "mnemonic+ascii+8200"
+ // Reference: RFC1345
+ Mnem MIB = 2081
+
+ // VISCII is the MIB identifier with IANA name VISCII.
+ //
+ // rfc1456
+ // Reference: RFC1456
+ VISCII MIB = 2082
+
+ // VIQR is the MIB identifier with IANA name VIQR.
+ //
+ // rfc1456
+ // Reference: RFC1456
+ VIQR MIB = 2083
+
+ // KOI8R is the MIB identifier with IANA name KOI8-R (MIME: KOI8-R).
+ //
+ // rfc1489 , based on GOST-19768-74, ISO-6937/8,
+ // INIS-Cyrillic, ISO-5427.
+ // Reference: RFC1489
+ KOI8R MIB = 2084
+
+ // HZGB2312 is the MIB identifier with IANA name HZ-GB-2312.
+ //
+ // rfc1842 , rfc1843 rfc1843 rfc1842
+ HZGB2312 MIB = 2085
+
+ // IBM866 is the MIB identifier with IANA name IBM866.
+ //
+ // IBM NLDG Volume 2 (SE09-8002-03) August 1994
+ IBM866 MIB = 2086
+
+ // PC775Baltic is the MIB identifier with IANA name IBM775.
+ //
+ // HP PCL 5 Comparison Guide (P/N 5021-0329) pp B-13, 1996
+ PC775Baltic MIB = 2087
+
+ // KOI8U is the MIB identifier with IANA name KOI8-U.
+ //
+ // rfc2319
+ // Reference: RFC2319
+ KOI8U MIB = 2088
+
+ // IBM00858 is the MIB identifier with IANA name IBM00858.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM00858
+ IBM00858 MIB = 2089
+
+ // IBM00924 is the MIB identifier with IANA name IBM00924.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM00924
+ IBM00924 MIB = 2090
+
+ // IBM01140 is the MIB identifier with IANA name IBM01140.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01140
+ IBM01140 MIB = 2091
+
+ // IBM01141 is the MIB identifier with IANA name IBM01141.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01141
+ IBM01141 MIB = 2092
+
+ // IBM01142 is the MIB identifier with IANA name IBM01142.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01142
+ IBM01142 MIB = 2093
+
+ // IBM01143 is the MIB identifier with IANA name IBM01143.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01143
+ IBM01143 MIB = 2094
+
+ // IBM01144 is the MIB identifier with IANA name IBM01144.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01144
+ IBM01144 MIB = 2095
+
+ // IBM01145 is the MIB identifier with IANA name IBM01145.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01145
+ IBM01145 MIB = 2096
+
+ // IBM01146 is the MIB identifier with IANA name IBM01146.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01146
+ IBM01146 MIB = 2097
+
+ // IBM01147 is the MIB identifier with IANA name IBM01147.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01147
+ IBM01147 MIB = 2098
+
+ // IBM01148 is the MIB identifier with IANA name IBM01148.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01148
+ IBM01148 MIB = 2099
+
+ // IBM01149 is the MIB identifier with IANA name IBM01149.
+ //
+ // IBM See http://www.iana.org/assignments/charset-reg/IBM01149
+ IBM01149 MIB = 2100
+
+ // Big5HKSCS is the MIB identifier with IANA name Big5-HKSCS.
+ //
+ // See http://www.iana.org/assignments/charset-reg/Big5-HKSCS
+ Big5HKSCS MIB = 2101
+
+ // IBM1047 is the MIB identifier with IANA name IBM1047.
+ //
+ // IBM1047 (EBCDIC Latin 1/Open Systems) http://www-1.ibm.com/servers/eserver/iseries/software/globalization/pdf/cp01047z.pdf
+ IBM1047 MIB = 2102
+
+ // PTCP154 is the MIB identifier with IANA name PTCP154.
+ //
+ // See http://www.iana.org/assignments/charset-reg/PTCP154
+ PTCP154 MIB = 2103
+
+ // Amiga1251 is the MIB identifier with IANA name Amiga-1251.
+ //
+ // See http://www.amiga.ultranet.ru/Amiga-1251.html
+ Amiga1251 MIB = 2104
+
+ // KOI7switched is the MIB identifier with IANA name KOI7-switched.
+ //
+ // See http://www.iana.org/assignments/charset-reg/KOI7-switched
+ KOI7switched MIB = 2105
+
+ // BRF is the MIB identifier with IANA name BRF.
+ //
+ // See http://www.iana.org/assignments/charset-reg/BRF
+ BRF MIB = 2106
+
+ // TSCII is the MIB identifier with IANA name TSCII.
+ //
+ // See http://www.iana.org/assignments/charset-reg/TSCII
+ TSCII MIB = 2107
+
+ // CP51932 is the MIB identifier with IANA name CP51932.
+ //
+ // See http://www.iana.org/assignments/charset-reg/CP51932
+ CP51932 MIB = 2108
+
+ // Windows874 is the MIB identifier with IANA name windows-874.
+ //
+ // See http://www.iana.org/assignments/charset-reg/windows-874
+ Windows874 MIB = 2109
+
+ // Windows1250 is the MIB identifier with IANA name windows-1250.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1250
+ Windows1250 MIB = 2250
+
+ // Windows1251 is the MIB identifier with IANA name windows-1251.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1251
+ Windows1251 MIB = 2251
+
+ // Windows1252 is the MIB identifier with IANA name windows-1252.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1252
+ Windows1252 MIB = 2252
+
+ // Windows1253 is the MIB identifier with IANA name windows-1253.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1253
+ Windows1253 MIB = 2253
+
+ // Windows1254 is the MIB identifier with IANA name windows-1254.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1254
+ Windows1254 MIB = 2254
+
+ // Windows1255 is the MIB identifier with IANA name windows-1255.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1255
+ Windows1255 MIB = 2255
+
+ // Windows1256 is the MIB identifier with IANA name windows-1256.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1256
+ Windows1256 MIB = 2256
+
+ // Windows1257 is the MIB identifier with IANA name windows-1257.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1257
+ Windows1257 MIB = 2257
+
+ // Windows1258 is the MIB identifier with IANA name windows-1258.
+ //
+ // Microsoft http://www.iana.org/assignments/charset-reg/windows-1258
+ Windows1258 MIB = 2258
+
+ // TIS620 is the MIB identifier with IANA name TIS-620.
+ //
+ // Thai Industrial Standards Institute (TISI)
+ TIS620 MIB = 2259
+
+ // CP50220 is the MIB identifier with IANA name CP50220.
+ //
+ // See http://www.iana.org/assignments/charset-reg/CP50220
+ CP50220 MIB = 2260
+)
diff --git a/vendor/golang.org/x/text/encoding/internal/internal.go b/vendor/golang.org/x/text/encoding/internal/internal.go
new file mode 100644
index 000000000..75a5fd165
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/internal/internal.go
@@ -0,0 +1,75 @@
+// 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 internal contains code that is shared among encoding implementations.
+package internal
+
+import (
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// Encoding is an implementation of the Encoding interface that adds the String
+// and ID methods to an existing encoding.
+type Encoding struct {
+ encoding.Encoding
+ Name string
+ MIB identifier.MIB
+}
+
+// _ verifies that Encoding implements identifier.Interface.
+var _ identifier.Interface = (*Encoding)(nil)
+
+func (e *Encoding) String() string {
+ return e.Name
+}
+
+func (e *Encoding) ID() (mib identifier.MIB, other string) {
+ return e.MIB, ""
+}
+
+// SimpleEncoding is an Encoding that combines two Transformers.
+type SimpleEncoding struct {
+ Decoder transform.Transformer
+ Encoder transform.Transformer
+}
+
+func (e *SimpleEncoding) NewDecoder() *encoding.Decoder {
+ return &encoding.Decoder{Transformer: e.Decoder}
+}
+
+func (e *SimpleEncoding) NewEncoder() *encoding.Encoder {
+ return &encoding.Encoder{Transformer: e.Encoder}
+}
+
+// FuncEncoding is an Encoding that combines two functions returning a new
+// Transformer.
+type FuncEncoding struct {
+ Decoder func() transform.Transformer
+ Encoder func() transform.Transformer
+}
+
+func (e FuncEncoding) NewDecoder() *encoding.Decoder {
+ return &encoding.Decoder{Transformer: e.Decoder()}
+}
+
+func (e FuncEncoding) NewEncoder() *encoding.Encoder {
+ return &encoding.Encoder{Transformer: e.Encoder()}
+}
+
+// A RepertoireError indicates a rune is not in the repertoire of a destination
+// encoding. It is associated with an encoding-specific suggested replacement
+// byte.
+type RepertoireError byte
+
+// Error implements the error interrface.
+func (r RepertoireError) Error() string {
+ return "encoding: rune not supported by encoding."
+}
+
+// Replacement returns the replacement string associated with this error.
+func (r RepertoireError) Replacement() byte { return byte(r) }
+
+var ErrASCIIReplacement = RepertoireError(encoding.ASCIISub)
diff --git a/vendor/golang.org/x/text/encoding/japanese/all.go b/vendor/golang.org/x/text/encoding/japanese/all.go
new file mode 100644
index 000000000..6cfa8de45
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/all.go
@@ -0,0 +1,12 @@
+// 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 japanese
+
+import (
+ "golang.org/x/text/encoding"
+)
+
+// All is a list of all defined encodings in this package.
+var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS}
diff --git a/vendor/golang.org/x/text/encoding/japanese/eucjp.go b/vendor/golang.org/x/text/encoding/japanese/eucjp.go
new file mode 100644
index 000000000..40f9b05f3
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/eucjp.go
@@ -0,0 +1,211 @@
+// 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 japanese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// EUCJP is the EUC-JP encoding.
+var EUCJP encoding.Encoding = &eucJP
+
+var eucJP = internal.Encoding{
+ &internal.SimpleEncoding{eucJPDecoder{}, eucJPEncoder{}},
+ "EUC-JP",
+ identifier.EUCPkdFmtJapanese,
+}
+
+var errInvalidEUCJP = errors.New("japanese: invalid EUC-JP encoding")
+
+type eucJPDecoder struct{ transform.NopResetter }
+
+func (eucJPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ switch c0 := src[nSrc]; {
+ case c0 < utf8.RuneSelf:
+ r, size = rune(c0), 1
+
+ case c0 == 0x8e:
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ if c1 < 0xa1 || 0xdf < c1 {
+ err = errInvalidEUCJP
+ break loop
+ }
+ r, size = rune(c1)+(0xff61-0xa1), 2
+
+ case c0 == 0x8f:
+ if nSrc+2 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ if c1 < 0xa1 || 0xfe < c1 {
+ err = errInvalidEUCJP
+ break loop
+ }
+ c2 := src[nSrc+2]
+ if c2 < 0xa1 || 0xfe < c2 {
+ err = errInvalidEUCJP
+ break loop
+ }
+ r, size = '\ufffd', 3
+ if i := int(c1-0xa1)*94 + int(c2-0xa1); i < len(jis0212Decode) {
+ r = rune(jis0212Decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ case 0xa1 <= c0 && c0 <= 0xfe:
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ if c1 < 0xa1 || 0xfe < c1 {
+ err = errInvalidEUCJP
+ break loop
+ }
+ r, size = '\ufffd', 2
+ if i := int(c0-0xa1)*94 + int(c1-0xa1); i < len(jis0208Decode) {
+ r = rune(jis0208Decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ default:
+ err = errInvalidEUCJP
+ break loop
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidEUCJP
+ }
+ return nDst, nSrc, err
+}
+
+type eucJPEncoder struct{ transform.NopResetter }
+
+func (eucJPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r != 0 {
+ goto write2or3
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r != 0 {
+ goto write2or3
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r != 0 {
+ goto write2or3
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r != 0 {
+ goto write2or3
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r != 0 {
+ goto write2or3
+ }
+ case encode5Low <= r && r < encode5High:
+ if 0xff61 <= r && r < 0xffa0 {
+ goto write2
+ }
+ if r = rune(encode5[r-encode5Low]); r != 0 {
+ goto write2or3
+ }
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ write2or3:
+ if r>>tableShift == jis0208 {
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ } else {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = 0x8f
+ nDst++
+ }
+ dst[nDst+0] = 0xa1 + uint8(r>>codeShift)&codeMask
+ dst[nDst+1] = 0xa1 + uint8(r)&codeMask
+ nDst += 2
+ continue
+
+ write2:
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = 0x8e
+ dst[nDst+1] = uint8(r - (0xff61 - 0xa1))
+ nDst += 2
+ continue
+ }
+ return nDst, nSrc, err
+}
+
+func init() {
+ // Check that the hard-coded encode switch covers all tables.
+ if numEncodeTables != 6 {
+ panic("bad numEncodeTables")
+ }
+}
diff --git a/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go b/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go
new file mode 100644
index 000000000..b63e7d5d8
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go
@@ -0,0 +1,296 @@
+// 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 japanese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// ISO2022JP is the ISO-2022-JP encoding.
+var ISO2022JP encoding.Encoding = &iso2022JP
+
+var iso2022JP = internal.Encoding{
+ internal.FuncEncoding{iso2022JPNewDecoder, iso2022JPNewEncoder},
+ "ISO-2022-JP",
+ identifier.ISO2022JP,
+}
+
+func iso2022JPNewDecoder() transform.Transformer {
+ return new(iso2022JPDecoder)
+}
+
+func iso2022JPNewEncoder() transform.Transformer {
+ return new(iso2022JPEncoder)
+}
+
+var errInvalidISO2022JP = errors.New("japanese: invalid ISO-2022-JP encoding")
+
+const (
+ asciiState = iota
+ katakanaState
+ jis0208State
+ jis0212State
+)
+
+const asciiEsc = 0x1b
+
+type iso2022JPDecoder int
+
+func (d *iso2022JPDecoder) Reset() {
+ *d = asciiState
+}
+
+func (d *iso2022JPDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ c0 := src[nSrc]
+ if c0 >= utf8.RuneSelf {
+ err = errInvalidISO2022JP
+ break loop
+ }
+
+ if c0 == asciiEsc {
+ if nSrc+2 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ size = 3
+ c1 := src[nSrc+1]
+ c2 := src[nSrc+2]
+ switch {
+ case c1 == '$' && (c2 == '@' || c2 == 'B'):
+ *d = jis0208State
+ continue
+ case c1 == '$' && c2 == '(':
+ if nSrc+3 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ size = 4
+ if src[nSrc]+3 == 'D' {
+ *d = jis0212State
+ continue
+ }
+ case c1 == '(' && (c2 == 'B' || c2 == 'J'):
+ *d = asciiState
+ continue
+ case c1 == '(' && c2 == 'I':
+ *d = katakanaState
+ continue
+ }
+ err = errInvalidISO2022JP
+ break loop
+ }
+
+ switch *d {
+ case asciiState:
+ r, size = rune(c0), 1
+
+ case katakanaState:
+ if c0 < 0x21 || 0x60 <= c0 {
+ err = errInvalidISO2022JP
+ break loop
+ }
+ r, size = rune(c0)+(0xff61-0x21), 1
+
+ default:
+ if c0 == 0x0a {
+ *d = asciiState
+ r, size = rune(c0), 1
+ break
+ }
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ size = 2
+ c1 := src[nSrc+1]
+ i := int(c0-0x21)*94 + int(c1-0x21)
+ if *d == jis0208State && i < len(jis0208Decode) {
+ r = rune(jis0208Decode[i])
+ } else if *d == jis0212State && i < len(jis0212Decode) {
+ r = rune(jis0212Decode[i])
+ } else {
+ r = '\ufffd'
+ break
+ }
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidISO2022JP
+ }
+ return nDst, nSrc, err
+}
+
+type iso2022JPEncoder int
+
+func (e *iso2022JPEncoder) Reset() {
+ *e = asciiState
+}
+
+func (e *iso2022JPEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ //
+ // http://encoding.spec.whatwg.org/#iso-2022-jp says that "the index jis0212
+ // is not used by the iso-2022-jp encoder due to lack of widespread support".
+ //
+ // TODO: do we have to special-case U+00A5 and U+203E, as per
+ // http://encoding.spec.whatwg.org/#iso-2022-jp
+ // Doing so would mean that "\u00a5" would not be preserved
+ // after an encode-decode round trip.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ case encode5Low <= r && r < encode5High:
+ if 0xff61 <= r && r < 0xffa0 {
+ goto writeKatakana
+ }
+ if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 {
+ goto writeJIS
+ }
+ }
+
+ // Switch back to ASCII state in case of error so that an ASCII
+ // replacement character can be written in the correct state.
+ if *e != asciiState {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = asciiState
+ dst[nDst+0] = asciiEsc
+ dst[nDst+1] = '('
+ dst[nDst+2] = 'B'
+ nDst += 3
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ if *e != asciiState {
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = asciiState
+ dst[nDst+0] = asciiEsc
+ dst[nDst+1] = '('
+ dst[nDst+2] = 'B'
+ nDst += 3
+ } else if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ writeJIS:
+ if *e != jis0208State {
+ if nDst+5 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = jis0208State
+ dst[nDst+0] = asciiEsc
+ dst[nDst+1] = '$'
+ dst[nDst+2] = 'B'
+ nDst += 3
+ } else if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = 0x21 + uint8(r>>codeShift)&codeMask
+ dst[nDst+1] = 0x21 + uint8(r)&codeMask
+ nDst += 2
+ continue
+
+ writeKatakana:
+ if *e != katakanaState {
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = katakanaState
+ dst[nDst+0] = asciiEsc
+ dst[nDst+1] = '('
+ dst[nDst+2] = 'I'
+ nDst += 3
+ } else if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r - (0xff61 - 0x21))
+ nDst++
+ continue
+ }
+ if atEOF && err == nil && *e != asciiState {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ } else {
+ *e = asciiState
+ dst[nDst+0] = asciiEsc
+ dst[nDst+1] = '('
+ dst[nDst+2] = 'B'
+ nDst += 3
+ }
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/encoding/japanese/maketables.go b/vendor/golang.org/x/text/encoding/japanese/maketables.go
new file mode 100644
index 000000000..d6c10deb0
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/maketables.go
@@ -0,0 +1,161 @@
+// 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 ignore
+
+package main
+
+// This program generates tables.go:
+// go run maketables.go | gofmt > tables.go
+
+// TODO: Emoji extensions?
+// http://www.unicode.org/faq/emoji_dingbats.html
+// http://www.unicode.org/Public/UNIDATA/EmojiSources.txt
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "sort"
+ "strings"
+)
+
+type entry struct {
+ jisCode, table int
+}
+
+func main() {
+ fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
+ fmt.Printf("// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.\n")
+ fmt.Printf(`package japanese // import "golang.org/x/text/encoding/japanese"` + "\n\n")
+
+ reverse := [65536]entry{}
+ for i := range reverse {
+ reverse[i].table = -1
+ }
+
+ tables := []struct {
+ url string
+ name string
+ }{
+ {"http://encoding.spec.whatwg.org/index-jis0208.txt", "0208"},
+ {"http://encoding.spec.whatwg.org/index-jis0212.txt", "0212"},
+ }
+ for i, table := range tables {
+ res, err := http.Get(table.url)
+ if err != nil {
+ log.Fatalf("%q: Get: %v", table.url, err)
+ }
+ defer res.Body.Close()
+
+ mapping := [65536]uint16{}
+
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := 0, uint16(0)
+ if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
+ log.Fatalf("%q: could not parse %q", table.url, s)
+ }
+ if x < 0 || 120*94 <= x {
+ log.Fatalf("%q: JIS code %d is out of range", table.url, x)
+ }
+ mapping[x] = y
+ if reverse[y].table == -1 {
+ reverse[y] = entry{jisCode: x, table: i}
+ }
+ }
+ if err := scanner.Err(); err != nil {
+ log.Fatalf("%q: scanner error: %v", table.url, err)
+ }
+
+ fmt.Printf("// jis%sDecode is the decoding table from JIS %s code to Unicode.\n// It is defined at %s\n",
+ table.name, table.name, table.url)
+ fmt.Printf("var jis%sDecode = [...]uint16{\n", table.name)
+ for i, m := range mapping {
+ if m != 0 {
+ fmt.Printf("\t%d: 0x%04X,\n", i, m)
+ }
+ }
+ fmt.Printf("}\n\n")
+ }
+
+ // Any run of at least separation continuous zero entries in the reverse map will
+ // be a separate encode table.
+ const separation = 1024
+
+ intervals := []interval(nil)
+ low, high := -1, -1
+ for i, v := range reverse {
+ if v.table == -1 {
+ continue
+ }
+ if low < 0 {
+ low = i
+ } else if i-high >= separation {
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ low = i
+ }
+ high = i + 1
+ }
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ sort.Sort(byDecreasingLength(intervals))
+
+ fmt.Printf("const (\n")
+ fmt.Printf("\tjis0208 = 1\n")
+ fmt.Printf("\tjis0212 = 2\n")
+ fmt.Printf("\tcodeMask = 0x7f\n")
+ fmt.Printf("\tcodeShift = 7\n")
+ fmt.Printf("\ttableShift = 14\n")
+ fmt.Printf(")\n\n")
+
+ fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
+ fmt.Printf("// encodeX are the encoding tables from Unicode to JIS code,\n")
+ fmt.Printf("// sorted by decreasing length.\n")
+ for i, v := range intervals {
+ fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
+ }
+ fmt.Printf("//\n")
+ fmt.Printf("// The high two bits of the value record whether the JIS code comes from the\n")
+ fmt.Printf("// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).\n")
+ fmt.Printf("// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the\n")
+ fmt.Printf("// JIS code (94*j1 + j2) within that table.\n")
+ fmt.Printf("\n")
+
+ for i, v := range intervals {
+ fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
+ fmt.Printf("var encode%d = [...]uint16{\n", i)
+ for j := v.low; j < v.high; j++ {
+ x := reverse[j]
+ if x.table == -1 {
+ continue
+ }
+ fmt.Printf("\t%d - %d: jis%s<<14 | 0x%02X<<7 | 0x%02X,\n",
+ j, v.low, tables[x.table].name, x.jisCode/94, x.jisCode%94)
+ }
+ fmt.Printf("}\n\n")
+ }
+}
+
+// interval is a half-open interval [low, high).
+type interval struct {
+ low, high int
+}
+
+func (i interval) len() int { return i.high - i.low }
+
+// byDecreasingLength sorts intervals by decreasing length.
+type byDecreasingLength []interval
+
+func (b byDecreasingLength) Len() int { return len(b) }
+func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
+func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
diff --git a/vendor/golang.org/x/text/encoding/japanese/shiftjis.go b/vendor/golang.org/x/text/encoding/japanese/shiftjis.go
new file mode 100644
index 000000000..099aecc31
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/shiftjis.go
@@ -0,0 +1,189 @@
+// 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 japanese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// ShiftJIS is the Shift JIS encoding, also known as Code Page 932 and
+// Windows-31J.
+var ShiftJIS encoding.Encoding = &shiftJIS
+
+var shiftJIS = internal.Encoding{
+ &internal.SimpleEncoding{shiftJISDecoder{}, shiftJISEncoder{}},
+ "Shift JIS",
+ identifier.ShiftJIS,
+}
+
+var errInvalidShiftJIS = errors.New("japanese: invalid Shift JIS encoding")
+
+type shiftJISDecoder struct{ transform.NopResetter }
+
+func (shiftJISDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ switch c0 := src[nSrc]; {
+ case c0 < utf8.RuneSelf:
+ r, size = rune(c0), 1
+
+ case 0xa1 <= c0 && c0 < 0xe0:
+ r, size = rune(c0)+(0xff61-0xa1), 1
+
+ case (0x81 <= c0 && c0 < 0xa0) || (0xe0 <= c0 && c0 < 0xfd):
+ if c0 <= 0x9f {
+ c0 -= 0x70
+ } else {
+ c0 -= 0xb0
+ }
+ c0 = 2*c0 - 0x21
+
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ switch {
+ case c1 < 0x40:
+ err = errInvalidShiftJIS
+ break loop
+ case c1 < 0x7f:
+ c0--
+ c1 -= 0x40
+ case c1 == 0x7f:
+ err = errInvalidShiftJIS
+ break loop
+ case c1 < 0x9f:
+ c0--
+ c1 -= 0x41
+ case c1 < 0xfd:
+ c1 -= 0x9f
+ default:
+ err = errInvalidShiftJIS
+ break loop
+ }
+ r, size = '\ufffd', 2
+ if i := int(c0)*94 + int(c1); i < len(jis0208Decode) {
+ r = rune(jis0208Decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ default:
+ err = errInvalidShiftJIS
+ break loop
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidShiftJIS
+ }
+ return nDst, nSrc, err
+}
+
+type shiftJISEncoder struct{ transform.NopResetter }
+
+func (shiftJISEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ case encode5Low <= r && r < encode5High:
+ if 0xff61 <= r && r < 0xffa0 {
+ r -= 0xff61 - 0xa1
+ goto write1
+ }
+ if r = rune(encode5[r-encode5Low]); r>>tableShift == jis0208 {
+ goto write2
+ }
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ write1:
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ write2:
+ j1 := uint8(r>>codeShift) & codeMask
+ j2 := uint8(r) & codeMask
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ if j1 <= 61 {
+ dst[nDst+0] = 129 + j1/2
+ } else {
+ dst[nDst+0] = 193 + j1/2
+ }
+ if j1&1 == 0 {
+ dst[nDst+1] = j2 + j2/63 + 64
+ } else {
+ dst[nDst+1] = j2 + 159
+ }
+ nDst += 2
+ continue
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/encoding/japanese/tables.go b/vendor/golang.org/x/text/encoding/japanese/tables.go
new file mode 100644
index 000000000..8717b79ae
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/japanese/tables.go
@@ -0,0 +1,26971 @@
+// generated by go run maketables.go; DO NOT EDIT
+
+// Package japanese provides Japanese encodings such as EUC-JP and Shift JIS.
+package japanese // import "golang.org/x/text/encoding/japanese"
+
+// jis0208Decode is the decoding table from JIS 0208 code to Unicode.
+// It is defined at http://encoding.spec.whatwg.org/index-jis0208.txt
+var jis0208Decode = [...]uint16{
+ 0: 0x3000,
+ 1: 0x3001,
+ 2: 0x3002,
+ 3: 0xFF0C,
+ 4: 0xFF0E,
+ 5: 0x30FB,
+ 6: 0xFF1A,
+ 7: 0xFF1B,
+ 8: 0xFF1F,
+ 9: 0xFF01,
+ 10: 0x309B,
+ 11: 0x309C,
+ 12: 0x00B4,
+ 13: 0xFF40,
+ 14: 0x00A8,
+ 15: 0xFF3E,
+ 16: 0xFFE3,
+ 17: 0xFF3F,
+ 18: 0x30FD,
+ 19: 0x30FE,
+ 20: 0x309D,
+ 21: 0x309E,
+ 22: 0x3003,
+ 23: 0x4EDD,
+ 24: 0x3005,
+ 25: 0x3006,
+ 26: 0x3007,
+ 27: 0x30FC,
+ 28: 0x2015,
+ 29: 0x2010,
+ 30: 0xFF0F,
+ 31: 0xFF3C,
+ 32: 0xFF5E,
+ 33: 0x2225,
+ 34: 0xFF5C,
+ 35: 0x2026,
+ 36: 0x2025,
+ 37: 0x2018,
+ 38: 0x2019,
+ 39: 0x201C,
+ 40: 0x201D,
+ 41: 0xFF08,
+ 42: 0xFF09,
+ 43: 0x3014,
+ 44: 0x3015,
+ 45: 0xFF3B,
+ 46: 0xFF3D,
+ 47: 0xFF5B,
+ 48: 0xFF5D,
+ 49: 0x3008,
+ 50: 0x3009,
+ 51: 0x300A,
+ 52: 0x300B,
+ 53: 0x300C,
+ 54: 0x300D,
+ 55: 0x300E,
+ 56: 0x300F,
+ 57: 0x3010,
+ 58: 0x3011,
+ 59: 0xFF0B,
+ 60: 0xFF0D,
+ 61: 0x00B1,
+ 62: 0x00D7,
+ 63: 0x00F7,
+ 64: 0xFF1D,
+ 65: 0x2260,
+ 66: 0xFF1C,
+ 67: 0xFF1E,
+ 68: 0x2266,
+ 69: 0x2267,
+ 70: 0x221E,
+ 71: 0x2234,
+ 72: 0x2642,
+ 73: 0x2640,
+ 74: 0x00B0,
+ 75: 0x2032,
+ 76: 0x2033,
+ 77: 0x2103,
+ 78: 0xFFE5,
+ 79: 0xFF04,
+ 80: 0xFFE0,
+ 81: 0xFFE1,
+ 82: 0xFF05,
+ 83: 0xFF03,
+ 84: 0xFF06,
+ 85: 0xFF0A,
+ 86: 0xFF20,
+ 87: 0x00A7,
+ 88: 0x2606,
+ 89: 0x2605,
+ 90: 0x25CB,
+ 91: 0x25CF,
+ 92: 0x25CE,
+ 93: 0x25C7,
+ 94: 0x25C6,
+ 95: 0x25A1,
+ 96: 0x25A0,
+ 97: 0x25B3,
+ 98: 0x25B2,
+ 99: 0x25BD,
+ 100: 0x25BC,
+ 101: 0x203B,
+ 102: 0x3012,
+ 103: 0x2192,
+ 104: 0x2190,
+ 105: 0x2191,
+ 106: 0x2193,
+ 107: 0x3013,
+ 119: 0x2208,
+ 120: 0x220B,
+ 121: 0x2286,
+ 122: 0x2287,
+ 123: 0x2282,
+ 124: 0x2283,
+ 125: 0x222A,
+ 126: 0x2229,
+ 135: 0x2227,
+ 136: 0x2228,
+ 137: 0xFFE2,
+ 138: 0x21D2,
+ 139: 0x21D4,
+ 140: 0x2200,
+ 141: 0x2203,
+ 153: 0x2220,
+ 154: 0x22A5,
+ 155: 0x2312,
+ 156: 0x2202,
+ 157: 0x2207,
+ 158: 0x2261,
+ 159: 0x2252,
+ 160: 0x226A,
+ 161: 0x226B,
+ 162: 0x221A,
+ 163: 0x223D,
+ 164: 0x221D,
+ 165: 0x2235,
+ 166: 0x222B,
+ 167: 0x222C,
+ 175: 0x212B,
+ 176: 0x2030,
+ 177: 0x266F,
+ 178: 0x266D,
+ 179: 0x266A,
+ 180: 0x2020,
+ 181: 0x2021,
+ 182: 0x00B6,
+ 187: 0x25EF,
+ 203: 0xFF10,
+ 204: 0xFF11,
+ 205: 0xFF12,
+ 206: 0xFF13,
+ 207: 0xFF14,
+ 208: 0xFF15,
+ 209: 0xFF16,
+ 210: 0xFF17,
+ 211: 0xFF18,
+ 212: 0xFF19,
+ 220: 0xFF21,
+ 221: 0xFF22,
+ 222: 0xFF23,
+ 223: 0xFF24,
+ 224: 0xFF25,
+ 225: 0xFF26,
+ 226: 0xFF27,
+ 227: 0xFF28,
+ 228: 0xFF29,
+ 229: 0xFF2A,
+ 230: 0xFF2B,
+ 231: 0xFF2C,
+ 232: 0xFF2D,
+ 233: 0xFF2E,
+ 234: 0xFF2F,
+ 235: 0xFF30,
+ 236: 0xFF31,
+ 237: 0xFF32,
+ 238: 0xFF33,
+ 239: 0xFF34,
+ 240: 0xFF35,
+ 241: 0xFF36,
+ 242: 0xFF37,
+ 243: 0xFF38,
+ 244: 0xFF39,
+ 245: 0xFF3A,
+ 252: 0xFF41,
+ 253: 0xFF42,
+ 254: 0xFF43,
+ 255: 0xFF44,
+ 256: 0xFF45,
+ 257: 0xFF46,
+ 258: 0xFF47,
+ 259: 0xFF48,
+ 260: 0xFF49,
+ 261: 0xFF4A,
+ 262: 0xFF4B,
+ 263: 0xFF4C,
+ 264: 0xFF4D,
+ 265: 0xFF4E,
+ 266: 0xFF4F,
+ 267: 0xFF50,
+ 268: 0xFF51,
+ 269: 0xFF52,
+ 270: 0xFF53,
+ 271: 0xFF54,
+ 272: 0xFF55,
+ 273: 0xFF56,
+ 274: 0xFF57,
+ 275: 0xFF58,
+ 276: 0xFF59,
+ 277: 0xFF5A,
+ 282: 0x3041,
+ 283: 0x3042,
+ 284: 0x3043,
+ 285: 0x3044,
+ 286: 0x3045,
+ 287: 0x3046,
+ 288: 0x3047,
+ 289: 0x3048,
+ 290: 0x3049,
+ 291: 0x304A,
+ 292: 0x304B,
+ 293: 0x304C,
+ 294: 0x304D,
+ 295: 0x304E,
+ 296: 0x304F,
+ 297: 0x3050,
+ 298: 0x3051,
+ 299: 0x3052,
+ 300: 0x3053,
+ 301: 0x3054,
+ 302: 0x3055,
+ 303: 0x3056,
+ 304: 0x3057,
+ 305: 0x3058,
+ 306: 0x3059,
+ 307: 0x305A,
+ 308: 0x305B,
+ 309: 0x305C,
+ 310: 0x305D,
+ 311: 0x305E,
+ 312: 0x305F,
+ 313: 0x3060,
+ 314: 0x3061,
+ 315: 0x3062,
+ 316: 0x3063,
+ 317: 0x3064,
+ 318: 0x3065,
+ 319: 0x3066,
+ 320: 0x3067,
+ 321: 0x3068,
+ 322: 0x3069,
+ 323: 0x306A,
+ 324: 0x306B,
+ 325: 0x306C,
+ 326: 0x306D,
+ 327: 0x306E,
+ 328: 0x306F,
+ 329: 0x3070,
+ 330: 0x3071,
+ 331: 0x3072,
+ 332: 0x3073,
+ 333: 0x3074,
+ 334: 0x3075,
+ 335: 0x3076,
+ 336: 0x3077,
+ 337: 0x3078,
+ 338: 0x3079,
+ 339: 0x307A,
+ 340: 0x307B,
+ 341: 0x307C,
+ 342: 0x307D,
+ 343: 0x307E,
+ 344: 0x307F,
+ 345: 0x3080,
+ 346: 0x3081,
+ 347: 0x3082,
+ 348: 0x3083,
+ 349: 0x3084,
+ 350: 0x3085,
+ 351: 0x3086,
+ 352: 0x3087,
+ 353: 0x3088,
+ 354: 0x3089,
+ 355: 0x308A,
+ 356: 0x308B,
+ 357: 0x308C,
+ 358: 0x308D,
+ 359: 0x308E,
+ 360: 0x308F,
+ 361: 0x3090,
+ 362: 0x3091,
+ 363: 0x3092,
+ 364: 0x3093,
+ 376: 0x30A1,
+ 377: 0x30A2,
+ 378: 0x30A3,
+ 379: 0x30A4,
+ 380: 0x30A5,
+ 381: 0x30A6,
+ 382: 0x30A7,
+ 383: 0x30A8,
+ 384: 0x30A9,
+ 385: 0x30AA,
+ 386: 0x30AB,
+ 387: 0x30AC,
+ 388: 0x30AD,
+ 389: 0x30AE,
+ 390: 0x30AF,
+ 391: 0x30B0,
+ 392: 0x30B1,
+ 393: 0x30B2,
+ 394: 0x30B3,
+ 395: 0x30B4,
+ 396: 0x30B5,
+ 397: 0x30B6,
+ 398: 0x30B7,
+ 399: 0x30B8,
+ 400: 0x30B9,
+ 401: 0x30BA,
+ 402: 0x30BB,
+ 403: 0x30BC,
+ 404: 0x30BD,
+ 405: 0x30BE,
+ 406: 0x30BF,
+ 407: 0x30C0,
+ 408: 0x30C1,
+ 409: 0x30C2,
+ 410: 0x30C3,
+ 411: 0x30C4,
+ 412: 0x30C5,
+ 413: 0x30C6,
+ 414: 0x30C7,
+ 415: 0x30C8,
+ 416: 0x30C9,
+ 417: 0x30CA,
+ 418: 0x30CB,
+ 419: 0x30CC,
+ 420: 0x30CD,
+ 421: 0x30CE,
+ 422: 0x30CF,
+ 423: 0x30D0,
+ 424: 0x30D1,
+ 425: 0x30D2,
+ 426: 0x30D3,
+ 427: 0x30D4,
+ 428: 0x30D5,
+ 429: 0x30D6,
+ 430: 0x30D7,
+ 431: 0x30D8,
+ 432: 0x30D9,
+ 433: 0x30DA,
+ 434: 0x30DB,
+ 435: 0x30DC,
+ 436: 0x30DD,
+ 437: 0x30DE,
+ 438: 0x30DF,
+ 439: 0x30E0,
+ 440: 0x30E1,
+ 441: 0x30E2,
+ 442: 0x30E3,
+ 443: 0x30E4,
+ 444: 0x30E5,
+ 445: 0x30E6,
+ 446: 0x30E7,
+ 447: 0x30E8,
+ 448: 0x30E9,
+ 449: 0x30EA,
+ 450: 0x30EB,
+ 451: 0x30EC,
+ 452: 0x30ED,
+ 453: 0x30EE,
+ 454: 0x30EF,
+ 455: 0x30F0,
+ 456: 0x30F1,
+ 457: 0x30F2,
+ 458: 0x30F3,
+ 459: 0x30F4,
+ 460: 0x30F5,
+ 461: 0x30F6,
+ 470: 0x0391,
+ 471: 0x0392,
+ 472: 0x0393,
+ 473: 0x0394,
+ 474: 0x0395,
+ 475: 0x0396,
+ 476: 0x0397,
+ 477: 0x0398,
+ 478: 0x0399,
+ 479: 0x039A,
+ 480: 0x039B,
+ 481: 0x039C,
+ 482: 0x039D,
+ 483: 0x039E,
+ 484: 0x039F,
+ 485: 0x03A0,
+ 486: 0x03A1,
+ 487: 0x03A3,
+ 488: 0x03A4,
+ 489: 0x03A5,
+ 490: 0x03A6,
+ 491: 0x03A7,
+ 492: 0x03A8,
+ 493: 0x03A9,
+ 502: 0x03B1,
+ 503: 0x03B2,
+ 504: 0x03B3,
+ 505: 0x03B4,
+ 506: 0x03B5,
+ 507: 0x03B6,
+ 508: 0x03B7,
+ 509: 0x03B8,
+ 510: 0x03B9,
+ 511: 0x03BA,
+ 512: 0x03BB,
+ 513: 0x03BC,
+ 514: 0x03BD,
+ 515: 0x03BE,
+ 516: 0x03BF,
+ 517: 0x03C0,
+ 518: 0x03C1,
+ 519: 0x03C3,
+ 520: 0x03C4,
+ 521: 0x03C5,
+ 522: 0x03C6,
+ 523: 0x03C7,
+ 524: 0x03C8,
+ 525: 0x03C9,
+ 564: 0x0410,
+ 565: 0x0411,
+ 566: 0x0412,
+ 567: 0x0413,
+ 568: 0x0414,
+ 569: 0x0415,
+ 570: 0x0401,
+ 571: 0x0416,
+ 572: 0x0417,
+ 573: 0x0418,
+ 574: 0x0419,
+ 575: 0x041A,
+ 576: 0x041B,
+ 577: 0x041C,
+ 578: 0x041D,
+ 579: 0x041E,
+ 580: 0x041F,
+ 581: 0x0420,
+ 582: 0x0421,
+ 583: 0x0422,
+ 584: 0x0423,
+ 585: 0x0424,
+ 586: 0x0425,
+ 587: 0x0426,
+ 588: 0x0427,
+ 589: 0x0428,
+ 590: 0x0429,
+ 591: 0x042A,
+ 592: 0x042B,
+ 593: 0x042C,
+ 594: 0x042D,
+ 595: 0x042E,
+ 596: 0x042F,
+ 612: 0x0430,
+ 613: 0x0431,
+ 614: 0x0432,
+ 615: 0x0433,
+ 616: 0x0434,
+ 617: 0x0435,
+ 618: 0x0451,
+ 619: 0x0436,
+ 620: 0x0437,
+ 621: 0x0438,
+ 622: 0x0439,
+ 623: 0x043A,
+ 624: 0x043B,
+ 625: 0x043C,
+ 626: 0x043D,
+ 627: 0x043E,
+ 628: 0x043F,
+ 629: 0x0440,
+ 630: 0x0441,
+ 631: 0x0442,
+ 632: 0x0443,
+ 633: 0x0444,
+ 634: 0x0445,
+ 635: 0x0446,
+ 636: 0x0447,
+ 637: 0x0448,
+ 638: 0x0449,
+ 639: 0x044A,
+ 640: 0x044B,
+ 641: 0x044C,
+ 642: 0x044D,
+ 643: 0x044E,
+ 644: 0x044F,
+ 658: 0x2500,
+ 659: 0x2502,
+ 660: 0x250C,
+ 661: 0x2510,
+ 662: 0x2518,
+ 663: 0x2514,
+ 664: 0x251C,
+ 665: 0x252C,
+ 666: 0x2524,
+ 667: 0x2534,
+ 668: 0x253C,
+ 669: 0x2501,
+ 670: 0x2503,
+ 671: 0x250F,
+ 672: 0x2513,
+ 673: 0x251B,
+ 674: 0x2517,
+ 675: 0x2523,
+ 676: 0x2533,
+ 677: 0x252B,
+ 678: 0x253B,
+ 679: 0x254B,
+ 680: 0x2520,
+ 681: 0x252F,
+ 682: 0x2528,
+ 683: 0x2537,
+ 684: 0x253F,
+ 685: 0x251D,
+ 686: 0x2530,
+ 687: 0x2525,
+ 688: 0x2538,
+ 689: 0x2542,
+ 1128: 0x2460,
+ 1129: 0x2461,
+ 1130: 0x2462,
+ 1131: 0x2463,
+ 1132: 0x2464,
+ 1133: 0x2465,
+ 1134: 0x2466,
+ 1135: 0x2467,
+ 1136: 0x2468,
+ 1137: 0x2469,
+ 1138: 0x246A,
+ 1139: 0x246B,
+ 1140: 0x246C,
+ 1141: 0x246D,
+ 1142: 0x246E,
+ 1143: 0x246F,
+ 1144: 0x2470,
+ 1145: 0x2471,
+ 1146: 0x2472,
+ 1147: 0x2473,
+ 1148: 0x2160,
+ 1149: 0x2161,
+ 1150: 0x2162,
+ 1151: 0x2163,
+ 1152: 0x2164,
+ 1153: 0x2165,
+ 1154: 0x2166,
+ 1155: 0x2167,
+ 1156: 0x2168,
+ 1157: 0x2169,
+ 1159: 0x3349,
+ 1160: 0x3314,
+ 1161: 0x3322,
+ 1162: 0x334D,
+ 1163: 0x3318,
+ 1164: 0x3327,
+ 1165: 0x3303,
+ 1166: 0x3336,
+ 1167: 0x3351,
+ 1168: 0x3357,
+ 1169: 0x330D,
+ 1170: 0x3326,
+ 1171: 0x3323,
+ 1172: 0x332B,
+ 1173: 0x334A,
+ 1174: 0x333B,
+ 1175: 0x339C,
+ 1176: 0x339D,
+ 1177: 0x339E,
+ 1178: 0x338E,
+ 1179: 0x338F,
+ 1180: 0x33C4,
+ 1181: 0x33A1,
+ 1190: 0x337B,
+ 1191: 0x301D,
+ 1192: 0x301F,
+ 1193: 0x2116,
+ 1194: 0x33CD,
+ 1195: 0x2121,
+ 1196: 0x32A4,
+ 1197: 0x32A5,
+ 1198: 0x32A6,
+ 1199: 0x32A7,
+ 1200: 0x32A8,
+ 1201: 0x3231,
+ 1202: 0x3232,
+ 1203: 0x3239,
+ 1204: 0x337E,
+ 1205: 0x337D,
+ 1206: 0x337C,
+ 1207: 0x2252,
+ 1208: 0x2261,
+ 1209: 0x222B,
+ 1210: 0x222E,
+ 1211: 0x2211,
+ 1212: 0x221A,
+ 1213: 0x22A5,
+ 1214: 0x2220,
+ 1215: 0x221F,
+ 1216: 0x22BF,
+ 1217: 0x2235,
+ 1218: 0x2229,
+ 1219: 0x222A,
+ 1410: 0x4E9C,
+ 1411: 0x5516,
+ 1412: 0x5A03,
+ 1413: 0x963F,
+ 1414: 0x54C0,
+ 1415: 0x611B,
+ 1416: 0x6328,
+ 1417: 0x59F6,
+ 1418: 0x9022,
+ 1419: 0x8475,
+ 1420: 0x831C,
+ 1421: 0x7A50,
+ 1422: 0x60AA,
+ 1423: 0x63E1,
+ 1424: 0x6E25,
+ 1425: 0x65ED,
+ 1426: 0x8466,
+ 1427: 0x82A6,
+ 1428: 0x9BF5,
+ 1429: 0x6893,
+ 1430: 0x5727,
+ 1431: 0x65A1,
+ 1432: 0x6271,
+ 1433: 0x5B9B,
+ 1434: 0x59D0,
+ 1435: 0x867B,
+ 1436: 0x98F4,
+ 1437: 0x7D62,
+ 1438: 0x7DBE,
+ 1439: 0x9B8E,
+ 1440: 0x6216,
+ 1441: 0x7C9F,
+ 1442: 0x88B7,
+ 1443: 0x5B89,
+ 1444: 0x5EB5,
+ 1445: 0x6309,
+ 1446: 0x6697,
+ 1447: 0x6848,
+ 1448: 0x95C7,
+ 1449: 0x978D,
+ 1450: 0x674F,
+ 1451: 0x4EE5,
+ 1452: 0x4F0A,
+ 1453: 0x4F4D,
+ 1454: 0x4F9D,
+ 1455: 0x5049,
+ 1456: 0x56F2,
+ 1457: 0x5937,
+ 1458: 0x59D4,
+ 1459: 0x5A01,
+ 1460: 0x5C09,
+ 1461: 0x60DF,
+ 1462: 0x610F,
+ 1463: 0x6170,
+ 1464: 0x6613,
+ 1465: 0x6905,
+ 1466: 0x70BA,
+ 1467: 0x754F,
+ 1468: 0x7570,
+ 1469: 0x79FB,
+ 1470: 0x7DAD,
+ 1471: 0x7DEF,
+ 1472: 0x80C3,
+ 1473: 0x840E,
+ 1474: 0x8863,
+ 1475: 0x8B02,
+ 1476: 0x9055,
+ 1477: 0x907A,
+ 1478: 0x533B,
+ 1479: 0x4E95,
+ 1480: 0x4EA5,
+ 1481: 0x57DF,
+ 1482: 0x80B2,
+ 1483: 0x90C1,
+ 1484: 0x78EF,
+ 1485: 0x4E00,
+ 1486: 0x58F1,
+ 1487: 0x6EA2,
+ 1488: 0x9038,
+ 1489: 0x7A32,
+ 1490: 0x8328,
+ 1491: 0x828B,
+ 1492: 0x9C2F,
+ 1493: 0x5141,
+ 1494: 0x5370,
+ 1495: 0x54BD,
+ 1496: 0x54E1,
+ 1497: 0x56E0,
+ 1498: 0x59FB,
+ 1499: 0x5F15,
+ 1500: 0x98F2,
+ 1501: 0x6DEB,
+ 1502: 0x80E4,
+ 1503: 0x852D,
+ 1504: 0x9662,
+ 1505: 0x9670,
+ 1506: 0x96A0,
+ 1507: 0x97FB,
+ 1508: 0x540B,
+ 1509: 0x53F3,
+ 1510: 0x5B87,
+ 1511: 0x70CF,
+ 1512: 0x7FBD,
+ 1513: 0x8FC2,
+ 1514: 0x96E8,
+ 1515: 0x536F,
+ 1516: 0x9D5C,
+ 1517: 0x7ABA,
+ 1518: 0x4E11,
+ 1519: 0x7893,
+ 1520: 0x81FC,
+ 1521: 0x6E26,
+ 1522: 0x5618,
+ 1523: 0x5504,
+ 1524: 0x6B1D,
+ 1525: 0x851A,
+ 1526: 0x9C3B,
+ 1527: 0x59E5,
+ 1528: 0x53A9,
+ 1529: 0x6D66,
+ 1530: 0x74DC,
+ 1531: 0x958F,
+ 1532: 0x5642,
+ 1533: 0x4E91,
+ 1534: 0x904B,
+ 1535: 0x96F2,
+ 1536: 0x834F,
+ 1537: 0x990C,
+ 1538: 0x53E1,
+ 1539: 0x55B6,
+ 1540: 0x5B30,
+ 1541: 0x5F71,
+ 1542: 0x6620,
+ 1543: 0x66F3,
+ 1544: 0x6804,
+ 1545: 0x6C38,
+ 1546: 0x6CF3,
+ 1547: 0x6D29,
+ 1548: 0x745B,
+ 1549: 0x76C8,
+ 1550: 0x7A4E,
+ 1551: 0x9834,
+ 1552: 0x82F1,
+ 1553: 0x885B,
+ 1554: 0x8A60,
+ 1555: 0x92ED,
+ 1556: 0x6DB2,
+ 1557: 0x75AB,
+ 1558: 0x76CA,
+ 1559: 0x99C5,
+ 1560: 0x60A6,
+ 1561: 0x8B01,
+ 1562: 0x8D8A,
+ 1563: 0x95B2,
+ 1564: 0x698E,
+ 1565: 0x53AD,
+ 1566: 0x5186,
+ 1567: 0x5712,
+ 1568: 0x5830,
+ 1569: 0x5944,
+ 1570: 0x5BB4,
+ 1571: 0x5EF6,
+ 1572: 0x6028,
+ 1573: 0x63A9,
+ 1574: 0x63F4,
+ 1575: 0x6CBF,
+ 1576: 0x6F14,
+ 1577: 0x708E,
+ 1578: 0x7114,
+ 1579: 0x7159,
+ 1580: 0x71D5,
+ 1581: 0x733F,
+ 1582: 0x7E01,
+ 1583: 0x8276,
+ 1584: 0x82D1,
+ 1585: 0x8597,
+ 1586: 0x9060,
+ 1587: 0x925B,
+ 1588: 0x9D1B,
+ 1589: 0x5869,
+ 1590: 0x65BC,
+ 1591: 0x6C5A,
+ 1592: 0x7525,
+ 1593: 0x51F9,
+ 1594: 0x592E,
+ 1595: 0x5965,
+ 1596: 0x5F80,
+ 1597: 0x5FDC,
+ 1598: 0x62BC,
+ 1599: 0x65FA,
+ 1600: 0x6A2A,
+ 1601: 0x6B27,
+ 1602: 0x6BB4,
+ 1603: 0x738B,
+ 1604: 0x7FC1,
+ 1605: 0x8956,
+ 1606: 0x9D2C,
+ 1607: 0x9D0E,
+ 1608: 0x9EC4,
+ 1609: 0x5CA1,
+ 1610: 0x6C96,
+ 1611: 0x837B,
+ 1612: 0x5104,
+ 1613: 0x5C4B,
+ 1614: 0x61B6,
+ 1615: 0x81C6,
+ 1616: 0x6876,
+ 1617: 0x7261,
+ 1618: 0x4E59,
+ 1619: 0x4FFA,
+ 1620: 0x5378,
+ 1621: 0x6069,
+ 1622: 0x6E29,
+ 1623: 0x7A4F,
+ 1624: 0x97F3,
+ 1625: 0x4E0B,
+ 1626: 0x5316,
+ 1627: 0x4EEE,
+ 1628: 0x4F55,
+ 1629: 0x4F3D,
+ 1630: 0x4FA1,
+ 1631: 0x4F73,
+ 1632: 0x52A0,
+ 1633: 0x53EF,
+ 1634: 0x5609,
+ 1635: 0x590F,
+ 1636: 0x5AC1,
+ 1637: 0x5BB6,
+ 1638: 0x5BE1,
+ 1639: 0x79D1,
+ 1640: 0x6687,
+ 1641: 0x679C,
+ 1642: 0x67B6,
+ 1643: 0x6B4C,
+ 1644: 0x6CB3,
+ 1645: 0x706B,
+ 1646: 0x73C2,
+ 1647: 0x798D,
+ 1648: 0x79BE,
+ 1649: 0x7A3C,
+ 1650: 0x7B87,
+ 1651: 0x82B1,
+ 1652: 0x82DB,
+ 1653: 0x8304,
+ 1654: 0x8377,
+ 1655: 0x83EF,
+ 1656: 0x83D3,
+ 1657: 0x8766,
+ 1658: 0x8AB2,
+ 1659: 0x5629,
+ 1660: 0x8CA8,
+ 1661: 0x8FE6,
+ 1662: 0x904E,
+ 1663: 0x971E,
+ 1664: 0x868A,
+ 1665: 0x4FC4,
+ 1666: 0x5CE8,
+ 1667: 0x6211,
+ 1668: 0x7259,
+ 1669: 0x753B,
+ 1670: 0x81E5,
+ 1671: 0x82BD,
+ 1672: 0x86FE,
+ 1673: 0x8CC0,
+ 1674: 0x96C5,
+ 1675: 0x9913,
+ 1676: 0x99D5,
+ 1677: 0x4ECB,
+ 1678: 0x4F1A,
+ 1679: 0x89E3,
+ 1680: 0x56DE,
+ 1681: 0x584A,
+ 1682: 0x58CA,
+ 1683: 0x5EFB,
+ 1684: 0x5FEB,
+ 1685: 0x602A,
+ 1686: 0x6094,
+ 1687: 0x6062,
+ 1688: 0x61D0,
+ 1689: 0x6212,
+ 1690: 0x62D0,
+ 1691: 0x6539,
+ 1692: 0x9B41,
+ 1693: 0x6666,
+ 1694: 0x68B0,
+ 1695: 0x6D77,
+ 1696: 0x7070,
+ 1697: 0x754C,
+ 1698: 0x7686,
+ 1699: 0x7D75,
+ 1700: 0x82A5,
+ 1701: 0x87F9,
+ 1702: 0x958B,
+ 1703: 0x968E,
+ 1704: 0x8C9D,
+ 1705: 0x51F1,
+ 1706: 0x52BE,
+ 1707: 0x5916,
+ 1708: 0x54B3,
+ 1709: 0x5BB3,
+ 1710: 0x5D16,
+ 1711: 0x6168,
+ 1712: 0x6982,
+ 1713: 0x6DAF,
+ 1714: 0x788D,
+ 1715: 0x84CB,
+ 1716: 0x8857,
+ 1717: 0x8A72,
+ 1718: 0x93A7,
+ 1719: 0x9AB8,
+ 1720: 0x6D6C,
+ 1721: 0x99A8,
+ 1722: 0x86D9,
+ 1723: 0x57A3,
+ 1724: 0x67FF,
+ 1725: 0x86CE,
+ 1726: 0x920E,
+ 1727: 0x5283,
+ 1728: 0x5687,
+ 1729: 0x5404,
+ 1730: 0x5ED3,
+ 1731: 0x62E1,
+ 1732: 0x64B9,
+ 1733: 0x683C,
+ 1734: 0x6838,
+ 1735: 0x6BBB,
+ 1736: 0x7372,
+ 1737: 0x78BA,
+ 1738: 0x7A6B,
+ 1739: 0x899A,
+ 1740: 0x89D2,
+ 1741: 0x8D6B,
+ 1742: 0x8F03,
+ 1743: 0x90ED,
+ 1744: 0x95A3,
+ 1745: 0x9694,
+ 1746: 0x9769,
+ 1747: 0x5B66,
+ 1748: 0x5CB3,
+ 1749: 0x697D,
+ 1750: 0x984D,
+ 1751: 0x984E,
+ 1752: 0x639B,
+ 1753: 0x7B20,
+ 1754: 0x6A2B,
+ 1755: 0x6A7F,
+ 1756: 0x68B6,
+ 1757: 0x9C0D,
+ 1758: 0x6F5F,
+ 1759: 0x5272,
+ 1760: 0x559D,
+ 1761: 0x6070,
+ 1762: 0x62EC,
+ 1763: 0x6D3B,
+ 1764: 0x6E07,
+ 1765: 0x6ED1,
+ 1766: 0x845B,
+ 1767: 0x8910,
+ 1768: 0x8F44,
+ 1769: 0x4E14,
+ 1770: 0x9C39,
+ 1771: 0x53F6,
+ 1772: 0x691B,
+ 1773: 0x6A3A,
+ 1774: 0x9784,
+ 1775: 0x682A,
+ 1776: 0x515C,
+ 1777: 0x7AC3,
+ 1778: 0x84B2,
+ 1779: 0x91DC,
+ 1780: 0x938C,
+ 1781: 0x565B,
+ 1782: 0x9D28,
+ 1783: 0x6822,
+ 1784: 0x8305,
+ 1785: 0x8431,
+ 1786: 0x7CA5,
+ 1787: 0x5208,
+ 1788: 0x82C5,
+ 1789: 0x74E6,
+ 1790: 0x4E7E,
+ 1791: 0x4F83,
+ 1792: 0x51A0,
+ 1793: 0x5BD2,
+ 1794: 0x520A,
+ 1795: 0x52D8,
+ 1796: 0x52E7,
+ 1797: 0x5DFB,
+ 1798: 0x559A,
+ 1799: 0x582A,
+ 1800: 0x59E6,
+ 1801: 0x5B8C,
+ 1802: 0x5B98,
+ 1803: 0x5BDB,
+ 1804: 0x5E72,
+ 1805: 0x5E79,
+ 1806: 0x60A3,
+ 1807: 0x611F,
+ 1808: 0x6163,
+ 1809: 0x61BE,
+ 1810: 0x63DB,
+ 1811: 0x6562,
+ 1812: 0x67D1,
+ 1813: 0x6853,
+ 1814: 0x68FA,
+ 1815: 0x6B3E,
+ 1816: 0x6B53,
+ 1817: 0x6C57,
+ 1818: 0x6F22,
+ 1819: 0x6F97,
+ 1820: 0x6F45,
+ 1821: 0x74B0,
+ 1822: 0x7518,
+ 1823: 0x76E3,
+ 1824: 0x770B,
+ 1825: 0x7AFF,
+ 1826: 0x7BA1,
+ 1827: 0x7C21,
+ 1828: 0x7DE9,
+ 1829: 0x7F36,
+ 1830: 0x7FF0,
+ 1831: 0x809D,
+ 1832: 0x8266,
+ 1833: 0x839E,
+ 1834: 0x89B3,
+ 1835: 0x8ACC,
+ 1836: 0x8CAB,
+ 1837: 0x9084,
+ 1838: 0x9451,
+ 1839: 0x9593,
+ 1840: 0x9591,
+ 1841: 0x95A2,
+ 1842: 0x9665,
+ 1843: 0x97D3,
+ 1844: 0x9928,
+ 1845: 0x8218,
+ 1846: 0x4E38,
+ 1847: 0x542B,
+ 1848: 0x5CB8,
+ 1849: 0x5DCC,
+ 1850: 0x73A9,
+ 1851: 0x764C,
+ 1852: 0x773C,
+ 1853: 0x5CA9,
+ 1854: 0x7FEB,
+ 1855: 0x8D0B,
+ 1856: 0x96C1,
+ 1857: 0x9811,
+ 1858: 0x9854,
+ 1859: 0x9858,
+ 1860: 0x4F01,
+ 1861: 0x4F0E,
+ 1862: 0x5371,
+ 1863: 0x559C,
+ 1864: 0x5668,
+ 1865: 0x57FA,
+ 1866: 0x5947,
+ 1867: 0x5B09,
+ 1868: 0x5BC4,
+ 1869: 0x5C90,
+ 1870: 0x5E0C,
+ 1871: 0x5E7E,
+ 1872: 0x5FCC,
+ 1873: 0x63EE,
+ 1874: 0x673A,
+ 1875: 0x65D7,
+ 1876: 0x65E2,
+ 1877: 0x671F,
+ 1878: 0x68CB,
+ 1879: 0x68C4,
+ 1880: 0x6A5F,
+ 1881: 0x5E30,
+ 1882: 0x6BC5,
+ 1883: 0x6C17,
+ 1884: 0x6C7D,
+ 1885: 0x757F,
+ 1886: 0x7948,
+ 1887: 0x5B63,
+ 1888: 0x7A00,
+ 1889: 0x7D00,
+ 1890: 0x5FBD,
+ 1891: 0x898F,
+ 1892: 0x8A18,
+ 1893: 0x8CB4,
+ 1894: 0x8D77,
+ 1895: 0x8ECC,
+ 1896: 0x8F1D,
+ 1897: 0x98E2,
+ 1898: 0x9A0E,
+ 1899: 0x9B3C,
+ 1900: 0x4E80,
+ 1901: 0x507D,
+ 1902: 0x5100,
+ 1903: 0x5993,
+ 1904: 0x5B9C,
+ 1905: 0x622F,
+ 1906: 0x6280,
+ 1907: 0x64EC,
+ 1908: 0x6B3A,
+ 1909: 0x72A0,
+ 1910: 0x7591,
+ 1911: 0x7947,
+ 1912: 0x7FA9,
+ 1913: 0x87FB,
+ 1914: 0x8ABC,
+ 1915: 0x8B70,
+ 1916: 0x63AC,
+ 1917: 0x83CA,
+ 1918: 0x97A0,
+ 1919: 0x5409,
+ 1920: 0x5403,
+ 1921: 0x55AB,
+ 1922: 0x6854,
+ 1923: 0x6A58,
+ 1924: 0x8A70,
+ 1925: 0x7827,
+ 1926: 0x6775,
+ 1927: 0x9ECD,
+ 1928: 0x5374,
+ 1929: 0x5BA2,
+ 1930: 0x811A,
+ 1931: 0x8650,
+ 1932: 0x9006,
+ 1933: 0x4E18,
+ 1934: 0x4E45,
+ 1935: 0x4EC7,
+ 1936: 0x4F11,
+ 1937: 0x53CA,
+ 1938: 0x5438,
+ 1939: 0x5BAE,
+ 1940: 0x5F13,
+ 1941: 0x6025,
+ 1942: 0x6551,
+ 1943: 0x673D,
+ 1944: 0x6C42,
+ 1945: 0x6C72,
+ 1946: 0x6CE3,
+ 1947: 0x7078,
+ 1948: 0x7403,
+ 1949: 0x7A76,
+ 1950: 0x7AAE,
+ 1951: 0x7B08,
+ 1952: 0x7D1A,
+ 1953: 0x7CFE,
+ 1954: 0x7D66,
+ 1955: 0x65E7,
+ 1956: 0x725B,
+ 1957: 0x53BB,
+ 1958: 0x5C45,
+ 1959: 0x5DE8,
+ 1960: 0x62D2,
+ 1961: 0x62E0,
+ 1962: 0x6319,
+ 1963: 0x6E20,
+ 1964: 0x865A,
+ 1965: 0x8A31,
+ 1966: 0x8DDD,
+ 1967: 0x92F8,
+ 1968: 0x6F01,
+ 1969: 0x79A6,
+ 1970: 0x9B5A,
+ 1971: 0x4EA8,
+ 1972: 0x4EAB,
+ 1973: 0x4EAC,
+ 1974: 0x4F9B,
+ 1975: 0x4FA0,
+ 1976: 0x50D1,
+ 1977: 0x5147,
+ 1978: 0x7AF6,
+ 1979: 0x5171,
+ 1980: 0x51F6,
+ 1981: 0x5354,
+ 1982: 0x5321,
+ 1983: 0x537F,
+ 1984: 0x53EB,
+ 1985: 0x55AC,
+ 1986: 0x5883,
+ 1987: 0x5CE1,
+ 1988: 0x5F37,
+ 1989: 0x5F4A,
+ 1990: 0x602F,
+ 1991: 0x6050,
+ 1992: 0x606D,
+ 1993: 0x631F,
+ 1994: 0x6559,
+ 1995: 0x6A4B,
+ 1996: 0x6CC1,
+ 1997: 0x72C2,
+ 1998: 0x72ED,
+ 1999: 0x77EF,
+ 2000: 0x80F8,
+ 2001: 0x8105,
+ 2002: 0x8208,
+ 2003: 0x854E,
+ 2004: 0x90F7,
+ 2005: 0x93E1,
+ 2006: 0x97FF,
+ 2007: 0x9957,
+ 2008: 0x9A5A,
+ 2009: 0x4EF0,
+ 2010: 0x51DD,
+ 2011: 0x5C2D,
+ 2012: 0x6681,
+ 2013: 0x696D,
+ 2014: 0x5C40,
+ 2015: 0x66F2,
+ 2016: 0x6975,
+ 2017: 0x7389,
+ 2018: 0x6850,
+ 2019: 0x7C81,
+ 2020: 0x50C5,
+ 2021: 0x52E4,
+ 2022: 0x5747,
+ 2023: 0x5DFE,
+ 2024: 0x9326,
+ 2025: 0x65A4,
+ 2026: 0x6B23,
+ 2027: 0x6B3D,
+ 2028: 0x7434,
+ 2029: 0x7981,
+ 2030: 0x79BD,
+ 2031: 0x7B4B,
+ 2032: 0x7DCA,
+ 2033: 0x82B9,
+ 2034: 0x83CC,
+ 2035: 0x887F,
+ 2036: 0x895F,
+ 2037: 0x8B39,
+ 2038: 0x8FD1,
+ 2039: 0x91D1,
+ 2040: 0x541F,
+ 2041: 0x9280,
+ 2042: 0x4E5D,
+ 2043: 0x5036,
+ 2044: 0x53E5,
+ 2045: 0x533A,
+ 2046: 0x72D7,
+ 2047: 0x7396,
+ 2048: 0x77E9,
+ 2049: 0x82E6,
+ 2050: 0x8EAF,
+ 2051: 0x99C6,
+ 2052: 0x99C8,
+ 2053: 0x99D2,
+ 2054: 0x5177,
+ 2055: 0x611A,
+ 2056: 0x865E,
+ 2057: 0x55B0,
+ 2058: 0x7A7A,
+ 2059: 0x5076,
+ 2060: 0x5BD3,
+ 2061: 0x9047,
+ 2062: 0x9685,
+ 2063: 0x4E32,
+ 2064: 0x6ADB,
+ 2065: 0x91E7,
+ 2066: 0x5C51,
+ 2067: 0x5C48,
+ 2068: 0x6398,
+ 2069: 0x7A9F,
+ 2070: 0x6C93,
+ 2071: 0x9774,
+ 2072: 0x8F61,
+ 2073: 0x7AAA,
+ 2074: 0x718A,
+ 2075: 0x9688,
+ 2076: 0x7C82,
+ 2077: 0x6817,
+ 2078: 0x7E70,
+ 2079: 0x6851,
+ 2080: 0x936C,
+ 2081: 0x52F2,
+ 2082: 0x541B,
+ 2083: 0x85AB,
+ 2084: 0x8A13,
+ 2085: 0x7FA4,
+ 2086: 0x8ECD,
+ 2087: 0x90E1,
+ 2088: 0x5366,
+ 2089: 0x8888,
+ 2090: 0x7941,
+ 2091: 0x4FC2,
+ 2092: 0x50BE,
+ 2093: 0x5211,
+ 2094: 0x5144,
+ 2095: 0x5553,
+ 2096: 0x572D,
+ 2097: 0x73EA,
+ 2098: 0x578B,
+ 2099: 0x5951,
+ 2100: 0x5F62,
+ 2101: 0x5F84,
+ 2102: 0x6075,
+ 2103: 0x6176,
+ 2104: 0x6167,
+ 2105: 0x61A9,
+ 2106: 0x63B2,
+ 2107: 0x643A,
+ 2108: 0x656C,
+ 2109: 0x666F,
+ 2110: 0x6842,
+ 2111: 0x6E13,
+ 2112: 0x7566,
+ 2113: 0x7A3D,
+ 2114: 0x7CFB,
+ 2115: 0x7D4C,
+ 2116: 0x7D99,
+ 2117: 0x7E4B,
+ 2118: 0x7F6B,
+ 2119: 0x830E,
+ 2120: 0x834A,
+ 2121: 0x86CD,
+ 2122: 0x8A08,
+ 2123: 0x8A63,
+ 2124: 0x8B66,
+ 2125: 0x8EFD,
+ 2126: 0x981A,
+ 2127: 0x9D8F,
+ 2128: 0x82B8,
+ 2129: 0x8FCE,
+ 2130: 0x9BE8,
+ 2131: 0x5287,
+ 2132: 0x621F,
+ 2133: 0x6483,
+ 2134: 0x6FC0,
+ 2135: 0x9699,
+ 2136: 0x6841,
+ 2137: 0x5091,
+ 2138: 0x6B20,
+ 2139: 0x6C7A,
+ 2140: 0x6F54,
+ 2141: 0x7A74,
+ 2142: 0x7D50,
+ 2143: 0x8840,
+ 2144: 0x8A23,
+ 2145: 0x6708,
+ 2146: 0x4EF6,
+ 2147: 0x5039,
+ 2148: 0x5026,
+ 2149: 0x5065,
+ 2150: 0x517C,
+ 2151: 0x5238,
+ 2152: 0x5263,
+ 2153: 0x55A7,
+ 2154: 0x570F,
+ 2155: 0x5805,
+ 2156: 0x5ACC,
+ 2157: 0x5EFA,
+ 2158: 0x61B2,
+ 2159: 0x61F8,
+ 2160: 0x62F3,
+ 2161: 0x6372,
+ 2162: 0x691C,
+ 2163: 0x6A29,
+ 2164: 0x727D,
+ 2165: 0x72AC,
+ 2166: 0x732E,
+ 2167: 0x7814,
+ 2168: 0x786F,
+ 2169: 0x7D79,
+ 2170: 0x770C,
+ 2171: 0x80A9,
+ 2172: 0x898B,
+ 2173: 0x8B19,
+ 2174: 0x8CE2,
+ 2175: 0x8ED2,
+ 2176: 0x9063,
+ 2177: 0x9375,
+ 2178: 0x967A,
+ 2179: 0x9855,
+ 2180: 0x9A13,
+ 2181: 0x9E78,
+ 2182: 0x5143,
+ 2183: 0x539F,
+ 2184: 0x53B3,
+ 2185: 0x5E7B,
+ 2186: 0x5F26,
+ 2187: 0x6E1B,
+ 2188: 0x6E90,
+ 2189: 0x7384,
+ 2190: 0x73FE,
+ 2191: 0x7D43,
+ 2192: 0x8237,
+ 2193: 0x8A00,
+ 2194: 0x8AFA,
+ 2195: 0x9650,
+ 2196: 0x4E4E,
+ 2197: 0x500B,
+ 2198: 0x53E4,
+ 2199: 0x547C,
+ 2200: 0x56FA,
+ 2201: 0x59D1,
+ 2202: 0x5B64,
+ 2203: 0x5DF1,
+ 2204: 0x5EAB,
+ 2205: 0x5F27,
+ 2206: 0x6238,
+ 2207: 0x6545,
+ 2208: 0x67AF,
+ 2209: 0x6E56,
+ 2210: 0x72D0,
+ 2211: 0x7CCA,
+ 2212: 0x88B4,
+ 2213: 0x80A1,
+ 2214: 0x80E1,
+ 2215: 0x83F0,
+ 2216: 0x864E,
+ 2217: 0x8A87,
+ 2218: 0x8DE8,
+ 2219: 0x9237,
+ 2220: 0x96C7,
+ 2221: 0x9867,
+ 2222: 0x9F13,
+ 2223: 0x4E94,
+ 2224: 0x4E92,
+ 2225: 0x4F0D,
+ 2226: 0x5348,
+ 2227: 0x5449,
+ 2228: 0x543E,
+ 2229: 0x5A2F,
+ 2230: 0x5F8C,
+ 2231: 0x5FA1,
+ 2232: 0x609F,
+ 2233: 0x68A7,
+ 2234: 0x6A8E,
+ 2235: 0x745A,
+ 2236: 0x7881,
+ 2237: 0x8A9E,
+ 2238: 0x8AA4,
+ 2239: 0x8B77,
+ 2240: 0x9190,
+ 2241: 0x4E5E,
+ 2242: 0x9BC9,
+ 2243: 0x4EA4,
+ 2244: 0x4F7C,
+ 2245: 0x4FAF,
+ 2246: 0x5019,
+ 2247: 0x5016,
+ 2248: 0x5149,
+ 2249: 0x516C,
+ 2250: 0x529F,
+ 2251: 0x52B9,
+ 2252: 0x52FE,
+ 2253: 0x539A,
+ 2254: 0x53E3,
+ 2255: 0x5411,
+ 2256: 0x540E,
+ 2257: 0x5589,
+ 2258: 0x5751,
+ 2259: 0x57A2,
+ 2260: 0x597D,
+ 2261: 0x5B54,
+ 2262: 0x5B5D,
+ 2263: 0x5B8F,
+ 2264: 0x5DE5,
+ 2265: 0x5DE7,
+ 2266: 0x5DF7,
+ 2267: 0x5E78,
+ 2268: 0x5E83,
+ 2269: 0x5E9A,
+ 2270: 0x5EB7,
+ 2271: 0x5F18,
+ 2272: 0x6052,
+ 2273: 0x614C,
+ 2274: 0x6297,
+ 2275: 0x62D8,
+ 2276: 0x63A7,
+ 2277: 0x653B,
+ 2278: 0x6602,
+ 2279: 0x6643,
+ 2280: 0x66F4,
+ 2281: 0x676D,
+ 2282: 0x6821,
+ 2283: 0x6897,
+ 2284: 0x69CB,
+ 2285: 0x6C5F,
+ 2286: 0x6D2A,
+ 2287: 0x6D69,
+ 2288: 0x6E2F,
+ 2289: 0x6E9D,
+ 2290: 0x7532,
+ 2291: 0x7687,
+ 2292: 0x786C,
+ 2293: 0x7A3F,
+ 2294: 0x7CE0,
+ 2295: 0x7D05,
+ 2296: 0x7D18,
+ 2297: 0x7D5E,
+ 2298: 0x7DB1,
+ 2299: 0x8015,
+ 2300: 0x8003,
+ 2301: 0x80AF,
+ 2302: 0x80B1,
+ 2303: 0x8154,
+ 2304: 0x818F,
+ 2305: 0x822A,
+ 2306: 0x8352,
+ 2307: 0x884C,
+ 2308: 0x8861,
+ 2309: 0x8B1B,
+ 2310: 0x8CA2,
+ 2311: 0x8CFC,
+ 2312: 0x90CA,
+ 2313: 0x9175,
+ 2314: 0x9271,
+ 2315: 0x783F,
+ 2316: 0x92FC,
+ 2317: 0x95A4,
+ 2318: 0x964D,
+ 2319: 0x9805,
+ 2320: 0x9999,
+ 2321: 0x9AD8,
+ 2322: 0x9D3B,
+ 2323: 0x525B,
+ 2324: 0x52AB,
+ 2325: 0x53F7,
+ 2326: 0x5408,
+ 2327: 0x58D5,
+ 2328: 0x62F7,
+ 2329: 0x6FE0,
+ 2330: 0x8C6A,
+ 2331: 0x8F5F,
+ 2332: 0x9EB9,
+ 2333: 0x514B,
+ 2334: 0x523B,
+ 2335: 0x544A,
+ 2336: 0x56FD,
+ 2337: 0x7A40,
+ 2338: 0x9177,
+ 2339: 0x9D60,
+ 2340: 0x9ED2,
+ 2341: 0x7344,
+ 2342: 0x6F09,
+ 2343: 0x8170,
+ 2344: 0x7511,
+ 2345: 0x5FFD,
+ 2346: 0x60DA,
+ 2347: 0x9AA8,
+ 2348: 0x72DB,
+ 2349: 0x8FBC,
+ 2350: 0x6B64,
+ 2351: 0x9803,
+ 2352: 0x4ECA,
+ 2353: 0x56F0,
+ 2354: 0x5764,
+ 2355: 0x58BE,
+ 2356: 0x5A5A,
+ 2357: 0x6068,
+ 2358: 0x61C7,
+ 2359: 0x660F,
+ 2360: 0x6606,
+ 2361: 0x6839,
+ 2362: 0x68B1,
+ 2363: 0x6DF7,
+ 2364: 0x75D5,
+ 2365: 0x7D3A,
+ 2366: 0x826E,
+ 2367: 0x9B42,
+ 2368: 0x4E9B,
+ 2369: 0x4F50,
+ 2370: 0x53C9,
+ 2371: 0x5506,
+ 2372: 0x5D6F,
+ 2373: 0x5DE6,
+ 2374: 0x5DEE,
+ 2375: 0x67FB,
+ 2376: 0x6C99,
+ 2377: 0x7473,
+ 2378: 0x7802,
+ 2379: 0x8A50,
+ 2380: 0x9396,
+ 2381: 0x88DF,
+ 2382: 0x5750,
+ 2383: 0x5EA7,
+ 2384: 0x632B,
+ 2385: 0x50B5,
+ 2386: 0x50AC,
+ 2387: 0x518D,
+ 2388: 0x6700,
+ 2389: 0x54C9,
+ 2390: 0x585E,
+ 2391: 0x59BB,
+ 2392: 0x5BB0,
+ 2393: 0x5F69,
+ 2394: 0x624D,
+ 2395: 0x63A1,
+ 2396: 0x683D,
+ 2397: 0x6B73,
+ 2398: 0x6E08,
+ 2399: 0x707D,
+ 2400: 0x91C7,
+ 2401: 0x7280,
+ 2402: 0x7815,
+ 2403: 0x7826,
+ 2404: 0x796D,
+ 2405: 0x658E,
+ 2406: 0x7D30,
+ 2407: 0x83DC,
+ 2408: 0x88C1,
+ 2409: 0x8F09,
+ 2410: 0x969B,
+ 2411: 0x5264,
+ 2412: 0x5728,
+ 2413: 0x6750,
+ 2414: 0x7F6A,
+ 2415: 0x8CA1,
+ 2416: 0x51B4,
+ 2417: 0x5742,
+ 2418: 0x962A,
+ 2419: 0x583A,
+ 2420: 0x698A,
+ 2421: 0x80B4,
+ 2422: 0x54B2,
+ 2423: 0x5D0E,
+ 2424: 0x57FC,
+ 2425: 0x7895,
+ 2426: 0x9DFA,
+ 2427: 0x4F5C,
+ 2428: 0x524A,
+ 2429: 0x548B,
+ 2430: 0x643E,
+ 2431: 0x6628,
+ 2432: 0x6714,
+ 2433: 0x67F5,
+ 2434: 0x7A84,
+ 2435: 0x7B56,
+ 2436: 0x7D22,
+ 2437: 0x932F,
+ 2438: 0x685C,
+ 2439: 0x9BAD,
+ 2440: 0x7B39,
+ 2441: 0x5319,
+ 2442: 0x518A,
+ 2443: 0x5237,
+ 2444: 0x5BDF,
+ 2445: 0x62F6,
+ 2446: 0x64AE,
+ 2447: 0x64E6,
+ 2448: 0x672D,
+ 2449: 0x6BBA,
+ 2450: 0x85A9,
+ 2451: 0x96D1,
+ 2452: 0x7690,
+ 2453: 0x9BD6,
+ 2454: 0x634C,
+ 2455: 0x9306,
+ 2456: 0x9BAB,
+ 2457: 0x76BF,
+ 2458: 0x6652,
+ 2459: 0x4E09,
+ 2460: 0x5098,
+ 2461: 0x53C2,
+ 2462: 0x5C71,
+ 2463: 0x60E8,
+ 2464: 0x6492,
+ 2465: 0x6563,
+ 2466: 0x685F,
+ 2467: 0x71E6,
+ 2468: 0x73CA,
+ 2469: 0x7523,
+ 2470: 0x7B97,
+ 2471: 0x7E82,
+ 2472: 0x8695,
+ 2473: 0x8B83,
+ 2474: 0x8CDB,
+ 2475: 0x9178,
+ 2476: 0x9910,
+ 2477: 0x65AC,
+ 2478: 0x66AB,
+ 2479: 0x6B8B,
+ 2480: 0x4ED5,
+ 2481: 0x4ED4,
+ 2482: 0x4F3A,
+ 2483: 0x4F7F,
+ 2484: 0x523A,
+ 2485: 0x53F8,
+ 2486: 0x53F2,
+ 2487: 0x55E3,
+ 2488: 0x56DB,
+ 2489: 0x58EB,
+ 2490: 0x59CB,
+ 2491: 0x59C9,
+ 2492: 0x59FF,
+ 2493: 0x5B50,
+ 2494: 0x5C4D,
+ 2495: 0x5E02,
+ 2496: 0x5E2B,
+ 2497: 0x5FD7,
+ 2498: 0x601D,
+ 2499: 0x6307,
+ 2500: 0x652F,
+ 2501: 0x5B5C,
+ 2502: 0x65AF,
+ 2503: 0x65BD,
+ 2504: 0x65E8,
+ 2505: 0x679D,
+ 2506: 0x6B62,
+ 2507: 0x6B7B,
+ 2508: 0x6C0F,
+ 2509: 0x7345,
+ 2510: 0x7949,
+ 2511: 0x79C1,
+ 2512: 0x7CF8,
+ 2513: 0x7D19,
+ 2514: 0x7D2B,
+ 2515: 0x80A2,
+ 2516: 0x8102,
+ 2517: 0x81F3,
+ 2518: 0x8996,
+ 2519: 0x8A5E,
+ 2520: 0x8A69,
+ 2521: 0x8A66,
+ 2522: 0x8A8C,
+ 2523: 0x8AEE,
+ 2524: 0x8CC7,
+ 2525: 0x8CDC,
+ 2526: 0x96CC,
+ 2527: 0x98FC,
+ 2528: 0x6B6F,
+ 2529: 0x4E8B,
+ 2530: 0x4F3C,
+ 2531: 0x4F8D,
+ 2532: 0x5150,
+ 2533: 0x5B57,
+ 2534: 0x5BFA,
+ 2535: 0x6148,
+ 2536: 0x6301,
+ 2537: 0x6642,
+ 2538: 0x6B21,
+ 2539: 0x6ECB,
+ 2540: 0x6CBB,
+ 2541: 0x723E,
+ 2542: 0x74BD,
+ 2543: 0x75D4,
+ 2544: 0x78C1,
+ 2545: 0x793A,
+ 2546: 0x800C,
+ 2547: 0x8033,
+ 2548: 0x81EA,
+ 2549: 0x8494,
+ 2550: 0x8F9E,
+ 2551: 0x6C50,
+ 2552: 0x9E7F,
+ 2553: 0x5F0F,
+ 2554: 0x8B58,
+ 2555: 0x9D2B,
+ 2556: 0x7AFA,
+ 2557: 0x8EF8,
+ 2558: 0x5B8D,
+ 2559: 0x96EB,
+ 2560: 0x4E03,
+ 2561: 0x53F1,
+ 2562: 0x57F7,
+ 2563: 0x5931,
+ 2564: 0x5AC9,
+ 2565: 0x5BA4,
+ 2566: 0x6089,
+ 2567: 0x6E7F,
+ 2568: 0x6F06,
+ 2569: 0x75BE,
+ 2570: 0x8CEA,
+ 2571: 0x5B9F,
+ 2572: 0x8500,
+ 2573: 0x7BE0,
+ 2574: 0x5072,
+ 2575: 0x67F4,
+ 2576: 0x829D,
+ 2577: 0x5C61,
+ 2578: 0x854A,
+ 2579: 0x7E1E,
+ 2580: 0x820E,
+ 2581: 0x5199,
+ 2582: 0x5C04,
+ 2583: 0x6368,
+ 2584: 0x8D66,
+ 2585: 0x659C,
+ 2586: 0x716E,
+ 2587: 0x793E,
+ 2588: 0x7D17,
+ 2589: 0x8005,
+ 2590: 0x8B1D,
+ 2591: 0x8ECA,
+ 2592: 0x906E,
+ 2593: 0x86C7,
+ 2594: 0x90AA,
+ 2595: 0x501F,
+ 2596: 0x52FA,
+ 2597: 0x5C3A,
+ 2598: 0x6753,
+ 2599: 0x707C,
+ 2600: 0x7235,
+ 2601: 0x914C,
+ 2602: 0x91C8,
+ 2603: 0x932B,
+ 2604: 0x82E5,
+ 2605: 0x5BC2,
+ 2606: 0x5F31,
+ 2607: 0x60F9,
+ 2608: 0x4E3B,
+ 2609: 0x53D6,
+ 2610: 0x5B88,
+ 2611: 0x624B,
+ 2612: 0x6731,
+ 2613: 0x6B8A,
+ 2614: 0x72E9,
+ 2615: 0x73E0,
+ 2616: 0x7A2E,
+ 2617: 0x816B,
+ 2618: 0x8DA3,
+ 2619: 0x9152,
+ 2620: 0x9996,
+ 2621: 0x5112,
+ 2622: 0x53D7,
+ 2623: 0x546A,
+ 2624: 0x5BFF,
+ 2625: 0x6388,
+ 2626: 0x6A39,
+ 2627: 0x7DAC,
+ 2628: 0x9700,
+ 2629: 0x56DA,
+ 2630: 0x53CE,
+ 2631: 0x5468,
+ 2632: 0x5B97,
+ 2633: 0x5C31,
+ 2634: 0x5DDE,
+ 2635: 0x4FEE,
+ 2636: 0x6101,
+ 2637: 0x62FE,
+ 2638: 0x6D32,
+ 2639: 0x79C0,
+ 2640: 0x79CB,
+ 2641: 0x7D42,
+ 2642: 0x7E4D,
+ 2643: 0x7FD2,
+ 2644: 0x81ED,
+ 2645: 0x821F,
+ 2646: 0x8490,
+ 2647: 0x8846,
+ 2648: 0x8972,
+ 2649: 0x8B90,
+ 2650: 0x8E74,
+ 2651: 0x8F2F,
+ 2652: 0x9031,
+ 2653: 0x914B,
+ 2654: 0x916C,
+ 2655: 0x96C6,
+ 2656: 0x919C,
+ 2657: 0x4EC0,
+ 2658: 0x4F4F,
+ 2659: 0x5145,
+ 2660: 0x5341,
+ 2661: 0x5F93,
+ 2662: 0x620E,
+ 2663: 0x67D4,
+ 2664: 0x6C41,
+ 2665: 0x6E0B,
+ 2666: 0x7363,
+ 2667: 0x7E26,
+ 2668: 0x91CD,
+ 2669: 0x9283,
+ 2670: 0x53D4,
+ 2671: 0x5919,
+ 2672: 0x5BBF,
+ 2673: 0x6DD1,
+ 2674: 0x795D,
+ 2675: 0x7E2E,
+ 2676: 0x7C9B,
+ 2677: 0x587E,
+ 2678: 0x719F,
+ 2679: 0x51FA,
+ 2680: 0x8853,
+ 2681: 0x8FF0,
+ 2682: 0x4FCA,
+ 2683: 0x5CFB,
+ 2684: 0x6625,
+ 2685: 0x77AC,
+ 2686: 0x7AE3,
+ 2687: 0x821C,
+ 2688: 0x99FF,
+ 2689: 0x51C6,
+ 2690: 0x5FAA,
+ 2691: 0x65EC,
+ 2692: 0x696F,
+ 2693: 0x6B89,
+ 2694: 0x6DF3,
+ 2695: 0x6E96,
+ 2696: 0x6F64,
+ 2697: 0x76FE,
+ 2698: 0x7D14,
+ 2699: 0x5DE1,
+ 2700: 0x9075,
+ 2701: 0x9187,
+ 2702: 0x9806,
+ 2703: 0x51E6,
+ 2704: 0x521D,
+ 2705: 0x6240,
+ 2706: 0x6691,
+ 2707: 0x66D9,
+ 2708: 0x6E1A,
+ 2709: 0x5EB6,
+ 2710: 0x7DD2,
+ 2711: 0x7F72,
+ 2712: 0x66F8,
+ 2713: 0x85AF,
+ 2714: 0x85F7,
+ 2715: 0x8AF8,
+ 2716: 0x52A9,
+ 2717: 0x53D9,
+ 2718: 0x5973,
+ 2719: 0x5E8F,
+ 2720: 0x5F90,
+ 2721: 0x6055,
+ 2722: 0x92E4,
+ 2723: 0x9664,
+ 2724: 0x50B7,
+ 2725: 0x511F,
+ 2726: 0x52DD,
+ 2727: 0x5320,
+ 2728: 0x5347,
+ 2729: 0x53EC,
+ 2730: 0x54E8,
+ 2731: 0x5546,
+ 2732: 0x5531,
+ 2733: 0x5617,
+ 2734: 0x5968,
+ 2735: 0x59BE,
+ 2736: 0x5A3C,
+ 2737: 0x5BB5,
+ 2738: 0x5C06,
+ 2739: 0x5C0F,
+ 2740: 0x5C11,
+ 2741: 0x5C1A,
+ 2742: 0x5E84,
+ 2743: 0x5E8A,
+ 2744: 0x5EE0,
+ 2745: 0x5F70,
+ 2746: 0x627F,
+ 2747: 0x6284,
+ 2748: 0x62DB,
+ 2749: 0x638C,
+ 2750: 0x6377,
+ 2751: 0x6607,
+ 2752: 0x660C,
+ 2753: 0x662D,
+ 2754: 0x6676,
+ 2755: 0x677E,
+ 2756: 0x68A2,
+ 2757: 0x6A1F,
+ 2758: 0x6A35,
+ 2759: 0x6CBC,
+ 2760: 0x6D88,
+ 2761: 0x6E09,
+ 2762: 0x6E58,
+ 2763: 0x713C,
+ 2764: 0x7126,
+ 2765: 0x7167,
+ 2766: 0x75C7,
+ 2767: 0x7701,
+ 2768: 0x785D,
+ 2769: 0x7901,
+ 2770: 0x7965,
+ 2771: 0x79F0,
+ 2772: 0x7AE0,
+ 2773: 0x7B11,
+ 2774: 0x7CA7,
+ 2775: 0x7D39,
+ 2776: 0x8096,
+ 2777: 0x83D6,
+ 2778: 0x848B,
+ 2779: 0x8549,
+ 2780: 0x885D,
+ 2781: 0x88F3,
+ 2782: 0x8A1F,
+ 2783: 0x8A3C,
+ 2784: 0x8A54,
+ 2785: 0x8A73,
+ 2786: 0x8C61,
+ 2787: 0x8CDE,
+ 2788: 0x91A4,
+ 2789: 0x9266,
+ 2790: 0x937E,
+ 2791: 0x9418,
+ 2792: 0x969C,
+ 2793: 0x9798,
+ 2794: 0x4E0A,
+ 2795: 0x4E08,
+ 2796: 0x4E1E,
+ 2797: 0x4E57,
+ 2798: 0x5197,
+ 2799: 0x5270,
+ 2800: 0x57CE,
+ 2801: 0x5834,
+ 2802: 0x58CC,
+ 2803: 0x5B22,
+ 2804: 0x5E38,
+ 2805: 0x60C5,
+ 2806: 0x64FE,
+ 2807: 0x6761,
+ 2808: 0x6756,
+ 2809: 0x6D44,
+ 2810: 0x72B6,
+ 2811: 0x7573,
+ 2812: 0x7A63,
+ 2813: 0x84B8,
+ 2814: 0x8B72,
+ 2815: 0x91B8,
+ 2816: 0x9320,
+ 2817: 0x5631,
+ 2818: 0x57F4,
+ 2819: 0x98FE,
+ 2820: 0x62ED,
+ 2821: 0x690D,
+ 2822: 0x6B96,
+ 2823: 0x71ED,
+ 2824: 0x7E54,
+ 2825: 0x8077,
+ 2826: 0x8272,
+ 2827: 0x89E6,
+ 2828: 0x98DF,
+ 2829: 0x8755,
+ 2830: 0x8FB1,
+ 2831: 0x5C3B,
+ 2832: 0x4F38,
+ 2833: 0x4FE1,
+ 2834: 0x4FB5,
+ 2835: 0x5507,
+ 2836: 0x5A20,
+ 2837: 0x5BDD,
+ 2838: 0x5BE9,
+ 2839: 0x5FC3,
+ 2840: 0x614E,
+ 2841: 0x632F,
+ 2842: 0x65B0,
+ 2843: 0x664B,
+ 2844: 0x68EE,
+ 2845: 0x699B,
+ 2846: 0x6D78,
+ 2847: 0x6DF1,
+ 2848: 0x7533,
+ 2849: 0x75B9,
+ 2850: 0x771F,
+ 2851: 0x795E,
+ 2852: 0x79E6,
+ 2853: 0x7D33,
+ 2854: 0x81E3,
+ 2855: 0x82AF,
+ 2856: 0x85AA,
+ 2857: 0x89AA,
+ 2858: 0x8A3A,
+ 2859: 0x8EAB,
+ 2860: 0x8F9B,
+ 2861: 0x9032,
+ 2862: 0x91DD,
+ 2863: 0x9707,
+ 2864: 0x4EBA,
+ 2865: 0x4EC1,
+ 2866: 0x5203,
+ 2867: 0x5875,
+ 2868: 0x58EC,
+ 2869: 0x5C0B,
+ 2870: 0x751A,
+ 2871: 0x5C3D,
+ 2872: 0x814E,
+ 2873: 0x8A0A,
+ 2874: 0x8FC5,
+ 2875: 0x9663,
+ 2876: 0x976D,
+ 2877: 0x7B25,
+ 2878: 0x8ACF,
+ 2879: 0x9808,
+ 2880: 0x9162,
+ 2881: 0x56F3,
+ 2882: 0x53A8,
+ 2883: 0x9017,
+ 2884: 0x5439,
+ 2885: 0x5782,
+ 2886: 0x5E25,
+ 2887: 0x63A8,
+ 2888: 0x6C34,
+ 2889: 0x708A,
+ 2890: 0x7761,
+ 2891: 0x7C8B,
+ 2892: 0x7FE0,
+ 2893: 0x8870,
+ 2894: 0x9042,
+ 2895: 0x9154,
+ 2896: 0x9310,
+ 2897: 0x9318,
+ 2898: 0x968F,
+ 2899: 0x745E,
+ 2900: 0x9AC4,
+ 2901: 0x5D07,
+ 2902: 0x5D69,
+ 2903: 0x6570,
+ 2904: 0x67A2,
+ 2905: 0x8DA8,
+ 2906: 0x96DB,
+ 2907: 0x636E,
+ 2908: 0x6749,
+ 2909: 0x6919,
+ 2910: 0x83C5,
+ 2911: 0x9817,
+ 2912: 0x96C0,
+ 2913: 0x88FE,
+ 2914: 0x6F84,
+ 2915: 0x647A,
+ 2916: 0x5BF8,
+ 2917: 0x4E16,
+ 2918: 0x702C,
+ 2919: 0x755D,
+ 2920: 0x662F,
+ 2921: 0x51C4,
+ 2922: 0x5236,
+ 2923: 0x52E2,
+ 2924: 0x59D3,
+ 2925: 0x5F81,
+ 2926: 0x6027,
+ 2927: 0x6210,
+ 2928: 0x653F,
+ 2929: 0x6574,
+ 2930: 0x661F,
+ 2931: 0x6674,
+ 2932: 0x68F2,
+ 2933: 0x6816,
+ 2934: 0x6B63,
+ 2935: 0x6E05,
+ 2936: 0x7272,
+ 2937: 0x751F,
+ 2938: 0x76DB,
+ 2939: 0x7CBE,
+ 2940: 0x8056,
+ 2941: 0x58F0,
+ 2942: 0x88FD,
+ 2943: 0x897F,
+ 2944: 0x8AA0,
+ 2945: 0x8A93,
+ 2946: 0x8ACB,
+ 2947: 0x901D,
+ 2948: 0x9192,
+ 2949: 0x9752,
+ 2950: 0x9759,
+ 2951: 0x6589,
+ 2952: 0x7A0E,
+ 2953: 0x8106,
+ 2954: 0x96BB,
+ 2955: 0x5E2D,
+ 2956: 0x60DC,
+ 2957: 0x621A,
+ 2958: 0x65A5,
+ 2959: 0x6614,
+ 2960: 0x6790,
+ 2961: 0x77F3,
+ 2962: 0x7A4D,
+ 2963: 0x7C4D,
+ 2964: 0x7E3E,
+ 2965: 0x810A,
+ 2966: 0x8CAC,
+ 2967: 0x8D64,
+ 2968: 0x8DE1,
+ 2969: 0x8E5F,
+ 2970: 0x78A9,
+ 2971: 0x5207,
+ 2972: 0x62D9,
+ 2973: 0x63A5,
+ 2974: 0x6442,
+ 2975: 0x6298,
+ 2976: 0x8A2D,
+ 2977: 0x7A83,
+ 2978: 0x7BC0,
+ 2979: 0x8AAC,
+ 2980: 0x96EA,
+ 2981: 0x7D76,
+ 2982: 0x820C,
+ 2983: 0x8749,
+ 2984: 0x4ED9,
+ 2985: 0x5148,
+ 2986: 0x5343,
+ 2987: 0x5360,
+ 2988: 0x5BA3,
+ 2989: 0x5C02,
+ 2990: 0x5C16,
+ 2991: 0x5DDD,
+ 2992: 0x6226,
+ 2993: 0x6247,
+ 2994: 0x64B0,
+ 2995: 0x6813,
+ 2996: 0x6834,
+ 2997: 0x6CC9,
+ 2998: 0x6D45,
+ 2999: 0x6D17,
+ 3000: 0x67D3,
+ 3001: 0x6F5C,
+ 3002: 0x714E,
+ 3003: 0x717D,
+ 3004: 0x65CB,
+ 3005: 0x7A7F,
+ 3006: 0x7BAD,
+ 3007: 0x7DDA,
+ 3008: 0x7E4A,
+ 3009: 0x7FA8,
+ 3010: 0x817A,
+ 3011: 0x821B,
+ 3012: 0x8239,
+ 3013: 0x85A6,
+ 3014: 0x8A6E,
+ 3015: 0x8CCE,
+ 3016: 0x8DF5,
+ 3017: 0x9078,
+ 3018: 0x9077,
+ 3019: 0x92AD,
+ 3020: 0x9291,
+ 3021: 0x9583,
+ 3022: 0x9BAE,
+ 3023: 0x524D,
+ 3024: 0x5584,
+ 3025: 0x6F38,
+ 3026: 0x7136,
+ 3027: 0x5168,
+ 3028: 0x7985,
+ 3029: 0x7E55,
+ 3030: 0x81B3,
+ 3031: 0x7CCE,
+ 3032: 0x564C,
+ 3033: 0x5851,
+ 3034: 0x5CA8,
+ 3035: 0x63AA,
+ 3036: 0x66FE,
+ 3037: 0x66FD,
+ 3038: 0x695A,
+ 3039: 0x72D9,
+ 3040: 0x758F,
+ 3041: 0x758E,
+ 3042: 0x790E,
+ 3043: 0x7956,
+ 3044: 0x79DF,
+ 3045: 0x7C97,
+ 3046: 0x7D20,
+ 3047: 0x7D44,
+ 3048: 0x8607,
+ 3049: 0x8A34,
+ 3050: 0x963B,
+ 3051: 0x9061,
+ 3052: 0x9F20,
+ 3053: 0x50E7,
+ 3054: 0x5275,
+ 3055: 0x53CC,
+ 3056: 0x53E2,
+ 3057: 0x5009,
+ 3058: 0x55AA,
+ 3059: 0x58EE,
+ 3060: 0x594F,
+ 3061: 0x723D,
+ 3062: 0x5B8B,
+ 3063: 0x5C64,
+ 3064: 0x531D,
+ 3065: 0x60E3,
+ 3066: 0x60F3,
+ 3067: 0x635C,
+ 3068: 0x6383,
+ 3069: 0x633F,
+ 3070: 0x63BB,
+ 3071: 0x64CD,
+ 3072: 0x65E9,
+ 3073: 0x66F9,
+ 3074: 0x5DE3,
+ 3075: 0x69CD,
+ 3076: 0x69FD,
+ 3077: 0x6F15,
+ 3078: 0x71E5,
+ 3079: 0x4E89,
+ 3080: 0x75E9,
+ 3081: 0x76F8,
+ 3082: 0x7A93,
+ 3083: 0x7CDF,
+ 3084: 0x7DCF,
+ 3085: 0x7D9C,
+ 3086: 0x8061,
+ 3087: 0x8349,
+ 3088: 0x8358,
+ 3089: 0x846C,
+ 3090: 0x84BC,
+ 3091: 0x85FB,
+ 3092: 0x88C5,
+ 3093: 0x8D70,
+ 3094: 0x9001,
+ 3095: 0x906D,
+ 3096: 0x9397,
+ 3097: 0x971C,
+ 3098: 0x9A12,
+ 3099: 0x50CF,
+ 3100: 0x5897,
+ 3101: 0x618E,
+ 3102: 0x81D3,
+ 3103: 0x8535,
+ 3104: 0x8D08,
+ 3105: 0x9020,
+ 3106: 0x4FC3,
+ 3107: 0x5074,
+ 3108: 0x5247,
+ 3109: 0x5373,
+ 3110: 0x606F,
+ 3111: 0x6349,
+ 3112: 0x675F,
+ 3113: 0x6E2C,
+ 3114: 0x8DB3,
+ 3115: 0x901F,
+ 3116: 0x4FD7,
+ 3117: 0x5C5E,
+ 3118: 0x8CCA,
+ 3119: 0x65CF,
+ 3120: 0x7D9A,
+ 3121: 0x5352,
+ 3122: 0x8896,
+ 3123: 0x5176,
+ 3124: 0x63C3,
+ 3125: 0x5B58,
+ 3126: 0x5B6B,
+ 3127: 0x5C0A,
+ 3128: 0x640D,
+ 3129: 0x6751,
+ 3130: 0x905C,
+ 3131: 0x4ED6,
+ 3132: 0x591A,
+ 3133: 0x592A,
+ 3134: 0x6C70,
+ 3135: 0x8A51,
+ 3136: 0x553E,
+ 3137: 0x5815,
+ 3138: 0x59A5,
+ 3139: 0x60F0,
+ 3140: 0x6253,
+ 3141: 0x67C1,
+ 3142: 0x8235,
+ 3143: 0x6955,
+ 3144: 0x9640,
+ 3145: 0x99C4,
+ 3146: 0x9A28,
+ 3147: 0x4F53,
+ 3148: 0x5806,
+ 3149: 0x5BFE,
+ 3150: 0x8010,
+ 3151: 0x5CB1,
+ 3152: 0x5E2F,
+ 3153: 0x5F85,
+ 3154: 0x6020,
+ 3155: 0x614B,
+ 3156: 0x6234,
+ 3157: 0x66FF,
+ 3158: 0x6CF0,
+ 3159: 0x6EDE,
+ 3160: 0x80CE,
+ 3161: 0x817F,
+ 3162: 0x82D4,
+ 3163: 0x888B,
+ 3164: 0x8CB8,
+ 3165: 0x9000,
+ 3166: 0x902E,
+ 3167: 0x968A,
+ 3168: 0x9EDB,
+ 3169: 0x9BDB,
+ 3170: 0x4EE3,
+ 3171: 0x53F0,
+ 3172: 0x5927,
+ 3173: 0x7B2C,
+ 3174: 0x918D,
+ 3175: 0x984C,
+ 3176: 0x9DF9,
+ 3177: 0x6EDD,
+ 3178: 0x7027,
+ 3179: 0x5353,
+ 3180: 0x5544,
+ 3181: 0x5B85,
+ 3182: 0x6258,
+ 3183: 0x629E,
+ 3184: 0x62D3,
+ 3185: 0x6CA2,
+ 3186: 0x6FEF,
+ 3187: 0x7422,
+ 3188: 0x8A17,
+ 3189: 0x9438,
+ 3190: 0x6FC1,
+ 3191: 0x8AFE,
+ 3192: 0x8338,
+ 3193: 0x51E7,
+ 3194: 0x86F8,
+ 3195: 0x53EA,
+ 3196: 0x53E9,
+ 3197: 0x4F46,
+ 3198: 0x9054,
+ 3199: 0x8FB0,
+ 3200: 0x596A,
+ 3201: 0x8131,
+ 3202: 0x5DFD,
+ 3203: 0x7AEA,
+ 3204: 0x8FBF,
+ 3205: 0x68DA,
+ 3206: 0x8C37,
+ 3207: 0x72F8,
+ 3208: 0x9C48,
+ 3209: 0x6A3D,
+ 3210: 0x8AB0,
+ 3211: 0x4E39,
+ 3212: 0x5358,
+ 3213: 0x5606,
+ 3214: 0x5766,
+ 3215: 0x62C5,
+ 3216: 0x63A2,
+ 3217: 0x65E6,
+ 3218: 0x6B4E,
+ 3219: 0x6DE1,
+ 3220: 0x6E5B,
+ 3221: 0x70AD,
+ 3222: 0x77ED,
+ 3223: 0x7AEF,
+ 3224: 0x7BAA,
+ 3225: 0x7DBB,
+ 3226: 0x803D,
+ 3227: 0x80C6,
+ 3228: 0x86CB,
+ 3229: 0x8A95,
+ 3230: 0x935B,
+ 3231: 0x56E3,
+ 3232: 0x58C7,
+ 3233: 0x5F3E,
+ 3234: 0x65AD,
+ 3235: 0x6696,
+ 3236: 0x6A80,
+ 3237: 0x6BB5,
+ 3238: 0x7537,
+ 3239: 0x8AC7,
+ 3240: 0x5024,
+ 3241: 0x77E5,
+ 3242: 0x5730,
+ 3243: 0x5F1B,
+ 3244: 0x6065,
+ 3245: 0x667A,
+ 3246: 0x6C60,
+ 3247: 0x75F4,
+ 3248: 0x7A1A,
+ 3249: 0x7F6E,
+ 3250: 0x81F4,
+ 3251: 0x8718,
+ 3252: 0x9045,
+ 3253: 0x99B3,
+ 3254: 0x7BC9,
+ 3255: 0x755C,
+ 3256: 0x7AF9,
+ 3257: 0x7B51,
+ 3258: 0x84C4,
+ 3259: 0x9010,
+ 3260: 0x79E9,
+ 3261: 0x7A92,
+ 3262: 0x8336,
+ 3263: 0x5AE1,
+ 3264: 0x7740,
+ 3265: 0x4E2D,
+ 3266: 0x4EF2,
+ 3267: 0x5B99,
+ 3268: 0x5FE0,
+ 3269: 0x62BD,
+ 3270: 0x663C,
+ 3271: 0x67F1,
+ 3272: 0x6CE8,
+ 3273: 0x866B,
+ 3274: 0x8877,
+ 3275: 0x8A3B,
+ 3276: 0x914E,
+ 3277: 0x92F3,
+ 3278: 0x99D0,
+ 3279: 0x6A17,
+ 3280: 0x7026,
+ 3281: 0x732A,
+ 3282: 0x82E7,
+ 3283: 0x8457,
+ 3284: 0x8CAF,
+ 3285: 0x4E01,
+ 3286: 0x5146,
+ 3287: 0x51CB,
+ 3288: 0x558B,
+ 3289: 0x5BF5,
+ 3290: 0x5E16,
+ 3291: 0x5E33,
+ 3292: 0x5E81,
+ 3293: 0x5F14,
+ 3294: 0x5F35,
+ 3295: 0x5F6B,
+ 3296: 0x5FB4,
+ 3297: 0x61F2,
+ 3298: 0x6311,
+ 3299: 0x66A2,
+ 3300: 0x671D,
+ 3301: 0x6F6E,
+ 3302: 0x7252,
+ 3303: 0x753A,
+ 3304: 0x773A,
+ 3305: 0x8074,
+ 3306: 0x8139,
+ 3307: 0x8178,
+ 3308: 0x8776,
+ 3309: 0x8ABF,
+ 3310: 0x8ADC,
+ 3311: 0x8D85,
+ 3312: 0x8DF3,
+ 3313: 0x929A,
+ 3314: 0x9577,
+ 3315: 0x9802,
+ 3316: 0x9CE5,
+ 3317: 0x52C5,
+ 3318: 0x6357,
+ 3319: 0x76F4,
+ 3320: 0x6715,
+ 3321: 0x6C88,
+ 3322: 0x73CD,
+ 3323: 0x8CC3,
+ 3324: 0x93AE,
+ 3325: 0x9673,
+ 3326: 0x6D25,
+ 3327: 0x589C,
+ 3328: 0x690E,
+ 3329: 0x69CC,
+ 3330: 0x8FFD,
+ 3331: 0x939A,
+ 3332: 0x75DB,
+ 3333: 0x901A,
+ 3334: 0x585A,
+ 3335: 0x6802,
+ 3336: 0x63B4,
+ 3337: 0x69FB,
+ 3338: 0x4F43,
+ 3339: 0x6F2C,
+ 3340: 0x67D8,
+ 3341: 0x8FBB,
+ 3342: 0x8526,
+ 3343: 0x7DB4,
+ 3344: 0x9354,
+ 3345: 0x693F,
+ 3346: 0x6F70,
+ 3347: 0x576A,
+ 3348: 0x58F7,
+ 3349: 0x5B2C,
+ 3350: 0x7D2C,
+ 3351: 0x722A,
+ 3352: 0x540A,
+ 3353: 0x91E3,
+ 3354: 0x9DB4,
+ 3355: 0x4EAD,
+ 3356: 0x4F4E,
+ 3357: 0x505C,
+ 3358: 0x5075,
+ 3359: 0x5243,
+ 3360: 0x8C9E,
+ 3361: 0x5448,
+ 3362: 0x5824,
+ 3363: 0x5B9A,
+ 3364: 0x5E1D,
+ 3365: 0x5E95,
+ 3366: 0x5EAD,
+ 3367: 0x5EF7,
+ 3368: 0x5F1F,
+ 3369: 0x608C,
+ 3370: 0x62B5,
+ 3371: 0x633A,
+ 3372: 0x63D0,
+ 3373: 0x68AF,
+ 3374: 0x6C40,
+ 3375: 0x7887,
+ 3376: 0x798E,
+ 3377: 0x7A0B,
+ 3378: 0x7DE0,
+ 3379: 0x8247,
+ 3380: 0x8A02,
+ 3381: 0x8AE6,
+ 3382: 0x8E44,
+ 3383: 0x9013,
+ 3384: 0x90B8,
+ 3385: 0x912D,
+ 3386: 0x91D8,
+ 3387: 0x9F0E,
+ 3388: 0x6CE5,
+ 3389: 0x6458,
+ 3390: 0x64E2,
+ 3391: 0x6575,
+ 3392: 0x6EF4,
+ 3393: 0x7684,
+ 3394: 0x7B1B,
+ 3395: 0x9069,
+ 3396: 0x93D1,
+ 3397: 0x6EBA,
+ 3398: 0x54F2,
+ 3399: 0x5FB9,
+ 3400: 0x64A4,
+ 3401: 0x8F4D,
+ 3402: 0x8FED,
+ 3403: 0x9244,
+ 3404: 0x5178,
+ 3405: 0x586B,
+ 3406: 0x5929,
+ 3407: 0x5C55,
+ 3408: 0x5E97,
+ 3409: 0x6DFB,
+ 3410: 0x7E8F,
+ 3411: 0x751C,
+ 3412: 0x8CBC,
+ 3413: 0x8EE2,
+ 3414: 0x985B,
+ 3415: 0x70B9,
+ 3416: 0x4F1D,
+ 3417: 0x6BBF,
+ 3418: 0x6FB1,
+ 3419: 0x7530,
+ 3420: 0x96FB,
+ 3421: 0x514E,
+ 3422: 0x5410,
+ 3423: 0x5835,
+ 3424: 0x5857,
+ 3425: 0x59AC,
+ 3426: 0x5C60,
+ 3427: 0x5F92,
+ 3428: 0x6597,
+ 3429: 0x675C,
+ 3430: 0x6E21,
+ 3431: 0x767B,
+ 3432: 0x83DF,
+ 3433: 0x8CED,
+ 3434: 0x9014,
+ 3435: 0x90FD,
+ 3436: 0x934D,
+ 3437: 0x7825,
+ 3438: 0x783A,
+ 3439: 0x52AA,
+ 3440: 0x5EA6,
+ 3441: 0x571F,
+ 3442: 0x5974,
+ 3443: 0x6012,
+ 3444: 0x5012,
+ 3445: 0x515A,
+ 3446: 0x51AC,
+ 3447: 0x51CD,
+ 3448: 0x5200,
+ 3449: 0x5510,
+ 3450: 0x5854,
+ 3451: 0x5858,
+ 3452: 0x5957,
+ 3453: 0x5B95,
+ 3454: 0x5CF6,
+ 3455: 0x5D8B,
+ 3456: 0x60BC,
+ 3457: 0x6295,
+ 3458: 0x642D,
+ 3459: 0x6771,
+ 3460: 0x6843,
+ 3461: 0x68BC,
+ 3462: 0x68DF,
+ 3463: 0x76D7,
+ 3464: 0x6DD8,
+ 3465: 0x6E6F,
+ 3466: 0x6D9B,
+ 3467: 0x706F,
+ 3468: 0x71C8,
+ 3469: 0x5F53,
+ 3470: 0x75D8,
+ 3471: 0x7977,
+ 3472: 0x7B49,
+ 3473: 0x7B54,
+ 3474: 0x7B52,
+ 3475: 0x7CD6,
+ 3476: 0x7D71,
+ 3477: 0x5230,
+ 3478: 0x8463,
+ 3479: 0x8569,
+ 3480: 0x85E4,
+ 3481: 0x8A0E,
+ 3482: 0x8B04,
+ 3483: 0x8C46,
+ 3484: 0x8E0F,
+ 3485: 0x9003,
+ 3486: 0x900F,
+ 3487: 0x9419,
+ 3488: 0x9676,
+ 3489: 0x982D,
+ 3490: 0x9A30,
+ 3491: 0x95D8,
+ 3492: 0x50CD,
+ 3493: 0x52D5,
+ 3494: 0x540C,
+ 3495: 0x5802,
+ 3496: 0x5C0E,
+ 3497: 0x61A7,
+ 3498: 0x649E,
+ 3499: 0x6D1E,
+ 3500: 0x77B3,
+ 3501: 0x7AE5,
+ 3502: 0x80F4,
+ 3503: 0x8404,
+ 3504: 0x9053,
+ 3505: 0x9285,
+ 3506: 0x5CE0,
+ 3507: 0x9D07,
+ 3508: 0x533F,
+ 3509: 0x5F97,
+ 3510: 0x5FB3,
+ 3511: 0x6D9C,
+ 3512: 0x7279,
+ 3513: 0x7763,
+ 3514: 0x79BF,
+ 3515: 0x7BE4,
+ 3516: 0x6BD2,
+ 3517: 0x72EC,
+ 3518: 0x8AAD,
+ 3519: 0x6803,
+ 3520: 0x6A61,
+ 3521: 0x51F8,
+ 3522: 0x7A81,
+ 3523: 0x6934,
+ 3524: 0x5C4A,
+ 3525: 0x9CF6,
+ 3526: 0x82EB,
+ 3527: 0x5BC5,
+ 3528: 0x9149,
+ 3529: 0x701E,
+ 3530: 0x5678,
+ 3531: 0x5C6F,
+ 3532: 0x60C7,
+ 3533: 0x6566,
+ 3534: 0x6C8C,
+ 3535: 0x8C5A,
+ 3536: 0x9041,
+ 3537: 0x9813,
+ 3538: 0x5451,
+ 3539: 0x66C7,
+ 3540: 0x920D,
+ 3541: 0x5948,
+ 3542: 0x90A3,
+ 3543: 0x5185,
+ 3544: 0x4E4D,
+ 3545: 0x51EA,
+ 3546: 0x8599,
+ 3547: 0x8B0E,
+ 3548: 0x7058,
+ 3549: 0x637A,
+ 3550: 0x934B,
+ 3551: 0x6962,
+ 3552: 0x99B4,
+ 3553: 0x7E04,
+ 3554: 0x7577,
+ 3555: 0x5357,
+ 3556: 0x6960,
+ 3557: 0x8EDF,
+ 3558: 0x96E3,
+ 3559: 0x6C5D,
+ 3560: 0x4E8C,
+ 3561: 0x5C3C,
+ 3562: 0x5F10,
+ 3563: 0x8FE9,
+ 3564: 0x5302,
+ 3565: 0x8CD1,
+ 3566: 0x8089,
+ 3567: 0x8679,
+ 3568: 0x5EFF,
+ 3569: 0x65E5,
+ 3570: 0x4E73,
+ 3571: 0x5165,
+ 3572: 0x5982,
+ 3573: 0x5C3F,
+ 3574: 0x97EE,
+ 3575: 0x4EFB,
+ 3576: 0x598A,
+ 3577: 0x5FCD,
+ 3578: 0x8A8D,
+ 3579: 0x6FE1,
+ 3580: 0x79B0,
+ 3581: 0x7962,
+ 3582: 0x5BE7,
+ 3583: 0x8471,
+ 3584: 0x732B,
+ 3585: 0x71B1,
+ 3586: 0x5E74,
+ 3587: 0x5FF5,
+ 3588: 0x637B,
+ 3589: 0x649A,
+ 3590: 0x71C3,
+ 3591: 0x7C98,
+ 3592: 0x4E43,
+ 3593: 0x5EFC,
+ 3594: 0x4E4B,
+ 3595: 0x57DC,
+ 3596: 0x56A2,
+ 3597: 0x60A9,
+ 3598: 0x6FC3,
+ 3599: 0x7D0D,
+ 3600: 0x80FD,
+ 3601: 0x8133,
+ 3602: 0x81BF,
+ 3603: 0x8FB2,
+ 3604: 0x8997,
+ 3605: 0x86A4,
+ 3606: 0x5DF4,
+ 3607: 0x628A,
+ 3608: 0x64AD,
+ 3609: 0x8987,
+ 3610: 0x6777,
+ 3611: 0x6CE2,
+ 3612: 0x6D3E,
+ 3613: 0x7436,
+ 3614: 0x7834,
+ 3615: 0x5A46,
+ 3616: 0x7F75,
+ 3617: 0x82AD,
+ 3618: 0x99AC,
+ 3619: 0x4FF3,
+ 3620: 0x5EC3,
+ 3621: 0x62DD,
+ 3622: 0x6392,
+ 3623: 0x6557,
+ 3624: 0x676F,
+ 3625: 0x76C3,
+ 3626: 0x724C,
+ 3627: 0x80CC,
+ 3628: 0x80BA,
+ 3629: 0x8F29,
+ 3630: 0x914D,
+ 3631: 0x500D,
+ 3632: 0x57F9,
+ 3633: 0x5A92,
+ 3634: 0x6885,
+ 3635: 0x6973,
+ 3636: 0x7164,
+ 3637: 0x72FD,
+ 3638: 0x8CB7,
+ 3639: 0x58F2,
+ 3640: 0x8CE0,
+ 3641: 0x966A,
+ 3642: 0x9019,
+ 3643: 0x877F,
+ 3644: 0x79E4,
+ 3645: 0x77E7,
+ 3646: 0x8429,
+ 3647: 0x4F2F,
+ 3648: 0x5265,
+ 3649: 0x535A,
+ 3650: 0x62CD,
+ 3651: 0x67CF,
+ 3652: 0x6CCA,
+ 3653: 0x767D,
+ 3654: 0x7B94,
+ 3655: 0x7C95,
+ 3656: 0x8236,
+ 3657: 0x8584,
+ 3658: 0x8FEB,
+ 3659: 0x66DD,
+ 3660: 0x6F20,
+ 3661: 0x7206,
+ 3662: 0x7E1B,
+ 3663: 0x83AB,
+ 3664: 0x99C1,
+ 3665: 0x9EA6,
+ 3666: 0x51FD,
+ 3667: 0x7BB1,
+ 3668: 0x7872,
+ 3669: 0x7BB8,
+ 3670: 0x8087,
+ 3671: 0x7B48,
+ 3672: 0x6AE8,
+ 3673: 0x5E61,
+ 3674: 0x808C,
+ 3675: 0x7551,
+ 3676: 0x7560,
+ 3677: 0x516B,
+ 3678: 0x9262,
+ 3679: 0x6E8C,
+ 3680: 0x767A,
+ 3681: 0x9197,
+ 3682: 0x9AEA,
+ 3683: 0x4F10,
+ 3684: 0x7F70,
+ 3685: 0x629C,
+ 3686: 0x7B4F,
+ 3687: 0x95A5,
+ 3688: 0x9CE9,
+ 3689: 0x567A,
+ 3690: 0x5859,
+ 3691: 0x86E4,
+ 3692: 0x96BC,
+ 3693: 0x4F34,
+ 3694: 0x5224,
+ 3695: 0x534A,
+ 3696: 0x53CD,
+ 3697: 0x53DB,
+ 3698: 0x5E06,
+ 3699: 0x642C,
+ 3700: 0x6591,
+ 3701: 0x677F,
+ 3702: 0x6C3E,
+ 3703: 0x6C4E,
+ 3704: 0x7248,
+ 3705: 0x72AF,
+ 3706: 0x73ED,
+ 3707: 0x7554,
+ 3708: 0x7E41,
+ 3709: 0x822C,
+ 3710: 0x85E9,
+ 3711: 0x8CA9,
+ 3712: 0x7BC4,
+ 3713: 0x91C6,
+ 3714: 0x7169,
+ 3715: 0x9812,
+ 3716: 0x98EF,
+ 3717: 0x633D,
+ 3718: 0x6669,
+ 3719: 0x756A,
+ 3720: 0x76E4,
+ 3721: 0x78D0,
+ 3722: 0x8543,
+ 3723: 0x86EE,
+ 3724: 0x532A,
+ 3725: 0x5351,
+ 3726: 0x5426,
+ 3727: 0x5983,
+ 3728: 0x5E87,
+ 3729: 0x5F7C,
+ 3730: 0x60B2,
+ 3731: 0x6249,
+ 3732: 0x6279,
+ 3733: 0x62AB,
+ 3734: 0x6590,
+ 3735: 0x6BD4,
+ 3736: 0x6CCC,
+ 3737: 0x75B2,
+ 3738: 0x76AE,
+ 3739: 0x7891,
+ 3740: 0x79D8,
+ 3741: 0x7DCB,
+ 3742: 0x7F77,
+ 3743: 0x80A5,
+ 3744: 0x88AB,
+ 3745: 0x8AB9,
+ 3746: 0x8CBB,
+ 3747: 0x907F,
+ 3748: 0x975E,
+ 3749: 0x98DB,
+ 3750: 0x6A0B,
+ 3751: 0x7C38,
+ 3752: 0x5099,
+ 3753: 0x5C3E,
+ 3754: 0x5FAE,
+ 3755: 0x6787,
+ 3756: 0x6BD8,
+ 3757: 0x7435,
+ 3758: 0x7709,
+ 3759: 0x7F8E,
+ 3760: 0x9F3B,
+ 3761: 0x67CA,
+ 3762: 0x7A17,
+ 3763: 0x5339,
+ 3764: 0x758B,
+ 3765: 0x9AED,
+ 3766: 0x5F66,
+ 3767: 0x819D,
+ 3768: 0x83F1,
+ 3769: 0x8098,
+ 3770: 0x5F3C,
+ 3771: 0x5FC5,
+ 3772: 0x7562,
+ 3773: 0x7B46,
+ 3774: 0x903C,
+ 3775: 0x6867,
+ 3776: 0x59EB,
+ 3777: 0x5A9B,
+ 3778: 0x7D10,
+ 3779: 0x767E,
+ 3780: 0x8B2C,
+ 3781: 0x4FF5,
+ 3782: 0x5F6A,
+ 3783: 0x6A19,
+ 3784: 0x6C37,
+ 3785: 0x6F02,
+ 3786: 0x74E2,
+ 3787: 0x7968,
+ 3788: 0x8868,
+ 3789: 0x8A55,
+ 3790: 0x8C79,
+ 3791: 0x5EDF,
+ 3792: 0x63CF,
+ 3793: 0x75C5,
+ 3794: 0x79D2,
+ 3795: 0x82D7,
+ 3796: 0x9328,
+ 3797: 0x92F2,
+ 3798: 0x849C,
+ 3799: 0x86ED,
+ 3800: 0x9C2D,
+ 3801: 0x54C1,
+ 3802: 0x5F6C,
+ 3803: 0x658C,
+ 3804: 0x6D5C,
+ 3805: 0x7015,
+ 3806: 0x8CA7,
+ 3807: 0x8CD3,
+ 3808: 0x983B,
+ 3809: 0x654F,
+ 3810: 0x74F6,
+ 3811: 0x4E0D,
+ 3812: 0x4ED8,
+ 3813: 0x57E0,
+ 3814: 0x592B,
+ 3815: 0x5A66,
+ 3816: 0x5BCC,
+ 3817: 0x51A8,
+ 3818: 0x5E03,
+ 3819: 0x5E9C,
+ 3820: 0x6016,
+ 3821: 0x6276,
+ 3822: 0x6577,
+ 3823: 0x65A7,
+ 3824: 0x666E,
+ 3825: 0x6D6E,
+ 3826: 0x7236,
+ 3827: 0x7B26,
+ 3828: 0x8150,
+ 3829: 0x819A,
+ 3830: 0x8299,
+ 3831: 0x8B5C,
+ 3832: 0x8CA0,
+ 3833: 0x8CE6,
+ 3834: 0x8D74,
+ 3835: 0x961C,
+ 3836: 0x9644,
+ 3837: 0x4FAE,
+ 3838: 0x64AB,
+ 3839: 0x6B66,
+ 3840: 0x821E,
+ 3841: 0x8461,
+ 3842: 0x856A,
+ 3843: 0x90E8,
+ 3844: 0x5C01,
+ 3845: 0x6953,
+ 3846: 0x98A8,
+ 3847: 0x847A,
+ 3848: 0x8557,
+ 3849: 0x4F0F,
+ 3850: 0x526F,
+ 3851: 0x5FA9,
+ 3852: 0x5E45,
+ 3853: 0x670D,
+ 3854: 0x798F,
+ 3855: 0x8179,
+ 3856: 0x8907,
+ 3857: 0x8986,
+ 3858: 0x6DF5,
+ 3859: 0x5F17,
+ 3860: 0x6255,
+ 3861: 0x6CB8,
+ 3862: 0x4ECF,
+ 3863: 0x7269,
+ 3864: 0x9B92,
+ 3865: 0x5206,
+ 3866: 0x543B,
+ 3867: 0x5674,
+ 3868: 0x58B3,
+ 3869: 0x61A4,
+ 3870: 0x626E,
+ 3871: 0x711A,
+ 3872: 0x596E,
+ 3873: 0x7C89,
+ 3874: 0x7CDE,
+ 3875: 0x7D1B,
+ 3876: 0x96F0,
+ 3877: 0x6587,
+ 3878: 0x805E,
+ 3879: 0x4E19,
+ 3880: 0x4F75,
+ 3881: 0x5175,
+ 3882: 0x5840,
+ 3883: 0x5E63,
+ 3884: 0x5E73,
+ 3885: 0x5F0A,
+ 3886: 0x67C4,
+ 3887: 0x4E26,
+ 3888: 0x853D,
+ 3889: 0x9589,
+ 3890: 0x965B,
+ 3891: 0x7C73,
+ 3892: 0x9801,
+ 3893: 0x50FB,
+ 3894: 0x58C1,
+ 3895: 0x7656,
+ 3896: 0x78A7,
+ 3897: 0x5225,
+ 3898: 0x77A5,
+ 3899: 0x8511,
+ 3900: 0x7B86,
+ 3901: 0x504F,
+ 3902: 0x5909,
+ 3903: 0x7247,
+ 3904: 0x7BC7,
+ 3905: 0x7DE8,
+ 3906: 0x8FBA,
+ 3907: 0x8FD4,
+ 3908: 0x904D,
+ 3909: 0x4FBF,
+ 3910: 0x52C9,
+ 3911: 0x5A29,
+ 3912: 0x5F01,
+ 3913: 0x97AD,
+ 3914: 0x4FDD,
+ 3915: 0x8217,
+ 3916: 0x92EA,
+ 3917: 0x5703,
+ 3918: 0x6355,
+ 3919: 0x6B69,
+ 3920: 0x752B,
+ 3921: 0x88DC,
+ 3922: 0x8F14,
+ 3923: 0x7A42,
+ 3924: 0x52DF,
+ 3925: 0x5893,
+ 3926: 0x6155,
+ 3927: 0x620A,
+ 3928: 0x66AE,
+ 3929: 0x6BCD,
+ 3930: 0x7C3F,
+ 3931: 0x83E9,
+ 3932: 0x5023,
+ 3933: 0x4FF8,
+ 3934: 0x5305,
+ 3935: 0x5446,
+ 3936: 0x5831,
+ 3937: 0x5949,
+ 3938: 0x5B9D,
+ 3939: 0x5CF0,
+ 3940: 0x5CEF,
+ 3941: 0x5D29,
+ 3942: 0x5E96,
+ 3943: 0x62B1,
+ 3944: 0x6367,
+ 3945: 0x653E,
+ 3946: 0x65B9,
+ 3947: 0x670B,
+ 3948: 0x6CD5,
+ 3949: 0x6CE1,
+ 3950: 0x70F9,
+ 3951: 0x7832,
+ 3952: 0x7E2B,
+ 3953: 0x80DE,
+ 3954: 0x82B3,
+ 3955: 0x840C,
+ 3956: 0x84EC,
+ 3957: 0x8702,
+ 3958: 0x8912,
+ 3959: 0x8A2A,
+ 3960: 0x8C4A,
+ 3961: 0x90A6,
+ 3962: 0x92D2,
+ 3963: 0x98FD,
+ 3964: 0x9CF3,
+ 3965: 0x9D6C,
+ 3966: 0x4E4F,
+ 3967: 0x4EA1,
+ 3968: 0x508D,
+ 3969: 0x5256,
+ 3970: 0x574A,
+ 3971: 0x59A8,
+ 3972: 0x5E3D,
+ 3973: 0x5FD8,
+ 3974: 0x5FD9,
+ 3975: 0x623F,
+ 3976: 0x66B4,
+ 3977: 0x671B,
+ 3978: 0x67D0,
+ 3979: 0x68D2,
+ 3980: 0x5192,
+ 3981: 0x7D21,
+ 3982: 0x80AA,
+ 3983: 0x81A8,
+ 3984: 0x8B00,
+ 3985: 0x8C8C,
+ 3986: 0x8CBF,
+ 3987: 0x927E,
+ 3988: 0x9632,
+ 3989: 0x5420,
+ 3990: 0x982C,
+ 3991: 0x5317,
+ 3992: 0x50D5,
+ 3993: 0x535C,
+ 3994: 0x58A8,
+ 3995: 0x64B2,
+ 3996: 0x6734,
+ 3997: 0x7267,
+ 3998: 0x7766,
+ 3999: 0x7A46,
+ 4000: 0x91E6,
+ 4001: 0x52C3,
+ 4002: 0x6CA1,
+ 4003: 0x6B86,
+ 4004: 0x5800,
+ 4005: 0x5E4C,
+ 4006: 0x5954,
+ 4007: 0x672C,
+ 4008: 0x7FFB,
+ 4009: 0x51E1,
+ 4010: 0x76C6,
+ 4011: 0x6469,
+ 4012: 0x78E8,
+ 4013: 0x9B54,
+ 4014: 0x9EBB,
+ 4015: 0x57CB,
+ 4016: 0x59B9,
+ 4017: 0x6627,
+ 4018: 0x679A,
+ 4019: 0x6BCE,
+ 4020: 0x54E9,
+ 4021: 0x69D9,
+ 4022: 0x5E55,
+ 4023: 0x819C,
+ 4024: 0x6795,
+ 4025: 0x9BAA,
+ 4026: 0x67FE,
+ 4027: 0x9C52,
+ 4028: 0x685D,
+ 4029: 0x4EA6,
+ 4030: 0x4FE3,
+ 4031: 0x53C8,
+ 4032: 0x62B9,
+ 4033: 0x672B,
+ 4034: 0x6CAB,
+ 4035: 0x8FC4,
+ 4036: 0x4FAD,
+ 4037: 0x7E6D,
+ 4038: 0x9EBF,
+ 4039: 0x4E07,
+ 4040: 0x6162,
+ 4041: 0x6E80,
+ 4042: 0x6F2B,
+ 4043: 0x8513,
+ 4044: 0x5473,
+ 4045: 0x672A,
+ 4046: 0x9B45,
+ 4047: 0x5DF3,
+ 4048: 0x7B95,
+ 4049: 0x5CAC,
+ 4050: 0x5BC6,
+ 4051: 0x871C,
+ 4052: 0x6E4A,
+ 4053: 0x84D1,
+ 4054: 0x7A14,
+ 4055: 0x8108,
+ 4056: 0x5999,
+ 4057: 0x7C8D,
+ 4058: 0x6C11,
+ 4059: 0x7720,
+ 4060: 0x52D9,
+ 4061: 0x5922,
+ 4062: 0x7121,
+ 4063: 0x725F,
+ 4064: 0x77DB,
+ 4065: 0x9727,
+ 4066: 0x9D61,
+ 4067: 0x690B,
+ 4068: 0x5A7F,
+ 4069: 0x5A18,
+ 4070: 0x51A5,
+ 4071: 0x540D,
+ 4072: 0x547D,
+ 4073: 0x660E,
+ 4074: 0x76DF,
+ 4075: 0x8FF7,
+ 4076: 0x9298,
+ 4077: 0x9CF4,
+ 4078: 0x59EA,
+ 4079: 0x725D,
+ 4080: 0x6EC5,
+ 4081: 0x514D,
+ 4082: 0x68C9,
+ 4083: 0x7DBF,
+ 4084: 0x7DEC,
+ 4085: 0x9762,
+ 4086: 0x9EBA,
+ 4087: 0x6478,
+ 4088: 0x6A21,
+ 4089: 0x8302,
+ 4090: 0x5984,
+ 4091: 0x5B5F,
+ 4092: 0x6BDB,
+ 4093: 0x731B,
+ 4094: 0x76F2,
+ 4095: 0x7DB2,
+ 4096: 0x8017,
+ 4097: 0x8499,
+ 4098: 0x5132,
+ 4099: 0x6728,
+ 4100: 0x9ED9,
+ 4101: 0x76EE,
+ 4102: 0x6762,
+ 4103: 0x52FF,
+ 4104: 0x9905,
+ 4105: 0x5C24,
+ 4106: 0x623B,
+ 4107: 0x7C7E,
+ 4108: 0x8CB0,
+ 4109: 0x554F,
+ 4110: 0x60B6,
+ 4111: 0x7D0B,
+ 4112: 0x9580,
+ 4113: 0x5301,
+ 4114: 0x4E5F,
+ 4115: 0x51B6,
+ 4116: 0x591C,
+ 4117: 0x723A,
+ 4118: 0x8036,
+ 4119: 0x91CE,
+ 4120: 0x5F25,
+ 4121: 0x77E2,
+ 4122: 0x5384,
+ 4123: 0x5F79,
+ 4124: 0x7D04,
+ 4125: 0x85AC,
+ 4126: 0x8A33,
+ 4127: 0x8E8D,
+ 4128: 0x9756,
+ 4129: 0x67F3,
+ 4130: 0x85AE,
+ 4131: 0x9453,
+ 4132: 0x6109,
+ 4133: 0x6108,
+ 4134: 0x6CB9,
+ 4135: 0x7652,
+ 4136: 0x8AED,
+ 4137: 0x8F38,
+ 4138: 0x552F,
+ 4139: 0x4F51,
+ 4140: 0x512A,
+ 4141: 0x52C7,
+ 4142: 0x53CB,
+ 4143: 0x5BA5,
+ 4144: 0x5E7D,
+ 4145: 0x60A0,
+ 4146: 0x6182,
+ 4147: 0x63D6,
+ 4148: 0x6709,
+ 4149: 0x67DA,
+ 4150: 0x6E67,
+ 4151: 0x6D8C,
+ 4152: 0x7336,
+ 4153: 0x7337,
+ 4154: 0x7531,
+ 4155: 0x7950,
+ 4156: 0x88D5,
+ 4157: 0x8A98,
+ 4158: 0x904A,
+ 4159: 0x9091,
+ 4160: 0x90F5,
+ 4161: 0x96C4,
+ 4162: 0x878D,
+ 4163: 0x5915,
+ 4164: 0x4E88,
+ 4165: 0x4F59,
+ 4166: 0x4E0E,
+ 4167: 0x8A89,
+ 4168: 0x8F3F,
+ 4169: 0x9810,
+ 4170: 0x50AD,
+ 4171: 0x5E7C,
+ 4172: 0x5996,
+ 4173: 0x5BB9,
+ 4174: 0x5EB8,
+ 4175: 0x63DA,
+ 4176: 0x63FA,
+ 4177: 0x64C1,
+ 4178: 0x66DC,
+ 4179: 0x694A,
+ 4180: 0x69D8,
+ 4181: 0x6D0B,
+ 4182: 0x6EB6,
+ 4183: 0x7194,
+ 4184: 0x7528,
+ 4185: 0x7AAF,
+ 4186: 0x7F8A,
+ 4187: 0x8000,
+ 4188: 0x8449,
+ 4189: 0x84C9,
+ 4190: 0x8981,
+ 4191: 0x8B21,
+ 4192: 0x8E0A,
+ 4193: 0x9065,
+ 4194: 0x967D,
+ 4195: 0x990A,
+ 4196: 0x617E,
+ 4197: 0x6291,
+ 4198: 0x6B32,
+ 4199: 0x6C83,
+ 4200: 0x6D74,
+ 4201: 0x7FCC,
+ 4202: 0x7FFC,
+ 4203: 0x6DC0,
+ 4204: 0x7F85,
+ 4205: 0x87BA,
+ 4206: 0x88F8,
+ 4207: 0x6765,
+ 4208: 0x83B1,
+ 4209: 0x983C,
+ 4210: 0x96F7,
+ 4211: 0x6D1B,
+ 4212: 0x7D61,
+ 4213: 0x843D,
+ 4214: 0x916A,
+ 4215: 0x4E71,
+ 4216: 0x5375,
+ 4217: 0x5D50,
+ 4218: 0x6B04,
+ 4219: 0x6FEB,
+ 4220: 0x85CD,
+ 4221: 0x862D,
+ 4222: 0x89A7,
+ 4223: 0x5229,
+ 4224: 0x540F,
+ 4225: 0x5C65,
+ 4226: 0x674E,
+ 4227: 0x68A8,
+ 4228: 0x7406,
+ 4229: 0x7483,
+ 4230: 0x75E2,
+ 4231: 0x88CF,
+ 4232: 0x88E1,
+ 4233: 0x91CC,
+ 4234: 0x96E2,
+ 4235: 0x9678,
+ 4236: 0x5F8B,
+ 4237: 0x7387,
+ 4238: 0x7ACB,
+ 4239: 0x844E,
+ 4240: 0x63A0,
+ 4241: 0x7565,
+ 4242: 0x5289,
+ 4243: 0x6D41,
+ 4244: 0x6E9C,
+ 4245: 0x7409,
+ 4246: 0x7559,
+ 4247: 0x786B,
+ 4248: 0x7C92,
+ 4249: 0x9686,
+ 4250: 0x7ADC,
+ 4251: 0x9F8D,
+ 4252: 0x4FB6,
+ 4253: 0x616E,
+ 4254: 0x65C5,
+ 4255: 0x865C,
+ 4256: 0x4E86,
+ 4257: 0x4EAE,
+ 4258: 0x50DA,
+ 4259: 0x4E21,
+ 4260: 0x51CC,
+ 4261: 0x5BEE,
+ 4262: 0x6599,
+ 4263: 0x6881,
+ 4264: 0x6DBC,
+ 4265: 0x731F,
+ 4266: 0x7642,
+ 4267: 0x77AD,
+ 4268: 0x7A1C,
+ 4269: 0x7CE7,
+ 4270: 0x826F,
+ 4271: 0x8AD2,
+ 4272: 0x907C,
+ 4273: 0x91CF,
+ 4274: 0x9675,
+ 4275: 0x9818,
+ 4276: 0x529B,
+ 4277: 0x7DD1,
+ 4278: 0x502B,
+ 4279: 0x5398,
+ 4280: 0x6797,
+ 4281: 0x6DCB,
+ 4282: 0x71D0,
+ 4283: 0x7433,
+ 4284: 0x81E8,
+ 4285: 0x8F2A,
+ 4286: 0x96A3,
+ 4287: 0x9C57,
+ 4288: 0x9E9F,
+ 4289: 0x7460,
+ 4290: 0x5841,
+ 4291: 0x6D99,
+ 4292: 0x7D2F,
+ 4293: 0x985E,
+ 4294: 0x4EE4,
+ 4295: 0x4F36,
+ 4296: 0x4F8B,
+ 4297: 0x51B7,
+ 4298: 0x52B1,
+ 4299: 0x5DBA,
+ 4300: 0x601C,
+ 4301: 0x73B2,
+ 4302: 0x793C,
+ 4303: 0x82D3,
+ 4304: 0x9234,
+ 4305: 0x96B7,
+ 4306: 0x96F6,
+ 4307: 0x970A,
+ 4308: 0x9E97,
+ 4309: 0x9F62,
+ 4310: 0x66A6,
+ 4311: 0x6B74,
+ 4312: 0x5217,
+ 4313: 0x52A3,
+ 4314: 0x70C8,
+ 4315: 0x88C2,
+ 4316: 0x5EC9,
+ 4317: 0x604B,
+ 4318: 0x6190,
+ 4319: 0x6F23,
+ 4320: 0x7149,
+ 4321: 0x7C3E,
+ 4322: 0x7DF4,
+ 4323: 0x806F,
+ 4324: 0x84EE,
+ 4325: 0x9023,
+ 4326: 0x932C,
+ 4327: 0x5442,
+ 4328: 0x9B6F,
+ 4329: 0x6AD3,
+ 4330: 0x7089,
+ 4331: 0x8CC2,
+ 4332: 0x8DEF,
+ 4333: 0x9732,
+ 4334: 0x52B4,
+ 4335: 0x5A41,
+ 4336: 0x5ECA,
+ 4337: 0x5F04,
+ 4338: 0x6717,
+ 4339: 0x697C,
+ 4340: 0x6994,
+ 4341: 0x6D6A,
+ 4342: 0x6F0F,
+ 4343: 0x7262,
+ 4344: 0x72FC,
+ 4345: 0x7BED,
+ 4346: 0x8001,
+ 4347: 0x807E,
+ 4348: 0x874B,
+ 4349: 0x90CE,
+ 4350: 0x516D,
+ 4351: 0x9E93,
+ 4352: 0x7984,
+ 4353: 0x808B,
+ 4354: 0x9332,
+ 4355: 0x8AD6,
+ 4356: 0x502D,
+ 4357: 0x548C,
+ 4358: 0x8A71,
+ 4359: 0x6B6A,
+ 4360: 0x8CC4,
+ 4361: 0x8107,
+ 4362: 0x60D1,
+ 4363: 0x67A0,
+ 4364: 0x9DF2,
+ 4365: 0x4E99,
+ 4366: 0x4E98,
+ 4367: 0x9C10,
+ 4368: 0x8A6B,
+ 4369: 0x85C1,
+ 4370: 0x8568,
+ 4371: 0x6900,
+ 4372: 0x6E7E,
+ 4373: 0x7897,
+ 4374: 0x8155,
+ 4418: 0x5F0C,
+ 4419: 0x4E10,
+ 4420: 0x4E15,
+ 4421: 0x4E2A,
+ 4422: 0x4E31,
+ 4423: 0x4E36,
+ 4424: 0x4E3C,
+ 4425: 0x4E3F,
+ 4426: 0x4E42,
+ 4427: 0x4E56,
+ 4428: 0x4E58,
+ 4429: 0x4E82,
+ 4430: 0x4E85,
+ 4431: 0x8C6B,
+ 4432: 0x4E8A,
+ 4433: 0x8212,
+ 4434: 0x5F0D,
+ 4435: 0x4E8E,
+ 4436: 0x4E9E,
+ 4437: 0x4E9F,
+ 4438: 0x4EA0,
+ 4439: 0x4EA2,
+ 4440: 0x4EB0,
+ 4441: 0x4EB3,
+ 4442: 0x4EB6,
+ 4443: 0x4ECE,
+ 4444: 0x4ECD,
+ 4445: 0x4EC4,
+ 4446: 0x4EC6,
+ 4447: 0x4EC2,
+ 4448: 0x4ED7,
+ 4449: 0x4EDE,
+ 4450: 0x4EED,
+ 4451: 0x4EDF,
+ 4452: 0x4EF7,
+ 4453: 0x4F09,
+ 4454: 0x4F5A,
+ 4455: 0x4F30,
+ 4456: 0x4F5B,
+ 4457: 0x4F5D,
+ 4458: 0x4F57,
+ 4459: 0x4F47,
+ 4460: 0x4F76,
+ 4461: 0x4F88,
+ 4462: 0x4F8F,
+ 4463: 0x4F98,
+ 4464: 0x4F7B,
+ 4465: 0x4F69,
+ 4466: 0x4F70,
+ 4467: 0x4F91,
+ 4468: 0x4F6F,
+ 4469: 0x4F86,
+ 4470: 0x4F96,
+ 4471: 0x5118,
+ 4472: 0x4FD4,
+ 4473: 0x4FDF,
+ 4474: 0x4FCE,
+ 4475: 0x4FD8,
+ 4476: 0x4FDB,
+ 4477: 0x4FD1,
+ 4478: 0x4FDA,
+ 4479: 0x4FD0,
+ 4480: 0x4FE4,
+ 4481: 0x4FE5,
+ 4482: 0x501A,
+ 4483: 0x5028,
+ 4484: 0x5014,
+ 4485: 0x502A,
+ 4486: 0x5025,
+ 4487: 0x5005,
+ 4488: 0x4F1C,
+ 4489: 0x4FF6,
+ 4490: 0x5021,
+ 4491: 0x5029,
+ 4492: 0x502C,
+ 4493: 0x4FFE,
+ 4494: 0x4FEF,
+ 4495: 0x5011,
+ 4496: 0x5006,
+ 4497: 0x5043,
+ 4498: 0x5047,
+ 4499: 0x6703,
+ 4500: 0x5055,
+ 4501: 0x5050,
+ 4502: 0x5048,
+ 4503: 0x505A,
+ 4504: 0x5056,
+ 4505: 0x506C,
+ 4506: 0x5078,
+ 4507: 0x5080,
+ 4508: 0x509A,
+ 4509: 0x5085,
+ 4510: 0x50B4,
+ 4511: 0x50B2,
+ 4512: 0x50C9,
+ 4513: 0x50CA,
+ 4514: 0x50B3,
+ 4515: 0x50C2,
+ 4516: 0x50D6,
+ 4517: 0x50DE,
+ 4518: 0x50E5,
+ 4519: 0x50ED,
+ 4520: 0x50E3,
+ 4521: 0x50EE,
+ 4522: 0x50F9,
+ 4523: 0x50F5,
+ 4524: 0x5109,
+ 4525: 0x5101,
+ 4526: 0x5102,
+ 4527: 0x5116,
+ 4528: 0x5115,
+ 4529: 0x5114,
+ 4530: 0x511A,
+ 4531: 0x5121,
+ 4532: 0x513A,
+ 4533: 0x5137,
+ 4534: 0x513C,
+ 4535: 0x513B,
+ 4536: 0x513F,
+ 4537: 0x5140,
+ 4538: 0x5152,
+ 4539: 0x514C,
+ 4540: 0x5154,
+ 4541: 0x5162,
+ 4542: 0x7AF8,
+ 4543: 0x5169,
+ 4544: 0x516A,
+ 4545: 0x516E,
+ 4546: 0x5180,
+ 4547: 0x5182,
+ 4548: 0x56D8,
+ 4549: 0x518C,
+ 4550: 0x5189,
+ 4551: 0x518F,
+ 4552: 0x5191,
+ 4553: 0x5193,
+ 4554: 0x5195,
+ 4555: 0x5196,
+ 4556: 0x51A4,
+ 4557: 0x51A6,
+ 4558: 0x51A2,
+ 4559: 0x51A9,
+ 4560: 0x51AA,
+ 4561: 0x51AB,
+ 4562: 0x51B3,
+ 4563: 0x51B1,
+ 4564: 0x51B2,
+ 4565: 0x51B0,
+ 4566: 0x51B5,
+ 4567: 0x51BD,
+ 4568: 0x51C5,
+ 4569: 0x51C9,
+ 4570: 0x51DB,
+ 4571: 0x51E0,
+ 4572: 0x8655,
+ 4573: 0x51E9,
+ 4574: 0x51ED,
+ 4575: 0x51F0,
+ 4576: 0x51F5,
+ 4577: 0x51FE,
+ 4578: 0x5204,
+ 4579: 0x520B,
+ 4580: 0x5214,
+ 4581: 0x520E,
+ 4582: 0x5227,
+ 4583: 0x522A,
+ 4584: 0x522E,
+ 4585: 0x5233,
+ 4586: 0x5239,
+ 4587: 0x524F,
+ 4588: 0x5244,
+ 4589: 0x524B,
+ 4590: 0x524C,
+ 4591: 0x525E,
+ 4592: 0x5254,
+ 4593: 0x526A,
+ 4594: 0x5274,
+ 4595: 0x5269,
+ 4596: 0x5273,
+ 4597: 0x527F,
+ 4598: 0x527D,
+ 4599: 0x528D,
+ 4600: 0x5294,
+ 4601: 0x5292,
+ 4602: 0x5271,
+ 4603: 0x5288,
+ 4604: 0x5291,
+ 4605: 0x8FA8,
+ 4606: 0x8FA7,
+ 4607: 0x52AC,
+ 4608: 0x52AD,
+ 4609: 0x52BC,
+ 4610: 0x52B5,
+ 4611: 0x52C1,
+ 4612: 0x52CD,
+ 4613: 0x52D7,
+ 4614: 0x52DE,
+ 4615: 0x52E3,
+ 4616: 0x52E6,
+ 4617: 0x98ED,
+ 4618: 0x52E0,
+ 4619: 0x52F3,
+ 4620: 0x52F5,
+ 4621: 0x52F8,
+ 4622: 0x52F9,
+ 4623: 0x5306,
+ 4624: 0x5308,
+ 4625: 0x7538,
+ 4626: 0x530D,
+ 4627: 0x5310,
+ 4628: 0x530F,
+ 4629: 0x5315,
+ 4630: 0x531A,
+ 4631: 0x5323,
+ 4632: 0x532F,
+ 4633: 0x5331,
+ 4634: 0x5333,
+ 4635: 0x5338,
+ 4636: 0x5340,
+ 4637: 0x5346,
+ 4638: 0x5345,
+ 4639: 0x4E17,
+ 4640: 0x5349,
+ 4641: 0x534D,
+ 4642: 0x51D6,
+ 4643: 0x535E,
+ 4644: 0x5369,
+ 4645: 0x536E,
+ 4646: 0x5918,
+ 4647: 0x537B,
+ 4648: 0x5377,
+ 4649: 0x5382,
+ 4650: 0x5396,
+ 4651: 0x53A0,
+ 4652: 0x53A6,
+ 4653: 0x53A5,
+ 4654: 0x53AE,
+ 4655: 0x53B0,
+ 4656: 0x53B6,
+ 4657: 0x53C3,
+ 4658: 0x7C12,
+ 4659: 0x96D9,
+ 4660: 0x53DF,
+ 4661: 0x66FC,
+ 4662: 0x71EE,
+ 4663: 0x53EE,
+ 4664: 0x53E8,
+ 4665: 0x53ED,
+ 4666: 0x53FA,
+ 4667: 0x5401,
+ 4668: 0x543D,
+ 4669: 0x5440,
+ 4670: 0x542C,
+ 4671: 0x542D,
+ 4672: 0x543C,
+ 4673: 0x542E,
+ 4674: 0x5436,
+ 4675: 0x5429,
+ 4676: 0x541D,
+ 4677: 0x544E,
+ 4678: 0x548F,
+ 4679: 0x5475,
+ 4680: 0x548E,
+ 4681: 0x545F,
+ 4682: 0x5471,
+ 4683: 0x5477,
+ 4684: 0x5470,
+ 4685: 0x5492,
+ 4686: 0x547B,
+ 4687: 0x5480,
+ 4688: 0x5476,
+ 4689: 0x5484,
+ 4690: 0x5490,
+ 4691: 0x5486,
+ 4692: 0x54C7,
+ 4693: 0x54A2,
+ 4694: 0x54B8,
+ 4695: 0x54A5,
+ 4696: 0x54AC,
+ 4697: 0x54C4,
+ 4698: 0x54C8,
+ 4699: 0x54A8,
+ 4700: 0x54AB,
+ 4701: 0x54C2,
+ 4702: 0x54A4,
+ 4703: 0x54BE,
+ 4704: 0x54BC,
+ 4705: 0x54D8,
+ 4706: 0x54E5,
+ 4707: 0x54E6,
+ 4708: 0x550F,
+ 4709: 0x5514,
+ 4710: 0x54FD,
+ 4711: 0x54EE,
+ 4712: 0x54ED,
+ 4713: 0x54FA,
+ 4714: 0x54E2,
+ 4715: 0x5539,
+ 4716: 0x5540,
+ 4717: 0x5563,
+ 4718: 0x554C,
+ 4719: 0x552E,
+ 4720: 0x555C,
+ 4721: 0x5545,
+ 4722: 0x5556,
+ 4723: 0x5557,
+ 4724: 0x5538,
+ 4725: 0x5533,
+ 4726: 0x555D,
+ 4727: 0x5599,
+ 4728: 0x5580,
+ 4729: 0x54AF,
+ 4730: 0x558A,
+ 4731: 0x559F,
+ 4732: 0x557B,
+ 4733: 0x557E,
+ 4734: 0x5598,
+ 4735: 0x559E,
+ 4736: 0x55AE,
+ 4737: 0x557C,
+ 4738: 0x5583,
+ 4739: 0x55A9,
+ 4740: 0x5587,
+ 4741: 0x55A8,
+ 4742: 0x55DA,
+ 4743: 0x55C5,
+ 4744: 0x55DF,
+ 4745: 0x55C4,
+ 4746: 0x55DC,
+ 4747: 0x55E4,
+ 4748: 0x55D4,
+ 4749: 0x5614,
+ 4750: 0x55F7,
+ 4751: 0x5616,
+ 4752: 0x55FE,
+ 4753: 0x55FD,
+ 4754: 0x561B,
+ 4755: 0x55F9,
+ 4756: 0x564E,
+ 4757: 0x5650,
+ 4758: 0x71DF,
+ 4759: 0x5634,
+ 4760: 0x5636,
+ 4761: 0x5632,
+ 4762: 0x5638,
+ 4763: 0x566B,
+ 4764: 0x5664,
+ 4765: 0x562F,
+ 4766: 0x566C,
+ 4767: 0x566A,
+ 4768: 0x5686,
+ 4769: 0x5680,
+ 4770: 0x568A,
+ 4771: 0x56A0,
+ 4772: 0x5694,
+ 4773: 0x568F,
+ 4774: 0x56A5,
+ 4775: 0x56AE,
+ 4776: 0x56B6,
+ 4777: 0x56B4,
+ 4778: 0x56C2,
+ 4779: 0x56BC,
+ 4780: 0x56C1,
+ 4781: 0x56C3,
+ 4782: 0x56C0,
+ 4783: 0x56C8,
+ 4784: 0x56CE,
+ 4785: 0x56D1,
+ 4786: 0x56D3,
+ 4787: 0x56D7,
+ 4788: 0x56EE,
+ 4789: 0x56F9,
+ 4790: 0x5700,
+ 4791: 0x56FF,
+ 4792: 0x5704,
+ 4793: 0x5709,
+ 4794: 0x5708,
+ 4795: 0x570B,
+ 4796: 0x570D,
+ 4797: 0x5713,
+ 4798: 0x5718,
+ 4799: 0x5716,
+ 4800: 0x55C7,
+ 4801: 0x571C,
+ 4802: 0x5726,
+ 4803: 0x5737,
+ 4804: 0x5738,
+ 4805: 0x574E,
+ 4806: 0x573B,
+ 4807: 0x5740,
+ 4808: 0x574F,
+ 4809: 0x5769,
+ 4810: 0x57C0,
+ 4811: 0x5788,
+ 4812: 0x5761,
+ 4813: 0x577F,
+ 4814: 0x5789,
+ 4815: 0x5793,
+ 4816: 0x57A0,
+ 4817: 0x57B3,
+ 4818: 0x57A4,
+ 4819: 0x57AA,
+ 4820: 0x57B0,
+ 4821: 0x57C3,
+ 4822: 0x57C6,
+ 4823: 0x57D4,
+ 4824: 0x57D2,
+ 4825: 0x57D3,
+ 4826: 0x580A,
+ 4827: 0x57D6,
+ 4828: 0x57E3,
+ 4829: 0x580B,
+ 4830: 0x5819,
+ 4831: 0x581D,
+ 4832: 0x5872,
+ 4833: 0x5821,
+ 4834: 0x5862,
+ 4835: 0x584B,
+ 4836: 0x5870,
+ 4837: 0x6BC0,
+ 4838: 0x5852,
+ 4839: 0x583D,
+ 4840: 0x5879,
+ 4841: 0x5885,
+ 4842: 0x58B9,
+ 4843: 0x589F,
+ 4844: 0x58AB,
+ 4845: 0x58BA,
+ 4846: 0x58DE,
+ 4847: 0x58BB,
+ 4848: 0x58B8,
+ 4849: 0x58AE,
+ 4850: 0x58C5,
+ 4851: 0x58D3,
+ 4852: 0x58D1,
+ 4853: 0x58D7,
+ 4854: 0x58D9,
+ 4855: 0x58D8,
+ 4856: 0x58E5,
+ 4857: 0x58DC,
+ 4858: 0x58E4,
+ 4859: 0x58DF,
+ 4860: 0x58EF,
+ 4861: 0x58FA,
+ 4862: 0x58F9,
+ 4863: 0x58FB,
+ 4864: 0x58FC,
+ 4865: 0x58FD,
+ 4866: 0x5902,
+ 4867: 0x590A,
+ 4868: 0x5910,
+ 4869: 0x591B,
+ 4870: 0x68A6,
+ 4871: 0x5925,
+ 4872: 0x592C,
+ 4873: 0x592D,
+ 4874: 0x5932,
+ 4875: 0x5938,
+ 4876: 0x593E,
+ 4877: 0x7AD2,
+ 4878: 0x5955,
+ 4879: 0x5950,
+ 4880: 0x594E,
+ 4881: 0x595A,
+ 4882: 0x5958,
+ 4883: 0x5962,
+ 4884: 0x5960,
+ 4885: 0x5967,
+ 4886: 0x596C,
+ 4887: 0x5969,
+ 4888: 0x5978,
+ 4889: 0x5981,
+ 4890: 0x599D,
+ 4891: 0x4F5E,
+ 4892: 0x4FAB,
+ 4893: 0x59A3,
+ 4894: 0x59B2,
+ 4895: 0x59C6,
+ 4896: 0x59E8,
+ 4897: 0x59DC,
+ 4898: 0x598D,
+ 4899: 0x59D9,
+ 4900: 0x59DA,
+ 4901: 0x5A25,
+ 4902: 0x5A1F,
+ 4903: 0x5A11,
+ 4904: 0x5A1C,
+ 4905: 0x5A09,
+ 4906: 0x5A1A,
+ 4907: 0x5A40,
+ 4908: 0x5A6C,
+ 4909: 0x5A49,
+ 4910: 0x5A35,
+ 4911: 0x5A36,
+ 4912: 0x5A62,
+ 4913: 0x5A6A,
+ 4914: 0x5A9A,
+ 4915: 0x5ABC,
+ 4916: 0x5ABE,
+ 4917: 0x5ACB,
+ 4918: 0x5AC2,
+ 4919: 0x5ABD,
+ 4920: 0x5AE3,
+ 4921: 0x5AD7,
+ 4922: 0x5AE6,
+ 4923: 0x5AE9,
+ 4924: 0x5AD6,
+ 4925: 0x5AFA,
+ 4926: 0x5AFB,
+ 4927: 0x5B0C,
+ 4928: 0x5B0B,
+ 4929: 0x5B16,
+ 4930: 0x5B32,
+ 4931: 0x5AD0,
+ 4932: 0x5B2A,
+ 4933: 0x5B36,
+ 4934: 0x5B3E,
+ 4935: 0x5B43,
+ 4936: 0x5B45,
+ 4937: 0x5B40,
+ 4938: 0x5B51,
+ 4939: 0x5B55,
+ 4940: 0x5B5A,
+ 4941: 0x5B5B,
+ 4942: 0x5B65,
+ 4943: 0x5B69,
+ 4944: 0x5B70,
+ 4945: 0x5B73,
+ 4946: 0x5B75,
+ 4947: 0x5B78,
+ 4948: 0x6588,
+ 4949: 0x5B7A,
+ 4950: 0x5B80,
+ 4951: 0x5B83,
+ 4952: 0x5BA6,
+ 4953: 0x5BB8,
+ 4954: 0x5BC3,
+ 4955: 0x5BC7,
+ 4956: 0x5BC9,
+ 4957: 0x5BD4,
+ 4958: 0x5BD0,
+ 4959: 0x5BE4,
+ 4960: 0x5BE6,
+ 4961: 0x5BE2,
+ 4962: 0x5BDE,
+ 4963: 0x5BE5,
+ 4964: 0x5BEB,
+ 4965: 0x5BF0,
+ 4966: 0x5BF6,
+ 4967: 0x5BF3,
+ 4968: 0x5C05,
+ 4969: 0x5C07,
+ 4970: 0x5C08,
+ 4971: 0x5C0D,
+ 4972: 0x5C13,
+ 4973: 0x5C20,
+ 4974: 0x5C22,
+ 4975: 0x5C28,
+ 4976: 0x5C38,
+ 4977: 0x5C39,
+ 4978: 0x5C41,
+ 4979: 0x5C46,
+ 4980: 0x5C4E,
+ 4981: 0x5C53,
+ 4982: 0x5C50,
+ 4983: 0x5C4F,
+ 4984: 0x5B71,
+ 4985: 0x5C6C,
+ 4986: 0x5C6E,
+ 4987: 0x4E62,
+ 4988: 0x5C76,
+ 4989: 0x5C79,
+ 4990: 0x5C8C,
+ 4991: 0x5C91,
+ 4992: 0x5C94,
+ 4993: 0x599B,
+ 4994: 0x5CAB,
+ 4995: 0x5CBB,
+ 4996: 0x5CB6,
+ 4997: 0x5CBC,
+ 4998: 0x5CB7,
+ 4999: 0x5CC5,
+ 5000: 0x5CBE,
+ 5001: 0x5CC7,
+ 5002: 0x5CD9,
+ 5003: 0x5CE9,
+ 5004: 0x5CFD,
+ 5005: 0x5CFA,
+ 5006: 0x5CED,
+ 5007: 0x5D8C,
+ 5008: 0x5CEA,
+ 5009: 0x5D0B,
+ 5010: 0x5D15,
+ 5011: 0x5D17,
+ 5012: 0x5D5C,
+ 5013: 0x5D1F,
+ 5014: 0x5D1B,
+ 5015: 0x5D11,
+ 5016: 0x5D14,
+ 5017: 0x5D22,
+ 5018: 0x5D1A,
+ 5019: 0x5D19,
+ 5020: 0x5D18,
+ 5021: 0x5D4C,
+ 5022: 0x5D52,
+ 5023: 0x5D4E,
+ 5024: 0x5D4B,
+ 5025: 0x5D6C,
+ 5026: 0x5D73,
+ 5027: 0x5D76,
+ 5028: 0x5D87,
+ 5029: 0x5D84,
+ 5030: 0x5D82,
+ 5031: 0x5DA2,
+ 5032: 0x5D9D,
+ 5033: 0x5DAC,
+ 5034: 0x5DAE,
+ 5035: 0x5DBD,
+ 5036: 0x5D90,
+ 5037: 0x5DB7,
+ 5038: 0x5DBC,
+ 5039: 0x5DC9,
+ 5040: 0x5DCD,
+ 5041: 0x5DD3,
+ 5042: 0x5DD2,
+ 5043: 0x5DD6,
+ 5044: 0x5DDB,
+ 5045: 0x5DEB,
+ 5046: 0x5DF2,
+ 5047: 0x5DF5,
+ 5048: 0x5E0B,
+ 5049: 0x5E1A,
+ 5050: 0x5E19,
+ 5051: 0x5E11,
+ 5052: 0x5E1B,
+ 5053: 0x5E36,
+ 5054: 0x5E37,
+ 5055: 0x5E44,
+ 5056: 0x5E43,
+ 5057: 0x5E40,
+ 5058: 0x5E4E,
+ 5059: 0x5E57,
+ 5060: 0x5E54,
+ 5061: 0x5E5F,
+ 5062: 0x5E62,
+ 5063: 0x5E64,
+ 5064: 0x5E47,
+ 5065: 0x5E75,
+ 5066: 0x5E76,
+ 5067: 0x5E7A,
+ 5068: 0x9EBC,
+ 5069: 0x5E7F,
+ 5070: 0x5EA0,
+ 5071: 0x5EC1,
+ 5072: 0x5EC2,
+ 5073: 0x5EC8,
+ 5074: 0x5ED0,
+ 5075: 0x5ECF,
+ 5076: 0x5ED6,
+ 5077: 0x5EE3,
+ 5078: 0x5EDD,
+ 5079: 0x5EDA,
+ 5080: 0x5EDB,
+ 5081: 0x5EE2,
+ 5082: 0x5EE1,
+ 5083: 0x5EE8,
+ 5084: 0x5EE9,
+ 5085: 0x5EEC,
+ 5086: 0x5EF1,
+ 5087: 0x5EF3,
+ 5088: 0x5EF0,
+ 5089: 0x5EF4,
+ 5090: 0x5EF8,
+ 5091: 0x5EFE,
+ 5092: 0x5F03,
+ 5093: 0x5F09,
+ 5094: 0x5F5D,
+ 5095: 0x5F5C,
+ 5096: 0x5F0B,
+ 5097: 0x5F11,
+ 5098: 0x5F16,
+ 5099: 0x5F29,
+ 5100: 0x5F2D,
+ 5101: 0x5F38,
+ 5102: 0x5F41,
+ 5103: 0x5F48,
+ 5104: 0x5F4C,
+ 5105: 0x5F4E,
+ 5106: 0x5F2F,
+ 5107: 0x5F51,
+ 5108: 0x5F56,
+ 5109: 0x5F57,
+ 5110: 0x5F59,
+ 5111: 0x5F61,
+ 5112: 0x5F6D,
+ 5113: 0x5F73,
+ 5114: 0x5F77,
+ 5115: 0x5F83,
+ 5116: 0x5F82,
+ 5117: 0x5F7F,
+ 5118: 0x5F8A,
+ 5119: 0x5F88,
+ 5120: 0x5F91,
+ 5121: 0x5F87,
+ 5122: 0x5F9E,
+ 5123: 0x5F99,
+ 5124: 0x5F98,
+ 5125: 0x5FA0,
+ 5126: 0x5FA8,
+ 5127: 0x5FAD,
+ 5128: 0x5FBC,
+ 5129: 0x5FD6,
+ 5130: 0x5FFB,
+ 5131: 0x5FE4,
+ 5132: 0x5FF8,
+ 5133: 0x5FF1,
+ 5134: 0x5FDD,
+ 5135: 0x60B3,
+ 5136: 0x5FFF,
+ 5137: 0x6021,
+ 5138: 0x6060,
+ 5139: 0x6019,
+ 5140: 0x6010,
+ 5141: 0x6029,
+ 5142: 0x600E,
+ 5143: 0x6031,
+ 5144: 0x601B,
+ 5145: 0x6015,
+ 5146: 0x602B,
+ 5147: 0x6026,
+ 5148: 0x600F,
+ 5149: 0x603A,
+ 5150: 0x605A,
+ 5151: 0x6041,
+ 5152: 0x606A,
+ 5153: 0x6077,
+ 5154: 0x605F,
+ 5155: 0x604A,
+ 5156: 0x6046,
+ 5157: 0x604D,
+ 5158: 0x6063,
+ 5159: 0x6043,
+ 5160: 0x6064,
+ 5161: 0x6042,
+ 5162: 0x606C,
+ 5163: 0x606B,
+ 5164: 0x6059,
+ 5165: 0x6081,
+ 5166: 0x608D,
+ 5167: 0x60E7,
+ 5168: 0x6083,
+ 5169: 0x609A,
+ 5170: 0x6084,
+ 5171: 0x609B,
+ 5172: 0x6096,
+ 5173: 0x6097,
+ 5174: 0x6092,
+ 5175: 0x60A7,
+ 5176: 0x608B,
+ 5177: 0x60E1,
+ 5178: 0x60B8,
+ 5179: 0x60E0,
+ 5180: 0x60D3,
+ 5181: 0x60B4,
+ 5182: 0x5FF0,
+ 5183: 0x60BD,
+ 5184: 0x60C6,
+ 5185: 0x60B5,
+ 5186: 0x60D8,
+ 5187: 0x614D,
+ 5188: 0x6115,
+ 5189: 0x6106,
+ 5190: 0x60F6,
+ 5191: 0x60F7,
+ 5192: 0x6100,
+ 5193: 0x60F4,
+ 5194: 0x60FA,
+ 5195: 0x6103,
+ 5196: 0x6121,
+ 5197: 0x60FB,
+ 5198: 0x60F1,
+ 5199: 0x610D,
+ 5200: 0x610E,
+ 5201: 0x6147,
+ 5202: 0x613E,
+ 5203: 0x6128,
+ 5204: 0x6127,
+ 5205: 0x614A,
+ 5206: 0x613F,
+ 5207: 0x613C,
+ 5208: 0x612C,
+ 5209: 0x6134,
+ 5210: 0x613D,
+ 5211: 0x6142,
+ 5212: 0x6144,
+ 5213: 0x6173,
+ 5214: 0x6177,
+ 5215: 0x6158,
+ 5216: 0x6159,
+ 5217: 0x615A,
+ 5218: 0x616B,
+ 5219: 0x6174,
+ 5220: 0x616F,
+ 5221: 0x6165,
+ 5222: 0x6171,
+ 5223: 0x615F,
+ 5224: 0x615D,
+ 5225: 0x6153,
+ 5226: 0x6175,
+ 5227: 0x6199,
+ 5228: 0x6196,
+ 5229: 0x6187,
+ 5230: 0x61AC,
+ 5231: 0x6194,
+ 5232: 0x619A,
+ 5233: 0x618A,
+ 5234: 0x6191,
+ 5235: 0x61AB,
+ 5236: 0x61AE,
+ 5237: 0x61CC,
+ 5238: 0x61CA,
+ 5239: 0x61C9,
+ 5240: 0x61F7,
+ 5241: 0x61C8,
+ 5242: 0x61C3,
+ 5243: 0x61C6,
+ 5244: 0x61BA,
+ 5245: 0x61CB,
+ 5246: 0x7F79,
+ 5247: 0x61CD,
+ 5248: 0x61E6,
+ 5249: 0x61E3,
+ 5250: 0x61F6,
+ 5251: 0x61FA,
+ 5252: 0x61F4,
+ 5253: 0x61FF,
+ 5254: 0x61FD,
+ 5255: 0x61FC,
+ 5256: 0x61FE,
+ 5257: 0x6200,
+ 5258: 0x6208,
+ 5259: 0x6209,
+ 5260: 0x620D,
+ 5261: 0x620C,
+ 5262: 0x6214,
+ 5263: 0x621B,
+ 5264: 0x621E,
+ 5265: 0x6221,
+ 5266: 0x622A,
+ 5267: 0x622E,
+ 5268: 0x6230,
+ 5269: 0x6232,
+ 5270: 0x6233,
+ 5271: 0x6241,
+ 5272: 0x624E,
+ 5273: 0x625E,
+ 5274: 0x6263,
+ 5275: 0x625B,
+ 5276: 0x6260,
+ 5277: 0x6268,
+ 5278: 0x627C,
+ 5279: 0x6282,
+ 5280: 0x6289,
+ 5281: 0x627E,
+ 5282: 0x6292,
+ 5283: 0x6293,
+ 5284: 0x6296,
+ 5285: 0x62D4,
+ 5286: 0x6283,
+ 5287: 0x6294,
+ 5288: 0x62D7,
+ 5289: 0x62D1,
+ 5290: 0x62BB,
+ 5291: 0x62CF,
+ 5292: 0x62FF,
+ 5293: 0x62C6,
+ 5294: 0x64D4,
+ 5295: 0x62C8,
+ 5296: 0x62DC,
+ 5297: 0x62CC,
+ 5298: 0x62CA,
+ 5299: 0x62C2,
+ 5300: 0x62C7,
+ 5301: 0x629B,
+ 5302: 0x62C9,
+ 5303: 0x630C,
+ 5304: 0x62EE,
+ 5305: 0x62F1,
+ 5306: 0x6327,
+ 5307: 0x6302,
+ 5308: 0x6308,
+ 5309: 0x62EF,
+ 5310: 0x62F5,
+ 5311: 0x6350,
+ 5312: 0x633E,
+ 5313: 0x634D,
+ 5314: 0x641C,
+ 5315: 0x634F,
+ 5316: 0x6396,
+ 5317: 0x638E,
+ 5318: 0x6380,
+ 5319: 0x63AB,
+ 5320: 0x6376,
+ 5321: 0x63A3,
+ 5322: 0x638F,
+ 5323: 0x6389,
+ 5324: 0x639F,
+ 5325: 0x63B5,
+ 5326: 0x636B,
+ 5327: 0x6369,
+ 5328: 0x63BE,
+ 5329: 0x63E9,
+ 5330: 0x63C0,
+ 5331: 0x63C6,
+ 5332: 0x63E3,
+ 5333: 0x63C9,
+ 5334: 0x63D2,
+ 5335: 0x63F6,
+ 5336: 0x63C4,
+ 5337: 0x6416,
+ 5338: 0x6434,
+ 5339: 0x6406,
+ 5340: 0x6413,
+ 5341: 0x6426,
+ 5342: 0x6436,
+ 5343: 0x651D,
+ 5344: 0x6417,
+ 5345: 0x6428,
+ 5346: 0x640F,
+ 5347: 0x6467,
+ 5348: 0x646F,
+ 5349: 0x6476,
+ 5350: 0x644E,
+ 5351: 0x652A,
+ 5352: 0x6495,
+ 5353: 0x6493,
+ 5354: 0x64A5,
+ 5355: 0x64A9,
+ 5356: 0x6488,
+ 5357: 0x64BC,
+ 5358: 0x64DA,
+ 5359: 0x64D2,
+ 5360: 0x64C5,
+ 5361: 0x64C7,
+ 5362: 0x64BB,
+ 5363: 0x64D8,
+ 5364: 0x64C2,
+ 5365: 0x64F1,
+ 5366: 0x64E7,
+ 5367: 0x8209,
+ 5368: 0x64E0,
+ 5369: 0x64E1,
+ 5370: 0x62AC,
+ 5371: 0x64E3,
+ 5372: 0x64EF,
+ 5373: 0x652C,
+ 5374: 0x64F6,
+ 5375: 0x64F4,
+ 5376: 0x64F2,
+ 5377: 0x64FA,
+ 5378: 0x6500,
+ 5379: 0x64FD,
+ 5380: 0x6518,
+ 5381: 0x651C,
+ 5382: 0x6505,
+ 5383: 0x6524,
+ 5384: 0x6523,
+ 5385: 0x652B,
+ 5386: 0x6534,
+ 5387: 0x6535,
+ 5388: 0x6537,
+ 5389: 0x6536,
+ 5390: 0x6538,
+ 5391: 0x754B,
+ 5392: 0x6548,
+ 5393: 0x6556,
+ 5394: 0x6555,
+ 5395: 0x654D,
+ 5396: 0x6558,
+ 5397: 0x655E,
+ 5398: 0x655D,
+ 5399: 0x6572,
+ 5400: 0x6578,
+ 5401: 0x6582,
+ 5402: 0x6583,
+ 5403: 0x8B8A,
+ 5404: 0x659B,
+ 5405: 0x659F,
+ 5406: 0x65AB,
+ 5407: 0x65B7,
+ 5408: 0x65C3,
+ 5409: 0x65C6,
+ 5410: 0x65C1,
+ 5411: 0x65C4,
+ 5412: 0x65CC,
+ 5413: 0x65D2,
+ 5414: 0x65DB,
+ 5415: 0x65D9,
+ 5416: 0x65E0,
+ 5417: 0x65E1,
+ 5418: 0x65F1,
+ 5419: 0x6772,
+ 5420: 0x660A,
+ 5421: 0x6603,
+ 5422: 0x65FB,
+ 5423: 0x6773,
+ 5424: 0x6635,
+ 5425: 0x6636,
+ 5426: 0x6634,
+ 5427: 0x661C,
+ 5428: 0x664F,
+ 5429: 0x6644,
+ 5430: 0x6649,
+ 5431: 0x6641,
+ 5432: 0x665E,
+ 5433: 0x665D,
+ 5434: 0x6664,
+ 5435: 0x6667,
+ 5436: 0x6668,
+ 5437: 0x665F,
+ 5438: 0x6662,
+ 5439: 0x6670,
+ 5440: 0x6683,
+ 5441: 0x6688,
+ 5442: 0x668E,
+ 5443: 0x6689,
+ 5444: 0x6684,
+ 5445: 0x6698,
+ 5446: 0x669D,
+ 5447: 0x66C1,
+ 5448: 0x66B9,
+ 5449: 0x66C9,
+ 5450: 0x66BE,
+ 5451: 0x66BC,
+ 5452: 0x66C4,
+ 5453: 0x66B8,
+ 5454: 0x66D6,
+ 5455: 0x66DA,
+ 5456: 0x66E0,
+ 5457: 0x663F,
+ 5458: 0x66E6,
+ 5459: 0x66E9,
+ 5460: 0x66F0,
+ 5461: 0x66F5,
+ 5462: 0x66F7,
+ 5463: 0x670F,
+ 5464: 0x6716,
+ 5465: 0x671E,
+ 5466: 0x6726,
+ 5467: 0x6727,
+ 5468: 0x9738,
+ 5469: 0x672E,
+ 5470: 0x673F,
+ 5471: 0x6736,
+ 5472: 0x6741,
+ 5473: 0x6738,
+ 5474: 0x6737,
+ 5475: 0x6746,
+ 5476: 0x675E,
+ 5477: 0x6760,
+ 5478: 0x6759,
+ 5479: 0x6763,
+ 5480: 0x6764,
+ 5481: 0x6789,
+ 5482: 0x6770,
+ 5483: 0x67A9,
+ 5484: 0x677C,
+ 5485: 0x676A,
+ 5486: 0x678C,
+ 5487: 0x678B,
+ 5488: 0x67A6,
+ 5489: 0x67A1,
+ 5490: 0x6785,
+ 5491: 0x67B7,
+ 5492: 0x67EF,
+ 5493: 0x67B4,
+ 5494: 0x67EC,
+ 5495: 0x67B3,
+ 5496: 0x67E9,
+ 5497: 0x67B8,
+ 5498: 0x67E4,
+ 5499: 0x67DE,
+ 5500: 0x67DD,
+ 5501: 0x67E2,
+ 5502: 0x67EE,
+ 5503: 0x67B9,
+ 5504: 0x67CE,
+ 5505: 0x67C6,
+ 5506: 0x67E7,
+ 5507: 0x6A9C,
+ 5508: 0x681E,
+ 5509: 0x6846,
+ 5510: 0x6829,
+ 5511: 0x6840,
+ 5512: 0x684D,
+ 5513: 0x6832,
+ 5514: 0x684E,
+ 5515: 0x68B3,
+ 5516: 0x682B,
+ 5517: 0x6859,
+ 5518: 0x6863,
+ 5519: 0x6877,
+ 5520: 0x687F,
+ 5521: 0x689F,
+ 5522: 0x688F,
+ 5523: 0x68AD,
+ 5524: 0x6894,
+ 5525: 0x689D,
+ 5526: 0x689B,
+ 5527: 0x6883,
+ 5528: 0x6AAE,
+ 5529: 0x68B9,
+ 5530: 0x6874,
+ 5531: 0x68B5,
+ 5532: 0x68A0,
+ 5533: 0x68BA,
+ 5534: 0x690F,
+ 5535: 0x688D,
+ 5536: 0x687E,
+ 5537: 0x6901,
+ 5538: 0x68CA,
+ 5539: 0x6908,
+ 5540: 0x68D8,
+ 5541: 0x6922,
+ 5542: 0x6926,
+ 5543: 0x68E1,
+ 5544: 0x690C,
+ 5545: 0x68CD,
+ 5546: 0x68D4,
+ 5547: 0x68E7,
+ 5548: 0x68D5,
+ 5549: 0x6936,
+ 5550: 0x6912,
+ 5551: 0x6904,
+ 5552: 0x68D7,
+ 5553: 0x68E3,
+ 5554: 0x6925,
+ 5555: 0x68F9,
+ 5556: 0x68E0,
+ 5557: 0x68EF,
+ 5558: 0x6928,
+ 5559: 0x692A,
+ 5560: 0x691A,
+ 5561: 0x6923,
+ 5562: 0x6921,
+ 5563: 0x68C6,
+ 5564: 0x6979,
+ 5565: 0x6977,
+ 5566: 0x695C,
+ 5567: 0x6978,
+ 5568: 0x696B,
+ 5569: 0x6954,
+ 5570: 0x697E,
+ 5571: 0x696E,
+ 5572: 0x6939,
+ 5573: 0x6974,
+ 5574: 0x693D,
+ 5575: 0x6959,
+ 5576: 0x6930,
+ 5577: 0x6961,
+ 5578: 0x695E,
+ 5579: 0x695D,
+ 5580: 0x6981,
+ 5581: 0x696A,
+ 5582: 0x69B2,
+ 5583: 0x69AE,
+ 5584: 0x69D0,
+ 5585: 0x69BF,
+ 5586: 0x69C1,
+ 5587: 0x69D3,
+ 5588: 0x69BE,
+ 5589: 0x69CE,
+ 5590: 0x5BE8,
+ 5591: 0x69CA,
+ 5592: 0x69DD,
+ 5593: 0x69BB,
+ 5594: 0x69C3,
+ 5595: 0x69A7,
+ 5596: 0x6A2E,
+ 5597: 0x6991,
+ 5598: 0x69A0,
+ 5599: 0x699C,
+ 5600: 0x6995,
+ 5601: 0x69B4,
+ 5602: 0x69DE,
+ 5603: 0x69E8,
+ 5604: 0x6A02,
+ 5605: 0x6A1B,
+ 5606: 0x69FF,
+ 5607: 0x6B0A,
+ 5608: 0x69F9,
+ 5609: 0x69F2,
+ 5610: 0x69E7,
+ 5611: 0x6A05,
+ 5612: 0x69B1,
+ 5613: 0x6A1E,
+ 5614: 0x69ED,
+ 5615: 0x6A14,
+ 5616: 0x69EB,
+ 5617: 0x6A0A,
+ 5618: 0x6A12,
+ 5619: 0x6AC1,
+ 5620: 0x6A23,
+ 5621: 0x6A13,
+ 5622: 0x6A44,
+ 5623: 0x6A0C,
+ 5624: 0x6A72,
+ 5625: 0x6A36,
+ 5626: 0x6A78,
+ 5627: 0x6A47,
+ 5628: 0x6A62,
+ 5629: 0x6A59,
+ 5630: 0x6A66,
+ 5631: 0x6A48,
+ 5632: 0x6A38,
+ 5633: 0x6A22,
+ 5634: 0x6A90,
+ 5635: 0x6A8D,
+ 5636: 0x6AA0,
+ 5637: 0x6A84,
+ 5638: 0x6AA2,
+ 5639: 0x6AA3,
+ 5640: 0x6A97,
+ 5641: 0x8617,
+ 5642: 0x6ABB,
+ 5643: 0x6AC3,
+ 5644: 0x6AC2,
+ 5645: 0x6AB8,
+ 5646: 0x6AB3,
+ 5647: 0x6AAC,
+ 5648: 0x6ADE,
+ 5649: 0x6AD1,
+ 5650: 0x6ADF,
+ 5651: 0x6AAA,
+ 5652: 0x6ADA,
+ 5653: 0x6AEA,
+ 5654: 0x6AFB,
+ 5655: 0x6B05,
+ 5656: 0x8616,
+ 5657: 0x6AFA,
+ 5658: 0x6B12,
+ 5659: 0x6B16,
+ 5660: 0x9B31,
+ 5661: 0x6B1F,
+ 5662: 0x6B38,
+ 5663: 0x6B37,
+ 5664: 0x76DC,
+ 5665: 0x6B39,
+ 5666: 0x98EE,
+ 5667: 0x6B47,
+ 5668: 0x6B43,
+ 5669: 0x6B49,
+ 5670: 0x6B50,
+ 5671: 0x6B59,
+ 5672: 0x6B54,
+ 5673: 0x6B5B,
+ 5674: 0x6B5F,
+ 5675: 0x6B61,
+ 5676: 0x6B78,
+ 5677: 0x6B79,
+ 5678: 0x6B7F,
+ 5679: 0x6B80,
+ 5680: 0x6B84,
+ 5681: 0x6B83,
+ 5682: 0x6B8D,
+ 5683: 0x6B98,
+ 5684: 0x6B95,
+ 5685: 0x6B9E,
+ 5686: 0x6BA4,
+ 5687: 0x6BAA,
+ 5688: 0x6BAB,
+ 5689: 0x6BAF,
+ 5690: 0x6BB2,
+ 5691: 0x6BB1,
+ 5692: 0x6BB3,
+ 5693: 0x6BB7,
+ 5694: 0x6BBC,
+ 5695: 0x6BC6,
+ 5696: 0x6BCB,
+ 5697: 0x6BD3,
+ 5698: 0x6BDF,
+ 5699: 0x6BEC,
+ 5700: 0x6BEB,
+ 5701: 0x6BF3,
+ 5702: 0x6BEF,
+ 5703: 0x9EBE,
+ 5704: 0x6C08,
+ 5705: 0x6C13,
+ 5706: 0x6C14,
+ 5707: 0x6C1B,
+ 5708: 0x6C24,
+ 5709: 0x6C23,
+ 5710: 0x6C5E,
+ 5711: 0x6C55,
+ 5712: 0x6C62,
+ 5713: 0x6C6A,
+ 5714: 0x6C82,
+ 5715: 0x6C8D,
+ 5716: 0x6C9A,
+ 5717: 0x6C81,
+ 5718: 0x6C9B,
+ 5719: 0x6C7E,
+ 5720: 0x6C68,
+ 5721: 0x6C73,
+ 5722: 0x6C92,
+ 5723: 0x6C90,
+ 5724: 0x6CC4,
+ 5725: 0x6CF1,
+ 5726: 0x6CD3,
+ 5727: 0x6CBD,
+ 5728: 0x6CD7,
+ 5729: 0x6CC5,
+ 5730: 0x6CDD,
+ 5731: 0x6CAE,
+ 5732: 0x6CB1,
+ 5733: 0x6CBE,
+ 5734: 0x6CBA,
+ 5735: 0x6CDB,
+ 5736: 0x6CEF,
+ 5737: 0x6CD9,
+ 5738: 0x6CEA,
+ 5739: 0x6D1F,
+ 5740: 0x884D,
+ 5741: 0x6D36,
+ 5742: 0x6D2B,
+ 5743: 0x6D3D,
+ 5744: 0x6D38,
+ 5745: 0x6D19,
+ 5746: 0x6D35,
+ 5747: 0x6D33,
+ 5748: 0x6D12,
+ 5749: 0x6D0C,
+ 5750: 0x6D63,
+ 5751: 0x6D93,
+ 5752: 0x6D64,
+ 5753: 0x6D5A,
+ 5754: 0x6D79,
+ 5755: 0x6D59,
+ 5756: 0x6D8E,
+ 5757: 0x6D95,
+ 5758: 0x6FE4,
+ 5759: 0x6D85,
+ 5760: 0x6DF9,
+ 5761: 0x6E15,
+ 5762: 0x6E0A,
+ 5763: 0x6DB5,
+ 5764: 0x6DC7,
+ 5765: 0x6DE6,
+ 5766: 0x6DB8,
+ 5767: 0x6DC6,
+ 5768: 0x6DEC,
+ 5769: 0x6DDE,
+ 5770: 0x6DCC,
+ 5771: 0x6DE8,
+ 5772: 0x6DD2,
+ 5773: 0x6DC5,
+ 5774: 0x6DFA,
+ 5775: 0x6DD9,
+ 5776: 0x6DE4,
+ 5777: 0x6DD5,
+ 5778: 0x6DEA,
+ 5779: 0x6DEE,
+ 5780: 0x6E2D,
+ 5781: 0x6E6E,
+ 5782: 0x6E2E,
+ 5783: 0x6E19,
+ 5784: 0x6E72,
+ 5785: 0x6E5F,
+ 5786: 0x6E3E,
+ 5787: 0x6E23,
+ 5788: 0x6E6B,
+ 5789: 0x6E2B,
+ 5790: 0x6E76,
+ 5791: 0x6E4D,
+ 5792: 0x6E1F,
+ 5793: 0x6E43,
+ 5794: 0x6E3A,
+ 5795: 0x6E4E,
+ 5796: 0x6E24,
+ 5797: 0x6EFF,
+ 5798: 0x6E1D,
+ 5799: 0x6E38,
+ 5800: 0x6E82,
+ 5801: 0x6EAA,
+ 5802: 0x6E98,
+ 5803: 0x6EC9,
+ 5804: 0x6EB7,
+ 5805: 0x6ED3,
+ 5806: 0x6EBD,
+ 5807: 0x6EAF,
+ 5808: 0x6EC4,
+ 5809: 0x6EB2,
+ 5810: 0x6ED4,
+ 5811: 0x6ED5,
+ 5812: 0x6E8F,
+ 5813: 0x6EA5,
+ 5814: 0x6EC2,
+ 5815: 0x6E9F,
+ 5816: 0x6F41,
+ 5817: 0x6F11,
+ 5818: 0x704C,
+ 5819: 0x6EEC,
+ 5820: 0x6EF8,
+ 5821: 0x6EFE,
+ 5822: 0x6F3F,
+ 5823: 0x6EF2,
+ 5824: 0x6F31,
+ 5825: 0x6EEF,
+ 5826: 0x6F32,
+ 5827: 0x6ECC,
+ 5828: 0x6F3E,
+ 5829: 0x6F13,
+ 5830: 0x6EF7,
+ 5831: 0x6F86,
+ 5832: 0x6F7A,
+ 5833: 0x6F78,
+ 5834: 0x6F81,
+ 5835: 0x6F80,
+ 5836: 0x6F6F,
+ 5837: 0x6F5B,
+ 5838: 0x6FF3,
+ 5839: 0x6F6D,
+ 5840: 0x6F82,
+ 5841: 0x6F7C,
+ 5842: 0x6F58,
+ 5843: 0x6F8E,
+ 5844: 0x6F91,
+ 5845: 0x6FC2,
+ 5846: 0x6F66,
+ 5847: 0x6FB3,
+ 5848: 0x6FA3,
+ 5849: 0x6FA1,
+ 5850: 0x6FA4,
+ 5851: 0x6FB9,
+ 5852: 0x6FC6,
+ 5853: 0x6FAA,
+ 5854: 0x6FDF,
+ 5855: 0x6FD5,
+ 5856: 0x6FEC,
+ 5857: 0x6FD4,
+ 5858: 0x6FD8,
+ 5859: 0x6FF1,
+ 5860: 0x6FEE,
+ 5861: 0x6FDB,
+ 5862: 0x7009,
+ 5863: 0x700B,
+ 5864: 0x6FFA,
+ 5865: 0x7011,
+ 5866: 0x7001,
+ 5867: 0x700F,
+ 5868: 0x6FFE,
+ 5869: 0x701B,
+ 5870: 0x701A,
+ 5871: 0x6F74,
+ 5872: 0x701D,
+ 5873: 0x7018,
+ 5874: 0x701F,
+ 5875: 0x7030,
+ 5876: 0x703E,
+ 5877: 0x7032,
+ 5878: 0x7051,
+ 5879: 0x7063,
+ 5880: 0x7099,
+ 5881: 0x7092,
+ 5882: 0x70AF,
+ 5883: 0x70F1,
+ 5884: 0x70AC,
+ 5885: 0x70B8,
+ 5886: 0x70B3,
+ 5887: 0x70AE,
+ 5888: 0x70DF,
+ 5889: 0x70CB,
+ 5890: 0x70DD,
+ 5891: 0x70D9,
+ 5892: 0x7109,
+ 5893: 0x70FD,
+ 5894: 0x711C,
+ 5895: 0x7119,
+ 5896: 0x7165,
+ 5897: 0x7155,
+ 5898: 0x7188,
+ 5899: 0x7166,
+ 5900: 0x7162,
+ 5901: 0x714C,
+ 5902: 0x7156,
+ 5903: 0x716C,
+ 5904: 0x718F,
+ 5905: 0x71FB,
+ 5906: 0x7184,
+ 5907: 0x7195,
+ 5908: 0x71A8,
+ 5909: 0x71AC,
+ 5910: 0x71D7,
+ 5911: 0x71B9,
+ 5912: 0x71BE,
+ 5913: 0x71D2,
+ 5914: 0x71C9,
+ 5915: 0x71D4,
+ 5916: 0x71CE,
+ 5917: 0x71E0,
+ 5918: 0x71EC,
+ 5919: 0x71E7,
+ 5920: 0x71F5,
+ 5921: 0x71FC,
+ 5922: 0x71F9,
+ 5923: 0x71FF,
+ 5924: 0x720D,
+ 5925: 0x7210,
+ 5926: 0x721B,
+ 5927: 0x7228,
+ 5928: 0x722D,
+ 5929: 0x722C,
+ 5930: 0x7230,
+ 5931: 0x7232,
+ 5932: 0x723B,
+ 5933: 0x723C,
+ 5934: 0x723F,
+ 5935: 0x7240,
+ 5936: 0x7246,
+ 5937: 0x724B,
+ 5938: 0x7258,
+ 5939: 0x7274,
+ 5940: 0x727E,
+ 5941: 0x7282,
+ 5942: 0x7281,
+ 5943: 0x7287,
+ 5944: 0x7292,
+ 5945: 0x7296,
+ 5946: 0x72A2,
+ 5947: 0x72A7,
+ 5948: 0x72B9,
+ 5949: 0x72B2,
+ 5950: 0x72C3,
+ 5951: 0x72C6,
+ 5952: 0x72C4,
+ 5953: 0x72CE,
+ 5954: 0x72D2,
+ 5955: 0x72E2,
+ 5956: 0x72E0,
+ 5957: 0x72E1,
+ 5958: 0x72F9,
+ 5959: 0x72F7,
+ 5960: 0x500F,
+ 5961: 0x7317,
+ 5962: 0x730A,
+ 5963: 0x731C,
+ 5964: 0x7316,
+ 5965: 0x731D,
+ 5966: 0x7334,
+ 5967: 0x732F,
+ 5968: 0x7329,
+ 5969: 0x7325,
+ 5970: 0x733E,
+ 5971: 0x734E,
+ 5972: 0x734F,
+ 5973: 0x9ED8,
+ 5974: 0x7357,
+ 5975: 0x736A,
+ 5976: 0x7368,
+ 5977: 0x7370,
+ 5978: 0x7378,
+ 5979: 0x7375,
+ 5980: 0x737B,
+ 5981: 0x737A,
+ 5982: 0x73C8,
+ 5983: 0x73B3,
+ 5984: 0x73CE,
+ 5985: 0x73BB,
+ 5986: 0x73C0,
+ 5987: 0x73E5,
+ 5988: 0x73EE,
+ 5989: 0x73DE,
+ 5990: 0x74A2,
+ 5991: 0x7405,
+ 5992: 0x746F,
+ 5993: 0x7425,
+ 5994: 0x73F8,
+ 5995: 0x7432,
+ 5996: 0x743A,
+ 5997: 0x7455,
+ 5998: 0x743F,
+ 5999: 0x745F,
+ 6000: 0x7459,
+ 6001: 0x7441,
+ 6002: 0x745C,
+ 6003: 0x7469,
+ 6004: 0x7470,
+ 6005: 0x7463,
+ 6006: 0x746A,
+ 6007: 0x7476,
+ 6008: 0x747E,
+ 6009: 0x748B,
+ 6010: 0x749E,
+ 6011: 0x74A7,
+ 6012: 0x74CA,
+ 6013: 0x74CF,
+ 6014: 0x74D4,
+ 6015: 0x73F1,
+ 6016: 0x74E0,
+ 6017: 0x74E3,
+ 6018: 0x74E7,
+ 6019: 0x74E9,
+ 6020: 0x74EE,
+ 6021: 0x74F2,
+ 6022: 0x74F0,
+ 6023: 0x74F1,
+ 6024: 0x74F8,
+ 6025: 0x74F7,
+ 6026: 0x7504,
+ 6027: 0x7503,
+ 6028: 0x7505,
+ 6029: 0x750C,
+ 6030: 0x750E,
+ 6031: 0x750D,
+ 6032: 0x7515,
+ 6033: 0x7513,
+ 6034: 0x751E,
+ 6035: 0x7526,
+ 6036: 0x752C,
+ 6037: 0x753C,
+ 6038: 0x7544,
+ 6039: 0x754D,
+ 6040: 0x754A,
+ 6041: 0x7549,
+ 6042: 0x755B,
+ 6043: 0x7546,
+ 6044: 0x755A,
+ 6045: 0x7569,
+ 6046: 0x7564,
+ 6047: 0x7567,
+ 6048: 0x756B,
+ 6049: 0x756D,
+ 6050: 0x7578,
+ 6051: 0x7576,
+ 6052: 0x7586,
+ 6053: 0x7587,
+ 6054: 0x7574,
+ 6055: 0x758A,
+ 6056: 0x7589,
+ 6057: 0x7582,
+ 6058: 0x7594,
+ 6059: 0x759A,
+ 6060: 0x759D,
+ 6061: 0x75A5,
+ 6062: 0x75A3,
+ 6063: 0x75C2,
+ 6064: 0x75B3,
+ 6065: 0x75C3,
+ 6066: 0x75B5,
+ 6067: 0x75BD,
+ 6068: 0x75B8,
+ 6069: 0x75BC,
+ 6070: 0x75B1,
+ 6071: 0x75CD,
+ 6072: 0x75CA,
+ 6073: 0x75D2,
+ 6074: 0x75D9,
+ 6075: 0x75E3,
+ 6076: 0x75DE,
+ 6077: 0x75FE,
+ 6078: 0x75FF,
+ 6079: 0x75FC,
+ 6080: 0x7601,
+ 6081: 0x75F0,
+ 6082: 0x75FA,
+ 6083: 0x75F2,
+ 6084: 0x75F3,
+ 6085: 0x760B,
+ 6086: 0x760D,
+ 6087: 0x7609,
+ 6088: 0x761F,
+ 6089: 0x7627,
+ 6090: 0x7620,
+ 6091: 0x7621,
+ 6092: 0x7622,
+ 6093: 0x7624,
+ 6094: 0x7634,
+ 6095: 0x7630,
+ 6096: 0x763B,
+ 6097: 0x7647,
+ 6098: 0x7648,
+ 6099: 0x7646,
+ 6100: 0x765C,
+ 6101: 0x7658,
+ 6102: 0x7661,
+ 6103: 0x7662,
+ 6104: 0x7668,
+ 6105: 0x7669,
+ 6106: 0x766A,
+ 6107: 0x7667,
+ 6108: 0x766C,
+ 6109: 0x7670,
+ 6110: 0x7672,
+ 6111: 0x7676,
+ 6112: 0x7678,
+ 6113: 0x767C,
+ 6114: 0x7680,
+ 6115: 0x7683,
+ 6116: 0x7688,
+ 6117: 0x768B,
+ 6118: 0x768E,
+ 6119: 0x7696,
+ 6120: 0x7693,
+ 6121: 0x7699,
+ 6122: 0x769A,
+ 6123: 0x76B0,
+ 6124: 0x76B4,
+ 6125: 0x76B8,
+ 6126: 0x76B9,
+ 6127: 0x76BA,
+ 6128: 0x76C2,
+ 6129: 0x76CD,
+ 6130: 0x76D6,
+ 6131: 0x76D2,
+ 6132: 0x76DE,
+ 6133: 0x76E1,
+ 6134: 0x76E5,
+ 6135: 0x76E7,
+ 6136: 0x76EA,
+ 6137: 0x862F,
+ 6138: 0x76FB,
+ 6139: 0x7708,
+ 6140: 0x7707,
+ 6141: 0x7704,
+ 6142: 0x7729,
+ 6143: 0x7724,
+ 6144: 0x771E,
+ 6145: 0x7725,
+ 6146: 0x7726,
+ 6147: 0x771B,
+ 6148: 0x7737,
+ 6149: 0x7738,
+ 6150: 0x7747,
+ 6151: 0x775A,
+ 6152: 0x7768,
+ 6153: 0x776B,
+ 6154: 0x775B,
+ 6155: 0x7765,
+ 6156: 0x777F,
+ 6157: 0x777E,
+ 6158: 0x7779,
+ 6159: 0x778E,
+ 6160: 0x778B,
+ 6161: 0x7791,
+ 6162: 0x77A0,
+ 6163: 0x779E,
+ 6164: 0x77B0,
+ 6165: 0x77B6,
+ 6166: 0x77B9,
+ 6167: 0x77BF,
+ 6168: 0x77BC,
+ 6169: 0x77BD,
+ 6170: 0x77BB,
+ 6171: 0x77C7,
+ 6172: 0x77CD,
+ 6173: 0x77D7,
+ 6174: 0x77DA,
+ 6175: 0x77DC,
+ 6176: 0x77E3,
+ 6177: 0x77EE,
+ 6178: 0x77FC,
+ 6179: 0x780C,
+ 6180: 0x7812,
+ 6181: 0x7926,
+ 6182: 0x7820,
+ 6183: 0x792A,
+ 6184: 0x7845,
+ 6185: 0x788E,
+ 6186: 0x7874,
+ 6187: 0x7886,
+ 6188: 0x787C,
+ 6189: 0x789A,
+ 6190: 0x788C,
+ 6191: 0x78A3,
+ 6192: 0x78B5,
+ 6193: 0x78AA,
+ 6194: 0x78AF,
+ 6195: 0x78D1,
+ 6196: 0x78C6,
+ 6197: 0x78CB,
+ 6198: 0x78D4,
+ 6199: 0x78BE,
+ 6200: 0x78BC,
+ 6201: 0x78C5,
+ 6202: 0x78CA,
+ 6203: 0x78EC,
+ 6204: 0x78E7,
+ 6205: 0x78DA,
+ 6206: 0x78FD,
+ 6207: 0x78F4,
+ 6208: 0x7907,
+ 6209: 0x7912,
+ 6210: 0x7911,
+ 6211: 0x7919,
+ 6212: 0x792C,
+ 6213: 0x792B,
+ 6214: 0x7940,
+ 6215: 0x7960,
+ 6216: 0x7957,
+ 6217: 0x795F,
+ 6218: 0x795A,
+ 6219: 0x7955,
+ 6220: 0x7953,
+ 6221: 0x797A,
+ 6222: 0x797F,
+ 6223: 0x798A,
+ 6224: 0x799D,
+ 6225: 0x79A7,
+ 6226: 0x9F4B,
+ 6227: 0x79AA,
+ 6228: 0x79AE,
+ 6229: 0x79B3,
+ 6230: 0x79B9,
+ 6231: 0x79BA,
+ 6232: 0x79C9,
+ 6233: 0x79D5,
+ 6234: 0x79E7,
+ 6235: 0x79EC,
+ 6236: 0x79E1,
+ 6237: 0x79E3,
+ 6238: 0x7A08,
+ 6239: 0x7A0D,
+ 6240: 0x7A18,
+ 6241: 0x7A19,
+ 6242: 0x7A20,
+ 6243: 0x7A1F,
+ 6244: 0x7980,
+ 6245: 0x7A31,
+ 6246: 0x7A3B,
+ 6247: 0x7A3E,
+ 6248: 0x7A37,
+ 6249: 0x7A43,
+ 6250: 0x7A57,
+ 6251: 0x7A49,
+ 6252: 0x7A61,
+ 6253: 0x7A62,
+ 6254: 0x7A69,
+ 6255: 0x9F9D,
+ 6256: 0x7A70,
+ 6257: 0x7A79,
+ 6258: 0x7A7D,
+ 6259: 0x7A88,
+ 6260: 0x7A97,
+ 6261: 0x7A95,
+ 6262: 0x7A98,
+ 6263: 0x7A96,
+ 6264: 0x7AA9,
+ 6265: 0x7AC8,
+ 6266: 0x7AB0,
+ 6267: 0x7AB6,
+ 6268: 0x7AC5,
+ 6269: 0x7AC4,
+ 6270: 0x7ABF,
+ 6271: 0x9083,
+ 6272: 0x7AC7,
+ 6273: 0x7ACA,
+ 6274: 0x7ACD,
+ 6275: 0x7ACF,
+ 6276: 0x7AD5,
+ 6277: 0x7AD3,
+ 6278: 0x7AD9,
+ 6279: 0x7ADA,
+ 6280: 0x7ADD,
+ 6281: 0x7AE1,
+ 6282: 0x7AE2,
+ 6283: 0x7AE6,
+ 6284: 0x7AED,
+ 6285: 0x7AF0,
+ 6286: 0x7B02,
+ 6287: 0x7B0F,
+ 6288: 0x7B0A,
+ 6289: 0x7B06,
+ 6290: 0x7B33,
+ 6291: 0x7B18,
+ 6292: 0x7B19,
+ 6293: 0x7B1E,
+ 6294: 0x7B35,
+ 6295: 0x7B28,
+ 6296: 0x7B36,
+ 6297: 0x7B50,
+ 6298: 0x7B7A,
+ 6299: 0x7B04,
+ 6300: 0x7B4D,
+ 6301: 0x7B0B,
+ 6302: 0x7B4C,
+ 6303: 0x7B45,
+ 6304: 0x7B75,
+ 6305: 0x7B65,
+ 6306: 0x7B74,
+ 6307: 0x7B67,
+ 6308: 0x7B70,
+ 6309: 0x7B71,
+ 6310: 0x7B6C,
+ 6311: 0x7B6E,
+ 6312: 0x7B9D,
+ 6313: 0x7B98,
+ 6314: 0x7B9F,
+ 6315: 0x7B8D,
+ 6316: 0x7B9C,
+ 6317: 0x7B9A,
+ 6318: 0x7B8B,
+ 6319: 0x7B92,
+ 6320: 0x7B8F,
+ 6321: 0x7B5D,
+ 6322: 0x7B99,
+ 6323: 0x7BCB,
+ 6324: 0x7BC1,
+ 6325: 0x7BCC,
+ 6326: 0x7BCF,
+ 6327: 0x7BB4,
+ 6328: 0x7BC6,
+ 6329: 0x7BDD,
+ 6330: 0x7BE9,
+ 6331: 0x7C11,
+ 6332: 0x7C14,
+ 6333: 0x7BE6,
+ 6334: 0x7BE5,
+ 6335: 0x7C60,
+ 6336: 0x7C00,
+ 6337: 0x7C07,
+ 6338: 0x7C13,
+ 6339: 0x7BF3,
+ 6340: 0x7BF7,
+ 6341: 0x7C17,
+ 6342: 0x7C0D,
+ 6343: 0x7BF6,
+ 6344: 0x7C23,
+ 6345: 0x7C27,
+ 6346: 0x7C2A,
+ 6347: 0x7C1F,
+ 6348: 0x7C37,
+ 6349: 0x7C2B,
+ 6350: 0x7C3D,
+ 6351: 0x7C4C,
+ 6352: 0x7C43,
+ 6353: 0x7C54,
+ 6354: 0x7C4F,
+ 6355: 0x7C40,
+ 6356: 0x7C50,
+ 6357: 0x7C58,
+ 6358: 0x7C5F,
+ 6359: 0x7C64,
+ 6360: 0x7C56,
+ 6361: 0x7C65,
+ 6362: 0x7C6C,
+ 6363: 0x7C75,
+ 6364: 0x7C83,
+ 6365: 0x7C90,
+ 6366: 0x7CA4,
+ 6367: 0x7CAD,
+ 6368: 0x7CA2,
+ 6369: 0x7CAB,
+ 6370: 0x7CA1,
+ 6371: 0x7CA8,
+ 6372: 0x7CB3,
+ 6373: 0x7CB2,
+ 6374: 0x7CB1,
+ 6375: 0x7CAE,
+ 6376: 0x7CB9,
+ 6377: 0x7CBD,
+ 6378: 0x7CC0,
+ 6379: 0x7CC5,
+ 6380: 0x7CC2,
+ 6381: 0x7CD8,
+ 6382: 0x7CD2,
+ 6383: 0x7CDC,
+ 6384: 0x7CE2,
+ 6385: 0x9B3B,
+ 6386: 0x7CEF,
+ 6387: 0x7CF2,
+ 6388: 0x7CF4,
+ 6389: 0x7CF6,
+ 6390: 0x7CFA,
+ 6391: 0x7D06,
+ 6392: 0x7D02,
+ 6393: 0x7D1C,
+ 6394: 0x7D15,
+ 6395: 0x7D0A,
+ 6396: 0x7D45,
+ 6397: 0x7D4B,
+ 6398: 0x7D2E,
+ 6399: 0x7D32,
+ 6400: 0x7D3F,
+ 6401: 0x7D35,
+ 6402: 0x7D46,
+ 6403: 0x7D73,
+ 6404: 0x7D56,
+ 6405: 0x7D4E,
+ 6406: 0x7D72,
+ 6407: 0x7D68,
+ 6408: 0x7D6E,
+ 6409: 0x7D4F,
+ 6410: 0x7D63,
+ 6411: 0x7D93,
+ 6412: 0x7D89,
+ 6413: 0x7D5B,
+ 6414: 0x7D8F,
+ 6415: 0x7D7D,
+ 6416: 0x7D9B,
+ 6417: 0x7DBA,
+ 6418: 0x7DAE,
+ 6419: 0x7DA3,
+ 6420: 0x7DB5,
+ 6421: 0x7DC7,
+ 6422: 0x7DBD,
+ 6423: 0x7DAB,
+ 6424: 0x7E3D,
+ 6425: 0x7DA2,
+ 6426: 0x7DAF,
+ 6427: 0x7DDC,
+ 6428: 0x7DB8,
+ 6429: 0x7D9F,
+ 6430: 0x7DB0,
+ 6431: 0x7DD8,
+ 6432: 0x7DDD,
+ 6433: 0x7DE4,
+ 6434: 0x7DDE,
+ 6435: 0x7DFB,
+ 6436: 0x7DF2,
+ 6437: 0x7DE1,
+ 6438: 0x7E05,
+ 6439: 0x7E0A,
+ 6440: 0x7E23,
+ 6441: 0x7E21,
+ 6442: 0x7E12,
+ 6443: 0x7E31,
+ 6444: 0x7E1F,
+ 6445: 0x7E09,
+ 6446: 0x7E0B,
+ 6447: 0x7E22,
+ 6448: 0x7E46,
+ 6449: 0x7E66,
+ 6450: 0x7E3B,
+ 6451: 0x7E35,
+ 6452: 0x7E39,
+ 6453: 0x7E43,
+ 6454: 0x7E37,
+ 6455: 0x7E32,
+ 6456: 0x7E3A,
+ 6457: 0x7E67,
+ 6458: 0x7E5D,
+ 6459: 0x7E56,
+ 6460: 0x7E5E,
+ 6461: 0x7E59,
+ 6462: 0x7E5A,
+ 6463: 0x7E79,
+ 6464: 0x7E6A,
+ 6465: 0x7E69,
+ 6466: 0x7E7C,
+ 6467: 0x7E7B,
+ 6468: 0x7E83,
+ 6469: 0x7DD5,
+ 6470: 0x7E7D,
+ 6471: 0x8FAE,
+ 6472: 0x7E7F,
+ 6473: 0x7E88,
+ 6474: 0x7E89,
+ 6475: 0x7E8C,
+ 6476: 0x7E92,
+ 6477: 0x7E90,
+ 6478: 0x7E93,
+ 6479: 0x7E94,
+ 6480: 0x7E96,
+ 6481: 0x7E8E,
+ 6482: 0x7E9B,
+ 6483: 0x7E9C,
+ 6484: 0x7F38,
+ 6485: 0x7F3A,
+ 6486: 0x7F45,
+ 6487: 0x7F4C,
+ 6488: 0x7F4D,
+ 6489: 0x7F4E,
+ 6490: 0x7F50,
+ 6491: 0x7F51,
+ 6492: 0x7F55,
+ 6493: 0x7F54,
+ 6494: 0x7F58,
+ 6495: 0x7F5F,
+ 6496: 0x7F60,
+ 6497: 0x7F68,
+ 6498: 0x7F69,
+ 6499: 0x7F67,
+ 6500: 0x7F78,
+ 6501: 0x7F82,
+ 6502: 0x7F86,
+ 6503: 0x7F83,
+ 6504: 0x7F88,
+ 6505: 0x7F87,
+ 6506: 0x7F8C,
+ 6507: 0x7F94,
+ 6508: 0x7F9E,
+ 6509: 0x7F9D,
+ 6510: 0x7F9A,
+ 6511: 0x7FA3,
+ 6512: 0x7FAF,
+ 6513: 0x7FB2,
+ 6514: 0x7FB9,
+ 6515: 0x7FAE,
+ 6516: 0x7FB6,
+ 6517: 0x7FB8,
+ 6518: 0x8B71,
+ 6519: 0x7FC5,
+ 6520: 0x7FC6,
+ 6521: 0x7FCA,
+ 6522: 0x7FD5,
+ 6523: 0x7FD4,
+ 6524: 0x7FE1,
+ 6525: 0x7FE6,
+ 6526: 0x7FE9,
+ 6527: 0x7FF3,
+ 6528: 0x7FF9,
+ 6529: 0x98DC,
+ 6530: 0x8006,
+ 6531: 0x8004,
+ 6532: 0x800B,
+ 6533: 0x8012,
+ 6534: 0x8018,
+ 6535: 0x8019,
+ 6536: 0x801C,
+ 6537: 0x8021,
+ 6538: 0x8028,
+ 6539: 0x803F,
+ 6540: 0x803B,
+ 6541: 0x804A,
+ 6542: 0x8046,
+ 6543: 0x8052,
+ 6544: 0x8058,
+ 6545: 0x805A,
+ 6546: 0x805F,
+ 6547: 0x8062,
+ 6548: 0x8068,
+ 6549: 0x8073,
+ 6550: 0x8072,
+ 6551: 0x8070,
+ 6552: 0x8076,
+ 6553: 0x8079,
+ 6554: 0x807D,
+ 6555: 0x807F,
+ 6556: 0x8084,
+ 6557: 0x8086,
+ 6558: 0x8085,
+ 6559: 0x809B,
+ 6560: 0x8093,
+ 6561: 0x809A,
+ 6562: 0x80AD,
+ 6563: 0x5190,
+ 6564: 0x80AC,
+ 6565: 0x80DB,
+ 6566: 0x80E5,
+ 6567: 0x80D9,
+ 6568: 0x80DD,
+ 6569: 0x80C4,
+ 6570: 0x80DA,
+ 6571: 0x80D6,
+ 6572: 0x8109,
+ 6573: 0x80EF,
+ 6574: 0x80F1,
+ 6575: 0x811B,
+ 6576: 0x8129,
+ 6577: 0x8123,
+ 6578: 0x812F,
+ 6579: 0x814B,
+ 6580: 0x968B,
+ 6581: 0x8146,
+ 6582: 0x813E,
+ 6583: 0x8153,
+ 6584: 0x8151,
+ 6585: 0x80FC,
+ 6586: 0x8171,
+ 6587: 0x816E,
+ 6588: 0x8165,
+ 6589: 0x8166,
+ 6590: 0x8174,
+ 6591: 0x8183,
+ 6592: 0x8188,
+ 6593: 0x818A,
+ 6594: 0x8180,
+ 6595: 0x8182,
+ 6596: 0x81A0,
+ 6597: 0x8195,
+ 6598: 0x81A4,
+ 6599: 0x81A3,
+ 6600: 0x815F,
+ 6601: 0x8193,
+ 6602: 0x81A9,
+ 6603: 0x81B0,
+ 6604: 0x81B5,
+ 6605: 0x81BE,
+ 6606: 0x81B8,
+ 6607: 0x81BD,
+ 6608: 0x81C0,
+ 6609: 0x81C2,
+ 6610: 0x81BA,
+ 6611: 0x81C9,
+ 6612: 0x81CD,
+ 6613: 0x81D1,
+ 6614: 0x81D9,
+ 6615: 0x81D8,
+ 6616: 0x81C8,
+ 6617: 0x81DA,
+ 6618: 0x81DF,
+ 6619: 0x81E0,
+ 6620: 0x81E7,
+ 6621: 0x81FA,
+ 6622: 0x81FB,
+ 6623: 0x81FE,
+ 6624: 0x8201,
+ 6625: 0x8202,
+ 6626: 0x8205,
+ 6627: 0x8207,
+ 6628: 0x820A,
+ 6629: 0x820D,
+ 6630: 0x8210,
+ 6631: 0x8216,
+ 6632: 0x8229,
+ 6633: 0x822B,
+ 6634: 0x8238,
+ 6635: 0x8233,
+ 6636: 0x8240,
+ 6637: 0x8259,
+ 6638: 0x8258,
+ 6639: 0x825D,
+ 6640: 0x825A,
+ 6641: 0x825F,
+ 6642: 0x8264,
+ 6643: 0x8262,
+ 6644: 0x8268,
+ 6645: 0x826A,
+ 6646: 0x826B,
+ 6647: 0x822E,
+ 6648: 0x8271,
+ 6649: 0x8277,
+ 6650: 0x8278,
+ 6651: 0x827E,
+ 6652: 0x828D,
+ 6653: 0x8292,
+ 6654: 0x82AB,
+ 6655: 0x829F,
+ 6656: 0x82BB,
+ 6657: 0x82AC,
+ 6658: 0x82E1,
+ 6659: 0x82E3,
+ 6660: 0x82DF,
+ 6661: 0x82D2,
+ 6662: 0x82F4,
+ 6663: 0x82F3,
+ 6664: 0x82FA,
+ 6665: 0x8393,
+ 6666: 0x8303,
+ 6667: 0x82FB,
+ 6668: 0x82F9,
+ 6669: 0x82DE,
+ 6670: 0x8306,
+ 6671: 0x82DC,
+ 6672: 0x8309,
+ 6673: 0x82D9,
+ 6674: 0x8335,
+ 6675: 0x8334,
+ 6676: 0x8316,
+ 6677: 0x8332,
+ 6678: 0x8331,
+ 6679: 0x8340,
+ 6680: 0x8339,
+ 6681: 0x8350,
+ 6682: 0x8345,
+ 6683: 0x832F,
+ 6684: 0x832B,
+ 6685: 0x8317,
+ 6686: 0x8318,
+ 6687: 0x8385,
+ 6688: 0x839A,
+ 6689: 0x83AA,
+ 6690: 0x839F,
+ 6691: 0x83A2,
+ 6692: 0x8396,
+ 6693: 0x8323,
+ 6694: 0x838E,
+ 6695: 0x8387,
+ 6696: 0x838A,
+ 6697: 0x837C,
+ 6698: 0x83B5,
+ 6699: 0x8373,
+ 6700: 0x8375,
+ 6701: 0x83A0,
+ 6702: 0x8389,
+ 6703: 0x83A8,
+ 6704: 0x83F4,
+ 6705: 0x8413,
+ 6706: 0x83EB,
+ 6707: 0x83CE,
+ 6708: 0x83FD,
+ 6709: 0x8403,
+ 6710: 0x83D8,
+ 6711: 0x840B,
+ 6712: 0x83C1,
+ 6713: 0x83F7,
+ 6714: 0x8407,
+ 6715: 0x83E0,
+ 6716: 0x83F2,
+ 6717: 0x840D,
+ 6718: 0x8422,
+ 6719: 0x8420,
+ 6720: 0x83BD,
+ 6721: 0x8438,
+ 6722: 0x8506,
+ 6723: 0x83FB,
+ 6724: 0x846D,
+ 6725: 0x842A,
+ 6726: 0x843C,
+ 6727: 0x855A,
+ 6728: 0x8484,
+ 6729: 0x8477,
+ 6730: 0x846B,
+ 6731: 0x84AD,
+ 6732: 0x846E,
+ 6733: 0x8482,
+ 6734: 0x8469,
+ 6735: 0x8446,
+ 6736: 0x842C,
+ 6737: 0x846F,
+ 6738: 0x8479,
+ 6739: 0x8435,
+ 6740: 0x84CA,
+ 6741: 0x8462,
+ 6742: 0x84B9,
+ 6743: 0x84BF,
+ 6744: 0x849F,
+ 6745: 0x84D9,
+ 6746: 0x84CD,
+ 6747: 0x84BB,
+ 6748: 0x84DA,
+ 6749: 0x84D0,
+ 6750: 0x84C1,
+ 6751: 0x84C6,
+ 6752: 0x84D6,
+ 6753: 0x84A1,
+ 6754: 0x8521,
+ 6755: 0x84FF,
+ 6756: 0x84F4,
+ 6757: 0x8517,
+ 6758: 0x8518,
+ 6759: 0x852C,
+ 6760: 0x851F,
+ 6761: 0x8515,
+ 6762: 0x8514,
+ 6763: 0x84FC,
+ 6764: 0x8540,
+ 6765: 0x8563,
+ 6766: 0x8558,
+ 6767: 0x8548,
+ 6768: 0x8541,
+ 6769: 0x8602,
+ 6770: 0x854B,
+ 6771: 0x8555,
+ 6772: 0x8580,
+ 6773: 0x85A4,
+ 6774: 0x8588,
+ 6775: 0x8591,
+ 6776: 0x858A,
+ 6777: 0x85A8,
+ 6778: 0x856D,
+ 6779: 0x8594,
+ 6780: 0x859B,
+ 6781: 0x85EA,
+ 6782: 0x8587,
+ 6783: 0x859C,
+ 6784: 0x8577,
+ 6785: 0x857E,
+ 6786: 0x8590,
+ 6787: 0x85C9,
+ 6788: 0x85BA,
+ 6789: 0x85CF,
+ 6790: 0x85B9,
+ 6791: 0x85D0,
+ 6792: 0x85D5,
+ 6793: 0x85DD,
+ 6794: 0x85E5,
+ 6795: 0x85DC,
+ 6796: 0x85F9,
+ 6797: 0x860A,
+ 6798: 0x8613,
+ 6799: 0x860B,
+ 6800: 0x85FE,
+ 6801: 0x85FA,
+ 6802: 0x8606,
+ 6803: 0x8622,
+ 6804: 0x861A,
+ 6805: 0x8630,
+ 6806: 0x863F,
+ 6807: 0x864D,
+ 6808: 0x4E55,
+ 6809: 0x8654,
+ 6810: 0x865F,
+ 6811: 0x8667,
+ 6812: 0x8671,
+ 6813: 0x8693,
+ 6814: 0x86A3,
+ 6815: 0x86A9,
+ 6816: 0x86AA,
+ 6817: 0x868B,
+ 6818: 0x868C,
+ 6819: 0x86B6,
+ 6820: 0x86AF,
+ 6821: 0x86C4,
+ 6822: 0x86C6,
+ 6823: 0x86B0,
+ 6824: 0x86C9,
+ 6825: 0x8823,
+ 6826: 0x86AB,
+ 6827: 0x86D4,
+ 6828: 0x86DE,
+ 6829: 0x86E9,
+ 6830: 0x86EC,
+ 6831: 0x86DF,
+ 6832: 0x86DB,
+ 6833: 0x86EF,
+ 6834: 0x8712,
+ 6835: 0x8706,
+ 6836: 0x8708,
+ 6837: 0x8700,
+ 6838: 0x8703,
+ 6839: 0x86FB,
+ 6840: 0x8711,
+ 6841: 0x8709,
+ 6842: 0x870D,
+ 6843: 0x86F9,
+ 6844: 0x870A,
+ 6845: 0x8734,
+ 6846: 0x873F,
+ 6847: 0x8737,
+ 6848: 0x873B,
+ 6849: 0x8725,
+ 6850: 0x8729,
+ 6851: 0x871A,
+ 6852: 0x8760,
+ 6853: 0x875F,
+ 6854: 0x8778,
+ 6855: 0x874C,
+ 6856: 0x874E,
+ 6857: 0x8774,
+ 6858: 0x8757,
+ 6859: 0x8768,
+ 6860: 0x876E,
+ 6861: 0x8759,
+ 6862: 0x8753,
+ 6863: 0x8763,
+ 6864: 0x876A,
+ 6865: 0x8805,
+ 6866: 0x87A2,
+ 6867: 0x879F,
+ 6868: 0x8782,
+ 6869: 0x87AF,
+ 6870: 0x87CB,
+ 6871: 0x87BD,
+ 6872: 0x87C0,
+ 6873: 0x87D0,
+ 6874: 0x96D6,
+ 6875: 0x87AB,
+ 6876: 0x87C4,
+ 6877: 0x87B3,
+ 6878: 0x87C7,
+ 6879: 0x87C6,
+ 6880: 0x87BB,
+ 6881: 0x87EF,
+ 6882: 0x87F2,
+ 6883: 0x87E0,
+ 6884: 0x880F,
+ 6885: 0x880D,
+ 6886: 0x87FE,
+ 6887: 0x87F6,
+ 6888: 0x87F7,
+ 6889: 0x880E,
+ 6890: 0x87D2,
+ 6891: 0x8811,
+ 6892: 0x8816,
+ 6893: 0x8815,
+ 6894: 0x8822,
+ 6895: 0x8821,
+ 6896: 0x8831,
+ 6897: 0x8836,
+ 6898: 0x8839,
+ 6899: 0x8827,
+ 6900: 0x883B,
+ 6901: 0x8844,
+ 6902: 0x8842,
+ 6903: 0x8852,
+ 6904: 0x8859,
+ 6905: 0x885E,
+ 6906: 0x8862,
+ 6907: 0x886B,
+ 6908: 0x8881,
+ 6909: 0x887E,
+ 6910: 0x889E,
+ 6911: 0x8875,
+ 6912: 0x887D,
+ 6913: 0x88B5,
+ 6914: 0x8872,
+ 6915: 0x8882,
+ 6916: 0x8897,
+ 6917: 0x8892,
+ 6918: 0x88AE,
+ 6919: 0x8899,
+ 6920: 0x88A2,
+ 6921: 0x888D,
+ 6922: 0x88A4,
+ 6923: 0x88B0,
+ 6924: 0x88BF,
+ 6925: 0x88B1,
+ 6926: 0x88C3,
+ 6927: 0x88C4,
+ 6928: 0x88D4,
+ 6929: 0x88D8,
+ 6930: 0x88D9,
+ 6931: 0x88DD,
+ 6932: 0x88F9,
+ 6933: 0x8902,
+ 6934: 0x88FC,
+ 6935: 0x88F4,
+ 6936: 0x88E8,
+ 6937: 0x88F2,
+ 6938: 0x8904,
+ 6939: 0x890C,
+ 6940: 0x890A,
+ 6941: 0x8913,
+ 6942: 0x8943,
+ 6943: 0x891E,
+ 6944: 0x8925,
+ 6945: 0x892A,
+ 6946: 0x892B,
+ 6947: 0x8941,
+ 6948: 0x8944,
+ 6949: 0x893B,
+ 6950: 0x8936,
+ 6951: 0x8938,
+ 6952: 0x894C,
+ 6953: 0x891D,
+ 6954: 0x8960,
+ 6955: 0x895E,
+ 6956: 0x8966,
+ 6957: 0x8964,
+ 6958: 0x896D,
+ 6959: 0x896A,
+ 6960: 0x896F,
+ 6961: 0x8974,
+ 6962: 0x8977,
+ 6963: 0x897E,
+ 6964: 0x8983,
+ 6965: 0x8988,
+ 6966: 0x898A,
+ 6967: 0x8993,
+ 6968: 0x8998,
+ 6969: 0x89A1,
+ 6970: 0x89A9,
+ 6971: 0x89A6,
+ 6972: 0x89AC,
+ 6973: 0x89AF,
+ 6974: 0x89B2,
+ 6975: 0x89BA,
+ 6976: 0x89BD,
+ 6977: 0x89BF,
+ 6978: 0x89C0,
+ 6979: 0x89DA,
+ 6980: 0x89DC,
+ 6981: 0x89DD,
+ 6982: 0x89E7,
+ 6983: 0x89F4,
+ 6984: 0x89F8,
+ 6985: 0x8A03,
+ 6986: 0x8A16,
+ 6987: 0x8A10,
+ 6988: 0x8A0C,
+ 6989: 0x8A1B,
+ 6990: 0x8A1D,
+ 6991: 0x8A25,
+ 6992: 0x8A36,
+ 6993: 0x8A41,
+ 6994: 0x8A5B,
+ 6995: 0x8A52,
+ 6996: 0x8A46,
+ 6997: 0x8A48,
+ 6998: 0x8A7C,
+ 6999: 0x8A6D,
+ 7000: 0x8A6C,
+ 7001: 0x8A62,
+ 7002: 0x8A85,
+ 7003: 0x8A82,
+ 7004: 0x8A84,
+ 7005: 0x8AA8,
+ 7006: 0x8AA1,
+ 7007: 0x8A91,
+ 7008: 0x8AA5,
+ 7009: 0x8AA6,
+ 7010: 0x8A9A,
+ 7011: 0x8AA3,
+ 7012: 0x8AC4,
+ 7013: 0x8ACD,
+ 7014: 0x8AC2,
+ 7015: 0x8ADA,
+ 7016: 0x8AEB,
+ 7017: 0x8AF3,
+ 7018: 0x8AE7,
+ 7019: 0x8AE4,
+ 7020: 0x8AF1,
+ 7021: 0x8B14,
+ 7022: 0x8AE0,
+ 7023: 0x8AE2,
+ 7024: 0x8AF7,
+ 7025: 0x8ADE,
+ 7026: 0x8ADB,
+ 7027: 0x8B0C,
+ 7028: 0x8B07,
+ 7029: 0x8B1A,
+ 7030: 0x8AE1,
+ 7031: 0x8B16,
+ 7032: 0x8B10,
+ 7033: 0x8B17,
+ 7034: 0x8B20,
+ 7035: 0x8B33,
+ 7036: 0x97AB,
+ 7037: 0x8B26,
+ 7038: 0x8B2B,
+ 7039: 0x8B3E,
+ 7040: 0x8B28,
+ 7041: 0x8B41,
+ 7042: 0x8B4C,
+ 7043: 0x8B4F,
+ 7044: 0x8B4E,
+ 7045: 0x8B49,
+ 7046: 0x8B56,
+ 7047: 0x8B5B,
+ 7048: 0x8B5A,
+ 7049: 0x8B6B,
+ 7050: 0x8B5F,
+ 7051: 0x8B6C,
+ 7052: 0x8B6F,
+ 7053: 0x8B74,
+ 7054: 0x8B7D,
+ 7055: 0x8B80,
+ 7056: 0x8B8C,
+ 7057: 0x8B8E,
+ 7058: 0x8B92,
+ 7059: 0x8B93,
+ 7060: 0x8B96,
+ 7061: 0x8B99,
+ 7062: 0x8B9A,
+ 7063: 0x8C3A,
+ 7064: 0x8C41,
+ 7065: 0x8C3F,
+ 7066: 0x8C48,
+ 7067: 0x8C4C,
+ 7068: 0x8C4E,
+ 7069: 0x8C50,
+ 7070: 0x8C55,
+ 7071: 0x8C62,
+ 7072: 0x8C6C,
+ 7073: 0x8C78,
+ 7074: 0x8C7A,
+ 7075: 0x8C82,
+ 7076: 0x8C89,
+ 7077: 0x8C85,
+ 7078: 0x8C8A,
+ 7079: 0x8C8D,
+ 7080: 0x8C8E,
+ 7081: 0x8C94,
+ 7082: 0x8C7C,
+ 7083: 0x8C98,
+ 7084: 0x621D,
+ 7085: 0x8CAD,
+ 7086: 0x8CAA,
+ 7087: 0x8CBD,
+ 7088: 0x8CB2,
+ 7089: 0x8CB3,
+ 7090: 0x8CAE,
+ 7091: 0x8CB6,
+ 7092: 0x8CC8,
+ 7093: 0x8CC1,
+ 7094: 0x8CE4,
+ 7095: 0x8CE3,
+ 7096: 0x8CDA,
+ 7097: 0x8CFD,
+ 7098: 0x8CFA,
+ 7099: 0x8CFB,
+ 7100: 0x8D04,
+ 7101: 0x8D05,
+ 7102: 0x8D0A,
+ 7103: 0x8D07,
+ 7104: 0x8D0F,
+ 7105: 0x8D0D,
+ 7106: 0x8D10,
+ 7107: 0x9F4E,
+ 7108: 0x8D13,
+ 7109: 0x8CCD,
+ 7110: 0x8D14,
+ 7111: 0x8D16,
+ 7112: 0x8D67,
+ 7113: 0x8D6D,
+ 7114: 0x8D71,
+ 7115: 0x8D73,
+ 7116: 0x8D81,
+ 7117: 0x8D99,
+ 7118: 0x8DC2,
+ 7119: 0x8DBE,
+ 7120: 0x8DBA,
+ 7121: 0x8DCF,
+ 7122: 0x8DDA,
+ 7123: 0x8DD6,
+ 7124: 0x8DCC,
+ 7125: 0x8DDB,
+ 7126: 0x8DCB,
+ 7127: 0x8DEA,
+ 7128: 0x8DEB,
+ 7129: 0x8DDF,
+ 7130: 0x8DE3,
+ 7131: 0x8DFC,
+ 7132: 0x8E08,
+ 7133: 0x8E09,
+ 7134: 0x8DFF,
+ 7135: 0x8E1D,
+ 7136: 0x8E1E,
+ 7137: 0x8E10,
+ 7138: 0x8E1F,
+ 7139: 0x8E42,
+ 7140: 0x8E35,
+ 7141: 0x8E30,
+ 7142: 0x8E34,
+ 7143: 0x8E4A,
+ 7144: 0x8E47,
+ 7145: 0x8E49,
+ 7146: 0x8E4C,
+ 7147: 0x8E50,
+ 7148: 0x8E48,
+ 7149: 0x8E59,
+ 7150: 0x8E64,
+ 7151: 0x8E60,
+ 7152: 0x8E2A,
+ 7153: 0x8E63,
+ 7154: 0x8E55,
+ 7155: 0x8E76,
+ 7156: 0x8E72,
+ 7157: 0x8E7C,
+ 7158: 0x8E81,
+ 7159: 0x8E87,
+ 7160: 0x8E85,
+ 7161: 0x8E84,
+ 7162: 0x8E8B,
+ 7163: 0x8E8A,
+ 7164: 0x8E93,
+ 7165: 0x8E91,
+ 7166: 0x8E94,
+ 7167: 0x8E99,
+ 7168: 0x8EAA,
+ 7169: 0x8EA1,
+ 7170: 0x8EAC,
+ 7171: 0x8EB0,
+ 7172: 0x8EC6,
+ 7173: 0x8EB1,
+ 7174: 0x8EBE,
+ 7175: 0x8EC5,
+ 7176: 0x8EC8,
+ 7177: 0x8ECB,
+ 7178: 0x8EDB,
+ 7179: 0x8EE3,
+ 7180: 0x8EFC,
+ 7181: 0x8EFB,
+ 7182: 0x8EEB,
+ 7183: 0x8EFE,
+ 7184: 0x8F0A,
+ 7185: 0x8F05,
+ 7186: 0x8F15,
+ 7187: 0x8F12,
+ 7188: 0x8F19,
+ 7189: 0x8F13,
+ 7190: 0x8F1C,
+ 7191: 0x8F1F,
+ 7192: 0x8F1B,
+ 7193: 0x8F0C,
+ 7194: 0x8F26,
+ 7195: 0x8F33,
+ 7196: 0x8F3B,
+ 7197: 0x8F39,
+ 7198: 0x8F45,
+ 7199: 0x8F42,
+ 7200: 0x8F3E,
+ 7201: 0x8F4C,
+ 7202: 0x8F49,
+ 7203: 0x8F46,
+ 7204: 0x8F4E,
+ 7205: 0x8F57,
+ 7206: 0x8F5C,
+ 7207: 0x8F62,
+ 7208: 0x8F63,
+ 7209: 0x8F64,
+ 7210: 0x8F9C,
+ 7211: 0x8F9F,
+ 7212: 0x8FA3,
+ 7213: 0x8FAD,
+ 7214: 0x8FAF,
+ 7215: 0x8FB7,
+ 7216: 0x8FDA,
+ 7217: 0x8FE5,
+ 7218: 0x8FE2,
+ 7219: 0x8FEA,
+ 7220: 0x8FEF,
+ 7221: 0x9087,
+ 7222: 0x8FF4,
+ 7223: 0x9005,
+ 7224: 0x8FF9,
+ 7225: 0x8FFA,
+ 7226: 0x9011,
+ 7227: 0x9015,
+ 7228: 0x9021,
+ 7229: 0x900D,
+ 7230: 0x901E,
+ 7231: 0x9016,
+ 7232: 0x900B,
+ 7233: 0x9027,
+ 7234: 0x9036,
+ 7235: 0x9035,
+ 7236: 0x9039,
+ 7237: 0x8FF8,
+ 7238: 0x904F,
+ 7239: 0x9050,
+ 7240: 0x9051,
+ 7241: 0x9052,
+ 7242: 0x900E,
+ 7243: 0x9049,
+ 7244: 0x903E,
+ 7245: 0x9056,
+ 7246: 0x9058,
+ 7247: 0x905E,
+ 7248: 0x9068,
+ 7249: 0x906F,
+ 7250: 0x9076,
+ 7251: 0x96A8,
+ 7252: 0x9072,
+ 7253: 0x9082,
+ 7254: 0x907D,
+ 7255: 0x9081,
+ 7256: 0x9080,
+ 7257: 0x908A,
+ 7258: 0x9089,
+ 7259: 0x908F,
+ 7260: 0x90A8,
+ 7261: 0x90AF,
+ 7262: 0x90B1,
+ 7263: 0x90B5,
+ 7264: 0x90E2,
+ 7265: 0x90E4,
+ 7266: 0x6248,
+ 7267: 0x90DB,
+ 7268: 0x9102,
+ 7269: 0x9112,
+ 7270: 0x9119,
+ 7271: 0x9132,
+ 7272: 0x9130,
+ 7273: 0x914A,
+ 7274: 0x9156,
+ 7275: 0x9158,
+ 7276: 0x9163,
+ 7277: 0x9165,
+ 7278: 0x9169,
+ 7279: 0x9173,
+ 7280: 0x9172,
+ 7281: 0x918B,
+ 7282: 0x9189,
+ 7283: 0x9182,
+ 7284: 0x91A2,
+ 7285: 0x91AB,
+ 7286: 0x91AF,
+ 7287: 0x91AA,
+ 7288: 0x91B5,
+ 7289: 0x91B4,
+ 7290: 0x91BA,
+ 7291: 0x91C0,
+ 7292: 0x91C1,
+ 7293: 0x91C9,
+ 7294: 0x91CB,
+ 7295: 0x91D0,
+ 7296: 0x91D6,
+ 7297: 0x91DF,
+ 7298: 0x91E1,
+ 7299: 0x91DB,
+ 7300: 0x91FC,
+ 7301: 0x91F5,
+ 7302: 0x91F6,
+ 7303: 0x921E,
+ 7304: 0x91FF,
+ 7305: 0x9214,
+ 7306: 0x922C,
+ 7307: 0x9215,
+ 7308: 0x9211,
+ 7309: 0x925E,
+ 7310: 0x9257,
+ 7311: 0x9245,
+ 7312: 0x9249,
+ 7313: 0x9264,
+ 7314: 0x9248,
+ 7315: 0x9295,
+ 7316: 0x923F,
+ 7317: 0x924B,
+ 7318: 0x9250,
+ 7319: 0x929C,
+ 7320: 0x9296,
+ 7321: 0x9293,
+ 7322: 0x929B,
+ 7323: 0x925A,
+ 7324: 0x92CF,
+ 7325: 0x92B9,
+ 7326: 0x92B7,
+ 7327: 0x92E9,
+ 7328: 0x930F,
+ 7329: 0x92FA,
+ 7330: 0x9344,
+ 7331: 0x932E,
+ 7332: 0x9319,
+ 7333: 0x9322,
+ 7334: 0x931A,
+ 7335: 0x9323,
+ 7336: 0x933A,
+ 7337: 0x9335,
+ 7338: 0x933B,
+ 7339: 0x935C,
+ 7340: 0x9360,
+ 7341: 0x937C,
+ 7342: 0x936E,
+ 7343: 0x9356,
+ 7344: 0x93B0,
+ 7345: 0x93AC,
+ 7346: 0x93AD,
+ 7347: 0x9394,
+ 7348: 0x93B9,
+ 7349: 0x93D6,
+ 7350: 0x93D7,
+ 7351: 0x93E8,
+ 7352: 0x93E5,
+ 7353: 0x93D8,
+ 7354: 0x93C3,
+ 7355: 0x93DD,
+ 7356: 0x93D0,
+ 7357: 0x93C8,
+ 7358: 0x93E4,
+ 7359: 0x941A,
+ 7360: 0x9414,
+ 7361: 0x9413,
+ 7362: 0x9403,
+ 7363: 0x9407,
+ 7364: 0x9410,
+ 7365: 0x9436,
+ 7366: 0x942B,
+ 7367: 0x9435,
+ 7368: 0x9421,
+ 7369: 0x943A,
+ 7370: 0x9441,
+ 7371: 0x9452,
+ 7372: 0x9444,
+ 7373: 0x945B,
+ 7374: 0x9460,
+ 7375: 0x9462,
+ 7376: 0x945E,
+ 7377: 0x946A,
+ 7378: 0x9229,
+ 7379: 0x9470,
+ 7380: 0x9475,
+ 7381: 0x9477,
+ 7382: 0x947D,
+ 7383: 0x945A,
+ 7384: 0x947C,
+ 7385: 0x947E,
+ 7386: 0x9481,
+ 7387: 0x947F,
+ 7388: 0x9582,
+ 7389: 0x9587,
+ 7390: 0x958A,
+ 7391: 0x9594,
+ 7392: 0x9596,
+ 7393: 0x9598,
+ 7394: 0x9599,
+ 7395: 0x95A0,
+ 7396: 0x95A8,
+ 7397: 0x95A7,
+ 7398: 0x95AD,
+ 7399: 0x95BC,
+ 7400: 0x95BB,
+ 7401: 0x95B9,
+ 7402: 0x95BE,
+ 7403: 0x95CA,
+ 7404: 0x6FF6,
+ 7405: 0x95C3,
+ 7406: 0x95CD,
+ 7407: 0x95CC,
+ 7408: 0x95D5,
+ 7409: 0x95D4,
+ 7410: 0x95D6,
+ 7411: 0x95DC,
+ 7412: 0x95E1,
+ 7413: 0x95E5,
+ 7414: 0x95E2,
+ 7415: 0x9621,
+ 7416: 0x9628,
+ 7417: 0x962E,
+ 7418: 0x962F,
+ 7419: 0x9642,
+ 7420: 0x964C,
+ 7421: 0x964F,
+ 7422: 0x964B,
+ 7423: 0x9677,
+ 7424: 0x965C,
+ 7425: 0x965E,
+ 7426: 0x965D,
+ 7427: 0x965F,
+ 7428: 0x9666,
+ 7429: 0x9672,
+ 7430: 0x966C,
+ 7431: 0x968D,
+ 7432: 0x9698,
+ 7433: 0x9695,
+ 7434: 0x9697,
+ 7435: 0x96AA,
+ 7436: 0x96A7,
+ 7437: 0x96B1,
+ 7438: 0x96B2,
+ 7439: 0x96B0,
+ 7440: 0x96B4,
+ 7441: 0x96B6,
+ 7442: 0x96B8,
+ 7443: 0x96B9,
+ 7444: 0x96CE,
+ 7445: 0x96CB,
+ 7446: 0x96C9,
+ 7447: 0x96CD,
+ 7448: 0x894D,
+ 7449: 0x96DC,
+ 7450: 0x970D,
+ 7451: 0x96D5,
+ 7452: 0x96F9,
+ 7453: 0x9704,
+ 7454: 0x9706,
+ 7455: 0x9708,
+ 7456: 0x9713,
+ 7457: 0x970E,
+ 7458: 0x9711,
+ 7459: 0x970F,
+ 7460: 0x9716,
+ 7461: 0x9719,
+ 7462: 0x9724,
+ 7463: 0x972A,
+ 7464: 0x9730,
+ 7465: 0x9739,
+ 7466: 0x973D,
+ 7467: 0x973E,
+ 7468: 0x9744,
+ 7469: 0x9746,
+ 7470: 0x9748,
+ 7471: 0x9742,
+ 7472: 0x9749,
+ 7473: 0x975C,
+ 7474: 0x9760,
+ 7475: 0x9764,
+ 7476: 0x9766,
+ 7477: 0x9768,
+ 7478: 0x52D2,
+ 7479: 0x976B,
+ 7480: 0x9771,
+ 7481: 0x9779,
+ 7482: 0x9785,
+ 7483: 0x977C,
+ 7484: 0x9781,
+ 7485: 0x977A,
+ 7486: 0x9786,
+ 7487: 0x978B,
+ 7488: 0x978F,
+ 7489: 0x9790,
+ 7490: 0x979C,
+ 7491: 0x97A8,
+ 7492: 0x97A6,
+ 7493: 0x97A3,
+ 7494: 0x97B3,
+ 7495: 0x97B4,
+ 7496: 0x97C3,
+ 7497: 0x97C6,
+ 7498: 0x97C8,
+ 7499: 0x97CB,
+ 7500: 0x97DC,
+ 7501: 0x97ED,
+ 7502: 0x9F4F,
+ 7503: 0x97F2,
+ 7504: 0x7ADF,
+ 7505: 0x97F6,
+ 7506: 0x97F5,
+ 7507: 0x980F,
+ 7508: 0x980C,
+ 7509: 0x9838,
+ 7510: 0x9824,
+ 7511: 0x9821,
+ 7512: 0x9837,
+ 7513: 0x983D,
+ 7514: 0x9846,
+ 7515: 0x984F,
+ 7516: 0x984B,
+ 7517: 0x986B,
+ 7518: 0x986F,
+ 7519: 0x9870,
+ 7520: 0x9871,
+ 7521: 0x9874,
+ 7522: 0x9873,
+ 7523: 0x98AA,
+ 7524: 0x98AF,
+ 7525: 0x98B1,
+ 7526: 0x98B6,
+ 7527: 0x98C4,
+ 7528: 0x98C3,
+ 7529: 0x98C6,
+ 7530: 0x98E9,
+ 7531: 0x98EB,
+ 7532: 0x9903,
+ 7533: 0x9909,
+ 7534: 0x9912,
+ 7535: 0x9914,
+ 7536: 0x9918,
+ 7537: 0x9921,
+ 7538: 0x991D,
+ 7539: 0x991E,
+ 7540: 0x9924,
+ 7541: 0x9920,
+ 7542: 0x992C,
+ 7543: 0x992E,
+ 7544: 0x993D,
+ 7545: 0x993E,
+ 7546: 0x9942,
+ 7547: 0x9949,
+ 7548: 0x9945,
+ 7549: 0x9950,
+ 7550: 0x994B,
+ 7551: 0x9951,
+ 7552: 0x9952,
+ 7553: 0x994C,
+ 7554: 0x9955,
+ 7555: 0x9997,
+ 7556: 0x9998,
+ 7557: 0x99A5,
+ 7558: 0x99AD,
+ 7559: 0x99AE,
+ 7560: 0x99BC,
+ 7561: 0x99DF,
+ 7562: 0x99DB,
+ 7563: 0x99DD,
+ 7564: 0x99D8,
+ 7565: 0x99D1,
+ 7566: 0x99ED,
+ 7567: 0x99EE,
+ 7568: 0x99F1,
+ 7569: 0x99F2,
+ 7570: 0x99FB,
+ 7571: 0x99F8,
+ 7572: 0x9A01,
+ 7573: 0x9A0F,
+ 7574: 0x9A05,
+ 7575: 0x99E2,
+ 7576: 0x9A19,
+ 7577: 0x9A2B,
+ 7578: 0x9A37,
+ 7579: 0x9A45,
+ 7580: 0x9A42,
+ 7581: 0x9A40,
+ 7582: 0x9A43,
+ 7583: 0x9A3E,
+ 7584: 0x9A55,
+ 7585: 0x9A4D,
+ 7586: 0x9A5B,
+ 7587: 0x9A57,
+ 7588: 0x9A5F,
+ 7589: 0x9A62,
+ 7590: 0x9A65,
+ 7591: 0x9A64,
+ 7592: 0x9A69,
+ 7593: 0x9A6B,
+ 7594: 0x9A6A,
+ 7595: 0x9AAD,
+ 7596: 0x9AB0,
+ 7597: 0x9ABC,
+ 7598: 0x9AC0,
+ 7599: 0x9ACF,
+ 7600: 0x9AD1,
+ 7601: 0x9AD3,
+ 7602: 0x9AD4,
+ 7603: 0x9ADE,
+ 7604: 0x9ADF,
+ 7605: 0x9AE2,
+ 7606: 0x9AE3,
+ 7607: 0x9AE6,
+ 7608: 0x9AEF,
+ 7609: 0x9AEB,
+ 7610: 0x9AEE,
+ 7611: 0x9AF4,
+ 7612: 0x9AF1,
+ 7613: 0x9AF7,
+ 7614: 0x9AFB,
+ 7615: 0x9B06,
+ 7616: 0x9B18,
+ 7617: 0x9B1A,
+ 7618: 0x9B1F,
+ 7619: 0x9B22,
+ 7620: 0x9B23,
+ 7621: 0x9B25,
+ 7622: 0x9B27,
+ 7623: 0x9B28,
+ 7624: 0x9B29,
+ 7625: 0x9B2A,
+ 7626: 0x9B2E,
+ 7627: 0x9B2F,
+ 7628: 0x9B32,
+ 7629: 0x9B44,
+ 7630: 0x9B43,
+ 7631: 0x9B4F,
+ 7632: 0x9B4D,
+ 7633: 0x9B4E,
+ 7634: 0x9B51,
+ 7635: 0x9B58,
+ 7636: 0x9B74,
+ 7637: 0x9B93,
+ 7638: 0x9B83,
+ 7639: 0x9B91,
+ 7640: 0x9B96,
+ 7641: 0x9B97,
+ 7642: 0x9B9F,
+ 7643: 0x9BA0,
+ 7644: 0x9BA8,
+ 7645: 0x9BB4,
+ 7646: 0x9BC0,
+ 7647: 0x9BCA,
+ 7648: 0x9BB9,
+ 7649: 0x9BC6,
+ 7650: 0x9BCF,
+ 7651: 0x9BD1,
+ 7652: 0x9BD2,
+ 7653: 0x9BE3,
+ 7654: 0x9BE2,
+ 7655: 0x9BE4,
+ 7656: 0x9BD4,
+ 7657: 0x9BE1,
+ 7658: 0x9C3A,
+ 7659: 0x9BF2,
+ 7660: 0x9BF1,
+ 7661: 0x9BF0,
+ 7662: 0x9C15,
+ 7663: 0x9C14,
+ 7664: 0x9C09,
+ 7665: 0x9C13,
+ 7666: 0x9C0C,
+ 7667: 0x9C06,
+ 7668: 0x9C08,
+ 7669: 0x9C12,
+ 7670: 0x9C0A,
+ 7671: 0x9C04,
+ 7672: 0x9C2E,
+ 7673: 0x9C1B,
+ 7674: 0x9C25,
+ 7675: 0x9C24,
+ 7676: 0x9C21,
+ 7677: 0x9C30,
+ 7678: 0x9C47,
+ 7679: 0x9C32,
+ 7680: 0x9C46,
+ 7681: 0x9C3E,
+ 7682: 0x9C5A,
+ 7683: 0x9C60,
+ 7684: 0x9C67,
+ 7685: 0x9C76,
+ 7686: 0x9C78,
+ 7687: 0x9CE7,
+ 7688: 0x9CEC,
+ 7689: 0x9CF0,
+ 7690: 0x9D09,
+ 7691: 0x9D08,
+ 7692: 0x9CEB,
+ 7693: 0x9D03,
+ 7694: 0x9D06,
+ 7695: 0x9D2A,
+ 7696: 0x9D26,
+ 7697: 0x9DAF,
+ 7698: 0x9D23,
+ 7699: 0x9D1F,
+ 7700: 0x9D44,
+ 7701: 0x9D15,
+ 7702: 0x9D12,
+ 7703: 0x9D41,
+ 7704: 0x9D3F,
+ 7705: 0x9D3E,
+ 7706: 0x9D46,
+ 7707: 0x9D48,
+ 7708: 0x9D5D,
+ 7709: 0x9D5E,
+ 7710: 0x9D64,
+ 7711: 0x9D51,
+ 7712: 0x9D50,
+ 7713: 0x9D59,
+ 7714: 0x9D72,
+ 7715: 0x9D89,
+ 7716: 0x9D87,
+ 7717: 0x9DAB,
+ 7718: 0x9D6F,
+ 7719: 0x9D7A,
+ 7720: 0x9D9A,
+ 7721: 0x9DA4,
+ 7722: 0x9DA9,
+ 7723: 0x9DB2,
+ 7724: 0x9DC4,
+ 7725: 0x9DC1,
+ 7726: 0x9DBB,
+ 7727: 0x9DB8,
+ 7728: 0x9DBA,
+ 7729: 0x9DC6,
+ 7730: 0x9DCF,
+ 7731: 0x9DC2,
+ 7732: 0x9DD9,
+ 7733: 0x9DD3,
+ 7734: 0x9DF8,
+ 7735: 0x9DE6,
+ 7736: 0x9DED,
+ 7737: 0x9DEF,
+ 7738: 0x9DFD,
+ 7739: 0x9E1A,
+ 7740: 0x9E1B,
+ 7741: 0x9E1E,
+ 7742: 0x9E75,
+ 7743: 0x9E79,
+ 7744: 0x9E7D,
+ 7745: 0x9E81,
+ 7746: 0x9E88,
+ 7747: 0x9E8B,
+ 7748: 0x9E8C,
+ 7749: 0x9E92,
+ 7750: 0x9E95,
+ 7751: 0x9E91,
+ 7752: 0x9E9D,
+ 7753: 0x9EA5,
+ 7754: 0x9EA9,
+ 7755: 0x9EB8,
+ 7756: 0x9EAA,
+ 7757: 0x9EAD,
+ 7758: 0x9761,
+ 7759: 0x9ECC,
+ 7760: 0x9ECE,
+ 7761: 0x9ECF,
+ 7762: 0x9ED0,
+ 7763: 0x9ED4,
+ 7764: 0x9EDC,
+ 7765: 0x9EDE,
+ 7766: 0x9EDD,
+ 7767: 0x9EE0,
+ 7768: 0x9EE5,
+ 7769: 0x9EE8,
+ 7770: 0x9EEF,
+ 7771: 0x9EF4,
+ 7772: 0x9EF6,
+ 7773: 0x9EF7,
+ 7774: 0x9EF9,
+ 7775: 0x9EFB,
+ 7776: 0x9EFC,
+ 7777: 0x9EFD,
+ 7778: 0x9F07,
+ 7779: 0x9F08,
+ 7780: 0x76B7,
+ 7781: 0x9F15,
+ 7782: 0x9F21,
+ 7783: 0x9F2C,
+ 7784: 0x9F3E,
+ 7785: 0x9F4A,
+ 7786: 0x9F52,
+ 7787: 0x9F54,
+ 7788: 0x9F63,
+ 7789: 0x9F5F,
+ 7790: 0x9F60,
+ 7791: 0x9F61,
+ 7792: 0x9F66,
+ 7793: 0x9F67,
+ 7794: 0x9F6C,
+ 7795: 0x9F6A,
+ 7796: 0x9F77,
+ 7797: 0x9F72,
+ 7798: 0x9F76,
+ 7799: 0x9F95,
+ 7800: 0x9F9C,
+ 7801: 0x9FA0,
+ 7802: 0x582F,
+ 7803: 0x69C7,
+ 7804: 0x9059,
+ 7805: 0x7464,
+ 7806: 0x51DC,
+ 7807: 0x7199,
+ 8272: 0x7E8A,
+ 8273: 0x891C,
+ 8274: 0x9348,
+ 8275: 0x9288,
+ 8276: 0x84DC,
+ 8277: 0x4FC9,
+ 8278: 0x70BB,
+ 8279: 0x6631,
+ 8280: 0x68C8,
+ 8281: 0x92F9,
+ 8282: 0x66FB,
+ 8283: 0x5F45,
+ 8284: 0x4E28,
+ 8285: 0x4EE1,
+ 8286: 0x4EFC,
+ 8287: 0x4F00,
+ 8288: 0x4F03,
+ 8289: 0x4F39,
+ 8290: 0x4F56,
+ 8291: 0x4F92,
+ 8292: 0x4F8A,
+ 8293: 0x4F9A,
+ 8294: 0x4F94,
+ 8295: 0x4FCD,
+ 8296: 0x5040,
+ 8297: 0x5022,
+ 8298: 0x4FFF,
+ 8299: 0x501E,
+ 8300: 0x5046,
+ 8301: 0x5070,
+ 8302: 0x5042,
+ 8303: 0x5094,
+ 8304: 0x50F4,
+ 8305: 0x50D8,
+ 8306: 0x514A,
+ 8307: 0x5164,
+ 8308: 0x519D,
+ 8309: 0x51BE,
+ 8310: 0x51EC,
+ 8311: 0x5215,
+ 8312: 0x529C,
+ 8313: 0x52A6,
+ 8314: 0x52C0,
+ 8315: 0x52DB,
+ 8316: 0x5300,
+ 8317: 0x5307,
+ 8318: 0x5324,
+ 8319: 0x5372,
+ 8320: 0x5393,
+ 8321: 0x53B2,
+ 8322: 0x53DD,
+ 8323: 0xFA0E,
+ 8324: 0x549C,
+ 8325: 0x548A,
+ 8326: 0x54A9,
+ 8327: 0x54FF,
+ 8328: 0x5586,
+ 8329: 0x5759,
+ 8330: 0x5765,
+ 8331: 0x57AC,
+ 8332: 0x57C8,
+ 8333: 0x57C7,
+ 8334: 0xFA0F,
+ 8335: 0xFA10,
+ 8336: 0x589E,
+ 8337: 0x58B2,
+ 8338: 0x590B,
+ 8339: 0x5953,
+ 8340: 0x595B,
+ 8341: 0x595D,
+ 8342: 0x5963,
+ 8343: 0x59A4,
+ 8344: 0x59BA,
+ 8345: 0x5B56,
+ 8346: 0x5BC0,
+ 8347: 0x752F,
+ 8348: 0x5BD8,
+ 8349: 0x5BEC,
+ 8350: 0x5C1E,
+ 8351: 0x5CA6,
+ 8352: 0x5CBA,
+ 8353: 0x5CF5,
+ 8354: 0x5D27,
+ 8355: 0x5D53,
+ 8356: 0xFA11,
+ 8357: 0x5D42,
+ 8358: 0x5D6D,
+ 8359: 0x5DB8,
+ 8360: 0x5DB9,
+ 8361: 0x5DD0,
+ 8362: 0x5F21,
+ 8363: 0x5F34,
+ 8364: 0x5F67,
+ 8365: 0x5FB7,
+ 8366: 0x5FDE,
+ 8367: 0x605D,
+ 8368: 0x6085,
+ 8369: 0x608A,
+ 8370: 0x60DE,
+ 8371: 0x60D5,
+ 8372: 0x6120,
+ 8373: 0x60F2,
+ 8374: 0x6111,
+ 8375: 0x6137,
+ 8376: 0x6130,
+ 8377: 0x6198,
+ 8378: 0x6213,
+ 8379: 0x62A6,
+ 8380: 0x63F5,
+ 8381: 0x6460,
+ 8382: 0x649D,
+ 8383: 0x64CE,
+ 8384: 0x654E,
+ 8385: 0x6600,
+ 8386: 0x6615,
+ 8387: 0x663B,
+ 8388: 0x6609,
+ 8389: 0x662E,
+ 8390: 0x661E,
+ 8391: 0x6624,
+ 8392: 0x6665,
+ 8393: 0x6657,
+ 8394: 0x6659,
+ 8395: 0xFA12,
+ 8396: 0x6673,
+ 8397: 0x6699,
+ 8398: 0x66A0,
+ 8399: 0x66B2,
+ 8400: 0x66BF,
+ 8401: 0x66FA,
+ 8402: 0x670E,
+ 8403: 0xF929,
+ 8404: 0x6766,
+ 8405: 0x67BB,
+ 8406: 0x6852,
+ 8407: 0x67C0,
+ 8408: 0x6801,
+ 8409: 0x6844,
+ 8410: 0x68CF,
+ 8411: 0xFA13,
+ 8412: 0x6968,
+ 8413: 0xFA14,
+ 8414: 0x6998,
+ 8415: 0x69E2,
+ 8416: 0x6A30,
+ 8417: 0x6A6B,
+ 8418: 0x6A46,
+ 8419: 0x6A73,
+ 8420: 0x6A7E,
+ 8421: 0x6AE2,
+ 8422: 0x6AE4,
+ 8423: 0x6BD6,
+ 8424: 0x6C3F,
+ 8425: 0x6C5C,
+ 8426: 0x6C86,
+ 8427: 0x6C6F,
+ 8428: 0x6CDA,
+ 8429: 0x6D04,
+ 8430: 0x6D87,
+ 8431: 0x6D6F,
+ 8432: 0x6D96,
+ 8433: 0x6DAC,
+ 8434: 0x6DCF,
+ 8435: 0x6DF8,
+ 8436: 0x6DF2,
+ 8437: 0x6DFC,
+ 8438: 0x6E39,
+ 8439: 0x6E5C,
+ 8440: 0x6E27,
+ 8441: 0x6E3C,
+ 8442: 0x6EBF,
+ 8443: 0x6F88,
+ 8444: 0x6FB5,
+ 8445: 0x6FF5,
+ 8446: 0x7005,
+ 8447: 0x7007,
+ 8448: 0x7028,
+ 8449: 0x7085,
+ 8450: 0x70AB,
+ 8451: 0x710F,
+ 8452: 0x7104,
+ 8453: 0x715C,
+ 8454: 0x7146,
+ 8455: 0x7147,
+ 8456: 0xFA15,
+ 8457: 0x71C1,
+ 8458: 0x71FE,
+ 8459: 0x72B1,
+ 8460: 0x72BE,
+ 8461: 0x7324,
+ 8462: 0xFA16,
+ 8463: 0x7377,
+ 8464: 0x73BD,
+ 8465: 0x73C9,
+ 8466: 0x73D6,
+ 8467: 0x73E3,
+ 8468: 0x73D2,
+ 8469: 0x7407,
+ 8470: 0x73F5,
+ 8471: 0x7426,
+ 8472: 0x742A,
+ 8473: 0x7429,
+ 8474: 0x742E,
+ 8475: 0x7462,
+ 8476: 0x7489,
+ 8477: 0x749F,
+ 8478: 0x7501,
+ 8479: 0x756F,
+ 8480: 0x7682,
+ 8481: 0x769C,
+ 8482: 0x769E,
+ 8483: 0x769B,
+ 8484: 0x76A6,
+ 8485: 0xFA17,
+ 8486: 0x7746,
+ 8487: 0x52AF,
+ 8488: 0x7821,
+ 8489: 0x784E,
+ 8490: 0x7864,
+ 8491: 0x787A,
+ 8492: 0x7930,
+ 8493: 0xFA18,
+ 8494: 0xFA19,
+ 8495: 0xFA1A,
+ 8496: 0x7994,
+ 8497: 0xFA1B,
+ 8498: 0x799B,
+ 8499: 0x7AD1,
+ 8500: 0x7AE7,
+ 8501: 0xFA1C,
+ 8502: 0x7AEB,
+ 8503: 0x7B9E,
+ 8504: 0xFA1D,
+ 8505: 0x7D48,
+ 8506: 0x7D5C,
+ 8507: 0x7DB7,
+ 8508: 0x7DA0,
+ 8509: 0x7DD6,
+ 8510: 0x7E52,
+ 8511: 0x7F47,
+ 8512: 0x7FA1,
+ 8513: 0xFA1E,
+ 8514: 0x8301,
+ 8515: 0x8362,
+ 8516: 0x837F,
+ 8517: 0x83C7,
+ 8518: 0x83F6,
+ 8519: 0x8448,
+ 8520: 0x84B4,
+ 8521: 0x8553,
+ 8522: 0x8559,
+ 8523: 0x856B,
+ 8524: 0xFA1F,
+ 8525: 0x85B0,
+ 8526: 0xFA20,
+ 8527: 0xFA21,
+ 8528: 0x8807,
+ 8529: 0x88F5,
+ 8530: 0x8A12,
+ 8531: 0x8A37,
+ 8532: 0x8A79,
+ 8533: 0x8AA7,
+ 8534: 0x8ABE,
+ 8535: 0x8ADF,
+ 8536: 0xFA22,
+ 8537: 0x8AF6,
+ 8538: 0x8B53,
+ 8539: 0x8B7F,
+ 8540: 0x8CF0,
+ 8541: 0x8CF4,
+ 8542: 0x8D12,
+ 8543: 0x8D76,
+ 8544: 0xFA23,
+ 8545: 0x8ECF,
+ 8546: 0xFA24,
+ 8547: 0xFA25,
+ 8548: 0x9067,
+ 8549: 0x90DE,
+ 8550: 0xFA26,
+ 8551: 0x9115,
+ 8552: 0x9127,
+ 8553: 0x91DA,
+ 8554: 0x91D7,
+ 8555: 0x91DE,
+ 8556: 0x91ED,
+ 8557: 0x91EE,
+ 8558: 0x91E4,
+ 8559: 0x91E5,
+ 8560: 0x9206,
+ 8561: 0x9210,
+ 8562: 0x920A,
+ 8563: 0x923A,
+ 8564: 0x9240,
+ 8565: 0x923C,
+ 8566: 0x924E,
+ 8567: 0x9259,
+ 8568: 0x9251,
+ 8569: 0x9239,
+ 8570: 0x9267,
+ 8571: 0x92A7,
+ 8572: 0x9277,
+ 8573: 0x9278,
+ 8574: 0x92E7,
+ 8575: 0x92D7,
+ 8576: 0x92D9,
+ 8577: 0x92D0,
+ 8578: 0xFA27,
+ 8579: 0x92D5,
+ 8580: 0x92E0,
+ 8581: 0x92D3,
+ 8582: 0x9325,
+ 8583: 0x9321,
+ 8584: 0x92FB,
+ 8585: 0xFA28,
+ 8586: 0x931E,
+ 8587: 0x92FF,
+ 8588: 0x931D,
+ 8589: 0x9302,
+ 8590: 0x9370,
+ 8591: 0x9357,
+ 8592: 0x93A4,
+ 8593: 0x93C6,
+ 8594: 0x93DE,
+ 8595: 0x93F8,
+ 8596: 0x9431,
+ 8597: 0x9445,
+ 8598: 0x9448,
+ 8599: 0x9592,
+ 8600: 0xF9DC,
+ 8601: 0xFA29,
+ 8602: 0x969D,
+ 8603: 0x96AF,
+ 8604: 0x9733,
+ 8605: 0x973B,
+ 8606: 0x9743,
+ 8607: 0x974D,
+ 8608: 0x974F,
+ 8609: 0x9751,
+ 8610: 0x9755,
+ 8611: 0x9857,
+ 8612: 0x9865,
+ 8613: 0xFA2A,
+ 8614: 0xFA2B,
+ 8615: 0x9927,
+ 8616: 0xFA2C,
+ 8617: 0x999E,
+ 8618: 0x9A4E,
+ 8619: 0x9AD9,
+ 8620: 0x9ADC,
+ 8621: 0x9B75,
+ 8622: 0x9B72,
+ 8623: 0x9B8F,
+ 8624: 0x9BB1,
+ 8625: 0x9BBB,
+ 8626: 0x9C00,
+ 8627: 0x9D70,
+ 8628: 0x9D6B,
+ 8629: 0xFA2D,
+ 8630: 0x9E19,
+ 8631: 0x9ED1,
+ 8634: 0x2170,
+ 8635: 0x2171,
+ 8636: 0x2172,
+ 8637: 0x2173,
+ 8638: 0x2174,
+ 8639: 0x2175,
+ 8640: 0x2176,
+ 8641: 0x2177,
+ 8642: 0x2178,
+ 8643: 0x2179,
+ 8644: 0xFFE2,
+ 8645: 0xFFE4,
+ 8646: 0xFF07,
+ 8647: 0xFF02,
+ 10716: 0x2170,
+ 10717: 0x2171,
+ 10718: 0x2172,
+ 10719: 0x2173,
+ 10720: 0x2174,
+ 10721: 0x2175,
+ 10722: 0x2176,
+ 10723: 0x2177,
+ 10724: 0x2178,
+ 10725: 0x2179,
+ 10726: 0x2160,
+ 10727: 0x2161,
+ 10728: 0x2162,
+ 10729: 0x2163,
+ 10730: 0x2164,
+ 10731: 0x2165,
+ 10732: 0x2166,
+ 10733: 0x2167,
+ 10734: 0x2168,
+ 10735: 0x2169,
+ 10736: 0xFFE2,
+ 10737: 0xFFE4,
+ 10738: 0xFF07,
+ 10739: 0xFF02,
+ 10740: 0x3231,
+ 10741: 0x2116,
+ 10742: 0x2121,
+ 10743: 0x2235,
+ 10744: 0x7E8A,
+ 10745: 0x891C,
+ 10746: 0x9348,
+ 10747: 0x9288,
+ 10748: 0x84DC,
+ 10749: 0x4FC9,
+ 10750: 0x70BB,
+ 10751: 0x6631,
+ 10752: 0x68C8,
+ 10753: 0x92F9,
+ 10754: 0x66FB,
+ 10755: 0x5F45,
+ 10756: 0x4E28,
+ 10757: 0x4EE1,
+ 10758: 0x4EFC,
+ 10759: 0x4F00,
+ 10760: 0x4F03,
+ 10761: 0x4F39,
+ 10762: 0x4F56,
+ 10763: 0x4F92,
+ 10764: 0x4F8A,
+ 10765: 0x4F9A,
+ 10766: 0x4F94,
+ 10767: 0x4FCD,
+ 10768: 0x5040,
+ 10769: 0x5022,
+ 10770: 0x4FFF,
+ 10771: 0x501E,
+ 10772: 0x5046,
+ 10773: 0x5070,
+ 10774: 0x5042,
+ 10775: 0x5094,
+ 10776: 0x50F4,
+ 10777: 0x50D8,
+ 10778: 0x514A,
+ 10779: 0x5164,
+ 10780: 0x519D,
+ 10781: 0x51BE,
+ 10782: 0x51EC,
+ 10783: 0x5215,
+ 10784: 0x529C,
+ 10785: 0x52A6,
+ 10786: 0x52C0,
+ 10787: 0x52DB,
+ 10788: 0x5300,
+ 10789: 0x5307,
+ 10790: 0x5324,
+ 10791: 0x5372,
+ 10792: 0x5393,
+ 10793: 0x53B2,
+ 10794: 0x53DD,
+ 10795: 0xFA0E,
+ 10796: 0x549C,
+ 10797: 0x548A,
+ 10798: 0x54A9,
+ 10799: 0x54FF,
+ 10800: 0x5586,
+ 10801: 0x5759,
+ 10802: 0x5765,
+ 10803: 0x57AC,
+ 10804: 0x57C8,
+ 10805: 0x57C7,
+ 10806: 0xFA0F,
+ 10807: 0xFA10,
+ 10808: 0x589E,
+ 10809: 0x58B2,
+ 10810: 0x590B,
+ 10811: 0x5953,
+ 10812: 0x595B,
+ 10813: 0x595D,
+ 10814: 0x5963,
+ 10815: 0x59A4,
+ 10816: 0x59BA,
+ 10817: 0x5B56,
+ 10818: 0x5BC0,
+ 10819: 0x752F,
+ 10820: 0x5BD8,
+ 10821: 0x5BEC,
+ 10822: 0x5C1E,
+ 10823: 0x5CA6,
+ 10824: 0x5CBA,
+ 10825: 0x5CF5,
+ 10826: 0x5D27,
+ 10827: 0x5D53,
+ 10828: 0xFA11,
+ 10829: 0x5D42,
+ 10830: 0x5D6D,
+ 10831: 0x5DB8,
+ 10832: 0x5DB9,
+ 10833: 0x5DD0,
+ 10834: 0x5F21,
+ 10835: 0x5F34,
+ 10836: 0x5F67,
+ 10837: 0x5FB7,
+ 10838: 0x5FDE,
+ 10839: 0x605D,
+ 10840: 0x6085,
+ 10841: 0x608A,
+ 10842: 0x60DE,
+ 10843: 0x60D5,
+ 10844: 0x6120,
+ 10845: 0x60F2,
+ 10846: 0x6111,
+ 10847: 0x6137,
+ 10848: 0x6130,
+ 10849: 0x6198,
+ 10850: 0x6213,
+ 10851: 0x62A6,
+ 10852: 0x63F5,
+ 10853: 0x6460,
+ 10854: 0x649D,
+ 10855: 0x64CE,
+ 10856: 0x654E,
+ 10857: 0x6600,
+ 10858: 0x6615,
+ 10859: 0x663B,
+ 10860: 0x6609,
+ 10861: 0x662E,
+ 10862: 0x661E,
+ 10863: 0x6624,
+ 10864: 0x6665,
+ 10865: 0x6657,
+ 10866: 0x6659,
+ 10867: 0xFA12,
+ 10868: 0x6673,
+ 10869: 0x6699,
+ 10870: 0x66A0,
+ 10871: 0x66B2,
+ 10872: 0x66BF,
+ 10873: 0x66FA,
+ 10874: 0x670E,
+ 10875: 0xF929,
+ 10876: 0x6766,
+ 10877: 0x67BB,
+ 10878: 0x6852,
+ 10879: 0x67C0,
+ 10880: 0x6801,
+ 10881: 0x6844,
+ 10882: 0x68CF,
+ 10883: 0xFA13,
+ 10884: 0x6968,
+ 10885: 0xFA14,
+ 10886: 0x6998,
+ 10887: 0x69E2,
+ 10888: 0x6A30,
+ 10889: 0x6A6B,
+ 10890: 0x6A46,
+ 10891: 0x6A73,
+ 10892: 0x6A7E,
+ 10893: 0x6AE2,
+ 10894: 0x6AE4,
+ 10895: 0x6BD6,
+ 10896: 0x6C3F,
+ 10897: 0x6C5C,
+ 10898: 0x6C86,
+ 10899: 0x6C6F,
+ 10900: 0x6CDA,
+ 10901: 0x6D04,
+ 10902: 0x6D87,
+ 10903: 0x6D6F,
+ 10904: 0x6D96,
+ 10905: 0x6DAC,
+ 10906: 0x6DCF,
+ 10907: 0x6DF8,
+ 10908: 0x6DF2,
+ 10909: 0x6DFC,
+ 10910: 0x6E39,
+ 10911: 0x6E5C,
+ 10912: 0x6E27,
+ 10913: 0x6E3C,
+ 10914: 0x6EBF,
+ 10915: 0x6F88,
+ 10916: 0x6FB5,
+ 10917: 0x6FF5,
+ 10918: 0x7005,
+ 10919: 0x7007,
+ 10920: 0x7028,
+ 10921: 0x7085,
+ 10922: 0x70AB,
+ 10923: 0x710F,
+ 10924: 0x7104,
+ 10925: 0x715C,
+ 10926: 0x7146,
+ 10927: 0x7147,
+ 10928: 0xFA15,
+ 10929: 0x71C1,
+ 10930: 0x71FE,
+ 10931: 0x72B1,
+ 10932: 0x72BE,
+ 10933: 0x7324,
+ 10934: 0xFA16,
+ 10935: 0x7377,
+ 10936: 0x73BD,
+ 10937: 0x73C9,
+ 10938: 0x73D6,
+ 10939: 0x73E3,
+ 10940: 0x73D2,
+ 10941: 0x7407,
+ 10942: 0x73F5,
+ 10943: 0x7426,
+ 10944: 0x742A,
+ 10945: 0x7429,
+ 10946: 0x742E,
+ 10947: 0x7462,
+ 10948: 0x7489,
+ 10949: 0x749F,
+ 10950: 0x7501,
+ 10951: 0x756F,
+ 10952: 0x7682,
+ 10953: 0x769C,
+ 10954: 0x769E,
+ 10955: 0x769B,
+ 10956: 0x76A6,
+ 10957: 0xFA17,
+ 10958: 0x7746,
+ 10959: 0x52AF,
+ 10960: 0x7821,
+ 10961: 0x784E,
+ 10962: 0x7864,
+ 10963: 0x787A,
+ 10964: 0x7930,
+ 10965: 0xFA18,
+ 10966: 0xFA19,
+ 10967: 0xFA1A,
+ 10968: 0x7994,
+ 10969: 0xFA1B,
+ 10970: 0x799B,
+ 10971: 0x7AD1,
+ 10972: 0x7AE7,
+ 10973: 0xFA1C,
+ 10974: 0x7AEB,
+ 10975: 0x7B9E,
+ 10976: 0xFA1D,
+ 10977: 0x7D48,
+ 10978: 0x7D5C,
+ 10979: 0x7DB7,
+ 10980: 0x7DA0,
+ 10981: 0x7DD6,
+ 10982: 0x7E52,
+ 10983: 0x7F47,
+ 10984: 0x7FA1,
+ 10985: 0xFA1E,
+ 10986: 0x8301,
+ 10987: 0x8362,
+ 10988: 0x837F,
+ 10989: 0x83C7,
+ 10990: 0x83F6,
+ 10991: 0x8448,
+ 10992: 0x84B4,
+ 10993: 0x8553,
+ 10994: 0x8559,
+ 10995: 0x856B,
+ 10996: 0xFA1F,
+ 10997: 0x85B0,
+ 10998: 0xFA20,
+ 10999: 0xFA21,
+ 11000: 0x8807,
+ 11001: 0x88F5,
+ 11002: 0x8A12,
+ 11003: 0x8A37,
+ 11004: 0x8A79,
+ 11005: 0x8AA7,
+ 11006: 0x8ABE,
+ 11007: 0x8ADF,
+ 11008: 0xFA22,
+ 11009: 0x8AF6,
+ 11010: 0x8B53,
+ 11011: 0x8B7F,
+ 11012: 0x8CF0,
+ 11013: 0x8CF4,
+ 11014: 0x8D12,
+ 11015: 0x8D76,
+ 11016: 0xFA23,
+ 11017: 0x8ECF,
+ 11018: 0xFA24,
+ 11019: 0xFA25,
+ 11020: 0x9067,
+ 11021: 0x90DE,
+ 11022: 0xFA26,
+ 11023: 0x9115,
+ 11024: 0x9127,
+ 11025: 0x91DA,
+ 11026: 0x91D7,
+ 11027: 0x91DE,
+ 11028: 0x91ED,
+ 11029: 0x91EE,
+ 11030: 0x91E4,
+ 11031: 0x91E5,
+ 11032: 0x9206,
+ 11033: 0x9210,
+ 11034: 0x920A,
+ 11035: 0x923A,
+ 11036: 0x9240,
+ 11037: 0x923C,
+ 11038: 0x924E,
+ 11039: 0x9259,
+ 11040: 0x9251,
+ 11041: 0x9239,
+ 11042: 0x9267,
+ 11043: 0x92A7,
+ 11044: 0x9277,
+ 11045: 0x9278,
+ 11046: 0x92E7,
+ 11047: 0x92D7,
+ 11048: 0x92D9,
+ 11049: 0x92D0,
+ 11050: 0xFA27,
+ 11051: 0x92D5,
+ 11052: 0x92E0,
+ 11053: 0x92D3,
+ 11054: 0x9325,
+ 11055: 0x9321,
+ 11056: 0x92FB,
+ 11057: 0xFA28,
+ 11058: 0x931E,
+ 11059: 0x92FF,
+ 11060: 0x931D,
+ 11061: 0x9302,
+ 11062: 0x9370,
+ 11063: 0x9357,
+ 11064: 0x93A4,
+ 11065: 0x93C6,
+ 11066: 0x93DE,
+ 11067: 0x93F8,
+ 11068: 0x9431,
+ 11069: 0x9445,
+ 11070: 0x9448,
+ 11071: 0x9592,
+ 11072: 0xF9DC,
+ 11073: 0xFA29,
+ 11074: 0x969D,
+ 11075: 0x96AF,
+ 11076: 0x9733,
+ 11077: 0x973B,
+ 11078: 0x9743,
+ 11079: 0x974D,
+ 11080: 0x974F,
+ 11081: 0x9751,
+ 11082: 0x9755,
+ 11083: 0x9857,
+ 11084: 0x9865,
+ 11085: 0xFA2A,
+ 11086: 0xFA2B,
+ 11087: 0x9927,
+ 11088: 0xFA2C,
+ 11089: 0x999E,
+ 11090: 0x9A4E,
+ 11091: 0x9AD9,
+ 11092: 0x9ADC,
+ 11093: 0x9B75,
+ 11094: 0x9B72,
+ 11095: 0x9B8F,
+ 11096: 0x9BB1,
+ 11097: 0x9BBB,
+ 11098: 0x9C00,
+ 11099: 0x9D70,
+ 11100: 0x9D6B,
+ 11101: 0xFA2D,
+ 11102: 0x9E19,
+ 11103: 0x9ED1,
+}
+
+// jis0212Decode is the decoding table from JIS 0212 code to Unicode.
+// It is defined at http://encoding.spec.whatwg.org/index-jis0212.txt
+var jis0212Decode = [...]uint16{
+ 108: 0x02D8,
+ 109: 0x02C7,
+ 110: 0x00B8,
+ 111: 0x02D9,
+ 112: 0x02DD,
+ 113: 0x00AF,
+ 114: 0x02DB,
+ 115: 0x02DA,
+ 116: 0xFF5E,
+ 117: 0x0384,
+ 118: 0x0385,
+ 127: 0x00A1,
+ 128: 0x00A6,
+ 129: 0x00BF,
+ 168: 0x00BA,
+ 169: 0x00AA,
+ 170: 0x00A9,
+ 171: 0x00AE,
+ 172: 0x2122,
+ 173: 0x00A4,
+ 174: 0x2116,
+ 534: 0x0386,
+ 535: 0x0388,
+ 536: 0x0389,
+ 537: 0x038A,
+ 538: 0x03AA,
+ 540: 0x038C,
+ 542: 0x038E,
+ 543: 0x03AB,
+ 545: 0x038F,
+ 550: 0x03AC,
+ 551: 0x03AD,
+ 552: 0x03AE,
+ 553: 0x03AF,
+ 554: 0x03CA,
+ 555: 0x0390,
+ 556: 0x03CC,
+ 557: 0x03C2,
+ 558: 0x03CD,
+ 559: 0x03CB,
+ 560: 0x03B0,
+ 561: 0x03CE,
+ 597: 0x0402,
+ 598: 0x0403,
+ 599: 0x0404,
+ 600: 0x0405,
+ 601: 0x0406,
+ 602: 0x0407,
+ 603: 0x0408,
+ 604: 0x0409,
+ 605: 0x040A,
+ 606: 0x040B,
+ 607: 0x040C,
+ 608: 0x040E,
+ 609: 0x040F,
+ 645: 0x0452,
+ 646: 0x0453,
+ 647: 0x0454,
+ 648: 0x0455,
+ 649: 0x0456,
+ 650: 0x0457,
+ 651: 0x0458,
+ 652: 0x0459,
+ 653: 0x045A,
+ 654: 0x045B,
+ 655: 0x045C,
+ 656: 0x045E,
+ 657: 0x045F,
+ 752: 0x00C6,
+ 753: 0x0110,
+ 755: 0x0126,
+ 757: 0x0132,
+ 759: 0x0141,
+ 760: 0x013F,
+ 762: 0x014A,
+ 763: 0x00D8,
+ 764: 0x0152,
+ 766: 0x0166,
+ 767: 0x00DE,
+ 784: 0x00E6,
+ 785: 0x0111,
+ 786: 0x00F0,
+ 787: 0x0127,
+ 788: 0x0131,
+ 789: 0x0133,
+ 790: 0x0138,
+ 791: 0x0142,
+ 792: 0x0140,
+ 793: 0x0149,
+ 794: 0x014B,
+ 795: 0x00F8,
+ 796: 0x0153,
+ 797: 0x00DF,
+ 798: 0x0167,
+ 799: 0x00FE,
+ 846: 0x00C1,
+ 847: 0x00C0,
+ 848: 0x00C4,
+ 849: 0x00C2,
+ 850: 0x0102,
+ 851: 0x01CD,
+ 852: 0x0100,
+ 853: 0x0104,
+ 854: 0x00C5,
+ 855: 0x00C3,
+ 856: 0x0106,
+ 857: 0x0108,
+ 858: 0x010C,
+ 859: 0x00C7,
+ 860: 0x010A,
+ 861: 0x010E,
+ 862: 0x00C9,
+ 863: 0x00C8,
+ 864: 0x00CB,
+ 865: 0x00CA,
+ 866: 0x011A,
+ 867: 0x0116,
+ 868: 0x0112,
+ 869: 0x0118,
+ 871: 0x011C,
+ 872: 0x011E,
+ 873: 0x0122,
+ 874: 0x0120,
+ 875: 0x0124,
+ 876: 0x00CD,
+ 877: 0x00CC,
+ 878: 0x00CF,
+ 879: 0x00CE,
+ 880: 0x01CF,
+ 881: 0x0130,
+ 882: 0x012A,
+ 883: 0x012E,
+ 884: 0x0128,
+ 885: 0x0134,
+ 886: 0x0136,
+ 887: 0x0139,
+ 888: 0x013D,
+ 889: 0x013B,
+ 890: 0x0143,
+ 891: 0x0147,
+ 892: 0x0145,
+ 893: 0x00D1,
+ 894: 0x00D3,
+ 895: 0x00D2,
+ 896: 0x00D6,
+ 897: 0x00D4,
+ 898: 0x01D1,
+ 899: 0x0150,
+ 900: 0x014C,
+ 901: 0x00D5,
+ 902: 0x0154,
+ 903: 0x0158,
+ 904: 0x0156,
+ 905: 0x015A,
+ 906: 0x015C,
+ 907: 0x0160,
+ 908: 0x015E,
+ 909: 0x0164,
+ 910: 0x0162,
+ 911: 0x00DA,
+ 912: 0x00D9,
+ 913: 0x00DC,
+ 914: 0x00DB,
+ 915: 0x016C,
+ 916: 0x01D3,
+ 917: 0x0170,
+ 918: 0x016A,
+ 919: 0x0172,
+ 920: 0x016E,
+ 921: 0x0168,
+ 922: 0x01D7,
+ 923: 0x01DB,
+ 924: 0x01D9,
+ 925: 0x01D5,
+ 926: 0x0174,
+ 927: 0x00DD,
+ 928: 0x0178,
+ 929: 0x0176,
+ 930: 0x0179,
+ 931: 0x017D,
+ 932: 0x017B,
+ 940: 0x00E1,
+ 941: 0x00E0,
+ 942: 0x00E4,
+ 943: 0x00E2,
+ 944: 0x0103,
+ 945: 0x01CE,
+ 946: 0x0101,
+ 947: 0x0105,
+ 948: 0x00E5,
+ 949: 0x00E3,
+ 950: 0x0107,
+ 951: 0x0109,
+ 952: 0x010D,
+ 953: 0x00E7,
+ 954: 0x010B,
+ 955: 0x010F,
+ 956: 0x00E9,
+ 957: 0x00E8,
+ 958: 0x00EB,
+ 959: 0x00EA,
+ 960: 0x011B,
+ 961: 0x0117,
+ 962: 0x0113,
+ 963: 0x0119,
+ 964: 0x01F5,
+ 965: 0x011D,
+ 966: 0x011F,
+ 968: 0x0121,
+ 969: 0x0125,
+ 970: 0x00ED,
+ 971: 0x00EC,
+ 972: 0x00EF,
+ 973: 0x00EE,
+ 974: 0x01D0,
+ 976: 0x012B,
+ 977: 0x012F,
+ 978: 0x0129,
+ 979: 0x0135,
+ 980: 0x0137,
+ 981: 0x013A,
+ 982: 0x013E,
+ 983: 0x013C,
+ 984: 0x0144,
+ 985: 0x0148,
+ 986: 0x0146,
+ 987: 0x00F1,
+ 988: 0x00F3,
+ 989: 0x00F2,
+ 990: 0x00F6,
+ 991: 0x00F4,
+ 992: 0x01D2,
+ 993: 0x0151,
+ 994: 0x014D,
+ 995: 0x00F5,
+ 996: 0x0155,
+ 997: 0x0159,
+ 998: 0x0157,
+ 999: 0x015B,
+ 1000: 0x015D,
+ 1001: 0x0161,
+ 1002: 0x015F,
+ 1003: 0x0165,
+ 1004: 0x0163,
+ 1005: 0x00FA,
+ 1006: 0x00F9,
+ 1007: 0x00FC,
+ 1008: 0x00FB,
+ 1009: 0x016D,
+ 1010: 0x01D4,
+ 1011: 0x0171,
+ 1012: 0x016B,
+ 1013: 0x0173,
+ 1014: 0x016F,
+ 1015: 0x0169,
+ 1016: 0x01D8,
+ 1017: 0x01DC,
+ 1018: 0x01DA,
+ 1019: 0x01D6,
+ 1020: 0x0175,
+ 1021: 0x00FD,
+ 1022: 0x00FF,
+ 1023: 0x0177,
+ 1024: 0x017A,
+ 1025: 0x017E,
+ 1026: 0x017C,
+ 1410: 0x4E02,
+ 1411: 0x4E04,
+ 1412: 0x4E05,
+ 1413: 0x4E0C,
+ 1414: 0x4E12,
+ 1415: 0x4E1F,
+ 1416: 0x4E23,
+ 1417: 0x4E24,
+ 1418: 0x4E28,
+ 1419: 0x4E2B,
+ 1420: 0x4E2E,
+ 1421: 0x4E2F,
+ 1422: 0x4E30,
+ 1423: 0x4E35,
+ 1424: 0x4E40,
+ 1425: 0x4E41,
+ 1426: 0x4E44,
+ 1427: 0x4E47,
+ 1428: 0x4E51,
+ 1429: 0x4E5A,
+ 1430: 0x4E5C,
+ 1431: 0x4E63,
+ 1432: 0x4E68,
+ 1433: 0x4E69,
+ 1434: 0x4E74,
+ 1435: 0x4E75,
+ 1436: 0x4E79,
+ 1437: 0x4E7F,
+ 1438: 0x4E8D,
+ 1439: 0x4E96,
+ 1440: 0x4E97,
+ 1441: 0x4E9D,
+ 1442: 0x4EAF,
+ 1443: 0x4EB9,
+ 1444: 0x4EC3,
+ 1445: 0x4ED0,
+ 1446: 0x4EDA,
+ 1447: 0x4EDB,
+ 1448: 0x4EE0,
+ 1449: 0x4EE1,
+ 1450: 0x4EE2,
+ 1451: 0x4EE8,
+ 1452: 0x4EEF,
+ 1453: 0x4EF1,
+ 1454: 0x4EF3,
+ 1455: 0x4EF5,
+ 1456: 0x4EFD,
+ 1457: 0x4EFE,
+ 1458: 0x4EFF,
+ 1459: 0x4F00,
+ 1460: 0x4F02,
+ 1461: 0x4F03,
+ 1462: 0x4F08,
+ 1463: 0x4F0B,
+ 1464: 0x4F0C,
+ 1465: 0x4F12,
+ 1466: 0x4F15,
+ 1467: 0x4F16,
+ 1468: 0x4F17,
+ 1469: 0x4F19,
+ 1470: 0x4F2E,
+ 1471: 0x4F31,
+ 1472: 0x4F60,
+ 1473: 0x4F33,
+ 1474: 0x4F35,
+ 1475: 0x4F37,
+ 1476: 0x4F39,
+ 1477: 0x4F3B,
+ 1478: 0x4F3E,
+ 1479: 0x4F40,
+ 1480: 0x4F42,
+ 1481: 0x4F48,
+ 1482: 0x4F49,
+ 1483: 0x4F4B,
+ 1484: 0x4F4C,
+ 1485: 0x4F52,
+ 1486: 0x4F54,
+ 1487: 0x4F56,
+ 1488: 0x4F58,
+ 1489: 0x4F5F,
+ 1490: 0x4F63,
+ 1491: 0x4F6A,
+ 1492: 0x4F6C,
+ 1493: 0x4F6E,
+ 1494: 0x4F71,
+ 1495: 0x4F77,
+ 1496: 0x4F78,
+ 1497: 0x4F79,
+ 1498: 0x4F7A,
+ 1499: 0x4F7D,
+ 1500: 0x4F7E,
+ 1501: 0x4F81,
+ 1502: 0x4F82,
+ 1503: 0x4F84,
+ 1504: 0x4F85,
+ 1505: 0x4F89,
+ 1506: 0x4F8A,
+ 1507: 0x4F8C,
+ 1508: 0x4F8E,
+ 1509: 0x4F90,
+ 1510: 0x4F92,
+ 1511: 0x4F93,
+ 1512: 0x4F94,
+ 1513: 0x4F97,
+ 1514: 0x4F99,
+ 1515: 0x4F9A,
+ 1516: 0x4F9E,
+ 1517: 0x4F9F,
+ 1518: 0x4FB2,
+ 1519: 0x4FB7,
+ 1520: 0x4FB9,
+ 1521: 0x4FBB,
+ 1522: 0x4FBC,
+ 1523: 0x4FBD,
+ 1524: 0x4FBE,
+ 1525: 0x4FC0,
+ 1526: 0x4FC1,
+ 1527: 0x4FC5,
+ 1528: 0x4FC6,
+ 1529: 0x4FC8,
+ 1530: 0x4FC9,
+ 1531: 0x4FCB,
+ 1532: 0x4FCC,
+ 1533: 0x4FCD,
+ 1534: 0x4FCF,
+ 1535: 0x4FD2,
+ 1536: 0x4FDC,
+ 1537: 0x4FE0,
+ 1538: 0x4FE2,
+ 1539: 0x4FF0,
+ 1540: 0x4FF2,
+ 1541: 0x4FFC,
+ 1542: 0x4FFD,
+ 1543: 0x4FFF,
+ 1544: 0x5000,
+ 1545: 0x5001,
+ 1546: 0x5004,
+ 1547: 0x5007,
+ 1548: 0x500A,
+ 1549: 0x500C,
+ 1550: 0x500E,
+ 1551: 0x5010,
+ 1552: 0x5013,
+ 1553: 0x5017,
+ 1554: 0x5018,
+ 1555: 0x501B,
+ 1556: 0x501C,
+ 1557: 0x501D,
+ 1558: 0x501E,
+ 1559: 0x5022,
+ 1560: 0x5027,
+ 1561: 0x502E,
+ 1562: 0x5030,
+ 1563: 0x5032,
+ 1564: 0x5033,
+ 1565: 0x5035,
+ 1566: 0x5040,
+ 1567: 0x5041,
+ 1568: 0x5042,
+ 1569: 0x5045,
+ 1570: 0x5046,
+ 1571: 0x504A,
+ 1572: 0x504C,
+ 1573: 0x504E,
+ 1574: 0x5051,
+ 1575: 0x5052,
+ 1576: 0x5053,
+ 1577: 0x5057,
+ 1578: 0x5059,
+ 1579: 0x505F,
+ 1580: 0x5060,
+ 1581: 0x5062,
+ 1582: 0x5063,
+ 1583: 0x5066,
+ 1584: 0x5067,
+ 1585: 0x506A,
+ 1586: 0x506D,
+ 1587: 0x5070,
+ 1588: 0x5071,
+ 1589: 0x503B,
+ 1590: 0x5081,
+ 1591: 0x5083,
+ 1592: 0x5084,
+ 1593: 0x5086,
+ 1594: 0x508A,
+ 1595: 0x508E,
+ 1596: 0x508F,
+ 1597: 0x5090,
+ 1598: 0x5092,
+ 1599: 0x5093,
+ 1600: 0x5094,
+ 1601: 0x5096,
+ 1602: 0x509B,
+ 1603: 0x509C,
+ 1604: 0x509E,
+ 1605: 0x509F,
+ 1606: 0x50A0,
+ 1607: 0x50A1,
+ 1608: 0x50A2,
+ 1609: 0x50AA,
+ 1610: 0x50AF,
+ 1611: 0x50B0,
+ 1612: 0x50B9,
+ 1613: 0x50BA,
+ 1614: 0x50BD,
+ 1615: 0x50C0,
+ 1616: 0x50C3,
+ 1617: 0x50C4,
+ 1618: 0x50C7,
+ 1619: 0x50CC,
+ 1620: 0x50CE,
+ 1621: 0x50D0,
+ 1622: 0x50D3,
+ 1623: 0x50D4,
+ 1624: 0x50D8,
+ 1625: 0x50DC,
+ 1626: 0x50DD,
+ 1627: 0x50DF,
+ 1628: 0x50E2,
+ 1629: 0x50E4,
+ 1630: 0x50E6,
+ 1631: 0x50E8,
+ 1632: 0x50E9,
+ 1633: 0x50EF,
+ 1634: 0x50F1,
+ 1635: 0x50F6,
+ 1636: 0x50FA,
+ 1637: 0x50FE,
+ 1638: 0x5103,
+ 1639: 0x5106,
+ 1640: 0x5107,
+ 1641: 0x5108,
+ 1642: 0x510B,
+ 1643: 0x510C,
+ 1644: 0x510D,
+ 1645: 0x510E,
+ 1646: 0x50F2,
+ 1647: 0x5110,
+ 1648: 0x5117,
+ 1649: 0x5119,
+ 1650: 0x511B,
+ 1651: 0x511C,
+ 1652: 0x511D,
+ 1653: 0x511E,
+ 1654: 0x5123,
+ 1655: 0x5127,
+ 1656: 0x5128,
+ 1657: 0x512C,
+ 1658: 0x512D,
+ 1659: 0x512F,
+ 1660: 0x5131,
+ 1661: 0x5133,
+ 1662: 0x5134,
+ 1663: 0x5135,
+ 1664: 0x5138,
+ 1665: 0x5139,
+ 1666: 0x5142,
+ 1667: 0x514A,
+ 1668: 0x514F,
+ 1669: 0x5153,
+ 1670: 0x5155,
+ 1671: 0x5157,
+ 1672: 0x5158,
+ 1673: 0x515F,
+ 1674: 0x5164,
+ 1675: 0x5166,
+ 1676: 0x517E,
+ 1677: 0x5183,
+ 1678: 0x5184,
+ 1679: 0x518B,
+ 1680: 0x518E,
+ 1681: 0x5198,
+ 1682: 0x519D,
+ 1683: 0x51A1,
+ 1684: 0x51A3,
+ 1685: 0x51AD,
+ 1686: 0x51B8,
+ 1687: 0x51BA,
+ 1688: 0x51BC,
+ 1689: 0x51BE,
+ 1690: 0x51BF,
+ 1691: 0x51C2,
+ 1692: 0x51C8,
+ 1693: 0x51CF,
+ 1694: 0x51D1,
+ 1695: 0x51D2,
+ 1696: 0x51D3,
+ 1697: 0x51D5,
+ 1698: 0x51D8,
+ 1699: 0x51DE,
+ 1700: 0x51E2,
+ 1701: 0x51E5,
+ 1702: 0x51EE,
+ 1703: 0x51F2,
+ 1704: 0x51F3,
+ 1705: 0x51F4,
+ 1706: 0x51F7,
+ 1707: 0x5201,
+ 1708: 0x5202,
+ 1709: 0x5205,
+ 1710: 0x5212,
+ 1711: 0x5213,
+ 1712: 0x5215,
+ 1713: 0x5216,
+ 1714: 0x5218,
+ 1715: 0x5222,
+ 1716: 0x5228,
+ 1717: 0x5231,
+ 1718: 0x5232,
+ 1719: 0x5235,
+ 1720: 0x523C,
+ 1721: 0x5245,
+ 1722: 0x5249,
+ 1723: 0x5255,
+ 1724: 0x5257,
+ 1725: 0x5258,
+ 1726: 0x525A,
+ 1727: 0x525C,
+ 1728: 0x525F,
+ 1729: 0x5260,
+ 1730: 0x5261,
+ 1731: 0x5266,
+ 1732: 0x526E,
+ 1733: 0x5277,
+ 1734: 0x5278,
+ 1735: 0x5279,
+ 1736: 0x5280,
+ 1737: 0x5282,
+ 1738: 0x5285,
+ 1739: 0x528A,
+ 1740: 0x528C,
+ 1741: 0x5293,
+ 1742: 0x5295,
+ 1743: 0x5296,
+ 1744: 0x5297,
+ 1745: 0x5298,
+ 1746: 0x529A,
+ 1747: 0x529C,
+ 1748: 0x52A4,
+ 1749: 0x52A5,
+ 1750: 0x52A6,
+ 1751: 0x52A7,
+ 1752: 0x52AF,
+ 1753: 0x52B0,
+ 1754: 0x52B6,
+ 1755: 0x52B7,
+ 1756: 0x52B8,
+ 1757: 0x52BA,
+ 1758: 0x52BB,
+ 1759: 0x52BD,
+ 1760: 0x52C0,
+ 1761: 0x52C4,
+ 1762: 0x52C6,
+ 1763: 0x52C8,
+ 1764: 0x52CC,
+ 1765: 0x52CF,
+ 1766: 0x52D1,
+ 1767: 0x52D4,
+ 1768: 0x52D6,
+ 1769: 0x52DB,
+ 1770: 0x52DC,
+ 1771: 0x52E1,
+ 1772: 0x52E5,
+ 1773: 0x52E8,
+ 1774: 0x52E9,
+ 1775: 0x52EA,
+ 1776: 0x52EC,
+ 1777: 0x52F0,
+ 1778: 0x52F1,
+ 1779: 0x52F4,
+ 1780: 0x52F6,
+ 1781: 0x52F7,
+ 1782: 0x5300,
+ 1783: 0x5303,
+ 1784: 0x530A,
+ 1785: 0x530B,
+ 1786: 0x530C,
+ 1787: 0x5311,
+ 1788: 0x5313,
+ 1789: 0x5318,
+ 1790: 0x531B,
+ 1791: 0x531C,
+ 1792: 0x531E,
+ 1793: 0x531F,
+ 1794: 0x5325,
+ 1795: 0x5327,
+ 1796: 0x5328,
+ 1797: 0x5329,
+ 1798: 0x532B,
+ 1799: 0x532C,
+ 1800: 0x532D,
+ 1801: 0x5330,
+ 1802: 0x5332,
+ 1803: 0x5335,
+ 1804: 0x533C,
+ 1805: 0x533D,
+ 1806: 0x533E,
+ 1807: 0x5342,
+ 1808: 0x534C,
+ 1809: 0x534B,
+ 1810: 0x5359,
+ 1811: 0x535B,
+ 1812: 0x5361,
+ 1813: 0x5363,
+ 1814: 0x5365,
+ 1815: 0x536C,
+ 1816: 0x536D,
+ 1817: 0x5372,
+ 1818: 0x5379,
+ 1819: 0x537E,
+ 1820: 0x5383,
+ 1821: 0x5387,
+ 1822: 0x5388,
+ 1823: 0x538E,
+ 1824: 0x5393,
+ 1825: 0x5394,
+ 1826: 0x5399,
+ 1827: 0x539D,
+ 1828: 0x53A1,
+ 1829: 0x53A4,
+ 1830: 0x53AA,
+ 1831: 0x53AB,
+ 1832: 0x53AF,
+ 1833: 0x53B2,
+ 1834: 0x53B4,
+ 1835: 0x53B5,
+ 1836: 0x53B7,
+ 1837: 0x53B8,
+ 1838: 0x53BA,
+ 1839: 0x53BD,
+ 1840: 0x53C0,
+ 1841: 0x53C5,
+ 1842: 0x53CF,
+ 1843: 0x53D2,
+ 1844: 0x53D3,
+ 1845: 0x53D5,
+ 1846: 0x53DA,
+ 1847: 0x53DD,
+ 1848: 0x53DE,
+ 1849: 0x53E0,
+ 1850: 0x53E6,
+ 1851: 0x53E7,
+ 1852: 0x53F5,
+ 1853: 0x5402,
+ 1854: 0x5413,
+ 1855: 0x541A,
+ 1856: 0x5421,
+ 1857: 0x5427,
+ 1858: 0x5428,
+ 1859: 0x542A,
+ 1860: 0x542F,
+ 1861: 0x5431,
+ 1862: 0x5434,
+ 1863: 0x5435,
+ 1864: 0x5443,
+ 1865: 0x5444,
+ 1866: 0x5447,
+ 1867: 0x544D,
+ 1868: 0x544F,
+ 1869: 0x545E,
+ 1870: 0x5462,
+ 1871: 0x5464,
+ 1872: 0x5466,
+ 1873: 0x5467,
+ 1874: 0x5469,
+ 1875: 0x546B,
+ 1876: 0x546D,
+ 1877: 0x546E,
+ 1878: 0x5474,
+ 1879: 0x547F,
+ 1880: 0x5481,
+ 1881: 0x5483,
+ 1882: 0x5485,
+ 1883: 0x5488,
+ 1884: 0x5489,
+ 1885: 0x548D,
+ 1886: 0x5491,
+ 1887: 0x5495,
+ 1888: 0x5496,
+ 1889: 0x549C,
+ 1890: 0x549F,
+ 1891: 0x54A1,
+ 1892: 0x54A6,
+ 1893: 0x54A7,
+ 1894: 0x54A9,
+ 1895: 0x54AA,
+ 1896: 0x54AD,
+ 1897: 0x54AE,
+ 1898: 0x54B1,
+ 1899: 0x54B7,
+ 1900: 0x54B9,
+ 1901: 0x54BA,
+ 1902: 0x54BB,
+ 1903: 0x54BF,
+ 1904: 0x54C6,
+ 1905: 0x54CA,
+ 1906: 0x54CD,
+ 1907: 0x54CE,
+ 1908: 0x54E0,
+ 1909: 0x54EA,
+ 1910: 0x54EC,
+ 1911: 0x54EF,
+ 1912: 0x54F6,
+ 1913: 0x54FC,
+ 1914: 0x54FE,
+ 1915: 0x54FF,
+ 1916: 0x5500,
+ 1917: 0x5501,
+ 1918: 0x5505,
+ 1919: 0x5508,
+ 1920: 0x5509,
+ 1921: 0x550C,
+ 1922: 0x550D,
+ 1923: 0x550E,
+ 1924: 0x5515,
+ 1925: 0x552A,
+ 1926: 0x552B,
+ 1927: 0x5532,
+ 1928: 0x5535,
+ 1929: 0x5536,
+ 1930: 0x553B,
+ 1931: 0x553C,
+ 1932: 0x553D,
+ 1933: 0x5541,
+ 1934: 0x5547,
+ 1935: 0x5549,
+ 1936: 0x554A,
+ 1937: 0x554D,
+ 1938: 0x5550,
+ 1939: 0x5551,
+ 1940: 0x5558,
+ 1941: 0x555A,
+ 1942: 0x555B,
+ 1943: 0x555E,
+ 1944: 0x5560,
+ 1945: 0x5561,
+ 1946: 0x5564,
+ 1947: 0x5566,
+ 1948: 0x557F,
+ 1949: 0x5581,
+ 1950: 0x5582,
+ 1951: 0x5586,
+ 1952: 0x5588,
+ 1953: 0x558E,
+ 1954: 0x558F,
+ 1955: 0x5591,
+ 1956: 0x5592,
+ 1957: 0x5593,
+ 1958: 0x5594,
+ 1959: 0x5597,
+ 1960: 0x55A3,
+ 1961: 0x55A4,
+ 1962: 0x55AD,
+ 1963: 0x55B2,
+ 1964: 0x55BF,
+ 1965: 0x55C1,
+ 1966: 0x55C3,
+ 1967: 0x55C6,
+ 1968: 0x55C9,
+ 1969: 0x55CB,
+ 1970: 0x55CC,
+ 1971: 0x55CE,
+ 1972: 0x55D1,
+ 1973: 0x55D2,
+ 1974: 0x55D3,
+ 1975: 0x55D7,
+ 1976: 0x55D8,
+ 1977: 0x55DB,
+ 1978: 0x55DE,
+ 1979: 0x55E2,
+ 1980: 0x55E9,
+ 1981: 0x55F6,
+ 1982: 0x55FF,
+ 1983: 0x5605,
+ 1984: 0x5608,
+ 1985: 0x560A,
+ 1986: 0x560D,
+ 1987: 0x560E,
+ 1988: 0x560F,
+ 1989: 0x5610,
+ 1990: 0x5611,
+ 1991: 0x5612,
+ 1992: 0x5619,
+ 1993: 0x562C,
+ 1994: 0x5630,
+ 1995: 0x5633,
+ 1996: 0x5635,
+ 1997: 0x5637,
+ 1998: 0x5639,
+ 1999: 0x563B,
+ 2000: 0x563C,
+ 2001: 0x563D,
+ 2002: 0x563F,
+ 2003: 0x5640,
+ 2004: 0x5641,
+ 2005: 0x5643,
+ 2006: 0x5644,
+ 2007: 0x5646,
+ 2008: 0x5649,
+ 2009: 0x564B,
+ 2010: 0x564D,
+ 2011: 0x564F,
+ 2012: 0x5654,
+ 2013: 0x565E,
+ 2014: 0x5660,
+ 2015: 0x5661,
+ 2016: 0x5662,
+ 2017: 0x5663,
+ 2018: 0x5666,
+ 2019: 0x5669,
+ 2020: 0x566D,
+ 2021: 0x566F,
+ 2022: 0x5671,
+ 2023: 0x5672,
+ 2024: 0x5675,
+ 2025: 0x5684,
+ 2026: 0x5685,
+ 2027: 0x5688,
+ 2028: 0x568B,
+ 2029: 0x568C,
+ 2030: 0x5695,
+ 2031: 0x5699,
+ 2032: 0x569A,
+ 2033: 0x569D,
+ 2034: 0x569E,
+ 2035: 0x569F,
+ 2036: 0x56A6,
+ 2037: 0x56A7,
+ 2038: 0x56A8,
+ 2039: 0x56A9,
+ 2040: 0x56AB,
+ 2041: 0x56AC,
+ 2042: 0x56AD,
+ 2043: 0x56B1,
+ 2044: 0x56B3,
+ 2045: 0x56B7,
+ 2046: 0x56BE,
+ 2047: 0x56C5,
+ 2048: 0x56C9,
+ 2049: 0x56CA,
+ 2050: 0x56CB,
+ 2051: 0x56CF,
+ 2052: 0x56D0,
+ 2053: 0x56CC,
+ 2054: 0x56CD,
+ 2055: 0x56D9,
+ 2056: 0x56DC,
+ 2057: 0x56DD,
+ 2058: 0x56DF,
+ 2059: 0x56E1,
+ 2060: 0x56E4,
+ 2061: 0x56E5,
+ 2062: 0x56E6,
+ 2063: 0x56E7,
+ 2064: 0x56E8,
+ 2065: 0x56F1,
+ 2066: 0x56EB,
+ 2067: 0x56ED,
+ 2068: 0x56F6,
+ 2069: 0x56F7,
+ 2070: 0x5701,
+ 2071: 0x5702,
+ 2072: 0x5707,
+ 2073: 0x570A,
+ 2074: 0x570C,
+ 2075: 0x5711,
+ 2076: 0x5715,
+ 2077: 0x571A,
+ 2078: 0x571B,
+ 2079: 0x571D,
+ 2080: 0x5720,
+ 2081: 0x5722,
+ 2082: 0x5723,
+ 2083: 0x5724,
+ 2084: 0x5725,
+ 2085: 0x5729,
+ 2086: 0x572A,
+ 2087: 0x572C,
+ 2088: 0x572E,
+ 2089: 0x572F,
+ 2090: 0x5733,
+ 2091: 0x5734,
+ 2092: 0x573D,
+ 2093: 0x573E,
+ 2094: 0x573F,
+ 2095: 0x5745,
+ 2096: 0x5746,
+ 2097: 0x574C,
+ 2098: 0x574D,
+ 2099: 0x5752,
+ 2100: 0x5762,
+ 2101: 0x5765,
+ 2102: 0x5767,
+ 2103: 0x5768,
+ 2104: 0x576B,
+ 2105: 0x576D,
+ 2106: 0x576E,
+ 2107: 0x576F,
+ 2108: 0x5770,
+ 2109: 0x5771,
+ 2110: 0x5773,
+ 2111: 0x5774,
+ 2112: 0x5775,
+ 2113: 0x5777,
+ 2114: 0x5779,
+ 2115: 0x577A,
+ 2116: 0x577B,
+ 2117: 0x577C,
+ 2118: 0x577E,
+ 2119: 0x5781,
+ 2120: 0x5783,
+ 2121: 0x578C,
+ 2122: 0x5794,
+ 2123: 0x5797,
+ 2124: 0x5799,
+ 2125: 0x579A,
+ 2126: 0x579C,
+ 2127: 0x579D,
+ 2128: 0x579E,
+ 2129: 0x579F,
+ 2130: 0x57A1,
+ 2131: 0x5795,
+ 2132: 0x57A7,
+ 2133: 0x57A8,
+ 2134: 0x57A9,
+ 2135: 0x57AC,
+ 2136: 0x57B8,
+ 2137: 0x57BD,
+ 2138: 0x57C7,
+ 2139: 0x57C8,
+ 2140: 0x57CC,
+ 2141: 0x57CF,
+ 2142: 0x57D5,
+ 2143: 0x57DD,
+ 2144: 0x57DE,
+ 2145: 0x57E4,
+ 2146: 0x57E6,
+ 2147: 0x57E7,
+ 2148: 0x57E9,
+ 2149: 0x57ED,
+ 2150: 0x57F0,
+ 2151: 0x57F5,
+ 2152: 0x57F6,
+ 2153: 0x57F8,
+ 2154: 0x57FD,
+ 2155: 0x57FE,
+ 2156: 0x57FF,
+ 2157: 0x5803,
+ 2158: 0x5804,
+ 2159: 0x5808,
+ 2160: 0x5809,
+ 2161: 0x57E1,
+ 2162: 0x580C,
+ 2163: 0x580D,
+ 2164: 0x581B,
+ 2165: 0x581E,
+ 2166: 0x581F,
+ 2167: 0x5820,
+ 2168: 0x5826,
+ 2169: 0x5827,
+ 2170: 0x582D,
+ 2171: 0x5832,
+ 2172: 0x5839,
+ 2173: 0x583F,
+ 2174: 0x5849,
+ 2175: 0x584C,
+ 2176: 0x584D,
+ 2177: 0x584F,
+ 2178: 0x5850,
+ 2179: 0x5855,
+ 2180: 0x585F,
+ 2181: 0x5861,
+ 2182: 0x5864,
+ 2183: 0x5867,
+ 2184: 0x5868,
+ 2185: 0x5878,
+ 2186: 0x587C,
+ 2187: 0x587F,
+ 2188: 0x5880,
+ 2189: 0x5881,
+ 2190: 0x5887,
+ 2191: 0x5888,
+ 2192: 0x5889,
+ 2193: 0x588A,
+ 2194: 0x588C,
+ 2195: 0x588D,
+ 2196: 0x588F,
+ 2197: 0x5890,
+ 2198: 0x5894,
+ 2199: 0x5896,
+ 2200: 0x589D,
+ 2201: 0x58A0,
+ 2202: 0x58A1,
+ 2203: 0x58A2,
+ 2204: 0x58A6,
+ 2205: 0x58A9,
+ 2206: 0x58B1,
+ 2207: 0x58B2,
+ 2208: 0x58C4,
+ 2209: 0x58BC,
+ 2210: 0x58C2,
+ 2211: 0x58C8,
+ 2212: 0x58CD,
+ 2213: 0x58CE,
+ 2214: 0x58D0,
+ 2215: 0x58D2,
+ 2216: 0x58D4,
+ 2217: 0x58D6,
+ 2218: 0x58DA,
+ 2219: 0x58DD,
+ 2220: 0x58E1,
+ 2221: 0x58E2,
+ 2222: 0x58E9,
+ 2223: 0x58F3,
+ 2224: 0x5905,
+ 2225: 0x5906,
+ 2226: 0x590B,
+ 2227: 0x590C,
+ 2228: 0x5912,
+ 2229: 0x5913,
+ 2230: 0x5914,
+ 2231: 0x8641,
+ 2232: 0x591D,
+ 2233: 0x5921,
+ 2234: 0x5923,
+ 2235: 0x5924,
+ 2236: 0x5928,
+ 2237: 0x592F,
+ 2238: 0x5930,
+ 2239: 0x5933,
+ 2240: 0x5935,
+ 2241: 0x5936,
+ 2242: 0x593F,
+ 2243: 0x5943,
+ 2244: 0x5946,
+ 2245: 0x5952,
+ 2246: 0x5953,
+ 2247: 0x5959,
+ 2248: 0x595B,
+ 2249: 0x595D,
+ 2250: 0x595E,
+ 2251: 0x595F,
+ 2252: 0x5961,
+ 2253: 0x5963,
+ 2254: 0x596B,
+ 2255: 0x596D,
+ 2256: 0x596F,
+ 2257: 0x5972,
+ 2258: 0x5975,
+ 2259: 0x5976,
+ 2260: 0x5979,
+ 2261: 0x597B,
+ 2262: 0x597C,
+ 2263: 0x598B,
+ 2264: 0x598C,
+ 2265: 0x598E,
+ 2266: 0x5992,
+ 2267: 0x5995,
+ 2268: 0x5997,
+ 2269: 0x599F,
+ 2270: 0x59A4,
+ 2271: 0x59A7,
+ 2272: 0x59AD,
+ 2273: 0x59AE,
+ 2274: 0x59AF,
+ 2275: 0x59B0,
+ 2276: 0x59B3,
+ 2277: 0x59B7,
+ 2278: 0x59BA,
+ 2279: 0x59BC,
+ 2280: 0x59C1,
+ 2281: 0x59C3,
+ 2282: 0x59C4,
+ 2283: 0x59C8,
+ 2284: 0x59CA,
+ 2285: 0x59CD,
+ 2286: 0x59D2,
+ 2287: 0x59DD,
+ 2288: 0x59DE,
+ 2289: 0x59DF,
+ 2290: 0x59E3,
+ 2291: 0x59E4,
+ 2292: 0x59E7,
+ 2293: 0x59EE,
+ 2294: 0x59EF,
+ 2295: 0x59F1,
+ 2296: 0x59F2,
+ 2297: 0x59F4,
+ 2298: 0x59F7,
+ 2299: 0x5A00,
+ 2300: 0x5A04,
+ 2301: 0x5A0C,
+ 2302: 0x5A0D,
+ 2303: 0x5A0E,
+ 2304: 0x5A12,
+ 2305: 0x5A13,
+ 2306: 0x5A1E,
+ 2307: 0x5A23,
+ 2308: 0x5A24,
+ 2309: 0x5A27,
+ 2310: 0x5A28,
+ 2311: 0x5A2A,
+ 2312: 0x5A2D,
+ 2313: 0x5A30,
+ 2314: 0x5A44,
+ 2315: 0x5A45,
+ 2316: 0x5A47,
+ 2317: 0x5A48,
+ 2318: 0x5A4C,
+ 2319: 0x5A50,
+ 2320: 0x5A55,
+ 2321: 0x5A5E,
+ 2322: 0x5A63,
+ 2323: 0x5A65,
+ 2324: 0x5A67,
+ 2325: 0x5A6D,
+ 2326: 0x5A77,
+ 2327: 0x5A7A,
+ 2328: 0x5A7B,
+ 2329: 0x5A7E,
+ 2330: 0x5A8B,
+ 2331: 0x5A90,
+ 2332: 0x5A93,
+ 2333: 0x5A96,
+ 2334: 0x5A99,
+ 2335: 0x5A9C,
+ 2336: 0x5A9E,
+ 2337: 0x5A9F,
+ 2338: 0x5AA0,
+ 2339: 0x5AA2,
+ 2340: 0x5AA7,
+ 2341: 0x5AAC,
+ 2342: 0x5AB1,
+ 2343: 0x5AB2,
+ 2344: 0x5AB3,
+ 2345: 0x5AB5,
+ 2346: 0x5AB8,
+ 2347: 0x5ABA,
+ 2348: 0x5ABB,
+ 2349: 0x5ABF,
+ 2350: 0x5AC4,
+ 2351: 0x5AC6,
+ 2352: 0x5AC8,
+ 2353: 0x5ACF,
+ 2354: 0x5ADA,
+ 2355: 0x5ADC,
+ 2356: 0x5AE0,
+ 2357: 0x5AE5,
+ 2358: 0x5AEA,
+ 2359: 0x5AEE,
+ 2360: 0x5AF5,
+ 2361: 0x5AF6,
+ 2362: 0x5AFD,
+ 2363: 0x5B00,
+ 2364: 0x5B01,
+ 2365: 0x5B08,
+ 2366: 0x5B17,
+ 2367: 0x5B34,
+ 2368: 0x5B19,
+ 2369: 0x5B1B,
+ 2370: 0x5B1D,
+ 2371: 0x5B21,
+ 2372: 0x5B25,
+ 2373: 0x5B2D,
+ 2374: 0x5B38,
+ 2375: 0x5B41,
+ 2376: 0x5B4B,
+ 2377: 0x5B4C,
+ 2378: 0x5B52,
+ 2379: 0x5B56,
+ 2380: 0x5B5E,
+ 2381: 0x5B68,
+ 2382: 0x5B6E,
+ 2383: 0x5B6F,
+ 2384: 0x5B7C,
+ 2385: 0x5B7D,
+ 2386: 0x5B7E,
+ 2387: 0x5B7F,
+ 2388: 0x5B81,
+ 2389: 0x5B84,
+ 2390: 0x5B86,
+ 2391: 0x5B8A,
+ 2392: 0x5B8E,
+ 2393: 0x5B90,
+ 2394: 0x5B91,
+ 2395: 0x5B93,
+ 2396: 0x5B94,
+ 2397: 0x5B96,
+ 2398: 0x5BA8,
+ 2399: 0x5BA9,
+ 2400: 0x5BAC,
+ 2401: 0x5BAD,
+ 2402: 0x5BAF,
+ 2403: 0x5BB1,
+ 2404: 0x5BB2,
+ 2405: 0x5BB7,
+ 2406: 0x5BBA,
+ 2407: 0x5BBC,
+ 2408: 0x5BC0,
+ 2409: 0x5BC1,
+ 2410: 0x5BCD,
+ 2411: 0x5BCF,
+ 2412: 0x5BD6,
+ 2413: 0x5BD7,
+ 2414: 0x5BD8,
+ 2415: 0x5BD9,
+ 2416: 0x5BDA,
+ 2417: 0x5BE0,
+ 2418: 0x5BEF,
+ 2419: 0x5BF1,
+ 2420: 0x5BF4,
+ 2421: 0x5BFD,
+ 2422: 0x5C0C,
+ 2423: 0x5C17,
+ 2424: 0x5C1E,
+ 2425: 0x5C1F,
+ 2426: 0x5C23,
+ 2427: 0x5C26,
+ 2428: 0x5C29,
+ 2429: 0x5C2B,
+ 2430: 0x5C2C,
+ 2431: 0x5C2E,
+ 2432: 0x5C30,
+ 2433: 0x5C32,
+ 2434: 0x5C35,
+ 2435: 0x5C36,
+ 2436: 0x5C59,
+ 2437: 0x5C5A,
+ 2438: 0x5C5C,
+ 2439: 0x5C62,
+ 2440: 0x5C63,
+ 2441: 0x5C67,
+ 2442: 0x5C68,
+ 2443: 0x5C69,
+ 2444: 0x5C6D,
+ 2445: 0x5C70,
+ 2446: 0x5C74,
+ 2447: 0x5C75,
+ 2448: 0x5C7A,
+ 2449: 0x5C7B,
+ 2450: 0x5C7C,
+ 2451: 0x5C7D,
+ 2452: 0x5C87,
+ 2453: 0x5C88,
+ 2454: 0x5C8A,
+ 2455: 0x5C8F,
+ 2456: 0x5C92,
+ 2457: 0x5C9D,
+ 2458: 0x5C9F,
+ 2459: 0x5CA0,
+ 2460: 0x5CA2,
+ 2461: 0x5CA3,
+ 2462: 0x5CA6,
+ 2463: 0x5CAA,
+ 2464: 0x5CB2,
+ 2465: 0x5CB4,
+ 2466: 0x5CB5,
+ 2467: 0x5CBA,
+ 2468: 0x5CC9,
+ 2469: 0x5CCB,
+ 2470: 0x5CD2,
+ 2471: 0x5CDD,
+ 2472: 0x5CD7,
+ 2473: 0x5CEE,
+ 2474: 0x5CF1,
+ 2475: 0x5CF2,
+ 2476: 0x5CF4,
+ 2477: 0x5D01,
+ 2478: 0x5D06,
+ 2479: 0x5D0D,
+ 2480: 0x5D12,
+ 2481: 0x5D2B,
+ 2482: 0x5D23,
+ 2483: 0x5D24,
+ 2484: 0x5D26,
+ 2485: 0x5D27,
+ 2486: 0x5D31,
+ 2487: 0x5D34,
+ 2488: 0x5D39,
+ 2489: 0x5D3D,
+ 2490: 0x5D3F,
+ 2491: 0x5D42,
+ 2492: 0x5D43,
+ 2493: 0x5D46,
+ 2494: 0x5D48,
+ 2495: 0x5D55,
+ 2496: 0x5D51,
+ 2497: 0x5D59,
+ 2498: 0x5D4A,
+ 2499: 0x5D5F,
+ 2500: 0x5D60,
+ 2501: 0x5D61,
+ 2502: 0x5D62,
+ 2503: 0x5D64,
+ 2504: 0x5D6A,
+ 2505: 0x5D6D,
+ 2506: 0x5D70,
+ 2507: 0x5D79,
+ 2508: 0x5D7A,
+ 2509: 0x5D7E,
+ 2510: 0x5D7F,
+ 2511: 0x5D81,
+ 2512: 0x5D83,
+ 2513: 0x5D88,
+ 2514: 0x5D8A,
+ 2515: 0x5D92,
+ 2516: 0x5D93,
+ 2517: 0x5D94,
+ 2518: 0x5D95,
+ 2519: 0x5D99,
+ 2520: 0x5D9B,
+ 2521: 0x5D9F,
+ 2522: 0x5DA0,
+ 2523: 0x5DA7,
+ 2524: 0x5DAB,
+ 2525: 0x5DB0,
+ 2526: 0x5DB4,
+ 2527: 0x5DB8,
+ 2528: 0x5DB9,
+ 2529: 0x5DC3,
+ 2530: 0x5DC7,
+ 2531: 0x5DCB,
+ 2532: 0x5DD0,
+ 2533: 0x5DCE,
+ 2534: 0x5DD8,
+ 2535: 0x5DD9,
+ 2536: 0x5DE0,
+ 2537: 0x5DE4,
+ 2538: 0x5DE9,
+ 2539: 0x5DF8,
+ 2540: 0x5DF9,
+ 2541: 0x5E00,
+ 2542: 0x5E07,
+ 2543: 0x5E0D,
+ 2544: 0x5E12,
+ 2545: 0x5E14,
+ 2546: 0x5E15,
+ 2547: 0x5E18,
+ 2548: 0x5E1F,
+ 2549: 0x5E20,
+ 2550: 0x5E2E,
+ 2551: 0x5E28,
+ 2552: 0x5E32,
+ 2553: 0x5E35,
+ 2554: 0x5E3E,
+ 2555: 0x5E4B,
+ 2556: 0x5E50,
+ 2557: 0x5E49,
+ 2558: 0x5E51,
+ 2559: 0x5E56,
+ 2560: 0x5E58,
+ 2561: 0x5E5B,
+ 2562: 0x5E5C,
+ 2563: 0x5E5E,
+ 2564: 0x5E68,
+ 2565: 0x5E6A,
+ 2566: 0x5E6B,
+ 2567: 0x5E6C,
+ 2568: 0x5E6D,
+ 2569: 0x5E6E,
+ 2570: 0x5E70,
+ 2571: 0x5E80,
+ 2572: 0x5E8B,
+ 2573: 0x5E8E,
+ 2574: 0x5EA2,
+ 2575: 0x5EA4,
+ 2576: 0x5EA5,
+ 2577: 0x5EA8,
+ 2578: 0x5EAA,
+ 2579: 0x5EAC,
+ 2580: 0x5EB1,
+ 2581: 0x5EB3,
+ 2582: 0x5EBD,
+ 2583: 0x5EBE,
+ 2584: 0x5EBF,
+ 2585: 0x5EC6,
+ 2586: 0x5ECC,
+ 2587: 0x5ECB,
+ 2588: 0x5ECE,
+ 2589: 0x5ED1,
+ 2590: 0x5ED2,
+ 2591: 0x5ED4,
+ 2592: 0x5ED5,
+ 2593: 0x5EDC,
+ 2594: 0x5EDE,
+ 2595: 0x5EE5,
+ 2596: 0x5EEB,
+ 2597: 0x5F02,
+ 2598: 0x5F06,
+ 2599: 0x5F07,
+ 2600: 0x5F08,
+ 2601: 0x5F0E,
+ 2602: 0x5F19,
+ 2603: 0x5F1C,
+ 2604: 0x5F1D,
+ 2605: 0x5F21,
+ 2606: 0x5F22,
+ 2607: 0x5F23,
+ 2608: 0x5F24,
+ 2609: 0x5F28,
+ 2610: 0x5F2B,
+ 2611: 0x5F2C,
+ 2612: 0x5F2E,
+ 2613: 0x5F30,
+ 2614: 0x5F34,
+ 2615: 0x5F36,
+ 2616: 0x5F3B,
+ 2617: 0x5F3D,
+ 2618: 0x5F3F,
+ 2619: 0x5F40,
+ 2620: 0x5F44,
+ 2621: 0x5F45,
+ 2622: 0x5F47,
+ 2623: 0x5F4D,
+ 2624: 0x5F50,
+ 2625: 0x5F54,
+ 2626: 0x5F58,
+ 2627: 0x5F5B,
+ 2628: 0x5F60,
+ 2629: 0x5F63,
+ 2630: 0x5F64,
+ 2631: 0x5F67,
+ 2632: 0x5F6F,
+ 2633: 0x5F72,
+ 2634: 0x5F74,
+ 2635: 0x5F75,
+ 2636: 0x5F78,
+ 2637: 0x5F7A,
+ 2638: 0x5F7D,
+ 2639: 0x5F7E,
+ 2640: 0x5F89,
+ 2641: 0x5F8D,
+ 2642: 0x5F8F,
+ 2643: 0x5F96,
+ 2644: 0x5F9C,
+ 2645: 0x5F9D,
+ 2646: 0x5FA2,
+ 2647: 0x5FA7,
+ 2648: 0x5FAB,
+ 2649: 0x5FA4,
+ 2650: 0x5FAC,
+ 2651: 0x5FAF,
+ 2652: 0x5FB0,
+ 2653: 0x5FB1,
+ 2654: 0x5FB8,
+ 2655: 0x5FC4,
+ 2656: 0x5FC7,
+ 2657: 0x5FC8,
+ 2658: 0x5FC9,
+ 2659: 0x5FCB,
+ 2660: 0x5FD0,
+ 2661: 0x5FD1,
+ 2662: 0x5FD2,
+ 2663: 0x5FD3,
+ 2664: 0x5FD4,
+ 2665: 0x5FDE,
+ 2666: 0x5FE1,
+ 2667: 0x5FE2,
+ 2668: 0x5FE8,
+ 2669: 0x5FE9,
+ 2670: 0x5FEA,
+ 2671: 0x5FEC,
+ 2672: 0x5FED,
+ 2673: 0x5FEE,
+ 2674: 0x5FEF,
+ 2675: 0x5FF2,
+ 2676: 0x5FF3,
+ 2677: 0x5FF6,
+ 2678: 0x5FFA,
+ 2679: 0x5FFC,
+ 2680: 0x6007,
+ 2681: 0x600A,
+ 2682: 0x600D,
+ 2683: 0x6013,
+ 2684: 0x6014,
+ 2685: 0x6017,
+ 2686: 0x6018,
+ 2687: 0x601A,
+ 2688: 0x601F,
+ 2689: 0x6024,
+ 2690: 0x602D,
+ 2691: 0x6033,
+ 2692: 0x6035,
+ 2693: 0x6040,
+ 2694: 0x6047,
+ 2695: 0x6048,
+ 2696: 0x6049,
+ 2697: 0x604C,
+ 2698: 0x6051,
+ 2699: 0x6054,
+ 2700: 0x6056,
+ 2701: 0x6057,
+ 2702: 0x605D,
+ 2703: 0x6061,
+ 2704: 0x6067,
+ 2705: 0x6071,
+ 2706: 0x607E,
+ 2707: 0x607F,
+ 2708: 0x6082,
+ 2709: 0x6086,
+ 2710: 0x6088,
+ 2711: 0x608A,
+ 2712: 0x608E,
+ 2713: 0x6091,
+ 2714: 0x6093,
+ 2715: 0x6095,
+ 2716: 0x6098,
+ 2717: 0x609D,
+ 2718: 0x609E,
+ 2719: 0x60A2,
+ 2720: 0x60A4,
+ 2721: 0x60A5,
+ 2722: 0x60A8,
+ 2723: 0x60B0,
+ 2724: 0x60B1,
+ 2725: 0x60B7,
+ 2726: 0x60BB,
+ 2727: 0x60BE,
+ 2728: 0x60C2,
+ 2729: 0x60C4,
+ 2730: 0x60C8,
+ 2731: 0x60C9,
+ 2732: 0x60CA,
+ 2733: 0x60CB,
+ 2734: 0x60CE,
+ 2735: 0x60CF,
+ 2736: 0x60D4,
+ 2737: 0x60D5,
+ 2738: 0x60D9,
+ 2739: 0x60DB,
+ 2740: 0x60DD,
+ 2741: 0x60DE,
+ 2742: 0x60E2,
+ 2743: 0x60E5,
+ 2744: 0x60F2,
+ 2745: 0x60F5,
+ 2746: 0x60F8,
+ 2747: 0x60FC,
+ 2748: 0x60FD,
+ 2749: 0x6102,
+ 2750: 0x6107,
+ 2751: 0x610A,
+ 2752: 0x610C,
+ 2753: 0x6110,
+ 2754: 0x6111,
+ 2755: 0x6112,
+ 2756: 0x6113,
+ 2757: 0x6114,
+ 2758: 0x6116,
+ 2759: 0x6117,
+ 2760: 0x6119,
+ 2761: 0x611C,
+ 2762: 0x611E,
+ 2763: 0x6122,
+ 2764: 0x612A,
+ 2765: 0x612B,
+ 2766: 0x6130,
+ 2767: 0x6131,
+ 2768: 0x6135,
+ 2769: 0x6136,
+ 2770: 0x6137,
+ 2771: 0x6139,
+ 2772: 0x6141,
+ 2773: 0x6145,
+ 2774: 0x6146,
+ 2775: 0x6149,
+ 2776: 0x615E,
+ 2777: 0x6160,
+ 2778: 0x616C,
+ 2779: 0x6172,
+ 2780: 0x6178,
+ 2781: 0x617B,
+ 2782: 0x617C,
+ 2783: 0x617F,
+ 2784: 0x6180,
+ 2785: 0x6181,
+ 2786: 0x6183,
+ 2787: 0x6184,
+ 2788: 0x618B,
+ 2789: 0x618D,
+ 2790: 0x6192,
+ 2791: 0x6193,
+ 2792: 0x6197,
+ 2793: 0x6198,
+ 2794: 0x619C,
+ 2795: 0x619D,
+ 2796: 0x619F,
+ 2797: 0x61A0,
+ 2798: 0x61A5,
+ 2799: 0x61A8,
+ 2800: 0x61AA,
+ 2801: 0x61AD,
+ 2802: 0x61B8,
+ 2803: 0x61B9,
+ 2804: 0x61BC,
+ 2805: 0x61C0,
+ 2806: 0x61C1,
+ 2807: 0x61C2,
+ 2808: 0x61CE,
+ 2809: 0x61CF,
+ 2810: 0x61D5,
+ 2811: 0x61DC,
+ 2812: 0x61DD,
+ 2813: 0x61DE,
+ 2814: 0x61DF,
+ 2815: 0x61E1,
+ 2816: 0x61E2,
+ 2817: 0x61E7,
+ 2818: 0x61E9,
+ 2819: 0x61E5,
+ 2820: 0x61EC,
+ 2821: 0x61ED,
+ 2822: 0x61EF,
+ 2823: 0x6201,
+ 2824: 0x6203,
+ 2825: 0x6204,
+ 2826: 0x6207,
+ 2827: 0x6213,
+ 2828: 0x6215,
+ 2829: 0x621C,
+ 2830: 0x6220,
+ 2831: 0x6222,
+ 2832: 0x6223,
+ 2833: 0x6227,
+ 2834: 0x6229,
+ 2835: 0x622B,
+ 2836: 0x6239,
+ 2837: 0x623D,
+ 2838: 0x6242,
+ 2839: 0x6243,
+ 2840: 0x6244,
+ 2841: 0x6246,
+ 2842: 0x624C,
+ 2843: 0x6250,
+ 2844: 0x6251,
+ 2845: 0x6252,
+ 2846: 0x6254,
+ 2847: 0x6256,
+ 2848: 0x625A,
+ 2849: 0x625C,
+ 2850: 0x6264,
+ 2851: 0x626D,
+ 2852: 0x626F,
+ 2853: 0x6273,
+ 2854: 0x627A,
+ 2855: 0x627D,
+ 2856: 0x628D,
+ 2857: 0x628E,
+ 2858: 0x628F,
+ 2859: 0x6290,
+ 2860: 0x62A6,
+ 2861: 0x62A8,
+ 2862: 0x62B3,
+ 2863: 0x62B6,
+ 2864: 0x62B7,
+ 2865: 0x62BA,
+ 2866: 0x62BE,
+ 2867: 0x62BF,
+ 2868: 0x62C4,
+ 2869: 0x62CE,
+ 2870: 0x62D5,
+ 2871: 0x62D6,
+ 2872: 0x62DA,
+ 2873: 0x62EA,
+ 2874: 0x62F2,
+ 2875: 0x62F4,
+ 2876: 0x62FC,
+ 2877: 0x62FD,
+ 2878: 0x6303,
+ 2879: 0x6304,
+ 2880: 0x630A,
+ 2881: 0x630B,
+ 2882: 0x630D,
+ 2883: 0x6310,
+ 2884: 0x6313,
+ 2885: 0x6316,
+ 2886: 0x6318,
+ 2887: 0x6329,
+ 2888: 0x632A,
+ 2889: 0x632D,
+ 2890: 0x6335,
+ 2891: 0x6336,
+ 2892: 0x6339,
+ 2893: 0x633C,
+ 2894: 0x6341,
+ 2895: 0x6342,
+ 2896: 0x6343,
+ 2897: 0x6344,
+ 2898: 0x6346,
+ 2899: 0x634A,
+ 2900: 0x634B,
+ 2901: 0x634E,
+ 2902: 0x6352,
+ 2903: 0x6353,
+ 2904: 0x6354,
+ 2905: 0x6358,
+ 2906: 0x635B,
+ 2907: 0x6365,
+ 2908: 0x6366,
+ 2909: 0x636C,
+ 2910: 0x636D,
+ 2911: 0x6371,
+ 2912: 0x6374,
+ 2913: 0x6375,
+ 2914: 0x6378,
+ 2915: 0x637C,
+ 2916: 0x637D,
+ 2917: 0x637F,
+ 2918: 0x6382,
+ 2919: 0x6384,
+ 2920: 0x6387,
+ 2921: 0x638A,
+ 2922: 0x6390,
+ 2923: 0x6394,
+ 2924: 0x6395,
+ 2925: 0x6399,
+ 2926: 0x639A,
+ 2927: 0x639E,
+ 2928: 0x63A4,
+ 2929: 0x63A6,
+ 2930: 0x63AD,
+ 2931: 0x63AE,
+ 2932: 0x63AF,
+ 2933: 0x63BD,
+ 2934: 0x63C1,
+ 2935: 0x63C5,
+ 2936: 0x63C8,
+ 2937: 0x63CE,
+ 2938: 0x63D1,
+ 2939: 0x63D3,
+ 2940: 0x63D4,
+ 2941: 0x63D5,
+ 2942: 0x63DC,
+ 2943: 0x63E0,
+ 2944: 0x63E5,
+ 2945: 0x63EA,
+ 2946: 0x63EC,
+ 2947: 0x63F2,
+ 2948: 0x63F3,
+ 2949: 0x63F5,
+ 2950: 0x63F8,
+ 2951: 0x63F9,
+ 2952: 0x6409,
+ 2953: 0x640A,
+ 2954: 0x6410,
+ 2955: 0x6412,
+ 2956: 0x6414,
+ 2957: 0x6418,
+ 2958: 0x641E,
+ 2959: 0x6420,
+ 2960: 0x6422,
+ 2961: 0x6424,
+ 2962: 0x6425,
+ 2963: 0x6429,
+ 2964: 0x642A,
+ 2965: 0x642F,
+ 2966: 0x6430,
+ 2967: 0x6435,
+ 2968: 0x643D,
+ 2969: 0x643F,
+ 2970: 0x644B,
+ 2971: 0x644F,
+ 2972: 0x6451,
+ 2973: 0x6452,
+ 2974: 0x6453,
+ 2975: 0x6454,
+ 2976: 0x645A,
+ 2977: 0x645B,
+ 2978: 0x645C,
+ 2979: 0x645D,
+ 2980: 0x645F,
+ 2981: 0x6460,
+ 2982: 0x6461,
+ 2983: 0x6463,
+ 2984: 0x646D,
+ 2985: 0x6473,
+ 2986: 0x6474,
+ 2987: 0x647B,
+ 2988: 0x647D,
+ 2989: 0x6485,
+ 2990: 0x6487,
+ 2991: 0x648F,
+ 2992: 0x6490,
+ 2993: 0x6491,
+ 2994: 0x6498,
+ 2995: 0x6499,
+ 2996: 0x649B,
+ 2997: 0x649D,
+ 2998: 0x649F,
+ 2999: 0x64A1,
+ 3000: 0x64A3,
+ 3001: 0x64A6,
+ 3002: 0x64A8,
+ 3003: 0x64AC,
+ 3004: 0x64B3,
+ 3005: 0x64BD,
+ 3006: 0x64BE,
+ 3007: 0x64BF,
+ 3008: 0x64C4,
+ 3009: 0x64C9,
+ 3010: 0x64CA,
+ 3011: 0x64CB,
+ 3012: 0x64CC,
+ 3013: 0x64CE,
+ 3014: 0x64D0,
+ 3015: 0x64D1,
+ 3016: 0x64D5,
+ 3017: 0x64D7,
+ 3018: 0x64E4,
+ 3019: 0x64E5,
+ 3020: 0x64E9,
+ 3021: 0x64EA,
+ 3022: 0x64ED,
+ 3023: 0x64F0,
+ 3024: 0x64F5,
+ 3025: 0x64F7,
+ 3026: 0x64FB,
+ 3027: 0x64FF,
+ 3028: 0x6501,
+ 3029: 0x6504,
+ 3030: 0x6508,
+ 3031: 0x6509,
+ 3032: 0x650A,
+ 3033: 0x650F,
+ 3034: 0x6513,
+ 3035: 0x6514,
+ 3036: 0x6516,
+ 3037: 0x6519,
+ 3038: 0x651B,
+ 3039: 0x651E,
+ 3040: 0x651F,
+ 3041: 0x6522,
+ 3042: 0x6526,
+ 3043: 0x6529,
+ 3044: 0x652E,
+ 3045: 0x6531,
+ 3046: 0x653A,
+ 3047: 0x653C,
+ 3048: 0x653D,
+ 3049: 0x6543,
+ 3050: 0x6547,
+ 3051: 0x6549,
+ 3052: 0x6550,
+ 3053: 0x6552,
+ 3054: 0x6554,
+ 3055: 0x655F,
+ 3056: 0x6560,
+ 3057: 0x6567,
+ 3058: 0x656B,
+ 3059: 0x657A,
+ 3060: 0x657D,
+ 3061: 0x6581,
+ 3062: 0x6585,
+ 3063: 0x658A,
+ 3064: 0x6592,
+ 3065: 0x6595,
+ 3066: 0x6598,
+ 3067: 0x659D,
+ 3068: 0x65A0,
+ 3069: 0x65A3,
+ 3070: 0x65A6,
+ 3071: 0x65AE,
+ 3072: 0x65B2,
+ 3073: 0x65B3,
+ 3074: 0x65B4,
+ 3075: 0x65BF,
+ 3076: 0x65C2,
+ 3077: 0x65C8,
+ 3078: 0x65C9,
+ 3079: 0x65CE,
+ 3080: 0x65D0,
+ 3081: 0x65D4,
+ 3082: 0x65D6,
+ 3083: 0x65D8,
+ 3084: 0x65DF,
+ 3085: 0x65F0,
+ 3086: 0x65F2,
+ 3087: 0x65F4,
+ 3088: 0x65F5,
+ 3089: 0x65F9,
+ 3090: 0x65FE,
+ 3091: 0x65FF,
+ 3092: 0x6600,
+ 3093: 0x6604,
+ 3094: 0x6608,
+ 3095: 0x6609,
+ 3096: 0x660D,
+ 3097: 0x6611,
+ 3098: 0x6612,
+ 3099: 0x6615,
+ 3100: 0x6616,
+ 3101: 0x661D,
+ 3102: 0x661E,
+ 3103: 0x6621,
+ 3104: 0x6622,
+ 3105: 0x6623,
+ 3106: 0x6624,
+ 3107: 0x6626,
+ 3108: 0x6629,
+ 3109: 0x662A,
+ 3110: 0x662B,
+ 3111: 0x662C,
+ 3112: 0x662E,
+ 3113: 0x6630,
+ 3114: 0x6631,
+ 3115: 0x6633,
+ 3116: 0x6639,
+ 3117: 0x6637,
+ 3118: 0x6640,
+ 3119: 0x6645,
+ 3120: 0x6646,
+ 3121: 0x664A,
+ 3122: 0x664C,
+ 3123: 0x6651,
+ 3124: 0x664E,
+ 3125: 0x6657,
+ 3126: 0x6658,
+ 3127: 0x6659,
+ 3128: 0x665B,
+ 3129: 0x665C,
+ 3130: 0x6660,
+ 3131: 0x6661,
+ 3132: 0x66FB,
+ 3133: 0x666A,
+ 3134: 0x666B,
+ 3135: 0x666C,
+ 3136: 0x667E,
+ 3137: 0x6673,
+ 3138: 0x6675,
+ 3139: 0x667F,
+ 3140: 0x6677,
+ 3141: 0x6678,
+ 3142: 0x6679,
+ 3143: 0x667B,
+ 3144: 0x6680,
+ 3145: 0x667C,
+ 3146: 0x668B,
+ 3147: 0x668C,
+ 3148: 0x668D,
+ 3149: 0x6690,
+ 3150: 0x6692,
+ 3151: 0x6699,
+ 3152: 0x669A,
+ 3153: 0x669B,
+ 3154: 0x669C,
+ 3155: 0x669F,
+ 3156: 0x66A0,
+ 3157: 0x66A4,
+ 3158: 0x66AD,
+ 3159: 0x66B1,
+ 3160: 0x66B2,
+ 3161: 0x66B5,
+ 3162: 0x66BB,
+ 3163: 0x66BF,
+ 3164: 0x66C0,
+ 3165: 0x66C2,
+ 3166: 0x66C3,
+ 3167: 0x66C8,
+ 3168: 0x66CC,
+ 3169: 0x66CE,
+ 3170: 0x66CF,
+ 3171: 0x66D4,
+ 3172: 0x66DB,
+ 3173: 0x66DF,
+ 3174: 0x66E8,
+ 3175: 0x66EB,
+ 3176: 0x66EC,
+ 3177: 0x66EE,
+ 3178: 0x66FA,
+ 3179: 0x6705,
+ 3180: 0x6707,
+ 3181: 0x670E,
+ 3182: 0x6713,
+ 3183: 0x6719,
+ 3184: 0x671C,
+ 3185: 0x6720,
+ 3186: 0x6722,
+ 3187: 0x6733,
+ 3188: 0x673E,
+ 3189: 0x6745,
+ 3190: 0x6747,
+ 3191: 0x6748,
+ 3192: 0x674C,
+ 3193: 0x6754,
+ 3194: 0x6755,
+ 3195: 0x675D,
+ 3196: 0x6766,
+ 3197: 0x676C,
+ 3198: 0x676E,
+ 3199: 0x6774,
+ 3200: 0x6776,
+ 3201: 0x677B,
+ 3202: 0x6781,
+ 3203: 0x6784,
+ 3204: 0x678E,
+ 3205: 0x678F,
+ 3206: 0x6791,
+ 3207: 0x6793,
+ 3208: 0x6796,
+ 3209: 0x6798,
+ 3210: 0x6799,
+ 3211: 0x679B,
+ 3212: 0x67B0,
+ 3213: 0x67B1,
+ 3214: 0x67B2,
+ 3215: 0x67B5,
+ 3216: 0x67BB,
+ 3217: 0x67BC,
+ 3218: 0x67BD,
+ 3219: 0x67F9,
+ 3220: 0x67C0,
+ 3221: 0x67C2,
+ 3222: 0x67C3,
+ 3223: 0x67C5,
+ 3224: 0x67C8,
+ 3225: 0x67C9,
+ 3226: 0x67D2,
+ 3227: 0x67D7,
+ 3228: 0x67D9,
+ 3229: 0x67DC,
+ 3230: 0x67E1,
+ 3231: 0x67E6,
+ 3232: 0x67F0,
+ 3233: 0x67F2,
+ 3234: 0x67F6,
+ 3235: 0x67F7,
+ 3236: 0x6852,
+ 3237: 0x6814,
+ 3238: 0x6819,
+ 3239: 0x681D,
+ 3240: 0x681F,
+ 3241: 0x6828,
+ 3242: 0x6827,
+ 3243: 0x682C,
+ 3244: 0x682D,
+ 3245: 0x682F,
+ 3246: 0x6830,
+ 3247: 0x6831,
+ 3248: 0x6833,
+ 3249: 0x683B,
+ 3250: 0x683F,
+ 3251: 0x6844,
+ 3252: 0x6845,
+ 3253: 0x684A,
+ 3254: 0x684C,
+ 3255: 0x6855,
+ 3256: 0x6857,
+ 3257: 0x6858,
+ 3258: 0x685B,
+ 3259: 0x686B,
+ 3260: 0x686E,
+ 3261: 0x686F,
+ 3262: 0x6870,
+ 3263: 0x6871,
+ 3264: 0x6872,
+ 3265: 0x6875,
+ 3266: 0x6879,
+ 3267: 0x687A,
+ 3268: 0x687B,
+ 3269: 0x687C,
+ 3270: 0x6882,
+ 3271: 0x6884,
+ 3272: 0x6886,
+ 3273: 0x6888,
+ 3274: 0x6896,
+ 3275: 0x6898,
+ 3276: 0x689A,
+ 3277: 0x689C,
+ 3278: 0x68A1,
+ 3279: 0x68A3,
+ 3280: 0x68A5,
+ 3281: 0x68A9,
+ 3282: 0x68AA,
+ 3283: 0x68AE,
+ 3284: 0x68B2,
+ 3285: 0x68BB,
+ 3286: 0x68C5,
+ 3287: 0x68C8,
+ 3288: 0x68CC,
+ 3289: 0x68CF,
+ 3290: 0x68D0,
+ 3291: 0x68D1,
+ 3292: 0x68D3,
+ 3293: 0x68D6,
+ 3294: 0x68D9,
+ 3295: 0x68DC,
+ 3296: 0x68DD,
+ 3297: 0x68E5,
+ 3298: 0x68E8,
+ 3299: 0x68EA,
+ 3300: 0x68EB,
+ 3301: 0x68EC,
+ 3302: 0x68ED,
+ 3303: 0x68F0,
+ 3304: 0x68F1,
+ 3305: 0x68F5,
+ 3306: 0x68F6,
+ 3307: 0x68FB,
+ 3308: 0x68FC,
+ 3309: 0x68FD,
+ 3310: 0x6906,
+ 3311: 0x6909,
+ 3312: 0x690A,
+ 3313: 0x6910,
+ 3314: 0x6911,
+ 3315: 0x6913,
+ 3316: 0x6916,
+ 3317: 0x6917,
+ 3318: 0x6931,
+ 3319: 0x6933,
+ 3320: 0x6935,
+ 3321: 0x6938,
+ 3322: 0x693B,
+ 3323: 0x6942,
+ 3324: 0x6945,
+ 3325: 0x6949,
+ 3326: 0x694E,
+ 3327: 0x6957,
+ 3328: 0x695B,
+ 3329: 0x6963,
+ 3330: 0x6964,
+ 3331: 0x6965,
+ 3332: 0x6966,
+ 3333: 0x6968,
+ 3334: 0x6969,
+ 3335: 0x696C,
+ 3336: 0x6970,
+ 3337: 0x6971,
+ 3338: 0x6972,
+ 3339: 0x697A,
+ 3340: 0x697B,
+ 3341: 0x697F,
+ 3342: 0x6980,
+ 3343: 0x698D,
+ 3344: 0x6992,
+ 3345: 0x6996,
+ 3346: 0x6998,
+ 3347: 0x69A1,
+ 3348: 0x69A5,
+ 3349: 0x69A6,
+ 3350: 0x69A8,
+ 3351: 0x69AB,
+ 3352: 0x69AD,
+ 3353: 0x69AF,
+ 3354: 0x69B7,
+ 3355: 0x69B8,
+ 3356: 0x69BA,
+ 3357: 0x69BC,
+ 3358: 0x69C5,
+ 3359: 0x69C8,
+ 3360: 0x69D1,
+ 3361: 0x69D6,
+ 3362: 0x69D7,
+ 3363: 0x69E2,
+ 3364: 0x69E5,
+ 3365: 0x69EE,
+ 3366: 0x69EF,
+ 3367: 0x69F1,
+ 3368: 0x69F3,
+ 3369: 0x69F5,
+ 3370: 0x69FE,
+ 3371: 0x6A00,
+ 3372: 0x6A01,
+ 3373: 0x6A03,
+ 3374: 0x6A0F,
+ 3375: 0x6A11,
+ 3376: 0x6A15,
+ 3377: 0x6A1A,
+ 3378: 0x6A1D,
+ 3379: 0x6A20,
+ 3380: 0x6A24,
+ 3381: 0x6A28,
+ 3382: 0x6A30,
+ 3383: 0x6A32,
+ 3384: 0x6A34,
+ 3385: 0x6A37,
+ 3386: 0x6A3B,
+ 3387: 0x6A3E,
+ 3388: 0x6A3F,
+ 3389: 0x6A45,
+ 3390: 0x6A46,
+ 3391: 0x6A49,
+ 3392: 0x6A4A,
+ 3393: 0x6A4E,
+ 3394: 0x6A50,
+ 3395: 0x6A51,
+ 3396: 0x6A52,
+ 3397: 0x6A55,
+ 3398: 0x6A56,
+ 3399: 0x6A5B,
+ 3400: 0x6A64,
+ 3401: 0x6A67,
+ 3402: 0x6A6A,
+ 3403: 0x6A71,
+ 3404: 0x6A73,
+ 3405: 0x6A7E,
+ 3406: 0x6A81,
+ 3407: 0x6A83,
+ 3408: 0x6A86,
+ 3409: 0x6A87,
+ 3410: 0x6A89,
+ 3411: 0x6A8B,
+ 3412: 0x6A91,
+ 3413: 0x6A9B,
+ 3414: 0x6A9D,
+ 3415: 0x6A9E,
+ 3416: 0x6A9F,
+ 3417: 0x6AA5,
+ 3418: 0x6AAB,
+ 3419: 0x6AAF,
+ 3420: 0x6AB0,
+ 3421: 0x6AB1,
+ 3422: 0x6AB4,
+ 3423: 0x6ABD,
+ 3424: 0x6ABE,
+ 3425: 0x6ABF,
+ 3426: 0x6AC6,
+ 3427: 0x6AC9,
+ 3428: 0x6AC8,
+ 3429: 0x6ACC,
+ 3430: 0x6AD0,
+ 3431: 0x6AD4,
+ 3432: 0x6AD5,
+ 3433: 0x6AD6,
+ 3434: 0x6ADC,
+ 3435: 0x6ADD,
+ 3436: 0x6AE4,
+ 3437: 0x6AE7,
+ 3438: 0x6AEC,
+ 3439: 0x6AF0,
+ 3440: 0x6AF1,
+ 3441: 0x6AF2,
+ 3442: 0x6AFC,
+ 3443: 0x6AFD,
+ 3444: 0x6B02,
+ 3445: 0x6B03,
+ 3446: 0x6B06,
+ 3447: 0x6B07,
+ 3448: 0x6B09,
+ 3449: 0x6B0F,
+ 3450: 0x6B10,
+ 3451: 0x6B11,
+ 3452: 0x6B17,
+ 3453: 0x6B1B,
+ 3454: 0x6B1E,
+ 3455: 0x6B24,
+ 3456: 0x6B28,
+ 3457: 0x6B2B,
+ 3458: 0x6B2C,
+ 3459: 0x6B2F,
+ 3460: 0x6B35,
+ 3461: 0x6B36,
+ 3462: 0x6B3B,
+ 3463: 0x6B3F,
+ 3464: 0x6B46,
+ 3465: 0x6B4A,
+ 3466: 0x6B4D,
+ 3467: 0x6B52,
+ 3468: 0x6B56,
+ 3469: 0x6B58,
+ 3470: 0x6B5D,
+ 3471: 0x6B60,
+ 3472: 0x6B67,
+ 3473: 0x6B6B,
+ 3474: 0x6B6E,
+ 3475: 0x6B70,
+ 3476: 0x6B75,
+ 3477: 0x6B7D,
+ 3478: 0x6B7E,
+ 3479: 0x6B82,
+ 3480: 0x6B85,
+ 3481: 0x6B97,
+ 3482: 0x6B9B,
+ 3483: 0x6B9F,
+ 3484: 0x6BA0,
+ 3485: 0x6BA2,
+ 3486: 0x6BA3,
+ 3487: 0x6BA8,
+ 3488: 0x6BA9,
+ 3489: 0x6BAC,
+ 3490: 0x6BAD,
+ 3491: 0x6BAE,
+ 3492: 0x6BB0,
+ 3493: 0x6BB8,
+ 3494: 0x6BB9,
+ 3495: 0x6BBD,
+ 3496: 0x6BBE,
+ 3497: 0x6BC3,
+ 3498: 0x6BC4,
+ 3499: 0x6BC9,
+ 3500: 0x6BCC,
+ 3501: 0x6BD6,
+ 3502: 0x6BDA,
+ 3503: 0x6BE1,
+ 3504: 0x6BE3,
+ 3505: 0x6BE6,
+ 3506: 0x6BE7,
+ 3507: 0x6BEE,
+ 3508: 0x6BF1,
+ 3509: 0x6BF7,
+ 3510: 0x6BF9,
+ 3511: 0x6BFF,
+ 3512: 0x6C02,
+ 3513: 0x6C04,
+ 3514: 0x6C05,
+ 3515: 0x6C09,
+ 3516: 0x6C0D,
+ 3517: 0x6C0E,
+ 3518: 0x6C10,
+ 3519: 0x6C12,
+ 3520: 0x6C19,
+ 3521: 0x6C1F,
+ 3522: 0x6C26,
+ 3523: 0x6C27,
+ 3524: 0x6C28,
+ 3525: 0x6C2C,
+ 3526: 0x6C2E,
+ 3527: 0x6C33,
+ 3528: 0x6C35,
+ 3529: 0x6C36,
+ 3530: 0x6C3A,
+ 3531: 0x6C3B,
+ 3532: 0x6C3F,
+ 3533: 0x6C4A,
+ 3534: 0x6C4B,
+ 3535: 0x6C4D,
+ 3536: 0x6C4F,
+ 3537: 0x6C52,
+ 3538: 0x6C54,
+ 3539: 0x6C59,
+ 3540: 0x6C5B,
+ 3541: 0x6C5C,
+ 3542: 0x6C6B,
+ 3543: 0x6C6D,
+ 3544: 0x6C6F,
+ 3545: 0x6C74,
+ 3546: 0x6C76,
+ 3547: 0x6C78,
+ 3548: 0x6C79,
+ 3549: 0x6C7B,
+ 3550: 0x6C85,
+ 3551: 0x6C86,
+ 3552: 0x6C87,
+ 3553: 0x6C89,
+ 3554: 0x6C94,
+ 3555: 0x6C95,
+ 3556: 0x6C97,
+ 3557: 0x6C98,
+ 3558: 0x6C9C,
+ 3559: 0x6C9F,
+ 3560: 0x6CB0,
+ 3561: 0x6CB2,
+ 3562: 0x6CB4,
+ 3563: 0x6CC2,
+ 3564: 0x6CC6,
+ 3565: 0x6CCD,
+ 3566: 0x6CCF,
+ 3567: 0x6CD0,
+ 3568: 0x6CD1,
+ 3569: 0x6CD2,
+ 3570: 0x6CD4,
+ 3571: 0x6CD6,
+ 3572: 0x6CDA,
+ 3573: 0x6CDC,
+ 3574: 0x6CE0,
+ 3575: 0x6CE7,
+ 3576: 0x6CE9,
+ 3577: 0x6CEB,
+ 3578: 0x6CEC,
+ 3579: 0x6CEE,
+ 3580: 0x6CF2,
+ 3581: 0x6CF4,
+ 3582: 0x6D04,
+ 3583: 0x6D07,
+ 3584: 0x6D0A,
+ 3585: 0x6D0E,
+ 3586: 0x6D0F,
+ 3587: 0x6D11,
+ 3588: 0x6D13,
+ 3589: 0x6D1A,
+ 3590: 0x6D26,
+ 3591: 0x6D27,
+ 3592: 0x6D28,
+ 3593: 0x6C67,
+ 3594: 0x6D2E,
+ 3595: 0x6D2F,
+ 3596: 0x6D31,
+ 3597: 0x6D39,
+ 3598: 0x6D3C,
+ 3599: 0x6D3F,
+ 3600: 0x6D57,
+ 3601: 0x6D5E,
+ 3602: 0x6D5F,
+ 3603: 0x6D61,
+ 3604: 0x6D65,
+ 3605: 0x6D67,
+ 3606: 0x6D6F,
+ 3607: 0x6D70,
+ 3608: 0x6D7C,
+ 3609: 0x6D82,
+ 3610: 0x6D87,
+ 3611: 0x6D91,
+ 3612: 0x6D92,
+ 3613: 0x6D94,
+ 3614: 0x6D96,
+ 3615: 0x6D97,
+ 3616: 0x6D98,
+ 3617: 0x6DAA,
+ 3618: 0x6DAC,
+ 3619: 0x6DB4,
+ 3620: 0x6DB7,
+ 3621: 0x6DB9,
+ 3622: 0x6DBD,
+ 3623: 0x6DBF,
+ 3624: 0x6DC4,
+ 3625: 0x6DC8,
+ 3626: 0x6DCA,
+ 3627: 0x6DCE,
+ 3628: 0x6DCF,
+ 3629: 0x6DD6,
+ 3630: 0x6DDB,
+ 3631: 0x6DDD,
+ 3632: 0x6DDF,
+ 3633: 0x6DE0,
+ 3634: 0x6DE2,
+ 3635: 0x6DE5,
+ 3636: 0x6DE9,
+ 3637: 0x6DEF,
+ 3638: 0x6DF0,
+ 3639: 0x6DF4,
+ 3640: 0x6DF6,
+ 3641: 0x6DFC,
+ 3642: 0x6E00,
+ 3643: 0x6E04,
+ 3644: 0x6E1E,
+ 3645: 0x6E22,
+ 3646: 0x6E27,
+ 3647: 0x6E32,
+ 3648: 0x6E36,
+ 3649: 0x6E39,
+ 3650: 0x6E3B,
+ 3651: 0x6E3C,
+ 3652: 0x6E44,
+ 3653: 0x6E45,
+ 3654: 0x6E48,
+ 3655: 0x6E49,
+ 3656: 0x6E4B,
+ 3657: 0x6E4F,
+ 3658: 0x6E51,
+ 3659: 0x6E52,
+ 3660: 0x6E53,
+ 3661: 0x6E54,
+ 3662: 0x6E57,
+ 3663: 0x6E5C,
+ 3664: 0x6E5D,
+ 3665: 0x6E5E,
+ 3666: 0x6E62,
+ 3667: 0x6E63,
+ 3668: 0x6E68,
+ 3669: 0x6E73,
+ 3670: 0x6E7B,
+ 3671: 0x6E7D,
+ 3672: 0x6E8D,
+ 3673: 0x6E93,
+ 3674: 0x6E99,
+ 3675: 0x6EA0,
+ 3676: 0x6EA7,
+ 3677: 0x6EAD,
+ 3678: 0x6EAE,
+ 3679: 0x6EB1,
+ 3680: 0x6EB3,
+ 3681: 0x6EBB,
+ 3682: 0x6EBF,
+ 3683: 0x6EC0,
+ 3684: 0x6EC1,
+ 3685: 0x6EC3,
+ 3686: 0x6EC7,
+ 3687: 0x6EC8,
+ 3688: 0x6ECA,
+ 3689: 0x6ECD,
+ 3690: 0x6ECE,
+ 3691: 0x6ECF,
+ 3692: 0x6EEB,
+ 3693: 0x6EED,
+ 3694: 0x6EEE,
+ 3695: 0x6EF9,
+ 3696: 0x6EFB,
+ 3697: 0x6EFD,
+ 3698: 0x6F04,
+ 3699: 0x6F08,
+ 3700: 0x6F0A,
+ 3701: 0x6F0C,
+ 3702: 0x6F0D,
+ 3703: 0x6F16,
+ 3704: 0x6F18,
+ 3705: 0x6F1A,
+ 3706: 0x6F1B,
+ 3707: 0x6F26,
+ 3708: 0x6F29,
+ 3709: 0x6F2A,
+ 3710: 0x6F2F,
+ 3711: 0x6F30,
+ 3712: 0x6F33,
+ 3713: 0x6F36,
+ 3714: 0x6F3B,
+ 3715: 0x6F3C,
+ 3716: 0x6F2D,
+ 3717: 0x6F4F,
+ 3718: 0x6F51,
+ 3719: 0x6F52,
+ 3720: 0x6F53,
+ 3721: 0x6F57,
+ 3722: 0x6F59,
+ 3723: 0x6F5A,
+ 3724: 0x6F5D,
+ 3725: 0x6F5E,
+ 3726: 0x6F61,
+ 3727: 0x6F62,
+ 3728: 0x6F68,
+ 3729: 0x6F6C,
+ 3730: 0x6F7D,
+ 3731: 0x6F7E,
+ 3732: 0x6F83,
+ 3733: 0x6F87,
+ 3734: 0x6F88,
+ 3735: 0x6F8B,
+ 3736: 0x6F8C,
+ 3737: 0x6F8D,
+ 3738: 0x6F90,
+ 3739: 0x6F92,
+ 3740: 0x6F93,
+ 3741: 0x6F94,
+ 3742: 0x6F96,
+ 3743: 0x6F9A,
+ 3744: 0x6F9F,
+ 3745: 0x6FA0,
+ 3746: 0x6FA5,
+ 3747: 0x6FA6,
+ 3748: 0x6FA7,
+ 3749: 0x6FA8,
+ 3750: 0x6FAE,
+ 3751: 0x6FAF,
+ 3752: 0x6FB0,
+ 3753: 0x6FB5,
+ 3754: 0x6FB6,
+ 3755: 0x6FBC,
+ 3756: 0x6FC5,
+ 3757: 0x6FC7,
+ 3758: 0x6FC8,
+ 3759: 0x6FCA,
+ 3760: 0x6FDA,
+ 3761: 0x6FDE,
+ 3762: 0x6FE8,
+ 3763: 0x6FE9,
+ 3764: 0x6FF0,
+ 3765: 0x6FF5,
+ 3766: 0x6FF9,
+ 3767: 0x6FFC,
+ 3768: 0x6FFD,
+ 3769: 0x7000,
+ 3770: 0x7005,
+ 3771: 0x7006,
+ 3772: 0x7007,
+ 3773: 0x700D,
+ 3774: 0x7017,
+ 3775: 0x7020,
+ 3776: 0x7023,
+ 3777: 0x702F,
+ 3778: 0x7034,
+ 3779: 0x7037,
+ 3780: 0x7039,
+ 3781: 0x703C,
+ 3782: 0x7043,
+ 3783: 0x7044,
+ 3784: 0x7048,
+ 3785: 0x7049,
+ 3786: 0x704A,
+ 3787: 0x704B,
+ 3788: 0x7054,
+ 3789: 0x7055,
+ 3790: 0x705D,
+ 3791: 0x705E,
+ 3792: 0x704E,
+ 3793: 0x7064,
+ 3794: 0x7065,
+ 3795: 0x706C,
+ 3796: 0x706E,
+ 3797: 0x7075,
+ 3798: 0x7076,
+ 3799: 0x707E,
+ 3800: 0x7081,
+ 3801: 0x7085,
+ 3802: 0x7086,
+ 3803: 0x7094,
+ 3804: 0x7095,
+ 3805: 0x7096,
+ 3806: 0x7097,
+ 3807: 0x7098,
+ 3808: 0x709B,
+ 3809: 0x70A4,
+ 3810: 0x70AB,
+ 3811: 0x70B0,
+ 3812: 0x70B1,
+ 3813: 0x70B4,
+ 3814: 0x70B7,
+ 3815: 0x70CA,
+ 3816: 0x70D1,
+ 3817: 0x70D3,
+ 3818: 0x70D4,
+ 3819: 0x70D5,
+ 3820: 0x70D6,
+ 3821: 0x70D8,
+ 3822: 0x70DC,
+ 3823: 0x70E4,
+ 3824: 0x70FA,
+ 3825: 0x7103,
+ 3826: 0x7104,
+ 3827: 0x7105,
+ 3828: 0x7106,
+ 3829: 0x7107,
+ 3830: 0x710B,
+ 3831: 0x710C,
+ 3832: 0x710F,
+ 3833: 0x711E,
+ 3834: 0x7120,
+ 3835: 0x712B,
+ 3836: 0x712D,
+ 3837: 0x712F,
+ 3838: 0x7130,
+ 3839: 0x7131,
+ 3840: 0x7138,
+ 3841: 0x7141,
+ 3842: 0x7145,
+ 3843: 0x7146,
+ 3844: 0x7147,
+ 3845: 0x714A,
+ 3846: 0x714B,
+ 3847: 0x7150,
+ 3848: 0x7152,
+ 3849: 0x7157,
+ 3850: 0x715A,
+ 3851: 0x715C,
+ 3852: 0x715E,
+ 3853: 0x7160,
+ 3854: 0x7168,
+ 3855: 0x7179,
+ 3856: 0x7180,
+ 3857: 0x7185,
+ 3858: 0x7187,
+ 3859: 0x718C,
+ 3860: 0x7192,
+ 3861: 0x719A,
+ 3862: 0x719B,
+ 3863: 0x71A0,
+ 3864: 0x71A2,
+ 3865: 0x71AF,
+ 3866: 0x71B0,
+ 3867: 0x71B2,
+ 3868: 0x71B3,
+ 3869: 0x71BA,
+ 3870: 0x71BF,
+ 3871: 0x71C0,
+ 3872: 0x71C1,
+ 3873: 0x71C4,
+ 3874: 0x71CB,
+ 3875: 0x71CC,
+ 3876: 0x71D3,
+ 3877: 0x71D6,
+ 3878: 0x71D9,
+ 3879: 0x71DA,
+ 3880: 0x71DC,
+ 3881: 0x71F8,
+ 3882: 0x71FE,
+ 3883: 0x7200,
+ 3884: 0x7207,
+ 3885: 0x7208,
+ 3886: 0x7209,
+ 3887: 0x7213,
+ 3888: 0x7217,
+ 3889: 0x721A,
+ 3890: 0x721D,
+ 3891: 0x721F,
+ 3892: 0x7224,
+ 3893: 0x722B,
+ 3894: 0x722F,
+ 3895: 0x7234,
+ 3896: 0x7238,
+ 3897: 0x7239,
+ 3898: 0x7241,
+ 3899: 0x7242,
+ 3900: 0x7243,
+ 3901: 0x7245,
+ 3902: 0x724E,
+ 3903: 0x724F,
+ 3904: 0x7250,
+ 3905: 0x7253,
+ 3906: 0x7255,
+ 3907: 0x7256,
+ 3908: 0x725A,
+ 3909: 0x725C,
+ 3910: 0x725E,
+ 3911: 0x7260,
+ 3912: 0x7263,
+ 3913: 0x7268,
+ 3914: 0x726B,
+ 3915: 0x726E,
+ 3916: 0x726F,
+ 3917: 0x7271,
+ 3918: 0x7277,
+ 3919: 0x7278,
+ 3920: 0x727B,
+ 3921: 0x727C,
+ 3922: 0x727F,
+ 3923: 0x7284,
+ 3924: 0x7289,
+ 3925: 0x728D,
+ 3926: 0x728E,
+ 3927: 0x7293,
+ 3928: 0x729B,
+ 3929: 0x72A8,
+ 3930: 0x72AD,
+ 3931: 0x72AE,
+ 3932: 0x72B1,
+ 3933: 0x72B4,
+ 3934: 0x72BE,
+ 3935: 0x72C1,
+ 3936: 0x72C7,
+ 3937: 0x72C9,
+ 3938: 0x72CC,
+ 3939: 0x72D5,
+ 3940: 0x72D6,
+ 3941: 0x72D8,
+ 3942: 0x72DF,
+ 3943: 0x72E5,
+ 3944: 0x72F3,
+ 3945: 0x72F4,
+ 3946: 0x72FA,
+ 3947: 0x72FB,
+ 3948: 0x72FE,
+ 3949: 0x7302,
+ 3950: 0x7304,
+ 3951: 0x7305,
+ 3952: 0x7307,
+ 3953: 0x730B,
+ 3954: 0x730D,
+ 3955: 0x7312,
+ 3956: 0x7313,
+ 3957: 0x7318,
+ 3958: 0x7319,
+ 3959: 0x731E,
+ 3960: 0x7322,
+ 3961: 0x7324,
+ 3962: 0x7327,
+ 3963: 0x7328,
+ 3964: 0x732C,
+ 3965: 0x7331,
+ 3966: 0x7332,
+ 3967: 0x7335,
+ 3968: 0x733A,
+ 3969: 0x733B,
+ 3970: 0x733D,
+ 3971: 0x7343,
+ 3972: 0x734D,
+ 3973: 0x7350,
+ 3974: 0x7352,
+ 3975: 0x7356,
+ 3976: 0x7358,
+ 3977: 0x735D,
+ 3978: 0x735E,
+ 3979: 0x735F,
+ 3980: 0x7360,
+ 3981: 0x7366,
+ 3982: 0x7367,
+ 3983: 0x7369,
+ 3984: 0x736B,
+ 3985: 0x736C,
+ 3986: 0x736E,
+ 3987: 0x736F,
+ 3988: 0x7371,
+ 3989: 0x7377,
+ 3990: 0x7379,
+ 3991: 0x737C,
+ 3992: 0x7380,
+ 3993: 0x7381,
+ 3994: 0x7383,
+ 3995: 0x7385,
+ 3996: 0x7386,
+ 3997: 0x738E,
+ 3998: 0x7390,
+ 3999: 0x7393,
+ 4000: 0x7395,
+ 4001: 0x7397,
+ 4002: 0x7398,
+ 4003: 0x739C,
+ 4004: 0x739E,
+ 4005: 0x739F,
+ 4006: 0x73A0,
+ 4007: 0x73A2,
+ 4008: 0x73A5,
+ 4009: 0x73A6,
+ 4010: 0x73AA,
+ 4011: 0x73AB,
+ 4012: 0x73AD,
+ 4013: 0x73B5,
+ 4014: 0x73B7,
+ 4015: 0x73B9,
+ 4016: 0x73BC,
+ 4017: 0x73BD,
+ 4018: 0x73BF,
+ 4019: 0x73C5,
+ 4020: 0x73C6,
+ 4021: 0x73C9,
+ 4022: 0x73CB,
+ 4023: 0x73CC,
+ 4024: 0x73CF,
+ 4025: 0x73D2,
+ 4026: 0x73D3,
+ 4027: 0x73D6,
+ 4028: 0x73D9,
+ 4029: 0x73DD,
+ 4030: 0x73E1,
+ 4031: 0x73E3,
+ 4032: 0x73E6,
+ 4033: 0x73E7,
+ 4034: 0x73E9,
+ 4035: 0x73F4,
+ 4036: 0x73F5,
+ 4037: 0x73F7,
+ 4038: 0x73F9,
+ 4039: 0x73FA,
+ 4040: 0x73FB,
+ 4041: 0x73FD,
+ 4042: 0x73FF,
+ 4043: 0x7400,
+ 4044: 0x7401,
+ 4045: 0x7404,
+ 4046: 0x7407,
+ 4047: 0x740A,
+ 4048: 0x7411,
+ 4049: 0x741A,
+ 4050: 0x741B,
+ 4051: 0x7424,
+ 4052: 0x7426,
+ 4053: 0x7428,
+ 4054: 0x7429,
+ 4055: 0x742A,
+ 4056: 0x742B,
+ 4057: 0x742C,
+ 4058: 0x742D,
+ 4059: 0x742E,
+ 4060: 0x742F,
+ 4061: 0x7430,
+ 4062: 0x7431,
+ 4063: 0x7439,
+ 4064: 0x7440,
+ 4065: 0x7443,
+ 4066: 0x7444,
+ 4067: 0x7446,
+ 4068: 0x7447,
+ 4069: 0x744B,
+ 4070: 0x744D,
+ 4071: 0x7451,
+ 4072: 0x7452,
+ 4073: 0x7457,
+ 4074: 0x745D,
+ 4075: 0x7462,
+ 4076: 0x7466,
+ 4077: 0x7467,
+ 4078: 0x7468,
+ 4079: 0x746B,
+ 4080: 0x746D,
+ 4081: 0x746E,
+ 4082: 0x7471,
+ 4083: 0x7472,
+ 4084: 0x7480,
+ 4085: 0x7481,
+ 4086: 0x7485,
+ 4087: 0x7486,
+ 4088: 0x7487,
+ 4089: 0x7489,
+ 4090: 0x748F,
+ 4091: 0x7490,
+ 4092: 0x7491,
+ 4093: 0x7492,
+ 4094: 0x7498,
+ 4095: 0x7499,
+ 4096: 0x749A,
+ 4097: 0x749C,
+ 4098: 0x749F,
+ 4099: 0x74A0,
+ 4100: 0x74A1,
+ 4101: 0x74A3,
+ 4102: 0x74A6,
+ 4103: 0x74A8,
+ 4104: 0x74A9,
+ 4105: 0x74AA,
+ 4106: 0x74AB,
+ 4107: 0x74AE,
+ 4108: 0x74AF,
+ 4109: 0x74B1,
+ 4110: 0x74B2,
+ 4111: 0x74B5,
+ 4112: 0x74B9,
+ 4113: 0x74BB,
+ 4114: 0x74BF,
+ 4115: 0x74C8,
+ 4116: 0x74C9,
+ 4117: 0x74CC,
+ 4118: 0x74D0,
+ 4119: 0x74D3,
+ 4120: 0x74D8,
+ 4121: 0x74DA,
+ 4122: 0x74DB,
+ 4123: 0x74DE,
+ 4124: 0x74DF,
+ 4125: 0x74E4,
+ 4126: 0x74E8,
+ 4127: 0x74EA,
+ 4128: 0x74EB,
+ 4129: 0x74EF,
+ 4130: 0x74F4,
+ 4131: 0x74FA,
+ 4132: 0x74FB,
+ 4133: 0x74FC,
+ 4134: 0x74FF,
+ 4135: 0x7506,
+ 4136: 0x7512,
+ 4137: 0x7516,
+ 4138: 0x7517,
+ 4139: 0x7520,
+ 4140: 0x7521,
+ 4141: 0x7524,
+ 4142: 0x7527,
+ 4143: 0x7529,
+ 4144: 0x752A,
+ 4145: 0x752F,
+ 4146: 0x7536,
+ 4147: 0x7539,
+ 4148: 0x753D,
+ 4149: 0x753E,
+ 4150: 0x753F,
+ 4151: 0x7540,
+ 4152: 0x7543,
+ 4153: 0x7547,
+ 4154: 0x7548,
+ 4155: 0x754E,
+ 4156: 0x7550,
+ 4157: 0x7552,
+ 4158: 0x7557,
+ 4159: 0x755E,
+ 4160: 0x755F,
+ 4161: 0x7561,
+ 4162: 0x756F,
+ 4163: 0x7571,
+ 4164: 0x7579,
+ 4165: 0x757A,
+ 4166: 0x757B,
+ 4167: 0x757C,
+ 4168: 0x757D,
+ 4169: 0x757E,
+ 4170: 0x7581,
+ 4171: 0x7585,
+ 4172: 0x7590,
+ 4173: 0x7592,
+ 4174: 0x7593,
+ 4175: 0x7595,
+ 4176: 0x7599,
+ 4177: 0x759C,
+ 4178: 0x75A2,
+ 4179: 0x75A4,
+ 4180: 0x75B4,
+ 4181: 0x75BA,
+ 4182: 0x75BF,
+ 4183: 0x75C0,
+ 4184: 0x75C1,
+ 4185: 0x75C4,
+ 4186: 0x75C6,
+ 4187: 0x75CC,
+ 4188: 0x75CE,
+ 4189: 0x75CF,
+ 4190: 0x75D7,
+ 4191: 0x75DC,
+ 4192: 0x75DF,
+ 4193: 0x75E0,
+ 4194: 0x75E1,
+ 4195: 0x75E4,
+ 4196: 0x75E7,
+ 4197: 0x75EC,
+ 4198: 0x75EE,
+ 4199: 0x75EF,
+ 4200: 0x75F1,
+ 4201: 0x75F9,
+ 4202: 0x7600,
+ 4203: 0x7602,
+ 4204: 0x7603,
+ 4205: 0x7604,
+ 4206: 0x7607,
+ 4207: 0x7608,
+ 4208: 0x760A,
+ 4209: 0x760C,
+ 4210: 0x760F,
+ 4211: 0x7612,
+ 4212: 0x7613,
+ 4213: 0x7615,
+ 4214: 0x7616,
+ 4215: 0x7619,
+ 4216: 0x761B,
+ 4217: 0x761C,
+ 4218: 0x761D,
+ 4219: 0x761E,
+ 4220: 0x7623,
+ 4221: 0x7625,
+ 4222: 0x7626,
+ 4223: 0x7629,
+ 4224: 0x762D,
+ 4225: 0x7632,
+ 4226: 0x7633,
+ 4227: 0x7635,
+ 4228: 0x7638,
+ 4229: 0x7639,
+ 4230: 0x763A,
+ 4231: 0x763C,
+ 4232: 0x764A,
+ 4233: 0x7640,
+ 4234: 0x7641,
+ 4235: 0x7643,
+ 4236: 0x7644,
+ 4237: 0x7645,
+ 4238: 0x7649,
+ 4239: 0x764B,
+ 4240: 0x7655,
+ 4241: 0x7659,
+ 4242: 0x765F,
+ 4243: 0x7664,
+ 4244: 0x7665,
+ 4245: 0x766D,
+ 4246: 0x766E,
+ 4247: 0x766F,
+ 4248: 0x7671,
+ 4249: 0x7674,
+ 4250: 0x7681,
+ 4251: 0x7685,
+ 4252: 0x768C,
+ 4253: 0x768D,
+ 4254: 0x7695,
+ 4255: 0x769B,
+ 4256: 0x769C,
+ 4257: 0x769D,
+ 4258: 0x769F,
+ 4259: 0x76A0,
+ 4260: 0x76A2,
+ 4261: 0x76A3,
+ 4262: 0x76A4,
+ 4263: 0x76A5,
+ 4264: 0x76A6,
+ 4265: 0x76A7,
+ 4266: 0x76A8,
+ 4267: 0x76AA,
+ 4268: 0x76AD,
+ 4269: 0x76BD,
+ 4270: 0x76C1,
+ 4271: 0x76C5,
+ 4272: 0x76C9,
+ 4273: 0x76CB,
+ 4274: 0x76CC,
+ 4275: 0x76CE,
+ 4276: 0x76D4,
+ 4277: 0x76D9,
+ 4278: 0x76E0,
+ 4279: 0x76E6,
+ 4280: 0x76E8,
+ 4281: 0x76EC,
+ 4282: 0x76F0,
+ 4283: 0x76F1,
+ 4284: 0x76F6,
+ 4285: 0x76F9,
+ 4286: 0x76FC,
+ 4287: 0x7700,
+ 4288: 0x7706,
+ 4289: 0x770A,
+ 4290: 0x770E,
+ 4291: 0x7712,
+ 4292: 0x7714,
+ 4293: 0x7715,
+ 4294: 0x7717,
+ 4295: 0x7719,
+ 4296: 0x771A,
+ 4297: 0x771C,
+ 4298: 0x7722,
+ 4299: 0x7728,
+ 4300: 0x772D,
+ 4301: 0x772E,
+ 4302: 0x772F,
+ 4303: 0x7734,
+ 4304: 0x7735,
+ 4305: 0x7736,
+ 4306: 0x7739,
+ 4307: 0x773D,
+ 4308: 0x773E,
+ 4309: 0x7742,
+ 4310: 0x7745,
+ 4311: 0x7746,
+ 4312: 0x774A,
+ 4313: 0x774D,
+ 4314: 0x774E,
+ 4315: 0x774F,
+ 4316: 0x7752,
+ 4317: 0x7756,
+ 4318: 0x7757,
+ 4319: 0x775C,
+ 4320: 0x775E,
+ 4321: 0x775F,
+ 4322: 0x7760,
+ 4323: 0x7762,
+ 4324: 0x7764,
+ 4325: 0x7767,
+ 4326: 0x776A,
+ 4327: 0x776C,
+ 4328: 0x7770,
+ 4329: 0x7772,
+ 4330: 0x7773,
+ 4331: 0x7774,
+ 4332: 0x777A,
+ 4333: 0x777D,
+ 4334: 0x7780,
+ 4335: 0x7784,
+ 4336: 0x778C,
+ 4337: 0x778D,
+ 4338: 0x7794,
+ 4339: 0x7795,
+ 4340: 0x7796,
+ 4341: 0x779A,
+ 4342: 0x779F,
+ 4343: 0x77A2,
+ 4344: 0x77A7,
+ 4345: 0x77AA,
+ 4346: 0x77AE,
+ 4347: 0x77AF,
+ 4348: 0x77B1,
+ 4349: 0x77B5,
+ 4350: 0x77BE,
+ 4351: 0x77C3,
+ 4352: 0x77C9,
+ 4353: 0x77D1,
+ 4354: 0x77D2,
+ 4355: 0x77D5,
+ 4356: 0x77D9,
+ 4357: 0x77DE,
+ 4358: 0x77DF,
+ 4359: 0x77E0,
+ 4360: 0x77E4,
+ 4361: 0x77E6,
+ 4362: 0x77EA,
+ 4363: 0x77EC,
+ 4364: 0x77F0,
+ 4365: 0x77F1,
+ 4366: 0x77F4,
+ 4367: 0x77F8,
+ 4368: 0x77FB,
+ 4369: 0x7805,
+ 4370: 0x7806,
+ 4371: 0x7809,
+ 4372: 0x780D,
+ 4373: 0x780E,
+ 4374: 0x7811,
+ 4375: 0x781D,
+ 4376: 0x7821,
+ 4377: 0x7822,
+ 4378: 0x7823,
+ 4379: 0x782D,
+ 4380: 0x782E,
+ 4381: 0x7830,
+ 4382: 0x7835,
+ 4383: 0x7837,
+ 4384: 0x7843,
+ 4385: 0x7844,
+ 4386: 0x7847,
+ 4387: 0x7848,
+ 4388: 0x784C,
+ 4389: 0x784E,
+ 4390: 0x7852,
+ 4391: 0x785C,
+ 4392: 0x785E,
+ 4393: 0x7860,
+ 4394: 0x7861,
+ 4395: 0x7863,
+ 4396: 0x7864,
+ 4397: 0x7868,
+ 4398: 0x786A,
+ 4399: 0x786E,
+ 4400: 0x787A,
+ 4401: 0x787E,
+ 4402: 0x788A,
+ 4403: 0x788F,
+ 4404: 0x7894,
+ 4405: 0x7898,
+ 4406: 0x78A1,
+ 4407: 0x789D,
+ 4408: 0x789E,
+ 4409: 0x789F,
+ 4410: 0x78A4,
+ 4411: 0x78A8,
+ 4412: 0x78AC,
+ 4413: 0x78AD,
+ 4414: 0x78B0,
+ 4415: 0x78B1,
+ 4416: 0x78B2,
+ 4417: 0x78B3,
+ 4418: 0x78BB,
+ 4419: 0x78BD,
+ 4420: 0x78BF,
+ 4421: 0x78C7,
+ 4422: 0x78C8,
+ 4423: 0x78C9,
+ 4424: 0x78CC,
+ 4425: 0x78CE,
+ 4426: 0x78D2,
+ 4427: 0x78D3,
+ 4428: 0x78D5,
+ 4429: 0x78D6,
+ 4430: 0x78E4,
+ 4431: 0x78DB,
+ 4432: 0x78DF,
+ 4433: 0x78E0,
+ 4434: 0x78E1,
+ 4435: 0x78E6,
+ 4436: 0x78EA,
+ 4437: 0x78F2,
+ 4438: 0x78F3,
+ 4439: 0x7900,
+ 4440: 0x78F6,
+ 4441: 0x78F7,
+ 4442: 0x78FA,
+ 4443: 0x78FB,
+ 4444: 0x78FF,
+ 4445: 0x7906,
+ 4446: 0x790C,
+ 4447: 0x7910,
+ 4448: 0x791A,
+ 4449: 0x791C,
+ 4450: 0x791E,
+ 4451: 0x791F,
+ 4452: 0x7920,
+ 4453: 0x7925,
+ 4454: 0x7927,
+ 4455: 0x7929,
+ 4456: 0x792D,
+ 4457: 0x7931,
+ 4458: 0x7934,
+ 4459: 0x7935,
+ 4460: 0x793B,
+ 4461: 0x793D,
+ 4462: 0x793F,
+ 4463: 0x7944,
+ 4464: 0x7945,
+ 4465: 0x7946,
+ 4466: 0x794A,
+ 4467: 0x794B,
+ 4468: 0x794F,
+ 4469: 0x7951,
+ 4470: 0x7954,
+ 4471: 0x7958,
+ 4472: 0x795B,
+ 4473: 0x795C,
+ 4474: 0x7967,
+ 4475: 0x7969,
+ 4476: 0x796B,
+ 4477: 0x7972,
+ 4478: 0x7979,
+ 4479: 0x797B,
+ 4480: 0x797C,
+ 4481: 0x797E,
+ 4482: 0x798B,
+ 4483: 0x798C,
+ 4484: 0x7991,
+ 4485: 0x7993,
+ 4486: 0x7994,
+ 4487: 0x7995,
+ 4488: 0x7996,
+ 4489: 0x7998,
+ 4490: 0x799B,
+ 4491: 0x799C,
+ 4492: 0x79A1,
+ 4493: 0x79A8,
+ 4494: 0x79A9,
+ 4495: 0x79AB,
+ 4496: 0x79AF,
+ 4497: 0x79B1,
+ 4498: 0x79B4,
+ 4499: 0x79B8,
+ 4500: 0x79BB,
+ 4501: 0x79C2,
+ 4502: 0x79C4,
+ 4503: 0x79C7,
+ 4504: 0x79C8,
+ 4505: 0x79CA,
+ 4506: 0x79CF,
+ 4507: 0x79D4,
+ 4508: 0x79D6,
+ 4509: 0x79DA,
+ 4510: 0x79DD,
+ 4511: 0x79DE,
+ 4512: 0x79E0,
+ 4513: 0x79E2,
+ 4514: 0x79E5,
+ 4515: 0x79EA,
+ 4516: 0x79EB,
+ 4517: 0x79ED,
+ 4518: 0x79F1,
+ 4519: 0x79F8,
+ 4520: 0x79FC,
+ 4521: 0x7A02,
+ 4522: 0x7A03,
+ 4523: 0x7A07,
+ 4524: 0x7A09,
+ 4525: 0x7A0A,
+ 4526: 0x7A0C,
+ 4527: 0x7A11,
+ 4528: 0x7A15,
+ 4529: 0x7A1B,
+ 4530: 0x7A1E,
+ 4531: 0x7A21,
+ 4532: 0x7A27,
+ 4533: 0x7A2B,
+ 4534: 0x7A2D,
+ 4535: 0x7A2F,
+ 4536: 0x7A30,
+ 4537: 0x7A34,
+ 4538: 0x7A35,
+ 4539: 0x7A38,
+ 4540: 0x7A39,
+ 4541: 0x7A3A,
+ 4542: 0x7A44,
+ 4543: 0x7A45,
+ 4544: 0x7A47,
+ 4545: 0x7A48,
+ 4546: 0x7A4C,
+ 4547: 0x7A55,
+ 4548: 0x7A56,
+ 4549: 0x7A59,
+ 4550: 0x7A5C,
+ 4551: 0x7A5D,
+ 4552: 0x7A5F,
+ 4553: 0x7A60,
+ 4554: 0x7A65,
+ 4555: 0x7A67,
+ 4556: 0x7A6A,
+ 4557: 0x7A6D,
+ 4558: 0x7A75,
+ 4559: 0x7A78,
+ 4560: 0x7A7E,
+ 4561: 0x7A80,
+ 4562: 0x7A82,
+ 4563: 0x7A85,
+ 4564: 0x7A86,
+ 4565: 0x7A8A,
+ 4566: 0x7A8B,
+ 4567: 0x7A90,
+ 4568: 0x7A91,
+ 4569: 0x7A94,
+ 4570: 0x7A9E,
+ 4571: 0x7AA0,
+ 4572: 0x7AA3,
+ 4573: 0x7AAC,
+ 4574: 0x7AB3,
+ 4575: 0x7AB5,
+ 4576: 0x7AB9,
+ 4577: 0x7ABB,
+ 4578: 0x7ABC,
+ 4579: 0x7AC6,
+ 4580: 0x7AC9,
+ 4581: 0x7ACC,
+ 4582: 0x7ACE,
+ 4583: 0x7AD1,
+ 4584: 0x7ADB,
+ 4585: 0x7AE8,
+ 4586: 0x7AE9,
+ 4587: 0x7AEB,
+ 4588: 0x7AEC,
+ 4589: 0x7AF1,
+ 4590: 0x7AF4,
+ 4591: 0x7AFB,
+ 4592: 0x7AFD,
+ 4593: 0x7AFE,
+ 4594: 0x7B07,
+ 4595: 0x7B14,
+ 4596: 0x7B1F,
+ 4597: 0x7B23,
+ 4598: 0x7B27,
+ 4599: 0x7B29,
+ 4600: 0x7B2A,
+ 4601: 0x7B2B,
+ 4602: 0x7B2D,
+ 4603: 0x7B2E,
+ 4604: 0x7B2F,
+ 4605: 0x7B30,
+ 4606: 0x7B31,
+ 4607: 0x7B34,
+ 4608: 0x7B3D,
+ 4609: 0x7B3F,
+ 4610: 0x7B40,
+ 4611: 0x7B41,
+ 4612: 0x7B47,
+ 4613: 0x7B4E,
+ 4614: 0x7B55,
+ 4615: 0x7B60,
+ 4616: 0x7B64,
+ 4617: 0x7B66,
+ 4618: 0x7B69,
+ 4619: 0x7B6A,
+ 4620: 0x7B6D,
+ 4621: 0x7B6F,
+ 4622: 0x7B72,
+ 4623: 0x7B73,
+ 4624: 0x7B77,
+ 4625: 0x7B84,
+ 4626: 0x7B89,
+ 4627: 0x7B8E,
+ 4628: 0x7B90,
+ 4629: 0x7B91,
+ 4630: 0x7B96,
+ 4631: 0x7B9B,
+ 4632: 0x7B9E,
+ 4633: 0x7BA0,
+ 4634: 0x7BA5,
+ 4635: 0x7BAC,
+ 4636: 0x7BAF,
+ 4637: 0x7BB0,
+ 4638: 0x7BB2,
+ 4639: 0x7BB5,
+ 4640: 0x7BB6,
+ 4641: 0x7BBA,
+ 4642: 0x7BBB,
+ 4643: 0x7BBC,
+ 4644: 0x7BBD,
+ 4645: 0x7BC2,
+ 4646: 0x7BC5,
+ 4647: 0x7BC8,
+ 4648: 0x7BCA,
+ 4649: 0x7BD4,
+ 4650: 0x7BD6,
+ 4651: 0x7BD7,
+ 4652: 0x7BD9,
+ 4653: 0x7BDA,
+ 4654: 0x7BDB,
+ 4655: 0x7BE8,
+ 4656: 0x7BEA,
+ 4657: 0x7BF2,
+ 4658: 0x7BF4,
+ 4659: 0x7BF5,
+ 4660: 0x7BF8,
+ 4661: 0x7BF9,
+ 4662: 0x7BFA,
+ 4663: 0x7BFC,
+ 4664: 0x7BFE,
+ 4665: 0x7C01,
+ 4666: 0x7C02,
+ 4667: 0x7C03,
+ 4668: 0x7C04,
+ 4669: 0x7C06,
+ 4670: 0x7C09,
+ 4671: 0x7C0B,
+ 4672: 0x7C0C,
+ 4673: 0x7C0E,
+ 4674: 0x7C0F,
+ 4675: 0x7C19,
+ 4676: 0x7C1B,
+ 4677: 0x7C20,
+ 4678: 0x7C25,
+ 4679: 0x7C26,
+ 4680: 0x7C28,
+ 4681: 0x7C2C,
+ 4682: 0x7C31,
+ 4683: 0x7C33,
+ 4684: 0x7C34,
+ 4685: 0x7C36,
+ 4686: 0x7C39,
+ 4687: 0x7C3A,
+ 4688: 0x7C46,
+ 4689: 0x7C4A,
+ 4690: 0x7C55,
+ 4691: 0x7C51,
+ 4692: 0x7C52,
+ 4693: 0x7C53,
+ 4694: 0x7C59,
+ 4695: 0x7C5A,
+ 4696: 0x7C5B,
+ 4697: 0x7C5C,
+ 4698: 0x7C5D,
+ 4699: 0x7C5E,
+ 4700: 0x7C61,
+ 4701: 0x7C63,
+ 4702: 0x7C67,
+ 4703: 0x7C69,
+ 4704: 0x7C6D,
+ 4705: 0x7C6E,
+ 4706: 0x7C70,
+ 4707: 0x7C72,
+ 4708: 0x7C79,
+ 4709: 0x7C7C,
+ 4710: 0x7C7D,
+ 4711: 0x7C86,
+ 4712: 0x7C87,
+ 4713: 0x7C8F,
+ 4714: 0x7C94,
+ 4715: 0x7C9E,
+ 4716: 0x7CA0,
+ 4717: 0x7CA6,
+ 4718: 0x7CB0,
+ 4719: 0x7CB6,
+ 4720: 0x7CB7,
+ 4721: 0x7CBA,
+ 4722: 0x7CBB,
+ 4723: 0x7CBC,
+ 4724: 0x7CBF,
+ 4725: 0x7CC4,
+ 4726: 0x7CC7,
+ 4727: 0x7CC8,
+ 4728: 0x7CC9,
+ 4729: 0x7CCD,
+ 4730: 0x7CCF,
+ 4731: 0x7CD3,
+ 4732: 0x7CD4,
+ 4733: 0x7CD5,
+ 4734: 0x7CD7,
+ 4735: 0x7CD9,
+ 4736: 0x7CDA,
+ 4737: 0x7CDD,
+ 4738: 0x7CE6,
+ 4739: 0x7CE9,
+ 4740: 0x7CEB,
+ 4741: 0x7CF5,
+ 4742: 0x7D03,
+ 4743: 0x7D07,
+ 4744: 0x7D08,
+ 4745: 0x7D09,
+ 4746: 0x7D0F,
+ 4747: 0x7D11,
+ 4748: 0x7D12,
+ 4749: 0x7D13,
+ 4750: 0x7D16,
+ 4751: 0x7D1D,
+ 4752: 0x7D1E,
+ 4753: 0x7D23,
+ 4754: 0x7D26,
+ 4755: 0x7D2A,
+ 4756: 0x7D2D,
+ 4757: 0x7D31,
+ 4758: 0x7D3C,
+ 4759: 0x7D3D,
+ 4760: 0x7D3E,
+ 4761: 0x7D40,
+ 4762: 0x7D41,
+ 4763: 0x7D47,
+ 4764: 0x7D48,
+ 4765: 0x7D4D,
+ 4766: 0x7D51,
+ 4767: 0x7D53,
+ 4768: 0x7D57,
+ 4769: 0x7D59,
+ 4770: 0x7D5A,
+ 4771: 0x7D5C,
+ 4772: 0x7D5D,
+ 4773: 0x7D65,
+ 4774: 0x7D67,
+ 4775: 0x7D6A,
+ 4776: 0x7D70,
+ 4777: 0x7D78,
+ 4778: 0x7D7A,
+ 4779: 0x7D7B,
+ 4780: 0x7D7F,
+ 4781: 0x7D81,
+ 4782: 0x7D82,
+ 4783: 0x7D83,
+ 4784: 0x7D85,
+ 4785: 0x7D86,
+ 4786: 0x7D88,
+ 4787: 0x7D8B,
+ 4788: 0x7D8C,
+ 4789: 0x7D8D,
+ 4790: 0x7D91,
+ 4791: 0x7D96,
+ 4792: 0x7D97,
+ 4793: 0x7D9D,
+ 4794: 0x7D9E,
+ 4795: 0x7DA6,
+ 4796: 0x7DA7,
+ 4797: 0x7DAA,
+ 4798: 0x7DB3,
+ 4799: 0x7DB6,
+ 4800: 0x7DB7,
+ 4801: 0x7DB9,
+ 4802: 0x7DC2,
+ 4803: 0x7DC3,
+ 4804: 0x7DC4,
+ 4805: 0x7DC5,
+ 4806: 0x7DC6,
+ 4807: 0x7DCC,
+ 4808: 0x7DCD,
+ 4809: 0x7DCE,
+ 4810: 0x7DD7,
+ 4811: 0x7DD9,
+ 4812: 0x7E00,
+ 4813: 0x7DE2,
+ 4814: 0x7DE5,
+ 4815: 0x7DE6,
+ 4816: 0x7DEA,
+ 4817: 0x7DEB,
+ 4818: 0x7DED,
+ 4819: 0x7DF1,
+ 4820: 0x7DF5,
+ 4821: 0x7DF6,
+ 4822: 0x7DF9,
+ 4823: 0x7DFA,
+ 4824: 0x7E08,
+ 4825: 0x7E10,
+ 4826: 0x7E11,
+ 4827: 0x7E15,
+ 4828: 0x7E17,
+ 4829: 0x7E1C,
+ 4830: 0x7E1D,
+ 4831: 0x7E20,
+ 4832: 0x7E27,
+ 4833: 0x7E28,
+ 4834: 0x7E2C,
+ 4835: 0x7E2D,
+ 4836: 0x7E2F,
+ 4837: 0x7E33,
+ 4838: 0x7E36,
+ 4839: 0x7E3F,
+ 4840: 0x7E44,
+ 4841: 0x7E45,
+ 4842: 0x7E47,
+ 4843: 0x7E4E,
+ 4844: 0x7E50,
+ 4845: 0x7E52,
+ 4846: 0x7E58,
+ 4847: 0x7E5F,
+ 4848: 0x7E61,
+ 4849: 0x7E62,
+ 4850: 0x7E65,
+ 4851: 0x7E6B,
+ 4852: 0x7E6E,
+ 4853: 0x7E6F,
+ 4854: 0x7E73,
+ 4855: 0x7E78,
+ 4856: 0x7E7E,
+ 4857: 0x7E81,
+ 4858: 0x7E86,
+ 4859: 0x7E87,
+ 4860: 0x7E8A,
+ 4861: 0x7E8D,
+ 4862: 0x7E91,
+ 4863: 0x7E95,
+ 4864: 0x7E98,
+ 4865: 0x7E9A,
+ 4866: 0x7E9D,
+ 4867: 0x7E9E,
+ 4868: 0x7F3C,
+ 4869: 0x7F3B,
+ 4870: 0x7F3D,
+ 4871: 0x7F3E,
+ 4872: 0x7F3F,
+ 4873: 0x7F43,
+ 4874: 0x7F44,
+ 4875: 0x7F47,
+ 4876: 0x7F4F,
+ 4877: 0x7F52,
+ 4878: 0x7F53,
+ 4879: 0x7F5B,
+ 4880: 0x7F5C,
+ 4881: 0x7F5D,
+ 4882: 0x7F61,
+ 4883: 0x7F63,
+ 4884: 0x7F64,
+ 4885: 0x7F65,
+ 4886: 0x7F66,
+ 4887: 0x7F6D,
+ 4888: 0x7F71,
+ 4889: 0x7F7D,
+ 4890: 0x7F7E,
+ 4891: 0x7F7F,
+ 4892: 0x7F80,
+ 4893: 0x7F8B,
+ 4894: 0x7F8D,
+ 4895: 0x7F8F,
+ 4896: 0x7F90,
+ 4897: 0x7F91,
+ 4898: 0x7F96,
+ 4899: 0x7F97,
+ 4900: 0x7F9C,
+ 4901: 0x7FA1,
+ 4902: 0x7FA2,
+ 4903: 0x7FA6,
+ 4904: 0x7FAA,
+ 4905: 0x7FAD,
+ 4906: 0x7FB4,
+ 4907: 0x7FBC,
+ 4908: 0x7FBF,
+ 4909: 0x7FC0,
+ 4910: 0x7FC3,
+ 4911: 0x7FC8,
+ 4912: 0x7FCE,
+ 4913: 0x7FCF,
+ 4914: 0x7FDB,
+ 4915: 0x7FDF,
+ 4916: 0x7FE3,
+ 4917: 0x7FE5,
+ 4918: 0x7FE8,
+ 4919: 0x7FEC,
+ 4920: 0x7FEE,
+ 4921: 0x7FEF,
+ 4922: 0x7FF2,
+ 4923: 0x7FFA,
+ 4924: 0x7FFD,
+ 4925: 0x7FFE,
+ 4926: 0x7FFF,
+ 4927: 0x8007,
+ 4928: 0x8008,
+ 4929: 0x800A,
+ 4930: 0x800D,
+ 4931: 0x800E,
+ 4932: 0x800F,
+ 4933: 0x8011,
+ 4934: 0x8013,
+ 4935: 0x8014,
+ 4936: 0x8016,
+ 4937: 0x801D,
+ 4938: 0x801E,
+ 4939: 0x801F,
+ 4940: 0x8020,
+ 4941: 0x8024,
+ 4942: 0x8026,
+ 4943: 0x802C,
+ 4944: 0x802E,
+ 4945: 0x8030,
+ 4946: 0x8034,
+ 4947: 0x8035,
+ 4948: 0x8037,
+ 4949: 0x8039,
+ 4950: 0x803A,
+ 4951: 0x803C,
+ 4952: 0x803E,
+ 4953: 0x8040,
+ 4954: 0x8044,
+ 4955: 0x8060,
+ 4956: 0x8064,
+ 4957: 0x8066,
+ 4958: 0x806D,
+ 4959: 0x8071,
+ 4960: 0x8075,
+ 4961: 0x8081,
+ 4962: 0x8088,
+ 4963: 0x808E,
+ 4964: 0x809C,
+ 4965: 0x809E,
+ 4966: 0x80A6,
+ 4967: 0x80A7,
+ 4968: 0x80AB,
+ 4969: 0x80B8,
+ 4970: 0x80B9,
+ 4971: 0x80C8,
+ 4972: 0x80CD,
+ 4973: 0x80CF,
+ 4974: 0x80D2,
+ 4975: 0x80D4,
+ 4976: 0x80D5,
+ 4977: 0x80D7,
+ 4978: 0x80D8,
+ 4979: 0x80E0,
+ 4980: 0x80ED,
+ 4981: 0x80EE,
+ 4982: 0x80F0,
+ 4983: 0x80F2,
+ 4984: 0x80F3,
+ 4985: 0x80F6,
+ 4986: 0x80F9,
+ 4987: 0x80FA,
+ 4988: 0x80FE,
+ 4989: 0x8103,
+ 4990: 0x810B,
+ 4991: 0x8116,
+ 4992: 0x8117,
+ 4993: 0x8118,
+ 4994: 0x811C,
+ 4995: 0x811E,
+ 4996: 0x8120,
+ 4997: 0x8124,
+ 4998: 0x8127,
+ 4999: 0x812C,
+ 5000: 0x8130,
+ 5001: 0x8135,
+ 5002: 0x813A,
+ 5003: 0x813C,
+ 5004: 0x8145,
+ 5005: 0x8147,
+ 5006: 0x814A,
+ 5007: 0x814C,
+ 5008: 0x8152,
+ 5009: 0x8157,
+ 5010: 0x8160,
+ 5011: 0x8161,
+ 5012: 0x8167,
+ 5013: 0x8168,
+ 5014: 0x8169,
+ 5015: 0x816D,
+ 5016: 0x816F,
+ 5017: 0x8177,
+ 5018: 0x8181,
+ 5019: 0x8190,
+ 5020: 0x8184,
+ 5021: 0x8185,
+ 5022: 0x8186,
+ 5023: 0x818B,
+ 5024: 0x818E,
+ 5025: 0x8196,
+ 5026: 0x8198,
+ 5027: 0x819B,
+ 5028: 0x819E,
+ 5029: 0x81A2,
+ 5030: 0x81AE,
+ 5031: 0x81B2,
+ 5032: 0x81B4,
+ 5033: 0x81BB,
+ 5034: 0x81CB,
+ 5035: 0x81C3,
+ 5036: 0x81C5,
+ 5037: 0x81CA,
+ 5038: 0x81CE,
+ 5039: 0x81CF,
+ 5040: 0x81D5,
+ 5041: 0x81D7,
+ 5042: 0x81DB,
+ 5043: 0x81DD,
+ 5044: 0x81DE,
+ 5045: 0x81E1,
+ 5046: 0x81E4,
+ 5047: 0x81EB,
+ 5048: 0x81EC,
+ 5049: 0x81F0,
+ 5050: 0x81F1,
+ 5051: 0x81F2,
+ 5052: 0x81F5,
+ 5053: 0x81F6,
+ 5054: 0x81F8,
+ 5055: 0x81F9,
+ 5056: 0x81FD,
+ 5057: 0x81FF,
+ 5058: 0x8200,
+ 5059: 0x8203,
+ 5060: 0x820F,
+ 5061: 0x8213,
+ 5062: 0x8214,
+ 5063: 0x8219,
+ 5064: 0x821A,
+ 5065: 0x821D,
+ 5066: 0x8221,
+ 5067: 0x8222,
+ 5068: 0x8228,
+ 5069: 0x8232,
+ 5070: 0x8234,
+ 5071: 0x823A,
+ 5072: 0x8243,
+ 5073: 0x8244,
+ 5074: 0x8245,
+ 5075: 0x8246,
+ 5076: 0x824B,
+ 5077: 0x824E,
+ 5078: 0x824F,
+ 5079: 0x8251,
+ 5080: 0x8256,
+ 5081: 0x825C,
+ 5082: 0x8260,
+ 5083: 0x8263,
+ 5084: 0x8267,
+ 5085: 0x826D,
+ 5086: 0x8274,
+ 5087: 0x827B,
+ 5088: 0x827D,
+ 5089: 0x827F,
+ 5090: 0x8280,
+ 5091: 0x8281,
+ 5092: 0x8283,
+ 5093: 0x8284,
+ 5094: 0x8287,
+ 5095: 0x8289,
+ 5096: 0x828A,
+ 5097: 0x828E,
+ 5098: 0x8291,
+ 5099: 0x8294,
+ 5100: 0x8296,
+ 5101: 0x8298,
+ 5102: 0x829A,
+ 5103: 0x829B,
+ 5104: 0x82A0,
+ 5105: 0x82A1,
+ 5106: 0x82A3,
+ 5107: 0x82A4,
+ 5108: 0x82A7,
+ 5109: 0x82A8,
+ 5110: 0x82A9,
+ 5111: 0x82AA,
+ 5112: 0x82AE,
+ 5113: 0x82B0,
+ 5114: 0x82B2,
+ 5115: 0x82B4,
+ 5116: 0x82B7,
+ 5117: 0x82BA,
+ 5118: 0x82BC,
+ 5119: 0x82BE,
+ 5120: 0x82BF,
+ 5121: 0x82C6,
+ 5122: 0x82D0,
+ 5123: 0x82D5,
+ 5124: 0x82DA,
+ 5125: 0x82E0,
+ 5126: 0x82E2,
+ 5127: 0x82E4,
+ 5128: 0x82E8,
+ 5129: 0x82EA,
+ 5130: 0x82ED,
+ 5131: 0x82EF,
+ 5132: 0x82F6,
+ 5133: 0x82F7,
+ 5134: 0x82FD,
+ 5135: 0x82FE,
+ 5136: 0x8300,
+ 5137: 0x8301,
+ 5138: 0x8307,
+ 5139: 0x8308,
+ 5140: 0x830A,
+ 5141: 0x830B,
+ 5142: 0x8354,
+ 5143: 0x831B,
+ 5144: 0x831D,
+ 5145: 0x831E,
+ 5146: 0x831F,
+ 5147: 0x8321,
+ 5148: 0x8322,
+ 5149: 0x832C,
+ 5150: 0x832D,
+ 5151: 0x832E,
+ 5152: 0x8330,
+ 5153: 0x8333,
+ 5154: 0x8337,
+ 5155: 0x833A,
+ 5156: 0x833C,
+ 5157: 0x833D,
+ 5158: 0x8342,
+ 5159: 0x8343,
+ 5160: 0x8344,
+ 5161: 0x8347,
+ 5162: 0x834D,
+ 5163: 0x834E,
+ 5164: 0x8351,
+ 5165: 0x8355,
+ 5166: 0x8356,
+ 5167: 0x8357,
+ 5168: 0x8370,
+ 5169: 0x8378,
+ 5170: 0x837D,
+ 5171: 0x837F,
+ 5172: 0x8380,
+ 5173: 0x8382,
+ 5174: 0x8384,
+ 5175: 0x8386,
+ 5176: 0x838D,
+ 5177: 0x8392,
+ 5178: 0x8394,
+ 5179: 0x8395,
+ 5180: 0x8398,
+ 5181: 0x8399,
+ 5182: 0x839B,
+ 5183: 0x839C,
+ 5184: 0x839D,
+ 5185: 0x83A6,
+ 5186: 0x83A7,
+ 5187: 0x83A9,
+ 5188: 0x83AC,
+ 5189: 0x83BE,
+ 5190: 0x83BF,
+ 5191: 0x83C0,
+ 5192: 0x83C7,
+ 5193: 0x83C9,
+ 5194: 0x83CF,
+ 5195: 0x83D0,
+ 5196: 0x83D1,
+ 5197: 0x83D4,
+ 5198: 0x83DD,
+ 5199: 0x8353,
+ 5200: 0x83E8,
+ 5201: 0x83EA,
+ 5202: 0x83F6,
+ 5203: 0x83F8,
+ 5204: 0x83F9,
+ 5205: 0x83FC,
+ 5206: 0x8401,
+ 5207: 0x8406,
+ 5208: 0x840A,
+ 5209: 0x840F,
+ 5210: 0x8411,
+ 5211: 0x8415,
+ 5212: 0x8419,
+ 5213: 0x83AD,
+ 5214: 0x842F,
+ 5215: 0x8439,
+ 5216: 0x8445,
+ 5217: 0x8447,
+ 5218: 0x8448,
+ 5219: 0x844A,
+ 5220: 0x844D,
+ 5221: 0x844F,
+ 5222: 0x8451,
+ 5223: 0x8452,
+ 5224: 0x8456,
+ 5225: 0x8458,
+ 5226: 0x8459,
+ 5227: 0x845A,
+ 5228: 0x845C,
+ 5229: 0x8460,
+ 5230: 0x8464,
+ 5231: 0x8465,
+ 5232: 0x8467,
+ 5233: 0x846A,
+ 5234: 0x8470,
+ 5235: 0x8473,
+ 5236: 0x8474,
+ 5237: 0x8476,
+ 5238: 0x8478,
+ 5239: 0x847C,
+ 5240: 0x847D,
+ 5241: 0x8481,
+ 5242: 0x8485,
+ 5243: 0x8492,
+ 5244: 0x8493,
+ 5245: 0x8495,
+ 5246: 0x849E,
+ 5247: 0x84A6,
+ 5248: 0x84A8,
+ 5249: 0x84A9,
+ 5250: 0x84AA,
+ 5251: 0x84AF,
+ 5252: 0x84B1,
+ 5253: 0x84B4,
+ 5254: 0x84BA,
+ 5255: 0x84BD,
+ 5256: 0x84BE,
+ 5257: 0x84C0,
+ 5258: 0x84C2,
+ 5259: 0x84C7,
+ 5260: 0x84C8,
+ 5261: 0x84CC,
+ 5262: 0x84CF,
+ 5263: 0x84D3,
+ 5264: 0x84DC,
+ 5265: 0x84E7,
+ 5266: 0x84EA,
+ 5267: 0x84EF,
+ 5268: 0x84F0,
+ 5269: 0x84F1,
+ 5270: 0x84F2,
+ 5271: 0x84F7,
+ 5272: 0x8532,
+ 5273: 0x84FA,
+ 5274: 0x84FB,
+ 5275: 0x84FD,
+ 5276: 0x8502,
+ 5277: 0x8503,
+ 5278: 0x8507,
+ 5279: 0x850C,
+ 5280: 0x850E,
+ 5281: 0x8510,
+ 5282: 0x851C,
+ 5283: 0x851E,
+ 5284: 0x8522,
+ 5285: 0x8523,
+ 5286: 0x8524,
+ 5287: 0x8525,
+ 5288: 0x8527,
+ 5289: 0x852A,
+ 5290: 0x852B,
+ 5291: 0x852F,
+ 5292: 0x8533,
+ 5293: 0x8534,
+ 5294: 0x8536,
+ 5295: 0x853F,
+ 5296: 0x8546,
+ 5297: 0x854F,
+ 5298: 0x8550,
+ 5299: 0x8551,
+ 5300: 0x8552,
+ 5301: 0x8553,
+ 5302: 0x8556,
+ 5303: 0x8559,
+ 5304: 0x855C,
+ 5305: 0x855D,
+ 5306: 0x855E,
+ 5307: 0x855F,
+ 5308: 0x8560,
+ 5309: 0x8561,
+ 5310: 0x8562,
+ 5311: 0x8564,
+ 5312: 0x856B,
+ 5313: 0x856F,
+ 5314: 0x8579,
+ 5315: 0x857A,
+ 5316: 0x857B,
+ 5317: 0x857D,
+ 5318: 0x857F,
+ 5319: 0x8581,
+ 5320: 0x8585,
+ 5321: 0x8586,
+ 5322: 0x8589,
+ 5323: 0x858B,
+ 5324: 0x858C,
+ 5325: 0x858F,
+ 5326: 0x8593,
+ 5327: 0x8598,
+ 5328: 0x859D,
+ 5329: 0x859F,
+ 5330: 0x85A0,
+ 5331: 0x85A2,
+ 5332: 0x85A5,
+ 5333: 0x85A7,
+ 5334: 0x85B4,
+ 5335: 0x85B6,
+ 5336: 0x85B7,
+ 5337: 0x85B8,
+ 5338: 0x85BC,
+ 5339: 0x85BD,
+ 5340: 0x85BE,
+ 5341: 0x85BF,
+ 5342: 0x85C2,
+ 5343: 0x85C7,
+ 5344: 0x85CA,
+ 5345: 0x85CB,
+ 5346: 0x85CE,
+ 5347: 0x85AD,
+ 5348: 0x85D8,
+ 5349: 0x85DA,
+ 5350: 0x85DF,
+ 5351: 0x85E0,
+ 5352: 0x85E6,
+ 5353: 0x85E8,
+ 5354: 0x85ED,
+ 5355: 0x85F3,
+ 5356: 0x85F6,
+ 5357: 0x85FC,
+ 5358: 0x85FF,
+ 5359: 0x8600,
+ 5360: 0x8604,
+ 5361: 0x8605,
+ 5362: 0x860D,
+ 5363: 0x860E,
+ 5364: 0x8610,
+ 5365: 0x8611,
+ 5366: 0x8612,
+ 5367: 0x8618,
+ 5368: 0x8619,
+ 5369: 0x861B,
+ 5370: 0x861E,
+ 5371: 0x8621,
+ 5372: 0x8627,
+ 5373: 0x8629,
+ 5374: 0x8636,
+ 5375: 0x8638,
+ 5376: 0x863A,
+ 5377: 0x863C,
+ 5378: 0x863D,
+ 5379: 0x8640,
+ 5380: 0x8642,
+ 5381: 0x8646,
+ 5382: 0x8652,
+ 5383: 0x8653,
+ 5384: 0x8656,
+ 5385: 0x8657,
+ 5386: 0x8658,
+ 5387: 0x8659,
+ 5388: 0x865D,
+ 5389: 0x8660,
+ 5390: 0x8661,
+ 5391: 0x8662,
+ 5392: 0x8663,
+ 5393: 0x8664,
+ 5394: 0x8669,
+ 5395: 0x866C,
+ 5396: 0x866F,
+ 5397: 0x8675,
+ 5398: 0x8676,
+ 5399: 0x8677,
+ 5400: 0x867A,
+ 5401: 0x868D,
+ 5402: 0x8691,
+ 5403: 0x8696,
+ 5404: 0x8698,
+ 5405: 0x869A,
+ 5406: 0x869C,
+ 5407: 0x86A1,
+ 5408: 0x86A6,
+ 5409: 0x86A7,
+ 5410: 0x86A8,
+ 5411: 0x86AD,
+ 5412: 0x86B1,
+ 5413: 0x86B3,
+ 5414: 0x86B4,
+ 5415: 0x86B5,
+ 5416: 0x86B7,
+ 5417: 0x86B8,
+ 5418: 0x86B9,
+ 5419: 0x86BF,
+ 5420: 0x86C0,
+ 5421: 0x86C1,
+ 5422: 0x86C3,
+ 5423: 0x86C5,
+ 5424: 0x86D1,
+ 5425: 0x86D2,
+ 5426: 0x86D5,
+ 5427: 0x86D7,
+ 5428: 0x86DA,
+ 5429: 0x86DC,
+ 5430: 0x86E0,
+ 5431: 0x86E3,
+ 5432: 0x86E5,
+ 5433: 0x86E7,
+ 5434: 0x8688,
+ 5435: 0x86FA,
+ 5436: 0x86FC,
+ 5437: 0x86FD,
+ 5438: 0x8704,
+ 5439: 0x8705,
+ 5440: 0x8707,
+ 5441: 0x870B,
+ 5442: 0x870E,
+ 5443: 0x870F,
+ 5444: 0x8710,
+ 5445: 0x8713,
+ 5446: 0x8714,
+ 5447: 0x8719,
+ 5448: 0x871E,
+ 5449: 0x871F,
+ 5450: 0x8721,
+ 5451: 0x8723,
+ 5452: 0x8728,
+ 5453: 0x872E,
+ 5454: 0x872F,
+ 5455: 0x8731,
+ 5456: 0x8732,
+ 5457: 0x8739,
+ 5458: 0x873A,
+ 5459: 0x873C,
+ 5460: 0x873D,
+ 5461: 0x873E,
+ 5462: 0x8740,
+ 5463: 0x8743,
+ 5464: 0x8745,
+ 5465: 0x874D,
+ 5466: 0x8758,
+ 5467: 0x875D,
+ 5468: 0x8761,
+ 5469: 0x8764,
+ 5470: 0x8765,
+ 5471: 0x876F,
+ 5472: 0x8771,
+ 5473: 0x8772,
+ 5474: 0x877B,
+ 5475: 0x8783,
+ 5476: 0x8784,
+ 5477: 0x8785,
+ 5478: 0x8786,
+ 5479: 0x8787,
+ 5480: 0x8788,
+ 5481: 0x8789,
+ 5482: 0x878B,
+ 5483: 0x878C,
+ 5484: 0x8790,
+ 5485: 0x8793,
+ 5486: 0x8795,
+ 5487: 0x8797,
+ 5488: 0x8798,
+ 5489: 0x8799,
+ 5490: 0x879E,
+ 5491: 0x87A0,
+ 5492: 0x87A3,
+ 5493: 0x87A7,
+ 5494: 0x87AC,
+ 5495: 0x87AD,
+ 5496: 0x87AE,
+ 5497: 0x87B1,
+ 5498: 0x87B5,
+ 5499: 0x87BE,
+ 5500: 0x87BF,
+ 5501: 0x87C1,
+ 5502: 0x87C8,
+ 5503: 0x87C9,
+ 5504: 0x87CA,
+ 5505: 0x87CE,
+ 5506: 0x87D5,
+ 5507: 0x87D6,
+ 5508: 0x87D9,
+ 5509: 0x87DA,
+ 5510: 0x87DC,
+ 5511: 0x87DF,
+ 5512: 0x87E2,
+ 5513: 0x87E3,
+ 5514: 0x87E4,
+ 5515: 0x87EA,
+ 5516: 0x87EB,
+ 5517: 0x87ED,
+ 5518: 0x87F1,
+ 5519: 0x87F3,
+ 5520: 0x87F8,
+ 5521: 0x87FA,
+ 5522: 0x87FF,
+ 5523: 0x8801,
+ 5524: 0x8803,
+ 5525: 0x8806,
+ 5526: 0x8809,
+ 5527: 0x880A,
+ 5528: 0x880B,
+ 5529: 0x8810,
+ 5530: 0x8819,
+ 5531: 0x8812,
+ 5532: 0x8813,
+ 5533: 0x8814,
+ 5534: 0x8818,
+ 5535: 0x881A,
+ 5536: 0x881B,
+ 5537: 0x881C,
+ 5538: 0x881E,
+ 5539: 0x881F,
+ 5540: 0x8828,
+ 5541: 0x882D,
+ 5542: 0x882E,
+ 5543: 0x8830,
+ 5544: 0x8832,
+ 5545: 0x8835,
+ 5546: 0x883A,
+ 5547: 0x883C,
+ 5548: 0x8841,
+ 5549: 0x8843,
+ 5550: 0x8845,
+ 5551: 0x8848,
+ 5552: 0x8849,
+ 5553: 0x884A,
+ 5554: 0x884B,
+ 5555: 0x884E,
+ 5556: 0x8851,
+ 5557: 0x8855,
+ 5558: 0x8856,
+ 5559: 0x8858,
+ 5560: 0x885A,
+ 5561: 0x885C,
+ 5562: 0x885F,
+ 5563: 0x8860,
+ 5564: 0x8864,
+ 5565: 0x8869,
+ 5566: 0x8871,
+ 5567: 0x8879,
+ 5568: 0x887B,
+ 5569: 0x8880,
+ 5570: 0x8898,
+ 5571: 0x889A,
+ 5572: 0x889B,
+ 5573: 0x889C,
+ 5574: 0x889F,
+ 5575: 0x88A0,
+ 5576: 0x88A8,
+ 5577: 0x88AA,
+ 5578: 0x88BA,
+ 5579: 0x88BD,
+ 5580: 0x88BE,
+ 5581: 0x88C0,
+ 5582: 0x88CA,
+ 5583: 0x88CB,
+ 5584: 0x88CC,
+ 5585: 0x88CD,
+ 5586: 0x88CE,
+ 5587: 0x88D1,
+ 5588: 0x88D2,
+ 5589: 0x88D3,
+ 5590: 0x88DB,
+ 5591: 0x88DE,
+ 5592: 0x88E7,
+ 5593: 0x88EF,
+ 5594: 0x88F0,
+ 5595: 0x88F1,
+ 5596: 0x88F5,
+ 5597: 0x88F7,
+ 5598: 0x8901,
+ 5599: 0x8906,
+ 5600: 0x890D,
+ 5601: 0x890E,
+ 5602: 0x890F,
+ 5603: 0x8915,
+ 5604: 0x8916,
+ 5605: 0x8918,
+ 5606: 0x8919,
+ 5607: 0x891A,
+ 5608: 0x891C,
+ 5609: 0x8920,
+ 5610: 0x8926,
+ 5611: 0x8927,
+ 5612: 0x8928,
+ 5613: 0x8930,
+ 5614: 0x8931,
+ 5615: 0x8932,
+ 5616: 0x8935,
+ 5617: 0x8939,
+ 5618: 0x893A,
+ 5619: 0x893E,
+ 5620: 0x8940,
+ 5621: 0x8942,
+ 5622: 0x8945,
+ 5623: 0x8946,
+ 5624: 0x8949,
+ 5625: 0x894F,
+ 5626: 0x8952,
+ 5627: 0x8957,
+ 5628: 0x895A,
+ 5629: 0x895B,
+ 5630: 0x895C,
+ 5631: 0x8961,
+ 5632: 0x8962,
+ 5633: 0x8963,
+ 5634: 0x896B,
+ 5635: 0x896E,
+ 5636: 0x8970,
+ 5637: 0x8973,
+ 5638: 0x8975,
+ 5639: 0x897A,
+ 5640: 0x897B,
+ 5641: 0x897C,
+ 5642: 0x897D,
+ 5643: 0x8989,
+ 5644: 0x898D,
+ 5645: 0x8990,
+ 5646: 0x8994,
+ 5647: 0x8995,
+ 5648: 0x899B,
+ 5649: 0x899C,
+ 5650: 0x899F,
+ 5651: 0x89A0,
+ 5652: 0x89A5,
+ 5653: 0x89B0,
+ 5654: 0x89B4,
+ 5655: 0x89B5,
+ 5656: 0x89B6,
+ 5657: 0x89B7,
+ 5658: 0x89BC,
+ 5659: 0x89D4,
+ 5660: 0x89D5,
+ 5661: 0x89D6,
+ 5662: 0x89D7,
+ 5663: 0x89D8,
+ 5664: 0x89E5,
+ 5665: 0x89E9,
+ 5666: 0x89EB,
+ 5667: 0x89ED,
+ 5668: 0x89F1,
+ 5669: 0x89F3,
+ 5670: 0x89F6,
+ 5671: 0x89F9,
+ 5672: 0x89FD,
+ 5673: 0x89FF,
+ 5674: 0x8A04,
+ 5675: 0x8A05,
+ 5676: 0x8A07,
+ 5677: 0x8A0F,
+ 5678: 0x8A11,
+ 5679: 0x8A12,
+ 5680: 0x8A14,
+ 5681: 0x8A15,
+ 5682: 0x8A1E,
+ 5683: 0x8A20,
+ 5684: 0x8A22,
+ 5685: 0x8A24,
+ 5686: 0x8A26,
+ 5687: 0x8A2B,
+ 5688: 0x8A2C,
+ 5689: 0x8A2F,
+ 5690: 0x8A35,
+ 5691: 0x8A37,
+ 5692: 0x8A3D,
+ 5693: 0x8A3E,
+ 5694: 0x8A40,
+ 5695: 0x8A43,
+ 5696: 0x8A45,
+ 5697: 0x8A47,
+ 5698: 0x8A49,
+ 5699: 0x8A4D,
+ 5700: 0x8A4E,
+ 5701: 0x8A53,
+ 5702: 0x8A56,
+ 5703: 0x8A57,
+ 5704: 0x8A58,
+ 5705: 0x8A5C,
+ 5706: 0x8A5D,
+ 5707: 0x8A61,
+ 5708: 0x8A65,
+ 5709: 0x8A67,
+ 5710: 0x8A75,
+ 5711: 0x8A76,
+ 5712: 0x8A77,
+ 5713: 0x8A79,
+ 5714: 0x8A7A,
+ 5715: 0x8A7B,
+ 5716: 0x8A7E,
+ 5717: 0x8A7F,
+ 5718: 0x8A80,
+ 5719: 0x8A83,
+ 5720: 0x8A86,
+ 5721: 0x8A8B,
+ 5722: 0x8A8F,
+ 5723: 0x8A90,
+ 5724: 0x8A92,
+ 5725: 0x8A96,
+ 5726: 0x8A97,
+ 5727: 0x8A99,
+ 5728: 0x8A9F,
+ 5729: 0x8AA7,
+ 5730: 0x8AA9,
+ 5731: 0x8AAE,
+ 5732: 0x8AAF,
+ 5733: 0x8AB3,
+ 5734: 0x8AB6,
+ 5735: 0x8AB7,
+ 5736: 0x8ABB,
+ 5737: 0x8ABE,
+ 5738: 0x8AC3,
+ 5739: 0x8AC6,
+ 5740: 0x8AC8,
+ 5741: 0x8AC9,
+ 5742: 0x8ACA,
+ 5743: 0x8AD1,
+ 5744: 0x8AD3,
+ 5745: 0x8AD4,
+ 5746: 0x8AD5,
+ 5747: 0x8AD7,
+ 5748: 0x8ADD,
+ 5749: 0x8ADF,
+ 5750: 0x8AEC,
+ 5751: 0x8AF0,
+ 5752: 0x8AF4,
+ 5753: 0x8AF5,
+ 5754: 0x8AF6,
+ 5755: 0x8AFC,
+ 5756: 0x8AFF,
+ 5757: 0x8B05,
+ 5758: 0x8B06,
+ 5759: 0x8B0B,
+ 5760: 0x8B11,
+ 5761: 0x8B1C,
+ 5762: 0x8B1E,
+ 5763: 0x8B1F,
+ 5764: 0x8B0A,
+ 5765: 0x8B2D,
+ 5766: 0x8B30,
+ 5767: 0x8B37,
+ 5768: 0x8B3C,
+ 5769: 0x8B42,
+ 5770: 0x8B43,
+ 5771: 0x8B44,
+ 5772: 0x8B45,
+ 5773: 0x8B46,
+ 5774: 0x8B48,
+ 5775: 0x8B52,
+ 5776: 0x8B53,
+ 5777: 0x8B54,
+ 5778: 0x8B59,
+ 5779: 0x8B4D,
+ 5780: 0x8B5E,
+ 5781: 0x8B63,
+ 5782: 0x8B6D,
+ 5783: 0x8B76,
+ 5784: 0x8B78,
+ 5785: 0x8B79,
+ 5786: 0x8B7C,
+ 5787: 0x8B7E,
+ 5788: 0x8B81,
+ 5789: 0x8B84,
+ 5790: 0x8B85,
+ 5791: 0x8B8B,
+ 5792: 0x8B8D,
+ 5793: 0x8B8F,
+ 5794: 0x8B94,
+ 5795: 0x8B95,
+ 5796: 0x8B9C,
+ 5797: 0x8B9E,
+ 5798: 0x8B9F,
+ 5799: 0x8C38,
+ 5800: 0x8C39,
+ 5801: 0x8C3D,
+ 5802: 0x8C3E,
+ 5803: 0x8C45,
+ 5804: 0x8C47,
+ 5805: 0x8C49,
+ 5806: 0x8C4B,
+ 5807: 0x8C4F,
+ 5808: 0x8C51,
+ 5809: 0x8C53,
+ 5810: 0x8C54,
+ 5811: 0x8C57,
+ 5812: 0x8C58,
+ 5813: 0x8C5B,
+ 5814: 0x8C5D,
+ 5815: 0x8C59,
+ 5816: 0x8C63,
+ 5817: 0x8C64,
+ 5818: 0x8C66,
+ 5819: 0x8C68,
+ 5820: 0x8C69,
+ 5821: 0x8C6D,
+ 5822: 0x8C73,
+ 5823: 0x8C75,
+ 5824: 0x8C76,
+ 5825: 0x8C7B,
+ 5826: 0x8C7E,
+ 5827: 0x8C86,
+ 5828: 0x8C87,
+ 5829: 0x8C8B,
+ 5830: 0x8C90,
+ 5831: 0x8C92,
+ 5832: 0x8C93,
+ 5833: 0x8C99,
+ 5834: 0x8C9B,
+ 5835: 0x8C9C,
+ 5836: 0x8CA4,
+ 5837: 0x8CB9,
+ 5838: 0x8CBA,
+ 5839: 0x8CC5,
+ 5840: 0x8CC6,
+ 5841: 0x8CC9,
+ 5842: 0x8CCB,
+ 5843: 0x8CCF,
+ 5844: 0x8CD6,
+ 5845: 0x8CD5,
+ 5846: 0x8CD9,
+ 5847: 0x8CDD,
+ 5848: 0x8CE1,
+ 5849: 0x8CE8,
+ 5850: 0x8CEC,
+ 5851: 0x8CEF,
+ 5852: 0x8CF0,
+ 5853: 0x8CF2,
+ 5854: 0x8CF5,
+ 5855: 0x8CF7,
+ 5856: 0x8CF8,
+ 5857: 0x8CFE,
+ 5858: 0x8CFF,
+ 5859: 0x8D01,
+ 5860: 0x8D03,
+ 5861: 0x8D09,
+ 5862: 0x8D12,
+ 5863: 0x8D17,
+ 5864: 0x8D1B,
+ 5865: 0x8D65,
+ 5866: 0x8D69,
+ 5867: 0x8D6C,
+ 5868: 0x8D6E,
+ 5869: 0x8D7F,
+ 5870: 0x8D82,
+ 5871: 0x8D84,
+ 5872: 0x8D88,
+ 5873: 0x8D8D,
+ 5874: 0x8D90,
+ 5875: 0x8D91,
+ 5876: 0x8D95,
+ 5877: 0x8D9E,
+ 5878: 0x8D9F,
+ 5879: 0x8DA0,
+ 5880: 0x8DA6,
+ 5881: 0x8DAB,
+ 5882: 0x8DAC,
+ 5883: 0x8DAF,
+ 5884: 0x8DB2,
+ 5885: 0x8DB5,
+ 5886: 0x8DB7,
+ 5887: 0x8DB9,
+ 5888: 0x8DBB,
+ 5889: 0x8DC0,
+ 5890: 0x8DC5,
+ 5891: 0x8DC6,
+ 5892: 0x8DC7,
+ 5893: 0x8DC8,
+ 5894: 0x8DCA,
+ 5895: 0x8DCE,
+ 5896: 0x8DD1,
+ 5897: 0x8DD4,
+ 5898: 0x8DD5,
+ 5899: 0x8DD7,
+ 5900: 0x8DD9,
+ 5901: 0x8DE4,
+ 5902: 0x8DE5,
+ 5903: 0x8DE7,
+ 5904: 0x8DEC,
+ 5905: 0x8DF0,
+ 5906: 0x8DBC,
+ 5907: 0x8DF1,
+ 5908: 0x8DF2,
+ 5909: 0x8DF4,
+ 5910: 0x8DFD,
+ 5911: 0x8E01,
+ 5912: 0x8E04,
+ 5913: 0x8E05,
+ 5914: 0x8E06,
+ 5915: 0x8E0B,
+ 5916: 0x8E11,
+ 5917: 0x8E14,
+ 5918: 0x8E16,
+ 5919: 0x8E20,
+ 5920: 0x8E21,
+ 5921: 0x8E22,
+ 5922: 0x8E23,
+ 5923: 0x8E26,
+ 5924: 0x8E27,
+ 5925: 0x8E31,
+ 5926: 0x8E33,
+ 5927: 0x8E36,
+ 5928: 0x8E37,
+ 5929: 0x8E38,
+ 5930: 0x8E39,
+ 5931: 0x8E3D,
+ 5932: 0x8E40,
+ 5933: 0x8E41,
+ 5934: 0x8E4B,
+ 5935: 0x8E4D,
+ 5936: 0x8E4E,
+ 5937: 0x8E4F,
+ 5938: 0x8E54,
+ 5939: 0x8E5B,
+ 5940: 0x8E5C,
+ 5941: 0x8E5D,
+ 5942: 0x8E5E,
+ 5943: 0x8E61,
+ 5944: 0x8E62,
+ 5945: 0x8E69,
+ 5946: 0x8E6C,
+ 5947: 0x8E6D,
+ 5948: 0x8E6F,
+ 5949: 0x8E70,
+ 5950: 0x8E71,
+ 5951: 0x8E79,
+ 5952: 0x8E7A,
+ 5953: 0x8E7B,
+ 5954: 0x8E82,
+ 5955: 0x8E83,
+ 5956: 0x8E89,
+ 5957: 0x8E90,
+ 5958: 0x8E92,
+ 5959: 0x8E95,
+ 5960: 0x8E9A,
+ 5961: 0x8E9B,
+ 5962: 0x8E9D,
+ 5963: 0x8E9E,
+ 5964: 0x8EA2,
+ 5965: 0x8EA7,
+ 5966: 0x8EA9,
+ 5967: 0x8EAD,
+ 5968: 0x8EAE,
+ 5969: 0x8EB3,
+ 5970: 0x8EB5,
+ 5971: 0x8EBA,
+ 5972: 0x8EBB,
+ 5973: 0x8EC0,
+ 5974: 0x8EC1,
+ 5975: 0x8EC3,
+ 5976: 0x8EC4,
+ 5977: 0x8EC7,
+ 5978: 0x8ECF,
+ 5979: 0x8ED1,
+ 5980: 0x8ED4,
+ 5981: 0x8EDC,
+ 5982: 0x8EE8,
+ 5983: 0x8EEE,
+ 5984: 0x8EF0,
+ 5985: 0x8EF1,
+ 5986: 0x8EF7,
+ 5987: 0x8EF9,
+ 5988: 0x8EFA,
+ 5989: 0x8EED,
+ 5990: 0x8F00,
+ 5991: 0x8F02,
+ 5992: 0x8F07,
+ 5993: 0x8F08,
+ 5994: 0x8F0F,
+ 5995: 0x8F10,
+ 5996: 0x8F16,
+ 5997: 0x8F17,
+ 5998: 0x8F18,
+ 5999: 0x8F1E,
+ 6000: 0x8F20,
+ 6001: 0x8F21,
+ 6002: 0x8F23,
+ 6003: 0x8F25,
+ 6004: 0x8F27,
+ 6005: 0x8F28,
+ 6006: 0x8F2C,
+ 6007: 0x8F2D,
+ 6008: 0x8F2E,
+ 6009: 0x8F34,
+ 6010: 0x8F35,
+ 6011: 0x8F36,
+ 6012: 0x8F37,
+ 6013: 0x8F3A,
+ 6014: 0x8F40,
+ 6015: 0x8F41,
+ 6016: 0x8F43,
+ 6017: 0x8F47,
+ 6018: 0x8F4F,
+ 6019: 0x8F51,
+ 6020: 0x8F52,
+ 6021: 0x8F53,
+ 6022: 0x8F54,
+ 6023: 0x8F55,
+ 6024: 0x8F58,
+ 6025: 0x8F5D,
+ 6026: 0x8F5E,
+ 6027: 0x8F65,
+ 6028: 0x8F9D,
+ 6029: 0x8FA0,
+ 6030: 0x8FA1,
+ 6031: 0x8FA4,
+ 6032: 0x8FA5,
+ 6033: 0x8FA6,
+ 6034: 0x8FB5,
+ 6035: 0x8FB6,
+ 6036: 0x8FB8,
+ 6037: 0x8FBE,
+ 6038: 0x8FC0,
+ 6039: 0x8FC1,
+ 6040: 0x8FC6,
+ 6041: 0x8FCA,
+ 6042: 0x8FCB,
+ 6043: 0x8FCD,
+ 6044: 0x8FD0,
+ 6045: 0x8FD2,
+ 6046: 0x8FD3,
+ 6047: 0x8FD5,
+ 6048: 0x8FE0,
+ 6049: 0x8FE3,
+ 6050: 0x8FE4,
+ 6051: 0x8FE8,
+ 6052: 0x8FEE,
+ 6053: 0x8FF1,
+ 6054: 0x8FF5,
+ 6055: 0x8FF6,
+ 6056: 0x8FFB,
+ 6057: 0x8FFE,
+ 6058: 0x9002,
+ 6059: 0x9004,
+ 6060: 0x9008,
+ 6061: 0x900C,
+ 6062: 0x9018,
+ 6063: 0x901B,
+ 6064: 0x9028,
+ 6065: 0x9029,
+ 6066: 0x902F,
+ 6067: 0x902A,
+ 6068: 0x902C,
+ 6069: 0x902D,
+ 6070: 0x9033,
+ 6071: 0x9034,
+ 6072: 0x9037,
+ 6073: 0x903F,
+ 6074: 0x9043,
+ 6075: 0x9044,
+ 6076: 0x904C,
+ 6077: 0x905B,
+ 6078: 0x905D,
+ 6079: 0x9062,
+ 6080: 0x9066,
+ 6081: 0x9067,
+ 6082: 0x906C,
+ 6083: 0x9070,
+ 6084: 0x9074,
+ 6085: 0x9079,
+ 6086: 0x9085,
+ 6087: 0x9088,
+ 6088: 0x908B,
+ 6089: 0x908C,
+ 6090: 0x908E,
+ 6091: 0x9090,
+ 6092: 0x9095,
+ 6093: 0x9097,
+ 6094: 0x9098,
+ 6095: 0x9099,
+ 6096: 0x909B,
+ 6097: 0x90A0,
+ 6098: 0x90A1,
+ 6099: 0x90A2,
+ 6100: 0x90A5,
+ 6101: 0x90B0,
+ 6102: 0x90B2,
+ 6103: 0x90B3,
+ 6104: 0x90B4,
+ 6105: 0x90B6,
+ 6106: 0x90BD,
+ 6107: 0x90CC,
+ 6108: 0x90BE,
+ 6109: 0x90C3,
+ 6110: 0x90C4,
+ 6111: 0x90C5,
+ 6112: 0x90C7,
+ 6113: 0x90C8,
+ 6114: 0x90D5,
+ 6115: 0x90D7,
+ 6116: 0x90D8,
+ 6117: 0x90D9,
+ 6118: 0x90DC,
+ 6119: 0x90DD,
+ 6120: 0x90DF,
+ 6121: 0x90E5,
+ 6122: 0x90D2,
+ 6123: 0x90F6,
+ 6124: 0x90EB,
+ 6125: 0x90EF,
+ 6126: 0x90F0,
+ 6127: 0x90F4,
+ 6128: 0x90FE,
+ 6129: 0x90FF,
+ 6130: 0x9100,
+ 6131: 0x9104,
+ 6132: 0x9105,
+ 6133: 0x9106,
+ 6134: 0x9108,
+ 6135: 0x910D,
+ 6136: 0x9110,
+ 6137: 0x9114,
+ 6138: 0x9116,
+ 6139: 0x9117,
+ 6140: 0x9118,
+ 6141: 0x911A,
+ 6142: 0x911C,
+ 6143: 0x911E,
+ 6144: 0x9120,
+ 6145: 0x9125,
+ 6146: 0x9122,
+ 6147: 0x9123,
+ 6148: 0x9127,
+ 6149: 0x9129,
+ 6150: 0x912E,
+ 6151: 0x912F,
+ 6152: 0x9131,
+ 6153: 0x9134,
+ 6154: 0x9136,
+ 6155: 0x9137,
+ 6156: 0x9139,
+ 6157: 0x913A,
+ 6158: 0x913C,
+ 6159: 0x913D,
+ 6160: 0x9143,
+ 6161: 0x9147,
+ 6162: 0x9148,
+ 6163: 0x914F,
+ 6164: 0x9153,
+ 6165: 0x9157,
+ 6166: 0x9159,
+ 6167: 0x915A,
+ 6168: 0x915B,
+ 6169: 0x9161,
+ 6170: 0x9164,
+ 6171: 0x9167,
+ 6172: 0x916D,
+ 6173: 0x9174,
+ 6174: 0x9179,
+ 6175: 0x917A,
+ 6176: 0x917B,
+ 6177: 0x9181,
+ 6178: 0x9183,
+ 6179: 0x9185,
+ 6180: 0x9186,
+ 6181: 0x918A,
+ 6182: 0x918E,
+ 6183: 0x9191,
+ 6184: 0x9193,
+ 6185: 0x9194,
+ 6186: 0x9195,
+ 6187: 0x9198,
+ 6188: 0x919E,
+ 6189: 0x91A1,
+ 6190: 0x91A6,
+ 6191: 0x91A8,
+ 6192: 0x91AC,
+ 6193: 0x91AD,
+ 6194: 0x91AE,
+ 6195: 0x91B0,
+ 6196: 0x91B1,
+ 6197: 0x91B2,
+ 6198: 0x91B3,
+ 6199: 0x91B6,
+ 6200: 0x91BB,
+ 6201: 0x91BC,
+ 6202: 0x91BD,
+ 6203: 0x91BF,
+ 6204: 0x91C2,
+ 6205: 0x91C3,
+ 6206: 0x91C5,
+ 6207: 0x91D3,
+ 6208: 0x91D4,
+ 6209: 0x91D7,
+ 6210: 0x91D9,
+ 6211: 0x91DA,
+ 6212: 0x91DE,
+ 6213: 0x91E4,
+ 6214: 0x91E5,
+ 6215: 0x91E9,
+ 6216: 0x91EA,
+ 6217: 0x91EC,
+ 6218: 0x91ED,
+ 6219: 0x91EE,
+ 6220: 0x91EF,
+ 6221: 0x91F0,
+ 6222: 0x91F1,
+ 6223: 0x91F7,
+ 6224: 0x91F9,
+ 6225: 0x91FB,
+ 6226: 0x91FD,
+ 6227: 0x9200,
+ 6228: 0x9201,
+ 6229: 0x9204,
+ 6230: 0x9205,
+ 6231: 0x9206,
+ 6232: 0x9207,
+ 6233: 0x9209,
+ 6234: 0x920A,
+ 6235: 0x920C,
+ 6236: 0x9210,
+ 6237: 0x9212,
+ 6238: 0x9213,
+ 6239: 0x9216,
+ 6240: 0x9218,
+ 6241: 0x921C,
+ 6242: 0x921D,
+ 6243: 0x9223,
+ 6244: 0x9224,
+ 6245: 0x9225,
+ 6246: 0x9226,
+ 6247: 0x9228,
+ 6248: 0x922E,
+ 6249: 0x922F,
+ 6250: 0x9230,
+ 6251: 0x9233,
+ 6252: 0x9235,
+ 6253: 0x9236,
+ 6254: 0x9238,
+ 6255: 0x9239,
+ 6256: 0x923A,
+ 6257: 0x923C,
+ 6258: 0x923E,
+ 6259: 0x9240,
+ 6260: 0x9242,
+ 6261: 0x9243,
+ 6262: 0x9246,
+ 6263: 0x9247,
+ 6264: 0x924A,
+ 6265: 0x924D,
+ 6266: 0x924E,
+ 6267: 0x924F,
+ 6268: 0x9251,
+ 6269: 0x9258,
+ 6270: 0x9259,
+ 6271: 0x925C,
+ 6272: 0x925D,
+ 6273: 0x9260,
+ 6274: 0x9261,
+ 6275: 0x9265,
+ 6276: 0x9267,
+ 6277: 0x9268,
+ 6278: 0x9269,
+ 6279: 0x926E,
+ 6280: 0x926F,
+ 6281: 0x9270,
+ 6282: 0x9275,
+ 6283: 0x9276,
+ 6284: 0x9277,
+ 6285: 0x9278,
+ 6286: 0x9279,
+ 6287: 0x927B,
+ 6288: 0x927C,
+ 6289: 0x927D,
+ 6290: 0x927F,
+ 6291: 0x9288,
+ 6292: 0x9289,
+ 6293: 0x928A,
+ 6294: 0x928D,
+ 6295: 0x928E,
+ 6296: 0x9292,
+ 6297: 0x9297,
+ 6298: 0x9299,
+ 6299: 0x929F,
+ 6300: 0x92A0,
+ 6301: 0x92A4,
+ 6302: 0x92A5,
+ 6303: 0x92A7,
+ 6304: 0x92A8,
+ 6305: 0x92AB,
+ 6306: 0x92AF,
+ 6307: 0x92B2,
+ 6308: 0x92B6,
+ 6309: 0x92B8,
+ 6310: 0x92BA,
+ 6311: 0x92BB,
+ 6312: 0x92BC,
+ 6313: 0x92BD,
+ 6314: 0x92BF,
+ 6315: 0x92C0,
+ 6316: 0x92C1,
+ 6317: 0x92C2,
+ 6318: 0x92C3,
+ 6319: 0x92C5,
+ 6320: 0x92C6,
+ 6321: 0x92C7,
+ 6322: 0x92C8,
+ 6323: 0x92CB,
+ 6324: 0x92CC,
+ 6325: 0x92CD,
+ 6326: 0x92CE,
+ 6327: 0x92D0,
+ 6328: 0x92D3,
+ 6329: 0x92D5,
+ 6330: 0x92D7,
+ 6331: 0x92D8,
+ 6332: 0x92D9,
+ 6333: 0x92DC,
+ 6334: 0x92DD,
+ 6335: 0x92DF,
+ 6336: 0x92E0,
+ 6337: 0x92E1,
+ 6338: 0x92E3,
+ 6339: 0x92E5,
+ 6340: 0x92E7,
+ 6341: 0x92E8,
+ 6342: 0x92EC,
+ 6343: 0x92EE,
+ 6344: 0x92F0,
+ 6345: 0x92F9,
+ 6346: 0x92FB,
+ 6347: 0x92FF,
+ 6348: 0x9300,
+ 6349: 0x9302,
+ 6350: 0x9308,
+ 6351: 0x930D,
+ 6352: 0x9311,
+ 6353: 0x9314,
+ 6354: 0x9315,
+ 6355: 0x931C,
+ 6356: 0x931D,
+ 6357: 0x931E,
+ 6358: 0x931F,
+ 6359: 0x9321,
+ 6360: 0x9324,
+ 6361: 0x9325,
+ 6362: 0x9327,
+ 6363: 0x9329,
+ 6364: 0x932A,
+ 6365: 0x9333,
+ 6366: 0x9334,
+ 6367: 0x9336,
+ 6368: 0x9337,
+ 6369: 0x9347,
+ 6370: 0x9348,
+ 6371: 0x9349,
+ 6372: 0x9350,
+ 6373: 0x9351,
+ 6374: 0x9352,
+ 6375: 0x9355,
+ 6376: 0x9357,
+ 6377: 0x9358,
+ 6378: 0x935A,
+ 6379: 0x935E,
+ 6380: 0x9364,
+ 6381: 0x9365,
+ 6382: 0x9367,
+ 6383: 0x9369,
+ 6384: 0x936A,
+ 6385: 0x936D,
+ 6386: 0x936F,
+ 6387: 0x9370,
+ 6388: 0x9371,
+ 6389: 0x9373,
+ 6390: 0x9374,
+ 6391: 0x9376,
+ 6392: 0x937A,
+ 6393: 0x937D,
+ 6394: 0x937F,
+ 6395: 0x9380,
+ 6396: 0x9381,
+ 6397: 0x9382,
+ 6398: 0x9388,
+ 6399: 0x938A,
+ 6400: 0x938B,
+ 6401: 0x938D,
+ 6402: 0x938F,
+ 6403: 0x9392,
+ 6404: 0x9395,
+ 6405: 0x9398,
+ 6406: 0x939B,
+ 6407: 0x939E,
+ 6408: 0x93A1,
+ 6409: 0x93A3,
+ 6410: 0x93A4,
+ 6411: 0x93A6,
+ 6412: 0x93A8,
+ 6413: 0x93AB,
+ 6414: 0x93B4,
+ 6415: 0x93B5,
+ 6416: 0x93B6,
+ 6417: 0x93BA,
+ 6418: 0x93A9,
+ 6419: 0x93C1,
+ 6420: 0x93C4,
+ 6421: 0x93C5,
+ 6422: 0x93C6,
+ 6423: 0x93C7,
+ 6424: 0x93C9,
+ 6425: 0x93CA,
+ 6426: 0x93CB,
+ 6427: 0x93CC,
+ 6428: 0x93CD,
+ 6429: 0x93D3,
+ 6430: 0x93D9,
+ 6431: 0x93DC,
+ 6432: 0x93DE,
+ 6433: 0x93DF,
+ 6434: 0x93E2,
+ 6435: 0x93E6,
+ 6436: 0x93E7,
+ 6437: 0x93F9,
+ 6438: 0x93F7,
+ 6439: 0x93F8,
+ 6440: 0x93FA,
+ 6441: 0x93FB,
+ 6442: 0x93FD,
+ 6443: 0x9401,
+ 6444: 0x9402,
+ 6445: 0x9404,
+ 6446: 0x9408,
+ 6447: 0x9409,
+ 6448: 0x940D,
+ 6449: 0x940E,
+ 6450: 0x940F,
+ 6451: 0x9415,
+ 6452: 0x9416,
+ 6453: 0x9417,
+ 6454: 0x941F,
+ 6455: 0x942E,
+ 6456: 0x942F,
+ 6457: 0x9431,
+ 6458: 0x9432,
+ 6459: 0x9433,
+ 6460: 0x9434,
+ 6461: 0x943B,
+ 6462: 0x943F,
+ 6463: 0x943D,
+ 6464: 0x9443,
+ 6465: 0x9445,
+ 6466: 0x9448,
+ 6467: 0x944A,
+ 6468: 0x944C,
+ 6469: 0x9455,
+ 6470: 0x9459,
+ 6471: 0x945C,
+ 6472: 0x945F,
+ 6473: 0x9461,
+ 6474: 0x9463,
+ 6475: 0x9468,
+ 6476: 0x946B,
+ 6477: 0x946D,
+ 6478: 0x946E,
+ 6479: 0x946F,
+ 6480: 0x9471,
+ 6481: 0x9472,
+ 6482: 0x9484,
+ 6483: 0x9483,
+ 6484: 0x9578,
+ 6485: 0x9579,
+ 6486: 0x957E,
+ 6487: 0x9584,
+ 6488: 0x9588,
+ 6489: 0x958C,
+ 6490: 0x958D,
+ 6491: 0x958E,
+ 6492: 0x959D,
+ 6493: 0x959E,
+ 6494: 0x959F,
+ 6495: 0x95A1,
+ 6496: 0x95A6,
+ 6497: 0x95A9,
+ 6498: 0x95AB,
+ 6499: 0x95AC,
+ 6500: 0x95B4,
+ 6501: 0x95B6,
+ 6502: 0x95BA,
+ 6503: 0x95BD,
+ 6504: 0x95BF,
+ 6505: 0x95C6,
+ 6506: 0x95C8,
+ 6507: 0x95C9,
+ 6508: 0x95CB,
+ 6509: 0x95D0,
+ 6510: 0x95D1,
+ 6511: 0x95D2,
+ 6512: 0x95D3,
+ 6513: 0x95D9,
+ 6514: 0x95DA,
+ 6515: 0x95DD,
+ 6516: 0x95DE,
+ 6517: 0x95DF,
+ 6518: 0x95E0,
+ 6519: 0x95E4,
+ 6520: 0x95E6,
+ 6521: 0x961D,
+ 6522: 0x961E,
+ 6523: 0x9622,
+ 6524: 0x9624,
+ 6525: 0x9625,
+ 6526: 0x9626,
+ 6527: 0x962C,
+ 6528: 0x9631,
+ 6529: 0x9633,
+ 6530: 0x9637,
+ 6531: 0x9638,
+ 6532: 0x9639,
+ 6533: 0x963A,
+ 6534: 0x963C,
+ 6535: 0x963D,
+ 6536: 0x9641,
+ 6537: 0x9652,
+ 6538: 0x9654,
+ 6539: 0x9656,
+ 6540: 0x9657,
+ 6541: 0x9658,
+ 6542: 0x9661,
+ 6543: 0x966E,
+ 6544: 0x9674,
+ 6545: 0x967B,
+ 6546: 0x967C,
+ 6547: 0x967E,
+ 6548: 0x967F,
+ 6549: 0x9681,
+ 6550: 0x9682,
+ 6551: 0x9683,
+ 6552: 0x9684,
+ 6553: 0x9689,
+ 6554: 0x9691,
+ 6555: 0x9696,
+ 6556: 0x969A,
+ 6557: 0x969D,
+ 6558: 0x969F,
+ 6559: 0x96A4,
+ 6560: 0x96A5,
+ 6561: 0x96A6,
+ 6562: 0x96A9,
+ 6563: 0x96AE,
+ 6564: 0x96AF,
+ 6565: 0x96B3,
+ 6566: 0x96BA,
+ 6567: 0x96CA,
+ 6568: 0x96D2,
+ 6569: 0x5DB2,
+ 6570: 0x96D8,
+ 6571: 0x96DA,
+ 6572: 0x96DD,
+ 6573: 0x96DE,
+ 6574: 0x96DF,
+ 6575: 0x96E9,
+ 6576: 0x96EF,
+ 6577: 0x96F1,
+ 6578: 0x96FA,
+ 6579: 0x9702,
+ 6580: 0x9703,
+ 6581: 0x9705,
+ 6582: 0x9709,
+ 6583: 0x971A,
+ 6584: 0x971B,
+ 6585: 0x971D,
+ 6586: 0x9721,
+ 6587: 0x9722,
+ 6588: 0x9723,
+ 6589: 0x9728,
+ 6590: 0x9731,
+ 6591: 0x9733,
+ 6592: 0x9741,
+ 6593: 0x9743,
+ 6594: 0x974A,
+ 6595: 0x974E,
+ 6596: 0x974F,
+ 6597: 0x9755,
+ 6598: 0x9757,
+ 6599: 0x9758,
+ 6600: 0x975A,
+ 6601: 0x975B,
+ 6602: 0x9763,
+ 6603: 0x9767,
+ 6604: 0x976A,
+ 6605: 0x976E,
+ 6606: 0x9773,
+ 6607: 0x9776,
+ 6608: 0x9777,
+ 6609: 0x9778,
+ 6610: 0x977B,
+ 6611: 0x977D,
+ 6612: 0x977F,
+ 6613: 0x9780,
+ 6614: 0x9789,
+ 6615: 0x9795,
+ 6616: 0x9796,
+ 6617: 0x9797,
+ 6618: 0x9799,
+ 6619: 0x979A,
+ 6620: 0x979E,
+ 6621: 0x979F,
+ 6622: 0x97A2,
+ 6623: 0x97AC,
+ 6624: 0x97AE,
+ 6625: 0x97B1,
+ 6626: 0x97B2,
+ 6627: 0x97B5,
+ 6628: 0x97B6,
+ 6629: 0x97B8,
+ 6630: 0x97B9,
+ 6631: 0x97BA,
+ 6632: 0x97BC,
+ 6633: 0x97BE,
+ 6634: 0x97BF,
+ 6635: 0x97C1,
+ 6636: 0x97C4,
+ 6637: 0x97C5,
+ 6638: 0x97C7,
+ 6639: 0x97C9,
+ 6640: 0x97CA,
+ 6641: 0x97CC,
+ 6642: 0x97CD,
+ 6643: 0x97CE,
+ 6644: 0x97D0,
+ 6645: 0x97D1,
+ 6646: 0x97D4,
+ 6647: 0x97D7,
+ 6648: 0x97D8,
+ 6649: 0x97D9,
+ 6650: 0x97DD,
+ 6651: 0x97DE,
+ 6652: 0x97E0,
+ 6653: 0x97DB,
+ 6654: 0x97E1,
+ 6655: 0x97E4,
+ 6656: 0x97EF,
+ 6657: 0x97F1,
+ 6658: 0x97F4,
+ 6659: 0x97F7,
+ 6660: 0x97F8,
+ 6661: 0x97FA,
+ 6662: 0x9807,
+ 6663: 0x980A,
+ 6664: 0x9819,
+ 6665: 0x980D,
+ 6666: 0x980E,
+ 6667: 0x9814,
+ 6668: 0x9816,
+ 6669: 0x981C,
+ 6670: 0x981E,
+ 6671: 0x9820,
+ 6672: 0x9823,
+ 6673: 0x9826,
+ 6674: 0x982B,
+ 6675: 0x982E,
+ 6676: 0x982F,
+ 6677: 0x9830,
+ 6678: 0x9832,
+ 6679: 0x9833,
+ 6680: 0x9835,
+ 6681: 0x9825,
+ 6682: 0x983E,
+ 6683: 0x9844,
+ 6684: 0x9847,
+ 6685: 0x984A,
+ 6686: 0x9851,
+ 6687: 0x9852,
+ 6688: 0x9853,
+ 6689: 0x9856,
+ 6690: 0x9857,
+ 6691: 0x9859,
+ 6692: 0x985A,
+ 6693: 0x9862,
+ 6694: 0x9863,
+ 6695: 0x9865,
+ 6696: 0x9866,
+ 6697: 0x986A,
+ 6698: 0x986C,
+ 6699: 0x98AB,
+ 6700: 0x98AD,
+ 6701: 0x98AE,
+ 6702: 0x98B0,
+ 6703: 0x98B4,
+ 6704: 0x98B7,
+ 6705: 0x98B8,
+ 6706: 0x98BA,
+ 6707: 0x98BB,
+ 6708: 0x98BF,
+ 6709: 0x98C2,
+ 6710: 0x98C5,
+ 6711: 0x98C8,
+ 6712: 0x98CC,
+ 6713: 0x98E1,
+ 6714: 0x98E3,
+ 6715: 0x98E5,
+ 6716: 0x98E6,
+ 6717: 0x98E7,
+ 6718: 0x98EA,
+ 6719: 0x98F3,
+ 6720: 0x98F6,
+ 6721: 0x9902,
+ 6722: 0x9907,
+ 6723: 0x9908,
+ 6724: 0x9911,
+ 6725: 0x9915,
+ 6726: 0x9916,
+ 6727: 0x9917,
+ 6728: 0x991A,
+ 6729: 0x991B,
+ 6730: 0x991C,
+ 6731: 0x991F,
+ 6732: 0x9922,
+ 6733: 0x9926,
+ 6734: 0x9927,
+ 6735: 0x992B,
+ 6736: 0x9931,
+ 6737: 0x9932,
+ 6738: 0x9933,
+ 6739: 0x9934,
+ 6740: 0x9935,
+ 6741: 0x9939,
+ 6742: 0x993A,
+ 6743: 0x993B,
+ 6744: 0x993C,
+ 6745: 0x9940,
+ 6746: 0x9941,
+ 6747: 0x9946,
+ 6748: 0x9947,
+ 6749: 0x9948,
+ 6750: 0x994D,
+ 6751: 0x994E,
+ 6752: 0x9954,
+ 6753: 0x9958,
+ 6754: 0x9959,
+ 6755: 0x995B,
+ 6756: 0x995C,
+ 6757: 0x995E,
+ 6758: 0x995F,
+ 6759: 0x9960,
+ 6760: 0x999B,
+ 6761: 0x999D,
+ 6762: 0x999F,
+ 6763: 0x99A6,
+ 6764: 0x99B0,
+ 6765: 0x99B1,
+ 6766: 0x99B2,
+ 6767: 0x99B5,
+ 6768: 0x99B9,
+ 6769: 0x99BA,
+ 6770: 0x99BD,
+ 6771: 0x99BF,
+ 6772: 0x99C3,
+ 6773: 0x99C9,
+ 6774: 0x99D3,
+ 6775: 0x99D4,
+ 6776: 0x99D9,
+ 6777: 0x99DA,
+ 6778: 0x99DC,
+ 6779: 0x99DE,
+ 6780: 0x99E7,
+ 6781: 0x99EA,
+ 6782: 0x99EB,
+ 6783: 0x99EC,
+ 6784: 0x99F0,
+ 6785: 0x99F4,
+ 6786: 0x99F5,
+ 6787: 0x99F9,
+ 6788: 0x99FD,
+ 6789: 0x99FE,
+ 6790: 0x9A02,
+ 6791: 0x9A03,
+ 6792: 0x9A04,
+ 6793: 0x9A0B,
+ 6794: 0x9A0C,
+ 6795: 0x9A10,
+ 6796: 0x9A11,
+ 6797: 0x9A16,
+ 6798: 0x9A1E,
+ 6799: 0x9A20,
+ 6800: 0x9A22,
+ 6801: 0x9A23,
+ 6802: 0x9A24,
+ 6803: 0x9A27,
+ 6804: 0x9A2D,
+ 6805: 0x9A2E,
+ 6806: 0x9A33,
+ 6807: 0x9A35,
+ 6808: 0x9A36,
+ 6809: 0x9A38,
+ 6810: 0x9A47,
+ 6811: 0x9A41,
+ 6812: 0x9A44,
+ 6813: 0x9A4A,
+ 6814: 0x9A4B,
+ 6815: 0x9A4C,
+ 6816: 0x9A4E,
+ 6817: 0x9A51,
+ 6818: 0x9A54,
+ 6819: 0x9A56,
+ 6820: 0x9A5D,
+ 6821: 0x9AAA,
+ 6822: 0x9AAC,
+ 6823: 0x9AAE,
+ 6824: 0x9AAF,
+ 6825: 0x9AB2,
+ 6826: 0x9AB4,
+ 6827: 0x9AB5,
+ 6828: 0x9AB6,
+ 6829: 0x9AB9,
+ 6830: 0x9ABB,
+ 6831: 0x9ABE,
+ 6832: 0x9ABF,
+ 6833: 0x9AC1,
+ 6834: 0x9AC3,
+ 6835: 0x9AC6,
+ 6836: 0x9AC8,
+ 6837: 0x9ACE,
+ 6838: 0x9AD0,
+ 6839: 0x9AD2,
+ 6840: 0x9AD5,
+ 6841: 0x9AD6,
+ 6842: 0x9AD7,
+ 6843: 0x9ADB,
+ 6844: 0x9ADC,
+ 6845: 0x9AE0,
+ 6846: 0x9AE4,
+ 6847: 0x9AE5,
+ 6848: 0x9AE7,
+ 6849: 0x9AE9,
+ 6850: 0x9AEC,
+ 6851: 0x9AF2,
+ 6852: 0x9AF3,
+ 6853: 0x9AF5,
+ 6854: 0x9AF9,
+ 6855: 0x9AFA,
+ 6856: 0x9AFD,
+ 6857: 0x9AFF,
+ 6858: 0x9B00,
+ 6859: 0x9B01,
+ 6860: 0x9B02,
+ 6861: 0x9B03,
+ 6862: 0x9B04,
+ 6863: 0x9B05,
+ 6864: 0x9B08,
+ 6865: 0x9B09,
+ 6866: 0x9B0B,
+ 6867: 0x9B0C,
+ 6868: 0x9B0D,
+ 6869: 0x9B0E,
+ 6870: 0x9B10,
+ 6871: 0x9B12,
+ 6872: 0x9B16,
+ 6873: 0x9B19,
+ 6874: 0x9B1B,
+ 6875: 0x9B1C,
+ 6876: 0x9B20,
+ 6877: 0x9B26,
+ 6878: 0x9B2B,
+ 6879: 0x9B2D,
+ 6880: 0x9B33,
+ 6881: 0x9B34,
+ 6882: 0x9B35,
+ 6883: 0x9B37,
+ 6884: 0x9B39,
+ 6885: 0x9B3A,
+ 6886: 0x9B3D,
+ 6887: 0x9B48,
+ 6888: 0x9B4B,
+ 6889: 0x9B4C,
+ 6890: 0x9B55,
+ 6891: 0x9B56,
+ 6892: 0x9B57,
+ 6893: 0x9B5B,
+ 6894: 0x9B5E,
+ 6895: 0x9B61,
+ 6896: 0x9B63,
+ 6897: 0x9B65,
+ 6898: 0x9B66,
+ 6899: 0x9B68,
+ 6900: 0x9B6A,
+ 6901: 0x9B6B,
+ 6902: 0x9B6C,
+ 6903: 0x9B6D,
+ 6904: 0x9B6E,
+ 6905: 0x9B73,
+ 6906: 0x9B75,
+ 6907: 0x9B77,
+ 6908: 0x9B78,
+ 6909: 0x9B79,
+ 6910: 0x9B7F,
+ 6911: 0x9B80,
+ 6912: 0x9B84,
+ 6913: 0x9B85,
+ 6914: 0x9B86,
+ 6915: 0x9B87,
+ 6916: 0x9B89,
+ 6917: 0x9B8A,
+ 6918: 0x9B8B,
+ 6919: 0x9B8D,
+ 6920: 0x9B8F,
+ 6921: 0x9B90,
+ 6922: 0x9B94,
+ 6923: 0x9B9A,
+ 6924: 0x9B9D,
+ 6925: 0x9B9E,
+ 6926: 0x9BA6,
+ 6927: 0x9BA7,
+ 6928: 0x9BA9,
+ 6929: 0x9BAC,
+ 6930: 0x9BB0,
+ 6931: 0x9BB1,
+ 6932: 0x9BB2,
+ 6933: 0x9BB7,
+ 6934: 0x9BB8,
+ 6935: 0x9BBB,
+ 6936: 0x9BBC,
+ 6937: 0x9BBE,
+ 6938: 0x9BBF,
+ 6939: 0x9BC1,
+ 6940: 0x9BC7,
+ 6941: 0x9BC8,
+ 6942: 0x9BCE,
+ 6943: 0x9BD0,
+ 6944: 0x9BD7,
+ 6945: 0x9BD8,
+ 6946: 0x9BDD,
+ 6947: 0x9BDF,
+ 6948: 0x9BE5,
+ 6949: 0x9BE7,
+ 6950: 0x9BEA,
+ 6951: 0x9BEB,
+ 6952: 0x9BEF,
+ 6953: 0x9BF3,
+ 6954: 0x9BF7,
+ 6955: 0x9BF8,
+ 6956: 0x9BF9,
+ 6957: 0x9BFA,
+ 6958: 0x9BFD,
+ 6959: 0x9BFF,
+ 6960: 0x9C00,
+ 6961: 0x9C02,
+ 6962: 0x9C0B,
+ 6963: 0x9C0F,
+ 6964: 0x9C11,
+ 6965: 0x9C16,
+ 6966: 0x9C18,
+ 6967: 0x9C19,
+ 6968: 0x9C1A,
+ 6969: 0x9C1C,
+ 6970: 0x9C1E,
+ 6971: 0x9C22,
+ 6972: 0x9C23,
+ 6973: 0x9C26,
+ 6974: 0x9C27,
+ 6975: 0x9C28,
+ 6976: 0x9C29,
+ 6977: 0x9C2A,
+ 6978: 0x9C31,
+ 6979: 0x9C35,
+ 6980: 0x9C36,
+ 6981: 0x9C37,
+ 6982: 0x9C3D,
+ 6983: 0x9C41,
+ 6984: 0x9C43,
+ 6985: 0x9C44,
+ 6986: 0x9C45,
+ 6987: 0x9C49,
+ 6988: 0x9C4A,
+ 6989: 0x9C4E,
+ 6990: 0x9C4F,
+ 6991: 0x9C50,
+ 6992: 0x9C53,
+ 6993: 0x9C54,
+ 6994: 0x9C56,
+ 6995: 0x9C58,
+ 6996: 0x9C5B,
+ 6997: 0x9C5D,
+ 6998: 0x9C5E,
+ 6999: 0x9C5F,
+ 7000: 0x9C63,
+ 7001: 0x9C69,
+ 7002: 0x9C6A,
+ 7003: 0x9C5C,
+ 7004: 0x9C6B,
+ 7005: 0x9C68,
+ 7006: 0x9C6E,
+ 7007: 0x9C70,
+ 7008: 0x9C72,
+ 7009: 0x9C75,
+ 7010: 0x9C77,
+ 7011: 0x9C7B,
+ 7012: 0x9CE6,
+ 7013: 0x9CF2,
+ 7014: 0x9CF7,
+ 7015: 0x9CF9,
+ 7016: 0x9D0B,
+ 7017: 0x9D02,
+ 7018: 0x9D11,
+ 7019: 0x9D17,
+ 7020: 0x9D18,
+ 7021: 0x9D1C,
+ 7022: 0x9D1D,
+ 7023: 0x9D1E,
+ 7024: 0x9D2F,
+ 7025: 0x9D30,
+ 7026: 0x9D32,
+ 7027: 0x9D33,
+ 7028: 0x9D34,
+ 7029: 0x9D3A,
+ 7030: 0x9D3C,
+ 7031: 0x9D45,
+ 7032: 0x9D3D,
+ 7033: 0x9D42,
+ 7034: 0x9D43,
+ 7035: 0x9D47,
+ 7036: 0x9D4A,
+ 7037: 0x9D53,
+ 7038: 0x9D54,
+ 7039: 0x9D5F,
+ 7040: 0x9D63,
+ 7041: 0x9D62,
+ 7042: 0x9D65,
+ 7043: 0x9D69,
+ 7044: 0x9D6A,
+ 7045: 0x9D6B,
+ 7046: 0x9D70,
+ 7047: 0x9D76,
+ 7048: 0x9D77,
+ 7049: 0x9D7B,
+ 7050: 0x9D7C,
+ 7051: 0x9D7E,
+ 7052: 0x9D83,
+ 7053: 0x9D84,
+ 7054: 0x9D86,
+ 7055: 0x9D8A,
+ 7056: 0x9D8D,
+ 7057: 0x9D8E,
+ 7058: 0x9D92,
+ 7059: 0x9D93,
+ 7060: 0x9D95,
+ 7061: 0x9D96,
+ 7062: 0x9D97,
+ 7063: 0x9D98,
+ 7064: 0x9DA1,
+ 7065: 0x9DAA,
+ 7066: 0x9DAC,
+ 7067: 0x9DAE,
+ 7068: 0x9DB1,
+ 7069: 0x9DB5,
+ 7070: 0x9DB9,
+ 7071: 0x9DBC,
+ 7072: 0x9DBF,
+ 7073: 0x9DC3,
+ 7074: 0x9DC7,
+ 7075: 0x9DC9,
+ 7076: 0x9DCA,
+ 7077: 0x9DD4,
+ 7078: 0x9DD5,
+ 7079: 0x9DD6,
+ 7080: 0x9DD7,
+ 7081: 0x9DDA,
+ 7082: 0x9DDE,
+ 7083: 0x9DDF,
+ 7084: 0x9DE0,
+ 7085: 0x9DE5,
+ 7086: 0x9DE7,
+ 7087: 0x9DE9,
+ 7088: 0x9DEB,
+ 7089: 0x9DEE,
+ 7090: 0x9DF0,
+ 7091: 0x9DF3,
+ 7092: 0x9DF4,
+ 7093: 0x9DFE,
+ 7094: 0x9E0A,
+ 7095: 0x9E02,
+ 7096: 0x9E07,
+ 7097: 0x9E0E,
+ 7098: 0x9E10,
+ 7099: 0x9E11,
+ 7100: 0x9E12,
+ 7101: 0x9E15,
+ 7102: 0x9E16,
+ 7103: 0x9E19,
+ 7104: 0x9E1C,
+ 7105: 0x9E1D,
+ 7106: 0x9E7A,
+ 7107: 0x9E7B,
+ 7108: 0x9E7C,
+ 7109: 0x9E80,
+ 7110: 0x9E82,
+ 7111: 0x9E83,
+ 7112: 0x9E84,
+ 7113: 0x9E85,
+ 7114: 0x9E87,
+ 7115: 0x9E8E,
+ 7116: 0x9E8F,
+ 7117: 0x9E96,
+ 7118: 0x9E98,
+ 7119: 0x9E9B,
+ 7120: 0x9E9E,
+ 7121: 0x9EA4,
+ 7122: 0x9EA8,
+ 7123: 0x9EAC,
+ 7124: 0x9EAE,
+ 7125: 0x9EAF,
+ 7126: 0x9EB0,
+ 7127: 0x9EB3,
+ 7128: 0x9EB4,
+ 7129: 0x9EB5,
+ 7130: 0x9EC6,
+ 7131: 0x9EC8,
+ 7132: 0x9ECB,
+ 7133: 0x9ED5,
+ 7134: 0x9EDF,
+ 7135: 0x9EE4,
+ 7136: 0x9EE7,
+ 7137: 0x9EEC,
+ 7138: 0x9EED,
+ 7139: 0x9EEE,
+ 7140: 0x9EF0,
+ 7141: 0x9EF1,
+ 7142: 0x9EF2,
+ 7143: 0x9EF5,
+ 7144: 0x9EF8,
+ 7145: 0x9EFF,
+ 7146: 0x9F02,
+ 7147: 0x9F03,
+ 7148: 0x9F09,
+ 7149: 0x9F0F,
+ 7150: 0x9F10,
+ 7151: 0x9F11,
+ 7152: 0x9F12,
+ 7153: 0x9F14,
+ 7154: 0x9F16,
+ 7155: 0x9F17,
+ 7156: 0x9F19,
+ 7157: 0x9F1A,
+ 7158: 0x9F1B,
+ 7159: 0x9F1F,
+ 7160: 0x9F22,
+ 7161: 0x9F26,
+ 7162: 0x9F2A,
+ 7163: 0x9F2B,
+ 7164: 0x9F2F,
+ 7165: 0x9F31,
+ 7166: 0x9F32,
+ 7167: 0x9F34,
+ 7168: 0x9F37,
+ 7169: 0x9F39,
+ 7170: 0x9F3A,
+ 7171: 0x9F3C,
+ 7172: 0x9F3D,
+ 7173: 0x9F3F,
+ 7174: 0x9F41,
+ 7175: 0x9F43,
+ 7176: 0x9F44,
+ 7177: 0x9F45,
+ 7178: 0x9F46,
+ 7179: 0x9F47,
+ 7180: 0x9F53,
+ 7181: 0x9F55,
+ 7182: 0x9F56,
+ 7183: 0x9F57,
+ 7184: 0x9F58,
+ 7185: 0x9F5A,
+ 7186: 0x9F5D,
+ 7187: 0x9F5E,
+ 7188: 0x9F68,
+ 7189: 0x9F69,
+ 7190: 0x9F6D,
+ 7191: 0x9F6E,
+ 7192: 0x9F6F,
+ 7193: 0x9F70,
+ 7194: 0x9F71,
+ 7195: 0x9F73,
+ 7196: 0x9F75,
+ 7197: 0x9F7A,
+ 7198: 0x9F7D,
+ 7199: 0x9F8F,
+ 7200: 0x9F90,
+ 7201: 0x9F91,
+ 7202: 0x9F92,
+ 7203: 0x9F94,
+ 7204: 0x9F96,
+ 7205: 0x9F97,
+ 7206: 0x9F9E,
+ 7207: 0x9FA1,
+ 7208: 0x9FA2,
+ 7209: 0x9FA3,
+ 7210: 0x9FA5,
+}
+
+const (
+ jis0208 = 1
+ jis0212 = 2
+ codeMask = 0x7f
+ codeShift = 7
+ tableShift = 14
+)
+
+const numEncodeTables = 6
+
+// encodeX are the encoding tables from Unicode to JIS code,
+// sorted by decreasing length.
+// encode0: 20902 entries for runes in [19968, 40870).
+// encode1: 1632 entries for runes in [ 8208, 9840).
+// encode2: 974 entries for runes in [12288, 13262).
+// encode3: 959 entries for runes in [ 161, 1120).
+// encode4: 261 entries for runes in [63785, 64046).
+// encode5: 229 entries for runes in [65281, 65510).
+//
+// The high two bits of the value record whether the JIS code comes from the
+// JIS0208 table (high bits == 1) or the JIS0212 table (high bits == 2).
+// The low 14 bits are two 7-bit unsigned integers j1 and j2 that form the
+// JIS code (94*j1 + j2) within that table.
+
+const encode0Low, encode0High = 19968, 40870
+
+var encode0 = [...]uint16{
+ 19968 - 19968: jis0208<<14 | 0x0F<<7 | 0x4B,
+ 19969 - 19968: jis0208<<14 | 0x22<<7 | 0x59,
+ 19970 - 19968: jis0212<<14 | 0x0F<<7 | 0x00,
+ 19971 - 19968: jis0208<<14 | 0x1B<<7 | 0x16,
+ 19972 - 19968: jis0212<<14 | 0x0F<<7 | 0x01,
+ 19973 - 19968: jis0212<<14 | 0x0F<<7 | 0x02,
+ 19975 - 19968: jis0208<<14 | 0x2A<<7 | 0x5B,
+ 19976 - 19968: jis0208<<14 | 0x1D<<7 | 0x45,
+ 19977 - 19968: jis0208<<14 | 0x1A<<7 | 0x0F,
+ 19978 - 19968: jis0208<<14 | 0x1D<<7 | 0x44,
+ 19979 - 19968: jis0208<<14 | 0x11<<7 | 0x1B,
+ 19980 - 19968: jis0212<<14 | 0x0F<<7 | 0x03,
+ 19981 - 19968: jis0208<<14 | 0x28<<7 | 0x33,
+ 19982 - 19968: jis0208<<14 | 0x2C<<7 | 0x1E,
+ 19984 - 19968: jis0208<<14 | 0x2F<<7 | 0x01,
+ 19985 - 19968: jis0208<<14 | 0x10<<7 | 0x0E,
+ 19986 - 19968: jis0212<<14 | 0x0F<<7 | 0x04,
+ 19988 - 19968: jis0208<<14 | 0x12<<7 | 0x4D,
+ 19989 - 19968: jis0208<<14 | 0x2F<<7 | 0x02,
+ 19990 - 19968: jis0208<<14 | 0x1F<<7 | 0x03,
+ 19991 - 19968: jis0208<<14 | 0x31<<7 | 0x21,
+ 19992 - 19968: jis0208<<14 | 0x14<<7 | 0x35,
+ 19993 - 19968: jis0208<<14 | 0x29<<7 | 0x19,
+ 19998 - 19968: jis0208<<14 | 0x1D<<7 | 0x46,
+ 19999 - 19968: jis0212<<14 | 0x0F<<7 | 0x05,
+ 20001 - 19968: jis0208<<14 | 0x2D<<7 | 0x1D,
+ 20003 - 19968: jis0212<<14 | 0x0F<<7 | 0x06,
+ 20004 - 19968: jis0212<<14 | 0x0F<<7 | 0x07,
+ 20006 - 19968: jis0208<<14 | 0x29<<7 | 0x21,
+ 20008 - 19968: jis0208<<14 | 0x58<<7 | 0x0C,
+ 20010 - 19968: jis0208<<14 | 0x2F<<7 | 0x03,
+ 20011 - 19968: jis0212<<14 | 0x0F<<7 | 0x09,
+ 20013 - 19968: jis0208<<14 | 0x22<<7 | 0x45,
+ 20014 - 19968: jis0212<<14 | 0x0F<<7 | 0x0A,
+ 20015 - 19968: jis0212<<14 | 0x0F<<7 | 0x0B,
+ 20016 - 19968: jis0212<<14 | 0x0F<<7 | 0x0C,
+ 20017 - 19968: jis0208<<14 | 0x2F<<7 | 0x04,
+ 20018 - 19968: jis0208<<14 | 0x15<<7 | 0x59,
+ 20021 - 19968: jis0212<<14 | 0x0F<<7 | 0x0D,
+ 20022 - 19968: jis0208<<14 | 0x2F<<7 | 0x05,
+ 20024 - 19968: jis0208<<14 | 0x13<<7 | 0x3C,
+ 20025 - 19968: jis0208<<14 | 0x22<<7 | 0x0F,
+ 20027 - 19968: jis0208<<14 | 0x1B<<7 | 0x46,
+ 20028 - 19968: jis0208<<14 | 0x2F<<7 | 0x06,
+ 20031 - 19968: jis0208<<14 | 0x2F<<7 | 0x07,
+ 20032 - 19968: jis0212<<14 | 0x0F<<7 | 0x0E,
+ 20033 - 19968: jis0212<<14 | 0x0F<<7 | 0x0F,
+ 20034 - 19968: jis0208<<14 | 0x2F<<7 | 0x08,
+ 20035 - 19968: jis0208<<14 | 0x26<<7 | 0x14,
+ 20036 - 19968: jis0212<<14 | 0x0F<<7 | 0x10,
+ 20037 - 19968: jis0208<<14 | 0x14<<7 | 0x36,
+ 20039 - 19968: jis0212<<14 | 0x0F<<7 | 0x11,
+ 20043 - 19968: jis0208<<14 | 0x26<<7 | 0x16,
+ 20045 - 19968: jis0208<<14 | 0x25<<7 | 0x42,
+ 20046 - 19968: jis0208<<14 | 0x17<<7 | 0x22,
+ 20047 - 19968: jis0208<<14 | 0x2A<<7 | 0x12,
+ 20049 - 19968: jis0212<<14 | 0x0F<<7 | 0x12,
+ 20053 - 19968: jis0208<<14 | 0x48<<7 | 0x28,
+ 20054 - 19968: jis0208<<14 | 0x2F<<7 | 0x09,
+ 20055 - 19968: jis0208<<14 | 0x1D<<7 | 0x47,
+ 20056 - 19968: jis0208<<14 | 0x2F<<7 | 0x0A,
+ 20057 - 19968: jis0208<<14 | 0x11<<7 | 0x14,
+ 20058 - 19968: jis0212<<14 | 0x0F<<7 | 0x13,
+ 20060 - 19968: jis0212<<14 | 0x0F<<7 | 0x14,
+ 20061 - 19968: jis0208<<14 | 0x15<<7 | 0x44,
+ 20062 - 19968: jis0208<<14 | 0x17<<7 | 0x4F,
+ 20063 - 19968: jis0208<<14 | 0x2B<<7 | 0x48,
+ 20066 - 19968: jis0208<<14 | 0x35<<7 | 0x05,
+ 20067 - 19968: jis0212<<14 | 0x0F<<7 | 0x15,
+ 20072 - 19968: jis0212<<14 | 0x0F<<7 | 0x16,
+ 20073 - 19968: jis0212<<14 | 0x0F<<7 | 0x17,
+ 20081 - 19968: jis0208<<14 | 0x2C<<7 | 0x4F,
+ 20083 - 19968: jis0208<<14 | 0x25<<7 | 0x5C,
+ 20084 - 19968: jis0212<<14 | 0x0F<<7 | 0x18,
+ 20085 - 19968: jis0212<<14 | 0x0F<<7 | 0x19,
+ 20089 - 19968: jis0212<<14 | 0x0F<<7 | 0x1A,
+ 20094 - 19968: jis0208<<14 | 0x13<<7 | 0x04,
+ 20095 - 19968: jis0212<<14 | 0x0F<<7 | 0x1B,
+ 20096 - 19968: jis0208<<14 | 0x14<<7 | 0x14,
+ 20098 - 19968: jis0208<<14 | 0x2F<<7 | 0x0B,
+ 20101 - 19968: jis0208<<14 | 0x2F<<7 | 0x0C,
+ 20102 - 19968: jis0208<<14 | 0x2D<<7 | 0x1A,
+ 20104 - 19968: jis0208<<14 | 0x2C<<7 | 0x1C,
+ 20105 - 19968: jis0208<<14 | 0x20<<7 | 0x47,
+ 20106 - 19968: jis0208<<14 | 0x2F<<7 | 0x0E,
+ 20107 - 19968: jis0208<<14 | 0x1A<<7 | 0x55,
+ 20108 - 19968: jis0208<<14 | 0x25<<7 | 0x52,
+ 20109 - 19968: jis0212<<14 | 0x0F<<7 | 0x1C,
+ 20110 - 19968: jis0208<<14 | 0x2F<<7 | 0x11,
+ 20113 - 19968: jis0208<<14 | 0x10<<7 | 0x1D,
+ 20114 - 19968: jis0208<<14 | 0x17<<7 | 0x3E,
+ 20116 - 19968: jis0208<<14 | 0x17<<7 | 0x3D,
+ 20117 - 19968: jis0208<<14 | 0x0F<<7 | 0x45,
+ 20118 - 19968: jis0212<<14 | 0x0F<<7 | 0x1D,
+ 20119 - 19968: jis0212<<14 | 0x0F<<7 | 0x1E,
+ 20120 - 19968: jis0208<<14 | 0x2E<<7 | 0x2A,
+ 20121 - 19968: jis0208<<14 | 0x2E<<7 | 0x29,
+ 20123 - 19968: jis0208<<14 | 0x19<<7 | 0x12,
+ 20124 - 19968: jis0208<<14 | 0x0F<<7 | 0x00,
+ 20125 - 19968: jis0212<<14 | 0x0F<<7 | 0x1F,
+ 20126 - 19968: jis0208<<14 | 0x2F<<7 | 0x12,
+ 20127 - 19968: jis0208<<14 | 0x2F<<7 | 0x13,
+ 20128 - 19968: jis0208<<14 | 0x2F<<7 | 0x14,
+ 20129 - 19968: jis0208<<14 | 0x2A<<7 | 0x13,
+ 20130 - 19968: jis0208<<14 | 0x2F<<7 | 0x15,
+ 20132 - 19968: jis0208<<14 | 0x17<<7 | 0x51,
+ 20133 - 19968: jis0208<<14 | 0x0F<<7 | 0x46,
+ 20134 - 19968: jis0208<<14 | 0x2A<<7 | 0x51,
+ 20136 - 19968: jis0208<<14 | 0x14<<7 | 0x5B,
+ 20139 - 19968: jis0208<<14 | 0x14<<7 | 0x5C,
+ 20140 - 19968: jis0208<<14 | 0x14<<7 | 0x5D,
+ 20141 - 19968: jis0208<<14 | 0x23<<7 | 0x41,
+ 20142 - 19968: jis0208<<14 | 0x2D<<7 | 0x1B,
+ 20143 - 19968: jis0212<<14 | 0x0F<<7 | 0x20,
+ 20144 - 19968: jis0208<<14 | 0x2F<<7 | 0x16,
+ 20147 - 19968: jis0208<<14 | 0x2F<<7 | 0x17,
+ 20150 - 19968: jis0208<<14 | 0x2F<<7 | 0x18,
+ 20153 - 19968: jis0212<<14 | 0x0F<<7 | 0x21,
+ 20154 - 19968: jis0208<<14 | 0x1E<<7 | 0x2C,
+ 20160 - 19968: jis0208<<14 | 0x1C<<7 | 0x19,
+ 20161 - 19968: jis0208<<14 | 0x1E<<7 | 0x2D,
+ 20162 - 19968: jis0208<<14 | 0x2F<<7 | 0x1D,
+ 20163 - 19968: jis0212<<14 | 0x0F<<7 | 0x22,
+ 20164 - 19968: jis0208<<14 | 0x2F<<7 | 0x1B,
+ 20166 - 19968: jis0208<<14 | 0x2F<<7 | 0x1C,
+ 20167 - 19968: jis0208<<14 | 0x14<<7 | 0x37,
+ 20170 - 19968: jis0208<<14 | 0x19<<7 | 0x02,
+ 20171 - 19968: jis0208<<14 | 0x11<<7 | 0x4F,
+ 20173 - 19968: jis0208<<14 | 0x2F<<7 | 0x1A,
+ 20174 - 19968: jis0208<<14 | 0x2F<<7 | 0x19,
+ 20175 - 19968: jis0208<<14 | 0x29<<7 | 0x08,
+ 20176 - 19968: jis0212<<14 | 0x0F<<7 | 0x23,
+ 20180 - 19968: jis0208<<14 | 0x1A<<7 | 0x25,
+ 20181 - 19968: jis0208<<14 | 0x1A<<7 | 0x24,
+ 20182 - 19968: jis0208<<14 | 0x21<<7 | 0x1D,
+ 20183 - 19968: jis0208<<14 | 0x2F<<7 | 0x1E,
+ 20184 - 19968: jis0208<<14 | 0x28<<7 | 0x34,
+ 20185 - 19968: jis0208<<14 | 0x1F<<7 | 0x46,
+ 20186 - 19968: jis0212<<14 | 0x0F<<7 | 0x24,
+ 20187 - 19968: jis0212<<14 | 0x0F<<7 | 0x25,
+ 20189 - 19968: jis0208<<14 | 0x00<<7 | 0x17,
+ 20190 - 19968: jis0208<<14 | 0x2F<<7 | 0x1F,
+ 20191 - 19968: jis0208<<14 | 0x2F<<7 | 0x21,
+ 20192 - 19968: jis0212<<14 | 0x0F<<7 | 0x26,
+ 20193 - 19968: jis0208<<14 | 0x58<<7 | 0x0D,
+ 20194 - 19968: jis0212<<14 | 0x0F<<7 | 0x28,
+ 20195 - 19968: jis0208<<14 | 0x21<<7 | 0x44,
+ 20196 - 19968: jis0208<<14 | 0x2D<<7 | 0x40,
+ 20197 - 19968: jis0208<<14 | 0x0F<<7 | 0x29,
+ 20200 - 19968: jis0212<<14 | 0x0F<<7 | 0x29,
+ 20205 - 19968: jis0208<<14 | 0x2F<<7 | 0x20,
+ 20206 - 19968: jis0208<<14 | 0x11<<7 | 0x1D,
+ 20207 - 19968: jis0212<<14 | 0x0F<<7 | 0x2A,
+ 20208 - 19968: jis0208<<14 | 0x15<<7 | 0x23,
+ 20209 - 19968: jis0212<<14 | 0x0F<<7 | 0x2B,
+ 20210 - 19968: jis0208<<14 | 0x22<<7 | 0x46,
+ 20211 - 19968: jis0212<<14 | 0x0F<<7 | 0x2C,
+ 20213 - 19968: jis0212<<14 | 0x0F<<7 | 0x2D,
+ 20214 - 19968: jis0208<<14 | 0x16<<7 | 0x4E,
+ 20215 - 19968: jis0208<<14 | 0x2F<<7 | 0x22,
+ 20219 - 19968: jis0208<<14 | 0x26<<7 | 0x03,
+ 20220 - 19968: jis0208<<14 | 0x58<<7 | 0x0E,
+ 20221 - 19968: jis0212<<14 | 0x0F<<7 | 0x2E,
+ 20222 - 19968: jis0212<<14 | 0x0F<<7 | 0x2F,
+ 20223 - 19968: jis0212<<14 | 0x0F<<7 | 0x30,
+ 20224 - 19968: jis0208<<14 | 0x58<<7 | 0x0F,
+ 20225 - 19968: jis0208<<14 | 0x13<<7 | 0x4A,
+ 20226 - 19968: jis0212<<14 | 0x0F<<7 | 0x32,
+ 20227 - 19968: jis0208<<14 | 0x58<<7 | 0x10,
+ 20232 - 19968: jis0212<<14 | 0x0F<<7 | 0x34,
+ 20233 - 19968: jis0208<<14 | 0x2F<<7 | 0x23,
+ 20234 - 19968: jis0208<<14 | 0x0F<<7 | 0x2A,
+ 20235 - 19968: jis0212<<14 | 0x0F<<7 | 0x35,
+ 20236 - 19968: jis0212<<14 | 0x0F<<7 | 0x36,
+ 20237 - 19968: jis0208<<14 | 0x17<<7 | 0x3F,
+ 20238 - 19968: jis0208<<14 | 0x13<<7 | 0x4B,
+ 20239 - 19968: jis0208<<14 | 0x28<<7 | 0x59,
+ 20240 - 19968: jis0208<<14 | 0x27<<7 | 0x11,
+ 20241 - 19968: jis0208<<14 | 0x14<<7 | 0x38,
+ 20242 - 19968: jis0212<<14 | 0x0F<<7 | 0x37,
+ 20245 - 19968: jis0212<<14 | 0x0F<<7 | 0x38,
+ 20246 - 19968: jis0212<<14 | 0x0F<<7 | 0x39,
+ 20247 - 19968: jis0212<<14 | 0x0F<<7 | 0x3A,
+ 20249 - 19968: jis0212<<14 | 0x0F<<7 | 0x3B,
+ 20250 - 19968: jis0208<<14 | 0x11<<7 | 0x50,
+ 20252 - 19968: jis0208<<14 | 0x2F<<7 | 0x46,
+ 20253 - 19968: jis0208<<14 | 0x24<<7 | 0x20,
+ 20270 - 19968: jis0212<<14 | 0x0F<<7 | 0x3C,
+ 20271 - 19968: jis0208<<14 | 0x26<<7 | 0x4B,
+ 20272 - 19968: jis0208<<14 | 0x2F<<7 | 0x25,
+ 20273 - 19968: jis0212<<14 | 0x0F<<7 | 0x3D,
+ 20275 - 19968: jis0212<<14 | 0x0F<<7 | 0x3F,
+ 20276 - 19968: jis0208<<14 | 0x27<<7 | 0x1B,
+ 20277 - 19968: jis0212<<14 | 0x0F<<7 | 0x40,
+ 20278 - 19968: jis0208<<14 | 0x2D<<7 | 0x41,
+ 20279 - 19968: jis0212<<14 | 0x0F<<7 | 0x41,
+ 20280 - 19968: jis0208<<14 | 0x1E<<7 | 0x0C,
+ 20281 - 19968: jis0208<<14 | 0x58<<7 | 0x11,
+ 20282 - 19968: jis0208<<14 | 0x1A<<7 | 0x26,
+ 20283 - 19968: jis0212<<14 | 0x0F<<7 | 0x43,
+ 20284 - 19968: jis0208<<14 | 0x1A<<7 | 0x56,
+ 20285 - 19968: jis0208<<14 | 0x11<<7 | 0x1F,
+ 20286 - 19968: jis0212<<14 | 0x0F<<7 | 0x44,
+ 20288 - 19968: jis0212<<14 | 0x0F<<7 | 0x45,
+ 20290 - 19968: jis0212<<14 | 0x0F<<7 | 0x46,
+ 20291 - 19968: jis0208<<14 | 0x23<<7 | 0x30,
+ 20294 - 19968: jis0208<<14 | 0x22<<7 | 0x01,
+ 20295 - 19968: jis0208<<14 | 0x2F<<7 | 0x29,
+ 20296 - 19968: jis0212<<14 | 0x0F<<7 | 0x47,
+ 20297 - 19968: jis0212<<14 | 0x0F<<7 | 0x48,
+ 20299 - 19968: jis0212<<14 | 0x0F<<7 | 0x49,
+ 20300 - 19968: jis0212<<14 | 0x0F<<7 | 0x4A,
+ 20301 - 19968: jis0208<<14 | 0x0F<<7 | 0x2B,
+ 20302 - 19968: jis0208<<14 | 0x23<<7 | 0x42,
+ 20303 - 19968: jis0208<<14 | 0x1C<<7 | 0x1A,
+ 20304 - 19968: jis0208<<14 | 0x19<<7 | 0x13,
+ 20305 - 19968: jis0208<<14 | 0x2C<<7 | 0x03,
+ 20306 - 19968: jis0212<<14 | 0x0F<<7 | 0x4B,
+ 20307 - 19968: jis0208<<14 | 0x21<<7 | 0x2D,
+ 20308 - 19968: jis0212<<14 | 0x0F<<7 | 0x4C,
+ 20309 - 19968: jis0208<<14 | 0x11<<7 | 0x1E,
+ 20310 - 19968: jis0208<<14 | 0x58<<7 | 0x12,
+ 20311 - 19968: jis0208<<14 | 0x2F<<7 | 0x28,
+ 20312 - 19968: jis0212<<14 | 0x0F<<7 | 0x4E,
+ 20313 - 19968: jis0208<<14 | 0x2C<<7 | 0x1D,
+ 20314 - 19968: jis0208<<14 | 0x2F<<7 | 0x24,
+ 20315 - 19968: jis0208<<14 | 0x2F<<7 | 0x26,
+ 20316 - 19968: jis0208<<14 | 0x19<<7 | 0x4D,
+ 20317 - 19968: jis0208<<14 | 0x2F<<7 | 0x27,
+ 20318 - 19968: jis0208<<14 | 0x34<<7 | 0x03,
+ 20319 - 19968: jis0212<<14 | 0x0F<<7 | 0x4F,
+ 20320 - 19968: jis0212<<14 | 0x0F<<7 | 0x3E,
+ 20323 - 19968: jis0212<<14 | 0x0F<<7 | 0x50,
+ 20329 - 19968: jis0208<<14 | 0x2F<<7 | 0x2F,
+ 20330 - 19968: jis0212<<14 | 0x0F<<7 | 0x51,
+ 20332 - 19968: jis0212<<14 | 0x0F<<7 | 0x52,
+ 20334 - 19968: jis0212<<14 | 0x0F<<7 | 0x53,
+ 20335 - 19968: jis0208<<14 | 0x2F<<7 | 0x32,
+ 20336 - 19968: jis0208<<14 | 0x2F<<7 | 0x30,
+ 20337 - 19968: jis0212<<14 | 0x0F<<7 | 0x54,
+ 20339 - 19968: jis0208<<14 | 0x11<<7 | 0x21,
+ 20341 - 19968: jis0208<<14 | 0x29<<7 | 0x1A,
+ 20342 - 19968: jis0208<<14 | 0x2F<<7 | 0x2A,
+ 20343 - 19968: jis0212<<14 | 0x0F<<7 | 0x55,
+ 20344 - 19968: jis0212<<14 | 0x0F<<7 | 0x56,
+ 20345 - 19968: jis0212<<14 | 0x0F<<7 | 0x57,
+ 20346 - 19968: jis0212<<14 | 0x0F<<7 | 0x58,
+ 20347 - 19968: jis0208<<14 | 0x2F<<7 | 0x2E,
+ 20348 - 19968: jis0208<<14 | 0x17<<7 | 0x52,
+ 20349 - 19968: jis0212<<14 | 0x0F<<7 | 0x59,
+ 20350 - 19968: jis0212<<14 | 0x0F<<7 | 0x5A,
+ 20351 - 19968: jis0208<<14 | 0x1A<<7 | 0x27,
+ 20353 - 19968: jis0212<<14 | 0x0F<<7 | 0x5B,
+ 20354 - 19968: jis0212<<14 | 0x0F<<7 | 0x5C,
+ 20355 - 19968: jis0208<<14 | 0x13<<7 | 0x05,
+ 20356 - 19968: jis0212<<14 | 0x0F<<7 | 0x5D,
+ 20357 - 19968: jis0212<<14 | 0x10<<7 | 0x00,
+ 20358 - 19968: jis0208<<14 | 0x2F<<7 | 0x33,
+ 20360 - 19968: jis0208<<14 | 0x2F<<7 | 0x2B,
+ 20361 - 19968: jis0212<<14 | 0x10<<7 | 0x01,
+ 20362 - 19968: jis0208<<14 | 0x58<<7 | 0x14,
+ 20363 - 19968: jis0208<<14 | 0x2D<<7 | 0x42,
+ 20364 - 19968: jis0212<<14 | 0x10<<7 | 0x03,
+ 20365 - 19968: jis0208<<14 | 0x1A<<7 | 0x57,
+ 20366 - 19968: jis0212<<14 | 0x10<<7 | 0x04,
+ 20367 - 19968: jis0208<<14 | 0x2F<<7 | 0x2C,
+ 20368 - 19968: jis0212<<14 | 0x10<<7 | 0x05,
+ 20369 - 19968: jis0208<<14 | 0x2F<<7 | 0x31,
+ 20370 - 19968: jis0208<<14 | 0x58<<7 | 0x13,
+ 20371 - 19968: jis0212<<14 | 0x10<<7 | 0x07,
+ 20372 - 19968: jis0208<<14 | 0x58<<7 | 0x16,
+ 20374 - 19968: jis0208<<14 | 0x2F<<7 | 0x34,
+ 20375 - 19968: jis0212<<14 | 0x10<<7 | 0x09,
+ 20376 - 19968: jis0208<<14 | 0x2F<<7 | 0x2D,
+ 20377 - 19968: jis0212<<14 | 0x10<<7 | 0x0A,
+ 20378 - 19968: jis0208<<14 | 0x58<<7 | 0x15,
+ 20379 - 19968: jis0208<<14 | 0x15<<7 | 0x00,
+ 20381 - 19968: jis0208<<14 | 0x0F<<7 | 0x2C,
+ 20382 - 19968: jis0212<<14 | 0x10<<7 | 0x0C,
+ 20383 - 19968: jis0212<<14 | 0x10<<7 | 0x0D,
+ 20384 - 19968: jis0208<<14 | 0x15<<7 | 0x01,
+ 20385 - 19968: jis0208<<14 | 0x11<<7 | 0x20,
+ 20395 - 19968: jis0208<<14 | 0x34<<7 | 0x04,
+ 20397 - 19968: jis0208<<14 | 0x2A<<7 | 0x58,
+ 20398 - 19968: jis0208<<14 | 0x28<<7 | 0x4D,
+ 20399 - 19968: jis0208<<14 | 0x17<<7 | 0x53,
+ 20402 - 19968: jis0212<<14 | 0x10<<7 | 0x0E,
+ 20405 - 19968: jis0208<<14 | 0x1E<<7 | 0x0E,
+ 20406 - 19968: jis0208<<14 | 0x2D<<7 | 0x16,
+ 20407 - 19968: jis0212<<14 | 0x10<<7 | 0x0F,
+ 20409 - 19968: jis0212<<14 | 0x10<<7 | 0x10,
+ 20411 - 19968: jis0212<<14 | 0x10<<7 | 0x11,
+ 20412 - 19968: jis0212<<14 | 0x10<<7 | 0x12,
+ 20413 - 19968: jis0212<<14 | 0x10<<7 | 0x13,
+ 20414 - 19968: jis0212<<14 | 0x10<<7 | 0x14,
+ 20415 - 19968: jis0208<<14 | 0x29<<7 | 0x37,
+ 20416 - 19968: jis0212<<14 | 0x10<<7 | 0x15,
+ 20417 - 19968: jis0212<<14 | 0x10<<7 | 0x16,
+ 20418 - 19968: jis0208<<14 | 0x16<<7 | 0x17,
+ 20419 - 19968: jis0208<<14 | 0x21<<7 | 0x04,
+ 20420 - 19968: jis0208<<14 | 0x11<<7 | 0x43,
+ 20421 - 19968: jis0212<<14 | 0x10<<7 | 0x17,
+ 20422 - 19968: jis0212<<14 | 0x10<<7 | 0x18,
+ 20424 - 19968: jis0212<<14 | 0x10<<7 | 0x19,
+ 20425 - 19968: jis0208<<14 | 0x58<<7 | 0x05,
+ 20426 - 19968: jis0208<<14 | 0x1C<<7 | 0x32,
+ 20427 - 19968: jis0212<<14 | 0x10<<7 | 0x1B,
+ 20428 - 19968: jis0212<<14 | 0x10<<7 | 0x1C,
+ 20429 - 19968: jis0208<<14 | 0x58<<7 | 0x17,
+ 20430 - 19968: jis0208<<14 | 0x2F<<7 | 0x38,
+ 20431 - 19968: jis0212<<14 | 0x10<<7 | 0x1E,
+ 20432 - 19968: jis0208<<14 | 0x2F<<7 | 0x3D,
+ 20433 - 19968: jis0208<<14 | 0x2F<<7 | 0x3B,
+ 20434 - 19968: jis0212<<14 | 0x10<<7 | 0x1F,
+ 20436 - 19968: jis0208<<14 | 0x2F<<7 | 0x36,
+ 20439 - 19968: jis0208<<14 | 0x21<<7 | 0x0E,
+ 20440 - 19968: jis0208<<14 | 0x2F<<7 | 0x39,
+ 20442 - 19968: jis0208<<14 | 0x2F<<7 | 0x3C,
+ 20443 - 19968: jis0208<<14 | 0x2F<<7 | 0x3A,
+ 20444 - 19968: jis0212<<14 | 0x10<<7 | 0x20,
+ 20445 - 19968: jis0208<<14 | 0x29<<7 | 0x3C,
+ 20447 - 19968: jis0208<<14 | 0x2F<<7 | 0x37,
+ 20448 - 19968: jis0212<<14 | 0x10<<7 | 0x21,
+ 20449 - 19968: jis0208<<14 | 0x1E<<7 | 0x0D,
+ 20450 - 19968: jis0212<<14 | 0x10<<7 | 0x22,
+ 20451 - 19968: jis0208<<14 | 0x2A<<7 | 0x52,
+ 20452 - 19968: jis0208<<14 | 0x2F<<7 | 0x3E,
+ 20453 - 19968: jis0208<<14 | 0x2F<<7 | 0x3F,
+ 20462 - 19968: jis0208<<14 | 0x1C<<7 | 0x03,
+ 20463 - 19968: jis0208<<14 | 0x2F<<7 | 0x4C,
+ 20464 - 19968: jis0212<<14 | 0x10<<7 | 0x23,
+ 20466 - 19968: jis0212<<14 | 0x10<<7 | 0x24,
+ 20467 - 19968: jis0208<<14 | 0x26<<7 | 0x2F,
+ 20469 - 19968: jis0208<<14 | 0x28<<7 | 0x15,
+ 20470 - 19968: jis0208<<14 | 0x2F<<7 | 0x47,
+ 20472 - 19968: jis0208<<14 | 0x29<<7 | 0x4F,
+ 20474 - 19968: jis0208<<14 | 0x11<<7 | 0x15,
+ 20476 - 19968: jis0212<<14 | 0x10<<7 | 0x25,
+ 20477 - 19968: jis0212<<14 | 0x10<<7 | 0x26,
+ 20478 - 19968: jis0208<<14 | 0x2F<<7 | 0x4B,
+ 20479 - 19968: jis0208<<14 | 0x58<<7 | 0x1A,
+ 20480 - 19968: jis0212<<14 | 0x10<<7 | 0x28,
+ 20481 - 19968: jis0212<<14 | 0x10<<7 | 0x29,
+ 20484 - 19968: jis0212<<14 | 0x10<<7 | 0x2A,
+ 20485 - 19968: jis0208<<14 | 0x2F<<7 | 0x45,
+ 20486 - 19968: jis0208<<14 | 0x2F<<7 | 0x4E,
+ 20487 - 19968: jis0212<<14 | 0x10<<7 | 0x2B,
+ 20489 - 19968: jis0208<<14 | 0x20<<7 | 0x31,
+ 20490 - 19968: jis0212<<14 | 0x10<<7 | 0x2C,
+ 20491 - 19968: jis0208<<14 | 0x17<<7 | 0x23,
+ 20492 - 19968: jis0212<<14 | 0x10<<7 | 0x2D,
+ 20493 - 19968: jis0208<<14 | 0x26<<7 | 0x3B,
+ 20494 - 19968: jis0212<<14 | 0x10<<7 | 0x2E,
+ 20495 - 19968: jis0208<<14 | 0x3F<<7 | 0x26,
+ 20496 - 19968: jis0212<<14 | 0x10<<7 | 0x2F,
+ 20497 - 19968: jis0208<<14 | 0x2F<<7 | 0x4D,
+ 20498 - 19968: jis0208<<14 | 0x24<<7 | 0x3C,
+ 20499 - 19968: jis0212<<14 | 0x10<<7 | 0x30,
+ 20500 - 19968: jis0208<<14 | 0x2F<<7 | 0x42,
+ 20502 - 19968: jis0208<<14 | 0x17<<7 | 0x55,
+ 20503 - 19968: jis0212<<14 | 0x10<<7 | 0x31,
+ 20504 - 19968: jis0212<<14 | 0x10<<7 | 0x32,
+ 20505 - 19968: jis0208<<14 | 0x17<<7 | 0x54,
+ 20506 - 19968: jis0208<<14 | 0x2F<<7 | 0x40,
+ 20507 - 19968: jis0212<<14 | 0x10<<7 | 0x33,
+ 20508 - 19968: jis0212<<14 | 0x10<<7 | 0x34,
+ 20509 - 19968: jis0212<<14 | 0x10<<7 | 0x35,
+ 20510 - 19968: jis0208<<14 | 0x58<<7 | 0x1B,
+ 20511 - 19968: jis0208<<14 | 0x1B<<7 | 0x39,
+ 20513 - 19968: jis0208<<14 | 0x2F<<7 | 0x48,
+ 20514 - 19968: jis0208<<14 | 0x58<<7 | 0x19,
+ 20515 - 19968: jis0208<<14 | 0x29<<7 | 0x4E,
+ 20516 - 19968: jis0208<<14 | 0x22<<7 | 0x2C,
+ 20517 - 19968: jis0208<<14 | 0x2F<<7 | 0x44,
+ 20518 - 19968: jis0208<<14 | 0x16<<7 | 0x50,
+ 20519 - 19968: jis0212<<14 | 0x10<<7 | 0x38,
+ 20520 - 19968: jis0208<<14 | 0x2F<<7 | 0x41,
+ 20521 - 19968: jis0208<<14 | 0x2F<<7 | 0x49,
+ 20522 - 19968: jis0208<<14 | 0x2F<<7 | 0x43,
+ 20523 - 19968: jis0208<<14 | 0x2D<<7 | 0x30,
+ 20524 - 19968: jis0208<<14 | 0x2F<<7 | 0x4A,
+ 20525 - 19968: jis0208<<14 | 0x2E<<7 | 0x20,
+ 20526 - 19968: jis0212<<14 | 0x10<<7 | 0x39,
+ 20528 - 19968: jis0212<<14 | 0x10<<7 | 0x3A,
+ 20530 - 19968: jis0212<<14 | 0x10<<7 | 0x3B,
+ 20531 - 19968: jis0212<<14 | 0x10<<7 | 0x3C,
+ 20533 - 19968: jis0212<<14 | 0x10<<7 | 0x3D,
+ 20534 - 19968: jis0208<<14 | 0x15<<7 | 0x45,
+ 20537 - 19968: jis0208<<14 | 0x16<<7 | 0x4F,
+ 20539 - 19968: jis0212<<14 | 0x10<<7 | 0x55,
+ 20544 - 19968: jis0208<<14 | 0x58<<7 | 0x18,
+ 20545 - 19968: jis0212<<14 | 0x10<<7 | 0x3F,
+ 20546 - 19968: jis0208<<14 | 0x58<<7 | 0x1E,
+ 20547 - 19968: jis0208<<14 | 0x2F<<7 | 0x4F,
+ 20549 - 19968: jis0212<<14 | 0x10<<7 | 0x41,
+ 20550 - 19968: jis0208<<14 | 0x58<<7 | 0x1C,
+ 20551 - 19968: jis0208<<14 | 0x2F<<7 | 0x50,
+ 20552 - 19968: jis0208<<14 | 0x2F<<7 | 0x54,
+ 20553 - 19968: jis0208<<14 | 0x0F<<7 | 0x2D,
+ 20554 - 19968: jis0212<<14 | 0x10<<7 | 0x43,
+ 20556 - 19968: jis0212<<14 | 0x10<<7 | 0x44,
+ 20558 - 19968: jis0212<<14 | 0x10<<7 | 0x45,
+ 20559 - 19968: jis0208<<14 | 0x29<<7 | 0x2F,
+ 20560 - 19968: jis0208<<14 | 0x2F<<7 | 0x53,
+ 20561 - 19968: jis0212<<14 | 0x10<<7 | 0x46,
+ 20562 - 19968: jis0212<<14 | 0x10<<7 | 0x47,
+ 20563 - 19968: jis0212<<14 | 0x10<<7 | 0x48,
+ 20565 - 19968: jis0208<<14 | 0x2F<<7 | 0x52,
+ 20566 - 19968: jis0208<<14 | 0x2F<<7 | 0x56,
+ 20567 - 19968: jis0212<<14 | 0x10<<7 | 0x49,
+ 20569 - 19968: jis0212<<14 | 0x10<<7 | 0x4A,
+ 20570 - 19968: jis0208<<14 | 0x2F<<7 | 0x55,
+ 20572 - 19968: jis0208<<14 | 0x23<<7 | 0x43,
+ 20575 - 19968: jis0212<<14 | 0x10<<7 | 0x4B,
+ 20576 - 19968: jis0212<<14 | 0x10<<7 | 0x4C,
+ 20578 - 19968: jis0212<<14 | 0x10<<7 | 0x4D,
+ 20579 - 19968: jis0212<<14 | 0x10<<7 | 0x4E,
+ 20581 - 19968: jis0208<<14 | 0x16<<7 | 0x51,
+ 20582 - 19968: jis0212<<14 | 0x10<<7 | 0x4F,
+ 20583 - 19968: jis0212<<14 | 0x10<<7 | 0x50,
+ 20586 - 19968: jis0212<<14 | 0x10<<7 | 0x51,
+ 20588 - 19968: jis0208<<14 | 0x2F<<7 | 0x57,
+ 20589 - 19968: jis0212<<14 | 0x10<<7 | 0x52,
+ 20592 - 19968: jis0208<<14 | 0x58<<7 | 0x1D,
+ 20593 - 19968: jis0212<<14 | 0x10<<7 | 0x54,
+ 20594 - 19968: jis0208<<14 | 0x1B<<7 | 0x24,
+ 20596 - 19968: jis0208<<14 | 0x21<<7 | 0x05,
+ 20597 - 19968: jis0208<<14 | 0x23<<7 | 0x44,
+ 20598 - 19968: jis0208<<14 | 0x15<<7 | 0x55,
+ 20600 - 19968: jis0208<<14 | 0x2F<<7 | 0x58,
+ 20605 - 19968: jis0208<<14 | 0x14<<7 | 0x15,
+ 20608 - 19968: jis0208<<14 | 0x2F<<7 | 0x59,
+ 20609 - 19968: jis0212<<14 | 0x10<<7 | 0x56,
+ 20611 - 19968: jis0212<<14 | 0x10<<7 | 0x57,
+ 20612 - 19968: jis0212<<14 | 0x10<<7 | 0x58,
+ 20613 - 19968: jis0208<<14 | 0x2F<<7 | 0x5B,
+ 20614 - 19968: jis0212<<14 | 0x10<<7 | 0x59,
+ 20618 - 19968: jis0212<<14 | 0x10<<7 | 0x5A,
+ 20621 - 19968: jis0208<<14 | 0x2A<<7 | 0x14,
+ 20622 - 19968: jis0212<<14 | 0x10<<7 | 0x5B,
+ 20623 - 19968: jis0212<<14 | 0x10<<7 | 0x5C,
+ 20624 - 19968: jis0212<<14 | 0x10<<7 | 0x5D,
+ 20625 - 19968: jis0208<<14 | 0x16<<7 | 0x45,
+ 20626 - 19968: jis0212<<14 | 0x11<<7 | 0x00,
+ 20627 - 19968: jis0212<<14 | 0x11<<7 | 0x01,
+ 20628 - 19968: jis0208<<14 | 0x58<<7 | 0x1F,
+ 20630 - 19968: jis0212<<14 | 0x11<<7 | 0x03,
+ 20632 - 19968: jis0208<<14 | 0x1A<<7 | 0x10,
+ 20633 - 19968: jis0208<<14 | 0x27<<7 | 0x56,
+ 20634 - 19968: jis0208<<14 | 0x2F<<7 | 0x5A,
+ 20635 - 19968: jis0212<<14 | 0x11<<7 | 0x04,
+ 20636 - 19968: jis0212<<14 | 0x11<<7 | 0x05,
+ 20638 - 19968: jis0212<<14 | 0x11<<7 | 0x06,
+ 20639 - 19968: jis0212<<14 | 0x11<<7 | 0x07,
+ 20640 - 19968: jis0212<<14 | 0x11<<7 | 0x08,
+ 20641 - 19968: jis0212<<14 | 0x11<<7 | 0x09,
+ 20642 - 19968: jis0212<<14 | 0x11<<7 | 0x0A,
+ 20650 - 19968: jis0212<<14 | 0x11<<7 | 0x0B,
+ 20652 - 19968: jis0208<<14 | 0x19<<7 | 0x24,
+ 20653 - 19968: jis0208<<14 | 0x2C<<7 | 0x22,
+ 20655 - 19968: jis0212<<14 | 0x11<<7 | 0x0C,
+ 20656 - 19968: jis0212<<14 | 0x11<<7 | 0x0D,
+ 20658 - 19968: jis0208<<14 | 0x2F<<7 | 0x5D,
+ 20659 - 19968: jis0208<<14 | 0x30<<7 | 0x02,
+ 20660 - 19968: jis0208<<14 | 0x2F<<7 | 0x5C,
+ 20661 - 19968: jis0208<<14 | 0x19<<7 | 0x23,
+ 20663 - 19968: jis0208<<14 | 0x1C<<7 | 0x5C,
+ 20665 - 19968: jis0212<<14 | 0x11<<7 | 0x0E,
+ 20666 - 19968: jis0212<<14 | 0x11<<7 | 0x0F,
+ 20669 - 19968: jis0212<<14 | 0x11<<7 | 0x10,
+ 20670 - 19968: jis0208<<14 | 0x16<<7 | 0x18,
+ 20672 - 19968: jis0212<<14 | 0x11<<7 | 0x11,
+ 20674 - 19968: jis0208<<14 | 0x30<<7 | 0x03,
+ 20675 - 19968: jis0212<<14 | 0x11<<7 | 0x12,
+ 20676 - 19968: jis0212<<14 | 0x11<<7 | 0x13,
+ 20677 - 19968: jis0208<<14 | 0x15<<7 | 0x2E,
+ 20679 - 19968: jis0212<<14 | 0x11<<7 | 0x14,
+ 20681 - 19968: jis0208<<14 | 0x30<<7 | 0x00,
+ 20682 - 19968: jis0208<<14 | 0x30<<7 | 0x01,
+ 20684 - 19968: jis0212<<14 | 0x11<<7 | 0x15,
+ 20685 - 19968: jis0208<<14 | 0x25<<7 | 0x0E,
+ 20686 - 19968: jis0212<<14 | 0x11<<7 | 0x16,
+ 20687 - 19968: jis0208<<14 | 0x20<<7 | 0x5B,
+ 20688 - 19968: jis0212<<14 | 0x11<<7 | 0x17,
+ 20689 - 19968: jis0208<<14 | 0x15<<7 | 0x02,
+ 20691 - 19968: jis0212<<14 | 0x11<<7 | 0x18,
+ 20692 - 19968: jis0212<<14 | 0x11<<7 | 0x19,
+ 20693 - 19968: jis0208<<14 | 0x2A<<7 | 0x2C,
+ 20694 - 19968: jis0208<<14 | 0x30<<7 | 0x04,
+ 20696 - 19968: jis0208<<14 | 0x58<<7 | 0x21,
+ 20698 - 19968: jis0208<<14 | 0x2D<<7 | 0x1C,
+ 20700 - 19968: jis0212<<14 | 0x11<<7 | 0x1B,
+ 20701 - 19968: jis0212<<14 | 0x11<<7 | 0x1C,
+ 20702 - 19968: jis0208<<14 | 0x30<<7 | 0x05,
+ 20703 - 19968: jis0212<<14 | 0x11<<7 | 0x1D,
+ 20706 - 19968: jis0212<<14 | 0x11<<7 | 0x1E,
+ 20707 - 19968: jis0208<<14 | 0x30<<7 | 0x08,
+ 20708 - 19968: jis0212<<14 | 0x11<<7 | 0x1F,
+ 20709 - 19968: jis0208<<14 | 0x30<<7 | 0x06,
+ 20710 - 19968: jis0212<<14 | 0x11<<7 | 0x20,
+ 20711 - 19968: jis0208<<14 | 0x20<<7 | 0x2D,
+ 20712 - 19968: jis0212<<14 | 0x11<<7 | 0x21,
+ 20713 - 19968: jis0212<<14 | 0x11<<7 | 0x22,
+ 20717 - 19968: jis0208<<14 | 0x30<<7 | 0x07,
+ 20718 - 19968: jis0208<<14 | 0x30<<7 | 0x09,
+ 20719 - 19968: jis0212<<14 | 0x11<<7 | 0x23,
+ 20721 - 19968: jis0212<<14 | 0x11<<7 | 0x24,
+ 20722 - 19968: jis0212<<14 | 0x11<<7 | 0x30,
+ 20724 - 19968: jis0208<<14 | 0x58<<7 | 0x20,
+ 20725 - 19968: jis0208<<14 | 0x30<<7 | 0x0B,
+ 20726 - 19968: jis0212<<14 | 0x11<<7 | 0x25,
+ 20729 - 19968: jis0208<<14 | 0x30<<7 | 0x0A,
+ 20730 - 19968: jis0212<<14 | 0x11<<7 | 0x26,
+ 20731 - 19968: jis0208<<14 | 0x29<<7 | 0x27,
+ 20734 - 19968: jis0212<<14 | 0x11<<7 | 0x27,
+ 20736 - 19968: jis0208<<14 | 0x14<<7 | 0x16,
+ 20737 - 19968: jis0208<<14 | 0x30<<7 | 0x0D,
+ 20738 - 19968: jis0208<<14 | 0x30<<7 | 0x0E,
+ 20739 - 19968: jis0212<<14 | 0x11<<7 | 0x28,
+ 20740 - 19968: jis0208<<14 | 0x11<<7 | 0x0E,
+ 20742 - 19968: jis0212<<14 | 0x11<<7 | 0x29,
+ 20743 - 19968: jis0212<<14 | 0x11<<7 | 0x2A,
+ 20744 - 19968: jis0212<<14 | 0x11<<7 | 0x2B,
+ 20745 - 19968: jis0208<<14 | 0x30<<7 | 0x0C,
+ 20747 - 19968: jis0212<<14 | 0x11<<7 | 0x2C,
+ 20748 - 19968: jis0212<<14 | 0x11<<7 | 0x2D,
+ 20749 - 19968: jis0212<<14 | 0x11<<7 | 0x2E,
+ 20750 - 19968: jis0212<<14 | 0x11<<7 | 0x2F,
+ 20752 - 19968: jis0212<<14 | 0x11<<7 | 0x31,
+ 20754 - 19968: jis0208<<14 | 0x1B<<7 | 0x53,
+ 20756 - 19968: jis0208<<14 | 0x30<<7 | 0x11,
+ 20757 - 19968: jis0208<<14 | 0x30<<7 | 0x10,
+ 20758 - 19968: jis0208<<14 | 0x30<<7 | 0x0F,
+ 20759 - 19968: jis0212<<14 | 0x11<<7 | 0x32,
+ 20760 - 19968: jis0208<<14 | 0x2F<<7 | 0x35,
+ 20761 - 19968: jis0212<<14 | 0x11<<7 | 0x33,
+ 20762 - 19968: jis0208<<14 | 0x30<<7 | 0x12,
+ 20763 - 19968: jis0212<<14 | 0x11<<7 | 0x34,
+ 20764 - 19968: jis0212<<14 | 0x11<<7 | 0x35,
+ 20765 - 19968: jis0212<<14 | 0x11<<7 | 0x36,
+ 20766 - 19968: jis0212<<14 | 0x11<<7 | 0x37,
+ 20767 - 19968: jis0208<<14 | 0x1C<<7 | 0x5D,
+ 20769 - 19968: jis0208<<14 | 0x30<<7 | 0x13,
+ 20771 - 19968: jis0212<<14 | 0x11<<7 | 0x38,
+ 20775 - 19968: jis0212<<14 | 0x11<<7 | 0x39,
+ 20776 - 19968: jis0212<<14 | 0x11<<7 | 0x3A,
+ 20778 - 19968: jis0208<<14 | 0x2C<<7 | 0x04,
+ 20780 - 19968: jis0212<<14 | 0x11<<7 | 0x3B,
+ 20781 - 19968: jis0212<<14 | 0x11<<7 | 0x3C,
+ 20783 - 19968: jis0212<<14 | 0x11<<7 | 0x3D,
+ 20785 - 19968: jis0212<<14 | 0x11<<7 | 0x3E,
+ 20786 - 19968: jis0208<<14 | 0x2B<<7 | 0x38,
+ 20787 - 19968: jis0212<<14 | 0x11<<7 | 0x3F,
+ 20788 - 19968: jis0212<<14 | 0x11<<7 | 0x40,
+ 20789 - 19968: jis0212<<14 | 0x11<<7 | 0x41,
+ 20791 - 19968: jis0208<<14 | 0x30<<7 | 0x15,
+ 20792 - 19968: jis0212<<14 | 0x11<<7 | 0x42,
+ 20793 - 19968: jis0212<<14 | 0x11<<7 | 0x43,
+ 20794 - 19968: jis0208<<14 | 0x30<<7 | 0x14,
+ 20795 - 19968: jis0208<<14 | 0x30<<7 | 0x17,
+ 20796 - 19968: jis0208<<14 | 0x30<<7 | 0x16,
+ 20799 - 19968: jis0208<<14 | 0x30<<7 | 0x18,
+ 20800 - 19968: jis0208<<14 | 0x30<<7 | 0x19,
+ 20801 - 19968: jis0208<<14 | 0x0F<<7 | 0x53,
+ 20802 - 19968: jis0212<<14 | 0x11<<7 | 0x44,
+ 20803 - 19968: jis0208<<14 | 0x17<<7 | 0x14,
+ 20804 - 19968: jis0208<<14 | 0x16<<7 | 0x1A,
+ 20805 - 19968: jis0208<<14 | 0x1C<<7 | 0x1B,
+ 20806 - 19968: jis0208<<14 | 0x22<<7 | 0x5A,
+ 20807 - 19968: jis0208<<14 | 0x15<<7 | 0x03,
+ 20808 - 19968: jis0208<<14 | 0x1F<<7 | 0x47,
+ 20809 - 19968: jis0208<<14 | 0x17<<7 | 0x56,
+ 20810 - 19968: jis0208<<14 | 0x58<<7 | 0x22,
+ 20811 - 19968: jis0208<<14 | 0x18<<7 | 0x4D,
+ 20812 - 19968: jis0208<<14 | 0x30<<7 | 0x1B,
+ 20813 - 19968: jis0208<<14 | 0x2B<<7 | 0x27,
+ 20814 - 19968: jis0208<<14 | 0x24<<7 | 0x25,
+ 20815 - 19968: jis0212<<14 | 0x11<<7 | 0x46,
+ 20816 - 19968: jis0208<<14 | 0x1A<<7 | 0x58,
+ 20818 - 19968: jis0208<<14 | 0x30<<7 | 0x1A,
+ 20819 - 19968: jis0212<<14 | 0x11<<7 | 0x47,
+ 20820 - 19968: jis0208<<14 | 0x30<<7 | 0x1C,
+ 20821 - 19968: jis0212<<14 | 0x11<<7 | 0x48,
+ 20823 - 19968: jis0212<<14 | 0x11<<7 | 0x49,
+ 20824 - 19968: jis0212<<14 | 0x11<<7 | 0x4A,
+ 20826 - 19968: jis0208<<14 | 0x24<<7 | 0x3D,
+ 20828 - 19968: jis0208<<14 | 0x12<<7 | 0x54,
+ 20831 - 19968: jis0212<<14 | 0x11<<7 | 0x4B,
+ 20834 - 19968: jis0208<<14 | 0x30<<7 | 0x1D,
+ 20836 - 19968: jis0208<<14 | 0x58<<7 | 0x23,
+ 20837 - 19968: jis0208<<14 | 0x25<<7 | 0x5D,
+ 20838 - 19968: jis0212<<14 | 0x11<<7 | 0x4D,
+ 20840 - 19968: jis0208<<14 | 0x20<<7 | 0x13,
+ 20841 - 19968: jis0208<<14 | 0x30<<7 | 0x1F,
+ 20842 - 19968: jis0208<<14 | 0x30<<7 | 0x20,
+ 20843 - 19968: jis0208<<14 | 0x27<<7 | 0x0B,
+ 20844 - 19968: jis0208<<14 | 0x17<<7 | 0x57,
+ 20845 - 19968: jis0208<<14 | 0x2E<<7 | 0x1A,
+ 20846 - 19968: jis0208<<14 | 0x30<<7 | 0x21,
+ 20849 - 19968: jis0208<<14 | 0x15<<7 | 0x05,
+ 20853 - 19968: jis0208<<14 | 0x29<<7 | 0x1B,
+ 20854 - 19968: jis0208<<14 | 0x21<<7 | 0x15,
+ 20855 - 19968: jis0208<<14 | 0x15<<7 | 0x50,
+ 20856 - 19968: jis0208<<14 | 0x24<<7 | 0x14,
+ 20860 - 19968: jis0208<<14 | 0x16<<7 | 0x52,
+ 20862 - 19968: jis0212<<14 | 0x11<<7 | 0x4E,
+ 20864 - 19968: jis0208<<14 | 0x30<<7 | 0x22,
+ 20866 - 19968: jis0208<<14 | 0x30<<7 | 0x23,
+ 20867 - 19968: jis0212<<14 | 0x11<<7 | 0x4F,
+ 20868 - 19968: jis0212<<14 | 0x11<<7 | 0x50,
+ 20869 - 19968: jis0208<<14 | 0x25<<7 | 0x41,
+ 20870 - 19968: jis0208<<14 | 0x10<<7 | 0x3E,
+ 20873 - 19968: jis0208<<14 | 0x30<<7 | 0x26,
+ 20874 - 19968: jis0208<<14 | 0x19<<7 | 0x5C,
+ 20875 - 19968: jis0212<<14 | 0x11<<7 | 0x51,
+ 20876 - 19968: jis0208<<14 | 0x30<<7 | 0x25,
+ 20877 - 19968: jis0208<<14 | 0x19<<7 | 0x25,
+ 20878 - 19968: jis0212<<14 | 0x11<<7 | 0x52,
+ 20879 - 19968: jis0208<<14 | 0x30<<7 | 0x27,
+ 20880 - 19968: jis0208<<14 | 0x45<<7 | 0x4D,
+ 20881 - 19968: jis0208<<14 | 0x30<<7 | 0x28,
+ 20882 - 19968: jis0208<<14 | 0x2A<<7 | 0x20,
+ 20883 - 19968: jis0208<<14 | 0x30<<7 | 0x29,
+ 20885 - 19968: jis0208<<14 | 0x30<<7 | 0x2A,
+ 20886 - 19968: jis0208<<14 | 0x30<<7 | 0x2B,
+ 20887 - 19968: jis0208<<14 | 0x1D<<7 | 0x48,
+ 20888 - 19968: jis0212<<14 | 0x11<<7 | 0x53,
+ 20889 - 19968: jis0208<<14 | 0x1B<<7 | 0x2B,
+ 20893 - 19968: jis0208<<14 | 0x58<<7 | 0x24,
+ 20896 - 19968: jis0208<<14 | 0x13<<7 | 0x06,
+ 20897 - 19968: jis0212<<14 | 0x11<<7 | 0x55,
+ 20898 - 19968: jis0208<<14 | 0x30<<7 | 0x2E,
+ 20899 - 19968: jis0212<<14 | 0x11<<7 | 0x56,
+ 20900 - 19968: jis0208<<14 | 0x30<<7 | 0x2C,
+ 20901 - 19968: jis0208<<14 | 0x2B<<7 | 0x1C,
+ 20902 - 19968: jis0208<<14 | 0x30<<7 | 0x2D,
+ 20904 - 19968: jis0208<<14 | 0x28<<7 | 0x39,
+ 20905 - 19968: jis0208<<14 | 0x30<<7 | 0x2F,
+ 20906 - 19968: jis0208<<14 | 0x30<<7 | 0x30,
+ 20907 - 19968: jis0208<<14 | 0x30<<7 | 0x31,
+ 20908 - 19968: jis0208<<14 | 0x24<<7 | 0x3E,
+ 20909 - 19968: jis0212<<14 | 0x11<<7 | 0x57,
+ 20912 - 19968: jis0208<<14 | 0x30<<7 | 0x35,
+ 20913 - 19968: jis0208<<14 | 0x30<<7 | 0x33,
+ 20914 - 19968: jis0208<<14 | 0x30<<7 | 0x34,
+ 20915 - 19968: jis0208<<14 | 0x30<<7 | 0x32,
+ 20916 - 19968: jis0208<<14 | 0x19<<7 | 0x42,
+ 20917 - 19968: jis0208<<14 | 0x30<<7 | 0x36,
+ 20918 - 19968: jis0208<<14 | 0x2B<<7 | 0x49,
+ 20919 - 19968: jis0208<<14 | 0x2D<<7 | 0x43,
+ 20920 - 19968: jis0212<<14 | 0x11<<7 | 0x58,
+ 20922 - 19968: jis0212<<14 | 0x11<<7 | 0x59,
+ 20924 - 19968: jis0212<<14 | 0x11<<7 | 0x5A,
+ 20925 - 19968: jis0208<<14 | 0x30<<7 | 0x37,
+ 20926 - 19968: jis0208<<14 | 0x58<<7 | 0x25,
+ 20927 - 19968: jis0212<<14 | 0x11<<7 | 0x5C,
+ 20930 - 19968: jis0212<<14 | 0x11<<7 | 0x5D,
+ 20932 - 19968: jis0208<<14 | 0x1F<<7 | 0x07,
+ 20933 - 19968: jis0208<<14 | 0x30<<7 | 0x38,
+ 20934 - 19968: jis0208<<14 | 0x1C<<7 | 0x39,
+ 20936 - 19968: jis0212<<14 | 0x12<<7 | 0x00,
+ 20937 - 19968: jis0208<<14 | 0x30<<7 | 0x39,
+ 20939 - 19968: jis0208<<14 | 0x22<<7 | 0x5B,
+ 20940 - 19968: jis0208<<14 | 0x2D<<7 | 0x1E,
+ 20941 - 19968: jis0208<<14 | 0x24<<7 | 0x3F,
+ 20943 - 19968: jis0212<<14 | 0x12<<7 | 0x01,
+ 20945 - 19968: jis0212<<14 | 0x12<<7 | 0x02,
+ 20946 - 19968: jis0212<<14 | 0x12<<7 | 0x03,
+ 20947 - 19968: jis0212<<14 | 0x12<<7 | 0x04,
+ 20949 - 19968: jis0212<<14 | 0x12<<7 | 0x05,
+ 20950 - 19968: jis0208<<14 | 0x31<<7 | 0x24,
+ 20952 - 19968: jis0212<<14 | 0x12<<7 | 0x06,
+ 20955 - 19968: jis0208<<14 | 0x30<<7 | 0x3A,
+ 20956 - 19968: jis0208<<14 | 0x53<<7 | 0x04,
+ 20957 - 19968: jis0208<<14 | 0x15<<7 | 0x24,
+ 20958 - 19968: jis0212<<14 | 0x12<<7 | 0x07,
+ 20960 - 19968: jis0208<<14 | 0x30<<7 | 0x3B,
+ 20961 - 19968: jis0208<<14 | 0x2A<<7 | 0x3D,
+ 20962 - 19968: jis0212<<14 | 0x12<<7 | 0x08,
+ 20965 - 19968: jis0212<<14 | 0x12<<7 | 0x09,
+ 20966 - 19968: jis0208<<14 | 0x1C<<7 | 0x47,
+ 20967 - 19968: jis0208<<14 | 0x21<<7 | 0x5B,
+ 20969 - 19968: jis0208<<14 | 0x30<<7 | 0x3D,
+ 20970 - 19968: jis0208<<14 | 0x25<<7 | 0x43,
+ 20972 - 19968: jis0208<<14 | 0x58<<7 | 0x26,
+ 20973 - 19968: jis0208<<14 | 0x30<<7 | 0x3E,
+ 20974 - 19968: jis0212<<14 | 0x12<<7 | 0x0A,
+ 20976 - 19968: jis0208<<14 | 0x30<<7 | 0x3F,
+ 20977 - 19968: jis0208<<14 | 0x12<<7 | 0x0D,
+ 20978 - 19968: jis0212<<14 | 0x12<<7 | 0x0B,
+ 20979 - 19968: jis0212<<14 | 0x12<<7 | 0x0C,
+ 20980 - 19968: jis0212<<14 | 0x12<<7 | 0x0D,
+ 20981 - 19968: jis0208<<14 | 0x30<<7 | 0x40,
+ 20982 - 19968: jis0208<<14 | 0x15<<7 | 0x06,
+ 20983 - 19968: jis0212<<14 | 0x12<<7 | 0x0E,
+ 20984 - 19968: jis0208<<14 | 0x25<<7 | 0x2B,
+ 20985 - 19968: jis0208<<14 | 0x10<<7 | 0x59,
+ 20986 - 19968: jis0208<<14 | 0x1C<<7 | 0x2F,
+ 20989 - 19968: jis0208<<14 | 0x27<<7 | 0x00,
+ 20990 - 19968: jis0208<<14 | 0x30<<7 | 0x41,
+ 20992 - 19968: jis0208<<14 | 0x24<<7 | 0x40,
+ 20993 - 19968: jis0212<<14 | 0x12<<7 | 0x0F,
+ 20994 - 19968: jis0212<<14 | 0x12<<7 | 0x10,
+ 20995 - 19968: jis0208<<14 | 0x1E<<7 | 0x2E,
+ 20996 - 19968: jis0208<<14 | 0x30<<7 | 0x42,
+ 20997 - 19968: jis0212<<14 | 0x12<<7 | 0x11,
+ 20998 - 19968: jis0208<<14 | 0x29<<7 | 0x0B,
+ 20999 - 19968: jis0208<<14 | 0x1F<<7 | 0x39,
+ 21000 - 19968: jis0208<<14 | 0x13<<7 | 0x01,
+ 21002 - 19968: jis0208<<14 | 0x13<<7 | 0x08,
+ 21003 - 19968: jis0208<<14 | 0x30<<7 | 0x43,
+ 21006 - 19968: jis0208<<14 | 0x30<<7 | 0x45,
+ 21009 - 19968: jis0208<<14 | 0x16<<7 | 0x19,
+ 21010 - 19968: jis0212<<14 | 0x12<<7 | 0x12,
+ 21011 - 19968: jis0212<<14 | 0x12<<7 | 0x13,
+ 21012 - 19968: jis0208<<14 | 0x30<<7 | 0x44,
+ 21013 - 19968: jis0208<<14 | 0x58<<7 | 0x27,
+ 21014 - 19968: jis0212<<14 | 0x12<<7 | 0x15,
+ 21015 - 19968: jis0208<<14 | 0x2D<<7 | 0x52,
+ 21016 - 19968: jis0212<<14 | 0x12<<7 | 0x16,
+ 21021 - 19968: jis0208<<14 | 0x1C<<7 | 0x48,
+ 21026 - 19968: jis0212<<14 | 0x12<<7 | 0x17,
+ 21028 - 19968: jis0208<<14 | 0x27<<7 | 0x1C,
+ 21029 - 19968: jis0208<<14 | 0x29<<7 | 0x2B,
+ 21031 - 19968: jis0208<<14 | 0x30<<7 | 0x46,
+ 21032 - 19968: jis0212<<14 | 0x12<<7 | 0x18,
+ 21033 - 19968: jis0208<<14 | 0x2C<<7 | 0x57,
+ 21034 - 19968: jis0208<<14 | 0x30<<7 | 0x47,
+ 21038 - 19968: jis0208<<14 | 0x30<<7 | 0x48,
+ 21040 - 19968: jis0208<<14 | 0x24<<7 | 0x5D,
+ 21041 - 19968: jis0212<<14 | 0x12<<7 | 0x19,
+ 21042 - 19968: jis0212<<14 | 0x12<<7 | 0x1A,
+ 21043 - 19968: jis0208<<14 | 0x30<<7 | 0x49,
+ 21045 - 19968: jis0212<<14 | 0x12<<7 | 0x1B,
+ 21046 - 19968: jis0208<<14 | 0x1F<<7 | 0x08,
+ 21047 - 19968: jis0208<<14 | 0x19<<7 | 0x5D,
+ 21048 - 19968: jis0208<<14 | 0x16<<7 | 0x53,
+ 21049 - 19968: jis0208<<14 | 0x30<<7 | 0x4A,
+ 21050 - 19968: jis0208<<14 | 0x1A<<7 | 0x28,
+ 21051 - 19968: jis0208<<14 | 0x18<<7 | 0x4E,
+ 21052 - 19968: jis0212<<14 | 0x12<<7 | 0x1C,
+ 21059 - 19968: jis0208<<14 | 0x23<<7 | 0x45,
+ 21060 - 19968: jis0208<<14 | 0x30<<7 | 0x4C,
+ 21061 - 19968: jis0212<<14 | 0x12<<7 | 0x1D,
+ 21063 - 19968: jis0208<<14 | 0x21<<7 | 0x06,
+ 21065 - 19968: jis0212<<14 | 0x12<<7 | 0x1E,
+ 21066 - 19968: jis0208<<14 | 0x19<<7 | 0x4E,
+ 21067 - 19968: jis0208<<14 | 0x30<<7 | 0x4D,
+ 21068 - 19968: jis0208<<14 | 0x30<<7 | 0x4E,
+ 21069 - 19968: jis0208<<14 | 0x20<<7 | 0x0F,
+ 21071 - 19968: jis0208<<14 | 0x30<<7 | 0x4B,
+ 21076 - 19968: jis0208<<14 | 0x30<<7 | 0x50,
+ 21077 - 19968: jis0212<<14 | 0x12<<7 | 0x1F,
+ 21078 - 19968: jis0208<<14 | 0x2A<<7 | 0x15,
+ 21079 - 19968: jis0212<<14 | 0x12<<7 | 0x20,
+ 21080 - 19968: jis0212<<14 | 0x12<<7 | 0x21,
+ 21082 - 19968: jis0212<<14 | 0x12<<7 | 0x22,
+ 21083 - 19968: jis0208<<14 | 0x18<<7 | 0x43,
+ 21084 - 19968: jis0212<<14 | 0x12<<7 | 0x23,
+ 21086 - 19968: jis0208<<14 | 0x30<<7 | 0x4F,
+ 21087 - 19968: jis0212<<14 | 0x12<<7 | 0x24,
+ 21088 - 19968: jis0212<<14 | 0x12<<7 | 0x25,
+ 21089 - 19968: jis0212<<14 | 0x12<<7 | 0x26,
+ 21091 - 19968: jis0208<<14 | 0x16<<7 | 0x54,
+ 21092 - 19968: jis0208<<14 | 0x19<<7 | 0x3D,
+ 21093 - 19968: jis0208<<14 | 0x26<<7 | 0x4C,
+ 21094 - 19968: jis0212<<14 | 0x12<<7 | 0x27,
+ 21097 - 19968: jis0208<<14 | 0x30<<7 | 0x53,
+ 21098 - 19968: jis0208<<14 | 0x30<<7 | 0x51,
+ 21102 - 19968: jis0212<<14 | 0x12<<7 | 0x28,
+ 21103 - 19968: jis0208<<14 | 0x28<<7 | 0x5A,
+ 21104 - 19968: jis0208<<14 | 0x1D<<7 | 0x49,
+ 21105 - 19968: jis0208<<14 | 0x30<<7 | 0x5A,
+ 21106 - 19968: jis0208<<14 | 0x12<<7 | 0x43,
+ 21107 - 19968: jis0208<<14 | 0x30<<7 | 0x54,
+ 21108 - 19968: jis0208<<14 | 0x30<<7 | 0x52,
+ 21109 - 19968: jis0208<<14 | 0x20<<7 | 0x2E,
+ 21111 - 19968: jis0212<<14 | 0x12<<7 | 0x29,
+ 21112 - 19968: jis0212<<14 | 0x12<<7 | 0x2A,
+ 21113 - 19968: jis0212<<14 | 0x12<<7 | 0x2B,
+ 21117 - 19968: jis0208<<14 | 0x30<<7 | 0x56,
+ 21119 - 19968: jis0208<<14 | 0x30<<7 | 0x55,
+ 21120 - 19968: jis0212<<14 | 0x12<<7 | 0x2C,
+ 21122 - 19968: jis0212<<14 | 0x12<<7 | 0x2D,
+ 21123 - 19968: jis0208<<14 | 0x12<<7 | 0x23,
+ 21125 - 19968: jis0212<<14 | 0x12<<7 | 0x2E,
+ 21127 - 19968: jis0208<<14 | 0x16<<7 | 0x3F,
+ 21128 - 19968: jis0208<<14 | 0x30<<7 | 0x5B,
+ 21129 - 19968: jis0208<<14 | 0x2D<<7 | 0x0C,
+ 21130 - 19968: jis0212<<14 | 0x12<<7 | 0x2F,
+ 21132 - 19968: jis0212<<14 | 0x12<<7 | 0x30,
+ 21133 - 19968: jis0208<<14 | 0x30<<7 | 0x57,
+ 21137 - 19968: jis0208<<14 | 0x30<<7 | 0x5C,
+ 21138 - 19968: jis0208<<14 | 0x30<<7 | 0x59,
+ 21139 - 19968: jis0212<<14 | 0x12<<7 | 0x31,
+ 21140 - 19968: jis0208<<14 | 0x30<<7 | 0x58,
+ 21141 - 19968: jis0212<<14 | 0x12<<7 | 0x32,
+ 21142 - 19968: jis0212<<14 | 0x12<<7 | 0x33,
+ 21143 - 19968: jis0212<<14 | 0x12<<7 | 0x34,
+ 21144 - 19968: jis0212<<14 | 0x12<<7 | 0x35,
+ 21146 - 19968: jis0212<<14 | 0x12<<7 | 0x36,
+ 21147 - 19968: jis0208<<14 | 0x2D<<7 | 0x2E,
+ 21148 - 19968: jis0208<<14 | 0x58<<7 | 0x28,
+ 21151 - 19968: jis0208<<14 | 0x17<<7 | 0x58,
+ 21152 - 19968: jis0208<<14 | 0x11<<7 | 0x22,
+ 21155 - 19968: jis0208<<14 | 0x2D<<7 | 0x53,
+ 21156 - 19968: jis0212<<14 | 0x12<<7 | 0x38,
+ 21157 - 19968: jis0212<<14 | 0x12<<7 | 0x39,
+ 21158 - 19968: jis0208<<14 | 0x58<<7 | 0x29,
+ 21159 - 19968: jis0212<<14 | 0x12<<7 | 0x3B,
+ 21161 - 19968: jis0208<<14 | 0x1C<<7 | 0x54,
+ 21162 - 19968: jis0208<<14 | 0x24<<7 | 0x37,
+ 21163 - 19968: jis0208<<14 | 0x18<<7 | 0x44,
+ 21164 - 19968: jis0208<<14 | 0x31<<7 | 0x01,
+ 21165 - 19968: jis0208<<14 | 0x31<<7 | 0x02,
+ 21167 - 19968: jis0208<<14 | 0x5A<<7 | 0x1B,
+ 21168 - 19968: jis0212<<14 | 0x12<<7 | 0x3D,
+ 21169 - 19968: jis0208<<14 | 0x2D<<7 | 0x44,
+ 21172 - 19968: jis0208<<14 | 0x2E<<7 | 0x0A,
+ 21173 - 19968: jis0208<<14 | 0x31<<7 | 0x04,
+ 21174 - 19968: jis0212<<14 | 0x12<<7 | 0x3E,
+ 21175 - 19968: jis0212<<14 | 0x12<<7 | 0x3F,
+ 21176 - 19968: jis0212<<14 | 0x12<<7 | 0x40,
+ 21177 - 19968: jis0208<<14 | 0x17<<7 | 0x59,
+ 21178 - 19968: jis0212<<14 | 0x12<<7 | 0x41,
+ 21179 - 19968: jis0212<<14 | 0x12<<7 | 0x42,
+ 21180 - 19968: jis0208<<14 | 0x31<<7 | 0x03,
+ 21181 - 19968: jis0212<<14 | 0x12<<7 | 0x43,
+ 21182 - 19968: jis0208<<14 | 0x12<<7 | 0x0E,
+ 21184 - 19968: jis0208<<14 | 0x58<<7 | 0x2A,
+ 21185 - 19968: jis0208<<14 | 0x31<<7 | 0x05,
+ 21187 - 19968: jis0208<<14 | 0x2A<<7 | 0x35,
+ 21188 - 19968: jis0212<<14 | 0x12<<7 | 0x45,
+ 21189 - 19968: jis0208<<14 | 0x23<<7 | 0x1B,
+ 21190 - 19968: jis0212<<14 | 0x12<<7 | 0x46,
+ 21191 - 19968: jis0208<<14 | 0x2C<<7 | 0x05,
+ 21192 - 19968: jis0212<<14 | 0x12<<7 | 0x47,
+ 21193 - 19968: jis0208<<14 | 0x29<<7 | 0x38,
+ 21196 - 19968: jis0212<<14 | 0x12<<7 | 0x48,
+ 21197 - 19968: jis0208<<14 | 0x31<<7 | 0x06,
+ 21199 - 19968: jis0212<<14 | 0x12<<7 | 0x49,
+ 21201 - 19968: jis0212<<14 | 0x12<<7 | 0x4A,
+ 21202 - 19968: jis0208<<14 | 0x4F<<7 | 0x34,
+ 21204 - 19968: jis0212<<14 | 0x12<<7 | 0x4B,
+ 21205 - 19968: jis0208<<14 | 0x25<<7 | 0x0F,
+ 21206 - 19968: jis0212<<14 | 0x12<<7 | 0x4C,
+ 21207 - 19968: jis0208<<14 | 0x31<<7 | 0x07,
+ 21208 - 19968: jis0208<<14 | 0x13<<7 | 0x09,
+ 21209 - 19968: jis0208<<14 | 0x2B<<7 | 0x12,
+ 21211 - 19968: jis0208<<14 | 0x58<<7 | 0x2B,
+ 21212 - 19968: jis0212<<14 | 0x12<<7 | 0x4E,
+ 21213 - 19968: jis0208<<14 | 0x1D<<7 | 0x00,
+ 21214 - 19968: jis0208<<14 | 0x31<<7 | 0x08,
+ 21215 - 19968: jis0208<<14 | 0x29<<7 | 0x46,
+ 21216 - 19968: jis0208<<14 | 0x31<<7 | 0x0C,
+ 21217 - 19968: jis0212<<14 | 0x12<<7 | 0x4F,
+ 21218 - 19968: jis0208<<14 | 0x1F<<7 | 0x09,
+ 21219 - 19968: jis0208<<14 | 0x31<<7 | 0x09,
+ 21220 - 19968: jis0208<<14 | 0x15<<7 | 0x2F,
+ 21221 - 19968: jis0212<<14 | 0x12<<7 | 0x50,
+ 21222 - 19968: jis0208<<14 | 0x31<<7 | 0x0A,
+ 21223 - 19968: jis0208<<14 | 0x13<<7 | 0x0A,
+ 21224 - 19968: jis0212<<14 | 0x12<<7 | 0x51,
+ 21225 - 19968: jis0212<<14 | 0x12<<7 | 0x52,
+ 21226 - 19968: jis0212<<14 | 0x12<<7 | 0x53,
+ 21228 - 19968: jis0212<<14 | 0x12<<7 | 0x54,
+ 21232 - 19968: jis0212<<14 | 0x12<<7 | 0x55,
+ 21233 - 19968: jis0212<<14 | 0x12<<7 | 0x56,
+ 21234 - 19968: jis0208<<14 | 0x16<<7 | 0x0D,
+ 21235 - 19968: jis0208<<14 | 0x31<<7 | 0x0D,
+ 21236 - 19968: jis0212<<14 | 0x12<<7 | 0x57,
+ 21237 - 19968: jis0208<<14 | 0x31<<7 | 0x0E,
+ 21238 - 19968: jis0212<<14 | 0x12<<7 | 0x58,
+ 21239 - 19968: jis0212<<14 | 0x12<<7 | 0x59,
+ 21240 - 19968: jis0208<<14 | 0x31<<7 | 0x0F,
+ 21241 - 19968: jis0208<<14 | 0x31<<7 | 0x10,
+ 21242 - 19968: jis0208<<14 | 0x1B<<7 | 0x3A,
+ 21246 - 19968: jis0208<<14 | 0x17<<7 | 0x5A,
+ 21247 - 19968: jis0208<<14 | 0x2B<<7 | 0x3D,
+ 21248 - 19968: jis0208<<14 | 0x58<<7 | 0x2C,
+ 21249 - 19968: jis0208<<14 | 0x2B<<7 | 0x47,
+ 21250 - 19968: jis0208<<14 | 0x25<<7 | 0x56,
+ 21251 - 19968: jis0212<<14 | 0x12<<7 | 0x5B,
+ 21253 - 19968: jis0208<<14 | 0x29<<7 | 0x50,
+ 21254 - 19968: jis0208<<14 | 0x31<<7 | 0x11,
+ 21255 - 19968: jis0208<<14 | 0x58<<7 | 0x2D,
+ 21256 - 19968: jis0208<<14 | 0x31<<7 | 0x12,
+ 21258 - 19968: jis0212<<14 | 0x12<<7 | 0x5C,
+ 21259 - 19968: jis0212<<14 | 0x12<<7 | 0x5D,
+ 21260 - 19968: jis0212<<14 | 0x13<<7 | 0x00,
+ 21261 - 19968: jis0208<<14 | 0x31<<7 | 0x14,
+ 21263 - 19968: jis0208<<14 | 0x31<<7 | 0x16,
+ 21264 - 19968: jis0208<<14 | 0x31<<7 | 0x15,
+ 21265 - 19968: jis0212<<14 | 0x13<<7 | 0x01,
+ 21267 - 19968: jis0212<<14 | 0x13<<7 | 0x02,
+ 21269 - 19968: jis0208<<14 | 0x31<<7 | 0x17,
+ 21270 - 19968: jis0208<<14 | 0x11<<7 | 0x1C,
+ 21271 - 19968: jis0208<<14 | 0x2A<<7 | 0x2B,
+ 21272 - 19968: jis0212<<14 | 0x13<<7 | 0x03,
+ 21273 - 19968: jis0208<<14 | 0x19<<7 | 0x5B,
+ 21274 - 19968: jis0208<<14 | 0x31<<7 | 0x18,
+ 21275 - 19968: jis0212<<14 | 0x13<<7 | 0x04,
+ 21276 - 19968: jis0212<<14 | 0x13<<7 | 0x05,
+ 21277 - 19968: jis0208<<14 | 0x20<<7 | 0x38,
+ 21278 - 19968: jis0212<<14 | 0x13<<7 | 0x06,
+ 21279 - 19968: jis0212<<14 | 0x13<<7 | 0x07,
+ 21280 - 19968: jis0208<<14 | 0x1D<<7 | 0x01,
+ 21281 - 19968: jis0208<<14 | 0x15<<7 | 0x08,
+ 21283 - 19968: jis0208<<14 | 0x31<<7 | 0x19,
+ 21284 - 19968: jis0208<<14 | 0x58<<7 | 0x2E,
+ 21285 - 19968: jis0212<<14 | 0x13<<7 | 0x08,
+ 21287 - 19968: jis0212<<14 | 0x13<<7 | 0x09,
+ 21288 - 19968: jis0212<<14 | 0x13<<7 | 0x0A,
+ 21289 - 19968: jis0212<<14 | 0x13<<7 | 0x0B,
+ 21290 - 19968: jis0208<<14 | 0x27<<7 | 0x3A,
+ 21291 - 19968: jis0212<<14 | 0x13<<7 | 0x0C,
+ 21292 - 19968: jis0212<<14 | 0x13<<7 | 0x0D,
+ 21293 - 19968: jis0212<<14 | 0x13<<7 | 0x0E,
+ 21295 - 19968: jis0208<<14 | 0x31<<7 | 0x1A,
+ 21296 - 19968: jis0212<<14 | 0x13<<7 | 0x0F,
+ 21297 - 19968: jis0208<<14 | 0x31<<7 | 0x1B,
+ 21298 - 19968: jis0212<<14 | 0x13<<7 | 0x10,
+ 21299 - 19968: jis0208<<14 | 0x31<<7 | 0x1C,
+ 21301 - 19968: jis0212<<14 | 0x13<<7 | 0x11,
+ 21304 - 19968: jis0208<<14 | 0x31<<7 | 0x1D,
+ 21305 - 19968: jis0208<<14 | 0x28<<7 | 0x03,
+ 21306 - 19968: jis0208<<14 | 0x15<<7 | 0x47,
+ 21307 - 19968: jis0208<<14 | 0x0F<<7 | 0x44,
+ 21308 - 19968: jis0212<<14 | 0x13<<7 | 0x12,
+ 21309 - 19968: jis0212<<14 | 0x13<<7 | 0x13,
+ 21310 - 19968: jis0212<<14 | 0x13<<7 | 0x14,
+ 21311 - 19968: jis0208<<14 | 0x25<<7 | 0x1E,
+ 21312 - 19968: jis0208<<14 | 0x31<<7 | 0x1E,
+ 21313 - 19968: jis0208<<14 | 0x1C<<7 | 0x1C,
+ 21314 - 19968: jis0212<<14 | 0x13<<7 | 0x15,
+ 21315 - 19968: jis0208<<14 | 0x1F<<7 | 0x48,
+ 21317 - 19968: jis0208<<14 | 0x31<<7 | 0x20,
+ 21318 - 19968: jis0208<<14 | 0x31<<7 | 0x1F,
+ 21319 - 19968: jis0208<<14 | 0x1D<<7 | 0x02,
+ 21320 - 19968: jis0208<<14 | 0x17<<7 | 0x40,
+ 21321 - 19968: jis0208<<14 | 0x31<<7 | 0x22,
+ 21322 - 19968: jis0208<<14 | 0x27<<7 | 0x1D,
+ 21323 - 19968: jis0212<<14 | 0x13<<7 | 0x17,
+ 21324 - 19968: jis0212<<14 | 0x13<<7 | 0x16,
+ 21325 - 19968: jis0208<<14 | 0x31<<7 | 0x23,
+ 21329 - 19968: jis0208<<14 | 0x27<<7 | 0x3B,
+ 21330 - 19968: jis0208<<14 | 0x21<<7 | 0x13,
+ 21331 - 19968: jis0208<<14 | 0x21<<7 | 0x4D,
+ 21332 - 19968: jis0208<<14 | 0x15<<7 | 0x07,
+ 21335 - 19968: jis0208<<14 | 0x25<<7 | 0x4D,
+ 21336 - 19968: jis0208<<14 | 0x22<<7 | 0x10,
+ 21337 - 19968: jis0212<<14 | 0x13<<7 | 0x18,
+ 21338 - 19968: jis0208<<14 | 0x26<<7 | 0x4D,
+ 21339 - 19968: jis0212<<14 | 0x13<<7 | 0x19,
+ 21340 - 19968: jis0208<<14 | 0x2A<<7 | 0x2D,
+ 21342 - 19968: jis0208<<14 | 0x31<<7 | 0x25,
+ 21344 - 19968: jis0208<<14 | 0x1F<<7 | 0x49,
+ 21345 - 19968: jis0212<<14 | 0x13<<7 | 0x1A,
+ 21347 - 19968: jis0212<<14 | 0x13<<7 | 0x1B,
+ 21349 - 19968: jis0212<<14 | 0x13<<7 | 0x1C,
+ 21350 - 19968: jis0208<<14 | 0x16<<7 | 0x14,
+ 21353 - 19968: jis0208<<14 | 0x31<<7 | 0x26,
+ 21356 - 19968: jis0212<<14 | 0x13<<7 | 0x1D,
+ 21357 - 19968: jis0212<<14 | 0x13<<7 | 0x1E,
+ 21358 - 19968: jis0208<<14 | 0x31<<7 | 0x27,
+ 21359 - 19968: jis0208<<14 | 0x10<<7 | 0x0B,
+ 21360 - 19968: jis0208<<14 | 0x0F<<7 | 0x54,
+ 21361 - 19968: jis0208<<14 | 0x13<<7 | 0x4C,
+ 21362 - 19968: jis0208<<14 | 0x58<<7 | 0x2F,
+ 21363 - 19968: jis0208<<14 | 0x21<<7 | 0x07,
+ 21364 - 19968: jis0208<<14 | 0x14<<7 | 0x30,
+ 21365 - 19968: jis0208<<14 | 0x2C<<7 | 0x50,
+ 21367 - 19968: jis0208<<14 | 0x31<<7 | 0x2A,
+ 21368 - 19968: jis0208<<14 | 0x11<<7 | 0x16,
+ 21369 - 19968: jis0212<<14 | 0x13<<7 | 0x20,
+ 21371 - 19968: jis0208<<14 | 0x31<<7 | 0x29,
+ 21374 - 19968: jis0212<<14 | 0x13<<7 | 0x21,
+ 21375 - 19968: jis0208<<14 | 0x15<<7 | 0x09,
+ 21378 - 19968: jis0208<<14 | 0x31<<7 | 0x2B,
+ 21379 - 19968: jis0212<<14 | 0x13<<7 | 0x22,
+ 21380 - 19968: jis0208<<14 | 0x2B<<7 | 0x50,
+ 21383 - 19968: jis0212<<14 | 0x13<<7 | 0x23,
+ 21384 - 19968: jis0212<<14 | 0x13<<7 | 0x24,
+ 21390 - 19968: jis0212<<14 | 0x13<<7 | 0x25,
+ 21395 - 19968: jis0208<<14 | 0x58<<7 | 0x30,
+ 21396 - 19968: jis0212<<14 | 0x13<<7 | 0x27,
+ 21398 - 19968: jis0208<<14 | 0x31<<7 | 0x2C,
+ 21400 - 19968: jis0208<<14 | 0x2D<<7 | 0x31,
+ 21401 - 19968: jis0212<<14 | 0x13<<7 | 0x28,
+ 21402 - 19968: jis0208<<14 | 0x17<<7 | 0x5B,
+ 21405 - 19968: jis0212<<14 | 0x13<<7 | 0x29,
+ 21407 - 19968: jis0208<<14 | 0x17<<7 | 0x15,
+ 21408 - 19968: jis0208<<14 | 0x31<<7 | 0x2D,
+ 21409 - 19968: jis0212<<14 | 0x13<<7 | 0x2A,
+ 21412 - 19968: jis0212<<14 | 0x13<<7 | 0x2B,
+ 21413 - 19968: jis0208<<14 | 0x31<<7 | 0x2F,
+ 21414 - 19968: jis0208<<14 | 0x31<<7 | 0x2E,
+ 21416 - 19968: jis0208<<14 | 0x1E<<7 | 0x3E,
+ 21417 - 19968: jis0208<<14 | 0x10<<7 | 0x18,
+ 21418 - 19968: jis0212<<14 | 0x13<<7 | 0x2C,
+ 21419 - 19968: jis0212<<14 | 0x13<<7 | 0x2D,
+ 21421 - 19968: jis0208<<14 | 0x10<<7 | 0x3D,
+ 21422 - 19968: jis0208<<14 | 0x31<<7 | 0x30,
+ 21423 - 19968: jis0212<<14 | 0x13<<7 | 0x2E,
+ 21424 - 19968: jis0208<<14 | 0x31<<7 | 0x31,
+ 21426 - 19968: jis0208<<14 | 0x58<<7 | 0x31,
+ 21427 - 19968: jis0208<<14 | 0x17<<7 | 0x16,
+ 21428 - 19968: jis0212<<14 | 0x13<<7 | 0x30,
+ 21429 - 19968: jis0212<<14 | 0x13<<7 | 0x31,
+ 21430 - 19968: jis0208<<14 | 0x31<<7 | 0x32,
+ 21431 - 19968: jis0212<<14 | 0x13<<7 | 0x32,
+ 21432 - 19968: jis0212<<14 | 0x13<<7 | 0x33,
+ 21434 - 19968: jis0212<<14 | 0x13<<7 | 0x34,
+ 21435 - 19968: jis0208<<14 | 0x14<<7 | 0x4D,
+ 21437 - 19968: jis0212<<14 | 0x13<<7 | 0x35,
+ 21440 - 19968: jis0212<<14 | 0x13<<7 | 0x36,
+ 21442 - 19968: jis0208<<14 | 0x1A<<7 | 0x11,
+ 21443 - 19968: jis0208<<14 | 0x31<<7 | 0x33,
+ 21445 - 19968: jis0212<<14 | 0x13<<7 | 0x37,
+ 21448 - 19968: jis0208<<14 | 0x2A<<7 | 0x53,
+ 21449 - 19968: jis0208<<14 | 0x19<<7 | 0x14,
+ 21450 - 19968: jis0208<<14 | 0x14<<7 | 0x39,
+ 21451 - 19968: jis0208<<14 | 0x2C<<7 | 0x06,
+ 21452 - 19968: jis0208<<14 | 0x20<<7 | 0x2F,
+ 21453 - 19968: jis0208<<14 | 0x27<<7 | 0x1E,
+ 21454 - 19968: jis0208<<14 | 0x1B<<7 | 0x5C,
+ 21455 - 19968: jis0212<<14 | 0x13<<7 | 0x38,
+ 21458 - 19968: jis0212<<14 | 0x13<<7 | 0x39,
+ 21459 - 19968: jis0212<<14 | 0x13<<7 | 0x3A,
+ 21460 - 19968: jis0208<<14 | 0x1C<<7 | 0x26,
+ 21461 - 19968: jis0212<<14 | 0x13<<7 | 0x3B,
+ 21462 - 19968: jis0208<<14 | 0x1B<<7 | 0x47,
+ 21463 - 19968: jis0208<<14 | 0x1B<<7 | 0x54,
+ 21465 - 19968: jis0208<<14 | 0x1C<<7 | 0x55,
+ 21466 - 19968: jis0212<<14 | 0x13<<7 | 0x3C,
+ 21467 - 19968: jis0208<<14 | 0x27<<7 | 0x1F,
+ 21469 - 19968: jis0208<<14 | 0x58<<7 | 0x32,
+ 21470 - 19968: jis0212<<14 | 0x13<<7 | 0x3E,
+ 21471 - 19968: jis0208<<14 | 0x31<<7 | 0x36,
+ 21472 - 19968: jis0212<<14 | 0x13<<7 | 0x3F,
+ 21473 - 19968: jis0208<<14 | 0x10<<7 | 0x22,
+ 21474 - 19968: jis0208<<14 | 0x20<<7 | 0x30,
+ 21475 - 19968: jis0208<<14 | 0x17<<7 | 0x5C,
+ 21476 - 19968: jis0208<<14 | 0x17<<7 | 0x24,
+ 21477 - 19968: jis0208<<14 | 0x15<<7 | 0x46,
+ 21478 - 19968: jis0212<<14 | 0x13<<7 | 0x40,
+ 21479 - 19968: jis0212<<14 | 0x13<<7 | 0x41,
+ 21480 - 19968: jis0208<<14 | 0x31<<7 | 0x3A,
+ 21481 - 19968: jis0208<<14 | 0x22<<7 | 0x00,
+ 21482 - 19968: jis0208<<14 | 0x21<<7 | 0x5D,
+ 21483 - 19968: jis0208<<14 | 0x15<<7 | 0x0A,
+ 21484 - 19968: jis0208<<14 | 0x1D<<7 | 0x03,
+ 21485 - 19968: jis0208<<14 | 0x31<<7 | 0x3B,
+ 21486 - 19968: jis0208<<14 | 0x31<<7 | 0x39,
+ 21487 - 19968: jis0208<<14 | 0x11<<7 | 0x23,
+ 21488 - 19968: jis0208<<14 | 0x21<<7 | 0x45,
+ 21489 - 19968: jis0208<<14 | 0x1B<<7 | 0x17,
+ 21490 - 19968: jis0208<<14 | 0x1A<<7 | 0x2A,
+ 21491 - 19968: jis0208<<14 | 0x10<<7 | 0x05,
+ 21493 - 19968: jis0212<<14 | 0x13<<7 | 0x42,
+ 21494 - 19968: jis0208<<14 | 0x12<<7 | 0x4F,
+ 21495 - 19968: jis0208<<14 | 0x18<<7 | 0x45,
+ 21496 - 19968: jis0208<<14 | 0x1A<<7 | 0x29,
+ 21498 - 19968: jis0208<<14 | 0x31<<7 | 0x3C,
+ 21505 - 19968: jis0208<<14 | 0x31<<7 | 0x3D,
+ 21506 - 19968: jis0212<<14 | 0x13<<7 | 0x43,
+ 21507 - 19968: jis0208<<14 | 0x14<<7 | 0x28,
+ 21508 - 19968: jis0208<<14 | 0x12<<7 | 0x25,
+ 21512 - 19968: jis0208<<14 | 0x18<<7 | 0x46,
+ 21513 - 19968: jis0208<<14 | 0x14<<7 | 0x27,
+ 21514 - 19968: jis0208<<14 | 0x23<<7 | 0x3E,
+ 21515 - 19968: jis0208<<14 | 0x10<<7 | 0x04,
+ 21516 - 19968: jis0208<<14 | 0x25<<7 | 0x10,
+ 21517 - 19968: jis0208<<14 | 0x2B<<7 | 0x1D,
+ 21518 - 19968: jis0208<<14 | 0x18<<7 | 0x00,
+ 21519 - 19968: jis0208<<14 | 0x2C<<7 | 0x58,
+ 21520 - 19968: jis0208<<14 | 0x24<<7 | 0x26,
+ 21521 - 19968: jis0208<<14 | 0x17<<7 | 0x5D,
+ 21523 - 19968: jis0212<<14 | 0x13<<7 | 0x44,
+ 21530 - 19968: jis0212<<14 | 0x13<<7 | 0x45,
+ 21531 - 19968: jis0208<<14 | 0x16<<7 | 0x0E,
+ 21533 - 19968: jis0208<<14 | 0x31<<7 | 0x46,
+ 21535 - 19968: jis0208<<14 | 0x15<<7 | 0x42,
+ 21536 - 19968: jis0208<<14 | 0x2A<<7 | 0x29,
+ 21537 - 19968: jis0212<<14 | 0x13<<7 | 0x46,
+ 21542 - 19968: jis0208<<14 | 0x27<<7 | 0x3C,
+ 21543 - 19968: jis0212<<14 | 0x13<<7 | 0x47,
+ 21544 - 19968: jis0212<<14 | 0x13<<7 | 0x48,
+ 21545 - 19968: jis0208<<14 | 0x31<<7 | 0x45,
+ 21546 - 19968: jis0212<<14 | 0x13<<7 | 0x49,
+ 21547 - 19968: jis0208<<14 | 0x13<<7 | 0x3D,
+ 21548 - 19968: jis0208<<14 | 0x31<<7 | 0x40,
+ 21549 - 19968: jis0208<<14 | 0x31<<7 | 0x41,
+ 21550 - 19968: jis0208<<14 | 0x31<<7 | 0x43,
+ 21551 - 19968: jis0212<<14 | 0x13<<7 | 0x4A,
+ 21553 - 19968: jis0212<<14 | 0x13<<7 | 0x4B,
+ 21556 - 19968: jis0212<<14 | 0x13<<7 | 0x4C,
+ 21557 - 19968: jis0212<<14 | 0x13<<7 | 0x4D,
+ 21558 - 19968: jis0208<<14 | 0x31<<7 | 0x44,
+ 21560 - 19968: jis0208<<14 | 0x14<<7 | 0x3A,
+ 21561 - 19968: jis0208<<14 | 0x1E<<7 | 0x40,
+ 21563 - 19968: jis0208<<14 | 0x29<<7 | 0x0C,
+ 21564 - 19968: jis0208<<14 | 0x31<<7 | 0x42,
+ 21565 - 19968: jis0208<<14 | 0x31<<7 | 0x3E,
+ 21566 - 19968: jis0208<<14 | 0x17<<7 | 0x42,
+ 21568 - 19968: jis0208<<14 | 0x31<<7 | 0x3F,
+ 21570 - 19968: jis0208<<14 | 0x2E<<7 | 0x03,
+ 21571 - 19968: jis0212<<14 | 0x13<<7 | 0x4E,
+ 21572 - 19968: jis0212<<14 | 0x13<<7 | 0x4F,
+ 21574 - 19968: jis0208<<14 | 0x29<<7 | 0x51,
+ 21575 - 19968: jis0212<<14 | 0x13<<7 | 0x50,
+ 21576 - 19968: jis0208<<14 | 0x23<<7 | 0x47,
+ 21577 - 19968: jis0208<<14 | 0x17<<7 | 0x41,
+ 21578 - 19968: jis0208<<14 | 0x18<<7 | 0x4F,
+ 21581 - 19968: jis0212<<14 | 0x13<<7 | 0x51,
+ 21582 - 19968: jis0208<<14 | 0x31<<7 | 0x47,
+ 21583 - 19968: jis0212<<14 | 0x13<<7 | 0x52,
+ 21585 - 19968: jis0208<<14 | 0x25<<7 | 0x3C,
+ 21598 - 19968: jis0212<<14 | 0x13<<7 | 0x53,
+ 21599 - 19968: jis0208<<14 | 0x31<<7 | 0x4B,
+ 21602 - 19968: jis0212<<14 | 0x13<<7 | 0x54,
+ 21604 - 19968: jis0212<<14 | 0x13<<7 | 0x55,
+ 21606 - 19968: jis0212<<14 | 0x13<<7 | 0x56,
+ 21607 - 19968: jis0212<<14 | 0x13<<7 | 0x57,
+ 21608 - 19968: jis0208<<14 | 0x1B<<7 | 0x5D,
+ 21609 - 19968: jis0212<<14 | 0x13<<7 | 0x58,
+ 21610 - 19968: jis0208<<14 | 0x1B<<7 | 0x55,
+ 21611 - 19968: jis0212<<14 | 0x13<<7 | 0x59,
+ 21613 - 19968: jis0212<<14 | 0x13<<7 | 0x5A,
+ 21614 - 19968: jis0212<<14 | 0x13<<7 | 0x5B,
+ 21616 - 19968: jis0208<<14 | 0x31<<7 | 0x4E,
+ 21617 - 19968: jis0208<<14 | 0x31<<7 | 0x4C,
+ 21619 - 19968: jis0208<<14 | 0x2B<<7 | 0x02,
+ 21620 - 19968: jis0212<<14 | 0x13<<7 | 0x5C,
+ 21621 - 19968: jis0208<<14 | 0x31<<7 | 0x49,
+ 21622 - 19968: jis0208<<14 | 0x31<<7 | 0x52,
+ 21623 - 19968: jis0208<<14 | 0x31<<7 | 0x4D,
+ 21627 - 19968: jis0208<<14 | 0x31<<7 | 0x50,
+ 21628 - 19968: jis0208<<14 | 0x17<<7 | 0x25,
+ 21629 - 19968: jis0208<<14 | 0x2B<<7 | 0x1E,
+ 21631 - 19968: jis0212<<14 | 0x13<<7 | 0x5D,
+ 21632 - 19968: jis0208<<14 | 0x31<<7 | 0x51,
+ 21633 - 19968: jis0212<<14 | 0x14<<7 | 0x00,
+ 21635 - 19968: jis0212<<14 | 0x14<<7 | 0x01,
+ 21636 - 19968: jis0208<<14 | 0x31<<7 | 0x53,
+ 21637 - 19968: jis0212<<14 | 0x14<<7 | 0x02,
+ 21638 - 19968: jis0208<<14 | 0x31<<7 | 0x55,
+ 21640 - 19968: jis0212<<14 | 0x14<<7 | 0x03,
+ 21641 - 19968: jis0212<<14 | 0x14<<7 | 0x04,
+ 21642 - 19968: jis0208<<14 | 0x58<<7 | 0x35,
+ 21643 - 19968: jis0208<<14 | 0x19<<7 | 0x4F,
+ 21644 - 19968: jis0208<<14 | 0x2E<<7 | 0x21,
+ 21645 - 19968: jis0212<<14 | 0x14<<7 | 0x05,
+ 21646 - 19968: jis0208<<14 | 0x31<<7 | 0x4A,
+ 21647 - 19968: jis0208<<14 | 0x31<<7 | 0x48,
+ 21648 - 19968: jis0208<<14 | 0x31<<7 | 0x54,
+ 21649 - 19968: jis0212<<14 | 0x14<<7 | 0x06,
+ 21650 - 19968: jis0208<<14 | 0x31<<7 | 0x4F,
+ 21653 - 19968: jis0212<<14 | 0x14<<7 | 0x07,
+ 21654 - 19968: jis0212<<14 | 0x14<<7 | 0x08,
+ 21660 - 19968: jis0208<<14 | 0x58<<7 | 0x34,
+ 21663 - 19968: jis0212<<14 | 0x14<<7 | 0x0A,
+ 21665 - 19968: jis0212<<14 | 0x14<<7 | 0x0B,
+ 21666 - 19968: jis0208<<14 | 0x31<<7 | 0x57,
+ 21668 - 19968: jis0208<<14 | 0x32<<7 | 0x02,
+ 21669 - 19968: jis0208<<14 | 0x31<<7 | 0x59,
+ 21670 - 19968: jis0212<<14 | 0x14<<7 | 0x0C,
+ 21671 - 19968: jis0212<<14 | 0x14<<7 | 0x0D,
+ 21672 - 19968: jis0208<<14 | 0x31<<7 | 0x5D,
+ 21673 - 19968: jis0208<<14 | 0x58<<7 | 0x36,
+ 21674 - 19968: jis0212<<14 | 0x14<<7 | 0x0F,
+ 21675 - 19968: jis0208<<14 | 0x32<<7 | 0x00,
+ 21676 - 19968: jis0208<<14 | 0x31<<7 | 0x5A,
+ 21677 - 19968: jis0212<<14 | 0x14<<7 | 0x10,
+ 21678 - 19968: jis0212<<14 | 0x14<<7 | 0x11,
+ 21679 - 19968: jis0208<<14 | 0x32<<7 | 0x1D,
+ 21681 - 19968: jis0212<<14 | 0x14<<7 | 0x12,
+ 21682 - 19968: jis0208<<14 | 0x19<<7 | 0x48,
+ 21683 - 19968: jis0208<<14 | 0x12<<7 | 0x10,
+ 21687 - 19968: jis0212<<14 | 0x14<<7 | 0x13,
+ 21688 - 19968: jis0208<<14 | 0x31<<7 | 0x58,
+ 21689 - 19968: jis0212<<14 | 0x14<<7 | 0x14,
+ 21690 - 19968: jis0212<<14 | 0x14<<7 | 0x15,
+ 21691 - 19968: jis0212<<14 | 0x14<<7 | 0x16,
+ 21692 - 19968: jis0208<<14 | 0x32<<7 | 0x04,
+ 21693 - 19968: jis0208<<14 | 0x0F<<7 | 0x55,
+ 21694 - 19968: jis0208<<14 | 0x32<<7 | 0x03,
+ 21695 - 19968: jis0212<<14 | 0x14<<7 | 0x17,
+ 21696 - 19968: jis0208<<14 | 0x0F<<7 | 0x04,
+ 21697 - 19968: jis0208<<14 | 0x28<<7 | 0x29,
+ 21698 - 19968: jis0208<<14 | 0x32<<7 | 0x01,
+ 21700 - 19968: jis0208<<14 | 0x31<<7 | 0x5B,
+ 21702 - 19968: jis0212<<14 | 0x14<<7 | 0x18,
+ 21703 - 19968: jis0208<<14 | 0x31<<7 | 0x56,
+ 21704 - 19968: jis0208<<14 | 0x31<<7 | 0x5C,
+ 21705 - 19968: jis0208<<14 | 0x19<<7 | 0x27,
+ 21706 - 19968: jis0212<<14 | 0x14<<7 | 0x19,
+ 21709 - 19968: jis0212<<14 | 0x14<<7 | 0x1A,
+ 21710 - 19968: jis0212<<14 | 0x14<<7 | 0x1B,
+ 21720 - 19968: jis0208<<14 | 0x32<<7 | 0x05,
+ 21728 - 19968: jis0212<<14 | 0x14<<7 | 0x1C,
+ 21729 - 19968: jis0208<<14 | 0x0F<<7 | 0x56,
+ 21730 - 19968: jis0208<<14 | 0x32<<7 | 0x0E,
+ 21733 - 19968: jis0208<<14 | 0x32<<7 | 0x06,
+ 21734 - 19968: jis0208<<14 | 0x32<<7 | 0x07,
+ 21736 - 19968: jis0208<<14 | 0x1D<<7 | 0x04,
+ 21737 - 19968: jis0208<<14 | 0x2A<<7 | 0x48,
+ 21738 - 19968: jis0212<<14 | 0x14<<7 | 0x1D,
+ 21740 - 19968: jis0212<<14 | 0x14<<7 | 0x1E,
+ 21741 - 19968: jis0208<<14 | 0x32<<7 | 0x0C,
+ 21742 - 19968: jis0208<<14 | 0x32<<7 | 0x0B,
+ 21743 - 19968: jis0212<<14 | 0x14<<7 | 0x1F,
+ 21746 - 19968: jis0208<<14 | 0x24<<7 | 0x0E,
+ 21750 - 19968: jis0212<<14 | 0x14<<7 | 0x20,
+ 21754 - 19968: jis0208<<14 | 0x32<<7 | 0x0D,
+ 21756 - 19968: jis0212<<14 | 0x14<<7 | 0x21,
+ 21757 - 19968: jis0208<<14 | 0x32<<7 | 0x0A,
+ 21758 - 19968: jis0212<<14 | 0x14<<7 | 0x22,
+ 21759 - 19968: jis0208<<14 | 0x58<<7 | 0x37,
+ 21760 - 19968: jis0212<<14 | 0x14<<7 | 0x24,
+ 21761 - 19968: jis0212<<14 | 0x14<<7 | 0x25,
+ 21764 - 19968: jis0208<<14 | 0x10<<7 | 0x13,
+ 21765 - 19968: jis0212<<14 | 0x14<<7 | 0x26,
+ 21766 - 19968: jis0208<<14 | 0x19<<7 | 0x15,
+ 21767 - 19968: jis0208<<14 | 0x1E<<7 | 0x0F,
+ 21768 - 19968: jis0212<<14 | 0x14<<7 | 0x27,
+ 21769 - 19968: jis0212<<14 | 0x14<<7 | 0x28,
+ 21772 - 19968: jis0212<<14 | 0x14<<7 | 0x29,
+ 21773 - 19968: jis0212<<14 | 0x14<<7 | 0x2A,
+ 21774 - 19968: jis0212<<14 | 0x14<<7 | 0x2B,
+ 21775 - 19968: jis0208<<14 | 0x32<<7 | 0x08,
+ 21776 - 19968: jis0208<<14 | 0x24<<7 | 0x41,
+ 21780 - 19968: jis0208<<14 | 0x32<<7 | 0x09,
+ 21781 - 19968: jis0212<<14 | 0x14<<7 | 0x2C,
+ 21782 - 19968: jis0208<<14 | 0x0F<<7 | 0x01,
+ 21802 - 19968: jis0212<<14 | 0x14<<7 | 0x2D,
+ 21803 - 19968: jis0212<<14 | 0x14<<7 | 0x2E,
+ 21806 - 19968: jis0208<<14 | 0x32<<7 | 0x13,
+ 21807 - 19968: jis0208<<14 | 0x2C<<7 | 0x02,
+ 21809 - 19968: jis0208<<14 | 0x1D<<7 | 0x06,
+ 21810 - 19968: jis0212<<14 | 0x14<<7 | 0x2F,
+ 21811 - 19968: jis0208<<14 | 0x32<<7 | 0x19,
+ 21813 - 19968: jis0212<<14 | 0x14<<7 | 0x30,
+ 21814 - 19968: jis0212<<14 | 0x14<<7 | 0x31,
+ 21816 - 19968: jis0208<<14 | 0x32<<7 | 0x18,
+ 21817 - 19968: jis0208<<14 | 0x32<<7 | 0x0F,
+ 21819 - 19968: jis0212<<14 | 0x14<<7 | 0x32,
+ 21820 - 19968: jis0212<<14 | 0x14<<7 | 0x33,
+ 21821 - 19968: jis0212<<14 | 0x14<<7 | 0x34,
+ 21822 - 19968: jis0208<<14 | 0x21<<7 | 0x22,
+ 21824 - 19968: jis0208<<14 | 0x32<<7 | 0x10,
+ 21825 - 19968: jis0212<<14 | 0x14<<7 | 0x35,
+ 21828 - 19968: jis0208<<14 | 0x21<<7 | 0x4E,
+ 21829 - 19968: jis0208<<14 | 0x32<<7 | 0x15,
+ 21830 - 19968: jis0208<<14 | 0x1D<<7 | 0x05,
+ 21831 - 19968: jis0212<<14 | 0x14<<7 | 0x36,
+ 21833 - 19968: jis0212<<14 | 0x14<<7 | 0x37,
+ 21834 - 19968: jis0212<<14 | 0x14<<7 | 0x38,
+ 21836 - 19968: jis0208<<14 | 0x32<<7 | 0x12,
+ 21837 - 19968: jis0212<<14 | 0x14<<7 | 0x39,
+ 21839 - 19968: jis0208<<14 | 0x2B<<7 | 0x43,
+ 21840 - 19968: jis0212<<14 | 0x14<<7 | 0x3A,
+ 21841 - 19968: jis0212<<14 | 0x14<<7 | 0x3B,
+ 21843 - 19968: jis0208<<14 | 0x16<<7 | 0x1B,
+ 21846 - 19968: jis0208<<14 | 0x32<<7 | 0x16,
+ 21847 - 19968: jis0208<<14 | 0x32<<7 | 0x17,
+ 21848 - 19968: jis0212<<14 | 0x14<<7 | 0x3C,
+ 21850 - 19968: jis0212<<14 | 0x14<<7 | 0x3D,
+ 21851 - 19968: jis0212<<14 | 0x14<<7 | 0x3E,
+ 21852 - 19968: jis0208<<14 | 0x32<<7 | 0x14,
+ 21853 - 19968: jis0208<<14 | 0x32<<7 | 0x1A,
+ 21854 - 19968: jis0212<<14 | 0x14<<7 | 0x3F,
+ 21856 - 19968: jis0212<<14 | 0x14<<7 | 0x40,
+ 21857 - 19968: jis0212<<14 | 0x14<<7 | 0x41,
+ 21859 - 19968: jis0208<<14 | 0x32<<7 | 0x11,
+ 21860 - 19968: jis0212<<14 | 0x14<<7 | 0x42,
+ 21862 - 19968: jis0212<<14 | 0x14<<7 | 0x43,
+ 21883 - 19968: jis0208<<14 | 0x32<<7 | 0x20,
+ 21884 - 19968: jis0208<<14 | 0x32<<7 | 0x25,
+ 21886 - 19968: jis0208<<14 | 0x32<<7 | 0x21,
+ 21887 - 19968: jis0212<<14 | 0x14<<7 | 0x44,
+ 21888 - 19968: jis0208<<14 | 0x32<<7 | 0x1C,
+ 21889 - 19968: jis0212<<14 | 0x14<<7 | 0x45,
+ 21890 - 19968: jis0212<<14 | 0x14<<7 | 0x46,
+ 21891 - 19968: jis0208<<14 | 0x32<<7 | 0x26,
+ 21892 - 19968: jis0208<<14 | 0x20<<7 | 0x10,
+ 21894 - 19968: jis0208<<14 | 0x58<<7 | 0x38,
+ 21895 - 19968: jis0208<<14 | 0x32<<7 | 0x28,
+ 21896 - 19968: jis0212<<14 | 0x14<<7 | 0x48,
+ 21897 - 19968: jis0208<<14 | 0x18<<7 | 0x01,
+ 21898 - 19968: jis0208<<14 | 0x32<<7 | 0x1E,
+ 21899 - 19968: jis0208<<14 | 0x22<<7 | 0x5C,
+ 21902 - 19968: jis0212<<14 | 0x14<<7 | 0x49,
+ 21903 - 19968: jis0212<<14 | 0x14<<7 | 0x4A,
+ 21905 - 19968: jis0212<<14 | 0x14<<7 | 0x4B,
+ 21906 - 19968: jis0212<<14 | 0x14<<7 | 0x4C,
+ 21907 - 19968: jis0212<<14 | 0x14<<7 | 0x4D,
+ 21908 - 19968: jis0212<<14 | 0x14<<7 | 0x4E,
+ 21911 - 19968: jis0212<<14 | 0x14<<7 | 0x4F,
+ 21912 - 19968: jis0208<<14 | 0x32<<7 | 0x22,
+ 21913 - 19968: jis0208<<14 | 0x32<<7 | 0x1B,
+ 21914 - 19968: jis0208<<14 | 0x13<<7 | 0x0C,
+ 21916 - 19968: jis0208<<14 | 0x13<<7 | 0x4D,
+ 21917 - 19968: jis0208<<14 | 0x12<<7 | 0x44,
+ 21918 - 19968: jis0208<<14 | 0x32<<7 | 0x23,
+ 21919 - 19968: jis0208<<14 | 0x32<<7 | 0x1F,
+ 21923 - 19968: jis0212<<14 | 0x14<<7 | 0x50,
+ 21924 - 19968: jis0212<<14 | 0x14<<7 | 0x51,
+ 21927 - 19968: jis0208<<14 | 0x16<<7 | 0x55,
+ 21928 - 19968: jis0208<<14 | 0x32<<7 | 0x29,
+ 21929 - 19968: jis0208<<14 | 0x32<<7 | 0x27,
+ 21930 - 19968: jis0208<<14 | 0x20<<7 | 0x32,
+ 21931 - 19968: jis0208<<14 | 0x14<<7 | 0x29,
+ 21932 - 19968: jis0208<<14 | 0x15<<7 | 0x0B,
+ 21933 - 19968: jis0212<<14 | 0x14<<7 | 0x52,
+ 21934 - 19968: jis0208<<14 | 0x32<<7 | 0x24,
+ 21936 - 19968: jis0208<<14 | 0x15<<7 | 0x53,
+ 21938 - 19968: jis0212<<14 | 0x14<<7 | 0x53,
+ 21942 - 19968: jis0208<<14 | 0x10<<7 | 0x23,
+ 21951 - 19968: jis0212<<14 | 0x14<<7 | 0x54,
+ 21953 - 19968: jis0212<<14 | 0x14<<7 | 0x55,
+ 21955 - 19968: jis0212<<14 | 0x14<<7 | 0x56,
+ 21956 - 19968: jis0208<<14 | 0x32<<7 | 0x2D,
+ 21957 - 19968: jis0208<<14 | 0x32<<7 | 0x2B,
+ 21958 - 19968: jis0212<<14 | 0x14<<7 | 0x57,
+ 21959 - 19968: jis0208<<14 | 0x33<<7 | 0x06,
+ 21961 - 19968: jis0212<<14 | 0x14<<7 | 0x58,
+ 21963 - 19968: jis0212<<14 | 0x14<<7 | 0x59,
+ 21964 - 19968: jis0212<<14 | 0x14<<7 | 0x5A,
+ 21966 - 19968: jis0212<<14 | 0x14<<7 | 0x5B,
+ 21969 - 19968: jis0212<<14 | 0x14<<7 | 0x5C,
+ 21970 - 19968: jis0212<<14 | 0x14<<7 | 0x5D,
+ 21971 - 19968: jis0212<<14 | 0x15<<7 | 0x00,
+ 21972 - 19968: jis0208<<14 | 0x32<<7 | 0x30,
+ 21975 - 19968: jis0212<<14 | 0x15<<7 | 0x01,
+ 21976 - 19968: jis0212<<14 | 0x15<<7 | 0x02,
+ 21978 - 19968: jis0208<<14 | 0x32<<7 | 0x2A,
+ 21979 - 19968: jis0212<<14 | 0x15<<7 | 0x03,
+ 21980 - 19968: jis0208<<14 | 0x32<<7 | 0x2E,
+ 21982 - 19968: jis0212<<14 | 0x15<<7 | 0x04,
+ 21983 - 19968: jis0208<<14 | 0x32<<7 | 0x2C,
+ 21986 - 19968: jis0212<<14 | 0x15<<7 | 0x05,
+ 21987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2B,
+ 21988 - 19968: jis0208<<14 | 0x32<<7 | 0x2F,
+ 21993 - 19968: jis0212<<14 | 0x15<<7 | 0x06,
+ 22006 - 19968: jis0212<<14 | 0x15<<7 | 0x07,
+ 22007 - 19968: jis0208<<14 | 0x32<<7 | 0x32,
+ 22009 - 19968: jis0208<<14 | 0x32<<7 | 0x37,
+ 22013 - 19968: jis0208<<14 | 0x32<<7 | 0x35,
+ 22014 - 19968: jis0208<<14 | 0x32<<7 | 0x34,
+ 22015 - 19968: jis0212<<14 | 0x15<<7 | 0x08,
+ 22021 - 19968: jis0212<<14 | 0x15<<7 | 0x09,
+ 22022 - 19968: jis0208<<14 | 0x22<<7 | 0x11,
+ 22024 - 19968: jis0212<<14 | 0x15<<7 | 0x0A,
+ 22025 - 19968: jis0208<<14 | 0x11<<7 | 0x24,
+ 22026 - 19968: jis0212<<14 | 0x15<<7 | 0x0B,
+ 22029 - 19968: jis0212<<14 | 0x15<<7 | 0x0C,
+ 22030 - 19968: jis0212<<14 | 0x15<<7 | 0x0D,
+ 22031 - 19968: jis0212<<14 | 0x15<<7 | 0x0E,
+ 22032 - 19968: jis0212<<14 | 0x15<<7 | 0x0F,
+ 22033 - 19968: jis0212<<14 | 0x15<<7 | 0x10,
+ 22034 - 19968: jis0212<<14 | 0x15<<7 | 0x11,
+ 22036 - 19968: jis0208<<14 | 0x32<<7 | 0x31,
+ 22038 - 19968: jis0208<<14 | 0x32<<7 | 0x33,
+ 22039 - 19968: jis0208<<14 | 0x1D<<7 | 0x07,
+ 22040 - 19968: jis0208<<14 | 0x10<<7 | 0x12,
+ 22041 - 19968: jis0212<<14 | 0x15<<7 | 0x12,
+ 22043 - 19968: jis0208<<14 | 0x32<<7 | 0x36,
+ 22057 - 19968: jis0208<<14 | 0x11<<7 | 0x3D,
+ 22060 - 19968: jis0212<<14 | 0x15<<7 | 0x13,
+ 22063 - 19968: jis0208<<14 | 0x32<<7 | 0x41,
+ 22064 - 19968: jis0212<<14 | 0x15<<7 | 0x14,
+ 22065 - 19968: jis0208<<14 | 0x1D<<7 | 0x5B,
+ 22066 - 19968: jis0208<<14 | 0x32<<7 | 0x3D,
+ 22067 - 19968: jis0212<<14 | 0x15<<7 | 0x15,
+ 22068 - 19968: jis0208<<14 | 0x32<<7 | 0x3B,
+ 22069 - 19968: jis0212<<14 | 0x15<<7 | 0x16,
+ 22070 - 19968: jis0208<<14 | 0x32<<7 | 0x3C,
+ 22071 - 19968: jis0212<<14 | 0x15<<7 | 0x17,
+ 22072 - 19968: jis0208<<14 | 0x32<<7 | 0x3E,
+ 22073 - 19968: jis0212<<14 | 0x15<<7 | 0x18,
+ 22075 - 19968: jis0212<<14 | 0x15<<7 | 0x19,
+ 22076 - 19968: jis0212<<14 | 0x15<<7 | 0x1A,
+ 22077 - 19968: jis0212<<14 | 0x15<<7 | 0x1B,
+ 22079 - 19968: jis0212<<14 | 0x15<<7 | 0x1C,
+ 22080 - 19968: jis0212<<14 | 0x15<<7 | 0x1D,
+ 22081 - 19968: jis0212<<14 | 0x15<<7 | 0x1E,
+ 22082 - 19968: jis0208<<14 | 0x10<<7 | 0x1C,
+ 22083 - 19968: jis0212<<14 | 0x15<<7 | 0x1F,
+ 22084 - 19968: jis0212<<14 | 0x15<<7 | 0x20,
+ 22086 - 19968: jis0212<<14 | 0x15<<7 | 0x21,
+ 22089 - 19968: jis0212<<14 | 0x15<<7 | 0x22,
+ 22091 - 19968: jis0212<<14 | 0x15<<7 | 0x23,
+ 22092 - 19968: jis0208<<14 | 0x20<<7 | 0x18,
+ 22093 - 19968: jis0212<<14 | 0x15<<7 | 0x24,
+ 22094 - 19968: jis0208<<14 | 0x32<<7 | 0x38,
+ 22095 - 19968: jis0212<<14 | 0x15<<7 | 0x25,
+ 22096 - 19968: jis0208<<14 | 0x32<<7 | 0x39,
+ 22100 - 19968: jis0212<<14 | 0x15<<7 | 0x26,
+ 22107 - 19968: jis0208<<14 | 0x12<<7 | 0x59,
+ 22110 - 19968: jis0212<<14 | 0x15<<7 | 0x27,
+ 22112 - 19968: jis0212<<14 | 0x15<<7 | 0x28,
+ 22113 - 19968: jis0212<<14 | 0x15<<7 | 0x29,
+ 22114 - 19968: jis0212<<14 | 0x15<<7 | 0x2A,
+ 22115 - 19968: jis0212<<14 | 0x15<<7 | 0x2B,
+ 22116 - 19968: jis0208<<14 | 0x32<<7 | 0x40,
+ 22118 - 19968: jis0212<<14 | 0x15<<7 | 0x2C,
+ 22120 - 19968: jis0208<<14 | 0x13<<7 | 0x4E,
+ 22121 - 19968: jis0212<<14 | 0x15<<7 | 0x2D,
+ 22122 - 19968: jis0208<<14 | 0x32<<7 | 0x43,
+ 22123 - 19968: jis0208<<14 | 0x32<<7 | 0x3F,
+ 22124 - 19968: jis0208<<14 | 0x32<<7 | 0x42,
+ 22125 - 19968: jis0212<<14 | 0x15<<7 | 0x2E,
+ 22127 - 19968: jis0212<<14 | 0x15<<7 | 0x2F,
+ 22129 - 19968: jis0212<<14 | 0x15<<7 | 0x30,
+ 22130 - 19968: jis0212<<14 | 0x15<<7 | 0x31,
+ 22132 - 19968: jis0208<<14 | 0x29<<7 | 0x0D,
+ 22133 - 19968: jis0212<<14 | 0x15<<7 | 0x32,
+ 22136 - 19968: jis0208<<14 | 0x25<<7 | 0x34,
+ 22138 - 19968: jis0208<<14 | 0x27<<7 | 0x17,
+ 22144 - 19968: jis0208<<14 | 0x32<<7 | 0x45,
+ 22148 - 19968: jis0212<<14 | 0x15<<7 | 0x33,
+ 22149 - 19968: jis0212<<14 | 0x15<<7 | 0x34,
+ 22150 - 19968: jis0208<<14 | 0x32<<7 | 0x44,
+ 22151 - 19968: jis0208<<14 | 0x12<<7 | 0x24,
+ 22152 - 19968: jis0212<<14 | 0x15<<7 | 0x35,
+ 22154 - 19968: jis0208<<14 | 0x32<<7 | 0x46,
+ 22155 - 19968: jis0212<<14 | 0x15<<7 | 0x36,
+ 22156 - 19968: jis0212<<14 | 0x15<<7 | 0x37,
+ 22159 - 19968: jis0208<<14 | 0x32<<7 | 0x49,
+ 22164 - 19968: jis0208<<14 | 0x32<<7 | 0x48,
+ 22165 - 19968: jis0212<<14 | 0x15<<7 | 0x38,
+ 22169 - 19968: jis0212<<14 | 0x15<<7 | 0x39,
+ 22170 - 19968: jis0212<<14 | 0x15<<7 | 0x3A,
+ 22173 - 19968: jis0212<<14 | 0x15<<7 | 0x3B,
+ 22174 - 19968: jis0212<<14 | 0x15<<7 | 0x3C,
+ 22175 - 19968: jis0212<<14 | 0x15<<7 | 0x3D,
+ 22176 - 19968: jis0208<<14 | 0x32<<7 | 0x47,
+ 22178 - 19968: jis0208<<14 | 0x26<<7 | 0x18,
+ 22181 - 19968: jis0208<<14 | 0x32<<7 | 0x4A,
+ 22182 - 19968: jis0212<<14 | 0x15<<7 | 0x3E,
+ 22183 - 19968: jis0212<<14 | 0x15<<7 | 0x3F,
+ 22184 - 19968: jis0212<<14 | 0x15<<7 | 0x40,
+ 22185 - 19968: jis0212<<14 | 0x15<<7 | 0x41,
+ 22187 - 19968: jis0212<<14 | 0x15<<7 | 0x42,
+ 22188 - 19968: jis0212<<14 | 0x15<<7 | 0x43,
+ 22189 - 19968: jis0212<<14 | 0x15<<7 | 0x44,
+ 22190 - 19968: jis0208<<14 | 0x32<<7 | 0x4B,
+ 22193 - 19968: jis0212<<14 | 0x15<<7 | 0x45,
+ 22195 - 19968: jis0212<<14 | 0x15<<7 | 0x46,
+ 22196 - 19968: jis0208<<14 | 0x32<<7 | 0x4D,
+ 22198 - 19968: jis0208<<14 | 0x32<<7 | 0x4C,
+ 22199 - 19968: jis0212<<14 | 0x15<<7 | 0x47,
+ 22204 - 19968: jis0208<<14 | 0x32<<7 | 0x4F,
+ 22206 - 19968: jis0212<<14 | 0x15<<7 | 0x48,
+ 22208 - 19968: jis0208<<14 | 0x32<<7 | 0x52,
+ 22209 - 19968: jis0208<<14 | 0x32<<7 | 0x50,
+ 22210 - 19968: jis0208<<14 | 0x32<<7 | 0x4E,
+ 22211 - 19968: jis0208<<14 | 0x32<<7 | 0x51,
+ 22213 - 19968: jis0212<<14 | 0x15<<7 | 0x49,
+ 22216 - 19968: jis0208<<14 | 0x32<<7 | 0x53,
+ 22217 - 19968: jis0212<<14 | 0x15<<7 | 0x4A,
+ 22218 - 19968: jis0212<<14 | 0x15<<7 | 0x4B,
+ 22219 - 19968: jis0212<<14 | 0x15<<7 | 0x4C,
+ 22220 - 19968: jis0212<<14 | 0x15<<7 | 0x4F,
+ 22221 - 19968: jis0212<<14 | 0x15<<7 | 0x50,
+ 22222 - 19968: jis0208<<14 | 0x32<<7 | 0x54,
+ 22223 - 19968: jis0212<<14 | 0x15<<7 | 0x4D,
+ 22224 - 19968: jis0212<<14 | 0x15<<7 | 0x4E,
+ 22225 - 19968: jis0208<<14 | 0x32<<7 | 0x55,
+ 22227 - 19968: jis0208<<14 | 0x32<<7 | 0x56,
+ 22231 - 19968: jis0208<<14 | 0x32<<7 | 0x57,
+ 22232 - 19968: jis0208<<14 | 0x30<<7 | 0x24,
+ 22233 - 19968: jis0212<<14 | 0x15<<7 | 0x51,
+ 22234 - 19968: jis0208<<14 | 0x1B<<7 | 0x5B,
+ 22235 - 19968: jis0208<<14 | 0x1A<<7 | 0x2C,
+ 22236 - 19968: jis0212<<14 | 0x15<<7 | 0x52,
+ 22237 - 19968: jis0212<<14 | 0x15<<7 | 0x53,
+ 22238 - 19968: jis0208<<14 | 0x11<<7 | 0x52,
+ 22239 - 19968: jis0212<<14 | 0x15<<7 | 0x54,
+ 22240 - 19968: jis0208<<14 | 0x0F<<7 | 0x57,
+ 22241 - 19968: jis0212<<14 | 0x15<<7 | 0x55,
+ 22243 - 19968: jis0208<<14 | 0x22<<7 | 0x23,
+ 22244 - 19968: jis0212<<14 | 0x15<<7 | 0x56,
+ 22245 - 19968: jis0212<<14 | 0x15<<7 | 0x57,
+ 22246 - 19968: jis0212<<14 | 0x15<<7 | 0x58,
+ 22247 - 19968: jis0212<<14 | 0x15<<7 | 0x59,
+ 22248 - 19968: jis0212<<14 | 0x15<<7 | 0x5A,
+ 22251 - 19968: jis0212<<14 | 0x15<<7 | 0x5C,
+ 22253 - 19968: jis0212<<14 | 0x15<<7 | 0x5D,
+ 22254 - 19968: jis0208<<14 | 0x32<<7 | 0x58,
+ 22256 - 19968: jis0208<<14 | 0x19<<7 | 0x03,
+ 22257 - 19968: jis0212<<14 | 0x15<<7 | 0x5B,
+ 22258 - 19968: jis0208<<14 | 0x0F<<7 | 0x2E,
+ 22259 - 19968: jis0208<<14 | 0x1E<<7 | 0x3D,
+ 22262 - 19968: jis0212<<14 | 0x16<<7 | 0x00,
+ 22263 - 19968: jis0212<<14 | 0x16<<7 | 0x01,
+ 22265 - 19968: jis0208<<14 | 0x32<<7 | 0x59,
+ 22266 - 19968: jis0208<<14 | 0x17<<7 | 0x26,
+ 22269 - 19968: jis0208<<14 | 0x18<<7 | 0x50,
+ 22271 - 19968: jis0208<<14 | 0x32<<7 | 0x5B,
+ 22272 - 19968: jis0208<<14 | 0x32<<7 | 0x5A,
+ 22273 - 19968: jis0212<<14 | 0x16<<7 | 0x02,
+ 22274 - 19968: jis0212<<14 | 0x16<<7 | 0x03,
+ 22275 - 19968: jis0208<<14 | 0x29<<7 | 0x3F,
+ 22276 - 19968: jis0208<<14 | 0x32<<7 | 0x5C,
+ 22279 - 19968: jis0212<<14 | 0x16<<7 | 0x04,
+ 22280 - 19968: jis0208<<14 | 0x33<<7 | 0x00,
+ 22281 - 19968: jis0208<<14 | 0x32<<7 | 0x5D,
+ 22282 - 19968: jis0212<<14 | 0x16<<7 | 0x05,
+ 22283 - 19968: jis0208<<14 | 0x33<<7 | 0x01,
+ 22284 - 19968: jis0212<<14 | 0x16<<7 | 0x06,
+ 22285 - 19968: jis0208<<14 | 0x33<<7 | 0x02,
+ 22287 - 19968: jis0208<<14 | 0x16<<7 | 0x56,
+ 22289 - 19968: jis0212<<14 | 0x16<<7 | 0x07,
+ 22290 - 19968: jis0208<<14 | 0x10<<7 | 0x3F,
+ 22291 - 19968: jis0208<<14 | 0x33<<7 | 0x03,
+ 22293 - 19968: jis0212<<14 | 0x16<<7 | 0x08,
+ 22294 - 19968: jis0208<<14 | 0x33<<7 | 0x05,
+ 22296 - 19968: jis0208<<14 | 0x33<<7 | 0x04,
+ 22298 - 19968: jis0212<<14 | 0x16<<7 | 0x09,
+ 22299 - 19968: jis0212<<14 | 0x16<<7 | 0x0A,
+ 22300 - 19968: jis0208<<14 | 0x33<<7 | 0x07,
+ 22301 - 19968: jis0212<<14 | 0x16<<7 | 0x0B,
+ 22303 - 19968: jis0208<<14 | 0x24<<7 | 0x39,
+ 22304 - 19968: jis0212<<14 | 0x16<<7 | 0x0C,
+ 22306 - 19968: jis0212<<14 | 0x16<<7 | 0x0D,
+ 22307 - 19968: jis0212<<14 | 0x16<<7 | 0x0E,
+ 22308 - 19968: jis0212<<14 | 0x16<<7 | 0x0F,
+ 22309 - 19968: jis0212<<14 | 0x16<<7 | 0x10,
+ 22310 - 19968: jis0208<<14 | 0x33<<7 | 0x08,
+ 22311 - 19968: jis0208<<14 | 0x0F<<7 | 0x14,
+ 22312 - 19968: jis0208<<14 | 0x19<<7 | 0x3E,
+ 22313 - 19968: jis0212<<14 | 0x16<<7 | 0x11,
+ 22314 - 19968: jis0212<<14 | 0x16<<7 | 0x12,
+ 22316 - 19968: jis0212<<14 | 0x16<<7 | 0x13,
+ 22317 - 19968: jis0208<<14 | 0x16<<7 | 0x1C,
+ 22318 - 19968: jis0212<<14 | 0x16<<7 | 0x14,
+ 22319 - 19968: jis0212<<14 | 0x16<<7 | 0x15,
+ 22320 - 19968: jis0208<<14 | 0x22<<7 | 0x2E,
+ 22323 - 19968: jis0212<<14 | 0x16<<7 | 0x16,
+ 22324 - 19968: jis0212<<14 | 0x16<<7 | 0x17,
+ 22327 - 19968: jis0208<<14 | 0x33<<7 | 0x09,
+ 22328 - 19968: jis0208<<14 | 0x33<<7 | 0x0A,
+ 22331 - 19968: jis0208<<14 | 0x33<<7 | 0x0C,
+ 22333 - 19968: jis0212<<14 | 0x16<<7 | 0x18,
+ 22334 - 19968: jis0212<<14 | 0x16<<7 | 0x19,
+ 22335 - 19968: jis0212<<14 | 0x16<<7 | 0x1A,
+ 22336 - 19968: jis0208<<14 | 0x33<<7 | 0x0D,
+ 22338 - 19968: jis0208<<14 | 0x19<<7 | 0x43,
+ 22341 - 19968: jis0212<<14 | 0x16<<7 | 0x1B,
+ 22342 - 19968: jis0212<<14 | 0x16<<7 | 0x1C,
+ 22343 - 19968: jis0208<<14 | 0x15<<7 | 0x30,
+ 22346 - 19968: jis0208<<14 | 0x2A<<7 | 0x16,
+ 22348 - 19968: jis0212<<14 | 0x16<<7 | 0x1D,
+ 22349 - 19968: jis0212<<14 | 0x16<<7 | 0x1E,
+ 22350 - 19968: jis0208<<14 | 0x33<<7 | 0x0B,
+ 22351 - 19968: jis0208<<14 | 0x33<<7 | 0x0E,
+ 22352 - 19968: jis0208<<14 | 0x19<<7 | 0x20,
+ 22353 - 19968: jis0208<<14 | 0x18<<7 | 0x02,
+ 22354 - 19968: jis0212<<14 | 0x16<<7 | 0x1F,
+ 22361 - 19968: jis0208<<14 | 0x58<<7 | 0x39,
+ 22369 - 19968: jis0208<<14 | 0x33<<7 | 0x12,
+ 22370 - 19968: jis0212<<14 | 0x16<<7 | 0x20,
+ 22372 - 19968: jis0208<<14 | 0x19<<7 | 0x04,
+ 22373 - 19968: jis0208<<14 | 0x58<<7 | 0x3A,
+ 22374 - 19968: jis0208<<14 | 0x22<<7 | 0x12,
+ 22375 - 19968: jis0212<<14 | 0x16<<7 | 0x22,
+ 22376 - 19968: jis0212<<14 | 0x16<<7 | 0x23,
+ 22377 - 19968: jis0208<<14 | 0x33<<7 | 0x0F,
+ 22378 - 19968: jis0208<<14 | 0x23<<7 | 0x39,
+ 22379 - 19968: jis0212<<14 | 0x16<<7 | 0x24,
+ 22381 - 19968: jis0212<<14 | 0x16<<7 | 0x25,
+ 22382 - 19968: jis0212<<14 | 0x16<<7 | 0x26,
+ 22383 - 19968: jis0212<<14 | 0x16<<7 | 0x27,
+ 22384 - 19968: jis0212<<14 | 0x16<<7 | 0x28,
+ 22385 - 19968: jis0212<<14 | 0x16<<7 | 0x29,
+ 22387 - 19968: jis0212<<14 | 0x16<<7 | 0x2A,
+ 22388 - 19968: jis0212<<14 | 0x16<<7 | 0x2B,
+ 22389 - 19968: jis0212<<14 | 0x16<<7 | 0x2C,
+ 22391 - 19968: jis0212<<14 | 0x16<<7 | 0x2D,
+ 22393 - 19968: jis0212<<14 | 0x16<<7 | 0x2E,
+ 22394 - 19968: jis0212<<14 | 0x16<<7 | 0x2F,
+ 22395 - 19968: jis0212<<14 | 0x16<<7 | 0x30,
+ 22396 - 19968: jis0212<<14 | 0x16<<7 | 0x31,
+ 22398 - 19968: jis0212<<14 | 0x16<<7 | 0x32,
+ 22399 - 19968: jis0208<<14 | 0x33<<7 | 0x13,
+ 22401 - 19968: jis0212<<14 | 0x16<<7 | 0x33,
+ 22402 - 19968: jis0208<<14 | 0x1E<<7 | 0x41,
+ 22403 - 19968: jis0212<<14 | 0x16<<7 | 0x34,
+ 22408 - 19968: jis0208<<14 | 0x33<<7 | 0x11,
+ 22409 - 19968: jis0208<<14 | 0x33<<7 | 0x14,
+ 22411 - 19968: jis0208<<14 | 0x16<<7 | 0x1E,
+ 22412 - 19968: jis0212<<14 | 0x16<<7 | 0x35,
+ 22419 - 19968: jis0208<<14 | 0x33<<7 | 0x15,
+ 22420 - 19968: jis0212<<14 | 0x16<<7 | 0x36,
+ 22421 - 19968: jis0212<<14 | 0x16<<7 | 0x3F,
+ 22423 - 19968: jis0212<<14 | 0x16<<7 | 0x37,
+ 22425 - 19968: jis0212<<14 | 0x16<<7 | 0x38,
+ 22426 - 19968: jis0212<<14 | 0x16<<7 | 0x39,
+ 22428 - 19968: jis0212<<14 | 0x16<<7 | 0x3A,
+ 22429 - 19968: jis0212<<14 | 0x16<<7 | 0x3B,
+ 22430 - 19968: jis0212<<14 | 0x16<<7 | 0x3C,
+ 22431 - 19968: jis0212<<14 | 0x16<<7 | 0x3D,
+ 22432 - 19968: jis0208<<14 | 0x33<<7 | 0x16,
+ 22433 - 19968: jis0212<<14 | 0x16<<7 | 0x3E,
+ 22434 - 19968: jis0208<<14 | 0x18<<7 | 0x03,
+ 22435 - 19968: jis0208<<14 | 0x12<<7 | 0x1F,
+ 22436 - 19968: jis0208<<14 | 0x33<<7 | 0x18,
+ 22439 - 19968: jis0212<<14 | 0x16<<7 | 0x40,
+ 22440 - 19968: jis0212<<14 | 0x16<<7 | 0x41,
+ 22441 - 19968: jis0212<<14 | 0x16<<7 | 0x42,
+ 22442 - 19968: jis0208<<14 | 0x33<<7 | 0x19,
+ 22444 - 19968: jis0208<<14 | 0x58<<7 | 0x3B,
+ 22448 - 19968: jis0208<<14 | 0x33<<7 | 0x1A,
+ 22451 - 19968: jis0208<<14 | 0x33<<7 | 0x17,
+ 22456 - 19968: jis0212<<14 | 0x16<<7 | 0x44,
+ 22461 - 19968: jis0212<<14 | 0x16<<7 | 0x45,
+ 22464 - 19968: jis0208<<14 | 0x33<<7 | 0x10,
+ 22467 - 19968: jis0208<<14 | 0x33<<7 | 0x1B,
+ 22470 - 19968: jis0208<<14 | 0x33<<7 | 0x1C,
+ 22471 - 19968: jis0208<<14 | 0x58<<7 | 0x3D,
+ 22472 - 19968: jis0208<<14 | 0x58<<7 | 0x3C,
+ 22475 - 19968: jis0208<<14 | 0x2A<<7 | 0x43,
+ 22476 - 19968: jis0212<<14 | 0x16<<7 | 0x48,
+ 22478 - 19968: jis0208<<14 | 0x1D<<7 | 0x4A,
+ 22479 - 19968: jis0212<<14 | 0x16<<7 | 0x49,
+ 22482 - 19968: jis0208<<14 | 0x33<<7 | 0x1E,
+ 22483 - 19968: jis0208<<14 | 0x33<<7 | 0x1F,
+ 22484 - 19968: jis0208<<14 | 0x33<<7 | 0x1D,
+ 22485 - 19968: jis0212<<14 | 0x16<<7 | 0x4A,
+ 22486 - 19968: jis0208<<14 | 0x33<<7 | 0x21,
+ 22492 - 19968: jis0208<<14 | 0x26<<7 | 0x17,
+ 22493 - 19968: jis0212<<14 | 0x16<<7 | 0x4B,
+ 22494 - 19968: jis0212<<14 | 0x16<<7 | 0x4C,
+ 22495 - 19968: jis0208<<14 | 0x0F<<7 | 0x47,
+ 22496 - 19968: jis0208<<14 | 0x28<<7 | 0x35,
+ 22497 - 19968: jis0212<<14 | 0x16<<7 | 0x5D,
+ 22499 - 19968: jis0208<<14 | 0x33<<7 | 0x22,
+ 22500 - 19968: jis0212<<14 | 0x16<<7 | 0x4D,
+ 22502 - 19968: jis0212<<14 | 0x16<<7 | 0x4E,
+ 22503 - 19968: jis0212<<14 | 0x16<<7 | 0x4F,
+ 22505 - 19968: jis0212<<14 | 0x16<<7 | 0x50,
+ 22509 - 19968: jis0212<<14 | 0x16<<7 | 0x51,
+ 22512 - 19968: jis0212<<14 | 0x16<<7 | 0x52,
+ 22516 - 19968: jis0208<<14 | 0x1D<<7 | 0x5C,
+ 22517 - 19968: jis0212<<14 | 0x16<<7 | 0x53,
+ 22518 - 19968: jis0212<<14 | 0x16<<7 | 0x54,
+ 22519 - 19968: jis0208<<14 | 0x1B<<7 | 0x18,
+ 22520 - 19968: jis0212<<14 | 0x16<<7 | 0x55,
+ 22521 - 19968: jis0208<<14 | 0x26<<7 | 0x3C,
+ 22522 - 19968: jis0208<<14 | 0x13<<7 | 0x4F,
+ 22524 - 19968: jis0208<<14 | 0x19<<7 | 0x4A,
+ 22525 - 19968: jis0212<<14 | 0x16<<7 | 0x56,
+ 22526 - 19968: jis0212<<14 | 0x16<<7 | 0x57,
+ 22527 - 19968: jis0212<<14 | 0x16<<7 | 0x58,
+ 22528 - 19968: jis0208<<14 | 0x2A<<7 | 0x38,
+ 22530 - 19968: jis0208<<14 | 0x25<<7 | 0x11,
+ 22531 - 19968: jis0212<<14 | 0x16<<7 | 0x59,
+ 22532 - 19968: jis0212<<14 | 0x16<<7 | 0x5A,
+ 22533 - 19968: jis0208<<14 | 0x16<<7 | 0x57,
+ 22534 - 19968: jis0208<<14 | 0x21<<7 | 0x2E,
+ 22536 - 19968: jis0212<<14 | 0x16<<7 | 0x5B,
+ 22537 - 19968: jis0212<<14 | 0x16<<7 | 0x5C,
+ 22538 - 19968: jis0208<<14 | 0x33<<7 | 0x20,
+ 22539 - 19968: jis0208<<14 | 0x33<<7 | 0x23,
+ 22540 - 19968: jis0212<<14 | 0x17<<7 | 0x00,
+ 22541 - 19968: jis0212<<14 | 0x17<<7 | 0x01,
+ 22549 - 19968: jis0208<<14 | 0x21<<7 | 0x23,
+ 22553 - 19968: jis0208<<14 | 0x33<<7 | 0x24,
+ 22555 - 19968: jis0212<<14 | 0x17<<7 | 0x02,
+ 22557 - 19968: jis0208<<14 | 0x33<<7 | 0x25,
+ 22558 - 19968: jis0212<<14 | 0x17<<7 | 0x03,
+ 22559 - 19968: jis0212<<14 | 0x17<<7 | 0x04,
+ 22560 - 19968: jis0212<<14 | 0x17<<7 | 0x05,
+ 22561 - 19968: jis0208<<14 | 0x33<<7 | 0x27,
+ 22564 - 19968: jis0208<<14 | 0x23<<7 | 0x48,
+ 22566 - 19968: jis0212<<14 | 0x17<<7 | 0x06,
+ 22567 - 19968: jis0212<<14 | 0x17<<7 | 0x07,
+ 22570 - 19968: jis0208<<14 | 0x13<<7 | 0x0D,
+ 22573 - 19968: jis0212<<14 | 0x17<<7 | 0x08,
+ 22575 - 19968: jis0208<<14 | 0x53<<7 | 0x00,
+ 22576 - 19968: jis0208<<14 | 0x10<<7 | 0x40,
+ 22577 - 19968: jis0208<<14 | 0x29<<7 | 0x52,
+ 22578 - 19968: jis0212<<14 | 0x17<<7 | 0x09,
+ 22580 - 19968: jis0208<<14 | 0x1D<<7 | 0x4B,
+ 22581 - 19968: jis0208<<14 | 0x24<<7 | 0x27,
+ 22585 - 19968: jis0212<<14 | 0x17<<7 | 0x0A,
+ 22586 - 19968: jis0208<<14 | 0x19<<7 | 0x45,
+ 22589 - 19968: jis0208<<14 | 0x33<<7 | 0x2D,
+ 22591 - 19968: jis0212<<14 | 0x17<<7 | 0x0B,
+ 22592 - 19968: jis0208<<14 | 0x29<<7 | 0x1C,
+ 22593 - 19968: jis0208<<14 | 0x2D<<7 | 0x3C,
+ 22601 - 19968: jis0212<<14 | 0x17<<7 | 0x0C,
+ 22602 - 19968: jis0208<<14 | 0x11<<7 | 0x53,
+ 22603 - 19968: jis0208<<14 | 0x33<<7 | 0x29,
+ 22604 - 19968: jis0212<<14 | 0x17<<7 | 0x0D,
+ 22605 - 19968: jis0212<<14 | 0x17<<7 | 0x0E,
+ 22607 - 19968: jis0212<<14 | 0x17<<7 | 0x0F,
+ 22608 - 19968: jis0212<<14 | 0x17<<7 | 0x10,
+ 22609 - 19968: jis0208<<14 | 0x20<<7 | 0x19,
+ 22610 - 19968: jis0208<<14 | 0x33<<7 | 0x2C,
+ 22612 - 19968: jis0208<<14 | 0x24<<7 | 0x42,
+ 22613 - 19968: jis0212<<14 | 0x17<<7 | 0x11,
+ 22615 - 19968: jis0208<<14 | 0x24<<7 | 0x28,
+ 22616 - 19968: jis0208<<14 | 0x24<<7 | 0x43,
+ 22617 - 19968: jis0208<<14 | 0x27<<7 | 0x18,
+ 22618 - 19968: jis0208<<14 | 0x23<<7 | 0x2C,
+ 22622 - 19968: jis0208<<14 | 0x19<<7 | 0x28,
+ 22623 - 19968: jis0212<<14 | 0x17<<7 | 0x12,
+ 22625 - 19968: jis0212<<14 | 0x17<<7 | 0x13,
+ 22626 - 19968: jis0208<<14 | 0x33<<7 | 0x28,
+ 22628 - 19968: jis0212<<14 | 0x17<<7 | 0x14,
+ 22631 - 19968: jis0212<<14 | 0x17<<7 | 0x15,
+ 22632 - 19968: jis0212<<14 | 0x17<<7 | 0x16,
+ 22633 - 19968: jis0208<<14 | 0x10<<7 | 0x55,
+ 22635 - 19968: jis0208<<14 | 0x24<<7 | 0x15,
+ 22640 - 19968: jis0208<<14 | 0x33<<7 | 0x2A,
+ 22642 - 19968: jis0208<<14 | 0x33<<7 | 0x26,
+ 22645 - 19968: jis0208<<14 | 0x1E<<7 | 0x2F,
+ 22648 - 19968: jis0212<<14 | 0x17<<7 | 0x17,
+ 22649 - 19968: jis0208<<14 | 0x33<<7 | 0x2E,
+ 22652 - 19968: jis0212<<14 | 0x17<<7 | 0x18,
+ 22654 - 19968: jis0208<<14 | 0x1C<<7 | 0x2D,
+ 22655 - 19968: jis0212<<14 | 0x17<<7 | 0x19,
+ 22656 - 19968: jis0212<<14 | 0x17<<7 | 0x1A,
+ 22657 - 19968: jis0212<<14 | 0x17<<7 | 0x1B,
+ 22659 - 19968: jis0208<<14 | 0x15<<7 | 0x0C,
+ 22661 - 19968: jis0208<<14 | 0x33<<7 | 0x2F,
+ 22663 - 19968: jis0212<<14 | 0x17<<7 | 0x1C,
+ 22664 - 19968: jis0212<<14 | 0x17<<7 | 0x1D,
+ 22665 - 19968: jis0212<<14 | 0x17<<7 | 0x1E,
+ 22666 - 19968: jis0212<<14 | 0x17<<7 | 0x1F,
+ 22668 - 19968: jis0212<<14 | 0x17<<7 | 0x20,
+ 22669 - 19968: jis0212<<14 | 0x17<<7 | 0x21,
+ 22671 - 19968: jis0212<<14 | 0x17<<7 | 0x22,
+ 22672 - 19968: jis0212<<14 | 0x17<<7 | 0x23,
+ 22675 - 19968: jis0208<<14 | 0x29<<7 | 0x47,
+ 22676 - 19968: jis0212<<14 | 0x17<<7 | 0x24,
+ 22678 - 19968: jis0212<<14 | 0x17<<7 | 0x25,
+ 22679 - 19968: jis0208<<14 | 0x20<<7 | 0x5C,
+ 22684 - 19968: jis0208<<14 | 0x23<<7 | 0x25,
+ 22685 - 19968: jis0212<<14 | 0x17<<7 | 0x26,
+ 22686 - 19968: jis0208<<14 | 0x58<<7 | 0x40,
+ 22687 - 19968: jis0208<<14 | 0x33<<7 | 0x31,
+ 22688 - 19968: jis0212<<14 | 0x17<<7 | 0x27,
+ 22689 - 19968: jis0212<<14 | 0x17<<7 | 0x28,
+ 22690 - 19968: jis0212<<14 | 0x17<<7 | 0x29,
+ 22694 - 19968: jis0212<<14 | 0x17<<7 | 0x2A,
+ 22696 - 19968: jis0208<<14 | 0x2A<<7 | 0x2E,
+ 22697 - 19968: jis0212<<14 | 0x17<<7 | 0x2B,
+ 22699 - 19968: jis0208<<14 | 0x33<<7 | 0x32,
+ 22702 - 19968: jis0208<<14 | 0x33<<7 | 0x37,
+ 22705 - 19968: jis0212<<14 | 0x17<<7 | 0x2C,
+ 22706 - 19968: jis0208<<14 | 0x58<<7 | 0x41,
+ 22707 - 19968: jis0208<<14 | 0x29<<7 | 0x0E,
+ 22712 - 19968: jis0208<<14 | 0x33<<7 | 0x36,
+ 22713 - 19968: jis0208<<14 | 0x33<<7 | 0x30,
+ 22714 - 19968: jis0208<<14 | 0x33<<7 | 0x33,
+ 22715 - 19968: jis0208<<14 | 0x33<<7 | 0x35,
+ 22716 - 19968: jis0212<<14 | 0x17<<7 | 0x2F,
+ 22718 - 19968: jis0208<<14 | 0x19<<7 | 0x05,
+ 22721 - 19968: jis0208<<14 | 0x29<<7 | 0x28,
+ 22722 - 19968: jis0212<<14 | 0x17<<7 | 0x30,
+ 22724 - 19968: jis0212<<14 | 0x17<<7 | 0x2E,
+ 22725 - 19968: jis0208<<14 | 0x33<<7 | 0x38,
+ 22727 - 19968: jis0208<<14 | 0x22<<7 | 0x24,
+ 22728 - 19968: jis0212<<14 | 0x17<<7 | 0x31,
+ 22730 - 19968: jis0208<<14 | 0x11<<7 | 0x54,
+ 22732 - 19968: jis0208<<14 | 0x1D<<7 | 0x4C,
+ 22733 - 19968: jis0212<<14 | 0x17<<7 | 0x32,
+ 22734 - 19968: jis0212<<14 | 0x17<<7 | 0x33,
+ 22736 - 19968: jis0212<<14 | 0x17<<7 | 0x34,
+ 22737 - 19968: jis0208<<14 | 0x33<<7 | 0x3A,
+ 22738 - 19968: jis0212<<14 | 0x17<<7 | 0x35,
+ 22739 - 19968: jis0208<<14 | 0x33<<7 | 0x39,
+ 22740 - 19968: jis0212<<14 | 0x17<<7 | 0x36,
+ 22741 - 19968: jis0208<<14 | 0x18<<7 | 0x47,
+ 22742 - 19968: jis0212<<14 | 0x17<<7 | 0x37,
+ 22743 - 19968: jis0208<<14 | 0x33<<7 | 0x3B,
+ 22744 - 19968: jis0208<<14 | 0x33<<7 | 0x3D,
+ 22745 - 19968: jis0208<<14 | 0x33<<7 | 0x3C,
+ 22746 - 19968: jis0212<<14 | 0x17<<7 | 0x38,
+ 22748 - 19968: jis0208<<14 | 0x33<<7 | 0x3F,
+ 22749 - 19968: jis0212<<14 | 0x17<<7 | 0x39,
+ 22750 - 19968: jis0208<<14 | 0x33<<7 | 0x34,
+ 22751 - 19968: jis0208<<14 | 0x33<<7 | 0x41,
+ 22753 - 19968: jis0212<<14 | 0x17<<7 | 0x3A,
+ 22754 - 19968: jis0212<<14 | 0x17<<7 | 0x3B,
+ 22756 - 19968: jis0208<<14 | 0x33<<7 | 0x40,
+ 22757 - 19968: jis0208<<14 | 0x33<<7 | 0x3E,
+ 22761 - 19968: jis0212<<14 | 0x17<<7 | 0x3C,
+ 22763 - 19968: jis0208<<14 | 0x1A<<7 | 0x2D,
+ 22764 - 19968: jis0208<<14 | 0x1E<<7 | 0x30,
+ 22766 - 19968: jis0208<<14 | 0x20<<7 | 0x33,
+ 22767 - 19968: jis0208<<14 | 0x33<<7 | 0x42,
+ 22768 - 19968: jis0208<<14 | 0x1F<<7 | 0x1B,
+ 22769 - 19968: jis0208<<14 | 0x0F<<7 | 0x4C,
+ 22770 - 19968: jis0208<<14 | 0x26<<7 | 0x43,
+ 22771 - 19968: jis0212<<14 | 0x17<<7 | 0x3D,
+ 22775 - 19968: jis0208<<14 | 0x23<<7 | 0x3A,
+ 22777 - 19968: jis0208<<14 | 0x33<<7 | 0x44,
+ 22778 - 19968: jis0208<<14 | 0x33<<7 | 0x43,
+ 22779 - 19968: jis0208<<14 | 0x33<<7 | 0x45,
+ 22780 - 19968: jis0208<<14 | 0x33<<7 | 0x46,
+ 22781 - 19968: jis0208<<14 | 0x33<<7 | 0x47,
+ 22786 - 19968: jis0208<<14 | 0x33<<7 | 0x48,
+ 22789 - 19968: jis0212<<14 | 0x17<<7 | 0x3E,
+ 22790 - 19968: jis0212<<14 | 0x17<<7 | 0x3F,
+ 22793 - 19968: jis0208<<14 | 0x29<<7 | 0x30,
+ 22794 - 19968: jis0208<<14 | 0x33<<7 | 0x49,
+ 22795 - 19968: jis0208<<14 | 0x58<<7 | 0x42,
+ 22796 - 19968: jis0212<<14 | 0x17<<7 | 0x41,
+ 22799 - 19968: jis0208<<14 | 0x11<<7 | 0x25,
+ 22800 - 19968: jis0208<<14 | 0x33<<7 | 0x4A,
+ 22802 - 19968: jis0212<<14 | 0x17<<7 | 0x42,
+ 22803 - 19968: jis0212<<14 | 0x17<<7 | 0x43,
+ 22804 - 19968: jis0212<<14 | 0x17<<7 | 0x44,
+ 22805 - 19968: jis0208<<14 | 0x2C<<7 | 0x1B,
+ 22806 - 19968: jis0208<<14 | 0x12<<7 | 0x0F,
+ 22808 - 19968: jis0208<<14 | 0x31<<7 | 0x28,
+ 22809 - 19968: jis0208<<14 | 0x1C<<7 | 0x27,
+ 22810 - 19968: jis0208<<14 | 0x21<<7 | 0x1E,
+ 22811 - 19968: jis0208<<14 | 0x33<<7 | 0x4B,
+ 22812 - 19968: jis0208<<14 | 0x2B<<7 | 0x4A,
+ 22813 - 19968: jis0212<<14 | 0x17<<7 | 0x46,
+ 22817 - 19968: jis0212<<14 | 0x17<<7 | 0x47,
+ 22818 - 19968: jis0208<<14 | 0x2B<<7 | 0x13,
+ 22819 - 19968: jis0212<<14 | 0x17<<7 | 0x48,
+ 22820 - 19968: jis0212<<14 | 0x17<<7 | 0x49,
+ 22821 - 19968: jis0208<<14 | 0x33<<7 | 0x4D,
+ 22823 - 19968: jis0208<<14 | 0x21<<7 | 0x46,
+ 22824 - 19968: jis0212<<14 | 0x17<<7 | 0x4A,
+ 22825 - 19968: jis0208<<14 | 0x24<<7 | 0x16,
+ 22826 - 19968: jis0208<<14 | 0x21<<7 | 0x1F,
+ 22827 - 19968: jis0208<<14 | 0x28<<7 | 0x36,
+ 22828 - 19968: jis0208<<14 | 0x33<<7 | 0x4E,
+ 22829 - 19968: jis0208<<14 | 0x33<<7 | 0x4F,
+ 22830 - 19968: jis0208<<14 | 0x10<<7 | 0x5A,
+ 22831 - 19968: jis0212<<14 | 0x17<<7 | 0x4B,
+ 22832 - 19968: jis0212<<14 | 0x17<<7 | 0x4C,
+ 22833 - 19968: jis0208<<14 | 0x1B<<7 | 0x19,
+ 22834 - 19968: jis0208<<14 | 0x33<<7 | 0x50,
+ 22835 - 19968: jis0212<<14 | 0x17<<7 | 0x4D,
+ 22837 - 19968: jis0212<<14 | 0x17<<7 | 0x4E,
+ 22838 - 19968: jis0212<<14 | 0x17<<7 | 0x4F,
+ 22839 - 19968: jis0208<<14 | 0x0F<<7 | 0x2F,
+ 22840 - 19968: jis0208<<14 | 0x33<<7 | 0x51,
+ 22846 - 19968: jis0208<<14 | 0x33<<7 | 0x52,
+ 22847 - 19968: jis0212<<14 | 0x17<<7 | 0x50,
+ 22851 - 19968: jis0212<<14 | 0x17<<7 | 0x51,
+ 22852 - 19968: jis0208<<14 | 0x10<<7 | 0x41,
+ 22854 - 19968: jis0212<<14 | 0x17<<7 | 0x52,
+ 22855 - 19968: jis0208<<14 | 0x13<<7 | 0x50,
+ 22856 - 19968: jis0208<<14 | 0x25<<7 | 0x3F,
+ 22857 - 19968: jis0208<<14 | 0x29<<7 | 0x53,
+ 22862 - 19968: jis0208<<14 | 0x33<<7 | 0x56,
+ 22863 - 19968: jis0208<<14 | 0x20<<7 | 0x34,
+ 22864 - 19968: jis0208<<14 | 0x33<<7 | 0x55,
+ 22865 - 19968: jis0208<<14 | 0x16<<7 | 0x1F,
+ 22866 - 19968: jis0212<<14 | 0x17<<7 | 0x53,
+ 22867 - 19968: jis0208<<14 | 0x58<<7 | 0x43,
+ 22868 - 19968: jis0208<<14 | 0x2A<<7 | 0x3A,
+ 22869 - 19968: jis0208<<14 | 0x33<<7 | 0x54,
+ 22871 - 19968: jis0208<<14 | 0x24<<7 | 0x44,
+ 22872 - 19968: jis0208<<14 | 0x33<<7 | 0x58,
+ 22873 - 19968: jis0212<<14 | 0x17<<7 | 0x55,
+ 22874 - 19968: jis0208<<14 | 0x33<<7 | 0x57,
+ 22875 - 19968: jis0208<<14 | 0x58<<7 | 0x44,
+ 22877 - 19968: jis0208<<14 | 0x58<<7 | 0x45,
+ 22878 - 19968: jis0212<<14 | 0x17<<7 | 0x58,
+ 22879 - 19968: jis0212<<14 | 0x17<<7 | 0x59,
+ 22880 - 19968: jis0208<<14 | 0x33<<7 | 0x5A,
+ 22881 - 19968: jis0212<<14 | 0x17<<7 | 0x5A,
+ 22882 - 19968: jis0208<<14 | 0x33<<7 | 0x59,
+ 22883 - 19968: jis0208<<14 | 0x58<<7 | 0x46,
+ 22885 - 19968: jis0208<<14 | 0x10<<7 | 0x5B,
+ 22887 - 19968: jis0208<<14 | 0x33<<7 | 0x5B,
+ 22888 - 19968: jis0208<<14 | 0x1D<<7 | 0x08,
+ 22889 - 19968: jis0208<<14 | 0x33<<7 | 0x5D,
+ 22890 - 19968: jis0208<<14 | 0x22<<7 | 0x04,
+ 22891 - 19968: jis0212<<14 | 0x17<<7 | 0x5C,
+ 22892 - 19968: jis0208<<14 | 0x33<<7 | 0x5C,
+ 22893 - 19968: jis0212<<14 | 0x17<<7 | 0x5D,
+ 22894 - 19968: jis0208<<14 | 0x29<<7 | 0x12,
+ 22895 - 19968: jis0212<<14 | 0x18<<7 | 0x00,
+ 22898 - 19968: jis0212<<14 | 0x18<<7 | 0x01,
+ 22899 - 19968: jis0208<<14 | 0x1C<<7 | 0x56,
+ 22900 - 19968: jis0208<<14 | 0x24<<7 | 0x3A,
+ 22901 - 19968: jis0212<<14 | 0x18<<7 | 0x02,
+ 22902 - 19968: jis0212<<14 | 0x18<<7 | 0x03,
+ 22904 - 19968: jis0208<<14 | 0x34<<7 | 0x00,
+ 22905 - 19968: jis0212<<14 | 0x18<<7 | 0x04,
+ 22907 - 19968: jis0212<<14 | 0x18<<7 | 0x05,
+ 22908 - 19968: jis0212<<14 | 0x18<<7 | 0x06,
+ 22909 - 19968: jis0208<<14 | 0x18<<7 | 0x04,
+ 22913 - 19968: jis0208<<14 | 0x34<<7 | 0x01,
+ 22914 - 19968: jis0208<<14 | 0x26<<7 | 0x00,
+ 22915 - 19968: jis0208<<14 | 0x27<<7 | 0x3D,
+ 22916 - 19968: jis0208<<14 | 0x2B<<7 | 0x30,
+ 22922 - 19968: jis0208<<14 | 0x26<<7 | 0x04,
+ 22923 - 19968: jis0212<<14 | 0x18<<7 | 0x07,
+ 22924 - 19968: jis0212<<14 | 0x18<<7 | 0x08,
+ 22925 - 19968: jis0208<<14 | 0x34<<7 | 0x0A,
+ 22926 - 19968: jis0212<<14 | 0x18<<7 | 0x09,
+ 22930 - 19968: jis0212<<14 | 0x18<<7 | 0x0A,
+ 22931 - 19968: jis0208<<14 | 0x14<<7 | 0x17,
+ 22933 - 19968: jis0212<<14 | 0x18<<7 | 0x0B,
+ 22934 - 19968: jis0208<<14 | 0x2C<<7 | 0x24,
+ 22935 - 19968: jis0212<<14 | 0x18<<7 | 0x0C,
+ 22937 - 19968: jis0208<<14 | 0x2B<<7 | 0x0E,
+ 22939 - 19968: jis0208<<14 | 0x35<<7 | 0x0B,
+ 22941 - 19968: jis0208<<14 | 0x34<<7 | 0x02,
+ 22943 - 19968: jis0212<<14 | 0x18<<7 | 0x0D,
+ 22947 - 19968: jis0208<<14 | 0x34<<7 | 0x05,
+ 22948 - 19968: jis0208<<14 | 0x58<<7 | 0x47,
+ 22949 - 19968: jis0208<<14 | 0x21<<7 | 0x24,
+ 22951 - 19968: jis0212<<14 | 0x18<<7 | 0x0F,
+ 22952 - 19968: jis0208<<14 | 0x2A<<7 | 0x17,
+ 22956 - 19968: jis0208<<14 | 0x24<<7 | 0x29,
+ 22957 - 19968: jis0212<<14 | 0x18<<7 | 0x10,
+ 22958 - 19968: jis0212<<14 | 0x18<<7 | 0x11,
+ 22959 - 19968: jis0212<<14 | 0x18<<7 | 0x12,
+ 22960 - 19968: jis0212<<14 | 0x18<<7 | 0x13,
+ 22962 - 19968: jis0208<<14 | 0x34<<7 | 0x06,
+ 22963 - 19968: jis0212<<14 | 0x18<<7 | 0x14,
+ 22967 - 19968: jis0212<<14 | 0x18<<7 | 0x15,
+ 22969 - 19968: jis0208<<14 | 0x2A<<7 | 0x44,
+ 22970 - 19968: jis0208<<14 | 0x58<<7 | 0x48,
+ 22971 - 19968: jis0208<<14 | 0x19<<7 | 0x29,
+ 22972 - 19968: jis0212<<14 | 0x18<<7 | 0x17,
+ 22974 - 19968: jis0208<<14 | 0x1D<<7 | 0x09,
+ 22977 - 19968: jis0212<<14 | 0x18<<7 | 0x18,
+ 22979 - 19968: jis0212<<14 | 0x18<<7 | 0x19,
+ 22980 - 19968: jis0212<<14 | 0x18<<7 | 0x1A,
+ 22982 - 19968: jis0208<<14 | 0x34<<7 | 0x07,
+ 22984 - 19968: jis0212<<14 | 0x18<<7 | 0x1B,
+ 22985 - 19968: jis0208<<14 | 0x1A<<7 | 0x2F,
+ 22986 - 19968: jis0212<<14 | 0x18<<7 | 0x1C,
+ 22987 - 19968: jis0208<<14 | 0x1A<<7 | 0x2E,
+ 22989 - 19968: jis0212<<14 | 0x18<<7 | 0x1D,
+ 22992 - 19968: jis0208<<14 | 0x0F<<7 | 0x18,
+ 22993 - 19968: jis0208<<14 | 0x17<<7 | 0x27,
+ 22994 - 19968: jis0212<<14 | 0x18<<7 | 0x1E,
+ 22995 - 19968: jis0208<<14 | 0x1F<<7 | 0x0A,
+ 22996 - 19968: jis0208<<14 | 0x0F<<7 | 0x30,
+ 23001 - 19968: jis0208<<14 | 0x34<<7 | 0x0B,
+ 23002 - 19968: jis0208<<14 | 0x34<<7 | 0x0C,
+ 23004 - 19968: jis0208<<14 | 0x34<<7 | 0x09,
+ 23005 - 19968: jis0212<<14 | 0x18<<7 | 0x1F,
+ 23006 - 19968: jis0212<<14 | 0x18<<7 | 0x20,
+ 23007 - 19968: jis0212<<14 | 0x18<<7 | 0x21,
+ 23011 - 19968: jis0212<<14 | 0x18<<7 | 0x22,
+ 23012 - 19968: jis0212<<14 | 0x18<<7 | 0x23,
+ 23013 - 19968: jis0208<<14 | 0x10<<7 | 0x17,
+ 23014 - 19968: jis0208<<14 | 0x13<<7 | 0x0E,
+ 23015 - 19968: jis0212<<14 | 0x18<<7 | 0x24,
+ 23016 - 19968: jis0208<<14 | 0x34<<7 | 0x08,
+ 23018 - 19968: jis0208<<14 | 0x2B<<7 | 0x24,
+ 23019 - 19968: jis0208<<14 | 0x28<<7 | 0x10,
+ 23022 - 19968: jis0212<<14 | 0x18<<7 | 0x25,
+ 23023 - 19968: jis0212<<14 | 0x18<<7 | 0x26,
+ 23025 - 19968: jis0212<<14 | 0x18<<7 | 0x27,
+ 23026 - 19968: jis0212<<14 | 0x18<<7 | 0x28,
+ 23028 - 19968: jis0212<<14 | 0x18<<7 | 0x29,
+ 23030 - 19968: jis0208<<14 | 0x0F<<7 | 0x07,
+ 23031 - 19968: jis0212<<14 | 0x18<<7 | 0x2A,
+ 23035 - 19968: jis0208<<14 | 0x0F<<7 | 0x58,
+ 23039 - 19968: jis0208<<14 | 0x1A<<7 | 0x30,
+ 23040 - 19968: jis0212<<14 | 0x18<<7 | 0x2B,
+ 23041 - 19968: jis0208<<14 | 0x0F<<7 | 0x31,
+ 23043 - 19968: jis0208<<14 | 0x0F<<7 | 0x02,
+ 23044 - 19968: jis0212<<14 | 0x18<<7 | 0x2C,
+ 23049 - 19968: jis0208<<14 | 0x34<<7 | 0x11,
+ 23052 - 19968: jis0212<<14 | 0x18<<7 | 0x2D,
+ 23053 - 19968: jis0212<<14 | 0x18<<7 | 0x2E,
+ 23054 - 19968: jis0212<<14 | 0x18<<7 | 0x2F,
+ 23057 - 19968: jis0208<<14 | 0x34<<7 | 0x0F,
+ 23058 - 19968: jis0212<<14 | 0x18<<7 | 0x30,
+ 23059 - 19968: jis0212<<14 | 0x18<<7 | 0x31,
+ 23064 - 19968: jis0208<<14 | 0x2B<<7 | 0x1B,
+ 23066 - 19968: jis0208<<14 | 0x34<<7 | 0x12,
+ 23068 - 19968: jis0208<<14 | 0x34<<7 | 0x10,
+ 23070 - 19968: jis0212<<14 | 0x18<<7 | 0x32,
+ 23071 - 19968: jis0208<<14 | 0x34<<7 | 0x0E,
+ 23072 - 19968: jis0208<<14 | 0x1E<<7 | 0x10,
+ 23075 - 19968: jis0212<<14 | 0x18<<7 | 0x33,
+ 23076 - 19968: jis0212<<14 | 0x18<<7 | 0x34,
+ 23077 - 19968: jis0208<<14 | 0x34<<7 | 0x0D,
+ 23079 - 19968: jis0212<<14 | 0x18<<7 | 0x35,
+ 23080 - 19968: jis0212<<14 | 0x18<<7 | 0x36,
+ 23081 - 19968: jis0208<<14 | 0x29<<7 | 0x39,
+ 23082 - 19968: jis0212<<14 | 0x18<<7 | 0x37,
+ 23085 - 19968: jis0212<<14 | 0x18<<7 | 0x38,
+ 23087 - 19968: jis0208<<14 | 0x17<<7 | 0x43,
+ 23088 - 19968: jis0212<<14 | 0x18<<7 | 0x39,
+ 23093 - 19968: jis0208<<14 | 0x34<<7 | 0x16,
+ 23094 - 19968: jis0208<<14 | 0x34<<7 | 0x17,
+ 23100 - 19968: jis0208<<14 | 0x1D<<7 | 0x0A,
+ 23104 - 19968: jis0208<<14 | 0x34<<7 | 0x13,
+ 23105 - 19968: jis0208<<14 | 0x2E<<7 | 0x0B,
+ 23108 - 19968: jis0212<<14 | 0x18<<7 | 0x3A,
+ 23109 - 19968: jis0212<<14 | 0x18<<7 | 0x3B,
+ 23110 - 19968: jis0208<<14 | 0x26<<7 | 0x2B,
+ 23111 - 19968: jis0212<<14 | 0x18<<7 | 0x3C,
+ 23112 - 19968: jis0212<<14 | 0x18<<7 | 0x3D,
+ 23113 - 19968: jis0208<<14 | 0x34<<7 | 0x15,
+ 23116 - 19968: jis0212<<14 | 0x18<<7 | 0x3E,
+ 23120 - 19968: jis0212<<14 | 0x18<<7 | 0x3F,
+ 23125 - 19968: jis0212<<14 | 0x18<<7 | 0x40,
+ 23130 - 19968: jis0208<<14 | 0x19<<7 | 0x06,
+ 23134 - 19968: jis0212<<14 | 0x18<<7 | 0x41,
+ 23138 - 19968: jis0208<<14 | 0x34<<7 | 0x18,
+ 23139 - 19968: jis0212<<14 | 0x18<<7 | 0x42,
+ 23141 - 19968: jis0212<<14 | 0x18<<7 | 0x43,
+ 23142 - 19968: jis0208<<14 | 0x28<<7 | 0x37,
+ 23143 - 19968: jis0212<<14 | 0x18<<7 | 0x44,
+ 23146 - 19968: jis0208<<14 | 0x34<<7 | 0x19,
+ 23148 - 19968: jis0208<<14 | 0x34<<7 | 0x14,
+ 23149 - 19968: jis0212<<14 | 0x18<<7 | 0x45,
+ 23159 - 19968: jis0212<<14 | 0x18<<7 | 0x46,
+ 23162 - 19968: jis0212<<14 | 0x18<<7 | 0x47,
+ 23163 - 19968: jis0212<<14 | 0x18<<7 | 0x48,
+ 23166 - 19968: jis0212<<14 | 0x18<<7 | 0x49,
+ 23167 - 19968: jis0208<<14 | 0x2B<<7 | 0x1A,
+ 23179 - 19968: jis0212<<14 | 0x18<<7 | 0x4A,
+ 23184 - 19968: jis0212<<14 | 0x18<<7 | 0x4B,
+ 23186 - 19968: jis0208<<14 | 0x26<<7 | 0x3D,
+ 23187 - 19968: jis0212<<14 | 0x18<<7 | 0x4C,
+ 23190 - 19968: jis0212<<14 | 0x18<<7 | 0x4D,
+ 23193 - 19968: jis0212<<14 | 0x18<<7 | 0x4E,
+ 23194 - 19968: jis0208<<14 | 0x34<<7 | 0x1A,
+ 23195 - 19968: jis0208<<14 | 0x28<<7 | 0x11,
+ 23196 - 19968: jis0212<<14 | 0x18<<7 | 0x4F,
+ 23198 - 19968: jis0212<<14 | 0x18<<7 | 0x50,
+ 23199 - 19968: jis0212<<14 | 0x18<<7 | 0x51,
+ 23200 - 19968: jis0212<<14 | 0x18<<7 | 0x52,
+ 23202 - 19968: jis0212<<14 | 0x18<<7 | 0x53,
+ 23207 - 19968: jis0212<<14 | 0x18<<7 | 0x54,
+ 23212 - 19968: jis0212<<14 | 0x18<<7 | 0x55,
+ 23217 - 19968: jis0212<<14 | 0x18<<7 | 0x56,
+ 23218 - 19968: jis0212<<14 | 0x18<<7 | 0x57,
+ 23219 - 19968: jis0212<<14 | 0x18<<7 | 0x58,
+ 23221 - 19968: jis0212<<14 | 0x18<<7 | 0x59,
+ 23224 - 19968: jis0212<<14 | 0x18<<7 | 0x5A,
+ 23226 - 19968: jis0212<<14 | 0x18<<7 | 0x5B,
+ 23227 - 19968: jis0212<<14 | 0x18<<7 | 0x5C,
+ 23228 - 19968: jis0208<<14 | 0x34<<7 | 0x1B,
+ 23229 - 19968: jis0208<<14 | 0x34<<7 | 0x1F,
+ 23230 - 19968: jis0208<<14 | 0x34<<7 | 0x1C,
+ 23231 - 19968: jis0212<<14 | 0x18<<7 | 0x5D,
+ 23233 - 19968: jis0208<<14 | 0x11<<7 | 0x26,
+ 23234 - 19968: jis0208<<14 | 0x34<<7 | 0x1E,
+ 23236 - 19968: jis0212<<14 | 0x19<<7 | 0x00,
+ 23238 - 19968: jis0212<<14 | 0x19<<7 | 0x01,
+ 23240 - 19968: jis0212<<14 | 0x19<<7 | 0x02,
+ 23241 - 19968: jis0208<<14 | 0x1B<<7 | 0x1A,
+ 23243 - 19968: jis0208<<14 | 0x34<<7 | 0x1D,
+ 23244 - 19968: jis0208<<14 | 0x16<<7 | 0x58,
+ 23247 - 19968: jis0212<<14 | 0x19<<7 | 0x03,
+ 23248 - 19968: jis0208<<14 | 0x34<<7 | 0x2B,
+ 23254 - 19968: jis0208<<14 | 0x34<<7 | 0x24,
+ 23255 - 19968: jis0208<<14 | 0x34<<7 | 0x21,
+ 23258 - 19968: jis0212<<14 | 0x19<<7 | 0x04,
+ 23260 - 19968: jis0212<<14 | 0x19<<7 | 0x05,
+ 23264 - 19968: jis0212<<14 | 0x19<<7 | 0x06,
+ 23265 - 19968: jis0208<<14 | 0x22<<7 | 0x43,
+ 23267 - 19968: jis0208<<14 | 0x34<<7 | 0x20,
+ 23269 - 19968: jis0212<<14 | 0x19<<7 | 0x07,
+ 23270 - 19968: jis0208<<14 | 0x34<<7 | 0x22,
+ 23273 - 19968: jis0208<<14 | 0x34<<7 | 0x23,
+ 23274 - 19968: jis0212<<14 | 0x19<<7 | 0x08,
+ 23278 - 19968: jis0212<<14 | 0x19<<7 | 0x09,
+ 23285 - 19968: jis0212<<14 | 0x19<<7 | 0x0A,
+ 23286 - 19968: jis0212<<14 | 0x19<<7 | 0x0B,
+ 23290 - 19968: jis0208<<14 | 0x34<<7 | 0x25,
+ 23291 - 19968: jis0208<<14 | 0x34<<7 | 0x26,
+ 23293 - 19968: jis0212<<14 | 0x19<<7 | 0x0C,
+ 23296 - 19968: jis0212<<14 | 0x19<<7 | 0x0D,
+ 23297 - 19968: jis0212<<14 | 0x19<<7 | 0x0E,
+ 23304 - 19968: jis0212<<14 | 0x19<<7 | 0x0F,
+ 23305 - 19968: jis0208<<14 | 0x13<<7 | 0x51,
+ 23307 - 19968: jis0208<<14 | 0x34<<7 | 0x28,
+ 23308 - 19968: jis0208<<14 | 0x34<<7 | 0x27,
+ 23318 - 19968: jis0208<<14 | 0x34<<7 | 0x29,
+ 23319 - 19968: jis0212<<14 | 0x19<<7 | 0x10,
+ 23321 - 19968: jis0212<<14 | 0x19<<7 | 0x12,
+ 23323 - 19968: jis0212<<14 | 0x19<<7 | 0x13,
+ 23325 - 19968: jis0212<<14 | 0x19<<7 | 0x14,
+ 23329 - 19968: jis0212<<14 | 0x19<<7 | 0x15,
+ 23330 - 19968: jis0208<<14 | 0x1D<<7 | 0x4D,
+ 23333 - 19968: jis0212<<14 | 0x19<<7 | 0x16,
+ 23338 - 19968: jis0208<<14 | 0x34<<7 | 0x2C,
+ 23340 - 19968: jis0208<<14 | 0x23<<7 | 0x3B,
+ 23341 - 19968: jis0212<<14 | 0x19<<7 | 0x17,
+ 23344 - 19968: jis0208<<14 | 0x10<<7 | 0x24,
+ 23346 - 19968: jis0208<<14 | 0x34<<7 | 0x2A,
+ 23348 - 19968: jis0212<<14 | 0x19<<7 | 0x11,
+ 23350 - 19968: jis0208<<14 | 0x34<<7 | 0x2D,
+ 23352 - 19968: jis0212<<14 | 0x19<<7 | 0x18,
+ 23358 - 19968: jis0208<<14 | 0x34<<7 | 0x2E,
+ 23360 - 19968: jis0208<<14 | 0x34<<7 | 0x31,
+ 23361 - 19968: jis0212<<14 | 0x19<<7 | 0x19,
+ 23363 - 19968: jis0208<<14 | 0x34<<7 | 0x2F,
+ 23365 - 19968: jis0208<<14 | 0x34<<7 | 0x30,
+ 23371 - 19968: jis0212<<14 | 0x19<<7 | 0x1A,
+ 23372 - 19968: jis0212<<14 | 0x19<<7 | 0x1B,
+ 23376 - 19968: jis0208<<14 | 0x1A<<7 | 0x31,
+ 23377 - 19968: jis0208<<14 | 0x34<<7 | 0x32,
+ 23378 - 19968: jis0212<<14 | 0x19<<7 | 0x1C,
+ 23380 - 19968: jis0208<<14 | 0x18<<7 | 0x05,
+ 23381 - 19968: jis0208<<14 | 0x34<<7 | 0x33,
+ 23382 - 19968: jis0208<<14 | 0x58<<7 | 0x49,
+ 23383 - 19968: jis0208<<14 | 0x1A<<7 | 0x59,
+ 23384 - 19968: jis0208<<14 | 0x21<<7 | 0x17,
+ 23386 - 19968: jis0208<<14 | 0x34<<7 | 0x34,
+ 23387 - 19968: jis0208<<14 | 0x34<<7 | 0x35,
+ 23388 - 19968: jis0208<<14 | 0x1A<<7 | 0x39,
+ 23389 - 19968: jis0208<<14 | 0x18<<7 | 0x06,
+ 23390 - 19968: jis0212<<14 | 0x19<<7 | 0x1E,
+ 23391 - 19968: jis0208<<14 | 0x2B<<7 | 0x31,
+ 23395 - 19968: jis0208<<14 | 0x14<<7 | 0x07,
+ 23396 - 19968: jis0208<<14 | 0x17<<7 | 0x28,
+ 23397 - 19968: jis0208<<14 | 0x34<<7 | 0x36,
+ 23398 - 19968: jis0208<<14 | 0x12<<7 | 0x37,
+ 23400 - 19968: jis0212<<14 | 0x19<<7 | 0x1F,
+ 23401 - 19968: jis0208<<14 | 0x34<<7 | 0x37,
+ 23403 - 19968: jis0208<<14 | 0x21<<7 | 0x18,
+ 23406 - 19968: jis0212<<14 | 0x19<<7 | 0x20,
+ 23407 - 19968: jis0212<<14 | 0x19<<7 | 0x21,
+ 23408 - 19968: jis0208<<14 | 0x34<<7 | 0x38,
+ 23409 - 19968: jis0208<<14 | 0x35<<7 | 0x02,
+ 23411 - 19968: jis0208<<14 | 0x34<<7 | 0x39,
+ 23413 - 19968: jis0208<<14 | 0x34<<7 | 0x3A,
+ 23416 - 19968: jis0208<<14 | 0x34<<7 | 0x3B,
+ 23418 - 19968: jis0208<<14 | 0x34<<7 | 0x3D,
+ 23420 - 19968: jis0212<<14 | 0x19<<7 | 0x22,
+ 23421 - 19968: jis0212<<14 | 0x19<<7 | 0x23,
+ 23422 - 19968: jis0212<<14 | 0x19<<7 | 0x24,
+ 23423 - 19968: jis0212<<14 | 0x19<<7 | 0x25,
+ 23424 - 19968: jis0208<<14 | 0x34<<7 | 0x3E,
+ 23425 - 19968: jis0212<<14 | 0x19<<7 | 0x26,
+ 23427 - 19968: jis0208<<14 | 0x34<<7 | 0x3F,
+ 23428 - 19968: jis0212<<14 | 0x19<<7 | 0x27,
+ 23429 - 19968: jis0208<<14 | 0x21<<7 | 0x4F,
+ 23430 - 19968: jis0212<<14 | 0x19<<7 | 0x28,
+ 23431 - 19968: jis0208<<14 | 0x10<<7 | 0x06,
+ 23432 - 19968: jis0208<<14 | 0x1B<<7 | 0x48,
+ 23433 - 19968: jis0208<<14 | 0x0F<<7 | 0x21,
+ 23434 - 19968: jis0212<<14 | 0x19<<7 | 0x29,
+ 23435 - 19968: jis0208<<14 | 0x20<<7 | 0x36,
+ 23436 - 19968: jis0208<<14 | 0x13<<7 | 0x0F,
+ 23437 - 19968: jis0208<<14 | 0x1B<<7 | 0x14,
+ 23438 - 19968: jis0212<<14 | 0x19<<7 | 0x2A,
+ 23439 - 19968: jis0208<<14 | 0x18<<7 | 0x07,
+ 23440 - 19968: jis0212<<14 | 0x19<<7 | 0x2B,
+ 23441 - 19968: jis0212<<14 | 0x19<<7 | 0x2C,
+ 23443 - 19968: jis0212<<14 | 0x19<<7 | 0x2D,
+ 23444 - 19968: jis0212<<14 | 0x19<<7 | 0x2E,
+ 23445 - 19968: jis0208<<14 | 0x24<<7 | 0x45,
+ 23446 - 19968: jis0212<<14 | 0x19<<7 | 0x2F,
+ 23447 - 19968: jis0208<<14 | 0x1C<<7 | 0x00,
+ 23448 - 19968: jis0208<<14 | 0x13<<7 | 0x10,
+ 23449 - 19968: jis0208<<14 | 0x22<<7 | 0x47,
+ 23450 - 19968: jis0208<<14 | 0x23<<7 | 0x49,
+ 23451 - 19968: jis0208<<14 | 0x0F<<7 | 0x17,
+ 23452 - 19968: jis0208<<14 | 0x14<<7 | 0x18,
+ 23453 - 19968: jis0208<<14 | 0x29<<7 | 0x54,
+ 23455 - 19968: jis0208<<14 | 0x1B<<7 | 0x21,
+ 23458 - 19968: jis0208<<14 | 0x14<<7 | 0x31,
+ 23459 - 19968: jis0208<<14 | 0x1F<<7 | 0x4A,
+ 23460 - 19968: jis0208<<14 | 0x1B<<7 | 0x1B,
+ 23461 - 19968: jis0208<<14 | 0x2C<<7 | 0x07,
+ 23462 - 19968: jis0208<<14 | 0x34<<7 | 0x40,
+ 23464 - 19968: jis0212<<14 | 0x19<<7 | 0x30,
+ 23465 - 19968: jis0212<<14 | 0x19<<7 | 0x31,
+ 23468 - 19968: jis0212<<14 | 0x19<<7 | 0x32,
+ 23469 - 19968: jis0212<<14 | 0x19<<7 | 0x33,
+ 23470 - 19968: jis0208<<14 | 0x14<<7 | 0x3B,
+ 23471 - 19968: jis0212<<14 | 0x19<<7 | 0x34,
+ 23472 - 19968: jis0208<<14 | 0x19<<7 | 0x2A,
+ 23473 - 19968: jis0212<<14 | 0x19<<7 | 0x35,
+ 23474 - 19968: jis0212<<14 | 0x19<<7 | 0x36,
+ 23475 - 19968: jis0208<<14 | 0x12<<7 | 0x11,
+ 23476 - 19968: jis0208<<14 | 0x10<<7 | 0x42,
+ 23477 - 19968: jis0208<<14 | 0x1D<<7 | 0x0B,
+ 23478 - 19968: jis0208<<14 | 0x11<<7 | 0x27,
+ 23479 - 19968: jis0212<<14 | 0x19<<7 | 0x37,
+ 23480 - 19968: jis0208<<14 | 0x34<<7 | 0x41,
+ 23481 - 19968: jis0208<<14 | 0x2C<<7 | 0x25,
+ 23482 - 19968: jis0212<<14 | 0x19<<7 | 0x38,
+ 23484 - 19968: jis0212<<14 | 0x19<<7 | 0x39,
+ 23487 - 19968: jis0208<<14 | 0x1C<<7 | 0x28,
+ 23488 - 19968: jis0208<<14 | 0x58<<7 | 0x4A,
+ 23489 - 19968: jis0212<<14 | 0x19<<7 | 0x3B,
+ 23490 - 19968: jis0208<<14 | 0x1B<<7 | 0x43,
+ 23491 - 19968: jis0208<<14 | 0x34<<7 | 0x42,
+ 23492 - 19968: jis0208<<14 | 0x13<<7 | 0x52,
+ 23493 - 19968: jis0208<<14 | 0x25<<7 | 0x31,
+ 23494 - 19968: jis0208<<14 | 0x2B<<7 | 0x08,
+ 23495 - 19968: jis0208<<14 | 0x34<<7 | 0x43,
+ 23497 - 19968: jis0208<<14 | 0x34<<7 | 0x44,
+ 23500 - 19968: jis0208<<14 | 0x28<<7 | 0x38,
+ 23501 - 19968: jis0212<<14 | 0x19<<7 | 0x3C,
+ 23503 - 19968: jis0212<<14 | 0x19<<7 | 0x3D,
+ 23504 - 19968: jis0208<<14 | 0x34<<7 | 0x46,
+ 23506 - 19968: jis0208<<14 | 0x13<<7 | 0x07,
+ 23507 - 19968: jis0208<<14 | 0x15<<7 | 0x56,
+ 23508 - 19968: jis0208<<14 | 0x34<<7 | 0x45,
+ 23510 - 19968: jis0212<<14 | 0x19<<7 | 0x3E,
+ 23511 - 19968: jis0212<<14 | 0x19<<7 | 0x3F,
+ 23512 - 19968: jis0208<<14 | 0x58<<7 | 0x4C,
+ 23513 - 19968: jis0212<<14 | 0x19<<7 | 0x41,
+ 23514 - 19968: jis0212<<14 | 0x19<<7 | 0x42,
+ 23515 - 19968: jis0208<<14 | 0x13<<7 | 0x11,
+ 23517 - 19968: jis0208<<14 | 0x1E<<7 | 0x11,
+ 23518 - 19968: jis0208<<14 | 0x34<<7 | 0x4A,
+ 23519 - 19968: jis0208<<14 | 0x1A<<7 | 0x00,
+ 23520 - 19968: jis0212<<14 | 0x19<<7 | 0x43,
+ 23521 - 19968: jis0208<<14 | 0x11<<7 | 0x28,
+ 23522 - 19968: jis0208<<14 | 0x34<<7 | 0x49,
+ 23524 - 19968: jis0208<<14 | 0x34<<7 | 0x47,
+ 23525 - 19968: jis0208<<14 | 0x34<<7 | 0x4B,
+ 23526 - 19968: jis0208<<14 | 0x34<<7 | 0x48,
+ 23527 - 19968: jis0208<<14 | 0x26<<7 | 0x0A,
+ 23528 - 19968: jis0208<<14 | 0x3B<<7 | 0x2C,
+ 23529 - 19968: jis0208<<14 | 0x1E<<7 | 0x12,
+ 23531 - 19968: jis0208<<14 | 0x34<<7 | 0x4C,
+ 23532 - 19968: jis0208<<14 | 0x58<<7 | 0x4D,
+ 23534 - 19968: jis0208<<14 | 0x2D<<7 | 0x1F,
+ 23535 - 19968: jis0212<<14 | 0x19<<7 | 0x44,
+ 23536 - 19968: jis0208<<14 | 0x34<<7 | 0x4D,
+ 23537 - 19968: jis0212<<14 | 0x19<<7 | 0x45,
+ 23539 - 19968: jis0208<<14 | 0x34<<7 | 0x4F,
+ 23540 - 19968: jis0212<<14 | 0x19<<7 | 0x46,
+ 23541 - 19968: jis0208<<14 | 0x22<<7 | 0x5D,
+ 23542 - 19968: jis0208<<14 | 0x34<<7 | 0x4E,
+ 23544 - 19968: jis0208<<14 | 0x1F<<7 | 0x02,
+ 23546 - 19968: jis0208<<14 | 0x1A<<7 | 0x5A,
+ 23549 - 19968: jis0212<<14 | 0x19<<7 | 0x47,
+ 23550 - 19968: jis0208<<14 | 0x21<<7 | 0x2F,
+ 23551 - 19968: jis0208<<14 | 0x1B<<7 | 0x56,
+ 23553 - 19968: jis0208<<14 | 0x28<<7 | 0x54,
+ 23554 - 19968: jis0208<<14 | 0x1F<<7 | 0x4B,
+ 23556 - 19968: jis0208<<14 | 0x1B<<7 | 0x2C,
+ 23557 - 19968: jis0208<<14 | 0x34<<7 | 0x50,
+ 23558 - 19968: jis0208<<14 | 0x1D<<7 | 0x0C,
+ 23559 - 19968: jis0208<<14 | 0x34<<7 | 0x51,
+ 23560 - 19968: jis0208<<14 | 0x34<<7 | 0x52,
+ 23561 - 19968: jis0208<<14 | 0x0F<<7 | 0x32,
+ 23562 - 19968: jis0208<<14 | 0x21<<7 | 0x19,
+ 23563 - 19968: jis0208<<14 | 0x1E<<7 | 0x31,
+ 23564 - 19968: jis0212<<14 | 0x19<<7 | 0x48,
+ 23565 - 19968: jis0208<<14 | 0x34<<7 | 0x53,
+ 23566 - 19968: jis0208<<14 | 0x25<<7 | 0x12,
+ 23567 - 19968: jis0208<<14 | 0x1D<<7 | 0x0D,
+ 23569 - 19968: jis0208<<14 | 0x1D<<7 | 0x0E,
+ 23571 - 19968: jis0208<<14 | 0x34<<7 | 0x54,
+ 23574 - 19968: jis0208<<14 | 0x1F<<7 | 0x4C,
+ 23575 - 19968: jis0212<<14 | 0x19<<7 | 0x49,
+ 23578 - 19968: jis0208<<14 | 0x1D<<7 | 0x0F,
+ 23582 - 19968: jis0208<<14 | 0x58<<7 | 0x4E,
+ 23583 - 19968: jis0212<<14 | 0x19<<7 | 0x4B,
+ 23584 - 19968: jis0208<<14 | 0x34<<7 | 0x55,
+ 23586 - 19968: jis0208<<14 | 0x34<<7 | 0x56,
+ 23587 - 19968: jis0212<<14 | 0x19<<7 | 0x4C,
+ 23588 - 19968: jis0208<<14 | 0x2B<<7 | 0x3F,
+ 23590 - 19968: jis0212<<14 | 0x19<<7 | 0x4D,
+ 23592 - 19968: jis0208<<14 | 0x34<<7 | 0x57,
+ 23593 - 19968: jis0212<<14 | 0x19<<7 | 0x4E,
+ 23595 - 19968: jis0212<<14 | 0x19<<7 | 0x4F,
+ 23596 - 19968: jis0212<<14 | 0x19<<7 | 0x50,
+ 23597 - 19968: jis0208<<14 | 0x15<<7 | 0x25,
+ 23598 - 19968: jis0212<<14 | 0x19<<7 | 0x51,
+ 23600 - 19968: jis0212<<14 | 0x19<<7 | 0x52,
+ 23601 - 19968: jis0208<<14 | 0x1C<<7 | 0x01,
+ 23602 - 19968: jis0212<<14 | 0x19<<7 | 0x53,
+ 23605 - 19968: jis0212<<14 | 0x19<<7 | 0x54,
+ 23606 - 19968: jis0212<<14 | 0x19<<7 | 0x55,
+ 23608 - 19968: jis0208<<14 | 0x34<<7 | 0x58,
+ 23609 - 19968: jis0208<<14 | 0x34<<7 | 0x59,
+ 23610 - 19968: jis0208<<14 | 0x1B<<7 | 0x3B,
+ 23611 - 19968: jis0208<<14 | 0x1E<<7 | 0x0B,
+ 23612 - 19968: jis0208<<14 | 0x25<<7 | 0x53,
+ 23613 - 19968: jis0208<<14 | 0x1E<<7 | 0x33,
+ 23614 - 19968: jis0208<<14 | 0x27<<7 | 0x57,
+ 23615 - 19968: jis0208<<14 | 0x26<<7 | 0x01,
+ 23616 - 19968: jis0208<<14 | 0x15<<7 | 0x28,
+ 23617 - 19968: jis0208<<14 | 0x34<<7 | 0x5A,
+ 23621 - 19968: jis0208<<14 | 0x14<<7 | 0x4E,
+ 23622 - 19968: jis0208<<14 | 0x34<<7 | 0x5B,
+ 23624 - 19968: jis0208<<14 | 0x15<<7 | 0x5D,
+ 23626 - 19968: jis0208<<14 | 0x25<<7 | 0x2E,
+ 23627 - 19968: jis0208<<14 | 0x11<<7 | 0x0F,
+ 23629 - 19968: jis0208<<14 | 0x1A<<7 | 0x32,
+ 23630 - 19968: jis0208<<14 | 0x34<<7 | 0x5C,
+ 23631 - 19968: jis0208<<14 | 0x35<<7 | 0x01,
+ 23632 - 19968: jis0208<<14 | 0x35<<7 | 0x00,
+ 23633 - 19968: jis0208<<14 | 0x15<<7 | 0x5C,
+ 23635 - 19968: jis0208<<14 | 0x34<<7 | 0x5D,
+ 23637 - 19968: jis0208<<14 | 0x24<<7 | 0x17,
+ 23641 - 19968: jis0212<<14 | 0x19<<7 | 0x56,
+ 23642 - 19968: jis0212<<14 | 0x19<<7 | 0x57,
+ 23644 - 19968: jis0212<<14 | 0x19<<7 | 0x58,
+ 23646 - 19968: jis0208<<14 | 0x21<<7 | 0x0F,
+ 23648 - 19968: jis0208<<14 | 0x24<<7 | 0x2A,
+ 23649 - 19968: jis0208<<14 | 0x1B<<7 | 0x27,
+ 23650 - 19968: jis0212<<14 | 0x19<<7 | 0x59,
+ 23651 - 19968: jis0212<<14 | 0x19<<7 | 0x5A,
+ 23652 - 19968: jis0208<<14 | 0x20<<7 | 0x37,
+ 23653 - 19968: jis0208<<14 | 0x2C<<7 | 0x59,
+ 23655 - 19968: jis0212<<14 | 0x19<<7 | 0x5B,
+ 23656 - 19968: jis0212<<14 | 0x19<<7 | 0x5C,
+ 23657 - 19968: jis0212<<14 | 0x19<<7 | 0x5D,
+ 23660 - 19968: jis0208<<14 | 0x35<<7 | 0x03,
+ 23661 - 19968: jis0212<<14 | 0x1A<<7 | 0x00,
+ 23662 - 19968: jis0208<<14 | 0x35<<7 | 0x04,
+ 23663 - 19968: jis0208<<14 | 0x25<<7 | 0x35,
+ 23664 - 19968: jis0212<<14 | 0x1A<<7 | 0x01,
+ 23665 - 19968: jis0208<<14 | 0x1A<<7 | 0x12,
+ 23668 - 19968: jis0212<<14 | 0x1A<<7 | 0x02,
+ 23669 - 19968: jis0212<<14 | 0x1A<<7 | 0x03,
+ 23670 - 19968: jis0208<<14 | 0x35<<7 | 0x06,
+ 23673 - 19968: jis0208<<14 | 0x35<<7 | 0x07,
+ 23674 - 19968: jis0212<<14 | 0x1A<<7 | 0x04,
+ 23675 - 19968: jis0212<<14 | 0x1A<<7 | 0x05,
+ 23676 - 19968: jis0212<<14 | 0x1A<<7 | 0x06,
+ 23677 - 19968: jis0212<<14 | 0x1A<<7 | 0x07,
+ 23687 - 19968: jis0212<<14 | 0x1A<<7 | 0x08,
+ 23688 - 19968: jis0212<<14 | 0x1A<<7 | 0x09,
+ 23690 - 19968: jis0212<<14 | 0x1A<<7 | 0x0A,
+ 23692 - 19968: jis0208<<14 | 0x35<<7 | 0x08,
+ 23695 - 19968: jis0212<<14 | 0x1A<<7 | 0x0B,
+ 23696 - 19968: jis0208<<14 | 0x13<<7 | 0x53,
+ 23697 - 19968: jis0208<<14 | 0x35<<7 | 0x09,
+ 23698 - 19968: jis0212<<14 | 0x1A<<7 | 0x0C,
+ 23700 - 19968: jis0208<<14 | 0x35<<7 | 0x0A,
+ 23709 - 19968: jis0212<<14 | 0x1A<<7 | 0x0D,
+ 23711 - 19968: jis0212<<14 | 0x1A<<7 | 0x0E,
+ 23712 - 19968: jis0212<<14 | 0x1A<<7 | 0x0F,
+ 23713 - 19968: jis0208<<14 | 0x11<<7 | 0x0B,
+ 23714 - 19968: jis0212<<14 | 0x1A<<7 | 0x10,
+ 23715 - 19968: jis0212<<14 | 0x1A<<7 | 0x11,
+ 23718 - 19968: jis0208<<14 | 0x58<<7 | 0x4F,
+ 23720 - 19968: jis0208<<14 | 0x20<<7 | 0x1A,
+ 23721 - 19968: jis0208<<14 | 0x13<<7 | 0x43,
+ 23722 - 19968: jis0212<<14 | 0x1A<<7 | 0x13,
+ 23723 - 19968: jis0208<<14 | 0x35<<7 | 0x0C,
+ 23724 - 19968: jis0208<<14 | 0x2B<<7 | 0x07,
+ 23729 - 19968: jis0208<<14 | 0x21<<7 | 0x31,
+ 23730 - 19968: jis0212<<14 | 0x1A<<7 | 0x14,
+ 23731 - 19968: jis0208<<14 | 0x12<<7 | 0x38,
+ 23732 - 19968: jis0212<<14 | 0x1A<<7 | 0x15,
+ 23733 - 19968: jis0212<<14 | 0x1A<<7 | 0x16,
+ 23734 - 19968: jis0208<<14 | 0x35<<7 | 0x0E,
+ 23735 - 19968: jis0208<<14 | 0x35<<7 | 0x10,
+ 23736 - 19968: jis0208<<14 | 0x13<<7 | 0x3E,
+ 23738 - 19968: jis0208<<14 | 0x58<<7 | 0x50,
+ 23739 - 19968: jis0208<<14 | 0x35<<7 | 0x0D,
+ 23740 - 19968: jis0208<<14 | 0x35<<7 | 0x0F,
+ 23742 - 19968: jis0208<<14 | 0x35<<7 | 0x12,
+ 23749 - 19968: jis0208<<14 | 0x35<<7 | 0x11,
+ 23751 - 19968: jis0208<<14 | 0x35<<7 | 0x13,
+ 23753 - 19968: jis0212<<14 | 0x1A<<7 | 0x18,
+ 23755 - 19968: jis0212<<14 | 0x1A<<7 | 0x19,
+ 23762 - 19968: jis0212<<14 | 0x1A<<7 | 0x1A,
+ 23767 - 19968: jis0212<<14 | 0x1A<<7 | 0x1C,
+ 23769 - 19968: jis0208<<14 | 0x35<<7 | 0x14,
+ 23773 - 19968: jis0212<<14 | 0x1A<<7 | 0x1B,
+ 23776 - 19968: jis0208<<14 | 0x25<<7 | 0x1C,
+ 23777 - 19968: jis0208<<14 | 0x15<<7 | 0x0D,
+ 23784 - 19968: jis0208<<14 | 0x11<<7 | 0x44,
+ 23785 - 19968: jis0208<<14 | 0x35<<7 | 0x15,
+ 23786 - 19968: jis0208<<14 | 0x35<<7 | 0x1A,
+ 23789 - 19968: jis0208<<14 | 0x35<<7 | 0x18,
+ 23790 - 19968: jis0212<<14 | 0x1A<<7 | 0x1D,
+ 23791 - 19968: jis0208<<14 | 0x29<<7 | 0x56,
+ 23792 - 19968: jis0208<<14 | 0x29<<7 | 0x55,
+ 23793 - 19968: jis0212<<14 | 0x1A<<7 | 0x1E,
+ 23794 - 19968: jis0212<<14 | 0x1A<<7 | 0x1F,
+ 23796 - 19968: jis0212<<14 | 0x1A<<7 | 0x20,
+ 23797 - 19968: jis0208<<14 | 0x58<<7 | 0x51,
+ 23798 - 19968: jis0208<<14 | 0x24<<7 | 0x46,
+ 23802 - 19968: jis0208<<14 | 0x35<<7 | 0x17,
+ 23803 - 19968: jis0208<<14 | 0x1C<<7 | 0x33,
+ 23805 - 19968: jis0208<<14 | 0x35<<7 | 0x16,
+ 23809 - 19968: jis0212<<14 | 0x1A<<7 | 0x21,
+ 23814 - 19968: jis0212<<14 | 0x1A<<7 | 0x22,
+ 23815 - 19968: jis0208<<14 | 0x1E<<7 | 0x51,
+ 23819 - 19968: jis0208<<14 | 0x35<<7 | 0x1B,
+ 23821 - 19968: jis0212<<14 | 0x1A<<7 | 0x23,
+ 23822 - 19968: jis0208<<14 | 0x19<<7 | 0x49,
+ 23825 - 19968: jis0208<<14 | 0x35<<7 | 0x21,
+ 23826 - 19968: jis0212<<14 | 0x1A<<7 | 0x24,
+ 23828 - 19968: jis0208<<14 | 0x35<<7 | 0x22,
+ 23829 - 19968: jis0208<<14 | 0x35<<7 | 0x1C,
+ 23830 - 19968: jis0208<<14 | 0x12<<7 | 0x12,
+ 23831 - 19968: jis0208<<14 | 0x35<<7 | 0x1D,
+ 23832 - 19968: jis0208<<14 | 0x35<<7 | 0x26,
+ 23833 - 19968: jis0208<<14 | 0x35<<7 | 0x25,
+ 23834 - 19968: jis0208<<14 | 0x35<<7 | 0x24,
+ 23835 - 19968: jis0208<<14 | 0x35<<7 | 0x20,
+ 23839 - 19968: jis0208<<14 | 0x35<<7 | 0x1F,
+ 23842 - 19968: jis0208<<14 | 0x35<<7 | 0x23,
+ 23843 - 19968: jis0212<<14 | 0x1A<<7 | 0x26,
+ 23844 - 19968: jis0212<<14 | 0x1A<<7 | 0x27,
+ 23846 - 19968: jis0212<<14 | 0x1A<<7 | 0x28,
+ 23847 - 19968: jis0208<<14 | 0x58<<7 | 0x52,
+ 23849 - 19968: jis0208<<14 | 0x29<<7 | 0x57,
+ 23851 - 19968: jis0212<<14 | 0x1A<<7 | 0x25,
+ 23857 - 19968: jis0212<<14 | 0x1A<<7 | 0x2A,
+ 23860 - 19968: jis0212<<14 | 0x1A<<7 | 0x2B,
+ 23865 - 19968: jis0212<<14 | 0x1A<<7 | 0x2C,
+ 23869 - 19968: jis0212<<14 | 0x1A<<7 | 0x2D,
+ 23871 - 19968: jis0212<<14 | 0x1A<<7 | 0x2E,
+ 23874 - 19968: jis0208<<14 | 0x58<<7 | 0x55,
+ 23875 - 19968: jis0212<<14 | 0x1A<<7 | 0x30,
+ 23878 - 19968: jis0212<<14 | 0x1A<<7 | 0x31,
+ 23880 - 19968: jis0212<<14 | 0x1A<<7 | 0x32,
+ 23882 - 19968: jis0212<<14 | 0x1A<<7 | 0x36,
+ 23883 - 19968: jis0208<<14 | 0x35<<7 | 0x2A,
+ 23884 - 19968: jis0208<<14 | 0x35<<7 | 0x27,
+ 23886 - 19968: jis0208<<14 | 0x35<<7 | 0x29,
+ 23888 - 19968: jis0208<<14 | 0x2C<<7 | 0x51,
+ 23889 - 19968: jis0212<<14 | 0x1A<<7 | 0x34,
+ 23890 - 19968: jis0208<<14 | 0x35<<7 | 0x28,
+ 23891 - 19968: jis0208<<14 | 0x58<<7 | 0x53,
+ 23893 - 19968: jis0212<<14 | 0x1A<<7 | 0x33,
+ 23897 - 19968: jis0212<<14 | 0x1A<<7 | 0x35,
+ 23900 - 19968: jis0208<<14 | 0x35<<7 | 0x1E,
+ 23903 - 19968: jis0212<<14 | 0x1A<<7 | 0x37,
+ 23904 - 19968: jis0212<<14 | 0x1A<<7 | 0x38,
+ 23905 - 19968: jis0212<<14 | 0x1A<<7 | 0x39,
+ 23906 - 19968: jis0212<<14 | 0x1A<<7 | 0x3A,
+ 23908 - 19968: jis0212<<14 | 0x1A<<7 | 0x3B,
+ 23913 - 19968: jis0208<<14 | 0x1E<<7 | 0x52,
+ 23914 - 19968: jis0212<<14 | 0x1A<<7 | 0x3C,
+ 23916 - 19968: jis0208<<14 | 0x35<<7 | 0x2B,
+ 23917 - 19968: jis0208<<14 | 0x58<<7 | 0x56,
+ 23919 - 19968: jis0208<<14 | 0x19<<7 | 0x16,
+ 23920 - 19968: jis0212<<14 | 0x1A<<7 | 0x3E,
+ 23923 - 19968: jis0208<<14 | 0x35<<7 | 0x2C,
+ 23926 - 19968: jis0208<<14 | 0x35<<7 | 0x2D,
+ 23929 - 19968: jis0212<<14 | 0x1A<<7 | 0x3F,
+ 23930 - 19968: jis0212<<14 | 0x1A<<7 | 0x40,
+ 23934 - 19968: jis0212<<14 | 0x1A<<7 | 0x41,
+ 23935 - 19968: jis0212<<14 | 0x1A<<7 | 0x42,
+ 23937 - 19968: jis0212<<14 | 0x1A<<7 | 0x43,
+ 23938 - 19968: jis0208<<14 | 0x35<<7 | 0x30,
+ 23939 - 19968: jis0212<<14 | 0x1A<<7 | 0x44,
+ 23940 - 19968: jis0208<<14 | 0x35<<7 | 0x2F,
+ 23943 - 19968: jis0208<<14 | 0x35<<7 | 0x2E,
+ 23944 - 19968: jis0212<<14 | 0x1A<<7 | 0x45,
+ 23946 - 19968: jis0212<<14 | 0x1A<<7 | 0x46,
+ 23947 - 19968: jis0208<<14 | 0x24<<7 | 0x47,
+ 23948 - 19968: jis0208<<14 | 0x35<<7 | 0x19,
+ 23952 - 19968: jis0208<<14 | 0x35<<7 | 0x36,
+ 23954 - 19968: jis0212<<14 | 0x1A<<7 | 0x47,
+ 23955 - 19968: jis0212<<14 | 0x1A<<7 | 0x48,
+ 23956 - 19968: jis0212<<14 | 0x1A<<7 | 0x49,
+ 23957 - 19968: jis0212<<14 | 0x1A<<7 | 0x4A,
+ 23961 - 19968: jis0212<<14 | 0x1A<<7 | 0x4B,
+ 23963 - 19968: jis0212<<14 | 0x1A<<7 | 0x4C,
+ 23965 - 19968: jis0208<<14 | 0x35<<7 | 0x32,
+ 23967 - 19968: jis0212<<14 | 0x1A<<7 | 0x4D,
+ 23968 - 19968: jis0212<<14 | 0x1A<<7 | 0x4E,
+ 23970 - 19968: jis0208<<14 | 0x35<<7 | 0x31,
+ 23975 - 19968: jis0212<<14 | 0x1A<<7 | 0x4F,
+ 23979 - 19968: jis0212<<14 | 0x1A<<7 | 0x50,
+ 23980 - 19968: jis0208<<14 | 0x35<<7 | 0x33,
+ 23982 - 19968: jis0208<<14 | 0x35<<7 | 0x34,
+ 23984 - 19968: jis0212<<14 | 0x1A<<7 | 0x51,
+ 23986 - 19968: jis0212<<14 | 0x45<<7 | 0x53,
+ 23988 - 19968: jis0212<<14 | 0x1A<<7 | 0x52,
+ 23991 - 19968: jis0208<<14 | 0x35<<7 | 0x37,
+ 23992 - 19968: jis0208<<14 | 0x58<<7 | 0x57,
+ 23993 - 19968: jis0208<<14 | 0x58<<7 | 0x58,
+ 23994 - 19968: jis0208<<14 | 0x2D<<7 | 0x45,
+ 23996 - 19968: jis0208<<14 | 0x35<<7 | 0x38,
+ 23997 - 19968: jis0208<<14 | 0x35<<7 | 0x35,
+ 24003 - 19968: jis0212<<14 | 0x1A<<7 | 0x55,
+ 24007 - 19968: jis0212<<14 | 0x1A<<7 | 0x56,
+ 24009 - 19968: jis0208<<14 | 0x35<<7 | 0x39,
+ 24011 - 19968: jis0212<<14 | 0x1A<<7 | 0x57,
+ 24012 - 19968: jis0208<<14 | 0x13<<7 | 0x3F,
+ 24013 - 19968: jis0208<<14 | 0x35<<7 | 0x3A,
+ 24014 - 19968: jis0212<<14 | 0x1A<<7 | 0x59,
+ 24016 - 19968: jis0208<<14 | 0x58<<7 | 0x59,
+ 24018 - 19968: jis0208<<14 | 0x35<<7 | 0x3C,
+ 24019 - 19968: jis0208<<14 | 0x35<<7 | 0x3B,
+ 24022 - 19968: jis0208<<14 | 0x35<<7 | 0x3D,
+ 24024 - 19968: jis0212<<14 | 0x1A<<7 | 0x5A,
+ 24025 - 19968: jis0212<<14 | 0x1A<<7 | 0x5B,
+ 24027 - 19968: jis0208<<14 | 0x35<<7 | 0x3E,
+ 24029 - 19968: jis0208<<14 | 0x1F<<7 | 0x4D,
+ 24030 - 19968: jis0208<<14 | 0x1C<<7 | 0x02,
+ 24032 - 19968: jis0212<<14 | 0x1A<<7 | 0x5C,
+ 24033 - 19968: jis0208<<14 | 0x1C<<7 | 0x43,
+ 24035 - 19968: jis0208<<14 | 0x20<<7 | 0x42,
+ 24036 - 19968: jis0212<<14 | 0x1A<<7 | 0x5D,
+ 24037 - 19968: jis0208<<14 | 0x18<<7 | 0x08,
+ 24038 - 19968: jis0208<<14 | 0x19<<7 | 0x17,
+ 24039 - 19968: jis0208<<14 | 0x18<<7 | 0x09,
+ 24040 - 19968: jis0208<<14 | 0x14<<7 | 0x4F,
+ 24041 - 19968: jis0212<<14 | 0x1B<<7 | 0x00,
+ 24043 - 19968: jis0208<<14 | 0x35<<7 | 0x3F,
+ 24046 - 19968: jis0208<<14 | 0x19<<7 | 0x18,
+ 24049 - 19968: jis0208<<14 | 0x17<<7 | 0x29,
+ 24050 - 19968: jis0208<<14 | 0x35<<7 | 0x40,
+ 24051 - 19968: jis0208<<14 | 0x2B<<7 | 0x05,
+ 24052 - 19968: jis0208<<14 | 0x26<<7 | 0x22,
+ 24053 - 19968: jis0208<<14 | 0x35<<7 | 0x41,
+ 24055 - 19968: jis0208<<14 | 0x18<<7 | 0x0A,
+ 24056 - 19968: jis0212<<14 | 0x1B<<7 | 0x01,
+ 24057 - 19968: jis0212<<14 | 0x1B<<7 | 0x02,
+ 24059 - 19968: jis0208<<14 | 0x13<<7 | 0x0B,
+ 24061 - 19968: jis0208<<14 | 0x22<<7 | 0x06,
+ 24062 - 19968: jis0208<<14 | 0x15<<7 | 0x31,
+ 24064 - 19968: jis0212<<14 | 0x1B<<7 | 0x03,
+ 24066 - 19968: jis0208<<14 | 0x1A<<7 | 0x33,
+ 24067 - 19968: jis0208<<14 | 0x28<<7 | 0x3A,
+ 24070 - 19968: jis0208<<14 | 0x27<<7 | 0x20,
+ 24071 - 19968: jis0212<<14 | 0x1B<<7 | 0x04,
+ 24075 - 19968: jis0208<<14 | 0x35<<7 | 0x42,
+ 24076 - 19968: jis0208<<14 | 0x13<<7 | 0x54,
+ 24077 - 19968: jis0212<<14 | 0x1B<<7 | 0x05,
+ 24081 - 19968: jis0208<<14 | 0x35<<7 | 0x45,
+ 24082 - 19968: jis0212<<14 | 0x1B<<7 | 0x06,
+ 24084 - 19968: jis0212<<14 | 0x1B<<7 | 0x07,
+ 24085 - 19968: jis0212<<14 | 0x1B<<7 | 0x08,
+ 24086 - 19968: jis0208<<14 | 0x23<<7 | 0x00,
+ 24088 - 19968: jis0212<<14 | 0x1B<<7 | 0x09,
+ 24089 - 19968: jis0208<<14 | 0x35<<7 | 0x44,
+ 24090 - 19968: jis0208<<14 | 0x35<<7 | 0x43,
+ 24091 - 19968: jis0208<<14 | 0x35<<7 | 0x46,
+ 24093 - 19968: jis0208<<14 | 0x23<<7 | 0x4A,
+ 24095 - 19968: jis0212<<14 | 0x1B<<7 | 0x0A,
+ 24096 - 19968: jis0212<<14 | 0x1B<<7 | 0x0B,
+ 24101 - 19968: jis0208<<14 | 0x1E<<7 | 0x42,
+ 24104 - 19968: jis0212<<14 | 0x1B<<7 | 0x0D,
+ 24107 - 19968: jis0208<<14 | 0x1A<<7 | 0x34,
+ 24109 - 19968: jis0208<<14 | 0x1F<<7 | 0x29,
+ 24110 - 19968: jis0212<<14 | 0x1B<<7 | 0x0C,
+ 24111 - 19968: jis0208<<14 | 0x21<<7 | 0x32,
+ 24112 - 19968: jis0208<<14 | 0x14<<7 | 0x01,
+ 24114 - 19968: jis0212<<14 | 0x1B<<7 | 0x0E,
+ 24115 - 19968: jis0208<<14 | 0x23<<7 | 0x01,
+ 24117 - 19968: jis0212<<14 | 0x1B<<7 | 0x0F,
+ 24118 - 19968: jis0208<<14 | 0x35<<7 | 0x47,
+ 24119 - 19968: jis0208<<14 | 0x35<<7 | 0x48,
+ 24120 - 19968: jis0208<<14 | 0x1D<<7 | 0x4E,
+ 24125 - 19968: jis0208<<14 | 0x2A<<7 | 0x18,
+ 24126 - 19968: jis0212<<14 | 0x1B<<7 | 0x10,
+ 24128 - 19968: jis0208<<14 | 0x35<<7 | 0x4B,
+ 24131 - 19968: jis0208<<14 | 0x35<<7 | 0x4A,
+ 24132 - 19968: jis0208<<14 | 0x35<<7 | 0x49,
+ 24133 - 19968: jis0208<<14 | 0x28<<7 | 0x5C,
+ 24135 - 19968: jis0208<<14 | 0x35<<7 | 0x52,
+ 24137 - 19968: jis0212<<14 | 0x1B<<7 | 0x13,
+ 24139 - 19968: jis0212<<14 | 0x1B<<7 | 0x11,
+ 24140 - 19968: jis0208<<14 | 0x2A<<7 | 0x39,
+ 24142 - 19968: jis0208<<14 | 0x35<<7 | 0x4C,
+ 24144 - 19968: jis0212<<14 | 0x1B<<7 | 0x12,
+ 24145 - 19968: jis0212<<14 | 0x1B<<7 | 0x14,
+ 24148 - 19968: jis0208<<14 | 0x35<<7 | 0x4E,
+ 24149 - 19968: jis0208<<14 | 0x2A<<7 | 0x4A,
+ 24150 - 19968: jis0212<<14 | 0x1B<<7 | 0x15,
+ 24151 - 19968: jis0208<<14 | 0x35<<7 | 0x4D,
+ 24152 - 19968: jis0212<<14 | 0x1B<<7 | 0x16,
+ 24155 - 19968: jis0212<<14 | 0x1B<<7 | 0x17,
+ 24156 - 19968: jis0212<<14 | 0x1B<<7 | 0x18,
+ 24158 - 19968: jis0212<<14 | 0x1B<<7 | 0x19,
+ 24159 - 19968: jis0208<<14 | 0x35<<7 | 0x4F,
+ 24161 - 19968: jis0208<<14 | 0x27<<7 | 0x07,
+ 24162 - 19968: jis0208<<14 | 0x35<<7 | 0x50,
+ 24163 - 19968: jis0208<<14 | 0x29<<7 | 0x1D,
+ 24164 - 19968: jis0208<<14 | 0x35<<7 | 0x51,
+ 24168 - 19968: jis0212<<14 | 0x1B<<7 | 0x1A,
+ 24170 - 19968: jis0212<<14 | 0x1B<<7 | 0x1B,
+ 24171 - 19968: jis0212<<14 | 0x1B<<7 | 0x1C,
+ 24172 - 19968: jis0212<<14 | 0x1B<<7 | 0x1D,
+ 24173 - 19968: jis0212<<14 | 0x1B<<7 | 0x1E,
+ 24174 - 19968: jis0212<<14 | 0x1B<<7 | 0x1F,
+ 24176 - 19968: jis0212<<14 | 0x1B<<7 | 0x20,
+ 24178 - 19968: jis0208<<14 | 0x13<<7 | 0x12,
+ 24179 - 19968: jis0208<<14 | 0x29<<7 | 0x1E,
+ 24180 - 19968: jis0208<<14 | 0x26<<7 | 0x0E,
+ 24181 - 19968: jis0208<<14 | 0x35<<7 | 0x53,
+ 24182 - 19968: jis0208<<14 | 0x35<<7 | 0x54,
+ 24184 - 19968: jis0208<<14 | 0x18<<7 | 0x0B,
+ 24185 - 19968: jis0208<<14 | 0x13<<7 | 0x13,
+ 24186 - 19968: jis0208<<14 | 0x35<<7 | 0x55,
+ 24187 - 19968: jis0208<<14 | 0x17<<7 | 0x17,
+ 24188 - 19968: jis0208<<14 | 0x2C<<7 | 0x23,
+ 24189 - 19968: jis0208<<14 | 0x2C<<7 | 0x08,
+ 24190 - 19968: jis0208<<14 | 0x13<<7 | 0x55,
+ 24191 - 19968: jis0208<<14 | 0x35<<7 | 0x57,
+ 24192 - 19968: jis0212<<14 | 0x1B<<7 | 0x21,
+ 24193 - 19968: jis0208<<14 | 0x23<<7 | 0x02,
+ 24195 - 19968: jis0208<<14 | 0x18<<7 | 0x0C,
+ 24196 - 19968: jis0208<<14 | 0x1D<<7 | 0x10,
+ 24199 - 19968: jis0208<<14 | 0x27<<7 | 0x3E,
+ 24202 - 19968: jis0208<<14 | 0x1D<<7 | 0x11,
+ 24203 - 19968: jis0212<<14 | 0x1B<<7 | 0x22,
+ 24206 - 19968: jis0212<<14 | 0x1B<<7 | 0x23,
+ 24207 - 19968: jis0208<<14 | 0x1C<<7 | 0x57,
+ 24213 - 19968: jis0208<<14 | 0x23<<7 | 0x4B,
+ 24214 - 19968: jis0208<<14 | 0x29<<7 | 0x58,
+ 24215 - 19968: jis0208<<14 | 0x24<<7 | 0x18,
+ 24218 - 19968: jis0208<<14 | 0x18<<7 | 0x0D,
+ 24220 - 19968: jis0208<<14 | 0x28<<7 | 0x3B,
+ 24224 - 19968: jis0208<<14 | 0x35<<7 | 0x58,
+ 24226 - 19968: jis0212<<14 | 0x1B<<7 | 0x24,
+ 24228 - 19968: jis0212<<14 | 0x1B<<7 | 0x25,
+ 24229 - 19968: jis0212<<14 | 0x1B<<7 | 0x26,
+ 24230 - 19968: jis0208<<14 | 0x24<<7 | 0x38,
+ 24231 - 19968: jis0208<<14 | 0x19<<7 | 0x21,
+ 24232 - 19968: jis0212<<14 | 0x1B<<7 | 0x27,
+ 24234 - 19968: jis0212<<14 | 0x1B<<7 | 0x28,
+ 24235 - 19968: jis0208<<14 | 0x17<<7 | 0x2A,
+ 24236 - 19968: jis0212<<14 | 0x1B<<7 | 0x29,
+ 24237 - 19968: jis0208<<14 | 0x23<<7 | 0x4C,
+ 24241 - 19968: jis0212<<14 | 0x1B<<7 | 0x2A,
+ 24243 - 19968: jis0212<<14 | 0x1B<<7 | 0x2B,
+ 24245 - 19968: jis0208<<14 | 0x0F<<7 | 0x22,
+ 24246 - 19968: jis0208<<14 | 0x1C<<7 | 0x4D,
+ 24247 - 19968: jis0208<<14 | 0x18<<7 | 0x0E,
+ 24248 - 19968: jis0208<<14 | 0x2C<<7 | 0x26,
+ 24253 - 19968: jis0212<<14 | 0x1B<<7 | 0x2C,
+ 24254 - 19968: jis0212<<14 | 0x1B<<7 | 0x2D,
+ 24255 - 19968: jis0212<<14 | 0x1B<<7 | 0x2E,
+ 24257 - 19968: jis0208<<14 | 0x35<<7 | 0x59,
+ 24258 - 19968: jis0208<<14 | 0x35<<7 | 0x5A,
+ 24259 - 19968: jis0208<<14 | 0x26<<7 | 0x30,
+ 24262 - 19968: jis0212<<14 | 0x1B<<7 | 0x2F,
+ 24264 - 19968: jis0208<<14 | 0x35<<7 | 0x5B,
+ 24265 - 19968: jis0208<<14 | 0x2D<<7 | 0x56,
+ 24266 - 19968: jis0208<<14 | 0x2E<<7 | 0x0C,
+ 24267 - 19968: jis0212<<14 | 0x1B<<7 | 0x31,
+ 24268 - 19968: jis0212<<14 | 0x1B<<7 | 0x30,
+ 24270 - 19968: jis0212<<14 | 0x1B<<7 | 0x32,
+ 24271 - 19968: jis0208<<14 | 0x35<<7 | 0x5D,
+ 24272 - 19968: jis0208<<14 | 0x35<<7 | 0x5C,
+ 24273 - 19968: jis0212<<14 | 0x1B<<7 | 0x33,
+ 24274 - 19968: jis0212<<14 | 0x1B<<7 | 0x34,
+ 24275 - 19968: jis0208<<14 | 0x12<<7 | 0x26,
+ 24276 - 19968: jis0212<<14 | 0x1B<<7 | 0x35,
+ 24277 - 19968: jis0212<<14 | 0x1B<<7 | 0x36,
+ 24278 - 19968: jis0208<<14 | 0x36<<7 | 0x00,
+ 24282 - 19968: jis0208<<14 | 0x36<<7 | 0x03,
+ 24283 - 19968: jis0208<<14 | 0x36<<7 | 0x04,
+ 24284 - 19968: jis0212<<14 | 0x1B<<7 | 0x37,
+ 24285 - 19968: jis0208<<14 | 0x36<<7 | 0x02,
+ 24286 - 19968: jis0212<<14 | 0x1B<<7 | 0x38,
+ 24287 - 19968: jis0208<<14 | 0x28<<7 | 0x1F,
+ 24288 - 19968: jis0208<<14 | 0x1D<<7 | 0x12,
+ 24289 - 19968: jis0208<<14 | 0x36<<7 | 0x06,
+ 24290 - 19968: jis0208<<14 | 0x36<<7 | 0x05,
+ 24291 - 19968: jis0208<<14 | 0x36<<7 | 0x01,
+ 24293 - 19968: jis0212<<14 | 0x1B<<7 | 0x39,
+ 24296 - 19968: jis0208<<14 | 0x36<<7 | 0x07,
+ 24297 - 19968: jis0208<<14 | 0x36<<7 | 0x08,
+ 24299 - 19968: jis0212<<14 | 0x1B<<7 | 0x3A,
+ 24300 - 19968: jis0208<<14 | 0x36<<7 | 0x09,
+ 24304 - 19968: jis0208<<14 | 0x36<<7 | 0x0C,
+ 24305 - 19968: jis0208<<14 | 0x36<<7 | 0x0A,
+ 24307 - 19968: jis0208<<14 | 0x36<<7 | 0x0B,
+ 24308 - 19968: jis0208<<14 | 0x36<<7 | 0x0D,
+ 24310 - 19968: jis0208<<14 | 0x10<<7 | 0x43,
+ 24311 - 19968: jis0208<<14 | 0x23<<7 | 0x4D,
+ 24312 - 19968: jis0208<<14 | 0x36<<7 | 0x0E,
+ 24314 - 19968: jis0208<<14 | 0x16<<7 | 0x59,
+ 24315 - 19968: jis0208<<14 | 0x11<<7 | 0x55,
+ 24316 - 19968: jis0208<<14 | 0x26<<7 | 0x15,
+ 24318 - 19968: jis0208<<14 | 0x36<<7 | 0x0F,
+ 24319 - 19968: jis0208<<14 | 0x25<<7 | 0x5A,
+ 24321 - 19968: jis0208<<14 | 0x29<<7 | 0x3A,
+ 24322 - 19968: jis0212<<14 | 0x1B<<7 | 0x3B,
+ 24323 - 19968: jis0208<<14 | 0x36<<7 | 0x10,
+ 24324 - 19968: jis0208<<14 | 0x2E<<7 | 0x0D,
+ 24326 - 19968: jis0212<<14 | 0x1B<<7 | 0x3C,
+ 24327 - 19968: jis0212<<14 | 0x1B<<7 | 0x3D,
+ 24328 - 19968: jis0212<<14 | 0x1B<<7 | 0x3E,
+ 24329 - 19968: jis0208<<14 | 0x36<<7 | 0x11,
+ 24330 - 19968: jis0208<<14 | 0x29<<7 | 0x1F,
+ 24331 - 19968: jis0208<<14 | 0x36<<7 | 0x14,
+ 24332 - 19968: jis0208<<14 | 0x2F<<7 | 0x00,
+ 24333 - 19968: jis0208<<14 | 0x2F<<7 | 0x10,
+ 24334 - 19968: jis0212<<14 | 0x1B<<7 | 0x3F,
+ 24335 - 19968: jis0208<<14 | 0x1B<<7 | 0x0F,
+ 24336 - 19968: jis0208<<14 | 0x25<<7 | 0x54,
+ 24337 - 19968: jis0208<<14 | 0x36<<7 | 0x15,
+ 24339 - 19968: jis0208<<14 | 0x14<<7 | 0x3C,
+ 24340 - 19968: jis0208<<14 | 0x23<<7 | 0x03,
+ 24341 - 19968: jis0208<<14 | 0x0F<<7 | 0x59,
+ 24342 - 19968: jis0208<<14 | 0x36<<7 | 0x16,
+ 24343 - 19968: jis0208<<14 | 0x29<<7 | 0x05,
+ 24344 - 19968: jis0208<<14 | 0x18<<7 | 0x0F,
+ 24345 - 19968: jis0212<<14 | 0x1B<<7 | 0x40,
+ 24347 - 19968: jis0208<<14 | 0x22<<7 | 0x2F,
+ 24348 - 19968: jis0212<<14 | 0x1B<<7 | 0x41,
+ 24349 - 19968: jis0212<<14 | 0x1B<<7 | 0x42,
+ 24351 - 19968: jis0208<<14 | 0x23<<7 | 0x4E,
+ 24353 - 19968: jis0208<<14 | 0x58<<7 | 0x5A,
+ 24354 - 19968: jis0212<<14 | 0x1B<<7 | 0x44,
+ 24355 - 19968: jis0212<<14 | 0x1B<<7 | 0x45,
+ 24356 - 19968: jis0212<<14 | 0x1B<<7 | 0x46,
+ 24357 - 19968: jis0208<<14 | 0x2B<<7 | 0x4E,
+ 24358 - 19968: jis0208<<14 | 0x17<<7 | 0x18,
+ 24359 - 19968: jis0208<<14 | 0x17<<7 | 0x2B,
+ 24360 - 19968: jis0212<<14 | 0x1B<<7 | 0x47,
+ 24361 - 19968: jis0208<<14 | 0x36<<7 | 0x17,
+ 24363 - 19968: jis0212<<14 | 0x1B<<7 | 0x48,
+ 24364 - 19968: jis0212<<14 | 0x1B<<7 | 0x49,
+ 24365 - 19968: jis0208<<14 | 0x36<<7 | 0x18,
+ 24366 - 19968: jis0212<<14 | 0x1B<<7 | 0x4A,
+ 24367 - 19968: jis0208<<14 | 0x36<<7 | 0x1E,
+ 24368 - 19968: jis0212<<14 | 0x1B<<7 | 0x4B,
+ 24369 - 19968: jis0208<<14 | 0x1B<<7 | 0x44,
+ 24372 - 19968: jis0208<<14 | 0x58<<7 | 0x5B,
+ 24373 - 19968: jis0208<<14 | 0x23<<7 | 0x04,
+ 24374 - 19968: jis0212<<14 | 0x1B<<7 | 0x4D,
+ 24375 - 19968: jis0208<<14 | 0x15<<7 | 0x0E,
+ 24376 - 19968: jis0208<<14 | 0x36<<7 | 0x19,
+ 24379 - 19968: jis0212<<14 | 0x1B<<7 | 0x4E,
+ 24380 - 19968: jis0208<<14 | 0x28<<7 | 0x0A,
+ 24381 - 19968: jis0212<<14 | 0x1B<<7 | 0x4F,
+ 24382 - 19968: jis0208<<14 | 0x22<<7 | 0x25,
+ 24383 - 19968: jis0212<<14 | 0x1B<<7 | 0x50,
+ 24384 - 19968: jis0212<<14 | 0x1B<<7 | 0x51,
+ 24385 - 19968: jis0208<<14 | 0x36<<7 | 0x1A,
+ 24388 - 19968: jis0212<<14 | 0x1B<<7 | 0x52,
+ 24389 - 19968: jis0208<<14 | 0x58<<7 | 0x0B,
+ 24391 - 19968: jis0212<<14 | 0x1B<<7 | 0x54,
+ 24392 - 19968: jis0208<<14 | 0x36<<7 | 0x1B,
+ 24394 - 19968: jis0208<<14 | 0x15<<7 | 0x0F,
+ 24396 - 19968: jis0208<<14 | 0x36<<7 | 0x1C,
+ 24397 - 19968: jis0212<<14 | 0x1B<<7 | 0x55,
+ 24398 - 19968: jis0208<<14 | 0x36<<7 | 0x1D,
+ 24400 - 19968: jis0212<<14 | 0x1B<<7 | 0x56,
+ 24401 - 19968: jis0208<<14 | 0x36<<7 | 0x1F,
+ 24403 - 19968: jis0208<<14 | 0x24<<7 | 0x55,
+ 24404 - 19968: jis0212<<14 | 0x1B<<7 | 0x57,
+ 24406 - 19968: jis0208<<14 | 0x36<<7 | 0x20,
+ 24407 - 19968: jis0208<<14 | 0x36<<7 | 0x21,
+ 24408 - 19968: jis0212<<14 | 0x1B<<7 | 0x58,
+ 24409 - 19968: jis0208<<14 | 0x36<<7 | 0x22,
+ 24411 - 19968: jis0212<<14 | 0x1B<<7 | 0x59,
+ 24412 - 19968: jis0208<<14 | 0x36<<7 | 0x13,
+ 24413 - 19968: jis0208<<14 | 0x36<<7 | 0x12,
+ 24416 - 19968: jis0212<<14 | 0x1B<<7 | 0x5A,
+ 24417 - 19968: jis0208<<14 | 0x36<<7 | 0x23,
+ 24418 - 19968: jis0208<<14 | 0x16<<7 | 0x20,
+ 24419 - 19968: jis0212<<14 | 0x1B<<7 | 0x5B,
+ 24420 - 19968: jis0212<<14 | 0x1B<<7 | 0x5C,
+ 24422 - 19968: jis0208<<14 | 0x28<<7 | 0x06,
+ 24423 - 19968: jis0208<<14 | 0x58<<7 | 0x5C,
+ 24425 - 19968: jis0208<<14 | 0x19<<7 | 0x2B,
+ 24426 - 19968: jis0208<<14 | 0x28<<7 | 0x16,
+ 24427 - 19968: jis0208<<14 | 0x23<<7 | 0x05,
+ 24428 - 19968: jis0208<<14 | 0x28<<7 | 0x2A,
+ 24429 - 19968: jis0208<<14 | 0x36<<7 | 0x24,
+ 24431 - 19968: jis0212<<14 | 0x1C<<7 | 0x00,
+ 24432 - 19968: jis0208<<14 | 0x1D<<7 | 0x13,
+ 24433 - 19968: jis0208<<14 | 0x10<<7 | 0x25,
+ 24434 - 19968: jis0212<<14 | 0x1C<<7 | 0x01,
+ 24435 - 19968: jis0208<<14 | 0x36<<7 | 0x25,
+ 24436 - 19968: jis0212<<14 | 0x1C<<7 | 0x02,
+ 24437 - 19968: jis0212<<14 | 0x1C<<7 | 0x03,
+ 24439 - 19968: jis0208<<14 | 0x36<<7 | 0x26,
+ 24440 - 19968: jis0212<<14 | 0x1C<<7 | 0x04,
+ 24441 - 19968: jis0208<<14 | 0x2B<<7 | 0x51,
+ 24442 - 19968: jis0212<<14 | 0x1C<<7 | 0x05,
+ 24444 - 19968: jis0208<<14 | 0x27<<7 | 0x3F,
+ 24445 - 19968: jis0212<<14 | 0x1C<<7 | 0x06,
+ 24446 - 19968: jis0212<<14 | 0x1C<<7 | 0x07,
+ 24447 - 19968: jis0208<<14 | 0x36<<7 | 0x29,
+ 24448 - 19968: jis0208<<14 | 0x10<<7 | 0x5C,
+ 24449 - 19968: jis0208<<14 | 0x1F<<7 | 0x0B,
+ 24450 - 19968: jis0208<<14 | 0x36<<7 | 0x28,
+ 24451 - 19968: jis0208<<14 | 0x36<<7 | 0x27,
+ 24452 - 19968: jis0208<<14 | 0x16<<7 | 0x21,
+ 24453 - 19968: jis0208<<14 | 0x21<<7 | 0x33,
+ 24455 - 19968: jis0208<<14 | 0x36<<7 | 0x2D,
+ 24456 - 19968: jis0208<<14 | 0x36<<7 | 0x2B,
+ 24457 - 19968: jis0212<<14 | 0x1C<<7 | 0x08,
+ 24458 - 19968: jis0208<<14 | 0x36<<7 | 0x2A,
+ 24459 - 19968: jis0208<<14 | 0x2D<<7 | 0x06,
+ 24460 - 19968: jis0208<<14 | 0x17<<7 | 0x44,
+ 24461 - 19968: jis0212<<14 | 0x1C<<7 | 0x09,
+ 24463 - 19968: jis0212<<14 | 0x1C<<7 | 0x0A,
+ 24464 - 19968: jis0208<<14 | 0x1C<<7 | 0x58,
+ 24465 - 19968: jis0208<<14 | 0x36<<7 | 0x2C,
+ 24466 - 19968: jis0208<<14 | 0x24<<7 | 0x2B,
+ 24467 - 19968: jis0208<<14 | 0x1C<<7 | 0x1D,
+ 24470 - 19968: jis0212<<14 | 0x1C<<7 | 0x0B,
+ 24471 - 19968: jis0208<<14 | 0x25<<7 | 0x1F,
+ 24472 - 19968: jis0208<<14 | 0x36<<7 | 0x30,
+ 24473 - 19968: jis0208<<14 | 0x36<<7 | 0x2F,
+ 24476 - 19968: jis0212<<14 | 0x1C<<7 | 0x0C,
+ 24477 - 19968: jis0212<<14 | 0x1C<<7 | 0x0D,
+ 24478 - 19968: jis0208<<14 | 0x36<<7 | 0x2E,
+ 24480 - 19968: jis0208<<14 | 0x36<<7 | 0x31,
+ 24481 - 19968: jis0208<<14 | 0x17<<7 | 0x45,
+ 24482 - 19968: jis0212<<14 | 0x1C<<7 | 0x0E,
+ 24484 - 19968: jis0212<<14 | 0x1C<<7 | 0x11,
+ 24487 - 19968: jis0212<<14 | 0x1C<<7 | 0x0F,
+ 24488 - 19968: jis0208<<14 | 0x36<<7 | 0x32,
+ 24489 - 19968: jis0208<<14 | 0x28<<7 | 0x5B,
+ 24490 - 19968: jis0208<<14 | 0x1C<<7 | 0x3A,
+ 24491 - 19968: jis0212<<14 | 0x1C<<7 | 0x10,
+ 24492 - 19968: jis0212<<14 | 0x1C<<7 | 0x12,
+ 24493 - 19968: jis0208<<14 | 0x36<<7 | 0x33,
+ 24494 - 19968: jis0208<<14 | 0x27<<7 | 0x58,
+ 24495 - 19968: jis0212<<14 | 0x1C<<7 | 0x13,
+ 24496 - 19968: jis0212<<14 | 0x1C<<7 | 0x14,
+ 24497 - 19968: jis0212<<14 | 0x1C<<7 | 0x15,
+ 24499 - 19968: jis0208<<14 | 0x25<<7 | 0x20,
+ 24500 - 19968: jis0208<<14 | 0x23<<7 | 0x06,
+ 24503 - 19968: jis0208<<14 | 0x58<<7 | 0x5D,
+ 24504 - 19968: jis0212<<14 | 0x1C<<7 | 0x16,
+ 24505 - 19968: jis0208<<14 | 0x24<<7 | 0x0F,
+ 24508 - 19968: jis0208<<14 | 0x36<<7 | 0x34,
+ 24509 - 19968: jis0208<<14 | 0x14<<7 | 0x0A,
+ 24515 - 19968: jis0208<<14 | 0x1E<<7 | 0x13,
+ 24516 - 19968: jis0212<<14 | 0x1C<<7 | 0x17,
+ 24517 - 19968: jis0208<<14 | 0x28<<7 | 0x0B,
+ 24519 - 19968: jis0212<<14 | 0x1C<<7 | 0x18,
+ 24520 - 19968: jis0212<<14 | 0x1C<<7 | 0x19,
+ 24521 - 19968: jis0212<<14 | 0x1C<<7 | 0x1A,
+ 24523 - 19968: jis0212<<14 | 0x1C<<7 | 0x1B,
+ 24524 - 19968: jis0208<<14 | 0x13<<7 | 0x56,
+ 24525 - 19968: jis0208<<14 | 0x26<<7 | 0x05,
+ 24528 - 19968: jis0212<<14 | 0x1C<<7 | 0x1C,
+ 24529 - 19968: jis0212<<14 | 0x1C<<7 | 0x1D,
+ 24530 - 19968: jis0212<<14 | 0x1C<<7 | 0x1E,
+ 24531 - 19968: jis0212<<14 | 0x1C<<7 | 0x1F,
+ 24532 - 19968: jis0212<<14 | 0x1C<<7 | 0x20,
+ 24534 - 19968: jis0208<<14 | 0x36<<7 | 0x35,
+ 24535 - 19968: jis0208<<14 | 0x1A<<7 | 0x35,
+ 24536 - 19968: jis0208<<14 | 0x2A<<7 | 0x19,
+ 24537 - 19968: jis0208<<14 | 0x2A<<7 | 0x1A,
+ 24540 - 19968: jis0208<<14 | 0x10<<7 | 0x5D,
+ 24541 - 19968: jis0208<<14 | 0x36<<7 | 0x3A,
+ 24542 - 19968: jis0208<<14 | 0x59<<7 | 0x00,
+ 24544 - 19968: jis0208<<14 | 0x22<<7 | 0x48,
+ 24545 - 19968: jis0212<<14 | 0x1C<<7 | 0x22,
+ 24546 - 19968: jis0212<<14 | 0x1C<<7 | 0x23,
+ 24548 - 19968: jis0208<<14 | 0x36<<7 | 0x37,
+ 24552 - 19968: jis0212<<14 | 0x1C<<7 | 0x24,
+ 24553 - 19968: jis0212<<14 | 0x1C<<7 | 0x25,
+ 24554 - 19968: jis0212<<14 | 0x1C<<7 | 0x26,
+ 24555 - 19968: jis0208<<14 | 0x11<<7 | 0x56,
+ 24556 - 19968: jis0212<<14 | 0x1C<<7 | 0x27,
+ 24557 - 19968: jis0212<<14 | 0x1C<<7 | 0x28,
+ 24558 - 19968: jis0212<<14 | 0x1C<<7 | 0x29,
+ 24559 - 19968: jis0212<<14 | 0x1C<<7 | 0x2A,
+ 24560 - 19968: jis0208<<14 | 0x37<<7 | 0x0C,
+ 24561 - 19968: jis0208<<14 | 0x36<<7 | 0x39,
+ 24562 - 19968: jis0212<<14 | 0x1C<<7 | 0x2B,
+ 24563 - 19968: jis0212<<14 | 0x1C<<7 | 0x2C,
+ 24565 - 19968: jis0208<<14 | 0x26<<7 | 0x0F,
+ 24566 - 19968: jis0212<<14 | 0x1C<<7 | 0x2D,
+ 24568 - 19968: jis0208<<14 | 0x36<<7 | 0x38,
+ 24570 - 19968: jis0212<<14 | 0x1C<<7 | 0x2E,
+ 24571 - 19968: jis0208<<14 | 0x36<<7 | 0x36,
+ 24572 - 19968: jis0212<<14 | 0x1C<<7 | 0x2F,
+ 24573 - 19968: jis0208<<14 | 0x18<<7 | 0x59,
+ 24575 - 19968: jis0208<<14 | 0x36<<7 | 0x3C,
+ 24583 - 19968: jis0212<<14 | 0x1C<<7 | 0x30,
+ 24586 - 19968: jis0212<<14 | 0x1C<<7 | 0x31,
+ 24589 - 19968: jis0212<<14 | 0x1C<<7 | 0x32,
+ 24590 - 19968: jis0208<<14 | 0x36<<7 | 0x42,
+ 24591 - 19968: jis0208<<14 | 0x36<<7 | 0x48,
+ 24592 - 19968: jis0208<<14 | 0x36<<7 | 0x40,
+ 24594 - 19968: jis0208<<14 | 0x24<<7 | 0x3B,
+ 24595 - 19968: jis0212<<14 | 0x1C<<7 | 0x33,
+ 24596 - 19968: jis0212<<14 | 0x1C<<7 | 0x34,
+ 24597 - 19968: jis0208<<14 | 0x36<<7 | 0x45,
+ 24598 - 19968: jis0208<<14 | 0x28<<7 | 0x3C,
+ 24599 - 19968: jis0212<<14 | 0x1C<<7 | 0x35,
+ 24600 - 19968: jis0212<<14 | 0x1C<<7 | 0x36,
+ 24601 - 19968: jis0208<<14 | 0x36<<7 | 0x3F,
+ 24602 - 19968: jis0212<<14 | 0x1C<<7 | 0x37,
+ 24603 - 19968: jis0208<<14 | 0x36<<7 | 0x44,
+ 24604 - 19968: jis0208<<14 | 0x2D<<7 | 0x46,
+ 24605 - 19968: jis0208<<14 | 0x1A<<7 | 0x36,
+ 24607 - 19968: jis0212<<14 | 0x1C<<7 | 0x38,
+ 24608 - 19968: jis0208<<14 | 0x21<<7 | 0x34,
+ 24609 - 19968: jis0208<<14 | 0x36<<7 | 0x3D,
+ 24612 - 19968: jis0212<<14 | 0x1C<<7 | 0x39,
+ 24613 - 19968: jis0208<<14 | 0x14<<7 | 0x3D,
+ 24614 - 19968: jis0208<<14 | 0x36<<7 | 0x47,
+ 24615 - 19968: jis0208<<14 | 0x1F<<7 | 0x0C,
+ 24616 - 19968: jis0208<<14 | 0x10<<7 | 0x44,
+ 24617 - 19968: jis0208<<14 | 0x36<<7 | 0x41,
+ 24618 - 19968: jis0208<<14 | 0x11<<7 | 0x57,
+ 24619 - 19968: jis0208<<14 | 0x36<<7 | 0x46,
+ 24621 - 19968: jis0212<<14 | 0x1C<<7 | 0x3A,
+ 24623 - 19968: jis0208<<14 | 0x15<<7 | 0x10,
+ 24625 - 19968: jis0208<<14 | 0x36<<7 | 0x43,
+ 24627 - 19968: jis0212<<14 | 0x1C<<7 | 0x3B,
+ 24629 - 19968: jis0212<<14 | 0x1C<<7 | 0x3C,
+ 24634 - 19968: jis0208<<14 | 0x36<<7 | 0x49,
+ 24640 - 19968: jis0212<<14 | 0x1C<<7 | 0x3D,
+ 24641 - 19968: jis0208<<14 | 0x36<<7 | 0x4B,
+ 24642 - 19968: jis0208<<14 | 0x36<<7 | 0x55,
+ 24643 - 19968: jis0208<<14 | 0x36<<7 | 0x53,
+ 24646 - 19968: jis0208<<14 | 0x36<<7 | 0x50,
+ 24647 - 19968: jis0212<<14 | 0x1C<<7 | 0x3E,
+ 24648 - 19968: jis0212<<14 | 0x1C<<7 | 0x3F,
+ 24649 - 19968: jis0212<<14 | 0x1C<<7 | 0x40,
+ 24650 - 19968: jis0208<<14 | 0x36<<7 | 0x4F,
+ 24651 - 19968: jis0208<<14 | 0x2D<<7 | 0x57,
+ 24652 - 19968: jis0212<<14 | 0x1C<<7 | 0x41,
+ 24653 - 19968: jis0208<<14 | 0x36<<7 | 0x51,
+ 24656 - 19968: jis0208<<14 | 0x15<<7 | 0x11,
+ 24657 - 19968: jis0212<<14 | 0x1C<<7 | 0x42,
+ 24658 - 19968: jis0208<<14 | 0x18<<7 | 0x10,
+ 24660 - 19968: jis0212<<14 | 0x1C<<7 | 0x43,
+ 24661 - 19968: jis0208<<14 | 0x1C<<7 | 0x59,
+ 24662 - 19968: jis0212<<14 | 0x1C<<7 | 0x44,
+ 24663 - 19968: jis0212<<14 | 0x1C<<7 | 0x45,
+ 24665 - 19968: jis0208<<14 | 0x36<<7 | 0x58,
+ 24666 - 19968: jis0208<<14 | 0x36<<7 | 0x4A,
+ 24669 - 19968: jis0208<<14 | 0x59<<7 | 0x01,
+ 24671 - 19968: jis0208<<14 | 0x36<<7 | 0x4E,
+ 24672 - 19968: jis0208<<14 | 0x36<<7 | 0x3E,
+ 24673 - 19968: jis0212<<14 | 0x1C<<7 | 0x47,
+ 24674 - 19968: jis0208<<14 | 0x11<<7 | 0x59,
+ 24675 - 19968: jis0208<<14 | 0x36<<7 | 0x52,
+ 24676 - 19968: jis0208<<14 | 0x36<<7 | 0x54,
+ 24677 - 19968: jis0208<<14 | 0x22<<7 | 0x30,
+ 24679 - 19968: jis0212<<14 | 0x1C<<7 | 0x48,
+ 24680 - 19968: jis0208<<14 | 0x19<<7 | 0x07,
+ 24681 - 19968: jis0208<<14 | 0x11<<7 | 0x17,
+ 24682 - 19968: jis0208<<14 | 0x36<<7 | 0x4C,
+ 24683 - 19968: jis0208<<14 | 0x36<<7 | 0x57,
+ 24684 - 19968: jis0208<<14 | 0x36<<7 | 0x56,
+ 24685 - 19968: jis0208<<14 | 0x15<<7 | 0x12,
+ 24687 - 19968: jis0208<<14 | 0x21<<7 | 0x08,
+ 24688 - 19968: jis0208<<14 | 0x12<<7 | 0x45,
+ 24689 - 19968: jis0212<<14 | 0x1C<<7 | 0x49,
+ 24693 - 19968: jis0208<<14 | 0x16<<7 | 0x22,
+ 24695 - 19968: jis0208<<14 | 0x36<<7 | 0x4D,
+ 24702 - 19968: jis0212<<14 | 0x1C<<7 | 0x4A,
+ 24703 - 19968: jis0212<<14 | 0x1C<<7 | 0x4B,
+ 24705 - 19968: jis0208<<14 | 0x36<<7 | 0x59,
+ 24706 - 19968: jis0212<<14 | 0x1C<<7 | 0x4C,
+ 24707 - 19968: jis0208<<14 | 0x36<<7 | 0x5C,
+ 24708 - 19968: jis0208<<14 | 0x37<<7 | 0x00,
+ 24709 - 19968: jis0208<<14 | 0x59<<7 | 0x02,
+ 24710 - 19968: jis0212<<14 | 0x1C<<7 | 0x4D,
+ 24712 - 19968: jis0212<<14 | 0x1C<<7 | 0x4E,
+ 24713 - 19968: jis0208<<14 | 0x1B<<7 | 0x1C,
+ 24714 - 19968: jis0208<<14 | 0x59<<7 | 0x03,
+ 24715 - 19968: jis0208<<14 | 0x37<<7 | 0x06,
+ 24716 - 19968: jis0208<<14 | 0x23<<7 | 0x4F,
+ 24717 - 19968: jis0208<<14 | 0x36<<7 | 0x5A,
+ 24718 - 19968: jis0212<<14 | 0x1C<<7 | 0x50,
+ 24721 - 19968: jis0212<<14 | 0x1C<<7 | 0x51,
+ 24722 - 19968: jis0208<<14 | 0x37<<7 | 0x04,
+ 24723 - 19968: jis0212<<14 | 0x1C<<7 | 0x52,
+ 24724 - 19968: jis0208<<14 | 0x11<<7 | 0x58,
+ 24725 - 19968: jis0212<<14 | 0x1C<<7 | 0x53,
+ 24726 - 19968: jis0208<<14 | 0x37<<7 | 0x02,
+ 24727 - 19968: jis0208<<14 | 0x37<<7 | 0x03,
+ 24728 - 19968: jis0212<<14 | 0x1C<<7 | 0x54,
+ 24730 - 19968: jis0208<<14 | 0x36<<7 | 0x5D,
+ 24731 - 19968: jis0208<<14 | 0x37<<7 | 0x01,
+ 24733 - 19968: jis0212<<14 | 0x1C<<7 | 0x55,
+ 24734 - 19968: jis0212<<14 | 0x1C<<7 | 0x56,
+ 24735 - 19968: jis0208<<14 | 0x17<<7 | 0x46,
+ 24736 - 19968: jis0208<<14 | 0x2C<<7 | 0x09,
+ 24738 - 19968: jis0212<<14 | 0x1C<<7 | 0x57,
+ 24739 - 19968: jis0208<<14 | 0x13<<7 | 0x14,
+ 24740 - 19968: jis0212<<14 | 0x1C<<7 | 0x58,
+ 24741 - 19968: jis0212<<14 | 0x1C<<7 | 0x59,
+ 24742 - 19968: jis0208<<14 | 0x10<<7 | 0x38,
+ 24743 - 19968: jis0208<<14 | 0x37<<7 | 0x05,
+ 24744 - 19968: jis0212<<14 | 0x1C<<7 | 0x5A,
+ 24745 - 19968: jis0208<<14 | 0x26<<7 | 0x19,
+ 24746 - 19968: jis0208<<14 | 0x0F<<7 | 0x0C,
+ 24752 - 19968: jis0212<<14 | 0x1C<<7 | 0x5B,
+ 24753 - 19968: jis0212<<14 | 0x1C<<7 | 0x5C,
+ 24754 - 19968: jis0208<<14 | 0x27<<7 | 0x40,
+ 24755 - 19968: jis0208<<14 | 0x36<<7 | 0x3B,
+ 24756 - 19968: jis0208<<14 | 0x37<<7 | 0x0B,
+ 24757 - 19968: jis0208<<14 | 0x37<<7 | 0x0F,
+ 24758 - 19968: jis0208<<14 | 0x2B<<7 | 0x44,
+ 24759 - 19968: jis0212<<14 | 0x1C<<7 | 0x5D,
+ 24760 - 19968: jis0208<<14 | 0x37<<7 | 0x08,
+ 24763 - 19968: jis0212<<14 | 0x1D<<7 | 0x00,
+ 24764 - 19968: jis0208<<14 | 0x24<<7 | 0x48,
+ 24765 - 19968: jis0208<<14 | 0x37<<7 | 0x0D,
+ 24766 - 19968: jis0212<<14 | 0x1D<<7 | 0x01,
+ 24770 - 19968: jis0212<<14 | 0x1D<<7 | 0x02,
+ 24772 - 19968: jis0212<<14 | 0x1D<<7 | 0x03,
+ 24773 - 19968: jis0208<<14 | 0x1D<<7 | 0x4F,
+ 24774 - 19968: jis0208<<14 | 0x37<<7 | 0x0E,
+ 24775 - 19968: jis0208<<14 | 0x25<<7 | 0x36,
+ 24776 - 19968: jis0212<<14 | 0x1D<<7 | 0x04,
+ 24777 - 19968: jis0212<<14 | 0x1D<<7 | 0x05,
+ 24778 - 19968: jis0212<<14 | 0x1D<<7 | 0x06,
+ 24779 - 19968: jis0212<<14 | 0x1D<<7 | 0x07,
+ 24782 - 19968: jis0212<<14 | 0x1D<<7 | 0x08,
+ 24783 - 19968: jis0212<<14 | 0x1D<<7 | 0x09,
+ 24785 - 19968: jis0208<<14 | 0x2E<<7 | 0x26,
+ 24787 - 19968: jis0208<<14 | 0x37<<7 | 0x0A,
+ 24788 - 19968: jis0212<<14 | 0x1D<<7 | 0x0A,
+ 24789 - 19968: jis0208<<14 | 0x59<<7 | 0x05,
+ 24792 - 19968: jis0208<<14 | 0x37<<7 | 0x10,
+ 24793 - 19968: jis0212<<14 | 0x1D<<7 | 0x0C,
+ 24794 - 19968: jis0208<<14 | 0x18<<7 | 0x5A,
+ 24795 - 19968: jis0212<<14 | 0x1D<<7 | 0x0D,
+ 24796 - 19968: jis0208<<14 | 0x1F<<7 | 0x2A,
+ 24797 - 19968: jis0212<<14 | 0x1D<<7 | 0x0E,
+ 24798 - 19968: jis0208<<14 | 0x59<<7 | 0x04,
+ 24799 - 19968: jis0208<<14 | 0x0F<<7 | 0x33,
+ 24800 - 19968: jis0208<<14 | 0x37<<7 | 0x09,
+ 24801 - 19968: jis0208<<14 | 0x37<<7 | 0x07,
+ 24802 - 19968: jis0212<<14 | 0x1D<<7 | 0x10,
+ 24803 - 19968: jis0208<<14 | 0x20<<7 | 0x39,
+ 24805 - 19968: jis0212<<14 | 0x1D<<7 | 0x11,
+ 24807 - 19968: jis0208<<14 | 0x36<<7 | 0x5B,
+ 24808 - 19968: jis0208<<14 | 0x1A<<7 | 0x13,
+ 24816 - 19968: jis0208<<14 | 0x21<<7 | 0x25,
+ 24817 - 19968: jis0208<<14 | 0x37<<7 | 0x1C,
+ 24818 - 19968: jis0208<<14 | 0x59<<7 | 0x07,
+ 24819 - 19968: jis0208<<14 | 0x20<<7 | 0x3A,
+ 24820 - 19968: jis0208<<14 | 0x37<<7 | 0x17,
+ 24821 - 19968: jis0212<<14 | 0x1D<<7 | 0x13,
+ 24822 - 19968: jis0208<<14 | 0x37<<7 | 0x14,
+ 24823 - 19968: jis0208<<14 | 0x37<<7 | 0x15,
+ 24824 - 19968: jis0212<<14 | 0x1D<<7 | 0x14,
+ 24825 - 19968: jis0208<<14 | 0x1B<<7 | 0x45,
+ 24826 - 19968: jis0208<<14 | 0x37<<7 | 0x18,
+ 24827 - 19968: jis0208<<14 | 0x37<<7 | 0x1B,
+ 24828 - 19968: jis0212<<14 | 0x1D<<7 | 0x15,
+ 24829 - 19968: jis0212<<14 | 0x1D<<7 | 0x16,
+ 24832 - 19968: jis0208<<14 | 0x37<<7 | 0x16,
+ 24833 - 19968: jis0208<<14 | 0x1C<<7 | 0x04,
+ 24834 - 19968: jis0212<<14 | 0x1D<<7 | 0x17,
+ 24835 - 19968: jis0208<<14 | 0x37<<7 | 0x19,
+ 24838 - 19968: jis0208<<14 | 0x37<<7 | 0x13,
+ 24839 - 19968: jis0212<<14 | 0x1D<<7 | 0x18,
+ 24840 - 19968: jis0208<<14 | 0x2B<<7 | 0x5B,
+ 24841 - 19968: jis0208<<14 | 0x2B<<7 | 0x5A,
+ 24842 - 19968: jis0212<<14 | 0x1D<<7 | 0x19,
+ 24844 - 19968: jis0212<<14 | 0x1D<<7 | 0x1A,
+ 24845 - 19968: jis0208<<14 | 0x37<<7 | 0x1D,
+ 24846 - 19968: jis0208<<14 | 0x37<<7 | 0x1E,
+ 24847 - 19968: jis0208<<14 | 0x0F<<7 | 0x34,
+ 24848 - 19968: jis0212<<14 | 0x1D<<7 | 0x1B,
+ 24849 - 19968: jis0208<<14 | 0x59<<7 | 0x08,
+ 24850 - 19968: jis0212<<14 | 0x1D<<7 | 0x1D,
+ 24851 - 19968: jis0212<<14 | 0x1D<<7 | 0x1E,
+ 24852 - 19968: jis0212<<14 | 0x1D<<7 | 0x1F,
+ 24853 - 19968: jis0208<<14 | 0x37<<7 | 0x12,
+ 24854 - 19968: jis0212<<14 | 0x1D<<7 | 0x20,
+ 24855 - 19968: jis0212<<14 | 0x1D<<7 | 0x21,
+ 24857 - 19968: jis0212<<14 | 0x1D<<7 | 0x22,
+ 24858 - 19968: jis0208<<14 | 0x15<<7 | 0x51,
+ 24859 - 19968: jis0208<<14 | 0x0F<<7 | 0x05,
+ 24860 - 19968: jis0212<<14 | 0x1D<<7 | 0x23,
+ 24862 - 19968: jis0212<<14 | 0x1D<<7 | 0x24,
+ 24863 - 19968: jis0208<<14 | 0x13<<7 | 0x15,
+ 24864 - 19968: jis0208<<14 | 0x59<<7 | 0x06,
+ 24865 - 19968: jis0208<<14 | 0x37<<7 | 0x1A,
+ 24866 - 19968: jis0212<<14 | 0x1D<<7 | 0x25,
+ 24871 - 19968: jis0208<<14 | 0x37<<7 | 0x22,
+ 24872 - 19968: jis0208<<14 | 0x37<<7 | 0x21,
+ 24874 - 19968: jis0212<<14 | 0x1D<<7 | 0x26,
+ 24875 - 19968: jis0212<<14 | 0x1D<<7 | 0x27,
+ 24876 - 19968: jis0208<<14 | 0x37<<7 | 0x26,
+ 24880 - 19968: jis0208<<14 | 0x59<<7 | 0x0A,
+ 24881 - 19968: jis0212<<14 | 0x1D<<7 | 0x29,
+ 24884 - 19968: jis0208<<14 | 0x37<<7 | 0x27,
+ 24885 - 19968: jis0212<<14 | 0x1D<<7 | 0x2A,
+ 24886 - 19968: jis0212<<14 | 0x1D<<7 | 0x2B,
+ 24887 - 19968: jis0208<<14 | 0x59<<7 | 0x09,
+ 24889 - 19968: jis0212<<14 | 0x1D<<7 | 0x2D,
+ 24892 - 19968: jis0208<<14 | 0x37<<7 | 0x25,
+ 24893 - 19968: jis0208<<14 | 0x37<<7 | 0x28,
+ 24894 - 19968: jis0208<<14 | 0x37<<7 | 0x20,
+ 24895 - 19968: jis0208<<14 | 0x37<<7 | 0x24,
+ 24897 - 19968: jis0212<<14 | 0x1D<<7 | 0x2E,
+ 24898 - 19968: jis0208<<14 | 0x37<<7 | 0x29,
+ 24900 - 19968: jis0208<<14 | 0x37<<7 | 0x2A,
+ 24901 - 19968: jis0212<<14 | 0x1D<<7 | 0x2F,
+ 24902 - 19968: jis0212<<14 | 0x1D<<7 | 0x30,
+ 24903 - 19968: jis0208<<14 | 0x37<<7 | 0x1F,
+ 24904 - 19968: jis0208<<14 | 0x1A<<7 | 0x5B,
+ 24905 - 19968: jis0212<<14 | 0x1D<<7 | 0x31,
+ 24906 - 19968: jis0208<<14 | 0x37<<7 | 0x23,
+ 24907 - 19968: jis0208<<14 | 0x21<<7 | 0x35,
+ 24908 - 19968: jis0208<<14 | 0x18<<7 | 0x11,
+ 24909 - 19968: jis0208<<14 | 0x37<<7 | 0x11,
+ 24910 - 19968: jis0208<<14 | 0x1E<<7 | 0x14,
+ 24915 - 19968: jis0208<<14 | 0x37<<7 | 0x37,
+ 24917 - 19968: jis0208<<14 | 0x29<<7 | 0x48,
+ 24920 - 19968: jis0208<<14 | 0x37<<7 | 0x2D,
+ 24921 - 19968: jis0208<<14 | 0x37<<7 | 0x2E,
+ 24922 - 19968: jis0208<<14 | 0x37<<7 | 0x2F,
+ 24925 - 19968: jis0208<<14 | 0x37<<7 | 0x36,
+ 24926 - 19968: jis0212<<14 | 0x1D<<7 | 0x32,
+ 24927 - 19968: jis0208<<14 | 0x37<<7 | 0x35,
+ 24928 - 19968: jis0212<<14 | 0x1D<<7 | 0x33,
+ 24930 - 19968: jis0208<<14 | 0x2A<<7 | 0x5C,
+ 24931 - 19968: jis0208<<14 | 0x13<<7 | 0x16,
+ 24933 - 19968: jis0208<<14 | 0x37<<7 | 0x33,
+ 24935 - 19968: jis0208<<14 | 0x16<<7 | 0x24,
+ 24936 - 19968: jis0208<<14 | 0x12<<7 | 0x13,
+ 24939 - 19968: jis0208<<14 | 0x37<<7 | 0x30,
+ 24940 - 19968: jis0212<<14 | 0x1D<<7 | 0x34,
+ 24942 - 19968: jis0208<<14 | 0x2D<<7 | 0x17,
+ 24943 - 19968: jis0208<<14 | 0x37<<7 | 0x32,
+ 24944 - 19968: jis0208<<14 | 0x0F<<7 | 0x35,
+ 24945 - 19968: jis0208<<14 | 0x37<<7 | 0x34,
+ 24946 - 19968: jis0212<<14 | 0x1D<<7 | 0x35,
+ 24947 - 19968: jis0208<<14 | 0x37<<7 | 0x2B,
+ 24948 - 19968: jis0208<<14 | 0x37<<7 | 0x31,
+ 24949 - 19968: jis0208<<14 | 0x37<<7 | 0x38,
+ 24950 - 19968: jis0208<<14 | 0x16<<7 | 0x23,
+ 24951 - 19968: jis0208<<14 | 0x37<<7 | 0x2C,
+ 24952 - 19968: jis0212<<14 | 0x1D<<7 | 0x36,
+ 24955 - 19968: jis0212<<14 | 0x1D<<7 | 0x37,
+ 24956 - 19968: jis0212<<14 | 0x1D<<7 | 0x38,
+ 24958 - 19968: jis0208<<14 | 0x2C<<7 | 0x3C,
+ 24959 - 19968: jis0212<<14 | 0x1D<<7 | 0x39,
+ 24960 - 19968: jis0212<<14 | 0x1D<<7 | 0x3A,
+ 24961 - 19968: jis0212<<14 | 0x1D<<7 | 0x3B,
+ 24962 - 19968: jis0208<<14 | 0x2C<<7 | 0x0A,
+ 24963 - 19968: jis0212<<14 | 0x1D<<7 | 0x3C,
+ 24964 - 19968: jis0212<<14 | 0x1D<<7 | 0x3D,
+ 24967 - 19968: jis0208<<14 | 0x37<<7 | 0x3B,
+ 24970 - 19968: jis0208<<14 | 0x37<<7 | 0x3F,
+ 24971 - 19968: jis0212<<14 | 0x1D<<7 | 0x3E,
+ 24973 - 19968: jis0212<<14 | 0x1D<<7 | 0x3F,
+ 24974 - 19968: jis0208<<14 | 0x20<<7 | 0x5D,
+ 24976 - 19968: jis0208<<14 | 0x2D<<7 | 0x58,
+ 24977 - 19968: jis0208<<14 | 0x37<<7 | 0x40,
+ 24978 - 19968: jis0212<<14 | 0x1D<<7 | 0x40,
+ 24979 - 19968: jis0212<<14 | 0x1D<<7 | 0x41,
+ 24980 - 19968: jis0208<<14 | 0x37<<7 | 0x3D,
+ 24982 - 19968: jis0208<<14 | 0x37<<7 | 0x3A,
+ 24983 - 19968: jis0212<<14 | 0x1D<<7 | 0x42,
+ 24984 - 19968: jis0208<<14 | 0x59<<7 | 0x0B,
+ 24985 - 19968: jis0208<<14 | 0x37<<7 | 0x39,
+ 24986 - 19968: jis0208<<14 | 0x37<<7 | 0x3E,
+ 24988 - 19968: jis0212<<14 | 0x1D<<7 | 0x44,
+ 24989 - 19968: jis0212<<14 | 0x1D<<7 | 0x45,
+ 24991 - 19968: jis0212<<14 | 0x1D<<7 | 0x46,
+ 24992 - 19968: jis0212<<14 | 0x1D<<7 | 0x47,
+ 24996 - 19968: jis0208<<14 | 0x29<<7 | 0x0F,
+ 24997 - 19968: jis0212<<14 | 0x1D<<7 | 0x48,
+ 24999 - 19968: jis0208<<14 | 0x25<<7 | 0x13,
+ 25000 - 19968: jis0212<<14 | 0x1D<<7 | 0x49,
+ 25001 - 19968: jis0208<<14 | 0x16<<7 | 0x25,
+ 25002 - 19968: jis0212<<14 | 0x1D<<7 | 0x4A,
+ 25003 - 19968: jis0208<<14 | 0x37<<7 | 0x41,
+ 25004 - 19968: jis0208<<14 | 0x37<<7 | 0x3C,
+ 25005 - 19968: jis0212<<14 | 0x1D<<7 | 0x4B,
+ 25006 - 19968: jis0208<<14 | 0x37<<7 | 0x42,
+ 25010 - 19968: jis0208<<14 | 0x16<<7 | 0x5A,
+ 25014 - 19968: jis0208<<14 | 0x11<<7 | 0x10,
+ 25016 - 19968: jis0212<<14 | 0x1D<<7 | 0x4C,
+ 25017 - 19968: jis0212<<14 | 0x1D<<7 | 0x4D,
+ 25018 - 19968: jis0208<<14 | 0x37<<7 | 0x4A,
+ 25020 - 19968: jis0212<<14 | 0x1D<<7 | 0x4E,
+ 25022 - 19968: jis0208<<14 | 0x13<<7 | 0x17,
+ 25024 - 19968: jis0212<<14 | 0x1D<<7 | 0x4F,
+ 25025 - 19968: jis0212<<14 | 0x1D<<7 | 0x50,
+ 25026 - 19968: jis0212<<14 | 0x1D<<7 | 0x51,
+ 25027 - 19968: jis0208<<14 | 0x37<<7 | 0x48,
+ 25030 - 19968: jis0208<<14 | 0x37<<7 | 0x49,
+ 25031 - 19968: jis0208<<14 | 0x19<<7 | 0x08,
+ 25032 - 19968: jis0208<<14 | 0x37<<7 | 0x47,
+ 25033 - 19968: jis0208<<14 | 0x37<<7 | 0x45,
+ 25034 - 19968: jis0208<<14 | 0x37<<7 | 0x44,
+ 25035 - 19968: jis0208<<14 | 0x37<<7 | 0x4B,
+ 25036 - 19968: jis0208<<14 | 0x37<<7 | 0x43,
+ 25037 - 19968: jis0208<<14 | 0x37<<7 | 0x4D,
+ 25038 - 19968: jis0212<<14 | 0x1D<<7 | 0x52,
+ 25039 - 19968: jis0212<<14 | 0x1D<<7 | 0x53,
+ 25040 - 19968: jis0208<<14 | 0x11<<7 | 0x5A,
+ 25045 - 19968: jis0212<<14 | 0x1D<<7 | 0x54,
+ 25052 - 19968: jis0212<<14 | 0x1D<<7 | 0x55,
+ 25053 - 19968: jis0212<<14 | 0x1D<<7 | 0x56,
+ 25054 - 19968: jis0212<<14 | 0x1D<<7 | 0x57,
+ 25055 - 19968: jis0212<<14 | 0x1D<<7 | 0x58,
+ 25057 - 19968: jis0212<<14 | 0x1D<<7 | 0x59,
+ 25058 - 19968: jis0212<<14 | 0x1D<<7 | 0x5A,
+ 25059 - 19968: jis0208<<14 | 0x37<<7 | 0x4F,
+ 25061 - 19968: jis0212<<14 | 0x1D<<7 | 0x5D,
+ 25062 - 19968: jis0208<<14 | 0x37<<7 | 0x4E,
+ 25063 - 19968: jis0212<<14 | 0x1D<<7 | 0x5B,
+ 25065 - 19968: jis0212<<14 | 0x1D<<7 | 0x5C,
+ 25068 - 19968: jis0212<<14 | 0x1E<<7 | 0x00,
+ 25069 - 19968: jis0212<<14 | 0x1E<<7 | 0x01,
+ 25071 - 19968: jis0212<<14 | 0x1E<<7 | 0x02,
+ 25074 - 19968: jis0208<<14 | 0x23<<7 | 0x07,
+ 25076 - 19968: jis0208<<14 | 0x37<<7 | 0x52,
+ 25078 - 19968: jis0208<<14 | 0x37<<7 | 0x50,
+ 25079 - 19968: jis0208<<14 | 0x37<<7 | 0x46,
+ 25080 - 19968: jis0208<<14 | 0x16<<7 | 0x5B,
+ 25082 - 19968: jis0208<<14 | 0x37<<7 | 0x51,
+ 25084 - 19968: jis0208<<14 | 0x37<<7 | 0x55,
+ 25085 - 19968: jis0208<<14 | 0x37<<7 | 0x54,
+ 25086 - 19968: jis0208<<14 | 0x37<<7 | 0x56,
+ 25087 - 19968: jis0208<<14 | 0x37<<7 | 0x53,
+ 25088 - 19968: jis0208<<14 | 0x37<<7 | 0x57,
+ 25089 - 19968: jis0212<<14 | 0x1E<<7 | 0x03,
+ 25091 - 19968: jis0212<<14 | 0x1E<<7 | 0x04,
+ 25092 - 19968: jis0212<<14 | 0x1E<<7 | 0x05,
+ 25095 - 19968: jis0212<<14 | 0x1E<<7 | 0x06,
+ 25096 - 19968: jis0208<<14 | 0x37<<7 | 0x58,
+ 25097 - 19968: jis0208<<14 | 0x37<<7 | 0x59,
+ 25098 - 19968: jis0208<<14 | 0x29<<7 | 0x49,
+ 25100 - 19968: jis0208<<14 | 0x37<<7 | 0x5B,
+ 25101 - 19968: jis0208<<14 | 0x37<<7 | 0x5A,
+ 25102 - 19968: jis0208<<14 | 0x1C<<7 | 0x1E,
+ 25104 - 19968: jis0208<<14 | 0x1F<<7 | 0x0D,
+ 25105 - 19968: jis0208<<14 | 0x11<<7 | 0x45,
+ 25106 - 19968: jis0208<<14 | 0x11<<7 | 0x5B,
+ 25107 - 19968: jis0208<<14 | 0x59<<7 | 0x0C,
+ 25108 - 19968: jis0208<<14 | 0x37<<7 | 0x5C,
+ 25109 - 19968: jis0212<<14 | 0x1E<<7 | 0x08,
+ 25110 - 19968: jis0208<<14 | 0x0F<<7 | 0x1E,
+ 25114 - 19968: jis0208<<14 | 0x1F<<7 | 0x2B,
+ 25115 - 19968: jis0208<<14 | 0x37<<7 | 0x5D,
+ 25116 - 19968: jis0212<<14 | 0x1E<<7 | 0x09,
+ 25117 - 19968: jis0208<<14 | 0x4B<<7 | 0x22,
+ 25118 - 19968: jis0208<<14 | 0x38<<7 | 0x00,
+ 25119 - 19968: jis0208<<14 | 0x16<<7 | 0x40,
+ 25120 - 19968: jis0212<<14 | 0x1E<<7 | 0x0A,
+ 25121 - 19968: jis0208<<14 | 0x38<<7 | 0x01,
+ 25122 - 19968: jis0212<<14 | 0x1E<<7 | 0x0B,
+ 25123 - 19968: jis0212<<14 | 0x1E<<7 | 0x0C,
+ 25126 - 19968: jis0208<<14 | 0x1F<<7 | 0x4E,
+ 25127 - 19968: jis0212<<14 | 0x1E<<7 | 0x0D,
+ 25129 - 19968: jis0212<<14 | 0x1E<<7 | 0x0E,
+ 25130 - 19968: jis0208<<14 | 0x38<<7 | 0x02,
+ 25131 - 19968: jis0212<<14 | 0x1E<<7 | 0x0F,
+ 25134 - 19968: jis0208<<14 | 0x38<<7 | 0x03,
+ 25135 - 19968: jis0208<<14 | 0x14<<7 | 0x19,
+ 25136 - 19968: jis0208<<14 | 0x38<<7 | 0x04,
+ 25138 - 19968: jis0208<<14 | 0x38<<7 | 0x05,
+ 25139 - 19968: jis0208<<14 | 0x38<<7 | 0x06,
+ 25140 - 19968: jis0208<<14 | 0x21<<7 | 0x36,
+ 25144 - 19968: jis0208<<14 | 0x17<<7 | 0x2C,
+ 25145 - 19968: jis0212<<14 | 0x1E<<7 | 0x10,
+ 25147 - 19968: jis0208<<14 | 0x2B<<7 | 0x40,
+ 25149 - 19968: jis0212<<14 | 0x1E<<7 | 0x11,
+ 25151 - 19968: jis0208<<14 | 0x2A<<7 | 0x1B,
+ 25152 - 19968: jis0208<<14 | 0x1C<<7 | 0x49,
+ 25153 - 19968: jis0208<<14 | 0x38<<7 | 0x07,
+ 25154 - 19968: jis0212<<14 | 0x1E<<7 | 0x12,
+ 25155 - 19968: jis0212<<14 | 0x1E<<7 | 0x13,
+ 25156 - 19968: jis0212<<14 | 0x1E<<7 | 0x14,
+ 25158 - 19968: jis0212<<14 | 0x1E<<7 | 0x15,
+ 25159 - 19968: jis0208<<14 | 0x1F<<7 | 0x4F,
+ 25160 - 19968: jis0208<<14 | 0x4D<<7 | 0x1C,
+ 25161 - 19968: jis0208<<14 | 0x27<<7 | 0x41,
+ 25163 - 19968: jis0208<<14 | 0x1B<<7 | 0x49,
+ 25164 - 19968: jis0212<<14 | 0x1E<<7 | 0x16,
+ 25165 - 19968: jis0208<<14 | 0x19<<7 | 0x2C,
+ 25166 - 19968: jis0208<<14 | 0x38<<7 | 0x08,
+ 25168 - 19968: jis0212<<14 | 0x1E<<7 | 0x17,
+ 25169 - 19968: jis0212<<14 | 0x1E<<7 | 0x18,
+ 25170 - 19968: jis0212<<14 | 0x1E<<7 | 0x19,
+ 25171 - 19968: jis0208<<14 | 0x21<<7 | 0x26,
+ 25172 - 19968: jis0212<<14 | 0x1E<<7 | 0x1A,
+ 25173 - 19968: jis0208<<14 | 0x29<<7 | 0x06,
+ 25174 - 19968: jis0212<<14 | 0x1E<<7 | 0x1B,
+ 25176 - 19968: jis0208<<14 | 0x21<<7 | 0x50,
+ 25178 - 19968: jis0212<<14 | 0x1E<<7 | 0x1C,
+ 25179 - 19968: jis0208<<14 | 0x38<<7 | 0x0B,
+ 25180 - 19968: jis0212<<14 | 0x1E<<7 | 0x1D,
+ 25182 - 19968: jis0208<<14 | 0x38<<7 | 0x09,
+ 25184 - 19968: jis0208<<14 | 0x38<<7 | 0x0C,
+ 25187 - 19968: jis0208<<14 | 0x38<<7 | 0x0A,
+ 25188 - 19968: jis0212<<14 | 0x1E<<7 | 0x1E,
+ 25192 - 19968: jis0208<<14 | 0x38<<7 | 0x0D,
+ 25197 - 19968: jis0212<<14 | 0x1E<<7 | 0x1F,
+ 25198 - 19968: jis0208<<14 | 0x29<<7 | 0x10,
+ 25199 - 19968: jis0212<<14 | 0x1E<<7 | 0x20,
+ 25201 - 19968: jis0208<<14 | 0x0F<<7 | 0x16,
+ 25203 - 19968: jis0212<<14 | 0x1E<<7 | 0x21,
+ 25206 - 19968: jis0208<<14 | 0x28<<7 | 0x3D,
+ 25209 - 19968: jis0208<<14 | 0x27<<7 | 0x42,
+ 25210 - 19968: jis0212<<14 | 0x1E<<7 | 0x22,
+ 25212 - 19968: jis0208<<14 | 0x38<<7 | 0x0E,
+ 25213 - 19968: jis0212<<14 | 0x1E<<7 | 0x23,
+ 25214 - 19968: jis0208<<14 | 0x38<<7 | 0x11,
+ 25215 - 19968: jis0208<<14 | 0x1D<<7 | 0x14,
+ 25216 - 19968: jis0208<<14 | 0x14<<7 | 0x1A,
+ 25218 - 19968: jis0208<<14 | 0x38<<7 | 0x0F,
+ 25219 - 19968: jis0208<<14 | 0x38<<7 | 0x16,
+ 25220 - 19968: jis0208<<14 | 0x1D<<7 | 0x15,
+ 25225 - 19968: jis0208<<14 | 0x38<<7 | 0x10,
+ 25226 - 19968: jis0208<<14 | 0x26<<7 | 0x23,
+ 25229 - 19968: jis0212<<14 | 0x1E<<7 | 0x24,
+ 25230 - 19968: jis0212<<14 | 0x1E<<7 | 0x25,
+ 25231 - 19968: jis0212<<14 | 0x1E<<7 | 0x26,
+ 25232 - 19968: jis0212<<14 | 0x1E<<7 | 0x27,
+ 25233 - 19968: jis0208<<14 | 0x2C<<7 | 0x3D,
+ 25234 - 19968: jis0208<<14 | 0x38<<7 | 0x12,
+ 25235 - 19968: jis0208<<14 | 0x38<<7 | 0x13,
+ 25236 - 19968: jis0208<<14 | 0x38<<7 | 0x17,
+ 25237 - 19968: jis0208<<14 | 0x24<<7 | 0x49,
+ 25238 - 19968: jis0208<<14 | 0x38<<7 | 0x14,
+ 25239 - 19968: jis0208<<14 | 0x18<<7 | 0x12,
+ 25240 - 19968: jis0208<<14 | 0x1F<<7 | 0x3D,
+ 25243 - 19968: jis0208<<14 | 0x38<<7 | 0x25,
+ 25244 - 19968: jis0208<<14 | 0x27<<7 | 0x13,
+ 25246 - 19968: jis0208<<14 | 0x21<<7 | 0x51,
+ 25254 - 19968: jis0208<<14 | 0x59<<7 | 0x0D,
+ 25256 - 19968: jis0212<<14 | 0x1E<<7 | 0x29,
+ 25259 - 19968: jis0208<<14 | 0x27<<7 | 0x43,
+ 25260 - 19968: jis0208<<14 | 0x39<<7 | 0x0C,
+ 25265 - 19968: jis0208<<14 | 0x29<<7 | 0x59,
+ 25267 - 19968: jis0212<<14 | 0x1E<<7 | 0x2A,
+ 25269 - 19968: jis0208<<14 | 0x23<<7 | 0x50,
+ 25270 - 19968: jis0212<<14 | 0x1E<<7 | 0x2B,
+ 25271 - 19968: jis0212<<14 | 0x1E<<7 | 0x2C,
+ 25273 - 19968: jis0208<<14 | 0x2A<<7 | 0x54,
+ 25274 - 19968: jis0212<<14 | 0x1E<<7 | 0x2D,
+ 25275 - 19968: jis0208<<14 | 0x38<<7 | 0x1A,
+ 25276 - 19968: jis0208<<14 | 0x11<<7 | 0x00,
+ 25277 - 19968: jis0208<<14 | 0x22<<7 | 0x49,
+ 25278 - 19968: jis0212<<14 | 0x1E<<7 | 0x2E,
+ 25279 - 19968: jis0212<<14 | 0x1E<<7 | 0x2F,
+ 25282 - 19968: jis0208<<14 | 0x38<<7 | 0x23,
+ 25284 - 19968: jis0212<<14 | 0x1E<<7 | 0x30,
+ 25285 - 19968: jis0208<<14 | 0x22<<7 | 0x13,
+ 25286 - 19968: jis0208<<14 | 0x38<<7 | 0x1D,
+ 25287 - 19968: jis0208<<14 | 0x38<<7 | 0x24,
+ 25288 - 19968: jis0208<<14 | 0x38<<7 | 0x1F,
+ 25289 - 19968: jis0208<<14 | 0x38<<7 | 0x26,
+ 25290 - 19968: jis0208<<14 | 0x38<<7 | 0x22,
+ 25292 - 19968: jis0208<<14 | 0x38<<7 | 0x21,
+ 25293 - 19968: jis0208<<14 | 0x26<<7 | 0x4E,
+ 25294 - 19968: jis0212<<14 | 0x1E<<7 | 0x31,
+ 25295 - 19968: jis0208<<14 | 0x38<<7 | 0x1B,
+ 25296 - 19968: jis0208<<14 | 0x11<<7 | 0x5C,
+ 25297 - 19968: jis0208<<14 | 0x38<<7 | 0x19,
+ 25298 - 19968: jis0208<<14 | 0x14<<7 | 0x50,
+ 25299 - 19968: jis0208<<14 | 0x21<<7 | 0x52,
+ 25300 - 19968: jis0208<<14 | 0x38<<7 | 0x15,
+ 25301 - 19968: jis0212<<14 | 0x1E<<7 | 0x32,
+ 25302 - 19968: jis0212<<14 | 0x1E<<7 | 0x33,
+ 25303 - 19968: jis0208<<14 | 0x38<<7 | 0x18,
+ 25304 - 19968: jis0208<<14 | 0x18<<7 | 0x13,
+ 25305 - 19968: jis0208<<14 | 0x1F<<7 | 0x3A,
+ 25306 - 19968: jis0212<<14 | 0x1E<<7 | 0x34,
+ 25307 - 19968: jis0208<<14 | 0x1D<<7 | 0x16,
+ 25308 - 19968: jis0208<<14 | 0x38<<7 | 0x20,
+ 25309 - 19968: jis0208<<14 | 0x26<<7 | 0x31,
+ 25312 - 19968: jis0208<<14 | 0x14<<7 | 0x51,
+ 25313 - 19968: jis0208<<14 | 0x12<<7 | 0x27,
+ 25322 - 19968: jis0212<<14 | 0x1E<<7 | 0x35,
+ 25324 - 19968: jis0208<<14 | 0x12<<7 | 0x46,
+ 25325 - 19968: jis0208<<14 | 0x1E<<7 | 0x00,
+ 25326 - 19968: jis0208<<14 | 0x38<<7 | 0x28,
+ 25327 - 19968: jis0208<<14 | 0x38<<7 | 0x2D,
+ 25329 - 19968: jis0208<<14 | 0x38<<7 | 0x29,
+ 25330 - 19968: jis0212<<14 | 0x1E<<7 | 0x36,
+ 25331 - 19968: jis0208<<14 | 0x16<<7 | 0x5C,
+ 25332 - 19968: jis0212<<14 | 0x1E<<7 | 0x37,
+ 25333 - 19968: jis0208<<14 | 0x38<<7 | 0x2E,
+ 25334 - 19968: jis0208<<14 | 0x1A<<7 | 0x01,
+ 25335 - 19968: jis0208<<14 | 0x18<<7 | 0x48,
+ 25340 - 19968: jis0212<<14 | 0x1E<<7 | 0x38,
+ 25341 - 19968: jis0212<<14 | 0x1E<<7 | 0x39,
+ 25342 - 19968: jis0208<<14 | 0x1C<<7 | 0x05,
+ 25343 - 19968: jis0208<<14 | 0x38<<7 | 0x1C,
+ 25345 - 19968: jis0208<<14 | 0x1A<<7 | 0x5C,
+ 25346 - 19968: jis0208<<14 | 0x38<<7 | 0x2B,
+ 25347 - 19968: jis0212<<14 | 0x1E<<7 | 0x3A,
+ 25348 - 19968: jis0212<<14 | 0x1E<<7 | 0x3B,
+ 25351 - 19968: jis0208<<14 | 0x1A<<7 | 0x37,
+ 25352 - 19968: jis0208<<14 | 0x38<<7 | 0x2C,
+ 25353 - 19968: jis0208<<14 | 0x0F<<7 | 0x23,
+ 25354 - 19968: jis0212<<14 | 0x1E<<7 | 0x3C,
+ 25355 - 19968: jis0212<<14 | 0x1E<<7 | 0x3D,
+ 25356 - 19968: jis0208<<14 | 0x38<<7 | 0x27,
+ 25357 - 19968: jis0212<<14 | 0x1E<<7 | 0x3E,
+ 25360 - 19968: jis0212<<14 | 0x1E<<7 | 0x3F,
+ 25361 - 19968: jis0208<<14 | 0x23<<7 | 0x08,
+ 25363 - 19968: jis0212<<14 | 0x1E<<7 | 0x40,
+ 25366 - 19968: jis0212<<14 | 0x1E<<7 | 0x41,
+ 25368 - 19968: jis0212<<14 | 0x1E<<7 | 0x42,
+ 25369 - 19968: jis0208<<14 | 0x14<<7 | 0x52,
+ 25375 - 19968: jis0208<<14 | 0x15<<7 | 0x13,
+ 25383 - 19968: jis0208<<14 | 0x38<<7 | 0x2A,
+ 25384 - 19968: jis0208<<14 | 0x0F<<7 | 0x06,
+ 25385 - 19968: jis0212<<14 | 0x1E<<7 | 0x43,
+ 25386 - 19968: jis0212<<14 | 0x1E<<7 | 0x44,
+ 25387 - 19968: jis0208<<14 | 0x19<<7 | 0x22,
+ 25389 - 19968: jis0212<<14 | 0x1E<<7 | 0x45,
+ 25391 - 19968: jis0208<<14 | 0x1E<<7 | 0x15,
+ 25397 - 19968: jis0212<<14 | 0x1E<<7 | 0x46,
+ 25398 - 19968: jis0212<<14 | 0x1E<<7 | 0x47,
+ 25401 - 19968: jis0212<<14 | 0x1E<<7 | 0x48,
+ 25402 - 19968: jis0208<<14 | 0x23<<7 | 0x51,
+ 25404 - 19968: jis0212<<14 | 0x1E<<7 | 0x49,
+ 25405 - 19968: jis0208<<14 | 0x27<<7 | 0x33,
+ 25406 - 19968: jis0208<<14 | 0x38<<7 | 0x30,
+ 25407 - 19968: jis0208<<14 | 0x20<<7 | 0x3D,
+ 25409 - 19968: jis0212<<14 | 0x1E<<7 | 0x4A,
+ 25410 - 19968: jis0212<<14 | 0x1E<<7 | 0x4B,
+ 25411 - 19968: jis0212<<14 | 0x1E<<7 | 0x4C,
+ 25412 - 19968: jis0212<<14 | 0x1E<<7 | 0x4D,
+ 25414 - 19968: jis0212<<14 | 0x1E<<7 | 0x4E,
+ 25417 - 19968: jis0208<<14 | 0x21<<7 | 0x09,
+ 25418 - 19968: jis0212<<14 | 0x1E<<7 | 0x4F,
+ 25419 - 19968: jis0212<<14 | 0x1E<<7 | 0x50,
+ 25420 - 19968: jis0208<<14 | 0x1A<<7 | 0x0A,
+ 25421 - 19968: jis0208<<14 | 0x38<<7 | 0x31,
+ 25422 - 19968: jis0212<<14 | 0x1E<<7 | 0x51,
+ 25423 - 19968: jis0208<<14 | 0x38<<7 | 0x33,
+ 25424 - 19968: jis0208<<14 | 0x38<<7 | 0x2F,
+ 25426 - 19968: jis0212<<14 | 0x1E<<7 | 0x52,
+ 25427 - 19968: jis0212<<14 | 0x1E<<7 | 0x53,
+ 25428 - 19968: jis0212<<14 | 0x1E<<7 | 0x54,
+ 25429 - 19968: jis0208<<14 | 0x29<<7 | 0x40,
+ 25431 - 19968: jis0208<<14 | 0x23<<7 | 0x1C,
+ 25432 - 19968: jis0212<<14 | 0x1E<<7 | 0x55,
+ 25435 - 19968: jis0212<<14 | 0x1E<<7 | 0x56,
+ 25436 - 19968: jis0208<<14 | 0x20<<7 | 0x3B,
+ 25445 - 19968: jis0212<<14 | 0x1E<<7 | 0x57,
+ 25446 - 19968: jis0212<<14 | 0x1E<<7 | 0x58,
+ 25447 - 19968: jis0208<<14 | 0x29<<7 | 0x5A,
+ 25448 - 19968: jis0208<<14 | 0x1B<<7 | 0x2D,
+ 25449 - 19968: jis0208<<14 | 0x38<<7 | 0x3F,
+ 25451 - 19968: jis0208<<14 | 0x38<<7 | 0x3E,
+ 25452 - 19968: jis0212<<14 | 0x1E<<7 | 0x59,
+ 25453 - 19968: jis0212<<14 | 0x1E<<7 | 0x5A,
+ 25454 - 19968: jis0208<<14 | 0x1E<<7 | 0x57,
+ 25457 - 19968: jis0212<<14 | 0x1E<<7 | 0x5B,
+ 25458 - 19968: jis0208<<14 | 0x16<<7 | 0x5D,
+ 25460 - 19968: jis0212<<14 | 0x1E<<7 | 0x5C,
+ 25461 - 19968: jis0212<<14 | 0x1E<<7 | 0x5D,
+ 25462 - 19968: jis0208<<14 | 0x38<<7 | 0x38,
+ 25463 - 19968: jis0208<<14 | 0x1D<<7 | 0x18,
+ 25464 - 19968: jis0212<<14 | 0x1F<<7 | 0x00,
+ 25466 - 19968: jis0208<<14 | 0x25<<7 | 0x47,
+ 25467 - 19968: jis0208<<14 | 0x26<<7 | 0x10,
+ 25468 - 19968: jis0212<<14 | 0x1F<<7 | 0x01,
+ 25469 - 19968: jis0212<<14 | 0x1F<<7 | 0x02,
+ 25471 - 19968: jis0212<<14 | 0x1F<<7 | 0x03,
+ 25472 - 19968: jis0208<<14 | 0x38<<7 | 0x36,
+ 25474 - 19968: jis0212<<14 | 0x1F<<7 | 0x04,
+ 25475 - 19968: jis0208<<14 | 0x20<<7 | 0x3C,
+ 25476 - 19968: jis0212<<14 | 0x1F<<7 | 0x05,
+ 25479 - 19968: jis0212<<14 | 0x1F<<7 | 0x06,
+ 25480 - 19968: jis0208<<14 | 0x1B<<7 | 0x57,
+ 25481 - 19968: jis0208<<14 | 0x38<<7 | 0x3B,
+ 25482 - 19968: jis0212<<14 | 0x1F<<7 | 0x07,
+ 25484 - 19968: jis0208<<14 | 0x1D<<7 | 0x17,
+ 25486 - 19968: jis0208<<14 | 0x38<<7 | 0x35,
+ 25487 - 19968: jis0208<<14 | 0x38<<7 | 0x3A,
+ 25488 - 19968: jis0212<<14 | 0x1F<<7 | 0x08,
+ 25490 - 19968: jis0208<<14 | 0x26<<7 | 0x32,
+ 25492 - 19968: jis0212<<14 | 0x1F<<7 | 0x09,
+ 25493 - 19968: jis0212<<14 | 0x1F<<7 | 0x0A,
+ 25494 - 19968: jis0208<<14 | 0x38<<7 | 0x34,
+ 25496 - 19968: jis0208<<14 | 0x16<<7 | 0x00,
+ 25497 - 19968: jis0212<<14 | 0x1F<<7 | 0x0B,
+ 25498 - 19968: jis0212<<14 | 0x1F<<7 | 0x0C,
+ 25499 - 19968: jis0208<<14 | 0x12<<7 | 0x3C,
+ 25502 - 19968: jis0212<<14 | 0x1F<<7 | 0x0D,
+ 25503 - 19968: jis0208<<14 | 0x38<<7 | 0x3C,
+ 25504 - 19968: jis0208<<14 | 0x2D<<7 | 0x0A,
+ 25505 - 19968: jis0208<<14 | 0x19<<7 | 0x2D,
+ 25506 - 19968: jis0208<<14 | 0x22<<7 | 0x14,
+ 25507 - 19968: jis0208<<14 | 0x38<<7 | 0x39,
+ 25508 - 19968: jis0212<<14 | 0x1F<<7 | 0x0E,
+ 25509 - 19968: jis0208<<14 | 0x1F<<7 | 0x3B,
+ 25510 - 19968: jis0212<<14 | 0x1F<<7 | 0x0F,
+ 25511 - 19968: jis0208<<14 | 0x18<<7 | 0x14,
+ 25512 - 19968: jis0208<<14 | 0x1E<<7 | 0x43,
+ 25513 - 19968: jis0208<<14 | 0x10<<7 | 0x45,
+ 25514 - 19968: jis0208<<14 | 0x20<<7 | 0x1B,
+ 25515 - 19968: jis0208<<14 | 0x38<<7 | 0x37,
+ 25516 - 19968: jis0208<<14 | 0x14<<7 | 0x24,
+ 25517 - 19968: jis0212<<14 | 0x1F<<7 | 0x10,
+ 25518 - 19968: jis0212<<14 | 0x1F<<7 | 0x11,
+ 25519 - 19968: jis0212<<14 | 0x1F<<7 | 0x12,
+ 25522 - 19968: jis0208<<14 | 0x16<<7 | 0x26,
+ 25524 - 19968: jis0208<<14 | 0x23<<7 | 0x2E,
+ 25525 - 19968: jis0208<<14 | 0x38<<7 | 0x3D,
+ 25531 - 19968: jis0208<<14 | 0x20<<7 | 0x3E,
+ 25533 - 19968: jis0212<<14 | 0x1F<<7 | 0x13,
+ 25534 - 19968: jis0208<<14 | 0x38<<7 | 0x40,
+ 25536 - 19968: jis0208<<14 | 0x38<<7 | 0x42,
+ 25537 - 19968: jis0212<<14 | 0x1F<<7 | 0x14,
+ 25539 - 19968: jis0208<<14 | 0x21<<7 | 0x16,
+ 25540 - 19968: jis0208<<14 | 0x38<<7 | 0x48,
+ 25541 - 19968: jis0212<<14 | 0x1F<<7 | 0x15,
+ 25542 - 19968: jis0208<<14 | 0x38<<7 | 0x43,
+ 25544 - 19968: jis0212<<14 | 0x1F<<7 | 0x16,
+ 25545 - 19968: jis0208<<14 | 0x38<<7 | 0x45,
+ 25550 - 19968: jis0212<<14 | 0x1F<<7 | 0x17,
+ 25551 - 19968: jis0208<<14 | 0x28<<7 | 0x20,
+ 25552 - 19968: jis0208<<14 | 0x23<<7 | 0x52,
+ 25553 - 19968: jis0212<<14 | 0x1F<<7 | 0x18,
+ 25554 - 19968: jis0208<<14 | 0x38<<7 | 0x46,
+ 25555 - 19968: jis0212<<14 | 0x1F<<7 | 0x19,
+ 25556 - 19968: jis0212<<14 | 0x1F<<7 | 0x1A,
+ 25557 - 19968: jis0212<<14 | 0x1F<<7 | 0x1B,
+ 25558 - 19968: jis0208<<14 | 0x2C<<7 | 0x0B,
+ 25562 - 19968: jis0208<<14 | 0x2C<<7 | 0x27,
+ 25563 - 19968: jis0208<<14 | 0x13<<7 | 0x18,
+ 25564 - 19968: jis0212<<14 | 0x1F<<7 | 0x1C,
+ 25568 - 19968: jis0212<<14 | 0x1F<<7 | 0x1D,
+ 25569 - 19968: jis0208<<14 | 0x0F<<7 | 0x0D,
+ 25571 - 19968: jis0208<<14 | 0x38<<7 | 0x44,
+ 25573 - 19968: jis0212<<14 | 0x1F<<7 | 0x1E,
+ 25577 - 19968: jis0208<<14 | 0x38<<7 | 0x41,
+ 25578 - 19968: jis0212<<14 | 0x1F<<7 | 0x1F,
+ 25580 - 19968: jis0212<<14 | 0x1F<<7 | 0x20,
+ 25582 - 19968: jis0208<<14 | 0x13<<7 | 0x57,
+ 25586 - 19968: jis0212<<14 | 0x1F<<7 | 0x21,
+ 25587 - 19968: jis0212<<14 | 0x1F<<7 | 0x22,
+ 25588 - 19968: jis0208<<14 | 0x10<<7 | 0x46,
+ 25589 - 19968: jis0208<<14 | 0x59<<7 | 0x0E,
+ 25590 - 19968: jis0208<<14 | 0x38<<7 | 0x47,
+ 25592 - 19968: jis0212<<14 | 0x1F<<7 | 0x24,
+ 25593 - 19968: jis0212<<14 | 0x1F<<7 | 0x25,
+ 25594 - 19968: jis0208<<14 | 0x2C<<7 | 0x28,
+ 25606 - 19968: jis0208<<14 | 0x38<<7 | 0x4B,
+ 25609 - 19968: jis0212<<14 | 0x1F<<7 | 0x26,
+ 25610 - 19968: jis0212<<14 | 0x1F<<7 | 0x27,
+ 25613 - 19968: jis0208<<14 | 0x21<<7 | 0x1A,
+ 25615 - 19968: jis0208<<14 | 0x38<<7 | 0x52,
+ 25616 - 19968: jis0212<<14 | 0x1F<<7 | 0x28,
+ 25618 - 19968: jis0212<<14 | 0x1F<<7 | 0x29,
+ 25619 - 19968: jis0208<<14 | 0x38<<7 | 0x4C,
+ 25620 - 19968: jis0212<<14 | 0x1F<<7 | 0x2A,
+ 25622 - 19968: jis0208<<14 | 0x38<<7 | 0x49,
+ 25623 - 19968: jis0208<<14 | 0x38<<7 | 0x50,
+ 25624 - 19968: jis0212<<14 | 0x1F<<7 | 0x2B,
+ 25628 - 19968: jis0208<<14 | 0x38<<7 | 0x32,
+ 25630 - 19968: jis0212<<14 | 0x1F<<7 | 0x2C,
+ 25632 - 19968: jis0212<<14 | 0x1F<<7 | 0x2D,
+ 25634 - 19968: jis0212<<14 | 0x1F<<7 | 0x2E,
+ 25636 - 19968: jis0212<<14 | 0x1F<<7 | 0x2F,
+ 25637 - 19968: jis0212<<14 | 0x1F<<7 | 0x30,
+ 25638 - 19968: jis0208<<14 | 0x38<<7 | 0x4D,
+ 25640 - 19968: jis0208<<14 | 0x38<<7 | 0x51,
+ 25641 - 19968: jis0212<<14 | 0x1F<<7 | 0x31,
+ 25642 - 19968: jis0212<<14 | 0x1F<<7 | 0x32,
+ 25644 - 19968: jis0208<<14 | 0x27<<7 | 0x21,
+ 25645 - 19968: jis0208<<14 | 0x24<<7 | 0x4A,
+ 25647 - 19968: jis0212<<14 | 0x1F<<7 | 0x33,
+ 25648 - 19968: jis0212<<14 | 0x1F<<7 | 0x34,
+ 25652 - 19968: jis0208<<14 | 0x38<<7 | 0x4A,
+ 25653 - 19968: jis0212<<14 | 0x1F<<7 | 0x35,
+ 25654 - 19968: jis0208<<14 | 0x38<<7 | 0x4E,
+ 25658 - 19968: jis0208<<14 | 0x16<<7 | 0x27,
+ 25661 - 19968: jis0212<<14 | 0x1F<<7 | 0x36,
+ 25662 - 19968: jis0208<<14 | 0x19<<7 | 0x50,
+ 25663 - 19968: jis0212<<14 | 0x1F<<7 | 0x37,
+ 25666 - 19968: jis0208<<14 | 0x1F<<7 | 0x3C,
+ 25675 - 19968: jis0212<<14 | 0x1F<<7 | 0x38,
+ 25678 - 19968: jis0208<<14 | 0x38<<7 | 0x56,
+ 25679 - 19968: jis0212<<14 | 0x1F<<7 | 0x39,
+ 25681 - 19968: jis0212<<14 | 0x1F<<7 | 0x3A,
+ 25682 - 19968: jis0212<<14 | 0x1F<<7 | 0x3B,
+ 25683 - 19968: jis0212<<14 | 0x1F<<7 | 0x3C,
+ 25684 - 19968: jis0212<<14 | 0x1F<<7 | 0x3D,
+ 25688 - 19968: jis0208<<14 | 0x24<<7 | 0x05,
+ 25690 - 19968: jis0212<<14 | 0x1F<<7 | 0x3E,
+ 25691 - 19968: jis0212<<14 | 0x1F<<7 | 0x3F,
+ 25692 - 19968: jis0212<<14 | 0x1F<<7 | 0x40,
+ 25693 - 19968: jis0212<<14 | 0x1F<<7 | 0x41,
+ 25695 - 19968: jis0212<<14 | 0x1F<<7 | 0x42,
+ 25696 - 19968: jis0208<<14 | 0x59<<7 | 0x0F,
+ 25697 - 19968: jis0212<<14 | 0x1F<<7 | 0x44,
+ 25699 - 19968: jis0212<<14 | 0x1F<<7 | 0x45,
+ 25703 - 19968: jis0208<<14 | 0x38<<7 | 0x53,
+ 25705 - 19968: jis0208<<14 | 0x2A<<7 | 0x3F,
+ 25709 - 19968: jis0212<<14 | 0x1F<<7 | 0x46,
+ 25711 - 19968: jis0208<<14 | 0x38<<7 | 0x54,
+ 25715 - 19968: jis0212<<14 | 0x1F<<7 | 0x47,
+ 25716 - 19968: jis0212<<14 | 0x1F<<7 | 0x48,
+ 25718 - 19968: jis0208<<14 | 0x38<<7 | 0x55,
+ 25720 - 19968: jis0208<<14 | 0x2B<<7 | 0x2D,
+ 25722 - 19968: jis0208<<14 | 0x1F<<7 | 0x01,
+ 25723 - 19968: jis0212<<14 | 0x1F<<7 | 0x49,
+ 25725 - 19968: jis0212<<14 | 0x1F<<7 | 0x4A,
+ 25731 - 19968: jis0208<<14 | 0x16<<7 | 0x41,
+ 25733 - 19968: jis0212<<14 | 0x1F<<7 | 0x4B,
+ 25735 - 19968: jis0212<<14 | 0x1F<<7 | 0x4C,
+ 25736 - 19968: jis0208<<14 | 0x38<<7 | 0x5C,
+ 25743 - 19968: jis0212<<14 | 0x1F<<7 | 0x4D,
+ 25744 - 19968: jis0212<<14 | 0x1F<<7 | 0x4E,
+ 25745 - 19968: jis0212<<14 | 0x1F<<7 | 0x4F,
+ 25746 - 19968: jis0208<<14 | 0x1A<<7 | 0x14,
+ 25747 - 19968: jis0208<<14 | 0x38<<7 | 0x59,
+ 25749 - 19968: jis0208<<14 | 0x38<<7 | 0x58,
+ 25752 - 19968: jis0212<<14 | 0x1F<<7 | 0x50,
+ 25753 - 19968: jis0212<<14 | 0x1F<<7 | 0x51,
+ 25754 - 19968: jis0208<<14 | 0x26<<7 | 0x11,
+ 25755 - 19968: jis0212<<14 | 0x1F<<7 | 0x52,
+ 25757 - 19968: jis0208<<14 | 0x59<<7 | 0x10,
+ 25758 - 19968: jis0208<<14 | 0x25<<7 | 0x14,
+ 25759 - 19968: jis0212<<14 | 0x1F<<7 | 0x54,
+ 25761 - 19968: jis0212<<14 | 0x1F<<7 | 0x55,
+ 25763 - 19968: jis0212<<14 | 0x1F<<7 | 0x56,
+ 25764 - 19968: jis0208<<14 | 0x24<<7 | 0x10,
+ 25765 - 19968: jis0208<<14 | 0x38<<7 | 0x5A,
+ 25766 - 19968: jis0212<<14 | 0x1F<<7 | 0x57,
+ 25768 - 19968: jis0212<<14 | 0x1F<<7 | 0x58,
+ 25769 - 19968: jis0208<<14 | 0x38<<7 | 0x5B,
+ 25771 - 19968: jis0208<<14 | 0x28<<7 | 0x4E,
+ 25772 - 19968: jis0212<<14 | 0x1F<<7 | 0x59,
+ 25773 - 19968: jis0208<<14 | 0x26<<7 | 0x24,
+ 25774 - 19968: jis0208<<14 | 0x1A<<7 | 0x02,
+ 25776 - 19968: jis0208<<14 | 0x1F<<7 | 0x50,
+ 25778 - 19968: jis0208<<14 | 0x2A<<7 | 0x2F,
+ 25779 - 19968: jis0212<<14 | 0x1F<<7 | 0x5A,
+ 25785 - 19968: jis0208<<14 | 0x12<<7 | 0x28,
+ 25787 - 19968: jis0208<<14 | 0x39<<7 | 0x04,
+ 25788 - 19968: jis0208<<14 | 0x38<<7 | 0x5D,
+ 25789 - 19968: jis0212<<14 | 0x1F<<7 | 0x5B,
+ 25790 - 19968: jis0212<<14 | 0x1F<<7 | 0x5C,
+ 25791 - 19968: jis0212<<14 | 0x1F<<7 | 0x5D,
+ 25793 - 19968: jis0208<<14 | 0x2C<<7 | 0x29,
+ 25794 - 19968: jis0208<<14 | 0x39<<7 | 0x06,
+ 25796 - 19968: jis0212<<14 | 0x20<<7 | 0x00,
+ 25797 - 19968: jis0208<<14 | 0x39<<7 | 0x02,
+ 25799 - 19968: jis0208<<14 | 0x39<<7 | 0x03,
+ 25801 - 19968: jis0212<<14 | 0x20<<7 | 0x01,
+ 25802 - 19968: jis0212<<14 | 0x20<<7 | 0x02,
+ 25803 - 19968: jis0212<<14 | 0x20<<7 | 0x03,
+ 25804 - 19968: jis0212<<14 | 0x20<<7 | 0x04,
+ 25805 - 19968: jis0208<<14 | 0x20<<7 | 0x3F,
+ 25806 - 19968: jis0208<<14 | 0x59<<7 | 0x11,
+ 25808 - 19968: jis0212<<14 | 0x20<<7 | 0x06,
+ 25809 - 19968: jis0212<<14 | 0x20<<7 | 0x07,
+ 25810 - 19968: jis0208<<14 | 0x39<<7 | 0x01,
+ 25812 - 19968: jis0208<<14 | 0x38<<7 | 0x1E,
+ 25813 - 19968: jis0212<<14 | 0x20<<7 | 0x08,
+ 25815 - 19968: jis0212<<14 | 0x20<<7 | 0x09,
+ 25816 - 19968: jis0208<<14 | 0x39<<7 | 0x05,
+ 25818 - 19968: jis0208<<14 | 0x39<<7 | 0x00,
+ 25824 - 19968: jis0208<<14 | 0x39<<7 | 0x0A,
+ 25825 - 19968: jis0208<<14 | 0x39<<7 | 0x0B,
+ 25826 - 19968: jis0208<<14 | 0x24<<7 | 0x06,
+ 25827 - 19968: jis0208<<14 | 0x39<<7 | 0x0D,
+ 25828 - 19968: jis0212<<14 | 0x20<<7 | 0x0A,
+ 25829 - 19968: jis0212<<14 | 0x20<<7 | 0x0B,
+ 25830 - 19968: jis0208<<14 | 0x1A<<7 | 0x03,
+ 25831 - 19968: jis0208<<14 | 0x39<<7 | 0x08,
+ 25833 - 19968: jis0212<<14 | 0x20<<7 | 0x0C,
+ 25834 - 19968: jis0212<<14 | 0x20<<7 | 0x0D,
+ 25836 - 19968: jis0208<<14 | 0x14<<7 | 0x1B,
+ 25837 - 19968: jis0212<<14 | 0x20<<7 | 0x0E,
+ 25839 - 19968: jis0208<<14 | 0x39<<7 | 0x0E,
+ 25840 - 19968: jis0212<<14 | 0x20<<7 | 0x0F,
+ 25841 - 19968: jis0208<<14 | 0x39<<7 | 0x07,
+ 25842 - 19968: jis0208<<14 | 0x39<<7 | 0x12,
+ 25844 - 19968: jis0208<<14 | 0x39<<7 | 0x11,
+ 25845 - 19968: jis0212<<14 | 0x20<<7 | 0x10,
+ 25846 - 19968: jis0208<<14 | 0x39<<7 | 0x10,
+ 25847 - 19968: jis0212<<14 | 0x20<<7 | 0x11,
+ 25850 - 19968: jis0208<<14 | 0x39<<7 | 0x13,
+ 25851 - 19968: jis0212<<14 | 0x20<<7 | 0x12,
+ 25853 - 19968: jis0208<<14 | 0x39<<7 | 0x15,
+ 25854 - 19968: jis0208<<14 | 0x1D<<7 | 0x50,
+ 25855 - 19968: jis0212<<14 | 0x20<<7 | 0x13,
+ 25856 - 19968: jis0208<<14 | 0x39<<7 | 0x14,
+ 25857 - 19968: jis0212<<14 | 0x20<<7 | 0x14,
+ 25860 - 19968: jis0212<<14 | 0x20<<7 | 0x15,
+ 25861 - 19968: jis0208<<14 | 0x39<<7 | 0x18,
+ 25864 - 19968: jis0212<<14 | 0x20<<7 | 0x16,
+ 25865 - 19968: jis0212<<14 | 0x20<<7 | 0x17,
+ 25866 - 19968: jis0212<<14 | 0x20<<7 | 0x18,
+ 25871 - 19968: jis0212<<14 | 0x20<<7 | 0x19,
+ 25875 - 19968: jis0212<<14 | 0x20<<7 | 0x1A,
+ 25876 - 19968: jis0212<<14 | 0x20<<7 | 0x1B,
+ 25878 - 19968: jis0212<<14 | 0x20<<7 | 0x1C,
+ 25880 - 19968: jis0208<<14 | 0x39<<7 | 0x16,
+ 25881 - 19968: jis0212<<14 | 0x20<<7 | 0x1D,
+ 25883 - 19968: jis0212<<14 | 0x20<<7 | 0x1E,
+ 25884 - 19968: jis0208<<14 | 0x39<<7 | 0x17,
+ 25885 - 19968: jis0208<<14 | 0x38<<7 | 0x4F,
+ 25886 - 19968: jis0212<<14 | 0x20<<7 | 0x1F,
+ 25887 - 19968: jis0212<<14 | 0x20<<7 | 0x20,
+ 25890 - 19968: jis0212<<14 | 0x20<<7 | 0x21,
+ 25891 - 19968: jis0208<<14 | 0x39<<7 | 0x1A,
+ 25892 - 19968: jis0208<<14 | 0x39<<7 | 0x19,
+ 25894 - 19968: jis0212<<14 | 0x20<<7 | 0x22,
+ 25897 - 19968: jis0212<<14 | 0x20<<7 | 0x23,
+ 25898 - 19968: jis0208<<14 | 0x38<<7 | 0x57,
+ 25899 - 19968: jis0208<<14 | 0x39<<7 | 0x1B,
+ 25900 - 19968: jis0208<<14 | 0x39<<7 | 0x0F,
+ 25902 - 19968: jis0212<<14 | 0x20<<7 | 0x24,
+ 25903 - 19968: jis0208<<14 | 0x1A<<7 | 0x38,
+ 25905 - 19968: jis0212<<14 | 0x20<<7 | 0x25,
+ 25908 - 19968: jis0208<<14 | 0x39<<7 | 0x1C,
+ 25909 - 19968: jis0208<<14 | 0x39<<7 | 0x1D,
+ 25910 - 19968: jis0208<<14 | 0x39<<7 | 0x1F,
+ 25911 - 19968: jis0208<<14 | 0x39<<7 | 0x1E,
+ 25912 - 19968: jis0208<<14 | 0x39<<7 | 0x20,
+ 25913 - 19968: jis0208<<14 | 0x11<<7 | 0x5D,
+ 25914 - 19968: jis0212<<14 | 0x20<<7 | 0x26,
+ 25915 - 19968: jis0208<<14 | 0x18<<7 | 0x15,
+ 25916 - 19968: jis0212<<14 | 0x20<<7 | 0x27,
+ 25917 - 19968: jis0212<<14 | 0x20<<7 | 0x28,
+ 25918 - 19968: jis0208<<14 | 0x29<<7 | 0x5B,
+ 25919 - 19968: jis0208<<14 | 0x1F<<7 | 0x0E,
+ 25923 - 19968: jis0212<<14 | 0x20<<7 | 0x29,
+ 25925 - 19968: jis0208<<14 | 0x17<<7 | 0x2D,
+ 25927 - 19968: jis0212<<14 | 0x20<<7 | 0x2A,
+ 25928 - 19968: jis0208<<14 | 0x39<<7 | 0x22,
+ 25929 - 19968: jis0212<<14 | 0x20<<7 | 0x2B,
+ 25933 - 19968: jis0208<<14 | 0x39<<7 | 0x25,
+ 25934 - 19968: jis0208<<14 | 0x59<<7 | 0x12,
+ 25935 - 19968: jis0208<<14 | 0x28<<7 | 0x31,
+ 25936 - 19968: jis0212<<14 | 0x20<<7 | 0x2C,
+ 25937 - 19968: jis0208<<14 | 0x14<<7 | 0x3E,
+ 25938 - 19968: jis0212<<14 | 0x20<<7 | 0x2D,
+ 25940 - 19968: jis0212<<14 | 0x20<<7 | 0x2E,
+ 25941 - 19968: jis0208<<14 | 0x39<<7 | 0x24,
+ 25942 - 19968: jis0208<<14 | 0x39<<7 | 0x23,
+ 25943 - 19968: jis0208<<14 | 0x26<<7 | 0x33,
+ 25944 - 19968: jis0208<<14 | 0x39<<7 | 0x26,
+ 25945 - 19968: jis0208<<14 | 0x15<<7 | 0x14,
+ 25949 - 19968: jis0208<<14 | 0x39<<7 | 0x28,
+ 25950 - 19968: jis0208<<14 | 0x39<<7 | 0x27,
+ 25951 - 19968: jis0212<<14 | 0x20<<7 | 0x2F,
+ 25952 - 19968: jis0212<<14 | 0x20<<7 | 0x30,
+ 25954 - 19968: jis0208<<14 | 0x13<<7 | 0x19,
+ 25955 - 19968: jis0208<<14 | 0x1A<<7 | 0x15,
+ 25958 - 19968: jis0208<<14 | 0x25<<7 | 0x37,
+ 25959 - 19968: jis0212<<14 | 0x20<<7 | 0x31,
+ 25963 - 19968: jis0212<<14 | 0x20<<7 | 0x32,
+ 25964 - 19968: jis0208<<14 | 0x16<<7 | 0x28,
+ 25968 - 19968: jis0208<<14 | 0x1E<<7 | 0x53,
+ 25970 - 19968: jis0208<<14 | 0x39<<7 | 0x29,
+ 25972 - 19968: jis0208<<14 | 0x1F<<7 | 0x0F,
+ 25973 - 19968: jis0208<<14 | 0x24<<7 | 0x07,
+ 25975 - 19968: jis0208<<14 | 0x28<<7 | 0x3E,
+ 25976 - 19968: jis0208<<14 | 0x39<<7 | 0x2A,
+ 25978 - 19968: jis0212<<14 | 0x20<<7 | 0x33,
+ 25981 - 19968: jis0212<<14 | 0x20<<7 | 0x34,
+ 25985 - 19968: jis0212<<14 | 0x20<<7 | 0x35,
+ 25986 - 19968: jis0208<<14 | 0x39<<7 | 0x2B,
+ 25987 - 19968: jis0208<<14 | 0x39<<7 | 0x2C,
+ 25989 - 19968: jis0212<<14 | 0x20<<7 | 0x36,
+ 25991 - 19968: jis0208<<14 | 0x29<<7 | 0x17,
+ 25992 - 19968: jis0208<<14 | 0x34<<7 | 0x3C,
+ 25993 - 19968: jis0208<<14 | 0x1F<<7 | 0x25,
+ 25994 - 19968: jis0212<<14 | 0x20<<7 | 0x37,
+ 25996 - 19968: jis0208<<14 | 0x28<<7 | 0x2B,
+ 25998 - 19968: jis0208<<14 | 0x19<<7 | 0x37,
+ 26000 - 19968: jis0208<<14 | 0x27<<7 | 0x44,
+ 26001 - 19968: jis0208<<14 | 0x27<<7 | 0x22,
+ 26002 - 19968: jis0212<<14 | 0x20<<7 | 0x38,
+ 26005 - 19968: jis0212<<14 | 0x20<<7 | 0x39,
+ 26007 - 19968: jis0208<<14 | 0x24<<7 | 0x2C,
+ 26008 - 19968: jis0212<<14 | 0x20<<7 | 0x3A,
+ 26009 - 19968: jis0208<<14 | 0x2D<<7 | 0x20,
+ 26011 - 19968: jis0208<<14 | 0x39<<7 | 0x2E,
+ 26012 - 19968: jis0208<<14 | 0x1B<<7 | 0x2F,
+ 26013 - 19968: jis0212<<14 | 0x20<<7 | 0x3B,
+ 26015 - 19968: jis0208<<14 | 0x39<<7 | 0x2F,
+ 26016 - 19968: jis0212<<14 | 0x20<<7 | 0x3C,
+ 26017 - 19968: jis0208<<14 | 0x0F<<7 | 0x15,
+ 26019 - 19968: jis0212<<14 | 0x20<<7 | 0x3D,
+ 26020 - 19968: jis0208<<14 | 0x15<<7 | 0x33,
+ 26021 - 19968: jis0208<<14 | 0x1F<<7 | 0x2C,
+ 26022 - 19968: jis0212<<14 | 0x20<<7 | 0x3E,
+ 26023 - 19968: jis0208<<14 | 0x28<<7 | 0x3F,
+ 26027 - 19968: jis0208<<14 | 0x39<<7 | 0x30,
+ 26028 - 19968: jis0208<<14 | 0x1A<<7 | 0x21,
+ 26029 - 19968: jis0208<<14 | 0x22<<7 | 0x26,
+ 26030 - 19968: jis0212<<14 | 0x20<<7 | 0x3F,
+ 26031 - 19968: jis0208<<14 | 0x1A<<7 | 0x3A,
+ 26032 - 19968: jis0208<<14 | 0x1E<<7 | 0x16,
+ 26034 - 19968: jis0212<<14 | 0x20<<7 | 0x40,
+ 26035 - 19968: jis0212<<14 | 0x20<<7 | 0x41,
+ 26036 - 19968: jis0212<<14 | 0x20<<7 | 0x42,
+ 26039 - 19968: jis0208<<14 | 0x39<<7 | 0x31,
+ 26041 - 19968: jis0208<<14 | 0x29<<7 | 0x5C,
+ 26044 - 19968: jis0208<<14 | 0x10<<7 | 0x56,
+ 26045 - 19968: jis0208<<14 | 0x1A<<7 | 0x3B,
+ 26047 - 19968: jis0212<<14 | 0x20<<7 | 0x43,
+ 26049 - 19968: jis0208<<14 | 0x39<<7 | 0x34,
+ 26050 - 19968: jis0212<<14 | 0x20<<7 | 0x44,
+ 26051 - 19968: jis0208<<14 | 0x39<<7 | 0x32,
+ 26052 - 19968: jis0208<<14 | 0x39<<7 | 0x35,
+ 26053 - 19968: jis0208<<14 | 0x2D<<7 | 0x18,
+ 26054 - 19968: jis0208<<14 | 0x39<<7 | 0x33,
+ 26056 - 19968: jis0212<<14 | 0x20<<7 | 0x45,
+ 26057 - 19968: jis0212<<14 | 0x20<<7 | 0x46,
+ 26059 - 19968: jis0208<<14 | 0x1F<<7 | 0x5A,
+ 26060 - 19968: jis0208<<14 | 0x39<<7 | 0x36,
+ 26062 - 19968: jis0212<<14 | 0x20<<7 | 0x47,
+ 26063 - 19968: jis0208<<14 | 0x21<<7 | 0x11,
+ 26064 - 19968: jis0212<<14 | 0x20<<7 | 0x48,
+ 26066 - 19968: jis0208<<14 | 0x39<<7 | 0x37,
+ 26068 - 19968: jis0212<<14 | 0x20<<7 | 0x49,
+ 26070 - 19968: jis0212<<14 | 0x20<<7 | 0x4A,
+ 26071 - 19968: jis0208<<14 | 0x13<<7 | 0x59,
+ 26072 - 19968: jis0212<<14 | 0x20<<7 | 0x4B,
+ 26073 - 19968: jis0208<<14 | 0x39<<7 | 0x39,
+ 26075 - 19968: jis0208<<14 | 0x39<<7 | 0x38,
+ 26079 - 19968: jis0212<<14 | 0x20<<7 | 0x4C,
+ 26080 - 19968: jis0208<<14 | 0x39<<7 | 0x3A,
+ 26081 - 19968: jis0208<<14 | 0x39<<7 | 0x3B,
+ 26082 - 19968: jis0208<<14 | 0x13<<7 | 0x5A,
+ 26085 - 19968: jis0208<<14 | 0x25<<7 | 0x5B,
+ 26086 - 19968: jis0208<<14 | 0x22<<7 | 0x15,
+ 26087 - 19968: jis0208<<14 | 0x14<<7 | 0x4B,
+ 26088 - 19968: jis0208<<14 | 0x1A<<7 | 0x3C,
+ 26089 - 19968: jis0208<<14 | 0x20<<7 | 0x40,
+ 26092 - 19968: jis0208<<14 | 0x1C<<7 | 0x3B,
+ 26093 - 19968: jis0208<<14 | 0x0F<<7 | 0x0F,
+ 26096 - 19968: jis0212<<14 | 0x20<<7 | 0x4D,
+ 26097 - 19968: jis0208<<14 | 0x39<<7 | 0x3C,
+ 26098 - 19968: jis0212<<14 | 0x20<<7 | 0x4E,
+ 26100 - 19968: jis0212<<14 | 0x20<<7 | 0x4F,
+ 26101 - 19968: jis0212<<14 | 0x20<<7 | 0x50,
+ 26105 - 19968: jis0212<<14 | 0x20<<7 | 0x51,
+ 26106 - 19968: jis0208<<14 | 0x11<<7 | 0x01,
+ 26107 - 19968: jis0208<<14 | 0x39<<7 | 0x40,
+ 26110 - 19968: jis0212<<14 | 0x20<<7 | 0x52,
+ 26111 - 19968: jis0212<<14 | 0x20<<7 | 0x53,
+ 26112 - 19968: jis0208<<14 | 0x59<<7 | 0x13,
+ 26114 - 19968: jis0208<<14 | 0x18<<7 | 0x16,
+ 26115 - 19968: jis0208<<14 | 0x39<<7 | 0x3F,
+ 26116 - 19968: jis0212<<14 | 0x20<<7 | 0x55,
+ 26118 - 19968: jis0208<<14 | 0x19<<7 | 0x0A,
+ 26119 - 19968: jis0208<<14 | 0x1D<<7 | 0x19,
+ 26120 - 19968: jis0212<<14 | 0x20<<7 | 0x56,
+ 26121 - 19968: jis0208<<14 | 0x59<<7 | 0x16,
+ 26122 - 19968: jis0208<<14 | 0x39<<7 | 0x3E,
+ 26124 - 19968: jis0208<<14 | 0x1D<<7 | 0x1A,
+ 26125 - 19968: jis0212<<14 | 0x20<<7 | 0x58,
+ 26126 - 19968: jis0208<<14 | 0x2B<<7 | 0x1F,
+ 26127 - 19968: jis0208<<14 | 0x19<<7 | 0x09,
+ 26129 - 19968: jis0212<<14 | 0x20<<7 | 0x59,
+ 26130 - 19968: jis0212<<14 | 0x20<<7 | 0x5A,
+ 26131 - 19968: jis0208<<14 | 0x0F<<7 | 0x36,
+ 26132 - 19968: jis0208<<14 | 0x1F<<7 | 0x2D,
+ 26133 - 19968: jis0208<<14 | 0x59<<7 | 0x14,
+ 26134 - 19968: jis0212<<14 | 0x20<<7 | 0x5C,
+ 26140 - 19968: jis0208<<14 | 0x39<<7 | 0x45,
+ 26141 - 19968: jis0212<<14 | 0x20<<7 | 0x5D,
+ 26142 - 19968: jis0208<<14 | 0x59<<7 | 0x18,
+ 26143 - 19968: jis0208<<14 | 0x1F<<7 | 0x10,
+ 26144 - 19968: jis0208<<14 | 0x10<<7 | 0x26,
+ 26145 - 19968: jis0212<<14 | 0x21<<7 | 0x01,
+ 26146 - 19968: jis0212<<14 | 0x21<<7 | 0x02,
+ 26147 - 19968: jis0212<<14 | 0x21<<7 | 0x03,
+ 26148 - 19968: jis0208<<14 | 0x59<<7 | 0x19,
+ 26149 - 19968: jis0208<<14 | 0x1C<<7 | 0x34,
+ 26150 - 19968: jis0212<<14 | 0x21<<7 | 0x05,
+ 26151 - 19968: jis0208<<14 | 0x2A<<7 | 0x45,
+ 26152 - 19968: jis0208<<14 | 0x19<<7 | 0x51,
+ 26153 - 19968: jis0212<<14 | 0x21<<7 | 0x06,
+ 26154 - 19968: jis0212<<14 | 0x21<<7 | 0x07,
+ 26155 - 19968: jis0212<<14 | 0x21<<7 | 0x08,
+ 26156 - 19968: jis0212<<14 | 0x21<<7 | 0x09,
+ 26157 - 19968: jis0208<<14 | 0x1D<<7 | 0x1B,
+ 26158 - 19968: jis0208<<14 | 0x59<<7 | 0x17,
+ 26159 - 19968: jis0208<<14 | 0x1F<<7 | 0x06,
+ 26160 - 19968: jis0212<<14 | 0x21<<7 | 0x0B,
+ 26161 - 19968: jis0208<<14 | 0x58<<7 | 0x07,
+ 26163 - 19968: jis0212<<14 | 0x21<<7 | 0x0D,
+ 26164 - 19968: jis0208<<14 | 0x39<<7 | 0x44,
+ 26165 - 19968: jis0208<<14 | 0x39<<7 | 0x42,
+ 26166 - 19968: jis0208<<14 | 0x39<<7 | 0x43,
+ 26167 - 19968: jis0212<<14 | 0x21<<7 | 0x0F,
+ 26169 - 19968: jis0212<<14 | 0x21<<7 | 0x0E,
+ 26171 - 19968: jis0208<<14 | 0x59<<7 | 0x15,
+ 26172 - 19968: jis0208<<14 | 0x22<<7 | 0x4A,
+ 26175 - 19968: jis0208<<14 | 0x3A<<7 | 0x05,
+ 26176 - 19968: jis0212<<14 | 0x21<<7 | 0x10,
+ 26177 - 19968: jis0208<<14 | 0x39<<7 | 0x49,
+ 26178 - 19968: jis0208<<14 | 0x1A<<7 | 0x5D,
+ 26179 - 19968: jis0208<<14 | 0x18<<7 | 0x17,
+ 26180 - 19968: jis0208<<14 | 0x39<<7 | 0x47,
+ 26181 - 19968: jis0212<<14 | 0x21<<7 | 0x11,
+ 26182 - 19968: jis0212<<14 | 0x21<<7 | 0x12,
+ 26185 - 19968: jis0208<<14 | 0x39<<7 | 0x48,
+ 26186 - 19968: jis0212<<14 | 0x21<<7 | 0x13,
+ 26187 - 19968: jis0208<<14 | 0x1E<<7 | 0x17,
+ 26188 - 19968: jis0212<<14 | 0x21<<7 | 0x14,
+ 26190 - 19968: jis0212<<14 | 0x21<<7 | 0x16,
+ 26191 - 19968: jis0208<<14 | 0x39<<7 | 0x46,
+ 26193 - 19968: jis0212<<14 | 0x21<<7 | 0x15,
+ 26194 - 19968: jis0208<<14 | 0x1A<<7 | 0x0E,
+ 26199 - 19968: jis0208<<14 | 0x59<<7 | 0x1B,
+ 26200 - 19968: jis0212<<14 | 0x21<<7 | 0x18,
+ 26201 - 19968: jis0208<<14 | 0x59<<7 | 0x1C,
+ 26203 - 19968: jis0212<<14 | 0x21<<7 | 0x1A,
+ 26204 - 19968: jis0212<<14 | 0x21<<7 | 0x1B,
+ 26205 - 19968: jis0208<<14 | 0x39<<7 | 0x4B,
+ 26206 - 19968: jis0208<<14 | 0x39<<7 | 0x4A,
+ 26207 - 19968: jis0208<<14 | 0x39<<7 | 0x4F,
+ 26208 - 19968: jis0212<<14 | 0x21<<7 | 0x1C,
+ 26209 - 19968: jis0212<<14 | 0x21<<7 | 0x1D,
+ 26210 - 19968: jis0208<<14 | 0x39<<7 | 0x50,
+ 26212 - 19968: jis0208<<14 | 0x39<<7 | 0x4C,
+ 26213 - 19968: jis0208<<14 | 0x59<<7 | 0x1A,
+ 26214 - 19968: jis0208<<14 | 0x12<<7 | 0x01,
+ 26215 - 19968: jis0208<<14 | 0x39<<7 | 0x4D,
+ 26216 - 19968: jis0208<<14 | 0x39<<7 | 0x4E,
+ 26217 - 19968: jis0208<<14 | 0x27<<7 | 0x34,
+ 26218 - 19968: jis0212<<14 | 0x21<<7 | 0x1F,
+ 26219 - 19968: jis0212<<14 | 0x21<<7 | 0x20,
+ 26220 - 19968: jis0212<<14 | 0x21<<7 | 0x21,
+ 26222 - 19968: jis0208<<14 | 0x28<<7 | 0x40,
+ 26223 - 19968: jis0208<<14 | 0x16<<7 | 0x29,
+ 26224 - 19968: jis0208<<14 | 0x39<<7 | 0x51,
+ 26227 - 19968: jis0208<<14 | 0x59<<7 | 0x1E,
+ 26228 - 19968: jis0208<<14 | 0x1F<<7 | 0x11,
+ 26229 - 19968: jis0212<<14 | 0x21<<7 | 0x24,
+ 26230 - 19968: jis0208<<14 | 0x1D<<7 | 0x1C,
+ 26231 - 19968: jis0212<<14 | 0x21<<7 | 0x26,
+ 26232 - 19968: jis0212<<14 | 0x21<<7 | 0x27,
+ 26233 - 19968: jis0212<<14 | 0x21<<7 | 0x28,
+ 26234 - 19968: jis0208<<14 | 0x22<<7 | 0x31,
+ 26235 - 19968: jis0212<<14 | 0x21<<7 | 0x29,
+ 26236 - 19968: jis0212<<14 | 0x21<<7 | 0x2B,
+ 26238 - 19968: jis0212<<14 | 0x21<<7 | 0x22,
+ 26239 - 19968: jis0212<<14 | 0x21<<7 | 0x25,
+ 26240 - 19968: jis0212<<14 | 0x21<<7 | 0x2A,
+ 26241 - 19968: jis0208<<14 | 0x15<<7 | 0x26,
+ 26243 - 19968: jis0208<<14 | 0x39<<7 | 0x52,
+ 26244 - 19968: jis0208<<14 | 0x39<<7 | 0x56,
+ 26247 - 19968: jis0208<<14 | 0x11<<7 | 0x2A,
+ 26248 - 19968: jis0208<<14 | 0x39<<7 | 0x53,
+ 26249 - 19968: jis0208<<14 | 0x39<<7 | 0x55,
+ 26251 - 19968: jis0212<<14 | 0x21<<7 | 0x2C,
+ 26252 - 19968: jis0212<<14 | 0x21<<7 | 0x2D,
+ 26253 - 19968: jis0212<<14 | 0x21<<7 | 0x2E,
+ 26254 - 19968: jis0208<<14 | 0x39<<7 | 0x54,
+ 26256 - 19968: jis0212<<14 | 0x21<<7 | 0x2F,
+ 26257 - 19968: jis0208<<14 | 0x1C<<7 | 0x4A,
+ 26258 - 19968: jis0212<<14 | 0x21<<7 | 0x30,
+ 26262 - 19968: jis0208<<14 | 0x22<<7 | 0x27,
+ 26263 - 19968: jis0208<<14 | 0x0F<<7 | 0x24,
+ 26264 - 19968: jis0208<<14 | 0x39<<7 | 0x57,
+ 26265 - 19968: jis0208<<14 | 0x59<<7 | 0x1F,
+ 26266 - 19968: jis0212<<14 | 0x21<<7 | 0x32,
+ 26267 - 19968: jis0212<<14 | 0x21<<7 | 0x33,
+ 26268 - 19968: jis0212<<14 | 0x21<<7 | 0x34,
+ 26269 - 19968: jis0208<<14 | 0x39<<7 | 0x58,
+ 26271 - 19968: jis0212<<14 | 0x21<<7 | 0x35,
+ 26272 - 19968: jis0208<<14 | 0x59<<7 | 0x20,
+ 26274 - 19968: jis0208<<14 | 0x23<<7 | 0x09,
+ 26276 - 19968: jis0212<<14 | 0x21<<7 | 0x37,
+ 26278 - 19968: jis0208<<14 | 0x2D<<7 | 0x50,
+ 26283 - 19968: jis0208<<14 | 0x1A<<7 | 0x22,
+ 26285 - 19968: jis0212<<14 | 0x21<<7 | 0x38,
+ 26286 - 19968: jis0208<<14 | 0x29<<7 | 0x4A,
+ 26289 - 19968: jis0212<<14 | 0x21<<7 | 0x39,
+ 26290 - 19968: jis0208<<14 | 0x59<<7 | 0x21,
+ 26292 - 19968: jis0208<<14 | 0x2A<<7 | 0x1C,
+ 26293 - 19968: jis0212<<14 | 0x21<<7 | 0x3B,
+ 26296 - 19968: jis0208<<14 | 0x3A<<7 | 0x01,
+ 26297 - 19968: jis0208<<14 | 0x39<<7 | 0x5A,
+ 26299 - 19968: jis0212<<14 | 0x21<<7 | 0x3C,
+ 26300 - 19968: jis0208<<14 | 0x39<<7 | 0x5D,
+ 26302 - 19968: jis0208<<14 | 0x39<<7 | 0x5C,
+ 26303 - 19968: jis0208<<14 | 0x59<<7 | 0x22,
+ 26304 - 19968: jis0212<<14 | 0x21<<7 | 0x3E,
+ 26305 - 19968: jis0208<<14 | 0x39<<7 | 0x59,
+ 26306 - 19968: jis0212<<14 | 0x21<<7 | 0x3F,
+ 26307 - 19968: jis0212<<14 | 0x21<<7 | 0x40,
+ 26308 - 19968: jis0208<<14 | 0x3A<<7 | 0x00,
+ 26311 - 19968: jis0208<<14 | 0x25<<7 | 0x3D,
+ 26312 - 19968: jis0212<<14 | 0x21<<7 | 0x41,
+ 26313 - 19968: jis0208<<14 | 0x39<<7 | 0x5B,
+ 26316 - 19968: jis0212<<14 | 0x21<<7 | 0x42,
+ 26318 - 19968: jis0212<<14 | 0x21<<7 | 0x43,
+ 26319 - 19968: jis0212<<14 | 0x21<<7 | 0x44,
+ 26324 - 19968: jis0212<<14 | 0x21<<7 | 0x45,
+ 26326 - 19968: jis0208<<14 | 0x3A<<7 | 0x02,
+ 26329 - 19968: jis0208<<14 | 0x1C<<7 | 0x4B,
+ 26330 - 19968: jis0208<<14 | 0x3A<<7 | 0x03,
+ 26331 - 19968: jis0212<<14 | 0x21<<7 | 0x46,
+ 26332 - 19968: jis0208<<14 | 0x2C<<7 | 0x2A,
+ 26333 - 19968: jis0208<<14 | 0x26<<7 | 0x57,
+ 26335 - 19968: jis0212<<14 | 0x21<<7 | 0x47,
+ 26336 - 19968: jis0208<<14 | 0x3A<<7 | 0x04,
+ 26342 - 19968: jis0208<<14 | 0x3A<<7 | 0x06,
+ 26344 - 19968: jis0212<<14 | 0x21<<7 | 0x48,
+ 26345 - 19968: jis0208<<14 | 0x3A<<7 | 0x07,
+ 26347 - 19968: jis0212<<14 | 0x21<<7 | 0x49,
+ 26348 - 19968: jis0212<<14 | 0x21<<7 | 0x4A,
+ 26350 - 19968: jis0212<<14 | 0x21<<7 | 0x4B,
+ 26352 - 19968: jis0208<<14 | 0x3A<<7 | 0x08,
+ 26354 - 19968: jis0208<<14 | 0x15<<7 | 0x29,
+ 26355 - 19968: jis0208<<14 | 0x10<<7 | 0x27,
+ 26356 - 19968: jis0208<<14 | 0x18<<7 | 0x18,
+ 26357 - 19968: jis0208<<14 | 0x3A<<7 | 0x09,
+ 26359 - 19968: jis0208<<14 | 0x3A<<7 | 0x0A,
+ 26360 - 19968: jis0208<<14 | 0x1C<<7 | 0x50,
+ 26361 - 19968: jis0208<<14 | 0x20<<7 | 0x41,
+ 26362 - 19968: jis0208<<14 | 0x59<<7 | 0x23,
+ 26363 - 19968: jis0208<<14 | 0x58<<7 | 0x0A,
+ 26364 - 19968: jis0208<<14 | 0x31<<7 | 0x37,
+ 26365 - 19968: jis0208<<14 | 0x20<<7 | 0x1D,
+ 26366 - 19968: jis0208<<14 | 0x20<<7 | 0x1C,
+ 26367 - 19968: jis0208<<14 | 0x21<<7 | 0x37,
+ 26368 - 19968: jis0208<<14 | 0x19<<7 | 0x26,
+ 26371 - 19968: jis0208<<14 | 0x2F<<7 | 0x51,
+ 26373 - 19968: jis0212<<14 | 0x21<<7 | 0x4D,
+ 26375 - 19968: jis0212<<14 | 0x21<<7 | 0x4E,
+ 26376 - 19968: jis0208<<14 | 0x16<<7 | 0x4D,
+ 26377 - 19968: jis0208<<14 | 0x2C<<7 | 0x0C,
+ 26379 - 19968: jis0208<<14 | 0x29<<7 | 0x5D,
+ 26381 - 19968: jis0208<<14 | 0x28<<7 | 0x5D,
+ 26382 - 19968: jis0208<<14 | 0x59<<7 | 0x24,
+ 26383 - 19968: jis0208<<14 | 0x3A<<7 | 0x0B,
+ 26387 - 19968: jis0212<<14 | 0x21<<7 | 0x50,
+ 26388 - 19968: jis0208<<14 | 0x19<<7 | 0x52,
+ 26389 - 19968: jis0208<<14 | 0x23<<7 | 0x1E,
+ 26390 - 19968: jis0208<<14 | 0x3A<<7 | 0x0C,
+ 26391 - 19968: jis0208<<14 | 0x2E<<7 | 0x0E,
+ 26393 - 19968: jis0212<<14 | 0x21<<7 | 0x51,
+ 26395 - 19968: jis0208<<14 | 0x2A<<7 | 0x1D,
+ 26396 - 19968: jis0212<<14 | 0x21<<7 | 0x52,
+ 26397 - 19968: jis0208<<14 | 0x23<<7 | 0x0A,
+ 26398 - 19968: jis0208<<14 | 0x3A<<7 | 0x0D,
+ 26399 - 19968: jis0208<<14 | 0x13<<7 | 0x5B,
+ 26400 - 19968: jis0212<<14 | 0x21<<7 | 0x53,
+ 26402 - 19968: jis0212<<14 | 0x21<<7 | 0x54,
+ 26406 - 19968: jis0208<<14 | 0x3A<<7 | 0x0E,
+ 26407 - 19968: jis0208<<14 | 0x3A<<7 | 0x0F,
+ 26408 - 19968: jis0208<<14 | 0x2B<<7 | 0x39,
+ 26410 - 19968: jis0208<<14 | 0x2B<<7 | 0x03,
+ 26411 - 19968: jis0208<<14 | 0x2A<<7 | 0x55,
+ 26412 - 19968: jis0208<<14 | 0x2A<<7 | 0x3B,
+ 26413 - 19968: jis0208<<14 | 0x1A<<7 | 0x04,
+ 26414 - 19968: jis0208<<14 | 0x3A<<7 | 0x11,
+ 26417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4A,
+ 26419 - 19968: jis0212<<14 | 0x21<<7 | 0x55,
+ 26420 - 19968: jis0208<<14 | 0x2A<<7 | 0x30,
+ 26422 - 19968: jis0208<<14 | 0x3A<<7 | 0x13,
+ 26423 - 19968: jis0208<<14 | 0x3A<<7 | 0x16,
+ 26424 - 19968: jis0208<<14 | 0x3A<<7 | 0x15,
+ 26426 - 19968: jis0208<<14 | 0x13<<7 | 0x58,
+ 26429 - 19968: jis0208<<14 | 0x14<<7 | 0x3F,
+ 26430 - 19968: jis0212<<14 | 0x21<<7 | 0x56,
+ 26431 - 19968: jis0208<<14 | 0x3A<<7 | 0x12,
+ 26433 - 19968: jis0208<<14 | 0x3A<<7 | 0x14,
+ 26437 - 19968: jis0212<<14 | 0x21<<7 | 0x57,
+ 26438 - 19968: jis0208<<14 | 0x3A<<7 | 0x17,
+ 26439 - 19968: jis0212<<14 | 0x21<<7 | 0x58,
+ 26440 - 19968: jis0212<<14 | 0x21<<7 | 0x59,
+ 26441 - 19968: jis0208<<14 | 0x1E<<7 | 0x58,
+ 26444 - 19968: jis0212<<14 | 0x21<<7 | 0x5A,
+ 26446 - 19968: jis0208<<14 | 0x2C<<7 | 0x5A,
+ 26447 - 19968: jis0208<<14 | 0x0F<<7 | 0x28,
+ 26448 - 19968: jis0208<<14 | 0x19<<7 | 0x3F,
+ 26449 - 19968: jis0208<<14 | 0x21<<7 | 0x1B,
+ 26451 - 19968: jis0208<<14 | 0x1B<<7 | 0x3C,
+ 26452 - 19968: jis0212<<14 | 0x21<<7 | 0x5B,
+ 26453 - 19968: jis0212<<14 | 0x21<<7 | 0x5C,
+ 26454 - 19968: jis0208<<14 | 0x1D<<7 | 0x52,
+ 26457 - 19968: jis0208<<14 | 0x3A<<7 | 0x1A,
+ 26460 - 19968: jis0208<<14 | 0x24<<7 | 0x2D,
+ 26461 - 19968: jis0212<<14 | 0x21<<7 | 0x5D,
+ 26462 - 19968: jis0208<<14 | 0x3A<<7 | 0x18,
+ 26463 - 19968: jis0208<<14 | 0x21<<7 | 0x0A,
+ 26464 - 19968: jis0208<<14 | 0x3A<<7 | 0x19,
+ 26465 - 19968: jis0208<<14 | 0x1D<<7 | 0x51,
+ 26466 - 19968: jis0208<<14 | 0x2B<<7 | 0x3C,
+ 26467 - 19968: jis0208<<14 | 0x3A<<7 | 0x1B,
+ 26468 - 19968: jis0208<<14 | 0x3A<<7 | 0x1C,
+ 26469 - 19968: jis0208<<14 | 0x2C<<7 | 0x47,
+ 26470 - 19968: jis0208<<14 | 0x59<<7 | 0x26,
+ 26474 - 19968: jis0208<<14 | 0x3A<<7 | 0x21,
+ 26476 - 19968: jis0212<<14 | 0x22<<7 | 0x01,
+ 26477 - 19968: jis0208<<14 | 0x18<<7 | 0x19,
+ 26478 - 19968: jis0212<<14 | 0x22<<7 | 0x02,
+ 26479 - 19968: jis0208<<14 | 0x26<<7 | 0x34,
+ 26480 - 19968: jis0208<<14 | 0x3A<<7 | 0x1E,
+ 26481 - 19968: jis0208<<14 | 0x24<<7 | 0x4B,
+ 26482 - 19968: jis0208<<14 | 0x39<<7 | 0x3D,
+ 26483 - 19968: jis0208<<14 | 0x39<<7 | 0x41,
+ 26484 - 19968: jis0212<<14 | 0x22<<7 | 0x03,
+ 26485 - 19968: jis0208<<14 | 0x14<<7 | 0x2E,
+ 26486 - 19968: jis0212<<14 | 0x22<<7 | 0x04,
+ 26487 - 19968: jis0208<<14 | 0x26<<7 | 0x26,
+ 26491 - 19968: jis0212<<14 | 0x22<<7 | 0x05,
+ 26492 - 19968: jis0208<<14 | 0x3A<<7 | 0x20,
+ 26494 - 19968: jis0208<<14 | 0x1D<<7 | 0x1D,
+ 26495 - 19968: jis0208<<14 | 0x27<<7 | 0x23,
+ 26497 - 19968: jis0212<<14 | 0x22<<7 | 0x06,
+ 26500 - 19968: jis0212<<14 | 0x22<<7 | 0x07,
+ 26501 - 19968: jis0208<<14 | 0x3A<<7 | 0x26,
+ 26503 - 19968: jis0208<<14 | 0x27<<7 | 0x59,
+ 26505 - 19968: jis0208<<14 | 0x3A<<7 | 0x1D,
+ 26507 - 19968: jis0208<<14 | 0x3A<<7 | 0x23,
+ 26508 - 19968: jis0208<<14 | 0x3A<<7 | 0x22,
+ 26510 - 19968: jis0212<<14 | 0x22<<7 | 0x08,
+ 26511 - 19968: jis0212<<14 | 0x22<<7 | 0x09,
+ 26512 - 19968: jis0208<<14 | 0x1F<<7 | 0x2E,
+ 26513 - 19968: jis0212<<14 | 0x22<<7 | 0x0A,
+ 26515 - 19968: jis0212<<14 | 0x22<<7 | 0x0B,
+ 26517 - 19968: jis0208<<14 | 0x2A<<7 | 0x4C,
+ 26518 - 19968: jis0212<<14 | 0x22<<7 | 0x0C,
+ 26519 - 19968: jis0208<<14 | 0x2D<<7 | 0x32,
+ 26520 - 19968: jis0212<<14 | 0x22<<7 | 0x0D,
+ 26521 - 19968: jis0212<<14 | 0x22<<7 | 0x0E,
+ 26522 - 19968: jis0208<<14 | 0x2A<<7 | 0x46,
+ 26523 - 19968: jis0212<<14 | 0x22<<7 | 0x0F,
+ 26524 - 19968: jis0208<<14 | 0x11<<7 | 0x2B,
+ 26525 - 19968: jis0208<<14 | 0x1A<<7 | 0x3D,
+ 26528 - 19968: jis0208<<14 | 0x2E<<7 | 0x27,
+ 26529 - 19968: jis0208<<14 | 0x3A<<7 | 0x25,
+ 26530 - 19968: jis0208<<14 | 0x1E<<7 | 0x54,
+ 26534 - 19968: jis0208<<14 | 0x3A<<7 | 0x24,
+ 26537 - 19968: jis0208<<14 | 0x3A<<7 | 0x1F,
+ 26543 - 19968: jis0208<<14 | 0x17<<7 | 0x2E,
+ 26544 - 19968: jis0212<<14 | 0x22<<7 | 0x10,
+ 26545 - 19968: jis0212<<14 | 0x22<<7 | 0x11,
+ 26546 - 19968: jis0212<<14 | 0x22<<7 | 0x12,
+ 26547 - 19968: jis0208<<14 | 0x3A<<7 | 0x2B,
+ 26548 - 19968: jis0208<<14 | 0x3A<<7 | 0x29,
+ 26549 - 19968: jis0212<<14 | 0x22<<7 | 0x13,
+ 26550 - 19968: jis0208<<14 | 0x11<<7 | 0x2C,
+ 26551 - 19968: jis0208<<14 | 0x3A<<7 | 0x27,
+ 26552 - 19968: jis0208<<14 | 0x3A<<7 | 0x2D,
+ 26553 - 19968: jis0208<<14 | 0x3A<<7 | 0x33,
+ 26555 - 19968: jis0208<<14 | 0x59<<7 | 0x27,
+ 26556 - 19968: jis0212<<14 | 0x22<<7 | 0x15,
+ 26557 - 19968: jis0212<<14 | 0x22<<7 | 0x16,
+ 26560 - 19968: jis0208<<14 | 0x59<<7 | 0x29,
+ 26561 - 19968: jis0208<<14 | 0x21<<7 | 0x27,
+ 26562 - 19968: jis0212<<14 | 0x22<<7 | 0x19,
+ 26563 - 19968: jis0212<<14 | 0x22<<7 | 0x1A,
+ 26564 - 19968: jis0208<<14 | 0x29<<7 | 0x20,
+ 26565 - 19968: jis0212<<14 | 0x22<<7 | 0x1B,
+ 26566 - 19968: jis0208<<14 | 0x3A<<7 | 0x35,
+ 26568 - 19968: jis0212<<14 | 0x22<<7 | 0x1C,
+ 26569 - 19968: jis0212<<14 | 0x22<<7 | 0x1D,
+ 26570 - 19968: jis0208<<14 | 0x28<<7 | 0x01,
+ 26574 - 19968: jis0208<<14 | 0x3A<<7 | 0x34,
+ 26575 - 19968: jis0208<<14 | 0x26<<7 | 0x4F,
+ 26576 - 19968: jis0208<<14 | 0x2A<<7 | 0x1E,
+ 26577 - 19968: jis0208<<14 | 0x13<<7 | 0x1A,
+ 26578 - 19968: jis0212<<14 | 0x22<<7 | 0x1E,
+ 26579 - 19968: jis0208<<14 | 0x1F<<7 | 0x56,
+ 26580 - 19968: jis0208<<14 | 0x1C<<7 | 0x1F,
+ 26583 - 19968: jis0212<<14 | 0x22<<7 | 0x1F,
+ 26584 - 19968: jis0208<<14 | 0x23<<7 | 0x32,
+ 26585 - 19968: jis0212<<14 | 0x22<<7 | 0x20,
+ 26586 - 19968: jis0208<<14 | 0x2C<<7 | 0x0D,
+ 26588 - 19968: jis0212<<14 | 0x22<<7 | 0x21,
+ 26589 - 19968: jis0208<<14 | 0x3A<<7 | 0x30,
+ 26590 - 19968: jis0208<<14 | 0x3A<<7 | 0x2F,
+ 26593 - 19968: jis0212<<14 | 0x22<<7 | 0x22,
+ 26594 - 19968: jis0208<<14 | 0x3A<<7 | 0x31,
+ 26596 - 19968: jis0208<<14 | 0x3A<<7 | 0x2E,
+ 26598 - 19968: jis0212<<14 | 0x22<<7 | 0x23,
+ 26599 - 19968: jis0208<<14 | 0x3A<<7 | 0x36,
+ 26601 - 19968: jis0208<<14 | 0x3A<<7 | 0x2C,
+ 26604 - 19968: jis0208<<14 | 0x3A<<7 | 0x2A,
+ 26606 - 19968: jis0208<<14 | 0x3A<<7 | 0x32,
+ 26607 - 19968: jis0208<<14 | 0x3A<<7 | 0x28,
+ 26608 - 19968: jis0212<<14 | 0x22<<7 | 0x24,
+ 26609 - 19968: jis0208<<14 | 0x22<<7 | 0x4B,
+ 26610 - 19968: jis0212<<14 | 0x22<<7 | 0x25,
+ 26611 - 19968: jis0208<<14 | 0x2B<<7 | 0x57,
+ 26612 - 19968: jis0208<<14 | 0x1B<<7 | 0x25,
+ 26613 - 19968: jis0208<<14 | 0x19<<7 | 0x53,
+ 26614 - 19968: jis0212<<14 | 0x22<<7 | 0x26,
+ 26615 - 19968: jis0212<<14 | 0x22<<7 | 0x27,
+ 26617 - 19968: jis0212<<14 | 0x22<<7 | 0x17,
+ 26619 - 19968: jis0208<<14 | 0x19<<7 | 0x19,
+ 26622 - 19968: jis0208<<14 | 0x2A<<7 | 0x4E,
+ 26623 - 19968: jis0208<<14 | 0x12<<7 | 0x20,
+ 26625 - 19968: jis0208<<14 | 0x59<<7 | 0x2A,
+ 26626 - 19968: jis0208<<14 | 0x23<<7 | 0x2D,
+ 26627 - 19968: jis0208<<14 | 0x25<<7 | 0x29,
+ 26628 - 19968: jis0208<<14 | 0x10<<7 | 0x28,
+ 26643 - 19968: jis0208<<14 | 0x1F<<7 | 0x51,
+ 26644 - 19968: jis0212<<14 | 0x22<<7 | 0x29,
+ 26646 - 19968: jis0208<<14 | 0x1F<<7 | 0x13,
+ 26647 - 19968: jis0208<<14 | 0x16<<7 | 0x09,
+ 26649 - 19968: jis0212<<14 | 0x22<<7 | 0x2A,
+ 26653 - 19968: jis0212<<14 | 0x22<<7 | 0x2B,
+ 26654 - 19968: jis0208<<14 | 0x3A<<7 | 0x38,
+ 26655 - 19968: jis0212<<14 | 0x22<<7 | 0x2C,
+ 26657 - 19968: jis0208<<14 | 0x18<<7 | 0x1A,
+ 26658 - 19968: jis0208<<14 | 0x12<<7 | 0x5B,
+ 26663 - 19968: jis0212<<14 | 0x22<<7 | 0x2E,
+ 26664 - 19968: jis0212<<14 | 0x22<<7 | 0x2D,
+ 26665 - 19968: jis0208<<14 | 0x3A<<7 | 0x3A,
+ 26666 - 19968: jis0208<<14 | 0x12<<7 | 0x53,
+ 26667 - 19968: jis0208<<14 | 0x3A<<7 | 0x40,
+ 26668 - 19968: jis0212<<14 | 0x22<<7 | 0x2F,
+ 26669 - 19968: jis0212<<14 | 0x22<<7 | 0x30,
+ 26671 - 19968: jis0212<<14 | 0x22<<7 | 0x31,
+ 26672 - 19968: jis0212<<14 | 0x22<<7 | 0x32,
+ 26673 - 19968: jis0212<<14 | 0x22<<7 | 0x33,
+ 26674 - 19968: jis0208<<14 | 0x3A<<7 | 0x3D,
+ 26675 - 19968: jis0212<<14 | 0x22<<7 | 0x34,
+ 26676 - 19968: jis0208<<14 | 0x1F<<7 | 0x52,
+ 26680 - 19968: jis0208<<14 | 0x12<<7 | 0x2A,
+ 26681 - 19968: jis0208<<14 | 0x19<<7 | 0x0B,
+ 26683 - 19968: jis0212<<14 | 0x22<<7 | 0x35,
+ 26684 - 19968: jis0208<<14 | 0x12<<7 | 0x29,
+ 26685 - 19968: jis0208<<14 | 0x19<<7 | 0x2E,
+ 26687 - 19968: jis0212<<14 | 0x22<<7 | 0x36,
+ 26688 - 19968: jis0208<<14 | 0x3A<<7 | 0x3B,
+ 26689 - 19968: jis0208<<14 | 0x16<<7 | 0x44,
+ 26690 - 19968: jis0208<<14 | 0x16<<7 | 0x2A,
+ 26691 - 19968: jis0208<<14 | 0x24<<7 | 0x4C,
+ 26692 - 19968: jis0208<<14 | 0x59<<7 | 0x2B,
+ 26693 - 19968: jis0212<<14 | 0x22<<7 | 0x38,
+ 26694 - 19968: jis0208<<14 | 0x3A<<7 | 0x39,
+ 26696 - 19968: jis0208<<14 | 0x0F<<7 | 0x25,
+ 26698 - 19968: jis0212<<14 | 0x22<<7 | 0x39,
+ 26700 - 19968: jis0212<<14 | 0x22<<7 | 0x3A,
+ 26701 - 19968: jis0208<<14 | 0x3A<<7 | 0x3C,
+ 26702 - 19968: jis0208<<14 | 0x3A<<7 | 0x3E,
+ 26704 - 19968: jis0208<<14 | 0x15<<7 | 0x2C,
+ 26705 - 19968: jis0208<<14 | 0x16<<7 | 0x0B,
+ 26706 - 19968: jis0208<<14 | 0x59<<7 | 0x28,
+ 26707 - 19968: jis0208<<14 | 0x13<<7 | 0x1B,
+ 26708 - 19968: jis0208<<14 | 0x14<<7 | 0x2A,
+ 26709 - 19968: jis0212<<14 | 0x22<<7 | 0x3B,
+ 26711 - 19968: jis0212<<14 | 0x22<<7 | 0x3C,
+ 26712 - 19968: jis0212<<14 | 0x22<<7 | 0x3D,
+ 26713 - 19968: jis0208<<14 | 0x3A<<7 | 0x41,
+ 26715 - 19968: jis0212<<14 | 0x22<<7 | 0x3E,
+ 26716 - 19968: jis0208<<14 | 0x19<<7 | 0x58,
+ 26717 - 19968: jis0208<<14 | 0x2A<<7 | 0x50,
+ 26719 - 19968: jis0208<<14 | 0x1A<<7 | 0x16,
+ 26723 - 19968: jis0208<<14 | 0x3A<<7 | 0x42,
+ 26727 - 19968: jis0208<<14 | 0x28<<7 | 0x0F,
+ 26731 - 19968: jis0212<<14 | 0x22<<7 | 0x3F,
+ 26734 - 19968: jis0212<<14 | 0x22<<7 | 0x40,
+ 26735 - 19968: jis0212<<14 | 0x22<<7 | 0x41,
+ 26736 - 19968: jis0212<<14 | 0x22<<7 | 0x42,
+ 26737 - 19968: jis0212<<14 | 0x22<<7 | 0x43,
+ 26738 - 19968: jis0212<<14 | 0x22<<7 | 0x44,
+ 26740 - 19968: jis0208<<14 | 0x3A<<7 | 0x4E,
+ 26741 - 19968: jis0212<<14 | 0x22<<7 | 0x45,
+ 26742 - 19968: jis0208<<14 | 0x11<<7 | 0x12,
+ 26743 - 19968: jis0208<<14 | 0x3A<<7 | 0x43,
+ 26745 - 19968: jis0212<<14 | 0x22<<7 | 0x46,
+ 26746 - 19968: jis0212<<14 | 0x22<<7 | 0x47,
+ 26747 - 19968: jis0212<<14 | 0x22<<7 | 0x48,
+ 26748 - 19968: jis0212<<14 | 0x22<<7 | 0x49,
+ 26750 - 19968: jis0208<<14 | 0x3A<<7 | 0x54,
+ 26751 - 19968: jis0208<<14 | 0x3A<<7 | 0x44,
+ 26753 - 19968: jis0208<<14 | 0x2D<<7 | 0x21,
+ 26754 - 19968: jis0212<<14 | 0x22<<7 | 0x4A,
+ 26755 - 19968: jis0208<<14 | 0x3A<<7 | 0x4B,
+ 26756 - 19968: jis0212<<14 | 0x22<<7 | 0x4B,
+ 26757 - 19968: jis0208<<14 | 0x26<<7 | 0x3E,
+ 26758 - 19968: jis0212<<14 | 0x22<<7 | 0x4C,
+ 26760 - 19968: jis0212<<14 | 0x22<<7 | 0x4D,
+ 26765 - 19968: jis0208<<14 | 0x3A<<7 | 0x53,
+ 26767 - 19968: jis0208<<14 | 0x3A<<7 | 0x46,
+ 26771 - 19968: jis0208<<14 | 0x0F<<7 | 0x13,
+ 26772 - 19968: jis0208<<14 | 0x3A<<7 | 0x48,
+ 26774 - 19968: jis0212<<14 | 0x22<<7 | 0x4E,
+ 26775 - 19968: jis0208<<14 | 0x18<<7 | 0x1B,
+ 26776 - 19968: jis0212<<14 | 0x22<<7 | 0x4F,
+ 26778 - 19968: jis0212<<14 | 0x22<<7 | 0x50,
+ 26779 - 19968: jis0208<<14 | 0x3A<<7 | 0x4A,
+ 26780 - 19968: jis0212<<14 | 0x22<<7 | 0x51,
+ 26781 - 19968: jis0208<<14 | 0x3A<<7 | 0x49,
+ 26783 - 19968: jis0208<<14 | 0x3A<<7 | 0x45,
+ 26784 - 19968: jis0208<<14 | 0x3A<<7 | 0x50,
+ 26785 - 19968: jis0212<<14 | 0x22<<7 | 0x52,
+ 26786 - 19968: jis0208<<14 | 0x1D<<7 | 0x1E,
+ 26787 - 19968: jis0212<<14 | 0x22<<7 | 0x53,
+ 26789 - 19968: jis0212<<14 | 0x22<<7 | 0x54,
+ 26790 - 19968: jis0208<<14 | 0x33<<7 | 0x4C,
+ 26791 - 19968: jis0208<<14 | 0x17<<7 | 0x47,
+ 26792 - 19968: jis0208<<14 | 0x2C<<7 | 0x5B,
+ 26793 - 19968: jis0212<<14 | 0x22<<7 | 0x55,
+ 26794 - 19968: jis0212<<14 | 0x22<<7 | 0x56,
+ 26797 - 19968: jis0208<<14 | 0x3A<<7 | 0x47,
+ 26798 - 19968: jis0212<<14 | 0x22<<7 | 0x57,
+ 26799 - 19968: jis0208<<14 | 0x23<<7 | 0x53,
+ 26800 - 19968: jis0208<<14 | 0x12<<7 | 0x02,
+ 26801 - 19968: jis0208<<14 | 0x19<<7 | 0x0C,
+ 26802 - 19968: jis0212<<14 | 0x22<<7 | 0x58,
+ 26803 - 19968: jis0208<<14 | 0x3A<<7 | 0x3F,
+ 26805 - 19968: jis0208<<14 | 0x3A<<7 | 0x4F,
+ 26806 - 19968: jis0208<<14 | 0x12<<7 | 0x40,
+ 26809 - 19968: jis0208<<14 | 0x3A<<7 | 0x4D,
+ 26810 - 19968: jis0208<<14 | 0x3A<<7 | 0x51,
+ 26811 - 19968: jis0212<<14 | 0x22<<7 | 0x59,
+ 26812 - 19968: jis0208<<14 | 0x24<<7 | 0x4D,
+ 26820 - 19968: jis0208<<14 | 0x13<<7 | 0x5D,
+ 26821 - 19968: jis0212<<14 | 0x22<<7 | 0x5A,
+ 26822 - 19968: jis0208<<14 | 0x3B<<7 | 0x11,
+ 26824 - 19968: jis0208<<14 | 0x58<<7 | 0x08,
+ 26825 - 19968: jis0208<<14 | 0x2B<<7 | 0x28,
+ 26826 - 19968: jis0208<<14 | 0x3A<<7 | 0x56,
+ 26827 - 19968: jis0208<<14 | 0x13<<7 | 0x5C,
+ 26828 - 19968: jis0212<<14 | 0x22<<7 | 0x5C,
+ 26829 - 19968: jis0208<<14 | 0x3A<<7 | 0x5D,
+ 26831 - 19968: jis0208<<14 | 0x59<<7 | 0x2C,
+ 26832 - 19968: jis0212<<14 | 0x23<<7 | 0x00,
+ 26833 - 19968: jis0212<<14 | 0x23<<7 | 0x01,
+ 26834 - 19968: jis0208<<14 | 0x2A<<7 | 0x1F,
+ 26835 - 19968: jis0212<<14 | 0x23<<7 | 0x02,
+ 26836 - 19968: jis0208<<14 | 0x3B<<7 | 0x00,
+ 26837 - 19968: jis0208<<14 | 0x3B<<7 | 0x02,
+ 26838 - 19968: jis0212<<14 | 0x23<<7 | 0x03,
+ 26839 - 19968: jis0208<<14 | 0x3B<<7 | 0x06,
+ 26840 - 19968: jis0208<<14 | 0x3A<<7 | 0x58,
+ 26841 - 19968: jis0212<<14 | 0x23<<7 | 0x04,
+ 26842 - 19968: jis0208<<14 | 0x22<<7 | 0x09,
+ 26844 - 19968: jis0212<<14 | 0x23<<7 | 0x05,
+ 26845 - 19968: jis0212<<14 | 0x23<<7 | 0x06,
+ 26847 - 19968: jis0208<<14 | 0x24<<7 | 0x4E,
+ 26848 - 19968: jis0208<<14 | 0x3B<<7 | 0x0A,
+ 26849 - 19968: jis0208<<14 | 0x3A<<7 | 0x5B,
+ 26851 - 19968: jis0208<<14 | 0x3B<<7 | 0x07,
+ 26853 - 19968: jis0212<<14 | 0x23<<7 | 0x07,
+ 26855 - 19968: jis0208<<14 | 0x3B<<7 | 0x01,
+ 26856 - 19968: jis0212<<14 | 0x23<<7 | 0x08,
+ 26858 - 19968: jis0212<<14 | 0x23<<7 | 0x09,
+ 26859 - 19968: jis0212<<14 | 0x23<<7 | 0x0A,
+ 26860 - 19968: jis0212<<14 | 0x23<<7 | 0x0B,
+ 26861 - 19968: jis0212<<14 | 0x23<<7 | 0x0C,
+ 26862 - 19968: jis0208<<14 | 0x1E<<7 | 0x18,
+ 26863 - 19968: jis0208<<14 | 0x3B<<7 | 0x0B,
+ 26864 - 19968: jis0212<<14 | 0x23<<7 | 0x0D,
+ 26865 - 19968: jis0212<<14 | 0x23<<7 | 0x0E,
+ 26866 - 19968: jis0208<<14 | 0x1F<<7 | 0x12,
+ 26869 - 19968: jis0212<<14 | 0x23<<7 | 0x0F,
+ 26870 - 19968: jis0212<<14 | 0x23<<7 | 0x10,
+ 26873 - 19968: jis0208<<14 | 0x3B<<7 | 0x09,
+ 26874 - 19968: jis0208<<14 | 0x13<<7 | 0x1C,
+ 26875 - 19968: jis0212<<14 | 0x23<<7 | 0x11,
+ 26876 - 19968: jis0212<<14 | 0x23<<7 | 0x12,
+ 26877 - 19968: jis0212<<14 | 0x23<<7 | 0x13,
+ 26880 - 19968: jis0208<<14 | 0x2E<<7 | 0x2F,
+ 26881 - 19968: jis0208<<14 | 0x3A<<7 | 0x55,
+ 26884 - 19968: jis0208<<14 | 0x3B<<7 | 0x05,
+ 26885 - 19968: jis0208<<14 | 0x0F<<7 | 0x37,
+ 26886 - 19968: jis0212<<14 | 0x23<<7 | 0x14,
+ 26888 - 19968: jis0208<<14 | 0x3A<<7 | 0x57,
+ 26889 - 19968: jis0212<<14 | 0x23<<7 | 0x15,
+ 26890 - 19968: jis0212<<14 | 0x23<<7 | 0x16,
+ 26891 - 19968: jis0208<<14 | 0x2B<<7 | 0x19,
+ 26892 - 19968: jis0208<<14 | 0x3A<<7 | 0x5C,
+ 26893 - 19968: jis0208<<14 | 0x1E<<7 | 0x01,
+ 26894 - 19968: jis0208<<14 | 0x23<<7 | 0x26,
+ 26895 - 19968: jis0208<<14 | 0x3A<<7 | 0x52,
+ 26896 - 19968: jis0212<<14 | 0x23<<7 | 0x17,
+ 26897 - 19968: jis0212<<14 | 0x23<<7 | 0x18,
+ 26898 - 19968: jis0208<<14 | 0x3B<<7 | 0x04,
+ 26899 - 19968: jis0212<<14 | 0x23<<7 | 0x19,
+ 26902 - 19968: jis0212<<14 | 0x23<<7 | 0x1A,
+ 26903 - 19968: jis0212<<14 | 0x23<<7 | 0x1B,
+ 26905 - 19968: jis0208<<14 | 0x1E<<7 | 0x59,
+ 26906 - 19968: jis0208<<14 | 0x3B<<7 | 0x0E,
+ 26907 - 19968: jis0208<<14 | 0x12<<7 | 0x50,
+ 26908 - 19968: jis0208<<14 | 0x17<<7 | 0x00,
+ 26913 - 19968: jis0208<<14 | 0x3B<<7 | 0x10,
+ 26914 - 19968: jis0208<<14 | 0x3A<<7 | 0x59,
+ 26915 - 19968: jis0208<<14 | 0x3B<<7 | 0x0F,
+ 26917 - 19968: jis0208<<14 | 0x3B<<7 | 0x08,
+ 26918 - 19968: jis0208<<14 | 0x3A<<7 | 0x5A,
+ 26920 - 19968: jis0208<<14 | 0x3B<<7 | 0x0C,
+ 26922 - 19968: jis0208<<14 | 0x3B<<7 | 0x0D,
+ 26928 - 19968: jis0208<<14 | 0x3B<<7 | 0x1E,
+ 26929 - 19968: jis0212<<14 | 0x23<<7 | 0x1C,
+ 26931 - 19968: jis0212<<14 | 0x23<<7 | 0x1D,
+ 26932 - 19968: jis0208<<14 | 0x25<<7 | 0x2D,
+ 26933 - 19968: jis0212<<14 | 0x23<<7 | 0x1E,
+ 26934 - 19968: jis0208<<14 | 0x3B<<7 | 0x03,
+ 26936 - 19968: jis0212<<14 | 0x23<<7 | 0x1F,
+ 26937 - 19968: jis0208<<14 | 0x3B<<7 | 0x1A,
+ 26939 - 19968: jis0212<<14 | 0x23<<7 | 0x20,
+ 26941 - 19968: jis0208<<14 | 0x3B<<7 | 0x1C,
+ 26943 - 19968: jis0208<<14 | 0x23<<7 | 0x37,
+ 26946 - 19968: jis0212<<14 | 0x23<<7 | 0x21,
+ 26949 - 19968: jis0212<<14 | 0x23<<7 | 0x22,
+ 26953 - 19968: jis0212<<14 | 0x23<<7 | 0x23,
+ 26954 - 19968: jis0208<<14 | 0x2C<<7 | 0x2B,
+ 26958 - 19968: jis0212<<14 | 0x23<<7 | 0x24,
+ 26963 - 19968: jis0208<<14 | 0x28<<7 | 0x55,
+ 26964 - 19968: jis0208<<14 | 0x3B<<7 | 0x17,
+ 26965 - 19968: jis0208<<14 | 0x21<<7 | 0x29,
+ 26967 - 19968: jis0212<<14 | 0x23<<7 | 0x25,
+ 26969 - 19968: jis0208<<14 | 0x3B<<7 | 0x1D,
+ 26970 - 19968: jis0208<<14 | 0x20<<7 | 0x1E,
+ 26971 - 19968: jis0212<<14 | 0x23<<7 | 0x26,
+ 26972 - 19968: jis0208<<14 | 0x3B<<7 | 0x14,
+ 26973 - 19968: jis0208<<14 | 0x3B<<7 | 0x21,
+ 26974 - 19968: jis0208<<14 | 0x3B<<7 | 0x20,
+ 26976 - 19968: jis0208<<14 | 0x25<<7 | 0x4E,
+ 26977 - 19968: jis0208<<14 | 0x3B<<7 | 0x1F,
+ 26978 - 19968: jis0208<<14 | 0x25<<7 | 0x49,
+ 26979 - 19968: jis0212<<14 | 0x23<<7 | 0x27,
+ 26980 - 19968: jis0212<<14 | 0x23<<7 | 0x28,
+ 26981 - 19968: jis0212<<14 | 0x23<<7 | 0x29,
+ 26982 - 19968: jis0212<<14 | 0x23<<7 | 0x2A,
+ 26984 - 19968: jis0208<<14 | 0x59<<7 | 0x2E,
+ 26985 - 19968: jis0212<<14 | 0x23<<7 | 0x2C,
+ 26986 - 19968: jis0208<<14 | 0x3B<<7 | 0x23,
+ 26987 - 19968: jis0208<<14 | 0x3B<<7 | 0x16,
+ 26988 - 19968: jis0212<<14 | 0x23<<7 | 0x2D,
+ 26989 - 19968: jis0208<<14 | 0x15<<7 | 0x27,
+ 26990 - 19968: jis0208<<14 | 0x3B<<7 | 0x19,
+ 26991 - 19968: jis0208<<14 | 0x1C<<7 | 0x3C,
+ 26992 - 19968: jis0212<<14 | 0x23<<7 | 0x2E,
+ 26993 - 19968: jis0212<<14 | 0x23<<7 | 0x2F,
+ 26994 - 19968: jis0212<<14 | 0x23<<7 | 0x30,
+ 26995 - 19968: jis0208<<14 | 0x26<<7 | 0x3F,
+ 26996 - 19968: jis0208<<14 | 0x3B<<7 | 0x1B,
+ 26997 - 19968: jis0208<<14 | 0x15<<7 | 0x2A,
+ 26999 - 19968: jis0208<<14 | 0x3B<<7 | 0x13,
+ 27000 - 19968: jis0208<<14 | 0x3B<<7 | 0x15,
+ 27001 - 19968: jis0208<<14 | 0x3B<<7 | 0x12,
+ 27002 - 19968: jis0212<<14 | 0x23<<7 | 0x31,
+ 27003 - 19968: jis0212<<14 | 0x23<<7 | 0x32,
+ 27004 - 19968: jis0208<<14 | 0x2E<<7 | 0x0F,
+ 27005 - 19968: jis0208<<14 | 0x12<<7 | 0x39,
+ 27006 - 19968: jis0208<<14 | 0x3B<<7 | 0x18,
+ 27007 - 19968: jis0212<<14 | 0x23<<7 | 0x33,
+ 27008 - 19968: jis0212<<14 | 0x23<<7 | 0x34,
+ 27009 - 19968: jis0208<<14 | 0x3B<<7 | 0x22,
+ 27010 - 19968: jis0208<<14 | 0x12<<7 | 0x14,
+ 27018 - 19968: jis0208<<14 | 0x19<<7 | 0x46,
+ 27021 - 19968: jis0212<<14 | 0x23<<7 | 0x35,
+ 27022 - 19968: jis0208<<14 | 0x10<<7 | 0x3C,
+ 27025 - 19968: jis0208<<14 | 0x3B<<7 | 0x33,
+ 27026 - 19968: jis0212<<14 | 0x23<<7 | 0x36,
+ 27028 - 19968: jis0208<<14 | 0x2E<<7 | 0x10,
+ 27029 - 19968: jis0208<<14 | 0x3B<<7 | 0x36,
+ 27030 - 19968: jis0212<<14 | 0x23<<7 | 0x37,
+ 27032 - 19968: jis0208<<14 | 0x59<<7 | 0x30,
+ 27035 - 19968: jis0208<<14 | 0x1E<<7 | 0x19,
+ 27036 - 19968: jis0208<<14 | 0x3B<<7 | 0x35,
+ 27040 - 19968: jis0208<<14 | 0x3B<<7 | 0x34,
+ 27041 - 19968: jis0212<<14 | 0x23<<7 | 0x39,
+ 27045 - 19968: jis0212<<14 | 0x23<<7 | 0x3A,
+ 27046 - 19968: jis0212<<14 | 0x23<<7 | 0x3B,
+ 27047 - 19968: jis0208<<14 | 0x3B<<7 | 0x31,
+ 27048 - 19968: jis0212<<14 | 0x23<<7 | 0x3C,
+ 27051 - 19968: jis0212<<14 | 0x23<<7 | 0x3D,
+ 27053 - 19968: jis0212<<14 | 0x23<<7 | 0x3E,
+ 27054 - 19968: jis0208<<14 | 0x3B<<7 | 0x25,
+ 27055 - 19968: jis0212<<14 | 0x23<<7 | 0x3F,
+ 27057 - 19968: jis0208<<14 | 0x3B<<7 | 0x42,
+ 27058 - 19968: jis0208<<14 | 0x3B<<7 | 0x24,
+ 27060 - 19968: jis0208<<14 | 0x3B<<7 | 0x37,
+ 27063 - 19968: jis0212<<14 | 0x23<<7 | 0x40,
+ 27064 - 19968: jis0212<<14 | 0x23<<7 | 0x41,
+ 27066 - 19968: jis0212<<14 | 0x23<<7 | 0x42,
+ 27067 - 19968: jis0208<<14 | 0x3B<<7 | 0x2F,
+ 27068 - 19968: jis0212<<14 | 0x23<<7 | 0x43,
+ 27070 - 19968: jis0208<<14 | 0x3B<<7 | 0x2A,
+ 27071 - 19968: jis0208<<14 | 0x3B<<7 | 0x27,
+ 27073 - 19968: jis0208<<14 | 0x3B<<7 | 0x28,
+ 27075 - 19968: jis0208<<14 | 0x3B<<7 | 0x30,
+ 27077 - 19968: jis0212<<14 | 0x23<<7 | 0x44,
+ 27079 - 19968: jis0208<<14 | 0x53<<7 | 0x01,
+ 27080 - 19968: jis0212<<14 | 0x23<<7 | 0x45,
+ 27082 - 19968: jis0208<<14 | 0x3B<<7 | 0x2D,
+ 27083 - 19968: jis0208<<14 | 0x18<<7 | 0x1C,
+ 27084 - 19968: jis0208<<14 | 0x23<<7 | 0x27,
+ 27085 - 19968: jis0208<<14 | 0x20<<7 | 0x43,
+ 27086 - 19968: jis0208<<14 | 0x3B<<7 | 0x2B,
+ 27088 - 19968: jis0208<<14 | 0x3B<<7 | 0x26,
+ 27089 - 19968: jis0212<<14 | 0x23<<7 | 0x46,
+ 27091 - 19968: jis0208<<14 | 0x3B<<7 | 0x29,
+ 27094 - 19968: jis0212<<14 | 0x23<<7 | 0x47,
+ 27095 - 19968: jis0212<<14 | 0x23<<7 | 0x48,
+ 27096 - 19968: jis0208<<14 | 0x2C<<7 | 0x2C,
+ 27097 - 19968: jis0208<<14 | 0x2A<<7 | 0x49,
+ 27101 - 19968: jis0208<<14 | 0x3B<<7 | 0x2E,
+ 27102 - 19968: jis0208<<14 | 0x3B<<7 | 0x38,
+ 27106 - 19968: jis0208<<14 | 0x59<<7 | 0x31,
+ 27109 - 19968: jis0212<<14 | 0x23<<7 | 0x4A,
+ 27111 - 19968: jis0208<<14 | 0x3B<<7 | 0x40,
+ 27112 - 19968: jis0208<<14 | 0x3B<<7 | 0x39,
+ 27115 - 19968: jis0208<<14 | 0x3B<<7 | 0x46,
+ 27117 - 19968: jis0208<<14 | 0x3B<<7 | 0x44,
+ 27118 - 19968: jis0212<<14 | 0x23<<7 | 0x4B,
+ 27119 - 19968: jis0212<<14 | 0x23<<7 | 0x4C,
+ 27121 - 19968: jis0212<<14 | 0x23<<7 | 0x4D,
+ 27122 - 19968: jis0208<<14 | 0x3B<<7 | 0x3F,
+ 27123 - 19968: jis0212<<14 | 0x23<<7 | 0x4E,
+ 27125 - 19968: jis0212<<14 | 0x23<<7 | 0x4F,
+ 27129 - 19968: jis0208<<14 | 0x3B<<7 | 0x3E,
+ 27131 - 19968: jis0208<<14 | 0x23<<7 | 0x2F,
+ 27133 - 19968: jis0208<<14 | 0x20<<7 | 0x44,
+ 27134 - 19968: jis0212<<14 | 0x23<<7 | 0x50,
+ 27135 - 19968: jis0208<<14 | 0x3B<<7 | 0x3C,
+ 27136 - 19968: jis0212<<14 | 0x23<<7 | 0x51,
+ 27137 - 19968: jis0212<<14 | 0x23<<7 | 0x52,
+ 27138 - 19968: jis0208<<14 | 0x3B<<7 | 0x3A,
+ 27139 - 19968: jis0212<<14 | 0x23<<7 | 0x53,
+ 27141 - 19968: jis0208<<14 | 0x3B<<7 | 0x41,
+ 27146 - 19968: jis0208<<14 | 0x3B<<7 | 0x47,
+ 27147 - 19968: jis0208<<14 | 0x27<<7 | 0x54,
+ 27148 - 19968: jis0208<<14 | 0x3B<<7 | 0x4D,
+ 27151 - 19968: jis0212<<14 | 0x23<<7 | 0x54,
+ 27153 - 19968: jis0212<<14 | 0x23<<7 | 0x55,
+ 27154 - 19968: jis0208<<14 | 0x3B<<7 | 0x48,
+ 27155 - 19968: jis0208<<14 | 0x3B<<7 | 0x4B,
+ 27156 - 19968: jis0208<<14 | 0x3B<<7 | 0x45,
+ 27157 - 19968: jis0212<<14 | 0x23<<7 | 0x56,
+ 27159 - 19968: jis0208<<14 | 0x22<<7 | 0x53,
+ 27161 - 19968: jis0208<<14 | 0x28<<7 | 0x17,
+ 27162 - 19968: jis0212<<14 | 0x23<<7 | 0x57,
+ 27163 - 19968: jis0208<<14 | 0x3B<<7 | 0x3B,
+ 27165 - 19968: jis0212<<14 | 0x23<<7 | 0x58,
+ 27166 - 19968: jis0208<<14 | 0x3B<<7 | 0x43,
+ 27167 - 19968: jis0208<<14 | 0x1D<<7 | 0x1F,
+ 27168 - 19968: jis0212<<14 | 0x23<<7 | 0x59,
+ 27169 - 19968: jis0208<<14 | 0x2B<<7 | 0x2E,
+ 27170 - 19968: jis0208<<14 | 0x3B<<7 | 0x57,
+ 27171 - 19968: jis0208<<14 | 0x3B<<7 | 0x4A,
+ 27172 - 19968: jis0212<<14 | 0x23<<7 | 0x5A,
+ 27176 - 19968: jis0212<<14 | 0x23<<7 | 0x5B,
+ 27177 - 19968: jis0208<<14 | 0x17<<7 | 0x01,
+ 27178 - 19968: jis0208<<14 | 0x11<<7 | 0x02,
+ 27179 - 19968: jis0208<<14 | 0x12<<7 | 0x3E,
+ 27182 - 19968: jis0208<<14 | 0x3B<<7 | 0x32,
+ 27184 - 19968: jis0208<<14 | 0x59<<7 | 0x32,
+ 27186 - 19968: jis0212<<14 | 0x23<<7 | 0x5D,
+ 27188 - 19968: jis0212<<14 | 0x24<<7 | 0x00,
+ 27189 - 19968: jis0208<<14 | 0x1D<<7 | 0x20,
+ 27190 - 19968: jis0208<<14 | 0x3B<<7 | 0x4F,
+ 27191 - 19968: jis0212<<14 | 0x24<<7 | 0x01,
+ 27192 - 19968: jis0208<<14 | 0x3B<<7 | 0x56,
+ 27193 - 19968: jis0208<<14 | 0x1B<<7 | 0x58,
+ 27194 - 19968: jis0208<<14 | 0x12<<7 | 0x51,
+ 27195 - 19968: jis0212<<14 | 0x24<<7 | 0x02,
+ 27197 - 19968: jis0208<<14 | 0x22<<7 | 0x0D,
+ 27198 - 19968: jis0212<<14 | 0x24<<7 | 0x03,
+ 27199 - 19968: jis0212<<14 | 0x24<<7 | 0x04,
+ 27204 - 19968: jis0208<<14 | 0x3B<<7 | 0x4C,
+ 27205 - 19968: jis0212<<14 | 0x24<<7 | 0x05,
+ 27206 - 19968: jis0208<<14 | 0x59<<7 | 0x34,
+ 27207 - 19968: jis0208<<14 | 0x3B<<7 | 0x51,
+ 27208 - 19968: jis0208<<14 | 0x3B<<7 | 0x55,
+ 27209 - 19968: jis0212<<14 | 0x24<<7 | 0x07,
+ 27210 - 19968: jis0212<<14 | 0x24<<7 | 0x08,
+ 27211 - 19968: jis0208<<14 | 0x15<<7 | 0x15,
+ 27214 - 19968: jis0212<<14 | 0x24<<7 | 0x09,
+ 27216 - 19968: jis0212<<14 | 0x24<<7 | 0x0A,
+ 27217 - 19968: jis0212<<14 | 0x24<<7 | 0x0B,
+ 27218 - 19968: jis0212<<14 | 0x24<<7 | 0x0C,
+ 27221 - 19968: jis0212<<14 | 0x24<<7 | 0x0D,
+ 27222 - 19968: jis0212<<14 | 0x24<<7 | 0x0E,
+ 27224 - 19968: jis0208<<14 | 0x14<<7 | 0x2B,
+ 27225 - 19968: jis0208<<14 | 0x3B<<7 | 0x53,
+ 27227 - 19968: jis0212<<14 | 0x24<<7 | 0x0F,
+ 27231 - 19968: jis0208<<14 | 0x14<<7 | 0x00,
+ 27233 - 19968: jis0208<<14 | 0x25<<7 | 0x2A,
+ 27234 - 19968: jis0208<<14 | 0x3B<<7 | 0x52,
+ 27236 - 19968: jis0212<<14 | 0x24<<7 | 0x10,
+ 27238 - 19968: jis0208<<14 | 0x3B<<7 | 0x54,
+ 27239 - 19968: jis0212<<14 | 0x24<<7 | 0x11,
+ 27242 - 19968: jis0212<<14 | 0x24<<7 | 0x12,
+ 27243 - 19968: jis0208<<14 | 0x59<<7 | 0x33,
+ 27249 - 19968: jis0212<<14 | 0x24<<7 | 0x13,
+ 27250 - 19968: jis0208<<14 | 0x3B<<7 | 0x4E,
+ 27251 - 19968: jis0208<<14 | 0x59<<7 | 0x35,
+ 27256 - 19968: jis0208<<14 | 0x3B<<7 | 0x50,
+ 27262 - 19968: jis0208<<14 | 0x59<<7 | 0x36,
+ 27263 - 19968: jis0208<<14 | 0x12<<7 | 0x3F,
+ 27264 - 19968: jis0208<<14 | 0x22<<7 | 0x28,
+ 27265 - 19968: jis0212<<14 | 0x24<<7 | 0x16,
+ 27267 - 19968: jis0212<<14 | 0x24<<7 | 0x17,
+ 27268 - 19968: jis0208<<14 | 0x3B<<7 | 0x5B,
+ 27270 - 19968: jis0212<<14 | 0x24<<7 | 0x18,
+ 27271 - 19968: jis0212<<14 | 0x24<<7 | 0x19,
+ 27273 - 19968: jis0212<<14 | 0x24<<7 | 0x1A,
+ 27275 - 19968: jis0212<<14 | 0x24<<7 | 0x1B,
+ 27277 - 19968: jis0208<<14 | 0x3B<<7 | 0x59,
+ 27278 - 19968: jis0208<<14 | 0x17<<7 | 0x48,
+ 27280 - 19968: jis0208<<14 | 0x3B<<7 | 0x58,
+ 27281 - 19968: jis0212<<14 | 0x24<<7 | 0x1C,
+ 27287 - 19968: jis0208<<14 | 0x3C<<7 | 0x00,
+ 27291 - 19968: jis0212<<14 | 0x24<<7 | 0x1D,
+ 27292 - 19968: jis0208<<14 | 0x3A<<7 | 0x37,
+ 27293 - 19968: jis0212<<14 | 0x24<<7 | 0x1E,
+ 27294 - 19968: jis0212<<14 | 0x24<<7 | 0x1F,
+ 27295 - 19968: jis0212<<14 | 0x24<<7 | 0x20,
+ 27296 - 19968: jis0208<<14 | 0x3B<<7 | 0x5A,
+ 27298 - 19968: jis0208<<14 | 0x3B<<7 | 0x5C,
+ 27299 - 19968: jis0208<<14 | 0x3B<<7 | 0x5D,
+ 27301 - 19968: jis0212<<14 | 0x24<<7 | 0x21,
+ 27306 - 19968: jis0208<<14 | 0x3C<<7 | 0x0B,
+ 27307 - 19968: jis0212<<14 | 0x24<<7 | 0x22,
+ 27308 - 19968: jis0208<<14 | 0x3C<<7 | 0x07,
+ 27310 - 19968: jis0208<<14 | 0x3A<<7 | 0x4C,
+ 27311 - 19968: jis0212<<14 | 0x24<<7 | 0x23,
+ 27312 - 19968: jis0212<<14 | 0x24<<7 | 0x24,
+ 27313 - 19968: jis0212<<14 | 0x24<<7 | 0x25,
+ 27315 - 19968: jis0208<<14 | 0x3C<<7 | 0x06,
+ 27316 - 19968: jis0212<<14 | 0x24<<7 | 0x26,
+ 27320 - 19968: jis0208<<14 | 0x3C<<7 | 0x05,
+ 27323 - 19968: jis0208<<14 | 0x3C<<7 | 0x02,
+ 27325 - 19968: jis0212<<14 | 0x24<<7 | 0x27,
+ 27326 - 19968: jis0212<<14 | 0x24<<7 | 0x28,
+ 27327 - 19968: jis0212<<14 | 0x24<<7 | 0x29,
+ 27329 - 19968: jis0208<<14 | 0x3B<<7 | 0x49,
+ 27330 - 19968: jis0208<<14 | 0x3C<<7 | 0x04,
+ 27331 - 19968: jis0208<<14 | 0x3C<<7 | 0x03,
+ 27334 - 19968: jis0212<<14 | 0x24<<7 | 0x2A,
+ 27336 - 19968: jis0212<<14 | 0x24<<7 | 0x2C,
+ 27337 - 19968: jis0212<<14 | 0x24<<7 | 0x2B,
+ 27340 - 19968: jis0212<<14 | 0x24<<7 | 0x2D,
+ 27344 - 19968: jis0212<<14 | 0x24<<7 | 0x2E,
+ 27345 - 19968: jis0208<<14 | 0x3C<<7 | 0x09,
+ 27347 - 19968: jis0208<<14 | 0x2E<<7 | 0x05,
+ 27348 - 19968: jis0212<<14 | 0x24<<7 | 0x2F,
+ 27349 - 19968: jis0212<<14 | 0x24<<7 | 0x30,
+ 27350 - 19968: jis0212<<14 | 0x24<<7 | 0x31,
+ 27354 - 19968: jis0208<<14 | 0x3C<<7 | 0x0C,
+ 27355 - 19968: jis0208<<14 | 0x15<<7 | 0x5A,
+ 27356 - 19968: jis0212<<14 | 0x24<<7 | 0x32,
+ 27357 - 19968: jis0212<<14 | 0x24<<7 | 0x33,
+ 27358 - 19968: jis0208<<14 | 0x3C<<7 | 0x08,
+ 27359 - 19968: jis0208<<14 | 0x3C<<7 | 0x0A,
+ 27362 - 19968: jis0208<<14 | 0x59<<7 | 0x37,
+ 27364 - 19968: jis0208<<14 | 0x59<<7 | 0x38,
+ 27367 - 19968: jis0212<<14 | 0x24<<7 | 0x35,
+ 27368 - 19968: jis0208<<14 | 0x27<<7 | 0x06,
+ 27370 - 19968: jis0208<<14 | 0x3C<<7 | 0x0D,
+ 27372 - 19968: jis0212<<14 | 0x24<<7 | 0x36,
+ 27376 - 19968: jis0212<<14 | 0x24<<7 | 0x37,
+ 27377 - 19968: jis0212<<14 | 0x24<<7 | 0x38,
+ 27378 - 19968: jis0212<<14 | 0x24<<7 | 0x39,
+ 27386 - 19968: jis0208<<14 | 0x3C<<7 | 0x11,
+ 27387 - 19968: jis0208<<14 | 0x3C<<7 | 0x0E,
+ 27388 - 19968: jis0212<<14 | 0x24<<7 | 0x3A,
+ 27389 - 19968: jis0212<<14 | 0x24<<7 | 0x3B,
+ 27394 - 19968: jis0212<<14 | 0x24<<7 | 0x3C,
+ 27395 - 19968: jis0212<<14 | 0x24<<7 | 0x3D,
+ 27396 - 19968: jis0208<<14 | 0x2C<<7 | 0x52,
+ 27397 - 19968: jis0208<<14 | 0x3C<<7 | 0x0F,
+ 27398 - 19968: jis0212<<14 | 0x24<<7 | 0x3E,
+ 27399 - 19968: jis0212<<14 | 0x24<<7 | 0x3F,
+ 27401 - 19968: jis0212<<14 | 0x24<<7 | 0x40,
+ 27402 - 19968: jis0208<<14 | 0x3B<<7 | 0x3D,
+ 27407 - 19968: jis0212<<14 | 0x24<<7 | 0x41,
+ 27408 - 19968: jis0212<<14 | 0x24<<7 | 0x42,
+ 27409 - 19968: jis0212<<14 | 0x24<<7 | 0x43,
+ 27410 - 19968: jis0208<<14 | 0x3C<<7 | 0x12,
+ 27414 - 19968: jis0208<<14 | 0x3C<<7 | 0x13,
+ 27415 - 19968: jis0212<<14 | 0x24<<7 | 0x44,
+ 27419 - 19968: jis0212<<14 | 0x24<<7 | 0x45,
+ 27421 - 19968: jis0208<<14 | 0x10<<7 | 0x14,
+ 27422 - 19968: jis0212<<14 | 0x24<<7 | 0x46,
+ 27423 - 19968: jis0208<<14 | 0x3C<<7 | 0x15,
+ 27424 - 19968: jis0208<<14 | 0x16<<7 | 0x46,
+ 27425 - 19968: jis0208<<14 | 0x1B<<7 | 0x00,
+ 27427 - 19968: jis0208<<14 | 0x15<<7 | 0x34,
+ 27428 - 19968: jis0212<<14 | 0x24<<7 | 0x47,
+ 27431 - 19968: jis0208<<14 | 0x11<<7 | 0x03,
+ 27432 - 19968: jis0212<<14 | 0x24<<7 | 0x48,
+ 27435 - 19968: jis0212<<14 | 0x24<<7 | 0x49,
+ 27436 - 19968: jis0212<<14 | 0x24<<7 | 0x4A,
+ 27439 - 19968: jis0212<<14 | 0x24<<7 | 0x4B,
+ 27442 - 19968: jis0208<<14 | 0x2C<<7 | 0x3E,
+ 27445 - 19968: jis0212<<14 | 0x24<<7 | 0x4C,
+ 27446 - 19968: jis0212<<14 | 0x24<<7 | 0x4D,
+ 27447 - 19968: jis0208<<14 | 0x3C<<7 | 0x17,
+ 27448 - 19968: jis0208<<14 | 0x3C<<7 | 0x16,
+ 27449 - 19968: jis0208<<14 | 0x3C<<7 | 0x19,
+ 27450 - 19968: jis0208<<14 | 0x14<<7 | 0x1C,
+ 27451 - 19968: jis0212<<14 | 0x24<<7 | 0x4E,
+ 27453 - 19968: jis0208<<14 | 0x15<<7 | 0x35,
+ 27454 - 19968: jis0208<<14 | 0x13<<7 | 0x1D,
+ 27455 - 19968: jis0212<<14 | 0x24<<7 | 0x4F,
+ 27459 - 19968: jis0208<<14 | 0x3C<<7 | 0x1C,
+ 27462 - 19968: jis0212<<14 | 0x24<<7 | 0x50,
+ 27463 - 19968: jis0208<<14 | 0x3C<<7 | 0x1B,
+ 27465 - 19968: jis0208<<14 | 0x3C<<7 | 0x1D,
+ 27466 - 19968: jis0212<<14 | 0x24<<7 | 0x51,
+ 27468 - 19968: jis0208<<14 | 0x11<<7 | 0x2D,
+ 27469 - 19968: jis0212<<14 | 0x24<<7 | 0x52,
+ 27470 - 19968: jis0208<<14 | 0x22<<7 | 0x16,
+ 27472 - 19968: jis0208<<14 | 0x3C<<7 | 0x1E,
+ 27474 - 19968: jis0212<<14 | 0x24<<7 | 0x53,
+ 27475 - 19968: jis0208<<14 | 0x13<<7 | 0x1E,
+ 27476 - 19968: jis0208<<14 | 0x3C<<7 | 0x20,
+ 27478 - 19968: jis0212<<14 | 0x24<<7 | 0x54,
+ 27480 - 19968: jis0212<<14 | 0x24<<7 | 0x55,
+ 27481 - 19968: jis0208<<14 | 0x3C<<7 | 0x1F,
+ 27483 - 19968: jis0208<<14 | 0x3C<<7 | 0x21,
+ 27485 - 19968: jis0212<<14 | 0x24<<7 | 0x56,
+ 27487 - 19968: jis0208<<14 | 0x3C<<7 | 0x22,
+ 27488 - 19968: jis0212<<14 | 0x24<<7 | 0x57,
+ 27489 - 19968: jis0208<<14 | 0x3C<<7 | 0x23,
+ 27490 - 19968: jis0208<<14 | 0x1A<<7 | 0x3E,
+ 27491 - 19968: jis0208<<14 | 0x1F<<7 | 0x14,
+ 27492 - 19968: jis0208<<14 | 0x19<<7 | 0x00,
+ 27494 - 19968: jis0208<<14 | 0x28<<7 | 0x4F,
+ 27495 - 19968: jis0212<<14 | 0x24<<7 | 0x58,
+ 27497 - 19968: jis0208<<14 | 0x29<<7 | 0x41,
+ 27498 - 19968: jis0208<<14 | 0x2E<<7 | 0x23,
+ 27499 - 19968: jis0212<<14 | 0x24<<7 | 0x59,
+ 27502 - 19968: jis0212<<14 | 0x24<<7 | 0x5A,
+ 27503 - 19968: jis0208<<14 | 0x1A<<7 | 0x54,
+ 27504 - 19968: jis0212<<14 | 0x24<<7 | 0x5B,
+ 27507 - 19968: jis0208<<14 | 0x19<<7 | 0x2F,
+ 27508 - 19968: jis0208<<14 | 0x2D<<7 | 0x51,
+ 27509 - 19968: jis0212<<14 | 0x24<<7 | 0x5C,
+ 27512 - 19968: jis0208<<14 | 0x3C<<7 | 0x24,
+ 27513 - 19968: jis0208<<14 | 0x3C<<7 | 0x25,
+ 27515 - 19968: jis0208<<14 | 0x1A<<7 | 0x3F,
+ 27517 - 19968: jis0212<<14 | 0x24<<7 | 0x5D,
+ 27518 - 19968: jis0212<<14 | 0x25<<7 | 0x00,
+ 27519 - 19968: jis0208<<14 | 0x3C<<7 | 0x26,
+ 27520 - 19968: jis0208<<14 | 0x3C<<7 | 0x27,
+ 27522 - 19968: jis0212<<14 | 0x25<<7 | 0x01,
+ 27523 - 19968: jis0208<<14 | 0x3C<<7 | 0x29,
+ 27524 - 19968: jis0208<<14 | 0x3C<<7 | 0x28,
+ 27525 - 19968: jis0212<<14 | 0x25<<7 | 0x02,
+ 27526 - 19968: jis0208<<14 | 0x2A<<7 | 0x37,
+ 27529 - 19968: jis0208<<14 | 0x1C<<7 | 0x3D,
+ 27530 - 19968: jis0208<<14 | 0x1B<<7 | 0x4B,
+ 27531 - 19968: jis0208<<14 | 0x1A<<7 | 0x23,
+ 27533 - 19968: jis0208<<14 | 0x3C<<7 | 0x2A,
+ 27541 - 19968: jis0208<<14 | 0x3C<<7 | 0x2C,
+ 27542 - 19968: jis0208<<14 | 0x1E<<7 | 0x02,
+ 27543 - 19968: jis0212<<14 | 0x25<<7 | 0x03,
+ 27544 - 19968: jis0208<<14 | 0x3C<<7 | 0x2B,
+ 27547 - 19968: jis0212<<14 | 0x25<<7 | 0x04,
+ 27550 - 19968: jis0208<<14 | 0x3C<<7 | 0x2D,
+ 27551 - 19968: jis0212<<14 | 0x25<<7 | 0x05,
+ 27552 - 19968: jis0212<<14 | 0x25<<7 | 0x06,
+ 27554 - 19968: jis0212<<14 | 0x25<<7 | 0x07,
+ 27555 - 19968: jis0212<<14 | 0x25<<7 | 0x08,
+ 27556 - 19968: jis0208<<14 | 0x3C<<7 | 0x2E,
+ 27560 - 19968: jis0212<<14 | 0x25<<7 | 0x09,
+ 27561 - 19968: jis0212<<14 | 0x25<<7 | 0x0A,
+ 27562 - 19968: jis0208<<14 | 0x3C<<7 | 0x2F,
+ 27563 - 19968: jis0208<<14 | 0x3C<<7 | 0x30,
+ 27564 - 19968: jis0212<<14 | 0x25<<7 | 0x0B,
+ 27565 - 19968: jis0212<<14 | 0x25<<7 | 0x0C,
+ 27566 - 19968: jis0212<<14 | 0x25<<7 | 0x0D,
+ 27567 - 19968: jis0208<<14 | 0x3C<<7 | 0x31,
+ 27568 - 19968: jis0212<<14 | 0x25<<7 | 0x0E,
+ 27569 - 19968: jis0208<<14 | 0x3C<<7 | 0x33,
+ 27570 - 19968: jis0208<<14 | 0x3C<<7 | 0x32,
+ 27571 - 19968: jis0208<<14 | 0x3C<<7 | 0x34,
+ 27572 - 19968: jis0208<<14 | 0x11<<7 | 0x04,
+ 27573 - 19968: jis0208<<14 | 0x22<<7 | 0x29,
+ 27575 - 19968: jis0208<<14 | 0x3C<<7 | 0x35,
+ 27576 - 19968: jis0212<<14 | 0x25<<7 | 0x0F,
+ 27577 - 19968: jis0212<<14 | 0x25<<7 | 0x10,
+ 27578 - 19968: jis0208<<14 | 0x1A<<7 | 0x05,
+ 27579 - 19968: jis0208<<14 | 0x12<<7 | 0x2B,
+ 27580 - 19968: jis0208<<14 | 0x3C<<7 | 0x36,
+ 27581 - 19968: jis0212<<14 | 0x25<<7 | 0x11,
+ 27582 - 19968: jis0212<<14 | 0x25<<7 | 0x12,
+ 27583 - 19968: jis0208<<14 | 0x24<<7 | 0x21,
+ 27584 - 19968: jis0208<<14 | 0x33<<7 | 0x2B,
+ 27587 - 19968: jis0212<<14 | 0x25<<7 | 0x13,
+ 27588 - 19968: jis0212<<14 | 0x25<<7 | 0x14,
+ 27589 - 19968: jis0208<<14 | 0x14<<7 | 0x02,
+ 27590 - 19968: jis0208<<14 | 0x3C<<7 | 0x37,
+ 27593 - 19968: jis0212<<14 | 0x25<<7 | 0x15,
+ 27595 - 19968: jis0208<<14 | 0x3C<<7 | 0x38,
+ 27596 - 19968: jis0212<<14 | 0x25<<7 | 0x16,
+ 27597 - 19968: jis0208<<14 | 0x29<<7 | 0x4B,
+ 27598 - 19968: jis0208<<14 | 0x2A<<7 | 0x47,
+ 27602 - 19968: jis0208<<14 | 0x25<<7 | 0x26,
+ 27603 - 19968: jis0208<<14 | 0x3C<<7 | 0x39,
+ 27604 - 19968: jis0208<<14 | 0x27<<7 | 0x45,
+ 27606 - 19968: jis0208<<14 | 0x59<<7 | 0x39,
+ 27608 - 19968: jis0208<<14 | 0x27<<7 | 0x5A,
+ 27610 - 19968: jis0212<<14 | 0x25<<7 | 0x18,
+ 27611 - 19968: jis0208<<14 | 0x2B<<7 | 0x32,
+ 27615 - 19968: jis0208<<14 | 0x3C<<7 | 0x3A,
+ 27617 - 19968: jis0212<<14 | 0x25<<7 | 0x19,
+ 27619 - 19968: jis0212<<14 | 0x25<<7 | 0x1A,
+ 27622 - 19968: jis0212<<14 | 0x25<<7 | 0x1B,
+ 27623 - 19968: jis0212<<14 | 0x25<<7 | 0x1C,
+ 27627 - 19968: jis0208<<14 | 0x3C<<7 | 0x3C,
+ 27628 - 19968: jis0208<<14 | 0x3C<<7 | 0x3B,
+ 27630 - 19968: jis0212<<14 | 0x25<<7 | 0x1D,
+ 27631 - 19968: jis0208<<14 | 0x3C<<7 | 0x3E,
+ 27633 - 19968: jis0212<<14 | 0x25<<7 | 0x1E,
+ 27635 - 19968: jis0208<<14 | 0x3C<<7 | 0x3D,
+ 27639 - 19968: jis0212<<14 | 0x25<<7 | 0x1F,
+ 27641 - 19968: jis0212<<14 | 0x25<<7 | 0x20,
+ 27647 - 19968: jis0212<<14 | 0x25<<7 | 0x21,
+ 27650 - 19968: jis0212<<14 | 0x25<<7 | 0x22,
+ 27652 - 19968: jis0212<<14 | 0x25<<7 | 0x23,
+ 27653 - 19968: jis0212<<14 | 0x25<<7 | 0x24,
+ 27656 - 19968: jis0208<<14 | 0x3C<<7 | 0x40,
+ 27657 - 19968: jis0212<<14 | 0x25<<7 | 0x25,
+ 27661 - 19968: jis0212<<14 | 0x25<<7 | 0x26,
+ 27662 - 19968: jis0212<<14 | 0x25<<7 | 0x27,
+ 27663 - 19968: jis0208<<14 | 0x1A<<7 | 0x40,
+ 27664 - 19968: jis0212<<14 | 0x25<<7 | 0x28,
+ 27665 - 19968: jis0208<<14 | 0x2B<<7 | 0x10,
+ 27666 - 19968: jis0212<<14 | 0x25<<7 | 0x29,
+ 27667 - 19968: jis0208<<14 | 0x3C<<7 | 0x41,
+ 27668 - 19968: jis0208<<14 | 0x3C<<7 | 0x42,
+ 27671 - 19968: jis0208<<14 | 0x14<<7 | 0x03,
+ 27673 - 19968: jis0212<<14 | 0x25<<7 | 0x2A,
+ 27675 - 19968: jis0208<<14 | 0x3C<<7 | 0x43,
+ 27679 - 19968: jis0212<<14 | 0x25<<7 | 0x2B,
+ 27683 - 19968: jis0208<<14 | 0x3C<<7 | 0x45,
+ 27684 - 19968: jis0208<<14 | 0x3C<<7 | 0x44,
+ 27686 - 19968: jis0212<<14 | 0x25<<7 | 0x2C,
+ 27687 - 19968: jis0212<<14 | 0x25<<7 | 0x2D,
+ 27688 - 19968: jis0212<<14 | 0x25<<7 | 0x2E,
+ 27692 - 19968: jis0212<<14 | 0x25<<7 | 0x2F,
+ 27694 - 19968: jis0212<<14 | 0x25<<7 | 0x30,
+ 27699 - 19968: jis0212<<14 | 0x25<<7 | 0x31,
+ 27700 - 19968: jis0208<<14 | 0x1E<<7 | 0x44,
+ 27701 - 19968: jis0212<<14 | 0x25<<7 | 0x32,
+ 27702 - 19968: jis0212<<14 | 0x25<<7 | 0x33,
+ 27703 - 19968: jis0208<<14 | 0x28<<7 | 0x18,
+ 27704 - 19968: jis0208<<14 | 0x10<<7 | 0x29,
+ 27706 - 19968: jis0212<<14 | 0x25<<7 | 0x34,
+ 27707 - 19968: jis0212<<14 | 0x25<<7 | 0x35,
+ 27710 - 19968: jis0208<<14 | 0x27<<7 | 0x24,
+ 27711 - 19968: jis0208<<14 | 0x59<<7 | 0x3A,
+ 27712 - 19968: jis0208<<14 | 0x23<<7 | 0x54,
+ 27713 - 19968: jis0208<<14 | 0x1C<<7 | 0x20,
+ 27714 - 19968: jis0208<<14 | 0x14<<7 | 0x40,
+ 27722 - 19968: jis0212<<14 | 0x25<<7 | 0x37,
+ 27723 - 19968: jis0212<<14 | 0x25<<7 | 0x38,
+ 27725 - 19968: jis0212<<14 | 0x25<<7 | 0x39,
+ 27726 - 19968: jis0208<<14 | 0x27<<7 | 0x25,
+ 27727 - 19968: jis0212<<14 | 0x25<<7 | 0x3A,
+ 27728 - 19968: jis0208<<14 | 0x1B<<7 | 0x0D,
+ 27730 - 19968: jis0212<<14 | 0x25<<7 | 0x3B,
+ 27732 - 19968: jis0212<<14 | 0x25<<7 | 0x3C,
+ 27733 - 19968: jis0208<<14 | 0x3C<<7 | 0x47,
+ 27735 - 19968: jis0208<<14 | 0x13<<7 | 0x1F,
+ 27737 - 19968: jis0212<<14 | 0x25<<7 | 0x3D,
+ 27738 - 19968: jis0208<<14 | 0x10<<7 | 0x57,
+ 27739 - 19968: jis0212<<14 | 0x25<<7 | 0x3E,
+ 27740 - 19968: jis0208<<14 | 0x59<<7 | 0x3B,
+ 27741 - 19968: jis0208<<14 | 0x25<<7 | 0x51,
+ 27742 - 19968: jis0208<<14 | 0x3C<<7 | 0x46,
+ 27743 - 19968: jis0208<<14 | 0x18<<7 | 0x1D,
+ 27744 - 19968: jis0208<<14 | 0x22<<7 | 0x32,
+ 27746 - 19968: jis0208<<14 | 0x3C<<7 | 0x48,
+ 27751 - 19968: jis0212<<14 | 0x26<<7 | 0x15,
+ 27752 - 19968: jis0208<<14 | 0x3C<<7 | 0x50,
+ 27754 - 19968: jis0208<<14 | 0x3C<<7 | 0x49,
+ 27755 - 19968: jis0212<<14 | 0x25<<7 | 0x40,
+ 27757 - 19968: jis0212<<14 | 0x25<<7 | 0x41,
+ 27759 - 19968: jis0208<<14 | 0x59<<7 | 0x3D,
+ 27760 - 19968: jis0208<<14 | 0x21<<7 | 0x20,
+ 27762 - 19968: jis0208<<14 | 0x14<<7 | 0x41,
+ 27763 - 19968: jis0208<<14 | 0x3C<<7 | 0x51,
+ 27764 - 19968: jis0212<<14 | 0x25<<7 | 0x43,
+ 27766 - 19968: jis0212<<14 | 0x25<<7 | 0x44,
+ 27768 - 19968: jis0212<<14 | 0x25<<7 | 0x45,
+ 27769 - 19968: jis0212<<14 | 0x25<<7 | 0x46,
+ 27770 - 19968: jis0208<<14 | 0x16<<7 | 0x47,
+ 27771 - 19968: jis0212<<14 | 0x25<<7 | 0x47,
+ 27773 - 19968: jis0208<<14 | 0x14<<7 | 0x04,
+ 27774 - 19968: jis0208<<14 | 0x3C<<7 | 0x4F,
+ 27777 - 19968: jis0208<<14 | 0x3C<<7 | 0x4D,
+ 27778 - 19968: jis0208<<14 | 0x3C<<7 | 0x4A,
+ 27779 - 19968: jis0208<<14 | 0x2C<<7 | 0x3F,
+ 27781 - 19968: jis0212<<14 | 0x25<<7 | 0x48,
+ 27782 - 19968: jis0208<<14 | 0x59<<7 | 0x3C,
+ 27783 - 19968: jis0212<<14 | 0x25<<7 | 0x4A,
+ 27784 - 19968: jis0208<<14 | 0x23<<7 | 0x1F,
+ 27785 - 19968: jis0212<<14 | 0x25<<7 | 0x4B,
+ 27788 - 19968: jis0208<<14 | 0x25<<7 | 0x38,
+ 27789 - 19968: jis0208<<14 | 0x3C<<7 | 0x4B,
+ 27792 - 19968: jis0208<<14 | 0x3C<<7 | 0x53,
+ 27794 - 19968: jis0208<<14 | 0x3C<<7 | 0x52,
+ 27795 - 19968: jis0208<<14 | 0x16<<7 | 0x02,
+ 27796 - 19968: jis0212<<14 | 0x25<<7 | 0x4C,
+ 27797 - 19968: jis0212<<14 | 0x25<<7 | 0x4D,
+ 27798 - 19968: jis0208<<14 | 0x11<<7 | 0x0C,
+ 27799 - 19968: jis0212<<14 | 0x25<<7 | 0x4E,
+ 27800 - 19968: jis0212<<14 | 0x25<<7 | 0x4F,
+ 27801 - 19968: jis0208<<14 | 0x19<<7 | 0x1A,
+ 27802 - 19968: jis0208<<14 | 0x3C<<7 | 0x4C,
+ 27803 - 19968: jis0208<<14 | 0x3C<<7 | 0x4E,
+ 27804 - 19968: jis0212<<14 | 0x25<<7 | 0x50,
+ 27807 - 19968: jis0212<<14 | 0x25<<7 | 0x51,
+ 27809 - 19968: jis0208<<14 | 0x2A<<7 | 0x36,
+ 27810 - 19968: jis0208<<14 | 0x21<<7 | 0x53,
+ 27819 - 19968: jis0208<<14 | 0x2A<<7 | 0x56,
+ 27822 - 19968: jis0208<<14 | 0x3C<<7 | 0x5B,
+ 27824 - 19968: jis0212<<14 | 0x25<<7 | 0x52,
+ 27825 - 19968: jis0208<<14 | 0x3C<<7 | 0x5C,
+ 27826 - 19968: jis0212<<14 | 0x25<<7 | 0x53,
+ 27827 - 19968: jis0208<<14 | 0x11<<7 | 0x2E,
+ 27828 - 19968: jis0212<<14 | 0x25<<7 | 0x54,
+ 27832 - 19968: jis0208<<14 | 0x29<<7 | 0x07,
+ 27833 - 19968: jis0208<<14 | 0x2B<<7 | 0x5C,
+ 27834 - 19968: jis0208<<14 | 0x3D<<7 | 0x00,
+ 27835 - 19968: jis0208<<14 | 0x1B<<7 | 0x02,
+ 27836 - 19968: jis0208<<14 | 0x1D<<7 | 0x21,
+ 27837 - 19968: jis0208<<14 | 0x3C<<7 | 0x57,
+ 27838 - 19968: jis0208<<14 | 0x3C<<7 | 0x5D,
+ 27839 - 19968: jis0208<<14 | 0x10<<7 | 0x47,
+ 27841 - 19968: jis0208<<14 | 0x15<<7 | 0x16,
+ 27842 - 19968: jis0212<<14 | 0x25<<7 | 0x55,
+ 27844 - 19968: jis0208<<14 | 0x3C<<7 | 0x54,
+ 27845 - 19968: jis0208<<14 | 0x3C<<7 | 0x59,
+ 27846 - 19968: jis0212<<14 | 0x25<<7 | 0x56,
+ 27849 - 19968: jis0208<<14 | 0x1F<<7 | 0x53,
+ 27850 - 19968: jis0208<<14 | 0x26<<7 | 0x50,
+ 27852 - 19968: jis0208<<14 | 0x27<<7 | 0x46,
+ 27853 - 19968: jis0212<<14 | 0x25<<7 | 0x57,
+ 27855 - 19968: jis0212<<14 | 0x25<<7 | 0x58,
+ 27856 - 19968: jis0212<<14 | 0x25<<7 | 0x59,
+ 27857 - 19968: jis0212<<14 | 0x25<<7 | 0x5A,
+ 27858 - 19968: jis0212<<14 | 0x25<<7 | 0x5B,
+ 27859 - 19968: jis0208<<14 | 0x3C<<7 | 0x56,
+ 27860 - 19968: jis0212<<14 | 0x25<<7 | 0x5C,
+ 27861 - 19968: jis0208<<14 | 0x2A<<7 | 0x00,
+ 27862 - 19968: jis0212<<14 | 0x25<<7 | 0x5D,
+ 27863 - 19968: jis0208<<14 | 0x3C<<7 | 0x58,
+ 27865 - 19968: jis0208<<14 | 0x3D<<7 | 0x03,
+ 27866 - 19968: jis0208<<14 | 0x59<<7 | 0x3E,
+ 27867 - 19968: jis0208<<14 | 0x3D<<7 | 0x01,
+ 27868 - 19968: jis0212<<14 | 0x26<<7 | 0x01,
+ 27869 - 19968: jis0208<<14 | 0x3C<<7 | 0x5A,
+ 27872 - 19968: jis0212<<14 | 0x26<<7 | 0x02,
+ 27873 - 19968: jis0208<<14 | 0x2A<<7 | 0x01,
+ 27874 - 19968: jis0208<<14 | 0x26<<7 | 0x27,
+ 27875 - 19968: jis0208<<14 | 0x14<<7 | 0x42,
+ 27877 - 19968: jis0208<<14 | 0x24<<7 | 0x04,
+ 27879 - 19968: jis0212<<14 | 0x26<<7 | 0x03,
+ 27880 - 19968: jis0208<<14 | 0x22<<7 | 0x4C,
+ 27881 - 19968: jis0212<<14 | 0x26<<7 | 0x04,
+ 27882 - 19968: jis0208<<14 | 0x3D<<7 | 0x04,
+ 27883 - 19968: jis0212<<14 | 0x26<<7 | 0x05,
+ 27884 - 19968: jis0212<<14 | 0x26<<7 | 0x06,
+ 27886 - 19968: jis0212<<14 | 0x26<<7 | 0x07,
+ 27887 - 19968: jis0208<<14 | 0x3D<<7 | 0x02,
+ 27888 - 19968: jis0208<<14 | 0x21<<7 | 0x38,
+ 27889 - 19968: jis0208<<14 | 0x3C<<7 | 0x55,
+ 27890 - 19968: jis0212<<14 | 0x26<<7 | 0x08,
+ 27891 - 19968: jis0208<<14 | 0x10<<7 | 0x2A,
+ 27892 - 19968: jis0212<<14 | 0x26<<7 | 0x09,
+ 27908 - 19968: jis0208<<14 | 0x59<<7 | 0x3F,
+ 27911 - 19968: jis0212<<14 | 0x26<<7 | 0x0B,
+ 27914 - 19968: jis0212<<14 | 0x26<<7 | 0x0C,
+ 27915 - 19968: jis0208<<14 | 0x2C<<7 | 0x2D,
+ 27916 - 19968: jis0208<<14 | 0x3D<<7 | 0x0F,
+ 27918 - 19968: jis0212<<14 | 0x26<<7 | 0x0D,
+ 27919 - 19968: jis0212<<14 | 0x26<<7 | 0x0E,
+ 27921 - 19968: jis0212<<14 | 0x26<<7 | 0x0F,
+ 27922 - 19968: jis0208<<14 | 0x3D<<7 | 0x0E,
+ 27923 - 19968: jis0212<<14 | 0x26<<7 | 0x10,
+ 27927 - 19968: jis0208<<14 | 0x1F<<7 | 0x55,
+ 27929 - 19968: jis0208<<14 | 0x3D<<7 | 0x0B,
+ 27930 - 19968: jis0212<<14 | 0x26<<7 | 0x11,
+ 27931 - 19968: jis0208<<14 | 0x2C<<7 | 0x4B,
+ 27934 - 19968: jis0208<<14 | 0x25<<7 | 0x15,
+ 27935 - 19968: jis0208<<14 | 0x3D<<7 | 0x05,
+ 27941 - 19968: jis0208<<14 | 0x23<<7 | 0x24,
+ 27942 - 19968: jis0212<<14 | 0x26<<7 | 0x12,
+ 27943 - 19968: jis0212<<14 | 0x26<<7 | 0x13,
+ 27944 - 19968: jis0212<<14 | 0x26<<7 | 0x14,
+ 27945 - 19968: jis0208<<14 | 0x10<<7 | 0x2B,
+ 27946 - 19968: jis0208<<14 | 0x18<<7 | 0x1E,
+ 27947 - 19968: jis0208<<14 | 0x3D<<7 | 0x08,
+ 27950 - 19968: jis0212<<14 | 0x26<<7 | 0x16,
+ 27951 - 19968: jis0212<<14 | 0x26<<7 | 0x17,
+ 27953 - 19968: jis0212<<14 | 0x26<<7 | 0x18,
+ 27954 - 19968: jis0208<<14 | 0x1C<<7 | 0x06,
+ 27955 - 19968: jis0208<<14 | 0x3D<<7 | 0x0D,
+ 27957 - 19968: jis0208<<14 | 0x3D<<7 | 0x0C,
+ 27958 - 19968: jis0208<<14 | 0x3D<<7 | 0x07,
+ 27960 - 19968: jis0208<<14 | 0x3D<<7 | 0x0A,
+ 27961 - 19968: jis0212<<14 | 0x26<<7 | 0x19,
+ 27963 - 19968: jis0208<<14 | 0x12<<7 | 0x47,
+ 27964 - 19968: jis0212<<14 | 0x26<<7 | 0x1A,
+ 27965 - 19968: jis0208<<14 | 0x3D<<7 | 0x09,
+ 27966 - 19968: jis0208<<14 | 0x26<<7 | 0x28,
+ 27967 - 19968: jis0212<<14 | 0x26<<7 | 0x1B,
+ 27969 - 19968: jis0208<<14 | 0x2D<<7 | 0x0D,
+ 27972 - 19968: jis0208<<14 | 0x1D<<7 | 0x53,
+ 27973 - 19968: jis0208<<14 | 0x1F<<7 | 0x54,
+ 27991 - 19968: jis0212<<14 | 0x26<<7 | 0x1C,
+ 27993 - 19968: jis0208<<14 | 0x3D<<7 | 0x15,
+ 27994 - 19968: jis0208<<14 | 0x3D<<7 | 0x13,
+ 27996 - 19968: jis0208<<14 | 0x28<<7 | 0x2C,
+ 27998 - 19968: jis0212<<14 | 0x26<<7 | 0x1D,
+ 27999 - 19968: jis0212<<14 | 0x26<<7 | 0x1E,
+ 28001 - 19968: jis0212<<14 | 0x26<<7 | 0x1F,
+ 28003 - 19968: jis0208<<14 | 0x3D<<7 | 0x10,
+ 28004 - 19968: jis0208<<14 | 0x3D<<7 | 0x12,
+ 28005 - 19968: jis0212<<14 | 0x26<<7 | 0x20,
+ 28006 - 19968: jis0208<<14 | 0x10<<7 | 0x19,
+ 28007 - 19968: jis0212<<14 | 0x26<<7 | 0x21,
+ 28009 - 19968: jis0208<<14 | 0x18<<7 | 0x1F,
+ 28010 - 19968: jis0208<<14 | 0x2E<<7 | 0x11,
+ 28012 - 19968: jis0208<<14 | 0x12<<7 | 0x1C,
+ 28014 - 19968: jis0208<<14 | 0x28<<7 | 0x41,
+ 28015 - 19968: jis0208<<14 | 0x59<<7 | 0x41,
+ 28016 - 19968: jis0212<<14 | 0x26<<7 | 0x23,
+ 28020 - 19968: jis0208<<14 | 0x2C<<7 | 0x40,
+ 28023 - 19968: jis0208<<14 | 0x12<<7 | 0x03,
+ 28024 - 19968: jis0208<<14 | 0x1E<<7 | 0x1A,
+ 28025 - 19968: jis0208<<14 | 0x3D<<7 | 0x14,
+ 28028 - 19968: jis0212<<14 | 0x26<<7 | 0x24,
+ 28034 - 19968: jis0212<<14 | 0x26<<7 | 0x25,
+ 28037 - 19968: jis0208<<14 | 0x3D<<7 | 0x19,
+ 28039 - 19968: jis0208<<14 | 0x59<<7 | 0x40,
+ 28040 - 19968: jis0208<<14 | 0x1D<<7 | 0x22,
+ 28044 - 19968: jis0208<<14 | 0x2C<<7 | 0x0F,
+ 28046 - 19968: jis0208<<14 | 0x3D<<7 | 0x16,
+ 28049 - 19968: jis0212<<14 | 0x26<<7 | 0x27,
+ 28050 - 19968: jis0212<<14 | 0x26<<7 | 0x28,
+ 28051 - 19968: jis0208<<14 | 0x3D<<7 | 0x11,
+ 28052 - 19968: jis0212<<14 | 0x26<<7 | 0x29,
+ 28053 - 19968: jis0208<<14 | 0x3D<<7 | 0x17,
+ 28054 - 19968: jis0208<<14 | 0x59<<7 | 0x42,
+ 28055 - 19968: jis0212<<14 | 0x26<<7 | 0x2B,
+ 28056 - 19968: jis0212<<14 | 0x26<<7 | 0x2C,
+ 28057 - 19968: jis0208<<14 | 0x2D<<7 | 0x3D,
+ 28059 - 19968: jis0208<<14 | 0x24<<7 | 0x52,
+ 28060 - 19968: jis0208<<14 | 0x25<<7 | 0x21,
+ 28074 - 19968: jis0212<<14 | 0x26<<7 | 0x2D,
+ 28076 - 19968: jis0208<<14 | 0x59<<7 | 0x43,
+ 28079 - 19968: jis0208<<14 | 0x12<<7 | 0x15,
+ 28082 - 19968: jis0208<<14 | 0x10<<7 | 0x34,
+ 28084 - 19968: jis0212<<14 | 0x26<<7 | 0x2F,
+ 28085 - 19968: jis0208<<14 | 0x3D<<7 | 0x1D,
+ 28087 - 19968: jis0212<<14 | 0x26<<7 | 0x30,
+ 28088 - 19968: jis0208<<14 | 0x3D<<7 | 0x20,
+ 28089 - 19968: jis0212<<14 | 0x26<<7 | 0x31,
+ 28092 - 19968: jis0208<<14 | 0x2D<<7 | 0x22,
+ 28093 - 19968: jis0212<<14 | 0x26<<7 | 0x32,
+ 28095 - 19968: jis0212<<14 | 0x26<<7 | 0x33,
+ 28096 - 19968: jis0208<<14 | 0x2C<<7 | 0x43,
+ 28100 - 19968: jis0212<<14 | 0x26<<7 | 0x34,
+ 28101 - 19968: jis0208<<14 | 0x3D<<7 | 0x27,
+ 28102 - 19968: jis0208<<14 | 0x3D<<7 | 0x21,
+ 28103 - 19968: jis0208<<14 | 0x3D<<7 | 0x1E,
+ 28104 - 19968: jis0212<<14 | 0x26<<7 | 0x35,
+ 28106 - 19968: jis0212<<14 | 0x26<<7 | 0x36,
+ 28107 - 19968: jis0208<<14 | 0x2D<<7 | 0x33,
+ 28108 - 19968: jis0208<<14 | 0x3D<<7 | 0x24,
+ 28110 - 19968: jis0212<<14 | 0x26<<7 | 0x37,
+ 28111 - 19968: jis0208<<14 | 0x59<<7 | 0x44,
+ 28113 - 19968: jis0208<<14 | 0x1C<<7 | 0x29,
+ 28114 - 19968: jis0208<<14 | 0x3D<<7 | 0x26,
+ 28117 - 19968: jis0208<<14 | 0x3D<<7 | 0x2B,
+ 28118 - 19968: jis0212<<14 | 0x26<<7 | 0x39,
+ 28120 - 19968: jis0208<<14 | 0x24<<7 | 0x50,
+ 28121 - 19968: jis0208<<14 | 0x3D<<7 | 0x29,
+ 28123 - 19968: jis0212<<14 | 0x26<<7 | 0x3A,
+ 28125 - 19968: jis0212<<14 | 0x26<<7 | 0x3B,
+ 28126 - 19968: jis0208<<14 | 0x3D<<7 | 0x23,
+ 28127 - 19968: jis0212<<14 | 0x26<<7 | 0x3C,
+ 28128 - 19968: jis0212<<14 | 0x26<<7 | 0x3D,
+ 28129 - 19968: jis0208<<14 | 0x22<<7 | 0x17,
+ 28130 - 19968: jis0212<<14 | 0x26<<7 | 0x3E,
+ 28132 - 19968: jis0208<<14 | 0x3D<<7 | 0x2A,
+ 28133 - 19968: jis0212<<14 | 0x26<<7 | 0x3F,
+ 28134 - 19968: jis0208<<14 | 0x3D<<7 | 0x1F,
+ 28136 - 19968: jis0208<<14 | 0x3D<<7 | 0x25,
+ 28137 - 19968: jis0212<<14 | 0x26<<7 | 0x40,
+ 28138 - 19968: jis0208<<14 | 0x3D<<7 | 0x2C,
+ 28139 - 19968: jis0208<<14 | 0x0F<<7 | 0x5B,
+ 28140 - 19968: jis0208<<14 | 0x3D<<7 | 0x22,
+ 28142 - 19968: jis0208<<14 | 0x3D<<7 | 0x2D,
+ 28143 - 19968: jis0212<<14 | 0x26<<7 | 0x41,
+ 28144 - 19968: jis0212<<14 | 0x26<<7 | 0x42,
+ 28145 - 19968: jis0208<<14 | 0x1E<<7 | 0x1B,
+ 28146 - 19968: jis0208<<14 | 0x59<<7 | 0x46,
+ 28147 - 19968: jis0208<<14 | 0x1C<<7 | 0x3E,
+ 28148 - 19968: jis0212<<14 | 0x26<<7 | 0x43,
+ 28149 - 19968: jis0208<<14 | 0x29<<7 | 0x04,
+ 28150 - 19968: jis0212<<14 | 0x26<<7 | 0x44,
+ 28151 - 19968: jis0208<<14 | 0x19<<7 | 0x0D,
+ 28152 - 19968: jis0208<<14 | 0x59<<7 | 0x45,
+ 28153 - 19968: jis0208<<14 | 0x3D<<7 | 0x1A,
+ 28154 - 19968: jis0208<<14 | 0x3D<<7 | 0x28,
+ 28155 - 19968: jis0208<<14 | 0x24<<7 | 0x19,
+ 28156 - 19968: jis0208<<14 | 0x59<<7 | 0x47,
+ 28160 - 19968: jis0212<<14 | 0x26<<7 | 0x46,
+ 28164 - 19968: jis0212<<14 | 0x26<<7 | 0x47,
+ 28165 - 19968: jis0208<<14 | 0x1F<<7 | 0x15,
+ 28167 - 19968: jis0208<<14 | 0x12<<7 | 0x48,
+ 28168 - 19968: jis0208<<14 | 0x19<<7 | 0x30,
+ 28169 - 19968: jis0208<<14 | 0x1D<<7 | 0x23,
+ 28170 - 19968: jis0208<<14 | 0x3D<<7 | 0x1C,
+ 28171 - 19968: jis0208<<14 | 0x1C<<7 | 0x21,
+ 28179 - 19968: jis0208<<14 | 0x16<<7 | 0x2B,
+ 28181 - 19968: jis0208<<14 | 0x3D<<7 | 0x1B,
+ 28185 - 19968: jis0208<<14 | 0x3D<<7 | 0x31,
+ 28186 - 19968: jis0208<<14 | 0x1C<<7 | 0x4C,
+ 28187 - 19968: jis0208<<14 | 0x17<<7 | 0x19,
+ 28189 - 19968: jis0208<<14 | 0x3D<<7 | 0x40,
+ 28190 - 19968: jis0212<<14 | 0x26<<7 | 0x48,
+ 28191 - 19968: jis0208<<14 | 0x3D<<7 | 0x3A,
+ 28192 - 19968: jis0208<<14 | 0x14<<7 | 0x53,
+ 28193 - 19968: jis0208<<14 | 0x24<<7 | 0x2E,
+ 28194 - 19968: jis0212<<14 | 0x26<<7 | 0x49,
+ 28195 - 19968: jis0208<<14 | 0x3D<<7 | 0x35,
+ 28196 - 19968: jis0208<<14 | 0x3D<<7 | 0x3E,
+ 28197 - 19968: jis0208<<14 | 0x0F<<7 | 0x0E,
+ 28198 - 19968: jis0208<<14 | 0x10<<7 | 0x11,
+ 28199 - 19968: jis0208<<14 | 0x59<<7 | 0x4A,
+ 28201 - 19968: jis0208<<14 | 0x11<<7 | 0x18,
+ 28203 - 19968: jis0208<<14 | 0x3D<<7 | 0x37,
+ 28204 - 19968: jis0208<<14 | 0x21<<7 | 0x0B,
+ 28205 - 19968: jis0208<<14 | 0x3D<<7 | 0x2E,
+ 28206 - 19968: jis0208<<14 | 0x3D<<7 | 0x30,
+ 28207 - 19968: jis0208<<14 | 0x18<<7 | 0x20,
+ 28210 - 19968: jis0212<<14 | 0x26<<7 | 0x4B,
+ 28214 - 19968: jis0212<<14 | 0x26<<7 | 0x4C,
+ 28216 - 19968: jis0208<<14 | 0x3D<<7 | 0x41,
+ 28217 - 19968: jis0208<<14 | 0x59<<7 | 0x48,
+ 28218 - 19968: jis0208<<14 | 0x3D<<7 | 0x3C,
+ 28219 - 19968: jis0212<<14 | 0x26<<7 | 0x4E,
+ 28220 - 19968: jis0208<<14 | 0x59<<7 | 0x4B,
+ 28222 - 19968: jis0208<<14 | 0x3D<<7 | 0x34,
+ 28227 - 19968: jis0208<<14 | 0x3D<<7 | 0x3B,
+ 28228 - 19968: jis0212<<14 | 0x26<<7 | 0x50,
+ 28229 - 19968: jis0212<<14 | 0x26<<7 | 0x51,
+ 28232 - 19968: jis0212<<14 | 0x26<<7 | 0x52,
+ 28233 - 19968: jis0212<<14 | 0x26<<7 | 0x53,
+ 28234 - 19968: jis0208<<14 | 0x2B<<7 | 0x0A,
+ 28235 - 19968: jis0212<<14 | 0x26<<7 | 0x54,
+ 28237 - 19968: jis0208<<14 | 0x3D<<7 | 0x39,
+ 28238 - 19968: jis0208<<14 | 0x3D<<7 | 0x3D,
+ 28239 - 19968: jis0212<<14 | 0x26<<7 | 0x55,
+ 28241 - 19968: jis0212<<14 | 0x26<<7 | 0x56,
+ 28242 - 19968: jis0212<<14 | 0x26<<7 | 0x57,
+ 28243 - 19968: jis0212<<14 | 0x26<<7 | 0x58,
+ 28244 - 19968: jis0212<<14 | 0x26<<7 | 0x59,
+ 28246 - 19968: jis0208<<14 | 0x17<<7 | 0x2F,
+ 28247 - 19968: jis0212<<14 | 0x26<<7 | 0x5A,
+ 28248 - 19968: jis0208<<14 | 0x1D<<7 | 0x24,
+ 28251 - 19968: jis0208<<14 | 0x22<<7 | 0x18,
+ 28252 - 19968: jis0208<<14 | 0x59<<7 | 0x49,
+ 28253 - 19968: jis0212<<14 | 0x26<<7 | 0x5C,
+ 28254 - 19968: jis0212<<14 | 0x26<<7 | 0x5D,
+ 28255 - 19968: jis0208<<14 | 0x3D<<7 | 0x33,
+ 28258 - 19968: jis0212<<14 | 0x27<<7 | 0x00,
+ 28259 - 19968: jis0212<<14 | 0x27<<7 | 0x01,
+ 28263 - 19968: jis0208<<14 | 0x2C<<7 | 0x0E,
+ 28264 - 19968: jis0212<<14 | 0x27<<7 | 0x02,
+ 28267 - 19968: jis0208<<14 | 0x3D<<7 | 0x36,
+ 28270 - 19968: jis0208<<14 | 0x3D<<7 | 0x2F,
+ 28271 - 19968: jis0208<<14 | 0x24<<7 | 0x51,
+ 28274 - 19968: jis0208<<14 | 0x3D<<7 | 0x32,
+ 28275 - 19968: jis0212<<14 | 0x27<<7 | 0x03,
+ 28278 - 19968: jis0208<<14 | 0x3D<<7 | 0x38,
+ 28283 - 19968: jis0212<<14 | 0x27<<7 | 0x04,
+ 28285 - 19968: jis0212<<14 | 0x27<<7 | 0x05,
+ 28286 - 19968: jis0208<<14 | 0x2E<<7 | 0x30,
+ 28287 - 19968: jis0208<<14 | 0x1B<<7 | 0x1D,
+ 28288 - 19968: jis0208<<14 | 0x2A<<7 | 0x5D,
+ 28290 - 19968: jis0208<<14 | 0x3D<<7 | 0x42,
+ 28300 - 19968: jis0208<<14 | 0x27<<7 | 0x0D,
+ 28301 - 19968: jis0212<<14 | 0x27<<7 | 0x06,
+ 28303 - 19968: jis0208<<14 | 0x3D<<7 | 0x4E,
+ 28304 - 19968: jis0208<<14 | 0x17<<7 | 0x1A,
+ 28307 - 19968: jis0212<<14 | 0x27<<7 | 0x07,
+ 28310 - 19968: jis0208<<14 | 0x1C<<7 | 0x3F,
+ 28312 - 19968: jis0208<<14 | 0x3D<<7 | 0x44,
+ 28313 - 19968: jis0212<<14 | 0x27<<7 | 0x08,
+ 28316 - 19968: jis0208<<14 | 0x2D<<7 | 0x0E,
+ 28317 - 19968: jis0208<<14 | 0x18<<7 | 0x21,
+ 28319 - 19968: jis0208<<14 | 0x3D<<7 | 0x51,
+ 28320 - 19968: jis0212<<14 | 0x27<<7 | 0x09,
+ 28322 - 19968: jis0208<<14 | 0x0F<<7 | 0x4D,
+ 28325 - 19968: jis0208<<14 | 0x3D<<7 | 0x4F,
+ 28327 - 19968: jis0212<<14 | 0x27<<7 | 0x0A,
+ 28330 - 19968: jis0208<<14 | 0x3D<<7 | 0x43,
+ 28333 - 19968: jis0212<<14 | 0x27<<7 | 0x0B,
+ 28334 - 19968: jis0212<<14 | 0x27<<7 | 0x0C,
+ 28335 - 19968: jis0208<<14 | 0x3D<<7 | 0x49,
+ 28337 - 19968: jis0212<<14 | 0x27<<7 | 0x0D,
+ 28338 - 19968: jis0208<<14 | 0x3D<<7 | 0x4B,
+ 28339 - 19968: jis0212<<14 | 0x27<<7 | 0x0E,
+ 28342 - 19968: jis0208<<14 | 0x2C<<7 | 0x2E,
+ 28343 - 19968: jis0208<<14 | 0x3D<<7 | 0x46,
+ 28346 - 19968: jis0208<<14 | 0x24<<7 | 0x0D,
+ 28347 - 19968: jis0212<<14 | 0x27<<7 | 0x0F,
+ 28349 - 19968: jis0208<<14 | 0x3D<<7 | 0x48,
+ 28351 - 19968: jis0208<<14 | 0x59<<7 | 0x4C,
+ 28352 - 19968: jis0212<<14 | 0x27<<7 | 0x11,
+ 28353 - 19968: jis0212<<14 | 0x27<<7 | 0x12,
+ 28354 - 19968: jis0208<<14 | 0x3D<<7 | 0x50,
+ 28355 - 19968: jis0212<<14 | 0x27<<7 | 0x13,
+ 28356 - 19968: jis0208<<14 | 0x3D<<7 | 0x4A,
+ 28357 - 19968: jis0208<<14 | 0x2B<<7 | 0x26,
+ 28359 - 19968: jis0212<<14 | 0x27<<7 | 0x14,
+ 28360 - 19968: jis0212<<14 | 0x27<<7 | 0x15,
+ 28361 - 19968: jis0208<<14 | 0x3D<<7 | 0x45,
+ 28362 - 19968: jis0212<<14 | 0x27<<7 | 0x16,
+ 28363 - 19968: jis0208<<14 | 0x1B<<7 | 0x01,
+ 28364 - 19968: jis0208<<14 | 0x3D<<7 | 0x5D,
+ 28365 - 19968: jis0212<<14 | 0x27<<7 | 0x17,
+ 28366 - 19968: jis0212<<14 | 0x27<<7 | 0x18,
+ 28367 - 19968: jis0212<<14 | 0x27<<7 | 0x19,
+ 28369 - 19968: jis0208<<14 | 0x12<<7 | 0x49,
+ 28371 - 19968: jis0208<<14 | 0x3D<<7 | 0x47,
+ 28372 - 19968: jis0208<<14 | 0x3D<<7 | 0x4C,
+ 28373 - 19968: jis0208<<14 | 0x3D<<7 | 0x4D,
+ 28381 - 19968: jis0208<<14 | 0x21<<7 | 0x4B,
+ 28382 - 19968: jis0208<<14 | 0x21<<7 | 0x39,
+ 28395 - 19968: jis0212<<14 | 0x27<<7 | 0x1A,
+ 28396 - 19968: jis0208<<14 | 0x3D<<7 | 0x55,
+ 28397 - 19968: jis0212<<14 | 0x27<<7 | 0x1B,
+ 28398 - 19968: jis0212<<14 | 0x27<<7 | 0x1C,
+ 28399 - 19968: jis0208<<14 | 0x3D<<7 | 0x5B,
+ 28402 - 19968: jis0208<<14 | 0x3D<<7 | 0x59,
+ 28404 - 19968: jis0208<<14 | 0x24<<7 | 0x08,
+ 28407 - 19968: jis0208<<14 | 0x3E<<7 | 0x02,
+ 28408 - 19968: jis0208<<14 | 0x3D<<7 | 0x56,
+ 28409 - 19968: jis0212<<14 | 0x27<<7 | 0x1D,
+ 28411 - 19968: jis0212<<14 | 0x27<<7 | 0x1E,
+ 28413 - 19968: jis0212<<14 | 0x27<<7 | 0x1F,
+ 28414 - 19968: jis0208<<14 | 0x3D<<7 | 0x57,
+ 28415 - 19968: jis0208<<14 | 0x3D<<7 | 0x3F,
+ 28417 - 19968: jis0208<<14 | 0x14<<7 | 0x58,
+ 28418 - 19968: jis0208<<14 | 0x28<<7 | 0x19,
+ 28420 - 19968: jis0212<<14 | 0x27<<7 | 0x20,
+ 28422 - 19968: jis0208<<14 | 0x1B<<7 | 0x1E,
+ 28424 - 19968: jis0212<<14 | 0x27<<7 | 0x21,
+ 28425 - 19968: jis0208<<14 | 0x18<<7 | 0x56,
+ 28426 - 19968: jis0212<<14 | 0x27<<7 | 0x22,
+ 28428 - 19968: jis0212<<14 | 0x27<<7 | 0x23,
+ 28429 - 19968: jis0212<<14 | 0x27<<7 | 0x24,
+ 28431 - 19968: jis0208<<14 | 0x2E<<7 | 0x12,
+ 28433 - 19968: jis0208<<14 | 0x3D<<7 | 0x53,
+ 28435 - 19968: jis0208<<14 | 0x3E<<7 | 0x01,
+ 28436 - 19968: jis0208<<14 | 0x10<<7 | 0x48,
+ 28437 - 19968: jis0208<<14 | 0x20<<7 | 0x45,
+ 28438 - 19968: jis0212<<14 | 0x27<<7 | 0x25,
+ 28440 - 19968: jis0212<<14 | 0x27<<7 | 0x26,
+ 28442 - 19968: jis0212<<14 | 0x27<<7 | 0x27,
+ 28443 - 19968: jis0212<<14 | 0x27<<7 | 0x28,
+ 28448 - 19968: jis0208<<14 | 0x26<<7 | 0x58,
+ 28450 - 19968: jis0208<<14 | 0x13<<7 | 0x20,
+ 28451 - 19968: jis0208<<14 | 0x2D<<7 | 0x59,
+ 28454 - 19968: jis0212<<14 | 0x27<<7 | 0x29,
+ 28457 - 19968: jis0212<<14 | 0x27<<7 | 0x2A,
+ 28458 - 19968: jis0212<<14 | 0x27<<7 | 0x2B,
+ 28459 - 19968: jis0208<<14 | 0x2B<<7 | 0x00,
+ 28460 - 19968: jis0208<<14 | 0x23<<7 | 0x31,
+ 28461 - 19968: jis0212<<14 | 0x27<<7 | 0x32,
+ 28463 - 19968: jis0212<<14 | 0x27<<7 | 0x2C,
+ 28464 - 19968: jis0212<<14 | 0x27<<7 | 0x2D,
+ 28465 - 19968: jis0208<<14 | 0x3D<<7 | 0x5A,
+ 28466 - 19968: jis0208<<14 | 0x3D<<7 | 0x5C,
+ 28467 - 19968: jis0212<<14 | 0x27<<7 | 0x2E,
+ 28470 - 19968: jis0212<<14 | 0x27<<7 | 0x2F,
+ 28472 - 19968: jis0208<<14 | 0x20<<7 | 0x11,
+ 28475 - 19968: jis0212<<14 | 0x27<<7 | 0x30,
+ 28476 - 19968: jis0212<<14 | 0x27<<7 | 0x31,
+ 28478 - 19968: jis0208<<14 | 0x3E<<7 | 0x00,
+ 28479 - 19968: jis0208<<14 | 0x3D<<7 | 0x58,
+ 28481 - 19968: jis0208<<14 | 0x3D<<7 | 0x52,
+ 28485 - 19968: jis0208<<14 | 0x13<<7 | 0x22,
+ 28495 - 19968: jis0212<<14 | 0x27<<7 | 0x33,
+ 28497 - 19968: jis0212<<14 | 0x27<<7 | 0x34,
+ 28498 - 19968: jis0212<<14 | 0x27<<7 | 0x35,
+ 28499 - 19968: jis0212<<14 | 0x27<<7 | 0x36,
+ 28500 - 19968: jis0208<<14 | 0x16<<7 | 0x48,
+ 28503 - 19968: jis0212<<14 | 0x27<<7 | 0x37,
+ 28504 - 19968: jis0208<<14 | 0x3E<<7 | 0x0E,
+ 28505 - 19968: jis0212<<14 | 0x27<<7 | 0x38,
+ 28506 - 19968: jis0212<<14 | 0x27<<7 | 0x39,
+ 28507 - 19968: jis0208<<14 | 0x3E<<7 | 0x09,
+ 28508 - 19968: jis0208<<14 | 0x1F<<7 | 0x57,
+ 28509 - 19968: jis0212<<14 | 0x27<<7 | 0x3A,
+ 28510 - 19968: jis0212<<14 | 0x27<<7 | 0x3B,
+ 28511 - 19968: jis0208<<14 | 0x12<<7 | 0x42,
+ 28513 - 19968: jis0212<<14 | 0x27<<7 | 0x3C,
+ 28514 - 19968: jis0212<<14 | 0x27<<7 | 0x3D,
+ 28516 - 19968: jis0208<<14 | 0x1C<<7 | 0x40,
+ 28518 - 19968: jis0208<<14 | 0x3E<<7 | 0x12,
+ 28520 - 19968: jis0212<<14 | 0x27<<7 | 0x3E,
+ 28524 - 19968: jis0212<<14 | 0x27<<7 | 0x3F,
+ 28525 - 19968: jis0208<<14 | 0x3E<<7 | 0x0B,
+ 28526 - 19968: jis0208<<14 | 0x23<<7 | 0x0B,
+ 28527 - 19968: jis0208<<14 | 0x3E<<7 | 0x08,
+ 28528 - 19968: jis0208<<14 | 0x23<<7 | 0x38,
+ 28532 - 19968: jis0208<<14 | 0x3E<<7 | 0x2B,
+ 28536 - 19968: jis0208<<14 | 0x3E<<7 | 0x05,
+ 28538 - 19968: jis0208<<14 | 0x3E<<7 | 0x04,
+ 28540 - 19968: jis0208<<14 | 0x3E<<7 | 0x0D,
+ 28541 - 19968: jis0212<<14 | 0x27<<7 | 0x40,
+ 28542 - 19968: jis0212<<14 | 0x27<<7 | 0x41,
+ 28544 - 19968: jis0208<<14 | 0x3E<<7 | 0x07,
+ 28545 - 19968: jis0208<<14 | 0x3E<<7 | 0x06,
+ 28546 - 19968: jis0208<<14 | 0x3E<<7 | 0x0C,
+ 28547 - 19968: jis0212<<14 | 0x27<<7 | 0x42,
+ 28548 - 19968: jis0208<<14 | 0x1F<<7 | 0x00,
+ 28550 - 19968: jis0208<<14 | 0x3E<<7 | 0x03,
+ 28551 - 19968: jis0212<<14 | 0x27<<7 | 0x43,
+ 28552 - 19968: jis0208<<14 | 0x59<<7 | 0x4D,
+ 28555 - 19968: jis0212<<14 | 0x27<<7 | 0x45,
+ 28556 - 19968: jis0212<<14 | 0x27<<7 | 0x46,
+ 28557 - 19968: jis0212<<14 | 0x27<<7 | 0x47,
+ 28558 - 19968: jis0208<<14 | 0x3E<<7 | 0x0F,
+ 28560 - 19968: jis0212<<14 | 0x27<<7 | 0x48,
+ 28561 - 19968: jis0208<<14 | 0x3E<<7 | 0x10,
+ 28562 - 19968: jis0212<<14 | 0x27<<7 | 0x49,
+ 28563 - 19968: jis0212<<14 | 0x27<<7 | 0x4A,
+ 28564 - 19968: jis0212<<14 | 0x27<<7 | 0x4B,
+ 28566 - 19968: jis0212<<14 | 0x27<<7 | 0x4C,
+ 28567 - 19968: jis0208<<14 | 0x13<<7 | 0x21,
+ 28570 - 19968: jis0212<<14 | 0x27<<7 | 0x4D,
+ 28575 - 19968: jis0212<<14 | 0x27<<7 | 0x4E,
+ 28576 - 19968: jis0212<<14 | 0x27<<7 | 0x4F,
+ 28577 - 19968: jis0208<<14 | 0x3E<<7 | 0x15,
+ 28579 - 19968: jis0208<<14 | 0x3E<<7 | 0x14,
+ 28580 - 19968: jis0208<<14 | 0x3E<<7 | 0x16,
+ 28581 - 19968: jis0212<<14 | 0x27<<7 | 0x50,
+ 28582 - 19968: jis0212<<14 | 0x27<<7 | 0x51,
+ 28583 - 19968: jis0212<<14 | 0x27<<7 | 0x52,
+ 28584 - 19968: jis0212<<14 | 0x27<<7 | 0x53,
+ 28586 - 19968: jis0208<<14 | 0x3E<<7 | 0x19,
+ 28590 - 19968: jis0212<<14 | 0x27<<7 | 0x54,
+ 28591 - 19968: jis0212<<14 | 0x27<<7 | 0x55,
+ 28592 - 19968: jis0212<<14 | 0x27<<7 | 0x56,
+ 28593 - 19968: jis0208<<14 | 0x24<<7 | 0x22,
+ 28595 - 19968: jis0208<<14 | 0x3E<<7 | 0x13,
+ 28597 - 19968: jis0208<<14 | 0x59<<7 | 0x4E,
+ 28598 - 19968: jis0212<<14 | 0x27<<7 | 0x58,
+ 28601 - 19968: jis0208<<14 | 0x3E<<7 | 0x17,
+ 28604 - 19968: jis0212<<14 | 0x27<<7 | 0x59,
+ 28608 - 19968: jis0208<<14 | 0x16<<7 | 0x42,
+ 28609 - 19968: jis0208<<14 | 0x21<<7 | 0x58,
+ 28610 - 19968: jis0208<<14 | 0x3E<<7 | 0x11,
+ 28611 - 19968: jis0208<<14 | 0x26<<7 | 0x1A,
+ 28613 - 19968: jis0212<<14 | 0x27<<7 | 0x5A,
+ 28614 - 19968: jis0208<<14 | 0x3E<<7 | 0x18,
+ 28615 - 19968: jis0212<<14 | 0x27<<7 | 0x5B,
+ 28616 - 19968: jis0212<<14 | 0x27<<7 | 0x5C,
+ 28618 - 19968: jis0212<<14 | 0x27<<7 | 0x5D,
+ 28628 - 19968: jis0208<<14 | 0x3E<<7 | 0x1D,
+ 28629 - 19968: jis0208<<14 | 0x3E<<7 | 0x1B,
+ 28632 - 19968: jis0208<<14 | 0x3E<<7 | 0x1E,
+ 28634 - 19968: jis0212<<14 | 0x28<<7 | 0x00,
+ 28635 - 19968: jis0208<<14 | 0x3E<<7 | 0x21,
+ 28638 - 19968: jis0212<<14 | 0x28<<7 | 0x01,
+ 28639 - 19968: jis0208<<14 | 0x3E<<7 | 0x1A,
+ 28640 - 19968: jis0208<<14 | 0x18<<7 | 0x49,
+ 28641 - 19968: jis0208<<14 | 0x26<<7 | 0x07,
+ 28644 - 19968: jis0208<<14 | 0x3D<<7 | 0x18,
+ 28648 - 19968: jis0212<<14 | 0x28<<7 | 0x02,
+ 28649 - 19968: jis0212<<14 | 0x28<<7 | 0x03,
+ 28651 - 19968: jis0208<<14 | 0x2C<<7 | 0x53,
+ 28652 - 19968: jis0208<<14 | 0x3E<<7 | 0x1C,
+ 28654 - 19968: jis0208<<14 | 0x3E<<7 | 0x20,
+ 28655 - 19968: jis0208<<14 | 0x21<<7 | 0x54,
+ 28656 - 19968: jis0212<<14 | 0x28<<7 | 0x04,
+ 28657 - 19968: jis0208<<14 | 0x3E<<7 | 0x1F,
+ 28659 - 19968: jis0208<<14 | 0x3E<<7 | 0x0A,
+ 28661 - 19968: jis0208<<14 | 0x59<<7 | 0x4F,
+ 28662 - 19968: jis0208<<14 | 0x4E<<7 | 0x48,
+ 28665 - 19968: jis0212<<14 | 0x28<<7 | 0x06,
+ 28666 - 19968: jis0208<<14 | 0x3E<<7 | 0x24,
+ 28668 - 19968: jis0212<<14 | 0x28<<7 | 0x07,
+ 28669 - 19968: jis0212<<14 | 0x28<<7 | 0x08,
+ 28670 - 19968: jis0208<<14 | 0x3E<<7 | 0x28,
+ 28672 - 19968: jis0212<<14 | 0x28<<7 | 0x09,
+ 28673 - 19968: jis0208<<14 | 0x3E<<7 | 0x26,
+ 28677 - 19968: jis0208<<14 | 0x59<<7 | 0x50,
+ 28678 - 19968: jis0212<<14 | 0x28<<7 | 0x0B,
+ 28679 - 19968: jis0208<<14 | 0x59<<7 | 0x51,
+ 28681 - 19968: jis0208<<14 | 0x3E<<7 | 0x22,
+ 28683 - 19968: jis0208<<14 | 0x3E<<7 | 0x23,
+ 28685 - 19968: jis0212<<14 | 0x28<<7 | 0x0D,
+ 28687 - 19968: jis0208<<14 | 0x3E<<7 | 0x27,
+ 28689 - 19968: jis0208<<14 | 0x3E<<7 | 0x25,
+ 28693 - 19968: jis0208<<14 | 0x28<<7 | 0x2D,
+ 28695 - 19968: jis0212<<14 | 0x28<<7 | 0x0E,
+ 28696 - 19968: jis0208<<14 | 0x3E<<7 | 0x2D,
+ 28698 - 19968: jis0208<<14 | 0x3E<<7 | 0x2A,
+ 28699 - 19968: jis0208<<14 | 0x3E<<7 | 0x29,
+ 28701 - 19968: jis0208<<14 | 0x3E<<7 | 0x2C,
+ 28702 - 19968: jis0208<<14 | 0x25<<7 | 0x33,
+ 28703 - 19968: jis0208<<14 | 0x3E<<7 | 0x2E,
+ 28704 - 19968: jis0212<<14 | 0x28<<7 | 0x0F,
+ 28707 - 19968: jis0212<<14 | 0x28<<7 | 0x10,
+ 28710 - 19968: jis0208<<14 | 0x22<<7 | 0x54,
+ 28711 - 19968: jis0208<<14 | 0x21<<7 | 0x4C,
+ 28712 - 19968: jis0208<<14 | 0x59<<7 | 0x52,
+ 28716 - 19968: jis0208<<14 | 0x1F<<7 | 0x04,
+ 28719 - 19968: jis0212<<14 | 0x28<<7 | 0x11,
+ 28720 - 19968: jis0208<<14 | 0x3E<<7 | 0x2F,
+ 28722 - 19968: jis0208<<14 | 0x3E<<7 | 0x31,
+ 28724 - 19968: jis0212<<14 | 0x28<<7 | 0x12,
+ 28727 - 19968: jis0212<<14 | 0x28<<7 | 0x13,
+ 28729 - 19968: jis0212<<14 | 0x28<<7 | 0x14,
+ 28732 - 19968: jis0212<<14 | 0x28<<7 | 0x15,
+ 28734 - 19968: jis0208<<14 | 0x3E<<7 | 0x30,
+ 28739 - 19968: jis0212<<14 | 0x28<<7 | 0x16,
+ 28740 - 19968: jis0212<<14 | 0x28<<7 | 0x17,
+ 28744 - 19968: jis0212<<14 | 0x28<<7 | 0x18,
+ 28745 - 19968: jis0212<<14 | 0x28<<7 | 0x19,
+ 28746 - 19968: jis0212<<14 | 0x28<<7 | 0x1A,
+ 28747 - 19968: jis0212<<14 | 0x28<<7 | 0x1B,
+ 28748 - 19968: jis0208<<14 | 0x3D<<7 | 0x54,
+ 28750 - 19968: jis0212<<14 | 0x28<<7 | 0x20,
+ 28753 - 19968: jis0208<<14 | 0x3E<<7 | 0x32,
+ 28756 - 19968: jis0212<<14 | 0x28<<7 | 0x1C,
+ 28757 - 19968: jis0212<<14 | 0x28<<7 | 0x1D,
+ 28760 - 19968: jis0208<<14 | 0x25<<7 | 0x46,
+ 28765 - 19968: jis0212<<14 | 0x28<<7 | 0x1E,
+ 28766 - 19968: jis0212<<14 | 0x28<<7 | 0x1F,
+ 28771 - 19968: jis0208<<14 | 0x3E<<7 | 0x33,
+ 28772 - 19968: jis0212<<14 | 0x28<<7 | 0x21,
+ 28773 - 19968: jis0212<<14 | 0x28<<7 | 0x22,
+ 28779 - 19968: jis0208<<14 | 0x11<<7 | 0x2F,
+ 28780 - 19968: jis0212<<14 | 0x28<<7 | 0x23,
+ 28782 - 19968: jis0212<<14 | 0x28<<7 | 0x24,
+ 28783 - 19968: jis0208<<14 | 0x24<<7 | 0x53,
+ 28784 - 19968: jis0208<<14 | 0x12<<7 | 0x04,
+ 28789 - 19968: jis0212<<14 | 0x28<<7 | 0x25,
+ 28790 - 19968: jis0212<<14 | 0x28<<7 | 0x26,
+ 28792 - 19968: jis0208<<14 | 0x14<<7 | 0x43,
+ 28796 - 19968: jis0208<<14 | 0x1B<<7 | 0x3D,
+ 28797 - 19968: jis0208<<14 | 0x19<<7 | 0x31,
+ 28798 - 19968: jis0212<<14 | 0x28<<7 | 0x27,
+ 28801 - 19968: jis0212<<14 | 0x28<<7 | 0x28,
+ 28805 - 19968: jis0208<<14 | 0x59<<7 | 0x53,
+ 28806 - 19968: jis0212<<14 | 0x28<<7 | 0x2A,
+ 28809 - 19968: jis0208<<14 | 0x2E<<7 | 0x06,
+ 28810 - 19968: jis0208<<14 | 0x1E<<7 | 0x45,
+ 28814 - 19968: jis0208<<14 | 0x10<<7 | 0x49,
+ 28818 - 19968: jis0208<<14 | 0x3E<<7 | 0x35,
+ 28820 - 19968: jis0212<<14 | 0x28<<7 | 0x2B,
+ 28821 - 19968: jis0212<<14 | 0x28<<7 | 0x2C,
+ 28822 - 19968: jis0212<<14 | 0x28<<7 | 0x2D,
+ 28823 - 19968: jis0212<<14 | 0x28<<7 | 0x2E,
+ 28824 - 19968: jis0212<<14 | 0x28<<7 | 0x2F,
+ 28825 - 19968: jis0208<<14 | 0x3E<<7 | 0x34,
+ 28827 - 19968: jis0212<<14 | 0x28<<7 | 0x30,
+ 28836 - 19968: jis0212<<14 | 0x28<<7 | 0x31,
+ 28843 - 19968: jis0208<<14 | 0x59<<7 | 0x54,
+ 28844 - 19968: jis0208<<14 | 0x3E<<7 | 0x38,
+ 28845 - 19968: jis0208<<14 | 0x22<<7 | 0x19,
+ 28846 - 19968: jis0208<<14 | 0x3E<<7 | 0x3B,
+ 28847 - 19968: jis0208<<14 | 0x3E<<7 | 0x36,
+ 28848 - 19968: jis0212<<14 | 0x28<<7 | 0x33,
+ 28849 - 19968: jis0212<<14 | 0x28<<7 | 0x34,
+ 28851 - 19968: jis0208<<14 | 0x3E<<7 | 0x3A,
+ 28852 - 19968: jis0212<<14 | 0x28<<7 | 0x35,
+ 28855 - 19968: jis0212<<14 | 0x28<<7 | 0x36,
+ 28856 - 19968: jis0208<<14 | 0x3E<<7 | 0x39,
+ 28857 - 19968: jis0208<<14 | 0x24<<7 | 0x1F,
+ 28858 - 19968: jis0208<<14 | 0x0F<<7 | 0x38,
+ 28859 - 19968: jis0208<<14 | 0x58<<7 | 0x06,
+ 28872 - 19968: jis0208<<14 | 0x2D<<7 | 0x54,
+ 28874 - 19968: jis0212<<14 | 0x28<<7 | 0x37,
+ 28875 - 19968: jis0208<<14 | 0x3E<<7 | 0x3D,
+ 28879 - 19968: jis0208<<14 | 0x10<<7 | 0x07,
+ 28881 - 19968: jis0212<<14 | 0x28<<7 | 0x38,
+ 28883 - 19968: jis0212<<14 | 0x28<<7 | 0x39,
+ 28884 - 19968: jis0212<<14 | 0x28<<7 | 0x3A,
+ 28885 - 19968: jis0212<<14 | 0x28<<7 | 0x3B,
+ 28886 - 19968: jis0212<<14 | 0x28<<7 | 0x3C,
+ 28888 - 19968: jis0212<<14 | 0x28<<7 | 0x3D,
+ 28889 - 19968: jis0208<<14 | 0x3E<<7 | 0x3F,
+ 28892 - 19968: jis0212<<14 | 0x28<<7 | 0x3E,
+ 28893 - 19968: jis0208<<14 | 0x3E<<7 | 0x3E,
+ 28895 - 19968: jis0208<<14 | 0x3E<<7 | 0x3C,
+ 28900 - 19968: jis0212<<14 | 0x28<<7 | 0x3F,
+ 28913 - 19968: jis0208<<14 | 0x3E<<7 | 0x37,
+ 28921 - 19968: jis0208<<14 | 0x2A<<7 | 0x02,
+ 28922 - 19968: jis0212<<14 | 0x28<<7 | 0x40,
+ 28925 - 19968: jis0208<<14 | 0x3E<<7 | 0x41,
+ 28931 - 19968: jis0212<<14 | 0x28<<7 | 0x41,
+ 28932 - 19968: jis0208<<14 | 0x59<<7 | 0x56,
+ 28933 - 19968: jis0212<<14 | 0x28<<7 | 0x43,
+ 28934 - 19968: jis0212<<14 | 0x28<<7 | 0x44,
+ 28935 - 19968: jis0212<<14 | 0x28<<7 | 0x45,
+ 28937 - 19968: jis0208<<14 | 0x3E<<7 | 0x40,
+ 28939 - 19968: jis0212<<14 | 0x28<<7 | 0x46,
+ 28940 - 19968: jis0212<<14 | 0x28<<7 | 0x47,
+ 28943 - 19968: jis0208<<14 | 0x59<<7 | 0x55,
+ 28948 - 19968: jis0208<<14 | 0x10<<7 | 0x4A,
+ 28953 - 19968: jis0208<<14 | 0x3E<<7 | 0x43,
+ 28954 - 19968: jis0208<<14 | 0x29<<7 | 0x11,
+ 28956 - 19968: jis0208<<14 | 0x3E<<7 | 0x42,
+ 28958 - 19968: jis0212<<14 | 0x28<<7 | 0x49,
+ 28960 - 19968: jis0212<<14 | 0x28<<7 | 0x4A,
+ 28961 - 19968: jis0208<<14 | 0x2B<<7 | 0x14,
+ 28966 - 19968: jis0208<<14 | 0x1D<<7 | 0x26,
+ 28971 - 19968: jis0212<<14 | 0x28<<7 | 0x4B,
+ 28973 - 19968: jis0212<<14 | 0x28<<7 | 0x4C,
+ 28975 - 19968: jis0212<<14 | 0x28<<7 | 0x4D,
+ 28976 - 19968: jis0212<<14 | 0x28<<7 | 0x4E,
+ 28977 - 19968: jis0212<<14 | 0x28<<7 | 0x4F,
+ 28982 - 19968: jis0208<<14 | 0x20<<7 | 0x12,
+ 28984 - 19968: jis0212<<14 | 0x28<<7 | 0x50,
+ 28988 - 19968: jis0208<<14 | 0x1D<<7 | 0x25,
+ 28993 - 19968: jis0212<<14 | 0x28<<7 | 0x51,
+ 28997 - 19968: jis0212<<14 | 0x28<<7 | 0x52,
+ 28998 - 19968: jis0208<<14 | 0x59<<7 | 0x58,
+ 28999 - 19968: jis0208<<14 | 0x59<<7 | 0x59,
+ 29001 - 19968: jis0208<<14 | 0x2D<<7 | 0x5A,
+ 29002 - 19968: jis0212<<14 | 0x28<<7 | 0x55,
+ 29003 - 19968: jis0212<<14 | 0x28<<7 | 0x56,
+ 29004 - 19968: jis0208<<14 | 0x3E<<7 | 0x49,
+ 29006 - 19968: jis0208<<14 | 0x1F<<7 | 0x58,
+ 29008 - 19968: jis0212<<14 | 0x28<<7 | 0x57,
+ 29010 - 19968: jis0212<<14 | 0x28<<7 | 0x58,
+ 29013 - 19968: jis0208<<14 | 0x3E<<7 | 0x45,
+ 29014 - 19968: jis0208<<14 | 0x3E<<7 | 0x4A,
+ 29015 - 19968: jis0212<<14 | 0x28<<7 | 0x59,
+ 29017 - 19968: jis0208<<14 | 0x10<<7 | 0x4B,
+ 29018 - 19968: jis0212<<14 | 0x28<<7 | 0x5A,
+ 29020 - 19968: jis0208<<14 | 0x59<<7 | 0x57,
+ 29022 - 19968: jis0212<<14 | 0x28<<7 | 0x5C,
+ 29024 - 19968: jis0212<<14 | 0x28<<7 | 0x5D,
+ 29026 - 19968: jis0208<<14 | 0x3E<<7 | 0x48,
+ 29028 - 19968: jis0208<<14 | 0x26<<7 | 0x40,
+ 29029 - 19968: jis0208<<14 | 0x3E<<7 | 0x44,
+ 29030 - 19968: jis0208<<14 | 0x3E<<7 | 0x47,
+ 29031 - 19968: jis0208<<14 | 0x1D<<7 | 0x27,
+ 29032 - 19968: jis0212<<14 | 0x29<<7 | 0x00,
+ 29033 - 19968: jis0208<<14 | 0x27<<7 | 0x30,
+ 29036 - 19968: jis0208<<14 | 0x3E<<7 | 0x4B,
+ 29038 - 19968: jis0208<<14 | 0x1B<<7 | 0x30,
+ 29049 - 19968: jis0212<<14 | 0x29<<7 | 0x01,
+ 29053 - 19968: jis0208<<14 | 0x1F<<7 | 0x59,
+ 29056 - 19968: jis0212<<14 | 0x29<<7 | 0x02,
+ 29060 - 19968: jis0208<<14 | 0x3E<<7 | 0x4E,
+ 29061 - 19968: jis0212<<14 | 0x29<<7 | 0x03,
+ 29063 - 19968: jis0212<<14 | 0x29<<7 | 0x04,
+ 29064 - 19968: jis0208<<14 | 0x3E<<7 | 0x46,
+ 29066 - 19968: jis0208<<14 | 0x16<<7 | 0x06,
+ 29068 - 19968: jis0212<<14 | 0x29<<7 | 0x05,
+ 29071 - 19968: jis0208<<14 | 0x3E<<7 | 0x4C,
+ 29074 - 19968: jis0212<<14 | 0x29<<7 | 0x06,
+ 29076 - 19968: jis0208<<14 | 0x2C<<7 | 0x2F,
+ 29077 - 19968: jis0208<<14 | 0x3E<<7 | 0x4F,
+ 29081 - 19968: jis0208<<14 | 0x53<<7 | 0x05,
+ 29082 - 19968: jis0212<<14 | 0x29<<7 | 0x07,
+ 29083 - 19968: jis0212<<14 | 0x29<<7 | 0x08,
+ 29087 - 19968: jis0208<<14 | 0x1C<<7 | 0x2E,
+ 29088 - 19968: jis0212<<14 | 0x29<<7 | 0x09,
+ 29090 - 19968: jis0212<<14 | 0x29<<7 | 0x0A,
+ 29096 - 19968: jis0208<<14 | 0x3E<<7 | 0x50,
+ 29100 - 19968: jis0208<<14 | 0x3E<<7 | 0x51,
+ 29103 - 19968: jis0212<<14 | 0x29<<7 | 0x0B,
+ 29104 - 19968: jis0212<<14 | 0x29<<7 | 0x0C,
+ 29105 - 19968: jis0208<<14 | 0x26<<7 | 0x0D,
+ 29106 - 19968: jis0212<<14 | 0x29<<7 | 0x0D,
+ 29107 - 19968: jis0212<<14 | 0x29<<7 | 0x0E,
+ 29113 - 19968: jis0208<<14 | 0x3E<<7 | 0x53,
+ 29114 - 19968: jis0212<<14 | 0x29<<7 | 0x0F,
+ 29118 - 19968: jis0208<<14 | 0x3E<<7 | 0x54,
+ 29119 - 19968: jis0212<<14 | 0x29<<7 | 0x10,
+ 29120 - 19968: jis0212<<14 | 0x29<<7 | 0x11,
+ 29121 - 19968: jis0208<<14 | 0x59<<7 | 0x5B,
+ 29123 - 19968: jis0208<<14 | 0x26<<7 | 0x12,
+ 29124 - 19968: jis0212<<14 | 0x29<<7 | 0x13,
+ 29128 - 19968: jis0208<<14 | 0x24<<7 | 0x54,
+ 29129 - 19968: jis0208<<14 | 0x3E<<7 | 0x56,
+ 29131 - 19968: jis0212<<14 | 0x29<<7 | 0x14,
+ 29132 - 19968: jis0212<<14 | 0x29<<7 | 0x15,
+ 29134 - 19968: jis0208<<14 | 0x3E<<7 | 0x58,
+ 29136 - 19968: jis0208<<14 | 0x2D<<7 | 0x34,
+ 29138 - 19968: jis0208<<14 | 0x3E<<7 | 0x55,
+ 29139 - 19968: jis0212<<14 | 0x29<<7 | 0x16,
+ 29140 - 19968: jis0208<<14 | 0x3E<<7 | 0x57,
+ 29141 - 19968: jis0208<<14 | 0x10<<7 | 0x4C,
+ 29142 - 19968: jis0212<<14 | 0x29<<7 | 0x17,
+ 29143 - 19968: jis0208<<14 | 0x3E<<7 | 0x52,
+ 29145 - 19968: jis0212<<14 | 0x29<<7 | 0x18,
+ 29146 - 19968: jis0212<<14 | 0x29<<7 | 0x19,
+ 29148 - 19968: jis0212<<14 | 0x29<<7 | 0x1A,
+ 29151 - 19968: jis0208<<14 | 0x32<<7 | 0x3A,
+ 29152 - 19968: jis0208<<14 | 0x3E<<7 | 0x59,
+ 29157 - 19968: jis0208<<14 | 0x20<<7 | 0x46,
+ 29158 - 19968: jis0208<<14 | 0x1A<<7 | 0x17,
+ 29159 - 19968: jis0208<<14 | 0x3E<<7 | 0x5B,
+ 29164 - 19968: jis0208<<14 | 0x3E<<7 | 0x5A,
+ 29165 - 19968: jis0208<<14 | 0x1E<<7 | 0x03,
+ 29166 - 19968: jis0208<<14 | 0x31<<7 | 0x38,
+ 29173 - 19968: jis0208<<14 | 0x3E<<7 | 0x5C,
+ 29176 - 19968: jis0212<<14 | 0x29<<7 | 0x1B,
+ 29177 - 19968: jis0208<<14 | 0x3F<<7 | 0x00,
+ 29179 - 19968: jis0208<<14 | 0x3E<<7 | 0x4D,
+ 29180 - 19968: jis0208<<14 | 0x3E<<7 | 0x5D,
+ 29182 - 19968: jis0208<<14 | 0x59<<7 | 0x5C,
+ 29183 - 19968: jis0208<<14 | 0x3F<<7 | 0x01,
+ 29184 - 19968: jis0212<<14 | 0x29<<7 | 0x1D,
+ 29190 - 19968: jis0208<<14 | 0x26<<7 | 0x59,
+ 29191 - 19968: jis0212<<14 | 0x29<<7 | 0x1E,
+ 29192 - 19968: jis0212<<14 | 0x29<<7 | 0x1F,
+ 29193 - 19968: jis0212<<14 | 0x29<<7 | 0x20,
+ 29197 - 19968: jis0208<<14 | 0x3F<<7 | 0x02,
+ 29200 - 19968: jis0208<<14 | 0x3F<<7 | 0x03,
+ 29203 - 19968: jis0212<<14 | 0x29<<7 | 0x21,
+ 29207 - 19968: jis0212<<14 | 0x29<<7 | 0x22,
+ 29210 - 19968: jis0212<<14 | 0x29<<7 | 0x23,
+ 29211 - 19968: jis0208<<14 | 0x3F<<7 | 0x04,
+ 29213 - 19968: jis0212<<14 | 0x29<<7 | 0x24,
+ 29215 - 19968: jis0212<<14 | 0x29<<7 | 0x25,
+ 29220 - 19968: jis0212<<14 | 0x29<<7 | 0x26,
+ 29224 - 19968: jis0208<<14 | 0x3F<<7 | 0x05,
+ 29226 - 19968: jis0208<<14 | 0x23<<7 | 0x3D,
+ 29227 - 19968: jis0212<<14 | 0x29<<7 | 0x27,
+ 29228 - 19968: jis0208<<14 | 0x3F<<7 | 0x07,
+ 29229 - 19968: jis0208<<14 | 0x3F<<7 | 0x06,
+ 29231 - 19968: jis0212<<14 | 0x29<<7 | 0x28,
+ 29232 - 19968: jis0208<<14 | 0x3F<<7 | 0x08,
+ 29234 - 19968: jis0208<<14 | 0x3F<<7 | 0x09,
+ 29236 - 19968: jis0212<<14 | 0x29<<7 | 0x29,
+ 29237 - 19968: jis0208<<14 | 0x1B<<7 | 0x3E,
+ 29238 - 19968: jis0208<<14 | 0x28<<7 | 0x42,
+ 29240 - 19968: jis0212<<14 | 0x29<<7 | 0x2A,
+ 29241 - 19968: jis0212<<14 | 0x29<<7 | 0x2B,
+ 29242 - 19968: jis0208<<14 | 0x2B<<7 | 0x4B,
+ 29243 - 19968: jis0208<<14 | 0x3F<<7 | 0x0A,
+ 29244 - 19968: jis0208<<14 | 0x3F<<7 | 0x0B,
+ 29245 - 19968: jis0208<<14 | 0x20<<7 | 0x35,
+ 29246 - 19968: jis0208<<14 | 0x1B<<7 | 0x03,
+ 29247 - 19968: jis0208<<14 | 0x3F<<7 | 0x0C,
+ 29248 - 19968: jis0208<<14 | 0x3F<<7 | 0x0D,
+ 29249 - 19968: jis0212<<14 | 0x29<<7 | 0x2C,
+ 29250 - 19968: jis0212<<14 | 0x29<<7 | 0x2D,
+ 29251 - 19968: jis0212<<14 | 0x29<<7 | 0x2E,
+ 29253 - 19968: jis0212<<14 | 0x29<<7 | 0x2F,
+ 29254 - 19968: jis0208<<14 | 0x3F<<7 | 0x0E,
+ 29255 - 19968: jis0208<<14 | 0x29<<7 | 0x31,
+ 29256 - 19968: jis0208<<14 | 0x27<<7 | 0x26,
+ 29259 - 19968: jis0208<<14 | 0x3F<<7 | 0x0F,
+ 29260 - 19968: jis0208<<14 | 0x26<<7 | 0x36,
+ 29262 - 19968: jis0212<<14 | 0x29<<7 | 0x30,
+ 29263 - 19968: jis0212<<14 | 0x29<<7 | 0x31,
+ 29264 - 19968: jis0212<<14 | 0x29<<7 | 0x32,
+ 29266 - 19968: jis0208<<14 | 0x23<<7 | 0x0C,
+ 29267 - 19968: jis0212<<14 | 0x29<<7 | 0x33,
+ 29269 - 19968: jis0212<<14 | 0x29<<7 | 0x34,
+ 29270 - 19968: jis0212<<14 | 0x29<<7 | 0x35,
+ 29272 - 19968: jis0208<<14 | 0x3F<<7 | 0x10,
+ 29273 - 19968: jis0208<<14 | 0x11<<7 | 0x46,
+ 29274 - 19968: jis0212<<14 | 0x29<<7 | 0x36,
+ 29275 - 19968: jis0208<<14 | 0x14<<7 | 0x4C,
+ 29276 - 19968: jis0212<<14 | 0x29<<7 | 0x37,
+ 29277 - 19968: jis0208<<14 | 0x2B<<7 | 0x25,
+ 29278 - 19968: jis0212<<14 | 0x29<<7 | 0x38,
+ 29279 - 19968: jis0208<<14 | 0x2B<<7 | 0x15,
+ 29280 - 19968: jis0212<<14 | 0x29<<7 | 0x39,
+ 29281 - 19968: jis0208<<14 | 0x11<<7 | 0x13,
+ 29282 - 19968: jis0208<<14 | 0x2E<<7 | 0x13,
+ 29283 - 19968: jis0212<<14 | 0x29<<7 | 0x3A,
+ 29287 - 19968: jis0208<<14 | 0x2A<<7 | 0x31,
+ 29288 - 19968: jis0212<<14 | 0x29<<7 | 0x3B,
+ 29289 - 19968: jis0208<<14 | 0x29<<7 | 0x09,
+ 29291 - 19968: jis0212<<14 | 0x29<<7 | 0x3C,
+ 29294 - 19968: jis0212<<14 | 0x29<<7 | 0x3D,
+ 29295 - 19968: jis0212<<14 | 0x29<<7 | 0x3E,
+ 29297 - 19968: jis0212<<14 | 0x29<<7 | 0x3F,
+ 29298 - 19968: jis0208<<14 | 0x1F<<7 | 0x16,
+ 29300 - 19968: jis0208<<14 | 0x3F<<7 | 0x11,
+ 29303 - 19968: jis0212<<14 | 0x29<<7 | 0x40,
+ 29304 - 19968: jis0212<<14 | 0x29<<7 | 0x41,
+ 29305 - 19968: jis0208<<14 | 0x25<<7 | 0x22,
+ 29307 - 19968: jis0212<<14 | 0x29<<7 | 0x42,
+ 29308 - 19968: jis0212<<14 | 0x29<<7 | 0x43,
+ 29309 - 19968: jis0208<<14 | 0x17<<7 | 0x02,
+ 29310 - 19968: jis0208<<14 | 0x3F<<7 | 0x12,
+ 29311 - 19968: jis0212<<14 | 0x29<<7 | 0x44,
+ 29312 - 19968: jis0208<<14 | 0x19<<7 | 0x33,
+ 29313 - 19968: jis0208<<14 | 0x3F<<7 | 0x14,
+ 29314 - 19968: jis0208<<14 | 0x3F<<7 | 0x13,
+ 29316 - 19968: jis0212<<14 | 0x29<<7 | 0x45,
+ 29319 - 19968: jis0208<<14 | 0x3F<<7 | 0x15,
+ 29321 - 19968: jis0212<<14 | 0x29<<7 | 0x46,
+ 29325 - 19968: jis0212<<14 | 0x29<<7 | 0x47,
+ 29326 - 19968: jis0212<<14 | 0x29<<7 | 0x48,
+ 29330 - 19968: jis0208<<14 | 0x3F<<7 | 0x16,
+ 29331 - 19968: jis0212<<14 | 0x29<<7 | 0x49,
+ 29334 - 19968: jis0208<<14 | 0x3F<<7 | 0x17,
+ 29339 - 19968: jis0212<<14 | 0x29<<7 | 0x4A,
+ 29344 - 19968: jis0208<<14 | 0x14<<7 | 0x1D,
+ 29346 - 19968: jis0208<<14 | 0x3F<<7 | 0x18,
+ 29351 - 19968: jis0208<<14 | 0x3F<<7 | 0x19,
+ 29352 - 19968: jis0212<<14 | 0x29<<7 | 0x4B,
+ 29356 - 19968: jis0208<<14 | 0x17<<7 | 0x03,
+ 29357 - 19968: jis0212<<14 | 0x29<<7 | 0x4C,
+ 29358 - 19968: jis0212<<14 | 0x29<<7 | 0x4D,
+ 29359 - 19968: jis0208<<14 | 0x27<<7 | 0x27,
+ 29361 - 19968: jis0208<<14 | 0x59<<7 | 0x5D,
+ 29362 - 19968: jis0208<<14 | 0x3F<<7 | 0x1B,
+ 29364 - 19968: jis0212<<14 | 0x29<<7 | 0x4F,
+ 29366 - 19968: jis0208<<14 | 0x1D<<7 | 0x54,
+ 29369 - 19968: jis0208<<14 | 0x3F<<7 | 0x1A,
+ 29374 - 19968: jis0208<<14 | 0x5A<<7 | 0x00,
+ 29377 - 19968: jis0212<<14 | 0x29<<7 | 0x51,
+ 29378 - 19968: jis0208<<14 | 0x15<<7 | 0x17,
+ 29379 - 19968: jis0208<<14 | 0x3F<<7 | 0x1C,
+ 29380 - 19968: jis0208<<14 | 0x3F<<7 | 0x1E,
+ 29382 - 19968: jis0208<<14 | 0x3F<<7 | 0x1D,
+ 29383 - 19968: jis0212<<14 | 0x29<<7 | 0x52,
+ 29385 - 19968: jis0212<<14 | 0x29<<7 | 0x53,
+ 29388 - 19968: jis0212<<14 | 0x29<<7 | 0x54,
+ 29390 - 19968: jis0208<<14 | 0x3F<<7 | 0x1F,
+ 29392 - 19968: jis0208<<14 | 0x17<<7 | 0x30,
+ 29394 - 19968: jis0208<<14 | 0x3F<<7 | 0x20,
+ 29397 - 19968: jis0212<<14 | 0x29<<7 | 0x55,
+ 29398 - 19968: jis0212<<14 | 0x29<<7 | 0x56,
+ 29399 - 19968: jis0208<<14 | 0x15<<7 | 0x48,
+ 29400 - 19968: jis0212<<14 | 0x29<<7 | 0x57,
+ 29401 - 19968: jis0208<<14 | 0x20<<7 | 0x1F,
+ 29403 - 19968: jis0208<<14 | 0x18<<7 | 0x5C,
+ 29407 - 19968: jis0212<<14 | 0x29<<7 | 0x58,
+ 29408 - 19968: jis0208<<14 | 0x3F<<7 | 0x22,
+ 29409 - 19968: jis0208<<14 | 0x3F<<7 | 0x23,
+ 29410 - 19968: jis0208<<14 | 0x3F<<7 | 0x21,
+ 29413 - 19968: jis0212<<14 | 0x29<<7 | 0x59,
+ 29417 - 19968: jis0208<<14 | 0x1B<<7 | 0x4C,
+ 29420 - 19968: jis0208<<14 | 0x25<<7 | 0x27,
+ 29421 - 19968: jis0208<<14 | 0x15<<7 | 0x18,
+ 29427 - 19968: jis0212<<14 | 0x29<<7 | 0x5A,
+ 29428 - 19968: jis0212<<14 | 0x29<<7 | 0x5B,
+ 29431 - 19968: jis0208<<14 | 0x3F<<7 | 0x25,
+ 29432 - 19968: jis0208<<14 | 0x22<<7 | 0x0B,
+ 29433 - 19968: jis0208<<14 | 0x3F<<7 | 0x24,
+ 29434 - 19968: jis0212<<14 | 0x29<<7 | 0x5C,
+ 29435 - 19968: jis0212<<14 | 0x29<<7 | 0x5D,
+ 29436 - 19968: jis0208<<14 | 0x2E<<7 | 0x14,
+ 29437 - 19968: jis0208<<14 | 0x26<<7 | 0x41,
+ 29438 - 19968: jis0212<<14 | 0x2A<<7 | 0x00,
+ 29442 - 19968: jis0212<<14 | 0x2A<<7 | 0x01,
+ 29444 - 19968: jis0212<<14 | 0x2A<<7 | 0x02,
+ 29445 - 19968: jis0212<<14 | 0x2A<<7 | 0x03,
+ 29447 - 19968: jis0212<<14 | 0x2A<<7 | 0x04,
+ 29450 - 19968: jis0208<<14 | 0x3F<<7 | 0x28,
+ 29451 - 19968: jis0212<<14 | 0x2A<<7 | 0x05,
+ 29453 - 19968: jis0212<<14 | 0x2A<<7 | 0x06,
+ 29458 - 19968: jis0212<<14 | 0x2A<<7 | 0x07,
+ 29459 - 19968: jis0212<<14 | 0x2A<<7 | 0x08,
+ 29462 - 19968: jis0208<<14 | 0x3F<<7 | 0x2A,
+ 29463 - 19968: jis0208<<14 | 0x3F<<7 | 0x27,
+ 29464 - 19968: jis0212<<14 | 0x2A<<7 | 0x09,
+ 29465 - 19968: jis0212<<14 | 0x2A<<7 | 0x0A,
+ 29467 - 19968: jis0208<<14 | 0x2B<<7 | 0x33,
+ 29468 - 19968: jis0208<<14 | 0x3F<<7 | 0x29,
+ 29469 - 19968: jis0208<<14 | 0x3F<<7 | 0x2B,
+ 29470 - 19968: jis0212<<14 | 0x2A<<7 | 0x0B,
+ 29471 - 19968: jis0208<<14 | 0x2D<<7 | 0x23,
+ 29474 - 19968: jis0212<<14 | 0x2A<<7 | 0x0C,
+ 29476 - 19968: jis0208<<14 | 0x5A<<7 | 0x01,
+ 29477 - 19968: jis0208<<14 | 0x3F<<7 | 0x2F,
+ 29479 - 19968: jis0212<<14 | 0x2A<<7 | 0x0E,
+ 29480 - 19968: jis0212<<14 | 0x2A<<7 | 0x0F,
+ 29481 - 19968: jis0208<<14 | 0x3F<<7 | 0x2E,
+ 29482 - 19968: jis0208<<14 | 0x22<<7 | 0x55,
+ 29483 - 19968: jis0208<<14 | 0x26<<7 | 0x0C,
+ 29484 - 19968: jis0212<<14 | 0x2A<<7 | 0x10,
+ 29486 - 19968: jis0208<<14 | 0x17<<7 | 0x04,
+ 29487 - 19968: jis0208<<14 | 0x3F<<7 | 0x2D,
+ 29489 - 19968: jis0212<<14 | 0x2A<<7 | 0x11,
+ 29490 - 19968: jis0212<<14 | 0x2A<<7 | 0x12,
+ 29492 - 19968: jis0208<<14 | 0x3F<<7 | 0x2C,
+ 29493 - 19968: jis0212<<14 | 0x2A<<7 | 0x13,
+ 29494 - 19968: jis0208<<14 | 0x2C<<7 | 0x10,
+ 29495 - 19968: jis0208<<14 | 0x2C<<7 | 0x11,
+ 29498 - 19968: jis0212<<14 | 0x2A<<7 | 0x14,
+ 29499 - 19968: jis0212<<14 | 0x2A<<7 | 0x15,
+ 29501 - 19968: jis0212<<14 | 0x2A<<7 | 0x16,
+ 29502 - 19968: jis0208<<14 | 0x3F<<7 | 0x30,
+ 29503 - 19968: jis0208<<14 | 0x10<<7 | 0x4D,
+ 29507 - 19968: jis0212<<14 | 0x2A<<7 | 0x17,
+ 29508 - 19968: jis0208<<14 | 0x18<<7 | 0x55,
+ 29509 - 19968: jis0208<<14 | 0x1A<<7 | 0x41,
+ 29517 - 19968: jis0212<<14 | 0x2A<<7 | 0x18,
+ 29518 - 19968: jis0208<<14 | 0x3F<<7 | 0x31,
+ 29519 - 19968: jis0208<<14 | 0x3F<<7 | 0x32,
+ 29520 - 19968: jis0212<<14 | 0x2A<<7 | 0x19,
+ 29522 - 19968: jis0212<<14 | 0x2A<<7 | 0x1A,
+ 29526 - 19968: jis0212<<14 | 0x2A<<7 | 0x1B,
+ 29527 - 19968: jis0208<<14 | 0x3F<<7 | 0x34,
+ 29528 - 19968: jis0212<<14 | 0x2A<<7 | 0x1C,
+ 29533 - 19968: jis0212<<14 | 0x2A<<7 | 0x1D,
+ 29534 - 19968: jis0212<<14 | 0x2A<<7 | 0x1E,
+ 29535 - 19968: jis0212<<14 | 0x2A<<7 | 0x1F,
+ 29536 - 19968: jis0212<<14 | 0x2A<<7 | 0x20,
+ 29539 - 19968: jis0208<<14 | 0x1C<<7 | 0x22,
+ 29542 - 19968: jis0212<<14 | 0x2A<<7 | 0x21,
+ 29543 - 19968: jis0212<<14 | 0x2A<<7 | 0x22,
+ 29544 - 19968: jis0208<<14 | 0x3F<<7 | 0x36,
+ 29545 - 19968: jis0212<<14 | 0x2A<<7 | 0x23,
+ 29546 - 19968: jis0208<<14 | 0x3F<<7 | 0x35,
+ 29547 - 19968: jis0212<<14 | 0x2A<<7 | 0x24,
+ 29548 - 19968: jis0212<<14 | 0x2A<<7 | 0x25,
+ 29550 - 19968: jis0212<<14 | 0x2A<<7 | 0x26,
+ 29551 - 19968: jis0212<<14 | 0x2A<<7 | 0x27,
+ 29552 - 19968: jis0208<<14 | 0x3F<<7 | 0x37,
+ 29553 - 19968: jis0212<<14 | 0x2A<<7 | 0x28,
+ 29554 - 19968: jis0208<<14 | 0x12<<7 | 0x2C,
+ 29557 - 19968: jis0208<<14 | 0x3F<<7 | 0x39,
+ 29559 - 19968: jis0208<<14 | 0x5A<<7 | 0x03,
+ 29560 - 19968: jis0208<<14 | 0x3F<<7 | 0x38,
+ 29561 - 19968: jis0212<<14 | 0x2A<<7 | 0x2A,
+ 29562 - 19968: jis0208<<14 | 0x3F<<7 | 0x3B,
+ 29563 - 19968: jis0208<<14 | 0x3F<<7 | 0x3A,
+ 29564 - 19968: jis0212<<14 | 0x2A<<7 | 0x2B,
+ 29568 - 19968: jis0212<<14 | 0x2A<<7 | 0x2C,
+ 29569 - 19968: jis0212<<14 | 0x2A<<7 | 0x2D,
+ 29571 - 19968: jis0212<<14 | 0x2A<<7 | 0x2E,
+ 29572 - 19968: jis0208<<14 | 0x17<<7 | 0x1B,
+ 29573 - 19968: jis0212<<14 | 0x2A<<7 | 0x2F,
+ 29574 - 19968: jis0212<<14 | 0x2A<<7 | 0x30,
+ 29575 - 19968: jis0208<<14 | 0x2D<<7 | 0x07,
+ 29577 - 19968: jis0208<<14 | 0x15<<7 | 0x2B,
+ 29579 - 19968: jis0208<<14 | 0x11<<7 | 0x05,
+ 29582 - 19968: jis0212<<14 | 0x2A<<7 | 0x31,
+ 29584 - 19968: jis0212<<14 | 0x2A<<7 | 0x32,
+ 29587 - 19968: jis0212<<14 | 0x2A<<7 | 0x33,
+ 29589 - 19968: jis0212<<14 | 0x2A<<7 | 0x34,
+ 29590 - 19968: jis0208<<14 | 0x15<<7 | 0x49,
+ 29591 - 19968: jis0212<<14 | 0x2A<<7 | 0x35,
+ 29592 - 19968: jis0212<<14 | 0x2A<<7 | 0x36,
+ 29596 - 19968: jis0212<<14 | 0x2A<<7 | 0x37,
+ 29598 - 19968: jis0212<<14 | 0x2A<<7 | 0x38,
+ 29599 - 19968: jis0212<<14 | 0x2A<<7 | 0x39,
+ 29600 - 19968: jis0212<<14 | 0x2A<<7 | 0x3A,
+ 29602 - 19968: jis0212<<14 | 0x2A<<7 | 0x3B,
+ 29605 - 19968: jis0212<<14 | 0x2A<<7 | 0x3C,
+ 29606 - 19968: jis0212<<14 | 0x2A<<7 | 0x3D,
+ 29609 - 19968: jis0208<<14 | 0x13<<7 | 0x40,
+ 29610 - 19968: jis0212<<14 | 0x2A<<7 | 0x3E,
+ 29611 - 19968: jis0212<<14 | 0x2A<<7 | 0x3F,
+ 29613 - 19968: jis0212<<14 | 0x2A<<7 | 0x40,
+ 29618 - 19968: jis0208<<14 | 0x2D<<7 | 0x47,
+ 29619 - 19968: jis0208<<14 | 0x3F<<7 | 0x3D,
+ 29621 - 19968: jis0212<<14 | 0x2A<<7 | 0x41,
+ 29623 - 19968: jis0212<<14 | 0x2A<<7 | 0x42,
+ 29625 - 19968: jis0212<<14 | 0x2A<<7 | 0x43,
+ 29627 - 19968: jis0208<<14 | 0x3F<<7 | 0x3F,
+ 29628 - 19968: jis0212<<14 | 0x2A<<7 | 0x44,
+ 29629 - 19968: jis0208<<14 | 0x5A<<7 | 0x04,
+ 29631 - 19968: jis0212<<14 | 0x2A<<7 | 0x46,
+ 29632 - 19968: jis0208<<14 | 0x3F<<7 | 0x40,
+ 29634 - 19968: jis0208<<14 | 0x11<<7 | 0x30,
+ 29637 - 19968: jis0212<<14 | 0x2A<<7 | 0x47,
+ 29638 - 19968: jis0212<<14 | 0x2A<<7 | 0x48,
+ 29640 - 19968: jis0208<<14 | 0x3F<<7 | 0x3C,
+ 29641 - 19968: jis0208<<14 | 0x5A<<7 | 0x05,
+ 29642 - 19968: jis0208<<14 | 0x1A<<7 | 0x18,
+ 29643 - 19968: jis0212<<14 | 0x2A<<7 | 0x4A,
+ 29644 - 19968: jis0212<<14 | 0x2A<<7 | 0x4B,
+ 29645 - 19968: jis0208<<14 | 0x23<<7 | 0x20,
+ 29646 - 19968: jis0208<<14 | 0x3F<<7 | 0x3E,
+ 29647 - 19968: jis0212<<14 | 0x2A<<7 | 0x4C,
+ 29650 - 19968: jis0208<<14 | 0x5A<<7 | 0x08,
+ 29651 - 19968: jis0212<<14 | 0x2A<<7 | 0x4E,
+ 29654 - 19968: jis0208<<14 | 0x5A<<7 | 0x06,
+ 29657 - 19968: jis0212<<14 | 0x2A<<7 | 0x50,
+ 29661 - 19968: jis0212<<14 | 0x2A<<7 | 0x51,
+ 29662 - 19968: jis0208<<14 | 0x3F<<7 | 0x43,
+ 29664 - 19968: jis0208<<14 | 0x1B<<7 | 0x4D,
+ 29665 - 19968: jis0212<<14 | 0x2A<<7 | 0x52,
+ 29667 - 19968: jis0208<<14 | 0x5A<<7 | 0x07,
+ 29669 - 19968: jis0208<<14 | 0x3F<<7 | 0x41,
+ 29670 - 19968: jis0212<<14 | 0x2A<<7 | 0x54,
+ 29671 - 19968: jis0212<<14 | 0x2A<<7 | 0x55,
+ 29673 - 19968: jis0212<<14 | 0x2A<<7 | 0x56,
+ 29674 - 19968: jis0208<<14 | 0x16<<7 | 0x1D,
+ 29677 - 19968: jis0208<<14 | 0x27<<7 | 0x28,
+ 29678 - 19968: jis0208<<14 | 0x3F<<7 | 0x42,
+ 29681 - 19968: jis0208<<14 | 0x3F<<7 | 0x5D,
+ 29684 - 19968: jis0212<<14 | 0x2A<<7 | 0x57,
+ 29685 - 19968: jis0208<<14 | 0x5A<<7 | 0x0A,
+ 29687 - 19968: jis0212<<14 | 0x2A<<7 | 0x59,
+ 29688 - 19968: jis0208<<14 | 0x3F<<7 | 0x48,
+ 29689 - 19968: jis0212<<14 | 0x2A<<7 | 0x5A,
+ 29690 - 19968: jis0212<<14 | 0x2A<<7 | 0x5B,
+ 29691 - 19968: jis0212<<14 | 0x2A<<7 | 0x5C,
+ 29693 - 19968: jis0212<<14 | 0x2A<<7 | 0x5D,
+ 29694 - 19968: jis0208<<14 | 0x17<<7 | 0x1C,
+ 29695 - 19968: jis0212<<14 | 0x2B<<7 | 0x00,
+ 29696 - 19968: jis0212<<14 | 0x2B<<7 | 0x01,
+ 29697 - 19968: jis0212<<14 | 0x2B<<7 | 0x02,
+ 29699 - 19968: jis0208<<14 | 0x14<<7 | 0x44,
+ 29700 - 19968: jis0212<<14 | 0x2B<<7 | 0x03,
+ 29701 - 19968: jis0208<<14 | 0x3F<<7 | 0x45,
+ 29702 - 19968: jis0208<<14 | 0x2C<<7 | 0x5C,
+ 29703 - 19968: jis0208<<14 | 0x5A<<7 | 0x09,
+ 29705 - 19968: jis0208<<14 | 0x2D<<7 | 0x0F,
+ 29706 - 19968: jis0212<<14 | 0x2B<<7 | 0x05,
+ 29713 - 19968: jis0212<<14 | 0x2B<<7 | 0x06,
+ 29722 - 19968: jis0212<<14 | 0x2B<<7 | 0x07,
+ 29723 - 19968: jis0212<<14 | 0x2B<<7 | 0x08,
+ 29730 - 19968: jis0208<<14 | 0x21<<7 | 0x55,
+ 29732 - 19968: jis0212<<14 | 0x2B<<7 | 0x09,
+ 29733 - 19968: jis0208<<14 | 0x3F<<7 | 0x47,
+ 29734 - 19968: jis0208<<14 | 0x5A<<7 | 0x0B,
+ 29736 - 19968: jis0212<<14 | 0x2B<<7 | 0x0B,
+ 29737 - 19968: jis0208<<14 | 0x5A<<7 | 0x0D,
+ 29738 - 19968: jis0208<<14 | 0x5A<<7 | 0x0C,
+ 29739 - 19968: jis0212<<14 | 0x2B<<7 | 0x0E,
+ 29740 - 19968: jis0212<<14 | 0x2B<<7 | 0x0F,
+ 29741 - 19968: jis0212<<14 | 0x2B<<7 | 0x10,
+ 29742 - 19968: jis0208<<14 | 0x5A<<7 | 0x0E,
+ 29743 - 19968: jis0212<<14 | 0x2B<<7 | 0x12,
+ 29744 - 19968: jis0212<<14 | 0x2B<<7 | 0x13,
+ 29745 - 19968: jis0212<<14 | 0x2B<<7 | 0x14,
+ 29746 - 19968: jis0208<<14 | 0x3F<<7 | 0x49,
+ 29747 - 19968: jis0208<<14 | 0x2D<<7 | 0x35,
+ 29748 - 19968: jis0208<<14 | 0x15<<7 | 0x36,
+ 29749 - 19968: jis0208<<14 | 0x27<<7 | 0x5B,
+ 29750 - 19968: jis0208<<14 | 0x26<<7 | 0x29,
+ 29753 - 19968: jis0212<<14 | 0x2B<<7 | 0x15,
+ 29754 - 19968: jis0208<<14 | 0x3F<<7 | 0x4A,
+ 29759 - 19968: jis0208<<14 | 0x3F<<7 | 0x4C,
+ 29760 - 19968: jis0212<<14 | 0x2B<<7 | 0x16,
+ 29761 - 19968: jis0208<<14 | 0x3F<<7 | 0x4F,
+ 29763 - 19968: jis0212<<14 | 0x2B<<7 | 0x17,
+ 29764 - 19968: jis0212<<14 | 0x2B<<7 | 0x18,
+ 29766 - 19968: jis0212<<14 | 0x2B<<7 | 0x19,
+ 29767 - 19968: jis0212<<14 | 0x2B<<7 | 0x1A,
+ 29771 - 19968: jis0212<<14 | 0x2B<<7 | 0x1B,
+ 29773 - 19968: jis0212<<14 | 0x2B<<7 | 0x1C,
+ 29777 - 19968: jis0212<<14 | 0x2B<<7 | 0x1D,
+ 29778 - 19968: jis0212<<14 | 0x2B<<7 | 0x1E,
+ 29781 - 19968: jis0208<<14 | 0x3F<<7 | 0x4B,
+ 29783 - 19968: jis0212<<14 | 0x2B<<7 | 0x1F,
+ 29785 - 19968: jis0208<<14 | 0x3F<<7 | 0x4E,
+ 29786 - 19968: jis0208<<14 | 0x17<<7 | 0x49,
+ 29787 - 19968: jis0208<<14 | 0x10<<7 | 0x2C,
+ 29788 - 19968: jis0208<<14 | 0x3F<<7 | 0x50,
+ 29789 - 19968: jis0212<<14 | 0x2B<<7 | 0x20,
+ 29790 - 19968: jis0208<<14 | 0x1E<<7 | 0x4F,
+ 29791 - 19968: jis0208<<14 | 0x3F<<7 | 0x4D,
+ 29792 - 19968: jis0208<<14 | 0x2D<<7 | 0x3B,
+ 29794 - 19968: jis0208<<14 | 0x5A<<7 | 0x0F,
+ 29795 - 19968: jis0208<<14 | 0x3F<<7 | 0x53,
+ 29796 - 19968: jis0208<<14 | 0x53<<7 | 0x03,
+ 29798 - 19968: jis0212<<14 | 0x2B<<7 | 0x22,
+ 29799 - 19968: jis0212<<14 | 0x2B<<7 | 0x23,
+ 29800 - 19968: jis0212<<14 | 0x2B<<7 | 0x24,
+ 29801 - 19968: jis0208<<14 | 0x3F<<7 | 0x51,
+ 29802 - 19968: jis0208<<14 | 0x3F<<7 | 0x54,
+ 29803 - 19968: jis0212<<14 | 0x2B<<7 | 0x25,
+ 29805 - 19968: jis0212<<14 | 0x2B<<7 | 0x26,
+ 29806 - 19968: jis0212<<14 | 0x2B<<7 | 0x27,
+ 29807 - 19968: jis0208<<14 | 0x3F<<7 | 0x46,
+ 29808 - 19968: jis0208<<14 | 0x3F<<7 | 0x52,
+ 29809 - 19968: jis0212<<14 | 0x2B<<7 | 0x28,
+ 29810 - 19968: jis0212<<14 | 0x2B<<7 | 0x29,
+ 29811 - 19968: jis0208<<14 | 0x19<<7 | 0x1B,
+ 29814 - 19968: jis0208<<14 | 0x3F<<7 | 0x55,
+ 29822 - 19968: jis0208<<14 | 0x3F<<7 | 0x56,
+ 29824 - 19968: jis0212<<14 | 0x2B<<7 | 0x2A,
+ 29825 - 19968: jis0212<<14 | 0x2B<<7 | 0x2B,
+ 29827 - 19968: jis0208<<14 | 0x2C<<7 | 0x5D,
+ 29829 - 19968: jis0212<<14 | 0x2B<<7 | 0x2C,
+ 29830 - 19968: jis0212<<14 | 0x2B<<7 | 0x2D,
+ 29831 - 19968: jis0212<<14 | 0x2B<<7 | 0x2E,
+ 29833 - 19968: jis0208<<14 | 0x5A<<7 | 0x10,
+ 29835 - 19968: jis0208<<14 | 0x3F<<7 | 0x57,
+ 29839 - 19968: jis0212<<14 | 0x2B<<7 | 0x30,
+ 29840 - 19968: jis0212<<14 | 0x2B<<7 | 0x31,
+ 29841 - 19968: jis0212<<14 | 0x2B<<7 | 0x32,
+ 29842 - 19968: jis0212<<14 | 0x2B<<7 | 0x33,
+ 29848 - 19968: jis0212<<14 | 0x2B<<7 | 0x34,
+ 29849 - 19968: jis0212<<14 | 0x2B<<7 | 0x35,
+ 29850 - 19968: jis0212<<14 | 0x2B<<7 | 0x36,
+ 29852 - 19968: jis0212<<14 | 0x2B<<7 | 0x37,
+ 29854 - 19968: jis0208<<14 | 0x3F<<7 | 0x58,
+ 29855 - 19968: jis0208<<14 | 0x5A<<7 | 0x11,
+ 29856 - 19968: jis0212<<14 | 0x2B<<7 | 0x39,
+ 29857 - 19968: jis0212<<14 | 0x2B<<7 | 0x3A,
+ 29858 - 19968: jis0208<<14 | 0x3F<<7 | 0x44,
+ 29859 - 19968: jis0212<<14 | 0x2B<<7 | 0x3B,
+ 29862 - 19968: jis0212<<14 | 0x2B<<7 | 0x3C,
+ 29863 - 19968: jis0208<<14 | 0x3F<<7 | 0x59,
+ 29864 - 19968: jis0212<<14 | 0x2B<<7 | 0x3D,
+ 29865 - 19968: jis0212<<14 | 0x2B<<7 | 0x3E,
+ 29866 - 19968: jis0212<<14 | 0x2B<<7 | 0x3F,
+ 29867 - 19968: jis0212<<14 | 0x2B<<7 | 0x40,
+ 29870 - 19968: jis0212<<14 | 0x2B<<7 | 0x41,
+ 29871 - 19968: jis0212<<14 | 0x2B<<7 | 0x42,
+ 29872 - 19968: jis0208<<14 | 0x13<<7 | 0x23,
+ 29873 - 19968: jis0212<<14 | 0x2B<<7 | 0x43,
+ 29874 - 19968: jis0212<<14 | 0x2B<<7 | 0x44,
+ 29877 - 19968: jis0212<<14 | 0x2B<<7 | 0x45,
+ 29881 - 19968: jis0212<<14 | 0x2B<<7 | 0x46,
+ 29883 - 19968: jis0212<<14 | 0x2B<<7 | 0x47,
+ 29885 - 19968: jis0208<<14 | 0x1B<<7 | 0x04,
+ 29887 - 19968: jis0212<<14 | 0x2B<<7 | 0x48,
+ 29896 - 19968: jis0212<<14 | 0x2B<<7 | 0x49,
+ 29897 - 19968: jis0212<<14 | 0x2B<<7 | 0x4A,
+ 29898 - 19968: jis0208<<14 | 0x3F<<7 | 0x5A,
+ 29900 - 19968: jis0212<<14 | 0x2B<<7 | 0x4B,
+ 29903 - 19968: jis0208<<14 | 0x3F<<7 | 0x5B,
+ 29904 - 19968: jis0212<<14 | 0x2B<<7 | 0x4C,
+ 29907 - 19968: jis0212<<14 | 0x2B<<7 | 0x4D,
+ 29908 - 19968: jis0208<<14 | 0x3F<<7 | 0x5C,
+ 29912 - 19968: jis0212<<14 | 0x2B<<7 | 0x4E,
+ 29914 - 19968: jis0212<<14 | 0x2B<<7 | 0x4F,
+ 29915 - 19968: jis0212<<14 | 0x2B<<7 | 0x50,
+ 29916 - 19968: jis0208<<14 | 0x10<<7 | 0x1A,
+ 29918 - 19968: jis0212<<14 | 0x2B<<7 | 0x51,
+ 29919 - 19968: jis0212<<14 | 0x2B<<7 | 0x52,
+ 29920 - 19968: jis0208<<14 | 0x40<<7 | 0x00,
+ 29922 - 19968: jis0208<<14 | 0x28<<7 | 0x1A,
+ 29923 - 19968: jis0208<<14 | 0x40<<7 | 0x01,
+ 29924 - 19968: jis0212<<14 | 0x2B<<7 | 0x53,
+ 29926 - 19968: jis0208<<14 | 0x13<<7 | 0x03,
+ 29927 - 19968: jis0208<<14 | 0x40<<7 | 0x02,
+ 29928 - 19968: jis0212<<14 | 0x2B<<7 | 0x54,
+ 29929 - 19968: jis0208<<14 | 0x40<<7 | 0x03,
+ 29930 - 19968: jis0212<<14 | 0x2B<<7 | 0x55,
+ 29931 - 19968: jis0212<<14 | 0x2B<<7 | 0x56,
+ 29934 - 19968: jis0208<<14 | 0x40<<7 | 0x04,
+ 29935 - 19968: jis0212<<14 | 0x2B<<7 | 0x57,
+ 29936 - 19968: jis0208<<14 | 0x40<<7 | 0x06,
+ 29937 - 19968: jis0208<<14 | 0x40<<7 | 0x07,
+ 29938 - 19968: jis0208<<14 | 0x40<<7 | 0x05,
+ 29940 - 19968: jis0212<<14 | 0x2B<<7 | 0x58,
+ 29942 - 19968: jis0208<<14 | 0x28<<7 | 0x32,
+ 29943 - 19968: jis0208<<14 | 0x40<<7 | 0x09,
+ 29944 - 19968: jis0208<<14 | 0x40<<7 | 0x08,
+ 29946 - 19968: jis0212<<14 | 0x2B<<7 | 0x59,
+ 29947 - 19968: jis0212<<14 | 0x2B<<7 | 0x5A,
+ 29948 - 19968: jis0212<<14 | 0x2B<<7 | 0x5B,
+ 29951 - 19968: jis0212<<14 | 0x2B<<7 | 0x5C,
+ 29953 - 19968: jis0208<<14 | 0x5A<<7 | 0x12,
+ 29955 - 19968: jis0208<<14 | 0x40<<7 | 0x0B,
+ 29956 - 19968: jis0208<<14 | 0x40<<7 | 0x0A,
+ 29957 - 19968: jis0208<<14 | 0x40<<7 | 0x0C,
+ 29958 - 19968: jis0212<<14 | 0x2B<<7 | 0x5D,
+ 29964 - 19968: jis0208<<14 | 0x40<<7 | 0x0D,
+ 29965 - 19968: jis0208<<14 | 0x40<<7 | 0x0F,
+ 29966 - 19968: jis0208<<14 | 0x40<<7 | 0x0E,
+ 29969 - 19968: jis0208<<14 | 0x18<<7 | 0x58,
+ 29970 - 19968: jis0212<<14 | 0x2C<<7 | 0x00,
+ 29971 - 19968: jis0208<<14 | 0x40<<7 | 0x11,
+ 29973 - 19968: jis0208<<14 | 0x40<<7 | 0x10,
+ 29974 - 19968: jis0212<<14 | 0x2C<<7 | 0x01,
+ 29975 - 19968: jis0212<<14 | 0x2C<<7 | 0x02,
+ 29976 - 19968: jis0208<<14 | 0x13<<7 | 0x24,
+ 29978 - 19968: jis0208<<14 | 0x1E<<7 | 0x32,
+ 29980 - 19968: jis0208<<14 | 0x24<<7 | 0x1B,
+ 29982 - 19968: jis0208<<14 | 0x40<<7 | 0x12,
+ 29983 - 19968: jis0208<<14 | 0x1F<<7 | 0x17,
+ 29984 - 19968: jis0212<<14 | 0x2C<<7 | 0x03,
+ 29985 - 19968: jis0212<<14 | 0x2C<<7 | 0x04,
+ 29987 - 19968: jis0208<<14 | 0x1A<<7 | 0x19,
+ 29988 - 19968: jis0212<<14 | 0x2C<<7 | 0x05,
+ 29989 - 19968: jis0208<<14 | 0x10<<7 | 0x58,
+ 29990 - 19968: jis0208<<14 | 0x40<<7 | 0x13,
+ 29991 - 19968: jis0212<<14 | 0x2C<<7 | 0x06,
+ 29992 - 19968: jis0208<<14 | 0x2C<<7 | 0x30,
+ 29993 - 19968: jis0212<<14 | 0x2C<<7 | 0x07,
+ 29994 - 19968: jis0212<<14 | 0x2C<<7 | 0x08,
+ 29995 - 19968: jis0208<<14 | 0x29<<7 | 0x42,
+ 29996 - 19968: jis0208<<14 | 0x40<<7 | 0x14,
+ 29999 - 19968: jis0208<<14 | 0x58<<7 | 0x4B,
+ 30000 - 19968: jis0208<<14 | 0x24<<7 | 0x23,
+ 30001 - 19968: jis0208<<14 | 0x2C<<7 | 0x12,
+ 30002 - 19968: jis0208<<14 | 0x18<<7 | 0x22,
+ 30003 - 19968: jis0208<<14 | 0x1E<<7 | 0x1C,
+ 30006 - 19968: jis0212<<14 | 0x2C<<7 | 0x0A,
+ 30007 - 19968: jis0208<<14 | 0x22<<7 | 0x2A,
+ 30008 - 19968: jis0208<<14 | 0x31<<7 | 0x13,
+ 30009 - 19968: jis0212<<14 | 0x2C<<7 | 0x0B,
+ 30010 - 19968: jis0208<<14 | 0x23<<7 | 0x0D,
+ 30011 - 19968: jis0208<<14 | 0x11<<7 | 0x47,
+ 30012 - 19968: jis0208<<14 | 0x40<<7 | 0x15,
+ 30013 - 19968: jis0212<<14 | 0x2C<<7 | 0x0C,
+ 30014 - 19968: jis0212<<14 | 0x2C<<7 | 0x0D,
+ 30015 - 19968: jis0212<<14 | 0x2C<<7 | 0x0E,
+ 30016 - 19968: jis0212<<14 | 0x2C<<7 | 0x0F,
+ 30019 - 19968: jis0212<<14 | 0x2C<<7 | 0x10,
+ 30020 - 19968: jis0208<<14 | 0x40<<7 | 0x16,
+ 30022 - 19968: jis0208<<14 | 0x40<<7 | 0x1B,
+ 30023 - 19968: jis0212<<14 | 0x2C<<7 | 0x11,
+ 30024 - 19968: jis0212<<14 | 0x2C<<7 | 0x12,
+ 30025 - 19968: jis0208<<14 | 0x40<<7 | 0x19,
+ 30026 - 19968: jis0208<<14 | 0x40<<7 | 0x18,
+ 30027 - 19968: jis0208<<14 | 0x39<<7 | 0x21,
+ 30028 - 19968: jis0208<<14 | 0x12<<7 | 0x05,
+ 30029 - 19968: jis0208<<14 | 0x40<<7 | 0x17,
+ 30030 - 19968: jis0212<<14 | 0x2C<<7 | 0x13,
+ 30031 - 19968: jis0208<<14 | 0x0F<<7 | 0x39,
+ 30032 - 19968: jis0212<<14 | 0x2C<<7 | 0x14,
+ 30033 - 19968: jis0208<<14 | 0x27<<7 | 0x09,
+ 30034 - 19968: jis0212<<14 | 0x2C<<7 | 0x15,
+ 30036 - 19968: jis0208<<14 | 0x27<<7 | 0x29,
+ 30039 - 19968: jis0212<<14 | 0x2C<<7 | 0x16,
+ 30041 - 19968: jis0208<<14 | 0x2D<<7 | 0x10,
+ 30042 - 19968: jis0208<<14 | 0x40<<7 | 0x1C,
+ 30043 - 19968: jis0208<<14 | 0x40<<7 | 0x1A,
+ 30044 - 19968: jis0208<<14 | 0x22<<7 | 0x3B,
+ 30045 - 19968: jis0208<<14 | 0x1F<<7 | 0x05,
+ 30046 - 19968: jis0212<<14 | 0x2C<<7 | 0x17,
+ 30047 - 19968: jis0212<<14 | 0x2C<<7 | 0x18,
+ 30048 - 19968: jis0208<<14 | 0x27<<7 | 0x0A,
+ 30049 - 19968: jis0212<<14 | 0x2C<<7 | 0x19,
+ 30050 - 19968: jis0208<<14 | 0x28<<7 | 0x0C,
+ 30052 - 19968: jis0208<<14 | 0x40<<7 | 0x1E,
+ 30053 - 19968: jis0208<<14 | 0x2D<<7 | 0x0B,
+ 30054 - 19968: jis0208<<14 | 0x16<<7 | 0x2C,
+ 30055 - 19968: jis0208<<14 | 0x40<<7 | 0x1F,
+ 30057 - 19968: jis0208<<14 | 0x40<<7 | 0x1D,
+ 30058 - 19968: jis0208<<14 | 0x27<<7 | 0x35,
+ 30059 - 19968: jis0208<<14 | 0x40<<7 | 0x20,
+ 30061 - 19968: jis0208<<14 | 0x40<<7 | 0x21,
+ 30063 - 19968: jis0208<<14 | 0x5A<<7 | 0x13,
+ 30064 - 19968: jis0208<<14 | 0x0F<<7 | 0x3A,
+ 30065 - 19968: jis0212<<14 | 0x2C<<7 | 0x1B,
+ 30067 - 19968: jis0208<<14 | 0x1D<<7 | 0x55,
+ 30068 - 19968: jis0208<<14 | 0x40<<7 | 0x26,
+ 30070 - 19968: jis0208<<14 | 0x40<<7 | 0x23,
+ 30071 - 19968: jis0208<<14 | 0x25<<7 | 0x4C,
+ 30072 - 19968: jis0208<<14 | 0x40<<7 | 0x22,
+ 30073 - 19968: jis0212<<14 | 0x2C<<7 | 0x1C,
+ 30074 - 19968: jis0212<<14 | 0x2C<<7 | 0x1D,
+ 30075 - 19968: jis0212<<14 | 0x2C<<7 | 0x1E,
+ 30076 - 19968: jis0212<<14 | 0x2C<<7 | 0x1F,
+ 30077 - 19968: jis0212<<14 | 0x2C<<7 | 0x20,
+ 30078 - 19968: jis0212<<14 | 0x2C<<7 | 0x21,
+ 30079 - 19968: jis0208<<14 | 0x14<<7 | 0x05,
+ 30081 - 19968: jis0212<<14 | 0x2C<<7 | 0x22,
+ 30082 - 19968: jis0208<<14 | 0x40<<7 | 0x29,
+ 30085 - 19968: jis0212<<14 | 0x2C<<7 | 0x23,
+ 30086 - 19968: jis0208<<14 | 0x40<<7 | 0x24,
+ 30087 - 19968: jis0208<<14 | 0x40<<7 | 0x25,
+ 30089 - 19968: jis0208<<14 | 0x40<<7 | 0x28,
+ 30090 - 19968: jis0208<<14 | 0x40<<7 | 0x27,
+ 30091 - 19968: jis0208<<14 | 0x28<<7 | 0x04,
+ 30094 - 19968: jis0208<<14 | 0x20<<7 | 0x21,
+ 30095 - 19968: jis0208<<14 | 0x20<<7 | 0x20,
+ 30096 - 19968: jis0212<<14 | 0x2C<<7 | 0x24,
+ 30097 - 19968: jis0208<<14 | 0x14<<7 | 0x1E,
+ 30098 - 19968: jis0212<<14 | 0x2C<<7 | 0x25,
+ 30099 - 19968: jis0212<<14 | 0x2C<<7 | 0x26,
+ 30100 - 19968: jis0208<<14 | 0x40<<7 | 0x2A,
+ 30101 - 19968: jis0212<<14 | 0x2C<<7 | 0x27,
+ 30105 - 19968: jis0212<<14 | 0x2C<<7 | 0x28,
+ 30106 - 19968: jis0208<<14 | 0x40<<7 | 0x2B,
+ 30108 - 19968: jis0212<<14 | 0x2C<<7 | 0x29,
+ 30109 - 19968: jis0208<<14 | 0x40<<7 | 0x2C,
+ 30114 - 19968: jis0212<<14 | 0x2C<<7 | 0x2A,
+ 30115 - 19968: jis0208<<14 | 0x40<<7 | 0x2E,
+ 30116 - 19968: jis0212<<14 | 0x2C<<7 | 0x2B,
+ 30117 - 19968: jis0208<<14 | 0x40<<7 | 0x2D,
+ 30123 - 19968: jis0208<<14 | 0x10<<7 | 0x35,
+ 30129 - 19968: jis0208<<14 | 0x40<<7 | 0x36,
+ 30130 - 19968: jis0208<<14 | 0x27<<7 | 0x47,
+ 30131 - 19968: jis0208<<14 | 0x40<<7 | 0x30,
+ 30132 - 19968: jis0212<<14 | 0x2C<<7 | 0x2C,
+ 30133 - 19968: jis0208<<14 | 0x40<<7 | 0x32,
+ 30136 - 19968: jis0208<<14 | 0x40<<7 | 0x34,
+ 30137 - 19968: jis0208<<14 | 0x1E<<7 | 0x1D,
+ 30138 - 19968: jis0212<<14 | 0x2C<<7 | 0x2D,
+ 30140 - 19968: jis0208<<14 | 0x40<<7 | 0x35,
+ 30141 - 19968: jis0208<<14 | 0x40<<7 | 0x33,
+ 30142 - 19968: jis0208<<14 | 0x1B<<7 | 0x1F,
+ 30143 - 19968: jis0212<<14 | 0x2C<<7 | 0x2E,
+ 30144 - 19968: jis0212<<14 | 0x2C<<7 | 0x2F,
+ 30145 - 19968: jis0212<<14 | 0x2C<<7 | 0x30,
+ 30146 - 19968: jis0208<<14 | 0x40<<7 | 0x2F,
+ 30147 - 19968: jis0208<<14 | 0x40<<7 | 0x31,
+ 30148 - 19968: jis0212<<14 | 0x2C<<7 | 0x31,
+ 30149 - 19968: jis0208<<14 | 0x28<<7 | 0x21,
+ 30150 - 19968: jis0212<<14 | 0x2C<<7 | 0x32,
+ 30151 - 19968: jis0208<<14 | 0x1D<<7 | 0x28,
+ 30154 - 19968: jis0208<<14 | 0x40<<7 | 0x38,
+ 30156 - 19968: jis0212<<14 | 0x2C<<7 | 0x33,
+ 30157 - 19968: jis0208<<14 | 0x40<<7 | 0x37,
+ 30158 - 19968: jis0212<<14 | 0x2C<<7 | 0x34,
+ 30159 - 19968: jis0212<<14 | 0x2C<<7 | 0x35,
+ 30162 - 19968: jis0208<<14 | 0x40<<7 | 0x39,
+ 30164 - 19968: jis0208<<14 | 0x1B<<7 | 0x05,
+ 30165 - 19968: jis0208<<14 | 0x19<<7 | 0x0E,
+ 30167 - 19968: jis0212<<14 | 0x2C<<7 | 0x36,
+ 30168 - 19968: jis0208<<14 | 0x24<<7 | 0x56,
+ 30169 - 19968: jis0208<<14 | 0x40<<7 | 0x3A,
+ 30171 - 19968: jis0208<<14 | 0x23<<7 | 0x2A,
+ 30172 - 19968: jis0212<<14 | 0x2C<<7 | 0x37,
+ 30174 - 19968: jis0208<<14 | 0x40<<7 | 0x3C,
+ 30175 - 19968: jis0212<<14 | 0x2C<<7 | 0x38,
+ 30176 - 19968: jis0212<<14 | 0x2C<<7 | 0x39,
+ 30177 - 19968: jis0212<<14 | 0x2C<<7 | 0x3A,
+ 30178 - 19968: jis0208<<14 | 0x2D<<7 | 0x00,
+ 30179 - 19968: jis0208<<14 | 0x40<<7 | 0x3B,
+ 30180 - 19968: jis0212<<14 | 0x2C<<7 | 0x3B,
+ 30183 - 19968: jis0212<<14 | 0x2C<<7 | 0x3C,
+ 30185 - 19968: jis0208<<14 | 0x20<<7 | 0x48,
+ 30188 - 19968: jis0212<<14 | 0x2C<<7 | 0x3D,
+ 30190 - 19968: jis0212<<14 | 0x2C<<7 | 0x3E,
+ 30191 - 19968: jis0212<<14 | 0x2C<<7 | 0x3F,
+ 30192 - 19968: jis0208<<14 | 0x40<<7 | 0x41,
+ 30193 - 19968: jis0212<<14 | 0x2C<<7 | 0x40,
+ 30194 - 19968: jis0208<<14 | 0x40<<7 | 0x43,
+ 30195 - 19968: jis0208<<14 | 0x40<<7 | 0x44,
+ 30196 - 19968: jis0208<<14 | 0x22<<7 | 0x33,
+ 30201 - 19968: jis0212<<14 | 0x2C<<7 | 0x41,
+ 30202 - 19968: jis0208<<14 | 0x40<<7 | 0x42,
+ 30204 - 19968: jis0208<<14 | 0x40<<7 | 0x3F,
+ 30206 - 19968: jis0208<<14 | 0x40<<7 | 0x3D,
+ 30207 - 19968: jis0208<<14 | 0x40<<7 | 0x3E,
+ 30208 - 19968: jis0212<<14 | 0x2C<<7 | 0x42,
+ 30209 - 19968: jis0208<<14 | 0x40<<7 | 0x40,
+ 30210 - 19968: jis0212<<14 | 0x2C<<7 | 0x43,
+ 30211 - 19968: jis0212<<14 | 0x2C<<7 | 0x44,
+ 30212 - 19968: jis0212<<14 | 0x2C<<7 | 0x45,
+ 30215 - 19968: jis0212<<14 | 0x2C<<7 | 0x46,
+ 30216 - 19968: jis0212<<14 | 0x2C<<7 | 0x47,
+ 30217 - 19968: jis0208<<14 | 0x40<<7 | 0x47,
+ 30218 - 19968: jis0212<<14 | 0x2C<<7 | 0x48,
+ 30219 - 19968: jis0208<<14 | 0x40<<7 | 0x45,
+ 30220 - 19968: jis0212<<14 | 0x2C<<7 | 0x49,
+ 30221 - 19968: jis0208<<14 | 0x40<<7 | 0x46,
+ 30223 - 19968: jis0212<<14 | 0x2C<<7 | 0x4A,
+ 30226 - 19968: jis0212<<14 | 0x2C<<7 | 0x4B,
+ 30227 - 19968: jis0212<<14 | 0x2C<<7 | 0x4C,
+ 30229 - 19968: jis0212<<14 | 0x2C<<7 | 0x4D,
+ 30230 - 19968: jis0212<<14 | 0x2C<<7 | 0x4E,
+ 30233 - 19968: jis0212<<14 | 0x2C<<7 | 0x4F,
+ 30235 - 19968: jis0212<<14 | 0x2C<<7 | 0x50,
+ 30236 - 19968: jis0212<<14 | 0x2C<<7 | 0x51,
+ 30237 - 19968: jis0212<<14 | 0x2C<<7 | 0x52,
+ 30238 - 19968: jis0212<<14 | 0x2C<<7 | 0x53,
+ 30239 - 19968: jis0208<<14 | 0x40<<7 | 0x48,
+ 30240 - 19968: jis0208<<14 | 0x40<<7 | 0x4A,
+ 30241 - 19968: jis0208<<14 | 0x40<<7 | 0x4B,
+ 30242 - 19968: jis0208<<14 | 0x40<<7 | 0x4C,
+ 30243 - 19968: jis0212<<14 | 0x2C<<7 | 0x54,
+ 30244 - 19968: jis0208<<14 | 0x40<<7 | 0x4D,
+ 30245 - 19968: jis0212<<14 | 0x2C<<7 | 0x55,
+ 30246 - 19968: jis0212<<14 | 0x2C<<7 | 0x56,
+ 30247 - 19968: jis0208<<14 | 0x40<<7 | 0x49,
+ 30249 - 19968: jis0212<<14 | 0x2C<<7 | 0x57,
+ 30253 - 19968: jis0212<<14 | 0x2C<<7 | 0x58,
+ 30256 - 19968: jis0208<<14 | 0x40<<7 | 0x4F,
+ 30258 - 19968: jis0212<<14 | 0x2C<<7 | 0x59,
+ 30259 - 19968: jis0212<<14 | 0x2C<<7 | 0x5A,
+ 30260 - 19968: jis0208<<14 | 0x40<<7 | 0x4E,
+ 30261 - 19968: jis0212<<14 | 0x2C<<7 | 0x5B,
+ 30264 - 19968: jis0212<<14 | 0x2C<<7 | 0x5C,
+ 30265 - 19968: jis0212<<14 | 0x2C<<7 | 0x5D,
+ 30266 - 19968: jis0212<<14 | 0x2D<<7 | 0x00,
+ 30267 - 19968: jis0208<<14 | 0x40<<7 | 0x50,
+ 30268 - 19968: jis0212<<14 | 0x2D<<7 | 0x01,
+ 30272 - 19968: jis0212<<14 | 0x2D<<7 | 0x03,
+ 30273 - 19968: jis0212<<14 | 0x2D<<7 | 0x04,
+ 30274 - 19968: jis0208<<14 | 0x2D<<7 | 0x24,
+ 30275 - 19968: jis0212<<14 | 0x2D<<7 | 0x05,
+ 30276 - 19968: jis0212<<14 | 0x2D<<7 | 0x06,
+ 30277 - 19968: jis0212<<14 | 0x2D<<7 | 0x07,
+ 30278 - 19968: jis0208<<14 | 0x40<<7 | 0x53,
+ 30279 - 19968: jis0208<<14 | 0x40<<7 | 0x51,
+ 30280 - 19968: jis0208<<14 | 0x40<<7 | 0x52,
+ 30281 - 19968: jis0212<<14 | 0x2D<<7 | 0x08,
+ 30282 - 19968: jis0212<<14 | 0x2D<<7 | 0x02,
+ 30283 - 19968: jis0212<<14 | 0x2D<<7 | 0x09,
+ 30284 - 19968: jis0208<<14 | 0x13<<7 | 0x41,
+ 30290 - 19968: jis0208<<14 | 0x2B<<7 | 0x5D,
+ 30293 - 19968: jis0212<<14 | 0x2D<<7 | 0x0A,
+ 30294 - 19968: jis0208<<14 | 0x29<<7 | 0x29,
+ 30296 - 19968: jis0208<<14 | 0x40<<7 | 0x55,
+ 30297 - 19968: jis0212<<14 | 0x2D<<7 | 0x0B,
+ 30300 - 19968: jis0208<<14 | 0x40<<7 | 0x54,
+ 30303 - 19968: jis0212<<14 | 0x2D<<7 | 0x0C,
+ 30305 - 19968: jis0208<<14 | 0x40<<7 | 0x56,
+ 30306 - 19968: jis0208<<14 | 0x40<<7 | 0x57,
+ 30308 - 19968: jis0212<<14 | 0x2D<<7 | 0x0D,
+ 30309 - 19968: jis0212<<14 | 0x2D<<7 | 0x0E,
+ 30311 - 19968: jis0208<<14 | 0x40<<7 | 0x5B,
+ 30312 - 19968: jis0208<<14 | 0x40<<7 | 0x58,
+ 30313 - 19968: jis0208<<14 | 0x40<<7 | 0x59,
+ 30314 - 19968: jis0208<<14 | 0x40<<7 | 0x5A,
+ 30316 - 19968: jis0208<<14 | 0x40<<7 | 0x5C,
+ 30317 - 19968: jis0212<<14 | 0x2D<<7 | 0x0F,
+ 30318 - 19968: jis0212<<14 | 0x2D<<7 | 0x10,
+ 30319 - 19968: jis0212<<14 | 0x2D<<7 | 0x11,
+ 30320 - 19968: jis0208<<14 | 0x40<<7 | 0x5D,
+ 30321 - 19968: jis0212<<14 | 0x2D<<7 | 0x12,
+ 30322 - 19968: jis0208<<14 | 0x41<<7 | 0x00,
+ 30324 - 19968: jis0212<<14 | 0x2D<<7 | 0x13,
+ 30326 - 19968: jis0208<<14 | 0x41<<7 | 0x01,
+ 30328 - 19968: jis0208<<14 | 0x41<<7 | 0x02,
+ 30330 - 19968: jis0208<<14 | 0x27<<7 | 0x0E,
+ 30331 - 19968: jis0208<<14 | 0x24<<7 | 0x2F,
+ 30332 - 19968: jis0208<<14 | 0x41<<7 | 0x03,
+ 30333 - 19968: jis0208<<14 | 0x26<<7 | 0x51,
+ 30334 - 19968: jis0208<<14 | 0x28<<7 | 0x13,
+ 30336 - 19968: jis0208<<14 | 0x41<<7 | 0x04,
+ 30337 - 19968: jis0212<<14 | 0x2D<<7 | 0x14,
+ 30338 - 19968: jis0208<<14 | 0x5A<<7 | 0x14,
+ 30339 - 19968: jis0208<<14 | 0x41<<7 | 0x05,
+ 30340 - 19968: jis0208<<14 | 0x24<<7 | 0x09,
+ 30341 - 19968: jis0212<<14 | 0x2D<<7 | 0x15,
+ 30342 - 19968: jis0208<<14 | 0x12<<7 | 0x06,
+ 30343 - 19968: jis0208<<14 | 0x18<<7 | 0x23,
+ 30344 - 19968: jis0208<<14 | 0x41<<7 | 0x06,
+ 30347 - 19968: jis0208<<14 | 0x41<<7 | 0x07,
+ 30348 - 19968: jis0212<<14 | 0x2D<<7 | 0x16,
+ 30349 - 19968: jis0212<<14 | 0x2D<<7 | 0x17,
+ 30350 - 19968: jis0208<<14 | 0x41<<7 | 0x08,
+ 30352 - 19968: jis0208<<14 | 0x1A<<7 | 0x08,
+ 30355 - 19968: jis0208<<14 | 0x41<<7 | 0x0A,
+ 30357 - 19968: jis0212<<14 | 0x2D<<7 | 0x18,
+ 30358 - 19968: jis0208<<14 | 0x41<<7 | 0x09,
+ 30361 - 19968: jis0208<<14 | 0x41<<7 | 0x0B,
+ 30362 - 19968: jis0208<<14 | 0x41<<7 | 0x0C,
+ 30363 - 19968: jis0208<<14 | 0x5A<<7 | 0x17,
+ 30364 - 19968: jis0208<<14 | 0x5A<<7 | 0x15,
+ 30365 - 19968: jis0212<<14 | 0x2D<<7 | 0x1B,
+ 30366 - 19968: jis0208<<14 | 0x5A<<7 | 0x16,
+ 30367 - 19968: jis0212<<14 | 0x2D<<7 | 0x1C,
+ 30368 - 19968: jis0212<<14 | 0x2D<<7 | 0x1D,
+ 30370 - 19968: jis0212<<14 | 0x2D<<7 | 0x1E,
+ 30371 - 19968: jis0212<<14 | 0x2D<<7 | 0x1F,
+ 30372 - 19968: jis0212<<14 | 0x2D<<7 | 0x20,
+ 30373 - 19968: jis0212<<14 | 0x2D<<7 | 0x21,
+ 30374 - 19968: jis0208<<14 | 0x5A<<7 | 0x18,
+ 30375 - 19968: jis0212<<14 | 0x2D<<7 | 0x23,
+ 30376 - 19968: jis0212<<14 | 0x2D<<7 | 0x24,
+ 30378 - 19968: jis0212<<14 | 0x2D<<7 | 0x25,
+ 30381 - 19968: jis0212<<14 | 0x2D<<7 | 0x26,
+ 30382 - 19968: jis0208<<14 | 0x27<<7 | 0x48,
+ 30384 - 19968: jis0208<<14 | 0x41<<7 | 0x0D,
+ 30388 - 19968: jis0208<<14 | 0x41<<7 | 0x0E,
+ 30391 - 19968: jis0208<<14 | 0x52<<7 | 0x48,
+ 30392 - 19968: jis0208<<14 | 0x41<<7 | 0x0F,
+ 30393 - 19968: jis0208<<14 | 0x41<<7 | 0x10,
+ 30394 - 19968: jis0208<<14 | 0x41<<7 | 0x11,
+ 30397 - 19968: jis0212<<14 | 0x2D<<7 | 0x27,
+ 30399 - 19968: jis0208<<14 | 0x1A<<7 | 0x0D,
+ 30401 - 19968: jis0212<<14 | 0x2D<<7 | 0x28,
+ 30402 - 19968: jis0208<<14 | 0x41<<7 | 0x12,
+ 30403 - 19968: jis0208<<14 | 0x26<<7 | 0x35,
+ 30405 - 19968: jis0212<<14 | 0x2D<<7 | 0x29,
+ 30406 - 19968: jis0208<<14 | 0x2A<<7 | 0x3E,
+ 30408 - 19968: jis0208<<14 | 0x10<<7 | 0x2D,
+ 30409 - 19968: jis0212<<14 | 0x2D<<7 | 0x2A,
+ 30410 - 19968: jis0208<<14 | 0x10<<7 | 0x36,
+ 30411 - 19968: jis0212<<14 | 0x2D<<7 | 0x2B,
+ 30412 - 19968: jis0212<<14 | 0x2D<<7 | 0x2C,
+ 30413 - 19968: jis0208<<14 | 0x41<<7 | 0x13,
+ 30414 - 19968: jis0212<<14 | 0x2D<<7 | 0x2D,
+ 30418 - 19968: jis0208<<14 | 0x41<<7 | 0x15,
+ 30420 - 19968: jis0212<<14 | 0x2D<<7 | 0x2E,
+ 30422 - 19968: jis0208<<14 | 0x41<<7 | 0x14,
+ 30423 - 19968: jis0208<<14 | 0x24<<7 | 0x4F,
+ 30425 - 19968: jis0212<<14 | 0x2D<<7 | 0x2F,
+ 30427 - 19968: jis0208<<14 | 0x1F<<7 | 0x18,
+ 30428 - 19968: jis0208<<14 | 0x3C<<7 | 0x18,
+ 30430 - 19968: jis0208<<14 | 0x41<<7 | 0x16,
+ 30431 - 19968: jis0208<<14 | 0x2B<<7 | 0x20,
+ 30432 - 19968: jis0212<<14 | 0x2D<<7 | 0x30,
+ 30433 - 19968: jis0208<<14 | 0x41<<7 | 0x17,
+ 30435 - 19968: jis0208<<14 | 0x13<<7 | 0x25,
+ 30436 - 19968: jis0208<<14 | 0x27<<7 | 0x36,
+ 30437 - 19968: jis0208<<14 | 0x41<<7 | 0x18,
+ 30438 - 19968: jis0212<<14 | 0x2D<<7 | 0x31,
+ 30439 - 19968: jis0208<<14 | 0x41<<7 | 0x19,
+ 30440 - 19968: jis0212<<14 | 0x2D<<7 | 0x32,
+ 30442 - 19968: jis0208<<14 | 0x41<<7 | 0x1A,
+ 30444 - 19968: jis0212<<14 | 0x2D<<7 | 0x33,
+ 30446 - 19968: jis0208<<14 | 0x2B<<7 | 0x3B,
+ 30448 - 19968: jis0212<<14 | 0x2D<<7 | 0x34,
+ 30449 - 19968: jis0212<<14 | 0x2D<<7 | 0x35,
+ 30450 - 19968: jis0208<<14 | 0x2B<<7 | 0x34,
+ 30452 - 19968: jis0208<<14 | 0x23<<7 | 0x1D,
+ 30454 - 19968: jis0212<<14 | 0x2D<<7 | 0x36,
+ 30456 - 19968: jis0208<<14 | 0x20<<7 | 0x49,
+ 30457 - 19968: jis0212<<14 | 0x2D<<7 | 0x37,
+ 30459 - 19968: jis0208<<14 | 0x41<<7 | 0x1C,
+ 30460 - 19968: jis0212<<14 | 0x2D<<7 | 0x38,
+ 30462 - 19968: jis0208<<14 | 0x1C<<7 | 0x41,
+ 30464 - 19968: jis0212<<14 | 0x2D<<7 | 0x39,
+ 30465 - 19968: jis0208<<14 | 0x1D<<7 | 0x29,
+ 30468 - 19968: jis0208<<14 | 0x41<<7 | 0x1F,
+ 30470 - 19968: jis0212<<14 | 0x2D<<7 | 0x3A,
+ 30471 - 19968: jis0208<<14 | 0x41<<7 | 0x1E,
+ 30472 - 19968: jis0208<<14 | 0x41<<7 | 0x1D,
+ 30473 - 19968: jis0208<<14 | 0x27<<7 | 0x5C,
+ 30474 - 19968: jis0212<<14 | 0x2D<<7 | 0x3B,
+ 30475 - 19968: jis0208<<14 | 0x13<<7 | 0x26,
+ 30476 - 19968: jis0208<<14 | 0x17<<7 | 0x08,
+ 30478 - 19968: jis0212<<14 | 0x2D<<7 | 0x3C,
+ 30482 - 19968: jis0212<<14 | 0x2D<<7 | 0x3D,
+ 30484 - 19968: jis0212<<14 | 0x2D<<7 | 0x3E,
+ 30485 - 19968: jis0212<<14 | 0x2D<<7 | 0x3F,
+ 30487 - 19968: jis0212<<14 | 0x2D<<7 | 0x40,
+ 30489 - 19968: jis0212<<14 | 0x2D<<7 | 0x41,
+ 30490 - 19968: jis0212<<14 | 0x2D<<7 | 0x42,
+ 30491 - 19968: jis0208<<14 | 0x41<<7 | 0x25,
+ 30492 - 19968: jis0212<<14 | 0x2D<<7 | 0x43,
+ 30494 - 19968: jis0208<<14 | 0x41<<7 | 0x22,
+ 30495 - 19968: jis0208<<14 | 0x1E<<7 | 0x1E,
+ 30496 - 19968: jis0208<<14 | 0x2B<<7 | 0x11,
+ 30498 - 19968: jis0212<<14 | 0x2D<<7 | 0x44,
+ 30500 - 19968: jis0208<<14 | 0x41<<7 | 0x21,
+ 30501 - 19968: jis0208<<14 | 0x41<<7 | 0x23,
+ 30502 - 19968: jis0208<<14 | 0x41<<7 | 0x24,
+ 30504 - 19968: jis0212<<14 | 0x2D<<7 | 0x45,
+ 30505 - 19968: jis0208<<14 | 0x41<<7 | 0x20,
+ 30509 - 19968: jis0212<<14 | 0x2D<<7 | 0x46,
+ 30510 - 19968: jis0212<<14 | 0x2D<<7 | 0x47,
+ 30511 - 19968: jis0212<<14 | 0x2D<<7 | 0x48,
+ 30516 - 19968: jis0212<<14 | 0x2D<<7 | 0x49,
+ 30517 - 19968: jis0212<<14 | 0x2D<<7 | 0x4A,
+ 30518 - 19968: jis0212<<14 | 0x2D<<7 | 0x4B,
+ 30519 - 19968: jis0208<<14 | 0x41<<7 | 0x26,
+ 30520 - 19968: jis0208<<14 | 0x41<<7 | 0x27,
+ 30521 - 19968: jis0212<<14 | 0x2D<<7 | 0x4C,
+ 30522 - 19968: jis0208<<14 | 0x23<<7 | 0x0E,
+ 30524 - 19968: jis0208<<14 | 0x13<<7 | 0x42,
+ 30525 - 19968: jis0212<<14 | 0x2D<<7 | 0x4D,
+ 30526 - 19968: jis0212<<14 | 0x2D<<7 | 0x4E,
+ 30528 - 19968: jis0208<<14 | 0x22<<7 | 0x44,
+ 30530 - 19968: jis0212<<14 | 0x2D<<7 | 0x4F,
+ 30533 - 19968: jis0212<<14 | 0x2D<<7 | 0x50,
+ 30534 - 19968: jis0208<<14 | 0x5A<<7 | 0x1A,
+ 30535 - 19968: jis0208<<14 | 0x41<<7 | 0x28,
+ 30538 - 19968: jis0212<<14 | 0x2D<<7 | 0x52,
+ 30541 - 19968: jis0212<<14 | 0x2D<<7 | 0x53,
+ 30542 - 19968: jis0212<<14 | 0x2D<<7 | 0x54,
+ 30543 - 19968: jis0212<<14 | 0x2D<<7 | 0x55,
+ 30546 - 19968: jis0212<<14 | 0x2D<<7 | 0x56,
+ 30550 - 19968: jis0212<<14 | 0x2D<<7 | 0x57,
+ 30551 - 19968: jis0212<<14 | 0x2D<<7 | 0x58,
+ 30554 - 19968: jis0208<<14 | 0x41<<7 | 0x29,
+ 30555 - 19968: jis0208<<14 | 0x41<<7 | 0x2C,
+ 30556 - 19968: jis0212<<14 | 0x2D<<7 | 0x59,
+ 30558 - 19968: jis0212<<14 | 0x2D<<7 | 0x5A,
+ 30559 - 19968: jis0212<<14 | 0x2D<<7 | 0x5B,
+ 30560 - 19968: jis0212<<14 | 0x2D<<7 | 0x5C,
+ 30561 - 19968: jis0208<<14 | 0x1E<<7 | 0x46,
+ 30562 - 19968: jis0212<<14 | 0x2D<<7 | 0x5D,
+ 30563 - 19968: jis0208<<14 | 0x25<<7 | 0x23,
+ 30564 - 19968: jis0212<<14 | 0x2E<<7 | 0x00,
+ 30565 - 19968: jis0208<<14 | 0x41<<7 | 0x2D,
+ 30566 - 19968: jis0208<<14 | 0x2A<<7 | 0x32,
+ 30567 - 19968: jis0212<<14 | 0x2E<<7 | 0x01,
+ 30568 - 19968: jis0208<<14 | 0x41<<7 | 0x2A,
+ 30570 - 19968: jis0212<<14 | 0x2E<<7 | 0x02,
+ 30571 - 19968: jis0208<<14 | 0x41<<7 | 0x2B,
+ 30572 - 19968: jis0212<<14 | 0x2E<<7 | 0x03,
+ 30576 - 19968: jis0212<<14 | 0x2E<<7 | 0x04,
+ 30578 - 19968: jis0212<<14 | 0x2E<<7 | 0x05,
+ 30579 - 19968: jis0212<<14 | 0x2E<<7 | 0x06,
+ 30580 - 19968: jis0212<<14 | 0x2E<<7 | 0x07,
+ 30585 - 19968: jis0208<<14 | 0x41<<7 | 0x30,
+ 30586 - 19968: jis0212<<14 | 0x2E<<7 | 0x08,
+ 30589 - 19968: jis0212<<14 | 0x2E<<7 | 0x09,
+ 30590 - 19968: jis0208<<14 | 0x41<<7 | 0x2F,
+ 30591 - 19968: jis0208<<14 | 0x41<<7 | 0x2E,
+ 30592 - 19968: jis0212<<14 | 0x2E<<7 | 0x0A,
+ 30596 - 19968: jis0212<<14 | 0x2E<<7 | 0x0B,
+ 30603 - 19968: jis0208<<14 | 0x41<<7 | 0x32,
+ 30604 - 19968: jis0212<<14 | 0x2E<<7 | 0x0C,
+ 30605 - 19968: jis0212<<14 | 0x2E<<7 | 0x0D,
+ 30606 - 19968: jis0208<<14 | 0x41<<7 | 0x31,
+ 30609 - 19968: jis0208<<14 | 0x41<<7 | 0x33,
+ 30612 - 19968: jis0212<<14 | 0x2E<<7 | 0x0E,
+ 30613 - 19968: jis0212<<14 | 0x2E<<7 | 0x0F,
+ 30614 - 19968: jis0212<<14 | 0x2E<<7 | 0x10,
+ 30618 - 19968: jis0212<<14 | 0x2E<<7 | 0x11,
+ 30622 - 19968: jis0208<<14 | 0x41<<7 | 0x35,
+ 30623 - 19968: jis0212<<14 | 0x2E<<7 | 0x12,
+ 30624 - 19968: jis0208<<14 | 0x41<<7 | 0x34,
+ 30626 - 19968: jis0212<<14 | 0x2E<<7 | 0x13,
+ 30629 - 19968: jis0208<<14 | 0x29<<7 | 0x2C,
+ 30631 - 19968: jis0212<<14 | 0x2E<<7 | 0x14,
+ 30634 - 19968: jis0212<<14 | 0x2E<<7 | 0x15,
+ 30636 - 19968: jis0208<<14 | 0x1C<<7 | 0x35,
+ 30637 - 19968: jis0208<<14 | 0x2D<<7 | 0x25,
+ 30638 - 19968: jis0212<<14 | 0x2E<<7 | 0x16,
+ 30639 - 19968: jis0212<<14 | 0x2E<<7 | 0x17,
+ 30640 - 19968: jis0208<<14 | 0x41<<7 | 0x36,
+ 30641 - 19968: jis0212<<14 | 0x2E<<7 | 0x18,
+ 30643 - 19968: jis0208<<14 | 0x25<<7 | 0x16,
+ 30645 - 19968: jis0212<<14 | 0x2E<<7 | 0x19,
+ 30646 - 19968: jis0208<<14 | 0x41<<7 | 0x37,
+ 30649 - 19968: jis0208<<14 | 0x41<<7 | 0x38,
+ 30651 - 19968: jis0208<<14 | 0x41<<7 | 0x3C,
+ 30652 - 19968: jis0208<<14 | 0x41<<7 | 0x3A,
+ 30653 - 19968: jis0208<<14 | 0x41<<7 | 0x3B,
+ 30654 - 19968: jis0212<<14 | 0x2E<<7 | 0x1A,
+ 30655 - 19968: jis0208<<14 | 0x41<<7 | 0x39,
+ 30659 - 19968: jis0212<<14 | 0x2E<<7 | 0x1B,
+ 30663 - 19968: jis0208<<14 | 0x41<<7 | 0x3D,
+ 30665 - 19968: jis0212<<14 | 0x2E<<7 | 0x1C,
+ 30669 - 19968: jis0208<<14 | 0x41<<7 | 0x3E,
+ 30673 - 19968: jis0212<<14 | 0x2E<<7 | 0x1D,
+ 30674 - 19968: jis0212<<14 | 0x2E<<7 | 0x1E,
+ 30677 - 19968: jis0212<<14 | 0x2E<<7 | 0x1F,
+ 30679 - 19968: jis0208<<14 | 0x41<<7 | 0x3F,
+ 30681 - 19968: jis0212<<14 | 0x2E<<7 | 0x20,
+ 30682 - 19968: jis0208<<14 | 0x41<<7 | 0x40,
+ 30683 - 19968: jis0208<<14 | 0x2B<<7 | 0x16,
+ 30684 - 19968: jis0208<<14 | 0x41<<7 | 0x41,
+ 30686 - 19968: jis0212<<14 | 0x2E<<7 | 0x21,
+ 30687 - 19968: jis0212<<14 | 0x2E<<7 | 0x22,
+ 30688 - 19968: jis0212<<14 | 0x2E<<7 | 0x23,
+ 30690 - 19968: jis0208<<14 | 0x2B<<7 | 0x4F,
+ 30691 - 19968: jis0208<<14 | 0x41<<7 | 0x42,
+ 30692 - 19968: jis0212<<14 | 0x2E<<7 | 0x24,
+ 30693 - 19968: jis0208<<14 | 0x22<<7 | 0x2D,
+ 30694 - 19968: jis0212<<14 | 0x2E<<7 | 0x25,
+ 30695 - 19968: jis0208<<14 | 0x26<<7 | 0x49,
+ 30697 - 19968: jis0208<<14 | 0x15<<7 | 0x4A,
+ 30698 - 19968: jis0212<<14 | 0x2E<<7 | 0x26,
+ 30700 - 19968: jis0212<<14 | 0x2E<<7 | 0x27,
+ 30701 - 19968: jis0208<<14 | 0x22<<7 | 0x1A,
+ 30702 - 19968: jis0208<<14 | 0x41<<7 | 0x43,
+ 30703 - 19968: jis0208<<14 | 0x15<<7 | 0x19,
+ 30704 - 19968: jis0212<<14 | 0x2E<<7 | 0x28,
+ 30705 - 19968: jis0212<<14 | 0x2E<<7 | 0x29,
+ 30707 - 19968: jis0208<<14 | 0x1F<<7 | 0x2F,
+ 30708 - 19968: jis0212<<14 | 0x2E<<7 | 0x2A,
+ 30712 - 19968: jis0212<<14 | 0x2E<<7 | 0x2B,
+ 30715 - 19968: jis0212<<14 | 0x2E<<7 | 0x2C,
+ 30716 - 19968: jis0208<<14 | 0x41<<7 | 0x44,
+ 30722 - 19968: jis0208<<14 | 0x19<<7 | 0x1C,
+ 30725 - 19968: jis0212<<14 | 0x2E<<7 | 0x2D,
+ 30726 - 19968: jis0212<<14 | 0x2E<<7 | 0x2E,
+ 30729 - 19968: jis0212<<14 | 0x2E<<7 | 0x2F,
+ 30732 - 19968: jis0208<<14 | 0x41<<7 | 0x45,
+ 30733 - 19968: jis0212<<14 | 0x2E<<7 | 0x30,
+ 30734 - 19968: jis0212<<14 | 0x2E<<7 | 0x31,
+ 30737 - 19968: jis0212<<14 | 0x2E<<7 | 0x32,
+ 30738 - 19968: jis0208<<14 | 0x41<<7 | 0x46,
+ 30740 - 19968: jis0208<<14 | 0x17<<7 | 0x05,
+ 30741 - 19968: jis0208<<14 | 0x19<<7 | 0x34,
+ 30749 - 19968: jis0212<<14 | 0x2E<<7 | 0x33,
+ 30752 - 19968: jis0208<<14 | 0x41<<7 | 0x48,
+ 30753 - 19968: jis0208<<14 | 0x5A<<7 | 0x1C,
+ 30754 - 19968: jis0212<<14 | 0x2E<<7 | 0x35,
+ 30755 - 19968: jis0212<<14 | 0x2E<<7 | 0x36,
+ 30757 - 19968: jis0208<<14 | 0x24<<7 | 0x35,
+ 30758 - 19968: jis0208<<14 | 0x19<<7 | 0x35,
+ 30759 - 19968: jis0208<<14 | 0x14<<7 | 0x2D,
+ 30765 - 19968: jis0212<<14 | 0x2E<<7 | 0x37,
+ 30766 - 19968: jis0212<<14 | 0x2E<<7 | 0x38,
+ 30768 - 19968: jis0212<<14 | 0x2E<<7 | 0x39,
+ 30770 - 19968: jis0208<<14 | 0x2A<<7 | 0x03,
+ 30772 - 19968: jis0208<<14 | 0x26<<7 | 0x2A,
+ 30773 - 19968: jis0212<<14 | 0x2E<<7 | 0x3A,
+ 30775 - 19968: jis0212<<14 | 0x2E<<7 | 0x3B,
+ 30778 - 19968: jis0208<<14 | 0x24<<7 | 0x36,
+ 30783 - 19968: jis0208<<14 | 0x18<<7 | 0x3B,
+ 30787 - 19968: jis0212<<14 | 0x2E<<7 | 0x3C,
+ 30788 - 19968: jis0212<<14 | 0x2E<<7 | 0x3D,
+ 30789 - 19968: jis0208<<14 | 0x41<<7 | 0x4A,
+ 30791 - 19968: jis0212<<14 | 0x2E<<7 | 0x3E,
+ 30792 - 19968: jis0212<<14 | 0x2E<<7 | 0x3F,
+ 30796 - 19968: jis0212<<14 | 0x2E<<7 | 0x40,
+ 30798 - 19968: jis0208<<14 | 0x5A<<7 | 0x1D,
+ 30802 - 19968: jis0212<<14 | 0x2E<<7 | 0x42,
+ 30812 - 19968: jis0212<<14 | 0x2E<<7 | 0x43,
+ 30813 - 19968: jis0208<<14 | 0x1D<<7 | 0x2A,
+ 30814 - 19968: jis0212<<14 | 0x2E<<7 | 0x44,
+ 30816 - 19968: jis0212<<14 | 0x2E<<7 | 0x45,
+ 30817 - 19968: jis0212<<14 | 0x2E<<7 | 0x46,
+ 30819 - 19968: jis0212<<14 | 0x2E<<7 | 0x47,
+ 30820 - 19968: jis0208<<14 | 0x5A<<7 | 0x1E,
+ 30824 - 19968: jis0212<<14 | 0x2E<<7 | 0x49,
+ 30826 - 19968: jis0212<<14 | 0x2E<<7 | 0x4A,
+ 30827 - 19968: jis0208<<14 | 0x2D<<7 | 0x11,
+ 30828 - 19968: jis0208<<14 | 0x18<<7 | 0x24,
+ 30830 - 19968: jis0212<<14 | 0x2E<<7 | 0x4B,
+ 30831 - 19968: jis0208<<14 | 0x17<<7 | 0x06,
+ 30834 - 19968: jis0208<<14 | 0x27<<7 | 0x02,
+ 30836 - 19968: jis0208<<14 | 0x41<<7 | 0x4C,
+ 30842 - 19968: jis0208<<14 | 0x5A<<7 | 0x1F,
+ 30844 - 19968: jis0208<<14 | 0x41<<7 | 0x4E,
+ 30846 - 19968: jis0212<<14 | 0x2E<<7 | 0x4D,
+ 30849 - 19968: jis0208<<14 | 0x17<<7 | 0x4A,
+ 30854 - 19968: jis0208<<14 | 0x41<<7 | 0x4D,
+ 30855 - 19968: jis0208<<14 | 0x23<<7 | 0x55,
+ 30858 - 19968: jis0212<<14 | 0x2E<<7 | 0x4E,
+ 30860 - 19968: jis0208<<14 | 0x41<<7 | 0x50,
+ 30861 - 19968: jis0208<<14 | 0x12<<7 | 0x16,
+ 30862 - 19968: jis0208<<14 | 0x41<<7 | 0x4B,
+ 30863 - 19968: jis0212<<14 | 0x2E<<7 | 0x4F,
+ 30865 - 19968: jis0208<<14 | 0x27<<7 | 0x49,
+ 30867 - 19968: jis0208<<14 | 0x10<<7 | 0x0F,
+ 30868 - 19968: jis0212<<14 | 0x2E<<7 | 0x50,
+ 30869 - 19968: jis0208<<14 | 0x19<<7 | 0x4B,
+ 30871 - 19968: jis0208<<14 | 0x2E<<7 | 0x31,
+ 30872 - 19968: jis0212<<14 | 0x2E<<7 | 0x51,
+ 30874 - 19968: jis0208<<14 | 0x41<<7 | 0x4F,
+ 30877 - 19968: jis0212<<14 | 0x2E<<7 | 0x53,
+ 30878 - 19968: jis0212<<14 | 0x2E<<7 | 0x54,
+ 30879 - 19968: jis0212<<14 | 0x2E<<7 | 0x55,
+ 30881 - 19968: jis0212<<14 | 0x2E<<7 | 0x52,
+ 30883 - 19968: jis0208<<14 | 0x41<<7 | 0x51,
+ 30884 - 19968: jis0212<<14 | 0x2E<<7 | 0x56,
+ 30887 - 19968: jis0208<<14 | 0x29<<7 | 0x2A,
+ 30888 - 19968: jis0212<<14 | 0x2E<<7 | 0x57,
+ 30889 - 19968: jis0208<<14 | 0x1F<<7 | 0x38,
+ 30890 - 19968: jis0208<<14 | 0x41<<7 | 0x53,
+ 30892 - 19968: jis0212<<14 | 0x2E<<7 | 0x58,
+ 30893 - 19968: jis0212<<14 | 0x2E<<7 | 0x59,
+ 30895 - 19968: jis0208<<14 | 0x41<<7 | 0x54,
+ 30896 - 19968: jis0212<<14 | 0x2E<<7 | 0x5A,
+ 30897 - 19968: jis0212<<14 | 0x2E<<7 | 0x5B,
+ 30898 - 19968: jis0212<<14 | 0x2E<<7 | 0x5C,
+ 30899 - 19968: jis0212<<14 | 0x2E<<7 | 0x5D,
+ 30901 - 19968: jis0208<<14 | 0x41<<7 | 0x52,
+ 30906 - 19968: jis0208<<14 | 0x12<<7 | 0x2D,
+ 30907 - 19968: jis0212<<14 | 0x2F<<7 | 0x00,
+ 30908 - 19968: jis0208<<14 | 0x41<<7 | 0x5A,
+ 30909 - 19968: jis0212<<14 | 0x2F<<7 | 0x01,
+ 30910 - 19968: jis0208<<14 | 0x41<<7 | 0x59,
+ 30911 - 19968: jis0212<<14 | 0x2F<<7 | 0x02,
+ 30913 - 19968: jis0208<<14 | 0x1B<<7 | 0x06,
+ 30917 - 19968: jis0208<<14 | 0x41<<7 | 0x5B,
+ 30918 - 19968: jis0208<<14 | 0x41<<7 | 0x56,
+ 30919 - 19968: jis0212<<14 | 0x2F<<7 | 0x03,
+ 30920 - 19968: jis0212<<14 | 0x2F<<7 | 0x04,
+ 30921 - 19968: jis0212<<14 | 0x2F<<7 | 0x05,
+ 30922 - 19968: jis0208<<14 | 0x41<<7 | 0x5C,
+ 30923 - 19968: jis0208<<14 | 0x41<<7 | 0x57,
+ 30924 - 19968: jis0212<<14 | 0x2F<<7 | 0x06,
+ 30926 - 19968: jis0212<<14 | 0x2F<<7 | 0x07,
+ 30928 - 19968: jis0208<<14 | 0x27<<7 | 0x37,
+ 30929 - 19968: jis0208<<14 | 0x41<<7 | 0x55,
+ 30930 - 19968: jis0212<<14 | 0x2F<<7 | 0x08,
+ 30931 - 19968: jis0212<<14 | 0x2F<<7 | 0x09,
+ 30932 - 19968: jis0208<<14 | 0x41<<7 | 0x58,
+ 30933 - 19968: jis0212<<14 | 0x2F<<7 | 0x0A,
+ 30934 - 19968: jis0212<<14 | 0x2F<<7 | 0x0B,
+ 30938 - 19968: jis0208<<14 | 0x42<<7 | 0x01,
+ 30939 - 19968: jis0212<<14 | 0x2F<<7 | 0x0D,
+ 30943 - 19968: jis0212<<14 | 0x2F<<7 | 0x0E,
+ 30944 - 19968: jis0212<<14 | 0x2F<<7 | 0x0F,
+ 30945 - 19968: jis0212<<14 | 0x2F<<7 | 0x10,
+ 30948 - 19968: jis0212<<14 | 0x2F<<7 | 0x0C,
+ 30950 - 19968: jis0212<<14 | 0x2F<<7 | 0x11,
+ 30951 - 19968: jis0208<<14 | 0x42<<7 | 0x00,
+ 30952 - 19968: jis0208<<14 | 0x2A<<7 | 0x40,
+ 30954 - 19968: jis0212<<14 | 0x2F<<7 | 0x12,
+ 30956 - 19968: jis0208<<14 | 0x41<<7 | 0x5D,
+ 30959 - 19968: jis0208<<14 | 0x0F<<7 | 0x4A,
+ 30962 - 19968: jis0212<<14 | 0x2F<<7 | 0x13,
+ 30963 - 19968: jis0212<<14 | 0x2F<<7 | 0x14,
+ 30964 - 19968: jis0208<<14 | 0x42<<7 | 0x03,
+ 30966 - 19968: jis0212<<14 | 0x2F<<7 | 0x16,
+ 30967 - 19968: jis0212<<14 | 0x2F<<7 | 0x17,
+ 30970 - 19968: jis0212<<14 | 0x2F<<7 | 0x18,
+ 30971 - 19968: jis0212<<14 | 0x2F<<7 | 0x19,
+ 30973 - 19968: jis0208<<14 | 0x42<<7 | 0x02,
+ 30975 - 19968: jis0212<<14 | 0x2F<<7 | 0x1A,
+ 30976 - 19968: jis0212<<14 | 0x2F<<7 | 0x15,
+ 30977 - 19968: jis0208<<14 | 0x1D<<7 | 0x2B,
+ 30982 - 19968: jis0212<<14 | 0x2F<<7 | 0x1B,
+ 30983 - 19968: jis0208<<14 | 0x42<<7 | 0x04,
+ 30988 - 19968: jis0212<<14 | 0x2F<<7 | 0x1C,
+ 30990 - 19968: jis0208<<14 | 0x20<<7 | 0x22,
+ 30992 - 19968: jis0212<<14 | 0x2F<<7 | 0x1D,
+ 30993 - 19968: jis0208<<14 | 0x42<<7 | 0x06,
+ 30994 - 19968: jis0208<<14 | 0x42<<7 | 0x05,
+ 31001 - 19968: jis0208<<14 | 0x42<<7 | 0x07,
+ 31002 - 19968: jis0212<<14 | 0x2F<<7 | 0x1E,
+ 31004 - 19968: jis0212<<14 | 0x2F<<7 | 0x1F,
+ 31006 - 19968: jis0212<<14 | 0x2F<<7 | 0x20,
+ 31007 - 19968: jis0212<<14 | 0x2F<<7 | 0x21,
+ 31008 - 19968: jis0212<<14 | 0x2F<<7 | 0x22,
+ 31013 - 19968: jis0212<<14 | 0x2F<<7 | 0x23,
+ 31014 - 19968: jis0208<<14 | 0x41<<7 | 0x47,
+ 31015 - 19968: jis0212<<14 | 0x2F<<7 | 0x24,
+ 31017 - 19968: jis0212<<14 | 0x2F<<7 | 0x25,
+ 31018 - 19968: jis0208<<14 | 0x41<<7 | 0x49,
+ 31019 - 19968: jis0208<<14 | 0x42<<7 | 0x09,
+ 31020 - 19968: jis0208<<14 | 0x42<<7 | 0x08,
+ 31021 - 19968: jis0212<<14 | 0x2F<<7 | 0x26,
+ 31024 - 19968: jis0208<<14 | 0x5A<<7 | 0x20,
+ 31025 - 19968: jis0212<<14 | 0x2F<<7 | 0x27,
+ 31028 - 19968: jis0212<<14 | 0x2F<<7 | 0x28,
+ 31029 - 19968: jis0212<<14 | 0x2F<<7 | 0x29,
+ 31034 - 19968: jis0208<<14 | 0x1B<<7 | 0x07,
+ 31035 - 19968: jis0212<<14 | 0x2F<<7 | 0x2A,
+ 31036 - 19968: jis0208<<14 | 0x2D<<7 | 0x48,
+ 31037 - 19968: jis0212<<14 | 0x2F<<7 | 0x2B,
+ 31038 - 19968: jis0208<<14 | 0x1B<<7 | 0x31,
+ 31039 - 19968: jis0212<<14 | 0x2F<<7 | 0x2C,
+ 31040 - 19968: jis0208<<14 | 0x42<<7 | 0x0A,
+ 31041 - 19968: jis0208<<14 | 0x16<<7 | 0x16,
+ 31044 - 19968: jis0212<<14 | 0x2F<<7 | 0x2D,
+ 31045 - 19968: jis0212<<14 | 0x2F<<7 | 0x2E,
+ 31046 - 19968: jis0212<<14 | 0x2F<<7 | 0x2F,
+ 31047 - 19968: jis0208<<14 | 0x14<<7 | 0x1F,
+ 31048 - 19968: jis0208<<14 | 0x14<<7 | 0x06,
+ 31049 - 19968: jis0208<<14 | 0x1A<<7 | 0x42,
+ 31050 - 19968: jis0212<<14 | 0x2F<<7 | 0x30,
+ 31051 - 19968: jis0212<<14 | 0x2F<<7 | 0x31,
+ 31055 - 19968: jis0212<<14 | 0x2F<<7 | 0x32,
+ 31056 - 19968: jis0208<<14 | 0x2C<<7 | 0x13,
+ 31057 - 19968: jis0212<<14 | 0x2F<<7 | 0x33,
+ 31059 - 19968: jis0208<<14 | 0x42<<7 | 0x10,
+ 31060 - 19968: jis0212<<14 | 0x2F<<7 | 0x34,
+ 31061 - 19968: jis0208<<14 | 0x42<<7 | 0x0F,
+ 31062 - 19968: jis0208<<14 | 0x20<<7 | 0x23,
+ 31063 - 19968: jis0208<<14 | 0x42<<7 | 0x0C,
+ 31064 - 19968: jis0212<<14 | 0x2F<<7 | 0x35,
+ 31066 - 19968: jis0208<<14 | 0x42<<7 | 0x0E,
+ 31067 - 19968: jis0212<<14 | 0x2F<<7 | 0x36,
+ 31068 - 19968: jis0212<<14 | 0x2F<<7 | 0x37,
+ 31069 - 19968: jis0208<<14 | 0x1C<<7 | 0x2A,
+ 31070 - 19968: jis0208<<14 | 0x1E<<7 | 0x1F,
+ 31071 - 19968: jis0208<<14 | 0x42<<7 | 0x0D,
+ 31072 - 19968: jis0208<<14 | 0x42<<7 | 0x0B,
+ 31074 - 19968: jis0208<<14 | 0x26<<7 | 0x09,
+ 31077 - 19968: jis0208<<14 | 0x1D<<7 | 0x2C,
+ 31079 - 19968: jis0212<<14 | 0x2F<<7 | 0x38,
+ 31080 - 19968: jis0208<<14 | 0x28<<7 | 0x1B,
+ 31081 - 19968: jis0212<<14 | 0x2F<<7 | 0x39,
+ 31083 - 19968: jis0212<<14 | 0x2F<<7 | 0x3A,
+ 31085 - 19968: jis0208<<14 | 0x19<<7 | 0x36,
+ 31090 - 19968: jis0212<<14 | 0x2F<<7 | 0x3B,
+ 31095 - 19968: jis0208<<14 | 0x24<<7 | 0x57,
+ 31097 - 19968: jis0212<<14 | 0x2F<<7 | 0x3C,
+ 31098 - 19968: jis0208<<14 | 0x42<<7 | 0x11,
+ 31099 - 19968: jis0212<<14 | 0x2F<<7 | 0x3D,
+ 31100 - 19968: jis0212<<14 | 0x2F<<7 | 0x3E,
+ 31102 - 19968: jis0212<<14 | 0x2F<<7 | 0x3F,
+ 31103 - 19968: jis0208<<14 | 0x42<<7 | 0x12,
+ 31104 - 19968: jis0208<<14 | 0x42<<7 | 0x28,
+ 31105 - 19968: jis0208<<14 | 0x15<<7 | 0x37,
+ 31108 - 19968: jis0208<<14 | 0x2E<<7 | 0x1C,
+ 31109 - 19968: jis0208<<14 | 0x20<<7 | 0x14,
+ 31114 - 19968: jis0208<<14 | 0x42<<7 | 0x13,
+ 31115 - 19968: jis0212<<14 | 0x2F<<7 | 0x40,
+ 31116 - 19968: jis0212<<14 | 0x2F<<7 | 0x41,
+ 31117 - 19968: jis0208<<14 | 0x11<<7 | 0x31,
+ 31118 - 19968: jis0208<<14 | 0x23<<7 | 0x56,
+ 31119 - 19968: jis0208<<14 | 0x29<<7 | 0x00,
+ 31121 - 19968: jis0212<<14 | 0x2F<<7 | 0x42,
+ 31123 - 19968: jis0212<<14 | 0x2F<<7 | 0x43,
+ 31124 - 19968: jis0208<<14 | 0x5A<<7 | 0x24,
+ 31125 - 19968: jis0212<<14 | 0x2F<<7 | 0x45,
+ 31126 - 19968: jis0212<<14 | 0x2F<<7 | 0x46,
+ 31128 - 19968: jis0212<<14 | 0x2F<<7 | 0x47,
+ 31131 - 19968: jis0208<<14 | 0x5A<<7 | 0x26,
+ 31132 - 19968: jis0212<<14 | 0x2F<<7 | 0x49,
+ 31133 - 19968: jis0208<<14 | 0x42<<7 | 0x14,
+ 31137 - 19968: jis0212<<14 | 0x2F<<7 | 0x4A,
+ 31142 - 19968: jis0208<<14 | 0x14<<7 | 0x59,
+ 31143 - 19968: jis0208<<14 | 0x42<<7 | 0x15,
+ 31144 - 19968: jis0212<<14 | 0x2F<<7 | 0x4B,
+ 31145 - 19968: jis0212<<14 | 0x2F<<7 | 0x4C,
+ 31146 - 19968: jis0208<<14 | 0x42<<7 | 0x17,
+ 31147 - 19968: jis0212<<14 | 0x2F<<7 | 0x4D,
+ 31150 - 19968: jis0208<<14 | 0x42<<7 | 0x18,
+ 31151 - 19968: jis0212<<14 | 0x2F<<7 | 0x4E,
+ 31152 - 19968: jis0208<<14 | 0x26<<7 | 0x08,
+ 31153 - 19968: jis0212<<14 | 0x2F<<7 | 0x4F,
+ 31155 - 19968: jis0208<<14 | 0x42<<7 | 0x19,
+ 31156 - 19968: jis0212<<14 | 0x2F<<7 | 0x50,
+ 31160 - 19968: jis0212<<14 | 0x2F<<7 | 0x51,
+ 31161 - 19968: jis0208<<14 | 0x42<<7 | 0x1A,
+ 31162 - 19968: jis0208<<14 | 0x42<<7 | 0x1B,
+ 31163 - 19968: jis0212<<14 | 0x2F<<7 | 0x52,
+ 31165 - 19968: jis0208<<14 | 0x15<<7 | 0x38,
+ 31166 - 19968: jis0208<<14 | 0x11<<7 | 0x32,
+ 31167 - 19968: jis0208<<14 | 0x25<<7 | 0x24,
+ 31168 - 19968: jis0208<<14 | 0x1C<<7 | 0x07,
+ 31169 - 19968: jis0208<<14 | 0x1A<<7 | 0x43,
+ 31170 - 19968: jis0212<<14 | 0x2F<<7 | 0x53,
+ 31172 - 19968: jis0212<<14 | 0x2F<<7 | 0x54,
+ 31175 - 19968: jis0212<<14 | 0x2F<<7 | 0x55,
+ 31176 - 19968: jis0212<<14 | 0x2F<<7 | 0x56,
+ 31177 - 19968: jis0208<<14 | 0x42<<7 | 0x1C,
+ 31178 - 19968: jis0212<<14 | 0x2F<<7 | 0x57,
+ 31179 - 19968: jis0208<<14 | 0x1C<<7 | 0x08,
+ 31183 - 19968: jis0212<<14 | 0x2F<<7 | 0x58,
+ 31185 - 19968: jis0208<<14 | 0x11<<7 | 0x29,
+ 31186 - 19968: jis0208<<14 | 0x28<<7 | 0x22,
+ 31188 - 19968: jis0212<<14 | 0x2F<<7 | 0x59,
+ 31189 - 19968: jis0208<<14 | 0x42<<7 | 0x1D,
+ 31190 - 19968: jis0212<<14 | 0x2F<<7 | 0x5A,
+ 31192 - 19968: jis0208<<14 | 0x27<<7 | 0x4A,
+ 31194 - 19968: jis0212<<14 | 0x2F<<7 | 0x5B,
+ 31197 - 19968: jis0212<<14 | 0x2F<<7 | 0x5C,
+ 31198 - 19968: jis0212<<14 | 0x2F<<7 | 0x5D,
+ 31199 - 19968: jis0208<<14 | 0x20<<7 | 0x24,
+ 31200 - 19968: jis0212<<14 | 0x30<<7 | 0x00,
+ 31201 - 19968: jis0208<<14 | 0x42<<7 | 0x20,
+ 31202 - 19968: jis0212<<14 | 0x30<<7 | 0x01,
+ 31203 - 19968: jis0208<<14 | 0x42<<7 | 0x21,
+ 31204 - 19968: jis0208<<14 | 0x26<<7 | 0x48,
+ 31205 - 19968: jis0212<<14 | 0x30<<7 | 0x02,
+ 31206 - 19968: jis0208<<14 | 0x1E<<7 | 0x20,
+ 31207 - 19968: jis0208<<14 | 0x42<<7 | 0x1E,
+ 31209 - 19968: jis0208<<14 | 0x22<<7 | 0x40,
+ 31210 - 19968: jis0212<<14 | 0x30<<7 | 0x03,
+ 31211 - 19968: jis0212<<14 | 0x30<<7 | 0x04,
+ 31212 - 19968: jis0208<<14 | 0x42<<7 | 0x1F,
+ 31213 - 19968: jis0212<<14 | 0x30<<7 | 0x05,
+ 31216 - 19968: jis0208<<14 | 0x1D<<7 | 0x2D,
+ 31217 - 19968: jis0212<<14 | 0x30<<7 | 0x06,
+ 31224 - 19968: jis0212<<14 | 0x30<<7 | 0x07,
+ 31227 - 19968: jis0208<<14 | 0x0F<<7 | 0x3B,
+ 31228 - 19968: jis0212<<14 | 0x30<<7 | 0x08,
+ 31232 - 19968: jis0208<<14 | 0x14<<7 | 0x08,
+ 31234 - 19968: jis0212<<14 | 0x30<<7 | 0x09,
+ 31235 - 19968: jis0212<<14 | 0x30<<7 | 0x0A,
+ 31239 - 19968: jis0212<<14 | 0x30<<7 | 0x0B,
+ 31240 - 19968: jis0208<<14 | 0x42<<7 | 0x22,
+ 31241 - 19968: jis0212<<14 | 0x30<<7 | 0x0C,
+ 31242 - 19968: jis0212<<14 | 0x30<<7 | 0x0D,
+ 31243 - 19968: jis0208<<14 | 0x23<<7 | 0x57,
+ 31244 - 19968: jis0212<<14 | 0x30<<7 | 0x0E,
+ 31245 - 19968: jis0208<<14 | 0x42<<7 | 0x23,
+ 31246 - 19968: jis0208<<14 | 0x1F<<7 | 0x26,
+ 31249 - 19968: jis0212<<14 | 0x30<<7 | 0x0F,
+ 31252 - 19968: jis0208<<14 | 0x2B<<7 | 0x0C,
+ 31253 - 19968: jis0212<<14 | 0x30<<7 | 0x10,
+ 31255 - 19968: jis0208<<14 | 0x28<<7 | 0x02,
+ 31256 - 19968: jis0208<<14 | 0x42<<7 | 0x24,
+ 31257 - 19968: jis0208<<14 | 0x42<<7 | 0x25,
+ 31258 - 19968: jis0208<<14 | 0x22<<7 | 0x34,
+ 31259 - 19968: jis0212<<14 | 0x30<<7 | 0x11,
+ 31260 - 19968: jis0208<<14 | 0x2D<<7 | 0x26,
+ 31262 - 19968: jis0212<<14 | 0x30<<7 | 0x12,
+ 31263 - 19968: jis0208<<14 | 0x42<<7 | 0x27,
+ 31264 - 19968: jis0208<<14 | 0x42<<7 | 0x26,
+ 31265 - 19968: jis0212<<14 | 0x30<<7 | 0x13,
+ 31271 - 19968: jis0212<<14 | 0x30<<7 | 0x14,
+ 31275 - 19968: jis0212<<14 | 0x30<<7 | 0x15,
+ 31277 - 19968: jis0212<<14 | 0x30<<7 | 0x16,
+ 31278 - 19968: jis0208<<14 | 0x1B<<7 | 0x4E,
+ 31279 - 19968: jis0212<<14 | 0x30<<7 | 0x17,
+ 31280 - 19968: jis0212<<14 | 0x30<<7 | 0x18,
+ 31281 - 19968: jis0208<<14 | 0x42<<7 | 0x29,
+ 31282 - 19968: jis0208<<14 | 0x0F<<7 | 0x4F,
+ 31284 - 19968: jis0212<<14 | 0x30<<7 | 0x19,
+ 31285 - 19968: jis0212<<14 | 0x30<<7 | 0x1A,
+ 31287 - 19968: jis0208<<14 | 0x42<<7 | 0x2C,
+ 31288 - 19968: jis0212<<14 | 0x30<<7 | 0x1B,
+ 31289 - 19968: jis0212<<14 | 0x30<<7 | 0x1C,
+ 31290 - 19968: jis0212<<14 | 0x30<<7 | 0x1D,
+ 31291 - 19968: jis0208<<14 | 0x42<<7 | 0x2A,
+ 31292 - 19968: jis0208<<14 | 0x11<<7 | 0x33,
+ 31293 - 19968: jis0208<<14 | 0x16<<7 | 0x2D,
+ 31294 - 19968: jis0208<<14 | 0x42<<7 | 0x2B,
+ 31295 - 19968: jis0208<<14 | 0x18<<7 | 0x25,
+ 31296 - 19968: jis0208<<14 | 0x18<<7 | 0x51,
+ 31298 - 19968: jis0208<<14 | 0x29<<7 | 0x45,
+ 31299 - 19968: jis0208<<14 | 0x42<<7 | 0x2D,
+ 31300 - 19968: jis0212<<14 | 0x30<<7 | 0x1E,
+ 31301 - 19968: jis0212<<14 | 0x30<<7 | 0x1F,
+ 31302 - 19968: jis0208<<14 | 0x2A<<7 | 0x33,
+ 31303 - 19968: jis0212<<14 | 0x30<<7 | 0x20,
+ 31304 - 19968: jis0212<<14 | 0x30<<7 | 0x21,
+ 31305 - 19968: jis0208<<14 | 0x42<<7 | 0x2F,
+ 31308 - 19968: jis0212<<14 | 0x30<<7 | 0x22,
+ 31309 - 19968: jis0208<<14 | 0x1F<<7 | 0x30,
+ 31310 - 19968: jis0208<<14 | 0x10<<7 | 0x2E,
+ 31311 - 19968: jis0208<<14 | 0x11<<7 | 0x19,
+ 31312 - 19968: jis0208<<14 | 0x0F<<7 | 0x0B,
+ 31317 - 19968: jis0212<<14 | 0x30<<7 | 0x23,
+ 31318 - 19968: jis0212<<14 | 0x30<<7 | 0x24,
+ 31319 - 19968: jis0208<<14 | 0x42<<7 | 0x2E,
+ 31321 - 19968: jis0212<<14 | 0x30<<7 | 0x25,
+ 31324 - 19968: jis0212<<14 | 0x30<<7 | 0x26,
+ 31325 - 19968: jis0212<<14 | 0x30<<7 | 0x27,
+ 31327 - 19968: jis0212<<14 | 0x30<<7 | 0x28,
+ 31328 - 19968: jis0212<<14 | 0x30<<7 | 0x29,
+ 31329 - 19968: jis0208<<14 | 0x42<<7 | 0x30,
+ 31330 - 19968: jis0208<<14 | 0x42<<7 | 0x31,
+ 31331 - 19968: jis0208<<14 | 0x1D<<7 | 0x56,
+ 31333 - 19968: jis0212<<14 | 0x30<<7 | 0x2A,
+ 31335 - 19968: jis0212<<14 | 0x30<<7 | 0x2B,
+ 31337 - 19968: jis0208<<14 | 0x42<<7 | 0x32,
+ 31338 - 19968: jis0212<<14 | 0x30<<7 | 0x2C,
+ 31339 - 19968: jis0208<<14 | 0x12<<7 | 0x2E,
+ 31341 - 19968: jis0212<<14 | 0x30<<7 | 0x2D,
+ 31344 - 19968: jis0208<<14 | 0x42<<7 | 0x34,
+ 31348 - 19968: jis0208<<14 | 0x16<<7 | 0x49,
+ 31349 - 19968: jis0212<<14 | 0x30<<7 | 0x2E,
+ 31350 - 19968: jis0208<<14 | 0x14<<7 | 0x45,
+ 31352 - 19968: jis0212<<14 | 0x30<<7 | 0x2F,
+ 31353 - 19968: jis0208<<14 | 0x42<<7 | 0x35,
+ 31354 - 19968: jis0208<<14 | 0x15<<7 | 0x54,
+ 31357 - 19968: jis0208<<14 | 0x42<<7 | 0x36,
+ 31358 - 19968: jis0212<<14 | 0x30<<7 | 0x30,
+ 31359 - 19968: jis0208<<14 | 0x1F<<7 | 0x5B,
+ 31360 - 19968: jis0212<<14 | 0x30<<7 | 0x31,
+ 31361 - 19968: jis0208<<14 | 0x25<<7 | 0x2C,
+ 31362 - 19968: jis0212<<14 | 0x30<<7 | 0x32,
+ 31363 - 19968: jis0208<<14 | 0x1F<<7 | 0x3F,
+ 31364 - 19968: jis0208<<14 | 0x19<<7 | 0x54,
+ 31365 - 19968: jis0212<<14 | 0x30<<7 | 0x33,
+ 31366 - 19968: jis0212<<14 | 0x30<<7 | 0x34,
+ 31368 - 19968: jis0208<<14 | 0x42<<7 | 0x37,
+ 31370 - 19968: jis0212<<14 | 0x30<<7 | 0x35,
+ 31371 - 19968: jis0212<<14 | 0x30<<7 | 0x36,
+ 31376 - 19968: jis0212<<14 | 0x30<<7 | 0x37,
+ 31377 - 19968: jis0212<<14 | 0x30<<7 | 0x38,
+ 31378 - 19968: jis0208<<14 | 0x22<<7 | 0x41,
+ 31379 - 19968: jis0208<<14 | 0x20<<7 | 0x4A,
+ 31380 - 19968: jis0212<<14 | 0x30<<7 | 0x39,
+ 31381 - 19968: jis0208<<14 | 0x42<<7 | 0x39,
+ 31382 - 19968: jis0208<<14 | 0x42<<7 | 0x3B,
+ 31383 - 19968: jis0208<<14 | 0x42<<7 | 0x38,
+ 31384 - 19968: jis0208<<14 | 0x42<<7 | 0x3A,
+ 31390 - 19968: jis0212<<14 | 0x30<<7 | 0x3A,
+ 31391 - 19968: jis0208<<14 | 0x16<<7 | 0x01,
+ 31392 - 19968: jis0212<<14 | 0x30<<7 | 0x3B,
+ 31395 - 19968: jis0212<<14 | 0x30<<7 | 0x3C,
+ 31401 - 19968: jis0208<<14 | 0x42<<7 | 0x3C,
+ 31402 - 19968: jis0208<<14 | 0x16<<7 | 0x05,
+ 31404 - 19968: jis0212<<14 | 0x30<<7 | 0x3D,
+ 31406 - 19968: jis0208<<14 | 0x14<<7 | 0x46,
+ 31407 - 19968: jis0208<<14 | 0x2C<<7 | 0x31,
+ 31408 - 19968: jis0208<<14 | 0x42<<7 | 0x3E,
+ 31411 - 19968: jis0212<<14 | 0x30<<7 | 0x3E,
+ 31413 - 19968: jis0212<<14 | 0x30<<7 | 0x3F,
+ 31414 - 19968: jis0208<<14 | 0x42<<7 | 0x3F,
+ 31417 - 19968: jis0212<<14 | 0x30<<7 | 0x40,
+ 31418 - 19968: jis0208<<14 | 0x10<<7 | 0x0D,
+ 31419 - 19968: jis0212<<14 | 0x30<<7 | 0x41,
+ 31420 - 19968: jis0212<<14 | 0x30<<7 | 0x42,
+ 31423 - 19968: jis0208<<14 | 0x42<<7 | 0x42,
+ 31427 - 19968: jis0208<<14 | 0x12<<7 | 0x55,
+ 31428 - 19968: jis0208<<14 | 0x42<<7 | 0x41,
+ 31429 - 19968: jis0208<<14 | 0x42<<7 | 0x40,
+ 31430 - 19968: jis0212<<14 | 0x30<<7 | 0x43,
+ 31431 - 19968: jis0208<<14 | 0x42<<7 | 0x44,
+ 31432 - 19968: jis0208<<14 | 0x42<<7 | 0x3D,
+ 31433 - 19968: jis0212<<14 | 0x30<<7 | 0x44,
+ 31434 - 19968: jis0208<<14 | 0x42<<7 | 0x45,
+ 31435 - 19968: jis0208<<14 | 0x2D<<7 | 0x08,
+ 31436 - 19968: jis0212<<14 | 0x30<<7 | 0x45,
+ 31437 - 19968: jis0208<<14 | 0x42<<7 | 0x46,
+ 31438 - 19968: jis0212<<14 | 0x30<<7 | 0x46,
+ 31439 - 19968: jis0208<<14 | 0x42<<7 | 0x47,
+ 31441 - 19968: jis0208<<14 | 0x5A<<7 | 0x27,
+ 31442 - 19968: jis0208<<14 | 0x33<<7 | 0x53,
+ 31443 - 19968: jis0208<<14 | 0x42<<7 | 0x49,
+ 31445 - 19968: jis0208<<14 | 0x42<<7 | 0x48,
+ 31449 - 19968: jis0208<<14 | 0x42<<7 | 0x4A,
+ 31450 - 19968: jis0208<<14 | 0x42<<7 | 0x4B,
+ 31451 - 19968: jis0212<<14 | 0x30<<7 | 0x48,
+ 31452 - 19968: jis0208<<14 | 0x2D<<7 | 0x14,
+ 31453 - 19968: jis0208<<14 | 0x42<<7 | 0x4C,
+ 31455 - 19968: jis0208<<14 | 0x4F<<7 | 0x4E,
+ 31456 - 19968: jis0208<<14 | 0x1D<<7 | 0x2E,
+ 31457 - 19968: jis0208<<14 | 0x42<<7 | 0x4D,
+ 31458 - 19968: jis0208<<14 | 0x42<<7 | 0x4E,
+ 31459 - 19968: jis0208<<14 | 0x1C<<7 | 0x36,
+ 31461 - 19968: jis0208<<14 | 0x25<<7 | 0x17,
+ 31462 - 19968: jis0208<<14 | 0x42<<7 | 0x4F,
+ 31463 - 19968: jis0208<<14 | 0x5A<<7 | 0x28,
+ 31464 - 19968: jis0212<<14 | 0x30<<7 | 0x49,
+ 31465 - 19968: jis0212<<14 | 0x30<<7 | 0x4A,
+ 31466 - 19968: jis0208<<14 | 0x22<<7 | 0x07,
+ 31467 - 19968: jis0208<<14 | 0x5A<<7 | 0x2A,
+ 31468 - 19968: jis0212<<14 | 0x30<<7 | 0x4C,
+ 31469 - 19968: jis0208<<14 | 0x42<<7 | 0x50,
+ 31471 - 19968: jis0208<<14 | 0x22<<7 | 0x1B,
+ 31472 - 19968: jis0208<<14 | 0x42<<7 | 0x51,
+ 31473 - 19968: jis0212<<14 | 0x30<<7 | 0x4D,
+ 31476 - 19968: jis0212<<14 | 0x30<<7 | 0x4E,
+ 31478 - 19968: jis0208<<14 | 0x15<<7 | 0x04,
+ 31480 - 19968: jis0208<<14 | 0x30<<7 | 0x1E,
+ 31481 - 19968: jis0208<<14 | 0x22<<7 | 0x3C,
+ 31482 - 19968: jis0208<<14 | 0x1B<<7 | 0x12,
+ 31483 - 19968: jis0212<<14 | 0x30<<7 | 0x4F,
+ 31485 - 19968: jis0212<<14 | 0x30<<7 | 0x50,
+ 31486 - 19968: jis0212<<14 | 0x30<<7 | 0x51,
+ 31487 - 19968: jis0208<<14 | 0x13<<7 | 0x27,
+ 31490 - 19968: jis0208<<14 | 0x42<<7 | 0x52,
+ 31492 - 19968: jis0208<<14 | 0x43<<7 | 0x01,
+ 31494 - 19968: jis0208<<14 | 0x42<<7 | 0x55,
+ 31495 - 19968: jis0212<<14 | 0x30<<7 | 0x52,
+ 31496 - 19968: jis0208<<14 | 0x14<<7 | 0x47,
+ 31498 - 19968: jis0208<<14 | 0x42<<7 | 0x54,
+ 31499 - 19968: jis0208<<14 | 0x43<<7 | 0x03,
+ 31503 - 19968: jis0208<<14 | 0x42<<7 | 0x53,
+ 31505 - 19968: jis0208<<14 | 0x1D<<7 | 0x2F,
+ 31508 - 19968: jis0212<<14 | 0x30<<7 | 0x53,
+ 31512 - 19968: jis0208<<14 | 0x42<<7 | 0x57,
+ 31513 - 19968: jis0208<<14 | 0x42<<7 | 0x58,
+ 31515 - 19968: jis0208<<14 | 0x24<<7 | 0x0A,
+ 31518 - 19968: jis0208<<14 | 0x42<<7 | 0x59,
+ 31519 - 19968: jis0212<<14 | 0x30<<7 | 0x54,
+ 31520 - 19968: jis0208<<14 | 0x12<<7 | 0x3D,
+ 31523 - 19968: jis0212<<14 | 0x30<<7 | 0x55,
+ 31525 - 19968: jis0208<<14 | 0x1E<<7 | 0x39,
+ 31526 - 19968: jis0208<<14 | 0x28<<7 | 0x43,
+ 31527 - 19968: jis0212<<14 | 0x30<<7 | 0x56,
+ 31528 - 19968: jis0208<<14 | 0x42<<7 | 0x5B,
+ 31529 - 19968: jis0212<<14 | 0x30<<7 | 0x57,
+ 31530 - 19968: jis0212<<14 | 0x30<<7 | 0x58,
+ 31531 - 19968: jis0212<<14 | 0x30<<7 | 0x59,
+ 31532 - 19968: jis0208<<14 | 0x21<<7 | 0x47,
+ 31533 - 19968: jis0212<<14 | 0x30<<7 | 0x5A,
+ 31534 - 19968: jis0212<<14 | 0x30<<7 | 0x5B,
+ 31535 - 19968: jis0212<<14 | 0x30<<7 | 0x5C,
+ 31536 - 19968: jis0212<<14 | 0x30<<7 | 0x5D,
+ 31537 - 19968: jis0212<<14 | 0x31<<7 | 0x00,
+ 31539 - 19968: jis0208<<14 | 0x42<<7 | 0x56,
+ 31540 - 19968: jis0212<<14 | 0x31<<7 | 0x01,
+ 31541 - 19968: jis0208<<14 | 0x42<<7 | 0x5A,
+ 31542 - 19968: jis0208<<14 | 0x42<<7 | 0x5C,
+ 31545 - 19968: jis0208<<14 | 0x19<<7 | 0x5A,
+ 31549 - 19968: jis0212<<14 | 0x31<<7 | 0x02,
+ 31551 - 19968: jis0212<<14 | 0x31<<7 | 0x03,
+ 31552 - 19968: jis0212<<14 | 0x31<<7 | 0x04,
+ 31553 - 19968: jis0212<<14 | 0x31<<7 | 0x05,
+ 31557 - 19968: jis0208<<14 | 0x43<<7 | 0x05,
+ 31558 - 19968: jis0208<<14 | 0x28<<7 | 0x0D,
+ 31559 - 19968: jis0212<<14 | 0x31<<7 | 0x06,
+ 31560 - 19968: jis0208<<14 | 0x27<<7 | 0x05,
+ 31561 - 19968: jis0208<<14 | 0x24<<7 | 0x58,
+ 31563 - 19968: jis0208<<14 | 0x15<<7 | 0x39,
+ 31564 - 19968: jis0208<<14 | 0x43<<7 | 0x04,
+ 31565 - 19968: jis0208<<14 | 0x43<<7 | 0x02,
+ 31566 - 19968: jis0212<<14 | 0x31<<7 | 0x07,
+ 31567 - 19968: jis0208<<14 | 0x27<<7 | 0x14,
+ 31568 - 19968: jis0208<<14 | 0x42<<7 | 0x5D,
+ 31569 - 19968: jis0208<<14 | 0x22<<7 | 0x3D,
+ 31570 - 19968: jis0208<<14 | 0x24<<7 | 0x5A,
+ 31572 - 19968: jis0208<<14 | 0x24<<7 | 0x59,
+ 31573 - 19968: jis0212<<14 | 0x31<<7 | 0x08,
+ 31574 - 19968: jis0208<<14 | 0x19<<7 | 0x55,
+ 31581 - 19968: jis0208<<14 | 0x43<<7 | 0x17,
+ 31584 - 19968: jis0212<<14 | 0x31<<7 | 0x09,
+ 31588 - 19968: jis0212<<14 | 0x31<<7 | 0x0A,
+ 31589 - 19968: jis0208<<14 | 0x43<<7 | 0x07,
+ 31590 - 19968: jis0212<<14 | 0x31<<7 | 0x0B,
+ 31591 - 19968: jis0208<<14 | 0x43<<7 | 0x09,
+ 31593 - 19968: jis0212<<14 | 0x31<<7 | 0x0C,
+ 31594 - 19968: jis0212<<14 | 0x31<<7 | 0x0D,
+ 31596 - 19968: jis0208<<14 | 0x43<<7 | 0x0C,
+ 31597 - 19968: jis0212<<14 | 0x31<<7 | 0x0E,
+ 31598 - 19968: jis0208<<14 | 0x43<<7 | 0x0D,
+ 31599 - 19968: jis0212<<14 | 0x31<<7 | 0x0F,
+ 31600 - 19968: jis0208<<14 | 0x43<<7 | 0x0A,
+ 31601 - 19968: jis0208<<14 | 0x43<<7 | 0x0B,
+ 31602 - 19968: jis0212<<14 | 0x31<<7 | 0x10,
+ 31603 - 19968: jis0212<<14 | 0x31<<7 | 0x11,
+ 31604 - 19968: jis0208<<14 | 0x43<<7 | 0x08,
+ 31605 - 19968: jis0208<<14 | 0x43<<7 | 0x06,
+ 31607 - 19968: jis0212<<14 | 0x31<<7 | 0x12,
+ 31610 - 19968: jis0208<<14 | 0x43<<7 | 0x00,
+ 31620 - 19968: jis0212<<14 | 0x31<<7 | 0x13,
+ 31622 - 19968: jis0208<<14 | 0x29<<7 | 0x2E,
+ 31623 - 19968: jis0208<<14 | 0x11<<7 | 0x34,
+ 31625 - 19968: jis0212<<14 | 0x31<<7 | 0x14,
+ 31627 - 19968: jis0208<<14 | 0x43<<7 | 0x14,
+ 31629 - 19968: jis0208<<14 | 0x43<<7 | 0x11,
+ 31630 - 19968: jis0212<<14 | 0x31<<7 | 0x15,
+ 31631 - 19968: jis0208<<14 | 0x43<<7 | 0x16,
+ 31632 - 19968: jis0212<<14 | 0x31<<7 | 0x16,
+ 31633 - 19968: jis0212<<14 | 0x31<<7 | 0x17,
+ 31634 - 19968: jis0208<<14 | 0x43<<7 | 0x15,
+ 31636 - 19968: jis0208<<14 | 0x26<<7 | 0x52,
+ 31637 - 19968: jis0208<<14 | 0x2B<<7 | 0x06,
+ 31638 - 19968: jis0212<<14 | 0x31<<7 | 0x18,
+ 31639 - 19968: jis0208<<14 | 0x1A<<7 | 0x1A,
+ 31640 - 19968: jis0208<<14 | 0x43<<7 | 0x0F,
+ 31641 - 19968: jis0208<<14 | 0x43<<7 | 0x18,
+ 31642 - 19968: jis0208<<14 | 0x43<<7 | 0x13,
+ 31643 - 19968: jis0212<<14 | 0x31<<7 | 0x19,
+ 31644 - 19968: jis0208<<14 | 0x43<<7 | 0x12,
+ 31645 - 19968: jis0208<<14 | 0x43<<7 | 0x0E,
+ 31646 - 19968: jis0208<<14 | 0x5A<<7 | 0x2B,
+ 31647 - 19968: jis0208<<14 | 0x43<<7 | 0x10,
+ 31648 - 19968: jis0212<<14 | 0x31<<7 | 0x1B,
+ 31649 - 19968: jis0208<<14 | 0x13<<7 | 0x28,
+ 31653 - 19968: jis0212<<14 | 0x31<<7 | 0x1C,
+ 31658 - 19968: jis0208<<14 | 0x22<<7 | 0x1C,
+ 31660 - 19968: jis0212<<14 | 0x31<<7 | 0x1D,
+ 31661 - 19968: jis0208<<14 | 0x1F<<7 | 0x5C,
+ 31663 - 19968: jis0212<<14 | 0x31<<7 | 0x1E,
+ 31664 - 19968: jis0212<<14 | 0x31<<7 | 0x1F,
+ 31665 - 19968: jis0208<<14 | 0x27<<7 | 0x01,
+ 31666 - 19968: jis0212<<14 | 0x31<<7 | 0x20,
+ 31668 - 19968: jis0208<<14 | 0x43<<7 | 0x1D,
+ 31669 - 19968: jis0212<<14 | 0x31<<7 | 0x21,
+ 31670 - 19968: jis0212<<14 | 0x31<<7 | 0x22,
+ 31672 - 19968: jis0208<<14 | 0x27<<7 | 0x03,
+ 31674 - 19968: jis0212<<14 | 0x31<<7 | 0x23,
+ 31675 - 19968: jis0212<<14 | 0x31<<7 | 0x24,
+ 31676 - 19968: jis0212<<14 | 0x31<<7 | 0x25,
+ 31677 - 19968: jis0212<<14 | 0x31<<7 | 0x26,
+ 31680 - 19968: jis0208<<14 | 0x1F<<7 | 0x40,
+ 31681 - 19968: jis0208<<14 | 0x43<<7 | 0x1A,
+ 31682 - 19968: jis0212<<14 | 0x31<<7 | 0x27,
+ 31684 - 19968: jis0208<<14 | 0x27<<7 | 0x2E,
+ 31685 - 19968: jis0212<<14 | 0x31<<7 | 0x28,
+ 31686 - 19968: jis0208<<14 | 0x43<<7 | 0x1E,
+ 31687 - 19968: jis0208<<14 | 0x29<<7 | 0x32,
+ 31688 - 19968: jis0212<<14 | 0x31<<7 | 0x29,
+ 31689 - 19968: jis0208<<14 | 0x22<<7 | 0x3A,
+ 31690 - 19968: jis0212<<14 | 0x31<<7 | 0x2A,
+ 31691 - 19968: jis0208<<14 | 0x43<<7 | 0x19,
+ 31692 - 19968: jis0208<<14 | 0x43<<7 | 0x1B,
+ 31695 - 19968: jis0208<<14 | 0x43<<7 | 0x1C,
+ 31700 - 19968: jis0212<<14 | 0x31<<7 | 0x2B,
+ 31702 - 19968: jis0212<<14 | 0x31<<7 | 0x2C,
+ 31703 - 19968: jis0212<<14 | 0x31<<7 | 0x2D,
+ 31705 - 19968: jis0212<<14 | 0x31<<7 | 0x2E,
+ 31706 - 19968: jis0212<<14 | 0x31<<7 | 0x2F,
+ 31707 - 19968: jis0212<<14 | 0x31<<7 | 0x30,
+ 31709 - 19968: jis0208<<14 | 0x43<<7 | 0x1F,
+ 31712 - 19968: jis0208<<14 | 0x1B<<7 | 0x23,
+ 31716 - 19968: jis0208<<14 | 0x25<<7 | 0x25,
+ 31717 - 19968: jis0208<<14 | 0x43<<7 | 0x24,
+ 31718 - 19968: jis0208<<14 | 0x43<<7 | 0x23,
+ 31720 - 19968: jis0212<<14 | 0x31<<7 | 0x31,
+ 31721 - 19968: jis0208<<14 | 0x43<<7 | 0x20,
+ 31722 - 19968: jis0212<<14 | 0x31<<7 | 0x32,
+ 31725 - 19968: jis0208<<14 | 0x2E<<7 | 0x15,
+ 31730 - 19968: jis0212<<14 | 0x31<<7 | 0x33,
+ 31731 - 19968: jis0208<<14 | 0x43<<7 | 0x29,
+ 31732 - 19968: jis0212<<14 | 0x31<<7 | 0x34,
+ 31733 - 19968: jis0212<<14 | 0x31<<7 | 0x35,
+ 31734 - 19968: jis0208<<14 | 0x43<<7 | 0x2D,
+ 31735 - 19968: jis0208<<14 | 0x43<<7 | 0x2A,
+ 31736 - 19968: jis0212<<14 | 0x31<<7 | 0x36,
+ 31737 - 19968: jis0212<<14 | 0x31<<7 | 0x37,
+ 31738 - 19968: jis0212<<14 | 0x31<<7 | 0x38,
+ 31740 - 19968: jis0212<<14 | 0x31<<7 | 0x39,
+ 31742 - 19968: jis0212<<14 | 0x31<<7 | 0x3A,
+ 31744 - 19968: jis0208<<14 | 0x43<<7 | 0x26,
+ 31745 - 19968: jis0212<<14 | 0x31<<7 | 0x3B,
+ 31746 - 19968: jis0212<<14 | 0x31<<7 | 0x3C,
+ 31747 - 19968: jis0212<<14 | 0x31<<7 | 0x3D,
+ 31748 - 19968: jis0212<<14 | 0x31<<7 | 0x3E,
+ 31750 - 19968: jis0212<<14 | 0x31<<7 | 0x3F,
+ 31751 - 19968: jis0208<<14 | 0x43<<7 | 0x27,
+ 31753 - 19968: jis0212<<14 | 0x31<<7 | 0x40,
+ 31755 - 19968: jis0212<<14 | 0x31<<7 | 0x41,
+ 31756 - 19968: jis0212<<14 | 0x31<<7 | 0x42,
+ 31757 - 19968: jis0208<<14 | 0x43<<7 | 0x2C,
+ 31758 - 19968: jis0212<<14 | 0x31<<7 | 0x43,
+ 31759 - 19968: jis0212<<14 | 0x31<<7 | 0x44,
+ 31761 - 19968: jis0208<<14 | 0x43<<7 | 0x21,
+ 31762 - 19968: jis0208<<14 | 0x31<<7 | 0x34,
+ 31763 - 19968: jis0208<<14 | 0x43<<7 | 0x28,
+ 31764 - 19968: jis0208<<14 | 0x43<<7 | 0x22,
+ 31767 - 19968: jis0208<<14 | 0x43<<7 | 0x2B,
+ 31769 - 19968: jis0212<<14 | 0x31<<7 | 0x45,
+ 31771 - 19968: jis0212<<14 | 0x31<<7 | 0x46,
+ 31775 - 19968: jis0208<<14 | 0x43<<7 | 0x31,
+ 31776 - 19968: jis0212<<14 | 0x31<<7 | 0x47,
+ 31777 - 19968: jis0208<<14 | 0x13<<7 | 0x29,
+ 31779 - 19968: jis0208<<14 | 0x43<<7 | 0x2E,
+ 31781 - 19968: jis0212<<14 | 0x31<<7 | 0x48,
+ 31782 - 19968: jis0212<<14 | 0x31<<7 | 0x49,
+ 31783 - 19968: jis0208<<14 | 0x43<<7 | 0x2F,
+ 31784 - 19968: jis0212<<14 | 0x31<<7 | 0x4A,
+ 31786 - 19968: jis0208<<14 | 0x43<<7 | 0x30,
+ 31787 - 19968: jis0208<<14 | 0x43<<7 | 0x33,
+ 31788 - 19968: jis0212<<14 | 0x31<<7 | 0x4B,
+ 31793 - 19968: jis0212<<14 | 0x31<<7 | 0x4C,
+ 31795 - 19968: jis0212<<14 | 0x31<<7 | 0x4D,
+ 31796 - 19968: jis0212<<14 | 0x31<<7 | 0x4E,
+ 31798 - 19968: jis0212<<14 | 0x31<<7 | 0x4F,
+ 31799 - 19968: jis0208<<14 | 0x43<<7 | 0x32,
+ 31800 - 19968: jis0208<<14 | 0x27<<7 | 0x55,
+ 31801 - 19968: jis0212<<14 | 0x31<<7 | 0x50,
+ 31802 - 19968: jis0212<<14 | 0x31<<7 | 0x51,
+ 31805 - 19968: jis0208<<14 | 0x43<<7 | 0x34,
+ 31806 - 19968: jis0208<<14 | 0x2D<<7 | 0x5B,
+ 31807 - 19968: jis0208<<14 | 0x29<<7 | 0x4C,
+ 31808 - 19968: jis0208<<14 | 0x43<<7 | 0x39,
+ 31811 - 19968: jis0208<<14 | 0x43<<7 | 0x36,
+ 31814 - 19968: jis0212<<14 | 0x31<<7 | 0x52,
+ 31818 - 19968: jis0212<<14 | 0x31<<7 | 0x53,
+ 31820 - 19968: jis0208<<14 | 0x43<<7 | 0x35,
+ 31821 - 19968: jis0208<<14 | 0x1F<<7 | 0x31,
+ 31823 - 19968: jis0208<<14 | 0x43<<7 | 0x38,
+ 31824 - 19968: jis0208<<14 | 0x43<<7 | 0x3A,
+ 31825 - 19968: jis0212<<14 | 0x31<<7 | 0x55,
+ 31826 - 19968: jis0212<<14 | 0x31<<7 | 0x56,
+ 31827 - 19968: jis0212<<14 | 0x31<<7 | 0x57,
+ 31828 - 19968: jis0208<<14 | 0x43<<7 | 0x37,
+ 31829 - 19968: jis0212<<14 | 0x31<<7 | 0x54,
+ 31830 - 19968: jis0208<<14 | 0x43<<7 | 0x3E,
+ 31832 - 19968: jis0208<<14 | 0x43<<7 | 0x3B,
+ 31833 - 19968: jis0212<<14 | 0x31<<7 | 0x58,
+ 31834 - 19968: jis0212<<14 | 0x31<<7 | 0x59,
+ 31835 - 19968: jis0212<<14 | 0x31<<7 | 0x5A,
+ 31836 - 19968: jis0212<<14 | 0x31<<7 | 0x5B,
+ 31837 - 19968: jis0212<<14 | 0x31<<7 | 0x5C,
+ 31838 - 19968: jis0212<<14 | 0x31<<7 | 0x5D,
+ 31839 - 19968: jis0208<<14 | 0x43<<7 | 0x3C,
+ 31840 - 19968: jis0208<<14 | 0x43<<7 | 0x25,
+ 31841 - 19968: jis0212<<14 | 0x32<<7 | 0x00,
+ 31843 - 19968: jis0212<<14 | 0x32<<7 | 0x01,
+ 31844 - 19968: jis0208<<14 | 0x43<<7 | 0x3D,
+ 31845 - 19968: jis0208<<14 | 0x43<<7 | 0x3F,
+ 31847 - 19968: jis0212<<14 | 0x32<<7 | 0x02,
+ 31849 - 19968: jis0212<<14 | 0x32<<7 | 0x03,
+ 31852 - 19968: jis0208<<14 | 0x43<<7 | 0x40,
+ 31853 - 19968: jis0212<<14 | 0x32<<7 | 0x04,
+ 31854 - 19968: jis0212<<14 | 0x32<<7 | 0x05,
+ 31856 - 19968: jis0212<<14 | 0x32<<7 | 0x06,
+ 31858 - 19968: jis0212<<14 | 0x32<<7 | 0x07,
+ 31859 - 19968: jis0208<<14 | 0x29<<7 | 0x25,
+ 31861 - 19968: jis0208<<14 | 0x43<<7 | 0x41,
+ 31865 - 19968: jis0212<<14 | 0x32<<7 | 0x08,
+ 31868 - 19968: jis0212<<14 | 0x32<<7 | 0x09,
+ 31869 - 19968: jis0212<<14 | 0x32<<7 | 0x0A,
+ 31870 - 19968: jis0208<<14 | 0x2B<<7 | 0x41,
+ 31873 - 19968: jis0208<<14 | 0x15<<7 | 0x2D,
+ 31874 - 19968: jis0208<<14 | 0x16<<7 | 0x08,
+ 31875 - 19968: jis0208<<14 | 0x43<<7 | 0x42,
+ 31878 - 19968: jis0212<<14 | 0x32<<7 | 0x0B,
+ 31879 - 19968: jis0212<<14 | 0x32<<7 | 0x0C,
+ 31881 - 19968: jis0208<<14 | 0x29<<7 | 0x13,
+ 31883 - 19968: jis0208<<14 | 0x1E<<7 | 0x47,
+ 31885 - 19968: jis0208<<14 | 0x2B<<7 | 0x0F,
+ 31887 - 19968: jis0212<<14 | 0x32<<7 | 0x0D,
+ 31888 - 19968: jis0208<<14 | 0x43<<7 | 0x43,
+ 31890 - 19968: jis0208<<14 | 0x2D<<7 | 0x12,
+ 31892 - 19968: jis0212<<14 | 0x32<<7 | 0x0E,
+ 31893 - 19968: jis0208<<14 | 0x26<<7 | 0x53,
+ 31895 - 19968: jis0208<<14 | 0x20<<7 | 0x25,
+ 31896 - 19968: jis0208<<14 | 0x26<<7 | 0x13,
+ 31899 - 19968: jis0208<<14 | 0x1C<<7 | 0x2C,
+ 31902 - 19968: jis0212<<14 | 0x32<<7 | 0x0F,
+ 31903 - 19968: jis0208<<14 | 0x0F<<7 | 0x1F,
+ 31904 - 19968: jis0212<<14 | 0x32<<7 | 0x10,
+ 31905 - 19968: jis0208<<14 | 0x43<<7 | 0x48,
+ 31906 - 19968: jis0208<<14 | 0x43<<7 | 0x46,
+ 31908 - 19968: jis0208<<14 | 0x43<<7 | 0x44,
+ 31909 - 19968: jis0208<<14 | 0x13<<7 | 0x00,
+ 31910 - 19968: jis0212<<14 | 0x32<<7 | 0x11,
+ 31911 - 19968: jis0208<<14 | 0x1D<<7 | 0x30,
+ 31912 - 19968: jis0208<<14 | 0x43<<7 | 0x49,
+ 31915 - 19968: jis0208<<14 | 0x43<<7 | 0x47,
+ 31917 - 19968: jis0208<<14 | 0x43<<7 | 0x45,
+ 31918 - 19968: jis0208<<14 | 0x43<<7 | 0x4D,
+ 31920 - 19968: jis0212<<14 | 0x32<<7 | 0x12,
+ 31921 - 19968: jis0208<<14 | 0x43<<7 | 0x4C,
+ 31922 - 19968: jis0208<<14 | 0x43<<7 | 0x4B,
+ 31923 - 19968: jis0208<<14 | 0x43<<7 | 0x4A,
+ 31926 - 19968: jis0212<<14 | 0x32<<7 | 0x13,
+ 31927 - 19968: jis0212<<14 | 0x32<<7 | 0x14,
+ 31929 - 19968: jis0208<<14 | 0x43<<7 | 0x4E,
+ 31930 - 19968: jis0212<<14 | 0x32<<7 | 0x15,
+ 31931 - 19968: jis0212<<14 | 0x32<<7 | 0x16,
+ 31932 - 19968: jis0212<<14 | 0x32<<7 | 0x17,
+ 31933 - 19968: jis0208<<14 | 0x43<<7 | 0x4F,
+ 31934 - 19968: jis0208<<14 | 0x1F<<7 | 0x19,
+ 31935 - 19968: jis0212<<14 | 0x32<<7 | 0x18,
+ 31936 - 19968: jis0208<<14 | 0x43<<7 | 0x50,
+ 31938 - 19968: jis0208<<14 | 0x43<<7 | 0x52,
+ 31940 - 19968: jis0212<<14 | 0x32<<7 | 0x19,
+ 31941 - 19968: jis0208<<14 | 0x43<<7 | 0x51,
+ 31943 - 19968: jis0212<<14 | 0x32<<7 | 0x1A,
+ 31944 - 19968: jis0212<<14 | 0x32<<7 | 0x1B,
+ 31945 - 19968: jis0212<<14 | 0x32<<7 | 0x1C,
+ 31946 - 19968: jis0208<<14 | 0x17<<7 | 0x31,
+ 31949 - 19968: jis0212<<14 | 0x32<<7 | 0x1D,
+ 31950 - 19968: jis0208<<14 | 0x20<<7 | 0x17,
+ 31951 - 19968: jis0212<<14 | 0x32<<7 | 0x1E,
+ 31954 - 19968: jis0208<<14 | 0x43<<7 | 0x54,
+ 31955 - 19968: jis0212<<14 | 0x32<<7 | 0x1F,
+ 31956 - 19968: jis0212<<14 | 0x32<<7 | 0x20,
+ 31957 - 19968: jis0212<<14 | 0x32<<7 | 0x21,
+ 31958 - 19968: jis0208<<14 | 0x24<<7 | 0x5B,
+ 31959 - 19968: jis0212<<14 | 0x32<<7 | 0x22,
+ 31960 - 19968: jis0208<<14 | 0x43<<7 | 0x53,
+ 31961 - 19968: jis0212<<14 | 0x32<<7 | 0x23,
+ 31962 - 19968: jis0212<<14 | 0x32<<7 | 0x24,
+ 31964 - 19968: jis0208<<14 | 0x43<<7 | 0x55,
+ 31965 - 19968: jis0212<<14 | 0x32<<7 | 0x25,
+ 31966 - 19968: jis0208<<14 | 0x29<<7 | 0x14,
+ 31967 - 19968: jis0208<<14 | 0x20<<7 | 0x4B,
+ 31968 - 19968: jis0208<<14 | 0x18<<7 | 0x26,
+ 31970 - 19968: jis0208<<14 | 0x43<<7 | 0x56,
+ 31974 - 19968: jis0212<<14 | 0x32<<7 | 0x26,
+ 31975 - 19968: jis0208<<14 | 0x2D<<7 | 0x27,
+ 31977 - 19968: jis0212<<14 | 0x32<<7 | 0x27,
+ 31979 - 19968: jis0212<<14 | 0x32<<7 | 0x28,
+ 31983 - 19968: jis0208<<14 | 0x43<<7 | 0x58,
+ 31986 - 19968: jis0208<<14 | 0x43<<7 | 0x59,
+ 31988 - 19968: jis0208<<14 | 0x43<<7 | 0x5A,
+ 31989 - 19968: jis0212<<14 | 0x32<<7 | 0x29,
+ 31990 - 19968: jis0208<<14 | 0x43<<7 | 0x5B,
+ 31992 - 19968: jis0208<<14 | 0x1A<<7 | 0x44,
+ 31994 - 19968: jis0208<<14 | 0x43<<7 | 0x5C,
+ 31995 - 19968: jis0208<<14 | 0x16<<7 | 0x2E,
+ 31998 - 19968: jis0208<<14 | 0x14<<7 | 0x49,
+ 32000 - 19968: jis0208<<14 | 0x14<<7 | 0x09,
+ 32002 - 19968: jis0208<<14 | 0x44<<7 | 0x00,
+ 32003 - 19968: jis0212<<14 | 0x32<<7 | 0x2A,
+ 32004 - 19968: jis0208<<14 | 0x2B<<7 | 0x52,
+ 32005 - 19968: jis0208<<14 | 0x18<<7 | 0x27,
+ 32006 - 19968: jis0208<<14 | 0x43<<7 | 0x5D,
+ 32007 - 19968: jis0212<<14 | 0x32<<7 | 0x2B,
+ 32008 - 19968: jis0212<<14 | 0x32<<7 | 0x2C,
+ 32009 - 19968: jis0212<<14 | 0x32<<7 | 0x2D,
+ 32010 - 19968: jis0208<<14 | 0x44<<7 | 0x03,
+ 32011 - 19968: jis0208<<14 | 0x2B<<7 | 0x45,
+ 32013 - 19968: jis0208<<14 | 0x26<<7 | 0x1B,
+ 32015 - 19968: jis0212<<14 | 0x32<<7 | 0x2E,
+ 32016 - 19968: jis0208<<14 | 0x28<<7 | 0x12,
+ 32017 - 19968: jis0212<<14 | 0x32<<7 | 0x2F,
+ 32018 - 19968: jis0212<<14 | 0x32<<7 | 0x30,
+ 32019 - 19968: jis0212<<14 | 0x32<<7 | 0x31,
+ 32020 - 19968: jis0208<<14 | 0x1C<<7 | 0x42,
+ 32021 - 19968: jis0208<<14 | 0x44<<7 | 0x02,
+ 32022 - 19968: jis0212<<14 | 0x32<<7 | 0x32,
+ 32023 - 19968: jis0208<<14 | 0x1B<<7 | 0x32,
+ 32024 - 19968: jis0208<<14 | 0x18<<7 | 0x28,
+ 32025 - 19968: jis0208<<14 | 0x1A<<7 | 0x45,
+ 32026 - 19968: jis0208<<14 | 0x14<<7 | 0x48,
+ 32027 - 19968: jis0208<<14 | 0x29<<7 | 0x15,
+ 32028 - 19968: jis0208<<14 | 0x44<<7 | 0x01,
+ 32029 - 19968: jis0212<<14 | 0x32<<7 | 0x33,
+ 32030 - 19968: jis0212<<14 | 0x32<<7 | 0x34,
+ 32032 - 19968: jis0208<<14 | 0x20<<7 | 0x26,
+ 32033 - 19968: jis0208<<14 | 0x2A<<7 | 0x21,
+ 32034 - 19968: jis0208<<14 | 0x19<<7 | 0x56,
+ 32035 - 19968: jis0212<<14 | 0x32<<7 | 0x35,
+ 32038 - 19968: jis0212<<14 | 0x32<<7 | 0x36,
+ 32042 - 19968: jis0212<<14 | 0x32<<7 | 0x37,
+ 32043 - 19968: jis0208<<14 | 0x1A<<7 | 0x46,
+ 32044 - 19968: jis0208<<14 | 0x23<<7 | 0x3C,
+ 32045 - 19968: jis0212<<14 | 0x32<<7 | 0x38,
+ 32046 - 19968: jis0208<<14 | 0x44<<7 | 0x06,
+ 32047 - 19968: jis0208<<14 | 0x2D<<7 | 0x3E,
+ 32048 - 19968: jis0208<<14 | 0x19<<7 | 0x38,
+ 32049 - 19968: jis0212<<14 | 0x32<<7 | 0x39,
+ 32050 - 19968: jis0208<<14 | 0x44<<7 | 0x07,
+ 32051 - 19968: jis0208<<14 | 0x1E<<7 | 0x21,
+ 32053 - 19968: jis0208<<14 | 0x44<<7 | 0x09,
+ 32057 - 19968: jis0208<<14 | 0x1D<<7 | 0x31,
+ 32058 - 19968: jis0208<<14 | 0x19<<7 | 0x0F,
+ 32060 - 19968: jis0212<<14 | 0x32<<7 | 0x3A,
+ 32061 - 19968: jis0212<<14 | 0x32<<7 | 0x3B,
+ 32062 - 19968: jis0212<<14 | 0x32<<7 | 0x3C,
+ 32063 - 19968: jis0208<<14 | 0x44<<7 | 0x08,
+ 32064 - 19968: jis0212<<14 | 0x32<<7 | 0x3D,
+ 32065 - 19968: jis0212<<14 | 0x32<<7 | 0x3E,
+ 32066 - 19968: jis0208<<14 | 0x1C<<7 | 0x09,
+ 32067 - 19968: jis0208<<14 | 0x17<<7 | 0x1D,
+ 32068 - 19968: jis0208<<14 | 0x20<<7 | 0x27,
+ 32069 - 19968: jis0208<<14 | 0x44<<7 | 0x04,
+ 32070 - 19968: jis0208<<14 | 0x44<<7 | 0x0A,
+ 32071 - 19968: jis0212<<14 | 0x32<<7 | 0x3F,
+ 32072 - 19968: jis0208<<14 | 0x5A<<7 | 0x2D,
+ 32075 - 19968: jis0208<<14 | 0x44<<7 | 0x05,
+ 32076 - 19968: jis0208<<14 | 0x16<<7 | 0x2F,
+ 32077 - 19968: jis0212<<14 | 0x32<<7 | 0x41,
+ 32078 - 19968: jis0208<<14 | 0x44<<7 | 0x0D,
+ 32079 - 19968: jis0208<<14 | 0x44<<7 | 0x11,
+ 32080 - 19968: jis0208<<14 | 0x16<<7 | 0x4A,
+ 32081 - 19968: jis0212<<14 | 0x32<<7 | 0x42,
+ 32083 - 19968: jis0212<<14 | 0x32<<7 | 0x43,
+ 32086 - 19968: jis0208<<14 | 0x44<<7 | 0x0C,
+ 32087 - 19968: jis0212<<14 | 0x32<<7 | 0x44,
+ 32089 - 19968: jis0212<<14 | 0x32<<7 | 0x45,
+ 32090 - 19968: jis0212<<14 | 0x32<<7 | 0x46,
+ 32091 - 19968: jis0208<<14 | 0x44<<7 | 0x15,
+ 32092 - 19968: jis0208<<14 | 0x5A<<7 | 0x2E,
+ 32093 - 19968: jis0212<<14 | 0x32<<7 | 0x48,
+ 32094 - 19968: jis0208<<14 | 0x18<<7 | 0x29,
+ 32097 - 19968: jis0208<<14 | 0x2C<<7 | 0x4C,
+ 32098 - 19968: jis0208<<14 | 0x0F<<7 | 0x1B,
+ 32099 - 19968: jis0208<<14 | 0x44<<7 | 0x12,
+ 32101 - 19968: jis0212<<14 | 0x32<<7 | 0x49,
+ 32102 - 19968: jis0208<<14 | 0x14<<7 | 0x4A,
+ 32103 - 19968: jis0212<<14 | 0x32<<7 | 0x4A,
+ 32104 - 19968: jis0208<<14 | 0x44<<7 | 0x0F,
+ 32106 - 19968: jis0212<<14 | 0x32<<7 | 0x4B,
+ 32110 - 19968: jis0208<<14 | 0x44<<7 | 0x10,
+ 32112 - 19968: jis0212<<14 | 0x32<<7 | 0x4C,
+ 32113 - 19968: jis0208<<14 | 0x24<<7 | 0x5C,
+ 32114 - 19968: jis0208<<14 | 0x44<<7 | 0x0E,
+ 32115 - 19968: jis0208<<14 | 0x44<<7 | 0x0B,
+ 32117 - 19968: jis0208<<14 | 0x12<<7 | 0x07,
+ 32118 - 19968: jis0208<<14 | 0x1F<<7 | 0x43,
+ 32120 - 19968: jis0212<<14 | 0x32<<7 | 0x4D,
+ 32121 - 19968: jis0208<<14 | 0x17<<7 | 0x07,
+ 32122 - 19968: jis0212<<14 | 0x32<<7 | 0x4E,
+ 32123 - 19968: jis0212<<14 | 0x32<<7 | 0x4F,
+ 32125 - 19968: jis0208<<14 | 0x44<<7 | 0x17,
+ 32127 - 19968: jis0212<<14 | 0x32<<7 | 0x50,
+ 32129 - 19968: jis0212<<14 | 0x32<<7 | 0x51,
+ 32130 - 19968: jis0212<<14 | 0x32<<7 | 0x52,
+ 32131 - 19968: jis0212<<14 | 0x32<<7 | 0x53,
+ 32133 - 19968: jis0212<<14 | 0x32<<7 | 0x54,
+ 32134 - 19968: jis0212<<14 | 0x32<<7 | 0x55,
+ 32136 - 19968: jis0212<<14 | 0x32<<7 | 0x56,
+ 32137 - 19968: jis0208<<14 | 0x44<<7 | 0x14,
+ 32139 - 19968: jis0212<<14 | 0x32<<7 | 0x57,
+ 32140 - 19968: jis0212<<14 | 0x32<<7 | 0x58,
+ 32141 - 19968: jis0212<<14 | 0x32<<7 | 0x59,
+ 32143 - 19968: jis0208<<14 | 0x44<<7 | 0x16,
+ 32145 - 19968: jis0212<<14 | 0x32<<7 | 0x5A,
+ 32147 - 19968: jis0208<<14 | 0x44<<7 | 0x13,
+ 32150 - 19968: jis0212<<14 | 0x32<<7 | 0x5B,
+ 32151 - 19968: jis0212<<14 | 0x32<<7 | 0x5C,
+ 32153 - 19968: jis0208<<14 | 0x16<<7 | 0x30,
+ 32154 - 19968: jis0208<<14 | 0x21<<7 | 0x12,
+ 32155 - 19968: jis0208<<14 | 0x44<<7 | 0x18,
+ 32156 - 19968: jis0208<<14 | 0x20<<7 | 0x4D,
+ 32157 - 19968: jis0212<<14 | 0x32<<7 | 0x5D,
+ 32158 - 19968: jis0212<<14 | 0x33<<7 | 0x00,
+ 32159 - 19968: jis0208<<14 | 0x44<<7 | 0x25,
+ 32160 - 19968: jis0208<<14 | 0x5A<<7 | 0x30,
+ 32162 - 19968: jis0208<<14 | 0x44<<7 | 0x21,
+ 32163 - 19968: jis0208<<14 | 0x44<<7 | 0x1B,
+ 32166 - 19968: jis0212<<14 | 0x33<<7 | 0x01,
+ 32167 - 19968: jis0212<<14 | 0x33<<7 | 0x02,
+ 32170 - 19968: jis0212<<14 | 0x33<<7 | 0x03,
+ 32171 - 19968: jis0208<<14 | 0x44<<7 | 0x1F,
+ 32172 - 19968: jis0208<<14 | 0x1B<<7 | 0x59,
+ 32173 - 19968: jis0208<<14 | 0x0F<<7 | 0x3C,
+ 32174 - 19968: jis0208<<14 | 0x44<<7 | 0x1A,
+ 32175 - 19968: jis0208<<14 | 0x44<<7 | 0x22,
+ 32176 - 19968: jis0208<<14 | 0x44<<7 | 0x26,
+ 32177 - 19968: jis0208<<14 | 0x18<<7 | 0x2A,
+ 32178 - 19968: jis0208<<14 | 0x2B<<7 | 0x35,
+ 32179 - 19968: jis0212<<14 | 0x33<<7 | 0x04,
+ 32180 - 19968: jis0208<<14 | 0x23<<7 | 0x35,
+ 32181 - 19968: jis0208<<14 | 0x44<<7 | 0x1C,
+ 32182 - 19968: jis0212<<14 | 0x33<<7 | 0x05,
+ 32183 - 19968: jis0208<<14 | 0x5A<<7 | 0x2F,
+ 32184 - 19968: jis0208<<14 | 0x44<<7 | 0x24,
+ 32185 - 19968: jis0212<<14 | 0x33<<7 | 0x07,
+ 32186 - 19968: jis0208<<14 | 0x44<<7 | 0x19,
+ 32187 - 19968: jis0208<<14 | 0x22<<7 | 0x1D,
+ 32189 - 19968: jis0208<<14 | 0x44<<7 | 0x1E,
+ 32190 - 19968: jis0208<<14 | 0x0F<<7 | 0x1C,
+ 32191 - 19968: jis0208<<14 | 0x2B<<7 | 0x29,
+ 32194 - 19968: jis0212<<14 | 0x33<<7 | 0x08,
+ 32195 - 19968: jis0212<<14 | 0x33<<7 | 0x09,
+ 32196 - 19968: jis0212<<14 | 0x33<<7 | 0x0A,
+ 32197 - 19968: jis0212<<14 | 0x33<<7 | 0x0B,
+ 32198 - 19968: jis0212<<14 | 0x33<<7 | 0x0C,
+ 32199 - 19968: jis0208<<14 | 0x44<<7 | 0x1D,
+ 32202 - 19968: jis0208<<14 | 0x15<<7 | 0x3A,
+ 32203 - 19968: jis0208<<14 | 0x27<<7 | 0x4B,
+ 32204 - 19968: jis0212<<14 | 0x33<<7 | 0x0D,
+ 32205 - 19968: jis0212<<14 | 0x33<<7 | 0x0E,
+ 32206 - 19968: jis0212<<14 | 0x33<<7 | 0x0F,
+ 32207 - 19968: jis0208<<14 | 0x20<<7 | 0x4C,
+ 32209 - 19968: jis0208<<14 | 0x2D<<7 | 0x2F,
+ 32210 - 19968: jis0208<<14 | 0x1C<<7 | 0x4E,
+ 32213 - 19968: jis0208<<14 | 0x44<<7 | 0x4D,
+ 32214 - 19968: jis0208<<14 | 0x5A<<7 | 0x31,
+ 32215 - 19968: jis0212<<14 | 0x33<<7 | 0x10,
+ 32216 - 19968: jis0208<<14 | 0x44<<7 | 0x27,
+ 32217 - 19968: jis0212<<14 | 0x33<<7 | 0x11,
+ 32218 - 19968: jis0208<<14 | 0x1F<<7 | 0x5D,
+ 32220 - 19968: jis0208<<14 | 0x44<<7 | 0x23,
+ 32221 - 19968: jis0208<<14 | 0x44<<7 | 0x28,
+ 32222 - 19968: jis0208<<14 | 0x44<<7 | 0x2A,
+ 32224 - 19968: jis0208<<14 | 0x23<<7 | 0x58,
+ 32225 - 19968: jis0208<<14 | 0x44<<7 | 0x2D,
+ 32226 - 19968: jis0212<<14 | 0x33<<7 | 0x13,
+ 32228 - 19968: jis0208<<14 | 0x44<<7 | 0x29,
+ 32229 - 19968: jis0212<<14 | 0x33<<7 | 0x14,
+ 32230 - 19968: jis0212<<14 | 0x33<<7 | 0x15,
+ 32232 - 19968: jis0208<<14 | 0x29<<7 | 0x33,
+ 32233 - 19968: jis0208<<14 | 0x13<<7 | 0x2A,
+ 32234 - 19968: jis0212<<14 | 0x33<<7 | 0x16,
+ 32235 - 19968: jis0212<<14 | 0x33<<7 | 0x17,
+ 32236 - 19968: jis0208<<14 | 0x2B<<7 | 0x2A,
+ 32237 - 19968: jis0212<<14 | 0x33<<7 | 0x18,
+ 32239 - 19968: jis0208<<14 | 0x0F<<7 | 0x3D,
+ 32241 - 19968: jis0212<<14 | 0x33<<7 | 0x19,
+ 32242 - 19968: jis0208<<14 | 0x44<<7 | 0x2C,
+ 32244 - 19968: jis0208<<14 | 0x2D<<7 | 0x5C,
+ 32245 - 19968: jis0212<<14 | 0x33<<7 | 0x1A,
+ 32246 - 19968: jis0212<<14 | 0x33<<7 | 0x1B,
+ 32249 - 19968: jis0212<<14 | 0x33<<7 | 0x1C,
+ 32250 - 19968: jis0212<<14 | 0x33<<7 | 0x1D,
+ 32251 - 19968: jis0208<<14 | 0x44<<7 | 0x2B,
+ 32256 - 19968: jis0212<<14 | 0x33<<7 | 0x12,
+ 32257 - 19968: jis0208<<14 | 0x10<<7 | 0x4E,
+ 32260 - 19968: jis0208<<14 | 0x25<<7 | 0x4B,
+ 32261 - 19968: jis0208<<14 | 0x44<<7 | 0x2E,
+ 32264 - 19968: jis0212<<14 | 0x33<<7 | 0x1E,
+ 32265 - 19968: jis0208<<14 | 0x44<<7 | 0x35,
+ 32266 - 19968: jis0208<<14 | 0x44<<7 | 0x2F,
+ 32267 - 19968: jis0208<<14 | 0x44<<7 | 0x36,
+ 32272 - 19968: jis0212<<14 | 0x33<<7 | 0x1F,
+ 32273 - 19968: jis0212<<14 | 0x33<<7 | 0x20,
+ 32274 - 19968: jis0208<<14 | 0x44<<7 | 0x32,
+ 32277 - 19968: jis0212<<14 | 0x33<<7 | 0x21,
+ 32279 - 19968: jis0212<<14 | 0x33<<7 | 0x22,
+ 32283 - 19968: jis0208<<14 | 0x26<<7 | 0x5A,
+ 32284 - 19968: jis0212<<14 | 0x33<<7 | 0x23,
+ 32285 - 19968: jis0212<<14 | 0x33<<7 | 0x24,
+ 32286 - 19968: jis0208<<14 | 0x1B<<7 | 0x29,
+ 32287 - 19968: jis0208<<14 | 0x44<<7 | 0x34,
+ 32288 - 19968: jis0212<<14 | 0x33<<7 | 0x25,
+ 32289 - 19968: jis0208<<14 | 0x44<<7 | 0x31,
+ 32290 - 19968: jis0208<<14 | 0x44<<7 | 0x37,
+ 32291 - 19968: jis0208<<14 | 0x44<<7 | 0x30,
+ 32294 - 19968: jis0208<<14 | 0x1C<<7 | 0x23,
+ 32295 - 19968: jis0212<<14 | 0x33<<7 | 0x26,
+ 32296 - 19968: jis0212<<14 | 0x33<<7 | 0x27,
+ 32299 - 19968: jis0208<<14 | 0x2A<<7 | 0x04,
+ 32300 - 19968: jis0212<<14 | 0x33<<7 | 0x28,
+ 32301 - 19968: jis0212<<14 | 0x33<<7 | 0x29,
+ 32302 - 19968: jis0208<<14 | 0x1C<<7 | 0x2B,
+ 32303 - 19968: jis0212<<14 | 0x33<<7 | 0x2A,
+ 32305 - 19968: jis0208<<14 | 0x44<<7 | 0x33,
+ 32306 - 19968: jis0208<<14 | 0x44<<7 | 0x3F,
+ 32307 - 19968: jis0212<<14 | 0x33<<7 | 0x2B,
+ 32309 - 19968: jis0208<<14 | 0x44<<7 | 0x3B,
+ 32310 - 19968: jis0212<<14 | 0x33<<7 | 0x2C,
+ 32311 - 19968: jis0208<<14 | 0x44<<7 | 0x3E,
+ 32313 - 19968: jis0208<<14 | 0x44<<7 | 0x3C,
+ 32314 - 19968: jis0208<<14 | 0x44<<7 | 0x40,
+ 32315 - 19968: jis0208<<14 | 0x44<<7 | 0x3A,
+ 32317 - 19968: jis0208<<14 | 0x44<<7 | 0x20,
+ 32318 - 19968: jis0208<<14 | 0x1F<<7 | 0x32,
+ 32319 - 19968: jis0212<<14 | 0x33<<7 | 0x2D,
+ 32321 - 19968: jis0208<<14 | 0x27<<7 | 0x2A,
+ 32323 - 19968: jis0208<<14 | 0x44<<7 | 0x3D,
+ 32324 - 19968: jis0212<<14 | 0x33<<7 | 0x2E,
+ 32325 - 19968: jis0212<<14 | 0x33<<7 | 0x2F,
+ 32326 - 19968: jis0208<<14 | 0x44<<7 | 0x38,
+ 32327 - 19968: jis0212<<14 | 0x33<<7 | 0x30,
+ 32330 - 19968: jis0208<<14 | 0x20<<7 | 0x00,
+ 32331 - 19968: jis0208<<14 | 0x16<<7 | 0x31,
+ 32333 - 19968: jis0208<<14 | 0x1C<<7 | 0x0A,
+ 32334 - 19968: jis0212<<14 | 0x33<<7 | 0x31,
+ 32336 - 19968: jis0212<<14 | 0x33<<7 | 0x32,
+ 32338 - 19968: jis0208<<14 | 0x5A<<7 | 0x32,
+ 32340 - 19968: jis0208<<14 | 0x1E<<7 | 0x04,
+ 32341 - 19968: jis0208<<14 | 0x20<<7 | 0x15,
+ 32342 - 19968: jis0208<<14 | 0x44<<7 | 0x43,
+ 32344 - 19968: jis0212<<14 | 0x33<<7 | 0x34,
+ 32345 - 19968: jis0208<<14 | 0x44<<7 | 0x45,
+ 32346 - 19968: jis0208<<14 | 0x44<<7 | 0x46,
+ 32349 - 19968: jis0208<<14 | 0x44<<7 | 0x42,
+ 32350 - 19968: jis0208<<14 | 0x44<<7 | 0x44,
+ 32351 - 19968: jis0212<<14 | 0x33<<7 | 0x35,
+ 32353 - 19968: jis0212<<14 | 0x33<<7 | 0x36,
+ 32354 - 19968: jis0212<<14 | 0x33<<7 | 0x37,
+ 32357 - 19968: jis0212<<14 | 0x33<<7 | 0x38,
+ 32358 - 19968: jis0208<<14 | 0x44<<7 | 0x39,
+ 32359 - 19968: jis0208<<14 | 0x44<<7 | 0x41,
+ 32361 - 19968: jis0208<<14 | 0x44<<7 | 0x49,
+ 32362 - 19968: jis0208<<14 | 0x44<<7 | 0x48,
+ 32363 - 19968: jis0212<<14 | 0x33<<7 | 0x39,
+ 32365 - 19968: jis0208<<14 | 0x2A<<7 | 0x59,
+ 32366 - 19968: jis0212<<14 | 0x33<<7 | 0x3A,
+ 32367 - 19968: jis0212<<14 | 0x33<<7 | 0x3B,
+ 32368 - 19968: jis0208<<14 | 0x16<<7 | 0x0A,
+ 32371 - 19968: jis0212<<14 | 0x33<<7 | 0x3C,
+ 32376 - 19968: jis0212<<14 | 0x33<<7 | 0x3D,
+ 32377 - 19968: jis0208<<14 | 0x44<<7 | 0x47,
+ 32379 - 19968: jis0208<<14 | 0x44<<7 | 0x4B,
+ 32380 - 19968: jis0208<<14 | 0x44<<7 | 0x4A,
+ 32381 - 19968: jis0208<<14 | 0x44<<7 | 0x4E,
+ 32382 - 19968: jis0212<<14 | 0x33<<7 | 0x3E,
+ 32383 - 19968: jis0208<<14 | 0x44<<7 | 0x50,
+ 32385 - 19968: jis0212<<14 | 0x33<<7 | 0x3F,
+ 32386 - 19968: jis0208<<14 | 0x1A<<7 | 0x1B,
+ 32387 - 19968: jis0208<<14 | 0x44<<7 | 0x4C,
+ 32390 - 19968: jis0212<<14 | 0x33<<7 | 0x40,
+ 32391 - 19968: jis0212<<14 | 0x33<<7 | 0x41,
+ 32392 - 19968: jis0208<<14 | 0x44<<7 | 0x51,
+ 32393 - 19968: jis0208<<14 | 0x44<<7 | 0x52,
+ 32394 - 19968: jis0208<<14 | 0x58<<7 | 0x00,
+ 32396 - 19968: jis0208<<14 | 0x44<<7 | 0x53,
+ 32397 - 19968: jis0212<<14 | 0x33<<7 | 0x43,
+ 32398 - 19968: jis0208<<14 | 0x44<<7 | 0x59,
+ 32399 - 19968: jis0208<<14 | 0x24<<7 | 0x1A,
+ 32400 - 19968: jis0208<<14 | 0x44<<7 | 0x55,
+ 32401 - 19968: jis0212<<14 | 0x33<<7 | 0x44,
+ 32402 - 19968: jis0208<<14 | 0x44<<7 | 0x54,
+ 32403 - 19968: jis0208<<14 | 0x44<<7 | 0x56,
+ 32404 - 19968: jis0208<<14 | 0x44<<7 | 0x57,
+ 32405 - 19968: jis0212<<14 | 0x33<<7 | 0x45,
+ 32406 - 19968: jis0208<<14 | 0x44<<7 | 0x58,
+ 32408 - 19968: jis0212<<14 | 0x33<<7 | 0x46,
+ 32410 - 19968: jis0212<<14 | 0x33<<7 | 0x47,
+ 32411 - 19968: jis0208<<14 | 0x44<<7 | 0x5A,
+ 32412 - 19968: jis0208<<14 | 0x44<<7 | 0x5B,
+ 32413 - 19968: jis0212<<14 | 0x33<<7 | 0x48,
+ 32414 - 19968: jis0212<<14 | 0x33<<7 | 0x49,
+ 32566 - 19968: jis0208<<14 | 0x13<<7 | 0x2B,
+ 32568 - 19968: jis0208<<14 | 0x44<<7 | 0x5C,
+ 32570 - 19968: jis0208<<14 | 0x44<<7 | 0x5D,
+ 32571 - 19968: jis0212<<14 | 0x33<<7 | 0x4B,
+ 32572 - 19968: jis0212<<14 | 0x33<<7 | 0x4A,
+ 32573 - 19968: jis0212<<14 | 0x33<<7 | 0x4C,
+ 32574 - 19968: jis0212<<14 | 0x33<<7 | 0x4D,
+ 32575 - 19968: jis0212<<14 | 0x33<<7 | 0x4E,
+ 32579 - 19968: jis0212<<14 | 0x33<<7 | 0x4F,
+ 32580 - 19968: jis0212<<14 | 0x33<<7 | 0x50,
+ 32581 - 19968: jis0208<<14 | 0x45<<7 | 0x00,
+ 32583 - 19968: jis0208<<14 | 0x5A<<7 | 0x33,
+ 32588 - 19968: jis0208<<14 | 0x45<<7 | 0x01,
+ 32589 - 19968: jis0208<<14 | 0x45<<7 | 0x02,
+ 32590 - 19968: jis0208<<14 | 0x45<<7 | 0x03,
+ 32591 - 19968: jis0212<<14 | 0x33<<7 | 0x52,
+ 32592 - 19968: jis0208<<14 | 0x45<<7 | 0x04,
+ 32593 - 19968: jis0208<<14 | 0x45<<7 | 0x05,
+ 32594 - 19968: jis0212<<14 | 0x33<<7 | 0x53,
+ 32595 - 19968: jis0212<<14 | 0x33<<7 | 0x54,
+ 32596 - 19968: jis0208<<14 | 0x45<<7 | 0x07,
+ 32597 - 19968: jis0208<<14 | 0x45<<7 | 0x06,
+ 32600 - 19968: jis0208<<14 | 0x45<<7 | 0x08,
+ 32603 - 19968: jis0212<<14 | 0x33<<7 | 0x55,
+ 32604 - 19968: jis0212<<14 | 0x33<<7 | 0x56,
+ 32605 - 19968: jis0212<<14 | 0x33<<7 | 0x57,
+ 32607 - 19968: jis0208<<14 | 0x45<<7 | 0x09,
+ 32608 - 19968: jis0208<<14 | 0x45<<7 | 0x0A,
+ 32609 - 19968: jis0212<<14 | 0x33<<7 | 0x58,
+ 32611 - 19968: jis0212<<14 | 0x33<<7 | 0x59,
+ 32612 - 19968: jis0212<<14 | 0x33<<7 | 0x5A,
+ 32613 - 19968: jis0212<<14 | 0x33<<7 | 0x5B,
+ 32614 - 19968: jis0212<<14 | 0x33<<7 | 0x5C,
+ 32615 - 19968: jis0208<<14 | 0x45<<7 | 0x0D,
+ 32616 - 19968: jis0208<<14 | 0x45<<7 | 0x0B,
+ 32617 - 19968: jis0208<<14 | 0x45<<7 | 0x0C,
+ 32618 - 19968: jis0208<<14 | 0x19<<7 | 0x40,
+ 32619 - 19968: jis0208<<14 | 0x16<<7 | 0x32,
+ 32621 - 19968: jis0212<<14 | 0x33<<7 | 0x5D,
+ 32622 - 19968: jis0208<<14 | 0x22<<7 | 0x35,
+ 32624 - 19968: jis0208<<14 | 0x27<<7 | 0x12,
+ 32625 - 19968: jis0212<<14 | 0x34<<7 | 0x00,
+ 32626 - 19968: jis0208<<14 | 0x1C<<7 | 0x4F,
+ 32629 - 19968: jis0208<<14 | 0x26<<7 | 0x2C,
+ 32631 - 19968: jis0208<<14 | 0x27<<7 | 0x4C,
+ 32632 - 19968: jis0208<<14 | 0x45<<7 | 0x0E,
+ 32633 - 19968: jis0208<<14 | 0x37<<7 | 0x4C,
+ 32637 - 19968: jis0212<<14 | 0x34<<7 | 0x01,
+ 32638 - 19968: jis0212<<14 | 0x34<<7 | 0x02,
+ 32639 - 19968: jis0212<<14 | 0x34<<7 | 0x03,
+ 32640 - 19968: jis0212<<14 | 0x34<<7 | 0x04,
+ 32642 - 19968: jis0208<<14 | 0x45<<7 | 0x0F,
+ 32643 - 19968: jis0208<<14 | 0x45<<7 | 0x11,
+ 32645 - 19968: jis0208<<14 | 0x2C<<7 | 0x44,
+ 32646 - 19968: jis0208<<14 | 0x45<<7 | 0x10,
+ 32647 - 19968: jis0208<<14 | 0x45<<7 | 0x13,
+ 32648 - 19968: jis0208<<14 | 0x45<<7 | 0x12,
+ 32650 - 19968: jis0208<<14 | 0x2C<<7 | 0x32,
+ 32651 - 19968: jis0212<<14 | 0x34<<7 | 0x05,
+ 32652 - 19968: jis0208<<14 | 0x45<<7 | 0x14,
+ 32653 - 19968: jis0212<<14 | 0x34<<7 | 0x06,
+ 32654 - 19968: jis0208<<14 | 0x27<<7 | 0x5D,
+ 32655 - 19968: jis0212<<14 | 0x34<<7 | 0x07,
+ 32656 - 19968: jis0212<<14 | 0x34<<7 | 0x08,
+ 32657 - 19968: jis0212<<14 | 0x34<<7 | 0x09,
+ 32660 - 19968: jis0208<<14 | 0x45<<7 | 0x15,
+ 32662 - 19968: jis0212<<14 | 0x34<<7 | 0x0A,
+ 32663 - 19968: jis0212<<14 | 0x34<<7 | 0x0B,
+ 32666 - 19968: jis0208<<14 | 0x45<<7 | 0x18,
+ 32668 - 19968: jis0212<<14 | 0x34<<7 | 0x0C,
+ 32669 - 19968: jis0208<<14 | 0x45<<7 | 0x17,
+ 32670 - 19968: jis0208<<14 | 0x45<<7 | 0x16,
+ 32673 - 19968: jis0208<<14 | 0x5A<<7 | 0x34,
+ 32674 - 19968: jis0212<<14 | 0x34<<7 | 0x0E,
+ 32675 - 19968: jis0208<<14 | 0x45<<7 | 0x19,
+ 32676 - 19968: jis0208<<14 | 0x16<<7 | 0x11,
+ 32678 - 19968: jis0212<<14 | 0x34<<7 | 0x0F,
+ 32680 - 19968: jis0208<<14 | 0x20<<7 | 0x01,
+ 32681 - 19968: jis0208<<14 | 0x14<<7 | 0x20,
+ 32682 - 19968: jis0212<<14 | 0x34<<7 | 0x10,
+ 32685 - 19968: jis0212<<14 | 0x34<<7 | 0x11,
+ 32686 - 19968: jis0208<<14 | 0x45<<7 | 0x1D,
+ 32687 - 19968: jis0208<<14 | 0x45<<7 | 0x1A,
+ 32690 - 19968: jis0208<<14 | 0x45<<7 | 0x1B,
+ 32692 - 19968: jis0212<<14 | 0x34<<7 | 0x12,
+ 32694 - 19968: jis0208<<14 | 0x45<<7 | 0x1E,
+ 32696 - 19968: jis0208<<14 | 0x45<<7 | 0x1F,
+ 32697 - 19968: jis0208<<14 | 0x45<<7 | 0x1C,
+ 32700 - 19968: jis0212<<14 | 0x34<<7 | 0x13,
+ 32701 - 19968: jis0208<<14 | 0x10<<7 | 0x08,
+ 32703 - 19968: jis0212<<14 | 0x34<<7 | 0x14,
+ 32704 - 19968: jis0212<<14 | 0x34<<7 | 0x15,
+ 32705 - 19968: jis0208<<14 | 0x11<<7 | 0x06,
+ 32707 - 19968: jis0212<<14 | 0x34<<7 | 0x16,
+ 32709 - 19968: jis0208<<14 | 0x45<<7 | 0x21,
+ 32710 - 19968: jis0208<<14 | 0x45<<7 | 0x22,
+ 32712 - 19968: jis0212<<14 | 0x34<<7 | 0x17,
+ 32714 - 19968: jis0208<<14 | 0x45<<7 | 0x23,
+ 32716 - 19968: jis0208<<14 | 0x2C<<7 | 0x41,
+ 32718 - 19968: jis0212<<14 | 0x34<<7 | 0x18,
+ 32719 - 19968: jis0212<<14 | 0x34<<7 | 0x19,
+ 32722 - 19968: jis0208<<14 | 0x1C<<7 | 0x0B,
+ 32724 - 19968: jis0208<<14 | 0x45<<7 | 0x25,
+ 32725 - 19968: jis0208<<14 | 0x45<<7 | 0x24,
+ 32731 - 19968: jis0212<<14 | 0x34<<7 | 0x1A,
+ 32735 - 19968: jis0212<<14 | 0x34<<7 | 0x1B,
+ 32736 - 19968: jis0208<<14 | 0x1E<<7 | 0x48,
+ 32737 - 19968: jis0208<<14 | 0x45<<7 | 0x26,
+ 32739 - 19968: jis0212<<14 | 0x34<<7 | 0x1C,
+ 32741 - 19968: jis0212<<14 | 0x34<<7 | 0x1D,
+ 32742 - 19968: jis0208<<14 | 0x45<<7 | 0x27,
+ 32744 - 19968: jis0212<<14 | 0x34<<7 | 0x1E,
+ 32745 - 19968: jis0208<<14 | 0x45<<7 | 0x28,
+ 32747 - 19968: jis0208<<14 | 0x13<<7 | 0x44,
+ 32748 - 19968: jis0212<<14 | 0x34<<7 | 0x1F,
+ 32750 - 19968: jis0212<<14 | 0x34<<7 | 0x20,
+ 32751 - 19968: jis0212<<14 | 0x34<<7 | 0x21,
+ 32752 - 19968: jis0208<<14 | 0x13<<7 | 0x2C,
+ 32754 - 19968: jis0212<<14 | 0x34<<7 | 0x22,
+ 32755 - 19968: jis0208<<14 | 0x45<<7 | 0x29,
+ 32761 - 19968: jis0208<<14 | 0x45<<7 | 0x2A,
+ 32762 - 19968: jis0212<<14 | 0x34<<7 | 0x23,
+ 32763 - 19968: jis0208<<14 | 0x2A<<7 | 0x3C,
+ 32764 - 19968: jis0208<<14 | 0x2C<<7 | 0x42,
+ 32765 - 19968: jis0212<<14 | 0x34<<7 | 0x24,
+ 32766 - 19968: jis0212<<14 | 0x34<<7 | 0x25,
+ 32767 - 19968: jis0212<<14 | 0x34<<7 | 0x26,
+ 32768 - 19968: jis0208<<14 | 0x2C<<7 | 0x33,
+ 32769 - 19968: jis0208<<14 | 0x2E<<7 | 0x16,
+ 32771 - 19968: jis0208<<14 | 0x18<<7 | 0x2C,
+ 32772 - 19968: jis0208<<14 | 0x45<<7 | 0x2D,
+ 32773 - 19968: jis0208<<14 | 0x1B<<7 | 0x33,
+ 32774 - 19968: jis0208<<14 | 0x45<<7 | 0x2C,
+ 32775 - 19968: jis0212<<14 | 0x34<<7 | 0x27,
+ 32776 - 19968: jis0212<<14 | 0x34<<7 | 0x28,
+ 32778 - 19968: jis0212<<14 | 0x34<<7 | 0x29,
+ 32779 - 19968: jis0208<<14 | 0x45<<7 | 0x2E,
+ 32780 - 19968: jis0208<<14 | 0x1B<<7 | 0x08,
+ 32781 - 19968: jis0212<<14 | 0x34<<7 | 0x2A,
+ 32782 - 19968: jis0212<<14 | 0x34<<7 | 0x2B,
+ 32783 - 19968: jis0212<<14 | 0x34<<7 | 0x2C,
+ 32784 - 19968: jis0208<<14 | 0x21<<7 | 0x30,
+ 32785 - 19968: jis0212<<14 | 0x34<<7 | 0x2D,
+ 32786 - 19968: jis0208<<14 | 0x45<<7 | 0x2F,
+ 32787 - 19968: jis0212<<14 | 0x34<<7 | 0x2E,
+ 32788 - 19968: jis0212<<14 | 0x34<<7 | 0x2F,
+ 32789 - 19968: jis0208<<14 | 0x18<<7 | 0x2B,
+ 32790 - 19968: jis0212<<14 | 0x34<<7 | 0x30,
+ 32791 - 19968: jis0208<<14 | 0x2B<<7 | 0x36,
+ 32792 - 19968: jis0208<<14 | 0x45<<7 | 0x30,
+ 32793 - 19968: jis0208<<14 | 0x45<<7 | 0x31,
+ 32796 - 19968: jis0208<<14 | 0x45<<7 | 0x32,
+ 32797 - 19968: jis0212<<14 | 0x34<<7 | 0x31,
+ 32798 - 19968: jis0212<<14 | 0x34<<7 | 0x32,
+ 32799 - 19968: jis0212<<14 | 0x34<<7 | 0x33,
+ 32800 - 19968: jis0212<<14 | 0x34<<7 | 0x34,
+ 32801 - 19968: jis0208<<14 | 0x45<<7 | 0x33,
+ 32804 - 19968: jis0212<<14 | 0x34<<7 | 0x35,
+ 32806 - 19968: jis0212<<14 | 0x34<<7 | 0x36,
+ 32808 - 19968: jis0208<<14 | 0x45<<7 | 0x34,
+ 32812 - 19968: jis0212<<14 | 0x34<<7 | 0x37,
+ 32814 - 19968: jis0212<<14 | 0x34<<7 | 0x38,
+ 32816 - 19968: jis0212<<14 | 0x34<<7 | 0x39,
+ 32819 - 19968: jis0208<<14 | 0x1B<<7 | 0x09,
+ 32820 - 19968: jis0212<<14 | 0x34<<7 | 0x3A,
+ 32821 - 19968: jis0212<<14 | 0x34<<7 | 0x3B,
+ 32822 - 19968: jis0208<<14 | 0x2B<<7 | 0x4C,
+ 32823 - 19968: jis0212<<14 | 0x34<<7 | 0x3C,
+ 32825 - 19968: jis0212<<14 | 0x34<<7 | 0x3D,
+ 32826 - 19968: jis0212<<14 | 0x34<<7 | 0x3E,
+ 32827 - 19968: jis0208<<14 | 0x45<<7 | 0x36,
+ 32828 - 19968: jis0212<<14 | 0x34<<7 | 0x3F,
+ 32829 - 19968: jis0208<<14 | 0x22<<7 | 0x1E,
+ 32830 - 19968: jis0212<<14 | 0x34<<7 | 0x40,
+ 32831 - 19968: jis0208<<14 | 0x45<<7 | 0x35,
+ 32832 - 19968: jis0212<<14 | 0x34<<7 | 0x41,
+ 32836 - 19968: jis0212<<14 | 0x34<<7 | 0x42,
+ 32838 - 19968: jis0208<<14 | 0x45<<7 | 0x38,
+ 32842 - 19968: jis0208<<14 | 0x45<<7 | 0x37,
+ 32850 - 19968: jis0208<<14 | 0x45<<7 | 0x39,
+ 32854 - 19968: jis0208<<14 | 0x1F<<7 | 0x1A,
+ 32856 - 19968: jis0208<<14 | 0x45<<7 | 0x3A,
+ 32858 - 19968: jis0208<<14 | 0x45<<7 | 0x3B,
+ 32862 - 19968: jis0208<<14 | 0x29<<7 | 0x18,
+ 32863 - 19968: jis0208<<14 | 0x45<<7 | 0x3C,
+ 32864 - 19968: jis0212<<14 | 0x34<<7 | 0x43,
+ 32865 - 19968: jis0208<<14 | 0x20<<7 | 0x4E,
+ 32866 - 19968: jis0208<<14 | 0x45<<7 | 0x3D,
+ 32868 - 19968: jis0212<<14 | 0x34<<7 | 0x44,
+ 32870 - 19968: jis0212<<14 | 0x34<<7 | 0x45,
+ 32872 - 19968: jis0208<<14 | 0x45<<7 | 0x3E,
+ 32877 - 19968: jis0212<<14 | 0x34<<7 | 0x46,
+ 32879 - 19968: jis0208<<14 | 0x2D<<7 | 0x5D,
+ 32880 - 19968: jis0208<<14 | 0x45<<7 | 0x41,
+ 32881 - 19968: jis0212<<14 | 0x34<<7 | 0x47,
+ 32882 - 19968: jis0208<<14 | 0x45<<7 | 0x40,
+ 32883 - 19968: jis0208<<14 | 0x45<<7 | 0x3F,
+ 32884 - 19968: jis0208<<14 | 0x23<<7 | 0x0F,
+ 32885 - 19968: jis0212<<14 | 0x34<<7 | 0x48,
+ 32886 - 19968: jis0208<<14 | 0x45<<7 | 0x42,
+ 32887 - 19968: jis0208<<14 | 0x1E<<7 | 0x05,
+ 32889 - 19968: jis0208<<14 | 0x45<<7 | 0x43,
+ 32893 - 19968: jis0208<<14 | 0x45<<7 | 0x44,
+ 32894 - 19968: jis0208<<14 | 0x2E<<7 | 0x17,
+ 32895 - 19968: jis0208<<14 | 0x45<<7 | 0x45,
+ 32897 - 19968: jis0212<<14 | 0x34<<7 | 0x49,
+ 32900 - 19968: jis0208<<14 | 0x45<<7 | 0x46,
+ 32901 - 19968: jis0208<<14 | 0x45<<7 | 0x48,
+ 32902 - 19968: jis0208<<14 | 0x45<<7 | 0x47,
+ 32903 - 19968: jis0208<<14 | 0x27<<7 | 0x04,
+ 32904 - 19968: jis0212<<14 | 0x34<<7 | 0x4A,
+ 32905 - 19968: jis0208<<14 | 0x25<<7 | 0x58,
+ 32907 - 19968: jis0208<<14 | 0x2E<<7 | 0x1D,
+ 32908 - 19968: jis0208<<14 | 0x27<<7 | 0x08,
+ 32910 - 19968: jis0212<<14 | 0x34<<7 | 0x4B,
+ 32915 - 19968: jis0208<<14 | 0x45<<7 | 0x4A,
+ 32918 - 19968: jis0208<<14 | 0x1D<<7 | 0x32,
+ 32920 - 19968: jis0208<<14 | 0x28<<7 | 0x09,
+ 32922 - 19968: jis0208<<14 | 0x45<<7 | 0x4B,
+ 32923 - 19968: jis0208<<14 | 0x45<<7 | 0x49,
+ 32924 - 19968: jis0212<<14 | 0x34<<7 | 0x4C,
+ 32925 - 19968: jis0208<<14 | 0x13<<7 | 0x2D,
+ 32926 - 19968: jis0212<<14 | 0x34<<7 | 0x4D,
+ 32929 - 19968: jis0208<<14 | 0x17<<7 | 0x33,
+ 32930 - 19968: jis0208<<14 | 0x1A<<7 | 0x47,
+ 32933 - 19968: jis0208<<14 | 0x27<<7 | 0x4D,
+ 32934 - 19968: jis0212<<14 | 0x34<<7 | 0x4E,
+ 32935 - 19968: jis0212<<14 | 0x34<<7 | 0x4F,
+ 32937 - 19968: jis0208<<14 | 0x17<<7 | 0x09,
+ 32938 - 19968: jis0208<<14 | 0x2A<<7 | 0x22,
+ 32939 - 19968: jis0212<<14 | 0x34<<7 | 0x50,
+ 32940 - 19968: jis0208<<14 | 0x45<<7 | 0x4E,
+ 32941 - 19968: jis0208<<14 | 0x45<<7 | 0x4C,
+ 32943 - 19968: jis0208<<14 | 0x18<<7 | 0x2D,
+ 32945 - 19968: jis0208<<14 | 0x18<<7 | 0x2E,
+ 32946 - 19968: jis0208<<14 | 0x0F<<7 | 0x48,
+ 32948 - 19968: jis0208<<14 | 0x19<<7 | 0x47,
+ 32952 - 19968: jis0212<<14 | 0x34<<7 | 0x51,
+ 32953 - 19968: jis0212<<14 | 0x34<<7 | 0x52,
+ 32954 - 19968: jis0208<<14 | 0x26<<7 | 0x38,
+ 32963 - 19968: jis0208<<14 | 0x0F<<7 | 0x3E,
+ 32964 - 19968: jis0208<<14 | 0x45<<7 | 0x53,
+ 32966 - 19968: jis0208<<14 | 0x22<<7 | 0x1F,
+ 32968 - 19968: jis0212<<14 | 0x34<<7 | 0x53,
+ 32972 - 19968: jis0208<<14 | 0x26<<7 | 0x37,
+ 32973 - 19968: jis0212<<14 | 0x34<<7 | 0x54,
+ 32974 - 19968: jis0208<<14 | 0x21<<7 | 0x3A,
+ 32975 - 19968: jis0212<<14 | 0x34<<7 | 0x55,
+ 32978 - 19968: jis0212<<14 | 0x34<<7 | 0x56,
+ 32980 - 19968: jis0212<<14 | 0x34<<7 | 0x57,
+ 32981 - 19968: jis0212<<14 | 0x34<<7 | 0x58,
+ 32982 - 19968: jis0208<<14 | 0x45<<7 | 0x55,
+ 32983 - 19968: jis0212<<14 | 0x34<<7 | 0x59,
+ 32984 - 19968: jis0212<<14 | 0x34<<7 | 0x5A,
+ 32985 - 19968: jis0208<<14 | 0x45<<7 | 0x51,
+ 32986 - 19968: jis0208<<14 | 0x45<<7 | 0x54,
+ 32987 - 19968: jis0208<<14 | 0x45<<7 | 0x4F,
+ 32989 - 19968: jis0208<<14 | 0x45<<7 | 0x52,
+ 32990 - 19968: jis0208<<14 | 0x2A<<7 | 0x05,
+ 32992 - 19968: jis0212<<14 | 0x34<<7 | 0x5B,
+ 32993 - 19968: jis0208<<14 | 0x17<<7 | 0x34,
+ 32996 - 19968: jis0208<<14 | 0x0F<<7 | 0x5C,
+ 32997 - 19968: jis0208<<14 | 0x45<<7 | 0x50,
+ 33005 - 19968: jis0212<<14 | 0x34<<7 | 0x5C,
+ 33006 - 19968: jis0212<<14 | 0x34<<7 | 0x5D,
+ 33007 - 19968: jis0208<<14 | 0x45<<7 | 0x57,
+ 33008 - 19968: jis0212<<14 | 0x35<<7 | 0x00,
+ 33009 - 19968: jis0208<<14 | 0x45<<7 | 0x58,
+ 33010 - 19968: jis0212<<14 | 0x35<<7 | 0x01,
+ 33011 - 19968: jis0212<<14 | 0x35<<7 | 0x02,
+ 33012 - 19968: jis0208<<14 | 0x25<<7 | 0x18,
+ 33014 - 19968: jis0212<<14 | 0x35<<7 | 0x03,
+ 33016 - 19968: jis0208<<14 | 0x15<<7 | 0x1A,
+ 33017 - 19968: jis0212<<14 | 0x35<<7 | 0x04,
+ 33018 - 19968: jis0212<<14 | 0x35<<7 | 0x05,
+ 33020 - 19968: jis0208<<14 | 0x46<<7 | 0x05,
+ 33021 - 19968: jis0208<<14 | 0x26<<7 | 0x1C,
+ 33022 - 19968: jis0212<<14 | 0x35<<7 | 0x06,
+ 33026 - 19968: jis0208<<14 | 0x1A<<7 | 0x48,
+ 33027 - 19968: jis0212<<14 | 0x35<<7 | 0x07,
+ 33029 - 19968: jis0208<<14 | 0x15<<7 | 0x1B,
+ 33030 - 19968: jis0208<<14 | 0x1F<<7 | 0x27,
+ 33031 - 19968: jis0208<<14 | 0x2E<<7 | 0x25,
+ 33032 - 19968: jis0208<<14 | 0x2B<<7 | 0x0D,
+ 33033 - 19968: jis0208<<14 | 0x45<<7 | 0x56,
+ 33034 - 19968: jis0208<<14 | 0x1F<<7 | 0x33,
+ 33035 - 19968: jis0212<<14 | 0x35<<7 | 0x08,
+ 33046 - 19968: jis0212<<14 | 0x35<<7 | 0x09,
+ 33047 - 19968: jis0212<<14 | 0x35<<7 | 0x0A,
+ 33048 - 19968: jis0212<<14 | 0x35<<7 | 0x0B,
+ 33050 - 19968: jis0208<<14 | 0x14<<7 | 0x32,
+ 33051 - 19968: jis0208<<14 | 0x45<<7 | 0x59,
+ 33052 - 19968: jis0212<<14 | 0x35<<7 | 0x0C,
+ 33054 - 19968: jis0212<<14 | 0x35<<7 | 0x0D,
+ 33056 - 19968: jis0212<<14 | 0x35<<7 | 0x0E,
+ 33059 - 19968: jis0208<<14 | 0x45<<7 | 0x5B,
+ 33060 - 19968: jis0212<<14 | 0x35<<7 | 0x0F,
+ 33063 - 19968: jis0212<<14 | 0x35<<7 | 0x10,
+ 33065 - 19968: jis0208<<14 | 0x45<<7 | 0x5A,
+ 33068 - 19968: jis0212<<14 | 0x35<<7 | 0x11,
+ 33071 - 19968: jis0208<<14 | 0x45<<7 | 0x5C,
+ 33072 - 19968: jis0212<<14 | 0x35<<7 | 0x12,
+ 33073 - 19968: jis0208<<14 | 0x22<<7 | 0x05,
+ 33075 - 19968: jis0208<<14 | 0x26<<7 | 0x1D,
+ 33077 - 19968: jis0212<<14 | 0x35<<7 | 0x13,
+ 33081 - 19968: jis0208<<14 | 0x23<<7 | 0x10,
+ 33082 - 19968: jis0212<<14 | 0x35<<7 | 0x14,
+ 33084 - 19968: jis0212<<14 | 0x35<<7 | 0x15,
+ 33086 - 19968: jis0208<<14 | 0x46<<7 | 0x02,
+ 33093 - 19968: jis0212<<14 | 0x35<<7 | 0x16,
+ 33094 - 19968: jis0208<<14 | 0x46<<7 | 0x01,
+ 33095 - 19968: jis0212<<14 | 0x35<<7 | 0x17,
+ 33098 - 19968: jis0212<<14 | 0x35<<7 | 0x18,
+ 33099 - 19968: jis0208<<14 | 0x45<<7 | 0x5D,
+ 33100 - 19968: jis0212<<14 | 0x35<<7 | 0x19,
+ 33102 - 19968: jis0208<<14 | 0x1E<<7 | 0x34,
+ 33104 - 19968: jis0208<<14 | 0x28<<7 | 0x44,
+ 33105 - 19968: jis0208<<14 | 0x46<<7 | 0x04,
+ 33106 - 19968: jis0212<<14 | 0x35<<7 | 0x1A,
+ 33107 - 19968: jis0208<<14 | 0x46<<7 | 0x03,
+ 33108 - 19968: jis0208<<14 | 0x18<<7 | 0x2F,
+ 33109 - 19968: jis0208<<14 | 0x2E<<7 | 0x32,
+ 33111 - 19968: jis0212<<14 | 0x35<<7 | 0x1B,
+ 33119 - 19968: jis0208<<14 | 0x46<<7 | 0x14,
+ 33120 - 19968: jis0212<<14 | 0x35<<7 | 0x1C,
+ 33121 - 19968: jis0212<<14 | 0x35<<7 | 0x1D,
+ 33125 - 19968: jis0208<<14 | 0x46<<7 | 0x08,
+ 33126 - 19968: jis0208<<14 | 0x46<<7 | 0x09,
+ 33127 - 19968: jis0212<<14 | 0x35<<7 | 0x1E,
+ 33128 - 19968: jis0212<<14 | 0x35<<7 | 0x1F,
+ 33129 - 19968: jis0212<<14 | 0x35<<7 | 0x20,
+ 33131 - 19968: jis0208<<14 | 0x1B<<7 | 0x4F,
+ 33133 - 19968: jis0212<<14 | 0x35<<7 | 0x21,
+ 33134 - 19968: jis0208<<14 | 0x46<<7 | 0x07,
+ 33135 - 19968: jis0212<<14 | 0x35<<7 | 0x22,
+ 33136 - 19968: jis0208<<14 | 0x18<<7 | 0x57,
+ 33137 - 19968: jis0208<<14 | 0x46<<7 | 0x06,
+ 33140 - 19968: jis0208<<14 | 0x46<<7 | 0x0A,
+ 33143 - 19968: jis0212<<14 | 0x35<<7 | 0x23,
+ 33144 - 19968: jis0208<<14 | 0x23<<7 | 0x11,
+ 33145 - 19968: jis0208<<14 | 0x29<<7 | 0x01,
+ 33146 - 19968: jis0208<<14 | 0x20<<7 | 0x02,
+ 33151 - 19968: jis0208<<14 | 0x21<<7 | 0x3B,
+ 33152 - 19968: jis0208<<14 | 0x46<<7 | 0x0E,
+ 33153 - 19968: jis0212<<14 | 0x35<<7 | 0x24,
+ 33154 - 19968: jis0208<<14 | 0x46<<7 | 0x0F,
+ 33155 - 19968: jis0208<<14 | 0x46<<7 | 0x0B,
+ 33156 - 19968: jis0212<<14 | 0x35<<7 | 0x26,
+ 33157 - 19968: jis0212<<14 | 0x35<<7 | 0x27,
+ 33158 - 19968: jis0212<<14 | 0x35<<7 | 0x28,
+ 33160 - 19968: jis0208<<14 | 0x46<<7 | 0x0C,
+ 33162 - 19968: jis0208<<14 | 0x46<<7 | 0x0D,
+ 33163 - 19968: jis0212<<14 | 0x35<<7 | 0x29,
+ 33166 - 19968: jis0212<<14 | 0x35<<7 | 0x2A,
+ 33167 - 19968: jis0208<<14 | 0x18<<7 | 0x30,
+ 33168 - 19968: jis0212<<14 | 0x35<<7 | 0x25,
+ 33171 - 19968: jis0208<<14 | 0x46<<7 | 0x15,
+ 33173 - 19968: jis0208<<14 | 0x46<<7 | 0x11,
+ 33174 - 19968: jis0212<<14 | 0x35<<7 | 0x2B,
+ 33176 - 19968: jis0212<<14 | 0x35<<7 | 0x2C,
+ 33178 - 19968: jis0208<<14 | 0x28<<7 | 0x45,
+ 33179 - 19968: jis0212<<14 | 0x35<<7 | 0x2D,
+ 33180 - 19968: jis0208<<14 | 0x2A<<7 | 0x4B,
+ 33181 - 19968: jis0208<<14 | 0x28<<7 | 0x07,
+ 33182 - 19968: jis0212<<14 | 0x35<<7 | 0x2E,
+ 33184 - 19968: jis0208<<14 | 0x46<<7 | 0x10,
+ 33186 - 19968: jis0212<<14 | 0x35<<7 | 0x2F,
+ 33187 - 19968: jis0208<<14 | 0x46<<7 | 0x13,
+ 33188 - 19968: jis0208<<14 | 0x46<<7 | 0x12,
+ 33192 - 19968: jis0208<<14 | 0x2A<<7 | 0x23,
+ 33193 - 19968: jis0208<<14 | 0x46<<7 | 0x16,
+ 33198 - 19968: jis0212<<14 | 0x35<<7 | 0x30,
+ 33200 - 19968: jis0208<<14 | 0x46<<7 | 0x17,
+ 33202 - 19968: jis0212<<14 | 0x35<<7 | 0x31,
+ 33203 - 19968: jis0208<<14 | 0x20<<7 | 0x16,
+ 33204 - 19968: jis0212<<14 | 0x35<<7 | 0x32,
+ 33205 - 19968: jis0208<<14 | 0x46<<7 | 0x18,
+ 33208 - 19968: jis0208<<14 | 0x46<<7 | 0x1A,
+ 33210 - 19968: jis0208<<14 | 0x46<<7 | 0x1E,
+ 33211 - 19968: jis0212<<14 | 0x35<<7 | 0x33,
+ 33213 - 19968: jis0208<<14 | 0x46<<7 | 0x1B,
+ 33214 - 19968: jis0208<<14 | 0x46<<7 | 0x19,
+ 33215 - 19968: jis0208<<14 | 0x26<<7 | 0x1E,
+ 33216 - 19968: jis0208<<14 | 0x46<<7 | 0x1C,
+ 33218 - 19968: jis0208<<14 | 0x46<<7 | 0x1D,
+ 33219 - 19968: jis0212<<14 | 0x35<<7 | 0x35,
+ 33221 - 19968: jis0212<<14 | 0x35<<7 | 0x36,
+ 33222 - 19968: jis0208<<14 | 0x11<<7 | 0x11,
+ 33224 - 19968: jis0208<<14 | 0x46<<7 | 0x24,
+ 33225 - 19968: jis0208<<14 | 0x46<<7 | 0x1F,
+ 33226 - 19968: jis0212<<14 | 0x35<<7 | 0x37,
+ 33227 - 19968: jis0212<<14 | 0x35<<7 | 0x34,
+ 33229 - 19968: jis0208<<14 | 0x46<<7 | 0x20,
+ 33230 - 19968: jis0212<<14 | 0x35<<7 | 0x38,
+ 33231 - 19968: jis0212<<14 | 0x35<<7 | 0x39,
+ 33233 - 19968: jis0208<<14 | 0x46<<7 | 0x21,
+ 33235 - 19968: jis0208<<14 | 0x21<<7 | 0x00,
+ 33237 - 19968: jis0212<<14 | 0x35<<7 | 0x3A,
+ 33239 - 19968: jis0212<<14 | 0x35<<7 | 0x3B,
+ 33240 - 19968: jis0208<<14 | 0x46<<7 | 0x23,
+ 33241 - 19968: jis0208<<14 | 0x46<<7 | 0x22,
+ 33242 - 19968: jis0208<<14 | 0x46<<7 | 0x25,
+ 33243 - 19968: jis0212<<14 | 0x35<<7 | 0x3C,
+ 33245 - 19968: jis0212<<14 | 0x35<<7 | 0x3D,
+ 33246 - 19968: jis0212<<14 | 0x35<<7 | 0x3E,
+ 33247 - 19968: jis0208<<14 | 0x46<<7 | 0x26,
+ 33248 - 19968: jis0208<<14 | 0x46<<7 | 0x27,
+ 33249 - 19968: jis0212<<14 | 0x35<<7 | 0x3F,
+ 33251 - 19968: jis0208<<14 | 0x1E<<7 | 0x22,
+ 33252 - 19968: jis0212<<14 | 0x35<<7 | 0x40,
+ 33253 - 19968: jis0208<<14 | 0x11<<7 | 0x48,
+ 33255 - 19968: jis0208<<14 | 0x46<<7 | 0x28,
+ 33256 - 19968: jis0208<<14 | 0x2D<<7 | 0x36,
+ 33258 - 19968: jis0208<<14 | 0x1B<<7 | 0x0A,
+ 33259 - 19968: jis0212<<14 | 0x35<<7 | 0x41,
+ 33260 - 19968: jis0212<<14 | 0x35<<7 | 0x42,
+ 33261 - 19968: jis0208<<14 | 0x1C<<7 | 0x0C,
+ 33264 - 19968: jis0212<<14 | 0x35<<7 | 0x43,
+ 33265 - 19968: jis0212<<14 | 0x35<<7 | 0x44,
+ 33266 - 19968: jis0212<<14 | 0x35<<7 | 0x45,
+ 33267 - 19968: jis0208<<14 | 0x1A<<7 | 0x49,
+ 33268 - 19968: jis0208<<14 | 0x22<<7 | 0x36,
+ 33269 - 19968: jis0212<<14 | 0x35<<7 | 0x46,
+ 33270 - 19968: jis0212<<14 | 0x35<<7 | 0x47,
+ 33272 - 19968: jis0212<<14 | 0x35<<7 | 0x48,
+ 33273 - 19968: jis0212<<14 | 0x35<<7 | 0x49,
+ 33274 - 19968: jis0208<<14 | 0x46<<7 | 0x29,
+ 33275 - 19968: jis0208<<14 | 0x46<<7 | 0x2A,
+ 33276 - 19968: jis0208<<14 | 0x10<<7 | 0x10,
+ 33277 - 19968: jis0212<<14 | 0x35<<7 | 0x4A,
+ 33278 - 19968: jis0208<<14 | 0x46<<7 | 0x2B,
+ 33279 - 19968: jis0212<<14 | 0x35<<7 | 0x4B,
+ 33280 - 19968: jis0212<<14 | 0x35<<7 | 0x4C,
+ 33281 - 19968: jis0208<<14 | 0x46<<7 | 0x2C,
+ 33282 - 19968: jis0208<<14 | 0x46<<7 | 0x2D,
+ 33283 - 19968: jis0212<<14 | 0x35<<7 | 0x4D,
+ 33285 - 19968: jis0208<<14 | 0x46<<7 | 0x2E,
+ 33287 - 19968: jis0208<<14 | 0x46<<7 | 0x2F,
+ 33288 - 19968: jis0208<<14 | 0x15<<7 | 0x1C,
+ 33289 - 19968: jis0208<<14 | 0x39<<7 | 0x09,
+ 33290 - 19968: jis0208<<14 | 0x46<<7 | 0x30,
+ 33292 - 19968: jis0208<<14 | 0x1F<<7 | 0x44,
+ 33293 - 19968: jis0208<<14 | 0x46<<7 | 0x31,
+ 33294 - 19968: jis0208<<14 | 0x1B<<7 | 0x2A,
+ 33295 - 19968: jis0212<<14 | 0x35<<7 | 0x4E,
+ 33296 - 19968: jis0208<<14 | 0x46<<7 | 0x32,
+ 33298 - 19968: jis0208<<14 | 0x2F<<7 | 0x0F,
+ 33299 - 19968: jis0212<<14 | 0x35<<7 | 0x4F,
+ 33300 - 19968: jis0212<<14 | 0x35<<7 | 0x50,
+ 33302 - 19968: jis0208<<14 | 0x46<<7 | 0x33,
+ 33303 - 19968: jis0208<<14 | 0x29<<7 | 0x3D,
+ 33304 - 19968: jis0208<<14 | 0x13<<7 | 0x3B,
+ 33305 - 19968: jis0212<<14 | 0x35<<7 | 0x51,
+ 33306 - 19968: jis0212<<14 | 0x35<<7 | 0x52,
+ 33307 - 19968: jis0208<<14 | 0x20<<7 | 0x03,
+ 33308 - 19968: jis0208<<14 | 0x1C<<7 | 0x37,
+ 33309 - 19968: jis0212<<14 | 0x35<<7 | 0x53,
+ 33310 - 19968: jis0208<<14 | 0x28<<7 | 0x50,
+ 33311 - 19968: jis0208<<14 | 0x1C<<7 | 0x0D,
+ 33313 - 19968: jis0212<<14 | 0x35<<7 | 0x54,
+ 33314 - 19968: jis0212<<14 | 0x35<<7 | 0x55,
+ 33320 - 19968: jis0212<<14 | 0x35<<7 | 0x56,
+ 33321 - 19968: jis0208<<14 | 0x46<<7 | 0x34,
+ 33322 - 19968: jis0208<<14 | 0x18<<7 | 0x31,
+ 33323 - 19968: jis0208<<14 | 0x46<<7 | 0x35,
+ 33324 - 19968: jis0208<<14 | 0x27<<7 | 0x2B,
+ 33326 - 19968: jis0208<<14 | 0x46<<7 | 0x43,
+ 33330 - 19968: jis0212<<14 | 0x35<<7 | 0x57,
+ 33331 - 19968: jis0208<<14 | 0x46<<7 | 0x37,
+ 33332 - 19968: jis0212<<14 | 0x35<<7 | 0x58,
+ 33333 - 19968: jis0208<<14 | 0x21<<7 | 0x28,
+ 33334 - 19968: jis0208<<14 | 0x26<<7 | 0x54,
+ 33335 - 19968: jis0208<<14 | 0x17<<7 | 0x1E,
+ 33336 - 19968: jis0208<<14 | 0x46<<7 | 0x36,
+ 33337 - 19968: jis0208<<14 | 0x20<<7 | 0x04,
+ 33338 - 19968: jis0212<<14 | 0x35<<7 | 0x59,
+ 33344 - 19968: jis0208<<14 | 0x46<<7 | 0x38,
+ 33347 - 19968: jis0212<<14 | 0x35<<7 | 0x5A,
+ 33348 - 19968: jis0212<<14 | 0x35<<7 | 0x5B,
+ 33349 - 19968: jis0212<<14 | 0x35<<7 | 0x5C,
+ 33350 - 19968: jis0212<<14 | 0x35<<7 | 0x5D,
+ 33351 - 19968: jis0208<<14 | 0x23<<7 | 0x59,
+ 33355 - 19968: jis0212<<14 | 0x36<<7 | 0x00,
+ 33358 - 19968: jis0212<<14 | 0x36<<7 | 0x01,
+ 33359 - 19968: jis0212<<14 | 0x36<<7 | 0x02,
+ 33361 - 19968: jis0212<<14 | 0x36<<7 | 0x03,
+ 33366 - 19968: jis0212<<14 | 0x36<<7 | 0x04,
+ 33368 - 19968: jis0208<<14 | 0x46<<7 | 0x3A,
+ 33369 - 19968: jis0208<<14 | 0x46<<7 | 0x39,
+ 33370 - 19968: jis0208<<14 | 0x46<<7 | 0x3C,
+ 33372 - 19968: jis0212<<14 | 0x36<<7 | 0x05,
+ 33373 - 19968: jis0208<<14 | 0x46<<7 | 0x3B,
+ 33375 - 19968: jis0208<<14 | 0x46<<7 | 0x3D,
+ 33376 - 19968: jis0212<<14 | 0x36<<7 | 0x06,
+ 33378 - 19968: jis0208<<14 | 0x46<<7 | 0x3F,
+ 33379 - 19968: jis0212<<14 | 0x36<<7 | 0x07,
+ 33380 - 19968: jis0208<<14 | 0x46<<7 | 0x3E,
+ 33382 - 19968: jis0208<<14 | 0x13<<7 | 0x2E,
+ 33383 - 19968: jis0212<<14 | 0x36<<7 | 0x08,
+ 33384 - 19968: jis0208<<14 | 0x46<<7 | 0x40,
+ 33386 - 19968: jis0208<<14 | 0x46<<7 | 0x41,
+ 33387 - 19968: jis0208<<14 | 0x46<<7 | 0x42,
+ 33389 - 19968: jis0212<<14 | 0x36<<7 | 0x09,
+ 33390 - 19968: jis0208<<14 | 0x19<<7 | 0x10,
+ 33391 - 19968: jis0208<<14 | 0x2D<<7 | 0x28,
+ 33393 - 19968: jis0208<<14 | 0x46<<7 | 0x44,
+ 33394 - 19968: jis0208<<14 | 0x1E<<7 | 0x06,
+ 33396 - 19968: jis0212<<14 | 0x36<<7 | 0x0A,
+ 33398 - 19968: jis0208<<14 | 0x10<<7 | 0x4F,
+ 33399 - 19968: jis0208<<14 | 0x46<<7 | 0x45,
+ 33400 - 19968: jis0208<<14 | 0x46<<7 | 0x46,
+ 33403 - 19968: jis0212<<14 | 0x36<<7 | 0x0B,
+ 33405 - 19968: jis0212<<14 | 0x36<<7 | 0x0C,
+ 33406 - 19968: jis0208<<14 | 0x46<<7 | 0x47,
+ 33407 - 19968: jis0212<<14 | 0x36<<7 | 0x0D,
+ 33408 - 19968: jis0212<<14 | 0x36<<7 | 0x0E,
+ 33409 - 19968: jis0212<<14 | 0x36<<7 | 0x0F,
+ 33411 - 19968: jis0212<<14 | 0x36<<7 | 0x10,
+ 33412 - 19968: jis0212<<14 | 0x36<<7 | 0x11,
+ 33415 - 19968: jis0212<<14 | 0x36<<7 | 0x12,
+ 33417 - 19968: jis0212<<14 | 0x36<<7 | 0x13,
+ 33418 - 19968: jis0212<<14 | 0x36<<7 | 0x14,
+ 33419 - 19968: jis0208<<14 | 0x0F<<7 | 0x51,
+ 33421 - 19968: jis0208<<14 | 0x46<<7 | 0x48,
+ 33422 - 19968: jis0212<<14 | 0x36<<7 | 0x15,
+ 33425 - 19968: jis0212<<14 | 0x36<<7 | 0x16,
+ 33426 - 19968: jis0208<<14 | 0x46<<7 | 0x49,
+ 33428 - 19968: jis0212<<14 | 0x36<<7 | 0x17,
+ 33430 - 19968: jis0212<<14 | 0x36<<7 | 0x18,
+ 33432 - 19968: jis0212<<14 | 0x36<<7 | 0x19,
+ 33433 - 19968: jis0208<<14 | 0x28<<7 | 0x46,
+ 33434 - 19968: jis0212<<14 | 0x36<<7 | 0x1A,
+ 33435 - 19968: jis0212<<14 | 0x36<<7 | 0x1B,
+ 33437 - 19968: jis0208<<14 | 0x1B<<7 | 0x26,
+ 33439 - 19968: jis0208<<14 | 0x46<<7 | 0x4B,
+ 33440 - 19968: jis0212<<14 | 0x36<<7 | 0x1C,
+ 33441 - 19968: jis0212<<14 | 0x36<<7 | 0x1D,
+ 33443 - 19968: jis0212<<14 | 0x36<<7 | 0x1E,
+ 33444 - 19968: jis0212<<14 | 0x36<<7 | 0x1F,
+ 33445 - 19968: jis0208<<14 | 0x12<<7 | 0x08,
+ 33446 - 19968: jis0208<<14 | 0x0F<<7 | 0x11,
+ 33447 - 19968: jis0212<<14 | 0x36<<7 | 0x20,
+ 33448 - 19968: jis0212<<14 | 0x36<<7 | 0x21,
+ 33449 - 19968: jis0212<<14 | 0x36<<7 | 0x22,
+ 33450 - 19968: jis0212<<14 | 0x36<<7 | 0x23,
+ 33451 - 19968: jis0208<<14 | 0x46<<7 | 0x4A,
+ 33452 - 19968: jis0208<<14 | 0x46<<7 | 0x4D,
+ 33453 - 19968: jis0208<<14 | 0x26<<7 | 0x2D,
+ 33454 - 19968: jis0212<<14 | 0x36<<7 | 0x24,
+ 33455 - 19968: jis0208<<14 | 0x1E<<7 | 0x23,
+ 33456 - 19968: jis0212<<14 | 0x36<<7 | 0x25,
+ 33457 - 19968: jis0208<<14 | 0x11<<7 | 0x35,
+ 33458 - 19968: jis0212<<14 | 0x36<<7 | 0x26,
+ 33459 - 19968: jis0208<<14 | 0x2A<<7 | 0x06,
+ 33460 - 19968: jis0212<<14 | 0x36<<7 | 0x27,
+ 33463 - 19968: jis0212<<14 | 0x36<<7 | 0x28,
+ 33464 - 19968: jis0208<<14 | 0x16<<7 | 0x3C,
+ 33465 - 19968: jis0208<<14 | 0x15<<7 | 0x3B,
+ 33466 - 19968: jis0212<<14 | 0x36<<7 | 0x29,
+ 33467 - 19968: jis0208<<14 | 0x46<<7 | 0x4C,
+ 33468 - 19968: jis0212<<14 | 0x36<<7 | 0x2A,
+ 33469 - 19968: jis0208<<14 | 0x11<<7 | 0x49,
+ 33470 - 19968: jis0212<<14 | 0x36<<7 | 0x2B,
+ 33471 - 19968: jis0212<<14 | 0x36<<7 | 0x2C,
+ 33477 - 19968: jis0208<<14 | 0x13<<7 | 0x02,
+ 33478 - 19968: jis0212<<14 | 0x36<<7 | 0x2D,
+ 33488 - 19968: jis0212<<14 | 0x36<<7 | 0x2E,
+ 33489 - 19968: jis0208<<14 | 0x10<<7 | 0x50,
+ 33490 - 19968: jis0208<<14 | 0x46<<7 | 0x51,
+ 33491 - 19968: jis0208<<14 | 0x2D<<7 | 0x49,
+ 33492 - 19968: jis0208<<14 | 0x21<<7 | 0x3C,
+ 33493 - 19968: jis0212<<14 | 0x36<<7 | 0x2F,
+ 33495 - 19968: jis0208<<14 | 0x28<<7 | 0x23,
+ 33497 - 19968: jis0208<<14 | 0x46<<7 | 0x5D,
+ 33498 - 19968: jis0212<<14 | 0x36<<7 | 0x30,
+ 33499 - 19968: jis0208<<14 | 0x11<<7 | 0x36,
+ 33500 - 19968: jis0208<<14 | 0x46<<7 | 0x5B,
+ 33502 - 19968: jis0208<<14 | 0x46<<7 | 0x59,
+ 33503 - 19968: jis0208<<14 | 0x46<<7 | 0x50,
+ 33504 - 19968: jis0212<<14 | 0x36<<7 | 0x31,
+ 33505 - 19968: jis0208<<14 | 0x46<<7 | 0x4E,
+ 33506 - 19968: jis0212<<14 | 0x36<<7 | 0x32,
+ 33507 - 19968: jis0208<<14 | 0x46<<7 | 0x4F,
+ 33508 - 19968: jis0212<<14 | 0x36<<7 | 0x33,
+ 33509 - 19968: jis0208<<14 | 0x1B<<7 | 0x42,
+ 33510 - 19968: jis0208<<14 | 0x15<<7 | 0x4B,
+ 33511 - 19968: jis0208<<14 | 0x22<<7 | 0x56,
+ 33512 - 19968: jis0212<<14 | 0x36<<7 | 0x34,
+ 33514 - 19968: jis0212<<14 | 0x36<<7 | 0x35,
+ 33515 - 19968: jis0208<<14 | 0x25<<7 | 0x30,
+ 33517 - 19968: jis0212<<14 | 0x36<<7 | 0x36,
+ 33519 - 19968: jis0212<<14 | 0x36<<7 | 0x37,
+ 33521 - 19968: jis0208<<14 | 0x10<<7 | 0x30,
+ 33523 - 19968: jis0208<<14 | 0x46<<7 | 0x53,
+ 33524 - 19968: jis0208<<14 | 0x46<<7 | 0x52,
+ 33526 - 19968: jis0212<<14 | 0x36<<7 | 0x38,
+ 33527 - 19968: jis0212<<14 | 0x36<<7 | 0x39,
+ 33529 - 19968: jis0208<<14 | 0x46<<7 | 0x58,
+ 33530 - 19968: jis0208<<14 | 0x46<<7 | 0x54,
+ 33531 - 19968: jis0208<<14 | 0x46<<7 | 0x57,
+ 33533 - 19968: jis0212<<14 | 0x36<<7 | 0x3A,
+ 33534 - 19968: jis0212<<14 | 0x36<<7 | 0x3B,
+ 33536 - 19968: jis0212<<14 | 0x36<<7 | 0x3C,
+ 33537 - 19968: jis0208<<14 | 0x5A<<7 | 0x36,
+ 33538 - 19968: jis0208<<14 | 0x2B<<7 | 0x2F,
+ 33539 - 19968: jis0208<<14 | 0x46<<7 | 0x56,
+ 33540 - 19968: jis0208<<14 | 0x11<<7 | 0x37,
+ 33541 - 19968: jis0208<<14 | 0x12<<7 | 0x5C,
+ 33542 - 19968: jis0208<<14 | 0x46<<7 | 0x5A,
+ 33543 - 19968: jis0212<<14 | 0x36<<7 | 0x3E,
+ 33544 - 19968: jis0212<<14 | 0x36<<7 | 0x3F,
+ 33545 - 19968: jis0208<<14 | 0x46<<7 | 0x5C,
+ 33546 - 19968: jis0212<<14 | 0x36<<7 | 0x40,
+ 33547 - 19968: jis0212<<14 | 0x36<<7 | 0x41,
+ 33550 - 19968: jis0208<<14 | 0x16<<7 | 0x33,
+ 33558 - 19968: jis0208<<14 | 0x47<<7 | 0x02,
+ 33559 - 19968: jis0208<<14 | 0x47<<7 | 0x0B,
+ 33560 - 19968: jis0208<<14 | 0x47<<7 | 0x0C,
+ 33563 - 19968: jis0212<<14 | 0x36<<7 | 0x43,
+ 33564 - 19968: jis0208<<14 | 0x0F<<7 | 0x0A,
+ 33565 - 19968: jis0212<<14 | 0x36<<7 | 0x44,
+ 33566 - 19968: jis0212<<14 | 0x36<<7 | 0x45,
+ 33567 - 19968: jis0212<<14 | 0x36<<7 | 0x46,
+ 33569 - 19968: jis0212<<14 | 0x36<<7 | 0x47,
+ 33570 - 19968: jis0212<<14 | 0x36<<7 | 0x48,
+ 33571 - 19968: jis0208<<14 | 0x47<<7 | 0x13,
+ 33576 - 19968: jis0208<<14 | 0x0F<<7 | 0x50,
+ 33579 - 19968: jis0208<<14 | 0x47<<7 | 0x0A,
+ 33580 - 19968: jis0212<<14 | 0x36<<7 | 0x49,
+ 33581 - 19968: jis0212<<14 | 0x36<<7 | 0x4A,
+ 33582 - 19968: jis0212<<14 | 0x36<<7 | 0x4B,
+ 33583 - 19968: jis0208<<14 | 0x47<<7 | 0x09,
+ 33584 - 19968: jis0212<<14 | 0x36<<7 | 0x4C,
+ 33585 - 19968: jis0208<<14 | 0x47<<7 | 0x04,
+ 33586 - 19968: jis0208<<14 | 0x47<<7 | 0x03,
+ 33587 - 19968: jis0212<<14 | 0x36<<7 | 0x4D,
+ 33588 - 19968: jis0208<<14 | 0x47<<7 | 0x01,
+ 33589 - 19968: jis0208<<14 | 0x47<<7 | 0x00,
+ 33590 - 19968: jis0208<<14 | 0x22<<7 | 0x42,
+ 33591 - 19968: jis0212<<14 | 0x36<<7 | 0x4E,
+ 33592 - 19968: jis0208<<14 | 0x21<<7 | 0x5A,
+ 33593 - 19968: jis0208<<14 | 0x47<<7 | 0x06,
+ 33594 - 19968: jis0212<<14 | 0x36<<7 | 0x4F,
+ 33596 - 19968: jis0212<<14 | 0x36<<7 | 0x50,
+ 33597 - 19968: jis0212<<14 | 0x36<<7 | 0x51,
+ 33600 - 19968: jis0208<<14 | 0x47<<7 | 0x05,
+ 33602 - 19968: jis0212<<14 | 0x36<<7 | 0x52,
+ 33603 - 19968: jis0212<<14 | 0x36<<7 | 0x53,
+ 33604 - 19968: jis0212<<14 | 0x36<<7 | 0x54,
+ 33605 - 19968: jis0208<<14 | 0x47<<7 | 0x08,
+ 33607 - 19968: jis0212<<14 | 0x36<<7 | 0x55,
+ 33609 - 19968: jis0208<<14 | 0x20<<7 | 0x4F,
+ 33610 - 19968: jis0208<<14 | 0x16<<7 | 0x34,
+ 33613 - 19968: jis0212<<14 | 0x36<<7 | 0x56,
+ 33614 - 19968: jis0212<<14 | 0x36<<7 | 0x57,
+ 33615 - 19968: jis0208<<14 | 0x10<<7 | 0x20,
+ 33616 - 19968: jis0208<<14 | 0x47<<7 | 0x07,
+ 33617 - 19968: jis0212<<14 | 0x36<<7 | 0x58,
+ 33618 - 19968: jis0208<<14 | 0x18<<7 | 0x32,
+ 33619 - 19968: jis0212<<14 | 0x37<<7 | 0x1D,
+ 33620 - 19968: jis0212<<14 | 0x36<<7 | 0x42,
+ 33621 - 19968: jis0212<<14 | 0x36<<7 | 0x59,
+ 33622 - 19968: jis0212<<14 | 0x36<<7 | 0x5A,
+ 33623 - 19968: jis0212<<14 | 0x36<<7 | 0x5B,
+ 33624 - 19968: jis0208<<14 | 0x20<<7 | 0x50,
+ 33634 - 19968: jis0208<<14 | 0x5A<<7 | 0x37,
+ 33648 - 19968: jis0212<<14 | 0x36<<7 | 0x5C,
+ 33651 - 19968: jis0208<<14 | 0x47<<7 | 0x19,
+ 33653 - 19968: jis0208<<14 | 0x47<<7 | 0x1A,
+ 33655 - 19968: jis0208<<14 | 0x11<<7 | 0x38,
+ 33656 - 19968: jis0212<<14 | 0x36<<7 | 0x5D,
+ 33659 - 19968: jis0208<<14 | 0x11<<7 | 0x0D,
+ 33660 - 19968: jis0208<<14 | 0x47<<7 | 0x17,
+ 33661 - 19968: jis0212<<14 | 0x37<<7 | 0x00,
+ 33663 - 19968: jis0208<<14 | 0x5A<<7 | 0x38,
+ 33664 - 19968: jis0212<<14 | 0x37<<7 | 0x02,
+ 33666 - 19968: jis0212<<14 | 0x37<<7 | 0x03,
+ 33668 - 19968: jis0212<<14 | 0x37<<7 | 0x04,
+ 33669 - 19968: jis0208<<14 | 0x47<<7 | 0x0D,
+ 33670 - 19968: jis0212<<14 | 0x37<<7 | 0x05,
+ 33671 - 19968: jis0208<<14 | 0x47<<7 | 0x15,
+ 33673 - 19968: jis0208<<14 | 0x47<<7 | 0x1C,
+ 33674 - 19968: jis0208<<14 | 0x47<<7 | 0x16,
+ 33677 - 19968: jis0212<<14 | 0x37<<7 | 0x06,
+ 33678 - 19968: jis0208<<14 | 0x47<<7 | 0x14,
+ 33682 - 19968: jis0212<<14 | 0x37<<7 | 0x07,
+ 33683 - 19968: jis0208<<14 | 0x46<<7 | 0x55,
+ 33684 - 19968: jis0212<<14 | 0x37<<7 | 0x08,
+ 33685 - 19968: jis0212<<14 | 0x37<<7 | 0x09,
+ 33686 - 19968: jis0208<<14 | 0x47<<7 | 0x12,
+ 33688 - 19968: jis0212<<14 | 0x37<<7 | 0x0A,
+ 33689 - 19968: jis0212<<14 | 0x37<<7 | 0x0B,
+ 33690 - 19968: jis0208<<14 | 0x47<<7 | 0x0E,
+ 33691 - 19968: jis0212<<14 | 0x37<<7 | 0x0C,
+ 33692 - 19968: jis0212<<14 | 0x37<<7 | 0x0D,
+ 33693 - 19968: jis0212<<14 | 0x37<<7 | 0x0E,
+ 33694 - 19968: jis0208<<14 | 0x13<<7 | 0x2F,
+ 33695 - 19968: jis0208<<14 | 0x47<<7 | 0x10,
+ 33696 - 19968: jis0208<<14 | 0x47<<7 | 0x1B,
+ 33698 - 19968: jis0208<<14 | 0x47<<7 | 0x11,
+ 33702 - 19968: jis0212<<14 | 0x37<<7 | 0x0F,
+ 33703 - 19968: jis0212<<14 | 0x37<<7 | 0x10,
+ 33704 - 19968: jis0208<<14 | 0x47<<7 | 0x1D,
+ 33705 - 19968: jis0212<<14 | 0x37<<7 | 0x11,
+ 33706 - 19968: jis0208<<14 | 0x47<<7 | 0x0F,
+ 33707 - 19968: jis0208<<14 | 0x26<<7 | 0x5B,
+ 33708 - 19968: jis0212<<14 | 0x37<<7 | 0x12,
+ 33709 - 19968: jis0212<<14 | 0x37<<7 | 0x2B,
+ 33713 - 19968: jis0208<<14 | 0x2C<<7 | 0x48,
+ 33717 - 19968: jis0208<<14 | 0x47<<7 | 0x18,
+ 33725 - 19968: jis0208<<14 | 0x47<<7 | 0x2E,
+ 33726 - 19968: jis0212<<14 | 0x37<<7 | 0x13,
+ 33727 - 19968: jis0212<<14 | 0x37<<7 | 0x14,
+ 33728 - 19968: jis0212<<14 | 0x37<<7 | 0x15,
+ 33729 - 19968: jis0208<<14 | 0x47<<7 | 0x26,
+ 33733 - 19968: jis0208<<14 | 0x1E<<7 | 0x5A,
+ 33735 - 19968: jis0208<<14 | 0x5A<<7 | 0x39,
+ 33737 - 19968: jis0212<<14 | 0x37<<7 | 0x17,
+ 33738 - 19968: jis0208<<14 | 0x14<<7 | 0x25,
+ 33740 - 19968: jis0208<<14 | 0x15<<7 | 0x3C,
+ 33742 - 19968: jis0208<<14 | 0x47<<7 | 0x21,
+ 33743 - 19968: jis0212<<14 | 0x37<<7 | 0x18,
+ 33744 - 19968: jis0212<<14 | 0x37<<7 | 0x19,
+ 33745 - 19968: jis0212<<14 | 0x37<<7 | 0x1A,
+ 33747 - 19968: jis0208<<14 | 0x11<<7 | 0x3A,
+ 33748 - 19968: jis0212<<14 | 0x37<<7 | 0x1B,
+ 33750 - 19968: jis0208<<14 | 0x1D<<7 | 0x33,
+ 33752 - 19968: jis0208<<14 | 0x47<<7 | 0x24,
+ 33756 - 19968: jis0208<<14 | 0x19<<7 | 0x39,
+ 33757 - 19968: jis0212<<14 | 0x37<<7 | 0x1C,
+ 33759 - 19968: jis0208<<14 | 0x24<<7 | 0x30,
+ 33760 - 19968: jis0208<<14 | 0x47<<7 | 0x29,
+ 33768 - 19968: jis0212<<14 | 0x37<<7 | 0x1E,
+ 33769 - 19968: jis0208<<14 | 0x29<<7 | 0x4D,
+ 33770 - 19968: jis0212<<14 | 0x37<<7 | 0x1F,
+ 33771 - 19968: jis0208<<14 | 0x47<<7 | 0x20,
+ 33775 - 19968: jis0208<<14 | 0x11<<7 | 0x39,
+ 33776 - 19968: jis0208<<14 | 0x17<<7 | 0x35,
+ 33777 - 19968: jis0208<<14 | 0x28<<7 | 0x08,
+ 33778 - 19968: jis0208<<14 | 0x47<<7 | 0x2A,
+ 33780 - 19968: jis0208<<14 | 0x47<<7 | 0x1E,
+ 33782 - 19968: jis0208<<14 | 0x5A<<7 | 0x3A,
+ 33783 - 19968: jis0208<<14 | 0x47<<7 | 0x27,
+ 33784 - 19968: jis0212<<14 | 0x37<<7 | 0x21,
+ 33785 - 19968: jis0212<<14 | 0x37<<7 | 0x22,
+ 33787 - 19968: jis0208<<14 | 0x47<<7 | 0x31,
+ 33788 - 19968: jis0212<<14 | 0x37<<7 | 0x23,
+ 33789 - 19968: jis0208<<14 | 0x47<<7 | 0x22,
+ 33793 - 19968: jis0212<<14 | 0x37<<7 | 0x24,
+ 33795 - 19968: jis0208<<14 | 0x47<<7 | 0x23,
+ 33796 - 19968: jis0208<<14 | 0x25<<7 | 0x19,
+ 33798 - 19968: jis0212<<14 | 0x37<<7 | 0x25,
+ 33799 - 19968: jis0208<<14 | 0x47<<7 | 0x28,
+ 33802 - 19968: jis0212<<14 | 0x37<<7 | 0x26,
+ 33803 - 19968: jis0208<<14 | 0x47<<7 | 0x25,
+ 33804 - 19968: jis0208<<14 | 0x2A<<7 | 0x07,
+ 33805 - 19968: jis0208<<14 | 0x47<<7 | 0x2B,
+ 33806 - 19968: jis0208<<14 | 0x0F<<7 | 0x3F,
+ 33807 - 19968: jis0212<<14 | 0x37<<7 | 0x27,
+ 33809 - 19968: jis0212<<14 | 0x37<<7 | 0x28,
+ 33811 - 19968: jis0208<<14 | 0x47<<7 | 0x1F,
+ 33813 - 19968: jis0212<<14 | 0x37<<7 | 0x29,
+ 33817 - 19968: jis0212<<14 | 0x37<<7 | 0x2A,
+ 33824 - 19968: jis0208<<14 | 0x47<<7 | 0x2D,
+ 33826 - 19968: jis0208<<14 | 0x47<<7 | 0x2C,
+ 33833 - 19968: jis0208<<14 | 0x26<<7 | 0x4A,
+ 33834 - 19968: jis0208<<14 | 0x47<<7 | 0x33,
+ 33836 - 19968: jis0208<<14 | 0x47<<7 | 0x3E,
+ 33839 - 19968: jis0212<<14 | 0x37<<7 | 0x2C,
+ 33841 - 19968: jis0208<<14 | 0x12<<7 | 0x5D,
+ 33845 - 19968: jis0208<<14 | 0x47<<7 | 0x41,
+ 33848 - 19968: jis0208<<14 | 0x47<<7 | 0x2F,
+ 33849 - 19968: jis0212<<14 | 0x37<<7 | 0x2D,
+ 33852 - 19968: jis0208<<14 | 0x47<<7 | 0x34,
+ 33853 - 19968: jis0208<<14 | 0x2C<<7 | 0x4D,
+ 33861 - 19968: jis0212<<14 | 0x37<<7 | 0x2E,
+ 33862 - 19968: jis0208<<14 | 0x47<<7 | 0x3D,
+ 33863 - 19968: jis0212<<14 | 0x37<<7 | 0x2F,
+ 33864 - 19968: jis0208<<14 | 0x5A<<7 | 0x3B,
+ 33865 - 19968: jis0208<<14 | 0x2C<<7 | 0x34,
+ 33866 - 19968: jis0212<<14 | 0x37<<7 | 0x31,
+ 33869 - 19968: jis0212<<14 | 0x37<<7 | 0x32,
+ 33870 - 19968: jis0208<<14 | 0x2D<<7 | 0x09,
+ 33871 - 19968: jis0212<<14 | 0x37<<7 | 0x33,
+ 33873 - 19968: jis0212<<14 | 0x37<<7 | 0x34,
+ 33874 - 19968: jis0212<<14 | 0x37<<7 | 0x35,
+ 33878 - 19968: jis0212<<14 | 0x37<<7 | 0x36,
+ 33879 - 19968: jis0208<<14 | 0x22<<7 | 0x57,
+ 33880 - 19968: jis0212<<14 | 0x37<<7 | 0x37,
+ 33881 - 19968: jis0212<<14 | 0x37<<7 | 0x38,
+ 33882 - 19968: jis0212<<14 | 0x37<<7 | 0x39,
+ 33883 - 19968: jis0208<<14 | 0x12<<7 | 0x4A,
+ 33884 - 19968: jis0212<<14 | 0x37<<7 | 0x3A,
+ 33888 - 19968: jis0212<<14 | 0x37<<7 | 0x3B,
+ 33889 - 19968: jis0208<<14 | 0x28<<7 | 0x51,
+ 33890 - 19968: jis0208<<14 | 0x47<<7 | 0x43,
+ 33891 - 19968: jis0208<<14 | 0x25<<7 | 0x00,
+ 33892 - 19968: jis0212<<14 | 0x37<<7 | 0x3C,
+ 33893 - 19968: jis0212<<14 | 0x37<<7 | 0x3D,
+ 33894 - 19968: jis0208<<14 | 0x0F<<7 | 0x10,
+ 33895 - 19968: jis0212<<14 | 0x37<<7 | 0x3E,
+ 33897 - 19968: jis0208<<14 | 0x47<<7 | 0x3C,
+ 33898 - 19968: jis0212<<14 | 0x37<<7 | 0x3F,
+ 33899 - 19968: jis0208<<14 | 0x47<<7 | 0x38,
+ 33900 - 19968: jis0208<<14 | 0x20<<7 | 0x51,
+ 33901 - 19968: jis0208<<14 | 0x47<<7 | 0x32,
+ 33902 - 19968: jis0208<<14 | 0x47<<7 | 0x3A,
+ 33903 - 19968: jis0208<<14 | 0x47<<7 | 0x3F,
+ 33904 - 19968: jis0212<<14 | 0x37<<7 | 0x40,
+ 33905 - 19968: jis0208<<14 | 0x26<<7 | 0x0B,
+ 33907 - 19968: jis0212<<14 | 0x37<<7 | 0x41,
+ 33908 - 19968: jis0212<<14 | 0x37<<7 | 0x42,
+ 33909 - 19968: jis0208<<14 | 0x0F<<7 | 0x09,
+ 33910 - 19968: jis0212<<14 | 0x37<<7 | 0x43,
+ 33911 - 19968: jis0208<<14 | 0x47<<7 | 0x37,
+ 33912 - 19968: jis0212<<14 | 0x37<<7 | 0x44,
+ 33913 - 19968: jis0208<<14 | 0x47<<7 | 0x40,
+ 33914 - 19968: jis0208<<14 | 0x28<<7 | 0x57,
+ 33916 - 19968: jis0212<<14 | 0x37<<7 | 0x45,
+ 33917 - 19968: jis0212<<14 | 0x37<<7 | 0x46,
+ 33921 - 19968: jis0212<<14 | 0x37<<7 | 0x47,
+ 33922 - 19968: jis0208<<14 | 0x47<<7 | 0x3B,
+ 33924 - 19968: jis0208<<14 | 0x47<<7 | 0x36,
+ 33925 - 19968: jis0212<<14 | 0x37<<7 | 0x48,
+ 33931 - 19968: jis0208<<14 | 0x1D<<7 | 0x34,
+ 33936 - 19968: jis0208<<14 | 0x1C<<7 | 0x0E,
+ 33938 - 19968: jis0212<<14 | 0x37<<7 | 0x49,
+ 33939 - 19968: jis0212<<14 | 0x37<<7 | 0x4A,
+ 33940 - 19968: jis0208<<14 | 0x1B<<7 | 0x0B,
+ 33941 - 19968: jis0212<<14 | 0x37<<7 | 0x4B,
+ 33945 - 19968: jis0208<<14 | 0x2B<<7 | 0x37,
+ 33948 - 19968: jis0208<<14 | 0x28<<7 | 0x26,
+ 33950 - 19968: jis0212<<14 | 0x37<<7 | 0x4C,
+ 33951 - 19968: jis0208<<14 | 0x47<<7 | 0x46,
+ 33953 - 19968: jis0208<<14 | 0x47<<7 | 0x4F,
+ 33958 - 19968: jis0212<<14 | 0x37<<7 | 0x4D,
+ 33960 - 19968: jis0212<<14 | 0x37<<7 | 0x4E,
+ 33961 - 19968: jis0212<<14 | 0x37<<7 | 0x4F,
+ 33962 - 19968: jis0212<<14 | 0x37<<7 | 0x50,
+ 33965 - 19968: jis0208<<14 | 0x47<<7 | 0x39,
+ 33967 - 19968: jis0212<<14 | 0x37<<7 | 0x51,
+ 33969 - 19968: jis0212<<14 | 0x37<<7 | 0x52,
+ 33970 - 19968: jis0208<<14 | 0x12<<7 | 0x56,
+ 33972 - 19968: jis0208<<14 | 0x5A<<7 | 0x3C,
+ 33976 - 19968: jis0208<<14 | 0x1D<<7 | 0x57,
+ 33977 - 19968: jis0208<<14 | 0x47<<7 | 0x44,
+ 33978 - 19968: jis0212<<14 | 0x37<<7 | 0x54,
+ 33979 - 19968: jis0208<<14 | 0x47<<7 | 0x49,
+ 33980 - 19968: jis0208<<14 | 0x20<<7 | 0x52,
+ 33981 - 19968: jis0212<<14 | 0x37<<7 | 0x55,
+ 33982 - 19968: jis0212<<14 | 0x37<<7 | 0x56,
+ 33983 - 19968: jis0208<<14 | 0x47<<7 | 0x45,
+ 33984 - 19968: jis0212<<14 | 0x37<<7 | 0x57,
+ 33985 - 19968: jis0208<<14 | 0x47<<7 | 0x4C,
+ 33986 - 19968: jis0212<<14 | 0x37<<7 | 0x58,
+ 33988 - 19968: jis0208<<14 | 0x22<<7 | 0x3E,
+ 33990 - 19968: jis0208<<14 | 0x47<<7 | 0x4D,
+ 33991 - 19968: jis0212<<14 | 0x37<<7 | 0x59,
+ 33992 - 19968: jis0212<<14 | 0x37<<7 | 0x5A,
+ 33993 - 19968: jis0208<<14 | 0x2C<<7 | 0x35,
+ 33994 - 19968: jis0208<<14 | 0x47<<7 | 0x42,
+ 33995 - 19968: jis0208<<14 | 0x12<<7 | 0x17,
+ 33996 - 19968: jis0212<<14 | 0x37<<7 | 0x5B,
+ 33997 - 19968: jis0208<<14 | 0x47<<7 | 0x48,
+ 33999 - 19968: jis0212<<14 | 0x37<<7 | 0x5C,
+ 34000 - 19968: jis0208<<14 | 0x47<<7 | 0x4B,
+ 34001 - 19968: jis0208<<14 | 0x2B<<7 | 0x0B,
+ 34003 - 19968: jis0212<<14 | 0x37<<7 | 0x5D,
+ 34006 - 19968: jis0208<<14 | 0x47<<7 | 0x4E,
+ 34009 - 19968: jis0208<<14 | 0x47<<7 | 0x47,
+ 34010 - 19968: jis0208<<14 | 0x47<<7 | 0x4A,
+ 34012 - 19968: jis0208<<14 | 0x58<<7 | 0x04,
+ 34023 - 19968: jis0212<<14 | 0x38<<7 | 0x01,
+ 34026 - 19968: jis0212<<14 | 0x38<<7 | 0x02,
+ 34028 - 19968: jis0208<<14 | 0x2A<<7 | 0x08,
+ 34030 - 19968: jis0208<<14 | 0x2E<<7 | 0x00,
+ 34031 - 19968: jis0212<<14 | 0x38<<7 | 0x03,
+ 34032 - 19968: jis0212<<14 | 0x38<<7 | 0x04,
+ 34033 - 19968: jis0212<<14 | 0x38<<7 | 0x05,
+ 34034 - 19968: jis0212<<14 | 0x38<<7 | 0x06,
+ 34036 - 19968: jis0208<<14 | 0x47<<7 | 0x52,
+ 34039 - 19968: jis0212<<14 | 0x38<<7 | 0x07,
+ 34042 - 19968: jis0212<<14 | 0x38<<7 | 0x09,
+ 34043 - 19968: jis0212<<14 | 0x38<<7 | 0x0A,
+ 34044 - 19968: jis0208<<14 | 0x47<<7 | 0x59,
+ 34045 - 19968: jis0212<<14 | 0x38<<7 | 0x0B,
+ 34047 - 19968: jis0208<<14 | 0x47<<7 | 0x51,
+ 34048 - 19968: jis0208<<14 | 0x1B<<7 | 0x22,
+ 34050 - 19968: jis0212<<14 | 0x38<<7 | 0x0C,
+ 34051 - 19968: jis0212<<14 | 0x38<<7 | 0x0D,
+ 34054 - 19968: jis0208<<14 | 0x47<<7 | 0x30,
+ 34055 - 19968: jis0212<<14 | 0x38<<7 | 0x0E,
+ 34060 - 19968: jis0212<<14 | 0x38<<7 | 0x0F,
+ 34062 - 19968: jis0212<<14 | 0x38<<7 | 0x10,
+ 34064 - 19968: jis0212<<14 | 0x38<<7 | 0x11,
+ 34065 - 19968: jis0208<<14 | 0x29<<7 | 0x2D,
+ 34067 - 19968: jis0208<<14 | 0x2B<<7 | 0x01,
+ 34068 - 19968: jis0208<<14 | 0x47<<7 | 0x58,
+ 34069 - 19968: jis0208<<14 | 0x47<<7 | 0x57,
+ 34071 - 19968: jis0208<<14 | 0x47<<7 | 0x53,
+ 34072 - 19968: jis0208<<14 | 0x47<<7 | 0x54,
+ 34074 - 19968: jis0208<<14 | 0x10<<7 | 0x15,
+ 34076 - 19968: jis0212<<14 | 0x38<<7 | 0x12,
+ 34078 - 19968: jis0212<<14 | 0x38<<7 | 0x13,
+ 34079 - 19968: jis0208<<14 | 0x47<<7 | 0x56,
+ 34081 - 19968: jis0208<<14 | 0x47<<7 | 0x50,
+ 34082 - 19968: jis0212<<14 | 0x38<<7 | 0x14,
+ 34083 - 19968: jis0212<<14 | 0x38<<7 | 0x15,
+ 34084 - 19968: jis0212<<14 | 0x38<<7 | 0x16,
+ 34085 - 19968: jis0212<<14 | 0x38<<7 | 0x17,
+ 34086 - 19968: jis0208<<14 | 0x23<<7 | 0x34,
+ 34087 - 19968: jis0212<<14 | 0x38<<7 | 0x18,
+ 34090 - 19968: jis0212<<14 | 0x38<<7 | 0x19,
+ 34091 - 19968: jis0212<<14 | 0x38<<7 | 0x1A,
+ 34092 - 19968: jis0208<<14 | 0x47<<7 | 0x55,
+ 34093 - 19968: jis0208<<14 | 0x0F<<7 | 0x5D,
+ 34095 - 19968: jis0212<<14 | 0x38<<7 | 0x1B,
+ 34098 - 19968: jis0212<<14 | 0x38<<7 | 0x08,
+ 34099 - 19968: jis0212<<14 | 0x38<<7 | 0x1C,
+ 34100 - 19968: jis0212<<14 | 0x38<<7 | 0x1D,
+ 34101 - 19968: jis0208<<14 | 0x21<<7 | 0x01,
+ 34102 - 19968: jis0212<<14 | 0x38<<7 | 0x1E,
+ 34109 - 19968: jis0208<<14 | 0x29<<7 | 0x22,
+ 34111 - 19968: jis0212<<14 | 0x38<<7 | 0x1F,
+ 34112 - 19968: jis0208<<14 | 0x47<<7 | 0x5A,
+ 34113 - 19968: jis0208<<14 | 0x48<<7 | 0x00,
+ 34115 - 19968: jis0208<<14 | 0x27<<7 | 0x38,
+ 34118 - 19968: jis0212<<14 | 0x38<<7 | 0x20,
+ 34120 - 19968: jis0208<<14 | 0x47<<7 | 0x5D,
+ 34121 - 19968: jis0208<<14 | 0x1D<<7 | 0x35,
+ 34122 - 19968: jis0208<<14 | 0x1B<<7 | 0x28,
+ 34123 - 19968: jis0208<<14 | 0x48<<7 | 0x02,
+ 34126 - 19968: jis0208<<14 | 0x15<<7 | 0x1D,
+ 34127 - 19968: jis0212<<14 | 0x38<<7 | 0x21,
+ 34128 - 19968: jis0212<<14 | 0x38<<7 | 0x22,
+ 34129 - 19968: jis0212<<14 | 0x38<<7 | 0x23,
+ 34130 - 19968: jis0212<<14 | 0x38<<7 | 0x24,
+ 34131 - 19968: jis0208<<14 | 0x5A<<7 | 0x3D,
+ 34133 - 19968: jis0208<<14 | 0x48<<7 | 0x03,
+ 34134 - 19968: jis0212<<14 | 0x38<<7 | 0x26,
+ 34135 - 19968: jis0208<<14 | 0x28<<7 | 0x58,
+ 34136 - 19968: jis0208<<14 | 0x47<<7 | 0x5C,
+ 34137 - 19968: jis0208<<14 | 0x5A<<7 | 0x3E,
+ 34138 - 19968: jis0208<<14 | 0x47<<7 | 0x35,
+ 34140 - 19968: jis0212<<14 | 0x38<<7 | 0x28,
+ 34141 - 19968: jis0212<<14 | 0x38<<7 | 0x29,
+ 34142 - 19968: jis0212<<14 | 0x38<<7 | 0x2A,
+ 34143 - 19968: jis0212<<14 | 0x38<<7 | 0x2B,
+ 34144 - 19968: jis0212<<14 | 0x38<<7 | 0x2C,
+ 34145 - 19968: jis0212<<14 | 0x38<<7 | 0x2D,
+ 34146 - 19968: jis0212<<14 | 0x38<<7 | 0x2E,
+ 34147 - 19968: jis0208<<14 | 0x47<<7 | 0x5B,
+ 34148 - 19968: jis0212<<14 | 0x38<<7 | 0x2F,
+ 34152 - 19968: jis0208<<14 | 0x2E<<7 | 0x2E,
+ 34153 - 19968: jis0208<<14 | 0x25<<7 | 0x01,
+ 34154 - 19968: jis0208<<14 | 0x28<<7 | 0x52,
+ 34155 - 19968: jis0208<<14 | 0x5A<<7 | 0x3F,
+ 34157 - 19968: jis0208<<14 | 0x48<<7 | 0x0A,
+ 34159 - 19968: jis0212<<14 | 0x38<<7 | 0x31,
+ 34167 - 19968: jis0208<<14 | 0x48<<7 | 0x10,
+ 34169 - 19968: jis0212<<14 | 0x38<<7 | 0x32,
+ 34170 - 19968: jis0212<<14 | 0x38<<7 | 0x33,
+ 34171 - 19968: jis0212<<14 | 0x38<<7 | 0x34,
+ 34173 - 19968: jis0212<<14 | 0x38<<7 | 0x35,
+ 34174 - 19968: jis0208<<14 | 0x48<<7 | 0x11,
+ 34175 - 19968: jis0212<<14 | 0x38<<7 | 0x36,
+ 34176 - 19968: jis0208<<14 | 0x48<<7 | 0x04,
+ 34177 - 19968: jis0212<<14 | 0x38<<7 | 0x37,
+ 34180 - 19968: jis0208<<14 | 0x26<<7 | 0x55,
+ 34181 - 19968: jis0212<<14 | 0x38<<7 | 0x38,
+ 34182 - 19968: jis0212<<14 | 0x38<<7 | 0x39,
+ 34183 - 19968: jis0208<<14 | 0x48<<7 | 0x0E,
+ 34184 - 19968: jis0208<<14 | 0x48<<7 | 0x06,
+ 34185 - 19968: jis0212<<14 | 0x38<<7 | 0x3A,
+ 34186 - 19968: jis0208<<14 | 0x48<<7 | 0x08,
+ 34187 - 19968: jis0212<<14 | 0x38<<7 | 0x3B,
+ 34188 - 19968: jis0212<<14 | 0x38<<7 | 0x3C,
+ 34191 - 19968: jis0212<<14 | 0x38<<7 | 0x3D,
+ 34192 - 19968: jis0208<<14 | 0x48<<7 | 0x12,
+ 34193 - 19968: jis0208<<14 | 0x48<<7 | 0x07,
+ 34195 - 19968: jis0212<<14 | 0x38<<7 | 0x3E,
+ 34196 - 19968: jis0208<<14 | 0x48<<7 | 0x0B,
+ 34199 - 19968: jis0208<<14 | 0x10<<7 | 0x51,
+ 34200 - 19968: jis0212<<14 | 0x38<<7 | 0x3F,
+ 34201 - 19968: jis0208<<14 | 0x25<<7 | 0x44,
+ 34203 - 19968: jis0208<<14 | 0x48<<7 | 0x0C,
+ 34204 - 19968: jis0208<<14 | 0x48<<7 | 0x0F,
+ 34205 - 19968: jis0212<<14 | 0x38<<7 | 0x40,
+ 34207 - 19968: jis0212<<14 | 0x38<<7 | 0x41,
+ 34208 - 19968: jis0212<<14 | 0x38<<7 | 0x42,
+ 34210 - 19968: jis0212<<14 | 0x38<<7 | 0x43,
+ 34212 - 19968: jis0208<<14 | 0x48<<7 | 0x05,
+ 34213 - 19968: jis0212<<14 | 0x38<<7 | 0x44,
+ 34214 - 19968: jis0208<<14 | 0x20<<7 | 0x05,
+ 34215 - 19968: jis0212<<14 | 0x38<<7 | 0x45,
+ 34216 - 19968: jis0208<<14 | 0x48<<7 | 0x09,
+ 34217 - 19968: jis0208<<14 | 0x1A<<7 | 0x06,
+ 34218 - 19968: jis0208<<14 | 0x1E<<7 | 0x24,
+ 34219 - 19968: jis0208<<14 | 0x16<<7 | 0x0F,
+ 34220 - 19968: jis0208<<14 | 0x2B<<7 | 0x53,
+ 34221 - 19968: jis0212<<14 | 0x38<<7 | 0x53,
+ 34222 - 19968: jis0208<<14 | 0x2B<<7 | 0x58,
+ 34223 - 19968: jis0208<<14 | 0x1C<<7 | 0x51,
+ 34224 - 19968: jis0208<<14 | 0x5A<<7 | 0x41,
+ 34228 - 19968: jis0212<<14 | 0x38<<7 | 0x46,
+ 34230 - 19968: jis0212<<14 | 0x38<<7 | 0x47,
+ 34231 - 19968: jis0212<<14 | 0x38<<7 | 0x48,
+ 34232 - 19968: jis0212<<14 | 0x38<<7 | 0x49,
+ 34233 - 19968: jis0208<<14 | 0x48<<7 | 0x16,
+ 34234 - 19968: jis0208<<14 | 0x48<<7 | 0x14,
+ 34236 - 19968: jis0212<<14 | 0x38<<7 | 0x4A,
+ 34237 - 19968: jis0212<<14 | 0x38<<7 | 0x4B,
+ 34238 - 19968: jis0212<<14 | 0x38<<7 | 0x4C,
+ 34239 - 19968: jis0212<<14 | 0x38<<7 | 0x4D,
+ 34241 - 19968: jis0208<<14 | 0x2E<<7 | 0x2D,
+ 34242 - 19968: jis0212<<14 | 0x38<<7 | 0x4E,
+ 34247 - 19968: jis0212<<14 | 0x38<<7 | 0x4F,
+ 34249 - 19968: jis0208<<14 | 0x48<<7 | 0x13,
+ 34250 - 19968: jis0212<<14 | 0x38<<7 | 0x50,
+ 34251 - 19968: jis0212<<14 | 0x38<<7 | 0x51,
+ 34253 - 19968: jis0208<<14 | 0x2C<<7 | 0x54,
+ 34254 - 19968: jis0212<<14 | 0x38<<7 | 0x52,
+ 34255 - 19968: jis0208<<14 | 0x48<<7 | 0x15,
+ 34256 - 19968: jis0208<<14 | 0x48<<7 | 0x17,
+ 34261 - 19968: jis0208<<14 | 0x48<<7 | 0x18,
+ 34264 - 19968: jis0212<<14 | 0x38<<7 | 0x54,
+ 34266 - 19968: jis0212<<14 | 0x38<<7 | 0x55,
+ 34268 - 19968: jis0208<<14 | 0x48<<7 | 0x1B,
+ 34269 - 19968: jis0208<<14 | 0x48<<7 | 0x19,
+ 34271 - 19968: jis0212<<14 | 0x38<<7 | 0x56,
+ 34272 - 19968: jis0212<<14 | 0x38<<7 | 0x57,
+ 34276 - 19968: jis0208<<14 | 0x25<<7 | 0x02,
+ 34277 - 19968: jis0208<<14 | 0x48<<7 | 0x1A,
+ 34278 - 19968: jis0212<<14 | 0x38<<7 | 0x58,
+ 34280 - 19968: jis0212<<14 | 0x38<<7 | 0x59,
+ 34281 - 19968: jis0208<<14 | 0x27<<7 | 0x2C,
+ 34282 - 19968: jis0208<<14 | 0x48<<7 | 0x0D,
+ 34285 - 19968: jis0212<<14 | 0x38<<7 | 0x5A,
+ 34291 - 19968: jis0212<<14 | 0x38<<7 | 0x5B,
+ 34294 - 19968: jis0212<<14 | 0x38<<7 | 0x5C,
+ 34295 - 19968: jis0208<<14 | 0x1C<<7 | 0x52,
+ 34297 - 19968: jis0208<<14 | 0x48<<7 | 0x1C,
+ 34298 - 19968: jis0208<<14 | 0x48<<7 | 0x21,
+ 34299 - 19968: jis0208<<14 | 0x20<<7 | 0x53,
+ 34300 - 19968: jis0212<<14 | 0x38<<7 | 0x5D,
+ 34302 - 19968: jis0208<<14 | 0x48<<7 | 0x20,
+ 34303 - 19968: jis0212<<14 | 0x39<<7 | 0x00,
+ 34304 - 19968: jis0212<<14 | 0x39<<7 | 0x01,
+ 34306 - 19968: jis0208<<14 | 0x48<<7 | 0x01,
+ 34308 - 19968: jis0212<<14 | 0x39<<7 | 0x02,
+ 34309 - 19968: jis0212<<14 | 0x39<<7 | 0x03,
+ 34310 - 19968: jis0208<<14 | 0x48<<7 | 0x22,
+ 34311 - 19968: jis0208<<14 | 0x20<<7 | 0x28,
+ 34314 - 19968: jis0208<<14 | 0x48<<7 | 0x1D,
+ 34315 - 19968: jis0208<<14 | 0x48<<7 | 0x1F,
+ 34317 - 19968: jis0212<<14 | 0x39<<7 | 0x04,
+ 34318 - 19968: jis0212<<14 | 0x39<<7 | 0x05,
+ 34320 - 19968: jis0212<<14 | 0x39<<7 | 0x06,
+ 34321 - 19968: jis0212<<14 | 0x39<<7 | 0x07,
+ 34322 - 19968: jis0212<<14 | 0x39<<7 | 0x08,
+ 34323 - 19968: jis0208<<14 | 0x48<<7 | 0x1E,
+ 34326 - 19968: jis0208<<14 | 0x3C<<7 | 0x10,
+ 34327 - 19968: jis0208<<14 | 0x3C<<7 | 0x01,
+ 34328 - 19968: jis0212<<14 | 0x39<<7 | 0x09,
+ 34329 - 19968: jis0212<<14 | 0x39<<7 | 0x0A,
+ 34330 - 19968: jis0208<<14 | 0x48<<7 | 0x24,
+ 34331 - 19968: jis0212<<14 | 0x39<<7 | 0x0B,
+ 34334 - 19968: jis0212<<14 | 0x39<<7 | 0x0C,
+ 34337 - 19968: jis0212<<14 | 0x39<<7 | 0x0D,
+ 34338 - 19968: jis0208<<14 | 0x48<<7 | 0x23,
+ 34343 - 19968: jis0212<<14 | 0x39<<7 | 0x0E,
+ 34345 - 19968: jis0212<<14 | 0x39<<7 | 0x0F,
+ 34349 - 19968: jis0208<<14 | 0x2C<<7 | 0x55,
+ 34351 - 19968: jis0208<<14 | 0x41<<7 | 0x1B,
+ 34352 - 19968: jis0208<<14 | 0x48<<7 | 0x25,
+ 34358 - 19968: jis0212<<14 | 0x39<<7 | 0x10,
+ 34360 - 19968: jis0212<<14 | 0x39<<7 | 0x11,
+ 34362 - 19968: jis0212<<14 | 0x39<<7 | 0x12,
+ 34364 - 19968: jis0212<<14 | 0x39<<7 | 0x13,
+ 34365 - 19968: jis0212<<14 | 0x39<<7 | 0x14,
+ 34367 - 19968: jis0208<<14 | 0x48<<7 | 0x26,
+ 34368 - 19968: jis0212<<14 | 0x39<<7 | 0x15,
+ 34369 - 19968: jis0212<<14 | 0x17<<7 | 0x45,
+ 34370 - 19968: jis0212<<14 | 0x39<<7 | 0x16,
+ 34374 - 19968: jis0212<<14 | 0x39<<7 | 0x17,
+ 34381 - 19968: jis0208<<14 | 0x48<<7 | 0x27,
+ 34382 - 19968: jis0208<<14 | 0x17<<7 | 0x36,
+ 34384 - 19968: jis0208<<14 | 0x14<<7 | 0x33,
+ 34386 - 19968: jis0212<<14 | 0x39<<7 | 0x18,
+ 34387 - 19968: jis0212<<14 | 0x39<<7 | 0x19,
+ 34388 - 19968: jis0208<<14 | 0x48<<7 | 0x29,
+ 34389 - 19968: jis0208<<14 | 0x30<<7 | 0x3C,
+ 34390 - 19968: jis0212<<14 | 0x39<<7 | 0x1A,
+ 34391 - 19968: jis0212<<14 | 0x39<<7 | 0x1B,
+ 34392 - 19968: jis0212<<14 | 0x39<<7 | 0x1C,
+ 34393 - 19968: jis0212<<14 | 0x39<<7 | 0x1D,
+ 34394 - 19968: jis0208<<14 | 0x14<<7 | 0x54,
+ 34396 - 19968: jis0208<<14 | 0x2D<<7 | 0x19,
+ 34397 - 19968: jis0212<<14 | 0x39<<7 | 0x1E,
+ 34398 - 19968: jis0208<<14 | 0x15<<7 | 0x52,
+ 34399 - 19968: jis0208<<14 | 0x48<<7 | 0x2A,
+ 34400 - 19968: jis0212<<14 | 0x39<<7 | 0x1F,
+ 34401 - 19968: jis0212<<14 | 0x39<<7 | 0x20,
+ 34402 - 19968: jis0212<<14 | 0x39<<7 | 0x21,
+ 34403 - 19968: jis0212<<14 | 0x39<<7 | 0x22,
+ 34404 - 19968: jis0212<<14 | 0x39<<7 | 0x23,
+ 34407 - 19968: jis0208<<14 | 0x48<<7 | 0x2B,
+ 34409 - 19968: jis0212<<14 | 0x39<<7 | 0x24,
+ 34411 - 19968: jis0208<<14 | 0x22<<7 | 0x4D,
+ 34412 - 19968: jis0212<<14 | 0x39<<7 | 0x25,
+ 34415 - 19968: jis0212<<14 | 0x39<<7 | 0x26,
+ 34417 - 19968: jis0208<<14 | 0x48<<7 | 0x2C,
+ 34421 - 19968: jis0212<<14 | 0x39<<7 | 0x27,
+ 34422 - 19968: jis0212<<14 | 0x39<<7 | 0x28,
+ 34423 - 19968: jis0212<<14 | 0x39<<7 | 0x29,
+ 34425 - 19968: jis0208<<14 | 0x25<<7 | 0x59,
+ 34426 - 19968: jis0212<<14 | 0x39<<7 | 0x2A,
+ 34427 - 19968: jis0208<<14 | 0x0F<<7 | 0x19,
+ 34440 - 19968: jis0212<<14 | 0x39<<7 | 0x4C,
+ 34442 - 19968: jis0208<<14 | 0x11<<7 | 0x42,
+ 34443 - 19968: jis0208<<14 | 0x48<<7 | 0x31,
+ 34444 - 19968: jis0208<<14 | 0x48<<7 | 0x32,
+ 34445 - 19968: jis0212<<14 | 0x39<<7 | 0x2B,
+ 34449 - 19968: jis0212<<14 | 0x39<<7 | 0x2C,
+ 34451 - 19968: jis0208<<14 | 0x48<<7 | 0x2D,
+ 34453 - 19968: jis0208<<14 | 0x1A<<7 | 0x1C,
+ 34454 - 19968: jis0212<<14 | 0x39<<7 | 0x2D,
+ 34456 - 19968: jis0212<<14 | 0x39<<7 | 0x2E,
+ 34458 - 19968: jis0212<<14 | 0x39<<7 | 0x2F,
+ 34460 - 19968: jis0212<<14 | 0x39<<7 | 0x30,
+ 34465 - 19968: jis0212<<14 | 0x39<<7 | 0x31,
+ 34467 - 19968: jis0208<<14 | 0x48<<7 | 0x2E,
+ 34468 - 19968: jis0208<<14 | 0x26<<7 | 0x21,
+ 34470 - 19968: jis0212<<14 | 0x39<<7 | 0x32,
+ 34471 - 19968: jis0212<<14 | 0x39<<7 | 0x33,
+ 34472 - 19968: jis0212<<14 | 0x39<<7 | 0x34,
+ 34473 - 19968: jis0208<<14 | 0x48<<7 | 0x2F,
+ 34474 - 19968: jis0208<<14 | 0x48<<7 | 0x30,
+ 34475 - 19968: jis0208<<14 | 0x48<<7 | 0x3A,
+ 34477 - 19968: jis0212<<14 | 0x39<<7 | 0x35,
+ 34479 - 19968: jis0208<<14 | 0x48<<7 | 0x34,
+ 34480 - 19968: jis0208<<14 | 0x48<<7 | 0x37,
+ 34481 - 19968: jis0212<<14 | 0x39<<7 | 0x36,
+ 34483 - 19968: jis0212<<14 | 0x39<<7 | 0x37,
+ 34484 - 19968: jis0212<<14 | 0x39<<7 | 0x38,
+ 34485 - 19968: jis0212<<14 | 0x39<<7 | 0x39,
+ 34486 - 19968: jis0208<<14 | 0x48<<7 | 0x33,
+ 34487 - 19968: jis0212<<14 | 0x39<<7 | 0x3A,
+ 34488 - 19968: jis0212<<14 | 0x39<<7 | 0x3B,
+ 34489 - 19968: jis0212<<14 | 0x39<<7 | 0x3C,
+ 34495 - 19968: jis0212<<14 | 0x39<<7 | 0x3D,
+ 34496 - 19968: jis0212<<14 | 0x39<<7 | 0x3E,
+ 34497 - 19968: jis0212<<14 | 0x39<<7 | 0x3F,
+ 34499 - 19968: jis0212<<14 | 0x39<<7 | 0x40,
+ 34500 - 19968: jis0208<<14 | 0x48<<7 | 0x35,
+ 34501 - 19968: jis0212<<14 | 0x39<<7 | 0x41,
+ 34502 - 19968: jis0208<<14 | 0x48<<7 | 0x36,
+ 34503 - 19968: jis0208<<14 | 0x1B<<7 | 0x37,
+ 34505 - 19968: jis0208<<14 | 0x48<<7 | 0x38,
+ 34507 - 19968: jis0208<<14 | 0x22<<7 | 0x20,
+ 34509 - 19968: jis0208<<14 | 0x16<<7 | 0x35,
+ 34510 - 19968: jis0208<<14 | 0x12<<7 | 0x21,
+ 34513 - 19968: jis0212<<14 | 0x39<<7 | 0x42,
+ 34514 - 19968: jis0212<<14 | 0x39<<7 | 0x43,
+ 34516 - 19968: jis0208<<14 | 0x48<<7 | 0x3B,
+ 34517 - 19968: jis0212<<14 | 0x39<<7 | 0x44,
+ 34519 - 19968: jis0212<<14 | 0x39<<7 | 0x45,
+ 34521 - 19968: jis0208<<14 | 0x12<<7 | 0x1E,
+ 34522 - 19968: jis0212<<14 | 0x39<<7 | 0x46,
+ 34523 - 19968: jis0208<<14 | 0x48<<7 | 0x40,
+ 34524 - 19968: jis0212<<14 | 0x39<<7 | 0x47,
+ 34526 - 19968: jis0208<<14 | 0x48<<7 | 0x3C,
+ 34527 - 19968: jis0208<<14 | 0x48<<7 | 0x3F,
+ 34528 - 19968: jis0212<<14 | 0x39<<7 | 0x48,
+ 34531 - 19968: jis0212<<14 | 0x39<<7 | 0x49,
+ 34532 - 19968: jis0208<<14 | 0x27<<7 | 0x19,
+ 34533 - 19968: jis0212<<14 | 0x39<<7 | 0x4A,
+ 34535 - 19968: jis0212<<14 | 0x39<<7 | 0x4B,
+ 34537 - 19968: jis0208<<14 | 0x48<<7 | 0x3D,
+ 34540 - 19968: jis0208<<14 | 0x48<<7 | 0x3E,
+ 34541 - 19968: jis0208<<14 | 0x28<<7 | 0x27,
+ 34542 - 19968: jis0208<<14 | 0x27<<7 | 0x39,
+ 34543 - 19968: jis0208<<14 | 0x48<<7 | 0x41,
+ 34552 - 19968: jis0208<<14 | 0x21<<7 | 0x5C,
+ 34553 - 19968: jis0208<<14 | 0x48<<7 | 0x4B,
+ 34554 - 19968: jis0212<<14 | 0x39<<7 | 0x4D,
+ 34555 - 19968: jis0208<<14 | 0x48<<7 | 0x47,
+ 34556 - 19968: jis0212<<14 | 0x39<<7 | 0x4E,
+ 34557 - 19968: jis0212<<14 | 0x39<<7 | 0x4F,
+ 34558 - 19968: jis0208<<14 | 0x11<<7 | 0x4A,
+ 34560 - 19968: jis0208<<14 | 0x48<<7 | 0x45,
+ 34562 - 19968: jis0208<<14 | 0x2A<<7 | 0x09,
+ 34563 - 19968: jis0208<<14 | 0x48<<7 | 0x46,
+ 34564 - 19968: jis0212<<14 | 0x39<<7 | 0x50,
+ 34565 - 19968: jis0212<<14 | 0x39<<7 | 0x51,
+ 34566 - 19968: jis0208<<14 | 0x48<<7 | 0x43,
+ 34567 - 19968: jis0212<<14 | 0x39<<7 | 0x52,
+ 34568 - 19968: jis0208<<14 | 0x48<<7 | 0x44,
+ 34569 - 19968: jis0208<<14 | 0x48<<7 | 0x49,
+ 34570 - 19968: jis0208<<14 | 0x48<<7 | 0x4C,
+ 34571 - 19968: jis0212<<14 | 0x39<<7 | 0x53,
+ 34573 - 19968: jis0208<<14 | 0x48<<7 | 0x4A,
+ 34574 - 19968: jis0212<<14 | 0x39<<7 | 0x54,
+ 34575 - 19968: jis0212<<14 | 0x39<<7 | 0x55,
+ 34576 - 19968: jis0212<<14 | 0x39<<7 | 0x56,
+ 34577 - 19968: jis0208<<14 | 0x48<<7 | 0x48,
+ 34578 - 19968: jis0208<<14 | 0x48<<7 | 0x42,
+ 34579 - 19968: jis0212<<14 | 0x39<<7 | 0x57,
+ 34580 - 19968: jis0212<<14 | 0x39<<7 | 0x58,
+ 34584 - 19968: jis0208<<14 | 0x22<<7 | 0x37,
+ 34585 - 19968: jis0212<<14 | 0x39<<7 | 0x59,
+ 34586 - 19968: jis0208<<14 | 0x48<<7 | 0x53,
+ 34588 - 19968: jis0208<<14 | 0x2B<<7 | 0x09,
+ 34590 - 19968: jis0212<<14 | 0x39<<7 | 0x5A,
+ 34591 - 19968: jis0212<<14 | 0x39<<7 | 0x5B,
+ 34593 - 19968: jis0212<<14 | 0x39<<7 | 0x5C,
+ 34595 - 19968: jis0212<<14 | 0x39<<7 | 0x5D,
+ 34597 - 19968: jis0208<<14 | 0x48<<7 | 0x51,
+ 34600 - 19968: jis0212<<14 | 0x3A<<7 | 0x00,
+ 34601 - 19968: jis0208<<14 | 0x48<<7 | 0x52,
+ 34606 - 19968: jis0212<<14 | 0x3A<<7 | 0x01,
+ 34607 - 19968: jis0212<<14 | 0x3A<<7 | 0x02,
+ 34609 - 19968: jis0212<<14 | 0x3A<<7 | 0x03,
+ 34610 - 19968: jis0212<<14 | 0x3A<<7 | 0x04,
+ 34612 - 19968: jis0208<<14 | 0x48<<7 | 0x4D,
+ 34615 - 19968: jis0208<<14 | 0x48<<7 | 0x4F,
+ 34617 - 19968: jis0212<<14 | 0x3A<<7 | 0x05,
+ 34618 - 19968: jis0212<<14 | 0x3A<<7 | 0x06,
+ 34619 - 19968: jis0208<<14 | 0x48<<7 | 0x50,
+ 34620 - 19968: jis0212<<14 | 0x3A<<7 | 0x07,
+ 34621 - 19968: jis0212<<14 | 0x3A<<7 | 0x08,
+ 34622 - 19968: jis0212<<14 | 0x3A<<7 | 0x09,
+ 34623 - 19968: jis0208<<14 | 0x48<<7 | 0x4E,
+ 34624 - 19968: jis0212<<14 | 0x3A<<7 | 0x0A,
+ 34627 - 19968: jis0212<<14 | 0x3A<<7 | 0x0B,
+ 34629 - 19968: jis0212<<14 | 0x3A<<7 | 0x0C,
+ 34633 - 19968: jis0208<<14 | 0x1F<<7 | 0x45,
+ 34635 - 19968: jis0208<<14 | 0x2E<<7 | 0x18,
+ 34636 - 19968: jis0208<<14 | 0x48<<7 | 0x57,
+ 34637 - 19968: jis0212<<14 | 0x3A<<7 | 0x0D,
+ 34638 - 19968: jis0208<<14 | 0x48<<7 | 0x58,
+ 34643 - 19968: jis0208<<14 | 0x49<<7 | 0x00,
+ 34645 - 19968: jis0208<<14 | 0x1E<<7 | 0x09,
+ 34647 - 19968: jis0208<<14 | 0x48<<7 | 0x5A,
+ 34648 - 19968: jis0212<<14 | 0x3A<<7 | 0x0E,
+ 34649 - 19968: jis0208<<14 | 0x48<<7 | 0x5D,
+ 34653 - 19968: jis0212<<14 | 0x3A<<7 | 0x0F,
+ 34655 - 19968: jis0208<<14 | 0x48<<7 | 0x55,
+ 34656 - 19968: jis0208<<14 | 0x48<<7 | 0x54,
+ 34657 - 19968: jis0212<<14 | 0x3A<<7 | 0x10,
+ 34659 - 19968: jis0208<<14 | 0x49<<7 | 0x01,
+ 34660 - 19968: jis0212<<14 | 0x3A<<7 | 0x11,
+ 34661 - 19968: jis0212<<14 | 0x3A<<7 | 0x12,
+ 34662 - 19968: jis0208<<14 | 0x11<<7 | 0x3B,
+ 34664 - 19968: jis0208<<14 | 0x48<<7 | 0x5B,
+ 34666 - 19968: jis0208<<14 | 0x49<<7 | 0x02,
+ 34670 - 19968: jis0208<<14 | 0x48<<7 | 0x5C,
+ 34671 - 19968: jis0212<<14 | 0x3A<<7 | 0x13,
+ 34673 - 19968: jis0212<<14 | 0x3A<<7 | 0x14,
+ 34674 - 19968: jis0212<<14 | 0x3A<<7 | 0x15,
+ 34676 - 19968: jis0208<<14 | 0x48<<7 | 0x59,
+ 34678 - 19968: jis0208<<14 | 0x23<<7 | 0x12,
+ 34680 - 19968: jis0208<<14 | 0x48<<7 | 0x56,
+ 34683 - 19968: jis0212<<14 | 0x3A<<7 | 0x16,
+ 34687 - 19968: jis0208<<14 | 0x26<<7 | 0x47,
+ 34690 - 19968: jis0208<<14 | 0x49<<7 | 0x06,
+ 34691 - 19968: jis0212<<14 | 0x3A<<7 | 0x17,
+ 34692 - 19968: jis0212<<14 | 0x3A<<7 | 0x18,
+ 34693 - 19968: jis0212<<14 | 0x3A<<7 | 0x19,
+ 34694 - 19968: jis0212<<14 | 0x3A<<7 | 0x1A,
+ 34695 - 19968: jis0212<<14 | 0x3A<<7 | 0x1B,
+ 34696 - 19968: jis0212<<14 | 0x3A<<7 | 0x1C,
+ 34697 - 19968: jis0212<<14 | 0x3A<<7 | 0x1D,
+ 34699 - 19968: jis0212<<14 | 0x3A<<7 | 0x1E,
+ 34700 - 19968: jis0212<<14 | 0x3A<<7 | 0x1F,
+ 34701 - 19968: jis0208<<14 | 0x2C<<7 | 0x1A,
+ 34704 - 19968: jis0212<<14 | 0x3A<<7 | 0x20,
+ 34707 - 19968: jis0212<<14 | 0x3A<<7 | 0x21,
+ 34709 - 19968: jis0212<<14 | 0x3A<<7 | 0x22,
+ 34711 - 19968: jis0212<<14 | 0x3A<<7 | 0x23,
+ 34712 - 19968: jis0212<<14 | 0x3A<<7 | 0x24,
+ 34713 - 19968: jis0212<<14 | 0x3A<<7 | 0x25,
+ 34718 - 19968: jis0212<<14 | 0x3A<<7 | 0x26,
+ 34719 - 19968: jis0208<<14 | 0x49<<7 | 0x05,
+ 34720 - 19968: jis0212<<14 | 0x3A<<7 | 0x27,
+ 34722 - 19968: jis0208<<14 | 0x49<<7 | 0x04,
+ 34723 - 19968: jis0212<<14 | 0x3A<<7 | 0x28,
+ 34727 - 19968: jis0212<<14 | 0x3A<<7 | 0x29,
+ 34731 - 19968: jis0208<<14 | 0x49<<7 | 0x0D,
+ 34732 - 19968: jis0212<<14 | 0x3A<<7 | 0x2A,
+ 34733 - 19968: jis0212<<14 | 0x3A<<7 | 0x2B,
+ 34734 - 19968: jis0212<<14 | 0x3A<<7 | 0x2C,
+ 34735 - 19968: jis0208<<14 | 0x49<<7 | 0x07,
+ 34737 - 19968: jis0212<<14 | 0x3A<<7 | 0x2D,
+ 34739 - 19968: jis0208<<14 | 0x49<<7 | 0x0F,
+ 34741 - 19968: jis0212<<14 | 0x3A<<7 | 0x2E,
+ 34746 - 19968: jis0208<<14 | 0x2C<<7 | 0x45,
+ 34747 - 19968: jis0208<<14 | 0x49<<7 | 0x12,
+ 34749 - 19968: jis0208<<14 | 0x49<<7 | 0x09,
+ 34750 - 19968: jis0212<<14 | 0x3A<<7 | 0x2F,
+ 34751 - 19968: jis0212<<14 | 0x3A<<7 | 0x30,
+ 34752 - 19968: jis0208<<14 | 0x49<<7 | 0x0A,
+ 34753 - 19968: jis0212<<14 | 0x3A<<7 | 0x31,
+ 34756 - 19968: jis0208<<14 | 0x49<<7 | 0x0E,
+ 34758 - 19968: jis0208<<14 | 0x49<<7 | 0x11,
+ 34759 - 19968: jis0208<<14 | 0x49<<7 | 0x10,
+ 34760 - 19968: jis0212<<14 | 0x3A<<7 | 0x32,
+ 34761 - 19968: jis0212<<14 | 0x3A<<7 | 0x33,
+ 34762 - 19968: jis0212<<14 | 0x3A<<7 | 0x34,
+ 34763 - 19968: jis0208<<14 | 0x49<<7 | 0x08,
+ 34766 - 19968: jis0212<<14 | 0x3A<<7 | 0x35,
+ 34768 - 19968: jis0208<<14 | 0x49<<7 | 0x0B,
+ 34770 - 19968: jis0208<<14 | 0x49<<7 | 0x1C,
+ 34773 - 19968: jis0212<<14 | 0x3A<<7 | 0x36,
+ 34774 - 19968: jis0212<<14 | 0x3A<<7 | 0x37,
+ 34777 - 19968: jis0212<<14 | 0x3A<<7 | 0x38,
+ 34778 - 19968: jis0212<<14 | 0x3A<<7 | 0x39,
+ 34780 - 19968: jis0212<<14 | 0x3A<<7 | 0x3A,
+ 34783 - 19968: jis0212<<14 | 0x3A<<7 | 0x3B,
+ 34784 - 19968: jis0208<<14 | 0x49<<7 | 0x15,
+ 34786 - 19968: jis0212<<14 | 0x3A<<7 | 0x3C,
+ 34787 - 19968: jis0212<<14 | 0x3A<<7 | 0x3D,
+ 34788 - 19968: jis0212<<14 | 0x3A<<7 | 0x3E,
+ 34794 - 19968: jis0212<<14 | 0x3A<<7 | 0x3F,
+ 34795 - 19968: jis0212<<14 | 0x3A<<7 | 0x40,
+ 34797 - 19968: jis0212<<14 | 0x3A<<7 | 0x41,
+ 34799 - 19968: jis0208<<14 | 0x49<<7 | 0x13,
+ 34801 - 19968: jis0212<<14 | 0x3A<<7 | 0x42,
+ 34802 - 19968: jis0208<<14 | 0x49<<7 | 0x14,
+ 34803 - 19968: jis0212<<14 | 0x3A<<7 | 0x43,
+ 34806 - 19968: jis0208<<14 | 0x49<<7 | 0x19,
+ 34807 - 19968: jis0208<<14 | 0x49<<7 | 0x1A,
+ 34808 - 19968: jis0212<<14 | 0x3A<<7 | 0x44,
+ 34809 - 19968: jis0208<<14 | 0x12<<7 | 0x09,
+ 34810 - 19968: jis0212<<14 | 0x3A<<7 | 0x45,
+ 34811 - 19968: jis0208<<14 | 0x14<<7 | 0x21,
+ 34814 - 19968: jis0208<<14 | 0x49<<7 | 0x18,
+ 34815 - 19968: jis0212<<14 | 0x3A<<7 | 0x46,
+ 34817 - 19968: jis0212<<14 | 0x3A<<7 | 0x47,
+ 34819 - 19968: jis0212<<14 | 0x3A<<7 | 0x48,
+ 34821 - 19968: jis0208<<14 | 0x49<<7 | 0x03,
+ 34822 - 19968: jis0212<<14 | 0x3A<<7 | 0x49,
+ 34823 - 19968: jis0208<<14 | 0x5A<<7 | 0x44,
+ 34825 - 19968: jis0212<<14 | 0x3A<<7 | 0x4A,
+ 34826 - 19968: jis0212<<14 | 0x3A<<7 | 0x4B,
+ 34827 - 19968: jis0212<<14 | 0x3A<<7 | 0x4C,
+ 34829 - 19968: jis0208<<14 | 0x49<<7 | 0x17,
+ 34830 - 19968: jis0208<<14 | 0x49<<7 | 0x1B,
+ 34831 - 19968: jis0208<<14 | 0x49<<7 | 0x16,
+ 34832 - 19968: jis0212<<14 | 0x3A<<7 | 0x4D,
+ 34833 - 19968: jis0208<<14 | 0x49<<7 | 0x1D,
+ 34834 - 19968: jis0212<<14 | 0x3A<<7 | 0x4F,
+ 34835 - 19968: jis0212<<14 | 0x3A<<7 | 0x50,
+ 34836 - 19968: jis0212<<14 | 0x3A<<7 | 0x51,
+ 34837 - 19968: jis0208<<14 | 0x49<<7 | 0x1F,
+ 34838 - 19968: jis0208<<14 | 0x49<<7 | 0x1E,
+ 34840 - 19968: jis0212<<14 | 0x3A<<7 | 0x52,
+ 34841 - 19968: jis0212<<14 | 0x3A<<7 | 0x4E,
+ 34842 - 19968: jis0212<<14 | 0x3A<<7 | 0x53,
+ 34843 - 19968: jis0212<<14 | 0x3A<<7 | 0x54,
+ 34844 - 19968: jis0212<<14 | 0x3A<<7 | 0x55,
+ 34846 - 19968: jis0212<<14 | 0x3A<<7 | 0x56,
+ 34847 - 19968: jis0212<<14 | 0x3A<<7 | 0x57,
+ 34849 - 19968: jis0208<<14 | 0x49<<7 | 0x21,
+ 34850 - 19968: jis0208<<14 | 0x49<<7 | 0x20,
+ 34851 - 19968: jis0208<<14 | 0x48<<7 | 0x39,
+ 34855 - 19968: jis0208<<14 | 0x49<<7 | 0x25,
+ 34856 - 19968: jis0212<<14 | 0x3A<<7 | 0x58,
+ 34861 - 19968: jis0212<<14 | 0x3A<<7 | 0x59,
+ 34862 - 19968: jis0212<<14 | 0x3A<<7 | 0x5A,
+ 34864 - 19968: jis0212<<14 | 0x3A<<7 | 0x5B,
+ 34865 - 19968: jis0208<<14 | 0x49<<7 | 0x22,
+ 34866 - 19968: jis0212<<14 | 0x3A<<7 | 0x5C,
+ 34869 - 19968: jis0212<<14 | 0x3A<<7 | 0x5D,
+ 34870 - 19968: jis0208<<14 | 0x49<<7 | 0x23,
+ 34873 - 19968: jis0208<<14 | 0x49<<7 | 0x24,
+ 34874 - 19968: jis0212<<14 | 0x3B<<7 | 0x00,
+ 34875 - 19968: jis0208<<14 | 0x49<<7 | 0x26,
+ 34876 - 19968: jis0212<<14 | 0x3B<<7 | 0x01,
+ 34880 - 19968: jis0208<<14 | 0x16<<7 | 0x4B,
+ 34881 - 19968: jis0212<<14 | 0x3B<<7 | 0x02,
+ 34882 - 19968: jis0208<<14 | 0x49<<7 | 0x28,
+ 34883 - 19968: jis0212<<14 | 0x3B<<7 | 0x03,
+ 34884 - 19968: jis0208<<14 | 0x49<<7 | 0x27,
+ 34885 - 19968: jis0212<<14 | 0x3B<<7 | 0x04,
+ 34886 - 19968: jis0208<<14 | 0x1C<<7 | 0x0F,
+ 34888 - 19968: jis0212<<14 | 0x3B<<7 | 0x05,
+ 34889 - 19968: jis0212<<14 | 0x3B<<7 | 0x06,
+ 34890 - 19968: jis0212<<14 | 0x3B<<7 | 0x07,
+ 34891 - 19968: jis0212<<14 | 0x3B<<7 | 0x08,
+ 34892 - 19968: jis0208<<14 | 0x18<<7 | 0x33,
+ 34893 - 19968: jis0208<<14 | 0x3D<<7 | 0x06,
+ 34894 - 19968: jis0212<<14 | 0x3B<<7 | 0x09,
+ 34897 - 19968: jis0212<<14 | 0x3B<<7 | 0x0A,
+ 34898 - 19968: jis0208<<14 | 0x49<<7 | 0x29,
+ 34899 - 19968: jis0208<<14 | 0x1C<<7 | 0x30,
+ 34901 - 19968: jis0212<<14 | 0x3B<<7 | 0x0B,
+ 34902 - 19968: jis0212<<14 | 0x3B<<7 | 0x0C,
+ 34903 - 19968: jis0208<<14 | 0x12<<7 | 0x18,
+ 34904 - 19968: jis0212<<14 | 0x3B<<7 | 0x0D,
+ 34905 - 19968: jis0208<<14 | 0x49<<7 | 0x2A,
+ 34906 - 19968: jis0212<<14 | 0x3B<<7 | 0x0E,
+ 34907 - 19968: jis0208<<14 | 0x10<<7 | 0x31,
+ 34908 - 19968: jis0212<<14 | 0x3B<<7 | 0x0F,
+ 34909 - 19968: jis0208<<14 | 0x1D<<7 | 0x36,
+ 34910 - 19968: jis0208<<14 | 0x49<<7 | 0x2B,
+ 34911 - 19968: jis0212<<14 | 0x3B<<7 | 0x10,
+ 34912 - 19968: jis0212<<14 | 0x3B<<7 | 0x11,
+ 34913 - 19968: jis0208<<14 | 0x18<<7 | 0x34,
+ 34914 - 19968: jis0208<<14 | 0x49<<7 | 0x2C,
+ 34915 - 19968: jis0208<<14 | 0x0F<<7 | 0x40,
+ 34916 - 19968: jis0212<<14 | 0x3B<<7 | 0x12,
+ 34920 - 19968: jis0208<<14 | 0x28<<7 | 0x1C,
+ 34921 - 19968: jis0212<<14 | 0x3B<<7 | 0x13,
+ 34923 - 19968: jis0208<<14 | 0x49<<7 | 0x2D,
+ 34928 - 19968: jis0208<<14 | 0x1E<<7 | 0x49,
+ 34929 - 19968: jis0212<<14 | 0x3B<<7 | 0x14,
+ 34930 - 19968: jis0208<<14 | 0x49<<7 | 0x34,
+ 34933 - 19968: jis0208<<14 | 0x49<<7 | 0x31,
+ 34935 - 19968: jis0208<<14 | 0x22<<7 | 0x4E,
+ 34937 - 19968: jis0212<<14 | 0x3B<<7 | 0x15,
+ 34939 - 19968: jis0212<<14 | 0x3B<<7 | 0x16,
+ 34941 - 19968: jis0208<<14 | 0x49<<7 | 0x32,
+ 34942 - 19968: jis0208<<14 | 0x49<<7 | 0x2F,
+ 34943 - 19968: jis0208<<14 | 0x15<<7 | 0x3D,
+ 34944 - 19968: jis0212<<14 | 0x3B<<7 | 0x17,
+ 34945 - 19968: jis0208<<14 | 0x49<<7 | 0x2E,
+ 34946 - 19968: jis0208<<14 | 0x49<<7 | 0x35,
+ 34952 - 19968: jis0208<<14 | 0x16<<7 | 0x15,
+ 34955 - 19968: jis0208<<14 | 0x21<<7 | 0x3D,
+ 34957 - 19968: jis0208<<14 | 0x49<<7 | 0x3B,
+ 34962 - 19968: jis0208<<14 | 0x49<<7 | 0x37,
+ 34966 - 19968: jis0208<<14 | 0x21<<7 | 0x14,
+ 34967 - 19968: jis0208<<14 | 0x49<<7 | 0x36,
+ 34968 - 19968: jis0212<<14 | 0x3B<<7 | 0x18,
+ 34969 - 19968: jis0208<<14 | 0x49<<7 | 0x39,
+ 34970 - 19968: jis0212<<14 | 0x3B<<7 | 0x19,
+ 34971 - 19968: jis0212<<14 | 0x3B<<7 | 0x1A,
+ 34972 - 19968: jis0212<<14 | 0x3B<<7 | 0x1B,
+ 34974 - 19968: jis0208<<14 | 0x49<<7 | 0x30,
+ 34975 - 19968: jis0212<<14 | 0x3B<<7 | 0x1C,
+ 34976 - 19968: jis0212<<14 | 0x3B<<7 | 0x1D,
+ 34978 - 19968: jis0208<<14 | 0x49<<7 | 0x3A,
+ 34980 - 19968: jis0208<<14 | 0x49<<7 | 0x3C,
+ 34984 - 19968: jis0212<<14 | 0x3B<<7 | 0x1E,
+ 34986 - 19968: jis0212<<14 | 0x3B<<7 | 0x1F,
+ 34987 - 19968: jis0208<<14 | 0x27<<7 | 0x4E,
+ 34990 - 19968: jis0208<<14 | 0x49<<7 | 0x38,
+ 34992 - 19968: jis0208<<14 | 0x49<<7 | 0x3D,
+ 34993 - 19968: jis0208<<14 | 0x49<<7 | 0x3F,
+ 34996 - 19968: jis0208<<14 | 0x17<<7 | 0x32,
+ 34997 - 19968: jis0208<<14 | 0x49<<7 | 0x33,
+ 34999 - 19968: jis0208<<14 | 0x0F<<7 | 0x20,
+ 35002 - 19968: jis0212<<14 | 0x3B<<7 | 0x20,
+ 35005 - 19968: jis0212<<14 | 0x3B<<7 | 0x21,
+ 35006 - 19968: jis0212<<14 | 0x3B<<7 | 0x22,
+ 35007 - 19968: jis0208<<14 | 0x49<<7 | 0x3E,
+ 35008 - 19968: jis0212<<14 | 0x3B<<7 | 0x23,
+ 35009 - 19968: jis0208<<14 | 0x19<<7 | 0x3A,
+ 35010 - 19968: jis0208<<14 | 0x2D<<7 | 0x55,
+ 35011 - 19968: jis0208<<14 | 0x49<<7 | 0x40,
+ 35012 - 19968: jis0208<<14 | 0x49<<7 | 0x41,
+ 35013 - 19968: jis0208<<14 | 0x20<<7 | 0x54,
+ 35018 - 19968: jis0212<<14 | 0x3B<<7 | 0x24,
+ 35019 - 19968: jis0212<<14 | 0x3B<<7 | 0x25,
+ 35020 - 19968: jis0212<<14 | 0x3B<<7 | 0x26,
+ 35021 - 19968: jis0212<<14 | 0x3B<<7 | 0x27,
+ 35022 - 19968: jis0212<<14 | 0x3B<<7 | 0x28,
+ 35023 - 19968: jis0208<<14 | 0x2D<<7 | 0x01,
+ 35025 - 19968: jis0212<<14 | 0x3B<<7 | 0x29,
+ 35026 - 19968: jis0212<<14 | 0x3B<<7 | 0x2A,
+ 35027 - 19968: jis0212<<14 | 0x3B<<7 | 0x2B,
+ 35028 - 19968: jis0208<<14 | 0x49<<7 | 0x42,
+ 35029 - 19968: jis0208<<14 | 0x2C<<7 | 0x14,
+ 35032 - 19968: jis0208<<14 | 0x49<<7 | 0x43,
+ 35033 - 19968: jis0208<<14 | 0x49<<7 | 0x44,
+ 35035 - 19968: jis0212<<14 | 0x3B<<7 | 0x2C,
+ 35036 - 19968: jis0208<<14 | 0x29<<7 | 0x43,
+ 35037 - 19968: jis0208<<14 | 0x49<<7 | 0x45,
+ 35038 - 19968: jis0212<<14 | 0x3B<<7 | 0x2D,
+ 35039 - 19968: jis0208<<14 | 0x19<<7 | 0x1F,
+ 35041 - 19968: jis0208<<14 | 0x2D<<7 | 0x02,
+ 35047 - 19968: jis0212<<14 | 0x3B<<7 | 0x2E,
+ 35048 - 19968: jis0208<<14 | 0x49<<7 | 0x4A,
+ 35055 - 19968: jis0212<<14 | 0x3B<<7 | 0x2F,
+ 35056 - 19968: jis0212<<14 | 0x3B<<7 | 0x30,
+ 35057 - 19968: jis0212<<14 | 0x3B<<7 | 0x31,
+ 35058 - 19968: jis0208<<14 | 0x49<<7 | 0x4B,
+ 35059 - 19968: jis0208<<14 | 0x1D<<7 | 0x37,
+ 35060 - 19968: jis0208<<14 | 0x49<<7 | 0x49,
+ 35061 - 19968: jis0208<<14 | 0x5A<<7 | 0x45,
+ 35063 - 19968: jis0212<<14 | 0x3B<<7 | 0x33,
+ 35064 - 19968: jis0208<<14 | 0x2C<<7 | 0x46,
+ 35065 - 19968: jis0208<<14 | 0x49<<7 | 0x46,
+ 35068 - 19968: jis0208<<14 | 0x49<<7 | 0x48,
+ 35069 - 19968: jis0208<<14 | 0x1F<<7 | 0x1C,
+ 35070 - 19968: jis0208<<14 | 0x1E<<7 | 0x5D,
+ 35073 - 19968: jis0212<<14 | 0x3B<<7 | 0x34,
+ 35074 - 19968: jis0208<<14 | 0x49<<7 | 0x47,
+ 35076 - 19968: jis0208<<14 | 0x49<<7 | 0x4C,
+ 35078 - 19968: jis0212<<14 | 0x3B<<7 | 0x35,
+ 35079 - 19968: jis0208<<14 | 0x29<<7 | 0x02,
+ 35082 - 19968: jis0208<<14 | 0x49<<7 | 0x4E,
+ 35084 - 19968: jis0208<<14 | 0x49<<7 | 0x4D,
+ 35085 - 19968: jis0212<<14 | 0x3B<<7 | 0x36,
+ 35086 - 19968: jis0212<<14 | 0x3B<<7 | 0x37,
+ 35087 - 19968: jis0212<<14 | 0x3B<<7 | 0x38,
+ 35088 - 19968: jis0208<<14 | 0x12<<7 | 0x4B,
+ 35090 - 19968: jis0208<<14 | 0x2A<<7 | 0x0A,
+ 35091 - 19968: jis0208<<14 | 0x49<<7 | 0x4F,
+ 35093 - 19968: jis0212<<14 | 0x3B<<7 | 0x39,
+ 35094 - 19968: jis0212<<14 | 0x3B<<7 | 0x3A,
+ 35096 - 19968: jis0212<<14 | 0x3B<<7 | 0x3B,
+ 35097 - 19968: jis0212<<14 | 0x3B<<7 | 0x3C,
+ 35098 - 19968: jis0212<<14 | 0x3B<<7 | 0x3D,
+ 35100 - 19968: jis0208<<14 | 0x58<<7 | 0x01,
+ 35101 - 19968: jis0208<<14 | 0x49<<7 | 0x5B,
+ 35102 - 19968: jis0208<<14 | 0x49<<7 | 0x51,
+ 35104 - 19968: jis0212<<14 | 0x3B<<7 | 0x3F,
+ 35109 - 19968: jis0208<<14 | 0x49<<7 | 0x52,
+ 35110 - 19968: jis0212<<14 | 0x3B<<7 | 0x40,
+ 35111 - 19968: jis0212<<14 | 0x3B<<7 | 0x41,
+ 35112 - 19968: jis0212<<14 | 0x3B<<7 | 0x42,
+ 35114 - 19968: jis0208<<14 | 0x49<<7 | 0x53,
+ 35115 - 19968: jis0208<<14 | 0x49<<7 | 0x54,
+ 35120 - 19968: jis0212<<14 | 0x3B<<7 | 0x43,
+ 35121 - 19968: jis0212<<14 | 0x3B<<7 | 0x44,
+ 35122 - 19968: jis0212<<14 | 0x3B<<7 | 0x45,
+ 35125 - 19968: jis0212<<14 | 0x3B<<7 | 0x46,
+ 35126 - 19968: jis0208<<14 | 0x49<<7 | 0x58,
+ 35128 - 19968: jis0208<<14 | 0x49<<7 | 0x59,
+ 35129 - 19968: jis0212<<14 | 0x3B<<7 | 0x47,
+ 35130 - 19968: jis0212<<14 | 0x3B<<7 | 0x48,
+ 35131 - 19968: jis0208<<14 | 0x49<<7 | 0x57,
+ 35134 - 19968: jis0212<<14 | 0x3B<<7 | 0x49,
+ 35136 - 19968: jis0212<<14 | 0x3B<<7 | 0x4A,
+ 35137 - 19968: jis0208<<14 | 0x49<<7 | 0x55,
+ 35138 - 19968: jis0212<<14 | 0x3B<<7 | 0x4B,
+ 35139 - 19968: jis0208<<14 | 0x49<<7 | 0x50,
+ 35140 - 19968: jis0208<<14 | 0x49<<7 | 0x56,
+ 35141 - 19968: jis0212<<14 | 0x3B<<7 | 0x4C,
+ 35142 - 19968: jis0212<<14 | 0x3B<<7 | 0x4D,
+ 35145 - 19968: jis0212<<14 | 0x3B<<7 | 0x4E,
+ 35148 - 19968: jis0208<<14 | 0x49<<7 | 0x5A,
+ 35149 - 19968: jis0208<<14 | 0x4F<<7 | 0x16,
+ 35151 - 19968: jis0212<<14 | 0x3B<<7 | 0x4F,
+ 35154 - 19968: jis0212<<14 | 0x3B<<7 | 0x50,
+ 35158 - 19968: jis0208<<14 | 0x11<<7 | 0x07,
+ 35159 - 19968: jis0212<<14 | 0x3B<<7 | 0x51,
+ 35162 - 19968: jis0212<<14 | 0x3B<<7 | 0x52,
+ 35163 - 19968: jis0212<<14 | 0x3B<<7 | 0x53,
+ 35164 - 19968: jis0212<<14 | 0x3B<<7 | 0x54,
+ 35166 - 19968: jis0208<<14 | 0x49<<7 | 0x5D,
+ 35167 - 19968: jis0208<<14 | 0x15<<7 | 0x3E,
+ 35168 - 19968: jis0208<<14 | 0x49<<7 | 0x5C,
+ 35169 - 19968: jis0212<<14 | 0x3B<<7 | 0x55,
+ 35170 - 19968: jis0212<<14 | 0x3B<<7 | 0x56,
+ 35171 - 19968: jis0212<<14 | 0x3B<<7 | 0x57,
+ 35172 - 19968: jis0208<<14 | 0x4A<<7 | 0x01,
+ 35174 - 19968: jis0208<<14 | 0x4A<<7 | 0x00,
+ 35178 - 19968: jis0208<<14 | 0x4A<<7 | 0x03,
+ 35179 - 19968: jis0212<<14 | 0x3B<<7 | 0x58,
+ 35181 - 19968: jis0208<<14 | 0x4A<<7 | 0x02,
+ 35182 - 19968: jis0212<<14 | 0x3B<<7 | 0x59,
+ 35183 - 19968: jis0208<<14 | 0x4A<<7 | 0x04,
+ 35184 - 19968: jis0212<<14 | 0x3B<<7 | 0x5A,
+ 35186 - 19968: jis0208<<14 | 0x1C<<7 | 0x10,
+ 35187 - 19968: jis0212<<14 | 0x3B<<7 | 0x5B,
+ 35188 - 19968: jis0208<<14 | 0x4A<<7 | 0x05,
+ 35189 - 19968: jis0212<<14 | 0x3B<<7 | 0x5C,
+ 35191 - 19968: jis0208<<14 | 0x4A<<7 | 0x06,
+ 35194 - 19968: jis0212<<14 | 0x3B<<7 | 0x5D,
+ 35195 - 19968: jis0212<<14 | 0x3C<<7 | 0x00,
+ 35196 - 19968: jis0212<<14 | 0x3C<<7 | 0x01,
+ 35197 - 19968: jis0212<<14 | 0x3C<<7 | 0x02,
+ 35198 - 19968: jis0208<<14 | 0x4A<<7 | 0x07,
+ 35199 - 19968: jis0208<<14 | 0x1F<<7 | 0x1D,
+ 35201 - 19968: jis0208<<14 | 0x2C<<7 | 0x36,
+ 35203 - 19968: jis0208<<14 | 0x4A<<7 | 0x08,
+ 35206 - 19968: jis0208<<14 | 0x29<<7 | 0x03,
+ 35207 - 19968: jis0208<<14 | 0x26<<7 | 0x25,
+ 35208 - 19968: jis0208<<14 | 0x4A<<7 | 0x09,
+ 35209 - 19968: jis0212<<14 | 0x3C<<7 | 0x03,
+ 35210 - 19968: jis0208<<14 | 0x4A<<7 | 0x0A,
+ 35211 - 19968: jis0208<<14 | 0x17<<7 | 0x0A,
+ 35213 - 19968: jis0212<<14 | 0x3C<<7 | 0x04,
+ 35215 - 19968: jis0208<<14 | 0x14<<7 | 0x0B,
+ 35216 - 19968: jis0212<<14 | 0x3C<<7 | 0x05,
+ 35219 - 19968: jis0208<<14 | 0x4A<<7 | 0x0B,
+ 35220 - 19968: jis0212<<14 | 0x3C<<7 | 0x06,
+ 35221 - 19968: jis0212<<14 | 0x3C<<7 | 0x07,
+ 35222 - 19968: jis0208<<14 | 0x1A<<7 | 0x4A,
+ 35223 - 19968: jis0208<<14 | 0x26<<7 | 0x20,
+ 35224 - 19968: jis0208<<14 | 0x4A<<7 | 0x0C,
+ 35226 - 19968: jis0208<<14 | 0x12<<7 | 0x2F,
+ 35227 - 19968: jis0212<<14 | 0x3C<<7 | 0x08,
+ 35228 - 19968: jis0212<<14 | 0x3C<<7 | 0x09,
+ 35231 - 19968: jis0212<<14 | 0x3C<<7 | 0x0A,
+ 35232 - 19968: jis0212<<14 | 0x3C<<7 | 0x0B,
+ 35233 - 19968: jis0208<<14 | 0x4A<<7 | 0x0D,
+ 35237 - 19968: jis0212<<14 | 0x3C<<7 | 0x0C,
+ 35238 - 19968: jis0208<<14 | 0x4A<<7 | 0x0F,
+ 35239 - 19968: jis0208<<14 | 0x2C<<7 | 0x56,
+ 35241 - 19968: jis0208<<14 | 0x4A<<7 | 0x0E,
+ 35242 - 19968: jis0208<<14 | 0x1E<<7 | 0x25,
+ 35244 - 19968: jis0208<<14 | 0x4A<<7 | 0x10,
+ 35247 - 19968: jis0208<<14 | 0x4A<<7 | 0x11,
+ 35248 - 19968: jis0212<<14 | 0x3C<<7 | 0x0D,
+ 35250 - 19968: jis0208<<14 | 0x4A<<7 | 0x12,
+ 35251 - 19968: jis0208<<14 | 0x13<<7 | 0x30,
+ 35252 - 19968: jis0212<<14 | 0x3C<<7 | 0x0E,
+ 35253 - 19968: jis0212<<14 | 0x3C<<7 | 0x0F,
+ 35254 - 19968: jis0212<<14 | 0x3C<<7 | 0x10,
+ 35255 - 19968: jis0212<<14 | 0x3C<<7 | 0x11,
+ 35258 - 19968: jis0208<<14 | 0x4A<<7 | 0x13,
+ 35260 - 19968: jis0212<<14 | 0x3C<<7 | 0x12,
+ 35261 - 19968: jis0208<<14 | 0x4A<<7 | 0x14,
+ 35263 - 19968: jis0208<<14 | 0x4A<<7 | 0x15,
+ 35264 - 19968: jis0208<<14 | 0x4A<<7 | 0x16,
+ 35282 - 19968: jis0208<<14 | 0x12<<7 | 0x30,
+ 35284 - 19968: jis0212<<14 | 0x3C<<7 | 0x13,
+ 35285 - 19968: jis0212<<14 | 0x3C<<7 | 0x14,
+ 35286 - 19968: jis0212<<14 | 0x3C<<7 | 0x15,
+ 35287 - 19968: jis0212<<14 | 0x3C<<7 | 0x16,
+ 35288 - 19968: jis0212<<14 | 0x3C<<7 | 0x17,
+ 35290 - 19968: jis0208<<14 | 0x4A<<7 | 0x17,
+ 35292 - 19968: jis0208<<14 | 0x4A<<7 | 0x18,
+ 35293 - 19968: jis0208<<14 | 0x4A<<7 | 0x19,
+ 35299 - 19968: jis0208<<14 | 0x11<<7 | 0x51,
+ 35301 - 19968: jis0212<<14 | 0x3C<<7 | 0x18,
+ 35302 - 19968: jis0208<<14 | 0x1E<<7 | 0x07,
+ 35303 - 19968: jis0208<<14 | 0x4A<<7 | 0x1A,
+ 35305 - 19968: jis0212<<14 | 0x3C<<7 | 0x19,
+ 35307 - 19968: jis0212<<14 | 0x3C<<7 | 0x1A,
+ 35309 - 19968: jis0212<<14 | 0x3C<<7 | 0x1B,
+ 35313 - 19968: jis0212<<14 | 0x3C<<7 | 0x1C,
+ 35315 - 19968: jis0212<<14 | 0x3C<<7 | 0x1D,
+ 35316 - 19968: jis0208<<14 | 0x4A<<7 | 0x1B,
+ 35318 - 19968: jis0212<<14 | 0x3C<<7 | 0x1E,
+ 35320 - 19968: jis0208<<14 | 0x4A<<7 | 0x1C,
+ 35321 - 19968: jis0212<<14 | 0x3C<<7 | 0x1F,
+ 35325 - 19968: jis0212<<14 | 0x3C<<7 | 0x20,
+ 35327 - 19968: jis0212<<14 | 0x3C<<7 | 0x21,
+ 35328 - 19968: jis0208<<14 | 0x17<<7 | 0x1F,
+ 35330 - 19968: jis0208<<14 | 0x23<<7 | 0x5A,
+ 35331 - 19968: jis0208<<14 | 0x4A<<7 | 0x1D,
+ 35332 - 19968: jis0212<<14 | 0x3C<<7 | 0x22,
+ 35333 - 19968: jis0212<<14 | 0x3C<<7 | 0x23,
+ 35335 - 19968: jis0212<<14 | 0x3C<<7 | 0x24,
+ 35336 - 19968: jis0208<<14 | 0x16<<7 | 0x36,
+ 35338 - 19968: jis0208<<14 | 0x1E<<7 | 0x35,
+ 35340 - 19968: jis0208<<14 | 0x4A<<7 | 0x20,
+ 35342 - 19968: jis0208<<14 | 0x25<<7 | 0x03,
+ 35343 - 19968: jis0212<<14 | 0x3C<<7 | 0x25,
+ 35344 - 19968: jis0208<<14 | 0x4A<<7 | 0x1F,
+ 35345 - 19968: jis0212<<14 | 0x3C<<7 | 0x26,
+ 35346 - 19968: jis0208<<14 | 0x5A<<7 | 0x46,
+ 35347 - 19968: jis0208<<14 | 0x16<<7 | 0x10,
+ 35348 - 19968: jis0212<<14 | 0x3C<<7 | 0x28,
+ 35349 - 19968: jis0212<<14 | 0x3C<<7 | 0x29,
+ 35350 - 19968: jis0208<<14 | 0x4A<<7 | 0x1E,
+ 35351 - 19968: jis0208<<14 | 0x21<<7 | 0x56,
+ 35352 - 19968: jis0208<<14 | 0x14<<7 | 0x0C,
+ 35355 - 19968: jis0208<<14 | 0x4A<<7 | 0x21,
+ 35357 - 19968: jis0208<<14 | 0x4A<<7 | 0x22,
+ 35358 - 19968: jis0212<<14 | 0x3C<<7 | 0x2A,
+ 35359 - 19968: jis0208<<14 | 0x1D<<7 | 0x38,
+ 35360 - 19968: jis0212<<14 | 0x3C<<7 | 0x2B,
+ 35362 - 19968: jis0212<<14 | 0x3C<<7 | 0x2C,
+ 35363 - 19968: jis0208<<14 | 0x16<<7 | 0x4C,
+ 35364 - 19968: jis0212<<14 | 0x3C<<7 | 0x2D,
+ 35365 - 19968: jis0208<<14 | 0x4A<<7 | 0x23,
+ 35366 - 19968: jis0212<<14 | 0x3C<<7 | 0x2E,
+ 35370 - 19968: jis0208<<14 | 0x2A<<7 | 0x0B,
+ 35371 - 19968: jis0212<<14 | 0x3C<<7 | 0x2F,
+ 35372 - 19968: jis0212<<14 | 0x3C<<7 | 0x30,
+ 35373 - 19968: jis0208<<14 | 0x1F<<7 | 0x3E,
+ 35375 - 19968: jis0212<<14 | 0x3C<<7 | 0x31,
+ 35377 - 19968: jis0208<<14 | 0x14<<7 | 0x55,
+ 35379 - 19968: jis0208<<14 | 0x2B<<7 | 0x54,
+ 35380 - 19968: jis0208<<14 | 0x20<<7 | 0x29,
+ 35381 - 19968: jis0212<<14 | 0x3C<<7 | 0x32,
+ 35382 - 19968: jis0208<<14 | 0x4A<<7 | 0x24,
+ 35383 - 19968: jis0208<<14 | 0x5A<<7 | 0x47,
+ 35386 - 19968: jis0208<<14 | 0x1E<<7 | 0x26,
+ 35387 - 19968: jis0208<<14 | 0x22<<7 | 0x4F,
+ 35388 - 19968: jis0208<<14 | 0x1D<<7 | 0x39,
+ 35389 - 19968: jis0212<<14 | 0x3C<<7 | 0x34,
+ 35390 - 19968: jis0212<<14 | 0x3C<<7 | 0x35,
+ 35392 - 19968: jis0212<<14 | 0x3C<<7 | 0x36,
+ 35393 - 19968: jis0208<<14 | 0x4A<<7 | 0x25,
+ 35395 - 19968: jis0212<<14 | 0x3C<<7 | 0x37,
+ 35397 - 19968: jis0212<<14 | 0x3C<<7 | 0x38,
+ 35398 - 19968: jis0208<<14 | 0x4A<<7 | 0x28,
+ 35399 - 19968: jis0212<<14 | 0x3C<<7 | 0x39,
+ 35400 - 19968: jis0208<<14 | 0x4A<<7 | 0x29,
+ 35401 - 19968: jis0212<<14 | 0x3C<<7 | 0x3A,
+ 35405 - 19968: jis0212<<14 | 0x3C<<7 | 0x3B,
+ 35406 - 19968: jis0212<<14 | 0x3C<<7 | 0x3C,
+ 35408 - 19968: jis0208<<14 | 0x19<<7 | 0x1D,
+ 35409 - 19968: jis0208<<14 | 0x21<<7 | 0x21,
+ 35410 - 19968: jis0208<<14 | 0x4A<<7 | 0x27,
+ 35411 - 19968: jis0212<<14 | 0x3C<<7 | 0x3D,
+ 35412 - 19968: jis0208<<14 | 0x1D<<7 | 0x3A,
+ 35413 - 19968: jis0208<<14 | 0x28<<7 | 0x1D,
+ 35414 - 19968: jis0212<<14 | 0x3C<<7 | 0x3E,
+ 35415 - 19968: jis0212<<14 | 0x3C<<7 | 0x3F,
+ 35416 - 19968: jis0212<<14 | 0x3C<<7 | 0x40,
+ 35419 - 19968: jis0208<<14 | 0x4A<<7 | 0x26,
+ 35420 - 19968: jis0212<<14 | 0x3C<<7 | 0x41,
+ 35421 - 19968: jis0212<<14 | 0x3C<<7 | 0x42,
+ 35422 - 19968: jis0208<<14 | 0x1A<<7 | 0x4B,
+ 35424 - 19968: jis0208<<14 | 0x10<<7 | 0x32,
+ 35425 - 19968: jis0212<<14 | 0x3C<<7 | 0x43,
+ 35426 - 19968: jis0208<<14 | 0x4A<<7 | 0x2D,
+ 35427 - 19968: jis0208<<14 | 0x16<<7 | 0x37,
+ 35429 - 19968: jis0212<<14 | 0x3C<<7 | 0x44,
+ 35430 - 19968: jis0208<<14 | 0x1A<<7 | 0x4D,
+ 35431 - 19968: jis0212<<14 | 0x3C<<7 | 0x45,
+ 35433 - 19968: jis0208<<14 | 0x1A<<7 | 0x4C,
+ 35435 - 19968: jis0208<<14 | 0x2E<<7 | 0x2C,
+ 35436 - 19968: jis0208<<14 | 0x4A<<7 | 0x2C,
+ 35437 - 19968: jis0208<<14 | 0x4A<<7 | 0x2B,
+ 35438 - 19968: jis0208<<14 | 0x20<<7 | 0x06,
+ 35440 - 19968: jis0208<<14 | 0x14<<7 | 0x2C,
+ 35441 - 19968: jis0208<<14 | 0x2E<<7 | 0x22,
+ 35442 - 19968: jis0208<<14 | 0x12<<7 | 0x19,
+ 35443 - 19968: jis0208<<14 | 0x1D<<7 | 0x3B,
+ 35445 - 19968: jis0212<<14 | 0x3C<<7 | 0x46,
+ 35446 - 19968: jis0212<<14 | 0x3C<<7 | 0x47,
+ 35447 - 19968: jis0212<<14 | 0x3C<<7 | 0x48,
+ 35449 - 19968: jis0208<<14 | 0x5A<<7 | 0x48,
+ 35450 - 19968: jis0212<<14 | 0x3C<<7 | 0x4A,
+ 35451 - 19968: jis0212<<14 | 0x3C<<7 | 0x4B,
+ 35452 - 19968: jis0208<<14 | 0x4A<<7 | 0x2A,
+ 35454 - 19968: jis0212<<14 | 0x3C<<7 | 0x4C,
+ 35455 - 19968: jis0212<<14 | 0x3C<<7 | 0x4D,
+ 35456 - 19968: jis0212<<14 | 0x3C<<7 | 0x4E,
+ 35458 - 19968: jis0208<<14 | 0x4A<<7 | 0x2F,
+ 35459 - 19968: jis0212<<14 | 0x3C<<7 | 0x4F,
+ 35460 - 19968: jis0208<<14 | 0x4A<<7 | 0x30,
+ 35461 - 19968: jis0208<<14 | 0x4A<<7 | 0x2E,
+ 35462 - 19968: jis0212<<14 | 0x3C<<7 | 0x50,
+ 35463 - 19968: jis0208<<14 | 0x17<<7 | 0x37,
+ 35465 - 19968: jis0208<<14 | 0x2C<<7 | 0x1F,
+ 35467 - 19968: jis0212<<14 | 0x3C<<7 | 0x51,
+ 35468 - 19968: jis0208<<14 | 0x1A<<7 | 0x4E,
+ 35469 - 19968: jis0208<<14 | 0x26<<7 | 0x06,
+ 35471 - 19968: jis0212<<14 | 0x3C<<7 | 0x52,
+ 35472 - 19968: jis0212<<14 | 0x3C<<7 | 0x53,
+ 35473 - 19968: jis0208<<14 | 0x4A<<7 | 0x33,
+ 35474 - 19968: jis0212<<14 | 0x3C<<7 | 0x54,
+ 35475 - 19968: jis0208<<14 | 0x1F<<7 | 0x1F,
+ 35477 - 19968: jis0208<<14 | 0x22<<7 | 0x21,
+ 35478 - 19968: jis0212<<14 | 0x3C<<7 | 0x55,
+ 35479 - 19968: jis0212<<14 | 0x3C<<7 | 0x56,
+ 35480 - 19968: jis0208<<14 | 0x2C<<7 | 0x15,
+ 35481 - 19968: jis0212<<14 | 0x3C<<7 | 0x57,
+ 35482 - 19968: jis0208<<14 | 0x4A<<7 | 0x36,
+ 35486 - 19968: jis0208<<14 | 0x17<<7 | 0x4B,
+ 35487 - 19968: jis0212<<14 | 0x3C<<7 | 0x58,
+ 35488 - 19968: jis0208<<14 | 0x1F<<7 | 0x1E,
+ 35489 - 19968: jis0208<<14 | 0x4A<<7 | 0x32,
+ 35491 - 19968: jis0208<<14 | 0x4A<<7 | 0x37,
+ 35492 - 19968: jis0208<<14 | 0x17<<7 | 0x4C,
+ 35493 - 19968: jis0208<<14 | 0x4A<<7 | 0x34,
+ 35494 - 19968: jis0208<<14 | 0x4A<<7 | 0x35,
+ 35495 - 19968: jis0208<<14 | 0x5A<<7 | 0x49,
+ 35496 - 19968: jis0208<<14 | 0x4A<<7 | 0x31,
+ 35497 - 19968: jis0212<<14 | 0x3C<<7 | 0x5A,
+ 35500 - 19968: jis0208<<14 | 0x1F<<7 | 0x41,
+ 35501 - 19968: jis0208<<14 | 0x25<<7 | 0x28,
+ 35502 - 19968: jis0212<<14 | 0x3C<<7 | 0x5B,
+ 35503 - 19968: jis0212<<14 | 0x3C<<7 | 0x5C,
+ 35504 - 19968: jis0208<<14 | 0x22<<7 | 0x0E,
+ 35506 - 19968: jis0208<<14 | 0x11<<7 | 0x3C,
+ 35507 - 19968: jis0212<<14 | 0x3C<<7 | 0x5D,
+ 35510 - 19968: jis0212<<14 | 0x3D<<7 | 0x00,
+ 35511 - 19968: jis0212<<14 | 0x3D<<7 | 0x01,
+ 35513 - 19968: jis0208<<14 | 0x27<<7 | 0x4F,
+ 35515 - 19968: jis0212<<14 | 0x3D<<7 | 0x02,
+ 35516 - 19968: jis0208<<14 | 0x14<<7 | 0x22,
+ 35518 - 19968: jis0208<<14 | 0x5A<<7 | 0x4A,
+ 35519 - 19968: jis0208<<14 | 0x23<<7 | 0x13,
+ 35522 - 19968: jis0208<<14 | 0x4A<<7 | 0x3A,
+ 35523 - 19968: jis0212<<14 | 0x3D<<7 | 0x04,
+ 35524 - 19968: jis0208<<14 | 0x4A<<7 | 0x38,
+ 35526 - 19968: jis0212<<14 | 0x3D<<7 | 0x05,
+ 35527 - 19968: jis0208<<14 | 0x22<<7 | 0x2B,
+ 35528 - 19968: jis0212<<14 | 0x3D<<7 | 0x06,
+ 35529 - 19968: jis0212<<14 | 0x3D<<7 | 0x07,
+ 35530 - 19968: jis0212<<14 | 0x3D<<7 | 0x08,
+ 35531 - 19968: jis0208<<14 | 0x1F<<7 | 0x20,
+ 35532 - 19968: jis0208<<14 | 0x13<<7 | 0x31,
+ 35533 - 19968: jis0208<<14 | 0x4A<<7 | 0x39,
+ 35535 - 19968: jis0208<<14 | 0x1E<<7 | 0x3A,
+ 35537 - 19968: jis0212<<14 | 0x3D<<7 | 0x09,
+ 35538 - 19968: jis0208<<14 | 0x2D<<7 | 0x29,
+ 35539 - 19968: jis0212<<14 | 0x3D<<7 | 0x0A,
+ 35540 - 19968: jis0212<<14 | 0x3D<<7 | 0x0B,
+ 35541 - 19968: jis0212<<14 | 0x3D<<7 | 0x0C,
+ 35542 - 19968: jis0208<<14 | 0x2E<<7 | 0x1F,
+ 35543 - 19968: jis0212<<14 | 0x3D<<7 | 0x0D,
+ 35546 - 19968: jis0208<<14 | 0x4A<<7 | 0x3B,
+ 35547 - 19968: jis0208<<14 | 0x4A<<7 | 0x46,
+ 35548 - 19968: jis0208<<14 | 0x23<<7 | 0x14,
+ 35549 - 19968: jis0212<<14 | 0x3D<<7 | 0x0E,
+ 35550 - 19968: jis0208<<14 | 0x4A<<7 | 0x45,
+ 35551 - 19968: jis0208<<14 | 0x5A<<7 | 0x4B,
+ 35552 - 19968: jis0208<<14 | 0x4A<<7 | 0x42,
+ 35553 - 19968: jis0208<<14 | 0x4A<<7 | 0x4A,
+ 35554 - 19968: jis0208<<14 | 0x4A<<7 | 0x43,
+ 35556 - 19968: jis0208<<14 | 0x4A<<7 | 0x3F,
+ 35558 - 19968: jis0208<<14 | 0x23<<7 | 0x5B,
+ 35559 - 19968: jis0208<<14 | 0x4A<<7 | 0x3E,
+ 35563 - 19968: jis0208<<14 | 0x4A<<7 | 0x3C,
+ 35564 - 19968: jis0212<<14 | 0x3D<<7 | 0x10,
+ 35565 - 19968: jis0208<<14 | 0x2C<<7 | 0x00,
+ 35566 - 19968: jis0208<<14 | 0x1A<<7 | 0x4F,
+ 35568 - 19968: jis0212<<14 | 0x3D<<7 | 0x11,
+ 35569 - 19968: jis0208<<14 | 0x4A<<7 | 0x40,
+ 35571 - 19968: jis0208<<14 | 0x4A<<7 | 0x3D,
+ 35572 - 19968: jis0212<<14 | 0x3D<<7 | 0x12,
+ 35573 - 19968: jis0212<<14 | 0x3D<<7 | 0x13,
+ 35574 - 19968: jis0208<<14 | 0x5A<<7 | 0x4D,
+ 35575 - 19968: jis0208<<14 | 0x4A<<7 | 0x44,
+ 35576 - 19968: jis0208<<14 | 0x1C<<7 | 0x53,
+ 35578 - 19968: jis0208<<14 | 0x17<<7 | 0x20,
+ 35580 - 19968: jis0212<<14 | 0x3D<<7 | 0x15,
+ 35582 - 19968: jis0208<<14 | 0x21<<7 | 0x59,
+ 35583 - 19968: jis0212<<14 | 0x3D<<7 | 0x16,
+ 35584 - 19968: jis0208<<14 | 0x2A<<7 | 0x24,
+ 35585 - 19968: jis0208<<14 | 0x10<<7 | 0x39,
+ 35586 - 19968: jis0208<<14 | 0x0F<<7 | 0x41,
+ 35588 - 19968: jis0208<<14 | 0x25<<7 | 0x04,
+ 35589 - 19968: jis0212<<14 | 0x3D<<7 | 0x17,
+ 35590 - 19968: jis0212<<14 | 0x3D<<7 | 0x18,
+ 35591 - 19968: jis0208<<14 | 0x4A<<7 | 0x48,
+ 35594 - 19968: jis0212<<14 | 0x3D<<7 | 0x1E,
+ 35595 - 19968: jis0212<<14 | 0x3D<<7 | 0x19,
+ 35596 - 19968: jis0208<<14 | 0x4A<<7 | 0x47,
+ 35598 - 19968: jis0208<<14 | 0x25<<7 | 0x45,
+ 35600 - 19968: jis0208<<14 | 0x4A<<7 | 0x4C,
+ 35601 - 19968: jis0212<<14 | 0x3D<<7 | 0x1A,
+ 35604 - 19968: jis0208<<14 | 0x4A<<7 | 0x41,
+ 35606 - 19968: jis0208<<14 | 0x4A<<7 | 0x4B,
+ 35607 - 19968: jis0208<<14 | 0x4A<<7 | 0x4D,
+ 35609 - 19968: jis0208<<14 | 0x17<<7 | 0x0B,
+ 35610 - 19968: jis0208<<14 | 0x4A<<7 | 0x49,
+ 35611 - 19968: jis0208<<14 | 0x18<<7 | 0x35,
+ 35612 - 19968: jis0212<<14 | 0x3D<<7 | 0x1B,
+ 35613 - 19968: jis0208<<14 | 0x1B<<7 | 0x34,
+ 35614 - 19968: jis0212<<14 | 0x3D<<7 | 0x1C,
+ 35615 - 19968: jis0212<<14 | 0x3D<<7 | 0x1D,
+ 35616 - 19968: jis0208<<14 | 0x4A<<7 | 0x4E,
+ 35617 - 19968: jis0208<<14 | 0x2C<<7 | 0x37,
+ 35622 - 19968: jis0208<<14 | 0x4A<<7 | 0x51,
+ 35624 - 19968: jis0208<<14 | 0x4A<<7 | 0x54,
+ 35627 - 19968: jis0208<<14 | 0x4A<<7 | 0x52,
+ 35628 - 19968: jis0208<<14 | 0x28<<7 | 0x14,
+ 35629 - 19968: jis0212<<14 | 0x3D<<7 | 0x1F,
+ 35632 - 19968: jis0212<<14 | 0x3D<<7 | 0x20,
+ 35635 - 19968: jis0208<<14 | 0x4A<<7 | 0x4F,
+ 35639 - 19968: jis0212<<14 | 0x3D<<7 | 0x21,
+ 35641 - 19968: jis0208<<14 | 0x15<<7 | 0x3F,
+ 35644 - 19968: jis0212<<14 | 0x3D<<7 | 0x22,
+ 35646 - 19968: jis0208<<14 | 0x4A<<7 | 0x53,
+ 35649 - 19968: jis0208<<14 | 0x4A<<7 | 0x55,
+ 35650 - 19968: jis0212<<14 | 0x3D<<7 | 0x23,
+ 35651 - 19968: jis0212<<14 | 0x3D<<7 | 0x24,
+ 35652 - 19968: jis0212<<14 | 0x3D<<7 | 0x25,
+ 35653 - 19968: jis0212<<14 | 0x3D<<7 | 0x26,
+ 35654 - 19968: jis0212<<14 | 0x3D<<7 | 0x27,
+ 35656 - 19968: jis0212<<14 | 0x3D<<7 | 0x28,
+ 35657 - 19968: jis0208<<14 | 0x4A<<7 | 0x59,
+ 35660 - 19968: jis0208<<14 | 0x4A<<7 | 0x56,
+ 35661 - 19968: jis0212<<14 | 0x3D<<7 | 0x2D,
+ 35662 - 19968: jis0208<<14 | 0x4A<<7 | 0x58,
+ 35663 - 19968: jis0208<<14 | 0x4A<<7 | 0x57,
+ 35666 - 19968: jis0212<<14 | 0x3D<<7 | 0x29,
+ 35667 - 19968: jis0208<<14 | 0x5A<<7 | 0x4E,
+ 35668 - 19968: jis0212<<14 | 0x3D<<7 | 0x2B,
+ 35670 - 19968: jis0208<<14 | 0x4A<<7 | 0x5A,
+ 35672 - 19968: jis0208<<14 | 0x1B<<7 | 0x10,
+ 35673 - 19968: jis0212<<14 | 0x3D<<7 | 0x2C,
+ 35674 - 19968: jis0208<<14 | 0x4A<<7 | 0x5C,
+ 35675 - 19968: jis0208<<14 | 0x4A<<7 | 0x5B,
+ 35676 - 19968: jis0208<<14 | 0x28<<7 | 0x47,
+ 35678 - 19968: jis0212<<14 | 0x3D<<7 | 0x2E,
+ 35679 - 19968: jis0208<<14 | 0x4B<<7 | 0x00,
+ 35683 - 19968: jis0212<<14 | 0x3D<<7 | 0x2F,
+ 35686 - 19968: jis0208<<14 | 0x16<<7 | 0x38,
+ 35691 - 19968: jis0208<<14 | 0x4A<<7 | 0x5D,
+ 35692 - 19968: jis0208<<14 | 0x4B<<7 | 0x01,
+ 35693 - 19968: jis0212<<14 | 0x3D<<7 | 0x30,
+ 35695 - 19968: jis0208<<14 | 0x4B<<7 | 0x02,
+ 35696 - 19968: jis0208<<14 | 0x14<<7 | 0x23,
+ 35697 - 19968: jis0208<<14 | 0x45<<7 | 0x20,
+ 35698 - 19968: jis0208<<14 | 0x1D<<7 | 0x58,
+ 35700 - 19968: jis0208<<14 | 0x4B<<7 | 0x03,
+ 35702 - 19968: jis0212<<14 | 0x3D<<7 | 0x31,
+ 35703 - 19968: jis0208<<14 | 0x17<<7 | 0x4D,
+ 35704 - 19968: jis0212<<14 | 0x3D<<7 | 0x32,
+ 35705 - 19968: jis0212<<14 | 0x3D<<7 | 0x33,
+ 35708 - 19968: jis0212<<14 | 0x3D<<7 | 0x34,
+ 35709 - 19968: jis0208<<14 | 0x4B<<7 | 0x04,
+ 35710 - 19968: jis0212<<14 | 0x3D<<7 | 0x35,
+ 35711 - 19968: jis0208<<14 | 0x5A<<7 | 0x4F,
+ 35712 - 19968: jis0208<<14 | 0x4B<<7 | 0x05,
+ 35713 - 19968: jis0212<<14 | 0x3D<<7 | 0x36,
+ 35715 - 19968: jis0208<<14 | 0x1A<<7 | 0x1D,
+ 35716 - 19968: jis0212<<14 | 0x3D<<7 | 0x37,
+ 35717 - 19968: jis0212<<14 | 0x3D<<7 | 0x38,
+ 35722 - 19968: jis0208<<14 | 0x39<<7 | 0x2D,
+ 35723 - 19968: jis0212<<14 | 0x3D<<7 | 0x39,
+ 35724 - 19968: jis0208<<14 | 0x4B<<7 | 0x06,
+ 35725 - 19968: jis0212<<14 | 0x3D<<7 | 0x3A,
+ 35726 - 19968: jis0208<<14 | 0x4B<<7 | 0x07,
+ 35727 - 19968: jis0212<<14 | 0x3D<<7 | 0x3B,
+ 35728 - 19968: jis0208<<14 | 0x1C<<7 | 0x11,
+ 35730 - 19968: jis0208<<14 | 0x4B<<7 | 0x08,
+ 35731 - 19968: jis0208<<14 | 0x4B<<7 | 0x09,
+ 35732 - 19968: jis0212<<14 | 0x3D<<7 | 0x3C,
+ 35733 - 19968: jis0212<<14 | 0x3D<<7 | 0x3D,
+ 35734 - 19968: jis0208<<14 | 0x4B<<7 | 0x0A,
+ 35737 - 19968: jis0208<<14 | 0x4B<<7 | 0x0B,
+ 35738 - 19968: jis0208<<14 | 0x4B<<7 | 0x0C,
+ 35740 - 19968: jis0212<<14 | 0x3D<<7 | 0x3E,
+ 35742 - 19968: jis0212<<14 | 0x3D<<7 | 0x3F,
+ 35743 - 19968: jis0212<<14 | 0x3D<<7 | 0x40,
+ 35895 - 19968: jis0208<<14 | 0x22<<7 | 0x0A,
+ 35896 - 19968: jis0212<<14 | 0x3D<<7 | 0x41,
+ 35897 - 19968: jis0212<<14 | 0x3D<<7 | 0x42,
+ 35898 - 19968: jis0208<<14 | 0x4B<<7 | 0x0D,
+ 35901 - 19968: jis0212<<14 | 0x3D<<7 | 0x43,
+ 35902 - 19968: jis0212<<14 | 0x3D<<7 | 0x44,
+ 35903 - 19968: jis0208<<14 | 0x4B<<7 | 0x0F,
+ 35905 - 19968: jis0208<<14 | 0x4B<<7 | 0x0E,
+ 35909 - 19968: jis0212<<14 | 0x3D<<7 | 0x45,
+ 35910 - 19968: jis0208<<14 | 0x25<<7 | 0x05,
+ 35911 - 19968: jis0212<<14 | 0x3D<<7 | 0x46,
+ 35912 - 19968: jis0208<<14 | 0x4B<<7 | 0x10,
+ 35913 - 19968: jis0212<<14 | 0x3D<<7 | 0x47,
+ 35914 - 19968: jis0208<<14 | 0x2A<<7 | 0x0C,
+ 35915 - 19968: jis0212<<14 | 0x3D<<7 | 0x48,
+ 35916 - 19968: jis0208<<14 | 0x4B<<7 | 0x11,
+ 35918 - 19968: jis0208<<14 | 0x4B<<7 | 0x12,
+ 35919 - 19968: jis0212<<14 | 0x3D<<7 | 0x49,
+ 35920 - 19968: jis0208<<14 | 0x4B<<7 | 0x13,
+ 35921 - 19968: jis0212<<14 | 0x3D<<7 | 0x4A,
+ 35923 - 19968: jis0212<<14 | 0x3D<<7 | 0x4B,
+ 35924 - 19968: jis0212<<14 | 0x3D<<7 | 0x4C,
+ 35925 - 19968: jis0208<<14 | 0x4B<<7 | 0x14,
+ 35927 - 19968: jis0212<<14 | 0x3D<<7 | 0x4D,
+ 35928 - 19968: jis0212<<14 | 0x3D<<7 | 0x4E,
+ 35929 - 19968: jis0212<<14 | 0x3D<<7 | 0x51,
+ 35930 - 19968: jis0208<<14 | 0x25<<7 | 0x39,
+ 35931 - 19968: jis0212<<14 | 0x3D<<7 | 0x4F,
+ 35933 - 19968: jis0212<<14 | 0x3D<<7 | 0x50,
+ 35937 - 19968: jis0208<<14 | 0x1D<<7 | 0x3C,
+ 35938 - 19968: jis0208<<14 | 0x4B<<7 | 0x15,
+ 35939 - 19968: jis0212<<14 | 0x3D<<7 | 0x52,
+ 35940 - 19968: jis0212<<14 | 0x3D<<7 | 0x53,
+ 35942 - 19968: jis0212<<14 | 0x3D<<7 | 0x54,
+ 35944 - 19968: jis0212<<14 | 0x3D<<7 | 0x55,
+ 35945 - 19968: jis0212<<14 | 0x3D<<7 | 0x56,
+ 35946 - 19968: jis0208<<14 | 0x18<<7 | 0x4A,
+ 35947 - 19968: jis0208<<14 | 0x2F<<7 | 0x0D,
+ 35948 - 19968: jis0208<<14 | 0x4B<<7 | 0x16,
+ 35949 - 19968: jis0212<<14 | 0x3D<<7 | 0x57,
+ 35955 - 19968: jis0212<<14 | 0x3D<<7 | 0x58,
+ 35957 - 19968: jis0212<<14 | 0x3D<<7 | 0x59,
+ 35958 - 19968: jis0212<<14 | 0x3D<<7 | 0x5A,
+ 35960 - 19968: jis0208<<14 | 0x4B<<7 | 0x17,
+ 35961 - 19968: jis0208<<14 | 0x28<<7 | 0x1E,
+ 35962 - 19968: jis0208<<14 | 0x4B<<7 | 0x18,
+ 35963 - 19968: jis0212<<14 | 0x3D<<7 | 0x5B,
+ 35964 - 19968: jis0208<<14 | 0x4B<<7 | 0x20,
+ 35966 - 19968: jis0212<<14 | 0x3D<<7 | 0x5C,
+ 35970 - 19968: jis0208<<14 | 0x4B<<7 | 0x19,
+ 35973 - 19968: jis0208<<14 | 0x4B<<7 | 0x1B,
+ 35974 - 19968: jis0212<<14 | 0x3D<<7 | 0x5D,
+ 35975 - 19968: jis0212<<14 | 0x3E<<7 | 0x00,
+ 35977 - 19968: jis0208<<14 | 0x4B<<7 | 0x1A,
+ 35978 - 19968: jis0208<<14 | 0x4B<<7 | 0x1C,
+ 35979 - 19968: jis0212<<14 | 0x3E<<7 | 0x01,
+ 35980 - 19968: jis0208<<14 | 0x2A<<7 | 0x25,
+ 35981 - 19968: jis0208<<14 | 0x4B<<7 | 0x1D,
+ 35982 - 19968: jis0208<<14 | 0x4B<<7 | 0x1E,
+ 35984 - 19968: jis0212<<14 | 0x3E<<7 | 0x02,
+ 35986 - 19968: jis0212<<14 | 0x3E<<7 | 0x03,
+ 35987 - 19968: jis0212<<14 | 0x3E<<7 | 0x04,
+ 35988 - 19968: jis0208<<14 | 0x4B<<7 | 0x1F,
+ 35992 - 19968: jis0208<<14 | 0x4B<<7 | 0x21,
+ 35993 - 19968: jis0212<<14 | 0x3E<<7 | 0x05,
+ 35995 - 19968: jis0212<<14 | 0x3E<<7 | 0x06,
+ 35996 - 19968: jis0212<<14 | 0x3E<<7 | 0x07,
+ 35997 - 19968: jis0208<<14 | 0x12<<7 | 0x0C,
+ 35998 - 19968: jis0208<<14 | 0x23<<7 | 0x46,
+ 36000 - 19968: jis0208<<14 | 0x28<<7 | 0x48,
+ 36001 - 19968: jis0208<<14 | 0x19<<7 | 0x41,
+ 36002 - 19968: jis0208<<14 | 0x18<<7 | 0x36,
+ 36004 - 19968: jis0212<<14 | 0x3E<<7 | 0x08,
+ 36007 - 19968: jis0208<<14 | 0x28<<7 | 0x2E,
+ 36008 - 19968: jis0208<<14 | 0x11<<7 | 0x3E,
+ 36009 - 19968: jis0208<<14 | 0x27<<7 | 0x2D,
+ 36010 - 19968: jis0208<<14 | 0x4B<<7 | 0x24,
+ 36011 - 19968: jis0208<<14 | 0x13<<7 | 0x32,
+ 36012 - 19968: jis0208<<14 | 0x1F<<7 | 0x34,
+ 36013 - 19968: jis0208<<14 | 0x4B<<7 | 0x23,
+ 36014 - 19968: jis0208<<14 | 0x4B<<7 | 0x28,
+ 36015 - 19968: jis0208<<14 | 0x22<<7 | 0x58,
+ 36016 - 19968: jis0208<<14 | 0x2B<<7 | 0x42,
+ 36018 - 19968: jis0208<<14 | 0x4B<<7 | 0x26,
+ 36019 - 19968: jis0208<<14 | 0x4B<<7 | 0x27,
+ 36020 - 19968: jis0208<<14 | 0x14<<7 | 0x0D,
+ 36022 - 19968: jis0208<<14 | 0x4B<<7 | 0x29,
+ 36023 - 19968: jis0208<<14 | 0x26<<7 | 0x42,
+ 36024 - 19968: jis0208<<14 | 0x21<<7 | 0x3E,
+ 36025 - 19968: jis0212<<14 | 0x3E<<7 | 0x09,
+ 36026 - 19968: jis0212<<14 | 0x3E<<7 | 0x0A,
+ 36027 - 19968: jis0208<<14 | 0x27<<7 | 0x50,
+ 36028 - 19968: jis0208<<14 | 0x24<<7 | 0x1C,
+ 36029 - 19968: jis0208<<14 | 0x4B<<7 | 0x25,
+ 36031 - 19968: jis0208<<14 | 0x2A<<7 | 0x26,
+ 36032 - 19968: jis0208<<14 | 0x11<<7 | 0x4B,
+ 36033 - 19968: jis0208<<14 | 0x4B<<7 | 0x2B,
+ 36034 - 19968: jis0208<<14 | 0x2E<<7 | 0x07,
+ 36035 - 19968: jis0208<<14 | 0x23<<7 | 0x21,
+ 36036 - 19968: jis0208<<14 | 0x2E<<7 | 0x24,
+ 36037 - 19968: jis0212<<14 | 0x3E<<7 | 0x0B,
+ 36038 - 19968: jis0212<<14 | 0x3E<<7 | 0x0C,
+ 36039 - 19968: jis0208<<14 | 0x1A<<7 | 0x50,
+ 36040 - 19968: jis0208<<14 | 0x4B<<7 | 0x2A,
+ 36041 - 19968: jis0212<<14 | 0x3E<<7 | 0x0D,
+ 36042 - 19968: jis0208<<14 | 0x21<<7 | 0x10,
+ 36043 - 19968: jis0212<<14 | 0x3E<<7 | 0x0E,
+ 36045 - 19968: jis0208<<14 | 0x4B<<7 | 0x3B,
+ 36046 - 19968: jis0208<<14 | 0x20<<7 | 0x07,
+ 36047 - 19968: jis0212<<14 | 0x3E<<7 | 0x0F,
+ 36049 - 19968: jis0208<<14 | 0x25<<7 | 0x57,
+ 36051 - 19968: jis0208<<14 | 0x28<<7 | 0x2F,
+ 36053 - 19968: jis0212<<14 | 0x3E<<7 | 0x11,
+ 36054 - 19968: jis0212<<14 | 0x3E<<7 | 0x10,
+ 36057 - 19968: jis0212<<14 | 0x3E<<7 | 0x12,
+ 36058 - 19968: jis0208<<14 | 0x4B<<7 | 0x2E,
+ 36059 - 19968: jis0208<<14 | 0x1A<<7 | 0x1E,
+ 36060 - 19968: jis0208<<14 | 0x1A<<7 | 0x51,
+ 36061 - 19968: jis0212<<14 | 0x3E<<7 | 0x13,
+ 36062 - 19968: jis0208<<14 | 0x1D<<7 | 0x3D,
+ 36064 - 19968: jis0208<<14 | 0x26<<7 | 0x44,
+ 36065 - 19968: jis0212<<14 | 0x3E<<7 | 0x14,
+ 36066 - 19968: jis0208<<14 | 0x17<<7 | 0x0C,
+ 36067 - 19968: jis0208<<14 | 0x4B<<7 | 0x2D,
+ 36068 - 19968: jis0208<<14 | 0x4B<<7 | 0x2C,
+ 36070 - 19968: jis0208<<14 | 0x28<<7 | 0x49,
+ 36072 - 19968: jis0212<<14 | 0x3E<<7 | 0x15,
+ 36074 - 19968: jis0208<<14 | 0x1B<<7 | 0x20,
+ 36076 - 19968: jis0212<<14 | 0x3E<<7 | 0x16,
+ 36077 - 19968: jis0208<<14 | 0x24<<7 | 0x31,
+ 36079 - 19968: jis0212<<14 | 0x3E<<7 | 0x17,
+ 36080 - 19968: jis0208<<14 | 0x5A<<7 | 0x50,
+ 36082 - 19968: jis0212<<14 | 0x3E<<7 | 0x19,
+ 36084 - 19968: jis0208<<14 | 0x5A<<7 | 0x51,
+ 36085 - 19968: jis0212<<14 | 0x3E<<7 | 0x1A,
+ 36087 - 19968: jis0212<<14 | 0x3E<<7 | 0x1B,
+ 36088 - 19968: jis0212<<14 | 0x3E<<7 | 0x1C,
+ 36090 - 19968: jis0208<<14 | 0x4B<<7 | 0x30,
+ 36091 - 19968: jis0208<<14 | 0x4B<<7 | 0x31,
+ 36092 - 19968: jis0208<<14 | 0x18<<7 | 0x37,
+ 36093 - 19968: jis0208<<14 | 0x4B<<7 | 0x2F,
+ 36094 - 19968: jis0212<<14 | 0x3E<<7 | 0x1D,
+ 36095 - 19968: jis0212<<14 | 0x3E<<7 | 0x1E,
+ 36097 - 19968: jis0212<<14 | 0x3E<<7 | 0x1F,
+ 36099 - 19968: jis0212<<14 | 0x3E<<7 | 0x20,
+ 36100 - 19968: jis0208<<14 | 0x4B<<7 | 0x32,
+ 36101 - 19968: jis0208<<14 | 0x4B<<7 | 0x33,
+ 36103 - 19968: jis0208<<14 | 0x4B<<7 | 0x35,
+ 36104 - 19968: jis0208<<14 | 0x21<<7 | 0x02,
+ 36105 - 19968: jis0212<<14 | 0x3E<<7 | 0x21,
+ 36106 - 19968: jis0208<<14 | 0x4B<<7 | 0x34,
+ 36107 - 19968: jis0208<<14 | 0x13<<7 | 0x45,
+ 36109 - 19968: jis0208<<14 | 0x4B<<7 | 0x37,
+ 36111 - 19968: jis0208<<14 | 0x4B<<7 | 0x36,
+ 36112 - 19968: jis0208<<14 | 0x4B<<7 | 0x38,
+ 36114 - 19968: jis0208<<14 | 0x5A<<7 | 0x52,
+ 36115 - 19968: jis0208<<14 | 0x4B<<7 | 0x3A,
+ 36116 - 19968: jis0208<<14 | 0x4B<<7 | 0x3C,
+ 36118 - 19968: jis0208<<14 | 0x4B<<7 | 0x3D,
+ 36119 - 19968: jis0212<<14 | 0x3E<<7 | 0x23,
+ 36123 - 19968: jis0212<<14 | 0x3E<<7 | 0x24,
+ 36196 - 19968: jis0208<<14 | 0x1F<<7 | 0x35,
+ 36197 - 19968: jis0212<<14 | 0x3E<<7 | 0x25,
+ 36198 - 19968: jis0208<<14 | 0x1B<<7 | 0x2E,
+ 36199 - 19968: jis0208<<14 | 0x4B<<7 | 0x3E,
+ 36201 - 19968: jis0212<<14 | 0x3E<<7 | 0x26,
+ 36203 - 19968: jis0208<<14 | 0x12<<7 | 0x31,
+ 36204 - 19968: jis0212<<14 | 0x3E<<7 | 0x27,
+ 36205 - 19968: jis0208<<14 | 0x4B<<7 | 0x3F,
+ 36206 - 19968: jis0212<<14 | 0x3E<<7 | 0x28,
+ 36208 - 19968: jis0208<<14 | 0x20<<7 | 0x55,
+ 36209 - 19968: jis0208<<14 | 0x4B<<7 | 0x40,
+ 36211 - 19968: jis0208<<14 | 0x4B<<7 | 0x41,
+ 36212 - 19968: jis0208<<14 | 0x28<<7 | 0x4A,
+ 36214 - 19968: jis0208<<14 | 0x5A<<7 | 0x53,
+ 36215 - 19968: jis0208<<14 | 0x14<<7 | 0x0E,
+ 36223 - 19968: jis0212<<14 | 0x3E<<7 | 0x29,
+ 36225 - 19968: jis0208<<14 | 0x4B<<7 | 0x42,
+ 36226 - 19968: jis0212<<14 | 0x3E<<7 | 0x2A,
+ 36228 - 19968: jis0212<<14 | 0x3E<<7 | 0x2B,
+ 36229 - 19968: jis0208<<14 | 0x23<<7 | 0x15,
+ 36232 - 19968: jis0212<<14 | 0x3E<<7 | 0x2C,
+ 36234 - 19968: jis0208<<14 | 0x10<<7 | 0x3A,
+ 36237 - 19968: jis0212<<14 | 0x3E<<7 | 0x2D,
+ 36240 - 19968: jis0212<<14 | 0x3E<<7 | 0x2E,
+ 36241 - 19968: jis0212<<14 | 0x3E<<7 | 0x2F,
+ 36245 - 19968: jis0212<<14 | 0x3E<<7 | 0x30,
+ 36249 - 19968: jis0208<<14 | 0x4B<<7 | 0x43,
+ 36254 - 19968: jis0212<<14 | 0x3E<<7 | 0x31,
+ 36255 - 19968: jis0212<<14 | 0x3E<<7 | 0x32,
+ 36256 - 19968: jis0212<<14 | 0x3E<<7 | 0x33,
+ 36259 - 19968: jis0208<<14 | 0x1B<<7 | 0x50,
+ 36262 - 19968: jis0212<<14 | 0x3E<<7 | 0x34,
+ 36264 - 19968: jis0208<<14 | 0x1E<<7 | 0x55,
+ 36267 - 19968: jis0212<<14 | 0x3E<<7 | 0x35,
+ 36268 - 19968: jis0212<<14 | 0x3E<<7 | 0x36,
+ 36271 - 19968: jis0212<<14 | 0x3E<<7 | 0x37,
+ 36274 - 19968: jis0212<<14 | 0x3E<<7 | 0x38,
+ 36275 - 19968: jis0208<<14 | 0x21<<7 | 0x0C,
+ 36277 - 19968: jis0212<<14 | 0x3E<<7 | 0x39,
+ 36279 - 19968: jis0212<<14 | 0x3E<<7 | 0x3A,
+ 36281 - 19968: jis0212<<14 | 0x3E<<7 | 0x3B,
+ 36282 - 19968: jis0208<<14 | 0x4B<<7 | 0x46,
+ 36283 - 19968: jis0212<<14 | 0x3E<<7 | 0x3C,
+ 36284 - 19968: jis0212<<14 | 0x3E<<7 | 0x4E,
+ 36286 - 19968: jis0208<<14 | 0x4B<<7 | 0x45,
+ 36288 - 19968: jis0212<<14 | 0x3E<<7 | 0x3D,
+ 36290 - 19968: jis0208<<14 | 0x4B<<7 | 0x44,
+ 36293 - 19968: jis0212<<14 | 0x3E<<7 | 0x3E,
+ 36294 - 19968: jis0212<<14 | 0x3E<<7 | 0x3F,
+ 36295 - 19968: jis0212<<14 | 0x3E<<7 | 0x40,
+ 36296 - 19968: jis0212<<14 | 0x3E<<7 | 0x41,
+ 36298 - 19968: jis0212<<14 | 0x3E<<7 | 0x42,
+ 36299 - 19968: jis0208<<14 | 0x4B<<7 | 0x4C,
+ 36300 - 19968: jis0208<<14 | 0x4B<<7 | 0x4A,
+ 36302 - 19968: jis0212<<14 | 0x3E<<7 | 0x43,
+ 36303 - 19968: jis0208<<14 | 0x4B<<7 | 0x47,
+ 36305 - 19968: jis0212<<14 | 0x3E<<7 | 0x44,
+ 36308 - 19968: jis0212<<14 | 0x3E<<7 | 0x45,
+ 36309 - 19968: jis0212<<14 | 0x3E<<7 | 0x46,
+ 36310 - 19968: jis0208<<14 | 0x4B<<7 | 0x49,
+ 36311 - 19968: jis0212<<14 | 0x3E<<7 | 0x47,
+ 36313 - 19968: jis0212<<14 | 0x3E<<7 | 0x48,
+ 36314 - 19968: jis0208<<14 | 0x4B<<7 | 0x48,
+ 36315 - 19968: jis0208<<14 | 0x4B<<7 | 0x4B,
+ 36317 - 19968: jis0208<<14 | 0x14<<7 | 0x56,
+ 36319 - 19968: jis0208<<14 | 0x4B<<7 | 0x4F,
+ 36321 - 19968: jis0208<<14 | 0x1F<<7 | 0x36,
+ 36323 - 19968: jis0208<<14 | 0x4B<<7 | 0x50,
+ 36324 - 19968: jis0212<<14 | 0x3E<<7 | 0x49,
+ 36325 - 19968: jis0212<<14 | 0x3E<<7 | 0x4A,
+ 36327 - 19968: jis0212<<14 | 0x3E<<7 | 0x4B,
+ 36328 - 19968: jis0208<<14 | 0x17<<7 | 0x38,
+ 36330 - 19968: jis0208<<14 | 0x4B<<7 | 0x4D,
+ 36331 - 19968: jis0208<<14 | 0x4B<<7 | 0x4E,
+ 36332 - 19968: jis0212<<14 | 0x3E<<7 | 0x4C,
+ 36335 - 19968: jis0208<<14 | 0x2E<<7 | 0x08,
+ 36336 - 19968: jis0212<<14 | 0x3E<<7 | 0x4D,
+ 36337 - 19968: jis0212<<14 | 0x3E<<7 | 0x4F,
+ 36338 - 19968: jis0212<<14 | 0x3E<<7 | 0x50,
+ 36339 - 19968: jis0208<<14 | 0x23<<7 | 0x16,
+ 36340 - 19968: jis0212<<14 | 0x3E<<7 | 0x51,
+ 36341 - 19968: jis0208<<14 | 0x20<<7 | 0x08,
+ 36348 - 19968: jis0208<<14 | 0x4B<<7 | 0x51,
+ 36349 - 19968: jis0212<<14 | 0x3E<<7 | 0x52,
+ 36351 - 19968: jis0208<<14 | 0x4B<<7 | 0x54,
+ 36353 - 19968: jis0212<<14 | 0x3E<<7 | 0x53,
+ 36356 - 19968: jis0212<<14 | 0x3E<<7 | 0x54,
+ 36357 - 19968: jis0212<<14 | 0x3E<<7 | 0x55,
+ 36358 - 19968: jis0212<<14 | 0x3E<<7 | 0x56,
+ 36360 - 19968: jis0208<<14 | 0x4B<<7 | 0x52,
+ 36361 - 19968: jis0208<<14 | 0x4B<<7 | 0x53,
+ 36362 - 19968: jis0208<<14 | 0x2C<<7 | 0x38,
+ 36363 - 19968: jis0212<<14 | 0x3E<<7 | 0x57,
+ 36367 - 19968: jis0208<<14 | 0x25<<7 | 0x06,
+ 36368 - 19968: jis0208<<14 | 0x4B<<7 | 0x57,
+ 36369 - 19968: jis0212<<14 | 0x3E<<7 | 0x58,
+ 36372 - 19968: jis0212<<14 | 0x3E<<7 | 0x59,
+ 36374 - 19968: jis0212<<14 | 0x3E<<7 | 0x5A,
+ 36381 - 19968: jis0208<<14 | 0x4B<<7 | 0x55,
+ 36382 - 19968: jis0208<<14 | 0x4B<<7 | 0x56,
+ 36383 - 19968: jis0208<<14 | 0x4B<<7 | 0x58,
+ 36384 - 19968: jis0212<<14 | 0x3E<<7 | 0x5B,
+ 36385 - 19968: jis0212<<14 | 0x3E<<7 | 0x5C,
+ 36386 - 19968: jis0212<<14 | 0x3E<<7 | 0x5D,
+ 36387 - 19968: jis0212<<14 | 0x3F<<7 | 0x00,
+ 36390 - 19968: jis0212<<14 | 0x3F<<7 | 0x01,
+ 36391 - 19968: jis0212<<14 | 0x3F<<7 | 0x02,
+ 36394 - 19968: jis0208<<14 | 0x4C<<7 | 0x08,
+ 36400 - 19968: jis0208<<14 | 0x4B<<7 | 0x5B,
+ 36401 - 19968: jis0212<<14 | 0x3F<<7 | 0x03,
+ 36403 - 19968: jis0212<<14 | 0x3F<<7 | 0x04,
+ 36404 - 19968: jis0208<<14 | 0x4B<<7 | 0x5C,
+ 36405 - 19968: jis0208<<14 | 0x4B<<7 | 0x5A,
+ 36406 - 19968: jis0212<<14 | 0x3F<<7 | 0x05,
+ 36407 - 19968: jis0212<<14 | 0x3F<<7 | 0x06,
+ 36408 - 19968: jis0212<<14 | 0x3F<<7 | 0x07,
+ 36409 - 19968: jis0212<<14 | 0x3F<<7 | 0x08,
+ 36413 - 19968: jis0212<<14 | 0x3F<<7 | 0x09,
+ 36416 - 19968: jis0212<<14 | 0x3F<<7 | 0x0A,
+ 36417 - 19968: jis0212<<14 | 0x3F<<7 | 0x0B,
+ 36418 - 19968: jis0208<<14 | 0x4B<<7 | 0x59,
+ 36420 - 19968: jis0208<<14 | 0x23<<7 | 0x5C,
+ 36423 - 19968: jis0208<<14 | 0x4C<<7 | 0x00,
+ 36424 - 19968: jis0208<<14 | 0x4C<<7 | 0x04,
+ 36425 - 19968: jis0208<<14 | 0x4C<<7 | 0x01,
+ 36426 - 19968: jis0208<<14 | 0x4B<<7 | 0x5D,
+ 36427 - 19968: jis0212<<14 | 0x3F<<7 | 0x0C,
+ 36428 - 19968: jis0208<<14 | 0x4C<<7 | 0x02,
+ 36429 - 19968: jis0212<<14 | 0x3F<<7 | 0x0D,
+ 36430 - 19968: jis0212<<14 | 0x3F<<7 | 0x0E,
+ 36431 - 19968: jis0212<<14 | 0x3F<<7 | 0x0F,
+ 36432 - 19968: jis0208<<14 | 0x4C<<7 | 0x03,
+ 36436 - 19968: jis0212<<14 | 0x3F<<7 | 0x10,
+ 36437 - 19968: jis0208<<14 | 0x4C<<7 | 0x0A,
+ 36441 - 19968: jis0208<<14 | 0x4C<<7 | 0x05,
+ 36443 - 19968: jis0212<<14 | 0x3F<<7 | 0x11,
+ 36444 - 19968: jis0212<<14 | 0x3F<<7 | 0x12,
+ 36445 - 19968: jis0212<<14 | 0x3F<<7 | 0x13,
+ 36446 - 19968: jis0212<<14 | 0x3F<<7 | 0x14,
+ 36447 - 19968: jis0208<<14 | 0x1F<<7 | 0x37,
+ 36448 - 19968: jis0208<<14 | 0x4C<<7 | 0x07,
+ 36449 - 19968: jis0212<<14 | 0x3F<<7 | 0x15,
+ 36450 - 19968: jis0212<<14 | 0x3F<<7 | 0x16,
+ 36451 - 19968: jis0208<<14 | 0x4C<<7 | 0x09,
+ 36452 - 19968: jis0208<<14 | 0x4C<<7 | 0x06,
+ 36457 - 19968: jis0212<<14 | 0x3F<<7 | 0x17,
+ 36460 - 19968: jis0212<<14 | 0x3F<<7 | 0x18,
+ 36461 - 19968: jis0212<<14 | 0x3F<<7 | 0x19,
+ 36463 - 19968: jis0212<<14 | 0x3F<<7 | 0x1A,
+ 36464 - 19968: jis0212<<14 | 0x3F<<7 | 0x1B,
+ 36465 - 19968: jis0212<<14 | 0x3F<<7 | 0x1C,
+ 36466 - 19968: jis0208<<14 | 0x4C<<7 | 0x0C,
+ 36468 - 19968: jis0208<<14 | 0x1C<<7 | 0x12,
+ 36470 - 19968: jis0208<<14 | 0x4C<<7 | 0x0B,
+ 36473 - 19968: jis0212<<14 | 0x3F<<7 | 0x1D,
+ 36474 - 19968: jis0212<<14 | 0x3F<<7 | 0x1E,
+ 36475 - 19968: jis0212<<14 | 0x3F<<7 | 0x1F,
+ 36476 - 19968: jis0208<<14 | 0x4C<<7 | 0x0D,
+ 36481 - 19968: jis0208<<14 | 0x4C<<7 | 0x0E,
+ 36482 - 19968: jis0212<<14 | 0x3F<<7 | 0x20,
+ 36483 - 19968: jis0212<<14 | 0x3F<<7 | 0x21,
+ 36484 - 19968: jis0208<<14 | 0x4C<<7 | 0x11,
+ 36485 - 19968: jis0208<<14 | 0x4C<<7 | 0x10,
+ 36487 - 19968: jis0208<<14 | 0x4C<<7 | 0x0F,
+ 36489 - 19968: jis0212<<14 | 0x3F<<7 | 0x22,
+ 36490 - 19968: jis0208<<14 | 0x4C<<7 | 0x13,
+ 36491 - 19968: jis0208<<14 | 0x4C<<7 | 0x12,
+ 36493 - 19968: jis0208<<14 | 0x2B<<7 | 0x55,
+ 36496 - 19968: jis0212<<14 | 0x3F<<7 | 0x23,
+ 36497 - 19968: jis0208<<14 | 0x4C<<7 | 0x15,
+ 36498 - 19968: jis0212<<14 | 0x3F<<7 | 0x24,
+ 36499 - 19968: jis0208<<14 | 0x4C<<7 | 0x14,
+ 36500 - 19968: jis0208<<14 | 0x4C<<7 | 0x16,
+ 36501 - 19968: jis0212<<14 | 0x3F<<7 | 0x25,
+ 36505 - 19968: jis0208<<14 | 0x4C<<7 | 0x17,
+ 36506 - 19968: jis0212<<14 | 0x3F<<7 | 0x26,
+ 36507 - 19968: jis0212<<14 | 0x3F<<7 | 0x27,
+ 36509 - 19968: jis0212<<14 | 0x3F<<7 | 0x28,
+ 36510 - 19968: jis0212<<14 | 0x3F<<7 | 0x29,
+ 36513 - 19968: jis0208<<14 | 0x4C<<7 | 0x19,
+ 36514 - 19968: jis0212<<14 | 0x3F<<7 | 0x2A,
+ 36519 - 19968: jis0212<<14 | 0x3F<<7 | 0x2B,
+ 36521 - 19968: jis0212<<14 | 0x3F<<7 | 0x2C,
+ 36522 - 19968: jis0208<<14 | 0x4C<<7 | 0x18,
+ 36523 - 19968: jis0208<<14 | 0x1E<<7 | 0x27,
+ 36524 - 19968: jis0208<<14 | 0x4C<<7 | 0x1A,
+ 36525 - 19968: jis0212<<14 | 0x3F<<7 | 0x2D,
+ 36526 - 19968: jis0212<<14 | 0x3F<<7 | 0x2E,
+ 36527 - 19968: jis0208<<14 | 0x15<<7 | 0x4C,
+ 36528 - 19968: jis0208<<14 | 0x4C<<7 | 0x1B,
+ 36529 - 19968: jis0208<<14 | 0x4C<<7 | 0x1D,
+ 36531 - 19968: jis0212<<14 | 0x3F<<7 | 0x2F,
+ 36533 - 19968: jis0212<<14 | 0x3F<<7 | 0x30,
+ 36538 - 19968: jis0212<<14 | 0x3F<<7 | 0x31,
+ 36539 - 19968: jis0212<<14 | 0x3F<<7 | 0x32,
+ 36542 - 19968: jis0208<<14 | 0x4C<<7 | 0x1E,
+ 36544 - 19968: jis0212<<14 | 0x3F<<7 | 0x33,
+ 36545 - 19968: jis0212<<14 | 0x3F<<7 | 0x34,
+ 36547 - 19968: jis0212<<14 | 0x3F<<7 | 0x35,
+ 36548 - 19968: jis0212<<14 | 0x3F<<7 | 0x36,
+ 36549 - 19968: jis0208<<14 | 0x4C<<7 | 0x1F,
+ 36550 - 19968: jis0208<<14 | 0x4C<<7 | 0x1C,
+ 36551 - 19968: jis0212<<14 | 0x3F<<7 | 0x37,
+ 36552 - 19968: jis0208<<14 | 0x4C<<7 | 0x20,
+ 36554 - 19968: jis0208<<14 | 0x1B<<7 | 0x35,
+ 36555 - 19968: jis0208<<14 | 0x4C<<7 | 0x21,
+ 36556 - 19968: jis0208<<14 | 0x14<<7 | 0x0F,
+ 36557 - 19968: jis0208<<14 | 0x16<<7 | 0x12,
+ 36559 - 19968: jis0208<<14 | 0x5A<<7 | 0x55,
+ 36561 - 19968: jis0212<<14 | 0x3F<<7 | 0x39,
+ 36562 - 19968: jis0208<<14 | 0x17<<7 | 0x0D,
+ 36564 - 19968: jis0212<<14 | 0x3F<<7 | 0x3A,
+ 36571 - 19968: jis0208<<14 | 0x4C<<7 | 0x22,
+ 36572 - 19968: jis0212<<14 | 0x3F<<7 | 0x3B,
+ 36575 - 19968: jis0208<<14 | 0x25<<7 | 0x4F,
+ 36578 - 19968: jis0208<<14 | 0x24<<7 | 0x1D,
+ 36579 - 19968: jis0208<<14 | 0x4C<<7 | 0x23,
+ 36584 - 19968: jis0212<<14 | 0x3F<<7 | 0x3C,
+ 36587 - 19968: jis0208<<14 | 0x4C<<7 | 0x26,
+ 36589 - 19968: jis0212<<14 | 0x3F<<7 | 0x43,
+ 36590 - 19968: jis0212<<14 | 0x3F<<7 | 0x3D,
+ 36592 - 19968: jis0212<<14 | 0x3F<<7 | 0x3E,
+ 36593 - 19968: jis0212<<14 | 0x3F<<7 | 0x3F,
+ 36599 - 19968: jis0212<<14 | 0x3F<<7 | 0x40,
+ 36600 - 19968: jis0208<<14 | 0x1B<<7 | 0x13,
+ 36601 - 19968: jis0212<<14 | 0x3F<<7 | 0x41,
+ 36602 - 19968: jis0212<<14 | 0x3F<<7 | 0x42,
+ 36603 - 19968: jis0208<<14 | 0x4C<<7 | 0x25,
+ 36604 - 19968: jis0208<<14 | 0x4C<<7 | 0x24,
+ 36605 - 19968: jis0208<<14 | 0x16<<7 | 0x39,
+ 36606 - 19968: jis0208<<14 | 0x4C<<7 | 0x27,
+ 36608 - 19968: jis0212<<14 | 0x3F<<7 | 0x44,
+ 36610 - 19968: jis0212<<14 | 0x3F<<7 | 0x45,
+ 36611 - 19968: jis0208<<14 | 0x12<<7 | 0x32,
+ 36613 - 19968: jis0208<<14 | 0x4C<<7 | 0x29,
+ 36615 - 19968: jis0212<<14 | 0x3F<<7 | 0x46,
+ 36616 - 19968: jis0212<<14 | 0x3F<<7 | 0x47,
+ 36617 - 19968: jis0208<<14 | 0x19<<7 | 0x3B,
+ 36618 - 19968: jis0208<<14 | 0x4C<<7 | 0x28,
+ 36620 - 19968: jis0208<<14 | 0x4C<<7 | 0x31,
+ 36623 - 19968: jis0212<<14 | 0x3F<<7 | 0x48,
+ 36624 - 19968: jis0212<<14 | 0x3F<<7 | 0x49,
+ 36626 - 19968: jis0208<<14 | 0x4C<<7 | 0x2B,
+ 36627 - 19968: jis0208<<14 | 0x4C<<7 | 0x2D,
+ 36628 - 19968: jis0208<<14 | 0x29<<7 | 0x44,
+ 36629 - 19968: jis0208<<14 | 0x4C<<7 | 0x2A,
+ 36630 - 19968: jis0212<<14 | 0x3F<<7 | 0x4A,
+ 36631 - 19968: jis0212<<14 | 0x3F<<7 | 0x4B,
+ 36632 - 19968: jis0212<<14 | 0x3F<<7 | 0x4C,
+ 36633 - 19968: jis0208<<14 | 0x4C<<7 | 0x2C,
+ 36635 - 19968: jis0208<<14 | 0x4C<<7 | 0x30,
+ 36636 - 19968: jis0208<<14 | 0x4C<<7 | 0x2E,
+ 36637 - 19968: jis0208<<14 | 0x14<<7 | 0x10,
+ 36638 - 19968: jis0212<<14 | 0x3F<<7 | 0x4D,
+ 36639 - 19968: jis0208<<14 | 0x4C<<7 | 0x2F,
+ 36640 - 19968: jis0212<<14 | 0x3F<<7 | 0x4E,
+ 36641 - 19968: jis0212<<14 | 0x3F<<7 | 0x4F,
+ 36643 - 19968: jis0212<<14 | 0x3F<<7 | 0x50,
+ 36645 - 19968: jis0212<<14 | 0x3F<<7 | 0x51,
+ 36646 - 19968: jis0208<<14 | 0x4C<<7 | 0x32,
+ 36647 - 19968: jis0212<<14 | 0x3F<<7 | 0x52,
+ 36648 - 19968: jis0212<<14 | 0x3F<<7 | 0x53,
+ 36649 - 19968: jis0208<<14 | 0x26<<7 | 0x39,
+ 36650 - 19968: jis0208<<14 | 0x2D<<7 | 0x37,
+ 36652 - 19968: jis0212<<14 | 0x3F<<7 | 0x54,
+ 36653 - 19968: jis0212<<14 | 0x3F<<7 | 0x55,
+ 36654 - 19968: jis0212<<14 | 0x3F<<7 | 0x56,
+ 36655 - 19968: jis0208<<14 | 0x1C<<7 | 0x13,
+ 36659 - 19968: jis0208<<14 | 0x4C<<7 | 0x33,
+ 36660 - 19968: jis0212<<14 | 0x3F<<7 | 0x57,
+ 36661 - 19968: jis0212<<14 | 0x3F<<7 | 0x58,
+ 36662 - 19968: jis0212<<14 | 0x3F<<7 | 0x59,
+ 36663 - 19968: jis0212<<14 | 0x3F<<7 | 0x5A,
+ 36664 - 19968: jis0208<<14 | 0x2C<<7 | 0x01,
+ 36665 - 19968: jis0208<<14 | 0x4C<<7 | 0x35,
+ 36666 - 19968: jis0212<<14 | 0x3F<<7 | 0x5B,
+ 36667 - 19968: jis0208<<14 | 0x4C<<7 | 0x34,
+ 36670 - 19968: jis0208<<14 | 0x4C<<7 | 0x38,
+ 36671 - 19968: jis0208<<14 | 0x2C<<7 | 0x20,
+ 36672 - 19968: jis0212<<14 | 0x3F<<7 | 0x5C,
+ 36673 - 19968: jis0212<<14 | 0x3F<<7 | 0x5D,
+ 36674 - 19968: jis0208<<14 | 0x4C<<7 | 0x37,
+ 36675 - 19968: jis0212<<14 | 0x40<<7 | 0x00,
+ 36676 - 19968: jis0208<<14 | 0x12<<7 | 0x4C,
+ 36677 - 19968: jis0208<<14 | 0x4C<<7 | 0x36,
+ 36678 - 19968: jis0208<<14 | 0x4C<<7 | 0x3B,
+ 36679 - 19968: jis0212<<14 | 0x40<<7 | 0x01,
+ 36681 - 19968: jis0208<<14 | 0x4C<<7 | 0x3A,
+ 36684 - 19968: jis0208<<14 | 0x4C<<7 | 0x39,
+ 36685 - 19968: jis0208<<14 | 0x24<<7 | 0x11,
+ 36686 - 19968: jis0208<<14 | 0x4C<<7 | 0x3C,
+ 36687 - 19968: jis0212<<14 | 0x40<<7 | 0x02,
+ 36689 - 19968: jis0212<<14 | 0x40<<7 | 0x03,
+ 36690 - 19968: jis0212<<14 | 0x40<<7 | 0x04,
+ 36691 - 19968: jis0212<<14 | 0x40<<7 | 0x05,
+ 36692 - 19968: jis0212<<14 | 0x40<<7 | 0x06,
+ 36693 - 19968: jis0212<<14 | 0x40<<7 | 0x07,
+ 36695 - 19968: jis0208<<14 | 0x4C<<7 | 0x3D,
+ 36696 - 19968: jis0212<<14 | 0x40<<7 | 0x08,
+ 36700 - 19968: jis0208<<14 | 0x4C<<7 | 0x3E,
+ 36701 - 19968: jis0212<<14 | 0x40<<7 | 0x09,
+ 36702 - 19968: jis0212<<14 | 0x40<<7 | 0x0A,
+ 36703 - 19968: jis0208<<14 | 0x18<<7 | 0x4B,
+ 36705 - 19968: jis0208<<14 | 0x16<<7 | 0x04,
+ 36706 - 19968: jis0208<<14 | 0x4C<<7 | 0x3F,
+ 36707 - 19968: jis0208<<14 | 0x4C<<7 | 0x40,
+ 36708 - 19968: jis0208<<14 | 0x4C<<7 | 0x41,
+ 36709 - 19968: jis0212<<14 | 0x40<<7 | 0x0B,
+ 36763 - 19968: jis0208<<14 | 0x1E<<7 | 0x28,
+ 36764 - 19968: jis0208<<14 | 0x4C<<7 | 0x42,
+ 36765 - 19968: jis0212<<14 | 0x40<<7 | 0x0C,
+ 36766 - 19968: jis0208<<14 | 0x1B<<7 | 0x0C,
+ 36767 - 19968: jis0208<<14 | 0x4C<<7 | 0x43,
+ 36768 - 19968: jis0212<<14 | 0x40<<7 | 0x0D,
+ 36769 - 19968: jis0212<<14 | 0x40<<7 | 0x0E,
+ 36771 - 19968: jis0208<<14 | 0x4C<<7 | 0x44,
+ 36772 - 19968: jis0212<<14 | 0x40<<7 | 0x0F,
+ 36773 - 19968: jis0212<<14 | 0x40<<7 | 0x10,
+ 36774 - 19968: jis0212<<14 | 0x40<<7 | 0x11,
+ 36775 - 19968: jis0208<<14 | 0x31<<7 | 0x00,
+ 36776 - 19968: jis0208<<14 | 0x30<<7 | 0x5D,
+ 36781 - 19968: jis0208<<14 | 0x4C<<7 | 0x45,
+ 36782 - 19968: jis0208<<14 | 0x44<<7 | 0x4F,
+ 36783 - 19968: jis0208<<14 | 0x4C<<7 | 0x46,
+ 36784 - 19968: jis0208<<14 | 0x22<<7 | 0x03,
+ 36785 - 19968: jis0208<<14 | 0x1E<<7 | 0x0A,
+ 36786 - 19968: jis0208<<14 | 0x26<<7 | 0x1F,
+ 36789 - 19968: jis0212<<14 | 0x40<<7 | 0x12,
+ 36790 - 19968: jis0212<<14 | 0x40<<7 | 0x13,
+ 36791 - 19968: jis0208<<14 | 0x4C<<7 | 0x47,
+ 36792 - 19968: jis0212<<14 | 0x40<<7 | 0x14,
+ 36794 - 19968: jis0208<<14 | 0x29<<7 | 0x34,
+ 36795 - 19968: jis0208<<14 | 0x23<<7 | 0x33,
+ 36796 - 19968: jis0208<<14 | 0x18<<7 | 0x5D,
+ 36798 - 19968: jis0212<<14 | 0x40<<7 | 0x15,
+ 36799 - 19968: jis0208<<14 | 0x22<<7 | 0x08,
+ 36800 - 19968: jis0212<<14 | 0x40<<7 | 0x16,
+ 36801 - 19968: jis0212<<14 | 0x40<<7 | 0x17,
+ 36802 - 19968: jis0208<<14 | 0x10<<7 | 0x09,
+ 36804 - 19968: jis0208<<14 | 0x2A<<7 | 0x57,
+ 36805 - 19968: jis0208<<14 | 0x1E<<7 | 0x36,
+ 36806 - 19968: jis0212<<14 | 0x40<<7 | 0x18,
+ 36810 - 19968: jis0212<<14 | 0x40<<7 | 0x19,
+ 36811 - 19968: jis0212<<14 | 0x40<<7 | 0x1A,
+ 36813 - 19968: jis0212<<14 | 0x40<<7 | 0x1B,
+ 36814 - 19968: jis0208<<14 | 0x16<<7 | 0x3D,
+ 36816 - 19968: jis0212<<14 | 0x40<<7 | 0x1C,
+ 36817 - 19968: jis0208<<14 | 0x15<<7 | 0x40,
+ 36818 - 19968: jis0212<<14 | 0x40<<7 | 0x1D,
+ 36819 - 19968: jis0212<<14 | 0x40<<7 | 0x1E,
+ 36820 - 19968: jis0208<<14 | 0x29<<7 | 0x35,
+ 36821 - 19968: jis0212<<14 | 0x40<<7 | 0x1F,
+ 36826 - 19968: jis0208<<14 | 0x4C<<7 | 0x48,
+ 36832 - 19968: jis0212<<14 | 0x40<<7 | 0x20,
+ 36834 - 19968: jis0208<<14 | 0x4C<<7 | 0x4A,
+ 36835 - 19968: jis0212<<14 | 0x40<<7 | 0x21,
+ 36836 - 19968: jis0212<<14 | 0x40<<7 | 0x22,
+ 36837 - 19968: jis0208<<14 | 0x4C<<7 | 0x49,
+ 36838 - 19968: jis0208<<14 | 0x11<<7 | 0x3F,
+ 36840 - 19968: jis0212<<14 | 0x40<<7 | 0x23,
+ 36841 - 19968: jis0208<<14 | 0x25<<7 | 0x55,
+ 36842 - 19968: jis0208<<14 | 0x4C<<7 | 0x4B,
+ 36843 - 19968: jis0208<<14 | 0x26<<7 | 0x56,
+ 36845 - 19968: jis0208<<14 | 0x24<<7 | 0x12,
+ 36846 - 19968: jis0212<<14 | 0x40<<7 | 0x24,
+ 36847 - 19968: jis0208<<14 | 0x4C<<7 | 0x4C,
+ 36848 - 19968: jis0208<<14 | 0x1C<<7 | 0x31,
+ 36849 - 19968: jis0212<<14 | 0x40<<7 | 0x25,
+ 36852 - 19968: jis0208<<14 | 0x4C<<7 | 0x4E,
+ 36853 - 19968: jis0212<<14 | 0x40<<7 | 0x26,
+ 36854 - 19968: jis0212<<14 | 0x40<<7 | 0x27,
+ 36855 - 19968: jis0208<<14 | 0x2B<<7 | 0x21,
+ 36856 - 19968: jis0208<<14 | 0x4C<<7 | 0x5D,
+ 36857 - 19968: jis0208<<14 | 0x4C<<7 | 0x50,
+ 36858 - 19968: jis0208<<14 | 0x4C<<7 | 0x51,
+ 36859 - 19968: jis0212<<14 | 0x40<<7 | 0x28,
+ 36861 - 19968: jis0208<<14 | 0x23<<7 | 0x28,
+ 36862 - 19968: jis0212<<14 | 0x40<<7 | 0x29,
+ 36864 - 19968: jis0208<<14 | 0x21<<7 | 0x3F,
+ 36865 - 19968: jis0208<<14 | 0x20<<7 | 0x56,
+ 36866 - 19968: jis0212<<14 | 0x40<<7 | 0x2A,
+ 36867 - 19968: jis0208<<14 | 0x25<<7 | 0x07,
+ 36868 - 19968: jis0212<<14 | 0x40<<7 | 0x2B,
+ 36869 - 19968: jis0208<<14 | 0x4C<<7 | 0x4F,
+ 36870 - 19968: jis0208<<14 | 0x14<<7 | 0x34,
+ 36872 - 19968: jis0212<<14 | 0x40<<7 | 0x2C,
+ 36875 - 19968: jis0208<<14 | 0x4C<<7 | 0x58,
+ 36876 - 19968: jis0212<<14 | 0x40<<7 | 0x2D,
+ 36877 - 19968: jis0208<<14 | 0x4C<<7 | 0x55,
+ 36878 - 19968: jis0208<<14 | 0x4D<<7 | 0x04,
+ 36879 - 19968: jis0208<<14 | 0x25<<7 | 0x08,
+ 36880 - 19968: jis0208<<14 | 0x22<<7 | 0x3F,
+ 36881 - 19968: jis0208<<14 | 0x4C<<7 | 0x52,
+ 36883 - 19968: jis0208<<14 | 0x23<<7 | 0x5D,
+ 36884 - 19968: jis0208<<14 | 0x24<<7 | 0x32,
+ 36885 - 19968: jis0208<<14 | 0x4C<<7 | 0x53,
+ 36886 - 19968: jis0208<<14 | 0x4C<<7 | 0x57,
+ 36887 - 19968: jis0208<<14 | 0x1E<<7 | 0x3F,
+ 36888 - 19968: jis0212<<14 | 0x40<<7 | 0x2E,
+ 36889 - 19968: jis0208<<14 | 0x26<<7 | 0x46,
+ 36890 - 19968: jis0208<<14 | 0x23<<7 | 0x2B,
+ 36891 - 19968: jis0212<<14 | 0x40<<7 | 0x2F,
+ 36893 - 19968: jis0208<<14 | 0x1F<<7 | 0x21,
+ 36894 - 19968: jis0208<<14 | 0x4C<<7 | 0x56,
+ 36895 - 19968: jis0208<<14 | 0x21<<7 | 0x0D,
+ 36896 - 19968: jis0208<<14 | 0x21<<7 | 0x03,
+ 36897 - 19968: jis0208<<14 | 0x4C<<7 | 0x54,
+ 36898 - 19968: jis0208<<14 | 0x0F<<7 | 0x08,
+ 36899 - 19968: jis0208<<14 | 0x2E<<7 | 0x01,
+ 36903 - 19968: jis0208<<14 | 0x4C<<7 | 0x59,
+ 36904 - 19968: jis0212<<14 | 0x40<<7 | 0x30,
+ 36905 - 19968: jis0212<<14 | 0x40<<7 | 0x31,
+ 36906 - 19968: jis0212<<14 | 0x40<<7 | 0x33,
+ 36908 - 19968: jis0212<<14 | 0x40<<7 | 0x34,
+ 36909 - 19968: jis0212<<14 | 0x40<<7 | 0x35,
+ 36910 - 19968: jis0208<<14 | 0x21<<7 | 0x40,
+ 36911 - 19968: jis0212<<14 | 0x40<<7 | 0x32,
+ 36913 - 19968: jis0208<<14 | 0x1C<<7 | 0x14,
+ 36914 - 19968: jis0208<<14 | 0x1E<<7 | 0x29,
+ 36915 - 19968: jis0212<<14 | 0x40<<7 | 0x36,
+ 36916 - 19968: jis0212<<14 | 0x40<<7 | 0x37,
+ 36917 - 19968: jis0208<<14 | 0x4C<<7 | 0x5B,
+ 36918 - 19968: jis0208<<14 | 0x4C<<7 | 0x5A,
+ 36919 - 19968: jis0212<<14 | 0x40<<7 | 0x38,
+ 36920 - 19968: jis0208<<14 | 0x0F<<7 | 0x4E,
+ 36921 - 19968: jis0208<<14 | 0x4C<<7 | 0x5C,
+ 36924 - 19968: jis0208<<14 | 0x28<<7 | 0x0E,
+ 36926 - 19968: jis0208<<14 | 0x4D<<7 | 0x06,
+ 36927 - 19968: jis0212<<14 | 0x40<<7 | 0x39,
+ 36929 - 19968: jis0208<<14 | 0x25<<7 | 0x3A,
+ 36930 - 19968: jis0208<<14 | 0x1E<<7 | 0x4A,
+ 36931 - 19968: jis0212<<14 | 0x40<<7 | 0x3A,
+ 36932 - 19968: jis0212<<14 | 0x40<<7 | 0x3B,
+ 36933 - 19968: jis0208<<14 | 0x22<<7 | 0x38,
+ 36935 - 19968: jis0208<<14 | 0x15<<7 | 0x57,
+ 36937 - 19968: jis0208<<14 | 0x4D<<7 | 0x05,
+ 36938 - 19968: jis0208<<14 | 0x2C<<7 | 0x16,
+ 36939 - 19968: jis0208<<14 | 0x10<<7 | 0x1E,
+ 36940 - 19968: jis0212<<14 | 0x40<<7 | 0x3C,
+ 36941 - 19968: jis0208<<14 | 0x29<<7 | 0x36,
+ 36942 - 19968: jis0208<<14 | 0x11<<7 | 0x40,
+ 36943 - 19968: jis0208<<14 | 0x4D<<7 | 0x00,
+ 36944 - 19968: jis0208<<14 | 0x4D<<7 | 0x01,
+ 36945 - 19968: jis0208<<14 | 0x4D<<7 | 0x02,
+ 36946 - 19968: jis0208<<14 | 0x4D<<7 | 0x03,
+ 36947 - 19968: jis0208<<14 | 0x25<<7 | 0x1A,
+ 36948 - 19968: jis0208<<14 | 0x22<<7 | 0x02,
+ 36949 - 19968: jis0208<<14 | 0x0F<<7 | 0x42,
+ 36950 - 19968: jis0208<<14 | 0x4D<<7 | 0x07,
+ 36952 - 19968: jis0208<<14 | 0x4D<<7 | 0x08,
+ 36953 - 19968: jis0208<<14 | 0x53<<7 | 0x02,
+ 36955 - 19968: jis0212<<14 | 0x40<<7 | 0x3D,
+ 36956 - 19968: jis0208<<14 | 0x21<<7 | 0x1C,
+ 36957 - 19968: jis0212<<14 | 0x40<<7 | 0x3E,
+ 36958 - 19968: jis0208<<14 | 0x4D<<7 | 0x09,
+ 36960 - 19968: jis0208<<14 | 0x10<<7 | 0x52,
+ 36961 - 19968: jis0208<<14 | 0x20<<7 | 0x2B,
+ 36962 - 19968: jis0212<<14 | 0x40<<7 | 0x3F,
+ 36963 - 19968: jis0208<<14 | 0x17<<7 | 0x0E,
+ 36965 - 19968: jis0208<<14 | 0x2C<<7 | 0x39,
+ 36966 - 19968: jis0212<<14 | 0x40<<7 | 0x40,
+ 36967 - 19968: jis0208<<14 | 0x5A<<7 | 0x58,
+ 36968 - 19968: jis0208<<14 | 0x4D<<7 | 0x0A,
+ 36969 - 19968: jis0208<<14 | 0x24<<7 | 0x0B,
+ 36972 - 19968: jis0212<<14 | 0x40<<7 | 0x42,
+ 36973 - 19968: jis0208<<14 | 0x20<<7 | 0x57,
+ 36974 - 19968: jis0208<<14 | 0x1B<<7 | 0x36,
+ 36975 - 19968: jis0208<<14 | 0x4D<<7 | 0x0B,
+ 36976 - 19968: jis0212<<14 | 0x40<<7 | 0x43,
+ 36978 - 19968: jis0208<<14 | 0x4D<<7 | 0x0E,
+ 36980 - 19968: jis0212<<14 | 0x40<<7 | 0x44,
+ 36981 - 19968: jis0208<<14 | 0x1C<<7 | 0x44,
+ 36982 - 19968: jis0208<<14 | 0x4D<<7 | 0x0C,
+ 36983 - 19968: jis0208<<14 | 0x20<<7 | 0x0A,
+ 36984 - 19968: jis0208<<14 | 0x20<<7 | 0x09,
+ 36985 - 19968: jis0212<<14 | 0x40<<7 | 0x45,
+ 36986 - 19968: jis0208<<14 | 0x0F<<7 | 0x43,
+ 36988 - 19968: jis0208<<14 | 0x2D<<7 | 0x2A,
+ 36989 - 19968: jis0208<<14 | 0x4D<<7 | 0x10,
+ 36991 - 19968: jis0208<<14 | 0x27<<7 | 0x51,
+ 36992 - 19968: jis0208<<14 | 0x4D<<7 | 0x12,
+ 36993 - 19968: jis0208<<14 | 0x4D<<7 | 0x11,
+ 36994 - 19968: jis0208<<14 | 0x4D<<7 | 0x0F,
+ 36995 - 19968: jis0208<<14 | 0x42<<7 | 0x43,
+ 36996 - 19968: jis0208<<14 | 0x13<<7 | 0x33,
+ 36997 - 19968: jis0212<<14 | 0x40<<7 | 0x46,
+ 36999 - 19968: jis0208<<14 | 0x4C<<7 | 0x4D,
+ 37000 - 19968: jis0212<<14 | 0x40<<7 | 0x47,
+ 37001 - 19968: jis0208<<14 | 0x4D<<7 | 0x14,
+ 37002 - 19968: jis0208<<14 | 0x4D<<7 | 0x13,
+ 37003 - 19968: jis0212<<14 | 0x40<<7 | 0x48,
+ 37004 - 19968: jis0212<<14 | 0x40<<7 | 0x49,
+ 37006 - 19968: jis0212<<14 | 0x40<<7 | 0x4A,
+ 37007 - 19968: jis0208<<14 | 0x4D<<7 | 0x15,
+ 37008 - 19968: jis0212<<14 | 0x40<<7 | 0x4B,
+ 37009 - 19968: jis0208<<14 | 0x2C<<7 | 0x17,
+ 37013 - 19968: jis0212<<14 | 0x40<<7 | 0x4C,
+ 37015 - 19968: jis0212<<14 | 0x40<<7 | 0x4D,
+ 37016 - 19968: jis0212<<14 | 0x40<<7 | 0x4E,
+ 37017 - 19968: jis0212<<14 | 0x40<<7 | 0x4F,
+ 37019 - 19968: jis0212<<14 | 0x40<<7 | 0x50,
+ 37024 - 19968: jis0212<<14 | 0x40<<7 | 0x51,
+ 37025 - 19968: jis0212<<14 | 0x40<<7 | 0x52,
+ 37026 - 19968: jis0212<<14 | 0x40<<7 | 0x53,
+ 37027 - 19968: jis0208<<14 | 0x25<<7 | 0x40,
+ 37029 - 19968: jis0212<<14 | 0x40<<7 | 0x54,
+ 37030 - 19968: jis0208<<14 | 0x2A<<7 | 0x0D,
+ 37032 - 19968: jis0208<<14 | 0x4D<<7 | 0x16,
+ 37034 - 19968: jis0208<<14 | 0x1B<<7 | 0x38,
+ 37039 - 19968: jis0208<<14 | 0x4D<<7 | 0x17,
+ 37040 - 19968: jis0212<<14 | 0x40<<7 | 0x55,
+ 37041 - 19968: jis0208<<14 | 0x4D<<7 | 0x18,
+ 37042 - 19968: jis0212<<14 | 0x40<<7 | 0x56,
+ 37043 - 19968: jis0212<<14 | 0x40<<7 | 0x57,
+ 37044 - 19968: jis0212<<14 | 0x40<<7 | 0x58,
+ 37045 - 19968: jis0208<<14 | 0x4D<<7 | 0x19,
+ 37046 - 19968: jis0212<<14 | 0x40<<7 | 0x59,
+ 37048 - 19968: jis0208<<14 | 0x24<<7 | 0x00,
+ 37053 - 19968: jis0212<<14 | 0x40<<7 | 0x5A,
+ 37054 - 19968: jis0212<<14 | 0x40<<7 | 0x5C,
+ 37057 - 19968: jis0208<<14 | 0x0F<<7 | 0x49,
+ 37059 - 19968: jis0212<<14 | 0x40<<7 | 0x5D,
+ 37060 - 19968: jis0212<<14 | 0x41<<7 | 0x00,
+ 37061 - 19968: jis0212<<14 | 0x41<<7 | 0x01,
+ 37063 - 19968: jis0212<<14 | 0x41<<7 | 0x02,
+ 37064 - 19968: jis0212<<14 | 0x41<<7 | 0x03,
+ 37066 - 19968: jis0208<<14 | 0x18<<7 | 0x38,
+ 37068 - 19968: jis0212<<14 | 0x40<<7 | 0x5B,
+ 37070 - 19968: jis0208<<14 | 0x2E<<7 | 0x19,
+ 37074 - 19968: jis0212<<14 | 0x41<<7 | 0x0C,
+ 37077 - 19968: jis0212<<14 | 0x41<<7 | 0x04,
+ 37079 - 19968: jis0212<<14 | 0x41<<7 | 0x05,
+ 37080 - 19968: jis0212<<14 | 0x41<<7 | 0x06,
+ 37081 - 19968: jis0212<<14 | 0x41<<7 | 0x07,
+ 37083 - 19968: jis0208<<14 | 0x4D<<7 | 0x1D,
+ 37084 - 19968: jis0212<<14 | 0x41<<7 | 0x08,
+ 37085 - 19968: jis0212<<14 | 0x41<<7 | 0x09,
+ 37086 - 19968: jis0208<<14 | 0x5A<<7 | 0x59,
+ 37087 - 19968: jis0212<<14 | 0x41<<7 | 0x0A,
+ 37089 - 19968: jis0208<<14 | 0x16<<7 | 0x13,
+ 37090 - 19968: jis0208<<14 | 0x4D<<7 | 0x1A,
+ 37092 - 19968: jis0208<<14 | 0x4D<<7 | 0x1B,
+ 37093 - 19968: jis0212<<14 | 0x41<<7 | 0x0B,
+ 37096 - 19968: jis0208<<14 | 0x28<<7 | 0x53,
+ 37099 - 19968: jis0212<<14 | 0x41<<7 | 0x0E,
+ 37101 - 19968: jis0208<<14 | 0x12<<7 | 0x33,
+ 37103 - 19968: jis0212<<14 | 0x41<<7 | 0x0F,
+ 37104 - 19968: jis0212<<14 | 0x41<<7 | 0x10,
+ 37108 - 19968: jis0212<<14 | 0x41<<7 | 0x11,
+ 37109 - 19968: jis0208<<14 | 0x2C<<7 | 0x18,
+ 37110 - 19968: jis0212<<14 | 0x41<<7 | 0x0D,
+ 37111 - 19968: jis0208<<14 | 0x15<<7 | 0x1E,
+ 37117 - 19968: jis0208<<14 | 0x24<<7 | 0x33,
+ 37118 - 19968: jis0212<<14 | 0x41<<7 | 0x12,
+ 37119 - 19968: jis0212<<14 | 0x41<<7 | 0x13,
+ 37120 - 19968: jis0212<<14 | 0x41<<7 | 0x14,
+ 37122 - 19968: jis0208<<14 | 0x4D<<7 | 0x1E,
+ 37124 - 19968: jis0212<<14 | 0x41<<7 | 0x15,
+ 37125 - 19968: jis0212<<14 | 0x41<<7 | 0x16,
+ 37126 - 19968: jis0212<<14 | 0x41<<7 | 0x17,
+ 37128 - 19968: jis0212<<14 | 0x41<<7 | 0x18,
+ 37133 - 19968: jis0212<<14 | 0x41<<7 | 0x19,
+ 37136 - 19968: jis0212<<14 | 0x41<<7 | 0x1A,
+ 37138 - 19968: jis0208<<14 | 0x4D<<7 | 0x1F,
+ 37140 - 19968: jis0212<<14 | 0x41<<7 | 0x1B,
+ 37141 - 19968: jis0208<<14 | 0x5A<<7 | 0x5B,
+ 37142 - 19968: jis0212<<14 | 0x41<<7 | 0x1C,
+ 37143 - 19968: jis0212<<14 | 0x41<<7 | 0x1D,
+ 37144 - 19968: jis0212<<14 | 0x41<<7 | 0x1E,
+ 37145 - 19968: jis0208<<14 | 0x4D<<7 | 0x20,
+ 37146 - 19968: jis0212<<14 | 0x41<<7 | 0x1F,
+ 37148 - 19968: jis0212<<14 | 0x41<<7 | 0x20,
+ 37150 - 19968: jis0212<<14 | 0x41<<7 | 0x21,
+ 37152 - 19968: jis0212<<14 | 0x41<<7 | 0x22,
+ 37154 - 19968: jis0212<<14 | 0x41<<7 | 0x24,
+ 37155 - 19968: jis0212<<14 | 0x41<<7 | 0x25,
+ 37157 - 19968: jis0212<<14 | 0x41<<7 | 0x23,
+ 37159 - 19968: jis0208<<14 | 0x5A<<7 | 0x5C,
+ 37161 - 19968: jis0212<<14 | 0x41<<7 | 0x27,
+ 37165 - 19968: jis0208<<14 | 0x24<<7 | 0x01,
+ 37166 - 19968: jis0212<<14 | 0x41<<7 | 0x28,
+ 37167 - 19968: jis0212<<14 | 0x41<<7 | 0x29,
+ 37168 - 19968: jis0208<<14 | 0x4D<<7 | 0x22,
+ 37169 - 19968: jis0212<<14 | 0x41<<7 | 0x2A,
+ 37170 - 19968: jis0208<<14 | 0x4D<<7 | 0x21,
+ 37172 - 19968: jis0212<<14 | 0x41<<7 | 0x2B,
+ 37174 - 19968: jis0212<<14 | 0x41<<7 | 0x2C,
+ 37175 - 19968: jis0212<<14 | 0x41<<7 | 0x2D,
+ 37177 - 19968: jis0212<<14 | 0x41<<7 | 0x2E,
+ 37178 - 19968: jis0212<<14 | 0x41<<7 | 0x2F,
+ 37180 - 19968: jis0212<<14 | 0x41<<7 | 0x30,
+ 37181 - 19968: jis0212<<14 | 0x41<<7 | 0x31,
+ 37187 - 19968: jis0212<<14 | 0x41<<7 | 0x32,
+ 37191 - 19968: jis0212<<14 | 0x41<<7 | 0x33,
+ 37192 - 19968: jis0212<<14 | 0x41<<7 | 0x34,
+ 37193 - 19968: jis0208<<14 | 0x25<<7 | 0x32,
+ 37194 - 19968: jis0208<<14 | 0x4D<<7 | 0x23,
+ 37195 - 19968: jis0208<<14 | 0x1C<<7 | 0x15,
+ 37196 - 19968: jis0208<<14 | 0x1B<<7 | 0x3F,
+ 37197 - 19968: jis0208<<14 | 0x26<<7 | 0x3A,
+ 37198 - 19968: jis0208<<14 | 0x22<<7 | 0x50,
+ 37199 - 19968: jis0212<<14 | 0x41<<7 | 0x35,
+ 37202 - 19968: jis0208<<14 | 0x1B<<7 | 0x51,
+ 37203 - 19968: jis0212<<14 | 0x41<<7 | 0x36,
+ 37204 - 19968: jis0208<<14 | 0x1E<<7 | 0x4B,
+ 37206 - 19968: jis0208<<14 | 0x4D<<7 | 0x24,
+ 37207 - 19968: jis0212<<14 | 0x41<<7 | 0x37,
+ 37208 - 19968: jis0208<<14 | 0x4D<<7 | 0x25,
+ 37209 - 19968: jis0212<<14 | 0x41<<7 | 0x38,
+ 37210 - 19968: jis0212<<14 | 0x41<<7 | 0x39,
+ 37211 - 19968: jis0212<<14 | 0x41<<7 | 0x3A,
+ 37217 - 19968: jis0212<<14 | 0x41<<7 | 0x3B,
+ 37218 - 19968: jis0208<<14 | 0x1E<<7 | 0x3C,
+ 37219 - 19968: jis0208<<14 | 0x4D<<7 | 0x26,
+ 37220 - 19968: jis0212<<14 | 0x41<<7 | 0x3C,
+ 37221 - 19968: jis0208<<14 | 0x4D<<7 | 0x27,
+ 37223 - 19968: jis0212<<14 | 0x41<<7 | 0x3D,
+ 37225 - 19968: jis0208<<14 | 0x4D<<7 | 0x28,
+ 37226 - 19968: jis0208<<14 | 0x2C<<7 | 0x4E,
+ 37228 - 19968: jis0208<<14 | 0x1C<<7 | 0x16,
+ 37229 - 19968: jis0212<<14 | 0x41<<7 | 0x3E,
+ 37234 - 19968: jis0208<<14 | 0x4D<<7 | 0x2A,
+ 37235 - 19968: jis0208<<14 | 0x4D<<7 | 0x29,
+ 37236 - 19968: jis0212<<14 | 0x41<<7 | 0x3F,
+ 37237 - 19968: jis0208<<14 | 0x18<<7 | 0x39,
+ 37239 - 19968: jis0208<<14 | 0x18<<7 | 0x52,
+ 37240 - 19968: jis0208<<14 | 0x1A<<7 | 0x1F,
+ 37241 - 19968: jis0212<<14 | 0x41<<7 | 0x40,
+ 37242 - 19968: jis0212<<14 | 0x41<<7 | 0x41,
+ 37243 - 19968: jis0212<<14 | 0x41<<7 | 0x42,
+ 37249 - 19968: jis0212<<14 | 0x41<<7 | 0x43,
+ 37250 - 19968: jis0208<<14 | 0x4D<<7 | 0x2D,
+ 37251 - 19968: jis0212<<14 | 0x41<<7 | 0x44,
+ 37253 - 19968: jis0212<<14 | 0x41<<7 | 0x45,
+ 37254 - 19968: jis0212<<14 | 0x41<<7 | 0x46,
+ 37255 - 19968: jis0208<<14 | 0x1C<<7 | 0x45,
+ 37257 - 19968: jis0208<<14 | 0x4D<<7 | 0x2C,
+ 37258 - 19968: jis0212<<14 | 0x41<<7 | 0x47,
+ 37259 - 19968: jis0208<<14 | 0x4D<<7 | 0x2B,
+ 37261 - 19968: jis0208<<14 | 0x21<<7 | 0x48,
+ 37262 - 19968: jis0212<<14 | 0x41<<7 | 0x48,
+ 37264 - 19968: jis0208<<14 | 0x17<<7 | 0x4E,
+ 37265 - 19968: jis0212<<14 | 0x41<<7 | 0x49,
+ 37266 - 19968: jis0208<<14 | 0x1F<<7 | 0x22,
+ 37267 - 19968: jis0212<<14 | 0x41<<7 | 0x4A,
+ 37268 - 19968: jis0212<<14 | 0x41<<7 | 0x4B,
+ 37269 - 19968: jis0212<<14 | 0x41<<7 | 0x4C,
+ 37271 - 19968: jis0208<<14 | 0x27<<7 | 0x0F,
+ 37272 - 19968: jis0212<<14 | 0x41<<7 | 0x4D,
+ 37276 - 19968: jis0208<<14 | 0x1C<<7 | 0x18,
+ 37278 - 19968: jis0212<<14 | 0x41<<7 | 0x4E,
+ 37281 - 19968: jis0212<<14 | 0x41<<7 | 0x4F,
+ 37282 - 19968: jis0208<<14 | 0x4D<<7 | 0x2E,
+ 37284 - 19968: jis0208<<14 | 0x1D<<7 | 0x3E,
+ 37286 - 19968: jis0212<<14 | 0x41<<7 | 0x50,
+ 37288 - 19968: jis0212<<14 | 0x41<<7 | 0x51,
+ 37290 - 19968: jis0208<<14 | 0x4D<<7 | 0x31,
+ 37291 - 19968: jis0208<<14 | 0x4D<<7 | 0x2F,
+ 37292 - 19968: jis0212<<14 | 0x41<<7 | 0x52,
+ 37293 - 19968: jis0212<<14 | 0x41<<7 | 0x53,
+ 37294 - 19968: jis0212<<14 | 0x41<<7 | 0x54,
+ 37295 - 19968: jis0208<<14 | 0x4D<<7 | 0x30,
+ 37296 - 19968: jis0212<<14 | 0x41<<7 | 0x55,
+ 37297 - 19968: jis0212<<14 | 0x41<<7 | 0x56,
+ 37298 - 19968: jis0212<<14 | 0x41<<7 | 0x57,
+ 37299 - 19968: jis0212<<14 | 0x41<<7 | 0x58,
+ 37300 - 19968: jis0208<<14 | 0x4D<<7 | 0x33,
+ 37301 - 19968: jis0208<<14 | 0x4D<<7 | 0x32,
+ 37302 - 19968: jis0212<<14 | 0x41<<7 | 0x59,
+ 37304 - 19968: jis0208<<14 | 0x1D<<7 | 0x59,
+ 37306 - 19968: jis0208<<14 | 0x4D<<7 | 0x34,
+ 37307 - 19968: jis0212<<14 | 0x41<<7 | 0x5A,
+ 37308 - 19968: jis0212<<14 | 0x41<<7 | 0x5B,
+ 37309 - 19968: jis0212<<14 | 0x41<<7 | 0x5C,
+ 37311 - 19968: jis0212<<14 | 0x41<<7 | 0x5D,
+ 37312 - 19968: jis0208<<14 | 0x4D<<7 | 0x35,
+ 37313 - 19968: jis0208<<14 | 0x4D<<7 | 0x36,
+ 37314 - 19968: jis0212<<14 | 0x42<<7 | 0x00,
+ 37315 - 19968: jis0212<<14 | 0x42<<7 | 0x01,
+ 37317 - 19968: jis0212<<14 | 0x42<<7 | 0x02,
+ 37318 - 19968: jis0208<<14 | 0x27<<7 | 0x2F,
+ 37319 - 19968: jis0208<<14 | 0x19<<7 | 0x32,
+ 37320 - 19968: jis0208<<14 | 0x1B<<7 | 0x40,
+ 37321 - 19968: jis0208<<14 | 0x4D<<7 | 0x37,
+ 37323 - 19968: jis0208<<14 | 0x4D<<7 | 0x38,
+ 37324 - 19968: jis0208<<14 | 0x2D<<7 | 0x03,
+ 37325 - 19968: jis0208<<14 | 0x1C<<7 | 0x24,
+ 37326 - 19968: jis0208<<14 | 0x2B<<7 | 0x4D,
+ 37327 - 19968: jis0208<<14 | 0x2D<<7 | 0x2B,
+ 37328 - 19968: jis0208<<14 | 0x4D<<7 | 0x39,
+ 37329 - 19968: jis0208<<14 | 0x15<<7 | 0x41,
+ 37331 - 19968: jis0212<<14 | 0x42<<7 | 0x03,
+ 37332 - 19968: jis0212<<14 | 0x42<<7 | 0x04,
+ 37334 - 19968: jis0208<<14 | 0x4D<<7 | 0x3A,
+ 37335 - 19968: jis0208<<14 | 0x5B<<7 | 0x00,
+ 37336 - 19968: jis0208<<14 | 0x24<<7 | 0x02,
+ 37337 - 19968: jis0212<<14 | 0x42<<7 | 0x06,
+ 37338 - 19968: jis0208<<14 | 0x5A<<7 | 0x5D,
+ 37339 - 19968: jis0208<<14 | 0x4D<<7 | 0x3D,
+ 37340 - 19968: jis0208<<14 | 0x12<<7 | 0x57,
+ 37341 - 19968: jis0208<<14 | 0x1E<<7 | 0x2A,
+ 37342 - 19968: jis0208<<14 | 0x5B<<7 | 0x01,
+ 37343 - 19968: jis0208<<14 | 0x4D<<7 | 0x3B,
+ 37345 - 19968: jis0208<<14 | 0x4D<<7 | 0x3C,
+ 37347 - 19968: jis0208<<14 | 0x23<<7 | 0x3F,
+ 37348 - 19968: jis0208<<14 | 0x5B<<7 | 0x04,
+ 37349 - 19968: jis0208<<14 | 0x5B<<7 | 0x05,
+ 37350 - 19968: jis0208<<14 | 0x2A<<7 | 0x34,
+ 37351 - 19968: jis0208<<14 | 0x15<<7 | 0x5B,
+ 37353 - 19968: jis0212<<14 | 0x42<<7 | 0x0B,
+ 37354 - 19968: jis0212<<14 | 0x42<<7 | 0x0C,
+ 37356 - 19968: jis0212<<14 | 0x42<<7 | 0x0D,
+ 37357 - 19968: jis0208<<14 | 0x5B<<7 | 0x02,
+ 37358 - 19968: jis0208<<14 | 0x5B<<7 | 0x03,
+ 37359 - 19968: jis0212<<14 | 0x42<<7 | 0x10,
+ 37360 - 19968: jis0212<<14 | 0x42<<7 | 0x11,
+ 37361 - 19968: jis0212<<14 | 0x42<<7 | 0x12,
+ 37365 - 19968: jis0208<<14 | 0x4D<<7 | 0x3F,
+ 37366 - 19968: jis0208<<14 | 0x4D<<7 | 0x40,
+ 37367 - 19968: jis0212<<14 | 0x42<<7 | 0x13,
+ 37369 - 19968: jis0212<<14 | 0x42<<7 | 0x14,
+ 37371 - 19968: jis0212<<14 | 0x42<<7 | 0x15,
+ 37372 - 19968: jis0208<<14 | 0x4D<<7 | 0x3E,
+ 37373 - 19968: jis0212<<14 | 0x42<<7 | 0x16,
+ 37375 - 19968: jis0208<<14 | 0x4D<<7 | 0x42,
+ 37376 - 19968: jis0212<<14 | 0x42<<7 | 0x17,
+ 37377 - 19968: jis0212<<14 | 0x42<<7 | 0x18,
+ 37380 - 19968: jis0212<<14 | 0x42<<7 | 0x19,
+ 37381 - 19968: jis0212<<14 | 0x42<<7 | 0x1A,
+ 37382 - 19968: jis0208<<14 | 0x5B<<7 | 0x06,
+ 37383 - 19968: jis0212<<14 | 0x42<<7 | 0x1C,
+ 37385 - 19968: jis0212<<14 | 0x42<<7 | 0x1D,
+ 37386 - 19968: jis0208<<14 | 0x5B<<7 | 0x08,
+ 37388 - 19968: jis0212<<14 | 0x42<<7 | 0x1F,
+ 37389 - 19968: jis0208<<14 | 0x25<<7 | 0x3E,
+ 37390 - 19968: jis0208<<14 | 0x12<<7 | 0x22,
+ 37392 - 19968: jis0208<<14 | 0x5B<<7 | 0x07,
+ 37393 - 19968: jis0208<<14 | 0x4D<<7 | 0x46,
+ 37394 - 19968: jis0212<<14 | 0x42<<7 | 0x21,
+ 37395 - 19968: jis0212<<14 | 0x42<<7 | 0x22,
+ 37396 - 19968: jis0208<<14 | 0x4D<<7 | 0x43,
+ 37397 - 19968: jis0208<<14 | 0x4D<<7 | 0x45,
+ 37398 - 19968: jis0212<<14 | 0x42<<7 | 0x23,
+ 37400 - 19968: jis0212<<14 | 0x42<<7 | 0x24,
+ 37404 - 19968: jis0212<<14 | 0x42<<7 | 0x25,
+ 37405 - 19968: jis0212<<14 | 0x42<<7 | 0x26,
+ 37406 - 19968: jis0208<<14 | 0x4D<<7 | 0x41,
+ 37411 - 19968: jis0212<<14 | 0x42<<7 | 0x27,
+ 37412 - 19968: jis0212<<14 | 0x42<<7 | 0x28,
+ 37413 - 19968: jis0212<<14 | 0x42<<7 | 0x29,
+ 37414 - 19968: jis0212<<14 | 0x42<<7 | 0x2A,
+ 37416 - 19968: jis0212<<14 | 0x42<<7 | 0x2B,
+ 37417 - 19968: jis0208<<14 | 0x4E<<7 | 0x2E,
+ 37420 - 19968: jis0208<<14 | 0x4D<<7 | 0x44,
+ 37422 - 19968: jis0212<<14 | 0x42<<7 | 0x2C,
+ 37423 - 19968: jis0212<<14 | 0x42<<7 | 0x2D,
+ 37424 - 19968: jis0212<<14 | 0x42<<7 | 0x2E,
+ 37427 - 19968: jis0212<<14 | 0x42<<7 | 0x2F,
+ 37428 - 19968: jis0208<<14 | 0x2D<<7 | 0x4A,
+ 37429 - 19968: jis0212<<14 | 0x42<<7 | 0x30,
+ 37430 - 19968: jis0212<<14 | 0x42<<7 | 0x31,
+ 37431 - 19968: jis0208<<14 | 0x17<<7 | 0x39,
+ 37432 - 19968: jis0212<<14 | 0x42<<7 | 0x32,
+ 37433 - 19968: jis0208<<14 | 0x5B<<7 | 0x0F,
+ 37434 - 19968: jis0208<<14 | 0x5B<<7 | 0x09,
+ 37436 - 19968: jis0208<<14 | 0x5B<<7 | 0x0B,
+ 37438 - 19968: jis0212<<14 | 0x42<<7 | 0x36,
+ 37439 - 19968: jis0208<<14 | 0x4D<<7 | 0x4E,
+ 37440 - 19968: jis0208<<14 | 0x5B<<7 | 0x0A,
+ 37442 - 19968: jis0212<<14 | 0x42<<7 | 0x38,
+ 37443 - 19968: jis0212<<14 | 0x42<<7 | 0x39,
+ 37444 - 19968: jis0208<<14 | 0x24<<7 | 0x13,
+ 37445 - 19968: jis0208<<14 | 0x4D<<7 | 0x49,
+ 37446 - 19968: jis0212<<14 | 0x42<<7 | 0x3A,
+ 37447 - 19968: jis0212<<14 | 0x42<<7 | 0x3B,
+ 37448 - 19968: jis0208<<14 | 0x4D<<7 | 0x4C,
+ 37449 - 19968: jis0208<<14 | 0x4D<<7 | 0x4A,
+ 37450 - 19968: jis0212<<14 | 0x42<<7 | 0x3C,
+ 37451 - 19968: jis0208<<14 | 0x4D<<7 | 0x4F,
+ 37453 - 19968: jis0212<<14 | 0x42<<7 | 0x3D,
+ 37454 - 19968: jis0208<<14 | 0x5B<<7 | 0x0C,
+ 37455 - 19968: jis0212<<14 | 0x42<<7 | 0x3F,
+ 37456 - 19968: jis0208<<14 | 0x4D<<7 | 0x50,
+ 37457 - 19968: jis0208<<14 | 0x5B<<7 | 0x0E,
+ 37463 - 19968: jis0208<<14 | 0x4D<<7 | 0x48,
+ 37464 - 19968: jis0212<<14 | 0x42<<7 | 0x41,
+ 37465 - 19968: jis0208<<14 | 0x5B<<7 | 0x0D,
+ 37466 - 19968: jis0208<<14 | 0x4D<<7 | 0x55,
+ 37467 - 19968: jis0208<<14 | 0x10<<7 | 0x53,
+ 37468 - 19968: jis0212<<14 | 0x42<<7 | 0x43,
+ 37469 - 19968: jis0212<<14 | 0x42<<7 | 0x44,
+ 37470 - 19968: jis0208<<14 | 0x4D<<7 | 0x47,
+ 37472 - 19968: jis0212<<14 | 0x42<<7 | 0x45,
+ 37473 - 19968: jis0212<<14 | 0x42<<7 | 0x46,
+ 37474 - 19968: jis0208<<14 | 0x27<<7 | 0x0C,
+ 37476 - 19968: jis0208<<14 | 0x4D<<7 | 0x4B,
+ 37477 - 19968: jis0212<<14 | 0x42<<7 | 0x47,
+ 37478 - 19968: jis0208<<14 | 0x1D<<7 | 0x3F,
+ 37479 - 19968: jis0208<<14 | 0x5B<<7 | 0x10,
+ 37480 - 19968: jis0212<<14 | 0x42<<7 | 0x49,
+ 37481 - 19968: jis0212<<14 | 0x42<<7 | 0x4A,
+ 37486 - 19968: jis0212<<14 | 0x42<<7 | 0x4B,
+ 37487 - 19968: jis0212<<14 | 0x42<<7 | 0x4C,
+ 37488 - 19968: jis0212<<14 | 0x42<<7 | 0x4D,
+ 37489 - 19968: jis0208<<14 | 0x18<<7 | 0x3A,
+ 37493 - 19968: jis0212<<14 | 0x42<<7 | 0x4E,
+ 37494 - 19968: jis0212<<14 | 0x42<<7 | 0x4F,
+ 37495 - 19968: jis0208<<14 | 0x5B<<7 | 0x12,
+ 37496 - 19968: jis0208<<14 | 0x5B<<7 | 0x13,
+ 37497 - 19968: jis0212<<14 | 0x42<<7 | 0x52,
+ 37499 - 19968: jis0212<<14 | 0x42<<7 | 0x53,
+ 37500 - 19968: jis0212<<14 | 0x42<<7 | 0x54,
+ 37501 - 19968: jis0212<<14 | 0x42<<7 | 0x55,
+ 37502 - 19968: jis0208<<14 | 0x2A<<7 | 0x27,
+ 37503 - 19968: jis0212<<14 | 0x42<<7 | 0x56,
+ 37504 - 19968: jis0208<<14 | 0x15<<7 | 0x43,
+ 37507 - 19968: jis0208<<14 | 0x1C<<7 | 0x25,
+ 37509 - 19968: jis0208<<14 | 0x25<<7 | 0x1B,
+ 37512 - 19968: jis0208<<14 | 0x58<<7 | 0x03,
+ 37513 - 19968: jis0212<<14 | 0x42<<7 | 0x58,
+ 37514 - 19968: jis0212<<14 | 0x42<<7 | 0x59,
+ 37517 - 19968: jis0212<<14 | 0x42<<7 | 0x5A,
+ 37518 - 19968: jis0212<<14 | 0x42<<7 | 0x5B,
+ 37521 - 19968: jis0208<<14 | 0x20<<7 | 0x0C,
+ 37522 - 19968: jis0212<<14 | 0x42<<7 | 0x5C,
+ 37523 - 19968: jis0208<<14 | 0x4D<<7 | 0x53,
+ 37525 - 19968: jis0208<<14 | 0x4D<<7 | 0x4D,
+ 37526 - 19968: jis0208<<14 | 0x4D<<7 | 0x52,
+ 37527 - 19968: jis0212<<14 | 0x42<<7 | 0x5D,
+ 37528 - 19968: jis0208<<14 | 0x2B<<7 | 0x22,
+ 37529 - 19968: jis0212<<14 | 0x43<<7 | 0x00,
+ 37530 - 19968: jis0208<<14 | 0x23<<7 | 0x17,
+ 37531 - 19968: jis0208<<14 | 0x4D<<7 | 0x54,
+ 37532 - 19968: jis0208<<14 | 0x4D<<7 | 0x51,
+ 37535 - 19968: jis0212<<14 | 0x43<<7 | 0x01,
+ 37536 - 19968: jis0212<<14 | 0x43<<7 | 0x02,
+ 37540 - 19968: jis0212<<14 | 0x43<<7 | 0x03,
+ 37541 - 19968: jis0212<<14 | 0x43<<7 | 0x04,
+ 37543 - 19968: jis0208<<14 | 0x5B<<7 | 0x11,
+ 37544 - 19968: jis0212<<14 | 0x43<<7 | 0x06,
+ 37547 - 19968: jis0212<<14 | 0x43<<7 | 0x07,
+ 37549 - 19968: jis0208<<14 | 0x20<<7 | 0x0B,
+ 37551 - 19968: jis0212<<14 | 0x43<<7 | 0x08,
+ 37554 - 19968: jis0212<<14 | 0x43<<7 | 0x09,
+ 37558 - 19968: jis0212<<14 | 0x43<<7 | 0x0A,
+ 37559 - 19968: jis0208<<14 | 0x4D<<7 | 0x58,
+ 37560 - 19968: jis0212<<14 | 0x43<<7 | 0x0B,
+ 37561 - 19968: jis0208<<14 | 0x4D<<7 | 0x57,
+ 37562 - 19968: jis0212<<14 | 0x43<<7 | 0x0C,
+ 37563 - 19968: jis0212<<14 | 0x43<<7 | 0x0D,
+ 37564 - 19968: jis0212<<14 | 0x43<<7 | 0x0E,
+ 37565 - 19968: jis0212<<14 | 0x43<<7 | 0x0F,
+ 37567 - 19968: jis0212<<14 | 0x43<<7 | 0x10,
+ 37568 - 19968: jis0212<<14 | 0x43<<7 | 0x11,
+ 37569 - 19968: jis0212<<14 | 0x43<<7 | 0x12,
+ 37570 - 19968: jis0212<<14 | 0x43<<7 | 0x13,
+ 37571 - 19968: jis0212<<14 | 0x43<<7 | 0x14,
+ 37573 - 19968: jis0212<<14 | 0x43<<7 | 0x15,
+ 37574 - 19968: jis0212<<14 | 0x43<<7 | 0x16,
+ 37575 - 19968: jis0212<<14 | 0x43<<7 | 0x17,
+ 37576 - 19968: jis0212<<14 | 0x43<<7 | 0x18,
+ 37579 - 19968: jis0212<<14 | 0x43<<7 | 0x19,
+ 37580 - 19968: jis0212<<14 | 0x43<<7 | 0x1A,
+ 37581 - 19968: jis0212<<14 | 0x43<<7 | 0x1B,
+ 37582 - 19968: jis0212<<14 | 0x43<<7 | 0x1C,
+ 37583 - 19968: jis0208<<14 | 0x4D<<7 | 0x56,
+ 37584 - 19968: jis0208<<14 | 0x5B<<7 | 0x17,
+ 37586 - 19968: jis0208<<14 | 0x2A<<7 | 0x0E,
+ 37587 - 19968: jis0208<<14 | 0x5B<<7 | 0x1B,
+ 37589 - 19968: jis0208<<14 | 0x5B<<7 | 0x19,
+ 37591 - 19968: jis0208<<14 | 0x5B<<7 | 0x15,
+ 37592 - 19968: jis0212<<14 | 0x43<<7 | 0x21,
+ 37593 - 19968: jis0208<<14 | 0x5B<<7 | 0x16,
+ 37596 - 19968: jis0212<<14 | 0x43<<7 | 0x23,
+ 37597 - 19968: jis0212<<14 | 0x43<<7 | 0x24,
+ 37599 - 19968: jis0212<<14 | 0x43<<7 | 0x25,
+ 37600 - 19968: jis0208<<14 | 0x5B<<7 | 0x1A,
+ 37601 - 19968: jis0212<<14 | 0x43<<7 | 0x27,
+ 37603 - 19968: jis0212<<14 | 0x43<<7 | 0x28,
+ 37604 - 19968: jis0208<<14 | 0x1C<<7 | 0x5A,
+ 37605 - 19968: jis0212<<14 | 0x43<<7 | 0x29,
+ 37607 - 19968: jis0208<<14 | 0x5B<<7 | 0x14,
+ 37608 - 19968: jis0212<<14 | 0x43<<7 | 0x2B,
+ 37609 - 19968: jis0208<<14 | 0x4D<<7 | 0x59,
+ 37610 - 19968: jis0208<<14 | 0x29<<7 | 0x3E,
+ 37612 - 19968: jis0212<<14 | 0x43<<7 | 0x2C,
+ 37613 - 19968: jis0208<<14 | 0x10<<7 | 0x33,
+ 37614 - 19968: jis0212<<14 | 0x43<<7 | 0x2D,
+ 37616 - 19968: jis0212<<14 | 0x43<<7 | 0x2E,
+ 37618 - 19968: jis0208<<14 | 0x28<<7 | 0x25,
+ 37619 - 19968: jis0208<<14 | 0x22<<7 | 0x51,
+ 37624 - 19968: jis0208<<14 | 0x14<<7 | 0x57,
+ 37625 - 19968: jis0208<<14 | 0x58<<7 | 0x09,
+ 37626 - 19968: jis0208<<14 | 0x4D<<7 | 0x5B,
+ 37627 - 19968: jis0208<<14 | 0x5B<<7 | 0x1E,
+ 37628 - 19968: jis0208<<14 | 0x18<<7 | 0x3C,
+ 37631 - 19968: jis0208<<14 | 0x5B<<7 | 0x21,
+ 37632 - 19968: jis0212<<14 | 0x43<<7 | 0x32,
+ 37634 - 19968: jis0208<<14 | 0x5B<<7 | 0x23,
+ 37638 - 19968: jis0208<<14 | 0x1A<<7 | 0x0B,
+ 37640 - 19968: jis0212<<14 | 0x43<<7 | 0x34,
+ 37645 - 19968: jis0212<<14 | 0x43<<7 | 0x35,
+ 37647 - 19968: jis0208<<14 | 0x4D<<7 | 0x5A,
+ 37648 - 19968: jis0208<<14 | 0x1E<<7 | 0x4C,
+ 37649 - 19968: jis0212<<14 | 0x43<<7 | 0x36,
+ 37652 - 19968: jis0212<<14 | 0x43<<7 | 0x37,
+ 37653 - 19968: jis0212<<14 | 0x43<<7 | 0x38,
+ 37656 - 19968: jis0208<<14 | 0x1E<<7 | 0x4D,
+ 37657 - 19968: jis0208<<14 | 0x4E<<7 | 0x00,
+ 37658 - 19968: jis0208<<14 | 0x4E<<7 | 0x02,
+ 37660 - 19968: jis0212<<14 | 0x43<<7 | 0x39,
+ 37661 - 19968: jis0208<<14 | 0x5B<<7 | 0x22,
+ 37662 - 19968: jis0208<<14 | 0x5B<<7 | 0x20,
+ 37663 - 19968: jis0212<<14 | 0x43<<7 | 0x3C,
+ 37664 - 19968: jis0208<<14 | 0x1D<<7 | 0x5A,
+ 37665 - 19968: jis0208<<14 | 0x5B<<7 | 0x1D,
+ 37666 - 19968: jis0208<<14 | 0x4E<<7 | 0x01,
+ 37667 - 19968: jis0208<<14 | 0x4E<<7 | 0x03,
+ 37668 - 19968: jis0212<<14 | 0x43<<7 | 0x3E,
+ 37669 - 19968: jis0208<<14 | 0x5B<<7 | 0x1C,
+ 37670 - 19968: jis0208<<14 | 0x15<<7 | 0x32,
+ 37671 - 19968: jis0212<<14 | 0x43<<7 | 0x40,
+ 37672 - 19968: jis0208<<14 | 0x28<<7 | 0x24,
+ 37673 - 19968: jis0212<<14 | 0x43<<7 | 0x41,
+ 37674 - 19968: jis0212<<14 | 0x43<<7 | 0x42,
+ 37675 - 19968: jis0208<<14 | 0x1B<<7 | 0x41,
+ 37676 - 19968: jis0208<<14 | 0x2E<<7 | 0x02,
+ 37678 - 19968: jis0208<<14 | 0x4D<<7 | 0x5D,
+ 37679 - 19968: jis0208<<14 | 0x19<<7 | 0x57,
+ 37682 - 19968: jis0208<<14 | 0x2E<<7 | 0x1E,
+ 37683 - 19968: jis0212<<14 | 0x43<<7 | 0x43,
+ 37684 - 19968: jis0212<<14 | 0x43<<7 | 0x44,
+ 37685 - 19968: jis0208<<14 | 0x4E<<7 | 0x05,
+ 37686 - 19968: jis0212<<14 | 0x43<<7 | 0x45,
+ 37687 - 19968: jis0212<<14 | 0x43<<7 | 0x46,
+ 37690 - 19968: jis0208<<14 | 0x4E<<7 | 0x04,
+ 37691 - 19968: jis0208<<14 | 0x4E<<7 | 0x06,
+ 37700 - 19968: jis0208<<14 | 0x4D<<7 | 0x5C,
+ 37703 - 19968: jis0212<<14 | 0x43<<7 | 0x47,
+ 37704 - 19968: jis0208<<14 | 0x58<<7 | 0x02,
+ 37705 - 19968: jis0212<<14 | 0x43<<7 | 0x49,
+ 37707 - 19968: jis0208<<14 | 0x25<<7 | 0x48,
+ 37709 - 19968: jis0208<<14 | 0x24<<7 | 0x34,
+ 37712 - 19968: jis0212<<14 | 0x43<<7 | 0x4A,
+ 37713 - 19968: jis0212<<14 | 0x43<<7 | 0x4B,
+ 37714 - 19968: jis0212<<14 | 0x43<<7 | 0x4C,
+ 37716 - 19968: jis0208<<14 | 0x23<<7 | 0x36,
+ 37717 - 19968: jis0212<<14 | 0x43<<7 | 0x4D,
+ 37718 - 19968: jis0208<<14 | 0x4E<<7 | 0x0B,
+ 37719 - 19968: jis0208<<14 | 0x5B<<7 | 0x25,
+ 37720 - 19968: jis0212<<14 | 0x43<<7 | 0x4F,
+ 37722 - 19968: jis0212<<14 | 0x43<<7 | 0x50,
+ 37723 - 19968: jis0208<<14 | 0x22<<7 | 0x22,
+ 37724 - 19968: jis0208<<14 | 0x4E<<7 | 0x07,
+ 37726 - 19968: jis0212<<14 | 0x43<<7 | 0x51,
+ 37728 - 19968: jis0208<<14 | 0x4E<<7 | 0x08,
+ 37732 - 19968: jis0212<<14 | 0x43<<7 | 0x52,
+ 37733 - 19968: jis0212<<14 | 0x43<<7 | 0x53,
+ 37735 - 19968: jis0212<<14 | 0x43<<7 | 0x54,
+ 37737 - 19968: jis0212<<14 | 0x43<<7 | 0x55,
+ 37738 - 19968: jis0212<<14 | 0x43<<7 | 0x56,
+ 37740 - 19968: jis0208<<14 | 0x16<<7 | 0x0C,
+ 37741 - 19968: jis0212<<14 | 0x43<<7 | 0x57,
+ 37742 - 19968: jis0208<<14 | 0x4E<<7 | 0x0A,
+ 37743 - 19968: jis0212<<14 | 0x43<<7 | 0x58,
+ 37744 - 19968: jis0208<<14 | 0x5B<<7 | 0x24,
+ 37745 - 19968: jis0212<<14 | 0x43<<7 | 0x5A,
+ 37747 - 19968: jis0212<<14 | 0x43<<7 | 0x5B,
+ 37748 - 19968: jis0212<<14 | 0x43<<7 | 0x5C,
+ 37749 - 19968: jis0208<<14 | 0x17<<7 | 0x0F,
+ 37750 - 19968: jis0212<<14 | 0x43<<7 | 0x5D,
+ 37754 - 19968: jis0212<<14 | 0x44<<7 | 0x00,
+ 37756 - 19968: jis0208<<14 | 0x4E<<7 | 0x09,
+ 37757 - 19968: jis0212<<14 | 0x44<<7 | 0x01,
+ 37758 - 19968: jis0208<<14 | 0x1D<<7 | 0x40,
+ 37759 - 19968: jis0212<<14 | 0x44<<7 | 0x02,
+ 37760 - 19968: jis0212<<14 | 0x44<<7 | 0x03,
+ 37761 - 19968: jis0212<<14 | 0x44<<7 | 0x04,
+ 37762 - 19968: jis0212<<14 | 0x44<<7 | 0x05,
+ 37768 - 19968: jis0212<<14 | 0x44<<7 | 0x06,
+ 37770 - 19968: jis0212<<14 | 0x44<<7 | 0x07,
+ 37771 - 19968: jis0212<<14 | 0x44<<7 | 0x08,
+ 37772 - 19968: jis0208<<14 | 0x12<<7 | 0x58,
+ 37773 - 19968: jis0212<<14 | 0x44<<7 | 0x09,
+ 37775 - 19968: jis0212<<14 | 0x44<<7 | 0x0A,
+ 37778 - 19968: jis0212<<14 | 0x44<<7 | 0x0B,
+ 37780 - 19968: jis0208<<14 | 0x4E<<7 | 0x0F,
+ 37781 - 19968: jis0212<<14 | 0x44<<7 | 0x0C,
+ 37782 - 19968: jis0208<<14 | 0x19<<7 | 0x1E,
+ 37783 - 19968: jis0208<<14 | 0x20<<7 | 0x58,
+ 37784 - 19968: jis0212<<14 | 0x44<<7 | 0x0D,
+ 37786 - 19968: jis0208<<14 | 0x23<<7 | 0x29,
+ 37787 - 19968: jis0212<<14 | 0x44<<7 | 0x0E,
+ 37790 - 19968: jis0212<<14 | 0x44<<7 | 0x0F,
+ 37793 - 19968: jis0212<<14 | 0x44<<7 | 0x10,
+ 37795 - 19968: jis0212<<14 | 0x44<<7 | 0x11,
+ 37796 - 19968: jis0208<<14 | 0x5B<<7 | 0x26,
+ 37798 - 19968: jis0212<<14 | 0x44<<7 | 0x13,
+ 37799 - 19968: jis0208<<14 | 0x12<<7 | 0x1A,
+ 37800 - 19968: jis0212<<14 | 0x44<<7 | 0x14,
+ 37801 - 19968: jis0212<<14 | 0x44<<7 | 0x1A,
+ 37803 - 19968: jis0212<<14 | 0x44<<7 | 0x15,
+ 37804 - 19968: jis0208<<14 | 0x4E<<7 | 0x0D,
+ 37805 - 19968: jis0208<<14 | 0x4E<<7 | 0x0E,
+ 37806 - 19968: jis0208<<14 | 0x23<<7 | 0x22,
+ 37808 - 19968: jis0208<<14 | 0x4E<<7 | 0x0C,
+ 37812 - 19968: jis0212<<14 | 0x44<<7 | 0x16,
+ 37813 - 19968: jis0212<<14 | 0x44<<7 | 0x17,
+ 37814 - 19968: jis0212<<14 | 0x44<<7 | 0x18,
+ 37817 - 19968: jis0208<<14 | 0x4E<<7 | 0x10,
+ 37818 - 19968: jis0212<<14 | 0x44<<7 | 0x19,
+ 37825 - 19968: jis0212<<14 | 0x44<<7 | 0x1B,
+ 37827 - 19968: jis0208<<14 | 0x4E<<7 | 0x16,
+ 37828 - 19968: jis0212<<14 | 0x44<<7 | 0x1C,
+ 37829 - 19968: jis0212<<14 | 0x44<<7 | 0x1D,
+ 37830 - 19968: jis0208<<14 | 0x5B<<7 | 0x27,
+ 37831 - 19968: jis0212<<14 | 0x44<<7 | 0x1F,
+ 37832 - 19968: jis0208<<14 | 0x4E<<7 | 0x19,
+ 37833 - 19968: jis0212<<14 | 0x44<<7 | 0x20,
+ 37834 - 19968: jis0212<<14 | 0x44<<7 | 0x21,
+ 37835 - 19968: jis0212<<14 | 0x44<<7 | 0x22,
+ 37836 - 19968: jis0212<<14 | 0x44<<7 | 0x23,
+ 37837 - 19968: jis0212<<14 | 0x44<<7 | 0x24,
+ 37840 - 19968: jis0208<<14 | 0x4E<<7 | 0x18,
+ 37841 - 19968: jis0208<<14 | 0x24<<7 | 0x0C,
+ 37843 - 19968: jis0212<<14 | 0x44<<7 | 0x25,
+ 37846 - 19968: jis0208<<14 | 0x4E<<7 | 0x11,
+ 37847 - 19968: jis0208<<14 | 0x4E<<7 | 0x12,
+ 37848 - 19968: jis0208<<14 | 0x4E<<7 | 0x15,
+ 37849 - 19968: jis0212<<14 | 0x44<<7 | 0x26,
+ 37852 - 19968: jis0212<<14 | 0x44<<7 | 0x27,
+ 37853 - 19968: jis0208<<14 | 0x4E<<7 | 0x17,
+ 37854 - 19968: jis0208<<14 | 0x5B<<7 | 0x28,
+ 37855 - 19968: jis0212<<14 | 0x44<<7 | 0x29,
+ 37857 - 19968: jis0208<<14 | 0x15<<7 | 0x1F,
+ 37858 - 19968: jis0212<<14 | 0x44<<7 | 0x2A,
+ 37860 - 19968: jis0208<<14 | 0x4E<<7 | 0x1A,
+ 37861 - 19968: jis0208<<14 | 0x4E<<7 | 0x14,
+ 37862 - 19968: jis0212<<14 | 0x44<<7 | 0x2B,
+ 37863 - 19968: jis0212<<14 | 0x44<<7 | 0x2C,
+ 37864 - 19968: jis0208<<14 | 0x4E<<7 | 0x13,
+ 37879 - 19968: jis0212<<14 | 0x44<<7 | 0x2E,
+ 37880 - 19968: jis0208<<14 | 0x5B<<7 | 0x29,
+ 37881 - 19968: jis0212<<14 | 0x44<<7 | 0x2D,
+ 37882 - 19968: jis0212<<14 | 0x44<<7 | 0x30,
+ 37883 - 19968: jis0212<<14 | 0x44<<7 | 0x31,
+ 37885 - 19968: jis0212<<14 | 0x44<<7 | 0x32,
+ 37889 - 19968: jis0212<<14 | 0x44<<7 | 0x33,
+ 37890 - 19968: jis0212<<14 | 0x44<<7 | 0x34,
+ 37891 - 19968: jis0208<<14 | 0x4E<<7 | 0x1E,
+ 37892 - 19968: jis0212<<14 | 0x44<<7 | 0x35,
+ 37895 - 19968: jis0208<<14 | 0x4E<<7 | 0x1F,
+ 37896 - 19968: jis0212<<14 | 0x44<<7 | 0x36,
+ 37897 - 19968: jis0212<<14 | 0x44<<7 | 0x37,
+ 37901 - 19968: jis0212<<14 | 0x44<<7 | 0x38,
+ 37902 - 19968: jis0212<<14 | 0x44<<7 | 0x39,
+ 37903 - 19968: jis0212<<14 | 0x44<<7 | 0x3A,
+ 37904 - 19968: jis0208<<14 | 0x4E<<7 | 0x20,
+ 37907 - 19968: jis0208<<14 | 0x4E<<7 | 0x1D,
+ 37908 - 19968: jis0208<<14 | 0x4E<<7 | 0x1C,
+ 37909 - 19968: jis0212<<14 | 0x44<<7 | 0x3B,
+ 37910 - 19968: jis0212<<14 | 0x44<<7 | 0x3C,
+ 37911 - 19968: jis0212<<14 | 0x44<<7 | 0x3D,
+ 37912 - 19968: jis0208<<14 | 0x1D<<7 | 0x41,
+ 37913 - 19968: jis0208<<14 | 0x25<<7 | 0x09,
+ 37914 - 19968: jis0208<<14 | 0x4E<<7 | 0x1B,
+ 37919 - 19968: jis0212<<14 | 0x44<<7 | 0x3E,
+ 37921 - 19968: jis0208<<14 | 0x4E<<7 | 0x24,
+ 37931 - 19968: jis0208<<14 | 0x4E<<7 | 0x22,
+ 37934 - 19968: jis0212<<14 | 0x44<<7 | 0x3F,
+ 37935 - 19968: jis0212<<14 | 0x44<<7 | 0x40,
+ 37937 - 19968: jis0208<<14 | 0x5B<<7 | 0x2A,
+ 37938 - 19968: jis0212<<14 | 0x44<<7 | 0x42,
+ 37939 - 19968: jis0212<<14 | 0x44<<7 | 0x43,
+ 37940 - 19968: jis0212<<14 | 0x44<<7 | 0x44,
+ 37941 - 19968: jis0208<<14 | 0x4E<<7 | 0x23,
+ 37942 - 19968: jis0208<<14 | 0x4E<<7 | 0x21,
+ 37944 - 19968: jis0208<<14 | 0x21<<7 | 0x57,
+ 37946 - 19968: jis0208<<14 | 0x4E<<7 | 0x25,
+ 37947 - 19968: jis0212<<14 | 0x44<<7 | 0x45,
+ 37949 - 19968: jis0212<<14 | 0x44<<7 | 0x47,
+ 37951 - 19968: jis0212<<14 | 0x44<<7 | 0x46,
+ 37953 - 19968: jis0208<<14 | 0x4E<<7 | 0x26,
+ 37955 - 19968: jis0212<<14 | 0x44<<7 | 0x48,
+ 37956 - 19968: jis0208<<14 | 0x4E<<7 | 0x28,
+ 37957 - 19968: jis0208<<14 | 0x5B<<7 | 0x2B,
+ 37960 - 19968: jis0208<<14 | 0x5B<<7 | 0x2C,
+ 37962 - 19968: jis0212<<14 | 0x44<<7 | 0x4B,
+ 37964 - 19968: jis0212<<14 | 0x44<<7 | 0x4C,
+ 37969 - 19968: jis0208<<14 | 0x13<<7 | 0x34,
+ 37970 - 19968: jis0208<<14 | 0x4E<<7 | 0x27,
+ 37971 - 19968: jis0208<<14 | 0x2B<<7 | 0x59,
+ 37973 - 19968: jis0212<<14 | 0x44<<7 | 0x4D,
+ 37977 - 19968: jis0212<<14 | 0x44<<7 | 0x4E,
+ 37978 - 19968: jis0208<<14 | 0x4E<<7 | 0x33,
+ 37979 - 19968: jis0208<<14 | 0x4E<<7 | 0x29,
+ 37980 - 19968: jis0212<<14 | 0x44<<7 | 0x4F,
+ 37982 - 19968: jis0208<<14 | 0x4E<<7 | 0x2C,
+ 37983 - 19968: jis0212<<14 | 0x44<<7 | 0x50,
+ 37984 - 19968: jis0208<<14 | 0x4E<<7 | 0x2A,
+ 37985 - 19968: jis0212<<14 | 0x44<<7 | 0x51,
+ 37986 - 19968: jis0208<<14 | 0x4E<<7 | 0x2B,
+ 37987 - 19968: jis0212<<14 | 0x44<<7 | 0x52,
+ 37992 - 19968: jis0212<<14 | 0x44<<7 | 0x53,
+ 37994 - 19968: jis0208<<14 | 0x4E<<7 | 0x2D,
+ 37995 - 19968: jis0212<<14 | 0x44<<7 | 0x54,
+ 37997 - 19968: jis0212<<14 | 0x44<<7 | 0x55,
+ 37998 - 19968: jis0212<<14 | 0x44<<7 | 0x56,
+ 37999 - 19968: jis0212<<14 | 0x44<<7 | 0x57,
+ 38000 - 19968: jis0208<<14 | 0x4E<<7 | 0x2F,
+ 38001 - 19968: jis0212<<14 | 0x44<<7 | 0x58,
+ 38002 - 19968: jis0212<<14 | 0x44<<7 | 0x59,
+ 38005 - 19968: jis0208<<14 | 0x4E<<7 | 0x30,
+ 38007 - 19968: jis0208<<14 | 0x4E<<7 | 0x31,
+ 38012 - 19968: jis0208<<14 | 0x4E<<7 | 0x34,
+ 38013 - 19968: jis0208<<14 | 0x4E<<7 | 0x32,
+ 38014 - 19968: jis0208<<14 | 0x4E<<7 | 0x35,
+ 38015 - 19968: jis0208<<14 | 0x4E<<7 | 0x37,
+ 38017 - 19968: jis0208<<14 | 0x4E<<7 | 0x36,
+ 38019 - 19968: jis0212<<14 | 0x44<<7 | 0x5B,
+ 38020 - 19968: jis0212<<14 | 0x44<<7 | 0x5A,
+ 38263 - 19968: jis0208<<14 | 0x23<<7 | 0x18,
+ 38264 - 19968: jis0212<<14 | 0x44<<7 | 0x5C,
+ 38265 - 19968: jis0212<<14 | 0x44<<7 | 0x5D,
+ 38270 - 19968: jis0212<<14 | 0x45<<7 | 0x00,
+ 38272 - 19968: jis0208<<14 | 0x2B<<7 | 0x46,
+ 38274 - 19968: jis0208<<14 | 0x4E<<7 | 0x38,
+ 38275 - 19968: jis0208<<14 | 0x20<<7 | 0x0D,
+ 38276 - 19968: jis0212<<14 | 0x45<<7 | 0x01,
+ 38279 - 19968: jis0208<<14 | 0x4E<<7 | 0x39,
+ 38280 - 19968: jis0212<<14 | 0x45<<7 | 0x02,
+ 38281 - 19968: jis0208<<14 | 0x29<<7 | 0x23,
+ 38282 - 19968: jis0208<<14 | 0x4E<<7 | 0x3A,
+ 38283 - 19968: jis0208<<14 | 0x12<<7 | 0x0A,
+ 38284 - 19968: jis0212<<14 | 0x45<<7 | 0x03,
+ 38285 - 19968: jis0212<<14 | 0x45<<7 | 0x04,
+ 38286 - 19968: jis0212<<14 | 0x45<<7 | 0x05,
+ 38287 - 19968: jis0208<<14 | 0x10<<7 | 0x1B,
+ 38289 - 19968: jis0208<<14 | 0x13<<7 | 0x36,
+ 38290 - 19968: jis0208<<14 | 0x5B<<7 | 0x2D,
+ 38291 - 19968: jis0208<<14 | 0x13<<7 | 0x35,
+ 38292 - 19968: jis0208<<14 | 0x4E<<7 | 0x3B,
+ 38294 - 19968: jis0208<<14 | 0x4E<<7 | 0x3C,
+ 38296 - 19968: jis0208<<14 | 0x4E<<7 | 0x3D,
+ 38297 - 19968: jis0208<<14 | 0x4E<<7 | 0x3E,
+ 38301 - 19968: jis0212<<14 | 0x45<<7 | 0x06,
+ 38302 - 19968: jis0212<<14 | 0x45<<7 | 0x07,
+ 38303 - 19968: jis0212<<14 | 0x45<<7 | 0x08,
+ 38304 - 19968: jis0208<<14 | 0x4E<<7 | 0x3F,
+ 38305 - 19968: jis0212<<14 | 0x45<<7 | 0x09,
+ 38306 - 19968: jis0208<<14 | 0x13<<7 | 0x37,
+ 38307 - 19968: jis0208<<14 | 0x12<<7 | 0x34,
+ 38308 - 19968: jis0208<<14 | 0x18<<7 | 0x3D,
+ 38309 - 19968: jis0208<<14 | 0x27<<7 | 0x15,
+ 38310 - 19968: jis0212<<14 | 0x45<<7 | 0x0A,
+ 38311 - 19968: jis0208<<14 | 0x4E<<7 | 0x41,
+ 38312 - 19968: jis0208<<14 | 0x4E<<7 | 0x40,
+ 38313 - 19968: jis0212<<14 | 0x45<<7 | 0x0B,
+ 38315 - 19968: jis0212<<14 | 0x45<<7 | 0x0C,
+ 38316 - 19968: jis0212<<14 | 0x45<<7 | 0x0D,
+ 38317 - 19968: jis0208<<14 | 0x4E<<7 | 0x42,
+ 38322 - 19968: jis0208<<14 | 0x10<<7 | 0x3B,
+ 38324 - 19968: jis0212<<14 | 0x45<<7 | 0x0E,
+ 38326 - 19968: jis0212<<14 | 0x45<<7 | 0x0F,
+ 38329 - 19968: jis0208<<14 | 0x4E<<7 | 0x45,
+ 38330 - 19968: jis0212<<14 | 0x45<<7 | 0x10,
+ 38331 - 19968: jis0208<<14 | 0x4E<<7 | 0x44,
+ 38332 - 19968: jis0208<<14 | 0x4E<<7 | 0x43,
+ 38333 - 19968: jis0212<<14 | 0x45<<7 | 0x11,
+ 38334 - 19968: jis0208<<14 | 0x4E<<7 | 0x46,
+ 38335 - 19968: jis0212<<14 | 0x45<<7 | 0x12,
+ 38339 - 19968: jis0208<<14 | 0x4E<<7 | 0x49,
+ 38342 - 19968: jis0212<<14 | 0x45<<7 | 0x13,
+ 38343 - 19968: jis0208<<14 | 0x0F<<7 | 0x26,
+ 38344 - 19968: jis0212<<14 | 0x45<<7 | 0x14,
+ 38345 - 19968: jis0212<<14 | 0x45<<7 | 0x15,
+ 38346 - 19968: jis0208<<14 | 0x4E<<7 | 0x47,
+ 38347 - 19968: jis0212<<14 | 0x45<<7 | 0x16,
+ 38348 - 19968: jis0208<<14 | 0x4E<<7 | 0x4B,
+ 38349 - 19968: jis0208<<14 | 0x4E<<7 | 0x4A,
+ 38352 - 19968: jis0212<<14 | 0x45<<7 | 0x17,
+ 38353 - 19968: jis0212<<14 | 0x45<<7 | 0x18,
+ 38354 - 19968: jis0212<<14 | 0x45<<7 | 0x19,
+ 38355 - 19968: jis0212<<14 | 0x45<<7 | 0x1A,
+ 38356 - 19968: jis0208<<14 | 0x4E<<7 | 0x4D,
+ 38357 - 19968: jis0208<<14 | 0x4E<<7 | 0x4C,
+ 38358 - 19968: jis0208<<14 | 0x4E<<7 | 0x4E,
+ 38360 - 19968: jis0208<<14 | 0x25<<7 | 0x0D,
+ 38361 - 19968: jis0212<<14 | 0x45<<7 | 0x1B,
+ 38362 - 19968: jis0212<<14 | 0x45<<7 | 0x1C,
+ 38364 - 19968: jis0208<<14 | 0x4E<<7 | 0x4F,
+ 38365 - 19968: jis0212<<14 | 0x45<<7 | 0x1D,
+ 38366 - 19968: jis0212<<14 | 0x45<<7 | 0x1E,
+ 38367 - 19968: jis0212<<14 | 0x45<<7 | 0x1F,
+ 38368 - 19968: jis0212<<14 | 0x45<<7 | 0x20,
+ 38369 - 19968: jis0208<<14 | 0x4E<<7 | 0x50,
+ 38370 - 19968: jis0208<<14 | 0x4E<<7 | 0x52,
+ 38372 - 19968: jis0212<<14 | 0x45<<7 | 0x21,
+ 38373 - 19968: jis0208<<14 | 0x4E<<7 | 0x51,
+ 38374 - 19968: jis0212<<14 | 0x45<<7 | 0x22,
+ 38428 - 19968: jis0208<<14 | 0x28<<7 | 0x4B,
+ 38429 - 19968: jis0212<<14 | 0x45<<7 | 0x23,
+ 38430 - 19968: jis0212<<14 | 0x45<<7 | 0x24,
+ 38433 - 19968: jis0208<<14 | 0x4E<<7 | 0x53,
+ 38434 - 19968: jis0212<<14 | 0x45<<7 | 0x25,
+ 38436 - 19968: jis0212<<14 | 0x45<<7 | 0x26,
+ 38437 - 19968: jis0212<<14 | 0x45<<7 | 0x27,
+ 38438 - 19968: jis0212<<14 | 0x45<<7 | 0x28,
+ 38440 - 19968: jis0208<<14 | 0x4E<<7 | 0x54,
+ 38442 - 19968: jis0208<<14 | 0x19<<7 | 0x44,
+ 38444 - 19968: jis0212<<14 | 0x45<<7 | 0x29,
+ 38446 - 19968: jis0208<<14 | 0x4E<<7 | 0x55,
+ 38447 - 19968: jis0208<<14 | 0x4E<<7 | 0x56,
+ 38449 - 19968: jis0212<<14 | 0x45<<7 | 0x2A,
+ 38450 - 19968: jis0208<<14 | 0x2A<<7 | 0x28,
+ 38451 - 19968: jis0212<<14 | 0x45<<7 | 0x2B,
+ 38455 - 19968: jis0212<<14 | 0x45<<7 | 0x2C,
+ 38456 - 19968: jis0212<<14 | 0x45<<7 | 0x2D,
+ 38457 - 19968: jis0212<<14 | 0x45<<7 | 0x2E,
+ 38458 - 19968: jis0212<<14 | 0x45<<7 | 0x2F,
+ 38459 - 19968: jis0208<<14 | 0x20<<7 | 0x2A,
+ 38460 - 19968: jis0212<<14 | 0x45<<7 | 0x30,
+ 38461 - 19968: jis0212<<14 | 0x45<<7 | 0x31,
+ 38463 - 19968: jis0208<<14 | 0x0F<<7 | 0x03,
+ 38464 - 19968: jis0208<<14 | 0x21<<7 | 0x2A,
+ 38465 - 19968: jis0212<<14 | 0x45<<7 | 0x32,
+ 38466 - 19968: jis0208<<14 | 0x4E<<7 | 0x57,
+ 38468 - 19968: jis0208<<14 | 0x28<<7 | 0x4C,
+ 38475 - 19968: jis0208<<14 | 0x4E<<7 | 0x5A,
+ 38476 - 19968: jis0208<<14 | 0x4E<<7 | 0x58,
+ 38477 - 19968: jis0208<<14 | 0x18<<7 | 0x3E,
+ 38479 - 19968: jis0208<<14 | 0x4E<<7 | 0x59,
+ 38480 - 19968: jis0208<<14 | 0x17<<7 | 0x21,
+ 38482 - 19968: jis0212<<14 | 0x45<<7 | 0x33,
+ 38484 - 19968: jis0212<<14 | 0x45<<7 | 0x34,
+ 38486 - 19968: jis0212<<14 | 0x45<<7 | 0x35,
+ 38487 - 19968: jis0212<<14 | 0x45<<7 | 0x36,
+ 38488 - 19968: jis0212<<14 | 0x45<<7 | 0x37,
+ 38491 - 19968: jis0208<<14 | 0x29<<7 | 0x24,
+ 38492 - 19968: jis0208<<14 | 0x4E<<7 | 0x5C,
+ 38493 - 19968: jis0208<<14 | 0x4F<<7 | 0x00,
+ 38494 - 19968: jis0208<<14 | 0x4E<<7 | 0x5D,
+ 38495 - 19968: jis0208<<14 | 0x4F<<7 | 0x01,
+ 38497 - 19968: jis0212<<14 | 0x45<<7 | 0x38,
+ 38498 - 19968: jis0208<<14 | 0x10<<7 | 0x00,
+ 38499 - 19968: jis0208<<14 | 0x1E<<7 | 0x37,
+ 38500 - 19968: jis0208<<14 | 0x1C<<7 | 0x5B,
+ 38501 - 19968: jis0208<<14 | 0x13<<7 | 0x38,
+ 38502 - 19968: jis0208<<14 | 0x4F<<7 | 0x02,
+ 38506 - 19968: jis0208<<14 | 0x26<<7 | 0x45,
+ 38508 - 19968: jis0208<<14 | 0x4F<<7 | 0x04,
+ 38510 - 19968: jis0212<<14 | 0x45<<7 | 0x39,
+ 38512 - 19968: jis0208<<14 | 0x10<<7 | 0x01,
+ 38514 - 19968: jis0208<<14 | 0x4F<<7 | 0x03,
+ 38515 - 19968: jis0208<<14 | 0x23<<7 | 0x23,
+ 38516 - 19968: jis0212<<14 | 0x45<<7 | 0x3A,
+ 38517 - 19968: jis0208<<14 | 0x2D<<7 | 0x2C,
+ 38518 - 19968: jis0208<<14 | 0x25<<7 | 0x0A,
+ 38519 - 19968: jis0208<<14 | 0x4E<<7 | 0x5B,
+ 38520 - 19968: jis0208<<14 | 0x2D<<7 | 0x05,
+ 38522 - 19968: jis0208<<14 | 0x17<<7 | 0x10,
+ 38523 - 19968: jis0212<<14 | 0x45<<7 | 0x3B,
+ 38524 - 19968: jis0212<<14 | 0x45<<7 | 0x3C,
+ 38525 - 19968: jis0208<<14 | 0x2C<<7 | 0x3A,
+ 38526 - 19968: jis0212<<14 | 0x45<<7 | 0x3D,
+ 38527 - 19968: jis0212<<14 | 0x45<<7 | 0x3E,
+ 38529 - 19968: jis0212<<14 | 0x45<<7 | 0x3F,
+ 38530 - 19968: jis0212<<14 | 0x45<<7 | 0x40,
+ 38531 - 19968: jis0212<<14 | 0x45<<7 | 0x41,
+ 38532 - 19968: jis0212<<14 | 0x45<<7 | 0x42,
+ 38533 - 19968: jis0208<<14 | 0x15<<7 | 0x58,
+ 38534 - 19968: jis0208<<14 | 0x2D<<7 | 0x13,
+ 38536 - 19968: jis0208<<14 | 0x16<<7 | 0x07,
+ 38537 - 19968: jis0212<<14 | 0x45<<7 | 0x43,
+ 38538 - 19968: jis0208<<14 | 0x21<<7 | 0x41,
+ 38539 - 19968: jis0208<<14 | 0x46<<7 | 0x00,
+ 38541 - 19968: jis0208<<14 | 0x4F<<7 | 0x05,
+ 38542 - 19968: jis0208<<14 | 0x12<<7 | 0x0B,
+ 38543 - 19968: jis0208<<14 | 0x1E<<7 | 0x4E,
+ 38545 - 19968: jis0212<<14 | 0x45<<7 | 0x44,
+ 38548 - 19968: jis0208<<14 | 0x12<<7 | 0x35,
+ 38549 - 19968: jis0208<<14 | 0x4F<<7 | 0x07,
+ 38550 - 19968: jis0212<<14 | 0x45<<7 | 0x45,
+ 38551 - 19968: jis0208<<14 | 0x4F<<7 | 0x08,
+ 38552 - 19968: jis0208<<14 | 0x4F<<7 | 0x06,
+ 38553 - 19968: jis0208<<14 | 0x16<<7 | 0x43,
+ 38554 - 19968: jis0212<<14 | 0x45<<7 | 0x46,
+ 38555 - 19968: jis0208<<14 | 0x19<<7 | 0x3C,
+ 38556 - 19968: jis0208<<14 | 0x1D<<7 | 0x42,
+ 38557 - 19968: jis0208<<14 | 0x5B<<7 | 0x30,
+ 38559 - 19968: jis0212<<14 | 0x45<<7 | 0x48,
+ 38560 - 19968: jis0208<<14 | 0x10<<7 | 0x02,
+ 38563 - 19968: jis0208<<14 | 0x2D<<7 | 0x38,
+ 38564 - 19968: jis0212<<14 | 0x45<<7 | 0x49,
+ 38565 - 19968: jis0212<<14 | 0x45<<7 | 0x4A,
+ 38566 - 19968: jis0212<<14 | 0x45<<7 | 0x4B,
+ 38567 - 19968: jis0208<<14 | 0x4F<<7 | 0x0A,
+ 38568 - 19968: jis0208<<14 | 0x4D<<7 | 0x0D,
+ 38569 - 19968: jis0212<<14 | 0x45<<7 | 0x4C,
+ 38570 - 19968: jis0208<<14 | 0x4F<<7 | 0x09,
+ 38574 - 19968: jis0212<<14 | 0x45<<7 | 0x4D,
+ 38575 - 19968: jis0208<<14 | 0x5B<<7 | 0x31,
+ 38576 - 19968: jis0208<<14 | 0x4F<<7 | 0x0D,
+ 38577 - 19968: jis0208<<14 | 0x4F<<7 | 0x0B,
+ 38578 - 19968: jis0208<<14 | 0x4F<<7 | 0x0C,
+ 38579 - 19968: jis0212<<14 | 0x45<<7 | 0x4F,
+ 38580 - 19968: jis0208<<14 | 0x4F<<7 | 0x0E,
+ 38582 - 19968: jis0208<<14 | 0x4F<<7 | 0x0F,
+ 38583 - 19968: jis0208<<14 | 0x2D<<7 | 0x4B,
+ 38584 - 19968: jis0208<<14 | 0x4F<<7 | 0x10,
+ 38585 - 19968: jis0208<<14 | 0x4F<<7 | 0x11,
+ 38586 - 19968: jis0212<<14 | 0x45<<7 | 0x50,
+ 38587 - 19968: jis0208<<14 | 0x1F<<7 | 0x28,
+ 38588 - 19968: jis0208<<14 | 0x27<<7 | 0x1A,
+ 38592 - 19968: jis0208<<14 | 0x1E<<7 | 0x5C,
+ 38593 - 19968: jis0208<<14 | 0x13<<7 | 0x46,
+ 38596 - 19968: jis0208<<14 | 0x2C<<7 | 0x19,
+ 38597 - 19968: jis0208<<14 | 0x11<<7 | 0x4C,
+ 38598 - 19968: jis0208<<14 | 0x1C<<7 | 0x17,
+ 38599 - 19968: jis0208<<14 | 0x17<<7 | 0x3A,
+ 38601 - 19968: jis0208<<14 | 0x4F<<7 | 0x14,
+ 38602 - 19968: jis0212<<14 | 0x45<<7 | 0x51,
+ 38603 - 19968: jis0208<<14 | 0x4F<<7 | 0x13,
+ 38604 - 19968: jis0208<<14 | 0x1A<<7 | 0x52,
+ 38605 - 19968: jis0208<<14 | 0x4F<<7 | 0x15,
+ 38606 - 19968: jis0208<<14 | 0x4F<<7 | 0x12,
+ 38609 - 19968: jis0208<<14 | 0x1A<<7 | 0x07,
+ 38610 - 19968: jis0212<<14 | 0x45<<7 | 0x52,
+ 38613 - 19968: jis0208<<14 | 0x4F<<7 | 0x19,
+ 38614 - 19968: jis0208<<14 | 0x49<<7 | 0x0C,
+ 38616 - 19968: jis0212<<14 | 0x45<<7 | 0x54,
+ 38617 - 19968: jis0208<<14 | 0x31<<7 | 0x35,
+ 38618 - 19968: jis0212<<14 | 0x45<<7 | 0x55,
+ 38619 - 19968: jis0208<<14 | 0x1E<<7 | 0x56,
+ 38620 - 19968: jis0208<<14 | 0x4F<<7 | 0x17,
+ 38621 - 19968: jis0212<<14 | 0x45<<7 | 0x56,
+ 38622 - 19968: jis0212<<14 | 0x45<<7 | 0x57,
+ 38623 - 19968: jis0212<<14 | 0x45<<7 | 0x58,
+ 38626 - 19968: jis0208<<14 | 0x2D<<7 | 0x04,
+ 38627 - 19968: jis0208<<14 | 0x25<<7 | 0x50,
+ 38632 - 19968: jis0208<<14 | 0x10<<7 | 0x0A,
+ 38633 - 19968: jis0212<<14 | 0x45<<7 | 0x59,
+ 38634 - 19968: jis0208<<14 | 0x1F<<7 | 0x42,
+ 38635 - 19968: jis0208<<14 | 0x1B<<7 | 0x15,
+ 38639 - 19968: jis0212<<14 | 0x45<<7 | 0x5A,
+ 38640 - 19968: jis0208<<14 | 0x29<<7 | 0x16,
+ 38641 - 19968: jis0212<<14 | 0x45<<7 | 0x5B,
+ 38642 - 19968: jis0208<<14 | 0x10<<7 | 0x1F,
+ 38646 - 19968: jis0208<<14 | 0x2D<<7 | 0x4C,
+ 38647 - 19968: jis0208<<14 | 0x2C<<7 | 0x4A,
+ 38649 - 19968: jis0208<<14 | 0x4F<<7 | 0x1A,
+ 38650 - 19968: jis0212<<14 | 0x45<<7 | 0x5C,
+ 38651 - 19968: jis0208<<14 | 0x24<<7 | 0x24,
+ 38656 - 19968: jis0208<<14 | 0x1B<<7 | 0x5A,
+ 38658 - 19968: jis0212<<14 | 0x45<<7 | 0x5D,
+ 38659 - 19968: jis0212<<14 | 0x46<<7 | 0x00,
+ 38660 - 19968: jis0208<<14 | 0x4F<<7 | 0x1B,
+ 38661 - 19968: jis0212<<14 | 0x46<<7 | 0x01,
+ 38662 - 19968: jis0208<<14 | 0x4F<<7 | 0x1C,
+ 38663 - 19968: jis0208<<14 | 0x1E<<7 | 0x2B,
+ 38664 - 19968: jis0208<<14 | 0x4F<<7 | 0x1D,
+ 38665 - 19968: jis0212<<14 | 0x46<<7 | 0x02,
+ 38666 - 19968: jis0208<<14 | 0x2D<<7 | 0x4D,
+ 38669 - 19968: jis0208<<14 | 0x4F<<7 | 0x18,
+ 38670 - 19968: jis0208<<14 | 0x4F<<7 | 0x1F,
+ 38671 - 19968: jis0208<<14 | 0x4F<<7 | 0x21,
+ 38673 - 19968: jis0208<<14 | 0x4F<<7 | 0x20,
+ 38675 - 19968: jis0208<<14 | 0x4F<<7 | 0x1E,
+ 38678 - 19968: jis0208<<14 | 0x4F<<7 | 0x22,
+ 38681 - 19968: jis0208<<14 | 0x4F<<7 | 0x23,
+ 38682 - 19968: jis0212<<14 | 0x46<<7 | 0x03,
+ 38683 - 19968: jis0212<<14 | 0x46<<7 | 0x04,
+ 38684 - 19968: jis0208<<14 | 0x20<<7 | 0x59,
+ 38685 - 19968: jis0212<<14 | 0x46<<7 | 0x05,
+ 38686 - 19968: jis0208<<14 | 0x11<<7 | 0x41,
+ 38689 - 19968: jis0212<<14 | 0x46<<7 | 0x06,
+ 38690 - 19968: jis0212<<14 | 0x46<<7 | 0x07,
+ 38691 - 19968: jis0212<<14 | 0x46<<7 | 0x08,
+ 38692 - 19968: jis0208<<14 | 0x4F<<7 | 0x24,
+ 38695 - 19968: jis0208<<14 | 0x2B<<7 | 0x17,
+ 38696 - 19968: jis0212<<14 | 0x46<<7 | 0x09,
+ 38698 - 19968: jis0208<<14 | 0x4F<<7 | 0x25,
+ 38704 - 19968: jis0208<<14 | 0x4F<<7 | 0x26,
+ 38705 - 19968: jis0212<<14 | 0x46<<7 | 0x0A,
+ 38706 - 19968: jis0208<<14 | 0x2E<<7 | 0x09,
+ 38707 - 19968: jis0208<<14 | 0x5B<<7 | 0x32,
+ 38712 - 19968: jis0208<<14 | 0x3A<<7 | 0x10,
+ 38713 - 19968: jis0208<<14 | 0x4F<<7 | 0x27,
+ 38715 - 19968: jis0208<<14 | 0x5B<<7 | 0x33,
+ 38717 - 19968: jis0208<<14 | 0x4F<<7 | 0x28,
+ 38718 - 19968: jis0208<<14 | 0x4F<<7 | 0x29,
+ 38721 - 19968: jis0212<<14 | 0x46<<7 | 0x0C,
+ 38722 - 19968: jis0208<<14 | 0x4F<<7 | 0x2D,
+ 38723 - 19968: jis0208<<14 | 0x5B<<7 | 0x34,
+ 38724 - 19968: jis0208<<14 | 0x4F<<7 | 0x2A,
+ 38726 - 19968: jis0208<<14 | 0x4F<<7 | 0x2B,
+ 38728 - 19968: jis0208<<14 | 0x4F<<7 | 0x2C,
+ 38729 - 19968: jis0208<<14 | 0x4F<<7 | 0x2E,
+ 38730 - 19968: jis0212<<14 | 0x46<<7 | 0x0E,
+ 38733 - 19968: jis0208<<14 | 0x5B<<7 | 0x35,
+ 38734 - 19968: jis0212<<14 | 0x46<<7 | 0x0F,
+ 38735 - 19968: jis0208<<14 | 0x5B<<7 | 0x36,
+ 38737 - 19968: jis0208<<14 | 0x5B<<7 | 0x37,
+ 38738 - 19968: jis0208<<14 | 0x1F<<7 | 0x23,
+ 38741 - 19968: jis0208<<14 | 0x5B<<7 | 0x38,
+ 38742 - 19968: jis0208<<14 | 0x2B<<7 | 0x56,
+ 38743 - 19968: jis0212<<14 | 0x46<<7 | 0x12,
+ 38744 - 19968: jis0212<<14 | 0x46<<7 | 0x13,
+ 38745 - 19968: jis0208<<14 | 0x1F<<7 | 0x24,
+ 38746 - 19968: jis0212<<14 | 0x46<<7 | 0x14,
+ 38747 - 19968: jis0212<<14 | 0x46<<7 | 0x15,
+ 38748 - 19968: jis0208<<14 | 0x4F<<7 | 0x2F,
+ 38750 - 19968: jis0208<<14 | 0x27<<7 | 0x52,
+ 38752 - 19968: jis0208<<14 | 0x4F<<7 | 0x30,
+ 38753 - 19968: jis0208<<14 | 0x52<<7 | 0x32,
+ 38754 - 19968: jis0208<<14 | 0x2B<<7 | 0x2B,
+ 38755 - 19968: jis0212<<14 | 0x46<<7 | 0x16,
+ 38756 - 19968: jis0208<<14 | 0x4F<<7 | 0x31,
+ 38758 - 19968: jis0208<<14 | 0x4F<<7 | 0x32,
+ 38759 - 19968: jis0212<<14 | 0x46<<7 | 0x17,
+ 38760 - 19968: jis0208<<14 | 0x4F<<7 | 0x33,
+ 38761 - 19968: jis0208<<14 | 0x12<<7 | 0x36,
+ 38762 - 19968: jis0212<<14 | 0x46<<7 | 0x18,
+ 38763 - 19968: jis0208<<14 | 0x4F<<7 | 0x35,
+ 38765 - 19968: jis0208<<14 | 0x1E<<7 | 0x38,
+ 38766 - 19968: jis0212<<14 | 0x46<<7 | 0x19,
+ 38769 - 19968: jis0208<<14 | 0x4F<<7 | 0x36,
+ 38771 - 19968: jis0212<<14 | 0x46<<7 | 0x1A,
+ 38772 - 19968: jis0208<<14 | 0x16<<7 | 0x03,
+ 38774 - 19968: jis0212<<14 | 0x46<<7 | 0x1B,
+ 38775 - 19968: jis0212<<14 | 0x46<<7 | 0x1C,
+ 38776 - 19968: jis0212<<14 | 0x46<<7 | 0x1D,
+ 38777 - 19968: jis0208<<14 | 0x4F<<7 | 0x37,
+ 38778 - 19968: jis0208<<14 | 0x4F<<7 | 0x3B,
+ 38779 - 19968: jis0212<<14 | 0x46<<7 | 0x1E,
+ 38780 - 19968: jis0208<<14 | 0x4F<<7 | 0x39,
+ 38781 - 19968: jis0212<<14 | 0x46<<7 | 0x1F,
+ 38783 - 19968: jis0212<<14 | 0x46<<7 | 0x20,
+ 38784 - 19968: jis0212<<14 | 0x46<<7 | 0x21,
+ 38785 - 19968: jis0208<<14 | 0x4F<<7 | 0x3A,
+ 38788 - 19968: jis0208<<14 | 0x12<<7 | 0x52,
+ 38789 - 19968: jis0208<<14 | 0x4F<<7 | 0x38,
+ 38790 - 19968: jis0208<<14 | 0x4F<<7 | 0x3C,
+ 38793 - 19968: jis0212<<14 | 0x46<<7 | 0x22,
+ 38795 - 19968: jis0208<<14 | 0x4F<<7 | 0x3D,
+ 38797 - 19968: jis0208<<14 | 0x0F<<7 | 0x27,
+ 38799 - 19968: jis0208<<14 | 0x4F<<7 | 0x3E,
+ 38800 - 19968: jis0208<<14 | 0x4F<<7 | 0x3F,
+ 38805 - 19968: jis0212<<14 | 0x46<<7 | 0x23,
+ 38806 - 19968: jis0212<<14 | 0x46<<7 | 0x24,
+ 38807 - 19968: jis0212<<14 | 0x46<<7 | 0x25,
+ 38808 - 19968: jis0208<<14 | 0x1D<<7 | 0x43,
+ 38809 - 19968: jis0212<<14 | 0x46<<7 | 0x26,
+ 38810 - 19968: jis0212<<14 | 0x46<<7 | 0x27,
+ 38812 - 19968: jis0208<<14 | 0x4F<<7 | 0x40,
+ 38814 - 19968: jis0212<<14 | 0x46<<7 | 0x28,
+ 38815 - 19968: jis0212<<14 | 0x46<<7 | 0x29,
+ 38816 - 19968: jis0208<<14 | 0x14<<7 | 0x26,
+ 38818 - 19968: jis0212<<14 | 0x46<<7 | 0x2A,
+ 38819 - 19968: jis0208<<14 | 0x4F<<7 | 0x43,
+ 38822 - 19968: jis0208<<14 | 0x4F<<7 | 0x42,
+ 38824 - 19968: jis0208<<14 | 0x4F<<7 | 0x41,
+ 38827 - 19968: jis0208<<14 | 0x4A<<7 | 0x50,
+ 38828 - 19968: jis0212<<14 | 0x46<<7 | 0x2B,
+ 38829 - 19968: jis0208<<14 | 0x29<<7 | 0x3B,
+ 38830 - 19968: jis0212<<14 | 0x46<<7 | 0x2C,
+ 38833 - 19968: jis0212<<14 | 0x46<<7 | 0x2D,
+ 38834 - 19968: jis0212<<14 | 0x46<<7 | 0x2E,
+ 38835 - 19968: jis0208<<14 | 0x4F<<7 | 0x44,
+ 38836 - 19968: jis0208<<14 | 0x4F<<7 | 0x45,
+ 38837 - 19968: jis0212<<14 | 0x46<<7 | 0x2F,
+ 38838 - 19968: jis0212<<14 | 0x46<<7 | 0x30,
+ 38840 - 19968: jis0212<<14 | 0x46<<7 | 0x31,
+ 38841 - 19968: jis0212<<14 | 0x46<<7 | 0x32,
+ 38842 - 19968: jis0212<<14 | 0x46<<7 | 0x33,
+ 38844 - 19968: jis0212<<14 | 0x46<<7 | 0x34,
+ 38846 - 19968: jis0212<<14 | 0x46<<7 | 0x35,
+ 38847 - 19968: jis0212<<14 | 0x46<<7 | 0x36,
+ 38849 - 19968: jis0212<<14 | 0x46<<7 | 0x37,
+ 38851 - 19968: jis0208<<14 | 0x4F<<7 | 0x46,
+ 38852 - 19968: jis0212<<14 | 0x46<<7 | 0x38,
+ 38853 - 19968: jis0212<<14 | 0x46<<7 | 0x39,
+ 38854 - 19968: jis0208<<14 | 0x4F<<7 | 0x47,
+ 38855 - 19968: jis0212<<14 | 0x46<<7 | 0x3A,
+ 38856 - 19968: jis0208<<14 | 0x4F<<7 | 0x48,
+ 38857 - 19968: jis0212<<14 | 0x46<<7 | 0x3B,
+ 38858 - 19968: jis0212<<14 | 0x46<<7 | 0x3C,
+ 38859 - 19968: jis0208<<14 | 0x4F<<7 | 0x49,
+ 38860 - 19968: jis0212<<14 | 0x46<<7 | 0x3D,
+ 38861 - 19968: jis0212<<14 | 0x46<<7 | 0x3E,
+ 38862 - 19968: jis0212<<14 | 0x46<<7 | 0x3F,
+ 38864 - 19968: jis0212<<14 | 0x46<<7 | 0x40,
+ 38865 - 19968: jis0212<<14 | 0x46<<7 | 0x41,
+ 38867 - 19968: jis0208<<14 | 0x13<<7 | 0x39,
+ 38868 - 19968: jis0212<<14 | 0x46<<7 | 0x42,
+ 38871 - 19968: jis0212<<14 | 0x46<<7 | 0x43,
+ 38872 - 19968: jis0212<<14 | 0x46<<7 | 0x44,
+ 38873 - 19968: jis0212<<14 | 0x46<<7 | 0x45,
+ 38875 - 19968: jis0212<<14 | 0x46<<7 | 0x49,
+ 38876 - 19968: jis0208<<14 | 0x4F<<7 | 0x4A,
+ 38877 - 19968: jis0212<<14 | 0x46<<7 | 0x46,
+ 38878 - 19968: jis0212<<14 | 0x46<<7 | 0x47,
+ 38880 - 19968: jis0212<<14 | 0x46<<7 | 0x48,
+ 38881 - 19968: jis0212<<14 | 0x46<<7 | 0x4A,
+ 38884 - 19968: jis0212<<14 | 0x46<<7 | 0x4B,
+ 38893 - 19968: jis0208<<14 | 0x4F<<7 | 0x4B,
+ 38894 - 19968: jis0208<<14 | 0x26<<7 | 0x02,
+ 38895 - 19968: jis0212<<14 | 0x46<<7 | 0x4C,
+ 38897 - 19968: jis0212<<14 | 0x46<<7 | 0x4D,
+ 38898 - 19968: jis0208<<14 | 0x4F<<7 | 0x4D,
+ 38899 - 19968: jis0208<<14 | 0x11<<7 | 0x1A,
+ 38900 - 19968: jis0212<<14 | 0x46<<7 | 0x4E,
+ 38901 - 19968: jis0208<<14 | 0x4F<<7 | 0x50,
+ 38902 - 19968: jis0208<<14 | 0x4F<<7 | 0x4F,
+ 38903 - 19968: jis0212<<14 | 0x46<<7 | 0x4F,
+ 38904 - 19968: jis0212<<14 | 0x46<<7 | 0x50,
+ 38906 - 19968: jis0212<<14 | 0x46<<7 | 0x51,
+ 38907 - 19968: jis0208<<14 | 0x10<<7 | 0x03,
+ 38911 - 19968: jis0208<<14 | 0x15<<7 | 0x20,
+ 38913 - 19968: jis0208<<14 | 0x29<<7 | 0x26,
+ 38914 - 19968: jis0208<<14 | 0x23<<7 | 0x19,
+ 38915 - 19968: jis0208<<14 | 0x19<<7 | 0x01,
+ 38917 - 19968: jis0208<<14 | 0x18<<7 | 0x3F,
+ 38918 - 19968: jis0208<<14 | 0x1C<<7 | 0x46,
+ 38919 - 19968: jis0212<<14 | 0x46<<7 | 0x52,
+ 38920 - 19968: jis0208<<14 | 0x1E<<7 | 0x3B,
+ 38922 - 19968: jis0212<<14 | 0x46<<7 | 0x53,
+ 38924 - 19968: jis0208<<14 | 0x4F<<7 | 0x52,
+ 38925 - 19968: jis0212<<14 | 0x46<<7 | 0x55,
+ 38926 - 19968: jis0212<<14 | 0x46<<7 | 0x56,
+ 38927 - 19968: jis0208<<14 | 0x4F<<7 | 0x51,
+ 38928 - 19968: jis0208<<14 | 0x2C<<7 | 0x21,
+ 38929 - 19968: jis0208<<14 | 0x13<<7 | 0x47,
+ 38930 - 19968: jis0208<<14 | 0x27<<7 | 0x31,
+ 38931 - 19968: jis0208<<14 | 0x25<<7 | 0x3B,
+ 38932 - 19968: jis0212<<14 | 0x46<<7 | 0x57,
+ 38934 - 19968: jis0212<<14 | 0x46<<7 | 0x58,
+ 38935 - 19968: jis0208<<14 | 0x1E<<7 | 0x5B,
+ 38936 - 19968: jis0208<<14 | 0x2D<<7 | 0x2D,
+ 38937 - 19968: jis0212<<14 | 0x46<<7 | 0x54,
+ 38938 - 19968: jis0208<<14 | 0x16<<7 | 0x3A,
+ 38940 - 19968: jis0212<<14 | 0x46<<7 | 0x59,
+ 38942 - 19968: jis0212<<14 | 0x46<<7 | 0x5A,
+ 38944 - 19968: jis0212<<14 | 0x46<<7 | 0x5B,
+ 38945 - 19968: jis0208<<14 | 0x4F<<7 | 0x55,
+ 38947 - 19968: jis0212<<14 | 0x46<<7 | 0x5C,
+ 38948 - 19968: jis0208<<14 | 0x4F<<7 | 0x54,
+ 38949 - 19968: jis0212<<14 | 0x47<<7 | 0x07,
+ 38950 - 19968: jis0212<<14 | 0x46<<7 | 0x5D,
+ 38955 - 19968: jis0212<<14 | 0x47<<7 | 0x00,
+ 38956 - 19968: jis0208<<14 | 0x2A<<7 | 0x2A,
+ 38957 - 19968: jis0208<<14 | 0x25<<7 | 0x0B,
+ 38958 - 19968: jis0212<<14 | 0x47<<7 | 0x01,
+ 38959 - 19968: jis0212<<14 | 0x47<<7 | 0x02,
+ 38960 - 19968: jis0212<<14 | 0x47<<7 | 0x03,
+ 38962 - 19968: jis0212<<14 | 0x47<<7 | 0x04,
+ 38963 - 19968: jis0212<<14 | 0x47<<7 | 0x05,
+ 38964 - 19968: jis0208<<14 | 0x10<<7 | 0x2F,
+ 38965 - 19968: jis0212<<14 | 0x47<<7 | 0x06,
+ 38967 - 19968: jis0208<<14 | 0x4F<<7 | 0x56,
+ 38968 - 19968: jis0208<<14 | 0x4F<<7 | 0x53,
+ 38971 - 19968: jis0208<<14 | 0x28<<7 | 0x30,
+ 38972 - 19968: jis0208<<14 | 0x2C<<7 | 0x49,
+ 38973 - 19968: jis0208<<14 | 0x4F<<7 | 0x57,
+ 38974 - 19968: jis0212<<14 | 0x47<<7 | 0x08,
+ 38980 - 19968: jis0212<<14 | 0x47<<7 | 0x09,
+ 38982 - 19968: jis0208<<14 | 0x4F<<7 | 0x58,
+ 38983 - 19968: jis0212<<14 | 0x47<<7 | 0x0A,
+ 38986 - 19968: jis0212<<14 | 0x47<<7 | 0x0B,
+ 38987 - 19968: jis0208<<14 | 0x4F<<7 | 0x5A,
+ 38988 - 19968: jis0208<<14 | 0x21<<7 | 0x49,
+ 38989 - 19968: jis0208<<14 | 0x12<<7 | 0x3A,
+ 38990 - 19968: jis0208<<14 | 0x12<<7 | 0x3B,
+ 38991 - 19968: jis0208<<14 | 0x4F<<7 | 0x59,
+ 38993 - 19968: jis0212<<14 | 0x47<<7 | 0x0C,
+ 38994 - 19968: jis0212<<14 | 0x47<<7 | 0x0D,
+ 38995 - 19968: jis0212<<14 | 0x47<<7 | 0x0E,
+ 38996 - 19968: jis0208<<14 | 0x13<<7 | 0x48,
+ 38997 - 19968: jis0208<<14 | 0x17<<7 | 0x11,
+ 38998 - 19968: jis0212<<14 | 0x47<<7 | 0x0F,
+ 38999 - 19968: jis0208<<14 | 0x5B<<7 | 0x39,
+ 39000 - 19968: jis0208<<14 | 0x13<<7 | 0x49,
+ 39001 - 19968: jis0212<<14 | 0x47<<7 | 0x11,
+ 39002 - 19968: jis0212<<14 | 0x47<<7 | 0x12,
+ 39003 - 19968: jis0208<<14 | 0x24<<7 | 0x1E,
+ 39006 - 19968: jis0208<<14 | 0x2D<<7 | 0x3F,
+ 39010 - 19968: jis0212<<14 | 0x47<<7 | 0x13,
+ 39011 - 19968: jis0212<<14 | 0x47<<7 | 0x14,
+ 39013 - 19968: jis0208<<14 | 0x5B<<7 | 0x3A,
+ 39014 - 19968: jis0212<<14 | 0x47<<7 | 0x16,
+ 39015 - 19968: jis0208<<14 | 0x17<<7 | 0x3B,
+ 39018 - 19968: jis0212<<14 | 0x47<<7 | 0x17,
+ 39019 - 19968: jis0208<<14 | 0x4F<<7 | 0x5B,
+ 39020 - 19968: jis0212<<14 | 0x47<<7 | 0x18,
+ 39023 - 19968: jis0208<<14 | 0x4F<<7 | 0x5C,
+ 39024 - 19968: jis0208<<14 | 0x4F<<7 | 0x5D,
+ 39025 - 19968: jis0208<<14 | 0x50<<7 | 0x00,
+ 39027 - 19968: jis0208<<14 | 0x50<<7 | 0x02,
+ 39028 - 19968: jis0208<<14 | 0x50<<7 | 0x01,
+ 39080 - 19968: jis0208<<14 | 0x28<<7 | 0x56,
+ 39082 - 19968: jis0208<<14 | 0x50<<7 | 0x03,
+ 39083 - 19968: jis0212<<14 | 0x47<<7 | 0x19,
+ 39085 - 19968: jis0212<<14 | 0x47<<7 | 0x1A,
+ 39086 - 19968: jis0212<<14 | 0x47<<7 | 0x1B,
+ 39087 - 19968: jis0208<<14 | 0x50<<7 | 0x04,
+ 39088 - 19968: jis0212<<14 | 0x47<<7 | 0x1C,
+ 39089 - 19968: jis0208<<14 | 0x50<<7 | 0x05,
+ 39092 - 19968: jis0212<<14 | 0x47<<7 | 0x1D,
+ 39094 - 19968: jis0208<<14 | 0x50<<7 | 0x06,
+ 39095 - 19968: jis0212<<14 | 0x47<<7 | 0x1E,
+ 39096 - 19968: jis0212<<14 | 0x47<<7 | 0x1F,
+ 39098 - 19968: jis0212<<14 | 0x47<<7 | 0x20,
+ 39099 - 19968: jis0212<<14 | 0x47<<7 | 0x21,
+ 39103 - 19968: jis0212<<14 | 0x47<<7 | 0x22,
+ 39106 - 19968: jis0212<<14 | 0x47<<7 | 0x23,
+ 39107 - 19968: jis0208<<14 | 0x50<<7 | 0x08,
+ 39108 - 19968: jis0208<<14 | 0x50<<7 | 0x07,
+ 39109 - 19968: jis0212<<14 | 0x47<<7 | 0x24,
+ 39110 - 19968: jis0208<<14 | 0x50<<7 | 0x09,
+ 39112 - 19968: jis0212<<14 | 0x47<<7 | 0x25,
+ 39116 - 19968: jis0212<<14 | 0x47<<7 | 0x26,
+ 39131 - 19968: jis0208<<14 | 0x27<<7 | 0x53,
+ 39132 - 19968: jis0208<<14 | 0x45<<7 | 0x2B,
+ 39135 - 19968: jis0208<<14 | 0x1E<<7 | 0x08,
+ 39137 - 19968: jis0212<<14 | 0x47<<7 | 0x27,
+ 39138 - 19968: jis0208<<14 | 0x14<<7 | 0x11,
+ 39139 - 19968: jis0212<<14 | 0x47<<7 | 0x28,
+ 39141 - 19968: jis0212<<14 | 0x47<<7 | 0x29,
+ 39142 - 19968: jis0212<<14 | 0x47<<7 | 0x2A,
+ 39143 - 19968: jis0212<<14 | 0x47<<7 | 0x2B,
+ 39145 - 19968: jis0208<<14 | 0x50<<7 | 0x0A,
+ 39146 - 19968: jis0212<<14 | 0x47<<7 | 0x2C,
+ 39147 - 19968: jis0208<<14 | 0x50<<7 | 0x0B,
+ 39149 - 19968: jis0208<<14 | 0x31<<7 | 0x0B,
+ 39150 - 19968: jis0208<<14 | 0x3C<<7 | 0x1A,
+ 39151 - 19968: jis0208<<14 | 0x27<<7 | 0x32,
+ 39154 - 19968: jis0208<<14 | 0x0F<<7 | 0x5A,
+ 39155 - 19968: jis0212<<14 | 0x47<<7 | 0x2D,
+ 39156 - 19968: jis0208<<14 | 0x0F<<7 | 0x1A,
+ 39158 - 19968: jis0212<<14 | 0x47<<7 | 0x2E,
+ 39164 - 19968: jis0208<<14 | 0x1A<<7 | 0x53,
+ 39165 - 19968: jis0208<<14 | 0x2A<<7 | 0x0F,
+ 39166 - 19968: jis0208<<14 | 0x1D<<7 | 0x5D,
+ 39170 - 19968: jis0212<<14 | 0x47<<7 | 0x2F,
+ 39171 - 19968: jis0208<<14 | 0x50<<7 | 0x0C,
+ 39173 - 19968: jis0208<<14 | 0x2B<<7 | 0x3E,
+ 39175 - 19968: jis0212<<14 | 0x47<<7 | 0x30,
+ 39176 - 19968: jis0212<<14 | 0x47<<7 | 0x31,
+ 39177 - 19968: jis0208<<14 | 0x50<<7 | 0x0D,
+ 39178 - 19968: jis0208<<14 | 0x2C<<7 | 0x3B,
+ 39180 - 19968: jis0208<<14 | 0x10<<7 | 0x21,
+ 39184 - 19968: jis0208<<14 | 0x1A<<7 | 0x20,
+ 39185 - 19968: jis0212<<14 | 0x47<<7 | 0x32,
+ 39186 - 19968: jis0208<<14 | 0x50<<7 | 0x0E,
+ 39187 - 19968: jis0208<<14 | 0x11<<7 | 0x4D,
+ 39188 - 19968: jis0208<<14 | 0x50<<7 | 0x0F,
+ 39189 - 19968: jis0212<<14 | 0x47<<7 | 0x33,
+ 39190 - 19968: jis0212<<14 | 0x47<<7 | 0x34,
+ 39191 - 19968: jis0212<<14 | 0x47<<7 | 0x35,
+ 39192 - 19968: jis0208<<14 | 0x50<<7 | 0x10,
+ 39194 - 19968: jis0212<<14 | 0x47<<7 | 0x36,
+ 39195 - 19968: jis0212<<14 | 0x47<<7 | 0x37,
+ 39196 - 19968: jis0212<<14 | 0x47<<7 | 0x38,
+ 39197 - 19968: jis0208<<14 | 0x50<<7 | 0x12,
+ 39198 - 19968: jis0208<<14 | 0x50<<7 | 0x13,
+ 39199 - 19968: jis0212<<14 | 0x47<<7 | 0x39,
+ 39200 - 19968: jis0208<<14 | 0x50<<7 | 0x15,
+ 39201 - 19968: jis0208<<14 | 0x50<<7 | 0x11,
+ 39202 - 19968: jis0212<<14 | 0x47<<7 | 0x3A,
+ 39204 - 19968: jis0208<<14 | 0x50<<7 | 0x14,
+ 39206 - 19968: jis0212<<14 | 0x47<<7 | 0x3B,
+ 39207 - 19968: jis0208<<14 | 0x5B<<7 | 0x3D,
+ 39208 - 19968: jis0208<<14 | 0x13<<7 | 0x3A,
+ 39211 - 19968: jis0212<<14 | 0x47<<7 | 0x3D,
+ 39212 - 19968: jis0208<<14 | 0x50<<7 | 0x16,
+ 39214 - 19968: jis0208<<14 | 0x50<<7 | 0x17,
+ 39217 - 19968: jis0212<<14 | 0x47<<7 | 0x3E,
+ 39218 - 19968: jis0212<<14 | 0x47<<7 | 0x3F,
+ 39219 - 19968: jis0212<<14 | 0x47<<7 | 0x40,
+ 39220 - 19968: jis0212<<14 | 0x47<<7 | 0x41,
+ 39221 - 19968: jis0212<<14 | 0x47<<7 | 0x42,
+ 39225 - 19968: jis0212<<14 | 0x47<<7 | 0x43,
+ 39226 - 19968: jis0212<<14 | 0x47<<7 | 0x44,
+ 39227 - 19968: jis0212<<14 | 0x47<<7 | 0x45,
+ 39228 - 19968: jis0212<<14 | 0x47<<7 | 0x46,
+ 39229 - 19968: jis0208<<14 | 0x50<<7 | 0x18,
+ 39230 - 19968: jis0208<<14 | 0x50<<7 | 0x19,
+ 39232 - 19968: jis0212<<14 | 0x47<<7 | 0x47,
+ 39233 - 19968: jis0212<<14 | 0x47<<7 | 0x48,
+ 39234 - 19968: jis0208<<14 | 0x50<<7 | 0x1A,
+ 39237 - 19968: jis0208<<14 | 0x50<<7 | 0x1C,
+ 39238 - 19968: jis0212<<14 | 0x47<<7 | 0x49,
+ 39239 - 19968: jis0212<<14 | 0x47<<7 | 0x4A,
+ 39240 - 19968: jis0212<<14 | 0x47<<7 | 0x4B,
+ 39241 - 19968: jis0208<<14 | 0x50<<7 | 0x1B,
+ 39243 - 19968: jis0208<<14 | 0x50<<7 | 0x1E,
+ 39244 - 19968: jis0208<<14 | 0x50<<7 | 0x21,
+ 39245 - 19968: jis0212<<14 | 0x47<<7 | 0x4C,
+ 39246 - 19968: jis0212<<14 | 0x47<<7 | 0x4D,
+ 39248 - 19968: jis0208<<14 | 0x50<<7 | 0x1D,
+ 39249 - 19968: jis0208<<14 | 0x50<<7 | 0x1F,
+ 39250 - 19968: jis0208<<14 | 0x50<<7 | 0x20,
+ 39252 - 19968: jis0212<<14 | 0x47<<7 | 0x4E,
+ 39253 - 19968: jis0208<<14 | 0x50<<7 | 0x22,
+ 39255 - 19968: jis0208<<14 | 0x15<<7 | 0x21,
+ 39256 - 19968: jis0212<<14 | 0x47<<7 | 0x4F,
+ 39257 - 19968: jis0212<<14 | 0x47<<7 | 0x50,
+ 39259 - 19968: jis0212<<14 | 0x47<<7 | 0x51,
+ 39260 - 19968: jis0212<<14 | 0x47<<7 | 0x52,
+ 39262 - 19968: jis0212<<14 | 0x47<<7 | 0x53,
+ 39263 - 19968: jis0212<<14 | 0x47<<7 | 0x54,
+ 39264 - 19968: jis0212<<14 | 0x47<<7 | 0x55,
+ 39318 - 19968: jis0208<<14 | 0x1B<<7 | 0x52,
+ 39319 - 19968: jis0208<<14 | 0x50<<7 | 0x23,
+ 39320 - 19968: jis0208<<14 | 0x50<<7 | 0x24,
+ 39321 - 19968: jis0208<<14 | 0x18<<7 | 0x40,
+ 39323 - 19968: jis0212<<14 | 0x47<<7 | 0x56,
+ 39325 - 19968: jis0212<<14 | 0x47<<7 | 0x57,
+ 39326 - 19968: jis0208<<14 | 0x5B<<7 | 0x3F,
+ 39327 - 19968: jis0212<<14 | 0x47<<7 | 0x58,
+ 39333 - 19968: jis0208<<14 | 0x50<<7 | 0x25,
+ 39334 - 19968: jis0212<<14 | 0x47<<7 | 0x59,
+ 39336 - 19968: jis0208<<14 | 0x12<<7 | 0x1D,
+ 39340 - 19968: jis0208<<14 | 0x26<<7 | 0x2E,
+ 39341 - 19968: jis0208<<14 | 0x50<<7 | 0x26,
+ 39342 - 19968: jis0208<<14 | 0x50<<7 | 0x27,
+ 39344 - 19968: jis0212<<14 | 0x47<<7 | 0x5A,
+ 39345 - 19968: jis0212<<14 | 0x47<<7 | 0x5B,
+ 39346 - 19968: jis0212<<14 | 0x47<<7 | 0x5C,
+ 39347 - 19968: jis0208<<14 | 0x22<<7 | 0x39,
+ 39348 - 19968: jis0208<<14 | 0x25<<7 | 0x4A,
+ 39349 - 19968: jis0212<<14 | 0x47<<7 | 0x5D,
+ 39353 - 19968: jis0212<<14 | 0x48<<7 | 0x00,
+ 39354 - 19968: jis0212<<14 | 0x48<<7 | 0x01,
+ 39356 - 19968: jis0208<<14 | 0x50<<7 | 0x28,
+ 39357 - 19968: jis0212<<14 | 0x48<<7 | 0x02,
+ 39359 - 19968: jis0212<<14 | 0x48<<7 | 0x03,
+ 39361 - 19968: jis0208<<14 | 0x26<<7 | 0x5C,
+ 39363 - 19968: jis0212<<14 | 0x48<<7 | 0x04,
+ 39364 - 19968: jis0208<<14 | 0x21<<7 | 0x2B,
+ 39365 - 19968: jis0208<<14 | 0x10<<7 | 0x37,
+ 39366 - 19968: jis0208<<14 | 0x15<<7 | 0x4D,
+ 39368 - 19968: jis0208<<14 | 0x15<<7 | 0x4E,
+ 39369 - 19968: jis0212<<14 | 0x48<<7 | 0x05,
+ 39376 - 19968: jis0208<<14 | 0x22<<7 | 0x52,
+ 39377 - 19968: jis0208<<14 | 0x50<<7 | 0x2D,
+ 39378 - 19968: jis0208<<14 | 0x15<<7 | 0x4F,
+ 39379 - 19968: jis0212<<14 | 0x48<<7 | 0x06,
+ 39380 - 19968: jis0212<<14 | 0x48<<7 | 0x07,
+ 39381 - 19968: jis0208<<14 | 0x11<<7 | 0x4E,
+ 39384 - 19968: jis0208<<14 | 0x50<<7 | 0x2C,
+ 39385 - 19968: jis0212<<14 | 0x48<<7 | 0x08,
+ 39386 - 19968: jis0212<<14 | 0x48<<7 | 0x09,
+ 39387 - 19968: jis0208<<14 | 0x50<<7 | 0x2A,
+ 39388 - 19968: jis0212<<14 | 0x48<<7 | 0x0A,
+ 39389 - 19968: jis0208<<14 | 0x50<<7 | 0x2B,
+ 39390 - 19968: jis0212<<14 | 0x48<<7 | 0x0B,
+ 39391 - 19968: jis0208<<14 | 0x50<<7 | 0x29,
+ 39394 - 19968: jis0208<<14 | 0x50<<7 | 0x37,
+ 39399 - 19968: jis0212<<14 | 0x48<<7 | 0x0C,
+ 39402 - 19968: jis0212<<14 | 0x48<<7 | 0x0D,
+ 39403 - 19968: jis0212<<14 | 0x48<<7 | 0x0E,
+ 39404 - 19968: jis0212<<14 | 0x48<<7 | 0x0F,
+ 39405 - 19968: jis0208<<14 | 0x50<<7 | 0x2E,
+ 39406 - 19968: jis0208<<14 | 0x50<<7 | 0x2F,
+ 39408 - 19968: jis0212<<14 | 0x48<<7 | 0x10,
+ 39409 - 19968: jis0208<<14 | 0x50<<7 | 0x30,
+ 39410 - 19968: jis0208<<14 | 0x50<<7 | 0x31,
+ 39412 - 19968: jis0212<<14 | 0x48<<7 | 0x11,
+ 39413 - 19968: jis0212<<14 | 0x48<<7 | 0x12,
+ 39416 - 19968: jis0208<<14 | 0x50<<7 | 0x33,
+ 39417 - 19968: jis0212<<14 | 0x48<<7 | 0x13,
+ 39419 - 19968: jis0208<<14 | 0x50<<7 | 0x32,
+ 39421 - 19968: jis0212<<14 | 0x48<<7 | 0x14,
+ 39422 - 19968: jis0212<<14 | 0x48<<7 | 0x15,
+ 39423 - 19968: jis0208<<14 | 0x1C<<7 | 0x38,
+ 39425 - 19968: jis0208<<14 | 0x50<<7 | 0x34,
+ 39426 - 19968: jis0212<<14 | 0x48<<7 | 0x16,
+ 39427 - 19968: jis0212<<14 | 0x48<<7 | 0x17,
+ 39428 - 19968: jis0212<<14 | 0x48<<7 | 0x18,
+ 39429 - 19968: jis0208<<14 | 0x50<<7 | 0x36,
+ 39435 - 19968: jis0212<<14 | 0x48<<7 | 0x19,
+ 39436 - 19968: jis0212<<14 | 0x48<<7 | 0x1A,
+ 39438 - 19968: jis0208<<14 | 0x14<<7 | 0x12,
+ 39439 - 19968: jis0208<<14 | 0x50<<7 | 0x35,
+ 39440 - 19968: jis0212<<14 | 0x48<<7 | 0x1B,
+ 39441 - 19968: jis0212<<14 | 0x48<<7 | 0x1C,
+ 39442 - 19968: jis0208<<14 | 0x20<<7 | 0x5A,
+ 39443 - 19968: jis0208<<14 | 0x17<<7 | 0x12,
+ 39446 - 19968: jis0212<<14 | 0x48<<7 | 0x1D,
+ 39449 - 19968: jis0208<<14 | 0x50<<7 | 0x38,
+ 39454 - 19968: jis0212<<14 | 0x48<<7 | 0x1E,
+ 39456 - 19968: jis0212<<14 | 0x48<<7 | 0x1F,
+ 39458 - 19968: jis0212<<14 | 0x48<<7 | 0x20,
+ 39459 - 19968: jis0212<<14 | 0x48<<7 | 0x21,
+ 39460 - 19968: jis0212<<14 | 0x48<<7 | 0x22,
+ 39463 - 19968: jis0212<<14 | 0x48<<7 | 0x23,
+ 39464 - 19968: jis0208<<14 | 0x21<<7 | 0x2C,
+ 39467 - 19968: jis0208<<14 | 0x50<<7 | 0x39,
+ 39469 - 19968: jis0212<<14 | 0x48<<7 | 0x24,
+ 39470 - 19968: jis0212<<14 | 0x48<<7 | 0x25,
+ 39472 - 19968: jis0208<<14 | 0x25<<7 | 0x0C,
+ 39475 - 19968: jis0212<<14 | 0x48<<7 | 0x26,
+ 39477 - 19968: jis0212<<14 | 0x48<<7 | 0x27,
+ 39478 - 19968: jis0212<<14 | 0x48<<7 | 0x28,
+ 39479 - 19968: jis0208<<14 | 0x50<<7 | 0x3A,
+ 39480 - 19968: jis0212<<14 | 0x48<<7 | 0x29,
+ 39486 - 19968: jis0208<<14 | 0x50<<7 | 0x3F,
+ 39488 - 19968: jis0208<<14 | 0x50<<7 | 0x3D,
+ 39489 - 19968: jis0212<<14 | 0x48<<7 | 0x2B,
+ 39490 - 19968: jis0208<<14 | 0x50<<7 | 0x3C,
+ 39491 - 19968: jis0208<<14 | 0x50<<7 | 0x3E,
+ 39492 - 19968: jis0212<<14 | 0x48<<7 | 0x2C,
+ 39493 - 19968: jis0208<<14 | 0x50<<7 | 0x3B,
+ 39495 - 19968: jis0212<<14 | 0x48<<7 | 0x2A,
+ 39498 - 19968: jis0212<<14 | 0x48<<7 | 0x2D,
+ 39499 - 19968: jis0212<<14 | 0x48<<7 | 0x2E,
+ 39500 - 19968: jis0212<<14 | 0x48<<7 | 0x2F,
+ 39501 - 19968: jis0208<<14 | 0x50<<7 | 0x41,
+ 39502 - 19968: jis0208<<14 | 0x5B<<7 | 0x40,
+ 39505 - 19968: jis0212<<14 | 0x48<<7 | 0x31,
+ 39508 - 19968: jis0212<<14 | 0x48<<7 | 0x32,
+ 39509 - 19968: jis0208<<14 | 0x50<<7 | 0x40,
+ 39510 - 19968: jis0212<<14 | 0x48<<7 | 0x33,
+ 39511 - 19968: jis0208<<14 | 0x50<<7 | 0x43,
+ 39514 - 19968: jis0208<<14 | 0x15<<7 | 0x22,
+ 39515 - 19968: jis0208<<14 | 0x50<<7 | 0x42,
+ 39517 - 19968: jis0212<<14 | 0x48<<7 | 0x34,
+ 39519 - 19968: jis0208<<14 | 0x50<<7 | 0x44,
+ 39522 - 19968: jis0208<<14 | 0x50<<7 | 0x45,
+ 39524 - 19968: jis0208<<14 | 0x50<<7 | 0x47,
+ 39525 - 19968: jis0208<<14 | 0x50<<7 | 0x46,
+ 39529 - 19968: jis0208<<14 | 0x50<<7 | 0x48,
+ 39530 - 19968: jis0208<<14 | 0x50<<7 | 0x4A,
+ 39531 - 19968: jis0208<<14 | 0x50<<7 | 0x49,
+ 39592 - 19968: jis0208<<14 | 0x18<<7 | 0x5B,
+ 39594 - 19968: jis0212<<14 | 0x48<<7 | 0x35,
+ 39596 - 19968: jis0212<<14 | 0x48<<7 | 0x36,
+ 39597 - 19968: jis0208<<14 | 0x50<<7 | 0x4B,
+ 39598 - 19968: jis0212<<14 | 0x48<<7 | 0x37,
+ 39599 - 19968: jis0212<<14 | 0x48<<7 | 0x38,
+ 39600 - 19968: jis0208<<14 | 0x50<<7 | 0x4C,
+ 39602 - 19968: jis0212<<14 | 0x48<<7 | 0x39,
+ 39604 - 19968: jis0212<<14 | 0x48<<7 | 0x3A,
+ 39605 - 19968: jis0212<<14 | 0x48<<7 | 0x3B,
+ 39606 - 19968: jis0212<<14 | 0x48<<7 | 0x3C,
+ 39608 - 19968: jis0208<<14 | 0x12<<7 | 0x1B,
+ 39609 - 19968: jis0212<<14 | 0x48<<7 | 0x3D,
+ 39611 - 19968: jis0212<<14 | 0x48<<7 | 0x3E,
+ 39612 - 19968: jis0208<<14 | 0x50<<7 | 0x4D,
+ 39614 - 19968: jis0212<<14 | 0x48<<7 | 0x3F,
+ 39615 - 19968: jis0212<<14 | 0x48<<7 | 0x40,
+ 39616 - 19968: jis0208<<14 | 0x50<<7 | 0x4E,
+ 39617 - 19968: jis0212<<14 | 0x48<<7 | 0x41,
+ 39619 - 19968: jis0212<<14 | 0x48<<7 | 0x42,
+ 39620 - 19968: jis0208<<14 | 0x1E<<7 | 0x50,
+ 39622 - 19968: jis0212<<14 | 0x48<<7 | 0x43,
+ 39624 - 19968: jis0212<<14 | 0x48<<7 | 0x44,
+ 39630 - 19968: jis0212<<14 | 0x48<<7 | 0x45,
+ 39631 - 19968: jis0208<<14 | 0x50<<7 | 0x4F,
+ 39632 - 19968: jis0212<<14 | 0x48<<7 | 0x46,
+ 39633 - 19968: jis0208<<14 | 0x50<<7 | 0x50,
+ 39634 - 19968: jis0212<<14 | 0x48<<7 | 0x47,
+ 39635 - 19968: jis0208<<14 | 0x50<<7 | 0x51,
+ 39636 - 19968: jis0208<<14 | 0x50<<7 | 0x52,
+ 39637 - 19968: jis0212<<14 | 0x48<<7 | 0x48,
+ 39638 - 19968: jis0212<<14 | 0x48<<7 | 0x49,
+ 39639 - 19968: jis0212<<14 | 0x48<<7 | 0x4A,
+ 39640 - 19968: jis0208<<14 | 0x18<<7 | 0x41,
+ 39641 - 19968: jis0208<<14 | 0x5B<<7 | 0x41,
+ 39643 - 19968: jis0212<<14 | 0x48<<7 | 0x4B,
+ 39644 - 19968: jis0208<<14 | 0x5B<<7 | 0x42,
+ 39646 - 19968: jis0208<<14 | 0x50<<7 | 0x53,
+ 39647 - 19968: jis0208<<14 | 0x50<<7 | 0x54,
+ 39648 - 19968: jis0212<<14 | 0x48<<7 | 0x4D,
+ 39650 - 19968: jis0208<<14 | 0x50<<7 | 0x55,
+ 39651 - 19968: jis0208<<14 | 0x50<<7 | 0x56,
+ 39652 - 19968: jis0212<<14 | 0x48<<7 | 0x4E,
+ 39653 - 19968: jis0212<<14 | 0x48<<7 | 0x4F,
+ 39654 - 19968: jis0208<<14 | 0x50<<7 | 0x57,
+ 39655 - 19968: jis0212<<14 | 0x48<<7 | 0x50,
+ 39657 - 19968: jis0212<<14 | 0x48<<7 | 0x51,
+ 39658 - 19968: jis0208<<14 | 0x27<<7 | 0x10,
+ 39659 - 19968: jis0208<<14 | 0x50<<7 | 0x59,
+ 39660 - 19968: jis0212<<14 | 0x48<<7 | 0x52,
+ 39661 - 19968: jis0208<<14 | 0x28<<7 | 0x05,
+ 39662 - 19968: jis0208<<14 | 0x50<<7 | 0x5A,
+ 39663 - 19968: jis0208<<14 | 0x50<<7 | 0x58,
+ 39665 - 19968: jis0208<<14 | 0x50<<7 | 0x5C,
+ 39666 - 19968: jis0212<<14 | 0x48<<7 | 0x53,
+ 39667 - 19968: jis0212<<14 | 0x48<<7 | 0x54,
+ 39668 - 19968: jis0208<<14 | 0x50<<7 | 0x5B,
+ 39669 - 19968: jis0212<<14 | 0x48<<7 | 0x55,
+ 39671 - 19968: jis0208<<14 | 0x50<<7 | 0x5D,
+ 39673 - 19968: jis0212<<14 | 0x48<<7 | 0x56,
+ 39674 - 19968: jis0212<<14 | 0x48<<7 | 0x57,
+ 39675 - 19968: jis0208<<14 | 0x51<<7 | 0x00,
+ 39677 - 19968: jis0212<<14 | 0x48<<7 | 0x58,
+ 39679 - 19968: jis0212<<14 | 0x48<<7 | 0x59,
+ 39680 - 19968: jis0212<<14 | 0x48<<7 | 0x5A,
+ 39681 - 19968: jis0212<<14 | 0x48<<7 | 0x5B,
+ 39682 - 19968: jis0212<<14 | 0x48<<7 | 0x5C,
+ 39683 - 19968: jis0212<<14 | 0x48<<7 | 0x5D,
+ 39684 - 19968: jis0212<<14 | 0x49<<7 | 0x00,
+ 39685 - 19968: jis0212<<14 | 0x49<<7 | 0x01,
+ 39686 - 19968: jis0208<<14 | 0x51<<7 | 0x01,
+ 39688 - 19968: jis0212<<14 | 0x49<<7 | 0x02,
+ 39689 - 19968: jis0212<<14 | 0x49<<7 | 0x03,
+ 39691 - 19968: jis0212<<14 | 0x49<<7 | 0x04,
+ 39692 - 19968: jis0212<<14 | 0x49<<7 | 0x05,
+ 39693 - 19968: jis0212<<14 | 0x49<<7 | 0x06,
+ 39694 - 19968: jis0212<<14 | 0x49<<7 | 0x07,
+ 39696 - 19968: jis0212<<14 | 0x49<<7 | 0x08,
+ 39698 - 19968: jis0212<<14 | 0x49<<7 | 0x09,
+ 39702 - 19968: jis0212<<14 | 0x49<<7 | 0x0A,
+ 39704 - 19968: jis0208<<14 | 0x51<<7 | 0x02,
+ 39705 - 19968: jis0212<<14 | 0x49<<7 | 0x0B,
+ 39706 - 19968: jis0208<<14 | 0x51<<7 | 0x03,
+ 39707 - 19968: jis0212<<14 | 0x49<<7 | 0x0C,
+ 39708 - 19968: jis0212<<14 | 0x49<<7 | 0x0D,
+ 39711 - 19968: jis0208<<14 | 0x51<<7 | 0x04,
+ 39712 - 19968: jis0212<<14 | 0x49<<7 | 0x0E,
+ 39714 - 19968: jis0208<<14 | 0x51<<7 | 0x05,
+ 39715 - 19968: jis0208<<14 | 0x51<<7 | 0x06,
+ 39717 - 19968: jis0208<<14 | 0x51<<7 | 0x07,
+ 39718 - 19968: jis0212<<14 | 0x49<<7 | 0x0F,
+ 39719 - 19968: jis0208<<14 | 0x51<<7 | 0x08,
+ 39720 - 19968: jis0208<<14 | 0x51<<7 | 0x09,
+ 39721 - 19968: jis0208<<14 | 0x51<<7 | 0x0A,
+ 39722 - 19968: jis0208<<14 | 0x51<<7 | 0x0B,
+ 39723 - 19968: jis0212<<14 | 0x49<<7 | 0x10,
+ 39725 - 19968: jis0212<<14 | 0x49<<7 | 0x11,
+ 39726 - 19968: jis0208<<14 | 0x51<<7 | 0x0C,
+ 39727 - 19968: jis0208<<14 | 0x51<<7 | 0x0D,
+ 39729 - 19968: jis0208<<14 | 0x3C<<7 | 0x14,
+ 39730 - 19968: jis0208<<14 | 0x51<<7 | 0x0E,
+ 39731 - 19968: jis0212<<14 | 0x49<<7 | 0x12,
+ 39732 - 19968: jis0212<<14 | 0x49<<7 | 0x13,
+ 39733 - 19968: jis0212<<14 | 0x49<<7 | 0x14,
+ 39735 - 19968: jis0212<<14 | 0x49<<7 | 0x15,
+ 39737 - 19968: jis0212<<14 | 0x49<<7 | 0x16,
+ 39738 - 19968: jis0212<<14 | 0x49<<7 | 0x17,
+ 39739 - 19968: jis0208<<14 | 0x43<<7 | 0x57,
+ 39740 - 19968: jis0208<<14 | 0x14<<7 | 0x13,
+ 39741 - 19968: jis0212<<14 | 0x49<<7 | 0x18,
+ 39745 - 19968: jis0208<<14 | 0x12<<7 | 0x00,
+ 39746 - 19968: jis0208<<14 | 0x19<<7 | 0x11,
+ 39747 - 19968: jis0208<<14 | 0x51<<7 | 0x10,
+ 39748 - 19968: jis0208<<14 | 0x51<<7 | 0x0F,
+ 39749 - 19968: jis0208<<14 | 0x2B<<7 | 0x04,
+ 39752 - 19968: jis0212<<14 | 0x49<<7 | 0x19,
+ 39755 - 19968: jis0212<<14 | 0x49<<7 | 0x1A,
+ 39756 - 19968: jis0212<<14 | 0x49<<7 | 0x1B,
+ 39757 - 19968: jis0208<<14 | 0x51<<7 | 0x12,
+ 39758 - 19968: jis0208<<14 | 0x51<<7 | 0x13,
+ 39759 - 19968: jis0208<<14 | 0x51<<7 | 0x11,
+ 39761 - 19968: jis0208<<14 | 0x51<<7 | 0x14,
+ 39764 - 19968: jis0208<<14 | 0x2A<<7 | 0x41,
+ 39765 - 19968: jis0212<<14 | 0x49<<7 | 0x1C,
+ 39766 - 19968: jis0212<<14 | 0x49<<7 | 0x1D,
+ 39767 - 19968: jis0212<<14 | 0x49<<7 | 0x1E,
+ 39768 - 19968: jis0208<<14 | 0x51<<7 | 0x15,
+ 39770 - 19968: jis0208<<14 | 0x14<<7 | 0x5A,
+ 39771 - 19968: jis0212<<14 | 0x49<<7 | 0x1F,
+ 39774 - 19968: jis0212<<14 | 0x49<<7 | 0x20,
+ 39777 - 19968: jis0212<<14 | 0x49<<7 | 0x21,
+ 39779 - 19968: jis0212<<14 | 0x49<<7 | 0x22,
+ 39781 - 19968: jis0212<<14 | 0x49<<7 | 0x23,
+ 39782 - 19968: jis0212<<14 | 0x49<<7 | 0x24,
+ 39784 - 19968: jis0212<<14 | 0x49<<7 | 0x25,
+ 39786 - 19968: jis0212<<14 | 0x49<<7 | 0x26,
+ 39787 - 19968: jis0212<<14 | 0x49<<7 | 0x27,
+ 39788 - 19968: jis0212<<14 | 0x49<<7 | 0x28,
+ 39789 - 19968: jis0212<<14 | 0x49<<7 | 0x29,
+ 39790 - 19968: jis0212<<14 | 0x49<<7 | 0x2A,
+ 39791 - 19968: jis0208<<14 | 0x2E<<7 | 0x04,
+ 39794 - 19968: jis0208<<14 | 0x5B<<7 | 0x44,
+ 39795 - 19968: jis0212<<14 | 0x49<<7 | 0x2B,
+ 39796 - 19968: jis0208<<14 | 0x51<<7 | 0x16,
+ 39797 - 19968: jis0208<<14 | 0x5B<<7 | 0x43,
+ 39799 - 19968: jis0212<<14 | 0x49<<7 | 0x2D,
+ 39800 - 19968: jis0212<<14 | 0x49<<7 | 0x2E,
+ 39801 - 19968: jis0212<<14 | 0x49<<7 | 0x2F,
+ 39807 - 19968: jis0212<<14 | 0x49<<7 | 0x30,
+ 39808 - 19968: jis0212<<14 | 0x49<<7 | 0x31,
+ 39811 - 19968: jis0208<<14 | 0x51<<7 | 0x18,
+ 39812 - 19968: jis0212<<14 | 0x49<<7 | 0x32,
+ 39813 - 19968: jis0212<<14 | 0x49<<7 | 0x33,
+ 39814 - 19968: jis0212<<14 | 0x49<<7 | 0x34,
+ 39815 - 19968: jis0212<<14 | 0x49<<7 | 0x35,
+ 39817 - 19968: jis0212<<14 | 0x49<<7 | 0x36,
+ 39818 - 19968: jis0212<<14 | 0x49<<7 | 0x37,
+ 39819 - 19968: jis0212<<14 | 0x49<<7 | 0x38,
+ 39821 - 19968: jis0212<<14 | 0x49<<7 | 0x39,
+ 39822 - 19968: jis0208<<14 | 0x0F<<7 | 0x1D,
+ 39823 - 19968: jis0208<<14 | 0x5B<<7 | 0x45,
+ 39824 - 19968: jis0212<<14 | 0x49<<7 | 0x3B,
+ 39825 - 19968: jis0208<<14 | 0x51<<7 | 0x19,
+ 39826 - 19968: jis0208<<14 | 0x29<<7 | 0x0A,
+ 39827 - 19968: jis0208<<14 | 0x51<<7 | 0x17,
+ 39828 - 19968: jis0212<<14 | 0x49<<7 | 0x3C,
+ 39830 - 19968: jis0208<<14 | 0x51<<7 | 0x1A,
+ 39831 - 19968: jis0208<<14 | 0x51<<7 | 0x1B,
+ 39834 - 19968: jis0212<<14 | 0x49<<7 | 0x3D,
+ 39837 - 19968: jis0212<<14 | 0x49<<7 | 0x3E,
+ 39838 - 19968: jis0212<<14 | 0x49<<7 | 0x3F,
+ 39839 - 19968: jis0208<<14 | 0x51<<7 | 0x1C,
+ 39840 - 19968: jis0208<<14 | 0x51<<7 | 0x1D,
+ 39846 - 19968: jis0212<<14 | 0x49<<7 | 0x40,
+ 39847 - 19968: jis0212<<14 | 0x49<<7 | 0x41,
+ 39848 - 19968: jis0208<<14 | 0x51<<7 | 0x1E,
+ 39849 - 19968: jis0212<<14 | 0x49<<7 | 0x42,
+ 39850 - 19968: jis0208<<14 | 0x2A<<7 | 0x4D,
+ 39851 - 19968: jis0208<<14 | 0x1A<<7 | 0x0C,
+ 39852 - 19968: jis0212<<14 | 0x49<<7 | 0x43,
+ 39853 - 19968: jis0208<<14 | 0x19<<7 | 0x59,
+ 39854 - 19968: jis0208<<14 | 0x20<<7 | 0x0E,
+ 39856 - 19968: jis0212<<14 | 0x49<<7 | 0x44,
+ 39857 - 19968: jis0208<<14 | 0x5B<<7 | 0x46,
+ 39858 - 19968: jis0212<<14 | 0x49<<7 | 0x46,
+ 39860 - 19968: jis0208<<14 | 0x51<<7 | 0x1F,
+ 39863 - 19968: jis0212<<14 | 0x49<<7 | 0x47,
+ 39864 - 19968: jis0212<<14 | 0x49<<7 | 0x48,
+ 39865 - 19968: jis0208<<14 | 0x51<<7 | 0x22,
+ 39867 - 19968: jis0208<<14 | 0x5B<<7 | 0x47,
+ 39868 - 19968: jis0212<<14 | 0x49<<7 | 0x4A,
+ 39870 - 19968: jis0212<<14 | 0x49<<7 | 0x4B,
+ 39871 - 19968: jis0212<<14 | 0x49<<7 | 0x4C,
+ 39872 - 19968: jis0208<<14 | 0x51<<7 | 0x20,
+ 39873 - 19968: jis0212<<14 | 0x49<<7 | 0x4D,
+ 39878 - 19968: jis0208<<14 | 0x51<<7 | 0x23,
+ 39879 - 19968: jis0212<<14 | 0x49<<7 | 0x4E,
+ 39880 - 19968: jis0212<<14 | 0x49<<7 | 0x4F,
+ 39881 - 19968: jis0208<<14 | 0x17<<7 | 0x50,
+ 39882 - 19968: jis0208<<14 | 0x51<<7 | 0x21,
+ 39886 - 19968: jis0212<<14 | 0x49<<7 | 0x50,
+ 39887 - 19968: jis0208<<14 | 0x51<<7 | 0x24,
+ 39888 - 19968: jis0212<<14 | 0x49<<7 | 0x51,
+ 39889 - 19968: jis0208<<14 | 0x51<<7 | 0x25,
+ 39890 - 19968: jis0208<<14 | 0x51<<7 | 0x26,
+ 39892 - 19968: jis0208<<14 | 0x51<<7 | 0x2A,
+ 39894 - 19968: jis0208<<14 | 0x1A<<7 | 0x09,
+ 39895 - 19968: jis0212<<14 | 0x49<<7 | 0x52,
+ 39896 - 19968: jis0212<<14 | 0x49<<7 | 0x53,
+ 39899 - 19968: jis0208<<14 | 0x21<<7 | 0x43,
+ 39901 - 19968: jis0212<<14 | 0x49<<7 | 0x54,
+ 39903 - 19968: jis0212<<14 | 0x49<<7 | 0x55,
+ 39905 - 19968: jis0208<<14 | 0x51<<7 | 0x2B,
+ 39906 - 19968: jis0208<<14 | 0x51<<7 | 0x28,
+ 39907 - 19968: jis0208<<14 | 0x51<<7 | 0x27,
+ 39908 - 19968: jis0208<<14 | 0x51<<7 | 0x29,
+ 39909 - 19968: jis0212<<14 | 0x49<<7 | 0x56,
+ 39911 - 19968: jis0212<<14 | 0x49<<7 | 0x57,
+ 39912 - 19968: jis0208<<14 | 0x16<<7 | 0x3E,
+ 39914 - 19968: jis0212<<14 | 0x49<<7 | 0x58,
+ 39915 - 19968: jis0212<<14 | 0x49<<7 | 0x59,
+ 39919 - 19968: jis0212<<14 | 0x49<<7 | 0x5A,
+ 39920 - 19968: jis0208<<14 | 0x51<<7 | 0x2F,
+ 39921 - 19968: jis0208<<14 | 0x51<<7 | 0x2E,
+ 39922 - 19968: jis0208<<14 | 0x51<<7 | 0x2D,
+ 39923 - 19968: jis0212<<14 | 0x49<<7 | 0x5B,
+ 39925 - 19968: jis0208<<14 | 0x0F<<7 | 0x12,
+ 39927 - 19968: jis0212<<14 | 0x49<<7 | 0x5C,
+ 39928 - 19968: jis0212<<14 | 0x49<<7 | 0x5D,
+ 39929 - 19968: jis0212<<14 | 0x4A<<7 | 0x00,
+ 39930 - 19968: jis0212<<14 | 0x4A<<7 | 0x01,
+ 39933 - 19968: jis0212<<14 | 0x4A<<7 | 0x02,
+ 39935 - 19968: jis0212<<14 | 0x4A<<7 | 0x03,
+ 39936 - 19968: jis0208<<14 | 0x5B<<7 | 0x48,
+ 39938 - 19968: jis0212<<14 | 0x4A<<7 | 0x05,
+ 39940 - 19968: jis0208<<14 | 0x51<<7 | 0x39,
+ 39942 - 19968: jis0208<<14 | 0x51<<7 | 0x35,
+ 39944 - 19968: jis0208<<14 | 0x51<<7 | 0x36,
+ 39945 - 19968: jis0208<<14 | 0x51<<7 | 0x32,
+ 39946 - 19968: jis0208<<14 | 0x51<<7 | 0x38,
+ 39947 - 19968: jis0212<<14 | 0x4A<<7 | 0x06,
+ 39948 - 19968: jis0208<<14 | 0x51<<7 | 0x34,
+ 39949 - 19968: jis0208<<14 | 0x12<<7 | 0x41,
+ 39951 - 19968: jis0212<<14 | 0x4A<<7 | 0x07,
+ 39952 - 19968: jis0208<<14 | 0x2E<<7 | 0x2B,
+ 39953 - 19968: jis0212<<14 | 0x4A<<7 | 0x08,
+ 39954 - 19968: jis0208<<14 | 0x51<<7 | 0x37,
+ 39955 - 19968: jis0208<<14 | 0x51<<7 | 0x33,
+ 39956 - 19968: jis0208<<14 | 0x51<<7 | 0x31,
+ 39957 - 19968: jis0208<<14 | 0x51<<7 | 0x30,
+ 39958 - 19968: jis0212<<14 | 0x4A<<7 | 0x09,
+ 39960 - 19968: jis0212<<14 | 0x4A<<7 | 0x0A,
+ 39961 - 19968: jis0212<<14 | 0x4A<<7 | 0x0B,
+ 39962 - 19968: jis0212<<14 | 0x4A<<7 | 0x0C,
+ 39963 - 19968: jis0208<<14 | 0x51<<7 | 0x3B,
+ 39964 - 19968: jis0212<<14 | 0x4A<<7 | 0x0D,
+ 39966 - 19968: jis0212<<14 | 0x4A<<7 | 0x0E,
+ 39969 - 19968: jis0208<<14 | 0x51<<7 | 0x3E,
+ 39970 - 19968: jis0212<<14 | 0x4A<<7 | 0x0F,
+ 39971 - 19968: jis0212<<14 | 0x4A<<7 | 0x10,
+ 39972 - 19968: jis0208<<14 | 0x51<<7 | 0x3D,
+ 39973 - 19968: jis0208<<14 | 0x51<<7 | 0x3C,
+ 39974 - 19968: jis0212<<14 | 0x4A<<7 | 0x11,
+ 39975 - 19968: jis0212<<14 | 0x4A<<7 | 0x12,
+ 39976 - 19968: jis0212<<14 | 0x4A<<7 | 0x13,
+ 39977 - 19968: jis0212<<14 | 0x4A<<7 | 0x14,
+ 39978 - 19968: jis0212<<14 | 0x4A<<7 | 0x15,
+ 39981 - 19968: jis0208<<14 | 0x28<<7 | 0x28,
+ 39982 - 19968: jis0208<<14 | 0x51<<7 | 0x3A,
+ 39983 - 19968: jis0208<<14 | 0x0F<<7 | 0x52,
+ 39984 - 19968: jis0208<<14 | 0x51<<7 | 0x3F,
+ 39985 - 19968: jis0212<<14 | 0x4A<<7 | 0x16,
+ 39986 - 19968: jis0208<<14 | 0x51<<7 | 0x41,
+ 39989 - 19968: jis0212<<14 | 0x4A<<7 | 0x17,
+ 39990 - 19968: jis0212<<14 | 0x4A<<7 | 0x18,
+ 39991 - 19968: jis0212<<14 | 0x4A<<7 | 0x19,
+ 39993 - 19968: jis0208<<14 | 0x12<<7 | 0x4E,
+ 39994 - 19968: jis0208<<14 | 0x51<<7 | 0x2C,
+ 39995 - 19968: jis0208<<14 | 0x10<<7 | 0x16,
+ 39997 - 19968: jis0212<<14 | 0x4A<<7 | 0x1A,
+ 39998 - 19968: jis0208<<14 | 0x51<<7 | 0x43,
+ 40001 - 19968: jis0212<<14 | 0x4A<<7 | 0x1B,
+ 40003 - 19968: jis0212<<14 | 0x4A<<7 | 0x1C,
+ 40004 - 19968: jis0212<<14 | 0x4A<<7 | 0x1D,
+ 40005 - 19968: jis0212<<14 | 0x4A<<7 | 0x1E,
+ 40006 - 19968: jis0208<<14 | 0x51<<7 | 0x42,
+ 40007 - 19968: jis0208<<14 | 0x51<<7 | 0x40,
+ 40008 - 19968: jis0208<<14 | 0x22<<7 | 0x0C,
+ 40009 - 19968: jis0212<<14 | 0x4A<<7 | 0x1F,
+ 40010 - 19968: jis0212<<14 | 0x4A<<7 | 0x20,
+ 40014 - 19968: jis0212<<14 | 0x4A<<7 | 0x21,
+ 40015 - 19968: jis0212<<14 | 0x4A<<7 | 0x22,
+ 40016 - 19968: jis0212<<14 | 0x4A<<7 | 0x23,
+ 40018 - 19968: jis0208<<14 | 0x2A<<7 | 0x4F,
+ 40019 - 19968: jis0212<<14 | 0x4A<<7 | 0x24,
+ 40020 - 19968: jis0212<<14 | 0x4A<<7 | 0x25,
+ 40022 - 19968: jis0212<<14 | 0x4A<<7 | 0x26,
+ 40023 - 19968: jis0208<<14 | 0x2D<<7 | 0x39,
+ 40024 - 19968: jis0212<<14 | 0x4A<<7 | 0x27,
+ 40026 - 19968: jis0208<<14 | 0x51<<7 | 0x44,
+ 40027 - 19968: jis0212<<14 | 0x4A<<7 | 0x28,
+ 40028 - 19968: jis0212<<14 | 0x4A<<7 | 0x2F,
+ 40029 - 19968: jis0212<<14 | 0x4A<<7 | 0x29,
+ 40030 - 19968: jis0212<<14 | 0x4A<<7 | 0x2A,
+ 40031 - 19968: jis0212<<14 | 0x4A<<7 | 0x2B,
+ 40032 - 19968: jis0208<<14 | 0x51<<7 | 0x45,
+ 40035 - 19968: jis0212<<14 | 0x4A<<7 | 0x2C,
+ 40039 - 19968: jis0208<<14 | 0x51<<7 | 0x46,
+ 40040 - 19968: jis0212<<14 | 0x4A<<7 | 0x31,
+ 40041 - 19968: jis0212<<14 | 0x4A<<7 | 0x2D,
+ 40042 - 19968: jis0212<<14 | 0x4A<<7 | 0x2E,
+ 40043 - 19968: jis0212<<14 | 0x4A<<7 | 0x30,
+ 40046 - 19968: jis0212<<14 | 0x4A<<7 | 0x32,
+ 40048 - 19968: jis0212<<14 | 0x4A<<7 | 0x33,
+ 40050 - 19968: jis0212<<14 | 0x4A<<7 | 0x34,
+ 40053 - 19968: jis0212<<14 | 0x4A<<7 | 0x35,
+ 40054 - 19968: jis0208<<14 | 0x51<<7 | 0x47,
+ 40055 - 19968: jis0212<<14 | 0x4A<<7 | 0x36,
+ 40056 - 19968: jis0208<<14 | 0x51<<7 | 0x48,
+ 40059 - 19968: jis0212<<14 | 0x4A<<7 | 0x37,
+ 40165 - 19968: jis0208<<14 | 0x23<<7 | 0x1A,
+ 40166 - 19968: jis0212<<14 | 0x4A<<7 | 0x38,
+ 40167 - 19968: jis0208<<14 | 0x51<<7 | 0x49,
+ 40169 - 19968: jis0208<<14 | 0x27<<7 | 0x16,
+ 40171 - 19968: jis0208<<14 | 0x51<<7 | 0x4E,
+ 40172 - 19968: jis0208<<14 | 0x51<<7 | 0x4A,
+ 40176 - 19968: jis0208<<14 | 0x51<<7 | 0x4B,
+ 40178 - 19968: jis0212<<14 | 0x4A<<7 | 0x39,
+ 40179 - 19968: jis0208<<14 | 0x2A<<7 | 0x10,
+ 40180 - 19968: jis0208<<14 | 0x2B<<7 | 0x23,
+ 40182 - 19968: jis0208<<14 | 0x25<<7 | 0x2F,
+ 40183 - 19968: jis0212<<14 | 0x4A<<7 | 0x3A,
+ 40185 - 19968: jis0212<<14 | 0x4A<<7 | 0x3B,
+ 40194 - 19968: jis0212<<14 | 0x4A<<7 | 0x3D,
+ 40195 - 19968: jis0208<<14 | 0x51<<7 | 0x4F,
+ 40198 - 19968: jis0208<<14 | 0x51<<7 | 0x50,
+ 40199 - 19968: jis0208<<14 | 0x25<<7 | 0x1D,
+ 40200 - 19968: jis0208<<14 | 0x51<<7 | 0x4D,
+ 40201 - 19968: jis0208<<14 | 0x51<<7 | 0x4C,
+ 40203 - 19968: jis0212<<14 | 0x4A<<7 | 0x3C,
+ 40206 - 19968: jis0208<<14 | 0x11<<7 | 0x09,
+ 40209 - 19968: jis0212<<14 | 0x4A<<7 | 0x3E,
+ 40210 - 19968: jis0208<<14 | 0x51<<7 | 0x58,
+ 40213 - 19968: jis0208<<14 | 0x51<<7 | 0x57,
+ 40215 - 19968: jis0212<<14 | 0x4A<<7 | 0x3F,
+ 40216 - 19968: jis0212<<14 | 0x4A<<7 | 0x40,
+ 40219 - 19968: jis0208<<14 | 0x10<<7 | 0x54,
+ 40220 - 19968: jis0212<<14 | 0x4A<<7 | 0x41,
+ 40221 - 19968: jis0212<<14 | 0x4A<<7 | 0x42,
+ 40222 - 19968: jis0212<<14 | 0x4A<<7 | 0x43,
+ 40223 - 19968: jis0208<<14 | 0x51<<7 | 0x55,
+ 40227 - 19968: jis0208<<14 | 0x51<<7 | 0x54,
+ 40230 - 19968: jis0208<<14 | 0x51<<7 | 0x52,
+ 40232 - 19968: jis0208<<14 | 0x12<<7 | 0x5A,
+ 40234 - 19968: jis0208<<14 | 0x51<<7 | 0x51,
+ 40235 - 19968: jis0208<<14 | 0x1B<<7 | 0x11,
+ 40236 - 19968: jis0208<<14 | 0x11<<7 | 0x08,
+ 40239 - 19968: jis0212<<14 | 0x4A<<7 | 0x44,
+ 40240 - 19968: jis0212<<14 | 0x4A<<7 | 0x45,
+ 40242 - 19968: jis0212<<14 | 0x4A<<7 | 0x46,
+ 40243 - 19968: jis0212<<14 | 0x4A<<7 | 0x47,
+ 40244 - 19968: jis0212<<14 | 0x4A<<7 | 0x48,
+ 40250 - 19968: jis0212<<14 | 0x4A<<7 | 0x49,
+ 40251 - 19968: jis0208<<14 | 0x18<<7 | 0x42,
+ 40252 - 19968: jis0212<<14 | 0x4A<<7 | 0x4A,
+ 40253 - 19968: jis0212<<14 | 0x4A<<7 | 0x4C,
+ 40254 - 19968: jis0208<<14 | 0x51<<7 | 0x5B,
+ 40255 - 19968: jis0208<<14 | 0x51<<7 | 0x5A,
+ 40257 - 19968: jis0208<<14 | 0x51<<7 | 0x59,
+ 40258 - 19968: jis0212<<14 | 0x4A<<7 | 0x4D,
+ 40259 - 19968: jis0212<<14 | 0x4A<<7 | 0x4E,
+ 40260 - 19968: jis0208<<14 | 0x51<<7 | 0x56,
+ 40261 - 19968: jis0212<<14 | 0x4A<<7 | 0x4B,
+ 40262 - 19968: jis0208<<14 | 0x51<<7 | 0x5C,
+ 40263 - 19968: jis0212<<14 | 0x4A<<7 | 0x4F,
+ 40264 - 19968: jis0208<<14 | 0x51<<7 | 0x5D,
+ 40266 - 19968: jis0212<<14 | 0x4A<<7 | 0x50,
+ 40272 - 19968: jis0208<<14 | 0x52<<7 | 0x04,
+ 40273 - 19968: jis0208<<14 | 0x52<<7 | 0x03,
+ 40275 - 19968: jis0212<<14 | 0x4A<<7 | 0x51,
+ 40276 - 19968: jis0212<<14 | 0x4A<<7 | 0x52,
+ 40281 - 19968: jis0208<<14 | 0x52<<7 | 0x05,
+ 40284 - 19968: jis0208<<14 | 0x10<<7 | 0x0C,
+ 40285 - 19968: jis0208<<14 | 0x52<<7 | 0x00,
+ 40286 - 19968: jis0208<<14 | 0x52<<7 | 0x01,
+ 40287 - 19968: jis0212<<14 | 0x4A<<7 | 0x53,
+ 40288 - 19968: jis0208<<14 | 0x18<<7 | 0x53,
+ 40289 - 19968: jis0208<<14 | 0x2B<<7 | 0x18,
+ 40290 - 19968: jis0212<<14 | 0x4A<<7 | 0x55,
+ 40291 - 19968: jis0212<<14 | 0x4A<<7 | 0x54,
+ 40292 - 19968: jis0208<<14 | 0x52<<7 | 0x02,
+ 40293 - 19968: jis0212<<14 | 0x4A<<7 | 0x56,
+ 40297 - 19968: jis0212<<14 | 0x4A<<7 | 0x57,
+ 40298 - 19968: jis0212<<14 | 0x4A<<7 | 0x58,
+ 40299 - 19968: jis0208<<14 | 0x5B<<7 | 0x4A,
+ 40300 - 19968: jis0208<<14 | 0x2A<<7 | 0x11,
+ 40303 - 19968: jis0208<<14 | 0x52<<7 | 0x0A,
+ 40304 - 19968: jis0208<<14 | 0x5B<<7 | 0x49,
+ 40306 - 19968: jis0208<<14 | 0x52<<7 | 0x06,
+ 40310 - 19968: jis0212<<14 | 0x4A<<7 | 0x5B,
+ 40311 - 19968: jis0212<<14 | 0x4A<<7 | 0x5C,
+ 40314 - 19968: jis0208<<14 | 0x52<<7 | 0x0B,
+ 40315 - 19968: jis0212<<14 | 0x4A<<7 | 0x5D,
+ 40316 - 19968: jis0212<<14 | 0x4B<<7 | 0x00,
+ 40318 - 19968: jis0212<<14 | 0x4B<<7 | 0x01,
+ 40323 - 19968: jis0212<<14 | 0x4B<<7 | 0x02,
+ 40324 - 19968: jis0212<<14 | 0x4B<<7 | 0x03,
+ 40326 - 19968: jis0212<<14 | 0x4B<<7 | 0x04,
+ 40327 - 19968: jis0208<<14 | 0x52<<7 | 0x08,
+ 40329 - 19968: jis0208<<14 | 0x52<<7 | 0x07,
+ 40330 - 19968: jis0212<<14 | 0x4B<<7 | 0x05,
+ 40333 - 19968: jis0212<<14 | 0x4B<<7 | 0x06,
+ 40334 - 19968: jis0212<<14 | 0x4B<<7 | 0x07,
+ 40335 - 19968: jis0208<<14 | 0x16<<7 | 0x3B,
+ 40338 - 19968: jis0212<<14 | 0x4B<<7 | 0x08,
+ 40339 - 19968: jis0212<<14 | 0x4B<<7 | 0x09,
+ 40341 - 19968: jis0212<<14 | 0x4B<<7 | 0x0A,
+ 40342 - 19968: jis0212<<14 | 0x4B<<7 | 0x0B,
+ 40343 - 19968: jis0212<<14 | 0x4B<<7 | 0x0C,
+ 40344 - 19968: jis0212<<14 | 0x4B<<7 | 0x0D,
+ 40346 - 19968: jis0208<<14 | 0x52<<7 | 0x0C,
+ 40353 - 19968: jis0212<<14 | 0x4B<<7 | 0x0E,
+ 40356 - 19968: jis0208<<14 | 0x52<<7 | 0x0D,
+ 40361 - 19968: jis0208<<14 | 0x52<<7 | 0x0E,
+ 40362 - 19968: jis0212<<14 | 0x4B<<7 | 0x0F,
+ 40363 - 19968: jis0208<<14 | 0x52<<7 | 0x09,
+ 40364 - 19968: jis0212<<14 | 0x4B<<7 | 0x10,
+ 40366 - 19968: jis0212<<14 | 0x4B<<7 | 0x11,
+ 40367 - 19968: jis0208<<14 | 0x51<<7 | 0x53,
+ 40369 - 19968: jis0212<<14 | 0x4B<<7 | 0x12,
+ 40370 - 19968: jis0208<<14 | 0x52<<7 | 0x0F,
+ 40372 - 19968: jis0208<<14 | 0x23<<7 | 0x40,
+ 40373 - 19968: jis0212<<14 | 0x4B<<7 | 0x13,
+ 40376 - 19968: jis0208<<14 | 0x52<<7 | 0x13,
+ 40377 - 19968: jis0212<<14 | 0x4B<<7 | 0x14,
+ 40378 - 19968: jis0208<<14 | 0x52<<7 | 0x14,
+ 40379 - 19968: jis0208<<14 | 0x52<<7 | 0x12,
+ 40380 - 19968: jis0212<<14 | 0x4B<<7 | 0x15,
+ 40383 - 19968: jis0212<<14 | 0x4B<<7 | 0x16,
+ 40385 - 19968: jis0208<<14 | 0x52<<7 | 0x11,
+ 40386 - 19968: jis0208<<14 | 0x52<<7 | 0x17,
+ 40387 - 19968: jis0212<<14 | 0x4B<<7 | 0x17,
+ 40388 - 19968: jis0208<<14 | 0x52<<7 | 0x10,
+ 40390 - 19968: jis0208<<14 | 0x52<<7 | 0x15,
+ 40391 - 19968: jis0212<<14 | 0x4B<<7 | 0x18,
+ 40393 - 19968: jis0212<<14 | 0x4B<<7 | 0x19,
+ 40394 - 19968: jis0212<<14 | 0x4B<<7 | 0x1A,
+ 40399 - 19968: jis0208<<14 | 0x52<<7 | 0x16,
+ 40403 - 19968: jis0208<<14 | 0x52<<7 | 0x19,
+ 40404 - 19968: jis0212<<14 | 0x4B<<7 | 0x1B,
+ 40405 - 19968: jis0212<<14 | 0x4B<<7 | 0x1C,
+ 40406 - 19968: jis0212<<14 | 0x4B<<7 | 0x1D,
+ 40407 - 19968: jis0212<<14 | 0x4B<<7 | 0x1E,
+ 40409 - 19968: jis0208<<14 | 0x52<<7 | 0x18,
+ 40410 - 19968: jis0212<<14 | 0x4B<<7 | 0x1F,
+ 40414 - 19968: jis0212<<14 | 0x4B<<7 | 0x20,
+ 40415 - 19968: jis0212<<14 | 0x4B<<7 | 0x21,
+ 40416 - 19968: jis0212<<14 | 0x4B<<7 | 0x22,
+ 40421 - 19968: jis0212<<14 | 0x4B<<7 | 0x23,
+ 40422 - 19968: jis0208<<14 | 0x52<<7 | 0x1B,
+ 40423 - 19968: jis0212<<14 | 0x4B<<7 | 0x24,
+ 40425 - 19968: jis0212<<14 | 0x4B<<7 | 0x25,
+ 40427 - 19968: jis0212<<14 | 0x4B<<7 | 0x26,
+ 40429 - 19968: jis0208<<14 | 0x52<<7 | 0x1C,
+ 40430 - 19968: jis0212<<14 | 0x4B<<7 | 0x27,
+ 40431 - 19968: jis0208<<14 | 0x52<<7 | 0x1D,
+ 40432 - 19968: jis0212<<14 | 0x4B<<7 | 0x28,
+ 40434 - 19968: jis0208<<14 | 0x2E<<7 | 0x28,
+ 40435 - 19968: jis0212<<14 | 0x4B<<7 | 0x29,
+ 40436 - 19968: jis0212<<14 | 0x4B<<7 | 0x2A,
+ 40440 - 19968: jis0208<<14 | 0x52<<7 | 0x1A,
+ 40441 - 19968: jis0208<<14 | 0x21<<7 | 0x4A,
+ 40442 - 19968: jis0208<<14 | 0x19<<7 | 0x4C,
+ 40445 - 19968: jis0208<<14 | 0x52<<7 | 0x1E,
+ 40446 - 19968: jis0212<<14 | 0x4B<<7 | 0x2B,
+ 40450 - 19968: jis0212<<14 | 0x4B<<7 | 0x2D,
+ 40455 - 19968: jis0212<<14 | 0x4B<<7 | 0x2E,
+ 40458 - 19968: jis0212<<14 | 0x4B<<7 | 0x2C,
+ 40462 - 19968: jis0212<<14 | 0x4B<<7 | 0x2F,
+ 40464 - 19968: jis0212<<14 | 0x4B<<7 | 0x30,
+ 40465 - 19968: jis0212<<14 | 0x4B<<7 | 0x31,
+ 40466 - 19968: jis0212<<14 | 0x4B<<7 | 0x32,
+ 40469 - 19968: jis0212<<14 | 0x4B<<7 | 0x33,
+ 40470 - 19968: jis0212<<14 | 0x4B<<7 | 0x34,
+ 40473 - 19968: jis0208<<14 | 0x5B<<7 | 0x4C,
+ 40474 - 19968: jis0208<<14 | 0x52<<7 | 0x1F,
+ 40475 - 19968: jis0208<<14 | 0x52<<7 | 0x20,
+ 40476 - 19968: jis0212<<14 | 0x4B<<7 | 0x36,
+ 40477 - 19968: jis0212<<14 | 0x4B<<7 | 0x37,
+ 40478 - 19968: jis0208<<14 | 0x52<<7 | 0x21,
+ 40565 - 19968: jis0208<<14 | 0x52<<7 | 0x22,
+ 40568 - 19968: jis0208<<14 | 0x17<<7 | 0x13,
+ 40569 - 19968: jis0208<<14 | 0x52<<7 | 0x23,
+ 40570 - 19968: jis0212<<14 | 0x4B<<7 | 0x38,
+ 40571 - 19968: jis0212<<14 | 0x4B<<7 | 0x39,
+ 40572 - 19968: jis0212<<14 | 0x4B<<7 | 0x3A,
+ 40573 - 19968: jis0208<<14 | 0x52<<7 | 0x24,
+ 40575 - 19968: jis0208<<14 | 0x1B<<7 | 0x0E,
+ 40576 - 19968: jis0212<<14 | 0x4B<<7 | 0x3B,
+ 40577 - 19968: jis0208<<14 | 0x52<<7 | 0x25,
+ 40578 - 19968: jis0212<<14 | 0x4B<<7 | 0x3C,
+ 40579 - 19968: jis0212<<14 | 0x4B<<7 | 0x3D,
+ 40580 - 19968: jis0212<<14 | 0x4B<<7 | 0x3E,
+ 40581 - 19968: jis0212<<14 | 0x4B<<7 | 0x3F,
+ 40583 - 19968: jis0212<<14 | 0x4B<<7 | 0x40,
+ 40584 - 19968: jis0208<<14 | 0x52<<7 | 0x26,
+ 40587 - 19968: jis0208<<14 | 0x52<<7 | 0x27,
+ 40588 - 19968: jis0208<<14 | 0x52<<7 | 0x28,
+ 40590 - 19968: jis0212<<14 | 0x4B<<7 | 0x41,
+ 40591 - 19968: jis0212<<14 | 0x4B<<7 | 0x42,
+ 40593 - 19968: jis0208<<14 | 0x52<<7 | 0x2B,
+ 40594 - 19968: jis0208<<14 | 0x52<<7 | 0x29,
+ 40595 - 19968: jis0208<<14 | 0x2E<<7 | 0x1B,
+ 40597 - 19968: jis0208<<14 | 0x52<<7 | 0x2A,
+ 40598 - 19968: jis0212<<14 | 0x4B<<7 | 0x43,
+ 40599 - 19968: jis0208<<14 | 0x2D<<7 | 0x4E,
+ 40600 - 19968: jis0212<<14 | 0x4B<<7 | 0x44,
+ 40603 - 19968: jis0212<<14 | 0x4B<<7 | 0x45,
+ 40605 - 19968: jis0208<<14 | 0x52<<7 | 0x2C,
+ 40606 - 19968: jis0212<<14 | 0x4B<<7 | 0x46,
+ 40607 - 19968: jis0208<<14 | 0x2D<<7 | 0x3A,
+ 40612 - 19968: jis0212<<14 | 0x4B<<7 | 0x47,
+ 40613 - 19968: jis0208<<14 | 0x52<<7 | 0x2D,
+ 40614 - 19968: jis0208<<14 | 0x26<<7 | 0x5D,
+ 40616 - 19968: jis0212<<14 | 0x4B<<7 | 0x48,
+ 40617 - 19968: jis0208<<14 | 0x52<<7 | 0x2E,
+ 40618 - 19968: jis0208<<14 | 0x52<<7 | 0x30,
+ 40620 - 19968: jis0212<<14 | 0x4B<<7 | 0x49,
+ 40621 - 19968: jis0208<<14 | 0x52<<7 | 0x31,
+ 40622 - 19968: jis0212<<14 | 0x4B<<7 | 0x4A,
+ 40623 - 19968: jis0212<<14 | 0x4B<<7 | 0x4B,
+ 40624 - 19968: jis0212<<14 | 0x4B<<7 | 0x4C,
+ 40627 - 19968: jis0212<<14 | 0x4B<<7 | 0x4D,
+ 40628 - 19968: jis0212<<14 | 0x4B<<7 | 0x4E,
+ 40629 - 19968: jis0212<<14 | 0x4B<<7 | 0x4F,
+ 40632 - 19968: jis0208<<14 | 0x52<<7 | 0x2F,
+ 40633 - 19968: jis0208<<14 | 0x18<<7 | 0x4C,
+ 40634 - 19968: jis0208<<14 | 0x2B<<7 | 0x2C,
+ 40635 - 19968: jis0208<<14 | 0x2A<<7 | 0x42,
+ 40636 - 19968: jis0208<<14 | 0x35<<7 | 0x56,
+ 40638 - 19968: jis0208<<14 | 0x3C<<7 | 0x3F,
+ 40639 - 19968: jis0208<<14 | 0x2A<<7 | 0x5A,
+ 40644 - 19968: jis0208<<14 | 0x11<<7 | 0x0A,
+ 40646 - 19968: jis0212<<14 | 0x4B<<7 | 0x50,
+ 40648 - 19968: jis0212<<14 | 0x4B<<7 | 0x51,
+ 40651 - 19968: jis0212<<14 | 0x4B<<7 | 0x52,
+ 40652 - 19968: jis0208<<14 | 0x52<<7 | 0x33,
+ 40653 - 19968: jis0208<<14 | 0x14<<7 | 0x2F,
+ 40654 - 19968: jis0208<<14 | 0x52<<7 | 0x34,
+ 40655 - 19968: jis0208<<14 | 0x52<<7 | 0x35,
+ 40656 - 19968: jis0208<<14 | 0x52<<7 | 0x36,
+ 40657 - 19968: jis0208<<14 | 0x5B<<7 | 0x4D,
+ 40658 - 19968: jis0208<<14 | 0x18<<7 | 0x54,
+ 40660 - 19968: jis0208<<14 | 0x52<<7 | 0x37,
+ 40661 - 19968: jis0212<<14 | 0x4B<<7 | 0x53,
+ 40664 - 19968: jis0208<<14 | 0x3F<<7 | 0x33,
+ 40665 - 19968: jis0208<<14 | 0x2B<<7 | 0x3A,
+ 40667 - 19968: jis0208<<14 | 0x21<<7 | 0x42,
+ 40668 - 19968: jis0208<<14 | 0x52<<7 | 0x38,
+ 40669 - 19968: jis0208<<14 | 0x52<<7 | 0x3A,
+ 40670 - 19968: jis0208<<14 | 0x52<<7 | 0x39,
+ 40671 - 19968: jis0212<<14 | 0x4B<<7 | 0x54,
+ 40672 - 19968: jis0208<<14 | 0x52<<7 | 0x3B,
+ 40676 - 19968: jis0212<<14 | 0x4B<<7 | 0x55,
+ 40677 - 19968: jis0208<<14 | 0x52<<7 | 0x3C,
+ 40679 - 19968: jis0212<<14 | 0x4B<<7 | 0x56,
+ 40680 - 19968: jis0208<<14 | 0x52<<7 | 0x3D,
+ 40684 - 19968: jis0212<<14 | 0x4B<<7 | 0x57,
+ 40685 - 19968: jis0212<<14 | 0x4B<<7 | 0x58,
+ 40686 - 19968: jis0212<<14 | 0x4B<<7 | 0x59,
+ 40687 - 19968: jis0208<<14 | 0x52<<7 | 0x3E,
+ 40688 - 19968: jis0212<<14 | 0x4B<<7 | 0x5A,
+ 40689 - 19968: jis0212<<14 | 0x4B<<7 | 0x5B,
+ 40690 - 19968: jis0212<<14 | 0x4B<<7 | 0x5C,
+ 40692 - 19968: jis0208<<14 | 0x52<<7 | 0x3F,
+ 40693 - 19968: jis0212<<14 | 0x4B<<7 | 0x5D,
+ 40694 - 19968: jis0208<<14 | 0x52<<7 | 0x40,
+ 40695 - 19968: jis0208<<14 | 0x52<<7 | 0x41,
+ 40696 - 19968: jis0212<<14 | 0x4C<<7 | 0x00,
+ 40697 - 19968: jis0208<<14 | 0x52<<7 | 0x42,
+ 40699 - 19968: jis0208<<14 | 0x52<<7 | 0x43,
+ 40700 - 19968: jis0208<<14 | 0x52<<7 | 0x44,
+ 40701 - 19968: jis0208<<14 | 0x52<<7 | 0x45,
+ 40703 - 19968: jis0212<<14 | 0x4C<<7 | 0x01,
+ 40706 - 19968: jis0212<<14 | 0x4C<<7 | 0x02,
+ 40707 - 19968: jis0212<<14 | 0x4C<<7 | 0x03,
+ 40711 - 19968: jis0208<<14 | 0x52<<7 | 0x46,
+ 40712 - 19968: jis0208<<14 | 0x52<<7 | 0x47,
+ 40713 - 19968: jis0212<<14 | 0x4C<<7 | 0x04,
+ 40718 - 19968: jis0208<<14 | 0x24<<7 | 0x03,
+ 40719 - 19968: jis0212<<14 | 0x4C<<7 | 0x05,
+ 40720 - 19968: jis0212<<14 | 0x4C<<7 | 0x06,
+ 40721 - 19968: jis0212<<14 | 0x4C<<7 | 0x07,
+ 40722 - 19968: jis0212<<14 | 0x4C<<7 | 0x08,
+ 40723 - 19968: jis0208<<14 | 0x17<<7 | 0x3C,
+ 40724 - 19968: jis0212<<14 | 0x4C<<7 | 0x09,
+ 40725 - 19968: jis0208<<14 | 0x52<<7 | 0x49,
+ 40726 - 19968: jis0212<<14 | 0x4C<<7 | 0x0A,
+ 40727 - 19968: jis0212<<14 | 0x4C<<7 | 0x0B,
+ 40729 - 19968: jis0212<<14 | 0x4C<<7 | 0x0C,
+ 40730 - 19968: jis0212<<14 | 0x4C<<7 | 0x0D,
+ 40731 - 19968: jis0212<<14 | 0x4C<<7 | 0x0E,
+ 40735 - 19968: jis0212<<14 | 0x4C<<7 | 0x0F,
+ 40736 - 19968: jis0208<<14 | 0x20<<7 | 0x2C,
+ 40737 - 19968: jis0208<<14 | 0x52<<7 | 0x4A,
+ 40738 - 19968: jis0212<<14 | 0x4C<<7 | 0x10,
+ 40742 - 19968: jis0212<<14 | 0x4C<<7 | 0x11,
+ 40746 - 19968: jis0212<<14 | 0x4C<<7 | 0x12,
+ 40747 - 19968: jis0212<<14 | 0x4C<<7 | 0x13,
+ 40748 - 19968: jis0208<<14 | 0x52<<7 | 0x4B,
+ 40751 - 19968: jis0212<<14 | 0x4C<<7 | 0x14,
+ 40753 - 19968: jis0212<<14 | 0x4C<<7 | 0x15,
+ 40754 - 19968: jis0212<<14 | 0x4C<<7 | 0x16,
+ 40756 - 19968: jis0212<<14 | 0x4C<<7 | 0x17,
+ 40759 - 19968: jis0212<<14 | 0x4C<<7 | 0x18,
+ 40761 - 19968: jis0212<<14 | 0x4C<<7 | 0x19,
+ 40762 - 19968: jis0212<<14 | 0x4C<<7 | 0x1A,
+ 40763 - 19968: jis0208<<14 | 0x28<<7 | 0x00,
+ 40764 - 19968: jis0212<<14 | 0x4C<<7 | 0x1B,
+ 40765 - 19968: jis0212<<14 | 0x4C<<7 | 0x1C,
+ 40766 - 19968: jis0208<<14 | 0x52<<7 | 0x4C,
+ 40767 - 19968: jis0212<<14 | 0x4C<<7 | 0x1D,
+ 40769 - 19968: jis0212<<14 | 0x4C<<7 | 0x1E,
+ 40771 - 19968: jis0212<<14 | 0x4C<<7 | 0x1F,
+ 40772 - 19968: jis0212<<14 | 0x4C<<7 | 0x20,
+ 40773 - 19968: jis0212<<14 | 0x4C<<7 | 0x21,
+ 40774 - 19968: jis0212<<14 | 0x4C<<7 | 0x22,
+ 40775 - 19968: jis0212<<14 | 0x4C<<7 | 0x23,
+ 40778 - 19968: jis0208<<14 | 0x52<<7 | 0x4D,
+ 40779 - 19968: jis0208<<14 | 0x42<<7 | 0x16,
+ 40782 - 19968: jis0208<<14 | 0x4B<<7 | 0x39,
+ 40783 - 19968: jis0208<<14 | 0x4F<<7 | 0x4C,
+ 40786 - 19968: jis0208<<14 | 0x52<<7 | 0x4E,
+ 40787 - 19968: jis0212<<14 | 0x4C<<7 | 0x24,
+ 40788 - 19968: jis0208<<14 | 0x52<<7 | 0x4F,
+ 40789 - 19968: jis0212<<14 | 0x4C<<7 | 0x25,
+ 40790 - 19968: jis0212<<14 | 0x4C<<7 | 0x26,
+ 40791 - 19968: jis0212<<14 | 0x4C<<7 | 0x27,
+ 40792 - 19968: jis0212<<14 | 0x4C<<7 | 0x28,
+ 40794 - 19968: jis0212<<14 | 0x4C<<7 | 0x29,
+ 40797 - 19968: jis0212<<14 | 0x4C<<7 | 0x2A,
+ 40798 - 19968: jis0212<<14 | 0x4C<<7 | 0x2B,
+ 40799 - 19968: jis0208<<14 | 0x52<<7 | 0x51,
+ 40800 - 19968: jis0208<<14 | 0x52<<7 | 0x52,
+ 40801 - 19968: jis0208<<14 | 0x52<<7 | 0x53,
+ 40802 - 19968: jis0208<<14 | 0x2D<<7 | 0x4F,
+ 40803 - 19968: jis0208<<14 | 0x52<<7 | 0x50,
+ 40806 - 19968: jis0208<<14 | 0x52<<7 | 0x54,
+ 40807 - 19968: jis0208<<14 | 0x52<<7 | 0x55,
+ 40808 - 19968: jis0212<<14 | 0x4C<<7 | 0x2C,
+ 40809 - 19968: jis0212<<14 | 0x4C<<7 | 0x2D,
+ 40810 - 19968: jis0208<<14 | 0x52<<7 | 0x57,
+ 40812 - 19968: jis0208<<14 | 0x52<<7 | 0x56,
+ 40813 - 19968: jis0212<<14 | 0x4C<<7 | 0x2E,
+ 40814 - 19968: jis0212<<14 | 0x4C<<7 | 0x2F,
+ 40815 - 19968: jis0212<<14 | 0x4C<<7 | 0x30,
+ 40816 - 19968: jis0212<<14 | 0x4C<<7 | 0x31,
+ 40817 - 19968: jis0212<<14 | 0x4C<<7 | 0x32,
+ 40818 - 19968: jis0208<<14 | 0x52<<7 | 0x59,
+ 40819 - 19968: jis0212<<14 | 0x4C<<7 | 0x33,
+ 40821 - 19968: jis0212<<14 | 0x4C<<7 | 0x34,
+ 40822 - 19968: jis0208<<14 | 0x52<<7 | 0x5A,
+ 40823 - 19968: jis0208<<14 | 0x52<<7 | 0x58,
+ 40826 - 19968: jis0212<<14 | 0x4C<<7 | 0x35,
+ 40829 - 19968: jis0212<<14 | 0x4C<<7 | 0x36,
+ 40845 - 19968: jis0208<<14 | 0x2D<<7 | 0x15,
+ 40847 - 19968: jis0212<<14 | 0x4C<<7 | 0x37,
+ 40848 - 19968: jis0212<<14 | 0x4C<<7 | 0x38,
+ 40849 - 19968: jis0212<<14 | 0x4C<<7 | 0x39,
+ 40850 - 19968: jis0212<<14 | 0x4C<<7 | 0x3A,
+ 40852 - 19968: jis0212<<14 | 0x4C<<7 | 0x3B,
+ 40853 - 19968: jis0208<<14 | 0x52<<7 | 0x5B,
+ 40854 - 19968: jis0212<<14 | 0x4C<<7 | 0x3C,
+ 40855 - 19968: jis0212<<14 | 0x4C<<7 | 0x3D,
+ 40860 - 19968: jis0208<<14 | 0x52<<7 | 0x5C,
+ 40861 - 19968: jis0208<<14 | 0x42<<7 | 0x33,
+ 40862 - 19968: jis0212<<14 | 0x4C<<7 | 0x3E,
+ 40864 - 19968: jis0208<<14 | 0x52<<7 | 0x5D,
+ 40865 - 19968: jis0212<<14 | 0x4C<<7 | 0x3F,
+ 40866 - 19968: jis0212<<14 | 0x4C<<7 | 0x40,
+ 40867 - 19968: jis0212<<14 | 0x4C<<7 | 0x41,
+ 40869 - 19968: jis0212<<14 | 0x4C<<7 | 0x42,
+}
+
+const encode1Low, encode1High = 8208, 9840
+
+var encode1 = [...]uint16{
+ 8208 - 8208: jis0208<<14 | 0x00<<7 | 0x1D,
+ 8213 - 8208: jis0208<<14 | 0x00<<7 | 0x1C,
+ 8216 - 8208: jis0208<<14 | 0x00<<7 | 0x25,
+ 8217 - 8208: jis0208<<14 | 0x00<<7 | 0x26,
+ 8220 - 8208: jis0208<<14 | 0x00<<7 | 0x27,
+ 8221 - 8208: jis0208<<14 | 0x00<<7 | 0x28,
+ 8224 - 8208: jis0208<<14 | 0x01<<7 | 0x56,
+ 8225 - 8208: jis0208<<14 | 0x01<<7 | 0x57,
+ 8229 - 8208: jis0208<<14 | 0x00<<7 | 0x24,
+ 8230 - 8208: jis0208<<14 | 0x00<<7 | 0x23,
+ 8240 - 8208: jis0208<<14 | 0x01<<7 | 0x52,
+ 8242 - 8208: jis0208<<14 | 0x00<<7 | 0x4B,
+ 8243 - 8208: jis0208<<14 | 0x00<<7 | 0x4C,
+ 8251 - 8208: jis0208<<14 | 0x01<<7 | 0x07,
+ 8451 - 8208: jis0208<<14 | 0x00<<7 | 0x4D,
+ 8470 - 8208: jis0208<<14 | 0x0C<<7 | 0x41,
+ 8481 - 8208: jis0208<<14 | 0x0C<<7 | 0x43,
+ 8482 - 8208: jis0212<<14 | 0x01<<7 | 0x4E,
+ 8491 - 8208: jis0208<<14 | 0x01<<7 | 0x51,
+ 8544 - 8208: jis0208<<14 | 0x0C<<7 | 0x14,
+ 8545 - 8208: jis0208<<14 | 0x0C<<7 | 0x15,
+ 8546 - 8208: jis0208<<14 | 0x0C<<7 | 0x16,
+ 8547 - 8208: jis0208<<14 | 0x0C<<7 | 0x17,
+ 8548 - 8208: jis0208<<14 | 0x0C<<7 | 0x18,
+ 8549 - 8208: jis0208<<14 | 0x0C<<7 | 0x19,
+ 8550 - 8208: jis0208<<14 | 0x0C<<7 | 0x1A,
+ 8551 - 8208: jis0208<<14 | 0x0C<<7 | 0x1B,
+ 8552 - 8208: jis0208<<14 | 0x0C<<7 | 0x1C,
+ 8553 - 8208: jis0208<<14 | 0x0C<<7 | 0x1D,
+ 8560 - 8208: jis0208<<14 | 0x5B<<7 | 0x50,
+ 8561 - 8208: jis0208<<14 | 0x5B<<7 | 0x51,
+ 8562 - 8208: jis0208<<14 | 0x5B<<7 | 0x52,
+ 8563 - 8208: jis0208<<14 | 0x5B<<7 | 0x53,
+ 8564 - 8208: jis0208<<14 | 0x5B<<7 | 0x54,
+ 8565 - 8208: jis0208<<14 | 0x5B<<7 | 0x55,
+ 8566 - 8208: jis0208<<14 | 0x5B<<7 | 0x56,
+ 8567 - 8208: jis0208<<14 | 0x5B<<7 | 0x57,
+ 8568 - 8208: jis0208<<14 | 0x5B<<7 | 0x58,
+ 8569 - 8208: jis0208<<14 | 0x5B<<7 | 0x59,
+ 8592 - 8208: jis0208<<14 | 0x01<<7 | 0x0A,
+ 8593 - 8208: jis0208<<14 | 0x01<<7 | 0x0B,
+ 8594 - 8208: jis0208<<14 | 0x01<<7 | 0x09,
+ 8595 - 8208: jis0208<<14 | 0x01<<7 | 0x0C,
+ 8658 - 8208: jis0208<<14 | 0x01<<7 | 0x2C,
+ 8660 - 8208: jis0208<<14 | 0x01<<7 | 0x2D,
+ 8704 - 8208: jis0208<<14 | 0x01<<7 | 0x2E,
+ 8706 - 8208: jis0208<<14 | 0x01<<7 | 0x3E,
+ 8707 - 8208: jis0208<<14 | 0x01<<7 | 0x2F,
+ 8711 - 8208: jis0208<<14 | 0x01<<7 | 0x3F,
+ 8712 - 8208: jis0208<<14 | 0x01<<7 | 0x19,
+ 8715 - 8208: jis0208<<14 | 0x01<<7 | 0x1A,
+ 8721 - 8208: jis0208<<14 | 0x0C<<7 | 0x53,
+ 8730 - 8208: jis0208<<14 | 0x01<<7 | 0x44,
+ 8733 - 8208: jis0208<<14 | 0x01<<7 | 0x46,
+ 8734 - 8208: jis0208<<14 | 0x00<<7 | 0x46,
+ 8735 - 8208: jis0208<<14 | 0x0C<<7 | 0x57,
+ 8736 - 8208: jis0208<<14 | 0x01<<7 | 0x3B,
+ 8741 - 8208: jis0208<<14 | 0x00<<7 | 0x21,
+ 8743 - 8208: jis0208<<14 | 0x01<<7 | 0x29,
+ 8744 - 8208: jis0208<<14 | 0x01<<7 | 0x2A,
+ 8745 - 8208: jis0208<<14 | 0x01<<7 | 0x20,
+ 8746 - 8208: jis0208<<14 | 0x01<<7 | 0x1F,
+ 8747 - 8208: jis0208<<14 | 0x01<<7 | 0x48,
+ 8748 - 8208: jis0208<<14 | 0x01<<7 | 0x49,
+ 8750 - 8208: jis0208<<14 | 0x0C<<7 | 0x52,
+ 8756 - 8208: jis0208<<14 | 0x00<<7 | 0x47,
+ 8757 - 8208: jis0208<<14 | 0x01<<7 | 0x47,
+ 8765 - 8208: jis0208<<14 | 0x01<<7 | 0x45,
+ 8786 - 8208: jis0208<<14 | 0x01<<7 | 0x41,
+ 8800 - 8208: jis0208<<14 | 0x00<<7 | 0x41,
+ 8801 - 8208: jis0208<<14 | 0x01<<7 | 0x40,
+ 8806 - 8208: jis0208<<14 | 0x00<<7 | 0x44,
+ 8807 - 8208: jis0208<<14 | 0x00<<7 | 0x45,
+ 8810 - 8208: jis0208<<14 | 0x01<<7 | 0x42,
+ 8811 - 8208: jis0208<<14 | 0x01<<7 | 0x43,
+ 8834 - 8208: jis0208<<14 | 0x01<<7 | 0x1D,
+ 8835 - 8208: jis0208<<14 | 0x01<<7 | 0x1E,
+ 8838 - 8208: jis0208<<14 | 0x01<<7 | 0x1B,
+ 8839 - 8208: jis0208<<14 | 0x01<<7 | 0x1C,
+ 8869 - 8208: jis0208<<14 | 0x01<<7 | 0x3C,
+ 8895 - 8208: jis0208<<14 | 0x0C<<7 | 0x58,
+ 8978 - 8208: jis0208<<14 | 0x01<<7 | 0x3D,
+ 9312 - 8208: jis0208<<14 | 0x0C<<7 | 0x00,
+ 9313 - 8208: jis0208<<14 | 0x0C<<7 | 0x01,
+ 9314 - 8208: jis0208<<14 | 0x0C<<7 | 0x02,
+ 9315 - 8208: jis0208<<14 | 0x0C<<7 | 0x03,
+ 9316 - 8208: jis0208<<14 | 0x0C<<7 | 0x04,
+ 9317 - 8208: jis0208<<14 | 0x0C<<7 | 0x05,
+ 9318 - 8208: jis0208<<14 | 0x0C<<7 | 0x06,
+ 9319 - 8208: jis0208<<14 | 0x0C<<7 | 0x07,
+ 9320 - 8208: jis0208<<14 | 0x0C<<7 | 0x08,
+ 9321 - 8208: jis0208<<14 | 0x0C<<7 | 0x09,
+ 9322 - 8208: jis0208<<14 | 0x0C<<7 | 0x0A,
+ 9323 - 8208: jis0208<<14 | 0x0C<<7 | 0x0B,
+ 9324 - 8208: jis0208<<14 | 0x0C<<7 | 0x0C,
+ 9325 - 8208: jis0208<<14 | 0x0C<<7 | 0x0D,
+ 9326 - 8208: jis0208<<14 | 0x0C<<7 | 0x0E,
+ 9327 - 8208: jis0208<<14 | 0x0C<<7 | 0x0F,
+ 9328 - 8208: jis0208<<14 | 0x0C<<7 | 0x10,
+ 9329 - 8208: jis0208<<14 | 0x0C<<7 | 0x11,
+ 9330 - 8208: jis0208<<14 | 0x0C<<7 | 0x12,
+ 9331 - 8208: jis0208<<14 | 0x0C<<7 | 0x13,
+ 9472 - 8208: jis0208<<14 | 0x07<<7 | 0x00,
+ 9473 - 8208: jis0208<<14 | 0x07<<7 | 0x0B,
+ 9474 - 8208: jis0208<<14 | 0x07<<7 | 0x01,
+ 9475 - 8208: jis0208<<14 | 0x07<<7 | 0x0C,
+ 9484 - 8208: jis0208<<14 | 0x07<<7 | 0x02,
+ 9487 - 8208: jis0208<<14 | 0x07<<7 | 0x0D,
+ 9488 - 8208: jis0208<<14 | 0x07<<7 | 0x03,
+ 9491 - 8208: jis0208<<14 | 0x07<<7 | 0x0E,
+ 9492 - 8208: jis0208<<14 | 0x07<<7 | 0x05,
+ 9495 - 8208: jis0208<<14 | 0x07<<7 | 0x10,
+ 9496 - 8208: jis0208<<14 | 0x07<<7 | 0x04,
+ 9499 - 8208: jis0208<<14 | 0x07<<7 | 0x0F,
+ 9500 - 8208: jis0208<<14 | 0x07<<7 | 0x06,
+ 9501 - 8208: jis0208<<14 | 0x07<<7 | 0x1B,
+ 9504 - 8208: jis0208<<14 | 0x07<<7 | 0x16,
+ 9507 - 8208: jis0208<<14 | 0x07<<7 | 0x11,
+ 9508 - 8208: jis0208<<14 | 0x07<<7 | 0x08,
+ 9509 - 8208: jis0208<<14 | 0x07<<7 | 0x1D,
+ 9512 - 8208: jis0208<<14 | 0x07<<7 | 0x18,
+ 9515 - 8208: jis0208<<14 | 0x07<<7 | 0x13,
+ 9516 - 8208: jis0208<<14 | 0x07<<7 | 0x07,
+ 9519 - 8208: jis0208<<14 | 0x07<<7 | 0x17,
+ 9520 - 8208: jis0208<<14 | 0x07<<7 | 0x1C,
+ 9523 - 8208: jis0208<<14 | 0x07<<7 | 0x12,
+ 9524 - 8208: jis0208<<14 | 0x07<<7 | 0x09,
+ 9527 - 8208: jis0208<<14 | 0x07<<7 | 0x19,
+ 9528 - 8208: jis0208<<14 | 0x07<<7 | 0x1E,
+ 9531 - 8208: jis0208<<14 | 0x07<<7 | 0x14,
+ 9532 - 8208: jis0208<<14 | 0x07<<7 | 0x0A,
+ 9535 - 8208: jis0208<<14 | 0x07<<7 | 0x1A,
+ 9538 - 8208: jis0208<<14 | 0x07<<7 | 0x1F,
+ 9547 - 8208: jis0208<<14 | 0x07<<7 | 0x15,
+ 9632 - 8208: jis0208<<14 | 0x01<<7 | 0x02,
+ 9633 - 8208: jis0208<<14 | 0x01<<7 | 0x01,
+ 9650 - 8208: jis0208<<14 | 0x01<<7 | 0x04,
+ 9651 - 8208: jis0208<<14 | 0x01<<7 | 0x03,
+ 9660 - 8208: jis0208<<14 | 0x01<<7 | 0x06,
+ 9661 - 8208: jis0208<<14 | 0x01<<7 | 0x05,
+ 9670 - 8208: jis0208<<14 | 0x01<<7 | 0x00,
+ 9671 - 8208: jis0208<<14 | 0x00<<7 | 0x5D,
+ 9675 - 8208: jis0208<<14 | 0x00<<7 | 0x5A,
+ 9678 - 8208: jis0208<<14 | 0x00<<7 | 0x5C,
+ 9679 - 8208: jis0208<<14 | 0x00<<7 | 0x5B,
+ 9711 - 8208: jis0208<<14 | 0x01<<7 | 0x5D,
+ 9733 - 8208: jis0208<<14 | 0x00<<7 | 0x59,
+ 9734 - 8208: jis0208<<14 | 0x00<<7 | 0x58,
+ 9792 - 8208: jis0208<<14 | 0x00<<7 | 0x49,
+ 9794 - 8208: jis0208<<14 | 0x00<<7 | 0x48,
+ 9834 - 8208: jis0208<<14 | 0x01<<7 | 0x55,
+ 9837 - 8208: jis0208<<14 | 0x01<<7 | 0x54,
+ 9839 - 8208: jis0208<<14 | 0x01<<7 | 0x53,
+}
+
+const encode2Low, encode2High = 12288, 13262
+
+var encode2 = [...]uint16{
+ 12288 - 12288: jis0208<<14 | 0x00<<7 | 0x00,
+ 12289 - 12288: jis0208<<14 | 0x00<<7 | 0x01,
+ 12290 - 12288: jis0208<<14 | 0x00<<7 | 0x02,
+ 12291 - 12288: jis0208<<14 | 0x00<<7 | 0x16,
+ 12293 - 12288: jis0208<<14 | 0x00<<7 | 0x18,
+ 12294 - 12288: jis0208<<14 | 0x00<<7 | 0x19,
+ 12295 - 12288: jis0208<<14 | 0x00<<7 | 0x1A,
+ 12296 - 12288: jis0208<<14 | 0x00<<7 | 0x31,
+ 12297 - 12288: jis0208<<14 | 0x00<<7 | 0x32,
+ 12298 - 12288: jis0208<<14 | 0x00<<7 | 0x33,
+ 12299 - 12288: jis0208<<14 | 0x00<<7 | 0x34,
+ 12300 - 12288: jis0208<<14 | 0x00<<7 | 0x35,
+ 12301 - 12288: jis0208<<14 | 0x00<<7 | 0x36,
+ 12302 - 12288: jis0208<<14 | 0x00<<7 | 0x37,
+ 12303 - 12288: jis0208<<14 | 0x00<<7 | 0x38,
+ 12304 - 12288: jis0208<<14 | 0x00<<7 | 0x39,
+ 12305 - 12288: jis0208<<14 | 0x00<<7 | 0x3A,
+ 12306 - 12288: jis0208<<14 | 0x01<<7 | 0x08,
+ 12307 - 12288: jis0208<<14 | 0x01<<7 | 0x0D,
+ 12308 - 12288: jis0208<<14 | 0x00<<7 | 0x2B,
+ 12309 - 12288: jis0208<<14 | 0x00<<7 | 0x2C,
+ 12317 - 12288: jis0208<<14 | 0x0C<<7 | 0x3F,
+ 12319 - 12288: jis0208<<14 | 0x0C<<7 | 0x40,
+ 12353 - 12288: jis0208<<14 | 0x03<<7 | 0x00,
+ 12354 - 12288: jis0208<<14 | 0x03<<7 | 0x01,
+ 12355 - 12288: jis0208<<14 | 0x03<<7 | 0x02,
+ 12356 - 12288: jis0208<<14 | 0x03<<7 | 0x03,
+ 12357 - 12288: jis0208<<14 | 0x03<<7 | 0x04,
+ 12358 - 12288: jis0208<<14 | 0x03<<7 | 0x05,
+ 12359 - 12288: jis0208<<14 | 0x03<<7 | 0x06,
+ 12360 - 12288: jis0208<<14 | 0x03<<7 | 0x07,
+ 12361 - 12288: jis0208<<14 | 0x03<<7 | 0x08,
+ 12362 - 12288: jis0208<<14 | 0x03<<7 | 0x09,
+ 12363 - 12288: jis0208<<14 | 0x03<<7 | 0x0A,
+ 12364 - 12288: jis0208<<14 | 0x03<<7 | 0x0B,
+ 12365 - 12288: jis0208<<14 | 0x03<<7 | 0x0C,
+ 12366 - 12288: jis0208<<14 | 0x03<<7 | 0x0D,
+ 12367 - 12288: jis0208<<14 | 0x03<<7 | 0x0E,
+ 12368 - 12288: jis0208<<14 | 0x03<<7 | 0x0F,
+ 12369 - 12288: jis0208<<14 | 0x03<<7 | 0x10,
+ 12370 - 12288: jis0208<<14 | 0x03<<7 | 0x11,
+ 12371 - 12288: jis0208<<14 | 0x03<<7 | 0x12,
+ 12372 - 12288: jis0208<<14 | 0x03<<7 | 0x13,
+ 12373 - 12288: jis0208<<14 | 0x03<<7 | 0x14,
+ 12374 - 12288: jis0208<<14 | 0x03<<7 | 0x15,
+ 12375 - 12288: jis0208<<14 | 0x03<<7 | 0x16,
+ 12376 - 12288: jis0208<<14 | 0x03<<7 | 0x17,
+ 12377 - 12288: jis0208<<14 | 0x03<<7 | 0x18,
+ 12378 - 12288: jis0208<<14 | 0x03<<7 | 0x19,
+ 12379 - 12288: jis0208<<14 | 0x03<<7 | 0x1A,
+ 12380 - 12288: jis0208<<14 | 0x03<<7 | 0x1B,
+ 12381 - 12288: jis0208<<14 | 0x03<<7 | 0x1C,
+ 12382 - 12288: jis0208<<14 | 0x03<<7 | 0x1D,
+ 12383 - 12288: jis0208<<14 | 0x03<<7 | 0x1E,
+ 12384 - 12288: jis0208<<14 | 0x03<<7 | 0x1F,
+ 12385 - 12288: jis0208<<14 | 0x03<<7 | 0x20,
+ 12386 - 12288: jis0208<<14 | 0x03<<7 | 0x21,
+ 12387 - 12288: jis0208<<14 | 0x03<<7 | 0x22,
+ 12388 - 12288: jis0208<<14 | 0x03<<7 | 0x23,
+ 12389 - 12288: jis0208<<14 | 0x03<<7 | 0x24,
+ 12390 - 12288: jis0208<<14 | 0x03<<7 | 0x25,
+ 12391 - 12288: jis0208<<14 | 0x03<<7 | 0x26,
+ 12392 - 12288: jis0208<<14 | 0x03<<7 | 0x27,
+ 12393 - 12288: jis0208<<14 | 0x03<<7 | 0x28,
+ 12394 - 12288: jis0208<<14 | 0x03<<7 | 0x29,
+ 12395 - 12288: jis0208<<14 | 0x03<<7 | 0x2A,
+ 12396 - 12288: jis0208<<14 | 0x03<<7 | 0x2B,
+ 12397 - 12288: jis0208<<14 | 0x03<<7 | 0x2C,
+ 12398 - 12288: jis0208<<14 | 0x03<<7 | 0x2D,
+ 12399 - 12288: jis0208<<14 | 0x03<<7 | 0x2E,
+ 12400 - 12288: jis0208<<14 | 0x03<<7 | 0x2F,
+ 12401 - 12288: jis0208<<14 | 0x03<<7 | 0x30,
+ 12402 - 12288: jis0208<<14 | 0x03<<7 | 0x31,
+ 12403 - 12288: jis0208<<14 | 0x03<<7 | 0x32,
+ 12404 - 12288: jis0208<<14 | 0x03<<7 | 0x33,
+ 12405 - 12288: jis0208<<14 | 0x03<<7 | 0x34,
+ 12406 - 12288: jis0208<<14 | 0x03<<7 | 0x35,
+ 12407 - 12288: jis0208<<14 | 0x03<<7 | 0x36,
+ 12408 - 12288: jis0208<<14 | 0x03<<7 | 0x37,
+ 12409 - 12288: jis0208<<14 | 0x03<<7 | 0x38,
+ 12410 - 12288: jis0208<<14 | 0x03<<7 | 0x39,
+ 12411 - 12288: jis0208<<14 | 0x03<<7 | 0x3A,
+ 12412 - 12288: jis0208<<14 | 0x03<<7 | 0x3B,
+ 12413 - 12288: jis0208<<14 | 0x03<<7 | 0x3C,
+ 12414 - 12288: jis0208<<14 | 0x03<<7 | 0x3D,
+ 12415 - 12288: jis0208<<14 | 0x03<<7 | 0x3E,
+ 12416 - 12288: jis0208<<14 | 0x03<<7 | 0x3F,
+ 12417 - 12288: jis0208<<14 | 0x03<<7 | 0x40,
+ 12418 - 12288: jis0208<<14 | 0x03<<7 | 0x41,
+ 12419 - 12288: jis0208<<14 | 0x03<<7 | 0x42,
+ 12420 - 12288: jis0208<<14 | 0x03<<7 | 0x43,
+ 12421 - 12288: jis0208<<14 | 0x03<<7 | 0x44,
+ 12422 - 12288: jis0208<<14 | 0x03<<7 | 0x45,
+ 12423 - 12288: jis0208<<14 | 0x03<<7 | 0x46,
+ 12424 - 12288: jis0208<<14 | 0x03<<7 | 0x47,
+ 12425 - 12288: jis0208<<14 | 0x03<<7 | 0x48,
+ 12426 - 12288: jis0208<<14 | 0x03<<7 | 0x49,
+ 12427 - 12288: jis0208<<14 | 0x03<<7 | 0x4A,
+ 12428 - 12288: jis0208<<14 | 0x03<<7 | 0x4B,
+ 12429 - 12288: jis0208<<14 | 0x03<<7 | 0x4C,
+ 12430 - 12288: jis0208<<14 | 0x03<<7 | 0x4D,
+ 12431 - 12288: jis0208<<14 | 0x03<<7 | 0x4E,
+ 12432 - 12288: jis0208<<14 | 0x03<<7 | 0x4F,
+ 12433 - 12288: jis0208<<14 | 0x03<<7 | 0x50,
+ 12434 - 12288: jis0208<<14 | 0x03<<7 | 0x51,
+ 12435 - 12288: jis0208<<14 | 0x03<<7 | 0x52,
+ 12443 - 12288: jis0208<<14 | 0x00<<7 | 0x0A,
+ 12444 - 12288: jis0208<<14 | 0x00<<7 | 0x0B,
+ 12445 - 12288: jis0208<<14 | 0x00<<7 | 0x14,
+ 12446 - 12288: jis0208<<14 | 0x00<<7 | 0x15,
+ 12449 - 12288: jis0208<<14 | 0x04<<7 | 0x00,
+ 12450 - 12288: jis0208<<14 | 0x04<<7 | 0x01,
+ 12451 - 12288: jis0208<<14 | 0x04<<7 | 0x02,
+ 12452 - 12288: jis0208<<14 | 0x04<<7 | 0x03,
+ 12453 - 12288: jis0208<<14 | 0x04<<7 | 0x04,
+ 12454 - 12288: jis0208<<14 | 0x04<<7 | 0x05,
+ 12455 - 12288: jis0208<<14 | 0x04<<7 | 0x06,
+ 12456 - 12288: jis0208<<14 | 0x04<<7 | 0x07,
+ 12457 - 12288: jis0208<<14 | 0x04<<7 | 0x08,
+ 12458 - 12288: jis0208<<14 | 0x04<<7 | 0x09,
+ 12459 - 12288: jis0208<<14 | 0x04<<7 | 0x0A,
+ 12460 - 12288: jis0208<<14 | 0x04<<7 | 0x0B,
+ 12461 - 12288: jis0208<<14 | 0x04<<7 | 0x0C,
+ 12462 - 12288: jis0208<<14 | 0x04<<7 | 0x0D,
+ 12463 - 12288: jis0208<<14 | 0x04<<7 | 0x0E,
+ 12464 - 12288: jis0208<<14 | 0x04<<7 | 0x0F,
+ 12465 - 12288: jis0208<<14 | 0x04<<7 | 0x10,
+ 12466 - 12288: jis0208<<14 | 0x04<<7 | 0x11,
+ 12467 - 12288: jis0208<<14 | 0x04<<7 | 0x12,
+ 12468 - 12288: jis0208<<14 | 0x04<<7 | 0x13,
+ 12469 - 12288: jis0208<<14 | 0x04<<7 | 0x14,
+ 12470 - 12288: jis0208<<14 | 0x04<<7 | 0x15,
+ 12471 - 12288: jis0208<<14 | 0x04<<7 | 0x16,
+ 12472 - 12288: jis0208<<14 | 0x04<<7 | 0x17,
+ 12473 - 12288: jis0208<<14 | 0x04<<7 | 0x18,
+ 12474 - 12288: jis0208<<14 | 0x04<<7 | 0x19,
+ 12475 - 12288: jis0208<<14 | 0x04<<7 | 0x1A,
+ 12476 - 12288: jis0208<<14 | 0x04<<7 | 0x1B,
+ 12477 - 12288: jis0208<<14 | 0x04<<7 | 0x1C,
+ 12478 - 12288: jis0208<<14 | 0x04<<7 | 0x1D,
+ 12479 - 12288: jis0208<<14 | 0x04<<7 | 0x1E,
+ 12480 - 12288: jis0208<<14 | 0x04<<7 | 0x1F,
+ 12481 - 12288: jis0208<<14 | 0x04<<7 | 0x20,
+ 12482 - 12288: jis0208<<14 | 0x04<<7 | 0x21,
+ 12483 - 12288: jis0208<<14 | 0x04<<7 | 0x22,
+ 12484 - 12288: jis0208<<14 | 0x04<<7 | 0x23,
+ 12485 - 12288: jis0208<<14 | 0x04<<7 | 0x24,
+ 12486 - 12288: jis0208<<14 | 0x04<<7 | 0x25,
+ 12487 - 12288: jis0208<<14 | 0x04<<7 | 0x26,
+ 12488 - 12288: jis0208<<14 | 0x04<<7 | 0x27,
+ 12489 - 12288: jis0208<<14 | 0x04<<7 | 0x28,
+ 12490 - 12288: jis0208<<14 | 0x04<<7 | 0x29,
+ 12491 - 12288: jis0208<<14 | 0x04<<7 | 0x2A,
+ 12492 - 12288: jis0208<<14 | 0x04<<7 | 0x2B,
+ 12493 - 12288: jis0208<<14 | 0x04<<7 | 0x2C,
+ 12494 - 12288: jis0208<<14 | 0x04<<7 | 0x2D,
+ 12495 - 12288: jis0208<<14 | 0x04<<7 | 0x2E,
+ 12496 - 12288: jis0208<<14 | 0x04<<7 | 0x2F,
+ 12497 - 12288: jis0208<<14 | 0x04<<7 | 0x30,
+ 12498 - 12288: jis0208<<14 | 0x04<<7 | 0x31,
+ 12499 - 12288: jis0208<<14 | 0x04<<7 | 0x32,
+ 12500 - 12288: jis0208<<14 | 0x04<<7 | 0x33,
+ 12501 - 12288: jis0208<<14 | 0x04<<7 | 0x34,
+ 12502 - 12288: jis0208<<14 | 0x04<<7 | 0x35,
+ 12503 - 12288: jis0208<<14 | 0x04<<7 | 0x36,
+ 12504 - 12288: jis0208<<14 | 0x04<<7 | 0x37,
+ 12505 - 12288: jis0208<<14 | 0x04<<7 | 0x38,
+ 12506 - 12288: jis0208<<14 | 0x04<<7 | 0x39,
+ 12507 - 12288: jis0208<<14 | 0x04<<7 | 0x3A,
+ 12508 - 12288: jis0208<<14 | 0x04<<7 | 0x3B,
+ 12509 - 12288: jis0208<<14 | 0x04<<7 | 0x3C,
+ 12510 - 12288: jis0208<<14 | 0x04<<7 | 0x3D,
+ 12511 - 12288: jis0208<<14 | 0x04<<7 | 0x3E,
+ 12512 - 12288: jis0208<<14 | 0x04<<7 | 0x3F,
+ 12513 - 12288: jis0208<<14 | 0x04<<7 | 0x40,
+ 12514 - 12288: jis0208<<14 | 0x04<<7 | 0x41,
+ 12515 - 12288: jis0208<<14 | 0x04<<7 | 0x42,
+ 12516 - 12288: jis0208<<14 | 0x04<<7 | 0x43,
+ 12517 - 12288: jis0208<<14 | 0x04<<7 | 0x44,
+ 12518 - 12288: jis0208<<14 | 0x04<<7 | 0x45,
+ 12519 - 12288: jis0208<<14 | 0x04<<7 | 0x46,
+ 12520 - 12288: jis0208<<14 | 0x04<<7 | 0x47,
+ 12521 - 12288: jis0208<<14 | 0x04<<7 | 0x48,
+ 12522 - 12288: jis0208<<14 | 0x04<<7 | 0x49,
+ 12523 - 12288: jis0208<<14 | 0x04<<7 | 0x4A,
+ 12524 - 12288: jis0208<<14 | 0x04<<7 | 0x4B,
+ 12525 - 12288: jis0208<<14 | 0x04<<7 | 0x4C,
+ 12526 - 12288: jis0208<<14 | 0x04<<7 | 0x4D,
+ 12527 - 12288: jis0208<<14 | 0x04<<7 | 0x4E,
+ 12528 - 12288: jis0208<<14 | 0x04<<7 | 0x4F,
+ 12529 - 12288: jis0208<<14 | 0x04<<7 | 0x50,
+ 12530 - 12288: jis0208<<14 | 0x04<<7 | 0x51,
+ 12531 - 12288: jis0208<<14 | 0x04<<7 | 0x52,
+ 12532 - 12288: jis0208<<14 | 0x04<<7 | 0x53,
+ 12533 - 12288: jis0208<<14 | 0x04<<7 | 0x54,
+ 12534 - 12288: jis0208<<14 | 0x04<<7 | 0x55,
+ 12539 - 12288: jis0208<<14 | 0x00<<7 | 0x05,
+ 12540 - 12288: jis0208<<14 | 0x00<<7 | 0x1B,
+ 12541 - 12288: jis0208<<14 | 0x00<<7 | 0x12,
+ 12542 - 12288: jis0208<<14 | 0x00<<7 | 0x13,
+ 12849 - 12288: jis0208<<14 | 0x0C<<7 | 0x49,
+ 12850 - 12288: jis0208<<14 | 0x0C<<7 | 0x4A,
+ 12857 - 12288: jis0208<<14 | 0x0C<<7 | 0x4B,
+ 12964 - 12288: jis0208<<14 | 0x0C<<7 | 0x44,
+ 12965 - 12288: jis0208<<14 | 0x0C<<7 | 0x45,
+ 12966 - 12288: jis0208<<14 | 0x0C<<7 | 0x46,
+ 12967 - 12288: jis0208<<14 | 0x0C<<7 | 0x47,
+ 12968 - 12288: jis0208<<14 | 0x0C<<7 | 0x48,
+ 13059 - 12288: jis0208<<14 | 0x0C<<7 | 0x25,
+ 13069 - 12288: jis0208<<14 | 0x0C<<7 | 0x29,
+ 13076 - 12288: jis0208<<14 | 0x0C<<7 | 0x20,
+ 13080 - 12288: jis0208<<14 | 0x0C<<7 | 0x23,
+ 13090 - 12288: jis0208<<14 | 0x0C<<7 | 0x21,
+ 13091 - 12288: jis0208<<14 | 0x0C<<7 | 0x2B,
+ 13094 - 12288: jis0208<<14 | 0x0C<<7 | 0x2A,
+ 13095 - 12288: jis0208<<14 | 0x0C<<7 | 0x24,
+ 13099 - 12288: jis0208<<14 | 0x0C<<7 | 0x2C,
+ 13110 - 12288: jis0208<<14 | 0x0C<<7 | 0x26,
+ 13115 - 12288: jis0208<<14 | 0x0C<<7 | 0x2E,
+ 13129 - 12288: jis0208<<14 | 0x0C<<7 | 0x1F,
+ 13130 - 12288: jis0208<<14 | 0x0C<<7 | 0x2D,
+ 13133 - 12288: jis0208<<14 | 0x0C<<7 | 0x22,
+ 13137 - 12288: jis0208<<14 | 0x0C<<7 | 0x27,
+ 13143 - 12288: jis0208<<14 | 0x0C<<7 | 0x28,
+ 13179 - 12288: jis0208<<14 | 0x0C<<7 | 0x3E,
+ 13180 - 12288: jis0208<<14 | 0x0C<<7 | 0x4E,
+ 13181 - 12288: jis0208<<14 | 0x0C<<7 | 0x4D,
+ 13182 - 12288: jis0208<<14 | 0x0C<<7 | 0x4C,
+ 13198 - 12288: jis0208<<14 | 0x0C<<7 | 0x32,
+ 13199 - 12288: jis0208<<14 | 0x0C<<7 | 0x33,
+ 13212 - 12288: jis0208<<14 | 0x0C<<7 | 0x2F,
+ 13213 - 12288: jis0208<<14 | 0x0C<<7 | 0x30,
+ 13214 - 12288: jis0208<<14 | 0x0C<<7 | 0x31,
+ 13217 - 12288: jis0208<<14 | 0x0C<<7 | 0x35,
+ 13252 - 12288: jis0208<<14 | 0x0C<<7 | 0x34,
+ 13261 - 12288: jis0208<<14 | 0x0C<<7 | 0x42,
+}
+
+const encode3Low, encode3High = 161, 1120
+
+var encode3 = [...]uint16{
+ 161 - 161: jis0212<<14 | 0x01<<7 | 0x21,
+ 164 - 161: jis0212<<14 | 0x01<<7 | 0x4F,
+ 166 - 161: jis0212<<14 | 0x01<<7 | 0x22,
+ 167 - 161: jis0208<<14 | 0x00<<7 | 0x57,
+ 168 - 161: jis0208<<14 | 0x00<<7 | 0x0E,
+ 169 - 161: jis0212<<14 | 0x01<<7 | 0x4C,
+ 170 - 161: jis0212<<14 | 0x01<<7 | 0x4B,
+ 174 - 161: jis0212<<14 | 0x01<<7 | 0x4D,
+ 175 - 161: jis0212<<14 | 0x01<<7 | 0x13,
+ 176 - 161: jis0208<<14 | 0x00<<7 | 0x4A,
+ 177 - 161: jis0208<<14 | 0x00<<7 | 0x3D,
+ 180 - 161: jis0208<<14 | 0x00<<7 | 0x0C,
+ 182 - 161: jis0208<<14 | 0x01<<7 | 0x58,
+ 184 - 161: jis0212<<14 | 0x01<<7 | 0x10,
+ 186 - 161: jis0212<<14 | 0x01<<7 | 0x4A,
+ 191 - 161: jis0212<<14 | 0x01<<7 | 0x23,
+ 192 - 161: jis0212<<14 | 0x09<<7 | 0x01,
+ 193 - 161: jis0212<<14 | 0x09<<7 | 0x00,
+ 194 - 161: jis0212<<14 | 0x09<<7 | 0x03,
+ 195 - 161: jis0212<<14 | 0x09<<7 | 0x09,
+ 196 - 161: jis0212<<14 | 0x09<<7 | 0x02,
+ 197 - 161: jis0212<<14 | 0x09<<7 | 0x08,
+ 198 - 161: jis0212<<14 | 0x08<<7 | 0x00,
+ 199 - 161: jis0212<<14 | 0x09<<7 | 0x0D,
+ 200 - 161: jis0212<<14 | 0x09<<7 | 0x11,
+ 201 - 161: jis0212<<14 | 0x09<<7 | 0x10,
+ 202 - 161: jis0212<<14 | 0x09<<7 | 0x13,
+ 203 - 161: jis0212<<14 | 0x09<<7 | 0x12,
+ 204 - 161: jis0212<<14 | 0x09<<7 | 0x1F,
+ 205 - 161: jis0212<<14 | 0x09<<7 | 0x1E,
+ 206 - 161: jis0212<<14 | 0x09<<7 | 0x21,
+ 207 - 161: jis0212<<14 | 0x09<<7 | 0x20,
+ 209 - 161: jis0212<<14 | 0x09<<7 | 0x2F,
+ 210 - 161: jis0212<<14 | 0x09<<7 | 0x31,
+ 211 - 161: jis0212<<14 | 0x09<<7 | 0x30,
+ 212 - 161: jis0212<<14 | 0x09<<7 | 0x33,
+ 213 - 161: jis0212<<14 | 0x09<<7 | 0x37,
+ 214 - 161: jis0212<<14 | 0x09<<7 | 0x32,
+ 215 - 161: jis0208<<14 | 0x00<<7 | 0x3E,
+ 216 - 161: jis0212<<14 | 0x08<<7 | 0x0B,
+ 217 - 161: jis0212<<14 | 0x09<<7 | 0x42,
+ 218 - 161: jis0212<<14 | 0x09<<7 | 0x41,
+ 219 - 161: jis0212<<14 | 0x09<<7 | 0x44,
+ 220 - 161: jis0212<<14 | 0x09<<7 | 0x43,
+ 221 - 161: jis0212<<14 | 0x09<<7 | 0x51,
+ 222 - 161: jis0212<<14 | 0x08<<7 | 0x0F,
+ 223 - 161: jis0212<<14 | 0x08<<7 | 0x2D,
+ 224 - 161: jis0212<<14 | 0x0A<<7 | 0x01,
+ 225 - 161: jis0212<<14 | 0x0A<<7 | 0x00,
+ 226 - 161: jis0212<<14 | 0x0A<<7 | 0x03,
+ 227 - 161: jis0212<<14 | 0x0A<<7 | 0x09,
+ 228 - 161: jis0212<<14 | 0x0A<<7 | 0x02,
+ 229 - 161: jis0212<<14 | 0x0A<<7 | 0x08,
+ 230 - 161: jis0212<<14 | 0x08<<7 | 0x20,
+ 231 - 161: jis0212<<14 | 0x0A<<7 | 0x0D,
+ 232 - 161: jis0212<<14 | 0x0A<<7 | 0x11,
+ 233 - 161: jis0212<<14 | 0x0A<<7 | 0x10,
+ 234 - 161: jis0212<<14 | 0x0A<<7 | 0x13,
+ 235 - 161: jis0212<<14 | 0x0A<<7 | 0x12,
+ 236 - 161: jis0212<<14 | 0x0A<<7 | 0x1F,
+ 237 - 161: jis0212<<14 | 0x0A<<7 | 0x1E,
+ 238 - 161: jis0212<<14 | 0x0A<<7 | 0x21,
+ 239 - 161: jis0212<<14 | 0x0A<<7 | 0x20,
+ 240 - 161: jis0212<<14 | 0x08<<7 | 0x22,
+ 241 - 161: jis0212<<14 | 0x0A<<7 | 0x2F,
+ 242 - 161: jis0212<<14 | 0x0A<<7 | 0x31,
+ 243 - 161: jis0212<<14 | 0x0A<<7 | 0x30,
+ 244 - 161: jis0212<<14 | 0x0A<<7 | 0x33,
+ 245 - 161: jis0212<<14 | 0x0A<<7 | 0x37,
+ 246 - 161: jis0212<<14 | 0x0A<<7 | 0x32,
+ 247 - 161: jis0208<<14 | 0x00<<7 | 0x3F,
+ 248 - 161: jis0212<<14 | 0x08<<7 | 0x2B,
+ 249 - 161: jis0212<<14 | 0x0A<<7 | 0x42,
+ 250 - 161: jis0212<<14 | 0x0A<<7 | 0x41,
+ 251 - 161: jis0212<<14 | 0x0A<<7 | 0x44,
+ 252 - 161: jis0212<<14 | 0x0A<<7 | 0x43,
+ 253 - 161: jis0212<<14 | 0x0A<<7 | 0x51,
+ 254 - 161: jis0212<<14 | 0x08<<7 | 0x2F,
+ 255 - 161: jis0212<<14 | 0x0A<<7 | 0x52,
+ 256 - 161: jis0212<<14 | 0x09<<7 | 0x06,
+ 257 - 161: jis0212<<14 | 0x0A<<7 | 0x06,
+ 258 - 161: jis0212<<14 | 0x09<<7 | 0x04,
+ 259 - 161: jis0212<<14 | 0x0A<<7 | 0x04,
+ 260 - 161: jis0212<<14 | 0x09<<7 | 0x07,
+ 261 - 161: jis0212<<14 | 0x0A<<7 | 0x07,
+ 262 - 161: jis0212<<14 | 0x09<<7 | 0x0A,
+ 263 - 161: jis0212<<14 | 0x0A<<7 | 0x0A,
+ 264 - 161: jis0212<<14 | 0x09<<7 | 0x0B,
+ 265 - 161: jis0212<<14 | 0x0A<<7 | 0x0B,
+ 266 - 161: jis0212<<14 | 0x09<<7 | 0x0E,
+ 267 - 161: jis0212<<14 | 0x0A<<7 | 0x0E,
+ 268 - 161: jis0212<<14 | 0x09<<7 | 0x0C,
+ 269 - 161: jis0212<<14 | 0x0A<<7 | 0x0C,
+ 270 - 161: jis0212<<14 | 0x09<<7 | 0x0F,
+ 271 - 161: jis0212<<14 | 0x0A<<7 | 0x0F,
+ 272 - 161: jis0212<<14 | 0x08<<7 | 0x01,
+ 273 - 161: jis0212<<14 | 0x08<<7 | 0x21,
+ 274 - 161: jis0212<<14 | 0x09<<7 | 0x16,
+ 275 - 161: jis0212<<14 | 0x0A<<7 | 0x16,
+ 278 - 161: jis0212<<14 | 0x09<<7 | 0x15,
+ 279 - 161: jis0212<<14 | 0x0A<<7 | 0x15,
+ 280 - 161: jis0212<<14 | 0x09<<7 | 0x17,
+ 281 - 161: jis0212<<14 | 0x0A<<7 | 0x17,
+ 282 - 161: jis0212<<14 | 0x09<<7 | 0x14,
+ 283 - 161: jis0212<<14 | 0x0A<<7 | 0x14,
+ 284 - 161: jis0212<<14 | 0x09<<7 | 0x19,
+ 285 - 161: jis0212<<14 | 0x0A<<7 | 0x19,
+ 286 - 161: jis0212<<14 | 0x09<<7 | 0x1A,
+ 287 - 161: jis0212<<14 | 0x0A<<7 | 0x1A,
+ 288 - 161: jis0212<<14 | 0x09<<7 | 0x1C,
+ 289 - 161: jis0212<<14 | 0x0A<<7 | 0x1C,
+ 290 - 161: jis0212<<14 | 0x09<<7 | 0x1B,
+ 292 - 161: jis0212<<14 | 0x09<<7 | 0x1D,
+ 293 - 161: jis0212<<14 | 0x0A<<7 | 0x1D,
+ 294 - 161: jis0212<<14 | 0x08<<7 | 0x03,
+ 295 - 161: jis0212<<14 | 0x08<<7 | 0x23,
+ 296 - 161: jis0212<<14 | 0x09<<7 | 0x26,
+ 297 - 161: jis0212<<14 | 0x0A<<7 | 0x26,
+ 298 - 161: jis0212<<14 | 0x09<<7 | 0x24,
+ 299 - 161: jis0212<<14 | 0x0A<<7 | 0x24,
+ 302 - 161: jis0212<<14 | 0x09<<7 | 0x25,
+ 303 - 161: jis0212<<14 | 0x0A<<7 | 0x25,
+ 304 - 161: jis0212<<14 | 0x09<<7 | 0x23,
+ 305 - 161: jis0212<<14 | 0x08<<7 | 0x24,
+ 306 - 161: jis0212<<14 | 0x08<<7 | 0x05,
+ 307 - 161: jis0212<<14 | 0x08<<7 | 0x25,
+ 308 - 161: jis0212<<14 | 0x09<<7 | 0x27,
+ 309 - 161: jis0212<<14 | 0x0A<<7 | 0x27,
+ 310 - 161: jis0212<<14 | 0x09<<7 | 0x28,
+ 311 - 161: jis0212<<14 | 0x0A<<7 | 0x28,
+ 312 - 161: jis0212<<14 | 0x08<<7 | 0x26,
+ 313 - 161: jis0212<<14 | 0x09<<7 | 0x29,
+ 314 - 161: jis0212<<14 | 0x0A<<7 | 0x29,
+ 315 - 161: jis0212<<14 | 0x09<<7 | 0x2B,
+ 316 - 161: jis0212<<14 | 0x0A<<7 | 0x2B,
+ 317 - 161: jis0212<<14 | 0x09<<7 | 0x2A,
+ 318 - 161: jis0212<<14 | 0x0A<<7 | 0x2A,
+ 319 - 161: jis0212<<14 | 0x08<<7 | 0x08,
+ 320 - 161: jis0212<<14 | 0x08<<7 | 0x28,
+ 321 - 161: jis0212<<14 | 0x08<<7 | 0x07,
+ 322 - 161: jis0212<<14 | 0x08<<7 | 0x27,
+ 323 - 161: jis0212<<14 | 0x09<<7 | 0x2C,
+ 324 - 161: jis0212<<14 | 0x0A<<7 | 0x2C,
+ 325 - 161: jis0212<<14 | 0x09<<7 | 0x2E,
+ 326 - 161: jis0212<<14 | 0x0A<<7 | 0x2E,
+ 327 - 161: jis0212<<14 | 0x09<<7 | 0x2D,
+ 328 - 161: jis0212<<14 | 0x0A<<7 | 0x2D,
+ 329 - 161: jis0212<<14 | 0x08<<7 | 0x29,
+ 330 - 161: jis0212<<14 | 0x08<<7 | 0x0A,
+ 331 - 161: jis0212<<14 | 0x08<<7 | 0x2A,
+ 332 - 161: jis0212<<14 | 0x09<<7 | 0x36,
+ 333 - 161: jis0212<<14 | 0x0A<<7 | 0x36,
+ 336 - 161: jis0212<<14 | 0x09<<7 | 0x35,
+ 337 - 161: jis0212<<14 | 0x0A<<7 | 0x35,
+ 338 - 161: jis0212<<14 | 0x08<<7 | 0x0C,
+ 339 - 161: jis0212<<14 | 0x08<<7 | 0x2C,
+ 340 - 161: jis0212<<14 | 0x09<<7 | 0x38,
+ 341 - 161: jis0212<<14 | 0x0A<<7 | 0x38,
+ 342 - 161: jis0212<<14 | 0x09<<7 | 0x3A,
+ 343 - 161: jis0212<<14 | 0x0A<<7 | 0x3A,
+ 344 - 161: jis0212<<14 | 0x09<<7 | 0x39,
+ 345 - 161: jis0212<<14 | 0x0A<<7 | 0x39,
+ 346 - 161: jis0212<<14 | 0x09<<7 | 0x3B,
+ 347 - 161: jis0212<<14 | 0x0A<<7 | 0x3B,
+ 348 - 161: jis0212<<14 | 0x09<<7 | 0x3C,
+ 349 - 161: jis0212<<14 | 0x0A<<7 | 0x3C,
+ 350 - 161: jis0212<<14 | 0x09<<7 | 0x3E,
+ 351 - 161: jis0212<<14 | 0x0A<<7 | 0x3E,
+ 352 - 161: jis0212<<14 | 0x09<<7 | 0x3D,
+ 353 - 161: jis0212<<14 | 0x0A<<7 | 0x3D,
+ 354 - 161: jis0212<<14 | 0x09<<7 | 0x40,
+ 355 - 161: jis0212<<14 | 0x0A<<7 | 0x40,
+ 356 - 161: jis0212<<14 | 0x09<<7 | 0x3F,
+ 357 - 161: jis0212<<14 | 0x0A<<7 | 0x3F,
+ 358 - 161: jis0212<<14 | 0x08<<7 | 0x0E,
+ 359 - 161: jis0212<<14 | 0x08<<7 | 0x2E,
+ 360 - 161: jis0212<<14 | 0x09<<7 | 0x4B,
+ 361 - 161: jis0212<<14 | 0x0A<<7 | 0x4B,
+ 362 - 161: jis0212<<14 | 0x09<<7 | 0x48,
+ 363 - 161: jis0212<<14 | 0x0A<<7 | 0x48,
+ 364 - 161: jis0212<<14 | 0x09<<7 | 0x45,
+ 365 - 161: jis0212<<14 | 0x0A<<7 | 0x45,
+ 366 - 161: jis0212<<14 | 0x09<<7 | 0x4A,
+ 367 - 161: jis0212<<14 | 0x0A<<7 | 0x4A,
+ 368 - 161: jis0212<<14 | 0x09<<7 | 0x47,
+ 369 - 161: jis0212<<14 | 0x0A<<7 | 0x47,
+ 370 - 161: jis0212<<14 | 0x09<<7 | 0x49,
+ 371 - 161: jis0212<<14 | 0x0A<<7 | 0x49,
+ 372 - 161: jis0212<<14 | 0x09<<7 | 0x50,
+ 373 - 161: jis0212<<14 | 0x0A<<7 | 0x50,
+ 374 - 161: jis0212<<14 | 0x09<<7 | 0x53,
+ 375 - 161: jis0212<<14 | 0x0A<<7 | 0x53,
+ 376 - 161: jis0212<<14 | 0x09<<7 | 0x52,
+ 377 - 161: jis0212<<14 | 0x09<<7 | 0x54,
+ 378 - 161: jis0212<<14 | 0x0A<<7 | 0x54,
+ 379 - 161: jis0212<<14 | 0x09<<7 | 0x56,
+ 380 - 161: jis0212<<14 | 0x0A<<7 | 0x56,
+ 381 - 161: jis0212<<14 | 0x09<<7 | 0x55,
+ 382 - 161: jis0212<<14 | 0x0A<<7 | 0x55,
+ 461 - 161: jis0212<<14 | 0x09<<7 | 0x05,
+ 462 - 161: jis0212<<14 | 0x0A<<7 | 0x05,
+ 463 - 161: jis0212<<14 | 0x09<<7 | 0x22,
+ 464 - 161: jis0212<<14 | 0x0A<<7 | 0x22,
+ 465 - 161: jis0212<<14 | 0x09<<7 | 0x34,
+ 466 - 161: jis0212<<14 | 0x0A<<7 | 0x34,
+ 467 - 161: jis0212<<14 | 0x09<<7 | 0x46,
+ 468 - 161: jis0212<<14 | 0x0A<<7 | 0x46,
+ 469 - 161: jis0212<<14 | 0x09<<7 | 0x4F,
+ 470 - 161: jis0212<<14 | 0x0A<<7 | 0x4F,
+ 471 - 161: jis0212<<14 | 0x09<<7 | 0x4C,
+ 472 - 161: jis0212<<14 | 0x0A<<7 | 0x4C,
+ 473 - 161: jis0212<<14 | 0x09<<7 | 0x4E,
+ 474 - 161: jis0212<<14 | 0x0A<<7 | 0x4E,
+ 475 - 161: jis0212<<14 | 0x09<<7 | 0x4D,
+ 476 - 161: jis0212<<14 | 0x0A<<7 | 0x4D,
+ 501 - 161: jis0212<<14 | 0x0A<<7 | 0x18,
+ 711 - 161: jis0212<<14 | 0x01<<7 | 0x0F,
+ 728 - 161: jis0212<<14 | 0x01<<7 | 0x0E,
+ 729 - 161: jis0212<<14 | 0x01<<7 | 0x11,
+ 730 - 161: jis0212<<14 | 0x01<<7 | 0x15,
+ 731 - 161: jis0212<<14 | 0x01<<7 | 0x14,
+ 733 - 161: jis0212<<14 | 0x01<<7 | 0x12,
+ 900 - 161: jis0212<<14 | 0x01<<7 | 0x17,
+ 901 - 161: jis0212<<14 | 0x01<<7 | 0x18,
+ 902 - 161: jis0212<<14 | 0x05<<7 | 0x40,
+ 904 - 161: jis0212<<14 | 0x05<<7 | 0x41,
+ 905 - 161: jis0212<<14 | 0x05<<7 | 0x42,
+ 906 - 161: jis0212<<14 | 0x05<<7 | 0x43,
+ 908 - 161: jis0212<<14 | 0x05<<7 | 0x46,
+ 910 - 161: jis0212<<14 | 0x05<<7 | 0x48,
+ 911 - 161: jis0212<<14 | 0x05<<7 | 0x4B,
+ 912 - 161: jis0212<<14 | 0x05<<7 | 0x55,
+ 913 - 161: jis0208<<14 | 0x05<<7 | 0x00,
+ 914 - 161: jis0208<<14 | 0x05<<7 | 0x01,
+ 915 - 161: jis0208<<14 | 0x05<<7 | 0x02,
+ 916 - 161: jis0208<<14 | 0x05<<7 | 0x03,
+ 917 - 161: jis0208<<14 | 0x05<<7 | 0x04,
+ 918 - 161: jis0208<<14 | 0x05<<7 | 0x05,
+ 919 - 161: jis0208<<14 | 0x05<<7 | 0x06,
+ 920 - 161: jis0208<<14 | 0x05<<7 | 0x07,
+ 921 - 161: jis0208<<14 | 0x05<<7 | 0x08,
+ 922 - 161: jis0208<<14 | 0x05<<7 | 0x09,
+ 923 - 161: jis0208<<14 | 0x05<<7 | 0x0A,
+ 924 - 161: jis0208<<14 | 0x05<<7 | 0x0B,
+ 925 - 161: jis0208<<14 | 0x05<<7 | 0x0C,
+ 926 - 161: jis0208<<14 | 0x05<<7 | 0x0D,
+ 927 - 161: jis0208<<14 | 0x05<<7 | 0x0E,
+ 928 - 161: jis0208<<14 | 0x05<<7 | 0x0F,
+ 929 - 161: jis0208<<14 | 0x05<<7 | 0x10,
+ 931 - 161: jis0208<<14 | 0x05<<7 | 0x11,
+ 932 - 161: jis0208<<14 | 0x05<<7 | 0x12,
+ 933 - 161: jis0208<<14 | 0x05<<7 | 0x13,
+ 934 - 161: jis0208<<14 | 0x05<<7 | 0x14,
+ 935 - 161: jis0208<<14 | 0x05<<7 | 0x15,
+ 936 - 161: jis0208<<14 | 0x05<<7 | 0x16,
+ 937 - 161: jis0208<<14 | 0x05<<7 | 0x17,
+ 938 - 161: jis0212<<14 | 0x05<<7 | 0x44,
+ 939 - 161: jis0212<<14 | 0x05<<7 | 0x49,
+ 940 - 161: jis0212<<14 | 0x05<<7 | 0x50,
+ 941 - 161: jis0212<<14 | 0x05<<7 | 0x51,
+ 942 - 161: jis0212<<14 | 0x05<<7 | 0x52,
+ 943 - 161: jis0212<<14 | 0x05<<7 | 0x53,
+ 944 - 161: jis0212<<14 | 0x05<<7 | 0x5A,
+ 945 - 161: jis0208<<14 | 0x05<<7 | 0x20,
+ 946 - 161: jis0208<<14 | 0x05<<7 | 0x21,
+ 947 - 161: jis0208<<14 | 0x05<<7 | 0x22,
+ 948 - 161: jis0208<<14 | 0x05<<7 | 0x23,
+ 949 - 161: jis0208<<14 | 0x05<<7 | 0x24,
+ 950 - 161: jis0208<<14 | 0x05<<7 | 0x25,
+ 951 - 161: jis0208<<14 | 0x05<<7 | 0x26,
+ 952 - 161: jis0208<<14 | 0x05<<7 | 0x27,
+ 953 - 161: jis0208<<14 | 0x05<<7 | 0x28,
+ 954 - 161: jis0208<<14 | 0x05<<7 | 0x29,
+ 955 - 161: jis0208<<14 | 0x05<<7 | 0x2A,
+ 956 - 161: jis0208<<14 | 0x05<<7 | 0x2B,
+ 957 - 161: jis0208<<14 | 0x05<<7 | 0x2C,
+ 958 - 161: jis0208<<14 | 0x05<<7 | 0x2D,
+ 959 - 161: jis0208<<14 | 0x05<<7 | 0x2E,
+ 960 - 161: jis0208<<14 | 0x05<<7 | 0x2F,
+ 961 - 161: jis0208<<14 | 0x05<<7 | 0x30,
+ 962 - 161: jis0212<<14 | 0x05<<7 | 0x57,
+ 963 - 161: jis0208<<14 | 0x05<<7 | 0x31,
+ 964 - 161: jis0208<<14 | 0x05<<7 | 0x32,
+ 965 - 161: jis0208<<14 | 0x05<<7 | 0x33,
+ 966 - 161: jis0208<<14 | 0x05<<7 | 0x34,
+ 967 - 161: jis0208<<14 | 0x05<<7 | 0x35,
+ 968 - 161: jis0208<<14 | 0x05<<7 | 0x36,
+ 969 - 161: jis0208<<14 | 0x05<<7 | 0x37,
+ 970 - 161: jis0212<<14 | 0x05<<7 | 0x54,
+ 971 - 161: jis0212<<14 | 0x05<<7 | 0x59,
+ 972 - 161: jis0212<<14 | 0x05<<7 | 0x56,
+ 973 - 161: jis0212<<14 | 0x05<<7 | 0x58,
+ 974 - 161: jis0212<<14 | 0x05<<7 | 0x5B,
+ 1025 - 161: jis0208<<14 | 0x06<<7 | 0x06,
+ 1026 - 161: jis0212<<14 | 0x06<<7 | 0x21,
+ 1027 - 161: jis0212<<14 | 0x06<<7 | 0x22,
+ 1028 - 161: jis0212<<14 | 0x06<<7 | 0x23,
+ 1029 - 161: jis0212<<14 | 0x06<<7 | 0x24,
+ 1030 - 161: jis0212<<14 | 0x06<<7 | 0x25,
+ 1031 - 161: jis0212<<14 | 0x06<<7 | 0x26,
+ 1032 - 161: jis0212<<14 | 0x06<<7 | 0x27,
+ 1033 - 161: jis0212<<14 | 0x06<<7 | 0x28,
+ 1034 - 161: jis0212<<14 | 0x06<<7 | 0x29,
+ 1035 - 161: jis0212<<14 | 0x06<<7 | 0x2A,
+ 1036 - 161: jis0212<<14 | 0x06<<7 | 0x2B,
+ 1038 - 161: jis0212<<14 | 0x06<<7 | 0x2C,
+ 1039 - 161: jis0212<<14 | 0x06<<7 | 0x2D,
+ 1040 - 161: jis0208<<14 | 0x06<<7 | 0x00,
+ 1041 - 161: jis0208<<14 | 0x06<<7 | 0x01,
+ 1042 - 161: jis0208<<14 | 0x06<<7 | 0x02,
+ 1043 - 161: jis0208<<14 | 0x06<<7 | 0x03,
+ 1044 - 161: jis0208<<14 | 0x06<<7 | 0x04,
+ 1045 - 161: jis0208<<14 | 0x06<<7 | 0x05,
+ 1046 - 161: jis0208<<14 | 0x06<<7 | 0x07,
+ 1047 - 161: jis0208<<14 | 0x06<<7 | 0x08,
+ 1048 - 161: jis0208<<14 | 0x06<<7 | 0x09,
+ 1049 - 161: jis0208<<14 | 0x06<<7 | 0x0A,
+ 1050 - 161: jis0208<<14 | 0x06<<7 | 0x0B,
+ 1051 - 161: jis0208<<14 | 0x06<<7 | 0x0C,
+ 1052 - 161: jis0208<<14 | 0x06<<7 | 0x0D,
+ 1053 - 161: jis0208<<14 | 0x06<<7 | 0x0E,
+ 1054 - 161: jis0208<<14 | 0x06<<7 | 0x0F,
+ 1055 - 161: jis0208<<14 | 0x06<<7 | 0x10,
+ 1056 - 161: jis0208<<14 | 0x06<<7 | 0x11,
+ 1057 - 161: jis0208<<14 | 0x06<<7 | 0x12,
+ 1058 - 161: jis0208<<14 | 0x06<<7 | 0x13,
+ 1059 - 161: jis0208<<14 | 0x06<<7 | 0x14,
+ 1060 - 161: jis0208<<14 | 0x06<<7 | 0x15,
+ 1061 - 161: jis0208<<14 | 0x06<<7 | 0x16,
+ 1062 - 161: jis0208<<14 | 0x06<<7 | 0x17,
+ 1063 - 161: jis0208<<14 | 0x06<<7 | 0x18,
+ 1064 - 161: jis0208<<14 | 0x06<<7 | 0x19,
+ 1065 - 161: jis0208<<14 | 0x06<<7 | 0x1A,
+ 1066 - 161: jis0208<<14 | 0x06<<7 | 0x1B,
+ 1067 - 161: jis0208<<14 | 0x06<<7 | 0x1C,
+ 1068 - 161: jis0208<<14 | 0x06<<7 | 0x1D,
+ 1069 - 161: jis0208<<14 | 0x06<<7 | 0x1E,
+ 1070 - 161: jis0208<<14 | 0x06<<7 | 0x1F,
+ 1071 - 161: jis0208<<14 | 0x06<<7 | 0x20,
+ 1072 - 161: jis0208<<14 | 0x06<<7 | 0x30,
+ 1073 - 161: jis0208<<14 | 0x06<<7 | 0x31,
+ 1074 - 161: jis0208<<14 | 0x06<<7 | 0x32,
+ 1075 - 161: jis0208<<14 | 0x06<<7 | 0x33,
+ 1076 - 161: jis0208<<14 | 0x06<<7 | 0x34,
+ 1077 - 161: jis0208<<14 | 0x06<<7 | 0x35,
+ 1078 - 161: jis0208<<14 | 0x06<<7 | 0x37,
+ 1079 - 161: jis0208<<14 | 0x06<<7 | 0x38,
+ 1080 - 161: jis0208<<14 | 0x06<<7 | 0x39,
+ 1081 - 161: jis0208<<14 | 0x06<<7 | 0x3A,
+ 1082 - 161: jis0208<<14 | 0x06<<7 | 0x3B,
+ 1083 - 161: jis0208<<14 | 0x06<<7 | 0x3C,
+ 1084 - 161: jis0208<<14 | 0x06<<7 | 0x3D,
+ 1085 - 161: jis0208<<14 | 0x06<<7 | 0x3E,
+ 1086 - 161: jis0208<<14 | 0x06<<7 | 0x3F,
+ 1087 - 161: jis0208<<14 | 0x06<<7 | 0x40,
+ 1088 - 161: jis0208<<14 | 0x06<<7 | 0x41,
+ 1089 - 161: jis0208<<14 | 0x06<<7 | 0x42,
+ 1090 - 161: jis0208<<14 | 0x06<<7 | 0x43,
+ 1091 - 161: jis0208<<14 | 0x06<<7 | 0x44,
+ 1092 - 161: jis0208<<14 | 0x06<<7 | 0x45,
+ 1093 - 161: jis0208<<14 | 0x06<<7 | 0x46,
+ 1094 - 161: jis0208<<14 | 0x06<<7 | 0x47,
+ 1095 - 161: jis0208<<14 | 0x06<<7 | 0x48,
+ 1096 - 161: jis0208<<14 | 0x06<<7 | 0x49,
+ 1097 - 161: jis0208<<14 | 0x06<<7 | 0x4A,
+ 1098 - 161: jis0208<<14 | 0x06<<7 | 0x4B,
+ 1099 - 161: jis0208<<14 | 0x06<<7 | 0x4C,
+ 1100 - 161: jis0208<<14 | 0x06<<7 | 0x4D,
+ 1101 - 161: jis0208<<14 | 0x06<<7 | 0x4E,
+ 1102 - 161: jis0208<<14 | 0x06<<7 | 0x4F,
+ 1103 - 161: jis0208<<14 | 0x06<<7 | 0x50,
+ 1105 - 161: jis0208<<14 | 0x06<<7 | 0x36,
+ 1106 - 161: jis0212<<14 | 0x06<<7 | 0x51,
+ 1107 - 161: jis0212<<14 | 0x06<<7 | 0x52,
+ 1108 - 161: jis0212<<14 | 0x06<<7 | 0x53,
+ 1109 - 161: jis0212<<14 | 0x06<<7 | 0x54,
+ 1110 - 161: jis0212<<14 | 0x06<<7 | 0x55,
+ 1111 - 161: jis0212<<14 | 0x06<<7 | 0x56,
+ 1112 - 161: jis0212<<14 | 0x06<<7 | 0x57,
+ 1113 - 161: jis0212<<14 | 0x06<<7 | 0x58,
+ 1114 - 161: jis0212<<14 | 0x06<<7 | 0x59,
+ 1115 - 161: jis0212<<14 | 0x06<<7 | 0x5A,
+ 1116 - 161: jis0212<<14 | 0x06<<7 | 0x5B,
+ 1118 - 161: jis0212<<14 | 0x06<<7 | 0x5C,
+ 1119 - 161: jis0212<<14 | 0x06<<7 | 0x5D,
+}
+
+const encode4Low, encode4High = 63785, 64046
+
+var encode4 = [...]uint16{
+ 63785 - 63785: jis0208<<14 | 0x59<<7 | 0x25,
+ 63964 - 63785: jis0208<<14 | 0x5B<<7 | 0x2E,
+ 64014 - 63785: jis0208<<14 | 0x58<<7 | 0x33,
+ 64015 - 63785: jis0208<<14 | 0x58<<7 | 0x3E,
+ 64016 - 63785: jis0208<<14 | 0x58<<7 | 0x3F,
+ 64017 - 63785: jis0208<<14 | 0x58<<7 | 0x54,
+ 64018 - 63785: jis0208<<14 | 0x59<<7 | 0x1D,
+ 64019 - 63785: jis0208<<14 | 0x59<<7 | 0x2D,
+ 64020 - 63785: jis0208<<14 | 0x59<<7 | 0x2F,
+ 64021 - 63785: jis0208<<14 | 0x59<<7 | 0x5A,
+ 64022 - 63785: jis0208<<14 | 0x5A<<7 | 0x02,
+ 64023 - 63785: jis0208<<14 | 0x5A<<7 | 0x19,
+ 64024 - 63785: jis0208<<14 | 0x5A<<7 | 0x21,
+ 64025 - 63785: jis0208<<14 | 0x5A<<7 | 0x22,
+ 64026 - 63785: jis0208<<14 | 0x5A<<7 | 0x23,
+ 64027 - 63785: jis0208<<14 | 0x5A<<7 | 0x25,
+ 64028 - 63785: jis0208<<14 | 0x5A<<7 | 0x29,
+ 64029 - 63785: jis0208<<14 | 0x5A<<7 | 0x2C,
+ 64030 - 63785: jis0208<<14 | 0x5A<<7 | 0x35,
+ 64031 - 63785: jis0208<<14 | 0x5A<<7 | 0x40,
+ 64032 - 63785: jis0208<<14 | 0x5A<<7 | 0x42,
+ 64033 - 63785: jis0208<<14 | 0x5A<<7 | 0x43,
+ 64034 - 63785: jis0208<<14 | 0x5A<<7 | 0x4C,
+ 64035 - 63785: jis0208<<14 | 0x5A<<7 | 0x54,
+ 64036 - 63785: jis0208<<14 | 0x5A<<7 | 0x56,
+ 64037 - 63785: jis0208<<14 | 0x5A<<7 | 0x57,
+ 64038 - 63785: jis0208<<14 | 0x5A<<7 | 0x5A,
+ 64039 - 63785: jis0208<<14 | 0x5B<<7 | 0x18,
+ 64040 - 63785: jis0208<<14 | 0x5B<<7 | 0x1F,
+ 64041 - 63785: jis0208<<14 | 0x5B<<7 | 0x2F,
+ 64042 - 63785: jis0208<<14 | 0x5B<<7 | 0x3B,
+ 64043 - 63785: jis0208<<14 | 0x5B<<7 | 0x3C,
+ 64044 - 63785: jis0208<<14 | 0x5B<<7 | 0x3E,
+ 64045 - 63785: jis0208<<14 | 0x5B<<7 | 0x4B,
+}
+
+const encode5Low, encode5High = 65281, 65510
+
+var encode5 = [...]uint16{
+ 65281 - 65281: jis0208<<14 | 0x00<<7 | 0x09,
+ 65282 - 65281: jis0208<<14 | 0x5B<<7 | 0x5D,
+ 65283 - 65281: jis0208<<14 | 0x00<<7 | 0x53,
+ 65284 - 65281: jis0208<<14 | 0x00<<7 | 0x4F,
+ 65285 - 65281: jis0208<<14 | 0x00<<7 | 0x52,
+ 65286 - 65281: jis0208<<14 | 0x00<<7 | 0x54,
+ 65287 - 65281: jis0208<<14 | 0x5B<<7 | 0x5C,
+ 65288 - 65281: jis0208<<14 | 0x00<<7 | 0x29,
+ 65289 - 65281: jis0208<<14 | 0x00<<7 | 0x2A,
+ 65290 - 65281: jis0208<<14 | 0x00<<7 | 0x55,
+ 65291 - 65281: jis0208<<14 | 0x00<<7 | 0x3B,
+ 65292 - 65281: jis0208<<14 | 0x00<<7 | 0x03,
+ 65293 - 65281: jis0208<<14 | 0x00<<7 | 0x3C,
+ 65294 - 65281: jis0208<<14 | 0x00<<7 | 0x04,
+ 65295 - 65281: jis0208<<14 | 0x00<<7 | 0x1E,
+ 65296 - 65281: jis0208<<14 | 0x02<<7 | 0x0F,
+ 65297 - 65281: jis0208<<14 | 0x02<<7 | 0x10,
+ 65298 - 65281: jis0208<<14 | 0x02<<7 | 0x11,
+ 65299 - 65281: jis0208<<14 | 0x02<<7 | 0x12,
+ 65300 - 65281: jis0208<<14 | 0x02<<7 | 0x13,
+ 65301 - 65281: jis0208<<14 | 0x02<<7 | 0x14,
+ 65302 - 65281: jis0208<<14 | 0x02<<7 | 0x15,
+ 65303 - 65281: jis0208<<14 | 0x02<<7 | 0x16,
+ 65304 - 65281: jis0208<<14 | 0x02<<7 | 0x17,
+ 65305 - 65281: jis0208<<14 | 0x02<<7 | 0x18,
+ 65306 - 65281: jis0208<<14 | 0x00<<7 | 0x06,
+ 65307 - 65281: jis0208<<14 | 0x00<<7 | 0x07,
+ 65308 - 65281: jis0208<<14 | 0x00<<7 | 0x42,
+ 65309 - 65281: jis0208<<14 | 0x00<<7 | 0x40,
+ 65310 - 65281: jis0208<<14 | 0x00<<7 | 0x43,
+ 65311 - 65281: jis0208<<14 | 0x00<<7 | 0x08,
+ 65312 - 65281: jis0208<<14 | 0x00<<7 | 0x56,
+ 65313 - 65281: jis0208<<14 | 0x02<<7 | 0x20,
+ 65314 - 65281: jis0208<<14 | 0x02<<7 | 0x21,
+ 65315 - 65281: jis0208<<14 | 0x02<<7 | 0x22,
+ 65316 - 65281: jis0208<<14 | 0x02<<7 | 0x23,
+ 65317 - 65281: jis0208<<14 | 0x02<<7 | 0x24,
+ 65318 - 65281: jis0208<<14 | 0x02<<7 | 0x25,
+ 65319 - 65281: jis0208<<14 | 0x02<<7 | 0x26,
+ 65320 - 65281: jis0208<<14 | 0x02<<7 | 0x27,
+ 65321 - 65281: jis0208<<14 | 0x02<<7 | 0x28,
+ 65322 - 65281: jis0208<<14 | 0x02<<7 | 0x29,
+ 65323 - 65281: jis0208<<14 | 0x02<<7 | 0x2A,
+ 65324 - 65281: jis0208<<14 | 0x02<<7 | 0x2B,
+ 65325 - 65281: jis0208<<14 | 0x02<<7 | 0x2C,
+ 65326 - 65281: jis0208<<14 | 0x02<<7 | 0x2D,
+ 65327 - 65281: jis0208<<14 | 0x02<<7 | 0x2E,
+ 65328 - 65281: jis0208<<14 | 0x02<<7 | 0x2F,
+ 65329 - 65281: jis0208<<14 | 0x02<<7 | 0x30,
+ 65330 - 65281: jis0208<<14 | 0x02<<7 | 0x31,
+ 65331 - 65281: jis0208<<14 | 0x02<<7 | 0x32,
+ 65332 - 65281: jis0208<<14 | 0x02<<7 | 0x33,
+ 65333 - 65281: jis0208<<14 | 0x02<<7 | 0x34,
+ 65334 - 65281: jis0208<<14 | 0x02<<7 | 0x35,
+ 65335 - 65281: jis0208<<14 | 0x02<<7 | 0x36,
+ 65336 - 65281: jis0208<<14 | 0x02<<7 | 0x37,
+ 65337 - 65281: jis0208<<14 | 0x02<<7 | 0x38,
+ 65338 - 65281: jis0208<<14 | 0x02<<7 | 0x39,
+ 65339 - 65281: jis0208<<14 | 0x00<<7 | 0x2D,
+ 65340 - 65281: jis0208<<14 | 0x00<<7 | 0x1F,
+ 65341 - 65281: jis0208<<14 | 0x00<<7 | 0x2E,
+ 65342 - 65281: jis0208<<14 | 0x00<<7 | 0x0F,
+ 65343 - 65281: jis0208<<14 | 0x00<<7 | 0x11,
+ 65344 - 65281: jis0208<<14 | 0x00<<7 | 0x0D,
+ 65345 - 65281: jis0208<<14 | 0x02<<7 | 0x40,
+ 65346 - 65281: jis0208<<14 | 0x02<<7 | 0x41,
+ 65347 - 65281: jis0208<<14 | 0x02<<7 | 0x42,
+ 65348 - 65281: jis0208<<14 | 0x02<<7 | 0x43,
+ 65349 - 65281: jis0208<<14 | 0x02<<7 | 0x44,
+ 65350 - 65281: jis0208<<14 | 0x02<<7 | 0x45,
+ 65351 - 65281: jis0208<<14 | 0x02<<7 | 0x46,
+ 65352 - 65281: jis0208<<14 | 0x02<<7 | 0x47,
+ 65353 - 65281: jis0208<<14 | 0x02<<7 | 0x48,
+ 65354 - 65281: jis0208<<14 | 0x02<<7 | 0x49,
+ 65355 - 65281: jis0208<<14 | 0x02<<7 | 0x4A,
+ 65356 - 65281: jis0208<<14 | 0x02<<7 | 0x4B,
+ 65357 - 65281: jis0208<<14 | 0x02<<7 | 0x4C,
+ 65358 - 65281: jis0208<<14 | 0x02<<7 | 0x4D,
+ 65359 - 65281: jis0208<<14 | 0x02<<7 | 0x4E,
+ 65360 - 65281: jis0208<<14 | 0x02<<7 | 0x4F,
+ 65361 - 65281: jis0208<<14 | 0x02<<7 | 0x50,
+ 65362 - 65281: jis0208<<14 | 0x02<<7 | 0x51,
+ 65363 - 65281: jis0208<<14 | 0x02<<7 | 0x52,
+ 65364 - 65281: jis0208<<14 | 0x02<<7 | 0x53,
+ 65365 - 65281: jis0208<<14 | 0x02<<7 | 0x54,
+ 65366 - 65281: jis0208<<14 | 0x02<<7 | 0x55,
+ 65367 - 65281: jis0208<<14 | 0x02<<7 | 0x56,
+ 65368 - 65281: jis0208<<14 | 0x02<<7 | 0x57,
+ 65369 - 65281: jis0208<<14 | 0x02<<7 | 0x58,
+ 65370 - 65281: jis0208<<14 | 0x02<<7 | 0x59,
+ 65371 - 65281: jis0208<<14 | 0x00<<7 | 0x2F,
+ 65372 - 65281: jis0208<<14 | 0x00<<7 | 0x22,
+ 65373 - 65281: jis0208<<14 | 0x00<<7 | 0x30,
+ 65374 - 65281: jis0208<<14 | 0x00<<7 | 0x20,
+ 65504 - 65281: jis0208<<14 | 0x00<<7 | 0x50,
+ 65505 - 65281: jis0208<<14 | 0x00<<7 | 0x51,
+ 65506 - 65281: jis0208<<14 | 0x01<<7 | 0x2B,
+ 65507 - 65281: jis0208<<14 | 0x00<<7 | 0x10,
+ 65508 - 65281: jis0208<<14 | 0x5B<<7 | 0x5B,
+ 65509 - 65281: jis0208<<14 | 0x00<<7 | 0x4E,
+}
diff --git a/vendor/golang.org/x/text/encoding/korean/euckr.go b/vendor/golang.org/x/text/encoding/korean/euckr.go
new file mode 100644
index 000000000..a4b9ff178
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/korean/euckr.go
@@ -0,0 +1,178 @@
+// 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 korean
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// All is a list of all defined encodings in this package.
+var All = []encoding.Encoding{EUCKR}
+
+// EUCKR is the EUC-KR encoding, also known as Code Page 949.
+var EUCKR encoding.Encoding = &eucKR
+
+var eucKR = internal.Encoding{
+ &internal.SimpleEncoding{eucKRDecoder{}, eucKREncoder{}},
+ "EUC-KR",
+ identifier.EUCKR,
+}
+
+var errInvalidEUCKR = errors.New("korean: invalid EUC-KR encoding")
+
+type eucKRDecoder struct{ transform.NopResetter }
+
+func (eucKRDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ switch c0 := src[nSrc]; {
+ case c0 < utf8.RuneSelf:
+ r, size = rune(c0), 1
+
+ case 0x81 <= c0 && c0 < 0xff:
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ if c0 < 0xc7 {
+ r = 178 * rune(c0-0x81)
+ switch {
+ case 0x41 <= c1 && c1 < 0x5b:
+ r += rune(c1) - (0x41 - 0*26)
+ case 0x61 <= c1 && c1 < 0x7b:
+ r += rune(c1) - (0x61 - 1*26)
+ case 0x81 <= c1 && c1 < 0xff:
+ r += rune(c1) - (0x81 - 2*26)
+ default:
+ err = errInvalidEUCKR
+ break loop
+ }
+ } else if 0xa1 <= c1 && c1 < 0xff {
+ r = 178*(0xc7-0x81) + rune(c0-0xc7)*94 + rune(c1-0xa1)
+ } else {
+ err = errInvalidEUCKR
+ break loop
+ }
+ if int(r) < len(decode) {
+ r = rune(decode[r])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ } else {
+ r = '\ufffd'
+ }
+ size = 2
+
+ default:
+ err = errInvalidEUCKR
+ break loop
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidEUCKR
+ }
+ return nDst, nSrc, err
+}
+
+type eucKREncoder struct{ transform.NopResetter }
+
+func (eucKREncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r != 0 {
+ goto write2
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r != 0 {
+ goto write2
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r != 0 {
+ goto write2
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r != 0 {
+ goto write2
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r != 0 {
+ goto write2
+ }
+ case encode5Low <= r && r < encode5High:
+ if r = rune(encode5[r-encode5Low]); r != 0 {
+ goto write2
+ }
+ case encode6Low <= r && r < encode6High:
+ if r = rune(encode6[r-encode6Low]); r != 0 {
+ goto write2
+ }
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ write2:
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = uint8(r >> 8)
+ dst[nDst+1] = uint8(r)
+ nDst += 2
+ continue
+ }
+ return nDst, nSrc, err
+}
+
+func init() {
+ // Check that the hard-coded encode switch covers all tables.
+ if numEncodeTables != 7 {
+ panic("bad numEncodeTables")
+ }
+}
diff --git a/vendor/golang.org/x/text/encoding/korean/maketables.go b/vendor/golang.org/x/text/encoding/korean/maketables.go
new file mode 100644
index 000000000..c84034fb6
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/korean/maketables.go
@@ -0,0 +1,143 @@
+// 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 ignore
+
+package main
+
+// This program generates tables.go:
+// go run maketables.go | gofmt > tables.go
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "sort"
+ "strings"
+)
+
+func main() {
+ fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
+ fmt.Printf("// Package korean provides Korean encodings such as EUC-KR.\n")
+ fmt.Printf(`package korean // import "golang.org/x/text/encoding/korean"` + "\n\n")
+
+ res, err := http.Get("http://encoding.spec.whatwg.org/index-euc-kr.txt")
+ if err != nil {
+ log.Fatalf("Get: %v", err)
+ }
+ defer res.Body.Close()
+
+ mapping := [65536]uint16{}
+ reverse := [65536]uint16{}
+
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := uint16(0), uint16(0)
+ if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
+ log.Fatalf("could not parse %q", s)
+ }
+ if x < 0 || 178*(0xc7-0x81)+(0xfe-0xc7)*94+(0xff-0xa1) <= x {
+ log.Fatalf("EUC-KR code %d is out of range", x)
+ }
+ mapping[x] = y
+ if reverse[y] == 0 {
+ c0, c1 := uint16(0), uint16(0)
+ if x < 178*(0xc7-0x81) {
+ c0 = uint16(x/178) + 0x81
+ c1 = uint16(x % 178)
+ switch {
+ case c1 < 1*26:
+ c1 += 0x41
+ case c1 < 2*26:
+ c1 += 0x47
+ default:
+ c1 += 0x4d
+ }
+ } else {
+ x -= 178 * (0xc7 - 0x81)
+ c0 = uint16(x/94) + 0xc7
+ c1 = uint16(x%94) + 0xa1
+ }
+ reverse[y] = c0<<8 | c1
+ }
+ }
+ if err := scanner.Err(); err != nil {
+ log.Fatalf("scanner error: %v", err)
+ }
+
+ fmt.Printf("// decode is the decoding table from EUC-KR code to Unicode.\n")
+ fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt\n")
+ fmt.Printf("var decode = [...]uint16{\n")
+ for i, v := range mapping {
+ if v != 0 {
+ fmt.Printf("\t%d: 0x%04X,\n", i, v)
+ }
+ }
+ fmt.Printf("}\n\n")
+
+ // Any run of at least separation continuous zero entries in the reverse map will
+ // be a separate encode table.
+ const separation = 1024
+
+ intervals := []interval(nil)
+ low, high := -1, -1
+ for i, v := range reverse {
+ if v == 0 {
+ continue
+ }
+ if low < 0 {
+ low = i
+ } else if i-high >= separation {
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ low = i
+ }
+ high = i + 1
+ }
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ sort.Sort(byDecreasingLength(intervals))
+
+ fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
+ fmt.Printf("// encodeX are the encoding tables from Unicode to EUC-KR code,\n")
+ fmt.Printf("// sorted by decreasing length.\n")
+ for i, v := range intervals {
+ fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
+ }
+ fmt.Printf("\n")
+
+ for i, v := range intervals {
+ fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
+ fmt.Printf("var encode%d = [...]uint16{\n", i)
+ for j := v.low; j < v.high; j++ {
+ x := reverse[j]
+ if x == 0 {
+ continue
+ }
+ fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
+ }
+ fmt.Printf("}\n\n")
+ }
+}
+
+// interval is a half-open interval [low, high).
+type interval struct {
+ low, high int
+}
+
+func (i interval) len() int { return i.high - i.low }
+
+// byDecreasingLength sorts intervals by decreasing length.
+type byDecreasingLength []interval
+
+func (b byDecreasingLength) Len() int { return len(b) }
+func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
+func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
diff --git a/vendor/golang.org/x/text/encoding/korean/tables.go b/vendor/golang.org/x/text/encoding/korean/tables.go
new file mode 100644
index 000000000..0480e85c4
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/korean/tables.go
@@ -0,0 +1,34152 @@
+// generated by go run maketables.go; DO NOT EDIT
+
+// Package korean provides Korean encodings such as EUC-KR.
+package korean // import "golang.org/x/text/encoding/korean"
+
+// decode is the decoding table from EUC-KR code to Unicode.
+// It is defined at http://encoding.spec.whatwg.org/index-euc-kr.txt
+var decode = [...]uint16{
+ 0: 0xAC02,
+ 1: 0xAC03,
+ 2: 0xAC05,
+ 3: 0xAC06,
+ 4: 0xAC0B,
+ 5: 0xAC0C,
+ 6: 0xAC0D,
+ 7: 0xAC0E,
+ 8: 0xAC0F,
+ 9: 0xAC18,
+ 10: 0xAC1E,
+ 11: 0xAC1F,
+ 12: 0xAC21,
+ 13: 0xAC22,
+ 14: 0xAC23,
+ 15: 0xAC25,
+ 16: 0xAC26,
+ 17: 0xAC27,
+ 18: 0xAC28,
+ 19: 0xAC29,
+ 20: 0xAC2A,
+ 21: 0xAC2B,
+ 22: 0xAC2E,
+ 23: 0xAC32,
+ 24: 0xAC33,
+ 25: 0xAC34,
+ 26: 0xAC35,
+ 27: 0xAC36,
+ 28: 0xAC37,
+ 29: 0xAC3A,
+ 30: 0xAC3B,
+ 31: 0xAC3D,
+ 32: 0xAC3E,
+ 33: 0xAC3F,
+ 34: 0xAC41,
+ 35: 0xAC42,
+ 36: 0xAC43,
+ 37: 0xAC44,
+ 38: 0xAC45,
+ 39: 0xAC46,
+ 40: 0xAC47,
+ 41: 0xAC48,
+ 42: 0xAC49,
+ 43: 0xAC4A,
+ 44: 0xAC4C,
+ 45: 0xAC4E,
+ 46: 0xAC4F,
+ 47: 0xAC50,
+ 48: 0xAC51,
+ 49: 0xAC52,
+ 50: 0xAC53,
+ 51: 0xAC55,
+ 52: 0xAC56,
+ 53: 0xAC57,
+ 54: 0xAC59,
+ 55: 0xAC5A,
+ 56: 0xAC5B,
+ 57: 0xAC5D,
+ 58: 0xAC5E,
+ 59: 0xAC5F,
+ 60: 0xAC60,
+ 61: 0xAC61,
+ 62: 0xAC62,
+ 63: 0xAC63,
+ 64: 0xAC64,
+ 65: 0xAC65,
+ 66: 0xAC66,
+ 67: 0xAC67,
+ 68: 0xAC68,
+ 69: 0xAC69,
+ 70: 0xAC6A,
+ 71: 0xAC6B,
+ 72: 0xAC6C,
+ 73: 0xAC6D,
+ 74: 0xAC6E,
+ 75: 0xAC6F,
+ 76: 0xAC72,
+ 77: 0xAC73,
+ 78: 0xAC75,
+ 79: 0xAC76,
+ 80: 0xAC79,
+ 81: 0xAC7B,
+ 82: 0xAC7C,
+ 83: 0xAC7D,
+ 84: 0xAC7E,
+ 85: 0xAC7F,
+ 86: 0xAC82,
+ 87: 0xAC87,
+ 88: 0xAC88,
+ 89: 0xAC8D,
+ 90: 0xAC8E,
+ 91: 0xAC8F,
+ 92: 0xAC91,
+ 93: 0xAC92,
+ 94: 0xAC93,
+ 95: 0xAC95,
+ 96: 0xAC96,
+ 97: 0xAC97,
+ 98: 0xAC98,
+ 99: 0xAC99,
+ 100: 0xAC9A,
+ 101: 0xAC9B,
+ 102: 0xAC9E,
+ 103: 0xACA2,
+ 104: 0xACA3,
+ 105: 0xACA4,
+ 106: 0xACA5,
+ 107: 0xACA6,
+ 108: 0xACA7,
+ 109: 0xACAB,
+ 110: 0xACAD,
+ 111: 0xACAE,
+ 112: 0xACB1,
+ 113: 0xACB2,
+ 114: 0xACB3,
+ 115: 0xACB4,
+ 116: 0xACB5,
+ 117: 0xACB6,
+ 118: 0xACB7,
+ 119: 0xACBA,
+ 120: 0xACBE,
+ 121: 0xACBF,
+ 122: 0xACC0,
+ 123: 0xACC2,
+ 124: 0xACC3,
+ 125: 0xACC5,
+ 126: 0xACC6,
+ 127: 0xACC7,
+ 128: 0xACC9,
+ 129: 0xACCA,
+ 130: 0xACCB,
+ 131: 0xACCD,
+ 132: 0xACCE,
+ 133: 0xACCF,
+ 134: 0xACD0,
+ 135: 0xACD1,
+ 136: 0xACD2,
+ 137: 0xACD3,
+ 138: 0xACD4,
+ 139: 0xACD6,
+ 140: 0xACD8,
+ 141: 0xACD9,
+ 142: 0xACDA,
+ 143: 0xACDB,
+ 144: 0xACDC,
+ 145: 0xACDD,
+ 146: 0xACDE,
+ 147: 0xACDF,
+ 148: 0xACE2,
+ 149: 0xACE3,
+ 150: 0xACE5,
+ 151: 0xACE6,
+ 152: 0xACE9,
+ 153: 0xACEB,
+ 154: 0xACED,
+ 155: 0xACEE,
+ 156: 0xACF2,
+ 157: 0xACF4,
+ 158: 0xACF7,
+ 159: 0xACF8,
+ 160: 0xACF9,
+ 161: 0xACFA,
+ 162: 0xACFB,
+ 163: 0xACFE,
+ 164: 0xACFF,
+ 165: 0xAD01,
+ 166: 0xAD02,
+ 167: 0xAD03,
+ 168: 0xAD05,
+ 169: 0xAD07,
+ 170: 0xAD08,
+ 171: 0xAD09,
+ 172: 0xAD0A,
+ 173: 0xAD0B,
+ 174: 0xAD0E,
+ 175: 0xAD10,
+ 176: 0xAD12,
+ 177: 0xAD13,
+ 178: 0xAD14,
+ 179: 0xAD15,
+ 180: 0xAD16,
+ 181: 0xAD17,
+ 182: 0xAD19,
+ 183: 0xAD1A,
+ 184: 0xAD1B,
+ 185: 0xAD1D,
+ 186: 0xAD1E,
+ 187: 0xAD1F,
+ 188: 0xAD21,
+ 189: 0xAD22,
+ 190: 0xAD23,
+ 191: 0xAD24,
+ 192: 0xAD25,
+ 193: 0xAD26,
+ 194: 0xAD27,
+ 195: 0xAD28,
+ 196: 0xAD2A,
+ 197: 0xAD2B,
+ 198: 0xAD2E,
+ 199: 0xAD2F,
+ 200: 0xAD30,
+ 201: 0xAD31,
+ 202: 0xAD32,
+ 203: 0xAD33,
+ 204: 0xAD36,
+ 205: 0xAD37,
+ 206: 0xAD39,
+ 207: 0xAD3A,
+ 208: 0xAD3B,
+ 209: 0xAD3D,
+ 210: 0xAD3E,
+ 211: 0xAD3F,
+ 212: 0xAD40,
+ 213: 0xAD41,
+ 214: 0xAD42,
+ 215: 0xAD43,
+ 216: 0xAD46,
+ 217: 0xAD48,
+ 218: 0xAD4A,
+ 219: 0xAD4B,
+ 220: 0xAD4C,
+ 221: 0xAD4D,
+ 222: 0xAD4E,
+ 223: 0xAD4F,
+ 224: 0xAD51,
+ 225: 0xAD52,
+ 226: 0xAD53,
+ 227: 0xAD55,
+ 228: 0xAD56,
+ 229: 0xAD57,
+ 230: 0xAD59,
+ 231: 0xAD5A,
+ 232: 0xAD5B,
+ 233: 0xAD5C,
+ 234: 0xAD5D,
+ 235: 0xAD5E,
+ 236: 0xAD5F,
+ 237: 0xAD60,
+ 238: 0xAD62,
+ 239: 0xAD64,
+ 240: 0xAD65,
+ 241: 0xAD66,
+ 242: 0xAD67,
+ 243: 0xAD68,
+ 244: 0xAD69,
+ 245: 0xAD6A,
+ 246: 0xAD6B,
+ 247: 0xAD6E,
+ 248: 0xAD6F,
+ 249: 0xAD71,
+ 250: 0xAD72,
+ 251: 0xAD77,
+ 252: 0xAD78,
+ 253: 0xAD79,
+ 254: 0xAD7A,
+ 255: 0xAD7E,
+ 256: 0xAD80,
+ 257: 0xAD83,
+ 258: 0xAD84,
+ 259: 0xAD85,
+ 260: 0xAD86,
+ 261: 0xAD87,
+ 262: 0xAD8A,
+ 263: 0xAD8B,
+ 264: 0xAD8D,
+ 265: 0xAD8E,
+ 266: 0xAD8F,
+ 267: 0xAD91,
+ 268: 0xAD92,
+ 269: 0xAD93,
+ 270: 0xAD94,
+ 271: 0xAD95,
+ 272: 0xAD96,
+ 273: 0xAD97,
+ 274: 0xAD98,
+ 275: 0xAD99,
+ 276: 0xAD9A,
+ 277: 0xAD9B,
+ 278: 0xAD9E,
+ 279: 0xAD9F,
+ 280: 0xADA0,
+ 281: 0xADA1,
+ 282: 0xADA2,
+ 283: 0xADA3,
+ 284: 0xADA5,
+ 285: 0xADA6,
+ 286: 0xADA7,
+ 287: 0xADA8,
+ 288: 0xADA9,
+ 289: 0xADAA,
+ 290: 0xADAB,
+ 291: 0xADAC,
+ 292: 0xADAD,
+ 293: 0xADAE,
+ 294: 0xADAF,
+ 295: 0xADB0,
+ 296: 0xADB1,
+ 297: 0xADB2,
+ 298: 0xADB3,
+ 299: 0xADB4,
+ 300: 0xADB5,
+ 301: 0xADB6,
+ 302: 0xADB8,
+ 303: 0xADB9,
+ 304: 0xADBA,
+ 305: 0xADBB,
+ 306: 0xADBC,
+ 307: 0xADBD,
+ 308: 0xADBE,
+ 309: 0xADBF,
+ 310: 0xADC2,
+ 311: 0xADC3,
+ 312: 0xADC5,
+ 313: 0xADC6,
+ 314: 0xADC7,
+ 315: 0xADC9,
+ 316: 0xADCA,
+ 317: 0xADCB,
+ 318: 0xADCC,
+ 319: 0xADCD,
+ 320: 0xADCE,
+ 321: 0xADCF,
+ 322: 0xADD2,
+ 323: 0xADD4,
+ 324: 0xADD5,
+ 325: 0xADD6,
+ 326: 0xADD7,
+ 327: 0xADD8,
+ 328: 0xADD9,
+ 329: 0xADDA,
+ 330: 0xADDB,
+ 331: 0xADDD,
+ 332: 0xADDE,
+ 333: 0xADDF,
+ 334: 0xADE1,
+ 335: 0xADE2,
+ 336: 0xADE3,
+ 337: 0xADE5,
+ 338: 0xADE6,
+ 339: 0xADE7,
+ 340: 0xADE8,
+ 341: 0xADE9,
+ 342: 0xADEA,
+ 343: 0xADEB,
+ 344: 0xADEC,
+ 345: 0xADED,
+ 346: 0xADEE,
+ 347: 0xADEF,
+ 348: 0xADF0,
+ 349: 0xADF1,
+ 350: 0xADF2,
+ 351: 0xADF3,
+ 352: 0xADF4,
+ 353: 0xADF5,
+ 354: 0xADF6,
+ 355: 0xADF7,
+ 356: 0xADFA,
+ 357: 0xADFB,
+ 358: 0xADFD,
+ 359: 0xADFE,
+ 360: 0xAE02,
+ 361: 0xAE03,
+ 362: 0xAE04,
+ 363: 0xAE05,
+ 364: 0xAE06,
+ 365: 0xAE07,
+ 366: 0xAE0A,
+ 367: 0xAE0C,
+ 368: 0xAE0E,
+ 369: 0xAE0F,
+ 370: 0xAE10,
+ 371: 0xAE11,
+ 372: 0xAE12,
+ 373: 0xAE13,
+ 374: 0xAE15,
+ 375: 0xAE16,
+ 376: 0xAE17,
+ 377: 0xAE18,
+ 378: 0xAE19,
+ 379: 0xAE1A,
+ 380: 0xAE1B,
+ 381: 0xAE1C,
+ 382: 0xAE1D,
+ 383: 0xAE1E,
+ 384: 0xAE1F,
+ 385: 0xAE20,
+ 386: 0xAE21,
+ 387: 0xAE22,
+ 388: 0xAE23,
+ 389: 0xAE24,
+ 390: 0xAE25,
+ 391: 0xAE26,
+ 392: 0xAE27,
+ 393: 0xAE28,
+ 394: 0xAE29,
+ 395: 0xAE2A,
+ 396: 0xAE2B,
+ 397: 0xAE2C,
+ 398: 0xAE2D,
+ 399: 0xAE2E,
+ 400: 0xAE2F,
+ 401: 0xAE32,
+ 402: 0xAE33,
+ 403: 0xAE35,
+ 404: 0xAE36,
+ 405: 0xAE39,
+ 406: 0xAE3B,
+ 407: 0xAE3C,
+ 408: 0xAE3D,
+ 409: 0xAE3E,
+ 410: 0xAE3F,
+ 411: 0xAE42,
+ 412: 0xAE44,
+ 413: 0xAE47,
+ 414: 0xAE48,
+ 415: 0xAE49,
+ 416: 0xAE4B,
+ 417: 0xAE4F,
+ 418: 0xAE51,
+ 419: 0xAE52,
+ 420: 0xAE53,
+ 421: 0xAE55,
+ 422: 0xAE57,
+ 423: 0xAE58,
+ 424: 0xAE59,
+ 425: 0xAE5A,
+ 426: 0xAE5B,
+ 427: 0xAE5E,
+ 428: 0xAE62,
+ 429: 0xAE63,
+ 430: 0xAE64,
+ 431: 0xAE66,
+ 432: 0xAE67,
+ 433: 0xAE6A,
+ 434: 0xAE6B,
+ 435: 0xAE6D,
+ 436: 0xAE6E,
+ 437: 0xAE6F,
+ 438: 0xAE71,
+ 439: 0xAE72,
+ 440: 0xAE73,
+ 441: 0xAE74,
+ 442: 0xAE75,
+ 443: 0xAE76,
+ 444: 0xAE77,
+ 445: 0xAE7A,
+ 446: 0xAE7E,
+ 447: 0xAE7F,
+ 448: 0xAE80,
+ 449: 0xAE81,
+ 450: 0xAE82,
+ 451: 0xAE83,
+ 452: 0xAE86,
+ 453: 0xAE87,
+ 454: 0xAE88,
+ 455: 0xAE89,
+ 456: 0xAE8A,
+ 457: 0xAE8B,
+ 458: 0xAE8D,
+ 459: 0xAE8E,
+ 460: 0xAE8F,
+ 461: 0xAE90,
+ 462: 0xAE91,
+ 463: 0xAE92,
+ 464: 0xAE93,
+ 465: 0xAE94,
+ 466: 0xAE95,
+ 467: 0xAE96,
+ 468: 0xAE97,
+ 469: 0xAE98,
+ 470: 0xAE99,
+ 471: 0xAE9A,
+ 472: 0xAE9B,
+ 473: 0xAE9C,
+ 474: 0xAE9D,
+ 475: 0xAE9E,
+ 476: 0xAE9F,
+ 477: 0xAEA0,
+ 478: 0xAEA1,
+ 479: 0xAEA2,
+ 480: 0xAEA3,
+ 481: 0xAEA4,
+ 482: 0xAEA5,
+ 483: 0xAEA6,
+ 484: 0xAEA7,
+ 485: 0xAEA8,
+ 486: 0xAEA9,
+ 487: 0xAEAA,
+ 488: 0xAEAB,
+ 489: 0xAEAC,
+ 490: 0xAEAD,
+ 491: 0xAEAE,
+ 492: 0xAEAF,
+ 493: 0xAEB0,
+ 494: 0xAEB1,
+ 495: 0xAEB2,
+ 496: 0xAEB3,
+ 497: 0xAEB4,
+ 498: 0xAEB5,
+ 499: 0xAEB6,
+ 500: 0xAEB7,
+ 501: 0xAEB8,
+ 502: 0xAEB9,
+ 503: 0xAEBA,
+ 504: 0xAEBB,
+ 505: 0xAEBF,
+ 506: 0xAEC1,
+ 507: 0xAEC2,
+ 508: 0xAEC3,
+ 509: 0xAEC5,
+ 510: 0xAEC6,
+ 511: 0xAEC7,
+ 512: 0xAEC8,
+ 513: 0xAEC9,
+ 514: 0xAECA,
+ 515: 0xAECB,
+ 516: 0xAECE,
+ 517: 0xAED2,
+ 518: 0xAED3,
+ 519: 0xAED4,
+ 520: 0xAED5,
+ 521: 0xAED6,
+ 522: 0xAED7,
+ 523: 0xAEDA,
+ 524: 0xAEDB,
+ 525: 0xAEDD,
+ 526: 0xAEDE,
+ 527: 0xAEDF,
+ 528: 0xAEE0,
+ 529: 0xAEE1,
+ 530: 0xAEE2,
+ 531: 0xAEE3,
+ 532: 0xAEE4,
+ 533: 0xAEE5,
+ 534: 0xAEE6,
+ 535: 0xAEE7,
+ 536: 0xAEE9,
+ 537: 0xAEEA,
+ 538: 0xAEEC,
+ 539: 0xAEEE,
+ 540: 0xAEEF,
+ 541: 0xAEF0,
+ 542: 0xAEF1,
+ 543: 0xAEF2,
+ 544: 0xAEF3,
+ 545: 0xAEF5,
+ 546: 0xAEF6,
+ 547: 0xAEF7,
+ 548: 0xAEF9,
+ 549: 0xAEFA,
+ 550: 0xAEFB,
+ 551: 0xAEFD,
+ 552: 0xAEFE,
+ 553: 0xAEFF,
+ 554: 0xAF00,
+ 555: 0xAF01,
+ 556: 0xAF02,
+ 557: 0xAF03,
+ 558: 0xAF04,
+ 559: 0xAF05,
+ 560: 0xAF06,
+ 561: 0xAF09,
+ 562: 0xAF0A,
+ 563: 0xAF0B,
+ 564: 0xAF0C,
+ 565: 0xAF0E,
+ 566: 0xAF0F,
+ 567: 0xAF11,
+ 568: 0xAF12,
+ 569: 0xAF13,
+ 570: 0xAF14,
+ 571: 0xAF15,
+ 572: 0xAF16,
+ 573: 0xAF17,
+ 574: 0xAF18,
+ 575: 0xAF19,
+ 576: 0xAF1A,
+ 577: 0xAF1B,
+ 578: 0xAF1C,
+ 579: 0xAF1D,
+ 580: 0xAF1E,
+ 581: 0xAF1F,
+ 582: 0xAF20,
+ 583: 0xAF21,
+ 584: 0xAF22,
+ 585: 0xAF23,
+ 586: 0xAF24,
+ 587: 0xAF25,
+ 588: 0xAF26,
+ 589: 0xAF27,
+ 590: 0xAF28,
+ 591: 0xAF29,
+ 592: 0xAF2A,
+ 593: 0xAF2B,
+ 594: 0xAF2E,
+ 595: 0xAF2F,
+ 596: 0xAF31,
+ 597: 0xAF33,
+ 598: 0xAF35,
+ 599: 0xAF36,
+ 600: 0xAF37,
+ 601: 0xAF38,
+ 602: 0xAF39,
+ 603: 0xAF3A,
+ 604: 0xAF3B,
+ 605: 0xAF3E,
+ 606: 0xAF40,
+ 607: 0xAF44,
+ 608: 0xAF45,
+ 609: 0xAF46,
+ 610: 0xAF47,
+ 611: 0xAF4A,
+ 612: 0xAF4B,
+ 613: 0xAF4C,
+ 614: 0xAF4D,
+ 615: 0xAF4E,
+ 616: 0xAF4F,
+ 617: 0xAF51,
+ 618: 0xAF52,
+ 619: 0xAF53,
+ 620: 0xAF54,
+ 621: 0xAF55,
+ 622: 0xAF56,
+ 623: 0xAF57,
+ 624: 0xAF58,
+ 625: 0xAF59,
+ 626: 0xAF5A,
+ 627: 0xAF5B,
+ 628: 0xAF5E,
+ 629: 0xAF5F,
+ 630: 0xAF60,
+ 631: 0xAF61,
+ 632: 0xAF62,
+ 633: 0xAF63,
+ 634: 0xAF66,
+ 635: 0xAF67,
+ 636: 0xAF68,
+ 637: 0xAF69,
+ 638: 0xAF6A,
+ 639: 0xAF6B,
+ 640: 0xAF6C,
+ 641: 0xAF6D,
+ 642: 0xAF6E,
+ 643: 0xAF6F,
+ 644: 0xAF70,
+ 645: 0xAF71,
+ 646: 0xAF72,
+ 647: 0xAF73,
+ 648: 0xAF74,
+ 649: 0xAF75,
+ 650: 0xAF76,
+ 651: 0xAF77,
+ 652: 0xAF78,
+ 653: 0xAF7A,
+ 654: 0xAF7B,
+ 655: 0xAF7C,
+ 656: 0xAF7D,
+ 657: 0xAF7E,
+ 658: 0xAF7F,
+ 659: 0xAF81,
+ 660: 0xAF82,
+ 661: 0xAF83,
+ 662: 0xAF85,
+ 663: 0xAF86,
+ 664: 0xAF87,
+ 665: 0xAF89,
+ 666: 0xAF8A,
+ 667: 0xAF8B,
+ 668: 0xAF8C,
+ 669: 0xAF8D,
+ 670: 0xAF8E,
+ 671: 0xAF8F,
+ 672: 0xAF92,
+ 673: 0xAF93,
+ 674: 0xAF94,
+ 675: 0xAF96,
+ 676: 0xAF97,
+ 677: 0xAF98,
+ 678: 0xAF99,
+ 679: 0xAF9A,
+ 680: 0xAF9B,
+ 681: 0xAF9D,
+ 682: 0xAF9E,
+ 683: 0xAF9F,
+ 684: 0xAFA0,
+ 685: 0xAFA1,
+ 686: 0xAFA2,
+ 687: 0xAFA3,
+ 688: 0xAFA4,
+ 689: 0xAFA5,
+ 690: 0xAFA6,
+ 691: 0xAFA7,
+ 692: 0xAFA8,
+ 693: 0xAFA9,
+ 694: 0xAFAA,
+ 695: 0xAFAB,
+ 696: 0xAFAC,
+ 697: 0xAFAD,
+ 698: 0xAFAE,
+ 699: 0xAFAF,
+ 700: 0xAFB0,
+ 701: 0xAFB1,
+ 702: 0xAFB2,
+ 703: 0xAFB3,
+ 704: 0xAFB4,
+ 705: 0xAFB5,
+ 706: 0xAFB6,
+ 707: 0xAFB7,
+ 708: 0xAFBA,
+ 709: 0xAFBB,
+ 710: 0xAFBD,
+ 711: 0xAFBE,
+ 712: 0xAFBF,
+ 713: 0xAFC1,
+ 714: 0xAFC2,
+ 715: 0xAFC3,
+ 716: 0xAFC4,
+ 717: 0xAFC5,
+ 718: 0xAFC6,
+ 719: 0xAFCA,
+ 720: 0xAFCC,
+ 721: 0xAFCF,
+ 722: 0xAFD0,
+ 723: 0xAFD1,
+ 724: 0xAFD2,
+ 725: 0xAFD3,
+ 726: 0xAFD5,
+ 727: 0xAFD6,
+ 728: 0xAFD7,
+ 729: 0xAFD8,
+ 730: 0xAFD9,
+ 731: 0xAFDA,
+ 732: 0xAFDB,
+ 733: 0xAFDD,
+ 734: 0xAFDE,
+ 735: 0xAFDF,
+ 736: 0xAFE0,
+ 737: 0xAFE1,
+ 738: 0xAFE2,
+ 739: 0xAFE3,
+ 740: 0xAFE4,
+ 741: 0xAFE5,
+ 742: 0xAFE6,
+ 743: 0xAFE7,
+ 744: 0xAFEA,
+ 745: 0xAFEB,
+ 746: 0xAFEC,
+ 747: 0xAFED,
+ 748: 0xAFEE,
+ 749: 0xAFEF,
+ 750: 0xAFF2,
+ 751: 0xAFF3,
+ 752: 0xAFF5,
+ 753: 0xAFF6,
+ 754: 0xAFF7,
+ 755: 0xAFF9,
+ 756: 0xAFFA,
+ 757: 0xAFFB,
+ 758: 0xAFFC,
+ 759: 0xAFFD,
+ 760: 0xAFFE,
+ 761: 0xAFFF,
+ 762: 0xB002,
+ 763: 0xB003,
+ 764: 0xB005,
+ 765: 0xB006,
+ 766: 0xB007,
+ 767: 0xB008,
+ 768: 0xB009,
+ 769: 0xB00A,
+ 770: 0xB00B,
+ 771: 0xB00D,
+ 772: 0xB00E,
+ 773: 0xB00F,
+ 774: 0xB011,
+ 775: 0xB012,
+ 776: 0xB013,
+ 777: 0xB015,
+ 778: 0xB016,
+ 779: 0xB017,
+ 780: 0xB018,
+ 781: 0xB019,
+ 782: 0xB01A,
+ 783: 0xB01B,
+ 784: 0xB01E,
+ 785: 0xB01F,
+ 786: 0xB020,
+ 787: 0xB021,
+ 788: 0xB022,
+ 789: 0xB023,
+ 790: 0xB024,
+ 791: 0xB025,
+ 792: 0xB026,
+ 793: 0xB027,
+ 794: 0xB029,
+ 795: 0xB02A,
+ 796: 0xB02B,
+ 797: 0xB02C,
+ 798: 0xB02D,
+ 799: 0xB02E,
+ 800: 0xB02F,
+ 801: 0xB030,
+ 802: 0xB031,
+ 803: 0xB032,
+ 804: 0xB033,
+ 805: 0xB034,
+ 806: 0xB035,
+ 807: 0xB036,
+ 808: 0xB037,
+ 809: 0xB038,
+ 810: 0xB039,
+ 811: 0xB03A,
+ 812: 0xB03B,
+ 813: 0xB03C,
+ 814: 0xB03D,
+ 815: 0xB03E,
+ 816: 0xB03F,
+ 817: 0xB040,
+ 818: 0xB041,
+ 819: 0xB042,
+ 820: 0xB043,
+ 821: 0xB046,
+ 822: 0xB047,
+ 823: 0xB049,
+ 824: 0xB04B,
+ 825: 0xB04D,
+ 826: 0xB04F,
+ 827: 0xB050,
+ 828: 0xB051,
+ 829: 0xB052,
+ 830: 0xB056,
+ 831: 0xB058,
+ 832: 0xB05A,
+ 833: 0xB05B,
+ 834: 0xB05C,
+ 835: 0xB05E,
+ 836: 0xB05F,
+ 837: 0xB060,
+ 838: 0xB061,
+ 839: 0xB062,
+ 840: 0xB063,
+ 841: 0xB064,
+ 842: 0xB065,
+ 843: 0xB066,
+ 844: 0xB067,
+ 845: 0xB068,
+ 846: 0xB069,
+ 847: 0xB06A,
+ 848: 0xB06B,
+ 849: 0xB06C,
+ 850: 0xB06D,
+ 851: 0xB06E,
+ 852: 0xB06F,
+ 853: 0xB070,
+ 854: 0xB071,
+ 855: 0xB072,
+ 856: 0xB073,
+ 857: 0xB074,
+ 858: 0xB075,
+ 859: 0xB076,
+ 860: 0xB077,
+ 861: 0xB078,
+ 862: 0xB079,
+ 863: 0xB07A,
+ 864: 0xB07B,
+ 865: 0xB07E,
+ 866: 0xB07F,
+ 867: 0xB081,
+ 868: 0xB082,
+ 869: 0xB083,
+ 870: 0xB085,
+ 871: 0xB086,
+ 872: 0xB087,
+ 873: 0xB088,
+ 874: 0xB089,
+ 875: 0xB08A,
+ 876: 0xB08B,
+ 877: 0xB08E,
+ 878: 0xB090,
+ 879: 0xB092,
+ 880: 0xB093,
+ 881: 0xB094,
+ 882: 0xB095,
+ 883: 0xB096,
+ 884: 0xB097,
+ 885: 0xB09B,
+ 886: 0xB09D,
+ 887: 0xB09E,
+ 888: 0xB0A3,
+ 889: 0xB0A4,
+ 890: 0xB0A5,
+ 891: 0xB0A6,
+ 892: 0xB0A7,
+ 893: 0xB0AA,
+ 894: 0xB0B0,
+ 895: 0xB0B2,
+ 896: 0xB0B6,
+ 897: 0xB0B7,
+ 898: 0xB0B9,
+ 899: 0xB0BA,
+ 900: 0xB0BB,
+ 901: 0xB0BD,
+ 902: 0xB0BE,
+ 903: 0xB0BF,
+ 904: 0xB0C0,
+ 905: 0xB0C1,
+ 906: 0xB0C2,
+ 907: 0xB0C3,
+ 908: 0xB0C6,
+ 909: 0xB0CA,
+ 910: 0xB0CB,
+ 911: 0xB0CC,
+ 912: 0xB0CD,
+ 913: 0xB0CE,
+ 914: 0xB0CF,
+ 915: 0xB0D2,
+ 916: 0xB0D3,
+ 917: 0xB0D5,
+ 918: 0xB0D6,
+ 919: 0xB0D7,
+ 920: 0xB0D9,
+ 921: 0xB0DA,
+ 922: 0xB0DB,
+ 923: 0xB0DC,
+ 924: 0xB0DD,
+ 925: 0xB0DE,
+ 926: 0xB0DF,
+ 927: 0xB0E1,
+ 928: 0xB0E2,
+ 929: 0xB0E3,
+ 930: 0xB0E4,
+ 931: 0xB0E6,
+ 932: 0xB0E7,
+ 933: 0xB0E8,
+ 934: 0xB0E9,
+ 935: 0xB0EA,
+ 936: 0xB0EB,
+ 937: 0xB0EC,
+ 938: 0xB0ED,
+ 939: 0xB0EE,
+ 940: 0xB0EF,
+ 941: 0xB0F0,
+ 942: 0xB0F1,
+ 943: 0xB0F2,
+ 944: 0xB0F3,
+ 945: 0xB0F4,
+ 946: 0xB0F5,
+ 947: 0xB0F6,
+ 948: 0xB0F7,
+ 949: 0xB0F8,
+ 950: 0xB0F9,
+ 951: 0xB0FA,
+ 952: 0xB0FB,
+ 953: 0xB0FC,
+ 954: 0xB0FD,
+ 955: 0xB0FE,
+ 956: 0xB0FF,
+ 957: 0xB100,
+ 958: 0xB101,
+ 959: 0xB102,
+ 960: 0xB103,
+ 961: 0xB104,
+ 962: 0xB105,
+ 963: 0xB106,
+ 964: 0xB107,
+ 965: 0xB10A,
+ 966: 0xB10D,
+ 967: 0xB10E,
+ 968: 0xB10F,
+ 969: 0xB111,
+ 970: 0xB114,
+ 971: 0xB115,
+ 972: 0xB116,
+ 973: 0xB117,
+ 974: 0xB11A,
+ 975: 0xB11E,
+ 976: 0xB11F,
+ 977: 0xB120,
+ 978: 0xB121,
+ 979: 0xB122,
+ 980: 0xB126,
+ 981: 0xB127,
+ 982: 0xB129,
+ 983: 0xB12A,
+ 984: 0xB12B,
+ 985: 0xB12D,
+ 986: 0xB12E,
+ 987: 0xB12F,
+ 988: 0xB130,
+ 989: 0xB131,
+ 990: 0xB132,
+ 991: 0xB133,
+ 992: 0xB136,
+ 993: 0xB13A,
+ 994: 0xB13B,
+ 995: 0xB13C,
+ 996: 0xB13D,
+ 997: 0xB13E,
+ 998: 0xB13F,
+ 999: 0xB142,
+ 1000: 0xB143,
+ 1001: 0xB145,
+ 1002: 0xB146,
+ 1003: 0xB147,
+ 1004: 0xB149,
+ 1005: 0xB14A,
+ 1006: 0xB14B,
+ 1007: 0xB14C,
+ 1008: 0xB14D,
+ 1009: 0xB14E,
+ 1010: 0xB14F,
+ 1011: 0xB152,
+ 1012: 0xB153,
+ 1013: 0xB156,
+ 1014: 0xB157,
+ 1015: 0xB159,
+ 1016: 0xB15A,
+ 1017: 0xB15B,
+ 1018: 0xB15D,
+ 1019: 0xB15E,
+ 1020: 0xB15F,
+ 1021: 0xB161,
+ 1022: 0xB162,
+ 1023: 0xB163,
+ 1024: 0xB164,
+ 1025: 0xB165,
+ 1026: 0xB166,
+ 1027: 0xB167,
+ 1028: 0xB168,
+ 1029: 0xB169,
+ 1030: 0xB16A,
+ 1031: 0xB16B,
+ 1032: 0xB16C,
+ 1033: 0xB16D,
+ 1034: 0xB16E,
+ 1035: 0xB16F,
+ 1036: 0xB170,
+ 1037: 0xB171,
+ 1038: 0xB172,
+ 1039: 0xB173,
+ 1040: 0xB174,
+ 1041: 0xB175,
+ 1042: 0xB176,
+ 1043: 0xB177,
+ 1044: 0xB17A,
+ 1045: 0xB17B,
+ 1046: 0xB17D,
+ 1047: 0xB17E,
+ 1048: 0xB17F,
+ 1049: 0xB181,
+ 1050: 0xB183,
+ 1051: 0xB184,
+ 1052: 0xB185,
+ 1053: 0xB186,
+ 1054: 0xB187,
+ 1055: 0xB18A,
+ 1056: 0xB18C,
+ 1057: 0xB18E,
+ 1058: 0xB18F,
+ 1059: 0xB190,
+ 1060: 0xB191,
+ 1061: 0xB195,
+ 1062: 0xB196,
+ 1063: 0xB197,
+ 1064: 0xB199,
+ 1065: 0xB19A,
+ 1066: 0xB19B,
+ 1067: 0xB19D,
+ 1068: 0xB19E,
+ 1069: 0xB19F,
+ 1070: 0xB1A0,
+ 1071: 0xB1A1,
+ 1072: 0xB1A2,
+ 1073: 0xB1A3,
+ 1074: 0xB1A4,
+ 1075: 0xB1A5,
+ 1076: 0xB1A6,
+ 1077: 0xB1A7,
+ 1078: 0xB1A9,
+ 1079: 0xB1AA,
+ 1080: 0xB1AB,
+ 1081: 0xB1AC,
+ 1082: 0xB1AD,
+ 1083: 0xB1AE,
+ 1084: 0xB1AF,
+ 1085: 0xB1B0,
+ 1086: 0xB1B1,
+ 1087: 0xB1B2,
+ 1088: 0xB1B3,
+ 1089: 0xB1B4,
+ 1090: 0xB1B5,
+ 1091: 0xB1B6,
+ 1092: 0xB1B7,
+ 1093: 0xB1B8,
+ 1094: 0xB1B9,
+ 1095: 0xB1BA,
+ 1096: 0xB1BB,
+ 1097: 0xB1BC,
+ 1098: 0xB1BD,
+ 1099: 0xB1BE,
+ 1100: 0xB1BF,
+ 1101: 0xB1C0,
+ 1102: 0xB1C1,
+ 1103: 0xB1C2,
+ 1104: 0xB1C3,
+ 1105: 0xB1C4,
+ 1106: 0xB1C5,
+ 1107: 0xB1C6,
+ 1108: 0xB1C7,
+ 1109: 0xB1C8,
+ 1110: 0xB1C9,
+ 1111: 0xB1CA,
+ 1112: 0xB1CB,
+ 1113: 0xB1CD,
+ 1114: 0xB1CE,
+ 1115: 0xB1CF,
+ 1116: 0xB1D1,
+ 1117: 0xB1D2,
+ 1118: 0xB1D3,
+ 1119: 0xB1D5,
+ 1120: 0xB1D6,
+ 1121: 0xB1D7,
+ 1122: 0xB1D8,
+ 1123: 0xB1D9,
+ 1124: 0xB1DA,
+ 1125: 0xB1DB,
+ 1126: 0xB1DE,
+ 1127: 0xB1E0,
+ 1128: 0xB1E1,
+ 1129: 0xB1E2,
+ 1130: 0xB1E3,
+ 1131: 0xB1E4,
+ 1132: 0xB1E5,
+ 1133: 0xB1E6,
+ 1134: 0xB1E7,
+ 1135: 0xB1EA,
+ 1136: 0xB1EB,
+ 1137: 0xB1ED,
+ 1138: 0xB1EE,
+ 1139: 0xB1EF,
+ 1140: 0xB1F1,
+ 1141: 0xB1F2,
+ 1142: 0xB1F3,
+ 1143: 0xB1F4,
+ 1144: 0xB1F5,
+ 1145: 0xB1F6,
+ 1146: 0xB1F7,
+ 1147: 0xB1F8,
+ 1148: 0xB1FA,
+ 1149: 0xB1FC,
+ 1150: 0xB1FE,
+ 1151: 0xB1FF,
+ 1152: 0xB200,
+ 1153: 0xB201,
+ 1154: 0xB202,
+ 1155: 0xB203,
+ 1156: 0xB206,
+ 1157: 0xB207,
+ 1158: 0xB209,
+ 1159: 0xB20A,
+ 1160: 0xB20D,
+ 1161: 0xB20E,
+ 1162: 0xB20F,
+ 1163: 0xB210,
+ 1164: 0xB211,
+ 1165: 0xB212,
+ 1166: 0xB213,
+ 1167: 0xB216,
+ 1168: 0xB218,
+ 1169: 0xB21A,
+ 1170: 0xB21B,
+ 1171: 0xB21C,
+ 1172: 0xB21D,
+ 1173: 0xB21E,
+ 1174: 0xB21F,
+ 1175: 0xB221,
+ 1176: 0xB222,
+ 1177: 0xB223,
+ 1178: 0xB224,
+ 1179: 0xB225,
+ 1180: 0xB226,
+ 1181: 0xB227,
+ 1182: 0xB228,
+ 1183: 0xB229,
+ 1184: 0xB22A,
+ 1185: 0xB22B,
+ 1186: 0xB22C,
+ 1187: 0xB22D,
+ 1188: 0xB22E,
+ 1189: 0xB22F,
+ 1190: 0xB230,
+ 1191: 0xB231,
+ 1192: 0xB232,
+ 1193: 0xB233,
+ 1194: 0xB235,
+ 1195: 0xB236,
+ 1196: 0xB237,
+ 1197: 0xB238,
+ 1198: 0xB239,
+ 1199: 0xB23A,
+ 1200: 0xB23B,
+ 1201: 0xB23D,
+ 1202: 0xB23E,
+ 1203: 0xB23F,
+ 1204: 0xB240,
+ 1205: 0xB241,
+ 1206: 0xB242,
+ 1207: 0xB243,
+ 1208: 0xB244,
+ 1209: 0xB245,
+ 1210: 0xB246,
+ 1211: 0xB247,
+ 1212: 0xB248,
+ 1213: 0xB249,
+ 1214: 0xB24A,
+ 1215: 0xB24B,
+ 1216: 0xB24C,
+ 1217: 0xB24D,
+ 1218: 0xB24E,
+ 1219: 0xB24F,
+ 1220: 0xB250,
+ 1221: 0xB251,
+ 1222: 0xB252,
+ 1223: 0xB253,
+ 1224: 0xB254,
+ 1225: 0xB255,
+ 1226: 0xB256,
+ 1227: 0xB257,
+ 1228: 0xB259,
+ 1229: 0xB25A,
+ 1230: 0xB25B,
+ 1231: 0xB25D,
+ 1232: 0xB25E,
+ 1233: 0xB25F,
+ 1234: 0xB261,
+ 1235: 0xB262,
+ 1236: 0xB263,
+ 1237: 0xB264,
+ 1238: 0xB265,
+ 1239: 0xB266,
+ 1240: 0xB267,
+ 1241: 0xB26A,
+ 1242: 0xB26B,
+ 1243: 0xB26C,
+ 1244: 0xB26D,
+ 1245: 0xB26E,
+ 1246: 0xB26F,
+ 1247: 0xB270,
+ 1248: 0xB271,
+ 1249: 0xB272,
+ 1250: 0xB273,
+ 1251: 0xB276,
+ 1252: 0xB277,
+ 1253: 0xB278,
+ 1254: 0xB279,
+ 1255: 0xB27A,
+ 1256: 0xB27B,
+ 1257: 0xB27D,
+ 1258: 0xB27E,
+ 1259: 0xB27F,
+ 1260: 0xB280,
+ 1261: 0xB281,
+ 1262: 0xB282,
+ 1263: 0xB283,
+ 1264: 0xB286,
+ 1265: 0xB287,
+ 1266: 0xB288,
+ 1267: 0xB28A,
+ 1268: 0xB28B,
+ 1269: 0xB28C,
+ 1270: 0xB28D,
+ 1271: 0xB28E,
+ 1272: 0xB28F,
+ 1273: 0xB292,
+ 1274: 0xB293,
+ 1275: 0xB295,
+ 1276: 0xB296,
+ 1277: 0xB297,
+ 1278: 0xB29B,
+ 1279: 0xB29C,
+ 1280: 0xB29D,
+ 1281: 0xB29E,
+ 1282: 0xB29F,
+ 1283: 0xB2A2,
+ 1284: 0xB2A4,
+ 1285: 0xB2A7,
+ 1286: 0xB2A8,
+ 1287: 0xB2A9,
+ 1288: 0xB2AB,
+ 1289: 0xB2AD,
+ 1290: 0xB2AE,
+ 1291: 0xB2AF,
+ 1292: 0xB2B1,
+ 1293: 0xB2B2,
+ 1294: 0xB2B3,
+ 1295: 0xB2B5,
+ 1296: 0xB2B6,
+ 1297: 0xB2B7,
+ 1298: 0xB2B8,
+ 1299: 0xB2B9,
+ 1300: 0xB2BA,
+ 1301: 0xB2BB,
+ 1302: 0xB2BC,
+ 1303: 0xB2BD,
+ 1304: 0xB2BE,
+ 1305: 0xB2BF,
+ 1306: 0xB2C0,
+ 1307: 0xB2C1,
+ 1308: 0xB2C2,
+ 1309: 0xB2C3,
+ 1310: 0xB2C4,
+ 1311: 0xB2C5,
+ 1312: 0xB2C6,
+ 1313: 0xB2C7,
+ 1314: 0xB2CA,
+ 1315: 0xB2CB,
+ 1316: 0xB2CD,
+ 1317: 0xB2CE,
+ 1318: 0xB2CF,
+ 1319: 0xB2D1,
+ 1320: 0xB2D3,
+ 1321: 0xB2D4,
+ 1322: 0xB2D5,
+ 1323: 0xB2D6,
+ 1324: 0xB2D7,
+ 1325: 0xB2DA,
+ 1326: 0xB2DC,
+ 1327: 0xB2DE,
+ 1328: 0xB2DF,
+ 1329: 0xB2E0,
+ 1330: 0xB2E1,
+ 1331: 0xB2E3,
+ 1332: 0xB2E7,
+ 1333: 0xB2E9,
+ 1334: 0xB2EA,
+ 1335: 0xB2F0,
+ 1336: 0xB2F1,
+ 1337: 0xB2F2,
+ 1338: 0xB2F6,
+ 1339: 0xB2FC,
+ 1340: 0xB2FD,
+ 1341: 0xB2FE,
+ 1342: 0xB302,
+ 1343: 0xB303,
+ 1344: 0xB305,
+ 1345: 0xB306,
+ 1346: 0xB307,
+ 1347: 0xB309,
+ 1348: 0xB30A,
+ 1349: 0xB30B,
+ 1350: 0xB30C,
+ 1351: 0xB30D,
+ 1352: 0xB30E,
+ 1353: 0xB30F,
+ 1354: 0xB312,
+ 1355: 0xB316,
+ 1356: 0xB317,
+ 1357: 0xB318,
+ 1358: 0xB319,
+ 1359: 0xB31A,
+ 1360: 0xB31B,
+ 1361: 0xB31D,
+ 1362: 0xB31E,
+ 1363: 0xB31F,
+ 1364: 0xB320,
+ 1365: 0xB321,
+ 1366: 0xB322,
+ 1367: 0xB323,
+ 1368: 0xB324,
+ 1369: 0xB325,
+ 1370: 0xB326,
+ 1371: 0xB327,
+ 1372: 0xB328,
+ 1373: 0xB329,
+ 1374: 0xB32A,
+ 1375: 0xB32B,
+ 1376: 0xB32C,
+ 1377: 0xB32D,
+ 1378: 0xB32E,
+ 1379: 0xB32F,
+ 1380: 0xB330,
+ 1381: 0xB331,
+ 1382: 0xB332,
+ 1383: 0xB333,
+ 1384: 0xB334,
+ 1385: 0xB335,
+ 1386: 0xB336,
+ 1387: 0xB337,
+ 1388: 0xB338,
+ 1389: 0xB339,
+ 1390: 0xB33A,
+ 1391: 0xB33B,
+ 1392: 0xB33C,
+ 1393: 0xB33D,
+ 1394: 0xB33E,
+ 1395: 0xB33F,
+ 1396: 0xB340,
+ 1397: 0xB341,
+ 1398: 0xB342,
+ 1399: 0xB343,
+ 1400: 0xB344,
+ 1401: 0xB345,
+ 1402: 0xB346,
+ 1403: 0xB347,
+ 1404: 0xB348,
+ 1405: 0xB349,
+ 1406: 0xB34A,
+ 1407: 0xB34B,
+ 1408: 0xB34C,
+ 1409: 0xB34D,
+ 1410: 0xB34E,
+ 1411: 0xB34F,
+ 1412: 0xB350,
+ 1413: 0xB351,
+ 1414: 0xB352,
+ 1415: 0xB353,
+ 1416: 0xB357,
+ 1417: 0xB359,
+ 1418: 0xB35A,
+ 1419: 0xB35D,
+ 1420: 0xB360,
+ 1421: 0xB361,
+ 1422: 0xB362,
+ 1423: 0xB363,
+ 1424: 0xB366,
+ 1425: 0xB368,
+ 1426: 0xB36A,
+ 1427: 0xB36C,
+ 1428: 0xB36D,
+ 1429: 0xB36F,
+ 1430: 0xB372,
+ 1431: 0xB373,
+ 1432: 0xB375,
+ 1433: 0xB376,
+ 1434: 0xB377,
+ 1435: 0xB379,
+ 1436: 0xB37A,
+ 1437: 0xB37B,
+ 1438: 0xB37C,
+ 1439: 0xB37D,
+ 1440: 0xB37E,
+ 1441: 0xB37F,
+ 1442: 0xB382,
+ 1443: 0xB386,
+ 1444: 0xB387,
+ 1445: 0xB388,
+ 1446: 0xB389,
+ 1447: 0xB38A,
+ 1448: 0xB38B,
+ 1449: 0xB38D,
+ 1450: 0xB38E,
+ 1451: 0xB38F,
+ 1452: 0xB391,
+ 1453: 0xB392,
+ 1454: 0xB393,
+ 1455: 0xB395,
+ 1456: 0xB396,
+ 1457: 0xB397,
+ 1458: 0xB398,
+ 1459: 0xB399,
+ 1460: 0xB39A,
+ 1461: 0xB39B,
+ 1462: 0xB39C,
+ 1463: 0xB39D,
+ 1464: 0xB39E,
+ 1465: 0xB39F,
+ 1466: 0xB3A2,
+ 1467: 0xB3A3,
+ 1468: 0xB3A4,
+ 1469: 0xB3A5,
+ 1470: 0xB3A6,
+ 1471: 0xB3A7,
+ 1472: 0xB3A9,
+ 1473: 0xB3AA,
+ 1474: 0xB3AB,
+ 1475: 0xB3AD,
+ 1476: 0xB3AE,
+ 1477: 0xB3AF,
+ 1478: 0xB3B0,
+ 1479: 0xB3B1,
+ 1480: 0xB3B2,
+ 1481: 0xB3B3,
+ 1482: 0xB3B4,
+ 1483: 0xB3B5,
+ 1484: 0xB3B6,
+ 1485: 0xB3B7,
+ 1486: 0xB3B8,
+ 1487: 0xB3B9,
+ 1488: 0xB3BA,
+ 1489: 0xB3BB,
+ 1490: 0xB3BC,
+ 1491: 0xB3BD,
+ 1492: 0xB3BE,
+ 1493: 0xB3BF,
+ 1494: 0xB3C0,
+ 1495: 0xB3C1,
+ 1496: 0xB3C2,
+ 1497: 0xB3C3,
+ 1498: 0xB3C6,
+ 1499: 0xB3C7,
+ 1500: 0xB3C9,
+ 1501: 0xB3CA,
+ 1502: 0xB3CD,
+ 1503: 0xB3CF,
+ 1504: 0xB3D1,
+ 1505: 0xB3D2,
+ 1506: 0xB3D3,
+ 1507: 0xB3D6,
+ 1508: 0xB3D8,
+ 1509: 0xB3DA,
+ 1510: 0xB3DC,
+ 1511: 0xB3DE,
+ 1512: 0xB3DF,
+ 1513: 0xB3E1,
+ 1514: 0xB3E2,
+ 1515: 0xB3E3,
+ 1516: 0xB3E5,
+ 1517: 0xB3E6,
+ 1518: 0xB3E7,
+ 1519: 0xB3E9,
+ 1520: 0xB3EA,
+ 1521: 0xB3EB,
+ 1522: 0xB3EC,
+ 1523: 0xB3ED,
+ 1524: 0xB3EE,
+ 1525: 0xB3EF,
+ 1526: 0xB3F0,
+ 1527: 0xB3F1,
+ 1528: 0xB3F2,
+ 1529: 0xB3F3,
+ 1530: 0xB3F4,
+ 1531: 0xB3F5,
+ 1532: 0xB3F6,
+ 1533: 0xB3F7,
+ 1534: 0xB3F8,
+ 1535: 0xB3F9,
+ 1536: 0xB3FA,
+ 1537: 0xB3FB,
+ 1538: 0xB3FD,
+ 1539: 0xB3FE,
+ 1540: 0xB3FF,
+ 1541: 0xB400,
+ 1542: 0xB401,
+ 1543: 0xB402,
+ 1544: 0xB403,
+ 1545: 0xB404,
+ 1546: 0xB405,
+ 1547: 0xB406,
+ 1548: 0xB407,
+ 1549: 0xB408,
+ 1550: 0xB409,
+ 1551: 0xB40A,
+ 1552: 0xB40B,
+ 1553: 0xB40C,
+ 1554: 0xB40D,
+ 1555: 0xB40E,
+ 1556: 0xB40F,
+ 1557: 0xB411,
+ 1558: 0xB412,
+ 1559: 0xB413,
+ 1560: 0xB414,
+ 1561: 0xB415,
+ 1562: 0xB416,
+ 1563: 0xB417,
+ 1564: 0xB419,
+ 1565: 0xB41A,
+ 1566: 0xB41B,
+ 1567: 0xB41D,
+ 1568: 0xB41E,
+ 1569: 0xB41F,
+ 1570: 0xB421,
+ 1571: 0xB422,
+ 1572: 0xB423,
+ 1573: 0xB424,
+ 1574: 0xB425,
+ 1575: 0xB426,
+ 1576: 0xB427,
+ 1577: 0xB42A,
+ 1578: 0xB42C,
+ 1579: 0xB42D,
+ 1580: 0xB42E,
+ 1581: 0xB42F,
+ 1582: 0xB430,
+ 1583: 0xB431,
+ 1584: 0xB432,
+ 1585: 0xB433,
+ 1586: 0xB435,
+ 1587: 0xB436,
+ 1588: 0xB437,
+ 1589: 0xB438,
+ 1590: 0xB439,
+ 1591: 0xB43A,
+ 1592: 0xB43B,
+ 1593: 0xB43C,
+ 1594: 0xB43D,
+ 1595: 0xB43E,
+ 1596: 0xB43F,
+ 1597: 0xB440,
+ 1598: 0xB441,
+ 1599: 0xB442,
+ 1600: 0xB443,
+ 1601: 0xB444,
+ 1602: 0xB445,
+ 1603: 0xB446,
+ 1604: 0xB447,
+ 1605: 0xB448,
+ 1606: 0xB449,
+ 1607: 0xB44A,
+ 1608: 0xB44B,
+ 1609: 0xB44C,
+ 1610: 0xB44D,
+ 1611: 0xB44E,
+ 1612: 0xB44F,
+ 1613: 0xB452,
+ 1614: 0xB453,
+ 1615: 0xB455,
+ 1616: 0xB456,
+ 1617: 0xB457,
+ 1618: 0xB459,
+ 1619: 0xB45A,
+ 1620: 0xB45B,
+ 1621: 0xB45C,
+ 1622: 0xB45D,
+ 1623: 0xB45E,
+ 1624: 0xB45F,
+ 1625: 0xB462,
+ 1626: 0xB464,
+ 1627: 0xB466,
+ 1628: 0xB467,
+ 1629: 0xB468,
+ 1630: 0xB469,
+ 1631: 0xB46A,
+ 1632: 0xB46B,
+ 1633: 0xB46D,
+ 1634: 0xB46E,
+ 1635: 0xB46F,
+ 1636: 0xB470,
+ 1637: 0xB471,
+ 1638: 0xB472,
+ 1639: 0xB473,
+ 1640: 0xB474,
+ 1641: 0xB475,
+ 1642: 0xB476,
+ 1643: 0xB477,
+ 1644: 0xB478,
+ 1645: 0xB479,
+ 1646: 0xB47A,
+ 1647: 0xB47B,
+ 1648: 0xB47C,
+ 1649: 0xB47D,
+ 1650: 0xB47E,
+ 1651: 0xB47F,
+ 1652: 0xB481,
+ 1653: 0xB482,
+ 1654: 0xB483,
+ 1655: 0xB484,
+ 1656: 0xB485,
+ 1657: 0xB486,
+ 1658: 0xB487,
+ 1659: 0xB489,
+ 1660: 0xB48A,
+ 1661: 0xB48B,
+ 1662: 0xB48C,
+ 1663: 0xB48D,
+ 1664: 0xB48E,
+ 1665: 0xB48F,
+ 1666: 0xB490,
+ 1667: 0xB491,
+ 1668: 0xB492,
+ 1669: 0xB493,
+ 1670: 0xB494,
+ 1671: 0xB495,
+ 1672: 0xB496,
+ 1673: 0xB497,
+ 1674: 0xB498,
+ 1675: 0xB499,
+ 1676: 0xB49A,
+ 1677: 0xB49B,
+ 1678: 0xB49C,
+ 1679: 0xB49E,
+ 1680: 0xB49F,
+ 1681: 0xB4A0,
+ 1682: 0xB4A1,
+ 1683: 0xB4A2,
+ 1684: 0xB4A3,
+ 1685: 0xB4A5,
+ 1686: 0xB4A6,
+ 1687: 0xB4A7,
+ 1688: 0xB4A9,
+ 1689: 0xB4AA,
+ 1690: 0xB4AB,
+ 1691: 0xB4AD,
+ 1692: 0xB4AE,
+ 1693: 0xB4AF,
+ 1694: 0xB4B0,
+ 1695: 0xB4B1,
+ 1696: 0xB4B2,
+ 1697: 0xB4B3,
+ 1698: 0xB4B4,
+ 1699: 0xB4B6,
+ 1700: 0xB4B8,
+ 1701: 0xB4BA,
+ 1702: 0xB4BB,
+ 1703: 0xB4BC,
+ 1704: 0xB4BD,
+ 1705: 0xB4BE,
+ 1706: 0xB4BF,
+ 1707: 0xB4C1,
+ 1708: 0xB4C2,
+ 1709: 0xB4C3,
+ 1710: 0xB4C5,
+ 1711: 0xB4C6,
+ 1712: 0xB4C7,
+ 1713: 0xB4C9,
+ 1714: 0xB4CA,
+ 1715: 0xB4CB,
+ 1716: 0xB4CC,
+ 1717: 0xB4CD,
+ 1718: 0xB4CE,
+ 1719: 0xB4CF,
+ 1720: 0xB4D1,
+ 1721: 0xB4D2,
+ 1722: 0xB4D3,
+ 1723: 0xB4D4,
+ 1724: 0xB4D6,
+ 1725: 0xB4D7,
+ 1726: 0xB4D8,
+ 1727: 0xB4D9,
+ 1728: 0xB4DA,
+ 1729: 0xB4DB,
+ 1730: 0xB4DE,
+ 1731: 0xB4DF,
+ 1732: 0xB4E1,
+ 1733: 0xB4E2,
+ 1734: 0xB4E5,
+ 1735: 0xB4E7,
+ 1736: 0xB4E8,
+ 1737: 0xB4E9,
+ 1738: 0xB4EA,
+ 1739: 0xB4EB,
+ 1740: 0xB4EE,
+ 1741: 0xB4F0,
+ 1742: 0xB4F2,
+ 1743: 0xB4F3,
+ 1744: 0xB4F4,
+ 1745: 0xB4F5,
+ 1746: 0xB4F6,
+ 1747: 0xB4F7,
+ 1748: 0xB4F9,
+ 1749: 0xB4FA,
+ 1750: 0xB4FB,
+ 1751: 0xB4FC,
+ 1752: 0xB4FD,
+ 1753: 0xB4FE,
+ 1754: 0xB4FF,
+ 1755: 0xB500,
+ 1756: 0xB501,
+ 1757: 0xB502,
+ 1758: 0xB503,
+ 1759: 0xB504,
+ 1760: 0xB505,
+ 1761: 0xB506,
+ 1762: 0xB507,
+ 1763: 0xB508,
+ 1764: 0xB509,
+ 1765: 0xB50A,
+ 1766: 0xB50B,
+ 1767: 0xB50C,
+ 1768: 0xB50D,
+ 1769: 0xB50E,
+ 1770: 0xB50F,
+ 1771: 0xB510,
+ 1772: 0xB511,
+ 1773: 0xB512,
+ 1774: 0xB513,
+ 1775: 0xB516,
+ 1776: 0xB517,
+ 1777: 0xB519,
+ 1778: 0xB51A,
+ 1779: 0xB51D,
+ 1780: 0xB51E,
+ 1781: 0xB51F,
+ 1782: 0xB520,
+ 1783: 0xB521,
+ 1784: 0xB522,
+ 1785: 0xB523,
+ 1786: 0xB526,
+ 1787: 0xB52B,
+ 1788: 0xB52C,
+ 1789: 0xB52D,
+ 1790: 0xB52E,
+ 1791: 0xB52F,
+ 1792: 0xB532,
+ 1793: 0xB533,
+ 1794: 0xB535,
+ 1795: 0xB536,
+ 1796: 0xB537,
+ 1797: 0xB539,
+ 1798: 0xB53A,
+ 1799: 0xB53B,
+ 1800: 0xB53C,
+ 1801: 0xB53D,
+ 1802: 0xB53E,
+ 1803: 0xB53F,
+ 1804: 0xB542,
+ 1805: 0xB546,
+ 1806: 0xB547,
+ 1807: 0xB548,
+ 1808: 0xB549,
+ 1809: 0xB54A,
+ 1810: 0xB54E,
+ 1811: 0xB54F,
+ 1812: 0xB551,
+ 1813: 0xB552,
+ 1814: 0xB553,
+ 1815: 0xB555,
+ 1816: 0xB556,
+ 1817: 0xB557,
+ 1818: 0xB558,
+ 1819: 0xB559,
+ 1820: 0xB55A,
+ 1821: 0xB55B,
+ 1822: 0xB55E,
+ 1823: 0xB562,
+ 1824: 0xB563,
+ 1825: 0xB564,
+ 1826: 0xB565,
+ 1827: 0xB566,
+ 1828: 0xB567,
+ 1829: 0xB568,
+ 1830: 0xB569,
+ 1831: 0xB56A,
+ 1832: 0xB56B,
+ 1833: 0xB56C,
+ 1834: 0xB56D,
+ 1835: 0xB56E,
+ 1836: 0xB56F,
+ 1837: 0xB570,
+ 1838: 0xB571,
+ 1839: 0xB572,
+ 1840: 0xB573,
+ 1841: 0xB574,
+ 1842: 0xB575,
+ 1843: 0xB576,
+ 1844: 0xB577,
+ 1845: 0xB578,
+ 1846: 0xB579,
+ 1847: 0xB57A,
+ 1848: 0xB57B,
+ 1849: 0xB57C,
+ 1850: 0xB57D,
+ 1851: 0xB57E,
+ 1852: 0xB57F,
+ 1853: 0xB580,
+ 1854: 0xB581,
+ 1855: 0xB582,
+ 1856: 0xB583,
+ 1857: 0xB584,
+ 1858: 0xB585,
+ 1859: 0xB586,
+ 1860: 0xB587,
+ 1861: 0xB588,
+ 1862: 0xB589,
+ 1863: 0xB58A,
+ 1864: 0xB58B,
+ 1865: 0xB58C,
+ 1866: 0xB58D,
+ 1867: 0xB58E,
+ 1868: 0xB58F,
+ 1869: 0xB590,
+ 1870: 0xB591,
+ 1871: 0xB592,
+ 1872: 0xB593,
+ 1873: 0xB594,
+ 1874: 0xB595,
+ 1875: 0xB596,
+ 1876: 0xB597,
+ 1877: 0xB598,
+ 1878: 0xB599,
+ 1879: 0xB59A,
+ 1880: 0xB59B,
+ 1881: 0xB59C,
+ 1882: 0xB59D,
+ 1883: 0xB59E,
+ 1884: 0xB59F,
+ 1885: 0xB5A2,
+ 1886: 0xB5A3,
+ 1887: 0xB5A5,
+ 1888: 0xB5A6,
+ 1889: 0xB5A7,
+ 1890: 0xB5A9,
+ 1891: 0xB5AC,
+ 1892: 0xB5AD,
+ 1893: 0xB5AE,
+ 1894: 0xB5AF,
+ 1895: 0xB5B2,
+ 1896: 0xB5B6,
+ 1897: 0xB5B7,
+ 1898: 0xB5B8,
+ 1899: 0xB5B9,
+ 1900: 0xB5BA,
+ 1901: 0xB5BE,
+ 1902: 0xB5BF,
+ 1903: 0xB5C1,
+ 1904: 0xB5C2,
+ 1905: 0xB5C3,
+ 1906: 0xB5C5,
+ 1907: 0xB5C6,
+ 1908: 0xB5C7,
+ 1909: 0xB5C8,
+ 1910: 0xB5C9,
+ 1911: 0xB5CA,
+ 1912: 0xB5CB,
+ 1913: 0xB5CE,
+ 1914: 0xB5D2,
+ 1915: 0xB5D3,
+ 1916: 0xB5D4,
+ 1917: 0xB5D5,
+ 1918: 0xB5D6,
+ 1919: 0xB5D7,
+ 1920: 0xB5D9,
+ 1921: 0xB5DA,
+ 1922: 0xB5DB,
+ 1923: 0xB5DC,
+ 1924: 0xB5DD,
+ 1925: 0xB5DE,
+ 1926: 0xB5DF,
+ 1927: 0xB5E0,
+ 1928: 0xB5E1,
+ 1929: 0xB5E2,
+ 1930: 0xB5E3,
+ 1931: 0xB5E4,
+ 1932: 0xB5E5,
+ 1933: 0xB5E6,
+ 1934: 0xB5E7,
+ 1935: 0xB5E8,
+ 1936: 0xB5E9,
+ 1937: 0xB5EA,
+ 1938: 0xB5EB,
+ 1939: 0xB5ED,
+ 1940: 0xB5EE,
+ 1941: 0xB5EF,
+ 1942: 0xB5F0,
+ 1943: 0xB5F1,
+ 1944: 0xB5F2,
+ 1945: 0xB5F3,
+ 1946: 0xB5F4,
+ 1947: 0xB5F5,
+ 1948: 0xB5F6,
+ 1949: 0xB5F7,
+ 1950: 0xB5F8,
+ 1951: 0xB5F9,
+ 1952: 0xB5FA,
+ 1953: 0xB5FB,
+ 1954: 0xB5FC,
+ 1955: 0xB5FD,
+ 1956: 0xB5FE,
+ 1957: 0xB5FF,
+ 1958: 0xB600,
+ 1959: 0xB601,
+ 1960: 0xB602,
+ 1961: 0xB603,
+ 1962: 0xB604,
+ 1963: 0xB605,
+ 1964: 0xB606,
+ 1965: 0xB607,
+ 1966: 0xB608,
+ 1967: 0xB609,
+ 1968: 0xB60A,
+ 1969: 0xB60B,
+ 1970: 0xB60C,
+ 1971: 0xB60D,
+ 1972: 0xB60E,
+ 1973: 0xB60F,
+ 1974: 0xB612,
+ 1975: 0xB613,
+ 1976: 0xB615,
+ 1977: 0xB616,
+ 1978: 0xB617,
+ 1979: 0xB619,
+ 1980: 0xB61A,
+ 1981: 0xB61B,
+ 1982: 0xB61C,
+ 1983: 0xB61D,
+ 1984: 0xB61E,
+ 1985: 0xB61F,
+ 1986: 0xB620,
+ 1987: 0xB621,
+ 1988: 0xB622,
+ 1989: 0xB623,
+ 1990: 0xB624,
+ 1991: 0xB626,
+ 1992: 0xB627,
+ 1993: 0xB628,
+ 1994: 0xB629,
+ 1995: 0xB62A,
+ 1996: 0xB62B,
+ 1997: 0xB62D,
+ 1998: 0xB62E,
+ 1999: 0xB62F,
+ 2000: 0xB630,
+ 2001: 0xB631,
+ 2002: 0xB632,
+ 2003: 0xB633,
+ 2004: 0xB635,
+ 2005: 0xB636,
+ 2006: 0xB637,
+ 2007: 0xB638,
+ 2008: 0xB639,
+ 2009: 0xB63A,
+ 2010: 0xB63B,
+ 2011: 0xB63C,
+ 2012: 0xB63D,
+ 2013: 0xB63E,
+ 2014: 0xB63F,
+ 2015: 0xB640,
+ 2016: 0xB641,
+ 2017: 0xB642,
+ 2018: 0xB643,
+ 2019: 0xB644,
+ 2020: 0xB645,
+ 2021: 0xB646,
+ 2022: 0xB647,
+ 2023: 0xB649,
+ 2024: 0xB64A,
+ 2025: 0xB64B,
+ 2026: 0xB64C,
+ 2027: 0xB64D,
+ 2028: 0xB64E,
+ 2029: 0xB64F,
+ 2030: 0xB650,
+ 2031: 0xB651,
+ 2032: 0xB652,
+ 2033: 0xB653,
+ 2034: 0xB654,
+ 2035: 0xB655,
+ 2036: 0xB656,
+ 2037: 0xB657,
+ 2038: 0xB658,
+ 2039: 0xB659,
+ 2040: 0xB65A,
+ 2041: 0xB65B,
+ 2042: 0xB65C,
+ 2043: 0xB65D,
+ 2044: 0xB65E,
+ 2045: 0xB65F,
+ 2046: 0xB660,
+ 2047: 0xB661,
+ 2048: 0xB662,
+ 2049: 0xB663,
+ 2050: 0xB665,
+ 2051: 0xB666,
+ 2052: 0xB667,
+ 2053: 0xB669,
+ 2054: 0xB66A,
+ 2055: 0xB66B,
+ 2056: 0xB66C,
+ 2057: 0xB66D,
+ 2058: 0xB66E,
+ 2059: 0xB66F,
+ 2060: 0xB670,
+ 2061: 0xB671,
+ 2062: 0xB672,
+ 2063: 0xB673,
+ 2064: 0xB674,
+ 2065: 0xB675,
+ 2066: 0xB676,
+ 2067: 0xB677,
+ 2068: 0xB678,
+ 2069: 0xB679,
+ 2070: 0xB67A,
+ 2071: 0xB67B,
+ 2072: 0xB67C,
+ 2073: 0xB67D,
+ 2074: 0xB67E,
+ 2075: 0xB67F,
+ 2076: 0xB680,
+ 2077: 0xB681,
+ 2078: 0xB682,
+ 2079: 0xB683,
+ 2080: 0xB684,
+ 2081: 0xB685,
+ 2082: 0xB686,
+ 2083: 0xB687,
+ 2084: 0xB688,
+ 2085: 0xB689,
+ 2086: 0xB68A,
+ 2087: 0xB68B,
+ 2088: 0xB68C,
+ 2089: 0xB68D,
+ 2090: 0xB68E,
+ 2091: 0xB68F,
+ 2092: 0xB690,
+ 2093: 0xB691,
+ 2094: 0xB692,
+ 2095: 0xB693,
+ 2096: 0xB694,
+ 2097: 0xB695,
+ 2098: 0xB696,
+ 2099: 0xB697,
+ 2100: 0xB698,
+ 2101: 0xB699,
+ 2102: 0xB69A,
+ 2103: 0xB69B,
+ 2104: 0xB69E,
+ 2105: 0xB69F,
+ 2106: 0xB6A1,
+ 2107: 0xB6A2,
+ 2108: 0xB6A3,
+ 2109: 0xB6A5,
+ 2110: 0xB6A6,
+ 2111: 0xB6A7,
+ 2112: 0xB6A8,
+ 2113: 0xB6A9,
+ 2114: 0xB6AA,
+ 2115: 0xB6AD,
+ 2116: 0xB6AE,
+ 2117: 0xB6AF,
+ 2118: 0xB6B0,
+ 2119: 0xB6B2,
+ 2120: 0xB6B3,
+ 2121: 0xB6B4,
+ 2122: 0xB6B5,
+ 2123: 0xB6B6,
+ 2124: 0xB6B7,
+ 2125: 0xB6B8,
+ 2126: 0xB6B9,
+ 2127: 0xB6BA,
+ 2128: 0xB6BB,
+ 2129: 0xB6BC,
+ 2130: 0xB6BD,
+ 2131: 0xB6BE,
+ 2132: 0xB6BF,
+ 2133: 0xB6C0,
+ 2134: 0xB6C1,
+ 2135: 0xB6C2,
+ 2136: 0xB6C3,
+ 2137: 0xB6C4,
+ 2138: 0xB6C5,
+ 2139: 0xB6C6,
+ 2140: 0xB6C7,
+ 2141: 0xB6C8,
+ 2142: 0xB6C9,
+ 2143: 0xB6CA,
+ 2144: 0xB6CB,
+ 2145: 0xB6CC,
+ 2146: 0xB6CD,
+ 2147: 0xB6CE,
+ 2148: 0xB6CF,
+ 2149: 0xB6D0,
+ 2150: 0xB6D1,
+ 2151: 0xB6D2,
+ 2152: 0xB6D3,
+ 2153: 0xB6D5,
+ 2154: 0xB6D6,
+ 2155: 0xB6D7,
+ 2156: 0xB6D8,
+ 2157: 0xB6D9,
+ 2158: 0xB6DA,
+ 2159: 0xB6DB,
+ 2160: 0xB6DC,
+ 2161: 0xB6DD,
+ 2162: 0xB6DE,
+ 2163: 0xB6DF,
+ 2164: 0xB6E0,
+ 2165: 0xB6E1,
+ 2166: 0xB6E2,
+ 2167: 0xB6E3,
+ 2168: 0xB6E4,
+ 2169: 0xB6E5,
+ 2170: 0xB6E6,
+ 2171: 0xB6E7,
+ 2172: 0xB6E8,
+ 2173: 0xB6E9,
+ 2174: 0xB6EA,
+ 2175: 0xB6EB,
+ 2176: 0xB6EC,
+ 2177: 0xB6ED,
+ 2178: 0xB6EE,
+ 2179: 0xB6EF,
+ 2180: 0xB6F1,
+ 2181: 0xB6F2,
+ 2182: 0xB6F3,
+ 2183: 0xB6F5,
+ 2184: 0xB6F6,
+ 2185: 0xB6F7,
+ 2186: 0xB6F9,
+ 2187: 0xB6FA,
+ 2188: 0xB6FB,
+ 2189: 0xB6FC,
+ 2190: 0xB6FD,
+ 2191: 0xB6FE,
+ 2192: 0xB6FF,
+ 2193: 0xB702,
+ 2194: 0xB703,
+ 2195: 0xB704,
+ 2196: 0xB706,
+ 2197: 0xB707,
+ 2198: 0xB708,
+ 2199: 0xB709,
+ 2200: 0xB70A,
+ 2201: 0xB70B,
+ 2202: 0xB70C,
+ 2203: 0xB70D,
+ 2204: 0xB70E,
+ 2205: 0xB70F,
+ 2206: 0xB710,
+ 2207: 0xB711,
+ 2208: 0xB712,
+ 2209: 0xB713,
+ 2210: 0xB714,
+ 2211: 0xB715,
+ 2212: 0xB716,
+ 2213: 0xB717,
+ 2214: 0xB718,
+ 2215: 0xB719,
+ 2216: 0xB71A,
+ 2217: 0xB71B,
+ 2218: 0xB71C,
+ 2219: 0xB71D,
+ 2220: 0xB71E,
+ 2221: 0xB71F,
+ 2222: 0xB720,
+ 2223: 0xB721,
+ 2224: 0xB722,
+ 2225: 0xB723,
+ 2226: 0xB724,
+ 2227: 0xB725,
+ 2228: 0xB726,
+ 2229: 0xB727,
+ 2230: 0xB72A,
+ 2231: 0xB72B,
+ 2232: 0xB72D,
+ 2233: 0xB72E,
+ 2234: 0xB731,
+ 2235: 0xB732,
+ 2236: 0xB733,
+ 2237: 0xB734,
+ 2238: 0xB735,
+ 2239: 0xB736,
+ 2240: 0xB737,
+ 2241: 0xB73A,
+ 2242: 0xB73C,
+ 2243: 0xB73D,
+ 2244: 0xB73E,
+ 2245: 0xB73F,
+ 2246: 0xB740,
+ 2247: 0xB741,
+ 2248: 0xB742,
+ 2249: 0xB743,
+ 2250: 0xB745,
+ 2251: 0xB746,
+ 2252: 0xB747,
+ 2253: 0xB749,
+ 2254: 0xB74A,
+ 2255: 0xB74B,
+ 2256: 0xB74D,
+ 2257: 0xB74E,
+ 2258: 0xB74F,
+ 2259: 0xB750,
+ 2260: 0xB751,
+ 2261: 0xB752,
+ 2262: 0xB753,
+ 2263: 0xB756,
+ 2264: 0xB757,
+ 2265: 0xB758,
+ 2266: 0xB759,
+ 2267: 0xB75A,
+ 2268: 0xB75B,
+ 2269: 0xB75C,
+ 2270: 0xB75D,
+ 2271: 0xB75E,
+ 2272: 0xB75F,
+ 2273: 0xB761,
+ 2274: 0xB762,
+ 2275: 0xB763,
+ 2276: 0xB765,
+ 2277: 0xB766,
+ 2278: 0xB767,
+ 2279: 0xB769,
+ 2280: 0xB76A,
+ 2281: 0xB76B,
+ 2282: 0xB76C,
+ 2283: 0xB76D,
+ 2284: 0xB76E,
+ 2285: 0xB76F,
+ 2286: 0xB772,
+ 2287: 0xB774,
+ 2288: 0xB776,
+ 2289: 0xB777,
+ 2290: 0xB778,
+ 2291: 0xB779,
+ 2292: 0xB77A,
+ 2293: 0xB77B,
+ 2294: 0xB77E,
+ 2295: 0xB77F,
+ 2296: 0xB781,
+ 2297: 0xB782,
+ 2298: 0xB783,
+ 2299: 0xB785,
+ 2300: 0xB786,
+ 2301: 0xB787,
+ 2302: 0xB788,
+ 2303: 0xB789,
+ 2304: 0xB78A,
+ 2305: 0xB78B,
+ 2306: 0xB78E,
+ 2307: 0xB793,
+ 2308: 0xB794,
+ 2309: 0xB795,
+ 2310: 0xB79A,
+ 2311: 0xB79B,
+ 2312: 0xB79D,
+ 2313: 0xB79E,
+ 2314: 0xB79F,
+ 2315: 0xB7A1,
+ 2316: 0xB7A2,
+ 2317: 0xB7A3,
+ 2318: 0xB7A4,
+ 2319: 0xB7A5,
+ 2320: 0xB7A6,
+ 2321: 0xB7A7,
+ 2322: 0xB7AA,
+ 2323: 0xB7AE,
+ 2324: 0xB7AF,
+ 2325: 0xB7B0,
+ 2326: 0xB7B1,
+ 2327: 0xB7B2,
+ 2328: 0xB7B3,
+ 2329: 0xB7B6,
+ 2330: 0xB7B7,
+ 2331: 0xB7B9,
+ 2332: 0xB7BA,
+ 2333: 0xB7BB,
+ 2334: 0xB7BC,
+ 2335: 0xB7BD,
+ 2336: 0xB7BE,
+ 2337: 0xB7BF,
+ 2338: 0xB7C0,
+ 2339: 0xB7C1,
+ 2340: 0xB7C2,
+ 2341: 0xB7C3,
+ 2342: 0xB7C4,
+ 2343: 0xB7C5,
+ 2344: 0xB7C6,
+ 2345: 0xB7C8,
+ 2346: 0xB7CA,
+ 2347: 0xB7CB,
+ 2348: 0xB7CC,
+ 2349: 0xB7CD,
+ 2350: 0xB7CE,
+ 2351: 0xB7CF,
+ 2352: 0xB7D0,
+ 2353: 0xB7D1,
+ 2354: 0xB7D2,
+ 2355: 0xB7D3,
+ 2356: 0xB7D4,
+ 2357: 0xB7D5,
+ 2358: 0xB7D6,
+ 2359: 0xB7D7,
+ 2360: 0xB7D8,
+ 2361: 0xB7D9,
+ 2362: 0xB7DA,
+ 2363: 0xB7DB,
+ 2364: 0xB7DC,
+ 2365: 0xB7DD,
+ 2366: 0xB7DE,
+ 2367: 0xB7DF,
+ 2368: 0xB7E0,
+ 2369: 0xB7E1,
+ 2370: 0xB7E2,
+ 2371: 0xB7E3,
+ 2372: 0xB7E4,
+ 2373: 0xB7E5,
+ 2374: 0xB7E6,
+ 2375: 0xB7E7,
+ 2376: 0xB7E8,
+ 2377: 0xB7E9,
+ 2378: 0xB7EA,
+ 2379: 0xB7EB,
+ 2380: 0xB7EE,
+ 2381: 0xB7EF,
+ 2382: 0xB7F1,
+ 2383: 0xB7F2,
+ 2384: 0xB7F3,
+ 2385: 0xB7F5,
+ 2386: 0xB7F6,
+ 2387: 0xB7F7,
+ 2388: 0xB7F8,
+ 2389: 0xB7F9,
+ 2390: 0xB7FA,
+ 2391: 0xB7FB,
+ 2392: 0xB7FE,
+ 2393: 0xB802,
+ 2394: 0xB803,
+ 2395: 0xB804,
+ 2396: 0xB805,
+ 2397: 0xB806,
+ 2398: 0xB80A,
+ 2399: 0xB80B,
+ 2400: 0xB80D,
+ 2401: 0xB80E,
+ 2402: 0xB80F,
+ 2403: 0xB811,
+ 2404: 0xB812,
+ 2405: 0xB813,
+ 2406: 0xB814,
+ 2407: 0xB815,
+ 2408: 0xB816,
+ 2409: 0xB817,
+ 2410: 0xB81A,
+ 2411: 0xB81C,
+ 2412: 0xB81E,
+ 2413: 0xB81F,
+ 2414: 0xB820,
+ 2415: 0xB821,
+ 2416: 0xB822,
+ 2417: 0xB823,
+ 2418: 0xB826,
+ 2419: 0xB827,
+ 2420: 0xB829,
+ 2421: 0xB82A,
+ 2422: 0xB82B,
+ 2423: 0xB82D,
+ 2424: 0xB82E,
+ 2425: 0xB82F,
+ 2426: 0xB830,
+ 2427: 0xB831,
+ 2428: 0xB832,
+ 2429: 0xB833,
+ 2430: 0xB836,
+ 2431: 0xB83A,
+ 2432: 0xB83B,
+ 2433: 0xB83C,
+ 2434: 0xB83D,
+ 2435: 0xB83E,
+ 2436: 0xB83F,
+ 2437: 0xB841,
+ 2438: 0xB842,
+ 2439: 0xB843,
+ 2440: 0xB845,
+ 2441: 0xB846,
+ 2442: 0xB847,
+ 2443: 0xB848,
+ 2444: 0xB849,
+ 2445: 0xB84A,
+ 2446: 0xB84B,
+ 2447: 0xB84C,
+ 2448: 0xB84D,
+ 2449: 0xB84E,
+ 2450: 0xB84F,
+ 2451: 0xB850,
+ 2452: 0xB852,
+ 2453: 0xB854,
+ 2454: 0xB855,
+ 2455: 0xB856,
+ 2456: 0xB857,
+ 2457: 0xB858,
+ 2458: 0xB859,
+ 2459: 0xB85A,
+ 2460: 0xB85B,
+ 2461: 0xB85E,
+ 2462: 0xB85F,
+ 2463: 0xB861,
+ 2464: 0xB862,
+ 2465: 0xB863,
+ 2466: 0xB865,
+ 2467: 0xB866,
+ 2468: 0xB867,
+ 2469: 0xB868,
+ 2470: 0xB869,
+ 2471: 0xB86A,
+ 2472: 0xB86B,
+ 2473: 0xB86E,
+ 2474: 0xB870,
+ 2475: 0xB872,
+ 2476: 0xB873,
+ 2477: 0xB874,
+ 2478: 0xB875,
+ 2479: 0xB876,
+ 2480: 0xB877,
+ 2481: 0xB879,
+ 2482: 0xB87A,
+ 2483: 0xB87B,
+ 2484: 0xB87D,
+ 2485: 0xB87E,
+ 2486: 0xB87F,
+ 2487: 0xB880,
+ 2488: 0xB881,
+ 2489: 0xB882,
+ 2490: 0xB883,
+ 2491: 0xB884,
+ 2492: 0xB885,
+ 2493: 0xB886,
+ 2494: 0xB887,
+ 2495: 0xB888,
+ 2496: 0xB889,
+ 2497: 0xB88A,
+ 2498: 0xB88B,
+ 2499: 0xB88C,
+ 2500: 0xB88E,
+ 2501: 0xB88F,
+ 2502: 0xB890,
+ 2503: 0xB891,
+ 2504: 0xB892,
+ 2505: 0xB893,
+ 2506: 0xB894,
+ 2507: 0xB895,
+ 2508: 0xB896,
+ 2509: 0xB897,
+ 2510: 0xB898,
+ 2511: 0xB899,
+ 2512: 0xB89A,
+ 2513: 0xB89B,
+ 2514: 0xB89C,
+ 2515: 0xB89D,
+ 2516: 0xB89E,
+ 2517: 0xB89F,
+ 2518: 0xB8A0,
+ 2519: 0xB8A1,
+ 2520: 0xB8A2,
+ 2521: 0xB8A3,
+ 2522: 0xB8A4,
+ 2523: 0xB8A5,
+ 2524: 0xB8A6,
+ 2525: 0xB8A7,
+ 2526: 0xB8A9,
+ 2527: 0xB8AA,
+ 2528: 0xB8AB,
+ 2529: 0xB8AC,
+ 2530: 0xB8AD,
+ 2531: 0xB8AE,
+ 2532: 0xB8AF,
+ 2533: 0xB8B1,
+ 2534: 0xB8B2,
+ 2535: 0xB8B3,
+ 2536: 0xB8B5,
+ 2537: 0xB8B6,
+ 2538: 0xB8B7,
+ 2539: 0xB8B9,
+ 2540: 0xB8BA,
+ 2541: 0xB8BB,
+ 2542: 0xB8BC,
+ 2543: 0xB8BD,
+ 2544: 0xB8BE,
+ 2545: 0xB8BF,
+ 2546: 0xB8C2,
+ 2547: 0xB8C4,
+ 2548: 0xB8C6,
+ 2549: 0xB8C7,
+ 2550: 0xB8C8,
+ 2551: 0xB8C9,
+ 2552: 0xB8CA,
+ 2553: 0xB8CB,
+ 2554: 0xB8CD,
+ 2555: 0xB8CE,
+ 2556: 0xB8CF,
+ 2557: 0xB8D1,
+ 2558: 0xB8D2,
+ 2559: 0xB8D3,
+ 2560: 0xB8D5,
+ 2561: 0xB8D6,
+ 2562: 0xB8D7,
+ 2563: 0xB8D8,
+ 2564: 0xB8D9,
+ 2565: 0xB8DA,
+ 2566: 0xB8DB,
+ 2567: 0xB8DC,
+ 2568: 0xB8DE,
+ 2569: 0xB8E0,
+ 2570: 0xB8E2,
+ 2571: 0xB8E3,
+ 2572: 0xB8E4,
+ 2573: 0xB8E5,
+ 2574: 0xB8E6,
+ 2575: 0xB8E7,
+ 2576: 0xB8EA,
+ 2577: 0xB8EB,
+ 2578: 0xB8ED,
+ 2579: 0xB8EE,
+ 2580: 0xB8EF,
+ 2581: 0xB8F1,
+ 2582: 0xB8F2,
+ 2583: 0xB8F3,
+ 2584: 0xB8F4,
+ 2585: 0xB8F5,
+ 2586: 0xB8F6,
+ 2587: 0xB8F7,
+ 2588: 0xB8FA,
+ 2589: 0xB8FC,
+ 2590: 0xB8FE,
+ 2591: 0xB8FF,
+ 2592: 0xB900,
+ 2593: 0xB901,
+ 2594: 0xB902,
+ 2595: 0xB903,
+ 2596: 0xB905,
+ 2597: 0xB906,
+ 2598: 0xB907,
+ 2599: 0xB908,
+ 2600: 0xB909,
+ 2601: 0xB90A,
+ 2602: 0xB90B,
+ 2603: 0xB90C,
+ 2604: 0xB90D,
+ 2605: 0xB90E,
+ 2606: 0xB90F,
+ 2607: 0xB910,
+ 2608: 0xB911,
+ 2609: 0xB912,
+ 2610: 0xB913,
+ 2611: 0xB914,
+ 2612: 0xB915,
+ 2613: 0xB916,
+ 2614: 0xB917,
+ 2615: 0xB919,
+ 2616: 0xB91A,
+ 2617: 0xB91B,
+ 2618: 0xB91C,
+ 2619: 0xB91D,
+ 2620: 0xB91E,
+ 2621: 0xB91F,
+ 2622: 0xB921,
+ 2623: 0xB922,
+ 2624: 0xB923,
+ 2625: 0xB924,
+ 2626: 0xB925,
+ 2627: 0xB926,
+ 2628: 0xB927,
+ 2629: 0xB928,
+ 2630: 0xB929,
+ 2631: 0xB92A,
+ 2632: 0xB92B,
+ 2633: 0xB92C,
+ 2634: 0xB92D,
+ 2635: 0xB92E,
+ 2636: 0xB92F,
+ 2637: 0xB930,
+ 2638: 0xB931,
+ 2639: 0xB932,
+ 2640: 0xB933,
+ 2641: 0xB934,
+ 2642: 0xB935,
+ 2643: 0xB936,
+ 2644: 0xB937,
+ 2645: 0xB938,
+ 2646: 0xB939,
+ 2647: 0xB93A,
+ 2648: 0xB93B,
+ 2649: 0xB93E,
+ 2650: 0xB93F,
+ 2651: 0xB941,
+ 2652: 0xB942,
+ 2653: 0xB943,
+ 2654: 0xB945,
+ 2655: 0xB946,
+ 2656: 0xB947,
+ 2657: 0xB948,
+ 2658: 0xB949,
+ 2659: 0xB94A,
+ 2660: 0xB94B,
+ 2661: 0xB94D,
+ 2662: 0xB94E,
+ 2663: 0xB950,
+ 2664: 0xB952,
+ 2665: 0xB953,
+ 2666: 0xB954,
+ 2667: 0xB955,
+ 2668: 0xB956,
+ 2669: 0xB957,
+ 2670: 0xB95A,
+ 2671: 0xB95B,
+ 2672: 0xB95D,
+ 2673: 0xB95E,
+ 2674: 0xB95F,
+ 2675: 0xB961,
+ 2676: 0xB962,
+ 2677: 0xB963,
+ 2678: 0xB964,
+ 2679: 0xB965,
+ 2680: 0xB966,
+ 2681: 0xB967,
+ 2682: 0xB96A,
+ 2683: 0xB96C,
+ 2684: 0xB96E,
+ 2685: 0xB96F,
+ 2686: 0xB970,
+ 2687: 0xB971,
+ 2688: 0xB972,
+ 2689: 0xB973,
+ 2690: 0xB976,
+ 2691: 0xB977,
+ 2692: 0xB979,
+ 2693: 0xB97A,
+ 2694: 0xB97B,
+ 2695: 0xB97D,
+ 2696: 0xB97E,
+ 2697: 0xB97F,
+ 2698: 0xB980,
+ 2699: 0xB981,
+ 2700: 0xB982,
+ 2701: 0xB983,
+ 2702: 0xB986,
+ 2703: 0xB988,
+ 2704: 0xB98B,
+ 2705: 0xB98C,
+ 2706: 0xB98F,
+ 2707: 0xB990,
+ 2708: 0xB991,
+ 2709: 0xB992,
+ 2710: 0xB993,
+ 2711: 0xB994,
+ 2712: 0xB995,
+ 2713: 0xB996,
+ 2714: 0xB997,
+ 2715: 0xB998,
+ 2716: 0xB999,
+ 2717: 0xB99A,
+ 2718: 0xB99B,
+ 2719: 0xB99C,
+ 2720: 0xB99D,
+ 2721: 0xB99E,
+ 2722: 0xB99F,
+ 2723: 0xB9A0,
+ 2724: 0xB9A1,
+ 2725: 0xB9A2,
+ 2726: 0xB9A3,
+ 2727: 0xB9A4,
+ 2728: 0xB9A5,
+ 2729: 0xB9A6,
+ 2730: 0xB9A7,
+ 2731: 0xB9A8,
+ 2732: 0xB9A9,
+ 2733: 0xB9AA,
+ 2734: 0xB9AB,
+ 2735: 0xB9AE,
+ 2736: 0xB9AF,
+ 2737: 0xB9B1,
+ 2738: 0xB9B2,
+ 2739: 0xB9B3,
+ 2740: 0xB9B5,
+ 2741: 0xB9B6,
+ 2742: 0xB9B7,
+ 2743: 0xB9B8,
+ 2744: 0xB9B9,
+ 2745: 0xB9BA,
+ 2746: 0xB9BB,
+ 2747: 0xB9BE,
+ 2748: 0xB9C0,
+ 2749: 0xB9C2,
+ 2750: 0xB9C3,
+ 2751: 0xB9C4,
+ 2752: 0xB9C5,
+ 2753: 0xB9C6,
+ 2754: 0xB9C7,
+ 2755: 0xB9CA,
+ 2756: 0xB9CB,
+ 2757: 0xB9CD,
+ 2758: 0xB9D3,
+ 2759: 0xB9D4,
+ 2760: 0xB9D5,
+ 2761: 0xB9D6,
+ 2762: 0xB9D7,
+ 2763: 0xB9DA,
+ 2764: 0xB9DC,
+ 2765: 0xB9DF,
+ 2766: 0xB9E0,
+ 2767: 0xB9E2,
+ 2768: 0xB9E6,
+ 2769: 0xB9E7,
+ 2770: 0xB9E9,
+ 2771: 0xB9EA,
+ 2772: 0xB9EB,
+ 2773: 0xB9ED,
+ 2774: 0xB9EE,
+ 2775: 0xB9EF,
+ 2776: 0xB9F0,
+ 2777: 0xB9F1,
+ 2778: 0xB9F2,
+ 2779: 0xB9F3,
+ 2780: 0xB9F6,
+ 2781: 0xB9FB,
+ 2782: 0xB9FC,
+ 2783: 0xB9FD,
+ 2784: 0xB9FE,
+ 2785: 0xB9FF,
+ 2786: 0xBA02,
+ 2787: 0xBA03,
+ 2788: 0xBA04,
+ 2789: 0xBA05,
+ 2790: 0xBA06,
+ 2791: 0xBA07,
+ 2792: 0xBA09,
+ 2793: 0xBA0A,
+ 2794: 0xBA0B,
+ 2795: 0xBA0C,
+ 2796: 0xBA0D,
+ 2797: 0xBA0E,
+ 2798: 0xBA0F,
+ 2799: 0xBA10,
+ 2800: 0xBA11,
+ 2801: 0xBA12,
+ 2802: 0xBA13,
+ 2803: 0xBA14,
+ 2804: 0xBA16,
+ 2805: 0xBA17,
+ 2806: 0xBA18,
+ 2807: 0xBA19,
+ 2808: 0xBA1A,
+ 2809: 0xBA1B,
+ 2810: 0xBA1C,
+ 2811: 0xBA1D,
+ 2812: 0xBA1E,
+ 2813: 0xBA1F,
+ 2814: 0xBA20,
+ 2815: 0xBA21,
+ 2816: 0xBA22,
+ 2817: 0xBA23,
+ 2818: 0xBA24,
+ 2819: 0xBA25,
+ 2820: 0xBA26,
+ 2821: 0xBA27,
+ 2822: 0xBA28,
+ 2823: 0xBA29,
+ 2824: 0xBA2A,
+ 2825: 0xBA2B,
+ 2826: 0xBA2C,
+ 2827: 0xBA2D,
+ 2828: 0xBA2E,
+ 2829: 0xBA2F,
+ 2830: 0xBA30,
+ 2831: 0xBA31,
+ 2832: 0xBA32,
+ 2833: 0xBA33,
+ 2834: 0xBA34,
+ 2835: 0xBA35,
+ 2836: 0xBA36,
+ 2837: 0xBA37,
+ 2838: 0xBA3A,
+ 2839: 0xBA3B,
+ 2840: 0xBA3D,
+ 2841: 0xBA3E,
+ 2842: 0xBA3F,
+ 2843: 0xBA41,
+ 2844: 0xBA43,
+ 2845: 0xBA44,
+ 2846: 0xBA45,
+ 2847: 0xBA46,
+ 2848: 0xBA47,
+ 2849: 0xBA4A,
+ 2850: 0xBA4C,
+ 2851: 0xBA4F,
+ 2852: 0xBA50,
+ 2853: 0xBA51,
+ 2854: 0xBA52,
+ 2855: 0xBA56,
+ 2856: 0xBA57,
+ 2857: 0xBA59,
+ 2858: 0xBA5A,
+ 2859: 0xBA5B,
+ 2860: 0xBA5D,
+ 2861: 0xBA5E,
+ 2862: 0xBA5F,
+ 2863: 0xBA60,
+ 2864: 0xBA61,
+ 2865: 0xBA62,
+ 2866: 0xBA63,
+ 2867: 0xBA66,
+ 2868: 0xBA6A,
+ 2869: 0xBA6B,
+ 2870: 0xBA6C,
+ 2871: 0xBA6D,
+ 2872: 0xBA6E,
+ 2873: 0xBA6F,
+ 2874: 0xBA72,
+ 2875: 0xBA73,
+ 2876: 0xBA75,
+ 2877: 0xBA76,
+ 2878: 0xBA77,
+ 2879: 0xBA79,
+ 2880: 0xBA7A,
+ 2881: 0xBA7B,
+ 2882: 0xBA7C,
+ 2883: 0xBA7D,
+ 2884: 0xBA7E,
+ 2885: 0xBA7F,
+ 2886: 0xBA80,
+ 2887: 0xBA81,
+ 2888: 0xBA82,
+ 2889: 0xBA86,
+ 2890: 0xBA88,
+ 2891: 0xBA89,
+ 2892: 0xBA8A,
+ 2893: 0xBA8B,
+ 2894: 0xBA8D,
+ 2895: 0xBA8E,
+ 2896: 0xBA8F,
+ 2897: 0xBA90,
+ 2898: 0xBA91,
+ 2899: 0xBA92,
+ 2900: 0xBA93,
+ 2901: 0xBA94,
+ 2902: 0xBA95,
+ 2903: 0xBA96,
+ 2904: 0xBA97,
+ 2905: 0xBA98,
+ 2906: 0xBA99,
+ 2907: 0xBA9A,
+ 2908: 0xBA9B,
+ 2909: 0xBA9C,
+ 2910: 0xBA9D,
+ 2911: 0xBA9E,
+ 2912: 0xBA9F,
+ 2913: 0xBAA0,
+ 2914: 0xBAA1,
+ 2915: 0xBAA2,
+ 2916: 0xBAA3,
+ 2917: 0xBAA4,
+ 2918: 0xBAA5,
+ 2919: 0xBAA6,
+ 2920: 0xBAA7,
+ 2921: 0xBAAA,
+ 2922: 0xBAAD,
+ 2923: 0xBAAE,
+ 2924: 0xBAAF,
+ 2925: 0xBAB1,
+ 2926: 0xBAB3,
+ 2927: 0xBAB4,
+ 2928: 0xBAB5,
+ 2929: 0xBAB6,
+ 2930: 0xBAB7,
+ 2931: 0xBABA,
+ 2932: 0xBABC,
+ 2933: 0xBABE,
+ 2934: 0xBABF,
+ 2935: 0xBAC0,
+ 2936: 0xBAC1,
+ 2937: 0xBAC2,
+ 2938: 0xBAC3,
+ 2939: 0xBAC5,
+ 2940: 0xBAC6,
+ 2941: 0xBAC7,
+ 2942: 0xBAC9,
+ 2943: 0xBACA,
+ 2944: 0xBACB,
+ 2945: 0xBACC,
+ 2946: 0xBACD,
+ 2947: 0xBACE,
+ 2948: 0xBACF,
+ 2949: 0xBAD0,
+ 2950: 0xBAD1,
+ 2951: 0xBAD2,
+ 2952: 0xBAD3,
+ 2953: 0xBAD4,
+ 2954: 0xBAD5,
+ 2955: 0xBAD6,
+ 2956: 0xBAD7,
+ 2957: 0xBADA,
+ 2958: 0xBADB,
+ 2959: 0xBADC,
+ 2960: 0xBADD,
+ 2961: 0xBADE,
+ 2962: 0xBADF,
+ 2963: 0xBAE0,
+ 2964: 0xBAE1,
+ 2965: 0xBAE2,
+ 2966: 0xBAE3,
+ 2967: 0xBAE4,
+ 2968: 0xBAE5,
+ 2969: 0xBAE6,
+ 2970: 0xBAE7,
+ 2971: 0xBAE8,
+ 2972: 0xBAE9,
+ 2973: 0xBAEA,
+ 2974: 0xBAEB,
+ 2975: 0xBAEC,
+ 2976: 0xBAED,
+ 2977: 0xBAEE,
+ 2978: 0xBAEF,
+ 2979: 0xBAF0,
+ 2980: 0xBAF1,
+ 2981: 0xBAF2,
+ 2982: 0xBAF3,
+ 2983: 0xBAF4,
+ 2984: 0xBAF5,
+ 2985: 0xBAF6,
+ 2986: 0xBAF7,
+ 2987: 0xBAF8,
+ 2988: 0xBAF9,
+ 2989: 0xBAFA,
+ 2990: 0xBAFB,
+ 2991: 0xBAFD,
+ 2992: 0xBAFE,
+ 2993: 0xBAFF,
+ 2994: 0xBB01,
+ 2995: 0xBB02,
+ 2996: 0xBB03,
+ 2997: 0xBB05,
+ 2998: 0xBB06,
+ 2999: 0xBB07,
+ 3000: 0xBB08,
+ 3001: 0xBB09,
+ 3002: 0xBB0A,
+ 3003: 0xBB0B,
+ 3004: 0xBB0C,
+ 3005: 0xBB0E,
+ 3006: 0xBB10,
+ 3007: 0xBB12,
+ 3008: 0xBB13,
+ 3009: 0xBB14,
+ 3010: 0xBB15,
+ 3011: 0xBB16,
+ 3012: 0xBB17,
+ 3013: 0xBB19,
+ 3014: 0xBB1A,
+ 3015: 0xBB1B,
+ 3016: 0xBB1D,
+ 3017: 0xBB1E,
+ 3018: 0xBB1F,
+ 3019: 0xBB21,
+ 3020: 0xBB22,
+ 3021: 0xBB23,
+ 3022: 0xBB24,
+ 3023: 0xBB25,
+ 3024: 0xBB26,
+ 3025: 0xBB27,
+ 3026: 0xBB28,
+ 3027: 0xBB2A,
+ 3028: 0xBB2C,
+ 3029: 0xBB2D,
+ 3030: 0xBB2E,
+ 3031: 0xBB2F,
+ 3032: 0xBB30,
+ 3033: 0xBB31,
+ 3034: 0xBB32,
+ 3035: 0xBB33,
+ 3036: 0xBB37,
+ 3037: 0xBB39,
+ 3038: 0xBB3A,
+ 3039: 0xBB3F,
+ 3040: 0xBB40,
+ 3041: 0xBB41,
+ 3042: 0xBB42,
+ 3043: 0xBB43,
+ 3044: 0xBB46,
+ 3045: 0xBB48,
+ 3046: 0xBB4A,
+ 3047: 0xBB4B,
+ 3048: 0xBB4C,
+ 3049: 0xBB4E,
+ 3050: 0xBB51,
+ 3051: 0xBB52,
+ 3052: 0xBB53,
+ 3053: 0xBB55,
+ 3054: 0xBB56,
+ 3055: 0xBB57,
+ 3056: 0xBB59,
+ 3057: 0xBB5A,
+ 3058: 0xBB5B,
+ 3059: 0xBB5C,
+ 3060: 0xBB5D,
+ 3061: 0xBB5E,
+ 3062: 0xBB5F,
+ 3063: 0xBB60,
+ 3064: 0xBB62,
+ 3065: 0xBB64,
+ 3066: 0xBB65,
+ 3067: 0xBB66,
+ 3068: 0xBB67,
+ 3069: 0xBB68,
+ 3070: 0xBB69,
+ 3071: 0xBB6A,
+ 3072: 0xBB6B,
+ 3073: 0xBB6D,
+ 3074: 0xBB6E,
+ 3075: 0xBB6F,
+ 3076: 0xBB70,
+ 3077: 0xBB71,
+ 3078: 0xBB72,
+ 3079: 0xBB73,
+ 3080: 0xBB74,
+ 3081: 0xBB75,
+ 3082: 0xBB76,
+ 3083: 0xBB77,
+ 3084: 0xBB78,
+ 3085: 0xBB79,
+ 3086: 0xBB7A,
+ 3087: 0xBB7B,
+ 3088: 0xBB7C,
+ 3089: 0xBB7D,
+ 3090: 0xBB7E,
+ 3091: 0xBB7F,
+ 3092: 0xBB80,
+ 3093: 0xBB81,
+ 3094: 0xBB82,
+ 3095: 0xBB83,
+ 3096: 0xBB84,
+ 3097: 0xBB85,
+ 3098: 0xBB86,
+ 3099: 0xBB87,
+ 3100: 0xBB89,
+ 3101: 0xBB8A,
+ 3102: 0xBB8B,
+ 3103: 0xBB8D,
+ 3104: 0xBB8E,
+ 3105: 0xBB8F,
+ 3106: 0xBB91,
+ 3107: 0xBB92,
+ 3108: 0xBB93,
+ 3109: 0xBB94,
+ 3110: 0xBB95,
+ 3111: 0xBB96,
+ 3112: 0xBB97,
+ 3113: 0xBB98,
+ 3114: 0xBB99,
+ 3115: 0xBB9A,
+ 3116: 0xBB9B,
+ 3117: 0xBB9C,
+ 3118: 0xBB9D,
+ 3119: 0xBB9E,
+ 3120: 0xBB9F,
+ 3121: 0xBBA0,
+ 3122: 0xBBA1,
+ 3123: 0xBBA2,
+ 3124: 0xBBA3,
+ 3125: 0xBBA5,
+ 3126: 0xBBA6,
+ 3127: 0xBBA7,
+ 3128: 0xBBA9,
+ 3129: 0xBBAA,
+ 3130: 0xBBAB,
+ 3131: 0xBBAD,
+ 3132: 0xBBAE,
+ 3133: 0xBBAF,
+ 3134: 0xBBB0,
+ 3135: 0xBBB1,
+ 3136: 0xBBB2,
+ 3137: 0xBBB3,
+ 3138: 0xBBB5,
+ 3139: 0xBBB6,
+ 3140: 0xBBB8,
+ 3141: 0xBBB9,
+ 3142: 0xBBBA,
+ 3143: 0xBBBB,
+ 3144: 0xBBBC,
+ 3145: 0xBBBD,
+ 3146: 0xBBBE,
+ 3147: 0xBBBF,
+ 3148: 0xBBC1,
+ 3149: 0xBBC2,
+ 3150: 0xBBC3,
+ 3151: 0xBBC5,
+ 3152: 0xBBC6,
+ 3153: 0xBBC7,
+ 3154: 0xBBC9,
+ 3155: 0xBBCA,
+ 3156: 0xBBCB,
+ 3157: 0xBBCC,
+ 3158: 0xBBCD,
+ 3159: 0xBBCE,
+ 3160: 0xBBCF,
+ 3161: 0xBBD1,
+ 3162: 0xBBD2,
+ 3163: 0xBBD4,
+ 3164: 0xBBD5,
+ 3165: 0xBBD6,
+ 3166: 0xBBD7,
+ 3167: 0xBBD8,
+ 3168: 0xBBD9,
+ 3169: 0xBBDA,
+ 3170: 0xBBDB,
+ 3171: 0xBBDC,
+ 3172: 0xBBDD,
+ 3173: 0xBBDE,
+ 3174: 0xBBDF,
+ 3175: 0xBBE0,
+ 3176: 0xBBE1,
+ 3177: 0xBBE2,
+ 3178: 0xBBE3,
+ 3179: 0xBBE4,
+ 3180: 0xBBE5,
+ 3181: 0xBBE6,
+ 3182: 0xBBE7,
+ 3183: 0xBBE8,
+ 3184: 0xBBE9,
+ 3185: 0xBBEA,
+ 3186: 0xBBEB,
+ 3187: 0xBBEC,
+ 3188: 0xBBED,
+ 3189: 0xBBEE,
+ 3190: 0xBBEF,
+ 3191: 0xBBF0,
+ 3192: 0xBBF1,
+ 3193: 0xBBF2,
+ 3194: 0xBBF3,
+ 3195: 0xBBF4,
+ 3196: 0xBBF5,
+ 3197: 0xBBF6,
+ 3198: 0xBBF7,
+ 3199: 0xBBFA,
+ 3200: 0xBBFB,
+ 3201: 0xBBFD,
+ 3202: 0xBBFE,
+ 3203: 0xBC01,
+ 3204: 0xBC03,
+ 3205: 0xBC04,
+ 3206: 0xBC05,
+ 3207: 0xBC06,
+ 3208: 0xBC07,
+ 3209: 0xBC0A,
+ 3210: 0xBC0E,
+ 3211: 0xBC10,
+ 3212: 0xBC12,
+ 3213: 0xBC13,
+ 3214: 0xBC19,
+ 3215: 0xBC1A,
+ 3216: 0xBC20,
+ 3217: 0xBC21,
+ 3218: 0xBC22,
+ 3219: 0xBC23,
+ 3220: 0xBC26,
+ 3221: 0xBC28,
+ 3222: 0xBC2A,
+ 3223: 0xBC2B,
+ 3224: 0xBC2C,
+ 3225: 0xBC2E,
+ 3226: 0xBC2F,
+ 3227: 0xBC32,
+ 3228: 0xBC33,
+ 3229: 0xBC35,
+ 3230: 0xBC36,
+ 3231: 0xBC37,
+ 3232: 0xBC39,
+ 3233: 0xBC3A,
+ 3234: 0xBC3B,
+ 3235: 0xBC3C,
+ 3236: 0xBC3D,
+ 3237: 0xBC3E,
+ 3238: 0xBC3F,
+ 3239: 0xBC42,
+ 3240: 0xBC46,
+ 3241: 0xBC47,
+ 3242: 0xBC48,
+ 3243: 0xBC4A,
+ 3244: 0xBC4B,
+ 3245: 0xBC4E,
+ 3246: 0xBC4F,
+ 3247: 0xBC51,
+ 3248: 0xBC52,
+ 3249: 0xBC53,
+ 3250: 0xBC54,
+ 3251: 0xBC55,
+ 3252: 0xBC56,
+ 3253: 0xBC57,
+ 3254: 0xBC58,
+ 3255: 0xBC59,
+ 3256: 0xBC5A,
+ 3257: 0xBC5B,
+ 3258: 0xBC5C,
+ 3259: 0xBC5E,
+ 3260: 0xBC5F,
+ 3261: 0xBC60,
+ 3262: 0xBC61,
+ 3263: 0xBC62,
+ 3264: 0xBC63,
+ 3265: 0xBC64,
+ 3266: 0xBC65,
+ 3267: 0xBC66,
+ 3268: 0xBC67,
+ 3269: 0xBC68,
+ 3270: 0xBC69,
+ 3271: 0xBC6A,
+ 3272: 0xBC6B,
+ 3273: 0xBC6C,
+ 3274: 0xBC6D,
+ 3275: 0xBC6E,
+ 3276: 0xBC6F,
+ 3277: 0xBC70,
+ 3278: 0xBC71,
+ 3279: 0xBC72,
+ 3280: 0xBC73,
+ 3281: 0xBC74,
+ 3282: 0xBC75,
+ 3283: 0xBC76,
+ 3284: 0xBC77,
+ 3285: 0xBC78,
+ 3286: 0xBC79,
+ 3287: 0xBC7A,
+ 3288: 0xBC7B,
+ 3289: 0xBC7C,
+ 3290: 0xBC7D,
+ 3291: 0xBC7E,
+ 3292: 0xBC7F,
+ 3293: 0xBC80,
+ 3294: 0xBC81,
+ 3295: 0xBC82,
+ 3296: 0xBC83,
+ 3297: 0xBC86,
+ 3298: 0xBC87,
+ 3299: 0xBC89,
+ 3300: 0xBC8A,
+ 3301: 0xBC8D,
+ 3302: 0xBC8F,
+ 3303: 0xBC90,
+ 3304: 0xBC91,
+ 3305: 0xBC92,
+ 3306: 0xBC93,
+ 3307: 0xBC96,
+ 3308: 0xBC98,
+ 3309: 0xBC9B,
+ 3310: 0xBC9C,
+ 3311: 0xBC9D,
+ 3312: 0xBC9E,
+ 3313: 0xBC9F,
+ 3314: 0xBCA2,
+ 3315: 0xBCA3,
+ 3316: 0xBCA5,
+ 3317: 0xBCA6,
+ 3318: 0xBCA9,
+ 3319: 0xBCAA,
+ 3320: 0xBCAB,
+ 3321: 0xBCAC,
+ 3322: 0xBCAD,
+ 3323: 0xBCAE,
+ 3324: 0xBCAF,
+ 3325: 0xBCB2,
+ 3326: 0xBCB6,
+ 3327: 0xBCB7,
+ 3328: 0xBCB8,
+ 3329: 0xBCB9,
+ 3330: 0xBCBA,
+ 3331: 0xBCBB,
+ 3332: 0xBCBE,
+ 3333: 0xBCBF,
+ 3334: 0xBCC1,
+ 3335: 0xBCC2,
+ 3336: 0xBCC3,
+ 3337: 0xBCC5,
+ 3338: 0xBCC6,
+ 3339: 0xBCC7,
+ 3340: 0xBCC8,
+ 3341: 0xBCC9,
+ 3342: 0xBCCA,
+ 3343: 0xBCCB,
+ 3344: 0xBCCC,
+ 3345: 0xBCCE,
+ 3346: 0xBCD2,
+ 3347: 0xBCD3,
+ 3348: 0xBCD4,
+ 3349: 0xBCD6,
+ 3350: 0xBCD7,
+ 3351: 0xBCD9,
+ 3352: 0xBCDA,
+ 3353: 0xBCDB,
+ 3354: 0xBCDD,
+ 3355: 0xBCDE,
+ 3356: 0xBCDF,
+ 3357: 0xBCE0,
+ 3358: 0xBCE1,
+ 3359: 0xBCE2,
+ 3360: 0xBCE3,
+ 3361: 0xBCE4,
+ 3362: 0xBCE5,
+ 3363: 0xBCE6,
+ 3364: 0xBCE7,
+ 3365: 0xBCE8,
+ 3366: 0xBCE9,
+ 3367: 0xBCEA,
+ 3368: 0xBCEB,
+ 3369: 0xBCEC,
+ 3370: 0xBCED,
+ 3371: 0xBCEE,
+ 3372: 0xBCEF,
+ 3373: 0xBCF0,
+ 3374: 0xBCF1,
+ 3375: 0xBCF2,
+ 3376: 0xBCF3,
+ 3377: 0xBCF7,
+ 3378: 0xBCF9,
+ 3379: 0xBCFA,
+ 3380: 0xBCFB,
+ 3381: 0xBCFD,
+ 3382: 0xBCFE,
+ 3383: 0xBCFF,
+ 3384: 0xBD00,
+ 3385: 0xBD01,
+ 3386: 0xBD02,
+ 3387: 0xBD03,
+ 3388: 0xBD06,
+ 3389: 0xBD08,
+ 3390: 0xBD0A,
+ 3391: 0xBD0B,
+ 3392: 0xBD0C,
+ 3393: 0xBD0D,
+ 3394: 0xBD0E,
+ 3395: 0xBD0F,
+ 3396: 0xBD11,
+ 3397: 0xBD12,
+ 3398: 0xBD13,
+ 3399: 0xBD15,
+ 3400: 0xBD16,
+ 3401: 0xBD17,
+ 3402: 0xBD18,
+ 3403: 0xBD19,
+ 3404: 0xBD1A,
+ 3405: 0xBD1B,
+ 3406: 0xBD1C,
+ 3407: 0xBD1D,
+ 3408: 0xBD1E,
+ 3409: 0xBD1F,
+ 3410: 0xBD20,
+ 3411: 0xBD21,
+ 3412: 0xBD22,
+ 3413: 0xBD23,
+ 3414: 0xBD25,
+ 3415: 0xBD26,
+ 3416: 0xBD27,
+ 3417: 0xBD28,
+ 3418: 0xBD29,
+ 3419: 0xBD2A,
+ 3420: 0xBD2B,
+ 3421: 0xBD2D,
+ 3422: 0xBD2E,
+ 3423: 0xBD2F,
+ 3424: 0xBD30,
+ 3425: 0xBD31,
+ 3426: 0xBD32,
+ 3427: 0xBD33,
+ 3428: 0xBD34,
+ 3429: 0xBD35,
+ 3430: 0xBD36,
+ 3431: 0xBD37,
+ 3432: 0xBD38,
+ 3433: 0xBD39,
+ 3434: 0xBD3A,
+ 3435: 0xBD3B,
+ 3436: 0xBD3C,
+ 3437: 0xBD3D,
+ 3438: 0xBD3E,
+ 3439: 0xBD3F,
+ 3440: 0xBD41,
+ 3441: 0xBD42,
+ 3442: 0xBD43,
+ 3443: 0xBD44,
+ 3444: 0xBD45,
+ 3445: 0xBD46,
+ 3446: 0xBD47,
+ 3447: 0xBD4A,
+ 3448: 0xBD4B,
+ 3449: 0xBD4D,
+ 3450: 0xBD4E,
+ 3451: 0xBD4F,
+ 3452: 0xBD51,
+ 3453: 0xBD52,
+ 3454: 0xBD53,
+ 3455: 0xBD54,
+ 3456: 0xBD55,
+ 3457: 0xBD56,
+ 3458: 0xBD57,
+ 3459: 0xBD5A,
+ 3460: 0xBD5B,
+ 3461: 0xBD5C,
+ 3462: 0xBD5D,
+ 3463: 0xBD5E,
+ 3464: 0xBD5F,
+ 3465: 0xBD60,
+ 3466: 0xBD61,
+ 3467: 0xBD62,
+ 3468: 0xBD63,
+ 3469: 0xBD65,
+ 3470: 0xBD66,
+ 3471: 0xBD67,
+ 3472: 0xBD69,
+ 3473: 0xBD6A,
+ 3474: 0xBD6B,
+ 3475: 0xBD6C,
+ 3476: 0xBD6D,
+ 3477: 0xBD6E,
+ 3478: 0xBD6F,
+ 3479: 0xBD70,
+ 3480: 0xBD71,
+ 3481: 0xBD72,
+ 3482: 0xBD73,
+ 3483: 0xBD74,
+ 3484: 0xBD75,
+ 3485: 0xBD76,
+ 3486: 0xBD77,
+ 3487: 0xBD78,
+ 3488: 0xBD79,
+ 3489: 0xBD7A,
+ 3490: 0xBD7B,
+ 3491: 0xBD7C,
+ 3492: 0xBD7D,
+ 3493: 0xBD7E,
+ 3494: 0xBD7F,
+ 3495: 0xBD82,
+ 3496: 0xBD83,
+ 3497: 0xBD85,
+ 3498: 0xBD86,
+ 3499: 0xBD8B,
+ 3500: 0xBD8C,
+ 3501: 0xBD8D,
+ 3502: 0xBD8E,
+ 3503: 0xBD8F,
+ 3504: 0xBD92,
+ 3505: 0xBD94,
+ 3506: 0xBD96,
+ 3507: 0xBD97,
+ 3508: 0xBD98,
+ 3509: 0xBD9B,
+ 3510: 0xBD9D,
+ 3511: 0xBD9E,
+ 3512: 0xBD9F,
+ 3513: 0xBDA0,
+ 3514: 0xBDA1,
+ 3515: 0xBDA2,
+ 3516: 0xBDA3,
+ 3517: 0xBDA5,
+ 3518: 0xBDA6,
+ 3519: 0xBDA7,
+ 3520: 0xBDA8,
+ 3521: 0xBDA9,
+ 3522: 0xBDAA,
+ 3523: 0xBDAB,
+ 3524: 0xBDAC,
+ 3525: 0xBDAD,
+ 3526: 0xBDAE,
+ 3527: 0xBDAF,
+ 3528: 0xBDB1,
+ 3529: 0xBDB2,
+ 3530: 0xBDB3,
+ 3531: 0xBDB4,
+ 3532: 0xBDB5,
+ 3533: 0xBDB6,
+ 3534: 0xBDB7,
+ 3535: 0xBDB9,
+ 3536: 0xBDBA,
+ 3537: 0xBDBB,
+ 3538: 0xBDBC,
+ 3539: 0xBDBD,
+ 3540: 0xBDBE,
+ 3541: 0xBDBF,
+ 3542: 0xBDC0,
+ 3543: 0xBDC1,
+ 3544: 0xBDC2,
+ 3545: 0xBDC3,
+ 3546: 0xBDC4,
+ 3547: 0xBDC5,
+ 3548: 0xBDC6,
+ 3549: 0xBDC7,
+ 3550: 0xBDC8,
+ 3551: 0xBDC9,
+ 3552: 0xBDCA,
+ 3553: 0xBDCB,
+ 3554: 0xBDCC,
+ 3555: 0xBDCD,
+ 3556: 0xBDCE,
+ 3557: 0xBDCF,
+ 3558: 0xBDD0,
+ 3559: 0xBDD1,
+ 3560: 0xBDD2,
+ 3561: 0xBDD3,
+ 3562: 0xBDD6,
+ 3563: 0xBDD7,
+ 3564: 0xBDD9,
+ 3565: 0xBDDA,
+ 3566: 0xBDDB,
+ 3567: 0xBDDD,
+ 3568: 0xBDDE,
+ 3569: 0xBDDF,
+ 3570: 0xBDE0,
+ 3571: 0xBDE1,
+ 3572: 0xBDE2,
+ 3573: 0xBDE3,
+ 3574: 0xBDE4,
+ 3575: 0xBDE5,
+ 3576: 0xBDE6,
+ 3577: 0xBDE7,
+ 3578: 0xBDE8,
+ 3579: 0xBDEA,
+ 3580: 0xBDEB,
+ 3581: 0xBDEC,
+ 3582: 0xBDED,
+ 3583: 0xBDEE,
+ 3584: 0xBDEF,
+ 3585: 0xBDF1,
+ 3586: 0xBDF2,
+ 3587: 0xBDF3,
+ 3588: 0xBDF5,
+ 3589: 0xBDF6,
+ 3590: 0xBDF7,
+ 3591: 0xBDF9,
+ 3592: 0xBDFA,
+ 3593: 0xBDFB,
+ 3594: 0xBDFC,
+ 3595: 0xBDFD,
+ 3596: 0xBDFE,
+ 3597: 0xBDFF,
+ 3598: 0xBE01,
+ 3599: 0xBE02,
+ 3600: 0xBE04,
+ 3601: 0xBE06,
+ 3602: 0xBE07,
+ 3603: 0xBE08,
+ 3604: 0xBE09,
+ 3605: 0xBE0A,
+ 3606: 0xBE0B,
+ 3607: 0xBE0E,
+ 3608: 0xBE0F,
+ 3609: 0xBE11,
+ 3610: 0xBE12,
+ 3611: 0xBE13,
+ 3612: 0xBE15,
+ 3613: 0xBE16,
+ 3614: 0xBE17,
+ 3615: 0xBE18,
+ 3616: 0xBE19,
+ 3617: 0xBE1A,
+ 3618: 0xBE1B,
+ 3619: 0xBE1E,
+ 3620: 0xBE20,
+ 3621: 0xBE21,
+ 3622: 0xBE22,
+ 3623: 0xBE23,
+ 3624: 0xBE24,
+ 3625: 0xBE25,
+ 3626: 0xBE26,
+ 3627: 0xBE27,
+ 3628: 0xBE28,
+ 3629: 0xBE29,
+ 3630: 0xBE2A,
+ 3631: 0xBE2B,
+ 3632: 0xBE2C,
+ 3633: 0xBE2D,
+ 3634: 0xBE2E,
+ 3635: 0xBE2F,
+ 3636: 0xBE30,
+ 3637: 0xBE31,
+ 3638: 0xBE32,
+ 3639: 0xBE33,
+ 3640: 0xBE34,
+ 3641: 0xBE35,
+ 3642: 0xBE36,
+ 3643: 0xBE37,
+ 3644: 0xBE38,
+ 3645: 0xBE39,
+ 3646: 0xBE3A,
+ 3647: 0xBE3B,
+ 3648: 0xBE3C,
+ 3649: 0xBE3D,
+ 3650: 0xBE3E,
+ 3651: 0xBE3F,
+ 3652: 0xBE40,
+ 3653: 0xBE41,
+ 3654: 0xBE42,
+ 3655: 0xBE43,
+ 3656: 0xBE46,
+ 3657: 0xBE47,
+ 3658: 0xBE49,
+ 3659: 0xBE4A,
+ 3660: 0xBE4B,
+ 3661: 0xBE4D,
+ 3662: 0xBE4F,
+ 3663: 0xBE50,
+ 3664: 0xBE51,
+ 3665: 0xBE52,
+ 3666: 0xBE53,
+ 3667: 0xBE56,
+ 3668: 0xBE58,
+ 3669: 0xBE5C,
+ 3670: 0xBE5D,
+ 3671: 0xBE5E,
+ 3672: 0xBE5F,
+ 3673: 0xBE62,
+ 3674: 0xBE63,
+ 3675: 0xBE65,
+ 3676: 0xBE66,
+ 3677: 0xBE67,
+ 3678: 0xBE69,
+ 3679: 0xBE6B,
+ 3680: 0xBE6C,
+ 3681: 0xBE6D,
+ 3682: 0xBE6E,
+ 3683: 0xBE6F,
+ 3684: 0xBE72,
+ 3685: 0xBE76,
+ 3686: 0xBE77,
+ 3687: 0xBE78,
+ 3688: 0xBE79,
+ 3689: 0xBE7A,
+ 3690: 0xBE7E,
+ 3691: 0xBE7F,
+ 3692: 0xBE81,
+ 3693: 0xBE82,
+ 3694: 0xBE83,
+ 3695: 0xBE85,
+ 3696: 0xBE86,
+ 3697: 0xBE87,
+ 3698: 0xBE88,
+ 3699: 0xBE89,
+ 3700: 0xBE8A,
+ 3701: 0xBE8B,
+ 3702: 0xBE8E,
+ 3703: 0xBE92,
+ 3704: 0xBE93,
+ 3705: 0xBE94,
+ 3706: 0xBE95,
+ 3707: 0xBE96,
+ 3708: 0xBE97,
+ 3709: 0xBE9A,
+ 3710: 0xBE9B,
+ 3711: 0xBE9C,
+ 3712: 0xBE9D,
+ 3713: 0xBE9E,
+ 3714: 0xBE9F,
+ 3715: 0xBEA0,
+ 3716: 0xBEA1,
+ 3717: 0xBEA2,
+ 3718: 0xBEA3,
+ 3719: 0xBEA4,
+ 3720: 0xBEA5,
+ 3721: 0xBEA6,
+ 3722: 0xBEA7,
+ 3723: 0xBEA9,
+ 3724: 0xBEAA,
+ 3725: 0xBEAB,
+ 3726: 0xBEAC,
+ 3727: 0xBEAD,
+ 3728: 0xBEAE,
+ 3729: 0xBEAF,
+ 3730: 0xBEB0,
+ 3731: 0xBEB1,
+ 3732: 0xBEB2,
+ 3733: 0xBEB3,
+ 3734: 0xBEB4,
+ 3735: 0xBEB5,
+ 3736: 0xBEB6,
+ 3737: 0xBEB7,
+ 3738: 0xBEB8,
+ 3739: 0xBEB9,
+ 3740: 0xBEBA,
+ 3741: 0xBEBB,
+ 3742: 0xBEBC,
+ 3743: 0xBEBD,
+ 3744: 0xBEBE,
+ 3745: 0xBEBF,
+ 3746: 0xBEC0,
+ 3747: 0xBEC1,
+ 3748: 0xBEC2,
+ 3749: 0xBEC3,
+ 3750: 0xBEC4,
+ 3751: 0xBEC5,
+ 3752: 0xBEC6,
+ 3753: 0xBEC7,
+ 3754: 0xBEC8,
+ 3755: 0xBEC9,
+ 3756: 0xBECA,
+ 3757: 0xBECB,
+ 3758: 0xBECC,
+ 3759: 0xBECD,
+ 3760: 0xBECE,
+ 3761: 0xBECF,
+ 3762: 0xBED2,
+ 3763: 0xBED3,
+ 3764: 0xBED5,
+ 3765: 0xBED6,
+ 3766: 0xBED9,
+ 3767: 0xBEDA,
+ 3768: 0xBEDB,
+ 3769: 0xBEDC,
+ 3770: 0xBEDD,
+ 3771: 0xBEDE,
+ 3772: 0xBEDF,
+ 3773: 0xBEE1,
+ 3774: 0xBEE2,
+ 3775: 0xBEE6,
+ 3776: 0xBEE7,
+ 3777: 0xBEE8,
+ 3778: 0xBEE9,
+ 3779: 0xBEEA,
+ 3780: 0xBEEB,
+ 3781: 0xBEED,
+ 3782: 0xBEEE,
+ 3783: 0xBEEF,
+ 3784: 0xBEF0,
+ 3785: 0xBEF1,
+ 3786: 0xBEF2,
+ 3787: 0xBEF3,
+ 3788: 0xBEF4,
+ 3789: 0xBEF5,
+ 3790: 0xBEF6,
+ 3791: 0xBEF7,
+ 3792: 0xBEF8,
+ 3793: 0xBEF9,
+ 3794: 0xBEFA,
+ 3795: 0xBEFB,
+ 3796: 0xBEFC,
+ 3797: 0xBEFD,
+ 3798: 0xBEFE,
+ 3799: 0xBEFF,
+ 3800: 0xBF00,
+ 3801: 0xBF02,
+ 3802: 0xBF03,
+ 3803: 0xBF04,
+ 3804: 0xBF05,
+ 3805: 0xBF06,
+ 3806: 0xBF07,
+ 3807: 0xBF0A,
+ 3808: 0xBF0B,
+ 3809: 0xBF0C,
+ 3810: 0xBF0D,
+ 3811: 0xBF0E,
+ 3812: 0xBF0F,
+ 3813: 0xBF10,
+ 3814: 0xBF11,
+ 3815: 0xBF12,
+ 3816: 0xBF13,
+ 3817: 0xBF14,
+ 3818: 0xBF15,
+ 3819: 0xBF16,
+ 3820: 0xBF17,
+ 3821: 0xBF1A,
+ 3822: 0xBF1E,
+ 3823: 0xBF1F,
+ 3824: 0xBF20,
+ 3825: 0xBF21,
+ 3826: 0xBF22,
+ 3827: 0xBF23,
+ 3828: 0xBF24,
+ 3829: 0xBF25,
+ 3830: 0xBF26,
+ 3831: 0xBF27,
+ 3832: 0xBF28,
+ 3833: 0xBF29,
+ 3834: 0xBF2A,
+ 3835: 0xBF2B,
+ 3836: 0xBF2C,
+ 3837: 0xBF2D,
+ 3838: 0xBF2E,
+ 3839: 0xBF2F,
+ 3840: 0xBF30,
+ 3841: 0xBF31,
+ 3842: 0xBF32,
+ 3843: 0xBF33,
+ 3844: 0xBF34,
+ 3845: 0xBF35,
+ 3846: 0xBF36,
+ 3847: 0xBF37,
+ 3848: 0xBF38,
+ 3849: 0xBF39,
+ 3850: 0xBF3A,
+ 3851: 0xBF3B,
+ 3852: 0xBF3C,
+ 3853: 0xBF3D,
+ 3854: 0xBF3E,
+ 3855: 0xBF3F,
+ 3856: 0xBF42,
+ 3857: 0xBF43,
+ 3858: 0xBF45,
+ 3859: 0xBF46,
+ 3860: 0xBF47,
+ 3861: 0xBF49,
+ 3862: 0xBF4A,
+ 3863: 0xBF4B,
+ 3864: 0xBF4C,
+ 3865: 0xBF4D,
+ 3866: 0xBF4E,
+ 3867: 0xBF4F,
+ 3868: 0xBF52,
+ 3869: 0xBF53,
+ 3870: 0xBF54,
+ 3871: 0xBF56,
+ 3872: 0xBF57,
+ 3873: 0xBF58,
+ 3874: 0xBF59,
+ 3875: 0xBF5A,
+ 3876: 0xBF5B,
+ 3877: 0xBF5C,
+ 3878: 0xBF5D,
+ 3879: 0xBF5E,
+ 3880: 0xBF5F,
+ 3881: 0xBF60,
+ 3882: 0xBF61,
+ 3883: 0xBF62,
+ 3884: 0xBF63,
+ 3885: 0xBF64,
+ 3886: 0xBF65,
+ 3887: 0xBF66,
+ 3888: 0xBF67,
+ 3889: 0xBF68,
+ 3890: 0xBF69,
+ 3891: 0xBF6A,
+ 3892: 0xBF6B,
+ 3893: 0xBF6C,
+ 3894: 0xBF6D,
+ 3895: 0xBF6E,
+ 3896: 0xBF6F,
+ 3897: 0xBF70,
+ 3898: 0xBF71,
+ 3899: 0xBF72,
+ 3900: 0xBF73,
+ 3901: 0xBF74,
+ 3902: 0xBF75,
+ 3903: 0xBF76,
+ 3904: 0xBF77,
+ 3905: 0xBF78,
+ 3906: 0xBF79,
+ 3907: 0xBF7A,
+ 3908: 0xBF7B,
+ 3909: 0xBF7C,
+ 3910: 0xBF7D,
+ 3911: 0xBF7E,
+ 3912: 0xBF7F,
+ 3913: 0xBF80,
+ 3914: 0xBF81,
+ 3915: 0xBF82,
+ 3916: 0xBF83,
+ 3917: 0xBF84,
+ 3918: 0xBF85,
+ 3919: 0xBF86,
+ 3920: 0xBF87,
+ 3921: 0xBF88,
+ 3922: 0xBF89,
+ 3923: 0xBF8A,
+ 3924: 0xBF8B,
+ 3925: 0xBF8C,
+ 3926: 0xBF8D,
+ 3927: 0xBF8E,
+ 3928: 0xBF8F,
+ 3929: 0xBF90,
+ 3930: 0xBF91,
+ 3931: 0xBF92,
+ 3932: 0xBF93,
+ 3933: 0xBF95,
+ 3934: 0xBF96,
+ 3935: 0xBF97,
+ 3936: 0xBF98,
+ 3937: 0xBF99,
+ 3938: 0xBF9A,
+ 3939: 0xBF9B,
+ 3940: 0xBF9C,
+ 3941: 0xBF9D,
+ 3942: 0xBF9E,
+ 3943: 0xBF9F,
+ 3944: 0xBFA0,
+ 3945: 0xBFA1,
+ 3946: 0xBFA2,
+ 3947: 0xBFA3,
+ 3948: 0xBFA4,
+ 3949: 0xBFA5,
+ 3950: 0xBFA6,
+ 3951: 0xBFA7,
+ 3952: 0xBFA8,
+ 3953: 0xBFA9,
+ 3954: 0xBFAA,
+ 3955: 0xBFAB,
+ 3956: 0xBFAC,
+ 3957: 0xBFAD,
+ 3958: 0xBFAE,
+ 3959: 0xBFAF,
+ 3960: 0xBFB1,
+ 3961: 0xBFB2,
+ 3962: 0xBFB3,
+ 3963: 0xBFB4,
+ 3964: 0xBFB5,
+ 3965: 0xBFB6,
+ 3966: 0xBFB7,
+ 3967: 0xBFB8,
+ 3968: 0xBFB9,
+ 3969: 0xBFBA,
+ 3970: 0xBFBB,
+ 3971: 0xBFBC,
+ 3972: 0xBFBD,
+ 3973: 0xBFBE,
+ 3974: 0xBFBF,
+ 3975: 0xBFC0,
+ 3976: 0xBFC1,
+ 3977: 0xBFC2,
+ 3978: 0xBFC3,
+ 3979: 0xBFC4,
+ 3980: 0xBFC6,
+ 3981: 0xBFC7,
+ 3982: 0xBFC8,
+ 3983: 0xBFC9,
+ 3984: 0xBFCA,
+ 3985: 0xBFCB,
+ 3986: 0xBFCE,
+ 3987: 0xBFCF,
+ 3988: 0xBFD1,
+ 3989: 0xBFD2,
+ 3990: 0xBFD3,
+ 3991: 0xBFD5,
+ 3992: 0xBFD6,
+ 3993: 0xBFD7,
+ 3994: 0xBFD8,
+ 3995: 0xBFD9,
+ 3996: 0xBFDA,
+ 3997: 0xBFDB,
+ 3998: 0xBFDD,
+ 3999: 0xBFDE,
+ 4000: 0xBFE0,
+ 4001: 0xBFE2,
+ 4002: 0xBFE3,
+ 4003: 0xBFE4,
+ 4004: 0xBFE5,
+ 4005: 0xBFE6,
+ 4006: 0xBFE7,
+ 4007: 0xBFE8,
+ 4008: 0xBFE9,
+ 4009: 0xBFEA,
+ 4010: 0xBFEB,
+ 4011: 0xBFEC,
+ 4012: 0xBFED,
+ 4013: 0xBFEE,
+ 4014: 0xBFEF,
+ 4015: 0xBFF0,
+ 4016: 0xBFF1,
+ 4017: 0xBFF2,
+ 4018: 0xBFF3,
+ 4019: 0xBFF4,
+ 4020: 0xBFF5,
+ 4021: 0xBFF6,
+ 4022: 0xBFF7,
+ 4023: 0xBFF8,
+ 4024: 0xBFF9,
+ 4025: 0xBFFA,
+ 4026: 0xBFFB,
+ 4027: 0xBFFC,
+ 4028: 0xBFFD,
+ 4029: 0xBFFE,
+ 4030: 0xBFFF,
+ 4031: 0xC000,
+ 4032: 0xC001,
+ 4033: 0xC002,
+ 4034: 0xC003,
+ 4035: 0xC004,
+ 4036: 0xC005,
+ 4037: 0xC006,
+ 4038: 0xC007,
+ 4039: 0xC008,
+ 4040: 0xC009,
+ 4041: 0xC00A,
+ 4042: 0xC00B,
+ 4043: 0xC00C,
+ 4044: 0xC00D,
+ 4045: 0xC00E,
+ 4046: 0xC00F,
+ 4047: 0xC010,
+ 4048: 0xC011,
+ 4049: 0xC012,
+ 4050: 0xC013,
+ 4051: 0xC014,
+ 4052: 0xC015,
+ 4053: 0xC016,
+ 4054: 0xC017,
+ 4055: 0xC018,
+ 4056: 0xC019,
+ 4057: 0xC01A,
+ 4058: 0xC01B,
+ 4059: 0xC01C,
+ 4060: 0xC01D,
+ 4061: 0xC01E,
+ 4062: 0xC01F,
+ 4063: 0xC020,
+ 4064: 0xC021,
+ 4065: 0xC022,
+ 4066: 0xC023,
+ 4067: 0xC024,
+ 4068: 0xC025,
+ 4069: 0xC026,
+ 4070: 0xC027,
+ 4071: 0xC028,
+ 4072: 0xC029,
+ 4073: 0xC02A,
+ 4074: 0xC02B,
+ 4075: 0xC02C,
+ 4076: 0xC02D,
+ 4077: 0xC02E,
+ 4078: 0xC02F,
+ 4079: 0xC030,
+ 4080: 0xC031,
+ 4081: 0xC032,
+ 4082: 0xC033,
+ 4083: 0xC034,
+ 4084: 0xC035,
+ 4085: 0xC036,
+ 4086: 0xC037,
+ 4087: 0xC038,
+ 4088: 0xC039,
+ 4089: 0xC03A,
+ 4090: 0xC03B,
+ 4091: 0xC03D,
+ 4092: 0xC03E,
+ 4093: 0xC03F,
+ 4094: 0xC040,
+ 4095: 0xC041,
+ 4096: 0xC042,
+ 4097: 0xC043,
+ 4098: 0xC044,
+ 4099: 0xC045,
+ 4100: 0xC046,
+ 4101: 0xC047,
+ 4102: 0xC048,
+ 4103: 0xC049,
+ 4104: 0xC04A,
+ 4105: 0xC04B,
+ 4106: 0xC04C,
+ 4107: 0xC04D,
+ 4108: 0xC04E,
+ 4109: 0xC04F,
+ 4110: 0xC050,
+ 4111: 0xC052,
+ 4112: 0xC053,
+ 4113: 0xC054,
+ 4114: 0xC055,
+ 4115: 0xC056,
+ 4116: 0xC057,
+ 4117: 0xC059,
+ 4118: 0xC05A,
+ 4119: 0xC05B,
+ 4120: 0xC05D,
+ 4121: 0xC05E,
+ 4122: 0xC05F,
+ 4123: 0xC061,
+ 4124: 0xC062,
+ 4125: 0xC063,
+ 4126: 0xC064,
+ 4127: 0xC065,
+ 4128: 0xC066,
+ 4129: 0xC067,
+ 4130: 0xC06A,
+ 4131: 0xC06B,
+ 4132: 0xC06C,
+ 4133: 0xC06D,
+ 4134: 0xC06E,
+ 4135: 0xC06F,
+ 4136: 0xC070,
+ 4137: 0xC071,
+ 4138: 0xC072,
+ 4139: 0xC073,
+ 4140: 0xC074,
+ 4141: 0xC075,
+ 4142: 0xC076,
+ 4143: 0xC077,
+ 4144: 0xC078,
+ 4145: 0xC079,
+ 4146: 0xC07A,
+ 4147: 0xC07B,
+ 4148: 0xC07C,
+ 4149: 0xC07D,
+ 4150: 0xC07E,
+ 4151: 0xC07F,
+ 4152: 0xC080,
+ 4153: 0xC081,
+ 4154: 0xC082,
+ 4155: 0xC083,
+ 4156: 0xC084,
+ 4157: 0xC085,
+ 4158: 0xC086,
+ 4159: 0xC087,
+ 4160: 0xC088,
+ 4161: 0xC089,
+ 4162: 0xC08A,
+ 4163: 0xC08B,
+ 4164: 0xC08C,
+ 4165: 0xC08D,
+ 4166: 0xC08E,
+ 4167: 0xC08F,
+ 4168: 0xC092,
+ 4169: 0xC093,
+ 4170: 0xC095,
+ 4171: 0xC096,
+ 4172: 0xC097,
+ 4173: 0xC099,
+ 4174: 0xC09A,
+ 4175: 0xC09B,
+ 4176: 0xC09C,
+ 4177: 0xC09D,
+ 4178: 0xC09E,
+ 4179: 0xC09F,
+ 4180: 0xC0A2,
+ 4181: 0xC0A4,
+ 4182: 0xC0A6,
+ 4183: 0xC0A7,
+ 4184: 0xC0A8,
+ 4185: 0xC0A9,
+ 4186: 0xC0AA,
+ 4187: 0xC0AB,
+ 4188: 0xC0AE,
+ 4189: 0xC0B1,
+ 4190: 0xC0B2,
+ 4191: 0xC0B7,
+ 4192: 0xC0B8,
+ 4193: 0xC0B9,
+ 4194: 0xC0BA,
+ 4195: 0xC0BB,
+ 4196: 0xC0BE,
+ 4197: 0xC0C2,
+ 4198: 0xC0C3,
+ 4199: 0xC0C4,
+ 4200: 0xC0C6,
+ 4201: 0xC0C7,
+ 4202: 0xC0CA,
+ 4203: 0xC0CB,
+ 4204: 0xC0CD,
+ 4205: 0xC0CE,
+ 4206: 0xC0CF,
+ 4207: 0xC0D1,
+ 4208: 0xC0D2,
+ 4209: 0xC0D3,
+ 4210: 0xC0D4,
+ 4211: 0xC0D5,
+ 4212: 0xC0D6,
+ 4213: 0xC0D7,
+ 4214: 0xC0DA,
+ 4215: 0xC0DE,
+ 4216: 0xC0DF,
+ 4217: 0xC0E0,
+ 4218: 0xC0E1,
+ 4219: 0xC0E2,
+ 4220: 0xC0E3,
+ 4221: 0xC0E6,
+ 4222: 0xC0E7,
+ 4223: 0xC0E9,
+ 4224: 0xC0EA,
+ 4225: 0xC0EB,
+ 4226: 0xC0ED,
+ 4227: 0xC0EE,
+ 4228: 0xC0EF,
+ 4229: 0xC0F0,
+ 4230: 0xC0F1,
+ 4231: 0xC0F2,
+ 4232: 0xC0F3,
+ 4233: 0xC0F6,
+ 4234: 0xC0F8,
+ 4235: 0xC0FA,
+ 4236: 0xC0FB,
+ 4237: 0xC0FC,
+ 4238: 0xC0FD,
+ 4239: 0xC0FE,
+ 4240: 0xC0FF,
+ 4241: 0xC101,
+ 4242: 0xC102,
+ 4243: 0xC103,
+ 4244: 0xC105,
+ 4245: 0xC106,
+ 4246: 0xC107,
+ 4247: 0xC109,
+ 4248: 0xC10A,
+ 4249: 0xC10B,
+ 4250: 0xC10C,
+ 4251: 0xC10D,
+ 4252: 0xC10E,
+ 4253: 0xC10F,
+ 4254: 0xC111,
+ 4255: 0xC112,
+ 4256: 0xC113,
+ 4257: 0xC114,
+ 4258: 0xC116,
+ 4259: 0xC117,
+ 4260: 0xC118,
+ 4261: 0xC119,
+ 4262: 0xC11A,
+ 4263: 0xC11B,
+ 4264: 0xC121,
+ 4265: 0xC122,
+ 4266: 0xC125,
+ 4267: 0xC128,
+ 4268: 0xC129,
+ 4269: 0xC12A,
+ 4270: 0xC12B,
+ 4271: 0xC12E,
+ 4272: 0xC132,
+ 4273: 0xC133,
+ 4274: 0xC134,
+ 4275: 0xC135,
+ 4276: 0xC137,
+ 4277: 0xC13A,
+ 4278: 0xC13B,
+ 4279: 0xC13D,
+ 4280: 0xC13E,
+ 4281: 0xC13F,
+ 4282: 0xC141,
+ 4283: 0xC142,
+ 4284: 0xC143,
+ 4285: 0xC144,
+ 4286: 0xC145,
+ 4287: 0xC146,
+ 4288: 0xC147,
+ 4289: 0xC14A,
+ 4290: 0xC14E,
+ 4291: 0xC14F,
+ 4292: 0xC150,
+ 4293: 0xC151,
+ 4294: 0xC152,
+ 4295: 0xC153,
+ 4296: 0xC156,
+ 4297: 0xC157,
+ 4298: 0xC159,
+ 4299: 0xC15A,
+ 4300: 0xC15B,
+ 4301: 0xC15D,
+ 4302: 0xC15E,
+ 4303: 0xC15F,
+ 4304: 0xC160,
+ 4305: 0xC161,
+ 4306: 0xC162,
+ 4307: 0xC163,
+ 4308: 0xC166,
+ 4309: 0xC16A,
+ 4310: 0xC16B,
+ 4311: 0xC16C,
+ 4312: 0xC16D,
+ 4313: 0xC16E,
+ 4314: 0xC16F,
+ 4315: 0xC171,
+ 4316: 0xC172,
+ 4317: 0xC173,
+ 4318: 0xC175,
+ 4319: 0xC176,
+ 4320: 0xC177,
+ 4321: 0xC179,
+ 4322: 0xC17A,
+ 4323: 0xC17B,
+ 4324: 0xC17C,
+ 4325: 0xC17D,
+ 4326: 0xC17E,
+ 4327: 0xC17F,
+ 4328: 0xC180,
+ 4329: 0xC181,
+ 4330: 0xC182,
+ 4331: 0xC183,
+ 4332: 0xC184,
+ 4333: 0xC186,
+ 4334: 0xC187,
+ 4335: 0xC188,
+ 4336: 0xC189,
+ 4337: 0xC18A,
+ 4338: 0xC18B,
+ 4339: 0xC18F,
+ 4340: 0xC191,
+ 4341: 0xC192,
+ 4342: 0xC193,
+ 4343: 0xC195,
+ 4344: 0xC197,
+ 4345: 0xC198,
+ 4346: 0xC199,
+ 4347: 0xC19A,
+ 4348: 0xC19B,
+ 4349: 0xC19E,
+ 4350: 0xC1A0,
+ 4351: 0xC1A2,
+ 4352: 0xC1A3,
+ 4353: 0xC1A4,
+ 4354: 0xC1A6,
+ 4355: 0xC1A7,
+ 4356: 0xC1AA,
+ 4357: 0xC1AB,
+ 4358: 0xC1AD,
+ 4359: 0xC1AE,
+ 4360: 0xC1AF,
+ 4361: 0xC1B1,
+ 4362: 0xC1B2,
+ 4363: 0xC1B3,
+ 4364: 0xC1B4,
+ 4365: 0xC1B5,
+ 4366: 0xC1B6,
+ 4367: 0xC1B7,
+ 4368: 0xC1B8,
+ 4369: 0xC1B9,
+ 4370: 0xC1BA,
+ 4371: 0xC1BB,
+ 4372: 0xC1BC,
+ 4373: 0xC1BE,
+ 4374: 0xC1BF,
+ 4375: 0xC1C0,
+ 4376: 0xC1C1,
+ 4377: 0xC1C2,
+ 4378: 0xC1C3,
+ 4379: 0xC1C5,
+ 4380: 0xC1C6,
+ 4381: 0xC1C7,
+ 4382: 0xC1C9,
+ 4383: 0xC1CA,
+ 4384: 0xC1CB,
+ 4385: 0xC1CD,
+ 4386: 0xC1CE,
+ 4387: 0xC1CF,
+ 4388: 0xC1D0,
+ 4389: 0xC1D1,
+ 4390: 0xC1D2,
+ 4391: 0xC1D3,
+ 4392: 0xC1D5,
+ 4393: 0xC1D6,
+ 4394: 0xC1D9,
+ 4395: 0xC1DA,
+ 4396: 0xC1DB,
+ 4397: 0xC1DC,
+ 4398: 0xC1DD,
+ 4399: 0xC1DE,
+ 4400: 0xC1DF,
+ 4401: 0xC1E1,
+ 4402: 0xC1E2,
+ 4403: 0xC1E3,
+ 4404: 0xC1E5,
+ 4405: 0xC1E6,
+ 4406: 0xC1E7,
+ 4407: 0xC1E9,
+ 4408: 0xC1EA,
+ 4409: 0xC1EB,
+ 4410: 0xC1EC,
+ 4411: 0xC1ED,
+ 4412: 0xC1EE,
+ 4413: 0xC1EF,
+ 4414: 0xC1F2,
+ 4415: 0xC1F4,
+ 4416: 0xC1F5,
+ 4417: 0xC1F6,
+ 4418: 0xC1F7,
+ 4419: 0xC1F8,
+ 4420: 0xC1F9,
+ 4421: 0xC1FA,
+ 4422: 0xC1FB,
+ 4423: 0xC1FE,
+ 4424: 0xC1FF,
+ 4425: 0xC201,
+ 4426: 0xC202,
+ 4427: 0xC203,
+ 4428: 0xC205,
+ 4429: 0xC206,
+ 4430: 0xC207,
+ 4431: 0xC208,
+ 4432: 0xC209,
+ 4433: 0xC20A,
+ 4434: 0xC20B,
+ 4435: 0xC20E,
+ 4436: 0xC210,
+ 4437: 0xC212,
+ 4438: 0xC213,
+ 4439: 0xC214,
+ 4440: 0xC215,
+ 4441: 0xC216,
+ 4442: 0xC217,
+ 4443: 0xC21A,
+ 4444: 0xC21B,
+ 4445: 0xC21D,
+ 4446: 0xC21E,
+ 4447: 0xC221,
+ 4448: 0xC222,
+ 4449: 0xC223,
+ 4450: 0xC224,
+ 4451: 0xC225,
+ 4452: 0xC226,
+ 4453: 0xC227,
+ 4454: 0xC22A,
+ 4455: 0xC22C,
+ 4456: 0xC22E,
+ 4457: 0xC230,
+ 4458: 0xC233,
+ 4459: 0xC235,
+ 4460: 0xC236,
+ 4461: 0xC237,
+ 4462: 0xC238,
+ 4463: 0xC239,
+ 4464: 0xC23A,
+ 4465: 0xC23B,
+ 4466: 0xC23C,
+ 4467: 0xC23D,
+ 4468: 0xC23E,
+ 4469: 0xC23F,
+ 4470: 0xC240,
+ 4471: 0xC241,
+ 4472: 0xC242,
+ 4473: 0xC243,
+ 4474: 0xC244,
+ 4475: 0xC245,
+ 4476: 0xC246,
+ 4477: 0xC247,
+ 4478: 0xC249,
+ 4479: 0xC24A,
+ 4480: 0xC24B,
+ 4481: 0xC24C,
+ 4482: 0xC24D,
+ 4483: 0xC24E,
+ 4484: 0xC24F,
+ 4485: 0xC252,
+ 4486: 0xC253,
+ 4487: 0xC255,
+ 4488: 0xC256,
+ 4489: 0xC257,
+ 4490: 0xC259,
+ 4491: 0xC25A,
+ 4492: 0xC25B,
+ 4493: 0xC25C,
+ 4494: 0xC25D,
+ 4495: 0xC25E,
+ 4496: 0xC25F,
+ 4497: 0xC261,
+ 4498: 0xC262,
+ 4499: 0xC263,
+ 4500: 0xC264,
+ 4501: 0xC266,
+ 4502: 0xC267,
+ 4503: 0xC268,
+ 4504: 0xC269,
+ 4505: 0xC26A,
+ 4506: 0xC26B,
+ 4507: 0xC26E,
+ 4508: 0xC26F,
+ 4509: 0xC271,
+ 4510: 0xC272,
+ 4511: 0xC273,
+ 4512: 0xC275,
+ 4513: 0xC276,
+ 4514: 0xC277,
+ 4515: 0xC278,
+ 4516: 0xC279,
+ 4517: 0xC27A,
+ 4518: 0xC27B,
+ 4519: 0xC27E,
+ 4520: 0xC280,
+ 4521: 0xC282,
+ 4522: 0xC283,
+ 4523: 0xC284,
+ 4524: 0xC285,
+ 4525: 0xC286,
+ 4526: 0xC287,
+ 4527: 0xC28A,
+ 4528: 0xC28B,
+ 4529: 0xC28C,
+ 4530: 0xC28D,
+ 4531: 0xC28E,
+ 4532: 0xC28F,
+ 4533: 0xC291,
+ 4534: 0xC292,
+ 4535: 0xC293,
+ 4536: 0xC294,
+ 4537: 0xC295,
+ 4538: 0xC296,
+ 4539: 0xC297,
+ 4540: 0xC299,
+ 4541: 0xC29A,
+ 4542: 0xC29C,
+ 4543: 0xC29E,
+ 4544: 0xC29F,
+ 4545: 0xC2A0,
+ 4546: 0xC2A1,
+ 4547: 0xC2A2,
+ 4548: 0xC2A3,
+ 4549: 0xC2A6,
+ 4550: 0xC2A7,
+ 4551: 0xC2A9,
+ 4552: 0xC2AA,
+ 4553: 0xC2AB,
+ 4554: 0xC2AE,
+ 4555: 0xC2AF,
+ 4556: 0xC2B0,
+ 4557: 0xC2B1,
+ 4558: 0xC2B2,
+ 4559: 0xC2B3,
+ 4560: 0xC2B6,
+ 4561: 0xC2B8,
+ 4562: 0xC2BA,
+ 4563: 0xC2BB,
+ 4564: 0xC2BC,
+ 4565: 0xC2BD,
+ 4566: 0xC2BE,
+ 4567: 0xC2BF,
+ 4568: 0xC2C0,
+ 4569: 0xC2C1,
+ 4570: 0xC2C2,
+ 4571: 0xC2C3,
+ 4572: 0xC2C4,
+ 4573: 0xC2C5,
+ 4574: 0xC2C6,
+ 4575: 0xC2C7,
+ 4576: 0xC2C8,
+ 4577: 0xC2C9,
+ 4578: 0xC2CA,
+ 4579: 0xC2CB,
+ 4580: 0xC2CC,
+ 4581: 0xC2CD,
+ 4582: 0xC2CE,
+ 4583: 0xC2CF,
+ 4584: 0xC2D0,
+ 4585: 0xC2D1,
+ 4586: 0xC2D2,
+ 4587: 0xC2D3,
+ 4588: 0xC2D4,
+ 4589: 0xC2D5,
+ 4590: 0xC2D6,
+ 4591: 0xC2D7,
+ 4592: 0xC2D8,
+ 4593: 0xC2D9,
+ 4594: 0xC2DA,
+ 4595: 0xC2DB,
+ 4596: 0xC2DE,
+ 4597: 0xC2DF,
+ 4598: 0xC2E1,
+ 4599: 0xC2E2,
+ 4600: 0xC2E5,
+ 4601: 0xC2E6,
+ 4602: 0xC2E7,
+ 4603: 0xC2E8,
+ 4604: 0xC2E9,
+ 4605: 0xC2EA,
+ 4606: 0xC2EE,
+ 4607: 0xC2F0,
+ 4608: 0xC2F2,
+ 4609: 0xC2F3,
+ 4610: 0xC2F4,
+ 4611: 0xC2F5,
+ 4612: 0xC2F7,
+ 4613: 0xC2FA,
+ 4614: 0xC2FD,
+ 4615: 0xC2FE,
+ 4616: 0xC2FF,
+ 4617: 0xC301,
+ 4618: 0xC302,
+ 4619: 0xC303,
+ 4620: 0xC304,
+ 4621: 0xC305,
+ 4622: 0xC306,
+ 4623: 0xC307,
+ 4624: 0xC30A,
+ 4625: 0xC30B,
+ 4626: 0xC30E,
+ 4627: 0xC30F,
+ 4628: 0xC310,
+ 4629: 0xC311,
+ 4630: 0xC312,
+ 4631: 0xC316,
+ 4632: 0xC317,
+ 4633: 0xC319,
+ 4634: 0xC31A,
+ 4635: 0xC31B,
+ 4636: 0xC31D,
+ 4637: 0xC31E,
+ 4638: 0xC31F,
+ 4639: 0xC320,
+ 4640: 0xC321,
+ 4641: 0xC322,
+ 4642: 0xC323,
+ 4643: 0xC326,
+ 4644: 0xC327,
+ 4645: 0xC32A,
+ 4646: 0xC32B,
+ 4647: 0xC32C,
+ 4648: 0xC32D,
+ 4649: 0xC32E,
+ 4650: 0xC32F,
+ 4651: 0xC330,
+ 4652: 0xC331,
+ 4653: 0xC332,
+ 4654: 0xC333,
+ 4655: 0xC334,
+ 4656: 0xC335,
+ 4657: 0xC336,
+ 4658: 0xC337,
+ 4659: 0xC338,
+ 4660: 0xC339,
+ 4661: 0xC33A,
+ 4662: 0xC33B,
+ 4663: 0xC33C,
+ 4664: 0xC33D,
+ 4665: 0xC33E,
+ 4666: 0xC33F,
+ 4667: 0xC340,
+ 4668: 0xC341,
+ 4669: 0xC342,
+ 4670: 0xC343,
+ 4671: 0xC344,
+ 4672: 0xC346,
+ 4673: 0xC347,
+ 4674: 0xC348,
+ 4675: 0xC349,
+ 4676: 0xC34A,
+ 4677: 0xC34B,
+ 4678: 0xC34C,
+ 4679: 0xC34D,
+ 4680: 0xC34E,
+ 4681: 0xC34F,
+ 4682: 0xC350,
+ 4683: 0xC351,
+ 4684: 0xC352,
+ 4685: 0xC353,
+ 4686: 0xC354,
+ 4687: 0xC355,
+ 4688: 0xC356,
+ 4689: 0xC357,
+ 4690: 0xC358,
+ 4691: 0xC359,
+ 4692: 0xC35A,
+ 4693: 0xC35B,
+ 4694: 0xC35C,
+ 4695: 0xC35D,
+ 4696: 0xC35E,
+ 4697: 0xC35F,
+ 4698: 0xC360,
+ 4699: 0xC361,
+ 4700: 0xC362,
+ 4701: 0xC363,
+ 4702: 0xC364,
+ 4703: 0xC365,
+ 4704: 0xC366,
+ 4705: 0xC367,
+ 4706: 0xC36A,
+ 4707: 0xC36B,
+ 4708: 0xC36D,
+ 4709: 0xC36E,
+ 4710: 0xC36F,
+ 4711: 0xC371,
+ 4712: 0xC373,
+ 4713: 0xC374,
+ 4714: 0xC375,
+ 4715: 0xC376,
+ 4716: 0xC377,
+ 4717: 0xC37A,
+ 4718: 0xC37B,
+ 4719: 0xC37E,
+ 4720: 0xC37F,
+ 4721: 0xC380,
+ 4722: 0xC381,
+ 4723: 0xC382,
+ 4724: 0xC383,
+ 4725: 0xC385,
+ 4726: 0xC386,
+ 4727: 0xC387,
+ 4728: 0xC389,
+ 4729: 0xC38A,
+ 4730: 0xC38B,
+ 4731: 0xC38D,
+ 4732: 0xC38E,
+ 4733: 0xC38F,
+ 4734: 0xC390,
+ 4735: 0xC391,
+ 4736: 0xC392,
+ 4737: 0xC393,
+ 4738: 0xC394,
+ 4739: 0xC395,
+ 4740: 0xC396,
+ 4741: 0xC397,
+ 4742: 0xC398,
+ 4743: 0xC399,
+ 4744: 0xC39A,
+ 4745: 0xC39B,
+ 4746: 0xC39C,
+ 4747: 0xC39D,
+ 4748: 0xC39E,
+ 4749: 0xC39F,
+ 4750: 0xC3A0,
+ 4751: 0xC3A1,
+ 4752: 0xC3A2,
+ 4753: 0xC3A3,
+ 4754: 0xC3A4,
+ 4755: 0xC3A5,
+ 4756: 0xC3A6,
+ 4757: 0xC3A7,
+ 4758: 0xC3A8,
+ 4759: 0xC3A9,
+ 4760: 0xC3AA,
+ 4761: 0xC3AB,
+ 4762: 0xC3AC,
+ 4763: 0xC3AD,
+ 4764: 0xC3AE,
+ 4765: 0xC3AF,
+ 4766: 0xC3B0,
+ 4767: 0xC3B1,
+ 4768: 0xC3B2,
+ 4769: 0xC3B3,
+ 4770: 0xC3B4,
+ 4771: 0xC3B5,
+ 4772: 0xC3B6,
+ 4773: 0xC3B7,
+ 4774: 0xC3B8,
+ 4775: 0xC3B9,
+ 4776: 0xC3BA,
+ 4777: 0xC3BB,
+ 4778: 0xC3BC,
+ 4779: 0xC3BD,
+ 4780: 0xC3BE,
+ 4781: 0xC3BF,
+ 4782: 0xC3C1,
+ 4783: 0xC3C2,
+ 4784: 0xC3C3,
+ 4785: 0xC3C4,
+ 4786: 0xC3C5,
+ 4787: 0xC3C6,
+ 4788: 0xC3C7,
+ 4789: 0xC3C8,
+ 4790: 0xC3C9,
+ 4791: 0xC3CA,
+ 4792: 0xC3CB,
+ 4793: 0xC3CC,
+ 4794: 0xC3CD,
+ 4795: 0xC3CE,
+ 4796: 0xC3CF,
+ 4797: 0xC3D0,
+ 4798: 0xC3D1,
+ 4799: 0xC3D2,
+ 4800: 0xC3D3,
+ 4801: 0xC3D4,
+ 4802: 0xC3D5,
+ 4803: 0xC3D6,
+ 4804: 0xC3D7,
+ 4805: 0xC3DA,
+ 4806: 0xC3DB,
+ 4807: 0xC3DD,
+ 4808: 0xC3DE,
+ 4809: 0xC3E1,
+ 4810: 0xC3E3,
+ 4811: 0xC3E4,
+ 4812: 0xC3E5,
+ 4813: 0xC3E6,
+ 4814: 0xC3E7,
+ 4815: 0xC3EA,
+ 4816: 0xC3EB,
+ 4817: 0xC3EC,
+ 4818: 0xC3EE,
+ 4819: 0xC3EF,
+ 4820: 0xC3F0,
+ 4821: 0xC3F1,
+ 4822: 0xC3F2,
+ 4823: 0xC3F3,
+ 4824: 0xC3F6,
+ 4825: 0xC3F7,
+ 4826: 0xC3F9,
+ 4827: 0xC3FA,
+ 4828: 0xC3FB,
+ 4829: 0xC3FC,
+ 4830: 0xC3FD,
+ 4831: 0xC3FE,
+ 4832: 0xC3FF,
+ 4833: 0xC400,
+ 4834: 0xC401,
+ 4835: 0xC402,
+ 4836: 0xC403,
+ 4837: 0xC404,
+ 4838: 0xC405,
+ 4839: 0xC406,
+ 4840: 0xC407,
+ 4841: 0xC409,
+ 4842: 0xC40A,
+ 4843: 0xC40B,
+ 4844: 0xC40C,
+ 4845: 0xC40D,
+ 4846: 0xC40E,
+ 4847: 0xC40F,
+ 4848: 0xC411,
+ 4849: 0xC412,
+ 4850: 0xC413,
+ 4851: 0xC414,
+ 4852: 0xC415,
+ 4853: 0xC416,
+ 4854: 0xC417,
+ 4855: 0xC418,
+ 4856: 0xC419,
+ 4857: 0xC41A,
+ 4858: 0xC41B,
+ 4859: 0xC41C,
+ 4860: 0xC41D,
+ 4861: 0xC41E,
+ 4862: 0xC41F,
+ 4863: 0xC420,
+ 4864: 0xC421,
+ 4865: 0xC422,
+ 4866: 0xC423,
+ 4867: 0xC425,
+ 4868: 0xC426,
+ 4869: 0xC427,
+ 4870: 0xC428,
+ 4871: 0xC429,
+ 4872: 0xC42A,
+ 4873: 0xC42B,
+ 4874: 0xC42D,
+ 4875: 0xC42E,
+ 4876: 0xC42F,
+ 4877: 0xC431,
+ 4878: 0xC432,
+ 4879: 0xC433,
+ 4880: 0xC435,
+ 4881: 0xC436,
+ 4882: 0xC437,
+ 4883: 0xC438,
+ 4884: 0xC439,
+ 4885: 0xC43A,
+ 4886: 0xC43B,
+ 4887: 0xC43E,
+ 4888: 0xC43F,
+ 4889: 0xC440,
+ 4890: 0xC441,
+ 4891: 0xC442,
+ 4892: 0xC443,
+ 4893: 0xC444,
+ 4894: 0xC445,
+ 4895: 0xC446,
+ 4896: 0xC447,
+ 4897: 0xC449,
+ 4898: 0xC44A,
+ 4899: 0xC44B,
+ 4900: 0xC44C,
+ 4901: 0xC44D,
+ 4902: 0xC44E,
+ 4903: 0xC44F,
+ 4904: 0xC450,
+ 4905: 0xC451,
+ 4906: 0xC452,
+ 4907: 0xC453,
+ 4908: 0xC454,
+ 4909: 0xC455,
+ 4910: 0xC456,
+ 4911: 0xC457,
+ 4912: 0xC458,
+ 4913: 0xC459,
+ 4914: 0xC45A,
+ 4915: 0xC45B,
+ 4916: 0xC45C,
+ 4917: 0xC45D,
+ 4918: 0xC45E,
+ 4919: 0xC45F,
+ 4920: 0xC460,
+ 4921: 0xC461,
+ 4922: 0xC462,
+ 4923: 0xC463,
+ 4924: 0xC466,
+ 4925: 0xC467,
+ 4926: 0xC469,
+ 4927: 0xC46A,
+ 4928: 0xC46B,
+ 4929: 0xC46D,
+ 4930: 0xC46E,
+ 4931: 0xC46F,
+ 4932: 0xC470,
+ 4933: 0xC471,
+ 4934: 0xC472,
+ 4935: 0xC473,
+ 4936: 0xC476,
+ 4937: 0xC477,
+ 4938: 0xC478,
+ 4939: 0xC47A,
+ 4940: 0xC47B,
+ 4941: 0xC47C,
+ 4942: 0xC47D,
+ 4943: 0xC47E,
+ 4944: 0xC47F,
+ 4945: 0xC481,
+ 4946: 0xC482,
+ 4947: 0xC483,
+ 4948: 0xC484,
+ 4949: 0xC485,
+ 4950: 0xC486,
+ 4951: 0xC487,
+ 4952: 0xC488,
+ 4953: 0xC489,
+ 4954: 0xC48A,
+ 4955: 0xC48B,
+ 4956: 0xC48C,
+ 4957: 0xC48D,
+ 4958: 0xC48E,
+ 4959: 0xC48F,
+ 4960: 0xC490,
+ 4961: 0xC491,
+ 4962: 0xC492,
+ 4963: 0xC493,
+ 4964: 0xC495,
+ 4965: 0xC496,
+ 4966: 0xC497,
+ 4967: 0xC498,
+ 4968: 0xC499,
+ 4969: 0xC49A,
+ 4970: 0xC49B,
+ 4971: 0xC49D,
+ 4972: 0xC49E,
+ 4973: 0xC49F,
+ 4974: 0xC4A0,
+ 4975: 0xC4A1,
+ 4976: 0xC4A2,
+ 4977: 0xC4A3,
+ 4978: 0xC4A4,
+ 4979: 0xC4A5,
+ 4980: 0xC4A6,
+ 4981: 0xC4A7,
+ 4982: 0xC4A8,
+ 4983: 0xC4A9,
+ 4984: 0xC4AA,
+ 4985: 0xC4AB,
+ 4986: 0xC4AC,
+ 4987: 0xC4AD,
+ 4988: 0xC4AE,
+ 4989: 0xC4AF,
+ 4990: 0xC4B0,
+ 4991: 0xC4B1,
+ 4992: 0xC4B2,
+ 4993: 0xC4B3,
+ 4994: 0xC4B4,
+ 4995: 0xC4B5,
+ 4996: 0xC4B6,
+ 4997: 0xC4B7,
+ 4998: 0xC4B9,
+ 4999: 0xC4BA,
+ 5000: 0xC4BB,
+ 5001: 0xC4BD,
+ 5002: 0xC4BE,
+ 5003: 0xC4BF,
+ 5004: 0xC4C0,
+ 5005: 0xC4C1,
+ 5006: 0xC4C2,
+ 5007: 0xC4C3,
+ 5008: 0xC4C4,
+ 5009: 0xC4C5,
+ 5010: 0xC4C6,
+ 5011: 0xC4C7,
+ 5012: 0xC4C8,
+ 5013: 0xC4C9,
+ 5014: 0xC4CA,
+ 5015: 0xC4CB,
+ 5016: 0xC4CC,
+ 5017: 0xC4CD,
+ 5018: 0xC4CE,
+ 5019: 0xC4CF,
+ 5020: 0xC4D0,
+ 5021: 0xC4D1,
+ 5022: 0xC4D2,
+ 5023: 0xC4D3,
+ 5024: 0xC4D4,
+ 5025: 0xC4D5,
+ 5026: 0xC4D6,
+ 5027: 0xC4D7,
+ 5028: 0xC4D8,
+ 5029: 0xC4D9,
+ 5030: 0xC4DA,
+ 5031: 0xC4DB,
+ 5032: 0xC4DC,
+ 5033: 0xC4DD,
+ 5034: 0xC4DE,
+ 5035: 0xC4DF,
+ 5036: 0xC4E0,
+ 5037: 0xC4E1,
+ 5038: 0xC4E2,
+ 5039: 0xC4E3,
+ 5040: 0xC4E4,
+ 5041: 0xC4E5,
+ 5042: 0xC4E6,
+ 5043: 0xC4E7,
+ 5044: 0xC4E8,
+ 5045: 0xC4EA,
+ 5046: 0xC4EB,
+ 5047: 0xC4EC,
+ 5048: 0xC4ED,
+ 5049: 0xC4EE,
+ 5050: 0xC4EF,
+ 5051: 0xC4F2,
+ 5052: 0xC4F3,
+ 5053: 0xC4F5,
+ 5054: 0xC4F6,
+ 5055: 0xC4F7,
+ 5056: 0xC4F9,
+ 5057: 0xC4FB,
+ 5058: 0xC4FC,
+ 5059: 0xC4FD,
+ 5060: 0xC4FE,
+ 5061: 0xC502,
+ 5062: 0xC503,
+ 5063: 0xC504,
+ 5064: 0xC505,
+ 5065: 0xC506,
+ 5066: 0xC507,
+ 5067: 0xC508,
+ 5068: 0xC509,
+ 5069: 0xC50A,
+ 5070: 0xC50B,
+ 5071: 0xC50D,
+ 5072: 0xC50E,
+ 5073: 0xC50F,
+ 5074: 0xC511,
+ 5075: 0xC512,
+ 5076: 0xC513,
+ 5077: 0xC515,
+ 5078: 0xC516,
+ 5079: 0xC517,
+ 5080: 0xC518,
+ 5081: 0xC519,
+ 5082: 0xC51A,
+ 5083: 0xC51B,
+ 5084: 0xC51D,
+ 5085: 0xC51E,
+ 5086: 0xC51F,
+ 5087: 0xC520,
+ 5088: 0xC521,
+ 5089: 0xC522,
+ 5090: 0xC523,
+ 5091: 0xC524,
+ 5092: 0xC525,
+ 5093: 0xC526,
+ 5094: 0xC527,
+ 5095: 0xC52A,
+ 5096: 0xC52B,
+ 5097: 0xC52D,
+ 5098: 0xC52E,
+ 5099: 0xC52F,
+ 5100: 0xC531,
+ 5101: 0xC532,
+ 5102: 0xC533,
+ 5103: 0xC534,
+ 5104: 0xC535,
+ 5105: 0xC536,
+ 5106: 0xC537,
+ 5107: 0xC53A,
+ 5108: 0xC53C,
+ 5109: 0xC53E,
+ 5110: 0xC53F,
+ 5111: 0xC540,
+ 5112: 0xC541,
+ 5113: 0xC542,
+ 5114: 0xC543,
+ 5115: 0xC546,
+ 5116: 0xC547,
+ 5117: 0xC54B,
+ 5118: 0xC54F,
+ 5119: 0xC550,
+ 5120: 0xC551,
+ 5121: 0xC552,
+ 5122: 0xC556,
+ 5123: 0xC55A,
+ 5124: 0xC55B,
+ 5125: 0xC55C,
+ 5126: 0xC55F,
+ 5127: 0xC562,
+ 5128: 0xC563,
+ 5129: 0xC565,
+ 5130: 0xC566,
+ 5131: 0xC567,
+ 5132: 0xC569,
+ 5133: 0xC56A,
+ 5134: 0xC56B,
+ 5135: 0xC56C,
+ 5136: 0xC56D,
+ 5137: 0xC56E,
+ 5138: 0xC56F,
+ 5139: 0xC572,
+ 5140: 0xC576,
+ 5141: 0xC577,
+ 5142: 0xC578,
+ 5143: 0xC579,
+ 5144: 0xC57A,
+ 5145: 0xC57B,
+ 5146: 0xC57E,
+ 5147: 0xC57F,
+ 5148: 0xC581,
+ 5149: 0xC582,
+ 5150: 0xC583,
+ 5151: 0xC585,
+ 5152: 0xC586,
+ 5153: 0xC588,
+ 5154: 0xC589,
+ 5155: 0xC58A,
+ 5156: 0xC58B,
+ 5157: 0xC58E,
+ 5158: 0xC590,
+ 5159: 0xC592,
+ 5160: 0xC593,
+ 5161: 0xC594,
+ 5162: 0xC596,
+ 5163: 0xC599,
+ 5164: 0xC59A,
+ 5165: 0xC59B,
+ 5166: 0xC59D,
+ 5167: 0xC59E,
+ 5168: 0xC59F,
+ 5169: 0xC5A1,
+ 5170: 0xC5A2,
+ 5171: 0xC5A3,
+ 5172: 0xC5A4,
+ 5173: 0xC5A5,
+ 5174: 0xC5A6,
+ 5175: 0xC5A7,
+ 5176: 0xC5A8,
+ 5177: 0xC5AA,
+ 5178: 0xC5AB,
+ 5179: 0xC5AC,
+ 5180: 0xC5AD,
+ 5181: 0xC5AE,
+ 5182: 0xC5AF,
+ 5183: 0xC5B0,
+ 5184: 0xC5B1,
+ 5185: 0xC5B2,
+ 5186: 0xC5B3,
+ 5187: 0xC5B6,
+ 5188: 0xC5B7,
+ 5189: 0xC5BA,
+ 5190: 0xC5BF,
+ 5191: 0xC5C0,
+ 5192: 0xC5C1,
+ 5193: 0xC5C2,
+ 5194: 0xC5C3,
+ 5195: 0xC5CB,
+ 5196: 0xC5CD,
+ 5197: 0xC5CF,
+ 5198: 0xC5D2,
+ 5199: 0xC5D3,
+ 5200: 0xC5D5,
+ 5201: 0xC5D6,
+ 5202: 0xC5D7,
+ 5203: 0xC5D9,
+ 5204: 0xC5DA,
+ 5205: 0xC5DB,
+ 5206: 0xC5DC,
+ 5207: 0xC5DD,
+ 5208: 0xC5DE,
+ 5209: 0xC5DF,
+ 5210: 0xC5E2,
+ 5211: 0xC5E4,
+ 5212: 0xC5E6,
+ 5213: 0xC5E7,
+ 5214: 0xC5E8,
+ 5215: 0xC5E9,
+ 5216: 0xC5EA,
+ 5217: 0xC5EB,
+ 5218: 0xC5EF,
+ 5219: 0xC5F1,
+ 5220: 0xC5F2,
+ 5221: 0xC5F3,
+ 5222: 0xC5F5,
+ 5223: 0xC5F8,
+ 5224: 0xC5F9,
+ 5225: 0xC5FA,
+ 5226: 0xC5FB,
+ 5227: 0xC602,
+ 5228: 0xC603,
+ 5229: 0xC604,
+ 5230: 0xC609,
+ 5231: 0xC60A,
+ 5232: 0xC60B,
+ 5233: 0xC60D,
+ 5234: 0xC60E,
+ 5235: 0xC60F,
+ 5236: 0xC611,
+ 5237: 0xC612,
+ 5238: 0xC613,
+ 5239: 0xC614,
+ 5240: 0xC615,
+ 5241: 0xC616,
+ 5242: 0xC617,
+ 5243: 0xC61A,
+ 5244: 0xC61D,
+ 5245: 0xC61E,
+ 5246: 0xC61F,
+ 5247: 0xC620,
+ 5248: 0xC621,
+ 5249: 0xC622,
+ 5250: 0xC623,
+ 5251: 0xC626,
+ 5252: 0xC627,
+ 5253: 0xC629,
+ 5254: 0xC62A,
+ 5255: 0xC62B,
+ 5256: 0xC62F,
+ 5257: 0xC631,
+ 5258: 0xC632,
+ 5259: 0xC636,
+ 5260: 0xC638,
+ 5261: 0xC63A,
+ 5262: 0xC63C,
+ 5263: 0xC63D,
+ 5264: 0xC63E,
+ 5265: 0xC63F,
+ 5266: 0xC642,
+ 5267: 0xC643,
+ 5268: 0xC645,
+ 5269: 0xC646,
+ 5270: 0xC647,
+ 5271: 0xC649,
+ 5272: 0xC64A,
+ 5273: 0xC64B,
+ 5274: 0xC64C,
+ 5275: 0xC64D,
+ 5276: 0xC64E,
+ 5277: 0xC64F,
+ 5278: 0xC652,
+ 5279: 0xC656,
+ 5280: 0xC657,
+ 5281: 0xC658,
+ 5282: 0xC659,
+ 5283: 0xC65A,
+ 5284: 0xC65B,
+ 5285: 0xC65E,
+ 5286: 0xC65F,
+ 5287: 0xC661,
+ 5288: 0xC662,
+ 5289: 0xC663,
+ 5290: 0xC664,
+ 5291: 0xC665,
+ 5292: 0xC666,
+ 5293: 0xC667,
+ 5294: 0xC668,
+ 5295: 0xC669,
+ 5296: 0xC66A,
+ 5297: 0xC66B,
+ 5298: 0xC66D,
+ 5299: 0xC66E,
+ 5300: 0xC670,
+ 5301: 0xC672,
+ 5302: 0xC673,
+ 5303: 0xC674,
+ 5304: 0xC675,
+ 5305: 0xC676,
+ 5306: 0xC677,
+ 5307: 0xC67A,
+ 5308: 0xC67B,
+ 5309: 0xC67D,
+ 5310: 0xC67E,
+ 5311: 0xC67F,
+ 5312: 0xC681,
+ 5313: 0xC682,
+ 5314: 0xC683,
+ 5315: 0xC684,
+ 5316: 0xC685,
+ 5317: 0xC686,
+ 5318: 0xC687,
+ 5319: 0xC68A,
+ 5320: 0xC68C,
+ 5321: 0xC68E,
+ 5322: 0xC68F,
+ 5323: 0xC690,
+ 5324: 0xC691,
+ 5325: 0xC692,
+ 5326: 0xC693,
+ 5327: 0xC696,
+ 5328: 0xC697,
+ 5329: 0xC699,
+ 5330: 0xC69A,
+ 5331: 0xC69B,
+ 5332: 0xC69D,
+ 5333: 0xC69E,
+ 5334: 0xC69F,
+ 5335: 0xC6A0,
+ 5336: 0xC6A1,
+ 5337: 0xC6A2,
+ 5338: 0xC6A3,
+ 5339: 0xC6A6,
+ 5340: 0xC6A8,
+ 5341: 0xC6AA,
+ 5342: 0xC6AB,
+ 5343: 0xC6AC,
+ 5344: 0xC6AD,
+ 5345: 0xC6AE,
+ 5346: 0xC6AF,
+ 5347: 0xC6B2,
+ 5348: 0xC6B3,
+ 5349: 0xC6B5,
+ 5350: 0xC6B6,
+ 5351: 0xC6B7,
+ 5352: 0xC6BB,
+ 5353: 0xC6BC,
+ 5354: 0xC6BD,
+ 5355: 0xC6BE,
+ 5356: 0xC6BF,
+ 5357: 0xC6C2,
+ 5358: 0xC6C4,
+ 5359: 0xC6C6,
+ 5360: 0xC6C7,
+ 5361: 0xC6C8,
+ 5362: 0xC6C9,
+ 5363: 0xC6CA,
+ 5364: 0xC6CB,
+ 5365: 0xC6CE,
+ 5366: 0xC6CF,
+ 5367: 0xC6D1,
+ 5368: 0xC6D2,
+ 5369: 0xC6D3,
+ 5370: 0xC6D5,
+ 5371: 0xC6D6,
+ 5372: 0xC6D7,
+ 5373: 0xC6D8,
+ 5374: 0xC6D9,
+ 5375: 0xC6DA,
+ 5376: 0xC6DB,
+ 5377: 0xC6DE,
+ 5378: 0xC6DF,
+ 5379: 0xC6E2,
+ 5380: 0xC6E3,
+ 5381: 0xC6E4,
+ 5382: 0xC6E5,
+ 5383: 0xC6E6,
+ 5384: 0xC6E7,
+ 5385: 0xC6EA,
+ 5386: 0xC6EB,
+ 5387: 0xC6ED,
+ 5388: 0xC6EE,
+ 5389: 0xC6EF,
+ 5390: 0xC6F1,
+ 5391: 0xC6F2,
+ 5392: 0xC6F3,
+ 5393: 0xC6F4,
+ 5394: 0xC6F5,
+ 5395: 0xC6F6,
+ 5396: 0xC6F7,
+ 5397: 0xC6FA,
+ 5398: 0xC6FB,
+ 5399: 0xC6FC,
+ 5400: 0xC6FE,
+ 5401: 0xC6FF,
+ 5402: 0xC700,
+ 5403: 0xC701,
+ 5404: 0xC702,
+ 5405: 0xC703,
+ 5406: 0xC706,
+ 5407: 0xC707,
+ 5408: 0xC709,
+ 5409: 0xC70A,
+ 5410: 0xC70B,
+ 5411: 0xC70D,
+ 5412: 0xC70E,
+ 5413: 0xC70F,
+ 5414: 0xC710,
+ 5415: 0xC711,
+ 5416: 0xC712,
+ 5417: 0xC713,
+ 5418: 0xC716,
+ 5419: 0xC718,
+ 5420: 0xC71A,
+ 5421: 0xC71B,
+ 5422: 0xC71C,
+ 5423: 0xC71D,
+ 5424: 0xC71E,
+ 5425: 0xC71F,
+ 5426: 0xC722,
+ 5427: 0xC723,
+ 5428: 0xC725,
+ 5429: 0xC726,
+ 5430: 0xC727,
+ 5431: 0xC729,
+ 5432: 0xC72A,
+ 5433: 0xC72B,
+ 5434: 0xC72C,
+ 5435: 0xC72D,
+ 5436: 0xC72E,
+ 5437: 0xC72F,
+ 5438: 0xC732,
+ 5439: 0xC734,
+ 5440: 0xC736,
+ 5441: 0xC738,
+ 5442: 0xC739,
+ 5443: 0xC73A,
+ 5444: 0xC73B,
+ 5445: 0xC73E,
+ 5446: 0xC73F,
+ 5447: 0xC741,
+ 5448: 0xC742,
+ 5449: 0xC743,
+ 5450: 0xC745,
+ 5451: 0xC746,
+ 5452: 0xC747,
+ 5453: 0xC748,
+ 5454: 0xC749,
+ 5455: 0xC74B,
+ 5456: 0xC74E,
+ 5457: 0xC750,
+ 5458: 0xC759,
+ 5459: 0xC75A,
+ 5460: 0xC75B,
+ 5461: 0xC75D,
+ 5462: 0xC75E,
+ 5463: 0xC75F,
+ 5464: 0xC761,
+ 5465: 0xC762,
+ 5466: 0xC763,
+ 5467: 0xC764,
+ 5468: 0xC765,
+ 5469: 0xC766,
+ 5470: 0xC767,
+ 5471: 0xC769,
+ 5472: 0xC76A,
+ 5473: 0xC76C,
+ 5474: 0xC76D,
+ 5475: 0xC76E,
+ 5476: 0xC76F,
+ 5477: 0xC770,
+ 5478: 0xC771,
+ 5479: 0xC772,
+ 5480: 0xC773,
+ 5481: 0xC776,
+ 5482: 0xC777,
+ 5483: 0xC779,
+ 5484: 0xC77A,
+ 5485: 0xC77B,
+ 5486: 0xC77F,
+ 5487: 0xC780,
+ 5488: 0xC781,
+ 5489: 0xC782,
+ 5490: 0xC786,
+ 5491: 0xC78B,
+ 5492: 0xC78C,
+ 5493: 0xC78D,
+ 5494: 0xC78F,
+ 5495: 0xC792,
+ 5496: 0xC793,
+ 5497: 0xC795,
+ 5498: 0xC799,
+ 5499: 0xC79B,
+ 5500: 0xC79C,
+ 5501: 0xC79D,
+ 5502: 0xC79E,
+ 5503: 0xC79F,
+ 5504: 0xC7A2,
+ 5505: 0xC7A7,
+ 5506: 0xC7A8,
+ 5507: 0xC7A9,
+ 5508: 0xC7AA,
+ 5509: 0xC7AB,
+ 5510: 0xC7AE,
+ 5511: 0xC7AF,
+ 5512: 0xC7B1,
+ 5513: 0xC7B2,
+ 5514: 0xC7B3,
+ 5515: 0xC7B5,
+ 5516: 0xC7B6,
+ 5517: 0xC7B7,
+ 5518: 0xC7B8,
+ 5519: 0xC7B9,
+ 5520: 0xC7BA,
+ 5521: 0xC7BB,
+ 5522: 0xC7BE,
+ 5523: 0xC7C2,
+ 5524: 0xC7C3,
+ 5525: 0xC7C4,
+ 5526: 0xC7C5,
+ 5527: 0xC7C6,
+ 5528: 0xC7C7,
+ 5529: 0xC7CA,
+ 5530: 0xC7CB,
+ 5531: 0xC7CD,
+ 5532: 0xC7CF,
+ 5533: 0xC7D1,
+ 5534: 0xC7D2,
+ 5535: 0xC7D3,
+ 5536: 0xC7D4,
+ 5537: 0xC7D5,
+ 5538: 0xC7D6,
+ 5539: 0xC7D7,
+ 5540: 0xC7D9,
+ 5541: 0xC7DA,
+ 5542: 0xC7DB,
+ 5543: 0xC7DC,
+ 5544: 0xC7DE,
+ 5545: 0xC7DF,
+ 5546: 0xC7E0,
+ 5547: 0xC7E1,
+ 5548: 0xC7E2,
+ 5549: 0xC7E3,
+ 5550: 0xC7E5,
+ 5551: 0xC7E6,
+ 5552: 0xC7E7,
+ 5553: 0xC7E9,
+ 5554: 0xC7EA,
+ 5555: 0xC7EB,
+ 5556: 0xC7ED,
+ 5557: 0xC7EE,
+ 5558: 0xC7EF,
+ 5559: 0xC7F0,
+ 5560: 0xC7F1,
+ 5561: 0xC7F2,
+ 5562: 0xC7F3,
+ 5563: 0xC7F4,
+ 5564: 0xC7F5,
+ 5565: 0xC7F6,
+ 5566: 0xC7F7,
+ 5567: 0xC7F8,
+ 5568: 0xC7F9,
+ 5569: 0xC7FA,
+ 5570: 0xC7FB,
+ 5571: 0xC7FC,
+ 5572: 0xC7FD,
+ 5573: 0xC7FE,
+ 5574: 0xC7FF,
+ 5575: 0xC802,
+ 5576: 0xC803,
+ 5577: 0xC805,
+ 5578: 0xC806,
+ 5579: 0xC807,
+ 5580: 0xC809,
+ 5581: 0xC80B,
+ 5582: 0xC80C,
+ 5583: 0xC80D,
+ 5584: 0xC80E,
+ 5585: 0xC80F,
+ 5586: 0xC812,
+ 5587: 0xC814,
+ 5588: 0xC817,
+ 5589: 0xC818,
+ 5590: 0xC819,
+ 5591: 0xC81A,
+ 5592: 0xC81B,
+ 5593: 0xC81E,
+ 5594: 0xC81F,
+ 5595: 0xC821,
+ 5596: 0xC822,
+ 5597: 0xC823,
+ 5598: 0xC825,
+ 5599: 0xC826,
+ 5600: 0xC827,
+ 5601: 0xC828,
+ 5602: 0xC829,
+ 5603: 0xC82A,
+ 5604: 0xC82B,
+ 5605: 0xC82E,
+ 5606: 0xC830,
+ 5607: 0xC832,
+ 5608: 0xC833,
+ 5609: 0xC834,
+ 5610: 0xC835,
+ 5611: 0xC836,
+ 5612: 0xC837,
+ 5613: 0xC839,
+ 5614: 0xC83A,
+ 5615: 0xC83B,
+ 5616: 0xC83D,
+ 5617: 0xC83E,
+ 5618: 0xC83F,
+ 5619: 0xC841,
+ 5620: 0xC842,
+ 5621: 0xC843,
+ 5622: 0xC844,
+ 5623: 0xC845,
+ 5624: 0xC846,
+ 5625: 0xC847,
+ 5626: 0xC84A,
+ 5627: 0xC84B,
+ 5628: 0xC84E,
+ 5629: 0xC84F,
+ 5630: 0xC850,
+ 5631: 0xC851,
+ 5632: 0xC852,
+ 5633: 0xC853,
+ 5634: 0xC855,
+ 5635: 0xC856,
+ 5636: 0xC857,
+ 5637: 0xC858,
+ 5638: 0xC859,
+ 5639: 0xC85A,
+ 5640: 0xC85B,
+ 5641: 0xC85C,
+ 5642: 0xC85D,
+ 5643: 0xC85E,
+ 5644: 0xC85F,
+ 5645: 0xC860,
+ 5646: 0xC861,
+ 5647: 0xC862,
+ 5648: 0xC863,
+ 5649: 0xC864,
+ 5650: 0xC865,
+ 5651: 0xC866,
+ 5652: 0xC867,
+ 5653: 0xC868,
+ 5654: 0xC869,
+ 5655: 0xC86A,
+ 5656: 0xC86B,
+ 5657: 0xC86C,
+ 5658: 0xC86D,
+ 5659: 0xC86E,
+ 5660: 0xC86F,
+ 5661: 0xC872,
+ 5662: 0xC873,
+ 5663: 0xC875,
+ 5664: 0xC876,
+ 5665: 0xC877,
+ 5666: 0xC879,
+ 5667: 0xC87B,
+ 5668: 0xC87C,
+ 5669: 0xC87D,
+ 5670: 0xC87E,
+ 5671: 0xC87F,
+ 5672: 0xC882,
+ 5673: 0xC884,
+ 5674: 0xC888,
+ 5675: 0xC889,
+ 5676: 0xC88A,
+ 5677: 0xC88E,
+ 5678: 0xC88F,
+ 5679: 0xC890,
+ 5680: 0xC891,
+ 5681: 0xC892,
+ 5682: 0xC893,
+ 5683: 0xC895,
+ 5684: 0xC896,
+ 5685: 0xC897,
+ 5686: 0xC898,
+ 5687: 0xC899,
+ 5688: 0xC89A,
+ 5689: 0xC89B,
+ 5690: 0xC89C,
+ 5691: 0xC89E,
+ 5692: 0xC8A0,
+ 5693: 0xC8A2,
+ 5694: 0xC8A3,
+ 5695: 0xC8A4,
+ 5696: 0xC8A5,
+ 5697: 0xC8A6,
+ 5698: 0xC8A7,
+ 5699: 0xC8A9,
+ 5700: 0xC8AA,
+ 5701: 0xC8AB,
+ 5702: 0xC8AC,
+ 5703: 0xC8AD,
+ 5704: 0xC8AE,
+ 5705: 0xC8AF,
+ 5706: 0xC8B0,
+ 5707: 0xC8B1,
+ 5708: 0xC8B2,
+ 5709: 0xC8B3,
+ 5710: 0xC8B4,
+ 5711: 0xC8B5,
+ 5712: 0xC8B6,
+ 5713: 0xC8B7,
+ 5714: 0xC8B8,
+ 5715: 0xC8B9,
+ 5716: 0xC8BA,
+ 5717: 0xC8BB,
+ 5718: 0xC8BE,
+ 5719: 0xC8BF,
+ 5720: 0xC8C0,
+ 5721: 0xC8C1,
+ 5722: 0xC8C2,
+ 5723: 0xC8C3,
+ 5724: 0xC8C5,
+ 5725: 0xC8C6,
+ 5726: 0xC8C7,
+ 5727: 0xC8C9,
+ 5728: 0xC8CA,
+ 5729: 0xC8CB,
+ 5730: 0xC8CD,
+ 5731: 0xC8CE,
+ 5732: 0xC8CF,
+ 5733: 0xC8D0,
+ 5734: 0xC8D1,
+ 5735: 0xC8D2,
+ 5736: 0xC8D3,
+ 5737: 0xC8D6,
+ 5738: 0xC8D8,
+ 5739: 0xC8DA,
+ 5740: 0xC8DB,
+ 5741: 0xC8DC,
+ 5742: 0xC8DD,
+ 5743: 0xC8DE,
+ 5744: 0xC8DF,
+ 5745: 0xC8E2,
+ 5746: 0xC8E3,
+ 5747: 0xC8E5,
+ 5748: 0xC8E6,
+ 5749: 0xC8E7,
+ 5750: 0xC8E8,
+ 5751: 0xC8E9,
+ 5752: 0xC8EA,
+ 5753: 0xC8EB,
+ 5754: 0xC8EC,
+ 5755: 0xC8ED,
+ 5756: 0xC8EE,
+ 5757: 0xC8EF,
+ 5758: 0xC8F0,
+ 5759: 0xC8F1,
+ 5760: 0xC8F2,
+ 5761: 0xC8F3,
+ 5762: 0xC8F4,
+ 5763: 0xC8F6,
+ 5764: 0xC8F7,
+ 5765: 0xC8F8,
+ 5766: 0xC8F9,
+ 5767: 0xC8FA,
+ 5768: 0xC8FB,
+ 5769: 0xC8FE,
+ 5770: 0xC8FF,
+ 5771: 0xC901,
+ 5772: 0xC902,
+ 5773: 0xC903,
+ 5774: 0xC907,
+ 5775: 0xC908,
+ 5776: 0xC909,
+ 5777: 0xC90A,
+ 5778: 0xC90B,
+ 5779: 0xC90E,
+ 5780: 0x3000,
+ 5781: 0x3001,
+ 5782: 0x3002,
+ 5783: 0x00B7,
+ 5784: 0x2025,
+ 5785: 0x2026,
+ 5786: 0x00A8,
+ 5787: 0x3003,
+ 5788: 0x00AD,
+ 5789: 0x2015,
+ 5790: 0x2225,
+ 5791: 0xFF3C,
+ 5792: 0x223C,
+ 5793: 0x2018,
+ 5794: 0x2019,
+ 5795: 0x201C,
+ 5796: 0x201D,
+ 5797: 0x3014,
+ 5798: 0x3015,
+ 5799: 0x3008,
+ 5800: 0x3009,
+ 5801: 0x300A,
+ 5802: 0x300B,
+ 5803: 0x300C,
+ 5804: 0x300D,
+ 5805: 0x300E,
+ 5806: 0x300F,
+ 5807: 0x3010,
+ 5808: 0x3011,
+ 5809: 0x00B1,
+ 5810: 0x00D7,
+ 5811: 0x00F7,
+ 5812: 0x2260,
+ 5813: 0x2264,
+ 5814: 0x2265,
+ 5815: 0x221E,
+ 5816: 0x2234,
+ 5817: 0x00B0,
+ 5818: 0x2032,
+ 5819: 0x2033,
+ 5820: 0x2103,
+ 5821: 0x212B,
+ 5822: 0xFFE0,
+ 5823: 0xFFE1,
+ 5824: 0xFFE5,
+ 5825: 0x2642,
+ 5826: 0x2640,
+ 5827: 0x2220,
+ 5828: 0x22A5,
+ 5829: 0x2312,
+ 5830: 0x2202,
+ 5831: 0x2207,
+ 5832: 0x2261,
+ 5833: 0x2252,
+ 5834: 0x00A7,
+ 5835: 0x203B,
+ 5836: 0x2606,
+ 5837: 0x2605,
+ 5838: 0x25CB,
+ 5839: 0x25CF,
+ 5840: 0x25CE,
+ 5841: 0x25C7,
+ 5842: 0x25C6,
+ 5843: 0x25A1,
+ 5844: 0x25A0,
+ 5845: 0x25B3,
+ 5846: 0x25B2,
+ 5847: 0x25BD,
+ 5848: 0x25BC,
+ 5849: 0x2192,
+ 5850: 0x2190,
+ 5851: 0x2191,
+ 5852: 0x2193,
+ 5853: 0x2194,
+ 5854: 0x3013,
+ 5855: 0x226A,
+ 5856: 0x226B,
+ 5857: 0x221A,
+ 5858: 0x223D,
+ 5859: 0x221D,
+ 5860: 0x2235,
+ 5861: 0x222B,
+ 5862: 0x222C,
+ 5863: 0x2208,
+ 5864: 0x220B,
+ 5865: 0x2286,
+ 5866: 0x2287,
+ 5867: 0x2282,
+ 5868: 0x2283,
+ 5869: 0x222A,
+ 5870: 0x2229,
+ 5871: 0x2227,
+ 5872: 0x2228,
+ 5873: 0xFFE2,
+ 5874: 0xC910,
+ 5875: 0xC912,
+ 5876: 0xC913,
+ 5877: 0xC914,
+ 5878: 0xC915,
+ 5879: 0xC916,
+ 5880: 0xC917,
+ 5881: 0xC919,
+ 5882: 0xC91A,
+ 5883: 0xC91B,
+ 5884: 0xC91C,
+ 5885: 0xC91D,
+ 5886: 0xC91E,
+ 5887: 0xC91F,
+ 5888: 0xC920,
+ 5889: 0xC921,
+ 5890: 0xC922,
+ 5891: 0xC923,
+ 5892: 0xC924,
+ 5893: 0xC925,
+ 5894: 0xC926,
+ 5895: 0xC927,
+ 5896: 0xC928,
+ 5897: 0xC929,
+ 5898: 0xC92A,
+ 5899: 0xC92B,
+ 5900: 0xC92D,
+ 5901: 0xC92E,
+ 5902: 0xC92F,
+ 5903: 0xC930,
+ 5904: 0xC931,
+ 5905: 0xC932,
+ 5906: 0xC933,
+ 5907: 0xC935,
+ 5908: 0xC936,
+ 5909: 0xC937,
+ 5910: 0xC938,
+ 5911: 0xC939,
+ 5912: 0xC93A,
+ 5913: 0xC93B,
+ 5914: 0xC93C,
+ 5915: 0xC93D,
+ 5916: 0xC93E,
+ 5917: 0xC93F,
+ 5918: 0xC940,
+ 5919: 0xC941,
+ 5920: 0xC942,
+ 5921: 0xC943,
+ 5922: 0xC944,
+ 5923: 0xC945,
+ 5924: 0xC946,
+ 5925: 0xC947,
+ 5926: 0xC948,
+ 5927: 0xC949,
+ 5928: 0xC94A,
+ 5929: 0xC94B,
+ 5930: 0xC94C,
+ 5931: 0xC94D,
+ 5932: 0xC94E,
+ 5933: 0xC94F,
+ 5934: 0xC952,
+ 5935: 0xC953,
+ 5936: 0xC955,
+ 5937: 0xC956,
+ 5938: 0xC957,
+ 5939: 0xC959,
+ 5940: 0xC95A,
+ 5941: 0xC95B,
+ 5942: 0xC95C,
+ 5943: 0xC95D,
+ 5944: 0xC95E,
+ 5945: 0xC95F,
+ 5946: 0xC962,
+ 5947: 0xC964,
+ 5948: 0xC965,
+ 5949: 0xC966,
+ 5950: 0xC967,
+ 5951: 0xC968,
+ 5952: 0xC969,
+ 5953: 0xC96A,
+ 5954: 0xC96B,
+ 5955: 0xC96D,
+ 5956: 0xC96E,
+ 5957: 0xC96F,
+ 5958: 0x21D2,
+ 5959: 0x21D4,
+ 5960: 0x2200,
+ 5961: 0x2203,
+ 5962: 0x00B4,
+ 5963: 0xFF5E,
+ 5964: 0x02C7,
+ 5965: 0x02D8,
+ 5966: 0x02DD,
+ 5967: 0x02DA,
+ 5968: 0x02D9,
+ 5969: 0x00B8,
+ 5970: 0x02DB,
+ 5971: 0x00A1,
+ 5972: 0x00BF,
+ 5973: 0x02D0,
+ 5974: 0x222E,
+ 5975: 0x2211,
+ 5976: 0x220F,
+ 5977: 0x00A4,
+ 5978: 0x2109,
+ 5979: 0x2030,
+ 5980: 0x25C1,
+ 5981: 0x25C0,
+ 5982: 0x25B7,
+ 5983: 0x25B6,
+ 5984: 0x2664,
+ 5985: 0x2660,
+ 5986: 0x2661,
+ 5987: 0x2665,
+ 5988: 0x2667,
+ 5989: 0x2663,
+ 5990: 0x2299,
+ 5991: 0x25C8,
+ 5992: 0x25A3,
+ 5993: 0x25D0,
+ 5994: 0x25D1,
+ 5995: 0x2592,
+ 5996: 0x25A4,
+ 5997: 0x25A5,
+ 5998: 0x25A8,
+ 5999: 0x25A7,
+ 6000: 0x25A6,
+ 6001: 0x25A9,
+ 6002: 0x2668,
+ 6003: 0x260F,
+ 6004: 0x260E,
+ 6005: 0x261C,
+ 6006: 0x261E,
+ 6007: 0x00B6,
+ 6008: 0x2020,
+ 6009: 0x2021,
+ 6010: 0x2195,
+ 6011: 0x2197,
+ 6012: 0x2199,
+ 6013: 0x2196,
+ 6014: 0x2198,
+ 6015: 0x266D,
+ 6016: 0x2669,
+ 6017: 0x266A,
+ 6018: 0x266C,
+ 6019: 0x327F,
+ 6020: 0x321C,
+ 6021: 0x2116,
+ 6022: 0x33C7,
+ 6023: 0x2122,
+ 6024: 0x33C2,
+ 6025: 0x33D8,
+ 6026: 0x2121,
+ 6027: 0x20AC,
+ 6028: 0x00AE,
+ 6052: 0xC971,
+ 6053: 0xC972,
+ 6054: 0xC973,
+ 6055: 0xC975,
+ 6056: 0xC976,
+ 6057: 0xC977,
+ 6058: 0xC978,
+ 6059: 0xC979,
+ 6060: 0xC97A,
+ 6061: 0xC97B,
+ 6062: 0xC97D,
+ 6063: 0xC97E,
+ 6064: 0xC97F,
+ 6065: 0xC980,
+ 6066: 0xC981,
+ 6067: 0xC982,
+ 6068: 0xC983,
+ 6069: 0xC984,
+ 6070: 0xC985,
+ 6071: 0xC986,
+ 6072: 0xC987,
+ 6073: 0xC98A,
+ 6074: 0xC98B,
+ 6075: 0xC98D,
+ 6076: 0xC98E,
+ 6077: 0xC98F,
+ 6078: 0xC991,
+ 6079: 0xC992,
+ 6080: 0xC993,
+ 6081: 0xC994,
+ 6082: 0xC995,
+ 6083: 0xC996,
+ 6084: 0xC997,
+ 6085: 0xC99A,
+ 6086: 0xC99C,
+ 6087: 0xC99E,
+ 6088: 0xC99F,
+ 6089: 0xC9A0,
+ 6090: 0xC9A1,
+ 6091: 0xC9A2,
+ 6092: 0xC9A3,
+ 6093: 0xC9A4,
+ 6094: 0xC9A5,
+ 6095: 0xC9A6,
+ 6096: 0xC9A7,
+ 6097: 0xC9A8,
+ 6098: 0xC9A9,
+ 6099: 0xC9AA,
+ 6100: 0xC9AB,
+ 6101: 0xC9AC,
+ 6102: 0xC9AD,
+ 6103: 0xC9AE,
+ 6104: 0xC9AF,
+ 6105: 0xC9B0,
+ 6106: 0xC9B1,
+ 6107: 0xC9B2,
+ 6108: 0xC9B3,
+ 6109: 0xC9B4,
+ 6110: 0xC9B5,
+ 6111: 0xC9B6,
+ 6112: 0xC9B7,
+ 6113: 0xC9B8,
+ 6114: 0xC9B9,
+ 6115: 0xC9BA,
+ 6116: 0xC9BB,
+ 6117: 0xC9BC,
+ 6118: 0xC9BD,
+ 6119: 0xC9BE,
+ 6120: 0xC9BF,
+ 6121: 0xC9C2,
+ 6122: 0xC9C3,
+ 6123: 0xC9C5,
+ 6124: 0xC9C6,
+ 6125: 0xC9C9,
+ 6126: 0xC9CB,
+ 6127: 0xC9CC,
+ 6128: 0xC9CD,
+ 6129: 0xC9CE,
+ 6130: 0xC9CF,
+ 6131: 0xC9D2,
+ 6132: 0xC9D4,
+ 6133: 0xC9D7,
+ 6134: 0xC9D8,
+ 6135: 0xC9DB,
+ 6136: 0xFF01,
+ 6137: 0xFF02,
+ 6138: 0xFF03,
+ 6139: 0xFF04,
+ 6140: 0xFF05,
+ 6141: 0xFF06,
+ 6142: 0xFF07,
+ 6143: 0xFF08,
+ 6144: 0xFF09,
+ 6145: 0xFF0A,
+ 6146: 0xFF0B,
+ 6147: 0xFF0C,
+ 6148: 0xFF0D,
+ 6149: 0xFF0E,
+ 6150: 0xFF0F,
+ 6151: 0xFF10,
+ 6152: 0xFF11,
+ 6153: 0xFF12,
+ 6154: 0xFF13,
+ 6155: 0xFF14,
+ 6156: 0xFF15,
+ 6157: 0xFF16,
+ 6158: 0xFF17,
+ 6159: 0xFF18,
+ 6160: 0xFF19,
+ 6161: 0xFF1A,
+ 6162: 0xFF1B,
+ 6163: 0xFF1C,
+ 6164: 0xFF1D,
+ 6165: 0xFF1E,
+ 6166: 0xFF1F,
+ 6167: 0xFF20,
+ 6168: 0xFF21,
+ 6169: 0xFF22,
+ 6170: 0xFF23,
+ 6171: 0xFF24,
+ 6172: 0xFF25,
+ 6173: 0xFF26,
+ 6174: 0xFF27,
+ 6175: 0xFF28,
+ 6176: 0xFF29,
+ 6177: 0xFF2A,
+ 6178: 0xFF2B,
+ 6179: 0xFF2C,
+ 6180: 0xFF2D,
+ 6181: 0xFF2E,
+ 6182: 0xFF2F,
+ 6183: 0xFF30,
+ 6184: 0xFF31,
+ 6185: 0xFF32,
+ 6186: 0xFF33,
+ 6187: 0xFF34,
+ 6188: 0xFF35,
+ 6189: 0xFF36,
+ 6190: 0xFF37,
+ 6191: 0xFF38,
+ 6192: 0xFF39,
+ 6193: 0xFF3A,
+ 6194: 0xFF3B,
+ 6195: 0xFFE6,
+ 6196: 0xFF3D,
+ 6197: 0xFF3E,
+ 6198: 0xFF3F,
+ 6199: 0xFF40,
+ 6200: 0xFF41,
+ 6201: 0xFF42,
+ 6202: 0xFF43,
+ 6203: 0xFF44,
+ 6204: 0xFF45,
+ 6205: 0xFF46,
+ 6206: 0xFF47,
+ 6207: 0xFF48,
+ 6208: 0xFF49,
+ 6209: 0xFF4A,
+ 6210: 0xFF4B,
+ 6211: 0xFF4C,
+ 6212: 0xFF4D,
+ 6213: 0xFF4E,
+ 6214: 0xFF4F,
+ 6215: 0xFF50,
+ 6216: 0xFF51,
+ 6217: 0xFF52,
+ 6218: 0xFF53,
+ 6219: 0xFF54,
+ 6220: 0xFF55,
+ 6221: 0xFF56,
+ 6222: 0xFF57,
+ 6223: 0xFF58,
+ 6224: 0xFF59,
+ 6225: 0xFF5A,
+ 6226: 0xFF5B,
+ 6227: 0xFF5C,
+ 6228: 0xFF5D,
+ 6229: 0xFFE3,
+ 6230: 0xC9DE,
+ 6231: 0xC9DF,
+ 6232: 0xC9E1,
+ 6233: 0xC9E3,
+ 6234: 0xC9E5,
+ 6235: 0xC9E6,
+ 6236: 0xC9E8,
+ 6237: 0xC9E9,
+ 6238: 0xC9EA,
+ 6239: 0xC9EB,
+ 6240: 0xC9EE,
+ 6241: 0xC9F2,
+ 6242: 0xC9F3,
+ 6243: 0xC9F4,
+ 6244: 0xC9F5,
+ 6245: 0xC9F6,
+ 6246: 0xC9F7,
+ 6247: 0xC9FA,
+ 6248: 0xC9FB,
+ 6249: 0xC9FD,
+ 6250: 0xC9FE,
+ 6251: 0xC9FF,
+ 6252: 0xCA01,
+ 6253: 0xCA02,
+ 6254: 0xCA03,
+ 6255: 0xCA04,
+ 6256: 0xCA05,
+ 6257: 0xCA06,
+ 6258: 0xCA07,
+ 6259: 0xCA0A,
+ 6260: 0xCA0E,
+ 6261: 0xCA0F,
+ 6262: 0xCA10,
+ 6263: 0xCA11,
+ 6264: 0xCA12,
+ 6265: 0xCA13,
+ 6266: 0xCA15,
+ 6267: 0xCA16,
+ 6268: 0xCA17,
+ 6269: 0xCA19,
+ 6270: 0xCA1A,
+ 6271: 0xCA1B,
+ 6272: 0xCA1C,
+ 6273: 0xCA1D,
+ 6274: 0xCA1E,
+ 6275: 0xCA1F,
+ 6276: 0xCA20,
+ 6277: 0xCA21,
+ 6278: 0xCA22,
+ 6279: 0xCA23,
+ 6280: 0xCA24,
+ 6281: 0xCA25,
+ 6282: 0xCA26,
+ 6283: 0xCA27,
+ 6284: 0xCA28,
+ 6285: 0xCA2A,
+ 6286: 0xCA2B,
+ 6287: 0xCA2C,
+ 6288: 0xCA2D,
+ 6289: 0xCA2E,
+ 6290: 0xCA2F,
+ 6291: 0xCA30,
+ 6292: 0xCA31,
+ 6293: 0xCA32,
+ 6294: 0xCA33,
+ 6295: 0xCA34,
+ 6296: 0xCA35,
+ 6297: 0xCA36,
+ 6298: 0xCA37,
+ 6299: 0xCA38,
+ 6300: 0xCA39,
+ 6301: 0xCA3A,
+ 6302: 0xCA3B,
+ 6303: 0xCA3C,
+ 6304: 0xCA3D,
+ 6305: 0xCA3E,
+ 6306: 0xCA3F,
+ 6307: 0xCA40,
+ 6308: 0xCA41,
+ 6309: 0xCA42,
+ 6310: 0xCA43,
+ 6311: 0xCA44,
+ 6312: 0xCA45,
+ 6313: 0xCA46,
+ 6314: 0x3131,
+ 6315: 0x3132,
+ 6316: 0x3133,
+ 6317: 0x3134,
+ 6318: 0x3135,
+ 6319: 0x3136,
+ 6320: 0x3137,
+ 6321: 0x3138,
+ 6322: 0x3139,
+ 6323: 0x313A,
+ 6324: 0x313B,
+ 6325: 0x313C,
+ 6326: 0x313D,
+ 6327: 0x313E,
+ 6328: 0x313F,
+ 6329: 0x3140,
+ 6330: 0x3141,
+ 6331: 0x3142,
+ 6332: 0x3143,
+ 6333: 0x3144,
+ 6334: 0x3145,
+ 6335: 0x3146,
+ 6336: 0x3147,
+ 6337: 0x3148,
+ 6338: 0x3149,
+ 6339: 0x314A,
+ 6340: 0x314B,
+ 6341: 0x314C,
+ 6342: 0x314D,
+ 6343: 0x314E,
+ 6344: 0x314F,
+ 6345: 0x3150,
+ 6346: 0x3151,
+ 6347: 0x3152,
+ 6348: 0x3153,
+ 6349: 0x3154,
+ 6350: 0x3155,
+ 6351: 0x3156,
+ 6352: 0x3157,
+ 6353: 0x3158,
+ 6354: 0x3159,
+ 6355: 0x315A,
+ 6356: 0x315B,
+ 6357: 0x315C,
+ 6358: 0x315D,
+ 6359: 0x315E,
+ 6360: 0x315F,
+ 6361: 0x3160,
+ 6362: 0x3161,
+ 6363: 0x3162,
+ 6364: 0x3163,
+ 6365: 0x3164,
+ 6366: 0x3165,
+ 6367: 0x3166,
+ 6368: 0x3167,
+ 6369: 0x3168,
+ 6370: 0x3169,
+ 6371: 0x316A,
+ 6372: 0x316B,
+ 6373: 0x316C,
+ 6374: 0x316D,
+ 6375: 0x316E,
+ 6376: 0x316F,
+ 6377: 0x3170,
+ 6378: 0x3171,
+ 6379: 0x3172,
+ 6380: 0x3173,
+ 6381: 0x3174,
+ 6382: 0x3175,
+ 6383: 0x3176,
+ 6384: 0x3177,
+ 6385: 0x3178,
+ 6386: 0x3179,
+ 6387: 0x317A,
+ 6388: 0x317B,
+ 6389: 0x317C,
+ 6390: 0x317D,
+ 6391: 0x317E,
+ 6392: 0x317F,
+ 6393: 0x3180,
+ 6394: 0x3181,
+ 6395: 0x3182,
+ 6396: 0x3183,
+ 6397: 0x3184,
+ 6398: 0x3185,
+ 6399: 0x3186,
+ 6400: 0x3187,
+ 6401: 0x3188,
+ 6402: 0x3189,
+ 6403: 0x318A,
+ 6404: 0x318B,
+ 6405: 0x318C,
+ 6406: 0x318D,
+ 6407: 0x318E,
+ 6408: 0xCA47,
+ 6409: 0xCA48,
+ 6410: 0xCA49,
+ 6411: 0xCA4A,
+ 6412: 0xCA4B,
+ 6413: 0xCA4E,
+ 6414: 0xCA4F,
+ 6415: 0xCA51,
+ 6416: 0xCA52,
+ 6417: 0xCA53,
+ 6418: 0xCA55,
+ 6419: 0xCA56,
+ 6420: 0xCA57,
+ 6421: 0xCA58,
+ 6422: 0xCA59,
+ 6423: 0xCA5A,
+ 6424: 0xCA5B,
+ 6425: 0xCA5E,
+ 6426: 0xCA62,
+ 6427: 0xCA63,
+ 6428: 0xCA64,
+ 6429: 0xCA65,
+ 6430: 0xCA66,
+ 6431: 0xCA67,
+ 6432: 0xCA69,
+ 6433: 0xCA6A,
+ 6434: 0xCA6B,
+ 6435: 0xCA6C,
+ 6436: 0xCA6D,
+ 6437: 0xCA6E,
+ 6438: 0xCA6F,
+ 6439: 0xCA70,
+ 6440: 0xCA71,
+ 6441: 0xCA72,
+ 6442: 0xCA73,
+ 6443: 0xCA74,
+ 6444: 0xCA75,
+ 6445: 0xCA76,
+ 6446: 0xCA77,
+ 6447: 0xCA78,
+ 6448: 0xCA79,
+ 6449: 0xCA7A,
+ 6450: 0xCA7B,
+ 6451: 0xCA7C,
+ 6452: 0xCA7E,
+ 6453: 0xCA7F,
+ 6454: 0xCA80,
+ 6455: 0xCA81,
+ 6456: 0xCA82,
+ 6457: 0xCA83,
+ 6458: 0xCA85,
+ 6459: 0xCA86,
+ 6460: 0xCA87,
+ 6461: 0xCA88,
+ 6462: 0xCA89,
+ 6463: 0xCA8A,
+ 6464: 0xCA8B,
+ 6465: 0xCA8C,
+ 6466: 0xCA8D,
+ 6467: 0xCA8E,
+ 6468: 0xCA8F,
+ 6469: 0xCA90,
+ 6470: 0xCA91,
+ 6471: 0xCA92,
+ 6472: 0xCA93,
+ 6473: 0xCA94,
+ 6474: 0xCA95,
+ 6475: 0xCA96,
+ 6476: 0xCA97,
+ 6477: 0xCA99,
+ 6478: 0xCA9A,
+ 6479: 0xCA9B,
+ 6480: 0xCA9C,
+ 6481: 0xCA9D,
+ 6482: 0xCA9E,
+ 6483: 0xCA9F,
+ 6484: 0xCAA0,
+ 6485: 0xCAA1,
+ 6486: 0xCAA2,
+ 6487: 0xCAA3,
+ 6488: 0xCAA4,
+ 6489: 0xCAA5,
+ 6490: 0xCAA6,
+ 6491: 0xCAA7,
+ 6492: 0x2170,
+ 6493: 0x2171,
+ 6494: 0x2172,
+ 6495: 0x2173,
+ 6496: 0x2174,
+ 6497: 0x2175,
+ 6498: 0x2176,
+ 6499: 0x2177,
+ 6500: 0x2178,
+ 6501: 0x2179,
+ 6507: 0x2160,
+ 6508: 0x2161,
+ 6509: 0x2162,
+ 6510: 0x2163,
+ 6511: 0x2164,
+ 6512: 0x2165,
+ 6513: 0x2166,
+ 6514: 0x2167,
+ 6515: 0x2168,
+ 6516: 0x2169,
+ 6524: 0x0391,
+ 6525: 0x0392,
+ 6526: 0x0393,
+ 6527: 0x0394,
+ 6528: 0x0395,
+ 6529: 0x0396,
+ 6530: 0x0397,
+ 6531: 0x0398,
+ 6532: 0x0399,
+ 6533: 0x039A,
+ 6534: 0x039B,
+ 6535: 0x039C,
+ 6536: 0x039D,
+ 6537: 0x039E,
+ 6538: 0x039F,
+ 6539: 0x03A0,
+ 6540: 0x03A1,
+ 6541: 0x03A3,
+ 6542: 0x03A4,
+ 6543: 0x03A5,
+ 6544: 0x03A6,
+ 6545: 0x03A7,
+ 6546: 0x03A8,
+ 6547: 0x03A9,
+ 6556: 0x03B1,
+ 6557: 0x03B2,
+ 6558: 0x03B3,
+ 6559: 0x03B4,
+ 6560: 0x03B5,
+ 6561: 0x03B6,
+ 6562: 0x03B7,
+ 6563: 0x03B8,
+ 6564: 0x03B9,
+ 6565: 0x03BA,
+ 6566: 0x03BB,
+ 6567: 0x03BC,
+ 6568: 0x03BD,
+ 6569: 0x03BE,
+ 6570: 0x03BF,
+ 6571: 0x03C0,
+ 6572: 0x03C1,
+ 6573: 0x03C3,
+ 6574: 0x03C4,
+ 6575: 0x03C5,
+ 6576: 0x03C6,
+ 6577: 0x03C7,
+ 6578: 0x03C8,
+ 6579: 0x03C9,
+ 6586: 0xCAA8,
+ 6587: 0xCAA9,
+ 6588: 0xCAAA,
+ 6589: 0xCAAB,
+ 6590: 0xCAAC,
+ 6591: 0xCAAD,
+ 6592: 0xCAAE,
+ 6593: 0xCAAF,
+ 6594: 0xCAB0,
+ 6595: 0xCAB1,
+ 6596: 0xCAB2,
+ 6597: 0xCAB3,
+ 6598: 0xCAB4,
+ 6599: 0xCAB5,
+ 6600: 0xCAB6,
+ 6601: 0xCAB7,
+ 6602: 0xCAB8,
+ 6603: 0xCAB9,
+ 6604: 0xCABA,
+ 6605: 0xCABB,
+ 6606: 0xCABE,
+ 6607: 0xCABF,
+ 6608: 0xCAC1,
+ 6609: 0xCAC2,
+ 6610: 0xCAC3,
+ 6611: 0xCAC5,
+ 6612: 0xCAC6,
+ 6613: 0xCAC7,
+ 6614: 0xCAC8,
+ 6615: 0xCAC9,
+ 6616: 0xCACA,
+ 6617: 0xCACB,
+ 6618: 0xCACE,
+ 6619: 0xCAD0,
+ 6620: 0xCAD2,
+ 6621: 0xCAD4,
+ 6622: 0xCAD5,
+ 6623: 0xCAD6,
+ 6624: 0xCAD7,
+ 6625: 0xCADA,
+ 6626: 0xCADB,
+ 6627: 0xCADC,
+ 6628: 0xCADD,
+ 6629: 0xCADE,
+ 6630: 0xCADF,
+ 6631: 0xCAE1,
+ 6632: 0xCAE2,
+ 6633: 0xCAE3,
+ 6634: 0xCAE4,
+ 6635: 0xCAE5,
+ 6636: 0xCAE6,
+ 6637: 0xCAE7,
+ 6638: 0xCAE8,
+ 6639: 0xCAE9,
+ 6640: 0xCAEA,
+ 6641: 0xCAEB,
+ 6642: 0xCAED,
+ 6643: 0xCAEE,
+ 6644: 0xCAEF,
+ 6645: 0xCAF0,
+ 6646: 0xCAF1,
+ 6647: 0xCAF2,
+ 6648: 0xCAF3,
+ 6649: 0xCAF5,
+ 6650: 0xCAF6,
+ 6651: 0xCAF7,
+ 6652: 0xCAF8,
+ 6653: 0xCAF9,
+ 6654: 0xCAFA,
+ 6655: 0xCAFB,
+ 6656: 0xCAFC,
+ 6657: 0xCAFD,
+ 6658: 0xCAFE,
+ 6659: 0xCAFF,
+ 6660: 0xCB00,
+ 6661: 0xCB01,
+ 6662: 0xCB02,
+ 6663: 0xCB03,
+ 6664: 0xCB04,
+ 6665: 0xCB05,
+ 6666: 0xCB06,
+ 6667: 0xCB07,
+ 6668: 0xCB09,
+ 6669: 0xCB0A,
+ 6670: 0x2500,
+ 6671: 0x2502,
+ 6672: 0x250C,
+ 6673: 0x2510,
+ 6674: 0x2518,
+ 6675: 0x2514,
+ 6676: 0x251C,
+ 6677: 0x252C,
+ 6678: 0x2524,
+ 6679: 0x2534,
+ 6680: 0x253C,
+ 6681: 0x2501,
+ 6682: 0x2503,
+ 6683: 0x250F,
+ 6684: 0x2513,
+ 6685: 0x251B,
+ 6686: 0x2517,
+ 6687: 0x2523,
+ 6688: 0x2533,
+ 6689: 0x252B,
+ 6690: 0x253B,
+ 6691: 0x254B,
+ 6692: 0x2520,
+ 6693: 0x252F,
+ 6694: 0x2528,
+ 6695: 0x2537,
+ 6696: 0x253F,
+ 6697: 0x251D,
+ 6698: 0x2530,
+ 6699: 0x2525,
+ 6700: 0x2538,
+ 6701: 0x2542,
+ 6702: 0x2512,
+ 6703: 0x2511,
+ 6704: 0x251A,
+ 6705: 0x2519,
+ 6706: 0x2516,
+ 6707: 0x2515,
+ 6708: 0x250E,
+ 6709: 0x250D,
+ 6710: 0x251E,
+ 6711: 0x251F,
+ 6712: 0x2521,
+ 6713: 0x2522,
+ 6714: 0x2526,
+ 6715: 0x2527,
+ 6716: 0x2529,
+ 6717: 0x252A,
+ 6718: 0x252D,
+ 6719: 0x252E,
+ 6720: 0x2531,
+ 6721: 0x2532,
+ 6722: 0x2535,
+ 6723: 0x2536,
+ 6724: 0x2539,
+ 6725: 0x253A,
+ 6726: 0x253D,
+ 6727: 0x253E,
+ 6728: 0x2540,
+ 6729: 0x2541,
+ 6730: 0x2543,
+ 6731: 0x2544,
+ 6732: 0x2545,
+ 6733: 0x2546,
+ 6734: 0x2547,
+ 6735: 0x2548,
+ 6736: 0x2549,
+ 6737: 0x254A,
+ 6764: 0xCB0B,
+ 6765: 0xCB0C,
+ 6766: 0xCB0D,
+ 6767: 0xCB0E,
+ 6768: 0xCB0F,
+ 6769: 0xCB11,
+ 6770: 0xCB12,
+ 6771: 0xCB13,
+ 6772: 0xCB15,
+ 6773: 0xCB16,
+ 6774: 0xCB17,
+ 6775: 0xCB19,
+ 6776: 0xCB1A,
+ 6777: 0xCB1B,
+ 6778: 0xCB1C,
+ 6779: 0xCB1D,
+ 6780: 0xCB1E,
+ 6781: 0xCB1F,
+ 6782: 0xCB22,
+ 6783: 0xCB23,
+ 6784: 0xCB24,
+ 6785: 0xCB25,
+ 6786: 0xCB26,
+ 6787: 0xCB27,
+ 6788: 0xCB28,
+ 6789: 0xCB29,
+ 6790: 0xCB2A,
+ 6791: 0xCB2B,
+ 6792: 0xCB2C,
+ 6793: 0xCB2D,
+ 6794: 0xCB2E,
+ 6795: 0xCB2F,
+ 6796: 0xCB30,
+ 6797: 0xCB31,
+ 6798: 0xCB32,
+ 6799: 0xCB33,
+ 6800: 0xCB34,
+ 6801: 0xCB35,
+ 6802: 0xCB36,
+ 6803: 0xCB37,
+ 6804: 0xCB38,
+ 6805: 0xCB39,
+ 6806: 0xCB3A,
+ 6807: 0xCB3B,
+ 6808: 0xCB3C,
+ 6809: 0xCB3D,
+ 6810: 0xCB3E,
+ 6811: 0xCB3F,
+ 6812: 0xCB40,
+ 6813: 0xCB42,
+ 6814: 0xCB43,
+ 6815: 0xCB44,
+ 6816: 0xCB45,
+ 6817: 0xCB46,
+ 6818: 0xCB47,
+ 6819: 0xCB4A,
+ 6820: 0xCB4B,
+ 6821: 0xCB4D,
+ 6822: 0xCB4E,
+ 6823: 0xCB4F,
+ 6824: 0xCB51,
+ 6825: 0xCB52,
+ 6826: 0xCB53,
+ 6827: 0xCB54,
+ 6828: 0xCB55,
+ 6829: 0xCB56,
+ 6830: 0xCB57,
+ 6831: 0xCB5A,
+ 6832: 0xCB5B,
+ 6833: 0xCB5C,
+ 6834: 0xCB5E,
+ 6835: 0xCB5F,
+ 6836: 0xCB60,
+ 6837: 0xCB61,
+ 6838: 0xCB62,
+ 6839: 0xCB63,
+ 6840: 0xCB65,
+ 6841: 0xCB66,
+ 6842: 0xCB67,
+ 6843: 0xCB68,
+ 6844: 0xCB69,
+ 6845: 0xCB6A,
+ 6846: 0xCB6B,
+ 6847: 0xCB6C,
+ 6848: 0x3395,
+ 6849: 0x3396,
+ 6850: 0x3397,
+ 6851: 0x2113,
+ 6852: 0x3398,
+ 6853: 0x33C4,
+ 6854: 0x33A3,
+ 6855: 0x33A4,
+ 6856: 0x33A5,
+ 6857: 0x33A6,
+ 6858: 0x3399,
+ 6859: 0x339A,
+ 6860: 0x339B,
+ 6861: 0x339C,
+ 6862: 0x339D,
+ 6863: 0x339E,
+ 6864: 0x339F,
+ 6865: 0x33A0,
+ 6866: 0x33A1,
+ 6867: 0x33A2,
+ 6868: 0x33CA,
+ 6869: 0x338D,
+ 6870: 0x338E,
+ 6871: 0x338F,
+ 6872: 0x33CF,
+ 6873: 0x3388,
+ 6874: 0x3389,
+ 6875: 0x33C8,
+ 6876: 0x33A7,
+ 6877: 0x33A8,
+ 6878: 0x33B0,
+ 6879: 0x33B1,
+ 6880: 0x33B2,
+ 6881: 0x33B3,
+ 6882: 0x33B4,
+ 6883: 0x33B5,
+ 6884: 0x33B6,
+ 6885: 0x33B7,
+ 6886: 0x33B8,
+ 6887: 0x33B9,
+ 6888: 0x3380,
+ 6889: 0x3381,
+ 6890: 0x3382,
+ 6891: 0x3383,
+ 6892: 0x3384,
+ 6893: 0x33BA,
+ 6894: 0x33BB,
+ 6895: 0x33BC,
+ 6896: 0x33BD,
+ 6897: 0x33BE,
+ 6898: 0x33BF,
+ 6899: 0x3390,
+ 6900: 0x3391,
+ 6901: 0x3392,
+ 6902: 0x3393,
+ 6903: 0x3394,
+ 6904: 0x2126,
+ 6905: 0x33C0,
+ 6906: 0x33C1,
+ 6907: 0x338A,
+ 6908: 0x338B,
+ 6909: 0x338C,
+ 6910: 0x33D6,
+ 6911: 0x33C5,
+ 6912: 0x33AD,
+ 6913: 0x33AE,
+ 6914: 0x33AF,
+ 6915: 0x33DB,
+ 6916: 0x33A9,
+ 6917: 0x33AA,
+ 6918: 0x33AB,
+ 6919: 0x33AC,
+ 6920: 0x33DD,
+ 6921: 0x33D0,
+ 6922: 0x33D3,
+ 6923: 0x33C3,
+ 6924: 0x33C9,
+ 6925: 0x33DC,
+ 6926: 0x33C6,
+ 6942: 0xCB6D,
+ 6943: 0xCB6E,
+ 6944: 0xCB6F,
+ 6945: 0xCB70,
+ 6946: 0xCB71,
+ 6947: 0xCB72,
+ 6948: 0xCB73,
+ 6949: 0xCB74,
+ 6950: 0xCB75,
+ 6951: 0xCB76,
+ 6952: 0xCB77,
+ 6953: 0xCB7A,
+ 6954: 0xCB7B,
+ 6955: 0xCB7C,
+ 6956: 0xCB7D,
+ 6957: 0xCB7E,
+ 6958: 0xCB7F,
+ 6959: 0xCB80,
+ 6960: 0xCB81,
+ 6961: 0xCB82,
+ 6962: 0xCB83,
+ 6963: 0xCB84,
+ 6964: 0xCB85,
+ 6965: 0xCB86,
+ 6966: 0xCB87,
+ 6967: 0xCB88,
+ 6968: 0xCB89,
+ 6969: 0xCB8A,
+ 6970: 0xCB8B,
+ 6971: 0xCB8C,
+ 6972: 0xCB8D,
+ 6973: 0xCB8E,
+ 6974: 0xCB8F,
+ 6975: 0xCB90,
+ 6976: 0xCB91,
+ 6977: 0xCB92,
+ 6978: 0xCB93,
+ 6979: 0xCB94,
+ 6980: 0xCB95,
+ 6981: 0xCB96,
+ 6982: 0xCB97,
+ 6983: 0xCB98,
+ 6984: 0xCB99,
+ 6985: 0xCB9A,
+ 6986: 0xCB9B,
+ 6987: 0xCB9D,
+ 6988: 0xCB9E,
+ 6989: 0xCB9F,
+ 6990: 0xCBA0,
+ 6991: 0xCBA1,
+ 6992: 0xCBA2,
+ 6993: 0xCBA3,
+ 6994: 0xCBA4,
+ 6995: 0xCBA5,
+ 6996: 0xCBA6,
+ 6997: 0xCBA7,
+ 6998: 0xCBA8,
+ 6999: 0xCBA9,
+ 7000: 0xCBAA,
+ 7001: 0xCBAB,
+ 7002: 0xCBAC,
+ 7003: 0xCBAD,
+ 7004: 0xCBAE,
+ 7005: 0xCBAF,
+ 7006: 0xCBB0,
+ 7007: 0xCBB1,
+ 7008: 0xCBB2,
+ 7009: 0xCBB3,
+ 7010: 0xCBB4,
+ 7011: 0xCBB5,
+ 7012: 0xCBB6,
+ 7013: 0xCBB7,
+ 7014: 0xCBB9,
+ 7015: 0xCBBA,
+ 7016: 0xCBBB,
+ 7017: 0xCBBC,
+ 7018: 0xCBBD,
+ 7019: 0xCBBE,
+ 7020: 0xCBBF,
+ 7021: 0xCBC0,
+ 7022: 0xCBC1,
+ 7023: 0xCBC2,
+ 7024: 0xCBC3,
+ 7025: 0xCBC4,
+ 7026: 0x00C6,
+ 7027: 0x00D0,
+ 7028: 0x00AA,
+ 7029: 0x0126,
+ 7031: 0x0132,
+ 7033: 0x013F,
+ 7034: 0x0141,
+ 7035: 0x00D8,
+ 7036: 0x0152,
+ 7037: 0x00BA,
+ 7038: 0x00DE,
+ 7039: 0x0166,
+ 7040: 0x014A,
+ 7042: 0x3260,
+ 7043: 0x3261,
+ 7044: 0x3262,
+ 7045: 0x3263,
+ 7046: 0x3264,
+ 7047: 0x3265,
+ 7048: 0x3266,
+ 7049: 0x3267,
+ 7050: 0x3268,
+ 7051: 0x3269,
+ 7052: 0x326A,
+ 7053: 0x326B,
+ 7054: 0x326C,
+ 7055: 0x326D,
+ 7056: 0x326E,
+ 7057: 0x326F,
+ 7058: 0x3270,
+ 7059: 0x3271,
+ 7060: 0x3272,
+ 7061: 0x3273,
+ 7062: 0x3274,
+ 7063: 0x3275,
+ 7064: 0x3276,
+ 7065: 0x3277,
+ 7066: 0x3278,
+ 7067: 0x3279,
+ 7068: 0x327A,
+ 7069: 0x327B,
+ 7070: 0x24D0,
+ 7071: 0x24D1,
+ 7072: 0x24D2,
+ 7073: 0x24D3,
+ 7074: 0x24D4,
+ 7075: 0x24D5,
+ 7076: 0x24D6,
+ 7077: 0x24D7,
+ 7078: 0x24D8,
+ 7079: 0x24D9,
+ 7080: 0x24DA,
+ 7081: 0x24DB,
+ 7082: 0x24DC,
+ 7083: 0x24DD,
+ 7084: 0x24DE,
+ 7085: 0x24DF,
+ 7086: 0x24E0,
+ 7087: 0x24E1,
+ 7088: 0x24E2,
+ 7089: 0x24E3,
+ 7090: 0x24E4,
+ 7091: 0x24E5,
+ 7092: 0x24E6,
+ 7093: 0x24E7,
+ 7094: 0x24E8,
+ 7095: 0x24E9,
+ 7096: 0x2460,
+ 7097: 0x2461,
+ 7098: 0x2462,
+ 7099: 0x2463,
+ 7100: 0x2464,
+ 7101: 0x2465,
+ 7102: 0x2466,
+ 7103: 0x2467,
+ 7104: 0x2468,
+ 7105: 0x2469,
+ 7106: 0x246A,
+ 7107: 0x246B,
+ 7108: 0x246C,
+ 7109: 0x246D,
+ 7110: 0x246E,
+ 7111: 0x00BD,
+ 7112: 0x2153,
+ 7113: 0x2154,
+ 7114: 0x00BC,
+ 7115: 0x00BE,
+ 7116: 0x215B,
+ 7117: 0x215C,
+ 7118: 0x215D,
+ 7119: 0x215E,
+ 7120: 0xCBC5,
+ 7121: 0xCBC6,
+ 7122: 0xCBC7,
+ 7123: 0xCBC8,
+ 7124: 0xCBC9,
+ 7125: 0xCBCA,
+ 7126: 0xCBCB,
+ 7127: 0xCBCC,
+ 7128: 0xCBCD,
+ 7129: 0xCBCE,
+ 7130: 0xCBCF,
+ 7131: 0xCBD0,
+ 7132: 0xCBD1,
+ 7133: 0xCBD2,
+ 7134: 0xCBD3,
+ 7135: 0xCBD5,
+ 7136: 0xCBD6,
+ 7137: 0xCBD7,
+ 7138: 0xCBD8,
+ 7139: 0xCBD9,
+ 7140: 0xCBDA,
+ 7141: 0xCBDB,
+ 7142: 0xCBDC,
+ 7143: 0xCBDD,
+ 7144: 0xCBDE,
+ 7145: 0xCBDF,
+ 7146: 0xCBE0,
+ 7147: 0xCBE1,
+ 7148: 0xCBE2,
+ 7149: 0xCBE3,
+ 7150: 0xCBE5,
+ 7151: 0xCBE6,
+ 7152: 0xCBE8,
+ 7153: 0xCBEA,
+ 7154: 0xCBEB,
+ 7155: 0xCBEC,
+ 7156: 0xCBED,
+ 7157: 0xCBEE,
+ 7158: 0xCBEF,
+ 7159: 0xCBF0,
+ 7160: 0xCBF1,
+ 7161: 0xCBF2,
+ 7162: 0xCBF3,
+ 7163: 0xCBF4,
+ 7164: 0xCBF5,
+ 7165: 0xCBF6,
+ 7166: 0xCBF7,
+ 7167: 0xCBF8,
+ 7168: 0xCBF9,
+ 7169: 0xCBFA,
+ 7170: 0xCBFB,
+ 7171: 0xCBFC,
+ 7172: 0xCBFD,
+ 7173: 0xCBFE,
+ 7174: 0xCBFF,
+ 7175: 0xCC00,
+ 7176: 0xCC01,
+ 7177: 0xCC02,
+ 7178: 0xCC03,
+ 7179: 0xCC04,
+ 7180: 0xCC05,
+ 7181: 0xCC06,
+ 7182: 0xCC07,
+ 7183: 0xCC08,
+ 7184: 0xCC09,
+ 7185: 0xCC0A,
+ 7186: 0xCC0B,
+ 7187: 0xCC0E,
+ 7188: 0xCC0F,
+ 7189: 0xCC11,
+ 7190: 0xCC12,
+ 7191: 0xCC13,
+ 7192: 0xCC15,
+ 7193: 0xCC16,
+ 7194: 0xCC17,
+ 7195: 0xCC18,
+ 7196: 0xCC19,
+ 7197: 0xCC1A,
+ 7198: 0xCC1B,
+ 7199: 0xCC1E,
+ 7200: 0xCC1F,
+ 7201: 0xCC20,
+ 7202: 0xCC23,
+ 7203: 0xCC24,
+ 7204: 0x00E6,
+ 7205: 0x0111,
+ 7206: 0x00F0,
+ 7207: 0x0127,
+ 7208: 0x0131,
+ 7209: 0x0133,
+ 7210: 0x0138,
+ 7211: 0x0140,
+ 7212: 0x0142,
+ 7213: 0x00F8,
+ 7214: 0x0153,
+ 7215: 0x00DF,
+ 7216: 0x00FE,
+ 7217: 0x0167,
+ 7218: 0x014B,
+ 7219: 0x0149,
+ 7220: 0x3200,
+ 7221: 0x3201,
+ 7222: 0x3202,
+ 7223: 0x3203,
+ 7224: 0x3204,
+ 7225: 0x3205,
+ 7226: 0x3206,
+ 7227: 0x3207,
+ 7228: 0x3208,
+ 7229: 0x3209,
+ 7230: 0x320A,
+ 7231: 0x320B,
+ 7232: 0x320C,
+ 7233: 0x320D,
+ 7234: 0x320E,
+ 7235: 0x320F,
+ 7236: 0x3210,
+ 7237: 0x3211,
+ 7238: 0x3212,
+ 7239: 0x3213,
+ 7240: 0x3214,
+ 7241: 0x3215,
+ 7242: 0x3216,
+ 7243: 0x3217,
+ 7244: 0x3218,
+ 7245: 0x3219,
+ 7246: 0x321A,
+ 7247: 0x321B,
+ 7248: 0x249C,
+ 7249: 0x249D,
+ 7250: 0x249E,
+ 7251: 0x249F,
+ 7252: 0x24A0,
+ 7253: 0x24A1,
+ 7254: 0x24A2,
+ 7255: 0x24A3,
+ 7256: 0x24A4,
+ 7257: 0x24A5,
+ 7258: 0x24A6,
+ 7259: 0x24A7,
+ 7260: 0x24A8,
+ 7261: 0x24A9,
+ 7262: 0x24AA,
+ 7263: 0x24AB,
+ 7264: 0x24AC,
+ 7265: 0x24AD,
+ 7266: 0x24AE,
+ 7267: 0x24AF,
+ 7268: 0x24B0,
+ 7269: 0x24B1,
+ 7270: 0x24B2,
+ 7271: 0x24B3,
+ 7272: 0x24B4,
+ 7273: 0x24B5,
+ 7274: 0x2474,
+ 7275: 0x2475,
+ 7276: 0x2476,
+ 7277: 0x2477,
+ 7278: 0x2478,
+ 7279: 0x2479,
+ 7280: 0x247A,
+ 7281: 0x247B,
+ 7282: 0x247C,
+ 7283: 0x247D,
+ 7284: 0x247E,
+ 7285: 0x247F,
+ 7286: 0x2480,
+ 7287: 0x2481,
+ 7288: 0x2482,
+ 7289: 0x00B9,
+ 7290: 0x00B2,
+ 7291: 0x00B3,
+ 7292: 0x2074,
+ 7293: 0x207F,
+ 7294: 0x2081,
+ 7295: 0x2082,
+ 7296: 0x2083,
+ 7297: 0x2084,
+ 7298: 0xCC25,
+ 7299: 0xCC26,
+ 7300: 0xCC2A,
+ 7301: 0xCC2B,
+ 7302: 0xCC2D,
+ 7303: 0xCC2F,
+ 7304: 0xCC31,
+ 7305: 0xCC32,
+ 7306: 0xCC33,
+ 7307: 0xCC34,
+ 7308: 0xCC35,
+ 7309: 0xCC36,
+ 7310: 0xCC37,
+ 7311: 0xCC3A,
+ 7312: 0xCC3F,
+ 7313: 0xCC40,
+ 7314: 0xCC41,
+ 7315: 0xCC42,
+ 7316: 0xCC43,
+ 7317: 0xCC46,
+ 7318: 0xCC47,
+ 7319: 0xCC49,
+ 7320: 0xCC4A,
+ 7321: 0xCC4B,
+ 7322: 0xCC4D,
+ 7323: 0xCC4E,
+ 7324: 0xCC4F,
+ 7325: 0xCC50,
+ 7326: 0xCC51,
+ 7327: 0xCC52,
+ 7328: 0xCC53,
+ 7329: 0xCC56,
+ 7330: 0xCC5A,
+ 7331: 0xCC5B,
+ 7332: 0xCC5C,
+ 7333: 0xCC5D,
+ 7334: 0xCC5E,
+ 7335: 0xCC5F,
+ 7336: 0xCC61,
+ 7337: 0xCC62,
+ 7338: 0xCC63,
+ 7339: 0xCC65,
+ 7340: 0xCC67,
+ 7341: 0xCC69,
+ 7342: 0xCC6A,
+ 7343: 0xCC6B,
+ 7344: 0xCC6C,
+ 7345: 0xCC6D,
+ 7346: 0xCC6E,
+ 7347: 0xCC6F,
+ 7348: 0xCC71,
+ 7349: 0xCC72,
+ 7350: 0xCC73,
+ 7351: 0xCC74,
+ 7352: 0xCC76,
+ 7353: 0xCC77,
+ 7354: 0xCC78,
+ 7355: 0xCC79,
+ 7356: 0xCC7A,
+ 7357: 0xCC7B,
+ 7358: 0xCC7C,
+ 7359: 0xCC7D,
+ 7360: 0xCC7E,
+ 7361: 0xCC7F,
+ 7362: 0xCC80,
+ 7363: 0xCC81,
+ 7364: 0xCC82,
+ 7365: 0xCC83,
+ 7366: 0xCC84,
+ 7367: 0xCC85,
+ 7368: 0xCC86,
+ 7369: 0xCC87,
+ 7370: 0xCC88,
+ 7371: 0xCC89,
+ 7372: 0xCC8A,
+ 7373: 0xCC8B,
+ 7374: 0xCC8C,
+ 7375: 0xCC8D,
+ 7376: 0xCC8E,
+ 7377: 0xCC8F,
+ 7378: 0xCC90,
+ 7379: 0xCC91,
+ 7380: 0xCC92,
+ 7381: 0xCC93,
+ 7382: 0x3041,
+ 7383: 0x3042,
+ 7384: 0x3043,
+ 7385: 0x3044,
+ 7386: 0x3045,
+ 7387: 0x3046,
+ 7388: 0x3047,
+ 7389: 0x3048,
+ 7390: 0x3049,
+ 7391: 0x304A,
+ 7392: 0x304B,
+ 7393: 0x304C,
+ 7394: 0x304D,
+ 7395: 0x304E,
+ 7396: 0x304F,
+ 7397: 0x3050,
+ 7398: 0x3051,
+ 7399: 0x3052,
+ 7400: 0x3053,
+ 7401: 0x3054,
+ 7402: 0x3055,
+ 7403: 0x3056,
+ 7404: 0x3057,
+ 7405: 0x3058,
+ 7406: 0x3059,
+ 7407: 0x305A,
+ 7408: 0x305B,
+ 7409: 0x305C,
+ 7410: 0x305D,
+ 7411: 0x305E,
+ 7412: 0x305F,
+ 7413: 0x3060,
+ 7414: 0x3061,
+ 7415: 0x3062,
+ 7416: 0x3063,
+ 7417: 0x3064,
+ 7418: 0x3065,
+ 7419: 0x3066,
+ 7420: 0x3067,
+ 7421: 0x3068,
+ 7422: 0x3069,
+ 7423: 0x306A,
+ 7424: 0x306B,
+ 7425: 0x306C,
+ 7426: 0x306D,
+ 7427: 0x306E,
+ 7428: 0x306F,
+ 7429: 0x3070,
+ 7430: 0x3071,
+ 7431: 0x3072,
+ 7432: 0x3073,
+ 7433: 0x3074,
+ 7434: 0x3075,
+ 7435: 0x3076,
+ 7436: 0x3077,
+ 7437: 0x3078,
+ 7438: 0x3079,
+ 7439: 0x307A,
+ 7440: 0x307B,
+ 7441: 0x307C,
+ 7442: 0x307D,
+ 7443: 0x307E,
+ 7444: 0x307F,
+ 7445: 0x3080,
+ 7446: 0x3081,
+ 7447: 0x3082,
+ 7448: 0x3083,
+ 7449: 0x3084,
+ 7450: 0x3085,
+ 7451: 0x3086,
+ 7452: 0x3087,
+ 7453: 0x3088,
+ 7454: 0x3089,
+ 7455: 0x308A,
+ 7456: 0x308B,
+ 7457: 0x308C,
+ 7458: 0x308D,
+ 7459: 0x308E,
+ 7460: 0x308F,
+ 7461: 0x3090,
+ 7462: 0x3091,
+ 7463: 0x3092,
+ 7464: 0x3093,
+ 7476: 0xCC94,
+ 7477: 0xCC95,
+ 7478: 0xCC96,
+ 7479: 0xCC97,
+ 7480: 0xCC9A,
+ 7481: 0xCC9B,
+ 7482: 0xCC9D,
+ 7483: 0xCC9E,
+ 7484: 0xCC9F,
+ 7485: 0xCCA1,
+ 7486: 0xCCA2,
+ 7487: 0xCCA3,
+ 7488: 0xCCA4,
+ 7489: 0xCCA5,
+ 7490: 0xCCA6,
+ 7491: 0xCCA7,
+ 7492: 0xCCAA,
+ 7493: 0xCCAE,
+ 7494: 0xCCAF,
+ 7495: 0xCCB0,
+ 7496: 0xCCB1,
+ 7497: 0xCCB2,
+ 7498: 0xCCB3,
+ 7499: 0xCCB6,
+ 7500: 0xCCB7,
+ 7501: 0xCCB9,
+ 7502: 0xCCBA,
+ 7503: 0xCCBB,
+ 7504: 0xCCBD,
+ 7505: 0xCCBE,
+ 7506: 0xCCBF,
+ 7507: 0xCCC0,
+ 7508: 0xCCC1,
+ 7509: 0xCCC2,
+ 7510: 0xCCC3,
+ 7511: 0xCCC6,
+ 7512: 0xCCC8,
+ 7513: 0xCCCA,
+ 7514: 0xCCCB,
+ 7515: 0xCCCC,
+ 7516: 0xCCCD,
+ 7517: 0xCCCE,
+ 7518: 0xCCCF,
+ 7519: 0xCCD1,
+ 7520: 0xCCD2,
+ 7521: 0xCCD3,
+ 7522: 0xCCD5,
+ 7523: 0xCCD6,
+ 7524: 0xCCD7,
+ 7525: 0xCCD8,
+ 7526: 0xCCD9,
+ 7527: 0xCCDA,
+ 7528: 0xCCDB,
+ 7529: 0xCCDC,
+ 7530: 0xCCDD,
+ 7531: 0xCCDE,
+ 7532: 0xCCDF,
+ 7533: 0xCCE0,
+ 7534: 0xCCE1,
+ 7535: 0xCCE2,
+ 7536: 0xCCE3,
+ 7537: 0xCCE5,
+ 7538: 0xCCE6,
+ 7539: 0xCCE7,
+ 7540: 0xCCE8,
+ 7541: 0xCCE9,
+ 7542: 0xCCEA,
+ 7543: 0xCCEB,
+ 7544: 0xCCED,
+ 7545: 0xCCEE,
+ 7546: 0xCCEF,
+ 7547: 0xCCF1,
+ 7548: 0xCCF2,
+ 7549: 0xCCF3,
+ 7550: 0xCCF4,
+ 7551: 0xCCF5,
+ 7552: 0xCCF6,
+ 7553: 0xCCF7,
+ 7554: 0xCCF8,
+ 7555: 0xCCF9,
+ 7556: 0xCCFA,
+ 7557: 0xCCFB,
+ 7558: 0xCCFC,
+ 7559: 0xCCFD,
+ 7560: 0x30A1,
+ 7561: 0x30A2,
+ 7562: 0x30A3,
+ 7563: 0x30A4,
+ 7564: 0x30A5,
+ 7565: 0x30A6,
+ 7566: 0x30A7,
+ 7567: 0x30A8,
+ 7568: 0x30A9,
+ 7569: 0x30AA,
+ 7570: 0x30AB,
+ 7571: 0x30AC,
+ 7572: 0x30AD,
+ 7573: 0x30AE,
+ 7574: 0x30AF,
+ 7575: 0x30B0,
+ 7576: 0x30B1,
+ 7577: 0x30B2,
+ 7578: 0x30B3,
+ 7579: 0x30B4,
+ 7580: 0x30B5,
+ 7581: 0x30B6,
+ 7582: 0x30B7,
+ 7583: 0x30B8,
+ 7584: 0x30B9,
+ 7585: 0x30BA,
+ 7586: 0x30BB,
+ 7587: 0x30BC,
+ 7588: 0x30BD,
+ 7589: 0x30BE,
+ 7590: 0x30BF,
+ 7591: 0x30C0,
+ 7592: 0x30C1,
+ 7593: 0x30C2,
+ 7594: 0x30C3,
+ 7595: 0x30C4,
+ 7596: 0x30C5,
+ 7597: 0x30C6,
+ 7598: 0x30C7,
+ 7599: 0x30C8,
+ 7600: 0x30C9,
+ 7601: 0x30CA,
+ 7602: 0x30CB,
+ 7603: 0x30CC,
+ 7604: 0x30CD,
+ 7605: 0x30CE,
+ 7606: 0x30CF,
+ 7607: 0x30D0,
+ 7608: 0x30D1,
+ 7609: 0x30D2,
+ 7610: 0x30D3,
+ 7611: 0x30D4,
+ 7612: 0x30D5,
+ 7613: 0x30D6,
+ 7614: 0x30D7,
+ 7615: 0x30D8,
+ 7616: 0x30D9,
+ 7617: 0x30DA,
+ 7618: 0x30DB,
+ 7619: 0x30DC,
+ 7620: 0x30DD,
+ 7621: 0x30DE,
+ 7622: 0x30DF,
+ 7623: 0x30E0,
+ 7624: 0x30E1,
+ 7625: 0x30E2,
+ 7626: 0x30E3,
+ 7627: 0x30E4,
+ 7628: 0x30E5,
+ 7629: 0x30E6,
+ 7630: 0x30E7,
+ 7631: 0x30E8,
+ 7632: 0x30E9,
+ 7633: 0x30EA,
+ 7634: 0x30EB,
+ 7635: 0x30EC,
+ 7636: 0x30ED,
+ 7637: 0x30EE,
+ 7638: 0x30EF,
+ 7639: 0x30F0,
+ 7640: 0x30F1,
+ 7641: 0x30F2,
+ 7642: 0x30F3,
+ 7643: 0x30F4,
+ 7644: 0x30F5,
+ 7645: 0x30F6,
+ 7654: 0xCCFE,
+ 7655: 0xCCFF,
+ 7656: 0xCD00,
+ 7657: 0xCD02,
+ 7658: 0xCD03,
+ 7659: 0xCD04,
+ 7660: 0xCD05,
+ 7661: 0xCD06,
+ 7662: 0xCD07,
+ 7663: 0xCD0A,
+ 7664: 0xCD0B,
+ 7665: 0xCD0D,
+ 7666: 0xCD0E,
+ 7667: 0xCD0F,
+ 7668: 0xCD11,
+ 7669: 0xCD12,
+ 7670: 0xCD13,
+ 7671: 0xCD14,
+ 7672: 0xCD15,
+ 7673: 0xCD16,
+ 7674: 0xCD17,
+ 7675: 0xCD1A,
+ 7676: 0xCD1C,
+ 7677: 0xCD1E,
+ 7678: 0xCD1F,
+ 7679: 0xCD20,
+ 7680: 0xCD21,
+ 7681: 0xCD22,
+ 7682: 0xCD23,
+ 7683: 0xCD25,
+ 7684: 0xCD26,
+ 7685: 0xCD27,
+ 7686: 0xCD29,
+ 7687: 0xCD2A,
+ 7688: 0xCD2B,
+ 7689: 0xCD2D,
+ 7690: 0xCD2E,
+ 7691: 0xCD2F,
+ 7692: 0xCD30,
+ 7693: 0xCD31,
+ 7694: 0xCD32,
+ 7695: 0xCD33,
+ 7696: 0xCD34,
+ 7697: 0xCD35,
+ 7698: 0xCD36,
+ 7699: 0xCD37,
+ 7700: 0xCD38,
+ 7701: 0xCD3A,
+ 7702: 0xCD3B,
+ 7703: 0xCD3C,
+ 7704: 0xCD3D,
+ 7705: 0xCD3E,
+ 7706: 0xCD3F,
+ 7707: 0xCD40,
+ 7708: 0xCD41,
+ 7709: 0xCD42,
+ 7710: 0xCD43,
+ 7711: 0xCD44,
+ 7712: 0xCD45,
+ 7713: 0xCD46,
+ 7714: 0xCD47,
+ 7715: 0xCD48,
+ 7716: 0xCD49,
+ 7717: 0xCD4A,
+ 7718: 0xCD4B,
+ 7719: 0xCD4C,
+ 7720: 0xCD4D,
+ 7721: 0xCD4E,
+ 7722: 0xCD4F,
+ 7723: 0xCD50,
+ 7724: 0xCD51,
+ 7725: 0xCD52,
+ 7726: 0xCD53,
+ 7727: 0xCD54,
+ 7728: 0xCD55,
+ 7729: 0xCD56,
+ 7730: 0xCD57,
+ 7731: 0xCD58,
+ 7732: 0xCD59,
+ 7733: 0xCD5A,
+ 7734: 0xCD5B,
+ 7735: 0xCD5D,
+ 7736: 0xCD5E,
+ 7737: 0xCD5F,
+ 7738: 0x0410,
+ 7739: 0x0411,
+ 7740: 0x0412,
+ 7741: 0x0413,
+ 7742: 0x0414,
+ 7743: 0x0415,
+ 7744: 0x0401,
+ 7745: 0x0416,
+ 7746: 0x0417,
+ 7747: 0x0418,
+ 7748: 0x0419,
+ 7749: 0x041A,
+ 7750: 0x041B,
+ 7751: 0x041C,
+ 7752: 0x041D,
+ 7753: 0x041E,
+ 7754: 0x041F,
+ 7755: 0x0420,
+ 7756: 0x0421,
+ 7757: 0x0422,
+ 7758: 0x0423,
+ 7759: 0x0424,
+ 7760: 0x0425,
+ 7761: 0x0426,
+ 7762: 0x0427,
+ 7763: 0x0428,
+ 7764: 0x0429,
+ 7765: 0x042A,
+ 7766: 0x042B,
+ 7767: 0x042C,
+ 7768: 0x042D,
+ 7769: 0x042E,
+ 7770: 0x042F,
+ 7786: 0x0430,
+ 7787: 0x0431,
+ 7788: 0x0432,
+ 7789: 0x0433,
+ 7790: 0x0434,
+ 7791: 0x0435,
+ 7792: 0x0451,
+ 7793: 0x0436,
+ 7794: 0x0437,
+ 7795: 0x0438,
+ 7796: 0x0439,
+ 7797: 0x043A,
+ 7798: 0x043B,
+ 7799: 0x043C,
+ 7800: 0x043D,
+ 7801: 0x043E,
+ 7802: 0x043F,
+ 7803: 0x0440,
+ 7804: 0x0441,
+ 7805: 0x0442,
+ 7806: 0x0443,
+ 7807: 0x0444,
+ 7808: 0x0445,
+ 7809: 0x0446,
+ 7810: 0x0447,
+ 7811: 0x0448,
+ 7812: 0x0449,
+ 7813: 0x044A,
+ 7814: 0x044B,
+ 7815: 0x044C,
+ 7816: 0x044D,
+ 7817: 0x044E,
+ 7818: 0x044F,
+ 7832: 0xCD61,
+ 7833: 0xCD62,
+ 7834: 0xCD63,
+ 7835: 0xCD65,
+ 7836: 0xCD66,
+ 7837: 0xCD67,
+ 7838: 0xCD68,
+ 7839: 0xCD69,
+ 7840: 0xCD6A,
+ 7841: 0xCD6B,
+ 7842: 0xCD6E,
+ 7843: 0xCD70,
+ 7844: 0xCD72,
+ 7845: 0xCD73,
+ 7846: 0xCD74,
+ 7847: 0xCD75,
+ 7848: 0xCD76,
+ 7849: 0xCD77,
+ 7850: 0xCD79,
+ 7851: 0xCD7A,
+ 7852: 0xCD7B,
+ 7853: 0xCD7C,
+ 7854: 0xCD7D,
+ 7855: 0xCD7E,
+ 7856: 0xCD7F,
+ 7857: 0xCD80,
+ 7858: 0xCD81,
+ 7859: 0xCD82,
+ 7860: 0xCD83,
+ 7861: 0xCD84,
+ 7862: 0xCD85,
+ 7863: 0xCD86,
+ 7864: 0xCD87,
+ 7865: 0xCD89,
+ 7866: 0xCD8A,
+ 7867: 0xCD8B,
+ 7868: 0xCD8C,
+ 7869: 0xCD8D,
+ 7870: 0xCD8E,
+ 7871: 0xCD8F,
+ 7872: 0xCD90,
+ 7873: 0xCD91,
+ 7874: 0xCD92,
+ 7875: 0xCD93,
+ 7876: 0xCD96,
+ 7877: 0xCD97,
+ 7878: 0xCD99,
+ 7879: 0xCD9A,
+ 7880: 0xCD9B,
+ 7881: 0xCD9D,
+ 7882: 0xCD9E,
+ 7883: 0xCD9F,
+ 7884: 0xCDA0,
+ 7885: 0xCDA1,
+ 7886: 0xCDA2,
+ 7887: 0xCDA3,
+ 7888: 0xCDA6,
+ 7889: 0xCDA8,
+ 7890: 0xCDAA,
+ 7891: 0xCDAB,
+ 7892: 0xCDAC,
+ 7893: 0xCDAD,
+ 7894: 0xCDAE,
+ 7895: 0xCDAF,
+ 7896: 0xCDB1,
+ 7897: 0xCDB2,
+ 7898: 0xCDB3,
+ 7899: 0xCDB4,
+ 7900: 0xCDB5,
+ 7901: 0xCDB6,
+ 7902: 0xCDB7,
+ 7903: 0xCDB8,
+ 7904: 0xCDB9,
+ 7905: 0xCDBA,
+ 7906: 0xCDBB,
+ 7907: 0xCDBC,
+ 7908: 0xCDBD,
+ 7909: 0xCDBE,
+ 7910: 0xCDBF,
+ 7911: 0xCDC0,
+ 7912: 0xCDC1,
+ 7913: 0xCDC2,
+ 7914: 0xCDC3,
+ 7915: 0xCDC5,
+ 8010: 0xCDC6,
+ 8011: 0xCDC7,
+ 8012: 0xCDC8,
+ 8013: 0xCDC9,
+ 8014: 0xCDCA,
+ 8015: 0xCDCB,
+ 8016: 0xCDCD,
+ 8017: 0xCDCE,
+ 8018: 0xCDCF,
+ 8019: 0xCDD1,
+ 8020: 0xCDD2,
+ 8021: 0xCDD3,
+ 8022: 0xCDD4,
+ 8023: 0xCDD5,
+ 8024: 0xCDD6,
+ 8025: 0xCDD7,
+ 8026: 0xCDD8,
+ 8027: 0xCDD9,
+ 8028: 0xCDDA,
+ 8029: 0xCDDB,
+ 8030: 0xCDDC,
+ 8031: 0xCDDD,
+ 8032: 0xCDDE,
+ 8033: 0xCDDF,
+ 8034: 0xCDE0,
+ 8035: 0xCDE1,
+ 8036: 0xCDE2,
+ 8037: 0xCDE3,
+ 8038: 0xCDE4,
+ 8039: 0xCDE5,
+ 8040: 0xCDE6,
+ 8041: 0xCDE7,
+ 8042: 0xCDE9,
+ 8043: 0xCDEA,
+ 8044: 0xCDEB,
+ 8045: 0xCDED,
+ 8046: 0xCDEE,
+ 8047: 0xCDEF,
+ 8048: 0xCDF1,
+ 8049: 0xCDF2,
+ 8050: 0xCDF3,
+ 8051: 0xCDF4,
+ 8052: 0xCDF5,
+ 8053: 0xCDF6,
+ 8054: 0xCDF7,
+ 8055: 0xCDFA,
+ 8056: 0xCDFC,
+ 8057: 0xCDFE,
+ 8058: 0xCDFF,
+ 8059: 0xCE00,
+ 8060: 0xCE01,
+ 8061: 0xCE02,
+ 8062: 0xCE03,
+ 8063: 0xCE05,
+ 8064: 0xCE06,
+ 8065: 0xCE07,
+ 8066: 0xCE09,
+ 8067: 0xCE0A,
+ 8068: 0xCE0B,
+ 8069: 0xCE0D,
+ 8070: 0xCE0E,
+ 8071: 0xCE0F,
+ 8072: 0xCE10,
+ 8073: 0xCE11,
+ 8074: 0xCE12,
+ 8075: 0xCE13,
+ 8076: 0xCE15,
+ 8077: 0xCE16,
+ 8078: 0xCE17,
+ 8079: 0xCE18,
+ 8080: 0xCE1A,
+ 8081: 0xCE1B,
+ 8082: 0xCE1C,
+ 8083: 0xCE1D,
+ 8084: 0xCE1E,
+ 8085: 0xCE1F,
+ 8086: 0xCE22,
+ 8087: 0xCE23,
+ 8088: 0xCE25,
+ 8089: 0xCE26,
+ 8090: 0xCE27,
+ 8091: 0xCE29,
+ 8092: 0xCE2A,
+ 8093: 0xCE2B,
+ 8188: 0xCE2C,
+ 8189: 0xCE2D,
+ 8190: 0xCE2E,
+ 8191: 0xCE2F,
+ 8192: 0xCE32,
+ 8193: 0xCE34,
+ 8194: 0xCE36,
+ 8195: 0xCE37,
+ 8196: 0xCE38,
+ 8197: 0xCE39,
+ 8198: 0xCE3A,
+ 8199: 0xCE3B,
+ 8200: 0xCE3C,
+ 8201: 0xCE3D,
+ 8202: 0xCE3E,
+ 8203: 0xCE3F,
+ 8204: 0xCE40,
+ 8205: 0xCE41,
+ 8206: 0xCE42,
+ 8207: 0xCE43,
+ 8208: 0xCE44,
+ 8209: 0xCE45,
+ 8210: 0xCE46,
+ 8211: 0xCE47,
+ 8212: 0xCE48,
+ 8213: 0xCE49,
+ 8214: 0xCE4A,
+ 8215: 0xCE4B,
+ 8216: 0xCE4C,
+ 8217: 0xCE4D,
+ 8218: 0xCE4E,
+ 8219: 0xCE4F,
+ 8220: 0xCE50,
+ 8221: 0xCE51,
+ 8222: 0xCE52,
+ 8223: 0xCE53,
+ 8224: 0xCE54,
+ 8225: 0xCE55,
+ 8226: 0xCE56,
+ 8227: 0xCE57,
+ 8228: 0xCE5A,
+ 8229: 0xCE5B,
+ 8230: 0xCE5D,
+ 8231: 0xCE5E,
+ 8232: 0xCE62,
+ 8233: 0xCE63,
+ 8234: 0xCE64,
+ 8235: 0xCE65,
+ 8236: 0xCE66,
+ 8237: 0xCE67,
+ 8238: 0xCE6A,
+ 8239: 0xCE6C,
+ 8240: 0xCE6E,
+ 8241: 0xCE6F,
+ 8242: 0xCE70,
+ 8243: 0xCE71,
+ 8244: 0xCE72,
+ 8245: 0xCE73,
+ 8246: 0xCE76,
+ 8247: 0xCE77,
+ 8248: 0xCE79,
+ 8249: 0xCE7A,
+ 8250: 0xCE7B,
+ 8251: 0xCE7D,
+ 8252: 0xCE7E,
+ 8253: 0xCE7F,
+ 8254: 0xCE80,
+ 8255: 0xCE81,
+ 8256: 0xCE82,
+ 8257: 0xCE83,
+ 8258: 0xCE86,
+ 8259: 0xCE88,
+ 8260: 0xCE8A,
+ 8261: 0xCE8B,
+ 8262: 0xCE8C,
+ 8263: 0xCE8D,
+ 8264: 0xCE8E,
+ 8265: 0xCE8F,
+ 8266: 0xCE92,
+ 8267: 0xCE93,
+ 8268: 0xCE95,
+ 8269: 0xCE96,
+ 8270: 0xCE97,
+ 8271: 0xCE99,
+ 8366: 0xCE9A,
+ 8367: 0xCE9B,
+ 8368: 0xCE9C,
+ 8369: 0xCE9D,
+ 8370: 0xCE9E,
+ 8371: 0xCE9F,
+ 8372: 0xCEA2,
+ 8373: 0xCEA6,
+ 8374: 0xCEA7,
+ 8375: 0xCEA8,
+ 8376: 0xCEA9,
+ 8377: 0xCEAA,
+ 8378: 0xCEAB,
+ 8379: 0xCEAE,
+ 8380: 0xCEAF,
+ 8381: 0xCEB0,
+ 8382: 0xCEB1,
+ 8383: 0xCEB2,
+ 8384: 0xCEB3,
+ 8385: 0xCEB4,
+ 8386: 0xCEB5,
+ 8387: 0xCEB6,
+ 8388: 0xCEB7,
+ 8389: 0xCEB8,
+ 8390: 0xCEB9,
+ 8391: 0xCEBA,
+ 8392: 0xCEBB,
+ 8393: 0xCEBC,
+ 8394: 0xCEBD,
+ 8395: 0xCEBE,
+ 8396: 0xCEBF,
+ 8397: 0xCEC0,
+ 8398: 0xCEC2,
+ 8399: 0xCEC3,
+ 8400: 0xCEC4,
+ 8401: 0xCEC5,
+ 8402: 0xCEC6,
+ 8403: 0xCEC7,
+ 8404: 0xCEC8,
+ 8405: 0xCEC9,
+ 8406: 0xCECA,
+ 8407: 0xCECB,
+ 8408: 0xCECC,
+ 8409: 0xCECD,
+ 8410: 0xCECE,
+ 8411: 0xCECF,
+ 8412: 0xCED0,
+ 8413: 0xCED1,
+ 8414: 0xCED2,
+ 8415: 0xCED3,
+ 8416: 0xCED4,
+ 8417: 0xCED5,
+ 8418: 0xCED6,
+ 8419: 0xCED7,
+ 8420: 0xCED8,
+ 8421: 0xCED9,
+ 8422: 0xCEDA,
+ 8423: 0xCEDB,
+ 8424: 0xCEDC,
+ 8425: 0xCEDD,
+ 8426: 0xCEDE,
+ 8427: 0xCEDF,
+ 8428: 0xCEE0,
+ 8429: 0xCEE1,
+ 8430: 0xCEE2,
+ 8431: 0xCEE3,
+ 8432: 0xCEE6,
+ 8433: 0xCEE7,
+ 8434: 0xCEE9,
+ 8435: 0xCEEA,
+ 8436: 0xCEED,
+ 8437: 0xCEEE,
+ 8438: 0xCEEF,
+ 8439: 0xCEF0,
+ 8440: 0xCEF1,
+ 8441: 0xCEF2,
+ 8442: 0xCEF3,
+ 8443: 0xCEF6,
+ 8444: 0xCEFA,
+ 8445: 0xCEFB,
+ 8446: 0xCEFC,
+ 8447: 0xCEFD,
+ 8448: 0xCEFE,
+ 8449: 0xCEFF,
+ 8450: 0xAC00,
+ 8451: 0xAC01,
+ 8452: 0xAC04,
+ 8453: 0xAC07,
+ 8454: 0xAC08,
+ 8455: 0xAC09,
+ 8456: 0xAC0A,
+ 8457: 0xAC10,
+ 8458: 0xAC11,
+ 8459: 0xAC12,
+ 8460: 0xAC13,
+ 8461: 0xAC14,
+ 8462: 0xAC15,
+ 8463: 0xAC16,
+ 8464: 0xAC17,
+ 8465: 0xAC19,
+ 8466: 0xAC1A,
+ 8467: 0xAC1B,
+ 8468: 0xAC1C,
+ 8469: 0xAC1D,
+ 8470: 0xAC20,
+ 8471: 0xAC24,
+ 8472: 0xAC2C,
+ 8473: 0xAC2D,
+ 8474: 0xAC2F,
+ 8475: 0xAC30,
+ 8476: 0xAC31,
+ 8477: 0xAC38,
+ 8478: 0xAC39,
+ 8479: 0xAC3C,
+ 8480: 0xAC40,
+ 8481: 0xAC4B,
+ 8482: 0xAC4D,
+ 8483: 0xAC54,
+ 8484: 0xAC58,
+ 8485: 0xAC5C,
+ 8486: 0xAC70,
+ 8487: 0xAC71,
+ 8488: 0xAC74,
+ 8489: 0xAC77,
+ 8490: 0xAC78,
+ 8491: 0xAC7A,
+ 8492: 0xAC80,
+ 8493: 0xAC81,
+ 8494: 0xAC83,
+ 8495: 0xAC84,
+ 8496: 0xAC85,
+ 8497: 0xAC86,
+ 8498: 0xAC89,
+ 8499: 0xAC8A,
+ 8500: 0xAC8B,
+ 8501: 0xAC8C,
+ 8502: 0xAC90,
+ 8503: 0xAC94,
+ 8504: 0xAC9C,
+ 8505: 0xAC9D,
+ 8506: 0xAC9F,
+ 8507: 0xACA0,
+ 8508: 0xACA1,
+ 8509: 0xACA8,
+ 8510: 0xACA9,
+ 8511: 0xACAA,
+ 8512: 0xACAC,
+ 8513: 0xACAF,
+ 8514: 0xACB0,
+ 8515: 0xACB8,
+ 8516: 0xACB9,
+ 8517: 0xACBB,
+ 8518: 0xACBC,
+ 8519: 0xACBD,
+ 8520: 0xACC1,
+ 8521: 0xACC4,
+ 8522: 0xACC8,
+ 8523: 0xACCC,
+ 8524: 0xACD5,
+ 8525: 0xACD7,
+ 8526: 0xACE0,
+ 8527: 0xACE1,
+ 8528: 0xACE4,
+ 8529: 0xACE7,
+ 8530: 0xACE8,
+ 8531: 0xACEA,
+ 8532: 0xACEC,
+ 8533: 0xACEF,
+ 8534: 0xACF0,
+ 8535: 0xACF1,
+ 8536: 0xACF3,
+ 8537: 0xACF5,
+ 8538: 0xACF6,
+ 8539: 0xACFC,
+ 8540: 0xACFD,
+ 8541: 0xAD00,
+ 8542: 0xAD04,
+ 8543: 0xAD06,
+ 8544: 0xCF02,
+ 8545: 0xCF03,
+ 8546: 0xCF05,
+ 8547: 0xCF06,
+ 8548: 0xCF07,
+ 8549: 0xCF09,
+ 8550: 0xCF0A,
+ 8551: 0xCF0B,
+ 8552: 0xCF0C,
+ 8553: 0xCF0D,
+ 8554: 0xCF0E,
+ 8555: 0xCF0F,
+ 8556: 0xCF12,
+ 8557: 0xCF14,
+ 8558: 0xCF16,
+ 8559: 0xCF17,
+ 8560: 0xCF18,
+ 8561: 0xCF19,
+ 8562: 0xCF1A,
+ 8563: 0xCF1B,
+ 8564: 0xCF1D,
+ 8565: 0xCF1E,
+ 8566: 0xCF1F,
+ 8567: 0xCF21,
+ 8568: 0xCF22,
+ 8569: 0xCF23,
+ 8570: 0xCF25,
+ 8571: 0xCF26,
+ 8572: 0xCF27,
+ 8573: 0xCF28,
+ 8574: 0xCF29,
+ 8575: 0xCF2A,
+ 8576: 0xCF2B,
+ 8577: 0xCF2E,
+ 8578: 0xCF32,
+ 8579: 0xCF33,
+ 8580: 0xCF34,
+ 8581: 0xCF35,
+ 8582: 0xCF36,
+ 8583: 0xCF37,
+ 8584: 0xCF39,
+ 8585: 0xCF3A,
+ 8586: 0xCF3B,
+ 8587: 0xCF3C,
+ 8588: 0xCF3D,
+ 8589: 0xCF3E,
+ 8590: 0xCF3F,
+ 8591: 0xCF40,
+ 8592: 0xCF41,
+ 8593: 0xCF42,
+ 8594: 0xCF43,
+ 8595: 0xCF44,
+ 8596: 0xCF45,
+ 8597: 0xCF46,
+ 8598: 0xCF47,
+ 8599: 0xCF48,
+ 8600: 0xCF49,
+ 8601: 0xCF4A,
+ 8602: 0xCF4B,
+ 8603: 0xCF4C,
+ 8604: 0xCF4D,
+ 8605: 0xCF4E,
+ 8606: 0xCF4F,
+ 8607: 0xCF50,
+ 8608: 0xCF51,
+ 8609: 0xCF52,
+ 8610: 0xCF53,
+ 8611: 0xCF56,
+ 8612: 0xCF57,
+ 8613: 0xCF59,
+ 8614: 0xCF5A,
+ 8615: 0xCF5B,
+ 8616: 0xCF5D,
+ 8617: 0xCF5E,
+ 8618: 0xCF5F,
+ 8619: 0xCF60,
+ 8620: 0xCF61,
+ 8621: 0xCF62,
+ 8622: 0xCF63,
+ 8623: 0xCF66,
+ 8624: 0xCF68,
+ 8625: 0xCF6A,
+ 8626: 0xCF6B,
+ 8627: 0xCF6C,
+ 8628: 0xAD0C,
+ 8629: 0xAD0D,
+ 8630: 0xAD0F,
+ 8631: 0xAD11,
+ 8632: 0xAD18,
+ 8633: 0xAD1C,
+ 8634: 0xAD20,
+ 8635: 0xAD29,
+ 8636: 0xAD2C,
+ 8637: 0xAD2D,
+ 8638: 0xAD34,
+ 8639: 0xAD35,
+ 8640: 0xAD38,
+ 8641: 0xAD3C,
+ 8642: 0xAD44,
+ 8643: 0xAD45,
+ 8644: 0xAD47,
+ 8645: 0xAD49,
+ 8646: 0xAD50,
+ 8647: 0xAD54,
+ 8648: 0xAD58,
+ 8649: 0xAD61,
+ 8650: 0xAD63,
+ 8651: 0xAD6C,
+ 8652: 0xAD6D,
+ 8653: 0xAD70,
+ 8654: 0xAD73,
+ 8655: 0xAD74,
+ 8656: 0xAD75,
+ 8657: 0xAD76,
+ 8658: 0xAD7B,
+ 8659: 0xAD7C,
+ 8660: 0xAD7D,
+ 8661: 0xAD7F,
+ 8662: 0xAD81,
+ 8663: 0xAD82,
+ 8664: 0xAD88,
+ 8665: 0xAD89,
+ 8666: 0xAD8C,
+ 8667: 0xAD90,
+ 8668: 0xAD9C,
+ 8669: 0xAD9D,
+ 8670: 0xADA4,
+ 8671: 0xADB7,
+ 8672: 0xADC0,
+ 8673: 0xADC1,
+ 8674: 0xADC4,
+ 8675: 0xADC8,
+ 8676: 0xADD0,
+ 8677: 0xADD1,
+ 8678: 0xADD3,
+ 8679: 0xADDC,
+ 8680: 0xADE0,
+ 8681: 0xADE4,
+ 8682: 0xADF8,
+ 8683: 0xADF9,
+ 8684: 0xADFC,
+ 8685: 0xADFF,
+ 8686: 0xAE00,
+ 8687: 0xAE01,
+ 8688: 0xAE08,
+ 8689: 0xAE09,
+ 8690: 0xAE0B,
+ 8691: 0xAE0D,
+ 8692: 0xAE14,
+ 8693: 0xAE30,
+ 8694: 0xAE31,
+ 8695: 0xAE34,
+ 8696: 0xAE37,
+ 8697: 0xAE38,
+ 8698: 0xAE3A,
+ 8699: 0xAE40,
+ 8700: 0xAE41,
+ 8701: 0xAE43,
+ 8702: 0xAE45,
+ 8703: 0xAE46,
+ 8704: 0xAE4A,
+ 8705: 0xAE4C,
+ 8706: 0xAE4D,
+ 8707: 0xAE4E,
+ 8708: 0xAE50,
+ 8709: 0xAE54,
+ 8710: 0xAE56,
+ 8711: 0xAE5C,
+ 8712: 0xAE5D,
+ 8713: 0xAE5F,
+ 8714: 0xAE60,
+ 8715: 0xAE61,
+ 8716: 0xAE65,
+ 8717: 0xAE68,
+ 8718: 0xAE69,
+ 8719: 0xAE6C,
+ 8720: 0xAE70,
+ 8721: 0xAE78,
+ 8722: 0xCF6D,
+ 8723: 0xCF6E,
+ 8724: 0xCF6F,
+ 8725: 0xCF72,
+ 8726: 0xCF73,
+ 8727: 0xCF75,
+ 8728: 0xCF76,
+ 8729: 0xCF77,
+ 8730: 0xCF79,
+ 8731: 0xCF7A,
+ 8732: 0xCF7B,
+ 8733: 0xCF7C,
+ 8734: 0xCF7D,
+ 8735: 0xCF7E,
+ 8736: 0xCF7F,
+ 8737: 0xCF81,
+ 8738: 0xCF82,
+ 8739: 0xCF83,
+ 8740: 0xCF84,
+ 8741: 0xCF86,
+ 8742: 0xCF87,
+ 8743: 0xCF88,
+ 8744: 0xCF89,
+ 8745: 0xCF8A,
+ 8746: 0xCF8B,
+ 8747: 0xCF8D,
+ 8748: 0xCF8E,
+ 8749: 0xCF8F,
+ 8750: 0xCF90,
+ 8751: 0xCF91,
+ 8752: 0xCF92,
+ 8753: 0xCF93,
+ 8754: 0xCF94,
+ 8755: 0xCF95,
+ 8756: 0xCF96,
+ 8757: 0xCF97,
+ 8758: 0xCF98,
+ 8759: 0xCF99,
+ 8760: 0xCF9A,
+ 8761: 0xCF9B,
+ 8762: 0xCF9C,
+ 8763: 0xCF9D,
+ 8764: 0xCF9E,
+ 8765: 0xCF9F,
+ 8766: 0xCFA0,
+ 8767: 0xCFA2,
+ 8768: 0xCFA3,
+ 8769: 0xCFA4,
+ 8770: 0xCFA5,
+ 8771: 0xCFA6,
+ 8772: 0xCFA7,
+ 8773: 0xCFA9,
+ 8774: 0xCFAA,
+ 8775: 0xCFAB,
+ 8776: 0xCFAC,
+ 8777: 0xCFAD,
+ 8778: 0xCFAE,
+ 8779: 0xCFAF,
+ 8780: 0xCFB1,
+ 8781: 0xCFB2,
+ 8782: 0xCFB3,
+ 8783: 0xCFB4,
+ 8784: 0xCFB5,
+ 8785: 0xCFB6,
+ 8786: 0xCFB7,
+ 8787: 0xCFB8,
+ 8788: 0xCFB9,
+ 8789: 0xCFBA,
+ 8790: 0xCFBB,
+ 8791: 0xCFBC,
+ 8792: 0xCFBD,
+ 8793: 0xCFBE,
+ 8794: 0xCFBF,
+ 8795: 0xCFC0,
+ 8796: 0xCFC1,
+ 8797: 0xCFC2,
+ 8798: 0xCFC3,
+ 8799: 0xCFC5,
+ 8800: 0xCFC6,
+ 8801: 0xCFC7,
+ 8802: 0xCFC8,
+ 8803: 0xCFC9,
+ 8804: 0xCFCA,
+ 8805: 0xCFCB,
+ 8806: 0xAE79,
+ 8807: 0xAE7B,
+ 8808: 0xAE7C,
+ 8809: 0xAE7D,
+ 8810: 0xAE84,
+ 8811: 0xAE85,
+ 8812: 0xAE8C,
+ 8813: 0xAEBC,
+ 8814: 0xAEBD,
+ 8815: 0xAEBE,
+ 8816: 0xAEC0,
+ 8817: 0xAEC4,
+ 8818: 0xAECC,
+ 8819: 0xAECD,
+ 8820: 0xAECF,
+ 8821: 0xAED0,
+ 8822: 0xAED1,
+ 8823: 0xAED8,
+ 8824: 0xAED9,
+ 8825: 0xAEDC,
+ 8826: 0xAEE8,
+ 8827: 0xAEEB,
+ 8828: 0xAEED,
+ 8829: 0xAEF4,
+ 8830: 0xAEF8,
+ 8831: 0xAEFC,
+ 8832: 0xAF07,
+ 8833: 0xAF08,
+ 8834: 0xAF0D,
+ 8835: 0xAF10,
+ 8836: 0xAF2C,
+ 8837: 0xAF2D,
+ 8838: 0xAF30,
+ 8839: 0xAF32,
+ 8840: 0xAF34,
+ 8841: 0xAF3C,
+ 8842: 0xAF3D,
+ 8843: 0xAF3F,
+ 8844: 0xAF41,
+ 8845: 0xAF42,
+ 8846: 0xAF43,
+ 8847: 0xAF48,
+ 8848: 0xAF49,
+ 8849: 0xAF50,
+ 8850: 0xAF5C,
+ 8851: 0xAF5D,
+ 8852: 0xAF64,
+ 8853: 0xAF65,
+ 8854: 0xAF79,
+ 8855: 0xAF80,
+ 8856: 0xAF84,
+ 8857: 0xAF88,
+ 8858: 0xAF90,
+ 8859: 0xAF91,
+ 8860: 0xAF95,
+ 8861: 0xAF9C,
+ 8862: 0xAFB8,
+ 8863: 0xAFB9,
+ 8864: 0xAFBC,
+ 8865: 0xAFC0,
+ 8866: 0xAFC7,
+ 8867: 0xAFC8,
+ 8868: 0xAFC9,
+ 8869: 0xAFCB,
+ 8870: 0xAFCD,
+ 8871: 0xAFCE,
+ 8872: 0xAFD4,
+ 8873: 0xAFDC,
+ 8874: 0xAFE8,
+ 8875: 0xAFE9,
+ 8876: 0xAFF0,
+ 8877: 0xAFF1,
+ 8878: 0xAFF4,
+ 8879: 0xAFF8,
+ 8880: 0xB000,
+ 8881: 0xB001,
+ 8882: 0xB004,
+ 8883: 0xB00C,
+ 8884: 0xB010,
+ 8885: 0xB014,
+ 8886: 0xB01C,
+ 8887: 0xB01D,
+ 8888: 0xB028,
+ 8889: 0xB044,
+ 8890: 0xB045,
+ 8891: 0xB048,
+ 8892: 0xB04A,
+ 8893: 0xB04C,
+ 8894: 0xB04E,
+ 8895: 0xB053,
+ 8896: 0xB054,
+ 8897: 0xB055,
+ 8898: 0xB057,
+ 8899: 0xB059,
+ 8900: 0xCFCC,
+ 8901: 0xCFCD,
+ 8902: 0xCFCE,
+ 8903: 0xCFCF,
+ 8904: 0xCFD0,
+ 8905: 0xCFD1,
+ 8906: 0xCFD2,
+ 8907: 0xCFD3,
+ 8908: 0xCFD4,
+ 8909: 0xCFD5,
+ 8910: 0xCFD6,
+ 8911: 0xCFD7,
+ 8912: 0xCFD8,
+ 8913: 0xCFD9,
+ 8914: 0xCFDA,
+ 8915: 0xCFDB,
+ 8916: 0xCFDC,
+ 8917: 0xCFDD,
+ 8918: 0xCFDE,
+ 8919: 0xCFDF,
+ 8920: 0xCFE2,
+ 8921: 0xCFE3,
+ 8922: 0xCFE5,
+ 8923: 0xCFE6,
+ 8924: 0xCFE7,
+ 8925: 0xCFE9,
+ 8926: 0xCFEA,
+ 8927: 0xCFEB,
+ 8928: 0xCFEC,
+ 8929: 0xCFED,
+ 8930: 0xCFEE,
+ 8931: 0xCFEF,
+ 8932: 0xCFF2,
+ 8933: 0xCFF4,
+ 8934: 0xCFF6,
+ 8935: 0xCFF7,
+ 8936: 0xCFF8,
+ 8937: 0xCFF9,
+ 8938: 0xCFFA,
+ 8939: 0xCFFB,
+ 8940: 0xCFFD,
+ 8941: 0xCFFE,
+ 8942: 0xCFFF,
+ 8943: 0xD001,
+ 8944: 0xD002,
+ 8945: 0xD003,
+ 8946: 0xD005,
+ 8947: 0xD006,
+ 8948: 0xD007,
+ 8949: 0xD008,
+ 8950: 0xD009,
+ 8951: 0xD00A,
+ 8952: 0xD00B,
+ 8953: 0xD00C,
+ 8954: 0xD00D,
+ 8955: 0xD00E,
+ 8956: 0xD00F,
+ 8957: 0xD010,
+ 8958: 0xD012,
+ 8959: 0xD013,
+ 8960: 0xD014,
+ 8961: 0xD015,
+ 8962: 0xD016,
+ 8963: 0xD017,
+ 8964: 0xD019,
+ 8965: 0xD01A,
+ 8966: 0xD01B,
+ 8967: 0xD01C,
+ 8968: 0xD01D,
+ 8969: 0xD01E,
+ 8970: 0xD01F,
+ 8971: 0xD020,
+ 8972: 0xD021,
+ 8973: 0xD022,
+ 8974: 0xD023,
+ 8975: 0xD024,
+ 8976: 0xD025,
+ 8977: 0xD026,
+ 8978: 0xD027,
+ 8979: 0xD028,
+ 8980: 0xD029,
+ 8981: 0xD02A,
+ 8982: 0xD02B,
+ 8983: 0xD02C,
+ 8984: 0xB05D,
+ 8985: 0xB07C,
+ 8986: 0xB07D,
+ 8987: 0xB080,
+ 8988: 0xB084,
+ 8989: 0xB08C,
+ 8990: 0xB08D,
+ 8991: 0xB08F,
+ 8992: 0xB091,
+ 8993: 0xB098,
+ 8994: 0xB099,
+ 8995: 0xB09A,
+ 8996: 0xB09C,
+ 8997: 0xB09F,
+ 8998: 0xB0A0,
+ 8999: 0xB0A1,
+ 9000: 0xB0A2,
+ 9001: 0xB0A8,
+ 9002: 0xB0A9,
+ 9003: 0xB0AB,
+ 9004: 0xB0AC,
+ 9005: 0xB0AD,
+ 9006: 0xB0AE,
+ 9007: 0xB0AF,
+ 9008: 0xB0B1,
+ 9009: 0xB0B3,
+ 9010: 0xB0B4,
+ 9011: 0xB0B5,
+ 9012: 0xB0B8,
+ 9013: 0xB0BC,
+ 9014: 0xB0C4,
+ 9015: 0xB0C5,
+ 9016: 0xB0C7,
+ 9017: 0xB0C8,
+ 9018: 0xB0C9,
+ 9019: 0xB0D0,
+ 9020: 0xB0D1,
+ 9021: 0xB0D4,
+ 9022: 0xB0D8,
+ 9023: 0xB0E0,
+ 9024: 0xB0E5,
+ 9025: 0xB108,
+ 9026: 0xB109,
+ 9027: 0xB10B,
+ 9028: 0xB10C,
+ 9029: 0xB110,
+ 9030: 0xB112,
+ 9031: 0xB113,
+ 9032: 0xB118,
+ 9033: 0xB119,
+ 9034: 0xB11B,
+ 9035: 0xB11C,
+ 9036: 0xB11D,
+ 9037: 0xB123,
+ 9038: 0xB124,
+ 9039: 0xB125,
+ 9040: 0xB128,
+ 9041: 0xB12C,
+ 9042: 0xB134,
+ 9043: 0xB135,
+ 9044: 0xB137,
+ 9045: 0xB138,
+ 9046: 0xB139,
+ 9047: 0xB140,
+ 9048: 0xB141,
+ 9049: 0xB144,
+ 9050: 0xB148,
+ 9051: 0xB150,
+ 9052: 0xB151,
+ 9053: 0xB154,
+ 9054: 0xB155,
+ 9055: 0xB158,
+ 9056: 0xB15C,
+ 9057: 0xB160,
+ 9058: 0xB178,
+ 9059: 0xB179,
+ 9060: 0xB17C,
+ 9061: 0xB180,
+ 9062: 0xB182,
+ 9063: 0xB188,
+ 9064: 0xB189,
+ 9065: 0xB18B,
+ 9066: 0xB18D,
+ 9067: 0xB192,
+ 9068: 0xB193,
+ 9069: 0xB194,
+ 9070: 0xB198,
+ 9071: 0xB19C,
+ 9072: 0xB1A8,
+ 9073: 0xB1CC,
+ 9074: 0xB1D0,
+ 9075: 0xB1D4,
+ 9076: 0xB1DC,
+ 9077: 0xB1DD,
+ 9078: 0xD02E,
+ 9079: 0xD02F,
+ 9080: 0xD030,
+ 9081: 0xD031,
+ 9082: 0xD032,
+ 9083: 0xD033,
+ 9084: 0xD036,
+ 9085: 0xD037,
+ 9086: 0xD039,
+ 9087: 0xD03A,
+ 9088: 0xD03B,
+ 9089: 0xD03D,
+ 9090: 0xD03E,
+ 9091: 0xD03F,
+ 9092: 0xD040,
+ 9093: 0xD041,
+ 9094: 0xD042,
+ 9095: 0xD043,
+ 9096: 0xD046,
+ 9097: 0xD048,
+ 9098: 0xD04A,
+ 9099: 0xD04B,
+ 9100: 0xD04C,
+ 9101: 0xD04D,
+ 9102: 0xD04E,
+ 9103: 0xD04F,
+ 9104: 0xD051,
+ 9105: 0xD052,
+ 9106: 0xD053,
+ 9107: 0xD055,
+ 9108: 0xD056,
+ 9109: 0xD057,
+ 9110: 0xD059,
+ 9111: 0xD05A,
+ 9112: 0xD05B,
+ 9113: 0xD05C,
+ 9114: 0xD05D,
+ 9115: 0xD05E,
+ 9116: 0xD05F,
+ 9117: 0xD061,
+ 9118: 0xD062,
+ 9119: 0xD063,
+ 9120: 0xD064,
+ 9121: 0xD065,
+ 9122: 0xD066,
+ 9123: 0xD067,
+ 9124: 0xD068,
+ 9125: 0xD069,
+ 9126: 0xD06A,
+ 9127: 0xD06B,
+ 9128: 0xD06E,
+ 9129: 0xD06F,
+ 9130: 0xD071,
+ 9131: 0xD072,
+ 9132: 0xD073,
+ 9133: 0xD075,
+ 9134: 0xD076,
+ 9135: 0xD077,
+ 9136: 0xD078,
+ 9137: 0xD079,
+ 9138: 0xD07A,
+ 9139: 0xD07B,
+ 9140: 0xD07E,
+ 9141: 0xD07F,
+ 9142: 0xD080,
+ 9143: 0xD082,
+ 9144: 0xD083,
+ 9145: 0xD084,
+ 9146: 0xD085,
+ 9147: 0xD086,
+ 9148: 0xD087,
+ 9149: 0xD088,
+ 9150: 0xD089,
+ 9151: 0xD08A,
+ 9152: 0xD08B,
+ 9153: 0xD08C,
+ 9154: 0xD08D,
+ 9155: 0xD08E,
+ 9156: 0xD08F,
+ 9157: 0xD090,
+ 9158: 0xD091,
+ 9159: 0xD092,
+ 9160: 0xD093,
+ 9161: 0xD094,
+ 9162: 0xB1DF,
+ 9163: 0xB1E8,
+ 9164: 0xB1E9,
+ 9165: 0xB1EC,
+ 9166: 0xB1F0,
+ 9167: 0xB1F9,
+ 9168: 0xB1FB,
+ 9169: 0xB1FD,
+ 9170: 0xB204,
+ 9171: 0xB205,
+ 9172: 0xB208,
+ 9173: 0xB20B,
+ 9174: 0xB20C,
+ 9175: 0xB214,
+ 9176: 0xB215,
+ 9177: 0xB217,
+ 9178: 0xB219,
+ 9179: 0xB220,
+ 9180: 0xB234,
+ 9181: 0xB23C,
+ 9182: 0xB258,
+ 9183: 0xB25C,
+ 9184: 0xB260,
+ 9185: 0xB268,
+ 9186: 0xB269,
+ 9187: 0xB274,
+ 9188: 0xB275,
+ 9189: 0xB27C,
+ 9190: 0xB284,
+ 9191: 0xB285,
+ 9192: 0xB289,
+ 9193: 0xB290,
+ 9194: 0xB291,
+ 9195: 0xB294,
+ 9196: 0xB298,
+ 9197: 0xB299,
+ 9198: 0xB29A,
+ 9199: 0xB2A0,
+ 9200: 0xB2A1,
+ 9201: 0xB2A3,
+ 9202: 0xB2A5,
+ 9203: 0xB2A6,
+ 9204: 0xB2AA,
+ 9205: 0xB2AC,
+ 9206: 0xB2B0,
+ 9207: 0xB2B4,
+ 9208: 0xB2C8,
+ 9209: 0xB2C9,
+ 9210: 0xB2CC,
+ 9211: 0xB2D0,
+ 9212: 0xB2D2,
+ 9213: 0xB2D8,
+ 9214: 0xB2D9,
+ 9215: 0xB2DB,
+ 9216: 0xB2DD,
+ 9217: 0xB2E2,
+ 9218: 0xB2E4,
+ 9219: 0xB2E5,
+ 9220: 0xB2E6,
+ 9221: 0xB2E8,
+ 9222: 0xB2EB,
+ 9223: 0xB2EC,
+ 9224: 0xB2ED,
+ 9225: 0xB2EE,
+ 9226: 0xB2EF,
+ 9227: 0xB2F3,
+ 9228: 0xB2F4,
+ 9229: 0xB2F5,
+ 9230: 0xB2F7,
+ 9231: 0xB2F8,
+ 9232: 0xB2F9,
+ 9233: 0xB2FA,
+ 9234: 0xB2FB,
+ 9235: 0xB2FF,
+ 9236: 0xB300,
+ 9237: 0xB301,
+ 9238: 0xB304,
+ 9239: 0xB308,
+ 9240: 0xB310,
+ 9241: 0xB311,
+ 9242: 0xB313,
+ 9243: 0xB314,
+ 9244: 0xB315,
+ 9245: 0xB31C,
+ 9246: 0xB354,
+ 9247: 0xB355,
+ 9248: 0xB356,
+ 9249: 0xB358,
+ 9250: 0xB35B,
+ 9251: 0xB35C,
+ 9252: 0xB35E,
+ 9253: 0xB35F,
+ 9254: 0xB364,
+ 9255: 0xB365,
+ 9256: 0xD095,
+ 9257: 0xD096,
+ 9258: 0xD097,
+ 9259: 0xD098,
+ 9260: 0xD099,
+ 9261: 0xD09A,
+ 9262: 0xD09B,
+ 9263: 0xD09C,
+ 9264: 0xD09D,
+ 9265: 0xD09E,
+ 9266: 0xD09F,
+ 9267: 0xD0A0,
+ 9268: 0xD0A1,
+ 9269: 0xD0A2,
+ 9270: 0xD0A3,
+ 9271: 0xD0A6,
+ 9272: 0xD0A7,
+ 9273: 0xD0A9,
+ 9274: 0xD0AA,
+ 9275: 0xD0AB,
+ 9276: 0xD0AD,
+ 9277: 0xD0AE,
+ 9278: 0xD0AF,
+ 9279: 0xD0B0,
+ 9280: 0xD0B1,
+ 9281: 0xD0B2,
+ 9282: 0xD0B3,
+ 9283: 0xD0B6,
+ 9284: 0xD0B8,
+ 9285: 0xD0BA,
+ 9286: 0xD0BB,
+ 9287: 0xD0BC,
+ 9288: 0xD0BD,
+ 9289: 0xD0BE,
+ 9290: 0xD0BF,
+ 9291: 0xD0C2,
+ 9292: 0xD0C3,
+ 9293: 0xD0C5,
+ 9294: 0xD0C6,
+ 9295: 0xD0C7,
+ 9296: 0xD0CA,
+ 9297: 0xD0CB,
+ 9298: 0xD0CC,
+ 9299: 0xD0CD,
+ 9300: 0xD0CE,
+ 9301: 0xD0CF,
+ 9302: 0xD0D2,
+ 9303: 0xD0D6,
+ 9304: 0xD0D7,
+ 9305: 0xD0D8,
+ 9306: 0xD0D9,
+ 9307: 0xD0DA,
+ 9308: 0xD0DB,
+ 9309: 0xD0DE,
+ 9310: 0xD0DF,
+ 9311: 0xD0E1,
+ 9312: 0xD0E2,
+ 9313: 0xD0E3,
+ 9314: 0xD0E5,
+ 9315: 0xD0E6,
+ 9316: 0xD0E7,
+ 9317: 0xD0E8,
+ 9318: 0xD0E9,
+ 9319: 0xD0EA,
+ 9320: 0xD0EB,
+ 9321: 0xD0EE,
+ 9322: 0xD0F2,
+ 9323: 0xD0F3,
+ 9324: 0xD0F4,
+ 9325: 0xD0F5,
+ 9326: 0xD0F6,
+ 9327: 0xD0F7,
+ 9328: 0xD0F9,
+ 9329: 0xD0FA,
+ 9330: 0xD0FB,
+ 9331: 0xD0FC,
+ 9332: 0xD0FD,
+ 9333: 0xD0FE,
+ 9334: 0xD0FF,
+ 9335: 0xD100,
+ 9336: 0xD101,
+ 9337: 0xD102,
+ 9338: 0xD103,
+ 9339: 0xD104,
+ 9340: 0xB367,
+ 9341: 0xB369,
+ 9342: 0xB36B,
+ 9343: 0xB36E,
+ 9344: 0xB370,
+ 9345: 0xB371,
+ 9346: 0xB374,
+ 9347: 0xB378,
+ 9348: 0xB380,
+ 9349: 0xB381,
+ 9350: 0xB383,
+ 9351: 0xB384,
+ 9352: 0xB385,
+ 9353: 0xB38C,
+ 9354: 0xB390,
+ 9355: 0xB394,
+ 9356: 0xB3A0,
+ 9357: 0xB3A1,
+ 9358: 0xB3A8,
+ 9359: 0xB3AC,
+ 9360: 0xB3C4,
+ 9361: 0xB3C5,
+ 9362: 0xB3C8,
+ 9363: 0xB3CB,
+ 9364: 0xB3CC,
+ 9365: 0xB3CE,
+ 9366: 0xB3D0,
+ 9367: 0xB3D4,
+ 9368: 0xB3D5,
+ 9369: 0xB3D7,
+ 9370: 0xB3D9,
+ 9371: 0xB3DB,
+ 9372: 0xB3DD,
+ 9373: 0xB3E0,
+ 9374: 0xB3E4,
+ 9375: 0xB3E8,
+ 9376: 0xB3FC,
+ 9377: 0xB410,
+ 9378: 0xB418,
+ 9379: 0xB41C,
+ 9380: 0xB420,
+ 9381: 0xB428,
+ 9382: 0xB429,
+ 9383: 0xB42B,
+ 9384: 0xB434,
+ 9385: 0xB450,
+ 9386: 0xB451,
+ 9387: 0xB454,
+ 9388: 0xB458,
+ 9389: 0xB460,
+ 9390: 0xB461,
+ 9391: 0xB463,
+ 9392: 0xB465,
+ 9393: 0xB46C,
+ 9394: 0xB480,
+ 9395: 0xB488,
+ 9396: 0xB49D,
+ 9397: 0xB4A4,
+ 9398: 0xB4A8,
+ 9399: 0xB4AC,
+ 9400: 0xB4B5,
+ 9401: 0xB4B7,
+ 9402: 0xB4B9,
+ 9403: 0xB4C0,
+ 9404: 0xB4C4,
+ 9405: 0xB4C8,
+ 9406: 0xB4D0,
+ 9407: 0xB4D5,
+ 9408: 0xB4DC,
+ 9409: 0xB4DD,
+ 9410: 0xB4E0,
+ 9411: 0xB4E3,
+ 9412: 0xB4E4,
+ 9413: 0xB4E6,
+ 9414: 0xB4EC,
+ 9415: 0xB4ED,
+ 9416: 0xB4EF,
+ 9417: 0xB4F1,
+ 9418: 0xB4F8,
+ 9419: 0xB514,
+ 9420: 0xB515,
+ 9421: 0xB518,
+ 9422: 0xB51B,
+ 9423: 0xB51C,
+ 9424: 0xB524,
+ 9425: 0xB525,
+ 9426: 0xB527,
+ 9427: 0xB528,
+ 9428: 0xB529,
+ 9429: 0xB52A,
+ 9430: 0xB530,
+ 9431: 0xB531,
+ 9432: 0xB534,
+ 9433: 0xB538,
+ 9434: 0xD105,
+ 9435: 0xD106,
+ 9436: 0xD107,
+ 9437: 0xD108,
+ 9438: 0xD109,
+ 9439: 0xD10A,
+ 9440: 0xD10B,
+ 9441: 0xD10C,
+ 9442: 0xD10E,
+ 9443: 0xD10F,
+ 9444: 0xD110,
+ 9445: 0xD111,
+ 9446: 0xD112,
+ 9447: 0xD113,
+ 9448: 0xD114,
+ 9449: 0xD115,
+ 9450: 0xD116,
+ 9451: 0xD117,
+ 9452: 0xD118,
+ 9453: 0xD119,
+ 9454: 0xD11A,
+ 9455: 0xD11B,
+ 9456: 0xD11C,
+ 9457: 0xD11D,
+ 9458: 0xD11E,
+ 9459: 0xD11F,
+ 9460: 0xD120,
+ 9461: 0xD121,
+ 9462: 0xD122,
+ 9463: 0xD123,
+ 9464: 0xD124,
+ 9465: 0xD125,
+ 9466: 0xD126,
+ 9467: 0xD127,
+ 9468: 0xD128,
+ 9469: 0xD129,
+ 9470: 0xD12A,
+ 9471: 0xD12B,
+ 9472: 0xD12C,
+ 9473: 0xD12D,
+ 9474: 0xD12E,
+ 9475: 0xD12F,
+ 9476: 0xD132,
+ 9477: 0xD133,
+ 9478: 0xD135,
+ 9479: 0xD136,
+ 9480: 0xD137,
+ 9481: 0xD139,
+ 9482: 0xD13B,
+ 9483: 0xD13C,
+ 9484: 0xD13D,
+ 9485: 0xD13E,
+ 9486: 0xD13F,
+ 9487: 0xD142,
+ 9488: 0xD146,
+ 9489: 0xD147,
+ 9490: 0xD148,
+ 9491: 0xD149,
+ 9492: 0xD14A,
+ 9493: 0xD14B,
+ 9494: 0xD14E,
+ 9495: 0xD14F,
+ 9496: 0xD151,
+ 9497: 0xD152,
+ 9498: 0xD153,
+ 9499: 0xD155,
+ 9500: 0xD156,
+ 9501: 0xD157,
+ 9502: 0xD158,
+ 9503: 0xD159,
+ 9504: 0xD15A,
+ 9505: 0xD15B,
+ 9506: 0xD15E,
+ 9507: 0xD160,
+ 9508: 0xD162,
+ 9509: 0xD163,
+ 9510: 0xD164,
+ 9511: 0xD165,
+ 9512: 0xD166,
+ 9513: 0xD167,
+ 9514: 0xD169,
+ 9515: 0xD16A,
+ 9516: 0xD16B,
+ 9517: 0xD16D,
+ 9518: 0xB540,
+ 9519: 0xB541,
+ 9520: 0xB543,
+ 9521: 0xB544,
+ 9522: 0xB545,
+ 9523: 0xB54B,
+ 9524: 0xB54C,
+ 9525: 0xB54D,
+ 9526: 0xB550,
+ 9527: 0xB554,
+ 9528: 0xB55C,
+ 9529: 0xB55D,
+ 9530: 0xB55F,
+ 9531: 0xB560,
+ 9532: 0xB561,
+ 9533: 0xB5A0,
+ 9534: 0xB5A1,
+ 9535: 0xB5A4,
+ 9536: 0xB5A8,
+ 9537: 0xB5AA,
+ 9538: 0xB5AB,
+ 9539: 0xB5B0,
+ 9540: 0xB5B1,
+ 9541: 0xB5B3,
+ 9542: 0xB5B4,
+ 9543: 0xB5B5,
+ 9544: 0xB5BB,
+ 9545: 0xB5BC,
+ 9546: 0xB5BD,
+ 9547: 0xB5C0,
+ 9548: 0xB5C4,
+ 9549: 0xB5CC,
+ 9550: 0xB5CD,
+ 9551: 0xB5CF,
+ 9552: 0xB5D0,
+ 9553: 0xB5D1,
+ 9554: 0xB5D8,
+ 9555: 0xB5EC,
+ 9556: 0xB610,
+ 9557: 0xB611,
+ 9558: 0xB614,
+ 9559: 0xB618,
+ 9560: 0xB625,
+ 9561: 0xB62C,
+ 9562: 0xB634,
+ 9563: 0xB648,
+ 9564: 0xB664,
+ 9565: 0xB668,
+ 9566: 0xB69C,
+ 9567: 0xB69D,
+ 9568: 0xB6A0,
+ 9569: 0xB6A4,
+ 9570: 0xB6AB,
+ 9571: 0xB6AC,
+ 9572: 0xB6B1,
+ 9573: 0xB6D4,
+ 9574: 0xB6F0,
+ 9575: 0xB6F4,
+ 9576: 0xB6F8,
+ 9577: 0xB700,
+ 9578: 0xB701,
+ 9579: 0xB705,
+ 9580: 0xB728,
+ 9581: 0xB729,
+ 9582: 0xB72C,
+ 9583: 0xB72F,
+ 9584: 0xB730,
+ 9585: 0xB738,
+ 9586: 0xB739,
+ 9587: 0xB73B,
+ 9588: 0xB744,
+ 9589: 0xB748,
+ 9590: 0xB74C,
+ 9591: 0xB754,
+ 9592: 0xB755,
+ 9593: 0xB760,
+ 9594: 0xB764,
+ 9595: 0xB768,
+ 9596: 0xB770,
+ 9597: 0xB771,
+ 9598: 0xB773,
+ 9599: 0xB775,
+ 9600: 0xB77C,
+ 9601: 0xB77D,
+ 9602: 0xB780,
+ 9603: 0xB784,
+ 9604: 0xB78C,
+ 9605: 0xB78D,
+ 9606: 0xB78F,
+ 9607: 0xB790,
+ 9608: 0xB791,
+ 9609: 0xB792,
+ 9610: 0xB796,
+ 9611: 0xB797,
+ 9612: 0xD16E,
+ 9613: 0xD16F,
+ 9614: 0xD170,
+ 9615: 0xD171,
+ 9616: 0xD172,
+ 9617: 0xD173,
+ 9618: 0xD174,
+ 9619: 0xD175,
+ 9620: 0xD176,
+ 9621: 0xD177,
+ 9622: 0xD178,
+ 9623: 0xD179,
+ 9624: 0xD17A,
+ 9625: 0xD17B,
+ 9626: 0xD17D,
+ 9627: 0xD17E,
+ 9628: 0xD17F,
+ 9629: 0xD180,
+ 9630: 0xD181,
+ 9631: 0xD182,
+ 9632: 0xD183,
+ 9633: 0xD185,
+ 9634: 0xD186,
+ 9635: 0xD187,
+ 9636: 0xD189,
+ 9637: 0xD18A,
+ 9638: 0xD18B,
+ 9639: 0xD18C,
+ 9640: 0xD18D,
+ 9641: 0xD18E,
+ 9642: 0xD18F,
+ 9643: 0xD190,
+ 9644: 0xD191,
+ 9645: 0xD192,
+ 9646: 0xD193,
+ 9647: 0xD194,
+ 9648: 0xD195,
+ 9649: 0xD196,
+ 9650: 0xD197,
+ 9651: 0xD198,
+ 9652: 0xD199,
+ 9653: 0xD19A,
+ 9654: 0xD19B,
+ 9655: 0xD19C,
+ 9656: 0xD19D,
+ 9657: 0xD19E,
+ 9658: 0xD19F,
+ 9659: 0xD1A2,
+ 9660: 0xD1A3,
+ 9661: 0xD1A5,
+ 9662: 0xD1A6,
+ 9663: 0xD1A7,
+ 9664: 0xD1A9,
+ 9665: 0xD1AA,
+ 9666: 0xD1AB,
+ 9667: 0xD1AC,
+ 9668: 0xD1AD,
+ 9669: 0xD1AE,
+ 9670: 0xD1AF,
+ 9671: 0xD1B2,
+ 9672: 0xD1B4,
+ 9673: 0xD1B6,
+ 9674: 0xD1B7,
+ 9675: 0xD1B8,
+ 9676: 0xD1B9,
+ 9677: 0xD1BB,
+ 9678: 0xD1BD,
+ 9679: 0xD1BE,
+ 9680: 0xD1BF,
+ 9681: 0xD1C1,
+ 9682: 0xD1C2,
+ 9683: 0xD1C3,
+ 9684: 0xD1C4,
+ 9685: 0xD1C5,
+ 9686: 0xD1C6,
+ 9687: 0xD1C7,
+ 9688: 0xD1C8,
+ 9689: 0xD1C9,
+ 9690: 0xD1CA,
+ 9691: 0xD1CB,
+ 9692: 0xD1CC,
+ 9693: 0xD1CD,
+ 9694: 0xD1CE,
+ 9695: 0xD1CF,
+ 9696: 0xB798,
+ 9697: 0xB799,
+ 9698: 0xB79C,
+ 9699: 0xB7A0,
+ 9700: 0xB7A8,
+ 9701: 0xB7A9,
+ 9702: 0xB7AB,
+ 9703: 0xB7AC,
+ 9704: 0xB7AD,
+ 9705: 0xB7B4,
+ 9706: 0xB7B5,
+ 9707: 0xB7B8,
+ 9708: 0xB7C7,
+ 9709: 0xB7C9,
+ 9710: 0xB7EC,
+ 9711: 0xB7ED,
+ 9712: 0xB7F0,
+ 9713: 0xB7F4,
+ 9714: 0xB7FC,
+ 9715: 0xB7FD,
+ 9716: 0xB7FF,
+ 9717: 0xB800,
+ 9718: 0xB801,
+ 9719: 0xB807,
+ 9720: 0xB808,
+ 9721: 0xB809,
+ 9722: 0xB80C,
+ 9723: 0xB810,
+ 9724: 0xB818,
+ 9725: 0xB819,
+ 9726: 0xB81B,
+ 9727: 0xB81D,
+ 9728: 0xB824,
+ 9729: 0xB825,
+ 9730: 0xB828,
+ 9731: 0xB82C,
+ 9732: 0xB834,
+ 9733: 0xB835,
+ 9734: 0xB837,
+ 9735: 0xB838,
+ 9736: 0xB839,
+ 9737: 0xB840,
+ 9738: 0xB844,
+ 9739: 0xB851,
+ 9740: 0xB853,
+ 9741: 0xB85C,
+ 9742: 0xB85D,
+ 9743: 0xB860,
+ 9744: 0xB864,
+ 9745: 0xB86C,
+ 9746: 0xB86D,
+ 9747: 0xB86F,
+ 9748: 0xB871,
+ 9749: 0xB878,
+ 9750: 0xB87C,
+ 9751: 0xB88D,
+ 9752: 0xB8A8,
+ 9753: 0xB8B0,
+ 9754: 0xB8B4,
+ 9755: 0xB8B8,
+ 9756: 0xB8C0,
+ 9757: 0xB8C1,
+ 9758: 0xB8C3,
+ 9759: 0xB8C5,
+ 9760: 0xB8CC,
+ 9761: 0xB8D0,
+ 9762: 0xB8D4,
+ 9763: 0xB8DD,
+ 9764: 0xB8DF,
+ 9765: 0xB8E1,
+ 9766: 0xB8E8,
+ 9767: 0xB8E9,
+ 9768: 0xB8EC,
+ 9769: 0xB8F0,
+ 9770: 0xB8F8,
+ 9771: 0xB8F9,
+ 9772: 0xB8FB,
+ 9773: 0xB8FD,
+ 9774: 0xB904,
+ 9775: 0xB918,
+ 9776: 0xB920,
+ 9777: 0xB93C,
+ 9778: 0xB93D,
+ 9779: 0xB940,
+ 9780: 0xB944,
+ 9781: 0xB94C,
+ 9782: 0xB94F,
+ 9783: 0xB951,
+ 9784: 0xB958,
+ 9785: 0xB959,
+ 9786: 0xB95C,
+ 9787: 0xB960,
+ 9788: 0xB968,
+ 9789: 0xB969,
+ 9790: 0xD1D0,
+ 9791: 0xD1D1,
+ 9792: 0xD1D2,
+ 9793: 0xD1D3,
+ 9794: 0xD1D4,
+ 9795: 0xD1D5,
+ 9796: 0xD1D6,
+ 9797: 0xD1D7,
+ 9798: 0xD1D9,
+ 9799: 0xD1DA,
+ 9800: 0xD1DB,
+ 9801: 0xD1DC,
+ 9802: 0xD1DD,
+ 9803: 0xD1DE,
+ 9804: 0xD1DF,
+ 9805: 0xD1E0,
+ 9806: 0xD1E1,
+ 9807: 0xD1E2,
+ 9808: 0xD1E3,
+ 9809: 0xD1E4,
+ 9810: 0xD1E5,
+ 9811: 0xD1E6,
+ 9812: 0xD1E7,
+ 9813: 0xD1E8,
+ 9814: 0xD1E9,
+ 9815: 0xD1EA,
+ 9816: 0xD1EB,
+ 9817: 0xD1EC,
+ 9818: 0xD1ED,
+ 9819: 0xD1EE,
+ 9820: 0xD1EF,
+ 9821: 0xD1F0,
+ 9822: 0xD1F1,
+ 9823: 0xD1F2,
+ 9824: 0xD1F3,
+ 9825: 0xD1F5,
+ 9826: 0xD1F6,
+ 9827: 0xD1F7,
+ 9828: 0xD1F9,
+ 9829: 0xD1FA,
+ 9830: 0xD1FB,
+ 9831: 0xD1FC,
+ 9832: 0xD1FD,
+ 9833: 0xD1FE,
+ 9834: 0xD1FF,
+ 9835: 0xD200,
+ 9836: 0xD201,
+ 9837: 0xD202,
+ 9838: 0xD203,
+ 9839: 0xD204,
+ 9840: 0xD205,
+ 9841: 0xD206,
+ 9842: 0xD208,
+ 9843: 0xD20A,
+ 9844: 0xD20B,
+ 9845: 0xD20C,
+ 9846: 0xD20D,
+ 9847: 0xD20E,
+ 9848: 0xD20F,
+ 9849: 0xD211,
+ 9850: 0xD212,
+ 9851: 0xD213,
+ 9852: 0xD214,
+ 9853: 0xD215,
+ 9854: 0xD216,
+ 9855: 0xD217,
+ 9856: 0xD218,
+ 9857: 0xD219,
+ 9858: 0xD21A,
+ 9859: 0xD21B,
+ 9860: 0xD21C,
+ 9861: 0xD21D,
+ 9862: 0xD21E,
+ 9863: 0xD21F,
+ 9864: 0xD220,
+ 9865: 0xD221,
+ 9866: 0xD222,
+ 9867: 0xD223,
+ 9868: 0xD224,
+ 9869: 0xD225,
+ 9870: 0xD226,
+ 9871: 0xD227,
+ 9872: 0xD228,
+ 9873: 0xD229,
+ 9874: 0xB96B,
+ 9875: 0xB96D,
+ 9876: 0xB974,
+ 9877: 0xB975,
+ 9878: 0xB978,
+ 9879: 0xB97C,
+ 9880: 0xB984,
+ 9881: 0xB985,
+ 9882: 0xB987,
+ 9883: 0xB989,
+ 9884: 0xB98A,
+ 9885: 0xB98D,
+ 9886: 0xB98E,
+ 9887: 0xB9AC,
+ 9888: 0xB9AD,
+ 9889: 0xB9B0,
+ 9890: 0xB9B4,
+ 9891: 0xB9BC,
+ 9892: 0xB9BD,
+ 9893: 0xB9BF,
+ 9894: 0xB9C1,
+ 9895: 0xB9C8,
+ 9896: 0xB9C9,
+ 9897: 0xB9CC,
+ 9898: 0xB9CE,
+ 9899: 0xB9CF,
+ 9900: 0xB9D0,
+ 9901: 0xB9D1,
+ 9902: 0xB9D2,
+ 9903: 0xB9D8,
+ 9904: 0xB9D9,
+ 9905: 0xB9DB,
+ 9906: 0xB9DD,
+ 9907: 0xB9DE,
+ 9908: 0xB9E1,
+ 9909: 0xB9E3,
+ 9910: 0xB9E4,
+ 9911: 0xB9E5,
+ 9912: 0xB9E8,
+ 9913: 0xB9EC,
+ 9914: 0xB9F4,
+ 9915: 0xB9F5,
+ 9916: 0xB9F7,
+ 9917: 0xB9F8,
+ 9918: 0xB9F9,
+ 9919: 0xB9FA,
+ 9920: 0xBA00,
+ 9921: 0xBA01,
+ 9922: 0xBA08,
+ 9923: 0xBA15,
+ 9924: 0xBA38,
+ 9925: 0xBA39,
+ 9926: 0xBA3C,
+ 9927: 0xBA40,
+ 9928: 0xBA42,
+ 9929: 0xBA48,
+ 9930: 0xBA49,
+ 9931: 0xBA4B,
+ 9932: 0xBA4D,
+ 9933: 0xBA4E,
+ 9934: 0xBA53,
+ 9935: 0xBA54,
+ 9936: 0xBA55,
+ 9937: 0xBA58,
+ 9938: 0xBA5C,
+ 9939: 0xBA64,
+ 9940: 0xBA65,
+ 9941: 0xBA67,
+ 9942: 0xBA68,
+ 9943: 0xBA69,
+ 9944: 0xBA70,
+ 9945: 0xBA71,
+ 9946: 0xBA74,
+ 9947: 0xBA78,
+ 9948: 0xBA83,
+ 9949: 0xBA84,
+ 9950: 0xBA85,
+ 9951: 0xBA87,
+ 9952: 0xBA8C,
+ 9953: 0xBAA8,
+ 9954: 0xBAA9,
+ 9955: 0xBAAB,
+ 9956: 0xBAAC,
+ 9957: 0xBAB0,
+ 9958: 0xBAB2,
+ 9959: 0xBAB8,
+ 9960: 0xBAB9,
+ 9961: 0xBABB,
+ 9962: 0xBABD,
+ 9963: 0xBAC4,
+ 9964: 0xBAC8,
+ 9965: 0xBAD8,
+ 9966: 0xBAD9,
+ 9967: 0xBAFC,
+ 9968: 0xD22A,
+ 9969: 0xD22B,
+ 9970: 0xD22E,
+ 9971: 0xD22F,
+ 9972: 0xD231,
+ 9973: 0xD232,
+ 9974: 0xD233,
+ 9975: 0xD235,
+ 9976: 0xD236,
+ 9977: 0xD237,
+ 9978: 0xD238,
+ 9979: 0xD239,
+ 9980: 0xD23A,
+ 9981: 0xD23B,
+ 9982: 0xD23E,
+ 9983: 0xD240,
+ 9984: 0xD242,
+ 9985: 0xD243,
+ 9986: 0xD244,
+ 9987: 0xD245,
+ 9988: 0xD246,
+ 9989: 0xD247,
+ 9990: 0xD249,
+ 9991: 0xD24A,
+ 9992: 0xD24B,
+ 9993: 0xD24C,
+ 9994: 0xD24D,
+ 9995: 0xD24E,
+ 9996: 0xD24F,
+ 9997: 0xD250,
+ 9998: 0xD251,
+ 9999: 0xD252,
+ 10000: 0xD253,
+ 10001: 0xD254,
+ 10002: 0xD255,
+ 10003: 0xD256,
+ 10004: 0xD257,
+ 10005: 0xD258,
+ 10006: 0xD259,
+ 10007: 0xD25A,
+ 10008: 0xD25B,
+ 10009: 0xD25D,
+ 10010: 0xD25E,
+ 10011: 0xD25F,
+ 10012: 0xD260,
+ 10013: 0xD261,
+ 10014: 0xD262,
+ 10015: 0xD263,
+ 10016: 0xD265,
+ 10017: 0xD266,
+ 10018: 0xD267,
+ 10019: 0xD268,
+ 10020: 0xD269,
+ 10021: 0xD26A,
+ 10022: 0xD26B,
+ 10023: 0xD26C,
+ 10024: 0xD26D,
+ 10025: 0xD26E,
+ 10026: 0xD26F,
+ 10027: 0xD270,
+ 10028: 0xD271,
+ 10029: 0xD272,
+ 10030: 0xD273,
+ 10031: 0xD274,
+ 10032: 0xD275,
+ 10033: 0xD276,
+ 10034: 0xD277,
+ 10035: 0xD278,
+ 10036: 0xD279,
+ 10037: 0xD27A,
+ 10038: 0xD27B,
+ 10039: 0xD27C,
+ 10040: 0xD27D,
+ 10041: 0xD27E,
+ 10042: 0xD27F,
+ 10043: 0xD282,
+ 10044: 0xD283,
+ 10045: 0xD285,
+ 10046: 0xD286,
+ 10047: 0xD287,
+ 10048: 0xD289,
+ 10049: 0xD28A,
+ 10050: 0xD28B,
+ 10051: 0xD28C,
+ 10052: 0xBB00,
+ 10053: 0xBB04,
+ 10054: 0xBB0D,
+ 10055: 0xBB0F,
+ 10056: 0xBB11,
+ 10057: 0xBB18,
+ 10058: 0xBB1C,
+ 10059: 0xBB20,
+ 10060: 0xBB29,
+ 10061: 0xBB2B,
+ 10062: 0xBB34,
+ 10063: 0xBB35,
+ 10064: 0xBB36,
+ 10065: 0xBB38,
+ 10066: 0xBB3B,
+ 10067: 0xBB3C,
+ 10068: 0xBB3D,
+ 10069: 0xBB3E,
+ 10070: 0xBB44,
+ 10071: 0xBB45,
+ 10072: 0xBB47,
+ 10073: 0xBB49,
+ 10074: 0xBB4D,
+ 10075: 0xBB4F,
+ 10076: 0xBB50,
+ 10077: 0xBB54,
+ 10078: 0xBB58,
+ 10079: 0xBB61,
+ 10080: 0xBB63,
+ 10081: 0xBB6C,
+ 10082: 0xBB88,
+ 10083: 0xBB8C,
+ 10084: 0xBB90,
+ 10085: 0xBBA4,
+ 10086: 0xBBA8,
+ 10087: 0xBBAC,
+ 10088: 0xBBB4,
+ 10089: 0xBBB7,
+ 10090: 0xBBC0,
+ 10091: 0xBBC4,
+ 10092: 0xBBC8,
+ 10093: 0xBBD0,
+ 10094: 0xBBD3,
+ 10095: 0xBBF8,
+ 10096: 0xBBF9,
+ 10097: 0xBBFC,
+ 10098: 0xBBFF,
+ 10099: 0xBC00,
+ 10100: 0xBC02,
+ 10101: 0xBC08,
+ 10102: 0xBC09,
+ 10103: 0xBC0B,
+ 10104: 0xBC0C,
+ 10105: 0xBC0D,
+ 10106: 0xBC0F,
+ 10107: 0xBC11,
+ 10108: 0xBC14,
+ 10109: 0xBC15,
+ 10110: 0xBC16,
+ 10111: 0xBC17,
+ 10112: 0xBC18,
+ 10113: 0xBC1B,
+ 10114: 0xBC1C,
+ 10115: 0xBC1D,
+ 10116: 0xBC1E,
+ 10117: 0xBC1F,
+ 10118: 0xBC24,
+ 10119: 0xBC25,
+ 10120: 0xBC27,
+ 10121: 0xBC29,
+ 10122: 0xBC2D,
+ 10123: 0xBC30,
+ 10124: 0xBC31,
+ 10125: 0xBC34,
+ 10126: 0xBC38,
+ 10127: 0xBC40,
+ 10128: 0xBC41,
+ 10129: 0xBC43,
+ 10130: 0xBC44,
+ 10131: 0xBC45,
+ 10132: 0xBC49,
+ 10133: 0xBC4C,
+ 10134: 0xBC4D,
+ 10135: 0xBC50,
+ 10136: 0xBC5D,
+ 10137: 0xBC84,
+ 10138: 0xBC85,
+ 10139: 0xBC88,
+ 10140: 0xBC8B,
+ 10141: 0xBC8C,
+ 10142: 0xBC8E,
+ 10143: 0xBC94,
+ 10144: 0xBC95,
+ 10145: 0xBC97,
+ 10146: 0xD28D,
+ 10147: 0xD28E,
+ 10148: 0xD28F,
+ 10149: 0xD292,
+ 10150: 0xD293,
+ 10151: 0xD294,
+ 10152: 0xD296,
+ 10153: 0xD297,
+ 10154: 0xD298,
+ 10155: 0xD299,
+ 10156: 0xD29A,
+ 10157: 0xD29B,
+ 10158: 0xD29D,
+ 10159: 0xD29E,
+ 10160: 0xD29F,
+ 10161: 0xD2A1,
+ 10162: 0xD2A2,
+ 10163: 0xD2A3,
+ 10164: 0xD2A5,
+ 10165: 0xD2A6,
+ 10166: 0xD2A7,
+ 10167: 0xD2A8,
+ 10168: 0xD2A9,
+ 10169: 0xD2AA,
+ 10170: 0xD2AB,
+ 10171: 0xD2AD,
+ 10172: 0xD2AE,
+ 10173: 0xD2AF,
+ 10174: 0xD2B0,
+ 10175: 0xD2B2,
+ 10176: 0xD2B3,
+ 10177: 0xD2B4,
+ 10178: 0xD2B5,
+ 10179: 0xD2B6,
+ 10180: 0xD2B7,
+ 10181: 0xD2BA,
+ 10182: 0xD2BB,
+ 10183: 0xD2BD,
+ 10184: 0xD2BE,
+ 10185: 0xD2C1,
+ 10186: 0xD2C3,
+ 10187: 0xD2C4,
+ 10188: 0xD2C5,
+ 10189: 0xD2C6,
+ 10190: 0xD2C7,
+ 10191: 0xD2CA,
+ 10192: 0xD2CC,
+ 10193: 0xD2CD,
+ 10194: 0xD2CE,
+ 10195: 0xD2CF,
+ 10196: 0xD2D0,
+ 10197: 0xD2D1,
+ 10198: 0xD2D2,
+ 10199: 0xD2D3,
+ 10200: 0xD2D5,
+ 10201: 0xD2D6,
+ 10202: 0xD2D7,
+ 10203: 0xD2D9,
+ 10204: 0xD2DA,
+ 10205: 0xD2DB,
+ 10206: 0xD2DD,
+ 10207: 0xD2DE,
+ 10208: 0xD2DF,
+ 10209: 0xD2E0,
+ 10210: 0xD2E1,
+ 10211: 0xD2E2,
+ 10212: 0xD2E3,
+ 10213: 0xD2E6,
+ 10214: 0xD2E7,
+ 10215: 0xD2E8,
+ 10216: 0xD2E9,
+ 10217: 0xD2EA,
+ 10218: 0xD2EB,
+ 10219: 0xD2EC,
+ 10220: 0xD2ED,
+ 10221: 0xD2EE,
+ 10222: 0xD2EF,
+ 10223: 0xD2F2,
+ 10224: 0xD2F3,
+ 10225: 0xD2F5,
+ 10226: 0xD2F6,
+ 10227: 0xD2F7,
+ 10228: 0xD2F9,
+ 10229: 0xD2FA,
+ 10230: 0xBC99,
+ 10231: 0xBC9A,
+ 10232: 0xBCA0,
+ 10233: 0xBCA1,
+ 10234: 0xBCA4,
+ 10235: 0xBCA7,
+ 10236: 0xBCA8,
+ 10237: 0xBCB0,
+ 10238: 0xBCB1,
+ 10239: 0xBCB3,
+ 10240: 0xBCB4,
+ 10241: 0xBCB5,
+ 10242: 0xBCBC,
+ 10243: 0xBCBD,
+ 10244: 0xBCC0,
+ 10245: 0xBCC4,
+ 10246: 0xBCCD,
+ 10247: 0xBCCF,
+ 10248: 0xBCD0,
+ 10249: 0xBCD1,
+ 10250: 0xBCD5,
+ 10251: 0xBCD8,
+ 10252: 0xBCDC,
+ 10253: 0xBCF4,
+ 10254: 0xBCF5,
+ 10255: 0xBCF6,
+ 10256: 0xBCF8,
+ 10257: 0xBCFC,
+ 10258: 0xBD04,
+ 10259: 0xBD05,
+ 10260: 0xBD07,
+ 10261: 0xBD09,
+ 10262: 0xBD10,
+ 10263: 0xBD14,
+ 10264: 0xBD24,
+ 10265: 0xBD2C,
+ 10266: 0xBD40,
+ 10267: 0xBD48,
+ 10268: 0xBD49,
+ 10269: 0xBD4C,
+ 10270: 0xBD50,
+ 10271: 0xBD58,
+ 10272: 0xBD59,
+ 10273: 0xBD64,
+ 10274: 0xBD68,
+ 10275: 0xBD80,
+ 10276: 0xBD81,
+ 10277: 0xBD84,
+ 10278: 0xBD87,
+ 10279: 0xBD88,
+ 10280: 0xBD89,
+ 10281: 0xBD8A,
+ 10282: 0xBD90,
+ 10283: 0xBD91,
+ 10284: 0xBD93,
+ 10285: 0xBD95,
+ 10286: 0xBD99,
+ 10287: 0xBD9A,
+ 10288: 0xBD9C,
+ 10289: 0xBDA4,
+ 10290: 0xBDB0,
+ 10291: 0xBDB8,
+ 10292: 0xBDD4,
+ 10293: 0xBDD5,
+ 10294: 0xBDD8,
+ 10295: 0xBDDC,
+ 10296: 0xBDE9,
+ 10297: 0xBDF0,
+ 10298: 0xBDF4,
+ 10299: 0xBDF8,
+ 10300: 0xBE00,
+ 10301: 0xBE03,
+ 10302: 0xBE05,
+ 10303: 0xBE0C,
+ 10304: 0xBE0D,
+ 10305: 0xBE10,
+ 10306: 0xBE14,
+ 10307: 0xBE1C,
+ 10308: 0xBE1D,
+ 10309: 0xBE1F,
+ 10310: 0xBE44,
+ 10311: 0xBE45,
+ 10312: 0xBE48,
+ 10313: 0xBE4C,
+ 10314: 0xBE4E,
+ 10315: 0xBE54,
+ 10316: 0xBE55,
+ 10317: 0xBE57,
+ 10318: 0xBE59,
+ 10319: 0xBE5A,
+ 10320: 0xBE5B,
+ 10321: 0xBE60,
+ 10322: 0xBE61,
+ 10323: 0xBE64,
+ 10324: 0xD2FB,
+ 10325: 0xD2FC,
+ 10326: 0xD2FD,
+ 10327: 0xD2FE,
+ 10328: 0xD2FF,
+ 10329: 0xD302,
+ 10330: 0xD304,
+ 10331: 0xD306,
+ 10332: 0xD307,
+ 10333: 0xD308,
+ 10334: 0xD309,
+ 10335: 0xD30A,
+ 10336: 0xD30B,
+ 10337: 0xD30F,
+ 10338: 0xD311,
+ 10339: 0xD312,
+ 10340: 0xD313,
+ 10341: 0xD315,
+ 10342: 0xD317,
+ 10343: 0xD318,
+ 10344: 0xD319,
+ 10345: 0xD31A,
+ 10346: 0xD31B,
+ 10347: 0xD31E,
+ 10348: 0xD322,
+ 10349: 0xD323,
+ 10350: 0xD324,
+ 10351: 0xD326,
+ 10352: 0xD327,
+ 10353: 0xD32A,
+ 10354: 0xD32B,
+ 10355: 0xD32D,
+ 10356: 0xD32E,
+ 10357: 0xD32F,
+ 10358: 0xD331,
+ 10359: 0xD332,
+ 10360: 0xD333,
+ 10361: 0xD334,
+ 10362: 0xD335,
+ 10363: 0xD336,
+ 10364: 0xD337,
+ 10365: 0xD33A,
+ 10366: 0xD33E,
+ 10367: 0xD33F,
+ 10368: 0xD340,
+ 10369: 0xD341,
+ 10370: 0xD342,
+ 10371: 0xD343,
+ 10372: 0xD346,
+ 10373: 0xD347,
+ 10374: 0xD348,
+ 10375: 0xD349,
+ 10376: 0xD34A,
+ 10377: 0xD34B,
+ 10378: 0xD34C,
+ 10379: 0xD34D,
+ 10380: 0xD34E,
+ 10381: 0xD34F,
+ 10382: 0xD350,
+ 10383: 0xD351,
+ 10384: 0xD352,
+ 10385: 0xD353,
+ 10386: 0xD354,
+ 10387: 0xD355,
+ 10388: 0xD356,
+ 10389: 0xD357,
+ 10390: 0xD358,
+ 10391: 0xD359,
+ 10392: 0xD35A,
+ 10393: 0xD35B,
+ 10394: 0xD35C,
+ 10395: 0xD35D,
+ 10396: 0xD35E,
+ 10397: 0xD35F,
+ 10398: 0xD360,
+ 10399: 0xD361,
+ 10400: 0xD362,
+ 10401: 0xD363,
+ 10402: 0xD364,
+ 10403: 0xD365,
+ 10404: 0xD366,
+ 10405: 0xD367,
+ 10406: 0xD368,
+ 10407: 0xD369,
+ 10408: 0xBE68,
+ 10409: 0xBE6A,
+ 10410: 0xBE70,
+ 10411: 0xBE71,
+ 10412: 0xBE73,
+ 10413: 0xBE74,
+ 10414: 0xBE75,
+ 10415: 0xBE7B,
+ 10416: 0xBE7C,
+ 10417: 0xBE7D,
+ 10418: 0xBE80,
+ 10419: 0xBE84,
+ 10420: 0xBE8C,
+ 10421: 0xBE8D,
+ 10422: 0xBE8F,
+ 10423: 0xBE90,
+ 10424: 0xBE91,
+ 10425: 0xBE98,
+ 10426: 0xBE99,
+ 10427: 0xBEA8,
+ 10428: 0xBED0,
+ 10429: 0xBED1,
+ 10430: 0xBED4,
+ 10431: 0xBED7,
+ 10432: 0xBED8,
+ 10433: 0xBEE0,
+ 10434: 0xBEE3,
+ 10435: 0xBEE4,
+ 10436: 0xBEE5,
+ 10437: 0xBEEC,
+ 10438: 0xBF01,
+ 10439: 0xBF08,
+ 10440: 0xBF09,
+ 10441: 0xBF18,
+ 10442: 0xBF19,
+ 10443: 0xBF1B,
+ 10444: 0xBF1C,
+ 10445: 0xBF1D,
+ 10446: 0xBF40,
+ 10447: 0xBF41,
+ 10448: 0xBF44,
+ 10449: 0xBF48,
+ 10450: 0xBF50,
+ 10451: 0xBF51,
+ 10452: 0xBF55,
+ 10453: 0xBF94,
+ 10454: 0xBFB0,
+ 10455: 0xBFC5,
+ 10456: 0xBFCC,
+ 10457: 0xBFCD,
+ 10458: 0xBFD0,
+ 10459: 0xBFD4,
+ 10460: 0xBFDC,
+ 10461: 0xBFDF,
+ 10462: 0xBFE1,
+ 10463: 0xC03C,
+ 10464: 0xC051,
+ 10465: 0xC058,
+ 10466: 0xC05C,
+ 10467: 0xC060,
+ 10468: 0xC068,
+ 10469: 0xC069,
+ 10470: 0xC090,
+ 10471: 0xC091,
+ 10472: 0xC094,
+ 10473: 0xC098,
+ 10474: 0xC0A0,
+ 10475: 0xC0A1,
+ 10476: 0xC0A3,
+ 10477: 0xC0A5,
+ 10478: 0xC0AC,
+ 10479: 0xC0AD,
+ 10480: 0xC0AF,
+ 10481: 0xC0B0,
+ 10482: 0xC0B3,
+ 10483: 0xC0B4,
+ 10484: 0xC0B5,
+ 10485: 0xC0B6,
+ 10486: 0xC0BC,
+ 10487: 0xC0BD,
+ 10488: 0xC0BF,
+ 10489: 0xC0C0,
+ 10490: 0xC0C1,
+ 10491: 0xC0C5,
+ 10492: 0xC0C8,
+ 10493: 0xC0C9,
+ 10494: 0xC0CC,
+ 10495: 0xC0D0,
+ 10496: 0xC0D8,
+ 10497: 0xC0D9,
+ 10498: 0xC0DB,
+ 10499: 0xC0DC,
+ 10500: 0xC0DD,
+ 10501: 0xC0E4,
+ 10502: 0xD36A,
+ 10503: 0xD36B,
+ 10504: 0xD36C,
+ 10505: 0xD36D,
+ 10506: 0xD36E,
+ 10507: 0xD36F,
+ 10508: 0xD370,
+ 10509: 0xD371,
+ 10510: 0xD372,
+ 10511: 0xD373,
+ 10512: 0xD374,
+ 10513: 0xD375,
+ 10514: 0xD376,
+ 10515: 0xD377,
+ 10516: 0xD378,
+ 10517: 0xD379,
+ 10518: 0xD37A,
+ 10519: 0xD37B,
+ 10520: 0xD37E,
+ 10521: 0xD37F,
+ 10522: 0xD381,
+ 10523: 0xD382,
+ 10524: 0xD383,
+ 10525: 0xD385,
+ 10526: 0xD386,
+ 10527: 0xD387,
+ 10528: 0xD388,
+ 10529: 0xD389,
+ 10530: 0xD38A,
+ 10531: 0xD38B,
+ 10532: 0xD38E,
+ 10533: 0xD392,
+ 10534: 0xD393,
+ 10535: 0xD394,
+ 10536: 0xD395,
+ 10537: 0xD396,
+ 10538: 0xD397,
+ 10539: 0xD39A,
+ 10540: 0xD39B,
+ 10541: 0xD39D,
+ 10542: 0xD39E,
+ 10543: 0xD39F,
+ 10544: 0xD3A1,
+ 10545: 0xD3A2,
+ 10546: 0xD3A3,
+ 10547: 0xD3A4,
+ 10548: 0xD3A5,
+ 10549: 0xD3A6,
+ 10550: 0xD3A7,
+ 10551: 0xD3AA,
+ 10552: 0xD3AC,
+ 10553: 0xD3AE,
+ 10554: 0xD3AF,
+ 10555: 0xD3B0,
+ 10556: 0xD3B1,
+ 10557: 0xD3B2,
+ 10558: 0xD3B3,
+ 10559: 0xD3B5,
+ 10560: 0xD3B6,
+ 10561: 0xD3B7,
+ 10562: 0xD3B9,
+ 10563: 0xD3BA,
+ 10564: 0xD3BB,
+ 10565: 0xD3BD,
+ 10566: 0xD3BE,
+ 10567: 0xD3BF,
+ 10568: 0xD3C0,
+ 10569: 0xD3C1,
+ 10570: 0xD3C2,
+ 10571: 0xD3C3,
+ 10572: 0xD3C6,
+ 10573: 0xD3C7,
+ 10574: 0xD3CA,
+ 10575: 0xD3CB,
+ 10576: 0xD3CC,
+ 10577: 0xD3CD,
+ 10578: 0xD3CE,
+ 10579: 0xD3CF,
+ 10580: 0xD3D1,
+ 10581: 0xD3D2,
+ 10582: 0xD3D3,
+ 10583: 0xD3D4,
+ 10584: 0xD3D5,
+ 10585: 0xD3D6,
+ 10586: 0xC0E5,
+ 10587: 0xC0E8,
+ 10588: 0xC0EC,
+ 10589: 0xC0F4,
+ 10590: 0xC0F5,
+ 10591: 0xC0F7,
+ 10592: 0xC0F9,
+ 10593: 0xC100,
+ 10594: 0xC104,
+ 10595: 0xC108,
+ 10596: 0xC110,
+ 10597: 0xC115,
+ 10598: 0xC11C,
+ 10599: 0xC11D,
+ 10600: 0xC11E,
+ 10601: 0xC11F,
+ 10602: 0xC120,
+ 10603: 0xC123,
+ 10604: 0xC124,
+ 10605: 0xC126,
+ 10606: 0xC127,
+ 10607: 0xC12C,
+ 10608: 0xC12D,
+ 10609: 0xC12F,
+ 10610: 0xC130,
+ 10611: 0xC131,
+ 10612: 0xC136,
+ 10613: 0xC138,
+ 10614: 0xC139,
+ 10615: 0xC13C,
+ 10616: 0xC140,
+ 10617: 0xC148,
+ 10618: 0xC149,
+ 10619: 0xC14B,
+ 10620: 0xC14C,
+ 10621: 0xC14D,
+ 10622: 0xC154,
+ 10623: 0xC155,
+ 10624: 0xC158,
+ 10625: 0xC15C,
+ 10626: 0xC164,
+ 10627: 0xC165,
+ 10628: 0xC167,
+ 10629: 0xC168,
+ 10630: 0xC169,
+ 10631: 0xC170,
+ 10632: 0xC174,
+ 10633: 0xC178,
+ 10634: 0xC185,
+ 10635: 0xC18C,
+ 10636: 0xC18D,
+ 10637: 0xC18E,
+ 10638: 0xC190,
+ 10639: 0xC194,
+ 10640: 0xC196,
+ 10641: 0xC19C,
+ 10642: 0xC19D,
+ 10643: 0xC19F,
+ 10644: 0xC1A1,
+ 10645: 0xC1A5,
+ 10646: 0xC1A8,
+ 10647: 0xC1A9,
+ 10648: 0xC1AC,
+ 10649: 0xC1B0,
+ 10650: 0xC1BD,
+ 10651: 0xC1C4,
+ 10652: 0xC1C8,
+ 10653: 0xC1CC,
+ 10654: 0xC1D4,
+ 10655: 0xC1D7,
+ 10656: 0xC1D8,
+ 10657: 0xC1E0,
+ 10658: 0xC1E4,
+ 10659: 0xC1E8,
+ 10660: 0xC1F0,
+ 10661: 0xC1F1,
+ 10662: 0xC1F3,
+ 10663: 0xC1FC,
+ 10664: 0xC1FD,
+ 10665: 0xC200,
+ 10666: 0xC204,
+ 10667: 0xC20C,
+ 10668: 0xC20D,
+ 10669: 0xC20F,
+ 10670: 0xC211,
+ 10671: 0xC218,
+ 10672: 0xC219,
+ 10673: 0xC21C,
+ 10674: 0xC21F,
+ 10675: 0xC220,
+ 10676: 0xC228,
+ 10677: 0xC229,
+ 10678: 0xC22B,
+ 10679: 0xC22D,
+ 10680: 0xD3D7,
+ 10681: 0xD3D9,
+ 10682: 0xD3DA,
+ 10683: 0xD3DB,
+ 10684: 0xD3DC,
+ 10685: 0xD3DD,
+ 10686: 0xD3DE,
+ 10687: 0xD3DF,
+ 10688: 0xD3E0,
+ 10689: 0xD3E2,
+ 10690: 0xD3E4,
+ 10691: 0xD3E5,
+ 10692: 0xD3E6,
+ 10693: 0xD3E7,
+ 10694: 0xD3E8,
+ 10695: 0xD3E9,
+ 10696: 0xD3EA,
+ 10697: 0xD3EB,
+ 10698: 0xD3EE,
+ 10699: 0xD3EF,
+ 10700: 0xD3F1,
+ 10701: 0xD3F2,
+ 10702: 0xD3F3,
+ 10703: 0xD3F5,
+ 10704: 0xD3F6,
+ 10705: 0xD3F7,
+ 10706: 0xD3F8,
+ 10707: 0xD3F9,
+ 10708: 0xD3FA,
+ 10709: 0xD3FB,
+ 10710: 0xD3FE,
+ 10711: 0xD400,
+ 10712: 0xD402,
+ 10713: 0xD403,
+ 10714: 0xD404,
+ 10715: 0xD405,
+ 10716: 0xD406,
+ 10717: 0xD407,
+ 10718: 0xD409,
+ 10719: 0xD40A,
+ 10720: 0xD40B,
+ 10721: 0xD40C,
+ 10722: 0xD40D,
+ 10723: 0xD40E,
+ 10724: 0xD40F,
+ 10725: 0xD410,
+ 10726: 0xD411,
+ 10727: 0xD412,
+ 10728: 0xD413,
+ 10729: 0xD414,
+ 10730: 0xD415,
+ 10731: 0xD416,
+ 10732: 0xD417,
+ 10733: 0xD418,
+ 10734: 0xD419,
+ 10735: 0xD41A,
+ 10736: 0xD41B,
+ 10737: 0xD41C,
+ 10738: 0xD41E,
+ 10739: 0xD41F,
+ 10740: 0xD420,
+ 10741: 0xD421,
+ 10742: 0xD422,
+ 10743: 0xD423,
+ 10744: 0xD424,
+ 10745: 0xD425,
+ 10746: 0xD426,
+ 10747: 0xD427,
+ 10748: 0xD428,
+ 10749: 0xD429,
+ 10750: 0xD42A,
+ 10751: 0xD42B,
+ 10752: 0xD42C,
+ 10753: 0xD42D,
+ 10754: 0xD42E,
+ 10755: 0xD42F,
+ 10756: 0xD430,
+ 10757: 0xD431,
+ 10758: 0xD432,
+ 10759: 0xD433,
+ 10760: 0xD434,
+ 10761: 0xD435,
+ 10762: 0xD436,
+ 10763: 0xD437,
+ 10764: 0xC22F,
+ 10765: 0xC231,
+ 10766: 0xC232,
+ 10767: 0xC234,
+ 10768: 0xC248,
+ 10769: 0xC250,
+ 10770: 0xC251,
+ 10771: 0xC254,
+ 10772: 0xC258,
+ 10773: 0xC260,
+ 10774: 0xC265,
+ 10775: 0xC26C,
+ 10776: 0xC26D,
+ 10777: 0xC270,
+ 10778: 0xC274,
+ 10779: 0xC27C,
+ 10780: 0xC27D,
+ 10781: 0xC27F,
+ 10782: 0xC281,
+ 10783: 0xC288,
+ 10784: 0xC289,
+ 10785: 0xC290,
+ 10786: 0xC298,
+ 10787: 0xC29B,
+ 10788: 0xC29D,
+ 10789: 0xC2A4,
+ 10790: 0xC2A5,
+ 10791: 0xC2A8,
+ 10792: 0xC2AC,
+ 10793: 0xC2AD,
+ 10794: 0xC2B4,
+ 10795: 0xC2B5,
+ 10796: 0xC2B7,
+ 10797: 0xC2B9,
+ 10798: 0xC2DC,
+ 10799: 0xC2DD,
+ 10800: 0xC2E0,
+ 10801: 0xC2E3,
+ 10802: 0xC2E4,
+ 10803: 0xC2EB,
+ 10804: 0xC2EC,
+ 10805: 0xC2ED,
+ 10806: 0xC2EF,
+ 10807: 0xC2F1,
+ 10808: 0xC2F6,
+ 10809: 0xC2F8,
+ 10810: 0xC2F9,
+ 10811: 0xC2FB,
+ 10812: 0xC2FC,
+ 10813: 0xC300,
+ 10814: 0xC308,
+ 10815: 0xC309,
+ 10816: 0xC30C,
+ 10817: 0xC30D,
+ 10818: 0xC313,
+ 10819: 0xC314,
+ 10820: 0xC315,
+ 10821: 0xC318,
+ 10822: 0xC31C,
+ 10823: 0xC324,
+ 10824: 0xC325,
+ 10825: 0xC328,
+ 10826: 0xC329,
+ 10827: 0xC345,
+ 10828: 0xC368,
+ 10829: 0xC369,
+ 10830: 0xC36C,
+ 10831: 0xC370,
+ 10832: 0xC372,
+ 10833: 0xC378,
+ 10834: 0xC379,
+ 10835: 0xC37C,
+ 10836: 0xC37D,
+ 10837: 0xC384,
+ 10838: 0xC388,
+ 10839: 0xC38C,
+ 10840: 0xC3C0,
+ 10841: 0xC3D8,
+ 10842: 0xC3D9,
+ 10843: 0xC3DC,
+ 10844: 0xC3DF,
+ 10845: 0xC3E0,
+ 10846: 0xC3E2,
+ 10847: 0xC3E8,
+ 10848: 0xC3E9,
+ 10849: 0xC3ED,
+ 10850: 0xC3F4,
+ 10851: 0xC3F5,
+ 10852: 0xC3F8,
+ 10853: 0xC408,
+ 10854: 0xC410,
+ 10855: 0xC424,
+ 10856: 0xC42C,
+ 10857: 0xC430,
+ 10858: 0xD438,
+ 10859: 0xD439,
+ 10860: 0xD43A,
+ 10861: 0xD43B,
+ 10862: 0xD43C,
+ 10863: 0xD43D,
+ 10864: 0xD43E,
+ 10865: 0xD43F,
+ 10866: 0xD441,
+ 10867: 0xD442,
+ 10868: 0xD443,
+ 10869: 0xD445,
+ 10870: 0xD446,
+ 10871: 0xD447,
+ 10872: 0xD448,
+ 10873: 0xD449,
+ 10874: 0xD44A,
+ 10875: 0xD44B,
+ 10876: 0xD44C,
+ 10877: 0xD44D,
+ 10878: 0xD44E,
+ 10879: 0xD44F,
+ 10880: 0xD450,
+ 10881: 0xD451,
+ 10882: 0xD452,
+ 10883: 0xD453,
+ 10884: 0xD454,
+ 10885: 0xD455,
+ 10886: 0xD456,
+ 10887: 0xD457,
+ 10888: 0xD458,
+ 10889: 0xD459,
+ 10890: 0xD45A,
+ 10891: 0xD45B,
+ 10892: 0xD45D,
+ 10893: 0xD45E,
+ 10894: 0xD45F,
+ 10895: 0xD461,
+ 10896: 0xD462,
+ 10897: 0xD463,
+ 10898: 0xD465,
+ 10899: 0xD466,
+ 10900: 0xD467,
+ 10901: 0xD468,
+ 10902: 0xD469,
+ 10903: 0xD46A,
+ 10904: 0xD46B,
+ 10905: 0xD46C,
+ 10906: 0xD46E,
+ 10907: 0xD470,
+ 10908: 0xD471,
+ 10909: 0xD472,
+ 10910: 0xD473,
+ 10911: 0xD474,
+ 10912: 0xD475,
+ 10913: 0xD476,
+ 10914: 0xD477,
+ 10915: 0xD47A,
+ 10916: 0xD47B,
+ 10917: 0xD47D,
+ 10918: 0xD47E,
+ 10919: 0xD481,
+ 10920: 0xD483,
+ 10921: 0xD484,
+ 10922: 0xD485,
+ 10923: 0xD486,
+ 10924: 0xD487,
+ 10925: 0xD48A,
+ 10926: 0xD48C,
+ 10927: 0xD48E,
+ 10928: 0xD48F,
+ 10929: 0xD490,
+ 10930: 0xD491,
+ 10931: 0xD492,
+ 10932: 0xD493,
+ 10933: 0xD495,
+ 10934: 0xD496,
+ 10935: 0xD497,
+ 10936: 0xD498,
+ 10937: 0xD499,
+ 10938: 0xD49A,
+ 10939: 0xD49B,
+ 10940: 0xD49C,
+ 10941: 0xD49D,
+ 10942: 0xC434,
+ 10943: 0xC43C,
+ 10944: 0xC43D,
+ 10945: 0xC448,
+ 10946: 0xC464,
+ 10947: 0xC465,
+ 10948: 0xC468,
+ 10949: 0xC46C,
+ 10950: 0xC474,
+ 10951: 0xC475,
+ 10952: 0xC479,
+ 10953: 0xC480,
+ 10954: 0xC494,
+ 10955: 0xC49C,
+ 10956: 0xC4B8,
+ 10957: 0xC4BC,
+ 10958: 0xC4E9,
+ 10959: 0xC4F0,
+ 10960: 0xC4F1,
+ 10961: 0xC4F4,
+ 10962: 0xC4F8,
+ 10963: 0xC4FA,
+ 10964: 0xC4FF,
+ 10965: 0xC500,
+ 10966: 0xC501,
+ 10967: 0xC50C,
+ 10968: 0xC510,
+ 10969: 0xC514,
+ 10970: 0xC51C,
+ 10971: 0xC528,
+ 10972: 0xC529,
+ 10973: 0xC52C,
+ 10974: 0xC530,
+ 10975: 0xC538,
+ 10976: 0xC539,
+ 10977: 0xC53B,
+ 10978: 0xC53D,
+ 10979: 0xC544,
+ 10980: 0xC545,
+ 10981: 0xC548,
+ 10982: 0xC549,
+ 10983: 0xC54A,
+ 10984: 0xC54C,
+ 10985: 0xC54D,
+ 10986: 0xC54E,
+ 10987: 0xC553,
+ 10988: 0xC554,
+ 10989: 0xC555,
+ 10990: 0xC557,
+ 10991: 0xC558,
+ 10992: 0xC559,
+ 10993: 0xC55D,
+ 10994: 0xC55E,
+ 10995: 0xC560,
+ 10996: 0xC561,
+ 10997: 0xC564,
+ 10998: 0xC568,
+ 10999: 0xC570,
+ 11000: 0xC571,
+ 11001: 0xC573,
+ 11002: 0xC574,
+ 11003: 0xC575,
+ 11004: 0xC57C,
+ 11005: 0xC57D,
+ 11006: 0xC580,
+ 11007: 0xC584,
+ 11008: 0xC587,
+ 11009: 0xC58C,
+ 11010: 0xC58D,
+ 11011: 0xC58F,
+ 11012: 0xC591,
+ 11013: 0xC595,
+ 11014: 0xC597,
+ 11015: 0xC598,
+ 11016: 0xC59C,
+ 11017: 0xC5A0,
+ 11018: 0xC5A9,
+ 11019: 0xC5B4,
+ 11020: 0xC5B5,
+ 11021: 0xC5B8,
+ 11022: 0xC5B9,
+ 11023: 0xC5BB,
+ 11024: 0xC5BC,
+ 11025: 0xC5BD,
+ 11026: 0xC5BE,
+ 11027: 0xC5C4,
+ 11028: 0xC5C5,
+ 11029: 0xC5C6,
+ 11030: 0xC5C7,
+ 11031: 0xC5C8,
+ 11032: 0xC5C9,
+ 11033: 0xC5CA,
+ 11034: 0xC5CC,
+ 11035: 0xC5CE,
+ 11036: 0xD49E,
+ 11037: 0xD49F,
+ 11038: 0xD4A0,
+ 11039: 0xD4A1,
+ 11040: 0xD4A2,
+ 11041: 0xD4A3,
+ 11042: 0xD4A4,
+ 11043: 0xD4A5,
+ 11044: 0xD4A6,
+ 11045: 0xD4A7,
+ 11046: 0xD4A8,
+ 11047: 0xD4AA,
+ 11048: 0xD4AB,
+ 11049: 0xD4AC,
+ 11050: 0xD4AD,
+ 11051: 0xD4AE,
+ 11052: 0xD4AF,
+ 11053: 0xD4B0,
+ 11054: 0xD4B1,
+ 11055: 0xD4B2,
+ 11056: 0xD4B3,
+ 11057: 0xD4B4,
+ 11058: 0xD4B5,
+ 11059: 0xD4B6,
+ 11060: 0xD4B7,
+ 11061: 0xD4B8,
+ 11062: 0xD4B9,
+ 11063: 0xD4BA,
+ 11064: 0xD4BB,
+ 11065: 0xD4BC,
+ 11066: 0xD4BD,
+ 11067: 0xD4BE,
+ 11068: 0xD4BF,
+ 11069: 0xD4C0,
+ 11070: 0xD4C1,
+ 11071: 0xD4C2,
+ 11072: 0xD4C3,
+ 11073: 0xD4C4,
+ 11074: 0xD4C5,
+ 11075: 0xD4C6,
+ 11076: 0xD4C7,
+ 11077: 0xD4C8,
+ 11078: 0xD4C9,
+ 11079: 0xD4CA,
+ 11080: 0xD4CB,
+ 11081: 0xD4CD,
+ 11082: 0xD4CE,
+ 11083: 0xD4CF,
+ 11084: 0xD4D1,
+ 11085: 0xD4D2,
+ 11086: 0xD4D3,
+ 11087: 0xD4D5,
+ 11088: 0xD4D6,
+ 11089: 0xD4D7,
+ 11090: 0xD4D8,
+ 11091: 0xD4D9,
+ 11092: 0xD4DA,
+ 11093: 0xD4DB,
+ 11094: 0xD4DD,
+ 11095: 0xD4DE,
+ 11096: 0xD4E0,
+ 11097: 0xD4E1,
+ 11098: 0xD4E2,
+ 11099: 0xD4E3,
+ 11100: 0xD4E4,
+ 11101: 0xD4E5,
+ 11102: 0xD4E6,
+ 11103: 0xD4E7,
+ 11104: 0xD4E9,
+ 11105: 0xD4EA,
+ 11106: 0xD4EB,
+ 11107: 0xD4ED,
+ 11108: 0xD4EE,
+ 11109: 0xD4EF,
+ 11110: 0xD4F1,
+ 11111: 0xD4F2,
+ 11112: 0xD4F3,
+ 11113: 0xD4F4,
+ 11114: 0xD4F5,
+ 11115: 0xD4F6,
+ 11116: 0xD4F7,
+ 11117: 0xD4F9,
+ 11118: 0xD4FA,
+ 11119: 0xD4FC,
+ 11120: 0xC5D0,
+ 11121: 0xC5D1,
+ 11122: 0xC5D4,
+ 11123: 0xC5D8,
+ 11124: 0xC5E0,
+ 11125: 0xC5E1,
+ 11126: 0xC5E3,
+ 11127: 0xC5E5,
+ 11128: 0xC5EC,
+ 11129: 0xC5ED,
+ 11130: 0xC5EE,
+ 11131: 0xC5F0,
+ 11132: 0xC5F4,
+ 11133: 0xC5F6,
+ 11134: 0xC5F7,
+ 11135: 0xC5FC,
+ 11136: 0xC5FD,
+ 11137: 0xC5FE,
+ 11138: 0xC5FF,
+ 11139: 0xC600,
+ 11140: 0xC601,
+ 11141: 0xC605,
+ 11142: 0xC606,
+ 11143: 0xC607,
+ 11144: 0xC608,
+ 11145: 0xC60C,
+ 11146: 0xC610,
+ 11147: 0xC618,
+ 11148: 0xC619,
+ 11149: 0xC61B,
+ 11150: 0xC61C,
+ 11151: 0xC624,
+ 11152: 0xC625,
+ 11153: 0xC628,
+ 11154: 0xC62C,
+ 11155: 0xC62D,
+ 11156: 0xC62E,
+ 11157: 0xC630,
+ 11158: 0xC633,
+ 11159: 0xC634,
+ 11160: 0xC635,
+ 11161: 0xC637,
+ 11162: 0xC639,
+ 11163: 0xC63B,
+ 11164: 0xC640,
+ 11165: 0xC641,
+ 11166: 0xC644,
+ 11167: 0xC648,
+ 11168: 0xC650,
+ 11169: 0xC651,
+ 11170: 0xC653,
+ 11171: 0xC654,
+ 11172: 0xC655,
+ 11173: 0xC65C,
+ 11174: 0xC65D,
+ 11175: 0xC660,
+ 11176: 0xC66C,
+ 11177: 0xC66F,
+ 11178: 0xC671,
+ 11179: 0xC678,
+ 11180: 0xC679,
+ 11181: 0xC67C,
+ 11182: 0xC680,
+ 11183: 0xC688,
+ 11184: 0xC689,
+ 11185: 0xC68B,
+ 11186: 0xC68D,
+ 11187: 0xC694,
+ 11188: 0xC695,
+ 11189: 0xC698,
+ 11190: 0xC69C,
+ 11191: 0xC6A4,
+ 11192: 0xC6A5,
+ 11193: 0xC6A7,
+ 11194: 0xC6A9,
+ 11195: 0xC6B0,
+ 11196: 0xC6B1,
+ 11197: 0xC6B4,
+ 11198: 0xC6B8,
+ 11199: 0xC6B9,
+ 11200: 0xC6BA,
+ 11201: 0xC6C0,
+ 11202: 0xC6C1,
+ 11203: 0xC6C3,
+ 11204: 0xC6C5,
+ 11205: 0xC6CC,
+ 11206: 0xC6CD,
+ 11207: 0xC6D0,
+ 11208: 0xC6D4,
+ 11209: 0xC6DC,
+ 11210: 0xC6DD,
+ 11211: 0xC6E0,
+ 11212: 0xC6E1,
+ 11213: 0xC6E8,
+ 11214: 0xD4FE,
+ 11215: 0xD4FF,
+ 11216: 0xD500,
+ 11217: 0xD501,
+ 11218: 0xD502,
+ 11219: 0xD503,
+ 11220: 0xD505,
+ 11221: 0xD506,
+ 11222: 0xD507,
+ 11223: 0xD509,
+ 11224: 0xD50A,
+ 11225: 0xD50B,
+ 11226: 0xD50D,
+ 11227: 0xD50E,
+ 11228: 0xD50F,
+ 11229: 0xD510,
+ 11230: 0xD511,
+ 11231: 0xD512,
+ 11232: 0xD513,
+ 11233: 0xD516,
+ 11234: 0xD518,
+ 11235: 0xD519,
+ 11236: 0xD51A,
+ 11237: 0xD51B,
+ 11238: 0xD51C,
+ 11239: 0xD51D,
+ 11240: 0xD51E,
+ 11241: 0xD51F,
+ 11242: 0xD520,
+ 11243: 0xD521,
+ 11244: 0xD522,
+ 11245: 0xD523,
+ 11246: 0xD524,
+ 11247: 0xD525,
+ 11248: 0xD526,
+ 11249: 0xD527,
+ 11250: 0xD528,
+ 11251: 0xD529,
+ 11252: 0xD52A,
+ 11253: 0xD52B,
+ 11254: 0xD52C,
+ 11255: 0xD52D,
+ 11256: 0xD52E,
+ 11257: 0xD52F,
+ 11258: 0xD530,
+ 11259: 0xD531,
+ 11260: 0xD532,
+ 11261: 0xD533,
+ 11262: 0xD534,
+ 11263: 0xD535,
+ 11264: 0xD536,
+ 11265: 0xD537,
+ 11266: 0xD538,
+ 11267: 0xD539,
+ 11268: 0xD53A,
+ 11269: 0xD53B,
+ 11270: 0xD53E,
+ 11271: 0xD53F,
+ 11272: 0xD541,
+ 11273: 0xD542,
+ 11274: 0xD543,
+ 11275: 0xD545,
+ 11276: 0xD546,
+ 11277: 0xD547,
+ 11278: 0xD548,
+ 11279: 0xD549,
+ 11280: 0xD54A,
+ 11281: 0xD54B,
+ 11282: 0xD54E,
+ 11283: 0xD550,
+ 11284: 0xD552,
+ 11285: 0xD553,
+ 11286: 0xD554,
+ 11287: 0xD555,
+ 11288: 0xD556,
+ 11289: 0xD557,
+ 11290: 0xD55A,
+ 11291: 0xD55B,
+ 11292: 0xD55D,
+ 11293: 0xD55E,
+ 11294: 0xD55F,
+ 11295: 0xD561,
+ 11296: 0xD562,
+ 11297: 0xD563,
+ 11298: 0xC6E9,
+ 11299: 0xC6EC,
+ 11300: 0xC6F0,
+ 11301: 0xC6F8,
+ 11302: 0xC6F9,
+ 11303: 0xC6FD,
+ 11304: 0xC704,
+ 11305: 0xC705,
+ 11306: 0xC708,
+ 11307: 0xC70C,
+ 11308: 0xC714,
+ 11309: 0xC715,
+ 11310: 0xC717,
+ 11311: 0xC719,
+ 11312: 0xC720,
+ 11313: 0xC721,
+ 11314: 0xC724,
+ 11315: 0xC728,
+ 11316: 0xC730,
+ 11317: 0xC731,
+ 11318: 0xC733,
+ 11319: 0xC735,
+ 11320: 0xC737,
+ 11321: 0xC73C,
+ 11322: 0xC73D,
+ 11323: 0xC740,
+ 11324: 0xC744,
+ 11325: 0xC74A,
+ 11326: 0xC74C,
+ 11327: 0xC74D,
+ 11328: 0xC74F,
+ 11329: 0xC751,
+ 11330: 0xC752,
+ 11331: 0xC753,
+ 11332: 0xC754,
+ 11333: 0xC755,
+ 11334: 0xC756,
+ 11335: 0xC757,
+ 11336: 0xC758,
+ 11337: 0xC75C,
+ 11338: 0xC760,
+ 11339: 0xC768,
+ 11340: 0xC76B,
+ 11341: 0xC774,
+ 11342: 0xC775,
+ 11343: 0xC778,
+ 11344: 0xC77C,
+ 11345: 0xC77D,
+ 11346: 0xC77E,
+ 11347: 0xC783,
+ 11348: 0xC784,
+ 11349: 0xC785,
+ 11350: 0xC787,
+ 11351: 0xC788,
+ 11352: 0xC789,
+ 11353: 0xC78A,
+ 11354: 0xC78E,
+ 11355: 0xC790,
+ 11356: 0xC791,
+ 11357: 0xC794,
+ 11358: 0xC796,
+ 11359: 0xC797,
+ 11360: 0xC798,
+ 11361: 0xC79A,
+ 11362: 0xC7A0,
+ 11363: 0xC7A1,
+ 11364: 0xC7A3,
+ 11365: 0xC7A4,
+ 11366: 0xC7A5,
+ 11367: 0xC7A6,
+ 11368: 0xC7AC,
+ 11369: 0xC7AD,
+ 11370: 0xC7B0,
+ 11371: 0xC7B4,
+ 11372: 0xC7BC,
+ 11373: 0xC7BD,
+ 11374: 0xC7BF,
+ 11375: 0xC7C0,
+ 11376: 0xC7C1,
+ 11377: 0xC7C8,
+ 11378: 0xC7C9,
+ 11379: 0xC7CC,
+ 11380: 0xC7CE,
+ 11381: 0xC7D0,
+ 11382: 0xC7D8,
+ 11383: 0xC7DD,
+ 11384: 0xC7E4,
+ 11385: 0xC7E8,
+ 11386: 0xC7EC,
+ 11387: 0xC800,
+ 11388: 0xC801,
+ 11389: 0xC804,
+ 11390: 0xC808,
+ 11391: 0xC80A,
+ 11392: 0xD564,
+ 11393: 0xD566,
+ 11394: 0xD567,
+ 11395: 0xD56A,
+ 11396: 0xD56C,
+ 11397: 0xD56E,
+ 11398: 0xD56F,
+ 11399: 0xD570,
+ 11400: 0xD571,
+ 11401: 0xD572,
+ 11402: 0xD573,
+ 11403: 0xD576,
+ 11404: 0xD577,
+ 11405: 0xD579,
+ 11406: 0xD57A,
+ 11407: 0xD57B,
+ 11408: 0xD57D,
+ 11409: 0xD57E,
+ 11410: 0xD57F,
+ 11411: 0xD580,
+ 11412: 0xD581,
+ 11413: 0xD582,
+ 11414: 0xD583,
+ 11415: 0xD586,
+ 11416: 0xD58A,
+ 11417: 0xD58B,
+ 11418: 0xD58C,
+ 11419: 0xD58D,
+ 11420: 0xD58E,
+ 11421: 0xD58F,
+ 11422: 0xD591,
+ 11423: 0xD592,
+ 11424: 0xD593,
+ 11425: 0xD594,
+ 11426: 0xD595,
+ 11427: 0xD596,
+ 11428: 0xD597,
+ 11429: 0xD598,
+ 11430: 0xD599,
+ 11431: 0xD59A,
+ 11432: 0xD59B,
+ 11433: 0xD59C,
+ 11434: 0xD59D,
+ 11435: 0xD59E,
+ 11436: 0xD59F,
+ 11437: 0xD5A0,
+ 11438: 0xD5A1,
+ 11439: 0xD5A2,
+ 11440: 0xD5A3,
+ 11441: 0xD5A4,
+ 11442: 0xD5A6,
+ 11443: 0xD5A7,
+ 11444: 0xD5A8,
+ 11445: 0xD5A9,
+ 11446: 0xD5AA,
+ 11447: 0xD5AB,
+ 11448: 0xD5AC,
+ 11449: 0xD5AD,
+ 11450: 0xD5AE,
+ 11451: 0xD5AF,
+ 11452: 0xD5B0,
+ 11453: 0xD5B1,
+ 11454: 0xD5B2,
+ 11455: 0xD5B3,
+ 11456: 0xD5B4,
+ 11457: 0xD5B5,
+ 11458: 0xD5B6,
+ 11459: 0xD5B7,
+ 11460: 0xD5B8,
+ 11461: 0xD5B9,
+ 11462: 0xD5BA,
+ 11463: 0xD5BB,
+ 11464: 0xD5BC,
+ 11465: 0xD5BD,
+ 11466: 0xD5BE,
+ 11467: 0xD5BF,
+ 11468: 0xD5C0,
+ 11469: 0xD5C1,
+ 11470: 0xD5C2,
+ 11471: 0xD5C3,
+ 11472: 0xD5C4,
+ 11473: 0xD5C5,
+ 11474: 0xD5C6,
+ 11475: 0xD5C7,
+ 11476: 0xC810,
+ 11477: 0xC811,
+ 11478: 0xC813,
+ 11479: 0xC815,
+ 11480: 0xC816,
+ 11481: 0xC81C,
+ 11482: 0xC81D,
+ 11483: 0xC820,
+ 11484: 0xC824,
+ 11485: 0xC82C,
+ 11486: 0xC82D,
+ 11487: 0xC82F,
+ 11488: 0xC831,
+ 11489: 0xC838,
+ 11490: 0xC83C,
+ 11491: 0xC840,
+ 11492: 0xC848,
+ 11493: 0xC849,
+ 11494: 0xC84C,
+ 11495: 0xC84D,
+ 11496: 0xC854,
+ 11497: 0xC870,
+ 11498: 0xC871,
+ 11499: 0xC874,
+ 11500: 0xC878,
+ 11501: 0xC87A,
+ 11502: 0xC880,
+ 11503: 0xC881,
+ 11504: 0xC883,
+ 11505: 0xC885,
+ 11506: 0xC886,
+ 11507: 0xC887,
+ 11508: 0xC88B,
+ 11509: 0xC88C,
+ 11510: 0xC88D,
+ 11511: 0xC894,
+ 11512: 0xC89D,
+ 11513: 0xC89F,
+ 11514: 0xC8A1,
+ 11515: 0xC8A8,
+ 11516: 0xC8BC,
+ 11517: 0xC8BD,
+ 11518: 0xC8C4,
+ 11519: 0xC8C8,
+ 11520: 0xC8CC,
+ 11521: 0xC8D4,
+ 11522: 0xC8D5,
+ 11523: 0xC8D7,
+ 11524: 0xC8D9,
+ 11525: 0xC8E0,
+ 11526: 0xC8E1,
+ 11527: 0xC8E4,
+ 11528: 0xC8F5,
+ 11529: 0xC8FC,
+ 11530: 0xC8FD,
+ 11531: 0xC900,
+ 11532: 0xC904,
+ 11533: 0xC905,
+ 11534: 0xC906,
+ 11535: 0xC90C,
+ 11536: 0xC90D,
+ 11537: 0xC90F,
+ 11538: 0xC911,
+ 11539: 0xC918,
+ 11540: 0xC92C,
+ 11541: 0xC934,
+ 11542: 0xC950,
+ 11543: 0xC951,
+ 11544: 0xC954,
+ 11545: 0xC958,
+ 11546: 0xC960,
+ 11547: 0xC961,
+ 11548: 0xC963,
+ 11549: 0xC96C,
+ 11550: 0xC970,
+ 11551: 0xC974,
+ 11552: 0xC97C,
+ 11553: 0xC988,
+ 11554: 0xC989,
+ 11555: 0xC98C,
+ 11556: 0xC990,
+ 11557: 0xC998,
+ 11558: 0xC999,
+ 11559: 0xC99B,
+ 11560: 0xC99D,
+ 11561: 0xC9C0,
+ 11562: 0xC9C1,
+ 11563: 0xC9C4,
+ 11564: 0xC9C7,
+ 11565: 0xC9C8,
+ 11566: 0xC9CA,
+ 11567: 0xC9D0,
+ 11568: 0xC9D1,
+ 11569: 0xC9D3,
+ 11570: 0xD5CA,
+ 11571: 0xD5CB,
+ 11572: 0xD5CD,
+ 11573: 0xD5CE,
+ 11574: 0xD5CF,
+ 11575: 0xD5D1,
+ 11576: 0xD5D3,
+ 11577: 0xD5D4,
+ 11578: 0xD5D5,
+ 11579: 0xD5D6,
+ 11580: 0xD5D7,
+ 11581: 0xD5DA,
+ 11582: 0xD5DC,
+ 11583: 0xD5DE,
+ 11584: 0xD5DF,
+ 11585: 0xD5E0,
+ 11586: 0xD5E1,
+ 11587: 0xD5E2,
+ 11588: 0xD5E3,
+ 11589: 0xD5E6,
+ 11590: 0xD5E7,
+ 11591: 0xD5E9,
+ 11592: 0xD5EA,
+ 11593: 0xD5EB,
+ 11594: 0xD5ED,
+ 11595: 0xD5EE,
+ 11596: 0xD5EF,
+ 11597: 0xD5F0,
+ 11598: 0xD5F1,
+ 11599: 0xD5F2,
+ 11600: 0xD5F3,
+ 11601: 0xD5F6,
+ 11602: 0xD5F8,
+ 11603: 0xD5FA,
+ 11604: 0xD5FB,
+ 11605: 0xD5FC,
+ 11606: 0xD5FD,
+ 11607: 0xD5FE,
+ 11608: 0xD5FF,
+ 11609: 0xD602,
+ 11610: 0xD603,
+ 11611: 0xD605,
+ 11612: 0xD606,
+ 11613: 0xD607,
+ 11614: 0xD609,
+ 11615: 0xD60A,
+ 11616: 0xD60B,
+ 11617: 0xD60C,
+ 11618: 0xD60D,
+ 11619: 0xD60E,
+ 11620: 0xD60F,
+ 11621: 0xD612,
+ 11622: 0xD616,
+ 11623: 0xD617,
+ 11624: 0xD618,
+ 11625: 0xD619,
+ 11626: 0xD61A,
+ 11627: 0xD61B,
+ 11628: 0xD61D,
+ 11629: 0xD61E,
+ 11630: 0xD61F,
+ 11631: 0xD621,
+ 11632: 0xD622,
+ 11633: 0xD623,
+ 11634: 0xD625,
+ 11635: 0xD626,
+ 11636: 0xD627,
+ 11637: 0xD628,
+ 11638: 0xD629,
+ 11639: 0xD62A,
+ 11640: 0xD62B,
+ 11641: 0xD62C,
+ 11642: 0xD62E,
+ 11643: 0xD62F,
+ 11644: 0xD630,
+ 11645: 0xD631,
+ 11646: 0xD632,
+ 11647: 0xD633,
+ 11648: 0xD634,
+ 11649: 0xD635,
+ 11650: 0xD636,
+ 11651: 0xD637,
+ 11652: 0xD63A,
+ 11653: 0xD63B,
+ 11654: 0xC9D5,
+ 11655: 0xC9D6,
+ 11656: 0xC9D9,
+ 11657: 0xC9DA,
+ 11658: 0xC9DC,
+ 11659: 0xC9DD,
+ 11660: 0xC9E0,
+ 11661: 0xC9E2,
+ 11662: 0xC9E4,
+ 11663: 0xC9E7,
+ 11664: 0xC9EC,
+ 11665: 0xC9ED,
+ 11666: 0xC9EF,
+ 11667: 0xC9F0,
+ 11668: 0xC9F1,
+ 11669: 0xC9F8,
+ 11670: 0xC9F9,
+ 11671: 0xC9FC,
+ 11672: 0xCA00,
+ 11673: 0xCA08,
+ 11674: 0xCA09,
+ 11675: 0xCA0B,
+ 11676: 0xCA0C,
+ 11677: 0xCA0D,
+ 11678: 0xCA14,
+ 11679: 0xCA18,
+ 11680: 0xCA29,
+ 11681: 0xCA4C,
+ 11682: 0xCA4D,
+ 11683: 0xCA50,
+ 11684: 0xCA54,
+ 11685: 0xCA5C,
+ 11686: 0xCA5D,
+ 11687: 0xCA5F,
+ 11688: 0xCA60,
+ 11689: 0xCA61,
+ 11690: 0xCA68,
+ 11691: 0xCA7D,
+ 11692: 0xCA84,
+ 11693: 0xCA98,
+ 11694: 0xCABC,
+ 11695: 0xCABD,
+ 11696: 0xCAC0,
+ 11697: 0xCAC4,
+ 11698: 0xCACC,
+ 11699: 0xCACD,
+ 11700: 0xCACF,
+ 11701: 0xCAD1,
+ 11702: 0xCAD3,
+ 11703: 0xCAD8,
+ 11704: 0xCAD9,
+ 11705: 0xCAE0,
+ 11706: 0xCAEC,
+ 11707: 0xCAF4,
+ 11708: 0xCB08,
+ 11709: 0xCB10,
+ 11710: 0xCB14,
+ 11711: 0xCB18,
+ 11712: 0xCB20,
+ 11713: 0xCB21,
+ 11714: 0xCB41,
+ 11715: 0xCB48,
+ 11716: 0xCB49,
+ 11717: 0xCB4C,
+ 11718: 0xCB50,
+ 11719: 0xCB58,
+ 11720: 0xCB59,
+ 11721: 0xCB5D,
+ 11722: 0xCB64,
+ 11723: 0xCB78,
+ 11724: 0xCB79,
+ 11725: 0xCB9C,
+ 11726: 0xCBB8,
+ 11727: 0xCBD4,
+ 11728: 0xCBE4,
+ 11729: 0xCBE7,
+ 11730: 0xCBE9,
+ 11731: 0xCC0C,
+ 11732: 0xCC0D,
+ 11733: 0xCC10,
+ 11734: 0xCC14,
+ 11735: 0xCC1C,
+ 11736: 0xCC1D,
+ 11737: 0xCC21,
+ 11738: 0xCC22,
+ 11739: 0xCC27,
+ 11740: 0xCC28,
+ 11741: 0xCC29,
+ 11742: 0xCC2C,
+ 11743: 0xCC2E,
+ 11744: 0xCC30,
+ 11745: 0xCC38,
+ 11746: 0xCC39,
+ 11747: 0xCC3B,
+ 11748: 0xD63D,
+ 11749: 0xD63E,
+ 11750: 0xD63F,
+ 11751: 0xD641,
+ 11752: 0xD642,
+ 11753: 0xD643,
+ 11754: 0xD644,
+ 11755: 0xD646,
+ 11756: 0xD647,
+ 11757: 0xD64A,
+ 11758: 0xD64C,
+ 11759: 0xD64E,
+ 11760: 0xD64F,
+ 11761: 0xD650,
+ 11762: 0xD652,
+ 11763: 0xD653,
+ 11764: 0xD656,
+ 11765: 0xD657,
+ 11766: 0xD659,
+ 11767: 0xD65A,
+ 11768: 0xD65B,
+ 11769: 0xD65D,
+ 11770: 0xD65E,
+ 11771: 0xD65F,
+ 11772: 0xD660,
+ 11773: 0xD661,
+ 11774: 0xD662,
+ 11775: 0xD663,
+ 11776: 0xD664,
+ 11777: 0xD665,
+ 11778: 0xD666,
+ 11779: 0xD668,
+ 11780: 0xD66A,
+ 11781: 0xD66B,
+ 11782: 0xD66C,
+ 11783: 0xD66D,
+ 11784: 0xD66E,
+ 11785: 0xD66F,
+ 11786: 0xD672,
+ 11787: 0xD673,
+ 11788: 0xD675,
+ 11789: 0xD676,
+ 11790: 0xD677,
+ 11791: 0xD678,
+ 11792: 0xD679,
+ 11793: 0xD67A,
+ 11794: 0xD67B,
+ 11795: 0xD67C,
+ 11796: 0xD67D,
+ 11797: 0xD67E,
+ 11798: 0xD67F,
+ 11799: 0xD680,
+ 11800: 0xD681,
+ 11801: 0xD682,
+ 11802: 0xD684,
+ 11803: 0xD686,
+ 11804: 0xD687,
+ 11805: 0xD688,
+ 11806: 0xD689,
+ 11807: 0xD68A,
+ 11808: 0xD68B,
+ 11809: 0xD68E,
+ 11810: 0xD68F,
+ 11811: 0xD691,
+ 11812: 0xD692,
+ 11813: 0xD693,
+ 11814: 0xD695,
+ 11815: 0xD696,
+ 11816: 0xD697,
+ 11817: 0xD698,
+ 11818: 0xD699,
+ 11819: 0xD69A,
+ 11820: 0xD69B,
+ 11821: 0xD69C,
+ 11822: 0xD69E,
+ 11823: 0xD6A0,
+ 11824: 0xD6A2,
+ 11825: 0xD6A3,
+ 11826: 0xD6A4,
+ 11827: 0xD6A5,
+ 11828: 0xD6A6,
+ 11829: 0xD6A7,
+ 11830: 0xD6A9,
+ 11831: 0xD6AA,
+ 11832: 0xCC3C,
+ 11833: 0xCC3D,
+ 11834: 0xCC3E,
+ 11835: 0xCC44,
+ 11836: 0xCC45,
+ 11837: 0xCC48,
+ 11838: 0xCC4C,
+ 11839: 0xCC54,
+ 11840: 0xCC55,
+ 11841: 0xCC57,
+ 11842: 0xCC58,
+ 11843: 0xCC59,
+ 11844: 0xCC60,
+ 11845: 0xCC64,
+ 11846: 0xCC66,
+ 11847: 0xCC68,
+ 11848: 0xCC70,
+ 11849: 0xCC75,
+ 11850: 0xCC98,
+ 11851: 0xCC99,
+ 11852: 0xCC9C,
+ 11853: 0xCCA0,
+ 11854: 0xCCA8,
+ 11855: 0xCCA9,
+ 11856: 0xCCAB,
+ 11857: 0xCCAC,
+ 11858: 0xCCAD,
+ 11859: 0xCCB4,
+ 11860: 0xCCB5,
+ 11861: 0xCCB8,
+ 11862: 0xCCBC,
+ 11863: 0xCCC4,
+ 11864: 0xCCC5,
+ 11865: 0xCCC7,
+ 11866: 0xCCC9,
+ 11867: 0xCCD0,
+ 11868: 0xCCD4,
+ 11869: 0xCCE4,
+ 11870: 0xCCEC,
+ 11871: 0xCCF0,
+ 11872: 0xCD01,
+ 11873: 0xCD08,
+ 11874: 0xCD09,
+ 11875: 0xCD0C,
+ 11876: 0xCD10,
+ 11877: 0xCD18,
+ 11878: 0xCD19,
+ 11879: 0xCD1B,
+ 11880: 0xCD1D,
+ 11881: 0xCD24,
+ 11882: 0xCD28,
+ 11883: 0xCD2C,
+ 11884: 0xCD39,
+ 11885: 0xCD5C,
+ 11886: 0xCD60,
+ 11887: 0xCD64,
+ 11888: 0xCD6C,
+ 11889: 0xCD6D,
+ 11890: 0xCD6F,
+ 11891: 0xCD71,
+ 11892: 0xCD78,
+ 11893: 0xCD88,
+ 11894: 0xCD94,
+ 11895: 0xCD95,
+ 11896: 0xCD98,
+ 11897: 0xCD9C,
+ 11898: 0xCDA4,
+ 11899: 0xCDA5,
+ 11900: 0xCDA7,
+ 11901: 0xCDA9,
+ 11902: 0xCDB0,
+ 11903: 0xCDC4,
+ 11904: 0xCDCC,
+ 11905: 0xCDD0,
+ 11906: 0xCDE8,
+ 11907: 0xCDEC,
+ 11908: 0xCDF0,
+ 11909: 0xCDF8,
+ 11910: 0xCDF9,
+ 11911: 0xCDFB,
+ 11912: 0xCDFD,
+ 11913: 0xCE04,
+ 11914: 0xCE08,
+ 11915: 0xCE0C,
+ 11916: 0xCE14,
+ 11917: 0xCE19,
+ 11918: 0xCE20,
+ 11919: 0xCE21,
+ 11920: 0xCE24,
+ 11921: 0xCE28,
+ 11922: 0xCE30,
+ 11923: 0xCE31,
+ 11924: 0xCE33,
+ 11925: 0xCE35,
+ 11926: 0xD6AB,
+ 11927: 0xD6AD,
+ 11928: 0xD6AE,
+ 11929: 0xD6AF,
+ 11930: 0xD6B1,
+ 11931: 0xD6B2,
+ 11932: 0xD6B3,
+ 11933: 0xD6B4,
+ 11934: 0xD6B5,
+ 11935: 0xD6B6,
+ 11936: 0xD6B7,
+ 11937: 0xD6B8,
+ 11938: 0xD6BA,
+ 11939: 0xD6BC,
+ 11940: 0xD6BD,
+ 11941: 0xD6BE,
+ 11942: 0xD6BF,
+ 11943: 0xD6C0,
+ 11944: 0xD6C1,
+ 11945: 0xD6C2,
+ 11946: 0xD6C3,
+ 11947: 0xD6C6,
+ 11948: 0xD6C7,
+ 11949: 0xD6C9,
+ 11950: 0xD6CA,
+ 11951: 0xD6CB,
+ 11952: 0xD6CD,
+ 11953: 0xD6CE,
+ 11954: 0xD6CF,
+ 11955: 0xD6D0,
+ 11956: 0xD6D2,
+ 11957: 0xD6D3,
+ 11958: 0xD6D5,
+ 11959: 0xD6D6,
+ 11960: 0xD6D8,
+ 11961: 0xD6DA,
+ 11962: 0xD6DB,
+ 11963: 0xD6DC,
+ 11964: 0xD6DD,
+ 11965: 0xD6DE,
+ 11966: 0xD6DF,
+ 11967: 0xD6E1,
+ 11968: 0xD6E2,
+ 11969: 0xD6E3,
+ 11970: 0xD6E5,
+ 11971: 0xD6E6,
+ 11972: 0xD6E7,
+ 11973: 0xD6E9,
+ 11974: 0xD6EA,
+ 11975: 0xD6EB,
+ 11976: 0xD6EC,
+ 11977: 0xD6ED,
+ 11978: 0xD6EE,
+ 11979: 0xD6EF,
+ 11980: 0xD6F1,
+ 11981: 0xD6F2,
+ 11982: 0xD6F3,
+ 11983: 0xD6F4,
+ 11984: 0xD6F6,
+ 11985: 0xD6F7,
+ 11986: 0xD6F8,
+ 11987: 0xD6F9,
+ 11988: 0xD6FA,
+ 11989: 0xD6FB,
+ 11990: 0xD6FE,
+ 11991: 0xD6FF,
+ 11992: 0xD701,
+ 11993: 0xD702,
+ 11994: 0xD703,
+ 11995: 0xD705,
+ 11996: 0xD706,
+ 11997: 0xD707,
+ 11998: 0xD708,
+ 11999: 0xD709,
+ 12000: 0xD70A,
+ 12001: 0xD70B,
+ 12002: 0xD70C,
+ 12003: 0xD70D,
+ 12004: 0xD70E,
+ 12005: 0xD70F,
+ 12006: 0xD710,
+ 12007: 0xD712,
+ 12008: 0xD713,
+ 12009: 0xD714,
+ 12010: 0xCE58,
+ 12011: 0xCE59,
+ 12012: 0xCE5C,
+ 12013: 0xCE5F,
+ 12014: 0xCE60,
+ 12015: 0xCE61,
+ 12016: 0xCE68,
+ 12017: 0xCE69,
+ 12018: 0xCE6B,
+ 12019: 0xCE6D,
+ 12020: 0xCE74,
+ 12021: 0xCE75,
+ 12022: 0xCE78,
+ 12023: 0xCE7C,
+ 12024: 0xCE84,
+ 12025: 0xCE85,
+ 12026: 0xCE87,
+ 12027: 0xCE89,
+ 12028: 0xCE90,
+ 12029: 0xCE91,
+ 12030: 0xCE94,
+ 12031: 0xCE98,
+ 12032: 0xCEA0,
+ 12033: 0xCEA1,
+ 12034: 0xCEA3,
+ 12035: 0xCEA4,
+ 12036: 0xCEA5,
+ 12037: 0xCEAC,
+ 12038: 0xCEAD,
+ 12039: 0xCEC1,
+ 12040: 0xCEE4,
+ 12041: 0xCEE5,
+ 12042: 0xCEE8,
+ 12043: 0xCEEB,
+ 12044: 0xCEEC,
+ 12045: 0xCEF4,
+ 12046: 0xCEF5,
+ 12047: 0xCEF7,
+ 12048: 0xCEF8,
+ 12049: 0xCEF9,
+ 12050: 0xCF00,
+ 12051: 0xCF01,
+ 12052: 0xCF04,
+ 12053: 0xCF08,
+ 12054: 0xCF10,
+ 12055: 0xCF11,
+ 12056: 0xCF13,
+ 12057: 0xCF15,
+ 12058: 0xCF1C,
+ 12059: 0xCF20,
+ 12060: 0xCF24,
+ 12061: 0xCF2C,
+ 12062: 0xCF2D,
+ 12063: 0xCF2F,
+ 12064: 0xCF30,
+ 12065: 0xCF31,
+ 12066: 0xCF38,
+ 12067: 0xCF54,
+ 12068: 0xCF55,
+ 12069: 0xCF58,
+ 12070: 0xCF5C,
+ 12071: 0xCF64,
+ 12072: 0xCF65,
+ 12073: 0xCF67,
+ 12074: 0xCF69,
+ 12075: 0xCF70,
+ 12076: 0xCF71,
+ 12077: 0xCF74,
+ 12078: 0xCF78,
+ 12079: 0xCF80,
+ 12080: 0xCF85,
+ 12081: 0xCF8C,
+ 12082: 0xCFA1,
+ 12083: 0xCFA8,
+ 12084: 0xCFB0,
+ 12085: 0xCFC4,
+ 12086: 0xCFE0,
+ 12087: 0xCFE1,
+ 12088: 0xCFE4,
+ 12089: 0xCFE8,
+ 12090: 0xCFF0,
+ 12091: 0xCFF1,
+ 12092: 0xCFF3,
+ 12093: 0xCFF5,
+ 12094: 0xCFFC,
+ 12095: 0xD000,
+ 12096: 0xD004,
+ 12097: 0xD011,
+ 12098: 0xD018,
+ 12099: 0xD02D,
+ 12100: 0xD034,
+ 12101: 0xD035,
+ 12102: 0xD038,
+ 12103: 0xD03C,
+ 12104: 0xD715,
+ 12105: 0xD716,
+ 12106: 0xD717,
+ 12107: 0xD71A,
+ 12108: 0xD71B,
+ 12109: 0xD71D,
+ 12110: 0xD71E,
+ 12111: 0xD71F,
+ 12112: 0xD721,
+ 12113: 0xD722,
+ 12114: 0xD723,
+ 12115: 0xD724,
+ 12116: 0xD725,
+ 12117: 0xD726,
+ 12118: 0xD727,
+ 12119: 0xD72A,
+ 12120: 0xD72C,
+ 12121: 0xD72E,
+ 12122: 0xD72F,
+ 12123: 0xD730,
+ 12124: 0xD731,
+ 12125: 0xD732,
+ 12126: 0xD733,
+ 12127: 0xD736,
+ 12128: 0xD737,
+ 12129: 0xD739,
+ 12130: 0xD73A,
+ 12131: 0xD73B,
+ 12132: 0xD73D,
+ 12133: 0xD73E,
+ 12134: 0xD73F,
+ 12135: 0xD740,
+ 12136: 0xD741,
+ 12137: 0xD742,
+ 12138: 0xD743,
+ 12139: 0xD745,
+ 12140: 0xD746,
+ 12141: 0xD748,
+ 12142: 0xD74A,
+ 12143: 0xD74B,
+ 12144: 0xD74C,
+ 12145: 0xD74D,
+ 12146: 0xD74E,
+ 12147: 0xD74F,
+ 12148: 0xD752,
+ 12149: 0xD753,
+ 12150: 0xD755,
+ 12151: 0xD75A,
+ 12152: 0xD75B,
+ 12153: 0xD75C,
+ 12154: 0xD75D,
+ 12155: 0xD75E,
+ 12156: 0xD75F,
+ 12157: 0xD762,
+ 12158: 0xD764,
+ 12159: 0xD766,
+ 12160: 0xD767,
+ 12161: 0xD768,
+ 12162: 0xD76A,
+ 12163: 0xD76B,
+ 12164: 0xD76D,
+ 12165: 0xD76E,
+ 12166: 0xD76F,
+ 12167: 0xD771,
+ 12168: 0xD772,
+ 12169: 0xD773,
+ 12170: 0xD775,
+ 12171: 0xD776,
+ 12172: 0xD777,
+ 12173: 0xD778,
+ 12174: 0xD779,
+ 12175: 0xD77A,
+ 12176: 0xD77B,
+ 12177: 0xD77E,
+ 12178: 0xD77F,
+ 12179: 0xD780,
+ 12180: 0xD782,
+ 12181: 0xD783,
+ 12182: 0xD784,
+ 12183: 0xD785,
+ 12184: 0xD786,
+ 12185: 0xD787,
+ 12186: 0xD78A,
+ 12187: 0xD78B,
+ 12188: 0xD044,
+ 12189: 0xD045,
+ 12190: 0xD047,
+ 12191: 0xD049,
+ 12192: 0xD050,
+ 12193: 0xD054,
+ 12194: 0xD058,
+ 12195: 0xD060,
+ 12196: 0xD06C,
+ 12197: 0xD06D,
+ 12198: 0xD070,
+ 12199: 0xD074,
+ 12200: 0xD07C,
+ 12201: 0xD07D,
+ 12202: 0xD081,
+ 12203: 0xD0A4,
+ 12204: 0xD0A5,
+ 12205: 0xD0A8,
+ 12206: 0xD0AC,
+ 12207: 0xD0B4,
+ 12208: 0xD0B5,
+ 12209: 0xD0B7,
+ 12210: 0xD0B9,
+ 12211: 0xD0C0,
+ 12212: 0xD0C1,
+ 12213: 0xD0C4,
+ 12214: 0xD0C8,
+ 12215: 0xD0C9,
+ 12216: 0xD0D0,
+ 12217: 0xD0D1,
+ 12218: 0xD0D3,
+ 12219: 0xD0D4,
+ 12220: 0xD0D5,
+ 12221: 0xD0DC,
+ 12222: 0xD0DD,
+ 12223: 0xD0E0,
+ 12224: 0xD0E4,
+ 12225: 0xD0EC,
+ 12226: 0xD0ED,
+ 12227: 0xD0EF,
+ 12228: 0xD0F0,
+ 12229: 0xD0F1,
+ 12230: 0xD0F8,
+ 12231: 0xD10D,
+ 12232: 0xD130,
+ 12233: 0xD131,
+ 12234: 0xD134,
+ 12235: 0xD138,
+ 12236: 0xD13A,
+ 12237: 0xD140,
+ 12238: 0xD141,
+ 12239: 0xD143,
+ 12240: 0xD144,
+ 12241: 0xD145,
+ 12242: 0xD14C,
+ 12243: 0xD14D,
+ 12244: 0xD150,
+ 12245: 0xD154,
+ 12246: 0xD15C,
+ 12247: 0xD15D,
+ 12248: 0xD15F,
+ 12249: 0xD161,
+ 12250: 0xD168,
+ 12251: 0xD16C,
+ 12252: 0xD17C,
+ 12253: 0xD184,
+ 12254: 0xD188,
+ 12255: 0xD1A0,
+ 12256: 0xD1A1,
+ 12257: 0xD1A4,
+ 12258: 0xD1A8,
+ 12259: 0xD1B0,
+ 12260: 0xD1B1,
+ 12261: 0xD1B3,
+ 12262: 0xD1B5,
+ 12263: 0xD1BA,
+ 12264: 0xD1BC,
+ 12265: 0xD1C0,
+ 12266: 0xD1D8,
+ 12267: 0xD1F4,
+ 12268: 0xD1F8,
+ 12269: 0xD207,
+ 12270: 0xD209,
+ 12271: 0xD210,
+ 12272: 0xD22C,
+ 12273: 0xD22D,
+ 12274: 0xD230,
+ 12275: 0xD234,
+ 12276: 0xD23C,
+ 12277: 0xD23D,
+ 12278: 0xD23F,
+ 12279: 0xD241,
+ 12280: 0xD248,
+ 12281: 0xD25C,
+ 12282: 0xD78D,
+ 12283: 0xD78E,
+ 12284: 0xD78F,
+ 12285: 0xD791,
+ 12286: 0xD792,
+ 12287: 0xD793,
+ 12288: 0xD794,
+ 12289: 0xD795,
+ 12290: 0xD796,
+ 12291: 0xD797,
+ 12292: 0xD79A,
+ 12293: 0xD79C,
+ 12294: 0xD79E,
+ 12295: 0xD79F,
+ 12296: 0xD7A0,
+ 12297: 0xD7A1,
+ 12298: 0xD7A2,
+ 12299: 0xD7A3,
+ 12366: 0xD264,
+ 12367: 0xD280,
+ 12368: 0xD281,
+ 12369: 0xD284,
+ 12370: 0xD288,
+ 12371: 0xD290,
+ 12372: 0xD291,
+ 12373: 0xD295,
+ 12374: 0xD29C,
+ 12375: 0xD2A0,
+ 12376: 0xD2A4,
+ 12377: 0xD2AC,
+ 12378: 0xD2B1,
+ 12379: 0xD2B8,
+ 12380: 0xD2B9,
+ 12381: 0xD2BC,
+ 12382: 0xD2BF,
+ 12383: 0xD2C0,
+ 12384: 0xD2C2,
+ 12385: 0xD2C8,
+ 12386: 0xD2C9,
+ 12387: 0xD2CB,
+ 12388: 0xD2D4,
+ 12389: 0xD2D8,
+ 12390: 0xD2DC,
+ 12391: 0xD2E4,
+ 12392: 0xD2E5,
+ 12393: 0xD2F0,
+ 12394: 0xD2F1,
+ 12395: 0xD2F4,
+ 12396: 0xD2F8,
+ 12397: 0xD300,
+ 12398: 0xD301,
+ 12399: 0xD303,
+ 12400: 0xD305,
+ 12401: 0xD30C,
+ 12402: 0xD30D,
+ 12403: 0xD30E,
+ 12404: 0xD310,
+ 12405: 0xD314,
+ 12406: 0xD316,
+ 12407: 0xD31C,
+ 12408: 0xD31D,
+ 12409: 0xD31F,
+ 12410: 0xD320,
+ 12411: 0xD321,
+ 12412: 0xD325,
+ 12413: 0xD328,
+ 12414: 0xD329,
+ 12415: 0xD32C,
+ 12416: 0xD330,
+ 12417: 0xD338,
+ 12418: 0xD339,
+ 12419: 0xD33B,
+ 12420: 0xD33C,
+ 12421: 0xD33D,
+ 12422: 0xD344,
+ 12423: 0xD345,
+ 12424: 0xD37C,
+ 12425: 0xD37D,
+ 12426: 0xD380,
+ 12427: 0xD384,
+ 12428: 0xD38C,
+ 12429: 0xD38D,
+ 12430: 0xD38F,
+ 12431: 0xD390,
+ 12432: 0xD391,
+ 12433: 0xD398,
+ 12434: 0xD399,
+ 12435: 0xD39C,
+ 12436: 0xD3A0,
+ 12437: 0xD3A8,
+ 12438: 0xD3A9,
+ 12439: 0xD3AB,
+ 12440: 0xD3AD,
+ 12441: 0xD3B4,
+ 12442: 0xD3B8,
+ 12443: 0xD3BC,
+ 12444: 0xD3C4,
+ 12445: 0xD3C5,
+ 12446: 0xD3C8,
+ 12447: 0xD3C9,
+ 12448: 0xD3D0,
+ 12449: 0xD3D8,
+ 12450: 0xD3E1,
+ 12451: 0xD3E3,
+ 12452: 0xD3EC,
+ 12453: 0xD3ED,
+ 12454: 0xD3F0,
+ 12455: 0xD3F4,
+ 12456: 0xD3FC,
+ 12457: 0xD3FD,
+ 12458: 0xD3FF,
+ 12459: 0xD401,
+ 12460: 0xD408,
+ 12461: 0xD41D,
+ 12462: 0xD440,
+ 12463: 0xD444,
+ 12464: 0xD45C,
+ 12465: 0xD460,
+ 12466: 0xD464,
+ 12467: 0xD46D,
+ 12468: 0xD46F,
+ 12469: 0xD478,
+ 12470: 0xD479,
+ 12471: 0xD47C,
+ 12472: 0xD47F,
+ 12473: 0xD480,
+ 12474: 0xD482,
+ 12475: 0xD488,
+ 12476: 0xD489,
+ 12477: 0xD48B,
+ 12478: 0xD48D,
+ 12479: 0xD494,
+ 12480: 0xD4A9,
+ 12481: 0xD4CC,
+ 12482: 0xD4D0,
+ 12483: 0xD4D4,
+ 12484: 0xD4DC,
+ 12485: 0xD4DF,
+ 12486: 0xD4E8,
+ 12487: 0xD4EC,
+ 12488: 0xD4F0,
+ 12489: 0xD4F8,
+ 12490: 0xD4FB,
+ 12491: 0xD4FD,
+ 12492: 0xD504,
+ 12493: 0xD508,
+ 12494: 0xD50C,
+ 12495: 0xD514,
+ 12496: 0xD515,
+ 12497: 0xD517,
+ 12498: 0xD53C,
+ 12499: 0xD53D,
+ 12500: 0xD540,
+ 12501: 0xD544,
+ 12502: 0xD54C,
+ 12503: 0xD54D,
+ 12504: 0xD54F,
+ 12505: 0xD551,
+ 12506: 0xD558,
+ 12507: 0xD559,
+ 12508: 0xD55C,
+ 12509: 0xD560,
+ 12510: 0xD565,
+ 12511: 0xD568,
+ 12512: 0xD569,
+ 12513: 0xD56B,
+ 12514: 0xD56D,
+ 12515: 0xD574,
+ 12516: 0xD575,
+ 12517: 0xD578,
+ 12518: 0xD57C,
+ 12519: 0xD584,
+ 12520: 0xD585,
+ 12521: 0xD587,
+ 12522: 0xD588,
+ 12523: 0xD589,
+ 12524: 0xD590,
+ 12525: 0xD5A5,
+ 12526: 0xD5C8,
+ 12527: 0xD5C9,
+ 12528: 0xD5CC,
+ 12529: 0xD5D0,
+ 12530: 0xD5D2,
+ 12531: 0xD5D8,
+ 12532: 0xD5D9,
+ 12533: 0xD5DB,
+ 12534: 0xD5DD,
+ 12535: 0xD5E4,
+ 12536: 0xD5E5,
+ 12537: 0xD5E8,
+ 12538: 0xD5EC,
+ 12539: 0xD5F4,
+ 12540: 0xD5F5,
+ 12541: 0xD5F7,
+ 12542: 0xD5F9,
+ 12543: 0xD600,
+ 12544: 0xD601,
+ 12545: 0xD604,
+ 12546: 0xD608,
+ 12547: 0xD610,
+ 12548: 0xD611,
+ 12549: 0xD613,
+ 12550: 0xD614,
+ 12551: 0xD615,
+ 12552: 0xD61C,
+ 12553: 0xD620,
+ 12554: 0xD624,
+ 12555: 0xD62D,
+ 12556: 0xD638,
+ 12557: 0xD639,
+ 12558: 0xD63C,
+ 12559: 0xD640,
+ 12560: 0xD645,
+ 12561: 0xD648,
+ 12562: 0xD649,
+ 12563: 0xD64B,
+ 12564: 0xD64D,
+ 12565: 0xD651,
+ 12566: 0xD654,
+ 12567: 0xD655,
+ 12568: 0xD658,
+ 12569: 0xD65C,
+ 12570: 0xD667,
+ 12571: 0xD669,
+ 12572: 0xD670,
+ 12573: 0xD671,
+ 12574: 0xD674,
+ 12575: 0xD683,
+ 12576: 0xD685,
+ 12577: 0xD68C,
+ 12578: 0xD68D,
+ 12579: 0xD690,
+ 12580: 0xD694,
+ 12581: 0xD69D,
+ 12582: 0xD69F,
+ 12583: 0xD6A1,
+ 12584: 0xD6A8,
+ 12585: 0xD6AC,
+ 12586: 0xD6B0,
+ 12587: 0xD6B9,
+ 12588: 0xD6BB,
+ 12589: 0xD6C4,
+ 12590: 0xD6C5,
+ 12591: 0xD6C8,
+ 12592: 0xD6CC,
+ 12593: 0xD6D1,
+ 12594: 0xD6D4,
+ 12595: 0xD6D7,
+ 12596: 0xD6D9,
+ 12597: 0xD6E0,
+ 12598: 0xD6E4,
+ 12599: 0xD6E8,
+ 12600: 0xD6F0,
+ 12601: 0xD6F5,
+ 12602: 0xD6FC,
+ 12603: 0xD6FD,
+ 12604: 0xD700,
+ 12605: 0xD704,
+ 12606: 0xD711,
+ 12607: 0xD718,
+ 12608: 0xD719,
+ 12609: 0xD71C,
+ 12610: 0xD720,
+ 12611: 0xD728,
+ 12612: 0xD729,
+ 12613: 0xD72B,
+ 12614: 0xD72D,
+ 12615: 0xD734,
+ 12616: 0xD735,
+ 12617: 0xD738,
+ 12618: 0xD73C,
+ 12619: 0xD744,
+ 12620: 0xD747,
+ 12621: 0xD749,
+ 12622: 0xD750,
+ 12623: 0xD751,
+ 12624: 0xD754,
+ 12625: 0xD756,
+ 12626: 0xD757,
+ 12627: 0xD758,
+ 12628: 0xD759,
+ 12629: 0xD760,
+ 12630: 0xD761,
+ 12631: 0xD763,
+ 12632: 0xD765,
+ 12633: 0xD769,
+ 12634: 0xD76C,
+ 12635: 0xD770,
+ 12636: 0xD774,
+ 12637: 0xD77C,
+ 12638: 0xD77D,
+ 12639: 0xD781,
+ 12640: 0xD788,
+ 12641: 0xD789,
+ 12642: 0xD78C,
+ 12643: 0xD790,
+ 12644: 0xD798,
+ 12645: 0xD799,
+ 12646: 0xD79B,
+ 12647: 0xD79D,
+ 12742: 0x4F3D,
+ 12743: 0x4F73,
+ 12744: 0x5047,
+ 12745: 0x50F9,
+ 12746: 0x52A0,
+ 12747: 0x53EF,
+ 12748: 0x5475,
+ 12749: 0x54E5,
+ 12750: 0x5609,
+ 12751: 0x5AC1,
+ 12752: 0x5BB6,
+ 12753: 0x6687,
+ 12754: 0x67B6,
+ 12755: 0x67B7,
+ 12756: 0x67EF,
+ 12757: 0x6B4C,
+ 12758: 0x73C2,
+ 12759: 0x75C2,
+ 12760: 0x7A3C,
+ 12761: 0x82DB,
+ 12762: 0x8304,
+ 12763: 0x8857,
+ 12764: 0x8888,
+ 12765: 0x8A36,
+ 12766: 0x8CC8,
+ 12767: 0x8DCF,
+ 12768: 0x8EFB,
+ 12769: 0x8FE6,
+ 12770: 0x99D5,
+ 12771: 0x523B,
+ 12772: 0x5374,
+ 12773: 0x5404,
+ 12774: 0x606A,
+ 12775: 0x6164,
+ 12776: 0x6BBC,
+ 12777: 0x73CF,
+ 12778: 0x811A,
+ 12779: 0x89BA,
+ 12780: 0x89D2,
+ 12781: 0x95A3,
+ 12782: 0x4F83,
+ 12783: 0x520A,
+ 12784: 0x58BE,
+ 12785: 0x5978,
+ 12786: 0x59E6,
+ 12787: 0x5E72,
+ 12788: 0x5E79,
+ 12789: 0x61C7,
+ 12790: 0x63C0,
+ 12791: 0x6746,
+ 12792: 0x67EC,
+ 12793: 0x687F,
+ 12794: 0x6F97,
+ 12795: 0x764E,
+ 12796: 0x770B,
+ 12797: 0x78F5,
+ 12798: 0x7A08,
+ 12799: 0x7AFF,
+ 12800: 0x7C21,
+ 12801: 0x809D,
+ 12802: 0x826E,
+ 12803: 0x8271,
+ 12804: 0x8AEB,
+ 12805: 0x9593,
+ 12806: 0x4E6B,
+ 12807: 0x559D,
+ 12808: 0x66F7,
+ 12809: 0x6E34,
+ 12810: 0x78A3,
+ 12811: 0x7AED,
+ 12812: 0x845B,
+ 12813: 0x8910,
+ 12814: 0x874E,
+ 12815: 0x97A8,
+ 12816: 0x52D8,
+ 12817: 0x574E,
+ 12818: 0x582A,
+ 12819: 0x5D4C,
+ 12820: 0x611F,
+ 12821: 0x61BE,
+ 12822: 0x6221,
+ 12823: 0x6562,
+ 12824: 0x67D1,
+ 12825: 0x6A44,
+ 12826: 0x6E1B,
+ 12827: 0x7518,
+ 12828: 0x75B3,
+ 12829: 0x76E3,
+ 12830: 0x77B0,
+ 12831: 0x7D3A,
+ 12832: 0x90AF,
+ 12833: 0x9451,
+ 12834: 0x9452,
+ 12835: 0x9F95,
+ 12836: 0x5323,
+ 12837: 0x5CAC,
+ 12838: 0x7532,
+ 12839: 0x80DB,
+ 12840: 0x9240,
+ 12841: 0x9598,
+ 12842: 0x525B,
+ 12843: 0x5808,
+ 12844: 0x59DC,
+ 12845: 0x5CA1,
+ 12846: 0x5D17,
+ 12847: 0x5EB7,
+ 12848: 0x5F3A,
+ 12849: 0x5F4A,
+ 12850: 0x6177,
+ 12851: 0x6C5F,
+ 12852: 0x757A,
+ 12853: 0x7586,
+ 12854: 0x7CE0,
+ 12855: 0x7D73,
+ 12856: 0x7DB1,
+ 12857: 0x7F8C,
+ 12858: 0x8154,
+ 12859: 0x8221,
+ 12860: 0x8591,
+ 12861: 0x8941,
+ 12862: 0x8B1B,
+ 12863: 0x92FC,
+ 12864: 0x964D,
+ 12865: 0x9C47,
+ 12866: 0x4ECB,
+ 12867: 0x4EF7,
+ 12868: 0x500B,
+ 12869: 0x51F1,
+ 12870: 0x584F,
+ 12871: 0x6137,
+ 12872: 0x613E,
+ 12873: 0x6168,
+ 12874: 0x6539,
+ 12875: 0x69EA,
+ 12876: 0x6F11,
+ 12877: 0x75A5,
+ 12878: 0x7686,
+ 12879: 0x76D6,
+ 12880: 0x7B87,
+ 12881: 0x82A5,
+ 12882: 0x84CB,
+ 12883: 0xF900,
+ 12884: 0x93A7,
+ 12885: 0x958B,
+ 12886: 0x5580,
+ 12887: 0x5BA2,
+ 12888: 0x5751,
+ 12889: 0xF901,
+ 12890: 0x7CB3,
+ 12891: 0x7FB9,
+ 12892: 0x91B5,
+ 12893: 0x5028,
+ 12894: 0x53BB,
+ 12895: 0x5C45,
+ 12896: 0x5DE8,
+ 12897: 0x62D2,
+ 12898: 0x636E,
+ 12899: 0x64DA,
+ 12900: 0x64E7,
+ 12901: 0x6E20,
+ 12902: 0x70AC,
+ 12903: 0x795B,
+ 12904: 0x8DDD,
+ 12905: 0x8E1E,
+ 12906: 0xF902,
+ 12907: 0x907D,
+ 12908: 0x9245,
+ 12909: 0x92F8,
+ 12910: 0x4E7E,
+ 12911: 0x4EF6,
+ 12912: 0x5065,
+ 12913: 0x5DFE,
+ 12914: 0x5EFA,
+ 12915: 0x6106,
+ 12916: 0x6957,
+ 12917: 0x8171,
+ 12918: 0x8654,
+ 12919: 0x8E47,
+ 12920: 0x9375,
+ 12921: 0x9A2B,
+ 12922: 0x4E5E,
+ 12923: 0x5091,
+ 12924: 0x6770,
+ 12925: 0x6840,
+ 12926: 0x5109,
+ 12927: 0x528D,
+ 12928: 0x5292,
+ 12929: 0x6AA2,
+ 12930: 0x77BC,
+ 12931: 0x9210,
+ 12932: 0x9ED4,
+ 12933: 0x52AB,
+ 12934: 0x602F,
+ 12935: 0x8FF2,
+ 12936: 0x5048,
+ 12937: 0x61A9,
+ 12938: 0x63ED,
+ 12939: 0x64CA,
+ 12940: 0x683C,
+ 12941: 0x6A84,
+ 12942: 0x6FC0,
+ 12943: 0x8188,
+ 12944: 0x89A1,
+ 12945: 0x9694,
+ 12946: 0x5805,
+ 12947: 0x727D,
+ 12948: 0x72AC,
+ 12949: 0x7504,
+ 12950: 0x7D79,
+ 12951: 0x7E6D,
+ 12952: 0x80A9,
+ 12953: 0x898B,
+ 12954: 0x8B74,
+ 12955: 0x9063,
+ 12956: 0x9D51,
+ 12957: 0x6289,
+ 12958: 0x6C7A,
+ 12959: 0x6F54,
+ 12960: 0x7D50,
+ 12961: 0x7F3A,
+ 12962: 0x8A23,
+ 12963: 0x517C,
+ 12964: 0x614A,
+ 12965: 0x7B9D,
+ 12966: 0x8B19,
+ 12967: 0x9257,
+ 12968: 0x938C,
+ 12969: 0x4EAC,
+ 12970: 0x4FD3,
+ 12971: 0x501E,
+ 12972: 0x50BE,
+ 12973: 0x5106,
+ 12974: 0x52C1,
+ 12975: 0x52CD,
+ 12976: 0x537F,
+ 12977: 0x5770,
+ 12978: 0x5883,
+ 12979: 0x5E9A,
+ 12980: 0x5F91,
+ 12981: 0x6176,
+ 12982: 0x61AC,
+ 12983: 0x64CE,
+ 12984: 0x656C,
+ 12985: 0x666F,
+ 12986: 0x66BB,
+ 12987: 0x66F4,
+ 12988: 0x6897,
+ 12989: 0x6D87,
+ 12990: 0x7085,
+ 12991: 0x70F1,
+ 12992: 0x749F,
+ 12993: 0x74A5,
+ 12994: 0x74CA,
+ 12995: 0x75D9,
+ 12996: 0x786C,
+ 12997: 0x78EC,
+ 12998: 0x7ADF,
+ 12999: 0x7AF6,
+ 13000: 0x7D45,
+ 13001: 0x7D93,
+ 13002: 0x8015,
+ 13003: 0x803F,
+ 13004: 0x811B,
+ 13005: 0x8396,
+ 13006: 0x8B66,
+ 13007: 0x8F15,
+ 13008: 0x9015,
+ 13009: 0x93E1,
+ 13010: 0x9803,
+ 13011: 0x9838,
+ 13012: 0x9A5A,
+ 13013: 0x9BE8,
+ 13014: 0x4FC2,
+ 13015: 0x5553,
+ 13016: 0x583A,
+ 13017: 0x5951,
+ 13018: 0x5B63,
+ 13019: 0x5C46,
+ 13020: 0x60B8,
+ 13021: 0x6212,
+ 13022: 0x6842,
+ 13023: 0x68B0,
+ 13024: 0x68E8,
+ 13025: 0x6EAA,
+ 13026: 0x754C,
+ 13027: 0x7678,
+ 13028: 0x78CE,
+ 13029: 0x7A3D,
+ 13030: 0x7CFB,
+ 13031: 0x7E6B,
+ 13032: 0x7E7C,
+ 13033: 0x8A08,
+ 13034: 0x8AA1,
+ 13035: 0x8C3F,
+ 13036: 0x968E,
+ 13037: 0x9DC4,
+ 13038: 0x53E4,
+ 13039: 0x53E9,
+ 13040: 0x544A,
+ 13041: 0x5471,
+ 13042: 0x56FA,
+ 13043: 0x59D1,
+ 13044: 0x5B64,
+ 13045: 0x5C3B,
+ 13046: 0x5EAB,
+ 13047: 0x62F7,
+ 13048: 0x6537,
+ 13049: 0x6545,
+ 13050: 0x6572,
+ 13051: 0x66A0,
+ 13052: 0x67AF,
+ 13053: 0x69C1,
+ 13054: 0x6CBD,
+ 13055: 0x75FC,
+ 13056: 0x7690,
+ 13057: 0x777E,
+ 13058: 0x7A3F,
+ 13059: 0x7F94,
+ 13060: 0x8003,
+ 13061: 0x80A1,
+ 13062: 0x818F,
+ 13063: 0x82E6,
+ 13064: 0x82FD,
+ 13065: 0x83F0,
+ 13066: 0x85C1,
+ 13067: 0x8831,
+ 13068: 0x88B4,
+ 13069: 0x8AA5,
+ 13070: 0xF903,
+ 13071: 0x8F9C,
+ 13072: 0x932E,
+ 13073: 0x96C7,
+ 13074: 0x9867,
+ 13075: 0x9AD8,
+ 13076: 0x9F13,
+ 13077: 0x54ED,
+ 13078: 0x659B,
+ 13079: 0x66F2,
+ 13080: 0x688F,
+ 13081: 0x7A40,
+ 13082: 0x8C37,
+ 13083: 0x9D60,
+ 13084: 0x56F0,
+ 13085: 0x5764,
+ 13086: 0x5D11,
+ 13087: 0x6606,
+ 13088: 0x68B1,
+ 13089: 0x68CD,
+ 13090: 0x6EFE,
+ 13091: 0x7428,
+ 13092: 0x889E,
+ 13093: 0x9BE4,
+ 13094: 0x6C68,
+ 13095: 0xF904,
+ 13096: 0x9AA8,
+ 13097: 0x4F9B,
+ 13098: 0x516C,
+ 13099: 0x5171,
+ 13100: 0x529F,
+ 13101: 0x5B54,
+ 13102: 0x5DE5,
+ 13103: 0x6050,
+ 13104: 0x606D,
+ 13105: 0x62F1,
+ 13106: 0x63A7,
+ 13107: 0x653B,
+ 13108: 0x73D9,
+ 13109: 0x7A7A,
+ 13110: 0x86A3,
+ 13111: 0x8CA2,
+ 13112: 0x978F,
+ 13113: 0x4E32,
+ 13114: 0x5BE1,
+ 13115: 0x6208,
+ 13116: 0x679C,
+ 13117: 0x74DC,
+ 13118: 0x79D1,
+ 13119: 0x83D3,
+ 13120: 0x8A87,
+ 13121: 0x8AB2,
+ 13122: 0x8DE8,
+ 13123: 0x904E,
+ 13124: 0x934B,
+ 13125: 0x9846,
+ 13126: 0x5ED3,
+ 13127: 0x69E8,
+ 13128: 0x85FF,
+ 13129: 0x90ED,
+ 13130: 0xF905,
+ 13131: 0x51A0,
+ 13132: 0x5B98,
+ 13133: 0x5BEC,
+ 13134: 0x6163,
+ 13135: 0x68FA,
+ 13136: 0x6B3E,
+ 13137: 0x704C,
+ 13138: 0x742F,
+ 13139: 0x74D8,
+ 13140: 0x7BA1,
+ 13141: 0x7F50,
+ 13142: 0x83C5,
+ 13143: 0x89C0,
+ 13144: 0x8CAB,
+ 13145: 0x95DC,
+ 13146: 0x9928,
+ 13147: 0x522E,
+ 13148: 0x605D,
+ 13149: 0x62EC,
+ 13150: 0x9002,
+ 13151: 0x4F8A,
+ 13152: 0x5149,
+ 13153: 0x5321,
+ 13154: 0x58D9,
+ 13155: 0x5EE3,
+ 13156: 0x66E0,
+ 13157: 0x6D38,
+ 13158: 0x709A,
+ 13159: 0x72C2,
+ 13160: 0x73D6,
+ 13161: 0x7B50,
+ 13162: 0x80F1,
+ 13163: 0x945B,
+ 13164: 0x5366,
+ 13165: 0x639B,
+ 13166: 0x7F6B,
+ 13167: 0x4E56,
+ 13168: 0x5080,
+ 13169: 0x584A,
+ 13170: 0x58DE,
+ 13171: 0x602A,
+ 13172: 0x6127,
+ 13173: 0x62D0,
+ 13174: 0x69D0,
+ 13175: 0x9B41,
+ 13176: 0x5B8F,
+ 13177: 0x7D18,
+ 13178: 0x80B1,
+ 13179: 0x8F5F,
+ 13180: 0x4EA4,
+ 13181: 0x50D1,
+ 13182: 0x54AC,
+ 13183: 0x55AC,
+ 13184: 0x5B0C,
+ 13185: 0x5DA0,
+ 13186: 0x5DE7,
+ 13187: 0x652A,
+ 13188: 0x654E,
+ 13189: 0x6821,
+ 13190: 0x6A4B,
+ 13191: 0x72E1,
+ 13192: 0x768E,
+ 13193: 0x77EF,
+ 13194: 0x7D5E,
+ 13195: 0x7FF9,
+ 13196: 0x81A0,
+ 13197: 0x854E,
+ 13198: 0x86DF,
+ 13199: 0x8F03,
+ 13200: 0x8F4E,
+ 13201: 0x90CA,
+ 13202: 0x9903,
+ 13203: 0x9A55,
+ 13204: 0x9BAB,
+ 13205: 0x4E18,
+ 13206: 0x4E45,
+ 13207: 0x4E5D,
+ 13208: 0x4EC7,
+ 13209: 0x4FF1,
+ 13210: 0x5177,
+ 13211: 0x52FE,
+ 13212: 0x5340,
+ 13213: 0x53E3,
+ 13214: 0x53E5,
+ 13215: 0x548E,
+ 13216: 0x5614,
+ 13217: 0x5775,
+ 13218: 0x57A2,
+ 13219: 0x5BC7,
+ 13220: 0x5D87,
+ 13221: 0x5ED0,
+ 13222: 0x61FC,
+ 13223: 0x62D8,
+ 13224: 0x6551,
+ 13225: 0x67B8,
+ 13226: 0x67E9,
+ 13227: 0x69CB,
+ 13228: 0x6B50,
+ 13229: 0x6BC6,
+ 13230: 0x6BEC,
+ 13231: 0x6C42,
+ 13232: 0x6E9D,
+ 13233: 0x7078,
+ 13234: 0x72D7,
+ 13235: 0x7396,
+ 13236: 0x7403,
+ 13237: 0x77BF,
+ 13238: 0x77E9,
+ 13239: 0x7A76,
+ 13240: 0x7D7F,
+ 13241: 0x8009,
+ 13242: 0x81FC,
+ 13243: 0x8205,
+ 13244: 0x820A,
+ 13245: 0x82DF,
+ 13246: 0x8862,
+ 13247: 0x8B33,
+ 13248: 0x8CFC,
+ 13249: 0x8EC0,
+ 13250: 0x9011,
+ 13251: 0x90B1,
+ 13252: 0x9264,
+ 13253: 0x92B6,
+ 13254: 0x99D2,
+ 13255: 0x9A45,
+ 13256: 0x9CE9,
+ 13257: 0x9DD7,
+ 13258: 0x9F9C,
+ 13259: 0x570B,
+ 13260: 0x5C40,
+ 13261: 0x83CA,
+ 13262: 0x97A0,
+ 13263: 0x97AB,
+ 13264: 0x9EB4,
+ 13265: 0x541B,
+ 13266: 0x7A98,
+ 13267: 0x7FA4,
+ 13268: 0x88D9,
+ 13269: 0x8ECD,
+ 13270: 0x90E1,
+ 13271: 0x5800,
+ 13272: 0x5C48,
+ 13273: 0x6398,
+ 13274: 0x7A9F,
+ 13275: 0x5BAE,
+ 13276: 0x5F13,
+ 13277: 0x7A79,
+ 13278: 0x7AAE,
+ 13279: 0x828E,
+ 13280: 0x8EAC,
+ 13281: 0x5026,
+ 13282: 0x5238,
+ 13283: 0x52F8,
+ 13284: 0x5377,
+ 13285: 0x5708,
+ 13286: 0x62F3,
+ 13287: 0x6372,
+ 13288: 0x6B0A,
+ 13289: 0x6DC3,
+ 13290: 0x7737,
+ 13291: 0x53A5,
+ 13292: 0x7357,
+ 13293: 0x8568,
+ 13294: 0x8E76,
+ 13295: 0x95D5,
+ 13296: 0x673A,
+ 13297: 0x6AC3,
+ 13298: 0x6F70,
+ 13299: 0x8A6D,
+ 13300: 0x8ECC,
+ 13301: 0x994B,
+ 13302: 0xF906,
+ 13303: 0x6677,
+ 13304: 0x6B78,
+ 13305: 0x8CB4,
+ 13306: 0x9B3C,
+ 13307: 0xF907,
+ 13308: 0x53EB,
+ 13309: 0x572D,
+ 13310: 0x594E,
+ 13311: 0x63C6,
+ 13312: 0x69FB,
+ 13313: 0x73EA,
+ 13314: 0x7845,
+ 13315: 0x7ABA,
+ 13316: 0x7AC5,
+ 13317: 0x7CFE,
+ 13318: 0x8475,
+ 13319: 0x898F,
+ 13320: 0x8D73,
+ 13321: 0x9035,
+ 13322: 0x95A8,
+ 13323: 0x52FB,
+ 13324: 0x5747,
+ 13325: 0x7547,
+ 13326: 0x7B60,
+ 13327: 0x83CC,
+ 13328: 0x921E,
+ 13329: 0xF908,
+ 13330: 0x6A58,
+ 13331: 0x514B,
+ 13332: 0x524B,
+ 13333: 0x5287,
+ 13334: 0x621F,
+ 13335: 0x68D8,
+ 13336: 0x6975,
+ 13337: 0x9699,
+ 13338: 0x50C5,
+ 13339: 0x52A4,
+ 13340: 0x52E4,
+ 13341: 0x61C3,
+ 13342: 0x65A4,
+ 13343: 0x6839,
+ 13344: 0x69FF,
+ 13345: 0x747E,
+ 13346: 0x7B4B,
+ 13347: 0x82B9,
+ 13348: 0x83EB,
+ 13349: 0x89B2,
+ 13350: 0x8B39,
+ 13351: 0x8FD1,
+ 13352: 0x9949,
+ 13353: 0xF909,
+ 13354: 0x4ECA,
+ 13355: 0x5997,
+ 13356: 0x64D2,
+ 13357: 0x6611,
+ 13358: 0x6A8E,
+ 13359: 0x7434,
+ 13360: 0x7981,
+ 13361: 0x79BD,
+ 13362: 0x82A9,
+ 13363: 0x887E,
+ 13364: 0x887F,
+ 13365: 0x895F,
+ 13366: 0xF90A,
+ 13367: 0x9326,
+ 13368: 0x4F0B,
+ 13369: 0x53CA,
+ 13370: 0x6025,
+ 13371: 0x6271,
+ 13372: 0x6C72,
+ 13373: 0x7D1A,
+ 13374: 0x7D66,
+ 13375: 0x4E98,
+ 13376: 0x5162,
+ 13377: 0x77DC,
+ 13378: 0x80AF,
+ 13379: 0x4F01,
+ 13380: 0x4F0E,
+ 13381: 0x5176,
+ 13382: 0x5180,
+ 13383: 0x55DC,
+ 13384: 0x5668,
+ 13385: 0x573B,
+ 13386: 0x57FA,
+ 13387: 0x57FC,
+ 13388: 0x5914,
+ 13389: 0x5947,
+ 13390: 0x5993,
+ 13391: 0x5BC4,
+ 13392: 0x5C90,
+ 13393: 0x5D0E,
+ 13394: 0x5DF1,
+ 13395: 0x5E7E,
+ 13396: 0x5FCC,
+ 13397: 0x6280,
+ 13398: 0x65D7,
+ 13399: 0x65E3,
+ 13400: 0x671E,
+ 13401: 0x671F,
+ 13402: 0x675E,
+ 13403: 0x68CB,
+ 13404: 0x68C4,
+ 13405: 0x6A5F,
+ 13406: 0x6B3A,
+ 13407: 0x6C23,
+ 13408: 0x6C7D,
+ 13409: 0x6C82,
+ 13410: 0x6DC7,
+ 13411: 0x7398,
+ 13412: 0x7426,
+ 13413: 0x742A,
+ 13414: 0x7482,
+ 13415: 0x74A3,
+ 13416: 0x7578,
+ 13417: 0x757F,
+ 13418: 0x7881,
+ 13419: 0x78EF,
+ 13420: 0x7941,
+ 13421: 0x7947,
+ 13422: 0x7948,
+ 13423: 0x797A,
+ 13424: 0x7B95,
+ 13425: 0x7D00,
+ 13426: 0x7DBA,
+ 13427: 0x7F88,
+ 13428: 0x8006,
+ 13429: 0x802D,
+ 13430: 0x808C,
+ 13431: 0x8A18,
+ 13432: 0x8B4F,
+ 13433: 0x8C48,
+ 13434: 0x8D77,
+ 13435: 0x9321,
+ 13436: 0x9324,
+ 13437: 0x98E2,
+ 13438: 0x9951,
+ 13439: 0x9A0E,
+ 13440: 0x9A0F,
+ 13441: 0x9A65,
+ 13442: 0x9E92,
+ 13443: 0x7DCA,
+ 13444: 0x4F76,
+ 13445: 0x5409,
+ 13446: 0x62EE,
+ 13447: 0x6854,
+ 13448: 0x91D1,
+ 13449: 0x55AB,
+ 13450: 0x513A,
+ 13451: 0xF90B,
+ 13452: 0xF90C,
+ 13453: 0x5A1C,
+ 13454: 0x61E6,
+ 13455: 0xF90D,
+ 13456: 0x62CF,
+ 13457: 0x62FF,
+ 13458: 0xF90E,
+ 13459: 0xF90F,
+ 13460: 0xF910,
+ 13461: 0xF911,
+ 13462: 0xF912,
+ 13463: 0xF913,
+ 13464: 0x90A3,
+ 13465: 0xF914,
+ 13466: 0xF915,
+ 13467: 0xF916,
+ 13468: 0xF917,
+ 13469: 0xF918,
+ 13470: 0x8AFE,
+ 13471: 0xF919,
+ 13472: 0xF91A,
+ 13473: 0xF91B,
+ 13474: 0xF91C,
+ 13475: 0x6696,
+ 13476: 0xF91D,
+ 13477: 0x7156,
+ 13478: 0xF91E,
+ 13479: 0xF91F,
+ 13480: 0x96E3,
+ 13481: 0xF920,
+ 13482: 0x634F,
+ 13483: 0x637A,
+ 13484: 0x5357,
+ 13485: 0xF921,
+ 13486: 0x678F,
+ 13487: 0x6960,
+ 13488: 0x6E73,
+ 13489: 0xF922,
+ 13490: 0x7537,
+ 13491: 0xF923,
+ 13492: 0xF924,
+ 13493: 0xF925,
+ 13494: 0x7D0D,
+ 13495: 0xF926,
+ 13496: 0xF927,
+ 13497: 0x8872,
+ 13498: 0x56CA,
+ 13499: 0x5A18,
+ 13500: 0xF928,
+ 13501: 0xF929,
+ 13502: 0xF92A,
+ 13503: 0xF92B,
+ 13504: 0xF92C,
+ 13505: 0x4E43,
+ 13506: 0xF92D,
+ 13507: 0x5167,
+ 13508: 0x5948,
+ 13509: 0x67F0,
+ 13510: 0x8010,
+ 13511: 0xF92E,
+ 13512: 0x5973,
+ 13513: 0x5E74,
+ 13514: 0x649A,
+ 13515: 0x79CA,
+ 13516: 0x5FF5,
+ 13517: 0x606C,
+ 13518: 0x62C8,
+ 13519: 0x637B,
+ 13520: 0x5BE7,
+ 13521: 0x5BD7,
+ 13522: 0x52AA,
+ 13523: 0xF92F,
+ 13524: 0x5974,
+ 13525: 0x5F29,
+ 13526: 0x6012,
+ 13527: 0xF930,
+ 13528: 0xF931,
+ 13529: 0xF932,
+ 13530: 0x7459,
+ 13531: 0xF933,
+ 13532: 0xF934,
+ 13533: 0xF935,
+ 13534: 0xF936,
+ 13535: 0xF937,
+ 13536: 0xF938,
+ 13537: 0x99D1,
+ 13538: 0xF939,
+ 13539: 0xF93A,
+ 13540: 0xF93B,
+ 13541: 0xF93C,
+ 13542: 0xF93D,
+ 13543: 0xF93E,
+ 13544: 0xF93F,
+ 13545: 0xF940,
+ 13546: 0xF941,
+ 13547: 0xF942,
+ 13548: 0xF943,
+ 13549: 0x6FC3,
+ 13550: 0xF944,
+ 13551: 0xF945,
+ 13552: 0x81BF,
+ 13553: 0x8FB2,
+ 13554: 0x60F1,
+ 13555: 0xF946,
+ 13556: 0xF947,
+ 13557: 0x8166,
+ 13558: 0xF948,
+ 13559: 0xF949,
+ 13560: 0x5C3F,
+ 13561: 0xF94A,
+ 13562: 0xF94B,
+ 13563: 0xF94C,
+ 13564: 0xF94D,
+ 13565: 0xF94E,
+ 13566: 0xF94F,
+ 13567: 0xF950,
+ 13568: 0xF951,
+ 13569: 0x5AE9,
+ 13570: 0x8A25,
+ 13571: 0x677B,
+ 13572: 0x7D10,
+ 13573: 0xF952,
+ 13574: 0xF953,
+ 13575: 0xF954,
+ 13576: 0xF955,
+ 13577: 0xF956,
+ 13578: 0xF957,
+ 13579: 0x80FD,
+ 13580: 0xF958,
+ 13581: 0xF959,
+ 13582: 0x5C3C,
+ 13583: 0x6CE5,
+ 13584: 0x533F,
+ 13585: 0x6EBA,
+ 13586: 0x591A,
+ 13587: 0x8336,
+ 13588: 0x4E39,
+ 13589: 0x4EB6,
+ 13590: 0x4F46,
+ 13591: 0x55AE,
+ 13592: 0x5718,
+ 13593: 0x58C7,
+ 13594: 0x5F56,
+ 13595: 0x65B7,
+ 13596: 0x65E6,
+ 13597: 0x6A80,
+ 13598: 0x6BB5,
+ 13599: 0x6E4D,
+ 13600: 0x77ED,
+ 13601: 0x7AEF,
+ 13602: 0x7C1E,
+ 13603: 0x7DDE,
+ 13604: 0x86CB,
+ 13605: 0x8892,
+ 13606: 0x9132,
+ 13607: 0x935B,
+ 13608: 0x64BB,
+ 13609: 0x6FBE,
+ 13610: 0x737A,
+ 13611: 0x75B8,
+ 13612: 0x9054,
+ 13613: 0x5556,
+ 13614: 0x574D,
+ 13615: 0x61BA,
+ 13616: 0x64D4,
+ 13617: 0x66C7,
+ 13618: 0x6DE1,
+ 13619: 0x6E5B,
+ 13620: 0x6F6D,
+ 13621: 0x6FB9,
+ 13622: 0x75F0,
+ 13623: 0x8043,
+ 13624: 0x81BD,
+ 13625: 0x8541,
+ 13626: 0x8983,
+ 13627: 0x8AC7,
+ 13628: 0x8B5A,
+ 13629: 0x931F,
+ 13630: 0x6C93,
+ 13631: 0x7553,
+ 13632: 0x7B54,
+ 13633: 0x8E0F,
+ 13634: 0x905D,
+ 13635: 0x5510,
+ 13636: 0x5802,
+ 13637: 0x5858,
+ 13638: 0x5E62,
+ 13639: 0x6207,
+ 13640: 0x649E,
+ 13641: 0x68E0,
+ 13642: 0x7576,
+ 13643: 0x7CD6,
+ 13644: 0x87B3,
+ 13645: 0x9EE8,
+ 13646: 0x4EE3,
+ 13647: 0x5788,
+ 13648: 0x576E,
+ 13649: 0x5927,
+ 13650: 0x5C0D,
+ 13651: 0x5CB1,
+ 13652: 0x5E36,
+ 13653: 0x5F85,
+ 13654: 0x6234,
+ 13655: 0x64E1,
+ 13656: 0x73B3,
+ 13657: 0x81FA,
+ 13658: 0x888B,
+ 13659: 0x8CB8,
+ 13660: 0x968A,
+ 13661: 0x9EDB,
+ 13662: 0x5B85,
+ 13663: 0x5FB7,
+ 13664: 0x60B3,
+ 13665: 0x5012,
+ 13666: 0x5200,
+ 13667: 0x5230,
+ 13668: 0x5716,
+ 13669: 0x5835,
+ 13670: 0x5857,
+ 13671: 0x5C0E,
+ 13672: 0x5C60,
+ 13673: 0x5CF6,
+ 13674: 0x5D8B,
+ 13675: 0x5EA6,
+ 13676: 0x5F92,
+ 13677: 0x60BC,
+ 13678: 0x6311,
+ 13679: 0x6389,
+ 13680: 0x6417,
+ 13681: 0x6843,
+ 13682: 0x68F9,
+ 13683: 0x6AC2,
+ 13684: 0x6DD8,
+ 13685: 0x6E21,
+ 13686: 0x6ED4,
+ 13687: 0x6FE4,
+ 13688: 0x71FE,
+ 13689: 0x76DC,
+ 13690: 0x7779,
+ 13691: 0x79B1,
+ 13692: 0x7A3B,
+ 13693: 0x8404,
+ 13694: 0x89A9,
+ 13695: 0x8CED,
+ 13696: 0x8DF3,
+ 13697: 0x8E48,
+ 13698: 0x9003,
+ 13699: 0x9014,
+ 13700: 0x9053,
+ 13701: 0x90FD,
+ 13702: 0x934D,
+ 13703: 0x9676,
+ 13704: 0x97DC,
+ 13705: 0x6BD2,
+ 13706: 0x7006,
+ 13707: 0x7258,
+ 13708: 0x72A2,
+ 13709: 0x7368,
+ 13710: 0x7763,
+ 13711: 0x79BF,
+ 13712: 0x7BE4,
+ 13713: 0x7E9B,
+ 13714: 0x8B80,
+ 13715: 0x58A9,
+ 13716: 0x60C7,
+ 13717: 0x6566,
+ 13718: 0x65FD,
+ 13719: 0x66BE,
+ 13720: 0x6C8C,
+ 13721: 0x711E,
+ 13722: 0x71C9,
+ 13723: 0x8C5A,
+ 13724: 0x9813,
+ 13725: 0x4E6D,
+ 13726: 0x7A81,
+ 13727: 0x4EDD,
+ 13728: 0x51AC,
+ 13729: 0x51CD,
+ 13730: 0x52D5,
+ 13731: 0x540C,
+ 13732: 0x61A7,
+ 13733: 0x6771,
+ 13734: 0x6850,
+ 13735: 0x68DF,
+ 13736: 0x6D1E,
+ 13737: 0x6F7C,
+ 13738: 0x75BC,
+ 13739: 0x77B3,
+ 13740: 0x7AE5,
+ 13741: 0x80F4,
+ 13742: 0x8463,
+ 13743: 0x9285,
+ 13744: 0x515C,
+ 13745: 0x6597,
+ 13746: 0x675C,
+ 13747: 0x6793,
+ 13748: 0x75D8,
+ 13749: 0x7AC7,
+ 13750: 0x8373,
+ 13751: 0xF95A,
+ 13752: 0x8C46,
+ 13753: 0x9017,
+ 13754: 0x982D,
+ 13755: 0x5C6F,
+ 13756: 0x81C0,
+ 13757: 0x829A,
+ 13758: 0x9041,
+ 13759: 0x906F,
+ 13760: 0x920D,
+ 13761: 0x5F97,
+ 13762: 0x5D9D,
+ 13763: 0x6A59,
+ 13764: 0x71C8,
+ 13765: 0x767B,
+ 13766: 0x7B49,
+ 13767: 0x85E4,
+ 13768: 0x8B04,
+ 13769: 0x9127,
+ 13770: 0x9A30,
+ 13771: 0x5587,
+ 13772: 0x61F6,
+ 13773: 0xF95B,
+ 13774: 0x7669,
+ 13775: 0x7F85,
+ 13776: 0x863F,
+ 13777: 0x87BA,
+ 13778: 0x88F8,
+ 13779: 0x908F,
+ 13780: 0xF95C,
+ 13781: 0x6D1B,
+ 13782: 0x70D9,
+ 13783: 0x73DE,
+ 13784: 0x7D61,
+ 13785: 0x843D,
+ 13786: 0xF95D,
+ 13787: 0x916A,
+ 13788: 0x99F1,
+ 13789: 0xF95E,
+ 13790: 0x4E82,
+ 13791: 0x5375,
+ 13792: 0x6B04,
+ 13793: 0x6B12,
+ 13794: 0x703E,
+ 13795: 0x721B,
+ 13796: 0x862D,
+ 13797: 0x9E1E,
+ 13798: 0x524C,
+ 13799: 0x8FA3,
+ 13800: 0x5D50,
+ 13801: 0x64E5,
+ 13802: 0x652C,
+ 13803: 0x6B16,
+ 13804: 0x6FEB,
+ 13805: 0x7C43,
+ 13806: 0x7E9C,
+ 13807: 0x85CD,
+ 13808: 0x8964,
+ 13809: 0x89BD,
+ 13810: 0x62C9,
+ 13811: 0x81D8,
+ 13812: 0x881F,
+ 13813: 0x5ECA,
+ 13814: 0x6717,
+ 13815: 0x6D6A,
+ 13816: 0x72FC,
+ 13817: 0x7405,
+ 13818: 0x746F,
+ 13819: 0x8782,
+ 13820: 0x90DE,
+ 13821: 0x4F86,
+ 13822: 0x5D0D,
+ 13823: 0x5FA0,
+ 13824: 0x840A,
+ 13825: 0x51B7,
+ 13826: 0x63A0,
+ 13827: 0x7565,
+ 13828: 0x4EAE,
+ 13829: 0x5006,
+ 13830: 0x5169,
+ 13831: 0x51C9,
+ 13832: 0x6881,
+ 13833: 0x6A11,
+ 13834: 0x7CAE,
+ 13835: 0x7CB1,
+ 13836: 0x7CE7,
+ 13837: 0x826F,
+ 13838: 0x8AD2,
+ 13839: 0x8F1B,
+ 13840: 0x91CF,
+ 13841: 0x4FB6,
+ 13842: 0x5137,
+ 13843: 0x52F5,
+ 13844: 0x5442,
+ 13845: 0x5EEC,
+ 13846: 0x616E,
+ 13847: 0x623E,
+ 13848: 0x65C5,
+ 13849: 0x6ADA,
+ 13850: 0x6FFE,
+ 13851: 0x792A,
+ 13852: 0x85DC,
+ 13853: 0x8823,
+ 13854: 0x95AD,
+ 13855: 0x9A62,
+ 13856: 0x9A6A,
+ 13857: 0x9E97,
+ 13858: 0x9ECE,
+ 13859: 0x529B,
+ 13860: 0x66C6,
+ 13861: 0x6B77,
+ 13862: 0x701D,
+ 13863: 0x792B,
+ 13864: 0x8F62,
+ 13865: 0x9742,
+ 13866: 0x6190,
+ 13867: 0x6200,
+ 13868: 0x6523,
+ 13869: 0x6F23,
+ 13870: 0x7149,
+ 13871: 0x7489,
+ 13872: 0x7DF4,
+ 13873: 0x806F,
+ 13874: 0x84EE,
+ 13875: 0x8F26,
+ 13876: 0x9023,
+ 13877: 0x934A,
+ 13878: 0x51BD,
+ 13879: 0x5217,
+ 13880: 0x52A3,
+ 13881: 0x6D0C,
+ 13882: 0x70C8,
+ 13883: 0x88C2,
+ 13884: 0x5EC9,
+ 13885: 0x6582,
+ 13886: 0x6BAE,
+ 13887: 0x6FC2,
+ 13888: 0x7C3E,
+ 13889: 0x7375,
+ 13890: 0x4EE4,
+ 13891: 0x4F36,
+ 13892: 0x56F9,
+ 13893: 0xF95F,
+ 13894: 0x5CBA,
+ 13895: 0x5DBA,
+ 13896: 0x601C,
+ 13897: 0x73B2,
+ 13898: 0x7B2D,
+ 13899: 0x7F9A,
+ 13900: 0x7FCE,
+ 13901: 0x8046,
+ 13902: 0x901E,
+ 13903: 0x9234,
+ 13904: 0x96F6,
+ 13905: 0x9748,
+ 13906: 0x9818,
+ 13907: 0x9F61,
+ 13908: 0x4F8B,
+ 13909: 0x6FA7,
+ 13910: 0x79AE,
+ 13911: 0x91B4,
+ 13912: 0x96B7,
+ 13913: 0x52DE,
+ 13914: 0xF960,
+ 13915: 0x6488,
+ 13916: 0x64C4,
+ 13917: 0x6AD3,
+ 13918: 0x6F5E,
+ 13919: 0x7018,
+ 13920: 0x7210,
+ 13921: 0x76E7,
+ 13922: 0x8001,
+ 13923: 0x8606,
+ 13924: 0x865C,
+ 13925: 0x8DEF,
+ 13926: 0x8F05,
+ 13927: 0x9732,
+ 13928: 0x9B6F,
+ 13929: 0x9DFA,
+ 13930: 0x9E75,
+ 13931: 0x788C,
+ 13932: 0x797F,
+ 13933: 0x7DA0,
+ 13934: 0x83C9,
+ 13935: 0x9304,
+ 13936: 0x9E7F,
+ 13937: 0x9E93,
+ 13938: 0x8AD6,
+ 13939: 0x58DF,
+ 13940: 0x5F04,
+ 13941: 0x6727,
+ 13942: 0x7027,
+ 13943: 0x74CF,
+ 13944: 0x7C60,
+ 13945: 0x807E,
+ 13946: 0x5121,
+ 13947: 0x7028,
+ 13948: 0x7262,
+ 13949: 0x78CA,
+ 13950: 0x8CC2,
+ 13951: 0x8CDA,
+ 13952: 0x8CF4,
+ 13953: 0x96F7,
+ 13954: 0x4E86,
+ 13955: 0x50DA,
+ 13956: 0x5BEE,
+ 13957: 0x5ED6,
+ 13958: 0x6599,
+ 13959: 0x71CE,
+ 13960: 0x7642,
+ 13961: 0x77AD,
+ 13962: 0x804A,
+ 13963: 0x84FC,
+ 13964: 0x907C,
+ 13965: 0x9B27,
+ 13966: 0x9F8D,
+ 13967: 0x58D8,
+ 13968: 0x5A41,
+ 13969: 0x5C62,
+ 13970: 0x6A13,
+ 13971: 0x6DDA,
+ 13972: 0x6F0F,
+ 13973: 0x763B,
+ 13974: 0x7D2F,
+ 13975: 0x7E37,
+ 13976: 0x851E,
+ 13977: 0x8938,
+ 13978: 0x93E4,
+ 13979: 0x964B,
+ 13980: 0x5289,
+ 13981: 0x65D2,
+ 13982: 0x67F3,
+ 13983: 0x69B4,
+ 13984: 0x6D41,
+ 13985: 0x6E9C,
+ 13986: 0x700F,
+ 13987: 0x7409,
+ 13988: 0x7460,
+ 13989: 0x7559,
+ 13990: 0x7624,
+ 13991: 0x786B,
+ 13992: 0x8B2C,
+ 13993: 0x985E,
+ 13994: 0x516D,
+ 13995: 0x622E,
+ 13996: 0x9678,
+ 13997: 0x4F96,
+ 13998: 0x502B,
+ 13999: 0x5D19,
+ 14000: 0x6DEA,
+ 14001: 0x7DB8,
+ 14002: 0x8F2A,
+ 14003: 0x5F8B,
+ 14004: 0x6144,
+ 14005: 0x6817,
+ 14006: 0xF961,
+ 14007: 0x9686,
+ 14008: 0x52D2,
+ 14009: 0x808B,
+ 14010: 0x51DC,
+ 14011: 0x51CC,
+ 14012: 0x695E,
+ 14013: 0x7A1C,
+ 14014: 0x7DBE,
+ 14015: 0x83F1,
+ 14016: 0x9675,
+ 14017: 0x4FDA,
+ 14018: 0x5229,
+ 14019: 0x5398,
+ 14020: 0x540F,
+ 14021: 0x550E,
+ 14022: 0x5C65,
+ 14023: 0x60A7,
+ 14024: 0x674E,
+ 14025: 0x68A8,
+ 14026: 0x6D6C,
+ 14027: 0x7281,
+ 14028: 0x72F8,
+ 14029: 0x7406,
+ 14030: 0x7483,
+ 14031: 0xF962,
+ 14032: 0x75E2,
+ 14033: 0x7C6C,
+ 14034: 0x7F79,
+ 14035: 0x7FB8,
+ 14036: 0x8389,
+ 14037: 0x88CF,
+ 14038: 0x88E1,
+ 14039: 0x91CC,
+ 14040: 0x91D0,
+ 14041: 0x96E2,
+ 14042: 0x9BC9,
+ 14043: 0x541D,
+ 14044: 0x6F7E,
+ 14045: 0x71D0,
+ 14046: 0x7498,
+ 14047: 0x85FA,
+ 14048: 0x8EAA,
+ 14049: 0x96A3,
+ 14050: 0x9C57,
+ 14051: 0x9E9F,
+ 14052: 0x6797,
+ 14053: 0x6DCB,
+ 14054: 0x7433,
+ 14055: 0x81E8,
+ 14056: 0x9716,
+ 14057: 0x782C,
+ 14058: 0x7ACB,
+ 14059: 0x7B20,
+ 14060: 0x7C92,
+ 14061: 0x6469,
+ 14062: 0x746A,
+ 14063: 0x75F2,
+ 14064: 0x78BC,
+ 14065: 0x78E8,
+ 14066: 0x99AC,
+ 14067: 0x9B54,
+ 14068: 0x9EBB,
+ 14069: 0x5BDE,
+ 14070: 0x5E55,
+ 14071: 0x6F20,
+ 14072: 0x819C,
+ 14073: 0x83AB,
+ 14074: 0x9088,
+ 14075: 0x4E07,
+ 14076: 0x534D,
+ 14077: 0x5A29,
+ 14078: 0x5DD2,
+ 14079: 0x5F4E,
+ 14080: 0x6162,
+ 14081: 0x633D,
+ 14082: 0x6669,
+ 14083: 0x66FC,
+ 14084: 0x6EFF,
+ 14085: 0x6F2B,
+ 14086: 0x7063,
+ 14087: 0x779E,
+ 14088: 0x842C,
+ 14089: 0x8513,
+ 14090: 0x883B,
+ 14091: 0x8F13,
+ 14092: 0x9945,
+ 14093: 0x9C3B,
+ 14094: 0x551C,
+ 14095: 0x62B9,
+ 14096: 0x672B,
+ 14097: 0x6CAB,
+ 14098: 0x8309,
+ 14099: 0x896A,
+ 14100: 0x977A,
+ 14101: 0x4EA1,
+ 14102: 0x5984,
+ 14103: 0x5FD8,
+ 14104: 0x5FD9,
+ 14105: 0x671B,
+ 14106: 0x7DB2,
+ 14107: 0x7F54,
+ 14108: 0x8292,
+ 14109: 0x832B,
+ 14110: 0x83BD,
+ 14111: 0x8F1E,
+ 14112: 0x9099,
+ 14113: 0x57CB,
+ 14114: 0x59B9,
+ 14115: 0x5A92,
+ 14116: 0x5BD0,
+ 14117: 0x6627,
+ 14118: 0x679A,
+ 14119: 0x6885,
+ 14120: 0x6BCF,
+ 14121: 0x7164,
+ 14122: 0x7F75,
+ 14123: 0x8CB7,
+ 14124: 0x8CE3,
+ 14125: 0x9081,
+ 14126: 0x9B45,
+ 14127: 0x8108,
+ 14128: 0x8C8A,
+ 14129: 0x964C,
+ 14130: 0x9A40,
+ 14131: 0x9EA5,
+ 14132: 0x5B5F,
+ 14133: 0x6C13,
+ 14134: 0x731B,
+ 14135: 0x76F2,
+ 14136: 0x76DF,
+ 14137: 0x840C,
+ 14138: 0x51AA,
+ 14139: 0x8993,
+ 14140: 0x514D,
+ 14141: 0x5195,
+ 14142: 0x52C9,
+ 14143: 0x68C9,
+ 14144: 0x6C94,
+ 14145: 0x7704,
+ 14146: 0x7720,
+ 14147: 0x7DBF,
+ 14148: 0x7DEC,
+ 14149: 0x9762,
+ 14150: 0x9EB5,
+ 14151: 0x6EC5,
+ 14152: 0x8511,
+ 14153: 0x51A5,
+ 14154: 0x540D,
+ 14155: 0x547D,
+ 14156: 0x660E,
+ 14157: 0x669D,
+ 14158: 0x6927,
+ 14159: 0x6E9F,
+ 14160: 0x76BF,
+ 14161: 0x7791,
+ 14162: 0x8317,
+ 14163: 0x84C2,
+ 14164: 0x879F,
+ 14165: 0x9169,
+ 14166: 0x9298,
+ 14167: 0x9CF4,
+ 14168: 0x8882,
+ 14169: 0x4FAE,
+ 14170: 0x5192,
+ 14171: 0x52DF,
+ 14172: 0x59C6,
+ 14173: 0x5E3D,
+ 14174: 0x6155,
+ 14175: 0x6478,
+ 14176: 0x6479,
+ 14177: 0x66AE,
+ 14178: 0x67D0,
+ 14179: 0x6A21,
+ 14180: 0x6BCD,
+ 14181: 0x6BDB,
+ 14182: 0x725F,
+ 14183: 0x7261,
+ 14184: 0x7441,
+ 14185: 0x7738,
+ 14186: 0x77DB,
+ 14187: 0x8017,
+ 14188: 0x82BC,
+ 14189: 0x8305,
+ 14190: 0x8B00,
+ 14191: 0x8B28,
+ 14192: 0x8C8C,
+ 14193: 0x6728,
+ 14194: 0x6C90,
+ 14195: 0x7267,
+ 14196: 0x76EE,
+ 14197: 0x7766,
+ 14198: 0x7A46,
+ 14199: 0x9DA9,
+ 14200: 0x6B7F,
+ 14201: 0x6C92,
+ 14202: 0x5922,
+ 14203: 0x6726,
+ 14204: 0x8499,
+ 14205: 0x536F,
+ 14206: 0x5893,
+ 14207: 0x5999,
+ 14208: 0x5EDF,
+ 14209: 0x63CF,
+ 14210: 0x6634,
+ 14211: 0x6773,
+ 14212: 0x6E3A,
+ 14213: 0x732B,
+ 14214: 0x7AD7,
+ 14215: 0x82D7,
+ 14216: 0x9328,
+ 14217: 0x52D9,
+ 14218: 0x5DEB,
+ 14219: 0x61AE,
+ 14220: 0x61CB,
+ 14221: 0x620A,
+ 14222: 0x62C7,
+ 14223: 0x64AB,
+ 14224: 0x65E0,
+ 14225: 0x6959,
+ 14226: 0x6B66,
+ 14227: 0x6BCB,
+ 14228: 0x7121,
+ 14229: 0x73F7,
+ 14230: 0x755D,
+ 14231: 0x7E46,
+ 14232: 0x821E,
+ 14233: 0x8302,
+ 14234: 0x856A,
+ 14235: 0x8AA3,
+ 14236: 0x8CBF,
+ 14237: 0x9727,
+ 14238: 0x9D61,
+ 14239: 0x58A8,
+ 14240: 0x9ED8,
+ 14241: 0x5011,
+ 14242: 0x520E,
+ 14243: 0x543B,
+ 14244: 0x554F,
+ 14245: 0x6587,
+ 14246: 0x6C76,
+ 14247: 0x7D0A,
+ 14248: 0x7D0B,
+ 14249: 0x805E,
+ 14250: 0x868A,
+ 14251: 0x9580,
+ 14252: 0x96EF,
+ 14253: 0x52FF,
+ 14254: 0x6C95,
+ 14255: 0x7269,
+ 14256: 0x5473,
+ 14257: 0x5A9A,
+ 14258: 0x5C3E,
+ 14259: 0x5D4B,
+ 14260: 0x5F4C,
+ 14261: 0x5FAE,
+ 14262: 0x672A,
+ 14263: 0x68B6,
+ 14264: 0x6963,
+ 14265: 0x6E3C,
+ 14266: 0x6E44,
+ 14267: 0x7709,
+ 14268: 0x7C73,
+ 14269: 0x7F8E,
+ 14270: 0x8587,
+ 14271: 0x8B0E,
+ 14272: 0x8FF7,
+ 14273: 0x9761,
+ 14274: 0x9EF4,
+ 14275: 0x5CB7,
+ 14276: 0x60B6,
+ 14277: 0x610D,
+ 14278: 0x61AB,
+ 14279: 0x654F,
+ 14280: 0x65FB,
+ 14281: 0x65FC,
+ 14282: 0x6C11,
+ 14283: 0x6CEF,
+ 14284: 0x739F,
+ 14285: 0x73C9,
+ 14286: 0x7DE1,
+ 14287: 0x9594,
+ 14288: 0x5BC6,
+ 14289: 0x871C,
+ 14290: 0x8B10,
+ 14291: 0x525D,
+ 14292: 0x535A,
+ 14293: 0x62CD,
+ 14294: 0x640F,
+ 14295: 0x64B2,
+ 14296: 0x6734,
+ 14297: 0x6A38,
+ 14298: 0x6CCA,
+ 14299: 0x73C0,
+ 14300: 0x749E,
+ 14301: 0x7B94,
+ 14302: 0x7C95,
+ 14303: 0x7E1B,
+ 14304: 0x818A,
+ 14305: 0x8236,
+ 14306: 0x8584,
+ 14307: 0x8FEB,
+ 14308: 0x96F9,
+ 14309: 0x99C1,
+ 14310: 0x4F34,
+ 14311: 0x534A,
+ 14312: 0x53CD,
+ 14313: 0x53DB,
+ 14314: 0x62CC,
+ 14315: 0x642C,
+ 14316: 0x6500,
+ 14317: 0x6591,
+ 14318: 0x69C3,
+ 14319: 0x6CEE,
+ 14320: 0x6F58,
+ 14321: 0x73ED,
+ 14322: 0x7554,
+ 14323: 0x7622,
+ 14324: 0x76E4,
+ 14325: 0x76FC,
+ 14326: 0x78D0,
+ 14327: 0x78FB,
+ 14328: 0x792C,
+ 14329: 0x7D46,
+ 14330: 0x822C,
+ 14331: 0x87E0,
+ 14332: 0x8FD4,
+ 14333: 0x9812,
+ 14334: 0x98EF,
+ 14335: 0x52C3,
+ 14336: 0x62D4,
+ 14337: 0x64A5,
+ 14338: 0x6E24,
+ 14339: 0x6F51,
+ 14340: 0x767C,
+ 14341: 0x8DCB,
+ 14342: 0x91B1,
+ 14343: 0x9262,
+ 14344: 0x9AEE,
+ 14345: 0x9B43,
+ 14346: 0x5023,
+ 14347: 0x508D,
+ 14348: 0x574A,
+ 14349: 0x59A8,
+ 14350: 0x5C28,
+ 14351: 0x5E47,
+ 14352: 0x5F77,
+ 14353: 0x623F,
+ 14354: 0x653E,
+ 14355: 0x65B9,
+ 14356: 0x65C1,
+ 14357: 0x6609,
+ 14358: 0x678B,
+ 14359: 0x699C,
+ 14360: 0x6EC2,
+ 14361: 0x78C5,
+ 14362: 0x7D21,
+ 14363: 0x80AA,
+ 14364: 0x8180,
+ 14365: 0x822B,
+ 14366: 0x82B3,
+ 14367: 0x84A1,
+ 14368: 0x868C,
+ 14369: 0x8A2A,
+ 14370: 0x8B17,
+ 14371: 0x90A6,
+ 14372: 0x9632,
+ 14373: 0x9F90,
+ 14374: 0x500D,
+ 14375: 0x4FF3,
+ 14376: 0xF963,
+ 14377: 0x57F9,
+ 14378: 0x5F98,
+ 14379: 0x62DC,
+ 14380: 0x6392,
+ 14381: 0x676F,
+ 14382: 0x6E43,
+ 14383: 0x7119,
+ 14384: 0x76C3,
+ 14385: 0x80CC,
+ 14386: 0x80DA,
+ 14387: 0x88F4,
+ 14388: 0x88F5,
+ 14389: 0x8919,
+ 14390: 0x8CE0,
+ 14391: 0x8F29,
+ 14392: 0x914D,
+ 14393: 0x966A,
+ 14394: 0x4F2F,
+ 14395: 0x4F70,
+ 14396: 0x5E1B,
+ 14397: 0x67CF,
+ 14398: 0x6822,
+ 14399: 0x767D,
+ 14400: 0x767E,
+ 14401: 0x9B44,
+ 14402: 0x5E61,
+ 14403: 0x6A0A,
+ 14404: 0x7169,
+ 14405: 0x71D4,
+ 14406: 0x756A,
+ 14407: 0xF964,
+ 14408: 0x7E41,
+ 14409: 0x8543,
+ 14410: 0x85E9,
+ 14411: 0x98DC,
+ 14412: 0x4F10,
+ 14413: 0x7B4F,
+ 14414: 0x7F70,
+ 14415: 0x95A5,
+ 14416: 0x51E1,
+ 14417: 0x5E06,
+ 14418: 0x68B5,
+ 14419: 0x6C3E,
+ 14420: 0x6C4E,
+ 14421: 0x6CDB,
+ 14422: 0x72AF,
+ 14423: 0x7BC4,
+ 14424: 0x8303,
+ 14425: 0x6CD5,
+ 14426: 0x743A,
+ 14427: 0x50FB,
+ 14428: 0x5288,
+ 14429: 0x58C1,
+ 14430: 0x64D8,
+ 14431: 0x6A97,
+ 14432: 0x74A7,
+ 14433: 0x7656,
+ 14434: 0x78A7,
+ 14435: 0x8617,
+ 14436: 0x95E2,
+ 14437: 0x9739,
+ 14438: 0xF965,
+ 14439: 0x535E,
+ 14440: 0x5F01,
+ 14441: 0x8B8A,
+ 14442: 0x8FA8,
+ 14443: 0x8FAF,
+ 14444: 0x908A,
+ 14445: 0x5225,
+ 14446: 0x77A5,
+ 14447: 0x9C49,
+ 14448: 0x9F08,
+ 14449: 0x4E19,
+ 14450: 0x5002,
+ 14451: 0x5175,
+ 14452: 0x5C5B,
+ 14453: 0x5E77,
+ 14454: 0x661E,
+ 14455: 0x663A,
+ 14456: 0x67C4,
+ 14457: 0x68C5,
+ 14458: 0x70B3,
+ 14459: 0x7501,
+ 14460: 0x75C5,
+ 14461: 0x79C9,
+ 14462: 0x7ADD,
+ 14463: 0x8F27,
+ 14464: 0x9920,
+ 14465: 0x9A08,
+ 14466: 0x4FDD,
+ 14467: 0x5821,
+ 14468: 0x5831,
+ 14469: 0x5BF6,
+ 14470: 0x666E,
+ 14471: 0x6B65,
+ 14472: 0x6D11,
+ 14473: 0x6E7A,
+ 14474: 0x6F7D,
+ 14475: 0x73E4,
+ 14476: 0x752B,
+ 14477: 0x83E9,
+ 14478: 0x88DC,
+ 14479: 0x8913,
+ 14480: 0x8B5C,
+ 14481: 0x8F14,
+ 14482: 0x4F0F,
+ 14483: 0x50D5,
+ 14484: 0x5310,
+ 14485: 0x535C,
+ 14486: 0x5B93,
+ 14487: 0x5FA9,
+ 14488: 0x670D,
+ 14489: 0x798F,
+ 14490: 0x8179,
+ 14491: 0x832F,
+ 14492: 0x8514,
+ 14493: 0x8907,
+ 14494: 0x8986,
+ 14495: 0x8F39,
+ 14496: 0x8F3B,
+ 14497: 0x99A5,
+ 14498: 0x9C12,
+ 14499: 0x672C,
+ 14500: 0x4E76,
+ 14501: 0x4FF8,
+ 14502: 0x5949,
+ 14503: 0x5C01,
+ 14504: 0x5CEF,
+ 14505: 0x5CF0,
+ 14506: 0x6367,
+ 14507: 0x68D2,
+ 14508: 0x70FD,
+ 14509: 0x71A2,
+ 14510: 0x742B,
+ 14511: 0x7E2B,
+ 14512: 0x84EC,
+ 14513: 0x8702,
+ 14514: 0x9022,
+ 14515: 0x92D2,
+ 14516: 0x9CF3,
+ 14517: 0x4E0D,
+ 14518: 0x4ED8,
+ 14519: 0x4FEF,
+ 14520: 0x5085,
+ 14521: 0x5256,
+ 14522: 0x526F,
+ 14523: 0x5426,
+ 14524: 0x5490,
+ 14525: 0x57E0,
+ 14526: 0x592B,
+ 14527: 0x5A66,
+ 14528: 0x5B5A,
+ 14529: 0x5B75,
+ 14530: 0x5BCC,
+ 14531: 0x5E9C,
+ 14532: 0xF966,
+ 14533: 0x6276,
+ 14534: 0x6577,
+ 14535: 0x65A7,
+ 14536: 0x6D6E,
+ 14537: 0x6EA5,
+ 14538: 0x7236,
+ 14539: 0x7B26,
+ 14540: 0x7C3F,
+ 14541: 0x7F36,
+ 14542: 0x8150,
+ 14543: 0x8151,
+ 14544: 0x819A,
+ 14545: 0x8240,
+ 14546: 0x8299,
+ 14547: 0x83A9,
+ 14548: 0x8A03,
+ 14549: 0x8CA0,
+ 14550: 0x8CE6,
+ 14551: 0x8CFB,
+ 14552: 0x8D74,
+ 14553: 0x8DBA,
+ 14554: 0x90E8,
+ 14555: 0x91DC,
+ 14556: 0x961C,
+ 14557: 0x9644,
+ 14558: 0x99D9,
+ 14559: 0x9CE7,
+ 14560: 0x5317,
+ 14561: 0x5206,
+ 14562: 0x5429,
+ 14563: 0x5674,
+ 14564: 0x58B3,
+ 14565: 0x5954,
+ 14566: 0x596E,
+ 14567: 0x5FFF,
+ 14568: 0x61A4,
+ 14569: 0x626E,
+ 14570: 0x6610,
+ 14571: 0x6C7E,
+ 14572: 0x711A,
+ 14573: 0x76C6,
+ 14574: 0x7C89,
+ 14575: 0x7CDE,
+ 14576: 0x7D1B,
+ 14577: 0x82AC,
+ 14578: 0x8CC1,
+ 14579: 0x96F0,
+ 14580: 0xF967,
+ 14581: 0x4F5B,
+ 14582: 0x5F17,
+ 14583: 0x5F7F,
+ 14584: 0x62C2,
+ 14585: 0x5D29,
+ 14586: 0x670B,
+ 14587: 0x68DA,
+ 14588: 0x787C,
+ 14589: 0x7E43,
+ 14590: 0x9D6C,
+ 14591: 0x4E15,
+ 14592: 0x5099,
+ 14593: 0x5315,
+ 14594: 0x532A,
+ 14595: 0x5351,
+ 14596: 0x5983,
+ 14597: 0x5A62,
+ 14598: 0x5E87,
+ 14599: 0x60B2,
+ 14600: 0x618A,
+ 14601: 0x6249,
+ 14602: 0x6279,
+ 14603: 0x6590,
+ 14604: 0x6787,
+ 14605: 0x69A7,
+ 14606: 0x6BD4,
+ 14607: 0x6BD6,
+ 14608: 0x6BD7,
+ 14609: 0x6BD8,
+ 14610: 0x6CB8,
+ 14611: 0xF968,
+ 14612: 0x7435,
+ 14613: 0x75FA,
+ 14614: 0x7812,
+ 14615: 0x7891,
+ 14616: 0x79D5,
+ 14617: 0x79D8,
+ 14618: 0x7C83,
+ 14619: 0x7DCB,
+ 14620: 0x7FE1,
+ 14621: 0x80A5,
+ 14622: 0x813E,
+ 14623: 0x81C2,
+ 14624: 0x83F2,
+ 14625: 0x871A,
+ 14626: 0x88E8,
+ 14627: 0x8AB9,
+ 14628: 0x8B6C,
+ 14629: 0x8CBB,
+ 14630: 0x9119,
+ 14631: 0x975E,
+ 14632: 0x98DB,
+ 14633: 0x9F3B,
+ 14634: 0x56AC,
+ 14635: 0x5B2A,
+ 14636: 0x5F6C,
+ 14637: 0x658C,
+ 14638: 0x6AB3,
+ 14639: 0x6BAF,
+ 14640: 0x6D5C,
+ 14641: 0x6FF1,
+ 14642: 0x7015,
+ 14643: 0x725D,
+ 14644: 0x73AD,
+ 14645: 0x8CA7,
+ 14646: 0x8CD3,
+ 14647: 0x983B,
+ 14648: 0x6191,
+ 14649: 0x6C37,
+ 14650: 0x8058,
+ 14651: 0x9A01,
+ 14652: 0x4E4D,
+ 14653: 0x4E8B,
+ 14654: 0x4E9B,
+ 14655: 0x4ED5,
+ 14656: 0x4F3A,
+ 14657: 0x4F3C,
+ 14658: 0x4F7F,
+ 14659: 0x4FDF,
+ 14660: 0x50FF,
+ 14661: 0x53F2,
+ 14662: 0x53F8,
+ 14663: 0x5506,
+ 14664: 0x55E3,
+ 14665: 0x56DB,
+ 14666: 0x58EB,
+ 14667: 0x5962,
+ 14668: 0x5A11,
+ 14669: 0x5BEB,
+ 14670: 0x5BFA,
+ 14671: 0x5C04,
+ 14672: 0x5DF3,
+ 14673: 0x5E2B,
+ 14674: 0x5F99,
+ 14675: 0x601D,
+ 14676: 0x6368,
+ 14677: 0x659C,
+ 14678: 0x65AF,
+ 14679: 0x67F6,
+ 14680: 0x67FB,
+ 14681: 0x68AD,
+ 14682: 0x6B7B,
+ 14683: 0x6C99,
+ 14684: 0x6CD7,
+ 14685: 0x6E23,
+ 14686: 0x7009,
+ 14687: 0x7345,
+ 14688: 0x7802,
+ 14689: 0x793E,
+ 14690: 0x7940,
+ 14691: 0x7960,
+ 14692: 0x79C1,
+ 14693: 0x7BE9,
+ 14694: 0x7D17,
+ 14695: 0x7D72,
+ 14696: 0x8086,
+ 14697: 0x820D,
+ 14698: 0x838E,
+ 14699: 0x84D1,
+ 14700: 0x86C7,
+ 14701: 0x88DF,
+ 14702: 0x8A50,
+ 14703: 0x8A5E,
+ 14704: 0x8B1D,
+ 14705: 0x8CDC,
+ 14706: 0x8D66,
+ 14707: 0x8FAD,
+ 14708: 0x90AA,
+ 14709: 0x98FC,
+ 14710: 0x99DF,
+ 14711: 0x9E9D,
+ 14712: 0x524A,
+ 14713: 0xF969,
+ 14714: 0x6714,
+ 14715: 0xF96A,
+ 14716: 0x5098,
+ 14717: 0x522A,
+ 14718: 0x5C71,
+ 14719: 0x6563,
+ 14720: 0x6C55,
+ 14721: 0x73CA,
+ 14722: 0x7523,
+ 14723: 0x759D,
+ 14724: 0x7B97,
+ 14725: 0x849C,
+ 14726: 0x9178,
+ 14727: 0x9730,
+ 14728: 0x4E77,
+ 14729: 0x6492,
+ 14730: 0x6BBA,
+ 14731: 0x715E,
+ 14732: 0x85A9,
+ 14733: 0x4E09,
+ 14734: 0xF96B,
+ 14735: 0x6749,
+ 14736: 0x68EE,
+ 14737: 0x6E17,
+ 14738: 0x829F,
+ 14739: 0x8518,
+ 14740: 0x886B,
+ 14741: 0x63F7,
+ 14742: 0x6F81,
+ 14743: 0x9212,
+ 14744: 0x98AF,
+ 14745: 0x4E0A,
+ 14746: 0x50B7,
+ 14747: 0x50CF,
+ 14748: 0x511F,
+ 14749: 0x5546,
+ 14750: 0x55AA,
+ 14751: 0x5617,
+ 14752: 0x5B40,
+ 14753: 0x5C19,
+ 14754: 0x5CE0,
+ 14755: 0x5E38,
+ 14756: 0x5E8A,
+ 14757: 0x5EA0,
+ 14758: 0x5EC2,
+ 14759: 0x60F3,
+ 14760: 0x6851,
+ 14761: 0x6A61,
+ 14762: 0x6E58,
+ 14763: 0x723D,
+ 14764: 0x7240,
+ 14765: 0x72C0,
+ 14766: 0x76F8,
+ 14767: 0x7965,
+ 14768: 0x7BB1,
+ 14769: 0x7FD4,
+ 14770: 0x88F3,
+ 14771: 0x89F4,
+ 14772: 0x8A73,
+ 14773: 0x8C61,
+ 14774: 0x8CDE,
+ 14775: 0x971C,
+ 14776: 0x585E,
+ 14777: 0x74BD,
+ 14778: 0x8CFD,
+ 14779: 0x55C7,
+ 14780: 0xF96C,
+ 14781: 0x7A61,
+ 14782: 0x7D22,
+ 14783: 0x8272,
+ 14784: 0x7272,
+ 14785: 0x751F,
+ 14786: 0x7525,
+ 14787: 0xF96D,
+ 14788: 0x7B19,
+ 14789: 0x5885,
+ 14790: 0x58FB,
+ 14791: 0x5DBC,
+ 14792: 0x5E8F,
+ 14793: 0x5EB6,
+ 14794: 0x5F90,
+ 14795: 0x6055,
+ 14796: 0x6292,
+ 14797: 0x637F,
+ 14798: 0x654D,
+ 14799: 0x6691,
+ 14800: 0x66D9,
+ 14801: 0x66F8,
+ 14802: 0x6816,
+ 14803: 0x68F2,
+ 14804: 0x7280,
+ 14805: 0x745E,
+ 14806: 0x7B6E,
+ 14807: 0x7D6E,
+ 14808: 0x7DD6,
+ 14809: 0x7F72,
+ 14810: 0x80E5,
+ 14811: 0x8212,
+ 14812: 0x85AF,
+ 14813: 0x897F,
+ 14814: 0x8A93,
+ 14815: 0x901D,
+ 14816: 0x92E4,
+ 14817: 0x9ECD,
+ 14818: 0x9F20,
+ 14819: 0x5915,
+ 14820: 0x596D,
+ 14821: 0x5E2D,
+ 14822: 0x60DC,
+ 14823: 0x6614,
+ 14824: 0x6673,
+ 14825: 0x6790,
+ 14826: 0x6C50,
+ 14827: 0x6DC5,
+ 14828: 0x6F5F,
+ 14829: 0x77F3,
+ 14830: 0x78A9,
+ 14831: 0x84C6,
+ 14832: 0x91CB,
+ 14833: 0x932B,
+ 14834: 0x4ED9,
+ 14835: 0x50CA,
+ 14836: 0x5148,
+ 14837: 0x5584,
+ 14838: 0x5B0B,
+ 14839: 0x5BA3,
+ 14840: 0x6247,
+ 14841: 0x657E,
+ 14842: 0x65CB,
+ 14843: 0x6E32,
+ 14844: 0x717D,
+ 14845: 0x7401,
+ 14846: 0x7444,
+ 14847: 0x7487,
+ 14848: 0x74BF,
+ 14849: 0x766C,
+ 14850: 0x79AA,
+ 14851: 0x7DDA,
+ 14852: 0x7E55,
+ 14853: 0x7FA8,
+ 14854: 0x817A,
+ 14855: 0x81B3,
+ 14856: 0x8239,
+ 14857: 0x861A,
+ 14858: 0x87EC,
+ 14859: 0x8A75,
+ 14860: 0x8DE3,
+ 14861: 0x9078,
+ 14862: 0x9291,
+ 14863: 0x9425,
+ 14864: 0x994D,
+ 14865: 0x9BAE,
+ 14866: 0x5368,
+ 14867: 0x5C51,
+ 14868: 0x6954,
+ 14869: 0x6CC4,
+ 14870: 0x6D29,
+ 14871: 0x6E2B,
+ 14872: 0x820C,
+ 14873: 0x859B,
+ 14874: 0x893B,
+ 14875: 0x8A2D,
+ 14876: 0x8AAA,
+ 14877: 0x96EA,
+ 14878: 0x9F67,
+ 14879: 0x5261,
+ 14880: 0x66B9,
+ 14881: 0x6BB2,
+ 14882: 0x7E96,
+ 14883: 0x87FE,
+ 14884: 0x8D0D,
+ 14885: 0x9583,
+ 14886: 0x965D,
+ 14887: 0x651D,
+ 14888: 0x6D89,
+ 14889: 0x71EE,
+ 14890: 0xF96E,
+ 14891: 0x57CE,
+ 14892: 0x59D3,
+ 14893: 0x5BAC,
+ 14894: 0x6027,
+ 14895: 0x60FA,
+ 14896: 0x6210,
+ 14897: 0x661F,
+ 14898: 0x665F,
+ 14899: 0x7329,
+ 14900: 0x73F9,
+ 14901: 0x76DB,
+ 14902: 0x7701,
+ 14903: 0x7B6C,
+ 14904: 0x8056,
+ 14905: 0x8072,
+ 14906: 0x8165,
+ 14907: 0x8AA0,
+ 14908: 0x9192,
+ 14909: 0x4E16,
+ 14910: 0x52E2,
+ 14911: 0x6B72,
+ 14912: 0x6D17,
+ 14913: 0x7A05,
+ 14914: 0x7B39,
+ 14915: 0x7D30,
+ 14916: 0xF96F,
+ 14917: 0x8CB0,
+ 14918: 0x53EC,
+ 14919: 0x562F,
+ 14920: 0x5851,
+ 14921: 0x5BB5,
+ 14922: 0x5C0F,
+ 14923: 0x5C11,
+ 14924: 0x5DE2,
+ 14925: 0x6240,
+ 14926: 0x6383,
+ 14927: 0x6414,
+ 14928: 0x662D,
+ 14929: 0x68B3,
+ 14930: 0x6CBC,
+ 14931: 0x6D88,
+ 14932: 0x6EAF,
+ 14933: 0x701F,
+ 14934: 0x70A4,
+ 14935: 0x71D2,
+ 14936: 0x7526,
+ 14937: 0x758F,
+ 14938: 0x758E,
+ 14939: 0x7619,
+ 14940: 0x7B11,
+ 14941: 0x7BE0,
+ 14942: 0x7C2B,
+ 14943: 0x7D20,
+ 14944: 0x7D39,
+ 14945: 0x852C,
+ 14946: 0x856D,
+ 14947: 0x8607,
+ 14948: 0x8A34,
+ 14949: 0x900D,
+ 14950: 0x9061,
+ 14951: 0x90B5,
+ 14952: 0x92B7,
+ 14953: 0x97F6,
+ 14954: 0x9A37,
+ 14955: 0x4FD7,
+ 14956: 0x5C6C,
+ 14957: 0x675F,
+ 14958: 0x6D91,
+ 14959: 0x7C9F,
+ 14960: 0x7E8C,
+ 14961: 0x8B16,
+ 14962: 0x8D16,
+ 14963: 0x901F,
+ 14964: 0x5B6B,
+ 14965: 0x5DFD,
+ 14966: 0x640D,
+ 14967: 0x84C0,
+ 14968: 0x905C,
+ 14969: 0x98E1,
+ 14970: 0x7387,
+ 14971: 0x5B8B,
+ 14972: 0x609A,
+ 14973: 0x677E,
+ 14974: 0x6DDE,
+ 14975: 0x8A1F,
+ 14976: 0x8AA6,
+ 14977: 0x9001,
+ 14978: 0x980C,
+ 14979: 0x5237,
+ 14980: 0xF970,
+ 14981: 0x7051,
+ 14982: 0x788E,
+ 14983: 0x9396,
+ 14984: 0x8870,
+ 14985: 0x91D7,
+ 14986: 0x4FEE,
+ 14987: 0x53D7,
+ 14988: 0x55FD,
+ 14989: 0x56DA,
+ 14990: 0x5782,
+ 14991: 0x58FD,
+ 14992: 0x5AC2,
+ 14993: 0x5B88,
+ 14994: 0x5CAB,
+ 14995: 0x5CC0,
+ 14996: 0x5E25,
+ 14997: 0x6101,
+ 14998: 0x620D,
+ 14999: 0x624B,
+ 15000: 0x6388,
+ 15001: 0x641C,
+ 15002: 0x6536,
+ 15003: 0x6578,
+ 15004: 0x6A39,
+ 15005: 0x6B8A,
+ 15006: 0x6C34,
+ 15007: 0x6D19,
+ 15008: 0x6F31,
+ 15009: 0x71E7,
+ 15010: 0x72E9,
+ 15011: 0x7378,
+ 15012: 0x7407,
+ 15013: 0x74B2,
+ 15014: 0x7626,
+ 15015: 0x7761,
+ 15016: 0x79C0,
+ 15017: 0x7A57,
+ 15018: 0x7AEA,
+ 15019: 0x7CB9,
+ 15020: 0x7D8F,
+ 15021: 0x7DAC,
+ 15022: 0x7E61,
+ 15023: 0x7F9E,
+ 15024: 0x8129,
+ 15025: 0x8331,
+ 15026: 0x8490,
+ 15027: 0x84DA,
+ 15028: 0x85EA,
+ 15029: 0x8896,
+ 15030: 0x8AB0,
+ 15031: 0x8B90,
+ 15032: 0x8F38,
+ 15033: 0x9042,
+ 15034: 0x9083,
+ 15035: 0x916C,
+ 15036: 0x9296,
+ 15037: 0x92B9,
+ 15038: 0x968B,
+ 15039: 0x96A7,
+ 15040: 0x96A8,
+ 15041: 0x96D6,
+ 15042: 0x9700,
+ 15043: 0x9808,
+ 15044: 0x9996,
+ 15045: 0x9AD3,
+ 15046: 0x9B1A,
+ 15047: 0x53D4,
+ 15048: 0x587E,
+ 15049: 0x5919,
+ 15050: 0x5B70,
+ 15051: 0x5BBF,
+ 15052: 0x6DD1,
+ 15053: 0x6F5A,
+ 15054: 0x719F,
+ 15055: 0x7421,
+ 15056: 0x74B9,
+ 15057: 0x8085,
+ 15058: 0x83FD,
+ 15059: 0x5DE1,
+ 15060: 0x5F87,
+ 15061: 0x5FAA,
+ 15062: 0x6042,
+ 15063: 0x65EC,
+ 15064: 0x6812,
+ 15065: 0x696F,
+ 15066: 0x6A53,
+ 15067: 0x6B89,
+ 15068: 0x6D35,
+ 15069: 0x6DF3,
+ 15070: 0x73E3,
+ 15071: 0x76FE,
+ 15072: 0x77AC,
+ 15073: 0x7B4D,
+ 15074: 0x7D14,
+ 15075: 0x8123,
+ 15076: 0x821C,
+ 15077: 0x8340,
+ 15078: 0x84F4,
+ 15079: 0x8563,
+ 15080: 0x8A62,
+ 15081: 0x8AC4,
+ 15082: 0x9187,
+ 15083: 0x931E,
+ 15084: 0x9806,
+ 15085: 0x99B4,
+ 15086: 0x620C,
+ 15087: 0x8853,
+ 15088: 0x8FF0,
+ 15089: 0x9265,
+ 15090: 0x5D07,
+ 15091: 0x5D27,
+ 15092: 0x5D69,
+ 15093: 0x745F,
+ 15094: 0x819D,
+ 15095: 0x8768,
+ 15096: 0x6FD5,
+ 15097: 0x62FE,
+ 15098: 0x7FD2,
+ 15099: 0x8936,
+ 15100: 0x8972,
+ 15101: 0x4E1E,
+ 15102: 0x4E58,
+ 15103: 0x50E7,
+ 15104: 0x52DD,
+ 15105: 0x5347,
+ 15106: 0x627F,
+ 15107: 0x6607,
+ 15108: 0x7E69,
+ 15109: 0x8805,
+ 15110: 0x965E,
+ 15111: 0x4F8D,
+ 15112: 0x5319,
+ 15113: 0x5636,
+ 15114: 0x59CB,
+ 15115: 0x5AA4,
+ 15116: 0x5C38,
+ 15117: 0x5C4E,
+ 15118: 0x5C4D,
+ 15119: 0x5E02,
+ 15120: 0x5F11,
+ 15121: 0x6043,
+ 15122: 0x65BD,
+ 15123: 0x662F,
+ 15124: 0x6642,
+ 15125: 0x67BE,
+ 15126: 0x67F4,
+ 15127: 0x731C,
+ 15128: 0x77E2,
+ 15129: 0x793A,
+ 15130: 0x7FC5,
+ 15131: 0x8494,
+ 15132: 0x84CD,
+ 15133: 0x8996,
+ 15134: 0x8A66,
+ 15135: 0x8A69,
+ 15136: 0x8AE1,
+ 15137: 0x8C55,
+ 15138: 0x8C7A,
+ 15139: 0x57F4,
+ 15140: 0x5BD4,
+ 15141: 0x5F0F,
+ 15142: 0x606F,
+ 15143: 0x62ED,
+ 15144: 0x690D,
+ 15145: 0x6B96,
+ 15146: 0x6E5C,
+ 15147: 0x7184,
+ 15148: 0x7BD2,
+ 15149: 0x8755,
+ 15150: 0x8B58,
+ 15151: 0x8EFE,
+ 15152: 0x98DF,
+ 15153: 0x98FE,
+ 15154: 0x4F38,
+ 15155: 0x4F81,
+ 15156: 0x4FE1,
+ 15157: 0x547B,
+ 15158: 0x5A20,
+ 15159: 0x5BB8,
+ 15160: 0x613C,
+ 15161: 0x65B0,
+ 15162: 0x6668,
+ 15163: 0x71FC,
+ 15164: 0x7533,
+ 15165: 0x795E,
+ 15166: 0x7D33,
+ 15167: 0x814E,
+ 15168: 0x81E3,
+ 15169: 0x8398,
+ 15170: 0x85AA,
+ 15171: 0x85CE,
+ 15172: 0x8703,
+ 15173: 0x8A0A,
+ 15174: 0x8EAB,
+ 15175: 0x8F9B,
+ 15176: 0xF971,
+ 15177: 0x8FC5,
+ 15178: 0x5931,
+ 15179: 0x5BA4,
+ 15180: 0x5BE6,
+ 15181: 0x6089,
+ 15182: 0x5BE9,
+ 15183: 0x5C0B,
+ 15184: 0x5FC3,
+ 15185: 0x6C81,
+ 15186: 0xF972,
+ 15187: 0x6DF1,
+ 15188: 0x700B,
+ 15189: 0x751A,
+ 15190: 0x82AF,
+ 15191: 0x8AF6,
+ 15192: 0x4EC0,
+ 15193: 0x5341,
+ 15194: 0xF973,
+ 15195: 0x96D9,
+ 15196: 0x6C0F,
+ 15197: 0x4E9E,
+ 15198: 0x4FC4,
+ 15199: 0x5152,
+ 15200: 0x555E,
+ 15201: 0x5A25,
+ 15202: 0x5CE8,
+ 15203: 0x6211,
+ 15204: 0x7259,
+ 15205: 0x82BD,
+ 15206: 0x83AA,
+ 15207: 0x86FE,
+ 15208: 0x8859,
+ 15209: 0x8A1D,
+ 15210: 0x963F,
+ 15211: 0x96C5,
+ 15212: 0x9913,
+ 15213: 0x9D09,
+ 15214: 0x9D5D,
+ 15215: 0x580A,
+ 15216: 0x5CB3,
+ 15217: 0x5DBD,
+ 15218: 0x5E44,
+ 15219: 0x60E1,
+ 15220: 0x6115,
+ 15221: 0x63E1,
+ 15222: 0x6A02,
+ 15223: 0x6E25,
+ 15224: 0x9102,
+ 15225: 0x9354,
+ 15226: 0x984E,
+ 15227: 0x9C10,
+ 15228: 0x9F77,
+ 15229: 0x5B89,
+ 15230: 0x5CB8,
+ 15231: 0x6309,
+ 15232: 0x664F,
+ 15233: 0x6848,
+ 15234: 0x773C,
+ 15235: 0x96C1,
+ 15236: 0x978D,
+ 15237: 0x9854,
+ 15238: 0x9B9F,
+ 15239: 0x65A1,
+ 15240: 0x8B01,
+ 15241: 0x8ECB,
+ 15242: 0x95BC,
+ 15243: 0x5535,
+ 15244: 0x5CA9,
+ 15245: 0x5DD6,
+ 15246: 0x5EB5,
+ 15247: 0x6697,
+ 15248: 0x764C,
+ 15249: 0x83F4,
+ 15250: 0x95C7,
+ 15251: 0x58D3,
+ 15252: 0x62BC,
+ 15253: 0x72CE,
+ 15254: 0x9D28,
+ 15255: 0x4EF0,
+ 15256: 0x592E,
+ 15257: 0x600F,
+ 15258: 0x663B,
+ 15259: 0x6B83,
+ 15260: 0x79E7,
+ 15261: 0x9D26,
+ 15262: 0x5393,
+ 15263: 0x54C0,
+ 15264: 0x57C3,
+ 15265: 0x5D16,
+ 15266: 0x611B,
+ 15267: 0x66D6,
+ 15268: 0x6DAF,
+ 15269: 0x788D,
+ 15270: 0x827E,
+ 15271: 0x9698,
+ 15272: 0x9744,
+ 15273: 0x5384,
+ 15274: 0x627C,
+ 15275: 0x6396,
+ 15276: 0x6DB2,
+ 15277: 0x7E0A,
+ 15278: 0x814B,
+ 15279: 0x984D,
+ 15280: 0x6AFB,
+ 15281: 0x7F4C,
+ 15282: 0x9DAF,
+ 15283: 0x9E1A,
+ 15284: 0x4E5F,
+ 15285: 0x503B,
+ 15286: 0x51B6,
+ 15287: 0x591C,
+ 15288: 0x60F9,
+ 15289: 0x63F6,
+ 15290: 0x6930,
+ 15291: 0x723A,
+ 15292: 0x8036,
+ 15293: 0xF974,
+ 15294: 0x91CE,
+ 15295: 0x5F31,
+ 15296: 0xF975,
+ 15297: 0xF976,
+ 15298: 0x7D04,
+ 15299: 0x82E5,
+ 15300: 0x846F,
+ 15301: 0x84BB,
+ 15302: 0x85E5,
+ 15303: 0x8E8D,
+ 15304: 0xF977,
+ 15305: 0x4F6F,
+ 15306: 0xF978,
+ 15307: 0xF979,
+ 15308: 0x58E4,
+ 15309: 0x5B43,
+ 15310: 0x6059,
+ 15311: 0x63DA,
+ 15312: 0x6518,
+ 15313: 0x656D,
+ 15314: 0x6698,
+ 15315: 0xF97A,
+ 15316: 0x694A,
+ 15317: 0x6A23,
+ 15318: 0x6D0B,
+ 15319: 0x7001,
+ 15320: 0x716C,
+ 15321: 0x75D2,
+ 15322: 0x760D,
+ 15323: 0x79B3,
+ 15324: 0x7A70,
+ 15325: 0xF97B,
+ 15326: 0x7F8A,
+ 15327: 0xF97C,
+ 15328: 0x8944,
+ 15329: 0xF97D,
+ 15330: 0x8B93,
+ 15331: 0x91C0,
+ 15332: 0x967D,
+ 15333: 0xF97E,
+ 15334: 0x990A,
+ 15335: 0x5704,
+ 15336: 0x5FA1,
+ 15337: 0x65BC,
+ 15338: 0x6F01,
+ 15339: 0x7600,
+ 15340: 0x79A6,
+ 15341: 0x8A9E,
+ 15342: 0x99AD,
+ 15343: 0x9B5A,
+ 15344: 0x9F6C,
+ 15345: 0x5104,
+ 15346: 0x61B6,
+ 15347: 0x6291,
+ 15348: 0x6A8D,
+ 15349: 0x81C6,
+ 15350: 0x5043,
+ 15351: 0x5830,
+ 15352: 0x5F66,
+ 15353: 0x7109,
+ 15354: 0x8A00,
+ 15355: 0x8AFA,
+ 15356: 0x5B7C,
+ 15357: 0x8616,
+ 15358: 0x4FFA,
+ 15359: 0x513C,
+ 15360: 0x56B4,
+ 15361: 0x5944,
+ 15362: 0x63A9,
+ 15363: 0x6DF9,
+ 15364: 0x5DAA,
+ 15365: 0x696D,
+ 15366: 0x5186,
+ 15367: 0x4E88,
+ 15368: 0x4F59,
+ 15369: 0xF97F,
+ 15370: 0xF980,
+ 15371: 0xF981,
+ 15372: 0x5982,
+ 15373: 0xF982,
+ 15374: 0xF983,
+ 15375: 0x6B5F,
+ 15376: 0x6C5D,
+ 15377: 0xF984,
+ 15378: 0x74B5,
+ 15379: 0x7916,
+ 15380: 0xF985,
+ 15381: 0x8207,
+ 15382: 0x8245,
+ 15383: 0x8339,
+ 15384: 0x8F3F,
+ 15385: 0x8F5D,
+ 15386: 0xF986,
+ 15387: 0x9918,
+ 15388: 0xF987,
+ 15389: 0xF988,
+ 15390: 0xF989,
+ 15391: 0x4EA6,
+ 15392: 0xF98A,
+ 15393: 0x57DF,
+ 15394: 0x5F79,
+ 15395: 0x6613,
+ 15396: 0xF98B,
+ 15397: 0xF98C,
+ 15398: 0x75AB,
+ 15399: 0x7E79,
+ 15400: 0x8B6F,
+ 15401: 0xF98D,
+ 15402: 0x9006,
+ 15403: 0x9A5B,
+ 15404: 0x56A5,
+ 15405: 0x5827,
+ 15406: 0x59F8,
+ 15407: 0x5A1F,
+ 15408: 0x5BB4,
+ 15409: 0xF98E,
+ 15410: 0x5EF6,
+ 15411: 0xF98F,
+ 15412: 0xF990,
+ 15413: 0x6350,
+ 15414: 0x633B,
+ 15415: 0xF991,
+ 15416: 0x693D,
+ 15417: 0x6C87,
+ 15418: 0x6CBF,
+ 15419: 0x6D8E,
+ 15420: 0x6D93,
+ 15421: 0x6DF5,
+ 15422: 0x6F14,
+ 15423: 0xF992,
+ 15424: 0x70DF,
+ 15425: 0x7136,
+ 15426: 0x7159,
+ 15427: 0xF993,
+ 15428: 0x71C3,
+ 15429: 0x71D5,
+ 15430: 0xF994,
+ 15431: 0x784F,
+ 15432: 0x786F,
+ 15433: 0xF995,
+ 15434: 0x7B75,
+ 15435: 0x7DE3,
+ 15436: 0xF996,
+ 15437: 0x7E2F,
+ 15438: 0xF997,
+ 15439: 0x884D,
+ 15440: 0x8EDF,
+ 15441: 0xF998,
+ 15442: 0xF999,
+ 15443: 0xF99A,
+ 15444: 0x925B,
+ 15445: 0xF99B,
+ 15446: 0x9CF6,
+ 15447: 0xF99C,
+ 15448: 0xF99D,
+ 15449: 0xF99E,
+ 15450: 0x6085,
+ 15451: 0x6D85,
+ 15452: 0xF99F,
+ 15453: 0x71B1,
+ 15454: 0xF9A0,
+ 15455: 0xF9A1,
+ 15456: 0x95B1,
+ 15457: 0x53AD,
+ 15458: 0xF9A2,
+ 15459: 0xF9A3,
+ 15460: 0xF9A4,
+ 15461: 0x67D3,
+ 15462: 0xF9A5,
+ 15463: 0x708E,
+ 15464: 0x7130,
+ 15465: 0x7430,
+ 15466: 0x8276,
+ 15467: 0x82D2,
+ 15468: 0xF9A6,
+ 15469: 0x95BB,
+ 15470: 0x9AE5,
+ 15471: 0x9E7D,
+ 15472: 0x66C4,
+ 15473: 0xF9A7,
+ 15474: 0x71C1,
+ 15475: 0x8449,
+ 15476: 0xF9A8,
+ 15477: 0xF9A9,
+ 15478: 0x584B,
+ 15479: 0xF9AA,
+ 15480: 0xF9AB,
+ 15481: 0x5DB8,
+ 15482: 0x5F71,
+ 15483: 0xF9AC,
+ 15484: 0x6620,
+ 15485: 0x668E,
+ 15486: 0x6979,
+ 15487: 0x69AE,
+ 15488: 0x6C38,
+ 15489: 0x6CF3,
+ 15490: 0x6E36,
+ 15491: 0x6F41,
+ 15492: 0x6FDA,
+ 15493: 0x701B,
+ 15494: 0x702F,
+ 15495: 0x7150,
+ 15496: 0x71DF,
+ 15497: 0x7370,
+ 15498: 0xF9AD,
+ 15499: 0x745B,
+ 15500: 0xF9AE,
+ 15501: 0x74D4,
+ 15502: 0x76C8,
+ 15503: 0x7A4E,
+ 15504: 0x7E93,
+ 15505: 0xF9AF,
+ 15506: 0xF9B0,
+ 15507: 0x82F1,
+ 15508: 0x8A60,
+ 15509: 0x8FCE,
+ 15510: 0xF9B1,
+ 15511: 0x9348,
+ 15512: 0xF9B2,
+ 15513: 0x9719,
+ 15514: 0xF9B3,
+ 15515: 0xF9B4,
+ 15516: 0x4E42,
+ 15517: 0x502A,
+ 15518: 0xF9B5,
+ 15519: 0x5208,
+ 15520: 0x53E1,
+ 15521: 0x66F3,
+ 15522: 0x6C6D,
+ 15523: 0x6FCA,
+ 15524: 0x730A,
+ 15525: 0x777F,
+ 15526: 0x7A62,
+ 15527: 0x82AE,
+ 15528: 0x85DD,
+ 15529: 0x8602,
+ 15530: 0xF9B6,
+ 15531: 0x88D4,
+ 15532: 0x8A63,
+ 15533: 0x8B7D,
+ 15534: 0x8C6B,
+ 15535: 0xF9B7,
+ 15536: 0x92B3,
+ 15537: 0xF9B8,
+ 15538: 0x9713,
+ 15539: 0x9810,
+ 15540: 0x4E94,
+ 15541: 0x4F0D,
+ 15542: 0x4FC9,
+ 15543: 0x50B2,
+ 15544: 0x5348,
+ 15545: 0x543E,
+ 15546: 0x5433,
+ 15547: 0x55DA,
+ 15548: 0x5862,
+ 15549: 0x58BA,
+ 15550: 0x5967,
+ 15551: 0x5A1B,
+ 15552: 0x5BE4,
+ 15553: 0x609F,
+ 15554: 0xF9B9,
+ 15555: 0x61CA,
+ 15556: 0x6556,
+ 15557: 0x65FF,
+ 15558: 0x6664,
+ 15559: 0x68A7,
+ 15560: 0x6C5A,
+ 15561: 0x6FB3,
+ 15562: 0x70CF,
+ 15563: 0x71AC,
+ 15564: 0x7352,
+ 15565: 0x7B7D,
+ 15566: 0x8708,
+ 15567: 0x8AA4,
+ 15568: 0x9C32,
+ 15569: 0x9F07,
+ 15570: 0x5C4B,
+ 15571: 0x6C83,
+ 15572: 0x7344,
+ 15573: 0x7389,
+ 15574: 0x923A,
+ 15575: 0x6EAB,
+ 15576: 0x7465,
+ 15577: 0x761F,
+ 15578: 0x7A69,
+ 15579: 0x7E15,
+ 15580: 0x860A,
+ 15581: 0x5140,
+ 15582: 0x58C5,
+ 15583: 0x64C1,
+ 15584: 0x74EE,
+ 15585: 0x7515,
+ 15586: 0x7670,
+ 15587: 0x7FC1,
+ 15588: 0x9095,
+ 15589: 0x96CD,
+ 15590: 0x9954,
+ 15591: 0x6E26,
+ 15592: 0x74E6,
+ 15593: 0x7AA9,
+ 15594: 0x7AAA,
+ 15595: 0x81E5,
+ 15596: 0x86D9,
+ 15597: 0x8778,
+ 15598: 0x8A1B,
+ 15599: 0x5A49,
+ 15600: 0x5B8C,
+ 15601: 0x5B9B,
+ 15602: 0x68A1,
+ 15603: 0x6900,
+ 15604: 0x6D63,
+ 15605: 0x73A9,
+ 15606: 0x7413,
+ 15607: 0x742C,
+ 15608: 0x7897,
+ 15609: 0x7DE9,
+ 15610: 0x7FEB,
+ 15611: 0x8118,
+ 15612: 0x8155,
+ 15613: 0x839E,
+ 15614: 0x8C4C,
+ 15615: 0x962E,
+ 15616: 0x9811,
+ 15617: 0x66F0,
+ 15618: 0x5F80,
+ 15619: 0x65FA,
+ 15620: 0x6789,
+ 15621: 0x6C6A,
+ 15622: 0x738B,
+ 15623: 0x502D,
+ 15624: 0x5A03,
+ 15625: 0x6B6A,
+ 15626: 0x77EE,
+ 15627: 0x5916,
+ 15628: 0x5D6C,
+ 15629: 0x5DCD,
+ 15630: 0x7325,
+ 15631: 0x754F,
+ 15632: 0xF9BA,
+ 15633: 0xF9BB,
+ 15634: 0x50E5,
+ 15635: 0x51F9,
+ 15636: 0x582F,
+ 15637: 0x592D,
+ 15638: 0x5996,
+ 15639: 0x59DA,
+ 15640: 0x5BE5,
+ 15641: 0xF9BC,
+ 15642: 0xF9BD,
+ 15643: 0x5DA2,
+ 15644: 0x62D7,
+ 15645: 0x6416,
+ 15646: 0x6493,
+ 15647: 0x64FE,
+ 15648: 0xF9BE,
+ 15649: 0x66DC,
+ 15650: 0xF9BF,
+ 15651: 0x6A48,
+ 15652: 0xF9C0,
+ 15653: 0x71FF,
+ 15654: 0x7464,
+ 15655: 0xF9C1,
+ 15656: 0x7A88,
+ 15657: 0x7AAF,
+ 15658: 0x7E47,
+ 15659: 0x7E5E,
+ 15660: 0x8000,
+ 15661: 0x8170,
+ 15662: 0xF9C2,
+ 15663: 0x87EF,
+ 15664: 0x8981,
+ 15665: 0x8B20,
+ 15666: 0x9059,
+ 15667: 0xF9C3,
+ 15668: 0x9080,
+ 15669: 0x9952,
+ 15670: 0x617E,
+ 15671: 0x6B32,
+ 15672: 0x6D74,
+ 15673: 0x7E1F,
+ 15674: 0x8925,
+ 15675: 0x8FB1,
+ 15676: 0x4FD1,
+ 15677: 0x50AD,
+ 15678: 0x5197,
+ 15679: 0x52C7,
+ 15680: 0x57C7,
+ 15681: 0x5889,
+ 15682: 0x5BB9,
+ 15683: 0x5EB8,
+ 15684: 0x6142,
+ 15685: 0x6995,
+ 15686: 0x6D8C,
+ 15687: 0x6E67,
+ 15688: 0x6EB6,
+ 15689: 0x7194,
+ 15690: 0x7462,
+ 15691: 0x7528,
+ 15692: 0x752C,
+ 15693: 0x8073,
+ 15694: 0x8338,
+ 15695: 0x84C9,
+ 15696: 0x8E0A,
+ 15697: 0x9394,
+ 15698: 0x93DE,
+ 15699: 0xF9C4,
+ 15700: 0x4E8E,
+ 15701: 0x4F51,
+ 15702: 0x5076,
+ 15703: 0x512A,
+ 15704: 0x53C8,
+ 15705: 0x53CB,
+ 15706: 0x53F3,
+ 15707: 0x5B87,
+ 15708: 0x5BD3,
+ 15709: 0x5C24,
+ 15710: 0x611A,
+ 15711: 0x6182,
+ 15712: 0x65F4,
+ 15713: 0x725B,
+ 15714: 0x7397,
+ 15715: 0x7440,
+ 15716: 0x76C2,
+ 15717: 0x7950,
+ 15718: 0x7991,
+ 15719: 0x79B9,
+ 15720: 0x7D06,
+ 15721: 0x7FBD,
+ 15722: 0x828B,
+ 15723: 0x85D5,
+ 15724: 0x865E,
+ 15725: 0x8FC2,
+ 15726: 0x9047,
+ 15727: 0x90F5,
+ 15728: 0x91EA,
+ 15729: 0x9685,
+ 15730: 0x96E8,
+ 15731: 0x96E9,
+ 15732: 0x52D6,
+ 15733: 0x5F67,
+ 15734: 0x65ED,
+ 15735: 0x6631,
+ 15736: 0x682F,
+ 15737: 0x715C,
+ 15738: 0x7A36,
+ 15739: 0x90C1,
+ 15740: 0x980A,
+ 15741: 0x4E91,
+ 15742: 0xF9C5,
+ 15743: 0x6A52,
+ 15744: 0x6B9E,
+ 15745: 0x6F90,
+ 15746: 0x7189,
+ 15747: 0x8018,
+ 15748: 0x82B8,
+ 15749: 0x8553,
+ 15750: 0x904B,
+ 15751: 0x9695,
+ 15752: 0x96F2,
+ 15753: 0x97FB,
+ 15754: 0x851A,
+ 15755: 0x9B31,
+ 15756: 0x4E90,
+ 15757: 0x718A,
+ 15758: 0x96C4,
+ 15759: 0x5143,
+ 15760: 0x539F,
+ 15761: 0x54E1,
+ 15762: 0x5713,
+ 15763: 0x5712,
+ 15764: 0x57A3,
+ 15765: 0x5A9B,
+ 15766: 0x5AC4,
+ 15767: 0x5BC3,
+ 15768: 0x6028,
+ 15769: 0x613F,
+ 15770: 0x63F4,
+ 15771: 0x6C85,
+ 15772: 0x6D39,
+ 15773: 0x6E72,
+ 15774: 0x6E90,
+ 15775: 0x7230,
+ 15776: 0x733F,
+ 15777: 0x7457,
+ 15778: 0x82D1,
+ 15779: 0x8881,
+ 15780: 0x8F45,
+ 15781: 0x9060,
+ 15782: 0xF9C6,
+ 15783: 0x9662,
+ 15784: 0x9858,
+ 15785: 0x9D1B,
+ 15786: 0x6708,
+ 15787: 0x8D8A,
+ 15788: 0x925E,
+ 15789: 0x4F4D,
+ 15790: 0x5049,
+ 15791: 0x50DE,
+ 15792: 0x5371,
+ 15793: 0x570D,
+ 15794: 0x59D4,
+ 15795: 0x5A01,
+ 15796: 0x5C09,
+ 15797: 0x6170,
+ 15798: 0x6690,
+ 15799: 0x6E2D,
+ 15800: 0x7232,
+ 15801: 0x744B,
+ 15802: 0x7DEF,
+ 15803: 0x80C3,
+ 15804: 0x840E,
+ 15805: 0x8466,
+ 15806: 0x853F,
+ 15807: 0x875F,
+ 15808: 0x885B,
+ 15809: 0x8918,
+ 15810: 0x8B02,
+ 15811: 0x9055,
+ 15812: 0x97CB,
+ 15813: 0x9B4F,
+ 15814: 0x4E73,
+ 15815: 0x4F91,
+ 15816: 0x5112,
+ 15817: 0x516A,
+ 15818: 0xF9C7,
+ 15819: 0x552F,
+ 15820: 0x55A9,
+ 15821: 0x5B7A,
+ 15822: 0x5BA5,
+ 15823: 0x5E7C,
+ 15824: 0x5E7D,
+ 15825: 0x5EBE,
+ 15826: 0x60A0,
+ 15827: 0x60DF,
+ 15828: 0x6108,
+ 15829: 0x6109,
+ 15830: 0x63C4,
+ 15831: 0x6538,
+ 15832: 0x6709,
+ 15833: 0xF9C8,
+ 15834: 0x67D4,
+ 15835: 0x67DA,
+ 15836: 0xF9C9,
+ 15837: 0x6961,
+ 15838: 0x6962,
+ 15839: 0x6CB9,
+ 15840: 0x6D27,
+ 15841: 0xF9CA,
+ 15842: 0x6E38,
+ 15843: 0xF9CB,
+ 15844: 0x6FE1,
+ 15845: 0x7336,
+ 15846: 0x7337,
+ 15847: 0xF9CC,
+ 15848: 0x745C,
+ 15849: 0x7531,
+ 15850: 0xF9CD,
+ 15851: 0x7652,
+ 15852: 0xF9CE,
+ 15853: 0xF9CF,
+ 15854: 0x7DAD,
+ 15855: 0x81FE,
+ 15856: 0x8438,
+ 15857: 0x88D5,
+ 15858: 0x8A98,
+ 15859: 0x8ADB,
+ 15860: 0x8AED,
+ 15861: 0x8E30,
+ 15862: 0x8E42,
+ 15863: 0x904A,
+ 15864: 0x903E,
+ 15865: 0x907A,
+ 15866: 0x9149,
+ 15867: 0x91C9,
+ 15868: 0x936E,
+ 15869: 0xF9D0,
+ 15870: 0xF9D1,
+ 15871: 0x5809,
+ 15872: 0xF9D2,
+ 15873: 0x6BD3,
+ 15874: 0x8089,
+ 15875: 0x80B2,
+ 15876: 0xF9D3,
+ 15877: 0xF9D4,
+ 15878: 0x5141,
+ 15879: 0x596B,
+ 15880: 0x5C39,
+ 15881: 0xF9D5,
+ 15882: 0xF9D6,
+ 15883: 0x6F64,
+ 15884: 0x73A7,
+ 15885: 0x80E4,
+ 15886: 0x8D07,
+ 15887: 0xF9D7,
+ 15888: 0x9217,
+ 15889: 0x958F,
+ 15890: 0xF9D8,
+ 15891: 0xF9D9,
+ 15892: 0xF9DA,
+ 15893: 0xF9DB,
+ 15894: 0x807F,
+ 15895: 0x620E,
+ 15896: 0x701C,
+ 15897: 0x7D68,
+ 15898: 0x878D,
+ 15899: 0xF9DC,
+ 15900: 0x57A0,
+ 15901: 0x6069,
+ 15902: 0x6147,
+ 15903: 0x6BB7,
+ 15904: 0x8ABE,
+ 15905: 0x9280,
+ 15906: 0x96B1,
+ 15907: 0x4E59,
+ 15908: 0x541F,
+ 15909: 0x6DEB,
+ 15910: 0x852D,
+ 15911: 0x9670,
+ 15912: 0x97F3,
+ 15913: 0x98EE,
+ 15914: 0x63D6,
+ 15915: 0x6CE3,
+ 15916: 0x9091,
+ 15917: 0x51DD,
+ 15918: 0x61C9,
+ 15919: 0x81BA,
+ 15920: 0x9DF9,
+ 15921: 0x4F9D,
+ 15922: 0x501A,
+ 15923: 0x5100,
+ 15924: 0x5B9C,
+ 15925: 0x610F,
+ 15926: 0x61FF,
+ 15927: 0x64EC,
+ 15928: 0x6905,
+ 15929: 0x6BC5,
+ 15930: 0x7591,
+ 15931: 0x77E3,
+ 15932: 0x7FA9,
+ 15933: 0x8264,
+ 15934: 0x858F,
+ 15935: 0x87FB,
+ 15936: 0x8863,
+ 15937: 0x8ABC,
+ 15938: 0x8B70,
+ 15939: 0x91AB,
+ 15940: 0x4E8C,
+ 15941: 0x4EE5,
+ 15942: 0x4F0A,
+ 15943: 0xF9DD,
+ 15944: 0xF9DE,
+ 15945: 0x5937,
+ 15946: 0x59E8,
+ 15947: 0xF9DF,
+ 15948: 0x5DF2,
+ 15949: 0x5F1B,
+ 15950: 0x5F5B,
+ 15951: 0x6021,
+ 15952: 0xF9E0,
+ 15953: 0xF9E1,
+ 15954: 0xF9E2,
+ 15955: 0xF9E3,
+ 15956: 0x723E,
+ 15957: 0x73E5,
+ 15958: 0xF9E4,
+ 15959: 0x7570,
+ 15960: 0x75CD,
+ 15961: 0xF9E5,
+ 15962: 0x79FB,
+ 15963: 0xF9E6,
+ 15964: 0x800C,
+ 15965: 0x8033,
+ 15966: 0x8084,
+ 15967: 0x82E1,
+ 15968: 0x8351,
+ 15969: 0xF9E7,
+ 15970: 0xF9E8,
+ 15971: 0x8CBD,
+ 15972: 0x8CB3,
+ 15973: 0x9087,
+ 15974: 0xF9E9,
+ 15975: 0xF9EA,
+ 15976: 0x98F4,
+ 15977: 0x990C,
+ 15978: 0xF9EB,
+ 15979: 0xF9EC,
+ 15980: 0x7037,
+ 15981: 0x76CA,
+ 15982: 0x7FCA,
+ 15983: 0x7FCC,
+ 15984: 0x7FFC,
+ 15985: 0x8B1A,
+ 15986: 0x4EBA,
+ 15987: 0x4EC1,
+ 15988: 0x5203,
+ 15989: 0x5370,
+ 15990: 0xF9ED,
+ 15991: 0x54BD,
+ 15992: 0x56E0,
+ 15993: 0x59FB,
+ 15994: 0x5BC5,
+ 15995: 0x5F15,
+ 15996: 0x5FCD,
+ 15997: 0x6E6E,
+ 15998: 0xF9EE,
+ 15999: 0xF9EF,
+ 16000: 0x7D6A,
+ 16001: 0x8335,
+ 16002: 0xF9F0,
+ 16003: 0x8693,
+ 16004: 0x8A8D,
+ 16005: 0xF9F1,
+ 16006: 0x976D,
+ 16007: 0x9777,
+ 16008: 0xF9F2,
+ 16009: 0xF9F3,
+ 16010: 0x4E00,
+ 16011: 0x4F5A,
+ 16012: 0x4F7E,
+ 16013: 0x58F9,
+ 16014: 0x65E5,
+ 16015: 0x6EA2,
+ 16016: 0x9038,
+ 16017: 0x93B0,
+ 16018: 0x99B9,
+ 16019: 0x4EFB,
+ 16020: 0x58EC,
+ 16021: 0x598A,
+ 16022: 0x59D9,
+ 16023: 0x6041,
+ 16024: 0xF9F4,
+ 16025: 0xF9F5,
+ 16026: 0x7A14,
+ 16027: 0xF9F6,
+ 16028: 0x834F,
+ 16029: 0x8CC3,
+ 16030: 0x5165,
+ 16031: 0x5344,
+ 16032: 0xF9F7,
+ 16033: 0xF9F8,
+ 16034: 0xF9F9,
+ 16035: 0x4ECD,
+ 16036: 0x5269,
+ 16037: 0x5B55,
+ 16038: 0x82BF,
+ 16039: 0x4ED4,
+ 16040: 0x523A,
+ 16041: 0x54A8,
+ 16042: 0x59C9,
+ 16043: 0x59FF,
+ 16044: 0x5B50,
+ 16045: 0x5B57,
+ 16046: 0x5B5C,
+ 16047: 0x6063,
+ 16048: 0x6148,
+ 16049: 0x6ECB,
+ 16050: 0x7099,
+ 16051: 0x716E,
+ 16052: 0x7386,
+ 16053: 0x74F7,
+ 16054: 0x75B5,
+ 16055: 0x78C1,
+ 16056: 0x7D2B,
+ 16057: 0x8005,
+ 16058: 0x81EA,
+ 16059: 0x8328,
+ 16060: 0x8517,
+ 16061: 0x85C9,
+ 16062: 0x8AEE,
+ 16063: 0x8CC7,
+ 16064: 0x96CC,
+ 16065: 0x4F5C,
+ 16066: 0x52FA,
+ 16067: 0x56BC,
+ 16068: 0x65AB,
+ 16069: 0x6628,
+ 16070: 0x707C,
+ 16071: 0x70B8,
+ 16072: 0x7235,
+ 16073: 0x7DBD,
+ 16074: 0x828D,
+ 16075: 0x914C,
+ 16076: 0x96C0,
+ 16077: 0x9D72,
+ 16078: 0x5B71,
+ 16079: 0x68E7,
+ 16080: 0x6B98,
+ 16081: 0x6F7A,
+ 16082: 0x76DE,
+ 16083: 0x5C91,
+ 16084: 0x66AB,
+ 16085: 0x6F5B,
+ 16086: 0x7BB4,
+ 16087: 0x7C2A,
+ 16088: 0x8836,
+ 16089: 0x96DC,
+ 16090: 0x4E08,
+ 16091: 0x4ED7,
+ 16092: 0x5320,
+ 16093: 0x5834,
+ 16094: 0x58BB,
+ 16095: 0x58EF,
+ 16096: 0x596C,
+ 16097: 0x5C07,
+ 16098: 0x5E33,
+ 16099: 0x5E84,
+ 16100: 0x5F35,
+ 16101: 0x638C,
+ 16102: 0x66B2,
+ 16103: 0x6756,
+ 16104: 0x6A1F,
+ 16105: 0x6AA3,
+ 16106: 0x6B0C,
+ 16107: 0x6F3F,
+ 16108: 0x7246,
+ 16109: 0xF9FA,
+ 16110: 0x7350,
+ 16111: 0x748B,
+ 16112: 0x7AE0,
+ 16113: 0x7CA7,
+ 16114: 0x8178,
+ 16115: 0x81DF,
+ 16116: 0x81E7,
+ 16117: 0x838A,
+ 16118: 0x846C,
+ 16119: 0x8523,
+ 16120: 0x8594,
+ 16121: 0x85CF,
+ 16122: 0x88DD,
+ 16123: 0x8D13,
+ 16124: 0x91AC,
+ 16125: 0x9577,
+ 16126: 0x969C,
+ 16127: 0x518D,
+ 16128: 0x54C9,
+ 16129: 0x5728,
+ 16130: 0x5BB0,
+ 16131: 0x624D,
+ 16132: 0x6750,
+ 16133: 0x683D,
+ 16134: 0x6893,
+ 16135: 0x6E3D,
+ 16136: 0x6ED3,
+ 16137: 0x707D,
+ 16138: 0x7E21,
+ 16139: 0x88C1,
+ 16140: 0x8CA1,
+ 16141: 0x8F09,
+ 16142: 0x9F4B,
+ 16143: 0x9F4E,
+ 16144: 0x722D,
+ 16145: 0x7B8F,
+ 16146: 0x8ACD,
+ 16147: 0x931A,
+ 16148: 0x4F47,
+ 16149: 0x4F4E,
+ 16150: 0x5132,
+ 16151: 0x5480,
+ 16152: 0x59D0,
+ 16153: 0x5E95,
+ 16154: 0x62B5,
+ 16155: 0x6775,
+ 16156: 0x696E,
+ 16157: 0x6A17,
+ 16158: 0x6CAE,
+ 16159: 0x6E1A,
+ 16160: 0x72D9,
+ 16161: 0x732A,
+ 16162: 0x75BD,
+ 16163: 0x7BB8,
+ 16164: 0x7D35,
+ 16165: 0x82E7,
+ 16166: 0x83F9,
+ 16167: 0x8457,
+ 16168: 0x85F7,
+ 16169: 0x8A5B,
+ 16170: 0x8CAF,
+ 16171: 0x8E87,
+ 16172: 0x9019,
+ 16173: 0x90B8,
+ 16174: 0x96CE,
+ 16175: 0x9F5F,
+ 16176: 0x52E3,
+ 16177: 0x540A,
+ 16178: 0x5AE1,
+ 16179: 0x5BC2,
+ 16180: 0x6458,
+ 16181: 0x6575,
+ 16182: 0x6EF4,
+ 16183: 0x72C4,
+ 16184: 0xF9FB,
+ 16185: 0x7684,
+ 16186: 0x7A4D,
+ 16187: 0x7B1B,
+ 16188: 0x7C4D,
+ 16189: 0x7E3E,
+ 16190: 0x7FDF,
+ 16191: 0x837B,
+ 16192: 0x8B2B,
+ 16193: 0x8CCA,
+ 16194: 0x8D64,
+ 16195: 0x8DE1,
+ 16196: 0x8E5F,
+ 16197: 0x8FEA,
+ 16198: 0x8FF9,
+ 16199: 0x9069,
+ 16200: 0x93D1,
+ 16201: 0x4F43,
+ 16202: 0x4F7A,
+ 16203: 0x50B3,
+ 16204: 0x5168,
+ 16205: 0x5178,
+ 16206: 0x524D,
+ 16207: 0x526A,
+ 16208: 0x5861,
+ 16209: 0x587C,
+ 16210: 0x5960,
+ 16211: 0x5C08,
+ 16212: 0x5C55,
+ 16213: 0x5EDB,
+ 16214: 0x609B,
+ 16215: 0x6230,
+ 16216: 0x6813,
+ 16217: 0x6BBF,
+ 16218: 0x6C08,
+ 16219: 0x6FB1,
+ 16220: 0x714E,
+ 16221: 0x7420,
+ 16222: 0x7530,
+ 16223: 0x7538,
+ 16224: 0x7551,
+ 16225: 0x7672,
+ 16226: 0x7B4C,
+ 16227: 0x7B8B,
+ 16228: 0x7BAD,
+ 16229: 0x7BC6,
+ 16230: 0x7E8F,
+ 16231: 0x8A6E,
+ 16232: 0x8F3E,
+ 16233: 0x8F49,
+ 16234: 0x923F,
+ 16235: 0x9293,
+ 16236: 0x9322,
+ 16237: 0x942B,
+ 16238: 0x96FB,
+ 16239: 0x985A,
+ 16240: 0x986B,
+ 16241: 0x991E,
+ 16242: 0x5207,
+ 16243: 0x622A,
+ 16244: 0x6298,
+ 16245: 0x6D59,
+ 16246: 0x7664,
+ 16247: 0x7ACA,
+ 16248: 0x7BC0,
+ 16249: 0x7D76,
+ 16250: 0x5360,
+ 16251: 0x5CBE,
+ 16252: 0x5E97,
+ 16253: 0x6F38,
+ 16254: 0x70B9,
+ 16255: 0x7C98,
+ 16256: 0x9711,
+ 16257: 0x9B8E,
+ 16258: 0x9EDE,
+ 16259: 0x63A5,
+ 16260: 0x647A,
+ 16261: 0x8776,
+ 16262: 0x4E01,
+ 16263: 0x4E95,
+ 16264: 0x4EAD,
+ 16265: 0x505C,
+ 16266: 0x5075,
+ 16267: 0x5448,
+ 16268: 0x59C3,
+ 16269: 0x5B9A,
+ 16270: 0x5E40,
+ 16271: 0x5EAD,
+ 16272: 0x5EF7,
+ 16273: 0x5F81,
+ 16274: 0x60C5,
+ 16275: 0x633A,
+ 16276: 0x653F,
+ 16277: 0x6574,
+ 16278: 0x65CC,
+ 16279: 0x6676,
+ 16280: 0x6678,
+ 16281: 0x67FE,
+ 16282: 0x6968,
+ 16283: 0x6A89,
+ 16284: 0x6B63,
+ 16285: 0x6C40,
+ 16286: 0x6DC0,
+ 16287: 0x6DE8,
+ 16288: 0x6E1F,
+ 16289: 0x6E5E,
+ 16290: 0x701E,
+ 16291: 0x70A1,
+ 16292: 0x738E,
+ 16293: 0x73FD,
+ 16294: 0x753A,
+ 16295: 0x775B,
+ 16296: 0x7887,
+ 16297: 0x798E,
+ 16298: 0x7A0B,
+ 16299: 0x7A7D,
+ 16300: 0x7CBE,
+ 16301: 0x7D8E,
+ 16302: 0x8247,
+ 16303: 0x8A02,
+ 16304: 0x8AEA,
+ 16305: 0x8C9E,
+ 16306: 0x912D,
+ 16307: 0x914A,
+ 16308: 0x91D8,
+ 16309: 0x9266,
+ 16310: 0x92CC,
+ 16311: 0x9320,
+ 16312: 0x9706,
+ 16313: 0x9756,
+ 16314: 0x975C,
+ 16315: 0x9802,
+ 16316: 0x9F0E,
+ 16317: 0x5236,
+ 16318: 0x5291,
+ 16319: 0x557C,
+ 16320: 0x5824,
+ 16321: 0x5E1D,
+ 16322: 0x5F1F,
+ 16323: 0x608C,
+ 16324: 0x63D0,
+ 16325: 0x68AF,
+ 16326: 0x6FDF,
+ 16327: 0x796D,
+ 16328: 0x7B2C,
+ 16329: 0x81CD,
+ 16330: 0x85BA,
+ 16331: 0x88FD,
+ 16332: 0x8AF8,
+ 16333: 0x8E44,
+ 16334: 0x918D,
+ 16335: 0x9664,
+ 16336: 0x969B,
+ 16337: 0x973D,
+ 16338: 0x984C,
+ 16339: 0x9F4A,
+ 16340: 0x4FCE,
+ 16341: 0x5146,
+ 16342: 0x51CB,
+ 16343: 0x52A9,
+ 16344: 0x5632,
+ 16345: 0x5F14,
+ 16346: 0x5F6B,
+ 16347: 0x63AA,
+ 16348: 0x64CD,
+ 16349: 0x65E9,
+ 16350: 0x6641,
+ 16351: 0x66FA,
+ 16352: 0x66F9,
+ 16353: 0x671D,
+ 16354: 0x689D,
+ 16355: 0x68D7,
+ 16356: 0x69FD,
+ 16357: 0x6F15,
+ 16358: 0x6F6E,
+ 16359: 0x7167,
+ 16360: 0x71E5,
+ 16361: 0x722A,
+ 16362: 0x74AA,
+ 16363: 0x773A,
+ 16364: 0x7956,
+ 16365: 0x795A,
+ 16366: 0x79DF,
+ 16367: 0x7A20,
+ 16368: 0x7A95,
+ 16369: 0x7C97,
+ 16370: 0x7CDF,
+ 16371: 0x7D44,
+ 16372: 0x7E70,
+ 16373: 0x8087,
+ 16374: 0x85FB,
+ 16375: 0x86A4,
+ 16376: 0x8A54,
+ 16377: 0x8ABF,
+ 16378: 0x8D99,
+ 16379: 0x8E81,
+ 16380: 0x9020,
+ 16381: 0x906D,
+ 16382: 0x91E3,
+ 16383: 0x963B,
+ 16384: 0x96D5,
+ 16385: 0x9CE5,
+ 16386: 0x65CF,
+ 16387: 0x7C07,
+ 16388: 0x8DB3,
+ 16389: 0x93C3,
+ 16390: 0x5B58,
+ 16391: 0x5C0A,
+ 16392: 0x5352,
+ 16393: 0x62D9,
+ 16394: 0x731D,
+ 16395: 0x5027,
+ 16396: 0x5B97,
+ 16397: 0x5F9E,
+ 16398: 0x60B0,
+ 16399: 0x616B,
+ 16400: 0x68D5,
+ 16401: 0x6DD9,
+ 16402: 0x742E,
+ 16403: 0x7A2E,
+ 16404: 0x7D42,
+ 16405: 0x7D9C,
+ 16406: 0x7E31,
+ 16407: 0x816B,
+ 16408: 0x8E2A,
+ 16409: 0x8E35,
+ 16410: 0x937E,
+ 16411: 0x9418,
+ 16412: 0x4F50,
+ 16413: 0x5750,
+ 16414: 0x5DE6,
+ 16415: 0x5EA7,
+ 16416: 0x632B,
+ 16417: 0x7F6A,
+ 16418: 0x4E3B,
+ 16419: 0x4F4F,
+ 16420: 0x4F8F,
+ 16421: 0x505A,
+ 16422: 0x59DD,
+ 16423: 0x80C4,
+ 16424: 0x546A,
+ 16425: 0x5468,
+ 16426: 0x55FE,
+ 16427: 0x594F,
+ 16428: 0x5B99,
+ 16429: 0x5DDE,
+ 16430: 0x5EDA,
+ 16431: 0x665D,
+ 16432: 0x6731,
+ 16433: 0x67F1,
+ 16434: 0x682A,
+ 16435: 0x6CE8,
+ 16436: 0x6D32,
+ 16437: 0x6E4A,
+ 16438: 0x6F8D,
+ 16439: 0x70B7,
+ 16440: 0x73E0,
+ 16441: 0x7587,
+ 16442: 0x7C4C,
+ 16443: 0x7D02,
+ 16444: 0x7D2C,
+ 16445: 0x7DA2,
+ 16446: 0x821F,
+ 16447: 0x86DB,
+ 16448: 0x8A3B,
+ 16449: 0x8A85,
+ 16450: 0x8D70,
+ 16451: 0x8E8A,
+ 16452: 0x8F33,
+ 16453: 0x9031,
+ 16454: 0x914E,
+ 16455: 0x9152,
+ 16456: 0x9444,
+ 16457: 0x99D0,
+ 16458: 0x7AF9,
+ 16459: 0x7CA5,
+ 16460: 0x4FCA,
+ 16461: 0x5101,
+ 16462: 0x51C6,
+ 16463: 0x57C8,
+ 16464: 0x5BEF,
+ 16465: 0x5CFB,
+ 16466: 0x6659,
+ 16467: 0x6A3D,
+ 16468: 0x6D5A,
+ 16469: 0x6E96,
+ 16470: 0x6FEC,
+ 16471: 0x710C,
+ 16472: 0x756F,
+ 16473: 0x7AE3,
+ 16474: 0x8822,
+ 16475: 0x9021,
+ 16476: 0x9075,
+ 16477: 0x96CB,
+ 16478: 0x99FF,
+ 16479: 0x8301,
+ 16480: 0x4E2D,
+ 16481: 0x4EF2,
+ 16482: 0x8846,
+ 16483: 0x91CD,
+ 16484: 0x537D,
+ 16485: 0x6ADB,
+ 16486: 0x696B,
+ 16487: 0x6C41,
+ 16488: 0x847A,
+ 16489: 0x589E,
+ 16490: 0x618E,
+ 16491: 0x66FE,
+ 16492: 0x62EF,
+ 16493: 0x70DD,
+ 16494: 0x7511,
+ 16495: 0x75C7,
+ 16496: 0x7E52,
+ 16497: 0x84B8,
+ 16498: 0x8B49,
+ 16499: 0x8D08,
+ 16500: 0x4E4B,
+ 16501: 0x53EA,
+ 16502: 0x54AB,
+ 16503: 0x5730,
+ 16504: 0x5740,
+ 16505: 0x5FD7,
+ 16506: 0x6301,
+ 16507: 0x6307,
+ 16508: 0x646F,
+ 16509: 0x652F,
+ 16510: 0x65E8,
+ 16511: 0x667A,
+ 16512: 0x679D,
+ 16513: 0x67B3,
+ 16514: 0x6B62,
+ 16515: 0x6C60,
+ 16516: 0x6C9A,
+ 16517: 0x6F2C,
+ 16518: 0x77E5,
+ 16519: 0x7825,
+ 16520: 0x7949,
+ 16521: 0x7957,
+ 16522: 0x7D19,
+ 16523: 0x80A2,
+ 16524: 0x8102,
+ 16525: 0x81F3,
+ 16526: 0x829D,
+ 16527: 0x82B7,
+ 16528: 0x8718,
+ 16529: 0x8A8C,
+ 16530: 0xF9FC,
+ 16531: 0x8D04,
+ 16532: 0x8DBE,
+ 16533: 0x9072,
+ 16534: 0x76F4,
+ 16535: 0x7A19,
+ 16536: 0x7A37,
+ 16537: 0x7E54,
+ 16538: 0x8077,
+ 16539: 0x5507,
+ 16540: 0x55D4,
+ 16541: 0x5875,
+ 16542: 0x632F,
+ 16543: 0x6422,
+ 16544: 0x6649,
+ 16545: 0x664B,
+ 16546: 0x686D,
+ 16547: 0x699B,
+ 16548: 0x6B84,
+ 16549: 0x6D25,
+ 16550: 0x6EB1,
+ 16551: 0x73CD,
+ 16552: 0x7468,
+ 16553: 0x74A1,
+ 16554: 0x755B,
+ 16555: 0x75B9,
+ 16556: 0x76E1,
+ 16557: 0x771E,
+ 16558: 0x778B,
+ 16559: 0x79E6,
+ 16560: 0x7E09,
+ 16561: 0x7E1D,
+ 16562: 0x81FB,
+ 16563: 0x852F,
+ 16564: 0x8897,
+ 16565: 0x8A3A,
+ 16566: 0x8CD1,
+ 16567: 0x8EEB,
+ 16568: 0x8FB0,
+ 16569: 0x9032,
+ 16570: 0x93AD,
+ 16571: 0x9663,
+ 16572: 0x9673,
+ 16573: 0x9707,
+ 16574: 0x4F84,
+ 16575: 0x53F1,
+ 16576: 0x59EA,
+ 16577: 0x5AC9,
+ 16578: 0x5E19,
+ 16579: 0x684E,
+ 16580: 0x74C6,
+ 16581: 0x75BE,
+ 16582: 0x79E9,
+ 16583: 0x7A92,
+ 16584: 0x81A3,
+ 16585: 0x86ED,
+ 16586: 0x8CEA,
+ 16587: 0x8DCC,
+ 16588: 0x8FED,
+ 16589: 0x659F,
+ 16590: 0x6715,
+ 16591: 0xF9FD,
+ 16592: 0x57F7,
+ 16593: 0x6F57,
+ 16594: 0x7DDD,
+ 16595: 0x8F2F,
+ 16596: 0x93F6,
+ 16597: 0x96C6,
+ 16598: 0x5FB5,
+ 16599: 0x61F2,
+ 16600: 0x6F84,
+ 16601: 0x4E14,
+ 16602: 0x4F98,
+ 16603: 0x501F,
+ 16604: 0x53C9,
+ 16605: 0x55DF,
+ 16606: 0x5D6F,
+ 16607: 0x5DEE,
+ 16608: 0x6B21,
+ 16609: 0x6B64,
+ 16610: 0x78CB,
+ 16611: 0x7B9A,
+ 16612: 0xF9FE,
+ 16613: 0x8E49,
+ 16614: 0x8ECA,
+ 16615: 0x906E,
+ 16616: 0x6349,
+ 16617: 0x643E,
+ 16618: 0x7740,
+ 16619: 0x7A84,
+ 16620: 0x932F,
+ 16621: 0x947F,
+ 16622: 0x9F6A,
+ 16623: 0x64B0,
+ 16624: 0x6FAF,
+ 16625: 0x71E6,
+ 16626: 0x74A8,
+ 16627: 0x74DA,
+ 16628: 0x7AC4,
+ 16629: 0x7C12,
+ 16630: 0x7E82,
+ 16631: 0x7CB2,
+ 16632: 0x7E98,
+ 16633: 0x8B9A,
+ 16634: 0x8D0A,
+ 16635: 0x947D,
+ 16636: 0x9910,
+ 16637: 0x994C,
+ 16638: 0x5239,
+ 16639: 0x5BDF,
+ 16640: 0x64E6,
+ 16641: 0x672D,
+ 16642: 0x7D2E,
+ 16643: 0x50ED,
+ 16644: 0x53C3,
+ 16645: 0x5879,
+ 16646: 0x6158,
+ 16647: 0x6159,
+ 16648: 0x61FA,
+ 16649: 0x65AC,
+ 16650: 0x7AD9,
+ 16651: 0x8B92,
+ 16652: 0x8B96,
+ 16653: 0x5009,
+ 16654: 0x5021,
+ 16655: 0x5275,
+ 16656: 0x5531,
+ 16657: 0x5A3C,
+ 16658: 0x5EE0,
+ 16659: 0x5F70,
+ 16660: 0x6134,
+ 16661: 0x655E,
+ 16662: 0x660C,
+ 16663: 0x6636,
+ 16664: 0x66A2,
+ 16665: 0x69CD,
+ 16666: 0x6EC4,
+ 16667: 0x6F32,
+ 16668: 0x7316,
+ 16669: 0x7621,
+ 16670: 0x7A93,
+ 16671: 0x8139,
+ 16672: 0x8259,
+ 16673: 0x83D6,
+ 16674: 0x84BC,
+ 16675: 0x50B5,
+ 16676: 0x57F0,
+ 16677: 0x5BC0,
+ 16678: 0x5BE8,
+ 16679: 0x5F69,
+ 16680: 0x63A1,
+ 16681: 0x7826,
+ 16682: 0x7DB5,
+ 16683: 0x83DC,
+ 16684: 0x8521,
+ 16685: 0x91C7,
+ 16686: 0x91F5,
+ 16687: 0x518A,
+ 16688: 0x67F5,
+ 16689: 0x7B56,
+ 16690: 0x8CAC,
+ 16691: 0x51C4,
+ 16692: 0x59BB,
+ 16693: 0x60BD,
+ 16694: 0x8655,
+ 16695: 0x501C,
+ 16696: 0xF9FF,
+ 16697: 0x5254,
+ 16698: 0x5C3A,
+ 16699: 0x617D,
+ 16700: 0x621A,
+ 16701: 0x62D3,
+ 16702: 0x64F2,
+ 16703: 0x65A5,
+ 16704: 0x6ECC,
+ 16705: 0x7620,
+ 16706: 0x810A,
+ 16707: 0x8E60,
+ 16708: 0x965F,
+ 16709: 0x96BB,
+ 16710: 0x4EDF,
+ 16711: 0x5343,
+ 16712: 0x5598,
+ 16713: 0x5929,
+ 16714: 0x5DDD,
+ 16715: 0x64C5,
+ 16716: 0x6CC9,
+ 16717: 0x6DFA,
+ 16718: 0x7394,
+ 16719: 0x7A7F,
+ 16720: 0x821B,
+ 16721: 0x85A6,
+ 16722: 0x8CE4,
+ 16723: 0x8E10,
+ 16724: 0x9077,
+ 16725: 0x91E7,
+ 16726: 0x95E1,
+ 16727: 0x9621,
+ 16728: 0x97C6,
+ 16729: 0x51F8,
+ 16730: 0x54F2,
+ 16731: 0x5586,
+ 16732: 0x5FB9,
+ 16733: 0x64A4,
+ 16734: 0x6F88,
+ 16735: 0x7DB4,
+ 16736: 0x8F1F,
+ 16737: 0x8F4D,
+ 16738: 0x9435,
+ 16739: 0x50C9,
+ 16740: 0x5C16,
+ 16741: 0x6CBE,
+ 16742: 0x6DFB,
+ 16743: 0x751B,
+ 16744: 0x77BB,
+ 16745: 0x7C3D,
+ 16746: 0x7C64,
+ 16747: 0x8A79,
+ 16748: 0x8AC2,
+ 16749: 0x581E,
+ 16750: 0x59BE,
+ 16751: 0x5E16,
+ 16752: 0x6377,
+ 16753: 0x7252,
+ 16754: 0x758A,
+ 16755: 0x776B,
+ 16756: 0x8ADC,
+ 16757: 0x8CBC,
+ 16758: 0x8F12,
+ 16759: 0x5EF3,
+ 16760: 0x6674,
+ 16761: 0x6DF8,
+ 16762: 0x807D,
+ 16763: 0x83C1,
+ 16764: 0x8ACB,
+ 16765: 0x9751,
+ 16766: 0x9BD6,
+ 16767: 0xFA00,
+ 16768: 0x5243,
+ 16769: 0x66FF,
+ 16770: 0x6D95,
+ 16771: 0x6EEF,
+ 16772: 0x7DE0,
+ 16773: 0x8AE6,
+ 16774: 0x902E,
+ 16775: 0x905E,
+ 16776: 0x9AD4,
+ 16777: 0x521D,
+ 16778: 0x527F,
+ 16779: 0x54E8,
+ 16780: 0x6194,
+ 16781: 0x6284,
+ 16782: 0x62DB,
+ 16783: 0x68A2,
+ 16784: 0x6912,
+ 16785: 0x695A,
+ 16786: 0x6A35,
+ 16787: 0x7092,
+ 16788: 0x7126,
+ 16789: 0x785D,
+ 16790: 0x7901,
+ 16791: 0x790E,
+ 16792: 0x79D2,
+ 16793: 0x7A0D,
+ 16794: 0x8096,
+ 16795: 0x8278,
+ 16796: 0x82D5,
+ 16797: 0x8349,
+ 16798: 0x8549,
+ 16799: 0x8C82,
+ 16800: 0x8D85,
+ 16801: 0x9162,
+ 16802: 0x918B,
+ 16803: 0x91AE,
+ 16804: 0x4FC3,
+ 16805: 0x56D1,
+ 16806: 0x71ED,
+ 16807: 0x77D7,
+ 16808: 0x8700,
+ 16809: 0x89F8,
+ 16810: 0x5BF8,
+ 16811: 0x5FD6,
+ 16812: 0x6751,
+ 16813: 0x90A8,
+ 16814: 0x53E2,
+ 16815: 0x585A,
+ 16816: 0x5BF5,
+ 16817: 0x60A4,
+ 16818: 0x6181,
+ 16819: 0x6460,
+ 16820: 0x7E3D,
+ 16821: 0x8070,
+ 16822: 0x8525,
+ 16823: 0x9283,
+ 16824: 0x64AE,
+ 16825: 0x50AC,
+ 16826: 0x5D14,
+ 16827: 0x6700,
+ 16828: 0x589C,
+ 16829: 0x62BD,
+ 16830: 0x63A8,
+ 16831: 0x690E,
+ 16832: 0x6978,
+ 16833: 0x6A1E,
+ 16834: 0x6E6B,
+ 16835: 0x76BA,
+ 16836: 0x79CB,
+ 16837: 0x82BB,
+ 16838: 0x8429,
+ 16839: 0x8ACF,
+ 16840: 0x8DA8,
+ 16841: 0x8FFD,
+ 16842: 0x9112,
+ 16843: 0x914B,
+ 16844: 0x919C,
+ 16845: 0x9310,
+ 16846: 0x9318,
+ 16847: 0x939A,
+ 16848: 0x96DB,
+ 16849: 0x9A36,
+ 16850: 0x9C0D,
+ 16851: 0x4E11,
+ 16852: 0x755C,
+ 16853: 0x795D,
+ 16854: 0x7AFA,
+ 16855: 0x7B51,
+ 16856: 0x7BC9,
+ 16857: 0x7E2E,
+ 16858: 0x84C4,
+ 16859: 0x8E59,
+ 16860: 0x8E74,
+ 16861: 0x8EF8,
+ 16862: 0x9010,
+ 16863: 0x6625,
+ 16864: 0x693F,
+ 16865: 0x7443,
+ 16866: 0x51FA,
+ 16867: 0x672E,
+ 16868: 0x9EDC,
+ 16869: 0x5145,
+ 16870: 0x5FE0,
+ 16871: 0x6C96,
+ 16872: 0x87F2,
+ 16873: 0x885D,
+ 16874: 0x8877,
+ 16875: 0x60B4,
+ 16876: 0x81B5,
+ 16877: 0x8403,
+ 16878: 0x8D05,
+ 16879: 0x53D6,
+ 16880: 0x5439,
+ 16881: 0x5634,
+ 16882: 0x5A36,
+ 16883: 0x5C31,
+ 16884: 0x708A,
+ 16885: 0x7FE0,
+ 16886: 0x805A,
+ 16887: 0x8106,
+ 16888: 0x81ED,
+ 16889: 0x8DA3,
+ 16890: 0x9189,
+ 16891: 0x9A5F,
+ 16892: 0x9DF2,
+ 16893: 0x5074,
+ 16894: 0x4EC4,
+ 16895: 0x53A0,
+ 16896: 0x60FB,
+ 16897: 0x6E2C,
+ 16898: 0x5C64,
+ 16899: 0x4F88,
+ 16900: 0x5024,
+ 16901: 0x55E4,
+ 16902: 0x5CD9,
+ 16903: 0x5E5F,
+ 16904: 0x6065,
+ 16905: 0x6894,
+ 16906: 0x6CBB,
+ 16907: 0x6DC4,
+ 16908: 0x71BE,
+ 16909: 0x75D4,
+ 16910: 0x75F4,
+ 16911: 0x7661,
+ 16912: 0x7A1A,
+ 16913: 0x7A49,
+ 16914: 0x7DC7,
+ 16915: 0x7DFB,
+ 16916: 0x7F6E,
+ 16917: 0x81F4,
+ 16918: 0x86A9,
+ 16919: 0x8F1C,
+ 16920: 0x96C9,
+ 16921: 0x99B3,
+ 16922: 0x9F52,
+ 16923: 0x5247,
+ 16924: 0x52C5,
+ 16925: 0x98ED,
+ 16926: 0x89AA,
+ 16927: 0x4E03,
+ 16928: 0x67D2,
+ 16929: 0x6F06,
+ 16930: 0x4FB5,
+ 16931: 0x5BE2,
+ 16932: 0x6795,
+ 16933: 0x6C88,
+ 16934: 0x6D78,
+ 16935: 0x741B,
+ 16936: 0x7827,
+ 16937: 0x91DD,
+ 16938: 0x937C,
+ 16939: 0x87C4,
+ 16940: 0x79E4,
+ 16941: 0x7A31,
+ 16942: 0x5FEB,
+ 16943: 0x4ED6,
+ 16944: 0x54A4,
+ 16945: 0x553E,
+ 16946: 0x58AE,
+ 16947: 0x59A5,
+ 16948: 0x60F0,
+ 16949: 0x6253,
+ 16950: 0x62D6,
+ 16951: 0x6736,
+ 16952: 0x6955,
+ 16953: 0x8235,
+ 16954: 0x9640,
+ 16955: 0x99B1,
+ 16956: 0x99DD,
+ 16957: 0x502C,
+ 16958: 0x5353,
+ 16959: 0x5544,
+ 16960: 0x577C,
+ 16961: 0xFA01,
+ 16962: 0x6258,
+ 16963: 0xFA02,
+ 16964: 0x64E2,
+ 16965: 0x666B,
+ 16966: 0x67DD,
+ 16967: 0x6FC1,
+ 16968: 0x6FEF,
+ 16969: 0x7422,
+ 16970: 0x7438,
+ 16971: 0x8A17,
+ 16972: 0x9438,
+ 16973: 0x5451,
+ 16974: 0x5606,
+ 16975: 0x5766,
+ 16976: 0x5F48,
+ 16977: 0x619A,
+ 16978: 0x6B4E,
+ 16979: 0x7058,
+ 16980: 0x70AD,
+ 16981: 0x7DBB,
+ 16982: 0x8A95,
+ 16983: 0x596A,
+ 16984: 0x812B,
+ 16985: 0x63A2,
+ 16986: 0x7708,
+ 16987: 0x803D,
+ 16988: 0x8CAA,
+ 16989: 0x5854,
+ 16990: 0x642D,
+ 16991: 0x69BB,
+ 16992: 0x5B95,
+ 16993: 0x5E11,
+ 16994: 0x6E6F,
+ 16995: 0xFA03,
+ 16996: 0x8569,
+ 16997: 0x514C,
+ 16998: 0x53F0,
+ 16999: 0x592A,
+ 17000: 0x6020,
+ 17001: 0x614B,
+ 17002: 0x6B86,
+ 17003: 0x6C70,
+ 17004: 0x6CF0,
+ 17005: 0x7B1E,
+ 17006: 0x80CE,
+ 17007: 0x82D4,
+ 17008: 0x8DC6,
+ 17009: 0x90B0,
+ 17010: 0x98B1,
+ 17011: 0xFA04,
+ 17012: 0x64C7,
+ 17013: 0x6FA4,
+ 17014: 0x6491,
+ 17015: 0x6504,
+ 17016: 0x514E,
+ 17017: 0x5410,
+ 17018: 0x571F,
+ 17019: 0x8A0E,
+ 17020: 0x615F,
+ 17021: 0x6876,
+ 17022: 0xFA05,
+ 17023: 0x75DB,
+ 17024: 0x7B52,
+ 17025: 0x7D71,
+ 17026: 0x901A,
+ 17027: 0x5806,
+ 17028: 0x69CC,
+ 17029: 0x817F,
+ 17030: 0x892A,
+ 17031: 0x9000,
+ 17032: 0x9839,
+ 17033: 0x5078,
+ 17034: 0x5957,
+ 17035: 0x59AC,
+ 17036: 0x6295,
+ 17037: 0x900F,
+ 17038: 0x9B2A,
+ 17039: 0x615D,
+ 17040: 0x7279,
+ 17041: 0x95D6,
+ 17042: 0x5761,
+ 17043: 0x5A46,
+ 17044: 0x5DF4,
+ 17045: 0x628A,
+ 17046: 0x64AD,
+ 17047: 0x64FA,
+ 17048: 0x6777,
+ 17049: 0x6CE2,
+ 17050: 0x6D3E,
+ 17051: 0x722C,
+ 17052: 0x7436,
+ 17053: 0x7834,
+ 17054: 0x7F77,
+ 17055: 0x82AD,
+ 17056: 0x8DDB,
+ 17057: 0x9817,
+ 17058: 0x5224,
+ 17059: 0x5742,
+ 17060: 0x677F,
+ 17061: 0x7248,
+ 17062: 0x74E3,
+ 17063: 0x8CA9,
+ 17064: 0x8FA6,
+ 17065: 0x9211,
+ 17066: 0x962A,
+ 17067: 0x516B,
+ 17068: 0x53ED,
+ 17069: 0x634C,
+ 17070: 0x4F69,
+ 17071: 0x5504,
+ 17072: 0x6096,
+ 17073: 0x6557,
+ 17074: 0x6C9B,
+ 17075: 0x6D7F,
+ 17076: 0x724C,
+ 17077: 0x72FD,
+ 17078: 0x7A17,
+ 17079: 0x8987,
+ 17080: 0x8C9D,
+ 17081: 0x5F6D,
+ 17082: 0x6F8E,
+ 17083: 0x70F9,
+ 17084: 0x81A8,
+ 17085: 0x610E,
+ 17086: 0x4FBF,
+ 17087: 0x504F,
+ 17088: 0x6241,
+ 17089: 0x7247,
+ 17090: 0x7BC7,
+ 17091: 0x7DE8,
+ 17092: 0x7FE9,
+ 17093: 0x904D,
+ 17094: 0x97AD,
+ 17095: 0x9A19,
+ 17096: 0x8CB6,
+ 17097: 0x576A,
+ 17098: 0x5E73,
+ 17099: 0x67B0,
+ 17100: 0x840D,
+ 17101: 0x8A55,
+ 17102: 0x5420,
+ 17103: 0x5B16,
+ 17104: 0x5E63,
+ 17105: 0x5EE2,
+ 17106: 0x5F0A,
+ 17107: 0x6583,
+ 17108: 0x80BA,
+ 17109: 0x853D,
+ 17110: 0x9589,
+ 17111: 0x965B,
+ 17112: 0x4F48,
+ 17113: 0x5305,
+ 17114: 0x530D,
+ 17115: 0x530F,
+ 17116: 0x5486,
+ 17117: 0x54FA,
+ 17118: 0x5703,
+ 17119: 0x5E03,
+ 17120: 0x6016,
+ 17121: 0x629B,
+ 17122: 0x62B1,
+ 17123: 0x6355,
+ 17124: 0xFA06,
+ 17125: 0x6CE1,
+ 17126: 0x6D66,
+ 17127: 0x75B1,
+ 17128: 0x7832,
+ 17129: 0x80DE,
+ 17130: 0x812F,
+ 17131: 0x82DE,
+ 17132: 0x8461,
+ 17133: 0x84B2,
+ 17134: 0x888D,
+ 17135: 0x8912,
+ 17136: 0x900B,
+ 17137: 0x92EA,
+ 17138: 0x98FD,
+ 17139: 0x9B91,
+ 17140: 0x5E45,
+ 17141: 0x66B4,
+ 17142: 0x66DD,
+ 17143: 0x7011,
+ 17144: 0x7206,
+ 17145: 0xFA07,
+ 17146: 0x4FF5,
+ 17147: 0x527D,
+ 17148: 0x5F6A,
+ 17149: 0x6153,
+ 17150: 0x6753,
+ 17151: 0x6A19,
+ 17152: 0x6F02,
+ 17153: 0x74E2,
+ 17154: 0x7968,
+ 17155: 0x8868,
+ 17156: 0x8C79,
+ 17157: 0x98C7,
+ 17158: 0x98C4,
+ 17159: 0x9A43,
+ 17160: 0x54C1,
+ 17161: 0x7A1F,
+ 17162: 0x6953,
+ 17163: 0x8AF7,
+ 17164: 0x8C4A,
+ 17165: 0x98A8,
+ 17166: 0x99AE,
+ 17167: 0x5F7C,
+ 17168: 0x62AB,
+ 17169: 0x75B2,
+ 17170: 0x76AE,
+ 17171: 0x88AB,
+ 17172: 0x907F,
+ 17173: 0x9642,
+ 17174: 0x5339,
+ 17175: 0x5F3C,
+ 17176: 0x5FC5,
+ 17177: 0x6CCC,
+ 17178: 0x73CC,
+ 17179: 0x7562,
+ 17180: 0x758B,
+ 17181: 0x7B46,
+ 17182: 0x82FE,
+ 17183: 0x999D,
+ 17184: 0x4E4F,
+ 17185: 0x903C,
+ 17186: 0x4E0B,
+ 17187: 0x4F55,
+ 17188: 0x53A6,
+ 17189: 0x590F,
+ 17190: 0x5EC8,
+ 17191: 0x6630,
+ 17192: 0x6CB3,
+ 17193: 0x7455,
+ 17194: 0x8377,
+ 17195: 0x8766,
+ 17196: 0x8CC0,
+ 17197: 0x9050,
+ 17198: 0x971E,
+ 17199: 0x9C15,
+ 17200: 0x58D1,
+ 17201: 0x5B78,
+ 17202: 0x8650,
+ 17203: 0x8B14,
+ 17204: 0x9DB4,
+ 17205: 0x5BD2,
+ 17206: 0x6068,
+ 17207: 0x608D,
+ 17208: 0x65F1,
+ 17209: 0x6C57,
+ 17210: 0x6F22,
+ 17211: 0x6FA3,
+ 17212: 0x701A,
+ 17213: 0x7F55,
+ 17214: 0x7FF0,
+ 17215: 0x9591,
+ 17216: 0x9592,
+ 17217: 0x9650,
+ 17218: 0x97D3,
+ 17219: 0x5272,
+ 17220: 0x8F44,
+ 17221: 0x51FD,
+ 17222: 0x542B,
+ 17223: 0x54B8,
+ 17224: 0x5563,
+ 17225: 0x558A,
+ 17226: 0x6ABB,
+ 17227: 0x6DB5,
+ 17228: 0x7DD8,
+ 17229: 0x8266,
+ 17230: 0x929C,
+ 17231: 0x9677,
+ 17232: 0x9E79,
+ 17233: 0x5408,
+ 17234: 0x54C8,
+ 17235: 0x76D2,
+ 17236: 0x86E4,
+ 17237: 0x95A4,
+ 17238: 0x95D4,
+ 17239: 0x965C,
+ 17240: 0x4EA2,
+ 17241: 0x4F09,
+ 17242: 0x59EE,
+ 17243: 0x5AE6,
+ 17244: 0x5DF7,
+ 17245: 0x6052,
+ 17246: 0x6297,
+ 17247: 0x676D,
+ 17248: 0x6841,
+ 17249: 0x6C86,
+ 17250: 0x6E2F,
+ 17251: 0x7F38,
+ 17252: 0x809B,
+ 17253: 0x822A,
+ 17254: 0xFA08,
+ 17255: 0xFA09,
+ 17256: 0x9805,
+ 17257: 0x4EA5,
+ 17258: 0x5055,
+ 17259: 0x54B3,
+ 17260: 0x5793,
+ 17261: 0x595A,
+ 17262: 0x5B69,
+ 17263: 0x5BB3,
+ 17264: 0x61C8,
+ 17265: 0x6977,
+ 17266: 0x6D77,
+ 17267: 0x7023,
+ 17268: 0x87F9,
+ 17269: 0x89E3,
+ 17270: 0x8A72,
+ 17271: 0x8AE7,
+ 17272: 0x9082,
+ 17273: 0x99ED,
+ 17274: 0x9AB8,
+ 17275: 0x52BE,
+ 17276: 0x6838,
+ 17277: 0x5016,
+ 17278: 0x5E78,
+ 17279: 0x674F,
+ 17280: 0x8347,
+ 17281: 0x884C,
+ 17282: 0x4EAB,
+ 17283: 0x5411,
+ 17284: 0x56AE,
+ 17285: 0x73E6,
+ 17286: 0x9115,
+ 17287: 0x97FF,
+ 17288: 0x9909,
+ 17289: 0x9957,
+ 17290: 0x9999,
+ 17291: 0x5653,
+ 17292: 0x589F,
+ 17293: 0x865B,
+ 17294: 0x8A31,
+ 17295: 0x61B2,
+ 17296: 0x6AF6,
+ 17297: 0x737B,
+ 17298: 0x8ED2,
+ 17299: 0x6B47,
+ 17300: 0x96AA,
+ 17301: 0x9A57,
+ 17302: 0x5955,
+ 17303: 0x7200,
+ 17304: 0x8D6B,
+ 17305: 0x9769,
+ 17306: 0x4FD4,
+ 17307: 0x5CF4,
+ 17308: 0x5F26,
+ 17309: 0x61F8,
+ 17310: 0x665B,
+ 17311: 0x6CEB,
+ 17312: 0x70AB,
+ 17313: 0x7384,
+ 17314: 0x73B9,
+ 17315: 0x73FE,
+ 17316: 0x7729,
+ 17317: 0x774D,
+ 17318: 0x7D43,
+ 17319: 0x7D62,
+ 17320: 0x7E23,
+ 17321: 0x8237,
+ 17322: 0x8852,
+ 17323: 0xFA0A,
+ 17324: 0x8CE2,
+ 17325: 0x9249,
+ 17326: 0x986F,
+ 17327: 0x5B51,
+ 17328: 0x7A74,
+ 17329: 0x8840,
+ 17330: 0x9801,
+ 17331: 0x5ACC,
+ 17332: 0x4FE0,
+ 17333: 0x5354,
+ 17334: 0x593E,
+ 17335: 0x5CFD,
+ 17336: 0x633E,
+ 17337: 0x6D79,
+ 17338: 0x72F9,
+ 17339: 0x8105,
+ 17340: 0x8107,
+ 17341: 0x83A2,
+ 17342: 0x92CF,
+ 17343: 0x9830,
+ 17344: 0x4EA8,
+ 17345: 0x5144,
+ 17346: 0x5211,
+ 17347: 0x578B,
+ 17348: 0x5F62,
+ 17349: 0x6CC2,
+ 17350: 0x6ECE,
+ 17351: 0x7005,
+ 17352: 0x7050,
+ 17353: 0x70AF,
+ 17354: 0x7192,
+ 17355: 0x73E9,
+ 17356: 0x7469,
+ 17357: 0x834A,
+ 17358: 0x87A2,
+ 17359: 0x8861,
+ 17360: 0x9008,
+ 17361: 0x90A2,
+ 17362: 0x93A3,
+ 17363: 0x99A8,
+ 17364: 0x516E,
+ 17365: 0x5F57,
+ 17366: 0x60E0,
+ 17367: 0x6167,
+ 17368: 0x66B3,
+ 17369: 0x8559,
+ 17370: 0x8E4A,
+ 17371: 0x91AF,
+ 17372: 0x978B,
+ 17373: 0x4E4E,
+ 17374: 0x4E92,
+ 17375: 0x547C,
+ 17376: 0x58D5,
+ 17377: 0x58FA,
+ 17378: 0x597D,
+ 17379: 0x5CB5,
+ 17380: 0x5F27,
+ 17381: 0x6236,
+ 17382: 0x6248,
+ 17383: 0x660A,
+ 17384: 0x6667,
+ 17385: 0x6BEB,
+ 17386: 0x6D69,
+ 17387: 0x6DCF,
+ 17388: 0x6E56,
+ 17389: 0x6EF8,
+ 17390: 0x6F94,
+ 17391: 0x6FE0,
+ 17392: 0x6FE9,
+ 17393: 0x705D,
+ 17394: 0x72D0,
+ 17395: 0x7425,
+ 17396: 0x745A,
+ 17397: 0x74E0,
+ 17398: 0x7693,
+ 17399: 0x795C,
+ 17400: 0x7CCA,
+ 17401: 0x7E1E,
+ 17402: 0x80E1,
+ 17403: 0x82A6,
+ 17404: 0x846B,
+ 17405: 0x84BF,
+ 17406: 0x864E,
+ 17407: 0x865F,
+ 17408: 0x8774,
+ 17409: 0x8B77,
+ 17410: 0x8C6A,
+ 17411: 0x93AC,
+ 17412: 0x9800,
+ 17413: 0x9865,
+ 17414: 0x60D1,
+ 17415: 0x6216,
+ 17416: 0x9177,
+ 17417: 0x5A5A,
+ 17418: 0x660F,
+ 17419: 0x6DF7,
+ 17420: 0x6E3E,
+ 17421: 0x743F,
+ 17422: 0x9B42,
+ 17423: 0x5FFD,
+ 17424: 0x60DA,
+ 17425: 0x7B0F,
+ 17426: 0x54C4,
+ 17427: 0x5F18,
+ 17428: 0x6C5E,
+ 17429: 0x6CD3,
+ 17430: 0x6D2A,
+ 17431: 0x70D8,
+ 17432: 0x7D05,
+ 17433: 0x8679,
+ 17434: 0x8A0C,
+ 17435: 0x9D3B,
+ 17436: 0x5316,
+ 17437: 0x548C,
+ 17438: 0x5B05,
+ 17439: 0x6A3A,
+ 17440: 0x706B,
+ 17441: 0x7575,
+ 17442: 0x798D,
+ 17443: 0x79BE,
+ 17444: 0x82B1,
+ 17445: 0x83EF,
+ 17446: 0x8A71,
+ 17447: 0x8B41,
+ 17448: 0x8CA8,
+ 17449: 0x9774,
+ 17450: 0xFA0B,
+ 17451: 0x64F4,
+ 17452: 0x652B,
+ 17453: 0x78BA,
+ 17454: 0x78BB,
+ 17455: 0x7A6B,
+ 17456: 0x4E38,
+ 17457: 0x559A,
+ 17458: 0x5950,
+ 17459: 0x5BA6,
+ 17460: 0x5E7B,
+ 17461: 0x60A3,
+ 17462: 0x63DB,
+ 17463: 0x6B61,
+ 17464: 0x6665,
+ 17465: 0x6853,
+ 17466: 0x6E19,
+ 17467: 0x7165,
+ 17468: 0x74B0,
+ 17469: 0x7D08,
+ 17470: 0x9084,
+ 17471: 0x9A69,
+ 17472: 0x9C25,
+ 17473: 0x6D3B,
+ 17474: 0x6ED1,
+ 17475: 0x733E,
+ 17476: 0x8C41,
+ 17477: 0x95CA,
+ 17478: 0x51F0,
+ 17479: 0x5E4C,
+ 17480: 0x5FA8,
+ 17481: 0x604D,
+ 17482: 0x60F6,
+ 17483: 0x6130,
+ 17484: 0x614C,
+ 17485: 0x6643,
+ 17486: 0x6644,
+ 17487: 0x69A5,
+ 17488: 0x6CC1,
+ 17489: 0x6E5F,
+ 17490: 0x6EC9,
+ 17491: 0x6F62,
+ 17492: 0x714C,
+ 17493: 0x749C,
+ 17494: 0x7687,
+ 17495: 0x7BC1,
+ 17496: 0x7C27,
+ 17497: 0x8352,
+ 17498: 0x8757,
+ 17499: 0x9051,
+ 17500: 0x968D,
+ 17501: 0x9EC3,
+ 17502: 0x532F,
+ 17503: 0x56DE,
+ 17504: 0x5EFB,
+ 17505: 0x5F8A,
+ 17506: 0x6062,
+ 17507: 0x6094,
+ 17508: 0x61F7,
+ 17509: 0x6666,
+ 17510: 0x6703,
+ 17511: 0x6A9C,
+ 17512: 0x6DEE,
+ 17513: 0x6FAE,
+ 17514: 0x7070,
+ 17515: 0x736A,
+ 17516: 0x7E6A,
+ 17517: 0x81BE,
+ 17518: 0x8334,
+ 17519: 0x86D4,
+ 17520: 0x8AA8,
+ 17521: 0x8CC4,
+ 17522: 0x5283,
+ 17523: 0x7372,
+ 17524: 0x5B96,
+ 17525: 0x6A6B,
+ 17526: 0x9404,
+ 17527: 0x54EE,
+ 17528: 0x5686,
+ 17529: 0x5B5D,
+ 17530: 0x6548,
+ 17531: 0x6585,
+ 17532: 0x66C9,
+ 17533: 0x689F,
+ 17534: 0x6D8D,
+ 17535: 0x6DC6,
+ 17536: 0x723B,
+ 17537: 0x80B4,
+ 17538: 0x9175,
+ 17539: 0x9A4D,
+ 17540: 0x4FAF,
+ 17541: 0x5019,
+ 17542: 0x539A,
+ 17543: 0x540E,
+ 17544: 0x543C,
+ 17545: 0x5589,
+ 17546: 0x55C5,
+ 17547: 0x5E3F,
+ 17548: 0x5F8C,
+ 17549: 0x673D,
+ 17550: 0x7166,
+ 17551: 0x73DD,
+ 17552: 0x9005,
+ 17553: 0x52DB,
+ 17554: 0x52F3,
+ 17555: 0x5864,
+ 17556: 0x58CE,
+ 17557: 0x7104,
+ 17558: 0x718F,
+ 17559: 0x71FB,
+ 17560: 0x85B0,
+ 17561: 0x8A13,
+ 17562: 0x6688,
+ 17563: 0x85A8,
+ 17564: 0x55A7,
+ 17565: 0x6684,
+ 17566: 0x714A,
+ 17567: 0x8431,
+ 17568: 0x5349,
+ 17569: 0x5599,
+ 17570: 0x6BC1,
+ 17571: 0x5F59,
+ 17572: 0x5FBD,
+ 17573: 0x63EE,
+ 17574: 0x6689,
+ 17575: 0x7147,
+ 17576: 0x8AF1,
+ 17577: 0x8F1D,
+ 17578: 0x9EBE,
+ 17579: 0x4F11,
+ 17580: 0x643A,
+ 17581: 0x70CB,
+ 17582: 0x7566,
+ 17583: 0x8667,
+ 17584: 0x6064,
+ 17585: 0x8B4E,
+ 17586: 0x9DF8,
+ 17587: 0x5147,
+ 17588: 0x51F6,
+ 17589: 0x5308,
+ 17590: 0x6D36,
+ 17591: 0x80F8,
+ 17592: 0x9ED1,
+ 17593: 0x6615,
+ 17594: 0x6B23,
+ 17595: 0x7098,
+ 17596: 0x75D5,
+ 17597: 0x5403,
+ 17598: 0x5C79,
+ 17599: 0x7D07,
+ 17600: 0x8A16,
+ 17601: 0x6B20,
+ 17602: 0x6B3D,
+ 17603: 0x6B46,
+ 17604: 0x5438,
+ 17605: 0x6070,
+ 17606: 0x6D3D,
+ 17607: 0x7FD5,
+ 17608: 0x8208,
+ 17609: 0x50D6,
+ 17610: 0x51DE,
+ 17611: 0x559C,
+ 17612: 0x566B,
+ 17613: 0x56CD,
+ 17614: 0x59EC,
+ 17615: 0x5B09,
+ 17616: 0x5E0C,
+ 17617: 0x6199,
+ 17618: 0x6198,
+ 17619: 0x6231,
+ 17620: 0x665E,
+ 17621: 0x66E6,
+ 17622: 0x7199,
+ 17623: 0x71B9,
+ 17624: 0x71BA,
+ 17625: 0x72A7,
+ 17626: 0x79A7,
+ 17627: 0x7A00,
+ 17628: 0x7FB2,
+ 17629: 0x8A70,
+}
+
+const numEncodeTables = 7
+
+// encodeX are the encoding tables from Unicode to EUC-KR code,
+// sorted by decreasing length.
+// encode0: 20893 entries for runes in [19968, 40861).
+// encode1: 11172 entries for runes in [44032, 55204).
+// encode2: 1625 entries for runes in [ 8213, 9838).
+// encode3: 990 entries for runes in [12288, 13278).
+// encode4: 945 entries for runes in [ 161, 1106).
+// encode5: 268 entries for runes in [63744, 64012).
+// encode6: 230 entries for runes in [65281, 65511).
+
+const encode0Low, encode0High = 19968, 40861
+
+var encode0 = [...]uint16{
+ 19968 - 19968: 0xECE9,
+ 19969 - 19968: 0xEFCB,
+ 19971 - 19968: 0xF6D2,
+ 19975 - 19968: 0xD8B2,
+ 19976 - 19968: 0xEDDB,
+ 19977 - 19968: 0xDFB2,
+ 19978 - 19968: 0xDFBE,
+ 19979 - 19968: 0xF9BB,
+ 19981 - 19968: 0xDCF4,
+ 19985 - 19968: 0xF5E4,
+ 19988 - 19968: 0xF3A6,
+ 19989 - 19968: 0xDDE0,
+ 19990 - 19968: 0xE1A6,
+ 19992 - 19968: 0xCEF8,
+ 19993 - 19968: 0xDCB0,
+ 19998 - 19968: 0xE3AA,
+ 20013 - 19968: 0xF1E9,
+ 20018 - 19968: 0xCDFA,
+ 20024 - 19968: 0xFCAF,
+ 20025 - 19968: 0xD3A1,
+ 20027 - 19968: 0xF1AB,
+ 20034 - 19968: 0xE7D1,
+ 20035 - 19968: 0xD2AC,
+ 20037 - 19968: 0xCEF9,
+ 20043 - 19968: 0xF1FD,
+ 20045 - 19968: 0xDEBF,
+ 20046 - 19968: 0xFBBA,
+ 20047 - 19968: 0xF9B9,
+ 20054 - 19968: 0xCED2,
+ 20056 - 19968: 0xE3AB,
+ 20057 - 19968: 0xEBE0,
+ 20061 - 19968: 0xCEFA,
+ 20062 - 19968: 0xCBF7,
+ 20063 - 19968: 0xE5A5,
+ 20075 - 19968: 0xCAE1,
+ 20077 - 19968: 0xD4CC,
+ 20083 - 19968: 0xEAE1,
+ 20086 - 19968: 0xDCE3,
+ 20087 - 19968: 0xDFAD,
+ 20094 - 19968: 0xCBEB,
+ 20098 - 19968: 0xD5AF,
+ 20102 - 19968: 0xD6F5,
+ 20104 - 19968: 0xE5F8,
+ 20107 - 19968: 0xDEC0,
+ 20108 - 19968: 0xECA3,
+ 20110 - 19968: 0xE9CD,
+ 20112 - 19968: 0xEAA7,
+ 20113 - 19968: 0xE9F6,
+ 20114 - 19968: 0xFBBB,
+ 20116 - 19968: 0xE7E9,
+ 20117 - 19968: 0xEFCC,
+ 20120 - 19968: 0xD0E6,
+ 20123 - 19968: 0xDEC1,
+ 20126 - 19968: 0xE4AC,
+ 20129 - 19968: 0xD8CC,
+ 20130 - 19968: 0xF9F1,
+ 20132 - 19968: 0xCEDF,
+ 20133 - 19968: 0xFAA4,
+ 20134 - 19968: 0xE6B2,
+ 20136 - 19968: 0xFAFB,
+ 20139 - 19968: 0xFABD,
+ 20140 - 19968: 0xCCC8,
+ 20141 - 19968: 0xEFCD,
+ 20142 - 19968: 0xD5D5,
+ 20150 - 19968: 0xD3A2,
+ 20154 - 19968: 0xECD1,
+ 20160 - 19968: 0xE4A7,
+ 20161 - 19968: 0xECD2,
+ 20164 - 19968: 0xF6B1,
+ 20167 - 19968: 0xCEFB,
+ 20170 - 19968: 0xD0D1,
+ 20171 - 19968: 0xCBBF,
+ 20173 - 19968: 0xEDA4,
+ 20180 - 19968: 0xEDA8,
+ 20181 - 19968: 0xDEC2,
+ 20182 - 19968: 0xF6E2,
+ 20183 - 19968: 0xEDDC,
+ 20184 - 19968: 0xDCF5,
+ 20185 - 19968: 0xE0B9,
+ 20189 - 19968: 0xD4CE,
+ 20191 - 19968: 0xF4B5,
+ 20195 - 19968: 0xD3DB,
+ 20196 - 19968: 0xD6B5,
+ 20197 - 19968: 0xECA4,
+ 20208 - 19968: 0xE4E6,
+ 20210 - 19968: 0xF1EA,
+ 20214 - 19968: 0xCBEC,
+ 20215 - 19968: 0xCBC0,
+ 20219 - 19968: 0xECF2,
+ 20225 - 19968: 0xD0EA,
+ 20233 - 19968: 0xF9F2,
+ 20234 - 19968: 0xECA5,
+ 20235 - 19968: 0xD0DF,
+ 20237 - 19968: 0xE7EA,
+ 20238 - 19968: 0xD0EB,
+ 20239 - 19968: 0xDCD1,
+ 20240 - 19968: 0xDBE9,
+ 20241 - 19968: 0xFDCC,
+ 20271 - 19968: 0xDBD7,
+ 20276 - 19968: 0xDAE1,
+ 20278 - 19968: 0xD6B6,
+ 20280 - 19968: 0xE3DF,
+ 20282 - 19968: 0xDEC3,
+ 20284 - 19968: 0xDEC4,
+ 20285 - 19968: 0xCAA1,
+ 20291 - 19968: 0xEEEC,
+ 20294 - 19968: 0xD3A3,
+ 20295 - 19968: 0xEEB7,
+ 20296 - 19968: 0xF8CF,
+ 20301 - 19968: 0xEAC8,
+ 20302 - 19968: 0xEEB8,
+ 20303 - 19968: 0xF1AC,
+ 20304 - 19968: 0xF1A5,
+ 20305 - 19968: 0xE9CE,
+ 20309 - 19968: 0xF9BC,
+ 20313 - 19968: 0xE5F9,
+ 20314 - 19968: 0xECEA,
+ 20315 - 19968: 0xDDD6,
+ 20316 - 19968: 0xEDC2,
+ 20329 - 19968: 0xF8A5,
+ 20335 - 19968: 0xE5BA,
+ 20336 - 19968: 0xDBD8,
+ 20339 - 19968: 0xCAA2,
+ 20342 - 19968: 0xD1CD,
+ 20346 - 19968: 0xEEED,
+ 20350 - 19968: 0xECEB,
+ 20351 - 19968: 0xDEC5,
+ 20353 - 19968: 0xE3E0,
+ 20355 - 19968: 0xCAC9,
+ 20356 - 19968: 0xF2E9,
+ 20358 - 19968: 0xD5CE,
+ 20360 - 19968: 0xF6B6,
+ 20362 - 19968: 0xCEC2,
+ 20363 - 19968: 0xD6C7,
+ 20365 - 19968: 0xE3B4,
+ 20367 - 19968: 0xF1AD,
+ 20369 - 19968: 0xEAE2,
+ 20374 - 19968: 0xD7C2,
+ 20376 - 19968: 0xF3A7,
+ 20379 - 19968: 0xCDEA,
+ 20381 - 19968: 0xEBEE,
+ 20398 - 19968: 0xD9B2,
+ 20399 - 19968: 0xFDA5,
+ 20405 - 19968: 0xF6D5,
+ 20406 - 19968: 0xD5E2,
+ 20415 - 19968: 0xF8B5,
+ 20418 - 19968: 0xCCF5,
+ 20419 - 19968: 0xF5B5,
+ 20420 - 19968: 0xE4AD,
+ 20425 - 19968: 0xE7EB,
+ 20426 - 19968: 0xF1D5,
+ 20430 - 19968: 0xF0BB,
+ 20433 - 19968: 0xE9B5,
+ 20435 - 19968: 0xCCC9,
+ 20436 - 19968: 0xFAD5,
+ 20439 - 19968: 0xE1D4,
+ 20442 - 19968: 0xD7D6,
+ 20445 - 19968: 0xDCC1,
+ 20447 - 19968: 0xDEC6,
+ 20448 - 19968: 0xFAEF,
+ 20449 - 19968: 0xE3E1,
+ 20462 - 19968: 0xE1F3,
+ 20463 - 19968: 0xDCF6,
+ 20465 - 19968: 0xCEFC,
+ 20467 - 19968: 0xDBC4,
+ 20469 - 19968: 0xF8F1,
+ 20472 - 19968: 0xDCE4,
+ 20474 - 19968: 0xE5EF,
+ 20482 - 19968: 0xDCB1,
+ 20486 - 19968: 0xD5D6,
+ 20489 - 19968: 0xF3DA,
+ 20491 - 19968: 0xCBC1,
+ 20493 - 19968: 0xDBC3,
+ 20497 - 19968: 0xD9FA,
+ 20498 - 19968: 0xD3EE,
+ 20502 - 19968: 0xFAB8,
+ 20505 - 19968: 0xFDA6,
+ 20506 - 19968: 0xEBEF,
+ 20508 - 19968: 0xF4A6,
+ 20510 - 19968: 0xCCCA,
+ 20511 - 19968: 0xF3A8,
+ 20513 - 19968: 0xF3DB,
+ 20515 - 19968: 0xDBA7,
+ 20516 - 19968: 0xF6B7,
+ 20518 - 19968: 0xCFE6,
+ 20519 - 19968: 0xF0F2,
+ 20520 - 19968: 0xCBDA,
+ 20522 - 19968: 0xE7D2,
+ 20523 - 19968: 0xD7C3,
+ 20524 - 19968: 0xF6F0,
+ 20525 - 19968: 0xE8DE,
+ 20539 - 19968: 0xE5A6,
+ 20547 - 19968: 0xE5E7,
+ 20551 - 19968: 0xCAA3,
+ 20552 - 19968: 0xCCA7,
+ 20553 - 19968: 0xEAC9,
+ 20559 - 19968: 0xF8B6,
+ 20565 - 19968: 0xFAA5,
+ 20570 - 19968: 0xF1AE,
+ 20572 - 19968: 0xEFCE,
+ 20581 - 19968: 0xCBED,
+ 20596 - 19968: 0xF6B0,
+ 20597 - 19968: 0xEFCF,
+ 20598 - 19968: 0xE9CF,
+ 20600 - 19968: 0xF7DE,
+ 20608 - 19968: 0xCED3,
+ 20613 - 19968: 0xDCF7,
+ 20621 - 19968: 0xDBA8,
+ 20625 - 19968: 0xCBF8,
+ 20632 - 19968: 0xDFA1,
+ 20633 - 19968: 0xDDE1,
+ 20652 - 19968: 0xF5CA,
+ 20653 - 19968: 0xE9B6,
+ 20658 - 19968: 0xE7EC,
+ 20659 - 19968: 0xEEEE,
+ 20661 - 19968: 0xF3F0,
+ 20663 - 19968: 0xDFBF,
+ 20670 - 19968: 0xCCCB,
+ 20677 - 19968: 0xD0C1,
+ 20681 - 19968: 0xF4D2,
+ 20682 - 19968: 0xE0BA,
+ 20687 - 19968: 0xDFC0,
+ 20689 - 19968: 0xCEE0,
+ 20693 - 19968: 0xDCD2,
+ 20694 - 19968: 0xFDEA,
+ 20698 - 19968: 0xD6F6,
+ 20702 - 19968: 0xEACA,
+ 20709 - 19968: 0xE8E9,
+ 20711 - 19968: 0xE3AC,
+ 20717 - 19968: 0xF3D0,
+ 20729 - 19968: 0xCAA4,
+ 20731 - 19968: 0xDBF8,
+ 20735 - 19968: 0xDEC7,
+ 20736 - 19968: 0xEBF0,
+ 20737 - 19968: 0xF1D6,
+ 20740 - 19968: 0xE5E2,
+ 20742 - 19968: 0xCCCC,
+ 20745 - 19968: 0xCBFB,
+ 20754 - 19968: 0xEAE3,
+ 20767 - 19968: 0xDFC1,
+ 20769 - 19968: 0xD6ED,
+ 20778 - 19968: 0xE9D0,
+ 20786 - 19968: 0xEEB9,
+ 20791 - 19968: 0xD5E3,
+ 20794 - 19968: 0xD1D3,
+ 20796 - 19968: 0xE5F0,
+ 20800 - 19968: 0xE8B4,
+ 20801 - 19968: 0xEBC3,
+ 20803 - 19968: 0xEAAA,
+ 20804 - 19968: 0xFAFC,
+ 20805 - 19968: 0xF5F6,
+ 20806 - 19968: 0xF0BC,
+ 20807 - 19968: 0xFDD4,
+ 20808 - 19968: 0xE0BB,
+ 20809 - 19968: 0xCEC3,
+ 20811 - 19968: 0xD0BA,
+ 20812 - 19968: 0xF7BA,
+ 20813 - 19968: 0xD8F3,
+ 20814 - 19968: 0xF7CD,
+ 20818 - 19968: 0xE4AE,
+ 20828 - 19968: 0xD4DF,
+ 20834 - 19968: 0xD0E7,
+ 20837 - 19968: 0xECFD,
+ 20839 - 19968: 0xD2AE,
+ 20840 - 19968: 0xEEEF,
+ 20841 - 19968: 0xD5D7,
+ 20842 - 19968: 0xEAE4,
+ 20843 - 19968: 0xF8A2,
+ 20844 - 19968: 0xCDEB,
+ 20845 - 19968: 0xD7BF,
+ 20846 - 19968: 0xFBB1,
+ 20849 - 19968: 0xCDEC,
+ 20853 - 19968: 0xDCB2,
+ 20854 - 19968: 0xD0EC,
+ 20855 - 19968: 0xCEFD,
+ 20856 - 19968: 0xEEF0,
+ 20860 - 19968: 0xCCC2,
+ 20864 - 19968: 0xD0ED,
+ 20870 - 19968: 0xE5F7,
+ 20874 - 19968: 0xF3FC,
+ 20877 - 19968: 0xEEA2,
+ 20882 - 19968: 0xD9B3,
+ 20885 - 19968: 0xD8F4,
+ 20887 - 19968: 0xE9B7,
+ 20896 - 19968: 0xCEAE,
+ 20901 - 19968: 0xD9A2,
+ 20906 - 19968: 0xD8F1,
+ 20908 - 19968: 0xD4CF,
+ 20918 - 19968: 0xE5A7,
+ 20919 - 19968: 0xD5D2,
+ 20925 - 19968: 0xD6A9,
+ 20932 - 19968: 0xF4A2,
+ 20934 - 19968: 0xF1D7,
+ 20937 - 19968: 0xD5D8,
+ 20939 - 19968: 0xF0BD,
+ 20940 - 19968: 0xD7D0,
+ 20941 - 19968: 0xD4D0,
+ 20956 - 19968: 0xD7CF,
+ 20957 - 19968: 0xEBEA,
+ 20958 - 19968: 0xFDEB,
+ 20961 - 19968: 0xDBED,
+ 20976 - 19968: 0xFCC5,
+ 20977 - 19968: 0xCBC2,
+ 20982 - 19968: 0xFDD5,
+ 20984 - 19968: 0xF4C8,
+ 20985 - 19968: 0xE8EA,
+ 20986 - 19968: 0xF5F3,
+ 20989 - 19968: 0xF9DE,
+ 20992 - 19968: 0xD3EF,
+ 20995 - 19968: 0xECD3,
+ 20998 - 19968: 0xDDC2,
+ 20999 - 19968: 0xEFB7,
+ 21000 - 19968: 0xE7D4,
+ 21002 - 19968: 0xCACA,
+ 21006 - 19968: 0xD9FB,
+ 21009 - 19968: 0xFAFD,
+ 21015 - 19968: 0xD6AA,
+ 21021 - 19968: 0xF4F8,
+ 21028 - 19968: 0xF7F7,
+ 21029 - 19968: 0xDCAC,
+ 21033 - 19968: 0xD7D7,
+ 21034 - 19968: 0xDFA2,
+ 21038 - 19968: 0xCEBE,
+ 21040 - 19968: 0xD3F0,
+ 21046 - 19968: 0xF0A4,
+ 21047 - 19968: 0xE1EC,
+ 21048 - 19968: 0xCFE7,
+ 21049 - 19968: 0xF3CB,
+ 21050 - 19968: 0xEDA9,
+ 21051 - 19968: 0xCABE,
+ 21059 - 19968: 0xF4EF,
+ 21063 - 19968: 0xF6CE,
+ 21066 - 19968: 0xDEFB,
+ 21067 - 19968: 0xD0BB,
+ 21068 - 19968: 0xD5B7,
+ 21069 - 19968: 0xEEF1,
+ 21076 - 19968: 0xF4A8,
+ 21078 - 19968: 0xDCF8,
+ 21083 - 19968: 0xCBA7,
+ 21085 - 19968: 0xDACE,
+ 21089 - 19968: 0xE0E6,
+ 21097 - 19968: 0xEDA5,
+ 21098 - 19968: 0xEEF2,
+ 21103 - 19968: 0xDCF9,
+ 21106 - 19968: 0xF9DC,
+ 21109 - 19968: 0xF3DC,
+ 21117 - 19968: 0xF8F2,
+ 21119 - 19968: 0xF4F9,
+ 21123 - 19968: 0xFCF1,
+ 21127 - 19968: 0xD0BC,
+ 21128 - 19968: 0xDBF9,
+ 21129 - 19968: 0xD7B1,
+ 21133 - 19968: 0xCBFC,
+ 21137 - 19968: 0xF0A5,
+ 21138 - 19968: 0xCBFD,
+ 21147 - 19968: 0xD5F4,
+ 21151 - 19968: 0xCDED,
+ 21152 - 19968: 0xCAA5,
+ 21155 - 19968: 0xD6AB,
+ 21156 - 19968: 0xD0C2,
+ 21161 - 19968: 0xF0BE,
+ 21162 - 19968: 0xD2BD,
+ 21163 - 19968: 0xCCA4,
+ 21182 - 19968: 0xFAB6,
+ 21185 - 19968: 0xCCCD,
+ 21187 - 19968: 0xDAFA,
+ 21189 - 19968: 0xF6CF,
+ 21191 - 19968: 0xE9B8,
+ 21193 - 19968: 0xD8F5,
+ 21197 - 19968: 0xCCCE,
+ 21202 - 19968: 0xD7CD,
+ 21205 - 19968: 0xD4D1,
+ 21206 - 19968: 0xE9ED,
+ 21208 - 19968: 0xCAEB,
+ 21209 - 19968: 0xD9E2,
+ 21211 - 19968: 0xFDB2,
+ 21213 - 19968: 0xE3AD,
+ 21214 - 19968: 0xD6CC,
+ 21215 - 19968: 0xD9B4,
+ 21218 - 19968: 0xE1A7,
+ 21219 - 19968: 0xEED3,
+ 21220 - 19968: 0xD0C3,
+ 21235 - 19968: 0xFDB3,
+ 21237 - 19968: 0xD5E4,
+ 21240 - 19968: 0xCFE8,
+ 21242 - 19968: 0xEDC3,
+ 21243 - 19968: 0xD0B2,
+ 21246 - 19968: 0xCEFE,
+ 21247 - 19968: 0xDAA8,
+ 21253 - 19968: 0xF8D0,
+ 21256 - 19968: 0xFDD6,
+ 21261 - 19968: 0xF8D1,
+ 21263 - 19968: 0xF8D2,
+ 21264 - 19968: 0xDCD3,
+ 21269 - 19968: 0xDDE2,
+ 21270 - 19968: 0xFBF9,
+ 21271 - 19968: 0xDDC1,
+ 21273 - 19968: 0xE3B5,
+ 21280 - 19968: 0xEDDD,
+ 21281 - 19968: 0xCEC4,
+ 21283 - 19968: 0xCBA1,
+ 21290 - 19968: 0xDDE3,
+ 21295 - 19968: 0xFCDD,
+ 21305 - 19968: 0xF9AF,
+ 21311 - 19968: 0xD2FB,
+ 21312 - 19968: 0xCFA1,
+ 21313 - 19968: 0xE4A8,
+ 21315 - 19968: 0xF4B6,
+ 21316 - 19968: 0xECFE,
+ 21319 - 19968: 0xE3AE,
+ 21320 - 19968: 0xE7ED,
+ 21321 - 19968: 0xFDC1,
+ 21322 - 19968: 0xDAE2,
+ 21325 - 19968: 0xD8B3,
+ 21329 - 19968: 0xDDE4,
+ 21330 - 19968: 0xF0EF,
+ 21331 - 19968: 0xF6F1,
+ 21332 - 19968: 0xFAF0,
+ 21335 - 19968: 0xD1F5,
+ 21338 - 19968: 0xDACF,
+ 21340 - 19968: 0xDCD4,
+ 21342 - 19968: 0xDCA6,
+ 21344 - 19968: 0xEFBF,
+ 21350 - 19968: 0xCECF,
+ 21352 - 19968: 0xE0D9,
+ 21359 - 19968: 0xD9D6,
+ 21360 - 19968: 0xECD4,
+ 21361 - 19968: 0xEACB,
+ 21364 - 19968: 0xCABF,
+ 21365 - 19968: 0xD5B0,
+ 21367 - 19968: 0xCFE9,
+ 21373 - 19968: 0xF1ED,
+ 21375 - 19968: 0xCCCF,
+ 21380 - 19968: 0xE4F8,
+ 21395 - 19968: 0xE4ED,
+ 21400 - 19968: 0xD7D8,
+ 21402 - 19968: 0xFDA7,
+ 21407 - 19968: 0xEAAB,
+ 21408 - 19968: 0xF6B2,
+ 21413 - 19968: 0xCFF0,
+ 21414 - 19968: 0xF9BD,
+ 21421 - 19968: 0xE6F4,
+ 21435 - 19968: 0xCBDB,
+ 21443 - 19968: 0xF3D1,
+ 21448 - 19968: 0xE9D1,
+ 21449 - 19968: 0xF3A9,
+ 21450 - 19968: 0xD0E0,
+ 21451 - 19968: 0xE9D2,
+ 21453 - 19968: 0xDAE3,
+ 21460 - 19968: 0xE2D2,
+ 21462 - 19968: 0xF6A2,
+ 21463 - 19968: 0xE1F4,
+ 21467 - 19968: 0xDAE4,
+ 21473 - 19968: 0xE7D5,
+ 21474 - 19968: 0xF5BF,
+ 21475 - 19968: 0xCFA2,
+ 21476 - 19968: 0xCDAF,
+ 21477 - 19968: 0xCFA3,
+ 21481 - 19968: 0xCDB0,
+ 21482 - 19968: 0xF1FE,
+ 21483 - 19968: 0xD0A3,
+ 21484 - 19968: 0xE1AF,
+ 21485 - 19968: 0xF8A3,
+ 21487 - 19968: 0xCAA6,
+ 21488 - 19968: 0xF7BB,
+ 21489 - 19968: 0xF2EA,
+ 21490 - 19968: 0xDEC8,
+ 21491 - 19968: 0xE9D3,
+ 21496 - 19968: 0xDEC9,
+ 21507 - 19968: 0xFDDE,
+ 21508 - 19968: 0xCAC0,
+ 21512 - 19968: 0xF9EA,
+ 21513 - 19968: 0xD1CE,
+ 21514 - 19968: 0xEED4,
+ 21516 - 19968: 0xD4D2,
+ 21517 - 19968: 0xD9A3,
+ 21518 - 19968: 0xFDA8,
+ 21519 - 19968: 0xD7D9,
+ 21520 - 19968: 0xF7CE,
+ 21521 - 19968: 0xFABE,
+ 21531 - 19968: 0xCFD6,
+ 21533 - 19968: 0xD7F0,
+ 21535 - 19968: 0xEBE1,
+ 21536 - 19968: 0xF8C5,
+ 21542 - 19968: 0xDCFA,
+ 21545 - 19968: 0xDDC3,
+ 21547 - 19968: 0xF9DF,
+ 21555 - 19968: 0xE7EF,
+ 21560 - 19968: 0xFDE5,
+ 21561 - 19968: 0xF6A3,
+ 21563 - 19968: 0xD9FC,
+ 21564 - 19968: 0xFDA9,
+ 21566 - 19968: 0xE7EE,
+ 21570 - 19968: 0xD5E5,
+ 21576 - 19968: 0xEFD0,
+ 21578 - 19968: 0xCDB1,
+ 21585 - 19968: 0xF7A2,
+ 21608 - 19968: 0xF1B2,
+ 21610 - 19968: 0xF1B1,
+ 21617 - 19968: 0xCDB2,
+ 21619 - 19968: 0xDAAB,
+ 21621 - 19968: 0xCAA7,
+ 21627 - 19968: 0xE3E2,
+ 21628 - 19968: 0xFBBC,
+ 21629 - 19968: 0xD9A4,
+ 21632 - 19968: 0xEEBA,
+ 21638 - 19968: 0xF8D3,
+ 21644 - 19968: 0xFBFA,
+ 21646 - 19968: 0xCFA4,
+ 21648 - 19968: 0xDCFB,
+ 21668 - 19968: 0xF6E3,
+ 21672 - 19968: 0xEDAA,
+ 21675 - 19968: 0xF2A1,
+ 21676 - 19968: 0xCEE1,
+ 21683 - 19968: 0xFAA6,
+ 21688 - 19968: 0xF9E0,
+ 21693 - 19968: 0xECD6,
+ 21696 - 19968: 0xE4EE,
+ 21697 - 19968: 0xF9A1,
+ 21700 - 19968: 0xFBEF,
+ 21704 - 19968: 0xF9EB,
+ 21705 - 19968: 0xEEA3,
+ 21729 - 19968: 0xEAAC,
+ 21733 - 19968: 0xCAA8,
+ 21736 - 19968: 0xF4FA,
+ 21741 - 19968: 0xCDD6,
+ 21742 - 19968: 0xFCF6,
+ 21746 - 19968: 0xF4C9,
+ 21754 - 19968: 0xF8D4,
+ 21764 - 19968: 0xF8A6,
+ 21766 - 19968: 0xDECA,
+ 21767 - 19968: 0xF2C6,
+ 21774 - 19968: 0xD7DA,
+ 21776 - 19968: 0xD3D0,
+ 21788 - 19968: 0xD8C5,
+ 21807 - 19968: 0xEAE6,
+ 21809 - 19968: 0xF3DD,
+ 21813 - 19968: 0xE4DA,
+ 21822 - 19968: 0xF6E4,
+ 21828 - 19968: 0xF6F2,
+ 21830 - 19968: 0xDFC2,
+ 21839 - 19968: 0xD9FD,
+ 21843 - 19968: 0xCCF6,
+ 21846 - 19968: 0xD3BA,
+ 21854 - 19968: 0xE4AF,
+ 21859 - 19968: 0xF9E1,
+ 21884 - 19968: 0xF0A6,
+ 21888 - 19968: 0xCBD3,
+ 21892 - 19968: 0xE0BC,
+ 21894 - 19968: 0xF4CA,
+ 21895 - 19968: 0xD4FA,
+ 21897 - 19968: 0xFDAA,
+ 21898 - 19968: 0xF9E2,
+ 21912 - 19968: 0xF4B7,
+ 21913 - 19968: 0xFDC2,
+ 21914 - 19968: 0xFCB0,
+ 21916 - 19968: 0xFDEC,
+ 21917 - 19968: 0xCAE2,
+ 21927 - 19968: 0xFDBD,
+ 21929 - 19968: 0xEAE7,
+ 21930 - 19968: 0xDFC3,
+ 21931 - 19968: 0xD1D2,
+ 21932 - 19968: 0xCEE2,
+ 21934 - 19968: 0xD3A4,
+ 21957 - 19968: 0xFDAB,
+ 21959 - 19968: 0xDFE0,
+ 21972 - 19968: 0xF2C7,
+ 21978 - 19968: 0xE7F0,
+ 21980 - 19968: 0xD0EE,
+ 21983 - 19968: 0xF3AA,
+ 21987 - 19968: 0xDECB,
+ 21988 - 19968: 0xF6B8,
+ 22013 - 19968: 0xE1F5,
+ 22014 - 19968: 0xF1B3,
+ 22022 - 19968: 0xF7A3,
+ 22025 - 19968: 0xCAA9,
+ 22036 - 19968: 0xCFA5,
+ 22039 - 19968: 0xDFC4,
+ 22063 - 19968: 0xE1B0,
+ 22066 - 19968: 0xF0BF,
+ 22068 - 19968: 0xF6A4,
+ 22070 - 19968: 0xE3B6,
+ 22099 - 19968: 0xFAC6,
+ 22120 - 19968: 0xD0EF,
+ 22123 - 19968: 0xFDED,
+ 22132 - 19968: 0xDDC4,
+ 22150 - 19968: 0xFCF7,
+ 22181 - 19968: 0xE6BF,
+ 22188 - 19968: 0xDEAD,
+ 22190 - 19968: 0xFABF,
+ 22196 - 19968: 0xE5F1,
+ 22204 - 19968: 0xEDC4,
+ 22218 - 19968: 0xD2A5,
+ 22221 - 19968: 0xFDEE,
+ 22225 - 19968: 0xF5B6,
+ 22234 - 19968: 0xE1F6,
+ 22235 - 19968: 0xDECC,
+ 22238 - 19968: 0xFCDE,
+ 22240 - 19968: 0xECD7,
+ 22256 - 19968: 0xCDDD,
+ 22265 - 19968: 0xD6B7,
+ 22266 - 19968: 0xCDB3,
+ 22275 - 19968: 0xF8D5,
+ 22276 - 19968: 0xE5D8,
+ 22280 - 19968: 0xCFEA,
+ 22283 - 19968: 0xCFD0,
+ 22285 - 19968: 0xEACC,
+ 22290 - 19968: 0xEAAE,
+ 22291 - 19968: 0xEAAD,
+ 22294 - 19968: 0xD3F1,
+ 22296 - 19968: 0xD3A5,
+ 22303 - 19968: 0xF7CF,
+ 22312 - 19968: 0xEEA4,
+ 22317 - 19968: 0xD0A4,
+ 22320 - 19968: 0xF2A2,
+ 22331 - 19968: 0xD0F0,
+ 22336 - 19968: 0xF2A3,
+ 22338 - 19968: 0xF7F8,
+ 22343 - 19968: 0xD0B3,
+ 22346 - 19968: 0xDBA9,
+ 22349 - 19968: 0xD3BB,
+ 22350 - 19968: 0xCAEC,
+ 22352 - 19968: 0xF1A6,
+ 22353 - 19968: 0xCBD5,
+ 22369 - 19968: 0xF7E7,
+ 22372 - 19968: 0xCDDE,
+ 22374 - 19968: 0xF7A4,
+ 22378 - 19968: 0xF8C0,
+ 22382 - 19968: 0xD3DD,
+ 22384 - 19968: 0xCCD0,
+ 22389 - 19968: 0xCFA6,
+ 22396 - 19968: 0xF6F3,
+ 22402 - 19968: 0xE1F7,
+ 22408 - 19968: 0xD3DC,
+ 22411 - 19968: 0xFAFE,
+ 22419 - 19968: 0xFAA7,
+ 22432 - 19968: 0xEBD9,
+ 22434 - 19968: 0xCFA7,
+ 22435 - 19968: 0xEAAF,
+ 22467 - 19968: 0xE4EF,
+ 22471 - 19968: 0xE9B9,
+ 22472 - 19968: 0xF1D8,
+ 22475 - 19968: 0xD8D8,
+ 22478 - 19968: 0xE0F2,
+ 22495 - 19968: 0xE6B4,
+ 22496 - 19968: 0xDCFC,
+ 22512 - 19968: 0xF3F1,
+ 22516 - 19968: 0xE3D0,
+ 22519 - 19968: 0xF2FB,
+ 22521 - 19968: 0xDBC6,
+ 22522 - 19968: 0xD0F1,
+ 22524 - 19968: 0xD0F2,
+ 22528 - 19968: 0xCFDC,
+ 22530 - 19968: 0xD3D1,
+ 22533 - 19968: 0xCCB1,
+ 22534 - 19968: 0xF7D8,
+ 22536 - 19968: 0xCBA8,
+ 22537 - 19968: 0xEBBC,
+ 22538 - 19968: 0xE4BE,
+ 22558 - 19968: 0xF4DC,
+ 22561 - 19968: 0xDCC2,
+ 22564 - 19968: 0xF0A7,
+ 22567 - 19968: 0xE6C0,
+ 22570 - 19968: 0xCAED,
+ 22575 - 19968: 0xE8EB,
+ 22576 - 19968: 0xE5E8,
+ 22577 - 19968: 0xDCC3,
+ 22580 - 19968: 0xEDDE,
+ 22581 - 19968: 0xD3F2,
+ 22586 - 19968: 0xCCF7,
+ 22602 - 19968: 0xCED4,
+ 22603 - 19968: 0xE7AB,
+ 22607 - 19968: 0xCBC3,
+ 22609 - 19968: 0xE1B1,
+ 22612 - 19968: 0xF7B2,
+ 22615 - 19968: 0xD3F3,
+ 22616 - 19968: 0xD3D2,
+ 22618 - 19968: 0xF5C0,
+ 22622 - 19968: 0xDFDD,
+ 22625 - 19968: 0xEEF3,
+ 22626 - 19968: 0xE7F1,
+ 22628 - 19968: 0xFDB4,
+ 22645 - 19968: 0xF2C8,
+ 22649 - 19968: 0xF3D2,
+ 22652 - 19968: 0xEEF4,
+ 22654 - 19968: 0xE2D3,
+ 22659 - 19968: 0xCCD1,
+ 22661 - 19968: 0xDFEA,
+ 22665 - 19968: 0xE9BA,
+ 22675 - 19968: 0xD9D7,
+ 22684 - 19968: 0xF5CD,
+ 22686 - 19968: 0xF1F2,
+ 22687 - 19968: 0xFAC7,
+ 22696 - 19968: 0xD9F8,
+ 22697 - 19968: 0xD4C2,
+ 22702 - 19968: 0xF6E5,
+ 22707 - 19968: 0xDDC5,
+ 22714 - 19968: 0xE7F2,
+ 22715 - 19968: 0xEDDF,
+ 22718 - 19968: 0xCACB,
+ 22721 - 19968: 0xDBFA,
+ 22725 - 19968: 0xE8B5,
+ 22727 - 19968: 0xD3A6,
+ 22734 - 19968: 0xFDB5,
+ 22737 - 19968: 0xF9C9,
+ 22739 - 19968: 0xE4E2,
+ 22741 - 19968: 0xFBBD,
+ 22744 - 19968: 0xD7A4,
+ 22745 - 19968: 0xCEC5,
+ 22750 - 19968: 0xCED5,
+ 22751 - 19968: 0xD6E6,
+ 22756 - 19968: 0xE5BD,
+ 22763 - 19968: 0xDECD,
+ 22764 - 19968: 0xECF3,
+ 22767 - 19968: 0xEDE0,
+ 22777 - 19968: 0xECEC,
+ 22778 - 19968: 0xFBBE,
+ 22779 - 19968: 0xDFEB,
+ 22781 - 19968: 0xE1F8,
+ 22799 - 19968: 0xF9BE,
+ 22804 - 19968: 0xD0F3,
+ 22805 - 19968: 0xE0AA,
+ 22806 - 19968: 0xE8E2,
+ 22809 - 19968: 0xE2D4,
+ 22810 - 19968: 0xD2FD,
+ 22812 - 19968: 0xE5A8,
+ 22818 - 19968: 0xD9D3,
+ 22823 - 19968: 0xD3DE,
+ 22825 - 19968: 0xF4B8,
+ 22826 - 19968: 0xF7BC,
+ 22827 - 19968: 0xDCFD,
+ 22829 - 19968: 0xE8EC,
+ 22830 - 19968: 0xE4E7,
+ 22833 - 19968: 0xE3F7,
+ 22839 - 19968: 0xECA8,
+ 22846 - 19968: 0xFAF1,
+ 22852 - 19968: 0xE5F2,
+ 22855 - 19968: 0xD0F4,
+ 22856 - 19968: 0xD2AF,
+ 22857 - 19968: 0xDCE5,
+ 22862 - 19968: 0xD0A5,
+ 22863 - 19968: 0xF1B4,
+ 22864 - 19968: 0xFCB1,
+ 22865 - 19968: 0xCCF8,
+ 22868 - 19968: 0xDDC6,
+ 22869 - 19968: 0xFAD1,
+ 22871 - 19968: 0xF7DF,
+ 22874 - 19968: 0xFAA8,
+ 22880 - 19968: 0xEEF5,
+ 22882 - 19968: 0xDECE,
+ 22887 - 19968: 0xE7F3,
+ 22890 - 19968: 0xF7AC,
+ 22891 - 19968: 0xEBC4,
+ 22892 - 19968: 0xEDE1,
+ 22893 - 19968: 0xE0AB,
+ 22894 - 19968: 0xDDC7,
+ 22899 - 19968: 0xD2B3,
+ 22900 - 19968: 0xD2BF,
+ 22904 - 19968: 0xCACC,
+ 22909 - 19968: 0xFBBF,
+ 22914 - 19968: 0xE5FD,
+ 22915 - 19968: 0xDDE5,
+ 22916 - 19968: 0xD8CD,
+ 22922 - 19968: 0xECF4,
+ 22931 - 19968: 0xD0F5,
+ 22934 - 19968: 0xE8ED,
+ 22935 - 19968: 0xD0D2,
+ 22937 - 19968: 0xD9D8,
+ 22949 - 19968: 0xF6E6,
+ 22952 - 19968: 0xDBAA,
+ 22956 - 19968: 0xF7E0,
+ 22969 - 19968: 0xD8D9,
+ 22971 - 19968: 0xF4A3,
+ 22974 - 19968: 0xF4DD,
+ 22979 - 19968: 0xEFD1,
+ 22982 - 19968: 0xD9B5,
+ 22985 - 19968: 0xEDAB,
+ 22987 - 19968: 0xE3B7,
+ 22992 - 19968: 0xEEBB,
+ 22993 - 19968: 0xCDB4,
+ 22995 - 19968: 0xE0F3,
+ 22996 - 19968: 0xEACD,
+ 23001 - 19968: 0xECF5,
+ 23002 - 19968: 0xE8EE,
+ 23004 - 19968: 0xCBA9,
+ 23005 - 19968: 0xF1AF,
+ 23014 - 19968: 0xCACD,
+ 23016 - 19968: 0xECA9,
+ 23018 - 19968: 0xF2EB,
+ 23020 - 19968: 0xFDEF,
+ 23022 - 19968: 0xF9F3,
+ 23032 - 19968: 0xE6C1,
+ 23035 - 19968: 0xECD8,
+ 23039 - 19968: 0xEDAC,
+ 23041 - 19968: 0xEACE,
+ 23043 - 19968: 0xE8DF,
+ 23057 - 19968: 0xDECF,
+ 23064 - 19968: 0xD2A6,
+ 23067 - 19968: 0xE7F4,
+ 23068 - 19968: 0xD1D6,
+ 23071 - 19968: 0xE6C2,
+ 23072 - 19968: 0xE3E3,
+ 23077 - 19968: 0xE4B0,
+ 23081 - 19968: 0xD8B4,
+ 23094 - 19968: 0xF6A5,
+ 23100 - 19968: 0xF3DE,
+ 23105 - 19968: 0xD7A5,
+ 23110 - 19968: 0xF7E8,
+ 23113 - 19968: 0xE8C6,
+ 23130 - 19968: 0xFBE6,
+ 23138 - 19968: 0xDDE6,
+ 23142 - 19968: 0xDCFE,
+ 23186 - 19968: 0xD8DA,
+ 23194 - 19968: 0xDAAC,
+ 23195 - 19968: 0xEAB0,
+ 23204 - 19968: 0xE3B8,
+ 23233 - 19968: 0xCAAA,
+ 23234 - 19968: 0xE1F9,
+ 23236 - 19968: 0xEAB1,
+ 23241 - 19968: 0xF2EC,
+ 23244 - 19968: 0xFAEE,
+ 23265 - 19968: 0xEED5,
+ 23270 - 19968: 0xF9F4,
+ 23273 - 19968: 0xD2EC,
+ 23301 - 19968: 0xFBFB,
+ 23305 - 19968: 0xFDF0,
+ 23307 - 19968: 0xE0BD,
+ 23308 - 19968: 0xCEE3,
+ 23318 - 19968: 0xF8C6,
+ 23338 - 19968: 0xDEAE,
+ 23360 - 19968: 0xDFC5,
+ 23363 - 19968: 0xE5BE,
+ 23376 - 19968: 0xEDAD,
+ 23377 - 19968: 0xFAEA,
+ 23380 - 19968: 0xCDEE,
+ 23381 - 19968: 0xEDA6,
+ 23383 - 19968: 0xEDAE,
+ 23384 - 19968: 0xF0ED,
+ 23386 - 19968: 0xDDA1,
+ 23388 - 19968: 0xEDAF,
+ 23389 - 19968: 0xFCF8,
+ 23391 - 19968: 0xD8EB,
+ 23395 - 19968: 0xCCF9,
+ 23396 - 19968: 0xCDB5,
+ 23401 - 19968: 0xFAA9,
+ 23403 - 19968: 0xE1DD,
+ 23408 - 19968: 0xE2D5,
+ 23409 - 19968: 0xEDCF,
+ 23413 - 19968: 0xDDA2,
+ 23416 - 19968: 0xF9CA,
+ 23418 - 19968: 0xEAE8,
+ 23420 - 19968: 0xE5ED,
+ 23429 - 19968: 0xD3EB,
+ 23431 - 19968: 0xE9D4,
+ 23432 - 19968: 0xE1FA,
+ 23433 - 19968: 0xE4CC,
+ 23435 - 19968: 0xE1E4,
+ 23436 - 19968: 0xE8C7,
+ 23439 - 19968: 0xCEDB,
+ 23443 - 19968: 0xDCD5,
+ 23445 - 19968: 0xF7B5,
+ 23446 - 19968: 0xFCF3,
+ 23447 - 19968: 0xF0F3,
+ 23448 - 19968: 0xCEAF,
+ 23449 - 19968: 0xF1B5,
+ 23450 - 19968: 0xEFD2,
+ 23451 - 19968: 0xE8C8,
+ 23452 - 19968: 0xEBF1,
+ 23458 - 19968: 0xCBD4,
+ 23459 - 19968: 0xE0BE,
+ 23460 - 19968: 0xE3F8,
+ 23461 - 19968: 0xEAE9,
+ 23462 - 19968: 0xFCB2,
+ 23468 - 19968: 0xE0F4,
+ 23470 - 19968: 0xCFE0,
+ 23472 - 19968: 0xEEA5,
+ 23475 - 19968: 0xFAAA,
+ 23476 - 19968: 0xE6C3,
+ 23477 - 19968: 0xE1B2,
+ 23478 - 19968: 0xCAAB,
+ 23480 - 19968: 0xE3E4,
+ 23481 - 19968: 0xE9BB,
+ 23487 - 19968: 0xE2D6,
+ 23488 - 19968: 0xF3F2,
+ 23490 - 19968: 0xEED6,
+ 23491 - 19968: 0xEAB2,
+ 23492 - 19968: 0xD0F6,
+ 23493 - 19968: 0xECD9,
+ 23494 - 19968: 0xDACB,
+ 23495 - 19968: 0xCFA8,
+ 23500 - 19968: 0xDDA3,
+ 23504 - 19968: 0xD8DB,
+ 23506 - 19968: 0xF9CE,
+ 23507 - 19968: 0xE9D5,
+ 23508 - 19968: 0xE3D1,
+ 23511 - 19968: 0xD2BC,
+ 23518 - 19968: 0xD8AC,
+ 23519 - 19968: 0xF3CC,
+ 23521 - 19968: 0xCDFB,
+ 23522 - 19968: 0xF6D6,
+ 23524 - 19968: 0xE7F5,
+ 23525 - 19968: 0xE8EF,
+ 23526 - 19968: 0xE3F9,
+ 23527 - 19968: 0xD2BB,
+ 23528 - 19968: 0xF3F3,
+ 23529 - 19968: 0xE3FB,
+ 23531 - 19968: 0xDED0,
+ 23532 - 19968: 0xCEB0,
+ 23534 - 19968: 0xD6F7,
+ 23535 - 19968: 0xF1D9,
+ 23541 - 19968: 0xF5C1,
+ 23542 - 19968: 0xDCC4,
+ 23544 - 19968: 0xF5BB,
+ 23546 - 19968: 0xDED1,
+ 23553 - 19968: 0xDCE6,
+ 23556 - 19968: 0xDED2,
+ 23559 - 19968: 0xEDE2,
+ 23560 - 19968: 0xEEF6,
+ 23561 - 19968: 0xEACF,
+ 23562 - 19968: 0xF0EE,
+ 23563 - 19968: 0xE3FC,
+ 23565 - 19968: 0xD3DF,
+ 23566 - 19968: 0xD3F4,
+ 23567 - 19968: 0xE1B3,
+ 23569 - 19968: 0xE1B4,
+ 23574 - 19968: 0xF4D3,
+ 23577 - 19968: 0xDFC6,
+ 23588 - 19968: 0xE9D6,
+ 23592 - 19968: 0xDBAB,
+ 23601 - 19968: 0xF6A6,
+ 23608 - 19968: 0xE3B9,
+ 23609 - 19968: 0xEBC5,
+ 23610 - 19968: 0xF4A9,
+ 23611 - 19968: 0xCDB6,
+ 23612 - 19968: 0xD2F9,
+ 23614 - 19968: 0xDAAD,
+ 23615 - 19968: 0xD2E3,
+ 23616 - 19968: 0xCFD1,
+ 23621 - 19968: 0xCBDC,
+ 23622 - 19968: 0xCCFA,
+ 23624 - 19968: 0xCFDD,
+ 23627 - 19968: 0xE8A9,
+ 23629 - 19968: 0xE3BB,
+ 23630 - 19968: 0xE3BA,
+ 23633 - 19968: 0xE0DA,
+ 23637 - 19968: 0xEEF7,
+ 23643 - 19968: 0xDCB3,
+ 23648 - 19968: 0xD3F5,
+ 23650 - 19968: 0xD7A6,
+ 23652 - 19968: 0xF6B5,
+ 23653 - 19968: 0xD7DB,
+ 23660 - 19968: 0xE1D5,
+ 23663 - 19968: 0xD4EA,
+ 23665 - 19968: 0xDFA3,
+ 23673 - 19968: 0xFDDF,
+ 23696 - 19968: 0xD0F7,
+ 23697 - 19968: 0xEDD4,
+ 23713 - 19968: 0xCBAA,
+ 23721 - 19968: 0xE4DB,
+ 23723 - 19968: 0xE1FB,
+ 23724 - 19968: 0xCBA2,
+ 23729 - 19968: 0xD3E0,
+ 23731 - 19968: 0xE4BF,
+ 23733 - 19968: 0xFBC0,
+ 23735 - 19968: 0xDABE,
+ 23736 - 19968: 0xE4CD,
+ 23738 - 19968: 0xD6B9,
+ 23742 - 19968: 0xEFC0,
+ 23744 - 19968: 0xE1FC,
+ 23769 - 19968: 0xF6B9,
+ 23776 - 19968: 0xDFC7,
+ 23784 - 19968: 0xE4B1,
+ 23791 - 19968: 0xDCE7,
+ 23792 - 19968: 0xDCE8,
+ 23796 - 19968: 0xFAD6,
+ 23798 - 19968: 0xD3F6,
+ 23803 - 19968: 0xF1DA,
+ 23805 - 19968: 0xFAF2,
+ 23815 - 19968: 0xE2FD,
+ 23821 - 19968: 0xD5CF,
+ 23822 - 19968: 0xD0F8,
+ 23825 - 19968: 0xCDDF,
+ 23828 - 19968: 0xF5CB,
+ 23830 - 19968: 0xE4F0,
+ 23831 - 19968: 0xCBAB,
+ 23833 - 19968: 0xD7C4,
+ 23847 - 19968: 0xE2FE,
+ 23849 - 19968: 0xDDDA,
+ 23883 - 19968: 0xDAAE,
+ 23884 - 19968: 0xCAEE,
+ 23888 - 19968: 0xD5B9,
+ 23913 - 19968: 0xE3A1,
+ 23916 - 19968: 0xE8E3,
+ 23919 - 19968: 0xF3AB,
+ 23943 - 19968: 0xCFA9,
+ 23947 - 19968: 0xD3F7,
+ 23965 - 19968: 0xD4F1,
+ 23968 - 19968: 0xCEE4,
+ 23970 - 19968: 0xE8F2,
+ 23978 - 19968: 0xE5F5,
+ 23992 - 19968: 0xE7AE,
+ 23994 - 19968: 0xD6BA,
+ 23996 - 19968: 0xDFEC,
+ 23997 - 19968: 0xE4C0,
+ 24013 - 19968: 0xE8E4,
+ 24018 - 19968: 0xD8B5,
+ 24022 - 19968: 0xE4DC,
+ 24029 - 19968: 0xF4B9,
+ 24030 - 19968: 0xF1B6,
+ 24033 - 19968: 0xE2DE,
+ 24034 - 19968: 0xE1B5,
+ 24037 - 19968: 0xCDEF,
+ 24038 - 19968: 0xF1A7,
+ 24039 - 19968: 0xCEE5,
+ 24040 - 19968: 0xCBDD,
+ 24043 - 19968: 0xD9E3,
+ 24046 - 19968: 0xF3AC,
+ 24049 - 19968: 0xD0F9,
+ 24050 - 19968: 0xECAB,
+ 24051 - 19968: 0xDED3,
+ 24052 - 19968: 0xF7E9,
+ 24055 - 19968: 0xF9F5,
+ 24061 - 19968: 0xE1DE,
+ 24062 - 19968: 0xCBEE,
+ 24066 - 19968: 0xE3BC,
+ 24067 - 19968: 0xF8D6,
+ 24070 - 19968: 0xDBEE,
+ 24076 - 19968: 0xFDF1,
+ 24081 - 19968: 0xF7B6,
+ 24086 - 19968: 0xF4DE,
+ 24089 - 19968: 0xF2ED,
+ 24091 - 19968: 0xDBD9,
+ 24093 - 19968: 0xF0A8,
+ 24101 - 19968: 0xE1FD,
+ 24107 - 19968: 0xDED4,
+ 24109 - 19968: 0xE0AC,
+ 24115 - 19968: 0xEDE3,
+ 24118 - 19968: 0xD3E1,
+ 24120 - 19968: 0xDFC8,
+ 24125 - 19968: 0xD9B6,
+ 24127 - 19968: 0xFDAC,
+ 24128 - 19968: 0xEFD3,
+ 24132 - 19968: 0xE4C1,
+ 24133 - 19968: 0xF8EB,
+ 24135 - 19968: 0xDBAC,
+ 24140 - 19968: 0xFCC6,
+ 24149 - 19968: 0xD8AD,
+ 24159 - 19968: 0xF6BA,
+ 24161 - 19968: 0xDBDF,
+ 24162 - 19968: 0xD3D3,
+ 24163 - 19968: 0xF8C7,
+ 24178 - 19968: 0xCACE,
+ 24179 - 19968: 0xF8C1,
+ 24180 - 19968: 0xD2B4,
+ 24183 - 19968: 0xDCB4,
+ 24184 - 19968: 0xFAB9,
+ 24185 - 19968: 0xCACF,
+ 24187 - 19968: 0xFCB3,
+ 24188 - 19968: 0xEAEA,
+ 24189 - 19968: 0xEAEB,
+ 24190 - 19968: 0xD0FA,
+ 24196 - 19968: 0xEDE4,
+ 24199 - 19968: 0xDDE7,
+ 24202 - 19968: 0xDFC9,
+ 24207 - 19968: 0xDFED,
+ 24213 - 19968: 0xEEBC,
+ 24215 - 19968: 0xEFC1,
+ 24218 - 19968: 0xCCD2,
+ 24220 - 19968: 0xDDA4,
+ 24224 - 19968: 0xDFCA,
+ 24230 - 19968: 0xD3F8,
+ 24231 - 19968: 0xF1A8,
+ 24235 - 19968: 0xCDB7,
+ 24237 - 19968: 0xEFD4,
+ 24245 - 19968: 0xE4DD,
+ 24246 - 19968: 0xDFEE,
+ 24247 - 19968: 0xCBAC,
+ 24248 - 19968: 0xE9BC,
+ 24254 - 19968: 0xEAEC,
+ 24258 - 19968: 0xDFCB,
+ 24264 - 19968: 0xF9BF,
+ 24265 - 19968: 0xD6AF,
+ 24266 - 19968: 0xD5C6,
+ 24272 - 19968: 0xCFAA,
+ 24275 - 19968: 0xCEA9,
+ 24278 - 19968: 0xD6F8,
+ 24282 - 19968: 0xF1B7,
+ 24283 - 19968: 0xEEF8,
+ 24287 - 19968: 0xD9D9,
+ 24288 - 19968: 0xF3DF,
+ 24290 - 19968: 0xF8C8,
+ 24291 - 19968: 0xCEC6,
+ 24300 - 19968: 0xD5E6,
+ 24307 - 19968: 0xF4E6,
+ 24310 - 19968: 0xE6C5,
+ 24311 - 19968: 0xEFD5,
+ 24314 - 19968: 0xCBEF,
+ 24315 - 19968: 0xFCDF,
+ 24321 - 19968: 0xDCA7,
+ 24324 - 19968: 0xD6E7,
+ 24330 - 19968: 0xF8C9,
+ 24335 - 19968: 0xE3D2,
+ 24337 - 19968: 0xE3BD,
+ 24339 - 19968: 0xCFE1,
+ 24340 - 19968: 0xF0C0,
+ 24341 - 19968: 0xECDA,
+ 24343 - 19968: 0xDDD7,
+ 24344 - 19968: 0xFBF0,
+ 24347 - 19968: 0xECAC,
+ 24351 - 19968: 0xF0A9,
+ 24358 - 19968: 0xFAD7,
+ 24359 - 19968: 0xFBC1,
+ 24361 - 19968: 0xD2C0,
+ 24369 - 19968: 0xE5B0,
+ 24373 - 19968: 0xEDE5,
+ 24378 - 19968: 0xCBAD,
+ 24380 - 19968: 0xF9B0,
+ 24392 - 19968: 0xF7A5,
+ 24394 - 19968: 0xCBAE,
+ 24396 - 19968: 0xDAAF,
+ 24398 - 19968: 0xD8B6,
+ 24406 - 19968: 0xD3A7,
+ 24407 - 19968: 0xFBB2,
+ 24409 - 19968: 0xFDC4,
+ 24411 - 19968: 0xECAD,
+ 24418 - 19968: 0xFBA1,
+ 24422 - 19968: 0xE5E9,
+ 24423 - 19968: 0xE9EE,
+ 24425 - 19968: 0xF3F4,
+ 24426 - 19968: 0xF8F3,
+ 24427 - 19968: 0xF0C1,
+ 24428 - 19968: 0xDEAF,
+ 24429 - 19968: 0xF8B0,
+ 24432 - 19968: 0xF3E0,
+ 24433 - 19968: 0xE7AF,
+ 24439 - 19968: 0xDBAD,
+ 24441 - 19968: 0xE6B5,
+ 24444 - 19968: 0xF9A8,
+ 24447 - 19968: 0xDDD8,
+ 24448 - 19968: 0xE8D9,
+ 24449 - 19968: 0xEFD6,
+ 24453 - 19968: 0xD3E2,
+ 24455 - 19968: 0xE2DF,
+ 24458 - 19968: 0xFCE0,
+ 24459 - 19968: 0xD7C8,
+ 24460 - 19968: 0xFDAD,
+ 24464 - 19968: 0xDFEF,
+ 24465 - 19968: 0xCCD3,
+ 24466 - 19968: 0xD3F9,
+ 24471 - 19968: 0xD4F0,
+ 24472 - 19968: 0xDBC7,
+ 24473 - 19968: 0xDED5,
+ 24478 - 19968: 0xF0F4,
+ 24480 - 19968: 0xD5D0,
+ 24481 - 19968: 0xE5D9,
+ 24488 - 19968: 0xFCC7,
+ 24489 - 19968: 0xDCD6,
+ 24490 - 19968: 0xE2E0,
+ 24494 - 19968: 0xDAB0,
+ 24501 - 19968: 0xF3A3,
+ 24503 - 19968: 0xD3EC,
+ 24505 - 19968: 0xF4CB,
+ 24509 - 19968: 0xFDC5,
+ 24515 - 19968: 0xE3FD,
+ 24517 - 19968: 0xF9B1,
+ 24524 - 19968: 0xD0FB,
+ 24525 - 19968: 0xECDB,
+ 24534 - 19968: 0xF5BC,
+ 24535 - 19968: 0xF2A4,
+ 24536 - 19968: 0xD8CE,
+ 24537 - 19968: 0xD8CF,
+ 24544 - 19968: 0xF5F7,
+ 24555 - 19968: 0xF6E1,
+ 24565 - 19968: 0xD2B7,
+ 24573 - 19968: 0xFBEC,
+ 24575 - 19968: 0xDDC8,
+ 24591 - 19968: 0xE4E8,
+ 24594 - 19968: 0xD2C1,
+ 24598 - 19968: 0xF8D7,
+ 24604 - 19968: 0xD6BB,
+ 24605 - 19968: 0xDED6,
+ 24608 - 19968: 0xF7BD,
+ 24609 - 19968: 0xECAE,
+ 24613 - 19968: 0xD0E1,
+ 24615 - 19968: 0xE0F5,
+ 24616 - 19968: 0xEAB3,
+ 24618 - 19968: 0xCED6,
+ 24623 - 19968: 0xCCA5,
+ 24641 - 19968: 0xECF6,
+ 24642 - 19968: 0xE2E1,
+ 24643 - 19968: 0xE3BE,
+ 24653 - 19968: 0xFCC8,
+ 24656 - 19968: 0xCDF0,
+ 24658 - 19968: 0xF9F6,
+ 24661 - 19968: 0xDFF0,
+ 24665 - 19968: 0xE5BF,
+ 24669 - 19968: 0xCEBF,
+ 24674 - 19968: 0xFCE1,
+ 24675 - 19968: 0xEDB0,
+ 24676 - 19968: 0xFDD1,
+ 24677 - 19968: 0xF6BB,
+ 24680 - 19968: 0xF9CF,
+ 24681 - 19968: 0xEBDA,
+ 24682 - 19968: 0xCAC1,
+ 24684 - 19968: 0xD2B8,
+ 24685 - 19968: 0xCDF1,
+ 24687 - 19968: 0xE3D3,
+ 24688 - 19968: 0xFDE6,
+ 24709 - 19968: 0xE6ED,
+ 24713 - 19968: 0xE3FA,
+ 24716 - 19968: 0xF0AA,
+ 24717 - 19968: 0xF9D0,
+ 24724 - 19968: 0xFCE2,
+ 24726 - 19968: 0xF8A7,
+ 24730 - 19968: 0xE1E5,
+ 24731 - 19968: 0xEEF9,
+ 24735 - 19968: 0xE7F6,
+ 24736 - 19968: 0xEAED,
+ 24739 - 19968: 0xFCB4,
+ 24740 - 19968: 0xF5C2,
+ 24743 - 19968: 0xD7DC,
+ 24752 - 19968: 0xF0F5,
+ 24754 - 19968: 0xDDE8,
+ 24755 - 19968: 0xD3ED,
+ 24756 - 19968: 0xF5FC,
+ 24758 - 19968: 0xDABF,
+ 24760 - 19968: 0xCCFB,
+ 24764 - 19968: 0xD3FA,
+ 24765 - 19968: 0xF4A4,
+ 24773 - 19968: 0xEFD7,
+ 24775 - 19968: 0xD4C3,
+ 24785 - 19968: 0xFBE3,
+ 24794 - 19968: 0xFBED,
+ 24796 - 19968: 0xE0AD,
+ 24799 - 19968: 0xEAEE,
+ 24800 - 19968: 0xFBB3,
+ 24801 - 19968: 0xE4C2,
+ 24816 - 19968: 0xF6E7,
+ 24817 - 19968: 0xD2DD,
+ 24819 - 19968: 0xDFCC,
+ 24822 - 19968: 0xFCC9,
+ 24825 - 19968: 0xE5A9,
+ 24826 - 19968: 0xE0F6,
+ 24827 - 19968: 0xF6B3,
+ 24833 - 19968: 0xE1FE,
+ 24838 - 19968: 0xCBF0,
+ 24840 - 19968: 0xEAEF,
+ 24841 - 19968: 0xEAF0,
+ 24845 - 19968: 0xDAC0,
+ 24846 - 19968: 0xF8B4,
+ 24847 - 19968: 0xEBF2,
+ 24853 - 19968: 0xE4C3,
+ 24858 - 19968: 0xE9D7,
+ 24859 - 19968: 0xE4F1,
+ 24863 - 19968: 0xCAEF,
+ 24871 - 19968: 0xCED7,
+ 24880 - 19968: 0xFCCA,
+ 24884 - 19968: 0xF3E1,
+ 24887 - 19968: 0xCBC4,
+ 24892 - 19968: 0xE3E5,
+ 24894 - 19968: 0xCBC5,
+ 24895 - 19968: 0xEAB4,
+ 24898 - 19968: 0xE9BD,
+ 24900 - 19968: 0xD7C9,
+ 24903 - 19968: 0xEBDB,
+ 24904 - 19968: 0xEDB1,
+ 24906 - 19968: 0xCCC3,
+ 24907 - 19968: 0xF7BE,
+ 24908 - 19968: 0xFCCB,
+ 24915 - 19968: 0xF8F4,
+ 24917 - 19968: 0xD9B7,
+ 24920 - 19968: 0xF3D3,
+ 24921 - 19968: 0xF3D4,
+ 24925 - 19968: 0xF7E4,
+ 24927 - 19968: 0xF7D1,
+ 24930 - 19968: 0xD8B7,
+ 24931 - 19968: 0xCEB1,
+ 24932 - 19968: 0xCAC2,
+ 24935 - 19968: 0xFBB4,
+ 24936 - 19968: 0xCBC6,
+ 24939 - 19968: 0xF0F6,
+ 24942 - 19968: 0xD5E7,
+ 24944 - 19968: 0xEAD0,
+ 24950 - 19968: 0xCCD4,
+ 24951 - 19968: 0xCBAF,
+ 24957 - 19968: 0xF4AA,
+ 24958 - 19968: 0xE9AF,
+ 24961 - 19968: 0xF5C3,
+ 24962 - 19968: 0xE9D8,
+ 24970 - 19968: 0xDDE9,
+ 24974 - 19968: 0xF1F3,
+ 24976 - 19968: 0xD5FB,
+ 24977 - 19968: 0xDEBB,
+ 24980 - 19968: 0xF4FB,
+ 24984 - 19968: 0xFDF3,
+ 24985 - 19968: 0xFDF2,
+ 24986 - 19968: 0xF7A6,
+ 24996 - 19968: 0xDDC9,
+ 24999 - 19968: 0xD4D3,
+ 25001 - 19968: 0xCCA8,
+ 25003 - 19968: 0xDAC1,
+ 25004 - 19968: 0xCCD5,
+ 25006 - 19968: 0xD9E4,
+ 25010 - 19968: 0xFACA,
+ 25014 - 19968: 0xE5E3,
+ 25018 - 19968: 0xD3BC,
+ 25022 - 19968: 0xCAF0,
+ 25027 - 19968: 0xD0C4,
+ 25031 - 19968: 0xCAD0,
+ 25032 - 19968: 0xFAAB,
+ 25033 - 19968: 0xEBEB,
+ 25034 - 19968: 0xE7F8,
+ 25035 - 19968: 0xD9E5,
+ 25062 - 19968: 0xD1D7,
+ 25074 - 19968: 0xF3A4,
+ 25078 - 19968: 0xD4FB,
+ 25079 - 19968: 0xFCE3,
+ 25080 - 19968: 0xFAD8,
+ 25082 - 19968: 0xF3D5,
+ 25084 - 19968: 0xCFAB,
+ 25087 - 19968: 0xEBF3,
+ 25088 - 19968: 0xD5FC,
+ 25095 - 19968: 0xD3D4,
+ 25096 - 19968: 0xCDFC,
+ 25098 - 19968: 0xD9E6,
+ 25100 - 19968: 0xE2F9,
+ 25101 - 19968: 0xE2A1,
+ 25102 - 19968: 0xEBD4,
+ 25104 - 19968: 0xE0F7,
+ 25105 - 19968: 0xE4B2,
+ 25106 - 19968: 0xCCFC,
+ 25110 - 19968: 0xFBE4,
+ 25114 - 19968: 0xF4AB,
+ 25119 - 19968: 0xD0BD,
+ 25121 - 19968: 0xCAF1,
+ 25130 - 19968: 0xEFB8,
+ 25134 - 19968: 0xD7C0,
+ 25136 - 19968: 0xEEFA,
+ 25137 - 19968: 0xFDF4,
+ 25140 - 19968: 0xD3E3,
+ 25142 - 19968: 0xFBC2,
+ 25150 - 19968: 0xD5E8,
+ 25151 - 19968: 0xDBAE,
+ 25152 - 19968: 0xE1B6,
+ 25153 - 19968: 0xF8B7,
+ 25159 - 19968: 0xE0BF,
+ 25160 - 19968: 0xFBC3,
+ 25161 - 19968: 0xDDEA,
+ 25163 - 19968: 0xE2A2,
+ 25165 - 19968: 0xEEA6,
+ 25171 - 19968: 0xF6E8,
+ 25176 - 19968: 0xF6F5,
+ 25198 - 19968: 0xDDCA,
+ 25201 - 19968: 0xD0E2,
+ 25206 - 19968: 0xDDA6,
+ 25209 - 19968: 0xDDEB,
+ 25212 - 19968: 0xE4F9,
+ 25215 - 19968: 0xE3AF,
+ 25216 - 19968: 0xD0FC,
+ 25220 - 19968: 0xF4FC,
+ 25225 - 19968: 0xCCBC,
+ 25226 - 19968: 0xF7EA,
+ 25233 - 19968: 0xE5E4,
+ 25234 - 19968: 0xDFF1,
+ 25237 - 19968: 0xF7E1,
+ 25239 - 19968: 0xF9F7,
+ 25240 - 19968: 0xEFB9,
+ 25243 - 19968: 0xF8D8,
+ 25259 - 19968: 0xF9A9,
+ 25265 - 19968: 0xF8D9,
+ 25269 - 19968: 0xEEBD,
+ 25273 - 19968: 0xD8C6,
+ 25276 - 19968: 0xE4E3,
+ 25277 - 19968: 0xF5CE,
+ 25282 - 19968: 0xDDD9,
+ 25287 - 19968: 0xD9E7,
+ 25288 - 19968: 0xD2B9,
+ 25289 - 19968: 0xD5C3,
+ 25292 - 19968: 0xDAE5,
+ 25293 - 19968: 0xDAD0,
+ 25295 - 19968: 0xD1D9,
+ 25296 - 19968: 0xCED8,
+ 25298 - 19968: 0xCBDE,
+ 25299 - 19968: 0xF4AC,
+ 25300 - 19968: 0xDAFB,
+ 25302 - 19968: 0xF6E9,
+ 25303 - 19968: 0xE8F3,
+ 25304 - 19968: 0xCFAC,
+ 25305 - 19968: 0xF0F0,
+ 25307 - 19968: 0xF4FD,
+ 25308 - 19968: 0xDBC8,
+ 25324 - 19968: 0xCEC0,
+ 25325 - 19968: 0xE3D4,
+ 25326 - 19968: 0xD1CF,
+ 25327 - 19968: 0xF1F5,
+ 25329 - 19968: 0xCDF2,
+ 25331 - 19968: 0xCFEB,
+ 25335 - 19968: 0xCDB8,
+ 25342 - 19968: 0xE3A6,
+ 25343 - 19968: 0xD1DA,
+ 25345 - 19968: 0xF2A5,
+ 25351 - 19968: 0xF2A6,
+ 25353 - 19968: 0xE4CE,
+ 25361 - 19968: 0xD3FB,
+ 25387 - 19968: 0xF1A9,
+ 25391 - 19968: 0xF2C9,
+ 25402 - 19968: 0xEFD8,
+ 25403 - 19968: 0xE6C9,
+ 25405 - 19968: 0xD8B8,
+ 25406 - 19968: 0xFAF3,
+ 25417 - 19968: 0xF3B5,
+ 25420 - 19968: 0xF8A4,
+ 25423 - 19968: 0xD1F3,
+ 25424 - 19968: 0xE6C8,
+ 25429 - 19968: 0xF8DA,
+ 25447 - 19968: 0xDCE9,
+ 25448 - 19968: 0xDED7,
+ 25454 - 19968: 0xCBDF,
+ 25458 - 19968: 0xCFEC,
+ 25463 - 19968: 0xF4DF,
+ 25466 - 19968: 0xD1F4,
+ 25467 - 19968: 0xD2BA,
+ 25471 - 19968: 0xDFF2,
+ 25475 - 19968: 0xE1B7,
+ 25480 - 19968: 0xE2A3,
+ 25481 - 19968: 0xD3FC,
+ 25484 - 19968: 0xEDE6,
+ 25490 - 19968: 0xDBC9,
+ 25494 - 19968: 0xE4FA,
+ 25496 - 19968: 0xCFDE,
+ 25499 - 19968: 0xCED0,
+ 25504 - 19968: 0xD5D3,
+ 25505 - 19968: 0xF3F5,
+ 25506 - 19968: 0xF7AE,
+ 25509 - 19968: 0xEFC8,
+ 25511 - 19968: 0xCDF3,
+ 25512 - 19968: 0xF5CF,
+ 25513 - 19968: 0xE5F3,
+ 25514 - 19968: 0xF0C2,
+ 25536 - 19968: 0xCAD1,
+ 25540 - 19968: 0xEAF1,
+ 25542 - 19968: 0xD0A6,
+ 25551 - 19968: 0xD9DA,
+ 25552 - 19968: 0xF0AB,
+ 25558 - 19968: 0xEBE7,
+ 25562 - 19968: 0xE5C0,
+ 25563 - 19968: 0xFCB5,
+ 25569 - 19968: 0xE4C4,
+ 25581 - 19968: 0xCCA9,
+ 25582 - 19968: 0xFDC6,
+ 25588 - 19968: 0xEAB5,
+ 25590 - 19968: 0xE5AA,
+ 25591 - 19968: 0xDFBA,
+ 25613 - 19968: 0xE1DF,
+ 25615 - 19968: 0xDAD1,
+ 25620 - 19968: 0xE1B8,
+ 25622 - 19968: 0xE8F4,
+ 25623 - 19968: 0xD3FD,
+ 25628 - 19968: 0xE2A4,
+ 25634 - 19968: 0xF2CA,
+ 25644 - 19968: 0xDAE6,
+ 25645 - 19968: 0xF7B3,
+ 25658 - 19968: 0xFDCD,
+ 25662 - 19968: 0xF3B6,
+ 25688 - 19968: 0xEED7,
+ 25696 - 19968: 0xF5C4,
+ 25705 - 19968: 0xD8A4,
+ 25711 - 19968: 0xF2A7,
+ 25720 - 19968: 0xD9B8,
+ 25721 - 19968: 0xD9B9,
+ 25722 - 19968: 0xEFC9,
+ 25736 - 19968: 0xD6CE,
+ 25745 - 19968: 0xF7CB,
+ 25746 - 19968: 0xDFAE,
+ 25747 - 19968: 0xE8F5,
+ 25754 - 19968: 0xD2B5,
+ 25758 - 19968: 0xD3D5,
+ 25764 - 19968: 0xF4CC,
+ 25765 - 19968: 0xDAFC,
+ 25771 - 19968: 0xD9E8,
+ 25773 - 19968: 0xF7EB,
+ 25774 - 19968: 0xF5C9,
+ 25776 - 19968: 0xF3BC,
+ 25778 - 19968: 0xDAD2,
+ 25787 - 19968: 0xD3B5,
+ 25793 - 19968: 0xE8B6,
+ 25796 - 19968: 0xD6CF,
+ 25797 - 19968: 0xF4BA,
+ 25799 - 19968: 0xF7C9,
+ 25802 - 19968: 0xCCAA,
+ 25805 - 19968: 0xF0C3,
+ 25806 - 19968: 0xCCD6,
+ 25810 - 19968: 0xD0D3,
+ 25812 - 19968: 0xD3BD,
+ 25816 - 19968: 0xDBFB,
+ 25818 - 19968: 0xCBE0,
+ 25825 - 19968: 0xD3E4,
+ 25826 - 19968: 0xF6F7,
+ 25829 - 19968: 0xD5BA,
+ 25830 - 19968: 0xF3CD,
+ 25831 - 19968: 0xCBE1,
+ 25836 - 19968: 0xEBF4,
+ 25842 - 19968: 0xF4AD,
+ 25844 - 19968: 0xFCAA,
+ 25850 - 19968: 0xF7EC,
+ 25854 - 19968: 0xE8F6,
+ 25856 - 19968: 0xDAE7,
+ 25860 - 19968: 0xF7CC,
+ 25880 - 19968: 0xE5C1,
+ 25885 - 19968: 0xE0EE,
+ 25891 - 19968: 0xD5FD,
+ 25898 - 19968: 0xCEE6,
+ 25899 - 19968: 0xFCAB,
+ 25900 - 19968: 0xD5BB,
+ 25903 - 19968: 0xF2A8,
+ 25910 - 19968: 0xE2A5,
+ 25911 - 19968: 0xCDB9,
+ 25912 - 19968: 0xEAF2,
+ 25913 - 19968: 0xCBC7,
+ 25915 - 19968: 0xCDF4,
+ 25918 - 19968: 0xDBAF,
+ 25919 - 19968: 0xEFD9,
+ 25925 - 19968: 0xCDBA,
+ 25928 - 19968: 0xFCF9,
+ 25933 - 19968: 0xDFF3,
+ 25934 - 19968: 0xCEE7,
+ 25935 - 19968: 0xDAC2,
+ 25937 - 19968: 0xCFAD,
+ 25942 - 19968: 0xE7F9,
+ 25943 - 19968: 0xF8A8,
+ 25950 - 19968: 0xF3E2,
+ 25954 - 19968: 0xCAF2,
+ 25955 - 19968: 0xDFA4,
+ 25958 - 19968: 0xD4C4,
+ 25964 - 19968: 0xCCD7,
+ 25965 - 19968: 0xE5C2,
+ 25970 - 19968: 0xCDBB,
+ 25972 - 19968: 0xEFDA,
+ 25973 - 19968: 0xEED8,
+ 25975 - 19968: 0xDDA7,
+ 25976 - 19968: 0xE2A6,
+ 25982 - 19968: 0xE0C0,
+ 25986 - 19968: 0xD6B0,
+ 25987 - 19968: 0xF8CA,
+ 25989 - 19968: 0xFCFA,
+ 25991 - 19968: 0xD9FE,
+ 25996 - 19968: 0xDEB0,
+ 26000 - 19968: 0xDDEC,
+ 26001 - 19968: 0xDAE8,
+ 26007 - 19968: 0xD4E0,
+ 26009 - 19968: 0xD6F9,
+ 26011 - 19968: 0xCDD7,
+ 26012 - 19968: 0xDED8,
+ 26015 - 19968: 0xF2F8,
+ 26017 - 19968: 0xE4D6,
+ 26020 - 19968: 0xD0C5,
+ 26021 - 19968: 0xF4AE,
+ 26023 - 19968: 0xDDA8,
+ 26027 - 19968: 0xEDC5,
+ 26028 - 19968: 0xF3D6,
+ 26031 - 19968: 0xDED9,
+ 26032 - 19968: 0xE3E6,
+ 26039 - 19968: 0xD3A8,
+ 26041 - 19968: 0xDBB0,
+ 26044 - 19968: 0xE5DA,
+ 26045 - 19968: 0xE3BF,
+ 26049 - 19968: 0xDBB1,
+ 26053 - 19968: 0xD5E9,
+ 26059 - 19968: 0xE0C1,
+ 26060 - 19968: 0xEFDB,
+ 26063 - 19968: 0xF0E9,
+ 26066 - 19968: 0xD7B2,
+ 26071 - 19968: 0xD0FD,
+ 26080 - 19968: 0xD9E9,
+ 26083 - 19968: 0xD0FE,
+ 26085 - 19968: 0xECED,
+ 26086 - 19968: 0xD3A9,
+ 26088 - 19968: 0xF2A9,
+ 26089 - 19968: 0xF0C4,
+ 26092 - 19968: 0xE2E2,
+ 26093 - 19968: 0xE9EF,
+ 26097 - 19968: 0xF9D1,
+ 26100 - 19968: 0xE9D9,
+ 26106 - 19968: 0xE8DA,
+ 26107 - 19968: 0xDAC3,
+ 26108 - 19968: 0xDAC4,
+ 26109 - 19968: 0xD4C5,
+ 26111 - 19968: 0xE7FA,
+ 26118 - 19968: 0xCDE0,
+ 26119 - 19968: 0xE3B0,
+ 26121 - 19968: 0xDBB2,
+ 26122 - 19968: 0xFBC4,
+ 26124 - 19968: 0xF3E3,
+ 26126 - 19968: 0xD9A5,
+ 26127 - 19968: 0xFBE7,
+ 26128 - 19968: 0xDDCB,
+ 26129 - 19968: 0xD0D4,
+ 26131 - 19968: 0xE6B6,
+ 26132 - 19968: 0xE0AE,
+ 26133 - 19968: 0xFDDA,
+ 26142 - 19968: 0xDCB5,
+ 26143 - 19968: 0xE0F8,
+ 26144 - 19968: 0xE7B1,
+ 26149 - 19968: 0xF5F0,
+ 26151 - 19968: 0xD8DC,
+ 26152 - 19968: 0xEDC6,
+ 26157 - 19968: 0xE1B9,
+ 26159 - 19968: 0xE3C0,
+ 26160 - 19968: 0xF9C0,
+ 26161 - 19968: 0xE9F0,
+ 26164 - 19968: 0xD9DB,
+ 26166 - 19968: 0xF3E4,
+ 26170 - 19968: 0xDCB6,
+ 26171 - 19968: 0xE4E9,
+ 26177 - 19968: 0xF0C5,
+ 26178 - 19968: 0xE3C1,
+ 26179 - 19968: 0xFCCC,
+ 26180 - 19968: 0xFCCD,
+ 26185 - 19968: 0xF2CB,
+ 26187 - 19968: 0xF2CC,
+ 26191 - 19968: 0xE4CF,
+ 26201 - 19968: 0xF1DB,
+ 26203 - 19968: 0xFAD9,
+ 26205 - 19968: 0xF1B8,
+ 26206 - 19968: 0xFDF5,
+ 26207 - 19968: 0xE0F9,
+ 26212 - 19968: 0xE7FB,
+ 26213 - 19968: 0xFCB7,
+ 26214 - 19968: 0xFCE4,
+ 26215 - 19968: 0xFBC5,
+ 26216 - 19968: 0xE3E7,
+ 26217 - 19968: 0xD8B9,
+ 26219 - 19968: 0xF6F8,
+ 26222 - 19968: 0xDCC5,
+ 26223 - 19968: 0xCCD8,
+ 26227 - 19968: 0xE0AF,
+ 26228 - 19968: 0xF4E7,
+ 26230 - 19968: 0xEFDC,
+ 26231 - 19968: 0xCFFC,
+ 26232 - 19968: 0xEFDD,
+ 26234 - 19968: 0xF2AA,
+ 26244 - 19968: 0xFDBE,
+ 26247 - 19968: 0xCAAC,
+ 26248 - 19968: 0xFDBB,
+ 26249 - 19968: 0xFDC7,
+ 26254 - 19968: 0xE7B2,
+ 26256 - 19968: 0xEAD1,
+ 26257 - 19968: 0xDFF4,
+ 26262 - 19968: 0xD1EC,
+ 26263 - 19968: 0xE4DE,
+ 26264 - 19968: 0xE5C3,
+ 26269 - 19968: 0xD9A6,
+ 26272 - 19968: 0xCDBC,
+ 26274 - 19968: 0xF3E5,
+ 26283 - 19968: 0xEDD5,
+ 26286 - 19968: 0xD9BA,
+ 26290 - 19968: 0xEDE7,
+ 26291 - 19968: 0xFBB5,
+ 26292 - 19968: 0xF8EC,
+ 26297 - 19968: 0xE0E7,
+ 26299 - 19968: 0xCCD9,
+ 26302 - 19968: 0xD4C6,
+ 26308 - 19968: 0xE7A5,
+ 26310 - 19968: 0xD5F5,
+ 26311 - 19968: 0xD3BE,
+ 26313 - 19968: 0xFCFB,
+ 26326 - 19968: 0xE4F2,
+ 26329 - 19968: 0xDFF5,
+ 26332 - 19968: 0xE8F8,
+ 26333 - 19968: 0xF8ED,
+ 26336 - 19968: 0xCEC7,
+ 26342 - 19968: 0xFDF6,
+ 26352 - 19968: 0xE8D8,
+ 26354 - 19968: 0xCDD8,
+ 26355 - 19968: 0xE7D6,
+ 26356 - 19968: 0xCCDA,
+ 26359 - 19968: 0xCAE3,
+ 26360 - 19968: 0xDFF6,
+ 26361 - 19968: 0xF0C7,
+ 26362 - 19968: 0xF0C6,
+ 26364 - 19968: 0xD8BA,
+ 26366 - 19968: 0xF1F4,
+ 26367 - 19968: 0xF4F0,
+ 26368 - 19968: 0xF5CC,
+ 26371 - 19968: 0xFCE5,
+ 26376 - 19968: 0xEAC5,
+ 26377 - 19968: 0xEAF3,
+ 26379 - 19968: 0xDDDB,
+ 26381 - 19968: 0xDCD7,
+ 26388 - 19968: 0xDEFD,
+ 26389 - 19968: 0xF2F9,
+ 26391 - 19968: 0xD5C7,
+ 26395 - 19968: 0xD8D0,
+ 26397 - 19968: 0xF0C8,
+ 26398 - 19968: 0xD1A1,
+ 26399 - 19968: 0xD1A2,
+ 26406 - 19968: 0xD9D4,
+ 26407 - 19968: 0xD6E8,
+ 26408 - 19968: 0xD9CA,
+ 26410 - 19968: 0xDAB1,
+ 26411 - 19968: 0xD8C7,
+ 26412 - 19968: 0xDCE2,
+ 26413 - 19968: 0xF3CE,
+ 26414 - 19968: 0xF5F4,
+ 26417 - 19968: 0xF1B9,
+ 26420 - 19968: 0xDAD3,
+ 26422 - 19968: 0xF6EA,
+ 26426 - 19968: 0xCFF5,
+ 26429 - 19968: 0xFDAE,
+ 26438 - 19968: 0xCAD2,
+ 26441 - 19968: 0xDFB4,
+ 26446 - 19968: 0xD7DD,
+ 26447 - 19968: 0xFABA,
+ 26448 - 19968: 0xEEA7,
+ 26449 - 19968: 0xF5BD,
+ 26451 - 19968: 0xF8F5,
+ 26454 - 19968: 0xEDE8,
+ 26460 - 19968: 0xD4E1,
+ 26462 - 19968: 0xD1A3,
+ 26463 - 19968: 0xE1D6,
+ 26477 - 19968: 0xF9F8,
+ 26479 - 19968: 0xDBCA,
+ 26480 - 19968: 0xCBF9,
+ 26481 - 19968: 0xD4D4,
+ 26483 - 19968: 0xD9DC,
+ 26485 - 19968: 0xEEBE,
+ 26487 - 19968: 0xF7ED,
+ 26491 - 19968: 0xD2EE,
+ 26494 - 19968: 0xE1E6,
+ 26495 - 19968: 0xF7F9,
+ 26503 - 19968: 0xDDED,
+ 26505 - 19968: 0xE8DB,
+ 26507 - 19968: 0xDBB3,
+ 26511 - 19968: 0xD1F7,
+ 26512 - 19968: 0xE0B0,
+ 26515 - 19968: 0xD4E2,
+ 26517 - 19968: 0xF6D7,
+ 26519 - 19968: 0xD7F9,
+ 26522 - 19968: 0xD8DD,
+ 26524 - 19968: 0xCDFD,
+ 26525 - 19968: 0xF2AB,
+ 26543 - 19968: 0xCDBD,
+ 26544 - 19968: 0xF8C2,
+ 26547 - 19968: 0xF2AC,
+ 26550 - 19968: 0xCAAD,
+ 26551 - 19968: 0xCAAE,
+ 26552 - 19968: 0xCFAE,
+ 26558 - 19968: 0xE3C2,
+ 26564 - 19968: 0xDCB7,
+ 26575 - 19968: 0xDBDA,
+ 26576 - 19968: 0xD9BB,
+ 26577 - 19968: 0xCAF3,
+ 26578 - 19968: 0xF6D3,
+ 26579 - 19968: 0xE6F8,
+ 26580 - 19968: 0xEAF5,
+ 26586 - 19968: 0xEAF6,
+ 26589 - 19968: 0xF6F9,
+ 26601 - 19968: 0xCFAF,
+ 26604 - 19968: 0xCAD3,
+ 26607 - 19968: 0xCAAF,
+ 26608 - 19968: 0xD2B0,
+ 26609 - 19968: 0xF1BA,
+ 26611 - 19968: 0xD7B3,
+ 26612 - 19968: 0xE3C3,
+ 26613 - 19968: 0xF3FD,
+ 26614 - 19968: 0xDEDA,
+ 26619 - 19968: 0xDEDB,
+ 26622 - 19968: 0xEFDE,
+ 26642 - 19968: 0xE2E3,
+ 26643 - 19968: 0xEEFB,
+ 26646 - 19968: 0xDFF7,
+ 26647 - 19968: 0xD7CA,
+ 26657 - 19968: 0xCEE8,
+ 26658 - 19968: 0xDBDB,
+ 26666 - 19968: 0xF1BB,
+ 26671 - 19968: 0xE9F1,
+ 26680 - 19968: 0xFAB7,
+ 26681 - 19968: 0xD0C6,
+ 26684 - 19968: 0xCCAB,
+ 26685 - 19968: 0xEEA8,
+ 26688 - 19968: 0xCBFA,
+ 26689 - 19968: 0xF9F9,
+ 26690 - 19968: 0xCCFD,
+ 26691 - 19968: 0xD3FE,
+ 26696 - 19968: 0xE4D0,
+ 26702 - 19968: 0xF2EE,
+ 26704 - 19968: 0xD4D5,
+ 26705 - 19968: 0xDFCD,
+ 26707 - 19968: 0xFCB8,
+ 26708 - 19968: 0xD1D0,
+ 26733 - 19968: 0xF2CD,
+ 26742 - 19968: 0xF7D2,
+ 26751 - 19968: 0xCAD4,
+ 26753 - 19968: 0xD5D9,
+ 26757 - 19968: 0xD8DE,
+ 26767 - 19968: 0xCDD9,
+ 26771 - 19968: 0xEEA9,
+ 26772 - 19968: 0xF6BC,
+ 26775 - 19968: 0xCCDB,
+ 26781 - 19968: 0xF0C9,
+ 26783 - 19968: 0xFCFC,
+ 26785 - 19968: 0xE8C9,
+ 26786 - 19968: 0xF4FE,
+ 26791 - 19968: 0xE7FC,
+ 26792 - 19968: 0xD7DE,
+ 26797 - 19968: 0xDEDC,
+ 26799 - 19968: 0xF0AC,
+ 26800 - 19968: 0xCCFE,
+ 26801 - 19968: 0xCDE1,
+ 26803 - 19968: 0xE1BA,
+ 26805 - 19968: 0xDBEF,
+ 26806 - 19968: 0xDAB2,
+ 26820 - 19968: 0xD1A5,
+ 26821 - 19968: 0xDCB8,
+ 26825 - 19968: 0xD8F6,
+ 26827 - 19968: 0xD1A4,
+ 26829 - 19968: 0xCDE2,
+ 26834 - 19968: 0xDCEA,
+ 26837 - 19968: 0xF0F7,
+ 26839 - 19968: 0xF0CA,
+ 26840 - 19968: 0xD0BE,
+ 26842 - 19968: 0xDDDC,
+ 26847 - 19968: 0xD4D6,
+ 26848 - 19968: 0xD3D6,
+ 26855 - 19968: 0xEDD0,
+ 26856 - 19968: 0xCDA1,
+ 26862 - 19968: 0xDFB5,
+ 26866 - 19968: 0xDFF8,
+ 26873 - 19968: 0xD4A1,
+ 26874 - 19968: 0xCEB2,
+ 26880 - 19968: 0xE8CA,
+ 26885 - 19968: 0xEBF5,
+ 26893 - 19968: 0xE3D5,
+ 26894 - 19968: 0xF5D0,
+ 26898 - 19968: 0xF5A1,
+ 26919 - 19968: 0xD9A7,
+ 26928 - 19968: 0xE5AB,
+ 26941 - 19968: 0xE6CB,
+ 26943 - 19968: 0xF5F1,
+ 26954 - 19968: 0xE5C5,
+ 26963 - 19968: 0xF9A3,
+ 26964 - 19968: 0xE0DB,
+ 26965 - 19968: 0xF6EB,
+ 26967 - 19968: 0xCBF1,
+ 26969 - 19968: 0xD9EA,
+ 26970 - 19968: 0xF5A2,
+ 26974 - 19968: 0xD7D1,
+ 26976 - 19968: 0xD1F8,
+ 26977 - 19968: 0xEAF8,
+ 26978 - 19968: 0xEAF9,
+ 26979 - 19968: 0xDAB3,
+ 26984 - 19968: 0xEFDF,
+ 26987 - 19968: 0xF1EF,
+ 26989 - 19968: 0xE5F6,
+ 26990 - 19968: 0xEEBF,
+ 26991 - 19968: 0xE2E4,
+ 26997 - 19968: 0xD0BF,
+ 26999 - 19968: 0xFAAC,
+ 27000 - 19968: 0xF5D1,
+ 27001 - 19968: 0xE7B3,
+ 27029 - 19968: 0xE9BE,
+ 27035 - 19968: 0xF2CE,
+ 27036 - 19968: 0xDBB4,
+ 27045 - 19968: 0xFCCE,
+ 27047 - 19968: 0xDDEE,
+ 27054 - 19968: 0xE7B4,
+ 27060 - 19968: 0xD7B4,
+ 27067 - 19968: 0xF7B4,
+ 27073 - 19968: 0xCDBE,
+ 27075 - 19968: 0xDAE9,
+ 27083 - 19968: 0xCFB0,
+ 27084 - 19968: 0xF7D9,
+ 27085 - 19968: 0xF3E6,
+ 27088 - 19968: 0xCED9,
+ 27112 - 19968: 0xCEAA,
+ 27114 - 19968: 0xCBC8,
+ 27131 - 19968: 0xD0A7,
+ 27133 - 19968: 0xF0CB,
+ 27135 - 19968: 0xD0C7,
+ 27138 - 19968: 0xE4C5,
+ 27146 - 19968: 0xDBE0,
+ 27153 - 19968: 0xD5DA,
+ 27155 - 19968: 0xD7A7,
+ 27159 - 19968: 0xEEC0,
+ 27161 - 19968: 0xF8F6,
+ 27166 - 19968: 0xF5D2,
+ 27167 - 19968: 0xEDE9,
+ 27169 - 19968: 0xD9BC,
+ 27171 - 19968: 0xE5C6,
+ 27189 - 19968: 0xF5A3,
+ 27192 - 19968: 0xDAD4,
+ 27193 - 19968: 0xE2A7,
+ 27194 - 19968: 0xFBFC,
+ 27197 - 19968: 0xF1DC,
+ 27204 - 19968: 0xCAF4,
+ 27208 - 19968: 0xE8FA,
+ 27211 - 19968: 0xCEE9,
+ 27218 - 19968: 0xE9F8,
+ 27219 - 19968: 0xE2E5,
+ 27224 - 19968: 0xD0B9,
+ 27225 - 19968: 0xD4F2,
+ 27231 - 19968: 0xD1A6,
+ 27233 - 19968: 0xDFCE,
+ 27243 - 19968: 0xFCF4,
+ 27264 - 19968: 0xD3AA,
+ 27268 - 19968: 0xCCAC,
+ 27273 - 19968: 0xEFE0,
+ 27277 - 19968: 0xE5E5,
+ 27278 - 19968: 0xD0D5,
+ 27287 - 19968: 0xDBFC,
+ 27292 - 19968: 0xFCE6,
+ 27298 - 19968: 0xCBFE,
+ 27299 - 19968: 0xEDEA,
+ 27315 - 19968: 0xDEB1,
+ 27323 - 19968: 0xF9E3,
+ 27330 - 19968: 0xD4A2,
+ 27331 - 19968: 0xCFF6,
+ 27347 - 19968: 0xD6D0,
+ 27354 - 19968: 0xD5EA,
+ 27355 - 19968: 0xF1EE,
+ 27382 - 19968: 0xFACB,
+ 27387 - 19968: 0xE5A1,
+ 27396 - 19968: 0xD5B1,
+ 27402 - 19968: 0xCFED,
+ 27404 - 19968: 0xEDEB,
+ 27410 - 19968: 0xD5B2,
+ 27414 - 19968: 0xD5BC,
+ 27424 - 19968: 0xFDE2,
+ 27425 - 19968: 0xF3AD,
+ 27427 - 19968: 0xFDDB,
+ 27442 - 19968: 0xE9B0,
+ 27450 - 19968: 0xD1A7,
+ 27453 - 19968: 0xFDE3,
+ 27454 - 19968: 0xCEB3,
+ 27462 - 19968: 0xFDE4,
+ 27463 - 19968: 0xFACE,
+ 27468 - 19968: 0xCAB0,
+ 27470 - 19968: 0xF7A7,
+ 27472 - 19968: 0xCFB1,
+ 27487 - 19968: 0xE6A2,
+ 27489 - 19968: 0xFCB6,
+ 27490 - 19968: 0xF2AD,
+ 27491 - 19968: 0xEFE1,
+ 27492 - 19968: 0xF3AE,
+ 27493 - 19968: 0xDCC6,
+ 27494 - 19968: 0xD9EB,
+ 27498 - 19968: 0xE8E0,
+ 27506 - 19968: 0xE1A8,
+ 27511 - 19968: 0xD5F6,
+ 27512 - 19968: 0xCFFD,
+ 27515 - 19968: 0xDEDD,
+ 27519 - 19968: 0xD9D1,
+ 27523 - 19968: 0xE4EA,
+ 27524 - 19968: 0xF2CF,
+ 27526 - 19968: 0xF7BF,
+ 27529 - 19968: 0xE2E6,
+ 27530 - 19968: 0xE2A8,
+ 27542 - 19968: 0xE3D6,
+ 27544 - 19968: 0xEDD1,
+ 27550 - 19968: 0xE9F9,
+ 27566 - 19968: 0xD6B1,
+ 27567 - 19968: 0xDEB2,
+ 27570 - 19968: 0xE0E8,
+ 27573 - 19968: 0xD3AB,
+ 27575 - 19968: 0xEBDC,
+ 27578 - 19968: 0xDFAF,
+ 27580 - 19968: 0xCAC3,
+ 27583 - 19968: 0xEEFC,
+ 27585 - 19968: 0xFDC3,
+ 27589 - 19968: 0xEBF6,
+ 27590 - 19968: 0xCFB2,
+ 27595 - 19968: 0xD9EC,
+ 27597 - 19968: 0xD9BD,
+ 27599 - 19968: 0xD8DF,
+ 27602 - 19968: 0xD4B8,
+ 27603 - 19968: 0xEBBE,
+ 27604 - 19968: 0xDDEF,
+ 27606 - 19968: 0xDDF0,
+ 27607 - 19968: 0xDDF1,
+ 27608 - 19968: 0xDDF2,
+ 27611 - 19968: 0xD9BE,
+ 27627 - 19968: 0xFBC6,
+ 27628 - 19968: 0xCFB3,
+ 27656 - 19968: 0xEEFD,
+ 27663 - 19968: 0xE4AB,
+ 27665 - 19968: 0xDAC5,
+ 27667 - 19968: 0xD8EC,
+ 27683 - 19968: 0xD1A8,
+ 27700 - 19968: 0xE2A9,
+ 27703 - 19968: 0xDEBC,
+ 27704 - 19968: 0xE7B5,
+ 27710 - 19968: 0xDBF0,
+ 27712 - 19968: 0xEFE2,
+ 27713 - 19968: 0xF1F0,
+ 27714 - 19968: 0xCFB4,
+ 27726 - 19968: 0xDBF1,
+ 27728 - 19968: 0xE0B1,
+ 27733 - 19968: 0xDFA5,
+ 27735 - 19968: 0xF9D2,
+ 27738 - 19968: 0xE7FD,
+ 27741 - 19968: 0xE6A3,
+ 27742 - 19968: 0xFBF1,
+ 27743 - 19968: 0xCBB0,
+ 27744 - 19968: 0xF2AE,
+ 27752 - 19968: 0xCDE7,
+ 27754 - 19968: 0xE8DC,
+ 27757 - 19968: 0xE7D7,
+ 27760 - 19968: 0xF7C0,
+ 27762 - 19968: 0xD0E3,
+ 27766 - 19968: 0xDAA1,
+ 27770 - 19968: 0xCCBD,
+ 27773 - 19968: 0xD1A9,
+ 27774 - 19968: 0xDDCC,
+ 27777 - 19968: 0xE3FE,
+ 27778 - 19968: 0xD1AA,
+ 27779 - 19968: 0xE8AA,
+ 27781 - 19968: 0xEAB6,
+ 27782 - 19968: 0xF9FA,
+ 27783 - 19968: 0xE6CC,
+ 27784 - 19968: 0xF6D8,
+ 27788 - 19968: 0xD4C7,
+ 27792 - 19968: 0xD9CB,
+ 27794 - 19968: 0xD9D2,
+ 27795 - 19968: 0xD3CB,
+ 27796 - 19968: 0xD8F7,
+ 27797 - 19968: 0xDAA9,
+ 27798 - 19968: 0xF5F8,
+ 27801 - 19968: 0xDEDE,
+ 27802 - 19968: 0xF2AF,
+ 27803 - 19968: 0xF8A9,
+ 27819 - 19968: 0xD8C8,
+ 27822 - 19968: 0xEEC1,
+ 27827 - 19968: 0xF9C1,
+ 27832 - 19968: 0xDDF3,
+ 27833 - 19968: 0xEAFA,
+ 27835 - 19968: 0xF6BD,
+ 27836 - 19968: 0xE1BB,
+ 27837 - 19968: 0xCDBF,
+ 27838 - 19968: 0xF4D4,
+ 27839 - 19968: 0xE6CD,
+ 27841 - 19968: 0xFCCF,
+ 27842 - 19968: 0xFBA2,
+ 27844 - 19968: 0xE0DC,
+ 27849 - 19968: 0xF4BB,
+ 27850 - 19968: 0xDAD5,
+ 27852 - 19968: 0xF9B2,
+ 27859 - 19968: 0xFBF2,
+ 27861 - 19968: 0xDBF6,
+ 27863 - 19968: 0xDEDF,
+ 27867 - 19968: 0xDBF2,
+ 27873 - 19968: 0xF8DC,
+ 27874 - 19968: 0xF7EE,
+ 27875 - 19968: 0xEBE8,
+ 27877 - 19968: 0xD2FA,
+ 27880 - 19968: 0xF1BC,
+ 27883 - 19968: 0xFADA,
+ 27886 - 19968: 0xDAEA,
+ 27887 - 19968: 0xDAC6,
+ 27888 - 19968: 0xF7C1,
+ 27891 - 19968: 0xE7B6,
+ 27915 - 19968: 0xE5C7,
+ 27916 - 19968: 0xD6AC,
+ 27921 - 19968: 0xDCC7,
+ 27927 - 19968: 0xE1A9,
+ 27929 - 19968: 0xE2AA,
+ 27931 - 19968: 0xD5A6,
+ 27934 - 19968: 0xD4D7,
+ 27941 - 19968: 0xF2D0,
+ 27943 - 19968: 0xEAFB,
+ 27945 - 19968: 0xE0DD,
+ 27946 - 19968: 0xFBF3,
+ 27954 - 19968: 0xF1BD,
+ 27957 - 19968: 0xE2E7,
+ 27958 - 19968: 0xFDD7,
+ 27960 - 19968: 0xCEC8,
+ 27961 - 19968: 0xEAB7,
+ 27963 - 19968: 0xFCC0,
+ 27965 - 19968: 0xFDE7,
+ 27966 - 19968: 0xF7EF,
+ 27969 - 19968: 0xD7B5,
+ 27993 - 19968: 0xEFBA,
+ 27994 - 19968: 0xF1DD,
+ 27996 - 19968: 0xDEB3,
+ 28003 - 19968: 0xE8CB,
+ 28006 - 19968: 0xF8DD,
+ 28009 - 19968: 0xFBC7,
+ 28010 - 19968: 0xD5C8,
+ 28012 - 19968: 0xD7DF,
+ 28014 - 19968: 0xDDA9,
+ 28020 - 19968: 0xE9B1,
+ 28023 - 19968: 0xFAAD,
+ 28024 - 19968: 0xF6D9,
+ 28025 - 19968: 0xFAF4,
+ 28031 - 19968: 0xF8AA,
+ 28037 - 19968: 0xE6EE,
+ 28039 - 19968: 0xCCDC,
+ 28040 - 19968: 0xE1BC,
+ 28041 - 19968: 0xE0EF,
+ 28044 - 19968: 0xE9BF,
+ 28045 - 19968: 0xFCFD,
+ 28046 - 19968: 0xE6CE,
+ 28049 - 19968: 0xE1D7,
+ 28051 - 19968: 0xE6CF,
+ 28053 - 19968: 0xF4F1,
+ 28079 - 19968: 0xE4F3,
+ 28082 - 19968: 0xE4FB,
+ 28085 - 19968: 0xF9E4,
+ 28096 - 19968: 0xEFE3,
+ 28099 - 19968: 0xCFEE,
+ 28100 - 19968: 0xF6BE,
+ 28101 - 19968: 0xE0B2,
+ 28102 - 19968: 0xFCFE,
+ 28103 - 19968: 0xD1AB,
+ 28107 - 19968: 0xD7FA,
+ 28111 - 19968: 0xFBC8,
+ 28113 - 19968: 0xE2D7,
+ 28120 - 19968: 0xD4A3,
+ 28121 - 19968: 0xF0F8,
+ 28122 - 19968: 0xD7A8,
+ 28126 - 19968: 0xE1E7,
+ 28129 - 19968: 0xD3BF,
+ 28136 - 19968: 0xEFE4,
+ 28138 - 19968: 0xD7C5,
+ 28139 - 19968: 0xEBE2,
+ 28142 - 19968: 0xFCE7,
+ 28145 - 19968: 0xE4A2,
+ 28147 - 19968: 0xE2E8,
+ 28149 - 19968: 0xE6D0,
+ 28151 - 19968: 0xFBE8,
+ 28152 - 19968: 0xF4E8,
+ 28153 - 19968: 0xE5F4,
+ 28154 - 19968: 0xF4BC,
+ 28155 - 19968: 0xF4D5,
+ 28183 - 19968: 0xDFB6,
+ 28185 - 19968: 0xFCB9,
+ 28186 - 19968: 0xEEC2,
+ 28187 - 19968: 0xCAF5,
+ 28191 - 19968: 0xEFE5,
+ 28192 - 19968: 0xCBE2,
+ 28193 - 19968: 0xD4A4,
+ 28195 - 19968: 0xDEE0,
+ 28196 - 19968: 0xDAFD,
+ 28197 - 19968: 0xE4C6,
+ 28198 - 19968: 0xE8BE,
+ 28203 - 19968: 0xE0DE,
+ 28204 - 19968: 0xF6B4,
+ 28205 - 19968: 0xEAD2,
+ 28207 - 19968: 0xF9FB,
+ 28210 - 19968: 0xE0C2,
+ 28212 - 19968: 0xCAE4,
+ 28214 - 19968: 0xE7B7,
+ 28216 - 19968: 0xEAFD,
+ 28218 - 19968: 0xD9DD,
+ 28220 - 19968: 0xDAB4,
+ 28221 - 19968: 0xEEAA,
+ 28222 - 19968: 0xFBE9,
+ 28227 - 19968: 0xDBCB,
+ 28228 - 19968: 0xDAB5,
+ 28234 - 19968: 0xF1BE,
+ 28237 - 19968: 0xD3AC,
+ 28246 - 19968: 0xFBC9,
+ 28248 - 19968: 0xDFCF,
+ 28251 - 19968: 0xD3C0,
+ 28252 - 19968: 0xE3D7,
+ 28254 - 19968: 0xEFE6,
+ 28255 - 19968: 0xFCD0,
+ 28263 - 19968: 0xE9C0,
+ 28267 - 19968: 0xF5D3,
+ 28270 - 19968: 0xECDC,
+ 28271 - 19968: 0xF7B7,
+ 28274 - 19968: 0xEAB8,
+ 28275 - 19968: 0xD1F9,
+ 28282 - 19968: 0xDCC8,
+ 28304 - 19968: 0xEAB9,
+ 28310 - 19968: 0xF1DE,
+ 28316 - 19968: 0xD7B6,
+ 28317 - 19968: 0xCFB5,
+ 28319 - 19968: 0xD9A8,
+ 28322 - 19968: 0xECEE,
+ 28325 - 19968: 0xDDAA,
+ 28330 - 19968: 0xCDA2,
+ 28331 - 19968: 0xE8AE,
+ 28335 - 19968: 0xE1BD,
+ 28337 - 19968: 0xF2D1,
+ 28342 - 19968: 0xE9C1,
+ 28346 - 19968: 0xD2FC,
+ 28354 - 19968: 0xDBB5,
+ 28356 - 19968: 0xF3E7,
+ 28357 - 19968: 0xD8FE,
+ 28361 - 19968: 0xFCD1,
+ 28363 - 19968: 0xEDB2,
+ 28364 - 19968: 0xF4AF,
+ 28366 - 19968: 0xFBA3,
+ 28369 - 19968: 0xFCC1,
+ 28371 - 19968: 0xEEAB,
+ 28372 - 19968: 0xD4A5,
+ 28399 - 19968: 0xF4F2,
+ 28404 - 19968: 0xEED9,
+ 28408 - 19968: 0xFBCA,
+ 28414 - 19968: 0xCDE3,
+ 28415 - 19968: 0xD8BB,
+ 28417 - 19968: 0xE5DB,
+ 28418 - 19968: 0xF8F7,
+ 28422 - 19968: 0xF6D4,
+ 28431 - 19968: 0xD7A9,
+ 28433 - 19968: 0xCBC9,
+ 28436 - 19968: 0xE6D1,
+ 28437 - 19968: 0xF0CC,
+ 28448 - 19968: 0xD8AE,
+ 28450 - 19968: 0xF9D3,
+ 28451 - 19968: 0xD5FE,
+ 28459 - 19968: 0xD8BC,
+ 28460 - 19968: 0xF2B0,
+ 28465 - 19968: 0xE2AB,
+ 28466 - 19968: 0xF3E8,
+ 28472 - 19968: 0xEFC2,
+ 28479 - 19968: 0xEDEC,
+ 28481 - 19968: 0xE7B8,
+ 28497 - 19968: 0xDAFE,
+ 28500 - 19968: 0xCCBE,
+ 28503 - 19968: 0xF2FC,
+ 28504 - 19968: 0xDAEB,
+ 28506 - 19968: 0xE2D8,
+ 28507 - 19968: 0xEDD6,
+ 28510 - 19968: 0xD6D1,
+ 28511 - 19968: 0xE0B3,
+ 28514 - 19968: 0xFCD2,
+ 28516 - 19968: 0xEBC8,
+ 28525 - 19968: 0xD3C1,
+ 28526 - 19968: 0xF0CD,
+ 28528 - 19968: 0xCFF7,
+ 28538 - 19968: 0xEDD2,
+ 28540 - 19968: 0xD4D8,
+ 28541 - 19968: 0xDCC9,
+ 28542 - 19968: 0xD7F1,
+ 28545 - 19968: 0xDFBB,
+ 28548 - 19968: 0xF3A5,
+ 28552 - 19968: 0xF4CD,
+ 28557 - 19968: 0xF1BF,
+ 28558 - 19968: 0xF8B1,
+ 28560 - 19968: 0xE9FA,
+ 28564 - 19968: 0xFBCB,
+ 28567 - 19968: 0xCAD5,
+ 28579 - 19968: 0xF9D4,
+ 28580 - 19968: 0xF7CA,
+ 28583 - 19968: 0xD6C8,
+ 28590 - 19968: 0xFCE8,
+ 28591 - 19968: 0xF3BD,
+ 28593 - 19968: 0xEEFE,
+ 28595 - 19968: 0xE7FE,
+ 28601 - 19968: 0xD3C2,
+ 28606 - 19968: 0xD3B6,
+ 28608 - 19968: 0xCCAD,
+ 28609 - 19968: 0xF6FA,
+ 28610 - 19968: 0xD6B2,
+ 28611 - 19968: 0xD2D8,
+ 28618 - 19968: 0xE7D8,
+ 28629 - 19968: 0xE3A5,
+ 28634 - 19968: 0xE7B9,
+ 28639 - 19968: 0xF0AD,
+ 28640 - 19968: 0xFBCC,
+ 28641 - 19968: 0xEBA1,
+ 28644 - 19968: 0xD4A6,
+ 28649 - 19968: 0xFBCD,
+ 28651 - 19968: 0xD5BD,
+ 28652 - 19968: 0xF1DF,
+ 28655 - 19968: 0xF6FB,
+ 28657 - 19968: 0xDEB4,
+ 28670 - 19968: 0xD5EB,
+ 28673 - 19968: 0xE5C8,
+ 28677 - 19968: 0xFBA4,
+ 28678 - 19968: 0xD4B9,
+ 28681 - 19968: 0xDEE1,
+ 28683 - 19968: 0xE4A3,
+ 28687 - 19968: 0xD7B7,
+ 28689 - 19968: 0xF8EE,
+ 28693 - 19968: 0xDEB5,
+ 28696 - 19968: 0xD6D2,
+ 28698 - 19968: 0xF9D5,
+ 28699 - 19968: 0xE7BA,
+ 28700 - 19968: 0xEBD5,
+ 28701 - 19968: 0xD5F7,
+ 28702 - 19968: 0xEFE7,
+ 28703 - 19968: 0xE1BE,
+ 28707 - 19968: 0xFAAE,
+ 28711 - 19968: 0xD6E9,
+ 28712 - 19968: 0xD6EE,
+ 28719 - 19968: 0xE7BB,
+ 28727 - 19968: 0xECCB,
+ 28734 - 19968: 0xD5B3,
+ 28748 - 19968: 0xCEB4,
+ 28752 - 19968: 0xFBA5,
+ 28753 - 19968: 0xE1EE,
+ 28760 - 19968: 0xF7A8,
+ 28765 - 19968: 0xFBCE,
+ 28771 - 19968: 0xD8BD,
+ 28779 - 19968: 0xFBFD,
+ 28784 - 19968: 0xFCE9,
+ 28792 - 19968: 0xCFB6,
+ 28796 - 19968: 0xEDC7,
+ 28797 - 19968: 0xEEAC,
+ 28805 - 19968: 0xCCDD,
+ 28810 - 19968: 0xF6A7,
+ 28814 - 19968: 0xE6FA,
+ 28818 - 19968: 0xF5A4,
+ 28824 - 19968: 0xFDDC,
+ 28825 - 19968: 0xEDB3,
+ 28826 - 19968: 0xCEC9,
+ 28833 - 19968: 0xEFE8,
+ 28836 - 19968: 0xE1BF,
+ 28843 - 19968: 0xFADB,
+ 28844 - 19968: 0xCBE3,
+ 28845 - 19968: 0xF7A9,
+ 28847 - 19968: 0xFBA6,
+ 28851 - 19968: 0xDCB9,
+ 28855 - 19968: 0xF1C0,
+ 28856 - 19968: 0xEDC8,
+ 28857 - 19968: 0xEFC3,
+ 28872 - 19968: 0xD6AD,
+ 28875 - 19968: 0xFDCE,
+ 28879 - 19968: 0xE8A1,
+ 28888 - 19968: 0xFBF4,
+ 28889 - 19968: 0xD5A7,
+ 28893 - 19968: 0xF1F6,
+ 28895 - 19968: 0xE6D3,
+ 28913 - 19968: 0xCCDE,
+ 28921 - 19968: 0xF8B2,
+ 28925 - 19968: 0xDCEB,
+ 28932 - 19968: 0xFDB6,
+ 28937 - 19968: 0xE5EA,
+ 28940 - 19968: 0xF1E0,
+ 28953 - 19968: 0xDBCC,
+ 28954 - 19968: 0xDDCD,
+ 28958 - 19968: 0xD4C8,
+ 28961 - 19968: 0xD9ED,
+ 28966 - 19968: 0xF5A5,
+ 28976 - 19968: 0xE6FB,
+ 28982 - 19968: 0xE6D4,
+ 28999 - 19968: 0xFDC8,
+ 29001 - 19968: 0xD6A1,
+ 29002 - 19968: 0xFDBF,
+ 29004 - 19968: 0xFCD3,
+ 29006 - 19968: 0xEFA1,
+ 29008 - 19968: 0xE7BC,
+ 29014 - 19968: 0xD1EE,
+ 29017 - 19968: 0xE6D5,
+ 29020 - 19968: 0xE9F2,
+ 29022 - 19968: 0xDFB0,
+ 29028 - 19968: 0xD8E0,
+ 29029 - 19968: 0xFCBA,
+ 29030 - 19968: 0xFDAF,
+ 29031 - 19968: 0xF0CE,
+ 29033 - 19968: 0xDBE1,
+ 29036 - 19968: 0xE5C9,
+ 29038 - 19968: 0xEDB4,
+ 29053 - 19968: 0xE0C3,
+ 29060 - 19968: 0xE3D8,
+ 29065 - 19968: 0xE9FB,
+ 29066 - 19968: 0xEAA8,
+ 29071 - 19968: 0xFDB7,
+ 29074 - 19968: 0xFBA7,
+ 29076 - 19968: 0xE9C2,
+ 29081 - 19968: 0xFDF7,
+ 29087 - 19968: 0xE2D9,
+ 29090 - 19968: 0xDCEC,
+ 29100 - 19968: 0xE8A2,
+ 29105 - 19968: 0xE6F0,
+ 29113 - 19968: 0xFDF8,
+ 29114 - 19968: 0xFDF9,
+ 29118 - 19968: 0xF6BF,
+ 29121 - 19968: 0xE7A7,
+ 29123 - 19968: 0xE6D7,
+ 29128 - 19968: 0xD4F3,
+ 29129 - 19968: 0xD4C9,
+ 29134 - 19968: 0xD6FA,
+ 29136 - 19968: 0xD7F2,
+ 29138 - 19968: 0xE1C0,
+ 29140 - 19968: 0xDBE2,
+ 29141 - 19968: 0xE6D8,
+ 29151 - 19968: 0xE7BD,
+ 29157 - 19968: 0xF0CF,
+ 29158 - 19968: 0xF3BE,
+ 29159 - 19968: 0xE2AC,
+ 29165 - 19968: 0xF5B7,
+ 29166 - 19968: 0xE0F0,
+ 29179 - 19968: 0xFDB8,
+ 29180 - 19968: 0xE3E8,
+ 29182 - 19968: 0xD4A7,
+ 29183 - 19968: 0xE8FC,
+ 29184 - 19968: 0xFAD2,
+ 29190 - 19968: 0xF8EF,
+ 29200 - 19968: 0xD6D3,
+ 29211 - 19968: 0xD5B4,
+ 29226 - 19968: 0xF0D0,
+ 29228 - 19968: 0xF7F0,
+ 29229 - 19968: 0xEEB3,
+ 29232 - 19968: 0xEABA,
+ 29234 - 19968: 0xEAD3,
+ 29237 - 19968: 0xEDC9,
+ 29238 - 19968: 0xDDAB,
+ 29242 - 19968: 0xE5AC,
+ 29243 - 19968: 0xFDA1,
+ 29245 - 19968: 0xDFD0,
+ 29246 - 19968: 0xECB3,
+ 29248 - 19968: 0xDFD1,
+ 29254 - 19968: 0xEDED,
+ 29255 - 19968: 0xF8B8,
+ 29256 - 19968: 0xF7FA,
+ 29260 - 19968: 0xF8AB,
+ 29266 - 19968: 0xF4E0,
+ 29272 - 19968: 0xD4BA,
+ 29273 - 19968: 0xE4B3,
+ 29275 - 19968: 0xE9DA,
+ 29277 - 19968: 0xDEB6,
+ 29279 - 19968: 0xD9BF,
+ 29281 - 19968: 0xD9C0,
+ 29282 - 19968: 0xD6EF,
+ 29287 - 19968: 0xD9CC,
+ 29289 - 19968: 0xDAAA,
+ 29298 - 19968: 0xDFE5,
+ 29305 - 19968: 0xF7E5,
+ 29309 - 19968: 0xCCB2,
+ 29312 - 19968: 0xDFF9,
+ 29313 - 19968: 0xD7E0,
+ 29346 - 19968: 0xD4BB,
+ 29351 - 19968: 0xFDFA,
+ 29356 - 19968: 0xCCB3,
+ 29359 - 19968: 0xDBF3,
+ 29376 - 19968: 0xDFD2,
+ 29378 - 19968: 0xCECA,
+ 29380 - 19968: 0xEEDA,
+ 29390 - 19968: 0xE4E4,
+ 29392 - 19968: 0xFBCF,
+ 29399 - 19968: 0xCFB7,
+ 29401 - 19968: 0xEEC3,
+ 29409 - 19968: 0xCEEA,
+ 29417 - 19968: 0xE2AD,
+ 29432 - 19968: 0xD7E1,
+ 29433 - 19968: 0xFAF5,
+ 29436 - 19968: 0xD5C9,
+ 29437 - 19968: 0xF8AC,
+ 29450 - 19968: 0xE7D9,
+ 29462 - 19968: 0xF3E9,
+ 29467 - 19968: 0xD8ED,
+ 29468 - 19968: 0xE3C4,
+ 29469 - 19968: 0xF0F1,
+ 29477 - 19968: 0xE8E5,
+ 29481 - 19968: 0xE0FA,
+ 29482 - 19968: 0xEEC4,
+ 29483 - 19968: 0xD9DE,
+ 29494 - 19968: 0xEBA2,
+ 29495 - 19968: 0xEBA3,
+ 29502 - 19968: 0xFCC2,
+ 29503 - 19968: 0xEABB,
+ 29508 - 19968: 0xE8AB,
+ 29509 - 19968: 0xDEE2,
+ 29520 - 19968: 0xEDEF,
+ 29522 - 19968: 0xE8A3,
+ 29527 - 19968: 0xCFF1,
+ 29544 - 19968: 0xD4BC,
+ 29546 - 19968: 0xFCEA,
+ 29552 - 19968: 0xE7BE,
+ 29554 - 19968: 0xFCF2,
+ 29557 - 19968: 0xD6B4,
+ 29560 - 19968: 0xE2AE,
+ 29562 - 19968: 0xD3B7,
+ 29563 - 19968: 0xFACC,
+ 29572 - 19968: 0xFADC,
+ 29574 - 19968: 0xEDB5,
+ 29575 - 19968: 0xE1E3,
+ 29577 - 19968: 0xE8AC,
+ 29579 - 19968: 0xE8DD,
+ 29582 - 19968: 0xEFE9,
+ 29588 - 19968: 0xF4BD,
+ 29590 - 19968: 0xCFB8,
+ 29591 - 19968: 0xE9DB,
+ 29592 - 19968: 0xD1AC,
+ 29599 - 19968: 0xDAC7,
+ 29607 - 19968: 0xEBC9,
+ 29609 - 19968: 0xE8CC,
+ 29613 - 19968: 0xDEB7,
+ 29618 - 19968: 0xD6BC,
+ 29619 - 19968: 0xD3E5,
+ 29625 - 19968: 0xFADD,
+ 29632 - 19968: 0xDAD6,
+ 29634 - 19968: 0xCAB1,
+ 29641 - 19968: 0xDAC8,
+ 29642 - 19968: 0xDFA6,
+ 29644 - 19968: 0xF9B3,
+ 29645 - 19968: 0xF2D2,
+ 29647 - 19968: 0xCAC4,
+ 29654 - 19968: 0xCECB,
+ 29657 - 19968: 0xCDF5,
+ 29661 - 19968: 0xFDB0,
+ 29662 - 19968: 0xD5A8,
+ 29664 - 19968: 0xF1C1,
+ 29667 - 19968: 0xE2E9,
+ 29668 - 19968: 0xDCCA,
+ 29669 - 19968: 0xECB4,
+ 29670 - 19968: 0xFAC0,
+ 29673 - 19968: 0xFBA8,
+ 29674 - 19968: 0xD0A8,
+ 29677 - 19968: 0xDAEC,
+ 29687 - 19968: 0xD9EE,
+ 29689 - 19968: 0xE0FB,
+ 29693 - 19968: 0xEFEA,
+ 29694 - 19968: 0xFADE,
+ 29697 - 19968: 0xE0C4,
+ 29699 - 19968: 0xCFB9,
+ 29701 - 19968: 0xD5CA,
+ 29702 - 19968: 0xD7E2,
+ 29703 - 19968: 0xE2AF,
+ 29705 - 19968: 0xD7B8,
+ 29715 - 19968: 0xE8CD,
+ 29723 - 19968: 0xF6DA,
+ 29728 - 19968: 0xEFA2,
+ 29729 - 19968: 0xE2DA,
+ 29730 - 19968: 0xF6FC,
+ 29733 - 19968: 0xFBD0,
+ 29734 - 19968: 0xD1AD,
+ 29736 - 19968: 0xCDE4,
+ 29738 - 19968: 0xD1AE,
+ 29739 - 19968: 0xDCED,
+ 29740 - 19968: 0xE8CE,
+ 29742 - 19968: 0xF0F9,
+ 29743 - 19968: 0xCEB5,
+ 29744 - 19968: 0xE6FC,
+ 29747 - 19968: 0xD7FB,
+ 29748 - 19968: 0xD0D6,
+ 29749 - 19968: 0xDDF5,
+ 29750 - 19968: 0xF7F1,
+ 29752 - 19968: 0xF6FD,
+ 29754 - 19968: 0xDBF7,
+ 29759 - 19968: 0xFBEA,
+ 29760 - 19968: 0xE9DC,
+ 29761 - 19968: 0xD9C1,
+ 29763 - 19968: 0xF5F2,
+ 29764 - 19968: 0xE0C5,
+ 29771 - 19968: 0xEAD4,
+ 29781 - 19968: 0xF9C2,
+ 29783 - 19968: 0xEABC,
+ 29785 - 19968: 0xD2C5,
+ 29786 - 19968: 0xFBD1,
+ 29787 - 19968: 0xE7C0,
+ 29788 - 19968: 0xEBA5,
+ 29790 - 19968: 0xDFFA,
+ 29791 - 19968: 0xE3A2,
+ 29792 - 19968: 0xD7B9,
+ 29794 - 19968: 0xE9C3,
+ 29796 - 19968: 0xE8FD,
+ 29797 - 19968: 0xE8AF,
+ 29800 - 19968: 0xF2D3,
+ 29801 - 19968: 0xFBA9,
+ 29802 - 19968: 0xD8A5,
+ 29807 - 19968: 0xD5CB,
+ 29822 - 19968: 0xD0C8,
+ 29826 - 19968: 0xD1AF,
+ 29827 - 19968: 0xD7E3,
+ 29831 - 19968: 0xE0C6,
+ 29833 - 19968: 0xD6A2,
+ 29835 - 19968: 0xEDF0,
+ 29848 - 19968: 0xD7F3,
+ 29852 - 19968: 0xFCD4,
+ 29854 - 19968: 0xDAD7,
+ 29855 - 19968: 0xCCDF,
+ 29857 - 19968: 0xF2D4,
+ 29859 - 19968: 0xD1B0,
+ 29861 - 19968: 0xCCE0,
+ 29863 - 19968: 0xDBFD,
+ 29864 - 19968: 0xF3BF,
+ 29866 - 19968: 0xF0D1,
+ 29872 - 19968: 0xFCBB,
+ 29874 - 19968: 0xE2B0,
+ 29877 - 19968: 0xE6A5,
+ 29881 - 19968: 0xE2DB,
+ 29885 - 19968: 0xDFDE,
+ 29887 - 19968: 0xE0C7,
+ 29894 - 19968: 0xF2EF,
+ 29898 - 19968: 0xCCE1,
+ 29903 - 19968: 0xD6EA,
+ 29908 - 19968: 0xE7C2,
+ 29912 - 19968: 0xCEB6,
+ 29914 - 19968: 0xF3C0,
+ 29916 - 19968: 0xCDFE,
+ 29920 - 19968: 0xFBD2,
+ 29922 - 19968: 0xF8F8,
+ 29923 - 19968: 0xF7FB,
+ 29926 - 19968: 0xE8BF,
+ 29934 - 19968: 0xE8B7,
+ 29943 - 19968: 0xEDB6,
+ 29953 - 19968: 0xDCBA,
+ 29956 - 19968: 0xCCB4,
+ 29969 - 19968: 0xF1F7,
+ 29973 - 19968: 0xE8B8,
+ 29976 - 19968: 0xCAF6,
+ 29978 - 19968: 0xE4A4,
+ 29979 - 19968: 0xF4D6,
+ 29983 - 19968: 0xDFE6,
+ 29987 - 19968: 0xDFA7,
+ 29989 - 19968: 0xDFE7,
+ 29990 - 19968: 0xE1C1,
+ 29992 - 19968: 0xE9C4,
+ 29995 - 19968: 0xDCCB,
+ 29996 - 19968: 0xE9C5,
+ 30000 - 19968: 0xEFA3,
+ 30001 - 19968: 0xEBA6,
+ 30002 - 19968: 0xCBA3,
+ 30003 - 19968: 0xE3E9,
+ 30007 - 19968: 0xD1FB,
+ 30008 - 19968: 0xEFA4,
+ 30010 - 19968: 0xEFEB,
+ 30023 - 19968: 0xD0B4,
+ 30028 - 19968: 0xCDA3,
+ 30031 - 19968: 0xE8E6,
+ 30033 - 19968: 0xEFA5,
+ 30035 - 19968: 0xD3CC,
+ 30036 - 19968: 0xDAED,
+ 30041 - 19968: 0xD7BA,
+ 30043 - 19968: 0xF2D5,
+ 30044 - 19968: 0xF5E5,
+ 30045 - 19968: 0xD9EF,
+ 30050 - 19968: 0xF9B4,
+ 30053 - 19968: 0xD5D4,
+ 30054 - 19968: 0xFDCF,
+ 30058 - 19968: 0xDBE3,
+ 30063 - 19968: 0xF1E1,
+ 30064 - 19968: 0xECB6,
+ 30069 - 19968: 0xFBFE,
+ 30070 - 19968: 0xD3D7,
+ 30072 - 19968: 0xD1B1,
+ 30074 - 19968: 0xCBB1,
+ 30079 - 19968: 0xD1B2,
+ 30086 - 19968: 0xCBB2,
+ 30087 - 19968: 0xF1C2,
+ 30090 - 19968: 0xF4E1,
+ 30091 - 19968: 0xF9B5,
+ 30094 - 19968: 0xE1C3,
+ 30095 - 19968: 0xE1C2,
+ 30097 - 19968: 0xEBF7,
+ 30109 - 19968: 0xDFA8,
+ 30117 - 19968: 0xCBCA,
+ 30123 - 19968: 0xE6B9,
+ 30129 - 19968: 0xF8DE,
+ 30130 - 19968: 0xF9AA,
+ 30131 - 19968: 0xCAF7,
+ 30133 - 19968: 0xEDB7,
+ 30136 - 19968: 0xD3B8,
+ 30137 - 19968: 0xF2D6,
+ 30140 - 19968: 0xD4D9,
+ 30141 - 19968: 0xEEC5,
+ 30142 - 19968: 0xF2F0,
+ 30146 - 19968: 0xCAB2,
+ 30149 - 19968: 0xDCBB,
+ 30151 - 19968: 0xF1F8,
+ 30157 - 19968: 0xECB7,
+ 30162 - 19968: 0xE5CA,
+ 30164 - 19968: 0xF6C0,
+ 30165 - 19968: 0xFDDD,
+ 30168 - 19968: 0xD4E3,
+ 30169 - 19968: 0xCCE2,
+ 30171 - 19968: 0xF7D4,
+ 30178 - 19968: 0xD7E5,
+ 30192 - 19968: 0xD3C3,
+ 30194 - 19968: 0xD8A6,
+ 30196 - 19968: 0xF6C1,
+ 30202 - 19968: 0xDDF6,
+ 30204 - 19968: 0xCDC0,
+ 30208 - 19968: 0xE5DC,
+ 30221 - 19968: 0xE5CB,
+ 30233 - 19968: 0xE1C4,
+ 30239 - 19968: 0xE8B0,
+ 30240 - 19968: 0xF4B0,
+ 30241 - 19968: 0xF3EA,
+ 30242 - 19968: 0xDAEE,
+ 30244 - 19968: 0xD7BB,
+ 30246 - 19968: 0xE2B1,
+ 30267 - 19968: 0xD7AA,
+ 30274 - 19968: 0xD6FB,
+ 30284 - 19968: 0xE4DF,
+ 30286 - 19968: 0xCAD6,
+ 30290 - 19968: 0xEBA8,
+ 30294 - 19968: 0xDBFE,
+ 30305 - 19968: 0xF6C2,
+ 30308 - 19968: 0xEFBB,
+ 30313 - 19968: 0xD4FD,
+ 30316 - 19968: 0xE0C8,
+ 30320 - 19968: 0xE8B9,
+ 30322 - 19968: 0xEFA6,
+ 30328 - 19968: 0xCDA4,
+ 30331 - 19968: 0xD4F4,
+ 30332 - 19968: 0xDBA1,
+ 30333 - 19968: 0xDBDC,
+ 30334 - 19968: 0xDBDD,
+ 30340 - 19968: 0xEEDC,
+ 30342 - 19968: 0xCBCB,
+ 30343 - 19968: 0xFCD5,
+ 30350 - 19968: 0xCEEB,
+ 30352 - 19968: 0xCDC1,
+ 30355 - 19968: 0xFBD3,
+ 30382 - 19968: 0xF9AB,
+ 30394 - 19968: 0xF5D4,
+ 30399 - 19968: 0xD9A9,
+ 30402 - 19968: 0xE9DD,
+ 30403 - 19968: 0xDBCD,
+ 30406 - 19968: 0xDDCE,
+ 30408 - 19968: 0xE7C3,
+ 30410 - 19968: 0xECCC,
+ 30418 - 19968: 0xF9EC,
+ 30422 - 19968: 0xCBCC,
+ 30427 - 19968: 0xE0FC,
+ 30428 - 19968: 0xD4A8,
+ 30430 - 19968: 0xEDD3,
+ 30431 - 19968: 0xD8EF,
+ 30433 - 19968: 0xF2D7,
+ 30435 - 19968: 0xCAF8,
+ 30436 - 19968: 0xDAEF,
+ 30439 - 19968: 0xD6D4,
+ 30446 - 19968: 0xD9CD,
+ 30450 - 19968: 0xD8EE,
+ 30452 - 19968: 0xF2C1,
+ 30456 - 19968: 0xDFD3,
+ 30460 - 19968: 0xDAF0,
+ 30462 - 19968: 0xE2EA,
+ 30465 - 19968: 0xE0FD,
+ 30468 - 19968: 0xD8F8,
+ 30472 - 19968: 0xF7AF,
+ 30473 - 19968: 0xDAB6,
+ 30475 - 19968: 0xCAD7,
+ 30494 - 19968: 0xF2D8,
+ 30496 - 19968: 0xD8F9,
+ 30505 - 19968: 0xFADF,
+ 30519 - 19968: 0xCFEF,
+ 30520 - 19968: 0xD9C2,
+ 30522 - 19968: 0xF0D2,
+ 30524 - 19968: 0xE4D1,
+ 30528 - 19968: 0xF3B7,
+ 30541 - 19968: 0xFAE0,
+ 30555 - 19968: 0xEFEC,
+ 30561 - 19968: 0xE2B2,
+ 30563 - 19968: 0xD4BD,
+ 30566 - 19968: 0xD9CE,
+ 30571 - 19968: 0xF4E2,
+ 30585 - 19968: 0xD4A9,
+ 30590 - 19968: 0xCDC2,
+ 30591 - 19968: 0xE7DA,
+ 30603 - 19968: 0xF2D9,
+ 30609 - 19968: 0xD9AA,
+ 30622 - 19968: 0xD8BE,
+ 30629 - 19968: 0xDCAD,
+ 30636 - 19968: 0xE2EB,
+ 30637 - 19968: 0xD6FC,
+ 30640 - 19968: 0xCAF9,
+ 30643 - 19968: 0xD4DA,
+ 30651 - 19968: 0xF4D7,
+ 30652 - 19968: 0xCCA1,
+ 30655 - 19968: 0xCFBA,
+ 30679 - 19968: 0xF5B8,
+ 30683 - 19968: 0xD9C3,
+ 30684 - 19968: 0xD0E8,
+ 30690 - 19968: 0xE3C5,
+ 30691 - 19968: 0xEBF8,
+ 30693 - 19968: 0xF2B1,
+ 30697 - 19968: 0xCFBB,
+ 30701 - 19968: 0xD3AD,
+ 30702 - 19968: 0xE8E1,
+ 30703 - 19968: 0xCEEC,
+ 30707 - 19968: 0xE0B4,
+ 30722 - 19968: 0xDEE3,
+ 30738 - 19968: 0xDDF7,
+ 30757 - 19968: 0xF2B2,
+ 30758 - 19968: 0xF3F6,
+ 30759 - 19968: 0xF6DB,
+ 30764 - 19968: 0xD7FE,
+ 30770 - 19968: 0xF8DF,
+ 30772 - 19968: 0xF7F2,
+ 30789 - 19968: 0xD0A9,
+ 30799 - 19968: 0xE6DA,
+ 30813 - 19968: 0xF5A6,
+ 30827 - 19968: 0xD7BC,
+ 30828 - 19968: 0xCCE3,
+ 30831 - 19968: 0xE6DB,
+ 30844 - 19968: 0xDDDD,
+ 30849 - 19968: 0xD1B3,
+ 30855 - 19968: 0xEFED,
+ 30860 - 19968: 0xD6DE,
+ 30861 - 19968: 0xE4F4,
+ 30862 - 19968: 0xE1EF,
+ 30865 - 19968: 0xDDF8,
+ 30871 - 19968: 0xE8CF,
+ 30883 - 19968: 0xCAE5,
+ 30887 - 19968: 0xDCA1,
+ 30889 - 19968: 0xE0B5,
+ 30906 - 19968: 0xFCAC,
+ 30907 - 19968: 0xFCAD,
+ 30908 - 19968: 0xD8A7,
+ 30913 - 19968: 0xEDB8,
+ 30917 - 19968: 0xDBB6,
+ 30922 - 19968: 0xD6F0,
+ 30923 - 19968: 0xF3AF,
+ 30926 - 19968: 0xCDA5,
+ 30928 - 19968: 0xDAF1,
+ 30952 - 19968: 0xD8A8,
+ 30956 - 19968: 0xCCE4,
+ 30959 - 19968: 0xD1B4,
+ 30965 - 19968: 0xCAD8,
+ 30971 - 19968: 0xDAF2,
+ 30977 - 19968: 0xF5A7,
+ 30990 - 19968: 0xF5A8,
+ 30998 - 19968: 0xE6A6,
+ 31018 - 19968: 0xD5EC,
+ 31019 - 19968: 0xD5F8,
+ 31020 - 19968: 0xDAF3,
+ 31034 - 19968: 0xE3C6,
+ 31038 - 19968: 0xDEE4,
+ 31040 - 19968: 0xDEE5,
+ 31041 - 19968: 0xD1B5,
+ 31047 - 19968: 0xD1B6,
+ 31048 - 19968: 0xD1B7,
+ 31049 - 19968: 0xF2B3,
+ 31056 - 19968: 0xE9DE,
+ 31062 - 19968: 0xF0D3,
+ 31063 - 19968: 0xF2B4,
+ 31066 - 19968: 0xF0D4,
+ 31067 - 19968: 0xCBE4,
+ 31068 - 19968: 0xFBD4,
+ 31069 - 19968: 0xF5E6,
+ 31070 - 19968: 0xE3EA,
+ 31072 - 19968: 0xDEE6,
+ 31077 - 19968: 0xDFD4,
+ 31080 - 19968: 0xF8F9,
+ 31085 - 19968: 0xF0AE,
+ 31098 - 19968: 0xD1B8,
+ 31103 - 19968: 0xD6DF,
+ 31105 - 19968: 0xD0D7,
+ 31117 - 19968: 0xFCA1,
+ 31118 - 19968: 0xEFEE,
+ 31119 - 19968: 0xDCD8,
+ 31121 - 19968: 0xE9DF,
+ 31142 - 19968: 0xE5DD,
+ 31143 - 19968: 0xFDFB,
+ 31146 - 19968: 0xE0C9,
+ 31150 - 19968: 0xD6C9,
+ 31153 - 19968: 0xD4AA,
+ 31155 - 19968: 0xE5CC,
+ 31161 - 19968: 0xE9E0,
+ 31165 - 19968: 0xD0D8,
+ 31166 - 19968: 0xFCA2,
+ 31167 - 19968: 0xD4BE,
+ 31168 - 19968: 0xE2B3,
+ 31169 - 19968: 0xDEE7,
+ 31177 - 19968: 0xDCBC,
+ 31178 - 19968: 0xD2B6,
+ 31179 - 19968: 0xF5D5,
+ 31185 - 19968: 0xCEA1,
+ 31186 - 19968: 0xF5A9,
+ 31189 - 19968: 0xDDF9,
+ 31192 - 19968: 0xDDFA,
+ 31199 - 19968: 0xF0D5,
+ 31204 - 19968: 0xF6DF,
+ 31206 - 19968: 0xF2DA,
+ 31207 - 19968: 0xE4EB,
+ 31209 - 19968: 0xF2F1,
+ 31227 - 19968: 0xECB9,
+ 31232 - 19968: 0xFDFC,
+ 31237 - 19968: 0xE1AA,
+ 31240 - 19968: 0xCAD9,
+ 31243 - 19968: 0xEFEF,
+ 31245 - 19968: 0xF5AA,
+ 31252 - 19968: 0xECF9,
+ 31255 - 19968: 0xF8AD,
+ 31257 - 19968: 0xF2C2,
+ 31258 - 19968: 0xF6C3,
+ 31260 - 19968: 0xD7D2,
+ 31263 - 19968: 0xF9A2,
+ 31264 - 19968: 0xF0D6,
+ 31278 - 19968: 0xF0FA,
+ 31281 - 19968: 0xF6E0,
+ 31286 - 19968: 0xE9F3,
+ 31287 - 19968: 0xF2C3,
+ 31291 - 19968: 0xD4AB,
+ 31292 - 19968: 0xCAB3,
+ 31293 - 19968: 0xCDA6,
+ 31295 - 19968: 0xCDC3,
+ 31296 - 19968: 0xCDDA,
+ 31302 - 19968: 0xD9CF,
+ 31305 - 19968: 0xF6C4,
+ 31309 - 19968: 0xEEDD,
+ 31310 - 19968: 0xE7C4,
+ 31319 - 19968: 0xE2B4,
+ 31329 - 19968: 0xDFE2,
+ 31330 - 19968: 0xE7DB,
+ 31337 - 19968: 0xE8B1,
+ 31339 - 19968: 0xFCAE,
+ 31344 - 19968: 0xE5CD,
+ 31348 - 19968: 0xFAEB,
+ 31350 - 19968: 0xCFBC,
+ 31353 - 19968: 0xCFE2,
+ 31354 - 19968: 0xCDF6,
+ 31357 - 19968: 0xEFF0,
+ 31359 - 19968: 0xF4BE,
+ 31361 - 19968: 0xD4CD,
+ 31364 - 19968: 0xF3B8,
+ 31368 - 19968: 0xE9A1,
+ 31378 - 19968: 0xF2F2,
+ 31379 - 19968: 0xF3EB,
+ 31381 - 19968: 0xF0D7,
+ 31384 - 19968: 0xCFD7,
+ 31391 - 19968: 0xCFDF,
+ 31401 - 19968: 0xE8C0,
+ 31402 - 19968: 0xE8C1,
+ 31406 - 19968: 0xCFE3,
+ 31407 - 19968: 0xE9A2,
+ 31418 - 19968: 0xD0AA,
+ 31428 - 19968: 0xF3C1,
+ 31429 - 19968: 0xD0AB,
+ 31431 - 19968: 0xD4E4,
+ 31434 - 19968: 0xEFBC,
+ 31435 - 19968: 0xD8A1,
+ 31447 - 19968: 0xD9DF,
+ 31449 - 19968: 0xF3D7,
+ 31453 - 19968: 0xDCBD,
+ 31455 - 19968: 0xCCE5,
+ 31456 - 19968: 0xEDF1,
+ 31459 - 19968: 0xF1E2,
+ 31461 - 19968: 0xD4DB,
+ 31466 - 19968: 0xE2B5,
+ 31469 - 19968: 0xCAE6,
+ 31471 - 19968: 0xD3AE,
+ 31478 - 19968: 0xCCE6,
+ 31481 - 19968: 0xF1D3,
+ 31482 - 19968: 0xF5E7,
+ 31487 - 19968: 0xCADA,
+ 31503 - 19968: 0xFBEE,
+ 31505 - 19968: 0xE1C5,
+ 31513 - 19968: 0xDFE9,
+ 31515 - 19968: 0xEEDE,
+ 31518 - 19968: 0xF7C2,
+ 31520 - 19968: 0xD8A2,
+ 31526 - 19968: 0xDDAC,
+ 31532 - 19968: 0xF0AF,
+ 31533 - 19968: 0xD6BD,
+ 31545 - 19968: 0xE1AB,
+ 31558 - 19968: 0xF9B6,
+ 31561 - 19968: 0xD4F5,
+ 31563 - 19968: 0xD0C9,
+ 31564 - 19968: 0xEFA7,
+ 31565 - 19968: 0xE2EC,
+ 31567 - 19968: 0xDBEA,
+ 31568 - 19968: 0xCECC,
+ 31569 - 19968: 0xF5E8,
+ 31570 - 19968: 0xF7D5,
+ 31572 - 19968: 0xD3CD,
+ 31574 - 19968: 0xF3FE,
+ 31584 - 19968: 0xD0B5,
+ 31596 - 19968: 0xE0FE,
+ 31598 - 19968: 0xDFFB,
+ 31605 - 19968: 0xE6DD,
+ 31613 - 19968: 0xE8A4,
+ 31623 - 19968: 0xCBCD,
+ 31627 - 19968: 0xEFA8,
+ 31631 - 19968: 0xEEB4,
+ 31636 - 19968: 0xDAD8,
+ 31637 - 19968: 0xD1B9,
+ 31639 - 19968: 0xDFA9,
+ 31642 - 19968: 0xF3B0,
+ 31645 - 19968: 0xCCC4,
+ 31649 - 19968: 0xCEB7,
+ 31661 - 19968: 0xEFA9,
+ 31665 - 19968: 0xDFD5,
+ 31668 - 19968: 0xEDD7,
+ 31672 - 19968: 0xEEC6,
+ 31680 - 19968: 0xEFBD,
+ 31681 - 19968: 0xFCD6,
+ 31684 - 19968: 0xDBF4,
+ 31686 - 19968: 0xEFAA,
+ 31687 - 19968: 0xF8B9,
+ 31689 - 19968: 0xF5E9,
+ 31698 - 19968: 0xE3D9,
+ 31712 - 19968: 0xE1C6,
+ 31716 - 19968: 0xD4BF,
+ 31721 - 19968: 0xDEE8,
+ 31751 - 19968: 0xF0EA,
+ 31762 - 19968: 0xF3C2,
+ 31774 - 19968: 0xD3AF,
+ 31777 - 19968: 0xCADB,
+ 31783 - 19968: 0xFCD7,
+ 31786 - 19968: 0xEDD8,
+ 31787 - 19968: 0xE1C7,
+ 31805 - 19968: 0xF4D8,
+ 31806 - 19968: 0xD6B3,
+ 31807 - 19968: 0xDDAD,
+ 31811 - 19968: 0xD5BE,
+ 31820 - 19968: 0xF1C3,
+ 31821 - 19968: 0xEEDF,
+ 31840 - 19968: 0xD6EB,
+ 31844 - 19968: 0xF4D9,
+ 31852 - 19968: 0xD7E6,
+ 31859 - 19968: 0xDAB7,
+ 31875 - 19968: 0xDDFB,
+ 31881 - 19968: 0xDDCF,
+ 31890 - 19968: 0xD8A3,
+ 31893 - 19968: 0xDAD9,
+ 31895 - 19968: 0xF0D8,
+ 31896 - 19968: 0xEFC4,
+ 31903 - 19968: 0xE1D8,
+ 31909 - 19968: 0xF1D4,
+ 31911 - 19968: 0xEDF2,
+ 31918 - 19968: 0xD5DB,
+ 31921 - 19968: 0xD5DC,
+ 31922 - 19968: 0xF3C4,
+ 31923 - 19968: 0xCBD7,
+ 31929 - 19968: 0xE2B6,
+ 31934 - 19968: 0xEFF1,
+ 31946 - 19968: 0xFBD5,
+ 31958 - 19968: 0xD3D8,
+ 31966 - 19968: 0xDDD0,
+ 31967 - 19968: 0xF0D9,
+ 31968 - 19968: 0xCBB3,
+ 31975 - 19968: 0xD5DD,
+ 31995 - 19968: 0xCDA7,
+ 31998 - 19968: 0xD0AC,
+ 32000 - 19968: 0xD1BA,
+ 32002 - 19968: 0xF1C4,
+ 32004 - 19968: 0xE5B3,
+ 32005 - 19968: 0xFBF5,
+ 32006 - 19968: 0xE9E1,
+ 32007 - 19968: 0xFDE0,
+ 32008 - 19968: 0xFCBC,
+ 32010 - 19968: 0xDAA2,
+ 32011 - 19968: 0xDAA3,
+ 32013 - 19968: 0xD2A1,
+ 32016 - 19968: 0xD2EF,
+ 32020 - 19968: 0xE2ED,
+ 32023 - 19968: 0xDEE9,
+ 32024 - 19968: 0xCEDC,
+ 32025 - 19968: 0xF2B5,
+ 32026 - 19968: 0xD0E4,
+ 32027 - 19968: 0xDDD1,
+ 32032 - 19968: 0xE1C8,
+ 32033 - 19968: 0xDBB7,
+ 32034 - 19968: 0xDFE3,
+ 32043 - 19968: 0xEDB9,
+ 32044 - 19968: 0xF1C5,
+ 32046 - 19968: 0xF3CF,
+ 32047 - 19968: 0xD7AB,
+ 32048 - 19968: 0xE1AC,
+ 32051 - 19968: 0xE3EB,
+ 32053 - 19968: 0xEEC7,
+ 32057 - 19968: 0xE1C9,
+ 32058 - 19968: 0xCAFA,
+ 32066 - 19968: 0xF0FB,
+ 32067 - 19968: 0xFAE1,
+ 32068 - 19968: 0xF0DA,
+ 32069 - 19968: 0xCCE7,
+ 32070 - 19968: 0xDAF4,
+ 32080 - 19968: 0xCCBF,
+ 32094 - 19968: 0xCEED,
+ 32097 - 19968: 0xD5A9,
+ 32098 - 19968: 0xFAE2,
+ 32102 - 19968: 0xD0E5,
+ 32104 - 19968: 0xEBD6,
+ 32106 - 19968: 0xECDF,
+ 32110 - 19968: 0xDFFC,
+ 32113 - 19968: 0xF7D6,
+ 32114 - 19968: 0xDEEA,
+ 32115 - 19968: 0xCBB4,
+ 32118 - 19968: 0xEFBE,
+ 32121 - 19968: 0xCCB5,
+ 32127 - 19968: 0xCFBD,
+ 32142 - 19968: 0xEFF2,
+ 32143 - 19968: 0xE2B7,
+ 32147 - 19968: 0xCCE8,
+ 32156 - 19968: 0xF0FC,
+ 32160 - 19968: 0xD6E0,
+ 32162 - 19968: 0xF1C6,
+ 32172 - 19968: 0xE2B8,
+ 32173 - 19968: 0xEBAB,
+ 32177 - 19968: 0xCBB5,
+ 32178 - 19968: 0xD8D1,
+ 32180 - 19968: 0xF4CE,
+ 32181 - 19968: 0xF3F7,
+ 32184 - 19968: 0xD7C6,
+ 32186 - 19968: 0xD1BB,
+ 32187 - 19968: 0xF7AA,
+ 32189 - 19968: 0xEDCA,
+ 32190 - 19968: 0xD7D3,
+ 32191 - 19968: 0xD8FA,
+ 32199 - 19968: 0xF6C5,
+ 32202 - 19968: 0xD1CC,
+ 32203 - 19968: 0xDDFC,
+ 32214 - 19968: 0xDFFD,
+ 32216 - 19968: 0xF9E5,
+ 32218 - 19968: 0xE0CA,
+ 32221 - 19968: 0xF2FD,
+ 32222 - 19968: 0xD3B0,
+ 32224 - 19968: 0xF4F3,
+ 32225 - 19968: 0xDAC9,
+ 32227 - 19968: 0xE6DE,
+ 32232 - 19968: 0xF8BA,
+ 32233 - 19968: 0xE8D0,
+ 32236 - 19968: 0xD8FB,
+ 32239 - 19968: 0xEAD5,
+ 32244 - 19968: 0xD6A3,
+ 32251 - 19968: 0xF6C6,
+ 32265 - 19968: 0xF2DB,
+ 32266 - 19968: 0xE4FC,
+ 32277 - 19968: 0xE8B2,
+ 32283 - 19968: 0xDADA,
+ 32285 - 19968: 0xF2DC,
+ 32286 - 19968: 0xFBD6,
+ 32287 - 19968: 0xE9B2,
+ 32289 - 19968: 0xEEAD,
+ 32291 - 19968: 0xFAE3,
+ 32299 - 19968: 0xDCEE,
+ 32302 - 19968: 0xF5EA,
+ 32303 - 19968: 0xE6E0,
+ 32305 - 19968: 0xF0FD,
+ 32311 - 19968: 0xD7AC,
+ 32317 - 19968: 0xF5C5,
+ 32318 - 19968: 0xEEE0,
+ 32321 - 19968: 0xDBE5,
+ 32323 - 19968: 0xDDDE,
+ 32326 - 19968: 0xD9F0,
+ 32327 - 19968: 0xE9A3,
+ 32338 - 19968: 0xF1F9,
+ 32340 - 19968: 0xF2C4,
+ 32341 - 19968: 0xE0CB,
+ 32350 - 19968: 0xE9A4,
+ 32353 - 19968: 0xE2B9,
+ 32361 - 19968: 0xE3B1,
+ 32362 - 19968: 0xFCEB,
+ 32363 - 19968: 0xCDA8,
+ 32365 - 19968: 0xCCB6,
+ 32368 - 19968: 0xF0DB,
+ 32377 - 19968: 0xE6BA,
+ 32380 - 19968: 0xCDA9,
+ 32386 - 19968: 0xF3C3,
+ 32396 - 19968: 0xE1D9,
+ 32399 - 19968: 0xEFAB,
+ 32403 - 19968: 0xE7C5,
+ 32406 - 19968: 0xE0E9,
+ 32408 - 19968: 0xF3C5,
+ 32411 - 19968: 0xD4C0,
+ 32412 - 19968: 0xD5BF,
+ 32566 - 19968: 0xDDAE,
+ 32568 - 19968: 0xF9FC,
+ 32570 - 19968: 0xCCC0,
+ 32588 - 19968: 0xE5A2,
+ 32592 - 19968: 0xCEB8,
+ 32596 - 19968: 0xD8D2,
+ 32597 - 19968: 0xF9D6,
+ 32618 - 19968: 0xF1AA,
+ 32619 - 19968: 0xCED1,
+ 32622 - 19968: 0xF6C7,
+ 32624 - 19968: 0xDBEB,
+ 32626 - 19968: 0xDFFE,
+ 32629 - 19968: 0xD8E1,
+ 32631 - 19968: 0xF7F3,
+ 32633 - 19968: 0xD7E7,
+ 32645 - 19968: 0xD4FE,
+ 32648 - 19968: 0xD1BC,
+ 32650 - 19968: 0xE5CF,
+ 32652 - 19968: 0xCBB6,
+ 32654 - 19968: 0xDAB8,
+ 32660 - 19968: 0xCDC4,
+ 32666 - 19968: 0xD6BE,
+ 32670 - 19968: 0xE2BA,
+ 32676 - 19968: 0xCFD8,
+ 32680 - 19968: 0xE0CC,
+ 32681 - 19968: 0xEBF9,
+ 32690 - 19968: 0xFDFD,
+ 32696 - 19968: 0xD7E8,
+ 32697 - 19968: 0xCBD8,
+ 32701 - 19968: 0xE9E2,
+ 32705 - 19968: 0xE8BA,
+ 32709 - 19968: 0xE3C7,
+ 32714 - 19968: 0xECCD,
+ 32716 - 19968: 0xECCE,
+ 32718 - 19968: 0xD6BF,
+ 32722 - 19968: 0xE3A7,
+ 32724 - 19968: 0xDFD6,
+ 32725 - 19968: 0xFDE8,
+ 32735 - 19968: 0xEEE1,
+ 32736 - 19968: 0xF6A8,
+ 32737 - 19968: 0xDDFD,
+ 32745 - 19968: 0xF8BB,
+ 32747 - 19968: 0xE8D1,
+ 32752 - 19968: 0xF9D7,
+ 32761 - 19968: 0xCEEE,
+ 32764 - 19968: 0xECCF,
+ 32768 - 19968: 0xE9A5,
+ 32769 - 19968: 0xD6D5,
+ 32771 - 19968: 0xCDC5,
+ 32773 - 19968: 0xEDBA,
+ 32774 - 19968: 0xD1BD,
+ 32777 - 19968: 0xCFBE,
+ 32780 - 19968: 0xECBB,
+ 32784 - 19968: 0xD2B1,
+ 32789 - 19968: 0xCCE9,
+ 32791 - 19968: 0xD9C4,
+ 32792 - 19968: 0xE9FC,
+ 32813 - 19968: 0xD1BE,
+ 32819 - 19968: 0xECBC,
+ 32822 - 19968: 0xE5AD,
+ 32829 - 19968: 0xF7B0,
+ 32831 - 19968: 0xCCEA,
+ 32835 - 19968: 0xD3C4,
+ 32838 - 19968: 0xD6C0,
+ 32842 - 19968: 0xD6FD,
+ 32854 - 19968: 0xE1A1,
+ 32856 - 19968: 0xDEBD,
+ 32858 - 19968: 0xF6A9,
+ 32862 - 19968: 0xDAA4,
+ 32879 - 19968: 0xD6A4,
+ 32880 - 19968: 0xF5C6,
+ 32882 - 19968: 0xE1A2,
+ 32883 - 19968: 0xE9C6,
+ 32887 - 19968: 0xF2C5,
+ 32893 - 19968: 0xF4E9,
+ 32894 - 19968: 0xD6EC,
+ 32895 - 19968: 0xEBD3,
+ 32900 - 19968: 0xECBD,
+ 32901 - 19968: 0xE2DC,
+ 32902 - 19968: 0xDEEB,
+ 32903 - 19968: 0xF0DC,
+ 32905 - 19968: 0xEBBF,
+ 32907 - 19968: 0xD7CE,
+ 32908 - 19968: 0xD1BF,
+ 32918 - 19968: 0xF5AB,
+ 32923 - 19968: 0xF9FD,
+ 32925 - 19968: 0xCADC,
+ 32929 - 19968: 0xCDC6,
+ 32930 - 19968: 0xF2B6,
+ 32933 - 19968: 0xDDFE,
+ 32937 - 19968: 0xCCB7,
+ 32938 - 19968: 0xDBB8,
+ 32943 - 19968: 0xD0E9,
+ 32945 - 19968: 0xCEDD,
+ 32946 - 19968: 0xEBC0,
+ 32948 - 19968: 0xFDA2,
+ 32954 - 19968: 0xF8CB,
+ 32963 - 19968: 0xEAD6,
+ 32964 - 19968: 0xF1B0,
+ 32972 - 19968: 0xDBCE,
+ 32974 - 19968: 0xF7C3,
+ 32986 - 19968: 0xDBCF,
+ 32987 - 19968: 0xCBA4,
+ 32990 - 19968: 0xF8E0,
+ 32993 - 19968: 0xFBD7,
+ 32996 - 19968: 0xEBCA,
+ 32997 - 19968: 0xE0A1,
+ 33009 - 19968: 0xCECD,
+ 33012 - 19968: 0xD4DC,
+ 33016 - 19968: 0xFDD8,
+ 33021 - 19968: 0xD2F6,
+ 33026 - 19968: 0xF2B7,
+ 33029 - 19968: 0xFAF6,
+ 33030 - 19968: 0xF6AA,
+ 33031 - 19968: 0xFAF7,
+ 33032 - 19968: 0xD8E6,
+ 33034 - 19968: 0xF4B1,
+ 33048 - 19968: 0xE8D2,
+ 33050 - 19968: 0xCAC5,
+ 33051 - 19968: 0xCCEB,
+ 33059 - 19968: 0xE2EE,
+ 33065 - 19968: 0xE2BB,
+ 33067 - 19968: 0xF7AD,
+ 33071 - 19968: 0xF8E1,
+ 33081 - 19968: 0xF3EC,
+ 33086 - 19968: 0xDEA1,
+ 33099 - 19968: 0xE4FD,
+ 33102 - 19968: 0xE3EC,
+ 33104 - 19968: 0xDDAF,
+ 33105 - 19968: 0xDDB0,
+ 33108 - 19968: 0xCBB7,
+ 33109 - 19968: 0xE8D3,
+ 33125 - 19968: 0xE1A3,
+ 33126 - 19968: 0xD2E0,
+ 33131 - 19968: 0xF0FE,
+ 33136 - 19968: 0xE9A6,
+ 33137 - 19968: 0xCBF2,
+ 33144 - 19968: 0xEDF3,
+ 33145 - 19968: 0xDCD9,
+ 33146 - 19968: 0xE0CD,
+ 33151 - 19968: 0xF7DA,
+ 33152 - 19968: 0xDBB9,
+ 33160 - 19968: 0xCCAE,
+ 33162 - 19968: 0xDADB,
+ 33167 - 19968: 0xCDC7,
+ 33178 - 19968: 0xDDB1,
+ 33180 - 19968: 0xD8AF,
+ 33181 - 19968: 0xE3A3,
+ 33184 - 19968: 0xCEEF,
+ 33187 - 19968: 0xF2F3,
+ 33192 - 19968: 0xF8B3,
+ 33203 - 19968: 0xE0CE,
+ 33205 - 19968: 0xF5FD,
+ 33210 - 19968: 0xEBEC,
+ 33213 - 19968: 0xD3C5,
+ 33214 - 19968: 0xFCEC,
+ 33215 - 19968: 0xD2DB,
+ 33216 - 19968: 0xD4EB,
+ 33218 - 19968: 0xDEA2,
+ 33222 - 19968: 0xE5E6,
+ 33229 - 19968: 0xF0B0,
+ 33240 - 19968: 0xD5C4,
+ 33247 - 19968: 0xEDF4,
+ 33251 - 19968: 0xE3ED,
+ 33253 - 19968: 0xE8C2,
+ 33255 - 19968: 0xEDF5,
+ 33256 - 19968: 0xD7FC,
+ 33258 - 19968: 0xEDBB,
+ 33261 - 19968: 0xF6AB,
+ 33267 - 19968: 0xF2B8,
+ 33268 - 19968: 0xF6C8,
+ 33274 - 19968: 0xD3E6,
+ 33275 - 19968: 0xF2DD,
+ 33276 - 19968: 0xCFBF,
+ 33278 - 19968: 0xEBAC,
+ 33285 - 19968: 0xCFC0,
+ 33287 - 19968: 0xE6A8,
+ 33288 - 19968: 0xFDE9,
+ 33290 - 19968: 0xCFC1,
+ 33292 - 19968: 0xE0DF,
+ 33293 - 19968: 0xDEEC,
+ 33298 - 19968: 0xE0A2,
+ 33307 - 19968: 0xF4BF,
+ 33308 - 19968: 0xE2EF,
+ 33310 - 19968: 0xD9F1,
+ 33311 - 19968: 0xF1C7,
+ 33313 - 19968: 0xCBB8,
+ 33322 - 19968: 0xF9FE,
+ 33323 - 19968: 0xDBBA,
+ 33324 - 19968: 0xDAF5,
+ 33333 - 19968: 0xF6EC,
+ 33334 - 19968: 0xDADC,
+ 33335 - 19968: 0xFAE4,
+ 33337 - 19968: 0xE0CF,
+ 33344 - 19968: 0xDDB2,
+ 33349 - 19968: 0xE6A9,
+ 33351 - 19968: 0xEFF3,
+ 33369 - 19968: 0xF3ED,
+ 33380 - 19968: 0xEBFA,
+ 33382 - 19968: 0xF9E6,
+ 33390 - 19968: 0xCADD,
+ 33391 - 19968: 0xD5DE,
+ 33393 - 19968: 0xCADE,
+ 33394 - 19968: 0xDFE4,
+ 33398 - 19968: 0xE6FD,
+ 33400 - 19968: 0xF5AC,
+ 33406 - 19968: 0xE4F5,
+ 33419 - 19968: 0xE9E3,
+ 33421 - 19968: 0xEDCB,
+ 33422 - 19968: 0xCFE4,
+ 33426 - 19968: 0xD8D3,
+ 33433 - 19968: 0xDDB3,
+ 33434 - 19968: 0xD4EC,
+ 33437 - 19968: 0xF2B9,
+ 33439 - 19968: 0xDFB7,
+ 33445 - 19968: 0xCBCE,
+ 33446 - 19968: 0xFBD8,
+ 33449 - 19968: 0xD0D9,
+ 33452 - 19968: 0xDDD2,
+ 33453 - 19968: 0xF7F4,
+ 33454 - 19968: 0xE7DC,
+ 33455 - 19968: 0xE4A5,
+ 33457 - 19968: 0xFCA3,
+ 33459 - 19968: 0xDBBB,
+ 33463 - 19968: 0xF2BA,
+ 33464 - 19968: 0xE9FD,
+ 33465 - 19968: 0xD0CA,
+ 33467 - 19968: 0xF5D6,
+ 33468 - 19968: 0xD9C5,
+ 33469 - 19968: 0xE4B4,
+ 33471 - 19968: 0xEDA7,
+ 33489 - 19968: 0xEABD,
+ 33490 - 19968: 0xE6FE,
+ 33492 - 19968: 0xF7C4,
+ 33493 - 19968: 0xF5AD,
+ 33495 - 19968: 0xD9E0,
+ 33499 - 19968: 0xCAB4,
+ 33502 - 19968: 0xF8E2,
+ 33503 - 19968: 0xCFC2,
+ 33505 - 19968: 0xECBE,
+ 33509 - 19968: 0xE5B4,
+ 33510 - 19968: 0xCDC8,
+ 33511 - 19968: 0xEEC8,
+ 33521 - 19968: 0xE7C8,
+ 33533 - 19968: 0xCDC9,
+ 33534 - 19968: 0xF9B7,
+ 33537 - 19968: 0xF1E8,
+ 33538 - 19968: 0xD9F2,
+ 33539 - 19968: 0xDBF5,
+ 33540 - 19968: 0xCAB5,
+ 33541 - 19968: 0xD9C6,
+ 33545 - 19968: 0xD8C9,
+ 33559 - 19968: 0xD9AB,
+ 33576 - 19968: 0xEDBC,
+ 33579 - 19968: 0xD8D4,
+ 33583 - 19968: 0xDCDA,
+ 33585 - 19968: 0xE2BC,
+ 33588 - 19968: 0xFCED,
+ 33589 - 19968: 0xECE0,
+ 33590 - 19968: 0xD2FE,
+ 33592 - 19968: 0xE9C7,
+ 33593 - 19968: 0xE6AA,
+ 33600 - 19968: 0xE2F0,
+ 33607 - 19968: 0xFABB,
+ 33609 - 19968: 0xF5AE,
+ 33610 - 19968: 0xFBAA,
+ 33615 - 19968: 0xECFB,
+ 33617 - 19968: 0xECBF,
+ 33618 - 19968: 0xFCD8,
+ 33651 - 19968: 0xD4E5,
+ 33655 - 19968: 0xF9C3,
+ 33659 - 19968: 0xEEE2,
+ 33673 - 19968: 0xD7E9,
+ 33674 - 19968: 0xEDF6,
+ 33678 - 19968: 0xDEED,
+ 33686 - 19968: 0xCCEC,
+ 33688 - 19968: 0xE3EE,
+ 33694 - 19968: 0xE8D4,
+ 33698 - 19968: 0xFAF8,
+ 33705 - 19968: 0xDDB4,
+ 33706 - 19968: 0xE4B5,
+ 33707 - 19968: 0xD8B0,
+ 33725 - 19968: 0xD8D5,
+ 33729 - 19968: 0xF4EA,
+ 33733 - 19968: 0xCEB9,
+ 33737 - 19968: 0xD6E1,
+ 33738 - 19968: 0xCFD2,
+ 33740 - 19968: 0xD0B6,
+ 33747 - 19968: 0xCEA2,
+ 33750 - 19968: 0xF3EE,
+ 33756 - 19968: 0xF3F8,
+ 33769 - 19968: 0xDCCC,
+ 33771 - 19968: 0xD0CB,
+ 33775 - 19968: 0xFCA4,
+ 33776 - 19968: 0xCDCA,
+ 33777 - 19968: 0xD7D4,
+ 33778 - 19968: 0xDEA3,
+ 33780 - 19968: 0xE4E0,
+ 33785 - 19968: 0xEEC9,
+ 33789 - 19968: 0xE2DD,
+ 33795 - 19968: 0xF5FE,
+ 33796 - 19968: 0xD4AC,
+ 33802 - 19968: 0xD5D1,
+ 33804 - 19968: 0xD8F0,
+ 33805 - 19968: 0xF8C3,
+ 33806 - 19968: 0xEAD7,
+ 33833 - 19968: 0xF5D7,
+ 33836 - 19968: 0xD8BF,
+ 33841 - 19968: 0xFDC0,
+ 33848 - 19968: 0xEBAD,
+ 33853 - 19968: 0xD5AA,
+ 33865 - 19968: 0xE7A8,
+ 33879 - 19968: 0xEECA,
+ 33883 - 19968: 0xCAE7,
+ 33889 - 19968: 0xF8E3,
+ 33891 - 19968: 0xD4DD,
+ 33894 - 19968: 0xEAD8,
+ 33899 - 19968: 0xFBD9,
+ 33900 - 19968: 0xEDF7,
+ 33903 - 19968: 0xE5B5,
+ 33909 - 19968: 0xD0AD,
+ 33914 - 19968: 0xF1F1,
+ 33936 - 19968: 0xE2BD,
+ 33940 - 19968: 0xE3C8,
+ 33945 - 19968: 0xD9D5,
+ 33948 - 19968: 0xDFAA,
+ 33953 - 19968: 0xDBBC,
+ 33970 - 19968: 0xF8E4,
+ 33976 - 19968: 0xF1FA,
+ 33979 - 19968: 0xE5B6,
+ 33980 - 19968: 0xF3EF,
+ 33983 - 19968: 0xFBDA,
+ 33984 - 19968: 0xE1E0,
+ 33986 - 19968: 0xD9AC,
+ 33988 - 19968: 0xF5EB,
+ 33990 - 19968: 0xE0B6,
+ 33993 - 19968: 0xE9C8,
+ 33995 - 19968: 0xCBCF,
+ 33997 - 19968: 0xE3C9,
+ 34001 - 19968: 0xDEEE,
+ 34010 - 19968: 0xE2BE,
+ 34028 - 19968: 0xDCEF,
+ 34030 - 19968: 0xD6A5,
+ 34036 - 19968: 0xE2F1,
+ 34044 - 19968: 0xD6FE,
+ 34065 - 19968: 0xD9A1,
+ 34067 - 19968: 0xD8C0,
+ 34068 - 19968: 0xDCDB,
+ 34071 - 19968: 0xEDBD,
+ 34072 - 19968: 0xDFB8,
+ 34074 - 19968: 0xEAA5,
+ 34078 - 19968: 0xD7AD,
+ 34081 - 19968: 0xF3F9,
+ 34083 - 19968: 0xEDF8,
+ 34085 - 19968: 0xF5C7,
+ 34092 - 19968: 0xE1CA,
+ 34093 - 19968: 0xEBE3,
+ 34095 - 19968: 0xF2DE,
+ 34109 - 19968: 0xF8CC,
+ 34111 - 19968: 0xEAD9,
+ 34113 - 19968: 0xD3C6,
+ 34115 - 19968: 0xDBE6,
+ 34121 - 19968: 0xF5AF,
+ 34126 - 19968: 0xCEF0,
+ 34131 - 19968: 0xE9FE,
+ 34137 - 19968: 0xFBB6,
+ 34147 - 19968: 0xE2F2,
+ 34152 - 19968: 0xCFF2,
+ 34153 - 19968: 0xF7B9,
+ 34154 - 19968: 0xD9F3,
+ 34157 - 19968: 0xE1CB,
+ 34180 - 19968: 0xDADD,
+ 34183 - 19968: 0xDAB9,
+ 34191 - 19968: 0xEBFB,
+ 34193 - 19968: 0xCBB9,
+ 34196 - 19968: 0xEDF9,
+ 34203 - 19968: 0xE0E0,
+ 34214 - 19968: 0xF4C0,
+ 34216 - 19968: 0xFDBC,
+ 34217 - 19968: 0xDFB1,
+ 34218 - 19968: 0xE3EF,
+ 34223 - 19968: 0xE0A3,
+ 34224 - 19968: 0xFDB9,
+ 34234 - 19968: 0xF0B1,
+ 34241 - 19968: 0xCDCB,
+ 34249 - 19968: 0xEDBE,
+ 34253 - 19968: 0xD5C0,
+ 34254 - 19968: 0xE3F0,
+ 34255 - 19968: 0xEDFA,
+ 34261 - 19968: 0xE9E4,
+ 34268 - 19968: 0xD5ED,
+ 34269 - 19968: 0xE7DD,
+ 34276 - 19968: 0xD4F6,
+ 34277 - 19968: 0xE5B7,
+ 34281 - 19968: 0xDBE7,
+ 34282 - 19968: 0xE2BF,
+ 34295 - 19968: 0xEECB,
+ 34298 - 19968: 0xD7F4,
+ 34299 - 19968: 0xF0DD,
+ 34303 - 19968: 0xCEAB,
+ 34306 - 19968: 0xE7DE,
+ 34310 - 19968: 0xD6D6,
+ 34311 - 19968: 0xE1CC,
+ 34314 - 19968: 0xE8B3,
+ 34326 - 19968: 0xE5EE,
+ 34327 - 19968: 0xDCA2,
+ 34330 - 19968: 0xE0D0,
+ 34349 - 19968: 0xD5B5,
+ 34367 - 19968: 0xD5A1,
+ 34382 - 19968: 0xFBDB,
+ 34384 - 19968: 0xF9CB,
+ 34388 - 19968: 0xCBF3,
+ 34389 - 19968: 0xF4A5,
+ 34395 - 19968: 0xFAC8,
+ 34396 - 19968: 0xD6D7,
+ 34398 - 19968: 0xE9E5,
+ 34399 - 19968: 0xFBDC,
+ 34407 - 19968: 0xFDD0,
+ 34425 - 19968: 0xFBF6,
+ 34442 - 19968: 0xDAA5,
+ 34444 - 19968: 0xDBBD,
+ 34451 - 19968: 0xECE2,
+ 34467 - 19968: 0xCDF7,
+ 34468 - 19968: 0xF0DE,
+ 34473 - 19968: 0xF6C9,
+ 34503 - 19968: 0xDEEF,
+ 34507 - 19968: 0xD3B1,
+ 34516 - 19968: 0xFCEE,
+ 34521 - 19968: 0xE8C3,
+ 34523 - 19968: 0xF1C8,
+ 34527 - 19968: 0xCEF1,
+ 34532 - 19968: 0xF9ED,
+ 34541 - 19968: 0xF2F4,
+ 34558 - 19968: 0xE4B6,
+ 34560 - 19968: 0xF5B9,
+ 34562 - 19968: 0xDCF0,
+ 34563 - 19968: 0xE3F1,
+ 34568 - 19968: 0xE8A5,
+ 34584 - 19968: 0xF2BB,
+ 34586 - 19968: 0xDEA4,
+ 34588 - 19968: 0xDACC,
+ 34638 - 19968: 0xCAE9,
+ 34645 - 19968: 0xE3DA,
+ 34647 - 19968: 0xFCD9,
+ 34655 - 19968: 0xEADA,
+ 34662 - 19968: 0xF9C4,
+ 34664 - 19968: 0xE3A4,
+ 34676 - 19968: 0xFBDD,
+ 34678 - 19968: 0xEFCA,
+ 34680 - 19968: 0xE8C4,
+ 34690 - 19968: 0xD5CC,
+ 34701 - 19968: 0xEBD7,
+ 34719 - 19968: 0xD9AD,
+ 34722 - 19968: 0xFBAB,
+ 34739 - 19968: 0xD3D9,
+ 34746 - 19968: 0xD5A2,
+ 34756 - 19968: 0xF6DE,
+ 34784 - 19968: 0xDAF6,
+ 34796 - 19968: 0xE0D1,
+ 34799 - 19968: 0xE9A8,
+ 34802 - 19968: 0xF5F9,
+ 34809 - 19968: 0xFAAF,
+ 34811 - 19968: 0xEBFC,
+ 34814 - 19968: 0xE0EA,
+ 34821 - 19968: 0xE3B2,
+ 34847 - 19968: 0xD5C5,
+ 34850 - 19968: 0xF1E3,
+ 34851 - 19968: 0xD5EE,
+ 34865 - 19968: 0xCDCC,
+ 34870 - 19968: 0xEDD9,
+ 34875 - 19968: 0xD8C1,
+ 34880 - 19968: 0xFAEC,
+ 34886 - 19968: 0xF1EB,
+ 34892 - 19968: 0xFABC,
+ 34893 - 19968: 0xE6E2,
+ 34898 - 19968: 0xFAE5,
+ 34899 - 19968: 0xE2FA,
+ 34903 - 19968: 0xCAB6,
+ 34905 - 19968: 0xE4B7,
+ 34907 - 19968: 0xEADB,
+ 34909 - 19968: 0xF5FA,
+ 34913 - 19968: 0xFBAC,
+ 34914 - 19968: 0xCFC3,
+ 34915 - 19968: 0xEBFD,
+ 34920 - 19968: 0xF8FA,
+ 34923 - 19968: 0xDFB9,
+ 34928 - 19968: 0xE1F1,
+ 34930 - 19968: 0xD2A4,
+ 34935 - 19968: 0xF5FB,
+ 34942 - 19968: 0xD0DA,
+ 34943 - 19968: 0xD0DB,
+ 34945 - 19968: 0xEABE,
+ 34946 - 19968: 0xD9B1,
+ 34952 - 19968: 0xCAB7,
+ 34955 - 19968: 0xD3E7,
+ 34957 - 19968: 0xF8E5,
+ 34962 - 19968: 0xD3B2,
+ 34966 - 19968: 0xE2C0,
+ 34967 - 19968: 0xF2DF,
+ 34974 - 19968: 0xCDE5,
+ 34987 - 19968: 0xF9AC,
+ 34996 - 19968: 0xCDCD,
+ 35009 - 19968: 0xEEAE,
+ 35010 - 19968: 0xD6AE,
+ 35023 - 19968: 0xD7EA,
+ 35028 - 19968: 0xE7E0,
+ 35029 - 19968: 0xEBAE,
+ 35033 - 19968: 0xCFD9,
+ 35036 - 19968: 0xDCCD,
+ 35037 - 19968: 0xEDFB,
+ 35039 - 19968: 0xDEF0,
+ 35041 - 19968: 0xD7EB,
+ 35048 - 19968: 0xDEA5,
+ 35059 - 19968: 0xDFD7,
+ 35060 - 19968: 0xDBD0,
+ 35061 - 19968: 0xDBD1,
+ 35064 - 19968: 0xD5A3,
+ 35069 - 19968: 0xF0B2,
+ 35079 - 19968: 0xDCDC,
+ 35088 - 19968: 0xCAE8,
+ 35090 - 19968: 0xF8E6,
+ 35091 - 19968: 0xDCCE,
+ 35096 - 19968: 0xEADC,
+ 35097 - 19968: 0xDBD2,
+ 35109 - 19968: 0xE9B3,
+ 35114 - 19968: 0xF7DB,
+ 35126 - 19968: 0xE3A8,
+ 35128 - 19968: 0xD7AE,
+ 35131 - 19968: 0xE0E1,
+ 35137 - 19968: 0xCBBA,
+ 35140 - 19968: 0xE5D1,
+ 35167 - 19968: 0xD0DC,
+ 35172 - 19968: 0xD5C1,
+ 35178 - 19968: 0xD8CA,
+ 35186 - 19968: 0xE3A9,
+ 35199 - 19968: 0xE0A4,
+ 35201 - 19968: 0xE9A9,
+ 35203 - 19968: 0xD3C7,
+ 35206 - 19968: 0xDCDD,
+ 35207 - 19968: 0xF8AE,
+ 35211 - 19968: 0xCCB8,
+ 35215 - 19968: 0xD0AE,
+ 35219 - 19968: 0xD8F2,
+ 35222 - 19968: 0xE3CA,
+ 35233 - 19968: 0xCCAF,
+ 35241 - 19968: 0xD4AD,
+ 35242 - 19968: 0xF6D1,
+ 35250 - 19968: 0xD0CC,
+ 35258 - 19968: 0xCAC6,
+ 35261 - 19968: 0xD5C2,
+ 35264 - 19968: 0xCEBA,
+ 35282 - 19968: 0xCAC7,
+ 35299 - 19968: 0xFAB0,
+ 35316 - 19968: 0xDFD8,
+ 35320 - 19968: 0xF5BA,
+ 35328 - 19968: 0xE5EB,
+ 35330 - 19968: 0xEFF4,
+ 35331 - 19968: 0xDDB5,
+ 35336 - 19968: 0xCDAA,
+ 35338 - 19968: 0xE3F2,
+ 35340 - 19968: 0xFBF7,
+ 35342 - 19968: 0xF7D0,
+ 35347 - 19968: 0xFDBA,
+ 35350 - 19968: 0xFDE1,
+ 35351 - 19968: 0xF6FE,
+ 35352 - 19968: 0xD1C0,
+ 35355 - 19968: 0xE8C5,
+ 35357 - 19968: 0xE4B8,
+ 35359 - 19968: 0xE1E8,
+ 35363 - 19968: 0xCCC1,
+ 35365 - 19968: 0xD2ED,
+ 35370 - 19968: 0xDBBE,
+ 35373 - 19968: 0xE0E2,
+ 35377 - 19968: 0xFAC9,
+ 35380 - 19968: 0xE1CD,
+ 35382 - 19968: 0xCAB8,
+ 35386 - 19968: 0xF2E0,
+ 35387 - 19968: 0xF1C9,
+ 35408 - 19968: 0xDEF1,
+ 35412 - 19968: 0xF0DF,
+ 35413 - 19968: 0xF8C4,
+ 35419 - 19968: 0xEECC,
+ 35422 - 19968: 0xDEF2,
+ 35424 - 19968: 0xE7C9,
+ 35426 - 19968: 0xE2F3,
+ 35427 - 19968: 0xE7E1,
+ 35430 - 19968: 0xE3CB,
+ 35433 - 19968: 0xE3CC,
+ 35437 - 19968: 0xCFF8,
+ 35438 - 19968: 0xEFAC,
+ 35440 - 19968: 0xFDFE,
+ 35441 - 19968: 0xFCA5,
+ 35442 - 19968: 0xFAB1,
+ 35443 - 19968: 0xDFD9,
+ 35445 - 19968: 0xE0D2,
+ 35449 - 19968: 0xF4DA,
+ 35461 - 19968: 0xF1CA,
+ 35463 - 19968: 0xCEA3,
+ 35468 - 19968: 0xF2BC,
+ 35469 - 19968: 0xECE3,
+ 35475 - 19968: 0xE0A5,
+ 35477 - 19968: 0xF7AB,
+ 35480 - 19968: 0xEBAF,
+ 35486 - 19968: 0xE5DE,
+ 35488 - 19968: 0xE1A4,
+ 35489 - 19968: 0xCDAB,
+ 35491 - 19968: 0xD9F4,
+ 35492 - 19968: 0xE8A6,
+ 35493 - 19968: 0xCDCE,
+ 35494 - 19968: 0xE1E9,
+ 35496 - 19968: 0xFCEF,
+ 35498 - 19968: 0xE0E3,
+ 35504 - 19968: 0xE2C1,
+ 35506 - 19968: 0xCEA4,
+ 35513 - 19968: 0xDEA6,
+ 35516 - 19968: 0xEBFE,
+ 35518 - 19968: 0xEBDD,
+ 35519 - 19968: 0xF0E0,
+ 35522 - 19968: 0xF4DB,
+ 35524 - 19968: 0xE2F4,
+ 35527 - 19968: 0xD3C8,
+ 35531 - 19968: 0xF4EB,
+ 35533 - 19968: 0xEEB5,
+ 35535 - 19968: 0xF5D8,
+ 35538 - 19968: 0xD5DF,
+ 35542 - 19968: 0xD6E5,
+ 35547 - 19968: 0xEBB0,
+ 35548 - 19968: 0xF4E3,
+ 35553 - 19968: 0xE3CD,
+ 35558 - 19968: 0xF4F4,
+ 35559 - 19968: 0xFAB2,
+ 35562 - 19968: 0xEFF5,
+ 35563 - 19968: 0xCADF,
+ 35565 - 19968: 0xEBB1,
+ 35566 - 19968: 0xEDBF,
+ 35569 - 19968: 0xFDC9,
+ 35574 - 19968: 0xE4A6,
+ 35575 - 19968: 0xF9A4,
+ 35576 - 19968: 0xF0B3,
+ 35578 - 19968: 0xE5EC,
+ 35582 - 19968: 0xD1E7,
+ 35584 - 19968: 0xD9C7,
+ 35585 - 19968: 0xE4D7,
+ 35586 - 19968: 0xEADD,
+ 35588 - 19968: 0xD4F7,
+ 35598 - 19968: 0xDABA,
+ 35600 - 19968: 0xDACD,
+ 35604 - 19968: 0xF9CC,
+ 35606 - 19968: 0xE1DA,
+ 35607 - 19968: 0xDBBF,
+ 35609 - 19968: 0xCCC5,
+ 35610 - 19968: 0xECD0,
+ 35611 - 19968: 0xCBBB,
+ 35613 - 19968: 0xDEF3,
+ 35616 - 19968: 0xE9AA,
+ 35624 - 19968: 0xD9C8,
+ 35627 - 19968: 0xEEE3,
+ 35628 - 19968: 0xD7BD,
+ 35635 - 19968: 0xCFC4,
+ 35641 - 19968: 0xD0CD,
+ 35649 - 19968: 0xFCA6,
+ 35657 - 19968: 0xF1FB,
+ 35662 - 19968: 0xFDD2,
+ 35663 - 19968: 0xD1C1,
+ 35672 - 19968: 0xE3DB,
+ 35674 - 19968: 0xD3C9,
+ 35676 - 19968: 0xDCCF,
+ 35686 - 19968: 0xCCED,
+ 35692 - 19968: 0xDEA7,
+ 35695 - 19968: 0xE6BB,
+ 35696 - 19968: 0xECA1,
+ 35700 - 19968: 0xCCB9,
+ 35703 - 19968: 0xFBDE,
+ 35709 - 19968: 0xE7E2,
+ 35712 - 19968: 0xD4C1,
+ 35722 - 19968: 0xDCA8,
+ 35728 - 19968: 0xE2C2,
+ 35730 - 19968: 0xF3D8,
+ 35731 - 19968: 0xE5D3,
+ 35734 - 19968: 0xF3D9,
+ 35738 - 19968: 0xF3C6,
+ 35895 - 19968: 0xCDDB,
+ 35903 - 19968: 0xCDAC,
+ 35905 - 19968: 0xFCC3,
+ 35910 - 19968: 0xD4E7,
+ 35912 - 19968: 0xD1C2,
+ 35914 - 19968: 0xF9A5,
+ 35916 - 19968: 0xE8D5,
+ 35925 - 19968: 0xE3CE,
+ 35930 - 19968: 0xD4CA,
+ 35937 - 19968: 0xDFDA,
+ 35946 - 19968: 0xFBDF,
+ 35947 - 19968: 0xE7E3,
+ 35961 - 19968: 0xF8FB,
+ 35962 - 19968: 0xE3CF,
+ 35970 - 19968: 0xF5B0,
+ 35978 - 19968: 0xD8E7,
+ 35980 - 19968: 0xD9C9,
+ 35997 - 19968: 0xF8AF,
+ 35998 - 19968: 0xEFF6,
+ 36000 - 19968: 0xDDB6,
+ 36001 - 19968: 0xEEAF,
+ 36002 - 19968: 0xCDF8,
+ 36007 - 19968: 0xDEB8,
+ 36008 - 19968: 0xFCA7,
+ 36009 - 19968: 0xF7FC,
+ 36010 - 19968: 0xF7B1,
+ 36011 - 19968: 0xCEBB,
+ 36012 - 19968: 0xF4A1,
+ 36015 - 19968: 0xEECD,
+ 36016 - 19968: 0xE1AE,
+ 36019 - 19968: 0xECC3,
+ 36020 - 19968: 0xCFFE,
+ 36022 - 19968: 0xF8BF,
+ 36023 - 19968: 0xD8E2,
+ 36024 - 19968: 0xD3E8,
+ 36027 - 19968: 0xDEA8,
+ 36028 - 19968: 0xF4E4,
+ 36029 - 19968: 0xECC2,
+ 36031 - 19968: 0xD9F5,
+ 36032 - 19968: 0xF9C5,
+ 36033 - 19968: 0xDDD3,
+ 36034 - 19968: 0xD6F1,
+ 36035 - 19968: 0xECFC,
+ 36036 - 19968: 0xFCF0,
+ 36039 - 19968: 0xEDC0,
+ 36040 - 19968: 0xCAB9,
+ 36042 - 19968: 0xEEE4,
+ 36049 - 19968: 0xF2E1,
+ 36051 - 19968: 0xDEB9,
+ 36058 - 19968: 0xD6F2,
+ 36060 - 19968: 0xDEF4,
+ 36062 - 19968: 0xDFDB,
+ 36064 - 19968: 0xDBD3,
+ 36066 - 19968: 0xFAE7,
+ 36067 - 19968: 0xD8E3,
+ 36068 - 19968: 0xF4C1,
+ 36070 - 19968: 0xDDB7,
+ 36074 - 19968: 0xF2F5,
+ 36077 - 19968: 0xD4AE,
+ 36084 - 19968: 0xD6F3,
+ 36091 - 19968: 0xDDB8,
+ 36092 - 19968: 0xCFC5,
+ 36093 - 19968: 0xDFDF,
+ 36100 - 19968: 0xF2BE,
+ 36101 - 19968: 0xF6A1,
+ 36103 - 19968: 0xEBCB,
+ 36104 - 19968: 0xF1FC,
+ 36106 - 19968: 0xF3C7,
+ 36109 - 19968: 0xE0EB,
+ 36115 - 19968: 0xEDFC,
+ 36118 - 19968: 0xE1DB,
+ 36196 - 19968: 0xEEE5,
+ 36198 - 19968: 0xDEF5,
+ 36203 - 19968: 0xFAD3,
+ 36208 - 19968: 0xF1CB,
+ 36211 - 19968: 0xD0AF,
+ 36212 - 19968: 0xDDB9,
+ 36215 - 19968: 0xD1C3,
+ 36229 - 19968: 0xF5B1,
+ 36234 - 19968: 0xEAC6,
+ 36249 - 19968: 0xF0E1,
+ 36259 - 19968: 0xF6AC,
+ 36264 - 19968: 0xF5D9,
+ 36275 - 19968: 0xF0EB,
+ 36282 - 19968: 0xDDBA,
+ 36286 - 19968: 0xF2BF,
+ 36294 - 19968: 0xF7C5,
+ 36299 - 19968: 0xDBA2,
+ 36300 - 19968: 0xF2F6,
+ 36303 - 19968: 0xCABA,
+ 36315 - 19968: 0xF7F5,
+ 36317 - 19968: 0xCBE5,
+ 36321 - 19968: 0xEEE6,
+ 36323 - 19968: 0xE0D3,
+ 36328 - 19968: 0xCEA5,
+ 36335 - 19968: 0xD6D8,
+ 36339 - 19968: 0xD4AF,
+ 36362 - 19968: 0xE9C9,
+ 36367 - 19968: 0xD3CE,
+ 36368 - 19968: 0xF4C2,
+ 36382 - 19968: 0xCBE6,
+ 36394 - 19968: 0xF1A1,
+ 36400 - 19968: 0xEBB2,
+ 36405 - 19968: 0xF1A2,
+ 36418 - 19968: 0xEBB3,
+ 36420 - 19968: 0xF0B4,
+ 36423 - 19968: 0xCBF4,
+ 36424 - 19968: 0xD4B0,
+ 36425 - 19968: 0xF3B2,
+ 36426 - 19968: 0xFBB7,
+ 36441 - 19968: 0xF5EC,
+ 36447 - 19968: 0xEEE7,
+ 36448 - 19968: 0xF4B2,
+ 36468 - 19968: 0xF5ED,
+ 36470 - 19968: 0xCFF3,
+ 36481 - 19968: 0xF0E2,
+ 36487 - 19968: 0xEECE,
+ 36490 - 19968: 0xF1CC,
+ 36493 - 19968: 0xE5B8,
+ 36522 - 19968: 0xD7F5,
+ 36523 - 19968: 0xE3F3,
+ 36524 - 19968: 0xCFE5,
+ 36544 - 19968: 0xCFC6,
+ 36554 - 19968: 0xF3B3,
+ 36555 - 19968: 0xE4D8,
+ 36556 - 19968: 0xCFF9,
+ 36557 - 19968: 0xCFDA,
+ 36562 - 19968: 0xFACD,
+ 36575 - 19968: 0xE6E3,
+ 36587 - 19968: 0xF2E2,
+ 36600 - 19968: 0xF5EE,
+ 36603 - 19968: 0xCABB,
+ 36606 - 19968: 0xE3DC,
+ 36611 - 19968: 0xCEF2,
+ 36613 - 19968: 0xD6D9,
+ 36617 - 19968: 0xEEB0,
+ 36626 - 19968: 0xF4E5,
+ 36627 - 19968: 0xD8C2,
+ 36628 - 19968: 0xDCD0,
+ 36629 - 19968: 0xCCEE,
+ 36635 - 19968: 0xD5E0,
+ 36636 - 19968: 0xF6CA,
+ 36637 - 19968: 0xFDCA,
+ 36638 - 19968: 0xD8D6,
+ 36639 - 19968: 0xF4CF,
+ 36646 - 19968: 0xD6A6,
+ 36647 - 19968: 0xDCBE,
+ 36649 - 19968: 0xDBD4,
+ 36650 - 19968: 0xD7C7,
+ 36655 - 19968: 0xF2FE,
+ 36659 - 19968: 0xF1CD,
+ 36664 - 19968: 0xE2C3,
+ 36665 - 19968: 0xDCDE,
+ 36667 - 19968: 0xDCDF,
+ 36670 - 19968: 0xEFAD,
+ 36671 - 19968: 0xE6AB,
+ 36676 - 19968: 0xF9DD,
+ 36677 - 19968: 0xEABF,
+ 36681 - 19968: 0xEFAE,
+ 36685 - 19968: 0xF4D0,
+ 36686 - 19968: 0xCEF3,
+ 36701 - 19968: 0xE6AC,
+ 36703 - 19968: 0xCEDE,
+ 36706 - 19968: 0xD5F9,
+ 36763 - 19968: 0xE3F4,
+ 36764 - 19968: 0xCDD0,
+ 36771 - 19968: 0xD5B8,
+ 36774 - 19968: 0xF7FD,
+ 36776 - 19968: 0xDCA9,
+ 36781 - 19968: 0xDEF6,
+ 36783 - 19968: 0xDCAA,
+ 36784 - 19968: 0xF2E3,
+ 36785 - 19968: 0xE9B4,
+ 36786 - 19968: 0xD2DC,
+ 36802 - 19968: 0xE9E6,
+ 36805 - 19968: 0xE3F6,
+ 36814 - 19968: 0xE7CA,
+ 36817 - 19968: 0xD0CE,
+ 36820 - 19968: 0xDAF7,
+ 36838 - 19968: 0xCABC,
+ 36842 - 19968: 0xEEE8,
+ 36843 - 19968: 0xDADE,
+ 36845 - 19968: 0xF2F7,
+ 36848 - 19968: 0xE2FB,
+ 36850 - 19968: 0xCCA6,
+ 36855 - 19968: 0xDABB,
+ 36857 - 19968: 0xEEE9,
+ 36861 - 19968: 0xF5DA,
+ 36864 - 19968: 0xF7DC,
+ 36865 - 19968: 0xE1EA,
+ 36866 - 19968: 0xCEC1,
+ 36867 - 19968: 0xD4B1,
+ 36869 - 19968: 0xFDB1,
+ 36870 - 19968: 0xE6BD,
+ 36872 - 19968: 0xFBAD,
+ 36875 - 19968: 0xF8E7,
+ 36877 - 19968: 0xE1CE,
+ 36879 - 19968: 0xF7E2,
+ 36880 - 19968: 0xF5EF,
+ 36881 - 19968: 0xCFC7,
+ 36884 - 19968: 0xD4B2,
+ 36885 - 19968: 0xCCEF,
+ 36887 - 19968: 0xD4E8,
+ 36889 - 19968: 0xEECF,
+ 36890 - 19968: 0xF7D7,
+ 36893 - 19968: 0xE0A6,
+ 36894 - 19968: 0xD6C1,
+ 36895 - 19968: 0xE1DC,
+ 36896 - 19968: 0xF0E3,
+ 36897 - 19968: 0xF1E4,
+ 36898 - 19968: 0xDCF1,
+ 36899 - 19968: 0xD6A7,
+ 36910 - 19968: 0xF4F5,
+ 36913 - 19968: 0xF1CE,
+ 36914 - 19968: 0xF2E4,
+ 36917 - 19968: 0xD0B0,
+ 36920 - 19968: 0xECEF,
+ 36924 - 19968: 0xF9BA,
+ 36926 - 19968: 0xEBB5,
+ 36929 - 19968: 0xD4ED,
+ 36930 - 19968: 0xE2C4,
+ 36935 - 19968: 0xE9E7,
+ 36938 - 19968: 0xEBB4,
+ 36939 - 19968: 0xEAA1,
+ 36941 - 19968: 0xF8BC,
+ 36942 - 19968: 0xCEA6,
+ 36944 - 19968: 0xF9C6,
+ 36945 - 19968: 0xFCDA,
+ 36947 - 19968: 0xD4B3,
+ 36948 - 19968: 0xD3B9,
+ 36949 - 19968: 0xEADE,
+ 36953 - 19968: 0xE9AB,
+ 36956 - 19968: 0xE1E1,
+ 36957 - 19968: 0xD3CF,
+ 36958 - 19968: 0xF4F6,
+ 36960 - 19968: 0xEAC0,
+ 36961 - 19968: 0xE1CF,
+ 36963 - 19968: 0xCCBA,
+ 36969 - 19968: 0xEEEA,
+ 36973 - 19968: 0xF0E4,
+ 36974 - 19968: 0xF3B4,
+ 36975 - 19968: 0xD4EE,
+ 36978 - 19968: 0xF2C0,
+ 36981 - 19968: 0xF1E5,
+ 36983 - 19968: 0xF4C3,
+ 36984 - 19968: 0xE0D4,
+ 36986 - 19968: 0xEBB6,
+ 36988 - 19968: 0xD7A1,
+ 36989 - 19968: 0xCBE8,
+ 36991 - 19968: 0xF9AD,
+ 36992 - 19968: 0xE9AD,
+ 36993 - 19968: 0xD8E4,
+ 36994 - 19968: 0xFAB3,
+ 36995 - 19968: 0xE2C5,
+ 36996 - 19968: 0xFCBD,
+ 36999 - 19968: 0xECC4,
+ 37000 - 19968: 0xD8B1,
+ 37002 - 19968: 0xDCAB,
+ 37007 - 19968: 0xD5A4,
+ 37009 - 19968: 0xEBE9,
+ 37013 - 19968: 0xE8BB,
+ 37017 - 19968: 0xD8D7,
+ 37026 - 19968: 0xFBAE,
+ 37027 - 19968: 0xD1E1,
+ 37030 - 19968: 0xDBC0,
+ 37032 - 19968: 0xF5BE,
+ 37034 - 19968: 0xDEF7,
+ 37039 - 19968: 0xCAFB,
+ 37040 - 19968: 0xF7C6,
+ 37041 - 19968: 0xCFC8,
+ 37045 - 19968: 0xE1D0,
+ 37048 - 19968: 0xEED0,
+ 37057 - 19968: 0xE9F4,
+ 37066 - 19968: 0xCEF4,
+ 37086 - 19968: 0xD5CD,
+ 37089 - 19968: 0xCFDB,
+ 37096 - 19968: 0xDDBB,
+ 37101 - 19968: 0xCEAC,
+ 37109 - 19968: 0xE9E8,
+ 37117 - 19968: 0xD4B4,
+ 37122 - 19968: 0xE4C7,
+ 37138 - 19968: 0xF5DB,
+ 37141 - 19968: 0xFAC1,
+ 37145 - 19968: 0xDEA9,
+ 37159 - 19968: 0xD4F8,
+ 37165 - 19968: 0xEFF7,
+ 37170 - 19968: 0xD3B3,
+ 37193 - 19968: 0xEBB7,
+ 37194 - 19968: 0xEFF8,
+ 37195 - 19968: 0xF5DC,
+ 37196 - 19968: 0xEDCC,
+ 37197 - 19968: 0xDBD5,
+ 37198 - 19968: 0xF1CF,
+ 37202 - 19968: 0xF1D0,
+ 37218 - 19968: 0xF5B2,
+ 37225 - 19968: 0xD9AE,
+ 37226 - 19968: 0xD5AC,
+ 37228 - 19968: 0xE2C6,
+ 37237 - 19968: 0xFDA3,
+ 37239 - 19968: 0xFBE5,
+ 37240 - 19968: 0xDFAB,
+ 37255 - 19968: 0xE2F5,
+ 37257 - 19968: 0xF6AD,
+ 37259 - 19968: 0xF5B3,
+ 37261 - 19968: 0xF0B5,
+ 37266 - 19968: 0xE1A5,
+ 37276 - 19968: 0xF5DD,
+ 37291 - 19968: 0xECA2,
+ 37292 - 19968: 0xEDFD,
+ 37294 - 19968: 0xF5B4,
+ 37295 - 19968: 0xFBB8,
+ 37297 - 19968: 0xDBA3,
+ 37300 - 19968: 0xD6CA,
+ 37301 - 19968: 0xCBD9,
+ 37312 - 19968: 0xE5D4,
+ 37319 - 19968: 0xF3FA,
+ 37321 - 19968: 0xEBB8,
+ 37323 - 19968: 0xE0B7,
+ 37324 - 19968: 0xD7EC,
+ 37325 - 19968: 0xF1EC,
+ 37326 - 19968: 0xE5AF,
+ 37327 - 19968: 0xD5E1,
+ 37328 - 19968: 0xD7ED,
+ 37329 - 19968: 0xD1D1,
+ 37335 - 19968: 0xE1F2,
+ 37336 - 19968: 0xEFF9,
+ 37340 - 19968: 0xDDBC,
+ 37341 - 19968: 0xF6DC,
+ 37347 - 19968: 0xF0E5,
+ 37351 - 19968: 0xF4C4,
+ 37354 - 19968: 0xE9E9,
+ 37365 - 19968: 0xF3FB,
+ 37389 - 19968: 0xD4EF,
+ 37392 - 19968: 0xCCA2,
+ 37393 - 19968: 0xF7FE,
+ 37394 - 19968: 0xDFBC,
+ 37399 - 19968: 0xEBCD,
+ 37406 - 19968: 0xD0B7,
+ 37428 - 19968: 0xD6C2,
+ 37434 - 19968: 0xE8AD,
+ 37439 - 19968: 0xEFAF,
+ 37440 - 19968: 0xCBA5,
+ 37445 - 19968: 0xCBE9,
+ 37449 - 19968: 0xFAE8,
+ 37463 - 19968: 0xCCC6,
+ 37467 - 19968: 0xE6E7,
+ 37470 - 19968: 0xEAC7,
+ 37474 - 19968: 0xDBA4,
+ 37476 - 19968: 0xCFC9,
+ 37477 - 19968: 0xE2FC,
+ 37478 - 19968: 0xEFFA,
+ 37504 - 19968: 0xEBDE,
+ 37507 - 19968: 0xF5C8,
+ 37509 - 19968: 0xD4DE,
+ 37521 - 19968: 0xE0D5,
+ 37523 - 19968: 0xEFB0,
+ 37526 - 19968: 0xE2C7,
+ 37528 - 19968: 0xD9AF,
+ 37532 - 19968: 0xF9E7,
+ 37555 - 19968: 0xE7E5,
+ 37558 - 19968: 0xCFCA,
+ 37559 - 19968: 0xE1D1,
+ 37561 - 19968: 0xE2C8,
+ 37580 - 19968: 0xEFFB,
+ 37583 - 19968: 0xFAF9,
+ 37586 - 19968: 0xDCF2,
+ 37604 - 19968: 0xE0A7,
+ 37610 - 19968: 0xF8E8,
+ 37624 - 19968: 0xCBEA,
+ 37628 - 19968: 0xCBBC,
+ 37636 - 19968: 0xD6E2,
+ 37648 - 19968: 0xF5DE,
+ 37656 - 19968: 0xF5DF,
+ 37658 - 19968: 0xEEB6,
+ 37662 - 19968: 0xE2F6,
+ 37663 - 19968: 0xD3CA,
+ 37664 - 19968: 0xEFFC,
+ 37665 - 19968: 0xD1C4,
+ 37666 - 19968: 0xEFB1,
+ 37668 - 19968: 0xD1C5,
+ 37670 - 19968: 0xD0DE,
+ 37672 - 19968: 0xD9E1,
+ 37675 - 19968: 0xE0B8,
+ 37678 - 19968: 0xCDD1,
+ 37679 - 19968: 0xF3B9,
+ 37704 - 19968: 0xE7CC,
+ 37706 - 19968: 0xD6A8,
+ 37707 - 19968: 0xCEA7,
+ 37709 - 19968: 0xD4B5,
+ 37716 - 19968: 0xE4C8,
+ 37723 - 19968: 0xD3B4,
+ 37742 - 19968: 0xEBB9,
+ 37749 - 19968: 0xCBF5,
+ 37756 - 19968: 0xF6DD,
+ 37758 - 19968: 0xF1A3,
+ 37772 - 19968: 0xCCC7,
+ 37780 - 19968: 0xE9CA,
+ 37782 - 19968: 0xE1F0,
+ 37786 - 19968: 0xF5E0,
+ 37795 - 19968: 0xFBAF,
+ 37799 - 19968: 0xCBD1,
+ 37804 - 19968: 0xFBE0,
+ 37805 - 19968: 0xF2E5,
+ 37808 - 19968: 0xECF0,
+ 37827 - 19968: 0xF0EC,
+ 37841 - 19968: 0xEEEB,
+ 37854 - 19968: 0xE9CB,
+ 37857 - 19968: 0xCCF0,
+ 37860 - 19968: 0xD7AF,
+ 37878 - 19968: 0xF3A1,
+ 37892 - 19968: 0xFCF5,
+ 37912 - 19968: 0xF1A4,
+ 37925 - 19968: 0xE0D6,
+ 37931 - 19968: 0xEFB2,
+ 37941 - 19968: 0xF4D1,
+ 37944 - 19968: 0xF7A1,
+ 37956 - 19968: 0xF1D1,
+ 37969 - 19968: 0xCAFC,
+ 37970 - 19968: 0xCAFD,
+ 37979 - 19968: 0xCECE,
+ 38013 - 19968: 0xF3C8,
+ 38015 - 19968: 0xF3BA,
+ 38263 - 19968: 0xEDFE,
+ 38272 - 19968: 0xDAA6,
+ 38275 - 19968: 0xE0EC,
+ 38281 - 19968: 0xF8CD,
+ 38283 - 19968: 0xCBD2,
+ 38287 - 19968: 0xEBCE,
+ 38289 - 19968: 0xF9D8,
+ 38290 - 19968: 0xF9D9,
+ 38291 - 19968: 0xCAE0,
+ 38292 - 19968: 0xDACA,
+ 38296 - 19968: 0xCBA6,
+ 38307 - 19968: 0xCAC8,
+ 38308 - 19968: 0xF9EE,
+ 38309 - 19968: 0xDBEC,
+ 38312 - 19968: 0xD0B1,
+ 38317 - 19968: 0xD5EF,
+ 38321 - 19968: 0xE6F3,
+ 38331 - 19968: 0xE7A2,
+ 38332 - 19968: 0xE4D9,
+ 38343 - 19968: 0xE4E1,
+ 38346 - 19968: 0xFCC4,
+ 38356 - 19968: 0xF9EF,
+ 38357 - 19968: 0xCFF4,
+ 38358 - 19968: 0xF7E6,
+ 38364 - 19968: 0xCEBC,
+ 38369 - 19968: 0xF4C5,
+ 38370 - 19968: 0xDCA3,
+ 38428 - 19968: 0xDDBD,
+ 38433 - 19968: 0xF4C6,
+ 38442 - 19968: 0xF8A1,
+ 38446 - 19968: 0xE8D6,
+ 38450 - 19968: 0xDBC1,
+ 38459 - 19968: 0xF0E6,
+ 38463 - 19968: 0xE4B9,
+ 38464 - 19968: 0xF6ED,
+ 38466 - 19968: 0xF9AE,
+ 38468 - 19968: 0xDDBE,
+ 38475 - 19968: 0xD7B0,
+ 38476 - 19968: 0xD8E8,
+ 38477 - 19968: 0xCBBD,
+ 38480 - 19968: 0xF9DA,
+ 38491 - 19968: 0xF8CE,
+ 38492 - 19968: 0xF9F0,
+ 38493 - 19968: 0xE0ED,
+ 38494 - 19968: 0xE3B3,
+ 38495 - 19968: 0xF4B3,
+ 38498 - 19968: 0xEAC2,
+ 38499 - 19968: 0xF2E6,
+ 38500 - 19968: 0xF0B6,
+ 38506 - 19968: 0xDBD6,
+ 38512 - 19968: 0xEBE4,
+ 38515 - 19968: 0xF2E7,
+ 38517 - 19968: 0xD7D5,
+ 38518 - 19968: 0xD4B6,
+ 38519 - 19968: 0xF9E8,
+ 38520 - 19968: 0xD7C1,
+ 38525 - 19968: 0xE5D5,
+ 38533 - 19968: 0xE9EA,
+ 38534 - 19968: 0xD7CC,
+ 38538 - 19968: 0xD3E9,
+ 38539 - 19968: 0xE2C9,
+ 38541 - 19968: 0xFCDB,
+ 38542 - 19968: 0xCDAD,
+ 38548 - 19968: 0xCCB0,
+ 38549 - 19968: 0xEAA2,
+ 38552 - 19968: 0xE4F6,
+ 38553 - 19968: 0xD0C0,
+ 38555 - 19968: 0xF0B7,
+ 38556 - 19968: 0xEEA1,
+ 38563 - 19968: 0xD7F6,
+ 38567 - 19968: 0xE2CA,
+ 38568 - 19968: 0xE2CB,
+ 38570 - 19968: 0xFACF,
+ 38577 - 19968: 0xEBDF,
+ 38583 - 19968: 0xD6CB,
+ 38587 - 19968: 0xF4B4,
+ 38592 - 19968: 0xEDCD,
+ 38593 - 19968: 0xE4D2,
+ 38596 - 19968: 0xEAA9,
+ 38597 - 19968: 0xE4BA,
+ 38598 - 19968: 0xF3A2,
+ 38599 - 19968: 0xCDD2,
+ 38601 - 19968: 0xF6CB,
+ 38603 - 19968: 0xF1E6,
+ 38604 - 19968: 0xEDC1,
+ 38605 - 19968: 0xE8BC,
+ 38606 - 19968: 0xEED1,
+ 38613 - 19968: 0xF0E7,
+ 38614 - 19968: 0xE2CC,
+ 38617 - 19968: 0xE4AA,
+ 38619 - 19968: 0xF5E1,
+ 38620 - 19968: 0xEDDA,
+ 38626 - 19968: 0xD7EE,
+ 38627 - 19968: 0xD1F1,
+ 38632 - 19968: 0xE9EB,
+ 38633 - 19968: 0xE9EC,
+ 38634 - 19968: 0xE0E4,
+ 38639 - 19968: 0xDAA7,
+ 38640 - 19968: 0xDDD4,
+ 38642 - 19968: 0xEAA3,
+ 38646 - 19968: 0xD6C3,
+ 38647 - 19968: 0xD6F4,
+ 38649 - 19968: 0xDADF,
+ 38651 - 19968: 0xEFB3,
+ 38656 - 19968: 0xE2CD,
+ 38662 - 19968: 0xEFFD,
+ 38663 - 19968: 0xF2E8,
+ 38673 - 19968: 0xEFC5,
+ 38675 - 19968: 0xE7E7,
+ 38678 - 19968: 0xD7FD,
+ 38681 - 19968: 0xE7CE,
+ 38684 - 19968: 0xDFDC,
+ 38686 - 19968: 0xF9C7,
+ 38695 - 19968: 0xD9F6,
+ 38704 - 19968: 0xDFAC,
+ 38706 - 19968: 0xD6DA,
+ 38713 - 19968: 0xDCA4,
+ 38717 - 19968: 0xF0B8,
+ 38722 - 19968: 0xD5FA,
+ 38724 - 19968: 0xE4F7,
+ 38728 - 19968: 0xD6C4,
+ 38737 - 19968: 0xF4EC,
+ 38742 - 19968: 0xEFFE,
+ 38748 - 19968: 0xF0A1,
+ 38750 - 19968: 0xDEAA,
+ 38753 - 19968: 0xDABC,
+ 38754 - 19968: 0xD8FC,
+ 38761 - 19968: 0xFAD4,
+ 38765 - 19968: 0xECE5,
+ 38772 - 19968: 0xFCA8,
+ 38775 - 19968: 0xECE6,
+ 38778 - 19968: 0xD8CB,
+ 38795 - 19968: 0xFBB9,
+ 38797 - 19968: 0xE4D3,
+ 38799 - 19968: 0xCDF9,
+ 38816 - 19968: 0xCFD3,
+ 38824 - 19968: 0xCAEA,
+ 38827 - 19968: 0xCFD4,
+ 38829 - 19968: 0xF8BD,
+ 38854 - 19968: 0xF4C7,
+ 38859 - 19968: 0xEADF,
+ 38867 - 19968: 0xF9DB,
+ 38876 - 19968: 0xD4B7,
+ 38899 - 19968: 0xEBE5,
+ 38902 - 19968: 0xE1D2,
+ 38907 - 19968: 0xEAA4,
+ 38911 - 19968: 0xFAC2,
+ 38912 - 19968: 0xFBE1,
+ 38913 - 19968: 0xFAED,
+ 38914 - 19968: 0xF0A2,
+ 38915 - 19968: 0xCCF1,
+ 38917 - 19968: 0xFAA3,
+ 38918 - 19968: 0xE2F7,
+ 38920 - 19968: 0xE2CE,
+ 38922 - 19968: 0xE9F5,
+ 38924 - 19968: 0xE1EB,
+ 38928 - 19968: 0xE7E8,
+ 38929 - 19968: 0xE8D7,
+ 38930 - 19968: 0xDAF8,
+ 38931 - 19968: 0xD4CB,
+ 38935 - 19968: 0xF7F6,
+ 38936 - 19968: 0xD6C5,
+ 38957 - 19968: 0xD4E9,
+ 38960 - 19968: 0xFAFA,
+ 38968 - 19968: 0xCCF2,
+ 38969 - 19968: 0xF7DD,
+ 38971 - 19968: 0xDEBA,
+ 38982 - 19968: 0xCEA8,
+ 38988 - 19968: 0xF0B9,
+ 38989 - 19968: 0xE4FE,
+ 38990 - 19968: 0xE4C9,
+ 38996 - 19968: 0xE4D4,
+ 39000 - 19968: 0xEAC3,
+ 39002 - 19968: 0xEFB4,
+ 39006 - 19968: 0xD7BE,
+ 39013 - 19968: 0xFBE2,
+ 39015 - 19968: 0xCDD3,
+ 39019 - 19968: 0xEFB5,
+ 39023 - 19968: 0xFAE9,
+ 39080 - 19968: 0xF9A6,
+ 39087 - 19968: 0xDFBD,
+ 39089 - 19968: 0xF7C7,
+ 39108 - 19968: 0xF8FD,
+ 39111 - 19968: 0xF8FC,
+ 39131 - 19968: 0xDEAB,
+ 39132 - 19968: 0xDBE8,
+ 39135 - 19968: 0xE3DD,
+ 39137 - 19968: 0xE1E2,
+ 39138 - 19968: 0xD1C6,
+ 39149 - 19968: 0xF6D0,
+ 39150 - 19968: 0xEBE6,
+ 39151 - 19968: 0xDAF9,
+ 39156 - 19968: 0xECC7,
+ 39164 - 19968: 0xDEF8,
+ 39165 - 19968: 0xF8E9,
+ 39166 - 19968: 0xE3DE,
+ 39171 - 19968: 0xCEF5,
+ 39177 - 19968: 0xFAC3,
+ 39178 - 19968: 0xE5D7,
+ 39180 - 19968: 0xECC8,
+ 39184 - 19968: 0xF3C9,
+ 39187 - 19968: 0xE4BB,
+ 39192 - 19968: 0xE6AE,
+ 39198 - 19968: 0xEFB6,
+ 39200 - 19968: 0xDCBF,
+ 39208 - 19968: 0xCEBD,
+ 39237 - 19968: 0xD8C3,
+ 39241 - 19968: 0xD0CF,
+ 39243 - 19968: 0xCFFA,
+ 39244 - 19968: 0xF3CA,
+ 39245 - 19968: 0xE0D7,
+ 39249 - 19968: 0xD1C7,
+ 39250 - 19968: 0xE9AE,
+ 39252 - 19968: 0xE8BD,
+ 39255 - 19968: 0xFAC4,
+ 39318 - 19968: 0xE2CF,
+ 39321 - 19968: 0xFAC5,
+ 39325 - 19968: 0xF9B8,
+ 39333 - 19968: 0xDCE0,
+ 39336 - 19968: 0xFBB0,
+ 39340 - 19968: 0xD8A9,
+ 39341 - 19968: 0xE5DF,
+ 39342 - 19968: 0xF9A7,
+ 39345 - 19968: 0xF6EE,
+ 39347 - 19968: 0xF6CC,
+ 39348 - 19968: 0xE2F8,
+ 39353 - 19968: 0xECF1,
+ 39361 - 19968: 0xDAE0,
+ 39376 - 19968: 0xF1D2,
+ 39377 - 19968: 0xD2CC,
+ 39378 - 19968: 0xCFCB,
+ 39381 - 19968: 0xCABD,
+ 39385 - 19968: 0xDDBF,
+ 39389 - 19968: 0xF6EF,
+ 39391 - 19968: 0xDEF9,
+ 39405 - 19968: 0xFAB4,
+ 39409 - 19968: 0xD5AD,
+ 39423 - 19968: 0xF1E7,
+ 39425 - 19968: 0xDEBE,
+ 39432 - 19968: 0xDCC0,
+ 39438 - 19968: 0xD1C8,
+ 39439 - 19968: 0xD1C9,
+ 39449 - 19968: 0xF8BE,
+ 39467 - 19968: 0xCBF6,
+ 39472 - 19968: 0xD4F9,
+ 39478 - 19968: 0xF5E2,
+ 39479 - 19968: 0xE1D3,
+ 39488 - 19968: 0xD8E9,
+ 39491 - 19968: 0xF8FE,
+ 39493 - 19968: 0xCFCC,
+ 39501 - 19968: 0xFDA4,
+ 39509 - 19968: 0xCEF6,
+ 39511 - 19968: 0xFAD0,
+ 39514 - 19968: 0xCCF3,
+ 39515 - 19968: 0xE6BE,
+ 39519 - 19968: 0xF6AE,
+ 39522 - 19968: 0xD5F0,
+ 39525 - 19968: 0xD1CA,
+ 39529 - 19968: 0xFCBE,
+ 39530 - 19968: 0xD5F1,
+ 39592 - 19968: 0xCDE9,
+ 39608 - 19968: 0xFAB5,
+ 39635 - 19968: 0xE2D0,
+ 39636 - 19968: 0xF4F7,
+ 39640 - 19968: 0xCDD4,
+ 39653 - 19968: 0xE7A3,
+ 39662 - 19968: 0xDBA5,
+ 39706 - 19968: 0xE2D1,
+ 39719 - 19968: 0xD7A2,
+ 39722 - 19968: 0xF7E3,
+ 39729 - 19968: 0xEAA6,
+ 39740 - 19968: 0xD0A1,
+ 39745 - 19968: 0xCEDA,
+ 39746 - 19968: 0xFBEB,
+ 39747 - 19968: 0xDBA6,
+ 39748 - 19968: 0xDBDE,
+ 39749 - 19968: 0xD8E5,
+ 39759 - 19968: 0xEAE0,
+ 39764 - 19968: 0xD8AA,
+ 39770 - 19968: 0xE5E0,
+ 39791 - 19968: 0xD6DB,
+ 39822 - 19968: 0xEFC6,
+ 39825 - 19968: 0xF8EA,
+ 39839 - 19968: 0xE4D5,
+ 39851 - 19968: 0xCEF7,
+ 39854 - 19968: 0xE0D8,
+ 39881 - 19968: 0xD7EF,
+ 39894 - 19968: 0xF4ED,
+ 39908 - 19968: 0xCDE6,
+ 39912 - 19968: 0xCCF4,
+ 39949 - 19968: 0xF5E3,
+ 39952 - 19968: 0xE4CA,
+ 39954 - 19968: 0xDCE1,
+ 39957 - 19968: 0xF9C8,
+ 39973 - 19968: 0xFCBF,
+ 39986 - 19968: 0xE8A7,
+ 39995 - 19968: 0xD8C4,
+ 40007 - 19968: 0xCBBE,
+ 40009 - 19968: 0xDCAE,
+ 40023 - 19968: 0xD7F7,
+ 40165 - 19968: 0xF0E8,
+ 40167 - 19968: 0xDDC0,
+ 40169 - 19968: 0xCFCD,
+ 40179 - 19968: 0xDCF3,
+ 40180 - 19968: 0xD9B0,
+ 40182 - 19968: 0xE6E9,
+ 40201 - 19968: 0xE4BC,
+ 40219 - 19968: 0xEAC4,
+ 40230 - 19968: 0xE4EC,
+ 40232 - 19968: 0xE4E5,
+ 40251 - 19968: 0xFBF8,
+ 40273 - 19968: 0xCCBB,
+ 40285 - 19968: 0xE4BD,
+ 40288 - 19968: 0xCDDC,
+ 40289 - 19968: 0xD9F7,
+ 40300 - 19968: 0xDDDF,
+ 40306 - 19968: 0xEDCE,
+ 40361 - 19968: 0xD9D0,
+ 40367 - 19968: 0xE5A3,
+ 40372 - 19968: 0xF9CD,
+ 40388 - 19968: 0xCDAE,
+ 40407 - 19968: 0xCFCE,
+ 40434 - 19968: 0xF6AF,
+ 40440 - 19968: 0xFDD3,
+ 40441 - 19968: 0xEBED,
+ 40442 - 19968: 0xD6DC,
+ 40474 - 19968: 0xE5A4,
+ 40478 - 19968: 0xD5B6,
+ 40565 - 19968: 0xD6DD,
+ 40569 - 19968: 0xF9E9,
+ 40573 - 19968: 0xE7A4,
+ 40575 - 19968: 0xD6E3,
+ 40594 - 19968: 0xD1CB,
+ 40595 - 19968: 0xD6E4,
+ 40599 - 19968: 0xD5F2,
+ 40605 - 19968: 0xDEFA,
+ 40607 - 19968: 0xD7F8,
+ 40613 - 19968: 0xD8EA,
+ 40628 - 19968: 0xCFD5,
+ 40629 - 19968: 0xD8FD,
+ 40635 - 19968: 0xD8AB,
+ 40638 - 19968: 0xFDCB,
+ 40643 - 19968: 0xFCDC,
+ 40653 - 19968: 0xE0A8,
+ 40654 - 19968: 0xD5F3,
+ 40657 - 19968: 0xFDD9,
+ 40660 - 19968: 0xCCA3,
+ 40664 - 19968: 0xD9F9,
+ 40667 - 19968: 0xD3EA,
+ 40668 - 19968: 0xF5F5,
+ 40670 - 19968: 0xEFC7,
+ 40680 - 19968: 0xD3DA,
+ 40692 - 19968: 0xDABD,
+ 40711 - 19968: 0xE8A8,
+ 40712 - 19968: 0xDCAF,
+ 40718 - 19968: 0xF0A3,
+ 40723 - 19968: 0xCDD5,
+ 40736 - 19968: 0xE0A9,
+ 40763 - 19968: 0xDEAC,
+ 40778 - 19968: 0xF0BA,
+ 40779 - 19968: 0xEEB1,
+ 40782 - 19968: 0xEEB2,
+ 40786 - 19968: 0xF6CD,
+ 40799 - 19968: 0xEED2,
+ 40801 - 19968: 0xD6C6,
+ 40807 - 19968: 0xE0E5,
+ 40810 - 19968: 0xF3BB,
+ 40812 - 19968: 0xE5E1,
+ 40823 - 19968: 0xE4CB,
+ 40845 - 19968: 0xD7A3,
+ 40848 - 19968: 0xDBC2,
+ 40853 - 19968: 0xCAFE,
+ 40860 - 19968: 0xCFCF,
+}
+
+const encode1Low, encode1High = 44032, 55204
+
+var encode1 = [...]uint16{
+ 44032 - 44032: 0xB0A1,
+ 44033 - 44032: 0xB0A2,
+ 44034 - 44032: 0x8141,
+ 44035 - 44032: 0x8142,
+ 44036 - 44032: 0xB0A3,
+ 44037 - 44032: 0x8143,
+ 44038 - 44032: 0x8144,
+ 44039 - 44032: 0xB0A4,
+ 44040 - 44032: 0xB0A5,
+ 44041 - 44032: 0xB0A6,
+ 44042 - 44032: 0xB0A7,
+ 44043 - 44032: 0x8145,
+ 44044 - 44032: 0x8146,
+ 44045 - 44032: 0x8147,
+ 44046 - 44032: 0x8148,
+ 44047 - 44032: 0x8149,
+ 44048 - 44032: 0xB0A8,
+ 44049 - 44032: 0xB0A9,
+ 44050 - 44032: 0xB0AA,
+ 44051 - 44032: 0xB0AB,
+ 44052 - 44032: 0xB0AC,
+ 44053 - 44032: 0xB0AD,
+ 44054 - 44032: 0xB0AE,
+ 44055 - 44032: 0xB0AF,
+ 44056 - 44032: 0x814A,
+ 44057 - 44032: 0xB0B0,
+ 44058 - 44032: 0xB0B1,
+ 44059 - 44032: 0xB0B2,
+ 44060 - 44032: 0xB0B3,
+ 44061 - 44032: 0xB0B4,
+ 44062 - 44032: 0x814B,
+ 44063 - 44032: 0x814C,
+ 44064 - 44032: 0xB0B5,
+ 44065 - 44032: 0x814D,
+ 44066 - 44032: 0x814E,
+ 44067 - 44032: 0x814F,
+ 44068 - 44032: 0xB0B6,
+ 44069 - 44032: 0x8150,
+ 44070 - 44032: 0x8151,
+ 44071 - 44032: 0x8152,
+ 44072 - 44032: 0x8153,
+ 44073 - 44032: 0x8154,
+ 44074 - 44032: 0x8155,
+ 44075 - 44032: 0x8156,
+ 44076 - 44032: 0xB0B7,
+ 44077 - 44032: 0xB0B8,
+ 44078 - 44032: 0x8157,
+ 44079 - 44032: 0xB0B9,
+ 44080 - 44032: 0xB0BA,
+ 44081 - 44032: 0xB0BB,
+ 44082 - 44032: 0x8158,
+ 44083 - 44032: 0x8159,
+ 44084 - 44032: 0x815A,
+ 44085 - 44032: 0x8161,
+ 44086 - 44032: 0x8162,
+ 44087 - 44032: 0x8163,
+ 44088 - 44032: 0xB0BC,
+ 44089 - 44032: 0xB0BD,
+ 44090 - 44032: 0x8164,
+ 44091 - 44032: 0x8165,
+ 44092 - 44032: 0xB0BE,
+ 44093 - 44032: 0x8166,
+ 44094 - 44032: 0x8167,
+ 44095 - 44032: 0x8168,
+ 44096 - 44032: 0xB0BF,
+ 44097 - 44032: 0x8169,
+ 44098 - 44032: 0x816A,
+ 44099 - 44032: 0x816B,
+ 44100 - 44032: 0x816C,
+ 44101 - 44032: 0x816D,
+ 44102 - 44032: 0x816E,
+ 44103 - 44032: 0x816F,
+ 44104 - 44032: 0x8170,
+ 44105 - 44032: 0x8171,
+ 44106 - 44032: 0x8172,
+ 44107 - 44032: 0xB0C0,
+ 44108 - 44032: 0x8173,
+ 44109 - 44032: 0xB0C1,
+ 44110 - 44032: 0x8174,
+ 44111 - 44032: 0x8175,
+ 44112 - 44032: 0x8176,
+ 44113 - 44032: 0x8177,
+ 44114 - 44032: 0x8178,
+ 44115 - 44032: 0x8179,
+ 44116 - 44032: 0xB0C2,
+ 44117 - 44032: 0x817A,
+ 44118 - 44032: 0x8181,
+ 44119 - 44032: 0x8182,
+ 44120 - 44032: 0xB0C3,
+ 44121 - 44032: 0x8183,
+ 44122 - 44032: 0x8184,
+ 44123 - 44032: 0x8185,
+ 44124 - 44032: 0xB0C4,
+ 44125 - 44032: 0x8186,
+ 44126 - 44032: 0x8187,
+ 44127 - 44032: 0x8188,
+ 44128 - 44032: 0x8189,
+ 44129 - 44032: 0x818A,
+ 44130 - 44032: 0x818B,
+ 44131 - 44032: 0x818C,
+ 44132 - 44032: 0x818D,
+ 44133 - 44032: 0x818E,
+ 44134 - 44032: 0x818F,
+ 44135 - 44032: 0x8190,
+ 44136 - 44032: 0x8191,
+ 44137 - 44032: 0x8192,
+ 44138 - 44032: 0x8193,
+ 44139 - 44032: 0x8194,
+ 44140 - 44032: 0x8195,
+ 44141 - 44032: 0x8196,
+ 44142 - 44032: 0x8197,
+ 44143 - 44032: 0x8198,
+ 44144 - 44032: 0xB0C5,
+ 44145 - 44032: 0xB0C6,
+ 44146 - 44032: 0x8199,
+ 44147 - 44032: 0x819A,
+ 44148 - 44032: 0xB0C7,
+ 44149 - 44032: 0x819B,
+ 44150 - 44032: 0x819C,
+ 44151 - 44032: 0xB0C8,
+ 44152 - 44032: 0xB0C9,
+ 44153 - 44032: 0x819D,
+ 44154 - 44032: 0xB0CA,
+ 44155 - 44032: 0x819E,
+ 44156 - 44032: 0x819F,
+ 44157 - 44032: 0x81A0,
+ 44158 - 44032: 0x81A1,
+ 44159 - 44032: 0x81A2,
+ 44160 - 44032: 0xB0CB,
+ 44161 - 44032: 0xB0CC,
+ 44162 - 44032: 0x81A3,
+ 44163 - 44032: 0xB0CD,
+ 44164 - 44032: 0xB0CE,
+ 44165 - 44032: 0xB0CF,
+ 44166 - 44032: 0xB0D0,
+ 44167 - 44032: 0x81A4,
+ 44168 - 44032: 0x81A5,
+ 44169 - 44032: 0xB0D1,
+ 44170 - 44032: 0xB0D2,
+ 44171 - 44032: 0xB0D3,
+ 44172 - 44032: 0xB0D4,
+ 44173 - 44032: 0x81A6,
+ 44174 - 44032: 0x81A7,
+ 44175 - 44032: 0x81A8,
+ 44176 - 44032: 0xB0D5,
+ 44177 - 44032: 0x81A9,
+ 44178 - 44032: 0x81AA,
+ 44179 - 44032: 0x81AB,
+ 44180 - 44032: 0xB0D6,
+ 44181 - 44032: 0x81AC,
+ 44182 - 44032: 0x81AD,
+ 44183 - 44032: 0x81AE,
+ 44184 - 44032: 0x81AF,
+ 44185 - 44032: 0x81B0,
+ 44186 - 44032: 0x81B1,
+ 44187 - 44032: 0x81B2,
+ 44188 - 44032: 0xB0D7,
+ 44189 - 44032: 0xB0D8,
+ 44190 - 44032: 0x81B3,
+ 44191 - 44032: 0xB0D9,
+ 44192 - 44032: 0xB0DA,
+ 44193 - 44032: 0xB0DB,
+ 44194 - 44032: 0x81B4,
+ 44195 - 44032: 0x81B5,
+ 44196 - 44032: 0x81B6,
+ 44197 - 44032: 0x81B7,
+ 44198 - 44032: 0x81B8,
+ 44199 - 44032: 0x81B9,
+ 44200 - 44032: 0xB0DC,
+ 44201 - 44032: 0xB0DD,
+ 44202 - 44032: 0xB0DE,
+ 44203 - 44032: 0x81BA,
+ 44204 - 44032: 0xB0DF,
+ 44205 - 44032: 0x81BB,
+ 44206 - 44032: 0x81BC,
+ 44207 - 44032: 0xB0E0,
+ 44208 - 44032: 0xB0E1,
+ 44209 - 44032: 0x81BD,
+ 44210 - 44032: 0x81BE,
+ 44211 - 44032: 0x81BF,
+ 44212 - 44032: 0x81C0,
+ 44213 - 44032: 0x81C1,
+ 44214 - 44032: 0x81C2,
+ 44215 - 44032: 0x81C3,
+ 44216 - 44032: 0xB0E2,
+ 44217 - 44032: 0xB0E3,
+ 44218 - 44032: 0x81C4,
+ 44219 - 44032: 0xB0E4,
+ 44220 - 44032: 0xB0E5,
+ 44221 - 44032: 0xB0E6,
+ 44222 - 44032: 0x81C5,
+ 44223 - 44032: 0x81C6,
+ 44224 - 44032: 0x81C7,
+ 44225 - 44032: 0xB0E7,
+ 44226 - 44032: 0x81C8,
+ 44227 - 44032: 0x81C9,
+ 44228 - 44032: 0xB0E8,
+ 44229 - 44032: 0x81CA,
+ 44230 - 44032: 0x81CB,
+ 44231 - 44032: 0x81CC,
+ 44232 - 44032: 0xB0E9,
+ 44233 - 44032: 0x81CD,
+ 44234 - 44032: 0x81CE,
+ 44235 - 44032: 0x81CF,
+ 44236 - 44032: 0xB0EA,
+ 44237 - 44032: 0x81D0,
+ 44238 - 44032: 0x81D1,
+ 44239 - 44032: 0x81D2,
+ 44240 - 44032: 0x81D3,
+ 44241 - 44032: 0x81D4,
+ 44242 - 44032: 0x81D5,
+ 44243 - 44032: 0x81D6,
+ 44244 - 44032: 0x81D7,
+ 44245 - 44032: 0xB0EB,
+ 44246 - 44032: 0x81D8,
+ 44247 - 44032: 0xB0EC,
+ 44248 - 44032: 0x81D9,
+ 44249 - 44032: 0x81DA,
+ 44250 - 44032: 0x81DB,
+ 44251 - 44032: 0x81DC,
+ 44252 - 44032: 0x81DD,
+ 44253 - 44032: 0x81DE,
+ 44254 - 44032: 0x81DF,
+ 44255 - 44032: 0x81E0,
+ 44256 - 44032: 0xB0ED,
+ 44257 - 44032: 0xB0EE,
+ 44258 - 44032: 0x81E1,
+ 44259 - 44032: 0x81E2,
+ 44260 - 44032: 0xB0EF,
+ 44261 - 44032: 0x81E3,
+ 44262 - 44032: 0x81E4,
+ 44263 - 44032: 0xB0F0,
+ 44264 - 44032: 0xB0F1,
+ 44265 - 44032: 0x81E5,
+ 44266 - 44032: 0xB0F2,
+ 44267 - 44032: 0x81E6,
+ 44268 - 44032: 0xB0F3,
+ 44269 - 44032: 0x81E7,
+ 44270 - 44032: 0x81E8,
+ 44271 - 44032: 0xB0F4,
+ 44272 - 44032: 0xB0F5,
+ 44273 - 44032: 0xB0F6,
+ 44274 - 44032: 0x81E9,
+ 44275 - 44032: 0xB0F7,
+ 44276 - 44032: 0x81EA,
+ 44277 - 44032: 0xB0F8,
+ 44278 - 44032: 0xB0F9,
+ 44279 - 44032: 0x81EB,
+ 44280 - 44032: 0x81EC,
+ 44281 - 44032: 0x81ED,
+ 44282 - 44032: 0x81EE,
+ 44283 - 44032: 0x81EF,
+ 44284 - 44032: 0xB0FA,
+ 44285 - 44032: 0xB0FB,
+ 44286 - 44032: 0x81F0,
+ 44287 - 44032: 0x81F1,
+ 44288 - 44032: 0xB0FC,
+ 44289 - 44032: 0x81F2,
+ 44290 - 44032: 0x81F3,
+ 44291 - 44032: 0x81F4,
+ 44292 - 44032: 0xB0FD,
+ 44293 - 44032: 0x81F5,
+ 44294 - 44032: 0xB0FE,
+ 44295 - 44032: 0x81F6,
+ 44296 - 44032: 0x81F7,
+ 44297 - 44032: 0x81F8,
+ 44298 - 44032: 0x81F9,
+ 44299 - 44032: 0x81FA,
+ 44300 - 44032: 0xB1A1,
+ 44301 - 44032: 0xB1A2,
+ 44302 - 44032: 0x81FB,
+ 44303 - 44032: 0xB1A3,
+ 44304 - 44032: 0x81FC,
+ 44305 - 44032: 0xB1A4,
+ 44306 - 44032: 0x81FD,
+ 44307 - 44032: 0x81FE,
+ 44308 - 44032: 0x8241,
+ 44309 - 44032: 0x8242,
+ 44310 - 44032: 0x8243,
+ 44311 - 44032: 0x8244,
+ 44312 - 44032: 0xB1A5,
+ 44313 - 44032: 0x8245,
+ 44314 - 44032: 0x8246,
+ 44315 - 44032: 0x8247,
+ 44316 - 44032: 0xB1A6,
+ 44317 - 44032: 0x8248,
+ 44318 - 44032: 0x8249,
+ 44319 - 44032: 0x824A,
+ 44320 - 44032: 0xB1A7,
+ 44321 - 44032: 0x824B,
+ 44322 - 44032: 0x824C,
+ 44323 - 44032: 0x824D,
+ 44324 - 44032: 0x824E,
+ 44325 - 44032: 0x824F,
+ 44326 - 44032: 0x8250,
+ 44327 - 44032: 0x8251,
+ 44328 - 44032: 0x8252,
+ 44329 - 44032: 0xB1A8,
+ 44330 - 44032: 0x8253,
+ 44331 - 44032: 0x8254,
+ 44332 - 44032: 0xB1A9,
+ 44333 - 44032: 0xB1AA,
+ 44334 - 44032: 0x8255,
+ 44335 - 44032: 0x8256,
+ 44336 - 44032: 0x8257,
+ 44337 - 44032: 0x8258,
+ 44338 - 44032: 0x8259,
+ 44339 - 44032: 0x825A,
+ 44340 - 44032: 0xB1AB,
+ 44341 - 44032: 0xB1AC,
+ 44342 - 44032: 0x8261,
+ 44343 - 44032: 0x8262,
+ 44344 - 44032: 0xB1AD,
+ 44345 - 44032: 0x8263,
+ 44346 - 44032: 0x8264,
+ 44347 - 44032: 0x8265,
+ 44348 - 44032: 0xB1AE,
+ 44349 - 44032: 0x8266,
+ 44350 - 44032: 0x8267,
+ 44351 - 44032: 0x8268,
+ 44352 - 44032: 0x8269,
+ 44353 - 44032: 0x826A,
+ 44354 - 44032: 0x826B,
+ 44355 - 44032: 0x826C,
+ 44356 - 44032: 0xB1AF,
+ 44357 - 44032: 0xB1B0,
+ 44358 - 44032: 0x826D,
+ 44359 - 44032: 0xB1B1,
+ 44360 - 44032: 0x826E,
+ 44361 - 44032: 0xB1B2,
+ 44362 - 44032: 0x826F,
+ 44363 - 44032: 0x8270,
+ 44364 - 44032: 0x8271,
+ 44365 - 44032: 0x8272,
+ 44366 - 44032: 0x8273,
+ 44367 - 44032: 0x8274,
+ 44368 - 44032: 0xB1B3,
+ 44369 - 44032: 0x8275,
+ 44370 - 44032: 0x8276,
+ 44371 - 44032: 0x8277,
+ 44372 - 44032: 0xB1B4,
+ 44373 - 44032: 0x8278,
+ 44374 - 44032: 0x8279,
+ 44375 - 44032: 0x827A,
+ 44376 - 44032: 0xB1B5,
+ 44377 - 44032: 0x8281,
+ 44378 - 44032: 0x8282,
+ 44379 - 44032: 0x8283,
+ 44380 - 44032: 0x8284,
+ 44381 - 44032: 0x8285,
+ 44382 - 44032: 0x8286,
+ 44383 - 44032: 0x8287,
+ 44384 - 44032: 0x8288,
+ 44385 - 44032: 0xB1B6,
+ 44386 - 44032: 0x8289,
+ 44387 - 44032: 0xB1B7,
+ 44388 - 44032: 0x828A,
+ 44389 - 44032: 0x828B,
+ 44390 - 44032: 0x828C,
+ 44391 - 44032: 0x828D,
+ 44392 - 44032: 0x828E,
+ 44393 - 44032: 0x828F,
+ 44394 - 44032: 0x8290,
+ 44395 - 44032: 0x8291,
+ 44396 - 44032: 0xB1B8,
+ 44397 - 44032: 0xB1B9,
+ 44398 - 44032: 0x8292,
+ 44399 - 44032: 0x8293,
+ 44400 - 44032: 0xB1BA,
+ 44401 - 44032: 0x8294,
+ 44402 - 44032: 0x8295,
+ 44403 - 44032: 0xB1BB,
+ 44404 - 44032: 0xB1BC,
+ 44405 - 44032: 0xB1BD,
+ 44406 - 44032: 0xB1BE,
+ 44407 - 44032: 0x8296,
+ 44408 - 44032: 0x8297,
+ 44409 - 44032: 0x8298,
+ 44410 - 44032: 0x8299,
+ 44411 - 44032: 0xB1BF,
+ 44412 - 44032: 0xB1C0,
+ 44413 - 44032: 0xB1C1,
+ 44414 - 44032: 0x829A,
+ 44415 - 44032: 0xB1C2,
+ 44416 - 44032: 0x829B,
+ 44417 - 44032: 0xB1C3,
+ 44418 - 44032: 0xB1C4,
+ 44419 - 44032: 0x829C,
+ 44420 - 44032: 0x829D,
+ 44421 - 44032: 0x829E,
+ 44422 - 44032: 0x829F,
+ 44423 - 44032: 0x82A0,
+ 44424 - 44032: 0xB1C5,
+ 44425 - 44032: 0xB1C6,
+ 44426 - 44032: 0x82A1,
+ 44427 - 44032: 0x82A2,
+ 44428 - 44032: 0xB1C7,
+ 44429 - 44032: 0x82A3,
+ 44430 - 44032: 0x82A4,
+ 44431 - 44032: 0x82A5,
+ 44432 - 44032: 0xB1C8,
+ 44433 - 44032: 0x82A6,
+ 44434 - 44032: 0x82A7,
+ 44435 - 44032: 0x82A8,
+ 44436 - 44032: 0x82A9,
+ 44437 - 44032: 0x82AA,
+ 44438 - 44032: 0x82AB,
+ 44439 - 44032: 0x82AC,
+ 44440 - 44032: 0x82AD,
+ 44441 - 44032: 0x82AE,
+ 44442 - 44032: 0x82AF,
+ 44443 - 44032: 0x82B0,
+ 44444 - 44032: 0xB1C9,
+ 44445 - 44032: 0xB1CA,
+ 44446 - 44032: 0x82B1,
+ 44447 - 44032: 0x82B2,
+ 44448 - 44032: 0x82B3,
+ 44449 - 44032: 0x82B4,
+ 44450 - 44032: 0x82B5,
+ 44451 - 44032: 0x82B6,
+ 44452 - 44032: 0xB1CB,
+ 44453 - 44032: 0x82B7,
+ 44454 - 44032: 0x82B8,
+ 44455 - 44032: 0x82B9,
+ 44456 - 44032: 0x82BA,
+ 44457 - 44032: 0x82BB,
+ 44458 - 44032: 0x82BC,
+ 44459 - 44032: 0x82BD,
+ 44460 - 44032: 0x82BE,
+ 44461 - 44032: 0x82BF,
+ 44462 - 44032: 0x82C0,
+ 44463 - 44032: 0x82C1,
+ 44464 - 44032: 0x82C2,
+ 44465 - 44032: 0x82C3,
+ 44466 - 44032: 0x82C4,
+ 44467 - 44032: 0x82C5,
+ 44468 - 44032: 0x82C6,
+ 44469 - 44032: 0x82C7,
+ 44470 - 44032: 0x82C8,
+ 44471 - 44032: 0xB1CC,
+ 44472 - 44032: 0x82C9,
+ 44473 - 44032: 0x82CA,
+ 44474 - 44032: 0x82CB,
+ 44475 - 44032: 0x82CC,
+ 44476 - 44032: 0x82CD,
+ 44477 - 44032: 0x82CE,
+ 44478 - 44032: 0x82CF,
+ 44479 - 44032: 0x82D0,
+ 44480 - 44032: 0xB1CD,
+ 44481 - 44032: 0xB1CE,
+ 44482 - 44032: 0x82D1,
+ 44483 - 44032: 0x82D2,
+ 44484 - 44032: 0xB1CF,
+ 44485 - 44032: 0x82D3,
+ 44486 - 44032: 0x82D4,
+ 44487 - 44032: 0x82D5,
+ 44488 - 44032: 0xB1D0,
+ 44489 - 44032: 0x82D6,
+ 44490 - 44032: 0x82D7,
+ 44491 - 44032: 0x82D8,
+ 44492 - 44032: 0x82D9,
+ 44493 - 44032: 0x82DA,
+ 44494 - 44032: 0x82DB,
+ 44495 - 44032: 0x82DC,
+ 44496 - 44032: 0xB1D1,
+ 44497 - 44032: 0xB1D2,
+ 44498 - 44032: 0x82DD,
+ 44499 - 44032: 0xB1D3,
+ 44500 - 44032: 0x82DE,
+ 44501 - 44032: 0x82DF,
+ 44502 - 44032: 0x82E0,
+ 44503 - 44032: 0x82E1,
+ 44504 - 44032: 0x82E2,
+ 44505 - 44032: 0x82E3,
+ 44506 - 44032: 0x82E4,
+ 44507 - 44032: 0x82E5,
+ 44508 - 44032: 0xB1D4,
+ 44509 - 44032: 0x82E6,
+ 44510 - 44032: 0x82E7,
+ 44511 - 44032: 0x82E8,
+ 44512 - 44032: 0xB1D5,
+ 44513 - 44032: 0x82E9,
+ 44514 - 44032: 0x82EA,
+ 44515 - 44032: 0x82EB,
+ 44516 - 44032: 0xB1D6,
+ 44517 - 44032: 0x82EC,
+ 44518 - 44032: 0x82ED,
+ 44519 - 44032: 0x82EE,
+ 44520 - 44032: 0x82EF,
+ 44521 - 44032: 0x82F0,
+ 44522 - 44032: 0x82F1,
+ 44523 - 44032: 0x82F2,
+ 44524 - 44032: 0x82F3,
+ 44525 - 44032: 0x82F4,
+ 44526 - 44032: 0x82F5,
+ 44527 - 44032: 0x82F6,
+ 44528 - 44032: 0x82F7,
+ 44529 - 44032: 0x82F8,
+ 44530 - 44032: 0x82F9,
+ 44531 - 44032: 0x82FA,
+ 44532 - 44032: 0x82FB,
+ 44533 - 44032: 0x82FC,
+ 44534 - 44032: 0x82FD,
+ 44535 - 44032: 0x82FE,
+ 44536 - 44032: 0xB1D7,
+ 44537 - 44032: 0xB1D8,
+ 44538 - 44032: 0x8341,
+ 44539 - 44032: 0x8342,
+ 44540 - 44032: 0xB1D9,
+ 44541 - 44032: 0x8343,
+ 44542 - 44032: 0x8344,
+ 44543 - 44032: 0xB1DA,
+ 44544 - 44032: 0xB1DB,
+ 44545 - 44032: 0xB1DC,
+ 44546 - 44032: 0x8345,
+ 44547 - 44032: 0x8346,
+ 44548 - 44032: 0x8347,
+ 44549 - 44032: 0x8348,
+ 44550 - 44032: 0x8349,
+ 44551 - 44032: 0x834A,
+ 44552 - 44032: 0xB1DD,
+ 44553 - 44032: 0xB1DE,
+ 44554 - 44032: 0x834B,
+ 44555 - 44032: 0xB1DF,
+ 44556 - 44032: 0x834C,
+ 44557 - 44032: 0xB1E0,
+ 44558 - 44032: 0x834D,
+ 44559 - 44032: 0x834E,
+ 44560 - 44032: 0x834F,
+ 44561 - 44032: 0x8350,
+ 44562 - 44032: 0x8351,
+ 44563 - 44032: 0x8352,
+ 44564 - 44032: 0xB1E1,
+ 44565 - 44032: 0x8353,
+ 44566 - 44032: 0x8354,
+ 44567 - 44032: 0x8355,
+ 44568 - 44032: 0x8356,
+ 44569 - 44032: 0x8357,
+ 44570 - 44032: 0x8358,
+ 44571 - 44032: 0x8359,
+ 44572 - 44032: 0x835A,
+ 44573 - 44032: 0x8361,
+ 44574 - 44032: 0x8362,
+ 44575 - 44032: 0x8363,
+ 44576 - 44032: 0x8364,
+ 44577 - 44032: 0x8365,
+ 44578 - 44032: 0x8366,
+ 44579 - 44032: 0x8367,
+ 44580 - 44032: 0x8368,
+ 44581 - 44032: 0x8369,
+ 44582 - 44032: 0x836A,
+ 44583 - 44032: 0x836B,
+ 44584 - 44032: 0x836C,
+ 44585 - 44032: 0x836D,
+ 44586 - 44032: 0x836E,
+ 44587 - 44032: 0x836F,
+ 44588 - 44032: 0x8370,
+ 44589 - 44032: 0x8371,
+ 44590 - 44032: 0x8372,
+ 44591 - 44032: 0x8373,
+ 44592 - 44032: 0xB1E2,
+ 44593 - 44032: 0xB1E3,
+ 44594 - 44032: 0x8374,
+ 44595 - 44032: 0x8375,
+ 44596 - 44032: 0xB1E4,
+ 44597 - 44032: 0x8376,
+ 44598 - 44032: 0x8377,
+ 44599 - 44032: 0xB1E5,
+ 44600 - 44032: 0xB1E6,
+ 44601 - 44032: 0x8378,
+ 44602 - 44032: 0xB1E7,
+ 44603 - 44032: 0x8379,
+ 44604 - 44032: 0x837A,
+ 44605 - 44032: 0x8381,
+ 44606 - 44032: 0x8382,
+ 44607 - 44032: 0x8383,
+ 44608 - 44032: 0xB1E8,
+ 44609 - 44032: 0xB1E9,
+ 44610 - 44032: 0x8384,
+ 44611 - 44032: 0xB1EA,
+ 44612 - 44032: 0x8385,
+ 44613 - 44032: 0xB1EB,
+ 44614 - 44032: 0xB1EC,
+ 44615 - 44032: 0x8386,
+ 44616 - 44032: 0x8387,
+ 44617 - 44032: 0x8388,
+ 44618 - 44032: 0xB1ED,
+ 44619 - 44032: 0x8389,
+ 44620 - 44032: 0xB1EE,
+ 44621 - 44032: 0xB1EF,
+ 44622 - 44032: 0xB1F0,
+ 44623 - 44032: 0x838A,
+ 44624 - 44032: 0xB1F1,
+ 44625 - 44032: 0x838B,
+ 44626 - 44032: 0x838C,
+ 44627 - 44032: 0x838D,
+ 44628 - 44032: 0xB1F2,
+ 44629 - 44032: 0x838E,
+ 44630 - 44032: 0xB1F3,
+ 44631 - 44032: 0x838F,
+ 44632 - 44032: 0x8390,
+ 44633 - 44032: 0x8391,
+ 44634 - 44032: 0x8392,
+ 44635 - 44032: 0x8393,
+ 44636 - 44032: 0xB1F4,
+ 44637 - 44032: 0xB1F5,
+ 44638 - 44032: 0x8394,
+ 44639 - 44032: 0xB1F6,
+ 44640 - 44032: 0xB1F7,
+ 44641 - 44032: 0xB1F8,
+ 44642 - 44032: 0x8395,
+ 44643 - 44032: 0x8396,
+ 44644 - 44032: 0x8397,
+ 44645 - 44032: 0xB1F9,
+ 44646 - 44032: 0x8398,
+ 44647 - 44032: 0x8399,
+ 44648 - 44032: 0xB1FA,
+ 44649 - 44032: 0xB1FB,
+ 44650 - 44032: 0x839A,
+ 44651 - 44032: 0x839B,
+ 44652 - 44032: 0xB1FC,
+ 44653 - 44032: 0x839C,
+ 44654 - 44032: 0x839D,
+ 44655 - 44032: 0x839E,
+ 44656 - 44032: 0xB1FD,
+ 44657 - 44032: 0x839F,
+ 44658 - 44032: 0x83A0,
+ 44659 - 44032: 0x83A1,
+ 44660 - 44032: 0x83A2,
+ 44661 - 44032: 0x83A3,
+ 44662 - 44032: 0x83A4,
+ 44663 - 44032: 0x83A5,
+ 44664 - 44032: 0xB1FE,
+ 44665 - 44032: 0xB2A1,
+ 44666 - 44032: 0x83A6,
+ 44667 - 44032: 0xB2A2,
+ 44668 - 44032: 0xB2A3,
+ 44669 - 44032: 0xB2A4,
+ 44670 - 44032: 0x83A7,
+ 44671 - 44032: 0x83A8,
+ 44672 - 44032: 0x83A9,
+ 44673 - 44032: 0x83AA,
+ 44674 - 44032: 0x83AB,
+ 44675 - 44032: 0x83AC,
+ 44676 - 44032: 0xB2A5,
+ 44677 - 44032: 0xB2A6,
+ 44678 - 44032: 0x83AD,
+ 44679 - 44032: 0x83AE,
+ 44680 - 44032: 0x83AF,
+ 44681 - 44032: 0x83B0,
+ 44682 - 44032: 0x83B1,
+ 44683 - 44032: 0x83B2,
+ 44684 - 44032: 0xB2A7,
+ 44685 - 44032: 0x83B3,
+ 44686 - 44032: 0x83B4,
+ 44687 - 44032: 0x83B5,
+ 44688 - 44032: 0x83B6,
+ 44689 - 44032: 0x83B7,
+ 44690 - 44032: 0x83B8,
+ 44691 - 44032: 0x83B9,
+ 44692 - 44032: 0x83BA,
+ 44693 - 44032: 0x83BB,
+ 44694 - 44032: 0x83BC,
+ 44695 - 44032: 0x83BD,
+ 44696 - 44032: 0x83BE,
+ 44697 - 44032: 0x83BF,
+ 44698 - 44032: 0x83C0,
+ 44699 - 44032: 0x83C1,
+ 44700 - 44032: 0x83C2,
+ 44701 - 44032: 0x83C3,
+ 44702 - 44032: 0x83C4,
+ 44703 - 44032: 0x83C5,
+ 44704 - 44032: 0x83C6,
+ 44705 - 44032: 0x83C7,
+ 44706 - 44032: 0x83C8,
+ 44707 - 44032: 0x83C9,
+ 44708 - 44032: 0x83CA,
+ 44709 - 44032: 0x83CB,
+ 44710 - 44032: 0x83CC,
+ 44711 - 44032: 0x83CD,
+ 44712 - 44032: 0x83CE,
+ 44713 - 44032: 0x83CF,
+ 44714 - 44032: 0x83D0,
+ 44715 - 44032: 0x83D1,
+ 44716 - 44032: 0x83D2,
+ 44717 - 44032: 0x83D3,
+ 44718 - 44032: 0x83D4,
+ 44719 - 44032: 0x83D5,
+ 44720 - 44032: 0x83D6,
+ 44721 - 44032: 0x83D7,
+ 44722 - 44032: 0x83D8,
+ 44723 - 44032: 0x83D9,
+ 44724 - 44032: 0x83DA,
+ 44725 - 44032: 0x83DB,
+ 44726 - 44032: 0x83DC,
+ 44727 - 44032: 0x83DD,
+ 44728 - 44032: 0x83DE,
+ 44729 - 44032: 0x83DF,
+ 44730 - 44032: 0x83E0,
+ 44731 - 44032: 0x83E1,
+ 44732 - 44032: 0xB2A8,
+ 44733 - 44032: 0xB2A9,
+ 44734 - 44032: 0xB2AA,
+ 44735 - 44032: 0x83E2,
+ 44736 - 44032: 0xB2AB,
+ 44737 - 44032: 0x83E3,
+ 44738 - 44032: 0x83E4,
+ 44739 - 44032: 0x83E5,
+ 44740 - 44032: 0xB2AC,
+ 44741 - 44032: 0x83E6,
+ 44742 - 44032: 0x83E7,
+ 44743 - 44032: 0x83E8,
+ 44744 - 44032: 0x83E9,
+ 44745 - 44032: 0x83EA,
+ 44746 - 44032: 0x83EB,
+ 44747 - 44032: 0x83EC,
+ 44748 - 44032: 0xB2AD,
+ 44749 - 44032: 0xB2AE,
+ 44750 - 44032: 0x83ED,
+ 44751 - 44032: 0xB2AF,
+ 44752 - 44032: 0xB2B0,
+ 44753 - 44032: 0xB2B1,
+ 44754 - 44032: 0x83EE,
+ 44755 - 44032: 0x83EF,
+ 44756 - 44032: 0x83F0,
+ 44757 - 44032: 0x83F1,
+ 44758 - 44032: 0x83F2,
+ 44759 - 44032: 0x83F3,
+ 44760 - 44032: 0xB2B2,
+ 44761 - 44032: 0xB2B3,
+ 44762 - 44032: 0x83F4,
+ 44763 - 44032: 0x83F5,
+ 44764 - 44032: 0xB2B4,
+ 44765 - 44032: 0x83F6,
+ 44766 - 44032: 0x83F7,
+ 44767 - 44032: 0x83F8,
+ 44768 - 44032: 0x83F9,
+ 44769 - 44032: 0x83FA,
+ 44770 - 44032: 0x83FB,
+ 44771 - 44032: 0x83FC,
+ 44772 - 44032: 0x83FD,
+ 44773 - 44032: 0x83FE,
+ 44774 - 44032: 0x8441,
+ 44775 - 44032: 0x8442,
+ 44776 - 44032: 0xB2B5,
+ 44777 - 44032: 0x8443,
+ 44778 - 44032: 0x8444,
+ 44779 - 44032: 0xB2B6,
+ 44780 - 44032: 0x8445,
+ 44781 - 44032: 0xB2B7,
+ 44782 - 44032: 0x8446,
+ 44783 - 44032: 0x8447,
+ 44784 - 44032: 0x8448,
+ 44785 - 44032: 0x8449,
+ 44786 - 44032: 0x844A,
+ 44787 - 44032: 0x844B,
+ 44788 - 44032: 0xB2B8,
+ 44789 - 44032: 0x844C,
+ 44790 - 44032: 0x844D,
+ 44791 - 44032: 0x844E,
+ 44792 - 44032: 0xB2B9,
+ 44793 - 44032: 0x844F,
+ 44794 - 44032: 0x8450,
+ 44795 - 44032: 0x8451,
+ 44796 - 44032: 0xB2BA,
+ 44797 - 44032: 0x8452,
+ 44798 - 44032: 0x8453,
+ 44799 - 44032: 0x8454,
+ 44800 - 44032: 0x8455,
+ 44801 - 44032: 0x8456,
+ 44802 - 44032: 0x8457,
+ 44803 - 44032: 0x8458,
+ 44804 - 44032: 0x8459,
+ 44805 - 44032: 0x845A,
+ 44806 - 44032: 0x8461,
+ 44807 - 44032: 0xB2BB,
+ 44808 - 44032: 0xB2BC,
+ 44809 - 44032: 0x8462,
+ 44810 - 44032: 0x8463,
+ 44811 - 44032: 0x8464,
+ 44812 - 44032: 0x8465,
+ 44813 - 44032: 0xB2BD,
+ 44814 - 44032: 0x8466,
+ 44815 - 44032: 0x8467,
+ 44816 - 44032: 0xB2BE,
+ 44817 - 44032: 0x8468,
+ 44818 - 44032: 0x8469,
+ 44819 - 44032: 0x846A,
+ 44820 - 44032: 0x846B,
+ 44821 - 44032: 0x846C,
+ 44822 - 44032: 0x846D,
+ 44823 - 44032: 0x846E,
+ 44824 - 44032: 0x846F,
+ 44825 - 44032: 0x8470,
+ 44826 - 44032: 0x8471,
+ 44827 - 44032: 0x8472,
+ 44828 - 44032: 0x8473,
+ 44829 - 44032: 0x8474,
+ 44830 - 44032: 0x8475,
+ 44831 - 44032: 0x8476,
+ 44832 - 44032: 0x8477,
+ 44833 - 44032: 0x8478,
+ 44834 - 44032: 0x8479,
+ 44835 - 44032: 0x847A,
+ 44836 - 44032: 0x8481,
+ 44837 - 44032: 0x8482,
+ 44838 - 44032: 0x8483,
+ 44839 - 44032: 0x8484,
+ 44840 - 44032: 0x8485,
+ 44841 - 44032: 0x8486,
+ 44842 - 44032: 0x8487,
+ 44843 - 44032: 0x8488,
+ 44844 - 44032: 0xB2BF,
+ 44845 - 44032: 0xB2C0,
+ 44846 - 44032: 0x8489,
+ 44847 - 44032: 0x848A,
+ 44848 - 44032: 0xB2C1,
+ 44849 - 44032: 0x848B,
+ 44850 - 44032: 0xB2C2,
+ 44851 - 44032: 0x848C,
+ 44852 - 44032: 0xB2C3,
+ 44853 - 44032: 0x848D,
+ 44854 - 44032: 0x848E,
+ 44855 - 44032: 0x848F,
+ 44856 - 44032: 0x8490,
+ 44857 - 44032: 0x8491,
+ 44858 - 44032: 0x8492,
+ 44859 - 44032: 0x8493,
+ 44860 - 44032: 0xB2C4,
+ 44861 - 44032: 0xB2C5,
+ 44862 - 44032: 0x8494,
+ 44863 - 44032: 0xB2C6,
+ 44864 - 44032: 0x8495,
+ 44865 - 44032: 0xB2C7,
+ 44866 - 44032: 0xB2C8,
+ 44867 - 44032: 0xB2C9,
+ 44868 - 44032: 0x8496,
+ 44869 - 44032: 0x8497,
+ 44870 - 44032: 0x8498,
+ 44871 - 44032: 0x8499,
+ 44872 - 44032: 0xB2CA,
+ 44873 - 44032: 0xB2CB,
+ 44874 - 44032: 0x849A,
+ 44875 - 44032: 0x849B,
+ 44876 - 44032: 0x849C,
+ 44877 - 44032: 0x849D,
+ 44878 - 44032: 0x849E,
+ 44879 - 44032: 0x849F,
+ 44880 - 44032: 0xB2CC,
+ 44881 - 44032: 0x84A0,
+ 44882 - 44032: 0x84A1,
+ 44883 - 44032: 0x84A2,
+ 44884 - 44032: 0x84A3,
+ 44885 - 44032: 0x84A4,
+ 44886 - 44032: 0x84A5,
+ 44887 - 44032: 0x84A6,
+ 44888 - 44032: 0x84A7,
+ 44889 - 44032: 0x84A8,
+ 44890 - 44032: 0x84A9,
+ 44891 - 44032: 0x84AA,
+ 44892 - 44032: 0xB2CD,
+ 44893 - 44032: 0xB2CE,
+ 44894 - 44032: 0x84AB,
+ 44895 - 44032: 0x84AC,
+ 44896 - 44032: 0x84AD,
+ 44897 - 44032: 0x84AE,
+ 44898 - 44032: 0x84AF,
+ 44899 - 44032: 0x84B0,
+ 44900 - 44032: 0xB2CF,
+ 44901 - 44032: 0xB2D0,
+ 44902 - 44032: 0x84B1,
+ 44903 - 44032: 0x84B2,
+ 44904 - 44032: 0x84B3,
+ 44905 - 44032: 0x84B4,
+ 44906 - 44032: 0x84B5,
+ 44907 - 44032: 0x84B6,
+ 44908 - 44032: 0x84B7,
+ 44909 - 44032: 0x84B8,
+ 44910 - 44032: 0x84B9,
+ 44911 - 44032: 0x84BA,
+ 44912 - 44032: 0x84BB,
+ 44913 - 44032: 0x84BC,
+ 44914 - 44032: 0x84BD,
+ 44915 - 44032: 0x84BE,
+ 44916 - 44032: 0x84BF,
+ 44917 - 44032: 0x84C0,
+ 44918 - 44032: 0x84C1,
+ 44919 - 44032: 0x84C2,
+ 44920 - 44032: 0x84C3,
+ 44921 - 44032: 0xB2D1,
+ 44922 - 44032: 0x84C4,
+ 44923 - 44032: 0x84C5,
+ 44924 - 44032: 0x84C6,
+ 44925 - 44032: 0x84C7,
+ 44926 - 44032: 0x84C8,
+ 44927 - 44032: 0x84C9,
+ 44928 - 44032: 0xB2D2,
+ 44929 - 44032: 0x84CA,
+ 44930 - 44032: 0x84CB,
+ 44931 - 44032: 0x84CC,
+ 44932 - 44032: 0xB2D3,
+ 44933 - 44032: 0x84CD,
+ 44934 - 44032: 0x84CE,
+ 44935 - 44032: 0x84CF,
+ 44936 - 44032: 0xB2D4,
+ 44937 - 44032: 0x84D0,
+ 44938 - 44032: 0x84D1,
+ 44939 - 44032: 0x84D2,
+ 44940 - 44032: 0x84D3,
+ 44941 - 44032: 0x84D4,
+ 44942 - 44032: 0x84D5,
+ 44943 - 44032: 0x84D6,
+ 44944 - 44032: 0xB2D5,
+ 44945 - 44032: 0xB2D6,
+ 44946 - 44032: 0x84D7,
+ 44947 - 44032: 0x84D8,
+ 44948 - 44032: 0x84D9,
+ 44949 - 44032: 0xB2D7,
+ 44950 - 44032: 0x84DA,
+ 44951 - 44032: 0x84DB,
+ 44952 - 44032: 0x84DC,
+ 44953 - 44032: 0x84DD,
+ 44954 - 44032: 0x84DE,
+ 44955 - 44032: 0x84DF,
+ 44956 - 44032: 0xB2D8,
+ 44957 - 44032: 0x84E0,
+ 44958 - 44032: 0x84E1,
+ 44959 - 44032: 0x84E2,
+ 44960 - 44032: 0x84E3,
+ 44961 - 44032: 0x84E4,
+ 44962 - 44032: 0x84E5,
+ 44963 - 44032: 0x84E6,
+ 44964 - 44032: 0x84E7,
+ 44965 - 44032: 0x84E8,
+ 44966 - 44032: 0x84E9,
+ 44967 - 44032: 0x84EA,
+ 44968 - 44032: 0x84EB,
+ 44969 - 44032: 0x84EC,
+ 44970 - 44032: 0x84ED,
+ 44971 - 44032: 0x84EE,
+ 44972 - 44032: 0x84EF,
+ 44973 - 44032: 0x84F0,
+ 44974 - 44032: 0x84F1,
+ 44975 - 44032: 0x84F2,
+ 44976 - 44032: 0x84F3,
+ 44977 - 44032: 0x84F4,
+ 44978 - 44032: 0x84F5,
+ 44979 - 44032: 0x84F6,
+ 44980 - 44032: 0x84F7,
+ 44981 - 44032: 0x84F8,
+ 44982 - 44032: 0x84F9,
+ 44983 - 44032: 0x84FA,
+ 44984 - 44032: 0xB2D9,
+ 44985 - 44032: 0xB2DA,
+ 44986 - 44032: 0x84FB,
+ 44987 - 44032: 0x84FC,
+ 44988 - 44032: 0xB2DB,
+ 44989 - 44032: 0x84FD,
+ 44990 - 44032: 0x84FE,
+ 44991 - 44032: 0x8541,
+ 44992 - 44032: 0xB2DC,
+ 44993 - 44032: 0x8542,
+ 44994 - 44032: 0x8543,
+ 44995 - 44032: 0x8544,
+ 44996 - 44032: 0x8545,
+ 44997 - 44032: 0x8546,
+ 44998 - 44032: 0x8547,
+ 44999 - 44032: 0xB2DD,
+ 45000 - 44032: 0xB2DE,
+ 45001 - 44032: 0xB2DF,
+ 45002 - 44032: 0x8548,
+ 45003 - 44032: 0xB2E0,
+ 45004 - 44032: 0x8549,
+ 45005 - 44032: 0xB2E1,
+ 45006 - 44032: 0xB2E2,
+ 45007 - 44032: 0x854A,
+ 45008 - 44032: 0x854B,
+ 45009 - 44032: 0x854C,
+ 45010 - 44032: 0x854D,
+ 45011 - 44032: 0x854E,
+ 45012 - 44032: 0xB2E3,
+ 45013 - 44032: 0x854F,
+ 45014 - 44032: 0x8550,
+ 45015 - 44032: 0x8551,
+ 45016 - 44032: 0x8552,
+ 45017 - 44032: 0x8553,
+ 45018 - 44032: 0x8554,
+ 45019 - 44032: 0x8555,
+ 45020 - 44032: 0xB2E4,
+ 45021 - 44032: 0x8556,
+ 45022 - 44032: 0x8557,
+ 45023 - 44032: 0x8558,
+ 45024 - 44032: 0x8559,
+ 45025 - 44032: 0x855A,
+ 45026 - 44032: 0x8561,
+ 45027 - 44032: 0x8562,
+ 45028 - 44032: 0x8563,
+ 45029 - 44032: 0x8564,
+ 45030 - 44032: 0x8565,
+ 45031 - 44032: 0x8566,
+ 45032 - 44032: 0xB2E5,
+ 45033 - 44032: 0xB2E6,
+ 45034 - 44032: 0x8567,
+ 45035 - 44032: 0x8568,
+ 45036 - 44032: 0x8569,
+ 45037 - 44032: 0x856A,
+ 45038 - 44032: 0x856B,
+ 45039 - 44032: 0x856C,
+ 45040 - 44032: 0xB2E7,
+ 45041 - 44032: 0xB2E8,
+ 45042 - 44032: 0x856D,
+ 45043 - 44032: 0x856E,
+ 45044 - 44032: 0xB2E9,
+ 45045 - 44032: 0x856F,
+ 45046 - 44032: 0x8570,
+ 45047 - 44032: 0x8571,
+ 45048 - 44032: 0xB2EA,
+ 45049 - 44032: 0x8572,
+ 45050 - 44032: 0x8573,
+ 45051 - 44032: 0x8574,
+ 45052 - 44032: 0x8575,
+ 45053 - 44032: 0x8576,
+ 45054 - 44032: 0x8577,
+ 45055 - 44032: 0x8578,
+ 45056 - 44032: 0xB2EB,
+ 45057 - 44032: 0xB2EC,
+ 45058 - 44032: 0x8579,
+ 45059 - 44032: 0x857A,
+ 45060 - 44032: 0xB2ED,
+ 45061 - 44032: 0x8581,
+ 45062 - 44032: 0x8582,
+ 45063 - 44032: 0x8583,
+ 45064 - 44032: 0x8584,
+ 45065 - 44032: 0x8585,
+ 45066 - 44032: 0x8586,
+ 45067 - 44032: 0x8587,
+ 45068 - 44032: 0xB2EE,
+ 45069 - 44032: 0x8588,
+ 45070 - 44032: 0x8589,
+ 45071 - 44032: 0x858A,
+ 45072 - 44032: 0xB2EF,
+ 45073 - 44032: 0x858B,
+ 45074 - 44032: 0x858C,
+ 45075 - 44032: 0x858D,
+ 45076 - 44032: 0xB2F0,
+ 45077 - 44032: 0x858E,
+ 45078 - 44032: 0x858F,
+ 45079 - 44032: 0x8590,
+ 45080 - 44032: 0x8591,
+ 45081 - 44032: 0x8592,
+ 45082 - 44032: 0x8593,
+ 45083 - 44032: 0x8594,
+ 45084 - 44032: 0xB2F1,
+ 45085 - 44032: 0xB2F2,
+ 45086 - 44032: 0x8595,
+ 45087 - 44032: 0x8596,
+ 45088 - 44032: 0x8597,
+ 45089 - 44032: 0x8598,
+ 45090 - 44032: 0x8599,
+ 45091 - 44032: 0x859A,
+ 45092 - 44032: 0x859B,
+ 45093 - 44032: 0x859C,
+ 45094 - 44032: 0x859D,
+ 45095 - 44032: 0x859E,
+ 45096 - 44032: 0xB2F3,
+ 45097 - 44032: 0x859F,
+ 45098 - 44032: 0x85A0,
+ 45099 - 44032: 0x85A1,
+ 45100 - 44032: 0x85A2,
+ 45101 - 44032: 0x85A3,
+ 45102 - 44032: 0x85A4,
+ 45103 - 44032: 0x85A5,
+ 45104 - 44032: 0x85A6,
+ 45105 - 44032: 0x85A7,
+ 45106 - 44032: 0x85A8,
+ 45107 - 44032: 0x85A9,
+ 45108 - 44032: 0x85AA,
+ 45109 - 44032: 0x85AB,
+ 45110 - 44032: 0x85AC,
+ 45111 - 44032: 0x85AD,
+ 45112 - 44032: 0x85AE,
+ 45113 - 44032: 0x85AF,
+ 45114 - 44032: 0x85B0,
+ 45115 - 44032: 0x85B1,
+ 45116 - 44032: 0x85B2,
+ 45117 - 44032: 0x85B3,
+ 45118 - 44032: 0x85B4,
+ 45119 - 44032: 0x85B5,
+ 45120 - 44032: 0x85B6,
+ 45121 - 44032: 0x85B7,
+ 45122 - 44032: 0x85B8,
+ 45123 - 44032: 0x85B9,
+ 45124 - 44032: 0xB2F4,
+ 45125 - 44032: 0xB2F5,
+ 45126 - 44032: 0x85BA,
+ 45127 - 44032: 0x85BB,
+ 45128 - 44032: 0xB2F6,
+ 45129 - 44032: 0x85BC,
+ 45130 - 44032: 0xB2F7,
+ 45131 - 44032: 0x85BD,
+ 45132 - 44032: 0xB2F8,
+ 45133 - 44032: 0x85BE,
+ 45134 - 44032: 0xB2F9,
+ 45135 - 44032: 0x85BF,
+ 45136 - 44032: 0x85C0,
+ 45137 - 44032: 0x85C1,
+ 45138 - 44032: 0x85C2,
+ 45139 - 44032: 0xB2FA,
+ 45140 - 44032: 0xB2FB,
+ 45141 - 44032: 0xB2FC,
+ 45142 - 44032: 0x85C3,
+ 45143 - 44032: 0xB2FD,
+ 45144 - 44032: 0x85C4,
+ 45145 - 44032: 0xB2FE,
+ 45146 - 44032: 0x85C5,
+ 45147 - 44032: 0x85C6,
+ 45148 - 44032: 0x85C7,
+ 45149 - 44032: 0xB3A1,
+ 45150 - 44032: 0x85C8,
+ 45151 - 44032: 0x85C9,
+ 45152 - 44032: 0x85CA,
+ 45153 - 44032: 0x85CB,
+ 45154 - 44032: 0x85CC,
+ 45155 - 44032: 0x85CD,
+ 45156 - 44032: 0x85CE,
+ 45157 - 44032: 0x85CF,
+ 45158 - 44032: 0x85D0,
+ 45159 - 44032: 0x85D1,
+ 45160 - 44032: 0x85D2,
+ 45161 - 44032: 0x85D3,
+ 45162 - 44032: 0x85D4,
+ 45163 - 44032: 0x85D5,
+ 45164 - 44032: 0x85D6,
+ 45165 - 44032: 0x85D7,
+ 45166 - 44032: 0x85D8,
+ 45167 - 44032: 0x85D9,
+ 45168 - 44032: 0x85DA,
+ 45169 - 44032: 0x85DB,
+ 45170 - 44032: 0x85DC,
+ 45171 - 44032: 0x85DD,
+ 45172 - 44032: 0x85DE,
+ 45173 - 44032: 0x85DF,
+ 45174 - 44032: 0x85E0,
+ 45175 - 44032: 0x85E1,
+ 45176 - 44032: 0x85E2,
+ 45177 - 44032: 0x85E3,
+ 45178 - 44032: 0x85E4,
+ 45179 - 44032: 0x85E5,
+ 45180 - 44032: 0xB3A2,
+ 45181 - 44032: 0xB3A3,
+ 45182 - 44032: 0x85E6,
+ 45183 - 44032: 0x85E7,
+ 45184 - 44032: 0xB3A4,
+ 45185 - 44032: 0x85E8,
+ 45186 - 44032: 0x85E9,
+ 45187 - 44032: 0x85EA,
+ 45188 - 44032: 0xB3A5,
+ 45189 - 44032: 0x85EB,
+ 45190 - 44032: 0x85EC,
+ 45191 - 44032: 0x85ED,
+ 45192 - 44032: 0x85EE,
+ 45193 - 44032: 0x85EF,
+ 45194 - 44032: 0x85F0,
+ 45195 - 44032: 0x85F1,
+ 45196 - 44032: 0xB3A6,
+ 45197 - 44032: 0xB3A7,
+ 45198 - 44032: 0x85F2,
+ 45199 - 44032: 0xB3A8,
+ 45200 - 44032: 0x85F3,
+ 45201 - 44032: 0xB3A9,
+ 45202 - 44032: 0x85F4,
+ 45203 - 44032: 0x85F5,
+ 45204 - 44032: 0x85F6,
+ 45205 - 44032: 0x85F7,
+ 45206 - 44032: 0x85F8,
+ 45207 - 44032: 0x85F9,
+ 45208 - 44032: 0xB3AA,
+ 45209 - 44032: 0xB3AB,
+ 45210 - 44032: 0xB3AC,
+ 45211 - 44032: 0x85FA,
+ 45212 - 44032: 0xB3AD,
+ 45213 - 44032: 0x85FB,
+ 45214 - 44032: 0x85FC,
+ 45215 - 44032: 0xB3AE,
+ 45216 - 44032: 0xB3AF,
+ 45217 - 44032: 0xB3B0,
+ 45218 - 44032: 0xB3B1,
+ 45219 - 44032: 0x85FD,
+ 45220 - 44032: 0x85FE,
+ 45221 - 44032: 0x8641,
+ 45222 - 44032: 0x8642,
+ 45223 - 44032: 0x8643,
+ 45224 - 44032: 0xB3B2,
+ 45225 - 44032: 0xB3B3,
+ 45226 - 44032: 0x8644,
+ 45227 - 44032: 0xB3B4,
+ 45228 - 44032: 0xB3B5,
+ 45229 - 44032: 0xB3B6,
+ 45230 - 44032: 0xB3B7,
+ 45231 - 44032: 0xB3B8,
+ 45232 - 44032: 0x8645,
+ 45233 - 44032: 0xB3B9,
+ 45234 - 44032: 0x8646,
+ 45235 - 44032: 0xB3BA,
+ 45236 - 44032: 0xB3BB,
+ 45237 - 44032: 0xB3BC,
+ 45238 - 44032: 0x8647,
+ 45239 - 44032: 0x8648,
+ 45240 - 44032: 0xB3BD,
+ 45241 - 44032: 0x8649,
+ 45242 - 44032: 0x864A,
+ 45243 - 44032: 0x864B,
+ 45244 - 44032: 0xB3BE,
+ 45245 - 44032: 0x864C,
+ 45246 - 44032: 0x864D,
+ 45247 - 44032: 0x864E,
+ 45248 - 44032: 0x864F,
+ 45249 - 44032: 0x8650,
+ 45250 - 44032: 0x8651,
+ 45251 - 44032: 0x8652,
+ 45252 - 44032: 0xB3BF,
+ 45253 - 44032: 0xB3C0,
+ 45254 - 44032: 0x8653,
+ 45255 - 44032: 0xB3C1,
+ 45256 - 44032: 0xB3C2,
+ 45257 - 44032: 0xB3C3,
+ 45258 - 44032: 0x8654,
+ 45259 - 44032: 0x8655,
+ 45260 - 44032: 0x8656,
+ 45261 - 44032: 0x8657,
+ 45262 - 44032: 0x8658,
+ 45263 - 44032: 0x8659,
+ 45264 - 44032: 0xB3C4,
+ 45265 - 44032: 0xB3C5,
+ 45266 - 44032: 0x865A,
+ 45267 - 44032: 0x8661,
+ 45268 - 44032: 0xB3C6,
+ 45269 - 44032: 0x8662,
+ 45270 - 44032: 0x8663,
+ 45271 - 44032: 0x8664,
+ 45272 - 44032: 0xB3C7,
+ 45273 - 44032: 0x8665,
+ 45274 - 44032: 0x8666,
+ 45275 - 44032: 0x8667,
+ 45276 - 44032: 0x8668,
+ 45277 - 44032: 0x8669,
+ 45278 - 44032: 0x866A,
+ 45279 - 44032: 0x866B,
+ 45280 - 44032: 0xB3C8,
+ 45281 - 44032: 0x866C,
+ 45282 - 44032: 0x866D,
+ 45283 - 44032: 0x866E,
+ 45284 - 44032: 0x866F,
+ 45285 - 44032: 0xB3C9,
+ 45286 - 44032: 0x8670,
+ 45287 - 44032: 0x8671,
+ 45288 - 44032: 0x8672,
+ 45289 - 44032: 0x8673,
+ 45290 - 44032: 0x8674,
+ 45291 - 44032: 0x8675,
+ 45292 - 44032: 0x8676,
+ 45293 - 44032: 0x8677,
+ 45294 - 44032: 0x8678,
+ 45295 - 44032: 0x8679,
+ 45296 - 44032: 0x867A,
+ 45297 - 44032: 0x8681,
+ 45298 - 44032: 0x8682,
+ 45299 - 44032: 0x8683,
+ 45300 - 44032: 0x8684,
+ 45301 - 44032: 0x8685,
+ 45302 - 44032: 0x8686,
+ 45303 - 44032: 0x8687,
+ 45304 - 44032: 0x8688,
+ 45305 - 44032: 0x8689,
+ 45306 - 44032: 0x868A,
+ 45307 - 44032: 0x868B,
+ 45308 - 44032: 0x868C,
+ 45309 - 44032: 0x868D,
+ 45310 - 44032: 0x868E,
+ 45311 - 44032: 0x868F,
+ 45312 - 44032: 0x8690,
+ 45313 - 44032: 0x8691,
+ 45314 - 44032: 0x8692,
+ 45315 - 44032: 0x8693,
+ 45316 - 44032: 0x8694,
+ 45317 - 44032: 0x8695,
+ 45318 - 44032: 0x8696,
+ 45319 - 44032: 0x8697,
+ 45320 - 44032: 0xB3CA,
+ 45321 - 44032: 0xB3CB,
+ 45322 - 44032: 0x8698,
+ 45323 - 44032: 0xB3CC,
+ 45324 - 44032: 0xB3CD,
+ 45325 - 44032: 0x8699,
+ 45326 - 44032: 0x869A,
+ 45327 - 44032: 0x869B,
+ 45328 - 44032: 0xB3CE,
+ 45329 - 44032: 0x869C,
+ 45330 - 44032: 0xB3CF,
+ 45331 - 44032: 0xB3D0,
+ 45332 - 44032: 0x869D,
+ 45333 - 44032: 0x869E,
+ 45334 - 44032: 0x869F,
+ 45335 - 44032: 0x86A0,
+ 45336 - 44032: 0xB3D1,
+ 45337 - 44032: 0xB3D2,
+ 45338 - 44032: 0x86A1,
+ 45339 - 44032: 0xB3D3,
+ 45340 - 44032: 0xB3D4,
+ 45341 - 44032: 0xB3D5,
+ 45342 - 44032: 0x86A2,
+ 45343 - 44032: 0x86A3,
+ 45344 - 44032: 0x86A4,
+ 45345 - 44032: 0x86A5,
+ 45346 - 44032: 0x86A6,
+ 45347 - 44032: 0xB3D6,
+ 45348 - 44032: 0xB3D7,
+ 45349 - 44032: 0xB3D8,
+ 45350 - 44032: 0x86A7,
+ 45351 - 44032: 0x86A8,
+ 45352 - 44032: 0xB3D9,
+ 45353 - 44032: 0x86A9,
+ 45354 - 44032: 0x86AA,
+ 45355 - 44032: 0x86AB,
+ 45356 - 44032: 0xB3DA,
+ 45357 - 44032: 0x86AC,
+ 45358 - 44032: 0x86AD,
+ 45359 - 44032: 0x86AE,
+ 45360 - 44032: 0x86AF,
+ 45361 - 44032: 0x86B0,
+ 45362 - 44032: 0x86B1,
+ 45363 - 44032: 0x86B2,
+ 45364 - 44032: 0xB3DB,
+ 45365 - 44032: 0xB3DC,
+ 45366 - 44032: 0x86B3,
+ 45367 - 44032: 0xB3DD,
+ 45368 - 44032: 0xB3DE,
+ 45369 - 44032: 0xB3DF,
+ 45370 - 44032: 0x86B4,
+ 45371 - 44032: 0x86B5,
+ 45372 - 44032: 0x86B6,
+ 45373 - 44032: 0x86B7,
+ 45374 - 44032: 0x86B8,
+ 45375 - 44032: 0x86B9,
+ 45376 - 44032: 0xB3E0,
+ 45377 - 44032: 0xB3E1,
+ 45378 - 44032: 0x86BA,
+ 45379 - 44032: 0x86BB,
+ 45380 - 44032: 0xB3E2,
+ 45381 - 44032: 0x86BC,
+ 45382 - 44032: 0x86BD,
+ 45383 - 44032: 0x86BE,
+ 45384 - 44032: 0xB3E3,
+ 45385 - 44032: 0x86BF,
+ 45386 - 44032: 0x86C0,
+ 45387 - 44032: 0x86C1,
+ 45388 - 44032: 0x86C2,
+ 45389 - 44032: 0x86C3,
+ 45390 - 44032: 0x86C4,
+ 45391 - 44032: 0x86C5,
+ 45392 - 44032: 0xB3E4,
+ 45393 - 44032: 0xB3E5,
+ 45394 - 44032: 0x86C6,
+ 45395 - 44032: 0x86C7,
+ 45396 - 44032: 0xB3E6,
+ 45397 - 44032: 0xB3E7,
+ 45398 - 44032: 0x86C8,
+ 45399 - 44032: 0x86C9,
+ 45400 - 44032: 0xB3E8,
+ 45401 - 44032: 0x86CA,
+ 45402 - 44032: 0x86CB,
+ 45403 - 44032: 0x86CC,
+ 45404 - 44032: 0xB3E9,
+ 45405 - 44032: 0x86CD,
+ 45406 - 44032: 0x86CE,
+ 45407 - 44032: 0x86CF,
+ 45408 - 44032: 0xB3EA,
+ 45409 - 44032: 0x86D0,
+ 45410 - 44032: 0x86D1,
+ 45411 - 44032: 0x86D2,
+ 45412 - 44032: 0x86D3,
+ 45413 - 44032: 0x86D4,
+ 45414 - 44032: 0x86D5,
+ 45415 - 44032: 0x86D6,
+ 45416 - 44032: 0x86D7,
+ 45417 - 44032: 0x86D8,
+ 45418 - 44032: 0x86D9,
+ 45419 - 44032: 0x86DA,
+ 45420 - 44032: 0x86DB,
+ 45421 - 44032: 0x86DC,
+ 45422 - 44032: 0x86DD,
+ 45423 - 44032: 0x86DE,
+ 45424 - 44032: 0x86DF,
+ 45425 - 44032: 0x86E0,
+ 45426 - 44032: 0x86E1,
+ 45427 - 44032: 0x86E2,
+ 45428 - 44032: 0x86E3,
+ 45429 - 44032: 0x86E4,
+ 45430 - 44032: 0x86E5,
+ 45431 - 44032: 0x86E6,
+ 45432 - 44032: 0xB3EB,
+ 45433 - 44032: 0xB3EC,
+ 45434 - 44032: 0x86E7,
+ 45435 - 44032: 0x86E8,
+ 45436 - 44032: 0xB3ED,
+ 45437 - 44032: 0x86E9,
+ 45438 - 44032: 0x86EA,
+ 45439 - 44032: 0x86EB,
+ 45440 - 44032: 0xB3EE,
+ 45441 - 44032: 0x86EC,
+ 45442 - 44032: 0xB3EF,
+ 45443 - 44032: 0x86ED,
+ 45444 - 44032: 0x86EE,
+ 45445 - 44032: 0x86EF,
+ 45446 - 44032: 0x86F0,
+ 45447 - 44032: 0x86F1,
+ 45448 - 44032: 0xB3F0,
+ 45449 - 44032: 0xB3F1,
+ 45450 - 44032: 0x86F2,
+ 45451 - 44032: 0xB3F2,
+ 45452 - 44032: 0x86F3,
+ 45453 - 44032: 0xB3F3,
+ 45454 - 44032: 0x86F4,
+ 45455 - 44032: 0x86F5,
+ 45456 - 44032: 0x86F6,
+ 45457 - 44032: 0x86F7,
+ 45458 - 44032: 0xB3F4,
+ 45459 - 44032: 0xB3F5,
+ 45460 - 44032: 0xB3F6,
+ 45461 - 44032: 0x86F8,
+ 45462 - 44032: 0x86F9,
+ 45463 - 44032: 0x86FA,
+ 45464 - 44032: 0xB3F7,
+ 45465 - 44032: 0x86FB,
+ 45466 - 44032: 0x86FC,
+ 45467 - 44032: 0x86FD,
+ 45468 - 44032: 0xB3F8,
+ 45469 - 44032: 0x86FE,
+ 45470 - 44032: 0x8741,
+ 45471 - 44032: 0x8742,
+ 45472 - 44032: 0x8743,
+ 45473 - 44032: 0x8744,
+ 45474 - 44032: 0x8745,
+ 45475 - 44032: 0x8746,
+ 45476 - 44032: 0x8747,
+ 45477 - 44032: 0x8748,
+ 45478 - 44032: 0x8749,
+ 45479 - 44032: 0x874A,
+ 45480 - 44032: 0xB3F9,
+ 45481 - 44032: 0x874B,
+ 45482 - 44032: 0x874C,
+ 45483 - 44032: 0x874D,
+ 45484 - 44032: 0x874E,
+ 45485 - 44032: 0x874F,
+ 45486 - 44032: 0x8750,
+ 45487 - 44032: 0x8751,
+ 45488 - 44032: 0x8752,
+ 45489 - 44032: 0x8753,
+ 45490 - 44032: 0x8754,
+ 45491 - 44032: 0x8755,
+ 45492 - 44032: 0x8756,
+ 45493 - 44032: 0x8757,
+ 45494 - 44032: 0x8758,
+ 45495 - 44032: 0x8759,
+ 45496 - 44032: 0x875A,
+ 45497 - 44032: 0x8761,
+ 45498 - 44032: 0x8762,
+ 45499 - 44032: 0x8763,
+ 45500 - 44032: 0x8764,
+ 45501 - 44032: 0x8765,
+ 45502 - 44032: 0x8766,
+ 45503 - 44032: 0x8767,
+ 45504 - 44032: 0x8768,
+ 45505 - 44032: 0x8769,
+ 45506 - 44032: 0x876A,
+ 45507 - 44032: 0x876B,
+ 45508 - 44032: 0x876C,
+ 45509 - 44032: 0x876D,
+ 45510 - 44032: 0x876E,
+ 45511 - 44032: 0x876F,
+ 45512 - 44032: 0x8770,
+ 45513 - 44032: 0x8771,
+ 45514 - 44032: 0x8772,
+ 45515 - 44032: 0x8773,
+ 45516 - 44032: 0xB3FA,
+ 45517 - 44032: 0x8774,
+ 45518 - 44032: 0x8775,
+ 45519 - 44032: 0x8776,
+ 45520 - 44032: 0xB3FB,
+ 45521 - 44032: 0x8777,
+ 45522 - 44032: 0x8778,
+ 45523 - 44032: 0x8779,
+ 45524 - 44032: 0xB3FC,
+ 45525 - 44032: 0x877A,
+ 45526 - 44032: 0x8781,
+ 45527 - 44032: 0x8782,
+ 45528 - 44032: 0x8783,
+ 45529 - 44032: 0x8784,
+ 45530 - 44032: 0x8785,
+ 45531 - 44032: 0x8786,
+ 45532 - 44032: 0xB3FD,
+ 45533 - 44032: 0xB3FE,
+ 45534 - 44032: 0x8787,
+ 45535 - 44032: 0xB4A1,
+ 45536 - 44032: 0x8788,
+ 45537 - 44032: 0x8789,
+ 45538 - 44032: 0x878A,
+ 45539 - 44032: 0x878B,
+ 45540 - 44032: 0x878C,
+ 45541 - 44032: 0x878D,
+ 45542 - 44032: 0x878E,
+ 45543 - 44032: 0x878F,
+ 45544 - 44032: 0xB4A2,
+ 45545 - 44032: 0xB4A3,
+ 45546 - 44032: 0x8790,
+ 45547 - 44032: 0x8791,
+ 45548 - 44032: 0xB4A4,
+ 45549 - 44032: 0x8792,
+ 45550 - 44032: 0x8793,
+ 45551 - 44032: 0x8794,
+ 45552 - 44032: 0xB4A5,
+ 45553 - 44032: 0x8795,
+ 45554 - 44032: 0x8796,
+ 45555 - 44032: 0x8797,
+ 45556 - 44032: 0x8798,
+ 45557 - 44032: 0x8799,
+ 45558 - 44032: 0x879A,
+ 45559 - 44032: 0x879B,
+ 45560 - 44032: 0x879C,
+ 45561 - 44032: 0xB4A6,
+ 45562 - 44032: 0x879D,
+ 45563 - 44032: 0xB4A7,
+ 45564 - 44032: 0x879E,
+ 45565 - 44032: 0xB4A8,
+ 45566 - 44032: 0x879F,
+ 45567 - 44032: 0x87A0,
+ 45568 - 44032: 0x87A1,
+ 45569 - 44032: 0x87A2,
+ 45570 - 44032: 0x87A3,
+ 45571 - 44032: 0x87A4,
+ 45572 - 44032: 0xB4A9,
+ 45573 - 44032: 0xB4AA,
+ 45574 - 44032: 0x87A5,
+ 45575 - 44032: 0x87A6,
+ 45576 - 44032: 0xB4AB,
+ 45577 - 44032: 0x87A7,
+ 45578 - 44032: 0x87A8,
+ 45579 - 44032: 0xB4AC,
+ 45580 - 44032: 0xB4AD,
+ 45581 - 44032: 0x87A9,
+ 45582 - 44032: 0x87AA,
+ 45583 - 44032: 0x87AB,
+ 45584 - 44032: 0x87AC,
+ 45585 - 44032: 0x87AD,
+ 45586 - 44032: 0x87AE,
+ 45587 - 44032: 0x87AF,
+ 45588 - 44032: 0xB4AE,
+ 45589 - 44032: 0xB4AF,
+ 45590 - 44032: 0x87B0,
+ 45591 - 44032: 0xB4B0,
+ 45592 - 44032: 0x87B1,
+ 45593 - 44032: 0xB4B1,
+ 45594 - 44032: 0x87B2,
+ 45595 - 44032: 0x87B3,
+ 45596 - 44032: 0x87B4,
+ 45597 - 44032: 0x87B5,
+ 45598 - 44032: 0x87B6,
+ 45599 - 44032: 0x87B7,
+ 45600 - 44032: 0xB4B2,
+ 45601 - 44032: 0x87B8,
+ 45602 - 44032: 0x87B9,
+ 45603 - 44032: 0x87BA,
+ 45604 - 44032: 0x87BB,
+ 45605 - 44032: 0x87BC,
+ 45606 - 44032: 0x87BD,
+ 45607 - 44032: 0x87BE,
+ 45608 - 44032: 0x87BF,
+ 45609 - 44032: 0x87C0,
+ 45610 - 44032: 0x87C1,
+ 45611 - 44032: 0x87C2,
+ 45612 - 44032: 0x87C3,
+ 45613 - 44032: 0x87C4,
+ 45614 - 44032: 0x87C5,
+ 45615 - 44032: 0x87C6,
+ 45616 - 44032: 0x87C7,
+ 45617 - 44032: 0x87C8,
+ 45618 - 44032: 0x87C9,
+ 45619 - 44032: 0x87CA,
+ 45620 - 44032: 0xB4B3,
+ 45621 - 44032: 0x87CB,
+ 45622 - 44032: 0x87CC,
+ 45623 - 44032: 0x87CD,
+ 45624 - 44032: 0x87CE,
+ 45625 - 44032: 0x87CF,
+ 45626 - 44032: 0x87D0,
+ 45627 - 44032: 0x87D1,
+ 45628 - 44032: 0xB4B4,
+ 45629 - 44032: 0x87D2,
+ 45630 - 44032: 0x87D3,
+ 45631 - 44032: 0x87D4,
+ 45632 - 44032: 0x87D5,
+ 45633 - 44032: 0x87D6,
+ 45634 - 44032: 0x87D7,
+ 45635 - 44032: 0x87D8,
+ 45636 - 44032: 0x87D9,
+ 45637 - 44032: 0x87DA,
+ 45638 - 44032: 0x87DB,
+ 45639 - 44032: 0x87DC,
+ 45640 - 44032: 0x87DD,
+ 45641 - 44032: 0x87DE,
+ 45642 - 44032: 0x87DF,
+ 45643 - 44032: 0x87E0,
+ 45644 - 44032: 0x87E1,
+ 45645 - 44032: 0x87E2,
+ 45646 - 44032: 0x87E3,
+ 45647 - 44032: 0x87E4,
+ 45648 - 44032: 0x87E5,
+ 45649 - 44032: 0x87E6,
+ 45650 - 44032: 0x87E7,
+ 45651 - 44032: 0x87E8,
+ 45652 - 44032: 0x87E9,
+ 45653 - 44032: 0x87EA,
+ 45654 - 44032: 0x87EB,
+ 45655 - 44032: 0x87EC,
+ 45656 - 44032: 0xB4B5,
+ 45657 - 44032: 0x87ED,
+ 45658 - 44032: 0x87EE,
+ 45659 - 44032: 0x87EF,
+ 45660 - 44032: 0xB4B6,
+ 45661 - 44032: 0x87F0,
+ 45662 - 44032: 0x87F1,
+ 45663 - 44032: 0x87F2,
+ 45664 - 44032: 0xB4B7,
+ 45665 - 44032: 0x87F3,
+ 45666 - 44032: 0x87F4,
+ 45667 - 44032: 0x87F5,
+ 45668 - 44032: 0x87F6,
+ 45669 - 44032: 0x87F7,
+ 45670 - 44032: 0x87F8,
+ 45671 - 44032: 0x87F9,
+ 45672 - 44032: 0xB4B8,
+ 45673 - 44032: 0xB4B9,
+ 45674 - 44032: 0x87FA,
+ 45675 - 44032: 0x87FB,
+ 45676 - 44032: 0x87FC,
+ 45677 - 44032: 0x87FD,
+ 45678 - 44032: 0x87FE,
+ 45679 - 44032: 0x8841,
+ 45680 - 44032: 0x8842,
+ 45681 - 44032: 0x8843,
+ 45682 - 44032: 0x8844,
+ 45683 - 44032: 0x8845,
+ 45684 - 44032: 0xB4BA,
+ 45685 - 44032: 0xB4BB,
+ 45686 - 44032: 0x8846,
+ 45687 - 44032: 0x8847,
+ 45688 - 44032: 0x8848,
+ 45689 - 44032: 0x8849,
+ 45690 - 44032: 0x884A,
+ 45691 - 44032: 0x884B,
+ 45692 - 44032: 0xB4BC,
+ 45693 - 44032: 0x884C,
+ 45694 - 44032: 0x884D,
+ 45695 - 44032: 0x884E,
+ 45696 - 44032: 0x884F,
+ 45697 - 44032: 0x8850,
+ 45698 - 44032: 0x8851,
+ 45699 - 44032: 0x8852,
+ 45700 - 44032: 0xB4BD,
+ 45701 - 44032: 0xB4BE,
+ 45702 - 44032: 0x8853,
+ 45703 - 44032: 0x8854,
+ 45704 - 44032: 0x8855,
+ 45705 - 44032: 0xB4BF,
+ 45706 - 44032: 0x8856,
+ 45707 - 44032: 0x8857,
+ 45708 - 44032: 0x8858,
+ 45709 - 44032: 0x8859,
+ 45710 - 44032: 0x885A,
+ 45711 - 44032: 0x8861,
+ 45712 - 44032: 0xB4C0,
+ 45713 - 44032: 0xB4C1,
+ 45714 - 44032: 0x8862,
+ 45715 - 44032: 0x8863,
+ 45716 - 44032: 0xB4C2,
+ 45717 - 44032: 0x8864,
+ 45718 - 44032: 0x8865,
+ 45719 - 44032: 0x8866,
+ 45720 - 44032: 0xB4C3,
+ 45721 - 44032: 0xB4C4,
+ 45722 - 44032: 0xB4C5,
+ 45723 - 44032: 0x8867,
+ 45724 - 44032: 0x8868,
+ 45725 - 44032: 0x8869,
+ 45726 - 44032: 0x886A,
+ 45727 - 44032: 0x886B,
+ 45728 - 44032: 0xB4C6,
+ 45729 - 44032: 0xB4C7,
+ 45730 - 44032: 0x886C,
+ 45731 - 44032: 0xB4C8,
+ 45732 - 44032: 0x886D,
+ 45733 - 44032: 0xB4C9,
+ 45734 - 44032: 0xB4CA,
+ 45735 - 44032: 0x886E,
+ 45736 - 44032: 0x886F,
+ 45737 - 44032: 0x8870,
+ 45738 - 44032: 0xB4CB,
+ 45739 - 44032: 0x8871,
+ 45740 - 44032: 0xB4CC,
+ 45741 - 44032: 0x8872,
+ 45742 - 44032: 0x8873,
+ 45743 - 44032: 0x8874,
+ 45744 - 44032: 0xB4CD,
+ 45745 - 44032: 0x8875,
+ 45746 - 44032: 0x8876,
+ 45747 - 44032: 0x8877,
+ 45748 - 44032: 0xB4CE,
+ 45749 - 44032: 0x8878,
+ 45750 - 44032: 0x8879,
+ 45751 - 44032: 0x887A,
+ 45752 - 44032: 0x8881,
+ 45753 - 44032: 0x8882,
+ 45754 - 44032: 0x8883,
+ 45755 - 44032: 0x8884,
+ 45756 - 44032: 0x8885,
+ 45757 - 44032: 0x8886,
+ 45758 - 44032: 0x8887,
+ 45759 - 44032: 0x8888,
+ 45760 - 44032: 0x8889,
+ 45761 - 44032: 0x888A,
+ 45762 - 44032: 0x888B,
+ 45763 - 44032: 0x888C,
+ 45764 - 44032: 0x888D,
+ 45765 - 44032: 0x888E,
+ 45766 - 44032: 0x888F,
+ 45767 - 44032: 0x8890,
+ 45768 - 44032: 0xB4CF,
+ 45769 - 44032: 0xB4D0,
+ 45770 - 44032: 0x8891,
+ 45771 - 44032: 0x8892,
+ 45772 - 44032: 0xB4D1,
+ 45773 - 44032: 0x8893,
+ 45774 - 44032: 0x8894,
+ 45775 - 44032: 0x8895,
+ 45776 - 44032: 0xB4D2,
+ 45777 - 44032: 0x8896,
+ 45778 - 44032: 0xB4D3,
+ 45779 - 44032: 0x8897,
+ 45780 - 44032: 0x8898,
+ 45781 - 44032: 0x8899,
+ 45782 - 44032: 0x889A,
+ 45783 - 44032: 0x889B,
+ 45784 - 44032: 0xB4D4,
+ 45785 - 44032: 0xB4D5,
+ 45786 - 44032: 0x889C,
+ 45787 - 44032: 0xB4D6,
+ 45788 - 44032: 0x889D,
+ 45789 - 44032: 0xB4D7,
+ 45790 - 44032: 0x889E,
+ 45791 - 44032: 0x889F,
+ 45792 - 44032: 0x88A0,
+ 45793 - 44032: 0x88A1,
+ 45794 - 44032: 0xB4D8,
+ 45795 - 44032: 0x88A2,
+ 45796 - 44032: 0xB4D9,
+ 45797 - 44032: 0xB4DA,
+ 45798 - 44032: 0xB4DB,
+ 45799 - 44032: 0x88A3,
+ 45800 - 44032: 0xB4DC,
+ 45801 - 44032: 0x88A4,
+ 45802 - 44032: 0x88A5,
+ 45803 - 44032: 0xB4DD,
+ 45804 - 44032: 0xB4DE,
+ 45805 - 44032: 0xB4DF,
+ 45806 - 44032: 0xB4E0,
+ 45807 - 44032: 0xB4E1,
+ 45808 - 44032: 0x88A6,
+ 45809 - 44032: 0x88A7,
+ 45810 - 44032: 0x88A8,
+ 45811 - 44032: 0xB4E2,
+ 45812 - 44032: 0xB4E3,
+ 45813 - 44032: 0xB4E4,
+ 45814 - 44032: 0x88A9,
+ 45815 - 44032: 0xB4E5,
+ 45816 - 44032: 0xB4E6,
+ 45817 - 44032: 0xB4E7,
+ 45818 - 44032: 0xB4E8,
+ 45819 - 44032: 0xB4E9,
+ 45820 - 44032: 0x88AA,
+ 45821 - 44032: 0x88AB,
+ 45822 - 44032: 0x88AC,
+ 45823 - 44032: 0xB4EA,
+ 45824 - 44032: 0xB4EB,
+ 45825 - 44032: 0xB4EC,
+ 45826 - 44032: 0x88AD,
+ 45827 - 44032: 0x88AE,
+ 45828 - 44032: 0xB4ED,
+ 45829 - 44032: 0x88AF,
+ 45830 - 44032: 0x88B0,
+ 45831 - 44032: 0x88B1,
+ 45832 - 44032: 0xB4EE,
+ 45833 - 44032: 0x88B2,
+ 45834 - 44032: 0x88B3,
+ 45835 - 44032: 0x88B4,
+ 45836 - 44032: 0x88B5,
+ 45837 - 44032: 0x88B6,
+ 45838 - 44032: 0x88B7,
+ 45839 - 44032: 0x88B8,
+ 45840 - 44032: 0xB4EF,
+ 45841 - 44032: 0xB4F0,
+ 45842 - 44032: 0x88B9,
+ 45843 - 44032: 0xB4F1,
+ 45844 - 44032: 0xB4F2,
+ 45845 - 44032: 0xB4F3,
+ 45846 - 44032: 0x88BA,
+ 45847 - 44032: 0x88BB,
+ 45848 - 44032: 0x88BC,
+ 45849 - 44032: 0x88BD,
+ 45850 - 44032: 0x88BE,
+ 45851 - 44032: 0x88BF,
+ 45852 - 44032: 0xB4F4,
+ 45853 - 44032: 0x88C0,
+ 45854 - 44032: 0x88C1,
+ 45855 - 44032: 0x88C2,
+ 45856 - 44032: 0x88C3,
+ 45857 - 44032: 0x88C4,
+ 45858 - 44032: 0x88C5,
+ 45859 - 44032: 0x88C6,
+ 45860 - 44032: 0x88C7,
+ 45861 - 44032: 0x88C8,
+ 45862 - 44032: 0x88C9,
+ 45863 - 44032: 0x88CA,
+ 45864 - 44032: 0x88CB,
+ 45865 - 44032: 0x88CC,
+ 45866 - 44032: 0x88CD,
+ 45867 - 44032: 0x88CE,
+ 45868 - 44032: 0x88CF,
+ 45869 - 44032: 0x88D0,
+ 45870 - 44032: 0x88D1,
+ 45871 - 44032: 0x88D2,
+ 45872 - 44032: 0x88D3,
+ 45873 - 44032: 0x88D4,
+ 45874 - 44032: 0x88D5,
+ 45875 - 44032: 0x88D6,
+ 45876 - 44032: 0x88D7,
+ 45877 - 44032: 0x88D8,
+ 45878 - 44032: 0x88D9,
+ 45879 - 44032: 0x88DA,
+ 45880 - 44032: 0x88DB,
+ 45881 - 44032: 0x88DC,
+ 45882 - 44032: 0x88DD,
+ 45883 - 44032: 0x88DE,
+ 45884 - 44032: 0x88DF,
+ 45885 - 44032: 0x88E0,
+ 45886 - 44032: 0x88E1,
+ 45887 - 44032: 0x88E2,
+ 45888 - 44032: 0x88E3,
+ 45889 - 44032: 0x88E4,
+ 45890 - 44032: 0x88E5,
+ 45891 - 44032: 0x88E6,
+ 45892 - 44032: 0x88E7,
+ 45893 - 44032: 0x88E8,
+ 45894 - 44032: 0x88E9,
+ 45895 - 44032: 0x88EA,
+ 45896 - 44032: 0x88EB,
+ 45897 - 44032: 0x88EC,
+ 45898 - 44032: 0x88ED,
+ 45899 - 44032: 0x88EE,
+ 45900 - 44032: 0x88EF,
+ 45901 - 44032: 0x88F0,
+ 45902 - 44032: 0x88F1,
+ 45903 - 44032: 0x88F2,
+ 45904 - 44032: 0x88F3,
+ 45905 - 44032: 0x88F4,
+ 45906 - 44032: 0x88F5,
+ 45907 - 44032: 0x88F6,
+ 45908 - 44032: 0xB4F5,
+ 45909 - 44032: 0xB4F6,
+ 45910 - 44032: 0xB4F7,
+ 45911 - 44032: 0x88F7,
+ 45912 - 44032: 0xB4F8,
+ 45913 - 44032: 0x88F8,
+ 45914 - 44032: 0x88F9,
+ 45915 - 44032: 0xB4F9,
+ 45916 - 44032: 0xB4FA,
+ 45917 - 44032: 0x88FA,
+ 45918 - 44032: 0xB4FB,
+ 45919 - 44032: 0xB4FC,
+ 45920 - 44032: 0x88FB,
+ 45921 - 44032: 0x88FC,
+ 45922 - 44032: 0x88FD,
+ 45923 - 44032: 0x88FE,
+ 45924 - 44032: 0xB4FD,
+ 45925 - 44032: 0xB4FE,
+ 45926 - 44032: 0x8941,
+ 45927 - 44032: 0xB5A1,
+ 45928 - 44032: 0x8942,
+ 45929 - 44032: 0xB5A2,
+ 45930 - 44032: 0x8943,
+ 45931 - 44032: 0xB5A3,
+ 45932 - 44032: 0x8944,
+ 45933 - 44032: 0x8945,
+ 45934 - 44032: 0xB5A4,
+ 45935 - 44032: 0x8946,
+ 45936 - 44032: 0xB5A5,
+ 45937 - 44032: 0xB5A6,
+ 45938 - 44032: 0x8947,
+ 45939 - 44032: 0x8948,
+ 45940 - 44032: 0xB5A7,
+ 45941 - 44032: 0x8949,
+ 45942 - 44032: 0x894A,
+ 45943 - 44032: 0x894B,
+ 45944 - 44032: 0xB5A8,
+ 45945 - 44032: 0x894C,
+ 45946 - 44032: 0x894D,
+ 45947 - 44032: 0x894E,
+ 45948 - 44032: 0x894F,
+ 45949 - 44032: 0x8950,
+ 45950 - 44032: 0x8951,
+ 45951 - 44032: 0x8952,
+ 45952 - 44032: 0xB5A9,
+ 45953 - 44032: 0xB5AA,
+ 45954 - 44032: 0x8953,
+ 45955 - 44032: 0xB5AB,
+ 45956 - 44032: 0xB5AC,
+ 45957 - 44032: 0xB5AD,
+ 45958 - 44032: 0x8954,
+ 45959 - 44032: 0x8955,
+ 45960 - 44032: 0x8956,
+ 45961 - 44032: 0x8957,
+ 45962 - 44032: 0x8958,
+ 45963 - 44032: 0x8959,
+ 45964 - 44032: 0xB5AE,
+ 45965 - 44032: 0x895A,
+ 45966 - 44032: 0x8961,
+ 45967 - 44032: 0x8962,
+ 45968 - 44032: 0xB5AF,
+ 45969 - 44032: 0x8963,
+ 45970 - 44032: 0x8964,
+ 45971 - 44032: 0x8965,
+ 45972 - 44032: 0xB5B0,
+ 45973 - 44032: 0x8966,
+ 45974 - 44032: 0x8967,
+ 45975 - 44032: 0x8968,
+ 45976 - 44032: 0x8969,
+ 45977 - 44032: 0x896A,
+ 45978 - 44032: 0x896B,
+ 45979 - 44032: 0x896C,
+ 45980 - 44032: 0x896D,
+ 45981 - 44032: 0x896E,
+ 45982 - 44032: 0x896F,
+ 45983 - 44032: 0x8970,
+ 45984 - 44032: 0xB5B1,
+ 45985 - 44032: 0xB5B2,
+ 45986 - 44032: 0x8971,
+ 45987 - 44032: 0x8972,
+ 45988 - 44032: 0x8973,
+ 45989 - 44032: 0x8974,
+ 45990 - 44032: 0x8975,
+ 45991 - 44032: 0x8976,
+ 45992 - 44032: 0xB5B3,
+ 45993 - 44032: 0x8977,
+ 45994 - 44032: 0x8978,
+ 45995 - 44032: 0x8979,
+ 45996 - 44032: 0xB5B4,
+ 45997 - 44032: 0x897A,
+ 45998 - 44032: 0x8981,
+ 45999 - 44032: 0x8982,
+ 46000 - 44032: 0x8983,
+ 46001 - 44032: 0x8984,
+ 46002 - 44032: 0x8985,
+ 46003 - 44032: 0x8986,
+ 46004 - 44032: 0x8987,
+ 46005 - 44032: 0x8988,
+ 46006 - 44032: 0x8989,
+ 46007 - 44032: 0x898A,
+ 46008 - 44032: 0x898B,
+ 46009 - 44032: 0x898C,
+ 46010 - 44032: 0x898D,
+ 46011 - 44032: 0x898E,
+ 46012 - 44032: 0x898F,
+ 46013 - 44032: 0x8990,
+ 46014 - 44032: 0x8991,
+ 46015 - 44032: 0x8992,
+ 46016 - 44032: 0x8993,
+ 46017 - 44032: 0x8994,
+ 46018 - 44032: 0x8995,
+ 46019 - 44032: 0x8996,
+ 46020 - 44032: 0xB5B5,
+ 46021 - 44032: 0xB5B6,
+ 46022 - 44032: 0x8997,
+ 46023 - 44032: 0x8998,
+ 46024 - 44032: 0xB5B7,
+ 46025 - 44032: 0x8999,
+ 46026 - 44032: 0x899A,
+ 46027 - 44032: 0xB5B8,
+ 46028 - 44032: 0xB5B9,
+ 46029 - 44032: 0x899B,
+ 46030 - 44032: 0xB5BA,
+ 46031 - 44032: 0x899C,
+ 46032 - 44032: 0xB5BB,
+ 46033 - 44032: 0x899D,
+ 46034 - 44032: 0x899E,
+ 46035 - 44032: 0x899F,
+ 46036 - 44032: 0xB5BC,
+ 46037 - 44032: 0xB5BD,
+ 46038 - 44032: 0x89A0,
+ 46039 - 44032: 0xB5BE,
+ 46040 - 44032: 0x89A1,
+ 46041 - 44032: 0xB5BF,
+ 46042 - 44032: 0x89A2,
+ 46043 - 44032: 0xB5C0,
+ 46044 - 44032: 0x89A3,
+ 46045 - 44032: 0xB5C1,
+ 46046 - 44032: 0x89A4,
+ 46047 - 44032: 0x89A5,
+ 46048 - 44032: 0xB5C2,
+ 46049 - 44032: 0x89A6,
+ 46050 - 44032: 0x89A7,
+ 46051 - 44032: 0x89A8,
+ 46052 - 44032: 0xB5C3,
+ 46053 - 44032: 0x89A9,
+ 46054 - 44032: 0x89AA,
+ 46055 - 44032: 0x89AB,
+ 46056 - 44032: 0xB5C4,
+ 46057 - 44032: 0x89AC,
+ 46058 - 44032: 0x89AD,
+ 46059 - 44032: 0x89AE,
+ 46060 - 44032: 0x89AF,
+ 46061 - 44032: 0x89B0,
+ 46062 - 44032: 0x89B1,
+ 46063 - 44032: 0x89B2,
+ 46064 - 44032: 0x89B3,
+ 46065 - 44032: 0x89B4,
+ 46066 - 44032: 0x89B5,
+ 46067 - 44032: 0x89B6,
+ 46068 - 44032: 0x89B7,
+ 46069 - 44032: 0x89B8,
+ 46070 - 44032: 0x89B9,
+ 46071 - 44032: 0x89BA,
+ 46072 - 44032: 0x89BB,
+ 46073 - 44032: 0x89BC,
+ 46074 - 44032: 0x89BD,
+ 46075 - 44032: 0x89BE,
+ 46076 - 44032: 0xB5C5,
+ 46077 - 44032: 0x89BF,
+ 46078 - 44032: 0x89C0,
+ 46079 - 44032: 0x89C1,
+ 46080 - 44032: 0x89C2,
+ 46081 - 44032: 0x89C3,
+ 46082 - 44032: 0x89C4,
+ 46083 - 44032: 0x89C5,
+ 46084 - 44032: 0x89C6,
+ 46085 - 44032: 0x89C7,
+ 46086 - 44032: 0x89C8,
+ 46087 - 44032: 0x89C9,
+ 46088 - 44032: 0x89CA,
+ 46089 - 44032: 0x89CB,
+ 46090 - 44032: 0x89CC,
+ 46091 - 44032: 0x89CD,
+ 46092 - 44032: 0x89CE,
+ 46093 - 44032: 0x89CF,
+ 46094 - 44032: 0x89D0,
+ 46095 - 44032: 0x89D1,
+ 46096 - 44032: 0xB5C6,
+ 46097 - 44032: 0x89D2,
+ 46098 - 44032: 0x89D3,
+ 46099 - 44032: 0x89D4,
+ 46100 - 44032: 0x89D5,
+ 46101 - 44032: 0x89D6,
+ 46102 - 44032: 0x89D7,
+ 46103 - 44032: 0x89D8,
+ 46104 - 44032: 0xB5C7,
+ 46105 - 44032: 0x89D9,
+ 46106 - 44032: 0x89DA,
+ 46107 - 44032: 0x89DB,
+ 46108 - 44032: 0xB5C8,
+ 46109 - 44032: 0x89DC,
+ 46110 - 44032: 0x89DD,
+ 46111 - 44032: 0x89DE,
+ 46112 - 44032: 0xB5C9,
+ 46113 - 44032: 0x89DF,
+ 46114 - 44032: 0x89E0,
+ 46115 - 44032: 0x89E1,
+ 46116 - 44032: 0x89E2,
+ 46117 - 44032: 0x89E3,
+ 46118 - 44032: 0x89E4,
+ 46119 - 44032: 0x89E5,
+ 46120 - 44032: 0xB5CA,
+ 46121 - 44032: 0xB5CB,
+ 46122 - 44032: 0x89E6,
+ 46123 - 44032: 0xB5CC,
+ 46124 - 44032: 0x89E7,
+ 46125 - 44032: 0x89E8,
+ 46126 - 44032: 0x89E9,
+ 46127 - 44032: 0x89EA,
+ 46128 - 44032: 0x89EB,
+ 46129 - 44032: 0x89EC,
+ 46130 - 44032: 0x89ED,
+ 46131 - 44032: 0x89EE,
+ 46132 - 44032: 0xB5CD,
+ 46133 - 44032: 0x89EF,
+ 46134 - 44032: 0x89F0,
+ 46135 - 44032: 0x89F1,
+ 46136 - 44032: 0x89F2,
+ 46137 - 44032: 0x89F3,
+ 46138 - 44032: 0x89F4,
+ 46139 - 44032: 0x89F5,
+ 46140 - 44032: 0x89F6,
+ 46141 - 44032: 0x89F7,
+ 46142 - 44032: 0x89F8,
+ 46143 - 44032: 0x89F9,
+ 46144 - 44032: 0x89FA,
+ 46145 - 44032: 0x89FB,
+ 46146 - 44032: 0x89FC,
+ 46147 - 44032: 0x89FD,
+ 46148 - 44032: 0x89FE,
+ 46149 - 44032: 0x8A41,
+ 46150 - 44032: 0x8A42,
+ 46151 - 44032: 0x8A43,
+ 46152 - 44032: 0x8A44,
+ 46153 - 44032: 0x8A45,
+ 46154 - 44032: 0x8A46,
+ 46155 - 44032: 0x8A47,
+ 46156 - 44032: 0x8A48,
+ 46157 - 44032: 0x8A49,
+ 46158 - 44032: 0x8A4A,
+ 46159 - 44032: 0x8A4B,
+ 46160 - 44032: 0xB5CE,
+ 46161 - 44032: 0xB5CF,
+ 46162 - 44032: 0x8A4C,
+ 46163 - 44032: 0x8A4D,
+ 46164 - 44032: 0xB5D0,
+ 46165 - 44032: 0x8A4E,
+ 46166 - 44032: 0x8A4F,
+ 46167 - 44032: 0x8A50,
+ 46168 - 44032: 0xB5D1,
+ 46169 - 44032: 0x8A51,
+ 46170 - 44032: 0x8A52,
+ 46171 - 44032: 0x8A53,
+ 46172 - 44032: 0x8A54,
+ 46173 - 44032: 0x8A55,
+ 46174 - 44032: 0x8A56,
+ 46175 - 44032: 0x8A57,
+ 46176 - 44032: 0xB5D2,
+ 46177 - 44032: 0xB5D3,
+ 46178 - 44032: 0x8A58,
+ 46179 - 44032: 0xB5D4,
+ 46180 - 44032: 0x8A59,
+ 46181 - 44032: 0xB5D5,
+ 46182 - 44032: 0x8A5A,
+ 46183 - 44032: 0x8A61,
+ 46184 - 44032: 0x8A62,
+ 46185 - 44032: 0x8A63,
+ 46186 - 44032: 0x8A64,
+ 46187 - 44032: 0x8A65,
+ 46188 - 44032: 0xB5D6,
+ 46189 - 44032: 0x8A66,
+ 46190 - 44032: 0x8A67,
+ 46191 - 44032: 0x8A68,
+ 46192 - 44032: 0x8A69,
+ 46193 - 44032: 0x8A6A,
+ 46194 - 44032: 0x8A6B,
+ 46195 - 44032: 0x8A6C,
+ 46196 - 44032: 0x8A6D,
+ 46197 - 44032: 0x8A6E,
+ 46198 - 44032: 0x8A6F,
+ 46199 - 44032: 0x8A70,
+ 46200 - 44032: 0x8A71,
+ 46201 - 44032: 0x8A72,
+ 46202 - 44032: 0x8A73,
+ 46203 - 44032: 0x8A74,
+ 46204 - 44032: 0x8A75,
+ 46205 - 44032: 0x8A76,
+ 46206 - 44032: 0x8A77,
+ 46207 - 44032: 0x8A78,
+ 46208 - 44032: 0xB5D7,
+ 46209 - 44032: 0x8A79,
+ 46210 - 44032: 0x8A7A,
+ 46211 - 44032: 0x8A81,
+ 46212 - 44032: 0x8A82,
+ 46213 - 44032: 0x8A83,
+ 46214 - 44032: 0x8A84,
+ 46215 - 44032: 0x8A85,
+ 46216 - 44032: 0xB5D8,
+ 46217 - 44032: 0x8A86,
+ 46218 - 44032: 0x8A87,
+ 46219 - 44032: 0x8A88,
+ 46220 - 44032: 0x8A89,
+ 46221 - 44032: 0x8A8A,
+ 46222 - 44032: 0x8A8B,
+ 46223 - 44032: 0x8A8C,
+ 46224 - 44032: 0x8A8D,
+ 46225 - 44032: 0x8A8E,
+ 46226 - 44032: 0x8A8F,
+ 46227 - 44032: 0x8A90,
+ 46228 - 44032: 0x8A91,
+ 46229 - 44032: 0x8A92,
+ 46230 - 44032: 0x8A93,
+ 46231 - 44032: 0x8A94,
+ 46232 - 44032: 0x8A95,
+ 46233 - 44032: 0x8A96,
+ 46234 - 44032: 0x8A97,
+ 46235 - 44032: 0x8A98,
+ 46236 - 44032: 0x8A99,
+ 46237 - 44032: 0xB5D9,
+ 46238 - 44032: 0x8A9A,
+ 46239 - 44032: 0x8A9B,
+ 46240 - 44032: 0x8A9C,
+ 46241 - 44032: 0x8A9D,
+ 46242 - 44032: 0x8A9E,
+ 46243 - 44032: 0x8A9F,
+ 46244 - 44032: 0xB5DA,
+ 46245 - 44032: 0x8AA0,
+ 46246 - 44032: 0x8AA1,
+ 46247 - 44032: 0x8AA2,
+ 46248 - 44032: 0xB5DB,
+ 46249 - 44032: 0x8AA3,
+ 46250 - 44032: 0x8AA4,
+ 46251 - 44032: 0x8AA5,
+ 46252 - 44032: 0xB5DC,
+ 46253 - 44032: 0x8AA6,
+ 46254 - 44032: 0x8AA7,
+ 46255 - 44032: 0x8AA8,
+ 46256 - 44032: 0x8AA9,
+ 46257 - 44032: 0x8AAA,
+ 46258 - 44032: 0x8AAB,
+ 46259 - 44032: 0x8AAC,
+ 46260 - 44032: 0x8AAD,
+ 46261 - 44032: 0xB5DD,
+ 46262 - 44032: 0x8AAE,
+ 46263 - 44032: 0xB5DE,
+ 46264 - 44032: 0x8AAF,
+ 46265 - 44032: 0xB5DF,
+ 46266 - 44032: 0x8AB0,
+ 46267 - 44032: 0x8AB1,
+ 46268 - 44032: 0x8AB2,
+ 46269 - 44032: 0x8AB3,
+ 46270 - 44032: 0x8AB4,
+ 46271 - 44032: 0x8AB5,
+ 46272 - 44032: 0xB5E0,
+ 46273 - 44032: 0x8AB6,
+ 46274 - 44032: 0x8AB7,
+ 46275 - 44032: 0x8AB8,
+ 46276 - 44032: 0xB5E1,
+ 46277 - 44032: 0x8AB9,
+ 46278 - 44032: 0x8ABA,
+ 46279 - 44032: 0x8ABB,
+ 46280 - 44032: 0xB5E2,
+ 46281 - 44032: 0x8ABC,
+ 46282 - 44032: 0x8ABD,
+ 46283 - 44032: 0x8ABE,
+ 46284 - 44032: 0x8ABF,
+ 46285 - 44032: 0x8AC0,
+ 46286 - 44032: 0x8AC1,
+ 46287 - 44032: 0x8AC2,
+ 46288 - 44032: 0xB5E3,
+ 46289 - 44032: 0x8AC3,
+ 46290 - 44032: 0x8AC4,
+ 46291 - 44032: 0x8AC5,
+ 46292 - 44032: 0x8AC6,
+ 46293 - 44032: 0xB5E4,
+ 46294 - 44032: 0x8AC7,
+ 46295 - 44032: 0x8AC8,
+ 46296 - 44032: 0x8AC9,
+ 46297 - 44032: 0x8ACA,
+ 46298 - 44032: 0x8ACB,
+ 46299 - 44032: 0x8ACC,
+ 46300 - 44032: 0xB5E5,
+ 46301 - 44032: 0xB5E6,
+ 46302 - 44032: 0x8ACD,
+ 46303 - 44032: 0x8ACE,
+ 46304 - 44032: 0xB5E7,
+ 46305 - 44032: 0x8ACF,
+ 46306 - 44032: 0x8AD0,
+ 46307 - 44032: 0xB5E8,
+ 46308 - 44032: 0xB5E9,
+ 46309 - 44032: 0x8AD1,
+ 46310 - 44032: 0xB5EA,
+ 46311 - 44032: 0x8AD2,
+ 46312 - 44032: 0x8AD3,
+ 46313 - 44032: 0x8AD4,
+ 46314 - 44032: 0x8AD5,
+ 46315 - 44032: 0x8AD6,
+ 46316 - 44032: 0xB5EB,
+ 46317 - 44032: 0xB5EC,
+ 46318 - 44032: 0x8AD7,
+ 46319 - 44032: 0xB5ED,
+ 46320 - 44032: 0x8AD8,
+ 46321 - 44032: 0xB5EE,
+ 46322 - 44032: 0x8AD9,
+ 46323 - 44032: 0x8ADA,
+ 46324 - 44032: 0x8ADB,
+ 46325 - 44032: 0x8ADC,
+ 46326 - 44032: 0x8ADD,
+ 46327 - 44032: 0x8ADE,
+ 46328 - 44032: 0xB5EF,
+ 46329 - 44032: 0x8ADF,
+ 46330 - 44032: 0x8AE0,
+ 46331 - 44032: 0x8AE1,
+ 46332 - 44032: 0x8AE2,
+ 46333 - 44032: 0x8AE3,
+ 46334 - 44032: 0x8AE4,
+ 46335 - 44032: 0x8AE5,
+ 46336 - 44032: 0x8AE6,
+ 46337 - 44032: 0x8AE7,
+ 46338 - 44032: 0x8AE8,
+ 46339 - 44032: 0x8AE9,
+ 46340 - 44032: 0x8AEA,
+ 46341 - 44032: 0x8AEB,
+ 46342 - 44032: 0x8AEC,
+ 46343 - 44032: 0x8AED,
+ 46344 - 44032: 0x8AEE,
+ 46345 - 44032: 0x8AEF,
+ 46346 - 44032: 0x8AF0,
+ 46347 - 44032: 0x8AF1,
+ 46348 - 44032: 0x8AF2,
+ 46349 - 44032: 0x8AF3,
+ 46350 - 44032: 0x8AF4,
+ 46351 - 44032: 0x8AF5,
+ 46352 - 44032: 0x8AF6,
+ 46353 - 44032: 0x8AF7,
+ 46354 - 44032: 0x8AF8,
+ 46355 - 44032: 0x8AF9,
+ 46356 - 44032: 0xB5F0,
+ 46357 - 44032: 0xB5F1,
+ 46358 - 44032: 0x8AFA,
+ 46359 - 44032: 0x8AFB,
+ 46360 - 44032: 0xB5F2,
+ 46361 - 44032: 0x8AFC,
+ 46362 - 44032: 0x8AFD,
+ 46363 - 44032: 0xB5F3,
+ 46364 - 44032: 0xB5F4,
+ 46365 - 44032: 0x8AFE,
+ 46366 - 44032: 0x8B41,
+ 46367 - 44032: 0x8B42,
+ 46368 - 44032: 0x8B43,
+ 46369 - 44032: 0x8B44,
+ 46370 - 44032: 0x8B45,
+ 46371 - 44032: 0x8B46,
+ 46372 - 44032: 0xB5F5,
+ 46373 - 44032: 0xB5F6,
+ 46374 - 44032: 0x8B47,
+ 46375 - 44032: 0xB5F7,
+ 46376 - 44032: 0xB5F8,
+ 46377 - 44032: 0xB5F9,
+ 46378 - 44032: 0xB5FA,
+ 46379 - 44032: 0x8B48,
+ 46380 - 44032: 0x8B49,
+ 46381 - 44032: 0x8B4A,
+ 46382 - 44032: 0x8B4B,
+ 46383 - 44032: 0x8B4C,
+ 46384 - 44032: 0xB5FB,
+ 46385 - 44032: 0xB5FC,
+ 46386 - 44032: 0x8B4D,
+ 46387 - 44032: 0x8B4E,
+ 46388 - 44032: 0xB5FD,
+ 46389 - 44032: 0x8B4F,
+ 46390 - 44032: 0x8B50,
+ 46391 - 44032: 0x8B51,
+ 46392 - 44032: 0xB5FE,
+ 46393 - 44032: 0x8B52,
+ 46394 - 44032: 0x8B53,
+ 46395 - 44032: 0x8B54,
+ 46396 - 44032: 0x8B55,
+ 46397 - 44032: 0x8B56,
+ 46398 - 44032: 0x8B57,
+ 46399 - 44032: 0x8B58,
+ 46400 - 44032: 0xB6A1,
+ 46401 - 44032: 0xB6A2,
+ 46402 - 44032: 0x8B59,
+ 46403 - 44032: 0xB6A3,
+ 46404 - 44032: 0xB6A4,
+ 46405 - 44032: 0xB6A5,
+ 46406 - 44032: 0x8B5A,
+ 46407 - 44032: 0x8B61,
+ 46408 - 44032: 0x8B62,
+ 46409 - 44032: 0x8B63,
+ 46410 - 44032: 0x8B64,
+ 46411 - 44032: 0xB6A6,
+ 46412 - 44032: 0xB6A7,
+ 46413 - 44032: 0xB6A8,
+ 46414 - 44032: 0x8B65,
+ 46415 - 44032: 0x8B66,
+ 46416 - 44032: 0xB6A9,
+ 46417 - 44032: 0x8B67,
+ 46418 - 44032: 0x8B68,
+ 46419 - 44032: 0x8B69,
+ 46420 - 44032: 0xB6AA,
+ 46421 - 44032: 0x8B6A,
+ 46422 - 44032: 0x8B6B,
+ 46423 - 44032: 0x8B6C,
+ 46424 - 44032: 0x8B6D,
+ 46425 - 44032: 0x8B6E,
+ 46426 - 44032: 0x8B6F,
+ 46427 - 44032: 0x8B70,
+ 46428 - 44032: 0xB6AB,
+ 46429 - 44032: 0xB6AC,
+ 46430 - 44032: 0x8B71,
+ 46431 - 44032: 0xB6AD,
+ 46432 - 44032: 0xB6AE,
+ 46433 - 44032: 0xB6AF,
+ 46434 - 44032: 0x8B72,
+ 46435 - 44032: 0x8B73,
+ 46436 - 44032: 0x8B74,
+ 46437 - 44032: 0x8B75,
+ 46438 - 44032: 0x8B76,
+ 46439 - 44032: 0x8B77,
+ 46440 - 44032: 0x8B78,
+ 46441 - 44032: 0x8B79,
+ 46442 - 44032: 0x8B7A,
+ 46443 - 44032: 0x8B81,
+ 46444 - 44032: 0x8B82,
+ 46445 - 44032: 0x8B83,
+ 46446 - 44032: 0x8B84,
+ 46447 - 44032: 0x8B85,
+ 46448 - 44032: 0x8B86,
+ 46449 - 44032: 0x8B87,
+ 46450 - 44032: 0x8B88,
+ 46451 - 44032: 0x8B89,
+ 46452 - 44032: 0x8B8A,
+ 46453 - 44032: 0x8B8B,
+ 46454 - 44032: 0x8B8C,
+ 46455 - 44032: 0x8B8D,
+ 46456 - 44032: 0x8B8E,
+ 46457 - 44032: 0x8B8F,
+ 46458 - 44032: 0x8B90,
+ 46459 - 44032: 0x8B91,
+ 46460 - 44032: 0x8B92,
+ 46461 - 44032: 0x8B93,
+ 46462 - 44032: 0x8B94,
+ 46463 - 44032: 0x8B95,
+ 46464 - 44032: 0x8B96,
+ 46465 - 44032: 0x8B97,
+ 46466 - 44032: 0x8B98,
+ 46467 - 44032: 0x8B99,
+ 46468 - 44032: 0x8B9A,
+ 46469 - 44032: 0x8B9B,
+ 46470 - 44032: 0x8B9C,
+ 46471 - 44032: 0x8B9D,
+ 46472 - 44032: 0x8B9E,
+ 46473 - 44032: 0x8B9F,
+ 46474 - 44032: 0x8BA0,
+ 46475 - 44032: 0x8BA1,
+ 46476 - 44032: 0x8BA2,
+ 46477 - 44032: 0x8BA3,
+ 46478 - 44032: 0x8BA4,
+ 46479 - 44032: 0x8BA5,
+ 46480 - 44032: 0x8BA6,
+ 46481 - 44032: 0x8BA7,
+ 46482 - 44032: 0x8BA8,
+ 46483 - 44032: 0x8BA9,
+ 46484 - 44032: 0x8BAA,
+ 46485 - 44032: 0x8BAB,
+ 46486 - 44032: 0x8BAC,
+ 46487 - 44032: 0x8BAD,
+ 46488 - 44032: 0x8BAE,
+ 46489 - 44032: 0x8BAF,
+ 46490 - 44032: 0x8BB0,
+ 46491 - 44032: 0x8BB1,
+ 46492 - 44032: 0x8BB2,
+ 46493 - 44032: 0x8BB3,
+ 46494 - 44032: 0x8BB4,
+ 46495 - 44032: 0x8BB5,
+ 46496 - 44032: 0xB6B0,
+ 46497 - 44032: 0xB6B1,
+ 46498 - 44032: 0x8BB6,
+ 46499 - 44032: 0x8BB7,
+ 46500 - 44032: 0xB6B2,
+ 46501 - 44032: 0x8BB8,
+ 46502 - 44032: 0x8BB9,
+ 46503 - 44032: 0x8BBA,
+ 46504 - 44032: 0xB6B3,
+ 46505 - 44032: 0x8BBB,
+ 46506 - 44032: 0xB6B4,
+ 46507 - 44032: 0xB6B5,
+ 46508 - 44032: 0x8BBC,
+ 46509 - 44032: 0x8BBD,
+ 46510 - 44032: 0x8BBE,
+ 46511 - 44032: 0x8BBF,
+ 46512 - 44032: 0xB6B6,
+ 46513 - 44032: 0xB6B7,
+ 46514 - 44032: 0x8BC0,
+ 46515 - 44032: 0xB6B8,
+ 46516 - 44032: 0xB6B9,
+ 46517 - 44032: 0xB6BA,
+ 46518 - 44032: 0x8BC1,
+ 46519 - 44032: 0x8BC2,
+ 46520 - 44032: 0x8BC3,
+ 46521 - 44032: 0x8BC4,
+ 46522 - 44032: 0x8BC5,
+ 46523 - 44032: 0xB6BB,
+ 46524 - 44032: 0xB6BC,
+ 46525 - 44032: 0xB6BD,
+ 46526 - 44032: 0x8BC6,
+ 46527 - 44032: 0x8BC7,
+ 46528 - 44032: 0xB6BE,
+ 46529 - 44032: 0x8BC8,
+ 46530 - 44032: 0x8BC9,
+ 46531 - 44032: 0x8BCA,
+ 46532 - 44032: 0xB6BF,
+ 46533 - 44032: 0x8BCB,
+ 46534 - 44032: 0x8BCC,
+ 46535 - 44032: 0x8BCD,
+ 46536 - 44032: 0x8BCE,
+ 46537 - 44032: 0x8BCF,
+ 46538 - 44032: 0x8BD0,
+ 46539 - 44032: 0x8BD1,
+ 46540 - 44032: 0xB6C0,
+ 46541 - 44032: 0xB6C1,
+ 46542 - 44032: 0x8BD2,
+ 46543 - 44032: 0xB6C2,
+ 46544 - 44032: 0xB6C3,
+ 46545 - 44032: 0xB6C4,
+ 46546 - 44032: 0x8BD3,
+ 46547 - 44032: 0x8BD4,
+ 46548 - 44032: 0x8BD5,
+ 46549 - 44032: 0x8BD6,
+ 46550 - 44032: 0x8BD7,
+ 46551 - 44032: 0x8BD8,
+ 46552 - 44032: 0xB6C5,
+ 46553 - 44032: 0x8BD9,
+ 46554 - 44032: 0x8BDA,
+ 46555 - 44032: 0x8BDB,
+ 46556 - 44032: 0x8BDC,
+ 46557 - 44032: 0x8BDD,
+ 46558 - 44032: 0x8BDE,
+ 46559 - 44032: 0x8BDF,
+ 46560 - 44032: 0x8BE0,
+ 46561 - 44032: 0x8BE1,
+ 46562 - 44032: 0x8BE2,
+ 46563 - 44032: 0x8BE3,
+ 46564 - 44032: 0x8BE4,
+ 46565 - 44032: 0x8BE5,
+ 46566 - 44032: 0x8BE6,
+ 46567 - 44032: 0x8BE7,
+ 46568 - 44032: 0x8BE8,
+ 46569 - 44032: 0x8BE9,
+ 46570 - 44032: 0x8BEA,
+ 46571 - 44032: 0x8BEB,
+ 46572 - 44032: 0xB6C6,
+ 46573 - 44032: 0x8BEC,
+ 46574 - 44032: 0x8BED,
+ 46575 - 44032: 0x8BEE,
+ 46576 - 44032: 0x8BEF,
+ 46577 - 44032: 0x8BF0,
+ 46578 - 44032: 0x8BF1,
+ 46579 - 44032: 0x8BF2,
+ 46580 - 44032: 0x8BF3,
+ 46581 - 44032: 0x8BF4,
+ 46582 - 44032: 0x8BF5,
+ 46583 - 44032: 0x8BF6,
+ 46584 - 44032: 0x8BF7,
+ 46585 - 44032: 0x8BF8,
+ 46586 - 44032: 0x8BF9,
+ 46587 - 44032: 0x8BFA,
+ 46588 - 44032: 0x8BFB,
+ 46589 - 44032: 0x8BFC,
+ 46590 - 44032: 0x8BFD,
+ 46591 - 44032: 0x8BFE,
+ 46592 - 44032: 0x8C41,
+ 46593 - 44032: 0x8C42,
+ 46594 - 44032: 0x8C43,
+ 46595 - 44032: 0x8C44,
+ 46596 - 44032: 0x8C45,
+ 46597 - 44032: 0x8C46,
+ 46598 - 44032: 0x8C47,
+ 46599 - 44032: 0x8C48,
+ 46600 - 44032: 0x8C49,
+ 46601 - 44032: 0x8C4A,
+ 46602 - 44032: 0x8C4B,
+ 46603 - 44032: 0x8C4C,
+ 46604 - 44032: 0x8C4D,
+ 46605 - 44032: 0x8C4E,
+ 46606 - 44032: 0x8C4F,
+ 46607 - 44032: 0x8C50,
+ 46608 - 44032: 0xB6C7,
+ 46609 - 44032: 0xB6C8,
+ 46610 - 44032: 0x8C51,
+ 46611 - 44032: 0x8C52,
+ 46612 - 44032: 0xB6C9,
+ 46613 - 44032: 0x8C53,
+ 46614 - 44032: 0x8C54,
+ 46615 - 44032: 0x8C55,
+ 46616 - 44032: 0xB6CA,
+ 46617 - 44032: 0x8C56,
+ 46618 - 44032: 0x8C57,
+ 46619 - 44032: 0x8C58,
+ 46620 - 44032: 0x8C59,
+ 46621 - 44032: 0x8C5A,
+ 46622 - 44032: 0x8C61,
+ 46623 - 44032: 0x8C62,
+ 46624 - 44032: 0x8C63,
+ 46625 - 44032: 0x8C64,
+ 46626 - 44032: 0x8C65,
+ 46627 - 44032: 0x8C66,
+ 46628 - 44032: 0x8C67,
+ 46629 - 44032: 0xB6CB,
+ 46630 - 44032: 0x8C68,
+ 46631 - 44032: 0x8C69,
+ 46632 - 44032: 0x8C6A,
+ 46633 - 44032: 0x8C6B,
+ 46634 - 44032: 0x8C6C,
+ 46635 - 44032: 0x8C6D,
+ 46636 - 44032: 0xB6CC,
+ 46637 - 44032: 0x8C6E,
+ 46638 - 44032: 0x8C6F,
+ 46639 - 44032: 0x8C70,
+ 46640 - 44032: 0x8C71,
+ 46641 - 44032: 0x8C72,
+ 46642 - 44032: 0x8C73,
+ 46643 - 44032: 0x8C74,
+ 46644 - 44032: 0xB6CD,
+ 46645 - 44032: 0x8C75,
+ 46646 - 44032: 0x8C76,
+ 46647 - 44032: 0x8C77,
+ 46648 - 44032: 0x8C78,
+ 46649 - 44032: 0x8C79,
+ 46650 - 44032: 0x8C7A,
+ 46651 - 44032: 0x8C81,
+ 46652 - 44032: 0x8C82,
+ 46653 - 44032: 0x8C83,
+ 46654 - 44032: 0x8C84,
+ 46655 - 44032: 0x8C85,
+ 46656 - 44032: 0x8C86,
+ 46657 - 44032: 0x8C87,
+ 46658 - 44032: 0x8C88,
+ 46659 - 44032: 0x8C89,
+ 46660 - 44032: 0x8C8A,
+ 46661 - 44032: 0x8C8B,
+ 46662 - 44032: 0x8C8C,
+ 46663 - 44032: 0x8C8D,
+ 46664 - 44032: 0xB6CE,
+ 46665 - 44032: 0x8C8E,
+ 46666 - 44032: 0x8C8F,
+ 46667 - 44032: 0x8C90,
+ 46668 - 44032: 0x8C91,
+ 46669 - 44032: 0x8C92,
+ 46670 - 44032: 0x8C93,
+ 46671 - 44032: 0x8C94,
+ 46672 - 44032: 0x8C95,
+ 46673 - 44032: 0x8C96,
+ 46674 - 44032: 0x8C97,
+ 46675 - 44032: 0x8C98,
+ 46676 - 44032: 0x8C99,
+ 46677 - 44032: 0x8C9A,
+ 46678 - 44032: 0x8C9B,
+ 46679 - 44032: 0x8C9C,
+ 46680 - 44032: 0x8C9D,
+ 46681 - 44032: 0x8C9E,
+ 46682 - 44032: 0x8C9F,
+ 46683 - 44032: 0x8CA0,
+ 46684 - 44032: 0x8CA1,
+ 46685 - 44032: 0x8CA2,
+ 46686 - 44032: 0x8CA3,
+ 46687 - 44032: 0x8CA4,
+ 46688 - 44032: 0x8CA5,
+ 46689 - 44032: 0x8CA6,
+ 46690 - 44032: 0x8CA7,
+ 46691 - 44032: 0x8CA8,
+ 46692 - 44032: 0xB6CF,
+ 46693 - 44032: 0x8CA9,
+ 46694 - 44032: 0x8CAA,
+ 46695 - 44032: 0x8CAB,
+ 46696 - 44032: 0xB6D0,
+ 46697 - 44032: 0x8CAC,
+ 46698 - 44032: 0x8CAD,
+ 46699 - 44032: 0x8CAE,
+ 46700 - 44032: 0x8CAF,
+ 46701 - 44032: 0x8CB0,
+ 46702 - 44032: 0x8CB1,
+ 46703 - 44032: 0x8CB2,
+ 46704 - 44032: 0x8CB3,
+ 46705 - 44032: 0x8CB4,
+ 46706 - 44032: 0x8CB5,
+ 46707 - 44032: 0x8CB6,
+ 46708 - 44032: 0x8CB7,
+ 46709 - 44032: 0x8CB8,
+ 46710 - 44032: 0x8CB9,
+ 46711 - 44032: 0x8CBA,
+ 46712 - 44032: 0x8CBB,
+ 46713 - 44032: 0x8CBC,
+ 46714 - 44032: 0x8CBD,
+ 46715 - 44032: 0x8CBE,
+ 46716 - 44032: 0x8CBF,
+ 46717 - 44032: 0x8CC0,
+ 46718 - 44032: 0x8CC1,
+ 46719 - 44032: 0x8CC2,
+ 46720 - 44032: 0x8CC3,
+ 46721 - 44032: 0x8CC4,
+ 46722 - 44032: 0x8CC5,
+ 46723 - 44032: 0x8CC6,
+ 46724 - 44032: 0x8CC7,
+ 46725 - 44032: 0x8CC8,
+ 46726 - 44032: 0x8CC9,
+ 46727 - 44032: 0x8CCA,
+ 46728 - 44032: 0x8CCB,
+ 46729 - 44032: 0x8CCC,
+ 46730 - 44032: 0x8CCD,
+ 46731 - 44032: 0x8CCE,
+ 46732 - 44032: 0x8CCF,
+ 46733 - 44032: 0x8CD0,
+ 46734 - 44032: 0x8CD1,
+ 46735 - 44032: 0x8CD2,
+ 46736 - 44032: 0x8CD3,
+ 46737 - 44032: 0x8CD4,
+ 46738 - 44032: 0x8CD5,
+ 46739 - 44032: 0x8CD6,
+ 46740 - 44032: 0x8CD7,
+ 46741 - 44032: 0x8CD8,
+ 46742 - 44032: 0x8CD9,
+ 46743 - 44032: 0x8CDA,
+ 46744 - 44032: 0x8CDB,
+ 46745 - 44032: 0x8CDC,
+ 46746 - 44032: 0x8CDD,
+ 46747 - 44032: 0x8CDE,
+ 46748 - 44032: 0xB6D1,
+ 46749 - 44032: 0xB6D2,
+ 46750 - 44032: 0x8CDF,
+ 46751 - 44032: 0x8CE0,
+ 46752 - 44032: 0xB6D3,
+ 46753 - 44032: 0x8CE1,
+ 46754 - 44032: 0x8CE2,
+ 46755 - 44032: 0x8CE3,
+ 46756 - 44032: 0xB6D4,
+ 46757 - 44032: 0x8CE4,
+ 46758 - 44032: 0x8CE5,
+ 46759 - 44032: 0x8CE6,
+ 46760 - 44032: 0x8CE7,
+ 46761 - 44032: 0x8CE8,
+ 46762 - 44032: 0x8CE9,
+ 46763 - 44032: 0xB6D5,
+ 46764 - 44032: 0xB6D6,
+ 46765 - 44032: 0x8CEA,
+ 46766 - 44032: 0x8CEB,
+ 46767 - 44032: 0x8CEC,
+ 46768 - 44032: 0x8CED,
+ 46769 - 44032: 0xB6D7,
+ 46770 - 44032: 0x8CEE,
+ 46771 - 44032: 0x8CEF,
+ 46772 - 44032: 0x8CF0,
+ 46773 - 44032: 0x8CF1,
+ 46774 - 44032: 0x8CF2,
+ 46775 - 44032: 0x8CF3,
+ 46776 - 44032: 0x8CF4,
+ 46777 - 44032: 0x8CF5,
+ 46778 - 44032: 0x8CF6,
+ 46779 - 44032: 0x8CF7,
+ 46780 - 44032: 0x8CF8,
+ 46781 - 44032: 0x8CF9,
+ 46782 - 44032: 0x8CFA,
+ 46783 - 44032: 0x8CFB,
+ 46784 - 44032: 0x8CFC,
+ 46785 - 44032: 0x8CFD,
+ 46786 - 44032: 0x8CFE,
+ 46787 - 44032: 0x8D41,
+ 46788 - 44032: 0x8D42,
+ 46789 - 44032: 0x8D43,
+ 46790 - 44032: 0x8D44,
+ 46791 - 44032: 0x8D45,
+ 46792 - 44032: 0x8D46,
+ 46793 - 44032: 0x8D47,
+ 46794 - 44032: 0x8D48,
+ 46795 - 44032: 0x8D49,
+ 46796 - 44032: 0x8D4A,
+ 46797 - 44032: 0x8D4B,
+ 46798 - 44032: 0x8D4C,
+ 46799 - 44032: 0x8D4D,
+ 46800 - 44032: 0x8D4E,
+ 46801 - 44032: 0x8D4F,
+ 46802 - 44032: 0x8D50,
+ 46803 - 44032: 0x8D51,
+ 46804 - 44032: 0xB6D8,
+ 46805 - 44032: 0x8D52,
+ 46806 - 44032: 0x8D53,
+ 46807 - 44032: 0x8D54,
+ 46808 - 44032: 0x8D55,
+ 46809 - 44032: 0x8D56,
+ 46810 - 44032: 0x8D57,
+ 46811 - 44032: 0x8D58,
+ 46812 - 44032: 0x8D59,
+ 46813 - 44032: 0x8D5A,
+ 46814 - 44032: 0x8D61,
+ 46815 - 44032: 0x8D62,
+ 46816 - 44032: 0x8D63,
+ 46817 - 44032: 0x8D64,
+ 46818 - 44032: 0x8D65,
+ 46819 - 44032: 0x8D66,
+ 46820 - 44032: 0x8D67,
+ 46821 - 44032: 0x8D68,
+ 46822 - 44032: 0x8D69,
+ 46823 - 44032: 0x8D6A,
+ 46824 - 44032: 0x8D6B,
+ 46825 - 44032: 0x8D6C,
+ 46826 - 44032: 0x8D6D,
+ 46827 - 44032: 0x8D6E,
+ 46828 - 44032: 0x8D6F,
+ 46829 - 44032: 0x8D70,
+ 46830 - 44032: 0x8D71,
+ 46831 - 44032: 0x8D72,
+ 46832 - 44032: 0xB6D9,
+ 46833 - 44032: 0x8D73,
+ 46834 - 44032: 0x8D74,
+ 46835 - 44032: 0x8D75,
+ 46836 - 44032: 0xB6DA,
+ 46837 - 44032: 0x8D76,
+ 46838 - 44032: 0x8D77,
+ 46839 - 44032: 0x8D78,
+ 46840 - 44032: 0xB6DB,
+ 46841 - 44032: 0x8D79,
+ 46842 - 44032: 0x8D7A,
+ 46843 - 44032: 0x8D81,
+ 46844 - 44032: 0x8D82,
+ 46845 - 44032: 0x8D83,
+ 46846 - 44032: 0x8D84,
+ 46847 - 44032: 0x8D85,
+ 46848 - 44032: 0xB6DC,
+ 46849 - 44032: 0xB6DD,
+ 46850 - 44032: 0x8D86,
+ 46851 - 44032: 0x8D87,
+ 46852 - 44032: 0x8D88,
+ 46853 - 44032: 0xB6DE,
+ 46854 - 44032: 0x8D89,
+ 46855 - 44032: 0x8D8A,
+ 46856 - 44032: 0x8D8B,
+ 46857 - 44032: 0x8D8C,
+ 46858 - 44032: 0x8D8D,
+ 46859 - 44032: 0x8D8E,
+ 46860 - 44032: 0x8D8F,
+ 46861 - 44032: 0x8D90,
+ 46862 - 44032: 0x8D91,
+ 46863 - 44032: 0x8D92,
+ 46864 - 44032: 0x8D93,
+ 46865 - 44032: 0x8D94,
+ 46866 - 44032: 0x8D95,
+ 46867 - 44032: 0x8D96,
+ 46868 - 44032: 0x8D97,
+ 46869 - 44032: 0x8D98,
+ 46870 - 44032: 0x8D99,
+ 46871 - 44032: 0x8D9A,
+ 46872 - 44032: 0x8D9B,
+ 46873 - 44032: 0x8D9C,
+ 46874 - 44032: 0x8D9D,
+ 46875 - 44032: 0x8D9E,
+ 46876 - 44032: 0x8D9F,
+ 46877 - 44032: 0x8DA0,
+ 46878 - 44032: 0x8DA1,
+ 46879 - 44032: 0x8DA2,
+ 46880 - 44032: 0x8DA3,
+ 46881 - 44032: 0x8DA4,
+ 46882 - 44032: 0x8DA5,
+ 46883 - 44032: 0x8DA6,
+ 46884 - 44032: 0x8DA7,
+ 46885 - 44032: 0x8DA8,
+ 46886 - 44032: 0x8DA9,
+ 46887 - 44032: 0x8DAA,
+ 46888 - 44032: 0xB6DF,
+ 46889 - 44032: 0xB6E0,
+ 46890 - 44032: 0x8DAB,
+ 46891 - 44032: 0x8DAC,
+ 46892 - 44032: 0xB6E1,
+ 46893 - 44032: 0x8DAD,
+ 46894 - 44032: 0x8DAE,
+ 46895 - 44032: 0xB6E2,
+ 46896 - 44032: 0xB6E3,
+ 46897 - 44032: 0x8DAF,
+ 46898 - 44032: 0x8DB0,
+ 46899 - 44032: 0x8DB1,
+ 46900 - 44032: 0x8DB2,
+ 46901 - 44032: 0x8DB3,
+ 46902 - 44032: 0x8DB4,
+ 46903 - 44032: 0x8DB5,
+ 46904 - 44032: 0xB6E4,
+ 46905 - 44032: 0xB6E5,
+ 46906 - 44032: 0x8DB6,
+ 46907 - 44032: 0xB6E6,
+ 46908 - 44032: 0x8DB7,
+ 46909 - 44032: 0x8DB8,
+ 46910 - 44032: 0x8DB9,
+ 46911 - 44032: 0x8DBA,
+ 46912 - 44032: 0x8DBB,
+ 46913 - 44032: 0x8DBC,
+ 46914 - 44032: 0x8DBD,
+ 46915 - 44032: 0x8DBE,
+ 46916 - 44032: 0xB6E7,
+ 46917 - 44032: 0x8DBF,
+ 46918 - 44032: 0x8DC0,
+ 46919 - 44032: 0x8DC1,
+ 46920 - 44032: 0xB6E8,
+ 46921 - 44032: 0x8DC2,
+ 46922 - 44032: 0x8DC3,
+ 46923 - 44032: 0x8DC4,
+ 46924 - 44032: 0xB6E9,
+ 46925 - 44032: 0x8DC5,
+ 46926 - 44032: 0x8DC6,
+ 46927 - 44032: 0x8DC7,
+ 46928 - 44032: 0x8DC8,
+ 46929 - 44032: 0x8DC9,
+ 46930 - 44032: 0x8DCA,
+ 46931 - 44032: 0x8DCB,
+ 46932 - 44032: 0xB6EA,
+ 46933 - 44032: 0xB6EB,
+ 46934 - 44032: 0x8DCC,
+ 46935 - 44032: 0x8DCD,
+ 46936 - 44032: 0x8DCE,
+ 46937 - 44032: 0x8DCF,
+ 46938 - 44032: 0x8DD0,
+ 46939 - 44032: 0x8DD1,
+ 46940 - 44032: 0x8DD2,
+ 46941 - 44032: 0x8DD3,
+ 46942 - 44032: 0x8DD4,
+ 46943 - 44032: 0x8DD5,
+ 46944 - 44032: 0xB6EC,
+ 46945 - 44032: 0x8DD6,
+ 46946 - 44032: 0x8DD7,
+ 46947 - 44032: 0x8DD8,
+ 46948 - 44032: 0xB6ED,
+ 46949 - 44032: 0x8DD9,
+ 46950 - 44032: 0x8DDA,
+ 46951 - 44032: 0x8DDB,
+ 46952 - 44032: 0xB6EE,
+ 46953 - 44032: 0x8DDC,
+ 46954 - 44032: 0x8DDD,
+ 46955 - 44032: 0x8DDE,
+ 46956 - 44032: 0x8DDF,
+ 46957 - 44032: 0x8DE0,
+ 46958 - 44032: 0x8DE1,
+ 46959 - 44032: 0x8DE2,
+ 46960 - 44032: 0xB6EF,
+ 46961 - 44032: 0xB6F0,
+ 46962 - 44032: 0x8DE3,
+ 46963 - 44032: 0xB6F1,
+ 46964 - 44032: 0x8DE4,
+ 46965 - 44032: 0xB6F2,
+ 46966 - 44032: 0x8DE5,
+ 46967 - 44032: 0x8DE6,
+ 46968 - 44032: 0x8DE7,
+ 46969 - 44032: 0x8DE8,
+ 46970 - 44032: 0x8DE9,
+ 46971 - 44032: 0x8DEA,
+ 46972 - 44032: 0xB6F3,
+ 46973 - 44032: 0xB6F4,
+ 46974 - 44032: 0x8DEB,
+ 46975 - 44032: 0x8DEC,
+ 46976 - 44032: 0xB6F5,
+ 46977 - 44032: 0x8DED,
+ 46978 - 44032: 0x8DEE,
+ 46979 - 44032: 0x8DEF,
+ 46980 - 44032: 0xB6F6,
+ 46981 - 44032: 0x8DF0,
+ 46982 - 44032: 0x8DF1,
+ 46983 - 44032: 0x8DF2,
+ 46984 - 44032: 0x8DF3,
+ 46985 - 44032: 0x8DF4,
+ 46986 - 44032: 0x8DF5,
+ 46987 - 44032: 0x8DF6,
+ 46988 - 44032: 0xB6F7,
+ 46989 - 44032: 0xB6F8,
+ 46990 - 44032: 0x8DF7,
+ 46991 - 44032: 0xB6F9,
+ 46992 - 44032: 0xB6FA,
+ 46993 - 44032: 0xB6FB,
+ 46994 - 44032: 0xB6FC,
+ 46995 - 44032: 0x8DF8,
+ 46996 - 44032: 0x8DF9,
+ 46997 - 44032: 0x8DFA,
+ 46998 - 44032: 0xB6FD,
+ 46999 - 44032: 0xB6FE,
+ 47000 - 44032: 0xB7A1,
+ 47001 - 44032: 0xB7A2,
+ 47002 - 44032: 0x8DFB,
+ 47003 - 44032: 0x8DFC,
+ 47004 - 44032: 0xB7A3,
+ 47005 - 44032: 0x8DFD,
+ 47006 - 44032: 0x8DFE,
+ 47007 - 44032: 0x8E41,
+ 47008 - 44032: 0xB7A4,
+ 47009 - 44032: 0x8E42,
+ 47010 - 44032: 0x8E43,
+ 47011 - 44032: 0x8E44,
+ 47012 - 44032: 0x8E45,
+ 47013 - 44032: 0x8E46,
+ 47014 - 44032: 0x8E47,
+ 47015 - 44032: 0x8E48,
+ 47016 - 44032: 0xB7A5,
+ 47017 - 44032: 0xB7A6,
+ 47018 - 44032: 0x8E49,
+ 47019 - 44032: 0xB7A7,
+ 47020 - 44032: 0xB7A8,
+ 47021 - 44032: 0xB7A9,
+ 47022 - 44032: 0x8E4A,
+ 47023 - 44032: 0x8E4B,
+ 47024 - 44032: 0x8E4C,
+ 47025 - 44032: 0x8E4D,
+ 47026 - 44032: 0x8E4E,
+ 47027 - 44032: 0x8E4F,
+ 47028 - 44032: 0xB7AA,
+ 47029 - 44032: 0xB7AB,
+ 47030 - 44032: 0x8E50,
+ 47031 - 44032: 0x8E51,
+ 47032 - 44032: 0xB7AC,
+ 47033 - 44032: 0x8E52,
+ 47034 - 44032: 0x8E53,
+ 47035 - 44032: 0x8E54,
+ 47036 - 44032: 0x8E55,
+ 47037 - 44032: 0x8E56,
+ 47038 - 44032: 0x8E57,
+ 47039 - 44032: 0x8E58,
+ 47040 - 44032: 0x8E59,
+ 47041 - 44032: 0x8E5A,
+ 47042 - 44032: 0x8E61,
+ 47043 - 44032: 0x8E62,
+ 47044 - 44032: 0x8E63,
+ 47045 - 44032: 0x8E64,
+ 47046 - 44032: 0x8E65,
+ 47047 - 44032: 0xB7AD,
+ 47048 - 44032: 0x8E66,
+ 47049 - 44032: 0xB7AE,
+ 47050 - 44032: 0x8E67,
+ 47051 - 44032: 0x8E68,
+ 47052 - 44032: 0x8E69,
+ 47053 - 44032: 0x8E6A,
+ 47054 - 44032: 0x8E6B,
+ 47055 - 44032: 0x8E6C,
+ 47056 - 44032: 0x8E6D,
+ 47057 - 44032: 0x8E6E,
+ 47058 - 44032: 0x8E6F,
+ 47059 - 44032: 0x8E70,
+ 47060 - 44032: 0x8E71,
+ 47061 - 44032: 0x8E72,
+ 47062 - 44032: 0x8E73,
+ 47063 - 44032: 0x8E74,
+ 47064 - 44032: 0x8E75,
+ 47065 - 44032: 0x8E76,
+ 47066 - 44032: 0x8E77,
+ 47067 - 44032: 0x8E78,
+ 47068 - 44032: 0x8E79,
+ 47069 - 44032: 0x8E7A,
+ 47070 - 44032: 0x8E81,
+ 47071 - 44032: 0x8E82,
+ 47072 - 44032: 0x8E83,
+ 47073 - 44032: 0x8E84,
+ 47074 - 44032: 0x8E85,
+ 47075 - 44032: 0x8E86,
+ 47076 - 44032: 0x8E87,
+ 47077 - 44032: 0x8E88,
+ 47078 - 44032: 0x8E89,
+ 47079 - 44032: 0x8E8A,
+ 47080 - 44032: 0x8E8B,
+ 47081 - 44032: 0x8E8C,
+ 47082 - 44032: 0x8E8D,
+ 47083 - 44032: 0x8E8E,
+ 47084 - 44032: 0xB7AF,
+ 47085 - 44032: 0xB7B0,
+ 47086 - 44032: 0x8E8F,
+ 47087 - 44032: 0x8E90,
+ 47088 - 44032: 0xB7B1,
+ 47089 - 44032: 0x8E91,
+ 47090 - 44032: 0x8E92,
+ 47091 - 44032: 0x8E93,
+ 47092 - 44032: 0xB7B2,
+ 47093 - 44032: 0x8E94,
+ 47094 - 44032: 0x8E95,
+ 47095 - 44032: 0x8E96,
+ 47096 - 44032: 0x8E97,
+ 47097 - 44032: 0x8E98,
+ 47098 - 44032: 0x8E99,
+ 47099 - 44032: 0x8E9A,
+ 47100 - 44032: 0xB7B3,
+ 47101 - 44032: 0xB7B4,
+ 47102 - 44032: 0x8E9B,
+ 47103 - 44032: 0xB7B5,
+ 47104 - 44032: 0xB7B6,
+ 47105 - 44032: 0xB7B7,
+ 47106 - 44032: 0x8E9C,
+ 47107 - 44032: 0x8E9D,
+ 47108 - 44032: 0x8E9E,
+ 47109 - 44032: 0x8E9F,
+ 47110 - 44032: 0x8EA0,
+ 47111 - 44032: 0xB7B8,
+ 47112 - 44032: 0xB7B9,
+ 47113 - 44032: 0xB7BA,
+ 47114 - 44032: 0x8EA1,
+ 47115 - 44032: 0x8EA2,
+ 47116 - 44032: 0xB7BB,
+ 47117 - 44032: 0x8EA3,
+ 47118 - 44032: 0x8EA4,
+ 47119 - 44032: 0x8EA5,
+ 47120 - 44032: 0xB7BC,
+ 47121 - 44032: 0x8EA6,
+ 47122 - 44032: 0x8EA7,
+ 47123 - 44032: 0x8EA8,
+ 47124 - 44032: 0x8EA9,
+ 47125 - 44032: 0x8EAA,
+ 47126 - 44032: 0x8EAB,
+ 47127 - 44032: 0x8EAC,
+ 47128 - 44032: 0xB7BD,
+ 47129 - 44032: 0xB7BE,
+ 47130 - 44032: 0x8EAD,
+ 47131 - 44032: 0xB7BF,
+ 47132 - 44032: 0x8EAE,
+ 47133 - 44032: 0xB7C0,
+ 47134 - 44032: 0x8EAF,
+ 47135 - 44032: 0x8EB0,
+ 47136 - 44032: 0x8EB1,
+ 47137 - 44032: 0x8EB2,
+ 47138 - 44032: 0x8EB3,
+ 47139 - 44032: 0x8EB4,
+ 47140 - 44032: 0xB7C1,
+ 47141 - 44032: 0xB7C2,
+ 47142 - 44032: 0x8EB5,
+ 47143 - 44032: 0x8EB6,
+ 47144 - 44032: 0xB7C3,
+ 47145 - 44032: 0x8EB7,
+ 47146 - 44032: 0x8EB8,
+ 47147 - 44032: 0x8EB9,
+ 47148 - 44032: 0xB7C4,
+ 47149 - 44032: 0x8EBA,
+ 47150 - 44032: 0x8EBB,
+ 47151 - 44032: 0x8EBC,
+ 47152 - 44032: 0x8EBD,
+ 47153 - 44032: 0x8EBE,
+ 47154 - 44032: 0x8EBF,
+ 47155 - 44032: 0x8EC0,
+ 47156 - 44032: 0xB7C5,
+ 47157 - 44032: 0xB7C6,
+ 47158 - 44032: 0x8EC1,
+ 47159 - 44032: 0xB7C7,
+ 47160 - 44032: 0xB7C8,
+ 47161 - 44032: 0xB7C9,
+ 47162 - 44032: 0x8EC2,
+ 47163 - 44032: 0x8EC3,
+ 47164 - 44032: 0x8EC4,
+ 47165 - 44032: 0x8EC5,
+ 47166 - 44032: 0x8EC6,
+ 47167 - 44032: 0x8EC7,
+ 47168 - 44032: 0xB7CA,
+ 47169 - 44032: 0x8EC8,
+ 47170 - 44032: 0x8EC9,
+ 47171 - 44032: 0x8ECA,
+ 47172 - 44032: 0xB7CB,
+ 47173 - 44032: 0x8ECB,
+ 47174 - 44032: 0x8ECC,
+ 47175 - 44032: 0x8ECD,
+ 47176 - 44032: 0x8ECE,
+ 47177 - 44032: 0x8ECF,
+ 47178 - 44032: 0x8ED0,
+ 47179 - 44032: 0x8ED1,
+ 47180 - 44032: 0x8ED2,
+ 47181 - 44032: 0x8ED3,
+ 47182 - 44032: 0x8ED4,
+ 47183 - 44032: 0x8ED5,
+ 47184 - 44032: 0x8ED6,
+ 47185 - 44032: 0xB7CC,
+ 47186 - 44032: 0x8ED7,
+ 47187 - 44032: 0xB7CD,
+ 47188 - 44032: 0x8ED8,
+ 47189 - 44032: 0x8ED9,
+ 47190 - 44032: 0x8EDA,
+ 47191 - 44032: 0x8EDB,
+ 47192 - 44032: 0x8EDC,
+ 47193 - 44032: 0x8EDD,
+ 47194 - 44032: 0x8EDE,
+ 47195 - 44032: 0x8EDF,
+ 47196 - 44032: 0xB7CE,
+ 47197 - 44032: 0xB7CF,
+ 47198 - 44032: 0x8EE0,
+ 47199 - 44032: 0x8EE1,
+ 47200 - 44032: 0xB7D0,
+ 47201 - 44032: 0x8EE2,
+ 47202 - 44032: 0x8EE3,
+ 47203 - 44032: 0x8EE4,
+ 47204 - 44032: 0xB7D1,
+ 47205 - 44032: 0x8EE5,
+ 47206 - 44032: 0x8EE6,
+ 47207 - 44032: 0x8EE7,
+ 47208 - 44032: 0x8EE8,
+ 47209 - 44032: 0x8EE9,
+ 47210 - 44032: 0x8EEA,
+ 47211 - 44032: 0x8EEB,
+ 47212 - 44032: 0xB7D2,
+ 47213 - 44032: 0xB7D3,
+ 47214 - 44032: 0x8EEC,
+ 47215 - 44032: 0xB7D4,
+ 47216 - 44032: 0x8EED,
+ 47217 - 44032: 0xB7D5,
+ 47218 - 44032: 0x8EEE,
+ 47219 - 44032: 0x8EEF,
+ 47220 - 44032: 0x8EF0,
+ 47221 - 44032: 0x8EF1,
+ 47222 - 44032: 0x8EF2,
+ 47223 - 44032: 0x8EF3,
+ 47224 - 44032: 0xB7D6,
+ 47225 - 44032: 0x8EF4,
+ 47226 - 44032: 0x8EF5,
+ 47227 - 44032: 0x8EF6,
+ 47228 - 44032: 0xB7D7,
+ 47229 - 44032: 0x8EF7,
+ 47230 - 44032: 0x8EF8,
+ 47231 - 44032: 0x8EF9,
+ 47232 - 44032: 0x8EFA,
+ 47233 - 44032: 0x8EFB,
+ 47234 - 44032: 0x8EFC,
+ 47235 - 44032: 0x8EFD,
+ 47236 - 44032: 0x8EFE,
+ 47237 - 44032: 0x8F41,
+ 47238 - 44032: 0x8F42,
+ 47239 - 44032: 0x8F43,
+ 47240 - 44032: 0x8F44,
+ 47241 - 44032: 0x8F45,
+ 47242 - 44032: 0x8F46,
+ 47243 - 44032: 0x8F47,
+ 47244 - 44032: 0x8F48,
+ 47245 - 44032: 0xB7D8,
+ 47246 - 44032: 0x8F49,
+ 47247 - 44032: 0x8F4A,
+ 47248 - 44032: 0x8F4B,
+ 47249 - 44032: 0x8F4C,
+ 47250 - 44032: 0x8F4D,
+ 47251 - 44032: 0x8F4E,
+ 47252 - 44032: 0x8F4F,
+ 47253 - 44032: 0x8F50,
+ 47254 - 44032: 0x8F51,
+ 47255 - 44032: 0x8F52,
+ 47256 - 44032: 0x8F53,
+ 47257 - 44032: 0x8F54,
+ 47258 - 44032: 0x8F55,
+ 47259 - 44032: 0x8F56,
+ 47260 - 44032: 0x8F57,
+ 47261 - 44032: 0x8F58,
+ 47262 - 44032: 0x8F59,
+ 47263 - 44032: 0x8F5A,
+ 47264 - 44032: 0x8F61,
+ 47265 - 44032: 0x8F62,
+ 47266 - 44032: 0x8F63,
+ 47267 - 44032: 0x8F64,
+ 47268 - 44032: 0x8F65,
+ 47269 - 44032: 0x8F66,
+ 47270 - 44032: 0x8F67,
+ 47271 - 44032: 0x8F68,
+ 47272 - 44032: 0xB7D9,
+ 47273 - 44032: 0x8F69,
+ 47274 - 44032: 0x8F6A,
+ 47275 - 44032: 0x8F6B,
+ 47276 - 44032: 0x8F6C,
+ 47277 - 44032: 0x8F6D,
+ 47278 - 44032: 0x8F6E,
+ 47279 - 44032: 0x8F6F,
+ 47280 - 44032: 0xB7DA,
+ 47281 - 44032: 0x8F70,
+ 47282 - 44032: 0x8F71,
+ 47283 - 44032: 0x8F72,
+ 47284 - 44032: 0xB7DB,
+ 47285 - 44032: 0x8F73,
+ 47286 - 44032: 0x8F74,
+ 47287 - 44032: 0x8F75,
+ 47288 - 44032: 0xB7DC,
+ 47289 - 44032: 0x8F76,
+ 47290 - 44032: 0x8F77,
+ 47291 - 44032: 0x8F78,
+ 47292 - 44032: 0x8F79,
+ 47293 - 44032: 0x8F7A,
+ 47294 - 44032: 0x8F81,
+ 47295 - 44032: 0x8F82,
+ 47296 - 44032: 0xB7DD,
+ 47297 - 44032: 0xB7DE,
+ 47298 - 44032: 0x8F83,
+ 47299 - 44032: 0xB7DF,
+ 47300 - 44032: 0x8F84,
+ 47301 - 44032: 0xB7E0,
+ 47302 - 44032: 0x8F85,
+ 47303 - 44032: 0x8F86,
+ 47304 - 44032: 0x8F87,
+ 47305 - 44032: 0x8F88,
+ 47306 - 44032: 0x8F89,
+ 47307 - 44032: 0x8F8A,
+ 47308 - 44032: 0xB7E1,
+ 47309 - 44032: 0x8F8B,
+ 47310 - 44032: 0x8F8C,
+ 47311 - 44032: 0x8F8D,
+ 47312 - 44032: 0xB7E2,
+ 47313 - 44032: 0x8F8E,
+ 47314 - 44032: 0x8F8F,
+ 47315 - 44032: 0x8F90,
+ 47316 - 44032: 0xB7E3,
+ 47317 - 44032: 0x8F91,
+ 47318 - 44032: 0x8F92,
+ 47319 - 44032: 0x8F93,
+ 47320 - 44032: 0x8F94,
+ 47321 - 44032: 0x8F95,
+ 47322 - 44032: 0x8F96,
+ 47323 - 44032: 0x8F97,
+ 47324 - 44032: 0x8F98,
+ 47325 - 44032: 0xB7E4,
+ 47326 - 44032: 0x8F99,
+ 47327 - 44032: 0xB7E5,
+ 47328 - 44032: 0x8F9A,
+ 47329 - 44032: 0xB7E6,
+ 47330 - 44032: 0x8F9B,
+ 47331 - 44032: 0x8F9C,
+ 47332 - 44032: 0x8F9D,
+ 47333 - 44032: 0x8F9E,
+ 47334 - 44032: 0x8F9F,
+ 47335 - 44032: 0x8FA0,
+ 47336 - 44032: 0xB7E7,
+ 47337 - 44032: 0xB7E8,
+ 47338 - 44032: 0x8FA1,
+ 47339 - 44032: 0x8FA2,
+ 47340 - 44032: 0xB7E9,
+ 47341 - 44032: 0x8FA3,
+ 47342 - 44032: 0x8FA4,
+ 47343 - 44032: 0x8FA5,
+ 47344 - 44032: 0xB7EA,
+ 47345 - 44032: 0x8FA6,
+ 47346 - 44032: 0x8FA7,
+ 47347 - 44032: 0x8FA8,
+ 47348 - 44032: 0x8FA9,
+ 47349 - 44032: 0x8FAA,
+ 47350 - 44032: 0x8FAB,
+ 47351 - 44032: 0x8FAC,
+ 47352 - 44032: 0xB7EB,
+ 47353 - 44032: 0xB7EC,
+ 47354 - 44032: 0x8FAD,
+ 47355 - 44032: 0xB7ED,
+ 47356 - 44032: 0x8FAE,
+ 47357 - 44032: 0xB7EE,
+ 47358 - 44032: 0x8FAF,
+ 47359 - 44032: 0x8FB0,
+ 47360 - 44032: 0x8FB1,
+ 47361 - 44032: 0x8FB2,
+ 47362 - 44032: 0x8FB3,
+ 47363 - 44032: 0x8FB4,
+ 47364 - 44032: 0xB7EF,
+ 47365 - 44032: 0x8FB5,
+ 47366 - 44032: 0x8FB6,
+ 47367 - 44032: 0x8FB7,
+ 47368 - 44032: 0x8FB8,
+ 47369 - 44032: 0x8FB9,
+ 47370 - 44032: 0x8FBA,
+ 47371 - 44032: 0x8FBB,
+ 47372 - 44032: 0x8FBC,
+ 47373 - 44032: 0x8FBD,
+ 47374 - 44032: 0x8FBE,
+ 47375 - 44032: 0x8FBF,
+ 47376 - 44032: 0x8FC0,
+ 47377 - 44032: 0x8FC1,
+ 47378 - 44032: 0x8FC2,
+ 47379 - 44032: 0x8FC3,
+ 47380 - 44032: 0x8FC4,
+ 47381 - 44032: 0x8FC5,
+ 47382 - 44032: 0x8FC6,
+ 47383 - 44032: 0x8FC7,
+ 47384 - 44032: 0xB7F0,
+ 47385 - 44032: 0x8FC8,
+ 47386 - 44032: 0x8FC9,
+ 47387 - 44032: 0x8FCA,
+ 47388 - 44032: 0x8FCB,
+ 47389 - 44032: 0x8FCC,
+ 47390 - 44032: 0x8FCD,
+ 47391 - 44032: 0x8FCE,
+ 47392 - 44032: 0xB7F1,
+ 47393 - 44032: 0x8FCF,
+ 47394 - 44032: 0x8FD0,
+ 47395 - 44032: 0x8FD1,
+ 47396 - 44032: 0x8FD2,
+ 47397 - 44032: 0x8FD3,
+ 47398 - 44032: 0x8FD4,
+ 47399 - 44032: 0x8FD5,
+ 47400 - 44032: 0x8FD6,
+ 47401 - 44032: 0x8FD7,
+ 47402 - 44032: 0x8FD8,
+ 47403 - 44032: 0x8FD9,
+ 47404 - 44032: 0x8FDA,
+ 47405 - 44032: 0x8FDB,
+ 47406 - 44032: 0x8FDC,
+ 47407 - 44032: 0x8FDD,
+ 47408 - 44032: 0x8FDE,
+ 47409 - 44032: 0x8FDF,
+ 47410 - 44032: 0x8FE0,
+ 47411 - 44032: 0x8FE1,
+ 47412 - 44032: 0x8FE2,
+ 47413 - 44032: 0x8FE3,
+ 47414 - 44032: 0x8FE4,
+ 47415 - 44032: 0x8FE5,
+ 47416 - 44032: 0x8FE6,
+ 47417 - 44032: 0x8FE7,
+ 47418 - 44032: 0x8FE8,
+ 47419 - 44032: 0x8FE9,
+ 47420 - 44032: 0xB7F2,
+ 47421 - 44032: 0xB7F3,
+ 47422 - 44032: 0x8FEA,
+ 47423 - 44032: 0x8FEB,
+ 47424 - 44032: 0xB7F4,
+ 47425 - 44032: 0x8FEC,
+ 47426 - 44032: 0x8FED,
+ 47427 - 44032: 0x8FEE,
+ 47428 - 44032: 0xB7F5,
+ 47429 - 44032: 0x8FEF,
+ 47430 - 44032: 0x8FF0,
+ 47431 - 44032: 0x8FF1,
+ 47432 - 44032: 0x8FF2,
+ 47433 - 44032: 0x8FF3,
+ 47434 - 44032: 0x8FF4,
+ 47435 - 44032: 0x8FF5,
+ 47436 - 44032: 0xB7F6,
+ 47437 - 44032: 0x8FF6,
+ 47438 - 44032: 0x8FF7,
+ 47439 - 44032: 0xB7F7,
+ 47440 - 44032: 0x8FF8,
+ 47441 - 44032: 0xB7F8,
+ 47442 - 44032: 0x8FF9,
+ 47443 - 44032: 0x8FFA,
+ 47444 - 44032: 0x8FFB,
+ 47445 - 44032: 0x8FFC,
+ 47446 - 44032: 0x8FFD,
+ 47447 - 44032: 0x8FFE,
+ 47448 - 44032: 0xB7F9,
+ 47449 - 44032: 0xB7FA,
+ 47450 - 44032: 0x9041,
+ 47451 - 44032: 0x9042,
+ 47452 - 44032: 0xB7FB,
+ 47453 - 44032: 0x9043,
+ 47454 - 44032: 0x9044,
+ 47455 - 44032: 0x9045,
+ 47456 - 44032: 0xB7FC,
+ 47457 - 44032: 0x9046,
+ 47458 - 44032: 0x9047,
+ 47459 - 44032: 0x9048,
+ 47460 - 44032: 0x9049,
+ 47461 - 44032: 0x904A,
+ 47462 - 44032: 0x904B,
+ 47463 - 44032: 0x904C,
+ 47464 - 44032: 0xB7FD,
+ 47465 - 44032: 0xB7FE,
+ 47466 - 44032: 0x904D,
+ 47467 - 44032: 0xB8A1,
+ 47468 - 44032: 0x904E,
+ 47469 - 44032: 0xB8A2,
+ 47470 - 44032: 0x904F,
+ 47471 - 44032: 0x9050,
+ 47472 - 44032: 0x9051,
+ 47473 - 44032: 0x9052,
+ 47474 - 44032: 0x9053,
+ 47475 - 44032: 0x9054,
+ 47476 - 44032: 0xB8A3,
+ 47477 - 44032: 0xB8A4,
+ 47478 - 44032: 0x9055,
+ 47479 - 44032: 0x9056,
+ 47480 - 44032: 0xB8A5,
+ 47481 - 44032: 0x9057,
+ 47482 - 44032: 0x9058,
+ 47483 - 44032: 0x9059,
+ 47484 - 44032: 0xB8A6,
+ 47485 - 44032: 0x905A,
+ 47486 - 44032: 0x9061,
+ 47487 - 44032: 0x9062,
+ 47488 - 44032: 0x9063,
+ 47489 - 44032: 0x9064,
+ 47490 - 44032: 0x9065,
+ 47491 - 44032: 0x9066,
+ 47492 - 44032: 0xB8A7,
+ 47493 - 44032: 0xB8A8,
+ 47494 - 44032: 0x9067,
+ 47495 - 44032: 0xB8A9,
+ 47496 - 44032: 0x9068,
+ 47497 - 44032: 0xB8AA,
+ 47498 - 44032: 0xB8AB,
+ 47499 - 44032: 0x9069,
+ 47500 - 44032: 0x906A,
+ 47501 - 44032: 0xB8AC,
+ 47502 - 44032: 0xB8AD,
+ 47503 - 44032: 0x906B,
+ 47504 - 44032: 0x906C,
+ 47505 - 44032: 0x906D,
+ 47506 - 44032: 0x906E,
+ 47507 - 44032: 0x906F,
+ 47508 - 44032: 0x9070,
+ 47509 - 44032: 0x9071,
+ 47510 - 44032: 0x9072,
+ 47511 - 44032: 0x9073,
+ 47512 - 44032: 0x9074,
+ 47513 - 44032: 0x9075,
+ 47514 - 44032: 0x9076,
+ 47515 - 44032: 0x9077,
+ 47516 - 44032: 0x9078,
+ 47517 - 44032: 0x9079,
+ 47518 - 44032: 0x907A,
+ 47519 - 44032: 0x9081,
+ 47520 - 44032: 0x9082,
+ 47521 - 44032: 0x9083,
+ 47522 - 44032: 0x9084,
+ 47523 - 44032: 0x9085,
+ 47524 - 44032: 0x9086,
+ 47525 - 44032: 0x9087,
+ 47526 - 44032: 0x9088,
+ 47527 - 44032: 0x9089,
+ 47528 - 44032: 0x908A,
+ 47529 - 44032: 0x908B,
+ 47530 - 44032: 0x908C,
+ 47531 - 44032: 0x908D,
+ 47532 - 44032: 0xB8AE,
+ 47533 - 44032: 0xB8AF,
+ 47534 - 44032: 0x908E,
+ 47535 - 44032: 0x908F,
+ 47536 - 44032: 0xB8B0,
+ 47537 - 44032: 0x9090,
+ 47538 - 44032: 0x9091,
+ 47539 - 44032: 0x9092,
+ 47540 - 44032: 0xB8B1,
+ 47541 - 44032: 0x9093,
+ 47542 - 44032: 0x9094,
+ 47543 - 44032: 0x9095,
+ 47544 - 44032: 0x9096,
+ 47545 - 44032: 0x9097,
+ 47546 - 44032: 0x9098,
+ 47547 - 44032: 0x9099,
+ 47548 - 44032: 0xB8B2,
+ 47549 - 44032: 0xB8B3,
+ 47550 - 44032: 0x909A,
+ 47551 - 44032: 0xB8B4,
+ 47552 - 44032: 0x909B,
+ 47553 - 44032: 0xB8B5,
+ 47554 - 44032: 0x909C,
+ 47555 - 44032: 0x909D,
+ 47556 - 44032: 0x909E,
+ 47557 - 44032: 0x909F,
+ 47558 - 44032: 0x90A0,
+ 47559 - 44032: 0x90A1,
+ 47560 - 44032: 0xB8B6,
+ 47561 - 44032: 0xB8B7,
+ 47562 - 44032: 0x90A2,
+ 47563 - 44032: 0x90A3,
+ 47564 - 44032: 0xB8B8,
+ 47565 - 44032: 0x90A4,
+ 47566 - 44032: 0xB8B9,
+ 47567 - 44032: 0xB8BA,
+ 47568 - 44032: 0xB8BB,
+ 47569 - 44032: 0xB8BC,
+ 47570 - 44032: 0xB8BD,
+ 47571 - 44032: 0x90A5,
+ 47572 - 44032: 0x90A6,
+ 47573 - 44032: 0x90A7,
+ 47574 - 44032: 0x90A8,
+ 47575 - 44032: 0x90A9,
+ 47576 - 44032: 0xB8BE,
+ 47577 - 44032: 0xB8BF,
+ 47578 - 44032: 0x90AA,
+ 47579 - 44032: 0xB8C0,
+ 47580 - 44032: 0x90AB,
+ 47581 - 44032: 0xB8C1,
+ 47582 - 44032: 0xB8C2,
+ 47583 - 44032: 0x90AC,
+ 47584 - 44032: 0x90AD,
+ 47585 - 44032: 0xB8C3,
+ 47586 - 44032: 0x90AE,
+ 47587 - 44032: 0xB8C4,
+ 47588 - 44032: 0xB8C5,
+ 47589 - 44032: 0xB8C6,
+ 47590 - 44032: 0x90AF,
+ 47591 - 44032: 0x90B0,
+ 47592 - 44032: 0xB8C7,
+ 47593 - 44032: 0x90B1,
+ 47594 - 44032: 0x90B2,
+ 47595 - 44032: 0x90B3,
+ 47596 - 44032: 0xB8C8,
+ 47597 - 44032: 0x90B4,
+ 47598 - 44032: 0x90B5,
+ 47599 - 44032: 0x90B6,
+ 47600 - 44032: 0x90B7,
+ 47601 - 44032: 0x90B8,
+ 47602 - 44032: 0x90B9,
+ 47603 - 44032: 0x90BA,
+ 47604 - 44032: 0xB8C9,
+ 47605 - 44032: 0xB8CA,
+ 47606 - 44032: 0x90BB,
+ 47607 - 44032: 0xB8CB,
+ 47608 - 44032: 0xB8CC,
+ 47609 - 44032: 0xB8CD,
+ 47610 - 44032: 0xB8CE,
+ 47611 - 44032: 0x90BC,
+ 47612 - 44032: 0x90BD,
+ 47613 - 44032: 0x90BE,
+ 47614 - 44032: 0x90BF,
+ 47615 - 44032: 0x90C0,
+ 47616 - 44032: 0xB8CF,
+ 47617 - 44032: 0xB8D0,
+ 47618 - 44032: 0x90C1,
+ 47619 - 44032: 0x90C2,
+ 47620 - 44032: 0x90C3,
+ 47621 - 44032: 0x90C4,
+ 47622 - 44032: 0x90C5,
+ 47623 - 44032: 0x90C6,
+ 47624 - 44032: 0xB8D1,
+ 47625 - 44032: 0x90C7,
+ 47626 - 44032: 0x90C8,
+ 47627 - 44032: 0x90C9,
+ 47628 - 44032: 0x90CA,
+ 47629 - 44032: 0x90CB,
+ 47630 - 44032: 0x90CC,
+ 47631 - 44032: 0x90CD,
+ 47632 - 44032: 0x90CE,
+ 47633 - 44032: 0x90CF,
+ 47634 - 44032: 0x90D0,
+ 47635 - 44032: 0x90D1,
+ 47636 - 44032: 0x90D2,
+ 47637 - 44032: 0xB8D2,
+ 47638 - 44032: 0x90D3,
+ 47639 - 44032: 0x90D4,
+ 47640 - 44032: 0x90D5,
+ 47641 - 44032: 0x90D6,
+ 47642 - 44032: 0x90D7,
+ 47643 - 44032: 0x90D8,
+ 47644 - 44032: 0x90D9,
+ 47645 - 44032: 0x90DA,
+ 47646 - 44032: 0x90DB,
+ 47647 - 44032: 0x90DC,
+ 47648 - 44032: 0x90DD,
+ 47649 - 44032: 0x90DE,
+ 47650 - 44032: 0x90DF,
+ 47651 - 44032: 0x90E0,
+ 47652 - 44032: 0x90E1,
+ 47653 - 44032: 0x90E2,
+ 47654 - 44032: 0x90E3,
+ 47655 - 44032: 0x90E4,
+ 47656 - 44032: 0x90E5,
+ 47657 - 44032: 0x90E6,
+ 47658 - 44032: 0x90E7,
+ 47659 - 44032: 0x90E8,
+ 47660 - 44032: 0x90E9,
+ 47661 - 44032: 0x90EA,
+ 47662 - 44032: 0x90EB,
+ 47663 - 44032: 0x90EC,
+ 47664 - 44032: 0x90ED,
+ 47665 - 44032: 0x90EE,
+ 47666 - 44032: 0x90EF,
+ 47667 - 44032: 0x90F0,
+ 47668 - 44032: 0x90F1,
+ 47669 - 44032: 0x90F2,
+ 47670 - 44032: 0x90F3,
+ 47671 - 44032: 0x90F4,
+ 47672 - 44032: 0xB8D3,
+ 47673 - 44032: 0xB8D4,
+ 47674 - 44032: 0x90F5,
+ 47675 - 44032: 0x90F6,
+ 47676 - 44032: 0xB8D5,
+ 47677 - 44032: 0x90F7,
+ 47678 - 44032: 0x90F8,
+ 47679 - 44032: 0x90F9,
+ 47680 - 44032: 0xB8D6,
+ 47681 - 44032: 0x90FA,
+ 47682 - 44032: 0xB8D7,
+ 47683 - 44032: 0x90FB,
+ 47684 - 44032: 0x90FC,
+ 47685 - 44032: 0x90FD,
+ 47686 - 44032: 0x90FE,
+ 47687 - 44032: 0x9141,
+ 47688 - 44032: 0xB8D8,
+ 47689 - 44032: 0xB8D9,
+ 47690 - 44032: 0x9142,
+ 47691 - 44032: 0xB8DA,
+ 47692 - 44032: 0x9143,
+ 47693 - 44032: 0xB8DB,
+ 47694 - 44032: 0xB8DC,
+ 47695 - 44032: 0x9144,
+ 47696 - 44032: 0x9145,
+ 47697 - 44032: 0x9146,
+ 47698 - 44032: 0x9147,
+ 47699 - 44032: 0xB8DD,
+ 47700 - 44032: 0xB8DE,
+ 47701 - 44032: 0xB8DF,
+ 47702 - 44032: 0x9148,
+ 47703 - 44032: 0x9149,
+ 47704 - 44032: 0xB8E0,
+ 47705 - 44032: 0x914A,
+ 47706 - 44032: 0x914B,
+ 47707 - 44032: 0x914C,
+ 47708 - 44032: 0xB8E1,
+ 47709 - 44032: 0x914D,
+ 47710 - 44032: 0x914E,
+ 47711 - 44032: 0x914F,
+ 47712 - 44032: 0x9150,
+ 47713 - 44032: 0x9151,
+ 47714 - 44032: 0x9152,
+ 47715 - 44032: 0x9153,
+ 47716 - 44032: 0xB8E2,
+ 47717 - 44032: 0xB8E3,
+ 47718 - 44032: 0x9154,
+ 47719 - 44032: 0xB8E4,
+ 47720 - 44032: 0xB8E5,
+ 47721 - 44032: 0xB8E6,
+ 47722 - 44032: 0x9155,
+ 47723 - 44032: 0x9156,
+ 47724 - 44032: 0x9157,
+ 47725 - 44032: 0x9158,
+ 47726 - 44032: 0x9159,
+ 47727 - 44032: 0x915A,
+ 47728 - 44032: 0xB8E7,
+ 47729 - 44032: 0xB8E8,
+ 47730 - 44032: 0x9161,
+ 47731 - 44032: 0x9162,
+ 47732 - 44032: 0xB8E9,
+ 47733 - 44032: 0x9163,
+ 47734 - 44032: 0x9164,
+ 47735 - 44032: 0x9165,
+ 47736 - 44032: 0xB8EA,
+ 47737 - 44032: 0x9166,
+ 47738 - 44032: 0x9167,
+ 47739 - 44032: 0x9168,
+ 47740 - 44032: 0x9169,
+ 47741 - 44032: 0x916A,
+ 47742 - 44032: 0x916B,
+ 47743 - 44032: 0x916C,
+ 47744 - 44032: 0x916D,
+ 47745 - 44032: 0x916E,
+ 47746 - 44032: 0x916F,
+ 47747 - 44032: 0xB8EB,
+ 47748 - 44032: 0xB8EC,
+ 47749 - 44032: 0xB8ED,
+ 47750 - 44032: 0x9170,
+ 47751 - 44032: 0xB8EE,
+ 47752 - 44032: 0x9171,
+ 47753 - 44032: 0x9172,
+ 47754 - 44032: 0x9173,
+ 47755 - 44032: 0x9174,
+ 47756 - 44032: 0xB8EF,
+ 47757 - 44032: 0x9175,
+ 47758 - 44032: 0x9176,
+ 47759 - 44032: 0x9177,
+ 47760 - 44032: 0x9178,
+ 47761 - 44032: 0x9179,
+ 47762 - 44032: 0x917A,
+ 47763 - 44032: 0x9181,
+ 47764 - 44032: 0x9182,
+ 47765 - 44032: 0x9183,
+ 47766 - 44032: 0x9184,
+ 47767 - 44032: 0x9185,
+ 47768 - 44032: 0x9186,
+ 47769 - 44032: 0x9187,
+ 47770 - 44032: 0x9188,
+ 47771 - 44032: 0x9189,
+ 47772 - 44032: 0x918A,
+ 47773 - 44032: 0x918B,
+ 47774 - 44032: 0x918C,
+ 47775 - 44032: 0x918D,
+ 47776 - 44032: 0x918E,
+ 47777 - 44032: 0x918F,
+ 47778 - 44032: 0x9190,
+ 47779 - 44032: 0x9191,
+ 47780 - 44032: 0x9192,
+ 47781 - 44032: 0x9193,
+ 47782 - 44032: 0x9194,
+ 47783 - 44032: 0x9195,
+ 47784 - 44032: 0xB8F0,
+ 47785 - 44032: 0xB8F1,
+ 47786 - 44032: 0x9196,
+ 47787 - 44032: 0xB8F2,
+ 47788 - 44032: 0xB8F3,
+ 47789 - 44032: 0x9197,
+ 47790 - 44032: 0x9198,
+ 47791 - 44032: 0x9199,
+ 47792 - 44032: 0xB8F4,
+ 47793 - 44032: 0x919A,
+ 47794 - 44032: 0xB8F5,
+ 47795 - 44032: 0x919B,
+ 47796 - 44032: 0x919C,
+ 47797 - 44032: 0x919D,
+ 47798 - 44032: 0x919E,
+ 47799 - 44032: 0x919F,
+ 47800 - 44032: 0xB8F6,
+ 47801 - 44032: 0xB8F7,
+ 47802 - 44032: 0x91A0,
+ 47803 - 44032: 0xB8F8,
+ 47804 - 44032: 0x91A1,
+ 47805 - 44032: 0xB8F9,
+ 47806 - 44032: 0x91A2,
+ 47807 - 44032: 0x91A3,
+ 47808 - 44032: 0x91A4,
+ 47809 - 44032: 0x91A5,
+ 47810 - 44032: 0x91A6,
+ 47811 - 44032: 0x91A7,
+ 47812 - 44032: 0xB8FA,
+ 47813 - 44032: 0x91A8,
+ 47814 - 44032: 0x91A9,
+ 47815 - 44032: 0x91AA,
+ 47816 - 44032: 0xB8FB,
+ 47817 - 44032: 0x91AB,
+ 47818 - 44032: 0x91AC,
+ 47819 - 44032: 0x91AD,
+ 47820 - 44032: 0x91AE,
+ 47821 - 44032: 0x91AF,
+ 47822 - 44032: 0x91B0,
+ 47823 - 44032: 0x91B1,
+ 47824 - 44032: 0x91B2,
+ 47825 - 44032: 0x91B3,
+ 47826 - 44032: 0x91B4,
+ 47827 - 44032: 0x91B5,
+ 47828 - 44032: 0x91B6,
+ 47829 - 44032: 0x91B7,
+ 47830 - 44032: 0x91B8,
+ 47831 - 44032: 0x91B9,
+ 47832 - 44032: 0xB8FC,
+ 47833 - 44032: 0xB8FD,
+ 47834 - 44032: 0x91BA,
+ 47835 - 44032: 0x91BB,
+ 47836 - 44032: 0x91BC,
+ 47837 - 44032: 0x91BD,
+ 47838 - 44032: 0x91BE,
+ 47839 - 44032: 0x91BF,
+ 47840 - 44032: 0x91C0,
+ 47841 - 44032: 0x91C1,
+ 47842 - 44032: 0x91C2,
+ 47843 - 44032: 0x91C3,
+ 47844 - 44032: 0x91C4,
+ 47845 - 44032: 0x91C5,
+ 47846 - 44032: 0x91C6,
+ 47847 - 44032: 0x91C7,
+ 47848 - 44032: 0x91C8,
+ 47849 - 44032: 0x91C9,
+ 47850 - 44032: 0x91CA,
+ 47851 - 44032: 0x91CB,
+ 47852 - 44032: 0x91CC,
+ 47853 - 44032: 0x91CD,
+ 47854 - 44032: 0x91CE,
+ 47855 - 44032: 0x91CF,
+ 47856 - 44032: 0x91D0,
+ 47857 - 44032: 0x91D1,
+ 47858 - 44032: 0x91D2,
+ 47859 - 44032: 0x91D3,
+ 47860 - 44032: 0x91D4,
+ 47861 - 44032: 0x91D5,
+ 47862 - 44032: 0x91D6,
+ 47863 - 44032: 0x91D7,
+ 47864 - 44032: 0x91D8,
+ 47865 - 44032: 0x91D9,
+ 47866 - 44032: 0x91DA,
+ 47867 - 44032: 0x91DB,
+ 47868 - 44032: 0xB8FE,
+ 47869 - 44032: 0x91DC,
+ 47870 - 44032: 0x91DD,
+ 47871 - 44032: 0x91DE,
+ 47872 - 44032: 0xB9A1,
+ 47873 - 44032: 0x91DF,
+ 47874 - 44032: 0x91E0,
+ 47875 - 44032: 0x91E1,
+ 47876 - 44032: 0xB9A2,
+ 47877 - 44032: 0x91E2,
+ 47878 - 44032: 0x91E3,
+ 47879 - 44032: 0x91E4,
+ 47880 - 44032: 0x91E5,
+ 47881 - 44032: 0x91E6,
+ 47882 - 44032: 0x91E7,
+ 47883 - 44032: 0x91E8,
+ 47884 - 44032: 0x91E9,
+ 47885 - 44032: 0xB9A3,
+ 47886 - 44032: 0x91EA,
+ 47887 - 44032: 0xB9A4,
+ 47888 - 44032: 0x91EB,
+ 47889 - 44032: 0xB9A5,
+ 47890 - 44032: 0x91EC,
+ 47891 - 44032: 0x91ED,
+ 47892 - 44032: 0x91EE,
+ 47893 - 44032: 0x91EF,
+ 47894 - 44032: 0x91F0,
+ 47895 - 44032: 0x91F1,
+ 47896 - 44032: 0xB9A6,
+ 47897 - 44032: 0x91F2,
+ 47898 - 44032: 0x91F3,
+ 47899 - 44032: 0x91F4,
+ 47900 - 44032: 0xB9A7,
+ 47901 - 44032: 0x91F5,
+ 47902 - 44032: 0x91F6,
+ 47903 - 44032: 0x91F7,
+ 47904 - 44032: 0xB9A8,
+ 47905 - 44032: 0x91F8,
+ 47906 - 44032: 0x91F9,
+ 47907 - 44032: 0x91FA,
+ 47908 - 44032: 0x91FB,
+ 47909 - 44032: 0x91FC,
+ 47910 - 44032: 0x91FD,
+ 47911 - 44032: 0x91FE,
+ 47912 - 44032: 0x9241,
+ 47913 - 44032: 0xB9A9,
+ 47914 - 44032: 0x9242,
+ 47915 - 44032: 0xB9AA,
+ 47916 - 44032: 0x9243,
+ 47917 - 44032: 0x9244,
+ 47918 - 44032: 0x9245,
+ 47919 - 44032: 0x9246,
+ 47920 - 44032: 0x9247,
+ 47921 - 44032: 0x9248,
+ 47922 - 44032: 0x9249,
+ 47923 - 44032: 0x924A,
+ 47924 - 44032: 0xB9AB,
+ 47925 - 44032: 0xB9AC,
+ 47926 - 44032: 0xB9AD,
+ 47927 - 44032: 0x924B,
+ 47928 - 44032: 0xB9AE,
+ 47929 - 44032: 0x924C,
+ 47930 - 44032: 0x924D,
+ 47931 - 44032: 0xB9AF,
+ 47932 - 44032: 0xB9B0,
+ 47933 - 44032: 0xB9B1,
+ 47934 - 44032: 0xB9B2,
+ 47935 - 44032: 0x924E,
+ 47936 - 44032: 0x924F,
+ 47937 - 44032: 0x9250,
+ 47938 - 44032: 0x9251,
+ 47939 - 44032: 0x9252,
+ 47940 - 44032: 0xB9B3,
+ 47941 - 44032: 0xB9B4,
+ 47942 - 44032: 0x9253,
+ 47943 - 44032: 0xB9B5,
+ 47944 - 44032: 0x9254,
+ 47945 - 44032: 0xB9B6,
+ 47946 - 44032: 0x9255,
+ 47947 - 44032: 0x9256,
+ 47948 - 44032: 0x9257,
+ 47949 - 44032: 0xB9B7,
+ 47950 - 44032: 0x9258,
+ 47951 - 44032: 0xB9B8,
+ 47952 - 44032: 0xB9B9,
+ 47953 - 44032: 0x9259,
+ 47954 - 44032: 0x925A,
+ 47955 - 44032: 0x9261,
+ 47956 - 44032: 0xB9BA,
+ 47957 - 44032: 0x9262,
+ 47958 - 44032: 0x9263,
+ 47959 - 44032: 0x9264,
+ 47960 - 44032: 0xB9BB,
+ 47961 - 44032: 0x9265,
+ 47962 - 44032: 0x9266,
+ 47963 - 44032: 0x9267,
+ 47964 - 44032: 0x9268,
+ 47965 - 44032: 0x9269,
+ 47966 - 44032: 0x926A,
+ 47967 - 44032: 0x926B,
+ 47968 - 44032: 0x926C,
+ 47969 - 44032: 0xB9BC,
+ 47970 - 44032: 0x926D,
+ 47971 - 44032: 0xB9BD,
+ 47972 - 44032: 0x926E,
+ 47973 - 44032: 0x926F,
+ 47974 - 44032: 0x9270,
+ 47975 - 44032: 0x9271,
+ 47976 - 44032: 0x9272,
+ 47977 - 44032: 0x9273,
+ 47978 - 44032: 0x9274,
+ 47979 - 44032: 0x9275,
+ 47980 - 44032: 0xB9BE,
+ 47981 - 44032: 0x9276,
+ 47982 - 44032: 0x9277,
+ 47983 - 44032: 0x9278,
+ 47984 - 44032: 0x9279,
+ 47985 - 44032: 0x927A,
+ 47986 - 44032: 0x9281,
+ 47987 - 44032: 0x9282,
+ 47988 - 44032: 0x9283,
+ 47989 - 44032: 0x9284,
+ 47990 - 44032: 0x9285,
+ 47991 - 44032: 0x9286,
+ 47992 - 44032: 0x9287,
+ 47993 - 44032: 0x9288,
+ 47994 - 44032: 0x9289,
+ 47995 - 44032: 0x928A,
+ 47996 - 44032: 0x928B,
+ 47997 - 44032: 0x928C,
+ 47998 - 44032: 0x928D,
+ 47999 - 44032: 0x928E,
+ 48000 - 44032: 0x928F,
+ 48001 - 44032: 0x9290,
+ 48002 - 44032: 0x9291,
+ 48003 - 44032: 0x9292,
+ 48004 - 44032: 0x9293,
+ 48005 - 44032: 0x9294,
+ 48006 - 44032: 0x9295,
+ 48007 - 44032: 0x9296,
+ 48008 - 44032: 0xB9BF,
+ 48009 - 44032: 0x9297,
+ 48010 - 44032: 0x9298,
+ 48011 - 44032: 0x9299,
+ 48012 - 44032: 0xB9C0,
+ 48013 - 44032: 0x929A,
+ 48014 - 44032: 0x929B,
+ 48015 - 44032: 0x929C,
+ 48016 - 44032: 0xB9C1,
+ 48017 - 44032: 0x929D,
+ 48018 - 44032: 0x929E,
+ 48019 - 44032: 0x929F,
+ 48020 - 44032: 0x92A0,
+ 48021 - 44032: 0x92A1,
+ 48022 - 44032: 0x92A2,
+ 48023 - 44032: 0x92A3,
+ 48024 - 44032: 0x92A4,
+ 48025 - 44032: 0x92A5,
+ 48026 - 44032: 0x92A6,
+ 48027 - 44032: 0x92A7,
+ 48028 - 44032: 0x92A8,
+ 48029 - 44032: 0x92A9,
+ 48030 - 44032: 0x92AA,
+ 48031 - 44032: 0x92AB,
+ 48032 - 44032: 0x92AC,
+ 48033 - 44032: 0x92AD,
+ 48034 - 44032: 0x92AE,
+ 48035 - 44032: 0x92AF,
+ 48036 - 44032: 0xB9C2,
+ 48037 - 44032: 0x92B0,
+ 48038 - 44032: 0x92B1,
+ 48039 - 44032: 0x92B2,
+ 48040 - 44032: 0xB9C3,
+ 48041 - 44032: 0x92B3,
+ 48042 - 44032: 0x92B4,
+ 48043 - 44032: 0x92B5,
+ 48044 - 44032: 0xB9C4,
+ 48045 - 44032: 0x92B6,
+ 48046 - 44032: 0x92B7,
+ 48047 - 44032: 0x92B8,
+ 48048 - 44032: 0x92B9,
+ 48049 - 44032: 0x92BA,
+ 48050 - 44032: 0x92BB,
+ 48051 - 44032: 0x92BC,
+ 48052 - 44032: 0xB9C5,
+ 48053 - 44032: 0x92BD,
+ 48054 - 44032: 0x92BE,
+ 48055 - 44032: 0xB9C6,
+ 48056 - 44032: 0x92BF,
+ 48057 - 44032: 0x92C0,
+ 48058 - 44032: 0x92C1,
+ 48059 - 44032: 0x92C2,
+ 48060 - 44032: 0x92C3,
+ 48061 - 44032: 0x92C4,
+ 48062 - 44032: 0x92C5,
+ 48063 - 44032: 0x92C6,
+ 48064 - 44032: 0xB9C7,
+ 48065 - 44032: 0x92C7,
+ 48066 - 44032: 0x92C8,
+ 48067 - 44032: 0x92C9,
+ 48068 - 44032: 0xB9C8,
+ 48069 - 44032: 0x92CA,
+ 48070 - 44032: 0x92CB,
+ 48071 - 44032: 0x92CC,
+ 48072 - 44032: 0xB9C9,
+ 48073 - 44032: 0x92CD,
+ 48074 - 44032: 0x92CE,
+ 48075 - 44032: 0x92CF,
+ 48076 - 44032: 0x92D0,
+ 48077 - 44032: 0x92D1,
+ 48078 - 44032: 0x92D2,
+ 48079 - 44032: 0x92D3,
+ 48080 - 44032: 0xB9CA,
+ 48081 - 44032: 0x92D4,
+ 48082 - 44032: 0x92D5,
+ 48083 - 44032: 0xB9CB,
+ 48084 - 44032: 0x92D6,
+ 48085 - 44032: 0x92D7,
+ 48086 - 44032: 0x92D8,
+ 48087 - 44032: 0x92D9,
+ 48088 - 44032: 0x92DA,
+ 48089 - 44032: 0x92DB,
+ 48090 - 44032: 0x92DC,
+ 48091 - 44032: 0x92DD,
+ 48092 - 44032: 0x92DE,
+ 48093 - 44032: 0x92DF,
+ 48094 - 44032: 0x92E0,
+ 48095 - 44032: 0x92E1,
+ 48096 - 44032: 0x92E2,
+ 48097 - 44032: 0x92E3,
+ 48098 - 44032: 0x92E4,
+ 48099 - 44032: 0x92E5,
+ 48100 - 44032: 0x92E6,
+ 48101 - 44032: 0x92E7,
+ 48102 - 44032: 0x92E8,
+ 48103 - 44032: 0x92E9,
+ 48104 - 44032: 0x92EA,
+ 48105 - 44032: 0x92EB,
+ 48106 - 44032: 0x92EC,
+ 48107 - 44032: 0x92ED,
+ 48108 - 44032: 0x92EE,
+ 48109 - 44032: 0x92EF,
+ 48110 - 44032: 0x92F0,
+ 48111 - 44032: 0x92F1,
+ 48112 - 44032: 0x92F2,
+ 48113 - 44032: 0x92F3,
+ 48114 - 44032: 0x92F4,
+ 48115 - 44032: 0x92F5,
+ 48116 - 44032: 0x92F6,
+ 48117 - 44032: 0x92F7,
+ 48118 - 44032: 0x92F8,
+ 48119 - 44032: 0x92F9,
+ 48120 - 44032: 0xB9CC,
+ 48121 - 44032: 0xB9CD,
+ 48122 - 44032: 0x92FA,
+ 48123 - 44032: 0x92FB,
+ 48124 - 44032: 0xB9CE,
+ 48125 - 44032: 0x92FC,
+ 48126 - 44032: 0x92FD,
+ 48127 - 44032: 0xB9CF,
+ 48128 - 44032: 0xB9D0,
+ 48129 - 44032: 0x92FE,
+ 48130 - 44032: 0xB9D1,
+ 48131 - 44032: 0x9341,
+ 48132 - 44032: 0x9342,
+ 48133 - 44032: 0x9343,
+ 48134 - 44032: 0x9344,
+ 48135 - 44032: 0x9345,
+ 48136 - 44032: 0xB9D2,
+ 48137 - 44032: 0xB9D3,
+ 48138 - 44032: 0x9346,
+ 48139 - 44032: 0xB9D4,
+ 48140 - 44032: 0xB9D5,
+ 48141 - 44032: 0xB9D6,
+ 48142 - 44032: 0x9347,
+ 48143 - 44032: 0xB9D7,
+ 48144 - 44032: 0x9348,
+ 48145 - 44032: 0xB9D8,
+ 48146 - 44032: 0x9349,
+ 48147 - 44032: 0x934A,
+ 48148 - 44032: 0xB9D9,
+ 48149 - 44032: 0xB9DA,
+ 48150 - 44032: 0xB9DB,
+ 48151 - 44032: 0xB9DC,
+ 48152 - 44032: 0xB9DD,
+ 48153 - 44032: 0x934B,
+ 48154 - 44032: 0x934C,
+ 48155 - 44032: 0xB9DE,
+ 48156 - 44032: 0xB9DF,
+ 48157 - 44032: 0xB9E0,
+ 48158 - 44032: 0xB9E1,
+ 48159 - 44032: 0xB9E2,
+ 48160 - 44032: 0x934D,
+ 48161 - 44032: 0x934E,
+ 48162 - 44032: 0x934F,
+ 48163 - 44032: 0x9350,
+ 48164 - 44032: 0xB9E3,
+ 48165 - 44032: 0xB9E4,
+ 48166 - 44032: 0x9351,
+ 48167 - 44032: 0xB9E5,
+ 48168 - 44032: 0x9352,
+ 48169 - 44032: 0xB9E6,
+ 48170 - 44032: 0x9353,
+ 48171 - 44032: 0x9354,
+ 48172 - 44032: 0x9355,
+ 48173 - 44032: 0xB9E7,
+ 48174 - 44032: 0x9356,
+ 48175 - 44032: 0x9357,
+ 48176 - 44032: 0xB9E8,
+ 48177 - 44032: 0xB9E9,
+ 48178 - 44032: 0x9358,
+ 48179 - 44032: 0x9359,
+ 48180 - 44032: 0xB9EA,
+ 48181 - 44032: 0x935A,
+ 48182 - 44032: 0x9361,
+ 48183 - 44032: 0x9362,
+ 48184 - 44032: 0xB9EB,
+ 48185 - 44032: 0x9363,
+ 48186 - 44032: 0x9364,
+ 48187 - 44032: 0x9365,
+ 48188 - 44032: 0x9366,
+ 48189 - 44032: 0x9367,
+ 48190 - 44032: 0x9368,
+ 48191 - 44032: 0x9369,
+ 48192 - 44032: 0xB9EC,
+ 48193 - 44032: 0xB9ED,
+ 48194 - 44032: 0x936A,
+ 48195 - 44032: 0xB9EE,
+ 48196 - 44032: 0xB9EF,
+ 48197 - 44032: 0xB9F0,
+ 48198 - 44032: 0x936B,
+ 48199 - 44032: 0x936C,
+ 48200 - 44032: 0x936D,
+ 48201 - 44032: 0xB9F1,
+ 48202 - 44032: 0x936E,
+ 48203 - 44032: 0x936F,
+ 48204 - 44032: 0xB9F2,
+ 48205 - 44032: 0xB9F3,
+ 48206 - 44032: 0x9370,
+ 48207 - 44032: 0x9371,
+ 48208 - 44032: 0xB9F4,
+ 48209 - 44032: 0x9372,
+ 48210 - 44032: 0x9373,
+ 48211 - 44032: 0x9374,
+ 48212 - 44032: 0x9375,
+ 48213 - 44032: 0x9376,
+ 48214 - 44032: 0x9377,
+ 48215 - 44032: 0x9378,
+ 48216 - 44032: 0x9379,
+ 48217 - 44032: 0x937A,
+ 48218 - 44032: 0x9381,
+ 48219 - 44032: 0x9382,
+ 48220 - 44032: 0x9383,
+ 48221 - 44032: 0xB9F5,
+ 48222 - 44032: 0x9384,
+ 48223 - 44032: 0x9385,
+ 48224 - 44032: 0x9386,
+ 48225 - 44032: 0x9387,
+ 48226 - 44032: 0x9388,
+ 48227 - 44032: 0x9389,
+ 48228 - 44032: 0x938A,
+ 48229 - 44032: 0x938B,
+ 48230 - 44032: 0x938C,
+ 48231 - 44032: 0x938D,
+ 48232 - 44032: 0x938E,
+ 48233 - 44032: 0x938F,
+ 48234 - 44032: 0x9390,
+ 48235 - 44032: 0x9391,
+ 48236 - 44032: 0x9392,
+ 48237 - 44032: 0x9393,
+ 48238 - 44032: 0x9394,
+ 48239 - 44032: 0x9395,
+ 48240 - 44032: 0x9396,
+ 48241 - 44032: 0x9397,
+ 48242 - 44032: 0x9398,
+ 48243 - 44032: 0x9399,
+ 48244 - 44032: 0x939A,
+ 48245 - 44032: 0x939B,
+ 48246 - 44032: 0x939C,
+ 48247 - 44032: 0x939D,
+ 48248 - 44032: 0x939E,
+ 48249 - 44032: 0x939F,
+ 48250 - 44032: 0x93A0,
+ 48251 - 44032: 0x93A1,
+ 48252 - 44032: 0x93A2,
+ 48253 - 44032: 0x93A3,
+ 48254 - 44032: 0x93A4,
+ 48255 - 44032: 0x93A5,
+ 48256 - 44032: 0x93A6,
+ 48257 - 44032: 0x93A7,
+ 48258 - 44032: 0x93A8,
+ 48259 - 44032: 0x93A9,
+ 48260 - 44032: 0xB9F6,
+ 48261 - 44032: 0xB9F7,
+ 48262 - 44032: 0x93AA,
+ 48263 - 44032: 0x93AB,
+ 48264 - 44032: 0xB9F8,
+ 48265 - 44032: 0x93AC,
+ 48266 - 44032: 0x93AD,
+ 48267 - 44032: 0xB9F9,
+ 48268 - 44032: 0xB9FA,
+ 48269 - 44032: 0x93AE,
+ 48270 - 44032: 0xB9FB,
+ 48271 - 44032: 0x93AF,
+ 48272 - 44032: 0x93B0,
+ 48273 - 44032: 0x93B1,
+ 48274 - 44032: 0x93B2,
+ 48275 - 44032: 0x93B3,
+ 48276 - 44032: 0xB9FC,
+ 48277 - 44032: 0xB9FD,
+ 48278 - 44032: 0x93B4,
+ 48279 - 44032: 0xB9FE,
+ 48280 - 44032: 0x93B5,
+ 48281 - 44032: 0xBAA1,
+ 48282 - 44032: 0xBAA2,
+ 48283 - 44032: 0x93B6,
+ 48284 - 44032: 0x93B7,
+ 48285 - 44032: 0x93B8,
+ 48286 - 44032: 0x93B9,
+ 48287 - 44032: 0x93BA,
+ 48288 - 44032: 0xBAA3,
+ 48289 - 44032: 0xBAA4,
+ 48290 - 44032: 0x93BB,
+ 48291 - 44032: 0x93BC,
+ 48292 - 44032: 0xBAA5,
+ 48293 - 44032: 0x93BD,
+ 48294 - 44032: 0x93BE,
+ 48295 - 44032: 0xBAA6,
+ 48296 - 44032: 0xBAA7,
+ 48297 - 44032: 0x93BF,
+ 48298 - 44032: 0x93C0,
+ 48299 - 44032: 0x93C1,
+ 48300 - 44032: 0x93C2,
+ 48301 - 44032: 0x93C3,
+ 48302 - 44032: 0x93C4,
+ 48303 - 44032: 0x93C5,
+ 48304 - 44032: 0xBAA8,
+ 48305 - 44032: 0xBAA9,
+ 48306 - 44032: 0x93C6,
+ 48307 - 44032: 0xBAAA,
+ 48308 - 44032: 0xBAAB,
+ 48309 - 44032: 0xBAAC,
+ 48310 - 44032: 0x93C7,
+ 48311 - 44032: 0x93C8,
+ 48312 - 44032: 0x93C9,
+ 48313 - 44032: 0x93CA,
+ 48314 - 44032: 0x93CB,
+ 48315 - 44032: 0x93CC,
+ 48316 - 44032: 0xBAAD,
+ 48317 - 44032: 0xBAAE,
+ 48318 - 44032: 0x93CD,
+ 48319 - 44032: 0x93CE,
+ 48320 - 44032: 0xBAAF,
+ 48321 - 44032: 0x93CF,
+ 48322 - 44032: 0x93D0,
+ 48323 - 44032: 0x93D1,
+ 48324 - 44032: 0xBAB0,
+ 48325 - 44032: 0x93D2,
+ 48326 - 44032: 0x93D3,
+ 48327 - 44032: 0x93D4,
+ 48328 - 44032: 0x93D5,
+ 48329 - 44032: 0x93D6,
+ 48330 - 44032: 0x93D7,
+ 48331 - 44032: 0x93D8,
+ 48332 - 44032: 0x93D9,
+ 48333 - 44032: 0xBAB1,
+ 48334 - 44032: 0x93DA,
+ 48335 - 44032: 0xBAB2,
+ 48336 - 44032: 0xBAB3,
+ 48337 - 44032: 0xBAB4,
+ 48338 - 44032: 0x93DB,
+ 48339 - 44032: 0x93DC,
+ 48340 - 44032: 0x93DD,
+ 48341 - 44032: 0xBAB5,
+ 48342 - 44032: 0x93DE,
+ 48343 - 44032: 0x93DF,
+ 48344 - 44032: 0xBAB6,
+ 48345 - 44032: 0x93E0,
+ 48346 - 44032: 0x93E1,
+ 48347 - 44032: 0x93E2,
+ 48348 - 44032: 0xBAB7,
+ 48349 - 44032: 0x93E3,
+ 48350 - 44032: 0x93E4,
+ 48351 - 44032: 0x93E5,
+ 48352 - 44032: 0x93E6,
+ 48353 - 44032: 0x93E7,
+ 48354 - 44032: 0x93E8,
+ 48355 - 44032: 0x93E9,
+ 48356 - 44032: 0x93EA,
+ 48357 - 44032: 0x93EB,
+ 48358 - 44032: 0x93EC,
+ 48359 - 44032: 0x93ED,
+ 48360 - 44032: 0x93EE,
+ 48361 - 44032: 0x93EF,
+ 48362 - 44032: 0x93F0,
+ 48363 - 44032: 0x93F1,
+ 48364 - 44032: 0x93F2,
+ 48365 - 44032: 0x93F3,
+ 48366 - 44032: 0x93F4,
+ 48367 - 44032: 0x93F5,
+ 48368 - 44032: 0x93F6,
+ 48369 - 44032: 0x93F7,
+ 48370 - 44032: 0x93F8,
+ 48371 - 44032: 0x93F9,
+ 48372 - 44032: 0xBAB8,
+ 48373 - 44032: 0xBAB9,
+ 48374 - 44032: 0xBABA,
+ 48375 - 44032: 0x93FA,
+ 48376 - 44032: 0xBABB,
+ 48377 - 44032: 0x93FB,
+ 48378 - 44032: 0x93FC,
+ 48379 - 44032: 0x93FD,
+ 48380 - 44032: 0xBABC,
+ 48381 - 44032: 0x93FE,
+ 48382 - 44032: 0x9441,
+ 48383 - 44032: 0x9442,
+ 48384 - 44032: 0x9443,
+ 48385 - 44032: 0x9444,
+ 48386 - 44032: 0x9445,
+ 48387 - 44032: 0x9446,
+ 48388 - 44032: 0xBABD,
+ 48389 - 44032: 0xBABE,
+ 48390 - 44032: 0x9447,
+ 48391 - 44032: 0xBABF,
+ 48392 - 44032: 0x9448,
+ 48393 - 44032: 0xBAC0,
+ 48394 - 44032: 0x9449,
+ 48395 - 44032: 0x944A,
+ 48396 - 44032: 0x944B,
+ 48397 - 44032: 0x944C,
+ 48398 - 44032: 0x944D,
+ 48399 - 44032: 0x944E,
+ 48400 - 44032: 0xBAC1,
+ 48401 - 44032: 0x944F,
+ 48402 - 44032: 0x9450,
+ 48403 - 44032: 0x9451,
+ 48404 - 44032: 0xBAC2,
+ 48405 - 44032: 0x9452,
+ 48406 - 44032: 0x9453,
+ 48407 - 44032: 0x9454,
+ 48408 - 44032: 0x9455,
+ 48409 - 44032: 0x9456,
+ 48410 - 44032: 0x9457,
+ 48411 - 44032: 0x9458,
+ 48412 - 44032: 0x9459,
+ 48413 - 44032: 0x945A,
+ 48414 - 44032: 0x9461,
+ 48415 - 44032: 0x9462,
+ 48416 - 44032: 0x9463,
+ 48417 - 44032: 0x9464,
+ 48418 - 44032: 0x9465,
+ 48419 - 44032: 0x9466,
+ 48420 - 44032: 0xBAC3,
+ 48421 - 44032: 0x9467,
+ 48422 - 44032: 0x9468,
+ 48423 - 44032: 0x9469,
+ 48424 - 44032: 0x946A,
+ 48425 - 44032: 0x946B,
+ 48426 - 44032: 0x946C,
+ 48427 - 44032: 0x946D,
+ 48428 - 44032: 0xBAC4,
+ 48429 - 44032: 0x946E,
+ 48430 - 44032: 0x946F,
+ 48431 - 44032: 0x9470,
+ 48432 - 44032: 0x9471,
+ 48433 - 44032: 0x9472,
+ 48434 - 44032: 0x9473,
+ 48435 - 44032: 0x9474,
+ 48436 - 44032: 0x9475,
+ 48437 - 44032: 0x9476,
+ 48438 - 44032: 0x9477,
+ 48439 - 44032: 0x9478,
+ 48440 - 44032: 0x9479,
+ 48441 - 44032: 0x947A,
+ 48442 - 44032: 0x9481,
+ 48443 - 44032: 0x9482,
+ 48444 - 44032: 0x9483,
+ 48445 - 44032: 0x9484,
+ 48446 - 44032: 0x9485,
+ 48447 - 44032: 0x9486,
+ 48448 - 44032: 0xBAC5,
+ 48449 - 44032: 0x9487,
+ 48450 - 44032: 0x9488,
+ 48451 - 44032: 0x9489,
+ 48452 - 44032: 0x948A,
+ 48453 - 44032: 0x948B,
+ 48454 - 44032: 0x948C,
+ 48455 - 44032: 0x948D,
+ 48456 - 44032: 0xBAC6,
+ 48457 - 44032: 0xBAC7,
+ 48458 - 44032: 0x948E,
+ 48459 - 44032: 0x948F,
+ 48460 - 44032: 0xBAC8,
+ 48461 - 44032: 0x9490,
+ 48462 - 44032: 0x9491,
+ 48463 - 44032: 0x9492,
+ 48464 - 44032: 0xBAC9,
+ 48465 - 44032: 0x9493,
+ 48466 - 44032: 0x9494,
+ 48467 - 44032: 0x9495,
+ 48468 - 44032: 0x9496,
+ 48469 - 44032: 0x9497,
+ 48470 - 44032: 0x9498,
+ 48471 - 44032: 0x9499,
+ 48472 - 44032: 0xBACA,
+ 48473 - 44032: 0xBACB,
+ 48474 - 44032: 0x949A,
+ 48475 - 44032: 0x949B,
+ 48476 - 44032: 0x949C,
+ 48477 - 44032: 0x949D,
+ 48478 - 44032: 0x949E,
+ 48479 - 44032: 0x949F,
+ 48480 - 44032: 0x94A0,
+ 48481 - 44032: 0x94A1,
+ 48482 - 44032: 0x94A2,
+ 48483 - 44032: 0x94A3,
+ 48484 - 44032: 0xBACC,
+ 48485 - 44032: 0x94A4,
+ 48486 - 44032: 0x94A5,
+ 48487 - 44032: 0x94A6,
+ 48488 - 44032: 0xBACD,
+ 48489 - 44032: 0x94A7,
+ 48490 - 44032: 0x94A8,
+ 48491 - 44032: 0x94A9,
+ 48492 - 44032: 0x94AA,
+ 48493 - 44032: 0x94AB,
+ 48494 - 44032: 0x94AC,
+ 48495 - 44032: 0x94AD,
+ 48496 - 44032: 0x94AE,
+ 48497 - 44032: 0x94AF,
+ 48498 - 44032: 0x94B0,
+ 48499 - 44032: 0x94B1,
+ 48500 - 44032: 0x94B2,
+ 48501 - 44032: 0x94B3,
+ 48502 - 44032: 0x94B4,
+ 48503 - 44032: 0x94B5,
+ 48504 - 44032: 0x94B6,
+ 48505 - 44032: 0x94B7,
+ 48506 - 44032: 0x94B8,
+ 48507 - 44032: 0x94B9,
+ 48508 - 44032: 0x94BA,
+ 48509 - 44032: 0x94BB,
+ 48510 - 44032: 0x94BC,
+ 48511 - 44032: 0x94BD,
+ 48512 - 44032: 0xBACE,
+ 48513 - 44032: 0xBACF,
+ 48514 - 44032: 0x94BE,
+ 48515 - 44032: 0x94BF,
+ 48516 - 44032: 0xBAD0,
+ 48517 - 44032: 0x94C0,
+ 48518 - 44032: 0x94C1,
+ 48519 - 44032: 0xBAD1,
+ 48520 - 44032: 0xBAD2,
+ 48521 - 44032: 0xBAD3,
+ 48522 - 44032: 0xBAD4,
+ 48523 - 44032: 0x94C2,
+ 48524 - 44032: 0x94C3,
+ 48525 - 44032: 0x94C4,
+ 48526 - 44032: 0x94C5,
+ 48527 - 44032: 0x94C6,
+ 48528 - 44032: 0xBAD5,
+ 48529 - 44032: 0xBAD6,
+ 48530 - 44032: 0x94C7,
+ 48531 - 44032: 0xBAD7,
+ 48532 - 44032: 0x94C8,
+ 48533 - 44032: 0xBAD8,
+ 48534 - 44032: 0x94C9,
+ 48535 - 44032: 0x94CA,
+ 48536 - 44032: 0x94CB,
+ 48537 - 44032: 0xBAD9,
+ 48538 - 44032: 0xBADA,
+ 48539 - 44032: 0x94CC,
+ 48540 - 44032: 0xBADB,
+ 48541 - 44032: 0x94CD,
+ 48542 - 44032: 0x94CE,
+ 48543 - 44032: 0x94CF,
+ 48544 - 44032: 0x94D0,
+ 48545 - 44032: 0x94D1,
+ 48546 - 44032: 0x94D2,
+ 48547 - 44032: 0x94D3,
+ 48548 - 44032: 0xBADC,
+ 48549 - 44032: 0x94D4,
+ 48550 - 44032: 0x94D5,
+ 48551 - 44032: 0x94D6,
+ 48552 - 44032: 0x94D7,
+ 48553 - 44032: 0x94D8,
+ 48554 - 44032: 0x94D9,
+ 48555 - 44032: 0x94DA,
+ 48556 - 44032: 0x94DB,
+ 48557 - 44032: 0x94DC,
+ 48558 - 44032: 0x94DD,
+ 48559 - 44032: 0x94DE,
+ 48560 - 44032: 0xBADD,
+ 48561 - 44032: 0x94DF,
+ 48562 - 44032: 0x94E0,
+ 48563 - 44032: 0x94E1,
+ 48564 - 44032: 0x94E2,
+ 48565 - 44032: 0x94E3,
+ 48566 - 44032: 0x94E4,
+ 48567 - 44032: 0x94E5,
+ 48568 - 44032: 0xBADE,
+ 48569 - 44032: 0x94E6,
+ 48570 - 44032: 0x94E7,
+ 48571 - 44032: 0x94E8,
+ 48572 - 44032: 0x94E9,
+ 48573 - 44032: 0x94EA,
+ 48574 - 44032: 0x94EB,
+ 48575 - 44032: 0x94EC,
+ 48576 - 44032: 0x94ED,
+ 48577 - 44032: 0x94EE,
+ 48578 - 44032: 0x94EF,
+ 48579 - 44032: 0x94F0,
+ 48580 - 44032: 0x94F1,
+ 48581 - 44032: 0x94F2,
+ 48582 - 44032: 0x94F3,
+ 48583 - 44032: 0x94F4,
+ 48584 - 44032: 0x94F5,
+ 48585 - 44032: 0x94F6,
+ 48586 - 44032: 0x94F7,
+ 48587 - 44032: 0x94F8,
+ 48588 - 44032: 0x94F9,
+ 48589 - 44032: 0x94FA,
+ 48590 - 44032: 0x94FB,
+ 48591 - 44032: 0x94FC,
+ 48592 - 44032: 0x94FD,
+ 48593 - 44032: 0x94FE,
+ 48594 - 44032: 0x9541,
+ 48595 - 44032: 0x9542,
+ 48596 - 44032: 0xBADF,
+ 48597 - 44032: 0xBAE0,
+ 48598 - 44032: 0x9543,
+ 48599 - 44032: 0x9544,
+ 48600 - 44032: 0xBAE1,
+ 48601 - 44032: 0x9545,
+ 48602 - 44032: 0x9546,
+ 48603 - 44032: 0x9547,
+ 48604 - 44032: 0xBAE2,
+ 48605 - 44032: 0x9548,
+ 48606 - 44032: 0x9549,
+ 48607 - 44032: 0x954A,
+ 48608 - 44032: 0x954B,
+ 48609 - 44032: 0x954C,
+ 48610 - 44032: 0x954D,
+ 48611 - 44032: 0x954E,
+ 48612 - 44032: 0x954F,
+ 48613 - 44032: 0x9550,
+ 48614 - 44032: 0x9551,
+ 48615 - 44032: 0x9552,
+ 48616 - 44032: 0x9553,
+ 48617 - 44032: 0xBAE3,
+ 48618 - 44032: 0x9554,
+ 48619 - 44032: 0x9555,
+ 48620 - 44032: 0x9556,
+ 48621 - 44032: 0x9557,
+ 48622 - 44032: 0x9558,
+ 48623 - 44032: 0x9559,
+ 48624 - 44032: 0xBAE4,
+ 48625 - 44032: 0x955A,
+ 48626 - 44032: 0x9561,
+ 48627 - 44032: 0x9562,
+ 48628 - 44032: 0xBAE5,
+ 48629 - 44032: 0x9563,
+ 48630 - 44032: 0x9564,
+ 48631 - 44032: 0x9565,
+ 48632 - 44032: 0xBAE6,
+ 48633 - 44032: 0x9566,
+ 48634 - 44032: 0x9567,
+ 48635 - 44032: 0x9568,
+ 48636 - 44032: 0x9569,
+ 48637 - 44032: 0x956A,
+ 48638 - 44032: 0x956B,
+ 48639 - 44032: 0x956C,
+ 48640 - 44032: 0xBAE7,
+ 48641 - 44032: 0x956D,
+ 48642 - 44032: 0x956E,
+ 48643 - 44032: 0xBAE8,
+ 48644 - 44032: 0x956F,
+ 48645 - 44032: 0xBAE9,
+ 48646 - 44032: 0x9570,
+ 48647 - 44032: 0x9571,
+ 48648 - 44032: 0x9572,
+ 48649 - 44032: 0x9573,
+ 48650 - 44032: 0x9574,
+ 48651 - 44032: 0x9575,
+ 48652 - 44032: 0xBAEA,
+ 48653 - 44032: 0xBAEB,
+ 48654 - 44032: 0x9576,
+ 48655 - 44032: 0x9577,
+ 48656 - 44032: 0xBAEC,
+ 48657 - 44032: 0x9578,
+ 48658 - 44032: 0x9579,
+ 48659 - 44032: 0x957A,
+ 48660 - 44032: 0xBAED,
+ 48661 - 44032: 0x9581,
+ 48662 - 44032: 0x9582,
+ 48663 - 44032: 0x9583,
+ 48664 - 44032: 0x9584,
+ 48665 - 44032: 0x9585,
+ 48666 - 44032: 0x9586,
+ 48667 - 44032: 0x9587,
+ 48668 - 44032: 0xBAEE,
+ 48669 - 44032: 0xBAEF,
+ 48670 - 44032: 0x9588,
+ 48671 - 44032: 0xBAF0,
+ 48672 - 44032: 0x9589,
+ 48673 - 44032: 0x958A,
+ 48674 - 44032: 0x958B,
+ 48675 - 44032: 0x958C,
+ 48676 - 44032: 0x958D,
+ 48677 - 44032: 0x958E,
+ 48678 - 44032: 0x958F,
+ 48679 - 44032: 0x9590,
+ 48680 - 44032: 0x9591,
+ 48681 - 44032: 0x9592,
+ 48682 - 44032: 0x9593,
+ 48683 - 44032: 0x9594,
+ 48684 - 44032: 0x9595,
+ 48685 - 44032: 0x9596,
+ 48686 - 44032: 0x9597,
+ 48687 - 44032: 0x9598,
+ 48688 - 44032: 0x9599,
+ 48689 - 44032: 0x959A,
+ 48690 - 44032: 0x959B,
+ 48691 - 44032: 0x959C,
+ 48692 - 44032: 0x959D,
+ 48693 - 44032: 0x959E,
+ 48694 - 44032: 0x959F,
+ 48695 - 44032: 0x95A0,
+ 48696 - 44032: 0x95A1,
+ 48697 - 44032: 0x95A2,
+ 48698 - 44032: 0x95A3,
+ 48699 - 44032: 0x95A4,
+ 48700 - 44032: 0x95A5,
+ 48701 - 44032: 0x95A6,
+ 48702 - 44032: 0x95A7,
+ 48703 - 44032: 0x95A8,
+ 48704 - 44032: 0x95A9,
+ 48705 - 44032: 0x95AA,
+ 48706 - 44032: 0x95AB,
+ 48707 - 44032: 0x95AC,
+ 48708 - 44032: 0xBAF1,
+ 48709 - 44032: 0xBAF2,
+ 48710 - 44032: 0x95AD,
+ 48711 - 44032: 0x95AE,
+ 48712 - 44032: 0xBAF3,
+ 48713 - 44032: 0x95AF,
+ 48714 - 44032: 0x95B0,
+ 48715 - 44032: 0x95B1,
+ 48716 - 44032: 0xBAF4,
+ 48717 - 44032: 0x95B2,
+ 48718 - 44032: 0xBAF5,
+ 48719 - 44032: 0x95B3,
+ 48720 - 44032: 0x95B4,
+ 48721 - 44032: 0x95B5,
+ 48722 - 44032: 0x95B6,
+ 48723 - 44032: 0x95B7,
+ 48724 - 44032: 0xBAF6,
+ 48725 - 44032: 0xBAF7,
+ 48726 - 44032: 0x95B8,
+ 48727 - 44032: 0xBAF8,
+ 48728 - 44032: 0x95B9,
+ 48729 - 44032: 0xBAF9,
+ 48730 - 44032: 0xBAFA,
+ 48731 - 44032: 0xBAFB,
+ 48732 - 44032: 0x95BA,
+ 48733 - 44032: 0x95BB,
+ 48734 - 44032: 0x95BC,
+ 48735 - 44032: 0x95BD,
+ 48736 - 44032: 0xBAFC,
+ 48737 - 44032: 0xBAFD,
+ 48738 - 44032: 0x95BE,
+ 48739 - 44032: 0x95BF,
+ 48740 - 44032: 0xBAFE,
+ 48741 - 44032: 0x95C0,
+ 48742 - 44032: 0x95C1,
+ 48743 - 44032: 0x95C2,
+ 48744 - 44032: 0xBBA1,
+ 48745 - 44032: 0x95C3,
+ 48746 - 44032: 0xBBA2,
+ 48747 - 44032: 0x95C4,
+ 48748 - 44032: 0x95C5,
+ 48749 - 44032: 0x95C6,
+ 48750 - 44032: 0x95C7,
+ 48751 - 44032: 0x95C8,
+ 48752 - 44032: 0xBBA3,
+ 48753 - 44032: 0xBBA4,
+ 48754 - 44032: 0x95C9,
+ 48755 - 44032: 0xBBA5,
+ 48756 - 44032: 0xBBA6,
+ 48757 - 44032: 0xBBA7,
+ 48758 - 44032: 0x95CA,
+ 48759 - 44032: 0x95CB,
+ 48760 - 44032: 0x95CC,
+ 48761 - 44032: 0x95CD,
+ 48762 - 44032: 0x95CE,
+ 48763 - 44032: 0xBBA8,
+ 48764 - 44032: 0xBBA9,
+ 48765 - 44032: 0xBBAA,
+ 48766 - 44032: 0x95CF,
+ 48767 - 44032: 0x95D0,
+ 48768 - 44032: 0xBBAB,
+ 48769 - 44032: 0x95D1,
+ 48770 - 44032: 0x95D2,
+ 48771 - 44032: 0x95D3,
+ 48772 - 44032: 0xBBAC,
+ 48773 - 44032: 0x95D4,
+ 48774 - 44032: 0x95D5,
+ 48775 - 44032: 0x95D6,
+ 48776 - 44032: 0x95D7,
+ 48777 - 44032: 0x95D8,
+ 48778 - 44032: 0x95D9,
+ 48779 - 44032: 0x95DA,
+ 48780 - 44032: 0xBBAD,
+ 48781 - 44032: 0xBBAE,
+ 48782 - 44032: 0x95DB,
+ 48783 - 44032: 0xBBAF,
+ 48784 - 44032: 0xBBB0,
+ 48785 - 44032: 0xBBB1,
+ 48786 - 44032: 0x95DC,
+ 48787 - 44032: 0x95DD,
+ 48788 - 44032: 0x95DE,
+ 48789 - 44032: 0x95DF,
+ 48790 - 44032: 0x95E0,
+ 48791 - 44032: 0x95E1,
+ 48792 - 44032: 0xBBB2,
+ 48793 - 44032: 0xBBB3,
+ 48794 - 44032: 0x95E2,
+ 48795 - 44032: 0x95E3,
+ 48796 - 44032: 0x95E4,
+ 48797 - 44032: 0x95E5,
+ 48798 - 44032: 0x95E6,
+ 48799 - 44032: 0x95E7,
+ 48800 - 44032: 0x95E8,
+ 48801 - 44032: 0x95E9,
+ 48802 - 44032: 0x95EA,
+ 48803 - 44032: 0x95EB,
+ 48804 - 44032: 0x95EC,
+ 48805 - 44032: 0x95ED,
+ 48806 - 44032: 0x95EE,
+ 48807 - 44032: 0x95EF,
+ 48808 - 44032: 0xBBB4,
+ 48809 - 44032: 0x95F0,
+ 48810 - 44032: 0x95F1,
+ 48811 - 44032: 0x95F2,
+ 48812 - 44032: 0x95F3,
+ 48813 - 44032: 0x95F4,
+ 48814 - 44032: 0x95F5,
+ 48815 - 44032: 0x95F6,
+ 48816 - 44032: 0x95F7,
+ 48817 - 44032: 0x95F8,
+ 48818 - 44032: 0x95F9,
+ 48819 - 44032: 0x95FA,
+ 48820 - 44032: 0x95FB,
+ 48821 - 44032: 0x95FC,
+ 48822 - 44032: 0x95FD,
+ 48823 - 44032: 0x95FE,
+ 48824 - 44032: 0x9641,
+ 48825 - 44032: 0x9642,
+ 48826 - 44032: 0x9643,
+ 48827 - 44032: 0x9644,
+ 48828 - 44032: 0x9645,
+ 48829 - 44032: 0x9646,
+ 48830 - 44032: 0x9647,
+ 48831 - 44032: 0x9648,
+ 48832 - 44032: 0x9649,
+ 48833 - 44032: 0x964A,
+ 48834 - 44032: 0x964B,
+ 48835 - 44032: 0x964C,
+ 48836 - 44032: 0x964D,
+ 48837 - 44032: 0x964E,
+ 48838 - 44032: 0x964F,
+ 48839 - 44032: 0x9650,
+ 48840 - 44032: 0x9651,
+ 48841 - 44032: 0x9652,
+ 48842 - 44032: 0x9653,
+ 48843 - 44032: 0x9654,
+ 48844 - 44032: 0x9655,
+ 48845 - 44032: 0x9656,
+ 48846 - 44032: 0x9657,
+ 48847 - 44032: 0x9658,
+ 48848 - 44032: 0xBBB5,
+ 48849 - 44032: 0xBBB6,
+ 48850 - 44032: 0x9659,
+ 48851 - 44032: 0x965A,
+ 48852 - 44032: 0xBBB7,
+ 48853 - 44032: 0x9661,
+ 48854 - 44032: 0x9662,
+ 48855 - 44032: 0xBBB8,
+ 48856 - 44032: 0xBBB9,
+ 48857 - 44032: 0x9663,
+ 48858 - 44032: 0x9664,
+ 48859 - 44032: 0x9665,
+ 48860 - 44032: 0x9666,
+ 48861 - 44032: 0x9667,
+ 48862 - 44032: 0x9668,
+ 48863 - 44032: 0x9669,
+ 48864 - 44032: 0xBBBA,
+ 48865 - 44032: 0x966A,
+ 48866 - 44032: 0x966B,
+ 48867 - 44032: 0xBBBB,
+ 48868 - 44032: 0xBBBC,
+ 48869 - 44032: 0xBBBD,
+ 48870 - 44032: 0x966C,
+ 48871 - 44032: 0x966D,
+ 48872 - 44032: 0x966E,
+ 48873 - 44032: 0x966F,
+ 48874 - 44032: 0x9670,
+ 48875 - 44032: 0x9671,
+ 48876 - 44032: 0xBBBE,
+ 48877 - 44032: 0x9672,
+ 48878 - 44032: 0x9673,
+ 48879 - 44032: 0x9674,
+ 48880 - 44032: 0x9675,
+ 48881 - 44032: 0x9676,
+ 48882 - 44032: 0x9677,
+ 48883 - 44032: 0x9678,
+ 48884 - 44032: 0x9679,
+ 48885 - 44032: 0x967A,
+ 48886 - 44032: 0x9681,
+ 48887 - 44032: 0x9682,
+ 48888 - 44032: 0x9683,
+ 48889 - 44032: 0x9684,
+ 48890 - 44032: 0x9685,
+ 48891 - 44032: 0x9686,
+ 48892 - 44032: 0x9687,
+ 48893 - 44032: 0x9688,
+ 48894 - 44032: 0x9689,
+ 48895 - 44032: 0x968A,
+ 48896 - 44032: 0x968B,
+ 48897 - 44032: 0xBBBF,
+ 48898 - 44032: 0x968C,
+ 48899 - 44032: 0x968D,
+ 48900 - 44032: 0x968E,
+ 48901 - 44032: 0x968F,
+ 48902 - 44032: 0x9690,
+ 48903 - 44032: 0x9691,
+ 48904 - 44032: 0xBBC0,
+ 48905 - 44032: 0xBBC1,
+ 48906 - 44032: 0x9692,
+ 48907 - 44032: 0x9693,
+ 48908 - 44032: 0x9694,
+ 48909 - 44032: 0x9695,
+ 48910 - 44032: 0x9696,
+ 48911 - 44032: 0x9697,
+ 48912 - 44032: 0x9698,
+ 48913 - 44032: 0x9699,
+ 48914 - 44032: 0x969A,
+ 48915 - 44032: 0x969B,
+ 48916 - 44032: 0x969C,
+ 48917 - 44032: 0x969D,
+ 48918 - 44032: 0x969E,
+ 48919 - 44032: 0x969F,
+ 48920 - 44032: 0xBBC2,
+ 48921 - 44032: 0xBBC3,
+ 48922 - 44032: 0x96A0,
+ 48923 - 44032: 0xBBC4,
+ 48924 - 44032: 0xBBC5,
+ 48925 - 44032: 0xBBC6,
+ 48926 - 44032: 0x96A1,
+ 48927 - 44032: 0x96A2,
+ 48928 - 44032: 0x96A3,
+ 48929 - 44032: 0x96A4,
+ 48930 - 44032: 0x96A5,
+ 48931 - 44032: 0x96A6,
+ 48932 - 44032: 0x96A7,
+ 48933 - 44032: 0x96A8,
+ 48934 - 44032: 0x96A9,
+ 48935 - 44032: 0x96AA,
+ 48936 - 44032: 0x96AB,
+ 48937 - 44032: 0x96AC,
+ 48938 - 44032: 0x96AD,
+ 48939 - 44032: 0x96AE,
+ 48940 - 44032: 0x96AF,
+ 48941 - 44032: 0x96B0,
+ 48942 - 44032: 0x96B1,
+ 48943 - 44032: 0x96B2,
+ 48944 - 44032: 0x96B3,
+ 48945 - 44032: 0x96B4,
+ 48946 - 44032: 0x96B5,
+ 48947 - 44032: 0x96B6,
+ 48948 - 44032: 0x96B7,
+ 48949 - 44032: 0x96B8,
+ 48950 - 44032: 0x96B9,
+ 48951 - 44032: 0x96BA,
+ 48952 - 44032: 0x96BB,
+ 48953 - 44032: 0x96BC,
+ 48954 - 44032: 0x96BD,
+ 48955 - 44032: 0x96BE,
+ 48956 - 44032: 0x96BF,
+ 48957 - 44032: 0x96C0,
+ 48958 - 44032: 0x96C1,
+ 48959 - 44032: 0x96C2,
+ 48960 - 44032: 0xBBC7,
+ 48961 - 44032: 0xBBC8,
+ 48962 - 44032: 0x96C3,
+ 48963 - 44032: 0x96C4,
+ 48964 - 44032: 0xBBC9,
+ 48965 - 44032: 0x96C5,
+ 48966 - 44032: 0x96C6,
+ 48967 - 44032: 0x96C7,
+ 48968 - 44032: 0xBBCA,
+ 48969 - 44032: 0x96C8,
+ 48970 - 44032: 0x96C9,
+ 48971 - 44032: 0x96CA,
+ 48972 - 44032: 0x96CB,
+ 48973 - 44032: 0x96CC,
+ 48974 - 44032: 0x96CD,
+ 48975 - 44032: 0x96CE,
+ 48976 - 44032: 0xBBCB,
+ 48977 - 44032: 0xBBCC,
+ 48978 - 44032: 0x96CF,
+ 48979 - 44032: 0x96D0,
+ 48980 - 44032: 0x96D1,
+ 48981 - 44032: 0xBBCD,
+ 48982 - 44032: 0x96D2,
+ 48983 - 44032: 0x96D3,
+ 48984 - 44032: 0x96D4,
+ 48985 - 44032: 0x96D5,
+ 48986 - 44032: 0x96D6,
+ 48987 - 44032: 0x96D7,
+ 48988 - 44032: 0x96D8,
+ 48989 - 44032: 0x96D9,
+ 48990 - 44032: 0x96DA,
+ 48991 - 44032: 0x96DB,
+ 48992 - 44032: 0x96DC,
+ 48993 - 44032: 0x96DD,
+ 48994 - 44032: 0x96DE,
+ 48995 - 44032: 0x96DF,
+ 48996 - 44032: 0x96E0,
+ 48997 - 44032: 0x96E1,
+ 48998 - 44032: 0x96E2,
+ 48999 - 44032: 0x96E3,
+ 49000 - 44032: 0x96E4,
+ 49001 - 44032: 0x96E5,
+ 49002 - 44032: 0x96E6,
+ 49003 - 44032: 0x96E7,
+ 49004 - 44032: 0x96E8,
+ 49005 - 44032: 0x96E9,
+ 49006 - 44032: 0x96EA,
+ 49007 - 44032: 0x96EB,
+ 49008 - 44032: 0x96EC,
+ 49009 - 44032: 0x96ED,
+ 49010 - 44032: 0x96EE,
+ 49011 - 44032: 0x96EF,
+ 49012 - 44032: 0x96F0,
+ 49013 - 44032: 0x96F1,
+ 49014 - 44032: 0x96F2,
+ 49015 - 44032: 0x96F3,
+ 49016 - 44032: 0x96F4,
+ 49017 - 44032: 0x96F5,
+ 49018 - 44032: 0x96F6,
+ 49019 - 44032: 0x96F7,
+ 49020 - 44032: 0x96F8,
+ 49021 - 44032: 0x96F9,
+ 49022 - 44032: 0x96FA,
+ 49023 - 44032: 0x96FB,
+ 49024 - 44032: 0x96FC,
+ 49025 - 44032: 0x96FD,
+ 49026 - 44032: 0x96FE,
+ 49027 - 44032: 0x9741,
+ 49028 - 44032: 0x9742,
+ 49029 - 44032: 0x9743,
+ 49030 - 44032: 0x9744,
+ 49031 - 44032: 0x9745,
+ 49032 - 44032: 0x9746,
+ 49033 - 44032: 0x9747,
+ 49034 - 44032: 0x9748,
+ 49035 - 44032: 0x9749,
+ 49036 - 44032: 0x974A,
+ 49037 - 44032: 0x974B,
+ 49038 - 44032: 0x974C,
+ 49039 - 44032: 0x974D,
+ 49040 - 44032: 0x974E,
+ 49041 - 44032: 0x974F,
+ 49042 - 44032: 0x9750,
+ 49043 - 44032: 0x9751,
+ 49044 - 44032: 0xBBCE,
+ 49045 - 44032: 0x9752,
+ 49046 - 44032: 0x9753,
+ 49047 - 44032: 0x9754,
+ 49048 - 44032: 0x9755,
+ 49049 - 44032: 0x9756,
+ 49050 - 44032: 0x9757,
+ 49051 - 44032: 0x9758,
+ 49052 - 44032: 0x9759,
+ 49053 - 44032: 0x975A,
+ 49054 - 44032: 0x9761,
+ 49055 - 44032: 0x9762,
+ 49056 - 44032: 0x9763,
+ 49057 - 44032: 0x9764,
+ 49058 - 44032: 0x9765,
+ 49059 - 44032: 0x9766,
+ 49060 - 44032: 0x9767,
+ 49061 - 44032: 0x9768,
+ 49062 - 44032: 0x9769,
+ 49063 - 44032: 0x976A,
+ 49064 - 44032: 0x976B,
+ 49065 - 44032: 0x976C,
+ 49066 - 44032: 0x976D,
+ 49067 - 44032: 0x976E,
+ 49068 - 44032: 0x976F,
+ 49069 - 44032: 0x9770,
+ 49070 - 44032: 0x9771,
+ 49071 - 44032: 0x9772,
+ 49072 - 44032: 0xBBCF,
+ 49073 - 44032: 0x9773,
+ 49074 - 44032: 0x9774,
+ 49075 - 44032: 0x9775,
+ 49076 - 44032: 0x9776,
+ 49077 - 44032: 0x9777,
+ 49078 - 44032: 0x9778,
+ 49079 - 44032: 0x9779,
+ 49080 - 44032: 0x977A,
+ 49081 - 44032: 0x9781,
+ 49082 - 44032: 0x9782,
+ 49083 - 44032: 0x9783,
+ 49084 - 44032: 0x9784,
+ 49085 - 44032: 0x9785,
+ 49086 - 44032: 0x9786,
+ 49087 - 44032: 0x9787,
+ 49088 - 44032: 0x9788,
+ 49089 - 44032: 0x9789,
+ 49090 - 44032: 0x978A,
+ 49091 - 44032: 0x978B,
+ 49092 - 44032: 0x978C,
+ 49093 - 44032: 0xBBD0,
+ 49094 - 44032: 0x978D,
+ 49095 - 44032: 0x978E,
+ 49096 - 44032: 0x978F,
+ 49097 - 44032: 0x9790,
+ 49098 - 44032: 0x9791,
+ 49099 - 44032: 0x9792,
+ 49100 - 44032: 0xBBD1,
+ 49101 - 44032: 0xBBD2,
+ 49102 - 44032: 0x9793,
+ 49103 - 44032: 0x9794,
+ 49104 - 44032: 0xBBD3,
+ 49105 - 44032: 0x9795,
+ 49106 - 44032: 0x9796,
+ 49107 - 44032: 0x9797,
+ 49108 - 44032: 0xBBD4,
+ 49109 - 44032: 0x9798,
+ 49110 - 44032: 0x9799,
+ 49111 - 44032: 0x979A,
+ 49112 - 44032: 0x979B,
+ 49113 - 44032: 0x979C,
+ 49114 - 44032: 0x979D,
+ 49115 - 44032: 0x979E,
+ 49116 - 44032: 0xBBD5,
+ 49117 - 44032: 0x979F,
+ 49118 - 44032: 0x97A0,
+ 49119 - 44032: 0xBBD6,
+ 49120 - 44032: 0x97A1,
+ 49121 - 44032: 0xBBD7,
+ 49122 - 44032: 0x97A2,
+ 49123 - 44032: 0x97A3,
+ 49124 - 44032: 0x97A4,
+ 49125 - 44032: 0x97A5,
+ 49126 - 44032: 0x97A6,
+ 49127 - 44032: 0x97A7,
+ 49128 - 44032: 0x97A8,
+ 49129 - 44032: 0x97A9,
+ 49130 - 44032: 0x97AA,
+ 49131 - 44032: 0x97AB,
+ 49132 - 44032: 0x97AC,
+ 49133 - 44032: 0x97AD,
+ 49134 - 44032: 0x97AE,
+ 49135 - 44032: 0x97AF,
+ 49136 - 44032: 0x97B0,
+ 49137 - 44032: 0x97B1,
+ 49138 - 44032: 0x97B2,
+ 49139 - 44032: 0x97B3,
+ 49140 - 44032: 0x97B4,
+ 49141 - 44032: 0x97B5,
+ 49142 - 44032: 0x97B6,
+ 49143 - 44032: 0x97B7,
+ 49144 - 44032: 0x97B8,
+ 49145 - 44032: 0x97B9,
+ 49146 - 44032: 0x97BA,
+ 49147 - 44032: 0x97BB,
+ 49148 - 44032: 0x97BC,
+ 49149 - 44032: 0x97BD,
+ 49150 - 44032: 0x97BE,
+ 49151 - 44032: 0x97BF,
+ 49152 - 44032: 0x97C0,
+ 49153 - 44032: 0x97C1,
+ 49154 - 44032: 0x97C2,
+ 49155 - 44032: 0x97C3,
+ 49156 - 44032: 0x97C4,
+ 49157 - 44032: 0x97C5,
+ 49158 - 44032: 0x97C6,
+ 49159 - 44032: 0x97C7,
+ 49160 - 44032: 0x97C8,
+ 49161 - 44032: 0x97C9,
+ 49162 - 44032: 0x97CA,
+ 49163 - 44032: 0x97CB,
+ 49164 - 44032: 0x97CC,
+ 49165 - 44032: 0x97CD,
+ 49166 - 44032: 0x97CE,
+ 49167 - 44032: 0x97CF,
+ 49168 - 44032: 0x97D0,
+ 49169 - 44032: 0x97D1,
+ 49170 - 44032: 0x97D2,
+ 49171 - 44032: 0x97D3,
+ 49172 - 44032: 0x97D4,
+ 49173 - 44032: 0x97D5,
+ 49174 - 44032: 0x97D6,
+ 49175 - 44032: 0x97D7,
+ 49176 - 44032: 0x97D8,
+ 49177 - 44032: 0x97D9,
+ 49178 - 44032: 0x97DA,
+ 49179 - 44032: 0x97DB,
+ 49180 - 44032: 0x97DC,
+ 49181 - 44032: 0x97DD,
+ 49182 - 44032: 0x97DE,
+ 49183 - 44032: 0x97DF,
+ 49184 - 44032: 0x97E0,
+ 49185 - 44032: 0x97E1,
+ 49186 - 44032: 0x97E2,
+ 49187 - 44032: 0x97E3,
+ 49188 - 44032: 0x97E4,
+ 49189 - 44032: 0x97E5,
+ 49190 - 44032: 0x97E6,
+ 49191 - 44032: 0x97E7,
+ 49192 - 44032: 0x97E8,
+ 49193 - 44032: 0x97E9,
+ 49194 - 44032: 0x97EA,
+ 49195 - 44032: 0x97EB,
+ 49196 - 44032: 0x97EC,
+ 49197 - 44032: 0x97ED,
+ 49198 - 44032: 0x97EE,
+ 49199 - 44032: 0x97EF,
+ 49200 - 44032: 0x97F0,
+ 49201 - 44032: 0x97F1,
+ 49202 - 44032: 0x97F2,
+ 49203 - 44032: 0x97F3,
+ 49204 - 44032: 0x97F4,
+ 49205 - 44032: 0x97F5,
+ 49206 - 44032: 0x97F6,
+ 49207 - 44032: 0x97F7,
+ 49208 - 44032: 0x97F8,
+ 49209 - 44032: 0x97F9,
+ 49210 - 44032: 0x97FA,
+ 49211 - 44032: 0x97FB,
+ 49212 - 44032: 0xBBD8,
+ 49213 - 44032: 0x97FC,
+ 49214 - 44032: 0x97FD,
+ 49215 - 44032: 0x97FE,
+ 49216 - 44032: 0x9841,
+ 49217 - 44032: 0x9842,
+ 49218 - 44032: 0x9843,
+ 49219 - 44032: 0x9844,
+ 49220 - 44032: 0x9845,
+ 49221 - 44032: 0x9846,
+ 49222 - 44032: 0x9847,
+ 49223 - 44032: 0x9848,
+ 49224 - 44032: 0x9849,
+ 49225 - 44032: 0x984A,
+ 49226 - 44032: 0x984B,
+ 49227 - 44032: 0x984C,
+ 49228 - 44032: 0x984D,
+ 49229 - 44032: 0x984E,
+ 49230 - 44032: 0x984F,
+ 49231 - 44032: 0x9850,
+ 49232 - 44032: 0x9851,
+ 49233 - 44032: 0xBBD9,
+ 49234 - 44032: 0x9852,
+ 49235 - 44032: 0x9853,
+ 49236 - 44032: 0x9854,
+ 49237 - 44032: 0x9855,
+ 49238 - 44032: 0x9856,
+ 49239 - 44032: 0x9857,
+ 49240 - 44032: 0xBBDA,
+ 49241 - 44032: 0x9858,
+ 49242 - 44032: 0x9859,
+ 49243 - 44032: 0x985A,
+ 49244 - 44032: 0xBBDB,
+ 49245 - 44032: 0x9861,
+ 49246 - 44032: 0x9862,
+ 49247 - 44032: 0x9863,
+ 49248 - 44032: 0xBBDC,
+ 49249 - 44032: 0x9864,
+ 49250 - 44032: 0x9865,
+ 49251 - 44032: 0x9866,
+ 49252 - 44032: 0x9867,
+ 49253 - 44032: 0x9868,
+ 49254 - 44032: 0x9869,
+ 49255 - 44032: 0x986A,
+ 49256 - 44032: 0xBBDD,
+ 49257 - 44032: 0xBBDE,
+ 49258 - 44032: 0x986B,
+ 49259 - 44032: 0x986C,
+ 49260 - 44032: 0x986D,
+ 49261 - 44032: 0x986E,
+ 49262 - 44032: 0x986F,
+ 49263 - 44032: 0x9870,
+ 49264 - 44032: 0x9871,
+ 49265 - 44032: 0x9872,
+ 49266 - 44032: 0x9873,
+ 49267 - 44032: 0x9874,
+ 49268 - 44032: 0x9875,
+ 49269 - 44032: 0x9876,
+ 49270 - 44032: 0x9877,
+ 49271 - 44032: 0x9878,
+ 49272 - 44032: 0x9879,
+ 49273 - 44032: 0x987A,
+ 49274 - 44032: 0x9881,
+ 49275 - 44032: 0x9882,
+ 49276 - 44032: 0x9883,
+ 49277 - 44032: 0x9884,
+ 49278 - 44032: 0x9885,
+ 49279 - 44032: 0x9886,
+ 49280 - 44032: 0x9887,
+ 49281 - 44032: 0x9888,
+ 49282 - 44032: 0x9889,
+ 49283 - 44032: 0x988A,
+ 49284 - 44032: 0x988B,
+ 49285 - 44032: 0x988C,
+ 49286 - 44032: 0x988D,
+ 49287 - 44032: 0x988E,
+ 49288 - 44032: 0x988F,
+ 49289 - 44032: 0x9890,
+ 49290 - 44032: 0x9891,
+ 49291 - 44032: 0x9892,
+ 49292 - 44032: 0x9893,
+ 49293 - 44032: 0x9894,
+ 49294 - 44032: 0x9895,
+ 49295 - 44032: 0x9896,
+ 49296 - 44032: 0xBBDF,
+ 49297 - 44032: 0xBBE0,
+ 49298 - 44032: 0x9897,
+ 49299 - 44032: 0x9898,
+ 49300 - 44032: 0xBBE1,
+ 49301 - 44032: 0x9899,
+ 49302 - 44032: 0x989A,
+ 49303 - 44032: 0x989B,
+ 49304 - 44032: 0xBBE2,
+ 49305 - 44032: 0x989C,
+ 49306 - 44032: 0x989D,
+ 49307 - 44032: 0x989E,
+ 49308 - 44032: 0x989F,
+ 49309 - 44032: 0x98A0,
+ 49310 - 44032: 0x98A1,
+ 49311 - 44032: 0x98A2,
+ 49312 - 44032: 0xBBE3,
+ 49313 - 44032: 0xBBE4,
+ 49314 - 44032: 0x98A3,
+ 49315 - 44032: 0xBBE5,
+ 49316 - 44032: 0x98A4,
+ 49317 - 44032: 0xBBE6,
+ 49318 - 44032: 0x98A5,
+ 49319 - 44032: 0x98A6,
+ 49320 - 44032: 0x98A7,
+ 49321 - 44032: 0x98A8,
+ 49322 - 44032: 0x98A9,
+ 49323 - 44032: 0x98AA,
+ 49324 - 44032: 0xBBE7,
+ 49325 - 44032: 0xBBE8,
+ 49326 - 44032: 0x98AB,
+ 49327 - 44032: 0xBBE9,
+ 49328 - 44032: 0xBBEA,
+ 49329 - 44032: 0x98AC,
+ 49330 - 44032: 0x98AD,
+ 49331 - 44032: 0xBBEB,
+ 49332 - 44032: 0xBBEC,
+ 49333 - 44032: 0xBBED,
+ 49334 - 44032: 0xBBEE,
+ 49335 - 44032: 0x98AE,
+ 49336 - 44032: 0x98AF,
+ 49337 - 44032: 0x98B0,
+ 49338 - 44032: 0x98B1,
+ 49339 - 44032: 0x98B2,
+ 49340 - 44032: 0xBBEF,
+ 49341 - 44032: 0xBBF0,
+ 49342 - 44032: 0x98B3,
+ 49343 - 44032: 0xBBF1,
+ 49344 - 44032: 0xBBF2,
+ 49345 - 44032: 0xBBF3,
+ 49346 - 44032: 0x98B4,
+ 49347 - 44032: 0x98B5,
+ 49348 - 44032: 0x98B6,
+ 49349 - 44032: 0xBBF4,
+ 49350 - 44032: 0x98B7,
+ 49351 - 44032: 0x98B8,
+ 49352 - 44032: 0xBBF5,
+ 49353 - 44032: 0xBBF6,
+ 49354 - 44032: 0x98B9,
+ 49355 - 44032: 0x98BA,
+ 49356 - 44032: 0xBBF7,
+ 49357 - 44032: 0x98BB,
+ 49358 - 44032: 0x98BC,
+ 49359 - 44032: 0x98BD,
+ 49360 - 44032: 0xBBF8,
+ 49361 - 44032: 0x98BE,
+ 49362 - 44032: 0x98BF,
+ 49363 - 44032: 0x98C0,
+ 49364 - 44032: 0x98C1,
+ 49365 - 44032: 0x98C2,
+ 49366 - 44032: 0x98C3,
+ 49367 - 44032: 0x98C4,
+ 49368 - 44032: 0xBBF9,
+ 49369 - 44032: 0xBBFA,
+ 49370 - 44032: 0x98C5,
+ 49371 - 44032: 0xBBFB,
+ 49372 - 44032: 0xBBFC,
+ 49373 - 44032: 0xBBFD,
+ 49374 - 44032: 0x98C6,
+ 49375 - 44032: 0x98C7,
+ 49376 - 44032: 0x98C8,
+ 49377 - 44032: 0x98C9,
+ 49378 - 44032: 0x98CA,
+ 49379 - 44032: 0x98CB,
+ 49380 - 44032: 0xBBFE,
+ 49381 - 44032: 0xBCA1,
+ 49382 - 44032: 0x98CC,
+ 49383 - 44032: 0x98CD,
+ 49384 - 44032: 0xBCA2,
+ 49385 - 44032: 0x98CE,
+ 49386 - 44032: 0x98CF,
+ 49387 - 44032: 0x98D0,
+ 49388 - 44032: 0xBCA3,
+ 49389 - 44032: 0x98D1,
+ 49390 - 44032: 0x98D2,
+ 49391 - 44032: 0x98D3,
+ 49392 - 44032: 0x98D4,
+ 49393 - 44032: 0x98D5,
+ 49394 - 44032: 0x98D6,
+ 49395 - 44032: 0x98D7,
+ 49396 - 44032: 0xBCA4,
+ 49397 - 44032: 0xBCA5,
+ 49398 - 44032: 0x98D8,
+ 49399 - 44032: 0xBCA6,
+ 49400 - 44032: 0x98D9,
+ 49401 - 44032: 0xBCA7,
+ 49402 - 44032: 0x98DA,
+ 49403 - 44032: 0x98DB,
+ 49404 - 44032: 0x98DC,
+ 49405 - 44032: 0x98DD,
+ 49406 - 44032: 0x98DE,
+ 49407 - 44032: 0x98DF,
+ 49408 - 44032: 0xBCA8,
+ 49409 - 44032: 0x98E0,
+ 49410 - 44032: 0x98E1,
+ 49411 - 44032: 0x98E2,
+ 49412 - 44032: 0xBCA9,
+ 49413 - 44032: 0x98E3,
+ 49414 - 44032: 0x98E4,
+ 49415 - 44032: 0x98E5,
+ 49416 - 44032: 0xBCAA,
+ 49417 - 44032: 0x98E6,
+ 49418 - 44032: 0x98E7,
+ 49419 - 44032: 0x98E8,
+ 49420 - 44032: 0x98E9,
+ 49421 - 44032: 0x98EA,
+ 49422 - 44032: 0x98EB,
+ 49423 - 44032: 0x98EC,
+ 49424 - 44032: 0xBCAB,
+ 49425 - 44032: 0x98ED,
+ 49426 - 44032: 0x98EE,
+ 49427 - 44032: 0x98EF,
+ 49428 - 44032: 0x98F0,
+ 49429 - 44032: 0xBCAC,
+ 49430 - 44032: 0x98F1,
+ 49431 - 44032: 0x98F2,
+ 49432 - 44032: 0x98F3,
+ 49433 - 44032: 0x98F4,
+ 49434 - 44032: 0x98F5,
+ 49435 - 44032: 0x98F6,
+ 49436 - 44032: 0xBCAD,
+ 49437 - 44032: 0xBCAE,
+ 49438 - 44032: 0xBCAF,
+ 49439 - 44032: 0xBCB0,
+ 49440 - 44032: 0xBCB1,
+ 49441 - 44032: 0x98F7,
+ 49442 - 44032: 0x98F8,
+ 49443 - 44032: 0xBCB2,
+ 49444 - 44032: 0xBCB3,
+ 49445 - 44032: 0x98F9,
+ 49446 - 44032: 0xBCB4,
+ 49447 - 44032: 0xBCB5,
+ 49448 - 44032: 0x98FA,
+ 49449 - 44032: 0x98FB,
+ 49450 - 44032: 0x98FC,
+ 49451 - 44032: 0x98FD,
+ 49452 - 44032: 0xBCB6,
+ 49453 - 44032: 0xBCB7,
+ 49454 - 44032: 0x98FE,
+ 49455 - 44032: 0xBCB8,
+ 49456 - 44032: 0xBCB9,
+ 49457 - 44032: 0xBCBA,
+ 49458 - 44032: 0x9941,
+ 49459 - 44032: 0x9942,
+ 49460 - 44032: 0x9943,
+ 49461 - 44032: 0x9944,
+ 49462 - 44032: 0xBCBB,
+ 49463 - 44032: 0x9945,
+ 49464 - 44032: 0xBCBC,
+ 49465 - 44032: 0xBCBD,
+ 49466 - 44032: 0x9946,
+ 49467 - 44032: 0x9947,
+ 49468 - 44032: 0xBCBE,
+ 49469 - 44032: 0x9948,
+ 49470 - 44032: 0x9949,
+ 49471 - 44032: 0x994A,
+ 49472 - 44032: 0xBCBF,
+ 49473 - 44032: 0x994B,
+ 49474 - 44032: 0x994C,
+ 49475 - 44032: 0x994D,
+ 49476 - 44032: 0x994E,
+ 49477 - 44032: 0x994F,
+ 49478 - 44032: 0x9950,
+ 49479 - 44032: 0x9951,
+ 49480 - 44032: 0xBCC0,
+ 49481 - 44032: 0xBCC1,
+ 49482 - 44032: 0x9952,
+ 49483 - 44032: 0xBCC2,
+ 49484 - 44032: 0xBCC3,
+ 49485 - 44032: 0xBCC4,
+ 49486 - 44032: 0x9953,
+ 49487 - 44032: 0x9954,
+ 49488 - 44032: 0x9955,
+ 49489 - 44032: 0x9956,
+ 49490 - 44032: 0x9957,
+ 49491 - 44032: 0x9958,
+ 49492 - 44032: 0xBCC5,
+ 49493 - 44032: 0xBCC6,
+ 49494 - 44032: 0x9959,
+ 49495 - 44032: 0x995A,
+ 49496 - 44032: 0xBCC7,
+ 49497 - 44032: 0x9961,
+ 49498 - 44032: 0x9962,
+ 49499 - 44032: 0x9963,
+ 49500 - 44032: 0xBCC8,
+ 49501 - 44032: 0x9964,
+ 49502 - 44032: 0x9965,
+ 49503 - 44032: 0x9966,
+ 49504 - 44032: 0x9967,
+ 49505 - 44032: 0x9968,
+ 49506 - 44032: 0x9969,
+ 49507 - 44032: 0x996A,
+ 49508 - 44032: 0xBCC9,
+ 49509 - 44032: 0xBCCA,
+ 49510 - 44032: 0x996B,
+ 49511 - 44032: 0xBCCB,
+ 49512 - 44032: 0xBCCC,
+ 49513 - 44032: 0xBCCD,
+ 49514 - 44032: 0x996C,
+ 49515 - 44032: 0x996D,
+ 49516 - 44032: 0x996E,
+ 49517 - 44032: 0x996F,
+ 49518 - 44032: 0x9970,
+ 49519 - 44032: 0x9971,
+ 49520 - 44032: 0xBCCE,
+ 49521 - 44032: 0x9972,
+ 49522 - 44032: 0x9973,
+ 49523 - 44032: 0x9974,
+ 49524 - 44032: 0xBCCF,
+ 49525 - 44032: 0x9975,
+ 49526 - 44032: 0x9976,
+ 49527 - 44032: 0x9977,
+ 49528 - 44032: 0xBCD0,
+ 49529 - 44032: 0x9978,
+ 49530 - 44032: 0x9979,
+ 49531 - 44032: 0x997A,
+ 49532 - 44032: 0x9981,
+ 49533 - 44032: 0x9982,
+ 49534 - 44032: 0x9983,
+ 49535 - 44032: 0x9984,
+ 49536 - 44032: 0x9985,
+ 49537 - 44032: 0x9986,
+ 49538 - 44032: 0x9987,
+ 49539 - 44032: 0x9988,
+ 49540 - 44032: 0x9989,
+ 49541 - 44032: 0xBCD1,
+ 49542 - 44032: 0x998A,
+ 49543 - 44032: 0x998B,
+ 49544 - 44032: 0x998C,
+ 49545 - 44032: 0x998D,
+ 49546 - 44032: 0x998E,
+ 49547 - 44032: 0x998F,
+ 49548 - 44032: 0xBCD2,
+ 49549 - 44032: 0xBCD3,
+ 49550 - 44032: 0xBCD4,
+ 49551 - 44032: 0x9990,
+ 49552 - 44032: 0xBCD5,
+ 49553 - 44032: 0x9991,
+ 49554 - 44032: 0x9992,
+ 49555 - 44032: 0x9993,
+ 49556 - 44032: 0xBCD6,
+ 49557 - 44032: 0x9994,
+ 49558 - 44032: 0xBCD7,
+ 49559 - 44032: 0x9995,
+ 49560 - 44032: 0x9996,
+ 49561 - 44032: 0x9997,
+ 49562 - 44032: 0x9998,
+ 49563 - 44032: 0x9999,
+ 49564 - 44032: 0xBCD8,
+ 49565 - 44032: 0xBCD9,
+ 49566 - 44032: 0x999A,
+ 49567 - 44032: 0xBCDA,
+ 49568 - 44032: 0x999B,
+ 49569 - 44032: 0xBCDB,
+ 49570 - 44032: 0x999C,
+ 49571 - 44032: 0x999D,
+ 49572 - 44032: 0x999E,
+ 49573 - 44032: 0xBCDC,
+ 49574 - 44032: 0x999F,
+ 49575 - 44032: 0x99A0,
+ 49576 - 44032: 0xBCDD,
+ 49577 - 44032: 0xBCDE,
+ 49578 - 44032: 0x99A1,
+ 49579 - 44032: 0x99A2,
+ 49580 - 44032: 0xBCDF,
+ 49581 - 44032: 0x99A3,
+ 49582 - 44032: 0x99A4,
+ 49583 - 44032: 0x99A5,
+ 49584 - 44032: 0xBCE0,
+ 49585 - 44032: 0x99A6,
+ 49586 - 44032: 0x99A7,
+ 49587 - 44032: 0x99A8,
+ 49588 - 44032: 0x99A9,
+ 49589 - 44032: 0x99AA,
+ 49590 - 44032: 0x99AB,
+ 49591 - 44032: 0x99AC,
+ 49592 - 44032: 0x99AD,
+ 49593 - 44032: 0x99AE,
+ 49594 - 44032: 0x99AF,
+ 49595 - 44032: 0x99B0,
+ 49596 - 44032: 0x99B1,
+ 49597 - 44032: 0xBCE1,
+ 49598 - 44032: 0x99B2,
+ 49599 - 44032: 0x99B3,
+ 49600 - 44032: 0x99B4,
+ 49601 - 44032: 0x99B5,
+ 49602 - 44032: 0x99B6,
+ 49603 - 44032: 0x99B7,
+ 49604 - 44032: 0xBCE2,
+ 49605 - 44032: 0x99B8,
+ 49606 - 44032: 0x99B9,
+ 49607 - 44032: 0x99BA,
+ 49608 - 44032: 0xBCE3,
+ 49609 - 44032: 0x99BB,
+ 49610 - 44032: 0x99BC,
+ 49611 - 44032: 0x99BD,
+ 49612 - 44032: 0xBCE4,
+ 49613 - 44032: 0x99BE,
+ 49614 - 44032: 0x99BF,
+ 49615 - 44032: 0x99C0,
+ 49616 - 44032: 0x99C1,
+ 49617 - 44032: 0x99C2,
+ 49618 - 44032: 0x99C3,
+ 49619 - 44032: 0x99C4,
+ 49620 - 44032: 0xBCE5,
+ 49621 - 44032: 0x99C5,
+ 49622 - 44032: 0x99C6,
+ 49623 - 44032: 0xBCE6,
+ 49624 - 44032: 0xBCE7,
+ 49625 - 44032: 0x99C7,
+ 49626 - 44032: 0x99C8,
+ 49627 - 44032: 0x99C9,
+ 49628 - 44032: 0x99CA,
+ 49629 - 44032: 0x99CB,
+ 49630 - 44032: 0x99CC,
+ 49631 - 44032: 0x99CD,
+ 49632 - 44032: 0xBCE8,
+ 49633 - 44032: 0x99CE,
+ 49634 - 44032: 0x99CF,
+ 49635 - 44032: 0x99D0,
+ 49636 - 44032: 0xBCE9,
+ 49637 - 44032: 0x99D1,
+ 49638 - 44032: 0x99D2,
+ 49639 - 44032: 0x99D3,
+ 49640 - 44032: 0xBCEA,
+ 49641 - 44032: 0x99D4,
+ 49642 - 44032: 0x99D5,
+ 49643 - 44032: 0x99D6,
+ 49644 - 44032: 0x99D7,
+ 49645 - 44032: 0x99D8,
+ 49646 - 44032: 0x99D9,
+ 49647 - 44032: 0x99DA,
+ 49648 - 44032: 0xBCEB,
+ 49649 - 44032: 0xBCEC,
+ 49650 - 44032: 0x99DB,
+ 49651 - 44032: 0xBCED,
+ 49652 - 44032: 0x99DC,
+ 49653 - 44032: 0x99DD,
+ 49654 - 44032: 0x99DE,
+ 49655 - 44032: 0x99DF,
+ 49656 - 44032: 0x99E0,
+ 49657 - 44032: 0x99E1,
+ 49658 - 44032: 0x99E2,
+ 49659 - 44032: 0x99E3,
+ 49660 - 44032: 0xBCEE,
+ 49661 - 44032: 0xBCEF,
+ 49662 - 44032: 0x99E4,
+ 49663 - 44032: 0x99E5,
+ 49664 - 44032: 0xBCF0,
+ 49665 - 44032: 0x99E6,
+ 49666 - 44032: 0x99E7,
+ 49667 - 44032: 0x99E8,
+ 49668 - 44032: 0xBCF1,
+ 49669 - 44032: 0x99E9,
+ 49670 - 44032: 0x99EA,
+ 49671 - 44032: 0x99EB,
+ 49672 - 44032: 0x99EC,
+ 49673 - 44032: 0x99ED,
+ 49674 - 44032: 0x99EE,
+ 49675 - 44032: 0x99EF,
+ 49676 - 44032: 0xBCF2,
+ 49677 - 44032: 0xBCF3,
+ 49678 - 44032: 0x99F0,
+ 49679 - 44032: 0xBCF4,
+ 49680 - 44032: 0x99F1,
+ 49681 - 44032: 0xBCF5,
+ 49682 - 44032: 0x99F2,
+ 49683 - 44032: 0x99F3,
+ 49684 - 44032: 0x99F4,
+ 49685 - 44032: 0x99F5,
+ 49686 - 44032: 0x99F6,
+ 49687 - 44032: 0x99F7,
+ 49688 - 44032: 0xBCF6,
+ 49689 - 44032: 0xBCF7,
+ 49690 - 44032: 0x99F8,
+ 49691 - 44032: 0x99F9,
+ 49692 - 44032: 0xBCF8,
+ 49693 - 44032: 0x99FA,
+ 49694 - 44032: 0x99FB,
+ 49695 - 44032: 0xBCF9,
+ 49696 - 44032: 0xBCFA,
+ 49697 - 44032: 0x99FC,
+ 49698 - 44032: 0x99FD,
+ 49699 - 44032: 0x99FE,
+ 49700 - 44032: 0x9A41,
+ 49701 - 44032: 0x9A42,
+ 49702 - 44032: 0x9A43,
+ 49703 - 44032: 0x9A44,
+ 49704 - 44032: 0xBCFB,
+ 49705 - 44032: 0xBCFC,
+ 49706 - 44032: 0x9A45,
+ 49707 - 44032: 0xBCFD,
+ 49708 - 44032: 0x9A46,
+ 49709 - 44032: 0xBCFE,
+ 49710 - 44032: 0x9A47,
+ 49711 - 44032: 0xBDA1,
+ 49712 - 44032: 0x9A48,
+ 49713 - 44032: 0xBDA2,
+ 49714 - 44032: 0xBDA3,
+ 49715 - 44032: 0x9A49,
+ 49716 - 44032: 0xBDA4,
+ 49717 - 44032: 0x9A4A,
+ 49718 - 44032: 0x9A4B,
+ 49719 - 44032: 0x9A4C,
+ 49720 - 44032: 0x9A4D,
+ 49721 - 44032: 0x9A4E,
+ 49722 - 44032: 0x9A4F,
+ 49723 - 44032: 0x9A50,
+ 49724 - 44032: 0x9A51,
+ 49725 - 44032: 0x9A52,
+ 49726 - 44032: 0x9A53,
+ 49727 - 44032: 0x9A54,
+ 49728 - 44032: 0x9A55,
+ 49729 - 44032: 0x9A56,
+ 49730 - 44032: 0x9A57,
+ 49731 - 44032: 0x9A58,
+ 49732 - 44032: 0x9A59,
+ 49733 - 44032: 0x9A5A,
+ 49734 - 44032: 0x9A61,
+ 49735 - 44032: 0x9A62,
+ 49736 - 44032: 0xBDA5,
+ 49737 - 44032: 0x9A63,
+ 49738 - 44032: 0x9A64,
+ 49739 - 44032: 0x9A65,
+ 49740 - 44032: 0x9A66,
+ 49741 - 44032: 0x9A67,
+ 49742 - 44032: 0x9A68,
+ 49743 - 44032: 0x9A69,
+ 49744 - 44032: 0xBDA6,
+ 49745 - 44032: 0xBDA7,
+ 49746 - 44032: 0x9A6A,
+ 49747 - 44032: 0x9A6B,
+ 49748 - 44032: 0xBDA8,
+ 49749 - 44032: 0x9A6C,
+ 49750 - 44032: 0x9A6D,
+ 49751 - 44032: 0x9A6E,
+ 49752 - 44032: 0xBDA9,
+ 49753 - 44032: 0x9A6F,
+ 49754 - 44032: 0x9A70,
+ 49755 - 44032: 0x9A71,
+ 49756 - 44032: 0x9A72,
+ 49757 - 44032: 0x9A73,
+ 49758 - 44032: 0x9A74,
+ 49759 - 44032: 0x9A75,
+ 49760 - 44032: 0xBDAA,
+ 49761 - 44032: 0x9A76,
+ 49762 - 44032: 0x9A77,
+ 49763 - 44032: 0x9A78,
+ 49764 - 44032: 0x9A79,
+ 49765 - 44032: 0xBDAB,
+ 49766 - 44032: 0x9A7A,
+ 49767 - 44032: 0x9A81,
+ 49768 - 44032: 0x9A82,
+ 49769 - 44032: 0x9A83,
+ 49770 - 44032: 0x9A84,
+ 49771 - 44032: 0x9A85,
+ 49772 - 44032: 0xBDAC,
+ 49773 - 44032: 0xBDAD,
+ 49774 - 44032: 0x9A86,
+ 49775 - 44032: 0x9A87,
+ 49776 - 44032: 0xBDAE,
+ 49777 - 44032: 0x9A88,
+ 49778 - 44032: 0x9A89,
+ 49779 - 44032: 0x9A8A,
+ 49780 - 44032: 0xBDAF,
+ 49781 - 44032: 0x9A8B,
+ 49782 - 44032: 0x9A8C,
+ 49783 - 44032: 0x9A8D,
+ 49784 - 44032: 0x9A8E,
+ 49785 - 44032: 0x9A8F,
+ 49786 - 44032: 0x9A90,
+ 49787 - 44032: 0x9A91,
+ 49788 - 44032: 0xBDB0,
+ 49789 - 44032: 0xBDB1,
+ 49790 - 44032: 0x9A92,
+ 49791 - 44032: 0xBDB2,
+ 49792 - 44032: 0x9A93,
+ 49793 - 44032: 0xBDB3,
+ 49794 - 44032: 0x9A94,
+ 49795 - 44032: 0x9A95,
+ 49796 - 44032: 0x9A96,
+ 49797 - 44032: 0x9A97,
+ 49798 - 44032: 0x9A98,
+ 49799 - 44032: 0x9A99,
+ 49800 - 44032: 0xBDB4,
+ 49801 - 44032: 0xBDB5,
+ 49802 - 44032: 0x9A9A,
+ 49803 - 44032: 0x9A9B,
+ 49804 - 44032: 0x9A9C,
+ 49805 - 44032: 0x9A9D,
+ 49806 - 44032: 0x9A9E,
+ 49807 - 44032: 0x9A9F,
+ 49808 - 44032: 0xBDB6,
+ 49809 - 44032: 0x9AA0,
+ 49810 - 44032: 0x9AA1,
+ 49811 - 44032: 0x9AA2,
+ 49812 - 44032: 0x9AA3,
+ 49813 - 44032: 0x9AA4,
+ 49814 - 44032: 0x9AA5,
+ 49815 - 44032: 0x9AA6,
+ 49816 - 44032: 0xBDB7,
+ 49817 - 44032: 0x9AA7,
+ 49818 - 44032: 0x9AA8,
+ 49819 - 44032: 0xBDB8,
+ 49820 - 44032: 0x9AA9,
+ 49821 - 44032: 0xBDB9,
+ 49822 - 44032: 0x9AAA,
+ 49823 - 44032: 0x9AAB,
+ 49824 - 44032: 0x9AAC,
+ 49825 - 44032: 0x9AAD,
+ 49826 - 44032: 0x9AAE,
+ 49827 - 44032: 0x9AAF,
+ 49828 - 44032: 0xBDBA,
+ 49829 - 44032: 0xBDBB,
+ 49830 - 44032: 0x9AB0,
+ 49831 - 44032: 0x9AB1,
+ 49832 - 44032: 0xBDBC,
+ 49833 - 44032: 0x9AB2,
+ 49834 - 44032: 0x9AB3,
+ 49835 - 44032: 0x9AB4,
+ 49836 - 44032: 0xBDBD,
+ 49837 - 44032: 0xBDBE,
+ 49838 - 44032: 0x9AB5,
+ 49839 - 44032: 0x9AB6,
+ 49840 - 44032: 0x9AB7,
+ 49841 - 44032: 0x9AB8,
+ 49842 - 44032: 0x9AB9,
+ 49843 - 44032: 0x9ABA,
+ 49844 - 44032: 0xBDBF,
+ 49845 - 44032: 0xBDC0,
+ 49846 - 44032: 0x9ABB,
+ 49847 - 44032: 0xBDC1,
+ 49848 - 44032: 0x9ABC,
+ 49849 - 44032: 0xBDC2,
+ 49850 - 44032: 0x9ABD,
+ 49851 - 44032: 0x9ABE,
+ 49852 - 44032: 0x9ABF,
+ 49853 - 44032: 0x9AC0,
+ 49854 - 44032: 0x9AC1,
+ 49855 - 44032: 0x9AC2,
+ 49856 - 44032: 0x9AC3,
+ 49857 - 44032: 0x9AC4,
+ 49858 - 44032: 0x9AC5,
+ 49859 - 44032: 0x9AC6,
+ 49860 - 44032: 0x9AC7,
+ 49861 - 44032: 0x9AC8,
+ 49862 - 44032: 0x9AC9,
+ 49863 - 44032: 0x9ACA,
+ 49864 - 44032: 0x9ACB,
+ 49865 - 44032: 0x9ACC,
+ 49866 - 44032: 0x9ACD,
+ 49867 - 44032: 0x9ACE,
+ 49868 - 44032: 0x9ACF,
+ 49869 - 44032: 0x9AD0,
+ 49870 - 44032: 0x9AD1,
+ 49871 - 44032: 0x9AD2,
+ 49872 - 44032: 0x9AD3,
+ 49873 - 44032: 0x9AD4,
+ 49874 - 44032: 0x9AD5,
+ 49875 - 44032: 0x9AD6,
+ 49876 - 44032: 0x9AD7,
+ 49877 - 44032: 0x9AD8,
+ 49878 - 44032: 0x9AD9,
+ 49879 - 44032: 0x9ADA,
+ 49880 - 44032: 0x9ADB,
+ 49881 - 44032: 0x9ADC,
+ 49882 - 44032: 0x9ADD,
+ 49883 - 44032: 0x9ADE,
+ 49884 - 44032: 0xBDC3,
+ 49885 - 44032: 0xBDC4,
+ 49886 - 44032: 0x9ADF,
+ 49887 - 44032: 0x9AE0,
+ 49888 - 44032: 0xBDC5,
+ 49889 - 44032: 0x9AE1,
+ 49890 - 44032: 0x9AE2,
+ 49891 - 44032: 0xBDC6,
+ 49892 - 44032: 0xBDC7,
+ 49893 - 44032: 0x9AE3,
+ 49894 - 44032: 0x9AE4,
+ 49895 - 44032: 0x9AE5,
+ 49896 - 44032: 0x9AE6,
+ 49897 - 44032: 0x9AE7,
+ 49898 - 44032: 0x9AE8,
+ 49899 - 44032: 0xBDC8,
+ 49900 - 44032: 0xBDC9,
+ 49901 - 44032: 0xBDCA,
+ 49902 - 44032: 0x9AE9,
+ 49903 - 44032: 0xBDCB,
+ 49904 - 44032: 0x9AEA,
+ 49905 - 44032: 0xBDCC,
+ 49906 - 44032: 0x9AEB,
+ 49907 - 44032: 0x9AEC,
+ 49908 - 44032: 0x9AED,
+ 49909 - 44032: 0x9AEE,
+ 49910 - 44032: 0xBDCD,
+ 49911 - 44032: 0x9AEF,
+ 49912 - 44032: 0xBDCE,
+ 49913 - 44032: 0xBDCF,
+ 49914 - 44032: 0x9AF0,
+ 49915 - 44032: 0xBDD0,
+ 49916 - 44032: 0xBDD1,
+ 49917 - 44032: 0x9AF1,
+ 49918 - 44032: 0x9AF2,
+ 49919 - 44032: 0x9AF3,
+ 49920 - 44032: 0xBDD2,
+ 49921 - 44032: 0x9AF4,
+ 49922 - 44032: 0x9AF5,
+ 49923 - 44032: 0x9AF6,
+ 49924 - 44032: 0x9AF7,
+ 49925 - 44032: 0x9AF8,
+ 49926 - 44032: 0x9AF9,
+ 49927 - 44032: 0x9AFA,
+ 49928 - 44032: 0xBDD3,
+ 49929 - 44032: 0xBDD4,
+ 49930 - 44032: 0x9AFB,
+ 49931 - 44032: 0x9AFC,
+ 49932 - 44032: 0xBDD5,
+ 49933 - 44032: 0xBDD6,
+ 49934 - 44032: 0x9AFD,
+ 49935 - 44032: 0x9AFE,
+ 49936 - 44032: 0x9B41,
+ 49937 - 44032: 0x9B42,
+ 49938 - 44032: 0x9B43,
+ 49939 - 44032: 0xBDD7,
+ 49940 - 44032: 0xBDD8,
+ 49941 - 44032: 0xBDD9,
+ 49942 - 44032: 0x9B44,
+ 49943 - 44032: 0x9B45,
+ 49944 - 44032: 0xBDDA,
+ 49945 - 44032: 0x9B46,
+ 49946 - 44032: 0x9B47,
+ 49947 - 44032: 0x9B48,
+ 49948 - 44032: 0xBDDB,
+ 49949 - 44032: 0x9B49,
+ 49950 - 44032: 0x9B4A,
+ 49951 - 44032: 0x9B4B,
+ 49952 - 44032: 0x9B4C,
+ 49953 - 44032: 0x9B4D,
+ 49954 - 44032: 0x9B4E,
+ 49955 - 44032: 0x9B4F,
+ 49956 - 44032: 0xBDDC,
+ 49957 - 44032: 0xBDDD,
+ 49958 - 44032: 0x9B50,
+ 49959 - 44032: 0x9B51,
+ 49960 - 44032: 0xBDDE,
+ 49961 - 44032: 0xBDDF,
+ 49962 - 44032: 0x9B52,
+ 49963 - 44032: 0x9B53,
+ 49964 - 44032: 0x9B54,
+ 49965 - 44032: 0x9B55,
+ 49966 - 44032: 0x9B56,
+ 49967 - 44032: 0x9B57,
+ 49968 - 44032: 0x9B58,
+ 49969 - 44032: 0x9B59,
+ 49970 - 44032: 0x9B5A,
+ 49971 - 44032: 0x9B61,
+ 49972 - 44032: 0x9B62,
+ 49973 - 44032: 0x9B63,
+ 49974 - 44032: 0x9B64,
+ 49975 - 44032: 0x9B65,
+ 49976 - 44032: 0x9B66,
+ 49977 - 44032: 0x9B67,
+ 49978 - 44032: 0x9B68,
+ 49979 - 44032: 0x9B69,
+ 49980 - 44032: 0x9B6A,
+ 49981 - 44032: 0x9B6B,
+ 49982 - 44032: 0x9B6C,
+ 49983 - 44032: 0x9B6D,
+ 49984 - 44032: 0x9B6E,
+ 49985 - 44032: 0x9B6F,
+ 49986 - 44032: 0x9B70,
+ 49987 - 44032: 0x9B71,
+ 49988 - 44032: 0x9B72,
+ 49989 - 44032: 0xBDE0,
+ 49990 - 44032: 0x9B73,
+ 49991 - 44032: 0x9B74,
+ 49992 - 44032: 0x9B75,
+ 49993 - 44032: 0x9B76,
+ 49994 - 44032: 0x9B77,
+ 49995 - 44032: 0x9B78,
+ 49996 - 44032: 0x9B79,
+ 49997 - 44032: 0x9B7A,
+ 49998 - 44032: 0x9B81,
+ 49999 - 44032: 0x9B82,
+ 50000 - 44032: 0x9B83,
+ 50001 - 44032: 0x9B84,
+ 50002 - 44032: 0x9B85,
+ 50003 - 44032: 0x9B86,
+ 50004 - 44032: 0x9B87,
+ 50005 - 44032: 0x9B88,
+ 50006 - 44032: 0x9B89,
+ 50007 - 44032: 0x9B8A,
+ 50008 - 44032: 0x9B8B,
+ 50009 - 44032: 0x9B8C,
+ 50010 - 44032: 0x9B8D,
+ 50011 - 44032: 0x9B8E,
+ 50012 - 44032: 0x9B8F,
+ 50013 - 44032: 0x9B90,
+ 50014 - 44032: 0x9B91,
+ 50015 - 44032: 0x9B92,
+ 50016 - 44032: 0x9B93,
+ 50017 - 44032: 0x9B94,
+ 50018 - 44032: 0x9B95,
+ 50019 - 44032: 0x9B96,
+ 50020 - 44032: 0x9B97,
+ 50021 - 44032: 0x9B98,
+ 50022 - 44032: 0x9B99,
+ 50023 - 44032: 0x9B9A,
+ 50024 - 44032: 0xBDE1,
+ 50025 - 44032: 0xBDE2,
+ 50026 - 44032: 0x9B9B,
+ 50027 - 44032: 0x9B9C,
+ 50028 - 44032: 0xBDE3,
+ 50029 - 44032: 0x9B9D,
+ 50030 - 44032: 0x9B9E,
+ 50031 - 44032: 0x9B9F,
+ 50032 - 44032: 0xBDE4,
+ 50033 - 44032: 0x9BA0,
+ 50034 - 44032: 0xBDE5,
+ 50035 - 44032: 0x9BA1,
+ 50036 - 44032: 0x9BA2,
+ 50037 - 44032: 0x9BA3,
+ 50038 - 44032: 0x9BA4,
+ 50039 - 44032: 0x9BA5,
+ 50040 - 44032: 0xBDE6,
+ 50041 - 44032: 0xBDE7,
+ 50042 - 44032: 0x9BA6,
+ 50043 - 44032: 0x9BA7,
+ 50044 - 44032: 0xBDE8,
+ 50045 - 44032: 0xBDE9,
+ 50046 - 44032: 0x9BA8,
+ 50047 - 44032: 0x9BA9,
+ 50048 - 44032: 0x9BAA,
+ 50049 - 44032: 0x9BAB,
+ 50050 - 44032: 0x9BAC,
+ 50051 - 44032: 0x9BAD,
+ 50052 - 44032: 0xBDEA,
+ 50053 - 44032: 0x9BAE,
+ 50054 - 44032: 0x9BAF,
+ 50055 - 44032: 0x9BB0,
+ 50056 - 44032: 0xBDEB,
+ 50057 - 44032: 0x9BB1,
+ 50058 - 44032: 0x9BB2,
+ 50059 - 44032: 0x9BB3,
+ 50060 - 44032: 0xBDEC,
+ 50061 - 44032: 0x9BB4,
+ 50062 - 44032: 0x9BB5,
+ 50063 - 44032: 0x9BB6,
+ 50064 - 44032: 0x9BB7,
+ 50065 - 44032: 0x9BB8,
+ 50066 - 44032: 0x9BB9,
+ 50067 - 44032: 0x9BBA,
+ 50068 - 44032: 0x9BBB,
+ 50069 - 44032: 0x9BBC,
+ 50070 - 44032: 0x9BBD,
+ 50071 - 44032: 0x9BBE,
+ 50072 - 44032: 0x9BBF,
+ 50073 - 44032: 0x9BC0,
+ 50074 - 44032: 0x9BC1,
+ 50075 - 44032: 0x9BC2,
+ 50076 - 44032: 0x9BC3,
+ 50077 - 44032: 0x9BC4,
+ 50078 - 44032: 0x9BC5,
+ 50079 - 44032: 0x9BC6,
+ 50080 - 44032: 0x9BC7,
+ 50081 - 44032: 0x9BC8,
+ 50082 - 44032: 0x9BC9,
+ 50083 - 44032: 0x9BCA,
+ 50084 - 44032: 0x9BCB,
+ 50085 - 44032: 0x9BCC,
+ 50086 - 44032: 0x9BCD,
+ 50087 - 44032: 0x9BCE,
+ 50088 - 44032: 0x9BCF,
+ 50089 - 44032: 0x9BD0,
+ 50090 - 44032: 0x9BD1,
+ 50091 - 44032: 0x9BD2,
+ 50092 - 44032: 0x9BD3,
+ 50093 - 44032: 0x9BD4,
+ 50094 - 44032: 0x9BD5,
+ 50095 - 44032: 0x9BD6,
+ 50096 - 44032: 0x9BD7,
+ 50097 - 44032: 0x9BD8,
+ 50098 - 44032: 0x9BD9,
+ 50099 - 44032: 0x9BDA,
+ 50100 - 44032: 0x9BDB,
+ 50101 - 44032: 0x9BDC,
+ 50102 - 44032: 0x9BDD,
+ 50103 - 44032: 0x9BDE,
+ 50104 - 44032: 0x9BDF,
+ 50105 - 44032: 0x9BE0,
+ 50106 - 44032: 0x9BE1,
+ 50107 - 44032: 0x9BE2,
+ 50108 - 44032: 0x9BE3,
+ 50109 - 44032: 0x9BE4,
+ 50110 - 44032: 0x9BE5,
+ 50111 - 44032: 0x9BE6,
+ 50112 - 44032: 0xBDED,
+ 50113 - 44032: 0x9BE7,
+ 50114 - 44032: 0x9BE8,
+ 50115 - 44032: 0x9BE9,
+ 50116 - 44032: 0x9BEA,
+ 50117 - 44032: 0x9BEB,
+ 50118 - 44032: 0x9BEC,
+ 50119 - 44032: 0x9BED,
+ 50120 - 44032: 0x9BEE,
+ 50121 - 44032: 0x9BEF,
+ 50122 - 44032: 0x9BF0,
+ 50123 - 44032: 0x9BF1,
+ 50124 - 44032: 0x9BF2,
+ 50125 - 44032: 0x9BF3,
+ 50126 - 44032: 0x9BF4,
+ 50127 - 44032: 0x9BF5,
+ 50128 - 44032: 0x9BF6,
+ 50129 - 44032: 0x9BF7,
+ 50130 - 44032: 0x9BF8,
+ 50131 - 44032: 0x9BF9,
+ 50132 - 44032: 0x9BFA,
+ 50133 - 44032: 0x9BFB,
+ 50134 - 44032: 0x9BFC,
+ 50135 - 44032: 0x9BFD,
+ 50136 - 44032: 0xBDEE,
+ 50137 - 44032: 0xBDEF,
+ 50138 - 44032: 0x9BFE,
+ 50139 - 44032: 0x9C41,
+ 50140 - 44032: 0xBDF0,
+ 50141 - 44032: 0x9C42,
+ 50142 - 44032: 0x9C43,
+ 50143 - 44032: 0xBDF1,
+ 50144 - 44032: 0xBDF2,
+ 50145 - 44032: 0x9C44,
+ 50146 - 44032: 0xBDF3,
+ 50147 - 44032: 0x9C45,
+ 50148 - 44032: 0x9C46,
+ 50149 - 44032: 0x9C47,
+ 50150 - 44032: 0x9C48,
+ 50151 - 44032: 0x9C49,
+ 50152 - 44032: 0xBDF4,
+ 50153 - 44032: 0xBDF5,
+ 50154 - 44032: 0x9C4A,
+ 50155 - 44032: 0x9C4B,
+ 50156 - 44032: 0x9C4C,
+ 50157 - 44032: 0xBDF6,
+ 50158 - 44032: 0x9C4D,
+ 50159 - 44032: 0x9C4E,
+ 50160 - 44032: 0x9C4F,
+ 50161 - 44032: 0x9C50,
+ 50162 - 44032: 0x9C51,
+ 50163 - 44032: 0x9C52,
+ 50164 - 44032: 0xBDF7,
+ 50165 - 44032: 0xBDF8,
+ 50166 - 44032: 0x9C53,
+ 50167 - 44032: 0x9C54,
+ 50168 - 44032: 0xBDF9,
+ 50169 - 44032: 0x9C55,
+ 50170 - 44032: 0x9C56,
+ 50171 - 44032: 0x9C57,
+ 50172 - 44032: 0x9C58,
+ 50173 - 44032: 0x9C59,
+ 50174 - 44032: 0x9C5A,
+ 50175 - 44032: 0x9C61,
+ 50176 - 44032: 0x9C62,
+ 50177 - 44032: 0x9C63,
+ 50178 - 44032: 0x9C64,
+ 50179 - 44032: 0x9C65,
+ 50180 - 44032: 0x9C66,
+ 50181 - 44032: 0x9C67,
+ 50182 - 44032: 0x9C68,
+ 50183 - 44032: 0x9C69,
+ 50184 - 44032: 0xBDFA,
+ 50185 - 44032: 0x9C6A,
+ 50186 - 44032: 0x9C6B,
+ 50187 - 44032: 0x9C6C,
+ 50188 - 44032: 0x9C6D,
+ 50189 - 44032: 0x9C6E,
+ 50190 - 44032: 0x9C6F,
+ 50191 - 44032: 0x9C70,
+ 50192 - 44032: 0xBDFB,
+ 50193 - 44032: 0x9C71,
+ 50194 - 44032: 0x9C72,
+ 50195 - 44032: 0x9C73,
+ 50196 - 44032: 0x9C74,
+ 50197 - 44032: 0x9C75,
+ 50198 - 44032: 0x9C76,
+ 50199 - 44032: 0x9C77,
+ 50200 - 44032: 0x9C78,
+ 50201 - 44032: 0x9C79,
+ 50202 - 44032: 0x9C7A,
+ 50203 - 44032: 0x9C81,
+ 50204 - 44032: 0x9C82,
+ 50205 - 44032: 0x9C83,
+ 50206 - 44032: 0x9C84,
+ 50207 - 44032: 0x9C85,
+ 50208 - 44032: 0x9C86,
+ 50209 - 44032: 0x9C87,
+ 50210 - 44032: 0x9C88,
+ 50211 - 44032: 0x9C89,
+ 50212 - 44032: 0xBDFC,
+ 50213 - 44032: 0x9C8A,
+ 50214 - 44032: 0x9C8B,
+ 50215 - 44032: 0x9C8C,
+ 50216 - 44032: 0x9C8D,
+ 50217 - 44032: 0x9C8E,
+ 50218 - 44032: 0x9C8F,
+ 50219 - 44032: 0x9C90,
+ 50220 - 44032: 0xBDFD,
+ 50221 - 44032: 0x9C91,
+ 50222 - 44032: 0x9C92,
+ 50223 - 44032: 0x9C93,
+ 50224 - 44032: 0xBDFE,
+ 50225 - 44032: 0x9C94,
+ 50226 - 44032: 0x9C95,
+ 50227 - 44032: 0x9C96,
+ 50228 - 44032: 0xBEA1,
+ 50229 - 44032: 0x9C97,
+ 50230 - 44032: 0x9C98,
+ 50231 - 44032: 0x9C99,
+ 50232 - 44032: 0x9C9A,
+ 50233 - 44032: 0x9C9B,
+ 50234 - 44032: 0x9C9C,
+ 50235 - 44032: 0x9C9D,
+ 50236 - 44032: 0xBEA2,
+ 50237 - 44032: 0xBEA3,
+ 50238 - 44032: 0x9C9E,
+ 50239 - 44032: 0x9C9F,
+ 50240 - 44032: 0x9CA0,
+ 50241 - 44032: 0x9CA1,
+ 50242 - 44032: 0x9CA2,
+ 50243 - 44032: 0x9CA3,
+ 50244 - 44032: 0x9CA4,
+ 50245 - 44032: 0x9CA5,
+ 50246 - 44032: 0x9CA6,
+ 50247 - 44032: 0x9CA7,
+ 50248 - 44032: 0xBEA4,
+ 50249 - 44032: 0x9CA8,
+ 50250 - 44032: 0x9CA9,
+ 50251 - 44032: 0x9CAA,
+ 50252 - 44032: 0x9CAB,
+ 50253 - 44032: 0x9CAC,
+ 50254 - 44032: 0x9CAD,
+ 50255 - 44032: 0x9CAE,
+ 50256 - 44032: 0x9CAF,
+ 50257 - 44032: 0x9CB0,
+ 50258 - 44032: 0x9CB1,
+ 50259 - 44032: 0x9CB2,
+ 50260 - 44032: 0x9CB3,
+ 50261 - 44032: 0x9CB4,
+ 50262 - 44032: 0x9CB5,
+ 50263 - 44032: 0x9CB6,
+ 50264 - 44032: 0x9CB7,
+ 50265 - 44032: 0x9CB8,
+ 50266 - 44032: 0x9CB9,
+ 50267 - 44032: 0x9CBA,
+ 50268 - 44032: 0x9CBB,
+ 50269 - 44032: 0x9CBC,
+ 50270 - 44032: 0x9CBD,
+ 50271 - 44032: 0x9CBE,
+ 50272 - 44032: 0x9CBF,
+ 50273 - 44032: 0x9CC0,
+ 50274 - 44032: 0x9CC1,
+ 50275 - 44032: 0x9CC2,
+ 50276 - 44032: 0xBEA5,
+ 50277 - 44032: 0xBEA6,
+ 50278 - 44032: 0x9CC3,
+ 50279 - 44032: 0x9CC4,
+ 50280 - 44032: 0xBEA7,
+ 50281 - 44032: 0x9CC5,
+ 50282 - 44032: 0x9CC6,
+ 50283 - 44032: 0x9CC7,
+ 50284 - 44032: 0xBEA8,
+ 50285 - 44032: 0x9CC8,
+ 50286 - 44032: 0x9CC9,
+ 50287 - 44032: 0x9CCA,
+ 50288 - 44032: 0x9CCB,
+ 50289 - 44032: 0x9CCC,
+ 50290 - 44032: 0x9CCD,
+ 50291 - 44032: 0x9CCE,
+ 50292 - 44032: 0xBEA9,
+ 50293 - 44032: 0xBEAA,
+ 50294 - 44032: 0x9CCF,
+ 50295 - 44032: 0x9CD0,
+ 50296 - 44032: 0x9CD1,
+ 50297 - 44032: 0xBEAB,
+ 50298 - 44032: 0x9CD2,
+ 50299 - 44032: 0x9CD3,
+ 50300 - 44032: 0x9CD4,
+ 50301 - 44032: 0x9CD5,
+ 50302 - 44032: 0x9CD6,
+ 50303 - 44032: 0x9CD7,
+ 50304 - 44032: 0xBEAC,
+ 50305 - 44032: 0x9CD8,
+ 50306 - 44032: 0x9CD9,
+ 50307 - 44032: 0x9CDA,
+ 50308 - 44032: 0x9CDB,
+ 50309 - 44032: 0x9CDC,
+ 50310 - 44032: 0x9CDD,
+ 50311 - 44032: 0x9CDE,
+ 50312 - 44032: 0x9CDF,
+ 50313 - 44032: 0x9CE0,
+ 50314 - 44032: 0x9CE1,
+ 50315 - 44032: 0x9CE2,
+ 50316 - 44032: 0x9CE3,
+ 50317 - 44032: 0x9CE4,
+ 50318 - 44032: 0x9CE5,
+ 50319 - 44032: 0x9CE6,
+ 50320 - 44032: 0x9CE7,
+ 50321 - 44032: 0x9CE8,
+ 50322 - 44032: 0x9CE9,
+ 50323 - 44032: 0x9CEA,
+ 50324 - 44032: 0xBEAD,
+ 50325 - 44032: 0x9CEB,
+ 50326 - 44032: 0x9CEC,
+ 50327 - 44032: 0x9CED,
+ 50328 - 44032: 0x9CEE,
+ 50329 - 44032: 0x9CEF,
+ 50330 - 44032: 0x9CF0,
+ 50331 - 44032: 0x9CF1,
+ 50332 - 44032: 0xBEAE,
+ 50333 - 44032: 0x9CF2,
+ 50334 - 44032: 0x9CF3,
+ 50335 - 44032: 0x9CF4,
+ 50336 - 44032: 0x9CF5,
+ 50337 - 44032: 0x9CF6,
+ 50338 - 44032: 0x9CF7,
+ 50339 - 44032: 0x9CF8,
+ 50340 - 44032: 0x9CF9,
+ 50341 - 44032: 0x9CFA,
+ 50342 - 44032: 0x9CFB,
+ 50343 - 44032: 0x9CFC,
+ 50344 - 44032: 0x9CFD,
+ 50345 - 44032: 0x9CFE,
+ 50346 - 44032: 0x9D41,
+ 50347 - 44032: 0x9D42,
+ 50348 - 44032: 0x9D43,
+ 50349 - 44032: 0x9D44,
+ 50350 - 44032: 0x9D45,
+ 50351 - 44032: 0x9D46,
+ 50352 - 44032: 0x9D47,
+ 50353 - 44032: 0x9D48,
+ 50354 - 44032: 0x9D49,
+ 50355 - 44032: 0x9D4A,
+ 50356 - 44032: 0x9D4B,
+ 50357 - 44032: 0x9D4C,
+ 50358 - 44032: 0x9D4D,
+ 50359 - 44032: 0x9D4E,
+ 50360 - 44032: 0xBEAF,
+ 50361 - 44032: 0x9D4F,
+ 50362 - 44032: 0x9D50,
+ 50363 - 44032: 0x9D51,
+ 50364 - 44032: 0xBEB0,
+ 50365 - 44032: 0x9D52,
+ 50366 - 44032: 0x9D53,
+ 50367 - 44032: 0x9D54,
+ 50368 - 44032: 0x9D55,
+ 50369 - 44032: 0x9D56,
+ 50370 - 44032: 0x9D57,
+ 50371 - 44032: 0x9D58,
+ 50372 - 44032: 0x9D59,
+ 50373 - 44032: 0x9D5A,
+ 50374 - 44032: 0x9D61,
+ 50375 - 44032: 0x9D62,
+ 50376 - 44032: 0x9D63,
+ 50377 - 44032: 0x9D64,
+ 50378 - 44032: 0x9D65,
+ 50379 - 44032: 0x9D66,
+ 50380 - 44032: 0x9D67,
+ 50381 - 44032: 0x9D68,
+ 50382 - 44032: 0x9D69,
+ 50383 - 44032: 0x9D6A,
+ 50384 - 44032: 0x9D6B,
+ 50385 - 44032: 0x9D6C,
+ 50386 - 44032: 0x9D6D,
+ 50387 - 44032: 0x9D6E,
+ 50388 - 44032: 0x9D6F,
+ 50389 - 44032: 0x9D70,
+ 50390 - 44032: 0x9D71,
+ 50391 - 44032: 0x9D72,
+ 50392 - 44032: 0x9D73,
+ 50393 - 44032: 0x9D74,
+ 50394 - 44032: 0x9D75,
+ 50395 - 44032: 0x9D76,
+ 50396 - 44032: 0x9D77,
+ 50397 - 44032: 0x9D78,
+ 50398 - 44032: 0x9D79,
+ 50399 - 44032: 0x9D7A,
+ 50400 - 44032: 0x9D81,
+ 50401 - 44032: 0x9D82,
+ 50402 - 44032: 0x9D83,
+ 50403 - 44032: 0x9D84,
+ 50404 - 44032: 0x9D85,
+ 50405 - 44032: 0x9D86,
+ 50406 - 44032: 0x9D87,
+ 50407 - 44032: 0x9D88,
+ 50408 - 44032: 0x9D89,
+ 50409 - 44032: 0xBEB1,
+ 50410 - 44032: 0x9D8A,
+ 50411 - 44032: 0x9D8B,
+ 50412 - 44032: 0x9D8C,
+ 50413 - 44032: 0x9D8D,
+ 50414 - 44032: 0x9D8E,
+ 50415 - 44032: 0x9D8F,
+ 50416 - 44032: 0xBEB2,
+ 50417 - 44032: 0xBEB3,
+ 50418 - 44032: 0x9D90,
+ 50419 - 44032: 0x9D91,
+ 50420 - 44032: 0xBEB4,
+ 50421 - 44032: 0x9D92,
+ 50422 - 44032: 0x9D93,
+ 50423 - 44032: 0x9D94,
+ 50424 - 44032: 0xBEB5,
+ 50425 - 44032: 0x9D95,
+ 50426 - 44032: 0xBEB6,
+ 50427 - 44032: 0x9D96,
+ 50428 - 44032: 0x9D97,
+ 50429 - 44032: 0x9D98,
+ 50430 - 44032: 0x9D99,
+ 50431 - 44032: 0xBEB7,
+ 50432 - 44032: 0xBEB8,
+ 50433 - 44032: 0xBEB9,
+ 50434 - 44032: 0x9D9A,
+ 50435 - 44032: 0x9D9B,
+ 50436 - 44032: 0x9D9C,
+ 50437 - 44032: 0x9D9D,
+ 50438 - 44032: 0x9D9E,
+ 50439 - 44032: 0x9D9F,
+ 50440 - 44032: 0x9DA0,
+ 50441 - 44032: 0x9DA1,
+ 50442 - 44032: 0x9DA2,
+ 50443 - 44032: 0x9DA3,
+ 50444 - 44032: 0xBEBA,
+ 50445 - 44032: 0x9DA4,
+ 50446 - 44032: 0x9DA5,
+ 50447 - 44032: 0x9DA6,
+ 50448 - 44032: 0xBEBB,
+ 50449 - 44032: 0x9DA7,
+ 50450 - 44032: 0x9DA8,
+ 50451 - 44032: 0x9DA9,
+ 50452 - 44032: 0xBEBC,
+ 50453 - 44032: 0x9DAA,
+ 50454 - 44032: 0x9DAB,
+ 50455 - 44032: 0x9DAC,
+ 50456 - 44032: 0x9DAD,
+ 50457 - 44032: 0x9DAE,
+ 50458 - 44032: 0x9DAF,
+ 50459 - 44032: 0x9DB0,
+ 50460 - 44032: 0xBEBD,
+ 50461 - 44032: 0x9DB1,
+ 50462 - 44032: 0x9DB2,
+ 50463 - 44032: 0x9DB3,
+ 50464 - 44032: 0x9DB4,
+ 50465 - 44032: 0x9DB5,
+ 50466 - 44032: 0x9DB6,
+ 50467 - 44032: 0x9DB7,
+ 50468 - 44032: 0x9DB8,
+ 50469 - 44032: 0x9DB9,
+ 50470 - 44032: 0x9DBA,
+ 50471 - 44032: 0x9DBB,
+ 50472 - 44032: 0xBEBE,
+ 50473 - 44032: 0xBEBF,
+ 50474 - 44032: 0x9DBC,
+ 50475 - 44032: 0x9DBD,
+ 50476 - 44032: 0xBEC0,
+ 50477 - 44032: 0x9DBE,
+ 50478 - 44032: 0x9DBF,
+ 50479 - 44032: 0x9DC0,
+ 50480 - 44032: 0xBEC1,
+ 50481 - 44032: 0x9DC1,
+ 50482 - 44032: 0x9DC2,
+ 50483 - 44032: 0x9DC3,
+ 50484 - 44032: 0x9DC4,
+ 50485 - 44032: 0x9DC5,
+ 50486 - 44032: 0x9DC6,
+ 50487 - 44032: 0x9DC7,
+ 50488 - 44032: 0xBEC2,
+ 50489 - 44032: 0xBEC3,
+ 50490 - 44032: 0x9DC8,
+ 50491 - 44032: 0xBEC4,
+ 50492 - 44032: 0x9DC9,
+ 50493 - 44032: 0xBEC5,
+ 50494 - 44032: 0x9DCA,
+ 50495 - 44032: 0x9DCB,
+ 50496 - 44032: 0x9DCC,
+ 50497 - 44032: 0x9DCD,
+ 50498 - 44032: 0x9DCE,
+ 50499 - 44032: 0x9DCF,
+ 50500 - 44032: 0xBEC6,
+ 50501 - 44032: 0xBEC7,
+ 50502 - 44032: 0x9DD0,
+ 50503 - 44032: 0x9DD1,
+ 50504 - 44032: 0xBEC8,
+ 50505 - 44032: 0xBEC9,
+ 50506 - 44032: 0xBECA,
+ 50507 - 44032: 0x9DD2,
+ 50508 - 44032: 0xBECB,
+ 50509 - 44032: 0xBECC,
+ 50510 - 44032: 0xBECD,
+ 50511 - 44032: 0x9DD3,
+ 50512 - 44032: 0x9DD4,
+ 50513 - 44032: 0x9DD5,
+ 50514 - 44032: 0x9DD6,
+ 50515 - 44032: 0xBECE,
+ 50516 - 44032: 0xBECF,
+ 50517 - 44032: 0xBED0,
+ 50518 - 44032: 0x9DD7,
+ 50519 - 44032: 0xBED1,
+ 50520 - 44032: 0xBED2,
+ 50521 - 44032: 0xBED3,
+ 50522 - 44032: 0x9DD8,
+ 50523 - 44032: 0x9DD9,
+ 50524 - 44032: 0x9DDA,
+ 50525 - 44032: 0xBED4,
+ 50526 - 44032: 0xBED5,
+ 50527 - 44032: 0x9DDB,
+ 50528 - 44032: 0xBED6,
+ 50529 - 44032: 0xBED7,
+ 50530 - 44032: 0x9DDC,
+ 50531 - 44032: 0x9DDD,
+ 50532 - 44032: 0xBED8,
+ 50533 - 44032: 0x9DDE,
+ 50534 - 44032: 0x9DDF,
+ 50535 - 44032: 0x9DE0,
+ 50536 - 44032: 0xBED9,
+ 50537 - 44032: 0x9DE1,
+ 50538 - 44032: 0x9DE2,
+ 50539 - 44032: 0x9DE3,
+ 50540 - 44032: 0x9DE4,
+ 50541 - 44032: 0x9DE5,
+ 50542 - 44032: 0x9DE6,
+ 50543 - 44032: 0x9DE7,
+ 50544 - 44032: 0xBEDA,
+ 50545 - 44032: 0xBEDB,
+ 50546 - 44032: 0x9DE8,
+ 50547 - 44032: 0xBEDC,
+ 50548 - 44032: 0xBEDD,
+ 50549 - 44032: 0xBEDE,
+ 50550 - 44032: 0x9DE9,
+ 50551 - 44032: 0x9DEA,
+ 50552 - 44032: 0x9DEB,
+ 50553 - 44032: 0x9DEC,
+ 50554 - 44032: 0x9DED,
+ 50555 - 44032: 0x9DEE,
+ 50556 - 44032: 0xBEDF,
+ 50557 - 44032: 0xBEE0,
+ 50558 - 44032: 0x9DEF,
+ 50559 - 44032: 0x9DF0,
+ 50560 - 44032: 0xBEE1,
+ 50561 - 44032: 0x9DF1,
+ 50562 - 44032: 0x9DF2,
+ 50563 - 44032: 0x9DF3,
+ 50564 - 44032: 0xBEE2,
+ 50565 - 44032: 0x9DF4,
+ 50566 - 44032: 0x9DF5,
+ 50567 - 44032: 0xBEE3,
+ 50568 - 44032: 0x9DF6,
+ 50569 - 44032: 0x9DF7,
+ 50570 - 44032: 0x9DF8,
+ 50571 - 44032: 0x9DF9,
+ 50572 - 44032: 0xBEE4,
+ 50573 - 44032: 0xBEE5,
+ 50574 - 44032: 0x9DFA,
+ 50575 - 44032: 0xBEE6,
+ 50576 - 44032: 0x9DFB,
+ 50577 - 44032: 0xBEE7,
+ 50578 - 44032: 0x9DFC,
+ 50579 - 44032: 0x9DFD,
+ 50580 - 44032: 0x9DFE,
+ 50581 - 44032: 0xBEE8,
+ 50582 - 44032: 0x9E41,
+ 50583 - 44032: 0xBEE9,
+ 50584 - 44032: 0xBEEA,
+ 50585 - 44032: 0x9E42,
+ 50586 - 44032: 0x9E43,
+ 50587 - 44032: 0x9E44,
+ 50588 - 44032: 0xBEEB,
+ 50589 - 44032: 0x9E45,
+ 50590 - 44032: 0x9E46,
+ 50591 - 44032: 0x9E47,
+ 50592 - 44032: 0xBEEC,
+ 50593 - 44032: 0x9E48,
+ 50594 - 44032: 0x9E49,
+ 50595 - 44032: 0x9E4A,
+ 50596 - 44032: 0x9E4B,
+ 50597 - 44032: 0x9E4C,
+ 50598 - 44032: 0x9E4D,
+ 50599 - 44032: 0x9E4E,
+ 50600 - 44032: 0x9E4F,
+ 50601 - 44032: 0xBEED,
+ 50602 - 44032: 0x9E50,
+ 50603 - 44032: 0x9E51,
+ 50604 - 44032: 0x9E52,
+ 50605 - 44032: 0x9E53,
+ 50606 - 44032: 0x9E54,
+ 50607 - 44032: 0x9E55,
+ 50608 - 44032: 0x9E56,
+ 50609 - 44032: 0x9E57,
+ 50610 - 44032: 0x9E58,
+ 50611 - 44032: 0x9E59,
+ 50612 - 44032: 0xBEEE,
+ 50613 - 44032: 0xBEEF,
+ 50614 - 44032: 0x9E5A,
+ 50615 - 44032: 0x9E61,
+ 50616 - 44032: 0xBEF0,
+ 50617 - 44032: 0xBEF1,
+ 50618 - 44032: 0x9E62,
+ 50619 - 44032: 0xBEF2,
+ 50620 - 44032: 0xBEF3,
+ 50621 - 44032: 0xBEF4,
+ 50622 - 44032: 0xBEF5,
+ 50623 - 44032: 0x9E63,
+ 50624 - 44032: 0x9E64,
+ 50625 - 44032: 0x9E65,
+ 50626 - 44032: 0x9E66,
+ 50627 - 44032: 0x9E67,
+ 50628 - 44032: 0xBEF6,
+ 50629 - 44032: 0xBEF7,
+ 50630 - 44032: 0xBEF8,
+ 50631 - 44032: 0xBEF9,
+ 50632 - 44032: 0xBEFA,
+ 50633 - 44032: 0xBEFB,
+ 50634 - 44032: 0xBEFC,
+ 50635 - 44032: 0x9E68,
+ 50636 - 44032: 0xBEFD,
+ 50637 - 44032: 0x9E69,
+ 50638 - 44032: 0xBEFE,
+ 50639 - 44032: 0x9E6A,
+ 50640 - 44032: 0xBFA1,
+ 50641 - 44032: 0xBFA2,
+ 50642 - 44032: 0x9E6B,
+ 50643 - 44032: 0x9E6C,
+ 50644 - 44032: 0xBFA3,
+ 50645 - 44032: 0x9E6D,
+ 50646 - 44032: 0x9E6E,
+ 50647 - 44032: 0x9E6F,
+ 50648 - 44032: 0xBFA4,
+ 50649 - 44032: 0x9E70,
+ 50650 - 44032: 0x9E71,
+ 50651 - 44032: 0x9E72,
+ 50652 - 44032: 0x9E73,
+ 50653 - 44032: 0x9E74,
+ 50654 - 44032: 0x9E75,
+ 50655 - 44032: 0x9E76,
+ 50656 - 44032: 0xBFA5,
+ 50657 - 44032: 0xBFA6,
+ 50658 - 44032: 0x9E77,
+ 50659 - 44032: 0xBFA7,
+ 50660 - 44032: 0x9E78,
+ 50661 - 44032: 0xBFA8,
+ 50662 - 44032: 0x9E79,
+ 50663 - 44032: 0x9E7A,
+ 50664 - 44032: 0x9E81,
+ 50665 - 44032: 0x9E82,
+ 50666 - 44032: 0x9E83,
+ 50667 - 44032: 0x9E84,
+ 50668 - 44032: 0xBFA9,
+ 50669 - 44032: 0xBFAA,
+ 50670 - 44032: 0xBFAB,
+ 50671 - 44032: 0x9E85,
+ 50672 - 44032: 0xBFAC,
+ 50673 - 44032: 0x9E86,
+ 50674 - 44032: 0x9E87,
+ 50675 - 44032: 0x9E88,
+ 50676 - 44032: 0xBFAD,
+ 50677 - 44032: 0x9E89,
+ 50678 - 44032: 0xBFAE,
+ 50679 - 44032: 0xBFAF,
+ 50680 - 44032: 0x9E8A,
+ 50681 - 44032: 0x9E8B,
+ 50682 - 44032: 0x9E8C,
+ 50683 - 44032: 0x9E8D,
+ 50684 - 44032: 0xBFB0,
+ 50685 - 44032: 0xBFB1,
+ 50686 - 44032: 0xBFB2,
+ 50687 - 44032: 0xBFB3,
+ 50688 - 44032: 0xBFB4,
+ 50689 - 44032: 0xBFB5,
+ 50690 - 44032: 0x9E8E,
+ 50691 - 44032: 0x9E8F,
+ 50692 - 44032: 0x9E90,
+ 50693 - 44032: 0xBFB6,
+ 50694 - 44032: 0xBFB7,
+ 50695 - 44032: 0xBFB8,
+ 50696 - 44032: 0xBFB9,
+ 50697 - 44032: 0x9E91,
+ 50698 - 44032: 0x9E92,
+ 50699 - 44032: 0x9E93,
+ 50700 - 44032: 0xBFBA,
+ 50701 - 44032: 0x9E94,
+ 50702 - 44032: 0x9E95,
+ 50703 - 44032: 0x9E96,
+ 50704 - 44032: 0xBFBB,
+ 50705 - 44032: 0x9E97,
+ 50706 - 44032: 0x9E98,
+ 50707 - 44032: 0x9E99,
+ 50708 - 44032: 0x9E9A,
+ 50709 - 44032: 0x9E9B,
+ 50710 - 44032: 0x9E9C,
+ 50711 - 44032: 0x9E9D,
+ 50712 - 44032: 0xBFBC,
+ 50713 - 44032: 0xBFBD,
+ 50714 - 44032: 0x9E9E,
+ 50715 - 44032: 0xBFBE,
+ 50716 - 44032: 0xBFBF,
+ 50717 - 44032: 0x9E9F,
+ 50718 - 44032: 0x9EA0,
+ 50719 - 44032: 0x9EA1,
+ 50720 - 44032: 0x9EA2,
+ 50721 - 44032: 0x9EA3,
+ 50722 - 44032: 0x9EA4,
+ 50723 - 44032: 0x9EA5,
+ 50724 - 44032: 0xBFC0,
+ 50725 - 44032: 0xBFC1,
+ 50726 - 44032: 0x9EA6,
+ 50727 - 44032: 0x9EA7,
+ 50728 - 44032: 0xBFC2,
+ 50729 - 44032: 0x9EA8,
+ 50730 - 44032: 0x9EA9,
+ 50731 - 44032: 0x9EAA,
+ 50732 - 44032: 0xBFC3,
+ 50733 - 44032: 0xBFC4,
+ 50734 - 44032: 0xBFC5,
+ 50735 - 44032: 0x9EAB,
+ 50736 - 44032: 0xBFC6,
+ 50737 - 44032: 0x9EAC,
+ 50738 - 44032: 0x9EAD,
+ 50739 - 44032: 0xBFC7,
+ 50740 - 44032: 0xBFC8,
+ 50741 - 44032: 0xBFC9,
+ 50742 - 44032: 0x9EAE,
+ 50743 - 44032: 0xBFCA,
+ 50744 - 44032: 0x9EAF,
+ 50745 - 44032: 0xBFCB,
+ 50746 - 44032: 0x9EB0,
+ 50747 - 44032: 0xBFCC,
+ 50748 - 44032: 0x9EB1,
+ 50749 - 44032: 0x9EB2,
+ 50750 - 44032: 0x9EB3,
+ 50751 - 44032: 0x9EB4,
+ 50752 - 44032: 0xBFCD,
+ 50753 - 44032: 0xBFCE,
+ 50754 - 44032: 0x9EB5,
+ 50755 - 44032: 0x9EB6,
+ 50756 - 44032: 0xBFCF,
+ 50757 - 44032: 0x9EB7,
+ 50758 - 44032: 0x9EB8,
+ 50759 - 44032: 0x9EB9,
+ 50760 - 44032: 0xBFD0,
+ 50761 - 44032: 0x9EBA,
+ 50762 - 44032: 0x9EBB,
+ 50763 - 44032: 0x9EBC,
+ 50764 - 44032: 0x9EBD,
+ 50765 - 44032: 0x9EBE,
+ 50766 - 44032: 0x9EBF,
+ 50767 - 44032: 0x9EC0,
+ 50768 - 44032: 0xBFD1,
+ 50769 - 44032: 0xBFD2,
+ 50770 - 44032: 0x9EC1,
+ 50771 - 44032: 0xBFD3,
+ 50772 - 44032: 0xBFD4,
+ 50773 - 44032: 0xBFD5,
+ 50774 - 44032: 0x9EC2,
+ 50775 - 44032: 0x9EC3,
+ 50776 - 44032: 0x9EC4,
+ 50777 - 44032: 0x9EC5,
+ 50778 - 44032: 0x9EC6,
+ 50779 - 44032: 0x9EC7,
+ 50780 - 44032: 0xBFD6,
+ 50781 - 44032: 0xBFD7,
+ 50782 - 44032: 0x9EC8,
+ 50783 - 44032: 0x9EC9,
+ 50784 - 44032: 0xBFD8,
+ 50785 - 44032: 0x9ECA,
+ 50786 - 44032: 0x9ECB,
+ 50787 - 44032: 0x9ECC,
+ 50788 - 44032: 0x9ECD,
+ 50789 - 44032: 0x9ECE,
+ 50790 - 44032: 0x9ECF,
+ 50791 - 44032: 0x9ED0,
+ 50792 - 44032: 0x9ED1,
+ 50793 - 44032: 0x9ED2,
+ 50794 - 44032: 0x9ED3,
+ 50795 - 44032: 0x9ED4,
+ 50796 - 44032: 0xBFD9,
+ 50797 - 44032: 0x9ED5,
+ 50798 - 44032: 0x9ED6,
+ 50799 - 44032: 0xBFDA,
+ 50800 - 44032: 0x9ED7,
+ 50801 - 44032: 0xBFDB,
+ 50802 - 44032: 0x9ED8,
+ 50803 - 44032: 0x9ED9,
+ 50804 - 44032: 0x9EDA,
+ 50805 - 44032: 0x9EDB,
+ 50806 - 44032: 0x9EDC,
+ 50807 - 44032: 0x9EDD,
+ 50808 - 44032: 0xBFDC,
+ 50809 - 44032: 0xBFDD,
+ 50810 - 44032: 0x9EDE,
+ 50811 - 44032: 0x9EDF,
+ 50812 - 44032: 0xBFDE,
+ 50813 - 44032: 0x9EE0,
+ 50814 - 44032: 0x9EE1,
+ 50815 - 44032: 0x9EE2,
+ 50816 - 44032: 0xBFDF,
+ 50817 - 44032: 0x9EE3,
+ 50818 - 44032: 0x9EE4,
+ 50819 - 44032: 0x9EE5,
+ 50820 - 44032: 0x9EE6,
+ 50821 - 44032: 0x9EE7,
+ 50822 - 44032: 0x9EE8,
+ 50823 - 44032: 0x9EE9,
+ 50824 - 44032: 0xBFE0,
+ 50825 - 44032: 0xBFE1,
+ 50826 - 44032: 0x9EEA,
+ 50827 - 44032: 0xBFE2,
+ 50828 - 44032: 0x9EEB,
+ 50829 - 44032: 0xBFE3,
+ 50830 - 44032: 0x9EEC,
+ 50831 - 44032: 0x9EED,
+ 50832 - 44032: 0x9EEE,
+ 50833 - 44032: 0x9EEF,
+ 50834 - 44032: 0x9EF0,
+ 50835 - 44032: 0x9EF1,
+ 50836 - 44032: 0xBFE4,
+ 50837 - 44032: 0xBFE5,
+ 50838 - 44032: 0x9EF2,
+ 50839 - 44032: 0x9EF3,
+ 50840 - 44032: 0xBFE6,
+ 50841 - 44032: 0x9EF4,
+ 50842 - 44032: 0x9EF5,
+ 50843 - 44032: 0x9EF6,
+ 50844 - 44032: 0xBFE7,
+ 50845 - 44032: 0x9EF7,
+ 50846 - 44032: 0x9EF8,
+ 50847 - 44032: 0x9EF9,
+ 50848 - 44032: 0x9EFA,
+ 50849 - 44032: 0x9EFB,
+ 50850 - 44032: 0x9EFC,
+ 50851 - 44032: 0x9EFD,
+ 50852 - 44032: 0xBFE8,
+ 50853 - 44032: 0xBFE9,
+ 50854 - 44032: 0x9EFE,
+ 50855 - 44032: 0xBFEA,
+ 50856 - 44032: 0x9F41,
+ 50857 - 44032: 0xBFEB,
+ 50858 - 44032: 0x9F42,
+ 50859 - 44032: 0x9F43,
+ 50860 - 44032: 0x9F44,
+ 50861 - 44032: 0x9F45,
+ 50862 - 44032: 0x9F46,
+ 50863 - 44032: 0x9F47,
+ 50864 - 44032: 0xBFEC,
+ 50865 - 44032: 0xBFED,
+ 50866 - 44032: 0x9F48,
+ 50867 - 44032: 0x9F49,
+ 50868 - 44032: 0xBFEE,
+ 50869 - 44032: 0x9F4A,
+ 50870 - 44032: 0x9F4B,
+ 50871 - 44032: 0x9F4C,
+ 50872 - 44032: 0xBFEF,
+ 50873 - 44032: 0xBFF0,
+ 50874 - 44032: 0xBFF1,
+ 50875 - 44032: 0x9F4D,
+ 50876 - 44032: 0x9F4E,
+ 50877 - 44032: 0x9F4F,
+ 50878 - 44032: 0x9F50,
+ 50879 - 44032: 0x9F51,
+ 50880 - 44032: 0xBFF2,
+ 50881 - 44032: 0xBFF3,
+ 50882 - 44032: 0x9F52,
+ 50883 - 44032: 0xBFF4,
+ 50884 - 44032: 0x9F53,
+ 50885 - 44032: 0xBFF5,
+ 50886 - 44032: 0x9F54,
+ 50887 - 44032: 0x9F55,
+ 50888 - 44032: 0x9F56,
+ 50889 - 44032: 0x9F57,
+ 50890 - 44032: 0x9F58,
+ 50891 - 44032: 0x9F59,
+ 50892 - 44032: 0xBFF6,
+ 50893 - 44032: 0xBFF7,
+ 50894 - 44032: 0x9F5A,
+ 50895 - 44032: 0x9F61,
+ 50896 - 44032: 0xBFF8,
+ 50897 - 44032: 0x9F62,
+ 50898 - 44032: 0x9F63,
+ 50899 - 44032: 0x9F64,
+ 50900 - 44032: 0xBFF9,
+ 50901 - 44032: 0x9F65,
+ 50902 - 44032: 0x9F66,
+ 50903 - 44032: 0x9F67,
+ 50904 - 44032: 0x9F68,
+ 50905 - 44032: 0x9F69,
+ 50906 - 44032: 0x9F6A,
+ 50907 - 44032: 0x9F6B,
+ 50908 - 44032: 0xBFFA,
+ 50909 - 44032: 0xBFFB,
+ 50910 - 44032: 0x9F6C,
+ 50911 - 44032: 0x9F6D,
+ 50912 - 44032: 0xBFFC,
+ 50913 - 44032: 0xBFFD,
+ 50914 - 44032: 0x9F6E,
+ 50915 - 44032: 0x9F6F,
+ 50916 - 44032: 0x9F70,
+ 50917 - 44032: 0x9F71,
+ 50918 - 44032: 0x9F72,
+ 50919 - 44032: 0x9F73,
+ 50920 - 44032: 0xBFFE,
+ 50921 - 44032: 0xC0A1,
+ 50922 - 44032: 0x9F74,
+ 50923 - 44032: 0x9F75,
+ 50924 - 44032: 0xC0A2,
+ 50925 - 44032: 0x9F76,
+ 50926 - 44032: 0x9F77,
+ 50927 - 44032: 0x9F78,
+ 50928 - 44032: 0xC0A3,
+ 50929 - 44032: 0x9F79,
+ 50930 - 44032: 0x9F7A,
+ 50931 - 44032: 0x9F81,
+ 50932 - 44032: 0x9F82,
+ 50933 - 44032: 0x9F83,
+ 50934 - 44032: 0x9F84,
+ 50935 - 44032: 0x9F85,
+ 50936 - 44032: 0xC0A4,
+ 50937 - 44032: 0xC0A5,
+ 50938 - 44032: 0x9F86,
+ 50939 - 44032: 0x9F87,
+ 50940 - 44032: 0x9F88,
+ 50941 - 44032: 0xC0A6,
+ 50942 - 44032: 0x9F89,
+ 50943 - 44032: 0x9F8A,
+ 50944 - 44032: 0x9F8B,
+ 50945 - 44032: 0x9F8C,
+ 50946 - 44032: 0x9F8D,
+ 50947 - 44032: 0x9F8E,
+ 50948 - 44032: 0xC0A7,
+ 50949 - 44032: 0xC0A8,
+ 50950 - 44032: 0x9F8F,
+ 50951 - 44032: 0x9F90,
+ 50952 - 44032: 0xC0A9,
+ 50953 - 44032: 0x9F91,
+ 50954 - 44032: 0x9F92,
+ 50955 - 44032: 0x9F93,
+ 50956 - 44032: 0xC0AA,
+ 50957 - 44032: 0x9F94,
+ 50958 - 44032: 0x9F95,
+ 50959 - 44032: 0x9F96,
+ 50960 - 44032: 0x9F97,
+ 50961 - 44032: 0x9F98,
+ 50962 - 44032: 0x9F99,
+ 50963 - 44032: 0x9F9A,
+ 50964 - 44032: 0xC0AB,
+ 50965 - 44032: 0xC0AC,
+ 50966 - 44032: 0x9F9B,
+ 50967 - 44032: 0xC0AD,
+ 50968 - 44032: 0x9F9C,
+ 50969 - 44032: 0xC0AE,
+ 50970 - 44032: 0x9F9D,
+ 50971 - 44032: 0x9F9E,
+ 50972 - 44032: 0x9F9F,
+ 50973 - 44032: 0x9FA0,
+ 50974 - 44032: 0x9FA1,
+ 50975 - 44032: 0x9FA2,
+ 50976 - 44032: 0xC0AF,
+ 50977 - 44032: 0xC0B0,
+ 50978 - 44032: 0x9FA3,
+ 50979 - 44032: 0x9FA4,
+ 50980 - 44032: 0xC0B1,
+ 50981 - 44032: 0x9FA5,
+ 50982 - 44032: 0x9FA6,
+ 50983 - 44032: 0x9FA7,
+ 50984 - 44032: 0xC0B2,
+ 50985 - 44032: 0x9FA8,
+ 50986 - 44032: 0x9FA9,
+ 50987 - 44032: 0x9FAA,
+ 50988 - 44032: 0x9FAB,
+ 50989 - 44032: 0x9FAC,
+ 50990 - 44032: 0x9FAD,
+ 50991 - 44032: 0x9FAE,
+ 50992 - 44032: 0xC0B3,
+ 50993 - 44032: 0xC0B4,
+ 50994 - 44032: 0x9FAF,
+ 50995 - 44032: 0xC0B5,
+ 50996 - 44032: 0x9FB0,
+ 50997 - 44032: 0xC0B6,
+ 50998 - 44032: 0x9FB1,
+ 50999 - 44032: 0xC0B7,
+ 51000 - 44032: 0x9FB2,
+ 51001 - 44032: 0x9FB3,
+ 51002 - 44032: 0x9FB4,
+ 51003 - 44032: 0x9FB5,
+ 51004 - 44032: 0xC0B8,
+ 51005 - 44032: 0xC0B9,
+ 51006 - 44032: 0x9FB6,
+ 51007 - 44032: 0x9FB7,
+ 51008 - 44032: 0xC0BA,
+ 51009 - 44032: 0x9FB8,
+ 51010 - 44032: 0x9FB9,
+ 51011 - 44032: 0x9FBA,
+ 51012 - 44032: 0xC0BB,
+ 51013 - 44032: 0x9FBB,
+ 51014 - 44032: 0x9FBC,
+ 51015 - 44032: 0x9FBD,
+ 51016 - 44032: 0x9FBE,
+ 51017 - 44032: 0x9FBF,
+ 51018 - 44032: 0xC0BC,
+ 51019 - 44032: 0x9FC0,
+ 51020 - 44032: 0xC0BD,
+ 51021 - 44032: 0xC0BE,
+ 51022 - 44032: 0x9FC1,
+ 51023 - 44032: 0xC0BF,
+ 51024 - 44032: 0x9FC2,
+ 51025 - 44032: 0xC0C0,
+ 51026 - 44032: 0xC0C1,
+ 51027 - 44032: 0xC0C2,
+ 51028 - 44032: 0xC0C3,
+ 51029 - 44032: 0xC0C4,
+ 51030 - 44032: 0xC0C5,
+ 51031 - 44032: 0xC0C6,
+ 51032 - 44032: 0xC0C7,
+ 51033 - 44032: 0x9FC3,
+ 51034 - 44032: 0x9FC4,
+ 51035 - 44032: 0x9FC5,
+ 51036 - 44032: 0xC0C8,
+ 51037 - 44032: 0x9FC6,
+ 51038 - 44032: 0x9FC7,
+ 51039 - 44032: 0x9FC8,
+ 51040 - 44032: 0xC0C9,
+ 51041 - 44032: 0x9FC9,
+ 51042 - 44032: 0x9FCA,
+ 51043 - 44032: 0x9FCB,
+ 51044 - 44032: 0x9FCC,
+ 51045 - 44032: 0x9FCD,
+ 51046 - 44032: 0x9FCE,
+ 51047 - 44032: 0x9FCF,
+ 51048 - 44032: 0xC0CA,
+ 51049 - 44032: 0x9FD0,
+ 51050 - 44032: 0x9FD1,
+ 51051 - 44032: 0xC0CB,
+ 51052 - 44032: 0x9FD2,
+ 51053 - 44032: 0x9FD3,
+ 51054 - 44032: 0x9FD4,
+ 51055 - 44032: 0x9FD5,
+ 51056 - 44032: 0x9FD6,
+ 51057 - 44032: 0x9FD7,
+ 51058 - 44032: 0x9FD8,
+ 51059 - 44032: 0x9FD9,
+ 51060 - 44032: 0xC0CC,
+ 51061 - 44032: 0xC0CD,
+ 51062 - 44032: 0x9FDA,
+ 51063 - 44032: 0x9FDB,
+ 51064 - 44032: 0xC0CE,
+ 51065 - 44032: 0x9FDC,
+ 51066 - 44032: 0x9FDD,
+ 51067 - 44032: 0x9FDE,
+ 51068 - 44032: 0xC0CF,
+ 51069 - 44032: 0xC0D0,
+ 51070 - 44032: 0xC0D1,
+ 51071 - 44032: 0x9FDF,
+ 51072 - 44032: 0x9FE0,
+ 51073 - 44032: 0x9FE1,
+ 51074 - 44032: 0x9FE2,
+ 51075 - 44032: 0xC0D2,
+ 51076 - 44032: 0xC0D3,
+ 51077 - 44032: 0xC0D4,
+ 51078 - 44032: 0x9FE3,
+ 51079 - 44032: 0xC0D5,
+ 51080 - 44032: 0xC0D6,
+ 51081 - 44032: 0xC0D7,
+ 51082 - 44032: 0xC0D8,
+ 51083 - 44032: 0x9FE4,
+ 51084 - 44032: 0x9FE5,
+ 51085 - 44032: 0x9FE6,
+ 51086 - 44032: 0xC0D9,
+ 51087 - 44032: 0x9FE7,
+ 51088 - 44032: 0xC0DA,
+ 51089 - 44032: 0xC0DB,
+ 51090 - 44032: 0x9FE8,
+ 51091 - 44032: 0x9FE9,
+ 51092 - 44032: 0xC0DC,
+ 51093 - 44032: 0x9FEA,
+ 51094 - 44032: 0xC0DD,
+ 51095 - 44032: 0xC0DE,
+ 51096 - 44032: 0xC0DF,
+ 51097 - 44032: 0x9FEB,
+ 51098 - 44032: 0xC0E0,
+ 51099 - 44032: 0x9FEC,
+ 51100 - 44032: 0x9FED,
+ 51101 - 44032: 0x9FEE,
+ 51102 - 44032: 0x9FEF,
+ 51103 - 44032: 0x9FF0,
+ 51104 - 44032: 0xC0E1,
+ 51105 - 44032: 0xC0E2,
+ 51106 - 44032: 0x9FF1,
+ 51107 - 44032: 0xC0E3,
+ 51108 - 44032: 0xC0E4,
+ 51109 - 44032: 0xC0E5,
+ 51110 - 44032: 0xC0E6,
+ 51111 - 44032: 0x9FF2,
+ 51112 - 44032: 0x9FF3,
+ 51113 - 44032: 0x9FF4,
+ 51114 - 44032: 0x9FF5,
+ 51115 - 44032: 0x9FF6,
+ 51116 - 44032: 0xC0E7,
+ 51117 - 44032: 0xC0E8,
+ 51118 - 44032: 0x9FF7,
+ 51119 - 44032: 0x9FF8,
+ 51120 - 44032: 0xC0E9,
+ 51121 - 44032: 0x9FF9,
+ 51122 - 44032: 0x9FFA,
+ 51123 - 44032: 0x9FFB,
+ 51124 - 44032: 0xC0EA,
+ 51125 - 44032: 0x9FFC,
+ 51126 - 44032: 0x9FFD,
+ 51127 - 44032: 0x9FFE,
+ 51128 - 44032: 0xA041,
+ 51129 - 44032: 0xA042,
+ 51130 - 44032: 0xA043,
+ 51131 - 44032: 0xA044,
+ 51132 - 44032: 0xC0EB,
+ 51133 - 44032: 0xC0EC,
+ 51134 - 44032: 0xA045,
+ 51135 - 44032: 0xC0ED,
+ 51136 - 44032: 0xC0EE,
+ 51137 - 44032: 0xC0EF,
+ 51138 - 44032: 0xA046,
+ 51139 - 44032: 0xA047,
+ 51140 - 44032: 0xA048,
+ 51141 - 44032: 0xA049,
+ 51142 - 44032: 0xA04A,
+ 51143 - 44032: 0xA04B,
+ 51144 - 44032: 0xC0F0,
+ 51145 - 44032: 0xC0F1,
+ 51146 - 44032: 0xA04C,
+ 51147 - 44032: 0xA04D,
+ 51148 - 44032: 0xC0F2,
+ 51149 - 44032: 0xA04E,
+ 51150 - 44032: 0xC0F3,
+ 51151 - 44032: 0xA04F,
+ 51152 - 44032: 0xC0F4,
+ 51153 - 44032: 0xA050,
+ 51154 - 44032: 0xA051,
+ 51155 - 44032: 0xA052,
+ 51156 - 44032: 0xA053,
+ 51157 - 44032: 0xA054,
+ 51158 - 44032: 0xA055,
+ 51159 - 44032: 0xA056,
+ 51160 - 44032: 0xC0F5,
+ 51161 - 44032: 0xA057,
+ 51162 - 44032: 0xA058,
+ 51163 - 44032: 0xA059,
+ 51164 - 44032: 0xA05A,
+ 51165 - 44032: 0xC0F6,
+ 51166 - 44032: 0xA061,
+ 51167 - 44032: 0xA062,
+ 51168 - 44032: 0xA063,
+ 51169 - 44032: 0xA064,
+ 51170 - 44032: 0xA065,
+ 51171 - 44032: 0xA066,
+ 51172 - 44032: 0xC0F7,
+ 51173 - 44032: 0xA067,
+ 51174 - 44032: 0xA068,
+ 51175 - 44032: 0xA069,
+ 51176 - 44032: 0xC0F8,
+ 51177 - 44032: 0xA06A,
+ 51178 - 44032: 0xA06B,
+ 51179 - 44032: 0xA06C,
+ 51180 - 44032: 0xC0F9,
+ 51181 - 44032: 0xA06D,
+ 51182 - 44032: 0xA06E,
+ 51183 - 44032: 0xA06F,
+ 51184 - 44032: 0xA070,
+ 51185 - 44032: 0xA071,
+ 51186 - 44032: 0xA072,
+ 51187 - 44032: 0xA073,
+ 51188 - 44032: 0xA074,
+ 51189 - 44032: 0xA075,
+ 51190 - 44032: 0xA076,
+ 51191 - 44032: 0xA077,
+ 51192 - 44032: 0xA078,
+ 51193 - 44032: 0xA079,
+ 51194 - 44032: 0xA07A,
+ 51195 - 44032: 0xA081,
+ 51196 - 44032: 0xA082,
+ 51197 - 44032: 0xA083,
+ 51198 - 44032: 0xA084,
+ 51199 - 44032: 0xA085,
+ 51200 - 44032: 0xC0FA,
+ 51201 - 44032: 0xC0FB,
+ 51202 - 44032: 0xA086,
+ 51203 - 44032: 0xA087,
+ 51204 - 44032: 0xC0FC,
+ 51205 - 44032: 0xA088,
+ 51206 - 44032: 0xA089,
+ 51207 - 44032: 0xA08A,
+ 51208 - 44032: 0xC0FD,
+ 51209 - 44032: 0xA08B,
+ 51210 - 44032: 0xC0FE,
+ 51211 - 44032: 0xA08C,
+ 51212 - 44032: 0xA08D,
+ 51213 - 44032: 0xA08E,
+ 51214 - 44032: 0xA08F,
+ 51215 - 44032: 0xA090,
+ 51216 - 44032: 0xC1A1,
+ 51217 - 44032: 0xC1A2,
+ 51218 - 44032: 0xA091,
+ 51219 - 44032: 0xC1A3,
+ 51220 - 44032: 0xA092,
+ 51221 - 44032: 0xC1A4,
+ 51222 - 44032: 0xC1A5,
+ 51223 - 44032: 0xA093,
+ 51224 - 44032: 0xA094,
+ 51225 - 44032: 0xA095,
+ 51226 - 44032: 0xA096,
+ 51227 - 44032: 0xA097,
+ 51228 - 44032: 0xC1A6,
+ 51229 - 44032: 0xC1A7,
+ 51230 - 44032: 0xA098,
+ 51231 - 44032: 0xA099,
+ 51232 - 44032: 0xC1A8,
+ 51233 - 44032: 0xA09A,
+ 51234 - 44032: 0xA09B,
+ 51235 - 44032: 0xA09C,
+ 51236 - 44032: 0xC1A9,
+ 51237 - 44032: 0xA09D,
+ 51238 - 44032: 0xA09E,
+ 51239 - 44032: 0xA09F,
+ 51240 - 44032: 0xA0A0,
+ 51241 - 44032: 0xA0A1,
+ 51242 - 44032: 0xA0A2,
+ 51243 - 44032: 0xA0A3,
+ 51244 - 44032: 0xC1AA,
+ 51245 - 44032: 0xC1AB,
+ 51246 - 44032: 0xA0A4,
+ 51247 - 44032: 0xC1AC,
+ 51248 - 44032: 0xA0A5,
+ 51249 - 44032: 0xC1AD,
+ 51250 - 44032: 0xA0A6,
+ 51251 - 44032: 0xA0A7,
+ 51252 - 44032: 0xA0A8,
+ 51253 - 44032: 0xA0A9,
+ 51254 - 44032: 0xA0AA,
+ 51255 - 44032: 0xA0AB,
+ 51256 - 44032: 0xC1AE,
+ 51257 - 44032: 0xA0AC,
+ 51258 - 44032: 0xA0AD,
+ 51259 - 44032: 0xA0AE,
+ 51260 - 44032: 0xC1AF,
+ 51261 - 44032: 0xA0AF,
+ 51262 - 44032: 0xA0B0,
+ 51263 - 44032: 0xA0B1,
+ 51264 - 44032: 0xC1B0,
+ 51265 - 44032: 0xA0B2,
+ 51266 - 44032: 0xA0B3,
+ 51267 - 44032: 0xA0B4,
+ 51268 - 44032: 0xA0B5,
+ 51269 - 44032: 0xA0B6,
+ 51270 - 44032: 0xA0B7,
+ 51271 - 44032: 0xA0B8,
+ 51272 - 44032: 0xC1B1,
+ 51273 - 44032: 0xC1B2,
+ 51274 - 44032: 0xA0B9,
+ 51275 - 44032: 0xA0BA,
+ 51276 - 44032: 0xC1B3,
+ 51277 - 44032: 0xC1B4,
+ 51278 - 44032: 0xA0BB,
+ 51279 - 44032: 0xA0BC,
+ 51280 - 44032: 0xA0BD,
+ 51281 - 44032: 0xA0BE,
+ 51282 - 44032: 0xA0BF,
+ 51283 - 44032: 0xA0C0,
+ 51284 - 44032: 0xC1B5,
+ 51285 - 44032: 0xA0C1,
+ 51286 - 44032: 0xA0C2,
+ 51287 - 44032: 0xA0C3,
+ 51288 - 44032: 0xA0C4,
+ 51289 - 44032: 0xA0C5,
+ 51290 - 44032: 0xA0C6,
+ 51291 - 44032: 0xA0C7,
+ 51292 - 44032: 0xA0C8,
+ 51293 - 44032: 0xA0C9,
+ 51294 - 44032: 0xA0CA,
+ 51295 - 44032: 0xA0CB,
+ 51296 - 44032: 0xA0CC,
+ 51297 - 44032: 0xA0CD,
+ 51298 - 44032: 0xA0CE,
+ 51299 - 44032: 0xA0CF,
+ 51300 - 44032: 0xA0D0,
+ 51301 - 44032: 0xA0D1,
+ 51302 - 44032: 0xA0D2,
+ 51303 - 44032: 0xA0D3,
+ 51304 - 44032: 0xA0D4,
+ 51305 - 44032: 0xA0D5,
+ 51306 - 44032: 0xA0D6,
+ 51307 - 44032: 0xA0D7,
+ 51308 - 44032: 0xA0D8,
+ 51309 - 44032: 0xA0D9,
+ 51310 - 44032: 0xA0DA,
+ 51311 - 44032: 0xA0DB,
+ 51312 - 44032: 0xC1B6,
+ 51313 - 44032: 0xC1B7,
+ 51314 - 44032: 0xA0DC,
+ 51315 - 44032: 0xA0DD,
+ 51316 - 44032: 0xC1B8,
+ 51317 - 44032: 0xA0DE,
+ 51318 - 44032: 0xA0DF,
+ 51319 - 44032: 0xA0E0,
+ 51320 - 44032: 0xC1B9,
+ 51321 - 44032: 0xA0E1,
+ 51322 - 44032: 0xC1BA,
+ 51323 - 44032: 0xA0E2,
+ 51324 - 44032: 0xA0E3,
+ 51325 - 44032: 0xA0E4,
+ 51326 - 44032: 0xA0E5,
+ 51327 - 44032: 0xA0E6,
+ 51328 - 44032: 0xC1BB,
+ 51329 - 44032: 0xC1BC,
+ 51330 - 44032: 0xA0E7,
+ 51331 - 44032: 0xC1BD,
+ 51332 - 44032: 0xA0E8,
+ 51333 - 44032: 0xC1BE,
+ 51334 - 44032: 0xC1BF,
+ 51335 - 44032: 0xC1C0,
+ 51336 - 44032: 0xA0E9,
+ 51337 - 44032: 0xA0EA,
+ 51338 - 44032: 0xA0EB,
+ 51339 - 44032: 0xC1C1,
+ 51340 - 44032: 0xC1C2,
+ 51341 - 44032: 0xC1C3,
+ 51342 - 44032: 0xA0EC,
+ 51343 - 44032: 0xA0ED,
+ 51344 - 44032: 0xA0EE,
+ 51345 - 44032: 0xA0EF,
+ 51346 - 44032: 0xA0F0,
+ 51347 - 44032: 0xA0F1,
+ 51348 - 44032: 0xC1C4,
+ 51349 - 44032: 0xA0F2,
+ 51350 - 44032: 0xA0F3,
+ 51351 - 44032: 0xA0F4,
+ 51352 - 44032: 0xA0F5,
+ 51353 - 44032: 0xA0F6,
+ 51354 - 44032: 0xA0F7,
+ 51355 - 44032: 0xA0F8,
+ 51356 - 44032: 0xA0F9,
+ 51357 - 44032: 0xC1C5,
+ 51358 - 44032: 0xA0FA,
+ 51359 - 44032: 0xC1C6,
+ 51360 - 44032: 0xA0FB,
+ 51361 - 44032: 0xC1C7,
+ 51362 - 44032: 0xA0FC,
+ 51363 - 44032: 0xA0FD,
+ 51364 - 44032: 0xA0FE,
+ 51365 - 44032: 0xA141,
+ 51366 - 44032: 0xA142,
+ 51367 - 44032: 0xA143,
+ 51368 - 44032: 0xC1C8,
+ 51369 - 44032: 0xA144,
+ 51370 - 44032: 0xA145,
+ 51371 - 44032: 0xA146,
+ 51372 - 44032: 0xA147,
+ 51373 - 44032: 0xA148,
+ 51374 - 44032: 0xA149,
+ 51375 - 44032: 0xA14A,
+ 51376 - 44032: 0xA14B,
+ 51377 - 44032: 0xA14C,
+ 51378 - 44032: 0xA14D,
+ 51379 - 44032: 0xA14E,
+ 51380 - 44032: 0xA14F,
+ 51381 - 44032: 0xA150,
+ 51382 - 44032: 0xA151,
+ 51383 - 44032: 0xA152,
+ 51384 - 44032: 0xA153,
+ 51385 - 44032: 0xA154,
+ 51386 - 44032: 0xA155,
+ 51387 - 44032: 0xA156,
+ 51388 - 44032: 0xC1C9,
+ 51389 - 44032: 0xC1CA,
+ 51390 - 44032: 0xA157,
+ 51391 - 44032: 0xA158,
+ 51392 - 44032: 0xA159,
+ 51393 - 44032: 0xA15A,
+ 51394 - 44032: 0xA161,
+ 51395 - 44032: 0xA162,
+ 51396 - 44032: 0xC1CB,
+ 51397 - 44032: 0xA163,
+ 51398 - 44032: 0xA164,
+ 51399 - 44032: 0xA165,
+ 51400 - 44032: 0xC1CC,
+ 51401 - 44032: 0xA166,
+ 51402 - 44032: 0xA167,
+ 51403 - 44032: 0xA168,
+ 51404 - 44032: 0xC1CD,
+ 51405 - 44032: 0xA169,
+ 51406 - 44032: 0xA16A,
+ 51407 - 44032: 0xA16B,
+ 51408 - 44032: 0xA16C,
+ 51409 - 44032: 0xA16D,
+ 51410 - 44032: 0xA16E,
+ 51411 - 44032: 0xA16F,
+ 51412 - 44032: 0xC1CE,
+ 51413 - 44032: 0xC1CF,
+ 51414 - 44032: 0xA170,
+ 51415 - 44032: 0xC1D0,
+ 51416 - 44032: 0xA171,
+ 51417 - 44032: 0xC1D1,
+ 51418 - 44032: 0xA172,
+ 51419 - 44032: 0xA173,
+ 51420 - 44032: 0xA174,
+ 51421 - 44032: 0xA175,
+ 51422 - 44032: 0xA176,
+ 51423 - 44032: 0xA177,
+ 51424 - 44032: 0xC1D2,
+ 51425 - 44032: 0xC1D3,
+ 51426 - 44032: 0xA178,
+ 51427 - 44032: 0xA179,
+ 51428 - 44032: 0xC1D4,
+ 51429 - 44032: 0xA17A,
+ 51430 - 44032: 0xA181,
+ 51431 - 44032: 0xA182,
+ 51432 - 44032: 0xA183,
+ 51433 - 44032: 0xA184,
+ 51434 - 44032: 0xA185,
+ 51435 - 44032: 0xA186,
+ 51436 - 44032: 0xA187,
+ 51437 - 44032: 0xA188,
+ 51438 - 44032: 0xA189,
+ 51439 - 44032: 0xA18A,
+ 51440 - 44032: 0xA18B,
+ 51441 - 44032: 0xA18C,
+ 51442 - 44032: 0xA18D,
+ 51443 - 44032: 0xA18E,
+ 51444 - 44032: 0xA18F,
+ 51445 - 44032: 0xC1D5,
+ 51446 - 44032: 0xA190,
+ 51447 - 44032: 0xA191,
+ 51448 - 44032: 0xA192,
+ 51449 - 44032: 0xA193,
+ 51450 - 44032: 0xA194,
+ 51451 - 44032: 0xA195,
+ 51452 - 44032: 0xC1D6,
+ 51453 - 44032: 0xC1D7,
+ 51454 - 44032: 0xA196,
+ 51455 - 44032: 0xA197,
+ 51456 - 44032: 0xC1D8,
+ 51457 - 44032: 0xA198,
+ 51458 - 44032: 0xA199,
+ 51459 - 44032: 0xA19A,
+ 51460 - 44032: 0xC1D9,
+ 51461 - 44032: 0xC1DA,
+ 51462 - 44032: 0xC1DB,
+ 51463 - 44032: 0xA19B,
+ 51464 - 44032: 0xA19C,
+ 51465 - 44032: 0xA19D,
+ 51466 - 44032: 0xA19E,
+ 51467 - 44032: 0xA19F,
+ 51468 - 44032: 0xC1DC,
+ 51469 - 44032: 0xC1DD,
+ 51470 - 44032: 0xA1A0,
+ 51471 - 44032: 0xC1DE,
+ 51472 - 44032: 0xA241,
+ 51473 - 44032: 0xC1DF,
+ 51474 - 44032: 0xA242,
+ 51475 - 44032: 0xA243,
+ 51476 - 44032: 0xA244,
+ 51477 - 44032: 0xA245,
+ 51478 - 44032: 0xA246,
+ 51479 - 44032: 0xA247,
+ 51480 - 44032: 0xC1E0,
+ 51481 - 44032: 0xA248,
+ 51482 - 44032: 0xA249,
+ 51483 - 44032: 0xA24A,
+ 51484 - 44032: 0xA24B,
+ 51485 - 44032: 0xA24C,
+ 51486 - 44032: 0xA24D,
+ 51487 - 44032: 0xA24E,
+ 51488 - 44032: 0xA24F,
+ 51489 - 44032: 0xA250,
+ 51490 - 44032: 0xA251,
+ 51491 - 44032: 0xA252,
+ 51492 - 44032: 0xA253,
+ 51493 - 44032: 0xA254,
+ 51494 - 44032: 0xA255,
+ 51495 - 44032: 0xA256,
+ 51496 - 44032: 0xA257,
+ 51497 - 44032: 0xA258,
+ 51498 - 44032: 0xA259,
+ 51499 - 44032: 0xA25A,
+ 51500 - 44032: 0xC1E1,
+ 51501 - 44032: 0xA261,
+ 51502 - 44032: 0xA262,
+ 51503 - 44032: 0xA263,
+ 51504 - 44032: 0xA264,
+ 51505 - 44032: 0xA265,
+ 51506 - 44032: 0xA266,
+ 51507 - 44032: 0xA267,
+ 51508 - 44032: 0xC1E2,
+ 51509 - 44032: 0xA268,
+ 51510 - 44032: 0xA269,
+ 51511 - 44032: 0xA26A,
+ 51512 - 44032: 0xA26B,
+ 51513 - 44032: 0xA26C,
+ 51514 - 44032: 0xA26D,
+ 51515 - 44032: 0xA26E,
+ 51516 - 44032: 0xA26F,
+ 51517 - 44032: 0xA270,
+ 51518 - 44032: 0xA271,
+ 51519 - 44032: 0xA272,
+ 51520 - 44032: 0xA273,
+ 51521 - 44032: 0xA274,
+ 51522 - 44032: 0xA275,
+ 51523 - 44032: 0xA276,
+ 51524 - 44032: 0xA277,
+ 51525 - 44032: 0xA278,
+ 51526 - 44032: 0xA279,
+ 51527 - 44032: 0xA27A,
+ 51528 - 44032: 0xA281,
+ 51529 - 44032: 0xA282,
+ 51530 - 44032: 0xA283,
+ 51531 - 44032: 0xA284,
+ 51532 - 44032: 0xA285,
+ 51533 - 44032: 0xA286,
+ 51534 - 44032: 0xA287,
+ 51535 - 44032: 0xA288,
+ 51536 - 44032: 0xC1E3,
+ 51537 - 44032: 0xC1E4,
+ 51538 - 44032: 0xA289,
+ 51539 - 44032: 0xA28A,
+ 51540 - 44032: 0xC1E5,
+ 51541 - 44032: 0xA28B,
+ 51542 - 44032: 0xA28C,
+ 51543 - 44032: 0xA28D,
+ 51544 - 44032: 0xC1E6,
+ 51545 - 44032: 0xA28E,
+ 51546 - 44032: 0xA28F,
+ 51547 - 44032: 0xA290,
+ 51548 - 44032: 0xA291,
+ 51549 - 44032: 0xA292,
+ 51550 - 44032: 0xA293,
+ 51551 - 44032: 0xA294,
+ 51552 - 44032: 0xC1E7,
+ 51553 - 44032: 0xC1E8,
+ 51554 - 44032: 0xA295,
+ 51555 - 44032: 0xC1E9,
+ 51556 - 44032: 0xA296,
+ 51557 - 44032: 0xA297,
+ 51558 - 44032: 0xA298,
+ 51559 - 44032: 0xA299,
+ 51560 - 44032: 0xA29A,
+ 51561 - 44032: 0xA29B,
+ 51562 - 44032: 0xA29C,
+ 51563 - 44032: 0xA29D,
+ 51564 - 44032: 0xC1EA,
+ 51565 - 44032: 0xA29E,
+ 51566 - 44032: 0xA29F,
+ 51567 - 44032: 0xA2A0,
+ 51568 - 44032: 0xC1EB,
+ 51569 - 44032: 0xA341,
+ 51570 - 44032: 0xA342,
+ 51571 - 44032: 0xA343,
+ 51572 - 44032: 0xC1EC,
+ 51573 - 44032: 0xA344,
+ 51574 - 44032: 0xA345,
+ 51575 - 44032: 0xA346,
+ 51576 - 44032: 0xA347,
+ 51577 - 44032: 0xA348,
+ 51578 - 44032: 0xA349,
+ 51579 - 44032: 0xA34A,
+ 51580 - 44032: 0xC1ED,
+ 51581 - 44032: 0xA34B,
+ 51582 - 44032: 0xA34C,
+ 51583 - 44032: 0xA34D,
+ 51584 - 44032: 0xA34E,
+ 51585 - 44032: 0xA34F,
+ 51586 - 44032: 0xA350,
+ 51587 - 44032: 0xA351,
+ 51588 - 44032: 0xA352,
+ 51589 - 44032: 0xA353,
+ 51590 - 44032: 0xA354,
+ 51591 - 44032: 0xA355,
+ 51592 - 44032: 0xC1EE,
+ 51593 - 44032: 0xC1EF,
+ 51594 - 44032: 0xA356,
+ 51595 - 44032: 0xA357,
+ 51596 - 44032: 0xC1F0,
+ 51597 - 44032: 0xA358,
+ 51598 - 44032: 0xA359,
+ 51599 - 44032: 0xA35A,
+ 51600 - 44032: 0xC1F1,
+ 51601 - 44032: 0xA361,
+ 51602 - 44032: 0xA362,
+ 51603 - 44032: 0xA363,
+ 51604 - 44032: 0xA364,
+ 51605 - 44032: 0xA365,
+ 51606 - 44032: 0xA366,
+ 51607 - 44032: 0xA367,
+ 51608 - 44032: 0xC1F2,
+ 51609 - 44032: 0xC1F3,
+ 51610 - 44032: 0xA368,
+ 51611 - 44032: 0xC1F4,
+ 51612 - 44032: 0xA369,
+ 51613 - 44032: 0xC1F5,
+ 51614 - 44032: 0xA36A,
+ 51615 - 44032: 0xA36B,
+ 51616 - 44032: 0xA36C,
+ 51617 - 44032: 0xA36D,
+ 51618 - 44032: 0xA36E,
+ 51619 - 44032: 0xA36F,
+ 51620 - 44032: 0xA370,
+ 51621 - 44032: 0xA371,
+ 51622 - 44032: 0xA372,
+ 51623 - 44032: 0xA373,
+ 51624 - 44032: 0xA374,
+ 51625 - 44032: 0xA375,
+ 51626 - 44032: 0xA376,
+ 51627 - 44032: 0xA377,
+ 51628 - 44032: 0xA378,
+ 51629 - 44032: 0xA379,
+ 51630 - 44032: 0xA37A,
+ 51631 - 44032: 0xA381,
+ 51632 - 44032: 0xA382,
+ 51633 - 44032: 0xA383,
+ 51634 - 44032: 0xA384,
+ 51635 - 44032: 0xA385,
+ 51636 - 44032: 0xA386,
+ 51637 - 44032: 0xA387,
+ 51638 - 44032: 0xA388,
+ 51639 - 44032: 0xA389,
+ 51640 - 44032: 0xA38A,
+ 51641 - 44032: 0xA38B,
+ 51642 - 44032: 0xA38C,
+ 51643 - 44032: 0xA38D,
+ 51644 - 44032: 0xA38E,
+ 51645 - 44032: 0xA38F,
+ 51646 - 44032: 0xA390,
+ 51647 - 44032: 0xA391,
+ 51648 - 44032: 0xC1F6,
+ 51649 - 44032: 0xC1F7,
+ 51650 - 44032: 0xA392,
+ 51651 - 44032: 0xA393,
+ 51652 - 44032: 0xC1F8,
+ 51653 - 44032: 0xA394,
+ 51654 - 44032: 0xA395,
+ 51655 - 44032: 0xC1F9,
+ 51656 - 44032: 0xC1FA,
+ 51657 - 44032: 0xA396,
+ 51658 - 44032: 0xC1FB,
+ 51659 - 44032: 0xA397,
+ 51660 - 44032: 0xA398,
+ 51661 - 44032: 0xA399,
+ 51662 - 44032: 0xA39A,
+ 51663 - 44032: 0xA39B,
+ 51664 - 44032: 0xC1FC,
+ 51665 - 44032: 0xC1FD,
+ 51666 - 44032: 0xA39C,
+ 51667 - 44032: 0xC1FE,
+ 51668 - 44032: 0xA39D,
+ 51669 - 44032: 0xC2A1,
+ 51670 - 44032: 0xC2A2,
+ 51671 - 44032: 0xA39E,
+ 51672 - 44032: 0xA39F,
+ 51673 - 44032: 0xC2A3,
+ 51674 - 44032: 0xC2A4,
+ 51675 - 44032: 0xA3A0,
+ 51676 - 44032: 0xC2A5,
+ 51677 - 44032: 0xC2A6,
+ 51678 - 44032: 0xA441,
+ 51679 - 44032: 0xA442,
+ 51680 - 44032: 0xC2A7,
+ 51681 - 44032: 0xA443,
+ 51682 - 44032: 0xC2A8,
+ 51683 - 44032: 0xA444,
+ 51684 - 44032: 0xC2A9,
+ 51685 - 44032: 0xA445,
+ 51686 - 44032: 0xA446,
+ 51687 - 44032: 0xC2AA,
+ 51688 - 44032: 0xA447,
+ 51689 - 44032: 0xA448,
+ 51690 - 44032: 0xA449,
+ 51691 - 44032: 0xA44A,
+ 51692 - 44032: 0xC2AB,
+ 51693 - 44032: 0xC2AC,
+ 51694 - 44032: 0xA44B,
+ 51695 - 44032: 0xC2AD,
+ 51696 - 44032: 0xC2AE,
+ 51697 - 44032: 0xC2AF,
+ 51698 - 44032: 0xA44C,
+ 51699 - 44032: 0xA44D,
+ 51700 - 44032: 0xA44E,
+ 51701 - 44032: 0xA44F,
+ 51702 - 44032: 0xA450,
+ 51703 - 44032: 0xA451,
+ 51704 - 44032: 0xC2B0,
+ 51705 - 44032: 0xC2B1,
+ 51706 - 44032: 0xA452,
+ 51707 - 44032: 0xA453,
+ 51708 - 44032: 0xC2B2,
+ 51709 - 44032: 0xA454,
+ 51710 - 44032: 0xA455,
+ 51711 - 44032: 0xA456,
+ 51712 - 44032: 0xC2B3,
+ 51713 - 44032: 0xA457,
+ 51714 - 44032: 0xA458,
+ 51715 - 44032: 0xA459,
+ 51716 - 44032: 0xA45A,
+ 51717 - 44032: 0xA461,
+ 51718 - 44032: 0xA462,
+ 51719 - 44032: 0xA463,
+ 51720 - 44032: 0xC2B4,
+ 51721 - 44032: 0xC2B5,
+ 51722 - 44032: 0xA464,
+ 51723 - 44032: 0xC2B6,
+ 51724 - 44032: 0xC2B7,
+ 51725 - 44032: 0xC2B8,
+ 51726 - 44032: 0xA465,
+ 51727 - 44032: 0xA466,
+ 51728 - 44032: 0xA467,
+ 51729 - 44032: 0xA468,
+ 51730 - 44032: 0xA469,
+ 51731 - 44032: 0xA46A,
+ 51732 - 44032: 0xC2B9,
+ 51733 - 44032: 0xA46B,
+ 51734 - 44032: 0xA46C,
+ 51735 - 44032: 0xA46D,
+ 51736 - 44032: 0xC2BA,
+ 51737 - 44032: 0xA46E,
+ 51738 - 44032: 0xA46F,
+ 51739 - 44032: 0xA470,
+ 51740 - 44032: 0xA471,
+ 51741 - 44032: 0xA472,
+ 51742 - 44032: 0xA473,
+ 51743 - 44032: 0xA474,
+ 51744 - 44032: 0xA475,
+ 51745 - 44032: 0xA476,
+ 51746 - 44032: 0xA477,
+ 51747 - 44032: 0xA478,
+ 51748 - 44032: 0xA479,
+ 51749 - 44032: 0xA47A,
+ 51750 - 44032: 0xA481,
+ 51751 - 44032: 0xA482,
+ 51752 - 44032: 0xA483,
+ 51753 - 44032: 0xC2BB,
+ 51754 - 44032: 0xA484,
+ 51755 - 44032: 0xA485,
+ 51756 - 44032: 0xA486,
+ 51757 - 44032: 0xA487,
+ 51758 - 44032: 0xA488,
+ 51759 - 44032: 0xA489,
+ 51760 - 44032: 0xA48A,
+ 51761 - 44032: 0xA48B,
+ 51762 - 44032: 0xA48C,
+ 51763 - 44032: 0xA48D,
+ 51764 - 44032: 0xA48E,
+ 51765 - 44032: 0xA48F,
+ 51766 - 44032: 0xA490,
+ 51767 - 44032: 0xA491,
+ 51768 - 44032: 0xA492,
+ 51769 - 44032: 0xA493,
+ 51770 - 44032: 0xA494,
+ 51771 - 44032: 0xA495,
+ 51772 - 44032: 0xA496,
+ 51773 - 44032: 0xA497,
+ 51774 - 44032: 0xA498,
+ 51775 - 44032: 0xA499,
+ 51776 - 44032: 0xA49A,
+ 51777 - 44032: 0xA49B,
+ 51778 - 44032: 0xA49C,
+ 51779 - 44032: 0xA49D,
+ 51780 - 44032: 0xA49E,
+ 51781 - 44032: 0xA49F,
+ 51782 - 44032: 0xA4A0,
+ 51783 - 44032: 0xA541,
+ 51784 - 44032: 0xA542,
+ 51785 - 44032: 0xA543,
+ 51786 - 44032: 0xA544,
+ 51787 - 44032: 0xA545,
+ 51788 - 44032: 0xC2BC,
+ 51789 - 44032: 0xC2BD,
+ 51790 - 44032: 0xA546,
+ 51791 - 44032: 0xA547,
+ 51792 - 44032: 0xC2BE,
+ 51793 - 44032: 0xA548,
+ 51794 - 44032: 0xA549,
+ 51795 - 44032: 0xA54A,
+ 51796 - 44032: 0xC2BF,
+ 51797 - 44032: 0xA54B,
+ 51798 - 44032: 0xA54C,
+ 51799 - 44032: 0xA54D,
+ 51800 - 44032: 0xA54E,
+ 51801 - 44032: 0xA54F,
+ 51802 - 44032: 0xA550,
+ 51803 - 44032: 0xA551,
+ 51804 - 44032: 0xC2C0,
+ 51805 - 44032: 0xC2C1,
+ 51806 - 44032: 0xA552,
+ 51807 - 44032: 0xC2C2,
+ 51808 - 44032: 0xC2C3,
+ 51809 - 44032: 0xC2C4,
+ 51810 - 44032: 0xA553,
+ 51811 - 44032: 0xA554,
+ 51812 - 44032: 0xA555,
+ 51813 - 44032: 0xA556,
+ 51814 - 44032: 0xA557,
+ 51815 - 44032: 0xA558,
+ 51816 - 44032: 0xC2C5,
+ 51817 - 44032: 0xA559,
+ 51818 - 44032: 0xA55A,
+ 51819 - 44032: 0xA561,
+ 51820 - 44032: 0xA562,
+ 51821 - 44032: 0xA563,
+ 51822 - 44032: 0xA564,
+ 51823 - 44032: 0xA565,
+ 51824 - 44032: 0xA566,
+ 51825 - 44032: 0xA567,
+ 51826 - 44032: 0xA568,
+ 51827 - 44032: 0xA569,
+ 51828 - 44032: 0xA56A,
+ 51829 - 44032: 0xA56B,
+ 51830 - 44032: 0xA56C,
+ 51831 - 44032: 0xA56D,
+ 51832 - 44032: 0xA56E,
+ 51833 - 44032: 0xA56F,
+ 51834 - 44032: 0xA570,
+ 51835 - 44032: 0xA571,
+ 51836 - 44032: 0xA572,
+ 51837 - 44032: 0xC2C6,
+ 51838 - 44032: 0xA573,
+ 51839 - 44032: 0xA574,
+ 51840 - 44032: 0xA575,
+ 51841 - 44032: 0xA576,
+ 51842 - 44032: 0xA577,
+ 51843 - 44032: 0xA578,
+ 51844 - 44032: 0xC2C7,
+ 51845 - 44032: 0xA579,
+ 51846 - 44032: 0xA57A,
+ 51847 - 44032: 0xA581,
+ 51848 - 44032: 0xA582,
+ 51849 - 44032: 0xA583,
+ 51850 - 44032: 0xA584,
+ 51851 - 44032: 0xA585,
+ 51852 - 44032: 0xA586,
+ 51853 - 44032: 0xA587,
+ 51854 - 44032: 0xA588,
+ 51855 - 44032: 0xA589,
+ 51856 - 44032: 0xA58A,
+ 51857 - 44032: 0xA58B,
+ 51858 - 44032: 0xA58C,
+ 51859 - 44032: 0xA58D,
+ 51860 - 44032: 0xA58E,
+ 51861 - 44032: 0xA58F,
+ 51862 - 44032: 0xA590,
+ 51863 - 44032: 0xA591,
+ 51864 - 44032: 0xC2C8,
+ 51865 - 44032: 0xA592,
+ 51866 - 44032: 0xA593,
+ 51867 - 44032: 0xA594,
+ 51868 - 44032: 0xA595,
+ 51869 - 44032: 0xA596,
+ 51870 - 44032: 0xA597,
+ 51871 - 44032: 0xA598,
+ 51872 - 44032: 0xA599,
+ 51873 - 44032: 0xA59A,
+ 51874 - 44032: 0xA59B,
+ 51875 - 44032: 0xA59C,
+ 51876 - 44032: 0xA59D,
+ 51877 - 44032: 0xA59E,
+ 51878 - 44032: 0xA59F,
+ 51879 - 44032: 0xA5A0,
+ 51880 - 44032: 0xA641,
+ 51881 - 44032: 0xA642,
+ 51882 - 44032: 0xA643,
+ 51883 - 44032: 0xA644,
+ 51884 - 44032: 0xA645,
+ 51885 - 44032: 0xA646,
+ 51886 - 44032: 0xA647,
+ 51887 - 44032: 0xA648,
+ 51888 - 44032: 0xA649,
+ 51889 - 44032: 0xA64A,
+ 51890 - 44032: 0xA64B,
+ 51891 - 44032: 0xA64C,
+ 51892 - 44032: 0xA64D,
+ 51893 - 44032: 0xA64E,
+ 51894 - 44032: 0xA64F,
+ 51895 - 44032: 0xA650,
+ 51896 - 44032: 0xA651,
+ 51897 - 44032: 0xA652,
+ 51898 - 44032: 0xA653,
+ 51899 - 44032: 0xA654,
+ 51900 - 44032: 0xC2C9,
+ 51901 - 44032: 0xC2CA,
+ 51902 - 44032: 0xA655,
+ 51903 - 44032: 0xA656,
+ 51904 - 44032: 0xC2CB,
+ 51905 - 44032: 0xA657,
+ 51906 - 44032: 0xA658,
+ 51907 - 44032: 0xA659,
+ 51908 - 44032: 0xC2CC,
+ 51909 - 44032: 0xA65A,
+ 51910 - 44032: 0xA661,
+ 51911 - 44032: 0xA662,
+ 51912 - 44032: 0xA663,
+ 51913 - 44032: 0xA664,
+ 51914 - 44032: 0xA665,
+ 51915 - 44032: 0xA666,
+ 51916 - 44032: 0xC2CD,
+ 51917 - 44032: 0xC2CE,
+ 51918 - 44032: 0xA667,
+ 51919 - 44032: 0xC2CF,
+ 51920 - 44032: 0xA668,
+ 51921 - 44032: 0xC2D0,
+ 51922 - 44032: 0xA669,
+ 51923 - 44032: 0xC2D1,
+ 51924 - 44032: 0xA66A,
+ 51925 - 44032: 0xA66B,
+ 51926 - 44032: 0xA66C,
+ 51927 - 44032: 0xA66D,
+ 51928 - 44032: 0xC2D2,
+ 51929 - 44032: 0xC2D3,
+ 51930 - 44032: 0xA66E,
+ 51931 - 44032: 0xA66F,
+ 51932 - 44032: 0xA670,
+ 51933 - 44032: 0xA671,
+ 51934 - 44032: 0xA672,
+ 51935 - 44032: 0xA673,
+ 51936 - 44032: 0xC2D4,
+ 51937 - 44032: 0xA674,
+ 51938 - 44032: 0xA675,
+ 51939 - 44032: 0xA676,
+ 51940 - 44032: 0xA677,
+ 51941 - 44032: 0xA678,
+ 51942 - 44032: 0xA679,
+ 51943 - 44032: 0xA67A,
+ 51944 - 44032: 0xA681,
+ 51945 - 44032: 0xA682,
+ 51946 - 44032: 0xA683,
+ 51947 - 44032: 0xA684,
+ 51948 - 44032: 0xC2D5,
+ 51949 - 44032: 0xA685,
+ 51950 - 44032: 0xA686,
+ 51951 - 44032: 0xA687,
+ 51952 - 44032: 0xA688,
+ 51953 - 44032: 0xA689,
+ 51954 - 44032: 0xA68A,
+ 51955 - 44032: 0xA68B,
+ 51956 - 44032: 0xC2D6,
+ 51957 - 44032: 0xA68C,
+ 51958 - 44032: 0xA68D,
+ 51959 - 44032: 0xA68E,
+ 51960 - 44032: 0xA68F,
+ 51961 - 44032: 0xA690,
+ 51962 - 44032: 0xA691,
+ 51963 - 44032: 0xA692,
+ 51964 - 44032: 0xA693,
+ 51965 - 44032: 0xA694,
+ 51966 - 44032: 0xA695,
+ 51967 - 44032: 0xA696,
+ 51968 - 44032: 0xA697,
+ 51969 - 44032: 0xA698,
+ 51970 - 44032: 0xA699,
+ 51971 - 44032: 0xA69A,
+ 51972 - 44032: 0xA69B,
+ 51973 - 44032: 0xA69C,
+ 51974 - 44032: 0xA69D,
+ 51975 - 44032: 0xA69E,
+ 51976 - 44032: 0xC2D7,
+ 51977 - 44032: 0xA69F,
+ 51978 - 44032: 0xA6A0,
+ 51979 - 44032: 0xA741,
+ 51980 - 44032: 0xA742,
+ 51981 - 44032: 0xA743,
+ 51982 - 44032: 0xA744,
+ 51983 - 44032: 0xA745,
+ 51984 - 44032: 0xC2D8,
+ 51985 - 44032: 0xA746,
+ 51986 - 44032: 0xA747,
+ 51987 - 44032: 0xA748,
+ 51988 - 44032: 0xC2D9,
+ 51989 - 44032: 0xA749,
+ 51990 - 44032: 0xA74A,
+ 51991 - 44032: 0xA74B,
+ 51992 - 44032: 0xC2DA,
+ 51993 - 44032: 0xA74C,
+ 51994 - 44032: 0xA74D,
+ 51995 - 44032: 0xA74E,
+ 51996 - 44032: 0xA74F,
+ 51997 - 44032: 0xA750,
+ 51998 - 44032: 0xA751,
+ 51999 - 44032: 0xA752,
+ 52000 - 44032: 0xC2DB,
+ 52001 - 44032: 0xC2DC,
+ 52002 - 44032: 0xA753,
+ 52003 - 44032: 0xA754,
+ 52004 - 44032: 0xA755,
+ 52005 - 44032: 0xA756,
+ 52006 - 44032: 0xA757,
+ 52007 - 44032: 0xA758,
+ 52008 - 44032: 0xA759,
+ 52009 - 44032: 0xA75A,
+ 52010 - 44032: 0xA761,
+ 52011 - 44032: 0xA762,
+ 52012 - 44032: 0xA763,
+ 52013 - 44032: 0xA764,
+ 52014 - 44032: 0xA765,
+ 52015 - 44032: 0xA766,
+ 52016 - 44032: 0xA767,
+ 52017 - 44032: 0xA768,
+ 52018 - 44032: 0xA769,
+ 52019 - 44032: 0xA76A,
+ 52020 - 44032: 0xA76B,
+ 52021 - 44032: 0xA76C,
+ 52022 - 44032: 0xA76D,
+ 52023 - 44032: 0xA76E,
+ 52024 - 44032: 0xA76F,
+ 52025 - 44032: 0xA770,
+ 52026 - 44032: 0xA771,
+ 52027 - 44032: 0xA772,
+ 52028 - 44032: 0xA773,
+ 52029 - 44032: 0xA774,
+ 52030 - 44032: 0xA775,
+ 52031 - 44032: 0xA776,
+ 52032 - 44032: 0xA777,
+ 52033 - 44032: 0xC2DD,
+ 52034 - 44032: 0xA778,
+ 52035 - 44032: 0xA779,
+ 52036 - 44032: 0xA77A,
+ 52037 - 44032: 0xA781,
+ 52038 - 44032: 0xA782,
+ 52039 - 44032: 0xA783,
+ 52040 - 44032: 0xC2DE,
+ 52041 - 44032: 0xC2DF,
+ 52042 - 44032: 0xA784,
+ 52043 - 44032: 0xA785,
+ 52044 - 44032: 0xC2E0,
+ 52045 - 44032: 0xA786,
+ 52046 - 44032: 0xA787,
+ 52047 - 44032: 0xA788,
+ 52048 - 44032: 0xC2E1,
+ 52049 - 44032: 0xA789,
+ 52050 - 44032: 0xA78A,
+ 52051 - 44032: 0xA78B,
+ 52052 - 44032: 0xA78C,
+ 52053 - 44032: 0xA78D,
+ 52054 - 44032: 0xA78E,
+ 52055 - 44032: 0xA78F,
+ 52056 - 44032: 0xC2E2,
+ 52057 - 44032: 0xC2E3,
+ 52058 - 44032: 0xA790,
+ 52059 - 44032: 0xA791,
+ 52060 - 44032: 0xA792,
+ 52061 - 44032: 0xC2E4,
+ 52062 - 44032: 0xA793,
+ 52063 - 44032: 0xA794,
+ 52064 - 44032: 0xA795,
+ 52065 - 44032: 0xA796,
+ 52066 - 44032: 0xA797,
+ 52067 - 44032: 0xA798,
+ 52068 - 44032: 0xC2E5,
+ 52069 - 44032: 0xA799,
+ 52070 - 44032: 0xA79A,
+ 52071 - 44032: 0xA79B,
+ 52072 - 44032: 0xA79C,
+ 52073 - 44032: 0xA79D,
+ 52074 - 44032: 0xA79E,
+ 52075 - 44032: 0xA79F,
+ 52076 - 44032: 0xA7A0,
+ 52077 - 44032: 0xA841,
+ 52078 - 44032: 0xA842,
+ 52079 - 44032: 0xA843,
+ 52080 - 44032: 0xA844,
+ 52081 - 44032: 0xA845,
+ 52082 - 44032: 0xA846,
+ 52083 - 44032: 0xA847,
+ 52084 - 44032: 0xA848,
+ 52085 - 44032: 0xA849,
+ 52086 - 44032: 0xA84A,
+ 52087 - 44032: 0xA84B,
+ 52088 - 44032: 0xC2E6,
+ 52089 - 44032: 0xC2E7,
+ 52090 - 44032: 0xA84C,
+ 52091 - 44032: 0xA84D,
+ 52092 - 44032: 0xA84E,
+ 52093 - 44032: 0xA84F,
+ 52094 - 44032: 0xA850,
+ 52095 - 44032: 0xA851,
+ 52096 - 44032: 0xA852,
+ 52097 - 44032: 0xA853,
+ 52098 - 44032: 0xA854,
+ 52099 - 44032: 0xA855,
+ 52100 - 44032: 0xA856,
+ 52101 - 44032: 0xA857,
+ 52102 - 44032: 0xA858,
+ 52103 - 44032: 0xA859,
+ 52104 - 44032: 0xA85A,
+ 52105 - 44032: 0xA861,
+ 52106 - 44032: 0xA862,
+ 52107 - 44032: 0xA863,
+ 52108 - 44032: 0xA864,
+ 52109 - 44032: 0xA865,
+ 52110 - 44032: 0xA866,
+ 52111 - 44032: 0xA867,
+ 52112 - 44032: 0xA868,
+ 52113 - 44032: 0xA869,
+ 52114 - 44032: 0xA86A,
+ 52115 - 44032: 0xA86B,
+ 52116 - 44032: 0xA86C,
+ 52117 - 44032: 0xA86D,
+ 52118 - 44032: 0xA86E,
+ 52119 - 44032: 0xA86F,
+ 52120 - 44032: 0xA870,
+ 52121 - 44032: 0xA871,
+ 52122 - 44032: 0xA872,
+ 52123 - 44032: 0xA873,
+ 52124 - 44032: 0xC2E8,
+ 52125 - 44032: 0xA874,
+ 52126 - 44032: 0xA875,
+ 52127 - 44032: 0xA876,
+ 52128 - 44032: 0xA877,
+ 52129 - 44032: 0xA878,
+ 52130 - 44032: 0xA879,
+ 52131 - 44032: 0xA87A,
+ 52132 - 44032: 0xA881,
+ 52133 - 44032: 0xA882,
+ 52134 - 44032: 0xA883,
+ 52135 - 44032: 0xA884,
+ 52136 - 44032: 0xA885,
+ 52137 - 44032: 0xA886,
+ 52138 - 44032: 0xA887,
+ 52139 - 44032: 0xA888,
+ 52140 - 44032: 0xA889,
+ 52141 - 44032: 0xA88A,
+ 52142 - 44032: 0xA88B,
+ 52143 - 44032: 0xA88C,
+ 52144 - 44032: 0xA88D,
+ 52145 - 44032: 0xA88E,
+ 52146 - 44032: 0xA88F,
+ 52147 - 44032: 0xA890,
+ 52148 - 44032: 0xA891,
+ 52149 - 44032: 0xA892,
+ 52150 - 44032: 0xA893,
+ 52151 - 44032: 0xA894,
+ 52152 - 44032: 0xC2E9,
+ 52153 - 44032: 0xA895,
+ 52154 - 44032: 0xA896,
+ 52155 - 44032: 0xA897,
+ 52156 - 44032: 0xA898,
+ 52157 - 44032: 0xA899,
+ 52158 - 44032: 0xA89A,
+ 52159 - 44032: 0xA89B,
+ 52160 - 44032: 0xA89C,
+ 52161 - 44032: 0xA89D,
+ 52162 - 44032: 0xA89E,
+ 52163 - 44032: 0xA89F,
+ 52164 - 44032: 0xA8A0,
+ 52165 - 44032: 0xA941,
+ 52166 - 44032: 0xA942,
+ 52167 - 44032: 0xA943,
+ 52168 - 44032: 0xA944,
+ 52169 - 44032: 0xA945,
+ 52170 - 44032: 0xA946,
+ 52171 - 44032: 0xA947,
+ 52172 - 44032: 0xA948,
+ 52173 - 44032: 0xA949,
+ 52174 - 44032: 0xA94A,
+ 52175 - 44032: 0xA94B,
+ 52176 - 44032: 0xA94C,
+ 52177 - 44032: 0xA94D,
+ 52178 - 44032: 0xA94E,
+ 52179 - 44032: 0xA94F,
+ 52180 - 44032: 0xC2EA,
+ 52181 - 44032: 0xA950,
+ 52182 - 44032: 0xA951,
+ 52183 - 44032: 0xA952,
+ 52184 - 44032: 0xA953,
+ 52185 - 44032: 0xA954,
+ 52186 - 44032: 0xA955,
+ 52187 - 44032: 0xA956,
+ 52188 - 44032: 0xA957,
+ 52189 - 44032: 0xA958,
+ 52190 - 44032: 0xA959,
+ 52191 - 44032: 0xA95A,
+ 52192 - 44032: 0xA961,
+ 52193 - 44032: 0xA962,
+ 52194 - 44032: 0xA963,
+ 52195 - 44032: 0xA964,
+ 52196 - 44032: 0xC2EB,
+ 52197 - 44032: 0xA965,
+ 52198 - 44032: 0xA966,
+ 52199 - 44032: 0xC2EC,
+ 52200 - 44032: 0xA967,
+ 52201 - 44032: 0xC2ED,
+ 52202 - 44032: 0xA968,
+ 52203 - 44032: 0xA969,
+ 52204 - 44032: 0xA96A,
+ 52205 - 44032: 0xA96B,
+ 52206 - 44032: 0xA96C,
+ 52207 - 44032: 0xA96D,
+ 52208 - 44032: 0xA96E,
+ 52209 - 44032: 0xA96F,
+ 52210 - 44032: 0xA970,
+ 52211 - 44032: 0xA971,
+ 52212 - 44032: 0xA972,
+ 52213 - 44032: 0xA973,
+ 52214 - 44032: 0xA974,
+ 52215 - 44032: 0xA975,
+ 52216 - 44032: 0xA976,
+ 52217 - 44032: 0xA977,
+ 52218 - 44032: 0xA978,
+ 52219 - 44032: 0xA979,
+ 52220 - 44032: 0xA97A,
+ 52221 - 44032: 0xA981,
+ 52222 - 44032: 0xA982,
+ 52223 - 44032: 0xA983,
+ 52224 - 44032: 0xA984,
+ 52225 - 44032: 0xA985,
+ 52226 - 44032: 0xA986,
+ 52227 - 44032: 0xA987,
+ 52228 - 44032: 0xA988,
+ 52229 - 44032: 0xA989,
+ 52230 - 44032: 0xA98A,
+ 52231 - 44032: 0xA98B,
+ 52232 - 44032: 0xA98C,
+ 52233 - 44032: 0xA98D,
+ 52234 - 44032: 0xA98E,
+ 52235 - 44032: 0xA98F,
+ 52236 - 44032: 0xC2EE,
+ 52237 - 44032: 0xC2EF,
+ 52238 - 44032: 0xA990,
+ 52239 - 44032: 0xA991,
+ 52240 - 44032: 0xC2F0,
+ 52241 - 44032: 0xA992,
+ 52242 - 44032: 0xA993,
+ 52243 - 44032: 0xA994,
+ 52244 - 44032: 0xC2F1,
+ 52245 - 44032: 0xA995,
+ 52246 - 44032: 0xA996,
+ 52247 - 44032: 0xA997,
+ 52248 - 44032: 0xA998,
+ 52249 - 44032: 0xA999,
+ 52250 - 44032: 0xA99A,
+ 52251 - 44032: 0xA99B,
+ 52252 - 44032: 0xC2F2,
+ 52253 - 44032: 0xC2F3,
+ 52254 - 44032: 0xA99C,
+ 52255 - 44032: 0xA99D,
+ 52256 - 44032: 0xA99E,
+ 52257 - 44032: 0xC2F4,
+ 52258 - 44032: 0xC2F5,
+ 52259 - 44032: 0xA99F,
+ 52260 - 44032: 0xA9A0,
+ 52261 - 44032: 0xAA41,
+ 52262 - 44032: 0xAA42,
+ 52263 - 44032: 0xC2F6,
+ 52264 - 44032: 0xC2F7,
+ 52265 - 44032: 0xC2F8,
+ 52266 - 44032: 0xAA43,
+ 52267 - 44032: 0xAA44,
+ 52268 - 44032: 0xC2F9,
+ 52269 - 44032: 0xAA45,
+ 52270 - 44032: 0xC2FA,
+ 52271 - 44032: 0xAA46,
+ 52272 - 44032: 0xC2FB,
+ 52273 - 44032: 0xAA47,
+ 52274 - 44032: 0xAA48,
+ 52275 - 44032: 0xAA49,
+ 52276 - 44032: 0xAA4A,
+ 52277 - 44032: 0xAA4B,
+ 52278 - 44032: 0xAA4C,
+ 52279 - 44032: 0xAA4D,
+ 52280 - 44032: 0xC2FC,
+ 52281 - 44032: 0xC2FD,
+ 52282 - 44032: 0xAA4E,
+ 52283 - 44032: 0xC2FE,
+ 52284 - 44032: 0xC3A1,
+ 52285 - 44032: 0xC3A2,
+ 52286 - 44032: 0xC3A3,
+ 52287 - 44032: 0xAA4F,
+ 52288 - 44032: 0xAA50,
+ 52289 - 44032: 0xAA51,
+ 52290 - 44032: 0xAA52,
+ 52291 - 44032: 0xAA53,
+ 52292 - 44032: 0xC3A4,
+ 52293 - 44032: 0xC3A5,
+ 52294 - 44032: 0xAA54,
+ 52295 - 44032: 0xAA55,
+ 52296 - 44032: 0xC3A6,
+ 52297 - 44032: 0xAA56,
+ 52298 - 44032: 0xAA57,
+ 52299 - 44032: 0xAA58,
+ 52300 - 44032: 0xC3A7,
+ 52301 - 44032: 0xAA59,
+ 52302 - 44032: 0xAA5A,
+ 52303 - 44032: 0xAA61,
+ 52304 - 44032: 0xAA62,
+ 52305 - 44032: 0xAA63,
+ 52306 - 44032: 0xAA64,
+ 52307 - 44032: 0xAA65,
+ 52308 - 44032: 0xC3A8,
+ 52309 - 44032: 0xC3A9,
+ 52310 - 44032: 0xAA66,
+ 52311 - 44032: 0xC3AA,
+ 52312 - 44032: 0xC3AB,
+ 52313 - 44032: 0xC3AC,
+ 52314 - 44032: 0xAA67,
+ 52315 - 44032: 0xAA68,
+ 52316 - 44032: 0xAA69,
+ 52317 - 44032: 0xAA6A,
+ 52318 - 44032: 0xAA6B,
+ 52319 - 44032: 0xAA6C,
+ 52320 - 44032: 0xC3AD,
+ 52321 - 44032: 0xAA6D,
+ 52322 - 44032: 0xAA6E,
+ 52323 - 44032: 0xAA6F,
+ 52324 - 44032: 0xC3AE,
+ 52325 - 44032: 0xAA70,
+ 52326 - 44032: 0xC3AF,
+ 52327 - 44032: 0xAA71,
+ 52328 - 44032: 0xC3B0,
+ 52329 - 44032: 0xAA72,
+ 52330 - 44032: 0xAA73,
+ 52331 - 44032: 0xAA74,
+ 52332 - 44032: 0xAA75,
+ 52333 - 44032: 0xAA76,
+ 52334 - 44032: 0xAA77,
+ 52335 - 44032: 0xAA78,
+ 52336 - 44032: 0xC3B1,
+ 52337 - 44032: 0xAA79,
+ 52338 - 44032: 0xAA7A,
+ 52339 - 44032: 0xAA81,
+ 52340 - 44032: 0xAA82,
+ 52341 - 44032: 0xC3B2,
+ 52342 - 44032: 0xAA83,
+ 52343 - 44032: 0xAA84,
+ 52344 - 44032: 0xAA85,
+ 52345 - 44032: 0xAA86,
+ 52346 - 44032: 0xAA87,
+ 52347 - 44032: 0xAA88,
+ 52348 - 44032: 0xAA89,
+ 52349 - 44032: 0xAA8A,
+ 52350 - 44032: 0xAA8B,
+ 52351 - 44032: 0xAA8C,
+ 52352 - 44032: 0xAA8D,
+ 52353 - 44032: 0xAA8E,
+ 52354 - 44032: 0xAA8F,
+ 52355 - 44032: 0xAA90,
+ 52356 - 44032: 0xAA91,
+ 52357 - 44032: 0xAA92,
+ 52358 - 44032: 0xAA93,
+ 52359 - 44032: 0xAA94,
+ 52360 - 44032: 0xAA95,
+ 52361 - 44032: 0xAA96,
+ 52362 - 44032: 0xAA97,
+ 52363 - 44032: 0xAA98,
+ 52364 - 44032: 0xAA99,
+ 52365 - 44032: 0xAA9A,
+ 52366 - 44032: 0xAA9B,
+ 52367 - 44032: 0xAA9C,
+ 52368 - 44032: 0xAA9D,
+ 52369 - 44032: 0xAA9E,
+ 52370 - 44032: 0xAA9F,
+ 52371 - 44032: 0xAAA0,
+ 52372 - 44032: 0xAB41,
+ 52373 - 44032: 0xAB42,
+ 52374 - 44032: 0xAB43,
+ 52375 - 44032: 0xAB44,
+ 52376 - 44032: 0xC3B3,
+ 52377 - 44032: 0xC3B4,
+ 52378 - 44032: 0xAB45,
+ 52379 - 44032: 0xAB46,
+ 52380 - 44032: 0xC3B5,
+ 52381 - 44032: 0xAB47,
+ 52382 - 44032: 0xAB48,
+ 52383 - 44032: 0xAB49,
+ 52384 - 44032: 0xC3B6,
+ 52385 - 44032: 0xAB4A,
+ 52386 - 44032: 0xAB4B,
+ 52387 - 44032: 0xAB4C,
+ 52388 - 44032: 0xAB4D,
+ 52389 - 44032: 0xAB4E,
+ 52390 - 44032: 0xAB4F,
+ 52391 - 44032: 0xAB50,
+ 52392 - 44032: 0xC3B7,
+ 52393 - 44032: 0xC3B8,
+ 52394 - 44032: 0xAB51,
+ 52395 - 44032: 0xC3B9,
+ 52396 - 44032: 0xC3BA,
+ 52397 - 44032: 0xC3BB,
+ 52398 - 44032: 0xAB52,
+ 52399 - 44032: 0xAB53,
+ 52400 - 44032: 0xAB54,
+ 52401 - 44032: 0xAB55,
+ 52402 - 44032: 0xAB56,
+ 52403 - 44032: 0xAB57,
+ 52404 - 44032: 0xC3BC,
+ 52405 - 44032: 0xC3BD,
+ 52406 - 44032: 0xAB58,
+ 52407 - 44032: 0xAB59,
+ 52408 - 44032: 0xC3BE,
+ 52409 - 44032: 0xAB5A,
+ 52410 - 44032: 0xAB61,
+ 52411 - 44032: 0xAB62,
+ 52412 - 44032: 0xC3BF,
+ 52413 - 44032: 0xAB63,
+ 52414 - 44032: 0xAB64,
+ 52415 - 44032: 0xAB65,
+ 52416 - 44032: 0xAB66,
+ 52417 - 44032: 0xAB67,
+ 52418 - 44032: 0xAB68,
+ 52419 - 44032: 0xAB69,
+ 52420 - 44032: 0xC3C0,
+ 52421 - 44032: 0xC3C1,
+ 52422 - 44032: 0xAB6A,
+ 52423 - 44032: 0xC3C2,
+ 52424 - 44032: 0xAB6B,
+ 52425 - 44032: 0xC3C3,
+ 52426 - 44032: 0xAB6C,
+ 52427 - 44032: 0xAB6D,
+ 52428 - 44032: 0xAB6E,
+ 52429 - 44032: 0xAB6F,
+ 52430 - 44032: 0xAB70,
+ 52431 - 44032: 0xAB71,
+ 52432 - 44032: 0xC3C4,
+ 52433 - 44032: 0xAB72,
+ 52434 - 44032: 0xAB73,
+ 52435 - 44032: 0xAB74,
+ 52436 - 44032: 0xC3C5,
+ 52437 - 44032: 0xAB75,
+ 52438 - 44032: 0xAB76,
+ 52439 - 44032: 0xAB77,
+ 52440 - 44032: 0xAB78,
+ 52441 - 44032: 0xAB79,
+ 52442 - 44032: 0xAB7A,
+ 52443 - 44032: 0xAB81,
+ 52444 - 44032: 0xAB82,
+ 52445 - 44032: 0xAB83,
+ 52446 - 44032: 0xAB84,
+ 52447 - 44032: 0xAB85,
+ 52448 - 44032: 0xAB86,
+ 52449 - 44032: 0xAB87,
+ 52450 - 44032: 0xAB88,
+ 52451 - 44032: 0xAB89,
+ 52452 - 44032: 0xC3C6,
+ 52453 - 44032: 0xAB8A,
+ 52454 - 44032: 0xAB8B,
+ 52455 - 44032: 0xAB8C,
+ 52456 - 44032: 0xAB8D,
+ 52457 - 44032: 0xAB8E,
+ 52458 - 44032: 0xAB8F,
+ 52459 - 44032: 0xAB90,
+ 52460 - 44032: 0xC3C7,
+ 52461 - 44032: 0xAB91,
+ 52462 - 44032: 0xAB92,
+ 52463 - 44032: 0xAB93,
+ 52464 - 44032: 0xC3C8,
+ 52465 - 44032: 0xAB94,
+ 52466 - 44032: 0xAB95,
+ 52467 - 44032: 0xAB96,
+ 52468 - 44032: 0xAB97,
+ 52469 - 44032: 0xAB98,
+ 52470 - 44032: 0xAB99,
+ 52471 - 44032: 0xAB9A,
+ 52472 - 44032: 0xAB9B,
+ 52473 - 44032: 0xAB9C,
+ 52474 - 44032: 0xAB9D,
+ 52475 - 44032: 0xAB9E,
+ 52476 - 44032: 0xAB9F,
+ 52477 - 44032: 0xABA0,
+ 52478 - 44032: 0xAC41,
+ 52479 - 44032: 0xAC42,
+ 52480 - 44032: 0xAC43,
+ 52481 - 44032: 0xC3C9,
+ 52482 - 44032: 0xAC44,
+ 52483 - 44032: 0xAC45,
+ 52484 - 44032: 0xAC46,
+ 52485 - 44032: 0xAC47,
+ 52486 - 44032: 0xAC48,
+ 52487 - 44032: 0xAC49,
+ 52488 - 44032: 0xC3CA,
+ 52489 - 44032: 0xC3CB,
+ 52490 - 44032: 0xAC4A,
+ 52491 - 44032: 0xAC4B,
+ 52492 - 44032: 0xC3CC,
+ 52493 - 44032: 0xAC4C,
+ 52494 - 44032: 0xAC4D,
+ 52495 - 44032: 0xAC4E,
+ 52496 - 44032: 0xC3CD,
+ 52497 - 44032: 0xAC4F,
+ 52498 - 44032: 0xAC50,
+ 52499 - 44032: 0xAC51,
+ 52500 - 44032: 0xAC52,
+ 52501 - 44032: 0xAC53,
+ 52502 - 44032: 0xAC54,
+ 52503 - 44032: 0xAC55,
+ 52504 - 44032: 0xC3CE,
+ 52505 - 44032: 0xC3CF,
+ 52506 - 44032: 0xAC56,
+ 52507 - 44032: 0xC3D0,
+ 52508 - 44032: 0xAC57,
+ 52509 - 44032: 0xC3D1,
+ 52510 - 44032: 0xAC58,
+ 52511 - 44032: 0xAC59,
+ 52512 - 44032: 0xAC5A,
+ 52513 - 44032: 0xAC61,
+ 52514 - 44032: 0xAC62,
+ 52515 - 44032: 0xAC63,
+ 52516 - 44032: 0xC3D2,
+ 52517 - 44032: 0xAC64,
+ 52518 - 44032: 0xAC65,
+ 52519 - 44032: 0xAC66,
+ 52520 - 44032: 0xC3D3,
+ 52521 - 44032: 0xAC67,
+ 52522 - 44032: 0xAC68,
+ 52523 - 44032: 0xAC69,
+ 52524 - 44032: 0xC3D4,
+ 52525 - 44032: 0xAC6A,
+ 52526 - 44032: 0xAC6B,
+ 52527 - 44032: 0xAC6C,
+ 52528 - 44032: 0xAC6D,
+ 52529 - 44032: 0xAC6E,
+ 52530 - 44032: 0xAC6F,
+ 52531 - 44032: 0xAC70,
+ 52532 - 44032: 0xAC71,
+ 52533 - 44032: 0xAC72,
+ 52534 - 44032: 0xAC73,
+ 52535 - 44032: 0xAC74,
+ 52536 - 44032: 0xAC75,
+ 52537 - 44032: 0xC3D5,
+ 52538 - 44032: 0xAC76,
+ 52539 - 44032: 0xAC77,
+ 52540 - 44032: 0xAC78,
+ 52541 - 44032: 0xAC79,
+ 52542 - 44032: 0xAC7A,
+ 52543 - 44032: 0xAC81,
+ 52544 - 44032: 0xAC82,
+ 52545 - 44032: 0xAC83,
+ 52546 - 44032: 0xAC84,
+ 52547 - 44032: 0xAC85,
+ 52548 - 44032: 0xAC86,
+ 52549 - 44032: 0xAC87,
+ 52550 - 44032: 0xAC88,
+ 52551 - 44032: 0xAC89,
+ 52552 - 44032: 0xAC8A,
+ 52553 - 44032: 0xAC8B,
+ 52554 - 44032: 0xAC8C,
+ 52555 - 44032: 0xAC8D,
+ 52556 - 44032: 0xAC8E,
+ 52557 - 44032: 0xAC8F,
+ 52558 - 44032: 0xAC90,
+ 52559 - 44032: 0xAC91,
+ 52560 - 44032: 0xAC92,
+ 52561 - 44032: 0xAC93,
+ 52562 - 44032: 0xAC94,
+ 52563 - 44032: 0xAC95,
+ 52564 - 44032: 0xAC96,
+ 52565 - 44032: 0xAC97,
+ 52566 - 44032: 0xAC98,
+ 52567 - 44032: 0xAC99,
+ 52568 - 44032: 0xAC9A,
+ 52569 - 44032: 0xAC9B,
+ 52570 - 44032: 0xAC9C,
+ 52571 - 44032: 0xAC9D,
+ 52572 - 44032: 0xC3D6,
+ 52573 - 44032: 0xAC9E,
+ 52574 - 44032: 0xAC9F,
+ 52575 - 44032: 0xACA0,
+ 52576 - 44032: 0xC3D7,
+ 52577 - 44032: 0xAD41,
+ 52578 - 44032: 0xAD42,
+ 52579 - 44032: 0xAD43,
+ 52580 - 44032: 0xC3D8,
+ 52581 - 44032: 0xAD44,
+ 52582 - 44032: 0xAD45,
+ 52583 - 44032: 0xAD46,
+ 52584 - 44032: 0xAD47,
+ 52585 - 44032: 0xAD48,
+ 52586 - 44032: 0xAD49,
+ 52587 - 44032: 0xAD4A,
+ 52588 - 44032: 0xC3D9,
+ 52589 - 44032: 0xC3DA,
+ 52590 - 44032: 0xAD4B,
+ 52591 - 44032: 0xC3DB,
+ 52592 - 44032: 0xAD4C,
+ 52593 - 44032: 0xC3DC,
+ 52594 - 44032: 0xAD4D,
+ 52595 - 44032: 0xAD4E,
+ 52596 - 44032: 0xAD4F,
+ 52597 - 44032: 0xAD50,
+ 52598 - 44032: 0xAD51,
+ 52599 - 44032: 0xAD52,
+ 52600 - 44032: 0xC3DD,
+ 52601 - 44032: 0xAD53,
+ 52602 - 44032: 0xAD54,
+ 52603 - 44032: 0xAD55,
+ 52604 - 44032: 0xAD56,
+ 52605 - 44032: 0xAD57,
+ 52606 - 44032: 0xAD58,
+ 52607 - 44032: 0xAD59,
+ 52608 - 44032: 0xAD5A,
+ 52609 - 44032: 0xAD61,
+ 52610 - 44032: 0xAD62,
+ 52611 - 44032: 0xAD63,
+ 52612 - 44032: 0xAD64,
+ 52613 - 44032: 0xAD65,
+ 52614 - 44032: 0xAD66,
+ 52615 - 44032: 0xAD67,
+ 52616 - 44032: 0xC3DE,
+ 52617 - 44032: 0xAD68,
+ 52618 - 44032: 0xAD69,
+ 52619 - 44032: 0xAD6A,
+ 52620 - 44032: 0xAD6B,
+ 52621 - 44032: 0xAD6C,
+ 52622 - 44032: 0xAD6D,
+ 52623 - 44032: 0xAD6E,
+ 52624 - 44032: 0xAD6F,
+ 52625 - 44032: 0xAD70,
+ 52626 - 44032: 0xAD71,
+ 52627 - 44032: 0xAD72,
+ 52628 - 44032: 0xC3DF,
+ 52629 - 44032: 0xC3E0,
+ 52630 - 44032: 0xAD73,
+ 52631 - 44032: 0xAD74,
+ 52632 - 44032: 0xC3E1,
+ 52633 - 44032: 0xAD75,
+ 52634 - 44032: 0xAD76,
+ 52635 - 44032: 0xAD77,
+ 52636 - 44032: 0xC3E2,
+ 52637 - 44032: 0xAD78,
+ 52638 - 44032: 0xAD79,
+ 52639 - 44032: 0xAD7A,
+ 52640 - 44032: 0xAD81,
+ 52641 - 44032: 0xAD82,
+ 52642 - 44032: 0xAD83,
+ 52643 - 44032: 0xAD84,
+ 52644 - 44032: 0xC3E3,
+ 52645 - 44032: 0xC3E4,
+ 52646 - 44032: 0xAD85,
+ 52647 - 44032: 0xC3E5,
+ 52648 - 44032: 0xAD86,
+ 52649 - 44032: 0xC3E6,
+ 52650 - 44032: 0xAD87,
+ 52651 - 44032: 0xAD88,
+ 52652 - 44032: 0xAD89,
+ 52653 - 44032: 0xAD8A,
+ 52654 - 44032: 0xAD8B,
+ 52655 - 44032: 0xAD8C,
+ 52656 - 44032: 0xC3E7,
+ 52657 - 44032: 0xAD8D,
+ 52658 - 44032: 0xAD8E,
+ 52659 - 44032: 0xAD8F,
+ 52660 - 44032: 0xAD90,
+ 52661 - 44032: 0xAD91,
+ 52662 - 44032: 0xAD92,
+ 52663 - 44032: 0xAD93,
+ 52664 - 44032: 0xAD94,
+ 52665 - 44032: 0xAD95,
+ 52666 - 44032: 0xAD96,
+ 52667 - 44032: 0xAD97,
+ 52668 - 44032: 0xAD98,
+ 52669 - 44032: 0xAD99,
+ 52670 - 44032: 0xAD9A,
+ 52671 - 44032: 0xAD9B,
+ 52672 - 44032: 0xAD9C,
+ 52673 - 44032: 0xAD9D,
+ 52674 - 44032: 0xAD9E,
+ 52675 - 44032: 0xAD9F,
+ 52676 - 44032: 0xC3E8,
+ 52677 - 44032: 0xADA0,
+ 52678 - 44032: 0xAE41,
+ 52679 - 44032: 0xAE42,
+ 52680 - 44032: 0xAE43,
+ 52681 - 44032: 0xAE44,
+ 52682 - 44032: 0xAE45,
+ 52683 - 44032: 0xAE46,
+ 52684 - 44032: 0xC3E9,
+ 52685 - 44032: 0xAE47,
+ 52686 - 44032: 0xAE48,
+ 52687 - 44032: 0xAE49,
+ 52688 - 44032: 0xC3EA,
+ 52689 - 44032: 0xAE4A,
+ 52690 - 44032: 0xAE4B,
+ 52691 - 44032: 0xAE4C,
+ 52692 - 44032: 0xAE4D,
+ 52693 - 44032: 0xAE4E,
+ 52694 - 44032: 0xAE4F,
+ 52695 - 44032: 0xAE50,
+ 52696 - 44032: 0xAE51,
+ 52697 - 44032: 0xAE52,
+ 52698 - 44032: 0xAE53,
+ 52699 - 44032: 0xAE54,
+ 52700 - 44032: 0xAE55,
+ 52701 - 44032: 0xAE56,
+ 52702 - 44032: 0xAE57,
+ 52703 - 44032: 0xAE58,
+ 52704 - 44032: 0xAE59,
+ 52705 - 44032: 0xAE5A,
+ 52706 - 44032: 0xAE61,
+ 52707 - 44032: 0xAE62,
+ 52708 - 44032: 0xAE63,
+ 52709 - 44032: 0xAE64,
+ 52710 - 44032: 0xAE65,
+ 52711 - 44032: 0xAE66,
+ 52712 - 44032: 0xC3EB,
+ 52713 - 44032: 0xAE67,
+ 52714 - 44032: 0xAE68,
+ 52715 - 44032: 0xAE69,
+ 52716 - 44032: 0xC3EC,
+ 52717 - 44032: 0xAE6A,
+ 52718 - 44032: 0xAE6B,
+ 52719 - 44032: 0xAE6C,
+ 52720 - 44032: 0xC3ED,
+ 52721 - 44032: 0xAE6D,
+ 52722 - 44032: 0xAE6E,
+ 52723 - 44032: 0xAE6F,
+ 52724 - 44032: 0xAE70,
+ 52725 - 44032: 0xAE71,
+ 52726 - 44032: 0xAE72,
+ 52727 - 44032: 0xAE73,
+ 52728 - 44032: 0xC3EE,
+ 52729 - 44032: 0xC3EF,
+ 52730 - 44032: 0xAE74,
+ 52731 - 44032: 0xC3F0,
+ 52732 - 44032: 0xAE75,
+ 52733 - 44032: 0xC3F1,
+ 52734 - 44032: 0xAE76,
+ 52735 - 44032: 0xAE77,
+ 52736 - 44032: 0xAE78,
+ 52737 - 44032: 0xAE79,
+ 52738 - 44032: 0xAE7A,
+ 52739 - 44032: 0xAE81,
+ 52740 - 44032: 0xC3F2,
+ 52741 - 44032: 0xAE82,
+ 52742 - 44032: 0xAE83,
+ 52743 - 44032: 0xAE84,
+ 52744 - 44032: 0xC3F3,
+ 52745 - 44032: 0xAE85,
+ 52746 - 44032: 0xAE86,
+ 52747 - 44032: 0xAE87,
+ 52748 - 44032: 0xC3F4,
+ 52749 - 44032: 0xAE88,
+ 52750 - 44032: 0xAE89,
+ 52751 - 44032: 0xAE8A,
+ 52752 - 44032: 0xAE8B,
+ 52753 - 44032: 0xAE8C,
+ 52754 - 44032: 0xAE8D,
+ 52755 - 44032: 0xAE8E,
+ 52756 - 44032: 0xC3F5,
+ 52757 - 44032: 0xAE8F,
+ 52758 - 44032: 0xAE90,
+ 52759 - 44032: 0xAE91,
+ 52760 - 44032: 0xAE92,
+ 52761 - 44032: 0xC3F6,
+ 52762 - 44032: 0xAE93,
+ 52763 - 44032: 0xAE94,
+ 52764 - 44032: 0xAE95,
+ 52765 - 44032: 0xAE96,
+ 52766 - 44032: 0xAE97,
+ 52767 - 44032: 0xAE98,
+ 52768 - 44032: 0xC3F7,
+ 52769 - 44032: 0xC3F8,
+ 52770 - 44032: 0xAE99,
+ 52771 - 44032: 0xAE9A,
+ 52772 - 44032: 0xC3F9,
+ 52773 - 44032: 0xAE9B,
+ 52774 - 44032: 0xAE9C,
+ 52775 - 44032: 0xAE9D,
+ 52776 - 44032: 0xC3FA,
+ 52777 - 44032: 0xAE9E,
+ 52778 - 44032: 0xAE9F,
+ 52779 - 44032: 0xAEA0,
+ 52780 - 44032: 0xAF41,
+ 52781 - 44032: 0xAF42,
+ 52782 - 44032: 0xAF43,
+ 52783 - 44032: 0xAF44,
+ 52784 - 44032: 0xC3FB,
+ 52785 - 44032: 0xC3FC,
+ 52786 - 44032: 0xAF45,
+ 52787 - 44032: 0xC3FD,
+ 52788 - 44032: 0xAF46,
+ 52789 - 44032: 0xC3FE,
+ 52790 - 44032: 0xAF47,
+ 52791 - 44032: 0xAF48,
+ 52792 - 44032: 0xAF49,
+ 52793 - 44032: 0xAF4A,
+ 52794 - 44032: 0xAF4B,
+ 52795 - 44032: 0xAF4C,
+ 52796 - 44032: 0xAF4D,
+ 52797 - 44032: 0xAF4E,
+ 52798 - 44032: 0xAF4F,
+ 52799 - 44032: 0xAF50,
+ 52800 - 44032: 0xAF51,
+ 52801 - 44032: 0xAF52,
+ 52802 - 44032: 0xAF53,
+ 52803 - 44032: 0xAF54,
+ 52804 - 44032: 0xAF55,
+ 52805 - 44032: 0xAF56,
+ 52806 - 44032: 0xAF57,
+ 52807 - 44032: 0xAF58,
+ 52808 - 44032: 0xAF59,
+ 52809 - 44032: 0xAF5A,
+ 52810 - 44032: 0xAF61,
+ 52811 - 44032: 0xAF62,
+ 52812 - 44032: 0xAF63,
+ 52813 - 44032: 0xAF64,
+ 52814 - 44032: 0xAF65,
+ 52815 - 44032: 0xAF66,
+ 52816 - 44032: 0xAF67,
+ 52817 - 44032: 0xAF68,
+ 52818 - 44032: 0xAF69,
+ 52819 - 44032: 0xAF6A,
+ 52820 - 44032: 0xAF6B,
+ 52821 - 44032: 0xAF6C,
+ 52822 - 44032: 0xAF6D,
+ 52823 - 44032: 0xAF6E,
+ 52824 - 44032: 0xC4A1,
+ 52825 - 44032: 0xC4A2,
+ 52826 - 44032: 0xAF6F,
+ 52827 - 44032: 0xAF70,
+ 52828 - 44032: 0xC4A3,
+ 52829 - 44032: 0xAF71,
+ 52830 - 44032: 0xAF72,
+ 52831 - 44032: 0xC4A4,
+ 52832 - 44032: 0xC4A5,
+ 52833 - 44032: 0xC4A6,
+ 52834 - 44032: 0xAF73,
+ 52835 - 44032: 0xAF74,
+ 52836 - 44032: 0xAF75,
+ 52837 - 44032: 0xAF76,
+ 52838 - 44032: 0xAF77,
+ 52839 - 44032: 0xAF78,
+ 52840 - 44032: 0xC4A7,
+ 52841 - 44032: 0xC4A8,
+ 52842 - 44032: 0xAF79,
+ 52843 - 44032: 0xC4A9,
+ 52844 - 44032: 0xAF7A,
+ 52845 - 44032: 0xC4AA,
+ 52846 - 44032: 0xAF81,
+ 52847 - 44032: 0xAF82,
+ 52848 - 44032: 0xAF83,
+ 52849 - 44032: 0xAF84,
+ 52850 - 44032: 0xAF85,
+ 52851 - 44032: 0xAF86,
+ 52852 - 44032: 0xC4AB,
+ 52853 - 44032: 0xC4AC,
+ 52854 - 44032: 0xAF87,
+ 52855 - 44032: 0xAF88,
+ 52856 - 44032: 0xC4AD,
+ 52857 - 44032: 0xAF89,
+ 52858 - 44032: 0xAF8A,
+ 52859 - 44032: 0xAF8B,
+ 52860 - 44032: 0xC4AE,
+ 52861 - 44032: 0xAF8C,
+ 52862 - 44032: 0xAF8D,
+ 52863 - 44032: 0xAF8E,
+ 52864 - 44032: 0xAF8F,
+ 52865 - 44032: 0xAF90,
+ 52866 - 44032: 0xAF91,
+ 52867 - 44032: 0xAF92,
+ 52868 - 44032: 0xC4AF,
+ 52869 - 44032: 0xC4B0,
+ 52870 - 44032: 0xAF93,
+ 52871 - 44032: 0xC4B1,
+ 52872 - 44032: 0xAF94,
+ 52873 - 44032: 0xC4B2,
+ 52874 - 44032: 0xAF95,
+ 52875 - 44032: 0xAF96,
+ 52876 - 44032: 0xAF97,
+ 52877 - 44032: 0xAF98,
+ 52878 - 44032: 0xAF99,
+ 52879 - 44032: 0xAF9A,
+ 52880 - 44032: 0xC4B3,
+ 52881 - 44032: 0xC4B4,
+ 52882 - 44032: 0xAF9B,
+ 52883 - 44032: 0xAF9C,
+ 52884 - 44032: 0xC4B5,
+ 52885 - 44032: 0xAF9D,
+ 52886 - 44032: 0xAF9E,
+ 52887 - 44032: 0xAF9F,
+ 52888 - 44032: 0xC4B6,
+ 52889 - 44032: 0xAFA0,
+ 52890 - 44032: 0xB041,
+ 52891 - 44032: 0xB042,
+ 52892 - 44032: 0xB043,
+ 52893 - 44032: 0xB044,
+ 52894 - 44032: 0xB045,
+ 52895 - 44032: 0xB046,
+ 52896 - 44032: 0xC4B7,
+ 52897 - 44032: 0xC4B8,
+ 52898 - 44032: 0xB047,
+ 52899 - 44032: 0xC4B9,
+ 52900 - 44032: 0xC4BA,
+ 52901 - 44032: 0xC4BB,
+ 52902 - 44032: 0xB048,
+ 52903 - 44032: 0xB049,
+ 52904 - 44032: 0xB04A,
+ 52905 - 44032: 0xB04B,
+ 52906 - 44032: 0xB04C,
+ 52907 - 44032: 0xB04D,
+ 52908 - 44032: 0xC4BC,
+ 52909 - 44032: 0xC4BD,
+ 52910 - 44032: 0xB04E,
+ 52911 - 44032: 0xB04F,
+ 52912 - 44032: 0xB050,
+ 52913 - 44032: 0xB051,
+ 52914 - 44032: 0xB052,
+ 52915 - 44032: 0xB053,
+ 52916 - 44032: 0xB054,
+ 52917 - 44032: 0xB055,
+ 52918 - 44032: 0xB056,
+ 52919 - 44032: 0xB057,
+ 52920 - 44032: 0xB058,
+ 52921 - 44032: 0xB059,
+ 52922 - 44032: 0xB05A,
+ 52923 - 44032: 0xB061,
+ 52924 - 44032: 0xB062,
+ 52925 - 44032: 0xB063,
+ 52926 - 44032: 0xB064,
+ 52927 - 44032: 0xB065,
+ 52928 - 44032: 0xB066,
+ 52929 - 44032: 0xC4BE,
+ 52930 - 44032: 0xB067,
+ 52931 - 44032: 0xB068,
+ 52932 - 44032: 0xB069,
+ 52933 - 44032: 0xB06A,
+ 52934 - 44032: 0xB06B,
+ 52935 - 44032: 0xB06C,
+ 52936 - 44032: 0xB06D,
+ 52937 - 44032: 0xB06E,
+ 52938 - 44032: 0xB06F,
+ 52939 - 44032: 0xB070,
+ 52940 - 44032: 0xB071,
+ 52941 - 44032: 0xB072,
+ 52942 - 44032: 0xB073,
+ 52943 - 44032: 0xB074,
+ 52944 - 44032: 0xB075,
+ 52945 - 44032: 0xB076,
+ 52946 - 44032: 0xB077,
+ 52947 - 44032: 0xB078,
+ 52948 - 44032: 0xB079,
+ 52949 - 44032: 0xB07A,
+ 52950 - 44032: 0xB081,
+ 52951 - 44032: 0xB082,
+ 52952 - 44032: 0xB083,
+ 52953 - 44032: 0xB084,
+ 52954 - 44032: 0xB085,
+ 52955 - 44032: 0xB086,
+ 52956 - 44032: 0xB087,
+ 52957 - 44032: 0xB088,
+ 52958 - 44032: 0xB089,
+ 52959 - 44032: 0xB08A,
+ 52960 - 44032: 0xB08B,
+ 52961 - 44032: 0xB08C,
+ 52962 - 44032: 0xB08D,
+ 52963 - 44032: 0xB08E,
+ 52964 - 44032: 0xC4BF,
+ 52965 - 44032: 0xC4C0,
+ 52966 - 44032: 0xB08F,
+ 52967 - 44032: 0xB090,
+ 52968 - 44032: 0xC4C1,
+ 52969 - 44032: 0xB091,
+ 52970 - 44032: 0xB092,
+ 52971 - 44032: 0xC4C2,
+ 52972 - 44032: 0xC4C3,
+ 52973 - 44032: 0xB093,
+ 52974 - 44032: 0xB094,
+ 52975 - 44032: 0xB095,
+ 52976 - 44032: 0xB096,
+ 52977 - 44032: 0xB097,
+ 52978 - 44032: 0xB098,
+ 52979 - 44032: 0xB099,
+ 52980 - 44032: 0xC4C4,
+ 52981 - 44032: 0xC4C5,
+ 52982 - 44032: 0xB09A,
+ 52983 - 44032: 0xC4C6,
+ 52984 - 44032: 0xC4C7,
+ 52985 - 44032: 0xC4C8,
+ 52986 - 44032: 0xB09B,
+ 52987 - 44032: 0xB09C,
+ 52988 - 44032: 0xB09D,
+ 52989 - 44032: 0xB09E,
+ 52990 - 44032: 0xB09F,
+ 52991 - 44032: 0xB0A0,
+ 52992 - 44032: 0xC4C9,
+ 52993 - 44032: 0xC4CA,
+ 52994 - 44032: 0xB141,
+ 52995 - 44032: 0xB142,
+ 52996 - 44032: 0xC4CB,
+ 52997 - 44032: 0xB143,
+ 52998 - 44032: 0xB144,
+ 52999 - 44032: 0xB145,
+ 53000 - 44032: 0xC4CC,
+ 53001 - 44032: 0xB146,
+ 53002 - 44032: 0xB147,
+ 53003 - 44032: 0xB148,
+ 53004 - 44032: 0xB149,
+ 53005 - 44032: 0xB14A,
+ 53006 - 44032: 0xB14B,
+ 53007 - 44032: 0xB14C,
+ 53008 - 44032: 0xC4CD,
+ 53009 - 44032: 0xC4CE,
+ 53010 - 44032: 0xB14D,
+ 53011 - 44032: 0xC4CF,
+ 53012 - 44032: 0xB14E,
+ 53013 - 44032: 0xC4D0,
+ 53014 - 44032: 0xB14F,
+ 53015 - 44032: 0xB150,
+ 53016 - 44032: 0xB151,
+ 53017 - 44032: 0xB152,
+ 53018 - 44032: 0xB153,
+ 53019 - 44032: 0xB154,
+ 53020 - 44032: 0xC4D1,
+ 53021 - 44032: 0xB155,
+ 53022 - 44032: 0xB156,
+ 53023 - 44032: 0xB157,
+ 53024 - 44032: 0xC4D2,
+ 53025 - 44032: 0xB158,
+ 53026 - 44032: 0xB159,
+ 53027 - 44032: 0xB15A,
+ 53028 - 44032: 0xC4D3,
+ 53029 - 44032: 0xB161,
+ 53030 - 44032: 0xB162,
+ 53031 - 44032: 0xB163,
+ 53032 - 44032: 0xB164,
+ 53033 - 44032: 0xB165,
+ 53034 - 44032: 0xB166,
+ 53035 - 44032: 0xB167,
+ 53036 - 44032: 0xC4D4,
+ 53037 - 44032: 0xC4D5,
+ 53038 - 44032: 0xB168,
+ 53039 - 44032: 0xC4D6,
+ 53040 - 44032: 0xC4D7,
+ 53041 - 44032: 0xC4D8,
+ 53042 - 44032: 0xB169,
+ 53043 - 44032: 0xB16A,
+ 53044 - 44032: 0xB16B,
+ 53045 - 44032: 0xB16C,
+ 53046 - 44032: 0xB16D,
+ 53047 - 44032: 0xB16E,
+ 53048 - 44032: 0xC4D9,
+ 53049 - 44032: 0xB16F,
+ 53050 - 44032: 0xB170,
+ 53051 - 44032: 0xB171,
+ 53052 - 44032: 0xB172,
+ 53053 - 44032: 0xB173,
+ 53054 - 44032: 0xB174,
+ 53055 - 44032: 0xB175,
+ 53056 - 44032: 0xB176,
+ 53057 - 44032: 0xB177,
+ 53058 - 44032: 0xB178,
+ 53059 - 44032: 0xB179,
+ 53060 - 44032: 0xB17A,
+ 53061 - 44032: 0xB181,
+ 53062 - 44032: 0xB182,
+ 53063 - 44032: 0xB183,
+ 53064 - 44032: 0xB184,
+ 53065 - 44032: 0xB185,
+ 53066 - 44032: 0xB186,
+ 53067 - 44032: 0xB187,
+ 53068 - 44032: 0xB188,
+ 53069 - 44032: 0xB189,
+ 53070 - 44032: 0xB18A,
+ 53071 - 44032: 0xB18B,
+ 53072 - 44032: 0xB18C,
+ 53073 - 44032: 0xB18D,
+ 53074 - 44032: 0xB18E,
+ 53075 - 44032: 0xB18F,
+ 53076 - 44032: 0xC4DA,
+ 53077 - 44032: 0xC4DB,
+ 53078 - 44032: 0xB190,
+ 53079 - 44032: 0xB191,
+ 53080 - 44032: 0xC4DC,
+ 53081 - 44032: 0xB192,
+ 53082 - 44032: 0xB193,
+ 53083 - 44032: 0xB194,
+ 53084 - 44032: 0xC4DD,
+ 53085 - 44032: 0xB195,
+ 53086 - 44032: 0xB196,
+ 53087 - 44032: 0xB197,
+ 53088 - 44032: 0xB198,
+ 53089 - 44032: 0xB199,
+ 53090 - 44032: 0xB19A,
+ 53091 - 44032: 0xB19B,
+ 53092 - 44032: 0xC4DE,
+ 53093 - 44032: 0xC4DF,
+ 53094 - 44032: 0xB19C,
+ 53095 - 44032: 0xC4E0,
+ 53096 - 44032: 0xB19D,
+ 53097 - 44032: 0xC4E1,
+ 53098 - 44032: 0xB19E,
+ 53099 - 44032: 0xB19F,
+ 53100 - 44032: 0xB1A0,
+ 53101 - 44032: 0xB241,
+ 53102 - 44032: 0xB242,
+ 53103 - 44032: 0xB243,
+ 53104 - 44032: 0xC4E2,
+ 53105 - 44032: 0xC4E3,
+ 53106 - 44032: 0xB244,
+ 53107 - 44032: 0xB245,
+ 53108 - 44032: 0xC4E4,
+ 53109 - 44032: 0xB246,
+ 53110 - 44032: 0xB247,
+ 53111 - 44032: 0xB248,
+ 53112 - 44032: 0xC4E5,
+ 53113 - 44032: 0xB249,
+ 53114 - 44032: 0xB24A,
+ 53115 - 44032: 0xB24B,
+ 53116 - 44032: 0xB24C,
+ 53117 - 44032: 0xB24D,
+ 53118 - 44032: 0xB24E,
+ 53119 - 44032: 0xB24F,
+ 53120 - 44032: 0xC4E6,
+ 53121 - 44032: 0xB250,
+ 53122 - 44032: 0xB251,
+ 53123 - 44032: 0xB252,
+ 53124 - 44032: 0xB253,
+ 53125 - 44032: 0xC4E7,
+ 53126 - 44032: 0xB254,
+ 53127 - 44032: 0xB255,
+ 53128 - 44032: 0xB256,
+ 53129 - 44032: 0xB257,
+ 53130 - 44032: 0xB258,
+ 53131 - 44032: 0xB259,
+ 53132 - 44032: 0xC4E8,
+ 53133 - 44032: 0xB25A,
+ 53134 - 44032: 0xB261,
+ 53135 - 44032: 0xB262,
+ 53136 - 44032: 0xB263,
+ 53137 - 44032: 0xB264,
+ 53138 - 44032: 0xB265,
+ 53139 - 44032: 0xB266,
+ 53140 - 44032: 0xB267,
+ 53141 - 44032: 0xB268,
+ 53142 - 44032: 0xB269,
+ 53143 - 44032: 0xB26A,
+ 53144 - 44032: 0xB26B,
+ 53145 - 44032: 0xB26C,
+ 53146 - 44032: 0xB26D,
+ 53147 - 44032: 0xB26E,
+ 53148 - 44032: 0xB26F,
+ 53149 - 44032: 0xB270,
+ 53150 - 44032: 0xB271,
+ 53151 - 44032: 0xB272,
+ 53152 - 44032: 0xB273,
+ 53153 - 44032: 0xC4E9,
+ 53154 - 44032: 0xB274,
+ 53155 - 44032: 0xB275,
+ 53156 - 44032: 0xB276,
+ 53157 - 44032: 0xB277,
+ 53158 - 44032: 0xB278,
+ 53159 - 44032: 0xB279,
+ 53160 - 44032: 0xC4EA,
+ 53161 - 44032: 0xB27A,
+ 53162 - 44032: 0xB281,
+ 53163 - 44032: 0xB282,
+ 53164 - 44032: 0xB283,
+ 53165 - 44032: 0xB284,
+ 53166 - 44032: 0xB285,
+ 53167 - 44032: 0xB286,
+ 53168 - 44032: 0xC4EB,
+ 53169 - 44032: 0xB287,
+ 53170 - 44032: 0xB288,
+ 53171 - 44032: 0xB289,
+ 53172 - 44032: 0xB28A,
+ 53173 - 44032: 0xB28B,
+ 53174 - 44032: 0xB28C,
+ 53175 - 44032: 0xB28D,
+ 53176 - 44032: 0xB28E,
+ 53177 - 44032: 0xB28F,
+ 53178 - 44032: 0xB290,
+ 53179 - 44032: 0xB291,
+ 53180 - 44032: 0xB292,
+ 53181 - 44032: 0xB293,
+ 53182 - 44032: 0xB294,
+ 53183 - 44032: 0xB295,
+ 53184 - 44032: 0xB296,
+ 53185 - 44032: 0xB297,
+ 53186 - 44032: 0xB298,
+ 53187 - 44032: 0xB299,
+ 53188 - 44032: 0xC4EC,
+ 53189 - 44032: 0xB29A,
+ 53190 - 44032: 0xB29B,
+ 53191 - 44032: 0xB29C,
+ 53192 - 44032: 0xB29D,
+ 53193 - 44032: 0xB29E,
+ 53194 - 44032: 0xB29F,
+ 53195 - 44032: 0xB2A0,
+ 53196 - 44032: 0xB341,
+ 53197 - 44032: 0xB342,
+ 53198 - 44032: 0xB343,
+ 53199 - 44032: 0xB344,
+ 53200 - 44032: 0xB345,
+ 53201 - 44032: 0xB346,
+ 53202 - 44032: 0xB347,
+ 53203 - 44032: 0xB348,
+ 53204 - 44032: 0xB349,
+ 53205 - 44032: 0xB34A,
+ 53206 - 44032: 0xB34B,
+ 53207 - 44032: 0xB34C,
+ 53208 - 44032: 0xB34D,
+ 53209 - 44032: 0xB34E,
+ 53210 - 44032: 0xB34F,
+ 53211 - 44032: 0xB350,
+ 53212 - 44032: 0xB351,
+ 53213 - 44032: 0xB352,
+ 53214 - 44032: 0xB353,
+ 53215 - 44032: 0xB354,
+ 53216 - 44032: 0xC4ED,
+ 53217 - 44032: 0xC4EE,
+ 53218 - 44032: 0xB355,
+ 53219 - 44032: 0xB356,
+ 53220 - 44032: 0xC4EF,
+ 53221 - 44032: 0xB357,
+ 53222 - 44032: 0xB358,
+ 53223 - 44032: 0xB359,
+ 53224 - 44032: 0xC4F0,
+ 53225 - 44032: 0xB35A,
+ 53226 - 44032: 0xB361,
+ 53227 - 44032: 0xB362,
+ 53228 - 44032: 0xB363,
+ 53229 - 44032: 0xB364,
+ 53230 - 44032: 0xB365,
+ 53231 - 44032: 0xB366,
+ 53232 - 44032: 0xC4F1,
+ 53233 - 44032: 0xC4F2,
+ 53234 - 44032: 0xB367,
+ 53235 - 44032: 0xC4F3,
+ 53236 - 44032: 0xB368,
+ 53237 - 44032: 0xC4F4,
+ 53238 - 44032: 0xB369,
+ 53239 - 44032: 0xB36A,
+ 53240 - 44032: 0xB36B,
+ 53241 - 44032: 0xB36C,
+ 53242 - 44032: 0xB36D,
+ 53243 - 44032: 0xB36E,
+ 53244 - 44032: 0xC4F5,
+ 53245 - 44032: 0xB36F,
+ 53246 - 44032: 0xB370,
+ 53247 - 44032: 0xB371,
+ 53248 - 44032: 0xC4F6,
+ 53249 - 44032: 0xB372,
+ 53250 - 44032: 0xB373,
+ 53251 - 44032: 0xB374,
+ 53252 - 44032: 0xC4F7,
+ 53253 - 44032: 0xB375,
+ 53254 - 44032: 0xB376,
+ 53255 - 44032: 0xB377,
+ 53256 - 44032: 0xB378,
+ 53257 - 44032: 0xB379,
+ 53258 - 44032: 0xB37A,
+ 53259 - 44032: 0xB381,
+ 53260 - 44032: 0xB382,
+ 53261 - 44032: 0xB383,
+ 53262 - 44032: 0xB384,
+ 53263 - 44032: 0xB385,
+ 53264 - 44032: 0xB386,
+ 53265 - 44032: 0xC4F8,
+ 53266 - 44032: 0xB387,
+ 53267 - 44032: 0xB388,
+ 53268 - 44032: 0xB389,
+ 53269 - 44032: 0xB38A,
+ 53270 - 44032: 0xB38B,
+ 53271 - 44032: 0xB38C,
+ 53272 - 44032: 0xC4F9,
+ 53273 - 44032: 0xB38D,
+ 53274 - 44032: 0xB38E,
+ 53275 - 44032: 0xB38F,
+ 53276 - 44032: 0xB390,
+ 53277 - 44032: 0xB391,
+ 53278 - 44032: 0xB392,
+ 53279 - 44032: 0xB393,
+ 53280 - 44032: 0xB394,
+ 53281 - 44032: 0xB395,
+ 53282 - 44032: 0xB396,
+ 53283 - 44032: 0xB397,
+ 53284 - 44032: 0xB398,
+ 53285 - 44032: 0xB399,
+ 53286 - 44032: 0xB39A,
+ 53287 - 44032: 0xB39B,
+ 53288 - 44032: 0xB39C,
+ 53289 - 44032: 0xB39D,
+ 53290 - 44032: 0xB39E,
+ 53291 - 44032: 0xB39F,
+ 53292 - 44032: 0xB3A0,
+ 53293 - 44032: 0xC4FA,
+ 53294 - 44032: 0xB441,
+ 53295 - 44032: 0xB442,
+ 53296 - 44032: 0xB443,
+ 53297 - 44032: 0xB444,
+ 53298 - 44032: 0xB445,
+ 53299 - 44032: 0xB446,
+ 53300 - 44032: 0xC4FB,
+ 53301 - 44032: 0xC4FC,
+ 53302 - 44032: 0xB447,
+ 53303 - 44032: 0xB448,
+ 53304 - 44032: 0xC4FD,
+ 53305 - 44032: 0xB449,
+ 53306 - 44032: 0xB44A,
+ 53307 - 44032: 0xB44B,
+ 53308 - 44032: 0xC4FE,
+ 53309 - 44032: 0xB44C,
+ 53310 - 44032: 0xB44D,
+ 53311 - 44032: 0xB44E,
+ 53312 - 44032: 0xB44F,
+ 53313 - 44032: 0xB450,
+ 53314 - 44032: 0xB451,
+ 53315 - 44032: 0xB452,
+ 53316 - 44032: 0xC5A1,
+ 53317 - 44032: 0xC5A2,
+ 53318 - 44032: 0xB453,
+ 53319 - 44032: 0xC5A3,
+ 53320 - 44032: 0xB454,
+ 53321 - 44032: 0xC5A4,
+ 53322 - 44032: 0xB455,
+ 53323 - 44032: 0xB456,
+ 53324 - 44032: 0xB457,
+ 53325 - 44032: 0xB458,
+ 53326 - 44032: 0xB459,
+ 53327 - 44032: 0xB45A,
+ 53328 - 44032: 0xC5A5,
+ 53329 - 44032: 0xB461,
+ 53330 - 44032: 0xB462,
+ 53331 - 44032: 0xB463,
+ 53332 - 44032: 0xC5A6,
+ 53333 - 44032: 0xB464,
+ 53334 - 44032: 0xB465,
+ 53335 - 44032: 0xB466,
+ 53336 - 44032: 0xC5A7,
+ 53337 - 44032: 0xB467,
+ 53338 - 44032: 0xB468,
+ 53339 - 44032: 0xB469,
+ 53340 - 44032: 0xB46A,
+ 53341 - 44032: 0xB46B,
+ 53342 - 44032: 0xB46C,
+ 53343 - 44032: 0xB46D,
+ 53344 - 44032: 0xC5A8,
+ 53345 - 44032: 0xB46E,
+ 53346 - 44032: 0xB46F,
+ 53347 - 44032: 0xB470,
+ 53348 - 44032: 0xB471,
+ 53349 - 44032: 0xB472,
+ 53350 - 44032: 0xB473,
+ 53351 - 44032: 0xB474,
+ 53352 - 44032: 0xB475,
+ 53353 - 44032: 0xB476,
+ 53354 - 44032: 0xB477,
+ 53355 - 44032: 0xB478,
+ 53356 - 44032: 0xC5A9,
+ 53357 - 44032: 0xC5AA,
+ 53358 - 44032: 0xB479,
+ 53359 - 44032: 0xB47A,
+ 53360 - 44032: 0xC5AB,
+ 53361 - 44032: 0xB481,
+ 53362 - 44032: 0xB482,
+ 53363 - 44032: 0xB483,
+ 53364 - 44032: 0xC5AC,
+ 53365 - 44032: 0xB484,
+ 53366 - 44032: 0xB485,
+ 53367 - 44032: 0xB486,
+ 53368 - 44032: 0xB487,
+ 53369 - 44032: 0xB488,
+ 53370 - 44032: 0xB489,
+ 53371 - 44032: 0xB48A,
+ 53372 - 44032: 0xC5AD,
+ 53373 - 44032: 0xC5AE,
+ 53374 - 44032: 0xB48B,
+ 53375 - 44032: 0xB48C,
+ 53376 - 44032: 0xB48D,
+ 53377 - 44032: 0xC5AF,
+ 53378 - 44032: 0xB48E,
+ 53379 - 44032: 0xB48F,
+ 53380 - 44032: 0xB490,
+ 53381 - 44032: 0xB491,
+ 53382 - 44032: 0xB492,
+ 53383 - 44032: 0xB493,
+ 53384 - 44032: 0xB494,
+ 53385 - 44032: 0xB495,
+ 53386 - 44032: 0xB496,
+ 53387 - 44032: 0xB497,
+ 53388 - 44032: 0xB498,
+ 53389 - 44032: 0xB499,
+ 53390 - 44032: 0xB49A,
+ 53391 - 44032: 0xB49B,
+ 53392 - 44032: 0xB49C,
+ 53393 - 44032: 0xB49D,
+ 53394 - 44032: 0xB49E,
+ 53395 - 44032: 0xB49F,
+ 53396 - 44032: 0xB4A0,
+ 53397 - 44032: 0xB541,
+ 53398 - 44032: 0xB542,
+ 53399 - 44032: 0xB543,
+ 53400 - 44032: 0xB544,
+ 53401 - 44032: 0xB545,
+ 53402 - 44032: 0xB546,
+ 53403 - 44032: 0xB547,
+ 53404 - 44032: 0xB548,
+ 53405 - 44032: 0xB549,
+ 53406 - 44032: 0xB54A,
+ 53407 - 44032: 0xB54B,
+ 53408 - 44032: 0xB54C,
+ 53409 - 44032: 0xB54D,
+ 53410 - 44032: 0xB54E,
+ 53411 - 44032: 0xB54F,
+ 53412 - 44032: 0xC5B0,
+ 53413 - 44032: 0xC5B1,
+ 53414 - 44032: 0xB550,
+ 53415 - 44032: 0xB551,
+ 53416 - 44032: 0xC5B2,
+ 53417 - 44032: 0xB552,
+ 53418 - 44032: 0xB553,
+ 53419 - 44032: 0xB554,
+ 53420 - 44032: 0xC5B3,
+ 53421 - 44032: 0xB555,
+ 53422 - 44032: 0xB556,
+ 53423 - 44032: 0xB557,
+ 53424 - 44032: 0xB558,
+ 53425 - 44032: 0xB559,
+ 53426 - 44032: 0xB55A,
+ 53427 - 44032: 0xB561,
+ 53428 - 44032: 0xC5B4,
+ 53429 - 44032: 0xC5B5,
+ 53430 - 44032: 0xB562,
+ 53431 - 44032: 0xC5B6,
+ 53432 - 44032: 0xB563,
+ 53433 - 44032: 0xC5B7,
+ 53434 - 44032: 0xB564,
+ 53435 - 44032: 0xB565,
+ 53436 - 44032: 0xB566,
+ 53437 - 44032: 0xB567,
+ 53438 - 44032: 0xB568,
+ 53439 - 44032: 0xB569,
+ 53440 - 44032: 0xC5B8,
+ 53441 - 44032: 0xC5B9,
+ 53442 - 44032: 0xB56A,
+ 53443 - 44032: 0xB56B,
+ 53444 - 44032: 0xC5BA,
+ 53445 - 44032: 0xB56C,
+ 53446 - 44032: 0xB56D,
+ 53447 - 44032: 0xB56E,
+ 53448 - 44032: 0xC5BB,
+ 53449 - 44032: 0xC5BC,
+ 53450 - 44032: 0xB56F,
+ 53451 - 44032: 0xB570,
+ 53452 - 44032: 0xB571,
+ 53453 - 44032: 0xB572,
+ 53454 - 44032: 0xB573,
+ 53455 - 44032: 0xB574,
+ 53456 - 44032: 0xC5BD,
+ 53457 - 44032: 0xC5BE,
+ 53458 - 44032: 0xB575,
+ 53459 - 44032: 0xC5BF,
+ 53460 - 44032: 0xC5C0,
+ 53461 - 44032: 0xC5C1,
+ 53462 - 44032: 0xB576,
+ 53463 - 44032: 0xB577,
+ 53464 - 44032: 0xB578,
+ 53465 - 44032: 0xB579,
+ 53466 - 44032: 0xB57A,
+ 53467 - 44032: 0xB581,
+ 53468 - 44032: 0xC5C2,
+ 53469 - 44032: 0xC5C3,
+ 53470 - 44032: 0xB582,
+ 53471 - 44032: 0xB583,
+ 53472 - 44032: 0xC5C4,
+ 53473 - 44032: 0xB584,
+ 53474 - 44032: 0xB585,
+ 53475 - 44032: 0xB586,
+ 53476 - 44032: 0xC5C5,
+ 53477 - 44032: 0xB587,
+ 53478 - 44032: 0xB588,
+ 53479 - 44032: 0xB589,
+ 53480 - 44032: 0xB58A,
+ 53481 - 44032: 0xB58B,
+ 53482 - 44032: 0xB58C,
+ 53483 - 44032: 0xB58D,
+ 53484 - 44032: 0xC5C6,
+ 53485 - 44032: 0xC5C7,
+ 53486 - 44032: 0xB58E,
+ 53487 - 44032: 0xC5C8,
+ 53488 - 44032: 0xC5C9,
+ 53489 - 44032: 0xC5CA,
+ 53490 - 44032: 0xB58F,
+ 53491 - 44032: 0xB590,
+ 53492 - 44032: 0xB591,
+ 53493 - 44032: 0xB592,
+ 53494 - 44032: 0xB593,
+ 53495 - 44032: 0xB594,
+ 53496 - 44032: 0xC5CB,
+ 53497 - 44032: 0xB595,
+ 53498 - 44032: 0xB596,
+ 53499 - 44032: 0xB597,
+ 53500 - 44032: 0xB598,
+ 53501 - 44032: 0xB599,
+ 53502 - 44032: 0xB59A,
+ 53503 - 44032: 0xB59B,
+ 53504 - 44032: 0xB59C,
+ 53505 - 44032: 0xB59D,
+ 53506 - 44032: 0xB59E,
+ 53507 - 44032: 0xB59F,
+ 53508 - 44032: 0xB5A0,
+ 53509 - 44032: 0xB641,
+ 53510 - 44032: 0xB642,
+ 53511 - 44032: 0xB643,
+ 53512 - 44032: 0xB644,
+ 53513 - 44032: 0xB645,
+ 53514 - 44032: 0xB646,
+ 53515 - 44032: 0xB647,
+ 53516 - 44032: 0xB648,
+ 53517 - 44032: 0xC5CC,
+ 53518 - 44032: 0xB649,
+ 53519 - 44032: 0xB64A,
+ 53520 - 44032: 0xB64B,
+ 53521 - 44032: 0xB64C,
+ 53522 - 44032: 0xB64D,
+ 53523 - 44032: 0xB64E,
+ 53524 - 44032: 0xB64F,
+ 53525 - 44032: 0xB650,
+ 53526 - 44032: 0xB651,
+ 53527 - 44032: 0xB652,
+ 53528 - 44032: 0xB653,
+ 53529 - 44032: 0xB654,
+ 53530 - 44032: 0xB655,
+ 53531 - 44032: 0xB656,
+ 53532 - 44032: 0xB657,
+ 53533 - 44032: 0xB658,
+ 53534 - 44032: 0xB659,
+ 53535 - 44032: 0xB65A,
+ 53536 - 44032: 0xB661,
+ 53537 - 44032: 0xB662,
+ 53538 - 44032: 0xB663,
+ 53539 - 44032: 0xB664,
+ 53540 - 44032: 0xB665,
+ 53541 - 44032: 0xB666,
+ 53542 - 44032: 0xB667,
+ 53543 - 44032: 0xB668,
+ 53544 - 44032: 0xB669,
+ 53545 - 44032: 0xB66A,
+ 53546 - 44032: 0xB66B,
+ 53547 - 44032: 0xB66C,
+ 53548 - 44032: 0xB66D,
+ 53549 - 44032: 0xB66E,
+ 53550 - 44032: 0xB66F,
+ 53551 - 44032: 0xB670,
+ 53552 - 44032: 0xC5CD,
+ 53553 - 44032: 0xC5CE,
+ 53554 - 44032: 0xB671,
+ 53555 - 44032: 0xB672,
+ 53556 - 44032: 0xC5CF,
+ 53557 - 44032: 0xB673,
+ 53558 - 44032: 0xB674,
+ 53559 - 44032: 0xB675,
+ 53560 - 44032: 0xC5D0,
+ 53561 - 44032: 0xB676,
+ 53562 - 44032: 0xC5D1,
+ 53563 - 44032: 0xB677,
+ 53564 - 44032: 0xB678,
+ 53565 - 44032: 0xB679,
+ 53566 - 44032: 0xB67A,
+ 53567 - 44032: 0xB681,
+ 53568 - 44032: 0xC5D2,
+ 53569 - 44032: 0xC5D3,
+ 53570 - 44032: 0xB682,
+ 53571 - 44032: 0xC5D4,
+ 53572 - 44032: 0xC5D5,
+ 53573 - 44032: 0xC5D6,
+ 53574 - 44032: 0xB683,
+ 53575 - 44032: 0xB684,
+ 53576 - 44032: 0xB685,
+ 53577 - 44032: 0xB686,
+ 53578 - 44032: 0xB687,
+ 53579 - 44032: 0xB688,
+ 53580 - 44032: 0xC5D7,
+ 53581 - 44032: 0xC5D8,
+ 53582 - 44032: 0xB689,
+ 53583 - 44032: 0xB68A,
+ 53584 - 44032: 0xC5D9,
+ 53585 - 44032: 0xB68B,
+ 53586 - 44032: 0xB68C,
+ 53587 - 44032: 0xB68D,
+ 53588 - 44032: 0xC5DA,
+ 53589 - 44032: 0xB68E,
+ 53590 - 44032: 0xB68F,
+ 53591 - 44032: 0xB690,
+ 53592 - 44032: 0xB691,
+ 53593 - 44032: 0xB692,
+ 53594 - 44032: 0xB693,
+ 53595 - 44032: 0xB694,
+ 53596 - 44032: 0xC5DB,
+ 53597 - 44032: 0xC5DC,
+ 53598 - 44032: 0xB695,
+ 53599 - 44032: 0xC5DD,
+ 53600 - 44032: 0xB696,
+ 53601 - 44032: 0xC5DE,
+ 53602 - 44032: 0xB697,
+ 53603 - 44032: 0xB698,
+ 53604 - 44032: 0xB699,
+ 53605 - 44032: 0xB69A,
+ 53606 - 44032: 0xB69B,
+ 53607 - 44032: 0xB69C,
+ 53608 - 44032: 0xC5DF,
+ 53609 - 44032: 0xB69D,
+ 53610 - 44032: 0xB69E,
+ 53611 - 44032: 0xB69F,
+ 53612 - 44032: 0xC5E0,
+ 53613 - 44032: 0xB6A0,
+ 53614 - 44032: 0xB741,
+ 53615 - 44032: 0xB742,
+ 53616 - 44032: 0xB743,
+ 53617 - 44032: 0xB744,
+ 53618 - 44032: 0xB745,
+ 53619 - 44032: 0xB746,
+ 53620 - 44032: 0xB747,
+ 53621 - 44032: 0xB748,
+ 53622 - 44032: 0xB749,
+ 53623 - 44032: 0xB74A,
+ 53624 - 44032: 0xB74B,
+ 53625 - 44032: 0xB74C,
+ 53626 - 44032: 0xB74D,
+ 53627 - 44032: 0xB74E,
+ 53628 - 44032: 0xC5E1,
+ 53629 - 44032: 0xB74F,
+ 53630 - 44032: 0xB750,
+ 53631 - 44032: 0xB751,
+ 53632 - 44032: 0xB752,
+ 53633 - 44032: 0xB753,
+ 53634 - 44032: 0xB754,
+ 53635 - 44032: 0xB755,
+ 53636 - 44032: 0xC5E2,
+ 53637 - 44032: 0xB756,
+ 53638 - 44032: 0xB757,
+ 53639 - 44032: 0xB758,
+ 53640 - 44032: 0xC5E3,
+ 53641 - 44032: 0xB759,
+ 53642 - 44032: 0xB75A,
+ 53643 - 44032: 0xB761,
+ 53644 - 44032: 0xB762,
+ 53645 - 44032: 0xB763,
+ 53646 - 44032: 0xB764,
+ 53647 - 44032: 0xB765,
+ 53648 - 44032: 0xB766,
+ 53649 - 44032: 0xB767,
+ 53650 - 44032: 0xB768,
+ 53651 - 44032: 0xB769,
+ 53652 - 44032: 0xB76A,
+ 53653 - 44032: 0xB76B,
+ 53654 - 44032: 0xB76C,
+ 53655 - 44032: 0xB76D,
+ 53656 - 44032: 0xB76E,
+ 53657 - 44032: 0xB76F,
+ 53658 - 44032: 0xB770,
+ 53659 - 44032: 0xB771,
+ 53660 - 44032: 0xB772,
+ 53661 - 44032: 0xB773,
+ 53662 - 44032: 0xB774,
+ 53663 - 44032: 0xB775,
+ 53664 - 44032: 0xC5E4,
+ 53665 - 44032: 0xC5E5,
+ 53666 - 44032: 0xB776,
+ 53667 - 44032: 0xB777,
+ 53668 - 44032: 0xC5E6,
+ 53669 - 44032: 0xB778,
+ 53670 - 44032: 0xB779,
+ 53671 - 44032: 0xB77A,
+ 53672 - 44032: 0xC5E7,
+ 53673 - 44032: 0xB781,
+ 53674 - 44032: 0xB782,
+ 53675 - 44032: 0xB783,
+ 53676 - 44032: 0xB784,
+ 53677 - 44032: 0xB785,
+ 53678 - 44032: 0xB786,
+ 53679 - 44032: 0xB787,
+ 53680 - 44032: 0xC5E8,
+ 53681 - 44032: 0xC5E9,
+ 53682 - 44032: 0xB788,
+ 53683 - 44032: 0xC5EA,
+ 53684 - 44032: 0xB789,
+ 53685 - 44032: 0xC5EB,
+ 53686 - 44032: 0xB78A,
+ 53687 - 44032: 0xB78B,
+ 53688 - 44032: 0xB78C,
+ 53689 - 44032: 0xB78D,
+ 53690 - 44032: 0xC5EC,
+ 53691 - 44032: 0xB78E,
+ 53692 - 44032: 0xC5ED,
+ 53693 - 44032: 0xB78F,
+ 53694 - 44032: 0xB790,
+ 53695 - 44032: 0xB791,
+ 53696 - 44032: 0xC5EE,
+ 53697 - 44032: 0xB792,
+ 53698 - 44032: 0xB793,
+ 53699 - 44032: 0xB794,
+ 53700 - 44032: 0xB795,
+ 53701 - 44032: 0xB796,
+ 53702 - 44032: 0xB797,
+ 53703 - 44032: 0xB798,
+ 53704 - 44032: 0xB799,
+ 53705 - 44032: 0xB79A,
+ 53706 - 44032: 0xB79B,
+ 53707 - 44032: 0xB79C,
+ 53708 - 44032: 0xB79D,
+ 53709 - 44032: 0xB79E,
+ 53710 - 44032: 0xB79F,
+ 53711 - 44032: 0xB7A0,
+ 53712 - 44032: 0xB841,
+ 53713 - 44032: 0xB842,
+ 53714 - 44032: 0xB843,
+ 53715 - 44032: 0xB844,
+ 53716 - 44032: 0xB845,
+ 53717 - 44032: 0xB846,
+ 53718 - 44032: 0xB847,
+ 53719 - 44032: 0xB848,
+ 53720 - 44032: 0xC5EF,
+ 53721 - 44032: 0xB849,
+ 53722 - 44032: 0xB84A,
+ 53723 - 44032: 0xB84B,
+ 53724 - 44032: 0xB84C,
+ 53725 - 44032: 0xB84D,
+ 53726 - 44032: 0xB84E,
+ 53727 - 44032: 0xB84F,
+ 53728 - 44032: 0xB850,
+ 53729 - 44032: 0xB851,
+ 53730 - 44032: 0xB852,
+ 53731 - 44032: 0xB853,
+ 53732 - 44032: 0xB854,
+ 53733 - 44032: 0xB855,
+ 53734 - 44032: 0xB856,
+ 53735 - 44032: 0xB857,
+ 53736 - 44032: 0xB858,
+ 53737 - 44032: 0xB859,
+ 53738 - 44032: 0xB85A,
+ 53739 - 44032: 0xB861,
+ 53740 - 44032: 0xB862,
+ 53741 - 44032: 0xB863,
+ 53742 - 44032: 0xB864,
+ 53743 - 44032: 0xB865,
+ 53744 - 44032: 0xB866,
+ 53745 - 44032: 0xB867,
+ 53746 - 44032: 0xB868,
+ 53747 - 44032: 0xB869,
+ 53748 - 44032: 0xC5F0,
+ 53749 - 44032: 0xB86A,
+ 53750 - 44032: 0xB86B,
+ 53751 - 44032: 0xB86C,
+ 53752 - 44032: 0xC5F1,
+ 53753 - 44032: 0xB86D,
+ 53754 - 44032: 0xB86E,
+ 53755 - 44032: 0xB86F,
+ 53756 - 44032: 0xB870,
+ 53757 - 44032: 0xB871,
+ 53758 - 44032: 0xB872,
+ 53759 - 44032: 0xB873,
+ 53760 - 44032: 0xB874,
+ 53761 - 44032: 0xB875,
+ 53762 - 44032: 0xB876,
+ 53763 - 44032: 0xB877,
+ 53764 - 44032: 0xB878,
+ 53765 - 44032: 0xB879,
+ 53766 - 44032: 0xB87A,
+ 53767 - 44032: 0xC5F2,
+ 53768 - 44032: 0xB881,
+ 53769 - 44032: 0xC5F3,
+ 53770 - 44032: 0xB882,
+ 53771 - 44032: 0xB883,
+ 53772 - 44032: 0xB884,
+ 53773 - 44032: 0xB885,
+ 53774 - 44032: 0xB886,
+ 53775 - 44032: 0xB887,
+ 53776 - 44032: 0xC5F4,
+ 53777 - 44032: 0xB888,
+ 53778 - 44032: 0xB889,
+ 53779 - 44032: 0xB88A,
+ 53780 - 44032: 0xB88B,
+ 53781 - 44032: 0xB88C,
+ 53782 - 44032: 0xB88D,
+ 53783 - 44032: 0xB88E,
+ 53784 - 44032: 0xB88F,
+ 53785 - 44032: 0xB890,
+ 53786 - 44032: 0xB891,
+ 53787 - 44032: 0xB892,
+ 53788 - 44032: 0xB893,
+ 53789 - 44032: 0xB894,
+ 53790 - 44032: 0xB895,
+ 53791 - 44032: 0xB896,
+ 53792 - 44032: 0xB897,
+ 53793 - 44032: 0xB898,
+ 53794 - 44032: 0xB899,
+ 53795 - 44032: 0xB89A,
+ 53796 - 44032: 0xB89B,
+ 53797 - 44032: 0xB89C,
+ 53798 - 44032: 0xB89D,
+ 53799 - 44032: 0xB89E,
+ 53800 - 44032: 0xB89F,
+ 53801 - 44032: 0xB8A0,
+ 53802 - 44032: 0xB941,
+ 53803 - 44032: 0xB942,
+ 53804 - 44032: 0xC5F5,
+ 53805 - 44032: 0xC5F6,
+ 53806 - 44032: 0xB943,
+ 53807 - 44032: 0xB944,
+ 53808 - 44032: 0xC5F7,
+ 53809 - 44032: 0xB945,
+ 53810 - 44032: 0xB946,
+ 53811 - 44032: 0xB947,
+ 53812 - 44032: 0xC5F8,
+ 53813 - 44032: 0xB948,
+ 53814 - 44032: 0xB949,
+ 53815 - 44032: 0xB94A,
+ 53816 - 44032: 0xB94B,
+ 53817 - 44032: 0xB94C,
+ 53818 - 44032: 0xB94D,
+ 53819 - 44032: 0xB94E,
+ 53820 - 44032: 0xC5F9,
+ 53821 - 44032: 0xC5FA,
+ 53822 - 44032: 0xB94F,
+ 53823 - 44032: 0xC5FB,
+ 53824 - 44032: 0xB950,
+ 53825 - 44032: 0xC5FC,
+ 53826 - 44032: 0xB951,
+ 53827 - 44032: 0xB952,
+ 53828 - 44032: 0xB953,
+ 53829 - 44032: 0xB954,
+ 53830 - 44032: 0xB955,
+ 53831 - 44032: 0xB956,
+ 53832 - 44032: 0xC5FD,
+ 53833 - 44032: 0xB957,
+ 53834 - 44032: 0xB958,
+ 53835 - 44032: 0xB959,
+ 53836 - 44032: 0xB95A,
+ 53837 - 44032: 0xB961,
+ 53838 - 44032: 0xB962,
+ 53839 - 44032: 0xB963,
+ 53840 - 44032: 0xB964,
+ 53841 - 44032: 0xB965,
+ 53842 - 44032: 0xB966,
+ 53843 - 44032: 0xB967,
+ 53844 - 44032: 0xB968,
+ 53845 - 44032: 0xB969,
+ 53846 - 44032: 0xB96A,
+ 53847 - 44032: 0xB96B,
+ 53848 - 44032: 0xB96C,
+ 53849 - 44032: 0xB96D,
+ 53850 - 44032: 0xB96E,
+ 53851 - 44032: 0xB96F,
+ 53852 - 44032: 0xC5FE,
+ 53853 - 44032: 0xB970,
+ 53854 - 44032: 0xB971,
+ 53855 - 44032: 0xB972,
+ 53856 - 44032: 0xB973,
+ 53857 - 44032: 0xB974,
+ 53858 - 44032: 0xB975,
+ 53859 - 44032: 0xB976,
+ 53860 - 44032: 0xC6A1,
+ 53861 - 44032: 0xB977,
+ 53862 - 44032: 0xB978,
+ 53863 - 44032: 0xB979,
+ 53864 - 44032: 0xB97A,
+ 53865 - 44032: 0xB981,
+ 53866 - 44032: 0xB982,
+ 53867 - 44032: 0xB983,
+ 53868 - 44032: 0xB984,
+ 53869 - 44032: 0xB985,
+ 53870 - 44032: 0xB986,
+ 53871 - 44032: 0xB987,
+ 53872 - 44032: 0xB988,
+ 53873 - 44032: 0xB989,
+ 53874 - 44032: 0xB98A,
+ 53875 - 44032: 0xB98B,
+ 53876 - 44032: 0xB98C,
+ 53877 - 44032: 0xB98D,
+ 53878 - 44032: 0xB98E,
+ 53879 - 44032: 0xB98F,
+ 53880 - 44032: 0xB990,
+ 53881 - 44032: 0xB991,
+ 53882 - 44032: 0xB992,
+ 53883 - 44032: 0xB993,
+ 53884 - 44032: 0xB994,
+ 53885 - 44032: 0xB995,
+ 53886 - 44032: 0xB996,
+ 53887 - 44032: 0xB997,
+ 53888 - 44032: 0xC6A2,
+ 53889 - 44032: 0xC6A3,
+ 53890 - 44032: 0xB998,
+ 53891 - 44032: 0xB999,
+ 53892 - 44032: 0xC6A4,
+ 53893 - 44032: 0xB99A,
+ 53894 - 44032: 0xB99B,
+ 53895 - 44032: 0xB99C,
+ 53896 - 44032: 0xC6A5,
+ 53897 - 44032: 0xB99D,
+ 53898 - 44032: 0xB99E,
+ 53899 - 44032: 0xB99F,
+ 53900 - 44032: 0xB9A0,
+ 53901 - 44032: 0xBA41,
+ 53902 - 44032: 0xBA42,
+ 53903 - 44032: 0xBA43,
+ 53904 - 44032: 0xC6A6,
+ 53905 - 44032: 0xC6A7,
+ 53906 - 44032: 0xBA44,
+ 53907 - 44032: 0xBA45,
+ 53908 - 44032: 0xBA46,
+ 53909 - 44032: 0xC6A8,
+ 53910 - 44032: 0xBA47,
+ 53911 - 44032: 0xBA48,
+ 53912 - 44032: 0xBA49,
+ 53913 - 44032: 0xBA4A,
+ 53914 - 44032: 0xBA4B,
+ 53915 - 44032: 0xBA4C,
+ 53916 - 44032: 0xC6A9,
+ 53917 - 44032: 0xBA4D,
+ 53918 - 44032: 0xBA4E,
+ 53919 - 44032: 0xBA4F,
+ 53920 - 44032: 0xC6AA,
+ 53921 - 44032: 0xBA50,
+ 53922 - 44032: 0xBA51,
+ 53923 - 44032: 0xBA52,
+ 53924 - 44032: 0xC6AB,
+ 53925 - 44032: 0xBA53,
+ 53926 - 44032: 0xBA54,
+ 53927 - 44032: 0xBA55,
+ 53928 - 44032: 0xBA56,
+ 53929 - 44032: 0xBA57,
+ 53930 - 44032: 0xBA58,
+ 53931 - 44032: 0xBA59,
+ 53932 - 44032: 0xC6AC,
+ 53933 - 44032: 0xBA5A,
+ 53934 - 44032: 0xBA61,
+ 53935 - 44032: 0xBA62,
+ 53936 - 44032: 0xBA63,
+ 53937 - 44032: 0xC6AD,
+ 53938 - 44032: 0xBA64,
+ 53939 - 44032: 0xBA65,
+ 53940 - 44032: 0xBA66,
+ 53941 - 44032: 0xBA67,
+ 53942 - 44032: 0xBA68,
+ 53943 - 44032: 0xBA69,
+ 53944 - 44032: 0xC6AE,
+ 53945 - 44032: 0xC6AF,
+ 53946 - 44032: 0xBA6A,
+ 53947 - 44032: 0xBA6B,
+ 53948 - 44032: 0xC6B0,
+ 53949 - 44032: 0xBA6C,
+ 53950 - 44032: 0xBA6D,
+ 53951 - 44032: 0xC6B1,
+ 53952 - 44032: 0xC6B2,
+ 53953 - 44032: 0xBA6E,
+ 53954 - 44032: 0xC6B3,
+ 53955 - 44032: 0xBA6F,
+ 53956 - 44032: 0xBA70,
+ 53957 - 44032: 0xBA71,
+ 53958 - 44032: 0xBA72,
+ 53959 - 44032: 0xBA73,
+ 53960 - 44032: 0xC6B4,
+ 53961 - 44032: 0xC6B5,
+ 53962 - 44032: 0xBA74,
+ 53963 - 44032: 0xC6B6,
+ 53964 - 44032: 0xBA75,
+ 53965 - 44032: 0xBA76,
+ 53966 - 44032: 0xBA77,
+ 53967 - 44032: 0xBA78,
+ 53968 - 44032: 0xBA79,
+ 53969 - 44032: 0xBA7A,
+ 53970 - 44032: 0xBA81,
+ 53971 - 44032: 0xBA82,
+ 53972 - 44032: 0xC6B7,
+ 53973 - 44032: 0xBA83,
+ 53974 - 44032: 0xBA84,
+ 53975 - 44032: 0xBA85,
+ 53976 - 44032: 0xC6B8,
+ 53977 - 44032: 0xBA86,
+ 53978 - 44032: 0xBA87,
+ 53979 - 44032: 0xBA88,
+ 53980 - 44032: 0xC6B9,
+ 53981 - 44032: 0xBA89,
+ 53982 - 44032: 0xBA8A,
+ 53983 - 44032: 0xBA8B,
+ 53984 - 44032: 0xBA8C,
+ 53985 - 44032: 0xBA8D,
+ 53986 - 44032: 0xBA8E,
+ 53987 - 44032: 0xBA8F,
+ 53988 - 44032: 0xC6BA,
+ 53989 - 44032: 0xC6BB,
+ 53990 - 44032: 0xBA90,
+ 53991 - 44032: 0xBA91,
+ 53992 - 44032: 0xBA92,
+ 53993 - 44032: 0xBA93,
+ 53994 - 44032: 0xBA94,
+ 53995 - 44032: 0xBA95,
+ 53996 - 44032: 0xBA96,
+ 53997 - 44032: 0xBA97,
+ 53998 - 44032: 0xBA98,
+ 53999 - 44032: 0xBA99,
+ 54000 - 44032: 0xC6BC,
+ 54001 - 44032: 0xC6BD,
+ 54002 - 44032: 0xBA9A,
+ 54003 - 44032: 0xBA9B,
+ 54004 - 44032: 0xC6BE,
+ 54005 - 44032: 0xBA9C,
+ 54006 - 44032: 0xBA9D,
+ 54007 - 44032: 0xBA9E,
+ 54008 - 44032: 0xC6BF,
+ 54009 - 44032: 0xBA9F,
+ 54010 - 44032: 0xBAA0,
+ 54011 - 44032: 0xBB41,
+ 54012 - 44032: 0xBB42,
+ 54013 - 44032: 0xBB43,
+ 54014 - 44032: 0xBB44,
+ 54015 - 44032: 0xBB45,
+ 54016 - 44032: 0xC6C0,
+ 54017 - 44032: 0xC6C1,
+ 54018 - 44032: 0xBB46,
+ 54019 - 44032: 0xC6C2,
+ 54020 - 44032: 0xBB47,
+ 54021 - 44032: 0xC6C3,
+ 54022 - 44032: 0xBB48,
+ 54023 - 44032: 0xBB49,
+ 54024 - 44032: 0xBB4A,
+ 54025 - 44032: 0xBB4B,
+ 54026 - 44032: 0xBB4C,
+ 54027 - 44032: 0xBB4D,
+ 54028 - 44032: 0xC6C4,
+ 54029 - 44032: 0xC6C5,
+ 54030 - 44032: 0xC6C6,
+ 54031 - 44032: 0xBB4E,
+ 54032 - 44032: 0xC6C7,
+ 54033 - 44032: 0xBB4F,
+ 54034 - 44032: 0xBB50,
+ 54035 - 44032: 0xBB51,
+ 54036 - 44032: 0xC6C8,
+ 54037 - 44032: 0xBB52,
+ 54038 - 44032: 0xC6C9,
+ 54039 - 44032: 0xBB53,
+ 54040 - 44032: 0xBB54,
+ 54041 - 44032: 0xBB55,
+ 54042 - 44032: 0xBB56,
+ 54043 - 44032: 0xBB57,
+ 54044 - 44032: 0xC6CA,
+ 54045 - 44032: 0xC6CB,
+ 54046 - 44032: 0xBB58,
+ 54047 - 44032: 0xC6CC,
+ 54048 - 44032: 0xC6CD,
+ 54049 - 44032: 0xC6CE,
+ 54050 - 44032: 0xBB59,
+ 54051 - 44032: 0xBB5A,
+ 54052 - 44032: 0xBB61,
+ 54053 - 44032: 0xC6CF,
+ 54054 - 44032: 0xBB62,
+ 54055 - 44032: 0xBB63,
+ 54056 - 44032: 0xC6D0,
+ 54057 - 44032: 0xC6D1,
+ 54058 - 44032: 0xBB64,
+ 54059 - 44032: 0xBB65,
+ 54060 - 44032: 0xC6D2,
+ 54061 - 44032: 0xBB66,
+ 54062 - 44032: 0xBB67,
+ 54063 - 44032: 0xBB68,
+ 54064 - 44032: 0xC6D3,
+ 54065 - 44032: 0xBB69,
+ 54066 - 44032: 0xBB6A,
+ 54067 - 44032: 0xBB6B,
+ 54068 - 44032: 0xBB6C,
+ 54069 - 44032: 0xBB6D,
+ 54070 - 44032: 0xBB6E,
+ 54071 - 44032: 0xBB6F,
+ 54072 - 44032: 0xC6D4,
+ 54073 - 44032: 0xC6D5,
+ 54074 - 44032: 0xBB70,
+ 54075 - 44032: 0xC6D6,
+ 54076 - 44032: 0xC6D7,
+ 54077 - 44032: 0xC6D8,
+ 54078 - 44032: 0xBB71,
+ 54079 - 44032: 0xBB72,
+ 54080 - 44032: 0xBB73,
+ 54081 - 44032: 0xBB74,
+ 54082 - 44032: 0xBB75,
+ 54083 - 44032: 0xBB76,
+ 54084 - 44032: 0xC6D9,
+ 54085 - 44032: 0xC6DA,
+ 54086 - 44032: 0xBB77,
+ 54087 - 44032: 0xBB78,
+ 54088 - 44032: 0xBB79,
+ 54089 - 44032: 0xBB7A,
+ 54090 - 44032: 0xBB81,
+ 54091 - 44032: 0xBB82,
+ 54092 - 44032: 0xBB83,
+ 54093 - 44032: 0xBB84,
+ 54094 - 44032: 0xBB85,
+ 54095 - 44032: 0xBB86,
+ 54096 - 44032: 0xBB87,
+ 54097 - 44032: 0xBB88,
+ 54098 - 44032: 0xBB89,
+ 54099 - 44032: 0xBB8A,
+ 54100 - 44032: 0xBB8B,
+ 54101 - 44032: 0xBB8C,
+ 54102 - 44032: 0xBB8D,
+ 54103 - 44032: 0xBB8E,
+ 54104 - 44032: 0xBB8F,
+ 54105 - 44032: 0xBB90,
+ 54106 - 44032: 0xBB91,
+ 54107 - 44032: 0xBB92,
+ 54108 - 44032: 0xBB93,
+ 54109 - 44032: 0xBB94,
+ 54110 - 44032: 0xBB95,
+ 54111 - 44032: 0xBB96,
+ 54112 - 44032: 0xBB97,
+ 54113 - 44032: 0xBB98,
+ 54114 - 44032: 0xBB99,
+ 54115 - 44032: 0xBB9A,
+ 54116 - 44032: 0xBB9B,
+ 54117 - 44032: 0xBB9C,
+ 54118 - 44032: 0xBB9D,
+ 54119 - 44032: 0xBB9E,
+ 54120 - 44032: 0xBB9F,
+ 54121 - 44032: 0xBBA0,
+ 54122 - 44032: 0xBC41,
+ 54123 - 44032: 0xBC42,
+ 54124 - 44032: 0xBC43,
+ 54125 - 44032: 0xBC44,
+ 54126 - 44032: 0xBC45,
+ 54127 - 44032: 0xBC46,
+ 54128 - 44032: 0xBC47,
+ 54129 - 44032: 0xBC48,
+ 54130 - 44032: 0xBC49,
+ 54131 - 44032: 0xBC4A,
+ 54132 - 44032: 0xBC4B,
+ 54133 - 44032: 0xBC4C,
+ 54134 - 44032: 0xBC4D,
+ 54135 - 44032: 0xBC4E,
+ 54136 - 44032: 0xBC4F,
+ 54137 - 44032: 0xBC50,
+ 54138 - 44032: 0xBC51,
+ 54139 - 44032: 0xBC52,
+ 54140 - 44032: 0xC6DB,
+ 54141 - 44032: 0xC6DC,
+ 54142 - 44032: 0xBC53,
+ 54143 - 44032: 0xBC54,
+ 54144 - 44032: 0xC6DD,
+ 54145 - 44032: 0xBC55,
+ 54146 - 44032: 0xBC56,
+ 54147 - 44032: 0xBC57,
+ 54148 - 44032: 0xC6DE,
+ 54149 - 44032: 0xBC58,
+ 54150 - 44032: 0xBC59,
+ 54151 - 44032: 0xBC5A,
+ 54152 - 44032: 0xBC61,
+ 54153 - 44032: 0xBC62,
+ 54154 - 44032: 0xBC63,
+ 54155 - 44032: 0xBC64,
+ 54156 - 44032: 0xC6DF,
+ 54157 - 44032: 0xC6E0,
+ 54158 - 44032: 0xBC65,
+ 54159 - 44032: 0xC6E1,
+ 54160 - 44032: 0xC6E2,
+ 54161 - 44032: 0xC6E3,
+ 54162 - 44032: 0xBC66,
+ 54163 - 44032: 0xBC67,
+ 54164 - 44032: 0xBC68,
+ 54165 - 44032: 0xBC69,
+ 54166 - 44032: 0xBC6A,
+ 54167 - 44032: 0xBC6B,
+ 54168 - 44032: 0xC6E4,
+ 54169 - 44032: 0xC6E5,
+ 54170 - 44032: 0xBC6C,
+ 54171 - 44032: 0xBC6D,
+ 54172 - 44032: 0xC6E6,
+ 54173 - 44032: 0xBC6E,
+ 54174 - 44032: 0xBC6F,
+ 54175 - 44032: 0xBC70,
+ 54176 - 44032: 0xC6E7,
+ 54177 - 44032: 0xBC71,
+ 54178 - 44032: 0xBC72,
+ 54179 - 44032: 0xBC73,
+ 54180 - 44032: 0xBC74,
+ 54181 - 44032: 0xBC75,
+ 54182 - 44032: 0xBC76,
+ 54183 - 44032: 0xBC77,
+ 54184 - 44032: 0xC6E8,
+ 54185 - 44032: 0xC6E9,
+ 54186 - 44032: 0xBC78,
+ 54187 - 44032: 0xC6EA,
+ 54188 - 44032: 0xBC79,
+ 54189 - 44032: 0xC6EB,
+ 54190 - 44032: 0xBC7A,
+ 54191 - 44032: 0xBC81,
+ 54192 - 44032: 0xBC82,
+ 54193 - 44032: 0xBC83,
+ 54194 - 44032: 0xBC84,
+ 54195 - 44032: 0xBC85,
+ 54196 - 44032: 0xC6EC,
+ 54197 - 44032: 0xBC86,
+ 54198 - 44032: 0xBC87,
+ 54199 - 44032: 0xBC88,
+ 54200 - 44032: 0xC6ED,
+ 54201 - 44032: 0xBC89,
+ 54202 - 44032: 0xBC8A,
+ 54203 - 44032: 0xBC8B,
+ 54204 - 44032: 0xC6EE,
+ 54205 - 44032: 0xBC8C,
+ 54206 - 44032: 0xBC8D,
+ 54207 - 44032: 0xBC8E,
+ 54208 - 44032: 0xBC8F,
+ 54209 - 44032: 0xBC90,
+ 54210 - 44032: 0xBC91,
+ 54211 - 44032: 0xBC92,
+ 54212 - 44032: 0xC6EF,
+ 54213 - 44032: 0xC6F0,
+ 54214 - 44032: 0xBC93,
+ 54215 - 44032: 0xBC94,
+ 54216 - 44032: 0xC6F1,
+ 54217 - 44032: 0xC6F2,
+ 54218 - 44032: 0xBC95,
+ 54219 - 44032: 0xBC96,
+ 54220 - 44032: 0xBC97,
+ 54221 - 44032: 0xBC98,
+ 54222 - 44032: 0xBC99,
+ 54223 - 44032: 0xBC9A,
+ 54224 - 44032: 0xC6F3,
+ 54225 - 44032: 0xBC9B,
+ 54226 - 44032: 0xBC9C,
+ 54227 - 44032: 0xBC9D,
+ 54228 - 44032: 0xBC9E,
+ 54229 - 44032: 0xBC9F,
+ 54230 - 44032: 0xBCA0,
+ 54231 - 44032: 0xBD41,
+ 54232 - 44032: 0xC6F4,
+ 54233 - 44032: 0xBD42,
+ 54234 - 44032: 0xBD43,
+ 54235 - 44032: 0xBD44,
+ 54236 - 44032: 0xBD45,
+ 54237 - 44032: 0xBD46,
+ 54238 - 44032: 0xBD47,
+ 54239 - 44032: 0xBD48,
+ 54240 - 44032: 0xBD49,
+ 54241 - 44032: 0xC6F5,
+ 54242 - 44032: 0xBD4A,
+ 54243 - 44032: 0xC6F6,
+ 54244 - 44032: 0xBD4B,
+ 54245 - 44032: 0xBD4C,
+ 54246 - 44032: 0xBD4D,
+ 54247 - 44032: 0xBD4E,
+ 54248 - 44032: 0xBD4F,
+ 54249 - 44032: 0xBD50,
+ 54250 - 44032: 0xBD51,
+ 54251 - 44032: 0xBD52,
+ 54252 - 44032: 0xC6F7,
+ 54253 - 44032: 0xC6F8,
+ 54254 - 44032: 0xBD53,
+ 54255 - 44032: 0xBD54,
+ 54256 - 44032: 0xC6F9,
+ 54257 - 44032: 0xBD55,
+ 54258 - 44032: 0xBD56,
+ 54259 - 44032: 0xBD57,
+ 54260 - 44032: 0xC6FA,
+ 54261 - 44032: 0xBD58,
+ 54262 - 44032: 0xBD59,
+ 54263 - 44032: 0xBD5A,
+ 54264 - 44032: 0xBD61,
+ 54265 - 44032: 0xBD62,
+ 54266 - 44032: 0xBD63,
+ 54267 - 44032: 0xBD64,
+ 54268 - 44032: 0xC6FB,
+ 54269 - 44032: 0xC6FC,
+ 54270 - 44032: 0xBD65,
+ 54271 - 44032: 0xC6FD,
+ 54272 - 44032: 0xBD66,
+ 54273 - 44032: 0xC6FE,
+ 54274 - 44032: 0xBD67,
+ 54275 - 44032: 0xBD68,
+ 54276 - 44032: 0xBD69,
+ 54277 - 44032: 0xBD6A,
+ 54278 - 44032: 0xBD6B,
+ 54279 - 44032: 0xBD6C,
+ 54280 - 44032: 0xC7A1,
+ 54281 - 44032: 0xBD6D,
+ 54282 - 44032: 0xBD6E,
+ 54283 - 44032: 0xBD6F,
+ 54284 - 44032: 0xBD70,
+ 54285 - 44032: 0xBD71,
+ 54286 - 44032: 0xBD72,
+ 54287 - 44032: 0xBD73,
+ 54288 - 44032: 0xBD74,
+ 54289 - 44032: 0xBD75,
+ 54290 - 44032: 0xBD76,
+ 54291 - 44032: 0xBD77,
+ 54292 - 44032: 0xBD78,
+ 54293 - 44032: 0xBD79,
+ 54294 - 44032: 0xBD7A,
+ 54295 - 44032: 0xBD81,
+ 54296 - 44032: 0xBD82,
+ 54297 - 44032: 0xBD83,
+ 54298 - 44032: 0xBD84,
+ 54299 - 44032: 0xBD85,
+ 54300 - 44032: 0xBD86,
+ 54301 - 44032: 0xC7A2,
+ 54302 - 44032: 0xBD87,
+ 54303 - 44032: 0xBD88,
+ 54304 - 44032: 0xBD89,
+ 54305 - 44032: 0xBD8A,
+ 54306 - 44032: 0xBD8B,
+ 54307 - 44032: 0xBD8C,
+ 54308 - 44032: 0xBD8D,
+ 54309 - 44032: 0xBD8E,
+ 54310 - 44032: 0xBD8F,
+ 54311 - 44032: 0xBD90,
+ 54312 - 44032: 0xBD91,
+ 54313 - 44032: 0xBD92,
+ 54314 - 44032: 0xBD93,
+ 54315 - 44032: 0xBD94,
+ 54316 - 44032: 0xBD95,
+ 54317 - 44032: 0xBD96,
+ 54318 - 44032: 0xBD97,
+ 54319 - 44032: 0xBD98,
+ 54320 - 44032: 0xBD99,
+ 54321 - 44032: 0xBD9A,
+ 54322 - 44032: 0xBD9B,
+ 54323 - 44032: 0xBD9C,
+ 54324 - 44032: 0xBD9D,
+ 54325 - 44032: 0xBD9E,
+ 54326 - 44032: 0xBD9F,
+ 54327 - 44032: 0xBDA0,
+ 54328 - 44032: 0xBE41,
+ 54329 - 44032: 0xBE42,
+ 54330 - 44032: 0xBE43,
+ 54331 - 44032: 0xBE44,
+ 54332 - 44032: 0xBE45,
+ 54333 - 44032: 0xBE46,
+ 54334 - 44032: 0xBE47,
+ 54335 - 44032: 0xBE48,
+ 54336 - 44032: 0xC7A3,
+ 54337 - 44032: 0xBE49,
+ 54338 - 44032: 0xBE4A,
+ 54339 - 44032: 0xBE4B,
+ 54340 - 44032: 0xC7A4,
+ 54341 - 44032: 0xBE4C,
+ 54342 - 44032: 0xBE4D,
+ 54343 - 44032: 0xBE4E,
+ 54344 - 44032: 0xBE4F,
+ 54345 - 44032: 0xBE50,
+ 54346 - 44032: 0xBE51,
+ 54347 - 44032: 0xBE52,
+ 54348 - 44032: 0xBE53,
+ 54349 - 44032: 0xBE54,
+ 54350 - 44032: 0xBE55,
+ 54351 - 44032: 0xBE56,
+ 54352 - 44032: 0xBE57,
+ 54353 - 44032: 0xBE58,
+ 54354 - 44032: 0xBE59,
+ 54355 - 44032: 0xBE5A,
+ 54356 - 44032: 0xBE61,
+ 54357 - 44032: 0xBE62,
+ 54358 - 44032: 0xBE63,
+ 54359 - 44032: 0xBE64,
+ 54360 - 44032: 0xBE65,
+ 54361 - 44032: 0xBE66,
+ 54362 - 44032: 0xBE67,
+ 54363 - 44032: 0xBE68,
+ 54364 - 44032: 0xC7A5,
+ 54365 - 44032: 0xBE69,
+ 54366 - 44032: 0xBE6A,
+ 54367 - 44032: 0xBE6B,
+ 54368 - 44032: 0xC7A6,
+ 54369 - 44032: 0xBE6C,
+ 54370 - 44032: 0xBE6D,
+ 54371 - 44032: 0xBE6E,
+ 54372 - 44032: 0xC7A7,
+ 54373 - 44032: 0xBE6F,
+ 54374 - 44032: 0xBE70,
+ 54375 - 44032: 0xBE71,
+ 54376 - 44032: 0xBE72,
+ 54377 - 44032: 0xBE73,
+ 54378 - 44032: 0xBE74,
+ 54379 - 44032: 0xBE75,
+ 54380 - 44032: 0xBE76,
+ 54381 - 44032: 0xC7A8,
+ 54382 - 44032: 0xBE77,
+ 54383 - 44032: 0xC7A9,
+ 54384 - 44032: 0xBE78,
+ 54385 - 44032: 0xBE79,
+ 54386 - 44032: 0xBE7A,
+ 54387 - 44032: 0xBE81,
+ 54388 - 44032: 0xBE82,
+ 54389 - 44032: 0xBE83,
+ 54390 - 44032: 0xBE84,
+ 54391 - 44032: 0xBE85,
+ 54392 - 44032: 0xC7AA,
+ 54393 - 44032: 0xC7AB,
+ 54394 - 44032: 0xBE86,
+ 54395 - 44032: 0xBE87,
+ 54396 - 44032: 0xC7AC,
+ 54397 - 44032: 0xBE88,
+ 54398 - 44032: 0xBE89,
+ 54399 - 44032: 0xC7AD,
+ 54400 - 44032: 0xC7AE,
+ 54401 - 44032: 0xBE8A,
+ 54402 - 44032: 0xC7AF,
+ 54403 - 44032: 0xBE8B,
+ 54404 - 44032: 0xBE8C,
+ 54405 - 44032: 0xBE8D,
+ 54406 - 44032: 0xBE8E,
+ 54407 - 44032: 0xBE8F,
+ 54408 - 44032: 0xC7B0,
+ 54409 - 44032: 0xC7B1,
+ 54410 - 44032: 0xBE90,
+ 54411 - 44032: 0xC7B2,
+ 54412 - 44032: 0xBE91,
+ 54413 - 44032: 0xC7B3,
+ 54414 - 44032: 0xBE92,
+ 54415 - 44032: 0xBE93,
+ 54416 - 44032: 0xBE94,
+ 54417 - 44032: 0xBE95,
+ 54418 - 44032: 0xBE96,
+ 54419 - 44032: 0xBE97,
+ 54420 - 44032: 0xC7B4,
+ 54421 - 44032: 0xBE98,
+ 54422 - 44032: 0xBE99,
+ 54423 - 44032: 0xBE9A,
+ 54424 - 44032: 0xBE9B,
+ 54425 - 44032: 0xBE9C,
+ 54426 - 44032: 0xBE9D,
+ 54427 - 44032: 0xBE9E,
+ 54428 - 44032: 0xBE9F,
+ 54429 - 44032: 0xBEA0,
+ 54430 - 44032: 0xBF41,
+ 54431 - 44032: 0xBF42,
+ 54432 - 44032: 0xBF43,
+ 54433 - 44032: 0xBF44,
+ 54434 - 44032: 0xBF45,
+ 54435 - 44032: 0xBF46,
+ 54436 - 44032: 0xBF47,
+ 54437 - 44032: 0xBF48,
+ 54438 - 44032: 0xBF49,
+ 54439 - 44032: 0xBF4A,
+ 54440 - 44032: 0xBF4B,
+ 54441 - 44032: 0xC7B5,
+ 54442 - 44032: 0xBF4C,
+ 54443 - 44032: 0xBF4D,
+ 54444 - 44032: 0xBF4E,
+ 54445 - 44032: 0xBF4F,
+ 54446 - 44032: 0xBF50,
+ 54447 - 44032: 0xBF51,
+ 54448 - 44032: 0xBF52,
+ 54449 - 44032: 0xBF53,
+ 54450 - 44032: 0xBF54,
+ 54451 - 44032: 0xBF55,
+ 54452 - 44032: 0xBF56,
+ 54453 - 44032: 0xBF57,
+ 54454 - 44032: 0xBF58,
+ 54455 - 44032: 0xBF59,
+ 54456 - 44032: 0xBF5A,
+ 54457 - 44032: 0xBF61,
+ 54458 - 44032: 0xBF62,
+ 54459 - 44032: 0xBF63,
+ 54460 - 44032: 0xBF64,
+ 54461 - 44032: 0xBF65,
+ 54462 - 44032: 0xBF66,
+ 54463 - 44032: 0xBF67,
+ 54464 - 44032: 0xBF68,
+ 54465 - 44032: 0xBF69,
+ 54466 - 44032: 0xBF6A,
+ 54467 - 44032: 0xBF6B,
+ 54468 - 44032: 0xBF6C,
+ 54469 - 44032: 0xBF6D,
+ 54470 - 44032: 0xBF6E,
+ 54471 - 44032: 0xBF6F,
+ 54472 - 44032: 0xBF70,
+ 54473 - 44032: 0xBF71,
+ 54474 - 44032: 0xBF72,
+ 54475 - 44032: 0xBF73,
+ 54476 - 44032: 0xC7B6,
+ 54477 - 44032: 0xBF74,
+ 54478 - 44032: 0xBF75,
+ 54479 - 44032: 0xBF76,
+ 54480 - 44032: 0xC7B7,
+ 54481 - 44032: 0xBF77,
+ 54482 - 44032: 0xBF78,
+ 54483 - 44032: 0xBF79,
+ 54484 - 44032: 0xC7B8,
+ 54485 - 44032: 0xBF7A,
+ 54486 - 44032: 0xBF81,
+ 54487 - 44032: 0xBF82,
+ 54488 - 44032: 0xBF83,
+ 54489 - 44032: 0xBF84,
+ 54490 - 44032: 0xBF85,
+ 54491 - 44032: 0xBF86,
+ 54492 - 44032: 0xC7B9,
+ 54493 - 44032: 0xBF87,
+ 54494 - 44032: 0xBF88,
+ 54495 - 44032: 0xC7BA,
+ 54496 - 44032: 0xBF89,
+ 54497 - 44032: 0xBF8A,
+ 54498 - 44032: 0xBF8B,
+ 54499 - 44032: 0xBF8C,
+ 54500 - 44032: 0xBF8D,
+ 54501 - 44032: 0xBF8E,
+ 54502 - 44032: 0xBF8F,
+ 54503 - 44032: 0xBF90,
+ 54504 - 44032: 0xC7BB,
+ 54505 - 44032: 0xBF91,
+ 54506 - 44032: 0xBF92,
+ 54507 - 44032: 0xBF93,
+ 54508 - 44032: 0xC7BC,
+ 54509 - 44032: 0xBF94,
+ 54510 - 44032: 0xBF95,
+ 54511 - 44032: 0xBF96,
+ 54512 - 44032: 0xC7BD,
+ 54513 - 44032: 0xBF97,
+ 54514 - 44032: 0xBF98,
+ 54515 - 44032: 0xBF99,
+ 54516 - 44032: 0xBF9A,
+ 54517 - 44032: 0xBF9B,
+ 54518 - 44032: 0xBF9C,
+ 54519 - 44032: 0xBF9D,
+ 54520 - 44032: 0xC7BE,
+ 54521 - 44032: 0xBF9E,
+ 54522 - 44032: 0xBF9F,
+ 54523 - 44032: 0xC7BF,
+ 54524 - 44032: 0xBFA0,
+ 54525 - 44032: 0xC7C0,
+ 54526 - 44032: 0xC041,
+ 54527 - 44032: 0xC042,
+ 54528 - 44032: 0xC043,
+ 54529 - 44032: 0xC044,
+ 54530 - 44032: 0xC045,
+ 54531 - 44032: 0xC046,
+ 54532 - 44032: 0xC7C1,
+ 54533 - 44032: 0xC047,
+ 54534 - 44032: 0xC048,
+ 54535 - 44032: 0xC049,
+ 54536 - 44032: 0xC7C2,
+ 54537 - 44032: 0xC04A,
+ 54538 - 44032: 0xC04B,
+ 54539 - 44032: 0xC04C,
+ 54540 - 44032: 0xC7C3,
+ 54541 - 44032: 0xC04D,
+ 54542 - 44032: 0xC04E,
+ 54543 - 44032: 0xC04F,
+ 54544 - 44032: 0xC050,
+ 54545 - 44032: 0xC051,
+ 54546 - 44032: 0xC052,
+ 54547 - 44032: 0xC053,
+ 54548 - 44032: 0xC7C4,
+ 54549 - 44032: 0xC7C5,
+ 54550 - 44032: 0xC054,
+ 54551 - 44032: 0xC7C6,
+ 54552 - 44032: 0xC055,
+ 54553 - 44032: 0xC056,
+ 54554 - 44032: 0xC057,
+ 54555 - 44032: 0xC058,
+ 54556 - 44032: 0xC059,
+ 54557 - 44032: 0xC05A,
+ 54558 - 44032: 0xC061,
+ 54559 - 44032: 0xC062,
+ 54560 - 44032: 0xC063,
+ 54561 - 44032: 0xC064,
+ 54562 - 44032: 0xC065,
+ 54563 - 44032: 0xC066,
+ 54564 - 44032: 0xC067,
+ 54565 - 44032: 0xC068,
+ 54566 - 44032: 0xC069,
+ 54567 - 44032: 0xC06A,
+ 54568 - 44032: 0xC06B,
+ 54569 - 44032: 0xC06C,
+ 54570 - 44032: 0xC06D,
+ 54571 - 44032: 0xC06E,
+ 54572 - 44032: 0xC06F,
+ 54573 - 44032: 0xC070,
+ 54574 - 44032: 0xC071,
+ 54575 - 44032: 0xC072,
+ 54576 - 44032: 0xC073,
+ 54577 - 44032: 0xC074,
+ 54578 - 44032: 0xC075,
+ 54579 - 44032: 0xC076,
+ 54580 - 44032: 0xC077,
+ 54581 - 44032: 0xC078,
+ 54582 - 44032: 0xC079,
+ 54583 - 44032: 0xC07A,
+ 54584 - 44032: 0xC081,
+ 54585 - 44032: 0xC082,
+ 54586 - 44032: 0xC083,
+ 54587 - 44032: 0xC084,
+ 54588 - 44032: 0xC7C7,
+ 54589 - 44032: 0xC7C8,
+ 54590 - 44032: 0xC085,
+ 54591 - 44032: 0xC086,
+ 54592 - 44032: 0xC7C9,
+ 54593 - 44032: 0xC087,
+ 54594 - 44032: 0xC088,
+ 54595 - 44032: 0xC089,
+ 54596 - 44032: 0xC7CA,
+ 54597 - 44032: 0xC08A,
+ 54598 - 44032: 0xC08B,
+ 54599 - 44032: 0xC08C,
+ 54600 - 44032: 0xC08D,
+ 54601 - 44032: 0xC08E,
+ 54602 - 44032: 0xC08F,
+ 54603 - 44032: 0xC090,
+ 54604 - 44032: 0xC7CB,
+ 54605 - 44032: 0xC7CC,
+ 54606 - 44032: 0xC091,
+ 54607 - 44032: 0xC7CD,
+ 54608 - 44032: 0xC092,
+ 54609 - 44032: 0xC7CE,
+ 54610 - 44032: 0xC093,
+ 54611 - 44032: 0xC094,
+ 54612 - 44032: 0xC095,
+ 54613 - 44032: 0xC096,
+ 54614 - 44032: 0xC097,
+ 54615 - 44032: 0xC098,
+ 54616 - 44032: 0xC7CF,
+ 54617 - 44032: 0xC7D0,
+ 54618 - 44032: 0xC099,
+ 54619 - 44032: 0xC09A,
+ 54620 - 44032: 0xC7D1,
+ 54621 - 44032: 0xC09B,
+ 54622 - 44032: 0xC09C,
+ 54623 - 44032: 0xC09D,
+ 54624 - 44032: 0xC7D2,
+ 54625 - 44032: 0xC09E,
+ 54626 - 44032: 0xC09F,
+ 54627 - 44032: 0xC0A0,
+ 54628 - 44032: 0xC141,
+ 54629 - 44032: 0xC7D3,
+ 54630 - 44032: 0xC142,
+ 54631 - 44032: 0xC143,
+ 54632 - 44032: 0xC7D4,
+ 54633 - 44032: 0xC7D5,
+ 54634 - 44032: 0xC144,
+ 54635 - 44032: 0xC7D6,
+ 54636 - 44032: 0xC145,
+ 54637 - 44032: 0xC7D7,
+ 54638 - 44032: 0xC146,
+ 54639 - 44032: 0xC147,
+ 54640 - 44032: 0xC148,
+ 54641 - 44032: 0xC149,
+ 54642 - 44032: 0xC14A,
+ 54643 - 44032: 0xC14B,
+ 54644 - 44032: 0xC7D8,
+ 54645 - 44032: 0xC7D9,
+ 54646 - 44032: 0xC14C,
+ 54647 - 44032: 0xC14D,
+ 54648 - 44032: 0xC7DA,
+ 54649 - 44032: 0xC14E,
+ 54650 - 44032: 0xC14F,
+ 54651 - 44032: 0xC150,
+ 54652 - 44032: 0xC7DB,
+ 54653 - 44032: 0xC151,
+ 54654 - 44032: 0xC152,
+ 54655 - 44032: 0xC153,
+ 54656 - 44032: 0xC154,
+ 54657 - 44032: 0xC155,
+ 54658 - 44032: 0xC156,
+ 54659 - 44032: 0xC157,
+ 54660 - 44032: 0xC7DC,
+ 54661 - 44032: 0xC7DD,
+ 54662 - 44032: 0xC158,
+ 54663 - 44032: 0xC7DE,
+ 54664 - 44032: 0xC7DF,
+ 54665 - 44032: 0xC7E0,
+ 54666 - 44032: 0xC159,
+ 54667 - 44032: 0xC15A,
+ 54668 - 44032: 0xC161,
+ 54669 - 44032: 0xC162,
+ 54670 - 44032: 0xC163,
+ 54671 - 44032: 0xC164,
+ 54672 - 44032: 0xC7E1,
+ 54673 - 44032: 0xC165,
+ 54674 - 44032: 0xC166,
+ 54675 - 44032: 0xC167,
+ 54676 - 44032: 0xC168,
+ 54677 - 44032: 0xC169,
+ 54678 - 44032: 0xC16A,
+ 54679 - 44032: 0xC16B,
+ 54680 - 44032: 0xC16C,
+ 54681 - 44032: 0xC16D,
+ 54682 - 44032: 0xC16E,
+ 54683 - 44032: 0xC16F,
+ 54684 - 44032: 0xC170,
+ 54685 - 44032: 0xC171,
+ 54686 - 44032: 0xC172,
+ 54687 - 44032: 0xC173,
+ 54688 - 44032: 0xC174,
+ 54689 - 44032: 0xC175,
+ 54690 - 44032: 0xC176,
+ 54691 - 44032: 0xC177,
+ 54692 - 44032: 0xC178,
+ 54693 - 44032: 0xC7E2,
+ 54694 - 44032: 0xC179,
+ 54695 - 44032: 0xC17A,
+ 54696 - 44032: 0xC181,
+ 54697 - 44032: 0xC182,
+ 54698 - 44032: 0xC183,
+ 54699 - 44032: 0xC184,
+ 54700 - 44032: 0xC185,
+ 54701 - 44032: 0xC186,
+ 54702 - 44032: 0xC187,
+ 54703 - 44032: 0xC188,
+ 54704 - 44032: 0xC189,
+ 54705 - 44032: 0xC18A,
+ 54706 - 44032: 0xC18B,
+ 54707 - 44032: 0xC18C,
+ 54708 - 44032: 0xC18D,
+ 54709 - 44032: 0xC18E,
+ 54710 - 44032: 0xC18F,
+ 54711 - 44032: 0xC190,
+ 54712 - 44032: 0xC191,
+ 54713 - 44032: 0xC192,
+ 54714 - 44032: 0xC193,
+ 54715 - 44032: 0xC194,
+ 54716 - 44032: 0xC195,
+ 54717 - 44032: 0xC196,
+ 54718 - 44032: 0xC197,
+ 54719 - 44032: 0xC198,
+ 54720 - 44032: 0xC199,
+ 54721 - 44032: 0xC19A,
+ 54722 - 44032: 0xC19B,
+ 54723 - 44032: 0xC19C,
+ 54724 - 44032: 0xC19D,
+ 54725 - 44032: 0xC19E,
+ 54726 - 44032: 0xC19F,
+ 54727 - 44032: 0xC1A0,
+ 54728 - 44032: 0xC7E3,
+ 54729 - 44032: 0xC7E4,
+ 54730 - 44032: 0xC241,
+ 54731 - 44032: 0xC242,
+ 54732 - 44032: 0xC7E5,
+ 54733 - 44032: 0xC243,
+ 54734 - 44032: 0xC244,
+ 54735 - 44032: 0xC245,
+ 54736 - 44032: 0xC7E6,
+ 54737 - 44032: 0xC246,
+ 54738 - 44032: 0xC7E7,
+ 54739 - 44032: 0xC247,
+ 54740 - 44032: 0xC248,
+ 54741 - 44032: 0xC249,
+ 54742 - 44032: 0xC24A,
+ 54743 - 44032: 0xC24B,
+ 54744 - 44032: 0xC7E8,
+ 54745 - 44032: 0xC7E9,
+ 54746 - 44032: 0xC24C,
+ 54747 - 44032: 0xC7EA,
+ 54748 - 44032: 0xC24D,
+ 54749 - 44032: 0xC7EB,
+ 54750 - 44032: 0xC24E,
+ 54751 - 44032: 0xC24F,
+ 54752 - 44032: 0xC250,
+ 54753 - 44032: 0xC251,
+ 54754 - 44032: 0xC252,
+ 54755 - 44032: 0xC253,
+ 54756 - 44032: 0xC7EC,
+ 54757 - 44032: 0xC7ED,
+ 54758 - 44032: 0xC254,
+ 54759 - 44032: 0xC255,
+ 54760 - 44032: 0xC7EE,
+ 54761 - 44032: 0xC256,
+ 54762 - 44032: 0xC257,
+ 54763 - 44032: 0xC258,
+ 54764 - 44032: 0xC7EF,
+ 54765 - 44032: 0xC259,
+ 54766 - 44032: 0xC25A,
+ 54767 - 44032: 0xC261,
+ 54768 - 44032: 0xC262,
+ 54769 - 44032: 0xC263,
+ 54770 - 44032: 0xC264,
+ 54771 - 44032: 0xC265,
+ 54772 - 44032: 0xC7F0,
+ 54773 - 44032: 0xC7F1,
+ 54774 - 44032: 0xC266,
+ 54775 - 44032: 0xC7F2,
+ 54776 - 44032: 0xC267,
+ 54777 - 44032: 0xC7F3,
+ 54778 - 44032: 0xC268,
+ 54779 - 44032: 0xC269,
+ 54780 - 44032: 0xC26A,
+ 54781 - 44032: 0xC26B,
+ 54782 - 44032: 0xC26C,
+ 54783 - 44032: 0xC26D,
+ 54784 - 44032: 0xC7F4,
+ 54785 - 44032: 0xC7F5,
+ 54786 - 44032: 0xC26E,
+ 54787 - 44032: 0xC26F,
+ 54788 - 44032: 0xC7F6,
+ 54789 - 44032: 0xC270,
+ 54790 - 44032: 0xC271,
+ 54791 - 44032: 0xC272,
+ 54792 - 44032: 0xC7F7,
+ 54793 - 44032: 0xC273,
+ 54794 - 44032: 0xC274,
+ 54795 - 44032: 0xC275,
+ 54796 - 44032: 0xC276,
+ 54797 - 44032: 0xC277,
+ 54798 - 44032: 0xC278,
+ 54799 - 44032: 0xC279,
+ 54800 - 44032: 0xC7F8,
+ 54801 - 44032: 0xC7F9,
+ 54802 - 44032: 0xC27A,
+ 54803 - 44032: 0xC7FA,
+ 54804 - 44032: 0xC7FB,
+ 54805 - 44032: 0xC7FC,
+ 54806 - 44032: 0xC281,
+ 54807 - 44032: 0xC282,
+ 54808 - 44032: 0xC283,
+ 54809 - 44032: 0xC284,
+ 54810 - 44032: 0xC285,
+ 54811 - 44032: 0xC286,
+ 54812 - 44032: 0xC7FD,
+ 54813 - 44032: 0xC287,
+ 54814 - 44032: 0xC288,
+ 54815 - 44032: 0xC289,
+ 54816 - 44032: 0xC7FE,
+ 54817 - 44032: 0xC28A,
+ 54818 - 44032: 0xC28B,
+ 54819 - 44032: 0xC28C,
+ 54820 - 44032: 0xC8A1,
+ 54821 - 44032: 0xC28D,
+ 54822 - 44032: 0xC28E,
+ 54823 - 44032: 0xC28F,
+ 54824 - 44032: 0xC290,
+ 54825 - 44032: 0xC291,
+ 54826 - 44032: 0xC292,
+ 54827 - 44032: 0xC293,
+ 54828 - 44032: 0xC294,
+ 54829 - 44032: 0xC8A2,
+ 54830 - 44032: 0xC295,
+ 54831 - 44032: 0xC296,
+ 54832 - 44032: 0xC297,
+ 54833 - 44032: 0xC298,
+ 54834 - 44032: 0xC299,
+ 54835 - 44032: 0xC29A,
+ 54836 - 44032: 0xC29B,
+ 54837 - 44032: 0xC29C,
+ 54838 - 44032: 0xC29D,
+ 54839 - 44032: 0xC29E,
+ 54840 - 44032: 0xC8A3,
+ 54841 - 44032: 0xC8A4,
+ 54842 - 44032: 0xC29F,
+ 54843 - 44032: 0xC2A0,
+ 54844 - 44032: 0xC8A5,
+ 54845 - 44032: 0xC341,
+ 54846 - 44032: 0xC342,
+ 54847 - 44032: 0xC343,
+ 54848 - 44032: 0xC8A6,
+ 54849 - 44032: 0xC344,
+ 54850 - 44032: 0xC345,
+ 54851 - 44032: 0xC346,
+ 54852 - 44032: 0xC347,
+ 54853 - 44032: 0xC8A7,
+ 54854 - 44032: 0xC348,
+ 54855 - 44032: 0xC349,
+ 54856 - 44032: 0xC8A8,
+ 54857 - 44032: 0xC8A9,
+ 54858 - 44032: 0xC34A,
+ 54859 - 44032: 0xC8AA,
+ 54860 - 44032: 0xC34B,
+ 54861 - 44032: 0xC8AB,
+ 54862 - 44032: 0xC34C,
+ 54863 - 44032: 0xC34D,
+ 54864 - 44032: 0xC34E,
+ 54865 - 44032: 0xC8AC,
+ 54866 - 44032: 0xC34F,
+ 54867 - 44032: 0xC350,
+ 54868 - 44032: 0xC8AD,
+ 54869 - 44032: 0xC8AE,
+ 54870 - 44032: 0xC351,
+ 54871 - 44032: 0xC352,
+ 54872 - 44032: 0xC8AF,
+ 54873 - 44032: 0xC353,
+ 54874 - 44032: 0xC354,
+ 54875 - 44032: 0xC355,
+ 54876 - 44032: 0xC8B0,
+ 54877 - 44032: 0xC356,
+ 54878 - 44032: 0xC357,
+ 54879 - 44032: 0xC358,
+ 54880 - 44032: 0xC359,
+ 54881 - 44032: 0xC35A,
+ 54882 - 44032: 0xC361,
+ 54883 - 44032: 0xC362,
+ 54884 - 44032: 0xC363,
+ 54885 - 44032: 0xC364,
+ 54886 - 44032: 0xC365,
+ 54887 - 44032: 0xC8B1,
+ 54888 - 44032: 0xC366,
+ 54889 - 44032: 0xC8B2,
+ 54890 - 44032: 0xC367,
+ 54891 - 44032: 0xC368,
+ 54892 - 44032: 0xC369,
+ 54893 - 44032: 0xC36A,
+ 54894 - 44032: 0xC36B,
+ 54895 - 44032: 0xC36C,
+ 54896 - 44032: 0xC8B3,
+ 54897 - 44032: 0xC8B4,
+ 54898 - 44032: 0xC36D,
+ 54899 - 44032: 0xC36E,
+ 54900 - 44032: 0xC8B5,
+ 54901 - 44032: 0xC36F,
+ 54902 - 44032: 0xC370,
+ 54903 - 44032: 0xC371,
+ 54904 - 44032: 0xC372,
+ 54905 - 44032: 0xC373,
+ 54906 - 44032: 0xC374,
+ 54907 - 44032: 0xC375,
+ 54908 - 44032: 0xC376,
+ 54909 - 44032: 0xC377,
+ 54910 - 44032: 0xC378,
+ 54911 - 44032: 0xC379,
+ 54912 - 44032: 0xC37A,
+ 54913 - 44032: 0xC381,
+ 54914 - 44032: 0xC382,
+ 54915 - 44032: 0xC8B6,
+ 54916 - 44032: 0xC383,
+ 54917 - 44032: 0xC8B7,
+ 54918 - 44032: 0xC384,
+ 54919 - 44032: 0xC385,
+ 54920 - 44032: 0xC386,
+ 54921 - 44032: 0xC387,
+ 54922 - 44032: 0xC388,
+ 54923 - 44032: 0xC389,
+ 54924 - 44032: 0xC8B8,
+ 54925 - 44032: 0xC8B9,
+ 54926 - 44032: 0xC38A,
+ 54927 - 44032: 0xC38B,
+ 54928 - 44032: 0xC8BA,
+ 54929 - 44032: 0xC38C,
+ 54930 - 44032: 0xC38D,
+ 54931 - 44032: 0xC38E,
+ 54932 - 44032: 0xC8BB,
+ 54933 - 44032: 0xC38F,
+ 54934 - 44032: 0xC390,
+ 54935 - 44032: 0xC391,
+ 54936 - 44032: 0xC392,
+ 54937 - 44032: 0xC393,
+ 54938 - 44032: 0xC394,
+ 54939 - 44032: 0xC395,
+ 54940 - 44032: 0xC396,
+ 54941 - 44032: 0xC8BC,
+ 54942 - 44032: 0xC397,
+ 54943 - 44032: 0xC8BD,
+ 54944 - 44032: 0xC398,
+ 54945 - 44032: 0xC8BE,
+ 54946 - 44032: 0xC399,
+ 54947 - 44032: 0xC39A,
+ 54948 - 44032: 0xC39B,
+ 54949 - 44032: 0xC39C,
+ 54950 - 44032: 0xC39D,
+ 54951 - 44032: 0xC39E,
+ 54952 - 44032: 0xC8BF,
+ 54953 - 44032: 0xC39F,
+ 54954 - 44032: 0xC3A0,
+ 54955 - 44032: 0xC441,
+ 54956 - 44032: 0xC8C0,
+ 54957 - 44032: 0xC442,
+ 54958 - 44032: 0xC443,
+ 54959 - 44032: 0xC444,
+ 54960 - 44032: 0xC8C1,
+ 54961 - 44032: 0xC445,
+ 54962 - 44032: 0xC446,
+ 54963 - 44032: 0xC447,
+ 54964 - 44032: 0xC448,
+ 54965 - 44032: 0xC449,
+ 54966 - 44032: 0xC44A,
+ 54967 - 44032: 0xC44B,
+ 54968 - 44032: 0xC44C,
+ 54969 - 44032: 0xC8C2,
+ 54970 - 44032: 0xC44D,
+ 54971 - 44032: 0xC8C3,
+ 54972 - 44032: 0xC44E,
+ 54973 - 44032: 0xC44F,
+ 54974 - 44032: 0xC450,
+ 54975 - 44032: 0xC451,
+ 54976 - 44032: 0xC452,
+ 54977 - 44032: 0xC453,
+ 54978 - 44032: 0xC454,
+ 54979 - 44032: 0xC455,
+ 54980 - 44032: 0xC8C4,
+ 54981 - 44032: 0xC8C5,
+ 54982 - 44032: 0xC456,
+ 54983 - 44032: 0xC457,
+ 54984 - 44032: 0xC8C6,
+ 54985 - 44032: 0xC458,
+ 54986 - 44032: 0xC459,
+ 54987 - 44032: 0xC45A,
+ 54988 - 44032: 0xC8C7,
+ 54989 - 44032: 0xC461,
+ 54990 - 44032: 0xC462,
+ 54991 - 44032: 0xC463,
+ 54992 - 44032: 0xC464,
+ 54993 - 44032: 0xC8C8,
+ 54994 - 44032: 0xC465,
+ 54995 - 44032: 0xC466,
+ 54996 - 44032: 0xC8C9,
+ 54997 - 44032: 0xC467,
+ 54998 - 44032: 0xC468,
+ 54999 - 44032: 0xC8CA,
+ 55000 - 44032: 0xC469,
+ 55001 - 44032: 0xC8CB,
+ 55002 - 44032: 0xC46A,
+ 55003 - 44032: 0xC46B,
+ 55004 - 44032: 0xC46C,
+ 55005 - 44032: 0xC46D,
+ 55006 - 44032: 0xC46E,
+ 55007 - 44032: 0xC46F,
+ 55008 - 44032: 0xC8CC,
+ 55009 - 44032: 0xC470,
+ 55010 - 44032: 0xC471,
+ 55011 - 44032: 0xC472,
+ 55012 - 44032: 0xC8CD,
+ 55013 - 44032: 0xC473,
+ 55014 - 44032: 0xC474,
+ 55015 - 44032: 0xC475,
+ 55016 - 44032: 0xC8CE,
+ 55017 - 44032: 0xC476,
+ 55018 - 44032: 0xC477,
+ 55019 - 44032: 0xC478,
+ 55020 - 44032: 0xC479,
+ 55021 - 44032: 0xC47A,
+ 55022 - 44032: 0xC481,
+ 55023 - 44032: 0xC482,
+ 55024 - 44032: 0xC8CF,
+ 55025 - 44032: 0xC483,
+ 55026 - 44032: 0xC484,
+ 55027 - 44032: 0xC485,
+ 55028 - 44032: 0xC486,
+ 55029 - 44032: 0xC8D0,
+ 55030 - 44032: 0xC487,
+ 55031 - 44032: 0xC488,
+ 55032 - 44032: 0xC489,
+ 55033 - 44032: 0xC48A,
+ 55034 - 44032: 0xC48B,
+ 55035 - 44032: 0xC48C,
+ 55036 - 44032: 0xC8D1,
+ 55037 - 44032: 0xC8D2,
+ 55038 - 44032: 0xC48D,
+ 55039 - 44032: 0xC48E,
+ 55040 - 44032: 0xC8D3,
+ 55041 - 44032: 0xC48F,
+ 55042 - 44032: 0xC490,
+ 55043 - 44032: 0xC491,
+ 55044 - 44032: 0xC8D4,
+ 55045 - 44032: 0xC492,
+ 55046 - 44032: 0xC493,
+ 55047 - 44032: 0xC494,
+ 55048 - 44032: 0xC495,
+ 55049 - 44032: 0xC496,
+ 55050 - 44032: 0xC497,
+ 55051 - 44032: 0xC498,
+ 55052 - 44032: 0xC499,
+ 55053 - 44032: 0xC49A,
+ 55054 - 44032: 0xC49B,
+ 55055 - 44032: 0xC49C,
+ 55056 - 44032: 0xC49D,
+ 55057 - 44032: 0xC8D5,
+ 55058 - 44032: 0xC49E,
+ 55059 - 44032: 0xC49F,
+ 55060 - 44032: 0xC4A0,
+ 55061 - 44032: 0xC541,
+ 55062 - 44032: 0xC542,
+ 55063 - 44032: 0xC543,
+ 55064 - 44032: 0xC8D6,
+ 55065 - 44032: 0xC8D7,
+ 55066 - 44032: 0xC544,
+ 55067 - 44032: 0xC545,
+ 55068 - 44032: 0xC8D8,
+ 55069 - 44032: 0xC546,
+ 55070 - 44032: 0xC547,
+ 55071 - 44032: 0xC548,
+ 55072 - 44032: 0xC8D9,
+ 55073 - 44032: 0xC549,
+ 55074 - 44032: 0xC54A,
+ 55075 - 44032: 0xC54B,
+ 55076 - 44032: 0xC54C,
+ 55077 - 44032: 0xC54D,
+ 55078 - 44032: 0xC54E,
+ 55079 - 44032: 0xC54F,
+ 55080 - 44032: 0xC8DA,
+ 55081 - 44032: 0xC8DB,
+ 55082 - 44032: 0xC550,
+ 55083 - 44032: 0xC8DC,
+ 55084 - 44032: 0xC551,
+ 55085 - 44032: 0xC8DD,
+ 55086 - 44032: 0xC552,
+ 55087 - 44032: 0xC553,
+ 55088 - 44032: 0xC554,
+ 55089 - 44032: 0xC555,
+ 55090 - 44032: 0xC556,
+ 55091 - 44032: 0xC557,
+ 55092 - 44032: 0xC8DE,
+ 55093 - 44032: 0xC8DF,
+ 55094 - 44032: 0xC558,
+ 55095 - 44032: 0xC559,
+ 55096 - 44032: 0xC8E0,
+ 55097 - 44032: 0xC55A,
+ 55098 - 44032: 0xC561,
+ 55099 - 44032: 0xC562,
+ 55100 - 44032: 0xC8E1,
+ 55101 - 44032: 0xC563,
+ 55102 - 44032: 0xC564,
+ 55103 - 44032: 0xC565,
+ 55104 - 44032: 0xC566,
+ 55105 - 44032: 0xC567,
+ 55106 - 44032: 0xC568,
+ 55107 - 44032: 0xC569,
+ 55108 - 44032: 0xC8E2,
+ 55109 - 44032: 0xC56A,
+ 55110 - 44032: 0xC56B,
+ 55111 - 44032: 0xC8E3,
+ 55112 - 44032: 0xC56C,
+ 55113 - 44032: 0xC8E4,
+ 55114 - 44032: 0xC56D,
+ 55115 - 44032: 0xC56E,
+ 55116 - 44032: 0xC56F,
+ 55117 - 44032: 0xC570,
+ 55118 - 44032: 0xC571,
+ 55119 - 44032: 0xC572,
+ 55120 - 44032: 0xC8E5,
+ 55121 - 44032: 0xC8E6,
+ 55122 - 44032: 0xC573,
+ 55123 - 44032: 0xC574,
+ 55124 - 44032: 0xC8E7,
+ 55125 - 44032: 0xC575,
+ 55126 - 44032: 0xC8E8,
+ 55127 - 44032: 0xC8E9,
+ 55128 - 44032: 0xC8EA,
+ 55129 - 44032: 0xC8EB,
+ 55130 - 44032: 0xC576,
+ 55131 - 44032: 0xC577,
+ 55132 - 44032: 0xC578,
+ 55133 - 44032: 0xC579,
+ 55134 - 44032: 0xC57A,
+ 55135 - 44032: 0xC581,
+ 55136 - 44032: 0xC8EC,
+ 55137 - 44032: 0xC8ED,
+ 55138 - 44032: 0xC582,
+ 55139 - 44032: 0xC8EE,
+ 55140 - 44032: 0xC583,
+ 55141 - 44032: 0xC8EF,
+ 55142 - 44032: 0xC584,
+ 55143 - 44032: 0xC585,
+ 55144 - 44032: 0xC586,
+ 55145 - 44032: 0xC8F0,
+ 55146 - 44032: 0xC587,
+ 55147 - 44032: 0xC588,
+ 55148 - 44032: 0xC8F1,
+ 55149 - 44032: 0xC589,
+ 55150 - 44032: 0xC58A,
+ 55151 - 44032: 0xC58B,
+ 55152 - 44032: 0xC8F2,
+ 55153 - 44032: 0xC58C,
+ 55154 - 44032: 0xC58D,
+ 55155 - 44032: 0xC58E,
+ 55156 - 44032: 0xC8F3,
+ 55157 - 44032: 0xC58F,
+ 55158 - 44032: 0xC590,
+ 55159 - 44032: 0xC591,
+ 55160 - 44032: 0xC592,
+ 55161 - 44032: 0xC593,
+ 55162 - 44032: 0xC594,
+ 55163 - 44032: 0xC595,
+ 55164 - 44032: 0xC8F4,
+ 55165 - 44032: 0xC8F5,
+ 55166 - 44032: 0xC596,
+ 55167 - 44032: 0xC597,
+ 55168 - 44032: 0xC598,
+ 55169 - 44032: 0xC8F6,
+ 55170 - 44032: 0xC599,
+ 55171 - 44032: 0xC59A,
+ 55172 - 44032: 0xC59B,
+ 55173 - 44032: 0xC59C,
+ 55174 - 44032: 0xC59D,
+ 55175 - 44032: 0xC59E,
+ 55176 - 44032: 0xC8F7,
+ 55177 - 44032: 0xC8F8,
+ 55178 - 44032: 0xC59F,
+ 55179 - 44032: 0xC5A0,
+ 55180 - 44032: 0xC8F9,
+ 55181 - 44032: 0xC641,
+ 55182 - 44032: 0xC642,
+ 55183 - 44032: 0xC643,
+ 55184 - 44032: 0xC8FA,
+ 55185 - 44032: 0xC644,
+ 55186 - 44032: 0xC645,
+ 55187 - 44032: 0xC646,
+ 55188 - 44032: 0xC647,
+ 55189 - 44032: 0xC648,
+ 55190 - 44032: 0xC649,
+ 55191 - 44032: 0xC64A,
+ 55192 - 44032: 0xC8FB,
+ 55193 - 44032: 0xC8FC,
+ 55194 - 44032: 0xC64B,
+ 55195 - 44032: 0xC8FD,
+ 55196 - 44032: 0xC64C,
+ 55197 - 44032: 0xC8FE,
+ 55198 - 44032: 0xC64D,
+ 55199 - 44032: 0xC64E,
+ 55200 - 44032: 0xC64F,
+ 55201 - 44032: 0xC650,
+ 55202 - 44032: 0xC651,
+ 55203 - 44032: 0xC652,
+}
+
+const encode2Low, encode2High = 8213, 9838
+
+var encode2 = [...]uint16{
+ 8213 - 8213: 0xA1AA,
+ 8216 - 8213: 0xA1AE,
+ 8217 - 8213: 0xA1AF,
+ 8220 - 8213: 0xA1B0,
+ 8221 - 8213: 0xA1B1,
+ 8224 - 8213: 0xA2D3,
+ 8225 - 8213: 0xA2D4,
+ 8229 - 8213: 0xA1A5,
+ 8230 - 8213: 0xA1A6,
+ 8240 - 8213: 0xA2B6,
+ 8242 - 8213: 0xA1C7,
+ 8243 - 8213: 0xA1C8,
+ 8251 - 8213: 0xA1D8,
+ 8308 - 8213: 0xA9F9,
+ 8319 - 8213: 0xA9FA,
+ 8321 - 8213: 0xA9FB,
+ 8322 - 8213: 0xA9FC,
+ 8323 - 8213: 0xA9FD,
+ 8324 - 8213: 0xA9FE,
+ 8364 - 8213: 0xA2E6,
+ 8451 - 8213: 0xA1C9,
+ 8457 - 8213: 0xA2B5,
+ 8467 - 8213: 0xA7A4,
+ 8470 - 8213: 0xA2E0,
+ 8481 - 8213: 0xA2E5,
+ 8482 - 8213: 0xA2E2,
+ 8486 - 8213: 0xA7D9,
+ 8491 - 8213: 0xA1CA,
+ 8531 - 8213: 0xA8F7,
+ 8532 - 8213: 0xA8F8,
+ 8539 - 8213: 0xA8FB,
+ 8540 - 8213: 0xA8FC,
+ 8541 - 8213: 0xA8FD,
+ 8542 - 8213: 0xA8FE,
+ 8544 - 8213: 0xA5B0,
+ 8545 - 8213: 0xA5B1,
+ 8546 - 8213: 0xA5B2,
+ 8547 - 8213: 0xA5B3,
+ 8548 - 8213: 0xA5B4,
+ 8549 - 8213: 0xA5B5,
+ 8550 - 8213: 0xA5B6,
+ 8551 - 8213: 0xA5B7,
+ 8552 - 8213: 0xA5B8,
+ 8553 - 8213: 0xA5B9,
+ 8560 - 8213: 0xA5A1,
+ 8561 - 8213: 0xA5A2,
+ 8562 - 8213: 0xA5A3,
+ 8563 - 8213: 0xA5A4,
+ 8564 - 8213: 0xA5A5,
+ 8565 - 8213: 0xA5A6,
+ 8566 - 8213: 0xA5A7,
+ 8567 - 8213: 0xA5A8,
+ 8568 - 8213: 0xA5A9,
+ 8569 - 8213: 0xA5AA,
+ 8592 - 8213: 0xA1E7,
+ 8593 - 8213: 0xA1E8,
+ 8594 - 8213: 0xA1E6,
+ 8595 - 8213: 0xA1E9,
+ 8596 - 8213: 0xA1EA,
+ 8597 - 8213: 0xA2D5,
+ 8598 - 8213: 0xA2D8,
+ 8599 - 8213: 0xA2D6,
+ 8600 - 8213: 0xA2D9,
+ 8601 - 8213: 0xA2D7,
+ 8658 - 8213: 0xA2A1,
+ 8660 - 8213: 0xA2A2,
+ 8704 - 8213: 0xA2A3,
+ 8706 - 8213: 0xA1D3,
+ 8707 - 8213: 0xA2A4,
+ 8711 - 8213: 0xA1D4,
+ 8712 - 8213: 0xA1F4,
+ 8715 - 8213: 0xA1F5,
+ 8719 - 8213: 0xA2B3,
+ 8721 - 8213: 0xA2B2,
+ 8730 - 8213: 0xA1EE,
+ 8733 - 8213: 0xA1F0,
+ 8734 - 8213: 0xA1C4,
+ 8736 - 8213: 0xA1D0,
+ 8741 - 8213: 0xA1AB,
+ 8743 - 8213: 0xA1FC,
+ 8744 - 8213: 0xA1FD,
+ 8745 - 8213: 0xA1FB,
+ 8746 - 8213: 0xA1FA,
+ 8747 - 8213: 0xA1F2,
+ 8748 - 8213: 0xA1F3,
+ 8750 - 8213: 0xA2B1,
+ 8756 - 8213: 0xA1C5,
+ 8757 - 8213: 0xA1F1,
+ 8764 - 8213: 0xA1AD,
+ 8765 - 8213: 0xA1EF,
+ 8786 - 8213: 0xA1D6,
+ 8800 - 8213: 0xA1C1,
+ 8801 - 8213: 0xA1D5,
+ 8804 - 8213: 0xA1C2,
+ 8805 - 8213: 0xA1C3,
+ 8810 - 8213: 0xA1EC,
+ 8811 - 8213: 0xA1ED,
+ 8834 - 8213: 0xA1F8,
+ 8835 - 8213: 0xA1F9,
+ 8838 - 8213: 0xA1F6,
+ 8839 - 8213: 0xA1F7,
+ 8857 - 8213: 0xA2C1,
+ 8869 - 8213: 0xA1D1,
+ 8978 - 8213: 0xA1D2,
+ 9312 - 8213: 0xA8E7,
+ 9313 - 8213: 0xA8E8,
+ 9314 - 8213: 0xA8E9,
+ 9315 - 8213: 0xA8EA,
+ 9316 - 8213: 0xA8EB,
+ 9317 - 8213: 0xA8EC,
+ 9318 - 8213: 0xA8ED,
+ 9319 - 8213: 0xA8EE,
+ 9320 - 8213: 0xA8EF,
+ 9321 - 8213: 0xA8F0,
+ 9322 - 8213: 0xA8F1,
+ 9323 - 8213: 0xA8F2,
+ 9324 - 8213: 0xA8F3,
+ 9325 - 8213: 0xA8F4,
+ 9326 - 8213: 0xA8F5,
+ 9332 - 8213: 0xA9E7,
+ 9333 - 8213: 0xA9E8,
+ 9334 - 8213: 0xA9E9,
+ 9335 - 8213: 0xA9EA,
+ 9336 - 8213: 0xA9EB,
+ 9337 - 8213: 0xA9EC,
+ 9338 - 8213: 0xA9ED,
+ 9339 - 8213: 0xA9EE,
+ 9340 - 8213: 0xA9EF,
+ 9341 - 8213: 0xA9F0,
+ 9342 - 8213: 0xA9F1,
+ 9343 - 8213: 0xA9F2,
+ 9344 - 8213: 0xA9F3,
+ 9345 - 8213: 0xA9F4,
+ 9346 - 8213: 0xA9F5,
+ 9372 - 8213: 0xA9CD,
+ 9373 - 8213: 0xA9CE,
+ 9374 - 8213: 0xA9CF,
+ 9375 - 8213: 0xA9D0,
+ 9376 - 8213: 0xA9D1,
+ 9377 - 8213: 0xA9D2,
+ 9378 - 8213: 0xA9D3,
+ 9379 - 8213: 0xA9D4,
+ 9380 - 8213: 0xA9D5,
+ 9381 - 8213: 0xA9D6,
+ 9382 - 8213: 0xA9D7,
+ 9383 - 8213: 0xA9D8,
+ 9384 - 8213: 0xA9D9,
+ 9385 - 8213: 0xA9DA,
+ 9386 - 8213: 0xA9DB,
+ 9387 - 8213: 0xA9DC,
+ 9388 - 8213: 0xA9DD,
+ 9389 - 8213: 0xA9DE,
+ 9390 - 8213: 0xA9DF,
+ 9391 - 8213: 0xA9E0,
+ 9392 - 8213: 0xA9E1,
+ 9393 - 8213: 0xA9E2,
+ 9394 - 8213: 0xA9E3,
+ 9395 - 8213: 0xA9E4,
+ 9396 - 8213: 0xA9E5,
+ 9397 - 8213: 0xA9E6,
+ 9424 - 8213: 0xA8CD,
+ 9425 - 8213: 0xA8CE,
+ 9426 - 8213: 0xA8CF,
+ 9427 - 8213: 0xA8D0,
+ 9428 - 8213: 0xA8D1,
+ 9429 - 8213: 0xA8D2,
+ 9430 - 8213: 0xA8D3,
+ 9431 - 8213: 0xA8D4,
+ 9432 - 8213: 0xA8D5,
+ 9433 - 8213: 0xA8D6,
+ 9434 - 8213: 0xA8D7,
+ 9435 - 8213: 0xA8D8,
+ 9436 - 8213: 0xA8D9,
+ 9437 - 8213: 0xA8DA,
+ 9438 - 8213: 0xA8DB,
+ 9439 - 8213: 0xA8DC,
+ 9440 - 8213: 0xA8DD,
+ 9441 - 8213: 0xA8DE,
+ 9442 - 8213: 0xA8DF,
+ 9443 - 8213: 0xA8E0,
+ 9444 - 8213: 0xA8E1,
+ 9445 - 8213: 0xA8E2,
+ 9446 - 8213: 0xA8E3,
+ 9447 - 8213: 0xA8E4,
+ 9448 - 8213: 0xA8E5,
+ 9449 - 8213: 0xA8E6,
+ 9472 - 8213: 0xA6A1,
+ 9473 - 8213: 0xA6AC,
+ 9474 - 8213: 0xA6A2,
+ 9475 - 8213: 0xA6AD,
+ 9484 - 8213: 0xA6A3,
+ 9485 - 8213: 0xA6C8,
+ 9486 - 8213: 0xA6C7,
+ 9487 - 8213: 0xA6AE,
+ 9488 - 8213: 0xA6A4,
+ 9489 - 8213: 0xA6C2,
+ 9490 - 8213: 0xA6C1,
+ 9491 - 8213: 0xA6AF,
+ 9492 - 8213: 0xA6A6,
+ 9493 - 8213: 0xA6C6,
+ 9494 - 8213: 0xA6C5,
+ 9495 - 8213: 0xA6B1,
+ 9496 - 8213: 0xA6A5,
+ 9497 - 8213: 0xA6C4,
+ 9498 - 8213: 0xA6C3,
+ 9499 - 8213: 0xA6B0,
+ 9500 - 8213: 0xA6A7,
+ 9501 - 8213: 0xA6BC,
+ 9502 - 8213: 0xA6C9,
+ 9503 - 8213: 0xA6CA,
+ 9504 - 8213: 0xA6B7,
+ 9505 - 8213: 0xA6CB,
+ 9506 - 8213: 0xA6CC,
+ 9507 - 8213: 0xA6B2,
+ 9508 - 8213: 0xA6A9,
+ 9509 - 8213: 0xA6BE,
+ 9510 - 8213: 0xA6CD,
+ 9511 - 8213: 0xA6CE,
+ 9512 - 8213: 0xA6B9,
+ 9513 - 8213: 0xA6CF,
+ 9514 - 8213: 0xA6D0,
+ 9515 - 8213: 0xA6B4,
+ 9516 - 8213: 0xA6A8,
+ 9517 - 8213: 0xA6D1,
+ 9518 - 8213: 0xA6D2,
+ 9519 - 8213: 0xA6B8,
+ 9520 - 8213: 0xA6BD,
+ 9521 - 8213: 0xA6D3,
+ 9522 - 8213: 0xA6D4,
+ 9523 - 8213: 0xA6B3,
+ 9524 - 8213: 0xA6AA,
+ 9525 - 8213: 0xA6D5,
+ 9526 - 8213: 0xA6D6,
+ 9527 - 8213: 0xA6BA,
+ 9528 - 8213: 0xA6BF,
+ 9529 - 8213: 0xA6D7,
+ 9530 - 8213: 0xA6D8,
+ 9531 - 8213: 0xA6B5,
+ 9532 - 8213: 0xA6AB,
+ 9533 - 8213: 0xA6D9,
+ 9534 - 8213: 0xA6DA,
+ 9535 - 8213: 0xA6BB,
+ 9536 - 8213: 0xA6DB,
+ 9537 - 8213: 0xA6DC,
+ 9538 - 8213: 0xA6C0,
+ 9539 - 8213: 0xA6DD,
+ 9540 - 8213: 0xA6DE,
+ 9541 - 8213: 0xA6DF,
+ 9542 - 8213: 0xA6E0,
+ 9543 - 8213: 0xA6E1,
+ 9544 - 8213: 0xA6E2,
+ 9545 - 8213: 0xA6E3,
+ 9546 - 8213: 0xA6E4,
+ 9547 - 8213: 0xA6B6,
+ 9618 - 8213: 0xA2C6,
+ 9632 - 8213: 0xA1E1,
+ 9633 - 8213: 0xA1E0,
+ 9635 - 8213: 0xA2C3,
+ 9636 - 8213: 0xA2C7,
+ 9637 - 8213: 0xA2C8,
+ 9638 - 8213: 0xA2CB,
+ 9639 - 8213: 0xA2CA,
+ 9640 - 8213: 0xA2C9,
+ 9641 - 8213: 0xA2CC,
+ 9650 - 8213: 0xA1E3,
+ 9651 - 8213: 0xA1E2,
+ 9654 - 8213: 0xA2BA,
+ 9655 - 8213: 0xA2B9,
+ 9660 - 8213: 0xA1E5,
+ 9661 - 8213: 0xA1E4,
+ 9664 - 8213: 0xA2B8,
+ 9665 - 8213: 0xA2B7,
+ 9670 - 8213: 0xA1DF,
+ 9671 - 8213: 0xA1DE,
+ 9672 - 8213: 0xA2C2,
+ 9675 - 8213: 0xA1DB,
+ 9678 - 8213: 0xA1DD,
+ 9679 - 8213: 0xA1DC,
+ 9680 - 8213: 0xA2C4,
+ 9681 - 8213: 0xA2C5,
+ 9733 - 8213: 0xA1DA,
+ 9734 - 8213: 0xA1D9,
+ 9742 - 8213: 0xA2CF,
+ 9743 - 8213: 0xA2CE,
+ 9756 - 8213: 0xA2D0,
+ 9758 - 8213: 0xA2D1,
+ 9792 - 8213: 0xA1CF,
+ 9794 - 8213: 0xA1CE,
+ 9824 - 8213: 0xA2BC,
+ 9825 - 8213: 0xA2BD,
+ 9827 - 8213: 0xA2C0,
+ 9828 - 8213: 0xA2BB,
+ 9829 - 8213: 0xA2BE,
+ 9831 - 8213: 0xA2BF,
+ 9832 - 8213: 0xA2CD,
+ 9833 - 8213: 0xA2DB,
+ 9834 - 8213: 0xA2DC,
+ 9836 - 8213: 0xA2DD,
+ 9837 - 8213: 0xA2DA,
+}
+
+const encode3Low, encode3High = 12288, 13278
+
+var encode3 = [...]uint16{
+ 12288 - 12288: 0xA1A1,
+ 12289 - 12288: 0xA1A2,
+ 12290 - 12288: 0xA1A3,
+ 12291 - 12288: 0xA1A8,
+ 12296 - 12288: 0xA1B4,
+ 12297 - 12288: 0xA1B5,
+ 12298 - 12288: 0xA1B6,
+ 12299 - 12288: 0xA1B7,
+ 12300 - 12288: 0xA1B8,
+ 12301 - 12288: 0xA1B9,
+ 12302 - 12288: 0xA1BA,
+ 12303 - 12288: 0xA1BB,
+ 12304 - 12288: 0xA1BC,
+ 12305 - 12288: 0xA1BD,
+ 12307 - 12288: 0xA1EB,
+ 12308 - 12288: 0xA1B2,
+ 12309 - 12288: 0xA1B3,
+ 12353 - 12288: 0xAAA1,
+ 12354 - 12288: 0xAAA2,
+ 12355 - 12288: 0xAAA3,
+ 12356 - 12288: 0xAAA4,
+ 12357 - 12288: 0xAAA5,
+ 12358 - 12288: 0xAAA6,
+ 12359 - 12288: 0xAAA7,
+ 12360 - 12288: 0xAAA8,
+ 12361 - 12288: 0xAAA9,
+ 12362 - 12288: 0xAAAA,
+ 12363 - 12288: 0xAAAB,
+ 12364 - 12288: 0xAAAC,
+ 12365 - 12288: 0xAAAD,
+ 12366 - 12288: 0xAAAE,
+ 12367 - 12288: 0xAAAF,
+ 12368 - 12288: 0xAAB0,
+ 12369 - 12288: 0xAAB1,
+ 12370 - 12288: 0xAAB2,
+ 12371 - 12288: 0xAAB3,
+ 12372 - 12288: 0xAAB4,
+ 12373 - 12288: 0xAAB5,
+ 12374 - 12288: 0xAAB6,
+ 12375 - 12288: 0xAAB7,
+ 12376 - 12288: 0xAAB8,
+ 12377 - 12288: 0xAAB9,
+ 12378 - 12288: 0xAABA,
+ 12379 - 12288: 0xAABB,
+ 12380 - 12288: 0xAABC,
+ 12381 - 12288: 0xAABD,
+ 12382 - 12288: 0xAABE,
+ 12383 - 12288: 0xAABF,
+ 12384 - 12288: 0xAAC0,
+ 12385 - 12288: 0xAAC1,
+ 12386 - 12288: 0xAAC2,
+ 12387 - 12288: 0xAAC3,
+ 12388 - 12288: 0xAAC4,
+ 12389 - 12288: 0xAAC5,
+ 12390 - 12288: 0xAAC6,
+ 12391 - 12288: 0xAAC7,
+ 12392 - 12288: 0xAAC8,
+ 12393 - 12288: 0xAAC9,
+ 12394 - 12288: 0xAACA,
+ 12395 - 12288: 0xAACB,
+ 12396 - 12288: 0xAACC,
+ 12397 - 12288: 0xAACD,
+ 12398 - 12288: 0xAACE,
+ 12399 - 12288: 0xAACF,
+ 12400 - 12288: 0xAAD0,
+ 12401 - 12288: 0xAAD1,
+ 12402 - 12288: 0xAAD2,
+ 12403 - 12288: 0xAAD3,
+ 12404 - 12288: 0xAAD4,
+ 12405 - 12288: 0xAAD5,
+ 12406 - 12288: 0xAAD6,
+ 12407 - 12288: 0xAAD7,
+ 12408 - 12288: 0xAAD8,
+ 12409 - 12288: 0xAAD9,
+ 12410 - 12288: 0xAADA,
+ 12411 - 12288: 0xAADB,
+ 12412 - 12288: 0xAADC,
+ 12413 - 12288: 0xAADD,
+ 12414 - 12288: 0xAADE,
+ 12415 - 12288: 0xAADF,
+ 12416 - 12288: 0xAAE0,
+ 12417 - 12288: 0xAAE1,
+ 12418 - 12288: 0xAAE2,
+ 12419 - 12288: 0xAAE3,
+ 12420 - 12288: 0xAAE4,
+ 12421 - 12288: 0xAAE5,
+ 12422 - 12288: 0xAAE6,
+ 12423 - 12288: 0xAAE7,
+ 12424 - 12288: 0xAAE8,
+ 12425 - 12288: 0xAAE9,
+ 12426 - 12288: 0xAAEA,
+ 12427 - 12288: 0xAAEB,
+ 12428 - 12288: 0xAAEC,
+ 12429 - 12288: 0xAAED,
+ 12430 - 12288: 0xAAEE,
+ 12431 - 12288: 0xAAEF,
+ 12432 - 12288: 0xAAF0,
+ 12433 - 12288: 0xAAF1,
+ 12434 - 12288: 0xAAF2,
+ 12435 - 12288: 0xAAF3,
+ 12449 - 12288: 0xABA1,
+ 12450 - 12288: 0xABA2,
+ 12451 - 12288: 0xABA3,
+ 12452 - 12288: 0xABA4,
+ 12453 - 12288: 0xABA5,
+ 12454 - 12288: 0xABA6,
+ 12455 - 12288: 0xABA7,
+ 12456 - 12288: 0xABA8,
+ 12457 - 12288: 0xABA9,
+ 12458 - 12288: 0xABAA,
+ 12459 - 12288: 0xABAB,
+ 12460 - 12288: 0xABAC,
+ 12461 - 12288: 0xABAD,
+ 12462 - 12288: 0xABAE,
+ 12463 - 12288: 0xABAF,
+ 12464 - 12288: 0xABB0,
+ 12465 - 12288: 0xABB1,
+ 12466 - 12288: 0xABB2,
+ 12467 - 12288: 0xABB3,
+ 12468 - 12288: 0xABB4,
+ 12469 - 12288: 0xABB5,
+ 12470 - 12288: 0xABB6,
+ 12471 - 12288: 0xABB7,
+ 12472 - 12288: 0xABB8,
+ 12473 - 12288: 0xABB9,
+ 12474 - 12288: 0xABBA,
+ 12475 - 12288: 0xABBB,
+ 12476 - 12288: 0xABBC,
+ 12477 - 12288: 0xABBD,
+ 12478 - 12288: 0xABBE,
+ 12479 - 12288: 0xABBF,
+ 12480 - 12288: 0xABC0,
+ 12481 - 12288: 0xABC1,
+ 12482 - 12288: 0xABC2,
+ 12483 - 12288: 0xABC3,
+ 12484 - 12288: 0xABC4,
+ 12485 - 12288: 0xABC5,
+ 12486 - 12288: 0xABC6,
+ 12487 - 12288: 0xABC7,
+ 12488 - 12288: 0xABC8,
+ 12489 - 12288: 0xABC9,
+ 12490 - 12288: 0xABCA,
+ 12491 - 12288: 0xABCB,
+ 12492 - 12288: 0xABCC,
+ 12493 - 12288: 0xABCD,
+ 12494 - 12288: 0xABCE,
+ 12495 - 12288: 0xABCF,
+ 12496 - 12288: 0xABD0,
+ 12497 - 12288: 0xABD1,
+ 12498 - 12288: 0xABD2,
+ 12499 - 12288: 0xABD3,
+ 12500 - 12288: 0xABD4,
+ 12501 - 12288: 0xABD5,
+ 12502 - 12288: 0xABD6,
+ 12503 - 12288: 0xABD7,
+ 12504 - 12288: 0xABD8,
+ 12505 - 12288: 0xABD9,
+ 12506 - 12288: 0xABDA,
+ 12507 - 12288: 0xABDB,
+ 12508 - 12288: 0xABDC,
+ 12509 - 12288: 0xABDD,
+ 12510 - 12288: 0xABDE,
+ 12511 - 12288: 0xABDF,
+ 12512 - 12288: 0xABE0,
+ 12513 - 12288: 0xABE1,
+ 12514 - 12288: 0xABE2,
+ 12515 - 12288: 0xABE3,
+ 12516 - 12288: 0xABE4,
+ 12517 - 12288: 0xABE5,
+ 12518 - 12288: 0xABE6,
+ 12519 - 12288: 0xABE7,
+ 12520 - 12288: 0xABE8,
+ 12521 - 12288: 0xABE9,
+ 12522 - 12288: 0xABEA,
+ 12523 - 12288: 0xABEB,
+ 12524 - 12288: 0xABEC,
+ 12525 - 12288: 0xABED,
+ 12526 - 12288: 0xABEE,
+ 12527 - 12288: 0xABEF,
+ 12528 - 12288: 0xABF0,
+ 12529 - 12288: 0xABF1,
+ 12530 - 12288: 0xABF2,
+ 12531 - 12288: 0xABF3,
+ 12532 - 12288: 0xABF4,
+ 12533 - 12288: 0xABF5,
+ 12534 - 12288: 0xABF6,
+ 12593 - 12288: 0xA4A1,
+ 12594 - 12288: 0xA4A2,
+ 12595 - 12288: 0xA4A3,
+ 12596 - 12288: 0xA4A4,
+ 12597 - 12288: 0xA4A5,
+ 12598 - 12288: 0xA4A6,
+ 12599 - 12288: 0xA4A7,
+ 12600 - 12288: 0xA4A8,
+ 12601 - 12288: 0xA4A9,
+ 12602 - 12288: 0xA4AA,
+ 12603 - 12288: 0xA4AB,
+ 12604 - 12288: 0xA4AC,
+ 12605 - 12288: 0xA4AD,
+ 12606 - 12288: 0xA4AE,
+ 12607 - 12288: 0xA4AF,
+ 12608 - 12288: 0xA4B0,
+ 12609 - 12288: 0xA4B1,
+ 12610 - 12288: 0xA4B2,
+ 12611 - 12288: 0xA4B3,
+ 12612 - 12288: 0xA4B4,
+ 12613 - 12288: 0xA4B5,
+ 12614 - 12288: 0xA4B6,
+ 12615 - 12288: 0xA4B7,
+ 12616 - 12288: 0xA4B8,
+ 12617 - 12288: 0xA4B9,
+ 12618 - 12288: 0xA4BA,
+ 12619 - 12288: 0xA4BB,
+ 12620 - 12288: 0xA4BC,
+ 12621 - 12288: 0xA4BD,
+ 12622 - 12288: 0xA4BE,
+ 12623 - 12288: 0xA4BF,
+ 12624 - 12288: 0xA4C0,
+ 12625 - 12288: 0xA4C1,
+ 12626 - 12288: 0xA4C2,
+ 12627 - 12288: 0xA4C3,
+ 12628 - 12288: 0xA4C4,
+ 12629 - 12288: 0xA4C5,
+ 12630 - 12288: 0xA4C6,
+ 12631 - 12288: 0xA4C7,
+ 12632 - 12288: 0xA4C8,
+ 12633 - 12288: 0xA4C9,
+ 12634 - 12288: 0xA4CA,
+ 12635 - 12288: 0xA4CB,
+ 12636 - 12288: 0xA4CC,
+ 12637 - 12288: 0xA4CD,
+ 12638 - 12288: 0xA4CE,
+ 12639 - 12288: 0xA4CF,
+ 12640 - 12288: 0xA4D0,
+ 12641 - 12288: 0xA4D1,
+ 12642 - 12288: 0xA4D2,
+ 12643 - 12288: 0xA4D3,
+ 12644 - 12288: 0xA4D4,
+ 12645 - 12288: 0xA4D5,
+ 12646 - 12288: 0xA4D6,
+ 12647 - 12288: 0xA4D7,
+ 12648 - 12288: 0xA4D8,
+ 12649 - 12288: 0xA4D9,
+ 12650 - 12288: 0xA4DA,
+ 12651 - 12288: 0xA4DB,
+ 12652 - 12288: 0xA4DC,
+ 12653 - 12288: 0xA4DD,
+ 12654 - 12288: 0xA4DE,
+ 12655 - 12288: 0xA4DF,
+ 12656 - 12288: 0xA4E0,
+ 12657 - 12288: 0xA4E1,
+ 12658 - 12288: 0xA4E2,
+ 12659 - 12288: 0xA4E3,
+ 12660 - 12288: 0xA4E4,
+ 12661 - 12288: 0xA4E5,
+ 12662 - 12288: 0xA4E6,
+ 12663 - 12288: 0xA4E7,
+ 12664 - 12288: 0xA4E8,
+ 12665 - 12288: 0xA4E9,
+ 12666 - 12288: 0xA4EA,
+ 12667 - 12288: 0xA4EB,
+ 12668 - 12288: 0xA4EC,
+ 12669 - 12288: 0xA4ED,
+ 12670 - 12288: 0xA4EE,
+ 12671 - 12288: 0xA4EF,
+ 12672 - 12288: 0xA4F0,
+ 12673 - 12288: 0xA4F1,
+ 12674 - 12288: 0xA4F2,
+ 12675 - 12288: 0xA4F3,
+ 12676 - 12288: 0xA4F4,
+ 12677 - 12288: 0xA4F5,
+ 12678 - 12288: 0xA4F6,
+ 12679 - 12288: 0xA4F7,
+ 12680 - 12288: 0xA4F8,
+ 12681 - 12288: 0xA4F9,
+ 12682 - 12288: 0xA4FA,
+ 12683 - 12288: 0xA4FB,
+ 12684 - 12288: 0xA4FC,
+ 12685 - 12288: 0xA4FD,
+ 12686 - 12288: 0xA4FE,
+ 12800 - 12288: 0xA9B1,
+ 12801 - 12288: 0xA9B2,
+ 12802 - 12288: 0xA9B3,
+ 12803 - 12288: 0xA9B4,
+ 12804 - 12288: 0xA9B5,
+ 12805 - 12288: 0xA9B6,
+ 12806 - 12288: 0xA9B7,
+ 12807 - 12288: 0xA9B8,
+ 12808 - 12288: 0xA9B9,
+ 12809 - 12288: 0xA9BA,
+ 12810 - 12288: 0xA9BB,
+ 12811 - 12288: 0xA9BC,
+ 12812 - 12288: 0xA9BD,
+ 12813 - 12288: 0xA9BE,
+ 12814 - 12288: 0xA9BF,
+ 12815 - 12288: 0xA9C0,
+ 12816 - 12288: 0xA9C1,
+ 12817 - 12288: 0xA9C2,
+ 12818 - 12288: 0xA9C3,
+ 12819 - 12288: 0xA9C4,
+ 12820 - 12288: 0xA9C5,
+ 12821 - 12288: 0xA9C6,
+ 12822 - 12288: 0xA9C7,
+ 12823 - 12288: 0xA9C8,
+ 12824 - 12288: 0xA9C9,
+ 12825 - 12288: 0xA9CA,
+ 12826 - 12288: 0xA9CB,
+ 12827 - 12288: 0xA9CC,
+ 12828 - 12288: 0xA2DF,
+ 12896 - 12288: 0xA8B1,
+ 12897 - 12288: 0xA8B2,
+ 12898 - 12288: 0xA8B3,
+ 12899 - 12288: 0xA8B4,
+ 12900 - 12288: 0xA8B5,
+ 12901 - 12288: 0xA8B6,
+ 12902 - 12288: 0xA8B7,
+ 12903 - 12288: 0xA8B8,
+ 12904 - 12288: 0xA8B9,
+ 12905 - 12288: 0xA8BA,
+ 12906 - 12288: 0xA8BB,
+ 12907 - 12288: 0xA8BC,
+ 12908 - 12288: 0xA8BD,
+ 12909 - 12288: 0xA8BE,
+ 12910 - 12288: 0xA8BF,
+ 12911 - 12288: 0xA8C0,
+ 12912 - 12288: 0xA8C1,
+ 12913 - 12288: 0xA8C2,
+ 12914 - 12288: 0xA8C3,
+ 12915 - 12288: 0xA8C4,
+ 12916 - 12288: 0xA8C5,
+ 12917 - 12288: 0xA8C6,
+ 12918 - 12288: 0xA8C7,
+ 12919 - 12288: 0xA8C8,
+ 12920 - 12288: 0xA8C9,
+ 12921 - 12288: 0xA8CA,
+ 12922 - 12288: 0xA8CB,
+ 12923 - 12288: 0xA8CC,
+ 12927 - 12288: 0xA2DE,
+ 13184 - 12288: 0xA7C9,
+ 13185 - 12288: 0xA7CA,
+ 13186 - 12288: 0xA7CB,
+ 13187 - 12288: 0xA7CC,
+ 13188 - 12288: 0xA7CD,
+ 13192 - 12288: 0xA7BA,
+ 13193 - 12288: 0xA7BB,
+ 13194 - 12288: 0xA7DC,
+ 13195 - 12288: 0xA7DD,
+ 13196 - 12288: 0xA7DE,
+ 13197 - 12288: 0xA7B6,
+ 13198 - 12288: 0xA7B7,
+ 13199 - 12288: 0xA7B8,
+ 13200 - 12288: 0xA7D4,
+ 13201 - 12288: 0xA7D5,
+ 13202 - 12288: 0xA7D6,
+ 13203 - 12288: 0xA7D7,
+ 13204 - 12288: 0xA7D8,
+ 13205 - 12288: 0xA7A1,
+ 13206 - 12288: 0xA7A2,
+ 13207 - 12288: 0xA7A3,
+ 13208 - 12288: 0xA7A5,
+ 13209 - 12288: 0xA7AB,
+ 13210 - 12288: 0xA7AC,
+ 13211 - 12288: 0xA7AD,
+ 13212 - 12288: 0xA7AE,
+ 13213 - 12288: 0xA7AF,
+ 13214 - 12288: 0xA7B0,
+ 13215 - 12288: 0xA7B1,
+ 13216 - 12288: 0xA7B2,
+ 13217 - 12288: 0xA7B3,
+ 13218 - 12288: 0xA7B4,
+ 13219 - 12288: 0xA7A7,
+ 13220 - 12288: 0xA7A8,
+ 13221 - 12288: 0xA7A9,
+ 13222 - 12288: 0xA7AA,
+ 13223 - 12288: 0xA7BD,
+ 13224 - 12288: 0xA7BE,
+ 13225 - 12288: 0xA7E5,
+ 13226 - 12288: 0xA7E6,
+ 13227 - 12288: 0xA7E7,
+ 13228 - 12288: 0xA7E8,
+ 13229 - 12288: 0xA7E1,
+ 13230 - 12288: 0xA7E2,
+ 13231 - 12288: 0xA7E3,
+ 13232 - 12288: 0xA7BF,
+ 13233 - 12288: 0xA7C0,
+ 13234 - 12288: 0xA7C1,
+ 13235 - 12288: 0xA7C2,
+ 13236 - 12288: 0xA7C3,
+ 13237 - 12288: 0xA7C4,
+ 13238 - 12288: 0xA7C5,
+ 13239 - 12288: 0xA7C6,
+ 13240 - 12288: 0xA7C7,
+ 13241 - 12288: 0xA7C8,
+ 13242 - 12288: 0xA7CE,
+ 13243 - 12288: 0xA7CF,
+ 13244 - 12288: 0xA7D0,
+ 13245 - 12288: 0xA7D1,
+ 13246 - 12288: 0xA7D2,
+ 13247 - 12288: 0xA7D3,
+ 13248 - 12288: 0xA7DA,
+ 13249 - 12288: 0xA7DB,
+ 13250 - 12288: 0xA2E3,
+ 13251 - 12288: 0xA7EC,
+ 13252 - 12288: 0xA7A6,
+ 13253 - 12288: 0xA7E0,
+ 13254 - 12288: 0xA7EF,
+ 13255 - 12288: 0xA2E1,
+ 13256 - 12288: 0xA7BC,
+ 13257 - 12288: 0xA7ED,
+ 13258 - 12288: 0xA7B5,
+ 13263 - 12288: 0xA7B9,
+ 13264 - 12288: 0xA7EA,
+ 13267 - 12288: 0xA7EB,
+ 13270 - 12288: 0xA7DF,
+ 13272 - 12288: 0xA2E4,
+ 13275 - 12288: 0xA7E4,
+ 13276 - 12288: 0xA7EE,
+ 13277 - 12288: 0xA7E9,
+}
+
+const encode4Low, encode4High = 161, 1106
+
+var encode4 = [...]uint16{
+ 161 - 161: 0xA2AE,
+ 164 - 161: 0xA2B4,
+ 167 - 161: 0xA1D7,
+ 168 - 161: 0xA1A7,
+ 170 - 161: 0xA8A3,
+ 173 - 161: 0xA1A9,
+ 174 - 161: 0xA2E7,
+ 176 - 161: 0xA1C6,
+ 177 - 161: 0xA1BE,
+ 178 - 161: 0xA9F7,
+ 179 - 161: 0xA9F8,
+ 180 - 161: 0xA2A5,
+ 182 - 161: 0xA2D2,
+ 183 - 161: 0xA1A4,
+ 184 - 161: 0xA2AC,
+ 185 - 161: 0xA9F6,
+ 186 - 161: 0xA8AC,
+ 188 - 161: 0xA8F9,
+ 189 - 161: 0xA8F6,
+ 190 - 161: 0xA8FA,
+ 191 - 161: 0xA2AF,
+ 198 - 161: 0xA8A1,
+ 208 - 161: 0xA8A2,
+ 215 - 161: 0xA1BF,
+ 216 - 161: 0xA8AA,
+ 222 - 161: 0xA8AD,
+ 223 - 161: 0xA9AC,
+ 230 - 161: 0xA9A1,
+ 240 - 161: 0xA9A3,
+ 247 - 161: 0xA1C0,
+ 248 - 161: 0xA9AA,
+ 254 - 161: 0xA9AD,
+ 273 - 161: 0xA9A2,
+ 294 - 161: 0xA8A4,
+ 295 - 161: 0xA9A4,
+ 305 - 161: 0xA9A5,
+ 306 - 161: 0xA8A6,
+ 307 - 161: 0xA9A6,
+ 312 - 161: 0xA9A7,
+ 319 - 161: 0xA8A8,
+ 320 - 161: 0xA9A8,
+ 321 - 161: 0xA8A9,
+ 322 - 161: 0xA9A9,
+ 329 - 161: 0xA9B0,
+ 330 - 161: 0xA8AF,
+ 331 - 161: 0xA9AF,
+ 338 - 161: 0xA8AB,
+ 339 - 161: 0xA9AB,
+ 358 - 161: 0xA8AE,
+ 359 - 161: 0xA9AE,
+ 711 - 161: 0xA2A7,
+ 720 - 161: 0xA2B0,
+ 728 - 161: 0xA2A8,
+ 729 - 161: 0xA2AB,
+ 730 - 161: 0xA2AA,
+ 731 - 161: 0xA2AD,
+ 733 - 161: 0xA2A9,
+ 913 - 161: 0xA5C1,
+ 914 - 161: 0xA5C2,
+ 915 - 161: 0xA5C3,
+ 916 - 161: 0xA5C4,
+ 917 - 161: 0xA5C5,
+ 918 - 161: 0xA5C6,
+ 919 - 161: 0xA5C7,
+ 920 - 161: 0xA5C8,
+ 921 - 161: 0xA5C9,
+ 922 - 161: 0xA5CA,
+ 923 - 161: 0xA5CB,
+ 924 - 161: 0xA5CC,
+ 925 - 161: 0xA5CD,
+ 926 - 161: 0xA5CE,
+ 927 - 161: 0xA5CF,
+ 928 - 161: 0xA5D0,
+ 929 - 161: 0xA5D1,
+ 931 - 161: 0xA5D2,
+ 932 - 161: 0xA5D3,
+ 933 - 161: 0xA5D4,
+ 934 - 161: 0xA5D5,
+ 935 - 161: 0xA5D6,
+ 936 - 161: 0xA5D7,
+ 937 - 161: 0xA5D8,
+ 945 - 161: 0xA5E1,
+ 946 - 161: 0xA5E2,
+ 947 - 161: 0xA5E3,
+ 948 - 161: 0xA5E4,
+ 949 - 161: 0xA5E5,
+ 950 - 161: 0xA5E6,
+ 951 - 161: 0xA5E7,
+ 952 - 161: 0xA5E8,
+ 953 - 161: 0xA5E9,
+ 954 - 161: 0xA5EA,
+ 955 - 161: 0xA5EB,
+ 956 - 161: 0xA5EC,
+ 957 - 161: 0xA5ED,
+ 958 - 161: 0xA5EE,
+ 959 - 161: 0xA5EF,
+ 960 - 161: 0xA5F0,
+ 961 - 161: 0xA5F1,
+ 963 - 161: 0xA5F2,
+ 964 - 161: 0xA5F3,
+ 965 - 161: 0xA5F4,
+ 966 - 161: 0xA5F5,
+ 967 - 161: 0xA5F6,
+ 968 - 161: 0xA5F7,
+ 969 - 161: 0xA5F8,
+ 1025 - 161: 0xACA7,
+ 1040 - 161: 0xACA1,
+ 1041 - 161: 0xACA2,
+ 1042 - 161: 0xACA3,
+ 1043 - 161: 0xACA4,
+ 1044 - 161: 0xACA5,
+ 1045 - 161: 0xACA6,
+ 1046 - 161: 0xACA8,
+ 1047 - 161: 0xACA9,
+ 1048 - 161: 0xACAA,
+ 1049 - 161: 0xACAB,
+ 1050 - 161: 0xACAC,
+ 1051 - 161: 0xACAD,
+ 1052 - 161: 0xACAE,
+ 1053 - 161: 0xACAF,
+ 1054 - 161: 0xACB0,
+ 1055 - 161: 0xACB1,
+ 1056 - 161: 0xACB2,
+ 1057 - 161: 0xACB3,
+ 1058 - 161: 0xACB4,
+ 1059 - 161: 0xACB5,
+ 1060 - 161: 0xACB6,
+ 1061 - 161: 0xACB7,
+ 1062 - 161: 0xACB8,
+ 1063 - 161: 0xACB9,
+ 1064 - 161: 0xACBA,
+ 1065 - 161: 0xACBB,
+ 1066 - 161: 0xACBC,
+ 1067 - 161: 0xACBD,
+ 1068 - 161: 0xACBE,
+ 1069 - 161: 0xACBF,
+ 1070 - 161: 0xACC0,
+ 1071 - 161: 0xACC1,
+ 1072 - 161: 0xACD1,
+ 1073 - 161: 0xACD2,
+ 1074 - 161: 0xACD3,
+ 1075 - 161: 0xACD4,
+ 1076 - 161: 0xACD5,
+ 1077 - 161: 0xACD6,
+ 1078 - 161: 0xACD8,
+ 1079 - 161: 0xACD9,
+ 1080 - 161: 0xACDA,
+ 1081 - 161: 0xACDB,
+ 1082 - 161: 0xACDC,
+ 1083 - 161: 0xACDD,
+ 1084 - 161: 0xACDE,
+ 1085 - 161: 0xACDF,
+ 1086 - 161: 0xACE0,
+ 1087 - 161: 0xACE1,
+ 1088 - 161: 0xACE2,
+ 1089 - 161: 0xACE3,
+ 1090 - 161: 0xACE4,
+ 1091 - 161: 0xACE5,
+ 1092 - 161: 0xACE6,
+ 1093 - 161: 0xACE7,
+ 1094 - 161: 0xACE8,
+ 1095 - 161: 0xACE9,
+ 1096 - 161: 0xACEA,
+ 1097 - 161: 0xACEB,
+ 1098 - 161: 0xACEC,
+ 1099 - 161: 0xACED,
+ 1100 - 161: 0xACEE,
+ 1101 - 161: 0xACEF,
+ 1102 - 161: 0xACF0,
+ 1103 - 161: 0xACF1,
+ 1105 - 161: 0xACD7,
+}
+
+const encode5Low, encode5High = 63744, 64012
+
+var encode5 = [...]uint16{
+ 63744 - 63744: 0xCBD0,
+ 63745 - 63744: 0xCBD6,
+ 63746 - 63744: 0xCBE7,
+ 63747 - 63744: 0xCDCF,
+ 63748 - 63744: 0xCDE8,
+ 63749 - 63744: 0xCEAD,
+ 63750 - 63744: 0xCFFB,
+ 63751 - 63744: 0xD0A2,
+ 63752 - 63744: 0xD0B8,
+ 63753 - 63744: 0xD0D0,
+ 63754 - 63744: 0xD0DD,
+ 63755 - 63744: 0xD1D4,
+ 63756 - 63744: 0xD1D5,
+ 63757 - 63744: 0xD1D8,
+ 63758 - 63744: 0xD1DB,
+ 63759 - 63744: 0xD1DC,
+ 63760 - 63744: 0xD1DD,
+ 63761 - 63744: 0xD1DE,
+ 63762 - 63744: 0xD1DF,
+ 63763 - 63744: 0xD1E0,
+ 63764 - 63744: 0xD1E2,
+ 63765 - 63744: 0xD1E3,
+ 63766 - 63744: 0xD1E4,
+ 63767 - 63744: 0xD1E5,
+ 63768 - 63744: 0xD1E6,
+ 63769 - 63744: 0xD1E8,
+ 63770 - 63744: 0xD1E9,
+ 63771 - 63744: 0xD1EA,
+ 63772 - 63744: 0xD1EB,
+ 63773 - 63744: 0xD1ED,
+ 63774 - 63744: 0xD1EF,
+ 63775 - 63744: 0xD1F0,
+ 63776 - 63744: 0xD1F2,
+ 63777 - 63744: 0xD1F6,
+ 63778 - 63744: 0xD1FA,
+ 63779 - 63744: 0xD1FC,
+ 63780 - 63744: 0xD1FD,
+ 63781 - 63744: 0xD1FE,
+ 63782 - 63744: 0xD2A2,
+ 63783 - 63744: 0xD2A3,
+ 63784 - 63744: 0xD2A7,
+ 63785 - 63744: 0xD2A8,
+ 63786 - 63744: 0xD2A9,
+ 63787 - 63744: 0xD2AA,
+ 63788 - 63744: 0xD2AB,
+ 63789 - 63744: 0xD2AD,
+ 63790 - 63744: 0xD2B2,
+ 63791 - 63744: 0xD2BE,
+ 63792 - 63744: 0xD2C2,
+ 63793 - 63744: 0xD2C3,
+ 63794 - 63744: 0xD2C4,
+ 63795 - 63744: 0xD2C6,
+ 63796 - 63744: 0xD2C7,
+ 63797 - 63744: 0xD2C8,
+ 63798 - 63744: 0xD2C9,
+ 63799 - 63744: 0xD2CA,
+ 63800 - 63744: 0xD2CB,
+ 63801 - 63744: 0xD2CD,
+ 63802 - 63744: 0xD2CE,
+ 63803 - 63744: 0xD2CF,
+ 63804 - 63744: 0xD2D0,
+ 63805 - 63744: 0xD2D1,
+ 63806 - 63744: 0xD2D2,
+ 63807 - 63744: 0xD2D3,
+ 63808 - 63744: 0xD2D4,
+ 63809 - 63744: 0xD2D5,
+ 63810 - 63744: 0xD2D6,
+ 63811 - 63744: 0xD2D7,
+ 63812 - 63744: 0xD2D9,
+ 63813 - 63744: 0xD2DA,
+ 63814 - 63744: 0xD2DE,
+ 63815 - 63744: 0xD2DF,
+ 63816 - 63744: 0xD2E1,
+ 63817 - 63744: 0xD2E2,
+ 63818 - 63744: 0xD2E4,
+ 63819 - 63744: 0xD2E5,
+ 63820 - 63744: 0xD2E6,
+ 63821 - 63744: 0xD2E7,
+ 63822 - 63744: 0xD2E8,
+ 63823 - 63744: 0xD2E9,
+ 63824 - 63744: 0xD2EA,
+ 63825 - 63744: 0xD2EB,
+ 63826 - 63744: 0xD2F0,
+ 63827 - 63744: 0xD2F1,
+ 63828 - 63744: 0xD2F2,
+ 63829 - 63744: 0xD2F3,
+ 63830 - 63744: 0xD2F4,
+ 63831 - 63744: 0xD2F5,
+ 63832 - 63744: 0xD2F7,
+ 63833 - 63744: 0xD2F8,
+ 63834 - 63744: 0xD4E6,
+ 63835 - 63744: 0xD4FC,
+ 63836 - 63744: 0xD5A5,
+ 63837 - 63744: 0xD5AB,
+ 63838 - 63744: 0xD5AE,
+ 63839 - 63744: 0xD6B8,
+ 63840 - 63744: 0xD6CD,
+ 63841 - 63744: 0xD7CB,
+ 63842 - 63744: 0xD7E4,
+ 63843 - 63744: 0xDBC5,
+ 63844 - 63744: 0xDBE4,
+ 63845 - 63744: 0xDCA5,
+ 63846 - 63744: 0xDDA5,
+ 63847 - 63744: 0xDDD5,
+ 63848 - 63744: 0xDDF4,
+ 63849 - 63744: 0xDEFC,
+ 63850 - 63744: 0xDEFE,
+ 63851 - 63744: 0xDFB3,
+ 63852 - 63744: 0xDFE1,
+ 63853 - 63744: 0xDFE8,
+ 63854 - 63744: 0xE0F1,
+ 63855 - 63744: 0xE1AD,
+ 63856 - 63744: 0xE1ED,
+ 63857 - 63744: 0xE3F5,
+ 63858 - 63744: 0xE4A1,
+ 63859 - 63744: 0xE4A9,
+ 63860 - 63744: 0xE5AE,
+ 63861 - 63744: 0xE5B1,
+ 63862 - 63744: 0xE5B2,
+ 63863 - 63744: 0xE5B9,
+ 63864 - 63744: 0xE5BB,
+ 63865 - 63744: 0xE5BC,
+ 63866 - 63744: 0xE5C4,
+ 63867 - 63744: 0xE5CE,
+ 63868 - 63744: 0xE5D0,
+ 63869 - 63744: 0xE5D2,
+ 63870 - 63744: 0xE5D6,
+ 63871 - 63744: 0xE5FA,
+ 63872 - 63744: 0xE5FB,
+ 63873 - 63744: 0xE5FC,
+ 63874 - 63744: 0xE5FE,
+ 63875 - 63744: 0xE6A1,
+ 63876 - 63744: 0xE6A4,
+ 63877 - 63744: 0xE6A7,
+ 63878 - 63744: 0xE6AD,
+ 63879 - 63744: 0xE6AF,
+ 63880 - 63744: 0xE6B0,
+ 63881 - 63744: 0xE6B1,
+ 63882 - 63744: 0xE6B3,
+ 63883 - 63744: 0xE6B7,
+ 63884 - 63744: 0xE6B8,
+ 63885 - 63744: 0xE6BC,
+ 63886 - 63744: 0xE6C4,
+ 63887 - 63744: 0xE6C6,
+ 63888 - 63744: 0xE6C7,
+ 63889 - 63744: 0xE6CA,
+ 63890 - 63744: 0xE6D2,
+ 63891 - 63744: 0xE6D6,
+ 63892 - 63744: 0xE6D9,
+ 63893 - 63744: 0xE6DC,
+ 63894 - 63744: 0xE6DF,
+ 63895 - 63744: 0xE6E1,
+ 63896 - 63744: 0xE6E4,
+ 63897 - 63744: 0xE6E5,
+ 63898 - 63744: 0xE6E6,
+ 63899 - 63744: 0xE6E8,
+ 63900 - 63744: 0xE6EA,
+ 63901 - 63744: 0xE6EB,
+ 63902 - 63744: 0xE6EC,
+ 63903 - 63744: 0xE6EF,
+ 63904 - 63744: 0xE6F1,
+ 63905 - 63744: 0xE6F2,
+ 63906 - 63744: 0xE6F5,
+ 63907 - 63744: 0xE6F6,
+ 63908 - 63744: 0xE6F7,
+ 63909 - 63744: 0xE6F9,
+ 63910 - 63744: 0xE7A1,
+ 63911 - 63744: 0xE7A6,
+ 63912 - 63744: 0xE7A9,
+ 63913 - 63744: 0xE7AA,
+ 63914 - 63744: 0xE7AC,
+ 63915 - 63744: 0xE7AD,
+ 63916 - 63744: 0xE7B0,
+ 63917 - 63744: 0xE7BF,
+ 63918 - 63744: 0xE7C1,
+ 63919 - 63744: 0xE7C6,
+ 63920 - 63744: 0xE7C7,
+ 63921 - 63744: 0xE7CB,
+ 63922 - 63744: 0xE7CD,
+ 63923 - 63744: 0xE7CF,
+ 63924 - 63744: 0xE7D0,
+ 63925 - 63744: 0xE7D3,
+ 63926 - 63744: 0xE7DF,
+ 63927 - 63744: 0xE7E4,
+ 63928 - 63744: 0xE7E6,
+ 63929 - 63744: 0xE7F7,
+ 63930 - 63744: 0xE8E7,
+ 63931 - 63744: 0xE8E8,
+ 63932 - 63744: 0xE8F0,
+ 63933 - 63744: 0xE8F1,
+ 63934 - 63744: 0xE8F7,
+ 63935 - 63744: 0xE8F9,
+ 63936 - 63744: 0xE8FB,
+ 63937 - 63744: 0xE8FE,
+ 63938 - 63744: 0xE9A7,
+ 63939 - 63744: 0xE9AC,
+ 63940 - 63744: 0xE9CC,
+ 63941 - 63744: 0xE9F7,
+ 63942 - 63744: 0xEAC1,
+ 63943 - 63744: 0xEAE5,
+ 63944 - 63744: 0xEAF4,
+ 63945 - 63744: 0xEAF7,
+ 63946 - 63744: 0xEAFC,
+ 63947 - 63744: 0xEAFE,
+ 63948 - 63744: 0xEBA4,
+ 63949 - 63744: 0xEBA7,
+ 63950 - 63744: 0xEBA9,
+ 63951 - 63744: 0xEBAA,
+ 63952 - 63744: 0xEBBA,
+ 63953 - 63744: 0xEBBB,
+ 63954 - 63744: 0xEBBD,
+ 63955 - 63744: 0xEBC1,
+ 63956 - 63744: 0xEBC2,
+ 63957 - 63744: 0xEBC6,
+ 63958 - 63744: 0xEBC7,
+ 63959 - 63744: 0xEBCC,
+ 63960 - 63744: 0xEBCF,
+ 63961 - 63744: 0xEBD0,
+ 63962 - 63744: 0xEBD1,
+ 63963 - 63744: 0xEBD2,
+ 63964 - 63744: 0xEBD8,
+ 63965 - 63744: 0xECA6,
+ 63966 - 63744: 0xECA7,
+ 63967 - 63744: 0xECAA,
+ 63968 - 63744: 0xECAF,
+ 63969 - 63744: 0xECB0,
+ 63970 - 63744: 0xECB1,
+ 63971 - 63744: 0xECB2,
+ 63972 - 63744: 0xECB5,
+ 63973 - 63744: 0xECB8,
+ 63974 - 63744: 0xECBA,
+ 63975 - 63744: 0xECC0,
+ 63976 - 63744: 0xECC1,
+ 63977 - 63744: 0xECC5,
+ 63978 - 63744: 0xECC6,
+ 63979 - 63744: 0xECC9,
+ 63980 - 63744: 0xECCA,
+ 63981 - 63744: 0xECD5,
+ 63982 - 63744: 0xECDD,
+ 63983 - 63744: 0xECDE,
+ 63984 - 63744: 0xECE1,
+ 63985 - 63744: 0xECE4,
+ 63986 - 63744: 0xECE7,
+ 63987 - 63744: 0xECE8,
+ 63988 - 63744: 0xECF7,
+ 63989 - 63744: 0xECF8,
+ 63990 - 63744: 0xECFA,
+ 63991 - 63744: 0xEDA1,
+ 63992 - 63744: 0xEDA2,
+ 63993 - 63744: 0xEDA3,
+ 63994 - 63744: 0xEDEE,
+ 63995 - 63744: 0xEEDB,
+ 63996 - 63744: 0xF2BD,
+ 63997 - 63744: 0xF2FA,
+ 63998 - 63744: 0xF3B1,
+ 63999 - 63744: 0xF4A7,
+ 64000 - 63744: 0xF4EE,
+ 64001 - 63744: 0xF6F4,
+ 64002 - 63744: 0xF6F6,
+ 64003 - 63744: 0xF7B8,
+ 64004 - 63744: 0xF7C8,
+ 64005 - 63744: 0xF7D3,
+ 64006 - 63744: 0xF8DB,
+ 64007 - 63744: 0xF8F0,
+ 64008 - 63744: 0xFAA1,
+ 64009 - 63744: 0xFAA2,
+ 64010 - 63744: 0xFAE6,
+ 64011 - 63744: 0xFCA9,
+}
+
+const encode6Low, encode6High = 65281, 65511
+
+var encode6 = [...]uint16{
+ 65281 - 65281: 0xA3A1,
+ 65282 - 65281: 0xA3A2,
+ 65283 - 65281: 0xA3A3,
+ 65284 - 65281: 0xA3A4,
+ 65285 - 65281: 0xA3A5,
+ 65286 - 65281: 0xA3A6,
+ 65287 - 65281: 0xA3A7,
+ 65288 - 65281: 0xA3A8,
+ 65289 - 65281: 0xA3A9,
+ 65290 - 65281: 0xA3AA,
+ 65291 - 65281: 0xA3AB,
+ 65292 - 65281: 0xA3AC,
+ 65293 - 65281: 0xA3AD,
+ 65294 - 65281: 0xA3AE,
+ 65295 - 65281: 0xA3AF,
+ 65296 - 65281: 0xA3B0,
+ 65297 - 65281: 0xA3B1,
+ 65298 - 65281: 0xA3B2,
+ 65299 - 65281: 0xA3B3,
+ 65300 - 65281: 0xA3B4,
+ 65301 - 65281: 0xA3B5,
+ 65302 - 65281: 0xA3B6,
+ 65303 - 65281: 0xA3B7,
+ 65304 - 65281: 0xA3B8,
+ 65305 - 65281: 0xA3B9,
+ 65306 - 65281: 0xA3BA,
+ 65307 - 65281: 0xA3BB,
+ 65308 - 65281: 0xA3BC,
+ 65309 - 65281: 0xA3BD,
+ 65310 - 65281: 0xA3BE,
+ 65311 - 65281: 0xA3BF,
+ 65312 - 65281: 0xA3C0,
+ 65313 - 65281: 0xA3C1,
+ 65314 - 65281: 0xA3C2,
+ 65315 - 65281: 0xA3C3,
+ 65316 - 65281: 0xA3C4,
+ 65317 - 65281: 0xA3C5,
+ 65318 - 65281: 0xA3C6,
+ 65319 - 65281: 0xA3C7,
+ 65320 - 65281: 0xA3C8,
+ 65321 - 65281: 0xA3C9,
+ 65322 - 65281: 0xA3CA,
+ 65323 - 65281: 0xA3CB,
+ 65324 - 65281: 0xA3CC,
+ 65325 - 65281: 0xA3CD,
+ 65326 - 65281: 0xA3CE,
+ 65327 - 65281: 0xA3CF,
+ 65328 - 65281: 0xA3D0,
+ 65329 - 65281: 0xA3D1,
+ 65330 - 65281: 0xA3D2,
+ 65331 - 65281: 0xA3D3,
+ 65332 - 65281: 0xA3D4,
+ 65333 - 65281: 0xA3D5,
+ 65334 - 65281: 0xA3D6,
+ 65335 - 65281: 0xA3D7,
+ 65336 - 65281: 0xA3D8,
+ 65337 - 65281: 0xA3D9,
+ 65338 - 65281: 0xA3DA,
+ 65339 - 65281: 0xA3DB,
+ 65340 - 65281: 0xA1AC,
+ 65341 - 65281: 0xA3DD,
+ 65342 - 65281: 0xA3DE,
+ 65343 - 65281: 0xA3DF,
+ 65344 - 65281: 0xA3E0,
+ 65345 - 65281: 0xA3E1,
+ 65346 - 65281: 0xA3E2,
+ 65347 - 65281: 0xA3E3,
+ 65348 - 65281: 0xA3E4,
+ 65349 - 65281: 0xA3E5,
+ 65350 - 65281: 0xA3E6,
+ 65351 - 65281: 0xA3E7,
+ 65352 - 65281: 0xA3E8,
+ 65353 - 65281: 0xA3E9,
+ 65354 - 65281: 0xA3EA,
+ 65355 - 65281: 0xA3EB,
+ 65356 - 65281: 0xA3EC,
+ 65357 - 65281: 0xA3ED,
+ 65358 - 65281: 0xA3EE,
+ 65359 - 65281: 0xA3EF,
+ 65360 - 65281: 0xA3F0,
+ 65361 - 65281: 0xA3F1,
+ 65362 - 65281: 0xA3F2,
+ 65363 - 65281: 0xA3F3,
+ 65364 - 65281: 0xA3F4,
+ 65365 - 65281: 0xA3F5,
+ 65366 - 65281: 0xA3F6,
+ 65367 - 65281: 0xA3F7,
+ 65368 - 65281: 0xA3F8,
+ 65369 - 65281: 0xA3F9,
+ 65370 - 65281: 0xA3FA,
+ 65371 - 65281: 0xA3FB,
+ 65372 - 65281: 0xA3FC,
+ 65373 - 65281: 0xA3FD,
+ 65374 - 65281: 0xA2A6,
+ 65504 - 65281: 0xA1CB,
+ 65505 - 65281: 0xA1CC,
+ 65506 - 65281: 0xA1FE,
+ 65507 - 65281: 0xA3FE,
+ 65509 - 65281: 0xA1CD,
+ 65510 - 65281: 0xA3DC,
+}
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go
new file mode 100644
index 000000000..5ecc526cf
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go
@@ -0,0 +1,12 @@
+// 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 simplifiedchinese
+
+import (
+ "golang.org/x/text/encoding"
+)
+
+// All is a list of all defined encodings in this package.
+var All = []encoding.Encoding{GB18030, GBK, HZGB2312}
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
new file mode 100644
index 000000000..e0b15bbcc
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go
@@ -0,0 +1,281 @@
+// 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 simplifiedchinese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+var (
+ // GB18030 is the GB18030 encoding.
+ GB18030 encoding.Encoding = &gbk18030
+ // GBK is the GBK encoding. It encodes an extension of the GB2312 character set
+ // and is also known as Code Page 936.
+ GBK encoding.Encoding = &gbk
+)
+
+var gbk = internal.Encoding{
+ &internal.SimpleEncoding{
+ gbkDecoder{gb18030: false},
+ gbkEncoder{gb18030: false},
+ },
+ "GBK",
+ identifier.GBK,
+}
+
+var gbk18030 = internal.Encoding{
+ &internal.SimpleEncoding{
+ gbkDecoder{gb18030: true},
+ gbkEncoder{gb18030: true},
+ },
+ "GB18030",
+ identifier.GB18030,
+}
+
+var (
+ errInvalidGB18030 = errors.New("simplifiedchinese: invalid GB18030 encoding")
+ errInvalidGBK = errors.New("simplifiedchinese: invalid GBK encoding")
+)
+
+type gbkDecoder struct {
+ transform.NopResetter
+ gb18030 bool
+}
+
+func (d gbkDecoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ switch c0 := src[nSrc]; {
+ case c0 < utf8.RuneSelf:
+ r, size = rune(c0), 1
+
+ // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC
+ // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk
+ // says to treat "gbk" as Code Page 936.
+ case c0 == 0x80:
+ r, size = '€', 1
+
+ case c0 < 0xff:
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ switch {
+ case 0x40 <= c1 && c1 < 0x7f:
+ c1 -= 0x40
+ case 0x80 <= c1 && c1 < 0xff:
+ c1 -= 0x41
+ case d.gb18030 && 0x30 <= c1 && c1 < 0x40:
+ if nSrc+3 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c2 := src[nSrc+2]
+ if c2 < 0x81 || 0xff <= c2 {
+ err = errInvalidGB18030
+ break loop
+ }
+ c3 := src[nSrc+3]
+ if c3 < 0x30 || 0x3a <= c3 {
+ err = errInvalidGB18030
+ break loop
+ }
+ size = 4
+ r = ((rune(c0-0x81)*10+rune(c1-0x30))*126+rune(c2-0x81))*10 + rune(c3-0x30)
+ if r < 39420 {
+ i, j := 0, len(gb18030)
+ for i < j {
+ h := i + (j-i)/2
+ if r >= rune(gb18030[h][0]) {
+ i = h + 1
+ } else {
+ j = h
+ }
+ }
+ dec := &gb18030[i-1]
+ r += rune(dec[1]) - rune(dec[0])
+ goto write
+ }
+ r -= 189000
+ if 0 <= r && r < 0x100000 {
+ r += 0x10000
+ goto write
+ }
+ err = errInvalidGB18030
+ break loop
+ default:
+ if d.gb18030 {
+ err = errInvalidGB18030
+ } else {
+ err = errInvalidGBK
+ }
+ break loop
+ }
+ r, size = '\ufffd', 2
+ if i := int(c0-0x81)*190 + int(c1); i < len(decode) {
+ r = rune(decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ default:
+ if d.gb18030 {
+ err = errInvalidGB18030
+ } else {
+ err = errInvalidGBK
+ }
+ break loop
+ }
+
+ write:
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ if d.gb18030 {
+ err = errInvalidGB18030
+ } else {
+ err = errInvalidGBK
+ }
+ }
+ return nDst, nSrc, err
+}
+
+type gbkEncoder struct {
+ transform.NopResetter
+ gb18030 bool
+}
+
+func (e gbkEncoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, r2, size := rune(0), rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r2 = rune(encode0[r-encode0Low]); r2 != 0 {
+ goto write2
+ }
+ case encode1Low <= r && r < encode1High:
+ // Microsoft's Code Page 936 extends GBK 1.0 to encode the euro sign U+20AC
+ // as 0x80. The HTML5 specification at http://encoding.spec.whatwg.org/#gbk
+ // says to treat "gbk" as Code Page 936.
+ if r == '€' {
+ r = 0x80
+ goto write1
+ }
+ if r2 = rune(encode1[r-encode1Low]); r2 != 0 {
+ goto write2
+ }
+ case encode2Low <= r && r < encode2High:
+ if r2 = rune(encode2[r-encode2Low]); r2 != 0 {
+ goto write2
+ }
+ case encode3Low <= r && r < encode3High:
+ if r2 = rune(encode3[r-encode3Low]); r2 != 0 {
+ goto write2
+ }
+ case encode4Low <= r && r < encode4High:
+ if r2 = rune(encode4[r-encode4Low]); r2 != 0 {
+ goto write2
+ }
+ }
+
+ if e.gb18030 {
+ if r < 0x10000 {
+ i, j := 0, len(gb18030)
+ for i < j {
+ h := i + (j-i)/2
+ if r >= rune(gb18030[h][1]) {
+ i = h + 1
+ } else {
+ j = h
+ }
+ }
+ dec := &gb18030[i-1]
+ r += rune(dec[0]) - rune(dec[1])
+ goto write4
+ } else if r < 0x110000 {
+ r += 189000 - 0x10000
+ goto write4
+ }
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ write1:
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ write2:
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = uint8(r2 >> 8)
+ dst[nDst+1] = uint8(r2)
+ nDst += 2
+ continue
+
+ write4:
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+3] = uint8(r%10 + 0x30)
+ r /= 10
+ dst[nDst+2] = uint8(r%126 + 0x81)
+ r /= 126
+ dst[nDst+1] = uint8(r%10 + 0x30)
+ r /= 10
+ dst[nDst+0] = uint8(r + 0x81)
+ nDst += 4
+ continue
+ }
+ return nDst, nSrc, err
+}
+
+func init() {
+ // Check that the hard-coded encode switch covers all tables.
+ if numEncodeTables != 5 {
+ panic("bad numEncodeTables")
+ }
+}
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
new file mode 100644
index 000000000..85de6b1e6
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go
@@ -0,0 +1,240 @@
+// 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 simplifiedchinese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// HZGB2312 is the HZ-GB2312 encoding.
+var HZGB2312 encoding.Encoding = &hzGB2312
+
+var hzGB2312 = internal.Encoding{
+ internal.FuncEncoding{hzGB2312NewDecoder, hzGB2312NewEncoder},
+ "HZ-GB2312",
+ identifier.HZGB2312,
+}
+
+func hzGB2312NewDecoder() transform.Transformer {
+ return new(hzGB2312Decoder)
+}
+
+func hzGB2312NewEncoder() transform.Transformer {
+ return new(hzGB2312Encoder)
+}
+
+var errInvalidHZGB2312 = errors.New("simplifiedchinese: invalid HZ-GB2312 encoding")
+
+const (
+ asciiState = iota
+ gbState
+)
+
+type hzGB2312Decoder int
+
+func (d *hzGB2312Decoder) Reset() {
+ *d = asciiState
+}
+
+func (d *hzGB2312Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ c0 := src[nSrc]
+ if c0 >= utf8.RuneSelf {
+ err = errInvalidHZGB2312
+ break loop
+ }
+
+ if c0 == '~' {
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ size = 2
+ switch src[nSrc+1] {
+ case '{':
+ *d = gbState
+ continue
+ case '}':
+ *d = asciiState
+ continue
+ case '~':
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ dst[nDst] = '~'
+ nDst++
+ continue
+ case '\n':
+ continue
+ default:
+ err = errInvalidHZGB2312
+ break loop
+ }
+ }
+
+ if *d == asciiState {
+ r, size = rune(c0), 1
+ } else {
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 {
+ err = errInvalidHZGB2312
+ break loop
+ }
+
+ r, size = '\ufffd', 2
+ if i := int(c0-0x01)*190 + int(c1+0x3f); i < len(decode) {
+ r = rune(decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidHZGB2312
+ }
+ return nDst, nSrc, err
+}
+
+type hzGB2312Encoder int
+
+func (d *hzGB2312Encoder) Reset() {
+ *d = asciiState
+}
+
+func (e *hzGB2312Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+ if r == '~' {
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = '~'
+ dst[nDst+1] = '~'
+ nDst += 2
+ continue
+ } else if *e != asciiState {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = asciiState
+ dst[nDst+0] = '~'
+ dst[nDst+1] = '}'
+ nDst += 2
+ } else if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst += 1
+ continue
+
+ }
+
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r != 0 {
+ goto writeGB
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r != 0 {
+ goto writeGB
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r != 0 {
+ goto writeGB
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r != 0 {
+ goto writeGB
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r != 0 {
+ goto writeGB
+ }
+ }
+
+ terminateInASCIIState:
+ // Switch back to ASCII state in case of error so that an ASCII
+ // replacement character can be written in the correct state.
+ if *e != asciiState {
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = '~'
+ dst[nDst+1] = '}'
+ nDst += 2
+ }
+ err = internal.ErrASCIIReplacement
+ break
+
+ writeGB:
+ c0 := uint8(r>>8) - 0x80
+ c1 := uint8(r) - 0x80
+ if c0 < 0x21 || 0x7e <= c0 || c1 < 0x21 || 0x7f <= c1 {
+ goto terminateInASCIIState
+ }
+ if *e == asciiState {
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ *e = gbState
+ dst[nDst+0] = '~'
+ dst[nDst+1] = '{'
+ nDst += 2
+ } else if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = c0
+ dst[nDst+1] = c1
+ nDst += 2
+ continue
+ }
+ // TODO: should one always terminate in ASCII state to make it safe to
+ // concatenate two HZ-GB2312-encoded strings?
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go
new file mode 100644
index 000000000..55016c786
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/maketables.go
@@ -0,0 +1,161 @@
+// 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 ignore
+
+package main
+
+// This program generates tables.go:
+// go run maketables.go | gofmt > tables.go
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "sort"
+ "strings"
+)
+
+func main() {
+ fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
+ fmt.Printf("// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.\n")
+ fmt.Printf(`package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"` + "\n\n")
+
+ printGB18030()
+ printGBK()
+}
+
+func printGB18030() {
+ res, err := http.Get("http://encoding.spec.whatwg.org/index-gb18030.txt")
+ if err != nil {
+ log.Fatalf("Get: %v", err)
+ }
+ defer res.Body.Close()
+
+ fmt.Printf("// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt\n")
+ fmt.Printf("var gb18030 = [...][2]uint16{\n")
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := uint32(0), uint32(0)
+ if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
+ log.Fatalf("could not parse %q", s)
+ }
+ if x < 0x10000 && y < 0x10000 {
+ fmt.Printf("\t{0x%04x, 0x%04x},\n", x, y)
+ }
+ }
+ fmt.Printf("}\n\n")
+}
+
+func printGBK() {
+ res, err := http.Get("http://encoding.spec.whatwg.org/index-gbk.txt")
+ if err != nil {
+ log.Fatalf("Get: %v", err)
+ }
+ defer res.Body.Close()
+
+ mapping := [65536]uint16{}
+ reverse := [65536]uint16{}
+
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := uint16(0), uint16(0)
+ if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
+ log.Fatalf("could not parse %q", s)
+ }
+ if x < 0 || 126*190 <= x {
+ log.Fatalf("GBK code %d is out of range", x)
+ }
+ mapping[x] = y
+ if reverse[y] == 0 {
+ c0, c1 := x/190, x%190
+ if c1 >= 0x3f {
+ c1++
+ }
+ reverse[y] = (0x81+c0)<<8 | (0x40 + c1)
+ }
+ }
+ if err := scanner.Err(); err != nil {
+ log.Fatalf("scanner error: %v", err)
+ }
+
+ fmt.Printf("// decode is the decoding table from GBK code to Unicode.\n")
+ fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt\n")
+ fmt.Printf("var decode = [...]uint16{\n")
+ for i, v := range mapping {
+ if v != 0 {
+ fmt.Printf("\t%d: 0x%04X,\n", i, v)
+ }
+ }
+ fmt.Printf("}\n\n")
+
+ // Any run of at least separation continuous zero entries in the reverse map will
+ // be a separate encode table.
+ const separation = 1024
+
+ intervals := []interval(nil)
+ low, high := -1, -1
+ for i, v := range reverse {
+ if v == 0 {
+ continue
+ }
+ if low < 0 {
+ low = i
+ } else if i-high >= separation {
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ low = i
+ }
+ high = i + 1
+ }
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ sort.Sort(byDecreasingLength(intervals))
+
+ fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
+ fmt.Printf("// encodeX are the encoding tables from Unicode to GBK code,\n")
+ fmt.Printf("// sorted by decreasing length.\n")
+ for i, v := range intervals {
+ fmt.Printf("// encode%d: %5d entries for runes in [%5d, %5d).\n", i, v.len(), v.low, v.high)
+ }
+ fmt.Printf("\n")
+
+ for i, v := range intervals {
+ fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
+ fmt.Printf("var encode%d = [...]uint16{\n", i)
+ for j := v.low; j < v.high; j++ {
+ x := reverse[j]
+ if x == 0 {
+ continue
+ }
+ fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
+ }
+ fmt.Printf("}\n\n")
+ }
+}
+
+// interval is a half-open interval [low, high).
+type interval struct {
+ low, high int
+}
+
+func (i interval) len() int { return i.high - i.low }
+
+// byDecreasingLength sorts intervals by decreasing length.
+type byDecreasingLength []interval
+
+func (b byDecreasingLength) Len() int { return len(b) }
+func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
+func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
diff --git a/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go b/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go
new file mode 100644
index 000000000..415f52a11
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go
@@ -0,0 +1,43999 @@
+// generated by go run maketables.go; DO NOT EDIT
+
+// Package simplifiedchinese provides Simplified Chinese encodings such as GBK.
+package simplifiedchinese // import "golang.org/x/text/encoding/simplifiedchinese"
+
+// gb18030 is the table from http://encoding.spec.whatwg.org/index-gb18030.txt
+var gb18030 = [...][2]uint16{
+ {0x0000, 0x0080},
+ {0x0024, 0x00a5},
+ {0x0026, 0x00a9},
+ {0x002d, 0x00b2},
+ {0x0032, 0x00b8},
+ {0x0051, 0x00d8},
+ {0x0059, 0x00e2},
+ {0x005f, 0x00eb},
+ {0x0060, 0x00ee},
+ {0x0064, 0x00f4},
+ {0x0067, 0x00f8},
+ {0x0068, 0x00fb},
+ {0x0069, 0x00fd},
+ {0x006d, 0x0102},
+ {0x007e, 0x0114},
+ {0x0085, 0x011c},
+ {0x0094, 0x012c},
+ {0x00ac, 0x0145},
+ {0x00af, 0x0149},
+ {0x00b3, 0x014e},
+ {0x00d0, 0x016c},
+ {0x0132, 0x01cf},
+ {0x0133, 0x01d1},
+ {0x0134, 0x01d3},
+ {0x0135, 0x01d5},
+ {0x0136, 0x01d7},
+ {0x0137, 0x01d9},
+ {0x0138, 0x01db},
+ {0x0139, 0x01dd},
+ {0x0155, 0x01fa},
+ {0x01ac, 0x0252},
+ {0x01bb, 0x0262},
+ {0x0220, 0x02c8},
+ {0x0221, 0x02cc},
+ {0x022e, 0x02da},
+ {0x02e5, 0x03a2},
+ {0x02e6, 0x03aa},
+ {0x02ed, 0x03c2},
+ {0x02ee, 0x03ca},
+ {0x0325, 0x0402},
+ {0x0333, 0x0450},
+ {0x0334, 0x0452},
+ {0x1ef2, 0x2011},
+ {0x1ef4, 0x2017},
+ {0x1ef5, 0x201a},
+ {0x1ef7, 0x201e},
+ {0x1efe, 0x2027},
+ {0x1f07, 0x2031},
+ {0x1f08, 0x2034},
+ {0x1f09, 0x2036},
+ {0x1f0e, 0x203c},
+ {0x1f7e, 0x20ad},
+ {0x1fd4, 0x2104},
+ {0x1fd5, 0x2106},
+ {0x1fd8, 0x210a},
+ {0x1fe4, 0x2117},
+ {0x1fee, 0x2122},
+ {0x202c, 0x216c},
+ {0x2030, 0x217a},
+ {0x2046, 0x2194},
+ {0x2048, 0x219a},
+ {0x20b6, 0x2209},
+ {0x20bc, 0x2210},
+ {0x20bd, 0x2212},
+ {0x20c0, 0x2216},
+ {0x20c4, 0x221b},
+ {0x20c6, 0x2221},
+ {0x20c8, 0x2224},
+ {0x20c9, 0x2226},
+ {0x20ca, 0x222c},
+ {0x20cc, 0x222f},
+ {0x20d1, 0x2238},
+ {0x20d6, 0x223e},
+ {0x20e0, 0x2249},
+ {0x20e3, 0x224d},
+ {0x20e8, 0x2253},
+ {0x20f5, 0x2262},
+ {0x20f7, 0x2268},
+ {0x20fd, 0x2270},
+ {0x2122, 0x2296},
+ {0x2125, 0x229a},
+ {0x2130, 0x22a6},
+ {0x2149, 0x22c0},
+ {0x219b, 0x2313},
+ {0x22e8, 0x246a},
+ {0x22f2, 0x249c},
+ {0x2356, 0x254c},
+ {0x235a, 0x2574},
+ {0x2367, 0x2590},
+ {0x236a, 0x2596},
+ {0x2374, 0x25a2},
+ {0x2384, 0x25b4},
+ {0x238c, 0x25be},
+ {0x2394, 0x25c8},
+ {0x2397, 0x25cc},
+ {0x2399, 0x25d0},
+ {0x23ab, 0x25e6},
+ {0x23ca, 0x2607},
+ {0x23cc, 0x260a},
+ {0x2402, 0x2641},
+ {0x2403, 0x2643},
+ {0x2c41, 0x2e82},
+ {0x2c43, 0x2e85},
+ {0x2c46, 0x2e89},
+ {0x2c48, 0x2e8d},
+ {0x2c52, 0x2e98},
+ {0x2c61, 0x2ea8},
+ {0x2c63, 0x2eab},
+ {0x2c66, 0x2eaf},
+ {0x2c6a, 0x2eb4},
+ {0x2c6c, 0x2eb8},
+ {0x2c6f, 0x2ebc},
+ {0x2c7d, 0x2ecb},
+ {0x2da2, 0x2ffc},
+ {0x2da6, 0x3004},
+ {0x2da7, 0x3018},
+ {0x2dac, 0x301f},
+ {0x2dae, 0x302a},
+ {0x2dc2, 0x303f},
+ {0x2dc4, 0x3094},
+ {0x2dcb, 0x309f},
+ {0x2dcd, 0x30f7},
+ {0x2dd2, 0x30ff},
+ {0x2dd8, 0x312a},
+ {0x2ece, 0x322a},
+ {0x2ed5, 0x3232},
+ {0x2f46, 0x32a4},
+ {0x3030, 0x3390},
+ {0x303c, 0x339f},
+ {0x303e, 0x33a2},
+ {0x3060, 0x33c5},
+ {0x3069, 0x33cf},
+ {0x306b, 0x33d3},
+ {0x306d, 0x33d6},
+ {0x30de, 0x3448},
+ {0x3109, 0x3474},
+ {0x3233, 0x359f},
+ {0x32a2, 0x360f},
+ {0x32ad, 0x361b},
+ {0x35aa, 0x3919},
+ {0x35ff, 0x396f},
+ {0x365f, 0x39d1},
+ {0x366d, 0x39e0},
+ {0x3700, 0x3a74},
+ {0x37da, 0x3b4f},
+ {0x38f9, 0x3c6f},
+ {0x396a, 0x3ce1},
+ {0x3cdf, 0x4057},
+ {0x3de7, 0x4160},
+ {0x3fbe, 0x4338},
+ {0x4032, 0x43ad},
+ {0x4036, 0x43b2},
+ {0x4061, 0x43de},
+ {0x4159, 0x44d7},
+ {0x42ce, 0x464d},
+ {0x42e2, 0x4662},
+ {0x43a3, 0x4724},
+ {0x43a8, 0x472a},
+ {0x43fa, 0x477d},
+ {0x440a, 0x478e},
+ {0x45c3, 0x4948},
+ {0x45f5, 0x497b},
+ {0x45f7, 0x497e},
+ {0x45fb, 0x4984},
+ {0x45fc, 0x4987},
+ {0x4610, 0x499c},
+ {0x4613, 0x49a0},
+ {0x4629, 0x49b8},
+ {0x48e8, 0x4c78},
+ {0x490f, 0x4ca4},
+ {0x497e, 0x4d1a},
+ {0x4a12, 0x4daf},
+ {0x4a63, 0x9fa6},
+ {0x82bd, 0xe76c},
+ {0x82be, 0xe7c8},
+ {0x82bf, 0xe7e7},
+ {0x82cc, 0xe815},
+ {0x82cd, 0xe819},
+ {0x82d2, 0xe81f},
+ {0x82d9, 0xe827},
+ {0x82dd, 0xe82d},
+ {0x82e1, 0xe833},
+ {0x82e9, 0xe83c},
+ {0x82f0, 0xe844},
+ {0x8300, 0xe856},
+ {0x830e, 0xe865},
+ {0x93d5, 0xf92d},
+ {0x9421, 0xf97a},
+ {0x943c, 0xf996},
+ {0x948d, 0xf9e8},
+ {0x9496, 0xf9f2},
+ {0x94b0, 0xfa10},
+ {0x94b1, 0xfa12},
+ {0x94b2, 0xfa15},
+ {0x94b5, 0xfa19},
+ {0x94bb, 0xfa22},
+ {0x94bc, 0xfa25},
+ {0x94be, 0xfa2a},
+ {0x98c4, 0xfe32},
+ {0x98c5, 0xfe45},
+ {0x98c9, 0xfe53},
+ {0x98ca, 0xfe58},
+ {0x98cb, 0xfe67},
+ {0x98cc, 0xfe6c},
+ {0x9961, 0xff5f},
+ {0x99e2, 0xffe6},
+}
+
+// decode is the decoding table from GBK code to Unicode.
+// It is defined at http://encoding.spec.whatwg.org/index-gbk.txt
+var decode = [...]uint16{
+ 0: 0x4E02,
+ 1: 0x4E04,
+ 2: 0x4E05,
+ 3: 0x4E06,
+ 4: 0x4E0F,
+ 5: 0x4E12,
+ 6: 0x4E17,
+ 7: 0x4E1F,
+ 8: 0x4E20,
+ 9: 0x4E21,
+ 10: 0x4E23,
+ 11: 0x4E26,
+ 12: 0x4E29,
+ 13: 0x4E2E,
+ 14: 0x4E2F,
+ 15: 0x4E31,
+ 16: 0x4E33,
+ 17: 0x4E35,
+ 18: 0x4E37,
+ 19: 0x4E3C,
+ 20: 0x4E40,
+ 21: 0x4E41,
+ 22: 0x4E42,
+ 23: 0x4E44,
+ 24: 0x4E46,
+ 25: 0x4E4A,
+ 26: 0x4E51,
+ 27: 0x4E55,
+ 28: 0x4E57,
+ 29: 0x4E5A,
+ 30: 0x4E5B,
+ 31: 0x4E62,
+ 32: 0x4E63,
+ 33: 0x4E64,
+ 34: 0x4E65,
+ 35: 0x4E67,
+ 36: 0x4E68,
+ 37: 0x4E6A,
+ 38: 0x4E6B,
+ 39: 0x4E6C,
+ 40: 0x4E6D,
+ 41: 0x4E6E,
+ 42: 0x4E6F,
+ 43: 0x4E72,
+ 44: 0x4E74,
+ 45: 0x4E75,
+ 46: 0x4E76,
+ 47: 0x4E77,
+ 48: 0x4E78,
+ 49: 0x4E79,
+ 50: 0x4E7A,
+ 51: 0x4E7B,
+ 52: 0x4E7C,
+ 53: 0x4E7D,
+ 54: 0x4E7F,
+ 55: 0x4E80,
+ 56: 0x4E81,
+ 57: 0x4E82,
+ 58: 0x4E83,
+ 59: 0x4E84,
+ 60: 0x4E85,
+ 61: 0x4E87,
+ 62: 0x4E8A,
+ 63: 0x4E90,
+ 64: 0x4E96,
+ 65: 0x4E97,
+ 66: 0x4E99,
+ 67: 0x4E9C,
+ 68: 0x4E9D,
+ 69: 0x4E9E,
+ 70: 0x4EA3,
+ 71: 0x4EAA,
+ 72: 0x4EAF,
+ 73: 0x4EB0,
+ 74: 0x4EB1,
+ 75: 0x4EB4,
+ 76: 0x4EB6,
+ 77: 0x4EB7,
+ 78: 0x4EB8,
+ 79: 0x4EB9,
+ 80: 0x4EBC,
+ 81: 0x4EBD,
+ 82: 0x4EBE,
+ 83: 0x4EC8,
+ 84: 0x4ECC,
+ 85: 0x4ECF,
+ 86: 0x4ED0,
+ 87: 0x4ED2,
+ 88: 0x4EDA,
+ 89: 0x4EDB,
+ 90: 0x4EDC,
+ 91: 0x4EE0,
+ 92: 0x4EE2,
+ 93: 0x4EE6,
+ 94: 0x4EE7,
+ 95: 0x4EE9,
+ 96: 0x4EED,
+ 97: 0x4EEE,
+ 98: 0x4EEF,
+ 99: 0x4EF1,
+ 100: 0x4EF4,
+ 101: 0x4EF8,
+ 102: 0x4EF9,
+ 103: 0x4EFA,
+ 104: 0x4EFC,
+ 105: 0x4EFE,
+ 106: 0x4F00,
+ 107: 0x4F02,
+ 108: 0x4F03,
+ 109: 0x4F04,
+ 110: 0x4F05,
+ 111: 0x4F06,
+ 112: 0x4F07,
+ 113: 0x4F08,
+ 114: 0x4F0B,
+ 115: 0x4F0C,
+ 116: 0x4F12,
+ 117: 0x4F13,
+ 118: 0x4F14,
+ 119: 0x4F15,
+ 120: 0x4F16,
+ 121: 0x4F1C,
+ 122: 0x4F1D,
+ 123: 0x4F21,
+ 124: 0x4F23,
+ 125: 0x4F28,
+ 126: 0x4F29,
+ 127: 0x4F2C,
+ 128: 0x4F2D,
+ 129: 0x4F2E,
+ 130: 0x4F31,
+ 131: 0x4F33,
+ 132: 0x4F35,
+ 133: 0x4F37,
+ 134: 0x4F39,
+ 135: 0x4F3B,
+ 136: 0x4F3E,
+ 137: 0x4F3F,
+ 138: 0x4F40,
+ 139: 0x4F41,
+ 140: 0x4F42,
+ 141: 0x4F44,
+ 142: 0x4F45,
+ 143: 0x4F47,
+ 144: 0x4F48,
+ 145: 0x4F49,
+ 146: 0x4F4A,
+ 147: 0x4F4B,
+ 148: 0x4F4C,
+ 149: 0x4F52,
+ 150: 0x4F54,
+ 151: 0x4F56,
+ 152: 0x4F61,
+ 153: 0x4F62,
+ 154: 0x4F66,
+ 155: 0x4F68,
+ 156: 0x4F6A,
+ 157: 0x4F6B,
+ 158: 0x4F6D,
+ 159: 0x4F6E,
+ 160: 0x4F71,
+ 161: 0x4F72,
+ 162: 0x4F75,
+ 163: 0x4F77,
+ 164: 0x4F78,
+ 165: 0x4F79,
+ 166: 0x4F7A,
+ 167: 0x4F7D,
+ 168: 0x4F80,
+ 169: 0x4F81,
+ 170: 0x4F82,
+ 171: 0x4F85,
+ 172: 0x4F86,
+ 173: 0x4F87,
+ 174: 0x4F8A,
+ 175: 0x4F8C,
+ 176: 0x4F8E,
+ 177: 0x4F90,
+ 178: 0x4F92,
+ 179: 0x4F93,
+ 180: 0x4F95,
+ 181: 0x4F96,
+ 182: 0x4F98,
+ 183: 0x4F99,
+ 184: 0x4F9A,
+ 185: 0x4F9C,
+ 186: 0x4F9E,
+ 187: 0x4F9F,
+ 188: 0x4FA1,
+ 189: 0x4FA2,
+ 190: 0x4FA4,
+ 191: 0x4FAB,
+ 192: 0x4FAD,
+ 193: 0x4FB0,
+ 194: 0x4FB1,
+ 195: 0x4FB2,
+ 196: 0x4FB3,
+ 197: 0x4FB4,
+ 198: 0x4FB6,
+ 199: 0x4FB7,
+ 200: 0x4FB8,
+ 201: 0x4FB9,
+ 202: 0x4FBA,
+ 203: 0x4FBB,
+ 204: 0x4FBC,
+ 205: 0x4FBD,
+ 206: 0x4FBE,
+ 207: 0x4FC0,
+ 208: 0x4FC1,
+ 209: 0x4FC2,
+ 210: 0x4FC6,
+ 211: 0x4FC7,
+ 212: 0x4FC8,
+ 213: 0x4FC9,
+ 214: 0x4FCB,
+ 215: 0x4FCC,
+ 216: 0x4FCD,
+ 217: 0x4FD2,
+ 218: 0x4FD3,
+ 219: 0x4FD4,
+ 220: 0x4FD5,
+ 221: 0x4FD6,
+ 222: 0x4FD9,
+ 223: 0x4FDB,
+ 224: 0x4FE0,
+ 225: 0x4FE2,
+ 226: 0x4FE4,
+ 227: 0x4FE5,
+ 228: 0x4FE7,
+ 229: 0x4FEB,
+ 230: 0x4FEC,
+ 231: 0x4FF0,
+ 232: 0x4FF2,
+ 233: 0x4FF4,
+ 234: 0x4FF5,
+ 235: 0x4FF6,
+ 236: 0x4FF7,
+ 237: 0x4FF9,
+ 238: 0x4FFB,
+ 239: 0x4FFC,
+ 240: 0x4FFD,
+ 241: 0x4FFF,
+ 242: 0x5000,
+ 243: 0x5001,
+ 244: 0x5002,
+ 245: 0x5003,
+ 246: 0x5004,
+ 247: 0x5005,
+ 248: 0x5006,
+ 249: 0x5007,
+ 250: 0x5008,
+ 251: 0x5009,
+ 252: 0x500A,
+ 253: 0x500B,
+ 254: 0x500E,
+ 255: 0x5010,
+ 256: 0x5011,
+ 257: 0x5013,
+ 258: 0x5015,
+ 259: 0x5016,
+ 260: 0x5017,
+ 261: 0x501B,
+ 262: 0x501D,
+ 263: 0x501E,
+ 264: 0x5020,
+ 265: 0x5022,
+ 266: 0x5023,
+ 267: 0x5024,
+ 268: 0x5027,
+ 269: 0x502B,
+ 270: 0x502F,
+ 271: 0x5030,
+ 272: 0x5031,
+ 273: 0x5032,
+ 274: 0x5033,
+ 275: 0x5034,
+ 276: 0x5035,
+ 277: 0x5036,
+ 278: 0x5037,
+ 279: 0x5038,
+ 280: 0x5039,
+ 281: 0x503B,
+ 282: 0x503D,
+ 283: 0x503F,
+ 284: 0x5040,
+ 285: 0x5041,
+ 286: 0x5042,
+ 287: 0x5044,
+ 288: 0x5045,
+ 289: 0x5046,
+ 290: 0x5049,
+ 291: 0x504A,
+ 292: 0x504B,
+ 293: 0x504D,
+ 294: 0x5050,
+ 295: 0x5051,
+ 296: 0x5052,
+ 297: 0x5053,
+ 298: 0x5054,
+ 299: 0x5056,
+ 300: 0x5057,
+ 301: 0x5058,
+ 302: 0x5059,
+ 303: 0x505B,
+ 304: 0x505D,
+ 305: 0x505E,
+ 306: 0x505F,
+ 307: 0x5060,
+ 308: 0x5061,
+ 309: 0x5062,
+ 310: 0x5063,
+ 311: 0x5064,
+ 312: 0x5066,
+ 313: 0x5067,
+ 314: 0x5068,
+ 315: 0x5069,
+ 316: 0x506A,
+ 317: 0x506B,
+ 318: 0x506D,
+ 319: 0x506E,
+ 320: 0x506F,
+ 321: 0x5070,
+ 322: 0x5071,
+ 323: 0x5072,
+ 324: 0x5073,
+ 325: 0x5074,
+ 326: 0x5075,
+ 327: 0x5078,
+ 328: 0x5079,
+ 329: 0x507A,
+ 330: 0x507C,
+ 331: 0x507D,
+ 332: 0x5081,
+ 333: 0x5082,
+ 334: 0x5083,
+ 335: 0x5084,
+ 336: 0x5086,
+ 337: 0x5087,
+ 338: 0x5089,
+ 339: 0x508A,
+ 340: 0x508B,
+ 341: 0x508C,
+ 342: 0x508E,
+ 343: 0x508F,
+ 344: 0x5090,
+ 345: 0x5091,
+ 346: 0x5092,
+ 347: 0x5093,
+ 348: 0x5094,
+ 349: 0x5095,
+ 350: 0x5096,
+ 351: 0x5097,
+ 352: 0x5098,
+ 353: 0x5099,
+ 354: 0x509A,
+ 355: 0x509B,
+ 356: 0x509C,
+ 357: 0x509D,
+ 358: 0x509E,
+ 359: 0x509F,
+ 360: 0x50A0,
+ 361: 0x50A1,
+ 362: 0x50A2,
+ 363: 0x50A4,
+ 364: 0x50A6,
+ 365: 0x50AA,
+ 366: 0x50AB,
+ 367: 0x50AD,
+ 368: 0x50AE,
+ 369: 0x50AF,
+ 370: 0x50B0,
+ 371: 0x50B1,
+ 372: 0x50B3,
+ 373: 0x50B4,
+ 374: 0x50B5,
+ 375: 0x50B6,
+ 376: 0x50B7,
+ 377: 0x50B8,
+ 378: 0x50B9,
+ 379: 0x50BC,
+ 380: 0x50BD,
+ 381: 0x50BE,
+ 382: 0x50BF,
+ 383: 0x50C0,
+ 384: 0x50C1,
+ 385: 0x50C2,
+ 386: 0x50C3,
+ 387: 0x50C4,
+ 388: 0x50C5,
+ 389: 0x50C6,
+ 390: 0x50C7,
+ 391: 0x50C8,
+ 392: 0x50C9,
+ 393: 0x50CA,
+ 394: 0x50CB,
+ 395: 0x50CC,
+ 396: 0x50CD,
+ 397: 0x50CE,
+ 398: 0x50D0,
+ 399: 0x50D1,
+ 400: 0x50D2,
+ 401: 0x50D3,
+ 402: 0x50D4,
+ 403: 0x50D5,
+ 404: 0x50D7,
+ 405: 0x50D8,
+ 406: 0x50D9,
+ 407: 0x50DB,
+ 408: 0x50DC,
+ 409: 0x50DD,
+ 410: 0x50DE,
+ 411: 0x50DF,
+ 412: 0x50E0,
+ 413: 0x50E1,
+ 414: 0x50E2,
+ 415: 0x50E3,
+ 416: 0x50E4,
+ 417: 0x50E5,
+ 418: 0x50E8,
+ 419: 0x50E9,
+ 420: 0x50EA,
+ 421: 0x50EB,
+ 422: 0x50EF,
+ 423: 0x50F0,
+ 424: 0x50F1,
+ 425: 0x50F2,
+ 426: 0x50F4,
+ 427: 0x50F6,
+ 428: 0x50F7,
+ 429: 0x50F8,
+ 430: 0x50F9,
+ 431: 0x50FA,
+ 432: 0x50FC,
+ 433: 0x50FD,
+ 434: 0x50FE,
+ 435: 0x50FF,
+ 436: 0x5100,
+ 437: 0x5101,
+ 438: 0x5102,
+ 439: 0x5103,
+ 440: 0x5104,
+ 441: 0x5105,
+ 442: 0x5108,
+ 443: 0x5109,
+ 444: 0x510A,
+ 445: 0x510C,
+ 446: 0x510D,
+ 447: 0x510E,
+ 448: 0x510F,
+ 449: 0x5110,
+ 450: 0x5111,
+ 451: 0x5113,
+ 452: 0x5114,
+ 453: 0x5115,
+ 454: 0x5116,
+ 455: 0x5117,
+ 456: 0x5118,
+ 457: 0x5119,
+ 458: 0x511A,
+ 459: 0x511B,
+ 460: 0x511C,
+ 461: 0x511D,
+ 462: 0x511E,
+ 463: 0x511F,
+ 464: 0x5120,
+ 465: 0x5122,
+ 466: 0x5123,
+ 467: 0x5124,
+ 468: 0x5125,
+ 469: 0x5126,
+ 470: 0x5127,
+ 471: 0x5128,
+ 472: 0x5129,
+ 473: 0x512A,
+ 474: 0x512B,
+ 475: 0x512C,
+ 476: 0x512D,
+ 477: 0x512E,
+ 478: 0x512F,
+ 479: 0x5130,
+ 480: 0x5131,
+ 481: 0x5132,
+ 482: 0x5133,
+ 483: 0x5134,
+ 484: 0x5135,
+ 485: 0x5136,
+ 486: 0x5137,
+ 487: 0x5138,
+ 488: 0x5139,
+ 489: 0x513A,
+ 490: 0x513B,
+ 491: 0x513C,
+ 492: 0x513D,
+ 493: 0x513E,
+ 494: 0x5142,
+ 495: 0x5147,
+ 496: 0x514A,
+ 497: 0x514C,
+ 498: 0x514E,
+ 499: 0x514F,
+ 500: 0x5150,
+ 501: 0x5152,
+ 502: 0x5153,
+ 503: 0x5157,
+ 504: 0x5158,
+ 505: 0x5159,
+ 506: 0x515B,
+ 507: 0x515D,
+ 508: 0x515E,
+ 509: 0x515F,
+ 510: 0x5160,
+ 511: 0x5161,
+ 512: 0x5163,
+ 513: 0x5164,
+ 514: 0x5166,
+ 515: 0x5167,
+ 516: 0x5169,
+ 517: 0x516A,
+ 518: 0x516F,
+ 519: 0x5172,
+ 520: 0x517A,
+ 521: 0x517E,
+ 522: 0x517F,
+ 523: 0x5183,
+ 524: 0x5184,
+ 525: 0x5186,
+ 526: 0x5187,
+ 527: 0x518A,
+ 528: 0x518B,
+ 529: 0x518E,
+ 530: 0x518F,
+ 531: 0x5190,
+ 532: 0x5191,
+ 533: 0x5193,
+ 534: 0x5194,
+ 535: 0x5198,
+ 536: 0x519A,
+ 537: 0x519D,
+ 538: 0x519E,
+ 539: 0x519F,
+ 540: 0x51A1,
+ 541: 0x51A3,
+ 542: 0x51A6,
+ 543: 0x51A7,
+ 544: 0x51A8,
+ 545: 0x51A9,
+ 546: 0x51AA,
+ 547: 0x51AD,
+ 548: 0x51AE,
+ 549: 0x51B4,
+ 550: 0x51B8,
+ 551: 0x51B9,
+ 552: 0x51BA,
+ 553: 0x51BE,
+ 554: 0x51BF,
+ 555: 0x51C1,
+ 556: 0x51C2,
+ 557: 0x51C3,
+ 558: 0x51C5,
+ 559: 0x51C8,
+ 560: 0x51CA,
+ 561: 0x51CD,
+ 562: 0x51CE,
+ 563: 0x51D0,
+ 564: 0x51D2,
+ 565: 0x51D3,
+ 566: 0x51D4,
+ 567: 0x51D5,
+ 568: 0x51D6,
+ 569: 0x51D7,
+ 570: 0x51D8,
+ 571: 0x51D9,
+ 572: 0x51DA,
+ 573: 0x51DC,
+ 574: 0x51DE,
+ 575: 0x51DF,
+ 576: 0x51E2,
+ 577: 0x51E3,
+ 578: 0x51E5,
+ 579: 0x51E6,
+ 580: 0x51E7,
+ 581: 0x51E8,
+ 582: 0x51E9,
+ 583: 0x51EA,
+ 584: 0x51EC,
+ 585: 0x51EE,
+ 586: 0x51F1,
+ 587: 0x51F2,
+ 588: 0x51F4,
+ 589: 0x51F7,
+ 590: 0x51FE,
+ 591: 0x5204,
+ 592: 0x5205,
+ 593: 0x5209,
+ 594: 0x520B,
+ 595: 0x520C,
+ 596: 0x520F,
+ 597: 0x5210,
+ 598: 0x5213,
+ 599: 0x5214,
+ 600: 0x5215,
+ 601: 0x521C,
+ 602: 0x521E,
+ 603: 0x521F,
+ 604: 0x5221,
+ 605: 0x5222,
+ 606: 0x5223,
+ 607: 0x5225,
+ 608: 0x5226,
+ 609: 0x5227,
+ 610: 0x522A,
+ 611: 0x522C,
+ 612: 0x522F,
+ 613: 0x5231,
+ 614: 0x5232,
+ 615: 0x5234,
+ 616: 0x5235,
+ 617: 0x523C,
+ 618: 0x523E,
+ 619: 0x5244,
+ 620: 0x5245,
+ 621: 0x5246,
+ 622: 0x5247,
+ 623: 0x5248,
+ 624: 0x5249,
+ 625: 0x524B,
+ 626: 0x524E,
+ 627: 0x524F,
+ 628: 0x5252,
+ 629: 0x5253,
+ 630: 0x5255,
+ 631: 0x5257,
+ 632: 0x5258,
+ 633: 0x5259,
+ 634: 0x525A,
+ 635: 0x525B,
+ 636: 0x525D,
+ 637: 0x525F,
+ 638: 0x5260,
+ 639: 0x5262,
+ 640: 0x5263,
+ 641: 0x5264,
+ 642: 0x5266,
+ 643: 0x5268,
+ 644: 0x526B,
+ 645: 0x526C,
+ 646: 0x526D,
+ 647: 0x526E,
+ 648: 0x5270,
+ 649: 0x5271,
+ 650: 0x5273,
+ 651: 0x5274,
+ 652: 0x5275,
+ 653: 0x5276,
+ 654: 0x5277,
+ 655: 0x5278,
+ 656: 0x5279,
+ 657: 0x527A,
+ 658: 0x527B,
+ 659: 0x527C,
+ 660: 0x527E,
+ 661: 0x5280,
+ 662: 0x5283,
+ 663: 0x5284,
+ 664: 0x5285,
+ 665: 0x5286,
+ 666: 0x5287,
+ 667: 0x5289,
+ 668: 0x528A,
+ 669: 0x528B,
+ 670: 0x528C,
+ 671: 0x528D,
+ 672: 0x528E,
+ 673: 0x528F,
+ 674: 0x5291,
+ 675: 0x5292,
+ 676: 0x5294,
+ 677: 0x5295,
+ 678: 0x5296,
+ 679: 0x5297,
+ 680: 0x5298,
+ 681: 0x5299,
+ 682: 0x529A,
+ 683: 0x529C,
+ 684: 0x52A4,
+ 685: 0x52A5,
+ 686: 0x52A6,
+ 687: 0x52A7,
+ 688: 0x52AE,
+ 689: 0x52AF,
+ 690: 0x52B0,
+ 691: 0x52B4,
+ 692: 0x52B5,
+ 693: 0x52B6,
+ 694: 0x52B7,
+ 695: 0x52B8,
+ 696: 0x52B9,
+ 697: 0x52BA,
+ 698: 0x52BB,
+ 699: 0x52BC,
+ 700: 0x52BD,
+ 701: 0x52C0,
+ 702: 0x52C1,
+ 703: 0x52C2,
+ 704: 0x52C4,
+ 705: 0x52C5,
+ 706: 0x52C6,
+ 707: 0x52C8,
+ 708: 0x52CA,
+ 709: 0x52CC,
+ 710: 0x52CD,
+ 711: 0x52CE,
+ 712: 0x52CF,
+ 713: 0x52D1,
+ 714: 0x52D3,
+ 715: 0x52D4,
+ 716: 0x52D5,
+ 717: 0x52D7,
+ 718: 0x52D9,
+ 719: 0x52DA,
+ 720: 0x52DB,
+ 721: 0x52DC,
+ 722: 0x52DD,
+ 723: 0x52DE,
+ 724: 0x52E0,
+ 725: 0x52E1,
+ 726: 0x52E2,
+ 727: 0x52E3,
+ 728: 0x52E5,
+ 729: 0x52E6,
+ 730: 0x52E7,
+ 731: 0x52E8,
+ 732: 0x52E9,
+ 733: 0x52EA,
+ 734: 0x52EB,
+ 735: 0x52EC,
+ 736: 0x52ED,
+ 737: 0x52EE,
+ 738: 0x52EF,
+ 739: 0x52F1,
+ 740: 0x52F2,
+ 741: 0x52F3,
+ 742: 0x52F4,
+ 743: 0x52F5,
+ 744: 0x52F6,
+ 745: 0x52F7,
+ 746: 0x52F8,
+ 747: 0x52FB,
+ 748: 0x52FC,
+ 749: 0x52FD,
+ 750: 0x5301,
+ 751: 0x5302,
+ 752: 0x5303,
+ 753: 0x5304,
+ 754: 0x5307,
+ 755: 0x5309,
+ 756: 0x530A,
+ 757: 0x530B,
+ 758: 0x530C,
+ 759: 0x530E,
+ 760: 0x5311,
+ 761: 0x5312,
+ 762: 0x5313,
+ 763: 0x5314,
+ 764: 0x5318,
+ 765: 0x531B,
+ 766: 0x531C,
+ 767: 0x531E,
+ 768: 0x531F,
+ 769: 0x5322,
+ 770: 0x5324,
+ 771: 0x5325,
+ 772: 0x5327,
+ 773: 0x5328,
+ 774: 0x5329,
+ 775: 0x532B,
+ 776: 0x532C,
+ 777: 0x532D,
+ 778: 0x532F,
+ 779: 0x5330,
+ 780: 0x5331,
+ 781: 0x5332,
+ 782: 0x5333,
+ 783: 0x5334,
+ 784: 0x5335,
+ 785: 0x5336,
+ 786: 0x5337,
+ 787: 0x5338,
+ 788: 0x533C,
+ 789: 0x533D,
+ 790: 0x5340,
+ 791: 0x5342,
+ 792: 0x5344,
+ 793: 0x5346,
+ 794: 0x534B,
+ 795: 0x534C,
+ 796: 0x534D,
+ 797: 0x5350,
+ 798: 0x5354,
+ 799: 0x5358,
+ 800: 0x5359,
+ 801: 0x535B,
+ 802: 0x535D,
+ 803: 0x5365,
+ 804: 0x5368,
+ 805: 0x536A,
+ 806: 0x536C,
+ 807: 0x536D,
+ 808: 0x5372,
+ 809: 0x5376,
+ 810: 0x5379,
+ 811: 0x537B,
+ 812: 0x537C,
+ 813: 0x537D,
+ 814: 0x537E,
+ 815: 0x5380,
+ 816: 0x5381,
+ 817: 0x5383,
+ 818: 0x5387,
+ 819: 0x5388,
+ 820: 0x538A,
+ 821: 0x538E,
+ 822: 0x538F,
+ 823: 0x5390,
+ 824: 0x5391,
+ 825: 0x5392,
+ 826: 0x5393,
+ 827: 0x5394,
+ 828: 0x5396,
+ 829: 0x5397,
+ 830: 0x5399,
+ 831: 0x539B,
+ 832: 0x539C,
+ 833: 0x539E,
+ 834: 0x53A0,
+ 835: 0x53A1,
+ 836: 0x53A4,
+ 837: 0x53A7,
+ 838: 0x53AA,
+ 839: 0x53AB,
+ 840: 0x53AC,
+ 841: 0x53AD,
+ 842: 0x53AF,
+ 843: 0x53B0,
+ 844: 0x53B1,
+ 845: 0x53B2,
+ 846: 0x53B3,
+ 847: 0x53B4,
+ 848: 0x53B5,
+ 849: 0x53B7,
+ 850: 0x53B8,
+ 851: 0x53B9,
+ 852: 0x53BA,
+ 853: 0x53BC,
+ 854: 0x53BD,
+ 855: 0x53BE,
+ 856: 0x53C0,
+ 857: 0x53C3,
+ 858: 0x53C4,
+ 859: 0x53C5,
+ 860: 0x53C6,
+ 861: 0x53C7,
+ 862: 0x53CE,
+ 863: 0x53CF,
+ 864: 0x53D0,
+ 865: 0x53D2,
+ 866: 0x53D3,
+ 867: 0x53D5,
+ 868: 0x53DA,
+ 869: 0x53DC,
+ 870: 0x53DD,
+ 871: 0x53DE,
+ 872: 0x53E1,
+ 873: 0x53E2,
+ 874: 0x53E7,
+ 875: 0x53F4,
+ 876: 0x53FA,
+ 877: 0x53FE,
+ 878: 0x53FF,
+ 879: 0x5400,
+ 880: 0x5402,
+ 881: 0x5405,
+ 882: 0x5407,
+ 883: 0x540B,
+ 884: 0x5414,
+ 885: 0x5418,
+ 886: 0x5419,
+ 887: 0x541A,
+ 888: 0x541C,
+ 889: 0x5422,
+ 890: 0x5424,
+ 891: 0x5425,
+ 892: 0x542A,
+ 893: 0x5430,
+ 894: 0x5433,
+ 895: 0x5436,
+ 896: 0x5437,
+ 897: 0x543A,
+ 898: 0x543D,
+ 899: 0x543F,
+ 900: 0x5441,
+ 901: 0x5442,
+ 902: 0x5444,
+ 903: 0x5445,
+ 904: 0x5447,
+ 905: 0x5449,
+ 906: 0x544C,
+ 907: 0x544D,
+ 908: 0x544E,
+ 909: 0x544F,
+ 910: 0x5451,
+ 911: 0x545A,
+ 912: 0x545D,
+ 913: 0x545E,
+ 914: 0x545F,
+ 915: 0x5460,
+ 916: 0x5461,
+ 917: 0x5463,
+ 918: 0x5465,
+ 919: 0x5467,
+ 920: 0x5469,
+ 921: 0x546A,
+ 922: 0x546B,
+ 923: 0x546C,
+ 924: 0x546D,
+ 925: 0x546E,
+ 926: 0x546F,
+ 927: 0x5470,
+ 928: 0x5474,
+ 929: 0x5479,
+ 930: 0x547A,
+ 931: 0x547E,
+ 932: 0x547F,
+ 933: 0x5481,
+ 934: 0x5483,
+ 935: 0x5485,
+ 936: 0x5487,
+ 937: 0x5488,
+ 938: 0x5489,
+ 939: 0x548A,
+ 940: 0x548D,
+ 941: 0x5491,
+ 942: 0x5493,
+ 943: 0x5497,
+ 944: 0x5498,
+ 945: 0x549C,
+ 946: 0x549E,
+ 947: 0x549F,
+ 948: 0x54A0,
+ 949: 0x54A1,
+ 950: 0x54A2,
+ 951: 0x54A5,
+ 952: 0x54AE,
+ 953: 0x54B0,
+ 954: 0x54B2,
+ 955: 0x54B5,
+ 956: 0x54B6,
+ 957: 0x54B7,
+ 958: 0x54B9,
+ 959: 0x54BA,
+ 960: 0x54BC,
+ 961: 0x54BE,
+ 962: 0x54C3,
+ 963: 0x54C5,
+ 964: 0x54CA,
+ 965: 0x54CB,
+ 966: 0x54D6,
+ 967: 0x54D8,
+ 968: 0x54DB,
+ 969: 0x54E0,
+ 970: 0x54E1,
+ 971: 0x54E2,
+ 972: 0x54E3,
+ 973: 0x54E4,
+ 974: 0x54EB,
+ 975: 0x54EC,
+ 976: 0x54EF,
+ 977: 0x54F0,
+ 978: 0x54F1,
+ 979: 0x54F4,
+ 980: 0x54F5,
+ 981: 0x54F6,
+ 982: 0x54F7,
+ 983: 0x54F8,
+ 984: 0x54F9,
+ 985: 0x54FB,
+ 986: 0x54FE,
+ 987: 0x5500,
+ 988: 0x5502,
+ 989: 0x5503,
+ 990: 0x5504,
+ 991: 0x5505,
+ 992: 0x5508,
+ 993: 0x550A,
+ 994: 0x550B,
+ 995: 0x550C,
+ 996: 0x550D,
+ 997: 0x550E,
+ 998: 0x5512,
+ 999: 0x5513,
+ 1000: 0x5515,
+ 1001: 0x5516,
+ 1002: 0x5517,
+ 1003: 0x5518,
+ 1004: 0x5519,
+ 1005: 0x551A,
+ 1006: 0x551C,
+ 1007: 0x551D,
+ 1008: 0x551E,
+ 1009: 0x551F,
+ 1010: 0x5521,
+ 1011: 0x5525,
+ 1012: 0x5526,
+ 1013: 0x5528,
+ 1014: 0x5529,
+ 1015: 0x552B,
+ 1016: 0x552D,
+ 1017: 0x5532,
+ 1018: 0x5534,
+ 1019: 0x5535,
+ 1020: 0x5536,
+ 1021: 0x5538,
+ 1022: 0x5539,
+ 1023: 0x553A,
+ 1024: 0x553B,
+ 1025: 0x553D,
+ 1026: 0x5540,
+ 1027: 0x5542,
+ 1028: 0x5545,
+ 1029: 0x5547,
+ 1030: 0x5548,
+ 1031: 0x554B,
+ 1032: 0x554C,
+ 1033: 0x554D,
+ 1034: 0x554E,
+ 1035: 0x554F,
+ 1036: 0x5551,
+ 1037: 0x5552,
+ 1038: 0x5553,
+ 1039: 0x5554,
+ 1040: 0x5557,
+ 1041: 0x5558,
+ 1042: 0x5559,
+ 1043: 0x555A,
+ 1044: 0x555B,
+ 1045: 0x555D,
+ 1046: 0x555E,
+ 1047: 0x555F,
+ 1048: 0x5560,
+ 1049: 0x5562,
+ 1050: 0x5563,
+ 1051: 0x5568,
+ 1052: 0x5569,
+ 1053: 0x556B,
+ 1054: 0x556F,
+ 1055: 0x5570,
+ 1056: 0x5571,
+ 1057: 0x5572,
+ 1058: 0x5573,
+ 1059: 0x5574,
+ 1060: 0x5579,
+ 1061: 0x557A,
+ 1062: 0x557D,
+ 1063: 0x557F,
+ 1064: 0x5585,
+ 1065: 0x5586,
+ 1066: 0x558C,
+ 1067: 0x558D,
+ 1068: 0x558E,
+ 1069: 0x5590,
+ 1070: 0x5592,
+ 1071: 0x5593,
+ 1072: 0x5595,
+ 1073: 0x5596,
+ 1074: 0x5597,
+ 1075: 0x559A,
+ 1076: 0x559B,
+ 1077: 0x559E,
+ 1078: 0x55A0,
+ 1079: 0x55A1,
+ 1080: 0x55A2,
+ 1081: 0x55A3,
+ 1082: 0x55A4,
+ 1083: 0x55A5,
+ 1084: 0x55A6,
+ 1085: 0x55A8,
+ 1086: 0x55A9,
+ 1087: 0x55AA,
+ 1088: 0x55AB,
+ 1089: 0x55AC,
+ 1090: 0x55AD,
+ 1091: 0x55AE,
+ 1092: 0x55AF,
+ 1093: 0x55B0,
+ 1094: 0x55B2,
+ 1095: 0x55B4,
+ 1096: 0x55B6,
+ 1097: 0x55B8,
+ 1098: 0x55BA,
+ 1099: 0x55BC,
+ 1100: 0x55BF,
+ 1101: 0x55C0,
+ 1102: 0x55C1,
+ 1103: 0x55C2,
+ 1104: 0x55C3,
+ 1105: 0x55C6,
+ 1106: 0x55C7,
+ 1107: 0x55C8,
+ 1108: 0x55CA,
+ 1109: 0x55CB,
+ 1110: 0x55CE,
+ 1111: 0x55CF,
+ 1112: 0x55D0,
+ 1113: 0x55D5,
+ 1114: 0x55D7,
+ 1115: 0x55D8,
+ 1116: 0x55D9,
+ 1117: 0x55DA,
+ 1118: 0x55DB,
+ 1119: 0x55DE,
+ 1120: 0x55E0,
+ 1121: 0x55E2,
+ 1122: 0x55E7,
+ 1123: 0x55E9,
+ 1124: 0x55ED,
+ 1125: 0x55EE,
+ 1126: 0x55F0,
+ 1127: 0x55F1,
+ 1128: 0x55F4,
+ 1129: 0x55F6,
+ 1130: 0x55F8,
+ 1131: 0x55F9,
+ 1132: 0x55FA,
+ 1133: 0x55FB,
+ 1134: 0x55FC,
+ 1135: 0x55FF,
+ 1136: 0x5602,
+ 1137: 0x5603,
+ 1138: 0x5604,
+ 1139: 0x5605,
+ 1140: 0x5606,
+ 1141: 0x5607,
+ 1142: 0x560A,
+ 1143: 0x560B,
+ 1144: 0x560D,
+ 1145: 0x5610,
+ 1146: 0x5611,
+ 1147: 0x5612,
+ 1148: 0x5613,
+ 1149: 0x5614,
+ 1150: 0x5615,
+ 1151: 0x5616,
+ 1152: 0x5617,
+ 1153: 0x5619,
+ 1154: 0x561A,
+ 1155: 0x561C,
+ 1156: 0x561D,
+ 1157: 0x5620,
+ 1158: 0x5621,
+ 1159: 0x5622,
+ 1160: 0x5625,
+ 1161: 0x5626,
+ 1162: 0x5628,
+ 1163: 0x5629,
+ 1164: 0x562A,
+ 1165: 0x562B,
+ 1166: 0x562E,
+ 1167: 0x562F,
+ 1168: 0x5630,
+ 1169: 0x5633,
+ 1170: 0x5635,
+ 1171: 0x5637,
+ 1172: 0x5638,
+ 1173: 0x563A,
+ 1174: 0x563C,
+ 1175: 0x563D,
+ 1176: 0x563E,
+ 1177: 0x5640,
+ 1178: 0x5641,
+ 1179: 0x5642,
+ 1180: 0x5643,
+ 1181: 0x5644,
+ 1182: 0x5645,
+ 1183: 0x5646,
+ 1184: 0x5647,
+ 1185: 0x5648,
+ 1186: 0x5649,
+ 1187: 0x564A,
+ 1188: 0x564B,
+ 1189: 0x564F,
+ 1190: 0x5650,
+ 1191: 0x5651,
+ 1192: 0x5652,
+ 1193: 0x5653,
+ 1194: 0x5655,
+ 1195: 0x5656,
+ 1196: 0x565A,
+ 1197: 0x565B,
+ 1198: 0x565D,
+ 1199: 0x565E,
+ 1200: 0x565F,
+ 1201: 0x5660,
+ 1202: 0x5661,
+ 1203: 0x5663,
+ 1204: 0x5665,
+ 1205: 0x5666,
+ 1206: 0x5667,
+ 1207: 0x566D,
+ 1208: 0x566E,
+ 1209: 0x566F,
+ 1210: 0x5670,
+ 1211: 0x5672,
+ 1212: 0x5673,
+ 1213: 0x5674,
+ 1214: 0x5675,
+ 1215: 0x5677,
+ 1216: 0x5678,
+ 1217: 0x5679,
+ 1218: 0x567A,
+ 1219: 0x567D,
+ 1220: 0x567E,
+ 1221: 0x567F,
+ 1222: 0x5680,
+ 1223: 0x5681,
+ 1224: 0x5682,
+ 1225: 0x5683,
+ 1226: 0x5684,
+ 1227: 0x5687,
+ 1228: 0x5688,
+ 1229: 0x5689,
+ 1230: 0x568A,
+ 1231: 0x568B,
+ 1232: 0x568C,
+ 1233: 0x568D,
+ 1234: 0x5690,
+ 1235: 0x5691,
+ 1236: 0x5692,
+ 1237: 0x5694,
+ 1238: 0x5695,
+ 1239: 0x5696,
+ 1240: 0x5697,
+ 1241: 0x5698,
+ 1242: 0x5699,
+ 1243: 0x569A,
+ 1244: 0x569B,
+ 1245: 0x569C,
+ 1246: 0x569D,
+ 1247: 0x569E,
+ 1248: 0x569F,
+ 1249: 0x56A0,
+ 1250: 0x56A1,
+ 1251: 0x56A2,
+ 1252: 0x56A4,
+ 1253: 0x56A5,
+ 1254: 0x56A6,
+ 1255: 0x56A7,
+ 1256: 0x56A8,
+ 1257: 0x56A9,
+ 1258: 0x56AA,
+ 1259: 0x56AB,
+ 1260: 0x56AC,
+ 1261: 0x56AD,
+ 1262: 0x56AE,
+ 1263: 0x56B0,
+ 1264: 0x56B1,
+ 1265: 0x56B2,
+ 1266: 0x56B3,
+ 1267: 0x56B4,
+ 1268: 0x56B5,
+ 1269: 0x56B6,
+ 1270: 0x56B8,
+ 1271: 0x56B9,
+ 1272: 0x56BA,
+ 1273: 0x56BB,
+ 1274: 0x56BD,
+ 1275: 0x56BE,
+ 1276: 0x56BF,
+ 1277: 0x56C0,
+ 1278: 0x56C1,
+ 1279: 0x56C2,
+ 1280: 0x56C3,
+ 1281: 0x56C4,
+ 1282: 0x56C5,
+ 1283: 0x56C6,
+ 1284: 0x56C7,
+ 1285: 0x56C8,
+ 1286: 0x56C9,
+ 1287: 0x56CB,
+ 1288: 0x56CC,
+ 1289: 0x56CD,
+ 1290: 0x56CE,
+ 1291: 0x56CF,
+ 1292: 0x56D0,
+ 1293: 0x56D1,
+ 1294: 0x56D2,
+ 1295: 0x56D3,
+ 1296: 0x56D5,
+ 1297: 0x56D6,
+ 1298: 0x56D8,
+ 1299: 0x56D9,
+ 1300: 0x56DC,
+ 1301: 0x56E3,
+ 1302: 0x56E5,
+ 1303: 0x56E6,
+ 1304: 0x56E7,
+ 1305: 0x56E8,
+ 1306: 0x56E9,
+ 1307: 0x56EA,
+ 1308: 0x56EC,
+ 1309: 0x56EE,
+ 1310: 0x56EF,
+ 1311: 0x56F2,
+ 1312: 0x56F3,
+ 1313: 0x56F6,
+ 1314: 0x56F7,
+ 1315: 0x56F8,
+ 1316: 0x56FB,
+ 1317: 0x56FC,
+ 1318: 0x5700,
+ 1319: 0x5701,
+ 1320: 0x5702,
+ 1321: 0x5705,
+ 1322: 0x5707,
+ 1323: 0x570B,
+ 1324: 0x570C,
+ 1325: 0x570D,
+ 1326: 0x570E,
+ 1327: 0x570F,
+ 1328: 0x5710,
+ 1329: 0x5711,
+ 1330: 0x5712,
+ 1331: 0x5713,
+ 1332: 0x5714,
+ 1333: 0x5715,
+ 1334: 0x5716,
+ 1335: 0x5717,
+ 1336: 0x5718,
+ 1337: 0x5719,
+ 1338: 0x571A,
+ 1339: 0x571B,
+ 1340: 0x571D,
+ 1341: 0x571E,
+ 1342: 0x5720,
+ 1343: 0x5721,
+ 1344: 0x5722,
+ 1345: 0x5724,
+ 1346: 0x5725,
+ 1347: 0x5726,
+ 1348: 0x5727,
+ 1349: 0x572B,
+ 1350: 0x5731,
+ 1351: 0x5732,
+ 1352: 0x5734,
+ 1353: 0x5735,
+ 1354: 0x5736,
+ 1355: 0x5737,
+ 1356: 0x5738,
+ 1357: 0x573C,
+ 1358: 0x573D,
+ 1359: 0x573F,
+ 1360: 0x5741,
+ 1361: 0x5743,
+ 1362: 0x5744,
+ 1363: 0x5745,
+ 1364: 0x5746,
+ 1365: 0x5748,
+ 1366: 0x5749,
+ 1367: 0x574B,
+ 1368: 0x5752,
+ 1369: 0x5753,
+ 1370: 0x5754,
+ 1371: 0x5755,
+ 1372: 0x5756,
+ 1373: 0x5758,
+ 1374: 0x5759,
+ 1375: 0x5762,
+ 1376: 0x5763,
+ 1377: 0x5765,
+ 1378: 0x5767,
+ 1379: 0x576C,
+ 1380: 0x576E,
+ 1381: 0x5770,
+ 1382: 0x5771,
+ 1383: 0x5772,
+ 1384: 0x5774,
+ 1385: 0x5775,
+ 1386: 0x5778,
+ 1387: 0x5779,
+ 1388: 0x577A,
+ 1389: 0x577D,
+ 1390: 0x577E,
+ 1391: 0x577F,
+ 1392: 0x5780,
+ 1393: 0x5781,
+ 1394: 0x5787,
+ 1395: 0x5788,
+ 1396: 0x5789,
+ 1397: 0x578A,
+ 1398: 0x578D,
+ 1399: 0x578E,
+ 1400: 0x578F,
+ 1401: 0x5790,
+ 1402: 0x5791,
+ 1403: 0x5794,
+ 1404: 0x5795,
+ 1405: 0x5796,
+ 1406: 0x5797,
+ 1407: 0x5798,
+ 1408: 0x5799,
+ 1409: 0x579A,
+ 1410: 0x579C,
+ 1411: 0x579D,
+ 1412: 0x579E,
+ 1413: 0x579F,
+ 1414: 0x57A5,
+ 1415: 0x57A8,
+ 1416: 0x57AA,
+ 1417: 0x57AC,
+ 1418: 0x57AF,
+ 1419: 0x57B0,
+ 1420: 0x57B1,
+ 1421: 0x57B3,
+ 1422: 0x57B5,
+ 1423: 0x57B6,
+ 1424: 0x57B7,
+ 1425: 0x57B9,
+ 1426: 0x57BA,
+ 1427: 0x57BB,
+ 1428: 0x57BC,
+ 1429: 0x57BD,
+ 1430: 0x57BE,
+ 1431: 0x57BF,
+ 1432: 0x57C0,
+ 1433: 0x57C1,
+ 1434: 0x57C4,
+ 1435: 0x57C5,
+ 1436: 0x57C6,
+ 1437: 0x57C7,
+ 1438: 0x57C8,
+ 1439: 0x57C9,
+ 1440: 0x57CA,
+ 1441: 0x57CC,
+ 1442: 0x57CD,
+ 1443: 0x57D0,
+ 1444: 0x57D1,
+ 1445: 0x57D3,
+ 1446: 0x57D6,
+ 1447: 0x57D7,
+ 1448: 0x57DB,
+ 1449: 0x57DC,
+ 1450: 0x57DE,
+ 1451: 0x57E1,
+ 1452: 0x57E2,
+ 1453: 0x57E3,
+ 1454: 0x57E5,
+ 1455: 0x57E6,
+ 1456: 0x57E7,
+ 1457: 0x57E8,
+ 1458: 0x57E9,
+ 1459: 0x57EA,
+ 1460: 0x57EB,
+ 1461: 0x57EC,
+ 1462: 0x57EE,
+ 1463: 0x57F0,
+ 1464: 0x57F1,
+ 1465: 0x57F2,
+ 1466: 0x57F3,
+ 1467: 0x57F5,
+ 1468: 0x57F6,
+ 1469: 0x57F7,
+ 1470: 0x57FB,
+ 1471: 0x57FC,
+ 1472: 0x57FE,
+ 1473: 0x57FF,
+ 1474: 0x5801,
+ 1475: 0x5803,
+ 1476: 0x5804,
+ 1477: 0x5805,
+ 1478: 0x5808,
+ 1479: 0x5809,
+ 1480: 0x580A,
+ 1481: 0x580C,
+ 1482: 0x580E,
+ 1483: 0x580F,
+ 1484: 0x5810,
+ 1485: 0x5812,
+ 1486: 0x5813,
+ 1487: 0x5814,
+ 1488: 0x5816,
+ 1489: 0x5817,
+ 1490: 0x5818,
+ 1491: 0x581A,
+ 1492: 0x581B,
+ 1493: 0x581C,
+ 1494: 0x581D,
+ 1495: 0x581F,
+ 1496: 0x5822,
+ 1497: 0x5823,
+ 1498: 0x5825,
+ 1499: 0x5826,
+ 1500: 0x5827,
+ 1501: 0x5828,
+ 1502: 0x5829,
+ 1503: 0x582B,
+ 1504: 0x582C,
+ 1505: 0x582D,
+ 1506: 0x582E,
+ 1507: 0x582F,
+ 1508: 0x5831,
+ 1509: 0x5832,
+ 1510: 0x5833,
+ 1511: 0x5834,
+ 1512: 0x5836,
+ 1513: 0x5837,
+ 1514: 0x5838,
+ 1515: 0x5839,
+ 1516: 0x583A,
+ 1517: 0x583B,
+ 1518: 0x583C,
+ 1519: 0x583D,
+ 1520: 0x583E,
+ 1521: 0x583F,
+ 1522: 0x5840,
+ 1523: 0x5841,
+ 1524: 0x5842,
+ 1525: 0x5843,
+ 1526: 0x5845,
+ 1527: 0x5846,
+ 1528: 0x5847,
+ 1529: 0x5848,
+ 1530: 0x5849,
+ 1531: 0x584A,
+ 1532: 0x584B,
+ 1533: 0x584E,
+ 1534: 0x584F,
+ 1535: 0x5850,
+ 1536: 0x5852,
+ 1537: 0x5853,
+ 1538: 0x5855,
+ 1539: 0x5856,
+ 1540: 0x5857,
+ 1541: 0x5859,
+ 1542: 0x585A,
+ 1543: 0x585B,
+ 1544: 0x585C,
+ 1545: 0x585D,
+ 1546: 0x585F,
+ 1547: 0x5860,
+ 1548: 0x5861,
+ 1549: 0x5862,
+ 1550: 0x5863,
+ 1551: 0x5864,
+ 1552: 0x5866,
+ 1553: 0x5867,
+ 1554: 0x5868,
+ 1555: 0x5869,
+ 1556: 0x586A,
+ 1557: 0x586D,
+ 1558: 0x586E,
+ 1559: 0x586F,
+ 1560: 0x5870,
+ 1561: 0x5871,
+ 1562: 0x5872,
+ 1563: 0x5873,
+ 1564: 0x5874,
+ 1565: 0x5875,
+ 1566: 0x5876,
+ 1567: 0x5877,
+ 1568: 0x5878,
+ 1569: 0x5879,
+ 1570: 0x587A,
+ 1571: 0x587B,
+ 1572: 0x587C,
+ 1573: 0x587D,
+ 1574: 0x587F,
+ 1575: 0x5882,
+ 1576: 0x5884,
+ 1577: 0x5886,
+ 1578: 0x5887,
+ 1579: 0x5888,
+ 1580: 0x588A,
+ 1581: 0x588B,
+ 1582: 0x588C,
+ 1583: 0x588D,
+ 1584: 0x588E,
+ 1585: 0x588F,
+ 1586: 0x5890,
+ 1587: 0x5891,
+ 1588: 0x5894,
+ 1589: 0x5895,
+ 1590: 0x5896,
+ 1591: 0x5897,
+ 1592: 0x5898,
+ 1593: 0x589B,
+ 1594: 0x589C,
+ 1595: 0x589D,
+ 1596: 0x58A0,
+ 1597: 0x58A1,
+ 1598: 0x58A2,
+ 1599: 0x58A3,
+ 1600: 0x58A4,
+ 1601: 0x58A5,
+ 1602: 0x58A6,
+ 1603: 0x58A7,
+ 1604: 0x58AA,
+ 1605: 0x58AB,
+ 1606: 0x58AC,
+ 1607: 0x58AD,
+ 1608: 0x58AE,
+ 1609: 0x58AF,
+ 1610: 0x58B0,
+ 1611: 0x58B1,
+ 1612: 0x58B2,
+ 1613: 0x58B3,
+ 1614: 0x58B4,
+ 1615: 0x58B5,
+ 1616: 0x58B6,
+ 1617: 0x58B7,
+ 1618: 0x58B8,
+ 1619: 0x58B9,
+ 1620: 0x58BA,
+ 1621: 0x58BB,
+ 1622: 0x58BD,
+ 1623: 0x58BE,
+ 1624: 0x58BF,
+ 1625: 0x58C0,
+ 1626: 0x58C2,
+ 1627: 0x58C3,
+ 1628: 0x58C4,
+ 1629: 0x58C6,
+ 1630: 0x58C7,
+ 1631: 0x58C8,
+ 1632: 0x58C9,
+ 1633: 0x58CA,
+ 1634: 0x58CB,
+ 1635: 0x58CC,
+ 1636: 0x58CD,
+ 1637: 0x58CE,
+ 1638: 0x58CF,
+ 1639: 0x58D0,
+ 1640: 0x58D2,
+ 1641: 0x58D3,
+ 1642: 0x58D4,
+ 1643: 0x58D6,
+ 1644: 0x58D7,
+ 1645: 0x58D8,
+ 1646: 0x58D9,
+ 1647: 0x58DA,
+ 1648: 0x58DB,
+ 1649: 0x58DC,
+ 1650: 0x58DD,
+ 1651: 0x58DE,
+ 1652: 0x58DF,
+ 1653: 0x58E0,
+ 1654: 0x58E1,
+ 1655: 0x58E2,
+ 1656: 0x58E3,
+ 1657: 0x58E5,
+ 1658: 0x58E6,
+ 1659: 0x58E7,
+ 1660: 0x58E8,
+ 1661: 0x58E9,
+ 1662: 0x58EA,
+ 1663: 0x58ED,
+ 1664: 0x58EF,
+ 1665: 0x58F1,
+ 1666: 0x58F2,
+ 1667: 0x58F4,
+ 1668: 0x58F5,
+ 1669: 0x58F7,
+ 1670: 0x58F8,
+ 1671: 0x58FA,
+ 1672: 0x58FB,
+ 1673: 0x58FC,
+ 1674: 0x58FD,
+ 1675: 0x58FE,
+ 1676: 0x58FF,
+ 1677: 0x5900,
+ 1678: 0x5901,
+ 1679: 0x5903,
+ 1680: 0x5905,
+ 1681: 0x5906,
+ 1682: 0x5908,
+ 1683: 0x5909,
+ 1684: 0x590A,
+ 1685: 0x590B,
+ 1686: 0x590C,
+ 1687: 0x590E,
+ 1688: 0x5910,
+ 1689: 0x5911,
+ 1690: 0x5912,
+ 1691: 0x5913,
+ 1692: 0x5917,
+ 1693: 0x5918,
+ 1694: 0x591B,
+ 1695: 0x591D,
+ 1696: 0x591E,
+ 1697: 0x5920,
+ 1698: 0x5921,
+ 1699: 0x5922,
+ 1700: 0x5923,
+ 1701: 0x5926,
+ 1702: 0x5928,
+ 1703: 0x592C,
+ 1704: 0x5930,
+ 1705: 0x5932,
+ 1706: 0x5933,
+ 1707: 0x5935,
+ 1708: 0x5936,
+ 1709: 0x593B,
+ 1710: 0x593D,
+ 1711: 0x593E,
+ 1712: 0x593F,
+ 1713: 0x5940,
+ 1714: 0x5943,
+ 1715: 0x5945,
+ 1716: 0x5946,
+ 1717: 0x594A,
+ 1718: 0x594C,
+ 1719: 0x594D,
+ 1720: 0x5950,
+ 1721: 0x5952,
+ 1722: 0x5953,
+ 1723: 0x5959,
+ 1724: 0x595B,
+ 1725: 0x595C,
+ 1726: 0x595D,
+ 1727: 0x595E,
+ 1728: 0x595F,
+ 1729: 0x5961,
+ 1730: 0x5963,
+ 1731: 0x5964,
+ 1732: 0x5966,
+ 1733: 0x5967,
+ 1734: 0x5968,
+ 1735: 0x5969,
+ 1736: 0x596A,
+ 1737: 0x596B,
+ 1738: 0x596C,
+ 1739: 0x596D,
+ 1740: 0x596E,
+ 1741: 0x596F,
+ 1742: 0x5970,
+ 1743: 0x5971,
+ 1744: 0x5972,
+ 1745: 0x5975,
+ 1746: 0x5977,
+ 1747: 0x597A,
+ 1748: 0x597B,
+ 1749: 0x597C,
+ 1750: 0x597E,
+ 1751: 0x597F,
+ 1752: 0x5980,
+ 1753: 0x5985,
+ 1754: 0x5989,
+ 1755: 0x598B,
+ 1756: 0x598C,
+ 1757: 0x598E,
+ 1758: 0x598F,
+ 1759: 0x5990,
+ 1760: 0x5991,
+ 1761: 0x5994,
+ 1762: 0x5995,
+ 1763: 0x5998,
+ 1764: 0x599A,
+ 1765: 0x599B,
+ 1766: 0x599C,
+ 1767: 0x599D,
+ 1768: 0x599F,
+ 1769: 0x59A0,
+ 1770: 0x59A1,
+ 1771: 0x59A2,
+ 1772: 0x59A6,
+ 1773: 0x59A7,
+ 1774: 0x59AC,
+ 1775: 0x59AD,
+ 1776: 0x59B0,
+ 1777: 0x59B1,
+ 1778: 0x59B3,
+ 1779: 0x59B4,
+ 1780: 0x59B5,
+ 1781: 0x59B6,
+ 1782: 0x59B7,
+ 1783: 0x59B8,
+ 1784: 0x59BA,
+ 1785: 0x59BC,
+ 1786: 0x59BD,
+ 1787: 0x59BF,
+ 1788: 0x59C0,
+ 1789: 0x59C1,
+ 1790: 0x59C2,
+ 1791: 0x59C3,
+ 1792: 0x59C4,
+ 1793: 0x59C5,
+ 1794: 0x59C7,
+ 1795: 0x59C8,
+ 1796: 0x59C9,
+ 1797: 0x59CC,
+ 1798: 0x59CD,
+ 1799: 0x59CE,
+ 1800: 0x59CF,
+ 1801: 0x59D5,
+ 1802: 0x59D6,
+ 1803: 0x59D9,
+ 1804: 0x59DB,
+ 1805: 0x59DE,
+ 1806: 0x59DF,
+ 1807: 0x59E0,
+ 1808: 0x59E1,
+ 1809: 0x59E2,
+ 1810: 0x59E4,
+ 1811: 0x59E6,
+ 1812: 0x59E7,
+ 1813: 0x59E9,
+ 1814: 0x59EA,
+ 1815: 0x59EB,
+ 1816: 0x59ED,
+ 1817: 0x59EE,
+ 1818: 0x59EF,
+ 1819: 0x59F0,
+ 1820: 0x59F1,
+ 1821: 0x59F2,
+ 1822: 0x59F3,
+ 1823: 0x59F4,
+ 1824: 0x59F5,
+ 1825: 0x59F6,
+ 1826: 0x59F7,
+ 1827: 0x59F8,
+ 1828: 0x59FA,
+ 1829: 0x59FC,
+ 1830: 0x59FD,
+ 1831: 0x59FE,
+ 1832: 0x5A00,
+ 1833: 0x5A02,
+ 1834: 0x5A0A,
+ 1835: 0x5A0B,
+ 1836: 0x5A0D,
+ 1837: 0x5A0E,
+ 1838: 0x5A0F,
+ 1839: 0x5A10,
+ 1840: 0x5A12,
+ 1841: 0x5A14,
+ 1842: 0x5A15,
+ 1843: 0x5A16,
+ 1844: 0x5A17,
+ 1845: 0x5A19,
+ 1846: 0x5A1A,
+ 1847: 0x5A1B,
+ 1848: 0x5A1D,
+ 1849: 0x5A1E,
+ 1850: 0x5A21,
+ 1851: 0x5A22,
+ 1852: 0x5A24,
+ 1853: 0x5A26,
+ 1854: 0x5A27,
+ 1855: 0x5A28,
+ 1856: 0x5A2A,
+ 1857: 0x5A2B,
+ 1858: 0x5A2C,
+ 1859: 0x5A2D,
+ 1860: 0x5A2E,
+ 1861: 0x5A2F,
+ 1862: 0x5A30,
+ 1863: 0x5A33,
+ 1864: 0x5A35,
+ 1865: 0x5A37,
+ 1866: 0x5A38,
+ 1867: 0x5A39,
+ 1868: 0x5A3A,
+ 1869: 0x5A3B,
+ 1870: 0x5A3D,
+ 1871: 0x5A3E,
+ 1872: 0x5A3F,
+ 1873: 0x5A41,
+ 1874: 0x5A42,
+ 1875: 0x5A43,
+ 1876: 0x5A44,
+ 1877: 0x5A45,
+ 1878: 0x5A47,
+ 1879: 0x5A48,
+ 1880: 0x5A4B,
+ 1881: 0x5A4C,
+ 1882: 0x5A4D,
+ 1883: 0x5A4E,
+ 1884: 0x5A4F,
+ 1885: 0x5A50,
+ 1886: 0x5A51,
+ 1887: 0x5A52,
+ 1888: 0x5A53,
+ 1889: 0x5A54,
+ 1890: 0x5A56,
+ 1891: 0x5A57,
+ 1892: 0x5A58,
+ 1893: 0x5A59,
+ 1894: 0x5A5B,
+ 1895: 0x5A5C,
+ 1896: 0x5A5D,
+ 1897: 0x5A5E,
+ 1898: 0x5A5F,
+ 1899: 0x5A60,
+ 1900: 0x5A61,
+ 1901: 0x5A63,
+ 1902: 0x5A64,
+ 1903: 0x5A65,
+ 1904: 0x5A66,
+ 1905: 0x5A68,
+ 1906: 0x5A69,
+ 1907: 0x5A6B,
+ 1908: 0x5A6C,
+ 1909: 0x5A6D,
+ 1910: 0x5A6E,
+ 1911: 0x5A6F,
+ 1912: 0x5A70,
+ 1913: 0x5A71,
+ 1914: 0x5A72,
+ 1915: 0x5A73,
+ 1916: 0x5A78,
+ 1917: 0x5A79,
+ 1918: 0x5A7B,
+ 1919: 0x5A7C,
+ 1920: 0x5A7D,
+ 1921: 0x5A7E,
+ 1922: 0x5A80,
+ 1923: 0x5A81,
+ 1924: 0x5A82,
+ 1925: 0x5A83,
+ 1926: 0x5A84,
+ 1927: 0x5A85,
+ 1928: 0x5A86,
+ 1929: 0x5A87,
+ 1930: 0x5A88,
+ 1931: 0x5A89,
+ 1932: 0x5A8A,
+ 1933: 0x5A8B,
+ 1934: 0x5A8C,
+ 1935: 0x5A8D,
+ 1936: 0x5A8E,
+ 1937: 0x5A8F,
+ 1938: 0x5A90,
+ 1939: 0x5A91,
+ 1940: 0x5A93,
+ 1941: 0x5A94,
+ 1942: 0x5A95,
+ 1943: 0x5A96,
+ 1944: 0x5A97,
+ 1945: 0x5A98,
+ 1946: 0x5A99,
+ 1947: 0x5A9C,
+ 1948: 0x5A9D,
+ 1949: 0x5A9E,
+ 1950: 0x5A9F,
+ 1951: 0x5AA0,
+ 1952: 0x5AA1,
+ 1953: 0x5AA2,
+ 1954: 0x5AA3,
+ 1955: 0x5AA4,
+ 1956: 0x5AA5,
+ 1957: 0x5AA6,
+ 1958: 0x5AA7,
+ 1959: 0x5AA8,
+ 1960: 0x5AA9,
+ 1961: 0x5AAB,
+ 1962: 0x5AAC,
+ 1963: 0x5AAD,
+ 1964: 0x5AAE,
+ 1965: 0x5AAF,
+ 1966: 0x5AB0,
+ 1967: 0x5AB1,
+ 1968: 0x5AB4,
+ 1969: 0x5AB6,
+ 1970: 0x5AB7,
+ 1971: 0x5AB9,
+ 1972: 0x5ABA,
+ 1973: 0x5ABB,
+ 1974: 0x5ABC,
+ 1975: 0x5ABD,
+ 1976: 0x5ABF,
+ 1977: 0x5AC0,
+ 1978: 0x5AC3,
+ 1979: 0x5AC4,
+ 1980: 0x5AC5,
+ 1981: 0x5AC6,
+ 1982: 0x5AC7,
+ 1983: 0x5AC8,
+ 1984: 0x5ACA,
+ 1985: 0x5ACB,
+ 1986: 0x5ACD,
+ 1987: 0x5ACE,
+ 1988: 0x5ACF,
+ 1989: 0x5AD0,
+ 1990: 0x5AD1,
+ 1991: 0x5AD3,
+ 1992: 0x5AD5,
+ 1993: 0x5AD7,
+ 1994: 0x5AD9,
+ 1995: 0x5ADA,
+ 1996: 0x5ADB,
+ 1997: 0x5ADD,
+ 1998: 0x5ADE,
+ 1999: 0x5ADF,
+ 2000: 0x5AE2,
+ 2001: 0x5AE4,
+ 2002: 0x5AE5,
+ 2003: 0x5AE7,
+ 2004: 0x5AE8,
+ 2005: 0x5AEA,
+ 2006: 0x5AEC,
+ 2007: 0x5AED,
+ 2008: 0x5AEE,
+ 2009: 0x5AEF,
+ 2010: 0x5AF0,
+ 2011: 0x5AF2,
+ 2012: 0x5AF3,
+ 2013: 0x5AF4,
+ 2014: 0x5AF5,
+ 2015: 0x5AF6,
+ 2016: 0x5AF7,
+ 2017: 0x5AF8,
+ 2018: 0x5AF9,
+ 2019: 0x5AFA,
+ 2020: 0x5AFB,
+ 2021: 0x5AFC,
+ 2022: 0x5AFD,
+ 2023: 0x5AFE,
+ 2024: 0x5AFF,
+ 2025: 0x5B00,
+ 2026: 0x5B01,
+ 2027: 0x5B02,
+ 2028: 0x5B03,
+ 2029: 0x5B04,
+ 2030: 0x5B05,
+ 2031: 0x5B06,
+ 2032: 0x5B07,
+ 2033: 0x5B08,
+ 2034: 0x5B0A,
+ 2035: 0x5B0B,
+ 2036: 0x5B0C,
+ 2037: 0x5B0D,
+ 2038: 0x5B0E,
+ 2039: 0x5B0F,
+ 2040: 0x5B10,
+ 2041: 0x5B11,
+ 2042: 0x5B12,
+ 2043: 0x5B13,
+ 2044: 0x5B14,
+ 2045: 0x5B15,
+ 2046: 0x5B18,
+ 2047: 0x5B19,
+ 2048: 0x5B1A,
+ 2049: 0x5B1B,
+ 2050: 0x5B1C,
+ 2051: 0x5B1D,
+ 2052: 0x5B1E,
+ 2053: 0x5B1F,
+ 2054: 0x5B20,
+ 2055: 0x5B21,
+ 2056: 0x5B22,
+ 2057: 0x5B23,
+ 2058: 0x5B24,
+ 2059: 0x5B25,
+ 2060: 0x5B26,
+ 2061: 0x5B27,
+ 2062: 0x5B28,
+ 2063: 0x5B29,
+ 2064: 0x5B2A,
+ 2065: 0x5B2B,
+ 2066: 0x5B2C,
+ 2067: 0x5B2D,
+ 2068: 0x5B2E,
+ 2069: 0x5B2F,
+ 2070: 0x5B30,
+ 2071: 0x5B31,
+ 2072: 0x5B33,
+ 2073: 0x5B35,
+ 2074: 0x5B36,
+ 2075: 0x5B38,
+ 2076: 0x5B39,
+ 2077: 0x5B3A,
+ 2078: 0x5B3B,
+ 2079: 0x5B3C,
+ 2080: 0x5B3D,
+ 2081: 0x5B3E,
+ 2082: 0x5B3F,
+ 2083: 0x5B41,
+ 2084: 0x5B42,
+ 2085: 0x5B43,
+ 2086: 0x5B44,
+ 2087: 0x5B45,
+ 2088: 0x5B46,
+ 2089: 0x5B47,
+ 2090: 0x5B48,
+ 2091: 0x5B49,
+ 2092: 0x5B4A,
+ 2093: 0x5B4B,
+ 2094: 0x5B4C,
+ 2095: 0x5B4D,
+ 2096: 0x5B4E,
+ 2097: 0x5B4F,
+ 2098: 0x5B52,
+ 2099: 0x5B56,
+ 2100: 0x5B5E,
+ 2101: 0x5B60,
+ 2102: 0x5B61,
+ 2103: 0x5B67,
+ 2104: 0x5B68,
+ 2105: 0x5B6B,
+ 2106: 0x5B6D,
+ 2107: 0x5B6E,
+ 2108: 0x5B6F,
+ 2109: 0x5B72,
+ 2110: 0x5B74,
+ 2111: 0x5B76,
+ 2112: 0x5B77,
+ 2113: 0x5B78,
+ 2114: 0x5B79,
+ 2115: 0x5B7B,
+ 2116: 0x5B7C,
+ 2117: 0x5B7E,
+ 2118: 0x5B7F,
+ 2119: 0x5B82,
+ 2120: 0x5B86,
+ 2121: 0x5B8A,
+ 2122: 0x5B8D,
+ 2123: 0x5B8E,
+ 2124: 0x5B90,
+ 2125: 0x5B91,
+ 2126: 0x5B92,
+ 2127: 0x5B94,
+ 2128: 0x5B96,
+ 2129: 0x5B9F,
+ 2130: 0x5BA7,
+ 2131: 0x5BA8,
+ 2132: 0x5BA9,
+ 2133: 0x5BAC,
+ 2134: 0x5BAD,
+ 2135: 0x5BAE,
+ 2136: 0x5BAF,
+ 2137: 0x5BB1,
+ 2138: 0x5BB2,
+ 2139: 0x5BB7,
+ 2140: 0x5BBA,
+ 2141: 0x5BBB,
+ 2142: 0x5BBC,
+ 2143: 0x5BC0,
+ 2144: 0x5BC1,
+ 2145: 0x5BC3,
+ 2146: 0x5BC8,
+ 2147: 0x5BC9,
+ 2148: 0x5BCA,
+ 2149: 0x5BCB,
+ 2150: 0x5BCD,
+ 2151: 0x5BCE,
+ 2152: 0x5BCF,
+ 2153: 0x5BD1,
+ 2154: 0x5BD4,
+ 2155: 0x5BD5,
+ 2156: 0x5BD6,
+ 2157: 0x5BD7,
+ 2158: 0x5BD8,
+ 2159: 0x5BD9,
+ 2160: 0x5BDA,
+ 2161: 0x5BDB,
+ 2162: 0x5BDC,
+ 2163: 0x5BE0,
+ 2164: 0x5BE2,
+ 2165: 0x5BE3,
+ 2166: 0x5BE6,
+ 2167: 0x5BE7,
+ 2168: 0x5BE9,
+ 2169: 0x5BEA,
+ 2170: 0x5BEB,
+ 2171: 0x5BEC,
+ 2172: 0x5BED,
+ 2173: 0x5BEF,
+ 2174: 0x5BF1,
+ 2175: 0x5BF2,
+ 2176: 0x5BF3,
+ 2177: 0x5BF4,
+ 2178: 0x5BF5,
+ 2179: 0x5BF6,
+ 2180: 0x5BF7,
+ 2181: 0x5BFD,
+ 2182: 0x5BFE,
+ 2183: 0x5C00,
+ 2184: 0x5C02,
+ 2185: 0x5C03,
+ 2186: 0x5C05,
+ 2187: 0x5C07,
+ 2188: 0x5C08,
+ 2189: 0x5C0B,
+ 2190: 0x5C0C,
+ 2191: 0x5C0D,
+ 2192: 0x5C0E,
+ 2193: 0x5C10,
+ 2194: 0x5C12,
+ 2195: 0x5C13,
+ 2196: 0x5C17,
+ 2197: 0x5C19,
+ 2198: 0x5C1B,
+ 2199: 0x5C1E,
+ 2200: 0x5C1F,
+ 2201: 0x5C20,
+ 2202: 0x5C21,
+ 2203: 0x5C23,
+ 2204: 0x5C26,
+ 2205: 0x5C28,
+ 2206: 0x5C29,
+ 2207: 0x5C2A,
+ 2208: 0x5C2B,
+ 2209: 0x5C2D,
+ 2210: 0x5C2E,
+ 2211: 0x5C2F,
+ 2212: 0x5C30,
+ 2213: 0x5C32,
+ 2214: 0x5C33,
+ 2215: 0x5C35,
+ 2216: 0x5C36,
+ 2217: 0x5C37,
+ 2218: 0x5C43,
+ 2219: 0x5C44,
+ 2220: 0x5C46,
+ 2221: 0x5C47,
+ 2222: 0x5C4C,
+ 2223: 0x5C4D,
+ 2224: 0x5C52,
+ 2225: 0x5C53,
+ 2226: 0x5C54,
+ 2227: 0x5C56,
+ 2228: 0x5C57,
+ 2229: 0x5C58,
+ 2230: 0x5C5A,
+ 2231: 0x5C5B,
+ 2232: 0x5C5C,
+ 2233: 0x5C5D,
+ 2234: 0x5C5F,
+ 2235: 0x5C62,
+ 2236: 0x5C64,
+ 2237: 0x5C67,
+ 2238: 0x5C68,
+ 2239: 0x5C69,
+ 2240: 0x5C6A,
+ 2241: 0x5C6B,
+ 2242: 0x5C6C,
+ 2243: 0x5C6D,
+ 2244: 0x5C70,
+ 2245: 0x5C72,
+ 2246: 0x5C73,
+ 2247: 0x5C74,
+ 2248: 0x5C75,
+ 2249: 0x5C76,
+ 2250: 0x5C77,
+ 2251: 0x5C78,
+ 2252: 0x5C7B,
+ 2253: 0x5C7C,
+ 2254: 0x5C7D,
+ 2255: 0x5C7E,
+ 2256: 0x5C80,
+ 2257: 0x5C83,
+ 2258: 0x5C84,
+ 2259: 0x5C85,
+ 2260: 0x5C86,
+ 2261: 0x5C87,
+ 2262: 0x5C89,
+ 2263: 0x5C8A,
+ 2264: 0x5C8B,
+ 2265: 0x5C8E,
+ 2266: 0x5C8F,
+ 2267: 0x5C92,
+ 2268: 0x5C93,
+ 2269: 0x5C95,
+ 2270: 0x5C9D,
+ 2271: 0x5C9E,
+ 2272: 0x5C9F,
+ 2273: 0x5CA0,
+ 2274: 0x5CA1,
+ 2275: 0x5CA4,
+ 2276: 0x5CA5,
+ 2277: 0x5CA6,
+ 2278: 0x5CA7,
+ 2279: 0x5CA8,
+ 2280: 0x5CAA,
+ 2281: 0x5CAE,
+ 2282: 0x5CAF,
+ 2283: 0x5CB0,
+ 2284: 0x5CB2,
+ 2285: 0x5CB4,
+ 2286: 0x5CB6,
+ 2287: 0x5CB9,
+ 2288: 0x5CBA,
+ 2289: 0x5CBB,
+ 2290: 0x5CBC,
+ 2291: 0x5CBE,
+ 2292: 0x5CC0,
+ 2293: 0x5CC2,
+ 2294: 0x5CC3,
+ 2295: 0x5CC5,
+ 2296: 0x5CC6,
+ 2297: 0x5CC7,
+ 2298: 0x5CC8,
+ 2299: 0x5CC9,
+ 2300: 0x5CCA,
+ 2301: 0x5CCC,
+ 2302: 0x5CCD,
+ 2303: 0x5CCE,
+ 2304: 0x5CCF,
+ 2305: 0x5CD0,
+ 2306: 0x5CD1,
+ 2307: 0x5CD3,
+ 2308: 0x5CD4,
+ 2309: 0x5CD5,
+ 2310: 0x5CD6,
+ 2311: 0x5CD7,
+ 2312: 0x5CD8,
+ 2313: 0x5CDA,
+ 2314: 0x5CDB,
+ 2315: 0x5CDC,
+ 2316: 0x5CDD,
+ 2317: 0x5CDE,
+ 2318: 0x5CDF,
+ 2319: 0x5CE0,
+ 2320: 0x5CE2,
+ 2321: 0x5CE3,
+ 2322: 0x5CE7,
+ 2323: 0x5CE9,
+ 2324: 0x5CEB,
+ 2325: 0x5CEC,
+ 2326: 0x5CEE,
+ 2327: 0x5CEF,
+ 2328: 0x5CF1,
+ 2329: 0x5CF2,
+ 2330: 0x5CF3,
+ 2331: 0x5CF4,
+ 2332: 0x5CF5,
+ 2333: 0x5CF6,
+ 2334: 0x5CF7,
+ 2335: 0x5CF8,
+ 2336: 0x5CF9,
+ 2337: 0x5CFA,
+ 2338: 0x5CFC,
+ 2339: 0x5CFD,
+ 2340: 0x5CFE,
+ 2341: 0x5CFF,
+ 2342: 0x5D00,
+ 2343: 0x5D01,
+ 2344: 0x5D04,
+ 2345: 0x5D05,
+ 2346: 0x5D08,
+ 2347: 0x5D09,
+ 2348: 0x5D0A,
+ 2349: 0x5D0B,
+ 2350: 0x5D0C,
+ 2351: 0x5D0D,
+ 2352: 0x5D0F,
+ 2353: 0x5D10,
+ 2354: 0x5D11,
+ 2355: 0x5D12,
+ 2356: 0x5D13,
+ 2357: 0x5D15,
+ 2358: 0x5D17,
+ 2359: 0x5D18,
+ 2360: 0x5D19,
+ 2361: 0x5D1A,
+ 2362: 0x5D1C,
+ 2363: 0x5D1D,
+ 2364: 0x5D1F,
+ 2365: 0x5D20,
+ 2366: 0x5D21,
+ 2367: 0x5D22,
+ 2368: 0x5D23,
+ 2369: 0x5D25,
+ 2370: 0x5D28,
+ 2371: 0x5D2A,
+ 2372: 0x5D2B,
+ 2373: 0x5D2C,
+ 2374: 0x5D2F,
+ 2375: 0x5D30,
+ 2376: 0x5D31,
+ 2377: 0x5D32,
+ 2378: 0x5D33,
+ 2379: 0x5D35,
+ 2380: 0x5D36,
+ 2381: 0x5D37,
+ 2382: 0x5D38,
+ 2383: 0x5D39,
+ 2384: 0x5D3A,
+ 2385: 0x5D3B,
+ 2386: 0x5D3C,
+ 2387: 0x5D3F,
+ 2388: 0x5D40,
+ 2389: 0x5D41,
+ 2390: 0x5D42,
+ 2391: 0x5D43,
+ 2392: 0x5D44,
+ 2393: 0x5D45,
+ 2394: 0x5D46,
+ 2395: 0x5D48,
+ 2396: 0x5D49,
+ 2397: 0x5D4D,
+ 2398: 0x5D4E,
+ 2399: 0x5D4F,
+ 2400: 0x5D50,
+ 2401: 0x5D51,
+ 2402: 0x5D52,
+ 2403: 0x5D53,
+ 2404: 0x5D54,
+ 2405: 0x5D55,
+ 2406: 0x5D56,
+ 2407: 0x5D57,
+ 2408: 0x5D59,
+ 2409: 0x5D5A,
+ 2410: 0x5D5C,
+ 2411: 0x5D5E,
+ 2412: 0x5D5F,
+ 2413: 0x5D60,
+ 2414: 0x5D61,
+ 2415: 0x5D62,
+ 2416: 0x5D63,
+ 2417: 0x5D64,
+ 2418: 0x5D65,
+ 2419: 0x5D66,
+ 2420: 0x5D67,
+ 2421: 0x5D68,
+ 2422: 0x5D6A,
+ 2423: 0x5D6D,
+ 2424: 0x5D6E,
+ 2425: 0x5D70,
+ 2426: 0x5D71,
+ 2427: 0x5D72,
+ 2428: 0x5D73,
+ 2429: 0x5D75,
+ 2430: 0x5D76,
+ 2431: 0x5D77,
+ 2432: 0x5D78,
+ 2433: 0x5D79,
+ 2434: 0x5D7A,
+ 2435: 0x5D7B,
+ 2436: 0x5D7C,
+ 2437: 0x5D7D,
+ 2438: 0x5D7E,
+ 2439: 0x5D7F,
+ 2440: 0x5D80,
+ 2441: 0x5D81,
+ 2442: 0x5D83,
+ 2443: 0x5D84,
+ 2444: 0x5D85,
+ 2445: 0x5D86,
+ 2446: 0x5D87,
+ 2447: 0x5D88,
+ 2448: 0x5D89,
+ 2449: 0x5D8A,
+ 2450: 0x5D8B,
+ 2451: 0x5D8C,
+ 2452: 0x5D8D,
+ 2453: 0x5D8E,
+ 2454: 0x5D8F,
+ 2455: 0x5D90,
+ 2456: 0x5D91,
+ 2457: 0x5D92,
+ 2458: 0x5D93,
+ 2459: 0x5D94,
+ 2460: 0x5D95,
+ 2461: 0x5D96,
+ 2462: 0x5D97,
+ 2463: 0x5D98,
+ 2464: 0x5D9A,
+ 2465: 0x5D9B,
+ 2466: 0x5D9C,
+ 2467: 0x5D9E,
+ 2468: 0x5D9F,
+ 2469: 0x5DA0,
+ 2470: 0x5DA1,
+ 2471: 0x5DA2,
+ 2472: 0x5DA3,
+ 2473: 0x5DA4,
+ 2474: 0x5DA5,
+ 2475: 0x5DA6,
+ 2476: 0x5DA7,
+ 2477: 0x5DA8,
+ 2478: 0x5DA9,
+ 2479: 0x5DAA,
+ 2480: 0x5DAB,
+ 2481: 0x5DAC,
+ 2482: 0x5DAD,
+ 2483: 0x5DAE,
+ 2484: 0x5DAF,
+ 2485: 0x5DB0,
+ 2486: 0x5DB1,
+ 2487: 0x5DB2,
+ 2488: 0x5DB3,
+ 2489: 0x5DB4,
+ 2490: 0x5DB5,
+ 2491: 0x5DB6,
+ 2492: 0x5DB8,
+ 2493: 0x5DB9,
+ 2494: 0x5DBA,
+ 2495: 0x5DBB,
+ 2496: 0x5DBC,
+ 2497: 0x5DBD,
+ 2498: 0x5DBE,
+ 2499: 0x5DBF,
+ 2500: 0x5DC0,
+ 2501: 0x5DC1,
+ 2502: 0x5DC2,
+ 2503: 0x5DC3,
+ 2504: 0x5DC4,
+ 2505: 0x5DC6,
+ 2506: 0x5DC7,
+ 2507: 0x5DC8,
+ 2508: 0x5DC9,
+ 2509: 0x5DCA,
+ 2510: 0x5DCB,
+ 2511: 0x5DCC,
+ 2512: 0x5DCE,
+ 2513: 0x5DCF,
+ 2514: 0x5DD0,
+ 2515: 0x5DD1,
+ 2516: 0x5DD2,
+ 2517: 0x5DD3,
+ 2518: 0x5DD4,
+ 2519: 0x5DD5,
+ 2520: 0x5DD6,
+ 2521: 0x5DD7,
+ 2522: 0x5DD8,
+ 2523: 0x5DD9,
+ 2524: 0x5DDA,
+ 2525: 0x5DDC,
+ 2526: 0x5DDF,
+ 2527: 0x5DE0,
+ 2528: 0x5DE3,
+ 2529: 0x5DE4,
+ 2530: 0x5DEA,
+ 2531: 0x5DEC,
+ 2532: 0x5DED,
+ 2533: 0x5DF0,
+ 2534: 0x5DF5,
+ 2535: 0x5DF6,
+ 2536: 0x5DF8,
+ 2537: 0x5DF9,
+ 2538: 0x5DFA,
+ 2539: 0x5DFB,
+ 2540: 0x5DFC,
+ 2541: 0x5DFF,
+ 2542: 0x5E00,
+ 2543: 0x5E04,
+ 2544: 0x5E07,
+ 2545: 0x5E09,
+ 2546: 0x5E0A,
+ 2547: 0x5E0B,
+ 2548: 0x5E0D,
+ 2549: 0x5E0E,
+ 2550: 0x5E12,
+ 2551: 0x5E13,
+ 2552: 0x5E17,
+ 2553: 0x5E1E,
+ 2554: 0x5E1F,
+ 2555: 0x5E20,
+ 2556: 0x5E21,
+ 2557: 0x5E22,
+ 2558: 0x5E23,
+ 2559: 0x5E24,
+ 2560: 0x5E25,
+ 2561: 0x5E28,
+ 2562: 0x5E29,
+ 2563: 0x5E2A,
+ 2564: 0x5E2B,
+ 2565: 0x5E2C,
+ 2566: 0x5E2F,
+ 2567: 0x5E30,
+ 2568: 0x5E32,
+ 2569: 0x5E33,
+ 2570: 0x5E34,
+ 2571: 0x5E35,
+ 2572: 0x5E36,
+ 2573: 0x5E39,
+ 2574: 0x5E3A,
+ 2575: 0x5E3E,
+ 2576: 0x5E3F,
+ 2577: 0x5E40,
+ 2578: 0x5E41,
+ 2579: 0x5E43,
+ 2580: 0x5E46,
+ 2581: 0x5E47,
+ 2582: 0x5E48,
+ 2583: 0x5E49,
+ 2584: 0x5E4A,
+ 2585: 0x5E4B,
+ 2586: 0x5E4D,
+ 2587: 0x5E4E,
+ 2588: 0x5E4F,
+ 2589: 0x5E50,
+ 2590: 0x5E51,
+ 2591: 0x5E52,
+ 2592: 0x5E53,
+ 2593: 0x5E56,
+ 2594: 0x5E57,
+ 2595: 0x5E58,
+ 2596: 0x5E59,
+ 2597: 0x5E5A,
+ 2598: 0x5E5C,
+ 2599: 0x5E5D,
+ 2600: 0x5E5F,
+ 2601: 0x5E60,
+ 2602: 0x5E63,
+ 2603: 0x5E64,
+ 2604: 0x5E65,
+ 2605: 0x5E66,
+ 2606: 0x5E67,
+ 2607: 0x5E68,
+ 2608: 0x5E69,
+ 2609: 0x5E6A,
+ 2610: 0x5E6B,
+ 2611: 0x5E6C,
+ 2612: 0x5E6D,
+ 2613: 0x5E6E,
+ 2614: 0x5E6F,
+ 2615: 0x5E70,
+ 2616: 0x5E71,
+ 2617: 0x5E75,
+ 2618: 0x5E77,
+ 2619: 0x5E79,
+ 2620: 0x5E7E,
+ 2621: 0x5E81,
+ 2622: 0x5E82,
+ 2623: 0x5E83,
+ 2624: 0x5E85,
+ 2625: 0x5E88,
+ 2626: 0x5E89,
+ 2627: 0x5E8C,
+ 2628: 0x5E8D,
+ 2629: 0x5E8E,
+ 2630: 0x5E92,
+ 2631: 0x5E98,
+ 2632: 0x5E9B,
+ 2633: 0x5E9D,
+ 2634: 0x5EA1,
+ 2635: 0x5EA2,
+ 2636: 0x5EA3,
+ 2637: 0x5EA4,
+ 2638: 0x5EA8,
+ 2639: 0x5EA9,
+ 2640: 0x5EAA,
+ 2641: 0x5EAB,
+ 2642: 0x5EAC,
+ 2643: 0x5EAE,
+ 2644: 0x5EAF,
+ 2645: 0x5EB0,
+ 2646: 0x5EB1,
+ 2647: 0x5EB2,
+ 2648: 0x5EB4,
+ 2649: 0x5EBA,
+ 2650: 0x5EBB,
+ 2651: 0x5EBC,
+ 2652: 0x5EBD,
+ 2653: 0x5EBF,
+ 2654: 0x5EC0,
+ 2655: 0x5EC1,
+ 2656: 0x5EC2,
+ 2657: 0x5EC3,
+ 2658: 0x5EC4,
+ 2659: 0x5EC5,
+ 2660: 0x5EC6,
+ 2661: 0x5EC7,
+ 2662: 0x5EC8,
+ 2663: 0x5ECB,
+ 2664: 0x5ECC,
+ 2665: 0x5ECD,
+ 2666: 0x5ECE,
+ 2667: 0x5ECF,
+ 2668: 0x5ED0,
+ 2669: 0x5ED4,
+ 2670: 0x5ED5,
+ 2671: 0x5ED7,
+ 2672: 0x5ED8,
+ 2673: 0x5ED9,
+ 2674: 0x5EDA,
+ 2675: 0x5EDC,
+ 2676: 0x5EDD,
+ 2677: 0x5EDE,
+ 2678: 0x5EDF,
+ 2679: 0x5EE0,
+ 2680: 0x5EE1,
+ 2681: 0x5EE2,
+ 2682: 0x5EE3,
+ 2683: 0x5EE4,
+ 2684: 0x5EE5,
+ 2685: 0x5EE6,
+ 2686: 0x5EE7,
+ 2687: 0x5EE9,
+ 2688: 0x5EEB,
+ 2689: 0x5EEC,
+ 2690: 0x5EED,
+ 2691: 0x5EEE,
+ 2692: 0x5EEF,
+ 2693: 0x5EF0,
+ 2694: 0x5EF1,
+ 2695: 0x5EF2,
+ 2696: 0x5EF3,
+ 2697: 0x5EF5,
+ 2698: 0x5EF8,
+ 2699: 0x5EF9,
+ 2700: 0x5EFB,
+ 2701: 0x5EFC,
+ 2702: 0x5EFD,
+ 2703: 0x5F05,
+ 2704: 0x5F06,
+ 2705: 0x5F07,
+ 2706: 0x5F09,
+ 2707: 0x5F0C,
+ 2708: 0x5F0D,
+ 2709: 0x5F0E,
+ 2710: 0x5F10,
+ 2711: 0x5F12,
+ 2712: 0x5F14,
+ 2713: 0x5F16,
+ 2714: 0x5F19,
+ 2715: 0x5F1A,
+ 2716: 0x5F1C,
+ 2717: 0x5F1D,
+ 2718: 0x5F1E,
+ 2719: 0x5F21,
+ 2720: 0x5F22,
+ 2721: 0x5F23,
+ 2722: 0x5F24,
+ 2723: 0x5F28,
+ 2724: 0x5F2B,
+ 2725: 0x5F2C,
+ 2726: 0x5F2E,
+ 2727: 0x5F30,
+ 2728: 0x5F32,
+ 2729: 0x5F33,
+ 2730: 0x5F34,
+ 2731: 0x5F35,
+ 2732: 0x5F36,
+ 2733: 0x5F37,
+ 2734: 0x5F38,
+ 2735: 0x5F3B,
+ 2736: 0x5F3D,
+ 2737: 0x5F3E,
+ 2738: 0x5F3F,
+ 2739: 0x5F41,
+ 2740: 0x5F42,
+ 2741: 0x5F43,
+ 2742: 0x5F44,
+ 2743: 0x5F45,
+ 2744: 0x5F46,
+ 2745: 0x5F47,
+ 2746: 0x5F48,
+ 2747: 0x5F49,
+ 2748: 0x5F4A,
+ 2749: 0x5F4B,
+ 2750: 0x5F4C,
+ 2751: 0x5F4D,
+ 2752: 0x5F4E,
+ 2753: 0x5F4F,
+ 2754: 0x5F51,
+ 2755: 0x5F54,
+ 2756: 0x5F59,
+ 2757: 0x5F5A,
+ 2758: 0x5F5B,
+ 2759: 0x5F5C,
+ 2760: 0x5F5E,
+ 2761: 0x5F5F,
+ 2762: 0x5F60,
+ 2763: 0x5F63,
+ 2764: 0x5F65,
+ 2765: 0x5F67,
+ 2766: 0x5F68,
+ 2767: 0x5F6B,
+ 2768: 0x5F6E,
+ 2769: 0x5F6F,
+ 2770: 0x5F72,
+ 2771: 0x5F74,
+ 2772: 0x5F75,
+ 2773: 0x5F76,
+ 2774: 0x5F78,
+ 2775: 0x5F7A,
+ 2776: 0x5F7D,
+ 2777: 0x5F7E,
+ 2778: 0x5F7F,
+ 2779: 0x5F83,
+ 2780: 0x5F86,
+ 2781: 0x5F8D,
+ 2782: 0x5F8E,
+ 2783: 0x5F8F,
+ 2784: 0x5F91,
+ 2785: 0x5F93,
+ 2786: 0x5F94,
+ 2787: 0x5F96,
+ 2788: 0x5F9A,
+ 2789: 0x5F9B,
+ 2790: 0x5F9D,
+ 2791: 0x5F9E,
+ 2792: 0x5F9F,
+ 2793: 0x5FA0,
+ 2794: 0x5FA2,
+ 2795: 0x5FA3,
+ 2796: 0x5FA4,
+ 2797: 0x5FA5,
+ 2798: 0x5FA6,
+ 2799: 0x5FA7,
+ 2800: 0x5FA9,
+ 2801: 0x5FAB,
+ 2802: 0x5FAC,
+ 2803: 0x5FAF,
+ 2804: 0x5FB0,
+ 2805: 0x5FB1,
+ 2806: 0x5FB2,
+ 2807: 0x5FB3,
+ 2808: 0x5FB4,
+ 2809: 0x5FB6,
+ 2810: 0x5FB8,
+ 2811: 0x5FB9,
+ 2812: 0x5FBA,
+ 2813: 0x5FBB,
+ 2814: 0x5FBE,
+ 2815: 0x5FBF,
+ 2816: 0x5FC0,
+ 2817: 0x5FC1,
+ 2818: 0x5FC2,
+ 2819: 0x5FC7,
+ 2820: 0x5FC8,
+ 2821: 0x5FCA,
+ 2822: 0x5FCB,
+ 2823: 0x5FCE,
+ 2824: 0x5FD3,
+ 2825: 0x5FD4,
+ 2826: 0x5FD5,
+ 2827: 0x5FDA,
+ 2828: 0x5FDB,
+ 2829: 0x5FDC,
+ 2830: 0x5FDE,
+ 2831: 0x5FDF,
+ 2832: 0x5FE2,
+ 2833: 0x5FE3,
+ 2834: 0x5FE5,
+ 2835: 0x5FE6,
+ 2836: 0x5FE8,
+ 2837: 0x5FE9,
+ 2838: 0x5FEC,
+ 2839: 0x5FEF,
+ 2840: 0x5FF0,
+ 2841: 0x5FF2,
+ 2842: 0x5FF3,
+ 2843: 0x5FF4,
+ 2844: 0x5FF6,
+ 2845: 0x5FF7,
+ 2846: 0x5FF9,
+ 2847: 0x5FFA,
+ 2848: 0x5FFC,
+ 2849: 0x6007,
+ 2850: 0x6008,
+ 2851: 0x6009,
+ 2852: 0x600B,
+ 2853: 0x600C,
+ 2854: 0x6010,
+ 2855: 0x6011,
+ 2856: 0x6013,
+ 2857: 0x6017,
+ 2858: 0x6018,
+ 2859: 0x601A,
+ 2860: 0x601E,
+ 2861: 0x601F,
+ 2862: 0x6022,
+ 2863: 0x6023,
+ 2864: 0x6024,
+ 2865: 0x602C,
+ 2866: 0x602D,
+ 2867: 0x602E,
+ 2868: 0x6030,
+ 2869: 0x6031,
+ 2870: 0x6032,
+ 2871: 0x6033,
+ 2872: 0x6034,
+ 2873: 0x6036,
+ 2874: 0x6037,
+ 2875: 0x6038,
+ 2876: 0x6039,
+ 2877: 0x603A,
+ 2878: 0x603D,
+ 2879: 0x603E,
+ 2880: 0x6040,
+ 2881: 0x6044,
+ 2882: 0x6045,
+ 2883: 0x6046,
+ 2884: 0x6047,
+ 2885: 0x6048,
+ 2886: 0x6049,
+ 2887: 0x604A,
+ 2888: 0x604C,
+ 2889: 0x604E,
+ 2890: 0x604F,
+ 2891: 0x6051,
+ 2892: 0x6053,
+ 2893: 0x6054,
+ 2894: 0x6056,
+ 2895: 0x6057,
+ 2896: 0x6058,
+ 2897: 0x605B,
+ 2898: 0x605C,
+ 2899: 0x605E,
+ 2900: 0x605F,
+ 2901: 0x6060,
+ 2902: 0x6061,
+ 2903: 0x6065,
+ 2904: 0x6066,
+ 2905: 0x606E,
+ 2906: 0x6071,
+ 2907: 0x6072,
+ 2908: 0x6074,
+ 2909: 0x6075,
+ 2910: 0x6077,
+ 2911: 0x607E,
+ 2912: 0x6080,
+ 2913: 0x6081,
+ 2914: 0x6082,
+ 2915: 0x6085,
+ 2916: 0x6086,
+ 2917: 0x6087,
+ 2918: 0x6088,
+ 2919: 0x608A,
+ 2920: 0x608B,
+ 2921: 0x608E,
+ 2922: 0x608F,
+ 2923: 0x6090,
+ 2924: 0x6091,
+ 2925: 0x6093,
+ 2926: 0x6095,
+ 2927: 0x6097,
+ 2928: 0x6098,
+ 2929: 0x6099,
+ 2930: 0x609C,
+ 2931: 0x609E,
+ 2932: 0x60A1,
+ 2933: 0x60A2,
+ 2934: 0x60A4,
+ 2935: 0x60A5,
+ 2936: 0x60A7,
+ 2937: 0x60A9,
+ 2938: 0x60AA,
+ 2939: 0x60AE,
+ 2940: 0x60B0,
+ 2941: 0x60B3,
+ 2942: 0x60B5,
+ 2943: 0x60B6,
+ 2944: 0x60B7,
+ 2945: 0x60B9,
+ 2946: 0x60BA,
+ 2947: 0x60BD,
+ 2948: 0x60BE,
+ 2949: 0x60BF,
+ 2950: 0x60C0,
+ 2951: 0x60C1,
+ 2952: 0x60C2,
+ 2953: 0x60C3,
+ 2954: 0x60C4,
+ 2955: 0x60C7,
+ 2956: 0x60C8,
+ 2957: 0x60C9,
+ 2958: 0x60CC,
+ 2959: 0x60CD,
+ 2960: 0x60CE,
+ 2961: 0x60CF,
+ 2962: 0x60D0,
+ 2963: 0x60D2,
+ 2964: 0x60D3,
+ 2965: 0x60D4,
+ 2966: 0x60D6,
+ 2967: 0x60D7,
+ 2968: 0x60D9,
+ 2969: 0x60DB,
+ 2970: 0x60DE,
+ 2971: 0x60E1,
+ 2972: 0x60E2,
+ 2973: 0x60E3,
+ 2974: 0x60E4,
+ 2975: 0x60E5,
+ 2976: 0x60EA,
+ 2977: 0x60F1,
+ 2978: 0x60F2,
+ 2979: 0x60F5,
+ 2980: 0x60F7,
+ 2981: 0x60F8,
+ 2982: 0x60FB,
+ 2983: 0x60FC,
+ 2984: 0x60FD,
+ 2985: 0x60FE,
+ 2986: 0x60FF,
+ 2987: 0x6102,
+ 2988: 0x6103,
+ 2989: 0x6104,
+ 2990: 0x6105,
+ 2991: 0x6107,
+ 2992: 0x610A,
+ 2993: 0x610B,
+ 2994: 0x610C,
+ 2995: 0x6110,
+ 2996: 0x6111,
+ 2997: 0x6112,
+ 2998: 0x6113,
+ 2999: 0x6114,
+ 3000: 0x6116,
+ 3001: 0x6117,
+ 3002: 0x6118,
+ 3003: 0x6119,
+ 3004: 0x611B,
+ 3005: 0x611C,
+ 3006: 0x611D,
+ 3007: 0x611E,
+ 3008: 0x6121,
+ 3009: 0x6122,
+ 3010: 0x6125,
+ 3011: 0x6128,
+ 3012: 0x6129,
+ 3013: 0x612A,
+ 3014: 0x612C,
+ 3015: 0x612D,
+ 3016: 0x612E,
+ 3017: 0x612F,
+ 3018: 0x6130,
+ 3019: 0x6131,
+ 3020: 0x6132,
+ 3021: 0x6133,
+ 3022: 0x6134,
+ 3023: 0x6135,
+ 3024: 0x6136,
+ 3025: 0x6137,
+ 3026: 0x6138,
+ 3027: 0x6139,
+ 3028: 0x613A,
+ 3029: 0x613B,
+ 3030: 0x613C,
+ 3031: 0x613D,
+ 3032: 0x613E,
+ 3033: 0x6140,
+ 3034: 0x6141,
+ 3035: 0x6142,
+ 3036: 0x6143,
+ 3037: 0x6144,
+ 3038: 0x6145,
+ 3039: 0x6146,
+ 3040: 0x6147,
+ 3041: 0x6149,
+ 3042: 0x614B,
+ 3043: 0x614D,
+ 3044: 0x614F,
+ 3045: 0x6150,
+ 3046: 0x6152,
+ 3047: 0x6153,
+ 3048: 0x6154,
+ 3049: 0x6156,
+ 3050: 0x6157,
+ 3051: 0x6158,
+ 3052: 0x6159,
+ 3053: 0x615A,
+ 3054: 0x615B,
+ 3055: 0x615C,
+ 3056: 0x615E,
+ 3057: 0x615F,
+ 3058: 0x6160,
+ 3059: 0x6161,
+ 3060: 0x6163,
+ 3061: 0x6164,
+ 3062: 0x6165,
+ 3063: 0x6166,
+ 3064: 0x6169,
+ 3065: 0x616A,
+ 3066: 0x616B,
+ 3067: 0x616C,
+ 3068: 0x616D,
+ 3069: 0x616E,
+ 3070: 0x616F,
+ 3071: 0x6171,
+ 3072: 0x6172,
+ 3073: 0x6173,
+ 3074: 0x6174,
+ 3075: 0x6176,
+ 3076: 0x6178,
+ 3077: 0x6179,
+ 3078: 0x617A,
+ 3079: 0x617B,
+ 3080: 0x617C,
+ 3081: 0x617D,
+ 3082: 0x617E,
+ 3083: 0x617F,
+ 3084: 0x6180,
+ 3085: 0x6181,
+ 3086: 0x6182,
+ 3087: 0x6183,
+ 3088: 0x6184,
+ 3089: 0x6185,
+ 3090: 0x6186,
+ 3091: 0x6187,
+ 3092: 0x6188,
+ 3093: 0x6189,
+ 3094: 0x618A,
+ 3095: 0x618C,
+ 3096: 0x618D,
+ 3097: 0x618F,
+ 3098: 0x6190,
+ 3099: 0x6191,
+ 3100: 0x6192,
+ 3101: 0x6193,
+ 3102: 0x6195,
+ 3103: 0x6196,
+ 3104: 0x6197,
+ 3105: 0x6198,
+ 3106: 0x6199,
+ 3107: 0x619A,
+ 3108: 0x619B,
+ 3109: 0x619C,
+ 3110: 0x619E,
+ 3111: 0x619F,
+ 3112: 0x61A0,
+ 3113: 0x61A1,
+ 3114: 0x61A2,
+ 3115: 0x61A3,
+ 3116: 0x61A4,
+ 3117: 0x61A5,
+ 3118: 0x61A6,
+ 3119: 0x61AA,
+ 3120: 0x61AB,
+ 3121: 0x61AD,
+ 3122: 0x61AE,
+ 3123: 0x61AF,
+ 3124: 0x61B0,
+ 3125: 0x61B1,
+ 3126: 0x61B2,
+ 3127: 0x61B3,
+ 3128: 0x61B4,
+ 3129: 0x61B5,
+ 3130: 0x61B6,
+ 3131: 0x61B8,
+ 3132: 0x61B9,
+ 3133: 0x61BA,
+ 3134: 0x61BB,
+ 3135: 0x61BC,
+ 3136: 0x61BD,
+ 3137: 0x61BF,
+ 3138: 0x61C0,
+ 3139: 0x61C1,
+ 3140: 0x61C3,
+ 3141: 0x61C4,
+ 3142: 0x61C5,
+ 3143: 0x61C6,
+ 3144: 0x61C7,
+ 3145: 0x61C9,
+ 3146: 0x61CC,
+ 3147: 0x61CD,
+ 3148: 0x61CE,
+ 3149: 0x61CF,
+ 3150: 0x61D0,
+ 3151: 0x61D3,
+ 3152: 0x61D5,
+ 3153: 0x61D6,
+ 3154: 0x61D7,
+ 3155: 0x61D8,
+ 3156: 0x61D9,
+ 3157: 0x61DA,
+ 3158: 0x61DB,
+ 3159: 0x61DC,
+ 3160: 0x61DD,
+ 3161: 0x61DE,
+ 3162: 0x61DF,
+ 3163: 0x61E0,
+ 3164: 0x61E1,
+ 3165: 0x61E2,
+ 3166: 0x61E3,
+ 3167: 0x61E4,
+ 3168: 0x61E5,
+ 3169: 0x61E7,
+ 3170: 0x61E8,
+ 3171: 0x61E9,
+ 3172: 0x61EA,
+ 3173: 0x61EB,
+ 3174: 0x61EC,
+ 3175: 0x61ED,
+ 3176: 0x61EE,
+ 3177: 0x61EF,
+ 3178: 0x61F0,
+ 3179: 0x61F1,
+ 3180: 0x61F2,
+ 3181: 0x61F3,
+ 3182: 0x61F4,
+ 3183: 0x61F6,
+ 3184: 0x61F7,
+ 3185: 0x61F8,
+ 3186: 0x61F9,
+ 3187: 0x61FA,
+ 3188: 0x61FB,
+ 3189: 0x61FC,
+ 3190: 0x61FD,
+ 3191: 0x61FE,
+ 3192: 0x6200,
+ 3193: 0x6201,
+ 3194: 0x6202,
+ 3195: 0x6203,
+ 3196: 0x6204,
+ 3197: 0x6205,
+ 3198: 0x6207,
+ 3199: 0x6209,
+ 3200: 0x6213,
+ 3201: 0x6214,
+ 3202: 0x6219,
+ 3203: 0x621C,
+ 3204: 0x621D,
+ 3205: 0x621E,
+ 3206: 0x6220,
+ 3207: 0x6223,
+ 3208: 0x6226,
+ 3209: 0x6227,
+ 3210: 0x6228,
+ 3211: 0x6229,
+ 3212: 0x622B,
+ 3213: 0x622D,
+ 3214: 0x622F,
+ 3215: 0x6230,
+ 3216: 0x6231,
+ 3217: 0x6232,
+ 3218: 0x6235,
+ 3219: 0x6236,
+ 3220: 0x6238,
+ 3221: 0x6239,
+ 3222: 0x623A,
+ 3223: 0x623B,
+ 3224: 0x623C,
+ 3225: 0x6242,
+ 3226: 0x6244,
+ 3227: 0x6245,
+ 3228: 0x6246,
+ 3229: 0x624A,
+ 3230: 0x624F,
+ 3231: 0x6250,
+ 3232: 0x6255,
+ 3233: 0x6256,
+ 3234: 0x6257,
+ 3235: 0x6259,
+ 3236: 0x625A,
+ 3237: 0x625C,
+ 3238: 0x625D,
+ 3239: 0x625E,
+ 3240: 0x625F,
+ 3241: 0x6260,
+ 3242: 0x6261,
+ 3243: 0x6262,
+ 3244: 0x6264,
+ 3245: 0x6265,
+ 3246: 0x6268,
+ 3247: 0x6271,
+ 3248: 0x6272,
+ 3249: 0x6274,
+ 3250: 0x6275,
+ 3251: 0x6277,
+ 3252: 0x6278,
+ 3253: 0x627A,
+ 3254: 0x627B,
+ 3255: 0x627D,
+ 3256: 0x6281,
+ 3257: 0x6282,
+ 3258: 0x6283,
+ 3259: 0x6285,
+ 3260: 0x6286,
+ 3261: 0x6287,
+ 3262: 0x6288,
+ 3263: 0x628B,
+ 3264: 0x628C,
+ 3265: 0x628D,
+ 3266: 0x628E,
+ 3267: 0x628F,
+ 3268: 0x6290,
+ 3269: 0x6294,
+ 3270: 0x6299,
+ 3271: 0x629C,
+ 3272: 0x629D,
+ 3273: 0x629E,
+ 3274: 0x62A3,
+ 3275: 0x62A6,
+ 3276: 0x62A7,
+ 3277: 0x62A9,
+ 3278: 0x62AA,
+ 3279: 0x62AD,
+ 3280: 0x62AE,
+ 3281: 0x62AF,
+ 3282: 0x62B0,
+ 3283: 0x62B2,
+ 3284: 0x62B3,
+ 3285: 0x62B4,
+ 3286: 0x62B6,
+ 3287: 0x62B7,
+ 3288: 0x62B8,
+ 3289: 0x62BA,
+ 3290: 0x62BE,
+ 3291: 0x62C0,
+ 3292: 0x62C1,
+ 3293: 0x62C3,
+ 3294: 0x62CB,
+ 3295: 0x62CF,
+ 3296: 0x62D1,
+ 3297: 0x62D5,
+ 3298: 0x62DD,
+ 3299: 0x62DE,
+ 3300: 0x62E0,
+ 3301: 0x62E1,
+ 3302: 0x62E4,
+ 3303: 0x62EA,
+ 3304: 0x62EB,
+ 3305: 0x62F0,
+ 3306: 0x62F2,
+ 3307: 0x62F5,
+ 3308: 0x62F8,
+ 3309: 0x62F9,
+ 3310: 0x62FA,
+ 3311: 0x62FB,
+ 3312: 0x6300,
+ 3313: 0x6303,
+ 3314: 0x6304,
+ 3315: 0x6305,
+ 3316: 0x6306,
+ 3317: 0x630A,
+ 3318: 0x630B,
+ 3319: 0x630C,
+ 3320: 0x630D,
+ 3321: 0x630F,
+ 3322: 0x6310,
+ 3323: 0x6312,
+ 3324: 0x6313,
+ 3325: 0x6314,
+ 3326: 0x6315,
+ 3327: 0x6317,
+ 3328: 0x6318,
+ 3329: 0x6319,
+ 3330: 0x631C,
+ 3331: 0x6326,
+ 3332: 0x6327,
+ 3333: 0x6329,
+ 3334: 0x632C,
+ 3335: 0x632D,
+ 3336: 0x632E,
+ 3337: 0x6330,
+ 3338: 0x6331,
+ 3339: 0x6333,
+ 3340: 0x6334,
+ 3341: 0x6335,
+ 3342: 0x6336,
+ 3343: 0x6337,
+ 3344: 0x6338,
+ 3345: 0x633B,
+ 3346: 0x633C,
+ 3347: 0x633E,
+ 3348: 0x633F,
+ 3349: 0x6340,
+ 3350: 0x6341,
+ 3351: 0x6344,
+ 3352: 0x6347,
+ 3353: 0x6348,
+ 3354: 0x634A,
+ 3355: 0x6351,
+ 3356: 0x6352,
+ 3357: 0x6353,
+ 3358: 0x6354,
+ 3359: 0x6356,
+ 3360: 0x6357,
+ 3361: 0x6358,
+ 3362: 0x6359,
+ 3363: 0x635A,
+ 3364: 0x635B,
+ 3365: 0x635C,
+ 3366: 0x635D,
+ 3367: 0x6360,
+ 3368: 0x6364,
+ 3369: 0x6365,
+ 3370: 0x6366,
+ 3371: 0x6368,
+ 3372: 0x636A,
+ 3373: 0x636B,
+ 3374: 0x636C,
+ 3375: 0x636F,
+ 3376: 0x6370,
+ 3377: 0x6372,
+ 3378: 0x6373,
+ 3379: 0x6374,
+ 3380: 0x6375,
+ 3381: 0x6378,
+ 3382: 0x6379,
+ 3383: 0x637C,
+ 3384: 0x637D,
+ 3385: 0x637E,
+ 3386: 0x637F,
+ 3387: 0x6381,
+ 3388: 0x6383,
+ 3389: 0x6384,
+ 3390: 0x6385,
+ 3391: 0x6386,
+ 3392: 0x638B,
+ 3393: 0x638D,
+ 3394: 0x6391,
+ 3395: 0x6393,
+ 3396: 0x6394,
+ 3397: 0x6395,
+ 3398: 0x6397,
+ 3399: 0x6399,
+ 3400: 0x639A,
+ 3401: 0x639B,
+ 3402: 0x639C,
+ 3403: 0x639D,
+ 3404: 0x639E,
+ 3405: 0x639F,
+ 3406: 0x63A1,
+ 3407: 0x63A4,
+ 3408: 0x63A6,
+ 3409: 0x63AB,
+ 3410: 0x63AF,
+ 3411: 0x63B1,
+ 3412: 0x63B2,
+ 3413: 0x63B5,
+ 3414: 0x63B6,
+ 3415: 0x63B9,
+ 3416: 0x63BB,
+ 3417: 0x63BD,
+ 3418: 0x63BF,
+ 3419: 0x63C0,
+ 3420: 0x63C1,
+ 3421: 0x63C2,
+ 3422: 0x63C3,
+ 3423: 0x63C5,
+ 3424: 0x63C7,
+ 3425: 0x63C8,
+ 3426: 0x63CA,
+ 3427: 0x63CB,
+ 3428: 0x63CC,
+ 3429: 0x63D1,
+ 3430: 0x63D3,
+ 3431: 0x63D4,
+ 3432: 0x63D5,
+ 3433: 0x63D7,
+ 3434: 0x63D8,
+ 3435: 0x63D9,
+ 3436: 0x63DA,
+ 3437: 0x63DB,
+ 3438: 0x63DC,
+ 3439: 0x63DD,
+ 3440: 0x63DF,
+ 3441: 0x63E2,
+ 3442: 0x63E4,
+ 3443: 0x63E5,
+ 3444: 0x63E6,
+ 3445: 0x63E7,
+ 3446: 0x63E8,
+ 3447: 0x63EB,
+ 3448: 0x63EC,
+ 3449: 0x63EE,
+ 3450: 0x63EF,
+ 3451: 0x63F0,
+ 3452: 0x63F1,
+ 3453: 0x63F3,
+ 3454: 0x63F5,
+ 3455: 0x63F7,
+ 3456: 0x63F9,
+ 3457: 0x63FA,
+ 3458: 0x63FB,
+ 3459: 0x63FC,
+ 3460: 0x63FE,
+ 3461: 0x6403,
+ 3462: 0x6404,
+ 3463: 0x6406,
+ 3464: 0x6407,
+ 3465: 0x6408,
+ 3466: 0x6409,
+ 3467: 0x640A,
+ 3468: 0x640D,
+ 3469: 0x640E,
+ 3470: 0x6411,
+ 3471: 0x6412,
+ 3472: 0x6415,
+ 3473: 0x6416,
+ 3474: 0x6417,
+ 3475: 0x6418,
+ 3476: 0x6419,
+ 3477: 0x641A,
+ 3478: 0x641D,
+ 3479: 0x641F,
+ 3480: 0x6422,
+ 3481: 0x6423,
+ 3482: 0x6424,
+ 3483: 0x6425,
+ 3484: 0x6427,
+ 3485: 0x6428,
+ 3486: 0x6429,
+ 3487: 0x642B,
+ 3488: 0x642E,
+ 3489: 0x642F,
+ 3490: 0x6430,
+ 3491: 0x6431,
+ 3492: 0x6432,
+ 3493: 0x6433,
+ 3494: 0x6435,
+ 3495: 0x6436,
+ 3496: 0x6437,
+ 3497: 0x6438,
+ 3498: 0x6439,
+ 3499: 0x643B,
+ 3500: 0x643C,
+ 3501: 0x643E,
+ 3502: 0x6440,
+ 3503: 0x6442,
+ 3504: 0x6443,
+ 3505: 0x6449,
+ 3506: 0x644B,
+ 3507: 0x644C,
+ 3508: 0x644D,
+ 3509: 0x644E,
+ 3510: 0x644F,
+ 3511: 0x6450,
+ 3512: 0x6451,
+ 3513: 0x6453,
+ 3514: 0x6455,
+ 3515: 0x6456,
+ 3516: 0x6457,
+ 3517: 0x6459,
+ 3518: 0x645A,
+ 3519: 0x645B,
+ 3520: 0x645C,
+ 3521: 0x645D,
+ 3522: 0x645F,
+ 3523: 0x6460,
+ 3524: 0x6461,
+ 3525: 0x6462,
+ 3526: 0x6463,
+ 3527: 0x6464,
+ 3528: 0x6465,
+ 3529: 0x6466,
+ 3530: 0x6468,
+ 3531: 0x646A,
+ 3532: 0x646B,
+ 3533: 0x646C,
+ 3534: 0x646E,
+ 3535: 0x646F,
+ 3536: 0x6470,
+ 3537: 0x6471,
+ 3538: 0x6472,
+ 3539: 0x6473,
+ 3540: 0x6474,
+ 3541: 0x6475,
+ 3542: 0x6476,
+ 3543: 0x6477,
+ 3544: 0x647B,
+ 3545: 0x647C,
+ 3546: 0x647D,
+ 3547: 0x647E,
+ 3548: 0x647F,
+ 3549: 0x6480,
+ 3550: 0x6481,
+ 3551: 0x6483,
+ 3552: 0x6486,
+ 3553: 0x6488,
+ 3554: 0x6489,
+ 3555: 0x648A,
+ 3556: 0x648B,
+ 3557: 0x648C,
+ 3558: 0x648D,
+ 3559: 0x648E,
+ 3560: 0x648F,
+ 3561: 0x6490,
+ 3562: 0x6493,
+ 3563: 0x6494,
+ 3564: 0x6497,
+ 3565: 0x6498,
+ 3566: 0x649A,
+ 3567: 0x649B,
+ 3568: 0x649C,
+ 3569: 0x649D,
+ 3570: 0x649F,
+ 3571: 0x64A0,
+ 3572: 0x64A1,
+ 3573: 0x64A2,
+ 3574: 0x64A3,
+ 3575: 0x64A5,
+ 3576: 0x64A6,
+ 3577: 0x64A7,
+ 3578: 0x64A8,
+ 3579: 0x64AA,
+ 3580: 0x64AB,
+ 3581: 0x64AF,
+ 3582: 0x64B1,
+ 3583: 0x64B2,
+ 3584: 0x64B3,
+ 3585: 0x64B4,
+ 3586: 0x64B6,
+ 3587: 0x64B9,
+ 3588: 0x64BB,
+ 3589: 0x64BD,
+ 3590: 0x64BE,
+ 3591: 0x64BF,
+ 3592: 0x64C1,
+ 3593: 0x64C3,
+ 3594: 0x64C4,
+ 3595: 0x64C6,
+ 3596: 0x64C7,
+ 3597: 0x64C8,
+ 3598: 0x64C9,
+ 3599: 0x64CA,
+ 3600: 0x64CB,
+ 3601: 0x64CC,
+ 3602: 0x64CF,
+ 3603: 0x64D1,
+ 3604: 0x64D3,
+ 3605: 0x64D4,
+ 3606: 0x64D5,
+ 3607: 0x64D6,
+ 3608: 0x64D9,
+ 3609: 0x64DA,
+ 3610: 0x64DB,
+ 3611: 0x64DC,
+ 3612: 0x64DD,
+ 3613: 0x64DF,
+ 3614: 0x64E0,
+ 3615: 0x64E1,
+ 3616: 0x64E3,
+ 3617: 0x64E5,
+ 3618: 0x64E7,
+ 3619: 0x64E8,
+ 3620: 0x64E9,
+ 3621: 0x64EA,
+ 3622: 0x64EB,
+ 3623: 0x64EC,
+ 3624: 0x64ED,
+ 3625: 0x64EE,
+ 3626: 0x64EF,
+ 3627: 0x64F0,
+ 3628: 0x64F1,
+ 3629: 0x64F2,
+ 3630: 0x64F3,
+ 3631: 0x64F4,
+ 3632: 0x64F5,
+ 3633: 0x64F6,
+ 3634: 0x64F7,
+ 3635: 0x64F8,
+ 3636: 0x64F9,
+ 3637: 0x64FA,
+ 3638: 0x64FB,
+ 3639: 0x64FC,
+ 3640: 0x64FD,
+ 3641: 0x64FE,
+ 3642: 0x64FF,
+ 3643: 0x6501,
+ 3644: 0x6502,
+ 3645: 0x6503,
+ 3646: 0x6504,
+ 3647: 0x6505,
+ 3648: 0x6506,
+ 3649: 0x6507,
+ 3650: 0x6508,
+ 3651: 0x650A,
+ 3652: 0x650B,
+ 3653: 0x650C,
+ 3654: 0x650D,
+ 3655: 0x650E,
+ 3656: 0x650F,
+ 3657: 0x6510,
+ 3658: 0x6511,
+ 3659: 0x6513,
+ 3660: 0x6514,
+ 3661: 0x6515,
+ 3662: 0x6516,
+ 3663: 0x6517,
+ 3664: 0x6519,
+ 3665: 0x651A,
+ 3666: 0x651B,
+ 3667: 0x651C,
+ 3668: 0x651D,
+ 3669: 0x651E,
+ 3670: 0x651F,
+ 3671: 0x6520,
+ 3672: 0x6521,
+ 3673: 0x6522,
+ 3674: 0x6523,
+ 3675: 0x6524,
+ 3676: 0x6526,
+ 3677: 0x6527,
+ 3678: 0x6528,
+ 3679: 0x6529,
+ 3680: 0x652A,
+ 3681: 0x652C,
+ 3682: 0x652D,
+ 3683: 0x6530,
+ 3684: 0x6531,
+ 3685: 0x6532,
+ 3686: 0x6533,
+ 3687: 0x6537,
+ 3688: 0x653A,
+ 3689: 0x653C,
+ 3690: 0x653D,
+ 3691: 0x6540,
+ 3692: 0x6541,
+ 3693: 0x6542,
+ 3694: 0x6543,
+ 3695: 0x6544,
+ 3696: 0x6546,
+ 3697: 0x6547,
+ 3698: 0x654A,
+ 3699: 0x654B,
+ 3700: 0x654D,
+ 3701: 0x654E,
+ 3702: 0x6550,
+ 3703: 0x6552,
+ 3704: 0x6553,
+ 3705: 0x6554,
+ 3706: 0x6557,
+ 3707: 0x6558,
+ 3708: 0x655A,
+ 3709: 0x655C,
+ 3710: 0x655F,
+ 3711: 0x6560,
+ 3712: 0x6561,
+ 3713: 0x6564,
+ 3714: 0x6565,
+ 3715: 0x6567,
+ 3716: 0x6568,
+ 3717: 0x6569,
+ 3718: 0x656A,
+ 3719: 0x656D,
+ 3720: 0x656E,
+ 3721: 0x656F,
+ 3722: 0x6571,
+ 3723: 0x6573,
+ 3724: 0x6575,
+ 3725: 0x6576,
+ 3726: 0x6578,
+ 3727: 0x6579,
+ 3728: 0x657A,
+ 3729: 0x657B,
+ 3730: 0x657C,
+ 3731: 0x657D,
+ 3732: 0x657E,
+ 3733: 0x657F,
+ 3734: 0x6580,
+ 3735: 0x6581,
+ 3736: 0x6582,
+ 3737: 0x6583,
+ 3738: 0x6584,
+ 3739: 0x6585,
+ 3740: 0x6586,
+ 3741: 0x6588,
+ 3742: 0x6589,
+ 3743: 0x658A,
+ 3744: 0x658D,
+ 3745: 0x658E,
+ 3746: 0x658F,
+ 3747: 0x6592,
+ 3748: 0x6594,
+ 3749: 0x6595,
+ 3750: 0x6596,
+ 3751: 0x6598,
+ 3752: 0x659A,
+ 3753: 0x659D,
+ 3754: 0x659E,
+ 3755: 0x65A0,
+ 3756: 0x65A2,
+ 3757: 0x65A3,
+ 3758: 0x65A6,
+ 3759: 0x65A8,
+ 3760: 0x65AA,
+ 3761: 0x65AC,
+ 3762: 0x65AE,
+ 3763: 0x65B1,
+ 3764: 0x65B2,
+ 3765: 0x65B3,
+ 3766: 0x65B4,
+ 3767: 0x65B5,
+ 3768: 0x65B6,
+ 3769: 0x65B7,
+ 3770: 0x65B8,
+ 3771: 0x65BA,
+ 3772: 0x65BB,
+ 3773: 0x65BE,
+ 3774: 0x65BF,
+ 3775: 0x65C0,
+ 3776: 0x65C2,
+ 3777: 0x65C7,
+ 3778: 0x65C8,
+ 3779: 0x65C9,
+ 3780: 0x65CA,
+ 3781: 0x65CD,
+ 3782: 0x65D0,
+ 3783: 0x65D1,
+ 3784: 0x65D3,
+ 3785: 0x65D4,
+ 3786: 0x65D5,
+ 3787: 0x65D8,
+ 3788: 0x65D9,
+ 3789: 0x65DA,
+ 3790: 0x65DB,
+ 3791: 0x65DC,
+ 3792: 0x65DD,
+ 3793: 0x65DE,
+ 3794: 0x65DF,
+ 3795: 0x65E1,
+ 3796: 0x65E3,
+ 3797: 0x65E4,
+ 3798: 0x65EA,
+ 3799: 0x65EB,
+ 3800: 0x65F2,
+ 3801: 0x65F3,
+ 3802: 0x65F4,
+ 3803: 0x65F5,
+ 3804: 0x65F8,
+ 3805: 0x65F9,
+ 3806: 0x65FB,
+ 3807: 0x65FC,
+ 3808: 0x65FD,
+ 3809: 0x65FE,
+ 3810: 0x65FF,
+ 3811: 0x6601,
+ 3812: 0x6604,
+ 3813: 0x6605,
+ 3814: 0x6607,
+ 3815: 0x6608,
+ 3816: 0x6609,
+ 3817: 0x660B,
+ 3818: 0x660D,
+ 3819: 0x6610,
+ 3820: 0x6611,
+ 3821: 0x6612,
+ 3822: 0x6616,
+ 3823: 0x6617,
+ 3824: 0x6618,
+ 3825: 0x661A,
+ 3826: 0x661B,
+ 3827: 0x661C,
+ 3828: 0x661E,
+ 3829: 0x6621,
+ 3830: 0x6622,
+ 3831: 0x6623,
+ 3832: 0x6624,
+ 3833: 0x6626,
+ 3834: 0x6629,
+ 3835: 0x662A,
+ 3836: 0x662B,
+ 3837: 0x662C,
+ 3838: 0x662E,
+ 3839: 0x6630,
+ 3840: 0x6632,
+ 3841: 0x6633,
+ 3842: 0x6637,
+ 3843: 0x6638,
+ 3844: 0x6639,
+ 3845: 0x663A,
+ 3846: 0x663B,
+ 3847: 0x663D,
+ 3848: 0x663F,
+ 3849: 0x6640,
+ 3850: 0x6642,
+ 3851: 0x6644,
+ 3852: 0x6645,
+ 3853: 0x6646,
+ 3854: 0x6647,
+ 3855: 0x6648,
+ 3856: 0x6649,
+ 3857: 0x664A,
+ 3858: 0x664D,
+ 3859: 0x664E,
+ 3860: 0x6650,
+ 3861: 0x6651,
+ 3862: 0x6658,
+ 3863: 0x6659,
+ 3864: 0x665B,
+ 3865: 0x665C,
+ 3866: 0x665D,
+ 3867: 0x665E,
+ 3868: 0x6660,
+ 3869: 0x6662,
+ 3870: 0x6663,
+ 3871: 0x6665,
+ 3872: 0x6667,
+ 3873: 0x6669,
+ 3874: 0x666A,
+ 3875: 0x666B,
+ 3876: 0x666C,
+ 3877: 0x666D,
+ 3878: 0x6671,
+ 3879: 0x6672,
+ 3880: 0x6673,
+ 3881: 0x6675,
+ 3882: 0x6678,
+ 3883: 0x6679,
+ 3884: 0x667B,
+ 3885: 0x667C,
+ 3886: 0x667D,
+ 3887: 0x667F,
+ 3888: 0x6680,
+ 3889: 0x6681,
+ 3890: 0x6683,
+ 3891: 0x6685,
+ 3892: 0x6686,
+ 3893: 0x6688,
+ 3894: 0x6689,
+ 3895: 0x668A,
+ 3896: 0x668B,
+ 3897: 0x668D,
+ 3898: 0x668E,
+ 3899: 0x668F,
+ 3900: 0x6690,
+ 3901: 0x6692,
+ 3902: 0x6693,
+ 3903: 0x6694,
+ 3904: 0x6695,
+ 3905: 0x6698,
+ 3906: 0x6699,
+ 3907: 0x669A,
+ 3908: 0x669B,
+ 3909: 0x669C,
+ 3910: 0x669E,
+ 3911: 0x669F,
+ 3912: 0x66A0,
+ 3913: 0x66A1,
+ 3914: 0x66A2,
+ 3915: 0x66A3,
+ 3916: 0x66A4,
+ 3917: 0x66A5,
+ 3918: 0x66A6,
+ 3919: 0x66A9,
+ 3920: 0x66AA,
+ 3921: 0x66AB,
+ 3922: 0x66AC,
+ 3923: 0x66AD,
+ 3924: 0x66AF,
+ 3925: 0x66B0,
+ 3926: 0x66B1,
+ 3927: 0x66B2,
+ 3928: 0x66B3,
+ 3929: 0x66B5,
+ 3930: 0x66B6,
+ 3931: 0x66B7,
+ 3932: 0x66B8,
+ 3933: 0x66BA,
+ 3934: 0x66BB,
+ 3935: 0x66BC,
+ 3936: 0x66BD,
+ 3937: 0x66BF,
+ 3938: 0x66C0,
+ 3939: 0x66C1,
+ 3940: 0x66C2,
+ 3941: 0x66C3,
+ 3942: 0x66C4,
+ 3943: 0x66C5,
+ 3944: 0x66C6,
+ 3945: 0x66C7,
+ 3946: 0x66C8,
+ 3947: 0x66C9,
+ 3948: 0x66CA,
+ 3949: 0x66CB,
+ 3950: 0x66CC,
+ 3951: 0x66CD,
+ 3952: 0x66CE,
+ 3953: 0x66CF,
+ 3954: 0x66D0,
+ 3955: 0x66D1,
+ 3956: 0x66D2,
+ 3957: 0x66D3,
+ 3958: 0x66D4,
+ 3959: 0x66D5,
+ 3960: 0x66D6,
+ 3961: 0x66D7,
+ 3962: 0x66D8,
+ 3963: 0x66DA,
+ 3964: 0x66DE,
+ 3965: 0x66DF,
+ 3966: 0x66E0,
+ 3967: 0x66E1,
+ 3968: 0x66E2,
+ 3969: 0x66E3,
+ 3970: 0x66E4,
+ 3971: 0x66E5,
+ 3972: 0x66E7,
+ 3973: 0x66E8,
+ 3974: 0x66EA,
+ 3975: 0x66EB,
+ 3976: 0x66EC,
+ 3977: 0x66ED,
+ 3978: 0x66EE,
+ 3979: 0x66EF,
+ 3980: 0x66F1,
+ 3981: 0x66F5,
+ 3982: 0x66F6,
+ 3983: 0x66F8,
+ 3984: 0x66FA,
+ 3985: 0x66FB,
+ 3986: 0x66FD,
+ 3987: 0x6701,
+ 3988: 0x6702,
+ 3989: 0x6703,
+ 3990: 0x6704,
+ 3991: 0x6705,
+ 3992: 0x6706,
+ 3993: 0x6707,
+ 3994: 0x670C,
+ 3995: 0x670E,
+ 3996: 0x670F,
+ 3997: 0x6711,
+ 3998: 0x6712,
+ 3999: 0x6713,
+ 4000: 0x6716,
+ 4001: 0x6718,
+ 4002: 0x6719,
+ 4003: 0x671A,
+ 4004: 0x671C,
+ 4005: 0x671E,
+ 4006: 0x6720,
+ 4007: 0x6721,
+ 4008: 0x6722,
+ 4009: 0x6723,
+ 4010: 0x6724,
+ 4011: 0x6725,
+ 4012: 0x6727,
+ 4013: 0x6729,
+ 4014: 0x672E,
+ 4015: 0x6730,
+ 4016: 0x6732,
+ 4017: 0x6733,
+ 4018: 0x6736,
+ 4019: 0x6737,
+ 4020: 0x6738,
+ 4021: 0x6739,
+ 4022: 0x673B,
+ 4023: 0x673C,
+ 4024: 0x673E,
+ 4025: 0x673F,
+ 4026: 0x6741,
+ 4027: 0x6744,
+ 4028: 0x6745,
+ 4029: 0x6747,
+ 4030: 0x674A,
+ 4031: 0x674B,
+ 4032: 0x674D,
+ 4033: 0x6752,
+ 4034: 0x6754,
+ 4035: 0x6755,
+ 4036: 0x6757,
+ 4037: 0x6758,
+ 4038: 0x6759,
+ 4039: 0x675A,
+ 4040: 0x675B,
+ 4041: 0x675D,
+ 4042: 0x6762,
+ 4043: 0x6763,
+ 4044: 0x6764,
+ 4045: 0x6766,
+ 4046: 0x6767,
+ 4047: 0x676B,
+ 4048: 0x676C,
+ 4049: 0x676E,
+ 4050: 0x6771,
+ 4051: 0x6774,
+ 4052: 0x6776,
+ 4053: 0x6778,
+ 4054: 0x6779,
+ 4055: 0x677A,
+ 4056: 0x677B,
+ 4057: 0x677D,
+ 4058: 0x6780,
+ 4059: 0x6782,
+ 4060: 0x6783,
+ 4061: 0x6785,
+ 4062: 0x6786,
+ 4063: 0x6788,
+ 4064: 0x678A,
+ 4065: 0x678C,
+ 4066: 0x678D,
+ 4067: 0x678E,
+ 4068: 0x678F,
+ 4069: 0x6791,
+ 4070: 0x6792,
+ 4071: 0x6793,
+ 4072: 0x6794,
+ 4073: 0x6796,
+ 4074: 0x6799,
+ 4075: 0x679B,
+ 4076: 0x679F,
+ 4077: 0x67A0,
+ 4078: 0x67A1,
+ 4079: 0x67A4,
+ 4080: 0x67A6,
+ 4081: 0x67A9,
+ 4082: 0x67AC,
+ 4083: 0x67AE,
+ 4084: 0x67B1,
+ 4085: 0x67B2,
+ 4086: 0x67B4,
+ 4087: 0x67B9,
+ 4088: 0x67BA,
+ 4089: 0x67BB,
+ 4090: 0x67BC,
+ 4091: 0x67BD,
+ 4092: 0x67BE,
+ 4093: 0x67BF,
+ 4094: 0x67C0,
+ 4095: 0x67C2,
+ 4096: 0x67C5,
+ 4097: 0x67C6,
+ 4098: 0x67C7,
+ 4099: 0x67C8,
+ 4100: 0x67C9,
+ 4101: 0x67CA,
+ 4102: 0x67CB,
+ 4103: 0x67CC,
+ 4104: 0x67CD,
+ 4105: 0x67CE,
+ 4106: 0x67D5,
+ 4107: 0x67D6,
+ 4108: 0x67D7,
+ 4109: 0x67DB,
+ 4110: 0x67DF,
+ 4111: 0x67E1,
+ 4112: 0x67E3,
+ 4113: 0x67E4,
+ 4114: 0x67E6,
+ 4115: 0x67E7,
+ 4116: 0x67E8,
+ 4117: 0x67EA,
+ 4118: 0x67EB,
+ 4119: 0x67ED,
+ 4120: 0x67EE,
+ 4121: 0x67F2,
+ 4122: 0x67F5,
+ 4123: 0x67F6,
+ 4124: 0x67F7,
+ 4125: 0x67F8,
+ 4126: 0x67F9,
+ 4127: 0x67FA,
+ 4128: 0x67FB,
+ 4129: 0x67FC,
+ 4130: 0x67FE,
+ 4131: 0x6801,
+ 4132: 0x6802,
+ 4133: 0x6803,
+ 4134: 0x6804,
+ 4135: 0x6806,
+ 4136: 0x680D,
+ 4137: 0x6810,
+ 4138: 0x6812,
+ 4139: 0x6814,
+ 4140: 0x6815,
+ 4141: 0x6818,
+ 4142: 0x6819,
+ 4143: 0x681A,
+ 4144: 0x681B,
+ 4145: 0x681C,
+ 4146: 0x681E,
+ 4147: 0x681F,
+ 4148: 0x6820,
+ 4149: 0x6822,
+ 4150: 0x6823,
+ 4151: 0x6824,
+ 4152: 0x6825,
+ 4153: 0x6826,
+ 4154: 0x6827,
+ 4155: 0x6828,
+ 4156: 0x682B,
+ 4157: 0x682C,
+ 4158: 0x682D,
+ 4159: 0x682E,
+ 4160: 0x682F,
+ 4161: 0x6830,
+ 4162: 0x6831,
+ 4163: 0x6834,
+ 4164: 0x6835,
+ 4165: 0x6836,
+ 4166: 0x683A,
+ 4167: 0x683B,
+ 4168: 0x683F,
+ 4169: 0x6847,
+ 4170: 0x684B,
+ 4171: 0x684D,
+ 4172: 0x684F,
+ 4173: 0x6852,
+ 4174: 0x6856,
+ 4175: 0x6857,
+ 4176: 0x6858,
+ 4177: 0x6859,
+ 4178: 0x685A,
+ 4179: 0x685B,
+ 4180: 0x685C,
+ 4181: 0x685D,
+ 4182: 0x685E,
+ 4183: 0x685F,
+ 4184: 0x686A,
+ 4185: 0x686C,
+ 4186: 0x686D,
+ 4187: 0x686E,
+ 4188: 0x686F,
+ 4189: 0x6870,
+ 4190: 0x6871,
+ 4191: 0x6872,
+ 4192: 0x6873,
+ 4193: 0x6875,
+ 4194: 0x6878,
+ 4195: 0x6879,
+ 4196: 0x687A,
+ 4197: 0x687B,
+ 4198: 0x687C,
+ 4199: 0x687D,
+ 4200: 0x687E,
+ 4201: 0x687F,
+ 4202: 0x6880,
+ 4203: 0x6882,
+ 4204: 0x6884,
+ 4205: 0x6887,
+ 4206: 0x6888,
+ 4207: 0x6889,
+ 4208: 0x688A,
+ 4209: 0x688B,
+ 4210: 0x688C,
+ 4211: 0x688D,
+ 4212: 0x688E,
+ 4213: 0x6890,
+ 4214: 0x6891,
+ 4215: 0x6892,
+ 4216: 0x6894,
+ 4217: 0x6895,
+ 4218: 0x6896,
+ 4219: 0x6898,
+ 4220: 0x6899,
+ 4221: 0x689A,
+ 4222: 0x689B,
+ 4223: 0x689C,
+ 4224: 0x689D,
+ 4225: 0x689E,
+ 4226: 0x689F,
+ 4227: 0x68A0,
+ 4228: 0x68A1,
+ 4229: 0x68A3,
+ 4230: 0x68A4,
+ 4231: 0x68A5,
+ 4232: 0x68A9,
+ 4233: 0x68AA,
+ 4234: 0x68AB,
+ 4235: 0x68AC,
+ 4236: 0x68AE,
+ 4237: 0x68B1,
+ 4238: 0x68B2,
+ 4239: 0x68B4,
+ 4240: 0x68B6,
+ 4241: 0x68B7,
+ 4242: 0x68B8,
+ 4243: 0x68B9,
+ 4244: 0x68BA,
+ 4245: 0x68BB,
+ 4246: 0x68BC,
+ 4247: 0x68BD,
+ 4248: 0x68BE,
+ 4249: 0x68BF,
+ 4250: 0x68C1,
+ 4251: 0x68C3,
+ 4252: 0x68C4,
+ 4253: 0x68C5,
+ 4254: 0x68C6,
+ 4255: 0x68C7,
+ 4256: 0x68C8,
+ 4257: 0x68CA,
+ 4258: 0x68CC,
+ 4259: 0x68CE,
+ 4260: 0x68CF,
+ 4261: 0x68D0,
+ 4262: 0x68D1,
+ 4263: 0x68D3,
+ 4264: 0x68D4,
+ 4265: 0x68D6,
+ 4266: 0x68D7,
+ 4267: 0x68D9,
+ 4268: 0x68DB,
+ 4269: 0x68DC,
+ 4270: 0x68DD,
+ 4271: 0x68DE,
+ 4272: 0x68DF,
+ 4273: 0x68E1,
+ 4274: 0x68E2,
+ 4275: 0x68E4,
+ 4276: 0x68E5,
+ 4277: 0x68E6,
+ 4278: 0x68E7,
+ 4279: 0x68E8,
+ 4280: 0x68E9,
+ 4281: 0x68EA,
+ 4282: 0x68EB,
+ 4283: 0x68EC,
+ 4284: 0x68ED,
+ 4285: 0x68EF,
+ 4286: 0x68F2,
+ 4287: 0x68F3,
+ 4288: 0x68F4,
+ 4289: 0x68F6,
+ 4290: 0x68F7,
+ 4291: 0x68F8,
+ 4292: 0x68FB,
+ 4293: 0x68FD,
+ 4294: 0x68FE,
+ 4295: 0x68FF,
+ 4296: 0x6900,
+ 4297: 0x6902,
+ 4298: 0x6903,
+ 4299: 0x6904,
+ 4300: 0x6906,
+ 4301: 0x6907,
+ 4302: 0x6908,
+ 4303: 0x6909,
+ 4304: 0x690A,
+ 4305: 0x690C,
+ 4306: 0x690F,
+ 4307: 0x6911,
+ 4308: 0x6913,
+ 4309: 0x6914,
+ 4310: 0x6915,
+ 4311: 0x6916,
+ 4312: 0x6917,
+ 4313: 0x6918,
+ 4314: 0x6919,
+ 4315: 0x691A,
+ 4316: 0x691B,
+ 4317: 0x691C,
+ 4318: 0x691D,
+ 4319: 0x691E,
+ 4320: 0x6921,
+ 4321: 0x6922,
+ 4322: 0x6923,
+ 4323: 0x6925,
+ 4324: 0x6926,
+ 4325: 0x6927,
+ 4326: 0x6928,
+ 4327: 0x6929,
+ 4328: 0x692A,
+ 4329: 0x692B,
+ 4330: 0x692C,
+ 4331: 0x692E,
+ 4332: 0x692F,
+ 4333: 0x6931,
+ 4334: 0x6932,
+ 4335: 0x6933,
+ 4336: 0x6935,
+ 4337: 0x6936,
+ 4338: 0x6937,
+ 4339: 0x6938,
+ 4340: 0x693A,
+ 4341: 0x693B,
+ 4342: 0x693C,
+ 4343: 0x693E,
+ 4344: 0x6940,
+ 4345: 0x6941,
+ 4346: 0x6943,
+ 4347: 0x6944,
+ 4348: 0x6945,
+ 4349: 0x6946,
+ 4350: 0x6947,
+ 4351: 0x6948,
+ 4352: 0x6949,
+ 4353: 0x694A,
+ 4354: 0x694B,
+ 4355: 0x694C,
+ 4356: 0x694D,
+ 4357: 0x694E,
+ 4358: 0x694F,
+ 4359: 0x6950,
+ 4360: 0x6951,
+ 4361: 0x6952,
+ 4362: 0x6953,
+ 4363: 0x6955,
+ 4364: 0x6956,
+ 4365: 0x6958,
+ 4366: 0x6959,
+ 4367: 0x695B,
+ 4368: 0x695C,
+ 4369: 0x695F,
+ 4370: 0x6961,
+ 4371: 0x6962,
+ 4372: 0x6964,
+ 4373: 0x6965,
+ 4374: 0x6967,
+ 4375: 0x6968,
+ 4376: 0x6969,
+ 4377: 0x696A,
+ 4378: 0x696C,
+ 4379: 0x696D,
+ 4380: 0x696F,
+ 4381: 0x6970,
+ 4382: 0x6972,
+ 4383: 0x6973,
+ 4384: 0x6974,
+ 4385: 0x6975,
+ 4386: 0x6976,
+ 4387: 0x697A,
+ 4388: 0x697B,
+ 4389: 0x697D,
+ 4390: 0x697E,
+ 4391: 0x697F,
+ 4392: 0x6981,
+ 4393: 0x6983,
+ 4394: 0x6985,
+ 4395: 0x698A,
+ 4396: 0x698B,
+ 4397: 0x698C,
+ 4398: 0x698E,
+ 4399: 0x698F,
+ 4400: 0x6990,
+ 4401: 0x6991,
+ 4402: 0x6992,
+ 4403: 0x6993,
+ 4404: 0x6996,
+ 4405: 0x6997,
+ 4406: 0x6999,
+ 4407: 0x699A,
+ 4408: 0x699D,
+ 4409: 0x699E,
+ 4410: 0x699F,
+ 4411: 0x69A0,
+ 4412: 0x69A1,
+ 4413: 0x69A2,
+ 4414: 0x69A3,
+ 4415: 0x69A4,
+ 4416: 0x69A5,
+ 4417: 0x69A6,
+ 4418: 0x69A9,
+ 4419: 0x69AA,
+ 4420: 0x69AC,
+ 4421: 0x69AE,
+ 4422: 0x69AF,
+ 4423: 0x69B0,
+ 4424: 0x69B2,
+ 4425: 0x69B3,
+ 4426: 0x69B5,
+ 4427: 0x69B6,
+ 4428: 0x69B8,
+ 4429: 0x69B9,
+ 4430: 0x69BA,
+ 4431: 0x69BC,
+ 4432: 0x69BD,
+ 4433: 0x69BE,
+ 4434: 0x69BF,
+ 4435: 0x69C0,
+ 4436: 0x69C2,
+ 4437: 0x69C3,
+ 4438: 0x69C4,
+ 4439: 0x69C5,
+ 4440: 0x69C6,
+ 4441: 0x69C7,
+ 4442: 0x69C8,
+ 4443: 0x69C9,
+ 4444: 0x69CB,
+ 4445: 0x69CD,
+ 4446: 0x69CF,
+ 4447: 0x69D1,
+ 4448: 0x69D2,
+ 4449: 0x69D3,
+ 4450: 0x69D5,
+ 4451: 0x69D6,
+ 4452: 0x69D7,
+ 4453: 0x69D8,
+ 4454: 0x69D9,
+ 4455: 0x69DA,
+ 4456: 0x69DC,
+ 4457: 0x69DD,
+ 4458: 0x69DE,
+ 4459: 0x69E1,
+ 4460: 0x69E2,
+ 4461: 0x69E3,
+ 4462: 0x69E4,
+ 4463: 0x69E5,
+ 4464: 0x69E6,
+ 4465: 0x69E7,
+ 4466: 0x69E8,
+ 4467: 0x69E9,
+ 4468: 0x69EA,
+ 4469: 0x69EB,
+ 4470: 0x69EC,
+ 4471: 0x69EE,
+ 4472: 0x69EF,
+ 4473: 0x69F0,
+ 4474: 0x69F1,
+ 4475: 0x69F3,
+ 4476: 0x69F4,
+ 4477: 0x69F5,
+ 4478: 0x69F6,
+ 4479: 0x69F7,
+ 4480: 0x69F8,
+ 4481: 0x69F9,
+ 4482: 0x69FA,
+ 4483: 0x69FB,
+ 4484: 0x69FC,
+ 4485: 0x69FE,
+ 4486: 0x6A00,
+ 4487: 0x6A01,
+ 4488: 0x6A02,
+ 4489: 0x6A03,
+ 4490: 0x6A04,
+ 4491: 0x6A05,
+ 4492: 0x6A06,
+ 4493: 0x6A07,
+ 4494: 0x6A08,
+ 4495: 0x6A09,
+ 4496: 0x6A0B,
+ 4497: 0x6A0C,
+ 4498: 0x6A0D,
+ 4499: 0x6A0E,
+ 4500: 0x6A0F,
+ 4501: 0x6A10,
+ 4502: 0x6A11,
+ 4503: 0x6A12,
+ 4504: 0x6A13,
+ 4505: 0x6A14,
+ 4506: 0x6A15,
+ 4507: 0x6A16,
+ 4508: 0x6A19,
+ 4509: 0x6A1A,
+ 4510: 0x6A1B,
+ 4511: 0x6A1C,
+ 4512: 0x6A1D,
+ 4513: 0x6A1E,
+ 4514: 0x6A20,
+ 4515: 0x6A22,
+ 4516: 0x6A23,
+ 4517: 0x6A24,
+ 4518: 0x6A25,
+ 4519: 0x6A26,
+ 4520: 0x6A27,
+ 4521: 0x6A29,
+ 4522: 0x6A2B,
+ 4523: 0x6A2C,
+ 4524: 0x6A2D,
+ 4525: 0x6A2E,
+ 4526: 0x6A30,
+ 4527: 0x6A32,
+ 4528: 0x6A33,
+ 4529: 0x6A34,
+ 4530: 0x6A36,
+ 4531: 0x6A37,
+ 4532: 0x6A38,
+ 4533: 0x6A39,
+ 4534: 0x6A3A,
+ 4535: 0x6A3B,
+ 4536: 0x6A3C,
+ 4537: 0x6A3F,
+ 4538: 0x6A40,
+ 4539: 0x6A41,
+ 4540: 0x6A42,
+ 4541: 0x6A43,
+ 4542: 0x6A45,
+ 4543: 0x6A46,
+ 4544: 0x6A48,
+ 4545: 0x6A49,
+ 4546: 0x6A4A,
+ 4547: 0x6A4B,
+ 4548: 0x6A4C,
+ 4549: 0x6A4D,
+ 4550: 0x6A4E,
+ 4551: 0x6A4F,
+ 4552: 0x6A51,
+ 4553: 0x6A52,
+ 4554: 0x6A53,
+ 4555: 0x6A54,
+ 4556: 0x6A55,
+ 4557: 0x6A56,
+ 4558: 0x6A57,
+ 4559: 0x6A5A,
+ 4560: 0x6A5C,
+ 4561: 0x6A5D,
+ 4562: 0x6A5E,
+ 4563: 0x6A5F,
+ 4564: 0x6A60,
+ 4565: 0x6A62,
+ 4566: 0x6A63,
+ 4567: 0x6A64,
+ 4568: 0x6A66,
+ 4569: 0x6A67,
+ 4570: 0x6A68,
+ 4571: 0x6A69,
+ 4572: 0x6A6A,
+ 4573: 0x6A6B,
+ 4574: 0x6A6C,
+ 4575: 0x6A6D,
+ 4576: 0x6A6E,
+ 4577: 0x6A6F,
+ 4578: 0x6A70,
+ 4579: 0x6A72,
+ 4580: 0x6A73,
+ 4581: 0x6A74,
+ 4582: 0x6A75,
+ 4583: 0x6A76,
+ 4584: 0x6A77,
+ 4585: 0x6A78,
+ 4586: 0x6A7A,
+ 4587: 0x6A7B,
+ 4588: 0x6A7D,
+ 4589: 0x6A7E,
+ 4590: 0x6A7F,
+ 4591: 0x6A81,
+ 4592: 0x6A82,
+ 4593: 0x6A83,
+ 4594: 0x6A85,
+ 4595: 0x6A86,
+ 4596: 0x6A87,
+ 4597: 0x6A88,
+ 4598: 0x6A89,
+ 4599: 0x6A8A,
+ 4600: 0x6A8B,
+ 4601: 0x6A8C,
+ 4602: 0x6A8D,
+ 4603: 0x6A8F,
+ 4604: 0x6A92,
+ 4605: 0x6A93,
+ 4606: 0x6A94,
+ 4607: 0x6A95,
+ 4608: 0x6A96,
+ 4609: 0x6A98,
+ 4610: 0x6A99,
+ 4611: 0x6A9A,
+ 4612: 0x6A9B,
+ 4613: 0x6A9C,
+ 4614: 0x6A9D,
+ 4615: 0x6A9E,
+ 4616: 0x6A9F,
+ 4617: 0x6AA1,
+ 4618: 0x6AA2,
+ 4619: 0x6AA3,
+ 4620: 0x6AA4,
+ 4621: 0x6AA5,
+ 4622: 0x6AA6,
+ 4623: 0x6AA7,
+ 4624: 0x6AA8,
+ 4625: 0x6AAA,
+ 4626: 0x6AAD,
+ 4627: 0x6AAE,
+ 4628: 0x6AAF,
+ 4629: 0x6AB0,
+ 4630: 0x6AB1,
+ 4631: 0x6AB2,
+ 4632: 0x6AB3,
+ 4633: 0x6AB4,
+ 4634: 0x6AB5,
+ 4635: 0x6AB6,
+ 4636: 0x6AB7,
+ 4637: 0x6AB8,
+ 4638: 0x6AB9,
+ 4639: 0x6ABA,
+ 4640: 0x6ABB,
+ 4641: 0x6ABC,
+ 4642: 0x6ABD,
+ 4643: 0x6ABE,
+ 4644: 0x6ABF,
+ 4645: 0x6AC0,
+ 4646: 0x6AC1,
+ 4647: 0x6AC2,
+ 4648: 0x6AC3,
+ 4649: 0x6AC4,
+ 4650: 0x6AC5,
+ 4651: 0x6AC6,
+ 4652: 0x6AC7,
+ 4653: 0x6AC8,
+ 4654: 0x6AC9,
+ 4655: 0x6ACA,
+ 4656: 0x6ACB,
+ 4657: 0x6ACC,
+ 4658: 0x6ACD,
+ 4659: 0x6ACE,
+ 4660: 0x6ACF,
+ 4661: 0x6AD0,
+ 4662: 0x6AD1,
+ 4663: 0x6AD2,
+ 4664: 0x6AD3,
+ 4665: 0x6AD4,
+ 4666: 0x6AD5,
+ 4667: 0x6AD6,
+ 4668: 0x6AD7,
+ 4669: 0x6AD8,
+ 4670: 0x6AD9,
+ 4671: 0x6ADA,
+ 4672: 0x6ADB,
+ 4673: 0x6ADC,
+ 4674: 0x6ADD,
+ 4675: 0x6ADE,
+ 4676: 0x6ADF,
+ 4677: 0x6AE0,
+ 4678: 0x6AE1,
+ 4679: 0x6AE2,
+ 4680: 0x6AE3,
+ 4681: 0x6AE4,
+ 4682: 0x6AE5,
+ 4683: 0x6AE6,
+ 4684: 0x6AE7,
+ 4685: 0x6AE8,
+ 4686: 0x6AE9,
+ 4687: 0x6AEA,
+ 4688: 0x6AEB,
+ 4689: 0x6AEC,
+ 4690: 0x6AED,
+ 4691: 0x6AEE,
+ 4692: 0x6AEF,
+ 4693: 0x6AF0,
+ 4694: 0x6AF1,
+ 4695: 0x6AF2,
+ 4696: 0x6AF3,
+ 4697: 0x6AF4,
+ 4698: 0x6AF5,
+ 4699: 0x6AF6,
+ 4700: 0x6AF7,
+ 4701: 0x6AF8,
+ 4702: 0x6AF9,
+ 4703: 0x6AFA,
+ 4704: 0x6AFB,
+ 4705: 0x6AFC,
+ 4706: 0x6AFD,
+ 4707: 0x6AFE,
+ 4708: 0x6AFF,
+ 4709: 0x6B00,
+ 4710: 0x6B01,
+ 4711: 0x6B02,
+ 4712: 0x6B03,
+ 4713: 0x6B04,
+ 4714: 0x6B05,
+ 4715: 0x6B06,
+ 4716: 0x6B07,
+ 4717: 0x6B08,
+ 4718: 0x6B09,
+ 4719: 0x6B0A,
+ 4720: 0x6B0B,
+ 4721: 0x6B0C,
+ 4722: 0x6B0D,
+ 4723: 0x6B0E,
+ 4724: 0x6B0F,
+ 4725: 0x6B10,
+ 4726: 0x6B11,
+ 4727: 0x6B12,
+ 4728: 0x6B13,
+ 4729: 0x6B14,
+ 4730: 0x6B15,
+ 4731: 0x6B16,
+ 4732: 0x6B17,
+ 4733: 0x6B18,
+ 4734: 0x6B19,
+ 4735: 0x6B1A,
+ 4736: 0x6B1B,
+ 4737: 0x6B1C,
+ 4738: 0x6B1D,
+ 4739: 0x6B1E,
+ 4740: 0x6B1F,
+ 4741: 0x6B25,
+ 4742: 0x6B26,
+ 4743: 0x6B28,
+ 4744: 0x6B29,
+ 4745: 0x6B2A,
+ 4746: 0x6B2B,
+ 4747: 0x6B2C,
+ 4748: 0x6B2D,
+ 4749: 0x6B2E,
+ 4750: 0x6B2F,
+ 4751: 0x6B30,
+ 4752: 0x6B31,
+ 4753: 0x6B33,
+ 4754: 0x6B34,
+ 4755: 0x6B35,
+ 4756: 0x6B36,
+ 4757: 0x6B38,
+ 4758: 0x6B3B,
+ 4759: 0x6B3C,
+ 4760: 0x6B3D,
+ 4761: 0x6B3F,
+ 4762: 0x6B40,
+ 4763: 0x6B41,
+ 4764: 0x6B42,
+ 4765: 0x6B44,
+ 4766: 0x6B45,
+ 4767: 0x6B48,
+ 4768: 0x6B4A,
+ 4769: 0x6B4B,
+ 4770: 0x6B4D,
+ 4771: 0x6B4E,
+ 4772: 0x6B4F,
+ 4773: 0x6B50,
+ 4774: 0x6B51,
+ 4775: 0x6B52,
+ 4776: 0x6B53,
+ 4777: 0x6B54,
+ 4778: 0x6B55,
+ 4779: 0x6B56,
+ 4780: 0x6B57,
+ 4781: 0x6B58,
+ 4782: 0x6B5A,
+ 4783: 0x6B5B,
+ 4784: 0x6B5C,
+ 4785: 0x6B5D,
+ 4786: 0x6B5E,
+ 4787: 0x6B5F,
+ 4788: 0x6B60,
+ 4789: 0x6B61,
+ 4790: 0x6B68,
+ 4791: 0x6B69,
+ 4792: 0x6B6B,
+ 4793: 0x6B6C,
+ 4794: 0x6B6D,
+ 4795: 0x6B6E,
+ 4796: 0x6B6F,
+ 4797: 0x6B70,
+ 4798: 0x6B71,
+ 4799: 0x6B72,
+ 4800: 0x6B73,
+ 4801: 0x6B74,
+ 4802: 0x6B75,
+ 4803: 0x6B76,
+ 4804: 0x6B77,
+ 4805: 0x6B78,
+ 4806: 0x6B7A,
+ 4807: 0x6B7D,
+ 4808: 0x6B7E,
+ 4809: 0x6B7F,
+ 4810: 0x6B80,
+ 4811: 0x6B85,
+ 4812: 0x6B88,
+ 4813: 0x6B8C,
+ 4814: 0x6B8E,
+ 4815: 0x6B8F,
+ 4816: 0x6B90,
+ 4817: 0x6B91,
+ 4818: 0x6B94,
+ 4819: 0x6B95,
+ 4820: 0x6B97,
+ 4821: 0x6B98,
+ 4822: 0x6B99,
+ 4823: 0x6B9C,
+ 4824: 0x6B9D,
+ 4825: 0x6B9E,
+ 4826: 0x6B9F,
+ 4827: 0x6BA0,
+ 4828: 0x6BA2,
+ 4829: 0x6BA3,
+ 4830: 0x6BA4,
+ 4831: 0x6BA5,
+ 4832: 0x6BA6,
+ 4833: 0x6BA7,
+ 4834: 0x6BA8,
+ 4835: 0x6BA9,
+ 4836: 0x6BAB,
+ 4837: 0x6BAC,
+ 4838: 0x6BAD,
+ 4839: 0x6BAE,
+ 4840: 0x6BAF,
+ 4841: 0x6BB0,
+ 4842: 0x6BB1,
+ 4843: 0x6BB2,
+ 4844: 0x6BB6,
+ 4845: 0x6BB8,
+ 4846: 0x6BB9,
+ 4847: 0x6BBA,
+ 4848: 0x6BBB,
+ 4849: 0x6BBC,
+ 4850: 0x6BBD,
+ 4851: 0x6BBE,
+ 4852: 0x6BC0,
+ 4853: 0x6BC3,
+ 4854: 0x6BC4,
+ 4855: 0x6BC6,
+ 4856: 0x6BC7,
+ 4857: 0x6BC8,
+ 4858: 0x6BC9,
+ 4859: 0x6BCA,
+ 4860: 0x6BCC,
+ 4861: 0x6BCE,
+ 4862: 0x6BD0,
+ 4863: 0x6BD1,
+ 4864: 0x6BD8,
+ 4865: 0x6BDA,
+ 4866: 0x6BDC,
+ 4867: 0x6BDD,
+ 4868: 0x6BDE,
+ 4869: 0x6BDF,
+ 4870: 0x6BE0,
+ 4871: 0x6BE2,
+ 4872: 0x6BE3,
+ 4873: 0x6BE4,
+ 4874: 0x6BE5,
+ 4875: 0x6BE6,
+ 4876: 0x6BE7,
+ 4877: 0x6BE8,
+ 4878: 0x6BE9,
+ 4879: 0x6BEC,
+ 4880: 0x6BED,
+ 4881: 0x6BEE,
+ 4882: 0x6BF0,
+ 4883: 0x6BF1,
+ 4884: 0x6BF2,
+ 4885: 0x6BF4,
+ 4886: 0x6BF6,
+ 4887: 0x6BF7,
+ 4888: 0x6BF8,
+ 4889: 0x6BFA,
+ 4890: 0x6BFB,
+ 4891: 0x6BFC,
+ 4892: 0x6BFE,
+ 4893: 0x6BFF,
+ 4894: 0x6C00,
+ 4895: 0x6C01,
+ 4896: 0x6C02,
+ 4897: 0x6C03,
+ 4898: 0x6C04,
+ 4899: 0x6C08,
+ 4900: 0x6C09,
+ 4901: 0x6C0A,
+ 4902: 0x6C0B,
+ 4903: 0x6C0C,
+ 4904: 0x6C0E,
+ 4905: 0x6C12,
+ 4906: 0x6C17,
+ 4907: 0x6C1C,
+ 4908: 0x6C1D,
+ 4909: 0x6C1E,
+ 4910: 0x6C20,
+ 4911: 0x6C23,
+ 4912: 0x6C25,
+ 4913: 0x6C2B,
+ 4914: 0x6C2C,
+ 4915: 0x6C2D,
+ 4916: 0x6C31,
+ 4917: 0x6C33,
+ 4918: 0x6C36,
+ 4919: 0x6C37,
+ 4920: 0x6C39,
+ 4921: 0x6C3A,
+ 4922: 0x6C3B,
+ 4923: 0x6C3C,
+ 4924: 0x6C3E,
+ 4925: 0x6C3F,
+ 4926: 0x6C43,
+ 4927: 0x6C44,
+ 4928: 0x6C45,
+ 4929: 0x6C48,
+ 4930: 0x6C4B,
+ 4931: 0x6C4C,
+ 4932: 0x6C4D,
+ 4933: 0x6C4E,
+ 4934: 0x6C4F,
+ 4935: 0x6C51,
+ 4936: 0x6C52,
+ 4937: 0x6C53,
+ 4938: 0x6C56,
+ 4939: 0x6C58,
+ 4940: 0x6C59,
+ 4941: 0x6C5A,
+ 4942: 0x6C62,
+ 4943: 0x6C63,
+ 4944: 0x6C65,
+ 4945: 0x6C66,
+ 4946: 0x6C67,
+ 4947: 0x6C6B,
+ 4948: 0x6C6C,
+ 4949: 0x6C6D,
+ 4950: 0x6C6E,
+ 4951: 0x6C6F,
+ 4952: 0x6C71,
+ 4953: 0x6C73,
+ 4954: 0x6C75,
+ 4955: 0x6C77,
+ 4956: 0x6C78,
+ 4957: 0x6C7A,
+ 4958: 0x6C7B,
+ 4959: 0x6C7C,
+ 4960: 0x6C7F,
+ 4961: 0x6C80,
+ 4962: 0x6C84,
+ 4963: 0x6C87,
+ 4964: 0x6C8A,
+ 4965: 0x6C8B,
+ 4966: 0x6C8D,
+ 4967: 0x6C8E,
+ 4968: 0x6C91,
+ 4969: 0x6C92,
+ 4970: 0x6C95,
+ 4971: 0x6C96,
+ 4972: 0x6C97,
+ 4973: 0x6C98,
+ 4974: 0x6C9A,
+ 4975: 0x6C9C,
+ 4976: 0x6C9D,
+ 4977: 0x6C9E,
+ 4978: 0x6CA0,
+ 4979: 0x6CA2,
+ 4980: 0x6CA8,
+ 4981: 0x6CAC,
+ 4982: 0x6CAF,
+ 4983: 0x6CB0,
+ 4984: 0x6CB4,
+ 4985: 0x6CB5,
+ 4986: 0x6CB6,
+ 4987: 0x6CB7,
+ 4988: 0x6CBA,
+ 4989: 0x6CC0,
+ 4990: 0x6CC1,
+ 4991: 0x6CC2,
+ 4992: 0x6CC3,
+ 4993: 0x6CC6,
+ 4994: 0x6CC7,
+ 4995: 0x6CC8,
+ 4996: 0x6CCB,
+ 4997: 0x6CCD,
+ 4998: 0x6CCE,
+ 4999: 0x6CCF,
+ 5000: 0x6CD1,
+ 5001: 0x6CD2,
+ 5002: 0x6CD8,
+ 5003: 0x6CD9,
+ 5004: 0x6CDA,
+ 5005: 0x6CDC,
+ 5006: 0x6CDD,
+ 5007: 0x6CDF,
+ 5008: 0x6CE4,
+ 5009: 0x6CE6,
+ 5010: 0x6CE7,
+ 5011: 0x6CE9,
+ 5012: 0x6CEC,
+ 5013: 0x6CED,
+ 5014: 0x6CF2,
+ 5015: 0x6CF4,
+ 5016: 0x6CF9,
+ 5017: 0x6CFF,
+ 5018: 0x6D00,
+ 5019: 0x6D02,
+ 5020: 0x6D03,
+ 5021: 0x6D05,
+ 5022: 0x6D06,
+ 5023: 0x6D08,
+ 5024: 0x6D09,
+ 5025: 0x6D0A,
+ 5026: 0x6D0D,
+ 5027: 0x6D0F,
+ 5028: 0x6D10,
+ 5029: 0x6D11,
+ 5030: 0x6D13,
+ 5031: 0x6D14,
+ 5032: 0x6D15,
+ 5033: 0x6D16,
+ 5034: 0x6D18,
+ 5035: 0x6D1C,
+ 5036: 0x6D1D,
+ 5037: 0x6D1F,
+ 5038: 0x6D20,
+ 5039: 0x6D21,
+ 5040: 0x6D22,
+ 5041: 0x6D23,
+ 5042: 0x6D24,
+ 5043: 0x6D26,
+ 5044: 0x6D28,
+ 5045: 0x6D29,
+ 5046: 0x6D2C,
+ 5047: 0x6D2D,
+ 5048: 0x6D2F,
+ 5049: 0x6D30,
+ 5050: 0x6D34,
+ 5051: 0x6D36,
+ 5052: 0x6D37,
+ 5053: 0x6D38,
+ 5054: 0x6D3A,
+ 5055: 0x6D3F,
+ 5056: 0x6D40,
+ 5057: 0x6D42,
+ 5058: 0x6D44,
+ 5059: 0x6D49,
+ 5060: 0x6D4C,
+ 5061: 0x6D50,
+ 5062: 0x6D55,
+ 5063: 0x6D56,
+ 5064: 0x6D57,
+ 5065: 0x6D58,
+ 5066: 0x6D5B,
+ 5067: 0x6D5D,
+ 5068: 0x6D5F,
+ 5069: 0x6D61,
+ 5070: 0x6D62,
+ 5071: 0x6D64,
+ 5072: 0x6D65,
+ 5073: 0x6D67,
+ 5074: 0x6D68,
+ 5075: 0x6D6B,
+ 5076: 0x6D6C,
+ 5077: 0x6D6D,
+ 5078: 0x6D70,
+ 5079: 0x6D71,
+ 5080: 0x6D72,
+ 5081: 0x6D73,
+ 5082: 0x6D75,
+ 5083: 0x6D76,
+ 5084: 0x6D79,
+ 5085: 0x6D7A,
+ 5086: 0x6D7B,
+ 5087: 0x6D7D,
+ 5088: 0x6D7E,
+ 5089: 0x6D7F,
+ 5090: 0x6D80,
+ 5091: 0x6D81,
+ 5092: 0x6D83,
+ 5093: 0x6D84,
+ 5094: 0x6D86,
+ 5095: 0x6D87,
+ 5096: 0x6D8A,
+ 5097: 0x6D8B,
+ 5098: 0x6D8D,
+ 5099: 0x6D8F,
+ 5100: 0x6D90,
+ 5101: 0x6D92,
+ 5102: 0x6D96,
+ 5103: 0x6D97,
+ 5104: 0x6D98,
+ 5105: 0x6D99,
+ 5106: 0x6D9A,
+ 5107: 0x6D9C,
+ 5108: 0x6DA2,
+ 5109: 0x6DA5,
+ 5110: 0x6DAC,
+ 5111: 0x6DAD,
+ 5112: 0x6DB0,
+ 5113: 0x6DB1,
+ 5114: 0x6DB3,
+ 5115: 0x6DB4,
+ 5116: 0x6DB6,
+ 5117: 0x6DB7,
+ 5118: 0x6DB9,
+ 5119: 0x6DBA,
+ 5120: 0x6DBB,
+ 5121: 0x6DBC,
+ 5122: 0x6DBD,
+ 5123: 0x6DBE,
+ 5124: 0x6DC1,
+ 5125: 0x6DC2,
+ 5126: 0x6DC3,
+ 5127: 0x6DC8,
+ 5128: 0x6DC9,
+ 5129: 0x6DCA,
+ 5130: 0x6DCD,
+ 5131: 0x6DCE,
+ 5132: 0x6DCF,
+ 5133: 0x6DD0,
+ 5134: 0x6DD2,
+ 5135: 0x6DD3,
+ 5136: 0x6DD4,
+ 5137: 0x6DD5,
+ 5138: 0x6DD7,
+ 5139: 0x6DDA,
+ 5140: 0x6DDB,
+ 5141: 0x6DDC,
+ 5142: 0x6DDF,
+ 5143: 0x6DE2,
+ 5144: 0x6DE3,
+ 5145: 0x6DE5,
+ 5146: 0x6DE7,
+ 5147: 0x6DE8,
+ 5148: 0x6DE9,
+ 5149: 0x6DEA,
+ 5150: 0x6DED,
+ 5151: 0x6DEF,
+ 5152: 0x6DF0,
+ 5153: 0x6DF2,
+ 5154: 0x6DF4,
+ 5155: 0x6DF5,
+ 5156: 0x6DF6,
+ 5157: 0x6DF8,
+ 5158: 0x6DFA,
+ 5159: 0x6DFD,
+ 5160: 0x6DFE,
+ 5161: 0x6DFF,
+ 5162: 0x6E00,
+ 5163: 0x6E01,
+ 5164: 0x6E02,
+ 5165: 0x6E03,
+ 5166: 0x6E04,
+ 5167: 0x6E06,
+ 5168: 0x6E07,
+ 5169: 0x6E08,
+ 5170: 0x6E09,
+ 5171: 0x6E0B,
+ 5172: 0x6E0F,
+ 5173: 0x6E12,
+ 5174: 0x6E13,
+ 5175: 0x6E15,
+ 5176: 0x6E18,
+ 5177: 0x6E19,
+ 5178: 0x6E1B,
+ 5179: 0x6E1C,
+ 5180: 0x6E1E,
+ 5181: 0x6E1F,
+ 5182: 0x6E22,
+ 5183: 0x6E26,
+ 5184: 0x6E27,
+ 5185: 0x6E28,
+ 5186: 0x6E2A,
+ 5187: 0x6E2C,
+ 5188: 0x6E2E,
+ 5189: 0x6E30,
+ 5190: 0x6E31,
+ 5191: 0x6E33,
+ 5192: 0x6E35,
+ 5193: 0x6E36,
+ 5194: 0x6E37,
+ 5195: 0x6E39,
+ 5196: 0x6E3B,
+ 5197: 0x6E3C,
+ 5198: 0x6E3D,
+ 5199: 0x6E3E,
+ 5200: 0x6E3F,
+ 5201: 0x6E40,
+ 5202: 0x6E41,
+ 5203: 0x6E42,
+ 5204: 0x6E45,
+ 5205: 0x6E46,
+ 5206: 0x6E47,
+ 5207: 0x6E48,
+ 5208: 0x6E49,
+ 5209: 0x6E4A,
+ 5210: 0x6E4B,
+ 5211: 0x6E4C,
+ 5212: 0x6E4F,
+ 5213: 0x6E50,
+ 5214: 0x6E51,
+ 5215: 0x6E52,
+ 5216: 0x6E55,
+ 5217: 0x6E57,
+ 5218: 0x6E59,
+ 5219: 0x6E5A,
+ 5220: 0x6E5C,
+ 5221: 0x6E5D,
+ 5222: 0x6E5E,
+ 5223: 0x6E60,
+ 5224: 0x6E61,
+ 5225: 0x6E62,
+ 5226: 0x6E63,
+ 5227: 0x6E64,
+ 5228: 0x6E65,
+ 5229: 0x6E66,
+ 5230: 0x6E67,
+ 5231: 0x6E68,
+ 5232: 0x6E69,
+ 5233: 0x6E6A,
+ 5234: 0x6E6C,
+ 5235: 0x6E6D,
+ 5236: 0x6E6F,
+ 5237: 0x6E70,
+ 5238: 0x6E71,
+ 5239: 0x6E72,
+ 5240: 0x6E73,
+ 5241: 0x6E74,
+ 5242: 0x6E75,
+ 5243: 0x6E76,
+ 5244: 0x6E77,
+ 5245: 0x6E78,
+ 5246: 0x6E79,
+ 5247: 0x6E7A,
+ 5248: 0x6E7B,
+ 5249: 0x6E7C,
+ 5250: 0x6E7D,
+ 5251: 0x6E80,
+ 5252: 0x6E81,
+ 5253: 0x6E82,
+ 5254: 0x6E84,
+ 5255: 0x6E87,
+ 5256: 0x6E88,
+ 5257: 0x6E8A,
+ 5258: 0x6E8B,
+ 5259: 0x6E8C,
+ 5260: 0x6E8D,
+ 5261: 0x6E8E,
+ 5262: 0x6E91,
+ 5263: 0x6E92,
+ 5264: 0x6E93,
+ 5265: 0x6E94,
+ 5266: 0x6E95,
+ 5267: 0x6E96,
+ 5268: 0x6E97,
+ 5269: 0x6E99,
+ 5270: 0x6E9A,
+ 5271: 0x6E9B,
+ 5272: 0x6E9D,
+ 5273: 0x6E9E,
+ 5274: 0x6EA0,
+ 5275: 0x6EA1,
+ 5276: 0x6EA3,
+ 5277: 0x6EA4,
+ 5278: 0x6EA6,
+ 5279: 0x6EA8,
+ 5280: 0x6EA9,
+ 5281: 0x6EAB,
+ 5282: 0x6EAC,
+ 5283: 0x6EAD,
+ 5284: 0x6EAE,
+ 5285: 0x6EB0,
+ 5286: 0x6EB3,
+ 5287: 0x6EB5,
+ 5288: 0x6EB8,
+ 5289: 0x6EB9,
+ 5290: 0x6EBC,
+ 5291: 0x6EBE,
+ 5292: 0x6EBF,
+ 5293: 0x6EC0,
+ 5294: 0x6EC3,
+ 5295: 0x6EC4,
+ 5296: 0x6EC5,
+ 5297: 0x6EC6,
+ 5298: 0x6EC8,
+ 5299: 0x6EC9,
+ 5300: 0x6ECA,
+ 5301: 0x6ECC,
+ 5302: 0x6ECD,
+ 5303: 0x6ECE,
+ 5304: 0x6ED0,
+ 5305: 0x6ED2,
+ 5306: 0x6ED6,
+ 5307: 0x6ED8,
+ 5308: 0x6ED9,
+ 5309: 0x6EDB,
+ 5310: 0x6EDC,
+ 5311: 0x6EDD,
+ 5312: 0x6EE3,
+ 5313: 0x6EE7,
+ 5314: 0x6EEA,
+ 5315: 0x6EEB,
+ 5316: 0x6EEC,
+ 5317: 0x6EED,
+ 5318: 0x6EEE,
+ 5319: 0x6EEF,
+ 5320: 0x6EF0,
+ 5321: 0x6EF1,
+ 5322: 0x6EF2,
+ 5323: 0x6EF3,
+ 5324: 0x6EF5,
+ 5325: 0x6EF6,
+ 5326: 0x6EF7,
+ 5327: 0x6EF8,
+ 5328: 0x6EFA,
+ 5329: 0x6EFB,
+ 5330: 0x6EFC,
+ 5331: 0x6EFD,
+ 5332: 0x6EFE,
+ 5333: 0x6EFF,
+ 5334: 0x6F00,
+ 5335: 0x6F01,
+ 5336: 0x6F03,
+ 5337: 0x6F04,
+ 5338: 0x6F05,
+ 5339: 0x6F07,
+ 5340: 0x6F08,
+ 5341: 0x6F0A,
+ 5342: 0x6F0B,
+ 5343: 0x6F0C,
+ 5344: 0x6F0D,
+ 5345: 0x6F0E,
+ 5346: 0x6F10,
+ 5347: 0x6F11,
+ 5348: 0x6F12,
+ 5349: 0x6F16,
+ 5350: 0x6F17,
+ 5351: 0x6F18,
+ 5352: 0x6F19,
+ 5353: 0x6F1A,
+ 5354: 0x6F1B,
+ 5355: 0x6F1C,
+ 5356: 0x6F1D,
+ 5357: 0x6F1E,
+ 5358: 0x6F1F,
+ 5359: 0x6F21,
+ 5360: 0x6F22,
+ 5361: 0x6F23,
+ 5362: 0x6F25,
+ 5363: 0x6F26,
+ 5364: 0x6F27,
+ 5365: 0x6F28,
+ 5366: 0x6F2C,
+ 5367: 0x6F2E,
+ 5368: 0x6F30,
+ 5369: 0x6F32,
+ 5370: 0x6F34,
+ 5371: 0x6F35,
+ 5372: 0x6F37,
+ 5373: 0x6F38,
+ 5374: 0x6F39,
+ 5375: 0x6F3A,
+ 5376: 0x6F3B,
+ 5377: 0x6F3C,
+ 5378: 0x6F3D,
+ 5379: 0x6F3F,
+ 5380: 0x6F40,
+ 5381: 0x6F41,
+ 5382: 0x6F42,
+ 5383: 0x6F43,
+ 5384: 0x6F44,
+ 5385: 0x6F45,
+ 5386: 0x6F48,
+ 5387: 0x6F49,
+ 5388: 0x6F4A,
+ 5389: 0x6F4C,
+ 5390: 0x6F4E,
+ 5391: 0x6F4F,
+ 5392: 0x6F50,
+ 5393: 0x6F51,
+ 5394: 0x6F52,
+ 5395: 0x6F53,
+ 5396: 0x6F54,
+ 5397: 0x6F55,
+ 5398: 0x6F56,
+ 5399: 0x6F57,
+ 5400: 0x6F59,
+ 5401: 0x6F5A,
+ 5402: 0x6F5B,
+ 5403: 0x6F5D,
+ 5404: 0x6F5F,
+ 5405: 0x6F60,
+ 5406: 0x6F61,
+ 5407: 0x6F63,
+ 5408: 0x6F64,
+ 5409: 0x6F65,
+ 5410: 0x6F67,
+ 5411: 0x6F68,
+ 5412: 0x6F69,
+ 5413: 0x6F6A,
+ 5414: 0x6F6B,
+ 5415: 0x6F6C,
+ 5416: 0x6F6F,
+ 5417: 0x6F70,
+ 5418: 0x6F71,
+ 5419: 0x6F73,
+ 5420: 0x6F75,
+ 5421: 0x6F76,
+ 5422: 0x6F77,
+ 5423: 0x6F79,
+ 5424: 0x6F7B,
+ 5425: 0x6F7D,
+ 5426: 0x6F7E,
+ 5427: 0x6F7F,
+ 5428: 0x6F80,
+ 5429: 0x6F81,
+ 5430: 0x6F82,
+ 5431: 0x6F83,
+ 5432: 0x6F85,
+ 5433: 0x6F86,
+ 5434: 0x6F87,
+ 5435: 0x6F8A,
+ 5436: 0x6F8B,
+ 5437: 0x6F8F,
+ 5438: 0x6F90,
+ 5439: 0x6F91,
+ 5440: 0x6F92,
+ 5441: 0x6F93,
+ 5442: 0x6F94,
+ 5443: 0x6F95,
+ 5444: 0x6F96,
+ 5445: 0x6F97,
+ 5446: 0x6F98,
+ 5447: 0x6F99,
+ 5448: 0x6F9A,
+ 5449: 0x6F9B,
+ 5450: 0x6F9D,
+ 5451: 0x6F9E,
+ 5452: 0x6F9F,
+ 5453: 0x6FA0,
+ 5454: 0x6FA2,
+ 5455: 0x6FA3,
+ 5456: 0x6FA4,
+ 5457: 0x6FA5,
+ 5458: 0x6FA6,
+ 5459: 0x6FA8,
+ 5460: 0x6FA9,
+ 5461: 0x6FAA,
+ 5462: 0x6FAB,
+ 5463: 0x6FAC,
+ 5464: 0x6FAD,
+ 5465: 0x6FAE,
+ 5466: 0x6FAF,
+ 5467: 0x6FB0,
+ 5468: 0x6FB1,
+ 5469: 0x6FB2,
+ 5470: 0x6FB4,
+ 5471: 0x6FB5,
+ 5472: 0x6FB7,
+ 5473: 0x6FB8,
+ 5474: 0x6FBA,
+ 5475: 0x6FBB,
+ 5476: 0x6FBC,
+ 5477: 0x6FBD,
+ 5478: 0x6FBE,
+ 5479: 0x6FBF,
+ 5480: 0x6FC1,
+ 5481: 0x6FC3,
+ 5482: 0x6FC4,
+ 5483: 0x6FC5,
+ 5484: 0x6FC6,
+ 5485: 0x6FC7,
+ 5486: 0x6FC8,
+ 5487: 0x6FCA,
+ 5488: 0x6FCB,
+ 5489: 0x6FCC,
+ 5490: 0x6FCD,
+ 5491: 0x6FCE,
+ 5492: 0x6FCF,
+ 5493: 0x6FD0,
+ 5494: 0x6FD3,
+ 5495: 0x6FD4,
+ 5496: 0x6FD5,
+ 5497: 0x6FD6,
+ 5498: 0x6FD7,
+ 5499: 0x6FD8,
+ 5500: 0x6FD9,
+ 5501: 0x6FDA,
+ 5502: 0x6FDB,
+ 5503: 0x6FDC,
+ 5504: 0x6FDD,
+ 5505: 0x6FDF,
+ 5506: 0x6FE2,
+ 5507: 0x6FE3,
+ 5508: 0x6FE4,
+ 5509: 0x6FE5,
+ 5510: 0x6FE6,
+ 5511: 0x6FE7,
+ 5512: 0x6FE8,
+ 5513: 0x6FE9,
+ 5514: 0x6FEA,
+ 5515: 0x6FEB,
+ 5516: 0x6FEC,
+ 5517: 0x6FED,
+ 5518: 0x6FF0,
+ 5519: 0x6FF1,
+ 5520: 0x6FF2,
+ 5521: 0x6FF3,
+ 5522: 0x6FF4,
+ 5523: 0x6FF5,
+ 5524: 0x6FF6,
+ 5525: 0x6FF7,
+ 5526: 0x6FF8,
+ 5527: 0x6FF9,
+ 5528: 0x6FFA,
+ 5529: 0x6FFB,
+ 5530: 0x6FFC,
+ 5531: 0x6FFD,
+ 5532: 0x6FFE,
+ 5533: 0x6FFF,
+ 5534: 0x7000,
+ 5535: 0x7001,
+ 5536: 0x7002,
+ 5537: 0x7003,
+ 5538: 0x7004,
+ 5539: 0x7005,
+ 5540: 0x7006,
+ 5541: 0x7007,
+ 5542: 0x7008,
+ 5543: 0x7009,
+ 5544: 0x700A,
+ 5545: 0x700B,
+ 5546: 0x700C,
+ 5547: 0x700D,
+ 5548: 0x700E,
+ 5549: 0x700F,
+ 5550: 0x7010,
+ 5551: 0x7012,
+ 5552: 0x7013,
+ 5553: 0x7014,
+ 5554: 0x7015,
+ 5555: 0x7016,
+ 5556: 0x7017,
+ 5557: 0x7018,
+ 5558: 0x7019,
+ 5559: 0x701C,
+ 5560: 0x701D,
+ 5561: 0x701E,
+ 5562: 0x701F,
+ 5563: 0x7020,
+ 5564: 0x7021,
+ 5565: 0x7022,
+ 5566: 0x7024,
+ 5567: 0x7025,
+ 5568: 0x7026,
+ 5569: 0x7027,
+ 5570: 0x7028,
+ 5571: 0x7029,
+ 5572: 0x702A,
+ 5573: 0x702B,
+ 5574: 0x702C,
+ 5575: 0x702D,
+ 5576: 0x702E,
+ 5577: 0x702F,
+ 5578: 0x7030,
+ 5579: 0x7031,
+ 5580: 0x7032,
+ 5581: 0x7033,
+ 5582: 0x7034,
+ 5583: 0x7036,
+ 5584: 0x7037,
+ 5585: 0x7038,
+ 5586: 0x703A,
+ 5587: 0x703B,
+ 5588: 0x703C,
+ 5589: 0x703D,
+ 5590: 0x703E,
+ 5591: 0x703F,
+ 5592: 0x7040,
+ 5593: 0x7041,
+ 5594: 0x7042,
+ 5595: 0x7043,
+ 5596: 0x7044,
+ 5597: 0x7045,
+ 5598: 0x7046,
+ 5599: 0x7047,
+ 5600: 0x7048,
+ 5601: 0x7049,
+ 5602: 0x704A,
+ 5603: 0x704B,
+ 5604: 0x704D,
+ 5605: 0x704E,
+ 5606: 0x7050,
+ 5607: 0x7051,
+ 5608: 0x7052,
+ 5609: 0x7053,
+ 5610: 0x7054,
+ 5611: 0x7055,
+ 5612: 0x7056,
+ 5613: 0x7057,
+ 5614: 0x7058,
+ 5615: 0x7059,
+ 5616: 0x705A,
+ 5617: 0x705B,
+ 5618: 0x705C,
+ 5619: 0x705D,
+ 5620: 0x705F,
+ 5621: 0x7060,
+ 5622: 0x7061,
+ 5623: 0x7062,
+ 5624: 0x7063,
+ 5625: 0x7064,
+ 5626: 0x7065,
+ 5627: 0x7066,
+ 5628: 0x7067,
+ 5629: 0x7068,
+ 5630: 0x7069,
+ 5631: 0x706A,
+ 5632: 0x706E,
+ 5633: 0x7071,
+ 5634: 0x7072,
+ 5635: 0x7073,
+ 5636: 0x7074,
+ 5637: 0x7077,
+ 5638: 0x7079,
+ 5639: 0x707A,
+ 5640: 0x707B,
+ 5641: 0x707D,
+ 5642: 0x7081,
+ 5643: 0x7082,
+ 5644: 0x7083,
+ 5645: 0x7084,
+ 5646: 0x7086,
+ 5647: 0x7087,
+ 5648: 0x7088,
+ 5649: 0x708B,
+ 5650: 0x708C,
+ 5651: 0x708D,
+ 5652: 0x708F,
+ 5653: 0x7090,
+ 5654: 0x7091,
+ 5655: 0x7093,
+ 5656: 0x7097,
+ 5657: 0x7098,
+ 5658: 0x709A,
+ 5659: 0x709B,
+ 5660: 0x709E,
+ 5661: 0x709F,
+ 5662: 0x70A0,
+ 5663: 0x70A1,
+ 5664: 0x70A2,
+ 5665: 0x70A3,
+ 5666: 0x70A4,
+ 5667: 0x70A5,
+ 5668: 0x70A6,
+ 5669: 0x70A7,
+ 5670: 0x70A8,
+ 5671: 0x70A9,
+ 5672: 0x70AA,
+ 5673: 0x70B0,
+ 5674: 0x70B2,
+ 5675: 0x70B4,
+ 5676: 0x70B5,
+ 5677: 0x70B6,
+ 5678: 0x70BA,
+ 5679: 0x70BE,
+ 5680: 0x70BF,
+ 5681: 0x70C4,
+ 5682: 0x70C5,
+ 5683: 0x70C6,
+ 5684: 0x70C7,
+ 5685: 0x70C9,
+ 5686: 0x70CB,
+ 5687: 0x70CC,
+ 5688: 0x70CD,
+ 5689: 0x70CE,
+ 5690: 0x70CF,
+ 5691: 0x70D0,
+ 5692: 0x70D1,
+ 5693: 0x70D2,
+ 5694: 0x70D3,
+ 5695: 0x70D4,
+ 5696: 0x70D5,
+ 5697: 0x70D6,
+ 5698: 0x70D7,
+ 5699: 0x70DA,
+ 5700: 0x70DC,
+ 5701: 0x70DD,
+ 5702: 0x70DE,
+ 5703: 0x70E0,
+ 5704: 0x70E1,
+ 5705: 0x70E2,
+ 5706: 0x70E3,
+ 5707: 0x70E5,
+ 5708: 0x70EA,
+ 5709: 0x70EE,
+ 5710: 0x70F0,
+ 5711: 0x70F1,
+ 5712: 0x70F2,
+ 5713: 0x70F3,
+ 5714: 0x70F4,
+ 5715: 0x70F5,
+ 5716: 0x70F6,
+ 5717: 0x70F8,
+ 5718: 0x70FA,
+ 5719: 0x70FB,
+ 5720: 0x70FC,
+ 5721: 0x70FE,
+ 5722: 0x70FF,
+ 5723: 0x7100,
+ 5724: 0x7101,
+ 5725: 0x7102,
+ 5726: 0x7103,
+ 5727: 0x7104,
+ 5728: 0x7105,
+ 5729: 0x7106,
+ 5730: 0x7107,
+ 5731: 0x7108,
+ 5732: 0x710B,
+ 5733: 0x710C,
+ 5734: 0x710D,
+ 5735: 0x710E,
+ 5736: 0x710F,
+ 5737: 0x7111,
+ 5738: 0x7112,
+ 5739: 0x7114,
+ 5740: 0x7117,
+ 5741: 0x711B,
+ 5742: 0x711C,
+ 5743: 0x711D,
+ 5744: 0x711E,
+ 5745: 0x711F,
+ 5746: 0x7120,
+ 5747: 0x7121,
+ 5748: 0x7122,
+ 5749: 0x7123,
+ 5750: 0x7124,
+ 5751: 0x7125,
+ 5752: 0x7127,
+ 5753: 0x7128,
+ 5754: 0x7129,
+ 5755: 0x712A,
+ 5756: 0x712B,
+ 5757: 0x712C,
+ 5758: 0x712D,
+ 5759: 0x712E,
+ 5760: 0x7132,
+ 5761: 0x7133,
+ 5762: 0x7134,
+ 5763: 0x7135,
+ 5764: 0x7137,
+ 5765: 0x7138,
+ 5766: 0x7139,
+ 5767: 0x713A,
+ 5768: 0x713B,
+ 5769: 0x713C,
+ 5770: 0x713D,
+ 5771: 0x713E,
+ 5772: 0x713F,
+ 5773: 0x7140,
+ 5774: 0x7141,
+ 5775: 0x7142,
+ 5776: 0x7143,
+ 5777: 0x7144,
+ 5778: 0x7146,
+ 5779: 0x7147,
+ 5780: 0x7148,
+ 5781: 0x7149,
+ 5782: 0x714B,
+ 5783: 0x714D,
+ 5784: 0x714F,
+ 5785: 0x7150,
+ 5786: 0x7151,
+ 5787: 0x7152,
+ 5788: 0x7153,
+ 5789: 0x7154,
+ 5790: 0x7155,
+ 5791: 0x7156,
+ 5792: 0x7157,
+ 5793: 0x7158,
+ 5794: 0x7159,
+ 5795: 0x715A,
+ 5796: 0x715B,
+ 5797: 0x715D,
+ 5798: 0x715F,
+ 5799: 0x7160,
+ 5800: 0x7161,
+ 5801: 0x7162,
+ 5802: 0x7163,
+ 5803: 0x7165,
+ 5804: 0x7169,
+ 5805: 0x716A,
+ 5806: 0x716B,
+ 5807: 0x716C,
+ 5808: 0x716D,
+ 5809: 0x716F,
+ 5810: 0x7170,
+ 5811: 0x7171,
+ 5812: 0x7174,
+ 5813: 0x7175,
+ 5814: 0x7176,
+ 5815: 0x7177,
+ 5816: 0x7179,
+ 5817: 0x717B,
+ 5818: 0x717C,
+ 5819: 0x717E,
+ 5820: 0x717F,
+ 5821: 0x7180,
+ 5822: 0x7181,
+ 5823: 0x7182,
+ 5824: 0x7183,
+ 5825: 0x7185,
+ 5826: 0x7186,
+ 5827: 0x7187,
+ 5828: 0x7188,
+ 5829: 0x7189,
+ 5830: 0x718B,
+ 5831: 0x718C,
+ 5832: 0x718D,
+ 5833: 0x718E,
+ 5834: 0x7190,
+ 5835: 0x7191,
+ 5836: 0x7192,
+ 5837: 0x7193,
+ 5838: 0x7195,
+ 5839: 0x7196,
+ 5840: 0x7197,
+ 5841: 0x719A,
+ 5842: 0x719B,
+ 5843: 0x719C,
+ 5844: 0x719D,
+ 5845: 0x719E,
+ 5846: 0x71A1,
+ 5847: 0x71A2,
+ 5848: 0x71A3,
+ 5849: 0x71A4,
+ 5850: 0x71A5,
+ 5851: 0x71A6,
+ 5852: 0x71A7,
+ 5853: 0x71A9,
+ 5854: 0x71AA,
+ 5855: 0x71AB,
+ 5856: 0x71AD,
+ 5857: 0x71AE,
+ 5858: 0x71AF,
+ 5859: 0x71B0,
+ 5860: 0x71B1,
+ 5861: 0x71B2,
+ 5862: 0x71B4,
+ 5863: 0x71B6,
+ 5864: 0x71B7,
+ 5865: 0x71B8,
+ 5866: 0x71BA,
+ 5867: 0x71BB,
+ 5868: 0x71BC,
+ 5869: 0x71BD,
+ 5870: 0x71BE,
+ 5871: 0x71BF,
+ 5872: 0x71C0,
+ 5873: 0x71C1,
+ 5874: 0x71C2,
+ 5875: 0x71C4,
+ 5876: 0x71C5,
+ 5877: 0x71C6,
+ 5878: 0x71C7,
+ 5879: 0x71C8,
+ 5880: 0x71C9,
+ 5881: 0x71CA,
+ 5882: 0x71CB,
+ 5883: 0x71CC,
+ 5884: 0x71CD,
+ 5885: 0x71CF,
+ 5886: 0x71D0,
+ 5887: 0x71D1,
+ 5888: 0x71D2,
+ 5889: 0x71D3,
+ 5890: 0x71D6,
+ 5891: 0x71D7,
+ 5892: 0x71D8,
+ 5893: 0x71D9,
+ 5894: 0x71DA,
+ 5895: 0x71DB,
+ 5896: 0x71DC,
+ 5897: 0x71DD,
+ 5898: 0x71DE,
+ 5899: 0x71DF,
+ 5900: 0x71E1,
+ 5901: 0x71E2,
+ 5902: 0x71E3,
+ 5903: 0x71E4,
+ 5904: 0x71E6,
+ 5905: 0x71E8,
+ 5906: 0x71E9,
+ 5907: 0x71EA,
+ 5908: 0x71EB,
+ 5909: 0x71EC,
+ 5910: 0x71ED,
+ 5911: 0x71EF,
+ 5912: 0x71F0,
+ 5913: 0x71F1,
+ 5914: 0x71F2,
+ 5915: 0x71F3,
+ 5916: 0x71F4,
+ 5917: 0x71F5,
+ 5918: 0x71F6,
+ 5919: 0x71F7,
+ 5920: 0x71F8,
+ 5921: 0x71FA,
+ 5922: 0x71FB,
+ 5923: 0x71FC,
+ 5924: 0x71FD,
+ 5925: 0x71FE,
+ 5926: 0x71FF,
+ 5927: 0x7200,
+ 5928: 0x7201,
+ 5929: 0x7202,
+ 5930: 0x7203,
+ 5931: 0x7204,
+ 5932: 0x7205,
+ 5933: 0x7207,
+ 5934: 0x7208,
+ 5935: 0x7209,
+ 5936: 0x720A,
+ 5937: 0x720B,
+ 5938: 0x720C,
+ 5939: 0x720D,
+ 5940: 0x720E,
+ 5941: 0x720F,
+ 5942: 0x7210,
+ 5943: 0x7211,
+ 5944: 0x7212,
+ 5945: 0x7213,
+ 5946: 0x7214,
+ 5947: 0x7215,
+ 5948: 0x7216,
+ 5949: 0x7217,
+ 5950: 0x7218,
+ 5951: 0x7219,
+ 5952: 0x721A,
+ 5953: 0x721B,
+ 5954: 0x721C,
+ 5955: 0x721E,
+ 5956: 0x721F,
+ 5957: 0x7220,
+ 5958: 0x7221,
+ 5959: 0x7222,
+ 5960: 0x7223,
+ 5961: 0x7224,
+ 5962: 0x7225,
+ 5963: 0x7226,
+ 5964: 0x7227,
+ 5965: 0x7229,
+ 5966: 0x722B,
+ 5967: 0x722D,
+ 5968: 0x722E,
+ 5969: 0x722F,
+ 5970: 0x7232,
+ 5971: 0x7233,
+ 5972: 0x7234,
+ 5973: 0x723A,
+ 5974: 0x723C,
+ 5975: 0x723E,
+ 5976: 0x7240,
+ 5977: 0x7241,
+ 5978: 0x7242,
+ 5979: 0x7243,
+ 5980: 0x7244,
+ 5981: 0x7245,
+ 5982: 0x7246,
+ 5983: 0x7249,
+ 5984: 0x724A,
+ 5985: 0x724B,
+ 5986: 0x724E,
+ 5987: 0x724F,
+ 5988: 0x7250,
+ 5989: 0x7251,
+ 5990: 0x7253,
+ 5991: 0x7254,
+ 5992: 0x7255,
+ 5993: 0x7257,
+ 5994: 0x7258,
+ 5995: 0x725A,
+ 5996: 0x725C,
+ 5997: 0x725E,
+ 5998: 0x7260,
+ 5999: 0x7263,
+ 6000: 0x7264,
+ 6001: 0x7265,
+ 6002: 0x7268,
+ 6003: 0x726A,
+ 6004: 0x726B,
+ 6005: 0x726C,
+ 6006: 0x726D,
+ 6007: 0x7270,
+ 6008: 0x7271,
+ 6009: 0x7273,
+ 6010: 0x7274,
+ 6011: 0x7276,
+ 6012: 0x7277,
+ 6013: 0x7278,
+ 6014: 0x727B,
+ 6015: 0x727C,
+ 6016: 0x727D,
+ 6017: 0x7282,
+ 6018: 0x7283,
+ 6019: 0x7285,
+ 6020: 0x7286,
+ 6021: 0x7287,
+ 6022: 0x7288,
+ 6023: 0x7289,
+ 6024: 0x728C,
+ 6025: 0x728E,
+ 6026: 0x7290,
+ 6027: 0x7291,
+ 6028: 0x7293,
+ 6029: 0x7294,
+ 6030: 0x7295,
+ 6031: 0x7296,
+ 6032: 0x7297,
+ 6033: 0x7298,
+ 6034: 0x7299,
+ 6035: 0x729A,
+ 6036: 0x729B,
+ 6037: 0x729C,
+ 6038: 0x729D,
+ 6039: 0x729E,
+ 6040: 0x72A0,
+ 6041: 0x72A1,
+ 6042: 0x72A2,
+ 6043: 0x72A3,
+ 6044: 0x72A4,
+ 6045: 0x72A5,
+ 6046: 0x72A6,
+ 6047: 0x72A7,
+ 6048: 0x72A8,
+ 6049: 0x72A9,
+ 6050: 0x72AA,
+ 6051: 0x72AB,
+ 6052: 0x72AE,
+ 6053: 0x72B1,
+ 6054: 0x72B2,
+ 6055: 0x72B3,
+ 6056: 0x72B5,
+ 6057: 0x72BA,
+ 6058: 0x72BB,
+ 6059: 0x72BC,
+ 6060: 0x72BD,
+ 6061: 0x72BE,
+ 6062: 0x72BF,
+ 6063: 0x72C0,
+ 6064: 0x72C5,
+ 6065: 0x72C6,
+ 6066: 0x72C7,
+ 6067: 0x72C9,
+ 6068: 0x72CA,
+ 6069: 0x72CB,
+ 6070: 0x72CC,
+ 6071: 0x72CF,
+ 6072: 0x72D1,
+ 6073: 0x72D3,
+ 6074: 0x72D4,
+ 6075: 0x72D5,
+ 6076: 0x72D6,
+ 6077: 0x72D8,
+ 6078: 0x72DA,
+ 6079: 0x72DB,
+ 6176: 0x3000,
+ 6177: 0x3001,
+ 6178: 0x3002,
+ 6179: 0x00B7,
+ 6180: 0x02C9,
+ 6181: 0x02C7,
+ 6182: 0x00A8,
+ 6183: 0x3003,
+ 6184: 0x3005,
+ 6185: 0x2014,
+ 6186: 0xFF5E,
+ 6187: 0x2016,
+ 6188: 0x2026,
+ 6189: 0x2018,
+ 6190: 0x2019,
+ 6191: 0x201C,
+ 6192: 0x201D,
+ 6193: 0x3014,
+ 6194: 0x3015,
+ 6195: 0x3008,
+ 6196: 0x3009,
+ 6197: 0x300A,
+ 6198: 0x300B,
+ 6199: 0x300C,
+ 6200: 0x300D,
+ 6201: 0x300E,
+ 6202: 0x300F,
+ 6203: 0x3016,
+ 6204: 0x3017,
+ 6205: 0x3010,
+ 6206: 0x3011,
+ 6207: 0x00B1,
+ 6208: 0x00D7,
+ 6209: 0x00F7,
+ 6210: 0x2236,
+ 6211: 0x2227,
+ 6212: 0x2228,
+ 6213: 0x2211,
+ 6214: 0x220F,
+ 6215: 0x222A,
+ 6216: 0x2229,
+ 6217: 0x2208,
+ 6218: 0x2237,
+ 6219: 0x221A,
+ 6220: 0x22A5,
+ 6221: 0x2225,
+ 6222: 0x2220,
+ 6223: 0x2312,
+ 6224: 0x2299,
+ 6225: 0x222B,
+ 6226: 0x222E,
+ 6227: 0x2261,
+ 6228: 0x224C,
+ 6229: 0x2248,
+ 6230: 0x223D,
+ 6231: 0x221D,
+ 6232: 0x2260,
+ 6233: 0x226E,
+ 6234: 0x226F,
+ 6235: 0x2264,
+ 6236: 0x2265,
+ 6237: 0x221E,
+ 6238: 0x2235,
+ 6239: 0x2234,
+ 6240: 0x2642,
+ 6241: 0x2640,
+ 6242: 0x00B0,
+ 6243: 0x2032,
+ 6244: 0x2033,
+ 6245: 0x2103,
+ 6246: 0xFF04,
+ 6247: 0x00A4,
+ 6248: 0xFFE0,
+ 6249: 0xFFE1,
+ 6250: 0x2030,
+ 6251: 0x00A7,
+ 6252: 0x2116,
+ 6253: 0x2606,
+ 6254: 0x2605,
+ 6255: 0x25CB,
+ 6256: 0x25CF,
+ 6257: 0x25CE,
+ 6258: 0x25C7,
+ 6259: 0x25C6,
+ 6260: 0x25A1,
+ 6261: 0x25A0,
+ 6262: 0x25B3,
+ 6263: 0x25B2,
+ 6264: 0x203B,
+ 6265: 0x2192,
+ 6266: 0x2190,
+ 6267: 0x2191,
+ 6268: 0x2193,
+ 6269: 0x3013,
+ 6366: 0x2170,
+ 6367: 0x2171,
+ 6368: 0x2172,
+ 6369: 0x2173,
+ 6370: 0x2174,
+ 6371: 0x2175,
+ 6372: 0x2176,
+ 6373: 0x2177,
+ 6374: 0x2178,
+ 6375: 0x2179,
+ 6382: 0x2488,
+ 6383: 0x2489,
+ 6384: 0x248A,
+ 6385: 0x248B,
+ 6386: 0x248C,
+ 6387: 0x248D,
+ 6388: 0x248E,
+ 6389: 0x248F,
+ 6390: 0x2490,
+ 6391: 0x2491,
+ 6392: 0x2492,
+ 6393: 0x2493,
+ 6394: 0x2494,
+ 6395: 0x2495,
+ 6396: 0x2496,
+ 6397: 0x2497,
+ 6398: 0x2498,
+ 6399: 0x2499,
+ 6400: 0x249A,
+ 6401: 0x249B,
+ 6402: 0x2474,
+ 6403: 0x2475,
+ 6404: 0x2476,
+ 6405: 0x2477,
+ 6406: 0x2478,
+ 6407: 0x2479,
+ 6408: 0x247A,
+ 6409: 0x247B,
+ 6410: 0x247C,
+ 6411: 0x247D,
+ 6412: 0x247E,
+ 6413: 0x247F,
+ 6414: 0x2480,
+ 6415: 0x2481,
+ 6416: 0x2482,
+ 6417: 0x2483,
+ 6418: 0x2484,
+ 6419: 0x2485,
+ 6420: 0x2486,
+ 6421: 0x2487,
+ 6422: 0x2460,
+ 6423: 0x2461,
+ 6424: 0x2462,
+ 6425: 0x2463,
+ 6426: 0x2464,
+ 6427: 0x2465,
+ 6428: 0x2466,
+ 6429: 0x2467,
+ 6430: 0x2468,
+ 6431: 0x2469,
+ 6432: 0x20AC,
+ 6434: 0x3220,
+ 6435: 0x3221,
+ 6436: 0x3222,
+ 6437: 0x3223,
+ 6438: 0x3224,
+ 6439: 0x3225,
+ 6440: 0x3226,
+ 6441: 0x3227,
+ 6442: 0x3228,
+ 6443: 0x3229,
+ 6446: 0x2160,
+ 6447: 0x2161,
+ 6448: 0x2162,
+ 6449: 0x2163,
+ 6450: 0x2164,
+ 6451: 0x2165,
+ 6452: 0x2166,
+ 6453: 0x2167,
+ 6454: 0x2168,
+ 6455: 0x2169,
+ 6456: 0x216A,
+ 6457: 0x216B,
+ 6555: 0x3000,
+ 6556: 0xFF01,
+ 6557: 0xFF02,
+ 6558: 0xFF03,
+ 6559: 0xFFE5,
+ 6560: 0xFF05,
+ 6561: 0xFF06,
+ 6562: 0xFF07,
+ 6563: 0xFF08,
+ 6564: 0xFF09,
+ 6565: 0xFF0A,
+ 6566: 0xFF0B,
+ 6567: 0xFF0C,
+ 6568: 0xFF0D,
+ 6569: 0xFF0E,
+ 6570: 0xFF0F,
+ 6571: 0xFF10,
+ 6572: 0xFF11,
+ 6573: 0xFF12,
+ 6574: 0xFF13,
+ 6575: 0xFF14,
+ 6576: 0xFF15,
+ 6577: 0xFF16,
+ 6578: 0xFF17,
+ 6579: 0xFF18,
+ 6580: 0xFF19,
+ 6581: 0xFF1A,
+ 6582: 0xFF1B,
+ 6583: 0xFF1C,
+ 6584: 0xFF1D,
+ 6585: 0xFF1E,
+ 6586: 0xFF1F,
+ 6587: 0xFF20,
+ 6588: 0xFF21,
+ 6589: 0xFF22,
+ 6590: 0xFF23,
+ 6591: 0xFF24,
+ 6592: 0xFF25,
+ 6593: 0xFF26,
+ 6594: 0xFF27,
+ 6595: 0xFF28,
+ 6596: 0xFF29,
+ 6597: 0xFF2A,
+ 6598: 0xFF2B,
+ 6599: 0xFF2C,
+ 6600: 0xFF2D,
+ 6601: 0xFF2E,
+ 6602: 0xFF2F,
+ 6603: 0xFF30,
+ 6604: 0xFF31,
+ 6605: 0xFF32,
+ 6606: 0xFF33,
+ 6607: 0xFF34,
+ 6608: 0xFF35,
+ 6609: 0xFF36,
+ 6610: 0xFF37,
+ 6611: 0xFF38,
+ 6612: 0xFF39,
+ 6613: 0xFF3A,
+ 6614: 0xFF3B,
+ 6615: 0xFF3C,
+ 6616: 0xFF3D,
+ 6617: 0xFF3E,
+ 6618: 0xFF3F,
+ 6619: 0xFF40,
+ 6620: 0xFF41,
+ 6621: 0xFF42,
+ 6622: 0xFF43,
+ 6623: 0xFF44,
+ 6624: 0xFF45,
+ 6625: 0xFF46,
+ 6626: 0xFF47,
+ 6627: 0xFF48,
+ 6628: 0xFF49,
+ 6629: 0xFF4A,
+ 6630: 0xFF4B,
+ 6631: 0xFF4C,
+ 6632: 0xFF4D,
+ 6633: 0xFF4E,
+ 6634: 0xFF4F,
+ 6635: 0xFF50,
+ 6636: 0xFF51,
+ 6637: 0xFF52,
+ 6638: 0xFF53,
+ 6639: 0xFF54,
+ 6640: 0xFF55,
+ 6641: 0xFF56,
+ 6642: 0xFF57,
+ 6643: 0xFF58,
+ 6644: 0xFF59,
+ 6645: 0xFF5A,
+ 6646: 0xFF5B,
+ 6647: 0xFF5C,
+ 6648: 0xFF5D,
+ 6649: 0xFFE3,
+ 6746: 0x3041,
+ 6747: 0x3042,
+ 6748: 0x3043,
+ 6749: 0x3044,
+ 6750: 0x3045,
+ 6751: 0x3046,
+ 6752: 0x3047,
+ 6753: 0x3048,
+ 6754: 0x3049,
+ 6755: 0x304A,
+ 6756: 0x304B,
+ 6757: 0x304C,
+ 6758: 0x304D,
+ 6759: 0x304E,
+ 6760: 0x304F,
+ 6761: 0x3050,
+ 6762: 0x3051,
+ 6763: 0x3052,
+ 6764: 0x3053,
+ 6765: 0x3054,
+ 6766: 0x3055,
+ 6767: 0x3056,
+ 6768: 0x3057,
+ 6769: 0x3058,
+ 6770: 0x3059,
+ 6771: 0x305A,
+ 6772: 0x305B,
+ 6773: 0x305C,
+ 6774: 0x305D,
+ 6775: 0x305E,
+ 6776: 0x305F,
+ 6777: 0x3060,
+ 6778: 0x3061,
+ 6779: 0x3062,
+ 6780: 0x3063,
+ 6781: 0x3064,
+ 6782: 0x3065,
+ 6783: 0x3066,
+ 6784: 0x3067,
+ 6785: 0x3068,
+ 6786: 0x3069,
+ 6787: 0x306A,
+ 6788: 0x306B,
+ 6789: 0x306C,
+ 6790: 0x306D,
+ 6791: 0x306E,
+ 6792: 0x306F,
+ 6793: 0x3070,
+ 6794: 0x3071,
+ 6795: 0x3072,
+ 6796: 0x3073,
+ 6797: 0x3074,
+ 6798: 0x3075,
+ 6799: 0x3076,
+ 6800: 0x3077,
+ 6801: 0x3078,
+ 6802: 0x3079,
+ 6803: 0x307A,
+ 6804: 0x307B,
+ 6805: 0x307C,
+ 6806: 0x307D,
+ 6807: 0x307E,
+ 6808: 0x307F,
+ 6809: 0x3080,
+ 6810: 0x3081,
+ 6811: 0x3082,
+ 6812: 0x3083,
+ 6813: 0x3084,
+ 6814: 0x3085,
+ 6815: 0x3086,
+ 6816: 0x3087,
+ 6817: 0x3088,
+ 6818: 0x3089,
+ 6819: 0x308A,
+ 6820: 0x308B,
+ 6821: 0x308C,
+ 6822: 0x308D,
+ 6823: 0x308E,
+ 6824: 0x308F,
+ 6825: 0x3090,
+ 6826: 0x3091,
+ 6827: 0x3092,
+ 6828: 0x3093,
+ 6936: 0x30A1,
+ 6937: 0x30A2,
+ 6938: 0x30A3,
+ 6939: 0x30A4,
+ 6940: 0x30A5,
+ 6941: 0x30A6,
+ 6942: 0x30A7,
+ 6943: 0x30A8,
+ 6944: 0x30A9,
+ 6945: 0x30AA,
+ 6946: 0x30AB,
+ 6947: 0x30AC,
+ 6948: 0x30AD,
+ 6949: 0x30AE,
+ 6950: 0x30AF,
+ 6951: 0x30B0,
+ 6952: 0x30B1,
+ 6953: 0x30B2,
+ 6954: 0x30B3,
+ 6955: 0x30B4,
+ 6956: 0x30B5,
+ 6957: 0x30B6,
+ 6958: 0x30B7,
+ 6959: 0x30B8,
+ 6960: 0x30B9,
+ 6961: 0x30BA,
+ 6962: 0x30BB,
+ 6963: 0x30BC,
+ 6964: 0x30BD,
+ 6965: 0x30BE,
+ 6966: 0x30BF,
+ 6967: 0x30C0,
+ 6968: 0x30C1,
+ 6969: 0x30C2,
+ 6970: 0x30C3,
+ 6971: 0x30C4,
+ 6972: 0x30C5,
+ 6973: 0x30C6,
+ 6974: 0x30C7,
+ 6975: 0x30C8,
+ 6976: 0x30C9,
+ 6977: 0x30CA,
+ 6978: 0x30CB,
+ 6979: 0x30CC,
+ 6980: 0x30CD,
+ 6981: 0x30CE,
+ 6982: 0x30CF,
+ 6983: 0x30D0,
+ 6984: 0x30D1,
+ 6985: 0x30D2,
+ 6986: 0x30D3,
+ 6987: 0x30D4,
+ 6988: 0x30D5,
+ 6989: 0x30D6,
+ 6990: 0x30D7,
+ 6991: 0x30D8,
+ 6992: 0x30D9,
+ 6993: 0x30DA,
+ 6994: 0x30DB,
+ 6995: 0x30DC,
+ 6996: 0x30DD,
+ 6997: 0x30DE,
+ 6998: 0x30DF,
+ 6999: 0x30E0,
+ 7000: 0x30E1,
+ 7001: 0x30E2,
+ 7002: 0x30E3,
+ 7003: 0x30E4,
+ 7004: 0x30E5,
+ 7005: 0x30E6,
+ 7006: 0x30E7,
+ 7007: 0x30E8,
+ 7008: 0x30E9,
+ 7009: 0x30EA,
+ 7010: 0x30EB,
+ 7011: 0x30EC,
+ 7012: 0x30ED,
+ 7013: 0x30EE,
+ 7014: 0x30EF,
+ 7015: 0x30F0,
+ 7016: 0x30F1,
+ 7017: 0x30F2,
+ 7018: 0x30F3,
+ 7019: 0x30F4,
+ 7020: 0x30F5,
+ 7021: 0x30F6,
+ 7126: 0x0391,
+ 7127: 0x0392,
+ 7128: 0x0393,
+ 7129: 0x0394,
+ 7130: 0x0395,
+ 7131: 0x0396,
+ 7132: 0x0397,
+ 7133: 0x0398,
+ 7134: 0x0399,
+ 7135: 0x039A,
+ 7136: 0x039B,
+ 7137: 0x039C,
+ 7138: 0x039D,
+ 7139: 0x039E,
+ 7140: 0x039F,
+ 7141: 0x03A0,
+ 7142: 0x03A1,
+ 7143: 0x03A3,
+ 7144: 0x03A4,
+ 7145: 0x03A5,
+ 7146: 0x03A6,
+ 7147: 0x03A7,
+ 7148: 0x03A8,
+ 7149: 0x03A9,
+ 7158: 0x03B1,
+ 7159: 0x03B2,
+ 7160: 0x03B3,
+ 7161: 0x03B4,
+ 7162: 0x03B5,
+ 7163: 0x03B6,
+ 7164: 0x03B7,
+ 7165: 0x03B8,
+ 7166: 0x03B9,
+ 7167: 0x03BA,
+ 7168: 0x03BB,
+ 7169: 0x03BC,
+ 7170: 0x03BD,
+ 7171: 0x03BE,
+ 7172: 0x03BF,
+ 7173: 0x03C0,
+ 7174: 0x03C1,
+ 7175: 0x03C3,
+ 7176: 0x03C4,
+ 7177: 0x03C5,
+ 7178: 0x03C6,
+ 7179: 0x03C7,
+ 7180: 0x03C8,
+ 7181: 0x03C9,
+ 7189: 0xFE35,
+ 7190: 0xFE36,
+ 7191: 0xFE39,
+ 7192: 0xFE3A,
+ 7193: 0xFE3F,
+ 7194: 0xFE40,
+ 7195: 0xFE3D,
+ 7196: 0xFE3E,
+ 7197: 0xFE41,
+ 7198: 0xFE42,
+ 7199: 0xFE43,
+ 7200: 0xFE44,
+ 7203: 0xFE3B,
+ 7204: 0xFE3C,
+ 7205: 0xFE37,
+ 7206: 0xFE38,
+ 7207: 0xFE31,
+ 7209: 0xFE33,
+ 7210: 0xFE34,
+ 7316: 0x0410,
+ 7317: 0x0411,
+ 7318: 0x0412,
+ 7319: 0x0413,
+ 7320: 0x0414,
+ 7321: 0x0415,
+ 7322: 0x0401,
+ 7323: 0x0416,
+ 7324: 0x0417,
+ 7325: 0x0418,
+ 7326: 0x0419,
+ 7327: 0x041A,
+ 7328: 0x041B,
+ 7329: 0x041C,
+ 7330: 0x041D,
+ 7331: 0x041E,
+ 7332: 0x041F,
+ 7333: 0x0420,
+ 7334: 0x0421,
+ 7335: 0x0422,
+ 7336: 0x0423,
+ 7337: 0x0424,
+ 7338: 0x0425,
+ 7339: 0x0426,
+ 7340: 0x0427,
+ 7341: 0x0428,
+ 7342: 0x0429,
+ 7343: 0x042A,
+ 7344: 0x042B,
+ 7345: 0x042C,
+ 7346: 0x042D,
+ 7347: 0x042E,
+ 7348: 0x042F,
+ 7364: 0x0430,
+ 7365: 0x0431,
+ 7366: 0x0432,
+ 7367: 0x0433,
+ 7368: 0x0434,
+ 7369: 0x0435,
+ 7370: 0x0451,
+ 7371: 0x0436,
+ 7372: 0x0437,
+ 7373: 0x0438,
+ 7374: 0x0439,
+ 7375: 0x043A,
+ 7376: 0x043B,
+ 7377: 0x043C,
+ 7378: 0x043D,
+ 7379: 0x043E,
+ 7380: 0x043F,
+ 7381: 0x0440,
+ 7382: 0x0441,
+ 7383: 0x0442,
+ 7384: 0x0443,
+ 7385: 0x0444,
+ 7386: 0x0445,
+ 7387: 0x0446,
+ 7388: 0x0447,
+ 7389: 0x0448,
+ 7390: 0x0449,
+ 7391: 0x044A,
+ 7392: 0x044B,
+ 7393: 0x044C,
+ 7394: 0x044D,
+ 7395: 0x044E,
+ 7396: 0x044F,
+ 7410: 0x02CA,
+ 7411: 0x02CB,
+ 7412: 0x02D9,
+ 7413: 0x2013,
+ 7414: 0x2015,
+ 7415: 0x2025,
+ 7416: 0x2035,
+ 7417: 0x2105,
+ 7418: 0x2109,
+ 7419: 0x2196,
+ 7420: 0x2197,
+ 7421: 0x2198,
+ 7422: 0x2199,
+ 7423: 0x2215,
+ 7424: 0x221F,
+ 7425: 0x2223,
+ 7426: 0x2252,
+ 7427: 0x2266,
+ 7428: 0x2267,
+ 7429: 0x22BF,
+ 7430: 0x2550,
+ 7431: 0x2551,
+ 7432: 0x2552,
+ 7433: 0x2553,
+ 7434: 0x2554,
+ 7435: 0x2555,
+ 7436: 0x2556,
+ 7437: 0x2557,
+ 7438: 0x2558,
+ 7439: 0x2559,
+ 7440: 0x255A,
+ 7441: 0x255B,
+ 7442: 0x255C,
+ 7443: 0x255D,
+ 7444: 0x255E,
+ 7445: 0x255F,
+ 7446: 0x2560,
+ 7447: 0x2561,
+ 7448: 0x2562,
+ 7449: 0x2563,
+ 7450: 0x2564,
+ 7451: 0x2565,
+ 7452: 0x2566,
+ 7453: 0x2567,
+ 7454: 0x2568,
+ 7455: 0x2569,
+ 7456: 0x256A,
+ 7457: 0x256B,
+ 7458: 0x256C,
+ 7459: 0x256D,
+ 7460: 0x256E,
+ 7461: 0x256F,
+ 7462: 0x2570,
+ 7463: 0x2571,
+ 7464: 0x2572,
+ 7465: 0x2573,
+ 7466: 0x2581,
+ 7467: 0x2582,
+ 7468: 0x2583,
+ 7469: 0x2584,
+ 7470: 0x2585,
+ 7471: 0x2586,
+ 7472: 0x2587,
+ 7473: 0x2588,
+ 7474: 0x2589,
+ 7475: 0x258A,
+ 7476: 0x258B,
+ 7477: 0x258C,
+ 7478: 0x258D,
+ 7479: 0x258E,
+ 7480: 0x258F,
+ 7481: 0x2593,
+ 7482: 0x2594,
+ 7483: 0x2595,
+ 7484: 0x25BC,
+ 7485: 0x25BD,
+ 7486: 0x25E2,
+ 7487: 0x25E3,
+ 7488: 0x25E4,
+ 7489: 0x25E5,
+ 7490: 0x2609,
+ 7491: 0x2295,
+ 7492: 0x3012,
+ 7493: 0x301D,
+ 7494: 0x301E,
+ 7506: 0x0101,
+ 7507: 0x00E1,
+ 7508: 0x01CE,
+ 7509: 0x00E0,
+ 7510: 0x0113,
+ 7511: 0x00E9,
+ 7512: 0x011B,
+ 7513: 0x00E8,
+ 7514: 0x012B,
+ 7515: 0x00ED,
+ 7516: 0x01D0,
+ 7517: 0x00EC,
+ 7518: 0x014D,
+ 7519: 0x00F3,
+ 7520: 0x01D2,
+ 7521: 0x00F2,
+ 7522: 0x016B,
+ 7523: 0x00FA,
+ 7524: 0x01D4,
+ 7525: 0x00F9,
+ 7526: 0x01D6,
+ 7527: 0x01D8,
+ 7528: 0x01DA,
+ 7529: 0x01DC,
+ 7530: 0x00FC,
+ 7531: 0x00EA,
+ 7532: 0x0251,
+ 7534: 0x0144,
+ 7535: 0x0148,
+ 7536: 0x01F9,
+ 7537: 0x0261,
+ 7542: 0x3105,
+ 7543: 0x3106,
+ 7544: 0x3107,
+ 7545: 0x3108,
+ 7546: 0x3109,
+ 7547: 0x310A,
+ 7548: 0x310B,
+ 7549: 0x310C,
+ 7550: 0x310D,
+ 7551: 0x310E,
+ 7552: 0x310F,
+ 7553: 0x3110,
+ 7554: 0x3111,
+ 7555: 0x3112,
+ 7556: 0x3113,
+ 7557: 0x3114,
+ 7558: 0x3115,
+ 7559: 0x3116,
+ 7560: 0x3117,
+ 7561: 0x3118,
+ 7562: 0x3119,
+ 7563: 0x311A,
+ 7564: 0x311B,
+ 7565: 0x311C,
+ 7566: 0x311D,
+ 7567: 0x311E,
+ 7568: 0x311F,
+ 7569: 0x3120,
+ 7570: 0x3121,
+ 7571: 0x3122,
+ 7572: 0x3123,
+ 7573: 0x3124,
+ 7574: 0x3125,
+ 7575: 0x3126,
+ 7576: 0x3127,
+ 7577: 0x3128,
+ 7578: 0x3129,
+ 7600: 0x3021,
+ 7601: 0x3022,
+ 7602: 0x3023,
+ 7603: 0x3024,
+ 7604: 0x3025,
+ 7605: 0x3026,
+ 7606: 0x3027,
+ 7607: 0x3028,
+ 7608: 0x3029,
+ 7609: 0x32A3,
+ 7610: 0x338E,
+ 7611: 0x338F,
+ 7612: 0x339C,
+ 7613: 0x339D,
+ 7614: 0x339E,
+ 7615: 0x33A1,
+ 7616: 0x33C4,
+ 7617: 0x33CE,
+ 7618: 0x33D1,
+ 7619: 0x33D2,
+ 7620: 0x33D5,
+ 7621: 0xFE30,
+ 7622: 0xFFE2,
+ 7623: 0xFFE4,
+ 7625: 0x2121,
+ 7626: 0x3231,
+ 7628: 0x2010,
+ 7632: 0x30FC,
+ 7633: 0x309B,
+ 7634: 0x309C,
+ 7635: 0x30FD,
+ 7636: 0x30FE,
+ 7637: 0x3006,
+ 7638: 0x309D,
+ 7639: 0x309E,
+ 7640: 0xFE49,
+ 7641: 0xFE4A,
+ 7642: 0xFE4B,
+ 7643: 0xFE4C,
+ 7644: 0xFE4D,
+ 7645: 0xFE4E,
+ 7646: 0xFE4F,
+ 7647: 0xFE50,
+ 7648: 0xFE51,
+ 7649: 0xFE52,
+ 7650: 0xFE54,
+ 7651: 0xFE55,
+ 7652: 0xFE56,
+ 7653: 0xFE57,
+ 7654: 0xFE59,
+ 7655: 0xFE5A,
+ 7656: 0xFE5B,
+ 7657: 0xFE5C,
+ 7658: 0xFE5D,
+ 7659: 0xFE5E,
+ 7660: 0xFE5F,
+ 7661: 0xFE60,
+ 7662: 0xFE61,
+ 7663: 0xFE62,
+ 7664: 0xFE63,
+ 7665: 0xFE64,
+ 7666: 0xFE65,
+ 7667: 0xFE66,
+ 7668: 0xFE68,
+ 7669: 0xFE69,
+ 7670: 0xFE6A,
+ 7671: 0xFE6B,
+ 7672: 0x303E,
+ 7673: 0x2FF0,
+ 7674: 0x2FF1,
+ 7675: 0x2FF2,
+ 7676: 0x2FF3,
+ 7677: 0x2FF4,
+ 7678: 0x2FF5,
+ 7679: 0x2FF6,
+ 7680: 0x2FF7,
+ 7681: 0x2FF8,
+ 7682: 0x2FF9,
+ 7683: 0x2FFA,
+ 7684: 0x2FFB,
+ 7685: 0x3007,
+ 7699: 0x2500,
+ 7700: 0x2501,
+ 7701: 0x2502,
+ 7702: 0x2503,
+ 7703: 0x2504,
+ 7704: 0x2505,
+ 7705: 0x2506,
+ 7706: 0x2507,
+ 7707: 0x2508,
+ 7708: 0x2509,
+ 7709: 0x250A,
+ 7710: 0x250B,
+ 7711: 0x250C,
+ 7712: 0x250D,
+ 7713: 0x250E,
+ 7714: 0x250F,
+ 7715: 0x2510,
+ 7716: 0x2511,
+ 7717: 0x2512,
+ 7718: 0x2513,
+ 7719: 0x2514,
+ 7720: 0x2515,
+ 7721: 0x2516,
+ 7722: 0x2517,
+ 7723: 0x2518,
+ 7724: 0x2519,
+ 7725: 0x251A,
+ 7726: 0x251B,
+ 7727: 0x251C,
+ 7728: 0x251D,
+ 7729: 0x251E,
+ 7730: 0x251F,
+ 7731: 0x2520,
+ 7732: 0x2521,
+ 7733: 0x2522,
+ 7734: 0x2523,
+ 7735: 0x2524,
+ 7736: 0x2525,
+ 7737: 0x2526,
+ 7738: 0x2527,
+ 7739: 0x2528,
+ 7740: 0x2529,
+ 7741: 0x252A,
+ 7742: 0x252B,
+ 7743: 0x252C,
+ 7744: 0x252D,
+ 7745: 0x252E,
+ 7746: 0x252F,
+ 7747: 0x2530,
+ 7748: 0x2531,
+ 7749: 0x2532,
+ 7750: 0x2533,
+ 7751: 0x2534,
+ 7752: 0x2535,
+ 7753: 0x2536,
+ 7754: 0x2537,
+ 7755: 0x2538,
+ 7756: 0x2539,
+ 7757: 0x253A,
+ 7758: 0x253B,
+ 7759: 0x253C,
+ 7760: 0x253D,
+ 7761: 0x253E,
+ 7762: 0x253F,
+ 7763: 0x2540,
+ 7764: 0x2541,
+ 7765: 0x2542,
+ 7766: 0x2543,
+ 7767: 0x2544,
+ 7768: 0x2545,
+ 7769: 0x2546,
+ 7770: 0x2547,
+ 7771: 0x2548,
+ 7772: 0x2549,
+ 7773: 0x254A,
+ 7774: 0x254B,
+ 7790: 0x72DC,
+ 7791: 0x72DD,
+ 7792: 0x72DF,
+ 7793: 0x72E2,
+ 7794: 0x72E3,
+ 7795: 0x72E4,
+ 7796: 0x72E5,
+ 7797: 0x72E6,
+ 7798: 0x72E7,
+ 7799: 0x72EA,
+ 7800: 0x72EB,
+ 7801: 0x72F5,
+ 7802: 0x72F6,
+ 7803: 0x72F9,
+ 7804: 0x72FD,
+ 7805: 0x72FE,
+ 7806: 0x72FF,
+ 7807: 0x7300,
+ 7808: 0x7302,
+ 7809: 0x7304,
+ 7810: 0x7305,
+ 7811: 0x7306,
+ 7812: 0x7307,
+ 7813: 0x7308,
+ 7814: 0x7309,
+ 7815: 0x730B,
+ 7816: 0x730C,
+ 7817: 0x730D,
+ 7818: 0x730F,
+ 7819: 0x7310,
+ 7820: 0x7311,
+ 7821: 0x7312,
+ 7822: 0x7314,
+ 7823: 0x7318,
+ 7824: 0x7319,
+ 7825: 0x731A,
+ 7826: 0x731F,
+ 7827: 0x7320,
+ 7828: 0x7323,
+ 7829: 0x7324,
+ 7830: 0x7326,
+ 7831: 0x7327,
+ 7832: 0x7328,
+ 7833: 0x732D,
+ 7834: 0x732F,
+ 7835: 0x7330,
+ 7836: 0x7332,
+ 7837: 0x7333,
+ 7838: 0x7335,
+ 7839: 0x7336,
+ 7840: 0x733A,
+ 7841: 0x733B,
+ 7842: 0x733C,
+ 7843: 0x733D,
+ 7844: 0x7340,
+ 7845: 0x7341,
+ 7846: 0x7342,
+ 7847: 0x7343,
+ 7848: 0x7344,
+ 7849: 0x7345,
+ 7850: 0x7346,
+ 7851: 0x7347,
+ 7852: 0x7348,
+ 7853: 0x7349,
+ 7854: 0x734A,
+ 7855: 0x734B,
+ 7856: 0x734C,
+ 7857: 0x734E,
+ 7858: 0x734F,
+ 7859: 0x7351,
+ 7860: 0x7353,
+ 7861: 0x7354,
+ 7862: 0x7355,
+ 7863: 0x7356,
+ 7864: 0x7358,
+ 7865: 0x7359,
+ 7866: 0x735A,
+ 7867: 0x735B,
+ 7868: 0x735C,
+ 7869: 0x735D,
+ 7870: 0x735E,
+ 7871: 0x735F,
+ 7872: 0x7361,
+ 7873: 0x7362,
+ 7874: 0x7363,
+ 7875: 0x7364,
+ 7876: 0x7365,
+ 7877: 0x7366,
+ 7878: 0x7367,
+ 7879: 0x7368,
+ 7880: 0x7369,
+ 7881: 0x736A,
+ 7882: 0x736B,
+ 7883: 0x736E,
+ 7884: 0x7370,
+ 7885: 0x7371,
+ 7980: 0x7372,
+ 7981: 0x7373,
+ 7982: 0x7374,
+ 7983: 0x7375,
+ 7984: 0x7376,
+ 7985: 0x7377,
+ 7986: 0x7378,
+ 7987: 0x7379,
+ 7988: 0x737A,
+ 7989: 0x737B,
+ 7990: 0x737C,
+ 7991: 0x737D,
+ 7992: 0x737F,
+ 7993: 0x7380,
+ 7994: 0x7381,
+ 7995: 0x7382,
+ 7996: 0x7383,
+ 7997: 0x7385,
+ 7998: 0x7386,
+ 7999: 0x7388,
+ 8000: 0x738A,
+ 8001: 0x738C,
+ 8002: 0x738D,
+ 8003: 0x738F,
+ 8004: 0x7390,
+ 8005: 0x7392,
+ 8006: 0x7393,
+ 8007: 0x7394,
+ 8008: 0x7395,
+ 8009: 0x7397,
+ 8010: 0x7398,
+ 8011: 0x7399,
+ 8012: 0x739A,
+ 8013: 0x739C,
+ 8014: 0x739D,
+ 8015: 0x739E,
+ 8016: 0x73A0,
+ 8017: 0x73A1,
+ 8018: 0x73A3,
+ 8019: 0x73A4,
+ 8020: 0x73A5,
+ 8021: 0x73A6,
+ 8022: 0x73A7,
+ 8023: 0x73A8,
+ 8024: 0x73AA,
+ 8025: 0x73AC,
+ 8026: 0x73AD,
+ 8027: 0x73B1,
+ 8028: 0x73B4,
+ 8029: 0x73B5,
+ 8030: 0x73B6,
+ 8031: 0x73B8,
+ 8032: 0x73B9,
+ 8033: 0x73BC,
+ 8034: 0x73BD,
+ 8035: 0x73BE,
+ 8036: 0x73BF,
+ 8037: 0x73C1,
+ 8038: 0x73C3,
+ 8039: 0x73C4,
+ 8040: 0x73C5,
+ 8041: 0x73C6,
+ 8042: 0x73C7,
+ 8043: 0x73CB,
+ 8044: 0x73CC,
+ 8045: 0x73CE,
+ 8046: 0x73D2,
+ 8047: 0x73D3,
+ 8048: 0x73D4,
+ 8049: 0x73D5,
+ 8050: 0x73D6,
+ 8051: 0x73D7,
+ 8052: 0x73D8,
+ 8053: 0x73DA,
+ 8054: 0x73DB,
+ 8055: 0x73DC,
+ 8056: 0x73DD,
+ 8057: 0x73DF,
+ 8058: 0x73E1,
+ 8059: 0x73E2,
+ 8060: 0x73E3,
+ 8061: 0x73E4,
+ 8062: 0x73E6,
+ 8063: 0x73E8,
+ 8064: 0x73EA,
+ 8065: 0x73EB,
+ 8066: 0x73EC,
+ 8067: 0x73EE,
+ 8068: 0x73EF,
+ 8069: 0x73F0,
+ 8070: 0x73F1,
+ 8071: 0x73F3,
+ 8072: 0x73F4,
+ 8073: 0x73F5,
+ 8074: 0x73F6,
+ 8075: 0x73F7,
+ 8170: 0x73F8,
+ 8171: 0x73F9,
+ 8172: 0x73FA,
+ 8173: 0x73FB,
+ 8174: 0x73FC,
+ 8175: 0x73FD,
+ 8176: 0x73FE,
+ 8177: 0x73FF,
+ 8178: 0x7400,
+ 8179: 0x7401,
+ 8180: 0x7402,
+ 8181: 0x7404,
+ 8182: 0x7407,
+ 8183: 0x7408,
+ 8184: 0x740B,
+ 8185: 0x740C,
+ 8186: 0x740D,
+ 8187: 0x740E,
+ 8188: 0x7411,
+ 8189: 0x7412,
+ 8190: 0x7413,
+ 8191: 0x7414,
+ 8192: 0x7415,
+ 8193: 0x7416,
+ 8194: 0x7417,
+ 8195: 0x7418,
+ 8196: 0x7419,
+ 8197: 0x741C,
+ 8198: 0x741D,
+ 8199: 0x741E,
+ 8200: 0x741F,
+ 8201: 0x7420,
+ 8202: 0x7421,
+ 8203: 0x7423,
+ 8204: 0x7424,
+ 8205: 0x7427,
+ 8206: 0x7429,
+ 8207: 0x742B,
+ 8208: 0x742D,
+ 8209: 0x742F,
+ 8210: 0x7431,
+ 8211: 0x7432,
+ 8212: 0x7437,
+ 8213: 0x7438,
+ 8214: 0x7439,
+ 8215: 0x743A,
+ 8216: 0x743B,
+ 8217: 0x743D,
+ 8218: 0x743E,
+ 8219: 0x743F,
+ 8220: 0x7440,
+ 8221: 0x7442,
+ 8222: 0x7443,
+ 8223: 0x7444,
+ 8224: 0x7445,
+ 8225: 0x7446,
+ 8226: 0x7447,
+ 8227: 0x7448,
+ 8228: 0x7449,
+ 8229: 0x744A,
+ 8230: 0x744B,
+ 8231: 0x744C,
+ 8232: 0x744D,
+ 8233: 0x744E,
+ 8234: 0x744F,
+ 8235: 0x7450,
+ 8236: 0x7451,
+ 8237: 0x7452,
+ 8238: 0x7453,
+ 8239: 0x7454,
+ 8240: 0x7456,
+ 8241: 0x7458,
+ 8242: 0x745D,
+ 8243: 0x7460,
+ 8244: 0x7461,
+ 8245: 0x7462,
+ 8246: 0x7463,
+ 8247: 0x7464,
+ 8248: 0x7465,
+ 8249: 0x7466,
+ 8250: 0x7467,
+ 8251: 0x7468,
+ 8252: 0x7469,
+ 8253: 0x746A,
+ 8254: 0x746B,
+ 8255: 0x746C,
+ 8256: 0x746E,
+ 8257: 0x746F,
+ 8258: 0x7471,
+ 8259: 0x7472,
+ 8260: 0x7473,
+ 8261: 0x7474,
+ 8262: 0x7475,
+ 8263: 0x7478,
+ 8264: 0x7479,
+ 8265: 0x747A,
+ 8360: 0x747B,
+ 8361: 0x747C,
+ 8362: 0x747D,
+ 8363: 0x747F,
+ 8364: 0x7482,
+ 8365: 0x7484,
+ 8366: 0x7485,
+ 8367: 0x7486,
+ 8368: 0x7488,
+ 8369: 0x7489,
+ 8370: 0x748A,
+ 8371: 0x748C,
+ 8372: 0x748D,
+ 8373: 0x748F,
+ 8374: 0x7491,
+ 8375: 0x7492,
+ 8376: 0x7493,
+ 8377: 0x7494,
+ 8378: 0x7495,
+ 8379: 0x7496,
+ 8380: 0x7497,
+ 8381: 0x7498,
+ 8382: 0x7499,
+ 8383: 0x749A,
+ 8384: 0x749B,
+ 8385: 0x749D,
+ 8386: 0x749F,
+ 8387: 0x74A0,
+ 8388: 0x74A1,
+ 8389: 0x74A2,
+ 8390: 0x74A3,
+ 8391: 0x74A4,
+ 8392: 0x74A5,
+ 8393: 0x74A6,
+ 8394: 0x74AA,
+ 8395: 0x74AB,
+ 8396: 0x74AC,
+ 8397: 0x74AD,
+ 8398: 0x74AE,
+ 8399: 0x74AF,
+ 8400: 0x74B0,
+ 8401: 0x74B1,
+ 8402: 0x74B2,
+ 8403: 0x74B3,
+ 8404: 0x74B4,
+ 8405: 0x74B5,
+ 8406: 0x74B6,
+ 8407: 0x74B7,
+ 8408: 0x74B8,
+ 8409: 0x74B9,
+ 8410: 0x74BB,
+ 8411: 0x74BC,
+ 8412: 0x74BD,
+ 8413: 0x74BE,
+ 8414: 0x74BF,
+ 8415: 0x74C0,
+ 8416: 0x74C1,
+ 8417: 0x74C2,
+ 8418: 0x74C3,
+ 8419: 0x74C4,
+ 8420: 0x74C5,
+ 8421: 0x74C6,
+ 8422: 0x74C7,
+ 8423: 0x74C8,
+ 8424: 0x74C9,
+ 8425: 0x74CA,
+ 8426: 0x74CB,
+ 8427: 0x74CC,
+ 8428: 0x74CD,
+ 8429: 0x74CE,
+ 8430: 0x74CF,
+ 8431: 0x74D0,
+ 8432: 0x74D1,
+ 8433: 0x74D3,
+ 8434: 0x74D4,
+ 8435: 0x74D5,
+ 8436: 0x74D6,
+ 8437: 0x74D7,
+ 8438: 0x74D8,
+ 8439: 0x74D9,
+ 8440: 0x74DA,
+ 8441: 0x74DB,
+ 8442: 0x74DD,
+ 8443: 0x74DF,
+ 8444: 0x74E1,
+ 8445: 0x74E5,
+ 8446: 0x74E7,
+ 8447: 0x74E8,
+ 8448: 0x74E9,
+ 8449: 0x74EA,
+ 8450: 0x74EB,
+ 8451: 0x74EC,
+ 8452: 0x74ED,
+ 8453: 0x74F0,
+ 8454: 0x74F1,
+ 8455: 0x74F2,
+ 8550: 0x74F3,
+ 8551: 0x74F5,
+ 8552: 0x74F8,
+ 8553: 0x74F9,
+ 8554: 0x74FA,
+ 8555: 0x74FB,
+ 8556: 0x74FC,
+ 8557: 0x74FD,
+ 8558: 0x74FE,
+ 8559: 0x7500,
+ 8560: 0x7501,
+ 8561: 0x7502,
+ 8562: 0x7503,
+ 8563: 0x7505,
+ 8564: 0x7506,
+ 8565: 0x7507,
+ 8566: 0x7508,
+ 8567: 0x7509,
+ 8568: 0x750A,
+ 8569: 0x750B,
+ 8570: 0x750C,
+ 8571: 0x750E,
+ 8572: 0x7510,
+ 8573: 0x7512,
+ 8574: 0x7514,
+ 8575: 0x7515,
+ 8576: 0x7516,
+ 8577: 0x7517,
+ 8578: 0x751B,
+ 8579: 0x751D,
+ 8580: 0x751E,
+ 8581: 0x7520,
+ 8582: 0x7521,
+ 8583: 0x7522,
+ 8584: 0x7523,
+ 8585: 0x7524,
+ 8586: 0x7526,
+ 8587: 0x7527,
+ 8588: 0x752A,
+ 8589: 0x752E,
+ 8590: 0x7534,
+ 8591: 0x7536,
+ 8592: 0x7539,
+ 8593: 0x753C,
+ 8594: 0x753D,
+ 8595: 0x753F,
+ 8596: 0x7541,
+ 8597: 0x7542,
+ 8598: 0x7543,
+ 8599: 0x7544,
+ 8600: 0x7546,
+ 8601: 0x7547,
+ 8602: 0x7549,
+ 8603: 0x754A,
+ 8604: 0x754D,
+ 8605: 0x7550,
+ 8606: 0x7551,
+ 8607: 0x7552,
+ 8608: 0x7553,
+ 8609: 0x7555,
+ 8610: 0x7556,
+ 8611: 0x7557,
+ 8612: 0x7558,
+ 8613: 0x755D,
+ 8614: 0x755E,
+ 8615: 0x755F,
+ 8616: 0x7560,
+ 8617: 0x7561,
+ 8618: 0x7562,
+ 8619: 0x7563,
+ 8620: 0x7564,
+ 8621: 0x7567,
+ 8622: 0x7568,
+ 8623: 0x7569,
+ 8624: 0x756B,
+ 8625: 0x756C,
+ 8626: 0x756D,
+ 8627: 0x756E,
+ 8628: 0x756F,
+ 8629: 0x7570,
+ 8630: 0x7571,
+ 8631: 0x7573,
+ 8632: 0x7575,
+ 8633: 0x7576,
+ 8634: 0x7577,
+ 8635: 0x757A,
+ 8636: 0x757B,
+ 8637: 0x757C,
+ 8638: 0x757D,
+ 8639: 0x757E,
+ 8640: 0x7580,
+ 8641: 0x7581,
+ 8642: 0x7582,
+ 8643: 0x7584,
+ 8644: 0x7585,
+ 8645: 0x7587,
+ 8740: 0x7588,
+ 8741: 0x7589,
+ 8742: 0x758A,
+ 8743: 0x758C,
+ 8744: 0x758D,
+ 8745: 0x758E,
+ 8746: 0x7590,
+ 8747: 0x7593,
+ 8748: 0x7595,
+ 8749: 0x7598,
+ 8750: 0x759B,
+ 8751: 0x759C,
+ 8752: 0x759E,
+ 8753: 0x75A2,
+ 8754: 0x75A6,
+ 8755: 0x75A7,
+ 8756: 0x75A8,
+ 8757: 0x75A9,
+ 8758: 0x75AA,
+ 8759: 0x75AD,
+ 8760: 0x75B6,
+ 8761: 0x75B7,
+ 8762: 0x75BA,
+ 8763: 0x75BB,
+ 8764: 0x75BF,
+ 8765: 0x75C0,
+ 8766: 0x75C1,
+ 8767: 0x75C6,
+ 8768: 0x75CB,
+ 8769: 0x75CC,
+ 8770: 0x75CE,
+ 8771: 0x75CF,
+ 8772: 0x75D0,
+ 8773: 0x75D1,
+ 8774: 0x75D3,
+ 8775: 0x75D7,
+ 8776: 0x75D9,
+ 8777: 0x75DA,
+ 8778: 0x75DC,
+ 8779: 0x75DD,
+ 8780: 0x75DF,
+ 8781: 0x75E0,
+ 8782: 0x75E1,
+ 8783: 0x75E5,
+ 8784: 0x75E9,
+ 8785: 0x75EC,
+ 8786: 0x75ED,
+ 8787: 0x75EE,
+ 8788: 0x75EF,
+ 8789: 0x75F2,
+ 8790: 0x75F3,
+ 8791: 0x75F5,
+ 8792: 0x75F6,
+ 8793: 0x75F7,
+ 8794: 0x75F8,
+ 8795: 0x75FA,
+ 8796: 0x75FB,
+ 8797: 0x75FD,
+ 8798: 0x75FE,
+ 8799: 0x7602,
+ 8800: 0x7604,
+ 8801: 0x7606,
+ 8802: 0x7607,
+ 8803: 0x7608,
+ 8804: 0x7609,
+ 8805: 0x760B,
+ 8806: 0x760D,
+ 8807: 0x760E,
+ 8808: 0x760F,
+ 8809: 0x7611,
+ 8810: 0x7612,
+ 8811: 0x7613,
+ 8812: 0x7614,
+ 8813: 0x7616,
+ 8814: 0x761A,
+ 8815: 0x761C,
+ 8816: 0x761D,
+ 8817: 0x761E,
+ 8818: 0x7621,
+ 8819: 0x7623,
+ 8820: 0x7627,
+ 8821: 0x7628,
+ 8822: 0x762C,
+ 8823: 0x762E,
+ 8824: 0x762F,
+ 8825: 0x7631,
+ 8826: 0x7632,
+ 8827: 0x7636,
+ 8828: 0x7637,
+ 8829: 0x7639,
+ 8830: 0x763A,
+ 8831: 0x763B,
+ 8832: 0x763D,
+ 8833: 0x7641,
+ 8834: 0x7642,
+ 8835: 0x7644,
+ 8930: 0x7645,
+ 8931: 0x7646,
+ 8932: 0x7647,
+ 8933: 0x7648,
+ 8934: 0x7649,
+ 8935: 0x764A,
+ 8936: 0x764B,
+ 8937: 0x764E,
+ 8938: 0x764F,
+ 8939: 0x7650,
+ 8940: 0x7651,
+ 8941: 0x7652,
+ 8942: 0x7653,
+ 8943: 0x7655,
+ 8944: 0x7657,
+ 8945: 0x7658,
+ 8946: 0x7659,
+ 8947: 0x765A,
+ 8948: 0x765B,
+ 8949: 0x765D,
+ 8950: 0x765F,
+ 8951: 0x7660,
+ 8952: 0x7661,
+ 8953: 0x7662,
+ 8954: 0x7664,
+ 8955: 0x7665,
+ 8956: 0x7666,
+ 8957: 0x7667,
+ 8958: 0x7668,
+ 8959: 0x7669,
+ 8960: 0x766A,
+ 8961: 0x766C,
+ 8962: 0x766D,
+ 8963: 0x766E,
+ 8964: 0x7670,
+ 8965: 0x7671,
+ 8966: 0x7672,
+ 8967: 0x7673,
+ 8968: 0x7674,
+ 8969: 0x7675,
+ 8970: 0x7676,
+ 8971: 0x7677,
+ 8972: 0x7679,
+ 8973: 0x767A,
+ 8974: 0x767C,
+ 8975: 0x767F,
+ 8976: 0x7680,
+ 8977: 0x7681,
+ 8978: 0x7683,
+ 8979: 0x7685,
+ 8980: 0x7689,
+ 8981: 0x768A,
+ 8982: 0x768C,
+ 8983: 0x768D,
+ 8984: 0x768F,
+ 8985: 0x7690,
+ 8986: 0x7692,
+ 8987: 0x7694,
+ 8988: 0x7695,
+ 8989: 0x7697,
+ 8990: 0x7698,
+ 8991: 0x769A,
+ 8992: 0x769B,
+ 8993: 0x769C,
+ 8994: 0x769D,
+ 8995: 0x769E,
+ 8996: 0x769F,
+ 8997: 0x76A0,
+ 8998: 0x76A1,
+ 8999: 0x76A2,
+ 9000: 0x76A3,
+ 9001: 0x76A5,
+ 9002: 0x76A6,
+ 9003: 0x76A7,
+ 9004: 0x76A8,
+ 9005: 0x76A9,
+ 9006: 0x76AA,
+ 9007: 0x76AB,
+ 9008: 0x76AC,
+ 9009: 0x76AD,
+ 9010: 0x76AF,
+ 9011: 0x76B0,
+ 9012: 0x76B3,
+ 9013: 0x76B5,
+ 9014: 0x76B6,
+ 9015: 0x76B7,
+ 9016: 0x76B8,
+ 9017: 0x76B9,
+ 9018: 0x76BA,
+ 9019: 0x76BB,
+ 9020: 0x76BC,
+ 9021: 0x76BD,
+ 9022: 0x76BE,
+ 9023: 0x76C0,
+ 9024: 0x76C1,
+ 9025: 0x76C3,
+ 9026: 0x554A,
+ 9027: 0x963F,
+ 9028: 0x57C3,
+ 9029: 0x6328,
+ 9030: 0x54CE,
+ 9031: 0x5509,
+ 9032: 0x54C0,
+ 9033: 0x7691,
+ 9034: 0x764C,
+ 9035: 0x853C,
+ 9036: 0x77EE,
+ 9037: 0x827E,
+ 9038: 0x788D,
+ 9039: 0x7231,
+ 9040: 0x9698,
+ 9041: 0x978D,
+ 9042: 0x6C28,
+ 9043: 0x5B89,
+ 9044: 0x4FFA,
+ 9045: 0x6309,
+ 9046: 0x6697,
+ 9047: 0x5CB8,
+ 9048: 0x80FA,
+ 9049: 0x6848,
+ 9050: 0x80AE,
+ 9051: 0x6602,
+ 9052: 0x76CE,
+ 9053: 0x51F9,
+ 9054: 0x6556,
+ 9055: 0x71AC,
+ 9056: 0x7FF1,
+ 9057: 0x8884,
+ 9058: 0x50B2,
+ 9059: 0x5965,
+ 9060: 0x61CA,
+ 9061: 0x6FB3,
+ 9062: 0x82AD,
+ 9063: 0x634C,
+ 9064: 0x6252,
+ 9065: 0x53ED,
+ 9066: 0x5427,
+ 9067: 0x7B06,
+ 9068: 0x516B,
+ 9069: 0x75A4,
+ 9070: 0x5DF4,
+ 9071: 0x62D4,
+ 9072: 0x8DCB,
+ 9073: 0x9776,
+ 9074: 0x628A,
+ 9075: 0x8019,
+ 9076: 0x575D,
+ 9077: 0x9738,
+ 9078: 0x7F62,
+ 9079: 0x7238,
+ 9080: 0x767D,
+ 9081: 0x67CF,
+ 9082: 0x767E,
+ 9083: 0x6446,
+ 9084: 0x4F70,
+ 9085: 0x8D25,
+ 9086: 0x62DC,
+ 9087: 0x7A17,
+ 9088: 0x6591,
+ 9089: 0x73ED,
+ 9090: 0x642C,
+ 9091: 0x6273,
+ 9092: 0x822C,
+ 9093: 0x9881,
+ 9094: 0x677F,
+ 9095: 0x7248,
+ 9096: 0x626E,
+ 9097: 0x62CC,
+ 9098: 0x4F34,
+ 9099: 0x74E3,
+ 9100: 0x534A,
+ 9101: 0x529E,
+ 9102: 0x7ECA,
+ 9103: 0x90A6,
+ 9104: 0x5E2E,
+ 9105: 0x6886,
+ 9106: 0x699C,
+ 9107: 0x8180,
+ 9108: 0x7ED1,
+ 9109: 0x68D2,
+ 9110: 0x78C5,
+ 9111: 0x868C,
+ 9112: 0x9551,
+ 9113: 0x508D,
+ 9114: 0x8C24,
+ 9115: 0x82DE,
+ 9116: 0x80DE,
+ 9117: 0x5305,
+ 9118: 0x8912,
+ 9119: 0x5265,
+ 9120: 0x76C4,
+ 9121: 0x76C7,
+ 9122: 0x76C9,
+ 9123: 0x76CB,
+ 9124: 0x76CC,
+ 9125: 0x76D3,
+ 9126: 0x76D5,
+ 9127: 0x76D9,
+ 9128: 0x76DA,
+ 9129: 0x76DC,
+ 9130: 0x76DD,
+ 9131: 0x76DE,
+ 9132: 0x76E0,
+ 9133: 0x76E1,
+ 9134: 0x76E2,
+ 9135: 0x76E3,
+ 9136: 0x76E4,
+ 9137: 0x76E6,
+ 9138: 0x76E7,
+ 9139: 0x76E8,
+ 9140: 0x76E9,
+ 9141: 0x76EA,
+ 9142: 0x76EB,
+ 9143: 0x76EC,
+ 9144: 0x76ED,
+ 9145: 0x76F0,
+ 9146: 0x76F3,
+ 9147: 0x76F5,
+ 9148: 0x76F6,
+ 9149: 0x76F7,
+ 9150: 0x76FA,
+ 9151: 0x76FB,
+ 9152: 0x76FD,
+ 9153: 0x76FF,
+ 9154: 0x7700,
+ 9155: 0x7702,
+ 9156: 0x7703,
+ 9157: 0x7705,
+ 9158: 0x7706,
+ 9159: 0x770A,
+ 9160: 0x770C,
+ 9161: 0x770E,
+ 9162: 0x770F,
+ 9163: 0x7710,
+ 9164: 0x7711,
+ 9165: 0x7712,
+ 9166: 0x7713,
+ 9167: 0x7714,
+ 9168: 0x7715,
+ 9169: 0x7716,
+ 9170: 0x7717,
+ 9171: 0x7718,
+ 9172: 0x771B,
+ 9173: 0x771C,
+ 9174: 0x771D,
+ 9175: 0x771E,
+ 9176: 0x7721,
+ 9177: 0x7723,
+ 9178: 0x7724,
+ 9179: 0x7725,
+ 9180: 0x7727,
+ 9181: 0x772A,
+ 9182: 0x772B,
+ 9183: 0x772C,
+ 9184: 0x772E,
+ 9185: 0x7730,
+ 9186: 0x7731,
+ 9187: 0x7732,
+ 9188: 0x7733,
+ 9189: 0x7734,
+ 9190: 0x7739,
+ 9191: 0x773B,
+ 9192: 0x773D,
+ 9193: 0x773E,
+ 9194: 0x773F,
+ 9195: 0x7742,
+ 9196: 0x7744,
+ 9197: 0x7745,
+ 9198: 0x7746,
+ 9199: 0x7748,
+ 9200: 0x7749,
+ 9201: 0x774A,
+ 9202: 0x774B,
+ 9203: 0x774C,
+ 9204: 0x774D,
+ 9205: 0x774E,
+ 9206: 0x774F,
+ 9207: 0x7752,
+ 9208: 0x7753,
+ 9209: 0x7754,
+ 9210: 0x7755,
+ 9211: 0x7756,
+ 9212: 0x7757,
+ 9213: 0x7758,
+ 9214: 0x7759,
+ 9215: 0x775C,
+ 9216: 0x8584,
+ 9217: 0x96F9,
+ 9218: 0x4FDD,
+ 9219: 0x5821,
+ 9220: 0x9971,
+ 9221: 0x5B9D,
+ 9222: 0x62B1,
+ 9223: 0x62A5,
+ 9224: 0x66B4,
+ 9225: 0x8C79,
+ 9226: 0x9C8D,
+ 9227: 0x7206,
+ 9228: 0x676F,
+ 9229: 0x7891,
+ 9230: 0x60B2,
+ 9231: 0x5351,
+ 9232: 0x5317,
+ 9233: 0x8F88,
+ 9234: 0x80CC,
+ 9235: 0x8D1D,
+ 9236: 0x94A1,
+ 9237: 0x500D,
+ 9238: 0x72C8,
+ 9239: 0x5907,
+ 9240: 0x60EB,
+ 9241: 0x7119,
+ 9242: 0x88AB,
+ 9243: 0x5954,
+ 9244: 0x82EF,
+ 9245: 0x672C,
+ 9246: 0x7B28,
+ 9247: 0x5D29,
+ 9248: 0x7EF7,
+ 9249: 0x752D,
+ 9250: 0x6CF5,
+ 9251: 0x8E66,
+ 9252: 0x8FF8,
+ 9253: 0x903C,
+ 9254: 0x9F3B,
+ 9255: 0x6BD4,
+ 9256: 0x9119,
+ 9257: 0x7B14,
+ 9258: 0x5F7C,
+ 9259: 0x78A7,
+ 9260: 0x84D6,
+ 9261: 0x853D,
+ 9262: 0x6BD5,
+ 9263: 0x6BD9,
+ 9264: 0x6BD6,
+ 9265: 0x5E01,
+ 9266: 0x5E87,
+ 9267: 0x75F9,
+ 9268: 0x95ED,
+ 9269: 0x655D,
+ 9270: 0x5F0A,
+ 9271: 0x5FC5,
+ 9272: 0x8F9F,
+ 9273: 0x58C1,
+ 9274: 0x81C2,
+ 9275: 0x907F,
+ 9276: 0x965B,
+ 9277: 0x97AD,
+ 9278: 0x8FB9,
+ 9279: 0x7F16,
+ 9280: 0x8D2C,
+ 9281: 0x6241,
+ 9282: 0x4FBF,
+ 9283: 0x53D8,
+ 9284: 0x535E,
+ 9285: 0x8FA8,
+ 9286: 0x8FA9,
+ 9287: 0x8FAB,
+ 9288: 0x904D,
+ 9289: 0x6807,
+ 9290: 0x5F6A,
+ 9291: 0x8198,
+ 9292: 0x8868,
+ 9293: 0x9CD6,
+ 9294: 0x618B,
+ 9295: 0x522B,
+ 9296: 0x762A,
+ 9297: 0x5F6C,
+ 9298: 0x658C,
+ 9299: 0x6FD2,
+ 9300: 0x6EE8,
+ 9301: 0x5BBE,
+ 9302: 0x6448,
+ 9303: 0x5175,
+ 9304: 0x51B0,
+ 9305: 0x67C4,
+ 9306: 0x4E19,
+ 9307: 0x79C9,
+ 9308: 0x997C,
+ 9309: 0x70B3,
+ 9310: 0x775D,
+ 9311: 0x775E,
+ 9312: 0x775F,
+ 9313: 0x7760,
+ 9314: 0x7764,
+ 9315: 0x7767,
+ 9316: 0x7769,
+ 9317: 0x776A,
+ 9318: 0x776D,
+ 9319: 0x776E,
+ 9320: 0x776F,
+ 9321: 0x7770,
+ 9322: 0x7771,
+ 9323: 0x7772,
+ 9324: 0x7773,
+ 9325: 0x7774,
+ 9326: 0x7775,
+ 9327: 0x7776,
+ 9328: 0x7777,
+ 9329: 0x7778,
+ 9330: 0x777A,
+ 9331: 0x777B,
+ 9332: 0x777C,
+ 9333: 0x7781,
+ 9334: 0x7782,
+ 9335: 0x7783,
+ 9336: 0x7786,
+ 9337: 0x7787,
+ 9338: 0x7788,
+ 9339: 0x7789,
+ 9340: 0x778A,
+ 9341: 0x778B,
+ 9342: 0x778F,
+ 9343: 0x7790,
+ 9344: 0x7793,
+ 9345: 0x7794,
+ 9346: 0x7795,
+ 9347: 0x7796,
+ 9348: 0x7797,
+ 9349: 0x7798,
+ 9350: 0x7799,
+ 9351: 0x779A,
+ 9352: 0x779B,
+ 9353: 0x779C,
+ 9354: 0x779D,
+ 9355: 0x779E,
+ 9356: 0x77A1,
+ 9357: 0x77A3,
+ 9358: 0x77A4,
+ 9359: 0x77A6,
+ 9360: 0x77A8,
+ 9361: 0x77AB,
+ 9362: 0x77AD,
+ 9363: 0x77AE,
+ 9364: 0x77AF,
+ 9365: 0x77B1,
+ 9366: 0x77B2,
+ 9367: 0x77B4,
+ 9368: 0x77B6,
+ 9369: 0x77B7,
+ 9370: 0x77B8,
+ 9371: 0x77B9,
+ 9372: 0x77BA,
+ 9373: 0x77BC,
+ 9374: 0x77BE,
+ 9375: 0x77C0,
+ 9376: 0x77C1,
+ 9377: 0x77C2,
+ 9378: 0x77C3,
+ 9379: 0x77C4,
+ 9380: 0x77C5,
+ 9381: 0x77C6,
+ 9382: 0x77C7,
+ 9383: 0x77C8,
+ 9384: 0x77C9,
+ 9385: 0x77CA,
+ 9386: 0x77CB,
+ 9387: 0x77CC,
+ 9388: 0x77CE,
+ 9389: 0x77CF,
+ 9390: 0x77D0,
+ 9391: 0x77D1,
+ 9392: 0x77D2,
+ 9393: 0x77D3,
+ 9394: 0x77D4,
+ 9395: 0x77D5,
+ 9396: 0x77D6,
+ 9397: 0x77D8,
+ 9398: 0x77D9,
+ 9399: 0x77DA,
+ 9400: 0x77DD,
+ 9401: 0x77DE,
+ 9402: 0x77DF,
+ 9403: 0x77E0,
+ 9404: 0x77E1,
+ 9405: 0x77E4,
+ 9406: 0x75C5,
+ 9407: 0x5E76,
+ 9408: 0x73BB,
+ 9409: 0x83E0,
+ 9410: 0x64AD,
+ 9411: 0x62E8,
+ 9412: 0x94B5,
+ 9413: 0x6CE2,
+ 9414: 0x535A,
+ 9415: 0x52C3,
+ 9416: 0x640F,
+ 9417: 0x94C2,
+ 9418: 0x7B94,
+ 9419: 0x4F2F,
+ 9420: 0x5E1B,
+ 9421: 0x8236,
+ 9422: 0x8116,
+ 9423: 0x818A,
+ 9424: 0x6E24,
+ 9425: 0x6CCA,
+ 9426: 0x9A73,
+ 9427: 0x6355,
+ 9428: 0x535C,
+ 9429: 0x54FA,
+ 9430: 0x8865,
+ 9431: 0x57E0,
+ 9432: 0x4E0D,
+ 9433: 0x5E03,
+ 9434: 0x6B65,
+ 9435: 0x7C3F,
+ 9436: 0x90E8,
+ 9437: 0x6016,
+ 9438: 0x64E6,
+ 9439: 0x731C,
+ 9440: 0x88C1,
+ 9441: 0x6750,
+ 9442: 0x624D,
+ 9443: 0x8D22,
+ 9444: 0x776C,
+ 9445: 0x8E29,
+ 9446: 0x91C7,
+ 9447: 0x5F69,
+ 9448: 0x83DC,
+ 9449: 0x8521,
+ 9450: 0x9910,
+ 9451: 0x53C2,
+ 9452: 0x8695,
+ 9453: 0x6B8B,
+ 9454: 0x60ED,
+ 9455: 0x60E8,
+ 9456: 0x707F,
+ 9457: 0x82CD,
+ 9458: 0x8231,
+ 9459: 0x4ED3,
+ 9460: 0x6CA7,
+ 9461: 0x85CF,
+ 9462: 0x64CD,
+ 9463: 0x7CD9,
+ 9464: 0x69FD,
+ 9465: 0x66F9,
+ 9466: 0x8349,
+ 9467: 0x5395,
+ 9468: 0x7B56,
+ 9469: 0x4FA7,
+ 9470: 0x518C,
+ 9471: 0x6D4B,
+ 9472: 0x5C42,
+ 9473: 0x8E6D,
+ 9474: 0x63D2,
+ 9475: 0x53C9,
+ 9476: 0x832C,
+ 9477: 0x8336,
+ 9478: 0x67E5,
+ 9479: 0x78B4,
+ 9480: 0x643D,
+ 9481: 0x5BDF,
+ 9482: 0x5C94,
+ 9483: 0x5DEE,
+ 9484: 0x8BE7,
+ 9485: 0x62C6,
+ 9486: 0x67F4,
+ 9487: 0x8C7A,
+ 9488: 0x6400,
+ 9489: 0x63BA,
+ 9490: 0x8749,
+ 9491: 0x998B,
+ 9492: 0x8C17,
+ 9493: 0x7F20,
+ 9494: 0x94F2,
+ 9495: 0x4EA7,
+ 9496: 0x9610,
+ 9497: 0x98A4,
+ 9498: 0x660C,
+ 9499: 0x7316,
+ 9500: 0x77E6,
+ 9501: 0x77E8,
+ 9502: 0x77EA,
+ 9503: 0x77EF,
+ 9504: 0x77F0,
+ 9505: 0x77F1,
+ 9506: 0x77F2,
+ 9507: 0x77F4,
+ 9508: 0x77F5,
+ 9509: 0x77F7,
+ 9510: 0x77F9,
+ 9511: 0x77FA,
+ 9512: 0x77FB,
+ 9513: 0x77FC,
+ 9514: 0x7803,
+ 9515: 0x7804,
+ 9516: 0x7805,
+ 9517: 0x7806,
+ 9518: 0x7807,
+ 9519: 0x7808,
+ 9520: 0x780A,
+ 9521: 0x780B,
+ 9522: 0x780E,
+ 9523: 0x780F,
+ 9524: 0x7810,
+ 9525: 0x7813,
+ 9526: 0x7815,
+ 9527: 0x7819,
+ 9528: 0x781B,
+ 9529: 0x781E,
+ 9530: 0x7820,
+ 9531: 0x7821,
+ 9532: 0x7822,
+ 9533: 0x7824,
+ 9534: 0x7828,
+ 9535: 0x782A,
+ 9536: 0x782B,
+ 9537: 0x782E,
+ 9538: 0x782F,
+ 9539: 0x7831,
+ 9540: 0x7832,
+ 9541: 0x7833,
+ 9542: 0x7835,
+ 9543: 0x7836,
+ 9544: 0x783D,
+ 9545: 0x783F,
+ 9546: 0x7841,
+ 9547: 0x7842,
+ 9548: 0x7843,
+ 9549: 0x7844,
+ 9550: 0x7846,
+ 9551: 0x7848,
+ 9552: 0x7849,
+ 9553: 0x784A,
+ 9554: 0x784B,
+ 9555: 0x784D,
+ 9556: 0x784F,
+ 9557: 0x7851,
+ 9558: 0x7853,
+ 9559: 0x7854,
+ 9560: 0x7858,
+ 9561: 0x7859,
+ 9562: 0x785A,
+ 9563: 0x785B,
+ 9564: 0x785C,
+ 9565: 0x785E,
+ 9566: 0x785F,
+ 9567: 0x7860,
+ 9568: 0x7861,
+ 9569: 0x7862,
+ 9570: 0x7863,
+ 9571: 0x7864,
+ 9572: 0x7865,
+ 9573: 0x7866,
+ 9574: 0x7867,
+ 9575: 0x7868,
+ 9576: 0x7869,
+ 9577: 0x786F,
+ 9578: 0x7870,
+ 9579: 0x7871,
+ 9580: 0x7872,
+ 9581: 0x7873,
+ 9582: 0x7874,
+ 9583: 0x7875,
+ 9584: 0x7876,
+ 9585: 0x7878,
+ 9586: 0x7879,
+ 9587: 0x787A,
+ 9588: 0x787B,
+ 9589: 0x787D,
+ 9590: 0x787E,
+ 9591: 0x787F,
+ 9592: 0x7880,
+ 9593: 0x7881,
+ 9594: 0x7882,
+ 9595: 0x7883,
+ 9596: 0x573A,
+ 9597: 0x5C1D,
+ 9598: 0x5E38,
+ 9599: 0x957F,
+ 9600: 0x507F,
+ 9601: 0x80A0,
+ 9602: 0x5382,
+ 9603: 0x655E,
+ 9604: 0x7545,
+ 9605: 0x5531,
+ 9606: 0x5021,
+ 9607: 0x8D85,
+ 9608: 0x6284,
+ 9609: 0x949E,
+ 9610: 0x671D,
+ 9611: 0x5632,
+ 9612: 0x6F6E,
+ 9613: 0x5DE2,
+ 9614: 0x5435,
+ 9615: 0x7092,
+ 9616: 0x8F66,
+ 9617: 0x626F,
+ 9618: 0x64A4,
+ 9619: 0x63A3,
+ 9620: 0x5F7B,
+ 9621: 0x6F88,
+ 9622: 0x90F4,
+ 9623: 0x81E3,
+ 9624: 0x8FB0,
+ 9625: 0x5C18,
+ 9626: 0x6668,
+ 9627: 0x5FF1,
+ 9628: 0x6C89,
+ 9629: 0x9648,
+ 9630: 0x8D81,
+ 9631: 0x886C,
+ 9632: 0x6491,
+ 9633: 0x79F0,
+ 9634: 0x57CE,
+ 9635: 0x6A59,
+ 9636: 0x6210,
+ 9637: 0x5448,
+ 9638: 0x4E58,
+ 9639: 0x7A0B,
+ 9640: 0x60E9,
+ 9641: 0x6F84,
+ 9642: 0x8BDA,
+ 9643: 0x627F,
+ 9644: 0x901E,
+ 9645: 0x9A8B,
+ 9646: 0x79E4,
+ 9647: 0x5403,
+ 9648: 0x75F4,
+ 9649: 0x6301,
+ 9650: 0x5319,
+ 9651: 0x6C60,
+ 9652: 0x8FDF,
+ 9653: 0x5F1B,
+ 9654: 0x9A70,
+ 9655: 0x803B,
+ 9656: 0x9F7F,
+ 9657: 0x4F88,
+ 9658: 0x5C3A,
+ 9659: 0x8D64,
+ 9660: 0x7FC5,
+ 9661: 0x65A5,
+ 9662: 0x70BD,
+ 9663: 0x5145,
+ 9664: 0x51B2,
+ 9665: 0x866B,
+ 9666: 0x5D07,
+ 9667: 0x5BA0,
+ 9668: 0x62BD,
+ 9669: 0x916C,
+ 9670: 0x7574,
+ 9671: 0x8E0C,
+ 9672: 0x7A20,
+ 9673: 0x6101,
+ 9674: 0x7B79,
+ 9675: 0x4EC7,
+ 9676: 0x7EF8,
+ 9677: 0x7785,
+ 9678: 0x4E11,
+ 9679: 0x81ED,
+ 9680: 0x521D,
+ 9681: 0x51FA,
+ 9682: 0x6A71,
+ 9683: 0x53A8,
+ 9684: 0x8E87,
+ 9685: 0x9504,
+ 9686: 0x96CF,
+ 9687: 0x6EC1,
+ 9688: 0x9664,
+ 9689: 0x695A,
+ 9690: 0x7884,
+ 9691: 0x7885,
+ 9692: 0x7886,
+ 9693: 0x7888,
+ 9694: 0x788A,
+ 9695: 0x788B,
+ 9696: 0x788F,
+ 9697: 0x7890,
+ 9698: 0x7892,
+ 9699: 0x7894,
+ 9700: 0x7895,
+ 9701: 0x7896,
+ 9702: 0x7899,
+ 9703: 0x789D,
+ 9704: 0x789E,
+ 9705: 0x78A0,
+ 9706: 0x78A2,
+ 9707: 0x78A4,
+ 9708: 0x78A6,
+ 9709: 0x78A8,
+ 9710: 0x78A9,
+ 9711: 0x78AA,
+ 9712: 0x78AB,
+ 9713: 0x78AC,
+ 9714: 0x78AD,
+ 9715: 0x78AE,
+ 9716: 0x78AF,
+ 9717: 0x78B5,
+ 9718: 0x78B6,
+ 9719: 0x78B7,
+ 9720: 0x78B8,
+ 9721: 0x78BA,
+ 9722: 0x78BB,
+ 9723: 0x78BC,
+ 9724: 0x78BD,
+ 9725: 0x78BF,
+ 9726: 0x78C0,
+ 9727: 0x78C2,
+ 9728: 0x78C3,
+ 9729: 0x78C4,
+ 9730: 0x78C6,
+ 9731: 0x78C7,
+ 9732: 0x78C8,
+ 9733: 0x78CC,
+ 9734: 0x78CD,
+ 9735: 0x78CE,
+ 9736: 0x78CF,
+ 9737: 0x78D1,
+ 9738: 0x78D2,
+ 9739: 0x78D3,
+ 9740: 0x78D6,
+ 9741: 0x78D7,
+ 9742: 0x78D8,
+ 9743: 0x78DA,
+ 9744: 0x78DB,
+ 9745: 0x78DC,
+ 9746: 0x78DD,
+ 9747: 0x78DE,
+ 9748: 0x78DF,
+ 9749: 0x78E0,
+ 9750: 0x78E1,
+ 9751: 0x78E2,
+ 9752: 0x78E3,
+ 9753: 0x78E4,
+ 9754: 0x78E5,
+ 9755: 0x78E6,
+ 9756: 0x78E7,
+ 9757: 0x78E9,
+ 9758: 0x78EA,
+ 9759: 0x78EB,
+ 9760: 0x78ED,
+ 9761: 0x78EE,
+ 9762: 0x78EF,
+ 9763: 0x78F0,
+ 9764: 0x78F1,
+ 9765: 0x78F3,
+ 9766: 0x78F5,
+ 9767: 0x78F6,
+ 9768: 0x78F8,
+ 9769: 0x78F9,
+ 9770: 0x78FB,
+ 9771: 0x78FC,
+ 9772: 0x78FD,
+ 9773: 0x78FE,
+ 9774: 0x78FF,
+ 9775: 0x7900,
+ 9776: 0x7902,
+ 9777: 0x7903,
+ 9778: 0x7904,
+ 9779: 0x7906,
+ 9780: 0x7907,
+ 9781: 0x7908,
+ 9782: 0x7909,
+ 9783: 0x790A,
+ 9784: 0x790B,
+ 9785: 0x790C,
+ 9786: 0x7840,
+ 9787: 0x50A8,
+ 9788: 0x77D7,
+ 9789: 0x6410,
+ 9790: 0x89E6,
+ 9791: 0x5904,
+ 9792: 0x63E3,
+ 9793: 0x5DDD,
+ 9794: 0x7A7F,
+ 9795: 0x693D,
+ 9796: 0x4F20,
+ 9797: 0x8239,
+ 9798: 0x5598,
+ 9799: 0x4E32,
+ 9800: 0x75AE,
+ 9801: 0x7A97,
+ 9802: 0x5E62,
+ 9803: 0x5E8A,
+ 9804: 0x95EF,
+ 9805: 0x521B,
+ 9806: 0x5439,
+ 9807: 0x708A,
+ 9808: 0x6376,
+ 9809: 0x9524,
+ 9810: 0x5782,
+ 9811: 0x6625,
+ 9812: 0x693F,
+ 9813: 0x9187,
+ 9814: 0x5507,
+ 9815: 0x6DF3,
+ 9816: 0x7EAF,
+ 9817: 0x8822,
+ 9818: 0x6233,
+ 9819: 0x7EF0,
+ 9820: 0x75B5,
+ 9821: 0x8328,
+ 9822: 0x78C1,
+ 9823: 0x96CC,
+ 9824: 0x8F9E,
+ 9825: 0x6148,
+ 9826: 0x74F7,
+ 9827: 0x8BCD,
+ 9828: 0x6B64,
+ 9829: 0x523A,
+ 9830: 0x8D50,
+ 9831: 0x6B21,
+ 9832: 0x806A,
+ 9833: 0x8471,
+ 9834: 0x56F1,
+ 9835: 0x5306,
+ 9836: 0x4ECE,
+ 9837: 0x4E1B,
+ 9838: 0x51D1,
+ 9839: 0x7C97,
+ 9840: 0x918B,
+ 9841: 0x7C07,
+ 9842: 0x4FC3,
+ 9843: 0x8E7F,
+ 9844: 0x7BE1,
+ 9845: 0x7A9C,
+ 9846: 0x6467,
+ 9847: 0x5D14,
+ 9848: 0x50AC,
+ 9849: 0x8106,
+ 9850: 0x7601,
+ 9851: 0x7CB9,
+ 9852: 0x6DEC,
+ 9853: 0x7FE0,
+ 9854: 0x6751,
+ 9855: 0x5B58,
+ 9856: 0x5BF8,
+ 9857: 0x78CB,
+ 9858: 0x64AE,
+ 9859: 0x6413,
+ 9860: 0x63AA,
+ 9861: 0x632B,
+ 9862: 0x9519,
+ 9863: 0x642D,
+ 9864: 0x8FBE,
+ 9865: 0x7B54,
+ 9866: 0x7629,
+ 9867: 0x6253,
+ 9868: 0x5927,
+ 9869: 0x5446,
+ 9870: 0x6B79,
+ 9871: 0x50A3,
+ 9872: 0x6234,
+ 9873: 0x5E26,
+ 9874: 0x6B86,
+ 9875: 0x4EE3,
+ 9876: 0x8D37,
+ 9877: 0x888B,
+ 9878: 0x5F85,
+ 9879: 0x902E,
+ 9880: 0x790D,
+ 9881: 0x790E,
+ 9882: 0x790F,
+ 9883: 0x7910,
+ 9884: 0x7911,
+ 9885: 0x7912,
+ 9886: 0x7914,
+ 9887: 0x7915,
+ 9888: 0x7916,
+ 9889: 0x7917,
+ 9890: 0x7918,
+ 9891: 0x7919,
+ 9892: 0x791A,
+ 9893: 0x791B,
+ 9894: 0x791C,
+ 9895: 0x791D,
+ 9896: 0x791F,
+ 9897: 0x7920,
+ 9898: 0x7921,
+ 9899: 0x7922,
+ 9900: 0x7923,
+ 9901: 0x7925,
+ 9902: 0x7926,
+ 9903: 0x7927,
+ 9904: 0x7928,
+ 9905: 0x7929,
+ 9906: 0x792A,
+ 9907: 0x792B,
+ 9908: 0x792C,
+ 9909: 0x792D,
+ 9910: 0x792E,
+ 9911: 0x792F,
+ 9912: 0x7930,
+ 9913: 0x7931,
+ 9914: 0x7932,
+ 9915: 0x7933,
+ 9916: 0x7935,
+ 9917: 0x7936,
+ 9918: 0x7937,
+ 9919: 0x7938,
+ 9920: 0x7939,
+ 9921: 0x793D,
+ 9922: 0x793F,
+ 9923: 0x7942,
+ 9924: 0x7943,
+ 9925: 0x7944,
+ 9926: 0x7945,
+ 9927: 0x7947,
+ 9928: 0x794A,
+ 9929: 0x794B,
+ 9930: 0x794C,
+ 9931: 0x794D,
+ 9932: 0x794E,
+ 9933: 0x794F,
+ 9934: 0x7950,
+ 9935: 0x7951,
+ 9936: 0x7952,
+ 9937: 0x7954,
+ 9938: 0x7955,
+ 9939: 0x7958,
+ 9940: 0x7959,
+ 9941: 0x7961,
+ 9942: 0x7963,
+ 9943: 0x7964,
+ 9944: 0x7966,
+ 9945: 0x7969,
+ 9946: 0x796A,
+ 9947: 0x796B,
+ 9948: 0x796C,
+ 9949: 0x796E,
+ 9950: 0x7970,
+ 9951: 0x7971,
+ 9952: 0x7972,
+ 9953: 0x7973,
+ 9954: 0x7974,
+ 9955: 0x7975,
+ 9956: 0x7976,
+ 9957: 0x7979,
+ 9958: 0x797B,
+ 9959: 0x797C,
+ 9960: 0x797D,
+ 9961: 0x797E,
+ 9962: 0x797F,
+ 9963: 0x7982,
+ 9964: 0x7983,
+ 9965: 0x7986,
+ 9966: 0x7987,
+ 9967: 0x7988,
+ 9968: 0x7989,
+ 9969: 0x798B,
+ 9970: 0x798C,
+ 9971: 0x798D,
+ 9972: 0x798E,
+ 9973: 0x7990,
+ 9974: 0x7991,
+ 9975: 0x7992,
+ 9976: 0x6020,
+ 9977: 0x803D,
+ 9978: 0x62C5,
+ 9979: 0x4E39,
+ 9980: 0x5355,
+ 9981: 0x90F8,
+ 9982: 0x63B8,
+ 9983: 0x80C6,
+ 9984: 0x65E6,
+ 9985: 0x6C2E,
+ 9986: 0x4F46,
+ 9987: 0x60EE,
+ 9988: 0x6DE1,
+ 9989: 0x8BDE,
+ 9990: 0x5F39,
+ 9991: 0x86CB,
+ 9992: 0x5F53,
+ 9993: 0x6321,
+ 9994: 0x515A,
+ 9995: 0x8361,
+ 9996: 0x6863,
+ 9997: 0x5200,
+ 9998: 0x6363,
+ 9999: 0x8E48,
+ 10000: 0x5012,
+ 10001: 0x5C9B,
+ 10002: 0x7977,
+ 10003: 0x5BFC,
+ 10004: 0x5230,
+ 10005: 0x7A3B,
+ 10006: 0x60BC,
+ 10007: 0x9053,
+ 10008: 0x76D7,
+ 10009: 0x5FB7,
+ 10010: 0x5F97,
+ 10011: 0x7684,
+ 10012: 0x8E6C,
+ 10013: 0x706F,
+ 10014: 0x767B,
+ 10015: 0x7B49,
+ 10016: 0x77AA,
+ 10017: 0x51F3,
+ 10018: 0x9093,
+ 10019: 0x5824,
+ 10020: 0x4F4E,
+ 10021: 0x6EF4,
+ 10022: 0x8FEA,
+ 10023: 0x654C,
+ 10024: 0x7B1B,
+ 10025: 0x72C4,
+ 10026: 0x6DA4,
+ 10027: 0x7FDF,
+ 10028: 0x5AE1,
+ 10029: 0x62B5,
+ 10030: 0x5E95,
+ 10031: 0x5730,
+ 10032: 0x8482,
+ 10033: 0x7B2C,
+ 10034: 0x5E1D,
+ 10035: 0x5F1F,
+ 10036: 0x9012,
+ 10037: 0x7F14,
+ 10038: 0x98A0,
+ 10039: 0x6382,
+ 10040: 0x6EC7,
+ 10041: 0x7898,
+ 10042: 0x70B9,
+ 10043: 0x5178,
+ 10044: 0x975B,
+ 10045: 0x57AB,
+ 10046: 0x7535,
+ 10047: 0x4F43,
+ 10048: 0x7538,
+ 10049: 0x5E97,
+ 10050: 0x60E6,
+ 10051: 0x5960,
+ 10052: 0x6DC0,
+ 10053: 0x6BBF,
+ 10054: 0x7889,
+ 10055: 0x53FC,
+ 10056: 0x96D5,
+ 10057: 0x51CB,
+ 10058: 0x5201,
+ 10059: 0x6389,
+ 10060: 0x540A,
+ 10061: 0x9493,
+ 10062: 0x8C03,
+ 10063: 0x8DCC,
+ 10064: 0x7239,
+ 10065: 0x789F,
+ 10066: 0x8776,
+ 10067: 0x8FED,
+ 10068: 0x8C0D,
+ 10069: 0x53E0,
+ 10070: 0x7993,
+ 10071: 0x7994,
+ 10072: 0x7995,
+ 10073: 0x7996,
+ 10074: 0x7997,
+ 10075: 0x7998,
+ 10076: 0x7999,
+ 10077: 0x799B,
+ 10078: 0x799C,
+ 10079: 0x799D,
+ 10080: 0x799E,
+ 10081: 0x799F,
+ 10082: 0x79A0,
+ 10083: 0x79A1,
+ 10084: 0x79A2,
+ 10085: 0x79A3,
+ 10086: 0x79A4,
+ 10087: 0x79A5,
+ 10088: 0x79A6,
+ 10089: 0x79A8,
+ 10090: 0x79A9,
+ 10091: 0x79AA,
+ 10092: 0x79AB,
+ 10093: 0x79AC,
+ 10094: 0x79AD,
+ 10095: 0x79AE,
+ 10096: 0x79AF,
+ 10097: 0x79B0,
+ 10098: 0x79B1,
+ 10099: 0x79B2,
+ 10100: 0x79B4,
+ 10101: 0x79B5,
+ 10102: 0x79B6,
+ 10103: 0x79B7,
+ 10104: 0x79B8,
+ 10105: 0x79BC,
+ 10106: 0x79BF,
+ 10107: 0x79C2,
+ 10108: 0x79C4,
+ 10109: 0x79C5,
+ 10110: 0x79C7,
+ 10111: 0x79C8,
+ 10112: 0x79CA,
+ 10113: 0x79CC,
+ 10114: 0x79CE,
+ 10115: 0x79CF,
+ 10116: 0x79D0,
+ 10117: 0x79D3,
+ 10118: 0x79D4,
+ 10119: 0x79D6,
+ 10120: 0x79D7,
+ 10121: 0x79D9,
+ 10122: 0x79DA,
+ 10123: 0x79DB,
+ 10124: 0x79DC,
+ 10125: 0x79DD,
+ 10126: 0x79DE,
+ 10127: 0x79E0,
+ 10128: 0x79E1,
+ 10129: 0x79E2,
+ 10130: 0x79E5,
+ 10131: 0x79E8,
+ 10132: 0x79EA,
+ 10133: 0x79EC,
+ 10134: 0x79EE,
+ 10135: 0x79F1,
+ 10136: 0x79F2,
+ 10137: 0x79F3,
+ 10138: 0x79F4,
+ 10139: 0x79F5,
+ 10140: 0x79F6,
+ 10141: 0x79F7,
+ 10142: 0x79F9,
+ 10143: 0x79FA,
+ 10144: 0x79FC,
+ 10145: 0x79FE,
+ 10146: 0x79FF,
+ 10147: 0x7A01,
+ 10148: 0x7A04,
+ 10149: 0x7A05,
+ 10150: 0x7A07,
+ 10151: 0x7A08,
+ 10152: 0x7A09,
+ 10153: 0x7A0A,
+ 10154: 0x7A0C,
+ 10155: 0x7A0F,
+ 10156: 0x7A10,
+ 10157: 0x7A11,
+ 10158: 0x7A12,
+ 10159: 0x7A13,
+ 10160: 0x7A15,
+ 10161: 0x7A16,
+ 10162: 0x7A18,
+ 10163: 0x7A19,
+ 10164: 0x7A1B,
+ 10165: 0x7A1C,
+ 10166: 0x4E01,
+ 10167: 0x76EF,
+ 10168: 0x53EE,
+ 10169: 0x9489,
+ 10170: 0x9876,
+ 10171: 0x9F0E,
+ 10172: 0x952D,
+ 10173: 0x5B9A,
+ 10174: 0x8BA2,
+ 10175: 0x4E22,
+ 10176: 0x4E1C,
+ 10177: 0x51AC,
+ 10178: 0x8463,
+ 10179: 0x61C2,
+ 10180: 0x52A8,
+ 10181: 0x680B,
+ 10182: 0x4F97,
+ 10183: 0x606B,
+ 10184: 0x51BB,
+ 10185: 0x6D1E,
+ 10186: 0x515C,
+ 10187: 0x6296,
+ 10188: 0x6597,
+ 10189: 0x9661,
+ 10190: 0x8C46,
+ 10191: 0x9017,
+ 10192: 0x75D8,
+ 10193: 0x90FD,
+ 10194: 0x7763,
+ 10195: 0x6BD2,
+ 10196: 0x728A,
+ 10197: 0x72EC,
+ 10198: 0x8BFB,
+ 10199: 0x5835,
+ 10200: 0x7779,
+ 10201: 0x8D4C,
+ 10202: 0x675C,
+ 10203: 0x9540,
+ 10204: 0x809A,
+ 10205: 0x5EA6,
+ 10206: 0x6E21,
+ 10207: 0x5992,
+ 10208: 0x7AEF,
+ 10209: 0x77ED,
+ 10210: 0x953B,
+ 10211: 0x6BB5,
+ 10212: 0x65AD,
+ 10213: 0x7F0E,
+ 10214: 0x5806,
+ 10215: 0x5151,
+ 10216: 0x961F,
+ 10217: 0x5BF9,
+ 10218: 0x58A9,
+ 10219: 0x5428,
+ 10220: 0x8E72,
+ 10221: 0x6566,
+ 10222: 0x987F,
+ 10223: 0x56E4,
+ 10224: 0x949D,
+ 10225: 0x76FE,
+ 10226: 0x9041,
+ 10227: 0x6387,
+ 10228: 0x54C6,
+ 10229: 0x591A,
+ 10230: 0x593A,
+ 10231: 0x579B,
+ 10232: 0x8EB2,
+ 10233: 0x6735,
+ 10234: 0x8DFA,
+ 10235: 0x8235,
+ 10236: 0x5241,
+ 10237: 0x60F0,
+ 10238: 0x5815,
+ 10239: 0x86FE,
+ 10240: 0x5CE8,
+ 10241: 0x9E45,
+ 10242: 0x4FC4,
+ 10243: 0x989D,
+ 10244: 0x8BB9,
+ 10245: 0x5A25,
+ 10246: 0x6076,
+ 10247: 0x5384,
+ 10248: 0x627C,
+ 10249: 0x904F,
+ 10250: 0x9102,
+ 10251: 0x997F,
+ 10252: 0x6069,
+ 10253: 0x800C,
+ 10254: 0x513F,
+ 10255: 0x8033,
+ 10256: 0x5C14,
+ 10257: 0x9975,
+ 10258: 0x6D31,
+ 10259: 0x4E8C,
+ 10260: 0x7A1D,
+ 10261: 0x7A1F,
+ 10262: 0x7A21,
+ 10263: 0x7A22,
+ 10264: 0x7A24,
+ 10265: 0x7A25,
+ 10266: 0x7A26,
+ 10267: 0x7A27,
+ 10268: 0x7A28,
+ 10269: 0x7A29,
+ 10270: 0x7A2A,
+ 10271: 0x7A2B,
+ 10272: 0x7A2C,
+ 10273: 0x7A2D,
+ 10274: 0x7A2E,
+ 10275: 0x7A2F,
+ 10276: 0x7A30,
+ 10277: 0x7A31,
+ 10278: 0x7A32,
+ 10279: 0x7A34,
+ 10280: 0x7A35,
+ 10281: 0x7A36,
+ 10282: 0x7A38,
+ 10283: 0x7A3A,
+ 10284: 0x7A3E,
+ 10285: 0x7A40,
+ 10286: 0x7A41,
+ 10287: 0x7A42,
+ 10288: 0x7A43,
+ 10289: 0x7A44,
+ 10290: 0x7A45,
+ 10291: 0x7A47,
+ 10292: 0x7A48,
+ 10293: 0x7A49,
+ 10294: 0x7A4A,
+ 10295: 0x7A4B,
+ 10296: 0x7A4C,
+ 10297: 0x7A4D,
+ 10298: 0x7A4E,
+ 10299: 0x7A4F,
+ 10300: 0x7A50,
+ 10301: 0x7A52,
+ 10302: 0x7A53,
+ 10303: 0x7A54,
+ 10304: 0x7A55,
+ 10305: 0x7A56,
+ 10306: 0x7A58,
+ 10307: 0x7A59,
+ 10308: 0x7A5A,
+ 10309: 0x7A5B,
+ 10310: 0x7A5C,
+ 10311: 0x7A5D,
+ 10312: 0x7A5E,
+ 10313: 0x7A5F,
+ 10314: 0x7A60,
+ 10315: 0x7A61,
+ 10316: 0x7A62,
+ 10317: 0x7A63,
+ 10318: 0x7A64,
+ 10319: 0x7A65,
+ 10320: 0x7A66,
+ 10321: 0x7A67,
+ 10322: 0x7A68,
+ 10323: 0x7A69,
+ 10324: 0x7A6A,
+ 10325: 0x7A6B,
+ 10326: 0x7A6C,
+ 10327: 0x7A6D,
+ 10328: 0x7A6E,
+ 10329: 0x7A6F,
+ 10330: 0x7A71,
+ 10331: 0x7A72,
+ 10332: 0x7A73,
+ 10333: 0x7A75,
+ 10334: 0x7A7B,
+ 10335: 0x7A7C,
+ 10336: 0x7A7D,
+ 10337: 0x7A7E,
+ 10338: 0x7A82,
+ 10339: 0x7A85,
+ 10340: 0x7A87,
+ 10341: 0x7A89,
+ 10342: 0x7A8A,
+ 10343: 0x7A8B,
+ 10344: 0x7A8C,
+ 10345: 0x7A8E,
+ 10346: 0x7A8F,
+ 10347: 0x7A90,
+ 10348: 0x7A93,
+ 10349: 0x7A94,
+ 10350: 0x7A99,
+ 10351: 0x7A9A,
+ 10352: 0x7A9B,
+ 10353: 0x7A9E,
+ 10354: 0x7AA1,
+ 10355: 0x7AA2,
+ 10356: 0x8D30,
+ 10357: 0x53D1,
+ 10358: 0x7F5A,
+ 10359: 0x7B4F,
+ 10360: 0x4F10,
+ 10361: 0x4E4F,
+ 10362: 0x9600,
+ 10363: 0x6CD5,
+ 10364: 0x73D0,
+ 10365: 0x85E9,
+ 10366: 0x5E06,
+ 10367: 0x756A,
+ 10368: 0x7FFB,
+ 10369: 0x6A0A,
+ 10370: 0x77FE,
+ 10371: 0x9492,
+ 10372: 0x7E41,
+ 10373: 0x51E1,
+ 10374: 0x70E6,
+ 10375: 0x53CD,
+ 10376: 0x8FD4,
+ 10377: 0x8303,
+ 10378: 0x8D29,
+ 10379: 0x72AF,
+ 10380: 0x996D,
+ 10381: 0x6CDB,
+ 10382: 0x574A,
+ 10383: 0x82B3,
+ 10384: 0x65B9,
+ 10385: 0x80AA,
+ 10386: 0x623F,
+ 10387: 0x9632,
+ 10388: 0x59A8,
+ 10389: 0x4EFF,
+ 10390: 0x8BBF,
+ 10391: 0x7EBA,
+ 10392: 0x653E,
+ 10393: 0x83F2,
+ 10394: 0x975E,
+ 10395: 0x5561,
+ 10396: 0x98DE,
+ 10397: 0x80A5,
+ 10398: 0x532A,
+ 10399: 0x8BFD,
+ 10400: 0x5420,
+ 10401: 0x80BA,
+ 10402: 0x5E9F,
+ 10403: 0x6CB8,
+ 10404: 0x8D39,
+ 10405: 0x82AC,
+ 10406: 0x915A,
+ 10407: 0x5429,
+ 10408: 0x6C1B,
+ 10409: 0x5206,
+ 10410: 0x7EB7,
+ 10411: 0x575F,
+ 10412: 0x711A,
+ 10413: 0x6C7E,
+ 10414: 0x7C89,
+ 10415: 0x594B,
+ 10416: 0x4EFD,
+ 10417: 0x5FFF,
+ 10418: 0x6124,
+ 10419: 0x7CAA,
+ 10420: 0x4E30,
+ 10421: 0x5C01,
+ 10422: 0x67AB,
+ 10423: 0x8702,
+ 10424: 0x5CF0,
+ 10425: 0x950B,
+ 10426: 0x98CE,
+ 10427: 0x75AF,
+ 10428: 0x70FD,
+ 10429: 0x9022,
+ 10430: 0x51AF,
+ 10431: 0x7F1D,
+ 10432: 0x8BBD,
+ 10433: 0x5949,
+ 10434: 0x51E4,
+ 10435: 0x4F5B,
+ 10436: 0x5426,
+ 10437: 0x592B,
+ 10438: 0x6577,
+ 10439: 0x80A4,
+ 10440: 0x5B75,
+ 10441: 0x6276,
+ 10442: 0x62C2,
+ 10443: 0x8F90,
+ 10444: 0x5E45,
+ 10445: 0x6C1F,
+ 10446: 0x7B26,
+ 10447: 0x4F0F,
+ 10448: 0x4FD8,
+ 10449: 0x670D,
+ 10450: 0x7AA3,
+ 10451: 0x7AA4,
+ 10452: 0x7AA7,
+ 10453: 0x7AA9,
+ 10454: 0x7AAA,
+ 10455: 0x7AAB,
+ 10456: 0x7AAE,
+ 10457: 0x7AAF,
+ 10458: 0x7AB0,
+ 10459: 0x7AB1,
+ 10460: 0x7AB2,
+ 10461: 0x7AB4,
+ 10462: 0x7AB5,
+ 10463: 0x7AB6,
+ 10464: 0x7AB7,
+ 10465: 0x7AB8,
+ 10466: 0x7AB9,
+ 10467: 0x7ABA,
+ 10468: 0x7ABB,
+ 10469: 0x7ABC,
+ 10470: 0x7ABD,
+ 10471: 0x7ABE,
+ 10472: 0x7AC0,
+ 10473: 0x7AC1,
+ 10474: 0x7AC2,
+ 10475: 0x7AC3,
+ 10476: 0x7AC4,
+ 10477: 0x7AC5,
+ 10478: 0x7AC6,
+ 10479: 0x7AC7,
+ 10480: 0x7AC8,
+ 10481: 0x7AC9,
+ 10482: 0x7ACA,
+ 10483: 0x7ACC,
+ 10484: 0x7ACD,
+ 10485: 0x7ACE,
+ 10486: 0x7ACF,
+ 10487: 0x7AD0,
+ 10488: 0x7AD1,
+ 10489: 0x7AD2,
+ 10490: 0x7AD3,
+ 10491: 0x7AD4,
+ 10492: 0x7AD5,
+ 10493: 0x7AD7,
+ 10494: 0x7AD8,
+ 10495: 0x7ADA,
+ 10496: 0x7ADB,
+ 10497: 0x7ADC,
+ 10498: 0x7ADD,
+ 10499: 0x7AE1,
+ 10500: 0x7AE2,
+ 10501: 0x7AE4,
+ 10502: 0x7AE7,
+ 10503: 0x7AE8,
+ 10504: 0x7AE9,
+ 10505: 0x7AEA,
+ 10506: 0x7AEB,
+ 10507: 0x7AEC,
+ 10508: 0x7AEE,
+ 10509: 0x7AF0,
+ 10510: 0x7AF1,
+ 10511: 0x7AF2,
+ 10512: 0x7AF3,
+ 10513: 0x7AF4,
+ 10514: 0x7AF5,
+ 10515: 0x7AF6,
+ 10516: 0x7AF7,
+ 10517: 0x7AF8,
+ 10518: 0x7AFB,
+ 10519: 0x7AFC,
+ 10520: 0x7AFE,
+ 10521: 0x7B00,
+ 10522: 0x7B01,
+ 10523: 0x7B02,
+ 10524: 0x7B05,
+ 10525: 0x7B07,
+ 10526: 0x7B09,
+ 10527: 0x7B0C,
+ 10528: 0x7B0D,
+ 10529: 0x7B0E,
+ 10530: 0x7B10,
+ 10531: 0x7B12,
+ 10532: 0x7B13,
+ 10533: 0x7B16,
+ 10534: 0x7B17,
+ 10535: 0x7B18,
+ 10536: 0x7B1A,
+ 10537: 0x7B1C,
+ 10538: 0x7B1D,
+ 10539: 0x7B1F,
+ 10540: 0x7B21,
+ 10541: 0x7B22,
+ 10542: 0x7B23,
+ 10543: 0x7B27,
+ 10544: 0x7B29,
+ 10545: 0x7B2D,
+ 10546: 0x6D6E,
+ 10547: 0x6DAA,
+ 10548: 0x798F,
+ 10549: 0x88B1,
+ 10550: 0x5F17,
+ 10551: 0x752B,
+ 10552: 0x629A,
+ 10553: 0x8F85,
+ 10554: 0x4FEF,
+ 10555: 0x91DC,
+ 10556: 0x65A7,
+ 10557: 0x812F,
+ 10558: 0x8151,
+ 10559: 0x5E9C,
+ 10560: 0x8150,
+ 10561: 0x8D74,
+ 10562: 0x526F,
+ 10563: 0x8986,
+ 10564: 0x8D4B,
+ 10565: 0x590D,
+ 10566: 0x5085,
+ 10567: 0x4ED8,
+ 10568: 0x961C,
+ 10569: 0x7236,
+ 10570: 0x8179,
+ 10571: 0x8D1F,
+ 10572: 0x5BCC,
+ 10573: 0x8BA3,
+ 10574: 0x9644,
+ 10575: 0x5987,
+ 10576: 0x7F1A,
+ 10577: 0x5490,
+ 10578: 0x5676,
+ 10579: 0x560E,
+ 10580: 0x8BE5,
+ 10581: 0x6539,
+ 10582: 0x6982,
+ 10583: 0x9499,
+ 10584: 0x76D6,
+ 10585: 0x6E89,
+ 10586: 0x5E72,
+ 10587: 0x7518,
+ 10588: 0x6746,
+ 10589: 0x67D1,
+ 10590: 0x7AFF,
+ 10591: 0x809D,
+ 10592: 0x8D76,
+ 10593: 0x611F,
+ 10594: 0x79C6,
+ 10595: 0x6562,
+ 10596: 0x8D63,
+ 10597: 0x5188,
+ 10598: 0x521A,
+ 10599: 0x94A2,
+ 10600: 0x7F38,
+ 10601: 0x809B,
+ 10602: 0x7EB2,
+ 10603: 0x5C97,
+ 10604: 0x6E2F,
+ 10605: 0x6760,
+ 10606: 0x7BD9,
+ 10607: 0x768B,
+ 10608: 0x9AD8,
+ 10609: 0x818F,
+ 10610: 0x7F94,
+ 10611: 0x7CD5,
+ 10612: 0x641E,
+ 10613: 0x9550,
+ 10614: 0x7A3F,
+ 10615: 0x544A,
+ 10616: 0x54E5,
+ 10617: 0x6B4C,
+ 10618: 0x6401,
+ 10619: 0x6208,
+ 10620: 0x9E3D,
+ 10621: 0x80F3,
+ 10622: 0x7599,
+ 10623: 0x5272,
+ 10624: 0x9769,
+ 10625: 0x845B,
+ 10626: 0x683C,
+ 10627: 0x86E4,
+ 10628: 0x9601,
+ 10629: 0x9694,
+ 10630: 0x94EC,
+ 10631: 0x4E2A,
+ 10632: 0x5404,
+ 10633: 0x7ED9,
+ 10634: 0x6839,
+ 10635: 0x8DDF,
+ 10636: 0x8015,
+ 10637: 0x66F4,
+ 10638: 0x5E9A,
+ 10639: 0x7FB9,
+ 10640: 0x7B2F,
+ 10641: 0x7B30,
+ 10642: 0x7B32,
+ 10643: 0x7B34,
+ 10644: 0x7B35,
+ 10645: 0x7B36,
+ 10646: 0x7B37,
+ 10647: 0x7B39,
+ 10648: 0x7B3B,
+ 10649: 0x7B3D,
+ 10650: 0x7B3F,
+ 10651: 0x7B40,
+ 10652: 0x7B41,
+ 10653: 0x7B42,
+ 10654: 0x7B43,
+ 10655: 0x7B44,
+ 10656: 0x7B46,
+ 10657: 0x7B48,
+ 10658: 0x7B4A,
+ 10659: 0x7B4D,
+ 10660: 0x7B4E,
+ 10661: 0x7B53,
+ 10662: 0x7B55,
+ 10663: 0x7B57,
+ 10664: 0x7B59,
+ 10665: 0x7B5C,
+ 10666: 0x7B5E,
+ 10667: 0x7B5F,
+ 10668: 0x7B61,
+ 10669: 0x7B63,
+ 10670: 0x7B64,
+ 10671: 0x7B65,
+ 10672: 0x7B66,
+ 10673: 0x7B67,
+ 10674: 0x7B68,
+ 10675: 0x7B69,
+ 10676: 0x7B6A,
+ 10677: 0x7B6B,
+ 10678: 0x7B6C,
+ 10679: 0x7B6D,
+ 10680: 0x7B6F,
+ 10681: 0x7B70,
+ 10682: 0x7B73,
+ 10683: 0x7B74,
+ 10684: 0x7B76,
+ 10685: 0x7B78,
+ 10686: 0x7B7A,
+ 10687: 0x7B7C,
+ 10688: 0x7B7D,
+ 10689: 0x7B7F,
+ 10690: 0x7B81,
+ 10691: 0x7B82,
+ 10692: 0x7B83,
+ 10693: 0x7B84,
+ 10694: 0x7B86,
+ 10695: 0x7B87,
+ 10696: 0x7B88,
+ 10697: 0x7B89,
+ 10698: 0x7B8A,
+ 10699: 0x7B8B,
+ 10700: 0x7B8C,
+ 10701: 0x7B8E,
+ 10702: 0x7B8F,
+ 10703: 0x7B91,
+ 10704: 0x7B92,
+ 10705: 0x7B93,
+ 10706: 0x7B96,
+ 10707: 0x7B98,
+ 10708: 0x7B99,
+ 10709: 0x7B9A,
+ 10710: 0x7B9B,
+ 10711: 0x7B9E,
+ 10712: 0x7B9F,
+ 10713: 0x7BA0,
+ 10714: 0x7BA3,
+ 10715: 0x7BA4,
+ 10716: 0x7BA5,
+ 10717: 0x7BAE,
+ 10718: 0x7BAF,
+ 10719: 0x7BB0,
+ 10720: 0x7BB2,
+ 10721: 0x7BB3,
+ 10722: 0x7BB5,
+ 10723: 0x7BB6,
+ 10724: 0x7BB7,
+ 10725: 0x7BB9,
+ 10726: 0x7BBA,
+ 10727: 0x7BBB,
+ 10728: 0x7BBC,
+ 10729: 0x7BBD,
+ 10730: 0x7BBE,
+ 10731: 0x7BBF,
+ 10732: 0x7BC0,
+ 10733: 0x7BC2,
+ 10734: 0x7BC3,
+ 10735: 0x7BC4,
+ 10736: 0x57C2,
+ 10737: 0x803F,
+ 10738: 0x6897,
+ 10739: 0x5DE5,
+ 10740: 0x653B,
+ 10741: 0x529F,
+ 10742: 0x606D,
+ 10743: 0x9F9A,
+ 10744: 0x4F9B,
+ 10745: 0x8EAC,
+ 10746: 0x516C,
+ 10747: 0x5BAB,
+ 10748: 0x5F13,
+ 10749: 0x5DE9,
+ 10750: 0x6C5E,
+ 10751: 0x62F1,
+ 10752: 0x8D21,
+ 10753: 0x5171,
+ 10754: 0x94A9,
+ 10755: 0x52FE,
+ 10756: 0x6C9F,
+ 10757: 0x82DF,
+ 10758: 0x72D7,
+ 10759: 0x57A2,
+ 10760: 0x6784,
+ 10761: 0x8D2D,
+ 10762: 0x591F,
+ 10763: 0x8F9C,
+ 10764: 0x83C7,
+ 10765: 0x5495,
+ 10766: 0x7B8D,
+ 10767: 0x4F30,
+ 10768: 0x6CBD,
+ 10769: 0x5B64,
+ 10770: 0x59D1,
+ 10771: 0x9F13,
+ 10772: 0x53E4,
+ 10773: 0x86CA,
+ 10774: 0x9AA8,
+ 10775: 0x8C37,
+ 10776: 0x80A1,
+ 10777: 0x6545,
+ 10778: 0x987E,
+ 10779: 0x56FA,
+ 10780: 0x96C7,
+ 10781: 0x522E,
+ 10782: 0x74DC,
+ 10783: 0x5250,
+ 10784: 0x5BE1,
+ 10785: 0x6302,
+ 10786: 0x8902,
+ 10787: 0x4E56,
+ 10788: 0x62D0,
+ 10789: 0x602A,
+ 10790: 0x68FA,
+ 10791: 0x5173,
+ 10792: 0x5B98,
+ 10793: 0x51A0,
+ 10794: 0x89C2,
+ 10795: 0x7BA1,
+ 10796: 0x9986,
+ 10797: 0x7F50,
+ 10798: 0x60EF,
+ 10799: 0x704C,
+ 10800: 0x8D2F,
+ 10801: 0x5149,
+ 10802: 0x5E7F,
+ 10803: 0x901B,
+ 10804: 0x7470,
+ 10805: 0x89C4,
+ 10806: 0x572D,
+ 10807: 0x7845,
+ 10808: 0x5F52,
+ 10809: 0x9F9F,
+ 10810: 0x95FA,
+ 10811: 0x8F68,
+ 10812: 0x9B3C,
+ 10813: 0x8BE1,
+ 10814: 0x7678,
+ 10815: 0x6842,
+ 10816: 0x67DC,
+ 10817: 0x8DEA,
+ 10818: 0x8D35,
+ 10819: 0x523D,
+ 10820: 0x8F8A,
+ 10821: 0x6EDA,
+ 10822: 0x68CD,
+ 10823: 0x9505,
+ 10824: 0x90ED,
+ 10825: 0x56FD,
+ 10826: 0x679C,
+ 10827: 0x88F9,
+ 10828: 0x8FC7,
+ 10829: 0x54C8,
+ 10830: 0x7BC5,
+ 10831: 0x7BC8,
+ 10832: 0x7BC9,
+ 10833: 0x7BCA,
+ 10834: 0x7BCB,
+ 10835: 0x7BCD,
+ 10836: 0x7BCE,
+ 10837: 0x7BCF,
+ 10838: 0x7BD0,
+ 10839: 0x7BD2,
+ 10840: 0x7BD4,
+ 10841: 0x7BD5,
+ 10842: 0x7BD6,
+ 10843: 0x7BD7,
+ 10844: 0x7BD8,
+ 10845: 0x7BDB,
+ 10846: 0x7BDC,
+ 10847: 0x7BDE,
+ 10848: 0x7BDF,
+ 10849: 0x7BE0,
+ 10850: 0x7BE2,
+ 10851: 0x7BE3,
+ 10852: 0x7BE4,
+ 10853: 0x7BE7,
+ 10854: 0x7BE8,
+ 10855: 0x7BE9,
+ 10856: 0x7BEB,
+ 10857: 0x7BEC,
+ 10858: 0x7BED,
+ 10859: 0x7BEF,
+ 10860: 0x7BF0,
+ 10861: 0x7BF2,
+ 10862: 0x7BF3,
+ 10863: 0x7BF4,
+ 10864: 0x7BF5,
+ 10865: 0x7BF6,
+ 10866: 0x7BF8,
+ 10867: 0x7BF9,
+ 10868: 0x7BFA,
+ 10869: 0x7BFB,
+ 10870: 0x7BFD,
+ 10871: 0x7BFF,
+ 10872: 0x7C00,
+ 10873: 0x7C01,
+ 10874: 0x7C02,
+ 10875: 0x7C03,
+ 10876: 0x7C04,
+ 10877: 0x7C05,
+ 10878: 0x7C06,
+ 10879: 0x7C08,
+ 10880: 0x7C09,
+ 10881: 0x7C0A,
+ 10882: 0x7C0D,
+ 10883: 0x7C0E,
+ 10884: 0x7C10,
+ 10885: 0x7C11,
+ 10886: 0x7C12,
+ 10887: 0x7C13,
+ 10888: 0x7C14,
+ 10889: 0x7C15,
+ 10890: 0x7C17,
+ 10891: 0x7C18,
+ 10892: 0x7C19,
+ 10893: 0x7C1A,
+ 10894: 0x7C1B,
+ 10895: 0x7C1C,
+ 10896: 0x7C1D,
+ 10897: 0x7C1E,
+ 10898: 0x7C20,
+ 10899: 0x7C21,
+ 10900: 0x7C22,
+ 10901: 0x7C23,
+ 10902: 0x7C24,
+ 10903: 0x7C25,
+ 10904: 0x7C28,
+ 10905: 0x7C29,
+ 10906: 0x7C2B,
+ 10907: 0x7C2C,
+ 10908: 0x7C2D,
+ 10909: 0x7C2E,
+ 10910: 0x7C2F,
+ 10911: 0x7C30,
+ 10912: 0x7C31,
+ 10913: 0x7C32,
+ 10914: 0x7C33,
+ 10915: 0x7C34,
+ 10916: 0x7C35,
+ 10917: 0x7C36,
+ 10918: 0x7C37,
+ 10919: 0x7C39,
+ 10920: 0x7C3A,
+ 10921: 0x7C3B,
+ 10922: 0x7C3C,
+ 10923: 0x7C3D,
+ 10924: 0x7C3E,
+ 10925: 0x7C42,
+ 10926: 0x9AB8,
+ 10927: 0x5B69,
+ 10928: 0x6D77,
+ 10929: 0x6C26,
+ 10930: 0x4EA5,
+ 10931: 0x5BB3,
+ 10932: 0x9A87,
+ 10933: 0x9163,
+ 10934: 0x61A8,
+ 10935: 0x90AF,
+ 10936: 0x97E9,
+ 10937: 0x542B,
+ 10938: 0x6DB5,
+ 10939: 0x5BD2,
+ 10940: 0x51FD,
+ 10941: 0x558A,
+ 10942: 0x7F55,
+ 10943: 0x7FF0,
+ 10944: 0x64BC,
+ 10945: 0x634D,
+ 10946: 0x65F1,
+ 10947: 0x61BE,
+ 10948: 0x608D,
+ 10949: 0x710A,
+ 10950: 0x6C57,
+ 10951: 0x6C49,
+ 10952: 0x592F,
+ 10953: 0x676D,
+ 10954: 0x822A,
+ 10955: 0x58D5,
+ 10956: 0x568E,
+ 10957: 0x8C6A,
+ 10958: 0x6BEB,
+ 10959: 0x90DD,
+ 10960: 0x597D,
+ 10961: 0x8017,
+ 10962: 0x53F7,
+ 10963: 0x6D69,
+ 10964: 0x5475,
+ 10965: 0x559D,
+ 10966: 0x8377,
+ 10967: 0x83CF,
+ 10968: 0x6838,
+ 10969: 0x79BE,
+ 10970: 0x548C,
+ 10971: 0x4F55,
+ 10972: 0x5408,
+ 10973: 0x76D2,
+ 10974: 0x8C89,
+ 10975: 0x9602,
+ 10976: 0x6CB3,
+ 10977: 0x6DB8,
+ 10978: 0x8D6B,
+ 10979: 0x8910,
+ 10980: 0x9E64,
+ 10981: 0x8D3A,
+ 10982: 0x563F,
+ 10983: 0x9ED1,
+ 10984: 0x75D5,
+ 10985: 0x5F88,
+ 10986: 0x72E0,
+ 10987: 0x6068,
+ 10988: 0x54FC,
+ 10989: 0x4EA8,
+ 10990: 0x6A2A,
+ 10991: 0x8861,
+ 10992: 0x6052,
+ 10993: 0x8F70,
+ 10994: 0x54C4,
+ 10995: 0x70D8,
+ 10996: 0x8679,
+ 10997: 0x9E3F,
+ 10998: 0x6D2A,
+ 10999: 0x5B8F,
+ 11000: 0x5F18,
+ 11001: 0x7EA2,
+ 11002: 0x5589,
+ 11003: 0x4FAF,
+ 11004: 0x7334,
+ 11005: 0x543C,
+ 11006: 0x539A,
+ 11007: 0x5019,
+ 11008: 0x540E,
+ 11009: 0x547C,
+ 11010: 0x4E4E,
+ 11011: 0x5FFD,
+ 11012: 0x745A,
+ 11013: 0x58F6,
+ 11014: 0x846B,
+ 11015: 0x80E1,
+ 11016: 0x8774,
+ 11017: 0x72D0,
+ 11018: 0x7CCA,
+ 11019: 0x6E56,
+ 11020: 0x7C43,
+ 11021: 0x7C44,
+ 11022: 0x7C45,
+ 11023: 0x7C46,
+ 11024: 0x7C47,
+ 11025: 0x7C48,
+ 11026: 0x7C49,
+ 11027: 0x7C4A,
+ 11028: 0x7C4B,
+ 11029: 0x7C4C,
+ 11030: 0x7C4E,
+ 11031: 0x7C4F,
+ 11032: 0x7C50,
+ 11033: 0x7C51,
+ 11034: 0x7C52,
+ 11035: 0x7C53,
+ 11036: 0x7C54,
+ 11037: 0x7C55,
+ 11038: 0x7C56,
+ 11039: 0x7C57,
+ 11040: 0x7C58,
+ 11041: 0x7C59,
+ 11042: 0x7C5A,
+ 11043: 0x7C5B,
+ 11044: 0x7C5C,
+ 11045: 0x7C5D,
+ 11046: 0x7C5E,
+ 11047: 0x7C5F,
+ 11048: 0x7C60,
+ 11049: 0x7C61,
+ 11050: 0x7C62,
+ 11051: 0x7C63,
+ 11052: 0x7C64,
+ 11053: 0x7C65,
+ 11054: 0x7C66,
+ 11055: 0x7C67,
+ 11056: 0x7C68,
+ 11057: 0x7C69,
+ 11058: 0x7C6A,
+ 11059: 0x7C6B,
+ 11060: 0x7C6C,
+ 11061: 0x7C6D,
+ 11062: 0x7C6E,
+ 11063: 0x7C6F,
+ 11064: 0x7C70,
+ 11065: 0x7C71,
+ 11066: 0x7C72,
+ 11067: 0x7C75,
+ 11068: 0x7C76,
+ 11069: 0x7C77,
+ 11070: 0x7C78,
+ 11071: 0x7C79,
+ 11072: 0x7C7A,
+ 11073: 0x7C7E,
+ 11074: 0x7C7F,
+ 11075: 0x7C80,
+ 11076: 0x7C81,
+ 11077: 0x7C82,
+ 11078: 0x7C83,
+ 11079: 0x7C84,
+ 11080: 0x7C85,
+ 11081: 0x7C86,
+ 11082: 0x7C87,
+ 11083: 0x7C88,
+ 11084: 0x7C8A,
+ 11085: 0x7C8B,
+ 11086: 0x7C8C,
+ 11087: 0x7C8D,
+ 11088: 0x7C8E,
+ 11089: 0x7C8F,
+ 11090: 0x7C90,
+ 11091: 0x7C93,
+ 11092: 0x7C94,
+ 11093: 0x7C96,
+ 11094: 0x7C99,
+ 11095: 0x7C9A,
+ 11096: 0x7C9B,
+ 11097: 0x7CA0,
+ 11098: 0x7CA1,
+ 11099: 0x7CA3,
+ 11100: 0x7CA6,
+ 11101: 0x7CA7,
+ 11102: 0x7CA8,
+ 11103: 0x7CA9,
+ 11104: 0x7CAB,
+ 11105: 0x7CAC,
+ 11106: 0x7CAD,
+ 11107: 0x7CAF,
+ 11108: 0x7CB0,
+ 11109: 0x7CB4,
+ 11110: 0x7CB5,
+ 11111: 0x7CB6,
+ 11112: 0x7CB7,
+ 11113: 0x7CB8,
+ 11114: 0x7CBA,
+ 11115: 0x7CBB,
+ 11116: 0x5F27,
+ 11117: 0x864E,
+ 11118: 0x552C,
+ 11119: 0x62A4,
+ 11120: 0x4E92,
+ 11121: 0x6CAA,
+ 11122: 0x6237,
+ 11123: 0x82B1,
+ 11124: 0x54D7,
+ 11125: 0x534E,
+ 11126: 0x733E,
+ 11127: 0x6ED1,
+ 11128: 0x753B,
+ 11129: 0x5212,
+ 11130: 0x5316,
+ 11131: 0x8BDD,
+ 11132: 0x69D0,
+ 11133: 0x5F8A,
+ 11134: 0x6000,
+ 11135: 0x6DEE,
+ 11136: 0x574F,
+ 11137: 0x6B22,
+ 11138: 0x73AF,
+ 11139: 0x6853,
+ 11140: 0x8FD8,
+ 11141: 0x7F13,
+ 11142: 0x6362,
+ 11143: 0x60A3,
+ 11144: 0x5524,
+ 11145: 0x75EA,
+ 11146: 0x8C62,
+ 11147: 0x7115,
+ 11148: 0x6DA3,
+ 11149: 0x5BA6,
+ 11150: 0x5E7B,
+ 11151: 0x8352,
+ 11152: 0x614C,
+ 11153: 0x9EC4,
+ 11154: 0x78FA,
+ 11155: 0x8757,
+ 11156: 0x7C27,
+ 11157: 0x7687,
+ 11158: 0x51F0,
+ 11159: 0x60F6,
+ 11160: 0x714C,
+ 11161: 0x6643,
+ 11162: 0x5E4C,
+ 11163: 0x604D,
+ 11164: 0x8C0E,
+ 11165: 0x7070,
+ 11166: 0x6325,
+ 11167: 0x8F89,
+ 11168: 0x5FBD,
+ 11169: 0x6062,
+ 11170: 0x86D4,
+ 11171: 0x56DE,
+ 11172: 0x6BC1,
+ 11173: 0x6094,
+ 11174: 0x6167,
+ 11175: 0x5349,
+ 11176: 0x60E0,
+ 11177: 0x6666,
+ 11178: 0x8D3F,
+ 11179: 0x79FD,
+ 11180: 0x4F1A,
+ 11181: 0x70E9,
+ 11182: 0x6C47,
+ 11183: 0x8BB3,
+ 11184: 0x8BF2,
+ 11185: 0x7ED8,
+ 11186: 0x8364,
+ 11187: 0x660F,
+ 11188: 0x5A5A,
+ 11189: 0x9B42,
+ 11190: 0x6D51,
+ 11191: 0x6DF7,
+ 11192: 0x8C41,
+ 11193: 0x6D3B,
+ 11194: 0x4F19,
+ 11195: 0x706B,
+ 11196: 0x83B7,
+ 11197: 0x6216,
+ 11198: 0x60D1,
+ 11199: 0x970D,
+ 11200: 0x8D27,
+ 11201: 0x7978,
+ 11202: 0x51FB,
+ 11203: 0x573E,
+ 11204: 0x57FA,
+ 11205: 0x673A,
+ 11206: 0x7578,
+ 11207: 0x7A3D,
+ 11208: 0x79EF,
+ 11209: 0x7B95,
+ 11210: 0x7CBF,
+ 11211: 0x7CC0,
+ 11212: 0x7CC2,
+ 11213: 0x7CC3,
+ 11214: 0x7CC4,
+ 11215: 0x7CC6,
+ 11216: 0x7CC9,
+ 11217: 0x7CCB,
+ 11218: 0x7CCE,
+ 11219: 0x7CCF,
+ 11220: 0x7CD0,
+ 11221: 0x7CD1,
+ 11222: 0x7CD2,
+ 11223: 0x7CD3,
+ 11224: 0x7CD4,
+ 11225: 0x7CD8,
+ 11226: 0x7CDA,
+ 11227: 0x7CDB,
+ 11228: 0x7CDD,
+ 11229: 0x7CDE,
+ 11230: 0x7CE1,
+ 11231: 0x7CE2,
+ 11232: 0x7CE3,
+ 11233: 0x7CE4,
+ 11234: 0x7CE5,
+ 11235: 0x7CE6,
+ 11236: 0x7CE7,
+ 11237: 0x7CE9,
+ 11238: 0x7CEA,
+ 11239: 0x7CEB,
+ 11240: 0x7CEC,
+ 11241: 0x7CED,
+ 11242: 0x7CEE,
+ 11243: 0x7CF0,
+ 11244: 0x7CF1,
+ 11245: 0x7CF2,
+ 11246: 0x7CF3,
+ 11247: 0x7CF4,
+ 11248: 0x7CF5,
+ 11249: 0x7CF6,
+ 11250: 0x7CF7,
+ 11251: 0x7CF9,
+ 11252: 0x7CFA,
+ 11253: 0x7CFC,
+ 11254: 0x7CFD,
+ 11255: 0x7CFE,
+ 11256: 0x7CFF,
+ 11257: 0x7D00,
+ 11258: 0x7D01,
+ 11259: 0x7D02,
+ 11260: 0x7D03,
+ 11261: 0x7D04,
+ 11262: 0x7D05,
+ 11263: 0x7D06,
+ 11264: 0x7D07,
+ 11265: 0x7D08,
+ 11266: 0x7D09,
+ 11267: 0x7D0B,
+ 11268: 0x7D0C,
+ 11269: 0x7D0D,
+ 11270: 0x7D0E,
+ 11271: 0x7D0F,
+ 11272: 0x7D10,
+ 11273: 0x7D11,
+ 11274: 0x7D12,
+ 11275: 0x7D13,
+ 11276: 0x7D14,
+ 11277: 0x7D15,
+ 11278: 0x7D16,
+ 11279: 0x7D17,
+ 11280: 0x7D18,
+ 11281: 0x7D19,
+ 11282: 0x7D1A,
+ 11283: 0x7D1B,
+ 11284: 0x7D1C,
+ 11285: 0x7D1D,
+ 11286: 0x7D1E,
+ 11287: 0x7D1F,
+ 11288: 0x7D21,
+ 11289: 0x7D23,
+ 11290: 0x7D24,
+ 11291: 0x7D25,
+ 11292: 0x7D26,
+ 11293: 0x7D28,
+ 11294: 0x7D29,
+ 11295: 0x7D2A,
+ 11296: 0x7D2C,
+ 11297: 0x7D2D,
+ 11298: 0x7D2E,
+ 11299: 0x7D30,
+ 11300: 0x7D31,
+ 11301: 0x7D32,
+ 11302: 0x7D33,
+ 11303: 0x7D34,
+ 11304: 0x7D35,
+ 11305: 0x7D36,
+ 11306: 0x808C,
+ 11307: 0x9965,
+ 11308: 0x8FF9,
+ 11309: 0x6FC0,
+ 11310: 0x8BA5,
+ 11311: 0x9E21,
+ 11312: 0x59EC,
+ 11313: 0x7EE9,
+ 11314: 0x7F09,
+ 11315: 0x5409,
+ 11316: 0x6781,
+ 11317: 0x68D8,
+ 11318: 0x8F91,
+ 11319: 0x7C4D,
+ 11320: 0x96C6,
+ 11321: 0x53CA,
+ 11322: 0x6025,
+ 11323: 0x75BE,
+ 11324: 0x6C72,
+ 11325: 0x5373,
+ 11326: 0x5AC9,
+ 11327: 0x7EA7,
+ 11328: 0x6324,
+ 11329: 0x51E0,
+ 11330: 0x810A,
+ 11331: 0x5DF1,
+ 11332: 0x84DF,
+ 11333: 0x6280,
+ 11334: 0x5180,
+ 11335: 0x5B63,
+ 11336: 0x4F0E,
+ 11337: 0x796D,
+ 11338: 0x5242,
+ 11339: 0x60B8,
+ 11340: 0x6D4E,
+ 11341: 0x5BC4,
+ 11342: 0x5BC2,
+ 11343: 0x8BA1,
+ 11344: 0x8BB0,
+ 11345: 0x65E2,
+ 11346: 0x5FCC,
+ 11347: 0x9645,
+ 11348: 0x5993,
+ 11349: 0x7EE7,
+ 11350: 0x7EAA,
+ 11351: 0x5609,
+ 11352: 0x67B7,
+ 11353: 0x5939,
+ 11354: 0x4F73,
+ 11355: 0x5BB6,
+ 11356: 0x52A0,
+ 11357: 0x835A,
+ 11358: 0x988A,
+ 11359: 0x8D3E,
+ 11360: 0x7532,
+ 11361: 0x94BE,
+ 11362: 0x5047,
+ 11363: 0x7A3C,
+ 11364: 0x4EF7,
+ 11365: 0x67B6,
+ 11366: 0x9A7E,
+ 11367: 0x5AC1,
+ 11368: 0x6B7C,
+ 11369: 0x76D1,
+ 11370: 0x575A,
+ 11371: 0x5C16,
+ 11372: 0x7B3A,
+ 11373: 0x95F4,
+ 11374: 0x714E,
+ 11375: 0x517C,
+ 11376: 0x80A9,
+ 11377: 0x8270,
+ 11378: 0x5978,
+ 11379: 0x7F04,
+ 11380: 0x8327,
+ 11381: 0x68C0,
+ 11382: 0x67EC,
+ 11383: 0x78B1,
+ 11384: 0x7877,
+ 11385: 0x62E3,
+ 11386: 0x6361,
+ 11387: 0x7B80,
+ 11388: 0x4FED,
+ 11389: 0x526A,
+ 11390: 0x51CF,
+ 11391: 0x8350,
+ 11392: 0x69DB,
+ 11393: 0x9274,
+ 11394: 0x8DF5,
+ 11395: 0x8D31,
+ 11396: 0x89C1,
+ 11397: 0x952E,
+ 11398: 0x7BAD,
+ 11399: 0x4EF6,
+ 11400: 0x7D37,
+ 11401: 0x7D38,
+ 11402: 0x7D39,
+ 11403: 0x7D3A,
+ 11404: 0x7D3B,
+ 11405: 0x7D3C,
+ 11406: 0x7D3D,
+ 11407: 0x7D3E,
+ 11408: 0x7D3F,
+ 11409: 0x7D40,
+ 11410: 0x7D41,
+ 11411: 0x7D42,
+ 11412: 0x7D43,
+ 11413: 0x7D44,
+ 11414: 0x7D45,
+ 11415: 0x7D46,
+ 11416: 0x7D47,
+ 11417: 0x7D48,
+ 11418: 0x7D49,
+ 11419: 0x7D4A,
+ 11420: 0x7D4B,
+ 11421: 0x7D4C,
+ 11422: 0x7D4D,
+ 11423: 0x7D4E,
+ 11424: 0x7D4F,
+ 11425: 0x7D50,
+ 11426: 0x7D51,
+ 11427: 0x7D52,
+ 11428: 0x7D53,
+ 11429: 0x7D54,
+ 11430: 0x7D55,
+ 11431: 0x7D56,
+ 11432: 0x7D57,
+ 11433: 0x7D58,
+ 11434: 0x7D59,
+ 11435: 0x7D5A,
+ 11436: 0x7D5B,
+ 11437: 0x7D5C,
+ 11438: 0x7D5D,
+ 11439: 0x7D5E,
+ 11440: 0x7D5F,
+ 11441: 0x7D60,
+ 11442: 0x7D61,
+ 11443: 0x7D62,
+ 11444: 0x7D63,
+ 11445: 0x7D64,
+ 11446: 0x7D65,
+ 11447: 0x7D66,
+ 11448: 0x7D67,
+ 11449: 0x7D68,
+ 11450: 0x7D69,
+ 11451: 0x7D6A,
+ 11452: 0x7D6B,
+ 11453: 0x7D6C,
+ 11454: 0x7D6D,
+ 11455: 0x7D6F,
+ 11456: 0x7D70,
+ 11457: 0x7D71,
+ 11458: 0x7D72,
+ 11459: 0x7D73,
+ 11460: 0x7D74,
+ 11461: 0x7D75,
+ 11462: 0x7D76,
+ 11463: 0x7D78,
+ 11464: 0x7D79,
+ 11465: 0x7D7A,
+ 11466: 0x7D7B,
+ 11467: 0x7D7C,
+ 11468: 0x7D7D,
+ 11469: 0x7D7E,
+ 11470: 0x7D7F,
+ 11471: 0x7D80,
+ 11472: 0x7D81,
+ 11473: 0x7D82,
+ 11474: 0x7D83,
+ 11475: 0x7D84,
+ 11476: 0x7D85,
+ 11477: 0x7D86,
+ 11478: 0x7D87,
+ 11479: 0x7D88,
+ 11480: 0x7D89,
+ 11481: 0x7D8A,
+ 11482: 0x7D8B,
+ 11483: 0x7D8C,
+ 11484: 0x7D8D,
+ 11485: 0x7D8E,
+ 11486: 0x7D8F,
+ 11487: 0x7D90,
+ 11488: 0x7D91,
+ 11489: 0x7D92,
+ 11490: 0x7D93,
+ 11491: 0x7D94,
+ 11492: 0x7D95,
+ 11493: 0x7D96,
+ 11494: 0x7D97,
+ 11495: 0x7D98,
+ 11496: 0x5065,
+ 11497: 0x8230,
+ 11498: 0x5251,
+ 11499: 0x996F,
+ 11500: 0x6E10,
+ 11501: 0x6E85,
+ 11502: 0x6DA7,
+ 11503: 0x5EFA,
+ 11504: 0x50F5,
+ 11505: 0x59DC,
+ 11506: 0x5C06,
+ 11507: 0x6D46,
+ 11508: 0x6C5F,
+ 11509: 0x7586,
+ 11510: 0x848B,
+ 11511: 0x6868,
+ 11512: 0x5956,
+ 11513: 0x8BB2,
+ 11514: 0x5320,
+ 11515: 0x9171,
+ 11516: 0x964D,
+ 11517: 0x8549,
+ 11518: 0x6912,
+ 11519: 0x7901,
+ 11520: 0x7126,
+ 11521: 0x80F6,
+ 11522: 0x4EA4,
+ 11523: 0x90CA,
+ 11524: 0x6D47,
+ 11525: 0x9A84,
+ 11526: 0x5A07,
+ 11527: 0x56BC,
+ 11528: 0x6405,
+ 11529: 0x94F0,
+ 11530: 0x77EB,
+ 11531: 0x4FA5,
+ 11532: 0x811A,
+ 11533: 0x72E1,
+ 11534: 0x89D2,
+ 11535: 0x997A,
+ 11536: 0x7F34,
+ 11537: 0x7EDE,
+ 11538: 0x527F,
+ 11539: 0x6559,
+ 11540: 0x9175,
+ 11541: 0x8F7F,
+ 11542: 0x8F83,
+ 11543: 0x53EB,
+ 11544: 0x7A96,
+ 11545: 0x63ED,
+ 11546: 0x63A5,
+ 11547: 0x7686,
+ 11548: 0x79F8,
+ 11549: 0x8857,
+ 11550: 0x9636,
+ 11551: 0x622A,
+ 11552: 0x52AB,
+ 11553: 0x8282,
+ 11554: 0x6854,
+ 11555: 0x6770,
+ 11556: 0x6377,
+ 11557: 0x776B,
+ 11558: 0x7AED,
+ 11559: 0x6D01,
+ 11560: 0x7ED3,
+ 11561: 0x89E3,
+ 11562: 0x59D0,
+ 11563: 0x6212,
+ 11564: 0x85C9,
+ 11565: 0x82A5,
+ 11566: 0x754C,
+ 11567: 0x501F,
+ 11568: 0x4ECB,
+ 11569: 0x75A5,
+ 11570: 0x8BEB,
+ 11571: 0x5C4A,
+ 11572: 0x5DFE,
+ 11573: 0x7B4B,
+ 11574: 0x65A4,
+ 11575: 0x91D1,
+ 11576: 0x4ECA,
+ 11577: 0x6D25,
+ 11578: 0x895F,
+ 11579: 0x7D27,
+ 11580: 0x9526,
+ 11581: 0x4EC5,
+ 11582: 0x8C28,
+ 11583: 0x8FDB,
+ 11584: 0x9773,
+ 11585: 0x664B,
+ 11586: 0x7981,
+ 11587: 0x8FD1,
+ 11588: 0x70EC,
+ 11589: 0x6D78,
+ 11590: 0x7D99,
+ 11591: 0x7D9A,
+ 11592: 0x7D9B,
+ 11593: 0x7D9C,
+ 11594: 0x7D9D,
+ 11595: 0x7D9E,
+ 11596: 0x7D9F,
+ 11597: 0x7DA0,
+ 11598: 0x7DA1,
+ 11599: 0x7DA2,
+ 11600: 0x7DA3,
+ 11601: 0x7DA4,
+ 11602: 0x7DA5,
+ 11603: 0x7DA7,
+ 11604: 0x7DA8,
+ 11605: 0x7DA9,
+ 11606: 0x7DAA,
+ 11607: 0x7DAB,
+ 11608: 0x7DAC,
+ 11609: 0x7DAD,
+ 11610: 0x7DAF,
+ 11611: 0x7DB0,
+ 11612: 0x7DB1,
+ 11613: 0x7DB2,
+ 11614: 0x7DB3,
+ 11615: 0x7DB4,
+ 11616: 0x7DB5,
+ 11617: 0x7DB6,
+ 11618: 0x7DB7,
+ 11619: 0x7DB8,
+ 11620: 0x7DB9,
+ 11621: 0x7DBA,
+ 11622: 0x7DBB,
+ 11623: 0x7DBC,
+ 11624: 0x7DBD,
+ 11625: 0x7DBE,
+ 11626: 0x7DBF,
+ 11627: 0x7DC0,
+ 11628: 0x7DC1,
+ 11629: 0x7DC2,
+ 11630: 0x7DC3,
+ 11631: 0x7DC4,
+ 11632: 0x7DC5,
+ 11633: 0x7DC6,
+ 11634: 0x7DC7,
+ 11635: 0x7DC8,
+ 11636: 0x7DC9,
+ 11637: 0x7DCA,
+ 11638: 0x7DCB,
+ 11639: 0x7DCC,
+ 11640: 0x7DCD,
+ 11641: 0x7DCE,
+ 11642: 0x7DCF,
+ 11643: 0x7DD0,
+ 11644: 0x7DD1,
+ 11645: 0x7DD2,
+ 11646: 0x7DD3,
+ 11647: 0x7DD4,
+ 11648: 0x7DD5,
+ 11649: 0x7DD6,
+ 11650: 0x7DD7,
+ 11651: 0x7DD8,
+ 11652: 0x7DD9,
+ 11653: 0x7DDA,
+ 11654: 0x7DDB,
+ 11655: 0x7DDC,
+ 11656: 0x7DDD,
+ 11657: 0x7DDE,
+ 11658: 0x7DDF,
+ 11659: 0x7DE0,
+ 11660: 0x7DE1,
+ 11661: 0x7DE2,
+ 11662: 0x7DE3,
+ 11663: 0x7DE4,
+ 11664: 0x7DE5,
+ 11665: 0x7DE6,
+ 11666: 0x7DE7,
+ 11667: 0x7DE8,
+ 11668: 0x7DE9,
+ 11669: 0x7DEA,
+ 11670: 0x7DEB,
+ 11671: 0x7DEC,
+ 11672: 0x7DED,
+ 11673: 0x7DEE,
+ 11674: 0x7DEF,
+ 11675: 0x7DF0,
+ 11676: 0x7DF1,
+ 11677: 0x7DF2,
+ 11678: 0x7DF3,
+ 11679: 0x7DF4,
+ 11680: 0x7DF5,
+ 11681: 0x7DF6,
+ 11682: 0x7DF7,
+ 11683: 0x7DF8,
+ 11684: 0x7DF9,
+ 11685: 0x7DFA,
+ 11686: 0x5C3D,
+ 11687: 0x52B2,
+ 11688: 0x8346,
+ 11689: 0x5162,
+ 11690: 0x830E,
+ 11691: 0x775B,
+ 11692: 0x6676,
+ 11693: 0x9CB8,
+ 11694: 0x4EAC,
+ 11695: 0x60CA,
+ 11696: 0x7CBE,
+ 11697: 0x7CB3,
+ 11698: 0x7ECF,
+ 11699: 0x4E95,
+ 11700: 0x8B66,
+ 11701: 0x666F,
+ 11702: 0x9888,
+ 11703: 0x9759,
+ 11704: 0x5883,
+ 11705: 0x656C,
+ 11706: 0x955C,
+ 11707: 0x5F84,
+ 11708: 0x75C9,
+ 11709: 0x9756,
+ 11710: 0x7ADF,
+ 11711: 0x7ADE,
+ 11712: 0x51C0,
+ 11713: 0x70AF,
+ 11714: 0x7A98,
+ 11715: 0x63EA,
+ 11716: 0x7A76,
+ 11717: 0x7EA0,
+ 11718: 0x7396,
+ 11719: 0x97ED,
+ 11720: 0x4E45,
+ 11721: 0x7078,
+ 11722: 0x4E5D,
+ 11723: 0x9152,
+ 11724: 0x53A9,
+ 11725: 0x6551,
+ 11726: 0x65E7,
+ 11727: 0x81FC,
+ 11728: 0x8205,
+ 11729: 0x548E,
+ 11730: 0x5C31,
+ 11731: 0x759A,
+ 11732: 0x97A0,
+ 11733: 0x62D8,
+ 11734: 0x72D9,
+ 11735: 0x75BD,
+ 11736: 0x5C45,
+ 11737: 0x9A79,
+ 11738: 0x83CA,
+ 11739: 0x5C40,
+ 11740: 0x5480,
+ 11741: 0x77E9,
+ 11742: 0x4E3E,
+ 11743: 0x6CAE,
+ 11744: 0x805A,
+ 11745: 0x62D2,
+ 11746: 0x636E,
+ 11747: 0x5DE8,
+ 11748: 0x5177,
+ 11749: 0x8DDD,
+ 11750: 0x8E1E,
+ 11751: 0x952F,
+ 11752: 0x4FF1,
+ 11753: 0x53E5,
+ 11754: 0x60E7,
+ 11755: 0x70AC,
+ 11756: 0x5267,
+ 11757: 0x6350,
+ 11758: 0x9E43,
+ 11759: 0x5A1F,
+ 11760: 0x5026,
+ 11761: 0x7737,
+ 11762: 0x5377,
+ 11763: 0x7EE2,
+ 11764: 0x6485,
+ 11765: 0x652B,
+ 11766: 0x6289,
+ 11767: 0x6398,
+ 11768: 0x5014,
+ 11769: 0x7235,
+ 11770: 0x89C9,
+ 11771: 0x51B3,
+ 11772: 0x8BC0,
+ 11773: 0x7EDD,
+ 11774: 0x5747,
+ 11775: 0x83CC,
+ 11776: 0x94A7,
+ 11777: 0x519B,
+ 11778: 0x541B,
+ 11779: 0x5CFB,
+ 11780: 0x7DFB,
+ 11781: 0x7DFC,
+ 11782: 0x7DFD,
+ 11783: 0x7DFE,
+ 11784: 0x7DFF,
+ 11785: 0x7E00,
+ 11786: 0x7E01,
+ 11787: 0x7E02,
+ 11788: 0x7E03,
+ 11789: 0x7E04,
+ 11790: 0x7E05,
+ 11791: 0x7E06,
+ 11792: 0x7E07,
+ 11793: 0x7E08,
+ 11794: 0x7E09,
+ 11795: 0x7E0A,
+ 11796: 0x7E0B,
+ 11797: 0x7E0C,
+ 11798: 0x7E0D,
+ 11799: 0x7E0E,
+ 11800: 0x7E0F,
+ 11801: 0x7E10,
+ 11802: 0x7E11,
+ 11803: 0x7E12,
+ 11804: 0x7E13,
+ 11805: 0x7E14,
+ 11806: 0x7E15,
+ 11807: 0x7E16,
+ 11808: 0x7E17,
+ 11809: 0x7E18,
+ 11810: 0x7E19,
+ 11811: 0x7E1A,
+ 11812: 0x7E1B,
+ 11813: 0x7E1C,
+ 11814: 0x7E1D,
+ 11815: 0x7E1E,
+ 11816: 0x7E1F,
+ 11817: 0x7E20,
+ 11818: 0x7E21,
+ 11819: 0x7E22,
+ 11820: 0x7E23,
+ 11821: 0x7E24,
+ 11822: 0x7E25,
+ 11823: 0x7E26,
+ 11824: 0x7E27,
+ 11825: 0x7E28,
+ 11826: 0x7E29,
+ 11827: 0x7E2A,
+ 11828: 0x7E2B,
+ 11829: 0x7E2C,
+ 11830: 0x7E2D,
+ 11831: 0x7E2E,
+ 11832: 0x7E2F,
+ 11833: 0x7E30,
+ 11834: 0x7E31,
+ 11835: 0x7E32,
+ 11836: 0x7E33,
+ 11837: 0x7E34,
+ 11838: 0x7E35,
+ 11839: 0x7E36,
+ 11840: 0x7E37,
+ 11841: 0x7E38,
+ 11842: 0x7E39,
+ 11843: 0x7E3A,
+ 11844: 0x7E3C,
+ 11845: 0x7E3D,
+ 11846: 0x7E3E,
+ 11847: 0x7E3F,
+ 11848: 0x7E40,
+ 11849: 0x7E42,
+ 11850: 0x7E43,
+ 11851: 0x7E44,
+ 11852: 0x7E45,
+ 11853: 0x7E46,
+ 11854: 0x7E48,
+ 11855: 0x7E49,
+ 11856: 0x7E4A,
+ 11857: 0x7E4B,
+ 11858: 0x7E4C,
+ 11859: 0x7E4D,
+ 11860: 0x7E4E,
+ 11861: 0x7E4F,
+ 11862: 0x7E50,
+ 11863: 0x7E51,
+ 11864: 0x7E52,
+ 11865: 0x7E53,
+ 11866: 0x7E54,
+ 11867: 0x7E55,
+ 11868: 0x7E56,
+ 11869: 0x7E57,
+ 11870: 0x7E58,
+ 11871: 0x7E59,
+ 11872: 0x7E5A,
+ 11873: 0x7E5B,
+ 11874: 0x7E5C,
+ 11875: 0x7E5D,
+ 11876: 0x4FCA,
+ 11877: 0x7AE3,
+ 11878: 0x6D5A,
+ 11879: 0x90E1,
+ 11880: 0x9A8F,
+ 11881: 0x5580,
+ 11882: 0x5496,
+ 11883: 0x5361,
+ 11884: 0x54AF,
+ 11885: 0x5F00,
+ 11886: 0x63E9,
+ 11887: 0x6977,
+ 11888: 0x51EF,
+ 11889: 0x6168,
+ 11890: 0x520A,
+ 11891: 0x582A,
+ 11892: 0x52D8,
+ 11893: 0x574E,
+ 11894: 0x780D,
+ 11895: 0x770B,
+ 11896: 0x5EB7,
+ 11897: 0x6177,
+ 11898: 0x7CE0,
+ 11899: 0x625B,
+ 11900: 0x6297,
+ 11901: 0x4EA2,
+ 11902: 0x7095,
+ 11903: 0x8003,
+ 11904: 0x62F7,
+ 11905: 0x70E4,
+ 11906: 0x9760,
+ 11907: 0x5777,
+ 11908: 0x82DB,
+ 11909: 0x67EF,
+ 11910: 0x68F5,
+ 11911: 0x78D5,
+ 11912: 0x9897,
+ 11913: 0x79D1,
+ 11914: 0x58F3,
+ 11915: 0x54B3,
+ 11916: 0x53EF,
+ 11917: 0x6E34,
+ 11918: 0x514B,
+ 11919: 0x523B,
+ 11920: 0x5BA2,
+ 11921: 0x8BFE,
+ 11922: 0x80AF,
+ 11923: 0x5543,
+ 11924: 0x57A6,
+ 11925: 0x6073,
+ 11926: 0x5751,
+ 11927: 0x542D,
+ 11928: 0x7A7A,
+ 11929: 0x6050,
+ 11930: 0x5B54,
+ 11931: 0x63A7,
+ 11932: 0x62A0,
+ 11933: 0x53E3,
+ 11934: 0x6263,
+ 11935: 0x5BC7,
+ 11936: 0x67AF,
+ 11937: 0x54ED,
+ 11938: 0x7A9F,
+ 11939: 0x82E6,
+ 11940: 0x9177,
+ 11941: 0x5E93,
+ 11942: 0x88E4,
+ 11943: 0x5938,
+ 11944: 0x57AE,
+ 11945: 0x630E,
+ 11946: 0x8DE8,
+ 11947: 0x80EF,
+ 11948: 0x5757,
+ 11949: 0x7B77,
+ 11950: 0x4FA9,
+ 11951: 0x5FEB,
+ 11952: 0x5BBD,
+ 11953: 0x6B3E,
+ 11954: 0x5321,
+ 11955: 0x7B50,
+ 11956: 0x72C2,
+ 11957: 0x6846,
+ 11958: 0x77FF,
+ 11959: 0x7736,
+ 11960: 0x65F7,
+ 11961: 0x51B5,
+ 11962: 0x4E8F,
+ 11963: 0x76D4,
+ 11964: 0x5CBF,
+ 11965: 0x7AA5,
+ 11966: 0x8475,
+ 11967: 0x594E,
+ 11968: 0x9B41,
+ 11969: 0x5080,
+ 11970: 0x7E5E,
+ 11971: 0x7E5F,
+ 11972: 0x7E60,
+ 11973: 0x7E61,
+ 11974: 0x7E62,
+ 11975: 0x7E63,
+ 11976: 0x7E64,
+ 11977: 0x7E65,
+ 11978: 0x7E66,
+ 11979: 0x7E67,
+ 11980: 0x7E68,
+ 11981: 0x7E69,
+ 11982: 0x7E6A,
+ 11983: 0x7E6B,
+ 11984: 0x7E6C,
+ 11985: 0x7E6D,
+ 11986: 0x7E6E,
+ 11987: 0x7E6F,
+ 11988: 0x7E70,
+ 11989: 0x7E71,
+ 11990: 0x7E72,
+ 11991: 0x7E73,
+ 11992: 0x7E74,
+ 11993: 0x7E75,
+ 11994: 0x7E76,
+ 11995: 0x7E77,
+ 11996: 0x7E78,
+ 11997: 0x7E79,
+ 11998: 0x7E7A,
+ 11999: 0x7E7B,
+ 12000: 0x7E7C,
+ 12001: 0x7E7D,
+ 12002: 0x7E7E,
+ 12003: 0x7E7F,
+ 12004: 0x7E80,
+ 12005: 0x7E81,
+ 12006: 0x7E83,
+ 12007: 0x7E84,
+ 12008: 0x7E85,
+ 12009: 0x7E86,
+ 12010: 0x7E87,
+ 12011: 0x7E88,
+ 12012: 0x7E89,
+ 12013: 0x7E8A,
+ 12014: 0x7E8B,
+ 12015: 0x7E8C,
+ 12016: 0x7E8D,
+ 12017: 0x7E8E,
+ 12018: 0x7E8F,
+ 12019: 0x7E90,
+ 12020: 0x7E91,
+ 12021: 0x7E92,
+ 12022: 0x7E93,
+ 12023: 0x7E94,
+ 12024: 0x7E95,
+ 12025: 0x7E96,
+ 12026: 0x7E97,
+ 12027: 0x7E98,
+ 12028: 0x7E99,
+ 12029: 0x7E9A,
+ 12030: 0x7E9C,
+ 12031: 0x7E9D,
+ 12032: 0x7E9E,
+ 12033: 0x7EAE,
+ 12034: 0x7EB4,
+ 12035: 0x7EBB,
+ 12036: 0x7EBC,
+ 12037: 0x7ED6,
+ 12038: 0x7EE4,
+ 12039: 0x7EEC,
+ 12040: 0x7EF9,
+ 12041: 0x7F0A,
+ 12042: 0x7F10,
+ 12043: 0x7F1E,
+ 12044: 0x7F37,
+ 12045: 0x7F39,
+ 12046: 0x7F3B,
+ 12047: 0x7F3C,
+ 12048: 0x7F3D,
+ 12049: 0x7F3E,
+ 12050: 0x7F3F,
+ 12051: 0x7F40,
+ 12052: 0x7F41,
+ 12053: 0x7F43,
+ 12054: 0x7F46,
+ 12055: 0x7F47,
+ 12056: 0x7F48,
+ 12057: 0x7F49,
+ 12058: 0x7F4A,
+ 12059: 0x7F4B,
+ 12060: 0x7F4C,
+ 12061: 0x7F4D,
+ 12062: 0x7F4E,
+ 12063: 0x7F4F,
+ 12064: 0x7F52,
+ 12065: 0x7F53,
+ 12066: 0x9988,
+ 12067: 0x6127,
+ 12068: 0x6E83,
+ 12069: 0x5764,
+ 12070: 0x6606,
+ 12071: 0x6346,
+ 12072: 0x56F0,
+ 12073: 0x62EC,
+ 12074: 0x6269,
+ 12075: 0x5ED3,
+ 12076: 0x9614,
+ 12077: 0x5783,
+ 12078: 0x62C9,
+ 12079: 0x5587,
+ 12080: 0x8721,
+ 12081: 0x814A,
+ 12082: 0x8FA3,
+ 12083: 0x5566,
+ 12084: 0x83B1,
+ 12085: 0x6765,
+ 12086: 0x8D56,
+ 12087: 0x84DD,
+ 12088: 0x5A6A,
+ 12089: 0x680F,
+ 12090: 0x62E6,
+ 12091: 0x7BEE,
+ 12092: 0x9611,
+ 12093: 0x5170,
+ 12094: 0x6F9C,
+ 12095: 0x8C30,
+ 12096: 0x63FD,
+ 12097: 0x89C8,
+ 12098: 0x61D2,
+ 12099: 0x7F06,
+ 12100: 0x70C2,
+ 12101: 0x6EE5,
+ 12102: 0x7405,
+ 12103: 0x6994,
+ 12104: 0x72FC,
+ 12105: 0x5ECA,
+ 12106: 0x90CE,
+ 12107: 0x6717,
+ 12108: 0x6D6A,
+ 12109: 0x635E,
+ 12110: 0x52B3,
+ 12111: 0x7262,
+ 12112: 0x8001,
+ 12113: 0x4F6C,
+ 12114: 0x59E5,
+ 12115: 0x916A,
+ 12116: 0x70D9,
+ 12117: 0x6D9D,
+ 12118: 0x52D2,
+ 12119: 0x4E50,
+ 12120: 0x96F7,
+ 12121: 0x956D,
+ 12122: 0x857E,
+ 12123: 0x78CA,
+ 12124: 0x7D2F,
+ 12125: 0x5121,
+ 12126: 0x5792,
+ 12127: 0x64C2,
+ 12128: 0x808B,
+ 12129: 0x7C7B,
+ 12130: 0x6CEA,
+ 12131: 0x68F1,
+ 12132: 0x695E,
+ 12133: 0x51B7,
+ 12134: 0x5398,
+ 12135: 0x68A8,
+ 12136: 0x7281,
+ 12137: 0x9ECE,
+ 12138: 0x7BF1,
+ 12139: 0x72F8,
+ 12140: 0x79BB,
+ 12141: 0x6F13,
+ 12142: 0x7406,
+ 12143: 0x674E,
+ 12144: 0x91CC,
+ 12145: 0x9CA4,
+ 12146: 0x793C,
+ 12147: 0x8389,
+ 12148: 0x8354,
+ 12149: 0x540F,
+ 12150: 0x6817,
+ 12151: 0x4E3D,
+ 12152: 0x5389,
+ 12153: 0x52B1,
+ 12154: 0x783E,
+ 12155: 0x5386,
+ 12156: 0x5229,
+ 12157: 0x5088,
+ 12158: 0x4F8B,
+ 12159: 0x4FD0,
+ 12160: 0x7F56,
+ 12161: 0x7F59,
+ 12162: 0x7F5B,
+ 12163: 0x7F5C,
+ 12164: 0x7F5D,
+ 12165: 0x7F5E,
+ 12166: 0x7F60,
+ 12167: 0x7F63,
+ 12168: 0x7F64,
+ 12169: 0x7F65,
+ 12170: 0x7F66,
+ 12171: 0x7F67,
+ 12172: 0x7F6B,
+ 12173: 0x7F6C,
+ 12174: 0x7F6D,
+ 12175: 0x7F6F,
+ 12176: 0x7F70,
+ 12177: 0x7F73,
+ 12178: 0x7F75,
+ 12179: 0x7F76,
+ 12180: 0x7F77,
+ 12181: 0x7F78,
+ 12182: 0x7F7A,
+ 12183: 0x7F7B,
+ 12184: 0x7F7C,
+ 12185: 0x7F7D,
+ 12186: 0x7F7F,
+ 12187: 0x7F80,
+ 12188: 0x7F82,
+ 12189: 0x7F83,
+ 12190: 0x7F84,
+ 12191: 0x7F85,
+ 12192: 0x7F86,
+ 12193: 0x7F87,
+ 12194: 0x7F88,
+ 12195: 0x7F89,
+ 12196: 0x7F8B,
+ 12197: 0x7F8D,
+ 12198: 0x7F8F,
+ 12199: 0x7F90,
+ 12200: 0x7F91,
+ 12201: 0x7F92,
+ 12202: 0x7F93,
+ 12203: 0x7F95,
+ 12204: 0x7F96,
+ 12205: 0x7F97,
+ 12206: 0x7F98,
+ 12207: 0x7F99,
+ 12208: 0x7F9B,
+ 12209: 0x7F9C,
+ 12210: 0x7FA0,
+ 12211: 0x7FA2,
+ 12212: 0x7FA3,
+ 12213: 0x7FA5,
+ 12214: 0x7FA6,
+ 12215: 0x7FA8,
+ 12216: 0x7FA9,
+ 12217: 0x7FAA,
+ 12218: 0x7FAB,
+ 12219: 0x7FAC,
+ 12220: 0x7FAD,
+ 12221: 0x7FAE,
+ 12222: 0x7FB1,
+ 12223: 0x7FB3,
+ 12224: 0x7FB4,
+ 12225: 0x7FB5,
+ 12226: 0x7FB6,
+ 12227: 0x7FB7,
+ 12228: 0x7FBA,
+ 12229: 0x7FBB,
+ 12230: 0x7FBE,
+ 12231: 0x7FC0,
+ 12232: 0x7FC2,
+ 12233: 0x7FC3,
+ 12234: 0x7FC4,
+ 12235: 0x7FC6,
+ 12236: 0x7FC7,
+ 12237: 0x7FC8,
+ 12238: 0x7FC9,
+ 12239: 0x7FCB,
+ 12240: 0x7FCD,
+ 12241: 0x7FCF,
+ 12242: 0x7FD0,
+ 12243: 0x7FD1,
+ 12244: 0x7FD2,
+ 12245: 0x7FD3,
+ 12246: 0x7FD6,
+ 12247: 0x7FD7,
+ 12248: 0x7FD9,
+ 12249: 0x7FDA,
+ 12250: 0x7FDB,
+ 12251: 0x7FDC,
+ 12252: 0x7FDD,
+ 12253: 0x7FDE,
+ 12254: 0x7FE2,
+ 12255: 0x7FE3,
+ 12256: 0x75E2,
+ 12257: 0x7ACB,
+ 12258: 0x7C92,
+ 12259: 0x6CA5,
+ 12260: 0x96B6,
+ 12261: 0x529B,
+ 12262: 0x7483,
+ 12263: 0x54E9,
+ 12264: 0x4FE9,
+ 12265: 0x8054,
+ 12266: 0x83B2,
+ 12267: 0x8FDE,
+ 12268: 0x9570,
+ 12269: 0x5EC9,
+ 12270: 0x601C,
+ 12271: 0x6D9F,
+ 12272: 0x5E18,
+ 12273: 0x655B,
+ 12274: 0x8138,
+ 12275: 0x94FE,
+ 12276: 0x604B,
+ 12277: 0x70BC,
+ 12278: 0x7EC3,
+ 12279: 0x7CAE,
+ 12280: 0x51C9,
+ 12281: 0x6881,
+ 12282: 0x7CB1,
+ 12283: 0x826F,
+ 12284: 0x4E24,
+ 12285: 0x8F86,
+ 12286: 0x91CF,
+ 12287: 0x667E,
+ 12288: 0x4EAE,
+ 12289: 0x8C05,
+ 12290: 0x64A9,
+ 12291: 0x804A,
+ 12292: 0x50DA,
+ 12293: 0x7597,
+ 12294: 0x71CE,
+ 12295: 0x5BE5,
+ 12296: 0x8FBD,
+ 12297: 0x6F66,
+ 12298: 0x4E86,
+ 12299: 0x6482,
+ 12300: 0x9563,
+ 12301: 0x5ED6,
+ 12302: 0x6599,
+ 12303: 0x5217,
+ 12304: 0x88C2,
+ 12305: 0x70C8,
+ 12306: 0x52A3,
+ 12307: 0x730E,
+ 12308: 0x7433,
+ 12309: 0x6797,
+ 12310: 0x78F7,
+ 12311: 0x9716,
+ 12312: 0x4E34,
+ 12313: 0x90BB,
+ 12314: 0x9CDE,
+ 12315: 0x6DCB,
+ 12316: 0x51DB,
+ 12317: 0x8D41,
+ 12318: 0x541D,
+ 12319: 0x62CE,
+ 12320: 0x73B2,
+ 12321: 0x83F1,
+ 12322: 0x96F6,
+ 12323: 0x9F84,
+ 12324: 0x94C3,
+ 12325: 0x4F36,
+ 12326: 0x7F9A,
+ 12327: 0x51CC,
+ 12328: 0x7075,
+ 12329: 0x9675,
+ 12330: 0x5CAD,
+ 12331: 0x9886,
+ 12332: 0x53E6,
+ 12333: 0x4EE4,
+ 12334: 0x6E9C,
+ 12335: 0x7409,
+ 12336: 0x69B4,
+ 12337: 0x786B,
+ 12338: 0x998F,
+ 12339: 0x7559,
+ 12340: 0x5218,
+ 12341: 0x7624,
+ 12342: 0x6D41,
+ 12343: 0x67F3,
+ 12344: 0x516D,
+ 12345: 0x9F99,
+ 12346: 0x804B,
+ 12347: 0x5499,
+ 12348: 0x7B3C,
+ 12349: 0x7ABF,
+ 12350: 0x7FE4,
+ 12351: 0x7FE7,
+ 12352: 0x7FE8,
+ 12353: 0x7FEA,
+ 12354: 0x7FEB,
+ 12355: 0x7FEC,
+ 12356: 0x7FED,
+ 12357: 0x7FEF,
+ 12358: 0x7FF2,
+ 12359: 0x7FF4,
+ 12360: 0x7FF5,
+ 12361: 0x7FF6,
+ 12362: 0x7FF7,
+ 12363: 0x7FF8,
+ 12364: 0x7FF9,
+ 12365: 0x7FFA,
+ 12366: 0x7FFD,
+ 12367: 0x7FFE,
+ 12368: 0x7FFF,
+ 12369: 0x8002,
+ 12370: 0x8007,
+ 12371: 0x8008,
+ 12372: 0x8009,
+ 12373: 0x800A,
+ 12374: 0x800E,
+ 12375: 0x800F,
+ 12376: 0x8011,
+ 12377: 0x8013,
+ 12378: 0x801A,
+ 12379: 0x801B,
+ 12380: 0x801D,
+ 12381: 0x801E,
+ 12382: 0x801F,
+ 12383: 0x8021,
+ 12384: 0x8023,
+ 12385: 0x8024,
+ 12386: 0x802B,
+ 12387: 0x802C,
+ 12388: 0x802D,
+ 12389: 0x802E,
+ 12390: 0x802F,
+ 12391: 0x8030,
+ 12392: 0x8032,
+ 12393: 0x8034,
+ 12394: 0x8039,
+ 12395: 0x803A,
+ 12396: 0x803C,
+ 12397: 0x803E,
+ 12398: 0x8040,
+ 12399: 0x8041,
+ 12400: 0x8044,
+ 12401: 0x8045,
+ 12402: 0x8047,
+ 12403: 0x8048,
+ 12404: 0x8049,
+ 12405: 0x804E,
+ 12406: 0x804F,
+ 12407: 0x8050,
+ 12408: 0x8051,
+ 12409: 0x8053,
+ 12410: 0x8055,
+ 12411: 0x8056,
+ 12412: 0x8057,
+ 12413: 0x8059,
+ 12414: 0x805B,
+ 12415: 0x805C,
+ 12416: 0x805D,
+ 12417: 0x805E,
+ 12418: 0x805F,
+ 12419: 0x8060,
+ 12420: 0x8061,
+ 12421: 0x8062,
+ 12422: 0x8063,
+ 12423: 0x8064,
+ 12424: 0x8065,
+ 12425: 0x8066,
+ 12426: 0x8067,
+ 12427: 0x8068,
+ 12428: 0x806B,
+ 12429: 0x806C,
+ 12430: 0x806D,
+ 12431: 0x806E,
+ 12432: 0x806F,
+ 12433: 0x8070,
+ 12434: 0x8072,
+ 12435: 0x8073,
+ 12436: 0x8074,
+ 12437: 0x8075,
+ 12438: 0x8076,
+ 12439: 0x8077,
+ 12440: 0x8078,
+ 12441: 0x8079,
+ 12442: 0x807A,
+ 12443: 0x807B,
+ 12444: 0x807C,
+ 12445: 0x807D,
+ 12446: 0x9686,
+ 12447: 0x5784,
+ 12448: 0x62E2,
+ 12449: 0x9647,
+ 12450: 0x697C,
+ 12451: 0x5A04,
+ 12452: 0x6402,
+ 12453: 0x7BD3,
+ 12454: 0x6F0F,
+ 12455: 0x964B,
+ 12456: 0x82A6,
+ 12457: 0x5362,
+ 12458: 0x9885,
+ 12459: 0x5E90,
+ 12460: 0x7089,
+ 12461: 0x63B3,
+ 12462: 0x5364,
+ 12463: 0x864F,
+ 12464: 0x9C81,
+ 12465: 0x9E93,
+ 12466: 0x788C,
+ 12467: 0x9732,
+ 12468: 0x8DEF,
+ 12469: 0x8D42,
+ 12470: 0x9E7F,
+ 12471: 0x6F5E,
+ 12472: 0x7984,
+ 12473: 0x5F55,
+ 12474: 0x9646,
+ 12475: 0x622E,
+ 12476: 0x9A74,
+ 12477: 0x5415,
+ 12478: 0x94DD,
+ 12479: 0x4FA3,
+ 12480: 0x65C5,
+ 12481: 0x5C65,
+ 12482: 0x5C61,
+ 12483: 0x7F15,
+ 12484: 0x8651,
+ 12485: 0x6C2F,
+ 12486: 0x5F8B,
+ 12487: 0x7387,
+ 12488: 0x6EE4,
+ 12489: 0x7EFF,
+ 12490: 0x5CE6,
+ 12491: 0x631B,
+ 12492: 0x5B6A,
+ 12493: 0x6EE6,
+ 12494: 0x5375,
+ 12495: 0x4E71,
+ 12496: 0x63A0,
+ 12497: 0x7565,
+ 12498: 0x62A1,
+ 12499: 0x8F6E,
+ 12500: 0x4F26,
+ 12501: 0x4ED1,
+ 12502: 0x6CA6,
+ 12503: 0x7EB6,
+ 12504: 0x8BBA,
+ 12505: 0x841D,
+ 12506: 0x87BA,
+ 12507: 0x7F57,
+ 12508: 0x903B,
+ 12509: 0x9523,
+ 12510: 0x7BA9,
+ 12511: 0x9AA1,
+ 12512: 0x88F8,
+ 12513: 0x843D,
+ 12514: 0x6D1B,
+ 12515: 0x9A86,
+ 12516: 0x7EDC,
+ 12517: 0x5988,
+ 12518: 0x9EBB,
+ 12519: 0x739B,
+ 12520: 0x7801,
+ 12521: 0x8682,
+ 12522: 0x9A6C,
+ 12523: 0x9A82,
+ 12524: 0x561B,
+ 12525: 0x5417,
+ 12526: 0x57CB,
+ 12527: 0x4E70,
+ 12528: 0x9EA6,
+ 12529: 0x5356,
+ 12530: 0x8FC8,
+ 12531: 0x8109,
+ 12532: 0x7792,
+ 12533: 0x9992,
+ 12534: 0x86EE,
+ 12535: 0x6EE1,
+ 12536: 0x8513,
+ 12537: 0x66FC,
+ 12538: 0x6162,
+ 12539: 0x6F2B,
+ 12540: 0x807E,
+ 12541: 0x8081,
+ 12542: 0x8082,
+ 12543: 0x8085,
+ 12544: 0x8088,
+ 12545: 0x808A,
+ 12546: 0x808D,
+ 12547: 0x808E,
+ 12548: 0x808F,
+ 12549: 0x8090,
+ 12550: 0x8091,
+ 12551: 0x8092,
+ 12552: 0x8094,
+ 12553: 0x8095,
+ 12554: 0x8097,
+ 12555: 0x8099,
+ 12556: 0x809E,
+ 12557: 0x80A3,
+ 12558: 0x80A6,
+ 12559: 0x80A7,
+ 12560: 0x80A8,
+ 12561: 0x80AC,
+ 12562: 0x80B0,
+ 12563: 0x80B3,
+ 12564: 0x80B5,
+ 12565: 0x80B6,
+ 12566: 0x80B8,
+ 12567: 0x80B9,
+ 12568: 0x80BB,
+ 12569: 0x80C5,
+ 12570: 0x80C7,
+ 12571: 0x80C8,
+ 12572: 0x80C9,
+ 12573: 0x80CA,
+ 12574: 0x80CB,
+ 12575: 0x80CF,
+ 12576: 0x80D0,
+ 12577: 0x80D1,
+ 12578: 0x80D2,
+ 12579: 0x80D3,
+ 12580: 0x80D4,
+ 12581: 0x80D5,
+ 12582: 0x80D8,
+ 12583: 0x80DF,
+ 12584: 0x80E0,
+ 12585: 0x80E2,
+ 12586: 0x80E3,
+ 12587: 0x80E6,
+ 12588: 0x80EE,
+ 12589: 0x80F5,
+ 12590: 0x80F7,
+ 12591: 0x80F9,
+ 12592: 0x80FB,
+ 12593: 0x80FE,
+ 12594: 0x80FF,
+ 12595: 0x8100,
+ 12596: 0x8101,
+ 12597: 0x8103,
+ 12598: 0x8104,
+ 12599: 0x8105,
+ 12600: 0x8107,
+ 12601: 0x8108,
+ 12602: 0x810B,
+ 12603: 0x810C,
+ 12604: 0x8115,
+ 12605: 0x8117,
+ 12606: 0x8119,
+ 12607: 0x811B,
+ 12608: 0x811C,
+ 12609: 0x811D,
+ 12610: 0x811F,
+ 12611: 0x8120,
+ 12612: 0x8121,
+ 12613: 0x8122,
+ 12614: 0x8123,
+ 12615: 0x8124,
+ 12616: 0x8125,
+ 12617: 0x8126,
+ 12618: 0x8127,
+ 12619: 0x8128,
+ 12620: 0x8129,
+ 12621: 0x812A,
+ 12622: 0x812B,
+ 12623: 0x812D,
+ 12624: 0x812E,
+ 12625: 0x8130,
+ 12626: 0x8133,
+ 12627: 0x8134,
+ 12628: 0x8135,
+ 12629: 0x8137,
+ 12630: 0x8139,
+ 12631: 0x813A,
+ 12632: 0x813B,
+ 12633: 0x813C,
+ 12634: 0x813D,
+ 12635: 0x813F,
+ 12636: 0x8C29,
+ 12637: 0x8292,
+ 12638: 0x832B,
+ 12639: 0x76F2,
+ 12640: 0x6C13,
+ 12641: 0x5FD9,
+ 12642: 0x83BD,
+ 12643: 0x732B,
+ 12644: 0x8305,
+ 12645: 0x951A,
+ 12646: 0x6BDB,
+ 12647: 0x77DB,
+ 12648: 0x94C6,
+ 12649: 0x536F,
+ 12650: 0x8302,
+ 12651: 0x5192,
+ 12652: 0x5E3D,
+ 12653: 0x8C8C,
+ 12654: 0x8D38,
+ 12655: 0x4E48,
+ 12656: 0x73AB,
+ 12657: 0x679A,
+ 12658: 0x6885,
+ 12659: 0x9176,
+ 12660: 0x9709,
+ 12661: 0x7164,
+ 12662: 0x6CA1,
+ 12663: 0x7709,
+ 12664: 0x5A92,
+ 12665: 0x9541,
+ 12666: 0x6BCF,
+ 12667: 0x7F8E,
+ 12668: 0x6627,
+ 12669: 0x5BD0,
+ 12670: 0x59B9,
+ 12671: 0x5A9A,
+ 12672: 0x95E8,
+ 12673: 0x95F7,
+ 12674: 0x4EEC,
+ 12675: 0x840C,
+ 12676: 0x8499,
+ 12677: 0x6AAC,
+ 12678: 0x76DF,
+ 12679: 0x9530,
+ 12680: 0x731B,
+ 12681: 0x68A6,
+ 12682: 0x5B5F,
+ 12683: 0x772F,
+ 12684: 0x919A,
+ 12685: 0x9761,
+ 12686: 0x7CDC,
+ 12687: 0x8FF7,
+ 12688: 0x8C1C,
+ 12689: 0x5F25,
+ 12690: 0x7C73,
+ 12691: 0x79D8,
+ 12692: 0x89C5,
+ 12693: 0x6CCC,
+ 12694: 0x871C,
+ 12695: 0x5BC6,
+ 12696: 0x5E42,
+ 12697: 0x68C9,
+ 12698: 0x7720,
+ 12699: 0x7EF5,
+ 12700: 0x5195,
+ 12701: 0x514D,
+ 12702: 0x52C9,
+ 12703: 0x5A29,
+ 12704: 0x7F05,
+ 12705: 0x9762,
+ 12706: 0x82D7,
+ 12707: 0x63CF,
+ 12708: 0x7784,
+ 12709: 0x85D0,
+ 12710: 0x79D2,
+ 12711: 0x6E3A,
+ 12712: 0x5E99,
+ 12713: 0x5999,
+ 12714: 0x8511,
+ 12715: 0x706D,
+ 12716: 0x6C11,
+ 12717: 0x62BF,
+ 12718: 0x76BF,
+ 12719: 0x654F,
+ 12720: 0x60AF,
+ 12721: 0x95FD,
+ 12722: 0x660E,
+ 12723: 0x879F,
+ 12724: 0x9E23,
+ 12725: 0x94ED,
+ 12726: 0x540D,
+ 12727: 0x547D,
+ 12728: 0x8C2C,
+ 12729: 0x6478,
+ 12730: 0x8140,
+ 12731: 0x8141,
+ 12732: 0x8142,
+ 12733: 0x8143,
+ 12734: 0x8144,
+ 12735: 0x8145,
+ 12736: 0x8147,
+ 12737: 0x8149,
+ 12738: 0x814D,
+ 12739: 0x814E,
+ 12740: 0x814F,
+ 12741: 0x8152,
+ 12742: 0x8156,
+ 12743: 0x8157,
+ 12744: 0x8158,
+ 12745: 0x815B,
+ 12746: 0x815C,
+ 12747: 0x815D,
+ 12748: 0x815E,
+ 12749: 0x815F,
+ 12750: 0x8161,
+ 12751: 0x8162,
+ 12752: 0x8163,
+ 12753: 0x8164,
+ 12754: 0x8166,
+ 12755: 0x8168,
+ 12756: 0x816A,
+ 12757: 0x816B,
+ 12758: 0x816C,
+ 12759: 0x816F,
+ 12760: 0x8172,
+ 12761: 0x8173,
+ 12762: 0x8175,
+ 12763: 0x8176,
+ 12764: 0x8177,
+ 12765: 0x8178,
+ 12766: 0x8181,
+ 12767: 0x8183,
+ 12768: 0x8184,
+ 12769: 0x8185,
+ 12770: 0x8186,
+ 12771: 0x8187,
+ 12772: 0x8189,
+ 12773: 0x818B,
+ 12774: 0x818C,
+ 12775: 0x818D,
+ 12776: 0x818E,
+ 12777: 0x8190,
+ 12778: 0x8192,
+ 12779: 0x8193,
+ 12780: 0x8194,
+ 12781: 0x8195,
+ 12782: 0x8196,
+ 12783: 0x8197,
+ 12784: 0x8199,
+ 12785: 0x819A,
+ 12786: 0x819E,
+ 12787: 0x819F,
+ 12788: 0x81A0,
+ 12789: 0x81A1,
+ 12790: 0x81A2,
+ 12791: 0x81A4,
+ 12792: 0x81A5,
+ 12793: 0x81A7,
+ 12794: 0x81A9,
+ 12795: 0x81AB,
+ 12796: 0x81AC,
+ 12797: 0x81AD,
+ 12798: 0x81AE,
+ 12799: 0x81AF,
+ 12800: 0x81B0,
+ 12801: 0x81B1,
+ 12802: 0x81B2,
+ 12803: 0x81B4,
+ 12804: 0x81B5,
+ 12805: 0x81B6,
+ 12806: 0x81B7,
+ 12807: 0x81B8,
+ 12808: 0x81B9,
+ 12809: 0x81BC,
+ 12810: 0x81BD,
+ 12811: 0x81BE,
+ 12812: 0x81BF,
+ 12813: 0x81C4,
+ 12814: 0x81C5,
+ 12815: 0x81C7,
+ 12816: 0x81C8,
+ 12817: 0x81C9,
+ 12818: 0x81CB,
+ 12819: 0x81CD,
+ 12820: 0x81CE,
+ 12821: 0x81CF,
+ 12822: 0x81D0,
+ 12823: 0x81D1,
+ 12824: 0x81D2,
+ 12825: 0x81D3,
+ 12826: 0x6479,
+ 12827: 0x8611,
+ 12828: 0x6A21,
+ 12829: 0x819C,
+ 12830: 0x78E8,
+ 12831: 0x6469,
+ 12832: 0x9B54,
+ 12833: 0x62B9,
+ 12834: 0x672B,
+ 12835: 0x83AB,
+ 12836: 0x58A8,
+ 12837: 0x9ED8,
+ 12838: 0x6CAB,
+ 12839: 0x6F20,
+ 12840: 0x5BDE,
+ 12841: 0x964C,
+ 12842: 0x8C0B,
+ 12843: 0x725F,
+ 12844: 0x67D0,
+ 12845: 0x62C7,
+ 12846: 0x7261,
+ 12847: 0x4EA9,
+ 12848: 0x59C6,
+ 12849: 0x6BCD,
+ 12850: 0x5893,
+ 12851: 0x66AE,
+ 12852: 0x5E55,
+ 12853: 0x52DF,
+ 12854: 0x6155,
+ 12855: 0x6728,
+ 12856: 0x76EE,
+ 12857: 0x7766,
+ 12858: 0x7267,
+ 12859: 0x7A46,
+ 12860: 0x62FF,
+ 12861: 0x54EA,
+ 12862: 0x5450,
+ 12863: 0x94A0,
+ 12864: 0x90A3,
+ 12865: 0x5A1C,
+ 12866: 0x7EB3,
+ 12867: 0x6C16,
+ 12868: 0x4E43,
+ 12869: 0x5976,
+ 12870: 0x8010,
+ 12871: 0x5948,
+ 12872: 0x5357,
+ 12873: 0x7537,
+ 12874: 0x96BE,
+ 12875: 0x56CA,
+ 12876: 0x6320,
+ 12877: 0x8111,
+ 12878: 0x607C,
+ 12879: 0x95F9,
+ 12880: 0x6DD6,
+ 12881: 0x5462,
+ 12882: 0x9981,
+ 12883: 0x5185,
+ 12884: 0x5AE9,
+ 12885: 0x80FD,
+ 12886: 0x59AE,
+ 12887: 0x9713,
+ 12888: 0x502A,
+ 12889: 0x6CE5,
+ 12890: 0x5C3C,
+ 12891: 0x62DF,
+ 12892: 0x4F60,
+ 12893: 0x533F,
+ 12894: 0x817B,
+ 12895: 0x9006,
+ 12896: 0x6EBA,
+ 12897: 0x852B,
+ 12898: 0x62C8,
+ 12899: 0x5E74,
+ 12900: 0x78BE,
+ 12901: 0x64B5,
+ 12902: 0x637B,
+ 12903: 0x5FF5,
+ 12904: 0x5A18,
+ 12905: 0x917F,
+ 12906: 0x9E1F,
+ 12907: 0x5C3F,
+ 12908: 0x634F,
+ 12909: 0x8042,
+ 12910: 0x5B7D,
+ 12911: 0x556E,
+ 12912: 0x954A,
+ 12913: 0x954D,
+ 12914: 0x6D85,
+ 12915: 0x60A8,
+ 12916: 0x67E0,
+ 12917: 0x72DE,
+ 12918: 0x51DD,
+ 12919: 0x5B81,
+ 12920: 0x81D4,
+ 12921: 0x81D5,
+ 12922: 0x81D6,
+ 12923: 0x81D7,
+ 12924: 0x81D8,
+ 12925: 0x81D9,
+ 12926: 0x81DA,
+ 12927: 0x81DB,
+ 12928: 0x81DC,
+ 12929: 0x81DD,
+ 12930: 0x81DE,
+ 12931: 0x81DF,
+ 12932: 0x81E0,
+ 12933: 0x81E1,
+ 12934: 0x81E2,
+ 12935: 0x81E4,
+ 12936: 0x81E5,
+ 12937: 0x81E6,
+ 12938: 0x81E8,
+ 12939: 0x81E9,
+ 12940: 0x81EB,
+ 12941: 0x81EE,
+ 12942: 0x81EF,
+ 12943: 0x81F0,
+ 12944: 0x81F1,
+ 12945: 0x81F2,
+ 12946: 0x81F5,
+ 12947: 0x81F6,
+ 12948: 0x81F7,
+ 12949: 0x81F8,
+ 12950: 0x81F9,
+ 12951: 0x81FA,
+ 12952: 0x81FD,
+ 12953: 0x81FF,
+ 12954: 0x8203,
+ 12955: 0x8207,
+ 12956: 0x8208,
+ 12957: 0x8209,
+ 12958: 0x820A,
+ 12959: 0x820B,
+ 12960: 0x820E,
+ 12961: 0x820F,
+ 12962: 0x8211,
+ 12963: 0x8213,
+ 12964: 0x8215,
+ 12965: 0x8216,
+ 12966: 0x8217,
+ 12967: 0x8218,
+ 12968: 0x8219,
+ 12969: 0x821A,
+ 12970: 0x821D,
+ 12971: 0x8220,
+ 12972: 0x8224,
+ 12973: 0x8225,
+ 12974: 0x8226,
+ 12975: 0x8227,
+ 12976: 0x8229,
+ 12977: 0x822E,
+ 12978: 0x8232,
+ 12979: 0x823A,
+ 12980: 0x823C,
+ 12981: 0x823D,
+ 12982: 0x823F,
+ 12983: 0x8240,
+ 12984: 0x8241,
+ 12985: 0x8242,
+ 12986: 0x8243,
+ 12987: 0x8245,
+ 12988: 0x8246,
+ 12989: 0x8248,
+ 12990: 0x824A,
+ 12991: 0x824C,
+ 12992: 0x824D,
+ 12993: 0x824E,
+ 12994: 0x8250,
+ 12995: 0x8251,
+ 12996: 0x8252,
+ 12997: 0x8253,
+ 12998: 0x8254,
+ 12999: 0x8255,
+ 13000: 0x8256,
+ 13001: 0x8257,
+ 13002: 0x8259,
+ 13003: 0x825B,
+ 13004: 0x825C,
+ 13005: 0x825D,
+ 13006: 0x825E,
+ 13007: 0x8260,
+ 13008: 0x8261,
+ 13009: 0x8262,
+ 13010: 0x8263,
+ 13011: 0x8264,
+ 13012: 0x8265,
+ 13013: 0x8266,
+ 13014: 0x8267,
+ 13015: 0x8269,
+ 13016: 0x62E7,
+ 13017: 0x6CDE,
+ 13018: 0x725B,
+ 13019: 0x626D,
+ 13020: 0x94AE,
+ 13021: 0x7EBD,
+ 13022: 0x8113,
+ 13023: 0x6D53,
+ 13024: 0x519C,
+ 13025: 0x5F04,
+ 13026: 0x5974,
+ 13027: 0x52AA,
+ 13028: 0x6012,
+ 13029: 0x5973,
+ 13030: 0x6696,
+ 13031: 0x8650,
+ 13032: 0x759F,
+ 13033: 0x632A,
+ 13034: 0x61E6,
+ 13035: 0x7CEF,
+ 13036: 0x8BFA,
+ 13037: 0x54E6,
+ 13038: 0x6B27,
+ 13039: 0x9E25,
+ 13040: 0x6BB4,
+ 13041: 0x85D5,
+ 13042: 0x5455,
+ 13043: 0x5076,
+ 13044: 0x6CA4,
+ 13045: 0x556A,
+ 13046: 0x8DB4,
+ 13047: 0x722C,
+ 13048: 0x5E15,
+ 13049: 0x6015,
+ 13050: 0x7436,
+ 13051: 0x62CD,
+ 13052: 0x6392,
+ 13053: 0x724C,
+ 13054: 0x5F98,
+ 13055: 0x6E43,
+ 13056: 0x6D3E,
+ 13057: 0x6500,
+ 13058: 0x6F58,
+ 13059: 0x76D8,
+ 13060: 0x78D0,
+ 13061: 0x76FC,
+ 13062: 0x7554,
+ 13063: 0x5224,
+ 13064: 0x53DB,
+ 13065: 0x4E53,
+ 13066: 0x5E9E,
+ 13067: 0x65C1,
+ 13068: 0x802A,
+ 13069: 0x80D6,
+ 13070: 0x629B,
+ 13071: 0x5486,
+ 13072: 0x5228,
+ 13073: 0x70AE,
+ 13074: 0x888D,
+ 13075: 0x8DD1,
+ 13076: 0x6CE1,
+ 13077: 0x5478,
+ 13078: 0x80DA,
+ 13079: 0x57F9,
+ 13080: 0x88F4,
+ 13081: 0x8D54,
+ 13082: 0x966A,
+ 13083: 0x914D,
+ 13084: 0x4F69,
+ 13085: 0x6C9B,
+ 13086: 0x55B7,
+ 13087: 0x76C6,
+ 13088: 0x7830,
+ 13089: 0x62A8,
+ 13090: 0x70F9,
+ 13091: 0x6F8E,
+ 13092: 0x5F6D,
+ 13093: 0x84EC,
+ 13094: 0x68DA,
+ 13095: 0x787C,
+ 13096: 0x7BF7,
+ 13097: 0x81A8,
+ 13098: 0x670B,
+ 13099: 0x9E4F,
+ 13100: 0x6367,
+ 13101: 0x78B0,
+ 13102: 0x576F,
+ 13103: 0x7812,
+ 13104: 0x9739,
+ 13105: 0x6279,
+ 13106: 0x62AB,
+ 13107: 0x5288,
+ 13108: 0x7435,
+ 13109: 0x6BD7,
+ 13110: 0x826A,
+ 13111: 0x826B,
+ 13112: 0x826C,
+ 13113: 0x826D,
+ 13114: 0x8271,
+ 13115: 0x8275,
+ 13116: 0x8276,
+ 13117: 0x8277,
+ 13118: 0x8278,
+ 13119: 0x827B,
+ 13120: 0x827C,
+ 13121: 0x8280,
+ 13122: 0x8281,
+ 13123: 0x8283,
+ 13124: 0x8285,
+ 13125: 0x8286,
+ 13126: 0x8287,
+ 13127: 0x8289,
+ 13128: 0x828C,
+ 13129: 0x8290,
+ 13130: 0x8293,
+ 13131: 0x8294,
+ 13132: 0x8295,
+ 13133: 0x8296,
+ 13134: 0x829A,
+ 13135: 0x829B,
+ 13136: 0x829E,
+ 13137: 0x82A0,
+ 13138: 0x82A2,
+ 13139: 0x82A3,
+ 13140: 0x82A7,
+ 13141: 0x82B2,
+ 13142: 0x82B5,
+ 13143: 0x82B6,
+ 13144: 0x82BA,
+ 13145: 0x82BB,
+ 13146: 0x82BC,
+ 13147: 0x82BF,
+ 13148: 0x82C0,
+ 13149: 0x82C2,
+ 13150: 0x82C3,
+ 13151: 0x82C5,
+ 13152: 0x82C6,
+ 13153: 0x82C9,
+ 13154: 0x82D0,
+ 13155: 0x82D6,
+ 13156: 0x82D9,
+ 13157: 0x82DA,
+ 13158: 0x82DD,
+ 13159: 0x82E2,
+ 13160: 0x82E7,
+ 13161: 0x82E8,
+ 13162: 0x82E9,
+ 13163: 0x82EA,
+ 13164: 0x82EC,
+ 13165: 0x82ED,
+ 13166: 0x82EE,
+ 13167: 0x82F0,
+ 13168: 0x82F2,
+ 13169: 0x82F3,
+ 13170: 0x82F5,
+ 13171: 0x82F6,
+ 13172: 0x82F8,
+ 13173: 0x82FA,
+ 13174: 0x82FC,
+ 13175: 0x82FD,
+ 13176: 0x82FE,
+ 13177: 0x82FF,
+ 13178: 0x8300,
+ 13179: 0x830A,
+ 13180: 0x830B,
+ 13181: 0x830D,
+ 13182: 0x8310,
+ 13183: 0x8312,
+ 13184: 0x8313,
+ 13185: 0x8316,
+ 13186: 0x8318,
+ 13187: 0x8319,
+ 13188: 0x831D,
+ 13189: 0x831E,
+ 13190: 0x831F,
+ 13191: 0x8320,
+ 13192: 0x8321,
+ 13193: 0x8322,
+ 13194: 0x8323,
+ 13195: 0x8324,
+ 13196: 0x8325,
+ 13197: 0x8326,
+ 13198: 0x8329,
+ 13199: 0x832A,
+ 13200: 0x832E,
+ 13201: 0x8330,
+ 13202: 0x8332,
+ 13203: 0x8337,
+ 13204: 0x833B,
+ 13205: 0x833D,
+ 13206: 0x5564,
+ 13207: 0x813E,
+ 13208: 0x75B2,
+ 13209: 0x76AE,
+ 13210: 0x5339,
+ 13211: 0x75DE,
+ 13212: 0x50FB,
+ 13213: 0x5C41,
+ 13214: 0x8B6C,
+ 13215: 0x7BC7,
+ 13216: 0x504F,
+ 13217: 0x7247,
+ 13218: 0x9A97,
+ 13219: 0x98D8,
+ 13220: 0x6F02,
+ 13221: 0x74E2,
+ 13222: 0x7968,
+ 13223: 0x6487,
+ 13224: 0x77A5,
+ 13225: 0x62FC,
+ 13226: 0x9891,
+ 13227: 0x8D2B,
+ 13228: 0x54C1,
+ 13229: 0x8058,
+ 13230: 0x4E52,
+ 13231: 0x576A,
+ 13232: 0x82F9,
+ 13233: 0x840D,
+ 13234: 0x5E73,
+ 13235: 0x51ED,
+ 13236: 0x74F6,
+ 13237: 0x8BC4,
+ 13238: 0x5C4F,
+ 13239: 0x5761,
+ 13240: 0x6CFC,
+ 13241: 0x9887,
+ 13242: 0x5A46,
+ 13243: 0x7834,
+ 13244: 0x9B44,
+ 13245: 0x8FEB,
+ 13246: 0x7C95,
+ 13247: 0x5256,
+ 13248: 0x6251,
+ 13249: 0x94FA,
+ 13250: 0x4EC6,
+ 13251: 0x8386,
+ 13252: 0x8461,
+ 13253: 0x83E9,
+ 13254: 0x84B2,
+ 13255: 0x57D4,
+ 13256: 0x6734,
+ 13257: 0x5703,
+ 13258: 0x666E,
+ 13259: 0x6D66,
+ 13260: 0x8C31,
+ 13261: 0x66DD,
+ 13262: 0x7011,
+ 13263: 0x671F,
+ 13264: 0x6B3A,
+ 13265: 0x6816,
+ 13266: 0x621A,
+ 13267: 0x59BB,
+ 13268: 0x4E03,
+ 13269: 0x51C4,
+ 13270: 0x6F06,
+ 13271: 0x67D2,
+ 13272: 0x6C8F,
+ 13273: 0x5176,
+ 13274: 0x68CB,
+ 13275: 0x5947,
+ 13276: 0x6B67,
+ 13277: 0x7566,
+ 13278: 0x5D0E,
+ 13279: 0x8110,
+ 13280: 0x9F50,
+ 13281: 0x65D7,
+ 13282: 0x7948,
+ 13283: 0x7941,
+ 13284: 0x9A91,
+ 13285: 0x8D77,
+ 13286: 0x5C82,
+ 13287: 0x4E5E,
+ 13288: 0x4F01,
+ 13289: 0x542F,
+ 13290: 0x5951,
+ 13291: 0x780C,
+ 13292: 0x5668,
+ 13293: 0x6C14,
+ 13294: 0x8FC4,
+ 13295: 0x5F03,
+ 13296: 0x6C7D,
+ 13297: 0x6CE3,
+ 13298: 0x8BAB,
+ 13299: 0x6390,
+ 13300: 0x833E,
+ 13301: 0x833F,
+ 13302: 0x8341,
+ 13303: 0x8342,
+ 13304: 0x8344,
+ 13305: 0x8345,
+ 13306: 0x8348,
+ 13307: 0x834A,
+ 13308: 0x834B,
+ 13309: 0x834C,
+ 13310: 0x834D,
+ 13311: 0x834E,
+ 13312: 0x8353,
+ 13313: 0x8355,
+ 13314: 0x8356,
+ 13315: 0x8357,
+ 13316: 0x8358,
+ 13317: 0x8359,
+ 13318: 0x835D,
+ 13319: 0x8362,
+ 13320: 0x8370,
+ 13321: 0x8371,
+ 13322: 0x8372,
+ 13323: 0x8373,
+ 13324: 0x8374,
+ 13325: 0x8375,
+ 13326: 0x8376,
+ 13327: 0x8379,
+ 13328: 0x837A,
+ 13329: 0x837E,
+ 13330: 0x837F,
+ 13331: 0x8380,
+ 13332: 0x8381,
+ 13333: 0x8382,
+ 13334: 0x8383,
+ 13335: 0x8384,
+ 13336: 0x8387,
+ 13337: 0x8388,
+ 13338: 0x838A,
+ 13339: 0x838B,
+ 13340: 0x838C,
+ 13341: 0x838D,
+ 13342: 0x838F,
+ 13343: 0x8390,
+ 13344: 0x8391,
+ 13345: 0x8394,
+ 13346: 0x8395,
+ 13347: 0x8396,
+ 13348: 0x8397,
+ 13349: 0x8399,
+ 13350: 0x839A,
+ 13351: 0x839D,
+ 13352: 0x839F,
+ 13353: 0x83A1,
+ 13354: 0x83A2,
+ 13355: 0x83A3,
+ 13356: 0x83A4,
+ 13357: 0x83A5,
+ 13358: 0x83A6,
+ 13359: 0x83A7,
+ 13360: 0x83AC,
+ 13361: 0x83AD,
+ 13362: 0x83AE,
+ 13363: 0x83AF,
+ 13364: 0x83B5,
+ 13365: 0x83BB,
+ 13366: 0x83BE,
+ 13367: 0x83BF,
+ 13368: 0x83C2,
+ 13369: 0x83C3,
+ 13370: 0x83C4,
+ 13371: 0x83C6,
+ 13372: 0x83C8,
+ 13373: 0x83C9,
+ 13374: 0x83CB,
+ 13375: 0x83CD,
+ 13376: 0x83CE,
+ 13377: 0x83D0,
+ 13378: 0x83D1,
+ 13379: 0x83D2,
+ 13380: 0x83D3,
+ 13381: 0x83D5,
+ 13382: 0x83D7,
+ 13383: 0x83D9,
+ 13384: 0x83DA,
+ 13385: 0x83DB,
+ 13386: 0x83DE,
+ 13387: 0x83E2,
+ 13388: 0x83E3,
+ 13389: 0x83E4,
+ 13390: 0x83E6,
+ 13391: 0x83E7,
+ 13392: 0x83E8,
+ 13393: 0x83EB,
+ 13394: 0x83EC,
+ 13395: 0x83ED,
+ 13396: 0x6070,
+ 13397: 0x6D3D,
+ 13398: 0x7275,
+ 13399: 0x6266,
+ 13400: 0x948E,
+ 13401: 0x94C5,
+ 13402: 0x5343,
+ 13403: 0x8FC1,
+ 13404: 0x7B7E,
+ 13405: 0x4EDF,
+ 13406: 0x8C26,
+ 13407: 0x4E7E,
+ 13408: 0x9ED4,
+ 13409: 0x94B1,
+ 13410: 0x94B3,
+ 13411: 0x524D,
+ 13412: 0x6F5C,
+ 13413: 0x9063,
+ 13414: 0x6D45,
+ 13415: 0x8C34,
+ 13416: 0x5811,
+ 13417: 0x5D4C,
+ 13418: 0x6B20,
+ 13419: 0x6B49,
+ 13420: 0x67AA,
+ 13421: 0x545B,
+ 13422: 0x8154,
+ 13423: 0x7F8C,
+ 13424: 0x5899,
+ 13425: 0x8537,
+ 13426: 0x5F3A,
+ 13427: 0x62A2,
+ 13428: 0x6A47,
+ 13429: 0x9539,
+ 13430: 0x6572,
+ 13431: 0x6084,
+ 13432: 0x6865,
+ 13433: 0x77A7,
+ 13434: 0x4E54,
+ 13435: 0x4FA8,
+ 13436: 0x5DE7,
+ 13437: 0x9798,
+ 13438: 0x64AC,
+ 13439: 0x7FD8,
+ 13440: 0x5CED,
+ 13441: 0x4FCF,
+ 13442: 0x7A8D,
+ 13443: 0x5207,
+ 13444: 0x8304,
+ 13445: 0x4E14,
+ 13446: 0x602F,
+ 13447: 0x7A83,
+ 13448: 0x94A6,
+ 13449: 0x4FB5,
+ 13450: 0x4EB2,
+ 13451: 0x79E6,
+ 13452: 0x7434,
+ 13453: 0x52E4,
+ 13454: 0x82B9,
+ 13455: 0x64D2,
+ 13456: 0x79BD,
+ 13457: 0x5BDD,
+ 13458: 0x6C81,
+ 13459: 0x9752,
+ 13460: 0x8F7B,
+ 13461: 0x6C22,
+ 13462: 0x503E,
+ 13463: 0x537F,
+ 13464: 0x6E05,
+ 13465: 0x64CE,
+ 13466: 0x6674,
+ 13467: 0x6C30,
+ 13468: 0x60C5,
+ 13469: 0x9877,
+ 13470: 0x8BF7,
+ 13471: 0x5E86,
+ 13472: 0x743C,
+ 13473: 0x7A77,
+ 13474: 0x79CB,
+ 13475: 0x4E18,
+ 13476: 0x90B1,
+ 13477: 0x7403,
+ 13478: 0x6C42,
+ 13479: 0x56DA,
+ 13480: 0x914B,
+ 13481: 0x6CC5,
+ 13482: 0x8D8B,
+ 13483: 0x533A,
+ 13484: 0x86C6,
+ 13485: 0x66F2,
+ 13486: 0x8EAF,
+ 13487: 0x5C48,
+ 13488: 0x9A71,
+ 13489: 0x6E20,
+ 13490: 0x83EE,
+ 13491: 0x83EF,
+ 13492: 0x83F3,
+ 13493: 0x83F4,
+ 13494: 0x83F5,
+ 13495: 0x83F6,
+ 13496: 0x83F7,
+ 13497: 0x83FA,
+ 13498: 0x83FB,
+ 13499: 0x83FC,
+ 13500: 0x83FE,
+ 13501: 0x83FF,
+ 13502: 0x8400,
+ 13503: 0x8402,
+ 13504: 0x8405,
+ 13505: 0x8407,
+ 13506: 0x8408,
+ 13507: 0x8409,
+ 13508: 0x840A,
+ 13509: 0x8410,
+ 13510: 0x8412,
+ 13511: 0x8413,
+ 13512: 0x8414,
+ 13513: 0x8415,
+ 13514: 0x8416,
+ 13515: 0x8417,
+ 13516: 0x8419,
+ 13517: 0x841A,
+ 13518: 0x841B,
+ 13519: 0x841E,
+ 13520: 0x841F,
+ 13521: 0x8420,
+ 13522: 0x8421,
+ 13523: 0x8422,
+ 13524: 0x8423,
+ 13525: 0x8429,
+ 13526: 0x842A,
+ 13527: 0x842B,
+ 13528: 0x842C,
+ 13529: 0x842D,
+ 13530: 0x842E,
+ 13531: 0x842F,
+ 13532: 0x8430,
+ 13533: 0x8432,
+ 13534: 0x8433,
+ 13535: 0x8434,
+ 13536: 0x8435,
+ 13537: 0x8436,
+ 13538: 0x8437,
+ 13539: 0x8439,
+ 13540: 0x843A,
+ 13541: 0x843B,
+ 13542: 0x843E,
+ 13543: 0x843F,
+ 13544: 0x8440,
+ 13545: 0x8441,
+ 13546: 0x8442,
+ 13547: 0x8443,
+ 13548: 0x8444,
+ 13549: 0x8445,
+ 13550: 0x8447,
+ 13551: 0x8448,
+ 13552: 0x8449,
+ 13553: 0x844A,
+ 13554: 0x844B,
+ 13555: 0x844C,
+ 13556: 0x844D,
+ 13557: 0x844E,
+ 13558: 0x844F,
+ 13559: 0x8450,
+ 13560: 0x8452,
+ 13561: 0x8453,
+ 13562: 0x8454,
+ 13563: 0x8455,
+ 13564: 0x8456,
+ 13565: 0x8458,
+ 13566: 0x845D,
+ 13567: 0x845E,
+ 13568: 0x845F,
+ 13569: 0x8460,
+ 13570: 0x8462,
+ 13571: 0x8464,
+ 13572: 0x8465,
+ 13573: 0x8466,
+ 13574: 0x8467,
+ 13575: 0x8468,
+ 13576: 0x846A,
+ 13577: 0x846E,
+ 13578: 0x846F,
+ 13579: 0x8470,
+ 13580: 0x8472,
+ 13581: 0x8474,
+ 13582: 0x8477,
+ 13583: 0x8479,
+ 13584: 0x847B,
+ 13585: 0x847C,
+ 13586: 0x53D6,
+ 13587: 0x5A36,
+ 13588: 0x9F8B,
+ 13589: 0x8DA3,
+ 13590: 0x53BB,
+ 13591: 0x5708,
+ 13592: 0x98A7,
+ 13593: 0x6743,
+ 13594: 0x919B,
+ 13595: 0x6CC9,
+ 13596: 0x5168,
+ 13597: 0x75CA,
+ 13598: 0x62F3,
+ 13599: 0x72AC,
+ 13600: 0x5238,
+ 13601: 0x529D,
+ 13602: 0x7F3A,
+ 13603: 0x7094,
+ 13604: 0x7638,
+ 13605: 0x5374,
+ 13606: 0x9E4A,
+ 13607: 0x69B7,
+ 13608: 0x786E,
+ 13609: 0x96C0,
+ 13610: 0x88D9,
+ 13611: 0x7FA4,
+ 13612: 0x7136,
+ 13613: 0x71C3,
+ 13614: 0x5189,
+ 13615: 0x67D3,
+ 13616: 0x74E4,
+ 13617: 0x58E4,
+ 13618: 0x6518,
+ 13619: 0x56B7,
+ 13620: 0x8BA9,
+ 13621: 0x9976,
+ 13622: 0x6270,
+ 13623: 0x7ED5,
+ 13624: 0x60F9,
+ 13625: 0x70ED,
+ 13626: 0x58EC,
+ 13627: 0x4EC1,
+ 13628: 0x4EBA,
+ 13629: 0x5FCD,
+ 13630: 0x97E7,
+ 13631: 0x4EFB,
+ 13632: 0x8BA4,
+ 13633: 0x5203,
+ 13634: 0x598A,
+ 13635: 0x7EAB,
+ 13636: 0x6254,
+ 13637: 0x4ECD,
+ 13638: 0x65E5,
+ 13639: 0x620E,
+ 13640: 0x8338,
+ 13641: 0x84C9,
+ 13642: 0x8363,
+ 13643: 0x878D,
+ 13644: 0x7194,
+ 13645: 0x6EB6,
+ 13646: 0x5BB9,
+ 13647: 0x7ED2,
+ 13648: 0x5197,
+ 13649: 0x63C9,
+ 13650: 0x67D4,
+ 13651: 0x8089,
+ 13652: 0x8339,
+ 13653: 0x8815,
+ 13654: 0x5112,
+ 13655: 0x5B7A,
+ 13656: 0x5982,
+ 13657: 0x8FB1,
+ 13658: 0x4E73,
+ 13659: 0x6C5D,
+ 13660: 0x5165,
+ 13661: 0x8925,
+ 13662: 0x8F6F,
+ 13663: 0x962E,
+ 13664: 0x854A,
+ 13665: 0x745E,
+ 13666: 0x9510,
+ 13667: 0x95F0,
+ 13668: 0x6DA6,
+ 13669: 0x82E5,
+ 13670: 0x5F31,
+ 13671: 0x6492,
+ 13672: 0x6D12,
+ 13673: 0x8428,
+ 13674: 0x816E,
+ 13675: 0x9CC3,
+ 13676: 0x585E,
+ 13677: 0x8D5B,
+ 13678: 0x4E09,
+ 13679: 0x53C1,
+ 13680: 0x847D,
+ 13681: 0x847E,
+ 13682: 0x847F,
+ 13683: 0x8480,
+ 13684: 0x8481,
+ 13685: 0x8483,
+ 13686: 0x8484,
+ 13687: 0x8485,
+ 13688: 0x8486,
+ 13689: 0x848A,
+ 13690: 0x848D,
+ 13691: 0x848F,
+ 13692: 0x8490,
+ 13693: 0x8491,
+ 13694: 0x8492,
+ 13695: 0x8493,
+ 13696: 0x8494,
+ 13697: 0x8495,
+ 13698: 0x8496,
+ 13699: 0x8498,
+ 13700: 0x849A,
+ 13701: 0x849B,
+ 13702: 0x849D,
+ 13703: 0x849E,
+ 13704: 0x849F,
+ 13705: 0x84A0,
+ 13706: 0x84A2,
+ 13707: 0x84A3,
+ 13708: 0x84A4,
+ 13709: 0x84A5,
+ 13710: 0x84A6,
+ 13711: 0x84A7,
+ 13712: 0x84A8,
+ 13713: 0x84A9,
+ 13714: 0x84AA,
+ 13715: 0x84AB,
+ 13716: 0x84AC,
+ 13717: 0x84AD,
+ 13718: 0x84AE,
+ 13719: 0x84B0,
+ 13720: 0x84B1,
+ 13721: 0x84B3,
+ 13722: 0x84B5,
+ 13723: 0x84B6,
+ 13724: 0x84B7,
+ 13725: 0x84BB,
+ 13726: 0x84BC,
+ 13727: 0x84BE,
+ 13728: 0x84C0,
+ 13729: 0x84C2,
+ 13730: 0x84C3,
+ 13731: 0x84C5,
+ 13732: 0x84C6,
+ 13733: 0x84C7,
+ 13734: 0x84C8,
+ 13735: 0x84CB,
+ 13736: 0x84CC,
+ 13737: 0x84CE,
+ 13738: 0x84CF,
+ 13739: 0x84D2,
+ 13740: 0x84D4,
+ 13741: 0x84D5,
+ 13742: 0x84D7,
+ 13743: 0x84D8,
+ 13744: 0x84D9,
+ 13745: 0x84DA,
+ 13746: 0x84DB,
+ 13747: 0x84DC,
+ 13748: 0x84DE,
+ 13749: 0x84E1,
+ 13750: 0x84E2,
+ 13751: 0x84E4,
+ 13752: 0x84E7,
+ 13753: 0x84E8,
+ 13754: 0x84E9,
+ 13755: 0x84EA,
+ 13756: 0x84EB,
+ 13757: 0x84ED,
+ 13758: 0x84EE,
+ 13759: 0x84EF,
+ 13760: 0x84F1,
+ 13761: 0x84F2,
+ 13762: 0x84F3,
+ 13763: 0x84F4,
+ 13764: 0x84F5,
+ 13765: 0x84F6,
+ 13766: 0x84F7,
+ 13767: 0x84F8,
+ 13768: 0x84F9,
+ 13769: 0x84FA,
+ 13770: 0x84FB,
+ 13771: 0x84FD,
+ 13772: 0x84FE,
+ 13773: 0x8500,
+ 13774: 0x8501,
+ 13775: 0x8502,
+ 13776: 0x4F1E,
+ 13777: 0x6563,
+ 13778: 0x6851,
+ 13779: 0x55D3,
+ 13780: 0x4E27,
+ 13781: 0x6414,
+ 13782: 0x9A9A,
+ 13783: 0x626B,
+ 13784: 0x5AC2,
+ 13785: 0x745F,
+ 13786: 0x8272,
+ 13787: 0x6DA9,
+ 13788: 0x68EE,
+ 13789: 0x50E7,
+ 13790: 0x838E,
+ 13791: 0x7802,
+ 13792: 0x6740,
+ 13793: 0x5239,
+ 13794: 0x6C99,
+ 13795: 0x7EB1,
+ 13796: 0x50BB,
+ 13797: 0x5565,
+ 13798: 0x715E,
+ 13799: 0x7B5B,
+ 13800: 0x6652,
+ 13801: 0x73CA,
+ 13802: 0x82EB,
+ 13803: 0x6749,
+ 13804: 0x5C71,
+ 13805: 0x5220,
+ 13806: 0x717D,
+ 13807: 0x886B,
+ 13808: 0x95EA,
+ 13809: 0x9655,
+ 13810: 0x64C5,
+ 13811: 0x8D61,
+ 13812: 0x81B3,
+ 13813: 0x5584,
+ 13814: 0x6C55,
+ 13815: 0x6247,
+ 13816: 0x7F2E,
+ 13817: 0x5892,
+ 13818: 0x4F24,
+ 13819: 0x5546,
+ 13820: 0x8D4F,
+ 13821: 0x664C,
+ 13822: 0x4E0A,
+ 13823: 0x5C1A,
+ 13824: 0x88F3,
+ 13825: 0x68A2,
+ 13826: 0x634E,
+ 13827: 0x7A0D,
+ 13828: 0x70E7,
+ 13829: 0x828D,
+ 13830: 0x52FA,
+ 13831: 0x97F6,
+ 13832: 0x5C11,
+ 13833: 0x54E8,
+ 13834: 0x90B5,
+ 13835: 0x7ECD,
+ 13836: 0x5962,
+ 13837: 0x8D4A,
+ 13838: 0x86C7,
+ 13839: 0x820C,
+ 13840: 0x820D,
+ 13841: 0x8D66,
+ 13842: 0x6444,
+ 13843: 0x5C04,
+ 13844: 0x6151,
+ 13845: 0x6D89,
+ 13846: 0x793E,
+ 13847: 0x8BBE,
+ 13848: 0x7837,
+ 13849: 0x7533,
+ 13850: 0x547B,
+ 13851: 0x4F38,
+ 13852: 0x8EAB,
+ 13853: 0x6DF1,
+ 13854: 0x5A20,
+ 13855: 0x7EC5,
+ 13856: 0x795E,
+ 13857: 0x6C88,
+ 13858: 0x5BA1,
+ 13859: 0x5A76,
+ 13860: 0x751A,
+ 13861: 0x80BE,
+ 13862: 0x614E,
+ 13863: 0x6E17,
+ 13864: 0x58F0,
+ 13865: 0x751F,
+ 13866: 0x7525,
+ 13867: 0x7272,
+ 13868: 0x5347,
+ 13869: 0x7EF3,
+ 13870: 0x8503,
+ 13871: 0x8504,
+ 13872: 0x8505,
+ 13873: 0x8506,
+ 13874: 0x8507,
+ 13875: 0x8508,
+ 13876: 0x8509,
+ 13877: 0x850A,
+ 13878: 0x850B,
+ 13879: 0x850D,
+ 13880: 0x850E,
+ 13881: 0x850F,
+ 13882: 0x8510,
+ 13883: 0x8512,
+ 13884: 0x8514,
+ 13885: 0x8515,
+ 13886: 0x8516,
+ 13887: 0x8518,
+ 13888: 0x8519,
+ 13889: 0x851B,
+ 13890: 0x851C,
+ 13891: 0x851D,
+ 13892: 0x851E,
+ 13893: 0x8520,
+ 13894: 0x8522,
+ 13895: 0x8523,
+ 13896: 0x8524,
+ 13897: 0x8525,
+ 13898: 0x8526,
+ 13899: 0x8527,
+ 13900: 0x8528,
+ 13901: 0x8529,
+ 13902: 0x852A,
+ 13903: 0x852D,
+ 13904: 0x852E,
+ 13905: 0x852F,
+ 13906: 0x8530,
+ 13907: 0x8531,
+ 13908: 0x8532,
+ 13909: 0x8533,
+ 13910: 0x8534,
+ 13911: 0x8535,
+ 13912: 0x8536,
+ 13913: 0x853E,
+ 13914: 0x853F,
+ 13915: 0x8540,
+ 13916: 0x8541,
+ 13917: 0x8542,
+ 13918: 0x8544,
+ 13919: 0x8545,
+ 13920: 0x8546,
+ 13921: 0x8547,
+ 13922: 0x854B,
+ 13923: 0x854C,
+ 13924: 0x854D,
+ 13925: 0x854E,
+ 13926: 0x854F,
+ 13927: 0x8550,
+ 13928: 0x8551,
+ 13929: 0x8552,
+ 13930: 0x8553,
+ 13931: 0x8554,
+ 13932: 0x8555,
+ 13933: 0x8557,
+ 13934: 0x8558,
+ 13935: 0x855A,
+ 13936: 0x855B,
+ 13937: 0x855C,
+ 13938: 0x855D,
+ 13939: 0x855F,
+ 13940: 0x8560,
+ 13941: 0x8561,
+ 13942: 0x8562,
+ 13943: 0x8563,
+ 13944: 0x8565,
+ 13945: 0x8566,
+ 13946: 0x8567,
+ 13947: 0x8569,
+ 13948: 0x856A,
+ 13949: 0x856B,
+ 13950: 0x856C,
+ 13951: 0x856D,
+ 13952: 0x856E,
+ 13953: 0x856F,
+ 13954: 0x8570,
+ 13955: 0x8571,
+ 13956: 0x8573,
+ 13957: 0x8575,
+ 13958: 0x8576,
+ 13959: 0x8577,
+ 13960: 0x8578,
+ 13961: 0x857C,
+ 13962: 0x857D,
+ 13963: 0x857F,
+ 13964: 0x8580,
+ 13965: 0x8581,
+ 13966: 0x7701,
+ 13967: 0x76DB,
+ 13968: 0x5269,
+ 13969: 0x80DC,
+ 13970: 0x5723,
+ 13971: 0x5E08,
+ 13972: 0x5931,
+ 13973: 0x72EE,
+ 13974: 0x65BD,
+ 13975: 0x6E7F,
+ 13976: 0x8BD7,
+ 13977: 0x5C38,
+ 13978: 0x8671,
+ 13979: 0x5341,
+ 13980: 0x77F3,
+ 13981: 0x62FE,
+ 13982: 0x65F6,
+ 13983: 0x4EC0,
+ 13984: 0x98DF,
+ 13985: 0x8680,
+ 13986: 0x5B9E,
+ 13987: 0x8BC6,
+ 13988: 0x53F2,
+ 13989: 0x77E2,
+ 13990: 0x4F7F,
+ 13991: 0x5C4E,
+ 13992: 0x9A76,
+ 13993: 0x59CB,
+ 13994: 0x5F0F,
+ 13995: 0x793A,
+ 13996: 0x58EB,
+ 13997: 0x4E16,
+ 13998: 0x67FF,
+ 13999: 0x4E8B,
+ 14000: 0x62ED,
+ 14001: 0x8A93,
+ 14002: 0x901D,
+ 14003: 0x52BF,
+ 14004: 0x662F,
+ 14005: 0x55DC,
+ 14006: 0x566C,
+ 14007: 0x9002,
+ 14008: 0x4ED5,
+ 14009: 0x4F8D,
+ 14010: 0x91CA,
+ 14011: 0x9970,
+ 14012: 0x6C0F,
+ 14013: 0x5E02,
+ 14014: 0x6043,
+ 14015: 0x5BA4,
+ 14016: 0x89C6,
+ 14017: 0x8BD5,
+ 14018: 0x6536,
+ 14019: 0x624B,
+ 14020: 0x9996,
+ 14021: 0x5B88,
+ 14022: 0x5BFF,
+ 14023: 0x6388,
+ 14024: 0x552E,
+ 14025: 0x53D7,
+ 14026: 0x7626,
+ 14027: 0x517D,
+ 14028: 0x852C,
+ 14029: 0x67A2,
+ 14030: 0x68B3,
+ 14031: 0x6B8A,
+ 14032: 0x6292,
+ 14033: 0x8F93,
+ 14034: 0x53D4,
+ 14035: 0x8212,
+ 14036: 0x6DD1,
+ 14037: 0x758F,
+ 14038: 0x4E66,
+ 14039: 0x8D4E,
+ 14040: 0x5B70,
+ 14041: 0x719F,
+ 14042: 0x85AF,
+ 14043: 0x6691,
+ 14044: 0x66D9,
+ 14045: 0x7F72,
+ 14046: 0x8700,
+ 14047: 0x9ECD,
+ 14048: 0x9F20,
+ 14049: 0x5C5E,
+ 14050: 0x672F,
+ 14051: 0x8FF0,
+ 14052: 0x6811,
+ 14053: 0x675F,
+ 14054: 0x620D,
+ 14055: 0x7AD6,
+ 14056: 0x5885,
+ 14057: 0x5EB6,
+ 14058: 0x6570,
+ 14059: 0x6F31,
+ 14060: 0x8582,
+ 14061: 0x8583,
+ 14062: 0x8586,
+ 14063: 0x8588,
+ 14064: 0x8589,
+ 14065: 0x858A,
+ 14066: 0x858B,
+ 14067: 0x858C,
+ 14068: 0x858D,
+ 14069: 0x858E,
+ 14070: 0x8590,
+ 14071: 0x8591,
+ 14072: 0x8592,
+ 14073: 0x8593,
+ 14074: 0x8594,
+ 14075: 0x8595,
+ 14076: 0x8596,
+ 14077: 0x8597,
+ 14078: 0x8598,
+ 14079: 0x8599,
+ 14080: 0x859A,
+ 14081: 0x859D,
+ 14082: 0x859E,
+ 14083: 0x859F,
+ 14084: 0x85A0,
+ 14085: 0x85A1,
+ 14086: 0x85A2,
+ 14087: 0x85A3,
+ 14088: 0x85A5,
+ 14089: 0x85A6,
+ 14090: 0x85A7,
+ 14091: 0x85A9,
+ 14092: 0x85AB,
+ 14093: 0x85AC,
+ 14094: 0x85AD,
+ 14095: 0x85B1,
+ 14096: 0x85B2,
+ 14097: 0x85B3,
+ 14098: 0x85B4,
+ 14099: 0x85B5,
+ 14100: 0x85B6,
+ 14101: 0x85B8,
+ 14102: 0x85BA,
+ 14103: 0x85BB,
+ 14104: 0x85BC,
+ 14105: 0x85BD,
+ 14106: 0x85BE,
+ 14107: 0x85BF,
+ 14108: 0x85C0,
+ 14109: 0x85C2,
+ 14110: 0x85C3,
+ 14111: 0x85C4,
+ 14112: 0x85C5,
+ 14113: 0x85C6,
+ 14114: 0x85C7,
+ 14115: 0x85C8,
+ 14116: 0x85CA,
+ 14117: 0x85CB,
+ 14118: 0x85CC,
+ 14119: 0x85CD,
+ 14120: 0x85CE,
+ 14121: 0x85D1,
+ 14122: 0x85D2,
+ 14123: 0x85D4,
+ 14124: 0x85D6,
+ 14125: 0x85D7,
+ 14126: 0x85D8,
+ 14127: 0x85D9,
+ 14128: 0x85DA,
+ 14129: 0x85DB,
+ 14130: 0x85DD,
+ 14131: 0x85DE,
+ 14132: 0x85DF,
+ 14133: 0x85E0,
+ 14134: 0x85E1,
+ 14135: 0x85E2,
+ 14136: 0x85E3,
+ 14137: 0x85E5,
+ 14138: 0x85E6,
+ 14139: 0x85E7,
+ 14140: 0x85E8,
+ 14141: 0x85EA,
+ 14142: 0x85EB,
+ 14143: 0x85EC,
+ 14144: 0x85ED,
+ 14145: 0x85EE,
+ 14146: 0x85EF,
+ 14147: 0x85F0,
+ 14148: 0x85F1,
+ 14149: 0x85F2,
+ 14150: 0x85F3,
+ 14151: 0x85F4,
+ 14152: 0x85F5,
+ 14153: 0x85F6,
+ 14154: 0x85F7,
+ 14155: 0x85F8,
+ 14156: 0x6055,
+ 14157: 0x5237,
+ 14158: 0x800D,
+ 14159: 0x6454,
+ 14160: 0x8870,
+ 14161: 0x7529,
+ 14162: 0x5E05,
+ 14163: 0x6813,
+ 14164: 0x62F4,
+ 14165: 0x971C,
+ 14166: 0x53CC,
+ 14167: 0x723D,
+ 14168: 0x8C01,
+ 14169: 0x6C34,
+ 14170: 0x7761,
+ 14171: 0x7A0E,
+ 14172: 0x542E,
+ 14173: 0x77AC,
+ 14174: 0x987A,
+ 14175: 0x821C,
+ 14176: 0x8BF4,
+ 14177: 0x7855,
+ 14178: 0x6714,
+ 14179: 0x70C1,
+ 14180: 0x65AF,
+ 14181: 0x6495,
+ 14182: 0x5636,
+ 14183: 0x601D,
+ 14184: 0x79C1,
+ 14185: 0x53F8,
+ 14186: 0x4E1D,
+ 14187: 0x6B7B,
+ 14188: 0x8086,
+ 14189: 0x5BFA,
+ 14190: 0x55E3,
+ 14191: 0x56DB,
+ 14192: 0x4F3A,
+ 14193: 0x4F3C,
+ 14194: 0x9972,
+ 14195: 0x5DF3,
+ 14196: 0x677E,
+ 14197: 0x8038,
+ 14198: 0x6002,
+ 14199: 0x9882,
+ 14200: 0x9001,
+ 14201: 0x5B8B,
+ 14202: 0x8BBC,
+ 14203: 0x8BF5,
+ 14204: 0x641C,
+ 14205: 0x8258,
+ 14206: 0x64DE,
+ 14207: 0x55FD,
+ 14208: 0x82CF,
+ 14209: 0x9165,
+ 14210: 0x4FD7,
+ 14211: 0x7D20,
+ 14212: 0x901F,
+ 14213: 0x7C9F,
+ 14214: 0x50F3,
+ 14215: 0x5851,
+ 14216: 0x6EAF,
+ 14217: 0x5BBF,
+ 14218: 0x8BC9,
+ 14219: 0x8083,
+ 14220: 0x9178,
+ 14221: 0x849C,
+ 14222: 0x7B97,
+ 14223: 0x867D,
+ 14224: 0x968B,
+ 14225: 0x968F,
+ 14226: 0x7EE5,
+ 14227: 0x9AD3,
+ 14228: 0x788E,
+ 14229: 0x5C81,
+ 14230: 0x7A57,
+ 14231: 0x9042,
+ 14232: 0x96A7,
+ 14233: 0x795F,
+ 14234: 0x5B59,
+ 14235: 0x635F,
+ 14236: 0x7B0B,
+ 14237: 0x84D1,
+ 14238: 0x68AD,
+ 14239: 0x5506,
+ 14240: 0x7F29,
+ 14241: 0x7410,
+ 14242: 0x7D22,
+ 14243: 0x9501,
+ 14244: 0x6240,
+ 14245: 0x584C,
+ 14246: 0x4ED6,
+ 14247: 0x5B83,
+ 14248: 0x5979,
+ 14249: 0x5854,
+ 14250: 0x85F9,
+ 14251: 0x85FA,
+ 14252: 0x85FC,
+ 14253: 0x85FD,
+ 14254: 0x85FE,
+ 14255: 0x8600,
+ 14256: 0x8601,
+ 14257: 0x8602,
+ 14258: 0x8603,
+ 14259: 0x8604,
+ 14260: 0x8606,
+ 14261: 0x8607,
+ 14262: 0x8608,
+ 14263: 0x8609,
+ 14264: 0x860A,
+ 14265: 0x860B,
+ 14266: 0x860C,
+ 14267: 0x860D,
+ 14268: 0x860E,
+ 14269: 0x860F,
+ 14270: 0x8610,
+ 14271: 0x8612,
+ 14272: 0x8613,
+ 14273: 0x8614,
+ 14274: 0x8615,
+ 14275: 0x8617,
+ 14276: 0x8618,
+ 14277: 0x8619,
+ 14278: 0x861A,
+ 14279: 0x861B,
+ 14280: 0x861C,
+ 14281: 0x861D,
+ 14282: 0x861E,
+ 14283: 0x861F,
+ 14284: 0x8620,
+ 14285: 0x8621,
+ 14286: 0x8622,
+ 14287: 0x8623,
+ 14288: 0x8624,
+ 14289: 0x8625,
+ 14290: 0x8626,
+ 14291: 0x8628,
+ 14292: 0x862A,
+ 14293: 0x862B,
+ 14294: 0x862C,
+ 14295: 0x862D,
+ 14296: 0x862E,
+ 14297: 0x862F,
+ 14298: 0x8630,
+ 14299: 0x8631,
+ 14300: 0x8632,
+ 14301: 0x8633,
+ 14302: 0x8634,
+ 14303: 0x8635,
+ 14304: 0x8636,
+ 14305: 0x8637,
+ 14306: 0x8639,
+ 14307: 0x863A,
+ 14308: 0x863B,
+ 14309: 0x863D,
+ 14310: 0x863E,
+ 14311: 0x863F,
+ 14312: 0x8640,
+ 14313: 0x8641,
+ 14314: 0x8642,
+ 14315: 0x8643,
+ 14316: 0x8644,
+ 14317: 0x8645,
+ 14318: 0x8646,
+ 14319: 0x8647,
+ 14320: 0x8648,
+ 14321: 0x8649,
+ 14322: 0x864A,
+ 14323: 0x864B,
+ 14324: 0x864C,
+ 14325: 0x8652,
+ 14326: 0x8653,
+ 14327: 0x8655,
+ 14328: 0x8656,
+ 14329: 0x8657,
+ 14330: 0x8658,
+ 14331: 0x8659,
+ 14332: 0x865B,
+ 14333: 0x865C,
+ 14334: 0x865D,
+ 14335: 0x865F,
+ 14336: 0x8660,
+ 14337: 0x8661,
+ 14338: 0x8663,
+ 14339: 0x8664,
+ 14340: 0x8665,
+ 14341: 0x8666,
+ 14342: 0x8667,
+ 14343: 0x8668,
+ 14344: 0x8669,
+ 14345: 0x866A,
+ 14346: 0x736D,
+ 14347: 0x631E,
+ 14348: 0x8E4B,
+ 14349: 0x8E0F,
+ 14350: 0x80CE,
+ 14351: 0x82D4,
+ 14352: 0x62AC,
+ 14353: 0x53F0,
+ 14354: 0x6CF0,
+ 14355: 0x915E,
+ 14356: 0x592A,
+ 14357: 0x6001,
+ 14358: 0x6C70,
+ 14359: 0x574D,
+ 14360: 0x644A,
+ 14361: 0x8D2A,
+ 14362: 0x762B,
+ 14363: 0x6EE9,
+ 14364: 0x575B,
+ 14365: 0x6A80,
+ 14366: 0x75F0,
+ 14367: 0x6F6D,
+ 14368: 0x8C2D,
+ 14369: 0x8C08,
+ 14370: 0x5766,
+ 14371: 0x6BEF,
+ 14372: 0x8892,
+ 14373: 0x78B3,
+ 14374: 0x63A2,
+ 14375: 0x53F9,
+ 14376: 0x70AD,
+ 14377: 0x6C64,
+ 14378: 0x5858,
+ 14379: 0x642A,
+ 14380: 0x5802,
+ 14381: 0x68E0,
+ 14382: 0x819B,
+ 14383: 0x5510,
+ 14384: 0x7CD6,
+ 14385: 0x5018,
+ 14386: 0x8EBA,
+ 14387: 0x6DCC,
+ 14388: 0x8D9F,
+ 14389: 0x70EB,
+ 14390: 0x638F,
+ 14391: 0x6D9B,
+ 14392: 0x6ED4,
+ 14393: 0x7EE6,
+ 14394: 0x8404,
+ 14395: 0x6843,
+ 14396: 0x9003,
+ 14397: 0x6DD8,
+ 14398: 0x9676,
+ 14399: 0x8BA8,
+ 14400: 0x5957,
+ 14401: 0x7279,
+ 14402: 0x85E4,
+ 14403: 0x817E,
+ 14404: 0x75BC,
+ 14405: 0x8A8A,
+ 14406: 0x68AF,
+ 14407: 0x5254,
+ 14408: 0x8E22,
+ 14409: 0x9511,
+ 14410: 0x63D0,
+ 14411: 0x9898,
+ 14412: 0x8E44,
+ 14413: 0x557C,
+ 14414: 0x4F53,
+ 14415: 0x66FF,
+ 14416: 0x568F,
+ 14417: 0x60D5,
+ 14418: 0x6D95,
+ 14419: 0x5243,
+ 14420: 0x5C49,
+ 14421: 0x5929,
+ 14422: 0x6DFB,
+ 14423: 0x586B,
+ 14424: 0x7530,
+ 14425: 0x751C,
+ 14426: 0x606C,
+ 14427: 0x8214,
+ 14428: 0x8146,
+ 14429: 0x6311,
+ 14430: 0x6761,
+ 14431: 0x8FE2,
+ 14432: 0x773A,
+ 14433: 0x8DF3,
+ 14434: 0x8D34,
+ 14435: 0x94C1,
+ 14436: 0x5E16,
+ 14437: 0x5385,
+ 14438: 0x542C,
+ 14439: 0x70C3,
+ 14440: 0x866D,
+ 14441: 0x866F,
+ 14442: 0x8670,
+ 14443: 0x8672,
+ 14444: 0x8673,
+ 14445: 0x8674,
+ 14446: 0x8675,
+ 14447: 0x8676,
+ 14448: 0x8677,
+ 14449: 0x8678,
+ 14450: 0x8683,
+ 14451: 0x8684,
+ 14452: 0x8685,
+ 14453: 0x8686,
+ 14454: 0x8687,
+ 14455: 0x8688,
+ 14456: 0x8689,
+ 14457: 0x868E,
+ 14458: 0x868F,
+ 14459: 0x8690,
+ 14460: 0x8691,
+ 14461: 0x8692,
+ 14462: 0x8694,
+ 14463: 0x8696,
+ 14464: 0x8697,
+ 14465: 0x8698,
+ 14466: 0x8699,
+ 14467: 0x869A,
+ 14468: 0x869B,
+ 14469: 0x869E,
+ 14470: 0x869F,
+ 14471: 0x86A0,
+ 14472: 0x86A1,
+ 14473: 0x86A2,
+ 14474: 0x86A5,
+ 14475: 0x86A6,
+ 14476: 0x86AB,
+ 14477: 0x86AD,
+ 14478: 0x86AE,
+ 14479: 0x86B2,
+ 14480: 0x86B3,
+ 14481: 0x86B7,
+ 14482: 0x86B8,
+ 14483: 0x86B9,
+ 14484: 0x86BB,
+ 14485: 0x86BC,
+ 14486: 0x86BD,
+ 14487: 0x86BE,
+ 14488: 0x86BF,
+ 14489: 0x86C1,
+ 14490: 0x86C2,
+ 14491: 0x86C3,
+ 14492: 0x86C5,
+ 14493: 0x86C8,
+ 14494: 0x86CC,
+ 14495: 0x86CD,
+ 14496: 0x86D2,
+ 14497: 0x86D3,
+ 14498: 0x86D5,
+ 14499: 0x86D6,
+ 14500: 0x86D7,
+ 14501: 0x86DA,
+ 14502: 0x86DC,
+ 14503: 0x86DD,
+ 14504: 0x86E0,
+ 14505: 0x86E1,
+ 14506: 0x86E2,
+ 14507: 0x86E3,
+ 14508: 0x86E5,
+ 14509: 0x86E6,
+ 14510: 0x86E7,
+ 14511: 0x86E8,
+ 14512: 0x86EA,
+ 14513: 0x86EB,
+ 14514: 0x86EC,
+ 14515: 0x86EF,
+ 14516: 0x86F5,
+ 14517: 0x86F6,
+ 14518: 0x86F7,
+ 14519: 0x86FA,
+ 14520: 0x86FB,
+ 14521: 0x86FC,
+ 14522: 0x86FD,
+ 14523: 0x86FF,
+ 14524: 0x8701,
+ 14525: 0x8704,
+ 14526: 0x8705,
+ 14527: 0x8706,
+ 14528: 0x870B,
+ 14529: 0x870C,
+ 14530: 0x870E,
+ 14531: 0x870F,
+ 14532: 0x8710,
+ 14533: 0x8711,
+ 14534: 0x8714,
+ 14535: 0x8716,
+ 14536: 0x6C40,
+ 14537: 0x5EF7,
+ 14538: 0x505C,
+ 14539: 0x4EAD,
+ 14540: 0x5EAD,
+ 14541: 0x633A,
+ 14542: 0x8247,
+ 14543: 0x901A,
+ 14544: 0x6850,
+ 14545: 0x916E,
+ 14546: 0x77B3,
+ 14547: 0x540C,
+ 14548: 0x94DC,
+ 14549: 0x5F64,
+ 14550: 0x7AE5,
+ 14551: 0x6876,
+ 14552: 0x6345,
+ 14553: 0x7B52,
+ 14554: 0x7EDF,
+ 14555: 0x75DB,
+ 14556: 0x5077,
+ 14557: 0x6295,
+ 14558: 0x5934,
+ 14559: 0x900F,
+ 14560: 0x51F8,
+ 14561: 0x79C3,
+ 14562: 0x7A81,
+ 14563: 0x56FE,
+ 14564: 0x5F92,
+ 14565: 0x9014,
+ 14566: 0x6D82,
+ 14567: 0x5C60,
+ 14568: 0x571F,
+ 14569: 0x5410,
+ 14570: 0x5154,
+ 14571: 0x6E4D,
+ 14572: 0x56E2,
+ 14573: 0x63A8,
+ 14574: 0x9893,
+ 14575: 0x817F,
+ 14576: 0x8715,
+ 14577: 0x892A,
+ 14578: 0x9000,
+ 14579: 0x541E,
+ 14580: 0x5C6F,
+ 14581: 0x81C0,
+ 14582: 0x62D6,
+ 14583: 0x6258,
+ 14584: 0x8131,
+ 14585: 0x9E35,
+ 14586: 0x9640,
+ 14587: 0x9A6E,
+ 14588: 0x9A7C,
+ 14589: 0x692D,
+ 14590: 0x59A5,
+ 14591: 0x62D3,
+ 14592: 0x553E,
+ 14593: 0x6316,
+ 14594: 0x54C7,
+ 14595: 0x86D9,
+ 14596: 0x6D3C,
+ 14597: 0x5A03,
+ 14598: 0x74E6,
+ 14599: 0x889C,
+ 14600: 0x6B6A,
+ 14601: 0x5916,
+ 14602: 0x8C4C,
+ 14603: 0x5F2F,
+ 14604: 0x6E7E,
+ 14605: 0x73A9,
+ 14606: 0x987D,
+ 14607: 0x4E38,
+ 14608: 0x70F7,
+ 14609: 0x5B8C,
+ 14610: 0x7897,
+ 14611: 0x633D,
+ 14612: 0x665A,
+ 14613: 0x7696,
+ 14614: 0x60CB,
+ 14615: 0x5B9B,
+ 14616: 0x5A49,
+ 14617: 0x4E07,
+ 14618: 0x8155,
+ 14619: 0x6C6A,
+ 14620: 0x738B,
+ 14621: 0x4EA1,
+ 14622: 0x6789,
+ 14623: 0x7F51,
+ 14624: 0x5F80,
+ 14625: 0x65FA,
+ 14626: 0x671B,
+ 14627: 0x5FD8,
+ 14628: 0x5984,
+ 14629: 0x5A01,
+ 14630: 0x8719,
+ 14631: 0x871B,
+ 14632: 0x871D,
+ 14633: 0x871F,
+ 14634: 0x8720,
+ 14635: 0x8724,
+ 14636: 0x8726,
+ 14637: 0x8727,
+ 14638: 0x8728,
+ 14639: 0x872A,
+ 14640: 0x872B,
+ 14641: 0x872C,
+ 14642: 0x872D,
+ 14643: 0x872F,
+ 14644: 0x8730,
+ 14645: 0x8732,
+ 14646: 0x8733,
+ 14647: 0x8735,
+ 14648: 0x8736,
+ 14649: 0x8738,
+ 14650: 0x8739,
+ 14651: 0x873A,
+ 14652: 0x873C,
+ 14653: 0x873D,
+ 14654: 0x8740,
+ 14655: 0x8741,
+ 14656: 0x8742,
+ 14657: 0x8743,
+ 14658: 0x8744,
+ 14659: 0x8745,
+ 14660: 0x8746,
+ 14661: 0x874A,
+ 14662: 0x874B,
+ 14663: 0x874D,
+ 14664: 0x874F,
+ 14665: 0x8750,
+ 14666: 0x8751,
+ 14667: 0x8752,
+ 14668: 0x8754,
+ 14669: 0x8755,
+ 14670: 0x8756,
+ 14671: 0x8758,
+ 14672: 0x875A,
+ 14673: 0x875B,
+ 14674: 0x875C,
+ 14675: 0x875D,
+ 14676: 0x875E,
+ 14677: 0x875F,
+ 14678: 0x8761,
+ 14679: 0x8762,
+ 14680: 0x8766,
+ 14681: 0x8767,
+ 14682: 0x8768,
+ 14683: 0x8769,
+ 14684: 0x876A,
+ 14685: 0x876B,
+ 14686: 0x876C,
+ 14687: 0x876D,
+ 14688: 0x876F,
+ 14689: 0x8771,
+ 14690: 0x8772,
+ 14691: 0x8773,
+ 14692: 0x8775,
+ 14693: 0x8777,
+ 14694: 0x8778,
+ 14695: 0x8779,
+ 14696: 0x877A,
+ 14697: 0x877F,
+ 14698: 0x8780,
+ 14699: 0x8781,
+ 14700: 0x8784,
+ 14701: 0x8786,
+ 14702: 0x8787,
+ 14703: 0x8789,
+ 14704: 0x878A,
+ 14705: 0x878C,
+ 14706: 0x878E,
+ 14707: 0x878F,
+ 14708: 0x8790,
+ 14709: 0x8791,
+ 14710: 0x8792,
+ 14711: 0x8794,
+ 14712: 0x8795,
+ 14713: 0x8796,
+ 14714: 0x8798,
+ 14715: 0x8799,
+ 14716: 0x879A,
+ 14717: 0x879B,
+ 14718: 0x879C,
+ 14719: 0x879D,
+ 14720: 0x879E,
+ 14721: 0x87A0,
+ 14722: 0x87A1,
+ 14723: 0x87A2,
+ 14724: 0x87A3,
+ 14725: 0x87A4,
+ 14726: 0x5DCD,
+ 14727: 0x5FAE,
+ 14728: 0x5371,
+ 14729: 0x97E6,
+ 14730: 0x8FDD,
+ 14731: 0x6845,
+ 14732: 0x56F4,
+ 14733: 0x552F,
+ 14734: 0x60DF,
+ 14735: 0x4E3A,
+ 14736: 0x6F4D,
+ 14737: 0x7EF4,
+ 14738: 0x82C7,
+ 14739: 0x840E,
+ 14740: 0x59D4,
+ 14741: 0x4F1F,
+ 14742: 0x4F2A,
+ 14743: 0x5C3E,
+ 14744: 0x7EAC,
+ 14745: 0x672A,
+ 14746: 0x851A,
+ 14747: 0x5473,
+ 14748: 0x754F,
+ 14749: 0x80C3,
+ 14750: 0x5582,
+ 14751: 0x9B4F,
+ 14752: 0x4F4D,
+ 14753: 0x6E2D,
+ 14754: 0x8C13,
+ 14755: 0x5C09,
+ 14756: 0x6170,
+ 14757: 0x536B,
+ 14758: 0x761F,
+ 14759: 0x6E29,
+ 14760: 0x868A,
+ 14761: 0x6587,
+ 14762: 0x95FB,
+ 14763: 0x7EB9,
+ 14764: 0x543B,
+ 14765: 0x7A33,
+ 14766: 0x7D0A,
+ 14767: 0x95EE,
+ 14768: 0x55E1,
+ 14769: 0x7FC1,
+ 14770: 0x74EE,
+ 14771: 0x631D,
+ 14772: 0x8717,
+ 14773: 0x6DA1,
+ 14774: 0x7A9D,
+ 14775: 0x6211,
+ 14776: 0x65A1,
+ 14777: 0x5367,
+ 14778: 0x63E1,
+ 14779: 0x6C83,
+ 14780: 0x5DEB,
+ 14781: 0x545C,
+ 14782: 0x94A8,
+ 14783: 0x4E4C,
+ 14784: 0x6C61,
+ 14785: 0x8BEC,
+ 14786: 0x5C4B,
+ 14787: 0x65E0,
+ 14788: 0x829C,
+ 14789: 0x68A7,
+ 14790: 0x543E,
+ 14791: 0x5434,
+ 14792: 0x6BCB,
+ 14793: 0x6B66,
+ 14794: 0x4E94,
+ 14795: 0x6342,
+ 14796: 0x5348,
+ 14797: 0x821E,
+ 14798: 0x4F0D,
+ 14799: 0x4FAE,
+ 14800: 0x575E,
+ 14801: 0x620A,
+ 14802: 0x96FE,
+ 14803: 0x6664,
+ 14804: 0x7269,
+ 14805: 0x52FF,
+ 14806: 0x52A1,
+ 14807: 0x609F,
+ 14808: 0x8BEF,
+ 14809: 0x6614,
+ 14810: 0x7199,
+ 14811: 0x6790,
+ 14812: 0x897F,
+ 14813: 0x7852,
+ 14814: 0x77FD,
+ 14815: 0x6670,
+ 14816: 0x563B,
+ 14817: 0x5438,
+ 14818: 0x9521,
+ 14819: 0x727A,
+ 14820: 0x87A5,
+ 14821: 0x87A6,
+ 14822: 0x87A7,
+ 14823: 0x87A9,
+ 14824: 0x87AA,
+ 14825: 0x87AE,
+ 14826: 0x87B0,
+ 14827: 0x87B1,
+ 14828: 0x87B2,
+ 14829: 0x87B4,
+ 14830: 0x87B6,
+ 14831: 0x87B7,
+ 14832: 0x87B8,
+ 14833: 0x87B9,
+ 14834: 0x87BB,
+ 14835: 0x87BC,
+ 14836: 0x87BE,
+ 14837: 0x87BF,
+ 14838: 0x87C1,
+ 14839: 0x87C2,
+ 14840: 0x87C3,
+ 14841: 0x87C4,
+ 14842: 0x87C5,
+ 14843: 0x87C7,
+ 14844: 0x87C8,
+ 14845: 0x87C9,
+ 14846: 0x87CC,
+ 14847: 0x87CD,
+ 14848: 0x87CE,
+ 14849: 0x87CF,
+ 14850: 0x87D0,
+ 14851: 0x87D4,
+ 14852: 0x87D5,
+ 14853: 0x87D6,
+ 14854: 0x87D7,
+ 14855: 0x87D8,
+ 14856: 0x87D9,
+ 14857: 0x87DA,
+ 14858: 0x87DC,
+ 14859: 0x87DD,
+ 14860: 0x87DE,
+ 14861: 0x87DF,
+ 14862: 0x87E1,
+ 14863: 0x87E2,
+ 14864: 0x87E3,
+ 14865: 0x87E4,
+ 14866: 0x87E6,
+ 14867: 0x87E7,
+ 14868: 0x87E8,
+ 14869: 0x87E9,
+ 14870: 0x87EB,
+ 14871: 0x87EC,
+ 14872: 0x87ED,
+ 14873: 0x87EF,
+ 14874: 0x87F0,
+ 14875: 0x87F1,
+ 14876: 0x87F2,
+ 14877: 0x87F3,
+ 14878: 0x87F4,
+ 14879: 0x87F5,
+ 14880: 0x87F6,
+ 14881: 0x87F7,
+ 14882: 0x87F8,
+ 14883: 0x87FA,
+ 14884: 0x87FB,
+ 14885: 0x87FC,
+ 14886: 0x87FD,
+ 14887: 0x87FF,
+ 14888: 0x8800,
+ 14889: 0x8801,
+ 14890: 0x8802,
+ 14891: 0x8804,
+ 14892: 0x8805,
+ 14893: 0x8806,
+ 14894: 0x8807,
+ 14895: 0x8808,
+ 14896: 0x8809,
+ 14897: 0x880B,
+ 14898: 0x880C,
+ 14899: 0x880D,
+ 14900: 0x880E,
+ 14901: 0x880F,
+ 14902: 0x8810,
+ 14903: 0x8811,
+ 14904: 0x8812,
+ 14905: 0x8814,
+ 14906: 0x8817,
+ 14907: 0x8818,
+ 14908: 0x8819,
+ 14909: 0x881A,
+ 14910: 0x881C,
+ 14911: 0x881D,
+ 14912: 0x881E,
+ 14913: 0x881F,
+ 14914: 0x8820,
+ 14915: 0x8823,
+ 14916: 0x7A00,
+ 14917: 0x606F,
+ 14918: 0x5E0C,
+ 14919: 0x6089,
+ 14920: 0x819D,
+ 14921: 0x5915,
+ 14922: 0x60DC,
+ 14923: 0x7184,
+ 14924: 0x70EF,
+ 14925: 0x6EAA,
+ 14926: 0x6C50,
+ 14927: 0x7280,
+ 14928: 0x6A84,
+ 14929: 0x88AD,
+ 14930: 0x5E2D,
+ 14931: 0x4E60,
+ 14932: 0x5AB3,
+ 14933: 0x559C,
+ 14934: 0x94E3,
+ 14935: 0x6D17,
+ 14936: 0x7CFB,
+ 14937: 0x9699,
+ 14938: 0x620F,
+ 14939: 0x7EC6,
+ 14940: 0x778E,
+ 14941: 0x867E,
+ 14942: 0x5323,
+ 14943: 0x971E,
+ 14944: 0x8F96,
+ 14945: 0x6687,
+ 14946: 0x5CE1,
+ 14947: 0x4FA0,
+ 14948: 0x72ED,
+ 14949: 0x4E0B,
+ 14950: 0x53A6,
+ 14951: 0x590F,
+ 14952: 0x5413,
+ 14953: 0x6380,
+ 14954: 0x9528,
+ 14955: 0x5148,
+ 14956: 0x4ED9,
+ 14957: 0x9C9C,
+ 14958: 0x7EA4,
+ 14959: 0x54B8,
+ 14960: 0x8D24,
+ 14961: 0x8854,
+ 14962: 0x8237,
+ 14963: 0x95F2,
+ 14964: 0x6D8E,
+ 14965: 0x5F26,
+ 14966: 0x5ACC,
+ 14967: 0x663E,
+ 14968: 0x9669,
+ 14969: 0x73B0,
+ 14970: 0x732E,
+ 14971: 0x53BF,
+ 14972: 0x817A,
+ 14973: 0x9985,
+ 14974: 0x7FA1,
+ 14975: 0x5BAA,
+ 14976: 0x9677,
+ 14977: 0x9650,
+ 14978: 0x7EBF,
+ 14979: 0x76F8,
+ 14980: 0x53A2,
+ 14981: 0x9576,
+ 14982: 0x9999,
+ 14983: 0x7BB1,
+ 14984: 0x8944,
+ 14985: 0x6E58,
+ 14986: 0x4E61,
+ 14987: 0x7FD4,
+ 14988: 0x7965,
+ 14989: 0x8BE6,
+ 14990: 0x60F3,
+ 14991: 0x54CD,
+ 14992: 0x4EAB,
+ 14993: 0x9879,
+ 14994: 0x5DF7,
+ 14995: 0x6A61,
+ 14996: 0x50CF,
+ 14997: 0x5411,
+ 14998: 0x8C61,
+ 14999: 0x8427,
+ 15000: 0x785D,
+ 15001: 0x9704,
+ 15002: 0x524A,
+ 15003: 0x54EE,
+ 15004: 0x56A3,
+ 15005: 0x9500,
+ 15006: 0x6D88,
+ 15007: 0x5BB5,
+ 15008: 0x6DC6,
+ 15009: 0x6653,
+ 15010: 0x8824,
+ 15011: 0x8825,
+ 15012: 0x8826,
+ 15013: 0x8827,
+ 15014: 0x8828,
+ 15015: 0x8829,
+ 15016: 0x882A,
+ 15017: 0x882B,
+ 15018: 0x882C,
+ 15019: 0x882D,
+ 15020: 0x882E,
+ 15021: 0x882F,
+ 15022: 0x8830,
+ 15023: 0x8831,
+ 15024: 0x8833,
+ 15025: 0x8834,
+ 15026: 0x8835,
+ 15027: 0x8836,
+ 15028: 0x8837,
+ 15029: 0x8838,
+ 15030: 0x883A,
+ 15031: 0x883B,
+ 15032: 0x883D,
+ 15033: 0x883E,
+ 15034: 0x883F,
+ 15035: 0x8841,
+ 15036: 0x8842,
+ 15037: 0x8843,
+ 15038: 0x8846,
+ 15039: 0x8847,
+ 15040: 0x8848,
+ 15041: 0x8849,
+ 15042: 0x884A,
+ 15043: 0x884B,
+ 15044: 0x884E,
+ 15045: 0x884F,
+ 15046: 0x8850,
+ 15047: 0x8851,
+ 15048: 0x8852,
+ 15049: 0x8853,
+ 15050: 0x8855,
+ 15051: 0x8856,
+ 15052: 0x8858,
+ 15053: 0x885A,
+ 15054: 0x885B,
+ 15055: 0x885C,
+ 15056: 0x885D,
+ 15057: 0x885E,
+ 15058: 0x885F,
+ 15059: 0x8860,
+ 15060: 0x8866,
+ 15061: 0x8867,
+ 15062: 0x886A,
+ 15063: 0x886D,
+ 15064: 0x886F,
+ 15065: 0x8871,
+ 15066: 0x8873,
+ 15067: 0x8874,
+ 15068: 0x8875,
+ 15069: 0x8876,
+ 15070: 0x8878,
+ 15071: 0x8879,
+ 15072: 0x887A,
+ 15073: 0x887B,
+ 15074: 0x887C,
+ 15075: 0x8880,
+ 15076: 0x8883,
+ 15077: 0x8886,
+ 15078: 0x8887,
+ 15079: 0x8889,
+ 15080: 0x888A,
+ 15081: 0x888C,
+ 15082: 0x888E,
+ 15083: 0x888F,
+ 15084: 0x8890,
+ 15085: 0x8891,
+ 15086: 0x8893,
+ 15087: 0x8894,
+ 15088: 0x8895,
+ 15089: 0x8897,
+ 15090: 0x8898,
+ 15091: 0x8899,
+ 15092: 0x889A,
+ 15093: 0x889B,
+ 15094: 0x889D,
+ 15095: 0x889E,
+ 15096: 0x889F,
+ 15097: 0x88A0,
+ 15098: 0x88A1,
+ 15099: 0x88A3,
+ 15100: 0x88A5,
+ 15101: 0x88A6,
+ 15102: 0x88A7,
+ 15103: 0x88A8,
+ 15104: 0x88A9,
+ 15105: 0x88AA,
+ 15106: 0x5C0F,
+ 15107: 0x5B5D,
+ 15108: 0x6821,
+ 15109: 0x8096,
+ 15110: 0x5578,
+ 15111: 0x7B11,
+ 15112: 0x6548,
+ 15113: 0x6954,
+ 15114: 0x4E9B,
+ 15115: 0x6B47,
+ 15116: 0x874E,
+ 15117: 0x978B,
+ 15118: 0x534F,
+ 15119: 0x631F,
+ 15120: 0x643A,
+ 15121: 0x90AA,
+ 15122: 0x659C,
+ 15123: 0x80C1,
+ 15124: 0x8C10,
+ 15125: 0x5199,
+ 15126: 0x68B0,
+ 15127: 0x5378,
+ 15128: 0x87F9,
+ 15129: 0x61C8,
+ 15130: 0x6CC4,
+ 15131: 0x6CFB,
+ 15132: 0x8C22,
+ 15133: 0x5C51,
+ 15134: 0x85AA,
+ 15135: 0x82AF,
+ 15136: 0x950C,
+ 15137: 0x6B23,
+ 15138: 0x8F9B,
+ 15139: 0x65B0,
+ 15140: 0x5FFB,
+ 15141: 0x5FC3,
+ 15142: 0x4FE1,
+ 15143: 0x8845,
+ 15144: 0x661F,
+ 15145: 0x8165,
+ 15146: 0x7329,
+ 15147: 0x60FA,
+ 15148: 0x5174,
+ 15149: 0x5211,
+ 15150: 0x578B,
+ 15151: 0x5F62,
+ 15152: 0x90A2,
+ 15153: 0x884C,
+ 15154: 0x9192,
+ 15155: 0x5E78,
+ 15156: 0x674F,
+ 15157: 0x6027,
+ 15158: 0x59D3,
+ 15159: 0x5144,
+ 15160: 0x51F6,
+ 15161: 0x80F8,
+ 15162: 0x5308,
+ 15163: 0x6C79,
+ 15164: 0x96C4,
+ 15165: 0x718A,
+ 15166: 0x4F11,
+ 15167: 0x4FEE,
+ 15168: 0x7F9E,
+ 15169: 0x673D,
+ 15170: 0x55C5,
+ 15171: 0x9508,
+ 15172: 0x79C0,
+ 15173: 0x8896,
+ 15174: 0x7EE3,
+ 15175: 0x589F,
+ 15176: 0x620C,
+ 15177: 0x9700,
+ 15178: 0x865A,
+ 15179: 0x5618,
+ 15180: 0x987B,
+ 15181: 0x5F90,
+ 15182: 0x8BB8,
+ 15183: 0x84C4,
+ 15184: 0x9157,
+ 15185: 0x53D9,
+ 15186: 0x65ED,
+ 15187: 0x5E8F,
+ 15188: 0x755C,
+ 15189: 0x6064,
+ 15190: 0x7D6E,
+ 15191: 0x5A7F,
+ 15192: 0x7EEA,
+ 15193: 0x7EED,
+ 15194: 0x8F69,
+ 15195: 0x55A7,
+ 15196: 0x5BA3,
+ 15197: 0x60AC,
+ 15198: 0x65CB,
+ 15199: 0x7384,
+ 15200: 0x88AC,
+ 15201: 0x88AE,
+ 15202: 0x88AF,
+ 15203: 0x88B0,
+ 15204: 0x88B2,
+ 15205: 0x88B3,
+ 15206: 0x88B4,
+ 15207: 0x88B5,
+ 15208: 0x88B6,
+ 15209: 0x88B8,
+ 15210: 0x88B9,
+ 15211: 0x88BA,
+ 15212: 0x88BB,
+ 15213: 0x88BD,
+ 15214: 0x88BE,
+ 15215: 0x88BF,
+ 15216: 0x88C0,
+ 15217: 0x88C3,
+ 15218: 0x88C4,
+ 15219: 0x88C7,
+ 15220: 0x88C8,
+ 15221: 0x88CA,
+ 15222: 0x88CB,
+ 15223: 0x88CC,
+ 15224: 0x88CD,
+ 15225: 0x88CF,
+ 15226: 0x88D0,
+ 15227: 0x88D1,
+ 15228: 0x88D3,
+ 15229: 0x88D6,
+ 15230: 0x88D7,
+ 15231: 0x88DA,
+ 15232: 0x88DB,
+ 15233: 0x88DC,
+ 15234: 0x88DD,
+ 15235: 0x88DE,
+ 15236: 0x88E0,
+ 15237: 0x88E1,
+ 15238: 0x88E6,
+ 15239: 0x88E7,
+ 15240: 0x88E9,
+ 15241: 0x88EA,
+ 15242: 0x88EB,
+ 15243: 0x88EC,
+ 15244: 0x88ED,
+ 15245: 0x88EE,
+ 15246: 0x88EF,
+ 15247: 0x88F2,
+ 15248: 0x88F5,
+ 15249: 0x88F6,
+ 15250: 0x88F7,
+ 15251: 0x88FA,
+ 15252: 0x88FB,
+ 15253: 0x88FD,
+ 15254: 0x88FF,
+ 15255: 0x8900,
+ 15256: 0x8901,
+ 15257: 0x8903,
+ 15258: 0x8904,
+ 15259: 0x8905,
+ 15260: 0x8906,
+ 15261: 0x8907,
+ 15262: 0x8908,
+ 15263: 0x8909,
+ 15264: 0x890B,
+ 15265: 0x890C,
+ 15266: 0x890D,
+ 15267: 0x890E,
+ 15268: 0x890F,
+ 15269: 0x8911,
+ 15270: 0x8914,
+ 15271: 0x8915,
+ 15272: 0x8916,
+ 15273: 0x8917,
+ 15274: 0x8918,
+ 15275: 0x891C,
+ 15276: 0x891D,
+ 15277: 0x891E,
+ 15278: 0x891F,
+ 15279: 0x8920,
+ 15280: 0x8922,
+ 15281: 0x8923,
+ 15282: 0x8924,
+ 15283: 0x8926,
+ 15284: 0x8927,
+ 15285: 0x8928,
+ 15286: 0x8929,
+ 15287: 0x892C,
+ 15288: 0x892D,
+ 15289: 0x892E,
+ 15290: 0x892F,
+ 15291: 0x8931,
+ 15292: 0x8932,
+ 15293: 0x8933,
+ 15294: 0x8935,
+ 15295: 0x8937,
+ 15296: 0x9009,
+ 15297: 0x7663,
+ 15298: 0x7729,
+ 15299: 0x7EDA,
+ 15300: 0x9774,
+ 15301: 0x859B,
+ 15302: 0x5B66,
+ 15303: 0x7A74,
+ 15304: 0x96EA,
+ 15305: 0x8840,
+ 15306: 0x52CB,
+ 15307: 0x718F,
+ 15308: 0x5FAA,
+ 15309: 0x65EC,
+ 15310: 0x8BE2,
+ 15311: 0x5BFB,
+ 15312: 0x9A6F,
+ 15313: 0x5DE1,
+ 15314: 0x6B89,
+ 15315: 0x6C5B,
+ 15316: 0x8BAD,
+ 15317: 0x8BAF,
+ 15318: 0x900A,
+ 15319: 0x8FC5,
+ 15320: 0x538B,
+ 15321: 0x62BC,
+ 15322: 0x9E26,
+ 15323: 0x9E2D,
+ 15324: 0x5440,
+ 15325: 0x4E2B,
+ 15326: 0x82BD,
+ 15327: 0x7259,
+ 15328: 0x869C,
+ 15329: 0x5D16,
+ 15330: 0x8859,
+ 15331: 0x6DAF,
+ 15332: 0x96C5,
+ 15333: 0x54D1,
+ 15334: 0x4E9A,
+ 15335: 0x8BB6,
+ 15336: 0x7109,
+ 15337: 0x54BD,
+ 15338: 0x9609,
+ 15339: 0x70DF,
+ 15340: 0x6DF9,
+ 15341: 0x76D0,
+ 15342: 0x4E25,
+ 15343: 0x7814,
+ 15344: 0x8712,
+ 15345: 0x5CA9,
+ 15346: 0x5EF6,
+ 15347: 0x8A00,
+ 15348: 0x989C,
+ 15349: 0x960E,
+ 15350: 0x708E,
+ 15351: 0x6CBF,
+ 15352: 0x5944,
+ 15353: 0x63A9,
+ 15354: 0x773C,
+ 15355: 0x884D,
+ 15356: 0x6F14,
+ 15357: 0x8273,
+ 15358: 0x5830,
+ 15359: 0x71D5,
+ 15360: 0x538C,
+ 15361: 0x781A,
+ 15362: 0x96C1,
+ 15363: 0x5501,
+ 15364: 0x5F66,
+ 15365: 0x7130,
+ 15366: 0x5BB4,
+ 15367: 0x8C1A,
+ 15368: 0x9A8C,
+ 15369: 0x6B83,
+ 15370: 0x592E,
+ 15371: 0x9E2F,
+ 15372: 0x79E7,
+ 15373: 0x6768,
+ 15374: 0x626C,
+ 15375: 0x4F6F,
+ 15376: 0x75A1,
+ 15377: 0x7F8A,
+ 15378: 0x6D0B,
+ 15379: 0x9633,
+ 15380: 0x6C27,
+ 15381: 0x4EF0,
+ 15382: 0x75D2,
+ 15383: 0x517B,
+ 15384: 0x6837,
+ 15385: 0x6F3E,
+ 15386: 0x9080,
+ 15387: 0x8170,
+ 15388: 0x5996,
+ 15389: 0x7476,
+ 15390: 0x8938,
+ 15391: 0x8939,
+ 15392: 0x893A,
+ 15393: 0x893B,
+ 15394: 0x893C,
+ 15395: 0x893D,
+ 15396: 0x893E,
+ 15397: 0x893F,
+ 15398: 0x8940,
+ 15399: 0x8942,
+ 15400: 0x8943,
+ 15401: 0x8945,
+ 15402: 0x8946,
+ 15403: 0x8947,
+ 15404: 0x8948,
+ 15405: 0x8949,
+ 15406: 0x894A,
+ 15407: 0x894B,
+ 15408: 0x894C,
+ 15409: 0x894D,
+ 15410: 0x894E,
+ 15411: 0x894F,
+ 15412: 0x8950,
+ 15413: 0x8951,
+ 15414: 0x8952,
+ 15415: 0x8953,
+ 15416: 0x8954,
+ 15417: 0x8955,
+ 15418: 0x8956,
+ 15419: 0x8957,
+ 15420: 0x8958,
+ 15421: 0x8959,
+ 15422: 0x895A,
+ 15423: 0x895B,
+ 15424: 0x895C,
+ 15425: 0x895D,
+ 15426: 0x8960,
+ 15427: 0x8961,
+ 15428: 0x8962,
+ 15429: 0x8963,
+ 15430: 0x8964,
+ 15431: 0x8965,
+ 15432: 0x8967,
+ 15433: 0x8968,
+ 15434: 0x8969,
+ 15435: 0x896A,
+ 15436: 0x896B,
+ 15437: 0x896C,
+ 15438: 0x896D,
+ 15439: 0x896E,
+ 15440: 0x896F,
+ 15441: 0x8970,
+ 15442: 0x8971,
+ 15443: 0x8972,
+ 15444: 0x8973,
+ 15445: 0x8974,
+ 15446: 0x8975,
+ 15447: 0x8976,
+ 15448: 0x8977,
+ 15449: 0x8978,
+ 15450: 0x8979,
+ 15451: 0x897A,
+ 15452: 0x897C,
+ 15453: 0x897D,
+ 15454: 0x897E,
+ 15455: 0x8980,
+ 15456: 0x8982,
+ 15457: 0x8984,
+ 15458: 0x8985,
+ 15459: 0x8987,
+ 15460: 0x8988,
+ 15461: 0x8989,
+ 15462: 0x898A,
+ 15463: 0x898B,
+ 15464: 0x898C,
+ 15465: 0x898D,
+ 15466: 0x898E,
+ 15467: 0x898F,
+ 15468: 0x8990,
+ 15469: 0x8991,
+ 15470: 0x8992,
+ 15471: 0x8993,
+ 15472: 0x8994,
+ 15473: 0x8995,
+ 15474: 0x8996,
+ 15475: 0x8997,
+ 15476: 0x8998,
+ 15477: 0x8999,
+ 15478: 0x899A,
+ 15479: 0x899B,
+ 15480: 0x899C,
+ 15481: 0x899D,
+ 15482: 0x899E,
+ 15483: 0x899F,
+ 15484: 0x89A0,
+ 15485: 0x89A1,
+ 15486: 0x6447,
+ 15487: 0x5C27,
+ 15488: 0x9065,
+ 15489: 0x7A91,
+ 15490: 0x8C23,
+ 15491: 0x59DA,
+ 15492: 0x54AC,
+ 15493: 0x8200,
+ 15494: 0x836F,
+ 15495: 0x8981,
+ 15496: 0x8000,
+ 15497: 0x6930,
+ 15498: 0x564E,
+ 15499: 0x8036,
+ 15500: 0x7237,
+ 15501: 0x91CE,
+ 15502: 0x51B6,
+ 15503: 0x4E5F,
+ 15504: 0x9875,
+ 15505: 0x6396,
+ 15506: 0x4E1A,
+ 15507: 0x53F6,
+ 15508: 0x66F3,
+ 15509: 0x814B,
+ 15510: 0x591C,
+ 15511: 0x6DB2,
+ 15512: 0x4E00,
+ 15513: 0x58F9,
+ 15514: 0x533B,
+ 15515: 0x63D6,
+ 15516: 0x94F1,
+ 15517: 0x4F9D,
+ 15518: 0x4F0A,
+ 15519: 0x8863,
+ 15520: 0x9890,
+ 15521: 0x5937,
+ 15522: 0x9057,
+ 15523: 0x79FB,
+ 15524: 0x4EEA,
+ 15525: 0x80F0,
+ 15526: 0x7591,
+ 15527: 0x6C82,
+ 15528: 0x5B9C,
+ 15529: 0x59E8,
+ 15530: 0x5F5D,
+ 15531: 0x6905,
+ 15532: 0x8681,
+ 15533: 0x501A,
+ 15534: 0x5DF2,
+ 15535: 0x4E59,
+ 15536: 0x77E3,
+ 15537: 0x4EE5,
+ 15538: 0x827A,
+ 15539: 0x6291,
+ 15540: 0x6613,
+ 15541: 0x9091,
+ 15542: 0x5C79,
+ 15543: 0x4EBF,
+ 15544: 0x5F79,
+ 15545: 0x81C6,
+ 15546: 0x9038,
+ 15547: 0x8084,
+ 15548: 0x75AB,
+ 15549: 0x4EA6,
+ 15550: 0x88D4,
+ 15551: 0x610F,
+ 15552: 0x6BC5,
+ 15553: 0x5FC6,
+ 15554: 0x4E49,
+ 15555: 0x76CA,
+ 15556: 0x6EA2,
+ 15557: 0x8BE3,
+ 15558: 0x8BAE,
+ 15559: 0x8C0A,
+ 15560: 0x8BD1,
+ 15561: 0x5F02,
+ 15562: 0x7FFC,
+ 15563: 0x7FCC,
+ 15564: 0x7ECE,
+ 15565: 0x8335,
+ 15566: 0x836B,
+ 15567: 0x56E0,
+ 15568: 0x6BB7,
+ 15569: 0x97F3,
+ 15570: 0x9634,
+ 15571: 0x59FB,
+ 15572: 0x541F,
+ 15573: 0x94F6,
+ 15574: 0x6DEB,
+ 15575: 0x5BC5,
+ 15576: 0x996E,
+ 15577: 0x5C39,
+ 15578: 0x5F15,
+ 15579: 0x9690,
+ 15580: 0x89A2,
+ 15581: 0x89A3,
+ 15582: 0x89A4,
+ 15583: 0x89A5,
+ 15584: 0x89A6,
+ 15585: 0x89A7,
+ 15586: 0x89A8,
+ 15587: 0x89A9,
+ 15588: 0x89AA,
+ 15589: 0x89AB,
+ 15590: 0x89AC,
+ 15591: 0x89AD,
+ 15592: 0x89AE,
+ 15593: 0x89AF,
+ 15594: 0x89B0,
+ 15595: 0x89B1,
+ 15596: 0x89B2,
+ 15597: 0x89B3,
+ 15598: 0x89B4,
+ 15599: 0x89B5,
+ 15600: 0x89B6,
+ 15601: 0x89B7,
+ 15602: 0x89B8,
+ 15603: 0x89B9,
+ 15604: 0x89BA,
+ 15605: 0x89BB,
+ 15606: 0x89BC,
+ 15607: 0x89BD,
+ 15608: 0x89BE,
+ 15609: 0x89BF,
+ 15610: 0x89C0,
+ 15611: 0x89C3,
+ 15612: 0x89CD,
+ 15613: 0x89D3,
+ 15614: 0x89D4,
+ 15615: 0x89D5,
+ 15616: 0x89D7,
+ 15617: 0x89D8,
+ 15618: 0x89D9,
+ 15619: 0x89DB,
+ 15620: 0x89DD,
+ 15621: 0x89DF,
+ 15622: 0x89E0,
+ 15623: 0x89E1,
+ 15624: 0x89E2,
+ 15625: 0x89E4,
+ 15626: 0x89E7,
+ 15627: 0x89E8,
+ 15628: 0x89E9,
+ 15629: 0x89EA,
+ 15630: 0x89EC,
+ 15631: 0x89ED,
+ 15632: 0x89EE,
+ 15633: 0x89F0,
+ 15634: 0x89F1,
+ 15635: 0x89F2,
+ 15636: 0x89F4,
+ 15637: 0x89F5,
+ 15638: 0x89F6,
+ 15639: 0x89F7,
+ 15640: 0x89F8,
+ 15641: 0x89F9,
+ 15642: 0x89FA,
+ 15643: 0x89FB,
+ 15644: 0x89FC,
+ 15645: 0x89FD,
+ 15646: 0x89FE,
+ 15647: 0x89FF,
+ 15648: 0x8A01,
+ 15649: 0x8A02,
+ 15650: 0x8A03,
+ 15651: 0x8A04,
+ 15652: 0x8A05,
+ 15653: 0x8A06,
+ 15654: 0x8A08,
+ 15655: 0x8A09,
+ 15656: 0x8A0A,
+ 15657: 0x8A0B,
+ 15658: 0x8A0C,
+ 15659: 0x8A0D,
+ 15660: 0x8A0E,
+ 15661: 0x8A0F,
+ 15662: 0x8A10,
+ 15663: 0x8A11,
+ 15664: 0x8A12,
+ 15665: 0x8A13,
+ 15666: 0x8A14,
+ 15667: 0x8A15,
+ 15668: 0x8A16,
+ 15669: 0x8A17,
+ 15670: 0x8A18,
+ 15671: 0x8A19,
+ 15672: 0x8A1A,
+ 15673: 0x8A1B,
+ 15674: 0x8A1C,
+ 15675: 0x8A1D,
+ 15676: 0x5370,
+ 15677: 0x82F1,
+ 15678: 0x6A31,
+ 15679: 0x5A74,
+ 15680: 0x9E70,
+ 15681: 0x5E94,
+ 15682: 0x7F28,
+ 15683: 0x83B9,
+ 15684: 0x8424,
+ 15685: 0x8425,
+ 15686: 0x8367,
+ 15687: 0x8747,
+ 15688: 0x8FCE,
+ 15689: 0x8D62,
+ 15690: 0x76C8,
+ 15691: 0x5F71,
+ 15692: 0x9896,
+ 15693: 0x786C,
+ 15694: 0x6620,
+ 15695: 0x54DF,
+ 15696: 0x62E5,
+ 15697: 0x4F63,
+ 15698: 0x81C3,
+ 15699: 0x75C8,
+ 15700: 0x5EB8,
+ 15701: 0x96CD,
+ 15702: 0x8E0A,
+ 15703: 0x86F9,
+ 15704: 0x548F,
+ 15705: 0x6CF3,
+ 15706: 0x6D8C,
+ 15707: 0x6C38,
+ 15708: 0x607F,
+ 15709: 0x52C7,
+ 15710: 0x7528,
+ 15711: 0x5E7D,
+ 15712: 0x4F18,
+ 15713: 0x60A0,
+ 15714: 0x5FE7,
+ 15715: 0x5C24,
+ 15716: 0x7531,
+ 15717: 0x90AE,
+ 15718: 0x94C0,
+ 15719: 0x72B9,
+ 15720: 0x6CB9,
+ 15721: 0x6E38,
+ 15722: 0x9149,
+ 15723: 0x6709,
+ 15724: 0x53CB,
+ 15725: 0x53F3,
+ 15726: 0x4F51,
+ 15727: 0x91C9,
+ 15728: 0x8BF1,
+ 15729: 0x53C8,
+ 15730: 0x5E7C,
+ 15731: 0x8FC2,
+ 15732: 0x6DE4,
+ 15733: 0x4E8E,
+ 15734: 0x76C2,
+ 15735: 0x6986,
+ 15736: 0x865E,
+ 15737: 0x611A,
+ 15738: 0x8206,
+ 15739: 0x4F59,
+ 15740: 0x4FDE,
+ 15741: 0x903E,
+ 15742: 0x9C7C,
+ 15743: 0x6109,
+ 15744: 0x6E1D,
+ 15745: 0x6E14,
+ 15746: 0x9685,
+ 15747: 0x4E88,
+ 15748: 0x5A31,
+ 15749: 0x96E8,
+ 15750: 0x4E0E,
+ 15751: 0x5C7F,
+ 15752: 0x79B9,
+ 15753: 0x5B87,
+ 15754: 0x8BED,
+ 15755: 0x7FBD,
+ 15756: 0x7389,
+ 15757: 0x57DF,
+ 15758: 0x828B,
+ 15759: 0x90C1,
+ 15760: 0x5401,
+ 15761: 0x9047,
+ 15762: 0x55BB,
+ 15763: 0x5CEA,
+ 15764: 0x5FA1,
+ 15765: 0x6108,
+ 15766: 0x6B32,
+ 15767: 0x72F1,
+ 15768: 0x80B2,
+ 15769: 0x8A89,
+ 15770: 0x8A1E,
+ 15771: 0x8A1F,
+ 15772: 0x8A20,
+ 15773: 0x8A21,
+ 15774: 0x8A22,
+ 15775: 0x8A23,
+ 15776: 0x8A24,
+ 15777: 0x8A25,
+ 15778: 0x8A26,
+ 15779: 0x8A27,
+ 15780: 0x8A28,
+ 15781: 0x8A29,
+ 15782: 0x8A2A,
+ 15783: 0x8A2B,
+ 15784: 0x8A2C,
+ 15785: 0x8A2D,
+ 15786: 0x8A2E,
+ 15787: 0x8A2F,
+ 15788: 0x8A30,
+ 15789: 0x8A31,
+ 15790: 0x8A32,
+ 15791: 0x8A33,
+ 15792: 0x8A34,
+ 15793: 0x8A35,
+ 15794: 0x8A36,
+ 15795: 0x8A37,
+ 15796: 0x8A38,
+ 15797: 0x8A39,
+ 15798: 0x8A3A,
+ 15799: 0x8A3B,
+ 15800: 0x8A3C,
+ 15801: 0x8A3D,
+ 15802: 0x8A3F,
+ 15803: 0x8A40,
+ 15804: 0x8A41,
+ 15805: 0x8A42,
+ 15806: 0x8A43,
+ 15807: 0x8A44,
+ 15808: 0x8A45,
+ 15809: 0x8A46,
+ 15810: 0x8A47,
+ 15811: 0x8A49,
+ 15812: 0x8A4A,
+ 15813: 0x8A4B,
+ 15814: 0x8A4C,
+ 15815: 0x8A4D,
+ 15816: 0x8A4E,
+ 15817: 0x8A4F,
+ 15818: 0x8A50,
+ 15819: 0x8A51,
+ 15820: 0x8A52,
+ 15821: 0x8A53,
+ 15822: 0x8A54,
+ 15823: 0x8A55,
+ 15824: 0x8A56,
+ 15825: 0x8A57,
+ 15826: 0x8A58,
+ 15827: 0x8A59,
+ 15828: 0x8A5A,
+ 15829: 0x8A5B,
+ 15830: 0x8A5C,
+ 15831: 0x8A5D,
+ 15832: 0x8A5E,
+ 15833: 0x8A5F,
+ 15834: 0x8A60,
+ 15835: 0x8A61,
+ 15836: 0x8A62,
+ 15837: 0x8A63,
+ 15838: 0x8A64,
+ 15839: 0x8A65,
+ 15840: 0x8A66,
+ 15841: 0x8A67,
+ 15842: 0x8A68,
+ 15843: 0x8A69,
+ 15844: 0x8A6A,
+ 15845: 0x8A6B,
+ 15846: 0x8A6C,
+ 15847: 0x8A6D,
+ 15848: 0x8A6E,
+ 15849: 0x8A6F,
+ 15850: 0x8A70,
+ 15851: 0x8A71,
+ 15852: 0x8A72,
+ 15853: 0x8A73,
+ 15854: 0x8A74,
+ 15855: 0x8A75,
+ 15856: 0x8A76,
+ 15857: 0x8A77,
+ 15858: 0x8A78,
+ 15859: 0x8A7A,
+ 15860: 0x8A7B,
+ 15861: 0x8A7C,
+ 15862: 0x8A7D,
+ 15863: 0x8A7E,
+ 15864: 0x8A7F,
+ 15865: 0x8A80,
+ 15866: 0x6D74,
+ 15867: 0x5BD3,
+ 15868: 0x88D5,
+ 15869: 0x9884,
+ 15870: 0x8C6B,
+ 15871: 0x9A6D,
+ 15872: 0x9E33,
+ 15873: 0x6E0A,
+ 15874: 0x51A4,
+ 15875: 0x5143,
+ 15876: 0x57A3,
+ 15877: 0x8881,
+ 15878: 0x539F,
+ 15879: 0x63F4,
+ 15880: 0x8F95,
+ 15881: 0x56ED,
+ 15882: 0x5458,
+ 15883: 0x5706,
+ 15884: 0x733F,
+ 15885: 0x6E90,
+ 15886: 0x7F18,
+ 15887: 0x8FDC,
+ 15888: 0x82D1,
+ 15889: 0x613F,
+ 15890: 0x6028,
+ 15891: 0x9662,
+ 15892: 0x66F0,
+ 15893: 0x7EA6,
+ 15894: 0x8D8A,
+ 15895: 0x8DC3,
+ 15896: 0x94A5,
+ 15897: 0x5CB3,
+ 15898: 0x7CA4,
+ 15899: 0x6708,
+ 15900: 0x60A6,
+ 15901: 0x9605,
+ 15902: 0x8018,
+ 15903: 0x4E91,
+ 15904: 0x90E7,
+ 15905: 0x5300,
+ 15906: 0x9668,
+ 15907: 0x5141,
+ 15908: 0x8FD0,
+ 15909: 0x8574,
+ 15910: 0x915D,
+ 15911: 0x6655,
+ 15912: 0x97F5,
+ 15913: 0x5B55,
+ 15914: 0x531D,
+ 15915: 0x7838,
+ 15916: 0x6742,
+ 15917: 0x683D,
+ 15918: 0x54C9,
+ 15919: 0x707E,
+ 15920: 0x5BB0,
+ 15921: 0x8F7D,
+ 15922: 0x518D,
+ 15923: 0x5728,
+ 15924: 0x54B1,
+ 15925: 0x6512,
+ 15926: 0x6682,
+ 15927: 0x8D5E,
+ 15928: 0x8D43,
+ 15929: 0x810F,
+ 15930: 0x846C,
+ 15931: 0x906D,
+ 15932: 0x7CDF,
+ 15933: 0x51FF,
+ 15934: 0x85FB,
+ 15935: 0x67A3,
+ 15936: 0x65E9,
+ 15937: 0x6FA1,
+ 15938: 0x86A4,
+ 15939: 0x8E81,
+ 15940: 0x566A,
+ 15941: 0x9020,
+ 15942: 0x7682,
+ 15943: 0x7076,
+ 15944: 0x71E5,
+ 15945: 0x8D23,
+ 15946: 0x62E9,
+ 15947: 0x5219,
+ 15948: 0x6CFD,
+ 15949: 0x8D3C,
+ 15950: 0x600E,
+ 15951: 0x589E,
+ 15952: 0x618E,
+ 15953: 0x66FE,
+ 15954: 0x8D60,
+ 15955: 0x624E,
+ 15956: 0x55B3,
+ 15957: 0x6E23,
+ 15958: 0x672D,
+ 15959: 0x8F67,
+ 15960: 0x8A81,
+ 15961: 0x8A82,
+ 15962: 0x8A83,
+ 15963: 0x8A84,
+ 15964: 0x8A85,
+ 15965: 0x8A86,
+ 15966: 0x8A87,
+ 15967: 0x8A88,
+ 15968: 0x8A8B,
+ 15969: 0x8A8C,
+ 15970: 0x8A8D,
+ 15971: 0x8A8E,
+ 15972: 0x8A8F,
+ 15973: 0x8A90,
+ 15974: 0x8A91,
+ 15975: 0x8A92,
+ 15976: 0x8A94,
+ 15977: 0x8A95,
+ 15978: 0x8A96,
+ 15979: 0x8A97,
+ 15980: 0x8A98,
+ 15981: 0x8A99,
+ 15982: 0x8A9A,
+ 15983: 0x8A9B,
+ 15984: 0x8A9C,
+ 15985: 0x8A9D,
+ 15986: 0x8A9E,
+ 15987: 0x8A9F,
+ 15988: 0x8AA0,
+ 15989: 0x8AA1,
+ 15990: 0x8AA2,
+ 15991: 0x8AA3,
+ 15992: 0x8AA4,
+ 15993: 0x8AA5,
+ 15994: 0x8AA6,
+ 15995: 0x8AA7,
+ 15996: 0x8AA8,
+ 15997: 0x8AA9,
+ 15998: 0x8AAA,
+ 15999: 0x8AAB,
+ 16000: 0x8AAC,
+ 16001: 0x8AAD,
+ 16002: 0x8AAE,
+ 16003: 0x8AAF,
+ 16004: 0x8AB0,
+ 16005: 0x8AB1,
+ 16006: 0x8AB2,
+ 16007: 0x8AB3,
+ 16008: 0x8AB4,
+ 16009: 0x8AB5,
+ 16010: 0x8AB6,
+ 16011: 0x8AB7,
+ 16012: 0x8AB8,
+ 16013: 0x8AB9,
+ 16014: 0x8ABA,
+ 16015: 0x8ABB,
+ 16016: 0x8ABC,
+ 16017: 0x8ABD,
+ 16018: 0x8ABE,
+ 16019: 0x8ABF,
+ 16020: 0x8AC0,
+ 16021: 0x8AC1,
+ 16022: 0x8AC2,
+ 16023: 0x8AC3,
+ 16024: 0x8AC4,
+ 16025: 0x8AC5,
+ 16026: 0x8AC6,
+ 16027: 0x8AC7,
+ 16028: 0x8AC8,
+ 16029: 0x8AC9,
+ 16030: 0x8ACA,
+ 16031: 0x8ACB,
+ 16032: 0x8ACC,
+ 16033: 0x8ACD,
+ 16034: 0x8ACE,
+ 16035: 0x8ACF,
+ 16036: 0x8AD0,
+ 16037: 0x8AD1,
+ 16038: 0x8AD2,
+ 16039: 0x8AD3,
+ 16040: 0x8AD4,
+ 16041: 0x8AD5,
+ 16042: 0x8AD6,
+ 16043: 0x8AD7,
+ 16044: 0x8AD8,
+ 16045: 0x8AD9,
+ 16046: 0x8ADA,
+ 16047: 0x8ADB,
+ 16048: 0x8ADC,
+ 16049: 0x8ADD,
+ 16050: 0x8ADE,
+ 16051: 0x8ADF,
+ 16052: 0x8AE0,
+ 16053: 0x8AE1,
+ 16054: 0x8AE2,
+ 16055: 0x8AE3,
+ 16056: 0x94E1,
+ 16057: 0x95F8,
+ 16058: 0x7728,
+ 16059: 0x6805,
+ 16060: 0x69A8,
+ 16061: 0x548B,
+ 16062: 0x4E4D,
+ 16063: 0x70B8,
+ 16064: 0x8BC8,
+ 16065: 0x6458,
+ 16066: 0x658B,
+ 16067: 0x5B85,
+ 16068: 0x7A84,
+ 16069: 0x503A,
+ 16070: 0x5BE8,
+ 16071: 0x77BB,
+ 16072: 0x6BE1,
+ 16073: 0x8A79,
+ 16074: 0x7C98,
+ 16075: 0x6CBE,
+ 16076: 0x76CF,
+ 16077: 0x65A9,
+ 16078: 0x8F97,
+ 16079: 0x5D2D,
+ 16080: 0x5C55,
+ 16081: 0x8638,
+ 16082: 0x6808,
+ 16083: 0x5360,
+ 16084: 0x6218,
+ 16085: 0x7AD9,
+ 16086: 0x6E5B,
+ 16087: 0x7EFD,
+ 16088: 0x6A1F,
+ 16089: 0x7AE0,
+ 16090: 0x5F70,
+ 16091: 0x6F33,
+ 16092: 0x5F20,
+ 16093: 0x638C,
+ 16094: 0x6DA8,
+ 16095: 0x6756,
+ 16096: 0x4E08,
+ 16097: 0x5E10,
+ 16098: 0x8D26,
+ 16099: 0x4ED7,
+ 16100: 0x80C0,
+ 16101: 0x7634,
+ 16102: 0x969C,
+ 16103: 0x62DB,
+ 16104: 0x662D,
+ 16105: 0x627E,
+ 16106: 0x6CBC,
+ 16107: 0x8D75,
+ 16108: 0x7167,
+ 16109: 0x7F69,
+ 16110: 0x5146,
+ 16111: 0x8087,
+ 16112: 0x53EC,
+ 16113: 0x906E,
+ 16114: 0x6298,
+ 16115: 0x54F2,
+ 16116: 0x86F0,
+ 16117: 0x8F99,
+ 16118: 0x8005,
+ 16119: 0x9517,
+ 16120: 0x8517,
+ 16121: 0x8FD9,
+ 16122: 0x6D59,
+ 16123: 0x73CD,
+ 16124: 0x659F,
+ 16125: 0x771F,
+ 16126: 0x7504,
+ 16127: 0x7827,
+ 16128: 0x81FB,
+ 16129: 0x8D1E,
+ 16130: 0x9488,
+ 16131: 0x4FA6,
+ 16132: 0x6795,
+ 16133: 0x75B9,
+ 16134: 0x8BCA,
+ 16135: 0x9707,
+ 16136: 0x632F,
+ 16137: 0x9547,
+ 16138: 0x9635,
+ 16139: 0x84B8,
+ 16140: 0x6323,
+ 16141: 0x7741,
+ 16142: 0x5F81,
+ 16143: 0x72F0,
+ 16144: 0x4E89,
+ 16145: 0x6014,
+ 16146: 0x6574,
+ 16147: 0x62EF,
+ 16148: 0x6B63,
+ 16149: 0x653F,
+ 16150: 0x8AE4,
+ 16151: 0x8AE5,
+ 16152: 0x8AE6,
+ 16153: 0x8AE7,
+ 16154: 0x8AE8,
+ 16155: 0x8AE9,
+ 16156: 0x8AEA,
+ 16157: 0x8AEB,
+ 16158: 0x8AEC,
+ 16159: 0x8AED,
+ 16160: 0x8AEE,
+ 16161: 0x8AEF,
+ 16162: 0x8AF0,
+ 16163: 0x8AF1,
+ 16164: 0x8AF2,
+ 16165: 0x8AF3,
+ 16166: 0x8AF4,
+ 16167: 0x8AF5,
+ 16168: 0x8AF6,
+ 16169: 0x8AF7,
+ 16170: 0x8AF8,
+ 16171: 0x8AF9,
+ 16172: 0x8AFA,
+ 16173: 0x8AFB,
+ 16174: 0x8AFC,
+ 16175: 0x8AFD,
+ 16176: 0x8AFE,
+ 16177: 0x8AFF,
+ 16178: 0x8B00,
+ 16179: 0x8B01,
+ 16180: 0x8B02,
+ 16181: 0x8B03,
+ 16182: 0x8B04,
+ 16183: 0x8B05,
+ 16184: 0x8B06,
+ 16185: 0x8B08,
+ 16186: 0x8B09,
+ 16187: 0x8B0A,
+ 16188: 0x8B0B,
+ 16189: 0x8B0C,
+ 16190: 0x8B0D,
+ 16191: 0x8B0E,
+ 16192: 0x8B0F,
+ 16193: 0x8B10,
+ 16194: 0x8B11,
+ 16195: 0x8B12,
+ 16196: 0x8B13,
+ 16197: 0x8B14,
+ 16198: 0x8B15,
+ 16199: 0x8B16,
+ 16200: 0x8B17,
+ 16201: 0x8B18,
+ 16202: 0x8B19,
+ 16203: 0x8B1A,
+ 16204: 0x8B1B,
+ 16205: 0x8B1C,
+ 16206: 0x8B1D,
+ 16207: 0x8B1E,
+ 16208: 0x8B1F,
+ 16209: 0x8B20,
+ 16210: 0x8B21,
+ 16211: 0x8B22,
+ 16212: 0x8B23,
+ 16213: 0x8B24,
+ 16214: 0x8B25,
+ 16215: 0x8B27,
+ 16216: 0x8B28,
+ 16217: 0x8B29,
+ 16218: 0x8B2A,
+ 16219: 0x8B2B,
+ 16220: 0x8B2C,
+ 16221: 0x8B2D,
+ 16222: 0x8B2E,
+ 16223: 0x8B2F,
+ 16224: 0x8B30,
+ 16225: 0x8B31,
+ 16226: 0x8B32,
+ 16227: 0x8B33,
+ 16228: 0x8B34,
+ 16229: 0x8B35,
+ 16230: 0x8B36,
+ 16231: 0x8B37,
+ 16232: 0x8B38,
+ 16233: 0x8B39,
+ 16234: 0x8B3A,
+ 16235: 0x8B3B,
+ 16236: 0x8B3C,
+ 16237: 0x8B3D,
+ 16238: 0x8B3E,
+ 16239: 0x8B3F,
+ 16240: 0x8B40,
+ 16241: 0x8B41,
+ 16242: 0x8B42,
+ 16243: 0x8B43,
+ 16244: 0x8B44,
+ 16245: 0x8B45,
+ 16246: 0x5E27,
+ 16247: 0x75C7,
+ 16248: 0x90D1,
+ 16249: 0x8BC1,
+ 16250: 0x829D,
+ 16251: 0x679D,
+ 16252: 0x652F,
+ 16253: 0x5431,
+ 16254: 0x8718,
+ 16255: 0x77E5,
+ 16256: 0x80A2,
+ 16257: 0x8102,
+ 16258: 0x6C41,
+ 16259: 0x4E4B,
+ 16260: 0x7EC7,
+ 16261: 0x804C,
+ 16262: 0x76F4,
+ 16263: 0x690D,
+ 16264: 0x6B96,
+ 16265: 0x6267,
+ 16266: 0x503C,
+ 16267: 0x4F84,
+ 16268: 0x5740,
+ 16269: 0x6307,
+ 16270: 0x6B62,
+ 16271: 0x8DBE,
+ 16272: 0x53EA,
+ 16273: 0x65E8,
+ 16274: 0x7EB8,
+ 16275: 0x5FD7,
+ 16276: 0x631A,
+ 16277: 0x63B7,
+ 16278: 0x81F3,
+ 16279: 0x81F4,
+ 16280: 0x7F6E,
+ 16281: 0x5E1C,
+ 16282: 0x5CD9,
+ 16283: 0x5236,
+ 16284: 0x667A,
+ 16285: 0x79E9,
+ 16286: 0x7A1A,
+ 16287: 0x8D28,
+ 16288: 0x7099,
+ 16289: 0x75D4,
+ 16290: 0x6EDE,
+ 16291: 0x6CBB,
+ 16292: 0x7A92,
+ 16293: 0x4E2D,
+ 16294: 0x76C5,
+ 16295: 0x5FE0,
+ 16296: 0x949F,
+ 16297: 0x8877,
+ 16298: 0x7EC8,
+ 16299: 0x79CD,
+ 16300: 0x80BF,
+ 16301: 0x91CD,
+ 16302: 0x4EF2,
+ 16303: 0x4F17,
+ 16304: 0x821F,
+ 16305: 0x5468,
+ 16306: 0x5DDE,
+ 16307: 0x6D32,
+ 16308: 0x8BCC,
+ 16309: 0x7CA5,
+ 16310: 0x8F74,
+ 16311: 0x8098,
+ 16312: 0x5E1A,
+ 16313: 0x5492,
+ 16314: 0x76B1,
+ 16315: 0x5B99,
+ 16316: 0x663C,
+ 16317: 0x9AA4,
+ 16318: 0x73E0,
+ 16319: 0x682A,
+ 16320: 0x86DB,
+ 16321: 0x6731,
+ 16322: 0x732A,
+ 16323: 0x8BF8,
+ 16324: 0x8BDB,
+ 16325: 0x9010,
+ 16326: 0x7AF9,
+ 16327: 0x70DB,
+ 16328: 0x716E,
+ 16329: 0x62C4,
+ 16330: 0x77A9,
+ 16331: 0x5631,
+ 16332: 0x4E3B,
+ 16333: 0x8457,
+ 16334: 0x67F1,
+ 16335: 0x52A9,
+ 16336: 0x86C0,
+ 16337: 0x8D2E,
+ 16338: 0x94F8,
+ 16339: 0x7B51,
+ 16340: 0x8B46,
+ 16341: 0x8B47,
+ 16342: 0x8B48,
+ 16343: 0x8B49,
+ 16344: 0x8B4A,
+ 16345: 0x8B4B,
+ 16346: 0x8B4C,
+ 16347: 0x8B4D,
+ 16348: 0x8B4E,
+ 16349: 0x8B4F,
+ 16350: 0x8B50,
+ 16351: 0x8B51,
+ 16352: 0x8B52,
+ 16353: 0x8B53,
+ 16354: 0x8B54,
+ 16355: 0x8B55,
+ 16356: 0x8B56,
+ 16357: 0x8B57,
+ 16358: 0x8B58,
+ 16359: 0x8B59,
+ 16360: 0x8B5A,
+ 16361: 0x8B5B,
+ 16362: 0x8B5C,
+ 16363: 0x8B5D,
+ 16364: 0x8B5E,
+ 16365: 0x8B5F,
+ 16366: 0x8B60,
+ 16367: 0x8B61,
+ 16368: 0x8B62,
+ 16369: 0x8B63,
+ 16370: 0x8B64,
+ 16371: 0x8B65,
+ 16372: 0x8B67,
+ 16373: 0x8B68,
+ 16374: 0x8B69,
+ 16375: 0x8B6A,
+ 16376: 0x8B6B,
+ 16377: 0x8B6D,
+ 16378: 0x8B6E,
+ 16379: 0x8B6F,
+ 16380: 0x8B70,
+ 16381: 0x8B71,
+ 16382: 0x8B72,
+ 16383: 0x8B73,
+ 16384: 0x8B74,
+ 16385: 0x8B75,
+ 16386: 0x8B76,
+ 16387: 0x8B77,
+ 16388: 0x8B78,
+ 16389: 0x8B79,
+ 16390: 0x8B7A,
+ 16391: 0x8B7B,
+ 16392: 0x8B7C,
+ 16393: 0x8B7D,
+ 16394: 0x8B7E,
+ 16395: 0x8B7F,
+ 16396: 0x8B80,
+ 16397: 0x8B81,
+ 16398: 0x8B82,
+ 16399: 0x8B83,
+ 16400: 0x8B84,
+ 16401: 0x8B85,
+ 16402: 0x8B86,
+ 16403: 0x8B87,
+ 16404: 0x8B88,
+ 16405: 0x8B89,
+ 16406: 0x8B8A,
+ 16407: 0x8B8B,
+ 16408: 0x8B8C,
+ 16409: 0x8B8D,
+ 16410: 0x8B8E,
+ 16411: 0x8B8F,
+ 16412: 0x8B90,
+ 16413: 0x8B91,
+ 16414: 0x8B92,
+ 16415: 0x8B93,
+ 16416: 0x8B94,
+ 16417: 0x8B95,
+ 16418: 0x8B96,
+ 16419: 0x8B97,
+ 16420: 0x8B98,
+ 16421: 0x8B99,
+ 16422: 0x8B9A,
+ 16423: 0x8B9B,
+ 16424: 0x8B9C,
+ 16425: 0x8B9D,
+ 16426: 0x8B9E,
+ 16427: 0x8B9F,
+ 16428: 0x8BAC,
+ 16429: 0x8BB1,
+ 16430: 0x8BBB,
+ 16431: 0x8BC7,
+ 16432: 0x8BD0,
+ 16433: 0x8BEA,
+ 16434: 0x8C09,
+ 16435: 0x8C1E,
+ 16436: 0x4F4F,
+ 16437: 0x6CE8,
+ 16438: 0x795D,
+ 16439: 0x9A7B,
+ 16440: 0x6293,
+ 16441: 0x722A,
+ 16442: 0x62FD,
+ 16443: 0x4E13,
+ 16444: 0x7816,
+ 16445: 0x8F6C,
+ 16446: 0x64B0,
+ 16447: 0x8D5A,
+ 16448: 0x7BC6,
+ 16449: 0x6869,
+ 16450: 0x5E84,
+ 16451: 0x88C5,
+ 16452: 0x5986,
+ 16453: 0x649E,
+ 16454: 0x58EE,
+ 16455: 0x72B6,
+ 16456: 0x690E,
+ 16457: 0x9525,
+ 16458: 0x8FFD,
+ 16459: 0x8D58,
+ 16460: 0x5760,
+ 16461: 0x7F00,
+ 16462: 0x8C06,
+ 16463: 0x51C6,
+ 16464: 0x6349,
+ 16465: 0x62D9,
+ 16466: 0x5353,
+ 16467: 0x684C,
+ 16468: 0x7422,
+ 16469: 0x8301,
+ 16470: 0x914C,
+ 16471: 0x5544,
+ 16472: 0x7740,
+ 16473: 0x707C,
+ 16474: 0x6D4A,
+ 16475: 0x5179,
+ 16476: 0x54A8,
+ 16477: 0x8D44,
+ 16478: 0x59FF,
+ 16479: 0x6ECB,
+ 16480: 0x6DC4,
+ 16481: 0x5B5C,
+ 16482: 0x7D2B,
+ 16483: 0x4ED4,
+ 16484: 0x7C7D,
+ 16485: 0x6ED3,
+ 16486: 0x5B50,
+ 16487: 0x81EA,
+ 16488: 0x6E0D,
+ 16489: 0x5B57,
+ 16490: 0x9B03,
+ 16491: 0x68D5,
+ 16492: 0x8E2A,
+ 16493: 0x5B97,
+ 16494: 0x7EFC,
+ 16495: 0x603B,
+ 16496: 0x7EB5,
+ 16497: 0x90B9,
+ 16498: 0x8D70,
+ 16499: 0x594F,
+ 16500: 0x63CD,
+ 16501: 0x79DF,
+ 16502: 0x8DB3,
+ 16503: 0x5352,
+ 16504: 0x65CF,
+ 16505: 0x7956,
+ 16506: 0x8BC5,
+ 16507: 0x963B,
+ 16508: 0x7EC4,
+ 16509: 0x94BB,
+ 16510: 0x7E82,
+ 16511: 0x5634,
+ 16512: 0x9189,
+ 16513: 0x6700,
+ 16514: 0x7F6A,
+ 16515: 0x5C0A,
+ 16516: 0x9075,
+ 16517: 0x6628,
+ 16518: 0x5DE6,
+ 16519: 0x4F50,
+ 16520: 0x67DE,
+ 16521: 0x505A,
+ 16522: 0x4F5C,
+ 16523: 0x5750,
+ 16524: 0x5EA7,
+ 16530: 0x8C38,
+ 16531: 0x8C39,
+ 16532: 0x8C3A,
+ 16533: 0x8C3B,
+ 16534: 0x8C3C,
+ 16535: 0x8C3D,
+ 16536: 0x8C3E,
+ 16537: 0x8C3F,
+ 16538: 0x8C40,
+ 16539: 0x8C42,
+ 16540: 0x8C43,
+ 16541: 0x8C44,
+ 16542: 0x8C45,
+ 16543: 0x8C48,
+ 16544: 0x8C4A,
+ 16545: 0x8C4B,
+ 16546: 0x8C4D,
+ 16547: 0x8C4E,
+ 16548: 0x8C4F,
+ 16549: 0x8C50,
+ 16550: 0x8C51,
+ 16551: 0x8C52,
+ 16552: 0x8C53,
+ 16553: 0x8C54,
+ 16554: 0x8C56,
+ 16555: 0x8C57,
+ 16556: 0x8C58,
+ 16557: 0x8C59,
+ 16558: 0x8C5B,
+ 16559: 0x8C5C,
+ 16560: 0x8C5D,
+ 16561: 0x8C5E,
+ 16562: 0x8C5F,
+ 16563: 0x8C60,
+ 16564: 0x8C63,
+ 16565: 0x8C64,
+ 16566: 0x8C65,
+ 16567: 0x8C66,
+ 16568: 0x8C67,
+ 16569: 0x8C68,
+ 16570: 0x8C69,
+ 16571: 0x8C6C,
+ 16572: 0x8C6D,
+ 16573: 0x8C6E,
+ 16574: 0x8C6F,
+ 16575: 0x8C70,
+ 16576: 0x8C71,
+ 16577: 0x8C72,
+ 16578: 0x8C74,
+ 16579: 0x8C75,
+ 16580: 0x8C76,
+ 16581: 0x8C77,
+ 16582: 0x8C7B,
+ 16583: 0x8C7C,
+ 16584: 0x8C7D,
+ 16585: 0x8C7E,
+ 16586: 0x8C7F,
+ 16587: 0x8C80,
+ 16588: 0x8C81,
+ 16589: 0x8C83,
+ 16590: 0x8C84,
+ 16591: 0x8C86,
+ 16592: 0x8C87,
+ 16593: 0x8C88,
+ 16594: 0x8C8B,
+ 16595: 0x8C8D,
+ 16596: 0x8C8E,
+ 16597: 0x8C8F,
+ 16598: 0x8C90,
+ 16599: 0x8C91,
+ 16600: 0x8C92,
+ 16601: 0x8C93,
+ 16602: 0x8C95,
+ 16603: 0x8C96,
+ 16604: 0x8C97,
+ 16605: 0x8C99,
+ 16606: 0x8C9A,
+ 16607: 0x8C9B,
+ 16608: 0x8C9C,
+ 16609: 0x8C9D,
+ 16610: 0x8C9E,
+ 16611: 0x8C9F,
+ 16612: 0x8CA0,
+ 16613: 0x8CA1,
+ 16614: 0x8CA2,
+ 16615: 0x8CA3,
+ 16616: 0x8CA4,
+ 16617: 0x8CA5,
+ 16618: 0x8CA6,
+ 16619: 0x8CA7,
+ 16620: 0x8CA8,
+ 16621: 0x8CA9,
+ 16622: 0x8CAA,
+ 16623: 0x8CAB,
+ 16624: 0x8CAC,
+ 16625: 0x8CAD,
+ 16626: 0x4E8D,
+ 16627: 0x4E0C,
+ 16628: 0x5140,
+ 16629: 0x4E10,
+ 16630: 0x5EFF,
+ 16631: 0x5345,
+ 16632: 0x4E15,
+ 16633: 0x4E98,
+ 16634: 0x4E1E,
+ 16635: 0x9B32,
+ 16636: 0x5B6C,
+ 16637: 0x5669,
+ 16638: 0x4E28,
+ 16639: 0x79BA,
+ 16640: 0x4E3F,
+ 16641: 0x5315,
+ 16642: 0x4E47,
+ 16643: 0x592D,
+ 16644: 0x723B,
+ 16645: 0x536E,
+ 16646: 0x6C10,
+ 16647: 0x56DF,
+ 16648: 0x80E4,
+ 16649: 0x9997,
+ 16650: 0x6BD3,
+ 16651: 0x777E,
+ 16652: 0x9F17,
+ 16653: 0x4E36,
+ 16654: 0x4E9F,
+ 16655: 0x9F10,
+ 16656: 0x4E5C,
+ 16657: 0x4E69,
+ 16658: 0x4E93,
+ 16659: 0x8288,
+ 16660: 0x5B5B,
+ 16661: 0x556C,
+ 16662: 0x560F,
+ 16663: 0x4EC4,
+ 16664: 0x538D,
+ 16665: 0x539D,
+ 16666: 0x53A3,
+ 16667: 0x53A5,
+ 16668: 0x53AE,
+ 16669: 0x9765,
+ 16670: 0x8D5D,
+ 16671: 0x531A,
+ 16672: 0x53F5,
+ 16673: 0x5326,
+ 16674: 0x532E,
+ 16675: 0x533E,
+ 16676: 0x8D5C,
+ 16677: 0x5366,
+ 16678: 0x5363,
+ 16679: 0x5202,
+ 16680: 0x5208,
+ 16681: 0x520E,
+ 16682: 0x522D,
+ 16683: 0x5233,
+ 16684: 0x523F,
+ 16685: 0x5240,
+ 16686: 0x524C,
+ 16687: 0x525E,
+ 16688: 0x5261,
+ 16689: 0x525C,
+ 16690: 0x84AF,
+ 16691: 0x527D,
+ 16692: 0x5282,
+ 16693: 0x5281,
+ 16694: 0x5290,
+ 16695: 0x5293,
+ 16696: 0x5182,
+ 16697: 0x7F54,
+ 16698: 0x4EBB,
+ 16699: 0x4EC3,
+ 16700: 0x4EC9,
+ 16701: 0x4EC2,
+ 16702: 0x4EE8,
+ 16703: 0x4EE1,
+ 16704: 0x4EEB,
+ 16705: 0x4EDE,
+ 16706: 0x4F1B,
+ 16707: 0x4EF3,
+ 16708: 0x4F22,
+ 16709: 0x4F64,
+ 16710: 0x4EF5,
+ 16711: 0x4F25,
+ 16712: 0x4F27,
+ 16713: 0x4F09,
+ 16714: 0x4F2B,
+ 16715: 0x4F5E,
+ 16716: 0x4F67,
+ 16717: 0x6538,
+ 16718: 0x4F5A,
+ 16719: 0x4F5D,
+ 16720: 0x8CAE,
+ 16721: 0x8CAF,
+ 16722: 0x8CB0,
+ 16723: 0x8CB1,
+ 16724: 0x8CB2,
+ 16725: 0x8CB3,
+ 16726: 0x8CB4,
+ 16727: 0x8CB5,
+ 16728: 0x8CB6,
+ 16729: 0x8CB7,
+ 16730: 0x8CB8,
+ 16731: 0x8CB9,
+ 16732: 0x8CBA,
+ 16733: 0x8CBB,
+ 16734: 0x8CBC,
+ 16735: 0x8CBD,
+ 16736: 0x8CBE,
+ 16737: 0x8CBF,
+ 16738: 0x8CC0,
+ 16739: 0x8CC1,
+ 16740: 0x8CC2,
+ 16741: 0x8CC3,
+ 16742: 0x8CC4,
+ 16743: 0x8CC5,
+ 16744: 0x8CC6,
+ 16745: 0x8CC7,
+ 16746: 0x8CC8,
+ 16747: 0x8CC9,
+ 16748: 0x8CCA,
+ 16749: 0x8CCB,
+ 16750: 0x8CCC,
+ 16751: 0x8CCD,
+ 16752: 0x8CCE,
+ 16753: 0x8CCF,
+ 16754: 0x8CD0,
+ 16755: 0x8CD1,
+ 16756: 0x8CD2,
+ 16757: 0x8CD3,
+ 16758: 0x8CD4,
+ 16759: 0x8CD5,
+ 16760: 0x8CD6,
+ 16761: 0x8CD7,
+ 16762: 0x8CD8,
+ 16763: 0x8CD9,
+ 16764: 0x8CDA,
+ 16765: 0x8CDB,
+ 16766: 0x8CDC,
+ 16767: 0x8CDD,
+ 16768: 0x8CDE,
+ 16769: 0x8CDF,
+ 16770: 0x8CE0,
+ 16771: 0x8CE1,
+ 16772: 0x8CE2,
+ 16773: 0x8CE3,
+ 16774: 0x8CE4,
+ 16775: 0x8CE5,
+ 16776: 0x8CE6,
+ 16777: 0x8CE7,
+ 16778: 0x8CE8,
+ 16779: 0x8CE9,
+ 16780: 0x8CEA,
+ 16781: 0x8CEB,
+ 16782: 0x8CEC,
+ 16783: 0x8CED,
+ 16784: 0x8CEE,
+ 16785: 0x8CEF,
+ 16786: 0x8CF0,
+ 16787: 0x8CF1,
+ 16788: 0x8CF2,
+ 16789: 0x8CF3,
+ 16790: 0x8CF4,
+ 16791: 0x8CF5,
+ 16792: 0x8CF6,
+ 16793: 0x8CF7,
+ 16794: 0x8CF8,
+ 16795: 0x8CF9,
+ 16796: 0x8CFA,
+ 16797: 0x8CFB,
+ 16798: 0x8CFC,
+ 16799: 0x8CFD,
+ 16800: 0x8CFE,
+ 16801: 0x8CFF,
+ 16802: 0x8D00,
+ 16803: 0x8D01,
+ 16804: 0x8D02,
+ 16805: 0x8D03,
+ 16806: 0x8D04,
+ 16807: 0x8D05,
+ 16808: 0x8D06,
+ 16809: 0x8D07,
+ 16810: 0x8D08,
+ 16811: 0x8D09,
+ 16812: 0x8D0A,
+ 16813: 0x8D0B,
+ 16814: 0x8D0C,
+ 16815: 0x8D0D,
+ 16816: 0x4F5F,
+ 16817: 0x4F57,
+ 16818: 0x4F32,
+ 16819: 0x4F3D,
+ 16820: 0x4F76,
+ 16821: 0x4F74,
+ 16822: 0x4F91,
+ 16823: 0x4F89,
+ 16824: 0x4F83,
+ 16825: 0x4F8F,
+ 16826: 0x4F7E,
+ 16827: 0x4F7B,
+ 16828: 0x4FAA,
+ 16829: 0x4F7C,
+ 16830: 0x4FAC,
+ 16831: 0x4F94,
+ 16832: 0x4FE6,
+ 16833: 0x4FE8,
+ 16834: 0x4FEA,
+ 16835: 0x4FC5,
+ 16836: 0x4FDA,
+ 16837: 0x4FE3,
+ 16838: 0x4FDC,
+ 16839: 0x4FD1,
+ 16840: 0x4FDF,
+ 16841: 0x4FF8,
+ 16842: 0x5029,
+ 16843: 0x504C,
+ 16844: 0x4FF3,
+ 16845: 0x502C,
+ 16846: 0x500F,
+ 16847: 0x502E,
+ 16848: 0x502D,
+ 16849: 0x4FFE,
+ 16850: 0x501C,
+ 16851: 0x500C,
+ 16852: 0x5025,
+ 16853: 0x5028,
+ 16854: 0x507E,
+ 16855: 0x5043,
+ 16856: 0x5055,
+ 16857: 0x5048,
+ 16858: 0x504E,
+ 16859: 0x506C,
+ 16860: 0x507B,
+ 16861: 0x50A5,
+ 16862: 0x50A7,
+ 16863: 0x50A9,
+ 16864: 0x50BA,
+ 16865: 0x50D6,
+ 16866: 0x5106,
+ 16867: 0x50ED,
+ 16868: 0x50EC,
+ 16869: 0x50E6,
+ 16870: 0x50EE,
+ 16871: 0x5107,
+ 16872: 0x510B,
+ 16873: 0x4EDD,
+ 16874: 0x6C3D,
+ 16875: 0x4F58,
+ 16876: 0x4F65,
+ 16877: 0x4FCE,
+ 16878: 0x9FA0,
+ 16879: 0x6C46,
+ 16880: 0x7C74,
+ 16881: 0x516E,
+ 16882: 0x5DFD,
+ 16883: 0x9EC9,
+ 16884: 0x9998,
+ 16885: 0x5181,
+ 16886: 0x5914,
+ 16887: 0x52F9,
+ 16888: 0x530D,
+ 16889: 0x8A07,
+ 16890: 0x5310,
+ 16891: 0x51EB,
+ 16892: 0x5919,
+ 16893: 0x5155,
+ 16894: 0x4EA0,
+ 16895: 0x5156,
+ 16896: 0x4EB3,
+ 16897: 0x886E,
+ 16898: 0x88A4,
+ 16899: 0x4EB5,
+ 16900: 0x8114,
+ 16901: 0x88D2,
+ 16902: 0x7980,
+ 16903: 0x5B34,
+ 16904: 0x8803,
+ 16905: 0x7FB8,
+ 16906: 0x51AB,
+ 16907: 0x51B1,
+ 16908: 0x51BD,
+ 16909: 0x51BC,
+ 16910: 0x8D0E,
+ 16911: 0x8D0F,
+ 16912: 0x8D10,
+ 16913: 0x8D11,
+ 16914: 0x8D12,
+ 16915: 0x8D13,
+ 16916: 0x8D14,
+ 16917: 0x8D15,
+ 16918: 0x8D16,
+ 16919: 0x8D17,
+ 16920: 0x8D18,
+ 16921: 0x8D19,
+ 16922: 0x8D1A,
+ 16923: 0x8D1B,
+ 16924: 0x8D1C,
+ 16925: 0x8D20,
+ 16926: 0x8D51,
+ 16927: 0x8D52,
+ 16928: 0x8D57,
+ 16929: 0x8D5F,
+ 16930: 0x8D65,
+ 16931: 0x8D68,
+ 16932: 0x8D69,
+ 16933: 0x8D6A,
+ 16934: 0x8D6C,
+ 16935: 0x8D6E,
+ 16936: 0x8D6F,
+ 16937: 0x8D71,
+ 16938: 0x8D72,
+ 16939: 0x8D78,
+ 16940: 0x8D79,
+ 16941: 0x8D7A,
+ 16942: 0x8D7B,
+ 16943: 0x8D7C,
+ 16944: 0x8D7D,
+ 16945: 0x8D7E,
+ 16946: 0x8D7F,
+ 16947: 0x8D80,
+ 16948: 0x8D82,
+ 16949: 0x8D83,
+ 16950: 0x8D86,
+ 16951: 0x8D87,
+ 16952: 0x8D88,
+ 16953: 0x8D89,
+ 16954: 0x8D8C,
+ 16955: 0x8D8D,
+ 16956: 0x8D8E,
+ 16957: 0x8D8F,
+ 16958: 0x8D90,
+ 16959: 0x8D92,
+ 16960: 0x8D93,
+ 16961: 0x8D95,
+ 16962: 0x8D96,
+ 16963: 0x8D97,
+ 16964: 0x8D98,
+ 16965: 0x8D99,
+ 16966: 0x8D9A,
+ 16967: 0x8D9B,
+ 16968: 0x8D9C,
+ 16969: 0x8D9D,
+ 16970: 0x8D9E,
+ 16971: 0x8DA0,
+ 16972: 0x8DA1,
+ 16973: 0x8DA2,
+ 16974: 0x8DA4,
+ 16975: 0x8DA5,
+ 16976: 0x8DA6,
+ 16977: 0x8DA7,
+ 16978: 0x8DA8,
+ 16979: 0x8DA9,
+ 16980: 0x8DAA,
+ 16981: 0x8DAB,
+ 16982: 0x8DAC,
+ 16983: 0x8DAD,
+ 16984: 0x8DAE,
+ 16985: 0x8DAF,
+ 16986: 0x8DB0,
+ 16987: 0x8DB2,
+ 16988: 0x8DB6,
+ 16989: 0x8DB7,
+ 16990: 0x8DB9,
+ 16991: 0x8DBB,
+ 16992: 0x8DBD,
+ 16993: 0x8DC0,
+ 16994: 0x8DC1,
+ 16995: 0x8DC2,
+ 16996: 0x8DC5,
+ 16997: 0x8DC7,
+ 16998: 0x8DC8,
+ 16999: 0x8DC9,
+ 17000: 0x8DCA,
+ 17001: 0x8DCD,
+ 17002: 0x8DD0,
+ 17003: 0x8DD2,
+ 17004: 0x8DD3,
+ 17005: 0x8DD4,
+ 17006: 0x51C7,
+ 17007: 0x5196,
+ 17008: 0x51A2,
+ 17009: 0x51A5,
+ 17010: 0x8BA0,
+ 17011: 0x8BA6,
+ 17012: 0x8BA7,
+ 17013: 0x8BAA,
+ 17014: 0x8BB4,
+ 17015: 0x8BB5,
+ 17016: 0x8BB7,
+ 17017: 0x8BC2,
+ 17018: 0x8BC3,
+ 17019: 0x8BCB,
+ 17020: 0x8BCF,
+ 17021: 0x8BCE,
+ 17022: 0x8BD2,
+ 17023: 0x8BD3,
+ 17024: 0x8BD4,
+ 17025: 0x8BD6,
+ 17026: 0x8BD8,
+ 17027: 0x8BD9,
+ 17028: 0x8BDC,
+ 17029: 0x8BDF,
+ 17030: 0x8BE0,
+ 17031: 0x8BE4,
+ 17032: 0x8BE8,
+ 17033: 0x8BE9,
+ 17034: 0x8BEE,
+ 17035: 0x8BF0,
+ 17036: 0x8BF3,
+ 17037: 0x8BF6,
+ 17038: 0x8BF9,
+ 17039: 0x8BFC,
+ 17040: 0x8BFF,
+ 17041: 0x8C00,
+ 17042: 0x8C02,
+ 17043: 0x8C04,
+ 17044: 0x8C07,
+ 17045: 0x8C0C,
+ 17046: 0x8C0F,
+ 17047: 0x8C11,
+ 17048: 0x8C12,
+ 17049: 0x8C14,
+ 17050: 0x8C15,
+ 17051: 0x8C16,
+ 17052: 0x8C19,
+ 17053: 0x8C1B,
+ 17054: 0x8C18,
+ 17055: 0x8C1D,
+ 17056: 0x8C1F,
+ 17057: 0x8C20,
+ 17058: 0x8C21,
+ 17059: 0x8C25,
+ 17060: 0x8C27,
+ 17061: 0x8C2A,
+ 17062: 0x8C2B,
+ 17063: 0x8C2E,
+ 17064: 0x8C2F,
+ 17065: 0x8C32,
+ 17066: 0x8C33,
+ 17067: 0x8C35,
+ 17068: 0x8C36,
+ 17069: 0x5369,
+ 17070: 0x537A,
+ 17071: 0x961D,
+ 17072: 0x9622,
+ 17073: 0x9621,
+ 17074: 0x9631,
+ 17075: 0x962A,
+ 17076: 0x963D,
+ 17077: 0x963C,
+ 17078: 0x9642,
+ 17079: 0x9649,
+ 17080: 0x9654,
+ 17081: 0x965F,
+ 17082: 0x9667,
+ 17083: 0x966C,
+ 17084: 0x9672,
+ 17085: 0x9674,
+ 17086: 0x9688,
+ 17087: 0x968D,
+ 17088: 0x9697,
+ 17089: 0x96B0,
+ 17090: 0x9097,
+ 17091: 0x909B,
+ 17092: 0x909D,
+ 17093: 0x9099,
+ 17094: 0x90AC,
+ 17095: 0x90A1,
+ 17096: 0x90B4,
+ 17097: 0x90B3,
+ 17098: 0x90B6,
+ 17099: 0x90BA,
+ 17100: 0x8DD5,
+ 17101: 0x8DD8,
+ 17102: 0x8DD9,
+ 17103: 0x8DDC,
+ 17104: 0x8DE0,
+ 17105: 0x8DE1,
+ 17106: 0x8DE2,
+ 17107: 0x8DE5,
+ 17108: 0x8DE6,
+ 17109: 0x8DE7,
+ 17110: 0x8DE9,
+ 17111: 0x8DED,
+ 17112: 0x8DEE,
+ 17113: 0x8DF0,
+ 17114: 0x8DF1,
+ 17115: 0x8DF2,
+ 17116: 0x8DF4,
+ 17117: 0x8DF6,
+ 17118: 0x8DFC,
+ 17119: 0x8DFE,
+ 17120: 0x8DFF,
+ 17121: 0x8E00,
+ 17122: 0x8E01,
+ 17123: 0x8E02,
+ 17124: 0x8E03,
+ 17125: 0x8E04,
+ 17126: 0x8E06,
+ 17127: 0x8E07,
+ 17128: 0x8E08,
+ 17129: 0x8E0B,
+ 17130: 0x8E0D,
+ 17131: 0x8E0E,
+ 17132: 0x8E10,
+ 17133: 0x8E11,
+ 17134: 0x8E12,
+ 17135: 0x8E13,
+ 17136: 0x8E15,
+ 17137: 0x8E16,
+ 17138: 0x8E17,
+ 17139: 0x8E18,
+ 17140: 0x8E19,
+ 17141: 0x8E1A,
+ 17142: 0x8E1B,
+ 17143: 0x8E1C,
+ 17144: 0x8E20,
+ 17145: 0x8E21,
+ 17146: 0x8E24,
+ 17147: 0x8E25,
+ 17148: 0x8E26,
+ 17149: 0x8E27,
+ 17150: 0x8E28,
+ 17151: 0x8E2B,
+ 17152: 0x8E2D,
+ 17153: 0x8E30,
+ 17154: 0x8E32,
+ 17155: 0x8E33,
+ 17156: 0x8E34,
+ 17157: 0x8E36,
+ 17158: 0x8E37,
+ 17159: 0x8E38,
+ 17160: 0x8E3B,
+ 17161: 0x8E3C,
+ 17162: 0x8E3E,
+ 17163: 0x8E3F,
+ 17164: 0x8E43,
+ 17165: 0x8E45,
+ 17166: 0x8E46,
+ 17167: 0x8E4C,
+ 17168: 0x8E4D,
+ 17169: 0x8E4E,
+ 17170: 0x8E4F,
+ 17171: 0x8E50,
+ 17172: 0x8E53,
+ 17173: 0x8E54,
+ 17174: 0x8E55,
+ 17175: 0x8E56,
+ 17176: 0x8E57,
+ 17177: 0x8E58,
+ 17178: 0x8E5A,
+ 17179: 0x8E5B,
+ 17180: 0x8E5C,
+ 17181: 0x8E5D,
+ 17182: 0x8E5E,
+ 17183: 0x8E5F,
+ 17184: 0x8E60,
+ 17185: 0x8E61,
+ 17186: 0x8E62,
+ 17187: 0x8E63,
+ 17188: 0x8E64,
+ 17189: 0x8E65,
+ 17190: 0x8E67,
+ 17191: 0x8E68,
+ 17192: 0x8E6A,
+ 17193: 0x8E6B,
+ 17194: 0x8E6E,
+ 17195: 0x8E71,
+ 17196: 0x90B8,
+ 17197: 0x90B0,
+ 17198: 0x90CF,
+ 17199: 0x90C5,
+ 17200: 0x90BE,
+ 17201: 0x90D0,
+ 17202: 0x90C4,
+ 17203: 0x90C7,
+ 17204: 0x90D3,
+ 17205: 0x90E6,
+ 17206: 0x90E2,
+ 17207: 0x90DC,
+ 17208: 0x90D7,
+ 17209: 0x90DB,
+ 17210: 0x90EB,
+ 17211: 0x90EF,
+ 17212: 0x90FE,
+ 17213: 0x9104,
+ 17214: 0x9122,
+ 17215: 0x911E,
+ 17216: 0x9123,
+ 17217: 0x9131,
+ 17218: 0x912F,
+ 17219: 0x9139,
+ 17220: 0x9143,
+ 17221: 0x9146,
+ 17222: 0x520D,
+ 17223: 0x5942,
+ 17224: 0x52A2,
+ 17225: 0x52AC,
+ 17226: 0x52AD,
+ 17227: 0x52BE,
+ 17228: 0x54FF,
+ 17229: 0x52D0,
+ 17230: 0x52D6,
+ 17231: 0x52F0,
+ 17232: 0x53DF,
+ 17233: 0x71EE,
+ 17234: 0x77CD,
+ 17235: 0x5EF4,
+ 17236: 0x51F5,
+ 17237: 0x51FC,
+ 17238: 0x9B2F,
+ 17239: 0x53B6,
+ 17240: 0x5F01,
+ 17241: 0x755A,
+ 17242: 0x5DEF,
+ 17243: 0x574C,
+ 17244: 0x57A9,
+ 17245: 0x57A1,
+ 17246: 0x587E,
+ 17247: 0x58BC,
+ 17248: 0x58C5,
+ 17249: 0x58D1,
+ 17250: 0x5729,
+ 17251: 0x572C,
+ 17252: 0x572A,
+ 17253: 0x5733,
+ 17254: 0x5739,
+ 17255: 0x572E,
+ 17256: 0x572F,
+ 17257: 0x575C,
+ 17258: 0x573B,
+ 17259: 0x5742,
+ 17260: 0x5769,
+ 17261: 0x5785,
+ 17262: 0x576B,
+ 17263: 0x5786,
+ 17264: 0x577C,
+ 17265: 0x577B,
+ 17266: 0x5768,
+ 17267: 0x576D,
+ 17268: 0x5776,
+ 17269: 0x5773,
+ 17270: 0x57AD,
+ 17271: 0x57A4,
+ 17272: 0x578C,
+ 17273: 0x57B2,
+ 17274: 0x57CF,
+ 17275: 0x57A7,
+ 17276: 0x57B4,
+ 17277: 0x5793,
+ 17278: 0x57A0,
+ 17279: 0x57D5,
+ 17280: 0x57D8,
+ 17281: 0x57DA,
+ 17282: 0x57D9,
+ 17283: 0x57D2,
+ 17284: 0x57B8,
+ 17285: 0x57F4,
+ 17286: 0x57EF,
+ 17287: 0x57F8,
+ 17288: 0x57E4,
+ 17289: 0x57DD,
+ 17290: 0x8E73,
+ 17291: 0x8E75,
+ 17292: 0x8E77,
+ 17293: 0x8E78,
+ 17294: 0x8E79,
+ 17295: 0x8E7A,
+ 17296: 0x8E7B,
+ 17297: 0x8E7D,
+ 17298: 0x8E7E,
+ 17299: 0x8E80,
+ 17300: 0x8E82,
+ 17301: 0x8E83,
+ 17302: 0x8E84,
+ 17303: 0x8E86,
+ 17304: 0x8E88,
+ 17305: 0x8E89,
+ 17306: 0x8E8A,
+ 17307: 0x8E8B,
+ 17308: 0x8E8C,
+ 17309: 0x8E8D,
+ 17310: 0x8E8E,
+ 17311: 0x8E91,
+ 17312: 0x8E92,
+ 17313: 0x8E93,
+ 17314: 0x8E95,
+ 17315: 0x8E96,
+ 17316: 0x8E97,
+ 17317: 0x8E98,
+ 17318: 0x8E99,
+ 17319: 0x8E9A,
+ 17320: 0x8E9B,
+ 17321: 0x8E9D,
+ 17322: 0x8E9F,
+ 17323: 0x8EA0,
+ 17324: 0x8EA1,
+ 17325: 0x8EA2,
+ 17326: 0x8EA3,
+ 17327: 0x8EA4,
+ 17328: 0x8EA5,
+ 17329: 0x8EA6,
+ 17330: 0x8EA7,
+ 17331: 0x8EA8,
+ 17332: 0x8EA9,
+ 17333: 0x8EAA,
+ 17334: 0x8EAD,
+ 17335: 0x8EAE,
+ 17336: 0x8EB0,
+ 17337: 0x8EB1,
+ 17338: 0x8EB3,
+ 17339: 0x8EB4,
+ 17340: 0x8EB5,
+ 17341: 0x8EB6,
+ 17342: 0x8EB7,
+ 17343: 0x8EB8,
+ 17344: 0x8EB9,
+ 17345: 0x8EBB,
+ 17346: 0x8EBC,
+ 17347: 0x8EBD,
+ 17348: 0x8EBE,
+ 17349: 0x8EBF,
+ 17350: 0x8EC0,
+ 17351: 0x8EC1,
+ 17352: 0x8EC2,
+ 17353: 0x8EC3,
+ 17354: 0x8EC4,
+ 17355: 0x8EC5,
+ 17356: 0x8EC6,
+ 17357: 0x8EC7,
+ 17358: 0x8EC8,
+ 17359: 0x8EC9,
+ 17360: 0x8ECA,
+ 17361: 0x8ECB,
+ 17362: 0x8ECC,
+ 17363: 0x8ECD,
+ 17364: 0x8ECF,
+ 17365: 0x8ED0,
+ 17366: 0x8ED1,
+ 17367: 0x8ED2,
+ 17368: 0x8ED3,
+ 17369: 0x8ED4,
+ 17370: 0x8ED5,
+ 17371: 0x8ED6,
+ 17372: 0x8ED7,
+ 17373: 0x8ED8,
+ 17374: 0x8ED9,
+ 17375: 0x8EDA,
+ 17376: 0x8EDB,
+ 17377: 0x8EDC,
+ 17378: 0x8EDD,
+ 17379: 0x8EDE,
+ 17380: 0x8EDF,
+ 17381: 0x8EE0,
+ 17382: 0x8EE1,
+ 17383: 0x8EE2,
+ 17384: 0x8EE3,
+ 17385: 0x8EE4,
+ 17386: 0x580B,
+ 17387: 0x580D,
+ 17388: 0x57FD,
+ 17389: 0x57ED,
+ 17390: 0x5800,
+ 17391: 0x581E,
+ 17392: 0x5819,
+ 17393: 0x5844,
+ 17394: 0x5820,
+ 17395: 0x5865,
+ 17396: 0x586C,
+ 17397: 0x5881,
+ 17398: 0x5889,
+ 17399: 0x589A,
+ 17400: 0x5880,
+ 17401: 0x99A8,
+ 17402: 0x9F19,
+ 17403: 0x61FF,
+ 17404: 0x8279,
+ 17405: 0x827D,
+ 17406: 0x827F,
+ 17407: 0x828F,
+ 17408: 0x828A,
+ 17409: 0x82A8,
+ 17410: 0x8284,
+ 17411: 0x828E,
+ 17412: 0x8291,
+ 17413: 0x8297,
+ 17414: 0x8299,
+ 17415: 0x82AB,
+ 17416: 0x82B8,
+ 17417: 0x82BE,
+ 17418: 0x82B0,
+ 17419: 0x82C8,
+ 17420: 0x82CA,
+ 17421: 0x82E3,
+ 17422: 0x8298,
+ 17423: 0x82B7,
+ 17424: 0x82AE,
+ 17425: 0x82CB,
+ 17426: 0x82CC,
+ 17427: 0x82C1,
+ 17428: 0x82A9,
+ 17429: 0x82B4,
+ 17430: 0x82A1,
+ 17431: 0x82AA,
+ 17432: 0x829F,
+ 17433: 0x82C4,
+ 17434: 0x82CE,
+ 17435: 0x82A4,
+ 17436: 0x82E1,
+ 17437: 0x8309,
+ 17438: 0x82F7,
+ 17439: 0x82E4,
+ 17440: 0x830F,
+ 17441: 0x8307,
+ 17442: 0x82DC,
+ 17443: 0x82F4,
+ 17444: 0x82D2,
+ 17445: 0x82D8,
+ 17446: 0x830C,
+ 17447: 0x82FB,
+ 17448: 0x82D3,
+ 17449: 0x8311,
+ 17450: 0x831A,
+ 17451: 0x8306,
+ 17452: 0x8314,
+ 17453: 0x8315,
+ 17454: 0x82E0,
+ 17455: 0x82D5,
+ 17456: 0x831C,
+ 17457: 0x8351,
+ 17458: 0x835B,
+ 17459: 0x835C,
+ 17460: 0x8308,
+ 17461: 0x8392,
+ 17462: 0x833C,
+ 17463: 0x8334,
+ 17464: 0x8331,
+ 17465: 0x839B,
+ 17466: 0x835E,
+ 17467: 0x832F,
+ 17468: 0x834F,
+ 17469: 0x8347,
+ 17470: 0x8343,
+ 17471: 0x835F,
+ 17472: 0x8340,
+ 17473: 0x8317,
+ 17474: 0x8360,
+ 17475: 0x832D,
+ 17476: 0x833A,
+ 17477: 0x8333,
+ 17478: 0x8366,
+ 17479: 0x8365,
+ 17480: 0x8EE5,
+ 17481: 0x8EE6,
+ 17482: 0x8EE7,
+ 17483: 0x8EE8,
+ 17484: 0x8EE9,
+ 17485: 0x8EEA,
+ 17486: 0x8EEB,
+ 17487: 0x8EEC,
+ 17488: 0x8EED,
+ 17489: 0x8EEE,
+ 17490: 0x8EEF,
+ 17491: 0x8EF0,
+ 17492: 0x8EF1,
+ 17493: 0x8EF2,
+ 17494: 0x8EF3,
+ 17495: 0x8EF4,
+ 17496: 0x8EF5,
+ 17497: 0x8EF6,
+ 17498: 0x8EF7,
+ 17499: 0x8EF8,
+ 17500: 0x8EF9,
+ 17501: 0x8EFA,
+ 17502: 0x8EFB,
+ 17503: 0x8EFC,
+ 17504: 0x8EFD,
+ 17505: 0x8EFE,
+ 17506: 0x8EFF,
+ 17507: 0x8F00,
+ 17508: 0x8F01,
+ 17509: 0x8F02,
+ 17510: 0x8F03,
+ 17511: 0x8F04,
+ 17512: 0x8F05,
+ 17513: 0x8F06,
+ 17514: 0x8F07,
+ 17515: 0x8F08,
+ 17516: 0x8F09,
+ 17517: 0x8F0A,
+ 17518: 0x8F0B,
+ 17519: 0x8F0C,
+ 17520: 0x8F0D,
+ 17521: 0x8F0E,
+ 17522: 0x8F0F,
+ 17523: 0x8F10,
+ 17524: 0x8F11,
+ 17525: 0x8F12,
+ 17526: 0x8F13,
+ 17527: 0x8F14,
+ 17528: 0x8F15,
+ 17529: 0x8F16,
+ 17530: 0x8F17,
+ 17531: 0x8F18,
+ 17532: 0x8F19,
+ 17533: 0x8F1A,
+ 17534: 0x8F1B,
+ 17535: 0x8F1C,
+ 17536: 0x8F1D,
+ 17537: 0x8F1E,
+ 17538: 0x8F1F,
+ 17539: 0x8F20,
+ 17540: 0x8F21,
+ 17541: 0x8F22,
+ 17542: 0x8F23,
+ 17543: 0x8F24,
+ 17544: 0x8F25,
+ 17545: 0x8F26,
+ 17546: 0x8F27,
+ 17547: 0x8F28,
+ 17548: 0x8F29,
+ 17549: 0x8F2A,
+ 17550: 0x8F2B,
+ 17551: 0x8F2C,
+ 17552: 0x8F2D,
+ 17553: 0x8F2E,
+ 17554: 0x8F2F,
+ 17555: 0x8F30,
+ 17556: 0x8F31,
+ 17557: 0x8F32,
+ 17558: 0x8F33,
+ 17559: 0x8F34,
+ 17560: 0x8F35,
+ 17561: 0x8F36,
+ 17562: 0x8F37,
+ 17563: 0x8F38,
+ 17564: 0x8F39,
+ 17565: 0x8F3A,
+ 17566: 0x8F3B,
+ 17567: 0x8F3C,
+ 17568: 0x8F3D,
+ 17569: 0x8F3E,
+ 17570: 0x8F3F,
+ 17571: 0x8F40,
+ 17572: 0x8F41,
+ 17573: 0x8F42,
+ 17574: 0x8F43,
+ 17575: 0x8F44,
+ 17576: 0x8368,
+ 17577: 0x831B,
+ 17578: 0x8369,
+ 17579: 0x836C,
+ 17580: 0x836A,
+ 17581: 0x836D,
+ 17582: 0x836E,
+ 17583: 0x83B0,
+ 17584: 0x8378,
+ 17585: 0x83B3,
+ 17586: 0x83B4,
+ 17587: 0x83A0,
+ 17588: 0x83AA,
+ 17589: 0x8393,
+ 17590: 0x839C,
+ 17591: 0x8385,
+ 17592: 0x837C,
+ 17593: 0x83B6,
+ 17594: 0x83A9,
+ 17595: 0x837D,
+ 17596: 0x83B8,
+ 17597: 0x837B,
+ 17598: 0x8398,
+ 17599: 0x839E,
+ 17600: 0x83A8,
+ 17601: 0x83BA,
+ 17602: 0x83BC,
+ 17603: 0x83C1,
+ 17604: 0x8401,
+ 17605: 0x83E5,
+ 17606: 0x83D8,
+ 17607: 0x5807,
+ 17608: 0x8418,
+ 17609: 0x840B,
+ 17610: 0x83DD,
+ 17611: 0x83FD,
+ 17612: 0x83D6,
+ 17613: 0x841C,
+ 17614: 0x8438,
+ 17615: 0x8411,
+ 17616: 0x8406,
+ 17617: 0x83D4,
+ 17618: 0x83DF,
+ 17619: 0x840F,
+ 17620: 0x8403,
+ 17621: 0x83F8,
+ 17622: 0x83F9,
+ 17623: 0x83EA,
+ 17624: 0x83C5,
+ 17625: 0x83C0,
+ 17626: 0x8426,
+ 17627: 0x83F0,
+ 17628: 0x83E1,
+ 17629: 0x845C,
+ 17630: 0x8451,
+ 17631: 0x845A,
+ 17632: 0x8459,
+ 17633: 0x8473,
+ 17634: 0x8487,
+ 17635: 0x8488,
+ 17636: 0x847A,
+ 17637: 0x8489,
+ 17638: 0x8478,
+ 17639: 0x843C,
+ 17640: 0x8446,
+ 17641: 0x8469,
+ 17642: 0x8476,
+ 17643: 0x848C,
+ 17644: 0x848E,
+ 17645: 0x8431,
+ 17646: 0x846D,
+ 17647: 0x84C1,
+ 17648: 0x84CD,
+ 17649: 0x84D0,
+ 17650: 0x84E6,
+ 17651: 0x84BD,
+ 17652: 0x84D3,
+ 17653: 0x84CA,
+ 17654: 0x84BF,
+ 17655: 0x84BA,
+ 17656: 0x84E0,
+ 17657: 0x84A1,
+ 17658: 0x84B9,
+ 17659: 0x84B4,
+ 17660: 0x8497,
+ 17661: 0x84E5,
+ 17662: 0x84E3,
+ 17663: 0x850C,
+ 17664: 0x750D,
+ 17665: 0x8538,
+ 17666: 0x84F0,
+ 17667: 0x8539,
+ 17668: 0x851F,
+ 17669: 0x853A,
+ 17670: 0x8F45,
+ 17671: 0x8F46,
+ 17672: 0x8F47,
+ 17673: 0x8F48,
+ 17674: 0x8F49,
+ 17675: 0x8F4A,
+ 17676: 0x8F4B,
+ 17677: 0x8F4C,
+ 17678: 0x8F4D,
+ 17679: 0x8F4E,
+ 17680: 0x8F4F,
+ 17681: 0x8F50,
+ 17682: 0x8F51,
+ 17683: 0x8F52,
+ 17684: 0x8F53,
+ 17685: 0x8F54,
+ 17686: 0x8F55,
+ 17687: 0x8F56,
+ 17688: 0x8F57,
+ 17689: 0x8F58,
+ 17690: 0x8F59,
+ 17691: 0x8F5A,
+ 17692: 0x8F5B,
+ 17693: 0x8F5C,
+ 17694: 0x8F5D,
+ 17695: 0x8F5E,
+ 17696: 0x8F5F,
+ 17697: 0x8F60,
+ 17698: 0x8F61,
+ 17699: 0x8F62,
+ 17700: 0x8F63,
+ 17701: 0x8F64,
+ 17702: 0x8F65,
+ 17703: 0x8F6A,
+ 17704: 0x8F80,
+ 17705: 0x8F8C,
+ 17706: 0x8F92,
+ 17707: 0x8F9D,
+ 17708: 0x8FA0,
+ 17709: 0x8FA1,
+ 17710: 0x8FA2,
+ 17711: 0x8FA4,
+ 17712: 0x8FA5,
+ 17713: 0x8FA6,
+ 17714: 0x8FA7,
+ 17715: 0x8FAA,
+ 17716: 0x8FAC,
+ 17717: 0x8FAD,
+ 17718: 0x8FAE,
+ 17719: 0x8FAF,
+ 17720: 0x8FB2,
+ 17721: 0x8FB3,
+ 17722: 0x8FB4,
+ 17723: 0x8FB5,
+ 17724: 0x8FB7,
+ 17725: 0x8FB8,
+ 17726: 0x8FBA,
+ 17727: 0x8FBB,
+ 17728: 0x8FBC,
+ 17729: 0x8FBF,
+ 17730: 0x8FC0,
+ 17731: 0x8FC3,
+ 17732: 0x8FC6,
+ 17733: 0x8FC9,
+ 17734: 0x8FCA,
+ 17735: 0x8FCB,
+ 17736: 0x8FCC,
+ 17737: 0x8FCD,
+ 17738: 0x8FCF,
+ 17739: 0x8FD2,
+ 17740: 0x8FD6,
+ 17741: 0x8FD7,
+ 17742: 0x8FDA,
+ 17743: 0x8FE0,
+ 17744: 0x8FE1,
+ 17745: 0x8FE3,
+ 17746: 0x8FE7,
+ 17747: 0x8FEC,
+ 17748: 0x8FEF,
+ 17749: 0x8FF1,
+ 17750: 0x8FF2,
+ 17751: 0x8FF4,
+ 17752: 0x8FF5,
+ 17753: 0x8FF6,
+ 17754: 0x8FFA,
+ 17755: 0x8FFB,
+ 17756: 0x8FFC,
+ 17757: 0x8FFE,
+ 17758: 0x8FFF,
+ 17759: 0x9007,
+ 17760: 0x9008,
+ 17761: 0x900C,
+ 17762: 0x900E,
+ 17763: 0x9013,
+ 17764: 0x9015,
+ 17765: 0x9018,
+ 17766: 0x8556,
+ 17767: 0x853B,
+ 17768: 0x84FF,
+ 17769: 0x84FC,
+ 17770: 0x8559,
+ 17771: 0x8548,
+ 17772: 0x8568,
+ 17773: 0x8564,
+ 17774: 0x855E,
+ 17775: 0x857A,
+ 17776: 0x77A2,
+ 17777: 0x8543,
+ 17778: 0x8572,
+ 17779: 0x857B,
+ 17780: 0x85A4,
+ 17781: 0x85A8,
+ 17782: 0x8587,
+ 17783: 0x858F,
+ 17784: 0x8579,
+ 17785: 0x85AE,
+ 17786: 0x859C,
+ 17787: 0x8585,
+ 17788: 0x85B9,
+ 17789: 0x85B7,
+ 17790: 0x85B0,
+ 17791: 0x85D3,
+ 17792: 0x85C1,
+ 17793: 0x85DC,
+ 17794: 0x85FF,
+ 17795: 0x8627,
+ 17796: 0x8605,
+ 17797: 0x8629,
+ 17798: 0x8616,
+ 17799: 0x863C,
+ 17800: 0x5EFE,
+ 17801: 0x5F08,
+ 17802: 0x593C,
+ 17803: 0x5941,
+ 17804: 0x8037,
+ 17805: 0x5955,
+ 17806: 0x595A,
+ 17807: 0x5958,
+ 17808: 0x530F,
+ 17809: 0x5C22,
+ 17810: 0x5C25,
+ 17811: 0x5C2C,
+ 17812: 0x5C34,
+ 17813: 0x624C,
+ 17814: 0x626A,
+ 17815: 0x629F,
+ 17816: 0x62BB,
+ 17817: 0x62CA,
+ 17818: 0x62DA,
+ 17819: 0x62D7,
+ 17820: 0x62EE,
+ 17821: 0x6322,
+ 17822: 0x62F6,
+ 17823: 0x6339,
+ 17824: 0x634B,
+ 17825: 0x6343,
+ 17826: 0x63AD,
+ 17827: 0x63F6,
+ 17828: 0x6371,
+ 17829: 0x637A,
+ 17830: 0x638E,
+ 17831: 0x63B4,
+ 17832: 0x636D,
+ 17833: 0x63AC,
+ 17834: 0x638A,
+ 17835: 0x6369,
+ 17836: 0x63AE,
+ 17837: 0x63BC,
+ 17838: 0x63F2,
+ 17839: 0x63F8,
+ 17840: 0x63E0,
+ 17841: 0x63FF,
+ 17842: 0x63C4,
+ 17843: 0x63DE,
+ 17844: 0x63CE,
+ 17845: 0x6452,
+ 17846: 0x63C6,
+ 17847: 0x63BE,
+ 17848: 0x6445,
+ 17849: 0x6441,
+ 17850: 0x640B,
+ 17851: 0x641B,
+ 17852: 0x6420,
+ 17853: 0x640C,
+ 17854: 0x6426,
+ 17855: 0x6421,
+ 17856: 0x645E,
+ 17857: 0x6484,
+ 17858: 0x646D,
+ 17859: 0x6496,
+ 17860: 0x9019,
+ 17861: 0x901C,
+ 17862: 0x9023,
+ 17863: 0x9024,
+ 17864: 0x9025,
+ 17865: 0x9027,
+ 17866: 0x9028,
+ 17867: 0x9029,
+ 17868: 0x902A,
+ 17869: 0x902B,
+ 17870: 0x902C,
+ 17871: 0x9030,
+ 17872: 0x9031,
+ 17873: 0x9032,
+ 17874: 0x9033,
+ 17875: 0x9034,
+ 17876: 0x9037,
+ 17877: 0x9039,
+ 17878: 0x903A,
+ 17879: 0x903D,
+ 17880: 0x903F,
+ 17881: 0x9040,
+ 17882: 0x9043,
+ 17883: 0x9045,
+ 17884: 0x9046,
+ 17885: 0x9048,
+ 17886: 0x9049,
+ 17887: 0x904A,
+ 17888: 0x904B,
+ 17889: 0x904C,
+ 17890: 0x904E,
+ 17891: 0x9054,
+ 17892: 0x9055,
+ 17893: 0x9056,
+ 17894: 0x9059,
+ 17895: 0x905A,
+ 17896: 0x905C,
+ 17897: 0x905D,
+ 17898: 0x905E,
+ 17899: 0x905F,
+ 17900: 0x9060,
+ 17901: 0x9061,
+ 17902: 0x9064,
+ 17903: 0x9066,
+ 17904: 0x9067,
+ 17905: 0x9069,
+ 17906: 0x906A,
+ 17907: 0x906B,
+ 17908: 0x906C,
+ 17909: 0x906F,
+ 17910: 0x9070,
+ 17911: 0x9071,
+ 17912: 0x9072,
+ 17913: 0x9073,
+ 17914: 0x9076,
+ 17915: 0x9077,
+ 17916: 0x9078,
+ 17917: 0x9079,
+ 17918: 0x907A,
+ 17919: 0x907B,
+ 17920: 0x907C,
+ 17921: 0x907E,
+ 17922: 0x9081,
+ 17923: 0x9084,
+ 17924: 0x9085,
+ 17925: 0x9086,
+ 17926: 0x9087,
+ 17927: 0x9089,
+ 17928: 0x908A,
+ 17929: 0x908C,
+ 17930: 0x908D,
+ 17931: 0x908E,
+ 17932: 0x908F,
+ 17933: 0x9090,
+ 17934: 0x9092,
+ 17935: 0x9094,
+ 17936: 0x9096,
+ 17937: 0x9098,
+ 17938: 0x909A,
+ 17939: 0x909C,
+ 17940: 0x909E,
+ 17941: 0x909F,
+ 17942: 0x90A0,
+ 17943: 0x90A4,
+ 17944: 0x90A5,
+ 17945: 0x90A7,
+ 17946: 0x90A8,
+ 17947: 0x90A9,
+ 17948: 0x90AB,
+ 17949: 0x90AD,
+ 17950: 0x90B2,
+ 17951: 0x90B7,
+ 17952: 0x90BC,
+ 17953: 0x90BD,
+ 17954: 0x90BF,
+ 17955: 0x90C0,
+ 17956: 0x647A,
+ 17957: 0x64B7,
+ 17958: 0x64B8,
+ 17959: 0x6499,
+ 17960: 0x64BA,
+ 17961: 0x64C0,
+ 17962: 0x64D0,
+ 17963: 0x64D7,
+ 17964: 0x64E4,
+ 17965: 0x64E2,
+ 17966: 0x6509,
+ 17967: 0x6525,
+ 17968: 0x652E,
+ 17969: 0x5F0B,
+ 17970: 0x5FD2,
+ 17971: 0x7519,
+ 17972: 0x5F11,
+ 17973: 0x535F,
+ 17974: 0x53F1,
+ 17975: 0x53FD,
+ 17976: 0x53E9,
+ 17977: 0x53E8,
+ 17978: 0x53FB,
+ 17979: 0x5412,
+ 17980: 0x5416,
+ 17981: 0x5406,
+ 17982: 0x544B,
+ 17983: 0x5452,
+ 17984: 0x5453,
+ 17985: 0x5454,
+ 17986: 0x5456,
+ 17987: 0x5443,
+ 17988: 0x5421,
+ 17989: 0x5457,
+ 17990: 0x5459,
+ 17991: 0x5423,
+ 17992: 0x5432,
+ 17993: 0x5482,
+ 17994: 0x5494,
+ 17995: 0x5477,
+ 17996: 0x5471,
+ 17997: 0x5464,
+ 17998: 0x549A,
+ 17999: 0x549B,
+ 18000: 0x5484,
+ 18001: 0x5476,
+ 18002: 0x5466,
+ 18003: 0x549D,
+ 18004: 0x54D0,
+ 18005: 0x54AD,
+ 18006: 0x54C2,
+ 18007: 0x54B4,
+ 18008: 0x54D2,
+ 18009: 0x54A7,
+ 18010: 0x54A6,
+ 18011: 0x54D3,
+ 18012: 0x54D4,
+ 18013: 0x5472,
+ 18014: 0x54A3,
+ 18015: 0x54D5,
+ 18016: 0x54BB,
+ 18017: 0x54BF,
+ 18018: 0x54CC,
+ 18019: 0x54D9,
+ 18020: 0x54DA,
+ 18021: 0x54DC,
+ 18022: 0x54A9,
+ 18023: 0x54AA,
+ 18024: 0x54A4,
+ 18025: 0x54DD,
+ 18026: 0x54CF,
+ 18027: 0x54DE,
+ 18028: 0x551B,
+ 18029: 0x54E7,
+ 18030: 0x5520,
+ 18031: 0x54FD,
+ 18032: 0x5514,
+ 18033: 0x54F3,
+ 18034: 0x5522,
+ 18035: 0x5523,
+ 18036: 0x550F,
+ 18037: 0x5511,
+ 18038: 0x5527,
+ 18039: 0x552A,
+ 18040: 0x5567,
+ 18041: 0x558F,
+ 18042: 0x55B5,
+ 18043: 0x5549,
+ 18044: 0x556D,
+ 18045: 0x5541,
+ 18046: 0x5555,
+ 18047: 0x553F,
+ 18048: 0x5550,
+ 18049: 0x553C,
+ 18050: 0x90C2,
+ 18051: 0x90C3,
+ 18052: 0x90C6,
+ 18053: 0x90C8,
+ 18054: 0x90C9,
+ 18055: 0x90CB,
+ 18056: 0x90CC,
+ 18057: 0x90CD,
+ 18058: 0x90D2,
+ 18059: 0x90D4,
+ 18060: 0x90D5,
+ 18061: 0x90D6,
+ 18062: 0x90D8,
+ 18063: 0x90D9,
+ 18064: 0x90DA,
+ 18065: 0x90DE,
+ 18066: 0x90DF,
+ 18067: 0x90E0,
+ 18068: 0x90E3,
+ 18069: 0x90E4,
+ 18070: 0x90E5,
+ 18071: 0x90E9,
+ 18072: 0x90EA,
+ 18073: 0x90EC,
+ 18074: 0x90EE,
+ 18075: 0x90F0,
+ 18076: 0x90F1,
+ 18077: 0x90F2,
+ 18078: 0x90F3,
+ 18079: 0x90F5,
+ 18080: 0x90F6,
+ 18081: 0x90F7,
+ 18082: 0x90F9,
+ 18083: 0x90FA,
+ 18084: 0x90FB,
+ 18085: 0x90FC,
+ 18086: 0x90FF,
+ 18087: 0x9100,
+ 18088: 0x9101,
+ 18089: 0x9103,
+ 18090: 0x9105,
+ 18091: 0x9106,
+ 18092: 0x9107,
+ 18093: 0x9108,
+ 18094: 0x9109,
+ 18095: 0x910A,
+ 18096: 0x910B,
+ 18097: 0x910C,
+ 18098: 0x910D,
+ 18099: 0x910E,
+ 18100: 0x910F,
+ 18101: 0x9110,
+ 18102: 0x9111,
+ 18103: 0x9112,
+ 18104: 0x9113,
+ 18105: 0x9114,
+ 18106: 0x9115,
+ 18107: 0x9116,
+ 18108: 0x9117,
+ 18109: 0x9118,
+ 18110: 0x911A,
+ 18111: 0x911B,
+ 18112: 0x911C,
+ 18113: 0x911D,
+ 18114: 0x911F,
+ 18115: 0x9120,
+ 18116: 0x9121,
+ 18117: 0x9124,
+ 18118: 0x9125,
+ 18119: 0x9126,
+ 18120: 0x9127,
+ 18121: 0x9128,
+ 18122: 0x9129,
+ 18123: 0x912A,
+ 18124: 0x912B,
+ 18125: 0x912C,
+ 18126: 0x912D,
+ 18127: 0x912E,
+ 18128: 0x9130,
+ 18129: 0x9132,
+ 18130: 0x9133,
+ 18131: 0x9134,
+ 18132: 0x9135,
+ 18133: 0x9136,
+ 18134: 0x9137,
+ 18135: 0x9138,
+ 18136: 0x913A,
+ 18137: 0x913B,
+ 18138: 0x913C,
+ 18139: 0x913D,
+ 18140: 0x913E,
+ 18141: 0x913F,
+ 18142: 0x9140,
+ 18143: 0x9141,
+ 18144: 0x9142,
+ 18145: 0x9144,
+ 18146: 0x5537,
+ 18147: 0x5556,
+ 18148: 0x5575,
+ 18149: 0x5576,
+ 18150: 0x5577,
+ 18151: 0x5533,
+ 18152: 0x5530,
+ 18153: 0x555C,
+ 18154: 0x558B,
+ 18155: 0x55D2,
+ 18156: 0x5583,
+ 18157: 0x55B1,
+ 18158: 0x55B9,
+ 18159: 0x5588,
+ 18160: 0x5581,
+ 18161: 0x559F,
+ 18162: 0x557E,
+ 18163: 0x55D6,
+ 18164: 0x5591,
+ 18165: 0x557B,
+ 18166: 0x55DF,
+ 18167: 0x55BD,
+ 18168: 0x55BE,
+ 18169: 0x5594,
+ 18170: 0x5599,
+ 18171: 0x55EA,
+ 18172: 0x55F7,
+ 18173: 0x55C9,
+ 18174: 0x561F,
+ 18175: 0x55D1,
+ 18176: 0x55EB,
+ 18177: 0x55EC,
+ 18178: 0x55D4,
+ 18179: 0x55E6,
+ 18180: 0x55DD,
+ 18181: 0x55C4,
+ 18182: 0x55EF,
+ 18183: 0x55E5,
+ 18184: 0x55F2,
+ 18185: 0x55F3,
+ 18186: 0x55CC,
+ 18187: 0x55CD,
+ 18188: 0x55E8,
+ 18189: 0x55F5,
+ 18190: 0x55E4,
+ 18191: 0x8F94,
+ 18192: 0x561E,
+ 18193: 0x5608,
+ 18194: 0x560C,
+ 18195: 0x5601,
+ 18196: 0x5624,
+ 18197: 0x5623,
+ 18198: 0x55FE,
+ 18199: 0x5600,
+ 18200: 0x5627,
+ 18201: 0x562D,
+ 18202: 0x5658,
+ 18203: 0x5639,
+ 18204: 0x5657,
+ 18205: 0x562C,
+ 18206: 0x564D,
+ 18207: 0x5662,
+ 18208: 0x5659,
+ 18209: 0x565C,
+ 18210: 0x564C,
+ 18211: 0x5654,
+ 18212: 0x5686,
+ 18213: 0x5664,
+ 18214: 0x5671,
+ 18215: 0x566B,
+ 18216: 0x567B,
+ 18217: 0x567C,
+ 18218: 0x5685,
+ 18219: 0x5693,
+ 18220: 0x56AF,
+ 18221: 0x56D4,
+ 18222: 0x56D7,
+ 18223: 0x56DD,
+ 18224: 0x56E1,
+ 18225: 0x56F5,
+ 18226: 0x56EB,
+ 18227: 0x56F9,
+ 18228: 0x56FF,
+ 18229: 0x5704,
+ 18230: 0x570A,
+ 18231: 0x5709,
+ 18232: 0x571C,
+ 18233: 0x5E0F,
+ 18234: 0x5E19,
+ 18235: 0x5E14,
+ 18236: 0x5E11,
+ 18237: 0x5E31,
+ 18238: 0x5E3B,
+ 18239: 0x5E3C,
+ 18240: 0x9145,
+ 18241: 0x9147,
+ 18242: 0x9148,
+ 18243: 0x9151,
+ 18244: 0x9153,
+ 18245: 0x9154,
+ 18246: 0x9155,
+ 18247: 0x9156,
+ 18248: 0x9158,
+ 18249: 0x9159,
+ 18250: 0x915B,
+ 18251: 0x915C,
+ 18252: 0x915F,
+ 18253: 0x9160,
+ 18254: 0x9166,
+ 18255: 0x9167,
+ 18256: 0x9168,
+ 18257: 0x916B,
+ 18258: 0x916D,
+ 18259: 0x9173,
+ 18260: 0x917A,
+ 18261: 0x917B,
+ 18262: 0x917C,
+ 18263: 0x9180,
+ 18264: 0x9181,
+ 18265: 0x9182,
+ 18266: 0x9183,
+ 18267: 0x9184,
+ 18268: 0x9186,
+ 18269: 0x9188,
+ 18270: 0x918A,
+ 18271: 0x918E,
+ 18272: 0x918F,
+ 18273: 0x9193,
+ 18274: 0x9194,
+ 18275: 0x9195,
+ 18276: 0x9196,
+ 18277: 0x9197,
+ 18278: 0x9198,
+ 18279: 0x9199,
+ 18280: 0x919C,
+ 18281: 0x919D,
+ 18282: 0x919E,
+ 18283: 0x919F,
+ 18284: 0x91A0,
+ 18285: 0x91A1,
+ 18286: 0x91A4,
+ 18287: 0x91A5,
+ 18288: 0x91A6,
+ 18289: 0x91A7,
+ 18290: 0x91A8,
+ 18291: 0x91A9,
+ 18292: 0x91AB,
+ 18293: 0x91AC,
+ 18294: 0x91B0,
+ 18295: 0x91B1,
+ 18296: 0x91B2,
+ 18297: 0x91B3,
+ 18298: 0x91B6,
+ 18299: 0x91B7,
+ 18300: 0x91B8,
+ 18301: 0x91B9,
+ 18302: 0x91BB,
+ 18303: 0x91BC,
+ 18304: 0x91BD,
+ 18305: 0x91BE,
+ 18306: 0x91BF,
+ 18307: 0x91C0,
+ 18308: 0x91C1,
+ 18309: 0x91C2,
+ 18310: 0x91C3,
+ 18311: 0x91C4,
+ 18312: 0x91C5,
+ 18313: 0x91C6,
+ 18314: 0x91C8,
+ 18315: 0x91CB,
+ 18316: 0x91D0,
+ 18317: 0x91D2,
+ 18318: 0x91D3,
+ 18319: 0x91D4,
+ 18320: 0x91D5,
+ 18321: 0x91D6,
+ 18322: 0x91D7,
+ 18323: 0x91D8,
+ 18324: 0x91D9,
+ 18325: 0x91DA,
+ 18326: 0x91DB,
+ 18327: 0x91DD,
+ 18328: 0x91DE,
+ 18329: 0x91DF,
+ 18330: 0x91E0,
+ 18331: 0x91E1,
+ 18332: 0x91E2,
+ 18333: 0x91E3,
+ 18334: 0x91E4,
+ 18335: 0x91E5,
+ 18336: 0x5E37,
+ 18337: 0x5E44,
+ 18338: 0x5E54,
+ 18339: 0x5E5B,
+ 18340: 0x5E5E,
+ 18341: 0x5E61,
+ 18342: 0x5C8C,
+ 18343: 0x5C7A,
+ 18344: 0x5C8D,
+ 18345: 0x5C90,
+ 18346: 0x5C96,
+ 18347: 0x5C88,
+ 18348: 0x5C98,
+ 18349: 0x5C99,
+ 18350: 0x5C91,
+ 18351: 0x5C9A,
+ 18352: 0x5C9C,
+ 18353: 0x5CB5,
+ 18354: 0x5CA2,
+ 18355: 0x5CBD,
+ 18356: 0x5CAC,
+ 18357: 0x5CAB,
+ 18358: 0x5CB1,
+ 18359: 0x5CA3,
+ 18360: 0x5CC1,
+ 18361: 0x5CB7,
+ 18362: 0x5CC4,
+ 18363: 0x5CD2,
+ 18364: 0x5CE4,
+ 18365: 0x5CCB,
+ 18366: 0x5CE5,
+ 18367: 0x5D02,
+ 18368: 0x5D03,
+ 18369: 0x5D27,
+ 18370: 0x5D26,
+ 18371: 0x5D2E,
+ 18372: 0x5D24,
+ 18373: 0x5D1E,
+ 18374: 0x5D06,
+ 18375: 0x5D1B,
+ 18376: 0x5D58,
+ 18377: 0x5D3E,
+ 18378: 0x5D34,
+ 18379: 0x5D3D,
+ 18380: 0x5D6C,
+ 18381: 0x5D5B,
+ 18382: 0x5D6F,
+ 18383: 0x5D5D,
+ 18384: 0x5D6B,
+ 18385: 0x5D4B,
+ 18386: 0x5D4A,
+ 18387: 0x5D69,
+ 18388: 0x5D74,
+ 18389: 0x5D82,
+ 18390: 0x5D99,
+ 18391: 0x5D9D,
+ 18392: 0x8C73,
+ 18393: 0x5DB7,
+ 18394: 0x5DC5,
+ 18395: 0x5F73,
+ 18396: 0x5F77,
+ 18397: 0x5F82,
+ 18398: 0x5F87,
+ 18399: 0x5F89,
+ 18400: 0x5F8C,
+ 18401: 0x5F95,
+ 18402: 0x5F99,
+ 18403: 0x5F9C,
+ 18404: 0x5FA8,
+ 18405: 0x5FAD,
+ 18406: 0x5FB5,
+ 18407: 0x5FBC,
+ 18408: 0x8862,
+ 18409: 0x5F61,
+ 18410: 0x72AD,
+ 18411: 0x72B0,
+ 18412: 0x72B4,
+ 18413: 0x72B7,
+ 18414: 0x72B8,
+ 18415: 0x72C3,
+ 18416: 0x72C1,
+ 18417: 0x72CE,
+ 18418: 0x72CD,
+ 18419: 0x72D2,
+ 18420: 0x72E8,
+ 18421: 0x72EF,
+ 18422: 0x72E9,
+ 18423: 0x72F2,
+ 18424: 0x72F4,
+ 18425: 0x72F7,
+ 18426: 0x7301,
+ 18427: 0x72F3,
+ 18428: 0x7303,
+ 18429: 0x72FA,
+ 18430: 0x91E6,
+ 18431: 0x91E7,
+ 18432: 0x91E8,
+ 18433: 0x91E9,
+ 18434: 0x91EA,
+ 18435: 0x91EB,
+ 18436: 0x91EC,
+ 18437: 0x91ED,
+ 18438: 0x91EE,
+ 18439: 0x91EF,
+ 18440: 0x91F0,
+ 18441: 0x91F1,
+ 18442: 0x91F2,
+ 18443: 0x91F3,
+ 18444: 0x91F4,
+ 18445: 0x91F5,
+ 18446: 0x91F6,
+ 18447: 0x91F7,
+ 18448: 0x91F8,
+ 18449: 0x91F9,
+ 18450: 0x91FA,
+ 18451: 0x91FB,
+ 18452: 0x91FC,
+ 18453: 0x91FD,
+ 18454: 0x91FE,
+ 18455: 0x91FF,
+ 18456: 0x9200,
+ 18457: 0x9201,
+ 18458: 0x9202,
+ 18459: 0x9203,
+ 18460: 0x9204,
+ 18461: 0x9205,
+ 18462: 0x9206,
+ 18463: 0x9207,
+ 18464: 0x9208,
+ 18465: 0x9209,
+ 18466: 0x920A,
+ 18467: 0x920B,
+ 18468: 0x920C,
+ 18469: 0x920D,
+ 18470: 0x920E,
+ 18471: 0x920F,
+ 18472: 0x9210,
+ 18473: 0x9211,
+ 18474: 0x9212,
+ 18475: 0x9213,
+ 18476: 0x9214,
+ 18477: 0x9215,
+ 18478: 0x9216,
+ 18479: 0x9217,
+ 18480: 0x9218,
+ 18481: 0x9219,
+ 18482: 0x921A,
+ 18483: 0x921B,
+ 18484: 0x921C,
+ 18485: 0x921D,
+ 18486: 0x921E,
+ 18487: 0x921F,
+ 18488: 0x9220,
+ 18489: 0x9221,
+ 18490: 0x9222,
+ 18491: 0x9223,
+ 18492: 0x9224,
+ 18493: 0x9225,
+ 18494: 0x9226,
+ 18495: 0x9227,
+ 18496: 0x9228,
+ 18497: 0x9229,
+ 18498: 0x922A,
+ 18499: 0x922B,
+ 18500: 0x922C,
+ 18501: 0x922D,
+ 18502: 0x922E,
+ 18503: 0x922F,
+ 18504: 0x9230,
+ 18505: 0x9231,
+ 18506: 0x9232,
+ 18507: 0x9233,
+ 18508: 0x9234,
+ 18509: 0x9235,
+ 18510: 0x9236,
+ 18511: 0x9237,
+ 18512: 0x9238,
+ 18513: 0x9239,
+ 18514: 0x923A,
+ 18515: 0x923B,
+ 18516: 0x923C,
+ 18517: 0x923D,
+ 18518: 0x923E,
+ 18519: 0x923F,
+ 18520: 0x9240,
+ 18521: 0x9241,
+ 18522: 0x9242,
+ 18523: 0x9243,
+ 18524: 0x9244,
+ 18525: 0x9245,
+ 18526: 0x72FB,
+ 18527: 0x7317,
+ 18528: 0x7313,
+ 18529: 0x7321,
+ 18530: 0x730A,
+ 18531: 0x731E,
+ 18532: 0x731D,
+ 18533: 0x7315,
+ 18534: 0x7322,
+ 18535: 0x7339,
+ 18536: 0x7325,
+ 18537: 0x732C,
+ 18538: 0x7338,
+ 18539: 0x7331,
+ 18540: 0x7350,
+ 18541: 0x734D,
+ 18542: 0x7357,
+ 18543: 0x7360,
+ 18544: 0x736C,
+ 18545: 0x736F,
+ 18546: 0x737E,
+ 18547: 0x821B,
+ 18548: 0x5925,
+ 18549: 0x98E7,
+ 18550: 0x5924,
+ 18551: 0x5902,
+ 18552: 0x9963,
+ 18553: 0x9967,
+ 18554: 0x9968,
+ 18555: 0x9969,
+ 18556: 0x996A,
+ 18557: 0x996B,
+ 18558: 0x996C,
+ 18559: 0x9974,
+ 18560: 0x9977,
+ 18561: 0x997D,
+ 18562: 0x9980,
+ 18563: 0x9984,
+ 18564: 0x9987,
+ 18565: 0x998A,
+ 18566: 0x998D,
+ 18567: 0x9990,
+ 18568: 0x9991,
+ 18569: 0x9993,
+ 18570: 0x9994,
+ 18571: 0x9995,
+ 18572: 0x5E80,
+ 18573: 0x5E91,
+ 18574: 0x5E8B,
+ 18575: 0x5E96,
+ 18576: 0x5EA5,
+ 18577: 0x5EA0,
+ 18578: 0x5EB9,
+ 18579: 0x5EB5,
+ 18580: 0x5EBE,
+ 18581: 0x5EB3,
+ 18582: 0x8D53,
+ 18583: 0x5ED2,
+ 18584: 0x5ED1,
+ 18585: 0x5EDB,
+ 18586: 0x5EE8,
+ 18587: 0x5EEA,
+ 18588: 0x81BA,
+ 18589: 0x5FC4,
+ 18590: 0x5FC9,
+ 18591: 0x5FD6,
+ 18592: 0x5FCF,
+ 18593: 0x6003,
+ 18594: 0x5FEE,
+ 18595: 0x6004,
+ 18596: 0x5FE1,
+ 18597: 0x5FE4,
+ 18598: 0x5FFE,
+ 18599: 0x6005,
+ 18600: 0x6006,
+ 18601: 0x5FEA,
+ 18602: 0x5FED,
+ 18603: 0x5FF8,
+ 18604: 0x6019,
+ 18605: 0x6035,
+ 18606: 0x6026,
+ 18607: 0x601B,
+ 18608: 0x600F,
+ 18609: 0x600D,
+ 18610: 0x6029,
+ 18611: 0x602B,
+ 18612: 0x600A,
+ 18613: 0x603F,
+ 18614: 0x6021,
+ 18615: 0x6078,
+ 18616: 0x6079,
+ 18617: 0x607B,
+ 18618: 0x607A,
+ 18619: 0x6042,
+ 18620: 0x9246,
+ 18621: 0x9247,
+ 18622: 0x9248,
+ 18623: 0x9249,
+ 18624: 0x924A,
+ 18625: 0x924B,
+ 18626: 0x924C,
+ 18627: 0x924D,
+ 18628: 0x924E,
+ 18629: 0x924F,
+ 18630: 0x9250,
+ 18631: 0x9251,
+ 18632: 0x9252,
+ 18633: 0x9253,
+ 18634: 0x9254,
+ 18635: 0x9255,
+ 18636: 0x9256,
+ 18637: 0x9257,
+ 18638: 0x9258,
+ 18639: 0x9259,
+ 18640: 0x925A,
+ 18641: 0x925B,
+ 18642: 0x925C,
+ 18643: 0x925D,
+ 18644: 0x925E,
+ 18645: 0x925F,
+ 18646: 0x9260,
+ 18647: 0x9261,
+ 18648: 0x9262,
+ 18649: 0x9263,
+ 18650: 0x9264,
+ 18651: 0x9265,
+ 18652: 0x9266,
+ 18653: 0x9267,
+ 18654: 0x9268,
+ 18655: 0x9269,
+ 18656: 0x926A,
+ 18657: 0x926B,
+ 18658: 0x926C,
+ 18659: 0x926D,
+ 18660: 0x926E,
+ 18661: 0x926F,
+ 18662: 0x9270,
+ 18663: 0x9271,
+ 18664: 0x9272,
+ 18665: 0x9273,
+ 18666: 0x9275,
+ 18667: 0x9276,
+ 18668: 0x9277,
+ 18669: 0x9278,
+ 18670: 0x9279,
+ 18671: 0x927A,
+ 18672: 0x927B,
+ 18673: 0x927C,
+ 18674: 0x927D,
+ 18675: 0x927E,
+ 18676: 0x927F,
+ 18677: 0x9280,
+ 18678: 0x9281,
+ 18679: 0x9282,
+ 18680: 0x9283,
+ 18681: 0x9284,
+ 18682: 0x9285,
+ 18683: 0x9286,
+ 18684: 0x9287,
+ 18685: 0x9288,
+ 18686: 0x9289,
+ 18687: 0x928A,
+ 18688: 0x928B,
+ 18689: 0x928C,
+ 18690: 0x928D,
+ 18691: 0x928F,
+ 18692: 0x9290,
+ 18693: 0x9291,
+ 18694: 0x9292,
+ 18695: 0x9293,
+ 18696: 0x9294,
+ 18697: 0x9295,
+ 18698: 0x9296,
+ 18699: 0x9297,
+ 18700: 0x9298,
+ 18701: 0x9299,
+ 18702: 0x929A,
+ 18703: 0x929B,
+ 18704: 0x929C,
+ 18705: 0x929D,
+ 18706: 0x929E,
+ 18707: 0x929F,
+ 18708: 0x92A0,
+ 18709: 0x92A1,
+ 18710: 0x92A2,
+ 18711: 0x92A3,
+ 18712: 0x92A4,
+ 18713: 0x92A5,
+ 18714: 0x92A6,
+ 18715: 0x92A7,
+ 18716: 0x606A,
+ 18717: 0x607D,
+ 18718: 0x6096,
+ 18719: 0x609A,
+ 18720: 0x60AD,
+ 18721: 0x609D,
+ 18722: 0x6083,
+ 18723: 0x6092,
+ 18724: 0x608C,
+ 18725: 0x609B,
+ 18726: 0x60EC,
+ 18727: 0x60BB,
+ 18728: 0x60B1,
+ 18729: 0x60DD,
+ 18730: 0x60D8,
+ 18731: 0x60C6,
+ 18732: 0x60DA,
+ 18733: 0x60B4,
+ 18734: 0x6120,
+ 18735: 0x6126,
+ 18736: 0x6115,
+ 18737: 0x6123,
+ 18738: 0x60F4,
+ 18739: 0x6100,
+ 18740: 0x610E,
+ 18741: 0x612B,
+ 18742: 0x614A,
+ 18743: 0x6175,
+ 18744: 0x61AC,
+ 18745: 0x6194,
+ 18746: 0x61A7,
+ 18747: 0x61B7,
+ 18748: 0x61D4,
+ 18749: 0x61F5,
+ 18750: 0x5FDD,
+ 18751: 0x96B3,
+ 18752: 0x95E9,
+ 18753: 0x95EB,
+ 18754: 0x95F1,
+ 18755: 0x95F3,
+ 18756: 0x95F5,
+ 18757: 0x95F6,
+ 18758: 0x95FC,
+ 18759: 0x95FE,
+ 18760: 0x9603,
+ 18761: 0x9604,
+ 18762: 0x9606,
+ 18763: 0x9608,
+ 18764: 0x960A,
+ 18765: 0x960B,
+ 18766: 0x960C,
+ 18767: 0x960D,
+ 18768: 0x960F,
+ 18769: 0x9612,
+ 18770: 0x9615,
+ 18771: 0x9616,
+ 18772: 0x9617,
+ 18773: 0x9619,
+ 18774: 0x961A,
+ 18775: 0x4E2C,
+ 18776: 0x723F,
+ 18777: 0x6215,
+ 18778: 0x6C35,
+ 18779: 0x6C54,
+ 18780: 0x6C5C,
+ 18781: 0x6C4A,
+ 18782: 0x6CA3,
+ 18783: 0x6C85,
+ 18784: 0x6C90,
+ 18785: 0x6C94,
+ 18786: 0x6C8C,
+ 18787: 0x6C68,
+ 18788: 0x6C69,
+ 18789: 0x6C74,
+ 18790: 0x6C76,
+ 18791: 0x6C86,
+ 18792: 0x6CA9,
+ 18793: 0x6CD0,
+ 18794: 0x6CD4,
+ 18795: 0x6CAD,
+ 18796: 0x6CF7,
+ 18797: 0x6CF8,
+ 18798: 0x6CF1,
+ 18799: 0x6CD7,
+ 18800: 0x6CB2,
+ 18801: 0x6CE0,
+ 18802: 0x6CD6,
+ 18803: 0x6CFA,
+ 18804: 0x6CEB,
+ 18805: 0x6CEE,
+ 18806: 0x6CB1,
+ 18807: 0x6CD3,
+ 18808: 0x6CEF,
+ 18809: 0x6CFE,
+ 18810: 0x92A8,
+ 18811: 0x92A9,
+ 18812: 0x92AA,
+ 18813: 0x92AB,
+ 18814: 0x92AC,
+ 18815: 0x92AD,
+ 18816: 0x92AF,
+ 18817: 0x92B0,
+ 18818: 0x92B1,
+ 18819: 0x92B2,
+ 18820: 0x92B3,
+ 18821: 0x92B4,
+ 18822: 0x92B5,
+ 18823: 0x92B6,
+ 18824: 0x92B7,
+ 18825: 0x92B8,
+ 18826: 0x92B9,
+ 18827: 0x92BA,
+ 18828: 0x92BB,
+ 18829: 0x92BC,
+ 18830: 0x92BD,
+ 18831: 0x92BE,
+ 18832: 0x92BF,
+ 18833: 0x92C0,
+ 18834: 0x92C1,
+ 18835: 0x92C2,
+ 18836: 0x92C3,
+ 18837: 0x92C4,
+ 18838: 0x92C5,
+ 18839: 0x92C6,
+ 18840: 0x92C7,
+ 18841: 0x92C9,
+ 18842: 0x92CA,
+ 18843: 0x92CB,
+ 18844: 0x92CC,
+ 18845: 0x92CD,
+ 18846: 0x92CE,
+ 18847: 0x92CF,
+ 18848: 0x92D0,
+ 18849: 0x92D1,
+ 18850: 0x92D2,
+ 18851: 0x92D3,
+ 18852: 0x92D4,
+ 18853: 0x92D5,
+ 18854: 0x92D6,
+ 18855: 0x92D7,
+ 18856: 0x92D8,
+ 18857: 0x92D9,
+ 18858: 0x92DA,
+ 18859: 0x92DB,
+ 18860: 0x92DC,
+ 18861: 0x92DD,
+ 18862: 0x92DE,
+ 18863: 0x92DF,
+ 18864: 0x92E0,
+ 18865: 0x92E1,
+ 18866: 0x92E2,
+ 18867: 0x92E3,
+ 18868: 0x92E4,
+ 18869: 0x92E5,
+ 18870: 0x92E6,
+ 18871: 0x92E7,
+ 18872: 0x92E8,
+ 18873: 0x92E9,
+ 18874: 0x92EA,
+ 18875: 0x92EB,
+ 18876: 0x92EC,
+ 18877: 0x92ED,
+ 18878: 0x92EE,
+ 18879: 0x92EF,
+ 18880: 0x92F0,
+ 18881: 0x92F1,
+ 18882: 0x92F2,
+ 18883: 0x92F3,
+ 18884: 0x92F4,
+ 18885: 0x92F5,
+ 18886: 0x92F6,
+ 18887: 0x92F7,
+ 18888: 0x92F8,
+ 18889: 0x92F9,
+ 18890: 0x92FA,
+ 18891: 0x92FB,
+ 18892: 0x92FC,
+ 18893: 0x92FD,
+ 18894: 0x92FE,
+ 18895: 0x92FF,
+ 18896: 0x9300,
+ 18897: 0x9301,
+ 18898: 0x9302,
+ 18899: 0x9303,
+ 18900: 0x9304,
+ 18901: 0x9305,
+ 18902: 0x9306,
+ 18903: 0x9307,
+ 18904: 0x9308,
+ 18905: 0x9309,
+ 18906: 0x6D39,
+ 18907: 0x6D27,
+ 18908: 0x6D0C,
+ 18909: 0x6D43,
+ 18910: 0x6D48,
+ 18911: 0x6D07,
+ 18912: 0x6D04,
+ 18913: 0x6D19,
+ 18914: 0x6D0E,
+ 18915: 0x6D2B,
+ 18916: 0x6D4D,
+ 18917: 0x6D2E,
+ 18918: 0x6D35,
+ 18919: 0x6D1A,
+ 18920: 0x6D4F,
+ 18921: 0x6D52,
+ 18922: 0x6D54,
+ 18923: 0x6D33,
+ 18924: 0x6D91,
+ 18925: 0x6D6F,
+ 18926: 0x6D9E,
+ 18927: 0x6DA0,
+ 18928: 0x6D5E,
+ 18929: 0x6D93,
+ 18930: 0x6D94,
+ 18931: 0x6D5C,
+ 18932: 0x6D60,
+ 18933: 0x6D7C,
+ 18934: 0x6D63,
+ 18935: 0x6E1A,
+ 18936: 0x6DC7,
+ 18937: 0x6DC5,
+ 18938: 0x6DDE,
+ 18939: 0x6E0E,
+ 18940: 0x6DBF,
+ 18941: 0x6DE0,
+ 18942: 0x6E11,
+ 18943: 0x6DE6,
+ 18944: 0x6DDD,
+ 18945: 0x6DD9,
+ 18946: 0x6E16,
+ 18947: 0x6DAB,
+ 18948: 0x6E0C,
+ 18949: 0x6DAE,
+ 18950: 0x6E2B,
+ 18951: 0x6E6E,
+ 18952: 0x6E4E,
+ 18953: 0x6E6B,
+ 18954: 0x6EB2,
+ 18955: 0x6E5F,
+ 18956: 0x6E86,
+ 18957: 0x6E53,
+ 18958: 0x6E54,
+ 18959: 0x6E32,
+ 18960: 0x6E25,
+ 18961: 0x6E44,
+ 18962: 0x6EDF,
+ 18963: 0x6EB1,
+ 18964: 0x6E98,
+ 18965: 0x6EE0,
+ 18966: 0x6F2D,
+ 18967: 0x6EE2,
+ 18968: 0x6EA5,
+ 18969: 0x6EA7,
+ 18970: 0x6EBD,
+ 18971: 0x6EBB,
+ 18972: 0x6EB7,
+ 18973: 0x6ED7,
+ 18974: 0x6EB4,
+ 18975: 0x6ECF,
+ 18976: 0x6E8F,
+ 18977: 0x6EC2,
+ 18978: 0x6E9F,
+ 18979: 0x6F62,
+ 18980: 0x6F46,
+ 18981: 0x6F47,
+ 18982: 0x6F24,
+ 18983: 0x6F15,
+ 18984: 0x6EF9,
+ 18985: 0x6F2F,
+ 18986: 0x6F36,
+ 18987: 0x6F4B,
+ 18988: 0x6F74,
+ 18989: 0x6F2A,
+ 18990: 0x6F09,
+ 18991: 0x6F29,
+ 18992: 0x6F89,
+ 18993: 0x6F8D,
+ 18994: 0x6F8C,
+ 18995: 0x6F78,
+ 18996: 0x6F72,
+ 18997: 0x6F7C,
+ 18998: 0x6F7A,
+ 18999: 0x6FD1,
+ 19000: 0x930A,
+ 19001: 0x930B,
+ 19002: 0x930C,
+ 19003: 0x930D,
+ 19004: 0x930E,
+ 19005: 0x930F,
+ 19006: 0x9310,
+ 19007: 0x9311,
+ 19008: 0x9312,
+ 19009: 0x9313,
+ 19010: 0x9314,
+ 19011: 0x9315,
+ 19012: 0x9316,
+ 19013: 0x9317,
+ 19014: 0x9318,
+ 19015: 0x9319,
+ 19016: 0x931A,
+ 19017: 0x931B,
+ 19018: 0x931C,
+ 19019: 0x931D,
+ 19020: 0x931E,
+ 19021: 0x931F,
+ 19022: 0x9320,
+ 19023: 0x9321,
+ 19024: 0x9322,
+ 19025: 0x9323,
+ 19026: 0x9324,
+ 19027: 0x9325,
+ 19028: 0x9326,
+ 19029: 0x9327,
+ 19030: 0x9328,
+ 19031: 0x9329,
+ 19032: 0x932A,
+ 19033: 0x932B,
+ 19034: 0x932C,
+ 19035: 0x932D,
+ 19036: 0x932E,
+ 19037: 0x932F,
+ 19038: 0x9330,
+ 19039: 0x9331,
+ 19040: 0x9332,
+ 19041: 0x9333,
+ 19042: 0x9334,
+ 19043: 0x9335,
+ 19044: 0x9336,
+ 19045: 0x9337,
+ 19046: 0x9338,
+ 19047: 0x9339,
+ 19048: 0x933A,
+ 19049: 0x933B,
+ 19050: 0x933C,
+ 19051: 0x933D,
+ 19052: 0x933F,
+ 19053: 0x9340,
+ 19054: 0x9341,
+ 19055: 0x9342,
+ 19056: 0x9343,
+ 19057: 0x9344,
+ 19058: 0x9345,
+ 19059: 0x9346,
+ 19060: 0x9347,
+ 19061: 0x9348,
+ 19062: 0x9349,
+ 19063: 0x934A,
+ 19064: 0x934B,
+ 19065: 0x934C,
+ 19066: 0x934D,
+ 19067: 0x934E,
+ 19068: 0x934F,
+ 19069: 0x9350,
+ 19070: 0x9351,
+ 19071: 0x9352,
+ 19072: 0x9353,
+ 19073: 0x9354,
+ 19074: 0x9355,
+ 19075: 0x9356,
+ 19076: 0x9357,
+ 19077: 0x9358,
+ 19078: 0x9359,
+ 19079: 0x935A,
+ 19080: 0x935B,
+ 19081: 0x935C,
+ 19082: 0x935D,
+ 19083: 0x935E,
+ 19084: 0x935F,
+ 19085: 0x9360,
+ 19086: 0x9361,
+ 19087: 0x9362,
+ 19088: 0x9363,
+ 19089: 0x9364,
+ 19090: 0x9365,
+ 19091: 0x9366,
+ 19092: 0x9367,
+ 19093: 0x9368,
+ 19094: 0x9369,
+ 19095: 0x936B,
+ 19096: 0x6FC9,
+ 19097: 0x6FA7,
+ 19098: 0x6FB9,
+ 19099: 0x6FB6,
+ 19100: 0x6FC2,
+ 19101: 0x6FE1,
+ 19102: 0x6FEE,
+ 19103: 0x6FDE,
+ 19104: 0x6FE0,
+ 19105: 0x6FEF,
+ 19106: 0x701A,
+ 19107: 0x7023,
+ 19108: 0x701B,
+ 19109: 0x7039,
+ 19110: 0x7035,
+ 19111: 0x704F,
+ 19112: 0x705E,
+ 19113: 0x5B80,
+ 19114: 0x5B84,
+ 19115: 0x5B95,
+ 19116: 0x5B93,
+ 19117: 0x5BA5,
+ 19118: 0x5BB8,
+ 19119: 0x752F,
+ 19120: 0x9A9E,
+ 19121: 0x6434,
+ 19122: 0x5BE4,
+ 19123: 0x5BEE,
+ 19124: 0x8930,
+ 19125: 0x5BF0,
+ 19126: 0x8E47,
+ 19127: 0x8B07,
+ 19128: 0x8FB6,
+ 19129: 0x8FD3,
+ 19130: 0x8FD5,
+ 19131: 0x8FE5,
+ 19132: 0x8FEE,
+ 19133: 0x8FE4,
+ 19134: 0x8FE9,
+ 19135: 0x8FE6,
+ 19136: 0x8FF3,
+ 19137: 0x8FE8,
+ 19138: 0x9005,
+ 19139: 0x9004,
+ 19140: 0x900B,
+ 19141: 0x9026,
+ 19142: 0x9011,
+ 19143: 0x900D,
+ 19144: 0x9016,
+ 19145: 0x9021,
+ 19146: 0x9035,
+ 19147: 0x9036,
+ 19148: 0x902D,
+ 19149: 0x902F,
+ 19150: 0x9044,
+ 19151: 0x9051,
+ 19152: 0x9052,
+ 19153: 0x9050,
+ 19154: 0x9068,
+ 19155: 0x9058,
+ 19156: 0x9062,
+ 19157: 0x905B,
+ 19158: 0x66B9,
+ 19159: 0x9074,
+ 19160: 0x907D,
+ 19161: 0x9082,
+ 19162: 0x9088,
+ 19163: 0x9083,
+ 19164: 0x908B,
+ 19165: 0x5F50,
+ 19166: 0x5F57,
+ 19167: 0x5F56,
+ 19168: 0x5F58,
+ 19169: 0x5C3B,
+ 19170: 0x54AB,
+ 19171: 0x5C50,
+ 19172: 0x5C59,
+ 19173: 0x5B71,
+ 19174: 0x5C63,
+ 19175: 0x5C66,
+ 19176: 0x7FBC,
+ 19177: 0x5F2A,
+ 19178: 0x5F29,
+ 19179: 0x5F2D,
+ 19180: 0x8274,
+ 19181: 0x5F3C,
+ 19182: 0x9B3B,
+ 19183: 0x5C6E,
+ 19184: 0x5981,
+ 19185: 0x5983,
+ 19186: 0x598D,
+ 19187: 0x59A9,
+ 19188: 0x59AA,
+ 19189: 0x59A3,
+ 19190: 0x936C,
+ 19191: 0x936D,
+ 19192: 0x936E,
+ 19193: 0x936F,
+ 19194: 0x9370,
+ 19195: 0x9371,
+ 19196: 0x9372,
+ 19197: 0x9373,
+ 19198: 0x9374,
+ 19199: 0x9375,
+ 19200: 0x9376,
+ 19201: 0x9377,
+ 19202: 0x9378,
+ 19203: 0x9379,
+ 19204: 0x937A,
+ 19205: 0x937B,
+ 19206: 0x937C,
+ 19207: 0x937D,
+ 19208: 0x937E,
+ 19209: 0x937F,
+ 19210: 0x9380,
+ 19211: 0x9381,
+ 19212: 0x9382,
+ 19213: 0x9383,
+ 19214: 0x9384,
+ 19215: 0x9385,
+ 19216: 0x9386,
+ 19217: 0x9387,
+ 19218: 0x9388,
+ 19219: 0x9389,
+ 19220: 0x938A,
+ 19221: 0x938B,
+ 19222: 0x938C,
+ 19223: 0x938D,
+ 19224: 0x938E,
+ 19225: 0x9390,
+ 19226: 0x9391,
+ 19227: 0x9392,
+ 19228: 0x9393,
+ 19229: 0x9394,
+ 19230: 0x9395,
+ 19231: 0x9396,
+ 19232: 0x9397,
+ 19233: 0x9398,
+ 19234: 0x9399,
+ 19235: 0x939A,
+ 19236: 0x939B,
+ 19237: 0x939C,
+ 19238: 0x939D,
+ 19239: 0x939E,
+ 19240: 0x939F,
+ 19241: 0x93A0,
+ 19242: 0x93A1,
+ 19243: 0x93A2,
+ 19244: 0x93A3,
+ 19245: 0x93A4,
+ 19246: 0x93A5,
+ 19247: 0x93A6,
+ 19248: 0x93A7,
+ 19249: 0x93A8,
+ 19250: 0x93A9,
+ 19251: 0x93AA,
+ 19252: 0x93AB,
+ 19253: 0x93AC,
+ 19254: 0x93AD,
+ 19255: 0x93AE,
+ 19256: 0x93AF,
+ 19257: 0x93B0,
+ 19258: 0x93B1,
+ 19259: 0x93B2,
+ 19260: 0x93B3,
+ 19261: 0x93B4,
+ 19262: 0x93B5,
+ 19263: 0x93B6,
+ 19264: 0x93B7,
+ 19265: 0x93B8,
+ 19266: 0x93B9,
+ 19267: 0x93BA,
+ 19268: 0x93BB,
+ 19269: 0x93BC,
+ 19270: 0x93BD,
+ 19271: 0x93BE,
+ 19272: 0x93BF,
+ 19273: 0x93C0,
+ 19274: 0x93C1,
+ 19275: 0x93C2,
+ 19276: 0x93C3,
+ 19277: 0x93C4,
+ 19278: 0x93C5,
+ 19279: 0x93C6,
+ 19280: 0x93C7,
+ 19281: 0x93C8,
+ 19282: 0x93C9,
+ 19283: 0x93CB,
+ 19284: 0x93CC,
+ 19285: 0x93CD,
+ 19286: 0x5997,
+ 19287: 0x59CA,
+ 19288: 0x59AB,
+ 19289: 0x599E,
+ 19290: 0x59A4,
+ 19291: 0x59D2,
+ 19292: 0x59B2,
+ 19293: 0x59AF,
+ 19294: 0x59D7,
+ 19295: 0x59BE,
+ 19296: 0x5A05,
+ 19297: 0x5A06,
+ 19298: 0x59DD,
+ 19299: 0x5A08,
+ 19300: 0x59E3,
+ 19301: 0x59D8,
+ 19302: 0x59F9,
+ 19303: 0x5A0C,
+ 19304: 0x5A09,
+ 19305: 0x5A32,
+ 19306: 0x5A34,
+ 19307: 0x5A11,
+ 19308: 0x5A23,
+ 19309: 0x5A13,
+ 19310: 0x5A40,
+ 19311: 0x5A67,
+ 19312: 0x5A4A,
+ 19313: 0x5A55,
+ 19314: 0x5A3C,
+ 19315: 0x5A62,
+ 19316: 0x5A75,
+ 19317: 0x80EC,
+ 19318: 0x5AAA,
+ 19319: 0x5A9B,
+ 19320: 0x5A77,
+ 19321: 0x5A7A,
+ 19322: 0x5ABE,
+ 19323: 0x5AEB,
+ 19324: 0x5AB2,
+ 19325: 0x5AD2,
+ 19326: 0x5AD4,
+ 19327: 0x5AB8,
+ 19328: 0x5AE0,
+ 19329: 0x5AE3,
+ 19330: 0x5AF1,
+ 19331: 0x5AD6,
+ 19332: 0x5AE6,
+ 19333: 0x5AD8,
+ 19334: 0x5ADC,
+ 19335: 0x5B09,
+ 19336: 0x5B17,
+ 19337: 0x5B16,
+ 19338: 0x5B32,
+ 19339: 0x5B37,
+ 19340: 0x5B40,
+ 19341: 0x5C15,
+ 19342: 0x5C1C,
+ 19343: 0x5B5A,
+ 19344: 0x5B65,
+ 19345: 0x5B73,
+ 19346: 0x5B51,
+ 19347: 0x5B53,
+ 19348: 0x5B62,
+ 19349: 0x9A75,
+ 19350: 0x9A77,
+ 19351: 0x9A78,
+ 19352: 0x9A7A,
+ 19353: 0x9A7F,
+ 19354: 0x9A7D,
+ 19355: 0x9A80,
+ 19356: 0x9A81,
+ 19357: 0x9A85,
+ 19358: 0x9A88,
+ 19359: 0x9A8A,
+ 19360: 0x9A90,
+ 19361: 0x9A92,
+ 19362: 0x9A93,
+ 19363: 0x9A96,
+ 19364: 0x9A98,
+ 19365: 0x9A9B,
+ 19366: 0x9A9C,
+ 19367: 0x9A9D,
+ 19368: 0x9A9F,
+ 19369: 0x9AA0,
+ 19370: 0x9AA2,
+ 19371: 0x9AA3,
+ 19372: 0x9AA5,
+ 19373: 0x9AA7,
+ 19374: 0x7E9F,
+ 19375: 0x7EA1,
+ 19376: 0x7EA3,
+ 19377: 0x7EA5,
+ 19378: 0x7EA8,
+ 19379: 0x7EA9,
+ 19380: 0x93CE,
+ 19381: 0x93CF,
+ 19382: 0x93D0,
+ 19383: 0x93D1,
+ 19384: 0x93D2,
+ 19385: 0x93D3,
+ 19386: 0x93D4,
+ 19387: 0x93D5,
+ 19388: 0x93D7,
+ 19389: 0x93D8,
+ 19390: 0x93D9,
+ 19391: 0x93DA,
+ 19392: 0x93DB,
+ 19393: 0x93DC,
+ 19394: 0x93DD,
+ 19395: 0x93DE,
+ 19396: 0x93DF,
+ 19397: 0x93E0,
+ 19398: 0x93E1,
+ 19399: 0x93E2,
+ 19400: 0x93E3,
+ 19401: 0x93E4,
+ 19402: 0x93E5,
+ 19403: 0x93E6,
+ 19404: 0x93E7,
+ 19405: 0x93E8,
+ 19406: 0x93E9,
+ 19407: 0x93EA,
+ 19408: 0x93EB,
+ 19409: 0x93EC,
+ 19410: 0x93ED,
+ 19411: 0x93EE,
+ 19412: 0x93EF,
+ 19413: 0x93F0,
+ 19414: 0x93F1,
+ 19415: 0x93F2,
+ 19416: 0x93F3,
+ 19417: 0x93F4,
+ 19418: 0x93F5,
+ 19419: 0x93F6,
+ 19420: 0x93F7,
+ 19421: 0x93F8,
+ 19422: 0x93F9,
+ 19423: 0x93FA,
+ 19424: 0x93FB,
+ 19425: 0x93FC,
+ 19426: 0x93FD,
+ 19427: 0x93FE,
+ 19428: 0x93FF,
+ 19429: 0x9400,
+ 19430: 0x9401,
+ 19431: 0x9402,
+ 19432: 0x9403,
+ 19433: 0x9404,
+ 19434: 0x9405,
+ 19435: 0x9406,
+ 19436: 0x9407,
+ 19437: 0x9408,
+ 19438: 0x9409,
+ 19439: 0x940A,
+ 19440: 0x940B,
+ 19441: 0x940C,
+ 19442: 0x940D,
+ 19443: 0x940E,
+ 19444: 0x940F,
+ 19445: 0x9410,
+ 19446: 0x9411,
+ 19447: 0x9412,
+ 19448: 0x9413,
+ 19449: 0x9414,
+ 19450: 0x9415,
+ 19451: 0x9416,
+ 19452: 0x9417,
+ 19453: 0x9418,
+ 19454: 0x9419,
+ 19455: 0x941A,
+ 19456: 0x941B,
+ 19457: 0x941C,
+ 19458: 0x941D,
+ 19459: 0x941E,
+ 19460: 0x941F,
+ 19461: 0x9420,
+ 19462: 0x9421,
+ 19463: 0x9422,
+ 19464: 0x9423,
+ 19465: 0x9424,
+ 19466: 0x9425,
+ 19467: 0x9426,
+ 19468: 0x9427,
+ 19469: 0x9428,
+ 19470: 0x9429,
+ 19471: 0x942A,
+ 19472: 0x942B,
+ 19473: 0x942C,
+ 19474: 0x942D,
+ 19475: 0x942E,
+ 19476: 0x7EAD,
+ 19477: 0x7EB0,
+ 19478: 0x7EBE,
+ 19479: 0x7EC0,
+ 19480: 0x7EC1,
+ 19481: 0x7EC2,
+ 19482: 0x7EC9,
+ 19483: 0x7ECB,
+ 19484: 0x7ECC,
+ 19485: 0x7ED0,
+ 19486: 0x7ED4,
+ 19487: 0x7ED7,
+ 19488: 0x7EDB,
+ 19489: 0x7EE0,
+ 19490: 0x7EE1,
+ 19491: 0x7EE8,
+ 19492: 0x7EEB,
+ 19493: 0x7EEE,
+ 19494: 0x7EEF,
+ 19495: 0x7EF1,
+ 19496: 0x7EF2,
+ 19497: 0x7F0D,
+ 19498: 0x7EF6,
+ 19499: 0x7EFA,
+ 19500: 0x7EFB,
+ 19501: 0x7EFE,
+ 19502: 0x7F01,
+ 19503: 0x7F02,
+ 19504: 0x7F03,
+ 19505: 0x7F07,
+ 19506: 0x7F08,
+ 19507: 0x7F0B,
+ 19508: 0x7F0C,
+ 19509: 0x7F0F,
+ 19510: 0x7F11,
+ 19511: 0x7F12,
+ 19512: 0x7F17,
+ 19513: 0x7F19,
+ 19514: 0x7F1C,
+ 19515: 0x7F1B,
+ 19516: 0x7F1F,
+ 19517: 0x7F21,
+ 19518: 0x7F22,
+ 19519: 0x7F23,
+ 19520: 0x7F24,
+ 19521: 0x7F25,
+ 19522: 0x7F26,
+ 19523: 0x7F27,
+ 19524: 0x7F2A,
+ 19525: 0x7F2B,
+ 19526: 0x7F2C,
+ 19527: 0x7F2D,
+ 19528: 0x7F2F,
+ 19529: 0x7F30,
+ 19530: 0x7F31,
+ 19531: 0x7F32,
+ 19532: 0x7F33,
+ 19533: 0x7F35,
+ 19534: 0x5E7A,
+ 19535: 0x757F,
+ 19536: 0x5DDB,
+ 19537: 0x753E,
+ 19538: 0x9095,
+ 19539: 0x738E,
+ 19540: 0x7391,
+ 19541: 0x73AE,
+ 19542: 0x73A2,
+ 19543: 0x739F,
+ 19544: 0x73CF,
+ 19545: 0x73C2,
+ 19546: 0x73D1,
+ 19547: 0x73B7,
+ 19548: 0x73B3,
+ 19549: 0x73C0,
+ 19550: 0x73C9,
+ 19551: 0x73C8,
+ 19552: 0x73E5,
+ 19553: 0x73D9,
+ 19554: 0x987C,
+ 19555: 0x740A,
+ 19556: 0x73E9,
+ 19557: 0x73E7,
+ 19558: 0x73DE,
+ 19559: 0x73BA,
+ 19560: 0x73F2,
+ 19561: 0x740F,
+ 19562: 0x742A,
+ 19563: 0x745B,
+ 19564: 0x7426,
+ 19565: 0x7425,
+ 19566: 0x7428,
+ 19567: 0x7430,
+ 19568: 0x742E,
+ 19569: 0x742C,
+ 19570: 0x942F,
+ 19571: 0x9430,
+ 19572: 0x9431,
+ 19573: 0x9432,
+ 19574: 0x9433,
+ 19575: 0x9434,
+ 19576: 0x9435,
+ 19577: 0x9436,
+ 19578: 0x9437,
+ 19579: 0x9438,
+ 19580: 0x9439,
+ 19581: 0x943A,
+ 19582: 0x943B,
+ 19583: 0x943C,
+ 19584: 0x943D,
+ 19585: 0x943F,
+ 19586: 0x9440,
+ 19587: 0x9441,
+ 19588: 0x9442,
+ 19589: 0x9443,
+ 19590: 0x9444,
+ 19591: 0x9445,
+ 19592: 0x9446,
+ 19593: 0x9447,
+ 19594: 0x9448,
+ 19595: 0x9449,
+ 19596: 0x944A,
+ 19597: 0x944B,
+ 19598: 0x944C,
+ 19599: 0x944D,
+ 19600: 0x944E,
+ 19601: 0x944F,
+ 19602: 0x9450,
+ 19603: 0x9451,
+ 19604: 0x9452,
+ 19605: 0x9453,
+ 19606: 0x9454,
+ 19607: 0x9455,
+ 19608: 0x9456,
+ 19609: 0x9457,
+ 19610: 0x9458,
+ 19611: 0x9459,
+ 19612: 0x945A,
+ 19613: 0x945B,
+ 19614: 0x945C,
+ 19615: 0x945D,
+ 19616: 0x945E,
+ 19617: 0x945F,
+ 19618: 0x9460,
+ 19619: 0x9461,
+ 19620: 0x9462,
+ 19621: 0x9463,
+ 19622: 0x9464,
+ 19623: 0x9465,
+ 19624: 0x9466,
+ 19625: 0x9467,
+ 19626: 0x9468,
+ 19627: 0x9469,
+ 19628: 0x946A,
+ 19629: 0x946C,
+ 19630: 0x946D,
+ 19631: 0x946E,
+ 19632: 0x946F,
+ 19633: 0x9470,
+ 19634: 0x9471,
+ 19635: 0x9472,
+ 19636: 0x9473,
+ 19637: 0x9474,
+ 19638: 0x9475,
+ 19639: 0x9476,
+ 19640: 0x9477,
+ 19641: 0x9478,
+ 19642: 0x9479,
+ 19643: 0x947A,
+ 19644: 0x947B,
+ 19645: 0x947C,
+ 19646: 0x947D,
+ 19647: 0x947E,
+ 19648: 0x947F,
+ 19649: 0x9480,
+ 19650: 0x9481,
+ 19651: 0x9482,
+ 19652: 0x9483,
+ 19653: 0x9484,
+ 19654: 0x9491,
+ 19655: 0x9496,
+ 19656: 0x9498,
+ 19657: 0x94C7,
+ 19658: 0x94CF,
+ 19659: 0x94D3,
+ 19660: 0x94D4,
+ 19661: 0x94DA,
+ 19662: 0x94E6,
+ 19663: 0x94FB,
+ 19664: 0x951C,
+ 19665: 0x9520,
+ 19666: 0x741B,
+ 19667: 0x741A,
+ 19668: 0x7441,
+ 19669: 0x745C,
+ 19670: 0x7457,
+ 19671: 0x7455,
+ 19672: 0x7459,
+ 19673: 0x7477,
+ 19674: 0x746D,
+ 19675: 0x747E,
+ 19676: 0x749C,
+ 19677: 0x748E,
+ 19678: 0x7480,
+ 19679: 0x7481,
+ 19680: 0x7487,
+ 19681: 0x748B,
+ 19682: 0x749E,
+ 19683: 0x74A8,
+ 19684: 0x74A9,
+ 19685: 0x7490,
+ 19686: 0x74A7,
+ 19687: 0x74D2,
+ 19688: 0x74BA,
+ 19689: 0x97EA,
+ 19690: 0x97EB,
+ 19691: 0x97EC,
+ 19692: 0x674C,
+ 19693: 0x6753,
+ 19694: 0x675E,
+ 19695: 0x6748,
+ 19696: 0x6769,
+ 19697: 0x67A5,
+ 19698: 0x6787,
+ 19699: 0x676A,
+ 19700: 0x6773,
+ 19701: 0x6798,
+ 19702: 0x67A7,
+ 19703: 0x6775,
+ 19704: 0x67A8,
+ 19705: 0x679E,
+ 19706: 0x67AD,
+ 19707: 0x678B,
+ 19708: 0x6777,
+ 19709: 0x677C,
+ 19710: 0x67F0,
+ 19711: 0x6809,
+ 19712: 0x67D8,
+ 19713: 0x680A,
+ 19714: 0x67E9,
+ 19715: 0x67B0,
+ 19716: 0x680C,
+ 19717: 0x67D9,
+ 19718: 0x67B5,
+ 19719: 0x67DA,
+ 19720: 0x67B3,
+ 19721: 0x67DD,
+ 19722: 0x6800,
+ 19723: 0x67C3,
+ 19724: 0x67B8,
+ 19725: 0x67E2,
+ 19726: 0x680E,
+ 19727: 0x67C1,
+ 19728: 0x67FD,
+ 19729: 0x6832,
+ 19730: 0x6833,
+ 19731: 0x6860,
+ 19732: 0x6861,
+ 19733: 0x684E,
+ 19734: 0x6862,
+ 19735: 0x6844,
+ 19736: 0x6864,
+ 19737: 0x6883,
+ 19738: 0x681D,
+ 19739: 0x6855,
+ 19740: 0x6866,
+ 19741: 0x6841,
+ 19742: 0x6867,
+ 19743: 0x6840,
+ 19744: 0x683E,
+ 19745: 0x684A,
+ 19746: 0x6849,
+ 19747: 0x6829,
+ 19748: 0x68B5,
+ 19749: 0x688F,
+ 19750: 0x6874,
+ 19751: 0x6877,
+ 19752: 0x6893,
+ 19753: 0x686B,
+ 19754: 0x68C2,
+ 19755: 0x696E,
+ 19756: 0x68FC,
+ 19757: 0x691F,
+ 19758: 0x6920,
+ 19759: 0x68F9,
+ 19760: 0x9527,
+ 19761: 0x9533,
+ 19762: 0x953D,
+ 19763: 0x9543,
+ 19764: 0x9548,
+ 19765: 0x954B,
+ 19766: 0x9555,
+ 19767: 0x955A,
+ 19768: 0x9560,
+ 19769: 0x956E,
+ 19770: 0x9574,
+ 19771: 0x9575,
+ 19772: 0x9577,
+ 19773: 0x9578,
+ 19774: 0x9579,
+ 19775: 0x957A,
+ 19776: 0x957B,
+ 19777: 0x957C,
+ 19778: 0x957D,
+ 19779: 0x957E,
+ 19780: 0x9580,
+ 19781: 0x9581,
+ 19782: 0x9582,
+ 19783: 0x9583,
+ 19784: 0x9584,
+ 19785: 0x9585,
+ 19786: 0x9586,
+ 19787: 0x9587,
+ 19788: 0x9588,
+ 19789: 0x9589,
+ 19790: 0x958A,
+ 19791: 0x958B,
+ 19792: 0x958C,
+ 19793: 0x958D,
+ 19794: 0x958E,
+ 19795: 0x958F,
+ 19796: 0x9590,
+ 19797: 0x9591,
+ 19798: 0x9592,
+ 19799: 0x9593,
+ 19800: 0x9594,
+ 19801: 0x9595,
+ 19802: 0x9596,
+ 19803: 0x9597,
+ 19804: 0x9598,
+ 19805: 0x9599,
+ 19806: 0x959A,
+ 19807: 0x959B,
+ 19808: 0x959C,
+ 19809: 0x959D,
+ 19810: 0x959E,
+ 19811: 0x959F,
+ 19812: 0x95A0,
+ 19813: 0x95A1,
+ 19814: 0x95A2,
+ 19815: 0x95A3,
+ 19816: 0x95A4,
+ 19817: 0x95A5,
+ 19818: 0x95A6,
+ 19819: 0x95A7,
+ 19820: 0x95A8,
+ 19821: 0x95A9,
+ 19822: 0x95AA,
+ 19823: 0x95AB,
+ 19824: 0x95AC,
+ 19825: 0x95AD,
+ 19826: 0x95AE,
+ 19827: 0x95AF,
+ 19828: 0x95B0,
+ 19829: 0x95B1,
+ 19830: 0x95B2,
+ 19831: 0x95B3,
+ 19832: 0x95B4,
+ 19833: 0x95B5,
+ 19834: 0x95B6,
+ 19835: 0x95B7,
+ 19836: 0x95B8,
+ 19837: 0x95B9,
+ 19838: 0x95BA,
+ 19839: 0x95BB,
+ 19840: 0x95BC,
+ 19841: 0x95BD,
+ 19842: 0x95BE,
+ 19843: 0x95BF,
+ 19844: 0x95C0,
+ 19845: 0x95C1,
+ 19846: 0x95C2,
+ 19847: 0x95C3,
+ 19848: 0x95C4,
+ 19849: 0x95C5,
+ 19850: 0x95C6,
+ 19851: 0x95C7,
+ 19852: 0x95C8,
+ 19853: 0x95C9,
+ 19854: 0x95CA,
+ 19855: 0x95CB,
+ 19856: 0x6924,
+ 19857: 0x68F0,
+ 19858: 0x690B,
+ 19859: 0x6901,
+ 19860: 0x6957,
+ 19861: 0x68E3,
+ 19862: 0x6910,
+ 19863: 0x6971,
+ 19864: 0x6939,
+ 19865: 0x6960,
+ 19866: 0x6942,
+ 19867: 0x695D,
+ 19868: 0x6984,
+ 19869: 0x696B,
+ 19870: 0x6980,
+ 19871: 0x6998,
+ 19872: 0x6978,
+ 19873: 0x6934,
+ 19874: 0x69CC,
+ 19875: 0x6987,
+ 19876: 0x6988,
+ 19877: 0x69CE,
+ 19878: 0x6989,
+ 19879: 0x6966,
+ 19880: 0x6963,
+ 19881: 0x6979,
+ 19882: 0x699B,
+ 19883: 0x69A7,
+ 19884: 0x69BB,
+ 19885: 0x69AB,
+ 19886: 0x69AD,
+ 19887: 0x69D4,
+ 19888: 0x69B1,
+ 19889: 0x69C1,
+ 19890: 0x69CA,
+ 19891: 0x69DF,
+ 19892: 0x6995,
+ 19893: 0x69E0,
+ 19894: 0x698D,
+ 19895: 0x69FF,
+ 19896: 0x6A2F,
+ 19897: 0x69ED,
+ 19898: 0x6A17,
+ 19899: 0x6A18,
+ 19900: 0x6A65,
+ 19901: 0x69F2,
+ 19902: 0x6A44,
+ 19903: 0x6A3E,
+ 19904: 0x6AA0,
+ 19905: 0x6A50,
+ 19906: 0x6A5B,
+ 19907: 0x6A35,
+ 19908: 0x6A8E,
+ 19909: 0x6A79,
+ 19910: 0x6A3D,
+ 19911: 0x6A28,
+ 19912: 0x6A58,
+ 19913: 0x6A7C,
+ 19914: 0x6A91,
+ 19915: 0x6A90,
+ 19916: 0x6AA9,
+ 19917: 0x6A97,
+ 19918: 0x6AAB,
+ 19919: 0x7337,
+ 19920: 0x7352,
+ 19921: 0x6B81,
+ 19922: 0x6B82,
+ 19923: 0x6B87,
+ 19924: 0x6B84,
+ 19925: 0x6B92,
+ 19926: 0x6B93,
+ 19927: 0x6B8D,
+ 19928: 0x6B9A,
+ 19929: 0x6B9B,
+ 19930: 0x6BA1,
+ 19931: 0x6BAA,
+ 19932: 0x8F6B,
+ 19933: 0x8F6D,
+ 19934: 0x8F71,
+ 19935: 0x8F72,
+ 19936: 0x8F73,
+ 19937: 0x8F75,
+ 19938: 0x8F76,
+ 19939: 0x8F78,
+ 19940: 0x8F77,
+ 19941: 0x8F79,
+ 19942: 0x8F7A,
+ 19943: 0x8F7C,
+ 19944: 0x8F7E,
+ 19945: 0x8F81,
+ 19946: 0x8F82,
+ 19947: 0x8F84,
+ 19948: 0x8F87,
+ 19949: 0x8F8B,
+ 19950: 0x95CC,
+ 19951: 0x95CD,
+ 19952: 0x95CE,
+ 19953: 0x95CF,
+ 19954: 0x95D0,
+ 19955: 0x95D1,
+ 19956: 0x95D2,
+ 19957: 0x95D3,
+ 19958: 0x95D4,
+ 19959: 0x95D5,
+ 19960: 0x95D6,
+ 19961: 0x95D7,
+ 19962: 0x95D8,
+ 19963: 0x95D9,
+ 19964: 0x95DA,
+ 19965: 0x95DB,
+ 19966: 0x95DC,
+ 19967: 0x95DD,
+ 19968: 0x95DE,
+ 19969: 0x95DF,
+ 19970: 0x95E0,
+ 19971: 0x95E1,
+ 19972: 0x95E2,
+ 19973: 0x95E3,
+ 19974: 0x95E4,
+ 19975: 0x95E5,
+ 19976: 0x95E6,
+ 19977: 0x95E7,
+ 19978: 0x95EC,
+ 19979: 0x95FF,
+ 19980: 0x9607,
+ 19981: 0x9613,
+ 19982: 0x9618,
+ 19983: 0x961B,
+ 19984: 0x961E,
+ 19985: 0x9620,
+ 19986: 0x9623,
+ 19987: 0x9624,
+ 19988: 0x9625,
+ 19989: 0x9626,
+ 19990: 0x9627,
+ 19991: 0x9628,
+ 19992: 0x9629,
+ 19993: 0x962B,
+ 19994: 0x962C,
+ 19995: 0x962D,
+ 19996: 0x962F,
+ 19997: 0x9630,
+ 19998: 0x9637,
+ 19999: 0x9638,
+ 20000: 0x9639,
+ 20001: 0x963A,
+ 20002: 0x963E,
+ 20003: 0x9641,
+ 20004: 0x9643,
+ 20005: 0x964A,
+ 20006: 0x964E,
+ 20007: 0x964F,
+ 20008: 0x9651,
+ 20009: 0x9652,
+ 20010: 0x9653,
+ 20011: 0x9656,
+ 20012: 0x9657,
+ 20013: 0x9658,
+ 20014: 0x9659,
+ 20015: 0x965A,
+ 20016: 0x965C,
+ 20017: 0x965D,
+ 20018: 0x965E,
+ 20019: 0x9660,
+ 20020: 0x9663,
+ 20021: 0x9665,
+ 20022: 0x9666,
+ 20023: 0x966B,
+ 20024: 0x966D,
+ 20025: 0x966E,
+ 20026: 0x966F,
+ 20027: 0x9670,
+ 20028: 0x9671,
+ 20029: 0x9673,
+ 20030: 0x9678,
+ 20031: 0x9679,
+ 20032: 0x967A,
+ 20033: 0x967B,
+ 20034: 0x967C,
+ 20035: 0x967D,
+ 20036: 0x967E,
+ 20037: 0x967F,
+ 20038: 0x9680,
+ 20039: 0x9681,
+ 20040: 0x9682,
+ 20041: 0x9683,
+ 20042: 0x9684,
+ 20043: 0x9687,
+ 20044: 0x9689,
+ 20045: 0x968A,
+ 20046: 0x8F8D,
+ 20047: 0x8F8E,
+ 20048: 0x8F8F,
+ 20049: 0x8F98,
+ 20050: 0x8F9A,
+ 20051: 0x8ECE,
+ 20052: 0x620B,
+ 20053: 0x6217,
+ 20054: 0x621B,
+ 20055: 0x621F,
+ 20056: 0x6222,
+ 20057: 0x6221,
+ 20058: 0x6225,
+ 20059: 0x6224,
+ 20060: 0x622C,
+ 20061: 0x81E7,
+ 20062: 0x74EF,
+ 20063: 0x74F4,
+ 20064: 0x74FF,
+ 20065: 0x750F,
+ 20066: 0x7511,
+ 20067: 0x7513,
+ 20068: 0x6534,
+ 20069: 0x65EE,
+ 20070: 0x65EF,
+ 20071: 0x65F0,
+ 20072: 0x660A,
+ 20073: 0x6619,
+ 20074: 0x6772,
+ 20075: 0x6603,
+ 20076: 0x6615,
+ 20077: 0x6600,
+ 20078: 0x7085,
+ 20079: 0x66F7,
+ 20080: 0x661D,
+ 20081: 0x6634,
+ 20082: 0x6631,
+ 20083: 0x6636,
+ 20084: 0x6635,
+ 20085: 0x8006,
+ 20086: 0x665F,
+ 20087: 0x6654,
+ 20088: 0x6641,
+ 20089: 0x664F,
+ 20090: 0x6656,
+ 20091: 0x6661,
+ 20092: 0x6657,
+ 20093: 0x6677,
+ 20094: 0x6684,
+ 20095: 0x668C,
+ 20096: 0x66A7,
+ 20097: 0x669D,
+ 20098: 0x66BE,
+ 20099: 0x66DB,
+ 20100: 0x66DC,
+ 20101: 0x66E6,
+ 20102: 0x66E9,
+ 20103: 0x8D32,
+ 20104: 0x8D33,
+ 20105: 0x8D36,
+ 20106: 0x8D3B,
+ 20107: 0x8D3D,
+ 20108: 0x8D40,
+ 20109: 0x8D45,
+ 20110: 0x8D46,
+ 20111: 0x8D48,
+ 20112: 0x8D49,
+ 20113: 0x8D47,
+ 20114: 0x8D4D,
+ 20115: 0x8D55,
+ 20116: 0x8D59,
+ 20117: 0x89C7,
+ 20118: 0x89CA,
+ 20119: 0x89CB,
+ 20120: 0x89CC,
+ 20121: 0x89CE,
+ 20122: 0x89CF,
+ 20123: 0x89D0,
+ 20124: 0x89D1,
+ 20125: 0x726E,
+ 20126: 0x729F,
+ 20127: 0x725D,
+ 20128: 0x7266,
+ 20129: 0x726F,
+ 20130: 0x727E,
+ 20131: 0x727F,
+ 20132: 0x7284,
+ 20133: 0x728B,
+ 20134: 0x728D,
+ 20135: 0x728F,
+ 20136: 0x7292,
+ 20137: 0x6308,
+ 20138: 0x6332,
+ 20139: 0x63B0,
+ 20140: 0x968C,
+ 20141: 0x968E,
+ 20142: 0x9691,
+ 20143: 0x9692,
+ 20144: 0x9693,
+ 20145: 0x9695,
+ 20146: 0x9696,
+ 20147: 0x969A,
+ 20148: 0x969B,
+ 20149: 0x969D,
+ 20150: 0x969E,
+ 20151: 0x969F,
+ 20152: 0x96A0,
+ 20153: 0x96A1,
+ 20154: 0x96A2,
+ 20155: 0x96A3,
+ 20156: 0x96A4,
+ 20157: 0x96A5,
+ 20158: 0x96A6,
+ 20159: 0x96A8,
+ 20160: 0x96A9,
+ 20161: 0x96AA,
+ 20162: 0x96AB,
+ 20163: 0x96AC,
+ 20164: 0x96AD,
+ 20165: 0x96AE,
+ 20166: 0x96AF,
+ 20167: 0x96B1,
+ 20168: 0x96B2,
+ 20169: 0x96B4,
+ 20170: 0x96B5,
+ 20171: 0x96B7,
+ 20172: 0x96B8,
+ 20173: 0x96BA,
+ 20174: 0x96BB,
+ 20175: 0x96BF,
+ 20176: 0x96C2,
+ 20177: 0x96C3,
+ 20178: 0x96C8,
+ 20179: 0x96CA,
+ 20180: 0x96CB,
+ 20181: 0x96D0,
+ 20182: 0x96D1,
+ 20183: 0x96D3,
+ 20184: 0x96D4,
+ 20185: 0x96D6,
+ 20186: 0x96D7,
+ 20187: 0x96D8,
+ 20188: 0x96D9,
+ 20189: 0x96DA,
+ 20190: 0x96DB,
+ 20191: 0x96DC,
+ 20192: 0x96DD,
+ 20193: 0x96DE,
+ 20194: 0x96DF,
+ 20195: 0x96E1,
+ 20196: 0x96E2,
+ 20197: 0x96E3,
+ 20198: 0x96E4,
+ 20199: 0x96E5,
+ 20200: 0x96E6,
+ 20201: 0x96E7,
+ 20202: 0x96EB,
+ 20203: 0x96EC,
+ 20204: 0x96ED,
+ 20205: 0x96EE,
+ 20206: 0x96F0,
+ 20207: 0x96F1,
+ 20208: 0x96F2,
+ 20209: 0x96F4,
+ 20210: 0x96F5,
+ 20211: 0x96F8,
+ 20212: 0x96FA,
+ 20213: 0x96FB,
+ 20214: 0x96FC,
+ 20215: 0x96FD,
+ 20216: 0x96FF,
+ 20217: 0x9702,
+ 20218: 0x9703,
+ 20219: 0x9705,
+ 20220: 0x970A,
+ 20221: 0x970B,
+ 20222: 0x970C,
+ 20223: 0x9710,
+ 20224: 0x9711,
+ 20225: 0x9712,
+ 20226: 0x9714,
+ 20227: 0x9715,
+ 20228: 0x9717,
+ 20229: 0x9718,
+ 20230: 0x9719,
+ 20231: 0x971A,
+ 20232: 0x971B,
+ 20233: 0x971D,
+ 20234: 0x971F,
+ 20235: 0x9720,
+ 20236: 0x643F,
+ 20237: 0x64D8,
+ 20238: 0x8004,
+ 20239: 0x6BEA,
+ 20240: 0x6BF3,
+ 20241: 0x6BFD,
+ 20242: 0x6BF5,
+ 20243: 0x6BF9,
+ 20244: 0x6C05,
+ 20245: 0x6C07,
+ 20246: 0x6C06,
+ 20247: 0x6C0D,
+ 20248: 0x6C15,
+ 20249: 0x6C18,
+ 20250: 0x6C19,
+ 20251: 0x6C1A,
+ 20252: 0x6C21,
+ 20253: 0x6C29,
+ 20254: 0x6C24,
+ 20255: 0x6C2A,
+ 20256: 0x6C32,
+ 20257: 0x6535,
+ 20258: 0x6555,
+ 20259: 0x656B,
+ 20260: 0x724D,
+ 20261: 0x7252,
+ 20262: 0x7256,
+ 20263: 0x7230,
+ 20264: 0x8662,
+ 20265: 0x5216,
+ 20266: 0x809F,
+ 20267: 0x809C,
+ 20268: 0x8093,
+ 20269: 0x80BC,
+ 20270: 0x670A,
+ 20271: 0x80BD,
+ 20272: 0x80B1,
+ 20273: 0x80AB,
+ 20274: 0x80AD,
+ 20275: 0x80B4,
+ 20276: 0x80B7,
+ 20277: 0x80E7,
+ 20278: 0x80E8,
+ 20279: 0x80E9,
+ 20280: 0x80EA,
+ 20281: 0x80DB,
+ 20282: 0x80C2,
+ 20283: 0x80C4,
+ 20284: 0x80D9,
+ 20285: 0x80CD,
+ 20286: 0x80D7,
+ 20287: 0x6710,
+ 20288: 0x80DD,
+ 20289: 0x80EB,
+ 20290: 0x80F1,
+ 20291: 0x80F4,
+ 20292: 0x80ED,
+ 20293: 0x810D,
+ 20294: 0x810E,
+ 20295: 0x80F2,
+ 20296: 0x80FC,
+ 20297: 0x6715,
+ 20298: 0x8112,
+ 20299: 0x8C5A,
+ 20300: 0x8136,
+ 20301: 0x811E,
+ 20302: 0x812C,
+ 20303: 0x8118,
+ 20304: 0x8132,
+ 20305: 0x8148,
+ 20306: 0x814C,
+ 20307: 0x8153,
+ 20308: 0x8174,
+ 20309: 0x8159,
+ 20310: 0x815A,
+ 20311: 0x8171,
+ 20312: 0x8160,
+ 20313: 0x8169,
+ 20314: 0x817C,
+ 20315: 0x817D,
+ 20316: 0x816D,
+ 20317: 0x8167,
+ 20318: 0x584D,
+ 20319: 0x5AB5,
+ 20320: 0x8188,
+ 20321: 0x8182,
+ 20322: 0x8191,
+ 20323: 0x6ED5,
+ 20324: 0x81A3,
+ 20325: 0x81AA,
+ 20326: 0x81CC,
+ 20327: 0x6726,
+ 20328: 0x81CA,
+ 20329: 0x81BB,
+ 20330: 0x9721,
+ 20331: 0x9722,
+ 20332: 0x9723,
+ 20333: 0x9724,
+ 20334: 0x9725,
+ 20335: 0x9726,
+ 20336: 0x9727,
+ 20337: 0x9728,
+ 20338: 0x9729,
+ 20339: 0x972B,
+ 20340: 0x972C,
+ 20341: 0x972E,
+ 20342: 0x972F,
+ 20343: 0x9731,
+ 20344: 0x9733,
+ 20345: 0x9734,
+ 20346: 0x9735,
+ 20347: 0x9736,
+ 20348: 0x9737,
+ 20349: 0x973A,
+ 20350: 0x973B,
+ 20351: 0x973C,
+ 20352: 0x973D,
+ 20353: 0x973F,
+ 20354: 0x9740,
+ 20355: 0x9741,
+ 20356: 0x9742,
+ 20357: 0x9743,
+ 20358: 0x9744,
+ 20359: 0x9745,
+ 20360: 0x9746,
+ 20361: 0x9747,
+ 20362: 0x9748,
+ 20363: 0x9749,
+ 20364: 0x974A,
+ 20365: 0x974B,
+ 20366: 0x974C,
+ 20367: 0x974D,
+ 20368: 0x974E,
+ 20369: 0x974F,
+ 20370: 0x9750,
+ 20371: 0x9751,
+ 20372: 0x9754,
+ 20373: 0x9755,
+ 20374: 0x9757,
+ 20375: 0x9758,
+ 20376: 0x975A,
+ 20377: 0x975C,
+ 20378: 0x975D,
+ 20379: 0x975F,
+ 20380: 0x9763,
+ 20381: 0x9764,
+ 20382: 0x9766,
+ 20383: 0x9767,
+ 20384: 0x9768,
+ 20385: 0x976A,
+ 20386: 0x976B,
+ 20387: 0x976C,
+ 20388: 0x976D,
+ 20389: 0x976E,
+ 20390: 0x976F,
+ 20391: 0x9770,
+ 20392: 0x9771,
+ 20393: 0x9772,
+ 20394: 0x9775,
+ 20395: 0x9777,
+ 20396: 0x9778,
+ 20397: 0x9779,
+ 20398: 0x977A,
+ 20399: 0x977B,
+ 20400: 0x977D,
+ 20401: 0x977E,
+ 20402: 0x977F,
+ 20403: 0x9780,
+ 20404: 0x9781,
+ 20405: 0x9782,
+ 20406: 0x9783,
+ 20407: 0x9784,
+ 20408: 0x9786,
+ 20409: 0x9787,
+ 20410: 0x9788,
+ 20411: 0x9789,
+ 20412: 0x978A,
+ 20413: 0x978C,
+ 20414: 0x978E,
+ 20415: 0x978F,
+ 20416: 0x9790,
+ 20417: 0x9793,
+ 20418: 0x9795,
+ 20419: 0x9796,
+ 20420: 0x9797,
+ 20421: 0x9799,
+ 20422: 0x979A,
+ 20423: 0x979B,
+ 20424: 0x979C,
+ 20425: 0x979D,
+ 20426: 0x81C1,
+ 20427: 0x81A6,
+ 20428: 0x6B24,
+ 20429: 0x6B37,
+ 20430: 0x6B39,
+ 20431: 0x6B43,
+ 20432: 0x6B46,
+ 20433: 0x6B59,
+ 20434: 0x98D1,
+ 20435: 0x98D2,
+ 20436: 0x98D3,
+ 20437: 0x98D5,
+ 20438: 0x98D9,
+ 20439: 0x98DA,
+ 20440: 0x6BB3,
+ 20441: 0x5F40,
+ 20442: 0x6BC2,
+ 20443: 0x89F3,
+ 20444: 0x6590,
+ 20445: 0x9F51,
+ 20446: 0x6593,
+ 20447: 0x65BC,
+ 20448: 0x65C6,
+ 20449: 0x65C4,
+ 20450: 0x65C3,
+ 20451: 0x65CC,
+ 20452: 0x65CE,
+ 20453: 0x65D2,
+ 20454: 0x65D6,
+ 20455: 0x7080,
+ 20456: 0x709C,
+ 20457: 0x7096,
+ 20458: 0x709D,
+ 20459: 0x70BB,
+ 20460: 0x70C0,
+ 20461: 0x70B7,
+ 20462: 0x70AB,
+ 20463: 0x70B1,
+ 20464: 0x70E8,
+ 20465: 0x70CA,
+ 20466: 0x7110,
+ 20467: 0x7113,
+ 20468: 0x7116,
+ 20469: 0x712F,
+ 20470: 0x7131,
+ 20471: 0x7173,
+ 20472: 0x715C,
+ 20473: 0x7168,
+ 20474: 0x7145,
+ 20475: 0x7172,
+ 20476: 0x714A,
+ 20477: 0x7178,
+ 20478: 0x717A,
+ 20479: 0x7198,
+ 20480: 0x71B3,
+ 20481: 0x71B5,
+ 20482: 0x71A8,
+ 20483: 0x71A0,
+ 20484: 0x71E0,
+ 20485: 0x71D4,
+ 20486: 0x71E7,
+ 20487: 0x71F9,
+ 20488: 0x721D,
+ 20489: 0x7228,
+ 20490: 0x706C,
+ 20491: 0x7118,
+ 20492: 0x7166,
+ 20493: 0x71B9,
+ 20494: 0x623E,
+ 20495: 0x623D,
+ 20496: 0x6243,
+ 20497: 0x6248,
+ 20498: 0x6249,
+ 20499: 0x793B,
+ 20500: 0x7940,
+ 20501: 0x7946,
+ 20502: 0x7949,
+ 20503: 0x795B,
+ 20504: 0x795C,
+ 20505: 0x7953,
+ 20506: 0x795A,
+ 20507: 0x7962,
+ 20508: 0x7957,
+ 20509: 0x7960,
+ 20510: 0x796F,
+ 20511: 0x7967,
+ 20512: 0x797A,
+ 20513: 0x7985,
+ 20514: 0x798A,
+ 20515: 0x799A,
+ 20516: 0x79A7,
+ 20517: 0x79B3,
+ 20518: 0x5FD1,
+ 20519: 0x5FD0,
+ 20520: 0x979E,
+ 20521: 0x979F,
+ 20522: 0x97A1,
+ 20523: 0x97A2,
+ 20524: 0x97A4,
+ 20525: 0x97A5,
+ 20526: 0x97A6,
+ 20527: 0x97A7,
+ 20528: 0x97A8,
+ 20529: 0x97A9,
+ 20530: 0x97AA,
+ 20531: 0x97AC,
+ 20532: 0x97AE,
+ 20533: 0x97B0,
+ 20534: 0x97B1,
+ 20535: 0x97B3,
+ 20536: 0x97B5,
+ 20537: 0x97B6,
+ 20538: 0x97B7,
+ 20539: 0x97B8,
+ 20540: 0x97B9,
+ 20541: 0x97BA,
+ 20542: 0x97BB,
+ 20543: 0x97BC,
+ 20544: 0x97BD,
+ 20545: 0x97BE,
+ 20546: 0x97BF,
+ 20547: 0x97C0,
+ 20548: 0x97C1,
+ 20549: 0x97C2,
+ 20550: 0x97C3,
+ 20551: 0x97C4,
+ 20552: 0x97C5,
+ 20553: 0x97C6,
+ 20554: 0x97C7,
+ 20555: 0x97C8,
+ 20556: 0x97C9,
+ 20557: 0x97CA,
+ 20558: 0x97CB,
+ 20559: 0x97CC,
+ 20560: 0x97CD,
+ 20561: 0x97CE,
+ 20562: 0x97CF,
+ 20563: 0x97D0,
+ 20564: 0x97D1,
+ 20565: 0x97D2,
+ 20566: 0x97D3,
+ 20567: 0x97D4,
+ 20568: 0x97D5,
+ 20569: 0x97D6,
+ 20570: 0x97D7,
+ 20571: 0x97D8,
+ 20572: 0x97D9,
+ 20573: 0x97DA,
+ 20574: 0x97DB,
+ 20575: 0x97DC,
+ 20576: 0x97DD,
+ 20577: 0x97DE,
+ 20578: 0x97DF,
+ 20579: 0x97E0,
+ 20580: 0x97E1,
+ 20581: 0x97E2,
+ 20582: 0x97E3,
+ 20583: 0x97E4,
+ 20584: 0x97E5,
+ 20585: 0x97E8,
+ 20586: 0x97EE,
+ 20587: 0x97EF,
+ 20588: 0x97F0,
+ 20589: 0x97F1,
+ 20590: 0x97F2,
+ 20591: 0x97F4,
+ 20592: 0x97F7,
+ 20593: 0x97F8,
+ 20594: 0x97F9,
+ 20595: 0x97FA,
+ 20596: 0x97FB,
+ 20597: 0x97FC,
+ 20598: 0x97FD,
+ 20599: 0x97FE,
+ 20600: 0x97FF,
+ 20601: 0x9800,
+ 20602: 0x9801,
+ 20603: 0x9802,
+ 20604: 0x9803,
+ 20605: 0x9804,
+ 20606: 0x9805,
+ 20607: 0x9806,
+ 20608: 0x9807,
+ 20609: 0x9808,
+ 20610: 0x9809,
+ 20611: 0x980A,
+ 20612: 0x980B,
+ 20613: 0x980C,
+ 20614: 0x980D,
+ 20615: 0x980E,
+ 20616: 0x603C,
+ 20617: 0x605D,
+ 20618: 0x605A,
+ 20619: 0x6067,
+ 20620: 0x6041,
+ 20621: 0x6059,
+ 20622: 0x6063,
+ 20623: 0x60AB,
+ 20624: 0x6106,
+ 20625: 0x610D,
+ 20626: 0x615D,
+ 20627: 0x61A9,
+ 20628: 0x619D,
+ 20629: 0x61CB,
+ 20630: 0x61D1,
+ 20631: 0x6206,
+ 20632: 0x8080,
+ 20633: 0x807F,
+ 20634: 0x6C93,
+ 20635: 0x6CF6,
+ 20636: 0x6DFC,
+ 20637: 0x77F6,
+ 20638: 0x77F8,
+ 20639: 0x7800,
+ 20640: 0x7809,
+ 20641: 0x7817,
+ 20642: 0x7818,
+ 20643: 0x7811,
+ 20644: 0x65AB,
+ 20645: 0x782D,
+ 20646: 0x781C,
+ 20647: 0x781D,
+ 20648: 0x7839,
+ 20649: 0x783A,
+ 20650: 0x783B,
+ 20651: 0x781F,
+ 20652: 0x783C,
+ 20653: 0x7825,
+ 20654: 0x782C,
+ 20655: 0x7823,
+ 20656: 0x7829,
+ 20657: 0x784E,
+ 20658: 0x786D,
+ 20659: 0x7856,
+ 20660: 0x7857,
+ 20661: 0x7826,
+ 20662: 0x7850,
+ 20663: 0x7847,
+ 20664: 0x784C,
+ 20665: 0x786A,
+ 20666: 0x789B,
+ 20667: 0x7893,
+ 20668: 0x789A,
+ 20669: 0x7887,
+ 20670: 0x789C,
+ 20671: 0x78A1,
+ 20672: 0x78A3,
+ 20673: 0x78B2,
+ 20674: 0x78B9,
+ 20675: 0x78A5,
+ 20676: 0x78D4,
+ 20677: 0x78D9,
+ 20678: 0x78C9,
+ 20679: 0x78EC,
+ 20680: 0x78F2,
+ 20681: 0x7905,
+ 20682: 0x78F4,
+ 20683: 0x7913,
+ 20684: 0x7924,
+ 20685: 0x791E,
+ 20686: 0x7934,
+ 20687: 0x9F9B,
+ 20688: 0x9EF9,
+ 20689: 0x9EFB,
+ 20690: 0x9EFC,
+ 20691: 0x76F1,
+ 20692: 0x7704,
+ 20693: 0x770D,
+ 20694: 0x76F9,
+ 20695: 0x7707,
+ 20696: 0x7708,
+ 20697: 0x771A,
+ 20698: 0x7722,
+ 20699: 0x7719,
+ 20700: 0x772D,
+ 20701: 0x7726,
+ 20702: 0x7735,
+ 20703: 0x7738,
+ 20704: 0x7750,
+ 20705: 0x7751,
+ 20706: 0x7747,
+ 20707: 0x7743,
+ 20708: 0x775A,
+ 20709: 0x7768,
+ 20710: 0x980F,
+ 20711: 0x9810,
+ 20712: 0x9811,
+ 20713: 0x9812,
+ 20714: 0x9813,
+ 20715: 0x9814,
+ 20716: 0x9815,
+ 20717: 0x9816,
+ 20718: 0x9817,
+ 20719: 0x9818,
+ 20720: 0x9819,
+ 20721: 0x981A,
+ 20722: 0x981B,
+ 20723: 0x981C,
+ 20724: 0x981D,
+ 20725: 0x981E,
+ 20726: 0x981F,
+ 20727: 0x9820,
+ 20728: 0x9821,
+ 20729: 0x9822,
+ 20730: 0x9823,
+ 20731: 0x9824,
+ 20732: 0x9825,
+ 20733: 0x9826,
+ 20734: 0x9827,
+ 20735: 0x9828,
+ 20736: 0x9829,
+ 20737: 0x982A,
+ 20738: 0x982B,
+ 20739: 0x982C,
+ 20740: 0x982D,
+ 20741: 0x982E,
+ 20742: 0x982F,
+ 20743: 0x9830,
+ 20744: 0x9831,
+ 20745: 0x9832,
+ 20746: 0x9833,
+ 20747: 0x9834,
+ 20748: 0x9835,
+ 20749: 0x9836,
+ 20750: 0x9837,
+ 20751: 0x9838,
+ 20752: 0x9839,
+ 20753: 0x983A,
+ 20754: 0x983B,
+ 20755: 0x983C,
+ 20756: 0x983D,
+ 20757: 0x983E,
+ 20758: 0x983F,
+ 20759: 0x9840,
+ 20760: 0x9841,
+ 20761: 0x9842,
+ 20762: 0x9843,
+ 20763: 0x9844,
+ 20764: 0x9845,
+ 20765: 0x9846,
+ 20766: 0x9847,
+ 20767: 0x9848,
+ 20768: 0x9849,
+ 20769: 0x984A,
+ 20770: 0x984B,
+ 20771: 0x984C,
+ 20772: 0x984D,
+ 20773: 0x984E,
+ 20774: 0x984F,
+ 20775: 0x9850,
+ 20776: 0x9851,
+ 20777: 0x9852,
+ 20778: 0x9853,
+ 20779: 0x9854,
+ 20780: 0x9855,
+ 20781: 0x9856,
+ 20782: 0x9857,
+ 20783: 0x9858,
+ 20784: 0x9859,
+ 20785: 0x985A,
+ 20786: 0x985B,
+ 20787: 0x985C,
+ 20788: 0x985D,
+ 20789: 0x985E,
+ 20790: 0x985F,
+ 20791: 0x9860,
+ 20792: 0x9861,
+ 20793: 0x9862,
+ 20794: 0x9863,
+ 20795: 0x9864,
+ 20796: 0x9865,
+ 20797: 0x9866,
+ 20798: 0x9867,
+ 20799: 0x9868,
+ 20800: 0x9869,
+ 20801: 0x986A,
+ 20802: 0x986B,
+ 20803: 0x986C,
+ 20804: 0x986D,
+ 20805: 0x986E,
+ 20806: 0x7762,
+ 20807: 0x7765,
+ 20808: 0x777F,
+ 20809: 0x778D,
+ 20810: 0x777D,
+ 20811: 0x7780,
+ 20812: 0x778C,
+ 20813: 0x7791,
+ 20814: 0x779F,
+ 20815: 0x77A0,
+ 20816: 0x77B0,
+ 20817: 0x77B5,
+ 20818: 0x77BD,
+ 20819: 0x753A,
+ 20820: 0x7540,
+ 20821: 0x754E,
+ 20822: 0x754B,
+ 20823: 0x7548,
+ 20824: 0x755B,
+ 20825: 0x7572,
+ 20826: 0x7579,
+ 20827: 0x7583,
+ 20828: 0x7F58,
+ 20829: 0x7F61,
+ 20830: 0x7F5F,
+ 20831: 0x8A48,
+ 20832: 0x7F68,
+ 20833: 0x7F74,
+ 20834: 0x7F71,
+ 20835: 0x7F79,
+ 20836: 0x7F81,
+ 20837: 0x7F7E,
+ 20838: 0x76CD,
+ 20839: 0x76E5,
+ 20840: 0x8832,
+ 20841: 0x9485,
+ 20842: 0x9486,
+ 20843: 0x9487,
+ 20844: 0x948B,
+ 20845: 0x948A,
+ 20846: 0x948C,
+ 20847: 0x948D,
+ 20848: 0x948F,
+ 20849: 0x9490,
+ 20850: 0x9494,
+ 20851: 0x9497,
+ 20852: 0x9495,
+ 20853: 0x949A,
+ 20854: 0x949B,
+ 20855: 0x949C,
+ 20856: 0x94A3,
+ 20857: 0x94A4,
+ 20858: 0x94AB,
+ 20859: 0x94AA,
+ 20860: 0x94AD,
+ 20861: 0x94AC,
+ 20862: 0x94AF,
+ 20863: 0x94B0,
+ 20864: 0x94B2,
+ 20865: 0x94B4,
+ 20866: 0x94B6,
+ 20867: 0x94B7,
+ 20868: 0x94B8,
+ 20869: 0x94B9,
+ 20870: 0x94BA,
+ 20871: 0x94BC,
+ 20872: 0x94BD,
+ 20873: 0x94BF,
+ 20874: 0x94C4,
+ 20875: 0x94C8,
+ 20876: 0x94C9,
+ 20877: 0x94CA,
+ 20878: 0x94CB,
+ 20879: 0x94CC,
+ 20880: 0x94CD,
+ 20881: 0x94CE,
+ 20882: 0x94D0,
+ 20883: 0x94D1,
+ 20884: 0x94D2,
+ 20885: 0x94D5,
+ 20886: 0x94D6,
+ 20887: 0x94D7,
+ 20888: 0x94D9,
+ 20889: 0x94D8,
+ 20890: 0x94DB,
+ 20891: 0x94DE,
+ 20892: 0x94DF,
+ 20893: 0x94E0,
+ 20894: 0x94E2,
+ 20895: 0x94E4,
+ 20896: 0x94E5,
+ 20897: 0x94E7,
+ 20898: 0x94E8,
+ 20899: 0x94EA,
+ 20900: 0x986F,
+ 20901: 0x9870,
+ 20902: 0x9871,
+ 20903: 0x9872,
+ 20904: 0x9873,
+ 20905: 0x9874,
+ 20906: 0x988B,
+ 20907: 0x988E,
+ 20908: 0x9892,
+ 20909: 0x9895,
+ 20910: 0x9899,
+ 20911: 0x98A3,
+ 20912: 0x98A8,
+ 20913: 0x98A9,
+ 20914: 0x98AA,
+ 20915: 0x98AB,
+ 20916: 0x98AC,
+ 20917: 0x98AD,
+ 20918: 0x98AE,
+ 20919: 0x98AF,
+ 20920: 0x98B0,
+ 20921: 0x98B1,
+ 20922: 0x98B2,
+ 20923: 0x98B3,
+ 20924: 0x98B4,
+ 20925: 0x98B5,
+ 20926: 0x98B6,
+ 20927: 0x98B7,
+ 20928: 0x98B8,
+ 20929: 0x98B9,
+ 20930: 0x98BA,
+ 20931: 0x98BB,
+ 20932: 0x98BC,
+ 20933: 0x98BD,
+ 20934: 0x98BE,
+ 20935: 0x98BF,
+ 20936: 0x98C0,
+ 20937: 0x98C1,
+ 20938: 0x98C2,
+ 20939: 0x98C3,
+ 20940: 0x98C4,
+ 20941: 0x98C5,
+ 20942: 0x98C6,
+ 20943: 0x98C7,
+ 20944: 0x98C8,
+ 20945: 0x98C9,
+ 20946: 0x98CA,
+ 20947: 0x98CB,
+ 20948: 0x98CC,
+ 20949: 0x98CD,
+ 20950: 0x98CF,
+ 20951: 0x98D0,
+ 20952: 0x98D4,
+ 20953: 0x98D6,
+ 20954: 0x98D7,
+ 20955: 0x98DB,
+ 20956: 0x98DC,
+ 20957: 0x98DD,
+ 20958: 0x98E0,
+ 20959: 0x98E1,
+ 20960: 0x98E2,
+ 20961: 0x98E3,
+ 20962: 0x98E4,
+ 20963: 0x98E5,
+ 20964: 0x98E6,
+ 20965: 0x98E9,
+ 20966: 0x98EA,
+ 20967: 0x98EB,
+ 20968: 0x98EC,
+ 20969: 0x98ED,
+ 20970: 0x98EE,
+ 20971: 0x98EF,
+ 20972: 0x98F0,
+ 20973: 0x98F1,
+ 20974: 0x98F2,
+ 20975: 0x98F3,
+ 20976: 0x98F4,
+ 20977: 0x98F5,
+ 20978: 0x98F6,
+ 20979: 0x98F7,
+ 20980: 0x98F8,
+ 20981: 0x98F9,
+ 20982: 0x98FA,
+ 20983: 0x98FB,
+ 20984: 0x98FC,
+ 20985: 0x98FD,
+ 20986: 0x98FE,
+ 20987: 0x98FF,
+ 20988: 0x9900,
+ 20989: 0x9901,
+ 20990: 0x9902,
+ 20991: 0x9903,
+ 20992: 0x9904,
+ 20993: 0x9905,
+ 20994: 0x9906,
+ 20995: 0x9907,
+ 20996: 0x94E9,
+ 20997: 0x94EB,
+ 20998: 0x94EE,
+ 20999: 0x94EF,
+ 21000: 0x94F3,
+ 21001: 0x94F4,
+ 21002: 0x94F5,
+ 21003: 0x94F7,
+ 21004: 0x94F9,
+ 21005: 0x94FC,
+ 21006: 0x94FD,
+ 21007: 0x94FF,
+ 21008: 0x9503,
+ 21009: 0x9502,
+ 21010: 0x9506,
+ 21011: 0x9507,
+ 21012: 0x9509,
+ 21013: 0x950A,
+ 21014: 0x950D,
+ 21015: 0x950E,
+ 21016: 0x950F,
+ 21017: 0x9512,
+ 21018: 0x9513,
+ 21019: 0x9514,
+ 21020: 0x9515,
+ 21021: 0x9516,
+ 21022: 0x9518,
+ 21023: 0x951B,
+ 21024: 0x951D,
+ 21025: 0x951E,
+ 21026: 0x951F,
+ 21027: 0x9522,
+ 21028: 0x952A,
+ 21029: 0x952B,
+ 21030: 0x9529,
+ 21031: 0x952C,
+ 21032: 0x9531,
+ 21033: 0x9532,
+ 21034: 0x9534,
+ 21035: 0x9536,
+ 21036: 0x9537,
+ 21037: 0x9538,
+ 21038: 0x953C,
+ 21039: 0x953E,
+ 21040: 0x953F,
+ 21041: 0x9542,
+ 21042: 0x9535,
+ 21043: 0x9544,
+ 21044: 0x9545,
+ 21045: 0x9546,
+ 21046: 0x9549,
+ 21047: 0x954C,
+ 21048: 0x954E,
+ 21049: 0x954F,
+ 21050: 0x9552,
+ 21051: 0x9553,
+ 21052: 0x9554,
+ 21053: 0x9556,
+ 21054: 0x9557,
+ 21055: 0x9558,
+ 21056: 0x9559,
+ 21057: 0x955B,
+ 21058: 0x955E,
+ 21059: 0x955F,
+ 21060: 0x955D,
+ 21061: 0x9561,
+ 21062: 0x9562,
+ 21063: 0x9564,
+ 21064: 0x9565,
+ 21065: 0x9566,
+ 21066: 0x9567,
+ 21067: 0x9568,
+ 21068: 0x9569,
+ 21069: 0x956A,
+ 21070: 0x956B,
+ 21071: 0x956C,
+ 21072: 0x956F,
+ 21073: 0x9571,
+ 21074: 0x9572,
+ 21075: 0x9573,
+ 21076: 0x953A,
+ 21077: 0x77E7,
+ 21078: 0x77EC,
+ 21079: 0x96C9,
+ 21080: 0x79D5,
+ 21081: 0x79ED,
+ 21082: 0x79E3,
+ 21083: 0x79EB,
+ 21084: 0x7A06,
+ 21085: 0x5D47,
+ 21086: 0x7A03,
+ 21087: 0x7A02,
+ 21088: 0x7A1E,
+ 21089: 0x7A14,
+ 21090: 0x9908,
+ 21091: 0x9909,
+ 21092: 0x990A,
+ 21093: 0x990B,
+ 21094: 0x990C,
+ 21095: 0x990E,
+ 21096: 0x990F,
+ 21097: 0x9911,
+ 21098: 0x9912,
+ 21099: 0x9913,
+ 21100: 0x9914,
+ 21101: 0x9915,
+ 21102: 0x9916,
+ 21103: 0x9917,
+ 21104: 0x9918,
+ 21105: 0x9919,
+ 21106: 0x991A,
+ 21107: 0x991B,
+ 21108: 0x991C,
+ 21109: 0x991D,
+ 21110: 0x991E,
+ 21111: 0x991F,
+ 21112: 0x9920,
+ 21113: 0x9921,
+ 21114: 0x9922,
+ 21115: 0x9923,
+ 21116: 0x9924,
+ 21117: 0x9925,
+ 21118: 0x9926,
+ 21119: 0x9927,
+ 21120: 0x9928,
+ 21121: 0x9929,
+ 21122: 0x992A,
+ 21123: 0x992B,
+ 21124: 0x992C,
+ 21125: 0x992D,
+ 21126: 0x992F,
+ 21127: 0x9930,
+ 21128: 0x9931,
+ 21129: 0x9932,
+ 21130: 0x9933,
+ 21131: 0x9934,
+ 21132: 0x9935,
+ 21133: 0x9936,
+ 21134: 0x9937,
+ 21135: 0x9938,
+ 21136: 0x9939,
+ 21137: 0x993A,
+ 21138: 0x993B,
+ 21139: 0x993C,
+ 21140: 0x993D,
+ 21141: 0x993E,
+ 21142: 0x993F,
+ 21143: 0x9940,
+ 21144: 0x9941,
+ 21145: 0x9942,
+ 21146: 0x9943,
+ 21147: 0x9944,
+ 21148: 0x9945,
+ 21149: 0x9946,
+ 21150: 0x9947,
+ 21151: 0x9948,
+ 21152: 0x9949,
+ 21153: 0x994A,
+ 21154: 0x994B,
+ 21155: 0x994C,
+ 21156: 0x994D,
+ 21157: 0x994E,
+ 21158: 0x994F,
+ 21159: 0x9950,
+ 21160: 0x9951,
+ 21161: 0x9952,
+ 21162: 0x9953,
+ 21163: 0x9956,
+ 21164: 0x9957,
+ 21165: 0x9958,
+ 21166: 0x9959,
+ 21167: 0x995A,
+ 21168: 0x995B,
+ 21169: 0x995C,
+ 21170: 0x995D,
+ 21171: 0x995E,
+ 21172: 0x995F,
+ 21173: 0x9960,
+ 21174: 0x9961,
+ 21175: 0x9962,
+ 21176: 0x9964,
+ 21177: 0x9966,
+ 21178: 0x9973,
+ 21179: 0x9978,
+ 21180: 0x9979,
+ 21181: 0x997B,
+ 21182: 0x997E,
+ 21183: 0x9982,
+ 21184: 0x9983,
+ 21185: 0x9989,
+ 21186: 0x7A39,
+ 21187: 0x7A37,
+ 21188: 0x7A51,
+ 21189: 0x9ECF,
+ 21190: 0x99A5,
+ 21191: 0x7A70,
+ 21192: 0x7688,
+ 21193: 0x768E,
+ 21194: 0x7693,
+ 21195: 0x7699,
+ 21196: 0x76A4,
+ 21197: 0x74DE,
+ 21198: 0x74E0,
+ 21199: 0x752C,
+ 21200: 0x9E20,
+ 21201: 0x9E22,
+ 21202: 0x9E28,
+ 21203: 0x9E29,
+ 21204: 0x9E2A,
+ 21205: 0x9E2B,
+ 21206: 0x9E2C,
+ 21207: 0x9E32,
+ 21208: 0x9E31,
+ 21209: 0x9E36,
+ 21210: 0x9E38,
+ 21211: 0x9E37,
+ 21212: 0x9E39,
+ 21213: 0x9E3A,
+ 21214: 0x9E3E,
+ 21215: 0x9E41,
+ 21216: 0x9E42,
+ 21217: 0x9E44,
+ 21218: 0x9E46,
+ 21219: 0x9E47,
+ 21220: 0x9E48,
+ 21221: 0x9E49,
+ 21222: 0x9E4B,
+ 21223: 0x9E4C,
+ 21224: 0x9E4E,
+ 21225: 0x9E51,
+ 21226: 0x9E55,
+ 21227: 0x9E57,
+ 21228: 0x9E5A,
+ 21229: 0x9E5B,
+ 21230: 0x9E5C,
+ 21231: 0x9E5E,
+ 21232: 0x9E63,
+ 21233: 0x9E66,
+ 21234: 0x9E67,
+ 21235: 0x9E68,
+ 21236: 0x9E69,
+ 21237: 0x9E6A,
+ 21238: 0x9E6B,
+ 21239: 0x9E6C,
+ 21240: 0x9E71,
+ 21241: 0x9E6D,
+ 21242: 0x9E73,
+ 21243: 0x7592,
+ 21244: 0x7594,
+ 21245: 0x7596,
+ 21246: 0x75A0,
+ 21247: 0x759D,
+ 21248: 0x75AC,
+ 21249: 0x75A3,
+ 21250: 0x75B3,
+ 21251: 0x75B4,
+ 21252: 0x75B8,
+ 21253: 0x75C4,
+ 21254: 0x75B1,
+ 21255: 0x75B0,
+ 21256: 0x75C3,
+ 21257: 0x75C2,
+ 21258: 0x75D6,
+ 21259: 0x75CD,
+ 21260: 0x75E3,
+ 21261: 0x75E8,
+ 21262: 0x75E6,
+ 21263: 0x75E4,
+ 21264: 0x75EB,
+ 21265: 0x75E7,
+ 21266: 0x7603,
+ 21267: 0x75F1,
+ 21268: 0x75FC,
+ 21269: 0x75FF,
+ 21270: 0x7610,
+ 21271: 0x7600,
+ 21272: 0x7605,
+ 21273: 0x760C,
+ 21274: 0x7617,
+ 21275: 0x760A,
+ 21276: 0x7625,
+ 21277: 0x7618,
+ 21278: 0x7615,
+ 21279: 0x7619,
+ 21280: 0x998C,
+ 21281: 0x998E,
+ 21282: 0x999A,
+ 21283: 0x999B,
+ 21284: 0x999C,
+ 21285: 0x999D,
+ 21286: 0x999E,
+ 21287: 0x999F,
+ 21288: 0x99A0,
+ 21289: 0x99A1,
+ 21290: 0x99A2,
+ 21291: 0x99A3,
+ 21292: 0x99A4,
+ 21293: 0x99A6,
+ 21294: 0x99A7,
+ 21295: 0x99A9,
+ 21296: 0x99AA,
+ 21297: 0x99AB,
+ 21298: 0x99AC,
+ 21299: 0x99AD,
+ 21300: 0x99AE,
+ 21301: 0x99AF,
+ 21302: 0x99B0,
+ 21303: 0x99B1,
+ 21304: 0x99B2,
+ 21305: 0x99B3,
+ 21306: 0x99B4,
+ 21307: 0x99B5,
+ 21308: 0x99B6,
+ 21309: 0x99B7,
+ 21310: 0x99B8,
+ 21311: 0x99B9,
+ 21312: 0x99BA,
+ 21313: 0x99BB,
+ 21314: 0x99BC,
+ 21315: 0x99BD,
+ 21316: 0x99BE,
+ 21317: 0x99BF,
+ 21318: 0x99C0,
+ 21319: 0x99C1,
+ 21320: 0x99C2,
+ 21321: 0x99C3,
+ 21322: 0x99C4,
+ 21323: 0x99C5,
+ 21324: 0x99C6,
+ 21325: 0x99C7,
+ 21326: 0x99C8,
+ 21327: 0x99C9,
+ 21328: 0x99CA,
+ 21329: 0x99CB,
+ 21330: 0x99CC,
+ 21331: 0x99CD,
+ 21332: 0x99CE,
+ 21333: 0x99CF,
+ 21334: 0x99D0,
+ 21335: 0x99D1,
+ 21336: 0x99D2,
+ 21337: 0x99D3,
+ 21338: 0x99D4,
+ 21339: 0x99D5,
+ 21340: 0x99D6,
+ 21341: 0x99D7,
+ 21342: 0x99D8,
+ 21343: 0x99D9,
+ 21344: 0x99DA,
+ 21345: 0x99DB,
+ 21346: 0x99DC,
+ 21347: 0x99DD,
+ 21348: 0x99DE,
+ 21349: 0x99DF,
+ 21350: 0x99E0,
+ 21351: 0x99E1,
+ 21352: 0x99E2,
+ 21353: 0x99E3,
+ 21354: 0x99E4,
+ 21355: 0x99E5,
+ 21356: 0x99E6,
+ 21357: 0x99E7,
+ 21358: 0x99E8,
+ 21359: 0x99E9,
+ 21360: 0x99EA,
+ 21361: 0x99EB,
+ 21362: 0x99EC,
+ 21363: 0x99ED,
+ 21364: 0x99EE,
+ 21365: 0x99EF,
+ 21366: 0x99F0,
+ 21367: 0x99F1,
+ 21368: 0x99F2,
+ 21369: 0x99F3,
+ 21370: 0x99F4,
+ 21371: 0x99F5,
+ 21372: 0x99F6,
+ 21373: 0x99F7,
+ 21374: 0x99F8,
+ 21375: 0x99F9,
+ 21376: 0x761B,
+ 21377: 0x763C,
+ 21378: 0x7622,
+ 21379: 0x7620,
+ 21380: 0x7640,
+ 21381: 0x762D,
+ 21382: 0x7630,
+ 21383: 0x763F,
+ 21384: 0x7635,
+ 21385: 0x7643,
+ 21386: 0x763E,
+ 21387: 0x7633,
+ 21388: 0x764D,
+ 21389: 0x765E,
+ 21390: 0x7654,
+ 21391: 0x765C,
+ 21392: 0x7656,
+ 21393: 0x766B,
+ 21394: 0x766F,
+ 21395: 0x7FCA,
+ 21396: 0x7AE6,
+ 21397: 0x7A78,
+ 21398: 0x7A79,
+ 21399: 0x7A80,
+ 21400: 0x7A86,
+ 21401: 0x7A88,
+ 21402: 0x7A95,
+ 21403: 0x7AA6,
+ 21404: 0x7AA0,
+ 21405: 0x7AAC,
+ 21406: 0x7AA8,
+ 21407: 0x7AAD,
+ 21408: 0x7AB3,
+ 21409: 0x8864,
+ 21410: 0x8869,
+ 21411: 0x8872,
+ 21412: 0x887D,
+ 21413: 0x887F,
+ 21414: 0x8882,
+ 21415: 0x88A2,
+ 21416: 0x88C6,
+ 21417: 0x88B7,
+ 21418: 0x88BC,
+ 21419: 0x88C9,
+ 21420: 0x88E2,
+ 21421: 0x88CE,
+ 21422: 0x88E3,
+ 21423: 0x88E5,
+ 21424: 0x88F1,
+ 21425: 0x891A,
+ 21426: 0x88FC,
+ 21427: 0x88E8,
+ 21428: 0x88FE,
+ 21429: 0x88F0,
+ 21430: 0x8921,
+ 21431: 0x8919,
+ 21432: 0x8913,
+ 21433: 0x891B,
+ 21434: 0x890A,
+ 21435: 0x8934,
+ 21436: 0x892B,
+ 21437: 0x8936,
+ 21438: 0x8941,
+ 21439: 0x8966,
+ 21440: 0x897B,
+ 21441: 0x758B,
+ 21442: 0x80E5,
+ 21443: 0x76B2,
+ 21444: 0x76B4,
+ 21445: 0x77DC,
+ 21446: 0x8012,
+ 21447: 0x8014,
+ 21448: 0x8016,
+ 21449: 0x801C,
+ 21450: 0x8020,
+ 21451: 0x8022,
+ 21452: 0x8025,
+ 21453: 0x8026,
+ 21454: 0x8027,
+ 21455: 0x8029,
+ 21456: 0x8028,
+ 21457: 0x8031,
+ 21458: 0x800B,
+ 21459: 0x8035,
+ 21460: 0x8043,
+ 21461: 0x8046,
+ 21462: 0x804D,
+ 21463: 0x8052,
+ 21464: 0x8069,
+ 21465: 0x8071,
+ 21466: 0x8983,
+ 21467: 0x9878,
+ 21468: 0x9880,
+ 21469: 0x9883,
+ 21470: 0x99FA,
+ 21471: 0x99FB,
+ 21472: 0x99FC,
+ 21473: 0x99FD,
+ 21474: 0x99FE,
+ 21475: 0x99FF,
+ 21476: 0x9A00,
+ 21477: 0x9A01,
+ 21478: 0x9A02,
+ 21479: 0x9A03,
+ 21480: 0x9A04,
+ 21481: 0x9A05,
+ 21482: 0x9A06,
+ 21483: 0x9A07,
+ 21484: 0x9A08,
+ 21485: 0x9A09,
+ 21486: 0x9A0A,
+ 21487: 0x9A0B,
+ 21488: 0x9A0C,
+ 21489: 0x9A0D,
+ 21490: 0x9A0E,
+ 21491: 0x9A0F,
+ 21492: 0x9A10,
+ 21493: 0x9A11,
+ 21494: 0x9A12,
+ 21495: 0x9A13,
+ 21496: 0x9A14,
+ 21497: 0x9A15,
+ 21498: 0x9A16,
+ 21499: 0x9A17,
+ 21500: 0x9A18,
+ 21501: 0x9A19,
+ 21502: 0x9A1A,
+ 21503: 0x9A1B,
+ 21504: 0x9A1C,
+ 21505: 0x9A1D,
+ 21506: 0x9A1E,
+ 21507: 0x9A1F,
+ 21508: 0x9A20,
+ 21509: 0x9A21,
+ 21510: 0x9A22,
+ 21511: 0x9A23,
+ 21512: 0x9A24,
+ 21513: 0x9A25,
+ 21514: 0x9A26,
+ 21515: 0x9A27,
+ 21516: 0x9A28,
+ 21517: 0x9A29,
+ 21518: 0x9A2A,
+ 21519: 0x9A2B,
+ 21520: 0x9A2C,
+ 21521: 0x9A2D,
+ 21522: 0x9A2E,
+ 21523: 0x9A2F,
+ 21524: 0x9A30,
+ 21525: 0x9A31,
+ 21526: 0x9A32,
+ 21527: 0x9A33,
+ 21528: 0x9A34,
+ 21529: 0x9A35,
+ 21530: 0x9A36,
+ 21531: 0x9A37,
+ 21532: 0x9A38,
+ 21533: 0x9A39,
+ 21534: 0x9A3A,
+ 21535: 0x9A3B,
+ 21536: 0x9A3C,
+ 21537: 0x9A3D,
+ 21538: 0x9A3E,
+ 21539: 0x9A3F,
+ 21540: 0x9A40,
+ 21541: 0x9A41,
+ 21542: 0x9A42,
+ 21543: 0x9A43,
+ 21544: 0x9A44,
+ 21545: 0x9A45,
+ 21546: 0x9A46,
+ 21547: 0x9A47,
+ 21548: 0x9A48,
+ 21549: 0x9A49,
+ 21550: 0x9A4A,
+ 21551: 0x9A4B,
+ 21552: 0x9A4C,
+ 21553: 0x9A4D,
+ 21554: 0x9A4E,
+ 21555: 0x9A4F,
+ 21556: 0x9A50,
+ 21557: 0x9A51,
+ 21558: 0x9A52,
+ 21559: 0x9A53,
+ 21560: 0x9A54,
+ 21561: 0x9A55,
+ 21562: 0x9A56,
+ 21563: 0x9A57,
+ 21564: 0x9A58,
+ 21565: 0x9A59,
+ 21566: 0x9889,
+ 21567: 0x988C,
+ 21568: 0x988D,
+ 21569: 0x988F,
+ 21570: 0x9894,
+ 21571: 0x989A,
+ 21572: 0x989B,
+ 21573: 0x989E,
+ 21574: 0x989F,
+ 21575: 0x98A1,
+ 21576: 0x98A2,
+ 21577: 0x98A5,
+ 21578: 0x98A6,
+ 21579: 0x864D,
+ 21580: 0x8654,
+ 21581: 0x866C,
+ 21582: 0x866E,
+ 21583: 0x867F,
+ 21584: 0x867A,
+ 21585: 0x867C,
+ 21586: 0x867B,
+ 21587: 0x86A8,
+ 21588: 0x868D,
+ 21589: 0x868B,
+ 21590: 0x86AC,
+ 21591: 0x869D,
+ 21592: 0x86A7,
+ 21593: 0x86A3,
+ 21594: 0x86AA,
+ 21595: 0x8693,
+ 21596: 0x86A9,
+ 21597: 0x86B6,
+ 21598: 0x86C4,
+ 21599: 0x86B5,
+ 21600: 0x86CE,
+ 21601: 0x86B0,
+ 21602: 0x86BA,
+ 21603: 0x86B1,
+ 21604: 0x86AF,
+ 21605: 0x86C9,
+ 21606: 0x86CF,
+ 21607: 0x86B4,
+ 21608: 0x86E9,
+ 21609: 0x86F1,
+ 21610: 0x86F2,
+ 21611: 0x86ED,
+ 21612: 0x86F3,
+ 21613: 0x86D0,
+ 21614: 0x8713,
+ 21615: 0x86DE,
+ 21616: 0x86F4,
+ 21617: 0x86DF,
+ 21618: 0x86D8,
+ 21619: 0x86D1,
+ 21620: 0x8703,
+ 21621: 0x8707,
+ 21622: 0x86F8,
+ 21623: 0x8708,
+ 21624: 0x870A,
+ 21625: 0x870D,
+ 21626: 0x8709,
+ 21627: 0x8723,
+ 21628: 0x873B,
+ 21629: 0x871E,
+ 21630: 0x8725,
+ 21631: 0x872E,
+ 21632: 0x871A,
+ 21633: 0x873E,
+ 21634: 0x8748,
+ 21635: 0x8734,
+ 21636: 0x8731,
+ 21637: 0x8729,
+ 21638: 0x8737,
+ 21639: 0x873F,
+ 21640: 0x8782,
+ 21641: 0x8722,
+ 21642: 0x877D,
+ 21643: 0x877E,
+ 21644: 0x877B,
+ 21645: 0x8760,
+ 21646: 0x8770,
+ 21647: 0x874C,
+ 21648: 0x876E,
+ 21649: 0x878B,
+ 21650: 0x8753,
+ 21651: 0x8763,
+ 21652: 0x877C,
+ 21653: 0x8764,
+ 21654: 0x8759,
+ 21655: 0x8765,
+ 21656: 0x8793,
+ 21657: 0x87AF,
+ 21658: 0x87A8,
+ 21659: 0x87D2,
+ 21660: 0x9A5A,
+ 21661: 0x9A5B,
+ 21662: 0x9A5C,
+ 21663: 0x9A5D,
+ 21664: 0x9A5E,
+ 21665: 0x9A5F,
+ 21666: 0x9A60,
+ 21667: 0x9A61,
+ 21668: 0x9A62,
+ 21669: 0x9A63,
+ 21670: 0x9A64,
+ 21671: 0x9A65,
+ 21672: 0x9A66,
+ 21673: 0x9A67,
+ 21674: 0x9A68,
+ 21675: 0x9A69,
+ 21676: 0x9A6A,
+ 21677: 0x9A6B,
+ 21678: 0x9A72,
+ 21679: 0x9A83,
+ 21680: 0x9A89,
+ 21681: 0x9A8D,
+ 21682: 0x9A8E,
+ 21683: 0x9A94,
+ 21684: 0x9A95,
+ 21685: 0x9A99,
+ 21686: 0x9AA6,
+ 21687: 0x9AA9,
+ 21688: 0x9AAA,
+ 21689: 0x9AAB,
+ 21690: 0x9AAC,
+ 21691: 0x9AAD,
+ 21692: 0x9AAE,
+ 21693: 0x9AAF,
+ 21694: 0x9AB2,
+ 21695: 0x9AB3,
+ 21696: 0x9AB4,
+ 21697: 0x9AB5,
+ 21698: 0x9AB9,
+ 21699: 0x9ABB,
+ 21700: 0x9ABD,
+ 21701: 0x9ABE,
+ 21702: 0x9ABF,
+ 21703: 0x9AC3,
+ 21704: 0x9AC4,
+ 21705: 0x9AC6,
+ 21706: 0x9AC7,
+ 21707: 0x9AC8,
+ 21708: 0x9AC9,
+ 21709: 0x9ACA,
+ 21710: 0x9ACD,
+ 21711: 0x9ACE,
+ 21712: 0x9ACF,
+ 21713: 0x9AD0,
+ 21714: 0x9AD2,
+ 21715: 0x9AD4,
+ 21716: 0x9AD5,
+ 21717: 0x9AD6,
+ 21718: 0x9AD7,
+ 21719: 0x9AD9,
+ 21720: 0x9ADA,
+ 21721: 0x9ADB,
+ 21722: 0x9ADC,
+ 21723: 0x9ADD,
+ 21724: 0x9ADE,
+ 21725: 0x9AE0,
+ 21726: 0x9AE2,
+ 21727: 0x9AE3,
+ 21728: 0x9AE4,
+ 21729: 0x9AE5,
+ 21730: 0x9AE7,
+ 21731: 0x9AE8,
+ 21732: 0x9AE9,
+ 21733: 0x9AEA,
+ 21734: 0x9AEC,
+ 21735: 0x9AEE,
+ 21736: 0x9AF0,
+ 21737: 0x9AF1,
+ 21738: 0x9AF2,
+ 21739: 0x9AF3,
+ 21740: 0x9AF4,
+ 21741: 0x9AF5,
+ 21742: 0x9AF6,
+ 21743: 0x9AF7,
+ 21744: 0x9AF8,
+ 21745: 0x9AFA,
+ 21746: 0x9AFC,
+ 21747: 0x9AFD,
+ 21748: 0x9AFE,
+ 21749: 0x9AFF,
+ 21750: 0x9B00,
+ 21751: 0x9B01,
+ 21752: 0x9B02,
+ 21753: 0x9B04,
+ 21754: 0x9B05,
+ 21755: 0x9B06,
+ 21756: 0x87C6,
+ 21757: 0x8788,
+ 21758: 0x8785,
+ 21759: 0x87AD,
+ 21760: 0x8797,
+ 21761: 0x8783,
+ 21762: 0x87AB,
+ 21763: 0x87E5,
+ 21764: 0x87AC,
+ 21765: 0x87B5,
+ 21766: 0x87B3,
+ 21767: 0x87CB,
+ 21768: 0x87D3,
+ 21769: 0x87BD,
+ 21770: 0x87D1,
+ 21771: 0x87C0,
+ 21772: 0x87CA,
+ 21773: 0x87DB,
+ 21774: 0x87EA,
+ 21775: 0x87E0,
+ 21776: 0x87EE,
+ 21777: 0x8816,
+ 21778: 0x8813,
+ 21779: 0x87FE,
+ 21780: 0x880A,
+ 21781: 0x881B,
+ 21782: 0x8821,
+ 21783: 0x8839,
+ 21784: 0x883C,
+ 21785: 0x7F36,
+ 21786: 0x7F42,
+ 21787: 0x7F44,
+ 21788: 0x7F45,
+ 21789: 0x8210,
+ 21790: 0x7AFA,
+ 21791: 0x7AFD,
+ 21792: 0x7B08,
+ 21793: 0x7B03,
+ 21794: 0x7B04,
+ 21795: 0x7B15,
+ 21796: 0x7B0A,
+ 21797: 0x7B2B,
+ 21798: 0x7B0F,
+ 21799: 0x7B47,
+ 21800: 0x7B38,
+ 21801: 0x7B2A,
+ 21802: 0x7B19,
+ 21803: 0x7B2E,
+ 21804: 0x7B31,
+ 21805: 0x7B20,
+ 21806: 0x7B25,
+ 21807: 0x7B24,
+ 21808: 0x7B33,
+ 21809: 0x7B3E,
+ 21810: 0x7B1E,
+ 21811: 0x7B58,
+ 21812: 0x7B5A,
+ 21813: 0x7B45,
+ 21814: 0x7B75,
+ 21815: 0x7B4C,
+ 21816: 0x7B5D,
+ 21817: 0x7B60,
+ 21818: 0x7B6E,
+ 21819: 0x7B7B,
+ 21820: 0x7B62,
+ 21821: 0x7B72,
+ 21822: 0x7B71,
+ 21823: 0x7B90,
+ 21824: 0x7BA6,
+ 21825: 0x7BA7,
+ 21826: 0x7BB8,
+ 21827: 0x7BAC,
+ 21828: 0x7B9D,
+ 21829: 0x7BA8,
+ 21830: 0x7B85,
+ 21831: 0x7BAA,
+ 21832: 0x7B9C,
+ 21833: 0x7BA2,
+ 21834: 0x7BAB,
+ 21835: 0x7BB4,
+ 21836: 0x7BD1,
+ 21837: 0x7BC1,
+ 21838: 0x7BCC,
+ 21839: 0x7BDD,
+ 21840: 0x7BDA,
+ 21841: 0x7BE5,
+ 21842: 0x7BE6,
+ 21843: 0x7BEA,
+ 21844: 0x7C0C,
+ 21845: 0x7BFE,
+ 21846: 0x7BFC,
+ 21847: 0x7C0F,
+ 21848: 0x7C16,
+ 21849: 0x7C0B,
+ 21850: 0x9B07,
+ 21851: 0x9B09,
+ 21852: 0x9B0A,
+ 21853: 0x9B0B,
+ 21854: 0x9B0C,
+ 21855: 0x9B0D,
+ 21856: 0x9B0E,
+ 21857: 0x9B10,
+ 21858: 0x9B11,
+ 21859: 0x9B12,
+ 21860: 0x9B14,
+ 21861: 0x9B15,
+ 21862: 0x9B16,
+ 21863: 0x9B17,
+ 21864: 0x9B18,
+ 21865: 0x9B19,
+ 21866: 0x9B1A,
+ 21867: 0x9B1B,
+ 21868: 0x9B1C,
+ 21869: 0x9B1D,
+ 21870: 0x9B1E,
+ 21871: 0x9B20,
+ 21872: 0x9B21,
+ 21873: 0x9B22,
+ 21874: 0x9B24,
+ 21875: 0x9B25,
+ 21876: 0x9B26,
+ 21877: 0x9B27,
+ 21878: 0x9B28,
+ 21879: 0x9B29,
+ 21880: 0x9B2A,
+ 21881: 0x9B2B,
+ 21882: 0x9B2C,
+ 21883: 0x9B2D,
+ 21884: 0x9B2E,
+ 21885: 0x9B30,
+ 21886: 0x9B31,
+ 21887: 0x9B33,
+ 21888: 0x9B34,
+ 21889: 0x9B35,
+ 21890: 0x9B36,
+ 21891: 0x9B37,
+ 21892: 0x9B38,
+ 21893: 0x9B39,
+ 21894: 0x9B3A,
+ 21895: 0x9B3D,
+ 21896: 0x9B3E,
+ 21897: 0x9B3F,
+ 21898: 0x9B40,
+ 21899: 0x9B46,
+ 21900: 0x9B4A,
+ 21901: 0x9B4B,
+ 21902: 0x9B4C,
+ 21903: 0x9B4E,
+ 21904: 0x9B50,
+ 21905: 0x9B52,
+ 21906: 0x9B53,
+ 21907: 0x9B55,
+ 21908: 0x9B56,
+ 21909: 0x9B57,
+ 21910: 0x9B58,
+ 21911: 0x9B59,
+ 21912: 0x9B5A,
+ 21913: 0x9B5B,
+ 21914: 0x9B5C,
+ 21915: 0x9B5D,
+ 21916: 0x9B5E,
+ 21917: 0x9B5F,
+ 21918: 0x9B60,
+ 21919: 0x9B61,
+ 21920: 0x9B62,
+ 21921: 0x9B63,
+ 21922: 0x9B64,
+ 21923: 0x9B65,
+ 21924: 0x9B66,
+ 21925: 0x9B67,
+ 21926: 0x9B68,
+ 21927: 0x9B69,
+ 21928: 0x9B6A,
+ 21929: 0x9B6B,
+ 21930: 0x9B6C,
+ 21931: 0x9B6D,
+ 21932: 0x9B6E,
+ 21933: 0x9B6F,
+ 21934: 0x9B70,
+ 21935: 0x9B71,
+ 21936: 0x9B72,
+ 21937: 0x9B73,
+ 21938: 0x9B74,
+ 21939: 0x9B75,
+ 21940: 0x9B76,
+ 21941: 0x9B77,
+ 21942: 0x9B78,
+ 21943: 0x9B79,
+ 21944: 0x9B7A,
+ 21945: 0x9B7B,
+ 21946: 0x7C1F,
+ 21947: 0x7C2A,
+ 21948: 0x7C26,
+ 21949: 0x7C38,
+ 21950: 0x7C41,
+ 21951: 0x7C40,
+ 21952: 0x81FE,
+ 21953: 0x8201,
+ 21954: 0x8202,
+ 21955: 0x8204,
+ 21956: 0x81EC,
+ 21957: 0x8844,
+ 21958: 0x8221,
+ 21959: 0x8222,
+ 21960: 0x8223,
+ 21961: 0x822D,
+ 21962: 0x822F,
+ 21963: 0x8228,
+ 21964: 0x822B,
+ 21965: 0x8238,
+ 21966: 0x823B,
+ 21967: 0x8233,
+ 21968: 0x8234,
+ 21969: 0x823E,
+ 21970: 0x8244,
+ 21971: 0x8249,
+ 21972: 0x824B,
+ 21973: 0x824F,
+ 21974: 0x825A,
+ 21975: 0x825F,
+ 21976: 0x8268,
+ 21977: 0x887E,
+ 21978: 0x8885,
+ 21979: 0x8888,
+ 21980: 0x88D8,
+ 21981: 0x88DF,
+ 21982: 0x895E,
+ 21983: 0x7F9D,
+ 21984: 0x7F9F,
+ 21985: 0x7FA7,
+ 21986: 0x7FAF,
+ 21987: 0x7FB0,
+ 21988: 0x7FB2,
+ 21989: 0x7C7C,
+ 21990: 0x6549,
+ 21991: 0x7C91,
+ 21992: 0x7C9D,
+ 21993: 0x7C9C,
+ 21994: 0x7C9E,
+ 21995: 0x7CA2,
+ 21996: 0x7CB2,
+ 21997: 0x7CBC,
+ 21998: 0x7CBD,
+ 21999: 0x7CC1,
+ 22000: 0x7CC7,
+ 22001: 0x7CCC,
+ 22002: 0x7CCD,
+ 22003: 0x7CC8,
+ 22004: 0x7CC5,
+ 22005: 0x7CD7,
+ 22006: 0x7CE8,
+ 22007: 0x826E,
+ 22008: 0x66A8,
+ 22009: 0x7FBF,
+ 22010: 0x7FCE,
+ 22011: 0x7FD5,
+ 22012: 0x7FE5,
+ 22013: 0x7FE1,
+ 22014: 0x7FE6,
+ 22015: 0x7FE9,
+ 22016: 0x7FEE,
+ 22017: 0x7FF3,
+ 22018: 0x7CF8,
+ 22019: 0x7D77,
+ 22020: 0x7DA6,
+ 22021: 0x7DAE,
+ 22022: 0x7E47,
+ 22023: 0x7E9B,
+ 22024: 0x9EB8,
+ 22025: 0x9EB4,
+ 22026: 0x8D73,
+ 22027: 0x8D84,
+ 22028: 0x8D94,
+ 22029: 0x8D91,
+ 22030: 0x8DB1,
+ 22031: 0x8D67,
+ 22032: 0x8D6D,
+ 22033: 0x8C47,
+ 22034: 0x8C49,
+ 22035: 0x914A,
+ 22036: 0x9150,
+ 22037: 0x914E,
+ 22038: 0x914F,
+ 22039: 0x9164,
+ 22040: 0x9B7C,
+ 22041: 0x9B7D,
+ 22042: 0x9B7E,
+ 22043: 0x9B7F,
+ 22044: 0x9B80,
+ 22045: 0x9B81,
+ 22046: 0x9B82,
+ 22047: 0x9B83,
+ 22048: 0x9B84,
+ 22049: 0x9B85,
+ 22050: 0x9B86,
+ 22051: 0x9B87,
+ 22052: 0x9B88,
+ 22053: 0x9B89,
+ 22054: 0x9B8A,
+ 22055: 0x9B8B,
+ 22056: 0x9B8C,
+ 22057: 0x9B8D,
+ 22058: 0x9B8E,
+ 22059: 0x9B8F,
+ 22060: 0x9B90,
+ 22061: 0x9B91,
+ 22062: 0x9B92,
+ 22063: 0x9B93,
+ 22064: 0x9B94,
+ 22065: 0x9B95,
+ 22066: 0x9B96,
+ 22067: 0x9B97,
+ 22068: 0x9B98,
+ 22069: 0x9B99,
+ 22070: 0x9B9A,
+ 22071: 0x9B9B,
+ 22072: 0x9B9C,
+ 22073: 0x9B9D,
+ 22074: 0x9B9E,
+ 22075: 0x9B9F,
+ 22076: 0x9BA0,
+ 22077: 0x9BA1,
+ 22078: 0x9BA2,
+ 22079: 0x9BA3,
+ 22080: 0x9BA4,
+ 22081: 0x9BA5,
+ 22082: 0x9BA6,
+ 22083: 0x9BA7,
+ 22084: 0x9BA8,
+ 22085: 0x9BA9,
+ 22086: 0x9BAA,
+ 22087: 0x9BAB,
+ 22088: 0x9BAC,
+ 22089: 0x9BAD,
+ 22090: 0x9BAE,
+ 22091: 0x9BAF,
+ 22092: 0x9BB0,
+ 22093: 0x9BB1,
+ 22094: 0x9BB2,
+ 22095: 0x9BB3,
+ 22096: 0x9BB4,
+ 22097: 0x9BB5,
+ 22098: 0x9BB6,
+ 22099: 0x9BB7,
+ 22100: 0x9BB8,
+ 22101: 0x9BB9,
+ 22102: 0x9BBA,
+ 22103: 0x9BBB,
+ 22104: 0x9BBC,
+ 22105: 0x9BBD,
+ 22106: 0x9BBE,
+ 22107: 0x9BBF,
+ 22108: 0x9BC0,
+ 22109: 0x9BC1,
+ 22110: 0x9BC2,
+ 22111: 0x9BC3,
+ 22112: 0x9BC4,
+ 22113: 0x9BC5,
+ 22114: 0x9BC6,
+ 22115: 0x9BC7,
+ 22116: 0x9BC8,
+ 22117: 0x9BC9,
+ 22118: 0x9BCA,
+ 22119: 0x9BCB,
+ 22120: 0x9BCC,
+ 22121: 0x9BCD,
+ 22122: 0x9BCE,
+ 22123: 0x9BCF,
+ 22124: 0x9BD0,
+ 22125: 0x9BD1,
+ 22126: 0x9BD2,
+ 22127: 0x9BD3,
+ 22128: 0x9BD4,
+ 22129: 0x9BD5,
+ 22130: 0x9BD6,
+ 22131: 0x9BD7,
+ 22132: 0x9BD8,
+ 22133: 0x9BD9,
+ 22134: 0x9BDA,
+ 22135: 0x9BDB,
+ 22136: 0x9162,
+ 22137: 0x9161,
+ 22138: 0x9170,
+ 22139: 0x9169,
+ 22140: 0x916F,
+ 22141: 0x917D,
+ 22142: 0x917E,
+ 22143: 0x9172,
+ 22144: 0x9174,
+ 22145: 0x9179,
+ 22146: 0x918C,
+ 22147: 0x9185,
+ 22148: 0x9190,
+ 22149: 0x918D,
+ 22150: 0x9191,
+ 22151: 0x91A2,
+ 22152: 0x91A3,
+ 22153: 0x91AA,
+ 22154: 0x91AD,
+ 22155: 0x91AE,
+ 22156: 0x91AF,
+ 22157: 0x91B5,
+ 22158: 0x91B4,
+ 22159: 0x91BA,
+ 22160: 0x8C55,
+ 22161: 0x9E7E,
+ 22162: 0x8DB8,
+ 22163: 0x8DEB,
+ 22164: 0x8E05,
+ 22165: 0x8E59,
+ 22166: 0x8E69,
+ 22167: 0x8DB5,
+ 22168: 0x8DBF,
+ 22169: 0x8DBC,
+ 22170: 0x8DBA,
+ 22171: 0x8DC4,
+ 22172: 0x8DD6,
+ 22173: 0x8DD7,
+ 22174: 0x8DDA,
+ 22175: 0x8DDE,
+ 22176: 0x8DCE,
+ 22177: 0x8DCF,
+ 22178: 0x8DDB,
+ 22179: 0x8DC6,
+ 22180: 0x8DEC,
+ 22181: 0x8DF7,
+ 22182: 0x8DF8,
+ 22183: 0x8DE3,
+ 22184: 0x8DF9,
+ 22185: 0x8DFB,
+ 22186: 0x8DE4,
+ 22187: 0x8E09,
+ 22188: 0x8DFD,
+ 22189: 0x8E14,
+ 22190: 0x8E1D,
+ 22191: 0x8E1F,
+ 22192: 0x8E2C,
+ 22193: 0x8E2E,
+ 22194: 0x8E23,
+ 22195: 0x8E2F,
+ 22196: 0x8E3A,
+ 22197: 0x8E40,
+ 22198: 0x8E39,
+ 22199: 0x8E35,
+ 22200: 0x8E3D,
+ 22201: 0x8E31,
+ 22202: 0x8E49,
+ 22203: 0x8E41,
+ 22204: 0x8E42,
+ 22205: 0x8E51,
+ 22206: 0x8E52,
+ 22207: 0x8E4A,
+ 22208: 0x8E70,
+ 22209: 0x8E76,
+ 22210: 0x8E7C,
+ 22211: 0x8E6F,
+ 22212: 0x8E74,
+ 22213: 0x8E85,
+ 22214: 0x8E8F,
+ 22215: 0x8E94,
+ 22216: 0x8E90,
+ 22217: 0x8E9C,
+ 22218: 0x8E9E,
+ 22219: 0x8C78,
+ 22220: 0x8C82,
+ 22221: 0x8C8A,
+ 22222: 0x8C85,
+ 22223: 0x8C98,
+ 22224: 0x8C94,
+ 22225: 0x659B,
+ 22226: 0x89D6,
+ 22227: 0x89DE,
+ 22228: 0x89DA,
+ 22229: 0x89DC,
+ 22230: 0x9BDC,
+ 22231: 0x9BDD,
+ 22232: 0x9BDE,
+ 22233: 0x9BDF,
+ 22234: 0x9BE0,
+ 22235: 0x9BE1,
+ 22236: 0x9BE2,
+ 22237: 0x9BE3,
+ 22238: 0x9BE4,
+ 22239: 0x9BE5,
+ 22240: 0x9BE6,
+ 22241: 0x9BE7,
+ 22242: 0x9BE8,
+ 22243: 0x9BE9,
+ 22244: 0x9BEA,
+ 22245: 0x9BEB,
+ 22246: 0x9BEC,
+ 22247: 0x9BED,
+ 22248: 0x9BEE,
+ 22249: 0x9BEF,
+ 22250: 0x9BF0,
+ 22251: 0x9BF1,
+ 22252: 0x9BF2,
+ 22253: 0x9BF3,
+ 22254: 0x9BF4,
+ 22255: 0x9BF5,
+ 22256: 0x9BF6,
+ 22257: 0x9BF7,
+ 22258: 0x9BF8,
+ 22259: 0x9BF9,
+ 22260: 0x9BFA,
+ 22261: 0x9BFB,
+ 22262: 0x9BFC,
+ 22263: 0x9BFD,
+ 22264: 0x9BFE,
+ 22265: 0x9BFF,
+ 22266: 0x9C00,
+ 22267: 0x9C01,
+ 22268: 0x9C02,
+ 22269: 0x9C03,
+ 22270: 0x9C04,
+ 22271: 0x9C05,
+ 22272: 0x9C06,
+ 22273: 0x9C07,
+ 22274: 0x9C08,
+ 22275: 0x9C09,
+ 22276: 0x9C0A,
+ 22277: 0x9C0B,
+ 22278: 0x9C0C,
+ 22279: 0x9C0D,
+ 22280: 0x9C0E,
+ 22281: 0x9C0F,
+ 22282: 0x9C10,
+ 22283: 0x9C11,
+ 22284: 0x9C12,
+ 22285: 0x9C13,
+ 22286: 0x9C14,
+ 22287: 0x9C15,
+ 22288: 0x9C16,
+ 22289: 0x9C17,
+ 22290: 0x9C18,
+ 22291: 0x9C19,
+ 22292: 0x9C1A,
+ 22293: 0x9C1B,
+ 22294: 0x9C1C,
+ 22295: 0x9C1D,
+ 22296: 0x9C1E,
+ 22297: 0x9C1F,
+ 22298: 0x9C20,
+ 22299: 0x9C21,
+ 22300: 0x9C22,
+ 22301: 0x9C23,
+ 22302: 0x9C24,
+ 22303: 0x9C25,
+ 22304: 0x9C26,
+ 22305: 0x9C27,
+ 22306: 0x9C28,
+ 22307: 0x9C29,
+ 22308: 0x9C2A,
+ 22309: 0x9C2B,
+ 22310: 0x9C2C,
+ 22311: 0x9C2D,
+ 22312: 0x9C2E,
+ 22313: 0x9C2F,
+ 22314: 0x9C30,
+ 22315: 0x9C31,
+ 22316: 0x9C32,
+ 22317: 0x9C33,
+ 22318: 0x9C34,
+ 22319: 0x9C35,
+ 22320: 0x9C36,
+ 22321: 0x9C37,
+ 22322: 0x9C38,
+ 22323: 0x9C39,
+ 22324: 0x9C3A,
+ 22325: 0x9C3B,
+ 22326: 0x89E5,
+ 22327: 0x89EB,
+ 22328: 0x89EF,
+ 22329: 0x8A3E,
+ 22330: 0x8B26,
+ 22331: 0x9753,
+ 22332: 0x96E9,
+ 22333: 0x96F3,
+ 22334: 0x96EF,
+ 22335: 0x9706,
+ 22336: 0x9701,
+ 22337: 0x9708,
+ 22338: 0x970F,
+ 22339: 0x970E,
+ 22340: 0x972A,
+ 22341: 0x972D,
+ 22342: 0x9730,
+ 22343: 0x973E,
+ 22344: 0x9F80,
+ 22345: 0x9F83,
+ 22346: 0x9F85,
+ 22347: 0x9F86,
+ 22348: 0x9F87,
+ 22349: 0x9F88,
+ 22350: 0x9F89,
+ 22351: 0x9F8A,
+ 22352: 0x9F8C,
+ 22353: 0x9EFE,
+ 22354: 0x9F0B,
+ 22355: 0x9F0D,
+ 22356: 0x96B9,
+ 22357: 0x96BC,
+ 22358: 0x96BD,
+ 22359: 0x96CE,
+ 22360: 0x96D2,
+ 22361: 0x77BF,
+ 22362: 0x96E0,
+ 22363: 0x928E,
+ 22364: 0x92AE,
+ 22365: 0x92C8,
+ 22366: 0x933E,
+ 22367: 0x936A,
+ 22368: 0x93CA,
+ 22369: 0x938F,
+ 22370: 0x943E,
+ 22371: 0x946B,
+ 22372: 0x9C7F,
+ 22373: 0x9C82,
+ 22374: 0x9C85,
+ 22375: 0x9C86,
+ 22376: 0x9C87,
+ 22377: 0x9C88,
+ 22378: 0x7A23,
+ 22379: 0x9C8B,
+ 22380: 0x9C8E,
+ 22381: 0x9C90,
+ 22382: 0x9C91,
+ 22383: 0x9C92,
+ 22384: 0x9C94,
+ 22385: 0x9C95,
+ 22386: 0x9C9A,
+ 22387: 0x9C9B,
+ 22388: 0x9C9E,
+ 22389: 0x9C9F,
+ 22390: 0x9CA0,
+ 22391: 0x9CA1,
+ 22392: 0x9CA2,
+ 22393: 0x9CA3,
+ 22394: 0x9CA5,
+ 22395: 0x9CA6,
+ 22396: 0x9CA7,
+ 22397: 0x9CA8,
+ 22398: 0x9CA9,
+ 22399: 0x9CAB,
+ 22400: 0x9CAD,
+ 22401: 0x9CAE,
+ 22402: 0x9CB0,
+ 22403: 0x9CB1,
+ 22404: 0x9CB2,
+ 22405: 0x9CB3,
+ 22406: 0x9CB4,
+ 22407: 0x9CB5,
+ 22408: 0x9CB6,
+ 22409: 0x9CB7,
+ 22410: 0x9CBA,
+ 22411: 0x9CBB,
+ 22412: 0x9CBC,
+ 22413: 0x9CBD,
+ 22414: 0x9CC4,
+ 22415: 0x9CC5,
+ 22416: 0x9CC6,
+ 22417: 0x9CC7,
+ 22418: 0x9CCA,
+ 22419: 0x9CCB,
+ 22420: 0x9C3C,
+ 22421: 0x9C3D,
+ 22422: 0x9C3E,
+ 22423: 0x9C3F,
+ 22424: 0x9C40,
+ 22425: 0x9C41,
+ 22426: 0x9C42,
+ 22427: 0x9C43,
+ 22428: 0x9C44,
+ 22429: 0x9C45,
+ 22430: 0x9C46,
+ 22431: 0x9C47,
+ 22432: 0x9C48,
+ 22433: 0x9C49,
+ 22434: 0x9C4A,
+ 22435: 0x9C4B,
+ 22436: 0x9C4C,
+ 22437: 0x9C4D,
+ 22438: 0x9C4E,
+ 22439: 0x9C4F,
+ 22440: 0x9C50,
+ 22441: 0x9C51,
+ 22442: 0x9C52,
+ 22443: 0x9C53,
+ 22444: 0x9C54,
+ 22445: 0x9C55,
+ 22446: 0x9C56,
+ 22447: 0x9C57,
+ 22448: 0x9C58,
+ 22449: 0x9C59,
+ 22450: 0x9C5A,
+ 22451: 0x9C5B,
+ 22452: 0x9C5C,
+ 22453: 0x9C5D,
+ 22454: 0x9C5E,
+ 22455: 0x9C5F,
+ 22456: 0x9C60,
+ 22457: 0x9C61,
+ 22458: 0x9C62,
+ 22459: 0x9C63,
+ 22460: 0x9C64,
+ 22461: 0x9C65,
+ 22462: 0x9C66,
+ 22463: 0x9C67,
+ 22464: 0x9C68,
+ 22465: 0x9C69,
+ 22466: 0x9C6A,
+ 22467: 0x9C6B,
+ 22468: 0x9C6C,
+ 22469: 0x9C6D,
+ 22470: 0x9C6E,
+ 22471: 0x9C6F,
+ 22472: 0x9C70,
+ 22473: 0x9C71,
+ 22474: 0x9C72,
+ 22475: 0x9C73,
+ 22476: 0x9C74,
+ 22477: 0x9C75,
+ 22478: 0x9C76,
+ 22479: 0x9C77,
+ 22480: 0x9C78,
+ 22481: 0x9C79,
+ 22482: 0x9C7A,
+ 22483: 0x9C7B,
+ 22484: 0x9C7D,
+ 22485: 0x9C7E,
+ 22486: 0x9C80,
+ 22487: 0x9C83,
+ 22488: 0x9C84,
+ 22489: 0x9C89,
+ 22490: 0x9C8A,
+ 22491: 0x9C8C,
+ 22492: 0x9C8F,
+ 22493: 0x9C93,
+ 22494: 0x9C96,
+ 22495: 0x9C97,
+ 22496: 0x9C98,
+ 22497: 0x9C99,
+ 22498: 0x9C9D,
+ 22499: 0x9CAA,
+ 22500: 0x9CAC,
+ 22501: 0x9CAF,
+ 22502: 0x9CB9,
+ 22503: 0x9CBE,
+ 22504: 0x9CBF,
+ 22505: 0x9CC0,
+ 22506: 0x9CC1,
+ 22507: 0x9CC2,
+ 22508: 0x9CC8,
+ 22509: 0x9CC9,
+ 22510: 0x9CD1,
+ 22511: 0x9CD2,
+ 22512: 0x9CDA,
+ 22513: 0x9CDB,
+ 22514: 0x9CE0,
+ 22515: 0x9CE1,
+ 22516: 0x9CCC,
+ 22517: 0x9CCD,
+ 22518: 0x9CCE,
+ 22519: 0x9CCF,
+ 22520: 0x9CD0,
+ 22521: 0x9CD3,
+ 22522: 0x9CD4,
+ 22523: 0x9CD5,
+ 22524: 0x9CD7,
+ 22525: 0x9CD8,
+ 22526: 0x9CD9,
+ 22527: 0x9CDC,
+ 22528: 0x9CDD,
+ 22529: 0x9CDF,
+ 22530: 0x9CE2,
+ 22531: 0x977C,
+ 22532: 0x9785,
+ 22533: 0x9791,
+ 22534: 0x9792,
+ 22535: 0x9794,
+ 22536: 0x97AF,
+ 22537: 0x97AB,
+ 22538: 0x97A3,
+ 22539: 0x97B2,
+ 22540: 0x97B4,
+ 22541: 0x9AB1,
+ 22542: 0x9AB0,
+ 22543: 0x9AB7,
+ 22544: 0x9E58,
+ 22545: 0x9AB6,
+ 22546: 0x9ABA,
+ 22547: 0x9ABC,
+ 22548: 0x9AC1,
+ 22549: 0x9AC0,
+ 22550: 0x9AC5,
+ 22551: 0x9AC2,
+ 22552: 0x9ACB,
+ 22553: 0x9ACC,
+ 22554: 0x9AD1,
+ 22555: 0x9B45,
+ 22556: 0x9B43,
+ 22557: 0x9B47,
+ 22558: 0x9B49,
+ 22559: 0x9B48,
+ 22560: 0x9B4D,
+ 22561: 0x9B51,
+ 22562: 0x98E8,
+ 22563: 0x990D,
+ 22564: 0x992E,
+ 22565: 0x9955,
+ 22566: 0x9954,
+ 22567: 0x9ADF,
+ 22568: 0x9AE1,
+ 22569: 0x9AE6,
+ 22570: 0x9AEF,
+ 22571: 0x9AEB,
+ 22572: 0x9AFB,
+ 22573: 0x9AED,
+ 22574: 0x9AF9,
+ 22575: 0x9B08,
+ 22576: 0x9B0F,
+ 22577: 0x9B13,
+ 22578: 0x9B1F,
+ 22579: 0x9B23,
+ 22580: 0x9EBD,
+ 22581: 0x9EBE,
+ 22582: 0x7E3B,
+ 22583: 0x9E82,
+ 22584: 0x9E87,
+ 22585: 0x9E88,
+ 22586: 0x9E8B,
+ 22587: 0x9E92,
+ 22588: 0x93D6,
+ 22589: 0x9E9D,
+ 22590: 0x9E9F,
+ 22591: 0x9EDB,
+ 22592: 0x9EDC,
+ 22593: 0x9EDD,
+ 22594: 0x9EE0,
+ 22595: 0x9EDF,
+ 22596: 0x9EE2,
+ 22597: 0x9EE9,
+ 22598: 0x9EE7,
+ 22599: 0x9EE5,
+ 22600: 0x9EEA,
+ 22601: 0x9EEF,
+ 22602: 0x9F22,
+ 22603: 0x9F2C,
+ 22604: 0x9F2F,
+ 22605: 0x9F39,
+ 22606: 0x9F37,
+ 22607: 0x9F3D,
+ 22608: 0x9F3E,
+ 22609: 0x9F44,
+ 22610: 0x9CE3,
+ 22611: 0x9CE4,
+ 22612: 0x9CE5,
+ 22613: 0x9CE6,
+ 22614: 0x9CE7,
+ 22615: 0x9CE8,
+ 22616: 0x9CE9,
+ 22617: 0x9CEA,
+ 22618: 0x9CEB,
+ 22619: 0x9CEC,
+ 22620: 0x9CED,
+ 22621: 0x9CEE,
+ 22622: 0x9CEF,
+ 22623: 0x9CF0,
+ 22624: 0x9CF1,
+ 22625: 0x9CF2,
+ 22626: 0x9CF3,
+ 22627: 0x9CF4,
+ 22628: 0x9CF5,
+ 22629: 0x9CF6,
+ 22630: 0x9CF7,
+ 22631: 0x9CF8,
+ 22632: 0x9CF9,
+ 22633: 0x9CFA,
+ 22634: 0x9CFB,
+ 22635: 0x9CFC,
+ 22636: 0x9CFD,
+ 22637: 0x9CFE,
+ 22638: 0x9CFF,
+ 22639: 0x9D00,
+ 22640: 0x9D01,
+ 22641: 0x9D02,
+ 22642: 0x9D03,
+ 22643: 0x9D04,
+ 22644: 0x9D05,
+ 22645: 0x9D06,
+ 22646: 0x9D07,
+ 22647: 0x9D08,
+ 22648: 0x9D09,
+ 22649: 0x9D0A,
+ 22650: 0x9D0B,
+ 22651: 0x9D0C,
+ 22652: 0x9D0D,
+ 22653: 0x9D0E,
+ 22654: 0x9D0F,
+ 22655: 0x9D10,
+ 22656: 0x9D11,
+ 22657: 0x9D12,
+ 22658: 0x9D13,
+ 22659: 0x9D14,
+ 22660: 0x9D15,
+ 22661: 0x9D16,
+ 22662: 0x9D17,
+ 22663: 0x9D18,
+ 22664: 0x9D19,
+ 22665: 0x9D1A,
+ 22666: 0x9D1B,
+ 22667: 0x9D1C,
+ 22668: 0x9D1D,
+ 22669: 0x9D1E,
+ 22670: 0x9D1F,
+ 22671: 0x9D20,
+ 22672: 0x9D21,
+ 22673: 0x9D22,
+ 22674: 0x9D23,
+ 22675: 0x9D24,
+ 22676: 0x9D25,
+ 22677: 0x9D26,
+ 22678: 0x9D27,
+ 22679: 0x9D28,
+ 22680: 0x9D29,
+ 22681: 0x9D2A,
+ 22682: 0x9D2B,
+ 22683: 0x9D2C,
+ 22684: 0x9D2D,
+ 22685: 0x9D2E,
+ 22686: 0x9D2F,
+ 22687: 0x9D30,
+ 22688: 0x9D31,
+ 22689: 0x9D32,
+ 22690: 0x9D33,
+ 22691: 0x9D34,
+ 22692: 0x9D35,
+ 22693: 0x9D36,
+ 22694: 0x9D37,
+ 22695: 0x9D38,
+ 22696: 0x9D39,
+ 22697: 0x9D3A,
+ 22698: 0x9D3B,
+ 22699: 0x9D3C,
+ 22700: 0x9D3D,
+ 22701: 0x9D3E,
+ 22702: 0x9D3F,
+ 22703: 0x9D40,
+ 22704: 0x9D41,
+ 22705: 0x9D42,
+ 22800: 0x9D43,
+ 22801: 0x9D44,
+ 22802: 0x9D45,
+ 22803: 0x9D46,
+ 22804: 0x9D47,
+ 22805: 0x9D48,
+ 22806: 0x9D49,
+ 22807: 0x9D4A,
+ 22808: 0x9D4B,
+ 22809: 0x9D4C,
+ 22810: 0x9D4D,
+ 22811: 0x9D4E,
+ 22812: 0x9D4F,
+ 22813: 0x9D50,
+ 22814: 0x9D51,
+ 22815: 0x9D52,
+ 22816: 0x9D53,
+ 22817: 0x9D54,
+ 22818: 0x9D55,
+ 22819: 0x9D56,
+ 22820: 0x9D57,
+ 22821: 0x9D58,
+ 22822: 0x9D59,
+ 22823: 0x9D5A,
+ 22824: 0x9D5B,
+ 22825: 0x9D5C,
+ 22826: 0x9D5D,
+ 22827: 0x9D5E,
+ 22828: 0x9D5F,
+ 22829: 0x9D60,
+ 22830: 0x9D61,
+ 22831: 0x9D62,
+ 22832: 0x9D63,
+ 22833: 0x9D64,
+ 22834: 0x9D65,
+ 22835: 0x9D66,
+ 22836: 0x9D67,
+ 22837: 0x9D68,
+ 22838: 0x9D69,
+ 22839: 0x9D6A,
+ 22840: 0x9D6B,
+ 22841: 0x9D6C,
+ 22842: 0x9D6D,
+ 22843: 0x9D6E,
+ 22844: 0x9D6F,
+ 22845: 0x9D70,
+ 22846: 0x9D71,
+ 22847: 0x9D72,
+ 22848: 0x9D73,
+ 22849: 0x9D74,
+ 22850: 0x9D75,
+ 22851: 0x9D76,
+ 22852: 0x9D77,
+ 22853: 0x9D78,
+ 22854: 0x9D79,
+ 22855: 0x9D7A,
+ 22856: 0x9D7B,
+ 22857: 0x9D7C,
+ 22858: 0x9D7D,
+ 22859: 0x9D7E,
+ 22860: 0x9D7F,
+ 22861: 0x9D80,
+ 22862: 0x9D81,
+ 22863: 0x9D82,
+ 22864: 0x9D83,
+ 22865: 0x9D84,
+ 22866: 0x9D85,
+ 22867: 0x9D86,
+ 22868: 0x9D87,
+ 22869: 0x9D88,
+ 22870: 0x9D89,
+ 22871: 0x9D8A,
+ 22872: 0x9D8B,
+ 22873: 0x9D8C,
+ 22874: 0x9D8D,
+ 22875: 0x9D8E,
+ 22876: 0x9D8F,
+ 22877: 0x9D90,
+ 22878: 0x9D91,
+ 22879: 0x9D92,
+ 22880: 0x9D93,
+ 22881: 0x9D94,
+ 22882: 0x9D95,
+ 22883: 0x9D96,
+ 22884: 0x9D97,
+ 22885: 0x9D98,
+ 22886: 0x9D99,
+ 22887: 0x9D9A,
+ 22888: 0x9D9B,
+ 22889: 0x9D9C,
+ 22890: 0x9D9D,
+ 22891: 0x9D9E,
+ 22892: 0x9D9F,
+ 22893: 0x9DA0,
+ 22894: 0x9DA1,
+ 22895: 0x9DA2,
+ 22990: 0x9DA3,
+ 22991: 0x9DA4,
+ 22992: 0x9DA5,
+ 22993: 0x9DA6,
+ 22994: 0x9DA7,
+ 22995: 0x9DA8,
+ 22996: 0x9DA9,
+ 22997: 0x9DAA,
+ 22998: 0x9DAB,
+ 22999: 0x9DAC,
+ 23000: 0x9DAD,
+ 23001: 0x9DAE,
+ 23002: 0x9DAF,
+ 23003: 0x9DB0,
+ 23004: 0x9DB1,
+ 23005: 0x9DB2,
+ 23006: 0x9DB3,
+ 23007: 0x9DB4,
+ 23008: 0x9DB5,
+ 23009: 0x9DB6,
+ 23010: 0x9DB7,
+ 23011: 0x9DB8,
+ 23012: 0x9DB9,
+ 23013: 0x9DBA,
+ 23014: 0x9DBB,
+ 23015: 0x9DBC,
+ 23016: 0x9DBD,
+ 23017: 0x9DBE,
+ 23018: 0x9DBF,
+ 23019: 0x9DC0,
+ 23020: 0x9DC1,
+ 23021: 0x9DC2,
+ 23022: 0x9DC3,
+ 23023: 0x9DC4,
+ 23024: 0x9DC5,
+ 23025: 0x9DC6,
+ 23026: 0x9DC7,
+ 23027: 0x9DC8,
+ 23028: 0x9DC9,
+ 23029: 0x9DCA,
+ 23030: 0x9DCB,
+ 23031: 0x9DCC,
+ 23032: 0x9DCD,
+ 23033: 0x9DCE,
+ 23034: 0x9DCF,
+ 23035: 0x9DD0,
+ 23036: 0x9DD1,
+ 23037: 0x9DD2,
+ 23038: 0x9DD3,
+ 23039: 0x9DD4,
+ 23040: 0x9DD5,
+ 23041: 0x9DD6,
+ 23042: 0x9DD7,
+ 23043: 0x9DD8,
+ 23044: 0x9DD9,
+ 23045: 0x9DDA,
+ 23046: 0x9DDB,
+ 23047: 0x9DDC,
+ 23048: 0x9DDD,
+ 23049: 0x9DDE,
+ 23050: 0x9DDF,
+ 23051: 0x9DE0,
+ 23052: 0x9DE1,
+ 23053: 0x9DE2,
+ 23054: 0x9DE3,
+ 23055: 0x9DE4,
+ 23056: 0x9DE5,
+ 23057: 0x9DE6,
+ 23058: 0x9DE7,
+ 23059: 0x9DE8,
+ 23060: 0x9DE9,
+ 23061: 0x9DEA,
+ 23062: 0x9DEB,
+ 23063: 0x9DEC,
+ 23064: 0x9DED,
+ 23065: 0x9DEE,
+ 23066: 0x9DEF,
+ 23067: 0x9DF0,
+ 23068: 0x9DF1,
+ 23069: 0x9DF2,
+ 23070: 0x9DF3,
+ 23071: 0x9DF4,
+ 23072: 0x9DF5,
+ 23073: 0x9DF6,
+ 23074: 0x9DF7,
+ 23075: 0x9DF8,
+ 23076: 0x9DF9,
+ 23077: 0x9DFA,
+ 23078: 0x9DFB,
+ 23079: 0x9DFC,
+ 23080: 0x9DFD,
+ 23081: 0x9DFE,
+ 23082: 0x9DFF,
+ 23083: 0x9E00,
+ 23084: 0x9E01,
+ 23085: 0x9E02,
+ 23180: 0x9E03,
+ 23181: 0x9E04,
+ 23182: 0x9E05,
+ 23183: 0x9E06,
+ 23184: 0x9E07,
+ 23185: 0x9E08,
+ 23186: 0x9E09,
+ 23187: 0x9E0A,
+ 23188: 0x9E0B,
+ 23189: 0x9E0C,
+ 23190: 0x9E0D,
+ 23191: 0x9E0E,
+ 23192: 0x9E0F,
+ 23193: 0x9E10,
+ 23194: 0x9E11,
+ 23195: 0x9E12,
+ 23196: 0x9E13,
+ 23197: 0x9E14,
+ 23198: 0x9E15,
+ 23199: 0x9E16,
+ 23200: 0x9E17,
+ 23201: 0x9E18,
+ 23202: 0x9E19,
+ 23203: 0x9E1A,
+ 23204: 0x9E1B,
+ 23205: 0x9E1C,
+ 23206: 0x9E1D,
+ 23207: 0x9E1E,
+ 23208: 0x9E24,
+ 23209: 0x9E27,
+ 23210: 0x9E2E,
+ 23211: 0x9E30,
+ 23212: 0x9E34,
+ 23213: 0x9E3B,
+ 23214: 0x9E3C,
+ 23215: 0x9E40,
+ 23216: 0x9E4D,
+ 23217: 0x9E50,
+ 23218: 0x9E52,
+ 23219: 0x9E53,
+ 23220: 0x9E54,
+ 23221: 0x9E56,
+ 23222: 0x9E59,
+ 23223: 0x9E5D,
+ 23224: 0x9E5F,
+ 23225: 0x9E60,
+ 23226: 0x9E61,
+ 23227: 0x9E62,
+ 23228: 0x9E65,
+ 23229: 0x9E6E,
+ 23230: 0x9E6F,
+ 23231: 0x9E72,
+ 23232: 0x9E74,
+ 23233: 0x9E75,
+ 23234: 0x9E76,
+ 23235: 0x9E77,
+ 23236: 0x9E78,
+ 23237: 0x9E79,
+ 23238: 0x9E7A,
+ 23239: 0x9E7B,
+ 23240: 0x9E7C,
+ 23241: 0x9E7D,
+ 23242: 0x9E80,
+ 23243: 0x9E81,
+ 23244: 0x9E83,
+ 23245: 0x9E84,
+ 23246: 0x9E85,
+ 23247: 0x9E86,
+ 23248: 0x9E89,
+ 23249: 0x9E8A,
+ 23250: 0x9E8C,
+ 23251: 0x9E8D,
+ 23252: 0x9E8E,
+ 23253: 0x9E8F,
+ 23254: 0x9E90,
+ 23255: 0x9E91,
+ 23256: 0x9E94,
+ 23257: 0x9E95,
+ 23258: 0x9E96,
+ 23259: 0x9E97,
+ 23260: 0x9E98,
+ 23261: 0x9E99,
+ 23262: 0x9E9A,
+ 23263: 0x9E9B,
+ 23264: 0x9E9C,
+ 23265: 0x9E9E,
+ 23266: 0x9EA0,
+ 23267: 0x9EA1,
+ 23268: 0x9EA2,
+ 23269: 0x9EA3,
+ 23270: 0x9EA4,
+ 23271: 0x9EA5,
+ 23272: 0x9EA7,
+ 23273: 0x9EA8,
+ 23274: 0x9EA9,
+ 23275: 0x9EAA,
+ 23370: 0x9EAB,
+ 23371: 0x9EAC,
+ 23372: 0x9EAD,
+ 23373: 0x9EAE,
+ 23374: 0x9EAF,
+ 23375: 0x9EB0,
+ 23376: 0x9EB1,
+ 23377: 0x9EB2,
+ 23378: 0x9EB3,
+ 23379: 0x9EB5,
+ 23380: 0x9EB6,
+ 23381: 0x9EB7,
+ 23382: 0x9EB9,
+ 23383: 0x9EBA,
+ 23384: 0x9EBC,
+ 23385: 0x9EBF,
+ 23386: 0x9EC0,
+ 23387: 0x9EC1,
+ 23388: 0x9EC2,
+ 23389: 0x9EC3,
+ 23390: 0x9EC5,
+ 23391: 0x9EC6,
+ 23392: 0x9EC7,
+ 23393: 0x9EC8,
+ 23394: 0x9ECA,
+ 23395: 0x9ECB,
+ 23396: 0x9ECC,
+ 23397: 0x9ED0,
+ 23398: 0x9ED2,
+ 23399: 0x9ED3,
+ 23400: 0x9ED5,
+ 23401: 0x9ED6,
+ 23402: 0x9ED7,
+ 23403: 0x9ED9,
+ 23404: 0x9EDA,
+ 23405: 0x9EDE,
+ 23406: 0x9EE1,
+ 23407: 0x9EE3,
+ 23408: 0x9EE4,
+ 23409: 0x9EE6,
+ 23410: 0x9EE8,
+ 23411: 0x9EEB,
+ 23412: 0x9EEC,
+ 23413: 0x9EED,
+ 23414: 0x9EEE,
+ 23415: 0x9EF0,
+ 23416: 0x9EF1,
+ 23417: 0x9EF2,
+ 23418: 0x9EF3,
+ 23419: 0x9EF4,
+ 23420: 0x9EF5,
+ 23421: 0x9EF6,
+ 23422: 0x9EF7,
+ 23423: 0x9EF8,
+ 23424: 0x9EFA,
+ 23425: 0x9EFD,
+ 23426: 0x9EFF,
+ 23427: 0x9F00,
+ 23428: 0x9F01,
+ 23429: 0x9F02,
+ 23430: 0x9F03,
+ 23431: 0x9F04,
+ 23432: 0x9F05,
+ 23433: 0x9F06,
+ 23434: 0x9F07,
+ 23435: 0x9F08,
+ 23436: 0x9F09,
+ 23437: 0x9F0A,
+ 23438: 0x9F0C,
+ 23439: 0x9F0F,
+ 23440: 0x9F11,
+ 23441: 0x9F12,
+ 23442: 0x9F14,
+ 23443: 0x9F15,
+ 23444: 0x9F16,
+ 23445: 0x9F18,
+ 23446: 0x9F1A,
+ 23447: 0x9F1B,
+ 23448: 0x9F1C,
+ 23449: 0x9F1D,
+ 23450: 0x9F1E,
+ 23451: 0x9F1F,
+ 23452: 0x9F21,
+ 23453: 0x9F23,
+ 23454: 0x9F24,
+ 23455: 0x9F25,
+ 23456: 0x9F26,
+ 23457: 0x9F27,
+ 23458: 0x9F28,
+ 23459: 0x9F29,
+ 23460: 0x9F2A,
+ 23461: 0x9F2B,
+ 23462: 0x9F2D,
+ 23463: 0x9F2E,
+ 23464: 0x9F30,
+ 23465: 0x9F31,
+ 23560: 0x9F32,
+ 23561: 0x9F33,
+ 23562: 0x9F34,
+ 23563: 0x9F35,
+ 23564: 0x9F36,
+ 23565: 0x9F38,
+ 23566: 0x9F3A,
+ 23567: 0x9F3C,
+ 23568: 0x9F3F,
+ 23569: 0x9F40,
+ 23570: 0x9F41,
+ 23571: 0x9F42,
+ 23572: 0x9F43,
+ 23573: 0x9F45,
+ 23574: 0x9F46,
+ 23575: 0x9F47,
+ 23576: 0x9F48,
+ 23577: 0x9F49,
+ 23578: 0x9F4A,
+ 23579: 0x9F4B,
+ 23580: 0x9F4C,
+ 23581: 0x9F4D,
+ 23582: 0x9F4E,
+ 23583: 0x9F4F,
+ 23584: 0x9F52,
+ 23585: 0x9F53,
+ 23586: 0x9F54,
+ 23587: 0x9F55,
+ 23588: 0x9F56,
+ 23589: 0x9F57,
+ 23590: 0x9F58,
+ 23591: 0x9F59,
+ 23592: 0x9F5A,
+ 23593: 0x9F5B,
+ 23594: 0x9F5C,
+ 23595: 0x9F5D,
+ 23596: 0x9F5E,
+ 23597: 0x9F5F,
+ 23598: 0x9F60,
+ 23599: 0x9F61,
+ 23600: 0x9F62,
+ 23601: 0x9F63,
+ 23602: 0x9F64,
+ 23603: 0x9F65,
+ 23604: 0x9F66,
+ 23605: 0x9F67,
+ 23606: 0x9F68,
+ 23607: 0x9F69,
+ 23608: 0x9F6A,
+ 23609: 0x9F6B,
+ 23610: 0x9F6C,
+ 23611: 0x9F6D,
+ 23612: 0x9F6E,
+ 23613: 0x9F6F,
+ 23614: 0x9F70,
+ 23615: 0x9F71,
+ 23616: 0x9F72,
+ 23617: 0x9F73,
+ 23618: 0x9F74,
+ 23619: 0x9F75,
+ 23620: 0x9F76,
+ 23621: 0x9F77,
+ 23622: 0x9F78,
+ 23623: 0x9F79,
+ 23624: 0x9F7A,
+ 23625: 0x9F7B,
+ 23626: 0x9F7C,
+ 23627: 0x9F7D,
+ 23628: 0x9F7E,
+ 23629: 0x9F81,
+ 23630: 0x9F82,
+ 23631: 0x9F8D,
+ 23632: 0x9F8E,
+ 23633: 0x9F8F,
+ 23634: 0x9F90,
+ 23635: 0x9F91,
+ 23636: 0x9F92,
+ 23637: 0x9F93,
+ 23638: 0x9F94,
+ 23639: 0x9F95,
+ 23640: 0x9F96,
+ 23641: 0x9F97,
+ 23642: 0x9F98,
+ 23643: 0x9F9C,
+ 23644: 0x9F9D,
+ 23645: 0x9F9E,
+ 23646: 0x9FA1,
+ 23647: 0x9FA2,
+ 23648: 0x9FA3,
+ 23649: 0x9FA4,
+ 23650: 0x9FA5,
+ 23651: 0xF92C,
+ 23652: 0xF979,
+ 23653: 0xF995,
+ 23654: 0xF9E7,
+ 23655: 0xF9F1,
+ 23750: 0xFA0C,
+ 23751: 0xFA0D,
+ 23752: 0xFA0E,
+ 23753: 0xFA0F,
+ 23754: 0xFA11,
+ 23755: 0xFA13,
+ 23756: 0xFA14,
+ 23757: 0xFA18,
+ 23758: 0xFA1F,
+ 23759: 0xFA20,
+ 23760: 0xFA21,
+ 23761: 0xFA23,
+ 23762: 0xFA24,
+ 23763: 0xFA27,
+ 23764: 0xFA28,
+ 23765: 0xFA29,
+ 23766: 0x2E81,
+ 23770: 0x2E84,
+ 23771: 0x3473,
+ 23772: 0x3447,
+ 23773: 0x2E88,
+ 23774: 0x2E8B,
+ 23776: 0x359E,
+ 23777: 0x361A,
+ 23778: 0x360E,
+ 23779: 0x2E8C,
+ 23780: 0x2E97,
+ 23781: 0x396E,
+ 23782: 0x3918,
+ 23784: 0x39CF,
+ 23785: 0x39DF,
+ 23786: 0x3A73,
+ 23787: 0x39D0,
+ 23790: 0x3B4E,
+ 23791: 0x3C6E,
+ 23792: 0x3CE0,
+ 23793: 0x2EA7,
+ 23796: 0x2EAA,
+ 23797: 0x4056,
+ 23798: 0x415F,
+ 23799: 0x2EAE,
+ 23800: 0x4337,
+ 23801: 0x2EB3,
+ 23802: 0x2EB6,
+ 23803: 0x2EB7,
+ 23805: 0x43B1,
+ 23806: 0x43AC,
+ 23807: 0x2EBB,
+ 23808: 0x43DD,
+ 23809: 0x44D6,
+ 23810: 0x4661,
+ 23811: 0x464C,
+ 23813: 0x4723,
+ 23814: 0x4729,
+ 23815: 0x477C,
+ 23816: 0x478D,
+ 23817: 0x2ECA,
+ 23818: 0x4947,
+ 23819: 0x497A,
+ 23820: 0x497D,
+ 23821: 0x4982,
+ 23822: 0x4983,
+ 23823: 0x4985,
+ 23824: 0x4986,
+ 23825: 0x499F,
+ 23826: 0x499B,
+ 23827: 0x49B7,
+ 23828: 0x49B6,
+ 23831: 0x4CA3,
+ 23832: 0x4C9F,
+ 23833: 0x4CA0,
+ 23834: 0x4CA1,
+ 23835: 0x4C77,
+ 23836: 0x4CA2,
+ 23837: 0x4D13,
+ 23838: 0x4D14,
+ 23839: 0x4D15,
+ 23840: 0x4D16,
+ 23841: 0x4D17,
+ 23842: 0x4D18,
+ 23843: 0x4D19,
+ 23844: 0x4DAE,
+}
+
+const numEncodeTables = 5
+
+// encodeX are the encoding tables from Unicode to GBK code,
+// sorted by decreasing length.
+// encode0: 28965 entries for runes in [11905, 40870).
+// encode1: 1587 entries for runes in [ 8208, 9795).
+// encode2: 942 entries for runes in [ 164, 1106).
+// encode3: 438 entries for runes in [65072, 65510).
+// encode4: 254 entries for runes in [63788, 64042).
+
+const encode0Low, encode0High = 11905, 40870
+
+var encode0 = [...]uint16{
+ 11905 - 11905: 0xFE50,
+ 11908 - 11905: 0xFE54,
+ 11912 - 11905: 0xFE57,
+ 11915 - 11905: 0xFE58,
+ 11916 - 11905: 0xFE5D,
+ 11927 - 11905: 0xFE5E,
+ 11943 - 11905: 0xFE6B,
+ 11946 - 11905: 0xFE6E,
+ 11950 - 11905: 0xFE71,
+ 11955 - 11905: 0xFE73,
+ 11958 - 11905: 0xFE74,
+ 11959 - 11905: 0xFE75,
+ 11963 - 11905: 0xFE79,
+ 11978 - 11905: 0xFE84,
+ 12272 - 11905: 0xA98A,
+ 12273 - 11905: 0xA98B,
+ 12274 - 11905: 0xA98C,
+ 12275 - 11905: 0xA98D,
+ 12276 - 11905: 0xA98E,
+ 12277 - 11905: 0xA98F,
+ 12278 - 11905: 0xA990,
+ 12279 - 11905: 0xA991,
+ 12280 - 11905: 0xA992,
+ 12281 - 11905: 0xA993,
+ 12282 - 11905: 0xA994,
+ 12283 - 11905: 0xA995,
+ 12288 - 11905: 0xA1A1,
+ 12289 - 11905: 0xA1A2,
+ 12290 - 11905: 0xA1A3,
+ 12291 - 11905: 0xA1A8,
+ 12293 - 11905: 0xA1A9,
+ 12294 - 11905: 0xA965,
+ 12295 - 11905: 0xA996,
+ 12296 - 11905: 0xA1B4,
+ 12297 - 11905: 0xA1B5,
+ 12298 - 11905: 0xA1B6,
+ 12299 - 11905: 0xA1B7,
+ 12300 - 11905: 0xA1B8,
+ 12301 - 11905: 0xA1B9,
+ 12302 - 11905: 0xA1BA,
+ 12303 - 11905: 0xA1BB,
+ 12304 - 11905: 0xA1BE,
+ 12305 - 11905: 0xA1BF,
+ 12306 - 11905: 0xA893,
+ 12307 - 11905: 0xA1FE,
+ 12308 - 11905: 0xA1B2,
+ 12309 - 11905: 0xA1B3,
+ 12310 - 11905: 0xA1BC,
+ 12311 - 11905: 0xA1BD,
+ 12317 - 11905: 0xA894,
+ 12318 - 11905: 0xA895,
+ 12321 - 11905: 0xA940,
+ 12322 - 11905: 0xA941,
+ 12323 - 11905: 0xA942,
+ 12324 - 11905: 0xA943,
+ 12325 - 11905: 0xA944,
+ 12326 - 11905: 0xA945,
+ 12327 - 11905: 0xA946,
+ 12328 - 11905: 0xA947,
+ 12329 - 11905: 0xA948,
+ 12350 - 11905: 0xA989,
+ 12353 - 11905: 0xA4A1,
+ 12354 - 11905: 0xA4A2,
+ 12355 - 11905: 0xA4A3,
+ 12356 - 11905: 0xA4A4,
+ 12357 - 11905: 0xA4A5,
+ 12358 - 11905: 0xA4A6,
+ 12359 - 11905: 0xA4A7,
+ 12360 - 11905: 0xA4A8,
+ 12361 - 11905: 0xA4A9,
+ 12362 - 11905: 0xA4AA,
+ 12363 - 11905: 0xA4AB,
+ 12364 - 11905: 0xA4AC,
+ 12365 - 11905: 0xA4AD,
+ 12366 - 11905: 0xA4AE,
+ 12367 - 11905: 0xA4AF,
+ 12368 - 11905: 0xA4B0,
+ 12369 - 11905: 0xA4B1,
+ 12370 - 11905: 0xA4B2,
+ 12371 - 11905: 0xA4B3,
+ 12372 - 11905: 0xA4B4,
+ 12373 - 11905: 0xA4B5,
+ 12374 - 11905: 0xA4B6,
+ 12375 - 11905: 0xA4B7,
+ 12376 - 11905: 0xA4B8,
+ 12377 - 11905: 0xA4B9,
+ 12378 - 11905: 0xA4BA,
+ 12379 - 11905: 0xA4BB,
+ 12380 - 11905: 0xA4BC,
+ 12381 - 11905: 0xA4BD,
+ 12382 - 11905: 0xA4BE,
+ 12383 - 11905: 0xA4BF,
+ 12384 - 11905: 0xA4C0,
+ 12385 - 11905: 0xA4C1,
+ 12386 - 11905: 0xA4C2,
+ 12387 - 11905: 0xA4C3,
+ 12388 - 11905: 0xA4C4,
+ 12389 - 11905: 0xA4C5,
+ 12390 - 11905: 0xA4C6,
+ 12391 - 11905: 0xA4C7,
+ 12392 - 11905: 0xA4C8,
+ 12393 - 11905: 0xA4C9,
+ 12394 - 11905: 0xA4CA,
+ 12395 - 11905: 0xA4CB,
+ 12396 - 11905: 0xA4CC,
+ 12397 - 11905: 0xA4CD,
+ 12398 - 11905: 0xA4CE,
+ 12399 - 11905: 0xA4CF,
+ 12400 - 11905: 0xA4D0,
+ 12401 - 11905: 0xA4D1,
+ 12402 - 11905: 0xA4D2,
+ 12403 - 11905: 0xA4D3,
+ 12404 - 11905: 0xA4D4,
+ 12405 - 11905: 0xA4D5,
+ 12406 - 11905: 0xA4D6,
+ 12407 - 11905: 0xA4D7,
+ 12408 - 11905: 0xA4D8,
+ 12409 - 11905: 0xA4D9,
+ 12410 - 11905: 0xA4DA,
+ 12411 - 11905: 0xA4DB,
+ 12412 - 11905: 0xA4DC,
+ 12413 - 11905: 0xA4DD,
+ 12414 - 11905: 0xA4DE,
+ 12415 - 11905: 0xA4DF,
+ 12416 - 11905: 0xA4E0,
+ 12417 - 11905: 0xA4E1,
+ 12418 - 11905: 0xA4E2,
+ 12419 - 11905: 0xA4E3,
+ 12420 - 11905: 0xA4E4,
+ 12421 - 11905: 0xA4E5,
+ 12422 - 11905: 0xA4E6,
+ 12423 - 11905: 0xA4E7,
+ 12424 - 11905: 0xA4E8,
+ 12425 - 11905: 0xA4E9,
+ 12426 - 11905: 0xA4EA,
+ 12427 - 11905: 0xA4EB,
+ 12428 - 11905: 0xA4EC,
+ 12429 - 11905: 0xA4ED,
+ 12430 - 11905: 0xA4EE,
+ 12431 - 11905: 0xA4EF,
+ 12432 - 11905: 0xA4F0,
+ 12433 - 11905: 0xA4F1,
+ 12434 - 11905: 0xA4F2,
+ 12435 - 11905: 0xA4F3,
+ 12443 - 11905: 0xA961,
+ 12444 - 11905: 0xA962,
+ 12445 - 11905: 0xA966,
+ 12446 - 11905: 0xA967,
+ 12449 - 11905: 0xA5A1,
+ 12450 - 11905: 0xA5A2,
+ 12451 - 11905: 0xA5A3,
+ 12452 - 11905: 0xA5A4,
+ 12453 - 11905: 0xA5A5,
+ 12454 - 11905: 0xA5A6,
+ 12455 - 11905: 0xA5A7,
+ 12456 - 11905: 0xA5A8,
+ 12457 - 11905: 0xA5A9,
+ 12458 - 11905: 0xA5AA,
+ 12459 - 11905: 0xA5AB,
+ 12460 - 11905: 0xA5AC,
+ 12461 - 11905: 0xA5AD,
+ 12462 - 11905: 0xA5AE,
+ 12463 - 11905: 0xA5AF,
+ 12464 - 11905: 0xA5B0,
+ 12465 - 11905: 0xA5B1,
+ 12466 - 11905: 0xA5B2,
+ 12467 - 11905: 0xA5B3,
+ 12468 - 11905: 0xA5B4,
+ 12469 - 11905: 0xA5B5,
+ 12470 - 11905: 0xA5B6,
+ 12471 - 11905: 0xA5B7,
+ 12472 - 11905: 0xA5B8,
+ 12473 - 11905: 0xA5B9,
+ 12474 - 11905: 0xA5BA,
+ 12475 - 11905: 0xA5BB,
+ 12476 - 11905: 0xA5BC,
+ 12477 - 11905: 0xA5BD,
+ 12478 - 11905: 0xA5BE,
+ 12479 - 11905: 0xA5BF,
+ 12480 - 11905: 0xA5C0,
+ 12481 - 11905: 0xA5C1,
+ 12482 - 11905: 0xA5C2,
+ 12483 - 11905: 0xA5C3,
+ 12484 - 11905: 0xA5C4,
+ 12485 - 11905: 0xA5C5,
+ 12486 - 11905: 0xA5C6,
+ 12487 - 11905: 0xA5C7,
+ 12488 - 11905: 0xA5C8,
+ 12489 - 11905: 0xA5C9,
+ 12490 - 11905: 0xA5CA,
+ 12491 - 11905: 0xA5CB,
+ 12492 - 11905: 0xA5CC,
+ 12493 - 11905: 0xA5CD,
+ 12494 - 11905: 0xA5CE,
+ 12495 - 11905: 0xA5CF,
+ 12496 - 11905: 0xA5D0,
+ 12497 - 11905: 0xA5D1,
+ 12498 - 11905: 0xA5D2,
+ 12499 - 11905: 0xA5D3,
+ 12500 - 11905: 0xA5D4,
+ 12501 - 11905: 0xA5D5,
+ 12502 - 11905: 0xA5D6,
+ 12503 - 11905: 0xA5D7,
+ 12504 - 11905: 0xA5D8,
+ 12505 - 11905: 0xA5D9,
+ 12506 - 11905: 0xA5DA,
+ 12507 - 11905: 0xA5DB,
+ 12508 - 11905: 0xA5DC,
+ 12509 - 11905: 0xA5DD,
+ 12510 - 11905: 0xA5DE,
+ 12511 - 11905: 0xA5DF,
+ 12512 - 11905: 0xA5E0,
+ 12513 - 11905: 0xA5E1,
+ 12514 - 11905: 0xA5E2,
+ 12515 - 11905: 0xA5E3,
+ 12516 - 11905: 0xA5E4,
+ 12517 - 11905: 0xA5E5,
+ 12518 - 11905: 0xA5E6,
+ 12519 - 11905: 0xA5E7,
+ 12520 - 11905: 0xA5E8,
+ 12521 - 11905: 0xA5E9,
+ 12522 - 11905: 0xA5EA,
+ 12523 - 11905: 0xA5EB,
+ 12524 - 11905: 0xA5EC,
+ 12525 - 11905: 0xA5ED,
+ 12526 - 11905: 0xA5EE,
+ 12527 - 11905: 0xA5EF,
+ 12528 - 11905: 0xA5F0,
+ 12529 - 11905: 0xA5F1,
+ 12530 - 11905: 0xA5F2,
+ 12531 - 11905: 0xA5F3,
+ 12532 - 11905: 0xA5F4,
+ 12533 - 11905: 0xA5F5,
+ 12534 - 11905: 0xA5F6,
+ 12540 - 11905: 0xA960,
+ 12541 - 11905: 0xA963,
+ 12542 - 11905: 0xA964,
+ 12549 - 11905: 0xA8C5,
+ 12550 - 11905: 0xA8C6,
+ 12551 - 11905: 0xA8C7,
+ 12552 - 11905: 0xA8C8,
+ 12553 - 11905: 0xA8C9,
+ 12554 - 11905: 0xA8CA,
+ 12555 - 11905: 0xA8CB,
+ 12556 - 11905: 0xA8CC,
+ 12557 - 11905: 0xA8CD,
+ 12558 - 11905: 0xA8CE,
+ 12559 - 11905: 0xA8CF,
+ 12560 - 11905: 0xA8D0,
+ 12561 - 11905: 0xA8D1,
+ 12562 - 11905: 0xA8D2,
+ 12563 - 11905: 0xA8D3,
+ 12564 - 11905: 0xA8D4,
+ 12565 - 11905: 0xA8D5,
+ 12566 - 11905: 0xA8D6,
+ 12567 - 11905: 0xA8D7,
+ 12568 - 11905: 0xA8D8,
+ 12569 - 11905: 0xA8D9,
+ 12570 - 11905: 0xA8DA,
+ 12571 - 11905: 0xA8DB,
+ 12572 - 11905: 0xA8DC,
+ 12573 - 11905: 0xA8DD,
+ 12574 - 11905: 0xA8DE,
+ 12575 - 11905: 0xA8DF,
+ 12576 - 11905: 0xA8E0,
+ 12577 - 11905: 0xA8E1,
+ 12578 - 11905: 0xA8E2,
+ 12579 - 11905: 0xA8E3,
+ 12580 - 11905: 0xA8E4,
+ 12581 - 11905: 0xA8E5,
+ 12582 - 11905: 0xA8E6,
+ 12583 - 11905: 0xA8E7,
+ 12584 - 11905: 0xA8E8,
+ 12585 - 11905: 0xA8E9,
+ 12832 - 11905: 0xA2E5,
+ 12833 - 11905: 0xA2E6,
+ 12834 - 11905: 0xA2E7,
+ 12835 - 11905: 0xA2E8,
+ 12836 - 11905: 0xA2E9,
+ 12837 - 11905: 0xA2EA,
+ 12838 - 11905: 0xA2EB,
+ 12839 - 11905: 0xA2EC,
+ 12840 - 11905: 0xA2ED,
+ 12841 - 11905: 0xA2EE,
+ 12849 - 11905: 0xA95A,
+ 12963 - 11905: 0xA949,
+ 13198 - 11905: 0xA94A,
+ 13199 - 11905: 0xA94B,
+ 13212 - 11905: 0xA94C,
+ 13213 - 11905: 0xA94D,
+ 13214 - 11905: 0xA94E,
+ 13217 - 11905: 0xA94F,
+ 13252 - 11905: 0xA950,
+ 13262 - 11905: 0xA951,
+ 13265 - 11905: 0xA952,
+ 13266 - 11905: 0xA953,
+ 13269 - 11905: 0xA954,
+ 13383 - 11905: 0xFE56,
+ 13427 - 11905: 0xFE55,
+ 13726 - 11905: 0xFE5A,
+ 13838 - 11905: 0xFE5C,
+ 13850 - 11905: 0xFE5B,
+ 14616 - 11905: 0xFE60,
+ 14702 - 11905: 0xFE5F,
+ 14799 - 11905: 0xFE62,
+ 14800 - 11905: 0xFE65,
+ 14815 - 11905: 0xFE63,
+ 14963 - 11905: 0xFE64,
+ 15182 - 11905: 0xFE68,
+ 15470 - 11905: 0xFE69,
+ 15584 - 11905: 0xFE6A,
+ 16470 - 11905: 0xFE6F,
+ 16735 - 11905: 0xFE70,
+ 17207 - 11905: 0xFE72,
+ 17324 - 11905: 0xFE78,
+ 17329 - 11905: 0xFE77,
+ 17373 - 11905: 0xFE7A,
+ 17622 - 11905: 0xFE7B,
+ 17996 - 11905: 0xFE7D,
+ 18017 - 11905: 0xFE7C,
+ 18211 - 11905: 0xFE80,
+ 18217 - 11905: 0xFE81,
+ 18300 - 11905: 0xFE82,
+ 18317 - 11905: 0xFE83,
+ 18759 - 11905: 0xFE85,
+ 18810 - 11905: 0xFE86,
+ 18813 - 11905: 0xFE87,
+ 18818 - 11905: 0xFE88,
+ 18819 - 11905: 0xFE89,
+ 18821 - 11905: 0xFE8A,
+ 18822 - 11905: 0xFE8B,
+ 18843 - 11905: 0xFE8D,
+ 18847 - 11905: 0xFE8C,
+ 18870 - 11905: 0xFE8F,
+ 18871 - 11905: 0xFE8E,
+ 19575 - 11905: 0xFE96,
+ 19615 - 11905: 0xFE93,
+ 19616 - 11905: 0xFE94,
+ 19617 - 11905: 0xFE95,
+ 19618 - 11905: 0xFE97,
+ 19619 - 11905: 0xFE92,
+ 19731 - 11905: 0xFE98,
+ 19732 - 11905: 0xFE99,
+ 19733 - 11905: 0xFE9A,
+ 19734 - 11905: 0xFE9B,
+ 19735 - 11905: 0xFE9C,
+ 19736 - 11905: 0xFE9D,
+ 19737 - 11905: 0xFE9E,
+ 19886 - 11905: 0xFE9F,
+ 19968 - 11905: 0xD2BB,
+ 19969 - 11905: 0xB6A1,
+ 19970 - 11905: 0x8140,
+ 19971 - 11905: 0xC6DF,
+ 19972 - 11905: 0x8141,
+ 19973 - 11905: 0x8142,
+ 19974 - 11905: 0x8143,
+ 19975 - 11905: 0xCDF2,
+ 19976 - 11905: 0xD5C9,
+ 19977 - 11905: 0xC8FD,
+ 19978 - 11905: 0xC9CF,
+ 19979 - 11905: 0xCFC2,
+ 19980 - 11905: 0xD8A2,
+ 19981 - 11905: 0xB2BB,
+ 19982 - 11905: 0xD3EB,
+ 19983 - 11905: 0x8144,
+ 19984 - 11905: 0xD8A4,
+ 19985 - 11905: 0xB3F3,
+ 19986 - 11905: 0x8145,
+ 19987 - 11905: 0xD7A8,
+ 19988 - 11905: 0xC7D2,
+ 19989 - 11905: 0xD8A7,
+ 19990 - 11905: 0xCAC0,
+ 19991 - 11905: 0x8146,
+ 19992 - 11905: 0xC7F0,
+ 19993 - 11905: 0xB1FB,
+ 19994 - 11905: 0xD2B5,
+ 19995 - 11905: 0xB4D4,
+ 19996 - 11905: 0xB6AB,
+ 19997 - 11905: 0xCBBF,
+ 19998 - 11905: 0xD8A9,
+ 19999 - 11905: 0x8147,
+ 20000 - 11905: 0x8148,
+ 20001 - 11905: 0x8149,
+ 20002 - 11905: 0xB6AA,
+ 20003 - 11905: 0x814A,
+ 20004 - 11905: 0xC1BD,
+ 20005 - 11905: 0xD1CF,
+ 20006 - 11905: 0x814B,
+ 20007 - 11905: 0xC9A5,
+ 20008 - 11905: 0xD8AD,
+ 20009 - 11905: 0x814C,
+ 20010 - 11905: 0xB8F6,
+ 20011 - 11905: 0xD1BE,
+ 20012 - 11905: 0xE3DC,
+ 20013 - 11905: 0xD6D0,
+ 20014 - 11905: 0x814D,
+ 20015 - 11905: 0x814E,
+ 20016 - 11905: 0xB7E1,
+ 20017 - 11905: 0x814F,
+ 20018 - 11905: 0xB4AE,
+ 20019 - 11905: 0x8150,
+ 20020 - 11905: 0xC1D9,
+ 20021 - 11905: 0x8151,
+ 20022 - 11905: 0xD8BC,
+ 20023 - 11905: 0x8152,
+ 20024 - 11905: 0xCDE8,
+ 20025 - 11905: 0xB5A4,
+ 20026 - 11905: 0xCEAA,
+ 20027 - 11905: 0xD6F7,
+ 20028 - 11905: 0x8153,
+ 20029 - 11905: 0xC0F6,
+ 20030 - 11905: 0xBED9,
+ 20031 - 11905: 0xD8AF,
+ 20032 - 11905: 0x8154,
+ 20033 - 11905: 0x8155,
+ 20034 - 11905: 0x8156,
+ 20035 - 11905: 0xC4CB,
+ 20036 - 11905: 0x8157,
+ 20037 - 11905: 0xBEC3,
+ 20038 - 11905: 0x8158,
+ 20039 - 11905: 0xD8B1,
+ 20040 - 11905: 0xC3B4,
+ 20041 - 11905: 0xD2E5,
+ 20042 - 11905: 0x8159,
+ 20043 - 11905: 0xD6AE,
+ 20044 - 11905: 0xCEDA,
+ 20045 - 11905: 0xD5A7,
+ 20046 - 11905: 0xBAF5,
+ 20047 - 11905: 0xB7A6,
+ 20048 - 11905: 0xC0D6,
+ 20049 - 11905: 0x815A,
+ 20050 - 11905: 0xC6B9,
+ 20051 - 11905: 0xC5D2,
+ 20052 - 11905: 0xC7C7,
+ 20053 - 11905: 0x815B,
+ 20054 - 11905: 0xB9D4,
+ 20055 - 11905: 0x815C,
+ 20056 - 11905: 0xB3CB,
+ 20057 - 11905: 0xD2D2,
+ 20058 - 11905: 0x815D,
+ 20059 - 11905: 0x815E,
+ 20060 - 11905: 0xD8BF,
+ 20061 - 11905: 0xBEC5,
+ 20062 - 11905: 0xC6F2,
+ 20063 - 11905: 0xD2B2,
+ 20064 - 11905: 0xCFB0,
+ 20065 - 11905: 0xCFE7,
+ 20066 - 11905: 0x815F,
+ 20067 - 11905: 0x8160,
+ 20068 - 11905: 0x8161,
+ 20069 - 11905: 0x8162,
+ 20070 - 11905: 0xCAE9,
+ 20071 - 11905: 0x8163,
+ 20072 - 11905: 0x8164,
+ 20073 - 11905: 0xD8C0,
+ 20074 - 11905: 0x8165,
+ 20075 - 11905: 0x8166,
+ 20076 - 11905: 0x8167,
+ 20077 - 11905: 0x8168,
+ 20078 - 11905: 0x8169,
+ 20079 - 11905: 0x816A,
+ 20080 - 11905: 0xC2F2,
+ 20081 - 11905: 0xC2D2,
+ 20082 - 11905: 0x816B,
+ 20083 - 11905: 0xC8E9,
+ 20084 - 11905: 0x816C,
+ 20085 - 11905: 0x816D,
+ 20086 - 11905: 0x816E,
+ 20087 - 11905: 0x816F,
+ 20088 - 11905: 0x8170,
+ 20089 - 11905: 0x8171,
+ 20090 - 11905: 0x8172,
+ 20091 - 11905: 0x8173,
+ 20092 - 11905: 0x8174,
+ 20093 - 11905: 0x8175,
+ 20094 - 11905: 0xC7AC,
+ 20095 - 11905: 0x8176,
+ 20096 - 11905: 0x8177,
+ 20097 - 11905: 0x8178,
+ 20098 - 11905: 0x8179,
+ 20099 - 11905: 0x817A,
+ 20100 - 11905: 0x817B,
+ 20101 - 11905: 0x817C,
+ 20102 - 11905: 0xC1CB,
+ 20103 - 11905: 0x817D,
+ 20104 - 11905: 0xD3E8,
+ 20105 - 11905: 0xD5F9,
+ 20106 - 11905: 0x817E,
+ 20107 - 11905: 0xCAC2,
+ 20108 - 11905: 0xB6FE,
+ 20109 - 11905: 0xD8A1,
+ 20110 - 11905: 0xD3DA,
+ 20111 - 11905: 0xBFF7,
+ 20112 - 11905: 0x8180,
+ 20113 - 11905: 0xD4C6,
+ 20114 - 11905: 0xBBA5,
+ 20115 - 11905: 0xD8C1,
+ 20116 - 11905: 0xCEE5,
+ 20117 - 11905: 0xBEAE,
+ 20118 - 11905: 0x8181,
+ 20119 - 11905: 0x8182,
+ 20120 - 11905: 0xD8A8,
+ 20121 - 11905: 0x8183,
+ 20122 - 11905: 0xD1C7,
+ 20123 - 11905: 0xD0A9,
+ 20124 - 11905: 0x8184,
+ 20125 - 11905: 0x8185,
+ 20126 - 11905: 0x8186,
+ 20127 - 11905: 0xD8BD,
+ 20128 - 11905: 0xD9EF,
+ 20129 - 11905: 0xCDF6,
+ 20130 - 11905: 0xBFBA,
+ 20131 - 11905: 0x8187,
+ 20132 - 11905: 0xBDBB,
+ 20133 - 11905: 0xBAA5,
+ 20134 - 11905: 0xD2E0,
+ 20135 - 11905: 0xB2FA,
+ 20136 - 11905: 0xBAE0,
+ 20137 - 11905: 0xC4B6,
+ 20138 - 11905: 0x8188,
+ 20139 - 11905: 0xCFED,
+ 20140 - 11905: 0xBEA9,
+ 20141 - 11905: 0xCDA4,
+ 20142 - 11905: 0xC1C1,
+ 20143 - 11905: 0x8189,
+ 20144 - 11905: 0x818A,
+ 20145 - 11905: 0x818B,
+ 20146 - 11905: 0xC7D7,
+ 20147 - 11905: 0xD9F1,
+ 20148 - 11905: 0x818C,
+ 20149 - 11905: 0xD9F4,
+ 20150 - 11905: 0x818D,
+ 20151 - 11905: 0x818E,
+ 20152 - 11905: 0x818F,
+ 20153 - 11905: 0x8190,
+ 20154 - 11905: 0xC8CB,
+ 20155 - 11905: 0xD8E9,
+ 20156 - 11905: 0x8191,
+ 20157 - 11905: 0x8192,
+ 20158 - 11905: 0x8193,
+ 20159 - 11905: 0xD2DA,
+ 20160 - 11905: 0xCAB2,
+ 20161 - 11905: 0xC8CA,
+ 20162 - 11905: 0xD8EC,
+ 20163 - 11905: 0xD8EA,
+ 20164 - 11905: 0xD8C6,
+ 20165 - 11905: 0xBDF6,
+ 20166 - 11905: 0xC6CD,
+ 20167 - 11905: 0xB3F0,
+ 20168 - 11905: 0x8194,
+ 20169 - 11905: 0xD8EB,
+ 20170 - 11905: 0xBDF1,
+ 20171 - 11905: 0xBDE9,
+ 20172 - 11905: 0x8195,
+ 20173 - 11905: 0xC8D4,
+ 20174 - 11905: 0xB4D3,
+ 20175 - 11905: 0x8196,
+ 20176 - 11905: 0x8197,
+ 20177 - 11905: 0xC2D8,
+ 20178 - 11905: 0x8198,
+ 20179 - 11905: 0xB2D6,
+ 20180 - 11905: 0xD7D0,
+ 20181 - 11905: 0xCACB,
+ 20182 - 11905: 0xCBFB,
+ 20183 - 11905: 0xD5CC,
+ 20184 - 11905: 0xB8B6,
+ 20185 - 11905: 0xCFC9,
+ 20186 - 11905: 0x8199,
+ 20187 - 11905: 0x819A,
+ 20188 - 11905: 0x819B,
+ 20189 - 11905: 0xD9DA,
+ 20190 - 11905: 0xD8F0,
+ 20191 - 11905: 0xC7AA,
+ 20192 - 11905: 0x819C,
+ 20193 - 11905: 0xD8EE,
+ 20194 - 11905: 0x819D,
+ 20195 - 11905: 0xB4FA,
+ 20196 - 11905: 0xC1EE,
+ 20197 - 11905: 0xD2D4,
+ 20198 - 11905: 0x819E,
+ 20199 - 11905: 0x819F,
+ 20200 - 11905: 0xD8ED,
+ 20201 - 11905: 0x81A0,
+ 20202 - 11905: 0xD2C7,
+ 20203 - 11905: 0xD8EF,
+ 20204 - 11905: 0xC3C7,
+ 20205 - 11905: 0x81A1,
+ 20206 - 11905: 0x81A2,
+ 20207 - 11905: 0x81A3,
+ 20208 - 11905: 0xD1F6,
+ 20209 - 11905: 0x81A4,
+ 20210 - 11905: 0xD6D9,
+ 20211 - 11905: 0xD8F2,
+ 20212 - 11905: 0x81A5,
+ 20213 - 11905: 0xD8F5,
+ 20214 - 11905: 0xBCFE,
+ 20215 - 11905: 0xBCDB,
+ 20216 - 11905: 0x81A6,
+ 20217 - 11905: 0x81A7,
+ 20218 - 11905: 0x81A8,
+ 20219 - 11905: 0xC8CE,
+ 20220 - 11905: 0x81A9,
+ 20221 - 11905: 0xB7DD,
+ 20222 - 11905: 0x81AA,
+ 20223 - 11905: 0xB7C2,
+ 20224 - 11905: 0x81AB,
+ 20225 - 11905: 0xC6F3,
+ 20226 - 11905: 0x81AC,
+ 20227 - 11905: 0x81AD,
+ 20228 - 11905: 0x81AE,
+ 20229 - 11905: 0x81AF,
+ 20230 - 11905: 0x81B0,
+ 20231 - 11905: 0x81B1,
+ 20232 - 11905: 0x81B2,
+ 20233 - 11905: 0xD8F8,
+ 20234 - 11905: 0xD2C1,
+ 20235 - 11905: 0x81B3,
+ 20236 - 11905: 0x81B4,
+ 20237 - 11905: 0xCEE9,
+ 20238 - 11905: 0xBCBF,
+ 20239 - 11905: 0xB7FC,
+ 20240 - 11905: 0xB7A5,
+ 20241 - 11905: 0xD0DD,
+ 20242 - 11905: 0x81B5,
+ 20243 - 11905: 0x81B6,
+ 20244 - 11905: 0x81B7,
+ 20245 - 11905: 0x81B8,
+ 20246 - 11905: 0x81B9,
+ 20247 - 11905: 0xD6DA,
+ 20248 - 11905: 0xD3C5,
+ 20249 - 11905: 0xBBEF,
+ 20250 - 11905: 0xBBE1,
+ 20251 - 11905: 0xD8F1,
+ 20252 - 11905: 0x81BA,
+ 20253 - 11905: 0x81BB,
+ 20254 - 11905: 0xC9A1,
+ 20255 - 11905: 0xCEB0,
+ 20256 - 11905: 0xB4AB,
+ 20257 - 11905: 0x81BC,
+ 20258 - 11905: 0xD8F3,
+ 20259 - 11905: 0x81BD,
+ 20260 - 11905: 0xC9CB,
+ 20261 - 11905: 0xD8F6,
+ 20262 - 11905: 0xC2D7,
+ 20263 - 11905: 0xD8F7,
+ 20264 - 11905: 0x81BE,
+ 20265 - 11905: 0x81BF,
+ 20266 - 11905: 0xCEB1,
+ 20267 - 11905: 0xD8F9,
+ 20268 - 11905: 0x81C0,
+ 20269 - 11905: 0x81C1,
+ 20270 - 11905: 0x81C2,
+ 20271 - 11905: 0xB2AE,
+ 20272 - 11905: 0xB9C0,
+ 20273 - 11905: 0x81C3,
+ 20274 - 11905: 0xD9A3,
+ 20275 - 11905: 0x81C4,
+ 20276 - 11905: 0xB0E9,
+ 20277 - 11905: 0x81C5,
+ 20278 - 11905: 0xC1E6,
+ 20279 - 11905: 0x81C6,
+ 20280 - 11905: 0xC9EC,
+ 20281 - 11905: 0x81C7,
+ 20282 - 11905: 0xCBC5,
+ 20283 - 11905: 0x81C8,
+ 20284 - 11905: 0xCBC6,
+ 20285 - 11905: 0xD9A4,
+ 20286 - 11905: 0x81C9,
+ 20287 - 11905: 0x81CA,
+ 20288 - 11905: 0x81CB,
+ 20289 - 11905: 0x81CC,
+ 20290 - 11905: 0x81CD,
+ 20291 - 11905: 0xB5E8,
+ 20292 - 11905: 0x81CE,
+ 20293 - 11905: 0x81CF,
+ 20294 - 11905: 0xB5AB,
+ 20295 - 11905: 0x81D0,
+ 20296 - 11905: 0x81D1,
+ 20297 - 11905: 0x81D2,
+ 20298 - 11905: 0x81D3,
+ 20299 - 11905: 0x81D4,
+ 20300 - 11905: 0x81D5,
+ 20301 - 11905: 0xCEBB,
+ 20302 - 11905: 0xB5CD,
+ 20303 - 11905: 0xD7A1,
+ 20304 - 11905: 0xD7F4,
+ 20305 - 11905: 0xD3D3,
+ 20306 - 11905: 0x81D6,
+ 20307 - 11905: 0xCCE5,
+ 20308 - 11905: 0x81D7,
+ 20309 - 11905: 0xBACE,
+ 20310 - 11905: 0x81D8,
+ 20311 - 11905: 0xD9A2,
+ 20312 - 11905: 0xD9DC,
+ 20313 - 11905: 0xD3E0,
+ 20314 - 11905: 0xD8FD,
+ 20315 - 11905: 0xB7F0,
+ 20316 - 11905: 0xD7F7,
+ 20317 - 11905: 0xD8FE,
+ 20318 - 11905: 0xD8FA,
+ 20319 - 11905: 0xD9A1,
+ 20320 - 11905: 0xC4E3,
+ 20321 - 11905: 0x81D9,
+ 20322 - 11905: 0x81DA,
+ 20323 - 11905: 0xD3B6,
+ 20324 - 11905: 0xD8F4,
+ 20325 - 11905: 0xD9DD,
+ 20326 - 11905: 0x81DB,
+ 20327 - 11905: 0xD8FB,
+ 20328 - 11905: 0x81DC,
+ 20329 - 11905: 0xC5E5,
+ 20330 - 11905: 0x81DD,
+ 20331 - 11905: 0x81DE,
+ 20332 - 11905: 0xC0D0,
+ 20333 - 11905: 0x81DF,
+ 20334 - 11905: 0x81E0,
+ 20335 - 11905: 0xD1F0,
+ 20336 - 11905: 0xB0DB,
+ 20337 - 11905: 0x81E1,
+ 20338 - 11905: 0x81E2,
+ 20339 - 11905: 0xBCD1,
+ 20340 - 11905: 0xD9A6,
+ 20341 - 11905: 0x81E3,
+ 20342 - 11905: 0xD9A5,
+ 20343 - 11905: 0x81E4,
+ 20344 - 11905: 0x81E5,
+ 20345 - 11905: 0x81E6,
+ 20346 - 11905: 0x81E7,
+ 20347 - 11905: 0xD9AC,
+ 20348 - 11905: 0xD9AE,
+ 20349 - 11905: 0x81E8,
+ 20350 - 11905: 0xD9AB,
+ 20351 - 11905: 0xCAB9,
+ 20352 - 11905: 0x81E9,
+ 20353 - 11905: 0x81EA,
+ 20354 - 11905: 0x81EB,
+ 20355 - 11905: 0xD9A9,
+ 20356 - 11905: 0xD6B6,
+ 20357 - 11905: 0x81EC,
+ 20358 - 11905: 0x81ED,
+ 20359 - 11905: 0x81EE,
+ 20360 - 11905: 0xB3DE,
+ 20361 - 11905: 0xD9A8,
+ 20362 - 11905: 0x81EF,
+ 20363 - 11905: 0xC0FD,
+ 20364 - 11905: 0x81F0,
+ 20365 - 11905: 0xCACC,
+ 20366 - 11905: 0x81F1,
+ 20367 - 11905: 0xD9AA,
+ 20368 - 11905: 0x81F2,
+ 20369 - 11905: 0xD9A7,
+ 20370 - 11905: 0x81F3,
+ 20371 - 11905: 0x81F4,
+ 20372 - 11905: 0xD9B0,
+ 20373 - 11905: 0x81F5,
+ 20374 - 11905: 0x81F6,
+ 20375 - 11905: 0xB6B1,
+ 20376 - 11905: 0x81F7,
+ 20377 - 11905: 0x81F8,
+ 20378 - 11905: 0x81F9,
+ 20379 - 11905: 0xB9A9,
+ 20380 - 11905: 0x81FA,
+ 20381 - 11905: 0xD2C0,
+ 20382 - 11905: 0x81FB,
+ 20383 - 11905: 0x81FC,
+ 20384 - 11905: 0xCFC0,
+ 20385 - 11905: 0x81FD,
+ 20386 - 11905: 0x81FE,
+ 20387 - 11905: 0xC2C2,
+ 20388 - 11905: 0x8240,
+ 20389 - 11905: 0xBDC4,
+ 20390 - 11905: 0xD5EC,
+ 20391 - 11905: 0xB2E0,
+ 20392 - 11905: 0xC7C8,
+ 20393 - 11905: 0xBFEB,
+ 20394 - 11905: 0xD9AD,
+ 20395 - 11905: 0x8241,
+ 20396 - 11905: 0xD9AF,
+ 20397 - 11905: 0x8242,
+ 20398 - 11905: 0xCEEA,
+ 20399 - 11905: 0xBAEE,
+ 20400 - 11905: 0x8243,
+ 20401 - 11905: 0x8244,
+ 20402 - 11905: 0x8245,
+ 20403 - 11905: 0x8246,
+ 20404 - 11905: 0x8247,
+ 20405 - 11905: 0xC7D6,
+ 20406 - 11905: 0x8248,
+ 20407 - 11905: 0x8249,
+ 20408 - 11905: 0x824A,
+ 20409 - 11905: 0x824B,
+ 20410 - 11905: 0x824C,
+ 20411 - 11905: 0x824D,
+ 20412 - 11905: 0x824E,
+ 20413 - 11905: 0x824F,
+ 20414 - 11905: 0x8250,
+ 20415 - 11905: 0xB1E3,
+ 20416 - 11905: 0x8251,
+ 20417 - 11905: 0x8252,
+ 20418 - 11905: 0x8253,
+ 20419 - 11905: 0xB4D9,
+ 20420 - 11905: 0xB6ED,
+ 20421 - 11905: 0xD9B4,
+ 20422 - 11905: 0x8254,
+ 20423 - 11905: 0x8255,
+ 20424 - 11905: 0x8256,
+ 20425 - 11905: 0x8257,
+ 20426 - 11905: 0xBFA1,
+ 20427 - 11905: 0x8258,
+ 20428 - 11905: 0x8259,
+ 20429 - 11905: 0x825A,
+ 20430 - 11905: 0xD9DE,
+ 20431 - 11905: 0xC7CE,
+ 20432 - 11905: 0xC0FE,
+ 20433 - 11905: 0xD9B8,
+ 20434 - 11905: 0x825B,
+ 20435 - 11905: 0x825C,
+ 20436 - 11905: 0x825D,
+ 20437 - 11905: 0x825E,
+ 20438 - 11905: 0x825F,
+ 20439 - 11905: 0xCBD7,
+ 20440 - 11905: 0xB7FD,
+ 20441 - 11905: 0x8260,
+ 20442 - 11905: 0xD9B5,
+ 20443 - 11905: 0x8261,
+ 20444 - 11905: 0xD9B7,
+ 20445 - 11905: 0xB1A3,
+ 20446 - 11905: 0xD3E1,
+ 20447 - 11905: 0xD9B9,
+ 20448 - 11905: 0x8262,
+ 20449 - 11905: 0xD0C5,
+ 20450 - 11905: 0x8263,
+ 20451 - 11905: 0xD9B6,
+ 20452 - 11905: 0x8264,
+ 20453 - 11905: 0x8265,
+ 20454 - 11905: 0xD9B1,
+ 20455 - 11905: 0x8266,
+ 20456 - 11905: 0xD9B2,
+ 20457 - 11905: 0xC1A9,
+ 20458 - 11905: 0xD9B3,
+ 20459 - 11905: 0x8267,
+ 20460 - 11905: 0x8268,
+ 20461 - 11905: 0xBCF3,
+ 20462 - 11905: 0xD0DE,
+ 20463 - 11905: 0xB8A9,
+ 20464 - 11905: 0x8269,
+ 20465 - 11905: 0xBEE3,
+ 20466 - 11905: 0x826A,
+ 20467 - 11905: 0xD9BD,
+ 20468 - 11905: 0x826B,
+ 20469 - 11905: 0x826C,
+ 20470 - 11905: 0x826D,
+ 20471 - 11905: 0x826E,
+ 20472 - 11905: 0xD9BA,
+ 20473 - 11905: 0x826F,
+ 20474 - 11905: 0xB0B3,
+ 20475 - 11905: 0x8270,
+ 20476 - 11905: 0x8271,
+ 20477 - 11905: 0x8272,
+ 20478 - 11905: 0xD9C2,
+ 20479 - 11905: 0x8273,
+ 20480 - 11905: 0x8274,
+ 20481 - 11905: 0x8275,
+ 20482 - 11905: 0x8276,
+ 20483 - 11905: 0x8277,
+ 20484 - 11905: 0x8278,
+ 20485 - 11905: 0x8279,
+ 20486 - 11905: 0x827A,
+ 20487 - 11905: 0x827B,
+ 20488 - 11905: 0x827C,
+ 20489 - 11905: 0x827D,
+ 20490 - 11905: 0x827E,
+ 20491 - 11905: 0x8280,
+ 20492 - 11905: 0xD9C4,
+ 20493 - 11905: 0xB1B6,
+ 20494 - 11905: 0x8281,
+ 20495 - 11905: 0xD9BF,
+ 20496 - 11905: 0x8282,
+ 20497 - 11905: 0x8283,
+ 20498 - 11905: 0xB5B9,
+ 20499 - 11905: 0x8284,
+ 20500 - 11905: 0xBEF3,
+ 20501 - 11905: 0x8285,
+ 20502 - 11905: 0x8286,
+ 20503 - 11905: 0x8287,
+ 20504 - 11905: 0xCCC8,
+ 20505 - 11905: 0xBAF2,
+ 20506 - 11905: 0xD2D0,
+ 20507 - 11905: 0x8288,
+ 20508 - 11905: 0xD9C3,
+ 20509 - 11905: 0x8289,
+ 20510 - 11905: 0x828A,
+ 20511 - 11905: 0xBDE8,
+ 20512 - 11905: 0x828B,
+ 20513 - 11905: 0xB3AB,
+ 20514 - 11905: 0x828C,
+ 20515 - 11905: 0x828D,
+ 20516 - 11905: 0x828E,
+ 20517 - 11905: 0xD9C5,
+ 20518 - 11905: 0xBEEB,
+ 20519 - 11905: 0x828F,
+ 20520 - 11905: 0xD9C6,
+ 20521 - 11905: 0xD9BB,
+ 20522 - 11905: 0xC4DF,
+ 20523 - 11905: 0x8290,
+ 20524 - 11905: 0xD9BE,
+ 20525 - 11905: 0xD9C1,
+ 20526 - 11905: 0xD9C0,
+ 20527 - 11905: 0x8291,
+ 20528 - 11905: 0x8292,
+ 20529 - 11905: 0x8293,
+ 20530 - 11905: 0x8294,
+ 20531 - 11905: 0x8295,
+ 20532 - 11905: 0x8296,
+ 20533 - 11905: 0x8297,
+ 20534 - 11905: 0x8298,
+ 20535 - 11905: 0x8299,
+ 20536 - 11905: 0x829A,
+ 20537 - 11905: 0x829B,
+ 20538 - 11905: 0xD5AE,
+ 20539 - 11905: 0x829C,
+ 20540 - 11905: 0xD6B5,
+ 20541 - 11905: 0x829D,
+ 20542 - 11905: 0xC7E3,
+ 20543 - 11905: 0x829E,
+ 20544 - 11905: 0x829F,
+ 20545 - 11905: 0x82A0,
+ 20546 - 11905: 0x82A1,
+ 20547 - 11905: 0xD9C8,
+ 20548 - 11905: 0x82A2,
+ 20549 - 11905: 0x82A3,
+ 20550 - 11905: 0x82A4,
+ 20551 - 11905: 0xBCD9,
+ 20552 - 11905: 0xD9CA,
+ 20553 - 11905: 0x82A5,
+ 20554 - 11905: 0x82A6,
+ 20555 - 11905: 0x82A7,
+ 20556 - 11905: 0xD9BC,
+ 20557 - 11905: 0x82A8,
+ 20558 - 11905: 0xD9CB,
+ 20559 - 11905: 0xC6AB,
+ 20560 - 11905: 0x82A9,
+ 20561 - 11905: 0x82AA,
+ 20562 - 11905: 0x82AB,
+ 20563 - 11905: 0x82AC,
+ 20564 - 11905: 0x82AD,
+ 20565 - 11905: 0xD9C9,
+ 20566 - 11905: 0x82AE,
+ 20567 - 11905: 0x82AF,
+ 20568 - 11905: 0x82B0,
+ 20569 - 11905: 0x82B1,
+ 20570 - 11905: 0xD7F6,
+ 20571 - 11905: 0x82B2,
+ 20572 - 11905: 0xCDA3,
+ 20573 - 11905: 0x82B3,
+ 20574 - 11905: 0x82B4,
+ 20575 - 11905: 0x82B5,
+ 20576 - 11905: 0x82B6,
+ 20577 - 11905: 0x82B7,
+ 20578 - 11905: 0x82B8,
+ 20579 - 11905: 0x82B9,
+ 20580 - 11905: 0x82BA,
+ 20581 - 11905: 0xBDA1,
+ 20582 - 11905: 0x82BB,
+ 20583 - 11905: 0x82BC,
+ 20584 - 11905: 0x82BD,
+ 20585 - 11905: 0x82BE,
+ 20586 - 11905: 0x82BF,
+ 20587 - 11905: 0x82C0,
+ 20588 - 11905: 0xD9CC,
+ 20589 - 11905: 0x82C1,
+ 20590 - 11905: 0x82C2,
+ 20591 - 11905: 0x82C3,
+ 20592 - 11905: 0x82C4,
+ 20593 - 11905: 0x82C5,
+ 20594 - 11905: 0x82C6,
+ 20595 - 11905: 0x82C7,
+ 20596 - 11905: 0x82C8,
+ 20597 - 11905: 0x82C9,
+ 20598 - 11905: 0xC5BC,
+ 20599 - 11905: 0xCDB5,
+ 20600 - 11905: 0x82CA,
+ 20601 - 11905: 0x82CB,
+ 20602 - 11905: 0x82CC,
+ 20603 - 11905: 0xD9CD,
+ 20604 - 11905: 0x82CD,
+ 20605 - 11905: 0x82CE,
+ 20606 - 11905: 0xD9C7,
+ 20607 - 11905: 0xB3A5,
+ 20608 - 11905: 0xBFFE,
+ 20609 - 11905: 0x82CF,
+ 20610 - 11905: 0x82D0,
+ 20611 - 11905: 0x82D1,
+ 20612 - 11905: 0x82D2,
+ 20613 - 11905: 0xB8B5,
+ 20614 - 11905: 0x82D3,
+ 20615 - 11905: 0x82D4,
+ 20616 - 11905: 0xC0FC,
+ 20617 - 11905: 0x82D5,
+ 20618 - 11905: 0x82D6,
+ 20619 - 11905: 0x82D7,
+ 20620 - 11905: 0x82D8,
+ 20621 - 11905: 0xB0F8,
+ 20622 - 11905: 0x82D9,
+ 20623 - 11905: 0x82DA,
+ 20624 - 11905: 0x82DB,
+ 20625 - 11905: 0x82DC,
+ 20626 - 11905: 0x82DD,
+ 20627 - 11905: 0x82DE,
+ 20628 - 11905: 0x82DF,
+ 20629 - 11905: 0x82E0,
+ 20630 - 11905: 0x82E1,
+ 20631 - 11905: 0x82E2,
+ 20632 - 11905: 0x82E3,
+ 20633 - 11905: 0x82E4,
+ 20634 - 11905: 0x82E5,
+ 20635 - 11905: 0x82E6,
+ 20636 - 11905: 0x82E7,
+ 20637 - 11905: 0x82E8,
+ 20638 - 11905: 0x82E9,
+ 20639 - 11905: 0x82EA,
+ 20640 - 11905: 0x82EB,
+ 20641 - 11905: 0x82EC,
+ 20642 - 11905: 0x82ED,
+ 20643 - 11905: 0xB4F6,
+ 20644 - 11905: 0x82EE,
+ 20645 - 11905: 0xD9CE,
+ 20646 - 11905: 0x82EF,
+ 20647 - 11905: 0xD9CF,
+ 20648 - 11905: 0xB4A2,
+ 20649 - 11905: 0xD9D0,
+ 20650 - 11905: 0x82F0,
+ 20651 - 11905: 0x82F1,
+ 20652 - 11905: 0xB4DF,
+ 20653 - 11905: 0x82F2,
+ 20654 - 11905: 0x82F3,
+ 20655 - 11905: 0x82F4,
+ 20656 - 11905: 0x82F5,
+ 20657 - 11905: 0x82F6,
+ 20658 - 11905: 0xB0C1,
+ 20659 - 11905: 0x82F7,
+ 20660 - 11905: 0x82F8,
+ 20661 - 11905: 0x82F9,
+ 20662 - 11905: 0x82FA,
+ 20663 - 11905: 0x82FB,
+ 20664 - 11905: 0x82FC,
+ 20665 - 11905: 0x82FD,
+ 20666 - 11905: 0xD9D1,
+ 20667 - 11905: 0xC9B5,
+ 20668 - 11905: 0x82FE,
+ 20669 - 11905: 0x8340,
+ 20670 - 11905: 0x8341,
+ 20671 - 11905: 0x8342,
+ 20672 - 11905: 0x8343,
+ 20673 - 11905: 0x8344,
+ 20674 - 11905: 0x8345,
+ 20675 - 11905: 0x8346,
+ 20676 - 11905: 0x8347,
+ 20677 - 11905: 0x8348,
+ 20678 - 11905: 0x8349,
+ 20679 - 11905: 0x834A,
+ 20680 - 11905: 0x834B,
+ 20681 - 11905: 0x834C,
+ 20682 - 11905: 0x834D,
+ 20683 - 11905: 0x834E,
+ 20684 - 11905: 0x834F,
+ 20685 - 11905: 0x8350,
+ 20686 - 11905: 0x8351,
+ 20687 - 11905: 0xCFF1,
+ 20688 - 11905: 0x8352,
+ 20689 - 11905: 0x8353,
+ 20690 - 11905: 0x8354,
+ 20691 - 11905: 0x8355,
+ 20692 - 11905: 0x8356,
+ 20693 - 11905: 0x8357,
+ 20694 - 11905: 0xD9D2,
+ 20695 - 11905: 0x8358,
+ 20696 - 11905: 0x8359,
+ 20697 - 11905: 0x835A,
+ 20698 - 11905: 0xC1C5,
+ 20699 - 11905: 0x835B,
+ 20700 - 11905: 0x835C,
+ 20701 - 11905: 0x835D,
+ 20702 - 11905: 0x835E,
+ 20703 - 11905: 0x835F,
+ 20704 - 11905: 0x8360,
+ 20705 - 11905: 0x8361,
+ 20706 - 11905: 0x8362,
+ 20707 - 11905: 0x8363,
+ 20708 - 11905: 0x8364,
+ 20709 - 11905: 0x8365,
+ 20710 - 11905: 0xD9D6,
+ 20711 - 11905: 0xC9AE,
+ 20712 - 11905: 0x8366,
+ 20713 - 11905: 0x8367,
+ 20714 - 11905: 0x8368,
+ 20715 - 11905: 0x8369,
+ 20716 - 11905: 0xD9D5,
+ 20717 - 11905: 0xD9D4,
+ 20718 - 11905: 0xD9D7,
+ 20719 - 11905: 0x836A,
+ 20720 - 11905: 0x836B,
+ 20721 - 11905: 0x836C,
+ 20722 - 11905: 0x836D,
+ 20723 - 11905: 0xCBDB,
+ 20724 - 11905: 0x836E,
+ 20725 - 11905: 0xBDA9,
+ 20726 - 11905: 0x836F,
+ 20727 - 11905: 0x8370,
+ 20728 - 11905: 0x8371,
+ 20729 - 11905: 0x8372,
+ 20730 - 11905: 0x8373,
+ 20731 - 11905: 0xC6A7,
+ 20732 - 11905: 0x8374,
+ 20733 - 11905: 0x8375,
+ 20734 - 11905: 0x8376,
+ 20735 - 11905: 0x8377,
+ 20736 - 11905: 0x8378,
+ 20737 - 11905: 0x8379,
+ 20738 - 11905: 0x837A,
+ 20739 - 11905: 0x837B,
+ 20740 - 11905: 0x837C,
+ 20741 - 11905: 0x837D,
+ 20742 - 11905: 0xD9D3,
+ 20743 - 11905: 0xD9D8,
+ 20744 - 11905: 0x837E,
+ 20745 - 11905: 0x8380,
+ 20746 - 11905: 0x8381,
+ 20747 - 11905: 0xD9D9,
+ 20748 - 11905: 0x8382,
+ 20749 - 11905: 0x8383,
+ 20750 - 11905: 0x8384,
+ 20751 - 11905: 0x8385,
+ 20752 - 11905: 0x8386,
+ 20753 - 11905: 0x8387,
+ 20754 - 11905: 0xC8E5,
+ 20755 - 11905: 0x8388,
+ 20756 - 11905: 0x8389,
+ 20757 - 11905: 0x838A,
+ 20758 - 11905: 0x838B,
+ 20759 - 11905: 0x838C,
+ 20760 - 11905: 0x838D,
+ 20761 - 11905: 0x838E,
+ 20762 - 11905: 0x838F,
+ 20763 - 11905: 0x8390,
+ 20764 - 11905: 0x8391,
+ 20765 - 11905: 0x8392,
+ 20766 - 11905: 0x8393,
+ 20767 - 11905: 0x8394,
+ 20768 - 11905: 0x8395,
+ 20769 - 11905: 0xC0DC,
+ 20770 - 11905: 0x8396,
+ 20771 - 11905: 0x8397,
+ 20772 - 11905: 0x8398,
+ 20773 - 11905: 0x8399,
+ 20774 - 11905: 0x839A,
+ 20775 - 11905: 0x839B,
+ 20776 - 11905: 0x839C,
+ 20777 - 11905: 0x839D,
+ 20778 - 11905: 0x839E,
+ 20779 - 11905: 0x839F,
+ 20780 - 11905: 0x83A0,
+ 20781 - 11905: 0x83A1,
+ 20782 - 11905: 0x83A2,
+ 20783 - 11905: 0x83A3,
+ 20784 - 11905: 0x83A4,
+ 20785 - 11905: 0x83A5,
+ 20786 - 11905: 0x83A6,
+ 20787 - 11905: 0x83A7,
+ 20788 - 11905: 0x83A8,
+ 20789 - 11905: 0x83A9,
+ 20790 - 11905: 0x83AA,
+ 20791 - 11905: 0x83AB,
+ 20792 - 11905: 0x83AC,
+ 20793 - 11905: 0x83AD,
+ 20794 - 11905: 0x83AE,
+ 20795 - 11905: 0x83AF,
+ 20796 - 11905: 0x83B0,
+ 20797 - 11905: 0x83B1,
+ 20798 - 11905: 0x83B2,
+ 20799 - 11905: 0xB6F9,
+ 20800 - 11905: 0xD8A3,
+ 20801 - 11905: 0xD4CA,
+ 20802 - 11905: 0x83B3,
+ 20803 - 11905: 0xD4AA,
+ 20804 - 11905: 0xD0D6,
+ 20805 - 11905: 0xB3E4,
+ 20806 - 11905: 0xD5D7,
+ 20807 - 11905: 0x83B4,
+ 20808 - 11905: 0xCFC8,
+ 20809 - 11905: 0xB9E2,
+ 20810 - 11905: 0x83B5,
+ 20811 - 11905: 0xBFCB,
+ 20812 - 11905: 0x83B6,
+ 20813 - 11905: 0xC3E2,
+ 20814 - 11905: 0x83B7,
+ 20815 - 11905: 0x83B8,
+ 20816 - 11905: 0x83B9,
+ 20817 - 11905: 0xB6D2,
+ 20818 - 11905: 0x83BA,
+ 20819 - 11905: 0x83BB,
+ 20820 - 11905: 0xCDC3,
+ 20821 - 11905: 0xD9EE,
+ 20822 - 11905: 0xD9F0,
+ 20823 - 11905: 0x83BC,
+ 20824 - 11905: 0x83BD,
+ 20825 - 11905: 0x83BE,
+ 20826 - 11905: 0xB5B3,
+ 20827 - 11905: 0x83BF,
+ 20828 - 11905: 0xB6B5,
+ 20829 - 11905: 0x83C0,
+ 20830 - 11905: 0x83C1,
+ 20831 - 11905: 0x83C2,
+ 20832 - 11905: 0x83C3,
+ 20833 - 11905: 0x83C4,
+ 20834 - 11905: 0xBEA4,
+ 20835 - 11905: 0x83C5,
+ 20836 - 11905: 0x83C6,
+ 20837 - 11905: 0xC8EB,
+ 20838 - 11905: 0x83C7,
+ 20839 - 11905: 0x83C8,
+ 20840 - 11905: 0xC8AB,
+ 20841 - 11905: 0x83C9,
+ 20842 - 11905: 0x83CA,
+ 20843 - 11905: 0xB0CB,
+ 20844 - 11905: 0xB9AB,
+ 20845 - 11905: 0xC1F9,
+ 20846 - 11905: 0xD9E2,
+ 20847 - 11905: 0x83CB,
+ 20848 - 11905: 0xC0BC,
+ 20849 - 11905: 0xB9B2,
+ 20850 - 11905: 0x83CC,
+ 20851 - 11905: 0xB9D8,
+ 20852 - 11905: 0xD0CB,
+ 20853 - 11905: 0xB1F8,
+ 20854 - 11905: 0xC6E4,
+ 20855 - 11905: 0xBEDF,
+ 20856 - 11905: 0xB5E4,
+ 20857 - 11905: 0xD7C8,
+ 20858 - 11905: 0x83CD,
+ 20859 - 11905: 0xD1F8,
+ 20860 - 11905: 0xBCE6,
+ 20861 - 11905: 0xCADE,
+ 20862 - 11905: 0x83CE,
+ 20863 - 11905: 0x83CF,
+ 20864 - 11905: 0xBCBD,
+ 20865 - 11905: 0xD9E6,
+ 20866 - 11905: 0xD8E7,
+ 20867 - 11905: 0x83D0,
+ 20868 - 11905: 0x83D1,
+ 20869 - 11905: 0xC4DA,
+ 20870 - 11905: 0x83D2,
+ 20871 - 11905: 0x83D3,
+ 20872 - 11905: 0xB8D4,
+ 20873 - 11905: 0xC8BD,
+ 20874 - 11905: 0x83D4,
+ 20875 - 11905: 0x83D5,
+ 20876 - 11905: 0xB2E1,
+ 20877 - 11905: 0xD4D9,
+ 20878 - 11905: 0x83D6,
+ 20879 - 11905: 0x83D7,
+ 20880 - 11905: 0x83D8,
+ 20881 - 11905: 0x83D9,
+ 20882 - 11905: 0xC3B0,
+ 20883 - 11905: 0x83DA,
+ 20884 - 11905: 0x83DB,
+ 20885 - 11905: 0xC3E1,
+ 20886 - 11905: 0xDAA2,
+ 20887 - 11905: 0xC8DF,
+ 20888 - 11905: 0x83DC,
+ 20889 - 11905: 0xD0B4,
+ 20890 - 11905: 0x83DD,
+ 20891 - 11905: 0xBEFC,
+ 20892 - 11905: 0xC5A9,
+ 20893 - 11905: 0x83DE,
+ 20894 - 11905: 0x83DF,
+ 20895 - 11905: 0x83E0,
+ 20896 - 11905: 0xB9DA,
+ 20897 - 11905: 0x83E1,
+ 20898 - 11905: 0xDAA3,
+ 20899 - 11905: 0x83E2,
+ 20900 - 11905: 0xD4A9,
+ 20901 - 11905: 0xDAA4,
+ 20902 - 11905: 0x83E3,
+ 20903 - 11905: 0x83E4,
+ 20904 - 11905: 0x83E5,
+ 20905 - 11905: 0x83E6,
+ 20906 - 11905: 0x83E7,
+ 20907 - 11905: 0xD9FB,
+ 20908 - 11905: 0xB6AC,
+ 20909 - 11905: 0x83E8,
+ 20910 - 11905: 0x83E9,
+ 20911 - 11905: 0xB7EB,
+ 20912 - 11905: 0xB1F9,
+ 20913 - 11905: 0xD9FC,
+ 20914 - 11905: 0xB3E5,
+ 20915 - 11905: 0xBEF6,
+ 20916 - 11905: 0x83EA,
+ 20917 - 11905: 0xBFF6,
+ 20918 - 11905: 0xD2B1,
+ 20919 - 11905: 0xC0E4,
+ 20920 - 11905: 0x83EB,
+ 20921 - 11905: 0x83EC,
+ 20922 - 11905: 0x83ED,
+ 20923 - 11905: 0xB6B3,
+ 20924 - 11905: 0xD9FE,
+ 20925 - 11905: 0xD9FD,
+ 20926 - 11905: 0x83EE,
+ 20927 - 11905: 0x83EF,
+ 20928 - 11905: 0xBEBB,
+ 20929 - 11905: 0x83F0,
+ 20930 - 11905: 0x83F1,
+ 20931 - 11905: 0x83F2,
+ 20932 - 11905: 0xC6E0,
+ 20933 - 11905: 0x83F3,
+ 20934 - 11905: 0xD7BC,
+ 20935 - 11905: 0xDAA1,
+ 20936 - 11905: 0x83F4,
+ 20937 - 11905: 0xC1B9,
+ 20938 - 11905: 0x83F5,
+ 20939 - 11905: 0xB5F2,
+ 20940 - 11905: 0xC1E8,
+ 20941 - 11905: 0x83F6,
+ 20942 - 11905: 0x83F7,
+ 20943 - 11905: 0xBCF5,
+ 20944 - 11905: 0x83F8,
+ 20945 - 11905: 0xB4D5,
+ 20946 - 11905: 0x83F9,
+ 20947 - 11905: 0x83FA,
+ 20948 - 11905: 0x83FB,
+ 20949 - 11905: 0x83FC,
+ 20950 - 11905: 0x83FD,
+ 20951 - 11905: 0x83FE,
+ 20952 - 11905: 0x8440,
+ 20953 - 11905: 0x8441,
+ 20954 - 11905: 0x8442,
+ 20955 - 11905: 0xC1DD,
+ 20956 - 11905: 0x8443,
+ 20957 - 11905: 0xC4FD,
+ 20958 - 11905: 0x8444,
+ 20959 - 11905: 0x8445,
+ 20960 - 11905: 0xBCB8,
+ 20961 - 11905: 0xB7B2,
+ 20962 - 11905: 0x8446,
+ 20963 - 11905: 0x8447,
+ 20964 - 11905: 0xB7EF,
+ 20965 - 11905: 0x8448,
+ 20966 - 11905: 0x8449,
+ 20967 - 11905: 0x844A,
+ 20968 - 11905: 0x844B,
+ 20969 - 11905: 0x844C,
+ 20970 - 11905: 0x844D,
+ 20971 - 11905: 0xD9EC,
+ 20972 - 11905: 0x844E,
+ 20973 - 11905: 0xC6BE,
+ 20974 - 11905: 0x844F,
+ 20975 - 11905: 0xBFAD,
+ 20976 - 11905: 0xBBCB,
+ 20977 - 11905: 0x8450,
+ 20978 - 11905: 0x8451,
+ 20979 - 11905: 0xB5CA,
+ 20980 - 11905: 0x8452,
+ 20981 - 11905: 0xDBC9,
+ 20982 - 11905: 0xD0D7,
+ 20983 - 11905: 0x8453,
+ 20984 - 11905: 0xCDB9,
+ 20985 - 11905: 0xB0BC,
+ 20986 - 11905: 0xB3F6,
+ 20987 - 11905: 0xBBF7,
+ 20988 - 11905: 0xDBCA,
+ 20989 - 11905: 0xBAAF,
+ 20990 - 11905: 0x8454,
+ 20991 - 11905: 0xD4E4,
+ 20992 - 11905: 0xB5B6,
+ 20993 - 11905: 0xB5F3,
+ 20994 - 11905: 0xD8D6,
+ 20995 - 11905: 0xC8D0,
+ 20996 - 11905: 0x8455,
+ 20997 - 11905: 0x8456,
+ 20998 - 11905: 0xB7D6,
+ 20999 - 11905: 0xC7D0,
+ 21000 - 11905: 0xD8D7,
+ 21001 - 11905: 0x8457,
+ 21002 - 11905: 0xBFAF,
+ 21003 - 11905: 0x8458,
+ 21004 - 11905: 0x8459,
+ 21005 - 11905: 0xDBBB,
+ 21006 - 11905: 0xD8D8,
+ 21007 - 11905: 0x845A,
+ 21008 - 11905: 0x845B,
+ 21009 - 11905: 0xD0CC,
+ 21010 - 11905: 0xBBAE,
+ 21011 - 11905: 0x845C,
+ 21012 - 11905: 0x845D,
+ 21013 - 11905: 0x845E,
+ 21014 - 11905: 0xEBBE,
+ 21015 - 11905: 0xC1D0,
+ 21016 - 11905: 0xC1F5,
+ 21017 - 11905: 0xD4F2,
+ 21018 - 11905: 0xB8D5,
+ 21019 - 11905: 0xB4B4,
+ 21020 - 11905: 0x845F,
+ 21021 - 11905: 0xB3F5,
+ 21022 - 11905: 0x8460,
+ 21023 - 11905: 0x8461,
+ 21024 - 11905: 0xC9BE,
+ 21025 - 11905: 0x8462,
+ 21026 - 11905: 0x8463,
+ 21027 - 11905: 0x8464,
+ 21028 - 11905: 0xC5D0,
+ 21029 - 11905: 0x8465,
+ 21030 - 11905: 0x8466,
+ 21031 - 11905: 0x8467,
+ 21032 - 11905: 0xC5D9,
+ 21033 - 11905: 0xC0FB,
+ 21034 - 11905: 0x8468,
+ 21035 - 11905: 0xB1F0,
+ 21036 - 11905: 0x8469,
+ 21037 - 11905: 0xD8D9,
+ 21038 - 11905: 0xB9CE,
+ 21039 - 11905: 0x846A,
+ 21040 - 11905: 0xB5BD,
+ 21041 - 11905: 0x846B,
+ 21042 - 11905: 0x846C,
+ 21043 - 11905: 0xD8DA,
+ 21044 - 11905: 0x846D,
+ 21045 - 11905: 0x846E,
+ 21046 - 11905: 0xD6C6,
+ 21047 - 11905: 0xCBA2,
+ 21048 - 11905: 0xC8AF,
+ 21049 - 11905: 0xC9B2,
+ 21050 - 11905: 0xB4CC,
+ 21051 - 11905: 0xBFCC,
+ 21052 - 11905: 0x846F,
+ 21053 - 11905: 0xB9F4,
+ 21054 - 11905: 0x8470,
+ 21055 - 11905: 0xD8DB,
+ 21056 - 11905: 0xD8DC,
+ 21057 - 11905: 0xB6E7,
+ 21058 - 11905: 0xBCC1,
+ 21059 - 11905: 0xCCEA,
+ 21060 - 11905: 0x8471,
+ 21061 - 11905: 0x8472,
+ 21062 - 11905: 0x8473,
+ 21063 - 11905: 0x8474,
+ 21064 - 11905: 0x8475,
+ 21065 - 11905: 0x8476,
+ 21066 - 11905: 0xCFF7,
+ 21067 - 11905: 0x8477,
+ 21068 - 11905: 0xD8DD,
+ 21069 - 11905: 0xC7B0,
+ 21070 - 11905: 0x8478,
+ 21071 - 11905: 0x8479,
+ 21072 - 11905: 0xB9D0,
+ 21073 - 11905: 0xBDA3,
+ 21074 - 11905: 0x847A,
+ 21075 - 11905: 0x847B,
+ 21076 - 11905: 0xCCDE,
+ 21077 - 11905: 0x847C,
+ 21078 - 11905: 0xC6CA,
+ 21079 - 11905: 0x847D,
+ 21080 - 11905: 0x847E,
+ 21081 - 11905: 0x8480,
+ 21082 - 11905: 0x8481,
+ 21083 - 11905: 0x8482,
+ 21084 - 11905: 0xD8E0,
+ 21085 - 11905: 0x8483,
+ 21086 - 11905: 0xD8DE,
+ 21087 - 11905: 0x8484,
+ 21088 - 11905: 0x8485,
+ 21089 - 11905: 0xD8DF,
+ 21090 - 11905: 0x8486,
+ 21091 - 11905: 0x8487,
+ 21092 - 11905: 0x8488,
+ 21093 - 11905: 0xB0FE,
+ 21094 - 11905: 0x8489,
+ 21095 - 11905: 0xBEE7,
+ 21096 - 11905: 0x848A,
+ 21097 - 11905: 0xCAA3,
+ 21098 - 11905: 0xBCF4,
+ 21099 - 11905: 0x848B,
+ 21100 - 11905: 0x848C,
+ 21101 - 11905: 0x848D,
+ 21102 - 11905: 0x848E,
+ 21103 - 11905: 0xB8B1,
+ 21104 - 11905: 0x848F,
+ 21105 - 11905: 0x8490,
+ 21106 - 11905: 0xB8EE,
+ 21107 - 11905: 0x8491,
+ 21108 - 11905: 0x8492,
+ 21109 - 11905: 0x8493,
+ 21110 - 11905: 0x8494,
+ 21111 - 11905: 0x8495,
+ 21112 - 11905: 0x8496,
+ 21113 - 11905: 0x8497,
+ 21114 - 11905: 0x8498,
+ 21115 - 11905: 0x8499,
+ 21116 - 11905: 0x849A,
+ 21117 - 11905: 0xD8E2,
+ 21118 - 11905: 0x849B,
+ 21119 - 11905: 0xBDCB,
+ 21120 - 11905: 0x849C,
+ 21121 - 11905: 0xD8E4,
+ 21122 - 11905: 0xD8E3,
+ 21123 - 11905: 0x849D,
+ 21124 - 11905: 0x849E,
+ 21125 - 11905: 0x849F,
+ 21126 - 11905: 0x84A0,
+ 21127 - 11905: 0x84A1,
+ 21128 - 11905: 0xC5FC,
+ 21129 - 11905: 0x84A2,
+ 21130 - 11905: 0x84A3,
+ 21131 - 11905: 0x84A4,
+ 21132 - 11905: 0x84A5,
+ 21133 - 11905: 0x84A6,
+ 21134 - 11905: 0x84A7,
+ 21135 - 11905: 0x84A8,
+ 21136 - 11905: 0xD8E5,
+ 21137 - 11905: 0x84A9,
+ 21138 - 11905: 0x84AA,
+ 21139 - 11905: 0xD8E6,
+ 21140 - 11905: 0x84AB,
+ 21141 - 11905: 0x84AC,
+ 21142 - 11905: 0x84AD,
+ 21143 - 11905: 0x84AE,
+ 21144 - 11905: 0x84AF,
+ 21145 - 11905: 0x84B0,
+ 21146 - 11905: 0x84B1,
+ 21147 - 11905: 0xC1A6,
+ 21148 - 11905: 0x84B2,
+ 21149 - 11905: 0xC8B0,
+ 21150 - 11905: 0xB0EC,
+ 21151 - 11905: 0xB9A6,
+ 21152 - 11905: 0xBCD3,
+ 21153 - 11905: 0xCEF1,
+ 21154 - 11905: 0xDBBD,
+ 21155 - 11905: 0xC1D3,
+ 21156 - 11905: 0x84B3,
+ 21157 - 11905: 0x84B4,
+ 21158 - 11905: 0x84B5,
+ 21159 - 11905: 0x84B6,
+ 21160 - 11905: 0xB6AF,
+ 21161 - 11905: 0xD6FA,
+ 21162 - 11905: 0xC5AC,
+ 21163 - 11905: 0xBDD9,
+ 21164 - 11905: 0xDBBE,
+ 21165 - 11905: 0xDBBF,
+ 21166 - 11905: 0x84B7,
+ 21167 - 11905: 0x84B8,
+ 21168 - 11905: 0x84B9,
+ 21169 - 11905: 0xC0F8,
+ 21170 - 11905: 0xBEA2,
+ 21171 - 11905: 0xC0CD,
+ 21172 - 11905: 0x84BA,
+ 21173 - 11905: 0x84BB,
+ 21174 - 11905: 0x84BC,
+ 21175 - 11905: 0x84BD,
+ 21176 - 11905: 0x84BE,
+ 21177 - 11905: 0x84BF,
+ 21178 - 11905: 0x84C0,
+ 21179 - 11905: 0x84C1,
+ 21180 - 11905: 0x84C2,
+ 21181 - 11905: 0x84C3,
+ 21182 - 11905: 0xDBC0,
+ 21183 - 11905: 0xCAC6,
+ 21184 - 11905: 0x84C4,
+ 21185 - 11905: 0x84C5,
+ 21186 - 11905: 0x84C6,
+ 21187 - 11905: 0xB2AA,
+ 21188 - 11905: 0x84C7,
+ 21189 - 11905: 0x84C8,
+ 21190 - 11905: 0x84C9,
+ 21191 - 11905: 0xD3C2,
+ 21192 - 11905: 0x84CA,
+ 21193 - 11905: 0xC3E3,
+ 21194 - 11905: 0x84CB,
+ 21195 - 11905: 0xD1AB,
+ 21196 - 11905: 0x84CC,
+ 21197 - 11905: 0x84CD,
+ 21198 - 11905: 0x84CE,
+ 21199 - 11905: 0x84CF,
+ 21200 - 11905: 0xDBC2,
+ 21201 - 11905: 0x84D0,
+ 21202 - 11905: 0xC0D5,
+ 21203 - 11905: 0x84D1,
+ 21204 - 11905: 0x84D2,
+ 21205 - 11905: 0x84D3,
+ 21206 - 11905: 0xDBC3,
+ 21207 - 11905: 0x84D4,
+ 21208 - 11905: 0xBFB1,
+ 21209 - 11905: 0x84D5,
+ 21210 - 11905: 0x84D6,
+ 21211 - 11905: 0x84D7,
+ 21212 - 11905: 0x84D8,
+ 21213 - 11905: 0x84D9,
+ 21214 - 11905: 0x84DA,
+ 21215 - 11905: 0xC4BC,
+ 21216 - 11905: 0x84DB,
+ 21217 - 11905: 0x84DC,
+ 21218 - 11905: 0x84DD,
+ 21219 - 11905: 0x84DE,
+ 21220 - 11905: 0xC7DA,
+ 21221 - 11905: 0x84DF,
+ 21222 - 11905: 0x84E0,
+ 21223 - 11905: 0x84E1,
+ 21224 - 11905: 0x84E2,
+ 21225 - 11905: 0x84E3,
+ 21226 - 11905: 0x84E4,
+ 21227 - 11905: 0x84E5,
+ 21228 - 11905: 0x84E6,
+ 21229 - 11905: 0x84E7,
+ 21230 - 11905: 0x84E8,
+ 21231 - 11905: 0x84E9,
+ 21232 - 11905: 0xDBC4,
+ 21233 - 11905: 0x84EA,
+ 21234 - 11905: 0x84EB,
+ 21235 - 11905: 0x84EC,
+ 21236 - 11905: 0x84ED,
+ 21237 - 11905: 0x84EE,
+ 21238 - 11905: 0x84EF,
+ 21239 - 11905: 0x84F0,
+ 21240 - 11905: 0x84F1,
+ 21241 - 11905: 0xD9E8,
+ 21242 - 11905: 0xC9D7,
+ 21243 - 11905: 0x84F2,
+ 21244 - 11905: 0x84F3,
+ 21245 - 11905: 0x84F4,
+ 21246 - 11905: 0xB9B4,
+ 21247 - 11905: 0xCEF0,
+ 21248 - 11905: 0xD4C8,
+ 21249 - 11905: 0x84F5,
+ 21250 - 11905: 0x84F6,
+ 21251 - 11905: 0x84F7,
+ 21252 - 11905: 0x84F8,
+ 21253 - 11905: 0xB0FC,
+ 21254 - 11905: 0xB4D2,
+ 21255 - 11905: 0x84F9,
+ 21256 - 11905: 0xD0D9,
+ 21257 - 11905: 0x84FA,
+ 21258 - 11905: 0x84FB,
+ 21259 - 11905: 0x84FC,
+ 21260 - 11905: 0x84FD,
+ 21261 - 11905: 0xD9E9,
+ 21262 - 11905: 0x84FE,
+ 21263 - 11905: 0xDECB,
+ 21264 - 11905: 0xD9EB,
+ 21265 - 11905: 0x8540,
+ 21266 - 11905: 0x8541,
+ 21267 - 11905: 0x8542,
+ 21268 - 11905: 0x8543,
+ 21269 - 11905: 0xD8B0,
+ 21270 - 11905: 0xBBAF,
+ 21271 - 11905: 0xB1B1,
+ 21272 - 11905: 0x8544,
+ 21273 - 11905: 0xB3D7,
+ 21274 - 11905: 0xD8CE,
+ 21275 - 11905: 0x8545,
+ 21276 - 11905: 0x8546,
+ 21277 - 11905: 0xD4D1,
+ 21278 - 11905: 0x8547,
+ 21279 - 11905: 0x8548,
+ 21280 - 11905: 0xBDB3,
+ 21281 - 11905: 0xBFEF,
+ 21282 - 11905: 0x8549,
+ 21283 - 11905: 0xCFBB,
+ 21284 - 11905: 0x854A,
+ 21285 - 11905: 0x854B,
+ 21286 - 11905: 0xD8D0,
+ 21287 - 11905: 0x854C,
+ 21288 - 11905: 0x854D,
+ 21289 - 11905: 0x854E,
+ 21290 - 11905: 0xB7CB,
+ 21291 - 11905: 0x854F,
+ 21292 - 11905: 0x8550,
+ 21293 - 11905: 0x8551,
+ 21294 - 11905: 0xD8D1,
+ 21295 - 11905: 0x8552,
+ 21296 - 11905: 0x8553,
+ 21297 - 11905: 0x8554,
+ 21298 - 11905: 0x8555,
+ 21299 - 11905: 0x8556,
+ 21300 - 11905: 0x8557,
+ 21301 - 11905: 0x8558,
+ 21302 - 11905: 0x8559,
+ 21303 - 11905: 0x855A,
+ 21304 - 11905: 0x855B,
+ 21305 - 11905: 0xC6A5,
+ 21306 - 11905: 0xC7F8,
+ 21307 - 11905: 0xD2BD,
+ 21308 - 11905: 0x855C,
+ 21309 - 11905: 0x855D,
+ 21310 - 11905: 0xD8D2,
+ 21311 - 11905: 0xC4E4,
+ 21312 - 11905: 0x855E,
+ 21313 - 11905: 0xCAAE,
+ 21314 - 11905: 0x855F,
+ 21315 - 11905: 0xC7A7,
+ 21316 - 11905: 0x8560,
+ 21317 - 11905: 0xD8A6,
+ 21318 - 11905: 0x8561,
+ 21319 - 11905: 0xC9FD,
+ 21320 - 11905: 0xCEE7,
+ 21321 - 11905: 0xBBDC,
+ 21322 - 11905: 0xB0EB,
+ 21323 - 11905: 0x8562,
+ 21324 - 11905: 0x8563,
+ 21325 - 11905: 0x8564,
+ 21326 - 11905: 0xBBAA,
+ 21327 - 11905: 0xD0AD,
+ 21328 - 11905: 0x8565,
+ 21329 - 11905: 0xB1B0,
+ 21330 - 11905: 0xD7E4,
+ 21331 - 11905: 0xD7BF,
+ 21332 - 11905: 0x8566,
+ 21333 - 11905: 0xB5A5,
+ 21334 - 11905: 0xC2F4,
+ 21335 - 11905: 0xC4CF,
+ 21336 - 11905: 0x8567,
+ 21337 - 11905: 0x8568,
+ 21338 - 11905: 0xB2A9,
+ 21339 - 11905: 0x8569,
+ 21340 - 11905: 0xB2B7,
+ 21341 - 11905: 0x856A,
+ 21342 - 11905: 0xB1E5,
+ 21343 - 11905: 0xDFB2,
+ 21344 - 11905: 0xD5BC,
+ 21345 - 11905: 0xBFA8,
+ 21346 - 11905: 0xC2AC,
+ 21347 - 11905: 0xD8D5,
+ 21348 - 11905: 0xC2B1,
+ 21349 - 11905: 0x856B,
+ 21350 - 11905: 0xD8D4,
+ 21351 - 11905: 0xCED4,
+ 21352 - 11905: 0x856C,
+ 21353 - 11905: 0xDAE0,
+ 21354 - 11905: 0x856D,
+ 21355 - 11905: 0xCEC0,
+ 21356 - 11905: 0x856E,
+ 21357 - 11905: 0x856F,
+ 21358 - 11905: 0xD8B4,
+ 21359 - 11905: 0xC3AE,
+ 21360 - 11905: 0xD3A1,
+ 21361 - 11905: 0xCEA3,
+ 21362 - 11905: 0x8570,
+ 21363 - 11905: 0xBCB4,
+ 21364 - 11905: 0xC8B4,
+ 21365 - 11905: 0xC2D1,
+ 21366 - 11905: 0x8571,
+ 21367 - 11905: 0xBEED,
+ 21368 - 11905: 0xD0B6,
+ 21369 - 11905: 0x8572,
+ 21370 - 11905: 0xDAE1,
+ 21371 - 11905: 0x8573,
+ 21372 - 11905: 0x8574,
+ 21373 - 11905: 0x8575,
+ 21374 - 11905: 0x8576,
+ 21375 - 11905: 0xC7E4,
+ 21376 - 11905: 0x8577,
+ 21377 - 11905: 0x8578,
+ 21378 - 11905: 0xB3A7,
+ 21379 - 11905: 0x8579,
+ 21380 - 11905: 0xB6F2,
+ 21381 - 11905: 0xCCFC,
+ 21382 - 11905: 0xC0FA,
+ 21383 - 11905: 0x857A,
+ 21384 - 11905: 0x857B,
+ 21385 - 11905: 0xC0F7,
+ 21386 - 11905: 0x857C,
+ 21387 - 11905: 0xD1B9,
+ 21388 - 11905: 0xD1E1,
+ 21389 - 11905: 0xD8C7,
+ 21390 - 11905: 0x857D,
+ 21391 - 11905: 0x857E,
+ 21392 - 11905: 0x8580,
+ 21393 - 11905: 0x8581,
+ 21394 - 11905: 0x8582,
+ 21395 - 11905: 0x8583,
+ 21396 - 11905: 0x8584,
+ 21397 - 11905: 0xB2DE,
+ 21398 - 11905: 0x8585,
+ 21399 - 11905: 0x8586,
+ 21400 - 11905: 0xC0E5,
+ 21401 - 11905: 0x8587,
+ 21402 - 11905: 0xBAF1,
+ 21403 - 11905: 0x8588,
+ 21404 - 11905: 0x8589,
+ 21405 - 11905: 0xD8C8,
+ 21406 - 11905: 0x858A,
+ 21407 - 11905: 0xD4AD,
+ 21408 - 11905: 0x858B,
+ 21409 - 11905: 0x858C,
+ 21410 - 11905: 0xCFE1,
+ 21411 - 11905: 0xD8C9,
+ 21412 - 11905: 0x858D,
+ 21413 - 11905: 0xD8CA,
+ 21414 - 11905: 0xCFC3,
+ 21415 - 11905: 0x858E,
+ 21416 - 11905: 0xB3F8,
+ 21417 - 11905: 0xBEC7,
+ 21418 - 11905: 0x858F,
+ 21419 - 11905: 0x8590,
+ 21420 - 11905: 0x8591,
+ 21421 - 11905: 0x8592,
+ 21422 - 11905: 0xD8CB,
+ 21423 - 11905: 0x8593,
+ 21424 - 11905: 0x8594,
+ 21425 - 11905: 0x8595,
+ 21426 - 11905: 0x8596,
+ 21427 - 11905: 0x8597,
+ 21428 - 11905: 0x8598,
+ 21429 - 11905: 0x8599,
+ 21430 - 11905: 0xDBCC,
+ 21431 - 11905: 0x859A,
+ 21432 - 11905: 0x859B,
+ 21433 - 11905: 0x859C,
+ 21434 - 11905: 0x859D,
+ 21435 - 11905: 0xC8A5,
+ 21436 - 11905: 0x859E,
+ 21437 - 11905: 0x859F,
+ 21438 - 11905: 0x85A0,
+ 21439 - 11905: 0xCFD8,
+ 21440 - 11905: 0x85A1,
+ 21441 - 11905: 0xC8FE,
+ 21442 - 11905: 0xB2CE,
+ 21443 - 11905: 0x85A2,
+ 21444 - 11905: 0x85A3,
+ 21445 - 11905: 0x85A4,
+ 21446 - 11905: 0x85A5,
+ 21447 - 11905: 0x85A6,
+ 21448 - 11905: 0xD3D6,
+ 21449 - 11905: 0xB2E6,
+ 21450 - 11905: 0xBCB0,
+ 21451 - 11905: 0xD3D1,
+ 21452 - 11905: 0xCBAB,
+ 21453 - 11905: 0xB7B4,
+ 21454 - 11905: 0x85A7,
+ 21455 - 11905: 0x85A8,
+ 21456 - 11905: 0x85A9,
+ 21457 - 11905: 0xB7A2,
+ 21458 - 11905: 0x85AA,
+ 21459 - 11905: 0x85AB,
+ 21460 - 11905: 0xCAE5,
+ 21461 - 11905: 0x85AC,
+ 21462 - 11905: 0xC8A1,
+ 21463 - 11905: 0xCADC,
+ 21464 - 11905: 0xB1E4,
+ 21465 - 11905: 0xD0F0,
+ 21466 - 11905: 0x85AD,
+ 21467 - 11905: 0xC5D1,
+ 21468 - 11905: 0x85AE,
+ 21469 - 11905: 0x85AF,
+ 21470 - 11905: 0x85B0,
+ 21471 - 11905: 0xDBC5,
+ 21472 - 11905: 0xB5FE,
+ 21473 - 11905: 0x85B1,
+ 21474 - 11905: 0x85B2,
+ 21475 - 11905: 0xBFDA,
+ 21476 - 11905: 0xB9C5,
+ 21477 - 11905: 0xBEE4,
+ 21478 - 11905: 0xC1ED,
+ 21479 - 11905: 0x85B3,
+ 21480 - 11905: 0xDFB6,
+ 21481 - 11905: 0xDFB5,
+ 21482 - 11905: 0xD6BB,
+ 21483 - 11905: 0xBDD0,
+ 21484 - 11905: 0xD5D9,
+ 21485 - 11905: 0xB0C8,
+ 21486 - 11905: 0xB6A3,
+ 21487 - 11905: 0xBFC9,
+ 21488 - 11905: 0xCCA8,
+ 21489 - 11905: 0xDFB3,
+ 21490 - 11905: 0xCAB7,
+ 21491 - 11905: 0xD3D2,
+ 21492 - 11905: 0x85B4,
+ 21493 - 11905: 0xD8CF,
+ 21494 - 11905: 0xD2B6,
+ 21495 - 11905: 0xBAC5,
+ 21496 - 11905: 0xCBBE,
+ 21497 - 11905: 0xCCBE,
+ 21498 - 11905: 0x85B5,
+ 21499 - 11905: 0xDFB7,
+ 21500 - 11905: 0xB5F0,
+ 21501 - 11905: 0xDFB4,
+ 21502 - 11905: 0x85B6,
+ 21503 - 11905: 0x85B7,
+ 21504 - 11905: 0x85B8,
+ 21505 - 11905: 0xD3F5,
+ 21506 - 11905: 0x85B9,
+ 21507 - 11905: 0xB3D4,
+ 21508 - 11905: 0xB8F7,
+ 21509 - 11905: 0x85BA,
+ 21510 - 11905: 0xDFBA,
+ 21511 - 11905: 0x85BB,
+ 21512 - 11905: 0xBACF,
+ 21513 - 11905: 0xBCAA,
+ 21514 - 11905: 0xB5F5,
+ 21515 - 11905: 0x85BC,
+ 21516 - 11905: 0xCDAC,
+ 21517 - 11905: 0xC3FB,
+ 21518 - 11905: 0xBAF3,
+ 21519 - 11905: 0xC0F4,
+ 21520 - 11905: 0xCDC2,
+ 21521 - 11905: 0xCFF2,
+ 21522 - 11905: 0xDFB8,
+ 21523 - 11905: 0xCFC5,
+ 21524 - 11905: 0x85BD,
+ 21525 - 11905: 0xC2C0,
+ 21526 - 11905: 0xDFB9,
+ 21527 - 11905: 0xC2F0,
+ 21528 - 11905: 0x85BE,
+ 21529 - 11905: 0x85BF,
+ 21530 - 11905: 0x85C0,
+ 21531 - 11905: 0xBEFD,
+ 21532 - 11905: 0x85C1,
+ 21533 - 11905: 0xC1DF,
+ 21534 - 11905: 0xCDCC,
+ 21535 - 11905: 0xD2F7,
+ 21536 - 11905: 0xB7CD,
+ 21537 - 11905: 0xDFC1,
+ 21538 - 11905: 0x85C2,
+ 21539 - 11905: 0xDFC4,
+ 21540 - 11905: 0x85C3,
+ 21541 - 11905: 0x85C4,
+ 21542 - 11905: 0xB7F1,
+ 21543 - 11905: 0xB0C9,
+ 21544 - 11905: 0xB6D6,
+ 21545 - 11905: 0xB7D4,
+ 21546 - 11905: 0x85C5,
+ 21547 - 11905: 0xBAAC,
+ 21548 - 11905: 0xCCFD,
+ 21549 - 11905: 0xBFD4,
+ 21550 - 11905: 0xCBB1,
+ 21551 - 11905: 0xC6F4,
+ 21552 - 11905: 0x85C6,
+ 21553 - 11905: 0xD6A8,
+ 21554 - 11905: 0xDFC5,
+ 21555 - 11905: 0x85C7,
+ 21556 - 11905: 0xCEE2,
+ 21557 - 11905: 0xB3B3,
+ 21558 - 11905: 0x85C8,
+ 21559 - 11905: 0x85C9,
+ 21560 - 11905: 0xCEFC,
+ 21561 - 11905: 0xB4B5,
+ 21562 - 11905: 0x85CA,
+ 21563 - 11905: 0xCEC7,
+ 21564 - 11905: 0xBAF0,
+ 21565 - 11905: 0x85CB,
+ 21566 - 11905: 0xCEE1,
+ 21567 - 11905: 0x85CC,
+ 21568 - 11905: 0xD1BD,
+ 21569 - 11905: 0x85CD,
+ 21570 - 11905: 0x85CE,
+ 21571 - 11905: 0xDFC0,
+ 21572 - 11905: 0x85CF,
+ 21573 - 11905: 0x85D0,
+ 21574 - 11905: 0xB4F4,
+ 21575 - 11905: 0x85D1,
+ 21576 - 11905: 0xB3CA,
+ 21577 - 11905: 0x85D2,
+ 21578 - 11905: 0xB8E6,
+ 21579 - 11905: 0xDFBB,
+ 21580 - 11905: 0x85D3,
+ 21581 - 11905: 0x85D4,
+ 21582 - 11905: 0x85D5,
+ 21583 - 11905: 0x85D6,
+ 21584 - 11905: 0xC4C5,
+ 21585 - 11905: 0x85D7,
+ 21586 - 11905: 0xDFBC,
+ 21587 - 11905: 0xDFBD,
+ 21588 - 11905: 0xDFBE,
+ 21589 - 11905: 0xC5BB,
+ 21590 - 11905: 0xDFBF,
+ 21591 - 11905: 0xDFC2,
+ 21592 - 11905: 0xD4B1,
+ 21593 - 11905: 0xDFC3,
+ 21594 - 11905: 0x85D8,
+ 21595 - 11905: 0xC7BA,
+ 21596 - 11905: 0xCED8,
+ 21597 - 11905: 0x85D9,
+ 21598 - 11905: 0x85DA,
+ 21599 - 11905: 0x85DB,
+ 21600 - 11905: 0x85DC,
+ 21601 - 11905: 0x85DD,
+ 21602 - 11905: 0xC4D8,
+ 21603 - 11905: 0x85DE,
+ 21604 - 11905: 0xDFCA,
+ 21605 - 11905: 0x85DF,
+ 21606 - 11905: 0xDFCF,
+ 21607 - 11905: 0x85E0,
+ 21608 - 11905: 0xD6DC,
+ 21609 - 11905: 0x85E1,
+ 21610 - 11905: 0x85E2,
+ 21611 - 11905: 0x85E3,
+ 21612 - 11905: 0x85E4,
+ 21613 - 11905: 0x85E5,
+ 21614 - 11905: 0x85E6,
+ 21615 - 11905: 0x85E7,
+ 21616 - 11905: 0x85E8,
+ 21617 - 11905: 0xDFC9,
+ 21618 - 11905: 0xDFDA,
+ 21619 - 11905: 0xCEB6,
+ 21620 - 11905: 0x85E9,
+ 21621 - 11905: 0xBAC7,
+ 21622 - 11905: 0xDFCE,
+ 21623 - 11905: 0xDFC8,
+ 21624 - 11905: 0xC5DE,
+ 21625 - 11905: 0x85EA,
+ 21626 - 11905: 0x85EB,
+ 21627 - 11905: 0xC9EB,
+ 21628 - 11905: 0xBAF4,
+ 21629 - 11905: 0xC3FC,
+ 21630 - 11905: 0x85EC,
+ 21631 - 11905: 0x85ED,
+ 21632 - 11905: 0xBED7,
+ 21633 - 11905: 0x85EE,
+ 21634 - 11905: 0xDFC6,
+ 21635 - 11905: 0x85EF,
+ 21636 - 11905: 0xDFCD,
+ 21637 - 11905: 0x85F0,
+ 21638 - 11905: 0xC5D8,
+ 21639 - 11905: 0x85F1,
+ 21640 - 11905: 0x85F2,
+ 21641 - 11905: 0x85F3,
+ 21642 - 11905: 0x85F4,
+ 21643 - 11905: 0xD5A6,
+ 21644 - 11905: 0xBACD,
+ 21645 - 11905: 0x85F5,
+ 21646 - 11905: 0xBECC,
+ 21647 - 11905: 0xD3BD,
+ 21648 - 11905: 0xB8C0,
+ 21649 - 11905: 0x85F6,
+ 21650 - 11905: 0xD6E4,
+ 21651 - 11905: 0x85F7,
+ 21652 - 11905: 0xDFC7,
+ 21653 - 11905: 0xB9BE,
+ 21654 - 11905: 0xBFA7,
+ 21655 - 11905: 0x85F8,
+ 21656 - 11905: 0x85F9,
+ 21657 - 11905: 0xC1FC,
+ 21658 - 11905: 0xDFCB,
+ 21659 - 11905: 0xDFCC,
+ 21660 - 11905: 0x85FA,
+ 21661 - 11905: 0xDFD0,
+ 21662 - 11905: 0x85FB,
+ 21663 - 11905: 0x85FC,
+ 21664 - 11905: 0x85FD,
+ 21665 - 11905: 0x85FE,
+ 21666 - 11905: 0x8640,
+ 21667 - 11905: 0xDFDB,
+ 21668 - 11905: 0xDFE5,
+ 21669 - 11905: 0x8641,
+ 21670 - 11905: 0xDFD7,
+ 21671 - 11905: 0xDFD6,
+ 21672 - 11905: 0xD7C9,
+ 21673 - 11905: 0xDFE3,
+ 21674 - 11905: 0xDFE4,
+ 21675 - 11905: 0xE5EB,
+ 21676 - 11905: 0xD2A7,
+ 21677 - 11905: 0xDFD2,
+ 21678 - 11905: 0x8642,
+ 21679 - 11905: 0xBFA9,
+ 21680 - 11905: 0x8643,
+ 21681 - 11905: 0xD4DB,
+ 21682 - 11905: 0x8644,
+ 21683 - 11905: 0xBFC8,
+ 21684 - 11905: 0xDFD4,
+ 21685 - 11905: 0x8645,
+ 21686 - 11905: 0x8646,
+ 21687 - 11905: 0x8647,
+ 21688 - 11905: 0xCFCC,
+ 21689 - 11905: 0x8648,
+ 21690 - 11905: 0x8649,
+ 21691 - 11905: 0xDFDD,
+ 21692 - 11905: 0x864A,
+ 21693 - 11905: 0xD1CA,
+ 21694 - 11905: 0x864B,
+ 21695 - 11905: 0xDFDE,
+ 21696 - 11905: 0xB0A7,
+ 21697 - 11905: 0xC6B7,
+ 21698 - 11905: 0xDFD3,
+ 21699 - 11905: 0x864C,
+ 21700 - 11905: 0xBAE5,
+ 21701 - 11905: 0x864D,
+ 21702 - 11905: 0xB6DF,
+ 21703 - 11905: 0xCDDB,
+ 21704 - 11905: 0xB9FE,
+ 21705 - 11905: 0xD4D5,
+ 21706 - 11905: 0x864E,
+ 21707 - 11905: 0x864F,
+ 21708 - 11905: 0xDFDF,
+ 21709 - 11905: 0xCFEC,
+ 21710 - 11905: 0xB0A5,
+ 21711 - 11905: 0xDFE7,
+ 21712 - 11905: 0xDFD1,
+ 21713 - 11905: 0xD1C6,
+ 21714 - 11905: 0xDFD5,
+ 21715 - 11905: 0xDFD8,
+ 21716 - 11905: 0xDFD9,
+ 21717 - 11905: 0xDFDC,
+ 21718 - 11905: 0x8650,
+ 21719 - 11905: 0xBBA9,
+ 21720 - 11905: 0x8651,
+ 21721 - 11905: 0xDFE0,
+ 21722 - 11905: 0xDFE1,
+ 21723 - 11905: 0x8652,
+ 21724 - 11905: 0xDFE2,
+ 21725 - 11905: 0xDFE6,
+ 21726 - 11905: 0xDFE8,
+ 21727 - 11905: 0xD3B4,
+ 21728 - 11905: 0x8653,
+ 21729 - 11905: 0x8654,
+ 21730 - 11905: 0x8655,
+ 21731 - 11905: 0x8656,
+ 21732 - 11905: 0x8657,
+ 21733 - 11905: 0xB8E7,
+ 21734 - 11905: 0xC5B6,
+ 21735 - 11905: 0xDFEA,
+ 21736 - 11905: 0xC9DA,
+ 21737 - 11905: 0xC1A8,
+ 21738 - 11905: 0xC4C4,
+ 21739 - 11905: 0x8658,
+ 21740 - 11905: 0x8659,
+ 21741 - 11905: 0xBFDE,
+ 21742 - 11905: 0xCFF8,
+ 21743 - 11905: 0x865A,
+ 21744 - 11905: 0x865B,
+ 21745 - 11905: 0x865C,
+ 21746 - 11905: 0xD5DC,
+ 21747 - 11905: 0xDFEE,
+ 21748 - 11905: 0x865D,
+ 21749 - 11905: 0x865E,
+ 21750 - 11905: 0x865F,
+ 21751 - 11905: 0x8660,
+ 21752 - 11905: 0x8661,
+ 21753 - 11905: 0x8662,
+ 21754 - 11905: 0xB2B8,
+ 21755 - 11905: 0x8663,
+ 21756 - 11905: 0xBADF,
+ 21757 - 11905: 0xDFEC,
+ 21758 - 11905: 0x8664,
+ 21759 - 11905: 0xDBC1,
+ 21760 - 11905: 0x8665,
+ 21761 - 11905: 0xD1E4,
+ 21762 - 11905: 0x8666,
+ 21763 - 11905: 0x8667,
+ 21764 - 11905: 0x8668,
+ 21765 - 11905: 0x8669,
+ 21766 - 11905: 0xCBF4,
+ 21767 - 11905: 0xB4BD,
+ 21768 - 11905: 0x866A,
+ 21769 - 11905: 0xB0A6,
+ 21770 - 11905: 0x866B,
+ 21771 - 11905: 0x866C,
+ 21772 - 11905: 0x866D,
+ 21773 - 11905: 0x866E,
+ 21774 - 11905: 0x866F,
+ 21775 - 11905: 0xDFF1,
+ 21776 - 11905: 0xCCC6,
+ 21777 - 11905: 0xDFF2,
+ 21778 - 11905: 0x8670,
+ 21779 - 11905: 0x8671,
+ 21780 - 11905: 0xDFED,
+ 21781 - 11905: 0x8672,
+ 21782 - 11905: 0x8673,
+ 21783 - 11905: 0x8674,
+ 21784 - 11905: 0x8675,
+ 21785 - 11905: 0x8676,
+ 21786 - 11905: 0x8677,
+ 21787 - 11905: 0xDFE9,
+ 21788 - 11905: 0x8678,
+ 21789 - 11905: 0x8679,
+ 21790 - 11905: 0x867A,
+ 21791 - 11905: 0x867B,
+ 21792 - 11905: 0xDFEB,
+ 21793 - 11905: 0x867C,
+ 21794 - 11905: 0xDFEF,
+ 21795 - 11905: 0xDFF0,
+ 21796 - 11905: 0xBBBD,
+ 21797 - 11905: 0x867D,
+ 21798 - 11905: 0x867E,
+ 21799 - 11905: 0xDFF3,
+ 21800 - 11905: 0x8680,
+ 21801 - 11905: 0x8681,
+ 21802 - 11905: 0xDFF4,
+ 21803 - 11905: 0x8682,
+ 21804 - 11905: 0xBBA3,
+ 21805 - 11905: 0x8683,
+ 21806 - 11905: 0xCADB,
+ 21807 - 11905: 0xCEA8,
+ 21808 - 11905: 0xE0A7,
+ 21809 - 11905: 0xB3AA,
+ 21810 - 11905: 0x8684,
+ 21811 - 11905: 0xE0A6,
+ 21812 - 11905: 0x8685,
+ 21813 - 11905: 0x8686,
+ 21814 - 11905: 0x8687,
+ 21815 - 11905: 0xE0A1,
+ 21816 - 11905: 0x8688,
+ 21817 - 11905: 0x8689,
+ 21818 - 11905: 0x868A,
+ 21819 - 11905: 0x868B,
+ 21820 - 11905: 0xDFFE,
+ 21821 - 11905: 0x868C,
+ 21822 - 11905: 0xCDD9,
+ 21823 - 11905: 0xDFFC,
+ 21824 - 11905: 0x868D,
+ 21825 - 11905: 0xDFFA,
+ 21826 - 11905: 0x868E,
+ 21827 - 11905: 0xBFD0,
+ 21828 - 11905: 0xD7C4,
+ 21829 - 11905: 0x868F,
+ 21830 - 11905: 0xC9CC,
+ 21831 - 11905: 0x8690,
+ 21832 - 11905: 0x8691,
+ 21833 - 11905: 0xDFF8,
+ 21834 - 11905: 0xB0A1,
+ 21835 - 11905: 0x8692,
+ 21836 - 11905: 0x8693,
+ 21837 - 11905: 0x8694,
+ 21838 - 11905: 0x8695,
+ 21839 - 11905: 0x8696,
+ 21840 - 11905: 0xDFFD,
+ 21841 - 11905: 0x8697,
+ 21842 - 11905: 0x8698,
+ 21843 - 11905: 0x8699,
+ 21844 - 11905: 0x869A,
+ 21845 - 11905: 0xDFFB,
+ 21846 - 11905: 0xE0A2,
+ 21847 - 11905: 0x869B,
+ 21848 - 11905: 0x869C,
+ 21849 - 11905: 0x869D,
+ 21850 - 11905: 0x869E,
+ 21851 - 11905: 0x869F,
+ 21852 - 11905: 0xE0A8,
+ 21853 - 11905: 0x86A0,
+ 21854 - 11905: 0x86A1,
+ 21855 - 11905: 0x86A2,
+ 21856 - 11905: 0x86A3,
+ 21857 - 11905: 0xB7C8,
+ 21858 - 11905: 0x86A4,
+ 21859 - 11905: 0x86A5,
+ 21860 - 11905: 0xC6A1,
+ 21861 - 11905: 0xC9B6,
+ 21862 - 11905: 0xC0B2,
+ 21863 - 11905: 0xDFF5,
+ 21864 - 11905: 0x86A6,
+ 21865 - 11905: 0x86A7,
+ 21866 - 11905: 0xC5BE,
+ 21867 - 11905: 0x86A8,
+ 21868 - 11905: 0xD8C4,
+ 21869 - 11905: 0xDFF9,
+ 21870 - 11905: 0xC4F6,
+ 21871 - 11905: 0x86A9,
+ 21872 - 11905: 0x86AA,
+ 21873 - 11905: 0x86AB,
+ 21874 - 11905: 0x86AC,
+ 21875 - 11905: 0x86AD,
+ 21876 - 11905: 0x86AE,
+ 21877 - 11905: 0xE0A3,
+ 21878 - 11905: 0xE0A4,
+ 21879 - 11905: 0xE0A5,
+ 21880 - 11905: 0xD0A5,
+ 21881 - 11905: 0x86AF,
+ 21882 - 11905: 0x86B0,
+ 21883 - 11905: 0xE0B4,
+ 21884 - 11905: 0xCCE4,
+ 21885 - 11905: 0x86B1,
+ 21886 - 11905: 0xE0B1,
+ 21887 - 11905: 0x86B2,
+ 21888 - 11905: 0xBFA6,
+ 21889 - 11905: 0xE0AF,
+ 21890 - 11905: 0xCEB9,
+ 21891 - 11905: 0xE0AB,
+ 21892 - 11905: 0xC9C6,
+ 21893 - 11905: 0x86B3,
+ 21894 - 11905: 0x86B4,
+ 21895 - 11905: 0xC0AE,
+ 21896 - 11905: 0xE0AE,
+ 21897 - 11905: 0xBAED,
+ 21898 - 11905: 0xBAB0,
+ 21899 - 11905: 0xE0A9,
+ 21900 - 11905: 0x86B5,
+ 21901 - 11905: 0x86B6,
+ 21902 - 11905: 0x86B7,
+ 21903 - 11905: 0xDFF6,
+ 21904 - 11905: 0x86B8,
+ 21905 - 11905: 0xE0B3,
+ 21906 - 11905: 0x86B9,
+ 21907 - 11905: 0x86BA,
+ 21908 - 11905: 0xE0B8,
+ 21909 - 11905: 0x86BB,
+ 21910 - 11905: 0x86BC,
+ 21911 - 11905: 0x86BD,
+ 21912 - 11905: 0xB4AD,
+ 21913 - 11905: 0xE0B9,
+ 21914 - 11905: 0x86BE,
+ 21915 - 11905: 0x86BF,
+ 21916 - 11905: 0xCFB2,
+ 21917 - 11905: 0xBAC8,
+ 21918 - 11905: 0x86C0,
+ 21919 - 11905: 0xE0B0,
+ 21920 - 11905: 0x86C1,
+ 21921 - 11905: 0x86C2,
+ 21922 - 11905: 0x86C3,
+ 21923 - 11905: 0x86C4,
+ 21924 - 11905: 0x86C5,
+ 21925 - 11905: 0x86C6,
+ 21926 - 11905: 0x86C7,
+ 21927 - 11905: 0xD0FA,
+ 21928 - 11905: 0x86C8,
+ 21929 - 11905: 0x86C9,
+ 21930 - 11905: 0x86CA,
+ 21931 - 11905: 0x86CB,
+ 21932 - 11905: 0x86CC,
+ 21933 - 11905: 0x86CD,
+ 21934 - 11905: 0x86CE,
+ 21935 - 11905: 0x86CF,
+ 21936 - 11905: 0x86D0,
+ 21937 - 11905: 0xE0AC,
+ 21938 - 11905: 0x86D1,
+ 21939 - 11905: 0xD4FB,
+ 21940 - 11905: 0x86D2,
+ 21941 - 11905: 0xDFF7,
+ 21942 - 11905: 0x86D3,
+ 21943 - 11905: 0xC5E7,
+ 21944 - 11905: 0x86D4,
+ 21945 - 11905: 0xE0AD,
+ 21946 - 11905: 0x86D5,
+ 21947 - 11905: 0xD3F7,
+ 21948 - 11905: 0x86D6,
+ 21949 - 11905: 0xE0B6,
+ 21950 - 11905: 0xE0B7,
+ 21951 - 11905: 0x86D7,
+ 21952 - 11905: 0x86D8,
+ 21953 - 11905: 0x86D9,
+ 21954 - 11905: 0x86DA,
+ 21955 - 11905: 0x86DB,
+ 21956 - 11905: 0xE0C4,
+ 21957 - 11905: 0xD0E1,
+ 21958 - 11905: 0x86DC,
+ 21959 - 11905: 0x86DD,
+ 21960 - 11905: 0x86DE,
+ 21961 - 11905: 0xE0BC,
+ 21962 - 11905: 0x86DF,
+ 21963 - 11905: 0x86E0,
+ 21964 - 11905: 0xE0C9,
+ 21965 - 11905: 0xE0CA,
+ 21966 - 11905: 0x86E1,
+ 21967 - 11905: 0x86E2,
+ 21968 - 11905: 0x86E3,
+ 21969 - 11905: 0xE0BE,
+ 21970 - 11905: 0xE0AA,
+ 21971 - 11905: 0xC9A4,
+ 21972 - 11905: 0xE0C1,
+ 21973 - 11905: 0x86E4,
+ 21974 - 11905: 0xE0B2,
+ 21975 - 11905: 0x86E5,
+ 21976 - 11905: 0x86E6,
+ 21977 - 11905: 0x86E7,
+ 21978 - 11905: 0x86E8,
+ 21979 - 11905: 0x86E9,
+ 21980 - 11905: 0xCAC8,
+ 21981 - 11905: 0xE0C3,
+ 21982 - 11905: 0x86EA,
+ 21983 - 11905: 0xE0B5,
+ 21984 - 11905: 0x86EB,
+ 21985 - 11905: 0xCECB,
+ 21986 - 11905: 0x86EC,
+ 21987 - 11905: 0xCBC3,
+ 21988 - 11905: 0xE0CD,
+ 21989 - 11905: 0xE0C6,
+ 21990 - 11905: 0xE0C2,
+ 21991 - 11905: 0x86ED,
+ 21992 - 11905: 0xE0CB,
+ 21993 - 11905: 0x86EE,
+ 21994 - 11905: 0xE0BA,
+ 21995 - 11905: 0xE0BF,
+ 21996 - 11905: 0xE0C0,
+ 21997 - 11905: 0x86EF,
+ 21998 - 11905: 0x86F0,
+ 21999 - 11905: 0xE0C5,
+ 22000 - 11905: 0x86F1,
+ 22001 - 11905: 0x86F2,
+ 22002 - 11905: 0xE0C7,
+ 22003 - 11905: 0xE0C8,
+ 22004 - 11905: 0x86F3,
+ 22005 - 11905: 0xE0CC,
+ 22006 - 11905: 0x86F4,
+ 22007 - 11905: 0xE0BB,
+ 22008 - 11905: 0x86F5,
+ 22009 - 11905: 0x86F6,
+ 22010 - 11905: 0x86F7,
+ 22011 - 11905: 0x86F8,
+ 22012 - 11905: 0x86F9,
+ 22013 - 11905: 0xCBD4,
+ 22014 - 11905: 0xE0D5,
+ 22015 - 11905: 0x86FA,
+ 22016 - 11905: 0xE0D6,
+ 22017 - 11905: 0xE0D2,
+ 22018 - 11905: 0x86FB,
+ 22019 - 11905: 0x86FC,
+ 22020 - 11905: 0x86FD,
+ 22021 - 11905: 0x86FE,
+ 22022 - 11905: 0x8740,
+ 22023 - 11905: 0x8741,
+ 22024 - 11905: 0xE0D0,
+ 22025 - 11905: 0xBCCE,
+ 22026 - 11905: 0x8742,
+ 22027 - 11905: 0x8743,
+ 22028 - 11905: 0xE0D1,
+ 22029 - 11905: 0x8744,
+ 22030 - 11905: 0xB8C2,
+ 22031 - 11905: 0xD8C5,
+ 22032 - 11905: 0x8745,
+ 22033 - 11905: 0x8746,
+ 22034 - 11905: 0x8747,
+ 22035 - 11905: 0x8748,
+ 22036 - 11905: 0x8749,
+ 22037 - 11905: 0x874A,
+ 22038 - 11905: 0x874B,
+ 22039 - 11905: 0x874C,
+ 22040 - 11905: 0xD0EA,
+ 22041 - 11905: 0x874D,
+ 22042 - 11905: 0x874E,
+ 22043 - 11905: 0xC2EF,
+ 22044 - 11905: 0x874F,
+ 22045 - 11905: 0x8750,
+ 22046 - 11905: 0xE0CF,
+ 22047 - 11905: 0xE0BD,
+ 22048 - 11905: 0x8751,
+ 22049 - 11905: 0x8752,
+ 22050 - 11905: 0x8753,
+ 22051 - 11905: 0xE0D4,
+ 22052 - 11905: 0xE0D3,
+ 22053 - 11905: 0x8754,
+ 22054 - 11905: 0x8755,
+ 22055 - 11905: 0xE0D7,
+ 22056 - 11905: 0x8756,
+ 22057 - 11905: 0x8757,
+ 22058 - 11905: 0x8758,
+ 22059 - 11905: 0x8759,
+ 22060 - 11905: 0xE0DC,
+ 22061 - 11905: 0xE0D8,
+ 22062 - 11905: 0x875A,
+ 22063 - 11905: 0x875B,
+ 22064 - 11905: 0x875C,
+ 22065 - 11905: 0xD6F6,
+ 22066 - 11905: 0xB3B0,
+ 22067 - 11905: 0x875D,
+ 22068 - 11905: 0xD7EC,
+ 22069 - 11905: 0x875E,
+ 22070 - 11905: 0xCBBB,
+ 22071 - 11905: 0x875F,
+ 22072 - 11905: 0x8760,
+ 22073 - 11905: 0xE0DA,
+ 22074 - 11905: 0x8761,
+ 22075 - 11905: 0xCEFB,
+ 22076 - 11905: 0x8762,
+ 22077 - 11905: 0x8763,
+ 22078 - 11905: 0x8764,
+ 22079 - 11905: 0xBAD9,
+ 22080 - 11905: 0x8765,
+ 22081 - 11905: 0x8766,
+ 22082 - 11905: 0x8767,
+ 22083 - 11905: 0x8768,
+ 22084 - 11905: 0x8769,
+ 22085 - 11905: 0x876A,
+ 22086 - 11905: 0x876B,
+ 22087 - 11905: 0x876C,
+ 22088 - 11905: 0x876D,
+ 22089 - 11905: 0x876E,
+ 22090 - 11905: 0x876F,
+ 22091 - 11905: 0x8770,
+ 22092 - 11905: 0xE0E1,
+ 22093 - 11905: 0xE0DD,
+ 22094 - 11905: 0xD2AD,
+ 22095 - 11905: 0x8771,
+ 22096 - 11905: 0x8772,
+ 22097 - 11905: 0x8773,
+ 22098 - 11905: 0x8774,
+ 22099 - 11905: 0x8775,
+ 22100 - 11905: 0xE0E2,
+ 22101 - 11905: 0x8776,
+ 22102 - 11905: 0x8777,
+ 22103 - 11905: 0xE0DB,
+ 22104 - 11905: 0xE0D9,
+ 22105 - 11905: 0xE0DF,
+ 22106 - 11905: 0x8778,
+ 22107 - 11905: 0x8779,
+ 22108 - 11905: 0xE0E0,
+ 22109 - 11905: 0x877A,
+ 22110 - 11905: 0x877B,
+ 22111 - 11905: 0x877C,
+ 22112 - 11905: 0x877D,
+ 22113 - 11905: 0x877E,
+ 22114 - 11905: 0xE0DE,
+ 22115 - 11905: 0x8780,
+ 22116 - 11905: 0xE0E4,
+ 22117 - 11905: 0x8781,
+ 22118 - 11905: 0x8782,
+ 22119 - 11905: 0x8783,
+ 22120 - 11905: 0xC6F7,
+ 22121 - 11905: 0xD8AC,
+ 22122 - 11905: 0xD4EB,
+ 22123 - 11905: 0xE0E6,
+ 22124 - 11905: 0xCAC9,
+ 22125 - 11905: 0x8784,
+ 22126 - 11905: 0x8785,
+ 22127 - 11905: 0x8786,
+ 22128 - 11905: 0x8787,
+ 22129 - 11905: 0xE0E5,
+ 22130 - 11905: 0x8788,
+ 22131 - 11905: 0x8789,
+ 22132 - 11905: 0x878A,
+ 22133 - 11905: 0x878B,
+ 22134 - 11905: 0xB8C1,
+ 22135 - 11905: 0x878C,
+ 22136 - 11905: 0x878D,
+ 22137 - 11905: 0x878E,
+ 22138 - 11905: 0x878F,
+ 22139 - 11905: 0xE0E7,
+ 22140 - 11905: 0xE0E8,
+ 22141 - 11905: 0x8790,
+ 22142 - 11905: 0x8791,
+ 22143 - 11905: 0x8792,
+ 22144 - 11905: 0x8793,
+ 22145 - 11905: 0x8794,
+ 22146 - 11905: 0x8795,
+ 22147 - 11905: 0x8796,
+ 22148 - 11905: 0x8797,
+ 22149 - 11905: 0xE0E9,
+ 22150 - 11905: 0xE0E3,
+ 22151 - 11905: 0x8798,
+ 22152 - 11905: 0x8799,
+ 22153 - 11905: 0x879A,
+ 22154 - 11905: 0x879B,
+ 22155 - 11905: 0x879C,
+ 22156 - 11905: 0x879D,
+ 22157 - 11905: 0x879E,
+ 22158 - 11905: 0xBABF,
+ 22159 - 11905: 0xCCE7,
+ 22160 - 11905: 0x879F,
+ 22161 - 11905: 0x87A0,
+ 22162 - 11905: 0x87A1,
+ 22163 - 11905: 0xE0EA,
+ 22164 - 11905: 0x87A2,
+ 22165 - 11905: 0x87A3,
+ 22166 - 11905: 0x87A4,
+ 22167 - 11905: 0x87A5,
+ 22168 - 11905: 0x87A6,
+ 22169 - 11905: 0x87A7,
+ 22170 - 11905: 0x87A8,
+ 22171 - 11905: 0x87A9,
+ 22172 - 11905: 0x87AA,
+ 22173 - 11905: 0x87AB,
+ 22174 - 11905: 0x87AC,
+ 22175 - 11905: 0x87AD,
+ 22176 - 11905: 0x87AE,
+ 22177 - 11905: 0x87AF,
+ 22178 - 11905: 0x87B0,
+ 22179 - 11905: 0xCFF9,
+ 22180 - 11905: 0x87B1,
+ 22181 - 11905: 0x87B2,
+ 22182 - 11905: 0x87B3,
+ 22183 - 11905: 0x87B4,
+ 22184 - 11905: 0x87B5,
+ 22185 - 11905: 0x87B6,
+ 22186 - 11905: 0x87B7,
+ 22187 - 11905: 0x87B8,
+ 22188 - 11905: 0x87B9,
+ 22189 - 11905: 0x87BA,
+ 22190 - 11905: 0x87BB,
+ 22191 - 11905: 0xE0EB,
+ 22192 - 11905: 0x87BC,
+ 22193 - 11905: 0x87BD,
+ 22194 - 11905: 0x87BE,
+ 22195 - 11905: 0x87BF,
+ 22196 - 11905: 0x87C0,
+ 22197 - 11905: 0x87C1,
+ 22198 - 11905: 0x87C2,
+ 22199 - 11905: 0xC8C2,
+ 22200 - 11905: 0x87C3,
+ 22201 - 11905: 0x87C4,
+ 22202 - 11905: 0x87C5,
+ 22203 - 11905: 0x87C6,
+ 22204 - 11905: 0xBDC0,
+ 22205 - 11905: 0x87C7,
+ 22206 - 11905: 0x87C8,
+ 22207 - 11905: 0x87C9,
+ 22208 - 11905: 0x87CA,
+ 22209 - 11905: 0x87CB,
+ 22210 - 11905: 0x87CC,
+ 22211 - 11905: 0x87CD,
+ 22212 - 11905: 0x87CE,
+ 22213 - 11905: 0x87CF,
+ 22214 - 11905: 0x87D0,
+ 22215 - 11905: 0x87D1,
+ 22216 - 11905: 0x87D2,
+ 22217 - 11905: 0x87D3,
+ 22218 - 11905: 0xC4D2,
+ 22219 - 11905: 0x87D4,
+ 22220 - 11905: 0x87D5,
+ 22221 - 11905: 0x87D6,
+ 22222 - 11905: 0x87D7,
+ 22223 - 11905: 0x87D8,
+ 22224 - 11905: 0x87D9,
+ 22225 - 11905: 0x87DA,
+ 22226 - 11905: 0x87DB,
+ 22227 - 11905: 0x87DC,
+ 22228 - 11905: 0xE0EC,
+ 22229 - 11905: 0x87DD,
+ 22230 - 11905: 0x87DE,
+ 22231 - 11905: 0xE0ED,
+ 22232 - 11905: 0x87DF,
+ 22233 - 11905: 0x87E0,
+ 22234 - 11905: 0xC7F4,
+ 22235 - 11905: 0xCBC4,
+ 22236 - 11905: 0x87E1,
+ 22237 - 11905: 0xE0EE,
+ 22238 - 11905: 0xBBD8,
+ 22239 - 11905: 0xD8B6,
+ 22240 - 11905: 0xD2F2,
+ 22241 - 11905: 0xE0EF,
+ 22242 - 11905: 0xCDC5,
+ 22243 - 11905: 0x87E2,
+ 22244 - 11905: 0xB6DA,
+ 22245 - 11905: 0x87E3,
+ 22246 - 11905: 0x87E4,
+ 22247 - 11905: 0x87E5,
+ 22248 - 11905: 0x87E6,
+ 22249 - 11905: 0x87E7,
+ 22250 - 11905: 0x87E8,
+ 22251 - 11905: 0xE0F1,
+ 22252 - 11905: 0x87E9,
+ 22253 - 11905: 0xD4B0,
+ 22254 - 11905: 0x87EA,
+ 22255 - 11905: 0x87EB,
+ 22256 - 11905: 0xC0A7,
+ 22257 - 11905: 0xB4D1,
+ 22258 - 11905: 0x87EC,
+ 22259 - 11905: 0x87ED,
+ 22260 - 11905: 0xCEA7,
+ 22261 - 11905: 0xE0F0,
+ 22262 - 11905: 0x87EE,
+ 22263 - 11905: 0x87EF,
+ 22264 - 11905: 0x87F0,
+ 22265 - 11905: 0xE0F2,
+ 22266 - 11905: 0xB9CC,
+ 22267 - 11905: 0x87F1,
+ 22268 - 11905: 0x87F2,
+ 22269 - 11905: 0xB9FA,
+ 22270 - 11905: 0xCDBC,
+ 22271 - 11905: 0xE0F3,
+ 22272 - 11905: 0x87F3,
+ 22273 - 11905: 0x87F4,
+ 22274 - 11905: 0x87F5,
+ 22275 - 11905: 0xC6D4,
+ 22276 - 11905: 0xE0F4,
+ 22277 - 11905: 0x87F6,
+ 22278 - 11905: 0xD4B2,
+ 22279 - 11905: 0x87F7,
+ 22280 - 11905: 0xC8A6,
+ 22281 - 11905: 0xE0F6,
+ 22282 - 11905: 0xE0F5,
+ 22283 - 11905: 0x87F8,
+ 22284 - 11905: 0x87F9,
+ 22285 - 11905: 0x87FA,
+ 22286 - 11905: 0x87FB,
+ 22287 - 11905: 0x87FC,
+ 22288 - 11905: 0x87FD,
+ 22289 - 11905: 0x87FE,
+ 22290 - 11905: 0x8840,
+ 22291 - 11905: 0x8841,
+ 22292 - 11905: 0x8842,
+ 22293 - 11905: 0x8843,
+ 22294 - 11905: 0x8844,
+ 22295 - 11905: 0x8845,
+ 22296 - 11905: 0x8846,
+ 22297 - 11905: 0x8847,
+ 22298 - 11905: 0x8848,
+ 22299 - 11905: 0x8849,
+ 22300 - 11905: 0xE0F7,
+ 22301 - 11905: 0x884A,
+ 22302 - 11905: 0x884B,
+ 22303 - 11905: 0xCDC1,
+ 22304 - 11905: 0x884C,
+ 22305 - 11905: 0x884D,
+ 22306 - 11905: 0x884E,
+ 22307 - 11905: 0xCAA5,
+ 22308 - 11905: 0x884F,
+ 22309 - 11905: 0x8850,
+ 22310 - 11905: 0x8851,
+ 22311 - 11905: 0x8852,
+ 22312 - 11905: 0xD4DA,
+ 22313 - 11905: 0xDBD7,
+ 22314 - 11905: 0xDBD9,
+ 22315 - 11905: 0x8853,
+ 22316 - 11905: 0xDBD8,
+ 22317 - 11905: 0xB9E7,
+ 22318 - 11905: 0xDBDC,
+ 22319 - 11905: 0xDBDD,
+ 22320 - 11905: 0xB5D8,
+ 22321 - 11905: 0x8854,
+ 22322 - 11905: 0x8855,
+ 22323 - 11905: 0xDBDA,
+ 22324 - 11905: 0x8856,
+ 22325 - 11905: 0x8857,
+ 22326 - 11905: 0x8858,
+ 22327 - 11905: 0x8859,
+ 22328 - 11905: 0x885A,
+ 22329 - 11905: 0xDBDB,
+ 22330 - 11905: 0xB3A1,
+ 22331 - 11905: 0xDBDF,
+ 22332 - 11905: 0x885B,
+ 22333 - 11905: 0x885C,
+ 22334 - 11905: 0xBBF8,
+ 22335 - 11905: 0x885D,
+ 22336 - 11905: 0xD6B7,
+ 22337 - 11905: 0x885E,
+ 22338 - 11905: 0xDBE0,
+ 22339 - 11905: 0x885F,
+ 22340 - 11905: 0x8860,
+ 22341 - 11905: 0x8861,
+ 22342 - 11905: 0x8862,
+ 22343 - 11905: 0xBEF9,
+ 22344 - 11905: 0x8863,
+ 22345 - 11905: 0x8864,
+ 22346 - 11905: 0xB7BB,
+ 22347 - 11905: 0x8865,
+ 22348 - 11905: 0xDBD0,
+ 22349 - 11905: 0xCCAE,
+ 22350 - 11905: 0xBFB2,
+ 22351 - 11905: 0xBBB5,
+ 22352 - 11905: 0xD7F8,
+ 22353 - 11905: 0xBFD3,
+ 22354 - 11905: 0x8866,
+ 22355 - 11905: 0x8867,
+ 22356 - 11905: 0x8868,
+ 22357 - 11905: 0x8869,
+ 22358 - 11905: 0x886A,
+ 22359 - 11905: 0xBFE9,
+ 22360 - 11905: 0x886B,
+ 22361 - 11905: 0x886C,
+ 22362 - 11905: 0xBCE1,
+ 22363 - 11905: 0xCCB3,
+ 22364 - 11905: 0xDBDE,
+ 22365 - 11905: 0xB0D3,
+ 22366 - 11905: 0xCEEB,
+ 22367 - 11905: 0xB7D8,
+ 22368 - 11905: 0xD7B9,
+ 22369 - 11905: 0xC6C2,
+ 22370 - 11905: 0x886D,
+ 22371 - 11905: 0x886E,
+ 22372 - 11905: 0xC0A4,
+ 22373 - 11905: 0x886F,
+ 22374 - 11905: 0xCCB9,
+ 22375 - 11905: 0x8870,
+ 22376 - 11905: 0xDBE7,
+ 22377 - 11905: 0xDBE1,
+ 22378 - 11905: 0xC6BA,
+ 22379 - 11905: 0xDBE3,
+ 22380 - 11905: 0x8871,
+ 22381 - 11905: 0xDBE8,
+ 22382 - 11905: 0x8872,
+ 22383 - 11905: 0xC5F7,
+ 22384 - 11905: 0x8873,
+ 22385 - 11905: 0x8874,
+ 22386 - 11905: 0x8875,
+ 22387 - 11905: 0xDBEA,
+ 22388 - 11905: 0x8876,
+ 22389 - 11905: 0x8877,
+ 22390 - 11905: 0xDBE9,
+ 22391 - 11905: 0xBFC0,
+ 22392 - 11905: 0x8878,
+ 22393 - 11905: 0x8879,
+ 22394 - 11905: 0x887A,
+ 22395 - 11905: 0xDBE6,
+ 22396 - 11905: 0xDBE5,
+ 22397 - 11905: 0x887B,
+ 22398 - 11905: 0x887C,
+ 22399 - 11905: 0x887D,
+ 22400 - 11905: 0x887E,
+ 22401 - 11905: 0x8880,
+ 22402 - 11905: 0xB4B9,
+ 22403 - 11905: 0xC0AC,
+ 22404 - 11905: 0xC2A2,
+ 22405 - 11905: 0xDBE2,
+ 22406 - 11905: 0xDBE4,
+ 22407 - 11905: 0x8881,
+ 22408 - 11905: 0x8882,
+ 22409 - 11905: 0x8883,
+ 22410 - 11905: 0x8884,
+ 22411 - 11905: 0xD0CD,
+ 22412 - 11905: 0xDBED,
+ 22413 - 11905: 0x8885,
+ 22414 - 11905: 0x8886,
+ 22415 - 11905: 0x8887,
+ 22416 - 11905: 0x8888,
+ 22417 - 11905: 0x8889,
+ 22418 - 11905: 0xC0DD,
+ 22419 - 11905: 0xDBF2,
+ 22420 - 11905: 0x888A,
+ 22421 - 11905: 0x888B,
+ 22422 - 11905: 0x888C,
+ 22423 - 11905: 0x888D,
+ 22424 - 11905: 0x888E,
+ 22425 - 11905: 0x888F,
+ 22426 - 11905: 0x8890,
+ 22427 - 11905: 0xB6E2,
+ 22428 - 11905: 0x8891,
+ 22429 - 11905: 0x8892,
+ 22430 - 11905: 0x8893,
+ 22431 - 11905: 0x8894,
+ 22432 - 11905: 0xDBF3,
+ 22433 - 11905: 0xDBD2,
+ 22434 - 11905: 0xB9B8,
+ 22435 - 11905: 0xD4AB,
+ 22436 - 11905: 0xDBEC,
+ 22437 - 11905: 0x8895,
+ 22438 - 11905: 0xBFD1,
+ 22439 - 11905: 0xDBF0,
+ 22440 - 11905: 0x8896,
+ 22441 - 11905: 0xDBD1,
+ 22442 - 11905: 0x8897,
+ 22443 - 11905: 0xB5E6,
+ 22444 - 11905: 0x8898,
+ 22445 - 11905: 0xDBEB,
+ 22446 - 11905: 0xBFE5,
+ 22447 - 11905: 0x8899,
+ 22448 - 11905: 0x889A,
+ 22449 - 11905: 0x889B,
+ 22450 - 11905: 0xDBEE,
+ 22451 - 11905: 0x889C,
+ 22452 - 11905: 0xDBF1,
+ 22453 - 11905: 0x889D,
+ 22454 - 11905: 0x889E,
+ 22455 - 11905: 0x889F,
+ 22456 - 11905: 0xDBF9,
+ 22457 - 11905: 0x88A0,
+ 22458 - 11905: 0x88A1,
+ 22459 - 11905: 0x88A2,
+ 22460 - 11905: 0x88A3,
+ 22461 - 11905: 0x88A4,
+ 22462 - 11905: 0x88A5,
+ 22463 - 11905: 0x88A6,
+ 22464 - 11905: 0x88A7,
+ 22465 - 11905: 0x88A8,
+ 22466 - 11905: 0xB9A1,
+ 22467 - 11905: 0xB0A3,
+ 22468 - 11905: 0x88A9,
+ 22469 - 11905: 0x88AA,
+ 22470 - 11905: 0x88AB,
+ 22471 - 11905: 0x88AC,
+ 22472 - 11905: 0x88AD,
+ 22473 - 11905: 0x88AE,
+ 22474 - 11905: 0x88AF,
+ 22475 - 11905: 0xC2F1,
+ 22476 - 11905: 0x88B0,
+ 22477 - 11905: 0x88B1,
+ 22478 - 11905: 0xB3C7,
+ 22479 - 11905: 0xDBEF,
+ 22480 - 11905: 0x88B2,
+ 22481 - 11905: 0x88B3,
+ 22482 - 11905: 0xDBF8,
+ 22483 - 11905: 0x88B4,
+ 22484 - 11905: 0xC6D2,
+ 22485 - 11905: 0xDBF4,
+ 22486 - 11905: 0x88B5,
+ 22487 - 11905: 0x88B6,
+ 22488 - 11905: 0xDBF5,
+ 22489 - 11905: 0xDBF7,
+ 22490 - 11905: 0xDBF6,
+ 22491 - 11905: 0x88B7,
+ 22492 - 11905: 0x88B8,
+ 22493 - 11905: 0xDBFE,
+ 22494 - 11905: 0x88B9,
+ 22495 - 11905: 0xD3F2,
+ 22496 - 11905: 0xB2BA,
+ 22497 - 11905: 0x88BA,
+ 22498 - 11905: 0x88BB,
+ 22499 - 11905: 0x88BC,
+ 22500 - 11905: 0xDBFD,
+ 22501 - 11905: 0x88BD,
+ 22502 - 11905: 0x88BE,
+ 22503 - 11905: 0x88BF,
+ 22504 - 11905: 0x88C0,
+ 22505 - 11905: 0x88C1,
+ 22506 - 11905: 0x88C2,
+ 22507 - 11905: 0x88C3,
+ 22508 - 11905: 0x88C4,
+ 22509 - 11905: 0xDCA4,
+ 22510 - 11905: 0x88C5,
+ 22511 - 11905: 0xDBFB,
+ 22512 - 11905: 0x88C6,
+ 22513 - 11905: 0x88C7,
+ 22514 - 11905: 0x88C8,
+ 22515 - 11905: 0x88C9,
+ 22516 - 11905: 0xDBFA,
+ 22517 - 11905: 0x88CA,
+ 22518 - 11905: 0x88CB,
+ 22519 - 11905: 0x88CC,
+ 22520 - 11905: 0xDBFC,
+ 22521 - 11905: 0xC5E0,
+ 22522 - 11905: 0xBBF9,
+ 22523 - 11905: 0x88CD,
+ 22524 - 11905: 0x88CE,
+ 22525 - 11905: 0xDCA3,
+ 22526 - 11905: 0x88CF,
+ 22527 - 11905: 0x88D0,
+ 22528 - 11905: 0xDCA5,
+ 22529 - 11905: 0x88D1,
+ 22530 - 11905: 0xCCC3,
+ 22531 - 11905: 0x88D2,
+ 22532 - 11905: 0x88D3,
+ 22533 - 11905: 0x88D4,
+ 22534 - 11905: 0xB6D1,
+ 22535 - 11905: 0xDDC0,
+ 22536 - 11905: 0x88D5,
+ 22537 - 11905: 0x88D6,
+ 22538 - 11905: 0x88D7,
+ 22539 - 11905: 0xDCA1,
+ 22540 - 11905: 0x88D8,
+ 22541 - 11905: 0xDCA2,
+ 22542 - 11905: 0x88D9,
+ 22543 - 11905: 0x88DA,
+ 22544 - 11905: 0x88DB,
+ 22545 - 11905: 0xC7B5,
+ 22546 - 11905: 0x88DC,
+ 22547 - 11905: 0x88DD,
+ 22548 - 11905: 0x88DE,
+ 22549 - 11905: 0xB6E9,
+ 22550 - 11905: 0x88DF,
+ 22551 - 11905: 0x88E0,
+ 22552 - 11905: 0x88E1,
+ 22553 - 11905: 0xDCA7,
+ 22554 - 11905: 0x88E2,
+ 22555 - 11905: 0x88E3,
+ 22556 - 11905: 0x88E4,
+ 22557 - 11905: 0x88E5,
+ 22558 - 11905: 0xDCA6,
+ 22559 - 11905: 0x88E6,
+ 22560 - 11905: 0xDCA9,
+ 22561 - 11905: 0xB1A4,
+ 22562 - 11905: 0x88E7,
+ 22563 - 11905: 0x88E8,
+ 22564 - 11905: 0xB5CC,
+ 22565 - 11905: 0x88E9,
+ 22566 - 11905: 0x88EA,
+ 22567 - 11905: 0x88EB,
+ 22568 - 11905: 0x88EC,
+ 22569 - 11905: 0x88ED,
+ 22570 - 11905: 0xBFB0,
+ 22571 - 11905: 0x88EE,
+ 22572 - 11905: 0x88EF,
+ 22573 - 11905: 0x88F0,
+ 22574 - 11905: 0x88F1,
+ 22575 - 11905: 0x88F2,
+ 22576 - 11905: 0xD1DF,
+ 22577 - 11905: 0x88F3,
+ 22578 - 11905: 0x88F4,
+ 22579 - 11905: 0x88F5,
+ 22580 - 11905: 0x88F6,
+ 22581 - 11905: 0xB6C2,
+ 22582 - 11905: 0x88F7,
+ 22583 - 11905: 0x88F8,
+ 22584 - 11905: 0x88F9,
+ 22585 - 11905: 0x88FA,
+ 22586 - 11905: 0x88FB,
+ 22587 - 11905: 0x88FC,
+ 22588 - 11905: 0x88FD,
+ 22589 - 11905: 0x88FE,
+ 22590 - 11905: 0x8940,
+ 22591 - 11905: 0x8941,
+ 22592 - 11905: 0x8942,
+ 22593 - 11905: 0x8943,
+ 22594 - 11905: 0x8944,
+ 22595 - 11905: 0x8945,
+ 22596 - 11905: 0xDCA8,
+ 22597 - 11905: 0x8946,
+ 22598 - 11905: 0x8947,
+ 22599 - 11905: 0x8948,
+ 22600 - 11905: 0x8949,
+ 22601 - 11905: 0x894A,
+ 22602 - 11905: 0x894B,
+ 22603 - 11905: 0x894C,
+ 22604 - 11905: 0xCBFA,
+ 22605 - 11905: 0xEBF3,
+ 22606 - 11905: 0x894D,
+ 22607 - 11905: 0x894E,
+ 22608 - 11905: 0x894F,
+ 22609 - 11905: 0xCBDC,
+ 22610 - 11905: 0x8950,
+ 22611 - 11905: 0x8951,
+ 22612 - 11905: 0xCBFE,
+ 22613 - 11905: 0x8952,
+ 22614 - 11905: 0x8953,
+ 22615 - 11905: 0x8954,
+ 22616 - 11905: 0xCCC1,
+ 22617 - 11905: 0x8955,
+ 22618 - 11905: 0x8956,
+ 22619 - 11905: 0x8957,
+ 22620 - 11905: 0x8958,
+ 22621 - 11905: 0x8959,
+ 22622 - 11905: 0xC8FB,
+ 22623 - 11905: 0x895A,
+ 22624 - 11905: 0x895B,
+ 22625 - 11905: 0x895C,
+ 22626 - 11905: 0x895D,
+ 22627 - 11905: 0x895E,
+ 22628 - 11905: 0x895F,
+ 22629 - 11905: 0xDCAA,
+ 22630 - 11905: 0x8960,
+ 22631 - 11905: 0x8961,
+ 22632 - 11905: 0x8962,
+ 22633 - 11905: 0x8963,
+ 22634 - 11905: 0x8964,
+ 22635 - 11905: 0xCCEE,
+ 22636 - 11905: 0xDCAB,
+ 22637 - 11905: 0x8965,
+ 22638 - 11905: 0x8966,
+ 22639 - 11905: 0x8967,
+ 22640 - 11905: 0x8968,
+ 22641 - 11905: 0x8969,
+ 22642 - 11905: 0x896A,
+ 22643 - 11905: 0x896B,
+ 22644 - 11905: 0x896C,
+ 22645 - 11905: 0x896D,
+ 22646 - 11905: 0x896E,
+ 22647 - 11905: 0x896F,
+ 22648 - 11905: 0x8970,
+ 22649 - 11905: 0x8971,
+ 22650 - 11905: 0x8972,
+ 22651 - 11905: 0x8973,
+ 22652 - 11905: 0x8974,
+ 22653 - 11905: 0x8975,
+ 22654 - 11905: 0xDBD3,
+ 22655 - 11905: 0x8976,
+ 22656 - 11905: 0xDCAF,
+ 22657 - 11905: 0xDCAC,
+ 22658 - 11905: 0x8977,
+ 22659 - 11905: 0xBEB3,
+ 22660 - 11905: 0x8978,
+ 22661 - 11905: 0xCAFB,
+ 22662 - 11905: 0x8979,
+ 22663 - 11905: 0x897A,
+ 22664 - 11905: 0x897B,
+ 22665 - 11905: 0xDCAD,
+ 22666 - 11905: 0x897C,
+ 22667 - 11905: 0x897D,
+ 22668 - 11905: 0x897E,
+ 22669 - 11905: 0x8980,
+ 22670 - 11905: 0x8981,
+ 22671 - 11905: 0x8982,
+ 22672 - 11905: 0x8983,
+ 22673 - 11905: 0x8984,
+ 22674 - 11905: 0xC9CA,
+ 22675 - 11905: 0xC4B9,
+ 22676 - 11905: 0x8985,
+ 22677 - 11905: 0x8986,
+ 22678 - 11905: 0x8987,
+ 22679 - 11905: 0x8988,
+ 22680 - 11905: 0x8989,
+ 22681 - 11905: 0xC7BD,
+ 22682 - 11905: 0xDCAE,
+ 22683 - 11905: 0x898A,
+ 22684 - 11905: 0x898B,
+ 22685 - 11905: 0x898C,
+ 22686 - 11905: 0xD4F6,
+ 22687 - 11905: 0xD0E6,
+ 22688 - 11905: 0x898D,
+ 22689 - 11905: 0x898E,
+ 22690 - 11905: 0x898F,
+ 22691 - 11905: 0x8990,
+ 22692 - 11905: 0x8991,
+ 22693 - 11905: 0x8992,
+ 22694 - 11905: 0x8993,
+ 22695 - 11905: 0x8994,
+ 22696 - 11905: 0xC4AB,
+ 22697 - 11905: 0xB6D5,
+ 22698 - 11905: 0x8995,
+ 22699 - 11905: 0x8996,
+ 22700 - 11905: 0x8997,
+ 22701 - 11905: 0x8998,
+ 22702 - 11905: 0x8999,
+ 22703 - 11905: 0x899A,
+ 22704 - 11905: 0x899B,
+ 22705 - 11905: 0x899C,
+ 22706 - 11905: 0x899D,
+ 22707 - 11905: 0x899E,
+ 22708 - 11905: 0x899F,
+ 22709 - 11905: 0x89A0,
+ 22710 - 11905: 0x89A1,
+ 22711 - 11905: 0x89A2,
+ 22712 - 11905: 0x89A3,
+ 22713 - 11905: 0x89A4,
+ 22714 - 11905: 0x89A5,
+ 22715 - 11905: 0x89A6,
+ 22716 - 11905: 0xDBD4,
+ 22717 - 11905: 0x89A7,
+ 22718 - 11905: 0x89A8,
+ 22719 - 11905: 0x89A9,
+ 22720 - 11905: 0x89AA,
+ 22721 - 11905: 0xB1DA,
+ 22722 - 11905: 0x89AB,
+ 22723 - 11905: 0x89AC,
+ 22724 - 11905: 0x89AD,
+ 22725 - 11905: 0xDBD5,
+ 22726 - 11905: 0x89AE,
+ 22727 - 11905: 0x89AF,
+ 22728 - 11905: 0x89B0,
+ 22729 - 11905: 0x89B1,
+ 22730 - 11905: 0x89B2,
+ 22731 - 11905: 0x89B3,
+ 22732 - 11905: 0x89B4,
+ 22733 - 11905: 0x89B5,
+ 22734 - 11905: 0x89B6,
+ 22735 - 11905: 0x89B7,
+ 22736 - 11905: 0x89B8,
+ 22737 - 11905: 0xDBD6,
+ 22738 - 11905: 0x89B9,
+ 22739 - 11905: 0x89BA,
+ 22740 - 11905: 0x89BB,
+ 22741 - 11905: 0xBABE,
+ 22742 - 11905: 0x89BC,
+ 22743 - 11905: 0x89BD,
+ 22744 - 11905: 0x89BE,
+ 22745 - 11905: 0x89BF,
+ 22746 - 11905: 0x89C0,
+ 22747 - 11905: 0x89C1,
+ 22748 - 11905: 0x89C2,
+ 22749 - 11905: 0x89C3,
+ 22750 - 11905: 0x89C4,
+ 22751 - 11905: 0x89C5,
+ 22752 - 11905: 0x89C6,
+ 22753 - 11905: 0x89C7,
+ 22754 - 11905: 0x89C8,
+ 22755 - 11905: 0x89C9,
+ 22756 - 11905: 0xC8C0,
+ 22757 - 11905: 0x89CA,
+ 22758 - 11905: 0x89CB,
+ 22759 - 11905: 0x89CC,
+ 22760 - 11905: 0x89CD,
+ 22761 - 11905: 0x89CE,
+ 22762 - 11905: 0x89CF,
+ 22763 - 11905: 0xCABF,
+ 22764 - 11905: 0xC8C9,
+ 22765 - 11905: 0x89D0,
+ 22766 - 11905: 0xD7B3,
+ 22767 - 11905: 0x89D1,
+ 22768 - 11905: 0xC9F9,
+ 22769 - 11905: 0x89D2,
+ 22770 - 11905: 0x89D3,
+ 22771 - 11905: 0xBFC7,
+ 22772 - 11905: 0x89D4,
+ 22773 - 11905: 0x89D5,
+ 22774 - 11905: 0xBAF8,
+ 22775 - 11905: 0x89D6,
+ 22776 - 11905: 0x89D7,
+ 22777 - 11905: 0xD2BC,
+ 22778 - 11905: 0x89D8,
+ 22779 - 11905: 0x89D9,
+ 22780 - 11905: 0x89DA,
+ 22781 - 11905: 0x89DB,
+ 22782 - 11905: 0x89DC,
+ 22783 - 11905: 0x89DD,
+ 22784 - 11905: 0x89DE,
+ 22785 - 11905: 0x89DF,
+ 22786 - 11905: 0xE2BA,
+ 22787 - 11905: 0x89E0,
+ 22788 - 11905: 0xB4A6,
+ 22789 - 11905: 0x89E1,
+ 22790 - 11905: 0x89E2,
+ 22791 - 11905: 0xB1B8,
+ 22792 - 11905: 0x89E3,
+ 22793 - 11905: 0x89E4,
+ 22794 - 11905: 0x89E5,
+ 22795 - 11905: 0x89E6,
+ 22796 - 11905: 0x89E7,
+ 22797 - 11905: 0xB8B4,
+ 22798 - 11905: 0x89E8,
+ 22799 - 11905: 0xCFC4,
+ 22800 - 11905: 0x89E9,
+ 22801 - 11905: 0x89EA,
+ 22802 - 11905: 0x89EB,
+ 22803 - 11905: 0x89EC,
+ 22804 - 11905: 0xD9E7,
+ 22805 - 11905: 0xCFA6,
+ 22806 - 11905: 0xCDE2,
+ 22807 - 11905: 0x89ED,
+ 22808 - 11905: 0x89EE,
+ 22809 - 11905: 0xD9ED,
+ 22810 - 11905: 0xB6E0,
+ 22811 - 11905: 0x89EF,
+ 22812 - 11905: 0xD2B9,
+ 22813 - 11905: 0x89F0,
+ 22814 - 11905: 0x89F1,
+ 22815 - 11905: 0xB9BB,
+ 22816 - 11905: 0x89F2,
+ 22817 - 11905: 0x89F3,
+ 22818 - 11905: 0x89F4,
+ 22819 - 11905: 0x89F5,
+ 22820 - 11905: 0xE2B9,
+ 22821 - 11905: 0xE2B7,
+ 22822 - 11905: 0x89F6,
+ 22823 - 11905: 0xB4F3,
+ 22824 - 11905: 0x89F7,
+ 22825 - 11905: 0xCCEC,
+ 22826 - 11905: 0xCCAB,
+ 22827 - 11905: 0xB7F2,
+ 22828 - 11905: 0x89F8,
+ 22829 - 11905: 0xD8B2,
+ 22830 - 11905: 0xD1EB,
+ 22831 - 11905: 0xBABB,
+ 22832 - 11905: 0x89F9,
+ 22833 - 11905: 0xCAA7,
+ 22834 - 11905: 0x89FA,
+ 22835 - 11905: 0x89FB,
+ 22836 - 11905: 0xCDB7,
+ 22837 - 11905: 0x89FC,
+ 22838 - 11905: 0x89FD,
+ 22839 - 11905: 0xD2C4,
+ 22840 - 11905: 0xBFE4,
+ 22841 - 11905: 0xBCD0,
+ 22842 - 11905: 0xB6E1,
+ 22843 - 11905: 0x89FE,
+ 22844 - 11905: 0xDEC5,
+ 22845 - 11905: 0x8A40,
+ 22846 - 11905: 0x8A41,
+ 22847 - 11905: 0x8A42,
+ 22848 - 11905: 0x8A43,
+ 22849 - 11905: 0xDEC6,
+ 22850 - 11905: 0xDBBC,
+ 22851 - 11905: 0x8A44,
+ 22852 - 11905: 0xD1D9,
+ 22853 - 11905: 0x8A45,
+ 22854 - 11905: 0x8A46,
+ 22855 - 11905: 0xC6E6,
+ 22856 - 11905: 0xC4CE,
+ 22857 - 11905: 0xB7EE,
+ 22858 - 11905: 0x8A47,
+ 22859 - 11905: 0xB7DC,
+ 22860 - 11905: 0x8A48,
+ 22861 - 11905: 0x8A49,
+ 22862 - 11905: 0xBFFC,
+ 22863 - 11905: 0xD7E0,
+ 22864 - 11905: 0x8A4A,
+ 22865 - 11905: 0xC6F5,
+ 22866 - 11905: 0x8A4B,
+ 22867 - 11905: 0x8A4C,
+ 22868 - 11905: 0xB1BC,
+ 22869 - 11905: 0xDEC8,
+ 22870 - 11905: 0xBDB1,
+ 22871 - 11905: 0xCCD7,
+ 22872 - 11905: 0xDECA,
+ 22873 - 11905: 0x8A4D,
+ 22874 - 11905: 0xDEC9,
+ 22875 - 11905: 0x8A4E,
+ 22876 - 11905: 0x8A4F,
+ 22877 - 11905: 0x8A50,
+ 22878 - 11905: 0x8A51,
+ 22879 - 11905: 0x8A52,
+ 22880 - 11905: 0xB5EC,
+ 22881 - 11905: 0x8A53,
+ 22882 - 11905: 0xC9DD,
+ 22883 - 11905: 0x8A54,
+ 22884 - 11905: 0x8A55,
+ 22885 - 11905: 0xB0C2,
+ 22886 - 11905: 0x8A56,
+ 22887 - 11905: 0x8A57,
+ 22888 - 11905: 0x8A58,
+ 22889 - 11905: 0x8A59,
+ 22890 - 11905: 0x8A5A,
+ 22891 - 11905: 0x8A5B,
+ 22892 - 11905: 0x8A5C,
+ 22893 - 11905: 0x8A5D,
+ 22894 - 11905: 0x8A5E,
+ 22895 - 11905: 0x8A5F,
+ 22896 - 11905: 0x8A60,
+ 22897 - 11905: 0x8A61,
+ 22898 - 11905: 0x8A62,
+ 22899 - 11905: 0xC5AE,
+ 22900 - 11905: 0xC5AB,
+ 22901 - 11905: 0x8A63,
+ 22902 - 11905: 0xC4CC,
+ 22903 - 11905: 0x8A64,
+ 22904 - 11905: 0xBCE9,
+ 22905 - 11905: 0xCBFD,
+ 22906 - 11905: 0x8A65,
+ 22907 - 11905: 0x8A66,
+ 22908 - 11905: 0x8A67,
+ 22909 - 11905: 0xBAC3,
+ 22910 - 11905: 0x8A68,
+ 22911 - 11905: 0x8A69,
+ 22912 - 11905: 0x8A6A,
+ 22913 - 11905: 0xE5F9,
+ 22914 - 11905: 0xC8E7,
+ 22915 - 11905: 0xE5FA,
+ 22916 - 11905: 0xCDFD,
+ 22917 - 11905: 0x8A6B,
+ 22918 - 11905: 0xD7B1,
+ 22919 - 11905: 0xB8BE,
+ 22920 - 11905: 0xC2E8,
+ 22921 - 11905: 0x8A6C,
+ 22922 - 11905: 0xC8D1,
+ 22923 - 11905: 0x8A6D,
+ 22924 - 11905: 0x8A6E,
+ 22925 - 11905: 0xE5FB,
+ 22926 - 11905: 0x8A6F,
+ 22927 - 11905: 0x8A70,
+ 22928 - 11905: 0x8A71,
+ 22929 - 11905: 0x8A72,
+ 22930 - 11905: 0xB6CA,
+ 22931 - 11905: 0xBCCB,
+ 22932 - 11905: 0x8A73,
+ 22933 - 11905: 0x8A74,
+ 22934 - 11905: 0xD1FD,
+ 22935 - 11905: 0xE6A1,
+ 22936 - 11905: 0x8A75,
+ 22937 - 11905: 0xC3EE,
+ 22938 - 11905: 0x8A76,
+ 22939 - 11905: 0x8A77,
+ 22940 - 11905: 0x8A78,
+ 22941 - 11905: 0x8A79,
+ 22942 - 11905: 0xE6A4,
+ 22943 - 11905: 0x8A7A,
+ 22944 - 11905: 0x8A7B,
+ 22945 - 11905: 0x8A7C,
+ 22946 - 11905: 0x8A7D,
+ 22947 - 11905: 0xE5FE,
+ 22948 - 11905: 0xE6A5,
+ 22949 - 11905: 0xCDD7,
+ 22950 - 11905: 0x8A7E,
+ 22951 - 11905: 0x8A80,
+ 22952 - 11905: 0xB7C1,
+ 22953 - 11905: 0xE5FC,
+ 22954 - 11905: 0xE5FD,
+ 22955 - 11905: 0xE6A3,
+ 22956 - 11905: 0x8A81,
+ 22957 - 11905: 0x8A82,
+ 22958 - 11905: 0xC4DD,
+ 22959 - 11905: 0xE6A8,
+ 22960 - 11905: 0x8A83,
+ 22961 - 11905: 0x8A84,
+ 22962 - 11905: 0xE6A7,
+ 22963 - 11905: 0x8A85,
+ 22964 - 11905: 0x8A86,
+ 22965 - 11905: 0x8A87,
+ 22966 - 11905: 0x8A88,
+ 22967 - 11905: 0x8A89,
+ 22968 - 11905: 0x8A8A,
+ 22969 - 11905: 0xC3C3,
+ 22970 - 11905: 0x8A8B,
+ 22971 - 11905: 0xC6DE,
+ 22972 - 11905: 0x8A8C,
+ 22973 - 11905: 0x8A8D,
+ 22974 - 11905: 0xE6AA,
+ 22975 - 11905: 0x8A8E,
+ 22976 - 11905: 0x8A8F,
+ 22977 - 11905: 0x8A90,
+ 22978 - 11905: 0x8A91,
+ 22979 - 11905: 0x8A92,
+ 22980 - 11905: 0x8A93,
+ 22981 - 11905: 0x8A94,
+ 22982 - 11905: 0xC4B7,
+ 22983 - 11905: 0x8A95,
+ 22984 - 11905: 0x8A96,
+ 22985 - 11905: 0x8A97,
+ 22986 - 11905: 0xE6A2,
+ 22987 - 11905: 0xCABC,
+ 22988 - 11905: 0x8A98,
+ 22989 - 11905: 0x8A99,
+ 22990 - 11905: 0x8A9A,
+ 22991 - 11905: 0x8A9B,
+ 22992 - 11905: 0xBDE3,
+ 22993 - 11905: 0xB9C3,
+ 22994 - 11905: 0xE6A6,
+ 22995 - 11905: 0xD0D5,
+ 22996 - 11905: 0xCEAF,
+ 22997 - 11905: 0x8A9C,
+ 22998 - 11905: 0x8A9D,
+ 22999 - 11905: 0xE6A9,
+ 23000 - 11905: 0xE6B0,
+ 23001 - 11905: 0x8A9E,
+ 23002 - 11905: 0xD2A6,
+ 23003 - 11905: 0x8A9F,
+ 23004 - 11905: 0xBDAA,
+ 23005 - 11905: 0xE6AD,
+ 23006 - 11905: 0x8AA0,
+ 23007 - 11905: 0x8AA1,
+ 23008 - 11905: 0x8AA2,
+ 23009 - 11905: 0x8AA3,
+ 23010 - 11905: 0x8AA4,
+ 23011 - 11905: 0xE6AF,
+ 23012 - 11905: 0x8AA5,
+ 23013 - 11905: 0xC0D1,
+ 23014 - 11905: 0x8AA6,
+ 23015 - 11905: 0x8AA7,
+ 23016 - 11905: 0xD2CC,
+ 23017 - 11905: 0x8AA8,
+ 23018 - 11905: 0x8AA9,
+ 23019 - 11905: 0x8AAA,
+ 23020 - 11905: 0xBCA7,
+ 23021 - 11905: 0x8AAB,
+ 23022 - 11905: 0x8AAC,
+ 23023 - 11905: 0x8AAD,
+ 23024 - 11905: 0x8AAE,
+ 23025 - 11905: 0x8AAF,
+ 23026 - 11905: 0x8AB0,
+ 23027 - 11905: 0x8AB1,
+ 23028 - 11905: 0x8AB2,
+ 23029 - 11905: 0x8AB3,
+ 23030 - 11905: 0x8AB4,
+ 23031 - 11905: 0x8AB5,
+ 23032 - 11905: 0x8AB6,
+ 23033 - 11905: 0xE6B1,
+ 23034 - 11905: 0x8AB7,
+ 23035 - 11905: 0xD2F6,
+ 23036 - 11905: 0x8AB8,
+ 23037 - 11905: 0x8AB9,
+ 23038 - 11905: 0x8ABA,
+ 23039 - 11905: 0xD7CB,
+ 23040 - 11905: 0x8ABB,
+ 23041 - 11905: 0xCDFE,
+ 23042 - 11905: 0x8ABC,
+ 23043 - 11905: 0xCDDE,
+ 23044 - 11905: 0xC2A6,
+ 23045 - 11905: 0xE6AB,
+ 23046 - 11905: 0xE6AC,
+ 23047 - 11905: 0xBDBF,
+ 23048 - 11905: 0xE6AE,
+ 23049 - 11905: 0xE6B3,
+ 23050 - 11905: 0x8ABD,
+ 23051 - 11905: 0x8ABE,
+ 23052 - 11905: 0xE6B2,
+ 23053 - 11905: 0x8ABF,
+ 23054 - 11905: 0x8AC0,
+ 23055 - 11905: 0x8AC1,
+ 23056 - 11905: 0x8AC2,
+ 23057 - 11905: 0xE6B6,
+ 23058 - 11905: 0x8AC3,
+ 23059 - 11905: 0xE6B8,
+ 23060 - 11905: 0x8AC4,
+ 23061 - 11905: 0x8AC5,
+ 23062 - 11905: 0x8AC6,
+ 23063 - 11905: 0x8AC7,
+ 23064 - 11905: 0xC4EF,
+ 23065 - 11905: 0x8AC8,
+ 23066 - 11905: 0x8AC9,
+ 23067 - 11905: 0x8ACA,
+ 23068 - 11905: 0xC4C8,
+ 23069 - 11905: 0x8ACB,
+ 23070 - 11905: 0x8ACC,
+ 23071 - 11905: 0xBEEA,
+ 23072 - 11905: 0xC9EF,
+ 23073 - 11905: 0x8ACD,
+ 23074 - 11905: 0x8ACE,
+ 23075 - 11905: 0xE6B7,
+ 23076 - 11905: 0x8ACF,
+ 23077 - 11905: 0xB6F0,
+ 23078 - 11905: 0x8AD0,
+ 23079 - 11905: 0x8AD1,
+ 23080 - 11905: 0x8AD2,
+ 23081 - 11905: 0xC3E4,
+ 23082 - 11905: 0x8AD3,
+ 23083 - 11905: 0x8AD4,
+ 23084 - 11905: 0x8AD5,
+ 23085 - 11905: 0x8AD6,
+ 23086 - 11905: 0x8AD7,
+ 23087 - 11905: 0x8AD8,
+ 23088 - 11905: 0x8AD9,
+ 23089 - 11905: 0xD3E9,
+ 23090 - 11905: 0xE6B4,
+ 23091 - 11905: 0x8ADA,
+ 23092 - 11905: 0xE6B5,
+ 23093 - 11905: 0x8ADB,
+ 23094 - 11905: 0xC8A2,
+ 23095 - 11905: 0x8ADC,
+ 23096 - 11905: 0x8ADD,
+ 23097 - 11905: 0x8ADE,
+ 23098 - 11905: 0x8ADF,
+ 23099 - 11905: 0x8AE0,
+ 23100 - 11905: 0xE6BD,
+ 23101 - 11905: 0x8AE1,
+ 23102 - 11905: 0x8AE2,
+ 23103 - 11905: 0x8AE3,
+ 23104 - 11905: 0xE6B9,
+ 23105 - 11905: 0x8AE4,
+ 23106 - 11905: 0x8AE5,
+ 23107 - 11905: 0x8AE6,
+ 23108 - 11905: 0x8AE7,
+ 23109 - 11905: 0x8AE8,
+ 23110 - 11905: 0xC6C5,
+ 23111 - 11905: 0x8AE9,
+ 23112 - 11905: 0x8AEA,
+ 23113 - 11905: 0xCDF1,
+ 23114 - 11905: 0xE6BB,
+ 23115 - 11905: 0x8AEB,
+ 23116 - 11905: 0x8AEC,
+ 23117 - 11905: 0x8AED,
+ 23118 - 11905: 0x8AEE,
+ 23119 - 11905: 0x8AEF,
+ 23120 - 11905: 0x8AF0,
+ 23121 - 11905: 0x8AF1,
+ 23122 - 11905: 0x8AF2,
+ 23123 - 11905: 0x8AF3,
+ 23124 - 11905: 0x8AF4,
+ 23125 - 11905: 0xE6BC,
+ 23126 - 11905: 0x8AF5,
+ 23127 - 11905: 0x8AF6,
+ 23128 - 11905: 0x8AF7,
+ 23129 - 11905: 0x8AF8,
+ 23130 - 11905: 0xBBE9,
+ 23131 - 11905: 0x8AF9,
+ 23132 - 11905: 0x8AFA,
+ 23133 - 11905: 0x8AFB,
+ 23134 - 11905: 0x8AFC,
+ 23135 - 11905: 0x8AFD,
+ 23136 - 11905: 0x8AFE,
+ 23137 - 11905: 0x8B40,
+ 23138 - 11905: 0xE6BE,
+ 23139 - 11905: 0x8B41,
+ 23140 - 11905: 0x8B42,
+ 23141 - 11905: 0x8B43,
+ 23142 - 11905: 0x8B44,
+ 23143 - 11905: 0xE6BA,
+ 23144 - 11905: 0x8B45,
+ 23145 - 11905: 0x8B46,
+ 23146 - 11905: 0xC0B7,
+ 23147 - 11905: 0x8B47,
+ 23148 - 11905: 0x8B48,
+ 23149 - 11905: 0x8B49,
+ 23150 - 11905: 0x8B4A,
+ 23151 - 11905: 0x8B4B,
+ 23152 - 11905: 0x8B4C,
+ 23153 - 11905: 0x8B4D,
+ 23154 - 11905: 0x8B4E,
+ 23155 - 11905: 0x8B4F,
+ 23156 - 11905: 0xD3A4,
+ 23157 - 11905: 0xE6BF,
+ 23158 - 11905: 0xC9F4,
+ 23159 - 11905: 0xE6C3,
+ 23160 - 11905: 0x8B50,
+ 23161 - 11905: 0x8B51,
+ 23162 - 11905: 0xE6C4,
+ 23163 - 11905: 0x8B52,
+ 23164 - 11905: 0x8B53,
+ 23165 - 11905: 0x8B54,
+ 23166 - 11905: 0x8B55,
+ 23167 - 11905: 0xD0F6,
+ 23168 - 11905: 0x8B56,
+ 23169 - 11905: 0x8B57,
+ 23170 - 11905: 0x8B58,
+ 23171 - 11905: 0x8B59,
+ 23172 - 11905: 0x8B5A,
+ 23173 - 11905: 0x8B5B,
+ 23174 - 11905: 0x8B5C,
+ 23175 - 11905: 0x8B5D,
+ 23176 - 11905: 0x8B5E,
+ 23177 - 11905: 0x8B5F,
+ 23178 - 11905: 0x8B60,
+ 23179 - 11905: 0x8B61,
+ 23180 - 11905: 0x8B62,
+ 23181 - 11905: 0x8B63,
+ 23182 - 11905: 0x8B64,
+ 23183 - 11905: 0x8B65,
+ 23184 - 11905: 0x8B66,
+ 23185 - 11905: 0x8B67,
+ 23186 - 11905: 0xC3BD,
+ 23187 - 11905: 0x8B68,
+ 23188 - 11905: 0x8B69,
+ 23189 - 11905: 0x8B6A,
+ 23190 - 11905: 0x8B6B,
+ 23191 - 11905: 0x8B6C,
+ 23192 - 11905: 0x8B6D,
+ 23193 - 11905: 0x8B6E,
+ 23194 - 11905: 0xC3C4,
+ 23195 - 11905: 0xE6C2,
+ 23196 - 11905: 0x8B6F,
+ 23197 - 11905: 0x8B70,
+ 23198 - 11905: 0x8B71,
+ 23199 - 11905: 0x8B72,
+ 23200 - 11905: 0x8B73,
+ 23201 - 11905: 0x8B74,
+ 23202 - 11905: 0x8B75,
+ 23203 - 11905: 0x8B76,
+ 23204 - 11905: 0x8B77,
+ 23205 - 11905: 0x8B78,
+ 23206 - 11905: 0x8B79,
+ 23207 - 11905: 0x8B7A,
+ 23208 - 11905: 0x8B7B,
+ 23209 - 11905: 0x8B7C,
+ 23210 - 11905: 0xE6C1,
+ 23211 - 11905: 0x8B7D,
+ 23212 - 11905: 0x8B7E,
+ 23213 - 11905: 0x8B80,
+ 23214 - 11905: 0x8B81,
+ 23215 - 11905: 0x8B82,
+ 23216 - 11905: 0x8B83,
+ 23217 - 11905: 0x8B84,
+ 23218 - 11905: 0xE6C7,
+ 23219 - 11905: 0xCFB1,
+ 23220 - 11905: 0x8B85,
+ 23221 - 11905: 0xEBF4,
+ 23222 - 11905: 0x8B86,
+ 23223 - 11905: 0x8B87,
+ 23224 - 11905: 0xE6CA,
+ 23225 - 11905: 0x8B88,
+ 23226 - 11905: 0x8B89,
+ 23227 - 11905: 0x8B8A,
+ 23228 - 11905: 0x8B8B,
+ 23229 - 11905: 0x8B8C,
+ 23230 - 11905: 0xE6C5,
+ 23231 - 11905: 0x8B8D,
+ 23232 - 11905: 0x8B8E,
+ 23233 - 11905: 0xBCDE,
+ 23234 - 11905: 0xC9A9,
+ 23235 - 11905: 0x8B8F,
+ 23236 - 11905: 0x8B90,
+ 23237 - 11905: 0x8B91,
+ 23238 - 11905: 0x8B92,
+ 23239 - 11905: 0x8B93,
+ 23240 - 11905: 0x8B94,
+ 23241 - 11905: 0xBCB5,
+ 23242 - 11905: 0x8B95,
+ 23243 - 11905: 0x8B96,
+ 23244 - 11905: 0xCFD3,
+ 23245 - 11905: 0x8B97,
+ 23246 - 11905: 0x8B98,
+ 23247 - 11905: 0x8B99,
+ 23248 - 11905: 0x8B9A,
+ 23249 - 11905: 0x8B9B,
+ 23250 - 11905: 0xE6C8,
+ 23251 - 11905: 0x8B9C,
+ 23252 - 11905: 0xE6C9,
+ 23253 - 11905: 0x8B9D,
+ 23254 - 11905: 0xE6CE,
+ 23255 - 11905: 0x8B9E,
+ 23256 - 11905: 0xE6D0,
+ 23257 - 11905: 0x8B9F,
+ 23258 - 11905: 0x8BA0,
+ 23259 - 11905: 0x8BA1,
+ 23260 - 11905: 0xE6D1,
+ 23261 - 11905: 0x8BA2,
+ 23262 - 11905: 0x8BA3,
+ 23263 - 11905: 0x8BA4,
+ 23264 - 11905: 0xE6CB,
+ 23265 - 11905: 0xB5D5,
+ 23266 - 11905: 0x8BA5,
+ 23267 - 11905: 0xE6CC,
+ 23268 - 11905: 0x8BA6,
+ 23269 - 11905: 0x8BA7,
+ 23270 - 11905: 0xE6CF,
+ 23271 - 11905: 0x8BA8,
+ 23272 - 11905: 0x8BA9,
+ 23273 - 11905: 0xC4DB,
+ 23274 - 11905: 0x8BAA,
+ 23275 - 11905: 0xE6C6,
+ 23276 - 11905: 0x8BAB,
+ 23277 - 11905: 0x8BAC,
+ 23278 - 11905: 0x8BAD,
+ 23279 - 11905: 0x8BAE,
+ 23280 - 11905: 0x8BAF,
+ 23281 - 11905: 0xE6CD,
+ 23282 - 11905: 0x8BB0,
+ 23283 - 11905: 0x8BB1,
+ 23284 - 11905: 0x8BB2,
+ 23285 - 11905: 0x8BB3,
+ 23286 - 11905: 0x8BB4,
+ 23287 - 11905: 0x8BB5,
+ 23288 - 11905: 0x8BB6,
+ 23289 - 11905: 0x8BB7,
+ 23290 - 11905: 0x8BB8,
+ 23291 - 11905: 0x8BB9,
+ 23292 - 11905: 0x8BBA,
+ 23293 - 11905: 0x8BBB,
+ 23294 - 11905: 0x8BBC,
+ 23295 - 11905: 0x8BBD,
+ 23296 - 11905: 0x8BBE,
+ 23297 - 11905: 0x8BBF,
+ 23298 - 11905: 0x8BC0,
+ 23299 - 11905: 0x8BC1,
+ 23300 - 11905: 0x8BC2,
+ 23301 - 11905: 0x8BC3,
+ 23302 - 11905: 0x8BC4,
+ 23303 - 11905: 0x8BC5,
+ 23304 - 11905: 0x8BC6,
+ 23305 - 11905: 0xE6D2,
+ 23306 - 11905: 0x8BC7,
+ 23307 - 11905: 0x8BC8,
+ 23308 - 11905: 0x8BC9,
+ 23309 - 11905: 0x8BCA,
+ 23310 - 11905: 0x8BCB,
+ 23311 - 11905: 0x8BCC,
+ 23312 - 11905: 0x8BCD,
+ 23313 - 11905: 0x8BCE,
+ 23314 - 11905: 0x8BCF,
+ 23315 - 11905: 0x8BD0,
+ 23316 - 11905: 0x8BD1,
+ 23317 - 11905: 0x8BD2,
+ 23318 - 11905: 0xE6D4,
+ 23319 - 11905: 0xE6D3,
+ 23320 - 11905: 0x8BD3,
+ 23321 - 11905: 0x8BD4,
+ 23322 - 11905: 0x8BD5,
+ 23323 - 11905: 0x8BD6,
+ 23324 - 11905: 0x8BD7,
+ 23325 - 11905: 0x8BD8,
+ 23326 - 11905: 0x8BD9,
+ 23327 - 11905: 0x8BDA,
+ 23328 - 11905: 0x8BDB,
+ 23329 - 11905: 0x8BDC,
+ 23330 - 11905: 0x8BDD,
+ 23331 - 11905: 0x8BDE,
+ 23332 - 11905: 0x8BDF,
+ 23333 - 11905: 0x8BE0,
+ 23334 - 11905: 0x8BE1,
+ 23335 - 11905: 0x8BE2,
+ 23336 - 11905: 0x8BE3,
+ 23337 - 11905: 0x8BE4,
+ 23338 - 11905: 0x8BE5,
+ 23339 - 11905: 0x8BE6,
+ 23340 - 11905: 0x8BE7,
+ 23341 - 11905: 0x8BE8,
+ 23342 - 11905: 0x8BE9,
+ 23343 - 11905: 0x8BEA,
+ 23344 - 11905: 0x8BEB,
+ 23345 - 11905: 0x8BEC,
+ 23346 - 11905: 0xE6D5,
+ 23347 - 11905: 0x8BED,
+ 23348 - 11905: 0xD9F8,
+ 23349 - 11905: 0x8BEE,
+ 23350 - 11905: 0x8BEF,
+ 23351 - 11905: 0xE6D6,
+ 23352 - 11905: 0x8BF0,
+ 23353 - 11905: 0x8BF1,
+ 23354 - 11905: 0x8BF2,
+ 23355 - 11905: 0x8BF3,
+ 23356 - 11905: 0x8BF4,
+ 23357 - 11905: 0x8BF5,
+ 23358 - 11905: 0x8BF6,
+ 23359 - 11905: 0x8BF7,
+ 23360 - 11905: 0xE6D7,
+ 23361 - 11905: 0x8BF8,
+ 23362 - 11905: 0x8BF9,
+ 23363 - 11905: 0x8BFA,
+ 23364 - 11905: 0x8BFB,
+ 23365 - 11905: 0x8BFC,
+ 23366 - 11905: 0x8BFD,
+ 23367 - 11905: 0x8BFE,
+ 23368 - 11905: 0x8C40,
+ 23369 - 11905: 0x8C41,
+ 23370 - 11905: 0x8C42,
+ 23371 - 11905: 0x8C43,
+ 23372 - 11905: 0x8C44,
+ 23373 - 11905: 0x8C45,
+ 23374 - 11905: 0x8C46,
+ 23375 - 11905: 0x8C47,
+ 23376 - 11905: 0xD7D3,
+ 23377 - 11905: 0xE6DD,
+ 23378 - 11905: 0x8C48,
+ 23379 - 11905: 0xE6DE,
+ 23380 - 11905: 0xBFD7,
+ 23381 - 11905: 0xD4D0,
+ 23382 - 11905: 0x8C49,
+ 23383 - 11905: 0xD7D6,
+ 23384 - 11905: 0xB4E6,
+ 23385 - 11905: 0xCBEF,
+ 23386 - 11905: 0xE6DA,
+ 23387 - 11905: 0xD8C3,
+ 23388 - 11905: 0xD7CE,
+ 23389 - 11905: 0xD0A2,
+ 23390 - 11905: 0x8C4A,
+ 23391 - 11905: 0xC3CF,
+ 23392 - 11905: 0x8C4B,
+ 23393 - 11905: 0x8C4C,
+ 23394 - 11905: 0xE6DF,
+ 23395 - 11905: 0xBCBE,
+ 23396 - 11905: 0xB9C2,
+ 23397 - 11905: 0xE6DB,
+ 23398 - 11905: 0xD1A7,
+ 23399 - 11905: 0x8C4D,
+ 23400 - 11905: 0x8C4E,
+ 23401 - 11905: 0xBAA2,
+ 23402 - 11905: 0xC2CF,
+ 23403 - 11905: 0x8C4F,
+ 23404 - 11905: 0xD8AB,
+ 23405 - 11905: 0x8C50,
+ 23406 - 11905: 0x8C51,
+ 23407 - 11905: 0x8C52,
+ 23408 - 11905: 0xCAEB,
+ 23409 - 11905: 0xE5EE,
+ 23410 - 11905: 0x8C53,
+ 23411 - 11905: 0xE6DC,
+ 23412 - 11905: 0x8C54,
+ 23413 - 11905: 0xB7F5,
+ 23414 - 11905: 0x8C55,
+ 23415 - 11905: 0x8C56,
+ 23416 - 11905: 0x8C57,
+ 23417 - 11905: 0x8C58,
+ 23418 - 11905: 0xC8E6,
+ 23419 - 11905: 0x8C59,
+ 23420 - 11905: 0x8C5A,
+ 23421 - 11905: 0xC4F5,
+ 23422 - 11905: 0x8C5B,
+ 23423 - 11905: 0x8C5C,
+ 23424 - 11905: 0xE5B2,
+ 23425 - 11905: 0xC4FE,
+ 23426 - 11905: 0x8C5D,
+ 23427 - 11905: 0xCBFC,
+ 23428 - 11905: 0xE5B3,
+ 23429 - 11905: 0xD5AC,
+ 23430 - 11905: 0x8C5E,
+ 23431 - 11905: 0xD3EE,
+ 23432 - 11905: 0xCAD8,
+ 23433 - 11905: 0xB0B2,
+ 23434 - 11905: 0x8C5F,
+ 23435 - 11905: 0xCBCE,
+ 23436 - 11905: 0xCDEA,
+ 23437 - 11905: 0x8C60,
+ 23438 - 11905: 0x8C61,
+ 23439 - 11905: 0xBAEA,
+ 23440 - 11905: 0x8C62,
+ 23441 - 11905: 0x8C63,
+ 23442 - 11905: 0x8C64,
+ 23443 - 11905: 0xE5B5,
+ 23444 - 11905: 0x8C65,
+ 23445 - 11905: 0xE5B4,
+ 23446 - 11905: 0x8C66,
+ 23447 - 11905: 0xD7DA,
+ 23448 - 11905: 0xB9D9,
+ 23449 - 11905: 0xD6E6,
+ 23450 - 11905: 0xB6A8,
+ 23451 - 11905: 0xCDF0,
+ 23452 - 11905: 0xD2CB,
+ 23453 - 11905: 0xB1A6,
+ 23454 - 11905: 0xCAB5,
+ 23455 - 11905: 0x8C67,
+ 23456 - 11905: 0xB3E8,
+ 23457 - 11905: 0xC9F3,
+ 23458 - 11905: 0xBFCD,
+ 23459 - 11905: 0xD0FB,
+ 23460 - 11905: 0xCAD2,
+ 23461 - 11905: 0xE5B6,
+ 23462 - 11905: 0xBBC2,
+ 23463 - 11905: 0x8C68,
+ 23464 - 11905: 0x8C69,
+ 23465 - 11905: 0x8C6A,
+ 23466 - 11905: 0xCFDC,
+ 23467 - 11905: 0xB9AC,
+ 23468 - 11905: 0x8C6B,
+ 23469 - 11905: 0x8C6C,
+ 23470 - 11905: 0x8C6D,
+ 23471 - 11905: 0x8C6E,
+ 23472 - 11905: 0xD4D7,
+ 23473 - 11905: 0x8C6F,
+ 23474 - 11905: 0x8C70,
+ 23475 - 11905: 0xBAA6,
+ 23476 - 11905: 0xD1E7,
+ 23477 - 11905: 0xCFFC,
+ 23478 - 11905: 0xBCD2,
+ 23479 - 11905: 0x8C71,
+ 23480 - 11905: 0xE5B7,
+ 23481 - 11905: 0xC8DD,
+ 23482 - 11905: 0x8C72,
+ 23483 - 11905: 0x8C73,
+ 23484 - 11905: 0x8C74,
+ 23485 - 11905: 0xBFED,
+ 23486 - 11905: 0xB1F6,
+ 23487 - 11905: 0xCBDE,
+ 23488 - 11905: 0x8C75,
+ 23489 - 11905: 0x8C76,
+ 23490 - 11905: 0xBCC5,
+ 23491 - 11905: 0x8C77,
+ 23492 - 11905: 0xBCC4,
+ 23493 - 11905: 0xD2FA,
+ 23494 - 11905: 0xC3DC,
+ 23495 - 11905: 0xBFDC,
+ 23496 - 11905: 0x8C78,
+ 23497 - 11905: 0x8C79,
+ 23498 - 11905: 0x8C7A,
+ 23499 - 11905: 0x8C7B,
+ 23500 - 11905: 0xB8BB,
+ 23501 - 11905: 0x8C7C,
+ 23502 - 11905: 0x8C7D,
+ 23503 - 11905: 0x8C7E,
+ 23504 - 11905: 0xC3C2,
+ 23505 - 11905: 0x8C80,
+ 23506 - 11905: 0xBAAE,
+ 23507 - 11905: 0xD4A2,
+ 23508 - 11905: 0x8C81,
+ 23509 - 11905: 0x8C82,
+ 23510 - 11905: 0x8C83,
+ 23511 - 11905: 0x8C84,
+ 23512 - 11905: 0x8C85,
+ 23513 - 11905: 0x8C86,
+ 23514 - 11905: 0x8C87,
+ 23515 - 11905: 0x8C88,
+ 23516 - 11905: 0x8C89,
+ 23517 - 11905: 0xC7DE,
+ 23518 - 11905: 0xC4AF,
+ 23519 - 11905: 0xB2EC,
+ 23520 - 11905: 0x8C8A,
+ 23521 - 11905: 0xB9D1,
+ 23522 - 11905: 0x8C8B,
+ 23523 - 11905: 0x8C8C,
+ 23524 - 11905: 0xE5BB,
+ 23525 - 11905: 0xC1C8,
+ 23526 - 11905: 0x8C8D,
+ 23527 - 11905: 0x8C8E,
+ 23528 - 11905: 0xD5AF,
+ 23529 - 11905: 0x8C8F,
+ 23530 - 11905: 0x8C90,
+ 23531 - 11905: 0x8C91,
+ 23532 - 11905: 0x8C92,
+ 23533 - 11905: 0x8C93,
+ 23534 - 11905: 0xE5BC,
+ 23535 - 11905: 0x8C94,
+ 23536 - 11905: 0xE5BE,
+ 23537 - 11905: 0x8C95,
+ 23538 - 11905: 0x8C96,
+ 23539 - 11905: 0x8C97,
+ 23540 - 11905: 0x8C98,
+ 23541 - 11905: 0x8C99,
+ 23542 - 11905: 0x8C9A,
+ 23543 - 11905: 0x8C9B,
+ 23544 - 11905: 0xB4E7,
+ 23545 - 11905: 0xB6D4,
+ 23546 - 11905: 0xCBC2,
+ 23547 - 11905: 0xD1B0,
+ 23548 - 11905: 0xB5BC,
+ 23549 - 11905: 0x8C9C,
+ 23550 - 11905: 0x8C9D,
+ 23551 - 11905: 0xCAD9,
+ 23552 - 11905: 0x8C9E,
+ 23553 - 11905: 0xB7E2,
+ 23554 - 11905: 0x8C9F,
+ 23555 - 11905: 0x8CA0,
+ 23556 - 11905: 0xC9E4,
+ 23557 - 11905: 0x8CA1,
+ 23558 - 11905: 0xBDAB,
+ 23559 - 11905: 0x8CA2,
+ 23560 - 11905: 0x8CA3,
+ 23561 - 11905: 0xCEBE,
+ 23562 - 11905: 0xD7F0,
+ 23563 - 11905: 0x8CA4,
+ 23564 - 11905: 0x8CA5,
+ 23565 - 11905: 0x8CA6,
+ 23566 - 11905: 0x8CA7,
+ 23567 - 11905: 0xD0A1,
+ 23568 - 11905: 0x8CA8,
+ 23569 - 11905: 0xC9D9,
+ 23570 - 11905: 0x8CA9,
+ 23571 - 11905: 0x8CAA,
+ 23572 - 11905: 0xB6FB,
+ 23573 - 11905: 0xE6D8,
+ 23574 - 11905: 0xBCE2,
+ 23575 - 11905: 0x8CAB,
+ 23576 - 11905: 0xB3BE,
+ 23577 - 11905: 0x8CAC,
+ 23578 - 11905: 0xC9D0,
+ 23579 - 11905: 0x8CAD,
+ 23580 - 11905: 0xE6D9,
+ 23581 - 11905: 0xB3A2,
+ 23582 - 11905: 0x8CAE,
+ 23583 - 11905: 0x8CAF,
+ 23584 - 11905: 0x8CB0,
+ 23585 - 11905: 0x8CB1,
+ 23586 - 11905: 0xDECC,
+ 23587 - 11905: 0x8CB2,
+ 23588 - 11905: 0xD3C8,
+ 23589 - 11905: 0xDECD,
+ 23590 - 11905: 0x8CB3,
+ 23591 - 11905: 0xD2A2,
+ 23592 - 11905: 0x8CB4,
+ 23593 - 11905: 0x8CB5,
+ 23594 - 11905: 0x8CB6,
+ 23595 - 11905: 0x8CB7,
+ 23596 - 11905: 0xDECE,
+ 23597 - 11905: 0x8CB8,
+ 23598 - 11905: 0x8CB9,
+ 23599 - 11905: 0x8CBA,
+ 23600 - 11905: 0x8CBB,
+ 23601 - 11905: 0xBECD,
+ 23602 - 11905: 0x8CBC,
+ 23603 - 11905: 0x8CBD,
+ 23604 - 11905: 0xDECF,
+ 23605 - 11905: 0x8CBE,
+ 23606 - 11905: 0x8CBF,
+ 23607 - 11905: 0x8CC0,
+ 23608 - 11905: 0xCAAC,
+ 23609 - 11905: 0xD2FC,
+ 23610 - 11905: 0xB3DF,
+ 23611 - 11905: 0xE5EA,
+ 23612 - 11905: 0xC4E1,
+ 23613 - 11905: 0xBEA1,
+ 23614 - 11905: 0xCEB2,
+ 23615 - 11905: 0xC4F2,
+ 23616 - 11905: 0xBED6,
+ 23617 - 11905: 0xC6A8,
+ 23618 - 11905: 0xB2E3,
+ 23619 - 11905: 0x8CC1,
+ 23620 - 11905: 0x8CC2,
+ 23621 - 11905: 0xBED3,
+ 23622 - 11905: 0x8CC3,
+ 23623 - 11905: 0x8CC4,
+ 23624 - 11905: 0xC7FC,
+ 23625 - 11905: 0xCCEB,
+ 23626 - 11905: 0xBDEC,
+ 23627 - 11905: 0xCEDD,
+ 23628 - 11905: 0x8CC5,
+ 23629 - 11905: 0x8CC6,
+ 23630 - 11905: 0xCABA,
+ 23631 - 11905: 0xC6C1,
+ 23632 - 11905: 0xE5EC,
+ 23633 - 11905: 0xD0BC,
+ 23634 - 11905: 0x8CC7,
+ 23635 - 11905: 0x8CC8,
+ 23636 - 11905: 0x8CC9,
+ 23637 - 11905: 0xD5B9,
+ 23638 - 11905: 0x8CCA,
+ 23639 - 11905: 0x8CCB,
+ 23640 - 11905: 0x8CCC,
+ 23641 - 11905: 0xE5ED,
+ 23642 - 11905: 0x8CCD,
+ 23643 - 11905: 0x8CCE,
+ 23644 - 11905: 0x8CCF,
+ 23645 - 11905: 0x8CD0,
+ 23646 - 11905: 0xCAF4,
+ 23647 - 11905: 0x8CD1,
+ 23648 - 11905: 0xCDC0,
+ 23649 - 11905: 0xC2C5,
+ 23650 - 11905: 0x8CD2,
+ 23651 - 11905: 0xE5EF,
+ 23652 - 11905: 0x8CD3,
+ 23653 - 11905: 0xC2C4,
+ 23654 - 11905: 0xE5F0,
+ 23655 - 11905: 0x8CD4,
+ 23656 - 11905: 0x8CD5,
+ 23657 - 11905: 0x8CD6,
+ 23658 - 11905: 0x8CD7,
+ 23659 - 11905: 0x8CD8,
+ 23660 - 11905: 0x8CD9,
+ 23661 - 11905: 0x8CDA,
+ 23662 - 11905: 0xE5F8,
+ 23663 - 11905: 0xCDCD,
+ 23664 - 11905: 0x8CDB,
+ 23665 - 11905: 0xC9BD,
+ 23666 - 11905: 0x8CDC,
+ 23667 - 11905: 0x8CDD,
+ 23668 - 11905: 0x8CDE,
+ 23669 - 11905: 0x8CDF,
+ 23670 - 11905: 0x8CE0,
+ 23671 - 11905: 0x8CE1,
+ 23672 - 11905: 0x8CE2,
+ 23673 - 11905: 0xD2D9,
+ 23674 - 11905: 0xE1A8,
+ 23675 - 11905: 0x8CE3,
+ 23676 - 11905: 0x8CE4,
+ 23677 - 11905: 0x8CE5,
+ 23678 - 11905: 0x8CE6,
+ 23679 - 11905: 0xD3EC,
+ 23680 - 11905: 0x8CE7,
+ 23681 - 11905: 0xCBEA,
+ 23682 - 11905: 0xC6F1,
+ 23683 - 11905: 0x8CE8,
+ 23684 - 11905: 0x8CE9,
+ 23685 - 11905: 0x8CEA,
+ 23686 - 11905: 0x8CEB,
+ 23687 - 11905: 0x8CEC,
+ 23688 - 11905: 0xE1AC,
+ 23689 - 11905: 0x8CED,
+ 23690 - 11905: 0x8CEE,
+ 23691 - 11905: 0x8CEF,
+ 23692 - 11905: 0xE1A7,
+ 23693 - 11905: 0xE1A9,
+ 23694 - 11905: 0x8CF0,
+ 23695 - 11905: 0x8CF1,
+ 23696 - 11905: 0xE1AA,
+ 23697 - 11905: 0xE1AF,
+ 23698 - 11905: 0x8CF2,
+ 23699 - 11905: 0x8CF3,
+ 23700 - 11905: 0xB2ED,
+ 23701 - 11905: 0x8CF4,
+ 23702 - 11905: 0xE1AB,
+ 23703 - 11905: 0xB8DA,
+ 23704 - 11905: 0xE1AD,
+ 23705 - 11905: 0xE1AE,
+ 23706 - 11905: 0xE1B0,
+ 23707 - 11905: 0xB5BA,
+ 23708 - 11905: 0xE1B1,
+ 23709 - 11905: 0x8CF5,
+ 23710 - 11905: 0x8CF6,
+ 23711 - 11905: 0x8CF7,
+ 23712 - 11905: 0x8CF8,
+ 23713 - 11905: 0x8CF9,
+ 23714 - 11905: 0xE1B3,
+ 23715 - 11905: 0xE1B8,
+ 23716 - 11905: 0x8CFA,
+ 23717 - 11905: 0x8CFB,
+ 23718 - 11905: 0x8CFC,
+ 23719 - 11905: 0x8CFD,
+ 23720 - 11905: 0x8CFE,
+ 23721 - 11905: 0xD1D2,
+ 23722 - 11905: 0x8D40,
+ 23723 - 11905: 0xE1B6,
+ 23724 - 11905: 0xE1B5,
+ 23725 - 11905: 0xC1EB,
+ 23726 - 11905: 0x8D41,
+ 23727 - 11905: 0x8D42,
+ 23728 - 11905: 0x8D43,
+ 23729 - 11905: 0xE1B7,
+ 23730 - 11905: 0x8D44,
+ 23731 - 11905: 0xD4C0,
+ 23732 - 11905: 0x8D45,
+ 23733 - 11905: 0xE1B2,
+ 23734 - 11905: 0x8D46,
+ 23735 - 11905: 0xE1BA,
+ 23736 - 11905: 0xB0B6,
+ 23737 - 11905: 0x8D47,
+ 23738 - 11905: 0x8D48,
+ 23739 - 11905: 0x8D49,
+ 23740 - 11905: 0x8D4A,
+ 23741 - 11905: 0xE1B4,
+ 23742 - 11905: 0x8D4B,
+ 23743 - 11905: 0xBFF9,
+ 23744 - 11905: 0x8D4C,
+ 23745 - 11905: 0xE1B9,
+ 23746 - 11905: 0x8D4D,
+ 23747 - 11905: 0x8D4E,
+ 23748 - 11905: 0xE1BB,
+ 23749 - 11905: 0x8D4F,
+ 23750 - 11905: 0x8D50,
+ 23751 - 11905: 0x8D51,
+ 23752 - 11905: 0x8D52,
+ 23753 - 11905: 0x8D53,
+ 23754 - 11905: 0x8D54,
+ 23755 - 11905: 0xE1BE,
+ 23756 - 11905: 0x8D55,
+ 23757 - 11905: 0x8D56,
+ 23758 - 11905: 0x8D57,
+ 23759 - 11905: 0x8D58,
+ 23760 - 11905: 0x8D59,
+ 23761 - 11905: 0x8D5A,
+ 23762 - 11905: 0xE1BC,
+ 23763 - 11905: 0x8D5B,
+ 23764 - 11905: 0x8D5C,
+ 23765 - 11905: 0x8D5D,
+ 23766 - 11905: 0x8D5E,
+ 23767 - 11905: 0x8D5F,
+ 23768 - 11905: 0x8D60,
+ 23769 - 11905: 0xD6C5,
+ 23770 - 11905: 0x8D61,
+ 23771 - 11905: 0x8D62,
+ 23772 - 11905: 0x8D63,
+ 23773 - 11905: 0x8D64,
+ 23774 - 11905: 0x8D65,
+ 23775 - 11905: 0x8D66,
+ 23776 - 11905: 0x8D67,
+ 23777 - 11905: 0xCFBF,
+ 23778 - 11905: 0x8D68,
+ 23779 - 11905: 0x8D69,
+ 23780 - 11905: 0xE1BD,
+ 23781 - 11905: 0xE1BF,
+ 23782 - 11905: 0xC2CD,
+ 23783 - 11905: 0x8D6A,
+ 23784 - 11905: 0xB6EB,
+ 23785 - 11905: 0x8D6B,
+ 23786 - 11905: 0xD3F8,
+ 23787 - 11905: 0x8D6C,
+ 23788 - 11905: 0x8D6D,
+ 23789 - 11905: 0xC7CD,
+ 23790 - 11905: 0x8D6E,
+ 23791 - 11905: 0x8D6F,
+ 23792 - 11905: 0xB7E5,
+ 23793 - 11905: 0x8D70,
+ 23794 - 11905: 0x8D71,
+ 23795 - 11905: 0x8D72,
+ 23796 - 11905: 0x8D73,
+ 23797 - 11905: 0x8D74,
+ 23798 - 11905: 0x8D75,
+ 23799 - 11905: 0x8D76,
+ 23800 - 11905: 0x8D77,
+ 23801 - 11905: 0x8D78,
+ 23802 - 11905: 0x8D79,
+ 23803 - 11905: 0xBEFE,
+ 23804 - 11905: 0x8D7A,
+ 23805 - 11905: 0x8D7B,
+ 23806 - 11905: 0x8D7C,
+ 23807 - 11905: 0x8D7D,
+ 23808 - 11905: 0x8D7E,
+ 23809 - 11905: 0x8D80,
+ 23810 - 11905: 0xE1C0,
+ 23811 - 11905: 0xE1C1,
+ 23812 - 11905: 0x8D81,
+ 23813 - 11905: 0x8D82,
+ 23814 - 11905: 0xE1C7,
+ 23815 - 11905: 0xB3E7,
+ 23816 - 11905: 0x8D83,
+ 23817 - 11905: 0x8D84,
+ 23818 - 11905: 0x8D85,
+ 23819 - 11905: 0x8D86,
+ 23820 - 11905: 0x8D87,
+ 23821 - 11905: 0x8D88,
+ 23822 - 11905: 0xC6E9,
+ 23823 - 11905: 0x8D89,
+ 23824 - 11905: 0x8D8A,
+ 23825 - 11905: 0x8D8B,
+ 23826 - 11905: 0x8D8C,
+ 23827 - 11905: 0x8D8D,
+ 23828 - 11905: 0xB4DE,
+ 23829 - 11905: 0x8D8E,
+ 23830 - 11905: 0xD1C2,
+ 23831 - 11905: 0x8D8F,
+ 23832 - 11905: 0x8D90,
+ 23833 - 11905: 0x8D91,
+ 23834 - 11905: 0x8D92,
+ 23835 - 11905: 0xE1C8,
+ 23836 - 11905: 0x8D93,
+ 23837 - 11905: 0x8D94,
+ 23838 - 11905: 0xE1C6,
+ 23839 - 11905: 0x8D95,
+ 23840 - 11905: 0x8D96,
+ 23841 - 11905: 0x8D97,
+ 23842 - 11905: 0x8D98,
+ 23843 - 11905: 0x8D99,
+ 23844 - 11905: 0xE1C5,
+ 23845 - 11905: 0x8D9A,
+ 23846 - 11905: 0xE1C3,
+ 23847 - 11905: 0xE1C2,
+ 23848 - 11905: 0x8D9B,
+ 23849 - 11905: 0xB1C0,
+ 23850 - 11905: 0x8D9C,
+ 23851 - 11905: 0x8D9D,
+ 23852 - 11905: 0x8D9E,
+ 23853 - 11905: 0xD5B8,
+ 23854 - 11905: 0xE1C4,
+ 23855 - 11905: 0x8D9F,
+ 23856 - 11905: 0x8DA0,
+ 23857 - 11905: 0x8DA1,
+ 23858 - 11905: 0x8DA2,
+ 23859 - 11905: 0x8DA3,
+ 23860 - 11905: 0xE1CB,
+ 23861 - 11905: 0x8DA4,
+ 23862 - 11905: 0x8DA5,
+ 23863 - 11905: 0x8DA6,
+ 23864 - 11905: 0x8DA7,
+ 23865 - 11905: 0x8DA8,
+ 23866 - 11905: 0x8DA9,
+ 23867 - 11905: 0x8DAA,
+ 23868 - 11905: 0x8DAB,
+ 23869 - 11905: 0xE1CC,
+ 23870 - 11905: 0xE1CA,
+ 23871 - 11905: 0x8DAC,
+ 23872 - 11905: 0x8DAD,
+ 23873 - 11905: 0x8DAE,
+ 23874 - 11905: 0x8DAF,
+ 23875 - 11905: 0x8DB0,
+ 23876 - 11905: 0x8DB1,
+ 23877 - 11905: 0x8DB2,
+ 23878 - 11905: 0x8DB3,
+ 23879 - 11905: 0xEFFA,
+ 23880 - 11905: 0x8DB4,
+ 23881 - 11905: 0x8DB5,
+ 23882 - 11905: 0xE1D3,
+ 23883 - 11905: 0xE1D2,
+ 23884 - 11905: 0xC7B6,
+ 23885 - 11905: 0x8DB6,
+ 23886 - 11905: 0x8DB7,
+ 23887 - 11905: 0x8DB8,
+ 23888 - 11905: 0x8DB9,
+ 23889 - 11905: 0x8DBA,
+ 23890 - 11905: 0x8DBB,
+ 23891 - 11905: 0x8DBC,
+ 23892 - 11905: 0x8DBD,
+ 23893 - 11905: 0x8DBE,
+ 23894 - 11905: 0x8DBF,
+ 23895 - 11905: 0x8DC0,
+ 23896 - 11905: 0xE1C9,
+ 23897 - 11905: 0x8DC1,
+ 23898 - 11905: 0x8DC2,
+ 23899 - 11905: 0xE1CE,
+ 23900 - 11905: 0x8DC3,
+ 23901 - 11905: 0xE1D0,
+ 23902 - 11905: 0x8DC4,
+ 23903 - 11905: 0x8DC5,
+ 23904 - 11905: 0x8DC6,
+ 23905 - 11905: 0x8DC7,
+ 23906 - 11905: 0x8DC8,
+ 23907 - 11905: 0x8DC9,
+ 23908 - 11905: 0x8DCA,
+ 23909 - 11905: 0x8DCB,
+ 23910 - 11905: 0x8DCC,
+ 23911 - 11905: 0x8DCD,
+ 23912 - 11905: 0x8DCE,
+ 23913 - 11905: 0xE1D4,
+ 23914 - 11905: 0x8DCF,
+ 23915 - 11905: 0xE1D1,
+ 23916 - 11905: 0xE1CD,
+ 23917 - 11905: 0x8DD0,
+ 23918 - 11905: 0x8DD1,
+ 23919 - 11905: 0xE1CF,
+ 23920 - 11905: 0x8DD2,
+ 23921 - 11905: 0x8DD3,
+ 23922 - 11905: 0x8DD4,
+ 23923 - 11905: 0x8DD5,
+ 23924 - 11905: 0xE1D5,
+ 23925 - 11905: 0x8DD6,
+ 23926 - 11905: 0x8DD7,
+ 23927 - 11905: 0x8DD8,
+ 23928 - 11905: 0x8DD9,
+ 23929 - 11905: 0x8DDA,
+ 23930 - 11905: 0x8DDB,
+ 23931 - 11905: 0x8DDC,
+ 23932 - 11905: 0x8DDD,
+ 23933 - 11905: 0x8DDE,
+ 23934 - 11905: 0x8DDF,
+ 23935 - 11905: 0x8DE0,
+ 23936 - 11905: 0x8DE1,
+ 23937 - 11905: 0x8DE2,
+ 23938 - 11905: 0xE1D6,
+ 23939 - 11905: 0x8DE3,
+ 23940 - 11905: 0x8DE4,
+ 23941 - 11905: 0x8DE5,
+ 23942 - 11905: 0x8DE6,
+ 23943 - 11905: 0x8DE7,
+ 23944 - 11905: 0x8DE8,
+ 23945 - 11905: 0x8DE9,
+ 23946 - 11905: 0x8DEA,
+ 23947 - 11905: 0x8DEB,
+ 23948 - 11905: 0x8DEC,
+ 23949 - 11905: 0x8DED,
+ 23950 - 11905: 0x8DEE,
+ 23951 - 11905: 0x8DEF,
+ 23952 - 11905: 0x8DF0,
+ 23953 - 11905: 0x8DF1,
+ 23954 - 11905: 0x8DF2,
+ 23955 - 11905: 0x8DF3,
+ 23956 - 11905: 0x8DF4,
+ 23957 - 11905: 0x8DF5,
+ 23958 - 11905: 0x8DF6,
+ 23959 - 11905: 0x8DF7,
+ 23960 - 11905: 0x8DF8,
+ 23961 - 11905: 0xE1D7,
+ 23962 - 11905: 0x8DF9,
+ 23963 - 11905: 0x8DFA,
+ 23964 - 11905: 0x8DFB,
+ 23965 - 11905: 0xE1D8,
+ 23966 - 11905: 0x8DFC,
+ 23967 - 11905: 0x8DFD,
+ 23968 - 11905: 0x8DFE,
+ 23969 - 11905: 0x8E40,
+ 23970 - 11905: 0x8E41,
+ 23971 - 11905: 0x8E42,
+ 23972 - 11905: 0x8E43,
+ 23973 - 11905: 0x8E44,
+ 23974 - 11905: 0x8E45,
+ 23975 - 11905: 0x8E46,
+ 23976 - 11905: 0x8E47,
+ 23977 - 11905: 0x8E48,
+ 23978 - 11905: 0x8E49,
+ 23979 - 11905: 0x8E4A,
+ 23980 - 11905: 0x8E4B,
+ 23981 - 11905: 0x8E4C,
+ 23982 - 11905: 0x8E4D,
+ 23983 - 11905: 0x8E4E,
+ 23984 - 11905: 0x8E4F,
+ 23985 - 11905: 0x8E50,
+ 23986 - 11905: 0x8E51,
+ 23987 - 11905: 0x8E52,
+ 23988 - 11905: 0x8E53,
+ 23989 - 11905: 0x8E54,
+ 23990 - 11905: 0x8E55,
+ 23991 - 11905: 0xE1DA,
+ 23992 - 11905: 0x8E56,
+ 23993 - 11905: 0x8E57,
+ 23994 - 11905: 0x8E58,
+ 23995 - 11905: 0x8E59,
+ 23996 - 11905: 0x8E5A,
+ 23997 - 11905: 0x8E5B,
+ 23998 - 11905: 0x8E5C,
+ 23999 - 11905: 0x8E5D,
+ 24000 - 11905: 0x8E5E,
+ 24001 - 11905: 0x8E5F,
+ 24002 - 11905: 0x8E60,
+ 24003 - 11905: 0x8E61,
+ 24004 - 11905: 0x8E62,
+ 24005 - 11905: 0xE1DB,
+ 24006 - 11905: 0x8E63,
+ 24007 - 11905: 0x8E64,
+ 24008 - 11905: 0x8E65,
+ 24009 - 11905: 0x8E66,
+ 24010 - 11905: 0x8E67,
+ 24011 - 11905: 0x8E68,
+ 24012 - 11905: 0x8E69,
+ 24013 - 11905: 0xCEA1,
+ 24014 - 11905: 0x8E6A,
+ 24015 - 11905: 0x8E6B,
+ 24016 - 11905: 0x8E6C,
+ 24017 - 11905: 0x8E6D,
+ 24018 - 11905: 0x8E6E,
+ 24019 - 11905: 0x8E6F,
+ 24020 - 11905: 0x8E70,
+ 24021 - 11905: 0x8E71,
+ 24022 - 11905: 0x8E72,
+ 24023 - 11905: 0x8E73,
+ 24024 - 11905: 0x8E74,
+ 24025 - 11905: 0x8E75,
+ 24026 - 11905: 0x8E76,
+ 24027 - 11905: 0xE7DD,
+ 24028 - 11905: 0x8E77,
+ 24029 - 11905: 0xB4A8,
+ 24030 - 11905: 0xD6DD,
+ 24031 - 11905: 0x8E78,
+ 24032 - 11905: 0x8E79,
+ 24033 - 11905: 0xD1B2,
+ 24034 - 11905: 0xB3B2,
+ 24035 - 11905: 0x8E7A,
+ 24036 - 11905: 0x8E7B,
+ 24037 - 11905: 0xB9A4,
+ 24038 - 11905: 0xD7F3,
+ 24039 - 11905: 0xC7C9,
+ 24040 - 11905: 0xBEDE,
+ 24041 - 11905: 0xB9AE,
+ 24042 - 11905: 0x8E7C,
+ 24043 - 11905: 0xCED7,
+ 24044 - 11905: 0x8E7D,
+ 24045 - 11905: 0x8E7E,
+ 24046 - 11905: 0xB2EE,
+ 24047 - 11905: 0xDBCF,
+ 24048 - 11905: 0x8E80,
+ 24049 - 11905: 0xBCBA,
+ 24050 - 11905: 0xD2D1,
+ 24051 - 11905: 0xCBC8,
+ 24052 - 11905: 0xB0CD,
+ 24053 - 11905: 0x8E81,
+ 24054 - 11905: 0x8E82,
+ 24055 - 11905: 0xCFEF,
+ 24056 - 11905: 0x8E83,
+ 24057 - 11905: 0x8E84,
+ 24058 - 11905: 0x8E85,
+ 24059 - 11905: 0x8E86,
+ 24060 - 11905: 0x8E87,
+ 24061 - 11905: 0xD9E3,
+ 24062 - 11905: 0xBDED,
+ 24063 - 11905: 0x8E88,
+ 24064 - 11905: 0x8E89,
+ 24065 - 11905: 0xB1D2,
+ 24066 - 11905: 0xCAD0,
+ 24067 - 11905: 0xB2BC,
+ 24068 - 11905: 0x8E8A,
+ 24069 - 11905: 0xCBA7,
+ 24070 - 11905: 0xB7AB,
+ 24071 - 11905: 0x8E8B,
+ 24072 - 11905: 0xCAA6,
+ 24073 - 11905: 0x8E8C,
+ 24074 - 11905: 0x8E8D,
+ 24075 - 11905: 0x8E8E,
+ 24076 - 11905: 0xCFA3,
+ 24077 - 11905: 0x8E8F,
+ 24078 - 11905: 0x8E90,
+ 24079 - 11905: 0xE0F8,
+ 24080 - 11905: 0xD5CA,
+ 24081 - 11905: 0xE0FB,
+ 24082 - 11905: 0x8E91,
+ 24083 - 11905: 0x8E92,
+ 24084 - 11905: 0xE0FA,
+ 24085 - 11905: 0xC5C1,
+ 24086 - 11905: 0xCCFB,
+ 24087 - 11905: 0x8E93,
+ 24088 - 11905: 0xC1B1,
+ 24089 - 11905: 0xE0F9,
+ 24090 - 11905: 0xD6E3,
+ 24091 - 11905: 0xB2AF,
+ 24092 - 11905: 0xD6C4,
+ 24093 - 11905: 0xB5DB,
+ 24094 - 11905: 0x8E94,
+ 24095 - 11905: 0x8E95,
+ 24096 - 11905: 0x8E96,
+ 24097 - 11905: 0x8E97,
+ 24098 - 11905: 0x8E98,
+ 24099 - 11905: 0x8E99,
+ 24100 - 11905: 0x8E9A,
+ 24101 - 11905: 0x8E9B,
+ 24102 - 11905: 0xB4F8,
+ 24103 - 11905: 0xD6A1,
+ 24104 - 11905: 0x8E9C,
+ 24105 - 11905: 0x8E9D,
+ 24106 - 11905: 0x8E9E,
+ 24107 - 11905: 0x8E9F,
+ 24108 - 11905: 0x8EA0,
+ 24109 - 11905: 0xCFAF,
+ 24110 - 11905: 0xB0EF,
+ 24111 - 11905: 0x8EA1,
+ 24112 - 11905: 0x8EA2,
+ 24113 - 11905: 0xE0FC,
+ 24114 - 11905: 0x8EA3,
+ 24115 - 11905: 0x8EA4,
+ 24116 - 11905: 0x8EA5,
+ 24117 - 11905: 0x8EA6,
+ 24118 - 11905: 0x8EA7,
+ 24119 - 11905: 0xE1A1,
+ 24120 - 11905: 0xB3A3,
+ 24121 - 11905: 0x8EA8,
+ 24122 - 11905: 0x8EA9,
+ 24123 - 11905: 0xE0FD,
+ 24124 - 11905: 0xE0FE,
+ 24125 - 11905: 0xC3B1,
+ 24126 - 11905: 0x8EAA,
+ 24127 - 11905: 0x8EAB,
+ 24128 - 11905: 0x8EAC,
+ 24129 - 11905: 0x8EAD,
+ 24130 - 11905: 0xC3DD,
+ 24131 - 11905: 0x8EAE,
+ 24132 - 11905: 0xE1A2,
+ 24133 - 11905: 0xB7F9,
+ 24134 - 11905: 0x8EAF,
+ 24135 - 11905: 0x8EB0,
+ 24136 - 11905: 0x8EB1,
+ 24137 - 11905: 0x8EB2,
+ 24138 - 11905: 0x8EB3,
+ 24139 - 11905: 0x8EB4,
+ 24140 - 11905: 0xBBCF,
+ 24141 - 11905: 0x8EB5,
+ 24142 - 11905: 0x8EB6,
+ 24143 - 11905: 0x8EB7,
+ 24144 - 11905: 0x8EB8,
+ 24145 - 11905: 0x8EB9,
+ 24146 - 11905: 0x8EBA,
+ 24147 - 11905: 0x8EBB,
+ 24148 - 11905: 0xE1A3,
+ 24149 - 11905: 0xC4BB,
+ 24150 - 11905: 0x8EBC,
+ 24151 - 11905: 0x8EBD,
+ 24152 - 11905: 0x8EBE,
+ 24153 - 11905: 0x8EBF,
+ 24154 - 11905: 0x8EC0,
+ 24155 - 11905: 0xE1A4,
+ 24156 - 11905: 0x8EC1,
+ 24157 - 11905: 0x8EC2,
+ 24158 - 11905: 0xE1A5,
+ 24159 - 11905: 0x8EC3,
+ 24160 - 11905: 0x8EC4,
+ 24161 - 11905: 0xE1A6,
+ 24162 - 11905: 0xB4B1,
+ 24163 - 11905: 0x8EC5,
+ 24164 - 11905: 0x8EC6,
+ 24165 - 11905: 0x8EC7,
+ 24166 - 11905: 0x8EC8,
+ 24167 - 11905: 0x8EC9,
+ 24168 - 11905: 0x8ECA,
+ 24169 - 11905: 0x8ECB,
+ 24170 - 11905: 0x8ECC,
+ 24171 - 11905: 0x8ECD,
+ 24172 - 11905: 0x8ECE,
+ 24173 - 11905: 0x8ECF,
+ 24174 - 11905: 0x8ED0,
+ 24175 - 11905: 0x8ED1,
+ 24176 - 11905: 0x8ED2,
+ 24177 - 11905: 0x8ED3,
+ 24178 - 11905: 0xB8C9,
+ 24179 - 11905: 0xC6BD,
+ 24180 - 11905: 0xC4EA,
+ 24181 - 11905: 0x8ED4,
+ 24182 - 11905: 0xB2A2,
+ 24183 - 11905: 0x8ED5,
+ 24184 - 11905: 0xD0D2,
+ 24185 - 11905: 0x8ED6,
+ 24186 - 11905: 0xE7DB,
+ 24187 - 11905: 0xBBC3,
+ 24188 - 11905: 0xD3D7,
+ 24189 - 11905: 0xD3C4,
+ 24190 - 11905: 0x8ED7,
+ 24191 - 11905: 0xB9E3,
+ 24192 - 11905: 0xE2CF,
+ 24193 - 11905: 0x8ED8,
+ 24194 - 11905: 0x8ED9,
+ 24195 - 11905: 0x8EDA,
+ 24196 - 11905: 0xD7AF,
+ 24197 - 11905: 0x8EDB,
+ 24198 - 11905: 0xC7EC,
+ 24199 - 11905: 0xB1D3,
+ 24200 - 11905: 0x8EDC,
+ 24201 - 11905: 0x8EDD,
+ 24202 - 11905: 0xB4B2,
+ 24203 - 11905: 0xE2D1,
+ 24204 - 11905: 0x8EDE,
+ 24205 - 11905: 0x8EDF,
+ 24206 - 11905: 0x8EE0,
+ 24207 - 11905: 0xD0F2,
+ 24208 - 11905: 0xC2AE,
+ 24209 - 11905: 0xE2D0,
+ 24210 - 11905: 0x8EE1,
+ 24211 - 11905: 0xBFE2,
+ 24212 - 11905: 0xD3A6,
+ 24213 - 11905: 0xB5D7,
+ 24214 - 11905: 0xE2D2,
+ 24215 - 11905: 0xB5EA,
+ 24216 - 11905: 0x8EE2,
+ 24217 - 11905: 0xC3ED,
+ 24218 - 11905: 0xB8FD,
+ 24219 - 11905: 0x8EE3,
+ 24220 - 11905: 0xB8AE,
+ 24221 - 11905: 0x8EE4,
+ 24222 - 11905: 0xC5D3,
+ 24223 - 11905: 0xB7CF,
+ 24224 - 11905: 0xE2D4,
+ 24225 - 11905: 0x8EE5,
+ 24226 - 11905: 0x8EE6,
+ 24227 - 11905: 0x8EE7,
+ 24228 - 11905: 0x8EE8,
+ 24229 - 11905: 0xE2D3,
+ 24230 - 11905: 0xB6C8,
+ 24231 - 11905: 0xD7F9,
+ 24232 - 11905: 0x8EE9,
+ 24233 - 11905: 0x8EEA,
+ 24234 - 11905: 0x8EEB,
+ 24235 - 11905: 0x8EEC,
+ 24236 - 11905: 0x8EED,
+ 24237 - 11905: 0xCDA5,
+ 24238 - 11905: 0x8EEE,
+ 24239 - 11905: 0x8EEF,
+ 24240 - 11905: 0x8EF0,
+ 24241 - 11905: 0x8EF1,
+ 24242 - 11905: 0x8EF2,
+ 24243 - 11905: 0xE2D8,
+ 24244 - 11905: 0x8EF3,
+ 24245 - 11905: 0xE2D6,
+ 24246 - 11905: 0xCAFC,
+ 24247 - 11905: 0xBFB5,
+ 24248 - 11905: 0xD3B9,
+ 24249 - 11905: 0xE2D5,
+ 24250 - 11905: 0x8EF4,
+ 24251 - 11905: 0x8EF5,
+ 24252 - 11905: 0x8EF6,
+ 24253 - 11905: 0x8EF7,
+ 24254 - 11905: 0xE2D7,
+ 24255 - 11905: 0x8EF8,
+ 24256 - 11905: 0x8EF9,
+ 24257 - 11905: 0x8EFA,
+ 24258 - 11905: 0x8EFB,
+ 24259 - 11905: 0x8EFC,
+ 24260 - 11905: 0x8EFD,
+ 24261 - 11905: 0x8EFE,
+ 24262 - 11905: 0x8F40,
+ 24263 - 11905: 0x8F41,
+ 24264 - 11905: 0x8F42,
+ 24265 - 11905: 0xC1AE,
+ 24266 - 11905: 0xC0C8,
+ 24267 - 11905: 0x8F43,
+ 24268 - 11905: 0x8F44,
+ 24269 - 11905: 0x8F45,
+ 24270 - 11905: 0x8F46,
+ 24271 - 11905: 0x8F47,
+ 24272 - 11905: 0x8F48,
+ 24273 - 11905: 0xE2DB,
+ 24274 - 11905: 0xE2DA,
+ 24275 - 11905: 0xC0AA,
+ 24276 - 11905: 0x8F49,
+ 24277 - 11905: 0x8F4A,
+ 24278 - 11905: 0xC1CE,
+ 24279 - 11905: 0x8F4B,
+ 24280 - 11905: 0x8F4C,
+ 24281 - 11905: 0x8F4D,
+ 24282 - 11905: 0x8F4E,
+ 24283 - 11905: 0xE2DC,
+ 24284 - 11905: 0x8F4F,
+ 24285 - 11905: 0x8F50,
+ 24286 - 11905: 0x8F51,
+ 24287 - 11905: 0x8F52,
+ 24288 - 11905: 0x8F53,
+ 24289 - 11905: 0x8F54,
+ 24290 - 11905: 0x8F55,
+ 24291 - 11905: 0x8F56,
+ 24292 - 11905: 0x8F57,
+ 24293 - 11905: 0x8F58,
+ 24294 - 11905: 0x8F59,
+ 24295 - 11905: 0x8F5A,
+ 24296 - 11905: 0xE2DD,
+ 24297 - 11905: 0x8F5B,
+ 24298 - 11905: 0xE2DE,
+ 24299 - 11905: 0x8F5C,
+ 24300 - 11905: 0x8F5D,
+ 24301 - 11905: 0x8F5E,
+ 24302 - 11905: 0x8F5F,
+ 24303 - 11905: 0x8F60,
+ 24304 - 11905: 0x8F61,
+ 24305 - 11905: 0x8F62,
+ 24306 - 11905: 0x8F63,
+ 24307 - 11905: 0x8F64,
+ 24308 - 11905: 0xDBC8,
+ 24309 - 11905: 0x8F65,
+ 24310 - 11905: 0xD1D3,
+ 24311 - 11905: 0xCDA2,
+ 24312 - 11905: 0x8F66,
+ 24313 - 11905: 0x8F67,
+ 24314 - 11905: 0xBDA8,
+ 24315 - 11905: 0x8F68,
+ 24316 - 11905: 0x8F69,
+ 24317 - 11905: 0x8F6A,
+ 24318 - 11905: 0xDEC3,
+ 24319 - 11905: 0xD8A5,
+ 24320 - 11905: 0xBFAA,
+ 24321 - 11905: 0xDBCD,
+ 24322 - 11905: 0xD2EC,
+ 24323 - 11905: 0xC6FA,
+ 24324 - 11905: 0xC5AA,
+ 24325 - 11905: 0x8F6B,
+ 24326 - 11905: 0x8F6C,
+ 24327 - 11905: 0x8F6D,
+ 24328 - 11905: 0xDEC4,
+ 24329 - 11905: 0x8F6E,
+ 24330 - 11905: 0xB1D7,
+ 24331 - 11905: 0xDFAE,
+ 24332 - 11905: 0x8F6F,
+ 24333 - 11905: 0x8F70,
+ 24334 - 11905: 0x8F71,
+ 24335 - 11905: 0xCABD,
+ 24336 - 11905: 0x8F72,
+ 24337 - 11905: 0xDFB1,
+ 24338 - 11905: 0x8F73,
+ 24339 - 11905: 0xB9AD,
+ 24340 - 11905: 0x8F74,
+ 24341 - 11905: 0xD2FD,
+ 24342 - 11905: 0x8F75,
+ 24343 - 11905: 0xB8A5,
+ 24344 - 11905: 0xBAEB,
+ 24345 - 11905: 0x8F76,
+ 24346 - 11905: 0x8F77,
+ 24347 - 11905: 0xB3DA,
+ 24348 - 11905: 0x8F78,
+ 24349 - 11905: 0x8F79,
+ 24350 - 11905: 0x8F7A,
+ 24351 - 11905: 0xB5DC,
+ 24352 - 11905: 0xD5C5,
+ 24353 - 11905: 0x8F7B,
+ 24354 - 11905: 0x8F7C,
+ 24355 - 11905: 0x8F7D,
+ 24356 - 11905: 0x8F7E,
+ 24357 - 11905: 0xC3D6,
+ 24358 - 11905: 0xCFD2,
+ 24359 - 11905: 0xBBA1,
+ 24360 - 11905: 0x8F80,
+ 24361 - 11905: 0xE5F3,
+ 24362 - 11905: 0xE5F2,
+ 24363 - 11905: 0x8F81,
+ 24364 - 11905: 0x8F82,
+ 24365 - 11905: 0xE5F4,
+ 24366 - 11905: 0x8F83,
+ 24367 - 11905: 0xCDE4,
+ 24368 - 11905: 0x8F84,
+ 24369 - 11905: 0xC8F5,
+ 24370 - 11905: 0x8F85,
+ 24371 - 11905: 0x8F86,
+ 24372 - 11905: 0x8F87,
+ 24373 - 11905: 0x8F88,
+ 24374 - 11905: 0x8F89,
+ 24375 - 11905: 0x8F8A,
+ 24376 - 11905: 0x8F8B,
+ 24377 - 11905: 0xB5AF,
+ 24378 - 11905: 0xC7BF,
+ 24379 - 11905: 0x8F8C,
+ 24380 - 11905: 0xE5F6,
+ 24381 - 11905: 0x8F8D,
+ 24382 - 11905: 0x8F8E,
+ 24383 - 11905: 0x8F8F,
+ 24384 - 11905: 0xECB0,
+ 24385 - 11905: 0x8F90,
+ 24386 - 11905: 0x8F91,
+ 24387 - 11905: 0x8F92,
+ 24388 - 11905: 0x8F93,
+ 24389 - 11905: 0x8F94,
+ 24390 - 11905: 0x8F95,
+ 24391 - 11905: 0x8F96,
+ 24392 - 11905: 0x8F97,
+ 24393 - 11905: 0x8F98,
+ 24394 - 11905: 0x8F99,
+ 24395 - 11905: 0x8F9A,
+ 24396 - 11905: 0x8F9B,
+ 24397 - 11905: 0x8F9C,
+ 24398 - 11905: 0x8F9D,
+ 24399 - 11905: 0x8F9E,
+ 24400 - 11905: 0xE5E6,
+ 24401 - 11905: 0x8F9F,
+ 24402 - 11905: 0xB9E9,
+ 24403 - 11905: 0xB5B1,
+ 24404 - 11905: 0x8FA0,
+ 24405 - 11905: 0xC2BC,
+ 24406 - 11905: 0xE5E8,
+ 24407 - 11905: 0xE5E7,
+ 24408 - 11905: 0xE5E9,
+ 24409 - 11905: 0x8FA1,
+ 24410 - 11905: 0x8FA2,
+ 24411 - 11905: 0x8FA3,
+ 24412 - 11905: 0x8FA4,
+ 24413 - 11905: 0xD2CD,
+ 24414 - 11905: 0x8FA5,
+ 24415 - 11905: 0x8FA6,
+ 24416 - 11905: 0x8FA7,
+ 24417 - 11905: 0xE1EA,
+ 24418 - 11905: 0xD0CE,
+ 24419 - 11905: 0x8FA8,
+ 24420 - 11905: 0xCDAE,
+ 24421 - 11905: 0x8FA9,
+ 24422 - 11905: 0xD1E5,
+ 24423 - 11905: 0x8FAA,
+ 24424 - 11905: 0x8FAB,
+ 24425 - 11905: 0xB2CA,
+ 24426 - 11905: 0xB1EB,
+ 24427 - 11905: 0x8FAC,
+ 24428 - 11905: 0xB1F2,
+ 24429 - 11905: 0xC5ED,
+ 24430 - 11905: 0x8FAD,
+ 24431 - 11905: 0x8FAE,
+ 24432 - 11905: 0xD5C3,
+ 24433 - 11905: 0xD3B0,
+ 24434 - 11905: 0x8FAF,
+ 24435 - 11905: 0xE1DC,
+ 24436 - 11905: 0x8FB0,
+ 24437 - 11905: 0x8FB1,
+ 24438 - 11905: 0x8FB2,
+ 24439 - 11905: 0xE1DD,
+ 24440 - 11905: 0x8FB3,
+ 24441 - 11905: 0xD2DB,
+ 24442 - 11905: 0x8FB4,
+ 24443 - 11905: 0xB3B9,
+ 24444 - 11905: 0xB1CB,
+ 24445 - 11905: 0x8FB5,
+ 24446 - 11905: 0x8FB6,
+ 24447 - 11905: 0x8FB7,
+ 24448 - 11905: 0xCDF9,
+ 24449 - 11905: 0xD5F7,
+ 24450 - 11905: 0xE1DE,
+ 24451 - 11905: 0x8FB8,
+ 24452 - 11905: 0xBEB6,
+ 24453 - 11905: 0xB4FD,
+ 24454 - 11905: 0x8FB9,
+ 24455 - 11905: 0xE1DF,
+ 24456 - 11905: 0xBADC,
+ 24457 - 11905: 0xE1E0,
+ 24458 - 11905: 0xBBB2,
+ 24459 - 11905: 0xC2C9,
+ 24460 - 11905: 0xE1E1,
+ 24461 - 11905: 0x8FBA,
+ 24462 - 11905: 0x8FBB,
+ 24463 - 11905: 0x8FBC,
+ 24464 - 11905: 0xD0EC,
+ 24465 - 11905: 0x8FBD,
+ 24466 - 11905: 0xCDBD,
+ 24467 - 11905: 0x8FBE,
+ 24468 - 11905: 0x8FBF,
+ 24469 - 11905: 0xE1E2,
+ 24470 - 11905: 0x8FC0,
+ 24471 - 11905: 0xB5C3,
+ 24472 - 11905: 0xC5C7,
+ 24473 - 11905: 0xE1E3,
+ 24474 - 11905: 0x8FC1,
+ 24475 - 11905: 0x8FC2,
+ 24476 - 11905: 0xE1E4,
+ 24477 - 11905: 0x8FC3,
+ 24478 - 11905: 0x8FC4,
+ 24479 - 11905: 0x8FC5,
+ 24480 - 11905: 0x8FC6,
+ 24481 - 11905: 0xD3F9,
+ 24482 - 11905: 0x8FC7,
+ 24483 - 11905: 0x8FC8,
+ 24484 - 11905: 0x8FC9,
+ 24485 - 11905: 0x8FCA,
+ 24486 - 11905: 0x8FCB,
+ 24487 - 11905: 0x8FCC,
+ 24488 - 11905: 0xE1E5,
+ 24489 - 11905: 0x8FCD,
+ 24490 - 11905: 0xD1AD,
+ 24491 - 11905: 0x8FCE,
+ 24492 - 11905: 0x8FCF,
+ 24493 - 11905: 0xE1E6,
+ 24494 - 11905: 0xCEA2,
+ 24495 - 11905: 0x8FD0,
+ 24496 - 11905: 0x8FD1,
+ 24497 - 11905: 0x8FD2,
+ 24498 - 11905: 0x8FD3,
+ 24499 - 11905: 0x8FD4,
+ 24500 - 11905: 0x8FD5,
+ 24501 - 11905: 0xE1E7,
+ 24502 - 11905: 0x8FD6,
+ 24503 - 11905: 0xB5C2,
+ 24504 - 11905: 0x8FD7,
+ 24505 - 11905: 0x8FD8,
+ 24506 - 11905: 0x8FD9,
+ 24507 - 11905: 0x8FDA,
+ 24508 - 11905: 0xE1E8,
+ 24509 - 11905: 0xBBD5,
+ 24510 - 11905: 0x8FDB,
+ 24511 - 11905: 0x8FDC,
+ 24512 - 11905: 0x8FDD,
+ 24513 - 11905: 0x8FDE,
+ 24514 - 11905: 0x8FDF,
+ 24515 - 11905: 0xD0C4,
+ 24516 - 11905: 0xE2E0,
+ 24517 - 11905: 0xB1D8,
+ 24518 - 11905: 0xD2E4,
+ 24519 - 11905: 0x8FE0,
+ 24520 - 11905: 0x8FE1,
+ 24521 - 11905: 0xE2E1,
+ 24522 - 11905: 0x8FE2,
+ 24523 - 11905: 0x8FE3,
+ 24524 - 11905: 0xBCC9,
+ 24525 - 11905: 0xC8CC,
+ 24526 - 11905: 0x8FE4,
+ 24527 - 11905: 0xE2E3,
+ 24528 - 11905: 0xECFE,
+ 24529 - 11905: 0xECFD,
+ 24530 - 11905: 0xDFAF,
+ 24531 - 11905: 0x8FE5,
+ 24532 - 11905: 0x8FE6,
+ 24533 - 11905: 0x8FE7,
+ 24534 - 11905: 0xE2E2,
+ 24535 - 11905: 0xD6BE,
+ 24536 - 11905: 0xCDFC,
+ 24537 - 11905: 0xC3A6,
+ 24538 - 11905: 0x8FE8,
+ 24539 - 11905: 0x8FE9,
+ 24540 - 11905: 0x8FEA,
+ 24541 - 11905: 0xE3C3,
+ 24542 - 11905: 0x8FEB,
+ 24543 - 11905: 0x8FEC,
+ 24544 - 11905: 0xD6D2,
+ 24545 - 11905: 0xE2E7,
+ 24546 - 11905: 0x8FED,
+ 24547 - 11905: 0x8FEE,
+ 24548 - 11905: 0xE2E8,
+ 24549 - 11905: 0x8FEF,
+ 24550 - 11905: 0x8FF0,
+ 24551 - 11905: 0xD3C7,
+ 24552 - 11905: 0x8FF1,
+ 24553 - 11905: 0x8FF2,
+ 24554 - 11905: 0xE2EC,
+ 24555 - 11905: 0xBFEC,
+ 24556 - 11905: 0x8FF3,
+ 24557 - 11905: 0xE2ED,
+ 24558 - 11905: 0xE2E5,
+ 24559 - 11905: 0x8FF4,
+ 24560 - 11905: 0x8FF5,
+ 24561 - 11905: 0xB3C0,
+ 24562 - 11905: 0x8FF6,
+ 24563 - 11905: 0x8FF7,
+ 24564 - 11905: 0x8FF8,
+ 24565 - 11905: 0xC4EE,
+ 24566 - 11905: 0x8FF9,
+ 24567 - 11905: 0x8FFA,
+ 24568 - 11905: 0xE2EE,
+ 24569 - 11905: 0x8FFB,
+ 24570 - 11905: 0x8FFC,
+ 24571 - 11905: 0xD0C3,
+ 24572 - 11905: 0x8FFD,
+ 24573 - 11905: 0xBAF6,
+ 24574 - 11905: 0xE2E9,
+ 24575 - 11905: 0xB7DE,
+ 24576 - 11905: 0xBBB3,
+ 24577 - 11905: 0xCCAC,
+ 24578 - 11905: 0xCBCB,
+ 24579 - 11905: 0xE2E4,
+ 24580 - 11905: 0xE2E6,
+ 24581 - 11905: 0xE2EA,
+ 24582 - 11905: 0xE2EB,
+ 24583 - 11905: 0x8FFE,
+ 24584 - 11905: 0x9040,
+ 24585 - 11905: 0x9041,
+ 24586 - 11905: 0xE2F7,
+ 24587 - 11905: 0x9042,
+ 24588 - 11905: 0x9043,
+ 24589 - 11905: 0xE2F4,
+ 24590 - 11905: 0xD4F5,
+ 24591 - 11905: 0xE2F3,
+ 24592 - 11905: 0x9044,
+ 24593 - 11905: 0x9045,
+ 24594 - 11905: 0xC5AD,
+ 24595 - 11905: 0x9046,
+ 24596 - 11905: 0xD5FA,
+ 24597 - 11905: 0xC5C2,
+ 24598 - 11905: 0xB2C0,
+ 24599 - 11905: 0x9047,
+ 24600 - 11905: 0x9048,
+ 24601 - 11905: 0xE2EF,
+ 24602 - 11905: 0x9049,
+ 24603 - 11905: 0xE2F2,
+ 24604 - 11905: 0xC1AF,
+ 24605 - 11905: 0xCBBC,
+ 24606 - 11905: 0x904A,
+ 24607 - 11905: 0x904B,
+ 24608 - 11905: 0xB5A1,
+ 24609 - 11905: 0xE2F9,
+ 24610 - 11905: 0x904C,
+ 24611 - 11905: 0x904D,
+ 24612 - 11905: 0x904E,
+ 24613 - 11905: 0xBCB1,
+ 24614 - 11905: 0xE2F1,
+ 24615 - 11905: 0xD0D4,
+ 24616 - 11905: 0xD4B9,
+ 24617 - 11905: 0xE2F5,
+ 24618 - 11905: 0xB9D6,
+ 24619 - 11905: 0xE2F6,
+ 24620 - 11905: 0x904F,
+ 24621 - 11905: 0x9050,
+ 24622 - 11905: 0x9051,
+ 24623 - 11905: 0xC7D3,
+ 24624 - 11905: 0x9052,
+ 24625 - 11905: 0x9053,
+ 24626 - 11905: 0x9054,
+ 24627 - 11905: 0x9055,
+ 24628 - 11905: 0x9056,
+ 24629 - 11905: 0xE2F0,
+ 24630 - 11905: 0x9057,
+ 24631 - 11905: 0x9058,
+ 24632 - 11905: 0x9059,
+ 24633 - 11905: 0x905A,
+ 24634 - 11905: 0x905B,
+ 24635 - 11905: 0xD7DC,
+ 24636 - 11905: 0xEDA1,
+ 24637 - 11905: 0x905C,
+ 24638 - 11905: 0x905D,
+ 24639 - 11905: 0xE2F8,
+ 24640 - 11905: 0x905E,
+ 24641 - 11905: 0xEDA5,
+ 24642 - 11905: 0xE2FE,
+ 24643 - 11905: 0xCAD1,
+ 24644 - 11905: 0x905F,
+ 24645 - 11905: 0x9060,
+ 24646 - 11905: 0x9061,
+ 24647 - 11905: 0x9062,
+ 24648 - 11905: 0x9063,
+ 24649 - 11905: 0x9064,
+ 24650 - 11905: 0x9065,
+ 24651 - 11905: 0xC1B5,
+ 24652 - 11905: 0x9066,
+ 24653 - 11905: 0xBBD0,
+ 24654 - 11905: 0x9067,
+ 24655 - 11905: 0x9068,
+ 24656 - 11905: 0xBFD6,
+ 24657 - 11905: 0x9069,
+ 24658 - 11905: 0xBAE3,
+ 24659 - 11905: 0x906A,
+ 24660 - 11905: 0x906B,
+ 24661 - 11905: 0xCBA1,
+ 24662 - 11905: 0x906C,
+ 24663 - 11905: 0x906D,
+ 24664 - 11905: 0x906E,
+ 24665 - 11905: 0xEDA6,
+ 24666 - 11905: 0xEDA3,
+ 24667 - 11905: 0x906F,
+ 24668 - 11905: 0x9070,
+ 24669 - 11905: 0xEDA2,
+ 24670 - 11905: 0x9071,
+ 24671 - 11905: 0x9072,
+ 24672 - 11905: 0x9073,
+ 24673 - 11905: 0x9074,
+ 24674 - 11905: 0xBBD6,
+ 24675 - 11905: 0xEDA7,
+ 24676 - 11905: 0xD0F4,
+ 24677 - 11905: 0x9075,
+ 24678 - 11905: 0x9076,
+ 24679 - 11905: 0xEDA4,
+ 24680 - 11905: 0xBADE,
+ 24681 - 11905: 0xB6F7,
+ 24682 - 11905: 0xE3A1,
+ 24683 - 11905: 0xB6B2,
+ 24684 - 11905: 0xCCF1,
+ 24685 - 11905: 0xB9A7,
+ 24686 - 11905: 0x9077,
+ 24687 - 11905: 0xCFA2,
+ 24688 - 11905: 0xC7A1,
+ 24689 - 11905: 0x9078,
+ 24690 - 11905: 0x9079,
+ 24691 - 11905: 0xBFD2,
+ 24692 - 11905: 0x907A,
+ 24693 - 11905: 0x907B,
+ 24694 - 11905: 0xB6F1,
+ 24695 - 11905: 0x907C,
+ 24696 - 11905: 0xE2FA,
+ 24697 - 11905: 0xE2FB,
+ 24698 - 11905: 0xE2FD,
+ 24699 - 11905: 0xE2FC,
+ 24700 - 11905: 0xC4D5,
+ 24701 - 11905: 0xE3A2,
+ 24702 - 11905: 0x907D,
+ 24703 - 11905: 0xD3C1,
+ 24704 - 11905: 0x907E,
+ 24705 - 11905: 0x9080,
+ 24706 - 11905: 0x9081,
+ 24707 - 11905: 0xE3A7,
+ 24708 - 11905: 0xC7C4,
+ 24709 - 11905: 0x9082,
+ 24710 - 11905: 0x9083,
+ 24711 - 11905: 0x9084,
+ 24712 - 11905: 0x9085,
+ 24713 - 11905: 0xCFA4,
+ 24714 - 11905: 0x9086,
+ 24715 - 11905: 0x9087,
+ 24716 - 11905: 0xE3A9,
+ 24717 - 11905: 0xBAB7,
+ 24718 - 11905: 0x9088,
+ 24719 - 11905: 0x9089,
+ 24720 - 11905: 0x908A,
+ 24721 - 11905: 0x908B,
+ 24722 - 11905: 0xE3A8,
+ 24723 - 11905: 0x908C,
+ 24724 - 11905: 0xBBDA,
+ 24725 - 11905: 0x908D,
+ 24726 - 11905: 0xE3A3,
+ 24727 - 11905: 0x908E,
+ 24728 - 11905: 0x908F,
+ 24729 - 11905: 0x9090,
+ 24730 - 11905: 0xE3A4,
+ 24731 - 11905: 0xE3AA,
+ 24732 - 11905: 0x9091,
+ 24733 - 11905: 0xE3A6,
+ 24734 - 11905: 0x9092,
+ 24735 - 11905: 0xCEF2,
+ 24736 - 11905: 0xD3C6,
+ 24737 - 11905: 0x9093,
+ 24738 - 11905: 0x9094,
+ 24739 - 11905: 0xBBBC,
+ 24740 - 11905: 0x9095,
+ 24741 - 11905: 0x9096,
+ 24742 - 11905: 0xD4C3,
+ 24743 - 11905: 0x9097,
+ 24744 - 11905: 0xC4FA,
+ 24745 - 11905: 0x9098,
+ 24746 - 11905: 0x9099,
+ 24747 - 11905: 0xEDA8,
+ 24748 - 11905: 0xD0FC,
+ 24749 - 11905: 0xE3A5,
+ 24750 - 11905: 0x909A,
+ 24751 - 11905: 0xC3F5,
+ 24752 - 11905: 0x909B,
+ 24753 - 11905: 0xE3AD,
+ 24754 - 11905: 0xB1AF,
+ 24755 - 11905: 0x909C,
+ 24756 - 11905: 0xE3B2,
+ 24757 - 11905: 0x909D,
+ 24758 - 11905: 0x909E,
+ 24759 - 11905: 0x909F,
+ 24760 - 11905: 0xBCC2,
+ 24761 - 11905: 0x90A0,
+ 24762 - 11905: 0x90A1,
+ 24763 - 11905: 0xE3AC,
+ 24764 - 11905: 0xB5BF,
+ 24765 - 11905: 0x90A2,
+ 24766 - 11905: 0x90A3,
+ 24767 - 11905: 0x90A4,
+ 24768 - 11905: 0x90A5,
+ 24769 - 11905: 0x90A6,
+ 24770 - 11905: 0x90A7,
+ 24771 - 11905: 0x90A8,
+ 24772 - 11905: 0x90A9,
+ 24773 - 11905: 0xC7E9,
+ 24774 - 11905: 0xE3B0,
+ 24775 - 11905: 0x90AA,
+ 24776 - 11905: 0x90AB,
+ 24777 - 11905: 0x90AC,
+ 24778 - 11905: 0xBEAA,
+ 24779 - 11905: 0xCDEF,
+ 24780 - 11905: 0x90AD,
+ 24781 - 11905: 0x90AE,
+ 24782 - 11905: 0x90AF,
+ 24783 - 11905: 0x90B0,
+ 24784 - 11905: 0x90B1,
+ 24785 - 11905: 0xBBF3,
+ 24786 - 11905: 0x90B2,
+ 24787 - 11905: 0x90B3,
+ 24788 - 11905: 0x90B4,
+ 24789 - 11905: 0xCCE8,
+ 24790 - 11905: 0x90B5,
+ 24791 - 11905: 0x90B6,
+ 24792 - 11905: 0xE3AF,
+ 24793 - 11905: 0x90B7,
+ 24794 - 11905: 0xE3B1,
+ 24795 - 11905: 0x90B8,
+ 24796 - 11905: 0xCFA7,
+ 24797 - 11905: 0xE3AE,
+ 24798 - 11905: 0x90B9,
+ 24799 - 11905: 0xCEA9,
+ 24800 - 11905: 0xBBDD,
+ 24801 - 11905: 0x90BA,
+ 24802 - 11905: 0x90BB,
+ 24803 - 11905: 0x90BC,
+ 24804 - 11905: 0x90BD,
+ 24805 - 11905: 0x90BE,
+ 24806 - 11905: 0xB5EB,
+ 24807 - 11905: 0xBEE5,
+ 24808 - 11905: 0xB2D2,
+ 24809 - 11905: 0xB3CD,
+ 24810 - 11905: 0x90BF,
+ 24811 - 11905: 0xB1B9,
+ 24812 - 11905: 0xE3AB,
+ 24813 - 11905: 0xB2D1,
+ 24814 - 11905: 0xB5AC,
+ 24815 - 11905: 0xB9DF,
+ 24816 - 11905: 0xB6E8,
+ 24817 - 11905: 0x90C0,
+ 24818 - 11905: 0x90C1,
+ 24819 - 11905: 0xCFEB,
+ 24820 - 11905: 0xE3B7,
+ 24821 - 11905: 0x90C2,
+ 24822 - 11905: 0xBBCC,
+ 24823 - 11905: 0x90C3,
+ 24824 - 11905: 0x90C4,
+ 24825 - 11905: 0xC8C7,
+ 24826 - 11905: 0xD0CA,
+ 24827 - 11905: 0x90C5,
+ 24828 - 11905: 0x90C6,
+ 24829 - 11905: 0x90C7,
+ 24830 - 11905: 0x90C8,
+ 24831 - 11905: 0x90C9,
+ 24832 - 11905: 0xE3B8,
+ 24833 - 11905: 0xB3EE,
+ 24834 - 11905: 0x90CA,
+ 24835 - 11905: 0x90CB,
+ 24836 - 11905: 0x90CC,
+ 24837 - 11905: 0x90CD,
+ 24838 - 11905: 0xEDA9,
+ 24839 - 11905: 0x90CE,
+ 24840 - 11905: 0xD3FA,
+ 24841 - 11905: 0xD3E4,
+ 24842 - 11905: 0x90CF,
+ 24843 - 11905: 0x90D0,
+ 24844 - 11905: 0x90D1,
+ 24845 - 11905: 0xEDAA,
+ 24846 - 11905: 0xE3B9,
+ 24847 - 11905: 0xD2E2,
+ 24848 - 11905: 0x90D2,
+ 24849 - 11905: 0x90D3,
+ 24850 - 11905: 0x90D4,
+ 24851 - 11905: 0x90D5,
+ 24852 - 11905: 0x90D6,
+ 24853 - 11905: 0xE3B5,
+ 24854 - 11905: 0x90D7,
+ 24855 - 11905: 0x90D8,
+ 24856 - 11905: 0x90D9,
+ 24857 - 11905: 0x90DA,
+ 24858 - 11905: 0xD3DE,
+ 24859 - 11905: 0x90DB,
+ 24860 - 11905: 0x90DC,
+ 24861 - 11905: 0x90DD,
+ 24862 - 11905: 0x90DE,
+ 24863 - 11905: 0xB8D0,
+ 24864 - 11905: 0xE3B3,
+ 24865 - 11905: 0x90DF,
+ 24866 - 11905: 0x90E0,
+ 24867 - 11905: 0xE3B6,
+ 24868 - 11905: 0xB7DF,
+ 24869 - 11905: 0x90E1,
+ 24870 - 11905: 0xE3B4,
+ 24871 - 11905: 0xC0A2,
+ 24872 - 11905: 0x90E2,
+ 24873 - 11905: 0x90E3,
+ 24874 - 11905: 0x90E4,
+ 24875 - 11905: 0xE3BA,
+ 24876 - 11905: 0x90E5,
+ 24877 - 11905: 0x90E6,
+ 24878 - 11905: 0x90E7,
+ 24879 - 11905: 0x90E8,
+ 24880 - 11905: 0x90E9,
+ 24881 - 11905: 0x90EA,
+ 24882 - 11905: 0x90EB,
+ 24883 - 11905: 0x90EC,
+ 24884 - 11905: 0x90ED,
+ 24885 - 11905: 0x90EE,
+ 24886 - 11905: 0x90EF,
+ 24887 - 11905: 0x90F0,
+ 24888 - 11905: 0x90F1,
+ 24889 - 11905: 0x90F2,
+ 24890 - 11905: 0x90F3,
+ 24891 - 11905: 0x90F4,
+ 24892 - 11905: 0x90F5,
+ 24893 - 11905: 0x90F6,
+ 24894 - 11905: 0x90F7,
+ 24895 - 11905: 0xD4B8,
+ 24896 - 11905: 0x90F8,
+ 24897 - 11905: 0x90F9,
+ 24898 - 11905: 0x90FA,
+ 24899 - 11905: 0x90FB,
+ 24900 - 11905: 0x90FC,
+ 24901 - 11905: 0x90FD,
+ 24902 - 11905: 0x90FE,
+ 24903 - 11905: 0x9140,
+ 24904 - 11905: 0xB4C8,
+ 24905 - 11905: 0x9141,
+ 24906 - 11905: 0xE3BB,
+ 24907 - 11905: 0x9142,
+ 24908 - 11905: 0xBBC5,
+ 24909 - 11905: 0x9143,
+ 24910 - 11905: 0xC9F7,
+ 24911 - 11905: 0x9144,
+ 24912 - 11905: 0x9145,
+ 24913 - 11905: 0xC9E5,
+ 24914 - 11905: 0x9146,
+ 24915 - 11905: 0x9147,
+ 24916 - 11905: 0x9148,
+ 24917 - 11905: 0xC4BD,
+ 24918 - 11905: 0x9149,
+ 24919 - 11905: 0x914A,
+ 24920 - 11905: 0x914B,
+ 24921 - 11905: 0x914C,
+ 24922 - 11905: 0x914D,
+ 24923 - 11905: 0x914E,
+ 24924 - 11905: 0x914F,
+ 24925 - 11905: 0xEDAB,
+ 24926 - 11905: 0x9150,
+ 24927 - 11905: 0x9151,
+ 24928 - 11905: 0x9152,
+ 24929 - 11905: 0x9153,
+ 24930 - 11905: 0xC2FD,
+ 24931 - 11905: 0x9154,
+ 24932 - 11905: 0x9155,
+ 24933 - 11905: 0x9156,
+ 24934 - 11905: 0x9157,
+ 24935 - 11905: 0xBBDB,
+ 24936 - 11905: 0xBFAE,
+ 24937 - 11905: 0x9158,
+ 24938 - 11905: 0x9159,
+ 24939 - 11905: 0x915A,
+ 24940 - 11905: 0x915B,
+ 24941 - 11905: 0x915C,
+ 24942 - 11905: 0x915D,
+ 24943 - 11905: 0x915E,
+ 24944 - 11905: 0xCEBF,
+ 24945 - 11905: 0x915F,
+ 24946 - 11905: 0x9160,
+ 24947 - 11905: 0x9161,
+ 24948 - 11905: 0x9162,
+ 24949 - 11905: 0xE3BC,
+ 24950 - 11905: 0x9163,
+ 24951 - 11905: 0xBFB6,
+ 24952 - 11905: 0x9164,
+ 24953 - 11905: 0x9165,
+ 24954 - 11905: 0x9166,
+ 24955 - 11905: 0x9167,
+ 24956 - 11905: 0x9168,
+ 24957 - 11905: 0x9169,
+ 24958 - 11905: 0x916A,
+ 24959 - 11905: 0x916B,
+ 24960 - 11905: 0x916C,
+ 24961 - 11905: 0x916D,
+ 24962 - 11905: 0x916E,
+ 24963 - 11905: 0x916F,
+ 24964 - 11905: 0x9170,
+ 24965 - 11905: 0x9171,
+ 24966 - 11905: 0x9172,
+ 24967 - 11905: 0x9173,
+ 24968 - 11905: 0x9174,
+ 24969 - 11905: 0x9175,
+ 24970 - 11905: 0x9176,
+ 24971 - 11905: 0xB1EF,
+ 24972 - 11905: 0x9177,
+ 24973 - 11905: 0x9178,
+ 24974 - 11905: 0xD4F7,
+ 24975 - 11905: 0x9179,
+ 24976 - 11905: 0x917A,
+ 24977 - 11905: 0x917B,
+ 24978 - 11905: 0x917C,
+ 24979 - 11905: 0x917D,
+ 24980 - 11905: 0xE3BE,
+ 24981 - 11905: 0x917E,
+ 24982 - 11905: 0x9180,
+ 24983 - 11905: 0x9181,
+ 24984 - 11905: 0x9182,
+ 24985 - 11905: 0x9183,
+ 24986 - 11905: 0x9184,
+ 24987 - 11905: 0x9185,
+ 24988 - 11905: 0x9186,
+ 24989 - 11905: 0xEDAD,
+ 24990 - 11905: 0x9187,
+ 24991 - 11905: 0x9188,
+ 24992 - 11905: 0x9189,
+ 24993 - 11905: 0x918A,
+ 24994 - 11905: 0x918B,
+ 24995 - 11905: 0x918C,
+ 24996 - 11905: 0x918D,
+ 24997 - 11905: 0x918E,
+ 24998 - 11905: 0x918F,
+ 24999 - 11905: 0xE3BF,
+ 25000 - 11905: 0xBAA9,
+ 25001 - 11905: 0xEDAC,
+ 25002 - 11905: 0x9190,
+ 25003 - 11905: 0x9191,
+ 25004 - 11905: 0xE3BD,
+ 25005 - 11905: 0x9192,
+ 25006 - 11905: 0x9193,
+ 25007 - 11905: 0x9194,
+ 25008 - 11905: 0x9195,
+ 25009 - 11905: 0x9196,
+ 25010 - 11905: 0x9197,
+ 25011 - 11905: 0x9198,
+ 25012 - 11905: 0x9199,
+ 25013 - 11905: 0x919A,
+ 25014 - 11905: 0x919B,
+ 25015 - 11905: 0xE3C0,
+ 25016 - 11905: 0x919C,
+ 25017 - 11905: 0x919D,
+ 25018 - 11905: 0x919E,
+ 25019 - 11905: 0x919F,
+ 25020 - 11905: 0x91A0,
+ 25021 - 11905: 0x91A1,
+ 25022 - 11905: 0xBAB6,
+ 25023 - 11905: 0x91A2,
+ 25024 - 11905: 0x91A3,
+ 25025 - 11905: 0x91A4,
+ 25026 - 11905: 0xB6AE,
+ 25027 - 11905: 0x91A5,
+ 25028 - 11905: 0x91A6,
+ 25029 - 11905: 0x91A7,
+ 25030 - 11905: 0x91A8,
+ 25031 - 11905: 0x91A9,
+ 25032 - 11905: 0xD0B8,
+ 25033 - 11905: 0x91AA,
+ 25034 - 11905: 0xB0C3,
+ 25035 - 11905: 0xEDAE,
+ 25036 - 11905: 0x91AB,
+ 25037 - 11905: 0x91AC,
+ 25038 - 11905: 0x91AD,
+ 25039 - 11905: 0x91AE,
+ 25040 - 11905: 0x91AF,
+ 25041 - 11905: 0xEDAF,
+ 25042 - 11905: 0xC0C1,
+ 25043 - 11905: 0x91B0,
+ 25044 - 11905: 0xE3C1,
+ 25045 - 11905: 0x91B1,
+ 25046 - 11905: 0x91B2,
+ 25047 - 11905: 0x91B3,
+ 25048 - 11905: 0x91B4,
+ 25049 - 11905: 0x91B5,
+ 25050 - 11905: 0x91B6,
+ 25051 - 11905: 0x91B7,
+ 25052 - 11905: 0x91B8,
+ 25053 - 11905: 0x91B9,
+ 25054 - 11905: 0x91BA,
+ 25055 - 11905: 0x91BB,
+ 25056 - 11905: 0x91BC,
+ 25057 - 11905: 0x91BD,
+ 25058 - 11905: 0x91BE,
+ 25059 - 11905: 0x91BF,
+ 25060 - 11905: 0x91C0,
+ 25061 - 11905: 0x91C1,
+ 25062 - 11905: 0xC5B3,
+ 25063 - 11905: 0x91C2,
+ 25064 - 11905: 0x91C3,
+ 25065 - 11905: 0x91C4,
+ 25066 - 11905: 0x91C5,
+ 25067 - 11905: 0x91C6,
+ 25068 - 11905: 0x91C7,
+ 25069 - 11905: 0x91C8,
+ 25070 - 11905: 0x91C9,
+ 25071 - 11905: 0x91CA,
+ 25072 - 11905: 0x91CB,
+ 25073 - 11905: 0x91CC,
+ 25074 - 11905: 0x91CD,
+ 25075 - 11905: 0x91CE,
+ 25076 - 11905: 0x91CF,
+ 25077 - 11905: 0xE3C2,
+ 25078 - 11905: 0x91D0,
+ 25079 - 11905: 0x91D1,
+ 25080 - 11905: 0x91D2,
+ 25081 - 11905: 0x91D3,
+ 25082 - 11905: 0x91D4,
+ 25083 - 11905: 0x91D5,
+ 25084 - 11905: 0x91D6,
+ 25085 - 11905: 0x91D7,
+ 25086 - 11905: 0x91D8,
+ 25087 - 11905: 0xDCB2,
+ 25088 - 11905: 0x91D9,
+ 25089 - 11905: 0x91DA,
+ 25090 - 11905: 0x91DB,
+ 25091 - 11905: 0x91DC,
+ 25092 - 11905: 0x91DD,
+ 25093 - 11905: 0x91DE,
+ 25094 - 11905: 0xEDB0,
+ 25095 - 11905: 0x91DF,
+ 25096 - 11905: 0xB8EA,
+ 25097 - 11905: 0x91E0,
+ 25098 - 11905: 0xCEEC,
+ 25099 - 11905: 0xEAA7,
+ 25100 - 11905: 0xD0E7,
+ 25101 - 11905: 0xCAF9,
+ 25102 - 11905: 0xC8D6,
+ 25103 - 11905: 0xCFB7,
+ 25104 - 11905: 0xB3C9,
+ 25105 - 11905: 0xCED2,
+ 25106 - 11905: 0xBDE4,
+ 25107 - 11905: 0x91E1,
+ 25108 - 11905: 0x91E2,
+ 25109 - 11905: 0xE3DE,
+ 25110 - 11905: 0xBBF2,
+ 25111 - 11905: 0xEAA8,
+ 25112 - 11905: 0xD5BD,
+ 25113 - 11905: 0x91E3,
+ 25114 - 11905: 0xC6DD,
+ 25115 - 11905: 0xEAA9,
+ 25116 - 11905: 0x91E4,
+ 25117 - 11905: 0x91E5,
+ 25118 - 11905: 0x91E6,
+ 25119 - 11905: 0xEAAA,
+ 25120 - 11905: 0x91E7,
+ 25121 - 11905: 0xEAAC,
+ 25122 - 11905: 0xEAAB,
+ 25123 - 11905: 0x91E8,
+ 25124 - 11905: 0xEAAE,
+ 25125 - 11905: 0xEAAD,
+ 25126 - 11905: 0x91E9,
+ 25127 - 11905: 0x91EA,
+ 25128 - 11905: 0x91EB,
+ 25129 - 11905: 0x91EC,
+ 25130 - 11905: 0xBDD8,
+ 25131 - 11905: 0x91ED,
+ 25132 - 11905: 0xEAAF,
+ 25133 - 11905: 0x91EE,
+ 25134 - 11905: 0xC2BE,
+ 25135 - 11905: 0x91EF,
+ 25136 - 11905: 0x91F0,
+ 25137 - 11905: 0x91F1,
+ 25138 - 11905: 0x91F2,
+ 25139 - 11905: 0xB4C1,
+ 25140 - 11905: 0xB4F7,
+ 25141 - 11905: 0x91F3,
+ 25142 - 11905: 0x91F4,
+ 25143 - 11905: 0xBBA7,
+ 25144 - 11905: 0x91F5,
+ 25145 - 11905: 0x91F6,
+ 25146 - 11905: 0x91F7,
+ 25147 - 11905: 0x91F8,
+ 25148 - 11905: 0x91F9,
+ 25149 - 11905: 0xECE6,
+ 25150 - 11905: 0xECE5,
+ 25151 - 11905: 0xB7BF,
+ 25152 - 11905: 0xCBF9,
+ 25153 - 11905: 0xB1E2,
+ 25154 - 11905: 0x91FA,
+ 25155 - 11905: 0xECE7,
+ 25156 - 11905: 0x91FB,
+ 25157 - 11905: 0x91FC,
+ 25158 - 11905: 0x91FD,
+ 25159 - 11905: 0xC9C8,
+ 25160 - 11905: 0xECE8,
+ 25161 - 11905: 0xECE9,
+ 25162 - 11905: 0x91FE,
+ 25163 - 11905: 0xCAD6,
+ 25164 - 11905: 0xDED0,
+ 25165 - 11905: 0xB2C5,
+ 25166 - 11905: 0xD4FA,
+ 25167 - 11905: 0x9240,
+ 25168 - 11905: 0x9241,
+ 25169 - 11905: 0xC6CB,
+ 25170 - 11905: 0xB0C7,
+ 25171 - 11905: 0xB4F2,
+ 25172 - 11905: 0xC8D3,
+ 25173 - 11905: 0x9242,
+ 25174 - 11905: 0x9243,
+ 25175 - 11905: 0x9244,
+ 25176 - 11905: 0xCDD0,
+ 25177 - 11905: 0x9245,
+ 25178 - 11905: 0x9246,
+ 25179 - 11905: 0xBFB8,
+ 25180 - 11905: 0x9247,
+ 25181 - 11905: 0x9248,
+ 25182 - 11905: 0x9249,
+ 25183 - 11905: 0x924A,
+ 25184 - 11905: 0x924B,
+ 25185 - 11905: 0x924C,
+ 25186 - 11905: 0x924D,
+ 25187 - 11905: 0xBFDB,
+ 25188 - 11905: 0x924E,
+ 25189 - 11905: 0x924F,
+ 25190 - 11905: 0xC7A4,
+ 25191 - 11905: 0xD6B4,
+ 25192 - 11905: 0x9250,
+ 25193 - 11905: 0xC0A9,
+ 25194 - 11905: 0xDED1,
+ 25195 - 11905: 0xC9A8,
+ 25196 - 11905: 0xD1EF,
+ 25197 - 11905: 0xC5A4,
+ 25198 - 11905: 0xB0E7,
+ 25199 - 11905: 0xB3B6,
+ 25200 - 11905: 0xC8C5,
+ 25201 - 11905: 0x9251,
+ 25202 - 11905: 0x9252,
+ 25203 - 11905: 0xB0E2,
+ 25204 - 11905: 0x9253,
+ 25205 - 11905: 0x9254,
+ 25206 - 11905: 0xB7F6,
+ 25207 - 11905: 0x9255,
+ 25208 - 11905: 0x9256,
+ 25209 - 11905: 0xC5FA,
+ 25210 - 11905: 0x9257,
+ 25211 - 11905: 0x9258,
+ 25212 - 11905: 0xB6F3,
+ 25213 - 11905: 0x9259,
+ 25214 - 11905: 0xD5D2,
+ 25215 - 11905: 0xB3D0,
+ 25216 - 11905: 0xBCBC,
+ 25217 - 11905: 0x925A,
+ 25218 - 11905: 0x925B,
+ 25219 - 11905: 0x925C,
+ 25220 - 11905: 0xB3AD,
+ 25221 - 11905: 0x925D,
+ 25222 - 11905: 0x925E,
+ 25223 - 11905: 0x925F,
+ 25224 - 11905: 0x9260,
+ 25225 - 11905: 0xBEF1,
+ 25226 - 11905: 0xB0D1,
+ 25227 - 11905: 0x9261,
+ 25228 - 11905: 0x9262,
+ 25229 - 11905: 0x9263,
+ 25230 - 11905: 0x9264,
+ 25231 - 11905: 0x9265,
+ 25232 - 11905: 0x9266,
+ 25233 - 11905: 0xD2D6,
+ 25234 - 11905: 0xCAE3,
+ 25235 - 11905: 0xD7A5,
+ 25236 - 11905: 0x9267,
+ 25237 - 11905: 0xCDB6,
+ 25238 - 11905: 0xB6B6,
+ 25239 - 11905: 0xBFB9,
+ 25240 - 11905: 0xD5DB,
+ 25241 - 11905: 0x9268,
+ 25242 - 11905: 0xB8A7,
+ 25243 - 11905: 0xC5D7,
+ 25244 - 11905: 0x9269,
+ 25245 - 11905: 0x926A,
+ 25246 - 11905: 0x926B,
+ 25247 - 11905: 0xDED2,
+ 25248 - 11905: 0xBFD9,
+ 25249 - 11905: 0xC2D5,
+ 25250 - 11905: 0xC7C0,
+ 25251 - 11905: 0x926C,
+ 25252 - 11905: 0xBBA4,
+ 25253 - 11905: 0xB1A8,
+ 25254 - 11905: 0x926D,
+ 25255 - 11905: 0x926E,
+ 25256 - 11905: 0xC5EA,
+ 25257 - 11905: 0x926F,
+ 25258 - 11905: 0x9270,
+ 25259 - 11905: 0xC5FB,
+ 25260 - 11905: 0xCCA7,
+ 25261 - 11905: 0x9271,
+ 25262 - 11905: 0x9272,
+ 25263 - 11905: 0x9273,
+ 25264 - 11905: 0x9274,
+ 25265 - 11905: 0xB1A7,
+ 25266 - 11905: 0x9275,
+ 25267 - 11905: 0x9276,
+ 25268 - 11905: 0x9277,
+ 25269 - 11905: 0xB5D6,
+ 25270 - 11905: 0x9278,
+ 25271 - 11905: 0x9279,
+ 25272 - 11905: 0x927A,
+ 25273 - 11905: 0xC4A8,
+ 25274 - 11905: 0x927B,
+ 25275 - 11905: 0xDED3,
+ 25276 - 11905: 0xD1BA,
+ 25277 - 11905: 0xB3E9,
+ 25278 - 11905: 0x927C,
+ 25279 - 11905: 0xC3F2,
+ 25280 - 11905: 0x927D,
+ 25281 - 11905: 0x927E,
+ 25282 - 11905: 0xB7F7,
+ 25283 - 11905: 0x9280,
+ 25284 - 11905: 0xD6F4,
+ 25285 - 11905: 0xB5A3,
+ 25286 - 11905: 0xB2F0,
+ 25287 - 11905: 0xC4B4,
+ 25288 - 11905: 0xC4E9,
+ 25289 - 11905: 0xC0AD,
+ 25290 - 11905: 0xDED4,
+ 25291 - 11905: 0x9281,
+ 25292 - 11905: 0xB0E8,
+ 25293 - 11905: 0xC5C4,
+ 25294 - 11905: 0xC1E0,
+ 25295 - 11905: 0x9282,
+ 25296 - 11905: 0xB9D5,
+ 25297 - 11905: 0x9283,
+ 25298 - 11905: 0xBEDC,
+ 25299 - 11905: 0xCDD8,
+ 25300 - 11905: 0xB0CE,
+ 25301 - 11905: 0x9284,
+ 25302 - 11905: 0xCDCF,
+ 25303 - 11905: 0xDED6,
+ 25304 - 11905: 0xBED0,
+ 25305 - 11905: 0xD7BE,
+ 25306 - 11905: 0xDED5,
+ 25307 - 11905: 0xD5D0,
+ 25308 - 11905: 0xB0DD,
+ 25309 - 11905: 0x9285,
+ 25310 - 11905: 0x9286,
+ 25311 - 11905: 0xC4E2,
+ 25312 - 11905: 0x9287,
+ 25313 - 11905: 0x9288,
+ 25314 - 11905: 0xC2A3,
+ 25315 - 11905: 0xBCF0,
+ 25316 - 11905: 0x9289,
+ 25317 - 11905: 0xD3B5,
+ 25318 - 11905: 0xC0B9,
+ 25319 - 11905: 0xC5A1,
+ 25320 - 11905: 0xB2A6,
+ 25321 - 11905: 0xD4F1,
+ 25322 - 11905: 0x928A,
+ 25323 - 11905: 0x928B,
+ 25324 - 11905: 0xC0A8,
+ 25325 - 11905: 0xCAC3,
+ 25326 - 11905: 0xDED7,
+ 25327 - 11905: 0xD5FC,
+ 25328 - 11905: 0x928C,
+ 25329 - 11905: 0xB9B0,
+ 25330 - 11905: 0x928D,
+ 25331 - 11905: 0xC8AD,
+ 25332 - 11905: 0xCBA9,
+ 25333 - 11905: 0x928E,
+ 25334 - 11905: 0xDED9,
+ 25335 - 11905: 0xBFBD,
+ 25336 - 11905: 0x928F,
+ 25337 - 11905: 0x9290,
+ 25338 - 11905: 0x9291,
+ 25339 - 11905: 0x9292,
+ 25340 - 11905: 0xC6B4,
+ 25341 - 11905: 0xD7A7,
+ 25342 - 11905: 0xCAB0,
+ 25343 - 11905: 0xC4C3,
+ 25344 - 11905: 0x9293,
+ 25345 - 11905: 0xB3D6,
+ 25346 - 11905: 0xB9D2,
+ 25347 - 11905: 0x9294,
+ 25348 - 11905: 0x9295,
+ 25349 - 11905: 0x9296,
+ 25350 - 11905: 0x9297,
+ 25351 - 11905: 0xD6B8,
+ 25352 - 11905: 0xEAFC,
+ 25353 - 11905: 0xB0B4,
+ 25354 - 11905: 0x9298,
+ 25355 - 11905: 0x9299,
+ 25356 - 11905: 0x929A,
+ 25357 - 11905: 0x929B,
+ 25358 - 11905: 0xBFE6,
+ 25359 - 11905: 0x929C,
+ 25360 - 11905: 0x929D,
+ 25361 - 11905: 0xCCF4,
+ 25362 - 11905: 0x929E,
+ 25363 - 11905: 0x929F,
+ 25364 - 11905: 0x92A0,
+ 25365 - 11905: 0x92A1,
+ 25366 - 11905: 0xCDDA,
+ 25367 - 11905: 0x92A2,
+ 25368 - 11905: 0x92A3,
+ 25369 - 11905: 0x92A4,
+ 25370 - 11905: 0xD6BF,
+ 25371 - 11905: 0xC2CE,
+ 25372 - 11905: 0x92A5,
+ 25373 - 11905: 0xCECE,
+ 25374 - 11905: 0xCCA2,
+ 25375 - 11905: 0xD0AE,
+ 25376 - 11905: 0xC4D3,
+ 25377 - 11905: 0xB5B2,
+ 25378 - 11905: 0xDED8,
+ 25379 - 11905: 0xD5F5,
+ 25380 - 11905: 0xBCB7,
+ 25381 - 11905: 0xBBD3,
+ 25382 - 11905: 0x92A6,
+ 25383 - 11905: 0x92A7,
+ 25384 - 11905: 0xB0A4,
+ 25385 - 11905: 0x92A8,
+ 25386 - 11905: 0xC5B2,
+ 25387 - 11905: 0xB4EC,
+ 25388 - 11905: 0x92A9,
+ 25389 - 11905: 0x92AA,
+ 25390 - 11905: 0x92AB,
+ 25391 - 11905: 0xD5F1,
+ 25392 - 11905: 0x92AC,
+ 25393 - 11905: 0x92AD,
+ 25394 - 11905: 0xEAFD,
+ 25395 - 11905: 0x92AE,
+ 25396 - 11905: 0x92AF,
+ 25397 - 11905: 0x92B0,
+ 25398 - 11905: 0x92B1,
+ 25399 - 11905: 0x92B2,
+ 25400 - 11905: 0x92B3,
+ 25401 - 11905: 0xDEDA,
+ 25402 - 11905: 0xCDA6,
+ 25403 - 11905: 0x92B4,
+ 25404 - 11905: 0x92B5,
+ 25405 - 11905: 0xCDEC,
+ 25406 - 11905: 0x92B6,
+ 25407 - 11905: 0x92B7,
+ 25408 - 11905: 0x92B8,
+ 25409 - 11905: 0x92B9,
+ 25410 - 11905: 0xCEE6,
+ 25411 - 11905: 0xDEDC,
+ 25412 - 11905: 0x92BA,
+ 25413 - 11905: 0xCDB1,
+ 25414 - 11905: 0xC0A6,
+ 25415 - 11905: 0x92BB,
+ 25416 - 11905: 0x92BC,
+ 25417 - 11905: 0xD7BD,
+ 25418 - 11905: 0x92BD,
+ 25419 - 11905: 0xDEDB,
+ 25420 - 11905: 0xB0C6,
+ 25421 - 11905: 0xBAB4,
+ 25422 - 11905: 0xC9D3,
+ 25423 - 11905: 0xC4F3,
+ 25424 - 11905: 0xBEE8,
+ 25425 - 11905: 0x92BE,
+ 25426 - 11905: 0x92BF,
+ 25427 - 11905: 0x92C0,
+ 25428 - 11905: 0x92C1,
+ 25429 - 11905: 0xB2B6,
+ 25430 - 11905: 0x92C2,
+ 25431 - 11905: 0x92C3,
+ 25432 - 11905: 0x92C4,
+ 25433 - 11905: 0x92C5,
+ 25434 - 11905: 0x92C6,
+ 25435 - 11905: 0x92C7,
+ 25436 - 11905: 0x92C8,
+ 25437 - 11905: 0x92C9,
+ 25438 - 11905: 0xC0CC,
+ 25439 - 11905: 0xCBF0,
+ 25440 - 11905: 0x92CA,
+ 25441 - 11905: 0xBCF1,
+ 25442 - 11905: 0xBBBB,
+ 25443 - 11905: 0xB5B7,
+ 25444 - 11905: 0x92CB,
+ 25445 - 11905: 0x92CC,
+ 25446 - 11905: 0x92CD,
+ 25447 - 11905: 0xC5F5,
+ 25448 - 11905: 0x92CE,
+ 25449 - 11905: 0xDEE6,
+ 25450 - 11905: 0x92CF,
+ 25451 - 11905: 0x92D0,
+ 25452 - 11905: 0x92D1,
+ 25453 - 11905: 0xDEE3,
+ 25454 - 11905: 0xBEDD,
+ 25455 - 11905: 0x92D2,
+ 25456 - 11905: 0x92D3,
+ 25457 - 11905: 0xDEDF,
+ 25458 - 11905: 0x92D4,
+ 25459 - 11905: 0x92D5,
+ 25460 - 11905: 0x92D6,
+ 25461 - 11905: 0x92D7,
+ 25462 - 11905: 0xB4B7,
+ 25463 - 11905: 0xBDDD,
+ 25464 - 11905: 0x92D8,
+ 25465 - 11905: 0x92D9,
+ 25466 - 11905: 0xDEE0,
+ 25467 - 11905: 0xC4ED,
+ 25468 - 11905: 0x92DA,
+ 25469 - 11905: 0x92DB,
+ 25470 - 11905: 0x92DC,
+ 25471 - 11905: 0x92DD,
+ 25472 - 11905: 0xCFC6,
+ 25473 - 11905: 0x92DE,
+ 25474 - 11905: 0xB5E0,
+ 25475 - 11905: 0x92DF,
+ 25476 - 11905: 0x92E0,
+ 25477 - 11905: 0x92E1,
+ 25478 - 11905: 0x92E2,
+ 25479 - 11905: 0xB6DE,
+ 25480 - 11905: 0xCADA,
+ 25481 - 11905: 0xB5F4,
+ 25482 - 11905: 0xDEE5,
+ 25483 - 11905: 0x92E3,
+ 25484 - 11905: 0xD5C6,
+ 25485 - 11905: 0x92E4,
+ 25486 - 11905: 0xDEE1,
+ 25487 - 11905: 0xCCCD,
+ 25488 - 11905: 0xC6FE,
+ 25489 - 11905: 0x92E5,
+ 25490 - 11905: 0xC5C5,
+ 25491 - 11905: 0x92E6,
+ 25492 - 11905: 0x92E7,
+ 25493 - 11905: 0x92E8,
+ 25494 - 11905: 0xD2B4,
+ 25495 - 11905: 0x92E9,
+ 25496 - 11905: 0xBEF2,
+ 25497 - 11905: 0x92EA,
+ 25498 - 11905: 0x92EB,
+ 25499 - 11905: 0x92EC,
+ 25500 - 11905: 0x92ED,
+ 25501 - 11905: 0x92EE,
+ 25502 - 11905: 0x92EF,
+ 25503 - 11905: 0x92F0,
+ 25504 - 11905: 0xC2D3,
+ 25505 - 11905: 0x92F1,
+ 25506 - 11905: 0xCCBD,
+ 25507 - 11905: 0xB3B8,
+ 25508 - 11905: 0x92F2,
+ 25509 - 11905: 0xBDD3,
+ 25510 - 11905: 0x92F3,
+ 25511 - 11905: 0xBFD8,
+ 25512 - 11905: 0xCDC6,
+ 25513 - 11905: 0xD1DA,
+ 25514 - 11905: 0xB4EB,
+ 25515 - 11905: 0x92F4,
+ 25516 - 11905: 0xDEE4,
+ 25517 - 11905: 0xDEDD,
+ 25518 - 11905: 0xDEE7,
+ 25519 - 11905: 0x92F5,
+ 25520 - 11905: 0xEAFE,
+ 25521 - 11905: 0x92F6,
+ 25522 - 11905: 0x92F7,
+ 25523 - 11905: 0xC2B0,
+ 25524 - 11905: 0xDEE2,
+ 25525 - 11905: 0x92F8,
+ 25526 - 11905: 0x92F9,
+ 25527 - 11905: 0xD6C0,
+ 25528 - 11905: 0xB5A7,
+ 25529 - 11905: 0x92FA,
+ 25530 - 11905: 0xB2F4,
+ 25531 - 11905: 0x92FB,
+ 25532 - 11905: 0xDEE8,
+ 25533 - 11905: 0x92FC,
+ 25534 - 11905: 0xDEF2,
+ 25535 - 11905: 0x92FD,
+ 25536 - 11905: 0x92FE,
+ 25537 - 11905: 0x9340,
+ 25538 - 11905: 0x9341,
+ 25539 - 11905: 0x9342,
+ 25540 - 11905: 0xDEED,
+ 25541 - 11905: 0x9343,
+ 25542 - 11905: 0xDEF1,
+ 25543 - 11905: 0x9344,
+ 25544 - 11905: 0x9345,
+ 25545 - 11905: 0xC8E0,
+ 25546 - 11905: 0x9346,
+ 25547 - 11905: 0x9347,
+ 25548 - 11905: 0x9348,
+ 25549 - 11905: 0xD7E1,
+ 25550 - 11905: 0xDEEF,
+ 25551 - 11905: 0xC3E8,
+ 25552 - 11905: 0xCCE1,
+ 25553 - 11905: 0x9349,
+ 25554 - 11905: 0xB2E5,
+ 25555 - 11905: 0x934A,
+ 25556 - 11905: 0x934B,
+ 25557 - 11905: 0x934C,
+ 25558 - 11905: 0xD2BE,
+ 25559 - 11905: 0x934D,
+ 25560 - 11905: 0x934E,
+ 25561 - 11905: 0x934F,
+ 25562 - 11905: 0x9350,
+ 25563 - 11905: 0x9351,
+ 25564 - 11905: 0x9352,
+ 25565 - 11905: 0x9353,
+ 25566 - 11905: 0xDEEE,
+ 25567 - 11905: 0x9354,
+ 25568 - 11905: 0xDEEB,
+ 25569 - 11905: 0xCED5,
+ 25570 - 11905: 0x9355,
+ 25571 - 11905: 0xB4A7,
+ 25572 - 11905: 0x9356,
+ 25573 - 11905: 0x9357,
+ 25574 - 11905: 0x9358,
+ 25575 - 11905: 0x9359,
+ 25576 - 11905: 0x935A,
+ 25577 - 11905: 0xBFAB,
+ 25578 - 11905: 0xBEBE,
+ 25579 - 11905: 0x935B,
+ 25580 - 11905: 0x935C,
+ 25581 - 11905: 0xBDD2,
+ 25582 - 11905: 0x935D,
+ 25583 - 11905: 0x935E,
+ 25584 - 11905: 0x935F,
+ 25585 - 11905: 0x9360,
+ 25586 - 11905: 0xDEE9,
+ 25587 - 11905: 0x9361,
+ 25588 - 11905: 0xD4AE,
+ 25589 - 11905: 0x9362,
+ 25590 - 11905: 0xDEDE,
+ 25591 - 11905: 0x9363,
+ 25592 - 11905: 0xDEEA,
+ 25593 - 11905: 0x9364,
+ 25594 - 11905: 0x9365,
+ 25595 - 11905: 0x9366,
+ 25596 - 11905: 0x9367,
+ 25597 - 11905: 0xC0BF,
+ 25598 - 11905: 0x9368,
+ 25599 - 11905: 0xDEEC,
+ 25600 - 11905: 0xB2F3,
+ 25601 - 11905: 0xB8E9,
+ 25602 - 11905: 0xC2A7,
+ 25603 - 11905: 0x9369,
+ 25604 - 11905: 0x936A,
+ 25605 - 11905: 0xBDC1,
+ 25606 - 11905: 0x936B,
+ 25607 - 11905: 0x936C,
+ 25608 - 11905: 0x936D,
+ 25609 - 11905: 0x936E,
+ 25610 - 11905: 0x936F,
+ 25611 - 11905: 0xDEF5,
+ 25612 - 11905: 0xDEF8,
+ 25613 - 11905: 0x9370,
+ 25614 - 11905: 0x9371,
+ 25615 - 11905: 0xB2AB,
+ 25616 - 11905: 0xB4A4,
+ 25617 - 11905: 0x9372,
+ 25618 - 11905: 0x9373,
+ 25619 - 11905: 0xB4EA,
+ 25620 - 11905: 0xC9A6,
+ 25621 - 11905: 0x9374,
+ 25622 - 11905: 0x9375,
+ 25623 - 11905: 0x9376,
+ 25624 - 11905: 0x9377,
+ 25625 - 11905: 0x9378,
+ 25626 - 11905: 0x9379,
+ 25627 - 11905: 0xDEF6,
+ 25628 - 11905: 0xCBD1,
+ 25629 - 11905: 0x937A,
+ 25630 - 11905: 0xB8E3,
+ 25631 - 11905: 0x937B,
+ 25632 - 11905: 0xDEF7,
+ 25633 - 11905: 0xDEFA,
+ 25634 - 11905: 0x937C,
+ 25635 - 11905: 0x937D,
+ 25636 - 11905: 0x937E,
+ 25637 - 11905: 0x9380,
+ 25638 - 11905: 0xDEF9,
+ 25639 - 11905: 0x9381,
+ 25640 - 11905: 0x9382,
+ 25641 - 11905: 0x9383,
+ 25642 - 11905: 0xCCC2,
+ 25643 - 11905: 0x9384,
+ 25644 - 11905: 0xB0E1,
+ 25645 - 11905: 0xB4EE,
+ 25646 - 11905: 0x9385,
+ 25647 - 11905: 0x9386,
+ 25648 - 11905: 0x9387,
+ 25649 - 11905: 0x9388,
+ 25650 - 11905: 0x9389,
+ 25651 - 11905: 0x938A,
+ 25652 - 11905: 0xE5BA,
+ 25653 - 11905: 0x938B,
+ 25654 - 11905: 0x938C,
+ 25655 - 11905: 0x938D,
+ 25656 - 11905: 0x938E,
+ 25657 - 11905: 0x938F,
+ 25658 - 11905: 0xD0AF,
+ 25659 - 11905: 0x9390,
+ 25660 - 11905: 0x9391,
+ 25661 - 11905: 0xB2EB,
+ 25662 - 11905: 0x9392,
+ 25663 - 11905: 0xEBA1,
+ 25664 - 11905: 0x9393,
+ 25665 - 11905: 0xDEF4,
+ 25666 - 11905: 0x9394,
+ 25667 - 11905: 0x9395,
+ 25668 - 11905: 0xC9E3,
+ 25669 - 11905: 0xDEF3,
+ 25670 - 11905: 0xB0DA,
+ 25671 - 11905: 0xD2A1,
+ 25672 - 11905: 0xB1F7,
+ 25673 - 11905: 0x9396,
+ 25674 - 11905: 0xCCAF,
+ 25675 - 11905: 0x9397,
+ 25676 - 11905: 0x9398,
+ 25677 - 11905: 0x9399,
+ 25678 - 11905: 0x939A,
+ 25679 - 11905: 0x939B,
+ 25680 - 11905: 0x939C,
+ 25681 - 11905: 0x939D,
+ 25682 - 11905: 0xDEF0,
+ 25683 - 11905: 0x939E,
+ 25684 - 11905: 0xCBA4,
+ 25685 - 11905: 0x939F,
+ 25686 - 11905: 0x93A0,
+ 25687 - 11905: 0x93A1,
+ 25688 - 11905: 0xD5AA,
+ 25689 - 11905: 0x93A2,
+ 25690 - 11905: 0x93A3,
+ 25691 - 11905: 0x93A4,
+ 25692 - 11905: 0x93A5,
+ 25693 - 11905: 0x93A6,
+ 25694 - 11905: 0xDEFB,
+ 25695 - 11905: 0x93A7,
+ 25696 - 11905: 0x93A8,
+ 25697 - 11905: 0x93A9,
+ 25698 - 11905: 0x93AA,
+ 25699 - 11905: 0x93AB,
+ 25700 - 11905: 0x93AC,
+ 25701 - 11905: 0x93AD,
+ 25702 - 11905: 0x93AE,
+ 25703 - 11905: 0xB4DD,
+ 25704 - 11905: 0x93AF,
+ 25705 - 11905: 0xC4A6,
+ 25706 - 11905: 0x93B0,
+ 25707 - 11905: 0x93B1,
+ 25708 - 11905: 0x93B2,
+ 25709 - 11905: 0xDEFD,
+ 25710 - 11905: 0x93B3,
+ 25711 - 11905: 0x93B4,
+ 25712 - 11905: 0x93B5,
+ 25713 - 11905: 0x93B6,
+ 25714 - 11905: 0x93B7,
+ 25715 - 11905: 0x93B8,
+ 25716 - 11905: 0x93B9,
+ 25717 - 11905: 0x93BA,
+ 25718 - 11905: 0x93BB,
+ 25719 - 11905: 0x93BC,
+ 25720 - 11905: 0xC3FE,
+ 25721 - 11905: 0xC4A1,
+ 25722 - 11905: 0xDFA1,
+ 25723 - 11905: 0x93BD,
+ 25724 - 11905: 0x93BE,
+ 25725 - 11905: 0x93BF,
+ 25726 - 11905: 0x93C0,
+ 25727 - 11905: 0x93C1,
+ 25728 - 11905: 0x93C2,
+ 25729 - 11905: 0x93C3,
+ 25730 - 11905: 0xC1CC,
+ 25731 - 11905: 0x93C4,
+ 25732 - 11905: 0xDEFC,
+ 25733 - 11905: 0xBEEF,
+ 25734 - 11905: 0x93C5,
+ 25735 - 11905: 0xC6B2,
+ 25736 - 11905: 0x93C6,
+ 25737 - 11905: 0x93C7,
+ 25738 - 11905: 0x93C8,
+ 25739 - 11905: 0x93C9,
+ 25740 - 11905: 0x93CA,
+ 25741 - 11905: 0x93CB,
+ 25742 - 11905: 0x93CC,
+ 25743 - 11905: 0x93CD,
+ 25744 - 11905: 0x93CE,
+ 25745 - 11905: 0xB3C5,
+ 25746 - 11905: 0xC8F6,
+ 25747 - 11905: 0x93CF,
+ 25748 - 11905: 0x93D0,
+ 25749 - 11905: 0xCBBA,
+ 25750 - 11905: 0xDEFE,
+ 25751 - 11905: 0x93D1,
+ 25752 - 11905: 0x93D2,
+ 25753 - 11905: 0xDFA4,
+ 25754 - 11905: 0x93D3,
+ 25755 - 11905: 0x93D4,
+ 25756 - 11905: 0x93D5,
+ 25757 - 11905: 0x93D6,
+ 25758 - 11905: 0xD7B2,
+ 25759 - 11905: 0x93D7,
+ 25760 - 11905: 0x93D8,
+ 25761 - 11905: 0x93D9,
+ 25762 - 11905: 0x93DA,
+ 25763 - 11905: 0x93DB,
+ 25764 - 11905: 0xB3B7,
+ 25765 - 11905: 0x93DC,
+ 25766 - 11905: 0x93DD,
+ 25767 - 11905: 0x93DE,
+ 25768 - 11905: 0x93DF,
+ 25769 - 11905: 0xC1C3,
+ 25770 - 11905: 0x93E0,
+ 25771 - 11905: 0x93E1,
+ 25772 - 11905: 0xC7CB,
+ 25773 - 11905: 0xB2A5,
+ 25774 - 11905: 0xB4E9,
+ 25775 - 11905: 0x93E2,
+ 25776 - 11905: 0xD7AB,
+ 25777 - 11905: 0x93E3,
+ 25778 - 11905: 0x93E4,
+ 25779 - 11905: 0x93E5,
+ 25780 - 11905: 0x93E6,
+ 25781 - 11905: 0xC4EC,
+ 25782 - 11905: 0x93E7,
+ 25783 - 11905: 0xDFA2,
+ 25784 - 11905: 0xDFA3,
+ 25785 - 11905: 0x93E8,
+ 25786 - 11905: 0xDFA5,
+ 25787 - 11905: 0x93E9,
+ 25788 - 11905: 0xBAB3,
+ 25789 - 11905: 0x93EA,
+ 25790 - 11905: 0x93EB,
+ 25791 - 11905: 0x93EC,
+ 25792 - 11905: 0xDFA6,
+ 25793 - 11905: 0x93ED,
+ 25794 - 11905: 0xC0DE,
+ 25795 - 11905: 0x93EE,
+ 25796 - 11905: 0x93EF,
+ 25797 - 11905: 0xC9C3,
+ 25798 - 11905: 0x93F0,
+ 25799 - 11905: 0x93F1,
+ 25800 - 11905: 0x93F2,
+ 25801 - 11905: 0x93F3,
+ 25802 - 11905: 0x93F4,
+ 25803 - 11905: 0x93F5,
+ 25804 - 11905: 0x93F6,
+ 25805 - 11905: 0xB2D9,
+ 25806 - 11905: 0xC7E6,
+ 25807 - 11905: 0x93F7,
+ 25808 - 11905: 0xDFA7,
+ 25809 - 11905: 0x93F8,
+ 25810 - 11905: 0xC7DC,
+ 25811 - 11905: 0x93F9,
+ 25812 - 11905: 0x93FA,
+ 25813 - 11905: 0x93FB,
+ 25814 - 11905: 0x93FC,
+ 25815 - 11905: 0xDFA8,
+ 25816 - 11905: 0xEBA2,
+ 25817 - 11905: 0x93FD,
+ 25818 - 11905: 0x93FE,
+ 25819 - 11905: 0x9440,
+ 25820 - 11905: 0x9441,
+ 25821 - 11905: 0x9442,
+ 25822 - 11905: 0xCBD3,
+ 25823 - 11905: 0x9443,
+ 25824 - 11905: 0x9444,
+ 25825 - 11905: 0x9445,
+ 25826 - 11905: 0xDFAA,
+ 25827 - 11905: 0x9446,
+ 25828 - 11905: 0xDFA9,
+ 25829 - 11905: 0x9447,
+ 25830 - 11905: 0xB2C1,
+ 25831 - 11905: 0x9448,
+ 25832 - 11905: 0x9449,
+ 25833 - 11905: 0x944A,
+ 25834 - 11905: 0x944B,
+ 25835 - 11905: 0x944C,
+ 25836 - 11905: 0x944D,
+ 25837 - 11905: 0x944E,
+ 25838 - 11905: 0x944F,
+ 25839 - 11905: 0x9450,
+ 25840 - 11905: 0x9451,
+ 25841 - 11905: 0x9452,
+ 25842 - 11905: 0x9453,
+ 25843 - 11905: 0x9454,
+ 25844 - 11905: 0x9455,
+ 25845 - 11905: 0x9456,
+ 25846 - 11905: 0x9457,
+ 25847 - 11905: 0x9458,
+ 25848 - 11905: 0x9459,
+ 25849 - 11905: 0x945A,
+ 25850 - 11905: 0x945B,
+ 25851 - 11905: 0x945C,
+ 25852 - 11905: 0x945D,
+ 25853 - 11905: 0x945E,
+ 25854 - 11905: 0x945F,
+ 25855 - 11905: 0x9460,
+ 25856 - 11905: 0xC5CA,
+ 25857 - 11905: 0x9461,
+ 25858 - 11905: 0x9462,
+ 25859 - 11905: 0x9463,
+ 25860 - 11905: 0x9464,
+ 25861 - 11905: 0x9465,
+ 25862 - 11905: 0x9466,
+ 25863 - 11905: 0x9467,
+ 25864 - 11905: 0x9468,
+ 25865 - 11905: 0xDFAB,
+ 25866 - 11905: 0x9469,
+ 25867 - 11905: 0x946A,
+ 25868 - 11905: 0x946B,
+ 25869 - 11905: 0x946C,
+ 25870 - 11905: 0x946D,
+ 25871 - 11905: 0x946E,
+ 25872 - 11905: 0x946F,
+ 25873 - 11905: 0x9470,
+ 25874 - 11905: 0xD4DC,
+ 25875 - 11905: 0x9471,
+ 25876 - 11905: 0x9472,
+ 25877 - 11905: 0x9473,
+ 25878 - 11905: 0x9474,
+ 25879 - 11905: 0x9475,
+ 25880 - 11905: 0xC8C1,
+ 25881 - 11905: 0x9476,
+ 25882 - 11905: 0x9477,
+ 25883 - 11905: 0x9478,
+ 25884 - 11905: 0x9479,
+ 25885 - 11905: 0x947A,
+ 25886 - 11905: 0x947B,
+ 25887 - 11905: 0x947C,
+ 25888 - 11905: 0x947D,
+ 25889 - 11905: 0x947E,
+ 25890 - 11905: 0x9480,
+ 25891 - 11905: 0x9481,
+ 25892 - 11905: 0x9482,
+ 25893 - 11905: 0xDFAC,
+ 25894 - 11905: 0x9483,
+ 25895 - 11905: 0x9484,
+ 25896 - 11905: 0x9485,
+ 25897 - 11905: 0x9486,
+ 25898 - 11905: 0x9487,
+ 25899 - 11905: 0xBEF0,
+ 25900 - 11905: 0x9488,
+ 25901 - 11905: 0x9489,
+ 25902 - 11905: 0xDFAD,
+ 25903 - 11905: 0xD6A7,
+ 25904 - 11905: 0x948A,
+ 25905 - 11905: 0x948B,
+ 25906 - 11905: 0x948C,
+ 25907 - 11905: 0x948D,
+ 25908 - 11905: 0xEAB7,
+ 25909 - 11905: 0xEBB6,
+ 25910 - 11905: 0xCAD5,
+ 25911 - 11905: 0x948E,
+ 25912 - 11905: 0xD8FC,
+ 25913 - 11905: 0xB8C4,
+ 25914 - 11905: 0x948F,
+ 25915 - 11905: 0xB9A5,
+ 25916 - 11905: 0x9490,
+ 25917 - 11905: 0x9491,
+ 25918 - 11905: 0xB7C5,
+ 25919 - 11905: 0xD5FE,
+ 25920 - 11905: 0x9492,
+ 25921 - 11905: 0x9493,
+ 25922 - 11905: 0x9494,
+ 25923 - 11905: 0x9495,
+ 25924 - 11905: 0x9496,
+ 25925 - 11905: 0xB9CA,
+ 25926 - 11905: 0x9497,
+ 25927 - 11905: 0x9498,
+ 25928 - 11905: 0xD0A7,
+ 25929 - 11905: 0xF4CD,
+ 25930 - 11905: 0x9499,
+ 25931 - 11905: 0x949A,
+ 25932 - 11905: 0xB5D0,
+ 25933 - 11905: 0x949B,
+ 25934 - 11905: 0x949C,
+ 25935 - 11905: 0xC3F4,
+ 25936 - 11905: 0x949D,
+ 25937 - 11905: 0xBEC8,
+ 25938 - 11905: 0x949E,
+ 25939 - 11905: 0x949F,
+ 25940 - 11905: 0x94A0,
+ 25941 - 11905: 0xEBB7,
+ 25942 - 11905: 0xB0BD,
+ 25943 - 11905: 0x94A1,
+ 25944 - 11905: 0x94A2,
+ 25945 - 11905: 0xBDCC,
+ 25946 - 11905: 0x94A3,
+ 25947 - 11905: 0xC1B2,
+ 25948 - 11905: 0x94A4,
+ 25949 - 11905: 0xB1D6,
+ 25950 - 11905: 0xB3A8,
+ 25951 - 11905: 0x94A5,
+ 25952 - 11905: 0x94A6,
+ 25953 - 11905: 0x94A7,
+ 25954 - 11905: 0xB8D2,
+ 25955 - 11905: 0xC9A2,
+ 25956 - 11905: 0x94A8,
+ 25957 - 11905: 0x94A9,
+ 25958 - 11905: 0xB6D8,
+ 25959 - 11905: 0x94AA,
+ 25960 - 11905: 0x94AB,
+ 25961 - 11905: 0x94AC,
+ 25962 - 11905: 0x94AD,
+ 25963 - 11905: 0xEBB8,
+ 25964 - 11905: 0xBEB4,
+ 25965 - 11905: 0x94AE,
+ 25966 - 11905: 0x94AF,
+ 25967 - 11905: 0x94B0,
+ 25968 - 11905: 0xCAFD,
+ 25969 - 11905: 0x94B1,
+ 25970 - 11905: 0xC7C3,
+ 25971 - 11905: 0x94B2,
+ 25972 - 11905: 0xD5FB,
+ 25973 - 11905: 0x94B3,
+ 25974 - 11905: 0x94B4,
+ 25975 - 11905: 0xB7F3,
+ 25976 - 11905: 0x94B5,
+ 25977 - 11905: 0x94B6,
+ 25978 - 11905: 0x94B7,
+ 25979 - 11905: 0x94B8,
+ 25980 - 11905: 0x94B9,
+ 25981 - 11905: 0x94BA,
+ 25982 - 11905: 0x94BB,
+ 25983 - 11905: 0x94BC,
+ 25984 - 11905: 0x94BD,
+ 25985 - 11905: 0x94BE,
+ 25986 - 11905: 0x94BF,
+ 25987 - 11905: 0x94C0,
+ 25988 - 11905: 0x94C1,
+ 25989 - 11905: 0x94C2,
+ 25990 - 11905: 0x94C3,
+ 25991 - 11905: 0xCEC4,
+ 25992 - 11905: 0x94C4,
+ 25993 - 11905: 0x94C5,
+ 25994 - 11905: 0x94C6,
+ 25995 - 11905: 0xD5AB,
+ 25996 - 11905: 0xB1F3,
+ 25997 - 11905: 0x94C7,
+ 25998 - 11905: 0x94C8,
+ 25999 - 11905: 0x94C9,
+ 26000 - 11905: 0xECB3,
+ 26001 - 11905: 0xB0DF,
+ 26002 - 11905: 0x94CA,
+ 26003 - 11905: 0xECB5,
+ 26004 - 11905: 0x94CB,
+ 26005 - 11905: 0x94CC,
+ 26006 - 11905: 0x94CD,
+ 26007 - 11905: 0xB6B7,
+ 26008 - 11905: 0x94CE,
+ 26009 - 11905: 0xC1CF,
+ 26010 - 11905: 0x94CF,
+ 26011 - 11905: 0xF5FA,
+ 26012 - 11905: 0xD0B1,
+ 26013 - 11905: 0x94D0,
+ 26014 - 11905: 0x94D1,
+ 26015 - 11905: 0xD5E5,
+ 26016 - 11905: 0x94D2,
+ 26017 - 11905: 0xCED3,
+ 26018 - 11905: 0x94D3,
+ 26019 - 11905: 0x94D4,
+ 26020 - 11905: 0xBDEF,
+ 26021 - 11905: 0xB3E2,
+ 26022 - 11905: 0x94D5,
+ 26023 - 11905: 0xB8AB,
+ 26024 - 11905: 0x94D6,
+ 26025 - 11905: 0xD5B6,
+ 26026 - 11905: 0x94D7,
+ 26027 - 11905: 0xEDBD,
+ 26028 - 11905: 0x94D8,
+ 26029 - 11905: 0xB6CF,
+ 26030 - 11905: 0x94D9,
+ 26031 - 11905: 0xCBB9,
+ 26032 - 11905: 0xD0C2,
+ 26033 - 11905: 0x94DA,
+ 26034 - 11905: 0x94DB,
+ 26035 - 11905: 0x94DC,
+ 26036 - 11905: 0x94DD,
+ 26037 - 11905: 0x94DE,
+ 26038 - 11905: 0x94DF,
+ 26039 - 11905: 0x94E0,
+ 26040 - 11905: 0x94E1,
+ 26041 - 11905: 0xB7BD,
+ 26042 - 11905: 0x94E2,
+ 26043 - 11905: 0x94E3,
+ 26044 - 11905: 0xECB6,
+ 26045 - 11905: 0xCAA9,
+ 26046 - 11905: 0x94E4,
+ 26047 - 11905: 0x94E5,
+ 26048 - 11905: 0x94E6,
+ 26049 - 11905: 0xC5D4,
+ 26050 - 11905: 0x94E7,
+ 26051 - 11905: 0xECB9,
+ 26052 - 11905: 0xECB8,
+ 26053 - 11905: 0xC2C3,
+ 26054 - 11905: 0xECB7,
+ 26055 - 11905: 0x94E8,
+ 26056 - 11905: 0x94E9,
+ 26057 - 11905: 0x94EA,
+ 26058 - 11905: 0x94EB,
+ 26059 - 11905: 0xD0FD,
+ 26060 - 11905: 0xECBA,
+ 26061 - 11905: 0x94EC,
+ 26062 - 11905: 0xECBB,
+ 26063 - 11905: 0xD7E5,
+ 26064 - 11905: 0x94ED,
+ 26065 - 11905: 0x94EE,
+ 26066 - 11905: 0xECBC,
+ 26067 - 11905: 0x94EF,
+ 26068 - 11905: 0x94F0,
+ 26069 - 11905: 0x94F1,
+ 26070 - 11905: 0xECBD,
+ 26071 - 11905: 0xC6EC,
+ 26072 - 11905: 0x94F2,
+ 26073 - 11905: 0x94F3,
+ 26074 - 11905: 0x94F4,
+ 26075 - 11905: 0x94F5,
+ 26076 - 11905: 0x94F6,
+ 26077 - 11905: 0x94F7,
+ 26078 - 11905: 0x94F8,
+ 26079 - 11905: 0x94F9,
+ 26080 - 11905: 0xCEDE,
+ 26081 - 11905: 0x94FA,
+ 26082 - 11905: 0xBCC8,
+ 26083 - 11905: 0x94FB,
+ 26084 - 11905: 0x94FC,
+ 26085 - 11905: 0xC8D5,
+ 26086 - 11905: 0xB5A9,
+ 26087 - 11905: 0xBEC9,
+ 26088 - 11905: 0xD6BC,
+ 26089 - 11905: 0xD4E7,
+ 26090 - 11905: 0x94FD,
+ 26091 - 11905: 0x94FE,
+ 26092 - 11905: 0xD1AE,
+ 26093 - 11905: 0xD0F1,
+ 26094 - 11905: 0xEAB8,
+ 26095 - 11905: 0xEAB9,
+ 26096 - 11905: 0xEABA,
+ 26097 - 11905: 0xBAB5,
+ 26098 - 11905: 0x9540,
+ 26099 - 11905: 0x9541,
+ 26100 - 11905: 0x9542,
+ 26101 - 11905: 0x9543,
+ 26102 - 11905: 0xCAB1,
+ 26103 - 11905: 0xBFF5,
+ 26104 - 11905: 0x9544,
+ 26105 - 11905: 0x9545,
+ 26106 - 11905: 0xCDFA,
+ 26107 - 11905: 0x9546,
+ 26108 - 11905: 0x9547,
+ 26109 - 11905: 0x9548,
+ 26110 - 11905: 0x9549,
+ 26111 - 11905: 0x954A,
+ 26112 - 11905: 0xEAC0,
+ 26113 - 11905: 0x954B,
+ 26114 - 11905: 0xB0BA,
+ 26115 - 11905: 0xEABE,
+ 26116 - 11905: 0x954C,
+ 26117 - 11905: 0x954D,
+ 26118 - 11905: 0xC0A5,
+ 26119 - 11905: 0x954E,
+ 26120 - 11905: 0x954F,
+ 26121 - 11905: 0x9550,
+ 26122 - 11905: 0xEABB,
+ 26123 - 11905: 0x9551,
+ 26124 - 11905: 0xB2FD,
+ 26125 - 11905: 0x9552,
+ 26126 - 11905: 0xC3F7,
+ 26127 - 11905: 0xBBE8,
+ 26128 - 11905: 0x9553,
+ 26129 - 11905: 0x9554,
+ 26130 - 11905: 0x9555,
+ 26131 - 11905: 0xD2D7,
+ 26132 - 11905: 0xCEF4,
+ 26133 - 11905: 0xEABF,
+ 26134 - 11905: 0x9556,
+ 26135 - 11905: 0x9557,
+ 26136 - 11905: 0x9558,
+ 26137 - 11905: 0xEABC,
+ 26138 - 11905: 0x9559,
+ 26139 - 11905: 0x955A,
+ 26140 - 11905: 0x955B,
+ 26141 - 11905: 0xEAC3,
+ 26142 - 11905: 0x955C,
+ 26143 - 11905: 0xD0C7,
+ 26144 - 11905: 0xD3B3,
+ 26145 - 11905: 0x955D,
+ 26146 - 11905: 0x955E,
+ 26147 - 11905: 0x955F,
+ 26148 - 11905: 0x9560,
+ 26149 - 11905: 0xB4BA,
+ 26150 - 11905: 0x9561,
+ 26151 - 11905: 0xC3C1,
+ 26152 - 11905: 0xD7F2,
+ 26153 - 11905: 0x9562,
+ 26154 - 11905: 0x9563,
+ 26155 - 11905: 0x9564,
+ 26156 - 11905: 0x9565,
+ 26157 - 11905: 0xD5D1,
+ 26158 - 11905: 0x9566,
+ 26159 - 11905: 0xCAC7,
+ 26160 - 11905: 0x9567,
+ 26161 - 11905: 0xEAC5,
+ 26162 - 11905: 0x9568,
+ 26163 - 11905: 0x9569,
+ 26164 - 11905: 0xEAC4,
+ 26165 - 11905: 0xEAC7,
+ 26166 - 11905: 0xEAC6,
+ 26167 - 11905: 0x956A,
+ 26168 - 11905: 0x956B,
+ 26169 - 11905: 0x956C,
+ 26170 - 11905: 0x956D,
+ 26171 - 11905: 0x956E,
+ 26172 - 11905: 0xD6E7,
+ 26173 - 11905: 0x956F,
+ 26174 - 11905: 0xCFD4,
+ 26175 - 11905: 0x9570,
+ 26176 - 11905: 0x9571,
+ 26177 - 11905: 0xEACB,
+ 26178 - 11905: 0x9572,
+ 26179 - 11905: 0xBBCE,
+ 26180 - 11905: 0x9573,
+ 26181 - 11905: 0x9574,
+ 26182 - 11905: 0x9575,
+ 26183 - 11905: 0x9576,
+ 26184 - 11905: 0x9577,
+ 26185 - 11905: 0x9578,
+ 26186 - 11905: 0x9579,
+ 26187 - 11905: 0xBDFA,
+ 26188 - 11905: 0xC9CE,
+ 26189 - 11905: 0x957A,
+ 26190 - 11905: 0x957B,
+ 26191 - 11905: 0xEACC,
+ 26192 - 11905: 0x957C,
+ 26193 - 11905: 0x957D,
+ 26194 - 11905: 0xC9B9,
+ 26195 - 11905: 0xCFFE,
+ 26196 - 11905: 0xEACA,
+ 26197 - 11905: 0xD4CE,
+ 26198 - 11905: 0xEACD,
+ 26199 - 11905: 0xEACF,
+ 26200 - 11905: 0x957E,
+ 26201 - 11905: 0x9580,
+ 26202 - 11905: 0xCDED,
+ 26203 - 11905: 0x9581,
+ 26204 - 11905: 0x9582,
+ 26205 - 11905: 0x9583,
+ 26206 - 11905: 0x9584,
+ 26207 - 11905: 0xEAC9,
+ 26208 - 11905: 0x9585,
+ 26209 - 11905: 0xEACE,
+ 26210 - 11905: 0x9586,
+ 26211 - 11905: 0x9587,
+ 26212 - 11905: 0xCEEE,
+ 26213 - 11905: 0x9588,
+ 26214 - 11905: 0xBBDE,
+ 26215 - 11905: 0x9589,
+ 26216 - 11905: 0xB3BF,
+ 26217 - 11905: 0x958A,
+ 26218 - 11905: 0x958B,
+ 26219 - 11905: 0x958C,
+ 26220 - 11905: 0x958D,
+ 26221 - 11905: 0x958E,
+ 26222 - 11905: 0xC6D5,
+ 26223 - 11905: 0xBEB0,
+ 26224 - 11905: 0xCEFA,
+ 26225 - 11905: 0x958F,
+ 26226 - 11905: 0x9590,
+ 26227 - 11905: 0x9591,
+ 26228 - 11905: 0xC7E7,
+ 26229 - 11905: 0x9592,
+ 26230 - 11905: 0xBEA7,
+ 26231 - 11905: 0xEAD0,
+ 26232 - 11905: 0x9593,
+ 26233 - 11905: 0x9594,
+ 26234 - 11905: 0xD6C7,
+ 26235 - 11905: 0x9595,
+ 26236 - 11905: 0x9596,
+ 26237 - 11905: 0x9597,
+ 26238 - 11905: 0xC1C0,
+ 26239 - 11905: 0x9598,
+ 26240 - 11905: 0x9599,
+ 26241 - 11905: 0x959A,
+ 26242 - 11905: 0xD4DD,
+ 26243 - 11905: 0x959B,
+ 26244 - 11905: 0xEAD1,
+ 26245 - 11905: 0x959C,
+ 26246 - 11905: 0x959D,
+ 26247 - 11905: 0xCFBE,
+ 26248 - 11905: 0x959E,
+ 26249 - 11905: 0x959F,
+ 26250 - 11905: 0x95A0,
+ 26251 - 11905: 0x95A1,
+ 26252 - 11905: 0xEAD2,
+ 26253 - 11905: 0x95A2,
+ 26254 - 11905: 0x95A3,
+ 26255 - 11905: 0x95A4,
+ 26256 - 11905: 0x95A5,
+ 26257 - 11905: 0xCAEE,
+ 26258 - 11905: 0x95A6,
+ 26259 - 11905: 0x95A7,
+ 26260 - 11905: 0x95A8,
+ 26261 - 11905: 0x95A9,
+ 26262 - 11905: 0xC5AF,
+ 26263 - 11905: 0xB0B5,
+ 26264 - 11905: 0x95AA,
+ 26265 - 11905: 0x95AB,
+ 26266 - 11905: 0x95AC,
+ 26267 - 11905: 0x95AD,
+ 26268 - 11905: 0x95AE,
+ 26269 - 11905: 0xEAD4,
+ 26270 - 11905: 0x95AF,
+ 26271 - 11905: 0x95B0,
+ 26272 - 11905: 0x95B1,
+ 26273 - 11905: 0x95B2,
+ 26274 - 11905: 0x95B3,
+ 26275 - 11905: 0x95B4,
+ 26276 - 11905: 0x95B5,
+ 26277 - 11905: 0x95B6,
+ 26278 - 11905: 0x95B7,
+ 26279 - 11905: 0xEAD3,
+ 26280 - 11905: 0xF4DF,
+ 26281 - 11905: 0x95B8,
+ 26282 - 11905: 0x95B9,
+ 26283 - 11905: 0x95BA,
+ 26284 - 11905: 0x95BB,
+ 26285 - 11905: 0x95BC,
+ 26286 - 11905: 0xC4BA,
+ 26287 - 11905: 0x95BD,
+ 26288 - 11905: 0x95BE,
+ 26289 - 11905: 0x95BF,
+ 26290 - 11905: 0x95C0,
+ 26291 - 11905: 0x95C1,
+ 26292 - 11905: 0xB1A9,
+ 26293 - 11905: 0x95C2,
+ 26294 - 11905: 0x95C3,
+ 26295 - 11905: 0x95C4,
+ 26296 - 11905: 0x95C5,
+ 26297 - 11905: 0xE5DF,
+ 26298 - 11905: 0x95C6,
+ 26299 - 11905: 0x95C7,
+ 26300 - 11905: 0x95C8,
+ 26301 - 11905: 0x95C9,
+ 26302 - 11905: 0xEAD5,
+ 26303 - 11905: 0x95CA,
+ 26304 - 11905: 0x95CB,
+ 26305 - 11905: 0x95CC,
+ 26306 - 11905: 0x95CD,
+ 26307 - 11905: 0x95CE,
+ 26308 - 11905: 0x95CF,
+ 26309 - 11905: 0x95D0,
+ 26310 - 11905: 0x95D1,
+ 26311 - 11905: 0x95D2,
+ 26312 - 11905: 0x95D3,
+ 26313 - 11905: 0x95D4,
+ 26314 - 11905: 0x95D5,
+ 26315 - 11905: 0x95D6,
+ 26316 - 11905: 0x95D7,
+ 26317 - 11905: 0x95D8,
+ 26318 - 11905: 0x95D9,
+ 26319 - 11905: 0x95DA,
+ 26320 - 11905: 0x95DB,
+ 26321 - 11905: 0x95DC,
+ 26322 - 11905: 0x95DD,
+ 26323 - 11905: 0x95DE,
+ 26324 - 11905: 0x95DF,
+ 26325 - 11905: 0x95E0,
+ 26326 - 11905: 0x95E1,
+ 26327 - 11905: 0x95E2,
+ 26328 - 11905: 0x95E3,
+ 26329 - 11905: 0xCAEF,
+ 26330 - 11905: 0x95E4,
+ 26331 - 11905: 0xEAD6,
+ 26332 - 11905: 0xEAD7,
+ 26333 - 11905: 0xC6D8,
+ 26334 - 11905: 0x95E5,
+ 26335 - 11905: 0x95E6,
+ 26336 - 11905: 0x95E7,
+ 26337 - 11905: 0x95E8,
+ 26338 - 11905: 0x95E9,
+ 26339 - 11905: 0x95EA,
+ 26340 - 11905: 0x95EB,
+ 26341 - 11905: 0x95EC,
+ 26342 - 11905: 0xEAD8,
+ 26343 - 11905: 0x95ED,
+ 26344 - 11905: 0x95EE,
+ 26345 - 11905: 0xEAD9,
+ 26346 - 11905: 0x95EF,
+ 26347 - 11905: 0x95F0,
+ 26348 - 11905: 0x95F1,
+ 26349 - 11905: 0x95F2,
+ 26350 - 11905: 0x95F3,
+ 26351 - 11905: 0x95F4,
+ 26352 - 11905: 0xD4BB,
+ 26353 - 11905: 0x95F5,
+ 26354 - 11905: 0xC7FA,
+ 26355 - 11905: 0xD2B7,
+ 26356 - 11905: 0xB8FC,
+ 26357 - 11905: 0x95F6,
+ 26358 - 11905: 0x95F7,
+ 26359 - 11905: 0xEAC2,
+ 26360 - 11905: 0x95F8,
+ 26361 - 11905: 0xB2DC,
+ 26362 - 11905: 0x95F9,
+ 26363 - 11905: 0x95FA,
+ 26364 - 11905: 0xC2FC,
+ 26365 - 11905: 0x95FB,
+ 26366 - 11905: 0xD4F8,
+ 26367 - 11905: 0xCCE6,
+ 26368 - 11905: 0xD7EE,
+ 26369 - 11905: 0x95FC,
+ 26370 - 11905: 0x95FD,
+ 26371 - 11905: 0x95FE,
+ 26372 - 11905: 0x9640,
+ 26373 - 11905: 0x9641,
+ 26374 - 11905: 0x9642,
+ 26375 - 11905: 0x9643,
+ 26376 - 11905: 0xD4C2,
+ 26377 - 11905: 0xD3D0,
+ 26378 - 11905: 0xEBC3,
+ 26379 - 11905: 0xC5F3,
+ 26380 - 11905: 0x9644,
+ 26381 - 11905: 0xB7FE,
+ 26382 - 11905: 0x9645,
+ 26383 - 11905: 0x9646,
+ 26384 - 11905: 0xEBD4,
+ 26385 - 11905: 0x9647,
+ 26386 - 11905: 0x9648,
+ 26387 - 11905: 0x9649,
+ 26388 - 11905: 0xCBB7,
+ 26389 - 11905: 0xEBDE,
+ 26390 - 11905: 0x964A,
+ 26391 - 11905: 0xC0CA,
+ 26392 - 11905: 0x964B,
+ 26393 - 11905: 0x964C,
+ 26394 - 11905: 0x964D,
+ 26395 - 11905: 0xCDFB,
+ 26396 - 11905: 0x964E,
+ 26397 - 11905: 0xB3AF,
+ 26398 - 11905: 0x964F,
+ 26399 - 11905: 0xC6DA,
+ 26400 - 11905: 0x9650,
+ 26401 - 11905: 0x9651,
+ 26402 - 11905: 0x9652,
+ 26403 - 11905: 0x9653,
+ 26404 - 11905: 0x9654,
+ 26405 - 11905: 0x9655,
+ 26406 - 11905: 0xEBFC,
+ 26407 - 11905: 0x9656,
+ 26408 - 11905: 0xC4BE,
+ 26409 - 11905: 0x9657,
+ 26410 - 11905: 0xCEB4,
+ 26411 - 11905: 0xC4A9,
+ 26412 - 11905: 0xB1BE,
+ 26413 - 11905: 0xD4FD,
+ 26414 - 11905: 0x9658,
+ 26415 - 11905: 0xCAF5,
+ 26416 - 11905: 0x9659,
+ 26417 - 11905: 0xD6EC,
+ 26418 - 11905: 0x965A,
+ 26419 - 11905: 0x965B,
+ 26420 - 11905: 0xC6D3,
+ 26421 - 11905: 0xB6E4,
+ 26422 - 11905: 0x965C,
+ 26423 - 11905: 0x965D,
+ 26424 - 11905: 0x965E,
+ 26425 - 11905: 0x965F,
+ 26426 - 11905: 0xBBFA,
+ 26427 - 11905: 0x9660,
+ 26428 - 11905: 0x9661,
+ 26429 - 11905: 0xD0E0,
+ 26430 - 11905: 0x9662,
+ 26431 - 11905: 0x9663,
+ 26432 - 11905: 0xC9B1,
+ 26433 - 11905: 0x9664,
+ 26434 - 11905: 0xD4D3,
+ 26435 - 11905: 0xC8A8,
+ 26436 - 11905: 0x9665,
+ 26437 - 11905: 0x9666,
+ 26438 - 11905: 0xB8CB,
+ 26439 - 11905: 0x9667,
+ 26440 - 11905: 0xE8BE,
+ 26441 - 11905: 0xC9BC,
+ 26442 - 11905: 0x9668,
+ 26443 - 11905: 0x9669,
+ 26444 - 11905: 0xE8BB,
+ 26445 - 11905: 0x966A,
+ 26446 - 11905: 0xC0EE,
+ 26447 - 11905: 0xD0D3,
+ 26448 - 11905: 0xB2C4,
+ 26449 - 11905: 0xB4E5,
+ 26450 - 11905: 0x966B,
+ 26451 - 11905: 0xE8BC,
+ 26452 - 11905: 0x966C,
+ 26453 - 11905: 0x966D,
+ 26454 - 11905: 0xD5C8,
+ 26455 - 11905: 0x966E,
+ 26456 - 11905: 0x966F,
+ 26457 - 11905: 0x9670,
+ 26458 - 11905: 0x9671,
+ 26459 - 11905: 0x9672,
+ 26460 - 11905: 0xB6C5,
+ 26461 - 11905: 0x9673,
+ 26462 - 11905: 0xE8BD,
+ 26463 - 11905: 0xCAF8,
+ 26464 - 11905: 0xB8DC,
+ 26465 - 11905: 0xCCF5,
+ 26466 - 11905: 0x9674,
+ 26467 - 11905: 0x9675,
+ 26468 - 11905: 0x9676,
+ 26469 - 11905: 0xC0B4,
+ 26470 - 11905: 0x9677,
+ 26471 - 11905: 0x9678,
+ 26472 - 11905: 0xD1EE,
+ 26473 - 11905: 0xE8BF,
+ 26474 - 11905: 0xE8C2,
+ 26475 - 11905: 0x9679,
+ 26476 - 11905: 0x967A,
+ 26477 - 11905: 0xBABC,
+ 26478 - 11905: 0x967B,
+ 26479 - 11905: 0xB1AD,
+ 26480 - 11905: 0xBDDC,
+ 26481 - 11905: 0x967C,
+ 26482 - 11905: 0xEABD,
+ 26483 - 11905: 0xE8C3,
+ 26484 - 11905: 0x967D,
+ 26485 - 11905: 0xE8C6,
+ 26486 - 11905: 0x967E,
+ 26487 - 11905: 0xE8CB,
+ 26488 - 11905: 0x9680,
+ 26489 - 11905: 0x9681,
+ 26490 - 11905: 0x9682,
+ 26491 - 11905: 0x9683,
+ 26492 - 11905: 0xE8CC,
+ 26493 - 11905: 0x9684,
+ 26494 - 11905: 0xCBC9,
+ 26495 - 11905: 0xB0E5,
+ 26496 - 11905: 0x9685,
+ 26497 - 11905: 0xBCAB,
+ 26498 - 11905: 0x9686,
+ 26499 - 11905: 0x9687,
+ 26500 - 11905: 0xB9B9,
+ 26501 - 11905: 0x9688,
+ 26502 - 11905: 0x9689,
+ 26503 - 11905: 0xE8C1,
+ 26504 - 11905: 0x968A,
+ 26505 - 11905: 0xCDF7,
+ 26506 - 11905: 0x968B,
+ 26507 - 11905: 0xE8CA,
+ 26508 - 11905: 0x968C,
+ 26509 - 11905: 0x968D,
+ 26510 - 11905: 0x968E,
+ 26511 - 11905: 0x968F,
+ 26512 - 11905: 0xCEF6,
+ 26513 - 11905: 0x9690,
+ 26514 - 11905: 0x9691,
+ 26515 - 11905: 0x9692,
+ 26516 - 11905: 0x9693,
+ 26517 - 11905: 0xD5ED,
+ 26518 - 11905: 0x9694,
+ 26519 - 11905: 0xC1D6,
+ 26520 - 11905: 0xE8C4,
+ 26521 - 11905: 0x9695,
+ 26522 - 11905: 0xC3B6,
+ 26523 - 11905: 0x9696,
+ 26524 - 11905: 0xB9FB,
+ 26525 - 11905: 0xD6A6,
+ 26526 - 11905: 0xE8C8,
+ 26527 - 11905: 0x9697,
+ 26528 - 11905: 0x9698,
+ 26529 - 11905: 0x9699,
+ 26530 - 11905: 0xCAE0,
+ 26531 - 11905: 0xD4E6,
+ 26532 - 11905: 0x969A,
+ 26533 - 11905: 0xE8C0,
+ 26534 - 11905: 0x969B,
+ 26535 - 11905: 0xE8C5,
+ 26536 - 11905: 0xE8C7,
+ 26537 - 11905: 0x969C,
+ 26538 - 11905: 0xC7B9,
+ 26539 - 11905: 0xB7E3,
+ 26540 - 11905: 0x969D,
+ 26541 - 11905: 0xE8C9,
+ 26542 - 11905: 0x969E,
+ 26543 - 11905: 0xBFDD,
+ 26544 - 11905: 0xE8D2,
+ 26545 - 11905: 0x969F,
+ 26546 - 11905: 0x96A0,
+ 26547 - 11905: 0xE8D7,
+ 26548 - 11905: 0x96A1,
+ 26549 - 11905: 0xE8D5,
+ 26550 - 11905: 0xBCDC,
+ 26551 - 11905: 0xBCCF,
+ 26552 - 11905: 0xE8DB,
+ 26553 - 11905: 0x96A2,
+ 26554 - 11905: 0x96A3,
+ 26555 - 11905: 0x96A4,
+ 26556 - 11905: 0x96A5,
+ 26557 - 11905: 0x96A6,
+ 26558 - 11905: 0x96A7,
+ 26559 - 11905: 0x96A8,
+ 26560 - 11905: 0x96A9,
+ 26561 - 11905: 0xE8DE,
+ 26562 - 11905: 0x96AA,
+ 26563 - 11905: 0xE8DA,
+ 26564 - 11905: 0xB1FA,
+ 26565 - 11905: 0x96AB,
+ 26566 - 11905: 0x96AC,
+ 26567 - 11905: 0x96AD,
+ 26568 - 11905: 0x96AE,
+ 26569 - 11905: 0x96AF,
+ 26570 - 11905: 0x96B0,
+ 26571 - 11905: 0x96B1,
+ 26572 - 11905: 0x96B2,
+ 26573 - 11905: 0x96B3,
+ 26574 - 11905: 0x96B4,
+ 26575 - 11905: 0xB0D8,
+ 26576 - 11905: 0xC4B3,
+ 26577 - 11905: 0xB8CC,
+ 26578 - 11905: 0xC6E2,
+ 26579 - 11905: 0xC8BE,
+ 26580 - 11905: 0xC8E1,
+ 26581 - 11905: 0x96B5,
+ 26582 - 11905: 0x96B6,
+ 26583 - 11905: 0x96B7,
+ 26584 - 11905: 0xE8CF,
+ 26585 - 11905: 0xE8D4,
+ 26586 - 11905: 0xE8D6,
+ 26587 - 11905: 0x96B8,
+ 26588 - 11905: 0xB9F1,
+ 26589 - 11905: 0xE8D8,
+ 26590 - 11905: 0xD7F5,
+ 26591 - 11905: 0x96B9,
+ 26592 - 11905: 0xC4FB,
+ 26593 - 11905: 0x96BA,
+ 26594 - 11905: 0xE8DC,
+ 26595 - 11905: 0x96BB,
+ 26596 - 11905: 0x96BC,
+ 26597 - 11905: 0xB2E9,
+ 26598 - 11905: 0x96BD,
+ 26599 - 11905: 0x96BE,
+ 26600 - 11905: 0x96BF,
+ 26601 - 11905: 0xE8D1,
+ 26602 - 11905: 0x96C0,
+ 26603 - 11905: 0x96C1,
+ 26604 - 11905: 0xBCED,
+ 26605 - 11905: 0x96C2,
+ 26606 - 11905: 0x96C3,
+ 26607 - 11905: 0xBFC2,
+ 26608 - 11905: 0xE8CD,
+ 26609 - 11905: 0xD6F9,
+ 26610 - 11905: 0x96C4,
+ 26611 - 11905: 0xC1F8,
+ 26612 - 11905: 0xB2F1,
+ 26613 - 11905: 0x96C5,
+ 26614 - 11905: 0x96C6,
+ 26615 - 11905: 0x96C7,
+ 26616 - 11905: 0x96C8,
+ 26617 - 11905: 0x96C9,
+ 26618 - 11905: 0x96CA,
+ 26619 - 11905: 0x96CB,
+ 26620 - 11905: 0x96CC,
+ 26621 - 11905: 0xE8DF,
+ 26622 - 11905: 0x96CD,
+ 26623 - 11905: 0xCAC1,
+ 26624 - 11905: 0xE8D9,
+ 26625 - 11905: 0x96CE,
+ 26626 - 11905: 0x96CF,
+ 26627 - 11905: 0x96D0,
+ 26628 - 11905: 0x96D1,
+ 26629 - 11905: 0xD5A4,
+ 26630 - 11905: 0x96D2,
+ 26631 - 11905: 0xB1EA,
+ 26632 - 11905: 0xD5BB,
+ 26633 - 11905: 0xE8CE,
+ 26634 - 11905: 0xE8D0,
+ 26635 - 11905: 0xB6B0,
+ 26636 - 11905: 0xE8D3,
+ 26637 - 11905: 0x96D3,
+ 26638 - 11905: 0xE8DD,
+ 26639 - 11905: 0xC0B8,
+ 26640 - 11905: 0x96D4,
+ 26641 - 11905: 0xCAF7,
+ 26642 - 11905: 0x96D5,
+ 26643 - 11905: 0xCBA8,
+ 26644 - 11905: 0x96D6,
+ 26645 - 11905: 0x96D7,
+ 26646 - 11905: 0xC6DC,
+ 26647 - 11905: 0xC0F5,
+ 26648 - 11905: 0x96D8,
+ 26649 - 11905: 0x96D9,
+ 26650 - 11905: 0x96DA,
+ 26651 - 11905: 0x96DB,
+ 26652 - 11905: 0x96DC,
+ 26653 - 11905: 0xE8E9,
+ 26654 - 11905: 0x96DD,
+ 26655 - 11905: 0x96DE,
+ 26656 - 11905: 0x96DF,
+ 26657 - 11905: 0xD0A3,
+ 26658 - 11905: 0x96E0,
+ 26659 - 11905: 0x96E1,
+ 26660 - 11905: 0x96E2,
+ 26661 - 11905: 0x96E3,
+ 26662 - 11905: 0x96E4,
+ 26663 - 11905: 0x96E5,
+ 26664 - 11905: 0x96E6,
+ 26665 - 11905: 0xE8F2,
+ 26666 - 11905: 0xD6EA,
+ 26667 - 11905: 0x96E7,
+ 26668 - 11905: 0x96E8,
+ 26669 - 11905: 0x96E9,
+ 26670 - 11905: 0x96EA,
+ 26671 - 11905: 0x96EB,
+ 26672 - 11905: 0x96EC,
+ 26673 - 11905: 0x96ED,
+ 26674 - 11905: 0xE8E0,
+ 26675 - 11905: 0xE8E1,
+ 26676 - 11905: 0x96EE,
+ 26677 - 11905: 0x96EF,
+ 26678 - 11905: 0x96F0,
+ 26679 - 11905: 0xD1F9,
+ 26680 - 11905: 0xBACB,
+ 26681 - 11905: 0xB8F9,
+ 26682 - 11905: 0x96F1,
+ 26683 - 11905: 0x96F2,
+ 26684 - 11905: 0xB8F1,
+ 26685 - 11905: 0xD4D4,
+ 26686 - 11905: 0xE8EF,
+ 26687 - 11905: 0x96F3,
+ 26688 - 11905: 0xE8EE,
+ 26689 - 11905: 0xE8EC,
+ 26690 - 11905: 0xB9F0,
+ 26691 - 11905: 0xCCD2,
+ 26692 - 11905: 0xE8E6,
+ 26693 - 11905: 0xCEA6,
+ 26694 - 11905: 0xBFF2,
+ 26695 - 11905: 0x96F4,
+ 26696 - 11905: 0xB0B8,
+ 26697 - 11905: 0xE8F1,
+ 26698 - 11905: 0xE8F0,
+ 26699 - 11905: 0x96F5,
+ 26700 - 11905: 0xD7C0,
+ 26701 - 11905: 0x96F6,
+ 26702 - 11905: 0xE8E4,
+ 26703 - 11905: 0x96F7,
+ 26704 - 11905: 0xCDA9,
+ 26705 - 11905: 0xC9A3,
+ 26706 - 11905: 0x96F8,
+ 26707 - 11905: 0xBBB8,
+ 26708 - 11905: 0xBDDB,
+ 26709 - 11905: 0xE8EA,
+ 26710 - 11905: 0x96F9,
+ 26711 - 11905: 0x96FA,
+ 26712 - 11905: 0x96FB,
+ 26713 - 11905: 0x96FC,
+ 26714 - 11905: 0x96FD,
+ 26715 - 11905: 0x96FE,
+ 26716 - 11905: 0x9740,
+ 26717 - 11905: 0x9741,
+ 26718 - 11905: 0x9742,
+ 26719 - 11905: 0x9743,
+ 26720 - 11905: 0xE8E2,
+ 26721 - 11905: 0xE8E3,
+ 26722 - 11905: 0xE8E5,
+ 26723 - 11905: 0xB5B5,
+ 26724 - 11905: 0xE8E7,
+ 26725 - 11905: 0xC7C5,
+ 26726 - 11905: 0xE8EB,
+ 26727 - 11905: 0xE8ED,
+ 26728 - 11905: 0xBDB0,
+ 26729 - 11905: 0xD7AE,
+ 26730 - 11905: 0x9744,
+ 26731 - 11905: 0xE8F8,
+ 26732 - 11905: 0x9745,
+ 26733 - 11905: 0x9746,
+ 26734 - 11905: 0x9747,
+ 26735 - 11905: 0x9748,
+ 26736 - 11905: 0x9749,
+ 26737 - 11905: 0x974A,
+ 26738 - 11905: 0x974B,
+ 26739 - 11905: 0x974C,
+ 26740 - 11905: 0xE8F5,
+ 26741 - 11905: 0x974D,
+ 26742 - 11905: 0xCDB0,
+ 26743 - 11905: 0xE8F6,
+ 26744 - 11905: 0x974E,
+ 26745 - 11905: 0x974F,
+ 26746 - 11905: 0x9750,
+ 26747 - 11905: 0x9751,
+ 26748 - 11905: 0x9752,
+ 26749 - 11905: 0x9753,
+ 26750 - 11905: 0x9754,
+ 26751 - 11905: 0x9755,
+ 26752 - 11905: 0x9756,
+ 26753 - 11905: 0xC1BA,
+ 26754 - 11905: 0x9757,
+ 26755 - 11905: 0xE8E8,
+ 26756 - 11905: 0x9758,
+ 26757 - 11905: 0xC3B7,
+ 26758 - 11905: 0xB0F0,
+ 26759 - 11905: 0x9759,
+ 26760 - 11905: 0x975A,
+ 26761 - 11905: 0x975B,
+ 26762 - 11905: 0x975C,
+ 26763 - 11905: 0x975D,
+ 26764 - 11905: 0x975E,
+ 26765 - 11905: 0x975F,
+ 26766 - 11905: 0x9760,
+ 26767 - 11905: 0xE8F4,
+ 26768 - 11905: 0x9761,
+ 26769 - 11905: 0x9762,
+ 26770 - 11905: 0x9763,
+ 26771 - 11905: 0xE8F7,
+ 26772 - 11905: 0x9764,
+ 26773 - 11905: 0x9765,
+ 26774 - 11905: 0x9766,
+ 26775 - 11905: 0xB9A3,
+ 26776 - 11905: 0x9767,
+ 26777 - 11905: 0x9768,
+ 26778 - 11905: 0x9769,
+ 26779 - 11905: 0x976A,
+ 26780 - 11905: 0x976B,
+ 26781 - 11905: 0x976C,
+ 26782 - 11905: 0x976D,
+ 26783 - 11905: 0x976E,
+ 26784 - 11905: 0x976F,
+ 26785 - 11905: 0x9770,
+ 26786 - 11905: 0xC9D2,
+ 26787 - 11905: 0x9771,
+ 26788 - 11905: 0x9772,
+ 26789 - 11905: 0x9773,
+ 26790 - 11905: 0xC3CE,
+ 26791 - 11905: 0xCEE0,
+ 26792 - 11905: 0xC0E6,
+ 26793 - 11905: 0x9774,
+ 26794 - 11905: 0x9775,
+ 26795 - 11905: 0x9776,
+ 26796 - 11905: 0x9777,
+ 26797 - 11905: 0xCBF3,
+ 26798 - 11905: 0x9778,
+ 26799 - 11905: 0xCCDD,
+ 26800 - 11905: 0xD0B5,
+ 26801 - 11905: 0x9779,
+ 26802 - 11905: 0x977A,
+ 26803 - 11905: 0xCAE1,
+ 26804 - 11905: 0x977B,
+ 26805 - 11905: 0xE8F3,
+ 26806 - 11905: 0x977C,
+ 26807 - 11905: 0x977D,
+ 26808 - 11905: 0x977E,
+ 26809 - 11905: 0x9780,
+ 26810 - 11905: 0x9781,
+ 26811 - 11905: 0x9782,
+ 26812 - 11905: 0x9783,
+ 26813 - 11905: 0x9784,
+ 26814 - 11905: 0x9785,
+ 26815 - 11905: 0x9786,
+ 26816 - 11905: 0xBCEC,
+ 26817 - 11905: 0x9787,
+ 26818 - 11905: 0xE8F9,
+ 26819 - 11905: 0x9788,
+ 26820 - 11905: 0x9789,
+ 26821 - 11905: 0x978A,
+ 26822 - 11905: 0x978B,
+ 26823 - 11905: 0x978C,
+ 26824 - 11905: 0x978D,
+ 26825 - 11905: 0xC3DE,
+ 26826 - 11905: 0x978E,
+ 26827 - 11905: 0xC6E5,
+ 26828 - 11905: 0x978F,
+ 26829 - 11905: 0xB9F7,
+ 26830 - 11905: 0x9790,
+ 26831 - 11905: 0x9791,
+ 26832 - 11905: 0x9792,
+ 26833 - 11905: 0x9793,
+ 26834 - 11905: 0xB0F4,
+ 26835 - 11905: 0x9794,
+ 26836 - 11905: 0x9795,
+ 26837 - 11905: 0xD7D8,
+ 26838 - 11905: 0x9796,
+ 26839 - 11905: 0x9797,
+ 26840 - 11905: 0xBCAC,
+ 26841 - 11905: 0x9798,
+ 26842 - 11905: 0xC5EF,
+ 26843 - 11905: 0x9799,
+ 26844 - 11905: 0x979A,
+ 26845 - 11905: 0x979B,
+ 26846 - 11905: 0x979C,
+ 26847 - 11905: 0x979D,
+ 26848 - 11905: 0xCCC4,
+ 26849 - 11905: 0x979E,
+ 26850 - 11905: 0x979F,
+ 26851 - 11905: 0xE9A6,
+ 26852 - 11905: 0x97A0,
+ 26853 - 11905: 0x97A1,
+ 26854 - 11905: 0x97A2,
+ 26855 - 11905: 0x97A3,
+ 26856 - 11905: 0x97A4,
+ 26857 - 11905: 0x97A5,
+ 26858 - 11905: 0x97A6,
+ 26859 - 11905: 0x97A7,
+ 26860 - 11905: 0x97A8,
+ 26861 - 11905: 0x97A9,
+ 26862 - 11905: 0xC9AD,
+ 26863 - 11905: 0x97AA,
+ 26864 - 11905: 0xE9A2,
+ 26865 - 11905: 0xC0E2,
+ 26866 - 11905: 0x97AB,
+ 26867 - 11905: 0x97AC,
+ 26868 - 11905: 0x97AD,
+ 26869 - 11905: 0xBFC3,
+ 26870 - 11905: 0x97AE,
+ 26871 - 11905: 0x97AF,
+ 26872 - 11905: 0x97B0,
+ 26873 - 11905: 0xE8FE,
+ 26874 - 11905: 0xB9D7,
+ 26875 - 11905: 0x97B1,
+ 26876 - 11905: 0xE8FB,
+ 26877 - 11905: 0x97B2,
+ 26878 - 11905: 0x97B3,
+ 26879 - 11905: 0x97B4,
+ 26880 - 11905: 0x97B5,
+ 26881 - 11905: 0xE9A4,
+ 26882 - 11905: 0x97B6,
+ 26883 - 11905: 0x97B7,
+ 26884 - 11905: 0x97B8,
+ 26885 - 11905: 0xD2CE,
+ 26886 - 11905: 0x97B9,
+ 26887 - 11905: 0x97BA,
+ 26888 - 11905: 0x97BB,
+ 26889 - 11905: 0x97BC,
+ 26890 - 11905: 0x97BD,
+ 26891 - 11905: 0xE9A3,
+ 26892 - 11905: 0x97BE,
+ 26893 - 11905: 0xD6B2,
+ 26894 - 11905: 0xD7B5,
+ 26895 - 11905: 0x97BF,
+ 26896 - 11905: 0xE9A7,
+ 26897 - 11905: 0x97C0,
+ 26898 - 11905: 0xBDB7,
+ 26899 - 11905: 0x97C1,
+ 26900 - 11905: 0x97C2,
+ 26901 - 11905: 0x97C3,
+ 26902 - 11905: 0x97C4,
+ 26903 - 11905: 0x97C5,
+ 26904 - 11905: 0x97C6,
+ 26905 - 11905: 0x97C7,
+ 26906 - 11905: 0x97C8,
+ 26907 - 11905: 0x97C9,
+ 26908 - 11905: 0x97CA,
+ 26909 - 11905: 0x97CB,
+ 26910 - 11905: 0x97CC,
+ 26911 - 11905: 0xE8FC,
+ 26912 - 11905: 0xE8FD,
+ 26913 - 11905: 0x97CD,
+ 26914 - 11905: 0x97CE,
+ 26915 - 11905: 0x97CF,
+ 26916 - 11905: 0xE9A1,
+ 26917 - 11905: 0x97D0,
+ 26918 - 11905: 0x97D1,
+ 26919 - 11905: 0x97D2,
+ 26920 - 11905: 0x97D3,
+ 26921 - 11905: 0x97D4,
+ 26922 - 11905: 0x97D5,
+ 26923 - 11905: 0x97D6,
+ 26924 - 11905: 0x97D7,
+ 26925 - 11905: 0xCDD6,
+ 26926 - 11905: 0x97D8,
+ 26927 - 11905: 0x97D9,
+ 26928 - 11905: 0xD2AC,
+ 26929 - 11905: 0x97DA,
+ 26930 - 11905: 0x97DB,
+ 26931 - 11905: 0x97DC,
+ 26932 - 11905: 0xE9B2,
+ 26933 - 11905: 0x97DD,
+ 26934 - 11905: 0x97DE,
+ 26935 - 11905: 0x97DF,
+ 26936 - 11905: 0x97E0,
+ 26937 - 11905: 0xE9A9,
+ 26938 - 11905: 0x97E1,
+ 26939 - 11905: 0x97E2,
+ 26940 - 11905: 0x97E3,
+ 26941 - 11905: 0xB4AA,
+ 26942 - 11905: 0x97E4,
+ 26943 - 11905: 0xB4BB,
+ 26944 - 11905: 0x97E5,
+ 26945 - 11905: 0x97E6,
+ 26946 - 11905: 0xE9AB,
+ 26947 - 11905: 0x97E7,
+ 26948 - 11905: 0x97E8,
+ 26949 - 11905: 0x97E9,
+ 26950 - 11905: 0x97EA,
+ 26951 - 11905: 0x97EB,
+ 26952 - 11905: 0x97EC,
+ 26953 - 11905: 0x97ED,
+ 26954 - 11905: 0x97EE,
+ 26955 - 11905: 0x97EF,
+ 26956 - 11905: 0x97F0,
+ 26957 - 11905: 0x97F1,
+ 26958 - 11905: 0x97F2,
+ 26959 - 11905: 0x97F3,
+ 26960 - 11905: 0x97F4,
+ 26961 - 11905: 0x97F5,
+ 26962 - 11905: 0x97F6,
+ 26963 - 11905: 0x97F7,
+ 26964 - 11905: 0xD0A8,
+ 26965 - 11905: 0x97F8,
+ 26966 - 11905: 0x97F9,
+ 26967 - 11905: 0xE9A5,
+ 26968 - 11905: 0x97FA,
+ 26969 - 11905: 0x97FB,
+ 26970 - 11905: 0xB3FE,
+ 26971 - 11905: 0x97FC,
+ 26972 - 11905: 0x97FD,
+ 26973 - 11905: 0xE9AC,
+ 26974 - 11905: 0xC0E3,
+ 26975 - 11905: 0x97FE,
+ 26976 - 11905: 0xE9AA,
+ 26977 - 11905: 0x9840,
+ 26978 - 11905: 0x9841,
+ 26979 - 11905: 0xE9B9,
+ 26980 - 11905: 0x9842,
+ 26981 - 11905: 0x9843,
+ 26982 - 11905: 0xE9B8,
+ 26983 - 11905: 0x9844,
+ 26984 - 11905: 0x9845,
+ 26985 - 11905: 0x9846,
+ 26986 - 11905: 0x9847,
+ 26987 - 11905: 0xE9AE,
+ 26988 - 11905: 0x9848,
+ 26989 - 11905: 0x9849,
+ 26990 - 11905: 0xE8FA,
+ 26991 - 11905: 0x984A,
+ 26992 - 11905: 0x984B,
+ 26993 - 11905: 0xE9A8,
+ 26994 - 11905: 0x984C,
+ 26995 - 11905: 0x984D,
+ 26996 - 11905: 0x984E,
+ 26997 - 11905: 0x984F,
+ 26998 - 11905: 0x9850,
+ 26999 - 11905: 0xBFAC,
+ 27000 - 11905: 0xE9B1,
+ 27001 - 11905: 0xE9BA,
+ 27002 - 11905: 0x9851,
+ 27003 - 11905: 0x9852,
+ 27004 - 11905: 0xC2A5,
+ 27005 - 11905: 0x9853,
+ 27006 - 11905: 0x9854,
+ 27007 - 11905: 0x9855,
+ 27008 - 11905: 0xE9AF,
+ 27009 - 11905: 0x9856,
+ 27010 - 11905: 0xB8C5,
+ 27011 - 11905: 0x9857,
+ 27012 - 11905: 0xE9AD,
+ 27013 - 11905: 0x9858,
+ 27014 - 11905: 0xD3DC,
+ 27015 - 11905: 0xE9B4,
+ 27016 - 11905: 0xE9B5,
+ 27017 - 11905: 0xE9B7,
+ 27018 - 11905: 0x9859,
+ 27019 - 11905: 0x985A,
+ 27020 - 11905: 0x985B,
+ 27021 - 11905: 0xE9C7,
+ 27022 - 11905: 0x985C,
+ 27023 - 11905: 0x985D,
+ 27024 - 11905: 0x985E,
+ 27025 - 11905: 0x985F,
+ 27026 - 11905: 0x9860,
+ 27027 - 11905: 0x9861,
+ 27028 - 11905: 0xC0C6,
+ 27029 - 11905: 0xE9C5,
+ 27030 - 11905: 0x9862,
+ 27031 - 11905: 0x9863,
+ 27032 - 11905: 0xE9B0,
+ 27033 - 11905: 0x9864,
+ 27034 - 11905: 0x9865,
+ 27035 - 11905: 0xE9BB,
+ 27036 - 11905: 0xB0F1,
+ 27037 - 11905: 0x9866,
+ 27038 - 11905: 0x9867,
+ 27039 - 11905: 0x9868,
+ 27040 - 11905: 0x9869,
+ 27041 - 11905: 0x986A,
+ 27042 - 11905: 0x986B,
+ 27043 - 11905: 0x986C,
+ 27044 - 11905: 0x986D,
+ 27045 - 11905: 0x986E,
+ 27046 - 11905: 0x986F,
+ 27047 - 11905: 0xE9BC,
+ 27048 - 11905: 0xD5A5,
+ 27049 - 11905: 0x9870,
+ 27050 - 11905: 0x9871,
+ 27051 - 11905: 0xE9BE,
+ 27052 - 11905: 0x9872,
+ 27053 - 11905: 0xE9BF,
+ 27054 - 11905: 0x9873,
+ 27055 - 11905: 0x9874,
+ 27056 - 11905: 0x9875,
+ 27057 - 11905: 0xE9C1,
+ 27058 - 11905: 0x9876,
+ 27059 - 11905: 0x9877,
+ 27060 - 11905: 0xC1F1,
+ 27061 - 11905: 0x9878,
+ 27062 - 11905: 0x9879,
+ 27063 - 11905: 0xC8B6,
+ 27064 - 11905: 0x987A,
+ 27065 - 11905: 0x987B,
+ 27066 - 11905: 0x987C,
+ 27067 - 11905: 0xE9BD,
+ 27068 - 11905: 0x987D,
+ 27069 - 11905: 0x987E,
+ 27070 - 11905: 0x9880,
+ 27071 - 11905: 0x9881,
+ 27072 - 11905: 0x9882,
+ 27073 - 11905: 0xE9C2,
+ 27074 - 11905: 0x9883,
+ 27075 - 11905: 0x9884,
+ 27076 - 11905: 0x9885,
+ 27077 - 11905: 0x9886,
+ 27078 - 11905: 0x9887,
+ 27079 - 11905: 0x9888,
+ 27080 - 11905: 0x9889,
+ 27081 - 11905: 0x988A,
+ 27082 - 11905: 0xE9C3,
+ 27083 - 11905: 0x988B,
+ 27084 - 11905: 0xE9B3,
+ 27085 - 11905: 0x988C,
+ 27086 - 11905: 0xE9B6,
+ 27087 - 11905: 0x988D,
+ 27088 - 11905: 0xBBB1,
+ 27089 - 11905: 0x988E,
+ 27090 - 11905: 0x988F,
+ 27091 - 11905: 0x9890,
+ 27092 - 11905: 0xE9C0,
+ 27093 - 11905: 0x9891,
+ 27094 - 11905: 0x9892,
+ 27095 - 11905: 0x9893,
+ 27096 - 11905: 0x9894,
+ 27097 - 11905: 0x9895,
+ 27098 - 11905: 0x9896,
+ 27099 - 11905: 0xBCF7,
+ 27100 - 11905: 0x9897,
+ 27101 - 11905: 0x9898,
+ 27102 - 11905: 0x9899,
+ 27103 - 11905: 0xE9C4,
+ 27104 - 11905: 0xE9C6,
+ 27105 - 11905: 0x989A,
+ 27106 - 11905: 0x989B,
+ 27107 - 11905: 0x989C,
+ 27108 - 11905: 0x989D,
+ 27109 - 11905: 0x989E,
+ 27110 - 11905: 0x989F,
+ 27111 - 11905: 0x98A0,
+ 27112 - 11905: 0x98A1,
+ 27113 - 11905: 0x98A2,
+ 27114 - 11905: 0x98A3,
+ 27115 - 11905: 0x98A4,
+ 27116 - 11905: 0x98A5,
+ 27117 - 11905: 0xE9CA,
+ 27118 - 11905: 0x98A6,
+ 27119 - 11905: 0x98A7,
+ 27120 - 11905: 0x98A8,
+ 27121 - 11905: 0x98A9,
+ 27122 - 11905: 0xE9CE,
+ 27123 - 11905: 0x98AA,
+ 27124 - 11905: 0x98AB,
+ 27125 - 11905: 0x98AC,
+ 27126 - 11905: 0x98AD,
+ 27127 - 11905: 0x98AE,
+ 27128 - 11905: 0x98AF,
+ 27129 - 11905: 0x98B0,
+ 27130 - 11905: 0x98B1,
+ 27131 - 11905: 0x98B2,
+ 27132 - 11905: 0x98B3,
+ 27133 - 11905: 0xB2DB,
+ 27134 - 11905: 0x98B4,
+ 27135 - 11905: 0xE9C8,
+ 27136 - 11905: 0x98B5,
+ 27137 - 11905: 0x98B6,
+ 27138 - 11905: 0x98B7,
+ 27139 - 11905: 0x98B8,
+ 27140 - 11905: 0x98B9,
+ 27141 - 11905: 0x98BA,
+ 27142 - 11905: 0x98BB,
+ 27143 - 11905: 0x98BC,
+ 27144 - 11905: 0x98BD,
+ 27145 - 11905: 0x98BE,
+ 27146 - 11905: 0xB7AE,
+ 27147 - 11905: 0x98BF,
+ 27148 - 11905: 0x98C0,
+ 27149 - 11905: 0x98C1,
+ 27150 - 11905: 0x98C2,
+ 27151 - 11905: 0x98C3,
+ 27152 - 11905: 0x98C4,
+ 27153 - 11905: 0x98C5,
+ 27154 - 11905: 0x98C6,
+ 27155 - 11905: 0x98C7,
+ 27156 - 11905: 0x98C8,
+ 27157 - 11905: 0x98C9,
+ 27158 - 11905: 0x98CA,
+ 27159 - 11905: 0xE9CB,
+ 27160 - 11905: 0xE9CC,
+ 27161 - 11905: 0x98CB,
+ 27162 - 11905: 0x98CC,
+ 27163 - 11905: 0x98CD,
+ 27164 - 11905: 0x98CE,
+ 27165 - 11905: 0x98CF,
+ 27166 - 11905: 0x98D0,
+ 27167 - 11905: 0xD5C1,
+ 27168 - 11905: 0x98D1,
+ 27169 - 11905: 0xC4A3,
+ 27170 - 11905: 0x98D2,
+ 27171 - 11905: 0x98D3,
+ 27172 - 11905: 0x98D4,
+ 27173 - 11905: 0x98D5,
+ 27174 - 11905: 0x98D6,
+ 27175 - 11905: 0x98D7,
+ 27176 - 11905: 0xE9D8,
+ 27177 - 11905: 0x98D8,
+ 27178 - 11905: 0xBAE1,
+ 27179 - 11905: 0x98D9,
+ 27180 - 11905: 0x98DA,
+ 27181 - 11905: 0x98DB,
+ 27182 - 11905: 0x98DC,
+ 27183 - 11905: 0xE9C9,
+ 27184 - 11905: 0x98DD,
+ 27185 - 11905: 0xD3A3,
+ 27186 - 11905: 0x98DE,
+ 27187 - 11905: 0x98DF,
+ 27188 - 11905: 0x98E0,
+ 27189 - 11905: 0xE9D4,
+ 27190 - 11905: 0x98E1,
+ 27191 - 11905: 0x98E2,
+ 27192 - 11905: 0x98E3,
+ 27193 - 11905: 0x98E4,
+ 27194 - 11905: 0x98E5,
+ 27195 - 11905: 0x98E6,
+ 27196 - 11905: 0x98E7,
+ 27197 - 11905: 0xE9D7,
+ 27198 - 11905: 0xE9D0,
+ 27199 - 11905: 0x98E8,
+ 27200 - 11905: 0x98E9,
+ 27201 - 11905: 0x98EA,
+ 27202 - 11905: 0x98EB,
+ 27203 - 11905: 0x98EC,
+ 27204 - 11905: 0xE9CF,
+ 27205 - 11905: 0x98ED,
+ 27206 - 11905: 0x98EE,
+ 27207 - 11905: 0xC7C1,
+ 27208 - 11905: 0x98EF,
+ 27209 - 11905: 0x98F0,
+ 27210 - 11905: 0x98F1,
+ 27211 - 11905: 0x98F2,
+ 27212 - 11905: 0x98F3,
+ 27213 - 11905: 0x98F4,
+ 27214 - 11905: 0x98F5,
+ 27215 - 11905: 0x98F6,
+ 27216 - 11905: 0xE9D2,
+ 27217 - 11905: 0x98F7,
+ 27218 - 11905: 0x98F8,
+ 27219 - 11905: 0x98F9,
+ 27220 - 11905: 0x98FA,
+ 27221 - 11905: 0x98FB,
+ 27222 - 11905: 0x98FC,
+ 27223 - 11905: 0x98FD,
+ 27224 - 11905: 0xE9D9,
+ 27225 - 11905: 0xB3C8,
+ 27226 - 11905: 0x98FE,
+ 27227 - 11905: 0xE9D3,
+ 27228 - 11905: 0x9940,
+ 27229 - 11905: 0x9941,
+ 27230 - 11905: 0x9942,
+ 27231 - 11905: 0x9943,
+ 27232 - 11905: 0x9944,
+ 27233 - 11905: 0xCFF0,
+ 27234 - 11905: 0x9945,
+ 27235 - 11905: 0x9946,
+ 27236 - 11905: 0x9947,
+ 27237 - 11905: 0xE9CD,
+ 27238 - 11905: 0x9948,
+ 27239 - 11905: 0x9949,
+ 27240 - 11905: 0x994A,
+ 27241 - 11905: 0x994B,
+ 27242 - 11905: 0x994C,
+ 27243 - 11905: 0x994D,
+ 27244 - 11905: 0x994E,
+ 27245 - 11905: 0x994F,
+ 27246 - 11905: 0x9950,
+ 27247 - 11905: 0x9951,
+ 27248 - 11905: 0x9952,
+ 27249 - 11905: 0xB3F7,
+ 27250 - 11905: 0x9953,
+ 27251 - 11905: 0x9954,
+ 27252 - 11905: 0x9955,
+ 27253 - 11905: 0x9956,
+ 27254 - 11905: 0x9957,
+ 27255 - 11905: 0x9958,
+ 27256 - 11905: 0x9959,
+ 27257 - 11905: 0xE9D6,
+ 27258 - 11905: 0x995A,
+ 27259 - 11905: 0x995B,
+ 27260 - 11905: 0xE9DA,
+ 27261 - 11905: 0x995C,
+ 27262 - 11905: 0x995D,
+ 27263 - 11905: 0x995E,
+ 27264 - 11905: 0xCCB4,
+ 27265 - 11905: 0x995F,
+ 27266 - 11905: 0x9960,
+ 27267 - 11905: 0x9961,
+ 27268 - 11905: 0xCFAD,
+ 27269 - 11905: 0x9962,
+ 27270 - 11905: 0x9963,
+ 27271 - 11905: 0x9964,
+ 27272 - 11905: 0x9965,
+ 27273 - 11905: 0x9966,
+ 27274 - 11905: 0x9967,
+ 27275 - 11905: 0x9968,
+ 27276 - 11905: 0x9969,
+ 27277 - 11905: 0x996A,
+ 27278 - 11905: 0xE9D5,
+ 27279 - 11905: 0x996B,
+ 27280 - 11905: 0xE9DC,
+ 27281 - 11905: 0xE9DB,
+ 27282 - 11905: 0x996C,
+ 27283 - 11905: 0x996D,
+ 27284 - 11905: 0x996E,
+ 27285 - 11905: 0x996F,
+ 27286 - 11905: 0x9970,
+ 27287 - 11905: 0xE9DE,
+ 27288 - 11905: 0x9971,
+ 27289 - 11905: 0x9972,
+ 27290 - 11905: 0x9973,
+ 27291 - 11905: 0x9974,
+ 27292 - 11905: 0x9975,
+ 27293 - 11905: 0x9976,
+ 27294 - 11905: 0x9977,
+ 27295 - 11905: 0x9978,
+ 27296 - 11905: 0xE9D1,
+ 27297 - 11905: 0x9979,
+ 27298 - 11905: 0x997A,
+ 27299 - 11905: 0x997B,
+ 27300 - 11905: 0x997C,
+ 27301 - 11905: 0x997D,
+ 27302 - 11905: 0x997E,
+ 27303 - 11905: 0x9980,
+ 27304 - 11905: 0x9981,
+ 27305 - 11905: 0xE9DD,
+ 27306 - 11905: 0x9982,
+ 27307 - 11905: 0xE9DF,
+ 27308 - 11905: 0xC3CA,
+ 27309 - 11905: 0x9983,
+ 27310 - 11905: 0x9984,
+ 27311 - 11905: 0x9985,
+ 27312 - 11905: 0x9986,
+ 27313 - 11905: 0x9987,
+ 27314 - 11905: 0x9988,
+ 27315 - 11905: 0x9989,
+ 27316 - 11905: 0x998A,
+ 27317 - 11905: 0x998B,
+ 27318 - 11905: 0x998C,
+ 27319 - 11905: 0x998D,
+ 27320 - 11905: 0x998E,
+ 27321 - 11905: 0x998F,
+ 27322 - 11905: 0x9990,
+ 27323 - 11905: 0x9991,
+ 27324 - 11905: 0x9992,
+ 27325 - 11905: 0x9993,
+ 27326 - 11905: 0x9994,
+ 27327 - 11905: 0x9995,
+ 27328 - 11905: 0x9996,
+ 27329 - 11905: 0x9997,
+ 27330 - 11905: 0x9998,
+ 27331 - 11905: 0x9999,
+ 27332 - 11905: 0x999A,
+ 27333 - 11905: 0x999B,
+ 27334 - 11905: 0x999C,
+ 27335 - 11905: 0x999D,
+ 27336 - 11905: 0x999E,
+ 27337 - 11905: 0x999F,
+ 27338 - 11905: 0x99A0,
+ 27339 - 11905: 0x99A1,
+ 27340 - 11905: 0x99A2,
+ 27341 - 11905: 0x99A3,
+ 27342 - 11905: 0x99A4,
+ 27343 - 11905: 0x99A5,
+ 27344 - 11905: 0x99A6,
+ 27345 - 11905: 0x99A7,
+ 27346 - 11905: 0x99A8,
+ 27347 - 11905: 0x99A9,
+ 27348 - 11905: 0x99AA,
+ 27349 - 11905: 0x99AB,
+ 27350 - 11905: 0x99AC,
+ 27351 - 11905: 0x99AD,
+ 27352 - 11905: 0x99AE,
+ 27353 - 11905: 0x99AF,
+ 27354 - 11905: 0x99B0,
+ 27355 - 11905: 0x99B1,
+ 27356 - 11905: 0x99B2,
+ 27357 - 11905: 0x99B3,
+ 27358 - 11905: 0x99B4,
+ 27359 - 11905: 0x99B5,
+ 27360 - 11905: 0x99B6,
+ 27361 - 11905: 0x99B7,
+ 27362 - 11905: 0x99B8,
+ 27363 - 11905: 0x99B9,
+ 27364 - 11905: 0x99BA,
+ 27365 - 11905: 0x99BB,
+ 27366 - 11905: 0x99BC,
+ 27367 - 11905: 0x99BD,
+ 27368 - 11905: 0x99BE,
+ 27369 - 11905: 0x99BF,
+ 27370 - 11905: 0x99C0,
+ 27371 - 11905: 0x99C1,
+ 27372 - 11905: 0x99C2,
+ 27373 - 11905: 0x99C3,
+ 27374 - 11905: 0x99C4,
+ 27375 - 11905: 0x99C5,
+ 27376 - 11905: 0x99C6,
+ 27377 - 11905: 0x99C7,
+ 27378 - 11905: 0x99C8,
+ 27379 - 11905: 0x99C9,
+ 27380 - 11905: 0x99CA,
+ 27381 - 11905: 0x99CB,
+ 27382 - 11905: 0x99CC,
+ 27383 - 11905: 0x99CD,
+ 27384 - 11905: 0x99CE,
+ 27385 - 11905: 0x99CF,
+ 27386 - 11905: 0x99D0,
+ 27387 - 11905: 0x99D1,
+ 27388 - 11905: 0x99D2,
+ 27389 - 11905: 0x99D3,
+ 27390 - 11905: 0x99D4,
+ 27391 - 11905: 0x99D5,
+ 27392 - 11905: 0x99D6,
+ 27393 - 11905: 0x99D7,
+ 27394 - 11905: 0x99D8,
+ 27395 - 11905: 0x99D9,
+ 27396 - 11905: 0x99DA,
+ 27397 - 11905: 0x99DB,
+ 27398 - 11905: 0x99DC,
+ 27399 - 11905: 0x99DD,
+ 27400 - 11905: 0x99DE,
+ 27401 - 11905: 0x99DF,
+ 27402 - 11905: 0x99E0,
+ 27403 - 11905: 0x99E1,
+ 27404 - 11905: 0x99E2,
+ 27405 - 11905: 0x99E3,
+ 27406 - 11905: 0x99E4,
+ 27407 - 11905: 0x99E5,
+ 27408 - 11905: 0x99E6,
+ 27409 - 11905: 0x99E7,
+ 27410 - 11905: 0x99E8,
+ 27411 - 11905: 0x99E9,
+ 27412 - 11905: 0x99EA,
+ 27413 - 11905: 0x99EB,
+ 27414 - 11905: 0x99EC,
+ 27415 - 11905: 0x99ED,
+ 27416 - 11905: 0x99EE,
+ 27417 - 11905: 0x99EF,
+ 27418 - 11905: 0x99F0,
+ 27419 - 11905: 0x99F1,
+ 27420 - 11905: 0x99F2,
+ 27421 - 11905: 0x99F3,
+ 27422 - 11905: 0x99F4,
+ 27423 - 11905: 0x99F5,
+ 27424 - 11905: 0xC7B7,
+ 27425 - 11905: 0xB4CE,
+ 27426 - 11905: 0xBBB6,
+ 27427 - 11905: 0xD0C0,
+ 27428 - 11905: 0xECA3,
+ 27429 - 11905: 0x99F6,
+ 27430 - 11905: 0x99F7,
+ 27431 - 11905: 0xC5B7,
+ 27432 - 11905: 0x99F8,
+ 27433 - 11905: 0x99F9,
+ 27434 - 11905: 0x99FA,
+ 27435 - 11905: 0x99FB,
+ 27436 - 11905: 0x99FC,
+ 27437 - 11905: 0x99FD,
+ 27438 - 11905: 0x99FE,
+ 27439 - 11905: 0x9A40,
+ 27440 - 11905: 0x9A41,
+ 27441 - 11905: 0x9A42,
+ 27442 - 11905: 0xD3FB,
+ 27443 - 11905: 0x9A43,
+ 27444 - 11905: 0x9A44,
+ 27445 - 11905: 0x9A45,
+ 27446 - 11905: 0x9A46,
+ 27447 - 11905: 0xECA4,
+ 27448 - 11905: 0x9A47,
+ 27449 - 11905: 0xECA5,
+ 27450 - 11905: 0xC6DB,
+ 27451 - 11905: 0x9A48,
+ 27452 - 11905: 0x9A49,
+ 27453 - 11905: 0x9A4A,
+ 27454 - 11905: 0xBFEE,
+ 27455 - 11905: 0x9A4B,
+ 27456 - 11905: 0x9A4C,
+ 27457 - 11905: 0x9A4D,
+ 27458 - 11905: 0x9A4E,
+ 27459 - 11905: 0xECA6,
+ 27460 - 11905: 0x9A4F,
+ 27461 - 11905: 0x9A50,
+ 27462 - 11905: 0xECA7,
+ 27463 - 11905: 0xD0AA,
+ 27464 - 11905: 0x9A51,
+ 27465 - 11905: 0xC7B8,
+ 27466 - 11905: 0x9A52,
+ 27467 - 11905: 0x9A53,
+ 27468 - 11905: 0xB8E8,
+ 27469 - 11905: 0x9A54,
+ 27470 - 11905: 0x9A55,
+ 27471 - 11905: 0x9A56,
+ 27472 - 11905: 0x9A57,
+ 27473 - 11905: 0x9A58,
+ 27474 - 11905: 0x9A59,
+ 27475 - 11905: 0x9A5A,
+ 27476 - 11905: 0x9A5B,
+ 27477 - 11905: 0x9A5C,
+ 27478 - 11905: 0x9A5D,
+ 27479 - 11905: 0x9A5E,
+ 27480 - 11905: 0x9A5F,
+ 27481 - 11905: 0xECA8,
+ 27482 - 11905: 0x9A60,
+ 27483 - 11905: 0x9A61,
+ 27484 - 11905: 0x9A62,
+ 27485 - 11905: 0x9A63,
+ 27486 - 11905: 0x9A64,
+ 27487 - 11905: 0x9A65,
+ 27488 - 11905: 0x9A66,
+ 27489 - 11905: 0x9A67,
+ 27490 - 11905: 0xD6B9,
+ 27491 - 11905: 0xD5FD,
+ 27492 - 11905: 0xB4CB,
+ 27493 - 11905: 0xB2BD,
+ 27494 - 11905: 0xCEE4,
+ 27495 - 11905: 0xC6E7,
+ 27496 - 11905: 0x9A68,
+ 27497 - 11905: 0x9A69,
+ 27498 - 11905: 0xCDE1,
+ 27499 - 11905: 0x9A6A,
+ 27500 - 11905: 0x9A6B,
+ 27501 - 11905: 0x9A6C,
+ 27502 - 11905: 0x9A6D,
+ 27503 - 11905: 0x9A6E,
+ 27504 - 11905: 0x9A6F,
+ 27505 - 11905: 0x9A70,
+ 27506 - 11905: 0x9A71,
+ 27507 - 11905: 0x9A72,
+ 27508 - 11905: 0x9A73,
+ 27509 - 11905: 0x9A74,
+ 27510 - 11905: 0x9A75,
+ 27511 - 11905: 0x9A76,
+ 27512 - 11905: 0x9A77,
+ 27513 - 11905: 0xB4F5,
+ 27514 - 11905: 0x9A78,
+ 27515 - 11905: 0xCBC0,
+ 27516 - 11905: 0xBCDF,
+ 27517 - 11905: 0x9A79,
+ 27518 - 11905: 0x9A7A,
+ 27519 - 11905: 0x9A7B,
+ 27520 - 11905: 0x9A7C,
+ 27521 - 11905: 0xE9E2,
+ 27522 - 11905: 0xE9E3,
+ 27523 - 11905: 0xD1EA,
+ 27524 - 11905: 0xE9E5,
+ 27525 - 11905: 0x9A7D,
+ 27526 - 11905: 0xB4F9,
+ 27527 - 11905: 0xE9E4,
+ 27528 - 11905: 0x9A7E,
+ 27529 - 11905: 0xD1B3,
+ 27530 - 11905: 0xCAE2,
+ 27531 - 11905: 0xB2D0,
+ 27532 - 11905: 0x9A80,
+ 27533 - 11905: 0xE9E8,
+ 27534 - 11905: 0x9A81,
+ 27535 - 11905: 0x9A82,
+ 27536 - 11905: 0x9A83,
+ 27537 - 11905: 0x9A84,
+ 27538 - 11905: 0xE9E6,
+ 27539 - 11905: 0xE9E7,
+ 27540 - 11905: 0x9A85,
+ 27541 - 11905: 0x9A86,
+ 27542 - 11905: 0xD6B3,
+ 27543 - 11905: 0x9A87,
+ 27544 - 11905: 0x9A88,
+ 27545 - 11905: 0x9A89,
+ 27546 - 11905: 0xE9E9,
+ 27547 - 11905: 0xE9EA,
+ 27548 - 11905: 0x9A8A,
+ 27549 - 11905: 0x9A8B,
+ 27550 - 11905: 0x9A8C,
+ 27551 - 11905: 0x9A8D,
+ 27552 - 11905: 0x9A8E,
+ 27553 - 11905: 0xE9EB,
+ 27554 - 11905: 0x9A8F,
+ 27555 - 11905: 0x9A90,
+ 27556 - 11905: 0x9A91,
+ 27557 - 11905: 0x9A92,
+ 27558 - 11905: 0x9A93,
+ 27559 - 11905: 0x9A94,
+ 27560 - 11905: 0x9A95,
+ 27561 - 11905: 0x9A96,
+ 27562 - 11905: 0xE9EC,
+ 27563 - 11905: 0x9A97,
+ 27564 - 11905: 0x9A98,
+ 27565 - 11905: 0x9A99,
+ 27566 - 11905: 0x9A9A,
+ 27567 - 11905: 0x9A9B,
+ 27568 - 11905: 0x9A9C,
+ 27569 - 11905: 0x9A9D,
+ 27570 - 11905: 0x9A9E,
+ 27571 - 11905: 0xECAF,
+ 27572 - 11905: 0xC5B9,
+ 27573 - 11905: 0xB6CE,
+ 27574 - 11905: 0x9A9F,
+ 27575 - 11905: 0xD2F3,
+ 27576 - 11905: 0x9AA0,
+ 27577 - 11905: 0x9AA1,
+ 27578 - 11905: 0x9AA2,
+ 27579 - 11905: 0x9AA3,
+ 27580 - 11905: 0x9AA4,
+ 27581 - 11905: 0x9AA5,
+ 27582 - 11905: 0x9AA6,
+ 27583 - 11905: 0xB5EE,
+ 27584 - 11905: 0x9AA7,
+ 27585 - 11905: 0xBBD9,
+ 27586 - 11905: 0xECB1,
+ 27587 - 11905: 0x9AA8,
+ 27588 - 11905: 0x9AA9,
+ 27589 - 11905: 0xD2E3,
+ 27590 - 11905: 0x9AAA,
+ 27591 - 11905: 0x9AAB,
+ 27592 - 11905: 0x9AAC,
+ 27593 - 11905: 0x9AAD,
+ 27594 - 11905: 0x9AAE,
+ 27595 - 11905: 0xCEE3,
+ 27596 - 11905: 0x9AAF,
+ 27597 - 11905: 0xC4B8,
+ 27598 - 11905: 0x9AB0,
+ 27599 - 11905: 0xC3BF,
+ 27600 - 11905: 0x9AB1,
+ 27601 - 11905: 0x9AB2,
+ 27602 - 11905: 0xB6BE,
+ 27603 - 11905: 0xD8B9,
+ 27604 - 11905: 0xB1C8,
+ 27605 - 11905: 0xB1CF,
+ 27606 - 11905: 0xB1D1,
+ 27607 - 11905: 0xC5FE,
+ 27608 - 11905: 0x9AB3,
+ 27609 - 11905: 0xB1D0,
+ 27610 - 11905: 0x9AB4,
+ 27611 - 11905: 0xC3AB,
+ 27612 - 11905: 0x9AB5,
+ 27613 - 11905: 0x9AB6,
+ 27614 - 11905: 0x9AB7,
+ 27615 - 11905: 0x9AB8,
+ 27616 - 11905: 0x9AB9,
+ 27617 - 11905: 0xD5B1,
+ 27618 - 11905: 0x9ABA,
+ 27619 - 11905: 0x9ABB,
+ 27620 - 11905: 0x9ABC,
+ 27621 - 11905: 0x9ABD,
+ 27622 - 11905: 0x9ABE,
+ 27623 - 11905: 0x9ABF,
+ 27624 - 11905: 0x9AC0,
+ 27625 - 11905: 0x9AC1,
+ 27626 - 11905: 0xEBA4,
+ 27627 - 11905: 0xBAC1,
+ 27628 - 11905: 0x9AC2,
+ 27629 - 11905: 0x9AC3,
+ 27630 - 11905: 0x9AC4,
+ 27631 - 11905: 0xCCBA,
+ 27632 - 11905: 0x9AC5,
+ 27633 - 11905: 0x9AC6,
+ 27634 - 11905: 0x9AC7,
+ 27635 - 11905: 0xEBA5,
+ 27636 - 11905: 0x9AC8,
+ 27637 - 11905: 0xEBA7,
+ 27638 - 11905: 0x9AC9,
+ 27639 - 11905: 0x9ACA,
+ 27640 - 11905: 0x9ACB,
+ 27641 - 11905: 0xEBA8,
+ 27642 - 11905: 0x9ACC,
+ 27643 - 11905: 0x9ACD,
+ 27644 - 11905: 0x9ACE,
+ 27645 - 11905: 0xEBA6,
+ 27646 - 11905: 0x9ACF,
+ 27647 - 11905: 0x9AD0,
+ 27648 - 11905: 0x9AD1,
+ 27649 - 11905: 0x9AD2,
+ 27650 - 11905: 0x9AD3,
+ 27651 - 11905: 0x9AD4,
+ 27652 - 11905: 0x9AD5,
+ 27653 - 11905: 0xEBA9,
+ 27654 - 11905: 0xEBAB,
+ 27655 - 11905: 0xEBAA,
+ 27656 - 11905: 0x9AD6,
+ 27657 - 11905: 0x9AD7,
+ 27658 - 11905: 0x9AD8,
+ 27659 - 11905: 0x9AD9,
+ 27660 - 11905: 0x9ADA,
+ 27661 - 11905: 0xEBAC,
+ 27662 - 11905: 0x9ADB,
+ 27663 - 11905: 0xCACF,
+ 27664 - 11905: 0xD8B5,
+ 27665 - 11905: 0xC3F1,
+ 27666 - 11905: 0x9ADC,
+ 27667 - 11905: 0xC3A5,
+ 27668 - 11905: 0xC6F8,
+ 27669 - 11905: 0xEBAD,
+ 27670 - 11905: 0xC4CA,
+ 27671 - 11905: 0x9ADD,
+ 27672 - 11905: 0xEBAE,
+ 27673 - 11905: 0xEBAF,
+ 27674 - 11905: 0xEBB0,
+ 27675 - 11905: 0xB7D5,
+ 27676 - 11905: 0x9ADE,
+ 27677 - 11905: 0x9ADF,
+ 27678 - 11905: 0x9AE0,
+ 27679 - 11905: 0xB7FA,
+ 27680 - 11905: 0x9AE1,
+ 27681 - 11905: 0xEBB1,
+ 27682 - 11905: 0xC7E2,
+ 27683 - 11905: 0x9AE2,
+ 27684 - 11905: 0xEBB3,
+ 27685 - 11905: 0x9AE3,
+ 27686 - 11905: 0xBAA4,
+ 27687 - 11905: 0xD1F5,
+ 27688 - 11905: 0xB0B1,
+ 27689 - 11905: 0xEBB2,
+ 27690 - 11905: 0xEBB4,
+ 27691 - 11905: 0x9AE4,
+ 27692 - 11905: 0x9AE5,
+ 27693 - 11905: 0x9AE6,
+ 27694 - 11905: 0xB5AA,
+ 27695 - 11905: 0xC2C8,
+ 27696 - 11905: 0xC7E8,
+ 27697 - 11905: 0x9AE7,
+ 27698 - 11905: 0xEBB5,
+ 27699 - 11905: 0x9AE8,
+ 27700 - 11905: 0xCBAE,
+ 27701 - 11905: 0xE3DF,
+ 27702 - 11905: 0x9AE9,
+ 27703 - 11905: 0x9AEA,
+ 27704 - 11905: 0xD3C0,
+ 27705 - 11905: 0x9AEB,
+ 27706 - 11905: 0x9AEC,
+ 27707 - 11905: 0x9AED,
+ 27708 - 11905: 0x9AEE,
+ 27709 - 11905: 0xD9DB,
+ 27710 - 11905: 0x9AEF,
+ 27711 - 11905: 0x9AF0,
+ 27712 - 11905: 0xCDA1,
+ 27713 - 11905: 0xD6AD,
+ 27714 - 11905: 0xC7F3,
+ 27715 - 11905: 0x9AF1,
+ 27716 - 11905: 0x9AF2,
+ 27717 - 11905: 0x9AF3,
+ 27718 - 11905: 0xD9E0,
+ 27719 - 11905: 0xBBE3,
+ 27720 - 11905: 0x9AF4,
+ 27721 - 11905: 0xBABA,
+ 27722 - 11905: 0xE3E2,
+ 27723 - 11905: 0x9AF5,
+ 27724 - 11905: 0x9AF6,
+ 27725 - 11905: 0x9AF7,
+ 27726 - 11905: 0x9AF8,
+ 27727 - 11905: 0x9AF9,
+ 27728 - 11905: 0xCFAB,
+ 27729 - 11905: 0x9AFA,
+ 27730 - 11905: 0x9AFB,
+ 27731 - 11905: 0x9AFC,
+ 27732 - 11905: 0xE3E0,
+ 27733 - 11905: 0xC9C7,
+ 27734 - 11905: 0x9AFD,
+ 27735 - 11905: 0xBAB9,
+ 27736 - 11905: 0x9AFE,
+ 27737 - 11905: 0x9B40,
+ 27738 - 11905: 0x9B41,
+ 27739 - 11905: 0xD1B4,
+ 27740 - 11905: 0xE3E1,
+ 27741 - 11905: 0xC8EA,
+ 27742 - 11905: 0xB9AF,
+ 27743 - 11905: 0xBDAD,
+ 27744 - 11905: 0xB3D8,
+ 27745 - 11905: 0xCEDB,
+ 27746 - 11905: 0x9B42,
+ 27747 - 11905: 0x9B43,
+ 27748 - 11905: 0xCCC0,
+ 27749 - 11905: 0x9B44,
+ 27750 - 11905: 0x9B45,
+ 27751 - 11905: 0x9B46,
+ 27752 - 11905: 0xE3E8,
+ 27753 - 11905: 0xE3E9,
+ 27754 - 11905: 0xCDF4,
+ 27755 - 11905: 0x9B47,
+ 27756 - 11905: 0x9B48,
+ 27757 - 11905: 0x9B49,
+ 27758 - 11905: 0x9B4A,
+ 27759 - 11905: 0x9B4B,
+ 27760 - 11905: 0xCCAD,
+ 27761 - 11905: 0x9B4C,
+ 27762 - 11905: 0xBCB3,
+ 27763 - 11905: 0x9B4D,
+ 27764 - 11905: 0xE3EA,
+ 27765 - 11905: 0x9B4E,
+ 27766 - 11905: 0xE3EB,
+ 27767 - 11905: 0x9B4F,
+ 27768 - 11905: 0x9B50,
+ 27769 - 11905: 0xD0DA,
+ 27770 - 11905: 0x9B51,
+ 27771 - 11905: 0x9B52,
+ 27772 - 11905: 0x9B53,
+ 27773 - 11905: 0xC6FB,
+ 27774 - 11905: 0xB7DA,
+ 27775 - 11905: 0x9B54,
+ 27776 - 11905: 0x9B55,
+ 27777 - 11905: 0xC7DF,
+ 27778 - 11905: 0xD2CA,
+ 27779 - 11905: 0xCED6,
+ 27780 - 11905: 0x9B56,
+ 27781 - 11905: 0xE3E4,
+ 27782 - 11905: 0xE3EC,
+ 27783 - 11905: 0x9B57,
+ 27784 - 11905: 0xC9F2,
+ 27785 - 11905: 0xB3C1,
+ 27786 - 11905: 0x9B58,
+ 27787 - 11905: 0x9B59,
+ 27788 - 11905: 0xE3E7,
+ 27789 - 11905: 0x9B5A,
+ 27790 - 11905: 0x9B5B,
+ 27791 - 11905: 0xC6E3,
+ 27792 - 11905: 0xE3E5,
+ 27793 - 11905: 0x9B5C,
+ 27794 - 11905: 0x9B5D,
+ 27795 - 11905: 0xEDB3,
+ 27796 - 11905: 0xE3E6,
+ 27797 - 11905: 0x9B5E,
+ 27798 - 11905: 0x9B5F,
+ 27799 - 11905: 0x9B60,
+ 27800 - 11905: 0x9B61,
+ 27801 - 11905: 0xC9B3,
+ 27802 - 11905: 0x9B62,
+ 27803 - 11905: 0xC5E6,
+ 27804 - 11905: 0x9B63,
+ 27805 - 11905: 0x9B64,
+ 27806 - 11905: 0x9B65,
+ 27807 - 11905: 0xB9B5,
+ 27808 - 11905: 0x9B66,
+ 27809 - 11905: 0xC3BB,
+ 27810 - 11905: 0x9B67,
+ 27811 - 11905: 0xE3E3,
+ 27812 - 11905: 0xC5BD,
+ 27813 - 11905: 0xC1A4,
+ 27814 - 11905: 0xC2D9,
+ 27815 - 11905: 0xB2D7,
+ 27816 - 11905: 0x9B68,
+ 27817 - 11905: 0xE3ED,
+ 27818 - 11905: 0xBBA6,
+ 27819 - 11905: 0xC4AD,
+ 27820 - 11905: 0x9B69,
+ 27821 - 11905: 0xE3F0,
+ 27822 - 11905: 0xBEDA,
+ 27823 - 11905: 0x9B6A,
+ 27824 - 11905: 0x9B6B,
+ 27825 - 11905: 0xE3FB,
+ 27826 - 11905: 0xE3F5,
+ 27827 - 11905: 0xBAD3,
+ 27828 - 11905: 0x9B6C,
+ 27829 - 11905: 0x9B6D,
+ 27830 - 11905: 0x9B6E,
+ 27831 - 11905: 0x9B6F,
+ 27832 - 11905: 0xB7D0,
+ 27833 - 11905: 0xD3CD,
+ 27834 - 11905: 0x9B70,
+ 27835 - 11905: 0xD6CE,
+ 27836 - 11905: 0xD5D3,
+ 27837 - 11905: 0xB9C1,
+ 27838 - 11905: 0xD5B4,
+ 27839 - 11905: 0xD1D8,
+ 27840 - 11905: 0x9B71,
+ 27841 - 11905: 0x9B72,
+ 27842 - 11905: 0x9B73,
+ 27843 - 11905: 0x9B74,
+ 27844 - 11905: 0xD0B9,
+ 27845 - 11905: 0xC7F6,
+ 27846 - 11905: 0x9B75,
+ 27847 - 11905: 0x9B76,
+ 27848 - 11905: 0x9B77,
+ 27849 - 11905: 0xC8AA,
+ 27850 - 11905: 0xB2B4,
+ 27851 - 11905: 0x9B78,
+ 27852 - 11905: 0xC3DA,
+ 27853 - 11905: 0x9B79,
+ 27854 - 11905: 0x9B7A,
+ 27855 - 11905: 0x9B7B,
+ 27856 - 11905: 0xE3EE,
+ 27857 - 11905: 0x9B7C,
+ 27858 - 11905: 0x9B7D,
+ 27859 - 11905: 0xE3FC,
+ 27860 - 11905: 0xE3EF,
+ 27861 - 11905: 0xB7A8,
+ 27862 - 11905: 0xE3F7,
+ 27863 - 11905: 0xE3F4,
+ 27864 - 11905: 0x9B7E,
+ 27865 - 11905: 0x9B80,
+ 27866 - 11905: 0x9B81,
+ 27867 - 11905: 0xB7BA,
+ 27868 - 11905: 0x9B82,
+ 27869 - 11905: 0x9B83,
+ 27870 - 11905: 0xC5A2,
+ 27871 - 11905: 0x9B84,
+ 27872 - 11905: 0xE3F6,
+ 27873 - 11905: 0xC5DD,
+ 27874 - 11905: 0xB2A8,
+ 27875 - 11905: 0xC6FC,
+ 27876 - 11905: 0x9B85,
+ 27877 - 11905: 0xC4E0,
+ 27878 - 11905: 0x9B86,
+ 27879 - 11905: 0x9B87,
+ 27880 - 11905: 0xD7A2,
+ 27881 - 11905: 0x9B88,
+ 27882 - 11905: 0xC0E1,
+ 27883 - 11905: 0xE3F9,
+ 27884 - 11905: 0x9B89,
+ 27885 - 11905: 0x9B8A,
+ 27886 - 11905: 0xE3FA,
+ 27887 - 11905: 0xE3FD,
+ 27888 - 11905: 0xCCA9,
+ 27889 - 11905: 0xE3F3,
+ 27890 - 11905: 0x9B8B,
+ 27891 - 11905: 0xD3BE,
+ 27892 - 11905: 0x9B8C,
+ 27893 - 11905: 0xB1C3,
+ 27894 - 11905: 0xEDB4,
+ 27895 - 11905: 0xE3F1,
+ 27896 - 11905: 0xE3F2,
+ 27897 - 11905: 0x9B8D,
+ 27898 - 11905: 0xE3F8,
+ 27899 - 11905: 0xD0BA,
+ 27900 - 11905: 0xC6C3,
+ 27901 - 11905: 0xD4F3,
+ 27902 - 11905: 0xE3FE,
+ 27903 - 11905: 0x9B8E,
+ 27904 - 11905: 0x9B8F,
+ 27905 - 11905: 0xBDE0,
+ 27906 - 11905: 0x9B90,
+ 27907 - 11905: 0x9B91,
+ 27908 - 11905: 0xE4A7,
+ 27909 - 11905: 0x9B92,
+ 27910 - 11905: 0x9B93,
+ 27911 - 11905: 0xE4A6,
+ 27912 - 11905: 0x9B94,
+ 27913 - 11905: 0x9B95,
+ 27914 - 11905: 0x9B96,
+ 27915 - 11905: 0xD1F3,
+ 27916 - 11905: 0xE4A3,
+ 27917 - 11905: 0x9B97,
+ 27918 - 11905: 0xE4A9,
+ 27919 - 11905: 0x9B98,
+ 27920 - 11905: 0x9B99,
+ 27921 - 11905: 0x9B9A,
+ 27922 - 11905: 0xC8F7,
+ 27923 - 11905: 0x9B9B,
+ 27924 - 11905: 0x9B9C,
+ 27925 - 11905: 0x9B9D,
+ 27926 - 11905: 0x9B9E,
+ 27927 - 11905: 0xCFB4,
+ 27928 - 11905: 0x9B9F,
+ 27929 - 11905: 0xE4A8,
+ 27930 - 11905: 0xE4AE,
+ 27931 - 11905: 0xC2E5,
+ 27932 - 11905: 0x9BA0,
+ 27933 - 11905: 0x9BA1,
+ 27934 - 11905: 0xB6B4,
+ 27935 - 11905: 0x9BA2,
+ 27936 - 11905: 0x9BA3,
+ 27937 - 11905: 0x9BA4,
+ 27938 - 11905: 0x9BA5,
+ 27939 - 11905: 0x9BA6,
+ 27940 - 11905: 0x9BA7,
+ 27941 - 11905: 0xBDF2,
+ 27942 - 11905: 0x9BA8,
+ 27943 - 11905: 0xE4A2,
+ 27944 - 11905: 0x9BA9,
+ 27945 - 11905: 0x9BAA,
+ 27946 - 11905: 0xBAE9,
+ 27947 - 11905: 0xE4AA,
+ 27948 - 11905: 0x9BAB,
+ 27949 - 11905: 0x9BAC,
+ 27950 - 11905: 0xE4AC,
+ 27951 - 11905: 0x9BAD,
+ 27952 - 11905: 0x9BAE,
+ 27953 - 11905: 0xB6FD,
+ 27954 - 11905: 0xD6DE,
+ 27955 - 11905: 0xE4B2,
+ 27956 - 11905: 0x9BAF,
+ 27957 - 11905: 0xE4AD,
+ 27958 - 11905: 0x9BB0,
+ 27959 - 11905: 0x9BB1,
+ 27960 - 11905: 0x9BB2,
+ 27961 - 11905: 0xE4A1,
+ 27962 - 11905: 0x9BB3,
+ 27963 - 11905: 0xBBEE,
+ 27964 - 11905: 0xCDDD,
+ 27965 - 11905: 0xC7A2,
+ 27966 - 11905: 0xC5C9,
+ 27967 - 11905: 0x9BB4,
+ 27968 - 11905: 0x9BB5,
+ 27969 - 11905: 0xC1F7,
+ 27970 - 11905: 0x9BB6,
+ 27971 - 11905: 0xE4A4,
+ 27972 - 11905: 0x9BB7,
+ 27973 - 11905: 0xC7B3,
+ 27974 - 11905: 0xBDAC,
+ 27975 - 11905: 0xBDBD,
+ 27976 - 11905: 0xE4A5,
+ 27977 - 11905: 0x9BB8,
+ 27978 - 11905: 0xD7C7,
+ 27979 - 11905: 0xB2E2,
+ 27980 - 11905: 0x9BB9,
+ 27981 - 11905: 0xE4AB,
+ 27982 - 11905: 0xBCC3,
+ 27983 - 11905: 0xE4AF,
+ 27984 - 11905: 0x9BBA,
+ 27985 - 11905: 0xBBEB,
+ 27986 - 11905: 0xE4B0,
+ 27987 - 11905: 0xC5A8,
+ 27988 - 11905: 0xE4B1,
+ 27989 - 11905: 0x9BBB,
+ 27990 - 11905: 0x9BBC,
+ 27991 - 11905: 0x9BBD,
+ 27992 - 11905: 0x9BBE,
+ 27993 - 11905: 0xD5E3,
+ 27994 - 11905: 0xBFA3,
+ 27995 - 11905: 0x9BBF,
+ 27996 - 11905: 0xE4BA,
+ 27997 - 11905: 0x9BC0,
+ 27998 - 11905: 0xE4B7,
+ 27999 - 11905: 0x9BC1,
+ 28000 - 11905: 0xE4BB,
+ 28001 - 11905: 0x9BC2,
+ 28002 - 11905: 0x9BC3,
+ 28003 - 11905: 0xE4BD,
+ 28004 - 11905: 0x9BC4,
+ 28005 - 11905: 0x9BC5,
+ 28006 - 11905: 0xC6D6,
+ 28007 - 11905: 0x9BC6,
+ 28008 - 11905: 0x9BC7,
+ 28009 - 11905: 0xBAC6,
+ 28010 - 11905: 0xC0CB,
+ 28011 - 11905: 0x9BC8,
+ 28012 - 11905: 0x9BC9,
+ 28013 - 11905: 0x9BCA,
+ 28014 - 11905: 0xB8A1,
+ 28015 - 11905: 0xE4B4,
+ 28016 - 11905: 0x9BCB,
+ 28017 - 11905: 0x9BCC,
+ 28018 - 11905: 0x9BCD,
+ 28019 - 11905: 0x9BCE,
+ 28020 - 11905: 0xD4A1,
+ 28021 - 11905: 0x9BCF,
+ 28022 - 11905: 0x9BD0,
+ 28023 - 11905: 0xBAA3,
+ 28024 - 11905: 0xBDFE,
+ 28025 - 11905: 0x9BD1,
+ 28026 - 11905: 0x9BD2,
+ 28027 - 11905: 0x9BD3,
+ 28028 - 11905: 0xE4BC,
+ 28029 - 11905: 0x9BD4,
+ 28030 - 11905: 0x9BD5,
+ 28031 - 11905: 0x9BD6,
+ 28032 - 11905: 0x9BD7,
+ 28033 - 11905: 0x9BD8,
+ 28034 - 11905: 0xCDBF,
+ 28035 - 11905: 0x9BD9,
+ 28036 - 11905: 0x9BDA,
+ 28037 - 11905: 0xC4F9,
+ 28038 - 11905: 0x9BDB,
+ 28039 - 11905: 0x9BDC,
+ 28040 - 11905: 0xCFFB,
+ 28041 - 11905: 0xC9E6,
+ 28042 - 11905: 0x9BDD,
+ 28043 - 11905: 0x9BDE,
+ 28044 - 11905: 0xD3BF,
+ 28045 - 11905: 0x9BDF,
+ 28046 - 11905: 0xCFD1,
+ 28047 - 11905: 0x9BE0,
+ 28048 - 11905: 0x9BE1,
+ 28049 - 11905: 0xE4B3,
+ 28050 - 11905: 0x9BE2,
+ 28051 - 11905: 0xE4B8,
+ 28052 - 11905: 0xE4B9,
+ 28053 - 11905: 0xCCE9,
+ 28054 - 11905: 0x9BE3,
+ 28055 - 11905: 0x9BE4,
+ 28056 - 11905: 0x9BE5,
+ 28057 - 11905: 0x9BE6,
+ 28058 - 11905: 0x9BE7,
+ 28059 - 11905: 0xCCCE,
+ 28060 - 11905: 0x9BE8,
+ 28061 - 11905: 0xC0D4,
+ 28062 - 11905: 0xE4B5,
+ 28063 - 11905: 0xC1B0,
+ 28064 - 11905: 0xE4B6,
+ 28065 - 11905: 0xCED0,
+ 28066 - 11905: 0x9BE9,
+ 28067 - 11905: 0xBBC1,
+ 28068 - 11905: 0xB5D3,
+ 28069 - 11905: 0x9BEA,
+ 28070 - 11905: 0xC8F3,
+ 28071 - 11905: 0xBDA7,
+ 28072 - 11905: 0xD5C7,
+ 28073 - 11905: 0xC9AC,
+ 28074 - 11905: 0xB8A2,
+ 28075 - 11905: 0xE4CA,
+ 28076 - 11905: 0x9BEB,
+ 28077 - 11905: 0x9BEC,
+ 28078 - 11905: 0xE4CC,
+ 28079 - 11905: 0xD1C4,
+ 28080 - 11905: 0x9BED,
+ 28081 - 11905: 0x9BEE,
+ 28082 - 11905: 0xD2BA,
+ 28083 - 11905: 0x9BEF,
+ 28084 - 11905: 0x9BF0,
+ 28085 - 11905: 0xBAAD,
+ 28086 - 11905: 0x9BF1,
+ 28087 - 11905: 0x9BF2,
+ 28088 - 11905: 0xBAD4,
+ 28089 - 11905: 0x9BF3,
+ 28090 - 11905: 0x9BF4,
+ 28091 - 11905: 0x9BF5,
+ 28092 - 11905: 0x9BF6,
+ 28093 - 11905: 0x9BF7,
+ 28094 - 11905: 0x9BF8,
+ 28095 - 11905: 0xE4C3,
+ 28096 - 11905: 0xB5ED,
+ 28097 - 11905: 0x9BF9,
+ 28098 - 11905: 0x9BFA,
+ 28099 - 11905: 0x9BFB,
+ 28100 - 11905: 0xD7CD,
+ 28101 - 11905: 0xE4C0,
+ 28102 - 11905: 0xCFFD,
+ 28103 - 11905: 0xE4BF,
+ 28104 - 11905: 0x9BFC,
+ 28105 - 11905: 0x9BFD,
+ 28106 - 11905: 0x9BFE,
+ 28107 - 11905: 0xC1DC,
+ 28108 - 11905: 0xCCCA,
+ 28109 - 11905: 0x9C40,
+ 28110 - 11905: 0x9C41,
+ 28111 - 11905: 0x9C42,
+ 28112 - 11905: 0x9C43,
+ 28113 - 11905: 0xCAE7,
+ 28114 - 11905: 0x9C44,
+ 28115 - 11905: 0x9C45,
+ 28116 - 11905: 0x9C46,
+ 28117 - 11905: 0x9C47,
+ 28118 - 11905: 0xC4D7,
+ 28119 - 11905: 0x9C48,
+ 28120 - 11905: 0xCCD4,
+ 28121 - 11905: 0xE4C8,
+ 28122 - 11905: 0x9C49,
+ 28123 - 11905: 0x9C4A,
+ 28124 - 11905: 0x9C4B,
+ 28125 - 11905: 0xE4C7,
+ 28126 - 11905: 0xE4C1,
+ 28127 - 11905: 0x9C4C,
+ 28128 - 11905: 0xE4C4,
+ 28129 - 11905: 0xB5AD,
+ 28130 - 11905: 0x9C4D,
+ 28131 - 11905: 0x9C4E,
+ 28132 - 11905: 0xD3D9,
+ 28133 - 11905: 0x9C4F,
+ 28134 - 11905: 0xE4C6,
+ 28135 - 11905: 0x9C50,
+ 28136 - 11905: 0x9C51,
+ 28137 - 11905: 0x9C52,
+ 28138 - 11905: 0x9C53,
+ 28139 - 11905: 0xD2F9,
+ 28140 - 11905: 0xB4E3,
+ 28141 - 11905: 0x9C54,
+ 28142 - 11905: 0xBBB4,
+ 28143 - 11905: 0x9C55,
+ 28144 - 11905: 0x9C56,
+ 28145 - 11905: 0xC9EE,
+ 28146 - 11905: 0x9C57,
+ 28147 - 11905: 0xB4BE,
+ 28148 - 11905: 0x9C58,
+ 28149 - 11905: 0x9C59,
+ 28150 - 11905: 0x9C5A,
+ 28151 - 11905: 0xBBEC,
+ 28152 - 11905: 0x9C5B,
+ 28153 - 11905: 0xD1CD,
+ 28154 - 11905: 0x9C5C,
+ 28155 - 11905: 0xCCED,
+ 28156 - 11905: 0xEDB5,
+ 28157 - 11905: 0x9C5D,
+ 28158 - 11905: 0x9C5E,
+ 28159 - 11905: 0x9C5F,
+ 28160 - 11905: 0x9C60,
+ 28161 - 11905: 0x9C61,
+ 28162 - 11905: 0x9C62,
+ 28163 - 11905: 0x9C63,
+ 28164 - 11905: 0x9C64,
+ 28165 - 11905: 0xC7E5,
+ 28166 - 11905: 0x9C65,
+ 28167 - 11905: 0x9C66,
+ 28168 - 11905: 0x9C67,
+ 28169 - 11905: 0x9C68,
+ 28170 - 11905: 0xD4A8,
+ 28171 - 11905: 0x9C69,
+ 28172 - 11905: 0xE4CB,
+ 28173 - 11905: 0xD7D5,
+ 28174 - 11905: 0xE4C2,
+ 28175 - 11905: 0x9C6A,
+ 28176 - 11905: 0xBDA5,
+ 28177 - 11905: 0xE4C5,
+ 28178 - 11905: 0x9C6B,
+ 28179 - 11905: 0x9C6C,
+ 28180 - 11905: 0xD3E6,
+ 28181 - 11905: 0x9C6D,
+ 28182 - 11905: 0xE4C9,
+ 28183 - 11905: 0xC9F8,
+ 28184 - 11905: 0x9C6E,
+ 28185 - 11905: 0x9C6F,
+ 28186 - 11905: 0xE4BE,
+ 28187 - 11905: 0x9C70,
+ 28188 - 11905: 0x9C71,
+ 28189 - 11905: 0xD3E5,
+ 28190 - 11905: 0x9C72,
+ 28191 - 11905: 0x9C73,
+ 28192 - 11905: 0xC7FE,
+ 28193 - 11905: 0xB6C9,
+ 28194 - 11905: 0x9C74,
+ 28195 - 11905: 0xD4FC,
+ 28196 - 11905: 0xB2B3,
+ 28197 - 11905: 0xE4D7,
+ 28198 - 11905: 0x9C75,
+ 28199 - 11905: 0x9C76,
+ 28200 - 11905: 0x9C77,
+ 28201 - 11905: 0xCEC2,
+ 28202 - 11905: 0x9C78,
+ 28203 - 11905: 0xE4CD,
+ 28204 - 11905: 0x9C79,
+ 28205 - 11905: 0xCEBC,
+ 28206 - 11905: 0x9C7A,
+ 28207 - 11905: 0xB8DB,
+ 28208 - 11905: 0x9C7B,
+ 28209 - 11905: 0x9C7C,
+ 28210 - 11905: 0xE4D6,
+ 28211 - 11905: 0x9C7D,
+ 28212 - 11905: 0xBFCA,
+ 28213 - 11905: 0x9C7E,
+ 28214 - 11905: 0x9C80,
+ 28215 - 11905: 0x9C81,
+ 28216 - 11905: 0xD3CE,
+ 28217 - 11905: 0x9C82,
+ 28218 - 11905: 0xC3EC,
+ 28219 - 11905: 0x9C83,
+ 28220 - 11905: 0x9C84,
+ 28221 - 11905: 0x9C85,
+ 28222 - 11905: 0x9C86,
+ 28223 - 11905: 0x9C87,
+ 28224 - 11905: 0x9C88,
+ 28225 - 11905: 0x9C89,
+ 28226 - 11905: 0x9C8A,
+ 28227 - 11905: 0xC5C8,
+ 28228 - 11905: 0xE4D8,
+ 28229 - 11905: 0x9C8B,
+ 28230 - 11905: 0x9C8C,
+ 28231 - 11905: 0x9C8D,
+ 28232 - 11905: 0x9C8E,
+ 28233 - 11905: 0x9C8F,
+ 28234 - 11905: 0x9C90,
+ 28235 - 11905: 0x9C91,
+ 28236 - 11905: 0x9C92,
+ 28237 - 11905: 0xCDC4,
+ 28238 - 11905: 0xE4CF,
+ 28239 - 11905: 0x9C93,
+ 28240 - 11905: 0x9C94,
+ 28241 - 11905: 0x9C95,
+ 28242 - 11905: 0x9C96,
+ 28243 - 11905: 0xE4D4,
+ 28244 - 11905: 0xE4D5,
+ 28245 - 11905: 0x9C97,
+ 28246 - 11905: 0xBAFE,
+ 28247 - 11905: 0x9C98,
+ 28248 - 11905: 0xCFE6,
+ 28249 - 11905: 0x9C99,
+ 28250 - 11905: 0x9C9A,
+ 28251 - 11905: 0xD5BF,
+ 28252 - 11905: 0x9C9B,
+ 28253 - 11905: 0x9C9C,
+ 28254 - 11905: 0x9C9D,
+ 28255 - 11905: 0xE4D2,
+ 28256 - 11905: 0x9C9E,
+ 28257 - 11905: 0x9C9F,
+ 28258 - 11905: 0x9CA0,
+ 28259 - 11905: 0x9CA1,
+ 28260 - 11905: 0x9CA2,
+ 28261 - 11905: 0x9CA3,
+ 28262 - 11905: 0x9CA4,
+ 28263 - 11905: 0x9CA5,
+ 28264 - 11905: 0x9CA6,
+ 28265 - 11905: 0x9CA7,
+ 28266 - 11905: 0x9CA8,
+ 28267 - 11905: 0xE4D0,
+ 28268 - 11905: 0x9CA9,
+ 28269 - 11905: 0x9CAA,
+ 28270 - 11905: 0xE4CE,
+ 28271 - 11905: 0x9CAB,
+ 28272 - 11905: 0x9CAC,
+ 28273 - 11905: 0x9CAD,
+ 28274 - 11905: 0x9CAE,
+ 28275 - 11905: 0x9CAF,
+ 28276 - 11905: 0x9CB0,
+ 28277 - 11905: 0x9CB1,
+ 28278 - 11905: 0x9CB2,
+ 28279 - 11905: 0x9CB3,
+ 28280 - 11905: 0x9CB4,
+ 28281 - 11905: 0x9CB5,
+ 28282 - 11905: 0x9CB6,
+ 28283 - 11905: 0x9CB7,
+ 28284 - 11905: 0x9CB8,
+ 28285 - 11905: 0x9CB9,
+ 28286 - 11905: 0xCDE5,
+ 28287 - 11905: 0xCAAA,
+ 28288 - 11905: 0x9CBA,
+ 28289 - 11905: 0x9CBB,
+ 28290 - 11905: 0x9CBC,
+ 28291 - 11905: 0xC0A3,
+ 28292 - 11905: 0x9CBD,
+ 28293 - 11905: 0xBDA6,
+ 28294 - 11905: 0xE4D3,
+ 28295 - 11905: 0x9CBE,
+ 28296 - 11905: 0x9CBF,
+ 28297 - 11905: 0xB8C8,
+ 28298 - 11905: 0x9CC0,
+ 28299 - 11905: 0x9CC1,
+ 28300 - 11905: 0x9CC2,
+ 28301 - 11905: 0x9CC3,
+ 28302 - 11905: 0x9CC4,
+ 28303 - 11905: 0xE4E7,
+ 28304 - 11905: 0xD4B4,
+ 28305 - 11905: 0x9CC5,
+ 28306 - 11905: 0x9CC6,
+ 28307 - 11905: 0x9CC7,
+ 28308 - 11905: 0x9CC8,
+ 28309 - 11905: 0x9CC9,
+ 28310 - 11905: 0x9CCA,
+ 28311 - 11905: 0x9CCB,
+ 28312 - 11905: 0xE4DB,
+ 28313 - 11905: 0x9CCC,
+ 28314 - 11905: 0x9CCD,
+ 28315 - 11905: 0x9CCE,
+ 28316 - 11905: 0xC1EF,
+ 28317 - 11905: 0x9CCF,
+ 28318 - 11905: 0x9CD0,
+ 28319 - 11905: 0xE4E9,
+ 28320 - 11905: 0x9CD1,
+ 28321 - 11905: 0x9CD2,
+ 28322 - 11905: 0xD2E7,
+ 28323 - 11905: 0x9CD3,
+ 28324 - 11905: 0x9CD4,
+ 28325 - 11905: 0xE4DF,
+ 28326 - 11905: 0x9CD5,
+ 28327 - 11905: 0xE4E0,
+ 28328 - 11905: 0x9CD6,
+ 28329 - 11905: 0x9CD7,
+ 28330 - 11905: 0xCFAA,
+ 28331 - 11905: 0x9CD8,
+ 28332 - 11905: 0x9CD9,
+ 28333 - 11905: 0x9CDA,
+ 28334 - 11905: 0x9CDB,
+ 28335 - 11905: 0xCBDD,
+ 28336 - 11905: 0x9CDC,
+ 28337 - 11905: 0xE4DA,
+ 28338 - 11905: 0xE4D1,
+ 28339 - 11905: 0x9CDD,
+ 28340 - 11905: 0xE4E5,
+ 28341 - 11905: 0x9CDE,
+ 28342 - 11905: 0xC8DC,
+ 28343 - 11905: 0xE4E3,
+ 28344 - 11905: 0x9CDF,
+ 28345 - 11905: 0x9CE0,
+ 28346 - 11905: 0xC4E7,
+ 28347 - 11905: 0xE4E2,
+ 28348 - 11905: 0x9CE1,
+ 28349 - 11905: 0xE4E1,
+ 28350 - 11905: 0x9CE2,
+ 28351 - 11905: 0x9CE3,
+ 28352 - 11905: 0x9CE4,
+ 28353 - 11905: 0xB3FC,
+ 28354 - 11905: 0xE4E8,
+ 28355 - 11905: 0x9CE5,
+ 28356 - 11905: 0x9CE6,
+ 28357 - 11905: 0x9CE7,
+ 28358 - 11905: 0x9CE8,
+ 28359 - 11905: 0xB5E1,
+ 28360 - 11905: 0x9CE9,
+ 28361 - 11905: 0x9CEA,
+ 28362 - 11905: 0x9CEB,
+ 28363 - 11905: 0xD7CC,
+ 28364 - 11905: 0x9CEC,
+ 28365 - 11905: 0x9CED,
+ 28366 - 11905: 0x9CEE,
+ 28367 - 11905: 0xE4E6,
+ 28368 - 11905: 0x9CEF,
+ 28369 - 11905: 0xBBAC,
+ 28370 - 11905: 0x9CF0,
+ 28371 - 11905: 0xD7D2,
+ 28372 - 11905: 0xCCCF,
+ 28373 - 11905: 0xEBF8,
+ 28374 - 11905: 0x9CF1,
+ 28375 - 11905: 0xE4E4,
+ 28376 - 11905: 0x9CF2,
+ 28377 - 11905: 0x9CF3,
+ 28378 - 11905: 0xB9F6,
+ 28379 - 11905: 0x9CF4,
+ 28380 - 11905: 0x9CF5,
+ 28381 - 11905: 0x9CF6,
+ 28382 - 11905: 0xD6CD,
+ 28383 - 11905: 0xE4D9,
+ 28384 - 11905: 0xE4DC,
+ 28385 - 11905: 0xC2FA,
+ 28386 - 11905: 0xE4DE,
+ 28387 - 11905: 0x9CF7,
+ 28388 - 11905: 0xC2CB,
+ 28389 - 11905: 0xC0C4,
+ 28390 - 11905: 0xC2D0,
+ 28391 - 11905: 0x9CF8,
+ 28392 - 11905: 0xB1F5,
+ 28393 - 11905: 0xCCB2,
+ 28394 - 11905: 0x9CF9,
+ 28395 - 11905: 0x9CFA,
+ 28396 - 11905: 0x9CFB,
+ 28397 - 11905: 0x9CFC,
+ 28398 - 11905: 0x9CFD,
+ 28399 - 11905: 0x9CFE,
+ 28400 - 11905: 0x9D40,
+ 28401 - 11905: 0x9D41,
+ 28402 - 11905: 0x9D42,
+ 28403 - 11905: 0x9D43,
+ 28404 - 11905: 0xB5CE,
+ 28405 - 11905: 0x9D44,
+ 28406 - 11905: 0x9D45,
+ 28407 - 11905: 0x9D46,
+ 28408 - 11905: 0x9D47,
+ 28409 - 11905: 0xE4EF,
+ 28410 - 11905: 0x9D48,
+ 28411 - 11905: 0x9D49,
+ 28412 - 11905: 0x9D4A,
+ 28413 - 11905: 0x9D4B,
+ 28414 - 11905: 0x9D4C,
+ 28415 - 11905: 0x9D4D,
+ 28416 - 11905: 0x9D4E,
+ 28417 - 11905: 0x9D4F,
+ 28418 - 11905: 0xC6AF,
+ 28419 - 11905: 0x9D50,
+ 28420 - 11905: 0x9D51,
+ 28421 - 11905: 0x9D52,
+ 28422 - 11905: 0xC6E1,
+ 28423 - 11905: 0x9D53,
+ 28424 - 11905: 0x9D54,
+ 28425 - 11905: 0xE4F5,
+ 28426 - 11905: 0x9D55,
+ 28427 - 11905: 0x9D56,
+ 28428 - 11905: 0x9D57,
+ 28429 - 11905: 0x9D58,
+ 28430 - 11905: 0x9D59,
+ 28431 - 11905: 0xC2A9,
+ 28432 - 11905: 0x9D5A,
+ 28433 - 11905: 0x9D5B,
+ 28434 - 11905: 0x9D5C,
+ 28435 - 11905: 0xC0EC,
+ 28436 - 11905: 0xD1DD,
+ 28437 - 11905: 0xE4EE,
+ 28438 - 11905: 0x9D5D,
+ 28439 - 11905: 0x9D5E,
+ 28440 - 11905: 0x9D5F,
+ 28441 - 11905: 0x9D60,
+ 28442 - 11905: 0x9D61,
+ 28443 - 11905: 0x9D62,
+ 28444 - 11905: 0x9D63,
+ 28445 - 11905: 0x9D64,
+ 28446 - 11905: 0x9D65,
+ 28447 - 11905: 0x9D66,
+ 28448 - 11905: 0xC4AE,
+ 28449 - 11905: 0x9D67,
+ 28450 - 11905: 0x9D68,
+ 28451 - 11905: 0x9D69,
+ 28452 - 11905: 0xE4ED,
+ 28453 - 11905: 0x9D6A,
+ 28454 - 11905: 0x9D6B,
+ 28455 - 11905: 0x9D6C,
+ 28456 - 11905: 0x9D6D,
+ 28457 - 11905: 0xE4F6,
+ 28458 - 11905: 0xE4F4,
+ 28459 - 11905: 0xC2FE,
+ 28460 - 11905: 0x9D6E,
+ 28461 - 11905: 0xE4DD,
+ 28462 - 11905: 0x9D6F,
+ 28463 - 11905: 0xE4F0,
+ 28464 - 11905: 0x9D70,
+ 28465 - 11905: 0xCAFE,
+ 28466 - 11905: 0x9D71,
+ 28467 - 11905: 0xD5C4,
+ 28468 - 11905: 0x9D72,
+ 28469 - 11905: 0x9D73,
+ 28470 - 11905: 0xE4F1,
+ 28471 - 11905: 0x9D74,
+ 28472 - 11905: 0x9D75,
+ 28473 - 11905: 0x9D76,
+ 28474 - 11905: 0x9D77,
+ 28475 - 11905: 0x9D78,
+ 28476 - 11905: 0x9D79,
+ 28477 - 11905: 0x9D7A,
+ 28478 - 11905: 0xD1FA,
+ 28479 - 11905: 0x9D7B,
+ 28480 - 11905: 0x9D7C,
+ 28481 - 11905: 0x9D7D,
+ 28482 - 11905: 0x9D7E,
+ 28483 - 11905: 0x9D80,
+ 28484 - 11905: 0x9D81,
+ 28485 - 11905: 0x9D82,
+ 28486 - 11905: 0xE4EB,
+ 28487 - 11905: 0xE4EC,
+ 28488 - 11905: 0x9D83,
+ 28489 - 11905: 0x9D84,
+ 28490 - 11905: 0x9D85,
+ 28491 - 11905: 0xE4F2,
+ 28492 - 11905: 0x9D86,
+ 28493 - 11905: 0xCEAB,
+ 28494 - 11905: 0x9D87,
+ 28495 - 11905: 0x9D88,
+ 28496 - 11905: 0x9D89,
+ 28497 - 11905: 0x9D8A,
+ 28498 - 11905: 0x9D8B,
+ 28499 - 11905: 0x9D8C,
+ 28500 - 11905: 0x9D8D,
+ 28501 - 11905: 0x9D8E,
+ 28502 - 11905: 0x9D8F,
+ 28503 - 11905: 0x9D90,
+ 28504 - 11905: 0xC5CB,
+ 28505 - 11905: 0x9D91,
+ 28506 - 11905: 0x9D92,
+ 28507 - 11905: 0x9D93,
+ 28508 - 11905: 0xC7B1,
+ 28509 - 11905: 0x9D94,
+ 28510 - 11905: 0xC2BA,
+ 28511 - 11905: 0x9D95,
+ 28512 - 11905: 0x9D96,
+ 28513 - 11905: 0x9D97,
+ 28514 - 11905: 0xE4EA,
+ 28515 - 11905: 0x9D98,
+ 28516 - 11905: 0x9D99,
+ 28517 - 11905: 0x9D9A,
+ 28518 - 11905: 0xC1CA,
+ 28519 - 11905: 0x9D9B,
+ 28520 - 11905: 0x9D9C,
+ 28521 - 11905: 0x9D9D,
+ 28522 - 11905: 0x9D9E,
+ 28523 - 11905: 0x9D9F,
+ 28524 - 11905: 0x9DA0,
+ 28525 - 11905: 0xCCB6,
+ 28526 - 11905: 0xB3B1,
+ 28527 - 11905: 0x9DA1,
+ 28528 - 11905: 0x9DA2,
+ 28529 - 11905: 0x9DA3,
+ 28530 - 11905: 0xE4FB,
+ 28531 - 11905: 0x9DA4,
+ 28532 - 11905: 0xE4F3,
+ 28533 - 11905: 0x9DA5,
+ 28534 - 11905: 0x9DA6,
+ 28535 - 11905: 0x9DA7,
+ 28536 - 11905: 0xE4FA,
+ 28537 - 11905: 0x9DA8,
+ 28538 - 11905: 0xE4FD,
+ 28539 - 11905: 0x9DA9,
+ 28540 - 11905: 0xE4FC,
+ 28541 - 11905: 0x9DAA,
+ 28542 - 11905: 0x9DAB,
+ 28543 - 11905: 0x9DAC,
+ 28544 - 11905: 0x9DAD,
+ 28545 - 11905: 0x9DAE,
+ 28546 - 11905: 0x9DAF,
+ 28547 - 11905: 0x9DB0,
+ 28548 - 11905: 0xB3CE,
+ 28549 - 11905: 0x9DB1,
+ 28550 - 11905: 0x9DB2,
+ 28551 - 11905: 0x9DB3,
+ 28552 - 11905: 0xB3BA,
+ 28553 - 11905: 0xE4F7,
+ 28554 - 11905: 0x9DB4,
+ 28555 - 11905: 0x9DB5,
+ 28556 - 11905: 0xE4F9,
+ 28557 - 11905: 0xE4F8,
+ 28558 - 11905: 0xC5EC,
+ 28559 - 11905: 0x9DB6,
+ 28560 - 11905: 0x9DB7,
+ 28561 - 11905: 0x9DB8,
+ 28562 - 11905: 0x9DB9,
+ 28563 - 11905: 0x9DBA,
+ 28564 - 11905: 0x9DBB,
+ 28565 - 11905: 0x9DBC,
+ 28566 - 11905: 0x9DBD,
+ 28567 - 11905: 0x9DBE,
+ 28568 - 11905: 0x9DBF,
+ 28569 - 11905: 0x9DC0,
+ 28570 - 11905: 0x9DC1,
+ 28571 - 11905: 0x9DC2,
+ 28572 - 11905: 0xC0BD,
+ 28573 - 11905: 0x9DC3,
+ 28574 - 11905: 0x9DC4,
+ 28575 - 11905: 0x9DC5,
+ 28576 - 11905: 0x9DC6,
+ 28577 - 11905: 0xD4E8,
+ 28578 - 11905: 0x9DC7,
+ 28579 - 11905: 0x9DC8,
+ 28580 - 11905: 0x9DC9,
+ 28581 - 11905: 0x9DCA,
+ 28582 - 11905: 0x9DCB,
+ 28583 - 11905: 0xE5A2,
+ 28584 - 11905: 0x9DCC,
+ 28585 - 11905: 0x9DCD,
+ 28586 - 11905: 0x9DCE,
+ 28587 - 11905: 0x9DCF,
+ 28588 - 11905: 0x9DD0,
+ 28589 - 11905: 0x9DD1,
+ 28590 - 11905: 0x9DD2,
+ 28591 - 11905: 0x9DD3,
+ 28592 - 11905: 0x9DD4,
+ 28593 - 11905: 0x9DD5,
+ 28594 - 11905: 0x9DD6,
+ 28595 - 11905: 0xB0C4,
+ 28596 - 11905: 0x9DD7,
+ 28597 - 11905: 0x9DD8,
+ 28598 - 11905: 0xE5A4,
+ 28599 - 11905: 0x9DD9,
+ 28600 - 11905: 0x9DDA,
+ 28601 - 11905: 0xE5A3,
+ 28602 - 11905: 0x9DDB,
+ 28603 - 11905: 0x9DDC,
+ 28604 - 11905: 0x9DDD,
+ 28605 - 11905: 0x9DDE,
+ 28606 - 11905: 0x9DDF,
+ 28607 - 11905: 0x9DE0,
+ 28608 - 11905: 0xBCA4,
+ 28609 - 11905: 0x9DE1,
+ 28610 - 11905: 0xE5A5,
+ 28611 - 11905: 0x9DE2,
+ 28612 - 11905: 0x9DE3,
+ 28613 - 11905: 0x9DE4,
+ 28614 - 11905: 0x9DE5,
+ 28615 - 11905: 0x9DE6,
+ 28616 - 11905: 0x9DE7,
+ 28617 - 11905: 0xE5A1,
+ 28618 - 11905: 0x9DE8,
+ 28619 - 11905: 0x9DE9,
+ 28620 - 11905: 0x9DEA,
+ 28621 - 11905: 0x9DEB,
+ 28622 - 11905: 0x9DEC,
+ 28623 - 11905: 0x9DED,
+ 28624 - 11905: 0x9DEE,
+ 28625 - 11905: 0xE4FE,
+ 28626 - 11905: 0xB1F4,
+ 28627 - 11905: 0x9DEF,
+ 28628 - 11905: 0x9DF0,
+ 28629 - 11905: 0x9DF1,
+ 28630 - 11905: 0x9DF2,
+ 28631 - 11905: 0x9DF3,
+ 28632 - 11905: 0x9DF4,
+ 28633 - 11905: 0x9DF5,
+ 28634 - 11905: 0x9DF6,
+ 28635 - 11905: 0x9DF7,
+ 28636 - 11905: 0x9DF8,
+ 28637 - 11905: 0x9DF9,
+ 28638 - 11905: 0xE5A8,
+ 28639 - 11905: 0x9DFA,
+ 28640 - 11905: 0xE5A9,
+ 28641 - 11905: 0xE5A6,
+ 28642 - 11905: 0x9DFB,
+ 28643 - 11905: 0x9DFC,
+ 28644 - 11905: 0x9DFD,
+ 28645 - 11905: 0x9DFE,
+ 28646 - 11905: 0x9E40,
+ 28647 - 11905: 0x9E41,
+ 28648 - 11905: 0x9E42,
+ 28649 - 11905: 0x9E43,
+ 28650 - 11905: 0x9E44,
+ 28651 - 11905: 0x9E45,
+ 28652 - 11905: 0x9E46,
+ 28653 - 11905: 0x9E47,
+ 28654 - 11905: 0xE5A7,
+ 28655 - 11905: 0xE5AA,
+ 28656 - 11905: 0x9E48,
+ 28657 - 11905: 0x9E49,
+ 28658 - 11905: 0x9E4A,
+ 28659 - 11905: 0x9E4B,
+ 28660 - 11905: 0x9E4C,
+ 28661 - 11905: 0x9E4D,
+ 28662 - 11905: 0x9E4E,
+ 28663 - 11905: 0x9E4F,
+ 28664 - 11905: 0x9E50,
+ 28665 - 11905: 0x9E51,
+ 28666 - 11905: 0x9E52,
+ 28667 - 11905: 0x9E53,
+ 28668 - 11905: 0x9E54,
+ 28669 - 11905: 0x9E55,
+ 28670 - 11905: 0x9E56,
+ 28671 - 11905: 0x9E57,
+ 28672 - 11905: 0x9E58,
+ 28673 - 11905: 0x9E59,
+ 28674 - 11905: 0x9E5A,
+ 28675 - 11905: 0x9E5B,
+ 28676 - 11905: 0x9E5C,
+ 28677 - 11905: 0x9E5D,
+ 28678 - 11905: 0x9E5E,
+ 28679 - 11905: 0x9E5F,
+ 28680 - 11905: 0x9E60,
+ 28681 - 11905: 0x9E61,
+ 28682 - 11905: 0x9E62,
+ 28683 - 11905: 0x9E63,
+ 28684 - 11905: 0x9E64,
+ 28685 - 11905: 0x9E65,
+ 28686 - 11905: 0x9E66,
+ 28687 - 11905: 0x9E67,
+ 28688 - 11905: 0x9E68,
+ 28689 - 11905: 0xC6D9,
+ 28690 - 11905: 0x9E69,
+ 28691 - 11905: 0x9E6A,
+ 28692 - 11905: 0x9E6B,
+ 28693 - 11905: 0x9E6C,
+ 28694 - 11905: 0x9E6D,
+ 28695 - 11905: 0x9E6E,
+ 28696 - 11905: 0x9E6F,
+ 28697 - 11905: 0x9E70,
+ 28698 - 11905: 0xE5AB,
+ 28699 - 11905: 0xE5AD,
+ 28700 - 11905: 0x9E71,
+ 28701 - 11905: 0x9E72,
+ 28702 - 11905: 0x9E73,
+ 28703 - 11905: 0x9E74,
+ 28704 - 11905: 0x9E75,
+ 28705 - 11905: 0x9E76,
+ 28706 - 11905: 0x9E77,
+ 28707 - 11905: 0xE5AC,
+ 28708 - 11905: 0x9E78,
+ 28709 - 11905: 0x9E79,
+ 28710 - 11905: 0x9E7A,
+ 28711 - 11905: 0x9E7B,
+ 28712 - 11905: 0x9E7C,
+ 28713 - 11905: 0x9E7D,
+ 28714 - 11905: 0x9E7E,
+ 28715 - 11905: 0x9E80,
+ 28716 - 11905: 0x9E81,
+ 28717 - 11905: 0x9E82,
+ 28718 - 11905: 0x9E83,
+ 28719 - 11905: 0x9E84,
+ 28720 - 11905: 0x9E85,
+ 28721 - 11905: 0x9E86,
+ 28722 - 11905: 0x9E87,
+ 28723 - 11905: 0x9E88,
+ 28724 - 11905: 0x9E89,
+ 28725 - 11905: 0xE5AF,
+ 28726 - 11905: 0x9E8A,
+ 28727 - 11905: 0x9E8B,
+ 28728 - 11905: 0x9E8C,
+ 28729 - 11905: 0xE5AE,
+ 28730 - 11905: 0x9E8D,
+ 28731 - 11905: 0x9E8E,
+ 28732 - 11905: 0x9E8F,
+ 28733 - 11905: 0x9E90,
+ 28734 - 11905: 0x9E91,
+ 28735 - 11905: 0x9E92,
+ 28736 - 11905: 0x9E93,
+ 28737 - 11905: 0x9E94,
+ 28738 - 11905: 0x9E95,
+ 28739 - 11905: 0x9E96,
+ 28740 - 11905: 0x9E97,
+ 28741 - 11905: 0x9E98,
+ 28742 - 11905: 0x9E99,
+ 28743 - 11905: 0x9E9A,
+ 28744 - 11905: 0x9E9B,
+ 28745 - 11905: 0x9E9C,
+ 28746 - 11905: 0x9E9D,
+ 28747 - 11905: 0x9E9E,
+ 28748 - 11905: 0xB9E0,
+ 28749 - 11905: 0x9E9F,
+ 28750 - 11905: 0x9EA0,
+ 28751 - 11905: 0xE5B0,
+ 28752 - 11905: 0x9EA1,
+ 28753 - 11905: 0x9EA2,
+ 28754 - 11905: 0x9EA3,
+ 28755 - 11905: 0x9EA4,
+ 28756 - 11905: 0x9EA5,
+ 28757 - 11905: 0x9EA6,
+ 28758 - 11905: 0x9EA7,
+ 28759 - 11905: 0x9EA8,
+ 28760 - 11905: 0x9EA9,
+ 28761 - 11905: 0x9EAA,
+ 28762 - 11905: 0x9EAB,
+ 28763 - 11905: 0x9EAC,
+ 28764 - 11905: 0x9EAD,
+ 28765 - 11905: 0x9EAE,
+ 28766 - 11905: 0xE5B1,
+ 28767 - 11905: 0x9EAF,
+ 28768 - 11905: 0x9EB0,
+ 28769 - 11905: 0x9EB1,
+ 28770 - 11905: 0x9EB2,
+ 28771 - 11905: 0x9EB3,
+ 28772 - 11905: 0x9EB4,
+ 28773 - 11905: 0x9EB5,
+ 28774 - 11905: 0x9EB6,
+ 28775 - 11905: 0x9EB7,
+ 28776 - 11905: 0x9EB8,
+ 28777 - 11905: 0x9EB9,
+ 28778 - 11905: 0x9EBA,
+ 28779 - 11905: 0xBBF0,
+ 28780 - 11905: 0xECE1,
+ 28781 - 11905: 0xC3F0,
+ 28782 - 11905: 0x9EBB,
+ 28783 - 11905: 0xB5C6,
+ 28784 - 11905: 0xBBD2,
+ 28785 - 11905: 0x9EBC,
+ 28786 - 11905: 0x9EBD,
+ 28787 - 11905: 0x9EBE,
+ 28788 - 11905: 0x9EBF,
+ 28789 - 11905: 0xC1E9,
+ 28790 - 11905: 0xD4EE,
+ 28791 - 11905: 0x9EC0,
+ 28792 - 11905: 0xBEC4,
+ 28793 - 11905: 0x9EC1,
+ 28794 - 11905: 0x9EC2,
+ 28795 - 11905: 0x9EC3,
+ 28796 - 11905: 0xD7C6,
+ 28797 - 11905: 0x9EC4,
+ 28798 - 11905: 0xD4D6,
+ 28799 - 11905: 0xB2D3,
+ 28800 - 11905: 0xECBE,
+ 28801 - 11905: 0x9EC5,
+ 28802 - 11905: 0x9EC6,
+ 28803 - 11905: 0x9EC7,
+ 28804 - 11905: 0x9EC8,
+ 28805 - 11905: 0xEAC1,
+ 28806 - 11905: 0x9EC9,
+ 28807 - 11905: 0x9ECA,
+ 28808 - 11905: 0x9ECB,
+ 28809 - 11905: 0xC2AF,
+ 28810 - 11905: 0xB4B6,
+ 28811 - 11905: 0x9ECC,
+ 28812 - 11905: 0x9ECD,
+ 28813 - 11905: 0x9ECE,
+ 28814 - 11905: 0xD1D7,
+ 28815 - 11905: 0x9ECF,
+ 28816 - 11905: 0x9ED0,
+ 28817 - 11905: 0x9ED1,
+ 28818 - 11905: 0xB3B4,
+ 28819 - 11905: 0x9ED2,
+ 28820 - 11905: 0xC8B2,
+ 28821 - 11905: 0xBFBB,
+ 28822 - 11905: 0xECC0,
+ 28823 - 11905: 0x9ED3,
+ 28824 - 11905: 0x9ED4,
+ 28825 - 11905: 0xD6CB,
+ 28826 - 11905: 0x9ED5,
+ 28827 - 11905: 0x9ED6,
+ 28828 - 11905: 0xECBF,
+ 28829 - 11905: 0xECC1,
+ 28830 - 11905: 0x9ED7,
+ 28831 - 11905: 0x9ED8,
+ 28832 - 11905: 0x9ED9,
+ 28833 - 11905: 0x9EDA,
+ 28834 - 11905: 0x9EDB,
+ 28835 - 11905: 0x9EDC,
+ 28836 - 11905: 0x9EDD,
+ 28837 - 11905: 0x9EDE,
+ 28838 - 11905: 0x9EDF,
+ 28839 - 11905: 0x9EE0,
+ 28840 - 11905: 0x9EE1,
+ 28841 - 11905: 0x9EE2,
+ 28842 - 11905: 0x9EE3,
+ 28843 - 11905: 0xECC5,
+ 28844 - 11905: 0xBEE6,
+ 28845 - 11905: 0xCCBF,
+ 28846 - 11905: 0xC5DA,
+ 28847 - 11905: 0xBEBC,
+ 28848 - 11905: 0x9EE4,
+ 28849 - 11905: 0xECC6,
+ 28850 - 11905: 0x9EE5,
+ 28851 - 11905: 0xB1FE,
+ 28852 - 11905: 0x9EE6,
+ 28853 - 11905: 0x9EE7,
+ 28854 - 11905: 0x9EE8,
+ 28855 - 11905: 0xECC4,
+ 28856 - 11905: 0xD5A8,
+ 28857 - 11905: 0xB5E3,
+ 28858 - 11905: 0x9EE9,
+ 28859 - 11905: 0xECC2,
+ 28860 - 11905: 0xC1B6,
+ 28861 - 11905: 0xB3E3,
+ 28862 - 11905: 0x9EEA,
+ 28863 - 11905: 0x9EEB,
+ 28864 - 11905: 0xECC3,
+ 28865 - 11905: 0xCBB8,
+ 28866 - 11905: 0xC0C3,
+ 28867 - 11905: 0xCCFE,
+ 28868 - 11905: 0x9EEC,
+ 28869 - 11905: 0x9EED,
+ 28870 - 11905: 0x9EEE,
+ 28871 - 11905: 0x9EEF,
+ 28872 - 11905: 0xC1D2,
+ 28873 - 11905: 0x9EF0,
+ 28874 - 11905: 0xECC8,
+ 28875 - 11905: 0x9EF1,
+ 28876 - 11905: 0x9EF2,
+ 28877 - 11905: 0x9EF3,
+ 28878 - 11905: 0x9EF4,
+ 28879 - 11905: 0x9EF5,
+ 28880 - 11905: 0x9EF6,
+ 28881 - 11905: 0x9EF7,
+ 28882 - 11905: 0x9EF8,
+ 28883 - 11905: 0x9EF9,
+ 28884 - 11905: 0x9EFA,
+ 28885 - 11905: 0x9EFB,
+ 28886 - 11905: 0x9EFC,
+ 28887 - 11905: 0x9EFD,
+ 28888 - 11905: 0xBAE6,
+ 28889 - 11905: 0xC0D3,
+ 28890 - 11905: 0x9EFE,
+ 28891 - 11905: 0xD6F2,
+ 28892 - 11905: 0x9F40,
+ 28893 - 11905: 0x9F41,
+ 28894 - 11905: 0x9F42,
+ 28895 - 11905: 0xD1CC,
+ 28896 - 11905: 0x9F43,
+ 28897 - 11905: 0x9F44,
+ 28898 - 11905: 0x9F45,
+ 28899 - 11905: 0x9F46,
+ 28900 - 11905: 0xBFBE,
+ 28901 - 11905: 0x9F47,
+ 28902 - 11905: 0xB7B3,
+ 28903 - 11905: 0xC9D5,
+ 28904 - 11905: 0xECC7,
+ 28905 - 11905: 0xBBE2,
+ 28906 - 11905: 0x9F48,
+ 28907 - 11905: 0xCCCC,
+ 28908 - 11905: 0xBDFD,
+ 28909 - 11905: 0xC8C8,
+ 28910 - 11905: 0x9F49,
+ 28911 - 11905: 0xCFA9,
+ 28912 - 11905: 0x9F4A,
+ 28913 - 11905: 0x9F4B,
+ 28914 - 11905: 0x9F4C,
+ 28915 - 11905: 0x9F4D,
+ 28916 - 11905: 0x9F4E,
+ 28917 - 11905: 0x9F4F,
+ 28918 - 11905: 0x9F50,
+ 28919 - 11905: 0xCDE9,
+ 28920 - 11905: 0x9F51,
+ 28921 - 11905: 0xC5EB,
+ 28922 - 11905: 0x9F52,
+ 28923 - 11905: 0x9F53,
+ 28924 - 11905: 0x9F54,
+ 28925 - 11905: 0xB7E9,
+ 28926 - 11905: 0x9F55,
+ 28927 - 11905: 0x9F56,
+ 28928 - 11905: 0x9F57,
+ 28929 - 11905: 0x9F58,
+ 28930 - 11905: 0x9F59,
+ 28931 - 11905: 0x9F5A,
+ 28932 - 11905: 0x9F5B,
+ 28933 - 11905: 0x9F5C,
+ 28934 - 11905: 0x9F5D,
+ 28935 - 11905: 0x9F5E,
+ 28936 - 11905: 0x9F5F,
+ 28937 - 11905: 0xD1C9,
+ 28938 - 11905: 0xBAB8,
+ 28939 - 11905: 0x9F60,
+ 28940 - 11905: 0x9F61,
+ 28941 - 11905: 0x9F62,
+ 28942 - 11905: 0x9F63,
+ 28943 - 11905: 0x9F64,
+ 28944 - 11905: 0xECC9,
+ 28945 - 11905: 0x9F65,
+ 28946 - 11905: 0x9F66,
+ 28947 - 11905: 0xECCA,
+ 28948 - 11905: 0x9F67,
+ 28949 - 11905: 0xBBC0,
+ 28950 - 11905: 0xECCB,
+ 28951 - 11905: 0x9F68,
+ 28952 - 11905: 0xECE2,
+ 28953 - 11905: 0xB1BA,
+ 28954 - 11905: 0xB7D9,
+ 28955 - 11905: 0x9F69,
+ 28956 - 11905: 0x9F6A,
+ 28957 - 11905: 0x9F6B,
+ 28958 - 11905: 0x9F6C,
+ 28959 - 11905: 0x9F6D,
+ 28960 - 11905: 0x9F6E,
+ 28961 - 11905: 0x9F6F,
+ 28962 - 11905: 0x9F70,
+ 28963 - 11905: 0x9F71,
+ 28964 - 11905: 0x9F72,
+ 28965 - 11905: 0x9F73,
+ 28966 - 11905: 0xBDB9,
+ 28967 - 11905: 0x9F74,
+ 28968 - 11905: 0x9F75,
+ 28969 - 11905: 0x9F76,
+ 28970 - 11905: 0x9F77,
+ 28971 - 11905: 0x9F78,
+ 28972 - 11905: 0x9F79,
+ 28973 - 11905: 0x9F7A,
+ 28974 - 11905: 0x9F7B,
+ 28975 - 11905: 0xECCC,
+ 28976 - 11905: 0xD1E6,
+ 28977 - 11905: 0xECCD,
+ 28978 - 11905: 0x9F7C,
+ 28979 - 11905: 0x9F7D,
+ 28980 - 11905: 0x9F7E,
+ 28981 - 11905: 0x9F80,
+ 28982 - 11905: 0xC8BB,
+ 28983 - 11905: 0x9F81,
+ 28984 - 11905: 0x9F82,
+ 28985 - 11905: 0x9F83,
+ 28986 - 11905: 0x9F84,
+ 28987 - 11905: 0x9F85,
+ 28988 - 11905: 0x9F86,
+ 28989 - 11905: 0x9F87,
+ 28990 - 11905: 0x9F88,
+ 28991 - 11905: 0x9F89,
+ 28992 - 11905: 0x9F8A,
+ 28993 - 11905: 0x9F8B,
+ 28994 - 11905: 0x9F8C,
+ 28995 - 11905: 0x9F8D,
+ 28996 - 11905: 0x9F8E,
+ 28997 - 11905: 0xECD1,
+ 28998 - 11905: 0x9F8F,
+ 28999 - 11905: 0x9F90,
+ 29000 - 11905: 0x9F91,
+ 29001 - 11905: 0x9F92,
+ 29002 - 11905: 0xECD3,
+ 29003 - 11905: 0x9F93,
+ 29004 - 11905: 0xBBCD,
+ 29005 - 11905: 0x9F94,
+ 29006 - 11905: 0xBCE5,
+ 29007 - 11905: 0x9F95,
+ 29008 - 11905: 0x9F96,
+ 29009 - 11905: 0x9F97,
+ 29010 - 11905: 0x9F98,
+ 29011 - 11905: 0x9F99,
+ 29012 - 11905: 0x9F9A,
+ 29013 - 11905: 0x9F9B,
+ 29014 - 11905: 0x9F9C,
+ 29015 - 11905: 0x9F9D,
+ 29016 - 11905: 0x9F9E,
+ 29017 - 11905: 0x9F9F,
+ 29018 - 11905: 0x9FA0,
+ 29019 - 11905: 0x9FA1,
+ 29020 - 11905: 0xECCF,
+ 29021 - 11905: 0x9FA2,
+ 29022 - 11905: 0xC9B7,
+ 29023 - 11905: 0x9FA3,
+ 29024 - 11905: 0x9FA4,
+ 29025 - 11905: 0x9FA5,
+ 29026 - 11905: 0x9FA6,
+ 29027 - 11905: 0x9FA7,
+ 29028 - 11905: 0xC3BA,
+ 29029 - 11905: 0x9FA8,
+ 29030 - 11905: 0xECE3,
+ 29031 - 11905: 0xD5D5,
+ 29032 - 11905: 0xECD0,
+ 29033 - 11905: 0x9FA9,
+ 29034 - 11905: 0x9FAA,
+ 29035 - 11905: 0x9FAB,
+ 29036 - 11905: 0x9FAC,
+ 29037 - 11905: 0x9FAD,
+ 29038 - 11905: 0xD6F3,
+ 29039 - 11905: 0x9FAE,
+ 29040 - 11905: 0x9FAF,
+ 29041 - 11905: 0x9FB0,
+ 29042 - 11905: 0xECD2,
+ 29043 - 11905: 0xECCE,
+ 29044 - 11905: 0x9FB1,
+ 29045 - 11905: 0x9FB2,
+ 29046 - 11905: 0x9FB3,
+ 29047 - 11905: 0x9FB4,
+ 29048 - 11905: 0xECD4,
+ 29049 - 11905: 0x9FB5,
+ 29050 - 11905: 0xECD5,
+ 29051 - 11905: 0x9FB6,
+ 29052 - 11905: 0x9FB7,
+ 29053 - 11905: 0xC9BF,
+ 29054 - 11905: 0x9FB8,
+ 29055 - 11905: 0x9FB9,
+ 29056 - 11905: 0x9FBA,
+ 29057 - 11905: 0x9FBB,
+ 29058 - 11905: 0x9FBC,
+ 29059 - 11905: 0x9FBD,
+ 29060 - 11905: 0xCFA8,
+ 29061 - 11905: 0x9FBE,
+ 29062 - 11905: 0x9FBF,
+ 29063 - 11905: 0x9FC0,
+ 29064 - 11905: 0x9FC1,
+ 29065 - 11905: 0x9FC2,
+ 29066 - 11905: 0xD0DC,
+ 29067 - 11905: 0x9FC3,
+ 29068 - 11905: 0x9FC4,
+ 29069 - 11905: 0x9FC5,
+ 29070 - 11905: 0x9FC6,
+ 29071 - 11905: 0xD1AC,
+ 29072 - 11905: 0x9FC7,
+ 29073 - 11905: 0x9FC8,
+ 29074 - 11905: 0x9FC9,
+ 29075 - 11905: 0x9FCA,
+ 29076 - 11905: 0xC8DB,
+ 29077 - 11905: 0x9FCB,
+ 29078 - 11905: 0x9FCC,
+ 29079 - 11905: 0x9FCD,
+ 29080 - 11905: 0xECD6,
+ 29081 - 11905: 0xCEF5,
+ 29082 - 11905: 0x9FCE,
+ 29083 - 11905: 0x9FCF,
+ 29084 - 11905: 0x9FD0,
+ 29085 - 11905: 0x9FD1,
+ 29086 - 11905: 0x9FD2,
+ 29087 - 11905: 0xCAEC,
+ 29088 - 11905: 0xECDA,
+ 29089 - 11905: 0x9FD3,
+ 29090 - 11905: 0x9FD4,
+ 29091 - 11905: 0x9FD5,
+ 29092 - 11905: 0x9FD6,
+ 29093 - 11905: 0x9FD7,
+ 29094 - 11905: 0x9FD8,
+ 29095 - 11905: 0x9FD9,
+ 29096 - 11905: 0xECD9,
+ 29097 - 11905: 0x9FDA,
+ 29098 - 11905: 0x9FDB,
+ 29099 - 11905: 0x9FDC,
+ 29100 - 11905: 0xB0BE,
+ 29101 - 11905: 0x9FDD,
+ 29102 - 11905: 0x9FDE,
+ 29103 - 11905: 0x9FDF,
+ 29104 - 11905: 0x9FE0,
+ 29105 - 11905: 0x9FE1,
+ 29106 - 11905: 0x9FE2,
+ 29107 - 11905: 0xECD7,
+ 29108 - 11905: 0x9FE3,
+ 29109 - 11905: 0xECD8,
+ 29110 - 11905: 0x9FE4,
+ 29111 - 11905: 0x9FE5,
+ 29112 - 11905: 0x9FE6,
+ 29113 - 11905: 0xECE4,
+ 29114 - 11905: 0x9FE7,
+ 29115 - 11905: 0x9FE8,
+ 29116 - 11905: 0x9FE9,
+ 29117 - 11905: 0x9FEA,
+ 29118 - 11905: 0x9FEB,
+ 29119 - 11905: 0x9FEC,
+ 29120 - 11905: 0x9FED,
+ 29121 - 11905: 0x9FEE,
+ 29122 - 11905: 0x9FEF,
+ 29123 - 11905: 0xC8BC,
+ 29124 - 11905: 0x9FF0,
+ 29125 - 11905: 0x9FF1,
+ 29126 - 11905: 0x9FF2,
+ 29127 - 11905: 0x9FF3,
+ 29128 - 11905: 0x9FF4,
+ 29129 - 11905: 0x9FF5,
+ 29130 - 11905: 0x9FF6,
+ 29131 - 11905: 0x9FF7,
+ 29132 - 11905: 0x9FF8,
+ 29133 - 11905: 0x9FF9,
+ 29134 - 11905: 0xC1C7,
+ 29135 - 11905: 0x9FFA,
+ 29136 - 11905: 0x9FFB,
+ 29137 - 11905: 0x9FFC,
+ 29138 - 11905: 0x9FFD,
+ 29139 - 11905: 0x9FFE,
+ 29140 - 11905: 0xECDC,
+ 29141 - 11905: 0xD1E0,
+ 29142 - 11905: 0xA040,
+ 29143 - 11905: 0xA041,
+ 29144 - 11905: 0xA042,
+ 29145 - 11905: 0xA043,
+ 29146 - 11905: 0xA044,
+ 29147 - 11905: 0xA045,
+ 29148 - 11905: 0xA046,
+ 29149 - 11905: 0xA047,
+ 29150 - 11905: 0xA048,
+ 29151 - 11905: 0xA049,
+ 29152 - 11905: 0xECDB,
+ 29153 - 11905: 0xA04A,
+ 29154 - 11905: 0xA04B,
+ 29155 - 11905: 0xA04C,
+ 29156 - 11905: 0xA04D,
+ 29157 - 11905: 0xD4EF,
+ 29158 - 11905: 0xA04E,
+ 29159 - 11905: 0xECDD,
+ 29160 - 11905: 0xA04F,
+ 29161 - 11905: 0xA050,
+ 29162 - 11905: 0xA051,
+ 29163 - 11905: 0xA052,
+ 29164 - 11905: 0xA053,
+ 29165 - 11905: 0xA054,
+ 29166 - 11905: 0xDBC6,
+ 29167 - 11905: 0xA055,
+ 29168 - 11905: 0xA056,
+ 29169 - 11905: 0xA057,
+ 29170 - 11905: 0xA058,
+ 29171 - 11905: 0xA059,
+ 29172 - 11905: 0xA05A,
+ 29173 - 11905: 0xA05B,
+ 29174 - 11905: 0xA05C,
+ 29175 - 11905: 0xA05D,
+ 29176 - 11905: 0xA05E,
+ 29177 - 11905: 0xECDE,
+ 29178 - 11905: 0xA05F,
+ 29179 - 11905: 0xA060,
+ 29180 - 11905: 0xA061,
+ 29181 - 11905: 0xA062,
+ 29182 - 11905: 0xA063,
+ 29183 - 11905: 0xA064,
+ 29184 - 11905: 0xA065,
+ 29185 - 11905: 0xA066,
+ 29186 - 11905: 0xA067,
+ 29187 - 11905: 0xA068,
+ 29188 - 11905: 0xA069,
+ 29189 - 11905: 0xA06A,
+ 29190 - 11905: 0xB1AC,
+ 29191 - 11905: 0xA06B,
+ 29192 - 11905: 0xA06C,
+ 29193 - 11905: 0xA06D,
+ 29194 - 11905: 0xA06E,
+ 29195 - 11905: 0xA06F,
+ 29196 - 11905: 0xA070,
+ 29197 - 11905: 0xA071,
+ 29198 - 11905: 0xA072,
+ 29199 - 11905: 0xA073,
+ 29200 - 11905: 0xA074,
+ 29201 - 11905: 0xA075,
+ 29202 - 11905: 0xA076,
+ 29203 - 11905: 0xA077,
+ 29204 - 11905: 0xA078,
+ 29205 - 11905: 0xA079,
+ 29206 - 11905: 0xA07A,
+ 29207 - 11905: 0xA07B,
+ 29208 - 11905: 0xA07C,
+ 29209 - 11905: 0xA07D,
+ 29210 - 11905: 0xA07E,
+ 29211 - 11905: 0xA080,
+ 29212 - 11905: 0xA081,
+ 29213 - 11905: 0xECDF,
+ 29214 - 11905: 0xA082,
+ 29215 - 11905: 0xA083,
+ 29216 - 11905: 0xA084,
+ 29217 - 11905: 0xA085,
+ 29218 - 11905: 0xA086,
+ 29219 - 11905: 0xA087,
+ 29220 - 11905: 0xA088,
+ 29221 - 11905: 0xA089,
+ 29222 - 11905: 0xA08A,
+ 29223 - 11905: 0xA08B,
+ 29224 - 11905: 0xECE0,
+ 29225 - 11905: 0xA08C,
+ 29226 - 11905: 0xD7A6,
+ 29227 - 11905: 0xA08D,
+ 29228 - 11905: 0xC5C0,
+ 29229 - 11905: 0xA08E,
+ 29230 - 11905: 0xA08F,
+ 29231 - 11905: 0xA090,
+ 29232 - 11905: 0xEBBC,
+ 29233 - 11905: 0xB0AE,
+ 29234 - 11905: 0xA091,
+ 29235 - 11905: 0xA092,
+ 29236 - 11905: 0xA093,
+ 29237 - 11905: 0xBEF4,
+ 29238 - 11905: 0xB8B8,
+ 29239 - 11905: 0xD2AF,
+ 29240 - 11905: 0xB0D6,
+ 29241 - 11905: 0xB5F9,
+ 29242 - 11905: 0xA094,
+ 29243 - 11905: 0xD8B3,
+ 29244 - 11905: 0xA095,
+ 29245 - 11905: 0xCBAC,
+ 29246 - 11905: 0xA096,
+ 29247 - 11905: 0xE3DD,
+ 29248 - 11905: 0xA097,
+ 29249 - 11905: 0xA098,
+ 29250 - 11905: 0xA099,
+ 29251 - 11905: 0xA09A,
+ 29252 - 11905: 0xA09B,
+ 29253 - 11905: 0xA09C,
+ 29254 - 11905: 0xA09D,
+ 29255 - 11905: 0xC6AC,
+ 29256 - 11905: 0xB0E6,
+ 29257 - 11905: 0xA09E,
+ 29258 - 11905: 0xA09F,
+ 29259 - 11905: 0xA0A0,
+ 29260 - 11905: 0xC5C6,
+ 29261 - 11905: 0xEBB9,
+ 29262 - 11905: 0xA0A1,
+ 29263 - 11905: 0xA0A2,
+ 29264 - 11905: 0xA0A3,
+ 29265 - 11905: 0xA0A4,
+ 29266 - 11905: 0xEBBA,
+ 29267 - 11905: 0xA0A5,
+ 29268 - 11905: 0xA0A6,
+ 29269 - 11905: 0xA0A7,
+ 29270 - 11905: 0xEBBB,
+ 29271 - 11905: 0xA0A8,
+ 29272 - 11905: 0xA0A9,
+ 29273 - 11905: 0xD1C0,
+ 29274 - 11905: 0xA0AA,
+ 29275 - 11905: 0xC5A3,
+ 29276 - 11905: 0xA0AB,
+ 29277 - 11905: 0xEAF2,
+ 29278 - 11905: 0xA0AC,
+ 29279 - 11905: 0xC4B2,
+ 29280 - 11905: 0xA0AD,
+ 29281 - 11905: 0xC4B5,
+ 29282 - 11905: 0xC0CE,
+ 29283 - 11905: 0xA0AE,
+ 29284 - 11905: 0xA0AF,
+ 29285 - 11905: 0xA0B0,
+ 29286 - 11905: 0xEAF3,
+ 29287 - 11905: 0xC4C1,
+ 29288 - 11905: 0xA0B1,
+ 29289 - 11905: 0xCEEF,
+ 29290 - 11905: 0xA0B2,
+ 29291 - 11905: 0xA0B3,
+ 29292 - 11905: 0xA0B4,
+ 29293 - 11905: 0xA0B5,
+ 29294 - 11905: 0xEAF0,
+ 29295 - 11905: 0xEAF4,
+ 29296 - 11905: 0xA0B6,
+ 29297 - 11905: 0xA0B7,
+ 29298 - 11905: 0xC9FC,
+ 29299 - 11905: 0xA0B8,
+ 29300 - 11905: 0xA0B9,
+ 29301 - 11905: 0xC7A3,
+ 29302 - 11905: 0xA0BA,
+ 29303 - 11905: 0xA0BB,
+ 29304 - 11905: 0xA0BC,
+ 29305 - 11905: 0xCCD8,
+ 29306 - 11905: 0xCEFE,
+ 29307 - 11905: 0xA0BD,
+ 29308 - 11905: 0xA0BE,
+ 29309 - 11905: 0xA0BF,
+ 29310 - 11905: 0xEAF5,
+ 29311 - 11905: 0xEAF6,
+ 29312 - 11905: 0xCFAC,
+ 29313 - 11905: 0xC0E7,
+ 29314 - 11905: 0xA0C0,
+ 29315 - 11905: 0xA0C1,
+ 29316 - 11905: 0xEAF7,
+ 29317 - 11905: 0xA0C2,
+ 29318 - 11905: 0xA0C3,
+ 29319 - 11905: 0xA0C4,
+ 29320 - 11905: 0xA0C5,
+ 29321 - 11905: 0xA0C6,
+ 29322 - 11905: 0xB6BF,
+ 29323 - 11905: 0xEAF8,
+ 29324 - 11905: 0xA0C7,
+ 29325 - 11905: 0xEAF9,
+ 29326 - 11905: 0xA0C8,
+ 29327 - 11905: 0xEAFA,
+ 29328 - 11905: 0xA0C9,
+ 29329 - 11905: 0xA0CA,
+ 29330 - 11905: 0xEAFB,
+ 29331 - 11905: 0xA0CB,
+ 29332 - 11905: 0xA0CC,
+ 29333 - 11905: 0xA0CD,
+ 29334 - 11905: 0xA0CE,
+ 29335 - 11905: 0xA0CF,
+ 29336 - 11905: 0xA0D0,
+ 29337 - 11905: 0xA0D1,
+ 29338 - 11905: 0xA0D2,
+ 29339 - 11905: 0xA0D3,
+ 29340 - 11905: 0xA0D4,
+ 29341 - 11905: 0xA0D5,
+ 29342 - 11905: 0xA0D6,
+ 29343 - 11905: 0xEAF1,
+ 29344 - 11905: 0xA0D7,
+ 29345 - 11905: 0xA0D8,
+ 29346 - 11905: 0xA0D9,
+ 29347 - 11905: 0xA0DA,
+ 29348 - 11905: 0xA0DB,
+ 29349 - 11905: 0xA0DC,
+ 29350 - 11905: 0xA0DD,
+ 29351 - 11905: 0xA0DE,
+ 29352 - 11905: 0xA0DF,
+ 29353 - 11905: 0xA0E0,
+ 29354 - 11905: 0xA0E1,
+ 29355 - 11905: 0xA0E2,
+ 29356 - 11905: 0xC8AE,
+ 29357 - 11905: 0xE1EB,
+ 29358 - 11905: 0xA0E3,
+ 29359 - 11905: 0xB7B8,
+ 29360 - 11905: 0xE1EC,
+ 29361 - 11905: 0xA0E4,
+ 29362 - 11905: 0xA0E5,
+ 29363 - 11905: 0xA0E6,
+ 29364 - 11905: 0xE1ED,
+ 29365 - 11905: 0xA0E7,
+ 29366 - 11905: 0xD7B4,
+ 29367 - 11905: 0xE1EE,
+ 29368 - 11905: 0xE1EF,
+ 29369 - 11905: 0xD3CC,
+ 29370 - 11905: 0xA0E8,
+ 29371 - 11905: 0xA0E9,
+ 29372 - 11905: 0xA0EA,
+ 29373 - 11905: 0xA0EB,
+ 29374 - 11905: 0xA0EC,
+ 29375 - 11905: 0xA0ED,
+ 29376 - 11905: 0xA0EE,
+ 29377 - 11905: 0xE1F1,
+ 29378 - 11905: 0xBFF1,
+ 29379 - 11905: 0xE1F0,
+ 29380 - 11905: 0xB5D2,
+ 29381 - 11905: 0xA0EF,
+ 29382 - 11905: 0xA0F0,
+ 29383 - 11905: 0xA0F1,
+ 29384 - 11905: 0xB1B7,
+ 29385 - 11905: 0xA0F2,
+ 29386 - 11905: 0xA0F3,
+ 29387 - 11905: 0xA0F4,
+ 29388 - 11905: 0xA0F5,
+ 29389 - 11905: 0xE1F3,
+ 29390 - 11905: 0xE1F2,
+ 29391 - 11905: 0xA0F6,
+ 29392 - 11905: 0xBAFC,
+ 29393 - 11905: 0xA0F7,
+ 29394 - 11905: 0xE1F4,
+ 29395 - 11905: 0xA0F8,
+ 29396 - 11905: 0xA0F9,
+ 29397 - 11905: 0xA0FA,
+ 29398 - 11905: 0xA0FB,
+ 29399 - 11905: 0xB9B7,
+ 29400 - 11905: 0xA0FC,
+ 29401 - 11905: 0xBED1,
+ 29402 - 11905: 0xA0FD,
+ 29403 - 11905: 0xA0FE,
+ 29404 - 11905: 0xAA40,
+ 29405 - 11905: 0xAA41,
+ 29406 - 11905: 0xC4FC,
+ 29407 - 11905: 0xAA42,
+ 29408 - 11905: 0xBADD,
+ 29409 - 11905: 0xBDC6,
+ 29410 - 11905: 0xAA43,
+ 29411 - 11905: 0xAA44,
+ 29412 - 11905: 0xAA45,
+ 29413 - 11905: 0xAA46,
+ 29414 - 11905: 0xAA47,
+ 29415 - 11905: 0xAA48,
+ 29416 - 11905: 0xE1F5,
+ 29417 - 11905: 0xE1F7,
+ 29418 - 11905: 0xAA49,
+ 29419 - 11905: 0xAA4A,
+ 29420 - 11905: 0xB6C0,
+ 29421 - 11905: 0xCFC1,
+ 29422 - 11905: 0xCAA8,
+ 29423 - 11905: 0xE1F6,
+ 29424 - 11905: 0xD5F8,
+ 29425 - 11905: 0xD3FC,
+ 29426 - 11905: 0xE1F8,
+ 29427 - 11905: 0xE1FC,
+ 29428 - 11905: 0xE1F9,
+ 29429 - 11905: 0xAA4B,
+ 29430 - 11905: 0xAA4C,
+ 29431 - 11905: 0xE1FA,
+ 29432 - 11905: 0xC0EA,
+ 29433 - 11905: 0xAA4D,
+ 29434 - 11905: 0xE1FE,
+ 29435 - 11905: 0xE2A1,
+ 29436 - 11905: 0xC0C7,
+ 29437 - 11905: 0xAA4E,
+ 29438 - 11905: 0xAA4F,
+ 29439 - 11905: 0xAA50,
+ 29440 - 11905: 0xAA51,
+ 29441 - 11905: 0xE1FB,
+ 29442 - 11905: 0xAA52,
+ 29443 - 11905: 0xE1FD,
+ 29444 - 11905: 0xAA53,
+ 29445 - 11905: 0xAA54,
+ 29446 - 11905: 0xAA55,
+ 29447 - 11905: 0xAA56,
+ 29448 - 11905: 0xAA57,
+ 29449 - 11905: 0xAA58,
+ 29450 - 11905: 0xE2A5,
+ 29451 - 11905: 0xAA59,
+ 29452 - 11905: 0xAA5A,
+ 29453 - 11905: 0xAA5B,
+ 29454 - 11905: 0xC1D4,
+ 29455 - 11905: 0xAA5C,
+ 29456 - 11905: 0xAA5D,
+ 29457 - 11905: 0xAA5E,
+ 29458 - 11905: 0xAA5F,
+ 29459 - 11905: 0xE2A3,
+ 29460 - 11905: 0xAA60,
+ 29461 - 11905: 0xE2A8,
+ 29462 - 11905: 0xB2FE,
+ 29463 - 11905: 0xE2A2,
+ 29464 - 11905: 0xAA61,
+ 29465 - 11905: 0xAA62,
+ 29466 - 11905: 0xAA63,
+ 29467 - 11905: 0xC3CD,
+ 29468 - 11905: 0xB2C2,
+ 29469 - 11905: 0xE2A7,
+ 29470 - 11905: 0xE2A6,
+ 29471 - 11905: 0xAA64,
+ 29472 - 11905: 0xAA65,
+ 29473 - 11905: 0xE2A4,
+ 29474 - 11905: 0xE2A9,
+ 29475 - 11905: 0xAA66,
+ 29476 - 11905: 0xAA67,
+ 29477 - 11905: 0xE2AB,
+ 29478 - 11905: 0xAA68,
+ 29479 - 11905: 0xAA69,
+ 29480 - 11905: 0xAA6A,
+ 29481 - 11905: 0xD0C9,
+ 29482 - 11905: 0xD6ED,
+ 29483 - 11905: 0xC3A8,
+ 29484 - 11905: 0xE2AC,
+ 29485 - 11905: 0xAA6B,
+ 29486 - 11905: 0xCFD7,
+ 29487 - 11905: 0xAA6C,
+ 29488 - 11905: 0xAA6D,
+ 29489 - 11905: 0xE2AE,
+ 29490 - 11905: 0xAA6E,
+ 29491 - 11905: 0xAA6F,
+ 29492 - 11905: 0xBAEF,
+ 29493 - 11905: 0xAA70,
+ 29494 - 11905: 0xAA71,
+ 29495 - 11905: 0xE9E0,
+ 29496 - 11905: 0xE2AD,
+ 29497 - 11905: 0xE2AA,
+ 29498 - 11905: 0xAA72,
+ 29499 - 11905: 0xAA73,
+ 29500 - 11905: 0xAA74,
+ 29501 - 11905: 0xAA75,
+ 29502 - 11905: 0xBBAB,
+ 29503 - 11905: 0xD4B3,
+ 29504 - 11905: 0xAA76,
+ 29505 - 11905: 0xAA77,
+ 29506 - 11905: 0xAA78,
+ 29507 - 11905: 0xAA79,
+ 29508 - 11905: 0xAA7A,
+ 29509 - 11905: 0xAA7B,
+ 29510 - 11905: 0xAA7C,
+ 29511 - 11905: 0xAA7D,
+ 29512 - 11905: 0xAA7E,
+ 29513 - 11905: 0xAA80,
+ 29514 - 11905: 0xAA81,
+ 29515 - 11905: 0xAA82,
+ 29516 - 11905: 0xAA83,
+ 29517 - 11905: 0xE2B0,
+ 29518 - 11905: 0xAA84,
+ 29519 - 11905: 0xAA85,
+ 29520 - 11905: 0xE2AF,
+ 29521 - 11905: 0xAA86,
+ 29522 - 11905: 0xE9E1,
+ 29523 - 11905: 0xAA87,
+ 29524 - 11905: 0xAA88,
+ 29525 - 11905: 0xAA89,
+ 29526 - 11905: 0xAA8A,
+ 29527 - 11905: 0xE2B1,
+ 29528 - 11905: 0xAA8B,
+ 29529 - 11905: 0xAA8C,
+ 29530 - 11905: 0xAA8D,
+ 29531 - 11905: 0xAA8E,
+ 29532 - 11905: 0xAA8F,
+ 29533 - 11905: 0xAA90,
+ 29534 - 11905: 0xAA91,
+ 29535 - 11905: 0xAA92,
+ 29536 - 11905: 0xE2B2,
+ 29537 - 11905: 0xAA93,
+ 29538 - 11905: 0xAA94,
+ 29539 - 11905: 0xAA95,
+ 29540 - 11905: 0xAA96,
+ 29541 - 11905: 0xAA97,
+ 29542 - 11905: 0xAA98,
+ 29543 - 11905: 0xAA99,
+ 29544 - 11905: 0xAA9A,
+ 29545 - 11905: 0xAA9B,
+ 29546 - 11905: 0xAA9C,
+ 29547 - 11905: 0xAA9D,
+ 29548 - 11905: 0xE2B3,
+ 29549 - 11905: 0xCCA1,
+ 29550 - 11905: 0xAA9E,
+ 29551 - 11905: 0xE2B4,
+ 29552 - 11905: 0xAA9F,
+ 29553 - 11905: 0xAAA0,
+ 29554 - 11905: 0xAB40,
+ 29555 - 11905: 0xAB41,
+ 29556 - 11905: 0xAB42,
+ 29557 - 11905: 0xAB43,
+ 29558 - 11905: 0xAB44,
+ 29559 - 11905: 0xAB45,
+ 29560 - 11905: 0xAB46,
+ 29561 - 11905: 0xAB47,
+ 29562 - 11905: 0xAB48,
+ 29563 - 11905: 0xAB49,
+ 29564 - 11905: 0xAB4A,
+ 29565 - 11905: 0xAB4B,
+ 29566 - 11905: 0xE2B5,
+ 29567 - 11905: 0xAB4C,
+ 29568 - 11905: 0xAB4D,
+ 29569 - 11905: 0xAB4E,
+ 29570 - 11905: 0xAB4F,
+ 29571 - 11905: 0xAB50,
+ 29572 - 11905: 0xD0FE,
+ 29573 - 11905: 0xAB51,
+ 29574 - 11905: 0xAB52,
+ 29575 - 11905: 0xC2CA,
+ 29576 - 11905: 0xAB53,
+ 29577 - 11905: 0xD3F1,
+ 29578 - 11905: 0xAB54,
+ 29579 - 11905: 0xCDF5,
+ 29580 - 11905: 0xAB55,
+ 29581 - 11905: 0xAB56,
+ 29582 - 11905: 0xE7E0,
+ 29583 - 11905: 0xAB57,
+ 29584 - 11905: 0xAB58,
+ 29585 - 11905: 0xE7E1,
+ 29586 - 11905: 0xAB59,
+ 29587 - 11905: 0xAB5A,
+ 29588 - 11905: 0xAB5B,
+ 29589 - 11905: 0xAB5C,
+ 29590 - 11905: 0xBEC1,
+ 29591 - 11905: 0xAB5D,
+ 29592 - 11905: 0xAB5E,
+ 29593 - 11905: 0xAB5F,
+ 29594 - 11905: 0xAB60,
+ 29595 - 11905: 0xC2EA,
+ 29596 - 11905: 0xAB61,
+ 29597 - 11905: 0xAB62,
+ 29598 - 11905: 0xAB63,
+ 29599 - 11905: 0xE7E4,
+ 29600 - 11905: 0xAB64,
+ 29601 - 11905: 0xAB65,
+ 29602 - 11905: 0xE7E3,
+ 29603 - 11905: 0xAB66,
+ 29604 - 11905: 0xAB67,
+ 29605 - 11905: 0xAB68,
+ 29606 - 11905: 0xAB69,
+ 29607 - 11905: 0xAB6A,
+ 29608 - 11905: 0xAB6B,
+ 29609 - 11905: 0xCDE6,
+ 29610 - 11905: 0xAB6C,
+ 29611 - 11905: 0xC3B5,
+ 29612 - 11905: 0xAB6D,
+ 29613 - 11905: 0xAB6E,
+ 29614 - 11905: 0xE7E2,
+ 29615 - 11905: 0xBBB7,
+ 29616 - 11905: 0xCFD6,
+ 29617 - 11905: 0xAB6F,
+ 29618 - 11905: 0xC1E1,
+ 29619 - 11905: 0xE7E9,
+ 29620 - 11905: 0xAB70,
+ 29621 - 11905: 0xAB71,
+ 29622 - 11905: 0xAB72,
+ 29623 - 11905: 0xE7E8,
+ 29624 - 11905: 0xAB73,
+ 29625 - 11905: 0xAB74,
+ 29626 - 11905: 0xE7F4,
+ 29627 - 11905: 0xB2A3,
+ 29628 - 11905: 0xAB75,
+ 29629 - 11905: 0xAB76,
+ 29630 - 11905: 0xAB77,
+ 29631 - 11905: 0xAB78,
+ 29632 - 11905: 0xE7EA,
+ 29633 - 11905: 0xAB79,
+ 29634 - 11905: 0xE7E6,
+ 29635 - 11905: 0xAB7A,
+ 29636 - 11905: 0xAB7B,
+ 29637 - 11905: 0xAB7C,
+ 29638 - 11905: 0xAB7D,
+ 29639 - 11905: 0xAB7E,
+ 29640 - 11905: 0xE7EC,
+ 29641 - 11905: 0xE7EB,
+ 29642 - 11905: 0xC9BA,
+ 29643 - 11905: 0xAB80,
+ 29644 - 11905: 0xAB81,
+ 29645 - 11905: 0xD5E4,
+ 29646 - 11905: 0xAB82,
+ 29647 - 11905: 0xE7E5,
+ 29648 - 11905: 0xB7A9,
+ 29649 - 11905: 0xE7E7,
+ 29650 - 11905: 0xAB83,
+ 29651 - 11905: 0xAB84,
+ 29652 - 11905: 0xAB85,
+ 29653 - 11905: 0xAB86,
+ 29654 - 11905: 0xAB87,
+ 29655 - 11905: 0xAB88,
+ 29656 - 11905: 0xAB89,
+ 29657 - 11905: 0xE7EE,
+ 29658 - 11905: 0xAB8A,
+ 29659 - 11905: 0xAB8B,
+ 29660 - 11905: 0xAB8C,
+ 29661 - 11905: 0xAB8D,
+ 29662 - 11905: 0xE7F3,
+ 29663 - 11905: 0xAB8E,
+ 29664 - 11905: 0xD6E9,
+ 29665 - 11905: 0xAB8F,
+ 29666 - 11905: 0xAB90,
+ 29667 - 11905: 0xAB91,
+ 29668 - 11905: 0xAB92,
+ 29669 - 11905: 0xE7ED,
+ 29670 - 11905: 0xAB93,
+ 29671 - 11905: 0xE7F2,
+ 29672 - 11905: 0xAB94,
+ 29673 - 11905: 0xE7F1,
+ 29674 - 11905: 0xAB95,
+ 29675 - 11905: 0xAB96,
+ 29676 - 11905: 0xAB97,
+ 29677 - 11905: 0xB0E0,
+ 29678 - 11905: 0xAB98,
+ 29679 - 11905: 0xAB99,
+ 29680 - 11905: 0xAB9A,
+ 29681 - 11905: 0xAB9B,
+ 29682 - 11905: 0xE7F5,
+ 29683 - 11905: 0xAB9C,
+ 29684 - 11905: 0xAB9D,
+ 29685 - 11905: 0xAB9E,
+ 29686 - 11905: 0xAB9F,
+ 29687 - 11905: 0xABA0,
+ 29688 - 11905: 0xAC40,
+ 29689 - 11905: 0xAC41,
+ 29690 - 11905: 0xAC42,
+ 29691 - 11905: 0xAC43,
+ 29692 - 11905: 0xAC44,
+ 29693 - 11905: 0xAC45,
+ 29694 - 11905: 0xAC46,
+ 29695 - 11905: 0xAC47,
+ 29696 - 11905: 0xAC48,
+ 29697 - 11905: 0xAC49,
+ 29698 - 11905: 0xAC4A,
+ 29699 - 11905: 0xC7F2,
+ 29700 - 11905: 0xAC4B,
+ 29701 - 11905: 0xC0C5,
+ 29702 - 11905: 0xC0ED,
+ 29703 - 11905: 0xAC4C,
+ 29704 - 11905: 0xAC4D,
+ 29705 - 11905: 0xC1F0,
+ 29706 - 11905: 0xE7F0,
+ 29707 - 11905: 0xAC4E,
+ 29708 - 11905: 0xAC4F,
+ 29709 - 11905: 0xAC50,
+ 29710 - 11905: 0xAC51,
+ 29711 - 11905: 0xE7F6,
+ 29712 - 11905: 0xCBF6,
+ 29713 - 11905: 0xAC52,
+ 29714 - 11905: 0xAC53,
+ 29715 - 11905: 0xAC54,
+ 29716 - 11905: 0xAC55,
+ 29717 - 11905: 0xAC56,
+ 29718 - 11905: 0xAC57,
+ 29719 - 11905: 0xAC58,
+ 29720 - 11905: 0xAC59,
+ 29721 - 11905: 0xAC5A,
+ 29722 - 11905: 0xE8A2,
+ 29723 - 11905: 0xE8A1,
+ 29724 - 11905: 0xAC5B,
+ 29725 - 11905: 0xAC5C,
+ 29726 - 11905: 0xAC5D,
+ 29727 - 11905: 0xAC5E,
+ 29728 - 11905: 0xAC5F,
+ 29729 - 11905: 0xAC60,
+ 29730 - 11905: 0xD7C1,
+ 29731 - 11905: 0xAC61,
+ 29732 - 11905: 0xAC62,
+ 29733 - 11905: 0xE7FA,
+ 29734 - 11905: 0xE7F9,
+ 29735 - 11905: 0xAC63,
+ 29736 - 11905: 0xE7FB,
+ 29737 - 11905: 0xAC64,
+ 29738 - 11905: 0xE7F7,
+ 29739 - 11905: 0xAC65,
+ 29740 - 11905: 0xE7FE,
+ 29741 - 11905: 0xAC66,
+ 29742 - 11905: 0xE7FD,
+ 29743 - 11905: 0xAC67,
+ 29744 - 11905: 0xE7FC,
+ 29745 - 11905: 0xAC68,
+ 29746 - 11905: 0xAC69,
+ 29747 - 11905: 0xC1D5,
+ 29748 - 11905: 0xC7D9,
+ 29749 - 11905: 0xC5FD,
+ 29750 - 11905: 0xC5C3,
+ 29751 - 11905: 0xAC6A,
+ 29752 - 11905: 0xAC6B,
+ 29753 - 11905: 0xAC6C,
+ 29754 - 11905: 0xAC6D,
+ 29755 - 11905: 0xAC6E,
+ 29756 - 11905: 0xC7ED,
+ 29757 - 11905: 0xAC6F,
+ 29758 - 11905: 0xAC70,
+ 29759 - 11905: 0xAC71,
+ 29760 - 11905: 0xAC72,
+ 29761 - 11905: 0xE8A3,
+ 29762 - 11905: 0xAC73,
+ 29763 - 11905: 0xAC74,
+ 29764 - 11905: 0xAC75,
+ 29765 - 11905: 0xAC76,
+ 29766 - 11905: 0xAC77,
+ 29767 - 11905: 0xAC78,
+ 29768 - 11905: 0xAC79,
+ 29769 - 11905: 0xAC7A,
+ 29770 - 11905: 0xAC7B,
+ 29771 - 11905: 0xAC7C,
+ 29772 - 11905: 0xAC7D,
+ 29773 - 11905: 0xAC7E,
+ 29774 - 11905: 0xAC80,
+ 29775 - 11905: 0xAC81,
+ 29776 - 11905: 0xAC82,
+ 29777 - 11905: 0xAC83,
+ 29778 - 11905: 0xAC84,
+ 29779 - 11905: 0xAC85,
+ 29780 - 11905: 0xAC86,
+ 29781 - 11905: 0xE8A6,
+ 29782 - 11905: 0xAC87,
+ 29783 - 11905: 0xE8A5,
+ 29784 - 11905: 0xAC88,
+ 29785 - 11905: 0xE8A7,
+ 29786 - 11905: 0xBAF7,
+ 29787 - 11905: 0xE7F8,
+ 29788 - 11905: 0xE8A4,
+ 29789 - 11905: 0xAC89,
+ 29790 - 11905: 0xC8F0,
+ 29791 - 11905: 0xC9AA,
+ 29792 - 11905: 0xAC8A,
+ 29793 - 11905: 0xAC8B,
+ 29794 - 11905: 0xAC8C,
+ 29795 - 11905: 0xAC8D,
+ 29796 - 11905: 0xAC8E,
+ 29797 - 11905: 0xAC8F,
+ 29798 - 11905: 0xAC90,
+ 29799 - 11905: 0xAC91,
+ 29800 - 11905: 0xAC92,
+ 29801 - 11905: 0xAC93,
+ 29802 - 11905: 0xAC94,
+ 29803 - 11905: 0xAC95,
+ 29804 - 11905: 0xAC96,
+ 29805 - 11905: 0xE8A9,
+ 29806 - 11905: 0xAC97,
+ 29807 - 11905: 0xAC98,
+ 29808 - 11905: 0xB9E5,
+ 29809 - 11905: 0xAC99,
+ 29810 - 11905: 0xAC9A,
+ 29811 - 11905: 0xAC9B,
+ 29812 - 11905: 0xAC9C,
+ 29813 - 11905: 0xAC9D,
+ 29814 - 11905: 0xD1FE,
+ 29815 - 11905: 0xE8A8,
+ 29816 - 11905: 0xAC9E,
+ 29817 - 11905: 0xAC9F,
+ 29818 - 11905: 0xACA0,
+ 29819 - 11905: 0xAD40,
+ 29820 - 11905: 0xAD41,
+ 29821 - 11905: 0xAD42,
+ 29822 - 11905: 0xE8AA,
+ 29823 - 11905: 0xAD43,
+ 29824 - 11905: 0xE8AD,
+ 29825 - 11905: 0xE8AE,
+ 29826 - 11905: 0xAD44,
+ 29827 - 11905: 0xC1A7,
+ 29828 - 11905: 0xAD45,
+ 29829 - 11905: 0xAD46,
+ 29830 - 11905: 0xAD47,
+ 29831 - 11905: 0xE8AF,
+ 29832 - 11905: 0xAD48,
+ 29833 - 11905: 0xAD49,
+ 29834 - 11905: 0xAD4A,
+ 29835 - 11905: 0xE8B0,
+ 29836 - 11905: 0xAD4B,
+ 29837 - 11905: 0xAD4C,
+ 29838 - 11905: 0xE8AC,
+ 29839 - 11905: 0xAD4D,
+ 29840 - 11905: 0xE8B4,
+ 29841 - 11905: 0xAD4E,
+ 29842 - 11905: 0xAD4F,
+ 29843 - 11905: 0xAD50,
+ 29844 - 11905: 0xAD51,
+ 29845 - 11905: 0xAD52,
+ 29846 - 11905: 0xAD53,
+ 29847 - 11905: 0xAD54,
+ 29848 - 11905: 0xAD55,
+ 29849 - 11905: 0xAD56,
+ 29850 - 11905: 0xAD57,
+ 29851 - 11905: 0xAD58,
+ 29852 - 11905: 0xE8AB,
+ 29853 - 11905: 0xAD59,
+ 29854 - 11905: 0xE8B1,
+ 29855 - 11905: 0xAD5A,
+ 29856 - 11905: 0xAD5B,
+ 29857 - 11905: 0xAD5C,
+ 29858 - 11905: 0xAD5D,
+ 29859 - 11905: 0xAD5E,
+ 29860 - 11905: 0xAD5F,
+ 29861 - 11905: 0xAD60,
+ 29862 - 11905: 0xAD61,
+ 29863 - 11905: 0xE8B5,
+ 29864 - 11905: 0xE8B2,
+ 29865 - 11905: 0xE8B3,
+ 29866 - 11905: 0xAD62,
+ 29867 - 11905: 0xAD63,
+ 29868 - 11905: 0xAD64,
+ 29869 - 11905: 0xAD65,
+ 29870 - 11905: 0xAD66,
+ 29871 - 11905: 0xAD67,
+ 29872 - 11905: 0xAD68,
+ 29873 - 11905: 0xAD69,
+ 29874 - 11905: 0xAD6A,
+ 29875 - 11905: 0xAD6B,
+ 29876 - 11905: 0xAD6C,
+ 29877 - 11905: 0xAD6D,
+ 29878 - 11905: 0xAD6E,
+ 29879 - 11905: 0xAD6F,
+ 29880 - 11905: 0xAD70,
+ 29881 - 11905: 0xAD71,
+ 29882 - 11905: 0xE8B7,
+ 29883 - 11905: 0xAD72,
+ 29884 - 11905: 0xAD73,
+ 29885 - 11905: 0xAD74,
+ 29886 - 11905: 0xAD75,
+ 29887 - 11905: 0xAD76,
+ 29888 - 11905: 0xAD77,
+ 29889 - 11905: 0xAD78,
+ 29890 - 11905: 0xAD79,
+ 29891 - 11905: 0xAD7A,
+ 29892 - 11905: 0xAD7B,
+ 29893 - 11905: 0xAD7C,
+ 29894 - 11905: 0xAD7D,
+ 29895 - 11905: 0xAD7E,
+ 29896 - 11905: 0xAD80,
+ 29897 - 11905: 0xAD81,
+ 29898 - 11905: 0xAD82,
+ 29899 - 11905: 0xAD83,
+ 29900 - 11905: 0xAD84,
+ 29901 - 11905: 0xAD85,
+ 29902 - 11905: 0xAD86,
+ 29903 - 11905: 0xAD87,
+ 29904 - 11905: 0xAD88,
+ 29905 - 11905: 0xAD89,
+ 29906 - 11905: 0xE8B6,
+ 29907 - 11905: 0xAD8A,
+ 29908 - 11905: 0xAD8B,
+ 29909 - 11905: 0xAD8C,
+ 29910 - 11905: 0xAD8D,
+ 29911 - 11905: 0xAD8E,
+ 29912 - 11905: 0xAD8F,
+ 29913 - 11905: 0xAD90,
+ 29914 - 11905: 0xAD91,
+ 29915 - 11905: 0xAD92,
+ 29916 - 11905: 0xB9CF,
+ 29917 - 11905: 0xAD93,
+ 29918 - 11905: 0xF0AC,
+ 29919 - 11905: 0xAD94,
+ 29920 - 11905: 0xF0AD,
+ 29921 - 11905: 0xAD95,
+ 29922 - 11905: 0xC6B0,
+ 29923 - 11905: 0xB0EA,
+ 29924 - 11905: 0xC8BF,
+ 29925 - 11905: 0xAD96,
+ 29926 - 11905: 0xCDDF,
+ 29927 - 11905: 0xAD97,
+ 29928 - 11905: 0xAD98,
+ 29929 - 11905: 0xAD99,
+ 29930 - 11905: 0xAD9A,
+ 29931 - 11905: 0xAD9B,
+ 29932 - 11905: 0xAD9C,
+ 29933 - 11905: 0xAD9D,
+ 29934 - 11905: 0xCECD,
+ 29935 - 11905: 0xEAB1,
+ 29936 - 11905: 0xAD9E,
+ 29937 - 11905: 0xAD9F,
+ 29938 - 11905: 0xADA0,
+ 29939 - 11905: 0xAE40,
+ 29940 - 11905: 0xEAB2,
+ 29941 - 11905: 0xAE41,
+ 29942 - 11905: 0xC6BF,
+ 29943 - 11905: 0xB4C9,
+ 29944 - 11905: 0xAE42,
+ 29945 - 11905: 0xAE43,
+ 29946 - 11905: 0xAE44,
+ 29947 - 11905: 0xAE45,
+ 29948 - 11905: 0xAE46,
+ 29949 - 11905: 0xAE47,
+ 29950 - 11905: 0xAE48,
+ 29951 - 11905: 0xEAB3,
+ 29952 - 11905: 0xAE49,
+ 29953 - 11905: 0xAE4A,
+ 29954 - 11905: 0xAE4B,
+ 29955 - 11905: 0xAE4C,
+ 29956 - 11905: 0xD5E7,
+ 29957 - 11905: 0xAE4D,
+ 29958 - 11905: 0xAE4E,
+ 29959 - 11905: 0xAE4F,
+ 29960 - 11905: 0xAE50,
+ 29961 - 11905: 0xAE51,
+ 29962 - 11905: 0xAE52,
+ 29963 - 11905: 0xAE53,
+ 29964 - 11905: 0xAE54,
+ 29965 - 11905: 0xDDF9,
+ 29966 - 11905: 0xAE55,
+ 29967 - 11905: 0xEAB4,
+ 29968 - 11905: 0xAE56,
+ 29969 - 11905: 0xEAB5,
+ 29970 - 11905: 0xAE57,
+ 29971 - 11905: 0xEAB6,
+ 29972 - 11905: 0xAE58,
+ 29973 - 11905: 0xAE59,
+ 29974 - 11905: 0xAE5A,
+ 29975 - 11905: 0xAE5B,
+ 29976 - 11905: 0xB8CA,
+ 29977 - 11905: 0xDFB0,
+ 29978 - 11905: 0xC9F5,
+ 29979 - 11905: 0xAE5C,
+ 29980 - 11905: 0xCCF0,
+ 29981 - 11905: 0xAE5D,
+ 29982 - 11905: 0xAE5E,
+ 29983 - 11905: 0xC9FA,
+ 29984 - 11905: 0xAE5F,
+ 29985 - 11905: 0xAE60,
+ 29986 - 11905: 0xAE61,
+ 29987 - 11905: 0xAE62,
+ 29988 - 11905: 0xAE63,
+ 29989 - 11905: 0xC9FB,
+ 29990 - 11905: 0xAE64,
+ 29991 - 11905: 0xAE65,
+ 29992 - 11905: 0xD3C3,
+ 29993 - 11905: 0xCBA6,
+ 29994 - 11905: 0xAE66,
+ 29995 - 11905: 0xB8A6,
+ 29996 - 11905: 0xF0AE,
+ 29997 - 11905: 0xB1C2,
+ 29998 - 11905: 0xAE67,
+ 29999 - 11905: 0xE5B8,
+ 30000 - 11905: 0xCCEF,
+ 30001 - 11905: 0xD3C9,
+ 30002 - 11905: 0xBCD7,
+ 30003 - 11905: 0xC9EA,
+ 30004 - 11905: 0xAE68,
+ 30005 - 11905: 0xB5E7,
+ 30006 - 11905: 0xAE69,
+ 30007 - 11905: 0xC4D0,
+ 30008 - 11905: 0xB5E9,
+ 30009 - 11905: 0xAE6A,
+ 30010 - 11905: 0xEEAE,
+ 30011 - 11905: 0xBBAD,
+ 30012 - 11905: 0xAE6B,
+ 30013 - 11905: 0xAE6C,
+ 30014 - 11905: 0xE7DE,
+ 30015 - 11905: 0xAE6D,
+ 30016 - 11905: 0xEEAF,
+ 30017 - 11905: 0xAE6E,
+ 30018 - 11905: 0xAE6F,
+ 30019 - 11905: 0xAE70,
+ 30020 - 11905: 0xAE71,
+ 30021 - 11905: 0xB3A9,
+ 30022 - 11905: 0xAE72,
+ 30023 - 11905: 0xAE73,
+ 30024 - 11905: 0xEEB2,
+ 30025 - 11905: 0xAE74,
+ 30026 - 11905: 0xAE75,
+ 30027 - 11905: 0xEEB1,
+ 30028 - 11905: 0xBDE7,
+ 30029 - 11905: 0xAE76,
+ 30030 - 11905: 0xEEB0,
+ 30031 - 11905: 0xCEB7,
+ 30032 - 11905: 0xAE77,
+ 30033 - 11905: 0xAE78,
+ 30034 - 11905: 0xAE79,
+ 30035 - 11905: 0xAE7A,
+ 30036 - 11905: 0xC5CF,
+ 30037 - 11905: 0xAE7B,
+ 30038 - 11905: 0xAE7C,
+ 30039 - 11905: 0xAE7D,
+ 30040 - 11905: 0xAE7E,
+ 30041 - 11905: 0xC1F4,
+ 30042 - 11905: 0xDBCE,
+ 30043 - 11905: 0xEEB3,
+ 30044 - 11905: 0xD0F3,
+ 30045 - 11905: 0xAE80,
+ 30046 - 11905: 0xAE81,
+ 30047 - 11905: 0xAE82,
+ 30048 - 11905: 0xAE83,
+ 30049 - 11905: 0xAE84,
+ 30050 - 11905: 0xAE85,
+ 30051 - 11905: 0xAE86,
+ 30052 - 11905: 0xAE87,
+ 30053 - 11905: 0xC2D4,
+ 30054 - 11905: 0xC6E8,
+ 30055 - 11905: 0xAE88,
+ 30056 - 11905: 0xAE89,
+ 30057 - 11905: 0xAE8A,
+ 30058 - 11905: 0xB7AC,
+ 30059 - 11905: 0xAE8B,
+ 30060 - 11905: 0xAE8C,
+ 30061 - 11905: 0xAE8D,
+ 30062 - 11905: 0xAE8E,
+ 30063 - 11905: 0xAE8F,
+ 30064 - 11905: 0xAE90,
+ 30065 - 11905: 0xAE91,
+ 30066 - 11905: 0xEEB4,
+ 30067 - 11905: 0xAE92,
+ 30068 - 11905: 0xB3EB,
+ 30069 - 11905: 0xAE93,
+ 30070 - 11905: 0xAE94,
+ 30071 - 11905: 0xAE95,
+ 30072 - 11905: 0xBBFB,
+ 30073 - 11905: 0xEEB5,
+ 30074 - 11905: 0xAE96,
+ 30075 - 11905: 0xAE97,
+ 30076 - 11905: 0xAE98,
+ 30077 - 11905: 0xAE99,
+ 30078 - 11905: 0xAE9A,
+ 30079 - 11905: 0xE7DC,
+ 30080 - 11905: 0xAE9B,
+ 30081 - 11905: 0xAE9C,
+ 30082 - 11905: 0xAE9D,
+ 30083 - 11905: 0xEEB6,
+ 30084 - 11905: 0xAE9E,
+ 30085 - 11905: 0xAE9F,
+ 30086 - 11905: 0xBDAE,
+ 30087 - 11905: 0xAEA0,
+ 30088 - 11905: 0xAF40,
+ 30089 - 11905: 0xAF41,
+ 30090 - 11905: 0xAF42,
+ 30091 - 11905: 0xF1E2,
+ 30092 - 11905: 0xAF43,
+ 30093 - 11905: 0xAF44,
+ 30094 - 11905: 0xAF45,
+ 30095 - 11905: 0xCAE8,
+ 30096 - 11905: 0xAF46,
+ 30097 - 11905: 0xD2C9,
+ 30098 - 11905: 0xF0DA,
+ 30099 - 11905: 0xAF47,
+ 30100 - 11905: 0xF0DB,
+ 30101 - 11905: 0xAF48,
+ 30102 - 11905: 0xF0DC,
+ 30103 - 11905: 0xC1C6,
+ 30104 - 11905: 0xAF49,
+ 30105 - 11905: 0xB8ED,
+ 30106 - 11905: 0xBECE,
+ 30107 - 11905: 0xAF4A,
+ 30108 - 11905: 0xAF4B,
+ 30109 - 11905: 0xF0DE,
+ 30110 - 11905: 0xAF4C,
+ 30111 - 11905: 0xC5B1,
+ 30112 - 11905: 0xF0DD,
+ 30113 - 11905: 0xD1F1,
+ 30114 - 11905: 0xAF4D,
+ 30115 - 11905: 0xF0E0,
+ 30116 - 11905: 0xB0CC,
+ 30117 - 11905: 0xBDEA,
+ 30118 - 11905: 0xAF4E,
+ 30119 - 11905: 0xAF4F,
+ 30120 - 11905: 0xAF50,
+ 30121 - 11905: 0xAF51,
+ 30122 - 11905: 0xAF52,
+ 30123 - 11905: 0xD2DF,
+ 30124 - 11905: 0xF0DF,
+ 30125 - 11905: 0xAF53,
+ 30126 - 11905: 0xB4AF,
+ 30127 - 11905: 0xB7E8,
+ 30128 - 11905: 0xF0E6,
+ 30129 - 11905: 0xF0E5,
+ 30130 - 11905: 0xC6A3,
+ 30131 - 11905: 0xF0E1,
+ 30132 - 11905: 0xF0E2,
+ 30133 - 11905: 0xB4C3,
+ 30134 - 11905: 0xAF54,
+ 30135 - 11905: 0xAF55,
+ 30136 - 11905: 0xF0E3,
+ 30137 - 11905: 0xD5EE,
+ 30138 - 11905: 0xAF56,
+ 30139 - 11905: 0xAF57,
+ 30140 - 11905: 0xCCDB,
+ 30141 - 11905: 0xBED2,
+ 30142 - 11905: 0xBCB2,
+ 30143 - 11905: 0xAF58,
+ 30144 - 11905: 0xAF59,
+ 30145 - 11905: 0xAF5A,
+ 30146 - 11905: 0xF0E8,
+ 30147 - 11905: 0xF0E7,
+ 30148 - 11905: 0xF0E4,
+ 30149 - 11905: 0xB2A1,
+ 30150 - 11905: 0xAF5B,
+ 30151 - 11905: 0xD6A2,
+ 30152 - 11905: 0xD3B8,
+ 30153 - 11905: 0xBEB7,
+ 30154 - 11905: 0xC8AC,
+ 30155 - 11905: 0xAF5C,
+ 30156 - 11905: 0xAF5D,
+ 30157 - 11905: 0xF0EA,
+ 30158 - 11905: 0xAF5E,
+ 30159 - 11905: 0xAF5F,
+ 30160 - 11905: 0xAF60,
+ 30161 - 11905: 0xAF61,
+ 30162 - 11905: 0xD1F7,
+ 30163 - 11905: 0xAF62,
+ 30164 - 11905: 0xD6CC,
+ 30165 - 11905: 0xBADB,
+ 30166 - 11905: 0xF0E9,
+ 30167 - 11905: 0xAF63,
+ 30168 - 11905: 0xB6BB,
+ 30169 - 11905: 0xAF64,
+ 30170 - 11905: 0xAF65,
+ 30171 - 11905: 0xCDB4,
+ 30172 - 11905: 0xAF66,
+ 30173 - 11905: 0xAF67,
+ 30174 - 11905: 0xC6A6,
+ 30175 - 11905: 0xAF68,
+ 30176 - 11905: 0xAF69,
+ 30177 - 11905: 0xAF6A,
+ 30178 - 11905: 0xC1A1,
+ 30179 - 11905: 0xF0EB,
+ 30180 - 11905: 0xF0EE,
+ 30181 - 11905: 0xAF6B,
+ 30182 - 11905: 0xF0ED,
+ 30183 - 11905: 0xF0F0,
+ 30184 - 11905: 0xF0EC,
+ 30185 - 11905: 0xAF6C,
+ 30186 - 11905: 0xBBBE,
+ 30187 - 11905: 0xF0EF,
+ 30188 - 11905: 0xAF6D,
+ 30189 - 11905: 0xAF6E,
+ 30190 - 11905: 0xAF6F,
+ 30191 - 11905: 0xAF70,
+ 30192 - 11905: 0xCCB5,
+ 30193 - 11905: 0xF0F2,
+ 30194 - 11905: 0xAF71,
+ 30195 - 11905: 0xAF72,
+ 30196 - 11905: 0xB3D5,
+ 30197 - 11905: 0xAF73,
+ 30198 - 11905: 0xAF74,
+ 30199 - 11905: 0xAF75,
+ 30200 - 11905: 0xAF76,
+ 30201 - 11905: 0xB1D4,
+ 30202 - 11905: 0xAF77,
+ 30203 - 11905: 0xAF78,
+ 30204 - 11905: 0xF0F3,
+ 30205 - 11905: 0xAF79,
+ 30206 - 11905: 0xAF7A,
+ 30207 - 11905: 0xF0F4,
+ 30208 - 11905: 0xF0F6,
+ 30209 - 11905: 0xB4E1,
+ 30210 - 11905: 0xAF7B,
+ 30211 - 11905: 0xF0F1,
+ 30212 - 11905: 0xAF7C,
+ 30213 - 11905: 0xF0F7,
+ 30214 - 11905: 0xAF7D,
+ 30215 - 11905: 0xAF7E,
+ 30216 - 11905: 0xAF80,
+ 30217 - 11905: 0xAF81,
+ 30218 - 11905: 0xF0FA,
+ 30219 - 11905: 0xAF82,
+ 30220 - 11905: 0xF0F8,
+ 30221 - 11905: 0xAF83,
+ 30222 - 11905: 0xAF84,
+ 30223 - 11905: 0xAF85,
+ 30224 - 11905: 0xF0F5,
+ 30225 - 11905: 0xAF86,
+ 30226 - 11905: 0xAF87,
+ 30227 - 11905: 0xAF88,
+ 30228 - 11905: 0xAF89,
+ 30229 - 11905: 0xF0FD,
+ 30230 - 11905: 0xAF8A,
+ 30231 - 11905: 0xF0F9,
+ 30232 - 11905: 0xF0FC,
+ 30233 - 11905: 0xF0FE,
+ 30234 - 11905: 0xAF8B,
+ 30235 - 11905: 0xF1A1,
+ 30236 - 11905: 0xAF8C,
+ 30237 - 11905: 0xAF8D,
+ 30238 - 11905: 0xAF8E,
+ 30239 - 11905: 0xCEC1,
+ 30240 - 11905: 0xF1A4,
+ 30241 - 11905: 0xAF8F,
+ 30242 - 11905: 0xF1A3,
+ 30243 - 11905: 0xAF90,
+ 30244 - 11905: 0xC1F6,
+ 30245 - 11905: 0xF0FB,
+ 30246 - 11905: 0xCADD,
+ 30247 - 11905: 0xAF91,
+ 30248 - 11905: 0xAF92,
+ 30249 - 11905: 0xB4F1,
+ 30250 - 11905: 0xB1F1,
+ 30251 - 11905: 0xCCB1,
+ 30252 - 11905: 0xAF93,
+ 30253 - 11905: 0xF1A6,
+ 30254 - 11905: 0xAF94,
+ 30255 - 11905: 0xAF95,
+ 30256 - 11905: 0xF1A7,
+ 30257 - 11905: 0xAF96,
+ 30258 - 11905: 0xAF97,
+ 30259 - 11905: 0xF1AC,
+ 30260 - 11905: 0xD5CE,
+ 30261 - 11905: 0xF1A9,
+ 30262 - 11905: 0xAF98,
+ 30263 - 11905: 0xAF99,
+ 30264 - 11905: 0xC8B3,
+ 30265 - 11905: 0xAF9A,
+ 30266 - 11905: 0xAF9B,
+ 30267 - 11905: 0xAF9C,
+ 30268 - 11905: 0xF1A2,
+ 30269 - 11905: 0xAF9D,
+ 30270 - 11905: 0xF1AB,
+ 30271 - 11905: 0xF1A8,
+ 30272 - 11905: 0xF1A5,
+ 30273 - 11905: 0xAF9E,
+ 30274 - 11905: 0xAF9F,
+ 30275 - 11905: 0xF1AA,
+ 30276 - 11905: 0xAFA0,
+ 30277 - 11905: 0xB040,
+ 30278 - 11905: 0xB041,
+ 30279 - 11905: 0xB042,
+ 30280 - 11905: 0xB043,
+ 30281 - 11905: 0xB044,
+ 30282 - 11905: 0xB045,
+ 30283 - 11905: 0xB046,
+ 30284 - 11905: 0xB0A9,
+ 30285 - 11905: 0xF1AD,
+ 30286 - 11905: 0xB047,
+ 30287 - 11905: 0xB048,
+ 30288 - 11905: 0xB049,
+ 30289 - 11905: 0xB04A,
+ 30290 - 11905: 0xB04B,
+ 30291 - 11905: 0xB04C,
+ 30292 - 11905: 0xF1AF,
+ 30293 - 11905: 0xB04D,
+ 30294 - 11905: 0xF1B1,
+ 30295 - 11905: 0xB04E,
+ 30296 - 11905: 0xB04F,
+ 30297 - 11905: 0xB050,
+ 30298 - 11905: 0xB051,
+ 30299 - 11905: 0xB052,
+ 30300 - 11905: 0xF1B0,
+ 30301 - 11905: 0xB053,
+ 30302 - 11905: 0xF1AE,
+ 30303 - 11905: 0xB054,
+ 30304 - 11905: 0xB055,
+ 30305 - 11905: 0xB056,
+ 30306 - 11905: 0xB057,
+ 30307 - 11905: 0xD1A2,
+ 30308 - 11905: 0xB058,
+ 30309 - 11905: 0xB059,
+ 30310 - 11905: 0xB05A,
+ 30311 - 11905: 0xB05B,
+ 30312 - 11905: 0xB05C,
+ 30313 - 11905: 0xB05D,
+ 30314 - 11905: 0xB05E,
+ 30315 - 11905: 0xF1B2,
+ 30316 - 11905: 0xB05F,
+ 30317 - 11905: 0xB060,
+ 30318 - 11905: 0xB061,
+ 30319 - 11905: 0xF1B3,
+ 30320 - 11905: 0xB062,
+ 30321 - 11905: 0xB063,
+ 30322 - 11905: 0xB064,
+ 30323 - 11905: 0xB065,
+ 30324 - 11905: 0xB066,
+ 30325 - 11905: 0xB067,
+ 30326 - 11905: 0xB068,
+ 30327 - 11905: 0xB069,
+ 30328 - 11905: 0xB9EF,
+ 30329 - 11905: 0xB06A,
+ 30330 - 11905: 0xB06B,
+ 30331 - 11905: 0xB5C7,
+ 30332 - 11905: 0xB06C,
+ 30333 - 11905: 0xB0D7,
+ 30334 - 11905: 0xB0D9,
+ 30335 - 11905: 0xB06D,
+ 30336 - 11905: 0xB06E,
+ 30337 - 11905: 0xB06F,
+ 30338 - 11905: 0xD4ED,
+ 30339 - 11905: 0xB070,
+ 30340 - 11905: 0xB5C4,
+ 30341 - 11905: 0xB071,
+ 30342 - 11905: 0xBDD4,
+ 30343 - 11905: 0xBBCA,
+ 30344 - 11905: 0xF0A7,
+ 30345 - 11905: 0xB072,
+ 30346 - 11905: 0xB073,
+ 30347 - 11905: 0xB8DE,
+ 30348 - 11905: 0xB074,
+ 30349 - 11905: 0xB075,
+ 30350 - 11905: 0xF0A8,
+ 30351 - 11905: 0xB076,
+ 30352 - 11905: 0xB077,
+ 30353 - 11905: 0xB0A8,
+ 30354 - 11905: 0xB078,
+ 30355 - 11905: 0xF0A9,
+ 30356 - 11905: 0xB079,
+ 30357 - 11905: 0xB07A,
+ 30358 - 11905: 0xCDEE,
+ 30359 - 11905: 0xB07B,
+ 30360 - 11905: 0xB07C,
+ 30361 - 11905: 0xF0AA,
+ 30362 - 11905: 0xB07D,
+ 30363 - 11905: 0xB07E,
+ 30364 - 11905: 0xB080,
+ 30365 - 11905: 0xB081,
+ 30366 - 11905: 0xB082,
+ 30367 - 11905: 0xB083,
+ 30368 - 11905: 0xB084,
+ 30369 - 11905: 0xB085,
+ 30370 - 11905: 0xB086,
+ 30371 - 11905: 0xB087,
+ 30372 - 11905: 0xF0AB,
+ 30373 - 11905: 0xB088,
+ 30374 - 11905: 0xB089,
+ 30375 - 11905: 0xB08A,
+ 30376 - 11905: 0xB08B,
+ 30377 - 11905: 0xB08C,
+ 30378 - 11905: 0xB08D,
+ 30379 - 11905: 0xB08E,
+ 30380 - 11905: 0xB08F,
+ 30381 - 11905: 0xB090,
+ 30382 - 11905: 0xC6A4,
+ 30383 - 11905: 0xB091,
+ 30384 - 11905: 0xB092,
+ 30385 - 11905: 0xD6E5,
+ 30386 - 11905: 0xF1E4,
+ 30387 - 11905: 0xB093,
+ 30388 - 11905: 0xF1E5,
+ 30389 - 11905: 0xB094,
+ 30390 - 11905: 0xB095,
+ 30391 - 11905: 0xB096,
+ 30392 - 11905: 0xB097,
+ 30393 - 11905: 0xB098,
+ 30394 - 11905: 0xB099,
+ 30395 - 11905: 0xB09A,
+ 30396 - 11905: 0xB09B,
+ 30397 - 11905: 0xB09C,
+ 30398 - 11905: 0xB09D,
+ 30399 - 11905: 0xC3F3,
+ 30400 - 11905: 0xB09E,
+ 30401 - 11905: 0xB09F,
+ 30402 - 11905: 0xD3DB,
+ 30403 - 11905: 0xB0A0,
+ 30404 - 11905: 0xB140,
+ 30405 - 11905: 0xD6D1,
+ 30406 - 11905: 0xC5E8,
+ 30407 - 11905: 0xB141,
+ 30408 - 11905: 0xD3AF,
+ 30409 - 11905: 0xB142,
+ 30410 - 11905: 0xD2E6,
+ 30411 - 11905: 0xB143,
+ 30412 - 11905: 0xB144,
+ 30413 - 11905: 0xEEC1,
+ 30414 - 11905: 0xB0BB,
+ 30415 - 11905: 0xD5B5,
+ 30416 - 11905: 0xD1CE,
+ 30417 - 11905: 0xBCE0,
+ 30418 - 11905: 0xBAD0,
+ 30419 - 11905: 0xB145,
+ 30420 - 11905: 0xBFF8,
+ 30421 - 11905: 0xB146,
+ 30422 - 11905: 0xB8C7,
+ 30423 - 11905: 0xB5C1,
+ 30424 - 11905: 0xC5CC,
+ 30425 - 11905: 0xB147,
+ 30426 - 11905: 0xB148,
+ 30427 - 11905: 0xCAA2,
+ 30428 - 11905: 0xB149,
+ 30429 - 11905: 0xB14A,
+ 30430 - 11905: 0xB14B,
+ 30431 - 11905: 0xC3CB,
+ 30432 - 11905: 0xB14C,
+ 30433 - 11905: 0xB14D,
+ 30434 - 11905: 0xB14E,
+ 30435 - 11905: 0xB14F,
+ 30436 - 11905: 0xB150,
+ 30437 - 11905: 0xEEC2,
+ 30438 - 11905: 0xB151,
+ 30439 - 11905: 0xB152,
+ 30440 - 11905: 0xB153,
+ 30441 - 11905: 0xB154,
+ 30442 - 11905: 0xB155,
+ 30443 - 11905: 0xB156,
+ 30444 - 11905: 0xB157,
+ 30445 - 11905: 0xB158,
+ 30446 - 11905: 0xC4BF,
+ 30447 - 11905: 0xB6A2,
+ 30448 - 11905: 0xB159,
+ 30449 - 11905: 0xEDEC,
+ 30450 - 11905: 0xC3A4,
+ 30451 - 11905: 0xB15A,
+ 30452 - 11905: 0xD6B1,
+ 30453 - 11905: 0xB15B,
+ 30454 - 11905: 0xB15C,
+ 30455 - 11905: 0xB15D,
+ 30456 - 11905: 0xCFE0,
+ 30457 - 11905: 0xEDEF,
+ 30458 - 11905: 0xB15E,
+ 30459 - 11905: 0xB15F,
+ 30460 - 11905: 0xC5CE,
+ 30461 - 11905: 0xB160,
+ 30462 - 11905: 0xB6DC,
+ 30463 - 11905: 0xB161,
+ 30464 - 11905: 0xB162,
+ 30465 - 11905: 0xCAA1,
+ 30466 - 11905: 0xB163,
+ 30467 - 11905: 0xB164,
+ 30468 - 11905: 0xEDED,
+ 30469 - 11905: 0xB165,
+ 30470 - 11905: 0xB166,
+ 30471 - 11905: 0xEDF0,
+ 30472 - 11905: 0xEDF1,
+ 30473 - 11905: 0xC3BC,
+ 30474 - 11905: 0xB167,
+ 30475 - 11905: 0xBFB4,
+ 30476 - 11905: 0xB168,
+ 30477 - 11905: 0xEDEE,
+ 30478 - 11905: 0xB169,
+ 30479 - 11905: 0xB16A,
+ 30480 - 11905: 0xB16B,
+ 30481 - 11905: 0xB16C,
+ 30482 - 11905: 0xB16D,
+ 30483 - 11905: 0xB16E,
+ 30484 - 11905: 0xB16F,
+ 30485 - 11905: 0xB170,
+ 30486 - 11905: 0xB171,
+ 30487 - 11905: 0xB172,
+ 30488 - 11905: 0xB173,
+ 30489 - 11905: 0xEDF4,
+ 30490 - 11905: 0xEDF2,
+ 30491 - 11905: 0xB174,
+ 30492 - 11905: 0xB175,
+ 30493 - 11905: 0xB176,
+ 30494 - 11905: 0xB177,
+ 30495 - 11905: 0xD5E6,
+ 30496 - 11905: 0xC3DF,
+ 30497 - 11905: 0xB178,
+ 30498 - 11905: 0xEDF3,
+ 30499 - 11905: 0xB179,
+ 30500 - 11905: 0xB17A,
+ 30501 - 11905: 0xB17B,
+ 30502 - 11905: 0xEDF6,
+ 30503 - 11905: 0xB17C,
+ 30504 - 11905: 0xD5A3,
+ 30505 - 11905: 0xD1A3,
+ 30506 - 11905: 0xB17D,
+ 30507 - 11905: 0xB17E,
+ 30508 - 11905: 0xB180,
+ 30509 - 11905: 0xEDF5,
+ 30510 - 11905: 0xB181,
+ 30511 - 11905: 0xC3D0,
+ 30512 - 11905: 0xB182,
+ 30513 - 11905: 0xB183,
+ 30514 - 11905: 0xB184,
+ 30515 - 11905: 0xB185,
+ 30516 - 11905: 0xB186,
+ 30517 - 11905: 0xEDF7,
+ 30518 - 11905: 0xBFF4,
+ 30519 - 11905: 0xBEEC,
+ 30520 - 11905: 0xEDF8,
+ 30521 - 11905: 0xB187,
+ 30522 - 11905: 0xCCF7,
+ 30523 - 11905: 0xB188,
+ 30524 - 11905: 0xD1DB,
+ 30525 - 11905: 0xB189,
+ 30526 - 11905: 0xB18A,
+ 30527 - 11905: 0xB18B,
+ 30528 - 11905: 0xD7C5,
+ 30529 - 11905: 0xD5F6,
+ 30530 - 11905: 0xB18C,
+ 30531 - 11905: 0xEDFC,
+ 30532 - 11905: 0xB18D,
+ 30533 - 11905: 0xB18E,
+ 30534 - 11905: 0xB18F,
+ 30535 - 11905: 0xEDFB,
+ 30536 - 11905: 0xB190,
+ 30537 - 11905: 0xB191,
+ 30538 - 11905: 0xB192,
+ 30539 - 11905: 0xB193,
+ 30540 - 11905: 0xB194,
+ 30541 - 11905: 0xB195,
+ 30542 - 11905: 0xB196,
+ 30543 - 11905: 0xB197,
+ 30544 - 11905: 0xEDF9,
+ 30545 - 11905: 0xEDFA,
+ 30546 - 11905: 0xB198,
+ 30547 - 11905: 0xB199,
+ 30548 - 11905: 0xB19A,
+ 30549 - 11905: 0xB19B,
+ 30550 - 11905: 0xB19C,
+ 30551 - 11905: 0xB19D,
+ 30552 - 11905: 0xB19E,
+ 30553 - 11905: 0xB19F,
+ 30554 - 11905: 0xEDFD,
+ 30555 - 11905: 0xBEA6,
+ 30556 - 11905: 0xB1A0,
+ 30557 - 11905: 0xB240,
+ 30558 - 11905: 0xB241,
+ 30559 - 11905: 0xB242,
+ 30560 - 11905: 0xB243,
+ 30561 - 11905: 0xCBAF,
+ 30562 - 11905: 0xEEA1,
+ 30563 - 11905: 0xB6BD,
+ 30564 - 11905: 0xB244,
+ 30565 - 11905: 0xEEA2,
+ 30566 - 11905: 0xC4C0,
+ 30567 - 11905: 0xB245,
+ 30568 - 11905: 0xEDFE,
+ 30569 - 11905: 0xB246,
+ 30570 - 11905: 0xB247,
+ 30571 - 11905: 0xBDDE,
+ 30572 - 11905: 0xB2C7,
+ 30573 - 11905: 0xB248,
+ 30574 - 11905: 0xB249,
+ 30575 - 11905: 0xB24A,
+ 30576 - 11905: 0xB24B,
+ 30577 - 11905: 0xB24C,
+ 30578 - 11905: 0xB24D,
+ 30579 - 11905: 0xB24E,
+ 30580 - 11905: 0xB24F,
+ 30581 - 11905: 0xB250,
+ 30582 - 11905: 0xB251,
+ 30583 - 11905: 0xB252,
+ 30584 - 11905: 0xB253,
+ 30585 - 11905: 0xB6C3,
+ 30586 - 11905: 0xB254,
+ 30587 - 11905: 0xB255,
+ 30588 - 11905: 0xB256,
+ 30589 - 11905: 0xEEA5,
+ 30590 - 11905: 0xD8BA,
+ 30591 - 11905: 0xEEA3,
+ 30592 - 11905: 0xEEA6,
+ 30593 - 11905: 0xB257,
+ 30594 - 11905: 0xB258,
+ 30595 - 11905: 0xB259,
+ 30596 - 11905: 0xC3E9,
+ 30597 - 11905: 0xB3F2,
+ 30598 - 11905: 0xB25A,
+ 30599 - 11905: 0xB25B,
+ 30600 - 11905: 0xB25C,
+ 30601 - 11905: 0xB25D,
+ 30602 - 11905: 0xB25E,
+ 30603 - 11905: 0xB25F,
+ 30604 - 11905: 0xEEA7,
+ 30605 - 11905: 0xEEA4,
+ 30606 - 11905: 0xCFB9,
+ 30607 - 11905: 0xB260,
+ 30608 - 11905: 0xB261,
+ 30609 - 11905: 0xEEA8,
+ 30610 - 11905: 0xC2F7,
+ 30611 - 11905: 0xB262,
+ 30612 - 11905: 0xB263,
+ 30613 - 11905: 0xB264,
+ 30614 - 11905: 0xB265,
+ 30615 - 11905: 0xB266,
+ 30616 - 11905: 0xB267,
+ 30617 - 11905: 0xB268,
+ 30618 - 11905: 0xB269,
+ 30619 - 11905: 0xB26A,
+ 30620 - 11905: 0xB26B,
+ 30621 - 11905: 0xB26C,
+ 30622 - 11905: 0xB26D,
+ 30623 - 11905: 0xEEA9,
+ 30624 - 11905: 0xEEAA,
+ 30625 - 11905: 0xB26E,
+ 30626 - 11905: 0xDEAB,
+ 30627 - 11905: 0xB26F,
+ 30628 - 11905: 0xB270,
+ 30629 - 11905: 0xC6B3,
+ 30630 - 11905: 0xB271,
+ 30631 - 11905: 0xC7C6,
+ 30632 - 11905: 0xB272,
+ 30633 - 11905: 0xD6F5,
+ 30634 - 11905: 0xB5C9,
+ 30635 - 11905: 0xB273,
+ 30636 - 11905: 0xCBB2,
+ 30637 - 11905: 0xB274,
+ 30638 - 11905: 0xB275,
+ 30639 - 11905: 0xB276,
+ 30640 - 11905: 0xEEAB,
+ 30641 - 11905: 0xB277,
+ 30642 - 11905: 0xB278,
+ 30643 - 11905: 0xCDAB,
+ 30644 - 11905: 0xB279,
+ 30645 - 11905: 0xEEAC,
+ 30646 - 11905: 0xB27A,
+ 30647 - 11905: 0xB27B,
+ 30648 - 11905: 0xB27C,
+ 30649 - 11905: 0xB27D,
+ 30650 - 11905: 0xB27E,
+ 30651 - 11905: 0xD5B0,
+ 30652 - 11905: 0xB280,
+ 30653 - 11905: 0xEEAD,
+ 30654 - 11905: 0xB281,
+ 30655 - 11905: 0xF6C4,
+ 30656 - 11905: 0xB282,
+ 30657 - 11905: 0xB283,
+ 30658 - 11905: 0xB284,
+ 30659 - 11905: 0xB285,
+ 30660 - 11905: 0xB286,
+ 30661 - 11905: 0xB287,
+ 30662 - 11905: 0xB288,
+ 30663 - 11905: 0xB289,
+ 30664 - 11905: 0xB28A,
+ 30665 - 11905: 0xB28B,
+ 30666 - 11905: 0xB28C,
+ 30667 - 11905: 0xB28D,
+ 30668 - 11905: 0xB28E,
+ 30669 - 11905: 0xDBC7,
+ 30670 - 11905: 0xB28F,
+ 30671 - 11905: 0xB290,
+ 30672 - 11905: 0xB291,
+ 30673 - 11905: 0xB292,
+ 30674 - 11905: 0xB293,
+ 30675 - 11905: 0xB294,
+ 30676 - 11905: 0xB295,
+ 30677 - 11905: 0xB296,
+ 30678 - 11905: 0xB297,
+ 30679 - 11905: 0xB4A3,
+ 30680 - 11905: 0xB298,
+ 30681 - 11905: 0xB299,
+ 30682 - 11905: 0xB29A,
+ 30683 - 11905: 0xC3AC,
+ 30684 - 11905: 0xF1E6,
+ 30685 - 11905: 0xB29B,
+ 30686 - 11905: 0xB29C,
+ 30687 - 11905: 0xB29D,
+ 30688 - 11905: 0xB29E,
+ 30689 - 11905: 0xB29F,
+ 30690 - 11905: 0xCAB8,
+ 30691 - 11905: 0xD2D3,
+ 30692 - 11905: 0xB2A0,
+ 30693 - 11905: 0xD6AA,
+ 30694 - 11905: 0xB340,
+ 30695 - 11905: 0xEFF2,
+ 30696 - 11905: 0xB341,
+ 30697 - 11905: 0xBED8,
+ 30698 - 11905: 0xB342,
+ 30699 - 11905: 0xBDC3,
+ 30700 - 11905: 0xEFF3,
+ 30701 - 11905: 0xB6CC,
+ 30702 - 11905: 0xB0AB,
+ 30703 - 11905: 0xB343,
+ 30704 - 11905: 0xB344,
+ 30705 - 11905: 0xB345,
+ 30706 - 11905: 0xB346,
+ 30707 - 11905: 0xCAAF,
+ 30708 - 11905: 0xB347,
+ 30709 - 11905: 0xB348,
+ 30710 - 11905: 0xEDB6,
+ 30711 - 11905: 0xB349,
+ 30712 - 11905: 0xEDB7,
+ 30713 - 11905: 0xB34A,
+ 30714 - 11905: 0xB34B,
+ 30715 - 11905: 0xB34C,
+ 30716 - 11905: 0xB34D,
+ 30717 - 11905: 0xCEF9,
+ 30718 - 11905: 0xB7AF,
+ 30719 - 11905: 0xBFF3,
+ 30720 - 11905: 0xEDB8,
+ 30721 - 11905: 0xC2EB,
+ 30722 - 11905: 0xC9B0,
+ 30723 - 11905: 0xB34E,
+ 30724 - 11905: 0xB34F,
+ 30725 - 11905: 0xB350,
+ 30726 - 11905: 0xB351,
+ 30727 - 11905: 0xB352,
+ 30728 - 11905: 0xB353,
+ 30729 - 11905: 0xEDB9,
+ 30730 - 11905: 0xB354,
+ 30731 - 11905: 0xB355,
+ 30732 - 11905: 0xC6F6,
+ 30733 - 11905: 0xBFB3,
+ 30734 - 11905: 0xB356,
+ 30735 - 11905: 0xB357,
+ 30736 - 11905: 0xB358,
+ 30737 - 11905: 0xEDBC,
+ 30738 - 11905: 0xC5F8,
+ 30739 - 11905: 0xB359,
+ 30740 - 11905: 0xD1D0,
+ 30741 - 11905: 0xB35A,
+ 30742 - 11905: 0xD7A9,
+ 30743 - 11905: 0xEDBA,
+ 30744 - 11905: 0xEDBB,
+ 30745 - 11905: 0xB35B,
+ 30746 - 11905: 0xD1E2,
+ 30747 - 11905: 0xB35C,
+ 30748 - 11905: 0xEDBF,
+ 30749 - 11905: 0xEDC0,
+ 30750 - 11905: 0xB35D,
+ 30751 - 11905: 0xEDC4,
+ 30752 - 11905: 0xB35E,
+ 30753 - 11905: 0xB35F,
+ 30754 - 11905: 0xB360,
+ 30755 - 11905: 0xEDC8,
+ 30756 - 11905: 0xB361,
+ 30757 - 11905: 0xEDC6,
+ 30758 - 11905: 0xEDCE,
+ 30759 - 11905: 0xD5E8,
+ 30760 - 11905: 0xB362,
+ 30761 - 11905: 0xEDC9,
+ 30762 - 11905: 0xB363,
+ 30763 - 11905: 0xB364,
+ 30764 - 11905: 0xEDC7,
+ 30765 - 11905: 0xEDBE,
+ 30766 - 11905: 0xB365,
+ 30767 - 11905: 0xB366,
+ 30768 - 11905: 0xC5E9,
+ 30769 - 11905: 0xB367,
+ 30770 - 11905: 0xB368,
+ 30771 - 11905: 0xB369,
+ 30772 - 11905: 0xC6C6,
+ 30773 - 11905: 0xB36A,
+ 30774 - 11905: 0xB36B,
+ 30775 - 11905: 0xC9E9,
+ 30776 - 11905: 0xD4D2,
+ 30777 - 11905: 0xEDC1,
+ 30778 - 11905: 0xEDC2,
+ 30779 - 11905: 0xEDC3,
+ 30780 - 11905: 0xEDC5,
+ 30781 - 11905: 0xB36C,
+ 30782 - 11905: 0xC0F9,
+ 30783 - 11905: 0xB36D,
+ 30784 - 11905: 0xB4A1,
+ 30785 - 11905: 0xB36E,
+ 30786 - 11905: 0xB36F,
+ 30787 - 11905: 0xB370,
+ 30788 - 11905: 0xB371,
+ 30789 - 11905: 0xB9E8,
+ 30790 - 11905: 0xB372,
+ 30791 - 11905: 0xEDD0,
+ 30792 - 11905: 0xB373,
+ 30793 - 11905: 0xB374,
+ 30794 - 11905: 0xB375,
+ 30795 - 11905: 0xB376,
+ 30796 - 11905: 0xEDD1,
+ 30797 - 11905: 0xB377,
+ 30798 - 11905: 0xEDCA,
+ 30799 - 11905: 0xB378,
+ 30800 - 11905: 0xEDCF,
+ 30801 - 11905: 0xB379,
+ 30802 - 11905: 0xCEF8,
+ 30803 - 11905: 0xB37A,
+ 30804 - 11905: 0xB37B,
+ 30805 - 11905: 0xCBB6,
+ 30806 - 11905: 0xEDCC,
+ 30807 - 11905: 0xEDCD,
+ 30808 - 11905: 0xB37C,
+ 30809 - 11905: 0xB37D,
+ 30810 - 11905: 0xB37E,
+ 30811 - 11905: 0xB380,
+ 30812 - 11905: 0xB381,
+ 30813 - 11905: 0xCFF5,
+ 30814 - 11905: 0xB382,
+ 30815 - 11905: 0xB383,
+ 30816 - 11905: 0xB384,
+ 30817 - 11905: 0xB385,
+ 30818 - 11905: 0xB386,
+ 30819 - 11905: 0xB387,
+ 30820 - 11905: 0xB388,
+ 30821 - 11905: 0xB389,
+ 30822 - 11905: 0xB38A,
+ 30823 - 11905: 0xB38B,
+ 30824 - 11905: 0xB38C,
+ 30825 - 11905: 0xB38D,
+ 30826 - 11905: 0xEDD2,
+ 30827 - 11905: 0xC1F2,
+ 30828 - 11905: 0xD3B2,
+ 30829 - 11905: 0xEDCB,
+ 30830 - 11905: 0xC8B7,
+ 30831 - 11905: 0xB38E,
+ 30832 - 11905: 0xB38F,
+ 30833 - 11905: 0xB390,
+ 30834 - 11905: 0xB391,
+ 30835 - 11905: 0xB392,
+ 30836 - 11905: 0xB393,
+ 30837 - 11905: 0xB394,
+ 30838 - 11905: 0xB395,
+ 30839 - 11905: 0xBCEF,
+ 30840 - 11905: 0xB396,
+ 30841 - 11905: 0xB397,
+ 30842 - 11905: 0xB398,
+ 30843 - 11905: 0xB399,
+ 30844 - 11905: 0xC5F0,
+ 30845 - 11905: 0xB39A,
+ 30846 - 11905: 0xB39B,
+ 30847 - 11905: 0xB39C,
+ 30848 - 11905: 0xB39D,
+ 30849 - 11905: 0xB39E,
+ 30850 - 11905: 0xB39F,
+ 30851 - 11905: 0xB3A0,
+ 30852 - 11905: 0xB440,
+ 30853 - 11905: 0xB441,
+ 30854 - 11905: 0xB442,
+ 30855 - 11905: 0xEDD6,
+ 30856 - 11905: 0xB443,
+ 30857 - 11905: 0xB5EF,
+ 30858 - 11905: 0xB444,
+ 30859 - 11905: 0xB445,
+ 30860 - 11905: 0xC2B5,
+ 30861 - 11905: 0xB0AD,
+ 30862 - 11905: 0xCBE9,
+ 30863 - 11905: 0xB446,
+ 30864 - 11905: 0xB447,
+ 30865 - 11905: 0xB1AE,
+ 30866 - 11905: 0xB448,
+ 30867 - 11905: 0xEDD4,
+ 30868 - 11905: 0xB449,
+ 30869 - 11905: 0xB44A,
+ 30870 - 11905: 0xB44B,
+ 30871 - 11905: 0xCDEB,
+ 30872 - 11905: 0xB5E2,
+ 30873 - 11905: 0xB44C,
+ 30874 - 11905: 0xEDD5,
+ 30875 - 11905: 0xEDD3,
+ 30876 - 11905: 0xEDD7,
+ 30877 - 11905: 0xB44D,
+ 30878 - 11905: 0xB44E,
+ 30879 - 11905: 0xB5FA,
+ 30880 - 11905: 0xB44F,
+ 30881 - 11905: 0xEDD8,
+ 30882 - 11905: 0xB450,
+ 30883 - 11905: 0xEDD9,
+ 30884 - 11905: 0xB451,
+ 30885 - 11905: 0xEDDC,
+ 30886 - 11905: 0xB452,
+ 30887 - 11905: 0xB1CC,
+ 30888 - 11905: 0xB453,
+ 30889 - 11905: 0xB454,
+ 30890 - 11905: 0xB455,
+ 30891 - 11905: 0xB456,
+ 30892 - 11905: 0xB457,
+ 30893 - 11905: 0xB458,
+ 30894 - 11905: 0xB459,
+ 30895 - 11905: 0xB45A,
+ 30896 - 11905: 0xC5F6,
+ 30897 - 11905: 0xBCEE,
+ 30898 - 11905: 0xEDDA,
+ 30899 - 11905: 0xCCBC,
+ 30900 - 11905: 0xB2EA,
+ 30901 - 11905: 0xB45B,
+ 30902 - 11905: 0xB45C,
+ 30903 - 11905: 0xB45D,
+ 30904 - 11905: 0xB45E,
+ 30905 - 11905: 0xEDDB,
+ 30906 - 11905: 0xB45F,
+ 30907 - 11905: 0xB460,
+ 30908 - 11905: 0xB461,
+ 30909 - 11905: 0xB462,
+ 30910 - 11905: 0xC4EB,
+ 30911 - 11905: 0xB463,
+ 30912 - 11905: 0xB464,
+ 30913 - 11905: 0xB4C5,
+ 30914 - 11905: 0xB465,
+ 30915 - 11905: 0xB466,
+ 30916 - 11905: 0xB467,
+ 30917 - 11905: 0xB0F5,
+ 30918 - 11905: 0xB468,
+ 30919 - 11905: 0xB469,
+ 30920 - 11905: 0xB46A,
+ 30921 - 11905: 0xEDDF,
+ 30922 - 11905: 0xC0DA,
+ 30923 - 11905: 0xB4E8,
+ 30924 - 11905: 0xB46B,
+ 30925 - 11905: 0xB46C,
+ 30926 - 11905: 0xB46D,
+ 30927 - 11905: 0xB46E,
+ 30928 - 11905: 0xC5CD,
+ 30929 - 11905: 0xB46F,
+ 30930 - 11905: 0xB470,
+ 30931 - 11905: 0xB471,
+ 30932 - 11905: 0xEDDD,
+ 30933 - 11905: 0xBFC4,
+ 30934 - 11905: 0xB472,
+ 30935 - 11905: 0xB473,
+ 30936 - 11905: 0xB474,
+ 30937 - 11905: 0xEDDE,
+ 30938 - 11905: 0xB475,
+ 30939 - 11905: 0xB476,
+ 30940 - 11905: 0xB477,
+ 30941 - 11905: 0xB478,
+ 30942 - 11905: 0xB479,
+ 30943 - 11905: 0xB47A,
+ 30944 - 11905: 0xB47B,
+ 30945 - 11905: 0xB47C,
+ 30946 - 11905: 0xB47D,
+ 30947 - 11905: 0xB47E,
+ 30948 - 11905: 0xB480,
+ 30949 - 11905: 0xB481,
+ 30950 - 11905: 0xB482,
+ 30951 - 11905: 0xB483,
+ 30952 - 11905: 0xC4A5,
+ 30953 - 11905: 0xB484,
+ 30954 - 11905: 0xB485,
+ 30955 - 11905: 0xB486,
+ 30956 - 11905: 0xEDE0,
+ 30957 - 11905: 0xB487,
+ 30958 - 11905: 0xB488,
+ 30959 - 11905: 0xB489,
+ 30960 - 11905: 0xB48A,
+ 30961 - 11905: 0xB48B,
+ 30962 - 11905: 0xEDE1,
+ 30963 - 11905: 0xB48C,
+ 30964 - 11905: 0xEDE3,
+ 30965 - 11905: 0xB48D,
+ 30966 - 11905: 0xB48E,
+ 30967 - 11905: 0xC1D7,
+ 30968 - 11905: 0xB48F,
+ 30969 - 11905: 0xB490,
+ 30970 - 11905: 0xBBC7,
+ 30971 - 11905: 0xB491,
+ 30972 - 11905: 0xB492,
+ 30973 - 11905: 0xB493,
+ 30974 - 11905: 0xB494,
+ 30975 - 11905: 0xB495,
+ 30976 - 11905: 0xB496,
+ 30977 - 11905: 0xBDB8,
+ 30978 - 11905: 0xB497,
+ 30979 - 11905: 0xB498,
+ 30980 - 11905: 0xB499,
+ 30981 - 11905: 0xEDE2,
+ 30982 - 11905: 0xB49A,
+ 30983 - 11905: 0xB49B,
+ 30984 - 11905: 0xB49C,
+ 30985 - 11905: 0xB49D,
+ 30986 - 11905: 0xB49E,
+ 30987 - 11905: 0xB49F,
+ 30988 - 11905: 0xB4A0,
+ 30989 - 11905: 0xB540,
+ 30990 - 11905: 0xB541,
+ 30991 - 11905: 0xB542,
+ 30992 - 11905: 0xB543,
+ 30993 - 11905: 0xB544,
+ 30994 - 11905: 0xB545,
+ 30995 - 11905: 0xEDE4,
+ 30996 - 11905: 0xB546,
+ 30997 - 11905: 0xB547,
+ 30998 - 11905: 0xB548,
+ 30999 - 11905: 0xB549,
+ 31000 - 11905: 0xB54A,
+ 31001 - 11905: 0xB54B,
+ 31002 - 11905: 0xB54C,
+ 31003 - 11905: 0xB54D,
+ 31004 - 11905: 0xB54E,
+ 31005 - 11905: 0xB54F,
+ 31006 - 11905: 0xEDE6,
+ 31007 - 11905: 0xB550,
+ 31008 - 11905: 0xB551,
+ 31009 - 11905: 0xB552,
+ 31010 - 11905: 0xB553,
+ 31011 - 11905: 0xB554,
+ 31012 - 11905: 0xEDE5,
+ 31013 - 11905: 0xB555,
+ 31014 - 11905: 0xB556,
+ 31015 - 11905: 0xB557,
+ 31016 - 11905: 0xB558,
+ 31017 - 11905: 0xB559,
+ 31018 - 11905: 0xB55A,
+ 31019 - 11905: 0xB55B,
+ 31020 - 11905: 0xB55C,
+ 31021 - 11905: 0xB55D,
+ 31022 - 11905: 0xB55E,
+ 31023 - 11905: 0xB55F,
+ 31024 - 11905: 0xB560,
+ 31025 - 11905: 0xB561,
+ 31026 - 11905: 0xB562,
+ 31027 - 11905: 0xB563,
+ 31028 - 11905: 0xEDE7,
+ 31029 - 11905: 0xB564,
+ 31030 - 11905: 0xB565,
+ 31031 - 11905: 0xB566,
+ 31032 - 11905: 0xB567,
+ 31033 - 11905: 0xB568,
+ 31034 - 11905: 0xCABE,
+ 31035 - 11905: 0xECEA,
+ 31036 - 11905: 0xC0F1,
+ 31037 - 11905: 0xB569,
+ 31038 - 11905: 0xC9E7,
+ 31039 - 11905: 0xB56A,
+ 31040 - 11905: 0xECEB,
+ 31041 - 11905: 0xC6EE,
+ 31042 - 11905: 0xB56B,
+ 31043 - 11905: 0xB56C,
+ 31044 - 11905: 0xB56D,
+ 31045 - 11905: 0xB56E,
+ 31046 - 11905: 0xECEC,
+ 31047 - 11905: 0xB56F,
+ 31048 - 11905: 0xC6ED,
+ 31049 - 11905: 0xECED,
+ 31050 - 11905: 0xB570,
+ 31051 - 11905: 0xB571,
+ 31052 - 11905: 0xB572,
+ 31053 - 11905: 0xB573,
+ 31054 - 11905: 0xB574,
+ 31055 - 11905: 0xB575,
+ 31056 - 11905: 0xB576,
+ 31057 - 11905: 0xB577,
+ 31058 - 11905: 0xB578,
+ 31059 - 11905: 0xECF0,
+ 31060 - 11905: 0xB579,
+ 31061 - 11905: 0xB57A,
+ 31062 - 11905: 0xD7E6,
+ 31063 - 11905: 0xECF3,
+ 31064 - 11905: 0xB57B,
+ 31065 - 11905: 0xB57C,
+ 31066 - 11905: 0xECF1,
+ 31067 - 11905: 0xECEE,
+ 31068 - 11905: 0xECEF,
+ 31069 - 11905: 0xD7A3,
+ 31070 - 11905: 0xC9F1,
+ 31071 - 11905: 0xCBEE,
+ 31072 - 11905: 0xECF4,
+ 31073 - 11905: 0xB57D,
+ 31074 - 11905: 0xECF2,
+ 31075 - 11905: 0xB57E,
+ 31076 - 11905: 0xB580,
+ 31077 - 11905: 0xCFE9,
+ 31078 - 11905: 0xB581,
+ 31079 - 11905: 0xECF6,
+ 31080 - 11905: 0xC6B1,
+ 31081 - 11905: 0xB582,
+ 31082 - 11905: 0xB583,
+ 31083 - 11905: 0xB584,
+ 31084 - 11905: 0xB585,
+ 31085 - 11905: 0xBCC0,
+ 31086 - 11905: 0xB586,
+ 31087 - 11905: 0xECF5,
+ 31088 - 11905: 0xB587,
+ 31089 - 11905: 0xB588,
+ 31090 - 11905: 0xB589,
+ 31091 - 11905: 0xB58A,
+ 31092 - 11905: 0xB58B,
+ 31093 - 11905: 0xB58C,
+ 31094 - 11905: 0xB58D,
+ 31095 - 11905: 0xB5BB,
+ 31096 - 11905: 0xBBF6,
+ 31097 - 11905: 0xB58E,
+ 31098 - 11905: 0xECF7,
+ 31099 - 11905: 0xB58F,
+ 31100 - 11905: 0xB590,
+ 31101 - 11905: 0xB591,
+ 31102 - 11905: 0xB592,
+ 31103 - 11905: 0xB593,
+ 31104 - 11905: 0xD9F7,
+ 31105 - 11905: 0xBDFB,
+ 31106 - 11905: 0xB594,
+ 31107 - 11905: 0xB595,
+ 31108 - 11905: 0xC2BB,
+ 31109 - 11905: 0xECF8,
+ 31110 - 11905: 0xB596,
+ 31111 - 11905: 0xB597,
+ 31112 - 11905: 0xB598,
+ 31113 - 11905: 0xB599,
+ 31114 - 11905: 0xECF9,
+ 31115 - 11905: 0xB59A,
+ 31116 - 11905: 0xB59B,
+ 31117 - 11905: 0xB59C,
+ 31118 - 11905: 0xB59D,
+ 31119 - 11905: 0xB8A3,
+ 31120 - 11905: 0xB59E,
+ 31121 - 11905: 0xB59F,
+ 31122 - 11905: 0xB5A0,
+ 31123 - 11905: 0xB640,
+ 31124 - 11905: 0xB641,
+ 31125 - 11905: 0xB642,
+ 31126 - 11905: 0xB643,
+ 31127 - 11905: 0xB644,
+ 31128 - 11905: 0xB645,
+ 31129 - 11905: 0xB646,
+ 31130 - 11905: 0xECFA,
+ 31131 - 11905: 0xB647,
+ 31132 - 11905: 0xB648,
+ 31133 - 11905: 0xB649,
+ 31134 - 11905: 0xB64A,
+ 31135 - 11905: 0xB64B,
+ 31136 - 11905: 0xB64C,
+ 31137 - 11905: 0xB64D,
+ 31138 - 11905: 0xB64E,
+ 31139 - 11905: 0xB64F,
+ 31140 - 11905: 0xB650,
+ 31141 - 11905: 0xB651,
+ 31142 - 11905: 0xB652,
+ 31143 - 11905: 0xECFB,
+ 31144 - 11905: 0xB653,
+ 31145 - 11905: 0xB654,
+ 31146 - 11905: 0xB655,
+ 31147 - 11905: 0xB656,
+ 31148 - 11905: 0xB657,
+ 31149 - 11905: 0xB658,
+ 31150 - 11905: 0xB659,
+ 31151 - 11905: 0xB65A,
+ 31152 - 11905: 0xB65B,
+ 31153 - 11905: 0xB65C,
+ 31154 - 11905: 0xB65D,
+ 31155 - 11905: 0xECFC,
+ 31156 - 11905: 0xB65E,
+ 31157 - 11905: 0xB65F,
+ 31158 - 11905: 0xB660,
+ 31159 - 11905: 0xB661,
+ 31160 - 11905: 0xB662,
+ 31161 - 11905: 0xD3ED,
+ 31162 - 11905: 0xD8AE,
+ 31163 - 11905: 0xC0EB,
+ 31164 - 11905: 0xB663,
+ 31165 - 11905: 0xC7DD,
+ 31166 - 11905: 0xBACC,
+ 31167 - 11905: 0xB664,
+ 31168 - 11905: 0xD0E3,
+ 31169 - 11905: 0xCBBD,
+ 31170 - 11905: 0xB665,
+ 31171 - 11905: 0xCDBA,
+ 31172 - 11905: 0xB666,
+ 31173 - 11905: 0xB667,
+ 31174 - 11905: 0xB8D1,
+ 31175 - 11905: 0xB668,
+ 31176 - 11905: 0xB669,
+ 31177 - 11905: 0xB1FC,
+ 31178 - 11905: 0xB66A,
+ 31179 - 11905: 0xC7EF,
+ 31180 - 11905: 0xB66B,
+ 31181 - 11905: 0xD6D6,
+ 31182 - 11905: 0xB66C,
+ 31183 - 11905: 0xB66D,
+ 31184 - 11905: 0xB66E,
+ 31185 - 11905: 0xBFC6,
+ 31186 - 11905: 0xC3EB,
+ 31187 - 11905: 0xB66F,
+ 31188 - 11905: 0xB670,
+ 31189 - 11905: 0xEFF5,
+ 31190 - 11905: 0xB671,
+ 31191 - 11905: 0xB672,
+ 31192 - 11905: 0xC3D8,
+ 31193 - 11905: 0xB673,
+ 31194 - 11905: 0xB674,
+ 31195 - 11905: 0xB675,
+ 31196 - 11905: 0xB676,
+ 31197 - 11905: 0xB677,
+ 31198 - 11905: 0xB678,
+ 31199 - 11905: 0xD7E2,
+ 31200 - 11905: 0xB679,
+ 31201 - 11905: 0xB67A,
+ 31202 - 11905: 0xB67B,
+ 31203 - 11905: 0xEFF7,
+ 31204 - 11905: 0xB3D3,
+ 31205 - 11905: 0xB67C,
+ 31206 - 11905: 0xC7D8,
+ 31207 - 11905: 0xD1ED,
+ 31208 - 11905: 0xB67D,
+ 31209 - 11905: 0xD6C8,
+ 31210 - 11905: 0xB67E,
+ 31211 - 11905: 0xEFF8,
+ 31212 - 11905: 0xB680,
+ 31213 - 11905: 0xEFF6,
+ 31214 - 11905: 0xB681,
+ 31215 - 11905: 0xBBFD,
+ 31216 - 11905: 0xB3C6,
+ 31217 - 11905: 0xB682,
+ 31218 - 11905: 0xB683,
+ 31219 - 11905: 0xB684,
+ 31220 - 11905: 0xB685,
+ 31221 - 11905: 0xB686,
+ 31222 - 11905: 0xB687,
+ 31223 - 11905: 0xB688,
+ 31224 - 11905: 0xBDD5,
+ 31225 - 11905: 0xB689,
+ 31226 - 11905: 0xB68A,
+ 31227 - 11905: 0xD2C6,
+ 31228 - 11905: 0xB68B,
+ 31229 - 11905: 0xBBE0,
+ 31230 - 11905: 0xB68C,
+ 31231 - 11905: 0xB68D,
+ 31232 - 11905: 0xCFA1,
+ 31233 - 11905: 0xB68E,
+ 31234 - 11905: 0xEFFC,
+ 31235 - 11905: 0xEFFB,
+ 31236 - 11905: 0xB68F,
+ 31237 - 11905: 0xB690,
+ 31238 - 11905: 0xEFF9,
+ 31239 - 11905: 0xB691,
+ 31240 - 11905: 0xB692,
+ 31241 - 11905: 0xB693,
+ 31242 - 11905: 0xB694,
+ 31243 - 11905: 0xB3CC,
+ 31244 - 11905: 0xB695,
+ 31245 - 11905: 0xC9D4,
+ 31246 - 11905: 0xCBB0,
+ 31247 - 11905: 0xB696,
+ 31248 - 11905: 0xB697,
+ 31249 - 11905: 0xB698,
+ 31250 - 11905: 0xB699,
+ 31251 - 11905: 0xB69A,
+ 31252 - 11905: 0xEFFE,
+ 31253 - 11905: 0xB69B,
+ 31254 - 11905: 0xB69C,
+ 31255 - 11905: 0xB0DE,
+ 31256 - 11905: 0xB69D,
+ 31257 - 11905: 0xB69E,
+ 31258 - 11905: 0xD6C9,
+ 31259 - 11905: 0xB69F,
+ 31260 - 11905: 0xB6A0,
+ 31261 - 11905: 0xB740,
+ 31262 - 11905: 0xEFFD,
+ 31263 - 11905: 0xB741,
+ 31264 - 11905: 0xB3ED,
+ 31265 - 11905: 0xB742,
+ 31266 - 11905: 0xB743,
+ 31267 - 11905: 0xF6D5,
+ 31268 - 11905: 0xB744,
+ 31269 - 11905: 0xB745,
+ 31270 - 11905: 0xB746,
+ 31271 - 11905: 0xB747,
+ 31272 - 11905: 0xB748,
+ 31273 - 11905: 0xB749,
+ 31274 - 11905: 0xB74A,
+ 31275 - 11905: 0xB74B,
+ 31276 - 11905: 0xB74C,
+ 31277 - 11905: 0xB74D,
+ 31278 - 11905: 0xB74E,
+ 31279 - 11905: 0xB74F,
+ 31280 - 11905: 0xB750,
+ 31281 - 11905: 0xB751,
+ 31282 - 11905: 0xB752,
+ 31283 - 11905: 0xCEC8,
+ 31284 - 11905: 0xB753,
+ 31285 - 11905: 0xB754,
+ 31286 - 11905: 0xB755,
+ 31287 - 11905: 0xF0A2,
+ 31288 - 11905: 0xB756,
+ 31289 - 11905: 0xF0A1,
+ 31290 - 11905: 0xB757,
+ 31291 - 11905: 0xB5BE,
+ 31292 - 11905: 0xBCDA,
+ 31293 - 11905: 0xBBFC,
+ 31294 - 11905: 0xB758,
+ 31295 - 11905: 0xB8E5,
+ 31296 - 11905: 0xB759,
+ 31297 - 11905: 0xB75A,
+ 31298 - 11905: 0xB75B,
+ 31299 - 11905: 0xB75C,
+ 31300 - 11905: 0xB75D,
+ 31301 - 11905: 0xB75E,
+ 31302 - 11905: 0xC4C2,
+ 31303 - 11905: 0xB75F,
+ 31304 - 11905: 0xB760,
+ 31305 - 11905: 0xB761,
+ 31306 - 11905: 0xB762,
+ 31307 - 11905: 0xB763,
+ 31308 - 11905: 0xB764,
+ 31309 - 11905: 0xB765,
+ 31310 - 11905: 0xB766,
+ 31311 - 11905: 0xB767,
+ 31312 - 11905: 0xB768,
+ 31313 - 11905: 0xF0A3,
+ 31314 - 11905: 0xB769,
+ 31315 - 11905: 0xB76A,
+ 31316 - 11905: 0xB76B,
+ 31317 - 11905: 0xB76C,
+ 31318 - 11905: 0xB76D,
+ 31319 - 11905: 0xCBEB,
+ 31320 - 11905: 0xB76E,
+ 31321 - 11905: 0xB76F,
+ 31322 - 11905: 0xB770,
+ 31323 - 11905: 0xB771,
+ 31324 - 11905: 0xB772,
+ 31325 - 11905: 0xB773,
+ 31326 - 11905: 0xB774,
+ 31327 - 11905: 0xB775,
+ 31328 - 11905: 0xB776,
+ 31329 - 11905: 0xB777,
+ 31330 - 11905: 0xB778,
+ 31331 - 11905: 0xB779,
+ 31332 - 11905: 0xB77A,
+ 31333 - 11905: 0xB77B,
+ 31334 - 11905: 0xB77C,
+ 31335 - 11905: 0xB77D,
+ 31336 - 11905: 0xB77E,
+ 31337 - 11905: 0xB780,
+ 31338 - 11905: 0xB781,
+ 31339 - 11905: 0xB782,
+ 31340 - 11905: 0xB783,
+ 31341 - 11905: 0xB784,
+ 31342 - 11905: 0xB785,
+ 31343 - 11905: 0xB786,
+ 31344 - 11905: 0xF0A6,
+ 31345 - 11905: 0xB787,
+ 31346 - 11905: 0xB788,
+ 31347 - 11905: 0xB789,
+ 31348 - 11905: 0xD1A8,
+ 31349 - 11905: 0xB78A,
+ 31350 - 11905: 0xBEBF,
+ 31351 - 11905: 0xC7EE,
+ 31352 - 11905: 0xF1B6,
+ 31353 - 11905: 0xF1B7,
+ 31354 - 11905: 0xBFD5,
+ 31355 - 11905: 0xB78B,
+ 31356 - 11905: 0xB78C,
+ 31357 - 11905: 0xB78D,
+ 31358 - 11905: 0xB78E,
+ 31359 - 11905: 0xB4A9,
+ 31360 - 11905: 0xF1B8,
+ 31361 - 11905: 0xCDBB,
+ 31362 - 11905: 0xB78F,
+ 31363 - 11905: 0xC7D4,
+ 31364 - 11905: 0xD5AD,
+ 31365 - 11905: 0xB790,
+ 31366 - 11905: 0xF1B9,
+ 31367 - 11905: 0xB791,
+ 31368 - 11905: 0xF1BA,
+ 31369 - 11905: 0xB792,
+ 31370 - 11905: 0xB793,
+ 31371 - 11905: 0xB794,
+ 31372 - 11905: 0xB795,
+ 31373 - 11905: 0xC7CF,
+ 31374 - 11905: 0xB796,
+ 31375 - 11905: 0xB797,
+ 31376 - 11905: 0xB798,
+ 31377 - 11905: 0xD2A4,
+ 31378 - 11905: 0xD6CF,
+ 31379 - 11905: 0xB799,
+ 31380 - 11905: 0xB79A,
+ 31381 - 11905: 0xF1BB,
+ 31382 - 11905: 0xBDD1,
+ 31383 - 11905: 0xB4B0,
+ 31384 - 11905: 0xBEBD,
+ 31385 - 11905: 0xB79B,
+ 31386 - 11905: 0xB79C,
+ 31387 - 11905: 0xB79D,
+ 31388 - 11905: 0xB4DC,
+ 31389 - 11905: 0xCED1,
+ 31390 - 11905: 0xB79E,
+ 31391 - 11905: 0xBFDF,
+ 31392 - 11905: 0xF1BD,
+ 31393 - 11905: 0xB79F,
+ 31394 - 11905: 0xB7A0,
+ 31395 - 11905: 0xB840,
+ 31396 - 11905: 0xB841,
+ 31397 - 11905: 0xBFFA,
+ 31398 - 11905: 0xF1BC,
+ 31399 - 11905: 0xB842,
+ 31400 - 11905: 0xF1BF,
+ 31401 - 11905: 0xB843,
+ 31402 - 11905: 0xB844,
+ 31403 - 11905: 0xB845,
+ 31404 - 11905: 0xF1BE,
+ 31405 - 11905: 0xF1C0,
+ 31406 - 11905: 0xB846,
+ 31407 - 11905: 0xB847,
+ 31408 - 11905: 0xB848,
+ 31409 - 11905: 0xB849,
+ 31410 - 11905: 0xB84A,
+ 31411 - 11905: 0xF1C1,
+ 31412 - 11905: 0xB84B,
+ 31413 - 11905: 0xB84C,
+ 31414 - 11905: 0xB84D,
+ 31415 - 11905: 0xB84E,
+ 31416 - 11905: 0xB84F,
+ 31417 - 11905: 0xB850,
+ 31418 - 11905: 0xB851,
+ 31419 - 11905: 0xB852,
+ 31420 - 11905: 0xB853,
+ 31421 - 11905: 0xB854,
+ 31422 - 11905: 0xB855,
+ 31423 - 11905: 0xC1FE,
+ 31424 - 11905: 0xB856,
+ 31425 - 11905: 0xB857,
+ 31426 - 11905: 0xB858,
+ 31427 - 11905: 0xB859,
+ 31428 - 11905: 0xB85A,
+ 31429 - 11905: 0xB85B,
+ 31430 - 11905: 0xB85C,
+ 31431 - 11905: 0xB85D,
+ 31432 - 11905: 0xB85E,
+ 31433 - 11905: 0xB85F,
+ 31434 - 11905: 0xB860,
+ 31435 - 11905: 0xC1A2,
+ 31436 - 11905: 0xB861,
+ 31437 - 11905: 0xB862,
+ 31438 - 11905: 0xB863,
+ 31439 - 11905: 0xB864,
+ 31440 - 11905: 0xB865,
+ 31441 - 11905: 0xB866,
+ 31442 - 11905: 0xB867,
+ 31443 - 11905: 0xB868,
+ 31444 - 11905: 0xB869,
+ 31445 - 11905: 0xB86A,
+ 31446 - 11905: 0xCAFA,
+ 31447 - 11905: 0xB86B,
+ 31448 - 11905: 0xB86C,
+ 31449 - 11905: 0xD5BE,
+ 31450 - 11905: 0xB86D,
+ 31451 - 11905: 0xB86E,
+ 31452 - 11905: 0xB86F,
+ 31453 - 11905: 0xB870,
+ 31454 - 11905: 0xBEBA,
+ 31455 - 11905: 0xBEB9,
+ 31456 - 11905: 0xD5C2,
+ 31457 - 11905: 0xB871,
+ 31458 - 11905: 0xB872,
+ 31459 - 11905: 0xBFA2,
+ 31460 - 11905: 0xB873,
+ 31461 - 11905: 0xCDAF,
+ 31462 - 11905: 0xF1B5,
+ 31463 - 11905: 0xB874,
+ 31464 - 11905: 0xB875,
+ 31465 - 11905: 0xB876,
+ 31466 - 11905: 0xB877,
+ 31467 - 11905: 0xB878,
+ 31468 - 11905: 0xB879,
+ 31469 - 11905: 0xBDDF,
+ 31470 - 11905: 0xB87A,
+ 31471 - 11905: 0xB6CB,
+ 31472 - 11905: 0xB87B,
+ 31473 - 11905: 0xB87C,
+ 31474 - 11905: 0xB87D,
+ 31475 - 11905: 0xB87E,
+ 31476 - 11905: 0xB880,
+ 31477 - 11905: 0xB881,
+ 31478 - 11905: 0xB882,
+ 31479 - 11905: 0xB883,
+ 31480 - 11905: 0xB884,
+ 31481 - 11905: 0xD6F1,
+ 31482 - 11905: 0xF3C3,
+ 31483 - 11905: 0xB885,
+ 31484 - 11905: 0xB886,
+ 31485 - 11905: 0xF3C4,
+ 31486 - 11905: 0xB887,
+ 31487 - 11905: 0xB8CD,
+ 31488 - 11905: 0xB888,
+ 31489 - 11905: 0xB889,
+ 31490 - 11905: 0xB88A,
+ 31491 - 11905: 0xF3C6,
+ 31492 - 11905: 0xF3C7,
+ 31493 - 11905: 0xB88B,
+ 31494 - 11905: 0xB0CA,
+ 31495 - 11905: 0xB88C,
+ 31496 - 11905: 0xF3C5,
+ 31497 - 11905: 0xB88D,
+ 31498 - 11905: 0xF3C9,
+ 31499 - 11905: 0xCBF1,
+ 31500 - 11905: 0xB88E,
+ 31501 - 11905: 0xB88F,
+ 31502 - 11905: 0xB890,
+ 31503 - 11905: 0xF3CB,
+ 31504 - 11905: 0xB891,
+ 31505 - 11905: 0xD0A6,
+ 31506 - 11905: 0xB892,
+ 31507 - 11905: 0xB893,
+ 31508 - 11905: 0xB1CA,
+ 31509 - 11905: 0xF3C8,
+ 31510 - 11905: 0xB894,
+ 31511 - 11905: 0xB895,
+ 31512 - 11905: 0xB896,
+ 31513 - 11905: 0xF3CF,
+ 31514 - 11905: 0xB897,
+ 31515 - 11905: 0xB5D1,
+ 31516 - 11905: 0xB898,
+ 31517 - 11905: 0xB899,
+ 31518 - 11905: 0xF3D7,
+ 31519 - 11905: 0xB89A,
+ 31520 - 11905: 0xF3D2,
+ 31521 - 11905: 0xB89B,
+ 31522 - 11905: 0xB89C,
+ 31523 - 11905: 0xB89D,
+ 31524 - 11905: 0xF3D4,
+ 31525 - 11905: 0xF3D3,
+ 31526 - 11905: 0xB7FB,
+ 31527 - 11905: 0xB89E,
+ 31528 - 11905: 0xB1BF,
+ 31529 - 11905: 0xB89F,
+ 31530 - 11905: 0xF3CE,
+ 31531 - 11905: 0xF3CA,
+ 31532 - 11905: 0xB5DA,
+ 31533 - 11905: 0xB8A0,
+ 31534 - 11905: 0xF3D0,
+ 31535 - 11905: 0xB940,
+ 31536 - 11905: 0xB941,
+ 31537 - 11905: 0xF3D1,
+ 31538 - 11905: 0xB942,
+ 31539 - 11905: 0xF3D5,
+ 31540 - 11905: 0xB943,
+ 31541 - 11905: 0xB944,
+ 31542 - 11905: 0xB945,
+ 31543 - 11905: 0xB946,
+ 31544 - 11905: 0xF3CD,
+ 31545 - 11905: 0xB947,
+ 31546 - 11905: 0xBCE3,
+ 31547 - 11905: 0xB948,
+ 31548 - 11905: 0xC1FD,
+ 31549 - 11905: 0xB949,
+ 31550 - 11905: 0xF3D6,
+ 31551 - 11905: 0xB94A,
+ 31552 - 11905: 0xB94B,
+ 31553 - 11905: 0xB94C,
+ 31554 - 11905: 0xB94D,
+ 31555 - 11905: 0xB94E,
+ 31556 - 11905: 0xB94F,
+ 31557 - 11905: 0xF3DA,
+ 31558 - 11905: 0xB950,
+ 31559 - 11905: 0xF3CC,
+ 31560 - 11905: 0xB951,
+ 31561 - 11905: 0xB5C8,
+ 31562 - 11905: 0xB952,
+ 31563 - 11905: 0xBDEE,
+ 31564 - 11905: 0xF3DC,
+ 31565 - 11905: 0xB953,
+ 31566 - 11905: 0xB954,
+ 31567 - 11905: 0xB7A4,
+ 31568 - 11905: 0xBFF0,
+ 31569 - 11905: 0xD6FE,
+ 31570 - 11905: 0xCDB2,
+ 31571 - 11905: 0xB955,
+ 31572 - 11905: 0xB4F0,
+ 31573 - 11905: 0xB956,
+ 31574 - 11905: 0xB2DF,
+ 31575 - 11905: 0xB957,
+ 31576 - 11905: 0xF3D8,
+ 31577 - 11905: 0xB958,
+ 31578 - 11905: 0xF3D9,
+ 31579 - 11905: 0xC9B8,
+ 31580 - 11905: 0xB959,
+ 31581 - 11905: 0xF3DD,
+ 31582 - 11905: 0xB95A,
+ 31583 - 11905: 0xB95B,
+ 31584 - 11905: 0xF3DE,
+ 31585 - 11905: 0xB95C,
+ 31586 - 11905: 0xF3E1,
+ 31587 - 11905: 0xB95D,
+ 31588 - 11905: 0xB95E,
+ 31589 - 11905: 0xB95F,
+ 31590 - 11905: 0xB960,
+ 31591 - 11905: 0xB961,
+ 31592 - 11905: 0xB962,
+ 31593 - 11905: 0xB963,
+ 31594 - 11905: 0xB964,
+ 31595 - 11905: 0xB965,
+ 31596 - 11905: 0xB966,
+ 31597 - 11905: 0xB967,
+ 31598 - 11905: 0xF3DF,
+ 31599 - 11905: 0xB968,
+ 31600 - 11905: 0xB969,
+ 31601 - 11905: 0xF3E3,
+ 31602 - 11905: 0xF3E2,
+ 31603 - 11905: 0xB96A,
+ 31604 - 11905: 0xB96B,
+ 31605 - 11905: 0xF3DB,
+ 31606 - 11905: 0xB96C,
+ 31607 - 11905: 0xBFEA,
+ 31608 - 11905: 0xB96D,
+ 31609 - 11905: 0xB3EF,
+ 31610 - 11905: 0xB96E,
+ 31611 - 11905: 0xF3E0,
+ 31612 - 11905: 0xB96F,
+ 31613 - 11905: 0xB970,
+ 31614 - 11905: 0xC7A9,
+ 31615 - 11905: 0xB971,
+ 31616 - 11905: 0xBCF2,
+ 31617 - 11905: 0xB972,
+ 31618 - 11905: 0xB973,
+ 31619 - 11905: 0xB974,
+ 31620 - 11905: 0xB975,
+ 31621 - 11905: 0xF3EB,
+ 31622 - 11905: 0xB976,
+ 31623 - 11905: 0xB977,
+ 31624 - 11905: 0xB978,
+ 31625 - 11905: 0xB979,
+ 31626 - 11905: 0xB97A,
+ 31627 - 11905: 0xB97B,
+ 31628 - 11905: 0xB97C,
+ 31629 - 11905: 0xB9BF,
+ 31630 - 11905: 0xB97D,
+ 31631 - 11905: 0xB97E,
+ 31632 - 11905: 0xF3E4,
+ 31633 - 11905: 0xB980,
+ 31634 - 11905: 0xB981,
+ 31635 - 11905: 0xB982,
+ 31636 - 11905: 0xB2AD,
+ 31637 - 11905: 0xBBFE,
+ 31638 - 11905: 0xB983,
+ 31639 - 11905: 0xCBE3,
+ 31640 - 11905: 0xB984,
+ 31641 - 11905: 0xB985,
+ 31642 - 11905: 0xB986,
+ 31643 - 11905: 0xB987,
+ 31644 - 11905: 0xF3ED,
+ 31645 - 11905: 0xF3E9,
+ 31646 - 11905: 0xB988,
+ 31647 - 11905: 0xB989,
+ 31648 - 11905: 0xB98A,
+ 31649 - 11905: 0xB9DC,
+ 31650 - 11905: 0xF3EE,
+ 31651 - 11905: 0xB98B,
+ 31652 - 11905: 0xB98C,
+ 31653 - 11905: 0xB98D,
+ 31654 - 11905: 0xF3E5,
+ 31655 - 11905: 0xF3E6,
+ 31656 - 11905: 0xF3EA,
+ 31657 - 11905: 0xC2E1,
+ 31658 - 11905: 0xF3EC,
+ 31659 - 11905: 0xF3EF,
+ 31660 - 11905: 0xF3E8,
+ 31661 - 11905: 0xBCFD,
+ 31662 - 11905: 0xB98E,
+ 31663 - 11905: 0xB98F,
+ 31664 - 11905: 0xB990,
+ 31665 - 11905: 0xCFE4,
+ 31666 - 11905: 0xB991,
+ 31667 - 11905: 0xB992,
+ 31668 - 11905: 0xF3F0,
+ 31669 - 11905: 0xB993,
+ 31670 - 11905: 0xB994,
+ 31671 - 11905: 0xB995,
+ 31672 - 11905: 0xF3E7,
+ 31673 - 11905: 0xB996,
+ 31674 - 11905: 0xB997,
+ 31675 - 11905: 0xB998,
+ 31676 - 11905: 0xB999,
+ 31677 - 11905: 0xB99A,
+ 31678 - 11905: 0xB99B,
+ 31679 - 11905: 0xB99C,
+ 31680 - 11905: 0xB99D,
+ 31681 - 11905: 0xF3F2,
+ 31682 - 11905: 0xB99E,
+ 31683 - 11905: 0xB99F,
+ 31684 - 11905: 0xB9A0,
+ 31685 - 11905: 0xBA40,
+ 31686 - 11905: 0xD7AD,
+ 31687 - 11905: 0xC6AA,
+ 31688 - 11905: 0xBA41,
+ 31689 - 11905: 0xBA42,
+ 31690 - 11905: 0xBA43,
+ 31691 - 11905: 0xBA44,
+ 31692 - 11905: 0xF3F3,
+ 31693 - 11905: 0xBA45,
+ 31694 - 11905: 0xBA46,
+ 31695 - 11905: 0xBA47,
+ 31696 - 11905: 0xBA48,
+ 31697 - 11905: 0xF3F1,
+ 31698 - 11905: 0xBA49,
+ 31699 - 11905: 0xC2A8,
+ 31700 - 11905: 0xBA4A,
+ 31701 - 11905: 0xBA4B,
+ 31702 - 11905: 0xBA4C,
+ 31703 - 11905: 0xBA4D,
+ 31704 - 11905: 0xBA4E,
+ 31705 - 11905: 0xB8DD,
+ 31706 - 11905: 0xF3F5,
+ 31707 - 11905: 0xBA4F,
+ 31708 - 11905: 0xBA50,
+ 31709 - 11905: 0xF3F4,
+ 31710 - 11905: 0xBA51,
+ 31711 - 11905: 0xBA52,
+ 31712 - 11905: 0xBA53,
+ 31713 - 11905: 0xB4DB,
+ 31714 - 11905: 0xBA54,
+ 31715 - 11905: 0xBA55,
+ 31716 - 11905: 0xBA56,
+ 31717 - 11905: 0xF3F6,
+ 31718 - 11905: 0xF3F7,
+ 31719 - 11905: 0xBA57,
+ 31720 - 11905: 0xBA58,
+ 31721 - 11905: 0xBA59,
+ 31722 - 11905: 0xF3F8,
+ 31723 - 11905: 0xBA5A,
+ 31724 - 11905: 0xBA5B,
+ 31725 - 11905: 0xBA5C,
+ 31726 - 11905: 0xC0BA,
+ 31727 - 11905: 0xBA5D,
+ 31728 - 11905: 0xBA5E,
+ 31729 - 11905: 0xC0E9,
+ 31730 - 11905: 0xBA5F,
+ 31731 - 11905: 0xBA60,
+ 31732 - 11905: 0xBA61,
+ 31733 - 11905: 0xBA62,
+ 31734 - 11905: 0xBA63,
+ 31735 - 11905: 0xC5F1,
+ 31736 - 11905: 0xBA64,
+ 31737 - 11905: 0xBA65,
+ 31738 - 11905: 0xBA66,
+ 31739 - 11905: 0xBA67,
+ 31740 - 11905: 0xF3FB,
+ 31741 - 11905: 0xBA68,
+ 31742 - 11905: 0xF3FA,
+ 31743 - 11905: 0xBA69,
+ 31744 - 11905: 0xBA6A,
+ 31745 - 11905: 0xBA6B,
+ 31746 - 11905: 0xBA6C,
+ 31747 - 11905: 0xBA6D,
+ 31748 - 11905: 0xBA6E,
+ 31749 - 11905: 0xBA6F,
+ 31750 - 11905: 0xBA70,
+ 31751 - 11905: 0xB4D8,
+ 31752 - 11905: 0xBA71,
+ 31753 - 11905: 0xBA72,
+ 31754 - 11905: 0xBA73,
+ 31755 - 11905: 0xF3FE,
+ 31756 - 11905: 0xF3F9,
+ 31757 - 11905: 0xBA74,
+ 31758 - 11905: 0xBA75,
+ 31759 - 11905: 0xF3FC,
+ 31760 - 11905: 0xBA76,
+ 31761 - 11905: 0xBA77,
+ 31762 - 11905: 0xBA78,
+ 31763 - 11905: 0xBA79,
+ 31764 - 11905: 0xBA7A,
+ 31765 - 11905: 0xBA7B,
+ 31766 - 11905: 0xF3FD,
+ 31767 - 11905: 0xBA7C,
+ 31768 - 11905: 0xBA7D,
+ 31769 - 11905: 0xBA7E,
+ 31770 - 11905: 0xBA80,
+ 31771 - 11905: 0xBA81,
+ 31772 - 11905: 0xBA82,
+ 31773 - 11905: 0xBA83,
+ 31774 - 11905: 0xBA84,
+ 31775 - 11905: 0xF4A1,
+ 31776 - 11905: 0xBA85,
+ 31777 - 11905: 0xBA86,
+ 31778 - 11905: 0xBA87,
+ 31779 - 11905: 0xBA88,
+ 31780 - 11905: 0xBA89,
+ 31781 - 11905: 0xBA8A,
+ 31782 - 11905: 0xF4A3,
+ 31783 - 11905: 0xBBC9,
+ 31784 - 11905: 0xBA8B,
+ 31785 - 11905: 0xBA8C,
+ 31786 - 11905: 0xF4A2,
+ 31787 - 11905: 0xBA8D,
+ 31788 - 11905: 0xBA8E,
+ 31789 - 11905: 0xBA8F,
+ 31790 - 11905: 0xBA90,
+ 31791 - 11905: 0xBA91,
+ 31792 - 11905: 0xBA92,
+ 31793 - 11905: 0xBA93,
+ 31794 - 11905: 0xBA94,
+ 31795 - 11905: 0xBA95,
+ 31796 - 11905: 0xBA96,
+ 31797 - 11905: 0xBA97,
+ 31798 - 11905: 0xBA98,
+ 31799 - 11905: 0xBA99,
+ 31800 - 11905: 0xF4A4,
+ 31801 - 11905: 0xBA9A,
+ 31802 - 11905: 0xBA9B,
+ 31803 - 11905: 0xBA9C,
+ 31804 - 11905: 0xBA9D,
+ 31805 - 11905: 0xBA9E,
+ 31806 - 11905: 0xBA9F,
+ 31807 - 11905: 0xB2BE,
+ 31808 - 11905: 0xF4A6,
+ 31809 - 11905: 0xF4A5,
+ 31810 - 11905: 0xBAA0,
+ 31811 - 11905: 0xBB40,
+ 31812 - 11905: 0xBB41,
+ 31813 - 11905: 0xBB42,
+ 31814 - 11905: 0xBB43,
+ 31815 - 11905: 0xBB44,
+ 31816 - 11905: 0xBB45,
+ 31817 - 11905: 0xBB46,
+ 31818 - 11905: 0xBB47,
+ 31819 - 11905: 0xBB48,
+ 31820 - 11905: 0xBB49,
+ 31821 - 11905: 0xBCAE,
+ 31822 - 11905: 0xBB4A,
+ 31823 - 11905: 0xBB4B,
+ 31824 - 11905: 0xBB4C,
+ 31825 - 11905: 0xBB4D,
+ 31826 - 11905: 0xBB4E,
+ 31827 - 11905: 0xBB4F,
+ 31828 - 11905: 0xBB50,
+ 31829 - 11905: 0xBB51,
+ 31830 - 11905: 0xBB52,
+ 31831 - 11905: 0xBB53,
+ 31832 - 11905: 0xBB54,
+ 31833 - 11905: 0xBB55,
+ 31834 - 11905: 0xBB56,
+ 31835 - 11905: 0xBB57,
+ 31836 - 11905: 0xBB58,
+ 31837 - 11905: 0xBB59,
+ 31838 - 11905: 0xBB5A,
+ 31839 - 11905: 0xBB5B,
+ 31840 - 11905: 0xBB5C,
+ 31841 - 11905: 0xBB5D,
+ 31842 - 11905: 0xBB5E,
+ 31843 - 11905: 0xBB5F,
+ 31844 - 11905: 0xBB60,
+ 31845 - 11905: 0xBB61,
+ 31846 - 11905: 0xBB62,
+ 31847 - 11905: 0xBB63,
+ 31848 - 11905: 0xBB64,
+ 31849 - 11905: 0xBB65,
+ 31850 - 11905: 0xBB66,
+ 31851 - 11905: 0xBB67,
+ 31852 - 11905: 0xBB68,
+ 31853 - 11905: 0xBB69,
+ 31854 - 11905: 0xBB6A,
+ 31855 - 11905: 0xBB6B,
+ 31856 - 11905: 0xBB6C,
+ 31857 - 11905: 0xBB6D,
+ 31858 - 11905: 0xBB6E,
+ 31859 - 11905: 0xC3D7,
+ 31860 - 11905: 0xD9E1,
+ 31861 - 11905: 0xBB6F,
+ 31862 - 11905: 0xBB70,
+ 31863 - 11905: 0xBB71,
+ 31864 - 11905: 0xBB72,
+ 31865 - 11905: 0xBB73,
+ 31866 - 11905: 0xBB74,
+ 31867 - 11905: 0xC0E0,
+ 31868 - 11905: 0xF4CC,
+ 31869 - 11905: 0xD7D1,
+ 31870 - 11905: 0xBB75,
+ 31871 - 11905: 0xBB76,
+ 31872 - 11905: 0xBB77,
+ 31873 - 11905: 0xBB78,
+ 31874 - 11905: 0xBB79,
+ 31875 - 11905: 0xBB7A,
+ 31876 - 11905: 0xBB7B,
+ 31877 - 11905: 0xBB7C,
+ 31878 - 11905: 0xBB7D,
+ 31879 - 11905: 0xBB7E,
+ 31880 - 11905: 0xBB80,
+ 31881 - 11905: 0xB7DB,
+ 31882 - 11905: 0xBB81,
+ 31883 - 11905: 0xBB82,
+ 31884 - 11905: 0xBB83,
+ 31885 - 11905: 0xBB84,
+ 31886 - 11905: 0xBB85,
+ 31887 - 11905: 0xBB86,
+ 31888 - 11905: 0xBB87,
+ 31889 - 11905: 0xF4CE,
+ 31890 - 11905: 0xC1A3,
+ 31891 - 11905: 0xBB88,
+ 31892 - 11905: 0xBB89,
+ 31893 - 11905: 0xC6C9,
+ 31894 - 11905: 0xBB8A,
+ 31895 - 11905: 0xB4D6,
+ 31896 - 11905: 0xD5B3,
+ 31897 - 11905: 0xBB8B,
+ 31898 - 11905: 0xBB8C,
+ 31899 - 11905: 0xBB8D,
+ 31900 - 11905: 0xF4D0,
+ 31901 - 11905: 0xF4CF,
+ 31902 - 11905: 0xF4D1,
+ 31903 - 11905: 0xCBDA,
+ 31904 - 11905: 0xBB8E,
+ 31905 - 11905: 0xBB8F,
+ 31906 - 11905: 0xF4D2,
+ 31907 - 11905: 0xBB90,
+ 31908 - 11905: 0xD4C1,
+ 31909 - 11905: 0xD6E0,
+ 31910 - 11905: 0xBB91,
+ 31911 - 11905: 0xBB92,
+ 31912 - 11905: 0xBB93,
+ 31913 - 11905: 0xBB94,
+ 31914 - 11905: 0xB7E0,
+ 31915 - 11905: 0xBB95,
+ 31916 - 11905: 0xBB96,
+ 31917 - 11905: 0xBB97,
+ 31918 - 11905: 0xC1B8,
+ 31919 - 11905: 0xBB98,
+ 31920 - 11905: 0xBB99,
+ 31921 - 11905: 0xC1BB,
+ 31922 - 11905: 0xF4D3,
+ 31923 - 11905: 0xBEAC,
+ 31924 - 11905: 0xBB9A,
+ 31925 - 11905: 0xBB9B,
+ 31926 - 11905: 0xBB9C,
+ 31927 - 11905: 0xBB9D,
+ 31928 - 11905: 0xBB9E,
+ 31929 - 11905: 0xB4E2,
+ 31930 - 11905: 0xBB9F,
+ 31931 - 11905: 0xBBA0,
+ 31932 - 11905: 0xF4D4,
+ 31933 - 11905: 0xF4D5,
+ 31934 - 11905: 0xBEAB,
+ 31935 - 11905: 0xBC40,
+ 31936 - 11905: 0xBC41,
+ 31937 - 11905: 0xF4D6,
+ 31938 - 11905: 0xBC42,
+ 31939 - 11905: 0xBC43,
+ 31940 - 11905: 0xBC44,
+ 31941 - 11905: 0xF4DB,
+ 31942 - 11905: 0xBC45,
+ 31943 - 11905: 0xF4D7,
+ 31944 - 11905: 0xF4DA,
+ 31945 - 11905: 0xBC46,
+ 31946 - 11905: 0xBAFD,
+ 31947 - 11905: 0xBC47,
+ 31948 - 11905: 0xF4D8,
+ 31949 - 11905: 0xF4D9,
+ 31950 - 11905: 0xBC48,
+ 31951 - 11905: 0xBC49,
+ 31952 - 11905: 0xBC4A,
+ 31953 - 11905: 0xBC4B,
+ 31954 - 11905: 0xBC4C,
+ 31955 - 11905: 0xBC4D,
+ 31956 - 11905: 0xBC4E,
+ 31957 - 11905: 0xB8E2,
+ 31958 - 11905: 0xCCC7,
+ 31959 - 11905: 0xF4DC,
+ 31960 - 11905: 0xBC4F,
+ 31961 - 11905: 0xB2DA,
+ 31962 - 11905: 0xBC50,
+ 31963 - 11905: 0xBC51,
+ 31964 - 11905: 0xC3D3,
+ 31965 - 11905: 0xBC52,
+ 31966 - 11905: 0xBC53,
+ 31967 - 11905: 0xD4E3,
+ 31968 - 11905: 0xBFB7,
+ 31969 - 11905: 0xBC54,
+ 31970 - 11905: 0xBC55,
+ 31971 - 11905: 0xBC56,
+ 31972 - 11905: 0xBC57,
+ 31973 - 11905: 0xBC58,
+ 31974 - 11905: 0xBC59,
+ 31975 - 11905: 0xBC5A,
+ 31976 - 11905: 0xF4DD,
+ 31977 - 11905: 0xBC5B,
+ 31978 - 11905: 0xBC5C,
+ 31979 - 11905: 0xBC5D,
+ 31980 - 11905: 0xBC5E,
+ 31981 - 11905: 0xBC5F,
+ 31982 - 11905: 0xBC60,
+ 31983 - 11905: 0xC5B4,
+ 31984 - 11905: 0xBC61,
+ 31985 - 11905: 0xBC62,
+ 31986 - 11905: 0xBC63,
+ 31987 - 11905: 0xBC64,
+ 31988 - 11905: 0xBC65,
+ 31989 - 11905: 0xBC66,
+ 31990 - 11905: 0xBC67,
+ 31991 - 11905: 0xBC68,
+ 31992 - 11905: 0xF4E9,
+ 31993 - 11905: 0xBC69,
+ 31994 - 11905: 0xBC6A,
+ 31995 - 11905: 0xCFB5,
+ 31996 - 11905: 0xBC6B,
+ 31997 - 11905: 0xBC6C,
+ 31998 - 11905: 0xBC6D,
+ 31999 - 11905: 0xBC6E,
+ 32000 - 11905: 0xBC6F,
+ 32001 - 11905: 0xBC70,
+ 32002 - 11905: 0xBC71,
+ 32003 - 11905: 0xBC72,
+ 32004 - 11905: 0xBC73,
+ 32005 - 11905: 0xBC74,
+ 32006 - 11905: 0xBC75,
+ 32007 - 11905: 0xBC76,
+ 32008 - 11905: 0xBC77,
+ 32009 - 11905: 0xBC78,
+ 32010 - 11905: 0xCEC9,
+ 32011 - 11905: 0xBC79,
+ 32012 - 11905: 0xBC7A,
+ 32013 - 11905: 0xBC7B,
+ 32014 - 11905: 0xBC7C,
+ 32015 - 11905: 0xBC7D,
+ 32016 - 11905: 0xBC7E,
+ 32017 - 11905: 0xBC80,
+ 32018 - 11905: 0xBC81,
+ 32019 - 11905: 0xBC82,
+ 32020 - 11905: 0xBC83,
+ 32021 - 11905: 0xBC84,
+ 32022 - 11905: 0xBC85,
+ 32023 - 11905: 0xBC86,
+ 32024 - 11905: 0xBC87,
+ 32025 - 11905: 0xBC88,
+ 32026 - 11905: 0xBC89,
+ 32027 - 11905: 0xBC8A,
+ 32028 - 11905: 0xBC8B,
+ 32029 - 11905: 0xBC8C,
+ 32030 - 11905: 0xBC8D,
+ 32031 - 11905: 0xBC8E,
+ 32032 - 11905: 0xCBD8,
+ 32033 - 11905: 0xBC8F,
+ 32034 - 11905: 0xCBF7,
+ 32035 - 11905: 0xBC90,
+ 32036 - 11905: 0xBC91,
+ 32037 - 11905: 0xBC92,
+ 32038 - 11905: 0xBC93,
+ 32039 - 11905: 0xBDF4,
+ 32040 - 11905: 0xBC94,
+ 32041 - 11905: 0xBC95,
+ 32042 - 11905: 0xBC96,
+ 32043 - 11905: 0xD7CF,
+ 32044 - 11905: 0xBC97,
+ 32045 - 11905: 0xBC98,
+ 32046 - 11905: 0xBC99,
+ 32047 - 11905: 0xC0DB,
+ 32048 - 11905: 0xBC9A,
+ 32049 - 11905: 0xBC9B,
+ 32050 - 11905: 0xBC9C,
+ 32051 - 11905: 0xBC9D,
+ 32052 - 11905: 0xBC9E,
+ 32053 - 11905: 0xBC9F,
+ 32054 - 11905: 0xBCA0,
+ 32055 - 11905: 0xBD40,
+ 32056 - 11905: 0xBD41,
+ 32057 - 11905: 0xBD42,
+ 32058 - 11905: 0xBD43,
+ 32059 - 11905: 0xBD44,
+ 32060 - 11905: 0xBD45,
+ 32061 - 11905: 0xBD46,
+ 32062 - 11905: 0xBD47,
+ 32063 - 11905: 0xBD48,
+ 32064 - 11905: 0xBD49,
+ 32065 - 11905: 0xBD4A,
+ 32066 - 11905: 0xBD4B,
+ 32067 - 11905: 0xBD4C,
+ 32068 - 11905: 0xBD4D,
+ 32069 - 11905: 0xBD4E,
+ 32070 - 11905: 0xBD4F,
+ 32071 - 11905: 0xBD50,
+ 32072 - 11905: 0xBD51,
+ 32073 - 11905: 0xBD52,
+ 32074 - 11905: 0xBD53,
+ 32075 - 11905: 0xBD54,
+ 32076 - 11905: 0xBD55,
+ 32077 - 11905: 0xBD56,
+ 32078 - 11905: 0xBD57,
+ 32079 - 11905: 0xBD58,
+ 32080 - 11905: 0xBD59,
+ 32081 - 11905: 0xBD5A,
+ 32082 - 11905: 0xBD5B,
+ 32083 - 11905: 0xBD5C,
+ 32084 - 11905: 0xBD5D,
+ 32085 - 11905: 0xBD5E,
+ 32086 - 11905: 0xBD5F,
+ 32087 - 11905: 0xBD60,
+ 32088 - 11905: 0xBD61,
+ 32089 - 11905: 0xBD62,
+ 32090 - 11905: 0xBD63,
+ 32091 - 11905: 0xBD64,
+ 32092 - 11905: 0xBD65,
+ 32093 - 11905: 0xBD66,
+ 32094 - 11905: 0xBD67,
+ 32095 - 11905: 0xBD68,
+ 32096 - 11905: 0xBD69,
+ 32097 - 11905: 0xBD6A,
+ 32098 - 11905: 0xBD6B,
+ 32099 - 11905: 0xBD6C,
+ 32100 - 11905: 0xBD6D,
+ 32101 - 11905: 0xBD6E,
+ 32102 - 11905: 0xBD6F,
+ 32103 - 11905: 0xBD70,
+ 32104 - 11905: 0xBD71,
+ 32105 - 11905: 0xBD72,
+ 32106 - 11905: 0xBD73,
+ 32107 - 11905: 0xBD74,
+ 32108 - 11905: 0xBD75,
+ 32109 - 11905: 0xBD76,
+ 32110 - 11905: 0xD0F5,
+ 32111 - 11905: 0xBD77,
+ 32112 - 11905: 0xBD78,
+ 32113 - 11905: 0xBD79,
+ 32114 - 11905: 0xBD7A,
+ 32115 - 11905: 0xBD7B,
+ 32116 - 11905: 0xBD7C,
+ 32117 - 11905: 0xBD7D,
+ 32118 - 11905: 0xBD7E,
+ 32119 - 11905: 0xF4EA,
+ 32120 - 11905: 0xBD80,
+ 32121 - 11905: 0xBD81,
+ 32122 - 11905: 0xBD82,
+ 32123 - 11905: 0xBD83,
+ 32124 - 11905: 0xBD84,
+ 32125 - 11905: 0xBD85,
+ 32126 - 11905: 0xBD86,
+ 32127 - 11905: 0xBD87,
+ 32128 - 11905: 0xBD88,
+ 32129 - 11905: 0xBD89,
+ 32130 - 11905: 0xBD8A,
+ 32131 - 11905: 0xBD8B,
+ 32132 - 11905: 0xBD8C,
+ 32133 - 11905: 0xBD8D,
+ 32134 - 11905: 0xBD8E,
+ 32135 - 11905: 0xBD8F,
+ 32136 - 11905: 0xBD90,
+ 32137 - 11905: 0xBD91,
+ 32138 - 11905: 0xBD92,
+ 32139 - 11905: 0xBD93,
+ 32140 - 11905: 0xBD94,
+ 32141 - 11905: 0xBD95,
+ 32142 - 11905: 0xBD96,
+ 32143 - 11905: 0xBD97,
+ 32144 - 11905: 0xBD98,
+ 32145 - 11905: 0xBD99,
+ 32146 - 11905: 0xBD9A,
+ 32147 - 11905: 0xBD9B,
+ 32148 - 11905: 0xBD9C,
+ 32149 - 11905: 0xBD9D,
+ 32150 - 11905: 0xBD9E,
+ 32151 - 11905: 0xBD9F,
+ 32152 - 11905: 0xBDA0,
+ 32153 - 11905: 0xBE40,
+ 32154 - 11905: 0xBE41,
+ 32155 - 11905: 0xBE42,
+ 32156 - 11905: 0xBE43,
+ 32157 - 11905: 0xBE44,
+ 32158 - 11905: 0xBE45,
+ 32159 - 11905: 0xBE46,
+ 32160 - 11905: 0xBE47,
+ 32161 - 11905: 0xBE48,
+ 32162 - 11905: 0xBE49,
+ 32163 - 11905: 0xBE4A,
+ 32164 - 11905: 0xBE4B,
+ 32165 - 11905: 0xBE4C,
+ 32166 - 11905: 0xF4EB,
+ 32167 - 11905: 0xBE4D,
+ 32168 - 11905: 0xBE4E,
+ 32169 - 11905: 0xBE4F,
+ 32170 - 11905: 0xBE50,
+ 32171 - 11905: 0xBE51,
+ 32172 - 11905: 0xBE52,
+ 32173 - 11905: 0xBE53,
+ 32174 - 11905: 0xF4EC,
+ 32175 - 11905: 0xBE54,
+ 32176 - 11905: 0xBE55,
+ 32177 - 11905: 0xBE56,
+ 32178 - 11905: 0xBE57,
+ 32179 - 11905: 0xBE58,
+ 32180 - 11905: 0xBE59,
+ 32181 - 11905: 0xBE5A,
+ 32182 - 11905: 0xBE5B,
+ 32183 - 11905: 0xBE5C,
+ 32184 - 11905: 0xBE5D,
+ 32185 - 11905: 0xBE5E,
+ 32186 - 11905: 0xBE5F,
+ 32187 - 11905: 0xBE60,
+ 32188 - 11905: 0xBE61,
+ 32189 - 11905: 0xBE62,
+ 32190 - 11905: 0xBE63,
+ 32191 - 11905: 0xBE64,
+ 32192 - 11905: 0xBE65,
+ 32193 - 11905: 0xBE66,
+ 32194 - 11905: 0xBE67,
+ 32195 - 11905: 0xBE68,
+ 32196 - 11905: 0xBE69,
+ 32197 - 11905: 0xBE6A,
+ 32198 - 11905: 0xBE6B,
+ 32199 - 11905: 0xBE6C,
+ 32200 - 11905: 0xBE6D,
+ 32201 - 11905: 0xBE6E,
+ 32202 - 11905: 0xBE6F,
+ 32203 - 11905: 0xBE70,
+ 32204 - 11905: 0xBE71,
+ 32205 - 11905: 0xBE72,
+ 32206 - 11905: 0xBE73,
+ 32207 - 11905: 0xBE74,
+ 32208 - 11905: 0xBE75,
+ 32209 - 11905: 0xBE76,
+ 32210 - 11905: 0xBE77,
+ 32211 - 11905: 0xBE78,
+ 32212 - 11905: 0xBE79,
+ 32213 - 11905: 0xBE7A,
+ 32214 - 11905: 0xBE7B,
+ 32215 - 11905: 0xBE7C,
+ 32216 - 11905: 0xBE7D,
+ 32217 - 11905: 0xBE7E,
+ 32218 - 11905: 0xBE80,
+ 32219 - 11905: 0xBE81,
+ 32220 - 11905: 0xBE82,
+ 32221 - 11905: 0xBE83,
+ 32222 - 11905: 0xBE84,
+ 32223 - 11905: 0xBE85,
+ 32224 - 11905: 0xBE86,
+ 32225 - 11905: 0xBE87,
+ 32226 - 11905: 0xBE88,
+ 32227 - 11905: 0xBE89,
+ 32228 - 11905: 0xBE8A,
+ 32229 - 11905: 0xBE8B,
+ 32230 - 11905: 0xBE8C,
+ 32231 - 11905: 0xBE8D,
+ 32232 - 11905: 0xBE8E,
+ 32233 - 11905: 0xBE8F,
+ 32234 - 11905: 0xBE90,
+ 32235 - 11905: 0xBE91,
+ 32236 - 11905: 0xBE92,
+ 32237 - 11905: 0xBE93,
+ 32238 - 11905: 0xBE94,
+ 32239 - 11905: 0xBE95,
+ 32240 - 11905: 0xBE96,
+ 32241 - 11905: 0xBE97,
+ 32242 - 11905: 0xBE98,
+ 32243 - 11905: 0xBE99,
+ 32244 - 11905: 0xBE9A,
+ 32245 - 11905: 0xBE9B,
+ 32246 - 11905: 0xBE9C,
+ 32247 - 11905: 0xBE9D,
+ 32248 - 11905: 0xBE9E,
+ 32249 - 11905: 0xBE9F,
+ 32250 - 11905: 0xBEA0,
+ 32251 - 11905: 0xBF40,
+ 32252 - 11905: 0xBF41,
+ 32253 - 11905: 0xBF42,
+ 32254 - 11905: 0xBF43,
+ 32255 - 11905: 0xBF44,
+ 32256 - 11905: 0xBF45,
+ 32257 - 11905: 0xBF46,
+ 32258 - 11905: 0xBF47,
+ 32259 - 11905: 0xBF48,
+ 32260 - 11905: 0xBF49,
+ 32261 - 11905: 0xBF4A,
+ 32262 - 11905: 0xBF4B,
+ 32263 - 11905: 0xBF4C,
+ 32264 - 11905: 0xBF4D,
+ 32265 - 11905: 0xBF4E,
+ 32266 - 11905: 0xBF4F,
+ 32267 - 11905: 0xBF50,
+ 32268 - 11905: 0xBF51,
+ 32269 - 11905: 0xBF52,
+ 32270 - 11905: 0xBF53,
+ 32271 - 11905: 0xBF54,
+ 32272 - 11905: 0xBF55,
+ 32273 - 11905: 0xBF56,
+ 32274 - 11905: 0xBF57,
+ 32275 - 11905: 0xBF58,
+ 32276 - 11905: 0xBF59,
+ 32277 - 11905: 0xBF5A,
+ 32278 - 11905: 0xBF5B,
+ 32279 - 11905: 0xBF5C,
+ 32280 - 11905: 0xBF5D,
+ 32281 - 11905: 0xBF5E,
+ 32282 - 11905: 0xBF5F,
+ 32283 - 11905: 0xBF60,
+ 32284 - 11905: 0xBF61,
+ 32285 - 11905: 0xBF62,
+ 32286 - 11905: 0xBF63,
+ 32287 - 11905: 0xBF64,
+ 32288 - 11905: 0xBF65,
+ 32289 - 11905: 0xBF66,
+ 32290 - 11905: 0xBF67,
+ 32291 - 11905: 0xBF68,
+ 32292 - 11905: 0xBF69,
+ 32293 - 11905: 0xBF6A,
+ 32294 - 11905: 0xBF6B,
+ 32295 - 11905: 0xBF6C,
+ 32296 - 11905: 0xBF6D,
+ 32297 - 11905: 0xBF6E,
+ 32298 - 11905: 0xBF6F,
+ 32299 - 11905: 0xBF70,
+ 32300 - 11905: 0xBF71,
+ 32301 - 11905: 0xBF72,
+ 32302 - 11905: 0xBF73,
+ 32303 - 11905: 0xBF74,
+ 32304 - 11905: 0xBF75,
+ 32305 - 11905: 0xBF76,
+ 32306 - 11905: 0xBF77,
+ 32307 - 11905: 0xBF78,
+ 32308 - 11905: 0xBF79,
+ 32309 - 11905: 0xBF7A,
+ 32310 - 11905: 0xBF7B,
+ 32311 - 11905: 0xBF7C,
+ 32312 - 11905: 0xBF7D,
+ 32313 - 11905: 0xBF7E,
+ 32314 - 11905: 0xBF80,
+ 32315 - 11905: 0xF7E3,
+ 32316 - 11905: 0xBF81,
+ 32317 - 11905: 0xBF82,
+ 32318 - 11905: 0xBF83,
+ 32319 - 11905: 0xBF84,
+ 32320 - 11905: 0xBF85,
+ 32321 - 11905: 0xB7B1,
+ 32322 - 11905: 0xBF86,
+ 32323 - 11905: 0xBF87,
+ 32324 - 11905: 0xBF88,
+ 32325 - 11905: 0xBF89,
+ 32326 - 11905: 0xBF8A,
+ 32327 - 11905: 0xF4ED,
+ 32328 - 11905: 0xBF8B,
+ 32329 - 11905: 0xBF8C,
+ 32330 - 11905: 0xBF8D,
+ 32331 - 11905: 0xBF8E,
+ 32332 - 11905: 0xBF8F,
+ 32333 - 11905: 0xBF90,
+ 32334 - 11905: 0xBF91,
+ 32335 - 11905: 0xBF92,
+ 32336 - 11905: 0xBF93,
+ 32337 - 11905: 0xBF94,
+ 32338 - 11905: 0xBF95,
+ 32339 - 11905: 0xBF96,
+ 32340 - 11905: 0xBF97,
+ 32341 - 11905: 0xBF98,
+ 32342 - 11905: 0xBF99,
+ 32343 - 11905: 0xBF9A,
+ 32344 - 11905: 0xBF9B,
+ 32345 - 11905: 0xBF9C,
+ 32346 - 11905: 0xBF9D,
+ 32347 - 11905: 0xBF9E,
+ 32348 - 11905: 0xBF9F,
+ 32349 - 11905: 0xBFA0,
+ 32350 - 11905: 0xC040,
+ 32351 - 11905: 0xC041,
+ 32352 - 11905: 0xC042,
+ 32353 - 11905: 0xC043,
+ 32354 - 11905: 0xC044,
+ 32355 - 11905: 0xC045,
+ 32356 - 11905: 0xC046,
+ 32357 - 11905: 0xC047,
+ 32358 - 11905: 0xC048,
+ 32359 - 11905: 0xC049,
+ 32360 - 11905: 0xC04A,
+ 32361 - 11905: 0xC04B,
+ 32362 - 11905: 0xC04C,
+ 32363 - 11905: 0xC04D,
+ 32364 - 11905: 0xC04E,
+ 32365 - 11905: 0xC04F,
+ 32366 - 11905: 0xC050,
+ 32367 - 11905: 0xC051,
+ 32368 - 11905: 0xC052,
+ 32369 - 11905: 0xC053,
+ 32370 - 11905: 0xC054,
+ 32371 - 11905: 0xC055,
+ 32372 - 11905: 0xC056,
+ 32373 - 11905: 0xC057,
+ 32374 - 11905: 0xC058,
+ 32375 - 11905: 0xC059,
+ 32376 - 11905: 0xC05A,
+ 32377 - 11905: 0xC05B,
+ 32378 - 11905: 0xC05C,
+ 32379 - 11905: 0xC05D,
+ 32380 - 11905: 0xC05E,
+ 32381 - 11905: 0xC05F,
+ 32382 - 11905: 0xC060,
+ 32383 - 11905: 0xC061,
+ 32384 - 11905: 0xC062,
+ 32385 - 11905: 0xC063,
+ 32386 - 11905: 0xD7EB,
+ 32387 - 11905: 0xC064,
+ 32388 - 11905: 0xC065,
+ 32389 - 11905: 0xC066,
+ 32390 - 11905: 0xC067,
+ 32391 - 11905: 0xC068,
+ 32392 - 11905: 0xC069,
+ 32393 - 11905: 0xC06A,
+ 32394 - 11905: 0xC06B,
+ 32395 - 11905: 0xC06C,
+ 32396 - 11905: 0xC06D,
+ 32397 - 11905: 0xC06E,
+ 32398 - 11905: 0xC06F,
+ 32399 - 11905: 0xC070,
+ 32400 - 11905: 0xC071,
+ 32401 - 11905: 0xC072,
+ 32402 - 11905: 0xC073,
+ 32403 - 11905: 0xC074,
+ 32404 - 11905: 0xC075,
+ 32405 - 11905: 0xC076,
+ 32406 - 11905: 0xC077,
+ 32407 - 11905: 0xC078,
+ 32408 - 11905: 0xC079,
+ 32409 - 11905: 0xC07A,
+ 32410 - 11905: 0xC07B,
+ 32411 - 11905: 0xF4EE,
+ 32412 - 11905: 0xC07C,
+ 32413 - 11905: 0xC07D,
+ 32414 - 11905: 0xC07E,
+ 32415 - 11905: 0xE6F9,
+ 32416 - 11905: 0xBEC0,
+ 32417 - 11905: 0xE6FA,
+ 32418 - 11905: 0xBAEC,
+ 32419 - 11905: 0xE6FB,
+ 32420 - 11905: 0xCFCB,
+ 32421 - 11905: 0xE6FC,
+ 32422 - 11905: 0xD4BC,
+ 32423 - 11905: 0xBCB6,
+ 32424 - 11905: 0xE6FD,
+ 32425 - 11905: 0xE6FE,
+ 32426 - 11905: 0xBCCD,
+ 32427 - 11905: 0xC8D2,
+ 32428 - 11905: 0xCEB3,
+ 32429 - 11905: 0xE7A1,
+ 32430 - 11905: 0xC080,
+ 32431 - 11905: 0xB4BF,
+ 32432 - 11905: 0xE7A2,
+ 32433 - 11905: 0xC9B4,
+ 32434 - 11905: 0xB8D9,
+ 32435 - 11905: 0xC4C9,
+ 32436 - 11905: 0xC081,
+ 32437 - 11905: 0xD7DD,
+ 32438 - 11905: 0xC2DA,
+ 32439 - 11905: 0xB7D7,
+ 32440 - 11905: 0xD6BD,
+ 32441 - 11905: 0xCEC6,
+ 32442 - 11905: 0xB7C4,
+ 32443 - 11905: 0xC082,
+ 32444 - 11905: 0xC083,
+ 32445 - 11905: 0xC5A6,
+ 32446 - 11905: 0xE7A3,
+ 32447 - 11905: 0xCFDF,
+ 32448 - 11905: 0xE7A4,
+ 32449 - 11905: 0xE7A5,
+ 32450 - 11905: 0xE7A6,
+ 32451 - 11905: 0xC1B7,
+ 32452 - 11905: 0xD7E9,
+ 32453 - 11905: 0xC9F0,
+ 32454 - 11905: 0xCFB8,
+ 32455 - 11905: 0xD6AF,
+ 32456 - 11905: 0xD6D5,
+ 32457 - 11905: 0xE7A7,
+ 32458 - 11905: 0xB0ED,
+ 32459 - 11905: 0xE7A8,
+ 32460 - 11905: 0xE7A9,
+ 32461 - 11905: 0xC9DC,
+ 32462 - 11905: 0xD2EF,
+ 32463 - 11905: 0xBEAD,
+ 32464 - 11905: 0xE7AA,
+ 32465 - 11905: 0xB0F3,
+ 32466 - 11905: 0xC8DE,
+ 32467 - 11905: 0xBDE1,
+ 32468 - 11905: 0xE7AB,
+ 32469 - 11905: 0xC8C6,
+ 32470 - 11905: 0xC084,
+ 32471 - 11905: 0xE7AC,
+ 32472 - 11905: 0xBBE6,
+ 32473 - 11905: 0xB8F8,
+ 32474 - 11905: 0xD1A4,
+ 32475 - 11905: 0xE7AD,
+ 32476 - 11905: 0xC2E7,
+ 32477 - 11905: 0xBEF8,
+ 32478 - 11905: 0xBDCA,
+ 32479 - 11905: 0xCDB3,
+ 32480 - 11905: 0xE7AE,
+ 32481 - 11905: 0xE7AF,
+ 32482 - 11905: 0xBEEE,
+ 32483 - 11905: 0xD0E5,
+ 32484 - 11905: 0xC085,
+ 32485 - 11905: 0xCBE7,
+ 32486 - 11905: 0xCCD0,
+ 32487 - 11905: 0xBCCC,
+ 32488 - 11905: 0xE7B0,
+ 32489 - 11905: 0xBCA8,
+ 32490 - 11905: 0xD0F7,
+ 32491 - 11905: 0xE7B1,
+ 32492 - 11905: 0xC086,
+ 32493 - 11905: 0xD0F8,
+ 32494 - 11905: 0xE7B2,
+ 32495 - 11905: 0xE7B3,
+ 32496 - 11905: 0xB4C2,
+ 32497 - 11905: 0xE7B4,
+ 32498 - 11905: 0xE7B5,
+ 32499 - 11905: 0xC9FE,
+ 32500 - 11905: 0xCEAC,
+ 32501 - 11905: 0xC3E0,
+ 32502 - 11905: 0xE7B7,
+ 32503 - 11905: 0xB1C1,
+ 32504 - 11905: 0xB3F1,
+ 32505 - 11905: 0xC087,
+ 32506 - 11905: 0xE7B8,
+ 32507 - 11905: 0xE7B9,
+ 32508 - 11905: 0xD7DB,
+ 32509 - 11905: 0xD5C0,
+ 32510 - 11905: 0xE7BA,
+ 32511 - 11905: 0xC2CC,
+ 32512 - 11905: 0xD7BA,
+ 32513 - 11905: 0xE7BB,
+ 32514 - 11905: 0xE7BC,
+ 32515 - 11905: 0xE7BD,
+ 32516 - 11905: 0xBCEA,
+ 32517 - 11905: 0xC3E5,
+ 32518 - 11905: 0xC0C2,
+ 32519 - 11905: 0xE7BE,
+ 32520 - 11905: 0xE7BF,
+ 32521 - 11905: 0xBCA9,
+ 32522 - 11905: 0xC088,
+ 32523 - 11905: 0xE7C0,
+ 32524 - 11905: 0xE7C1,
+ 32525 - 11905: 0xE7B6,
+ 32526 - 11905: 0xB6D0,
+ 32527 - 11905: 0xE7C2,
+ 32528 - 11905: 0xC089,
+ 32529 - 11905: 0xE7C3,
+ 32530 - 11905: 0xE7C4,
+ 32531 - 11905: 0xBBBA,
+ 32532 - 11905: 0xB5DE,
+ 32533 - 11905: 0xC2C6,
+ 32534 - 11905: 0xB1E0,
+ 32535 - 11905: 0xE7C5,
+ 32536 - 11905: 0xD4B5,
+ 32537 - 11905: 0xE7C6,
+ 32538 - 11905: 0xB8BF,
+ 32539 - 11905: 0xE7C8,
+ 32540 - 11905: 0xE7C7,
+ 32541 - 11905: 0xB7EC,
+ 32542 - 11905: 0xC08A,
+ 32543 - 11905: 0xE7C9,
+ 32544 - 11905: 0xB2F8,
+ 32545 - 11905: 0xE7CA,
+ 32546 - 11905: 0xE7CB,
+ 32547 - 11905: 0xE7CC,
+ 32548 - 11905: 0xE7CD,
+ 32549 - 11905: 0xE7CE,
+ 32550 - 11905: 0xE7CF,
+ 32551 - 11905: 0xE7D0,
+ 32552 - 11905: 0xD3A7,
+ 32553 - 11905: 0xCBF5,
+ 32554 - 11905: 0xE7D1,
+ 32555 - 11905: 0xE7D2,
+ 32556 - 11905: 0xE7D3,
+ 32557 - 11905: 0xE7D4,
+ 32558 - 11905: 0xC9C9,
+ 32559 - 11905: 0xE7D5,
+ 32560 - 11905: 0xE7D6,
+ 32561 - 11905: 0xE7D7,
+ 32562 - 11905: 0xE7D8,
+ 32563 - 11905: 0xE7D9,
+ 32564 - 11905: 0xBDC9,
+ 32565 - 11905: 0xE7DA,
+ 32566 - 11905: 0xF3BE,
+ 32567 - 11905: 0xC08B,
+ 32568 - 11905: 0xB8D7,
+ 32569 - 11905: 0xC08C,
+ 32570 - 11905: 0xC8B1,
+ 32571 - 11905: 0xC08D,
+ 32572 - 11905: 0xC08E,
+ 32573 - 11905: 0xC08F,
+ 32574 - 11905: 0xC090,
+ 32575 - 11905: 0xC091,
+ 32576 - 11905: 0xC092,
+ 32577 - 11905: 0xC093,
+ 32578 - 11905: 0xF3BF,
+ 32579 - 11905: 0xC094,
+ 32580 - 11905: 0xF3C0,
+ 32581 - 11905: 0xF3C1,
+ 32582 - 11905: 0xC095,
+ 32583 - 11905: 0xC096,
+ 32584 - 11905: 0xC097,
+ 32585 - 11905: 0xC098,
+ 32586 - 11905: 0xC099,
+ 32587 - 11905: 0xC09A,
+ 32588 - 11905: 0xC09B,
+ 32589 - 11905: 0xC09C,
+ 32590 - 11905: 0xC09D,
+ 32591 - 11905: 0xC09E,
+ 32592 - 11905: 0xB9DE,
+ 32593 - 11905: 0xCDF8,
+ 32594 - 11905: 0xC09F,
+ 32595 - 11905: 0xC0A0,
+ 32596 - 11905: 0xD8E8,
+ 32597 - 11905: 0xBAB1,
+ 32598 - 11905: 0xC140,
+ 32599 - 11905: 0xC2DE,
+ 32600 - 11905: 0xEEB7,
+ 32601 - 11905: 0xC141,
+ 32602 - 11905: 0xB7A3,
+ 32603 - 11905: 0xC142,
+ 32604 - 11905: 0xC143,
+ 32605 - 11905: 0xC144,
+ 32606 - 11905: 0xC145,
+ 32607 - 11905: 0xEEB9,
+ 32608 - 11905: 0xC146,
+ 32609 - 11905: 0xEEB8,
+ 32610 - 11905: 0xB0D5,
+ 32611 - 11905: 0xC147,
+ 32612 - 11905: 0xC148,
+ 32613 - 11905: 0xC149,
+ 32614 - 11905: 0xC14A,
+ 32615 - 11905: 0xC14B,
+ 32616 - 11905: 0xEEBB,
+ 32617 - 11905: 0xD5D6,
+ 32618 - 11905: 0xD7EF,
+ 32619 - 11905: 0xC14C,
+ 32620 - 11905: 0xC14D,
+ 32621 - 11905: 0xC14E,
+ 32622 - 11905: 0xD6C3,
+ 32623 - 11905: 0xC14F,
+ 32624 - 11905: 0xC150,
+ 32625 - 11905: 0xEEBD,
+ 32626 - 11905: 0xCAF0,
+ 32627 - 11905: 0xC151,
+ 32628 - 11905: 0xEEBC,
+ 32629 - 11905: 0xC152,
+ 32630 - 11905: 0xC153,
+ 32631 - 11905: 0xC154,
+ 32632 - 11905: 0xC155,
+ 32633 - 11905: 0xEEBE,
+ 32634 - 11905: 0xC156,
+ 32635 - 11905: 0xC157,
+ 32636 - 11905: 0xC158,
+ 32637 - 11905: 0xC159,
+ 32638 - 11905: 0xEEC0,
+ 32639 - 11905: 0xC15A,
+ 32640 - 11905: 0xC15B,
+ 32641 - 11905: 0xEEBF,
+ 32642 - 11905: 0xC15C,
+ 32643 - 11905: 0xC15D,
+ 32644 - 11905: 0xC15E,
+ 32645 - 11905: 0xC15F,
+ 32646 - 11905: 0xC160,
+ 32647 - 11905: 0xC161,
+ 32648 - 11905: 0xC162,
+ 32649 - 11905: 0xC163,
+ 32650 - 11905: 0xD1F2,
+ 32651 - 11905: 0xC164,
+ 32652 - 11905: 0xC7BC,
+ 32653 - 11905: 0xC165,
+ 32654 - 11905: 0xC3C0,
+ 32655 - 11905: 0xC166,
+ 32656 - 11905: 0xC167,
+ 32657 - 11905: 0xC168,
+ 32658 - 11905: 0xC169,
+ 32659 - 11905: 0xC16A,
+ 32660 - 11905: 0xB8E1,
+ 32661 - 11905: 0xC16B,
+ 32662 - 11905: 0xC16C,
+ 32663 - 11905: 0xC16D,
+ 32664 - 11905: 0xC16E,
+ 32665 - 11905: 0xC16F,
+ 32666 - 11905: 0xC1E7,
+ 32667 - 11905: 0xC170,
+ 32668 - 11905: 0xC171,
+ 32669 - 11905: 0xF4C6,
+ 32670 - 11905: 0xD0DF,
+ 32671 - 11905: 0xF4C7,
+ 32672 - 11905: 0xC172,
+ 32673 - 11905: 0xCFDB,
+ 32674 - 11905: 0xC173,
+ 32675 - 11905: 0xC174,
+ 32676 - 11905: 0xC8BA,
+ 32677 - 11905: 0xC175,
+ 32678 - 11905: 0xC176,
+ 32679 - 11905: 0xF4C8,
+ 32680 - 11905: 0xC177,
+ 32681 - 11905: 0xC178,
+ 32682 - 11905: 0xC179,
+ 32683 - 11905: 0xC17A,
+ 32684 - 11905: 0xC17B,
+ 32685 - 11905: 0xC17C,
+ 32686 - 11905: 0xC17D,
+ 32687 - 11905: 0xF4C9,
+ 32688 - 11905: 0xF4CA,
+ 32689 - 11905: 0xC17E,
+ 32690 - 11905: 0xF4CB,
+ 32691 - 11905: 0xC180,
+ 32692 - 11905: 0xC181,
+ 32693 - 11905: 0xC182,
+ 32694 - 11905: 0xC183,
+ 32695 - 11905: 0xC184,
+ 32696 - 11905: 0xD9FA,
+ 32697 - 11905: 0xB8FE,
+ 32698 - 11905: 0xC185,
+ 32699 - 11905: 0xC186,
+ 32700 - 11905: 0xE5F1,
+ 32701 - 11905: 0xD3F0,
+ 32702 - 11905: 0xC187,
+ 32703 - 11905: 0xF4E0,
+ 32704 - 11905: 0xC188,
+ 32705 - 11905: 0xCECC,
+ 32706 - 11905: 0xC189,
+ 32707 - 11905: 0xC18A,
+ 32708 - 11905: 0xC18B,
+ 32709 - 11905: 0xB3E1,
+ 32710 - 11905: 0xC18C,
+ 32711 - 11905: 0xC18D,
+ 32712 - 11905: 0xC18E,
+ 32713 - 11905: 0xC18F,
+ 32714 - 11905: 0xF1B4,
+ 32715 - 11905: 0xC190,
+ 32716 - 11905: 0xD2EE,
+ 32717 - 11905: 0xC191,
+ 32718 - 11905: 0xF4E1,
+ 32719 - 11905: 0xC192,
+ 32720 - 11905: 0xC193,
+ 32721 - 11905: 0xC194,
+ 32722 - 11905: 0xC195,
+ 32723 - 11905: 0xC196,
+ 32724 - 11905: 0xCFE8,
+ 32725 - 11905: 0xF4E2,
+ 32726 - 11905: 0xC197,
+ 32727 - 11905: 0xC198,
+ 32728 - 11905: 0xC7CC,
+ 32729 - 11905: 0xC199,
+ 32730 - 11905: 0xC19A,
+ 32731 - 11905: 0xC19B,
+ 32732 - 11905: 0xC19C,
+ 32733 - 11905: 0xC19D,
+ 32734 - 11905: 0xC19E,
+ 32735 - 11905: 0xB5D4,
+ 32736 - 11905: 0xB4E4,
+ 32737 - 11905: 0xF4E4,
+ 32738 - 11905: 0xC19F,
+ 32739 - 11905: 0xC1A0,
+ 32740 - 11905: 0xC240,
+ 32741 - 11905: 0xF4E3,
+ 32742 - 11905: 0xF4E5,
+ 32743 - 11905: 0xC241,
+ 32744 - 11905: 0xC242,
+ 32745 - 11905: 0xF4E6,
+ 32746 - 11905: 0xC243,
+ 32747 - 11905: 0xC244,
+ 32748 - 11905: 0xC245,
+ 32749 - 11905: 0xC246,
+ 32750 - 11905: 0xF4E7,
+ 32751 - 11905: 0xC247,
+ 32752 - 11905: 0xBAB2,
+ 32753 - 11905: 0xB0BF,
+ 32754 - 11905: 0xC248,
+ 32755 - 11905: 0xF4E8,
+ 32756 - 11905: 0xC249,
+ 32757 - 11905: 0xC24A,
+ 32758 - 11905: 0xC24B,
+ 32759 - 11905: 0xC24C,
+ 32760 - 11905: 0xC24D,
+ 32761 - 11905: 0xC24E,
+ 32762 - 11905: 0xC24F,
+ 32763 - 11905: 0xB7AD,
+ 32764 - 11905: 0xD2ED,
+ 32765 - 11905: 0xC250,
+ 32766 - 11905: 0xC251,
+ 32767 - 11905: 0xC252,
+ 32768 - 11905: 0xD2AB,
+ 32769 - 11905: 0xC0CF,
+ 32770 - 11905: 0xC253,
+ 32771 - 11905: 0xBFBC,
+ 32772 - 11905: 0xEBA3,
+ 32773 - 11905: 0xD5DF,
+ 32774 - 11905: 0xEAC8,
+ 32775 - 11905: 0xC254,
+ 32776 - 11905: 0xC255,
+ 32777 - 11905: 0xC256,
+ 32778 - 11905: 0xC257,
+ 32779 - 11905: 0xF1F3,
+ 32780 - 11905: 0xB6F8,
+ 32781 - 11905: 0xCBA3,
+ 32782 - 11905: 0xC258,
+ 32783 - 11905: 0xC259,
+ 32784 - 11905: 0xC4CD,
+ 32785 - 11905: 0xC25A,
+ 32786 - 11905: 0xF1E7,
+ 32787 - 11905: 0xC25B,
+ 32788 - 11905: 0xF1E8,
+ 32789 - 11905: 0xB8FB,
+ 32790 - 11905: 0xF1E9,
+ 32791 - 11905: 0xBAC4,
+ 32792 - 11905: 0xD4C5,
+ 32793 - 11905: 0xB0D2,
+ 32794 - 11905: 0xC25C,
+ 32795 - 11905: 0xC25D,
+ 32796 - 11905: 0xF1EA,
+ 32797 - 11905: 0xC25E,
+ 32798 - 11905: 0xC25F,
+ 32799 - 11905: 0xC260,
+ 32800 - 11905: 0xF1EB,
+ 32801 - 11905: 0xC261,
+ 32802 - 11905: 0xF1EC,
+ 32803 - 11905: 0xC262,
+ 32804 - 11905: 0xC263,
+ 32805 - 11905: 0xF1ED,
+ 32806 - 11905: 0xF1EE,
+ 32807 - 11905: 0xF1EF,
+ 32808 - 11905: 0xF1F1,
+ 32809 - 11905: 0xF1F0,
+ 32810 - 11905: 0xC5D5,
+ 32811 - 11905: 0xC264,
+ 32812 - 11905: 0xC265,
+ 32813 - 11905: 0xC266,
+ 32814 - 11905: 0xC267,
+ 32815 - 11905: 0xC268,
+ 32816 - 11905: 0xC269,
+ 32817 - 11905: 0xF1F2,
+ 32818 - 11905: 0xC26A,
+ 32819 - 11905: 0xB6FA,
+ 32820 - 11905: 0xC26B,
+ 32821 - 11905: 0xF1F4,
+ 32822 - 11905: 0xD2AE,
+ 32823 - 11905: 0xDEC7,
+ 32824 - 11905: 0xCBCA,
+ 32825 - 11905: 0xC26C,
+ 32826 - 11905: 0xC26D,
+ 32827 - 11905: 0xB3DC,
+ 32828 - 11905: 0xC26E,
+ 32829 - 11905: 0xB5A2,
+ 32830 - 11905: 0xC26F,
+ 32831 - 11905: 0xB9A2,
+ 32832 - 11905: 0xC270,
+ 32833 - 11905: 0xC271,
+ 32834 - 11905: 0xC4F4,
+ 32835 - 11905: 0xF1F5,
+ 32836 - 11905: 0xC272,
+ 32837 - 11905: 0xC273,
+ 32838 - 11905: 0xF1F6,
+ 32839 - 11905: 0xC274,
+ 32840 - 11905: 0xC275,
+ 32841 - 11905: 0xC276,
+ 32842 - 11905: 0xC1C4,
+ 32843 - 11905: 0xC1FB,
+ 32844 - 11905: 0xD6B0,
+ 32845 - 11905: 0xF1F7,
+ 32846 - 11905: 0xC277,
+ 32847 - 11905: 0xC278,
+ 32848 - 11905: 0xC279,
+ 32849 - 11905: 0xC27A,
+ 32850 - 11905: 0xF1F8,
+ 32851 - 11905: 0xC27B,
+ 32852 - 11905: 0xC1AA,
+ 32853 - 11905: 0xC27C,
+ 32854 - 11905: 0xC27D,
+ 32855 - 11905: 0xC27E,
+ 32856 - 11905: 0xC6B8,
+ 32857 - 11905: 0xC280,
+ 32858 - 11905: 0xBEDB,
+ 32859 - 11905: 0xC281,
+ 32860 - 11905: 0xC282,
+ 32861 - 11905: 0xC283,
+ 32862 - 11905: 0xC284,
+ 32863 - 11905: 0xC285,
+ 32864 - 11905: 0xC286,
+ 32865 - 11905: 0xC287,
+ 32866 - 11905: 0xC288,
+ 32867 - 11905: 0xC289,
+ 32868 - 11905: 0xC28A,
+ 32869 - 11905: 0xC28B,
+ 32870 - 11905: 0xC28C,
+ 32871 - 11905: 0xC28D,
+ 32872 - 11905: 0xC28E,
+ 32873 - 11905: 0xF1F9,
+ 32874 - 11905: 0xB4CF,
+ 32875 - 11905: 0xC28F,
+ 32876 - 11905: 0xC290,
+ 32877 - 11905: 0xC291,
+ 32878 - 11905: 0xC292,
+ 32879 - 11905: 0xC293,
+ 32880 - 11905: 0xC294,
+ 32881 - 11905: 0xF1FA,
+ 32882 - 11905: 0xC295,
+ 32883 - 11905: 0xC296,
+ 32884 - 11905: 0xC297,
+ 32885 - 11905: 0xC298,
+ 32886 - 11905: 0xC299,
+ 32887 - 11905: 0xC29A,
+ 32888 - 11905: 0xC29B,
+ 32889 - 11905: 0xC29C,
+ 32890 - 11905: 0xC29D,
+ 32891 - 11905: 0xC29E,
+ 32892 - 11905: 0xC29F,
+ 32893 - 11905: 0xC2A0,
+ 32894 - 11905: 0xC340,
+ 32895 - 11905: 0xEDB2,
+ 32896 - 11905: 0xEDB1,
+ 32897 - 11905: 0xC341,
+ 32898 - 11905: 0xC342,
+ 32899 - 11905: 0xCBE0,
+ 32900 - 11905: 0xD2DE,
+ 32901 - 11905: 0xC343,
+ 32902 - 11905: 0xCBC1,
+ 32903 - 11905: 0xD5D8,
+ 32904 - 11905: 0xC344,
+ 32905 - 11905: 0xC8E2,
+ 32906 - 11905: 0xC345,
+ 32907 - 11905: 0xC0DF,
+ 32908 - 11905: 0xBCA1,
+ 32909 - 11905: 0xC346,
+ 32910 - 11905: 0xC347,
+ 32911 - 11905: 0xC348,
+ 32912 - 11905: 0xC349,
+ 32913 - 11905: 0xC34A,
+ 32914 - 11905: 0xC34B,
+ 32915 - 11905: 0xEBC1,
+ 32916 - 11905: 0xC34C,
+ 32917 - 11905: 0xC34D,
+ 32918 - 11905: 0xD0A4,
+ 32919 - 11905: 0xC34E,
+ 32920 - 11905: 0xD6E2,
+ 32921 - 11905: 0xC34F,
+ 32922 - 11905: 0xB6C7,
+ 32923 - 11905: 0xB8D8,
+ 32924 - 11905: 0xEBC0,
+ 32925 - 11905: 0xB8CE,
+ 32926 - 11905: 0xC350,
+ 32927 - 11905: 0xEBBF,
+ 32928 - 11905: 0xB3A6,
+ 32929 - 11905: 0xB9C9,
+ 32930 - 11905: 0xD6AB,
+ 32931 - 11905: 0xC351,
+ 32932 - 11905: 0xB7F4,
+ 32933 - 11905: 0xB7CA,
+ 32934 - 11905: 0xC352,
+ 32935 - 11905: 0xC353,
+ 32936 - 11905: 0xC354,
+ 32937 - 11905: 0xBCE7,
+ 32938 - 11905: 0xB7BE,
+ 32939 - 11905: 0xEBC6,
+ 32940 - 11905: 0xC355,
+ 32941 - 11905: 0xEBC7,
+ 32942 - 11905: 0xB0B9,
+ 32943 - 11905: 0xBFCF,
+ 32944 - 11905: 0xC356,
+ 32945 - 11905: 0xEBC5,
+ 32946 - 11905: 0xD3FD,
+ 32947 - 11905: 0xC357,
+ 32948 - 11905: 0xEBC8,
+ 32949 - 11905: 0xC358,
+ 32950 - 11905: 0xC359,
+ 32951 - 11905: 0xEBC9,
+ 32952 - 11905: 0xC35A,
+ 32953 - 11905: 0xC35B,
+ 32954 - 11905: 0xB7CE,
+ 32955 - 11905: 0xC35C,
+ 32956 - 11905: 0xEBC2,
+ 32957 - 11905: 0xEBC4,
+ 32958 - 11905: 0xC9F6,
+ 32959 - 11905: 0xD6D7,
+ 32960 - 11905: 0xD5CD,
+ 32961 - 11905: 0xD0B2,
+ 32962 - 11905: 0xEBCF,
+ 32963 - 11905: 0xCEB8,
+ 32964 - 11905: 0xEBD0,
+ 32965 - 11905: 0xC35D,
+ 32966 - 11905: 0xB5A8,
+ 32967 - 11905: 0xC35E,
+ 32968 - 11905: 0xC35F,
+ 32969 - 11905: 0xC360,
+ 32970 - 11905: 0xC361,
+ 32971 - 11905: 0xC362,
+ 32972 - 11905: 0xB1B3,
+ 32973 - 11905: 0xEBD2,
+ 32974 - 11905: 0xCCA5,
+ 32975 - 11905: 0xC363,
+ 32976 - 11905: 0xC364,
+ 32977 - 11905: 0xC365,
+ 32978 - 11905: 0xC366,
+ 32979 - 11905: 0xC367,
+ 32980 - 11905: 0xC368,
+ 32981 - 11905: 0xC369,
+ 32982 - 11905: 0xC5D6,
+ 32983 - 11905: 0xEBD3,
+ 32984 - 11905: 0xC36A,
+ 32985 - 11905: 0xEBD1,
+ 32986 - 11905: 0xC5DF,
+ 32987 - 11905: 0xEBCE,
+ 32988 - 11905: 0xCAA4,
+ 32989 - 11905: 0xEBD5,
+ 32990 - 11905: 0xB0FB,
+ 32991 - 11905: 0xC36B,
+ 32992 - 11905: 0xC36C,
+ 32993 - 11905: 0xBAFA,
+ 32994 - 11905: 0xC36D,
+ 32995 - 11905: 0xC36E,
+ 32996 - 11905: 0xD8B7,
+ 32997 - 11905: 0xF1E3,
+ 32998 - 11905: 0xC36F,
+ 32999 - 11905: 0xEBCA,
+ 33000 - 11905: 0xEBCB,
+ 33001 - 11905: 0xEBCC,
+ 33002 - 11905: 0xEBCD,
+ 33003 - 11905: 0xEBD6,
+ 33004 - 11905: 0xE6C0,
+ 33005 - 11905: 0xEBD9,
+ 33006 - 11905: 0xC370,
+ 33007 - 11905: 0xBFE8,
+ 33008 - 11905: 0xD2C8,
+ 33009 - 11905: 0xEBD7,
+ 33010 - 11905: 0xEBDC,
+ 33011 - 11905: 0xB8EC,
+ 33012 - 11905: 0xEBD8,
+ 33013 - 11905: 0xC371,
+ 33014 - 11905: 0xBDBA,
+ 33015 - 11905: 0xC372,
+ 33016 - 11905: 0xD0D8,
+ 33017 - 11905: 0xC373,
+ 33018 - 11905: 0xB0B7,
+ 33019 - 11905: 0xC374,
+ 33020 - 11905: 0xEBDD,
+ 33021 - 11905: 0xC4DC,
+ 33022 - 11905: 0xC375,
+ 33023 - 11905: 0xC376,
+ 33024 - 11905: 0xC377,
+ 33025 - 11905: 0xC378,
+ 33026 - 11905: 0xD6AC,
+ 33027 - 11905: 0xC379,
+ 33028 - 11905: 0xC37A,
+ 33029 - 11905: 0xC37B,
+ 33030 - 11905: 0xB4E0,
+ 33031 - 11905: 0xC37C,
+ 33032 - 11905: 0xC37D,
+ 33033 - 11905: 0xC2F6,
+ 33034 - 11905: 0xBCB9,
+ 33035 - 11905: 0xC37E,
+ 33036 - 11905: 0xC380,
+ 33037 - 11905: 0xEBDA,
+ 33038 - 11905: 0xEBDB,
+ 33039 - 11905: 0xD4E0,
+ 33040 - 11905: 0xC6EA,
+ 33041 - 11905: 0xC4D4,
+ 33042 - 11905: 0xEBDF,
+ 33043 - 11905: 0xC5A7,
+ 33044 - 11905: 0xD9F5,
+ 33045 - 11905: 0xC381,
+ 33046 - 11905: 0xB2B1,
+ 33047 - 11905: 0xC382,
+ 33048 - 11905: 0xEBE4,
+ 33049 - 11905: 0xC383,
+ 33050 - 11905: 0xBDC5,
+ 33051 - 11905: 0xC384,
+ 33052 - 11905: 0xC385,
+ 33053 - 11905: 0xC386,
+ 33054 - 11905: 0xEBE2,
+ 33055 - 11905: 0xC387,
+ 33056 - 11905: 0xC388,
+ 33057 - 11905: 0xC389,
+ 33058 - 11905: 0xC38A,
+ 33059 - 11905: 0xC38B,
+ 33060 - 11905: 0xC38C,
+ 33061 - 11905: 0xC38D,
+ 33062 - 11905: 0xC38E,
+ 33063 - 11905: 0xC38F,
+ 33064 - 11905: 0xC390,
+ 33065 - 11905: 0xC391,
+ 33066 - 11905: 0xC392,
+ 33067 - 11905: 0xC393,
+ 33068 - 11905: 0xEBE3,
+ 33069 - 11905: 0xC394,
+ 33070 - 11905: 0xC395,
+ 33071 - 11905: 0xB8AC,
+ 33072 - 11905: 0xC396,
+ 33073 - 11905: 0xCDD1,
+ 33074 - 11905: 0xEBE5,
+ 33075 - 11905: 0xC397,
+ 33076 - 11905: 0xC398,
+ 33077 - 11905: 0xC399,
+ 33078 - 11905: 0xEBE1,
+ 33079 - 11905: 0xC39A,
+ 33080 - 11905: 0xC1B3,
+ 33081 - 11905: 0xC39B,
+ 33082 - 11905: 0xC39C,
+ 33083 - 11905: 0xC39D,
+ 33084 - 11905: 0xC39E,
+ 33085 - 11905: 0xC39F,
+ 33086 - 11905: 0xC6A2,
+ 33087 - 11905: 0xC3A0,
+ 33088 - 11905: 0xC440,
+ 33089 - 11905: 0xC441,
+ 33090 - 11905: 0xC442,
+ 33091 - 11905: 0xC443,
+ 33092 - 11905: 0xC444,
+ 33093 - 11905: 0xC445,
+ 33094 - 11905: 0xCCF3,
+ 33095 - 11905: 0xC446,
+ 33096 - 11905: 0xEBE6,
+ 33097 - 11905: 0xC447,
+ 33098 - 11905: 0xC0B0,
+ 33099 - 11905: 0xD2B8,
+ 33100 - 11905: 0xEBE7,
+ 33101 - 11905: 0xC448,
+ 33102 - 11905: 0xC449,
+ 33103 - 11905: 0xC44A,
+ 33104 - 11905: 0xB8AF,
+ 33105 - 11905: 0xB8AD,
+ 33106 - 11905: 0xC44B,
+ 33107 - 11905: 0xEBE8,
+ 33108 - 11905: 0xC7BB,
+ 33109 - 11905: 0xCDF3,
+ 33110 - 11905: 0xC44C,
+ 33111 - 11905: 0xC44D,
+ 33112 - 11905: 0xC44E,
+ 33113 - 11905: 0xEBEA,
+ 33114 - 11905: 0xEBEB,
+ 33115 - 11905: 0xC44F,
+ 33116 - 11905: 0xC450,
+ 33117 - 11905: 0xC451,
+ 33118 - 11905: 0xC452,
+ 33119 - 11905: 0xC453,
+ 33120 - 11905: 0xEBED,
+ 33121 - 11905: 0xC454,
+ 33122 - 11905: 0xC455,
+ 33123 - 11905: 0xC456,
+ 33124 - 11905: 0xC457,
+ 33125 - 11905: 0xD0C8,
+ 33126 - 11905: 0xC458,
+ 33127 - 11905: 0xEBF2,
+ 33128 - 11905: 0xC459,
+ 33129 - 11905: 0xEBEE,
+ 33130 - 11905: 0xC45A,
+ 33131 - 11905: 0xC45B,
+ 33132 - 11905: 0xC45C,
+ 33133 - 11905: 0xEBF1,
+ 33134 - 11905: 0xC8F9,
+ 33135 - 11905: 0xC45D,
+ 33136 - 11905: 0xD1FC,
+ 33137 - 11905: 0xEBEC,
+ 33138 - 11905: 0xC45E,
+ 33139 - 11905: 0xC45F,
+ 33140 - 11905: 0xEBE9,
+ 33141 - 11905: 0xC460,
+ 33142 - 11905: 0xC461,
+ 33143 - 11905: 0xC462,
+ 33144 - 11905: 0xC463,
+ 33145 - 11905: 0xB8B9,
+ 33146 - 11905: 0xCFD9,
+ 33147 - 11905: 0xC4E5,
+ 33148 - 11905: 0xEBEF,
+ 33149 - 11905: 0xEBF0,
+ 33150 - 11905: 0xCCDA,
+ 33151 - 11905: 0xCDC8,
+ 33152 - 11905: 0xB0F2,
+ 33153 - 11905: 0xC464,
+ 33154 - 11905: 0xEBF6,
+ 33155 - 11905: 0xC465,
+ 33156 - 11905: 0xC466,
+ 33157 - 11905: 0xC467,
+ 33158 - 11905: 0xC468,
+ 33159 - 11905: 0xC469,
+ 33160 - 11905: 0xEBF5,
+ 33161 - 11905: 0xC46A,
+ 33162 - 11905: 0xB2B2,
+ 33163 - 11905: 0xC46B,
+ 33164 - 11905: 0xC46C,
+ 33165 - 11905: 0xC46D,
+ 33166 - 11905: 0xC46E,
+ 33167 - 11905: 0xB8E0,
+ 33168 - 11905: 0xC46F,
+ 33169 - 11905: 0xEBF7,
+ 33170 - 11905: 0xC470,
+ 33171 - 11905: 0xC471,
+ 33172 - 11905: 0xC472,
+ 33173 - 11905: 0xC473,
+ 33174 - 11905: 0xC474,
+ 33175 - 11905: 0xC475,
+ 33176 - 11905: 0xB1EC,
+ 33177 - 11905: 0xC476,
+ 33178 - 11905: 0xC477,
+ 33179 - 11905: 0xCCC5,
+ 33180 - 11905: 0xC4A4,
+ 33181 - 11905: 0xCFA5,
+ 33182 - 11905: 0xC478,
+ 33183 - 11905: 0xC479,
+ 33184 - 11905: 0xC47A,
+ 33185 - 11905: 0xC47B,
+ 33186 - 11905: 0xC47C,
+ 33187 - 11905: 0xEBF9,
+ 33188 - 11905: 0xC47D,
+ 33189 - 11905: 0xC47E,
+ 33190 - 11905: 0xECA2,
+ 33191 - 11905: 0xC480,
+ 33192 - 11905: 0xC5F2,
+ 33193 - 11905: 0xC481,
+ 33194 - 11905: 0xEBFA,
+ 33195 - 11905: 0xC482,
+ 33196 - 11905: 0xC483,
+ 33197 - 11905: 0xC484,
+ 33198 - 11905: 0xC485,
+ 33199 - 11905: 0xC486,
+ 33200 - 11905: 0xC487,
+ 33201 - 11905: 0xC488,
+ 33202 - 11905: 0xC489,
+ 33203 - 11905: 0xC9C5,
+ 33204 - 11905: 0xC48A,
+ 33205 - 11905: 0xC48B,
+ 33206 - 11905: 0xC48C,
+ 33207 - 11905: 0xC48D,
+ 33208 - 11905: 0xC48E,
+ 33209 - 11905: 0xC48F,
+ 33210 - 11905: 0xE2DF,
+ 33211 - 11905: 0xEBFE,
+ 33212 - 11905: 0xC490,
+ 33213 - 11905: 0xC491,
+ 33214 - 11905: 0xC492,
+ 33215 - 11905: 0xC493,
+ 33216 - 11905: 0xCDCE,
+ 33217 - 11905: 0xECA1,
+ 33218 - 11905: 0xB1DB,
+ 33219 - 11905: 0xD3B7,
+ 33220 - 11905: 0xC494,
+ 33221 - 11905: 0xC495,
+ 33222 - 11905: 0xD2DC,
+ 33223 - 11905: 0xC496,
+ 33224 - 11905: 0xC497,
+ 33225 - 11905: 0xC498,
+ 33226 - 11905: 0xEBFD,
+ 33227 - 11905: 0xC499,
+ 33228 - 11905: 0xEBFB,
+ 33229 - 11905: 0xC49A,
+ 33230 - 11905: 0xC49B,
+ 33231 - 11905: 0xC49C,
+ 33232 - 11905: 0xC49D,
+ 33233 - 11905: 0xC49E,
+ 33234 - 11905: 0xC49F,
+ 33235 - 11905: 0xC4A0,
+ 33236 - 11905: 0xC540,
+ 33237 - 11905: 0xC541,
+ 33238 - 11905: 0xC542,
+ 33239 - 11905: 0xC543,
+ 33240 - 11905: 0xC544,
+ 33241 - 11905: 0xC545,
+ 33242 - 11905: 0xC546,
+ 33243 - 11905: 0xC547,
+ 33244 - 11905: 0xC548,
+ 33245 - 11905: 0xC549,
+ 33246 - 11905: 0xC54A,
+ 33247 - 11905: 0xC54B,
+ 33248 - 11905: 0xC54C,
+ 33249 - 11905: 0xC54D,
+ 33250 - 11905: 0xC54E,
+ 33251 - 11905: 0xB3BC,
+ 33252 - 11905: 0xC54F,
+ 33253 - 11905: 0xC550,
+ 33254 - 11905: 0xC551,
+ 33255 - 11905: 0xEAB0,
+ 33256 - 11905: 0xC552,
+ 33257 - 11905: 0xC553,
+ 33258 - 11905: 0xD7D4,
+ 33259 - 11905: 0xC554,
+ 33260 - 11905: 0xF4AB,
+ 33261 - 11905: 0xB3F4,
+ 33262 - 11905: 0xC555,
+ 33263 - 11905: 0xC556,
+ 33264 - 11905: 0xC557,
+ 33265 - 11905: 0xC558,
+ 33266 - 11905: 0xC559,
+ 33267 - 11905: 0xD6C1,
+ 33268 - 11905: 0xD6C2,
+ 33269 - 11905: 0xC55A,
+ 33270 - 11905: 0xC55B,
+ 33271 - 11905: 0xC55C,
+ 33272 - 11905: 0xC55D,
+ 33273 - 11905: 0xC55E,
+ 33274 - 11905: 0xC55F,
+ 33275 - 11905: 0xD5E9,
+ 33276 - 11905: 0xBECA,
+ 33277 - 11905: 0xC560,
+ 33278 - 11905: 0xF4A7,
+ 33279 - 11905: 0xC561,
+ 33280 - 11905: 0xD2A8,
+ 33281 - 11905: 0xF4A8,
+ 33282 - 11905: 0xF4A9,
+ 33283 - 11905: 0xC562,
+ 33284 - 11905: 0xF4AA,
+ 33285 - 11905: 0xBECB,
+ 33286 - 11905: 0xD3DF,
+ 33287 - 11905: 0xC563,
+ 33288 - 11905: 0xC564,
+ 33289 - 11905: 0xC565,
+ 33290 - 11905: 0xC566,
+ 33291 - 11905: 0xC567,
+ 33292 - 11905: 0xC9E0,
+ 33293 - 11905: 0xC9E1,
+ 33294 - 11905: 0xC568,
+ 33295 - 11905: 0xC569,
+ 33296 - 11905: 0xF3C2,
+ 33297 - 11905: 0xC56A,
+ 33298 - 11905: 0xCAE6,
+ 33299 - 11905: 0xC56B,
+ 33300 - 11905: 0xCCF2,
+ 33301 - 11905: 0xC56C,
+ 33302 - 11905: 0xC56D,
+ 33303 - 11905: 0xC56E,
+ 33304 - 11905: 0xC56F,
+ 33305 - 11905: 0xC570,
+ 33306 - 11905: 0xC571,
+ 33307 - 11905: 0xE2B6,
+ 33308 - 11905: 0xCBB4,
+ 33309 - 11905: 0xC572,
+ 33310 - 11905: 0xCEE8,
+ 33311 - 11905: 0xD6DB,
+ 33312 - 11905: 0xC573,
+ 33313 - 11905: 0xF4AD,
+ 33314 - 11905: 0xF4AE,
+ 33315 - 11905: 0xF4AF,
+ 33316 - 11905: 0xC574,
+ 33317 - 11905: 0xC575,
+ 33318 - 11905: 0xC576,
+ 33319 - 11905: 0xC577,
+ 33320 - 11905: 0xF4B2,
+ 33321 - 11905: 0xC578,
+ 33322 - 11905: 0xBABD,
+ 33323 - 11905: 0xF4B3,
+ 33324 - 11905: 0xB0E3,
+ 33325 - 11905: 0xF4B0,
+ 33326 - 11905: 0xC579,
+ 33327 - 11905: 0xF4B1,
+ 33328 - 11905: 0xBDA2,
+ 33329 - 11905: 0xB2D5,
+ 33330 - 11905: 0xC57A,
+ 33331 - 11905: 0xF4B6,
+ 33332 - 11905: 0xF4B7,
+ 33333 - 11905: 0xB6E6,
+ 33334 - 11905: 0xB2B0,
+ 33335 - 11905: 0xCFCF,
+ 33336 - 11905: 0xF4B4,
+ 33337 - 11905: 0xB4AC,
+ 33338 - 11905: 0xC57B,
+ 33339 - 11905: 0xF4B5,
+ 33340 - 11905: 0xC57C,
+ 33341 - 11905: 0xC57D,
+ 33342 - 11905: 0xF4B8,
+ 33343 - 11905: 0xC57E,
+ 33344 - 11905: 0xC580,
+ 33345 - 11905: 0xC581,
+ 33346 - 11905: 0xC582,
+ 33347 - 11905: 0xC583,
+ 33348 - 11905: 0xF4B9,
+ 33349 - 11905: 0xC584,
+ 33350 - 11905: 0xC585,
+ 33351 - 11905: 0xCDA7,
+ 33352 - 11905: 0xC586,
+ 33353 - 11905: 0xF4BA,
+ 33354 - 11905: 0xC587,
+ 33355 - 11905: 0xF4BB,
+ 33356 - 11905: 0xC588,
+ 33357 - 11905: 0xC589,
+ 33358 - 11905: 0xC58A,
+ 33359 - 11905: 0xF4BC,
+ 33360 - 11905: 0xC58B,
+ 33361 - 11905: 0xC58C,
+ 33362 - 11905: 0xC58D,
+ 33363 - 11905: 0xC58E,
+ 33364 - 11905: 0xC58F,
+ 33365 - 11905: 0xC590,
+ 33366 - 11905: 0xC591,
+ 33367 - 11905: 0xC592,
+ 33368 - 11905: 0xCBD2,
+ 33369 - 11905: 0xC593,
+ 33370 - 11905: 0xF4BD,
+ 33371 - 11905: 0xC594,
+ 33372 - 11905: 0xC595,
+ 33373 - 11905: 0xC596,
+ 33374 - 11905: 0xC597,
+ 33375 - 11905: 0xF4BE,
+ 33376 - 11905: 0xC598,
+ 33377 - 11905: 0xC599,
+ 33378 - 11905: 0xC59A,
+ 33379 - 11905: 0xC59B,
+ 33380 - 11905: 0xC59C,
+ 33381 - 11905: 0xC59D,
+ 33382 - 11905: 0xC59E,
+ 33383 - 11905: 0xC59F,
+ 33384 - 11905: 0xF4BF,
+ 33385 - 11905: 0xC5A0,
+ 33386 - 11905: 0xC640,
+ 33387 - 11905: 0xC641,
+ 33388 - 11905: 0xC642,
+ 33389 - 11905: 0xC643,
+ 33390 - 11905: 0xF4DE,
+ 33391 - 11905: 0xC1BC,
+ 33392 - 11905: 0xBCE8,
+ 33393 - 11905: 0xC644,
+ 33394 - 11905: 0xC9AB,
+ 33395 - 11905: 0xD1DE,
+ 33396 - 11905: 0xE5F5,
+ 33397 - 11905: 0xC645,
+ 33398 - 11905: 0xC646,
+ 33399 - 11905: 0xC647,
+ 33400 - 11905: 0xC648,
+ 33401 - 11905: 0xDCB3,
+ 33402 - 11905: 0xD2D5,
+ 33403 - 11905: 0xC649,
+ 33404 - 11905: 0xC64A,
+ 33405 - 11905: 0xDCB4,
+ 33406 - 11905: 0xB0AC,
+ 33407 - 11905: 0xDCB5,
+ 33408 - 11905: 0xC64B,
+ 33409 - 11905: 0xC64C,
+ 33410 - 11905: 0xBDDA,
+ 33411 - 11905: 0xC64D,
+ 33412 - 11905: 0xDCB9,
+ 33413 - 11905: 0xC64E,
+ 33414 - 11905: 0xC64F,
+ 33415 - 11905: 0xC650,
+ 33416 - 11905: 0xD8C2,
+ 33417 - 11905: 0xC651,
+ 33418 - 11905: 0xDCB7,
+ 33419 - 11905: 0xD3F3,
+ 33420 - 11905: 0xC652,
+ 33421 - 11905: 0xC9D6,
+ 33422 - 11905: 0xDCBA,
+ 33423 - 11905: 0xDCB6,
+ 33424 - 11905: 0xC653,
+ 33425 - 11905: 0xDCBB,
+ 33426 - 11905: 0xC3A2,
+ 33427 - 11905: 0xC654,
+ 33428 - 11905: 0xC655,
+ 33429 - 11905: 0xC656,
+ 33430 - 11905: 0xC657,
+ 33431 - 11905: 0xDCBC,
+ 33432 - 11905: 0xDCC5,
+ 33433 - 11905: 0xDCBD,
+ 33434 - 11905: 0xC658,
+ 33435 - 11905: 0xC659,
+ 33436 - 11905: 0xCEDF,
+ 33437 - 11905: 0xD6A5,
+ 33438 - 11905: 0xC65A,
+ 33439 - 11905: 0xDCCF,
+ 33440 - 11905: 0xC65B,
+ 33441 - 11905: 0xDCCD,
+ 33442 - 11905: 0xC65C,
+ 33443 - 11905: 0xC65D,
+ 33444 - 11905: 0xDCD2,
+ 33445 - 11905: 0xBDE6,
+ 33446 - 11905: 0xC2AB,
+ 33447 - 11905: 0xC65E,
+ 33448 - 11905: 0xDCB8,
+ 33449 - 11905: 0xDCCB,
+ 33450 - 11905: 0xDCCE,
+ 33451 - 11905: 0xDCBE,
+ 33452 - 11905: 0xB7D2,
+ 33453 - 11905: 0xB0C5,
+ 33454 - 11905: 0xDCC7,
+ 33455 - 11905: 0xD0BE,
+ 33456 - 11905: 0xDCC1,
+ 33457 - 11905: 0xBBA8,
+ 33458 - 11905: 0xC65F,
+ 33459 - 11905: 0xB7BC,
+ 33460 - 11905: 0xDCCC,
+ 33461 - 11905: 0xC660,
+ 33462 - 11905: 0xC661,
+ 33463 - 11905: 0xDCC6,
+ 33464 - 11905: 0xDCBF,
+ 33465 - 11905: 0xC7DB,
+ 33466 - 11905: 0xC662,
+ 33467 - 11905: 0xC663,
+ 33468 - 11905: 0xC664,
+ 33469 - 11905: 0xD1BF,
+ 33470 - 11905: 0xDCC0,
+ 33471 - 11905: 0xC665,
+ 33472 - 11905: 0xC666,
+ 33473 - 11905: 0xDCCA,
+ 33474 - 11905: 0xC667,
+ 33475 - 11905: 0xC668,
+ 33476 - 11905: 0xDCD0,
+ 33477 - 11905: 0xC669,
+ 33478 - 11905: 0xC66A,
+ 33479 - 11905: 0xCEAD,
+ 33480 - 11905: 0xDCC2,
+ 33481 - 11905: 0xC66B,
+ 33482 - 11905: 0xDCC3,
+ 33483 - 11905: 0xDCC8,
+ 33484 - 11905: 0xDCC9,
+ 33485 - 11905: 0xB2D4,
+ 33486 - 11905: 0xDCD1,
+ 33487 - 11905: 0xCBD5,
+ 33488 - 11905: 0xC66C,
+ 33489 - 11905: 0xD4B7,
+ 33490 - 11905: 0xDCDB,
+ 33491 - 11905: 0xDCDF,
+ 33492 - 11905: 0xCCA6,
+ 33493 - 11905: 0xDCE6,
+ 33494 - 11905: 0xC66D,
+ 33495 - 11905: 0xC3E7,
+ 33496 - 11905: 0xDCDC,
+ 33497 - 11905: 0xC66E,
+ 33498 - 11905: 0xC66F,
+ 33499 - 11905: 0xBFC1,
+ 33500 - 11905: 0xDCD9,
+ 33501 - 11905: 0xC670,
+ 33502 - 11905: 0xB0FA,
+ 33503 - 11905: 0xB9B6,
+ 33504 - 11905: 0xDCE5,
+ 33505 - 11905: 0xDCD3,
+ 33506 - 11905: 0xC671,
+ 33507 - 11905: 0xDCC4,
+ 33508 - 11905: 0xDCD6,
+ 33509 - 11905: 0xC8F4,
+ 33510 - 11905: 0xBFE0,
+ 33511 - 11905: 0xC672,
+ 33512 - 11905: 0xC673,
+ 33513 - 11905: 0xC674,
+ 33514 - 11905: 0xC675,
+ 33515 - 11905: 0xC9BB,
+ 33516 - 11905: 0xC676,
+ 33517 - 11905: 0xC677,
+ 33518 - 11905: 0xC678,
+ 33519 - 11905: 0xB1BD,
+ 33520 - 11905: 0xC679,
+ 33521 - 11905: 0xD3A2,
+ 33522 - 11905: 0xC67A,
+ 33523 - 11905: 0xC67B,
+ 33524 - 11905: 0xDCDA,
+ 33525 - 11905: 0xC67C,
+ 33526 - 11905: 0xC67D,
+ 33527 - 11905: 0xDCD5,
+ 33528 - 11905: 0xC67E,
+ 33529 - 11905: 0xC6BB,
+ 33530 - 11905: 0xC680,
+ 33531 - 11905: 0xDCDE,
+ 33532 - 11905: 0xC681,
+ 33533 - 11905: 0xC682,
+ 33534 - 11905: 0xC683,
+ 33535 - 11905: 0xC684,
+ 33536 - 11905: 0xC685,
+ 33537 - 11905: 0xD7C2,
+ 33538 - 11905: 0xC3AF,
+ 33539 - 11905: 0xB7B6,
+ 33540 - 11905: 0xC7D1,
+ 33541 - 11905: 0xC3A9,
+ 33542 - 11905: 0xDCE2,
+ 33543 - 11905: 0xDCD8,
+ 33544 - 11905: 0xDCEB,
+ 33545 - 11905: 0xDCD4,
+ 33546 - 11905: 0xC686,
+ 33547 - 11905: 0xC687,
+ 33548 - 11905: 0xDCDD,
+ 33549 - 11905: 0xC688,
+ 33550 - 11905: 0xBEA5,
+ 33551 - 11905: 0xDCD7,
+ 33552 - 11905: 0xC689,
+ 33553 - 11905: 0xDCE0,
+ 33554 - 11905: 0xC68A,
+ 33555 - 11905: 0xC68B,
+ 33556 - 11905: 0xDCE3,
+ 33557 - 11905: 0xDCE4,
+ 33558 - 11905: 0xC68C,
+ 33559 - 11905: 0xDCF8,
+ 33560 - 11905: 0xC68D,
+ 33561 - 11905: 0xC68E,
+ 33562 - 11905: 0xDCE1,
+ 33563 - 11905: 0xDDA2,
+ 33564 - 11905: 0xDCE7,
+ 33565 - 11905: 0xC68F,
+ 33566 - 11905: 0xC690,
+ 33567 - 11905: 0xC691,
+ 33568 - 11905: 0xC692,
+ 33569 - 11905: 0xC693,
+ 33570 - 11905: 0xC694,
+ 33571 - 11905: 0xC695,
+ 33572 - 11905: 0xC696,
+ 33573 - 11905: 0xC697,
+ 33574 - 11905: 0xC698,
+ 33575 - 11905: 0xBCEB,
+ 33576 - 11905: 0xB4C4,
+ 33577 - 11905: 0xC699,
+ 33578 - 11905: 0xC69A,
+ 33579 - 11905: 0xC3A3,
+ 33580 - 11905: 0xB2E7,
+ 33581 - 11905: 0xDCFA,
+ 33582 - 11905: 0xC69B,
+ 33583 - 11905: 0xDCF2,
+ 33584 - 11905: 0xC69C,
+ 33585 - 11905: 0xDCEF,
+ 33586 - 11905: 0xC69D,
+ 33587 - 11905: 0xDCFC,
+ 33588 - 11905: 0xDCEE,
+ 33589 - 11905: 0xD2F0,
+ 33590 - 11905: 0xB2E8,
+ 33591 - 11905: 0xC69E,
+ 33592 - 11905: 0xC8D7,
+ 33593 - 11905: 0xC8E3,
+ 33594 - 11905: 0xDCFB,
+ 33595 - 11905: 0xC69F,
+ 33596 - 11905: 0xDCED,
+ 33597 - 11905: 0xC6A0,
+ 33598 - 11905: 0xC740,
+ 33599 - 11905: 0xC741,
+ 33600 - 11905: 0xDCF7,
+ 33601 - 11905: 0xC742,
+ 33602 - 11905: 0xC743,
+ 33603 - 11905: 0xDCF5,
+ 33604 - 11905: 0xC744,
+ 33605 - 11905: 0xC745,
+ 33606 - 11905: 0xBEA3,
+ 33607 - 11905: 0xDCF4,
+ 33608 - 11905: 0xC746,
+ 33609 - 11905: 0xB2DD,
+ 33610 - 11905: 0xC747,
+ 33611 - 11905: 0xC748,
+ 33612 - 11905: 0xC749,
+ 33613 - 11905: 0xC74A,
+ 33614 - 11905: 0xC74B,
+ 33615 - 11905: 0xDCF3,
+ 33616 - 11905: 0xBCF6,
+ 33617 - 11905: 0xDCE8,
+ 33618 - 11905: 0xBBC4,
+ 33619 - 11905: 0xC74C,
+ 33620 - 11905: 0xC0F3,
+ 33621 - 11905: 0xC74D,
+ 33622 - 11905: 0xC74E,
+ 33623 - 11905: 0xC74F,
+ 33624 - 11905: 0xC750,
+ 33625 - 11905: 0xC751,
+ 33626 - 11905: 0xBCD4,
+ 33627 - 11905: 0xDCE9,
+ 33628 - 11905: 0xDCEA,
+ 33629 - 11905: 0xC752,
+ 33630 - 11905: 0xDCF1,
+ 33631 - 11905: 0xDCF6,
+ 33632 - 11905: 0xDCF9,
+ 33633 - 11905: 0xB5B4,
+ 33634 - 11905: 0xC753,
+ 33635 - 11905: 0xC8D9,
+ 33636 - 11905: 0xBBE7,
+ 33637 - 11905: 0xDCFE,
+ 33638 - 11905: 0xDCFD,
+ 33639 - 11905: 0xD3AB,
+ 33640 - 11905: 0xDDA1,
+ 33641 - 11905: 0xDDA3,
+ 33642 - 11905: 0xDDA5,
+ 33643 - 11905: 0xD2F1,
+ 33644 - 11905: 0xDDA4,
+ 33645 - 11905: 0xDDA6,
+ 33646 - 11905: 0xDDA7,
+ 33647 - 11905: 0xD2A9,
+ 33648 - 11905: 0xC754,
+ 33649 - 11905: 0xC755,
+ 33650 - 11905: 0xC756,
+ 33651 - 11905: 0xC757,
+ 33652 - 11905: 0xC758,
+ 33653 - 11905: 0xC759,
+ 33654 - 11905: 0xC75A,
+ 33655 - 11905: 0xBAC9,
+ 33656 - 11905: 0xDDA9,
+ 33657 - 11905: 0xC75B,
+ 33658 - 11905: 0xC75C,
+ 33659 - 11905: 0xDDB6,
+ 33660 - 11905: 0xDDB1,
+ 33661 - 11905: 0xDDB4,
+ 33662 - 11905: 0xC75D,
+ 33663 - 11905: 0xC75E,
+ 33664 - 11905: 0xC75F,
+ 33665 - 11905: 0xC760,
+ 33666 - 11905: 0xC761,
+ 33667 - 11905: 0xC762,
+ 33668 - 11905: 0xC763,
+ 33669 - 11905: 0xDDB0,
+ 33670 - 11905: 0xC6CE,
+ 33671 - 11905: 0xC764,
+ 33672 - 11905: 0xC765,
+ 33673 - 11905: 0xC0F2,
+ 33674 - 11905: 0xC766,
+ 33675 - 11905: 0xC767,
+ 33676 - 11905: 0xC768,
+ 33677 - 11905: 0xC769,
+ 33678 - 11905: 0xC9AF,
+ 33679 - 11905: 0xC76A,
+ 33680 - 11905: 0xC76B,
+ 33681 - 11905: 0xC76C,
+ 33682 - 11905: 0xDCEC,
+ 33683 - 11905: 0xDDAE,
+ 33684 - 11905: 0xC76D,
+ 33685 - 11905: 0xC76E,
+ 33686 - 11905: 0xC76F,
+ 33687 - 11905: 0xC770,
+ 33688 - 11905: 0xDDB7,
+ 33689 - 11905: 0xC771,
+ 33690 - 11905: 0xC772,
+ 33691 - 11905: 0xDCF0,
+ 33692 - 11905: 0xDDAF,
+ 33693 - 11905: 0xC773,
+ 33694 - 11905: 0xDDB8,
+ 33695 - 11905: 0xC774,
+ 33696 - 11905: 0xDDAC,
+ 33697 - 11905: 0xC775,
+ 33698 - 11905: 0xC776,
+ 33699 - 11905: 0xC777,
+ 33700 - 11905: 0xC778,
+ 33701 - 11905: 0xC779,
+ 33702 - 11905: 0xC77A,
+ 33703 - 11905: 0xC77B,
+ 33704 - 11905: 0xDDB9,
+ 33705 - 11905: 0xDDB3,
+ 33706 - 11905: 0xDDAD,
+ 33707 - 11905: 0xC4AA,
+ 33708 - 11905: 0xC77C,
+ 33709 - 11905: 0xC77D,
+ 33710 - 11905: 0xC77E,
+ 33711 - 11905: 0xC780,
+ 33712 - 11905: 0xDDA8,
+ 33713 - 11905: 0xC0B3,
+ 33714 - 11905: 0xC1AB,
+ 33715 - 11905: 0xDDAA,
+ 33716 - 11905: 0xDDAB,
+ 33717 - 11905: 0xC781,
+ 33718 - 11905: 0xDDB2,
+ 33719 - 11905: 0xBBF1,
+ 33720 - 11905: 0xDDB5,
+ 33721 - 11905: 0xD3A8,
+ 33722 - 11905: 0xDDBA,
+ 33723 - 11905: 0xC782,
+ 33724 - 11905: 0xDDBB,
+ 33725 - 11905: 0xC3A7,
+ 33726 - 11905: 0xC783,
+ 33727 - 11905: 0xC784,
+ 33728 - 11905: 0xDDD2,
+ 33729 - 11905: 0xDDBC,
+ 33730 - 11905: 0xC785,
+ 33731 - 11905: 0xC786,
+ 33732 - 11905: 0xC787,
+ 33733 - 11905: 0xDDD1,
+ 33734 - 11905: 0xC788,
+ 33735 - 11905: 0xB9BD,
+ 33736 - 11905: 0xC789,
+ 33737 - 11905: 0xC78A,
+ 33738 - 11905: 0xBED5,
+ 33739 - 11905: 0xC78B,
+ 33740 - 11905: 0xBEFA,
+ 33741 - 11905: 0xC78C,
+ 33742 - 11905: 0xC78D,
+ 33743 - 11905: 0xBACA,
+ 33744 - 11905: 0xC78E,
+ 33745 - 11905: 0xC78F,
+ 33746 - 11905: 0xC790,
+ 33747 - 11905: 0xC791,
+ 33748 - 11905: 0xDDCA,
+ 33749 - 11905: 0xC792,
+ 33750 - 11905: 0xDDC5,
+ 33751 - 11905: 0xC793,
+ 33752 - 11905: 0xDDBF,
+ 33753 - 11905: 0xC794,
+ 33754 - 11905: 0xC795,
+ 33755 - 11905: 0xC796,
+ 33756 - 11905: 0xB2CB,
+ 33757 - 11905: 0xDDC3,
+ 33758 - 11905: 0xC797,
+ 33759 - 11905: 0xDDCB,
+ 33760 - 11905: 0xB2A4,
+ 33761 - 11905: 0xDDD5,
+ 33762 - 11905: 0xC798,
+ 33763 - 11905: 0xC799,
+ 33764 - 11905: 0xC79A,
+ 33765 - 11905: 0xDDBE,
+ 33766 - 11905: 0xC79B,
+ 33767 - 11905: 0xC79C,
+ 33768 - 11905: 0xC79D,
+ 33769 - 11905: 0xC6D0,
+ 33770 - 11905: 0xDDD0,
+ 33771 - 11905: 0xC79E,
+ 33772 - 11905: 0xC79F,
+ 33773 - 11905: 0xC7A0,
+ 33774 - 11905: 0xC840,
+ 33775 - 11905: 0xC841,
+ 33776 - 11905: 0xDDD4,
+ 33777 - 11905: 0xC1E2,
+ 33778 - 11905: 0xB7C6,
+ 33779 - 11905: 0xC842,
+ 33780 - 11905: 0xC843,
+ 33781 - 11905: 0xC844,
+ 33782 - 11905: 0xC845,
+ 33783 - 11905: 0xC846,
+ 33784 - 11905: 0xDDCE,
+ 33785 - 11905: 0xDDCF,
+ 33786 - 11905: 0xC847,
+ 33787 - 11905: 0xC848,
+ 33788 - 11905: 0xC849,
+ 33789 - 11905: 0xDDC4,
+ 33790 - 11905: 0xC84A,
+ 33791 - 11905: 0xC84B,
+ 33792 - 11905: 0xC84C,
+ 33793 - 11905: 0xDDBD,
+ 33794 - 11905: 0xC84D,
+ 33795 - 11905: 0xDDCD,
+ 33796 - 11905: 0xCCD1,
+ 33797 - 11905: 0xC84E,
+ 33798 - 11905: 0xDDC9,
+ 33799 - 11905: 0xC84F,
+ 33800 - 11905: 0xC850,
+ 33801 - 11905: 0xC851,
+ 33802 - 11905: 0xC852,
+ 33803 - 11905: 0xDDC2,
+ 33804 - 11905: 0xC3C8,
+ 33805 - 11905: 0xC6BC,
+ 33806 - 11905: 0xCEAE,
+ 33807 - 11905: 0xDDCC,
+ 33808 - 11905: 0xC853,
+ 33809 - 11905: 0xDDC8,
+ 33810 - 11905: 0xC854,
+ 33811 - 11905: 0xC855,
+ 33812 - 11905: 0xC856,
+ 33813 - 11905: 0xC857,
+ 33814 - 11905: 0xC858,
+ 33815 - 11905: 0xC859,
+ 33816 - 11905: 0xDDC1,
+ 33817 - 11905: 0xC85A,
+ 33818 - 11905: 0xC85B,
+ 33819 - 11905: 0xC85C,
+ 33820 - 11905: 0xDDC6,
+ 33821 - 11905: 0xC2DC,
+ 33822 - 11905: 0xC85D,
+ 33823 - 11905: 0xC85E,
+ 33824 - 11905: 0xC85F,
+ 33825 - 11905: 0xC860,
+ 33826 - 11905: 0xC861,
+ 33827 - 11905: 0xC862,
+ 33828 - 11905: 0xD3A9,
+ 33829 - 11905: 0xD3AA,
+ 33830 - 11905: 0xDDD3,
+ 33831 - 11905: 0xCFF4,
+ 33832 - 11905: 0xC8F8,
+ 33833 - 11905: 0xC863,
+ 33834 - 11905: 0xC864,
+ 33835 - 11905: 0xC865,
+ 33836 - 11905: 0xC866,
+ 33837 - 11905: 0xC867,
+ 33838 - 11905: 0xC868,
+ 33839 - 11905: 0xC869,
+ 33840 - 11905: 0xC86A,
+ 33841 - 11905: 0xDDE6,
+ 33842 - 11905: 0xC86B,
+ 33843 - 11905: 0xC86C,
+ 33844 - 11905: 0xC86D,
+ 33845 - 11905: 0xC86E,
+ 33846 - 11905: 0xC86F,
+ 33847 - 11905: 0xC870,
+ 33848 - 11905: 0xDDC7,
+ 33849 - 11905: 0xC871,
+ 33850 - 11905: 0xC872,
+ 33851 - 11905: 0xC873,
+ 33852 - 11905: 0xDDE0,
+ 33853 - 11905: 0xC2E4,
+ 33854 - 11905: 0xC874,
+ 33855 - 11905: 0xC875,
+ 33856 - 11905: 0xC876,
+ 33857 - 11905: 0xC877,
+ 33858 - 11905: 0xC878,
+ 33859 - 11905: 0xC879,
+ 33860 - 11905: 0xC87A,
+ 33861 - 11905: 0xC87B,
+ 33862 - 11905: 0xDDE1,
+ 33863 - 11905: 0xC87C,
+ 33864 - 11905: 0xC87D,
+ 33865 - 11905: 0xC87E,
+ 33866 - 11905: 0xC880,
+ 33867 - 11905: 0xC881,
+ 33868 - 11905: 0xC882,
+ 33869 - 11905: 0xC883,
+ 33870 - 11905: 0xC884,
+ 33871 - 11905: 0xC885,
+ 33872 - 11905: 0xC886,
+ 33873 - 11905: 0xDDD7,
+ 33874 - 11905: 0xC887,
+ 33875 - 11905: 0xC888,
+ 33876 - 11905: 0xC889,
+ 33877 - 11905: 0xC88A,
+ 33878 - 11905: 0xC88B,
+ 33879 - 11905: 0xD6F8,
+ 33880 - 11905: 0xC88C,
+ 33881 - 11905: 0xDDD9,
+ 33882 - 11905: 0xDDD8,
+ 33883 - 11905: 0xB8F0,
+ 33884 - 11905: 0xDDD6,
+ 33885 - 11905: 0xC88D,
+ 33886 - 11905: 0xC88E,
+ 33887 - 11905: 0xC88F,
+ 33888 - 11905: 0xC890,
+ 33889 - 11905: 0xC6CF,
+ 33890 - 11905: 0xC891,
+ 33891 - 11905: 0xB6AD,
+ 33892 - 11905: 0xC892,
+ 33893 - 11905: 0xC893,
+ 33894 - 11905: 0xC894,
+ 33895 - 11905: 0xC895,
+ 33896 - 11905: 0xC896,
+ 33897 - 11905: 0xDDE2,
+ 33898 - 11905: 0xC897,
+ 33899 - 11905: 0xBAF9,
+ 33900 - 11905: 0xD4E1,
+ 33901 - 11905: 0xDDE7,
+ 33902 - 11905: 0xC898,
+ 33903 - 11905: 0xC899,
+ 33904 - 11905: 0xC89A,
+ 33905 - 11905: 0xB4D0,
+ 33906 - 11905: 0xC89B,
+ 33907 - 11905: 0xDDDA,
+ 33908 - 11905: 0xC89C,
+ 33909 - 11905: 0xBFFB,
+ 33910 - 11905: 0xDDE3,
+ 33911 - 11905: 0xC89D,
+ 33912 - 11905: 0xDDDF,
+ 33913 - 11905: 0xC89E,
+ 33914 - 11905: 0xDDDD,
+ 33915 - 11905: 0xC89F,
+ 33916 - 11905: 0xC8A0,
+ 33917 - 11905: 0xC940,
+ 33918 - 11905: 0xC941,
+ 33919 - 11905: 0xC942,
+ 33920 - 11905: 0xC943,
+ 33921 - 11905: 0xC944,
+ 33922 - 11905: 0xB5D9,
+ 33923 - 11905: 0xC945,
+ 33924 - 11905: 0xC946,
+ 33925 - 11905: 0xC947,
+ 33926 - 11905: 0xC948,
+ 33927 - 11905: 0xDDDB,
+ 33928 - 11905: 0xDDDC,
+ 33929 - 11905: 0xDDDE,
+ 33930 - 11905: 0xC949,
+ 33931 - 11905: 0xBDAF,
+ 33932 - 11905: 0xDDE4,
+ 33933 - 11905: 0xC94A,
+ 33934 - 11905: 0xDDE5,
+ 33935 - 11905: 0xC94B,
+ 33936 - 11905: 0xC94C,
+ 33937 - 11905: 0xC94D,
+ 33938 - 11905: 0xC94E,
+ 33939 - 11905: 0xC94F,
+ 33940 - 11905: 0xC950,
+ 33941 - 11905: 0xC951,
+ 33942 - 11905: 0xC952,
+ 33943 - 11905: 0xDDF5,
+ 33944 - 11905: 0xC953,
+ 33945 - 11905: 0xC3C9,
+ 33946 - 11905: 0xC954,
+ 33947 - 11905: 0xC955,
+ 33948 - 11905: 0xCBE2,
+ 33949 - 11905: 0xC956,
+ 33950 - 11905: 0xC957,
+ 33951 - 11905: 0xC958,
+ 33952 - 11905: 0xC959,
+ 33953 - 11905: 0xDDF2,
+ 33954 - 11905: 0xC95A,
+ 33955 - 11905: 0xC95B,
+ 33956 - 11905: 0xC95C,
+ 33957 - 11905: 0xC95D,
+ 33958 - 11905: 0xC95E,
+ 33959 - 11905: 0xC95F,
+ 33960 - 11905: 0xC960,
+ 33961 - 11905: 0xC961,
+ 33962 - 11905: 0xC962,
+ 33963 - 11905: 0xC963,
+ 33964 - 11905: 0xC964,
+ 33965 - 11905: 0xC965,
+ 33966 - 11905: 0xC966,
+ 33967 - 11905: 0xD8E1,
+ 33968 - 11905: 0xC967,
+ 33969 - 11905: 0xC968,
+ 33970 - 11905: 0xC6D1,
+ 33971 - 11905: 0xC969,
+ 33972 - 11905: 0xDDF4,
+ 33973 - 11905: 0xC96A,
+ 33974 - 11905: 0xC96B,
+ 33975 - 11905: 0xC96C,
+ 33976 - 11905: 0xD5F4,
+ 33977 - 11905: 0xDDF3,
+ 33978 - 11905: 0xDDF0,
+ 33979 - 11905: 0xC96D,
+ 33980 - 11905: 0xC96E,
+ 33981 - 11905: 0xDDEC,
+ 33982 - 11905: 0xC96F,
+ 33983 - 11905: 0xDDEF,
+ 33984 - 11905: 0xC970,
+ 33985 - 11905: 0xDDE8,
+ 33986 - 11905: 0xC971,
+ 33987 - 11905: 0xC972,
+ 33988 - 11905: 0xD0EE,
+ 33989 - 11905: 0xC973,
+ 33990 - 11905: 0xC974,
+ 33991 - 11905: 0xC975,
+ 33992 - 11905: 0xC976,
+ 33993 - 11905: 0xC8D8,
+ 33994 - 11905: 0xDDEE,
+ 33995 - 11905: 0xC977,
+ 33996 - 11905: 0xC978,
+ 33997 - 11905: 0xDDE9,
+ 33998 - 11905: 0xC979,
+ 33999 - 11905: 0xC97A,
+ 34000 - 11905: 0xDDEA,
+ 34001 - 11905: 0xCBF2,
+ 34002 - 11905: 0xC97B,
+ 34003 - 11905: 0xDDED,
+ 34004 - 11905: 0xC97C,
+ 34005 - 11905: 0xC97D,
+ 34006 - 11905: 0xB1CD,
+ 34007 - 11905: 0xC97E,
+ 34008 - 11905: 0xC980,
+ 34009 - 11905: 0xC981,
+ 34010 - 11905: 0xC982,
+ 34011 - 11905: 0xC983,
+ 34012 - 11905: 0xC984,
+ 34013 - 11905: 0xC0B6,
+ 34014 - 11905: 0xC985,
+ 34015 - 11905: 0xBCBB,
+ 34016 - 11905: 0xDDF1,
+ 34017 - 11905: 0xC986,
+ 34018 - 11905: 0xC987,
+ 34019 - 11905: 0xDDF7,
+ 34020 - 11905: 0xC988,
+ 34021 - 11905: 0xDDF6,
+ 34022 - 11905: 0xDDEB,
+ 34023 - 11905: 0xC989,
+ 34024 - 11905: 0xC98A,
+ 34025 - 11905: 0xC98B,
+ 34026 - 11905: 0xC98C,
+ 34027 - 11905: 0xC98D,
+ 34028 - 11905: 0xC5EE,
+ 34029 - 11905: 0xC98E,
+ 34030 - 11905: 0xC98F,
+ 34031 - 11905: 0xC990,
+ 34032 - 11905: 0xDDFB,
+ 34033 - 11905: 0xC991,
+ 34034 - 11905: 0xC992,
+ 34035 - 11905: 0xC993,
+ 34036 - 11905: 0xC994,
+ 34037 - 11905: 0xC995,
+ 34038 - 11905: 0xC996,
+ 34039 - 11905: 0xC997,
+ 34040 - 11905: 0xC998,
+ 34041 - 11905: 0xC999,
+ 34042 - 11905: 0xC99A,
+ 34043 - 11905: 0xC99B,
+ 34044 - 11905: 0xDEA4,
+ 34045 - 11905: 0xC99C,
+ 34046 - 11905: 0xC99D,
+ 34047 - 11905: 0xDEA3,
+ 34048 - 11905: 0xC99E,
+ 34049 - 11905: 0xC99F,
+ 34050 - 11905: 0xC9A0,
+ 34051 - 11905: 0xCA40,
+ 34052 - 11905: 0xCA41,
+ 34053 - 11905: 0xCA42,
+ 34054 - 11905: 0xCA43,
+ 34055 - 11905: 0xCA44,
+ 34056 - 11905: 0xCA45,
+ 34057 - 11905: 0xCA46,
+ 34058 - 11905: 0xCA47,
+ 34059 - 11905: 0xCA48,
+ 34060 - 11905: 0xDDF8,
+ 34061 - 11905: 0xCA49,
+ 34062 - 11905: 0xCA4A,
+ 34063 - 11905: 0xCA4B,
+ 34064 - 11905: 0xCA4C,
+ 34065 - 11905: 0xC3EF,
+ 34066 - 11905: 0xCA4D,
+ 34067 - 11905: 0xC2FB,
+ 34068 - 11905: 0xCA4E,
+ 34069 - 11905: 0xCA4F,
+ 34070 - 11905: 0xCA50,
+ 34071 - 11905: 0xD5E1,
+ 34072 - 11905: 0xCA51,
+ 34073 - 11905: 0xCA52,
+ 34074 - 11905: 0xCEB5,
+ 34075 - 11905: 0xCA53,
+ 34076 - 11905: 0xCA54,
+ 34077 - 11905: 0xCA55,
+ 34078 - 11905: 0xCA56,
+ 34079 - 11905: 0xDDFD,
+ 34080 - 11905: 0xCA57,
+ 34081 - 11905: 0xB2CC,
+ 34082 - 11905: 0xCA58,
+ 34083 - 11905: 0xCA59,
+ 34084 - 11905: 0xCA5A,
+ 34085 - 11905: 0xCA5B,
+ 34086 - 11905: 0xCA5C,
+ 34087 - 11905: 0xCA5D,
+ 34088 - 11905: 0xCA5E,
+ 34089 - 11905: 0xCA5F,
+ 34090 - 11905: 0xCA60,
+ 34091 - 11905: 0xC4E8,
+ 34092 - 11905: 0xCADF,
+ 34093 - 11905: 0xCA61,
+ 34094 - 11905: 0xCA62,
+ 34095 - 11905: 0xCA63,
+ 34096 - 11905: 0xCA64,
+ 34097 - 11905: 0xCA65,
+ 34098 - 11905: 0xCA66,
+ 34099 - 11905: 0xCA67,
+ 34100 - 11905: 0xCA68,
+ 34101 - 11905: 0xCA69,
+ 34102 - 11905: 0xCA6A,
+ 34103 - 11905: 0xC7BE,
+ 34104 - 11905: 0xDDFA,
+ 34105 - 11905: 0xDDFC,
+ 34106 - 11905: 0xDDFE,
+ 34107 - 11905: 0xDEA2,
+ 34108 - 11905: 0xB0AA,
+ 34109 - 11905: 0xB1CE,
+ 34110 - 11905: 0xCA6B,
+ 34111 - 11905: 0xCA6C,
+ 34112 - 11905: 0xCA6D,
+ 34113 - 11905: 0xCA6E,
+ 34114 - 11905: 0xCA6F,
+ 34115 - 11905: 0xDEAC,
+ 34116 - 11905: 0xCA70,
+ 34117 - 11905: 0xCA71,
+ 34118 - 11905: 0xCA72,
+ 34119 - 11905: 0xCA73,
+ 34120 - 11905: 0xDEA6,
+ 34121 - 11905: 0xBDB6,
+ 34122 - 11905: 0xC8EF,
+ 34123 - 11905: 0xCA74,
+ 34124 - 11905: 0xCA75,
+ 34125 - 11905: 0xCA76,
+ 34126 - 11905: 0xCA77,
+ 34127 - 11905: 0xCA78,
+ 34128 - 11905: 0xCA79,
+ 34129 - 11905: 0xCA7A,
+ 34130 - 11905: 0xCA7B,
+ 34131 - 11905: 0xCA7C,
+ 34132 - 11905: 0xCA7D,
+ 34133 - 11905: 0xCA7E,
+ 34134 - 11905: 0xDEA1,
+ 34135 - 11905: 0xCA80,
+ 34136 - 11905: 0xCA81,
+ 34137 - 11905: 0xDEA5,
+ 34138 - 11905: 0xCA82,
+ 34139 - 11905: 0xCA83,
+ 34140 - 11905: 0xCA84,
+ 34141 - 11905: 0xCA85,
+ 34142 - 11905: 0xDEA9,
+ 34143 - 11905: 0xCA86,
+ 34144 - 11905: 0xCA87,
+ 34145 - 11905: 0xCA88,
+ 34146 - 11905: 0xCA89,
+ 34147 - 11905: 0xCA8A,
+ 34148 - 11905: 0xDEA8,
+ 34149 - 11905: 0xCA8B,
+ 34150 - 11905: 0xCA8C,
+ 34151 - 11905: 0xCA8D,
+ 34152 - 11905: 0xDEA7,
+ 34153 - 11905: 0xCA8E,
+ 34154 - 11905: 0xCA8F,
+ 34155 - 11905: 0xCA90,
+ 34156 - 11905: 0xCA91,
+ 34157 - 11905: 0xCA92,
+ 34158 - 11905: 0xCA93,
+ 34159 - 11905: 0xCA94,
+ 34160 - 11905: 0xCA95,
+ 34161 - 11905: 0xCA96,
+ 34162 - 11905: 0xDEAD,
+ 34163 - 11905: 0xCA97,
+ 34164 - 11905: 0xD4CC,
+ 34165 - 11905: 0xCA98,
+ 34166 - 11905: 0xCA99,
+ 34167 - 11905: 0xCA9A,
+ 34168 - 11905: 0xCA9B,
+ 34169 - 11905: 0xDEB3,
+ 34170 - 11905: 0xDEAA,
+ 34171 - 11905: 0xDEAE,
+ 34172 - 11905: 0xCA9C,
+ 34173 - 11905: 0xCA9D,
+ 34174 - 11905: 0xC0D9,
+ 34175 - 11905: 0xCA9E,
+ 34176 - 11905: 0xCA9F,
+ 34177 - 11905: 0xCAA0,
+ 34178 - 11905: 0xCB40,
+ 34179 - 11905: 0xCB41,
+ 34180 - 11905: 0xB1A1,
+ 34181 - 11905: 0xDEB6,
+ 34182 - 11905: 0xCB42,
+ 34183 - 11905: 0xDEB1,
+ 34184 - 11905: 0xCB43,
+ 34185 - 11905: 0xCB44,
+ 34186 - 11905: 0xCB45,
+ 34187 - 11905: 0xCB46,
+ 34188 - 11905: 0xCB47,
+ 34189 - 11905: 0xCB48,
+ 34190 - 11905: 0xCB49,
+ 34191 - 11905: 0xDEB2,
+ 34192 - 11905: 0xCB4A,
+ 34193 - 11905: 0xCB4B,
+ 34194 - 11905: 0xCB4C,
+ 34195 - 11905: 0xCB4D,
+ 34196 - 11905: 0xCB4E,
+ 34197 - 11905: 0xCB4F,
+ 34198 - 11905: 0xCB50,
+ 34199 - 11905: 0xCB51,
+ 34200 - 11905: 0xCB52,
+ 34201 - 11905: 0xCB53,
+ 34202 - 11905: 0xCB54,
+ 34203 - 11905: 0xD1A6,
+ 34204 - 11905: 0xDEB5,
+ 34205 - 11905: 0xCB55,
+ 34206 - 11905: 0xCB56,
+ 34207 - 11905: 0xCB57,
+ 34208 - 11905: 0xCB58,
+ 34209 - 11905: 0xCB59,
+ 34210 - 11905: 0xCB5A,
+ 34211 - 11905: 0xCB5B,
+ 34212 - 11905: 0xDEAF,
+ 34213 - 11905: 0xCB5C,
+ 34214 - 11905: 0xCB5D,
+ 34215 - 11905: 0xCB5E,
+ 34216 - 11905: 0xDEB0,
+ 34217 - 11905: 0xCB5F,
+ 34218 - 11905: 0xD0BD,
+ 34219 - 11905: 0xCB60,
+ 34220 - 11905: 0xCB61,
+ 34221 - 11905: 0xCB62,
+ 34222 - 11905: 0xDEB4,
+ 34223 - 11905: 0xCAED,
+ 34224 - 11905: 0xDEB9,
+ 34225 - 11905: 0xCB63,
+ 34226 - 11905: 0xCB64,
+ 34227 - 11905: 0xCB65,
+ 34228 - 11905: 0xCB66,
+ 34229 - 11905: 0xCB67,
+ 34230 - 11905: 0xCB68,
+ 34231 - 11905: 0xDEB8,
+ 34232 - 11905: 0xCB69,
+ 34233 - 11905: 0xDEB7,
+ 34234 - 11905: 0xCB6A,
+ 34235 - 11905: 0xCB6B,
+ 34236 - 11905: 0xCB6C,
+ 34237 - 11905: 0xCB6D,
+ 34238 - 11905: 0xCB6E,
+ 34239 - 11905: 0xCB6F,
+ 34240 - 11905: 0xCB70,
+ 34241 - 11905: 0xDEBB,
+ 34242 - 11905: 0xCB71,
+ 34243 - 11905: 0xCB72,
+ 34244 - 11905: 0xCB73,
+ 34245 - 11905: 0xCB74,
+ 34246 - 11905: 0xCB75,
+ 34247 - 11905: 0xCB76,
+ 34248 - 11905: 0xCB77,
+ 34249 - 11905: 0xBDE5,
+ 34250 - 11905: 0xCB78,
+ 34251 - 11905: 0xCB79,
+ 34252 - 11905: 0xCB7A,
+ 34253 - 11905: 0xCB7B,
+ 34254 - 11905: 0xCB7C,
+ 34255 - 11905: 0xB2D8,
+ 34256 - 11905: 0xC3EA,
+ 34257 - 11905: 0xCB7D,
+ 34258 - 11905: 0xCB7E,
+ 34259 - 11905: 0xDEBA,
+ 34260 - 11905: 0xCB80,
+ 34261 - 11905: 0xC5BA,
+ 34262 - 11905: 0xCB81,
+ 34263 - 11905: 0xCB82,
+ 34264 - 11905: 0xCB83,
+ 34265 - 11905: 0xCB84,
+ 34266 - 11905: 0xCB85,
+ 34267 - 11905: 0xCB86,
+ 34268 - 11905: 0xDEBC,
+ 34269 - 11905: 0xCB87,
+ 34270 - 11905: 0xCB88,
+ 34271 - 11905: 0xCB89,
+ 34272 - 11905: 0xCB8A,
+ 34273 - 11905: 0xCB8B,
+ 34274 - 11905: 0xCB8C,
+ 34275 - 11905: 0xCB8D,
+ 34276 - 11905: 0xCCD9,
+ 34277 - 11905: 0xCB8E,
+ 34278 - 11905: 0xCB8F,
+ 34279 - 11905: 0xCB90,
+ 34280 - 11905: 0xCB91,
+ 34281 - 11905: 0xB7AA,
+ 34282 - 11905: 0xCB92,
+ 34283 - 11905: 0xCB93,
+ 34284 - 11905: 0xCB94,
+ 34285 - 11905: 0xCB95,
+ 34286 - 11905: 0xCB96,
+ 34287 - 11905: 0xCB97,
+ 34288 - 11905: 0xCB98,
+ 34289 - 11905: 0xCB99,
+ 34290 - 11905: 0xCB9A,
+ 34291 - 11905: 0xCB9B,
+ 34292 - 11905: 0xCB9C,
+ 34293 - 11905: 0xCB9D,
+ 34294 - 11905: 0xCB9E,
+ 34295 - 11905: 0xCB9F,
+ 34296 - 11905: 0xCBA0,
+ 34297 - 11905: 0xCC40,
+ 34298 - 11905: 0xCC41,
+ 34299 - 11905: 0xD4E5,
+ 34300 - 11905: 0xCC42,
+ 34301 - 11905: 0xCC43,
+ 34302 - 11905: 0xCC44,
+ 34303 - 11905: 0xDEBD,
+ 34304 - 11905: 0xCC45,
+ 34305 - 11905: 0xCC46,
+ 34306 - 11905: 0xCC47,
+ 34307 - 11905: 0xCC48,
+ 34308 - 11905: 0xCC49,
+ 34309 - 11905: 0xDEBF,
+ 34310 - 11905: 0xCC4A,
+ 34311 - 11905: 0xCC4B,
+ 34312 - 11905: 0xCC4C,
+ 34313 - 11905: 0xCC4D,
+ 34314 - 11905: 0xCC4E,
+ 34315 - 11905: 0xCC4F,
+ 34316 - 11905: 0xCC50,
+ 34317 - 11905: 0xCC51,
+ 34318 - 11905: 0xCC52,
+ 34319 - 11905: 0xCC53,
+ 34320 - 11905: 0xCC54,
+ 34321 - 11905: 0xC4A2,
+ 34322 - 11905: 0xCC55,
+ 34323 - 11905: 0xCC56,
+ 34324 - 11905: 0xCC57,
+ 34325 - 11905: 0xCC58,
+ 34326 - 11905: 0xDEC1,
+ 34327 - 11905: 0xCC59,
+ 34328 - 11905: 0xCC5A,
+ 34329 - 11905: 0xCC5B,
+ 34330 - 11905: 0xCC5C,
+ 34331 - 11905: 0xCC5D,
+ 34332 - 11905: 0xCC5E,
+ 34333 - 11905: 0xCC5F,
+ 34334 - 11905: 0xCC60,
+ 34335 - 11905: 0xCC61,
+ 34336 - 11905: 0xCC62,
+ 34337 - 11905: 0xCC63,
+ 34338 - 11905: 0xCC64,
+ 34339 - 11905: 0xCC65,
+ 34340 - 11905: 0xCC66,
+ 34341 - 11905: 0xCC67,
+ 34342 - 11905: 0xCC68,
+ 34343 - 11905: 0xDEBE,
+ 34344 - 11905: 0xCC69,
+ 34345 - 11905: 0xDEC0,
+ 34346 - 11905: 0xCC6A,
+ 34347 - 11905: 0xCC6B,
+ 34348 - 11905: 0xCC6C,
+ 34349 - 11905: 0xCC6D,
+ 34350 - 11905: 0xCC6E,
+ 34351 - 11905: 0xCC6F,
+ 34352 - 11905: 0xCC70,
+ 34353 - 11905: 0xCC71,
+ 34354 - 11905: 0xCC72,
+ 34355 - 11905: 0xCC73,
+ 34356 - 11905: 0xCC74,
+ 34357 - 11905: 0xCC75,
+ 34358 - 11905: 0xCC76,
+ 34359 - 11905: 0xCC77,
+ 34360 - 11905: 0xD5BA,
+ 34361 - 11905: 0xCC78,
+ 34362 - 11905: 0xCC79,
+ 34363 - 11905: 0xCC7A,
+ 34364 - 11905: 0xDEC2,
+ 34365 - 11905: 0xCC7B,
+ 34366 - 11905: 0xCC7C,
+ 34367 - 11905: 0xCC7D,
+ 34368 - 11905: 0xCC7E,
+ 34369 - 11905: 0xCC80,
+ 34370 - 11905: 0xCC81,
+ 34371 - 11905: 0xCC82,
+ 34372 - 11905: 0xCC83,
+ 34373 - 11905: 0xCC84,
+ 34374 - 11905: 0xCC85,
+ 34375 - 11905: 0xCC86,
+ 34376 - 11905: 0xCC87,
+ 34377 - 11905: 0xCC88,
+ 34378 - 11905: 0xCC89,
+ 34379 - 11905: 0xCC8A,
+ 34380 - 11905: 0xCC8B,
+ 34381 - 11905: 0xF2AE,
+ 34382 - 11905: 0xBBA2,
+ 34383 - 11905: 0xC2B2,
+ 34384 - 11905: 0xC5B0,
+ 34385 - 11905: 0xC2C7,
+ 34386 - 11905: 0xCC8C,
+ 34387 - 11905: 0xCC8D,
+ 34388 - 11905: 0xF2AF,
+ 34389 - 11905: 0xCC8E,
+ 34390 - 11905: 0xCC8F,
+ 34391 - 11905: 0xCC90,
+ 34392 - 11905: 0xCC91,
+ 34393 - 11905: 0xCC92,
+ 34394 - 11905: 0xD0E9,
+ 34395 - 11905: 0xCC93,
+ 34396 - 11905: 0xCC94,
+ 34397 - 11905: 0xCC95,
+ 34398 - 11905: 0xD3DD,
+ 34399 - 11905: 0xCC96,
+ 34400 - 11905: 0xCC97,
+ 34401 - 11905: 0xCC98,
+ 34402 - 11905: 0xEBBD,
+ 34403 - 11905: 0xCC99,
+ 34404 - 11905: 0xCC9A,
+ 34405 - 11905: 0xCC9B,
+ 34406 - 11905: 0xCC9C,
+ 34407 - 11905: 0xCC9D,
+ 34408 - 11905: 0xCC9E,
+ 34409 - 11905: 0xCC9F,
+ 34410 - 11905: 0xCCA0,
+ 34411 - 11905: 0xB3E6,
+ 34412 - 11905: 0xF2B0,
+ 34413 - 11905: 0xCD40,
+ 34414 - 11905: 0xF2B1,
+ 34415 - 11905: 0xCD41,
+ 34416 - 11905: 0xCD42,
+ 34417 - 11905: 0xCAAD,
+ 34418 - 11905: 0xCD43,
+ 34419 - 11905: 0xCD44,
+ 34420 - 11905: 0xCD45,
+ 34421 - 11905: 0xCD46,
+ 34422 - 11905: 0xCD47,
+ 34423 - 11905: 0xCD48,
+ 34424 - 11905: 0xCD49,
+ 34425 - 11905: 0xBAE7,
+ 34426 - 11905: 0xF2B3,
+ 34427 - 11905: 0xF2B5,
+ 34428 - 11905: 0xF2B4,
+ 34429 - 11905: 0xCBE4,
+ 34430 - 11905: 0xCFBA,
+ 34431 - 11905: 0xF2B2,
+ 34432 - 11905: 0xCAB4,
+ 34433 - 11905: 0xD2CF,
+ 34434 - 11905: 0xC2EC,
+ 34435 - 11905: 0xCD4A,
+ 34436 - 11905: 0xCD4B,
+ 34437 - 11905: 0xCD4C,
+ 34438 - 11905: 0xCD4D,
+ 34439 - 11905: 0xCD4E,
+ 34440 - 11905: 0xCD4F,
+ 34441 - 11905: 0xCD50,
+ 34442 - 11905: 0xCEC3,
+ 34443 - 11905: 0xF2B8,
+ 34444 - 11905: 0xB0F6,
+ 34445 - 11905: 0xF2B7,
+ 34446 - 11905: 0xCD51,
+ 34447 - 11905: 0xCD52,
+ 34448 - 11905: 0xCD53,
+ 34449 - 11905: 0xCD54,
+ 34450 - 11905: 0xCD55,
+ 34451 - 11905: 0xF2BE,
+ 34452 - 11905: 0xCD56,
+ 34453 - 11905: 0xB2CF,
+ 34454 - 11905: 0xCD57,
+ 34455 - 11905: 0xCD58,
+ 34456 - 11905: 0xCD59,
+ 34457 - 11905: 0xCD5A,
+ 34458 - 11905: 0xCD5B,
+ 34459 - 11905: 0xCD5C,
+ 34460 - 11905: 0xD1C1,
+ 34461 - 11905: 0xF2BA,
+ 34462 - 11905: 0xCD5D,
+ 34463 - 11905: 0xCD5E,
+ 34464 - 11905: 0xCD5F,
+ 34465 - 11905: 0xCD60,
+ 34466 - 11905: 0xCD61,
+ 34467 - 11905: 0xF2BC,
+ 34468 - 11905: 0xD4E9,
+ 34469 - 11905: 0xCD62,
+ 34470 - 11905: 0xCD63,
+ 34471 - 11905: 0xF2BB,
+ 34472 - 11905: 0xF2B6,
+ 34473 - 11905: 0xF2BF,
+ 34474 - 11905: 0xF2BD,
+ 34475 - 11905: 0xCD64,
+ 34476 - 11905: 0xF2B9,
+ 34477 - 11905: 0xCD65,
+ 34478 - 11905: 0xCD66,
+ 34479 - 11905: 0xF2C7,
+ 34480 - 11905: 0xF2C4,
+ 34481 - 11905: 0xF2C6,
+ 34482 - 11905: 0xCD67,
+ 34483 - 11905: 0xCD68,
+ 34484 - 11905: 0xF2CA,
+ 34485 - 11905: 0xF2C2,
+ 34486 - 11905: 0xF2C0,
+ 34487 - 11905: 0xCD69,
+ 34488 - 11905: 0xCD6A,
+ 34489 - 11905: 0xCD6B,
+ 34490 - 11905: 0xF2C5,
+ 34491 - 11905: 0xCD6C,
+ 34492 - 11905: 0xCD6D,
+ 34493 - 11905: 0xCD6E,
+ 34494 - 11905: 0xCD6F,
+ 34495 - 11905: 0xCD70,
+ 34496 - 11905: 0xD6FB,
+ 34497 - 11905: 0xCD71,
+ 34498 - 11905: 0xCD72,
+ 34499 - 11905: 0xCD73,
+ 34500 - 11905: 0xF2C1,
+ 34501 - 11905: 0xCD74,
+ 34502 - 11905: 0xC7F9,
+ 34503 - 11905: 0xC9DF,
+ 34504 - 11905: 0xCD75,
+ 34505 - 11905: 0xF2C8,
+ 34506 - 11905: 0xB9C6,
+ 34507 - 11905: 0xB5B0,
+ 34508 - 11905: 0xCD76,
+ 34509 - 11905: 0xCD77,
+ 34510 - 11905: 0xF2C3,
+ 34511 - 11905: 0xF2C9,
+ 34512 - 11905: 0xF2D0,
+ 34513 - 11905: 0xF2D6,
+ 34514 - 11905: 0xCD78,
+ 34515 - 11905: 0xCD79,
+ 34516 - 11905: 0xBBD7,
+ 34517 - 11905: 0xCD7A,
+ 34518 - 11905: 0xCD7B,
+ 34519 - 11905: 0xCD7C,
+ 34520 - 11905: 0xF2D5,
+ 34521 - 11905: 0xCDDC,
+ 34522 - 11905: 0xCD7D,
+ 34523 - 11905: 0xD6EB,
+ 34524 - 11905: 0xCD7E,
+ 34525 - 11905: 0xCD80,
+ 34526 - 11905: 0xF2D2,
+ 34527 - 11905: 0xF2D4,
+ 34528 - 11905: 0xCD81,
+ 34529 - 11905: 0xCD82,
+ 34530 - 11905: 0xCD83,
+ 34531 - 11905: 0xCD84,
+ 34532 - 11905: 0xB8F2,
+ 34533 - 11905: 0xCD85,
+ 34534 - 11905: 0xCD86,
+ 34535 - 11905: 0xCD87,
+ 34536 - 11905: 0xCD88,
+ 34537 - 11905: 0xF2CB,
+ 34538 - 11905: 0xCD89,
+ 34539 - 11905: 0xCD8A,
+ 34540 - 11905: 0xCD8B,
+ 34541 - 11905: 0xF2CE,
+ 34542 - 11905: 0xC2F9,
+ 34543 - 11905: 0xCD8C,
+ 34544 - 11905: 0xD5DD,
+ 34545 - 11905: 0xF2CC,
+ 34546 - 11905: 0xF2CD,
+ 34547 - 11905: 0xF2CF,
+ 34548 - 11905: 0xF2D3,
+ 34549 - 11905: 0xCD8D,
+ 34550 - 11905: 0xCD8E,
+ 34551 - 11905: 0xCD8F,
+ 34552 - 11905: 0xF2D9,
+ 34553 - 11905: 0xD3BC,
+ 34554 - 11905: 0xCD90,
+ 34555 - 11905: 0xCD91,
+ 34556 - 11905: 0xCD92,
+ 34557 - 11905: 0xCD93,
+ 34558 - 11905: 0xB6EA,
+ 34559 - 11905: 0xCD94,
+ 34560 - 11905: 0xCAF1,
+ 34561 - 11905: 0xCD95,
+ 34562 - 11905: 0xB7E4,
+ 34563 - 11905: 0xF2D7,
+ 34564 - 11905: 0xCD96,
+ 34565 - 11905: 0xCD97,
+ 34566 - 11905: 0xCD98,
+ 34567 - 11905: 0xF2D8,
+ 34568 - 11905: 0xF2DA,
+ 34569 - 11905: 0xF2DD,
+ 34570 - 11905: 0xF2DB,
+ 34571 - 11905: 0xCD99,
+ 34572 - 11905: 0xCD9A,
+ 34573 - 11905: 0xF2DC,
+ 34574 - 11905: 0xCD9B,
+ 34575 - 11905: 0xCD9C,
+ 34576 - 11905: 0xCD9D,
+ 34577 - 11905: 0xCD9E,
+ 34578 - 11905: 0xD1D1,
+ 34579 - 11905: 0xF2D1,
+ 34580 - 11905: 0xCD9F,
+ 34581 - 11905: 0xCDC9,
+ 34582 - 11905: 0xCDA0,
+ 34583 - 11905: 0xCECF,
+ 34584 - 11905: 0xD6A9,
+ 34585 - 11905: 0xCE40,
+ 34586 - 11905: 0xF2E3,
+ 34587 - 11905: 0xCE41,
+ 34588 - 11905: 0xC3DB,
+ 34589 - 11905: 0xCE42,
+ 34590 - 11905: 0xF2E0,
+ 34591 - 11905: 0xCE43,
+ 34592 - 11905: 0xCE44,
+ 34593 - 11905: 0xC0AF,
+ 34594 - 11905: 0xF2EC,
+ 34595 - 11905: 0xF2DE,
+ 34596 - 11905: 0xCE45,
+ 34597 - 11905: 0xF2E1,
+ 34598 - 11905: 0xCE46,
+ 34599 - 11905: 0xCE47,
+ 34600 - 11905: 0xCE48,
+ 34601 - 11905: 0xF2E8,
+ 34602 - 11905: 0xCE49,
+ 34603 - 11905: 0xCE4A,
+ 34604 - 11905: 0xCE4B,
+ 34605 - 11905: 0xCE4C,
+ 34606 - 11905: 0xF2E2,
+ 34607 - 11905: 0xCE4D,
+ 34608 - 11905: 0xCE4E,
+ 34609 - 11905: 0xF2E7,
+ 34610 - 11905: 0xCE4F,
+ 34611 - 11905: 0xCE50,
+ 34612 - 11905: 0xF2E6,
+ 34613 - 11905: 0xCE51,
+ 34614 - 11905: 0xCE52,
+ 34615 - 11905: 0xF2E9,
+ 34616 - 11905: 0xCE53,
+ 34617 - 11905: 0xCE54,
+ 34618 - 11905: 0xCE55,
+ 34619 - 11905: 0xF2DF,
+ 34620 - 11905: 0xCE56,
+ 34621 - 11905: 0xCE57,
+ 34622 - 11905: 0xF2E4,
+ 34623 - 11905: 0xF2EA,
+ 34624 - 11905: 0xCE58,
+ 34625 - 11905: 0xCE59,
+ 34626 - 11905: 0xCE5A,
+ 34627 - 11905: 0xCE5B,
+ 34628 - 11905: 0xCE5C,
+ 34629 - 11905: 0xCE5D,
+ 34630 - 11905: 0xCE5E,
+ 34631 - 11905: 0xD3AC,
+ 34632 - 11905: 0xF2E5,
+ 34633 - 11905: 0xB2F5,
+ 34634 - 11905: 0xCE5F,
+ 34635 - 11905: 0xCE60,
+ 34636 - 11905: 0xF2F2,
+ 34637 - 11905: 0xCE61,
+ 34638 - 11905: 0xD0AB,
+ 34639 - 11905: 0xCE62,
+ 34640 - 11905: 0xCE63,
+ 34641 - 11905: 0xCE64,
+ 34642 - 11905: 0xCE65,
+ 34643 - 11905: 0xF2F5,
+ 34644 - 11905: 0xCE66,
+ 34645 - 11905: 0xCE67,
+ 34646 - 11905: 0xCE68,
+ 34647 - 11905: 0xBBC8,
+ 34648 - 11905: 0xCE69,
+ 34649 - 11905: 0xF2F9,
+ 34650 - 11905: 0xCE6A,
+ 34651 - 11905: 0xCE6B,
+ 34652 - 11905: 0xCE6C,
+ 34653 - 11905: 0xCE6D,
+ 34654 - 11905: 0xCE6E,
+ 34655 - 11905: 0xCE6F,
+ 34656 - 11905: 0xF2F0,
+ 34657 - 11905: 0xCE70,
+ 34658 - 11905: 0xCE71,
+ 34659 - 11905: 0xF2F6,
+ 34660 - 11905: 0xF2F8,
+ 34661 - 11905: 0xF2FA,
+ 34662 - 11905: 0xCE72,
+ 34663 - 11905: 0xCE73,
+ 34664 - 11905: 0xCE74,
+ 34665 - 11905: 0xCE75,
+ 34666 - 11905: 0xCE76,
+ 34667 - 11905: 0xCE77,
+ 34668 - 11905: 0xCE78,
+ 34669 - 11905: 0xCE79,
+ 34670 - 11905: 0xF2F3,
+ 34671 - 11905: 0xCE7A,
+ 34672 - 11905: 0xF2F1,
+ 34673 - 11905: 0xCE7B,
+ 34674 - 11905: 0xCE7C,
+ 34675 - 11905: 0xCE7D,
+ 34676 - 11905: 0xBAFB,
+ 34677 - 11905: 0xCE7E,
+ 34678 - 11905: 0xB5FB,
+ 34679 - 11905: 0xCE80,
+ 34680 - 11905: 0xCE81,
+ 34681 - 11905: 0xCE82,
+ 34682 - 11905: 0xCE83,
+ 34683 - 11905: 0xF2EF,
+ 34684 - 11905: 0xF2F7,
+ 34685 - 11905: 0xF2ED,
+ 34686 - 11905: 0xF2EE,
+ 34687 - 11905: 0xCE84,
+ 34688 - 11905: 0xCE85,
+ 34689 - 11905: 0xCE86,
+ 34690 - 11905: 0xF2EB,
+ 34691 - 11905: 0xF3A6,
+ 34692 - 11905: 0xCE87,
+ 34693 - 11905: 0xF3A3,
+ 34694 - 11905: 0xCE88,
+ 34695 - 11905: 0xCE89,
+ 34696 - 11905: 0xF3A2,
+ 34697 - 11905: 0xCE8A,
+ 34698 - 11905: 0xCE8B,
+ 34699 - 11905: 0xF2F4,
+ 34700 - 11905: 0xCE8C,
+ 34701 - 11905: 0xC8DA,
+ 34702 - 11905: 0xCE8D,
+ 34703 - 11905: 0xCE8E,
+ 34704 - 11905: 0xCE8F,
+ 34705 - 11905: 0xCE90,
+ 34706 - 11905: 0xCE91,
+ 34707 - 11905: 0xF2FB,
+ 34708 - 11905: 0xCE92,
+ 34709 - 11905: 0xCE93,
+ 34710 - 11905: 0xCE94,
+ 34711 - 11905: 0xF3A5,
+ 34712 - 11905: 0xCE95,
+ 34713 - 11905: 0xCE96,
+ 34714 - 11905: 0xCE97,
+ 34715 - 11905: 0xCE98,
+ 34716 - 11905: 0xCE99,
+ 34717 - 11905: 0xCE9A,
+ 34718 - 11905: 0xCE9B,
+ 34719 - 11905: 0xC3F8,
+ 34720 - 11905: 0xCE9C,
+ 34721 - 11905: 0xCE9D,
+ 34722 - 11905: 0xCE9E,
+ 34723 - 11905: 0xCE9F,
+ 34724 - 11905: 0xCEA0,
+ 34725 - 11905: 0xCF40,
+ 34726 - 11905: 0xCF41,
+ 34727 - 11905: 0xCF42,
+ 34728 - 11905: 0xF2FD,
+ 34729 - 11905: 0xCF43,
+ 34730 - 11905: 0xCF44,
+ 34731 - 11905: 0xF3A7,
+ 34732 - 11905: 0xF3A9,
+ 34733 - 11905: 0xF3A4,
+ 34734 - 11905: 0xCF45,
+ 34735 - 11905: 0xF2FC,
+ 34736 - 11905: 0xCF46,
+ 34737 - 11905: 0xCF47,
+ 34738 - 11905: 0xCF48,
+ 34739 - 11905: 0xF3AB,
+ 34740 - 11905: 0xCF49,
+ 34741 - 11905: 0xF3AA,
+ 34742 - 11905: 0xCF4A,
+ 34743 - 11905: 0xCF4B,
+ 34744 - 11905: 0xCF4C,
+ 34745 - 11905: 0xCF4D,
+ 34746 - 11905: 0xC2DD,
+ 34747 - 11905: 0xCF4E,
+ 34748 - 11905: 0xCF4F,
+ 34749 - 11905: 0xF3AE,
+ 34750 - 11905: 0xCF50,
+ 34751 - 11905: 0xCF51,
+ 34752 - 11905: 0xF3B0,
+ 34753 - 11905: 0xCF52,
+ 34754 - 11905: 0xCF53,
+ 34755 - 11905: 0xCF54,
+ 34756 - 11905: 0xCF55,
+ 34757 - 11905: 0xCF56,
+ 34758 - 11905: 0xF3A1,
+ 34759 - 11905: 0xCF57,
+ 34760 - 11905: 0xCF58,
+ 34761 - 11905: 0xCF59,
+ 34762 - 11905: 0xF3B1,
+ 34763 - 11905: 0xF3AC,
+ 34764 - 11905: 0xCF5A,
+ 34765 - 11905: 0xCF5B,
+ 34766 - 11905: 0xCF5C,
+ 34767 - 11905: 0xCF5D,
+ 34768 - 11905: 0xCF5E,
+ 34769 - 11905: 0xF3AF,
+ 34770 - 11905: 0xF2FE,
+ 34771 - 11905: 0xF3AD,
+ 34772 - 11905: 0xCF5F,
+ 34773 - 11905: 0xCF60,
+ 34774 - 11905: 0xCF61,
+ 34775 - 11905: 0xCF62,
+ 34776 - 11905: 0xCF63,
+ 34777 - 11905: 0xCF64,
+ 34778 - 11905: 0xCF65,
+ 34779 - 11905: 0xF3B2,
+ 34780 - 11905: 0xCF66,
+ 34781 - 11905: 0xCF67,
+ 34782 - 11905: 0xCF68,
+ 34783 - 11905: 0xCF69,
+ 34784 - 11905: 0xF3B4,
+ 34785 - 11905: 0xCF6A,
+ 34786 - 11905: 0xCF6B,
+ 34787 - 11905: 0xCF6C,
+ 34788 - 11905: 0xCF6D,
+ 34789 - 11905: 0xF3A8,
+ 34790 - 11905: 0xCF6E,
+ 34791 - 11905: 0xCF6F,
+ 34792 - 11905: 0xCF70,
+ 34793 - 11905: 0xCF71,
+ 34794 - 11905: 0xF3B3,
+ 34795 - 11905: 0xCF72,
+ 34796 - 11905: 0xCF73,
+ 34797 - 11905: 0xCF74,
+ 34798 - 11905: 0xF3B5,
+ 34799 - 11905: 0xCF75,
+ 34800 - 11905: 0xCF76,
+ 34801 - 11905: 0xCF77,
+ 34802 - 11905: 0xCF78,
+ 34803 - 11905: 0xCF79,
+ 34804 - 11905: 0xCF7A,
+ 34805 - 11905: 0xCF7B,
+ 34806 - 11905: 0xCF7C,
+ 34807 - 11905: 0xCF7D,
+ 34808 - 11905: 0xCF7E,
+ 34809 - 11905: 0xD0B7,
+ 34810 - 11905: 0xCF80,
+ 34811 - 11905: 0xCF81,
+ 34812 - 11905: 0xCF82,
+ 34813 - 11905: 0xCF83,
+ 34814 - 11905: 0xF3B8,
+ 34815 - 11905: 0xCF84,
+ 34816 - 11905: 0xCF85,
+ 34817 - 11905: 0xCF86,
+ 34818 - 11905: 0xCF87,
+ 34819 - 11905: 0xD9F9,
+ 34820 - 11905: 0xCF88,
+ 34821 - 11905: 0xCF89,
+ 34822 - 11905: 0xCF8A,
+ 34823 - 11905: 0xCF8B,
+ 34824 - 11905: 0xCF8C,
+ 34825 - 11905: 0xCF8D,
+ 34826 - 11905: 0xF3B9,
+ 34827 - 11905: 0xCF8E,
+ 34828 - 11905: 0xCF8F,
+ 34829 - 11905: 0xCF90,
+ 34830 - 11905: 0xCF91,
+ 34831 - 11905: 0xCF92,
+ 34832 - 11905: 0xCF93,
+ 34833 - 11905: 0xCF94,
+ 34834 - 11905: 0xCF95,
+ 34835 - 11905: 0xF3B7,
+ 34836 - 11905: 0xCF96,
+ 34837 - 11905: 0xC8E4,
+ 34838 - 11905: 0xF3B6,
+ 34839 - 11905: 0xCF97,
+ 34840 - 11905: 0xCF98,
+ 34841 - 11905: 0xCF99,
+ 34842 - 11905: 0xCF9A,
+ 34843 - 11905: 0xF3BA,
+ 34844 - 11905: 0xCF9B,
+ 34845 - 11905: 0xCF9C,
+ 34846 - 11905: 0xCF9D,
+ 34847 - 11905: 0xCF9E,
+ 34848 - 11905: 0xCF9F,
+ 34849 - 11905: 0xF3BB,
+ 34850 - 11905: 0xB4C0,
+ 34851 - 11905: 0xCFA0,
+ 34852 - 11905: 0xD040,
+ 34853 - 11905: 0xD041,
+ 34854 - 11905: 0xD042,
+ 34855 - 11905: 0xD043,
+ 34856 - 11905: 0xD044,
+ 34857 - 11905: 0xD045,
+ 34858 - 11905: 0xD046,
+ 34859 - 11905: 0xD047,
+ 34860 - 11905: 0xD048,
+ 34861 - 11905: 0xD049,
+ 34862 - 11905: 0xD04A,
+ 34863 - 11905: 0xD04B,
+ 34864 - 11905: 0xD04C,
+ 34865 - 11905: 0xD04D,
+ 34866 - 11905: 0xEEC3,
+ 34867 - 11905: 0xD04E,
+ 34868 - 11905: 0xD04F,
+ 34869 - 11905: 0xD050,
+ 34870 - 11905: 0xD051,
+ 34871 - 11905: 0xD052,
+ 34872 - 11905: 0xD053,
+ 34873 - 11905: 0xF3BC,
+ 34874 - 11905: 0xD054,
+ 34875 - 11905: 0xD055,
+ 34876 - 11905: 0xF3BD,
+ 34877 - 11905: 0xD056,
+ 34878 - 11905: 0xD057,
+ 34879 - 11905: 0xD058,
+ 34880 - 11905: 0xD1AA,
+ 34881 - 11905: 0xD059,
+ 34882 - 11905: 0xD05A,
+ 34883 - 11905: 0xD05B,
+ 34884 - 11905: 0xF4AC,
+ 34885 - 11905: 0xD0C6,
+ 34886 - 11905: 0xD05C,
+ 34887 - 11905: 0xD05D,
+ 34888 - 11905: 0xD05E,
+ 34889 - 11905: 0xD05F,
+ 34890 - 11905: 0xD060,
+ 34891 - 11905: 0xD061,
+ 34892 - 11905: 0xD0D0,
+ 34893 - 11905: 0xD1DC,
+ 34894 - 11905: 0xD062,
+ 34895 - 11905: 0xD063,
+ 34896 - 11905: 0xD064,
+ 34897 - 11905: 0xD065,
+ 34898 - 11905: 0xD066,
+ 34899 - 11905: 0xD067,
+ 34900 - 11905: 0xCFCE,
+ 34901 - 11905: 0xD068,
+ 34902 - 11905: 0xD069,
+ 34903 - 11905: 0xBDD6,
+ 34904 - 11905: 0xD06A,
+ 34905 - 11905: 0xD1C3,
+ 34906 - 11905: 0xD06B,
+ 34907 - 11905: 0xD06C,
+ 34908 - 11905: 0xD06D,
+ 34909 - 11905: 0xD06E,
+ 34910 - 11905: 0xD06F,
+ 34911 - 11905: 0xD070,
+ 34912 - 11905: 0xD071,
+ 34913 - 11905: 0xBAE2,
+ 34914 - 11905: 0xE1E9,
+ 34915 - 11905: 0xD2C2,
+ 34916 - 11905: 0xF1C2,
+ 34917 - 11905: 0xB2B9,
+ 34918 - 11905: 0xD072,
+ 34919 - 11905: 0xD073,
+ 34920 - 11905: 0xB1ED,
+ 34921 - 11905: 0xF1C3,
+ 34922 - 11905: 0xD074,
+ 34923 - 11905: 0xC9C0,
+ 34924 - 11905: 0xB3C4,
+ 34925 - 11905: 0xD075,
+ 34926 - 11905: 0xD9F2,
+ 34927 - 11905: 0xD076,
+ 34928 - 11905: 0xCBA5,
+ 34929 - 11905: 0xD077,
+ 34930 - 11905: 0xF1C4,
+ 34931 - 11905: 0xD078,
+ 34932 - 11905: 0xD079,
+ 34933 - 11905: 0xD07A,
+ 34934 - 11905: 0xD07B,
+ 34935 - 11905: 0xD6D4,
+ 34936 - 11905: 0xD07C,
+ 34937 - 11905: 0xD07D,
+ 34938 - 11905: 0xD07E,
+ 34939 - 11905: 0xD080,
+ 34940 - 11905: 0xD081,
+ 34941 - 11905: 0xF1C5,
+ 34942 - 11905: 0xF4C0,
+ 34943 - 11905: 0xF1C6,
+ 34944 - 11905: 0xD082,
+ 34945 - 11905: 0xD4AC,
+ 34946 - 11905: 0xF1C7,
+ 34947 - 11905: 0xD083,
+ 34948 - 11905: 0xB0C0,
+ 34949 - 11905: 0xF4C1,
+ 34950 - 11905: 0xD084,
+ 34951 - 11905: 0xD085,
+ 34952 - 11905: 0xF4C2,
+ 34953 - 11905: 0xD086,
+ 34954 - 11905: 0xD087,
+ 34955 - 11905: 0xB4FC,
+ 34956 - 11905: 0xD088,
+ 34957 - 11905: 0xC5DB,
+ 34958 - 11905: 0xD089,
+ 34959 - 11905: 0xD08A,
+ 34960 - 11905: 0xD08B,
+ 34961 - 11905: 0xD08C,
+ 34962 - 11905: 0xCCBB,
+ 34963 - 11905: 0xD08D,
+ 34964 - 11905: 0xD08E,
+ 34965 - 11905: 0xD08F,
+ 34966 - 11905: 0xD0E4,
+ 34967 - 11905: 0xD090,
+ 34968 - 11905: 0xD091,
+ 34969 - 11905: 0xD092,
+ 34970 - 11905: 0xD093,
+ 34971 - 11905: 0xD094,
+ 34972 - 11905: 0xCDE0,
+ 34973 - 11905: 0xD095,
+ 34974 - 11905: 0xD096,
+ 34975 - 11905: 0xD097,
+ 34976 - 11905: 0xD098,
+ 34977 - 11905: 0xD099,
+ 34978 - 11905: 0xF1C8,
+ 34979 - 11905: 0xD09A,
+ 34980 - 11905: 0xD9F3,
+ 34981 - 11905: 0xD09B,
+ 34982 - 11905: 0xD09C,
+ 34983 - 11905: 0xD09D,
+ 34984 - 11905: 0xD09E,
+ 34985 - 11905: 0xD09F,
+ 34986 - 11905: 0xD0A0,
+ 34987 - 11905: 0xB1BB,
+ 34988 - 11905: 0xD140,
+ 34989 - 11905: 0xCFAE,
+ 34990 - 11905: 0xD141,
+ 34991 - 11905: 0xD142,
+ 34992 - 11905: 0xD143,
+ 34993 - 11905: 0xB8A4,
+ 34994 - 11905: 0xD144,
+ 34995 - 11905: 0xD145,
+ 34996 - 11905: 0xD146,
+ 34997 - 11905: 0xD147,
+ 34998 - 11905: 0xD148,
+ 34999 - 11905: 0xF1CA,
+ 35000 - 11905: 0xD149,
+ 35001 - 11905: 0xD14A,
+ 35002 - 11905: 0xD14B,
+ 35003 - 11905: 0xD14C,
+ 35004 - 11905: 0xF1CB,
+ 35005 - 11905: 0xD14D,
+ 35006 - 11905: 0xD14E,
+ 35007 - 11905: 0xD14F,
+ 35008 - 11905: 0xD150,
+ 35009 - 11905: 0xB2C3,
+ 35010 - 11905: 0xC1D1,
+ 35011 - 11905: 0xD151,
+ 35012 - 11905: 0xD152,
+ 35013 - 11905: 0xD7B0,
+ 35014 - 11905: 0xF1C9,
+ 35015 - 11905: 0xD153,
+ 35016 - 11905: 0xD154,
+ 35017 - 11905: 0xF1CC,
+ 35018 - 11905: 0xD155,
+ 35019 - 11905: 0xD156,
+ 35020 - 11905: 0xD157,
+ 35021 - 11905: 0xD158,
+ 35022 - 11905: 0xF1CE,
+ 35023 - 11905: 0xD159,
+ 35024 - 11905: 0xD15A,
+ 35025 - 11905: 0xD15B,
+ 35026 - 11905: 0xD9F6,
+ 35027 - 11905: 0xD15C,
+ 35028 - 11905: 0xD2E1,
+ 35029 - 11905: 0xD4A3,
+ 35030 - 11905: 0xD15D,
+ 35031 - 11905: 0xD15E,
+ 35032 - 11905: 0xF4C3,
+ 35033 - 11905: 0xC8B9,
+ 35034 - 11905: 0xD15F,
+ 35035 - 11905: 0xD160,
+ 35036 - 11905: 0xD161,
+ 35037 - 11905: 0xD162,
+ 35038 - 11905: 0xD163,
+ 35039 - 11905: 0xF4C4,
+ 35040 - 11905: 0xD164,
+ 35041 - 11905: 0xD165,
+ 35042 - 11905: 0xF1CD,
+ 35043 - 11905: 0xF1CF,
+ 35044 - 11905: 0xBFE3,
+ 35045 - 11905: 0xF1D0,
+ 35046 - 11905: 0xD166,
+ 35047 - 11905: 0xD167,
+ 35048 - 11905: 0xF1D4,
+ 35049 - 11905: 0xD168,
+ 35050 - 11905: 0xD169,
+ 35051 - 11905: 0xD16A,
+ 35052 - 11905: 0xD16B,
+ 35053 - 11905: 0xD16C,
+ 35054 - 11905: 0xD16D,
+ 35055 - 11905: 0xD16E,
+ 35056 - 11905: 0xF1D6,
+ 35057 - 11905: 0xF1D1,
+ 35058 - 11905: 0xD16F,
+ 35059 - 11905: 0xC9D1,
+ 35060 - 11905: 0xC5E1,
+ 35061 - 11905: 0xD170,
+ 35062 - 11905: 0xD171,
+ 35063 - 11905: 0xD172,
+ 35064 - 11905: 0xC2E3,
+ 35065 - 11905: 0xB9FC,
+ 35066 - 11905: 0xD173,
+ 35067 - 11905: 0xD174,
+ 35068 - 11905: 0xF1D3,
+ 35069 - 11905: 0xD175,
+ 35070 - 11905: 0xF1D5,
+ 35071 - 11905: 0xD176,
+ 35072 - 11905: 0xD177,
+ 35073 - 11905: 0xD178,
+ 35074 - 11905: 0xB9D3,
+ 35075 - 11905: 0xD179,
+ 35076 - 11905: 0xD17A,
+ 35077 - 11905: 0xD17B,
+ 35078 - 11905: 0xD17C,
+ 35079 - 11905: 0xD17D,
+ 35080 - 11905: 0xD17E,
+ 35081 - 11905: 0xD180,
+ 35082 - 11905: 0xF1DB,
+ 35083 - 11905: 0xD181,
+ 35084 - 11905: 0xD182,
+ 35085 - 11905: 0xD183,
+ 35086 - 11905: 0xD184,
+ 35087 - 11905: 0xD185,
+ 35088 - 11905: 0xBAD6,
+ 35089 - 11905: 0xD186,
+ 35090 - 11905: 0xB0FD,
+ 35091 - 11905: 0xF1D9,
+ 35092 - 11905: 0xD187,
+ 35093 - 11905: 0xD188,
+ 35094 - 11905: 0xD189,
+ 35095 - 11905: 0xD18A,
+ 35096 - 11905: 0xD18B,
+ 35097 - 11905: 0xF1D8,
+ 35098 - 11905: 0xF1D2,
+ 35099 - 11905: 0xF1DA,
+ 35100 - 11905: 0xD18C,
+ 35101 - 11905: 0xD18D,
+ 35102 - 11905: 0xD18E,
+ 35103 - 11905: 0xD18F,
+ 35104 - 11905: 0xD190,
+ 35105 - 11905: 0xF1D7,
+ 35106 - 11905: 0xD191,
+ 35107 - 11905: 0xD192,
+ 35108 - 11905: 0xD193,
+ 35109 - 11905: 0xC8EC,
+ 35110 - 11905: 0xD194,
+ 35111 - 11905: 0xD195,
+ 35112 - 11905: 0xD196,
+ 35113 - 11905: 0xD197,
+ 35114 - 11905: 0xCDCA,
+ 35115 - 11905: 0xF1DD,
+ 35116 - 11905: 0xD198,
+ 35117 - 11905: 0xD199,
+ 35118 - 11905: 0xD19A,
+ 35119 - 11905: 0xD19B,
+ 35120 - 11905: 0xE5BD,
+ 35121 - 11905: 0xD19C,
+ 35122 - 11905: 0xD19D,
+ 35123 - 11905: 0xD19E,
+ 35124 - 11905: 0xF1DC,
+ 35125 - 11905: 0xD19F,
+ 35126 - 11905: 0xF1DE,
+ 35127 - 11905: 0xD1A0,
+ 35128 - 11905: 0xD240,
+ 35129 - 11905: 0xD241,
+ 35130 - 11905: 0xD242,
+ 35131 - 11905: 0xD243,
+ 35132 - 11905: 0xD244,
+ 35133 - 11905: 0xD245,
+ 35134 - 11905: 0xD246,
+ 35135 - 11905: 0xD247,
+ 35136 - 11905: 0xD248,
+ 35137 - 11905: 0xF1DF,
+ 35138 - 11905: 0xD249,
+ 35139 - 11905: 0xD24A,
+ 35140 - 11905: 0xCFE5,
+ 35141 - 11905: 0xD24B,
+ 35142 - 11905: 0xD24C,
+ 35143 - 11905: 0xD24D,
+ 35144 - 11905: 0xD24E,
+ 35145 - 11905: 0xD24F,
+ 35146 - 11905: 0xD250,
+ 35147 - 11905: 0xD251,
+ 35148 - 11905: 0xD252,
+ 35149 - 11905: 0xD253,
+ 35150 - 11905: 0xD254,
+ 35151 - 11905: 0xD255,
+ 35152 - 11905: 0xD256,
+ 35153 - 11905: 0xD257,
+ 35154 - 11905: 0xD258,
+ 35155 - 11905: 0xD259,
+ 35156 - 11905: 0xD25A,
+ 35157 - 11905: 0xD25B,
+ 35158 - 11905: 0xD25C,
+ 35159 - 11905: 0xD25D,
+ 35160 - 11905: 0xD25E,
+ 35161 - 11905: 0xD25F,
+ 35162 - 11905: 0xD260,
+ 35163 - 11905: 0xD261,
+ 35164 - 11905: 0xD262,
+ 35165 - 11905: 0xD263,
+ 35166 - 11905: 0xF4C5,
+ 35167 - 11905: 0xBDF3,
+ 35168 - 11905: 0xD264,
+ 35169 - 11905: 0xD265,
+ 35170 - 11905: 0xD266,
+ 35171 - 11905: 0xD267,
+ 35172 - 11905: 0xD268,
+ 35173 - 11905: 0xD269,
+ 35174 - 11905: 0xF1E0,
+ 35175 - 11905: 0xD26A,
+ 35176 - 11905: 0xD26B,
+ 35177 - 11905: 0xD26C,
+ 35178 - 11905: 0xD26D,
+ 35179 - 11905: 0xD26E,
+ 35180 - 11905: 0xD26F,
+ 35181 - 11905: 0xD270,
+ 35182 - 11905: 0xD271,
+ 35183 - 11905: 0xD272,
+ 35184 - 11905: 0xD273,
+ 35185 - 11905: 0xD274,
+ 35186 - 11905: 0xD275,
+ 35187 - 11905: 0xD276,
+ 35188 - 11905: 0xD277,
+ 35189 - 11905: 0xD278,
+ 35190 - 11905: 0xD279,
+ 35191 - 11905: 0xD27A,
+ 35192 - 11905: 0xD27B,
+ 35193 - 11905: 0xD27C,
+ 35194 - 11905: 0xD27D,
+ 35195 - 11905: 0xF1E1,
+ 35196 - 11905: 0xD27E,
+ 35197 - 11905: 0xD280,
+ 35198 - 11905: 0xD281,
+ 35199 - 11905: 0xCEF7,
+ 35200 - 11905: 0xD282,
+ 35201 - 11905: 0xD2AA,
+ 35202 - 11905: 0xD283,
+ 35203 - 11905: 0xF1FB,
+ 35204 - 11905: 0xD284,
+ 35205 - 11905: 0xD285,
+ 35206 - 11905: 0xB8B2,
+ 35207 - 11905: 0xD286,
+ 35208 - 11905: 0xD287,
+ 35209 - 11905: 0xD288,
+ 35210 - 11905: 0xD289,
+ 35211 - 11905: 0xD28A,
+ 35212 - 11905: 0xD28B,
+ 35213 - 11905: 0xD28C,
+ 35214 - 11905: 0xD28D,
+ 35215 - 11905: 0xD28E,
+ 35216 - 11905: 0xD28F,
+ 35217 - 11905: 0xD290,
+ 35218 - 11905: 0xD291,
+ 35219 - 11905: 0xD292,
+ 35220 - 11905: 0xD293,
+ 35221 - 11905: 0xD294,
+ 35222 - 11905: 0xD295,
+ 35223 - 11905: 0xD296,
+ 35224 - 11905: 0xD297,
+ 35225 - 11905: 0xD298,
+ 35226 - 11905: 0xD299,
+ 35227 - 11905: 0xD29A,
+ 35228 - 11905: 0xD29B,
+ 35229 - 11905: 0xD29C,
+ 35230 - 11905: 0xD29D,
+ 35231 - 11905: 0xD29E,
+ 35232 - 11905: 0xD29F,
+ 35233 - 11905: 0xD2A0,
+ 35234 - 11905: 0xD340,
+ 35235 - 11905: 0xD341,
+ 35236 - 11905: 0xD342,
+ 35237 - 11905: 0xD343,
+ 35238 - 11905: 0xD344,
+ 35239 - 11905: 0xD345,
+ 35240 - 11905: 0xD346,
+ 35241 - 11905: 0xD347,
+ 35242 - 11905: 0xD348,
+ 35243 - 11905: 0xD349,
+ 35244 - 11905: 0xD34A,
+ 35245 - 11905: 0xD34B,
+ 35246 - 11905: 0xD34C,
+ 35247 - 11905: 0xD34D,
+ 35248 - 11905: 0xD34E,
+ 35249 - 11905: 0xD34F,
+ 35250 - 11905: 0xD350,
+ 35251 - 11905: 0xD351,
+ 35252 - 11905: 0xD352,
+ 35253 - 11905: 0xD353,
+ 35254 - 11905: 0xD354,
+ 35255 - 11905: 0xD355,
+ 35256 - 11905: 0xD356,
+ 35257 - 11905: 0xD357,
+ 35258 - 11905: 0xD358,
+ 35259 - 11905: 0xD359,
+ 35260 - 11905: 0xD35A,
+ 35261 - 11905: 0xD35B,
+ 35262 - 11905: 0xD35C,
+ 35263 - 11905: 0xD35D,
+ 35264 - 11905: 0xD35E,
+ 35265 - 11905: 0xBCFB,
+ 35266 - 11905: 0xB9DB,
+ 35267 - 11905: 0xD35F,
+ 35268 - 11905: 0xB9E6,
+ 35269 - 11905: 0xC3D9,
+ 35270 - 11905: 0xCAD3,
+ 35271 - 11905: 0xEAE8,
+ 35272 - 11905: 0xC0C0,
+ 35273 - 11905: 0xBEF5,
+ 35274 - 11905: 0xEAE9,
+ 35275 - 11905: 0xEAEA,
+ 35276 - 11905: 0xEAEB,
+ 35277 - 11905: 0xD360,
+ 35278 - 11905: 0xEAEC,
+ 35279 - 11905: 0xEAED,
+ 35280 - 11905: 0xEAEE,
+ 35281 - 11905: 0xEAEF,
+ 35282 - 11905: 0xBDC7,
+ 35283 - 11905: 0xD361,
+ 35284 - 11905: 0xD362,
+ 35285 - 11905: 0xD363,
+ 35286 - 11905: 0xF5FB,
+ 35287 - 11905: 0xD364,
+ 35288 - 11905: 0xD365,
+ 35289 - 11905: 0xD366,
+ 35290 - 11905: 0xF5FD,
+ 35291 - 11905: 0xD367,
+ 35292 - 11905: 0xF5FE,
+ 35293 - 11905: 0xD368,
+ 35294 - 11905: 0xF5FC,
+ 35295 - 11905: 0xD369,
+ 35296 - 11905: 0xD36A,
+ 35297 - 11905: 0xD36B,
+ 35298 - 11905: 0xD36C,
+ 35299 - 11905: 0xBDE2,
+ 35300 - 11905: 0xD36D,
+ 35301 - 11905: 0xF6A1,
+ 35302 - 11905: 0xB4A5,
+ 35303 - 11905: 0xD36E,
+ 35304 - 11905: 0xD36F,
+ 35305 - 11905: 0xD370,
+ 35306 - 11905: 0xD371,
+ 35307 - 11905: 0xF6A2,
+ 35308 - 11905: 0xD372,
+ 35309 - 11905: 0xD373,
+ 35310 - 11905: 0xD374,
+ 35311 - 11905: 0xF6A3,
+ 35312 - 11905: 0xD375,
+ 35313 - 11905: 0xD376,
+ 35314 - 11905: 0xD377,
+ 35315 - 11905: 0xECB2,
+ 35316 - 11905: 0xD378,
+ 35317 - 11905: 0xD379,
+ 35318 - 11905: 0xD37A,
+ 35319 - 11905: 0xD37B,
+ 35320 - 11905: 0xD37C,
+ 35321 - 11905: 0xD37D,
+ 35322 - 11905: 0xD37E,
+ 35323 - 11905: 0xD380,
+ 35324 - 11905: 0xD381,
+ 35325 - 11905: 0xD382,
+ 35326 - 11905: 0xD383,
+ 35327 - 11905: 0xD384,
+ 35328 - 11905: 0xD1D4,
+ 35329 - 11905: 0xD385,
+ 35330 - 11905: 0xD386,
+ 35331 - 11905: 0xD387,
+ 35332 - 11905: 0xD388,
+ 35333 - 11905: 0xD389,
+ 35334 - 11905: 0xD38A,
+ 35335 - 11905: 0xD9EA,
+ 35336 - 11905: 0xD38B,
+ 35337 - 11905: 0xD38C,
+ 35338 - 11905: 0xD38D,
+ 35339 - 11905: 0xD38E,
+ 35340 - 11905: 0xD38F,
+ 35341 - 11905: 0xD390,
+ 35342 - 11905: 0xD391,
+ 35343 - 11905: 0xD392,
+ 35344 - 11905: 0xD393,
+ 35345 - 11905: 0xD394,
+ 35346 - 11905: 0xD395,
+ 35347 - 11905: 0xD396,
+ 35348 - 11905: 0xD397,
+ 35349 - 11905: 0xD398,
+ 35350 - 11905: 0xD399,
+ 35351 - 11905: 0xD39A,
+ 35352 - 11905: 0xD39B,
+ 35353 - 11905: 0xD39C,
+ 35354 - 11905: 0xD39D,
+ 35355 - 11905: 0xD39E,
+ 35356 - 11905: 0xD39F,
+ 35357 - 11905: 0xD3A0,
+ 35358 - 11905: 0xD440,
+ 35359 - 11905: 0xD441,
+ 35360 - 11905: 0xD442,
+ 35361 - 11905: 0xD443,
+ 35362 - 11905: 0xD444,
+ 35363 - 11905: 0xD445,
+ 35364 - 11905: 0xD446,
+ 35365 - 11905: 0xD447,
+ 35366 - 11905: 0xD448,
+ 35367 - 11905: 0xD449,
+ 35368 - 11905: 0xD44A,
+ 35369 - 11905: 0xD44B,
+ 35370 - 11905: 0xD44C,
+ 35371 - 11905: 0xD44D,
+ 35372 - 11905: 0xD44E,
+ 35373 - 11905: 0xD44F,
+ 35374 - 11905: 0xD450,
+ 35375 - 11905: 0xD451,
+ 35376 - 11905: 0xD452,
+ 35377 - 11905: 0xD453,
+ 35378 - 11905: 0xD454,
+ 35379 - 11905: 0xD455,
+ 35380 - 11905: 0xD456,
+ 35381 - 11905: 0xD457,
+ 35382 - 11905: 0xD458,
+ 35383 - 11905: 0xD459,
+ 35384 - 11905: 0xD45A,
+ 35385 - 11905: 0xD45B,
+ 35386 - 11905: 0xD45C,
+ 35387 - 11905: 0xD45D,
+ 35388 - 11905: 0xD45E,
+ 35389 - 11905: 0xD45F,
+ 35390 - 11905: 0xF6A4,
+ 35391 - 11905: 0xD460,
+ 35392 - 11905: 0xD461,
+ 35393 - 11905: 0xD462,
+ 35394 - 11905: 0xD463,
+ 35395 - 11905: 0xD464,
+ 35396 - 11905: 0xD465,
+ 35397 - 11905: 0xD466,
+ 35398 - 11905: 0xD467,
+ 35399 - 11905: 0xD468,
+ 35400 - 11905: 0xEEBA,
+ 35401 - 11905: 0xD469,
+ 35402 - 11905: 0xD46A,
+ 35403 - 11905: 0xD46B,
+ 35404 - 11905: 0xD46C,
+ 35405 - 11905: 0xD46D,
+ 35406 - 11905: 0xD46E,
+ 35407 - 11905: 0xD46F,
+ 35408 - 11905: 0xD470,
+ 35409 - 11905: 0xD471,
+ 35410 - 11905: 0xD472,
+ 35411 - 11905: 0xD473,
+ 35412 - 11905: 0xD474,
+ 35413 - 11905: 0xD475,
+ 35414 - 11905: 0xD476,
+ 35415 - 11905: 0xD477,
+ 35416 - 11905: 0xD478,
+ 35417 - 11905: 0xD479,
+ 35418 - 11905: 0xD47A,
+ 35419 - 11905: 0xD47B,
+ 35420 - 11905: 0xD47C,
+ 35421 - 11905: 0xD47D,
+ 35422 - 11905: 0xD47E,
+ 35423 - 11905: 0xD480,
+ 35424 - 11905: 0xD481,
+ 35425 - 11905: 0xD482,
+ 35426 - 11905: 0xD483,
+ 35427 - 11905: 0xD484,
+ 35428 - 11905: 0xD485,
+ 35429 - 11905: 0xD486,
+ 35430 - 11905: 0xD487,
+ 35431 - 11905: 0xD488,
+ 35432 - 11905: 0xD489,
+ 35433 - 11905: 0xD48A,
+ 35434 - 11905: 0xD48B,
+ 35435 - 11905: 0xD48C,
+ 35436 - 11905: 0xD48D,
+ 35437 - 11905: 0xD48E,
+ 35438 - 11905: 0xD48F,
+ 35439 - 11905: 0xD490,
+ 35440 - 11905: 0xD491,
+ 35441 - 11905: 0xD492,
+ 35442 - 11905: 0xD493,
+ 35443 - 11905: 0xD494,
+ 35444 - 11905: 0xD495,
+ 35445 - 11905: 0xD496,
+ 35446 - 11905: 0xD497,
+ 35447 - 11905: 0xD498,
+ 35448 - 11905: 0xD499,
+ 35449 - 11905: 0xD5B2,
+ 35450 - 11905: 0xD49A,
+ 35451 - 11905: 0xD49B,
+ 35452 - 11905: 0xD49C,
+ 35453 - 11905: 0xD49D,
+ 35454 - 11905: 0xD49E,
+ 35455 - 11905: 0xD49F,
+ 35456 - 11905: 0xD4A0,
+ 35457 - 11905: 0xD540,
+ 35458 - 11905: 0xD541,
+ 35459 - 11905: 0xD542,
+ 35460 - 11905: 0xD543,
+ 35461 - 11905: 0xD544,
+ 35462 - 11905: 0xD545,
+ 35463 - 11905: 0xD546,
+ 35464 - 11905: 0xD547,
+ 35465 - 11905: 0xD3FE,
+ 35466 - 11905: 0xCCDC,
+ 35467 - 11905: 0xD548,
+ 35468 - 11905: 0xD549,
+ 35469 - 11905: 0xD54A,
+ 35470 - 11905: 0xD54B,
+ 35471 - 11905: 0xD54C,
+ 35472 - 11905: 0xD54D,
+ 35473 - 11905: 0xD54E,
+ 35474 - 11905: 0xD54F,
+ 35475 - 11905: 0xCAC4,
+ 35476 - 11905: 0xD550,
+ 35477 - 11905: 0xD551,
+ 35478 - 11905: 0xD552,
+ 35479 - 11905: 0xD553,
+ 35480 - 11905: 0xD554,
+ 35481 - 11905: 0xD555,
+ 35482 - 11905: 0xD556,
+ 35483 - 11905: 0xD557,
+ 35484 - 11905: 0xD558,
+ 35485 - 11905: 0xD559,
+ 35486 - 11905: 0xD55A,
+ 35487 - 11905: 0xD55B,
+ 35488 - 11905: 0xD55C,
+ 35489 - 11905: 0xD55D,
+ 35490 - 11905: 0xD55E,
+ 35491 - 11905: 0xD55F,
+ 35492 - 11905: 0xD560,
+ 35493 - 11905: 0xD561,
+ 35494 - 11905: 0xD562,
+ 35495 - 11905: 0xD563,
+ 35496 - 11905: 0xD564,
+ 35497 - 11905: 0xD565,
+ 35498 - 11905: 0xD566,
+ 35499 - 11905: 0xD567,
+ 35500 - 11905: 0xD568,
+ 35501 - 11905: 0xD569,
+ 35502 - 11905: 0xD56A,
+ 35503 - 11905: 0xD56B,
+ 35504 - 11905: 0xD56C,
+ 35505 - 11905: 0xD56D,
+ 35506 - 11905: 0xD56E,
+ 35507 - 11905: 0xD56F,
+ 35508 - 11905: 0xD570,
+ 35509 - 11905: 0xD571,
+ 35510 - 11905: 0xD572,
+ 35511 - 11905: 0xD573,
+ 35512 - 11905: 0xD574,
+ 35513 - 11905: 0xD575,
+ 35514 - 11905: 0xD576,
+ 35515 - 11905: 0xD577,
+ 35516 - 11905: 0xD578,
+ 35517 - 11905: 0xD579,
+ 35518 - 11905: 0xD57A,
+ 35519 - 11905: 0xD57B,
+ 35520 - 11905: 0xD57C,
+ 35521 - 11905: 0xD57D,
+ 35522 - 11905: 0xD57E,
+ 35523 - 11905: 0xD580,
+ 35524 - 11905: 0xD581,
+ 35525 - 11905: 0xD582,
+ 35526 - 11905: 0xD583,
+ 35527 - 11905: 0xD584,
+ 35528 - 11905: 0xD585,
+ 35529 - 11905: 0xD586,
+ 35530 - 11905: 0xD587,
+ 35531 - 11905: 0xD588,
+ 35532 - 11905: 0xD589,
+ 35533 - 11905: 0xD58A,
+ 35534 - 11905: 0xD58B,
+ 35535 - 11905: 0xD58C,
+ 35536 - 11905: 0xD58D,
+ 35537 - 11905: 0xD58E,
+ 35538 - 11905: 0xD58F,
+ 35539 - 11905: 0xD590,
+ 35540 - 11905: 0xD591,
+ 35541 - 11905: 0xD592,
+ 35542 - 11905: 0xD593,
+ 35543 - 11905: 0xD594,
+ 35544 - 11905: 0xD595,
+ 35545 - 11905: 0xD596,
+ 35546 - 11905: 0xD597,
+ 35547 - 11905: 0xD598,
+ 35548 - 11905: 0xD599,
+ 35549 - 11905: 0xD59A,
+ 35550 - 11905: 0xD59B,
+ 35551 - 11905: 0xD59C,
+ 35552 - 11905: 0xD59D,
+ 35553 - 11905: 0xD59E,
+ 35554 - 11905: 0xD59F,
+ 35555 - 11905: 0xD5A0,
+ 35556 - 11905: 0xD640,
+ 35557 - 11905: 0xD641,
+ 35558 - 11905: 0xD642,
+ 35559 - 11905: 0xD643,
+ 35560 - 11905: 0xD644,
+ 35561 - 11905: 0xD645,
+ 35562 - 11905: 0xD646,
+ 35563 - 11905: 0xD647,
+ 35564 - 11905: 0xD648,
+ 35565 - 11905: 0xD649,
+ 35566 - 11905: 0xD64A,
+ 35567 - 11905: 0xD64B,
+ 35568 - 11905: 0xD64C,
+ 35569 - 11905: 0xD64D,
+ 35570 - 11905: 0xD64E,
+ 35571 - 11905: 0xD64F,
+ 35572 - 11905: 0xD650,
+ 35573 - 11905: 0xD651,
+ 35574 - 11905: 0xD652,
+ 35575 - 11905: 0xD653,
+ 35576 - 11905: 0xD654,
+ 35577 - 11905: 0xD655,
+ 35578 - 11905: 0xD656,
+ 35579 - 11905: 0xD657,
+ 35580 - 11905: 0xD658,
+ 35581 - 11905: 0xD659,
+ 35582 - 11905: 0xD65A,
+ 35583 - 11905: 0xD65B,
+ 35584 - 11905: 0xD65C,
+ 35585 - 11905: 0xD65D,
+ 35586 - 11905: 0xD65E,
+ 35587 - 11905: 0xD65F,
+ 35588 - 11905: 0xD660,
+ 35589 - 11905: 0xD661,
+ 35590 - 11905: 0xD662,
+ 35591 - 11905: 0xE5C0,
+ 35592 - 11905: 0xD663,
+ 35593 - 11905: 0xD664,
+ 35594 - 11905: 0xD665,
+ 35595 - 11905: 0xD666,
+ 35596 - 11905: 0xD667,
+ 35597 - 11905: 0xD668,
+ 35598 - 11905: 0xD669,
+ 35599 - 11905: 0xD66A,
+ 35600 - 11905: 0xD66B,
+ 35601 - 11905: 0xD66C,
+ 35602 - 11905: 0xD66D,
+ 35603 - 11905: 0xD66E,
+ 35604 - 11905: 0xD66F,
+ 35605 - 11905: 0xD670,
+ 35606 - 11905: 0xD671,
+ 35607 - 11905: 0xD672,
+ 35608 - 11905: 0xD673,
+ 35609 - 11905: 0xD674,
+ 35610 - 11905: 0xD675,
+ 35611 - 11905: 0xD676,
+ 35612 - 11905: 0xD677,
+ 35613 - 11905: 0xD678,
+ 35614 - 11905: 0xD679,
+ 35615 - 11905: 0xD67A,
+ 35616 - 11905: 0xD67B,
+ 35617 - 11905: 0xD67C,
+ 35618 - 11905: 0xD67D,
+ 35619 - 11905: 0xD67E,
+ 35620 - 11905: 0xD680,
+ 35621 - 11905: 0xD681,
+ 35622 - 11905: 0xF6A5,
+ 35623 - 11905: 0xD682,
+ 35624 - 11905: 0xD683,
+ 35625 - 11905: 0xD684,
+ 35626 - 11905: 0xD685,
+ 35627 - 11905: 0xD686,
+ 35628 - 11905: 0xD687,
+ 35629 - 11905: 0xD688,
+ 35630 - 11905: 0xD689,
+ 35631 - 11905: 0xD68A,
+ 35632 - 11905: 0xD68B,
+ 35633 - 11905: 0xD68C,
+ 35634 - 11905: 0xD68D,
+ 35635 - 11905: 0xD68E,
+ 35636 - 11905: 0xD68F,
+ 35637 - 11905: 0xD690,
+ 35638 - 11905: 0xD691,
+ 35639 - 11905: 0xD692,
+ 35640 - 11905: 0xD693,
+ 35641 - 11905: 0xD694,
+ 35642 - 11905: 0xD695,
+ 35643 - 11905: 0xD696,
+ 35644 - 11905: 0xD697,
+ 35645 - 11905: 0xD698,
+ 35646 - 11905: 0xD699,
+ 35647 - 11905: 0xD69A,
+ 35648 - 11905: 0xD69B,
+ 35649 - 11905: 0xD69C,
+ 35650 - 11905: 0xD69D,
+ 35651 - 11905: 0xD69E,
+ 35652 - 11905: 0xD69F,
+ 35653 - 11905: 0xD6A0,
+ 35654 - 11905: 0xD740,
+ 35655 - 11905: 0xD741,
+ 35656 - 11905: 0xD742,
+ 35657 - 11905: 0xD743,
+ 35658 - 11905: 0xD744,
+ 35659 - 11905: 0xD745,
+ 35660 - 11905: 0xD746,
+ 35661 - 11905: 0xD747,
+ 35662 - 11905: 0xD748,
+ 35663 - 11905: 0xD749,
+ 35664 - 11905: 0xD74A,
+ 35665 - 11905: 0xD74B,
+ 35666 - 11905: 0xD74C,
+ 35667 - 11905: 0xD74D,
+ 35668 - 11905: 0xD74E,
+ 35669 - 11905: 0xD74F,
+ 35670 - 11905: 0xD750,
+ 35671 - 11905: 0xD751,
+ 35672 - 11905: 0xD752,
+ 35673 - 11905: 0xD753,
+ 35674 - 11905: 0xD754,
+ 35675 - 11905: 0xD755,
+ 35676 - 11905: 0xD756,
+ 35677 - 11905: 0xD757,
+ 35678 - 11905: 0xD758,
+ 35679 - 11905: 0xD759,
+ 35680 - 11905: 0xD75A,
+ 35681 - 11905: 0xD75B,
+ 35682 - 11905: 0xD75C,
+ 35683 - 11905: 0xD75D,
+ 35684 - 11905: 0xD75E,
+ 35685 - 11905: 0xD75F,
+ 35686 - 11905: 0xBEAF,
+ 35687 - 11905: 0xD760,
+ 35688 - 11905: 0xD761,
+ 35689 - 11905: 0xD762,
+ 35690 - 11905: 0xD763,
+ 35691 - 11905: 0xD764,
+ 35692 - 11905: 0xC6A9,
+ 35693 - 11905: 0xD765,
+ 35694 - 11905: 0xD766,
+ 35695 - 11905: 0xD767,
+ 35696 - 11905: 0xD768,
+ 35697 - 11905: 0xD769,
+ 35698 - 11905: 0xD76A,
+ 35699 - 11905: 0xD76B,
+ 35700 - 11905: 0xD76C,
+ 35701 - 11905: 0xD76D,
+ 35702 - 11905: 0xD76E,
+ 35703 - 11905: 0xD76F,
+ 35704 - 11905: 0xD770,
+ 35705 - 11905: 0xD771,
+ 35706 - 11905: 0xD772,
+ 35707 - 11905: 0xD773,
+ 35708 - 11905: 0xD774,
+ 35709 - 11905: 0xD775,
+ 35710 - 11905: 0xD776,
+ 35711 - 11905: 0xD777,
+ 35712 - 11905: 0xD778,
+ 35713 - 11905: 0xD779,
+ 35714 - 11905: 0xD77A,
+ 35715 - 11905: 0xD77B,
+ 35716 - 11905: 0xD77C,
+ 35717 - 11905: 0xD77D,
+ 35718 - 11905: 0xD77E,
+ 35719 - 11905: 0xD780,
+ 35720 - 11905: 0xD781,
+ 35721 - 11905: 0xD782,
+ 35722 - 11905: 0xD783,
+ 35723 - 11905: 0xD784,
+ 35724 - 11905: 0xD785,
+ 35725 - 11905: 0xD786,
+ 35726 - 11905: 0xD787,
+ 35727 - 11905: 0xD788,
+ 35728 - 11905: 0xD789,
+ 35729 - 11905: 0xD78A,
+ 35730 - 11905: 0xD78B,
+ 35731 - 11905: 0xD78C,
+ 35732 - 11905: 0xD78D,
+ 35733 - 11905: 0xD78E,
+ 35734 - 11905: 0xD78F,
+ 35735 - 11905: 0xD790,
+ 35736 - 11905: 0xD791,
+ 35737 - 11905: 0xD792,
+ 35738 - 11905: 0xD793,
+ 35739 - 11905: 0xD794,
+ 35740 - 11905: 0xD795,
+ 35741 - 11905: 0xD796,
+ 35742 - 11905: 0xD797,
+ 35743 - 11905: 0xD798,
+ 35744 - 11905: 0xDAA5,
+ 35745 - 11905: 0xBCC6,
+ 35746 - 11905: 0xB6A9,
+ 35747 - 11905: 0xB8BC,
+ 35748 - 11905: 0xC8CF,
+ 35749 - 11905: 0xBCA5,
+ 35750 - 11905: 0xDAA6,
+ 35751 - 11905: 0xDAA7,
+ 35752 - 11905: 0xCCD6,
+ 35753 - 11905: 0xC8C3,
+ 35754 - 11905: 0xDAA8,
+ 35755 - 11905: 0xC6FD,
+ 35756 - 11905: 0xD799,
+ 35757 - 11905: 0xD1B5,
+ 35758 - 11905: 0xD2E9,
+ 35759 - 11905: 0xD1B6,
+ 35760 - 11905: 0xBCC7,
+ 35761 - 11905: 0xD79A,
+ 35762 - 11905: 0xBDB2,
+ 35763 - 11905: 0xBBE4,
+ 35764 - 11905: 0xDAA9,
+ 35765 - 11905: 0xDAAA,
+ 35766 - 11905: 0xD1C8,
+ 35767 - 11905: 0xDAAB,
+ 35768 - 11905: 0xD0ED,
+ 35769 - 11905: 0xB6EF,
+ 35770 - 11905: 0xC2DB,
+ 35771 - 11905: 0xD79B,
+ 35772 - 11905: 0xCBCF,
+ 35773 - 11905: 0xB7ED,
+ 35774 - 11905: 0xC9E8,
+ 35775 - 11905: 0xB7C3,
+ 35776 - 11905: 0xBEF7,
+ 35777 - 11905: 0xD6A4,
+ 35778 - 11905: 0xDAAC,
+ 35779 - 11905: 0xDAAD,
+ 35780 - 11905: 0xC6C0,
+ 35781 - 11905: 0xD7E7,
+ 35782 - 11905: 0xCAB6,
+ 35783 - 11905: 0xD79C,
+ 35784 - 11905: 0xD5A9,
+ 35785 - 11905: 0xCBDF,
+ 35786 - 11905: 0xD5EF,
+ 35787 - 11905: 0xDAAE,
+ 35788 - 11905: 0xD6DF,
+ 35789 - 11905: 0xB4CA,
+ 35790 - 11905: 0xDAB0,
+ 35791 - 11905: 0xDAAF,
+ 35792 - 11905: 0xD79D,
+ 35793 - 11905: 0xD2EB,
+ 35794 - 11905: 0xDAB1,
+ 35795 - 11905: 0xDAB2,
+ 35796 - 11905: 0xDAB3,
+ 35797 - 11905: 0xCAD4,
+ 35798 - 11905: 0xDAB4,
+ 35799 - 11905: 0xCAAB,
+ 35800 - 11905: 0xDAB5,
+ 35801 - 11905: 0xDAB6,
+ 35802 - 11905: 0xB3CF,
+ 35803 - 11905: 0xD6EF,
+ 35804 - 11905: 0xDAB7,
+ 35805 - 11905: 0xBBB0,
+ 35806 - 11905: 0xB5AE,
+ 35807 - 11905: 0xDAB8,
+ 35808 - 11905: 0xDAB9,
+ 35809 - 11905: 0xB9EE,
+ 35810 - 11905: 0xD1AF,
+ 35811 - 11905: 0xD2E8,
+ 35812 - 11905: 0xDABA,
+ 35813 - 11905: 0xB8C3,
+ 35814 - 11905: 0xCFEA,
+ 35815 - 11905: 0xB2EF,
+ 35816 - 11905: 0xDABB,
+ 35817 - 11905: 0xDABC,
+ 35818 - 11905: 0xD79E,
+ 35819 - 11905: 0xBDEB,
+ 35820 - 11905: 0xCEDC,
+ 35821 - 11905: 0xD3EF,
+ 35822 - 11905: 0xDABD,
+ 35823 - 11905: 0xCEF3,
+ 35824 - 11905: 0xDABE,
+ 35825 - 11905: 0xD3D5,
+ 35826 - 11905: 0xBBE5,
+ 35827 - 11905: 0xDABF,
+ 35828 - 11905: 0xCBB5,
+ 35829 - 11905: 0xCBD0,
+ 35830 - 11905: 0xDAC0,
+ 35831 - 11905: 0xC7EB,
+ 35832 - 11905: 0xD6EE,
+ 35833 - 11905: 0xDAC1,
+ 35834 - 11905: 0xC5B5,
+ 35835 - 11905: 0xB6C1,
+ 35836 - 11905: 0xDAC2,
+ 35837 - 11905: 0xB7CC,
+ 35838 - 11905: 0xBFCE,
+ 35839 - 11905: 0xDAC3,
+ 35840 - 11905: 0xDAC4,
+ 35841 - 11905: 0xCBAD,
+ 35842 - 11905: 0xDAC5,
+ 35843 - 11905: 0xB5F7,
+ 35844 - 11905: 0xDAC6,
+ 35845 - 11905: 0xC1C2,
+ 35846 - 11905: 0xD7BB,
+ 35847 - 11905: 0xDAC7,
+ 35848 - 11905: 0xCCB8,
+ 35849 - 11905: 0xD79F,
+ 35850 - 11905: 0xD2EA,
+ 35851 - 11905: 0xC4B1,
+ 35852 - 11905: 0xDAC8,
+ 35853 - 11905: 0xB5FD,
+ 35854 - 11905: 0xBBD1,
+ 35855 - 11905: 0xDAC9,
+ 35856 - 11905: 0xD0B3,
+ 35857 - 11905: 0xDACA,
+ 35858 - 11905: 0xDACB,
+ 35859 - 11905: 0xCEBD,
+ 35860 - 11905: 0xDACC,
+ 35861 - 11905: 0xDACD,
+ 35862 - 11905: 0xDACE,
+ 35863 - 11905: 0xB2F7,
+ 35864 - 11905: 0xDAD1,
+ 35865 - 11905: 0xDACF,
+ 35866 - 11905: 0xD1E8,
+ 35867 - 11905: 0xDAD0,
+ 35868 - 11905: 0xC3D5,
+ 35869 - 11905: 0xDAD2,
+ 35870 - 11905: 0xD7A0,
+ 35871 - 11905: 0xDAD3,
+ 35872 - 11905: 0xDAD4,
+ 35873 - 11905: 0xDAD5,
+ 35874 - 11905: 0xD0BB,
+ 35875 - 11905: 0xD2A5,
+ 35876 - 11905: 0xB0F9,
+ 35877 - 11905: 0xDAD6,
+ 35878 - 11905: 0xC7AB,
+ 35879 - 11905: 0xDAD7,
+ 35880 - 11905: 0xBDF7,
+ 35881 - 11905: 0xC3A1,
+ 35882 - 11905: 0xDAD8,
+ 35883 - 11905: 0xDAD9,
+ 35884 - 11905: 0xC3FD,
+ 35885 - 11905: 0xCCB7,
+ 35886 - 11905: 0xDADA,
+ 35887 - 11905: 0xDADB,
+ 35888 - 11905: 0xC0BE,
+ 35889 - 11905: 0xC6D7,
+ 35890 - 11905: 0xDADC,
+ 35891 - 11905: 0xDADD,
+ 35892 - 11905: 0xC7B4,
+ 35893 - 11905: 0xDADE,
+ 35894 - 11905: 0xDADF,
+ 35895 - 11905: 0xB9C8,
+ 35896 - 11905: 0xD840,
+ 35897 - 11905: 0xD841,
+ 35898 - 11905: 0xD842,
+ 35899 - 11905: 0xD843,
+ 35900 - 11905: 0xD844,
+ 35901 - 11905: 0xD845,
+ 35902 - 11905: 0xD846,
+ 35903 - 11905: 0xD847,
+ 35904 - 11905: 0xD848,
+ 35905 - 11905: 0xBBED,
+ 35906 - 11905: 0xD849,
+ 35907 - 11905: 0xD84A,
+ 35908 - 11905: 0xD84B,
+ 35909 - 11905: 0xD84C,
+ 35910 - 11905: 0xB6B9,
+ 35911 - 11905: 0xF4F8,
+ 35912 - 11905: 0xD84D,
+ 35913 - 11905: 0xF4F9,
+ 35914 - 11905: 0xD84E,
+ 35915 - 11905: 0xD84F,
+ 35916 - 11905: 0xCDE3,
+ 35917 - 11905: 0xD850,
+ 35918 - 11905: 0xD851,
+ 35919 - 11905: 0xD852,
+ 35920 - 11905: 0xD853,
+ 35921 - 11905: 0xD854,
+ 35922 - 11905: 0xD855,
+ 35923 - 11905: 0xD856,
+ 35924 - 11905: 0xD857,
+ 35925 - 11905: 0xF5B9,
+ 35926 - 11905: 0xD858,
+ 35927 - 11905: 0xD859,
+ 35928 - 11905: 0xD85A,
+ 35929 - 11905: 0xD85B,
+ 35930 - 11905: 0xEBE0,
+ 35931 - 11905: 0xD85C,
+ 35932 - 11905: 0xD85D,
+ 35933 - 11905: 0xD85E,
+ 35934 - 11905: 0xD85F,
+ 35935 - 11905: 0xD860,
+ 35936 - 11905: 0xD861,
+ 35937 - 11905: 0xCFF3,
+ 35938 - 11905: 0xBBBF,
+ 35939 - 11905: 0xD862,
+ 35940 - 11905: 0xD863,
+ 35941 - 11905: 0xD864,
+ 35942 - 11905: 0xD865,
+ 35943 - 11905: 0xD866,
+ 35944 - 11905: 0xD867,
+ 35945 - 11905: 0xD868,
+ 35946 - 11905: 0xBAC0,
+ 35947 - 11905: 0xD4A5,
+ 35948 - 11905: 0xD869,
+ 35949 - 11905: 0xD86A,
+ 35950 - 11905: 0xD86B,
+ 35951 - 11905: 0xD86C,
+ 35952 - 11905: 0xD86D,
+ 35953 - 11905: 0xD86E,
+ 35954 - 11905: 0xD86F,
+ 35955 - 11905: 0xE1D9,
+ 35956 - 11905: 0xD870,
+ 35957 - 11905: 0xD871,
+ 35958 - 11905: 0xD872,
+ 35959 - 11905: 0xD873,
+ 35960 - 11905: 0xF5F4,
+ 35961 - 11905: 0xB1AA,
+ 35962 - 11905: 0xB2F2,
+ 35963 - 11905: 0xD874,
+ 35964 - 11905: 0xD875,
+ 35965 - 11905: 0xD876,
+ 35966 - 11905: 0xD877,
+ 35967 - 11905: 0xD878,
+ 35968 - 11905: 0xD879,
+ 35969 - 11905: 0xD87A,
+ 35970 - 11905: 0xF5F5,
+ 35971 - 11905: 0xD87B,
+ 35972 - 11905: 0xD87C,
+ 35973 - 11905: 0xF5F7,
+ 35974 - 11905: 0xD87D,
+ 35975 - 11905: 0xD87E,
+ 35976 - 11905: 0xD880,
+ 35977 - 11905: 0xBAD1,
+ 35978 - 11905: 0xF5F6,
+ 35979 - 11905: 0xD881,
+ 35980 - 11905: 0xC3B2,
+ 35981 - 11905: 0xD882,
+ 35982 - 11905: 0xD883,
+ 35983 - 11905: 0xD884,
+ 35984 - 11905: 0xD885,
+ 35985 - 11905: 0xD886,
+ 35986 - 11905: 0xD887,
+ 35987 - 11905: 0xD888,
+ 35988 - 11905: 0xF5F9,
+ 35989 - 11905: 0xD889,
+ 35990 - 11905: 0xD88A,
+ 35991 - 11905: 0xD88B,
+ 35992 - 11905: 0xF5F8,
+ 35993 - 11905: 0xD88C,
+ 35994 - 11905: 0xD88D,
+ 35995 - 11905: 0xD88E,
+ 35996 - 11905: 0xD88F,
+ 35997 - 11905: 0xD890,
+ 35998 - 11905: 0xD891,
+ 35999 - 11905: 0xD892,
+ 36000 - 11905: 0xD893,
+ 36001 - 11905: 0xD894,
+ 36002 - 11905: 0xD895,
+ 36003 - 11905: 0xD896,
+ 36004 - 11905: 0xD897,
+ 36005 - 11905: 0xD898,
+ 36006 - 11905: 0xD899,
+ 36007 - 11905: 0xD89A,
+ 36008 - 11905: 0xD89B,
+ 36009 - 11905: 0xD89C,
+ 36010 - 11905: 0xD89D,
+ 36011 - 11905: 0xD89E,
+ 36012 - 11905: 0xD89F,
+ 36013 - 11905: 0xD8A0,
+ 36014 - 11905: 0xD940,
+ 36015 - 11905: 0xD941,
+ 36016 - 11905: 0xD942,
+ 36017 - 11905: 0xD943,
+ 36018 - 11905: 0xD944,
+ 36019 - 11905: 0xD945,
+ 36020 - 11905: 0xD946,
+ 36021 - 11905: 0xD947,
+ 36022 - 11905: 0xD948,
+ 36023 - 11905: 0xD949,
+ 36024 - 11905: 0xD94A,
+ 36025 - 11905: 0xD94B,
+ 36026 - 11905: 0xD94C,
+ 36027 - 11905: 0xD94D,
+ 36028 - 11905: 0xD94E,
+ 36029 - 11905: 0xD94F,
+ 36030 - 11905: 0xD950,
+ 36031 - 11905: 0xD951,
+ 36032 - 11905: 0xD952,
+ 36033 - 11905: 0xD953,
+ 36034 - 11905: 0xD954,
+ 36035 - 11905: 0xD955,
+ 36036 - 11905: 0xD956,
+ 36037 - 11905: 0xD957,
+ 36038 - 11905: 0xD958,
+ 36039 - 11905: 0xD959,
+ 36040 - 11905: 0xD95A,
+ 36041 - 11905: 0xD95B,
+ 36042 - 11905: 0xD95C,
+ 36043 - 11905: 0xD95D,
+ 36044 - 11905: 0xD95E,
+ 36045 - 11905: 0xD95F,
+ 36046 - 11905: 0xD960,
+ 36047 - 11905: 0xD961,
+ 36048 - 11905: 0xD962,
+ 36049 - 11905: 0xD963,
+ 36050 - 11905: 0xD964,
+ 36051 - 11905: 0xD965,
+ 36052 - 11905: 0xD966,
+ 36053 - 11905: 0xD967,
+ 36054 - 11905: 0xD968,
+ 36055 - 11905: 0xD969,
+ 36056 - 11905: 0xD96A,
+ 36057 - 11905: 0xD96B,
+ 36058 - 11905: 0xD96C,
+ 36059 - 11905: 0xD96D,
+ 36060 - 11905: 0xD96E,
+ 36061 - 11905: 0xD96F,
+ 36062 - 11905: 0xD970,
+ 36063 - 11905: 0xD971,
+ 36064 - 11905: 0xD972,
+ 36065 - 11905: 0xD973,
+ 36066 - 11905: 0xD974,
+ 36067 - 11905: 0xD975,
+ 36068 - 11905: 0xD976,
+ 36069 - 11905: 0xD977,
+ 36070 - 11905: 0xD978,
+ 36071 - 11905: 0xD979,
+ 36072 - 11905: 0xD97A,
+ 36073 - 11905: 0xD97B,
+ 36074 - 11905: 0xD97C,
+ 36075 - 11905: 0xD97D,
+ 36076 - 11905: 0xD97E,
+ 36077 - 11905: 0xD980,
+ 36078 - 11905: 0xD981,
+ 36079 - 11905: 0xD982,
+ 36080 - 11905: 0xD983,
+ 36081 - 11905: 0xD984,
+ 36082 - 11905: 0xD985,
+ 36083 - 11905: 0xD986,
+ 36084 - 11905: 0xD987,
+ 36085 - 11905: 0xD988,
+ 36086 - 11905: 0xD989,
+ 36087 - 11905: 0xD98A,
+ 36088 - 11905: 0xD98B,
+ 36089 - 11905: 0xD98C,
+ 36090 - 11905: 0xD98D,
+ 36091 - 11905: 0xD98E,
+ 36092 - 11905: 0xD98F,
+ 36093 - 11905: 0xD990,
+ 36094 - 11905: 0xD991,
+ 36095 - 11905: 0xD992,
+ 36096 - 11905: 0xD993,
+ 36097 - 11905: 0xD994,
+ 36098 - 11905: 0xD995,
+ 36099 - 11905: 0xD996,
+ 36100 - 11905: 0xD997,
+ 36101 - 11905: 0xD998,
+ 36102 - 11905: 0xD999,
+ 36103 - 11905: 0xD99A,
+ 36104 - 11905: 0xD99B,
+ 36105 - 11905: 0xD99C,
+ 36106 - 11905: 0xD99D,
+ 36107 - 11905: 0xD99E,
+ 36108 - 11905: 0xD99F,
+ 36109 - 11905: 0xD9A0,
+ 36110 - 11905: 0xDA40,
+ 36111 - 11905: 0xDA41,
+ 36112 - 11905: 0xDA42,
+ 36113 - 11905: 0xDA43,
+ 36114 - 11905: 0xDA44,
+ 36115 - 11905: 0xDA45,
+ 36116 - 11905: 0xDA46,
+ 36117 - 11905: 0xDA47,
+ 36118 - 11905: 0xDA48,
+ 36119 - 11905: 0xDA49,
+ 36120 - 11905: 0xDA4A,
+ 36121 - 11905: 0xDA4B,
+ 36122 - 11905: 0xDA4C,
+ 36123 - 11905: 0xDA4D,
+ 36124 - 11905: 0xDA4E,
+ 36125 - 11905: 0xB1B4,
+ 36126 - 11905: 0xD5EA,
+ 36127 - 11905: 0xB8BA,
+ 36128 - 11905: 0xDA4F,
+ 36129 - 11905: 0xB9B1,
+ 36130 - 11905: 0xB2C6,
+ 36131 - 11905: 0xD4F0,
+ 36132 - 11905: 0xCFCD,
+ 36133 - 11905: 0xB0DC,
+ 36134 - 11905: 0xD5CB,
+ 36135 - 11905: 0xBBF5,
+ 36136 - 11905: 0xD6CA,
+ 36137 - 11905: 0xB7B7,
+ 36138 - 11905: 0xCCB0,
+ 36139 - 11905: 0xC6B6,
+ 36140 - 11905: 0xB1E1,
+ 36141 - 11905: 0xB9BA,
+ 36142 - 11905: 0xD6FC,
+ 36143 - 11905: 0xB9E1,
+ 36144 - 11905: 0xB7A1,
+ 36145 - 11905: 0xBCFA,
+ 36146 - 11905: 0xEADA,
+ 36147 - 11905: 0xEADB,
+ 36148 - 11905: 0xCCF9,
+ 36149 - 11905: 0xB9F3,
+ 36150 - 11905: 0xEADC,
+ 36151 - 11905: 0xB4FB,
+ 36152 - 11905: 0xC3B3,
+ 36153 - 11905: 0xB7D1,
+ 36154 - 11905: 0xBAD8,
+ 36155 - 11905: 0xEADD,
+ 36156 - 11905: 0xD4F4,
+ 36157 - 11905: 0xEADE,
+ 36158 - 11905: 0xBCD6,
+ 36159 - 11905: 0xBBDF,
+ 36160 - 11905: 0xEADF,
+ 36161 - 11905: 0xC1DE,
+ 36162 - 11905: 0xC2B8,
+ 36163 - 11905: 0xD4DF,
+ 36164 - 11905: 0xD7CA,
+ 36165 - 11905: 0xEAE0,
+ 36166 - 11905: 0xEAE1,
+ 36167 - 11905: 0xEAE4,
+ 36168 - 11905: 0xEAE2,
+ 36169 - 11905: 0xEAE3,
+ 36170 - 11905: 0xC9DE,
+ 36171 - 11905: 0xB8B3,
+ 36172 - 11905: 0xB6C4,
+ 36173 - 11905: 0xEAE5,
+ 36174 - 11905: 0xCAEA,
+ 36175 - 11905: 0xC9CD,
+ 36176 - 11905: 0xB4CD,
+ 36177 - 11905: 0xDA50,
+ 36178 - 11905: 0xDA51,
+ 36179 - 11905: 0xE2D9,
+ 36180 - 11905: 0xC5E2,
+ 36181 - 11905: 0xEAE6,
+ 36182 - 11905: 0xC0B5,
+ 36183 - 11905: 0xDA52,
+ 36184 - 11905: 0xD7B8,
+ 36185 - 11905: 0xEAE7,
+ 36186 - 11905: 0xD7AC,
+ 36187 - 11905: 0xC8FC,
+ 36188 - 11905: 0xD8D3,
+ 36189 - 11905: 0xD8CD,
+ 36190 - 11905: 0xD4DE,
+ 36191 - 11905: 0xDA53,
+ 36192 - 11905: 0xD4F9,
+ 36193 - 11905: 0xC9C4,
+ 36194 - 11905: 0xD3AE,
+ 36195 - 11905: 0xB8D3,
+ 36196 - 11905: 0xB3E0,
+ 36197 - 11905: 0xDA54,
+ 36198 - 11905: 0xC9E2,
+ 36199 - 11905: 0xF4F6,
+ 36200 - 11905: 0xDA55,
+ 36201 - 11905: 0xDA56,
+ 36202 - 11905: 0xDA57,
+ 36203 - 11905: 0xBAD5,
+ 36204 - 11905: 0xDA58,
+ 36205 - 11905: 0xF4F7,
+ 36206 - 11905: 0xDA59,
+ 36207 - 11905: 0xDA5A,
+ 36208 - 11905: 0xD7DF,
+ 36209 - 11905: 0xDA5B,
+ 36210 - 11905: 0xDA5C,
+ 36211 - 11905: 0xF4F1,
+ 36212 - 11905: 0xB8B0,
+ 36213 - 11905: 0xD5D4,
+ 36214 - 11905: 0xB8CF,
+ 36215 - 11905: 0xC6F0,
+ 36216 - 11905: 0xDA5D,
+ 36217 - 11905: 0xDA5E,
+ 36218 - 11905: 0xDA5F,
+ 36219 - 11905: 0xDA60,
+ 36220 - 11905: 0xDA61,
+ 36221 - 11905: 0xDA62,
+ 36222 - 11905: 0xDA63,
+ 36223 - 11905: 0xDA64,
+ 36224 - 11905: 0xDA65,
+ 36225 - 11905: 0xB3C3,
+ 36226 - 11905: 0xDA66,
+ 36227 - 11905: 0xDA67,
+ 36228 - 11905: 0xF4F2,
+ 36229 - 11905: 0xB3AC,
+ 36230 - 11905: 0xDA68,
+ 36231 - 11905: 0xDA69,
+ 36232 - 11905: 0xDA6A,
+ 36233 - 11905: 0xDA6B,
+ 36234 - 11905: 0xD4BD,
+ 36235 - 11905: 0xC7F7,
+ 36236 - 11905: 0xDA6C,
+ 36237 - 11905: 0xDA6D,
+ 36238 - 11905: 0xDA6E,
+ 36239 - 11905: 0xDA6F,
+ 36240 - 11905: 0xDA70,
+ 36241 - 11905: 0xF4F4,
+ 36242 - 11905: 0xDA71,
+ 36243 - 11905: 0xDA72,
+ 36244 - 11905: 0xF4F3,
+ 36245 - 11905: 0xDA73,
+ 36246 - 11905: 0xDA74,
+ 36247 - 11905: 0xDA75,
+ 36248 - 11905: 0xDA76,
+ 36249 - 11905: 0xDA77,
+ 36250 - 11905: 0xDA78,
+ 36251 - 11905: 0xDA79,
+ 36252 - 11905: 0xDA7A,
+ 36253 - 11905: 0xDA7B,
+ 36254 - 11905: 0xDA7C,
+ 36255 - 11905: 0xCCCB,
+ 36256 - 11905: 0xDA7D,
+ 36257 - 11905: 0xDA7E,
+ 36258 - 11905: 0xDA80,
+ 36259 - 11905: 0xC8A4,
+ 36260 - 11905: 0xDA81,
+ 36261 - 11905: 0xDA82,
+ 36262 - 11905: 0xDA83,
+ 36263 - 11905: 0xDA84,
+ 36264 - 11905: 0xDA85,
+ 36265 - 11905: 0xDA86,
+ 36266 - 11905: 0xDA87,
+ 36267 - 11905: 0xDA88,
+ 36268 - 11905: 0xDA89,
+ 36269 - 11905: 0xDA8A,
+ 36270 - 11905: 0xDA8B,
+ 36271 - 11905: 0xDA8C,
+ 36272 - 11905: 0xDA8D,
+ 36273 - 11905: 0xF4F5,
+ 36274 - 11905: 0xDA8E,
+ 36275 - 11905: 0xD7E3,
+ 36276 - 11905: 0xC5BF,
+ 36277 - 11905: 0xF5C0,
+ 36278 - 11905: 0xDA8F,
+ 36279 - 11905: 0xDA90,
+ 36280 - 11905: 0xF5BB,
+ 36281 - 11905: 0xDA91,
+ 36282 - 11905: 0xF5C3,
+ 36283 - 11905: 0xDA92,
+ 36284 - 11905: 0xF5C2,
+ 36285 - 11905: 0xDA93,
+ 36286 - 11905: 0xD6BA,
+ 36287 - 11905: 0xF5C1,
+ 36288 - 11905: 0xDA94,
+ 36289 - 11905: 0xDA95,
+ 36290 - 11905: 0xDA96,
+ 36291 - 11905: 0xD4BE,
+ 36292 - 11905: 0xF5C4,
+ 36293 - 11905: 0xDA97,
+ 36294 - 11905: 0xF5CC,
+ 36295 - 11905: 0xDA98,
+ 36296 - 11905: 0xDA99,
+ 36297 - 11905: 0xDA9A,
+ 36298 - 11905: 0xDA9B,
+ 36299 - 11905: 0xB0CF,
+ 36300 - 11905: 0xB5F8,
+ 36301 - 11905: 0xDA9C,
+ 36302 - 11905: 0xF5C9,
+ 36303 - 11905: 0xF5CA,
+ 36304 - 11905: 0xDA9D,
+ 36305 - 11905: 0xC5DC,
+ 36306 - 11905: 0xDA9E,
+ 36307 - 11905: 0xDA9F,
+ 36308 - 11905: 0xDAA0,
+ 36309 - 11905: 0xDB40,
+ 36310 - 11905: 0xF5C5,
+ 36311 - 11905: 0xF5C6,
+ 36312 - 11905: 0xDB41,
+ 36313 - 11905: 0xDB42,
+ 36314 - 11905: 0xF5C7,
+ 36315 - 11905: 0xF5CB,
+ 36316 - 11905: 0xDB43,
+ 36317 - 11905: 0xBEE0,
+ 36318 - 11905: 0xF5C8,
+ 36319 - 11905: 0xB8FA,
+ 36320 - 11905: 0xDB44,
+ 36321 - 11905: 0xDB45,
+ 36322 - 11905: 0xDB46,
+ 36323 - 11905: 0xF5D0,
+ 36324 - 11905: 0xF5D3,
+ 36325 - 11905: 0xDB47,
+ 36326 - 11905: 0xDB48,
+ 36327 - 11905: 0xDB49,
+ 36328 - 11905: 0xBFE7,
+ 36329 - 11905: 0xDB4A,
+ 36330 - 11905: 0xB9F2,
+ 36331 - 11905: 0xF5BC,
+ 36332 - 11905: 0xF5CD,
+ 36333 - 11905: 0xDB4B,
+ 36334 - 11905: 0xDB4C,
+ 36335 - 11905: 0xC2B7,
+ 36336 - 11905: 0xDB4D,
+ 36337 - 11905: 0xDB4E,
+ 36338 - 11905: 0xDB4F,
+ 36339 - 11905: 0xCCF8,
+ 36340 - 11905: 0xDB50,
+ 36341 - 11905: 0xBCF9,
+ 36342 - 11905: 0xDB51,
+ 36343 - 11905: 0xF5CE,
+ 36344 - 11905: 0xF5CF,
+ 36345 - 11905: 0xF5D1,
+ 36346 - 11905: 0xB6E5,
+ 36347 - 11905: 0xF5D2,
+ 36348 - 11905: 0xDB52,
+ 36349 - 11905: 0xF5D5,
+ 36350 - 11905: 0xDB53,
+ 36351 - 11905: 0xDB54,
+ 36352 - 11905: 0xDB55,
+ 36353 - 11905: 0xDB56,
+ 36354 - 11905: 0xDB57,
+ 36355 - 11905: 0xDB58,
+ 36356 - 11905: 0xDB59,
+ 36357 - 11905: 0xF5BD,
+ 36358 - 11905: 0xDB5A,
+ 36359 - 11905: 0xDB5B,
+ 36360 - 11905: 0xDB5C,
+ 36361 - 11905: 0xF5D4,
+ 36362 - 11905: 0xD3BB,
+ 36363 - 11905: 0xDB5D,
+ 36364 - 11905: 0xB3EC,
+ 36365 - 11905: 0xDB5E,
+ 36366 - 11905: 0xDB5F,
+ 36367 - 11905: 0xCCA4,
+ 36368 - 11905: 0xDB60,
+ 36369 - 11905: 0xDB61,
+ 36370 - 11905: 0xDB62,
+ 36371 - 11905: 0xDB63,
+ 36372 - 11905: 0xF5D6,
+ 36373 - 11905: 0xDB64,
+ 36374 - 11905: 0xDB65,
+ 36375 - 11905: 0xDB66,
+ 36376 - 11905: 0xDB67,
+ 36377 - 11905: 0xDB68,
+ 36378 - 11905: 0xDB69,
+ 36379 - 11905: 0xDB6A,
+ 36380 - 11905: 0xDB6B,
+ 36381 - 11905: 0xF5D7,
+ 36382 - 11905: 0xBEE1,
+ 36383 - 11905: 0xF5D8,
+ 36384 - 11905: 0xDB6C,
+ 36385 - 11905: 0xDB6D,
+ 36386 - 11905: 0xCCDF,
+ 36387 - 11905: 0xF5DB,
+ 36388 - 11905: 0xDB6E,
+ 36389 - 11905: 0xDB6F,
+ 36390 - 11905: 0xDB70,
+ 36391 - 11905: 0xDB71,
+ 36392 - 11905: 0xDB72,
+ 36393 - 11905: 0xB2C8,
+ 36394 - 11905: 0xD7D9,
+ 36395 - 11905: 0xDB73,
+ 36396 - 11905: 0xF5D9,
+ 36397 - 11905: 0xDB74,
+ 36398 - 11905: 0xF5DA,
+ 36399 - 11905: 0xF5DC,
+ 36400 - 11905: 0xDB75,
+ 36401 - 11905: 0xF5E2,
+ 36402 - 11905: 0xDB76,
+ 36403 - 11905: 0xDB77,
+ 36404 - 11905: 0xDB78,
+ 36405 - 11905: 0xF5E0,
+ 36406 - 11905: 0xDB79,
+ 36407 - 11905: 0xDB7A,
+ 36408 - 11905: 0xDB7B,
+ 36409 - 11905: 0xF5DF,
+ 36410 - 11905: 0xF5DD,
+ 36411 - 11905: 0xDB7C,
+ 36412 - 11905: 0xDB7D,
+ 36413 - 11905: 0xF5E1,
+ 36414 - 11905: 0xDB7E,
+ 36415 - 11905: 0xDB80,
+ 36416 - 11905: 0xF5DE,
+ 36417 - 11905: 0xF5E4,
+ 36418 - 11905: 0xF5E5,
+ 36419 - 11905: 0xDB81,
+ 36420 - 11905: 0xCCE3,
+ 36421 - 11905: 0xDB82,
+ 36422 - 11905: 0xDB83,
+ 36423 - 11905: 0xE5BF,
+ 36424 - 11905: 0xB5B8,
+ 36425 - 11905: 0xF5E3,
+ 36426 - 11905: 0xF5E8,
+ 36427 - 11905: 0xCCA3,
+ 36428 - 11905: 0xDB84,
+ 36429 - 11905: 0xDB85,
+ 36430 - 11905: 0xDB86,
+ 36431 - 11905: 0xDB87,
+ 36432 - 11905: 0xDB88,
+ 36433 - 11905: 0xF5E6,
+ 36434 - 11905: 0xF5E7,
+ 36435 - 11905: 0xDB89,
+ 36436 - 11905: 0xDB8A,
+ 36437 - 11905: 0xDB8B,
+ 36438 - 11905: 0xDB8C,
+ 36439 - 11905: 0xDB8D,
+ 36440 - 11905: 0xDB8E,
+ 36441 - 11905: 0xF5BE,
+ 36442 - 11905: 0xDB8F,
+ 36443 - 11905: 0xDB90,
+ 36444 - 11905: 0xDB91,
+ 36445 - 11905: 0xDB92,
+ 36446 - 11905: 0xDB93,
+ 36447 - 11905: 0xDB94,
+ 36448 - 11905: 0xDB95,
+ 36449 - 11905: 0xDB96,
+ 36450 - 11905: 0xDB97,
+ 36451 - 11905: 0xDB98,
+ 36452 - 11905: 0xDB99,
+ 36453 - 11905: 0xDB9A,
+ 36454 - 11905: 0xB1C4,
+ 36455 - 11905: 0xDB9B,
+ 36456 - 11905: 0xDB9C,
+ 36457 - 11905: 0xF5BF,
+ 36458 - 11905: 0xDB9D,
+ 36459 - 11905: 0xDB9E,
+ 36460 - 11905: 0xB5C5,
+ 36461 - 11905: 0xB2E4,
+ 36462 - 11905: 0xDB9F,
+ 36463 - 11905: 0xF5EC,
+ 36464 - 11905: 0xF5E9,
+ 36465 - 11905: 0xDBA0,
+ 36466 - 11905: 0xB6D7,
+ 36467 - 11905: 0xDC40,
+ 36468 - 11905: 0xF5ED,
+ 36469 - 11905: 0xDC41,
+ 36470 - 11905: 0xF5EA,
+ 36471 - 11905: 0xDC42,
+ 36472 - 11905: 0xDC43,
+ 36473 - 11905: 0xDC44,
+ 36474 - 11905: 0xDC45,
+ 36475 - 11905: 0xDC46,
+ 36476 - 11905: 0xF5EB,
+ 36477 - 11905: 0xDC47,
+ 36478 - 11905: 0xDC48,
+ 36479 - 11905: 0xB4DA,
+ 36480 - 11905: 0xDC49,
+ 36481 - 11905: 0xD4EA,
+ 36482 - 11905: 0xDC4A,
+ 36483 - 11905: 0xDC4B,
+ 36484 - 11905: 0xDC4C,
+ 36485 - 11905: 0xF5EE,
+ 36486 - 11905: 0xDC4D,
+ 36487 - 11905: 0xB3F9,
+ 36488 - 11905: 0xDC4E,
+ 36489 - 11905: 0xDC4F,
+ 36490 - 11905: 0xDC50,
+ 36491 - 11905: 0xDC51,
+ 36492 - 11905: 0xDC52,
+ 36493 - 11905: 0xDC53,
+ 36494 - 11905: 0xDC54,
+ 36495 - 11905: 0xF5EF,
+ 36496 - 11905: 0xF5F1,
+ 36497 - 11905: 0xDC55,
+ 36498 - 11905: 0xDC56,
+ 36499 - 11905: 0xDC57,
+ 36500 - 11905: 0xF5F0,
+ 36501 - 11905: 0xDC58,
+ 36502 - 11905: 0xDC59,
+ 36503 - 11905: 0xDC5A,
+ 36504 - 11905: 0xDC5B,
+ 36505 - 11905: 0xDC5C,
+ 36506 - 11905: 0xDC5D,
+ 36507 - 11905: 0xDC5E,
+ 36508 - 11905: 0xF5F2,
+ 36509 - 11905: 0xDC5F,
+ 36510 - 11905: 0xF5F3,
+ 36511 - 11905: 0xDC60,
+ 36512 - 11905: 0xDC61,
+ 36513 - 11905: 0xDC62,
+ 36514 - 11905: 0xDC63,
+ 36515 - 11905: 0xDC64,
+ 36516 - 11905: 0xDC65,
+ 36517 - 11905: 0xDC66,
+ 36518 - 11905: 0xDC67,
+ 36519 - 11905: 0xDC68,
+ 36520 - 11905: 0xDC69,
+ 36521 - 11905: 0xDC6A,
+ 36522 - 11905: 0xDC6B,
+ 36523 - 11905: 0xC9ED,
+ 36524 - 11905: 0xB9AA,
+ 36525 - 11905: 0xDC6C,
+ 36526 - 11905: 0xDC6D,
+ 36527 - 11905: 0xC7FB,
+ 36528 - 11905: 0xDC6E,
+ 36529 - 11905: 0xDC6F,
+ 36530 - 11905: 0xB6E3,
+ 36531 - 11905: 0xDC70,
+ 36532 - 11905: 0xDC71,
+ 36533 - 11905: 0xDC72,
+ 36534 - 11905: 0xDC73,
+ 36535 - 11905: 0xDC74,
+ 36536 - 11905: 0xDC75,
+ 36537 - 11905: 0xDC76,
+ 36538 - 11905: 0xCCC9,
+ 36539 - 11905: 0xDC77,
+ 36540 - 11905: 0xDC78,
+ 36541 - 11905: 0xDC79,
+ 36542 - 11905: 0xDC7A,
+ 36543 - 11905: 0xDC7B,
+ 36544 - 11905: 0xDC7C,
+ 36545 - 11905: 0xDC7D,
+ 36546 - 11905: 0xDC7E,
+ 36547 - 11905: 0xDC80,
+ 36548 - 11905: 0xDC81,
+ 36549 - 11905: 0xDC82,
+ 36550 - 11905: 0xDC83,
+ 36551 - 11905: 0xDC84,
+ 36552 - 11905: 0xDC85,
+ 36553 - 11905: 0xDC86,
+ 36554 - 11905: 0xDC87,
+ 36555 - 11905: 0xDC88,
+ 36556 - 11905: 0xDC89,
+ 36557 - 11905: 0xDC8A,
+ 36558 - 11905: 0xEAA6,
+ 36559 - 11905: 0xDC8B,
+ 36560 - 11905: 0xDC8C,
+ 36561 - 11905: 0xDC8D,
+ 36562 - 11905: 0xDC8E,
+ 36563 - 11905: 0xDC8F,
+ 36564 - 11905: 0xDC90,
+ 36565 - 11905: 0xDC91,
+ 36566 - 11905: 0xDC92,
+ 36567 - 11905: 0xDC93,
+ 36568 - 11905: 0xDC94,
+ 36569 - 11905: 0xDC95,
+ 36570 - 11905: 0xDC96,
+ 36571 - 11905: 0xDC97,
+ 36572 - 11905: 0xDC98,
+ 36573 - 11905: 0xDC99,
+ 36574 - 11905: 0xDC9A,
+ 36575 - 11905: 0xDC9B,
+ 36576 - 11905: 0xDC9C,
+ 36577 - 11905: 0xDC9D,
+ 36578 - 11905: 0xDC9E,
+ 36579 - 11905: 0xDC9F,
+ 36580 - 11905: 0xDCA0,
+ 36581 - 11905: 0xDD40,
+ 36582 - 11905: 0xDD41,
+ 36583 - 11905: 0xDD42,
+ 36584 - 11905: 0xDD43,
+ 36585 - 11905: 0xDD44,
+ 36586 - 11905: 0xDD45,
+ 36587 - 11905: 0xDD46,
+ 36588 - 11905: 0xDD47,
+ 36589 - 11905: 0xDD48,
+ 36590 - 11905: 0xDD49,
+ 36591 - 11905: 0xDD4A,
+ 36592 - 11905: 0xDD4B,
+ 36593 - 11905: 0xDD4C,
+ 36594 - 11905: 0xDD4D,
+ 36595 - 11905: 0xDD4E,
+ 36596 - 11905: 0xDD4F,
+ 36597 - 11905: 0xDD50,
+ 36598 - 11905: 0xDD51,
+ 36599 - 11905: 0xDD52,
+ 36600 - 11905: 0xDD53,
+ 36601 - 11905: 0xDD54,
+ 36602 - 11905: 0xDD55,
+ 36603 - 11905: 0xDD56,
+ 36604 - 11905: 0xDD57,
+ 36605 - 11905: 0xDD58,
+ 36606 - 11905: 0xDD59,
+ 36607 - 11905: 0xDD5A,
+ 36608 - 11905: 0xDD5B,
+ 36609 - 11905: 0xDD5C,
+ 36610 - 11905: 0xDD5D,
+ 36611 - 11905: 0xDD5E,
+ 36612 - 11905: 0xDD5F,
+ 36613 - 11905: 0xDD60,
+ 36614 - 11905: 0xDD61,
+ 36615 - 11905: 0xDD62,
+ 36616 - 11905: 0xDD63,
+ 36617 - 11905: 0xDD64,
+ 36618 - 11905: 0xDD65,
+ 36619 - 11905: 0xDD66,
+ 36620 - 11905: 0xDD67,
+ 36621 - 11905: 0xDD68,
+ 36622 - 11905: 0xDD69,
+ 36623 - 11905: 0xDD6A,
+ 36624 - 11905: 0xDD6B,
+ 36625 - 11905: 0xDD6C,
+ 36626 - 11905: 0xDD6D,
+ 36627 - 11905: 0xDD6E,
+ 36628 - 11905: 0xDD6F,
+ 36629 - 11905: 0xDD70,
+ 36630 - 11905: 0xDD71,
+ 36631 - 11905: 0xDD72,
+ 36632 - 11905: 0xDD73,
+ 36633 - 11905: 0xDD74,
+ 36634 - 11905: 0xDD75,
+ 36635 - 11905: 0xDD76,
+ 36636 - 11905: 0xDD77,
+ 36637 - 11905: 0xDD78,
+ 36638 - 11905: 0xDD79,
+ 36639 - 11905: 0xDD7A,
+ 36640 - 11905: 0xDD7B,
+ 36641 - 11905: 0xDD7C,
+ 36642 - 11905: 0xDD7D,
+ 36643 - 11905: 0xDD7E,
+ 36644 - 11905: 0xDD80,
+ 36645 - 11905: 0xDD81,
+ 36646 - 11905: 0xDD82,
+ 36647 - 11905: 0xDD83,
+ 36648 - 11905: 0xDD84,
+ 36649 - 11905: 0xDD85,
+ 36650 - 11905: 0xDD86,
+ 36651 - 11905: 0xDD87,
+ 36652 - 11905: 0xDD88,
+ 36653 - 11905: 0xDD89,
+ 36654 - 11905: 0xDD8A,
+ 36655 - 11905: 0xDD8B,
+ 36656 - 11905: 0xDD8C,
+ 36657 - 11905: 0xDD8D,
+ 36658 - 11905: 0xDD8E,
+ 36659 - 11905: 0xDD8F,
+ 36660 - 11905: 0xDD90,
+ 36661 - 11905: 0xDD91,
+ 36662 - 11905: 0xDD92,
+ 36663 - 11905: 0xDD93,
+ 36664 - 11905: 0xDD94,
+ 36665 - 11905: 0xDD95,
+ 36666 - 11905: 0xDD96,
+ 36667 - 11905: 0xDD97,
+ 36668 - 11905: 0xDD98,
+ 36669 - 11905: 0xDD99,
+ 36670 - 11905: 0xDD9A,
+ 36671 - 11905: 0xDD9B,
+ 36672 - 11905: 0xDD9C,
+ 36673 - 11905: 0xDD9D,
+ 36674 - 11905: 0xDD9E,
+ 36675 - 11905: 0xDD9F,
+ 36676 - 11905: 0xDDA0,
+ 36677 - 11905: 0xDE40,
+ 36678 - 11905: 0xDE41,
+ 36679 - 11905: 0xDE42,
+ 36680 - 11905: 0xDE43,
+ 36681 - 11905: 0xDE44,
+ 36682 - 11905: 0xDE45,
+ 36683 - 11905: 0xDE46,
+ 36684 - 11905: 0xDE47,
+ 36685 - 11905: 0xDE48,
+ 36686 - 11905: 0xDE49,
+ 36687 - 11905: 0xDE4A,
+ 36688 - 11905: 0xDE4B,
+ 36689 - 11905: 0xDE4C,
+ 36690 - 11905: 0xDE4D,
+ 36691 - 11905: 0xDE4E,
+ 36692 - 11905: 0xDE4F,
+ 36693 - 11905: 0xDE50,
+ 36694 - 11905: 0xDE51,
+ 36695 - 11905: 0xDE52,
+ 36696 - 11905: 0xDE53,
+ 36697 - 11905: 0xDE54,
+ 36698 - 11905: 0xDE55,
+ 36699 - 11905: 0xDE56,
+ 36700 - 11905: 0xDE57,
+ 36701 - 11905: 0xDE58,
+ 36702 - 11905: 0xDE59,
+ 36703 - 11905: 0xDE5A,
+ 36704 - 11905: 0xDE5B,
+ 36705 - 11905: 0xDE5C,
+ 36706 - 11905: 0xDE5D,
+ 36707 - 11905: 0xDE5E,
+ 36708 - 11905: 0xDE5F,
+ 36709 - 11905: 0xDE60,
+ 36710 - 11905: 0xB3B5,
+ 36711 - 11905: 0xD4FE,
+ 36712 - 11905: 0xB9EC,
+ 36713 - 11905: 0xD0F9,
+ 36714 - 11905: 0xDE61,
+ 36715 - 11905: 0xE9ED,
+ 36716 - 11905: 0xD7AA,
+ 36717 - 11905: 0xE9EE,
+ 36718 - 11905: 0xC2D6,
+ 36719 - 11905: 0xC8ED,
+ 36720 - 11905: 0xBAE4,
+ 36721 - 11905: 0xE9EF,
+ 36722 - 11905: 0xE9F0,
+ 36723 - 11905: 0xE9F1,
+ 36724 - 11905: 0xD6E1,
+ 36725 - 11905: 0xE9F2,
+ 36726 - 11905: 0xE9F3,
+ 36727 - 11905: 0xE9F5,
+ 36728 - 11905: 0xE9F4,
+ 36729 - 11905: 0xE9F6,
+ 36730 - 11905: 0xE9F7,
+ 36731 - 11905: 0xC7E1,
+ 36732 - 11905: 0xE9F8,
+ 36733 - 11905: 0xD4D8,
+ 36734 - 11905: 0xE9F9,
+ 36735 - 11905: 0xBDCE,
+ 36736 - 11905: 0xDE62,
+ 36737 - 11905: 0xE9FA,
+ 36738 - 11905: 0xE9FB,
+ 36739 - 11905: 0xBDCF,
+ 36740 - 11905: 0xE9FC,
+ 36741 - 11905: 0xB8A8,
+ 36742 - 11905: 0xC1BE,
+ 36743 - 11905: 0xE9FD,
+ 36744 - 11905: 0xB1B2,
+ 36745 - 11905: 0xBBD4,
+ 36746 - 11905: 0xB9F5,
+ 36747 - 11905: 0xE9FE,
+ 36748 - 11905: 0xDE63,
+ 36749 - 11905: 0xEAA1,
+ 36750 - 11905: 0xEAA2,
+ 36751 - 11905: 0xEAA3,
+ 36752 - 11905: 0xB7F8,
+ 36753 - 11905: 0xBCAD,
+ 36754 - 11905: 0xDE64,
+ 36755 - 11905: 0xCAE4,
+ 36756 - 11905: 0xE0CE,
+ 36757 - 11905: 0xD4AF,
+ 36758 - 11905: 0xCFBD,
+ 36759 - 11905: 0xD5B7,
+ 36760 - 11905: 0xEAA4,
+ 36761 - 11905: 0xD5DE,
+ 36762 - 11905: 0xEAA5,
+ 36763 - 11905: 0xD0C1,
+ 36764 - 11905: 0xB9BC,
+ 36765 - 11905: 0xDE65,
+ 36766 - 11905: 0xB4C7,
+ 36767 - 11905: 0xB1D9,
+ 36768 - 11905: 0xDE66,
+ 36769 - 11905: 0xDE67,
+ 36770 - 11905: 0xDE68,
+ 36771 - 11905: 0xC0B1,
+ 36772 - 11905: 0xDE69,
+ 36773 - 11905: 0xDE6A,
+ 36774 - 11905: 0xDE6B,
+ 36775 - 11905: 0xDE6C,
+ 36776 - 11905: 0xB1E6,
+ 36777 - 11905: 0xB1E7,
+ 36778 - 11905: 0xDE6D,
+ 36779 - 11905: 0xB1E8,
+ 36780 - 11905: 0xDE6E,
+ 36781 - 11905: 0xDE6F,
+ 36782 - 11905: 0xDE70,
+ 36783 - 11905: 0xDE71,
+ 36784 - 11905: 0xB3BD,
+ 36785 - 11905: 0xC8E8,
+ 36786 - 11905: 0xDE72,
+ 36787 - 11905: 0xDE73,
+ 36788 - 11905: 0xDE74,
+ 36789 - 11905: 0xDE75,
+ 36790 - 11905: 0xE5C1,
+ 36791 - 11905: 0xDE76,
+ 36792 - 11905: 0xDE77,
+ 36793 - 11905: 0xB1DF,
+ 36794 - 11905: 0xDE78,
+ 36795 - 11905: 0xDE79,
+ 36796 - 11905: 0xDE7A,
+ 36797 - 11905: 0xC1C9,
+ 36798 - 11905: 0xB4EF,
+ 36799 - 11905: 0xDE7B,
+ 36800 - 11905: 0xDE7C,
+ 36801 - 11905: 0xC7A8,
+ 36802 - 11905: 0xD3D8,
+ 36803 - 11905: 0xDE7D,
+ 36804 - 11905: 0xC6F9,
+ 36805 - 11905: 0xD1B8,
+ 36806 - 11905: 0xDE7E,
+ 36807 - 11905: 0xB9FD,
+ 36808 - 11905: 0xC2F5,
+ 36809 - 11905: 0xDE80,
+ 36810 - 11905: 0xDE81,
+ 36811 - 11905: 0xDE82,
+ 36812 - 11905: 0xDE83,
+ 36813 - 11905: 0xDE84,
+ 36814 - 11905: 0xD3AD,
+ 36815 - 11905: 0xDE85,
+ 36816 - 11905: 0xD4CB,
+ 36817 - 11905: 0xBDFC,
+ 36818 - 11905: 0xDE86,
+ 36819 - 11905: 0xE5C2,
+ 36820 - 11905: 0xB7B5,
+ 36821 - 11905: 0xE5C3,
+ 36822 - 11905: 0xDE87,
+ 36823 - 11905: 0xDE88,
+ 36824 - 11905: 0xBBB9,
+ 36825 - 11905: 0xD5E2,
+ 36826 - 11905: 0xDE89,
+ 36827 - 11905: 0xBDF8,
+ 36828 - 11905: 0xD4B6,
+ 36829 - 11905: 0xCEA5,
+ 36830 - 11905: 0xC1AC,
+ 36831 - 11905: 0xB3D9,
+ 36832 - 11905: 0xDE8A,
+ 36833 - 11905: 0xDE8B,
+ 36834 - 11905: 0xCCF6,
+ 36835 - 11905: 0xDE8C,
+ 36836 - 11905: 0xE5C6,
+ 36837 - 11905: 0xE5C4,
+ 36838 - 11905: 0xE5C8,
+ 36839 - 11905: 0xDE8D,
+ 36840 - 11905: 0xE5CA,
+ 36841 - 11905: 0xE5C7,
+ 36842 - 11905: 0xB5CF,
+ 36843 - 11905: 0xC6C8,
+ 36844 - 11905: 0xDE8E,
+ 36845 - 11905: 0xB5FC,
+ 36846 - 11905: 0xE5C5,
+ 36847 - 11905: 0xDE8F,
+ 36848 - 11905: 0xCAF6,
+ 36849 - 11905: 0xDE90,
+ 36850 - 11905: 0xDE91,
+ 36851 - 11905: 0xE5C9,
+ 36852 - 11905: 0xDE92,
+ 36853 - 11905: 0xDE93,
+ 36854 - 11905: 0xDE94,
+ 36855 - 11905: 0xC3D4,
+ 36856 - 11905: 0xB1C5,
+ 36857 - 11905: 0xBCA3,
+ 36858 - 11905: 0xDE95,
+ 36859 - 11905: 0xDE96,
+ 36860 - 11905: 0xDE97,
+ 36861 - 11905: 0xD7B7,
+ 36862 - 11905: 0xDE98,
+ 36863 - 11905: 0xDE99,
+ 36864 - 11905: 0xCDCB,
+ 36865 - 11905: 0xCBCD,
+ 36866 - 11905: 0xCACA,
+ 36867 - 11905: 0xCCD3,
+ 36868 - 11905: 0xE5CC,
+ 36869 - 11905: 0xE5CB,
+ 36870 - 11905: 0xC4E6,
+ 36871 - 11905: 0xDE9A,
+ 36872 - 11905: 0xDE9B,
+ 36873 - 11905: 0xD1A1,
+ 36874 - 11905: 0xD1B7,
+ 36875 - 11905: 0xE5CD,
+ 36876 - 11905: 0xDE9C,
+ 36877 - 11905: 0xE5D0,
+ 36878 - 11905: 0xDE9D,
+ 36879 - 11905: 0xCDB8,
+ 36880 - 11905: 0xD6F0,
+ 36881 - 11905: 0xE5CF,
+ 36882 - 11905: 0xB5DD,
+ 36883 - 11905: 0xDE9E,
+ 36884 - 11905: 0xCDBE,
+ 36885 - 11905: 0xDE9F,
+ 36886 - 11905: 0xE5D1,
+ 36887 - 11905: 0xB6BA,
+ 36888 - 11905: 0xDEA0,
+ 36889 - 11905: 0xDF40,
+ 36890 - 11905: 0xCDA8,
+ 36891 - 11905: 0xB9E4,
+ 36892 - 11905: 0xDF41,
+ 36893 - 11905: 0xCAC5,
+ 36894 - 11905: 0xB3D1,
+ 36895 - 11905: 0xCBD9,
+ 36896 - 11905: 0xD4EC,
+ 36897 - 11905: 0xE5D2,
+ 36898 - 11905: 0xB7EA,
+ 36899 - 11905: 0xDF42,
+ 36900 - 11905: 0xDF43,
+ 36901 - 11905: 0xDF44,
+ 36902 - 11905: 0xE5CE,
+ 36903 - 11905: 0xDF45,
+ 36904 - 11905: 0xDF46,
+ 36905 - 11905: 0xDF47,
+ 36906 - 11905: 0xDF48,
+ 36907 - 11905: 0xDF49,
+ 36908 - 11905: 0xDF4A,
+ 36909 - 11905: 0xE5D5,
+ 36910 - 11905: 0xB4FE,
+ 36911 - 11905: 0xE5D6,
+ 36912 - 11905: 0xDF4B,
+ 36913 - 11905: 0xDF4C,
+ 36914 - 11905: 0xDF4D,
+ 36915 - 11905: 0xDF4E,
+ 36916 - 11905: 0xDF4F,
+ 36917 - 11905: 0xE5D3,
+ 36918 - 11905: 0xE5D4,
+ 36919 - 11905: 0xDF50,
+ 36920 - 11905: 0xD2DD,
+ 36921 - 11905: 0xDF51,
+ 36922 - 11905: 0xDF52,
+ 36923 - 11905: 0xC2DF,
+ 36924 - 11905: 0xB1C6,
+ 36925 - 11905: 0xDF53,
+ 36926 - 11905: 0xD3E2,
+ 36927 - 11905: 0xDF54,
+ 36928 - 11905: 0xDF55,
+ 36929 - 11905: 0xB6DD,
+ 36930 - 11905: 0xCBEC,
+ 36931 - 11905: 0xDF56,
+ 36932 - 11905: 0xE5D7,
+ 36933 - 11905: 0xDF57,
+ 36934 - 11905: 0xDF58,
+ 36935 - 11905: 0xD3F6,
+ 36936 - 11905: 0xDF59,
+ 36937 - 11905: 0xDF5A,
+ 36938 - 11905: 0xDF5B,
+ 36939 - 11905: 0xDF5C,
+ 36940 - 11905: 0xDF5D,
+ 36941 - 11905: 0xB1E9,
+ 36942 - 11905: 0xDF5E,
+ 36943 - 11905: 0xB6F4,
+ 36944 - 11905: 0xE5DA,
+ 36945 - 11905: 0xE5D8,
+ 36946 - 11905: 0xE5D9,
+ 36947 - 11905: 0xB5C0,
+ 36948 - 11905: 0xDF5F,
+ 36949 - 11905: 0xDF60,
+ 36950 - 11905: 0xDF61,
+ 36951 - 11905: 0xD2C5,
+ 36952 - 11905: 0xE5DC,
+ 36953 - 11905: 0xDF62,
+ 36954 - 11905: 0xDF63,
+ 36955 - 11905: 0xE5DE,
+ 36956 - 11905: 0xDF64,
+ 36957 - 11905: 0xDF65,
+ 36958 - 11905: 0xDF66,
+ 36959 - 11905: 0xDF67,
+ 36960 - 11905: 0xDF68,
+ 36961 - 11905: 0xDF69,
+ 36962 - 11905: 0xE5DD,
+ 36963 - 11905: 0xC7B2,
+ 36964 - 11905: 0xDF6A,
+ 36965 - 11905: 0xD2A3,
+ 36966 - 11905: 0xDF6B,
+ 36967 - 11905: 0xDF6C,
+ 36968 - 11905: 0xE5DB,
+ 36969 - 11905: 0xDF6D,
+ 36970 - 11905: 0xDF6E,
+ 36971 - 11905: 0xDF6F,
+ 36972 - 11905: 0xDF70,
+ 36973 - 11905: 0xD4E2,
+ 36974 - 11905: 0xD5DA,
+ 36975 - 11905: 0xDF71,
+ 36976 - 11905: 0xDF72,
+ 36977 - 11905: 0xDF73,
+ 36978 - 11905: 0xDF74,
+ 36979 - 11905: 0xDF75,
+ 36980 - 11905: 0xE5E0,
+ 36981 - 11905: 0xD7F1,
+ 36982 - 11905: 0xDF76,
+ 36983 - 11905: 0xDF77,
+ 36984 - 11905: 0xDF78,
+ 36985 - 11905: 0xDF79,
+ 36986 - 11905: 0xDF7A,
+ 36987 - 11905: 0xDF7B,
+ 36988 - 11905: 0xDF7C,
+ 36989 - 11905: 0xE5E1,
+ 36990 - 11905: 0xDF7D,
+ 36991 - 11905: 0xB1DC,
+ 36992 - 11905: 0xD1FB,
+ 36993 - 11905: 0xDF7E,
+ 36994 - 11905: 0xE5E2,
+ 36995 - 11905: 0xE5E4,
+ 36996 - 11905: 0xDF80,
+ 36997 - 11905: 0xDF81,
+ 36998 - 11905: 0xDF82,
+ 36999 - 11905: 0xDF83,
+ 37000 - 11905: 0xE5E3,
+ 37001 - 11905: 0xDF84,
+ 37002 - 11905: 0xDF85,
+ 37003 - 11905: 0xE5E5,
+ 37004 - 11905: 0xDF86,
+ 37005 - 11905: 0xDF87,
+ 37006 - 11905: 0xDF88,
+ 37007 - 11905: 0xDF89,
+ 37008 - 11905: 0xDF8A,
+ 37009 - 11905: 0xD2D8,
+ 37010 - 11905: 0xDF8B,
+ 37011 - 11905: 0xB5CB,
+ 37012 - 11905: 0xDF8C,
+ 37013 - 11905: 0xE7DF,
+ 37014 - 11905: 0xDF8D,
+ 37015 - 11905: 0xDAF5,
+ 37016 - 11905: 0xDF8E,
+ 37017 - 11905: 0xDAF8,
+ 37018 - 11905: 0xDF8F,
+ 37019 - 11905: 0xDAF6,
+ 37020 - 11905: 0xDF90,
+ 37021 - 11905: 0xDAF7,
+ 37022 - 11905: 0xDF91,
+ 37023 - 11905: 0xDF92,
+ 37024 - 11905: 0xDF93,
+ 37025 - 11905: 0xDAFA,
+ 37026 - 11905: 0xD0CF,
+ 37027 - 11905: 0xC4C7,
+ 37028 - 11905: 0xDF94,
+ 37029 - 11905: 0xDF95,
+ 37030 - 11905: 0xB0EE,
+ 37031 - 11905: 0xDF96,
+ 37032 - 11905: 0xDF97,
+ 37033 - 11905: 0xDF98,
+ 37034 - 11905: 0xD0B0,
+ 37035 - 11905: 0xDF99,
+ 37036 - 11905: 0xDAF9,
+ 37037 - 11905: 0xDF9A,
+ 37038 - 11905: 0xD3CA,
+ 37039 - 11905: 0xBAAA,
+ 37040 - 11905: 0xDBA2,
+ 37041 - 11905: 0xC7F1,
+ 37042 - 11905: 0xDF9B,
+ 37043 - 11905: 0xDAFC,
+ 37044 - 11905: 0xDAFB,
+ 37045 - 11905: 0xC9DB,
+ 37046 - 11905: 0xDAFD,
+ 37047 - 11905: 0xDF9C,
+ 37048 - 11905: 0xDBA1,
+ 37049 - 11905: 0xD7DE,
+ 37050 - 11905: 0xDAFE,
+ 37051 - 11905: 0xC1DA,
+ 37052 - 11905: 0xDF9D,
+ 37053 - 11905: 0xDF9E,
+ 37054 - 11905: 0xDBA5,
+ 37055 - 11905: 0xDF9F,
+ 37056 - 11905: 0xDFA0,
+ 37057 - 11905: 0xD3F4,
+ 37058 - 11905: 0xE040,
+ 37059 - 11905: 0xE041,
+ 37060 - 11905: 0xDBA7,
+ 37061 - 11905: 0xDBA4,
+ 37062 - 11905: 0xE042,
+ 37063 - 11905: 0xDBA8,
+ 37064 - 11905: 0xE043,
+ 37065 - 11905: 0xE044,
+ 37066 - 11905: 0xBDBC,
+ 37067 - 11905: 0xE045,
+ 37068 - 11905: 0xE046,
+ 37069 - 11905: 0xE047,
+ 37070 - 11905: 0xC0C9,
+ 37071 - 11905: 0xDBA3,
+ 37072 - 11905: 0xDBA6,
+ 37073 - 11905: 0xD6A3,
+ 37074 - 11905: 0xE048,
+ 37075 - 11905: 0xDBA9,
+ 37076 - 11905: 0xE049,
+ 37077 - 11905: 0xE04A,
+ 37078 - 11905: 0xE04B,
+ 37079 - 11905: 0xDBAD,
+ 37080 - 11905: 0xE04C,
+ 37081 - 11905: 0xE04D,
+ 37082 - 11905: 0xE04E,
+ 37083 - 11905: 0xDBAE,
+ 37084 - 11905: 0xDBAC,
+ 37085 - 11905: 0xBAC2,
+ 37086 - 11905: 0xE04F,
+ 37087 - 11905: 0xE050,
+ 37088 - 11905: 0xE051,
+ 37089 - 11905: 0xBFA4,
+ 37090 - 11905: 0xDBAB,
+ 37091 - 11905: 0xE052,
+ 37092 - 11905: 0xE053,
+ 37093 - 11905: 0xE054,
+ 37094 - 11905: 0xDBAA,
+ 37095 - 11905: 0xD4C7,
+ 37096 - 11905: 0xB2BF,
+ 37097 - 11905: 0xE055,
+ 37098 - 11905: 0xE056,
+ 37099 - 11905: 0xDBAF,
+ 37100 - 11905: 0xE057,
+ 37101 - 11905: 0xB9F9,
+ 37102 - 11905: 0xE058,
+ 37103 - 11905: 0xDBB0,
+ 37104 - 11905: 0xE059,
+ 37105 - 11905: 0xE05A,
+ 37106 - 11905: 0xE05B,
+ 37107 - 11905: 0xE05C,
+ 37108 - 11905: 0xB3BB,
+ 37109 - 11905: 0xE05D,
+ 37110 - 11905: 0xE05E,
+ 37111 - 11905: 0xE05F,
+ 37112 - 11905: 0xB5A6,
+ 37113 - 11905: 0xE060,
+ 37114 - 11905: 0xE061,
+ 37115 - 11905: 0xE062,
+ 37116 - 11905: 0xE063,
+ 37117 - 11905: 0xB6BC,
+ 37118 - 11905: 0xDBB1,
+ 37119 - 11905: 0xE064,
+ 37120 - 11905: 0xE065,
+ 37121 - 11905: 0xE066,
+ 37122 - 11905: 0xB6F5,
+ 37123 - 11905: 0xE067,
+ 37124 - 11905: 0xDBB2,
+ 37125 - 11905: 0xE068,
+ 37126 - 11905: 0xE069,
+ 37127 - 11905: 0xE06A,
+ 37128 - 11905: 0xE06B,
+ 37129 - 11905: 0xE06C,
+ 37130 - 11905: 0xE06D,
+ 37131 - 11905: 0xE06E,
+ 37132 - 11905: 0xE06F,
+ 37133 - 11905: 0xE070,
+ 37134 - 11905: 0xE071,
+ 37135 - 11905: 0xE072,
+ 37136 - 11905: 0xE073,
+ 37137 - 11905: 0xE074,
+ 37138 - 11905: 0xE075,
+ 37139 - 11905: 0xE076,
+ 37140 - 11905: 0xE077,
+ 37141 - 11905: 0xE078,
+ 37142 - 11905: 0xE079,
+ 37143 - 11905: 0xE07A,
+ 37144 - 11905: 0xE07B,
+ 37145 - 11905: 0xB1C9,
+ 37146 - 11905: 0xE07C,
+ 37147 - 11905: 0xE07D,
+ 37148 - 11905: 0xE07E,
+ 37149 - 11905: 0xE080,
+ 37150 - 11905: 0xDBB4,
+ 37151 - 11905: 0xE081,
+ 37152 - 11905: 0xE082,
+ 37153 - 11905: 0xE083,
+ 37154 - 11905: 0xDBB3,
+ 37155 - 11905: 0xDBB5,
+ 37156 - 11905: 0xE084,
+ 37157 - 11905: 0xE085,
+ 37158 - 11905: 0xE086,
+ 37159 - 11905: 0xE087,
+ 37160 - 11905: 0xE088,
+ 37161 - 11905: 0xE089,
+ 37162 - 11905: 0xE08A,
+ 37163 - 11905: 0xE08B,
+ 37164 - 11905: 0xE08C,
+ 37165 - 11905: 0xE08D,
+ 37166 - 11905: 0xE08E,
+ 37167 - 11905: 0xDBB7,
+ 37168 - 11905: 0xE08F,
+ 37169 - 11905: 0xDBB6,
+ 37170 - 11905: 0xE090,
+ 37171 - 11905: 0xE091,
+ 37172 - 11905: 0xE092,
+ 37173 - 11905: 0xE093,
+ 37174 - 11905: 0xE094,
+ 37175 - 11905: 0xE095,
+ 37176 - 11905: 0xE096,
+ 37177 - 11905: 0xDBB8,
+ 37178 - 11905: 0xE097,
+ 37179 - 11905: 0xE098,
+ 37180 - 11905: 0xE099,
+ 37181 - 11905: 0xE09A,
+ 37182 - 11905: 0xE09B,
+ 37183 - 11905: 0xE09C,
+ 37184 - 11905: 0xE09D,
+ 37185 - 11905: 0xE09E,
+ 37186 - 11905: 0xE09F,
+ 37187 - 11905: 0xDBB9,
+ 37188 - 11905: 0xE0A0,
+ 37189 - 11905: 0xE140,
+ 37190 - 11905: 0xDBBA,
+ 37191 - 11905: 0xE141,
+ 37192 - 11905: 0xE142,
+ 37193 - 11905: 0xD3CF,
+ 37194 - 11905: 0xF4FA,
+ 37195 - 11905: 0xC7F5,
+ 37196 - 11905: 0xD7C3,
+ 37197 - 11905: 0xC5E4,
+ 37198 - 11905: 0xF4FC,
+ 37199 - 11905: 0xF4FD,
+ 37200 - 11905: 0xF4FB,
+ 37201 - 11905: 0xE143,
+ 37202 - 11905: 0xBEC6,
+ 37203 - 11905: 0xE144,
+ 37204 - 11905: 0xE145,
+ 37205 - 11905: 0xE146,
+ 37206 - 11905: 0xE147,
+ 37207 - 11905: 0xD0EF,
+ 37208 - 11905: 0xE148,
+ 37209 - 11905: 0xE149,
+ 37210 - 11905: 0xB7D3,
+ 37211 - 11905: 0xE14A,
+ 37212 - 11905: 0xE14B,
+ 37213 - 11905: 0xD4CD,
+ 37214 - 11905: 0xCCAA,
+ 37215 - 11905: 0xE14C,
+ 37216 - 11905: 0xE14D,
+ 37217 - 11905: 0xF5A2,
+ 37218 - 11905: 0xF5A1,
+ 37219 - 11905: 0xBAA8,
+ 37220 - 11905: 0xF4FE,
+ 37221 - 11905: 0xCBD6,
+ 37222 - 11905: 0xE14E,
+ 37223 - 11905: 0xE14F,
+ 37224 - 11905: 0xE150,
+ 37225 - 11905: 0xF5A4,
+ 37226 - 11905: 0xC0D2,
+ 37227 - 11905: 0xE151,
+ 37228 - 11905: 0xB3EA,
+ 37229 - 11905: 0xE152,
+ 37230 - 11905: 0xCDAA,
+ 37231 - 11905: 0xF5A5,
+ 37232 - 11905: 0xF5A3,
+ 37233 - 11905: 0xBDB4,
+ 37234 - 11905: 0xF5A8,
+ 37235 - 11905: 0xE153,
+ 37236 - 11905: 0xF5A9,
+ 37237 - 11905: 0xBDCD,
+ 37238 - 11905: 0xC3B8,
+ 37239 - 11905: 0xBFE1,
+ 37240 - 11905: 0xCBE1,
+ 37241 - 11905: 0xF5AA,
+ 37242 - 11905: 0xE154,
+ 37243 - 11905: 0xE155,
+ 37244 - 11905: 0xE156,
+ 37245 - 11905: 0xF5A6,
+ 37246 - 11905: 0xF5A7,
+ 37247 - 11905: 0xC4F0,
+ 37248 - 11905: 0xE157,
+ 37249 - 11905: 0xE158,
+ 37250 - 11905: 0xE159,
+ 37251 - 11905: 0xE15A,
+ 37252 - 11905: 0xE15B,
+ 37253 - 11905: 0xF5AC,
+ 37254 - 11905: 0xE15C,
+ 37255 - 11905: 0xB4BC,
+ 37256 - 11905: 0xE15D,
+ 37257 - 11905: 0xD7ED,
+ 37258 - 11905: 0xE15E,
+ 37259 - 11905: 0xB4D7,
+ 37260 - 11905: 0xF5AB,
+ 37261 - 11905: 0xF5AE,
+ 37262 - 11905: 0xE15F,
+ 37263 - 11905: 0xE160,
+ 37264 - 11905: 0xF5AD,
+ 37265 - 11905: 0xF5AF,
+ 37266 - 11905: 0xD0D1,
+ 37267 - 11905: 0xE161,
+ 37268 - 11905: 0xE162,
+ 37269 - 11905: 0xE163,
+ 37270 - 11905: 0xE164,
+ 37271 - 11905: 0xE165,
+ 37272 - 11905: 0xE166,
+ 37273 - 11905: 0xE167,
+ 37274 - 11905: 0xC3D1,
+ 37275 - 11905: 0xC8A9,
+ 37276 - 11905: 0xE168,
+ 37277 - 11905: 0xE169,
+ 37278 - 11905: 0xE16A,
+ 37279 - 11905: 0xE16B,
+ 37280 - 11905: 0xE16C,
+ 37281 - 11905: 0xE16D,
+ 37282 - 11905: 0xF5B0,
+ 37283 - 11905: 0xF5B1,
+ 37284 - 11905: 0xE16E,
+ 37285 - 11905: 0xE16F,
+ 37286 - 11905: 0xE170,
+ 37287 - 11905: 0xE171,
+ 37288 - 11905: 0xE172,
+ 37289 - 11905: 0xE173,
+ 37290 - 11905: 0xF5B2,
+ 37291 - 11905: 0xE174,
+ 37292 - 11905: 0xE175,
+ 37293 - 11905: 0xF5B3,
+ 37294 - 11905: 0xF5B4,
+ 37295 - 11905: 0xF5B5,
+ 37296 - 11905: 0xE176,
+ 37297 - 11905: 0xE177,
+ 37298 - 11905: 0xE178,
+ 37299 - 11905: 0xE179,
+ 37300 - 11905: 0xF5B7,
+ 37301 - 11905: 0xF5B6,
+ 37302 - 11905: 0xE17A,
+ 37303 - 11905: 0xE17B,
+ 37304 - 11905: 0xE17C,
+ 37305 - 11905: 0xE17D,
+ 37306 - 11905: 0xF5B8,
+ 37307 - 11905: 0xE17E,
+ 37308 - 11905: 0xE180,
+ 37309 - 11905: 0xE181,
+ 37310 - 11905: 0xE182,
+ 37311 - 11905: 0xE183,
+ 37312 - 11905: 0xE184,
+ 37313 - 11905: 0xE185,
+ 37314 - 11905: 0xE186,
+ 37315 - 11905: 0xE187,
+ 37316 - 11905: 0xE188,
+ 37317 - 11905: 0xE189,
+ 37318 - 11905: 0xE18A,
+ 37319 - 11905: 0xB2C9,
+ 37320 - 11905: 0xE18B,
+ 37321 - 11905: 0xD3D4,
+ 37322 - 11905: 0xCACD,
+ 37323 - 11905: 0xE18C,
+ 37324 - 11905: 0xC0EF,
+ 37325 - 11905: 0xD6D8,
+ 37326 - 11905: 0xD2B0,
+ 37327 - 11905: 0xC1BF,
+ 37328 - 11905: 0xE18D,
+ 37329 - 11905: 0xBDF0,
+ 37330 - 11905: 0xE18E,
+ 37331 - 11905: 0xE18F,
+ 37332 - 11905: 0xE190,
+ 37333 - 11905: 0xE191,
+ 37334 - 11905: 0xE192,
+ 37335 - 11905: 0xE193,
+ 37336 - 11905: 0xE194,
+ 37337 - 11905: 0xE195,
+ 37338 - 11905: 0xE196,
+ 37339 - 11905: 0xE197,
+ 37340 - 11905: 0xB8AA,
+ 37341 - 11905: 0xE198,
+ 37342 - 11905: 0xE199,
+ 37343 - 11905: 0xE19A,
+ 37344 - 11905: 0xE19B,
+ 37345 - 11905: 0xE19C,
+ 37346 - 11905: 0xE19D,
+ 37347 - 11905: 0xE19E,
+ 37348 - 11905: 0xE19F,
+ 37349 - 11905: 0xE1A0,
+ 37350 - 11905: 0xE240,
+ 37351 - 11905: 0xE241,
+ 37352 - 11905: 0xE242,
+ 37353 - 11905: 0xE243,
+ 37354 - 11905: 0xE244,
+ 37355 - 11905: 0xE245,
+ 37356 - 11905: 0xE246,
+ 37357 - 11905: 0xE247,
+ 37358 - 11905: 0xE248,
+ 37359 - 11905: 0xE249,
+ 37360 - 11905: 0xE24A,
+ 37361 - 11905: 0xE24B,
+ 37362 - 11905: 0xE24C,
+ 37363 - 11905: 0xE24D,
+ 37364 - 11905: 0xE24E,
+ 37365 - 11905: 0xE24F,
+ 37366 - 11905: 0xE250,
+ 37367 - 11905: 0xE251,
+ 37368 - 11905: 0xE252,
+ 37369 - 11905: 0xE253,
+ 37370 - 11905: 0xE254,
+ 37371 - 11905: 0xE255,
+ 37372 - 11905: 0xE256,
+ 37373 - 11905: 0xE257,
+ 37374 - 11905: 0xE258,
+ 37375 - 11905: 0xE259,
+ 37376 - 11905: 0xE25A,
+ 37377 - 11905: 0xE25B,
+ 37378 - 11905: 0xE25C,
+ 37379 - 11905: 0xE25D,
+ 37380 - 11905: 0xE25E,
+ 37381 - 11905: 0xE25F,
+ 37382 - 11905: 0xE260,
+ 37383 - 11905: 0xE261,
+ 37384 - 11905: 0xE262,
+ 37385 - 11905: 0xE263,
+ 37386 - 11905: 0xE264,
+ 37387 - 11905: 0xE265,
+ 37388 - 11905: 0xE266,
+ 37389 - 11905: 0xE267,
+ 37390 - 11905: 0xE268,
+ 37391 - 11905: 0xE269,
+ 37392 - 11905: 0xE26A,
+ 37393 - 11905: 0xE26B,
+ 37394 - 11905: 0xE26C,
+ 37395 - 11905: 0xE26D,
+ 37396 - 11905: 0xE26E,
+ 37397 - 11905: 0xE26F,
+ 37398 - 11905: 0xE270,
+ 37399 - 11905: 0xE271,
+ 37400 - 11905: 0xE272,
+ 37401 - 11905: 0xE273,
+ 37402 - 11905: 0xE274,
+ 37403 - 11905: 0xE275,
+ 37404 - 11905: 0xE276,
+ 37405 - 11905: 0xE277,
+ 37406 - 11905: 0xE278,
+ 37407 - 11905: 0xE279,
+ 37408 - 11905: 0xE27A,
+ 37409 - 11905: 0xE27B,
+ 37410 - 11905: 0xE27C,
+ 37411 - 11905: 0xE27D,
+ 37412 - 11905: 0xE27E,
+ 37413 - 11905: 0xE280,
+ 37414 - 11905: 0xE281,
+ 37415 - 11905: 0xE282,
+ 37416 - 11905: 0xE283,
+ 37417 - 11905: 0xE284,
+ 37418 - 11905: 0xE285,
+ 37419 - 11905: 0xE286,
+ 37420 - 11905: 0xE287,
+ 37421 - 11905: 0xE288,
+ 37422 - 11905: 0xE289,
+ 37423 - 11905: 0xE28A,
+ 37424 - 11905: 0xE28B,
+ 37425 - 11905: 0xE28C,
+ 37426 - 11905: 0xE28D,
+ 37427 - 11905: 0xE28E,
+ 37428 - 11905: 0xE28F,
+ 37429 - 11905: 0xE290,
+ 37430 - 11905: 0xE291,
+ 37431 - 11905: 0xE292,
+ 37432 - 11905: 0xE293,
+ 37433 - 11905: 0xE294,
+ 37434 - 11905: 0xE295,
+ 37435 - 11905: 0xE296,
+ 37436 - 11905: 0xE297,
+ 37437 - 11905: 0xE298,
+ 37438 - 11905: 0xE299,
+ 37439 - 11905: 0xE29A,
+ 37440 - 11905: 0xE29B,
+ 37441 - 11905: 0xE29C,
+ 37442 - 11905: 0xE29D,
+ 37443 - 11905: 0xE29E,
+ 37444 - 11905: 0xE29F,
+ 37445 - 11905: 0xE2A0,
+ 37446 - 11905: 0xE340,
+ 37447 - 11905: 0xE341,
+ 37448 - 11905: 0xE342,
+ 37449 - 11905: 0xE343,
+ 37450 - 11905: 0xE344,
+ 37451 - 11905: 0xE345,
+ 37452 - 11905: 0xE346,
+ 37453 - 11905: 0xE347,
+ 37454 - 11905: 0xE348,
+ 37455 - 11905: 0xE349,
+ 37456 - 11905: 0xE34A,
+ 37457 - 11905: 0xE34B,
+ 37458 - 11905: 0xE34C,
+ 37459 - 11905: 0xE34D,
+ 37460 - 11905: 0xE34E,
+ 37461 - 11905: 0xE34F,
+ 37462 - 11905: 0xE350,
+ 37463 - 11905: 0xE351,
+ 37464 - 11905: 0xE352,
+ 37465 - 11905: 0xE353,
+ 37466 - 11905: 0xE354,
+ 37467 - 11905: 0xE355,
+ 37468 - 11905: 0xE356,
+ 37469 - 11905: 0xE357,
+ 37470 - 11905: 0xE358,
+ 37471 - 11905: 0xE359,
+ 37472 - 11905: 0xE35A,
+ 37473 - 11905: 0xE35B,
+ 37474 - 11905: 0xE35C,
+ 37475 - 11905: 0xE35D,
+ 37476 - 11905: 0xE35E,
+ 37477 - 11905: 0xE35F,
+ 37478 - 11905: 0xE360,
+ 37479 - 11905: 0xE361,
+ 37480 - 11905: 0xE362,
+ 37481 - 11905: 0xE363,
+ 37482 - 11905: 0xE364,
+ 37483 - 11905: 0xE365,
+ 37484 - 11905: 0xE366,
+ 37485 - 11905: 0xE367,
+ 37486 - 11905: 0xE368,
+ 37487 - 11905: 0xE369,
+ 37488 - 11905: 0xE36A,
+ 37489 - 11905: 0xE36B,
+ 37490 - 11905: 0xE36C,
+ 37491 - 11905: 0xE36D,
+ 37492 - 11905: 0xBCF8,
+ 37493 - 11905: 0xE36E,
+ 37494 - 11905: 0xE36F,
+ 37495 - 11905: 0xE370,
+ 37496 - 11905: 0xE371,
+ 37497 - 11905: 0xE372,
+ 37498 - 11905: 0xE373,
+ 37499 - 11905: 0xE374,
+ 37500 - 11905: 0xE375,
+ 37501 - 11905: 0xE376,
+ 37502 - 11905: 0xE377,
+ 37503 - 11905: 0xE378,
+ 37504 - 11905: 0xE379,
+ 37505 - 11905: 0xE37A,
+ 37506 - 11905: 0xE37B,
+ 37507 - 11905: 0xE37C,
+ 37508 - 11905: 0xE37D,
+ 37509 - 11905: 0xE37E,
+ 37510 - 11905: 0xE380,
+ 37511 - 11905: 0xE381,
+ 37512 - 11905: 0xE382,
+ 37513 - 11905: 0xE383,
+ 37514 - 11905: 0xE384,
+ 37515 - 11905: 0xE385,
+ 37516 - 11905: 0xE386,
+ 37517 - 11905: 0xE387,
+ 37518 - 11905: 0xF6C6,
+ 37519 - 11905: 0xE388,
+ 37520 - 11905: 0xE389,
+ 37521 - 11905: 0xE38A,
+ 37522 - 11905: 0xE38B,
+ 37523 - 11905: 0xE38C,
+ 37524 - 11905: 0xE38D,
+ 37525 - 11905: 0xE38E,
+ 37526 - 11905: 0xE38F,
+ 37527 - 11905: 0xE390,
+ 37528 - 11905: 0xE391,
+ 37529 - 11905: 0xE392,
+ 37530 - 11905: 0xE393,
+ 37531 - 11905: 0xE394,
+ 37532 - 11905: 0xE395,
+ 37533 - 11905: 0xE396,
+ 37534 - 11905: 0xE397,
+ 37535 - 11905: 0xE398,
+ 37536 - 11905: 0xE399,
+ 37537 - 11905: 0xE39A,
+ 37538 - 11905: 0xE39B,
+ 37539 - 11905: 0xE39C,
+ 37540 - 11905: 0xE39D,
+ 37541 - 11905: 0xE39E,
+ 37542 - 11905: 0xE39F,
+ 37543 - 11905: 0xE3A0,
+ 37544 - 11905: 0xE440,
+ 37545 - 11905: 0xE441,
+ 37546 - 11905: 0xE442,
+ 37547 - 11905: 0xE443,
+ 37548 - 11905: 0xE444,
+ 37549 - 11905: 0xE445,
+ 37550 - 11905: 0xF6C7,
+ 37551 - 11905: 0xE446,
+ 37552 - 11905: 0xE447,
+ 37553 - 11905: 0xE448,
+ 37554 - 11905: 0xE449,
+ 37555 - 11905: 0xE44A,
+ 37556 - 11905: 0xE44B,
+ 37557 - 11905: 0xE44C,
+ 37558 - 11905: 0xE44D,
+ 37559 - 11905: 0xE44E,
+ 37560 - 11905: 0xE44F,
+ 37561 - 11905: 0xE450,
+ 37562 - 11905: 0xE451,
+ 37563 - 11905: 0xE452,
+ 37564 - 11905: 0xE453,
+ 37565 - 11905: 0xE454,
+ 37566 - 11905: 0xE455,
+ 37567 - 11905: 0xE456,
+ 37568 - 11905: 0xE457,
+ 37569 - 11905: 0xE458,
+ 37570 - 11905: 0xE459,
+ 37571 - 11905: 0xE45A,
+ 37572 - 11905: 0xE45B,
+ 37573 - 11905: 0xE45C,
+ 37574 - 11905: 0xE45D,
+ 37575 - 11905: 0xE45E,
+ 37576 - 11905: 0xF6C8,
+ 37577 - 11905: 0xE45F,
+ 37578 - 11905: 0xE460,
+ 37579 - 11905: 0xE461,
+ 37580 - 11905: 0xE462,
+ 37581 - 11905: 0xE463,
+ 37582 - 11905: 0xE464,
+ 37583 - 11905: 0xE465,
+ 37584 - 11905: 0xE466,
+ 37585 - 11905: 0xE467,
+ 37586 - 11905: 0xE468,
+ 37587 - 11905: 0xE469,
+ 37588 - 11905: 0xE46A,
+ 37589 - 11905: 0xE46B,
+ 37590 - 11905: 0xE46C,
+ 37591 - 11905: 0xE46D,
+ 37592 - 11905: 0xE46E,
+ 37593 - 11905: 0xE46F,
+ 37594 - 11905: 0xE470,
+ 37595 - 11905: 0xE471,
+ 37596 - 11905: 0xE472,
+ 37597 - 11905: 0xE473,
+ 37598 - 11905: 0xE474,
+ 37599 - 11905: 0xE475,
+ 37600 - 11905: 0xE476,
+ 37601 - 11905: 0xE477,
+ 37602 - 11905: 0xE478,
+ 37603 - 11905: 0xE479,
+ 37604 - 11905: 0xE47A,
+ 37605 - 11905: 0xE47B,
+ 37606 - 11905: 0xE47C,
+ 37607 - 11905: 0xE47D,
+ 37608 - 11905: 0xE47E,
+ 37609 - 11905: 0xE480,
+ 37610 - 11905: 0xE481,
+ 37611 - 11905: 0xE482,
+ 37612 - 11905: 0xE483,
+ 37613 - 11905: 0xE484,
+ 37614 - 11905: 0xE485,
+ 37615 - 11905: 0xE486,
+ 37616 - 11905: 0xE487,
+ 37617 - 11905: 0xE488,
+ 37618 - 11905: 0xE489,
+ 37619 - 11905: 0xE48A,
+ 37620 - 11905: 0xE48B,
+ 37621 - 11905: 0xE48C,
+ 37622 - 11905: 0xE48D,
+ 37623 - 11905: 0xE48E,
+ 37624 - 11905: 0xE48F,
+ 37625 - 11905: 0xE490,
+ 37626 - 11905: 0xE491,
+ 37627 - 11905: 0xE492,
+ 37628 - 11905: 0xE493,
+ 37629 - 11905: 0xE494,
+ 37630 - 11905: 0xE495,
+ 37631 - 11905: 0xE496,
+ 37632 - 11905: 0xE497,
+ 37633 - 11905: 0xE498,
+ 37634 - 11905: 0xE499,
+ 37635 - 11905: 0xE49A,
+ 37636 - 11905: 0xE49B,
+ 37637 - 11905: 0xE49C,
+ 37638 - 11905: 0xE49D,
+ 37639 - 11905: 0xE49E,
+ 37640 - 11905: 0xE49F,
+ 37641 - 11905: 0xE4A0,
+ 37642 - 11905: 0xE540,
+ 37643 - 11905: 0xE541,
+ 37644 - 11905: 0xE542,
+ 37645 - 11905: 0xE543,
+ 37646 - 11905: 0xE544,
+ 37647 - 11905: 0xE545,
+ 37648 - 11905: 0xE546,
+ 37649 - 11905: 0xE547,
+ 37650 - 11905: 0xE548,
+ 37651 - 11905: 0xE549,
+ 37652 - 11905: 0xE54A,
+ 37653 - 11905: 0xE54B,
+ 37654 - 11905: 0xE54C,
+ 37655 - 11905: 0xE54D,
+ 37656 - 11905: 0xE54E,
+ 37657 - 11905: 0xE54F,
+ 37658 - 11905: 0xE550,
+ 37659 - 11905: 0xE551,
+ 37660 - 11905: 0xE552,
+ 37661 - 11905: 0xE553,
+ 37662 - 11905: 0xE554,
+ 37663 - 11905: 0xE555,
+ 37664 - 11905: 0xE556,
+ 37665 - 11905: 0xE557,
+ 37666 - 11905: 0xE558,
+ 37667 - 11905: 0xE559,
+ 37668 - 11905: 0xE55A,
+ 37669 - 11905: 0xE55B,
+ 37670 - 11905: 0xE55C,
+ 37671 - 11905: 0xE55D,
+ 37672 - 11905: 0xE55E,
+ 37673 - 11905: 0xE55F,
+ 37674 - 11905: 0xE560,
+ 37675 - 11905: 0xE561,
+ 37676 - 11905: 0xE562,
+ 37677 - 11905: 0xE563,
+ 37678 - 11905: 0xE564,
+ 37679 - 11905: 0xE565,
+ 37680 - 11905: 0xE566,
+ 37681 - 11905: 0xE567,
+ 37682 - 11905: 0xE568,
+ 37683 - 11905: 0xE569,
+ 37684 - 11905: 0xE56A,
+ 37685 - 11905: 0xE56B,
+ 37686 - 11905: 0xE56C,
+ 37687 - 11905: 0xE56D,
+ 37688 - 11905: 0xE56E,
+ 37689 - 11905: 0xE56F,
+ 37690 - 11905: 0xE570,
+ 37691 - 11905: 0xE571,
+ 37692 - 11905: 0xE572,
+ 37693 - 11905: 0xE573,
+ 37694 - 11905: 0xF6C9,
+ 37695 - 11905: 0xE574,
+ 37696 - 11905: 0xE575,
+ 37697 - 11905: 0xE576,
+ 37698 - 11905: 0xE577,
+ 37699 - 11905: 0xE578,
+ 37700 - 11905: 0xE579,
+ 37701 - 11905: 0xE57A,
+ 37702 - 11905: 0xE57B,
+ 37703 - 11905: 0xE57C,
+ 37704 - 11905: 0xE57D,
+ 37705 - 11905: 0xE57E,
+ 37706 - 11905: 0xE580,
+ 37707 - 11905: 0xE581,
+ 37708 - 11905: 0xE582,
+ 37709 - 11905: 0xE583,
+ 37710 - 11905: 0xE584,
+ 37711 - 11905: 0xE585,
+ 37712 - 11905: 0xE586,
+ 37713 - 11905: 0xE587,
+ 37714 - 11905: 0xE588,
+ 37715 - 11905: 0xE589,
+ 37716 - 11905: 0xE58A,
+ 37717 - 11905: 0xE58B,
+ 37718 - 11905: 0xE58C,
+ 37719 - 11905: 0xE58D,
+ 37720 - 11905: 0xE58E,
+ 37721 - 11905: 0xE58F,
+ 37722 - 11905: 0xE590,
+ 37723 - 11905: 0xE591,
+ 37724 - 11905: 0xE592,
+ 37725 - 11905: 0xE593,
+ 37726 - 11905: 0xE594,
+ 37727 - 11905: 0xE595,
+ 37728 - 11905: 0xE596,
+ 37729 - 11905: 0xE597,
+ 37730 - 11905: 0xE598,
+ 37731 - 11905: 0xE599,
+ 37732 - 11905: 0xE59A,
+ 37733 - 11905: 0xE59B,
+ 37734 - 11905: 0xE59C,
+ 37735 - 11905: 0xE59D,
+ 37736 - 11905: 0xE59E,
+ 37737 - 11905: 0xE59F,
+ 37738 - 11905: 0xF6CA,
+ 37739 - 11905: 0xE5A0,
+ 37740 - 11905: 0xE640,
+ 37741 - 11905: 0xE641,
+ 37742 - 11905: 0xE642,
+ 37743 - 11905: 0xE643,
+ 37744 - 11905: 0xE644,
+ 37745 - 11905: 0xE645,
+ 37746 - 11905: 0xE646,
+ 37747 - 11905: 0xE647,
+ 37748 - 11905: 0xE648,
+ 37749 - 11905: 0xE649,
+ 37750 - 11905: 0xE64A,
+ 37751 - 11905: 0xE64B,
+ 37752 - 11905: 0xE64C,
+ 37753 - 11905: 0xE64D,
+ 37754 - 11905: 0xE64E,
+ 37755 - 11905: 0xE64F,
+ 37756 - 11905: 0xE650,
+ 37757 - 11905: 0xE651,
+ 37758 - 11905: 0xE652,
+ 37759 - 11905: 0xE653,
+ 37760 - 11905: 0xE654,
+ 37761 - 11905: 0xE655,
+ 37762 - 11905: 0xE656,
+ 37763 - 11905: 0xE657,
+ 37764 - 11905: 0xE658,
+ 37765 - 11905: 0xE659,
+ 37766 - 11905: 0xE65A,
+ 37767 - 11905: 0xE65B,
+ 37768 - 11905: 0xE65C,
+ 37769 - 11905: 0xE65D,
+ 37770 - 11905: 0xE65E,
+ 37771 - 11905: 0xE65F,
+ 37772 - 11905: 0xE660,
+ 37773 - 11905: 0xE661,
+ 37774 - 11905: 0xE662,
+ 37775 - 11905: 0xF6CC,
+ 37776 - 11905: 0xE663,
+ 37777 - 11905: 0xE664,
+ 37778 - 11905: 0xE665,
+ 37779 - 11905: 0xE666,
+ 37780 - 11905: 0xE667,
+ 37781 - 11905: 0xE668,
+ 37782 - 11905: 0xE669,
+ 37783 - 11905: 0xE66A,
+ 37784 - 11905: 0xE66B,
+ 37785 - 11905: 0xE66C,
+ 37786 - 11905: 0xE66D,
+ 37787 - 11905: 0xE66E,
+ 37788 - 11905: 0xE66F,
+ 37789 - 11905: 0xE670,
+ 37790 - 11905: 0xE671,
+ 37791 - 11905: 0xE672,
+ 37792 - 11905: 0xE673,
+ 37793 - 11905: 0xE674,
+ 37794 - 11905: 0xE675,
+ 37795 - 11905: 0xE676,
+ 37796 - 11905: 0xE677,
+ 37797 - 11905: 0xE678,
+ 37798 - 11905: 0xE679,
+ 37799 - 11905: 0xE67A,
+ 37800 - 11905: 0xE67B,
+ 37801 - 11905: 0xE67C,
+ 37802 - 11905: 0xE67D,
+ 37803 - 11905: 0xE67E,
+ 37804 - 11905: 0xE680,
+ 37805 - 11905: 0xE681,
+ 37806 - 11905: 0xE682,
+ 37807 - 11905: 0xE683,
+ 37808 - 11905: 0xE684,
+ 37809 - 11905: 0xE685,
+ 37810 - 11905: 0xE686,
+ 37811 - 11905: 0xE687,
+ 37812 - 11905: 0xE688,
+ 37813 - 11905: 0xE689,
+ 37814 - 11905: 0xE68A,
+ 37815 - 11905: 0xE68B,
+ 37816 - 11905: 0xE68C,
+ 37817 - 11905: 0xE68D,
+ 37818 - 11905: 0xE68E,
+ 37819 - 11905: 0xE68F,
+ 37820 - 11905: 0xE690,
+ 37821 - 11905: 0xE691,
+ 37822 - 11905: 0xE692,
+ 37823 - 11905: 0xE693,
+ 37824 - 11905: 0xE694,
+ 37825 - 11905: 0xE695,
+ 37826 - 11905: 0xE696,
+ 37827 - 11905: 0xE697,
+ 37828 - 11905: 0xE698,
+ 37829 - 11905: 0xE699,
+ 37830 - 11905: 0xE69A,
+ 37831 - 11905: 0xE69B,
+ 37832 - 11905: 0xE69C,
+ 37833 - 11905: 0xE69D,
+ 37834 - 11905: 0xF6CB,
+ 37835 - 11905: 0xE69E,
+ 37836 - 11905: 0xE69F,
+ 37837 - 11905: 0xE6A0,
+ 37838 - 11905: 0xE740,
+ 37839 - 11905: 0xE741,
+ 37840 - 11905: 0xE742,
+ 37841 - 11905: 0xE743,
+ 37842 - 11905: 0xE744,
+ 37843 - 11905: 0xE745,
+ 37844 - 11905: 0xE746,
+ 37845 - 11905: 0xE747,
+ 37846 - 11905: 0xF7E9,
+ 37847 - 11905: 0xE748,
+ 37848 - 11905: 0xE749,
+ 37849 - 11905: 0xE74A,
+ 37850 - 11905: 0xE74B,
+ 37851 - 11905: 0xE74C,
+ 37852 - 11905: 0xE74D,
+ 37853 - 11905: 0xE74E,
+ 37854 - 11905: 0xE74F,
+ 37855 - 11905: 0xE750,
+ 37856 - 11905: 0xE751,
+ 37857 - 11905: 0xE752,
+ 37858 - 11905: 0xE753,
+ 37859 - 11905: 0xE754,
+ 37860 - 11905: 0xE755,
+ 37861 - 11905: 0xE756,
+ 37862 - 11905: 0xE757,
+ 37863 - 11905: 0xE758,
+ 37864 - 11905: 0xE759,
+ 37865 - 11905: 0xE75A,
+ 37866 - 11905: 0xE75B,
+ 37867 - 11905: 0xE75C,
+ 37868 - 11905: 0xE75D,
+ 37869 - 11905: 0xE75E,
+ 37870 - 11905: 0xE75F,
+ 37871 - 11905: 0xE760,
+ 37872 - 11905: 0xE761,
+ 37873 - 11905: 0xE762,
+ 37874 - 11905: 0xE763,
+ 37875 - 11905: 0xE764,
+ 37876 - 11905: 0xE765,
+ 37877 - 11905: 0xE766,
+ 37878 - 11905: 0xE767,
+ 37879 - 11905: 0xE768,
+ 37880 - 11905: 0xE769,
+ 37881 - 11905: 0xE76A,
+ 37882 - 11905: 0xE76B,
+ 37883 - 11905: 0xE76C,
+ 37884 - 11905: 0xE76D,
+ 37885 - 11905: 0xE76E,
+ 37886 - 11905: 0xE76F,
+ 37887 - 11905: 0xE770,
+ 37888 - 11905: 0xE771,
+ 37889 - 11905: 0xE772,
+ 37890 - 11905: 0xE773,
+ 37891 - 11905: 0xE774,
+ 37892 - 11905: 0xE775,
+ 37893 - 11905: 0xE776,
+ 37894 - 11905: 0xE777,
+ 37895 - 11905: 0xE778,
+ 37896 - 11905: 0xE779,
+ 37897 - 11905: 0xE77A,
+ 37898 - 11905: 0xE77B,
+ 37899 - 11905: 0xE77C,
+ 37900 - 11905: 0xE77D,
+ 37901 - 11905: 0xE77E,
+ 37902 - 11905: 0xE780,
+ 37903 - 11905: 0xE781,
+ 37904 - 11905: 0xE782,
+ 37905 - 11905: 0xE783,
+ 37906 - 11905: 0xE784,
+ 37907 - 11905: 0xE785,
+ 37908 - 11905: 0xE786,
+ 37909 - 11905: 0xE787,
+ 37910 - 11905: 0xE788,
+ 37911 - 11905: 0xE789,
+ 37912 - 11905: 0xE78A,
+ 37913 - 11905: 0xE78B,
+ 37914 - 11905: 0xE78C,
+ 37915 - 11905: 0xE78D,
+ 37916 - 11905: 0xE78E,
+ 37917 - 11905: 0xE78F,
+ 37918 - 11905: 0xE790,
+ 37919 - 11905: 0xE791,
+ 37920 - 11905: 0xE792,
+ 37921 - 11905: 0xE793,
+ 37922 - 11905: 0xE794,
+ 37923 - 11905: 0xE795,
+ 37924 - 11905: 0xE796,
+ 37925 - 11905: 0xE797,
+ 37926 - 11905: 0xE798,
+ 37927 - 11905: 0xE799,
+ 37928 - 11905: 0xE79A,
+ 37929 - 11905: 0xE79B,
+ 37930 - 11905: 0xE79C,
+ 37931 - 11905: 0xE79D,
+ 37932 - 11905: 0xE79E,
+ 37933 - 11905: 0xE79F,
+ 37934 - 11905: 0xE7A0,
+ 37935 - 11905: 0xE840,
+ 37936 - 11905: 0xE841,
+ 37937 - 11905: 0xE842,
+ 37938 - 11905: 0xE843,
+ 37939 - 11905: 0xE844,
+ 37940 - 11905: 0xE845,
+ 37941 - 11905: 0xE846,
+ 37942 - 11905: 0xE847,
+ 37943 - 11905: 0xE848,
+ 37944 - 11905: 0xE849,
+ 37945 - 11905: 0xE84A,
+ 37946 - 11905: 0xE84B,
+ 37947 - 11905: 0xE84C,
+ 37948 - 11905: 0xE84D,
+ 37949 - 11905: 0xE84E,
+ 37950 - 11905: 0xF6CD,
+ 37951 - 11905: 0xE84F,
+ 37952 - 11905: 0xE850,
+ 37953 - 11905: 0xE851,
+ 37954 - 11905: 0xE852,
+ 37955 - 11905: 0xE853,
+ 37956 - 11905: 0xE854,
+ 37957 - 11905: 0xE855,
+ 37958 - 11905: 0xE856,
+ 37959 - 11905: 0xE857,
+ 37960 - 11905: 0xE858,
+ 37961 - 11905: 0xE859,
+ 37962 - 11905: 0xE85A,
+ 37963 - 11905: 0xE85B,
+ 37964 - 11905: 0xE85C,
+ 37965 - 11905: 0xE85D,
+ 37966 - 11905: 0xE85E,
+ 37967 - 11905: 0xE85F,
+ 37968 - 11905: 0xE860,
+ 37969 - 11905: 0xE861,
+ 37970 - 11905: 0xE862,
+ 37971 - 11905: 0xE863,
+ 37972 - 11905: 0xE864,
+ 37973 - 11905: 0xE865,
+ 37974 - 11905: 0xE866,
+ 37975 - 11905: 0xE867,
+ 37976 - 11905: 0xE868,
+ 37977 - 11905: 0xE869,
+ 37978 - 11905: 0xE86A,
+ 37979 - 11905: 0xE86B,
+ 37980 - 11905: 0xE86C,
+ 37981 - 11905: 0xE86D,
+ 37982 - 11905: 0xE86E,
+ 37983 - 11905: 0xE86F,
+ 37984 - 11905: 0xE870,
+ 37985 - 11905: 0xE871,
+ 37986 - 11905: 0xE872,
+ 37987 - 11905: 0xE873,
+ 37988 - 11905: 0xE874,
+ 37989 - 11905: 0xE875,
+ 37990 - 11905: 0xE876,
+ 37991 - 11905: 0xE877,
+ 37992 - 11905: 0xE878,
+ 37993 - 11905: 0xE879,
+ 37994 - 11905: 0xE87A,
+ 37995 - 11905: 0xF6CE,
+ 37996 - 11905: 0xE87B,
+ 37997 - 11905: 0xE87C,
+ 37998 - 11905: 0xE87D,
+ 37999 - 11905: 0xE87E,
+ 38000 - 11905: 0xE880,
+ 38001 - 11905: 0xE881,
+ 38002 - 11905: 0xE882,
+ 38003 - 11905: 0xE883,
+ 38004 - 11905: 0xE884,
+ 38005 - 11905: 0xE885,
+ 38006 - 11905: 0xE886,
+ 38007 - 11905: 0xE887,
+ 38008 - 11905: 0xE888,
+ 38009 - 11905: 0xE889,
+ 38010 - 11905: 0xE88A,
+ 38011 - 11905: 0xE88B,
+ 38012 - 11905: 0xE88C,
+ 38013 - 11905: 0xE88D,
+ 38014 - 11905: 0xE88E,
+ 38015 - 11905: 0xE88F,
+ 38016 - 11905: 0xE890,
+ 38017 - 11905: 0xE891,
+ 38018 - 11905: 0xE892,
+ 38019 - 11905: 0xE893,
+ 38020 - 11905: 0xE894,
+ 38021 - 11905: 0xEEC4,
+ 38022 - 11905: 0xEEC5,
+ 38023 - 11905: 0xEEC6,
+ 38024 - 11905: 0xD5EB,
+ 38025 - 11905: 0xB6A4,
+ 38026 - 11905: 0xEEC8,
+ 38027 - 11905: 0xEEC7,
+ 38028 - 11905: 0xEEC9,
+ 38029 - 11905: 0xEECA,
+ 38030 - 11905: 0xC7A5,
+ 38031 - 11905: 0xEECB,
+ 38032 - 11905: 0xEECC,
+ 38033 - 11905: 0xE895,
+ 38034 - 11905: 0xB7B0,
+ 38035 - 11905: 0xB5F6,
+ 38036 - 11905: 0xEECD,
+ 38037 - 11905: 0xEECF,
+ 38038 - 11905: 0xE896,
+ 38039 - 11905: 0xEECE,
+ 38040 - 11905: 0xE897,
+ 38041 - 11905: 0xB8C6,
+ 38042 - 11905: 0xEED0,
+ 38043 - 11905: 0xEED1,
+ 38044 - 11905: 0xEED2,
+ 38045 - 11905: 0xB6DB,
+ 38046 - 11905: 0xB3AE,
+ 38047 - 11905: 0xD6D3,
+ 38048 - 11905: 0xC4C6,
+ 38049 - 11905: 0xB1B5,
+ 38050 - 11905: 0xB8D6,
+ 38051 - 11905: 0xEED3,
+ 38052 - 11905: 0xEED4,
+ 38053 - 11905: 0xD4BF,
+ 38054 - 11905: 0xC7D5,
+ 38055 - 11905: 0xBEFB,
+ 38056 - 11905: 0xCED9,
+ 38057 - 11905: 0xB9B3,
+ 38058 - 11905: 0xEED6,
+ 38059 - 11905: 0xEED5,
+ 38060 - 11905: 0xEED8,
+ 38061 - 11905: 0xEED7,
+ 38062 - 11905: 0xC5A5,
+ 38063 - 11905: 0xEED9,
+ 38064 - 11905: 0xEEDA,
+ 38065 - 11905: 0xC7AE,
+ 38066 - 11905: 0xEEDB,
+ 38067 - 11905: 0xC7AF,
+ 38068 - 11905: 0xEEDC,
+ 38069 - 11905: 0xB2A7,
+ 38070 - 11905: 0xEEDD,
+ 38071 - 11905: 0xEEDE,
+ 38072 - 11905: 0xEEDF,
+ 38073 - 11905: 0xEEE0,
+ 38074 - 11905: 0xEEE1,
+ 38075 - 11905: 0xD7EA,
+ 38076 - 11905: 0xEEE2,
+ 38077 - 11905: 0xEEE3,
+ 38078 - 11905: 0xBCD8,
+ 38079 - 11905: 0xEEE4,
+ 38080 - 11905: 0xD3CB,
+ 38081 - 11905: 0xCCFA,
+ 38082 - 11905: 0xB2AC,
+ 38083 - 11905: 0xC1E5,
+ 38084 - 11905: 0xEEE5,
+ 38085 - 11905: 0xC7A6,
+ 38086 - 11905: 0xC3AD,
+ 38087 - 11905: 0xE898,
+ 38088 - 11905: 0xEEE6,
+ 38089 - 11905: 0xEEE7,
+ 38090 - 11905: 0xEEE8,
+ 38091 - 11905: 0xEEE9,
+ 38092 - 11905: 0xEEEA,
+ 38093 - 11905: 0xEEEB,
+ 38094 - 11905: 0xEEEC,
+ 38095 - 11905: 0xE899,
+ 38096 - 11905: 0xEEED,
+ 38097 - 11905: 0xEEEE,
+ 38098 - 11905: 0xEEEF,
+ 38099 - 11905: 0xE89A,
+ 38100 - 11905: 0xE89B,
+ 38101 - 11905: 0xEEF0,
+ 38102 - 11905: 0xEEF1,
+ 38103 - 11905: 0xEEF2,
+ 38104 - 11905: 0xEEF4,
+ 38105 - 11905: 0xEEF3,
+ 38106 - 11905: 0xE89C,
+ 38107 - 11905: 0xEEF5,
+ 38108 - 11905: 0xCDAD,
+ 38109 - 11905: 0xC2C1,
+ 38110 - 11905: 0xEEF6,
+ 38111 - 11905: 0xEEF7,
+ 38112 - 11905: 0xEEF8,
+ 38113 - 11905: 0xD5A1,
+ 38114 - 11905: 0xEEF9,
+ 38115 - 11905: 0xCFB3,
+ 38116 - 11905: 0xEEFA,
+ 38117 - 11905: 0xEEFB,
+ 38118 - 11905: 0xE89D,
+ 38119 - 11905: 0xEEFC,
+ 38120 - 11905: 0xEEFD,
+ 38121 - 11905: 0xEFA1,
+ 38122 - 11905: 0xEEFE,
+ 38123 - 11905: 0xEFA2,
+ 38124 - 11905: 0xB8F5,
+ 38125 - 11905: 0xC3FA,
+ 38126 - 11905: 0xEFA3,
+ 38127 - 11905: 0xEFA4,
+ 38128 - 11905: 0xBDC2,
+ 38129 - 11905: 0xD2BF,
+ 38130 - 11905: 0xB2F9,
+ 38131 - 11905: 0xEFA5,
+ 38132 - 11905: 0xEFA6,
+ 38133 - 11905: 0xEFA7,
+ 38134 - 11905: 0xD2F8,
+ 38135 - 11905: 0xEFA8,
+ 38136 - 11905: 0xD6FD,
+ 38137 - 11905: 0xEFA9,
+ 38138 - 11905: 0xC6CC,
+ 38139 - 11905: 0xE89E,
+ 38140 - 11905: 0xEFAA,
+ 38141 - 11905: 0xEFAB,
+ 38142 - 11905: 0xC1B4,
+ 38143 - 11905: 0xEFAC,
+ 38144 - 11905: 0xCFFA,
+ 38145 - 11905: 0xCBF8,
+ 38146 - 11905: 0xEFAE,
+ 38147 - 11905: 0xEFAD,
+ 38148 - 11905: 0xB3FA,
+ 38149 - 11905: 0xB9F8,
+ 38150 - 11905: 0xEFAF,
+ 38151 - 11905: 0xEFB0,
+ 38152 - 11905: 0xD0E2,
+ 38153 - 11905: 0xEFB1,
+ 38154 - 11905: 0xEFB2,
+ 38155 - 11905: 0xB7E6,
+ 38156 - 11905: 0xD0BF,
+ 38157 - 11905: 0xEFB3,
+ 38158 - 11905: 0xEFB4,
+ 38159 - 11905: 0xEFB5,
+ 38160 - 11905: 0xC8F1,
+ 38161 - 11905: 0xCCE0,
+ 38162 - 11905: 0xEFB6,
+ 38163 - 11905: 0xEFB7,
+ 38164 - 11905: 0xEFB8,
+ 38165 - 11905: 0xEFB9,
+ 38166 - 11905: 0xEFBA,
+ 38167 - 11905: 0xD5E0,
+ 38168 - 11905: 0xEFBB,
+ 38169 - 11905: 0xB4ED,
+ 38170 - 11905: 0xC3AA,
+ 38171 - 11905: 0xEFBC,
+ 38172 - 11905: 0xE89F,
+ 38173 - 11905: 0xEFBD,
+ 38174 - 11905: 0xEFBE,
+ 38175 - 11905: 0xEFBF,
+ 38176 - 11905: 0xE8A0,
+ 38177 - 11905: 0xCEFD,
+ 38178 - 11905: 0xEFC0,
+ 38179 - 11905: 0xC2E0,
+ 38180 - 11905: 0xB4B8,
+ 38181 - 11905: 0xD7B6,
+ 38182 - 11905: 0xBDF5,
+ 38183 - 11905: 0xE940,
+ 38184 - 11905: 0xCFC7,
+ 38185 - 11905: 0xEFC3,
+ 38186 - 11905: 0xEFC1,
+ 38187 - 11905: 0xEFC2,
+ 38188 - 11905: 0xEFC4,
+ 38189 - 11905: 0xB6A7,
+ 38190 - 11905: 0xBCFC,
+ 38191 - 11905: 0xBEE2,
+ 38192 - 11905: 0xC3CC,
+ 38193 - 11905: 0xEFC5,
+ 38194 - 11905: 0xEFC6,
+ 38195 - 11905: 0xE941,
+ 38196 - 11905: 0xEFC7,
+ 38197 - 11905: 0xEFCF,
+ 38198 - 11905: 0xEFC8,
+ 38199 - 11905: 0xEFC9,
+ 38200 - 11905: 0xEFCA,
+ 38201 - 11905: 0xC7C2,
+ 38202 - 11905: 0xEFF1,
+ 38203 - 11905: 0xB6CD,
+ 38204 - 11905: 0xEFCB,
+ 38205 - 11905: 0xE942,
+ 38206 - 11905: 0xEFCC,
+ 38207 - 11905: 0xEFCD,
+ 38208 - 11905: 0xB6C6,
+ 38209 - 11905: 0xC3BE,
+ 38210 - 11905: 0xEFCE,
+ 38211 - 11905: 0xE943,
+ 38212 - 11905: 0xEFD0,
+ 38213 - 11905: 0xEFD1,
+ 38214 - 11905: 0xEFD2,
+ 38215 - 11905: 0xD5F2,
+ 38216 - 11905: 0xE944,
+ 38217 - 11905: 0xEFD3,
+ 38218 - 11905: 0xC4F7,
+ 38219 - 11905: 0xE945,
+ 38220 - 11905: 0xEFD4,
+ 38221 - 11905: 0xC4F8,
+ 38222 - 11905: 0xEFD5,
+ 38223 - 11905: 0xEFD6,
+ 38224 - 11905: 0xB8E4,
+ 38225 - 11905: 0xB0F7,
+ 38226 - 11905: 0xEFD7,
+ 38227 - 11905: 0xEFD8,
+ 38228 - 11905: 0xEFD9,
+ 38229 - 11905: 0xE946,
+ 38230 - 11905: 0xEFDA,
+ 38231 - 11905: 0xEFDB,
+ 38232 - 11905: 0xEFDC,
+ 38233 - 11905: 0xEFDD,
+ 38234 - 11905: 0xE947,
+ 38235 - 11905: 0xEFDE,
+ 38236 - 11905: 0xBEB5,
+ 38237 - 11905: 0xEFE1,
+ 38238 - 11905: 0xEFDF,
+ 38239 - 11905: 0xEFE0,
+ 38240 - 11905: 0xE948,
+ 38241 - 11905: 0xEFE2,
+ 38242 - 11905: 0xEFE3,
+ 38243 - 11905: 0xC1CD,
+ 38244 - 11905: 0xEFE4,
+ 38245 - 11905: 0xEFE5,
+ 38246 - 11905: 0xEFE6,
+ 38247 - 11905: 0xEFE7,
+ 38248 - 11905: 0xEFE8,
+ 38249 - 11905: 0xEFE9,
+ 38250 - 11905: 0xEFEA,
+ 38251 - 11905: 0xEFEB,
+ 38252 - 11905: 0xEFEC,
+ 38253 - 11905: 0xC0D8,
+ 38254 - 11905: 0xE949,
+ 38255 - 11905: 0xEFED,
+ 38256 - 11905: 0xC1AD,
+ 38257 - 11905: 0xEFEE,
+ 38258 - 11905: 0xEFEF,
+ 38259 - 11905: 0xEFF0,
+ 38260 - 11905: 0xE94A,
+ 38261 - 11905: 0xE94B,
+ 38262 - 11905: 0xCFE2,
+ 38263 - 11905: 0xE94C,
+ 38264 - 11905: 0xE94D,
+ 38265 - 11905: 0xE94E,
+ 38266 - 11905: 0xE94F,
+ 38267 - 11905: 0xE950,
+ 38268 - 11905: 0xE951,
+ 38269 - 11905: 0xE952,
+ 38270 - 11905: 0xE953,
+ 38271 - 11905: 0xB3A4,
+ 38272 - 11905: 0xE954,
+ 38273 - 11905: 0xE955,
+ 38274 - 11905: 0xE956,
+ 38275 - 11905: 0xE957,
+ 38276 - 11905: 0xE958,
+ 38277 - 11905: 0xE959,
+ 38278 - 11905: 0xE95A,
+ 38279 - 11905: 0xE95B,
+ 38280 - 11905: 0xE95C,
+ 38281 - 11905: 0xE95D,
+ 38282 - 11905: 0xE95E,
+ 38283 - 11905: 0xE95F,
+ 38284 - 11905: 0xE960,
+ 38285 - 11905: 0xE961,
+ 38286 - 11905: 0xE962,
+ 38287 - 11905: 0xE963,
+ 38288 - 11905: 0xE964,
+ 38289 - 11905: 0xE965,
+ 38290 - 11905: 0xE966,
+ 38291 - 11905: 0xE967,
+ 38292 - 11905: 0xE968,
+ 38293 - 11905: 0xE969,
+ 38294 - 11905: 0xE96A,
+ 38295 - 11905: 0xE96B,
+ 38296 - 11905: 0xE96C,
+ 38297 - 11905: 0xE96D,
+ 38298 - 11905: 0xE96E,
+ 38299 - 11905: 0xE96F,
+ 38300 - 11905: 0xE970,
+ 38301 - 11905: 0xE971,
+ 38302 - 11905: 0xE972,
+ 38303 - 11905: 0xE973,
+ 38304 - 11905: 0xE974,
+ 38305 - 11905: 0xE975,
+ 38306 - 11905: 0xE976,
+ 38307 - 11905: 0xE977,
+ 38308 - 11905: 0xE978,
+ 38309 - 11905: 0xE979,
+ 38310 - 11905: 0xE97A,
+ 38311 - 11905: 0xE97B,
+ 38312 - 11905: 0xE97C,
+ 38313 - 11905: 0xE97D,
+ 38314 - 11905: 0xE97E,
+ 38315 - 11905: 0xE980,
+ 38316 - 11905: 0xE981,
+ 38317 - 11905: 0xE982,
+ 38318 - 11905: 0xE983,
+ 38319 - 11905: 0xE984,
+ 38320 - 11905: 0xE985,
+ 38321 - 11905: 0xE986,
+ 38322 - 11905: 0xE987,
+ 38323 - 11905: 0xE988,
+ 38324 - 11905: 0xE989,
+ 38325 - 11905: 0xE98A,
+ 38326 - 11905: 0xE98B,
+ 38327 - 11905: 0xE98C,
+ 38328 - 11905: 0xE98D,
+ 38329 - 11905: 0xE98E,
+ 38330 - 11905: 0xE98F,
+ 38331 - 11905: 0xE990,
+ 38332 - 11905: 0xE991,
+ 38333 - 11905: 0xE992,
+ 38334 - 11905: 0xE993,
+ 38335 - 11905: 0xE994,
+ 38336 - 11905: 0xE995,
+ 38337 - 11905: 0xE996,
+ 38338 - 11905: 0xE997,
+ 38339 - 11905: 0xE998,
+ 38340 - 11905: 0xE999,
+ 38341 - 11905: 0xE99A,
+ 38342 - 11905: 0xE99B,
+ 38343 - 11905: 0xE99C,
+ 38344 - 11905: 0xE99D,
+ 38345 - 11905: 0xE99E,
+ 38346 - 11905: 0xE99F,
+ 38347 - 11905: 0xE9A0,
+ 38348 - 11905: 0xEA40,
+ 38349 - 11905: 0xEA41,
+ 38350 - 11905: 0xEA42,
+ 38351 - 11905: 0xEA43,
+ 38352 - 11905: 0xEA44,
+ 38353 - 11905: 0xEA45,
+ 38354 - 11905: 0xEA46,
+ 38355 - 11905: 0xEA47,
+ 38356 - 11905: 0xEA48,
+ 38357 - 11905: 0xEA49,
+ 38358 - 11905: 0xEA4A,
+ 38359 - 11905: 0xEA4B,
+ 38360 - 11905: 0xEA4C,
+ 38361 - 11905: 0xEA4D,
+ 38362 - 11905: 0xEA4E,
+ 38363 - 11905: 0xEA4F,
+ 38364 - 11905: 0xEA50,
+ 38365 - 11905: 0xEA51,
+ 38366 - 11905: 0xEA52,
+ 38367 - 11905: 0xEA53,
+ 38368 - 11905: 0xEA54,
+ 38369 - 11905: 0xEA55,
+ 38370 - 11905: 0xEA56,
+ 38371 - 11905: 0xEA57,
+ 38372 - 11905: 0xEA58,
+ 38373 - 11905: 0xEA59,
+ 38374 - 11905: 0xEA5A,
+ 38375 - 11905: 0xEA5B,
+ 38376 - 11905: 0xC3C5,
+ 38377 - 11905: 0xE3C5,
+ 38378 - 11905: 0xC9C1,
+ 38379 - 11905: 0xE3C6,
+ 38380 - 11905: 0xEA5C,
+ 38381 - 11905: 0xB1D5,
+ 38382 - 11905: 0xCECA,
+ 38383 - 11905: 0xB4B3,
+ 38384 - 11905: 0xC8F2,
+ 38385 - 11905: 0xE3C7,
+ 38386 - 11905: 0xCFD0,
+ 38387 - 11905: 0xE3C8,
+ 38388 - 11905: 0xBCE4,
+ 38389 - 11905: 0xE3C9,
+ 38390 - 11905: 0xE3CA,
+ 38391 - 11905: 0xC3C6,
+ 38392 - 11905: 0xD5A2,
+ 38393 - 11905: 0xC4D6,
+ 38394 - 11905: 0xB9EB,
+ 38395 - 11905: 0xCEC5,
+ 38396 - 11905: 0xE3CB,
+ 38397 - 11905: 0xC3F6,
+ 38398 - 11905: 0xE3CC,
+ 38399 - 11905: 0xEA5D,
+ 38400 - 11905: 0xB7A7,
+ 38401 - 11905: 0xB8F3,
+ 38402 - 11905: 0xBAD2,
+ 38403 - 11905: 0xE3CD,
+ 38404 - 11905: 0xE3CE,
+ 38405 - 11905: 0xD4C4,
+ 38406 - 11905: 0xE3CF,
+ 38407 - 11905: 0xEA5E,
+ 38408 - 11905: 0xE3D0,
+ 38409 - 11905: 0xD1CB,
+ 38410 - 11905: 0xE3D1,
+ 38411 - 11905: 0xE3D2,
+ 38412 - 11905: 0xE3D3,
+ 38413 - 11905: 0xE3D4,
+ 38414 - 11905: 0xD1D6,
+ 38415 - 11905: 0xE3D5,
+ 38416 - 11905: 0xB2FB,
+ 38417 - 11905: 0xC0BB,
+ 38418 - 11905: 0xE3D6,
+ 38419 - 11905: 0xEA5F,
+ 38420 - 11905: 0xC0AB,
+ 38421 - 11905: 0xE3D7,
+ 38422 - 11905: 0xE3D8,
+ 38423 - 11905: 0xE3D9,
+ 38424 - 11905: 0xEA60,
+ 38425 - 11905: 0xE3DA,
+ 38426 - 11905: 0xE3DB,
+ 38427 - 11905: 0xEA61,
+ 38428 - 11905: 0xB8B7,
+ 38429 - 11905: 0xDAE2,
+ 38430 - 11905: 0xEA62,
+ 38431 - 11905: 0xB6D3,
+ 38432 - 11905: 0xEA63,
+ 38433 - 11905: 0xDAE4,
+ 38434 - 11905: 0xDAE3,
+ 38435 - 11905: 0xEA64,
+ 38436 - 11905: 0xEA65,
+ 38437 - 11905: 0xEA66,
+ 38438 - 11905: 0xEA67,
+ 38439 - 11905: 0xEA68,
+ 38440 - 11905: 0xEA69,
+ 38441 - 11905: 0xEA6A,
+ 38442 - 11905: 0xDAE6,
+ 38443 - 11905: 0xEA6B,
+ 38444 - 11905: 0xEA6C,
+ 38445 - 11905: 0xEA6D,
+ 38446 - 11905: 0xC8EE,
+ 38447 - 11905: 0xEA6E,
+ 38448 - 11905: 0xEA6F,
+ 38449 - 11905: 0xDAE5,
+ 38450 - 11905: 0xB7C0,
+ 38451 - 11905: 0xD1F4,
+ 38452 - 11905: 0xD2F5,
+ 38453 - 11905: 0xD5F3,
+ 38454 - 11905: 0xBDD7,
+ 38455 - 11905: 0xEA70,
+ 38456 - 11905: 0xEA71,
+ 38457 - 11905: 0xEA72,
+ 38458 - 11905: 0xEA73,
+ 38459 - 11905: 0xD7E8,
+ 38460 - 11905: 0xDAE8,
+ 38461 - 11905: 0xDAE7,
+ 38462 - 11905: 0xEA74,
+ 38463 - 11905: 0xB0A2,
+ 38464 - 11905: 0xCDD3,
+ 38465 - 11905: 0xEA75,
+ 38466 - 11905: 0xDAE9,
+ 38467 - 11905: 0xEA76,
+ 38468 - 11905: 0xB8BD,
+ 38469 - 11905: 0xBCCA,
+ 38470 - 11905: 0xC2BD,
+ 38471 - 11905: 0xC2A4,
+ 38472 - 11905: 0xB3C2,
+ 38473 - 11905: 0xDAEA,
+ 38474 - 11905: 0xEA77,
+ 38475 - 11905: 0xC2AA,
+ 38476 - 11905: 0xC4B0,
+ 38477 - 11905: 0xBDB5,
+ 38478 - 11905: 0xEA78,
+ 38479 - 11905: 0xEA79,
+ 38480 - 11905: 0xCFDE,
+ 38481 - 11905: 0xEA7A,
+ 38482 - 11905: 0xEA7B,
+ 38483 - 11905: 0xEA7C,
+ 38484 - 11905: 0xDAEB,
+ 38485 - 11905: 0xC9C2,
+ 38486 - 11905: 0xEA7D,
+ 38487 - 11905: 0xEA7E,
+ 38488 - 11905: 0xEA80,
+ 38489 - 11905: 0xEA81,
+ 38490 - 11905: 0xEA82,
+ 38491 - 11905: 0xB1DD,
+ 38492 - 11905: 0xEA83,
+ 38493 - 11905: 0xEA84,
+ 38494 - 11905: 0xEA85,
+ 38495 - 11905: 0xDAEC,
+ 38496 - 11905: 0xEA86,
+ 38497 - 11905: 0xB6B8,
+ 38498 - 11905: 0xD4BA,
+ 38499 - 11905: 0xEA87,
+ 38500 - 11905: 0xB3FD,
+ 38501 - 11905: 0xEA88,
+ 38502 - 11905: 0xEA89,
+ 38503 - 11905: 0xDAED,
+ 38504 - 11905: 0xD4C9,
+ 38505 - 11905: 0xCFD5,
+ 38506 - 11905: 0xC5E3,
+ 38507 - 11905: 0xEA8A,
+ 38508 - 11905: 0xDAEE,
+ 38509 - 11905: 0xEA8B,
+ 38510 - 11905: 0xEA8C,
+ 38511 - 11905: 0xEA8D,
+ 38512 - 11905: 0xEA8E,
+ 38513 - 11905: 0xEA8F,
+ 38514 - 11905: 0xDAEF,
+ 38515 - 11905: 0xEA90,
+ 38516 - 11905: 0xDAF0,
+ 38517 - 11905: 0xC1EA,
+ 38518 - 11905: 0xCCD5,
+ 38519 - 11905: 0xCFDD,
+ 38520 - 11905: 0xEA91,
+ 38521 - 11905: 0xEA92,
+ 38522 - 11905: 0xEA93,
+ 38523 - 11905: 0xEA94,
+ 38524 - 11905: 0xEA95,
+ 38525 - 11905: 0xEA96,
+ 38526 - 11905: 0xEA97,
+ 38527 - 11905: 0xEA98,
+ 38528 - 11905: 0xEA99,
+ 38529 - 11905: 0xEA9A,
+ 38530 - 11905: 0xEA9B,
+ 38531 - 11905: 0xEA9C,
+ 38532 - 11905: 0xEA9D,
+ 38533 - 11905: 0xD3E7,
+ 38534 - 11905: 0xC2A1,
+ 38535 - 11905: 0xEA9E,
+ 38536 - 11905: 0xDAF1,
+ 38537 - 11905: 0xEA9F,
+ 38538 - 11905: 0xEAA0,
+ 38539 - 11905: 0xCBE5,
+ 38540 - 11905: 0xEB40,
+ 38541 - 11905: 0xDAF2,
+ 38542 - 11905: 0xEB41,
+ 38543 - 11905: 0xCBE6,
+ 38544 - 11905: 0xD2FE,
+ 38545 - 11905: 0xEB42,
+ 38546 - 11905: 0xEB43,
+ 38547 - 11905: 0xEB44,
+ 38548 - 11905: 0xB8F4,
+ 38549 - 11905: 0xEB45,
+ 38550 - 11905: 0xEB46,
+ 38551 - 11905: 0xDAF3,
+ 38552 - 11905: 0xB0AF,
+ 38553 - 11905: 0xCFB6,
+ 38554 - 11905: 0xEB47,
+ 38555 - 11905: 0xEB48,
+ 38556 - 11905: 0xD5CF,
+ 38557 - 11905: 0xEB49,
+ 38558 - 11905: 0xEB4A,
+ 38559 - 11905: 0xEB4B,
+ 38560 - 11905: 0xEB4C,
+ 38561 - 11905: 0xEB4D,
+ 38562 - 11905: 0xEB4E,
+ 38563 - 11905: 0xEB4F,
+ 38564 - 11905: 0xEB50,
+ 38565 - 11905: 0xEB51,
+ 38566 - 11905: 0xEB52,
+ 38567 - 11905: 0xCBED,
+ 38568 - 11905: 0xEB53,
+ 38569 - 11905: 0xEB54,
+ 38570 - 11905: 0xEB55,
+ 38571 - 11905: 0xEB56,
+ 38572 - 11905: 0xEB57,
+ 38573 - 11905: 0xEB58,
+ 38574 - 11905: 0xEB59,
+ 38575 - 11905: 0xEB5A,
+ 38576 - 11905: 0xDAF4,
+ 38577 - 11905: 0xEB5B,
+ 38578 - 11905: 0xEB5C,
+ 38579 - 11905: 0xE3C4,
+ 38580 - 11905: 0xEB5D,
+ 38581 - 11905: 0xEB5E,
+ 38582 - 11905: 0xC1A5,
+ 38583 - 11905: 0xEB5F,
+ 38584 - 11905: 0xEB60,
+ 38585 - 11905: 0xF6BF,
+ 38586 - 11905: 0xEB61,
+ 38587 - 11905: 0xEB62,
+ 38588 - 11905: 0xF6C0,
+ 38589 - 11905: 0xF6C1,
+ 38590 - 11905: 0xC4D1,
+ 38591 - 11905: 0xEB63,
+ 38592 - 11905: 0xC8B8,
+ 38593 - 11905: 0xD1E3,
+ 38594 - 11905: 0xEB64,
+ 38595 - 11905: 0xEB65,
+ 38596 - 11905: 0xD0DB,
+ 38597 - 11905: 0xD1C5,
+ 38598 - 11905: 0xBCAF,
+ 38599 - 11905: 0xB9CD,
+ 38600 - 11905: 0xEB66,
+ 38601 - 11905: 0xEFF4,
+ 38602 - 11905: 0xEB67,
+ 38603 - 11905: 0xEB68,
+ 38604 - 11905: 0xB4C6,
+ 38605 - 11905: 0xD3BA,
+ 38606 - 11905: 0xF6C2,
+ 38607 - 11905: 0xB3FB,
+ 38608 - 11905: 0xEB69,
+ 38609 - 11905: 0xEB6A,
+ 38610 - 11905: 0xF6C3,
+ 38611 - 11905: 0xEB6B,
+ 38612 - 11905: 0xEB6C,
+ 38613 - 11905: 0xB5F1,
+ 38614 - 11905: 0xEB6D,
+ 38615 - 11905: 0xEB6E,
+ 38616 - 11905: 0xEB6F,
+ 38617 - 11905: 0xEB70,
+ 38618 - 11905: 0xEB71,
+ 38619 - 11905: 0xEB72,
+ 38620 - 11905: 0xEB73,
+ 38621 - 11905: 0xEB74,
+ 38622 - 11905: 0xEB75,
+ 38623 - 11905: 0xEB76,
+ 38624 - 11905: 0xF6C5,
+ 38625 - 11905: 0xEB77,
+ 38626 - 11905: 0xEB78,
+ 38627 - 11905: 0xEB79,
+ 38628 - 11905: 0xEB7A,
+ 38629 - 11905: 0xEB7B,
+ 38630 - 11905: 0xEB7C,
+ 38631 - 11905: 0xEB7D,
+ 38632 - 11905: 0xD3EA,
+ 38633 - 11905: 0xF6A7,
+ 38634 - 11905: 0xD1A9,
+ 38635 - 11905: 0xEB7E,
+ 38636 - 11905: 0xEB80,
+ 38637 - 11905: 0xEB81,
+ 38638 - 11905: 0xEB82,
+ 38639 - 11905: 0xF6A9,
+ 38640 - 11905: 0xEB83,
+ 38641 - 11905: 0xEB84,
+ 38642 - 11905: 0xEB85,
+ 38643 - 11905: 0xF6A8,
+ 38644 - 11905: 0xEB86,
+ 38645 - 11905: 0xEB87,
+ 38646 - 11905: 0xC1E3,
+ 38647 - 11905: 0xC0D7,
+ 38648 - 11905: 0xEB88,
+ 38649 - 11905: 0xB1A2,
+ 38650 - 11905: 0xEB89,
+ 38651 - 11905: 0xEB8A,
+ 38652 - 11905: 0xEB8B,
+ 38653 - 11905: 0xEB8C,
+ 38654 - 11905: 0xCEED,
+ 38655 - 11905: 0xEB8D,
+ 38656 - 11905: 0xD0E8,
+ 38657 - 11905: 0xF6AB,
+ 38658 - 11905: 0xEB8E,
+ 38659 - 11905: 0xEB8F,
+ 38660 - 11905: 0xCFF6,
+ 38661 - 11905: 0xEB90,
+ 38662 - 11905: 0xF6AA,
+ 38663 - 11905: 0xD5F0,
+ 38664 - 11905: 0xF6AC,
+ 38665 - 11905: 0xC3B9,
+ 38666 - 11905: 0xEB91,
+ 38667 - 11905: 0xEB92,
+ 38668 - 11905: 0xEB93,
+ 38669 - 11905: 0xBBF4,
+ 38670 - 11905: 0xF6AE,
+ 38671 - 11905: 0xF6AD,
+ 38672 - 11905: 0xEB94,
+ 38673 - 11905: 0xEB95,
+ 38674 - 11905: 0xEB96,
+ 38675 - 11905: 0xC4DE,
+ 38676 - 11905: 0xEB97,
+ 38677 - 11905: 0xEB98,
+ 38678 - 11905: 0xC1D8,
+ 38679 - 11905: 0xEB99,
+ 38680 - 11905: 0xEB9A,
+ 38681 - 11905: 0xEB9B,
+ 38682 - 11905: 0xEB9C,
+ 38683 - 11905: 0xEB9D,
+ 38684 - 11905: 0xCBAA,
+ 38685 - 11905: 0xEB9E,
+ 38686 - 11905: 0xCFBC,
+ 38687 - 11905: 0xEB9F,
+ 38688 - 11905: 0xEBA0,
+ 38689 - 11905: 0xEC40,
+ 38690 - 11905: 0xEC41,
+ 38691 - 11905: 0xEC42,
+ 38692 - 11905: 0xEC43,
+ 38693 - 11905: 0xEC44,
+ 38694 - 11905: 0xEC45,
+ 38695 - 11905: 0xEC46,
+ 38696 - 11905: 0xEC47,
+ 38697 - 11905: 0xEC48,
+ 38698 - 11905: 0xF6AF,
+ 38699 - 11905: 0xEC49,
+ 38700 - 11905: 0xEC4A,
+ 38701 - 11905: 0xF6B0,
+ 38702 - 11905: 0xEC4B,
+ 38703 - 11905: 0xEC4C,
+ 38704 - 11905: 0xF6B1,
+ 38705 - 11905: 0xEC4D,
+ 38706 - 11905: 0xC2B6,
+ 38707 - 11905: 0xEC4E,
+ 38708 - 11905: 0xEC4F,
+ 38709 - 11905: 0xEC50,
+ 38710 - 11905: 0xEC51,
+ 38711 - 11905: 0xEC52,
+ 38712 - 11905: 0xB0D4,
+ 38713 - 11905: 0xC5F9,
+ 38714 - 11905: 0xEC53,
+ 38715 - 11905: 0xEC54,
+ 38716 - 11905: 0xEC55,
+ 38717 - 11905: 0xEC56,
+ 38718 - 11905: 0xF6B2,
+ 38719 - 11905: 0xEC57,
+ 38720 - 11905: 0xEC58,
+ 38721 - 11905: 0xEC59,
+ 38722 - 11905: 0xEC5A,
+ 38723 - 11905: 0xEC5B,
+ 38724 - 11905: 0xEC5C,
+ 38725 - 11905: 0xEC5D,
+ 38726 - 11905: 0xEC5E,
+ 38727 - 11905: 0xEC5F,
+ 38728 - 11905: 0xEC60,
+ 38729 - 11905: 0xEC61,
+ 38730 - 11905: 0xEC62,
+ 38731 - 11905: 0xEC63,
+ 38732 - 11905: 0xEC64,
+ 38733 - 11905: 0xEC65,
+ 38734 - 11905: 0xEC66,
+ 38735 - 11905: 0xEC67,
+ 38736 - 11905: 0xEC68,
+ 38737 - 11905: 0xEC69,
+ 38738 - 11905: 0xC7E0,
+ 38739 - 11905: 0xF6A6,
+ 38740 - 11905: 0xEC6A,
+ 38741 - 11905: 0xEC6B,
+ 38742 - 11905: 0xBEB8,
+ 38743 - 11905: 0xEC6C,
+ 38744 - 11905: 0xEC6D,
+ 38745 - 11905: 0xBEB2,
+ 38746 - 11905: 0xEC6E,
+ 38747 - 11905: 0xB5E5,
+ 38748 - 11905: 0xEC6F,
+ 38749 - 11905: 0xEC70,
+ 38750 - 11905: 0xB7C7,
+ 38751 - 11905: 0xEC71,
+ 38752 - 11905: 0xBFBF,
+ 38753 - 11905: 0xC3D2,
+ 38754 - 11905: 0xC3E6,
+ 38755 - 11905: 0xEC72,
+ 38756 - 11905: 0xEC73,
+ 38757 - 11905: 0xD8CC,
+ 38758 - 11905: 0xEC74,
+ 38759 - 11905: 0xEC75,
+ 38760 - 11905: 0xEC76,
+ 38761 - 11905: 0xB8EF,
+ 38762 - 11905: 0xEC77,
+ 38763 - 11905: 0xEC78,
+ 38764 - 11905: 0xEC79,
+ 38765 - 11905: 0xEC7A,
+ 38766 - 11905: 0xEC7B,
+ 38767 - 11905: 0xEC7C,
+ 38768 - 11905: 0xEC7D,
+ 38769 - 11905: 0xEC7E,
+ 38770 - 11905: 0xEC80,
+ 38771 - 11905: 0xBDF9,
+ 38772 - 11905: 0xD1A5,
+ 38773 - 11905: 0xEC81,
+ 38774 - 11905: 0xB0D0,
+ 38775 - 11905: 0xEC82,
+ 38776 - 11905: 0xEC83,
+ 38777 - 11905: 0xEC84,
+ 38778 - 11905: 0xEC85,
+ 38779 - 11905: 0xEC86,
+ 38780 - 11905: 0xF7B0,
+ 38781 - 11905: 0xEC87,
+ 38782 - 11905: 0xEC88,
+ 38783 - 11905: 0xEC89,
+ 38784 - 11905: 0xEC8A,
+ 38785 - 11905: 0xEC8B,
+ 38786 - 11905: 0xEC8C,
+ 38787 - 11905: 0xEC8D,
+ 38788 - 11905: 0xEC8E,
+ 38789 - 11905: 0xF7B1,
+ 38790 - 11905: 0xEC8F,
+ 38791 - 11905: 0xEC90,
+ 38792 - 11905: 0xEC91,
+ 38793 - 11905: 0xEC92,
+ 38794 - 11905: 0xEC93,
+ 38795 - 11905: 0xD0AC,
+ 38796 - 11905: 0xEC94,
+ 38797 - 11905: 0xB0B0,
+ 38798 - 11905: 0xEC95,
+ 38799 - 11905: 0xEC96,
+ 38800 - 11905: 0xEC97,
+ 38801 - 11905: 0xF7B2,
+ 38802 - 11905: 0xF7B3,
+ 38803 - 11905: 0xEC98,
+ 38804 - 11905: 0xF7B4,
+ 38805 - 11905: 0xEC99,
+ 38806 - 11905: 0xEC9A,
+ 38807 - 11905: 0xEC9B,
+ 38808 - 11905: 0xC7CA,
+ 38809 - 11905: 0xEC9C,
+ 38810 - 11905: 0xEC9D,
+ 38811 - 11905: 0xEC9E,
+ 38812 - 11905: 0xEC9F,
+ 38813 - 11905: 0xECA0,
+ 38814 - 11905: 0xED40,
+ 38815 - 11905: 0xED41,
+ 38816 - 11905: 0xBECF,
+ 38817 - 11905: 0xED42,
+ 38818 - 11905: 0xED43,
+ 38819 - 11905: 0xF7B7,
+ 38820 - 11905: 0xED44,
+ 38821 - 11905: 0xED45,
+ 38822 - 11905: 0xED46,
+ 38823 - 11905: 0xED47,
+ 38824 - 11905: 0xED48,
+ 38825 - 11905: 0xED49,
+ 38826 - 11905: 0xED4A,
+ 38827 - 11905: 0xF7B6,
+ 38828 - 11905: 0xED4B,
+ 38829 - 11905: 0xB1DE,
+ 38830 - 11905: 0xED4C,
+ 38831 - 11905: 0xF7B5,
+ 38832 - 11905: 0xED4D,
+ 38833 - 11905: 0xED4E,
+ 38834 - 11905: 0xF7B8,
+ 38835 - 11905: 0xED4F,
+ 38836 - 11905: 0xF7B9,
+ 38837 - 11905: 0xED50,
+ 38838 - 11905: 0xED51,
+ 38839 - 11905: 0xED52,
+ 38840 - 11905: 0xED53,
+ 38841 - 11905: 0xED54,
+ 38842 - 11905: 0xED55,
+ 38843 - 11905: 0xED56,
+ 38844 - 11905: 0xED57,
+ 38845 - 11905: 0xED58,
+ 38846 - 11905: 0xED59,
+ 38847 - 11905: 0xED5A,
+ 38848 - 11905: 0xED5B,
+ 38849 - 11905: 0xED5C,
+ 38850 - 11905: 0xED5D,
+ 38851 - 11905: 0xED5E,
+ 38852 - 11905: 0xED5F,
+ 38853 - 11905: 0xED60,
+ 38854 - 11905: 0xED61,
+ 38855 - 11905: 0xED62,
+ 38856 - 11905: 0xED63,
+ 38857 - 11905: 0xED64,
+ 38858 - 11905: 0xED65,
+ 38859 - 11905: 0xED66,
+ 38860 - 11905: 0xED67,
+ 38861 - 11905: 0xED68,
+ 38862 - 11905: 0xED69,
+ 38863 - 11905: 0xED6A,
+ 38864 - 11905: 0xED6B,
+ 38865 - 11905: 0xED6C,
+ 38866 - 11905: 0xED6D,
+ 38867 - 11905: 0xED6E,
+ 38868 - 11905: 0xED6F,
+ 38869 - 11905: 0xED70,
+ 38870 - 11905: 0xED71,
+ 38871 - 11905: 0xED72,
+ 38872 - 11905: 0xED73,
+ 38873 - 11905: 0xED74,
+ 38874 - 11905: 0xED75,
+ 38875 - 11905: 0xED76,
+ 38876 - 11905: 0xED77,
+ 38877 - 11905: 0xED78,
+ 38878 - 11905: 0xED79,
+ 38879 - 11905: 0xED7A,
+ 38880 - 11905: 0xED7B,
+ 38881 - 11905: 0xED7C,
+ 38882 - 11905: 0xED7D,
+ 38883 - 11905: 0xED7E,
+ 38884 - 11905: 0xED80,
+ 38885 - 11905: 0xED81,
+ 38886 - 11905: 0xCEA4,
+ 38887 - 11905: 0xC8CD,
+ 38888 - 11905: 0xED82,
+ 38889 - 11905: 0xBAAB,
+ 38890 - 11905: 0xE8B8,
+ 38891 - 11905: 0xE8B9,
+ 38892 - 11905: 0xE8BA,
+ 38893 - 11905: 0xBEC2,
+ 38894 - 11905: 0xED83,
+ 38895 - 11905: 0xED84,
+ 38896 - 11905: 0xED85,
+ 38897 - 11905: 0xED86,
+ 38898 - 11905: 0xED87,
+ 38899 - 11905: 0xD2F4,
+ 38900 - 11905: 0xED88,
+ 38901 - 11905: 0xD4CF,
+ 38902 - 11905: 0xC9D8,
+ 38903 - 11905: 0xED89,
+ 38904 - 11905: 0xED8A,
+ 38905 - 11905: 0xED8B,
+ 38906 - 11905: 0xED8C,
+ 38907 - 11905: 0xED8D,
+ 38908 - 11905: 0xED8E,
+ 38909 - 11905: 0xED8F,
+ 38910 - 11905: 0xED90,
+ 38911 - 11905: 0xED91,
+ 38912 - 11905: 0xED92,
+ 38913 - 11905: 0xED93,
+ 38914 - 11905: 0xED94,
+ 38915 - 11905: 0xED95,
+ 38916 - 11905: 0xED96,
+ 38917 - 11905: 0xED97,
+ 38918 - 11905: 0xED98,
+ 38919 - 11905: 0xED99,
+ 38920 - 11905: 0xED9A,
+ 38921 - 11905: 0xED9B,
+ 38922 - 11905: 0xED9C,
+ 38923 - 11905: 0xED9D,
+ 38924 - 11905: 0xED9E,
+ 38925 - 11905: 0xED9F,
+ 38926 - 11905: 0xEDA0,
+ 38927 - 11905: 0xEE40,
+ 38928 - 11905: 0xEE41,
+ 38929 - 11905: 0xEE42,
+ 38930 - 11905: 0xEE43,
+ 38931 - 11905: 0xEE44,
+ 38932 - 11905: 0xEE45,
+ 38933 - 11905: 0xEE46,
+ 38934 - 11905: 0xEE47,
+ 38935 - 11905: 0xEE48,
+ 38936 - 11905: 0xEE49,
+ 38937 - 11905: 0xEE4A,
+ 38938 - 11905: 0xEE4B,
+ 38939 - 11905: 0xEE4C,
+ 38940 - 11905: 0xEE4D,
+ 38941 - 11905: 0xEE4E,
+ 38942 - 11905: 0xEE4F,
+ 38943 - 11905: 0xEE50,
+ 38944 - 11905: 0xEE51,
+ 38945 - 11905: 0xEE52,
+ 38946 - 11905: 0xEE53,
+ 38947 - 11905: 0xEE54,
+ 38948 - 11905: 0xEE55,
+ 38949 - 11905: 0xEE56,
+ 38950 - 11905: 0xEE57,
+ 38951 - 11905: 0xEE58,
+ 38952 - 11905: 0xEE59,
+ 38953 - 11905: 0xEE5A,
+ 38954 - 11905: 0xEE5B,
+ 38955 - 11905: 0xEE5C,
+ 38956 - 11905: 0xEE5D,
+ 38957 - 11905: 0xEE5E,
+ 38958 - 11905: 0xEE5F,
+ 38959 - 11905: 0xEE60,
+ 38960 - 11905: 0xEE61,
+ 38961 - 11905: 0xEE62,
+ 38962 - 11905: 0xEE63,
+ 38963 - 11905: 0xEE64,
+ 38964 - 11905: 0xEE65,
+ 38965 - 11905: 0xEE66,
+ 38966 - 11905: 0xEE67,
+ 38967 - 11905: 0xEE68,
+ 38968 - 11905: 0xEE69,
+ 38969 - 11905: 0xEE6A,
+ 38970 - 11905: 0xEE6B,
+ 38971 - 11905: 0xEE6C,
+ 38972 - 11905: 0xEE6D,
+ 38973 - 11905: 0xEE6E,
+ 38974 - 11905: 0xEE6F,
+ 38975 - 11905: 0xEE70,
+ 38976 - 11905: 0xEE71,
+ 38977 - 11905: 0xEE72,
+ 38978 - 11905: 0xEE73,
+ 38979 - 11905: 0xEE74,
+ 38980 - 11905: 0xEE75,
+ 38981 - 11905: 0xEE76,
+ 38982 - 11905: 0xEE77,
+ 38983 - 11905: 0xEE78,
+ 38984 - 11905: 0xEE79,
+ 38985 - 11905: 0xEE7A,
+ 38986 - 11905: 0xEE7B,
+ 38987 - 11905: 0xEE7C,
+ 38988 - 11905: 0xEE7D,
+ 38989 - 11905: 0xEE7E,
+ 38990 - 11905: 0xEE80,
+ 38991 - 11905: 0xEE81,
+ 38992 - 11905: 0xEE82,
+ 38993 - 11905: 0xEE83,
+ 38994 - 11905: 0xEE84,
+ 38995 - 11905: 0xEE85,
+ 38996 - 11905: 0xEE86,
+ 38997 - 11905: 0xEE87,
+ 38998 - 11905: 0xEE88,
+ 38999 - 11905: 0xEE89,
+ 39000 - 11905: 0xEE8A,
+ 39001 - 11905: 0xEE8B,
+ 39002 - 11905: 0xEE8C,
+ 39003 - 11905: 0xEE8D,
+ 39004 - 11905: 0xEE8E,
+ 39005 - 11905: 0xEE8F,
+ 39006 - 11905: 0xEE90,
+ 39007 - 11905: 0xEE91,
+ 39008 - 11905: 0xEE92,
+ 39009 - 11905: 0xEE93,
+ 39010 - 11905: 0xEE94,
+ 39011 - 11905: 0xEE95,
+ 39012 - 11905: 0xEE96,
+ 39013 - 11905: 0xEE97,
+ 39014 - 11905: 0xEE98,
+ 39015 - 11905: 0xEE99,
+ 39016 - 11905: 0xEE9A,
+ 39017 - 11905: 0xEE9B,
+ 39018 - 11905: 0xEE9C,
+ 39019 - 11905: 0xEE9D,
+ 39020 - 11905: 0xEE9E,
+ 39021 - 11905: 0xEE9F,
+ 39022 - 11905: 0xEEA0,
+ 39023 - 11905: 0xEF40,
+ 39024 - 11905: 0xEF41,
+ 39025 - 11905: 0xEF42,
+ 39026 - 11905: 0xEF43,
+ 39027 - 11905: 0xEF44,
+ 39028 - 11905: 0xEF45,
+ 39029 - 11905: 0xD2B3,
+ 39030 - 11905: 0xB6A5,
+ 39031 - 11905: 0xC7EA,
+ 39032 - 11905: 0xF1FC,
+ 39033 - 11905: 0xCFEE,
+ 39034 - 11905: 0xCBB3,
+ 39035 - 11905: 0xD0EB,
+ 39036 - 11905: 0xE7EF,
+ 39037 - 11905: 0xCDE7,
+ 39038 - 11905: 0xB9CB,
+ 39039 - 11905: 0xB6D9,
+ 39040 - 11905: 0xF1FD,
+ 39041 - 11905: 0xB0E4,
+ 39042 - 11905: 0xCBCC,
+ 39043 - 11905: 0xF1FE,
+ 39044 - 11905: 0xD4A4,
+ 39045 - 11905: 0xC2AD,
+ 39046 - 11905: 0xC1EC,
+ 39047 - 11905: 0xC6C4,
+ 39048 - 11905: 0xBEB1,
+ 39049 - 11905: 0xF2A1,
+ 39050 - 11905: 0xBCD5,
+ 39051 - 11905: 0xEF46,
+ 39052 - 11905: 0xF2A2,
+ 39053 - 11905: 0xF2A3,
+ 39054 - 11905: 0xEF47,
+ 39055 - 11905: 0xF2A4,
+ 39056 - 11905: 0xD2C3,
+ 39057 - 11905: 0xC6B5,
+ 39058 - 11905: 0xEF48,
+ 39059 - 11905: 0xCDC7,
+ 39060 - 11905: 0xF2A5,
+ 39061 - 11905: 0xEF49,
+ 39062 - 11905: 0xD3B1,
+ 39063 - 11905: 0xBFC5,
+ 39064 - 11905: 0xCCE2,
+ 39065 - 11905: 0xEF4A,
+ 39066 - 11905: 0xF2A6,
+ 39067 - 11905: 0xF2A7,
+ 39068 - 11905: 0xD1D5,
+ 39069 - 11905: 0xB6EE,
+ 39070 - 11905: 0xF2A8,
+ 39071 - 11905: 0xF2A9,
+ 39072 - 11905: 0xB5DF,
+ 39073 - 11905: 0xF2AA,
+ 39074 - 11905: 0xF2AB,
+ 39075 - 11905: 0xEF4B,
+ 39076 - 11905: 0xB2FC,
+ 39077 - 11905: 0xF2AC,
+ 39078 - 11905: 0xF2AD,
+ 39079 - 11905: 0xC8A7,
+ 39080 - 11905: 0xEF4C,
+ 39081 - 11905: 0xEF4D,
+ 39082 - 11905: 0xEF4E,
+ 39083 - 11905: 0xEF4F,
+ 39084 - 11905: 0xEF50,
+ 39085 - 11905: 0xEF51,
+ 39086 - 11905: 0xEF52,
+ 39087 - 11905: 0xEF53,
+ 39088 - 11905: 0xEF54,
+ 39089 - 11905: 0xEF55,
+ 39090 - 11905: 0xEF56,
+ 39091 - 11905: 0xEF57,
+ 39092 - 11905: 0xEF58,
+ 39093 - 11905: 0xEF59,
+ 39094 - 11905: 0xEF5A,
+ 39095 - 11905: 0xEF5B,
+ 39096 - 11905: 0xEF5C,
+ 39097 - 11905: 0xEF5D,
+ 39098 - 11905: 0xEF5E,
+ 39099 - 11905: 0xEF5F,
+ 39100 - 11905: 0xEF60,
+ 39101 - 11905: 0xEF61,
+ 39102 - 11905: 0xEF62,
+ 39103 - 11905: 0xEF63,
+ 39104 - 11905: 0xEF64,
+ 39105 - 11905: 0xEF65,
+ 39106 - 11905: 0xEF66,
+ 39107 - 11905: 0xEF67,
+ 39108 - 11905: 0xEF68,
+ 39109 - 11905: 0xEF69,
+ 39110 - 11905: 0xEF6A,
+ 39111 - 11905: 0xEF6B,
+ 39112 - 11905: 0xEF6C,
+ 39113 - 11905: 0xEF6D,
+ 39114 - 11905: 0xEF6E,
+ 39115 - 11905: 0xEF6F,
+ 39116 - 11905: 0xEF70,
+ 39117 - 11905: 0xEF71,
+ 39118 - 11905: 0xB7E7,
+ 39119 - 11905: 0xEF72,
+ 39120 - 11905: 0xEF73,
+ 39121 - 11905: 0xECA9,
+ 39122 - 11905: 0xECAA,
+ 39123 - 11905: 0xECAB,
+ 39124 - 11905: 0xEF74,
+ 39125 - 11905: 0xECAC,
+ 39126 - 11905: 0xEF75,
+ 39127 - 11905: 0xEF76,
+ 39128 - 11905: 0xC6AE,
+ 39129 - 11905: 0xECAD,
+ 39130 - 11905: 0xECAE,
+ 39131 - 11905: 0xEF77,
+ 39132 - 11905: 0xEF78,
+ 39133 - 11905: 0xEF79,
+ 39134 - 11905: 0xB7C9,
+ 39135 - 11905: 0xCAB3,
+ 39136 - 11905: 0xEF7A,
+ 39137 - 11905: 0xEF7B,
+ 39138 - 11905: 0xEF7C,
+ 39139 - 11905: 0xEF7D,
+ 39140 - 11905: 0xEF7E,
+ 39141 - 11905: 0xEF80,
+ 39142 - 11905: 0xEF81,
+ 39143 - 11905: 0xE2B8,
+ 39144 - 11905: 0xF7CF,
+ 39145 - 11905: 0xEF82,
+ 39146 - 11905: 0xEF83,
+ 39147 - 11905: 0xEF84,
+ 39148 - 11905: 0xEF85,
+ 39149 - 11905: 0xEF86,
+ 39150 - 11905: 0xEF87,
+ 39151 - 11905: 0xEF88,
+ 39152 - 11905: 0xEF89,
+ 39153 - 11905: 0xEF8A,
+ 39154 - 11905: 0xEF8B,
+ 39155 - 11905: 0xEF8C,
+ 39156 - 11905: 0xEF8D,
+ 39157 - 11905: 0xEF8E,
+ 39158 - 11905: 0xEF8F,
+ 39159 - 11905: 0xEF90,
+ 39160 - 11905: 0xEF91,
+ 39161 - 11905: 0xEF92,
+ 39162 - 11905: 0xEF93,
+ 39163 - 11905: 0xEF94,
+ 39164 - 11905: 0xEF95,
+ 39165 - 11905: 0xEF96,
+ 39166 - 11905: 0xEF97,
+ 39167 - 11905: 0xEF98,
+ 39168 - 11905: 0xEF99,
+ 39169 - 11905: 0xEF9A,
+ 39170 - 11905: 0xEF9B,
+ 39171 - 11905: 0xEF9C,
+ 39172 - 11905: 0xEF9D,
+ 39173 - 11905: 0xEF9E,
+ 39174 - 11905: 0xEF9F,
+ 39175 - 11905: 0xEFA0,
+ 39176 - 11905: 0xF040,
+ 39177 - 11905: 0xF041,
+ 39178 - 11905: 0xF042,
+ 39179 - 11905: 0xF043,
+ 39180 - 11905: 0xF044,
+ 39181 - 11905: 0xF7D0,
+ 39182 - 11905: 0xF045,
+ 39183 - 11905: 0xF046,
+ 39184 - 11905: 0xB2CD,
+ 39185 - 11905: 0xF047,
+ 39186 - 11905: 0xF048,
+ 39187 - 11905: 0xF049,
+ 39188 - 11905: 0xF04A,
+ 39189 - 11905: 0xF04B,
+ 39190 - 11905: 0xF04C,
+ 39191 - 11905: 0xF04D,
+ 39192 - 11905: 0xF04E,
+ 39193 - 11905: 0xF04F,
+ 39194 - 11905: 0xF050,
+ 39195 - 11905: 0xF051,
+ 39196 - 11905: 0xF052,
+ 39197 - 11905: 0xF053,
+ 39198 - 11905: 0xF054,
+ 39199 - 11905: 0xF055,
+ 39200 - 11905: 0xF056,
+ 39201 - 11905: 0xF057,
+ 39202 - 11905: 0xF058,
+ 39203 - 11905: 0xF059,
+ 39204 - 11905: 0xF05A,
+ 39205 - 11905: 0xF05B,
+ 39206 - 11905: 0xF05C,
+ 39207 - 11905: 0xF05D,
+ 39208 - 11905: 0xF05E,
+ 39209 - 11905: 0xF05F,
+ 39210 - 11905: 0xF060,
+ 39211 - 11905: 0xF061,
+ 39212 - 11905: 0xF062,
+ 39213 - 11905: 0xF063,
+ 39214 - 11905: 0xF7D1,
+ 39215 - 11905: 0xF064,
+ 39216 - 11905: 0xF065,
+ 39217 - 11905: 0xF066,
+ 39218 - 11905: 0xF067,
+ 39219 - 11905: 0xF068,
+ 39220 - 11905: 0xF069,
+ 39221 - 11905: 0xF06A,
+ 39222 - 11905: 0xF06B,
+ 39223 - 11905: 0xF06C,
+ 39224 - 11905: 0xF06D,
+ 39225 - 11905: 0xF06E,
+ 39226 - 11905: 0xF06F,
+ 39227 - 11905: 0xF070,
+ 39228 - 11905: 0xF071,
+ 39229 - 11905: 0xF072,
+ 39230 - 11905: 0xF073,
+ 39231 - 11905: 0xF074,
+ 39232 - 11905: 0xF075,
+ 39233 - 11905: 0xF076,
+ 39234 - 11905: 0xF077,
+ 39235 - 11905: 0xF078,
+ 39236 - 11905: 0xF079,
+ 39237 - 11905: 0xF07A,
+ 39238 - 11905: 0xF07B,
+ 39239 - 11905: 0xF07C,
+ 39240 - 11905: 0xF07D,
+ 39241 - 11905: 0xF07E,
+ 39242 - 11905: 0xF080,
+ 39243 - 11905: 0xF081,
+ 39244 - 11905: 0xF082,
+ 39245 - 11905: 0xF083,
+ 39246 - 11905: 0xF084,
+ 39247 - 11905: 0xF085,
+ 39248 - 11905: 0xF086,
+ 39249 - 11905: 0xF087,
+ 39250 - 11905: 0xF088,
+ 39251 - 11905: 0xF089,
+ 39252 - 11905: 0xF7D3,
+ 39253 - 11905: 0xF7D2,
+ 39254 - 11905: 0xF08A,
+ 39255 - 11905: 0xF08B,
+ 39256 - 11905: 0xF08C,
+ 39257 - 11905: 0xF08D,
+ 39258 - 11905: 0xF08E,
+ 39259 - 11905: 0xF08F,
+ 39260 - 11905: 0xF090,
+ 39261 - 11905: 0xF091,
+ 39262 - 11905: 0xF092,
+ 39263 - 11905: 0xF093,
+ 39264 - 11905: 0xF094,
+ 39265 - 11905: 0xF095,
+ 39266 - 11905: 0xF096,
+ 39267 - 11905: 0xE2BB,
+ 39268 - 11905: 0xF097,
+ 39269 - 11905: 0xBCA2,
+ 39270 - 11905: 0xF098,
+ 39271 - 11905: 0xE2BC,
+ 39272 - 11905: 0xE2BD,
+ 39273 - 11905: 0xE2BE,
+ 39274 - 11905: 0xE2BF,
+ 39275 - 11905: 0xE2C0,
+ 39276 - 11905: 0xE2C1,
+ 39277 - 11905: 0xB7B9,
+ 39278 - 11905: 0xD2FB,
+ 39279 - 11905: 0xBDA4,
+ 39280 - 11905: 0xCACE,
+ 39281 - 11905: 0xB1A5,
+ 39282 - 11905: 0xCBC7,
+ 39283 - 11905: 0xF099,
+ 39284 - 11905: 0xE2C2,
+ 39285 - 11905: 0xB6FC,
+ 39286 - 11905: 0xC8C4,
+ 39287 - 11905: 0xE2C3,
+ 39288 - 11905: 0xF09A,
+ 39289 - 11905: 0xF09B,
+ 39290 - 11905: 0xBDC8,
+ 39291 - 11905: 0xF09C,
+ 39292 - 11905: 0xB1FD,
+ 39293 - 11905: 0xE2C4,
+ 39294 - 11905: 0xF09D,
+ 39295 - 11905: 0xB6F6,
+ 39296 - 11905: 0xE2C5,
+ 39297 - 11905: 0xC4D9,
+ 39298 - 11905: 0xF09E,
+ 39299 - 11905: 0xF09F,
+ 39300 - 11905: 0xE2C6,
+ 39301 - 11905: 0xCFDA,
+ 39302 - 11905: 0xB9DD,
+ 39303 - 11905: 0xE2C7,
+ 39304 - 11905: 0xC0A1,
+ 39305 - 11905: 0xF0A0,
+ 39306 - 11905: 0xE2C8,
+ 39307 - 11905: 0xB2F6,
+ 39308 - 11905: 0xF140,
+ 39309 - 11905: 0xE2C9,
+ 39310 - 11905: 0xF141,
+ 39311 - 11905: 0xC1F3,
+ 39312 - 11905: 0xE2CA,
+ 39313 - 11905: 0xE2CB,
+ 39314 - 11905: 0xC2F8,
+ 39315 - 11905: 0xE2CC,
+ 39316 - 11905: 0xE2CD,
+ 39317 - 11905: 0xE2CE,
+ 39318 - 11905: 0xCAD7,
+ 39319 - 11905: 0xD8B8,
+ 39320 - 11905: 0xD9E5,
+ 39321 - 11905: 0xCFE3,
+ 39322 - 11905: 0xF142,
+ 39323 - 11905: 0xF143,
+ 39324 - 11905: 0xF144,
+ 39325 - 11905: 0xF145,
+ 39326 - 11905: 0xF146,
+ 39327 - 11905: 0xF147,
+ 39328 - 11905: 0xF148,
+ 39329 - 11905: 0xF149,
+ 39330 - 11905: 0xF14A,
+ 39331 - 11905: 0xF14B,
+ 39332 - 11905: 0xF14C,
+ 39333 - 11905: 0xF0A5,
+ 39334 - 11905: 0xF14D,
+ 39335 - 11905: 0xF14E,
+ 39336 - 11905: 0xDCB0,
+ 39337 - 11905: 0xF14F,
+ 39338 - 11905: 0xF150,
+ 39339 - 11905: 0xF151,
+ 39340 - 11905: 0xF152,
+ 39341 - 11905: 0xF153,
+ 39342 - 11905: 0xF154,
+ 39343 - 11905: 0xF155,
+ 39344 - 11905: 0xF156,
+ 39345 - 11905: 0xF157,
+ 39346 - 11905: 0xF158,
+ 39347 - 11905: 0xF159,
+ 39348 - 11905: 0xF15A,
+ 39349 - 11905: 0xF15B,
+ 39350 - 11905: 0xF15C,
+ 39351 - 11905: 0xF15D,
+ 39352 - 11905: 0xF15E,
+ 39353 - 11905: 0xF15F,
+ 39354 - 11905: 0xF160,
+ 39355 - 11905: 0xF161,
+ 39356 - 11905: 0xF162,
+ 39357 - 11905: 0xF163,
+ 39358 - 11905: 0xF164,
+ 39359 - 11905: 0xF165,
+ 39360 - 11905: 0xF166,
+ 39361 - 11905: 0xF167,
+ 39362 - 11905: 0xF168,
+ 39363 - 11905: 0xF169,
+ 39364 - 11905: 0xF16A,
+ 39365 - 11905: 0xF16B,
+ 39366 - 11905: 0xF16C,
+ 39367 - 11905: 0xF16D,
+ 39368 - 11905: 0xF16E,
+ 39369 - 11905: 0xF16F,
+ 39370 - 11905: 0xF170,
+ 39371 - 11905: 0xF171,
+ 39372 - 11905: 0xF172,
+ 39373 - 11905: 0xF173,
+ 39374 - 11905: 0xF174,
+ 39375 - 11905: 0xF175,
+ 39376 - 11905: 0xF176,
+ 39377 - 11905: 0xF177,
+ 39378 - 11905: 0xF178,
+ 39379 - 11905: 0xF179,
+ 39380 - 11905: 0xF17A,
+ 39381 - 11905: 0xF17B,
+ 39382 - 11905: 0xF17C,
+ 39383 - 11905: 0xF17D,
+ 39384 - 11905: 0xF17E,
+ 39385 - 11905: 0xF180,
+ 39386 - 11905: 0xF181,
+ 39387 - 11905: 0xF182,
+ 39388 - 11905: 0xF183,
+ 39389 - 11905: 0xF184,
+ 39390 - 11905: 0xF185,
+ 39391 - 11905: 0xF186,
+ 39392 - 11905: 0xF187,
+ 39393 - 11905: 0xF188,
+ 39394 - 11905: 0xF189,
+ 39395 - 11905: 0xF18A,
+ 39396 - 11905: 0xF18B,
+ 39397 - 11905: 0xF18C,
+ 39398 - 11905: 0xF18D,
+ 39399 - 11905: 0xF18E,
+ 39400 - 11905: 0xF18F,
+ 39401 - 11905: 0xF190,
+ 39402 - 11905: 0xF191,
+ 39403 - 11905: 0xF192,
+ 39404 - 11905: 0xF193,
+ 39405 - 11905: 0xF194,
+ 39406 - 11905: 0xF195,
+ 39407 - 11905: 0xF196,
+ 39408 - 11905: 0xF197,
+ 39409 - 11905: 0xF198,
+ 39410 - 11905: 0xF199,
+ 39411 - 11905: 0xF19A,
+ 39412 - 11905: 0xF19B,
+ 39413 - 11905: 0xF19C,
+ 39414 - 11905: 0xF19D,
+ 39415 - 11905: 0xF19E,
+ 39416 - 11905: 0xF19F,
+ 39417 - 11905: 0xF1A0,
+ 39418 - 11905: 0xF240,
+ 39419 - 11905: 0xF241,
+ 39420 - 11905: 0xF242,
+ 39421 - 11905: 0xF243,
+ 39422 - 11905: 0xF244,
+ 39423 - 11905: 0xF245,
+ 39424 - 11905: 0xF246,
+ 39425 - 11905: 0xF247,
+ 39426 - 11905: 0xF248,
+ 39427 - 11905: 0xF249,
+ 39428 - 11905: 0xF24A,
+ 39429 - 11905: 0xF24B,
+ 39430 - 11905: 0xF24C,
+ 39431 - 11905: 0xF24D,
+ 39432 - 11905: 0xF24E,
+ 39433 - 11905: 0xF24F,
+ 39434 - 11905: 0xF250,
+ 39435 - 11905: 0xF251,
+ 39436 - 11905: 0xF252,
+ 39437 - 11905: 0xF253,
+ 39438 - 11905: 0xF254,
+ 39439 - 11905: 0xF255,
+ 39440 - 11905: 0xF256,
+ 39441 - 11905: 0xF257,
+ 39442 - 11905: 0xF258,
+ 39443 - 11905: 0xF259,
+ 39444 - 11905: 0xF25A,
+ 39445 - 11905: 0xF25B,
+ 39446 - 11905: 0xF25C,
+ 39447 - 11905: 0xF25D,
+ 39448 - 11905: 0xF25E,
+ 39449 - 11905: 0xF25F,
+ 39450 - 11905: 0xF260,
+ 39451 - 11905: 0xF261,
+ 39452 - 11905: 0xF262,
+ 39453 - 11905: 0xF263,
+ 39454 - 11905: 0xF264,
+ 39455 - 11905: 0xF265,
+ 39456 - 11905: 0xF266,
+ 39457 - 11905: 0xF267,
+ 39458 - 11905: 0xF268,
+ 39459 - 11905: 0xF269,
+ 39460 - 11905: 0xF26A,
+ 39461 - 11905: 0xF26B,
+ 39462 - 11905: 0xF26C,
+ 39463 - 11905: 0xF26D,
+ 39464 - 11905: 0xF26E,
+ 39465 - 11905: 0xF26F,
+ 39466 - 11905: 0xF270,
+ 39467 - 11905: 0xF271,
+ 39468 - 11905: 0xF272,
+ 39469 - 11905: 0xF273,
+ 39470 - 11905: 0xF274,
+ 39471 - 11905: 0xF275,
+ 39472 - 11905: 0xF276,
+ 39473 - 11905: 0xF277,
+ 39474 - 11905: 0xF278,
+ 39475 - 11905: 0xF279,
+ 39476 - 11905: 0xF27A,
+ 39477 - 11905: 0xF27B,
+ 39478 - 11905: 0xF27C,
+ 39479 - 11905: 0xF27D,
+ 39480 - 11905: 0xF27E,
+ 39481 - 11905: 0xF280,
+ 39482 - 11905: 0xF281,
+ 39483 - 11905: 0xF282,
+ 39484 - 11905: 0xF283,
+ 39485 - 11905: 0xF284,
+ 39486 - 11905: 0xF285,
+ 39487 - 11905: 0xF286,
+ 39488 - 11905: 0xF287,
+ 39489 - 11905: 0xF288,
+ 39490 - 11905: 0xF289,
+ 39491 - 11905: 0xF28A,
+ 39492 - 11905: 0xF28B,
+ 39493 - 11905: 0xF28C,
+ 39494 - 11905: 0xF28D,
+ 39495 - 11905: 0xF28E,
+ 39496 - 11905: 0xF28F,
+ 39497 - 11905: 0xF290,
+ 39498 - 11905: 0xF291,
+ 39499 - 11905: 0xF292,
+ 39500 - 11905: 0xF293,
+ 39501 - 11905: 0xF294,
+ 39502 - 11905: 0xF295,
+ 39503 - 11905: 0xF296,
+ 39504 - 11905: 0xF297,
+ 39505 - 11905: 0xF298,
+ 39506 - 11905: 0xF299,
+ 39507 - 11905: 0xF29A,
+ 39508 - 11905: 0xF29B,
+ 39509 - 11905: 0xF29C,
+ 39510 - 11905: 0xF29D,
+ 39511 - 11905: 0xF29E,
+ 39512 - 11905: 0xF29F,
+ 39513 - 11905: 0xF2A0,
+ 39514 - 11905: 0xF340,
+ 39515 - 11905: 0xF341,
+ 39516 - 11905: 0xF342,
+ 39517 - 11905: 0xF343,
+ 39518 - 11905: 0xF344,
+ 39519 - 11905: 0xF345,
+ 39520 - 11905: 0xF346,
+ 39521 - 11905: 0xF347,
+ 39522 - 11905: 0xF348,
+ 39523 - 11905: 0xF349,
+ 39524 - 11905: 0xF34A,
+ 39525 - 11905: 0xF34B,
+ 39526 - 11905: 0xF34C,
+ 39527 - 11905: 0xF34D,
+ 39528 - 11905: 0xF34E,
+ 39529 - 11905: 0xF34F,
+ 39530 - 11905: 0xF350,
+ 39531 - 11905: 0xF351,
+ 39532 - 11905: 0xC2ED,
+ 39533 - 11905: 0xD4A6,
+ 39534 - 11905: 0xCDD4,
+ 39535 - 11905: 0xD1B1,
+ 39536 - 11905: 0xB3DB,
+ 39537 - 11905: 0xC7FD,
+ 39538 - 11905: 0xF352,
+ 39539 - 11905: 0xB2B5,
+ 39540 - 11905: 0xC2BF,
+ 39541 - 11905: 0xE6E0,
+ 39542 - 11905: 0xCABB,
+ 39543 - 11905: 0xE6E1,
+ 39544 - 11905: 0xE6E2,
+ 39545 - 11905: 0xBED4,
+ 39546 - 11905: 0xE6E3,
+ 39547 - 11905: 0xD7A4,
+ 39548 - 11905: 0xCDD5,
+ 39549 - 11905: 0xE6E5,
+ 39550 - 11905: 0xBCDD,
+ 39551 - 11905: 0xE6E4,
+ 39552 - 11905: 0xE6E6,
+ 39553 - 11905: 0xE6E7,
+ 39554 - 11905: 0xC2EE,
+ 39555 - 11905: 0xF353,
+ 39556 - 11905: 0xBDBE,
+ 39557 - 11905: 0xE6E8,
+ 39558 - 11905: 0xC2E6,
+ 39559 - 11905: 0xBAA7,
+ 39560 - 11905: 0xE6E9,
+ 39561 - 11905: 0xF354,
+ 39562 - 11905: 0xE6EA,
+ 39563 - 11905: 0xB3D2,
+ 39564 - 11905: 0xD1E9,
+ 39565 - 11905: 0xF355,
+ 39566 - 11905: 0xF356,
+ 39567 - 11905: 0xBFA5,
+ 39568 - 11905: 0xE6EB,
+ 39569 - 11905: 0xC6EF,
+ 39570 - 11905: 0xE6EC,
+ 39571 - 11905: 0xE6ED,
+ 39572 - 11905: 0xF357,
+ 39573 - 11905: 0xF358,
+ 39574 - 11905: 0xE6EE,
+ 39575 - 11905: 0xC6AD,
+ 39576 - 11905: 0xE6EF,
+ 39577 - 11905: 0xF359,
+ 39578 - 11905: 0xC9A7,
+ 39579 - 11905: 0xE6F0,
+ 39580 - 11905: 0xE6F1,
+ 39581 - 11905: 0xE6F2,
+ 39582 - 11905: 0xE5B9,
+ 39583 - 11905: 0xE6F3,
+ 39584 - 11905: 0xE6F4,
+ 39585 - 11905: 0xC2E2,
+ 39586 - 11905: 0xE6F5,
+ 39587 - 11905: 0xE6F6,
+ 39588 - 11905: 0xD6E8,
+ 39589 - 11905: 0xE6F7,
+ 39590 - 11905: 0xF35A,
+ 39591 - 11905: 0xE6F8,
+ 39592 - 11905: 0xB9C7,
+ 39593 - 11905: 0xF35B,
+ 39594 - 11905: 0xF35C,
+ 39595 - 11905: 0xF35D,
+ 39596 - 11905: 0xF35E,
+ 39597 - 11905: 0xF35F,
+ 39598 - 11905: 0xF360,
+ 39599 - 11905: 0xF361,
+ 39600 - 11905: 0xF7BB,
+ 39601 - 11905: 0xF7BA,
+ 39602 - 11905: 0xF362,
+ 39603 - 11905: 0xF363,
+ 39604 - 11905: 0xF364,
+ 39605 - 11905: 0xF365,
+ 39606 - 11905: 0xF7BE,
+ 39607 - 11905: 0xF7BC,
+ 39608 - 11905: 0xBAA1,
+ 39609 - 11905: 0xF366,
+ 39610 - 11905: 0xF7BF,
+ 39611 - 11905: 0xF367,
+ 39612 - 11905: 0xF7C0,
+ 39613 - 11905: 0xF368,
+ 39614 - 11905: 0xF369,
+ 39615 - 11905: 0xF36A,
+ 39616 - 11905: 0xF7C2,
+ 39617 - 11905: 0xF7C1,
+ 39618 - 11905: 0xF7C4,
+ 39619 - 11905: 0xF36B,
+ 39620 - 11905: 0xF36C,
+ 39621 - 11905: 0xF7C3,
+ 39622 - 11905: 0xF36D,
+ 39623 - 11905: 0xF36E,
+ 39624 - 11905: 0xF36F,
+ 39625 - 11905: 0xF370,
+ 39626 - 11905: 0xF371,
+ 39627 - 11905: 0xF7C5,
+ 39628 - 11905: 0xF7C6,
+ 39629 - 11905: 0xF372,
+ 39630 - 11905: 0xF373,
+ 39631 - 11905: 0xF374,
+ 39632 - 11905: 0xF375,
+ 39633 - 11905: 0xF7C7,
+ 39634 - 11905: 0xF376,
+ 39635 - 11905: 0xCBE8,
+ 39636 - 11905: 0xF377,
+ 39637 - 11905: 0xF378,
+ 39638 - 11905: 0xF379,
+ 39639 - 11905: 0xF37A,
+ 39640 - 11905: 0xB8DF,
+ 39641 - 11905: 0xF37B,
+ 39642 - 11905: 0xF37C,
+ 39643 - 11905: 0xF37D,
+ 39644 - 11905: 0xF37E,
+ 39645 - 11905: 0xF380,
+ 39646 - 11905: 0xF381,
+ 39647 - 11905: 0xF7D4,
+ 39648 - 11905: 0xF382,
+ 39649 - 11905: 0xF7D5,
+ 39650 - 11905: 0xF383,
+ 39651 - 11905: 0xF384,
+ 39652 - 11905: 0xF385,
+ 39653 - 11905: 0xF386,
+ 39654 - 11905: 0xF7D6,
+ 39655 - 11905: 0xF387,
+ 39656 - 11905: 0xF388,
+ 39657 - 11905: 0xF389,
+ 39658 - 11905: 0xF38A,
+ 39659 - 11905: 0xF7D8,
+ 39660 - 11905: 0xF38B,
+ 39661 - 11905: 0xF7DA,
+ 39662 - 11905: 0xF38C,
+ 39663 - 11905: 0xF7D7,
+ 39664 - 11905: 0xF38D,
+ 39665 - 11905: 0xF38E,
+ 39666 - 11905: 0xF38F,
+ 39667 - 11905: 0xF390,
+ 39668 - 11905: 0xF391,
+ 39669 - 11905: 0xF392,
+ 39670 - 11905: 0xF393,
+ 39671 - 11905: 0xF394,
+ 39672 - 11905: 0xF395,
+ 39673 - 11905: 0xF7DB,
+ 39674 - 11905: 0xF396,
+ 39675 - 11905: 0xF7D9,
+ 39676 - 11905: 0xF397,
+ 39677 - 11905: 0xF398,
+ 39678 - 11905: 0xF399,
+ 39679 - 11905: 0xF39A,
+ 39680 - 11905: 0xF39B,
+ 39681 - 11905: 0xF39C,
+ 39682 - 11905: 0xF39D,
+ 39683 - 11905: 0xD7D7,
+ 39684 - 11905: 0xF39E,
+ 39685 - 11905: 0xF39F,
+ 39686 - 11905: 0xF3A0,
+ 39687 - 11905: 0xF440,
+ 39688 - 11905: 0xF7DC,
+ 39689 - 11905: 0xF441,
+ 39690 - 11905: 0xF442,
+ 39691 - 11905: 0xF443,
+ 39692 - 11905: 0xF444,
+ 39693 - 11905: 0xF445,
+ 39694 - 11905: 0xF446,
+ 39695 - 11905: 0xF7DD,
+ 39696 - 11905: 0xF447,
+ 39697 - 11905: 0xF448,
+ 39698 - 11905: 0xF449,
+ 39699 - 11905: 0xF7DE,
+ 39700 - 11905: 0xF44A,
+ 39701 - 11905: 0xF44B,
+ 39702 - 11905: 0xF44C,
+ 39703 - 11905: 0xF44D,
+ 39704 - 11905: 0xF44E,
+ 39705 - 11905: 0xF44F,
+ 39706 - 11905: 0xF450,
+ 39707 - 11905: 0xF451,
+ 39708 - 11905: 0xF452,
+ 39709 - 11905: 0xF453,
+ 39710 - 11905: 0xF454,
+ 39711 - 11905: 0xF7DF,
+ 39712 - 11905: 0xF455,
+ 39713 - 11905: 0xF456,
+ 39714 - 11905: 0xF457,
+ 39715 - 11905: 0xF7E0,
+ 39716 - 11905: 0xF458,
+ 39717 - 11905: 0xF459,
+ 39718 - 11905: 0xF45A,
+ 39719 - 11905: 0xF45B,
+ 39720 - 11905: 0xF45C,
+ 39721 - 11905: 0xF45D,
+ 39722 - 11905: 0xF45E,
+ 39723 - 11905: 0xF45F,
+ 39724 - 11905: 0xF460,
+ 39725 - 11905: 0xF461,
+ 39726 - 11905: 0xF462,
+ 39727 - 11905: 0xDBCB,
+ 39728 - 11905: 0xF463,
+ 39729 - 11905: 0xF464,
+ 39730 - 11905: 0xD8AA,
+ 39731 - 11905: 0xF465,
+ 39732 - 11905: 0xF466,
+ 39733 - 11905: 0xF467,
+ 39734 - 11905: 0xF468,
+ 39735 - 11905: 0xF469,
+ 39736 - 11905: 0xF46A,
+ 39737 - 11905: 0xF46B,
+ 39738 - 11905: 0xF46C,
+ 39739 - 11905: 0xE5F7,
+ 39740 - 11905: 0xB9ED,
+ 39741 - 11905: 0xF46D,
+ 39742 - 11905: 0xF46E,
+ 39743 - 11905: 0xF46F,
+ 39744 - 11905: 0xF470,
+ 39745 - 11905: 0xBFFD,
+ 39746 - 11905: 0xBBEA,
+ 39747 - 11905: 0xF7C9,
+ 39748 - 11905: 0xC6C7,
+ 39749 - 11905: 0xF7C8,
+ 39750 - 11905: 0xF471,
+ 39751 - 11905: 0xF7CA,
+ 39752 - 11905: 0xF7CC,
+ 39753 - 11905: 0xF7CB,
+ 39754 - 11905: 0xF472,
+ 39755 - 11905: 0xF473,
+ 39756 - 11905: 0xF474,
+ 39757 - 11905: 0xF7CD,
+ 39758 - 11905: 0xF475,
+ 39759 - 11905: 0xCEBA,
+ 39760 - 11905: 0xF476,
+ 39761 - 11905: 0xF7CE,
+ 39762 - 11905: 0xF477,
+ 39763 - 11905: 0xF478,
+ 39764 - 11905: 0xC4A7,
+ 39765 - 11905: 0xF479,
+ 39766 - 11905: 0xF47A,
+ 39767 - 11905: 0xF47B,
+ 39768 - 11905: 0xF47C,
+ 39769 - 11905: 0xF47D,
+ 39770 - 11905: 0xF47E,
+ 39771 - 11905: 0xF480,
+ 39772 - 11905: 0xF481,
+ 39773 - 11905: 0xF482,
+ 39774 - 11905: 0xF483,
+ 39775 - 11905: 0xF484,
+ 39776 - 11905: 0xF485,
+ 39777 - 11905: 0xF486,
+ 39778 - 11905: 0xF487,
+ 39779 - 11905: 0xF488,
+ 39780 - 11905: 0xF489,
+ 39781 - 11905: 0xF48A,
+ 39782 - 11905: 0xF48B,
+ 39783 - 11905: 0xF48C,
+ 39784 - 11905: 0xF48D,
+ 39785 - 11905: 0xF48E,
+ 39786 - 11905: 0xF48F,
+ 39787 - 11905: 0xF490,
+ 39788 - 11905: 0xF491,
+ 39789 - 11905: 0xF492,
+ 39790 - 11905: 0xF493,
+ 39791 - 11905: 0xF494,
+ 39792 - 11905: 0xF495,
+ 39793 - 11905: 0xF496,
+ 39794 - 11905: 0xF497,
+ 39795 - 11905: 0xF498,
+ 39796 - 11905: 0xF499,
+ 39797 - 11905: 0xF49A,
+ 39798 - 11905: 0xF49B,
+ 39799 - 11905: 0xF49C,
+ 39800 - 11905: 0xF49D,
+ 39801 - 11905: 0xF49E,
+ 39802 - 11905: 0xF49F,
+ 39803 - 11905: 0xF4A0,
+ 39804 - 11905: 0xF540,
+ 39805 - 11905: 0xF541,
+ 39806 - 11905: 0xF542,
+ 39807 - 11905: 0xF543,
+ 39808 - 11905: 0xF544,
+ 39809 - 11905: 0xF545,
+ 39810 - 11905: 0xF546,
+ 39811 - 11905: 0xF547,
+ 39812 - 11905: 0xF548,
+ 39813 - 11905: 0xF549,
+ 39814 - 11905: 0xF54A,
+ 39815 - 11905: 0xF54B,
+ 39816 - 11905: 0xF54C,
+ 39817 - 11905: 0xF54D,
+ 39818 - 11905: 0xF54E,
+ 39819 - 11905: 0xF54F,
+ 39820 - 11905: 0xF550,
+ 39821 - 11905: 0xF551,
+ 39822 - 11905: 0xF552,
+ 39823 - 11905: 0xF553,
+ 39824 - 11905: 0xF554,
+ 39825 - 11905: 0xF555,
+ 39826 - 11905: 0xF556,
+ 39827 - 11905: 0xF557,
+ 39828 - 11905: 0xF558,
+ 39829 - 11905: 0xF559,
+ 39830 - 11905: 0xF55A,
+ 39831 - 11905: 0xF55B,
+ 39832 - 11905: 0xF55C,
+ 39833 - 11905: 0xF55D,
+ 39834 - 11905: 0xF55E,
+ 39835 - 11905: 0xF55F,
+ 39836 - 11905: 0xF560,
+ 39837 - 11905: 0xF561,
+ 39838 - 11905: 0xF562,
+ 39839 - 11905: 0xF563,
+ 39840 - 11905: 0xF564,
+ 39841 - 11905: 0xF565,
+ 39842 - 11905: 0xF566,
+ 39843 - 11905: 0xF567,
+ 39844 - 11905: 0xF568,
+ 39845 - 11905: 0xF569,
+ 39846 - 11905: 0xF56A,
+ 39847 - 11905: 0xF56B,
+ 39848 - 11905: 0xF56C,
+ 39849 - 11905: 0xF56D,
+ 39850 - 11905: 0xF56E,
+ 39851 - 11905: 0xF56F,
+ 39852 - 11905: 0xF570,
+ 39853 - 11905: 0xF571,
+ 39854 - 11905: 0xF572,
+ 39855 - 11905: 0xF573,
+ 39856 - 11905: 0xF574,
+ 39857 - 11905: 0xF575,
+ 39858 - 11905: 0xF576,
+ 39859 - 11905: 0xF577,
+ 39860 - 11905: 0xF578,
+ 39861 - 11905: 0xF579,
+ 39862 - 11905: 0xF57A,
+ 39863 - 11905: 0xF57B,
+ 39864 - 11905: 0xF57C,
+ 39865 - 11905: 0xF57D,
+ 39866 - 11905: 0xF57E,
+ 39867 - 11905: 0xF580,
+ 39868 - 11905: 0xF581,
+ 39869 - 11905: 0xF582,
+ 39870 - 11905: 0xF583,
+ 39871 - 11905: 0xF584,
+ 39872 - 11905: 0xF585,
+ 39873 - 11905: 0xF586,
+ 39874 - 11905: 0xF587,
+ 39875 - 11905: 0xF588,
+ 39876 - 11905: 0xF589,
+ 39877 - 11905: 0xF58A,
+ 39878 - 11905: 0xF58B,
+ 39879 - 11905: 0xF58C,
+ 39880 - 11905: 0xF58D,
+ 39881 - 11905: 0xF58E,
+ 39882 - 11905: 0xF58F,
+ 39883 - 11905: 0xF590,
+ 39884 - 11905: 0xF591,
+ 39885 - 11905: 0xF592,
+ 39886 - 11905: 0xF593,
+ 39887 - 11905: 0xF594,
+ 39888 - 11905: 0xF595,
+ 39889 - 11905: 0xF596,
+ 39890 - 11905: 0xF597,
+ 39891 - 11905: 0xF598,
+ 39892 - 11905: 0xF599,
+ 39893 - 11905: 0xF59A,
+ 39894 - 11905: 0xF59B,
+ 39895 - 11905: 0xF59C,
+ 39896 - 11905: 0xF59D,
+ 39897 - 11905: 0xF59E,
+ 39898 - 11905: 0xF59F,
+ 39899 - 11905: 0xF5A0,
+ 39900 - 11905: 0xF640,
+ 39901 - 11905: 0xF641,
+ 39902 - 11905: 0xF642,
+ 39903 - 11905: 0xF643,
+ 39904 - 11905: 0xF644,
+ 39905 - 11905: 0xF645,
+ 39906 - 11905: 0xF646,
+ 39907 - 11905: 0xF647,
+ 39908 - 11905: 0xF648,
+ 39909 - 11905: 0xF649,
+ 39910 - 11905: 0xF64A,
+ 39911 - 11905: 0xF64B,
+ 39912 - 11905: 0xF64C,
+ 39913 - 11905: 0xF64D,
+ 39914 - 11905: 0xF64E,
+ 39915 - 11905: 0xF64F,
+ 39916 - 11905: 0xF650,
+ 39917 - 11905: 0xF651,
+ 39918 - 11905: 0xF652,
+ 39919 - 11905: 0xF653,
+ 39920 - 11905: 0xF654,
+ 39921 - 11905: 0xF655,
+ 39922 - 11905: 0xF656,
+ 39923 - 11905: 0xF657,
+ 39924 - 11905: 0xF658,
+ 39925 - 11905: 0xF659,
+ 39926 - 11905: 0xF65A,
+ 39927 - 11905: 0xF65B,
+ 39928 - 11905: 0xF65C,
+ 39929 - 11905: 0xF65D,
+ 39930 - 11905: 0xF65E,
+ 39931 - 11905: 0xF65F,
+ 39932 - 11905: 0xF660,
+ 39933 - 11905: 0xF661,
+ 39934 - 11905: 0xF662,
+ 39935 - 11905: 0xF663,
+ 39936 - 11905: 0xF664,
+ 39937 - 11905: 0xF665,
+ 39938 - 11905: 0xF666,
+ 39939 - 11905: 0xF667,
+ 39940 - 11905: 0xF668,
+ 39941 - 11905: 0xF669,
+ 39942 - 11905: 0xF66A,
+ 39943 - 11905: 0xF66B,
+ 39944 - 11905: 0xF66C,
+ 39945 - 11905: 0xF66D,
+ 39946 - 11905: 0xF66E,
+ 39947 - 11905: 0xF66F,
+ 39948 - 11905: 0xF670,
+ 39949 - 11905: 0xF671,
+ 39950 - 11905: 0xF672,
+ 39951 - 11905: 0xF673,
+ 39952 - 11905: 0xF674,
+ 39953 - 11905: 0xF675,
+ 39954 - 11905: 0xF676,
+ 39955 - 11905: 0xF677,
+ 39956 - 11905: 0xF678,
+ 39957 - 11905: 0xF679,
+ 39958 - 11905: 0xF67A,
+ 39959 - 11905: 0xF67B,
+ 39960 - 11905: 0xF67C,
+ 39961 - 11905: 0xF67D,
+ 39962 - 11905: 0xF67E,
+ 39963 - 11905: 0xF680,
+ 39964 - 11905: 0xF681,
+ 39965 - 11905: 0xF682,
+ 39966 - 11905: 0xF683,
+ 39967 - 11905: 0xF684,
+ 39968 - 11905: 0xF685,
+ 39969 - 11905: 0xF686,
+ 39970 - 11905: 0xF687,
+ 39971 - 11905: 0xF688,
+ 39972 - 11905: 0xF689,
+ 39973 - 11905: 0xF68A,
+ 39974 - 11905: 0xF68B,
+ 39975 - 11905: 0xF68C,
+ 39976 - 11905: 0xF68D,
+ 39977 - 11905: 0xF68E,
+ 39978 - 11905: 0xF68F,
+ 39979 - 11905: 0xF690,
+ 39980 - 11905: 0xF691,
+ 39981 - 11905: 0xF692,
+ 39982 - 11905: 0xF693,
+ 39983 - 11905: 0xF694,
+ 39984 - 11905: 0xF695,
+ 39985 - 11905: 0xF696,
+ 39986 - 11905: 0xF697,
+ 39987 - 11905: 0xF698,
+ 39988 - 11905: 0xF699,
+ 39989 - 11905: 0xF69A,
+ 39990 - 11905: 0xF69B,
+ 39991 - 11905: 0xF69C,
+ 39992 - 11905: 0xF69D,
+ 39993 - 11905: 0xF69E,
+ 39994 - 11905: 0xF69F,
+ 39995 - 11905: 0xF6A0,
+ 39996 - 11905: 0xF740,
+ 39997 - 11905: 0xF741,
+ 39998 - 11905: 0xF742,
+ 39999 - 11905: 0xF743,
+ 40000 - 11905: 0xF744,
+ 40001 - 11905: 0xF745,
+ 40002 - 11905: 0xF746,
+ 40003 - 11905: 0xF747,
+ 40004 - 11905: 0xF748,
+ 40005 - 11905: 0xF749,
+ 40006 - 11905: 0xF74A,
+ 40007 - 11905: 0xF74B,
+ 40008 - 11905: 0xF74C,
+ 40009 - 11905: 0xF74D,
+ 40010 - 11905: 0xF74E,
+ 40011 - 11905: 0xF74F,
+ 40012 - 11905: 0xF750,
+ 40013 - 11905: 0xF751,
+ 40014 - 11905: 0xF752,
+ 40015 - 11905: 0xF753,
+ 40016 - 11905: 0xF754,
+ 40017 - 11905: 0xF755,
+ 40018 - 11905: 0xF756,
+ 40019 - 11905: 0xF757,
+ 40020 - 11905: 0xF758,
+ 40021 - 11905: 0xF759,
+ 40022 - 11905: 0xF75A,
+ 40023 - 11905: 0xF75B,
+ 40024 - 11905: 0xF75C,
+ 40025 - 11905: 0xF75D,
+ 40026 - 11905: 0xF75E,
+ 40027 - 11905: 0xF75F,
+ 40028 - 11905: 0xF760,
+ 40029 - 11905: 0xF761,
+ 40030 - 11905: 0xF762,
+ 40031 - 11905: 0xF763,
+ 40032 - 11905: 0xF764,
+ 40033 - 11905: 0xF765,
+ 40034 - 11905: 0xF766,
+ 40035 - 11905: 0xF767,
+ 40036 - 11905: 0xF768,
+ 40037 - 11905: 0xF769,
+ 40038 - 11905: 0xF76A,
+ 40039 - 11905: 0xF76B,
+ 40040 - 11905: 0xF76C,
+ 40041 - 11905: 0xF76D,
+ 40042 - 11905: 0xF76E,
+ 40043 - 11905: 0xF76F,
+ 40044 - 11905: 0xF770,
+ 40045 - 11905: 0xF771,
+ 40046 - 11905: 0xF772,
+ 40047 - 11905: 0xF773,
+ 40048 - 11905: 0xF774,
+ 40049 - 11905: 0xF775,
+ 40050 - 11905: 0xF776,
+ 40051 - 11905: 0xF777,
+ 40052 - 11905: 0xF778,
+ 40053 - 11905: 0xF779,
+ 40054 - 11905: 0xF77A,
+ 40055 - 11905: 0xF77B,
+ 40056 - 11905: 0xF77C,
+ 40057 - 11905: 0xF77D,
+ 40058 - 11905: 0xF77E,
+ 40059 - 11905: 0xF780,
+ 40060 - 11905: 0xD3E3,
+ 40061 - 11905: 0xF781,
+ 40062 - 11905: 0xF782,
+ 40063 - 11905: 0xF6CF,
+ 40064 - 11905: 0xF783,
+ 40065 - 11905: 0xC2B3,
+ 40066 - 11905: 0xF6D0,
+ 40067 - 11905: 0xF784,
+ 40068 - 11905: 0xF785,
+ 40069 - 11905: 0xF6D1,
+ 40070 - 11905: 0xF6D2,
+ 40071 - 11905: 0xF6D3,
+ 40072 - 11905: 0xF6D4,
+ 40073 - 11905: 0xF786,
+ 40074 - 11905: 0xF787,
+ 40075 - 11905: 0xF6D6,
+ 40076 - 11905: 0xF788,
+ 40077 - 11905: 0xB1AB,
+ 40078 - 11905: 0xF6D7,
+ 40079 - 11905: 0xF789,
+ 40080 - 11905: 0xF6D8,
+ 40081 - 11905: 0xF6D9,
+ 40082 - 11905: 0xF6DA,
+ 40083 - 11905: 0xF78A,
+ 40084 - 11905: 0xF6DB,
+ 40085 - 11905: 0xF6DC,
+ 40086 - 11905: 0xF78B,
+ 40087 - 11905: 0xF78C,
+ 40088 - 11905: 0xF78D,
+ 40089 - 11905: 0xF78E,
+ 40090 - 11905: 0xF6DD,
+ 40091 - 11905: 0xF6DE,
+ 40092 - 11905: 0xCFCA,
+ 40093 - 11905: 0xF78F,
+ 40094 - 11905: 0xF6DF,
+ 40095 - 11905: 0xF6E0,
+ 40096 - 11905: 0xF6E1,
+ 40097 - 11905: 0xF6E2,
+ 40098 - 11905: 0xF6E3,
+ 40099 - 11905: 0xF6E4,
+ 40100 - 11905: 0xC0F0,
+ 40101 - 11905: 0xF6E5,
+ 40102 - 11905: 0xF6E6,
+ 40103 - 11905: 0xF6E7,
+ 40104 - 11905: 0xF6E8,
+ 40105 - 11905: 0xF6E9,
+ 40106 - 11905: 0xF790,
+ 40107 - 11905: 0xF6EA,
+ 40108 - 11905: 0xF791,
+ 40109 - 11905: 0xF6EB,
+ 40110 - 11905: 0xF6EC,
+ 40111 - 11905: 0xF792,
+ 40112 - 11905: 0xF6ED,
+ 40113 - 11905: 0xF6EE,
+ 40114 - 11905: 0xF6EF,
+ 40115 - 11905: 0xF6F0,
+ 40116 - 11905: 0xF6F1,
+ 40117 - 11905: 0xF6F2,
+ 40118 - 11905: 0xF6F3,
+ 40119 - 11905: 0xF6F4,
+ 40120 - 11905: 0xBEA8,
+ 40121 - 11905: 0xF793,
+ 40122 - 11905: 0xF6F5,
+ 40123 - 11905: 0xF6F6,
+ 40124 - 11905: 0xF6F7,
+ 40125 - 11905: 0xF6F8,
+ 40126 - 11905: 0xF794,
+ 40127 - 11905: 0xF795,
+ 40128 - 11905: 0xF796,
+ 40129 - 11905: 0xF797,
+ 40130 - 11905: 0xF798,
+ 40131 - 11905: 0xC8FA,
+ 40132 - 11905: 0xF6F9,
+ 40133 - 11905: 0xF6FA,
+ 40134 - 11905: 0xF6FB,
+ 40135 - 11905: 0xF6FC,
+ 40136 - 11905: 0xF799,
+ 40137 - 11905: 0xF79A,
+ 40138 - 11905: 0xF6FD,
+ 40139 - 11905: 0xF6FE,
+ 40140 - 11905: 0xF7A1,
+ 40141 - 11905: 0xF7A2,
+ 40142 - 11905: 0xF7A3,
+ 40143 - 11905: 0xF7A4,
+ 40144 - 11905: 0xF7A5,
+ 40145 - 11905: 0xF79B,
+ 40146 - 11905: 0xF79C,
+ 40147 - 11905: 0xF7A6,
+ 40148 - 11905: 0xF7A7,
+ 40149 - 11905: 0xF7A8,
+ 40150 - 11905: 0xB1EE,
+ 40151 - 11905: 0xF7A9,
+ 40152 - 11905: 0xF7AA,
+ 40153 - 11905: 0xF7AB,
+ 40154 - 11905: 0xF79D,
+ 40155 - 11905: 0xF79E,
+ 40156 - 11905: 0xF7AC,
+ 40157 - 11905: 0xF7AD,
+ 40158 - 11905: 0xC1DB,
+ 40159 - 11905: 0xF7AE,
+ 40160 - 11905: 0xF79F,
+ 40161 - 11905: 0xF7A0,
+ 40162 - 11905: 0xF7AF,
+ 40163 - 11905: 0xF840,
+ 40164 - 11905: 0xF841,
+ 40165 - 11905: 0xF842,
+ 40166 - 11905: 0xF843,
+ 40167 - 11905: 0xF844,
+ 40168 - 11905: 0xF845,
+ 40169 - 11905: 0xF846,
+ 40170 - 11905: 0xF847,
+ 40171 - 11905: 0xF848,
+ 40172 - 11905: 0xF849,
+ 40173 - 11905: 0xF84A,
+ 40174 - 11905: 0xF84B,
+ 40175 - 11905: 0xF84C,
+ 40176 - 11905: 0xF84D,
+ 40177 - 11905: 0xF84E,
+ 40178 - 11905: 0xF84F,
+ 40179 - 11905: 0xF850,
+ 40180 - 11905: 0xF851,
+ 40181 - 11905: 0xF852,
+ 40182 - 11905: 0xF853,
+ 40183 - 11905: 0xF854,
+ 40184 - 11905: 0xF855,
+ 40185 - 11905: 0xF856,
+ 40186 - 11905: 0xF857,
+ 40187 - 11905: 0xF858,
+ 40188 - 11905: 0xF859,
+ 40189 - 11905: 0xF85A,
+ 40190 - 11905: 0xF85B,
+ 40191 - 11905: 0xF85C,
+ 40192 - 11905: 0xF85D,
+ 40193 - 11905: 0xF85E,
+ 40194 - 11905: 0xF85F,
+ 40195 - 11905: 0xF860,
+ 40196 - 11905: 0xF861,
+ 40197 - 11905: 0xF862,
+ 40198 - 11905: 0xF863,
+ 40199 - 11905: 0xF864,
+ 40200 - 11905: 0xF865,
+ 40201 - 11905: 0xF866,
+ 40202 - 11905: 0xF867,
+ 40203 - 11905: 0xF868,
+ 40204 - 11905: 0xF869,
+ 40205 - 11905: 0xF86A,
+ 40206 - 11905: 0xF86B,
+ 40207 - 11905: 0xF86C,
+ 40208 - 11905: 0xF86D,
+ 40209 - 11905: 0xF86E,
+ 40210 - 11905: 0xF86F,
+ 40211 - 11905: 0xF870,
+ 40212 - 11905: 0xF871,
+ 40213 - 11905: 0xF872,
+ 40214 - 11905: 0xF873,
+ 40215 - 11905: 0xF874,
+ 40216 - 11905: 0xF875,
+ 40217 - 11905: 0xF876,
+ 40218 - 11905: 0xF877,
+ 40219 - 11905: 0xF878,
+ 40220 - 11905: 0xF879,
+ 40221 - 11905: 0xF87A,
+ 40222 - 11905: 0xF87B,
+ 40223 - 11905: 0xF87C,
+ 40224 - 11905: 0xF87D,
+ 40225 - 11905: 0xF87E,
+ 40226 - 11905: 0xF880,
+ 40227 - 11905: 0xF881,
+ 40228 - 11905: 0xF882,
+ 40229 - 11905: 0xF883,
+ 40230 - 11905: 0xF884,
+ 40231 - 11905: 0xF885,
+ 40232 - 11905: 0xF886,
+ 40233 - 11905: 0xF887,
+ 40234 - 11905: 0xF888,
+ 40235 - 11905: 0xF889,
+ 40236 - 11905: 0xF88A,
+ 40237 - 11905: 0xF88B,
+ 40238 - 11905: 0xF88C,
+ 40239 - 11905: 0xF88D,
+ 40240 - 11905: 0xF88E,
+ 40241 - 11905: 0xF88F,
+ 40242 - 11905: 0xF890,
+ 40243 - 11905: 0xF891,
+ 40244 - 11905: 0xF892,
+ 40245 - 11905: 0xF893,
+ 40246 - 11905: 0xF894,
+ 40247 - 11905: 0xF895,
+ 40248 - 11905: 0xF896,
+ 40249 - 11905: 0xF897,
+ 40250 - 11905: 0xF898,
+ 40251 - 11905: 0xF899,
+ 40252 - 11905: 0xF89A,
+ 40253 - 11905: 0xF89B,
+ 40254 - 11905: 0xF89C,
+ 40255 - 11905: 0xF89D,
+ 40256 - 11905: 0xF89E,
+ 40257 - 11905: 0xF89F,
+ 40258 - 11905: 0xF8A0,
+ 40259 - 11905: 0xF940,
+ 40260 - 11905: 0xF941,
+ 40261 - 11905: 0xF942,
+ 40262 - 11905: 0xF943,
+ 40263 - 11905: 0xF944,
+ 40264 - 11905: 0xF945,
+ 40265 - 11905: 0xF946,
+ 40266 - 11905: 0xF947,
+ 40267 - 11905: 0xF948,
+ 40268 - 11905: 0xF949,
+ 40269 - 11905: 0xF94A,
+ 40270 - 11905: 0xF94B,
+ 40271 - 11905: 0xF94C,
+ 40272 - 11905: 0xF94D,
+ 40273 - 11905: 0xF94E,
+ 40274 - 11905: 0xF94F,
+ 40275 - 11905: 0xF950,
+ 40276 - 11905: 0xF951,
+ 40277 - 11905: 0xF952,
+ 40278 - 11905: 0xF953,
+ 40279 - 11905: 0xF954,
+ 40280 - 11905: 0xF955,
+ 40281 - 11905: 0xF956,
+ 40282 - 11905: 0xF957,
+ 40283 - 11905: 0xF958,
+ 40284 - 11905: 0xF959,
+ 40285 - 11905: 0xF95A,
+ 40286 - 11905: 0xF95B,
+ 40287 - 11905: 0xF95C,
+ 40288 - 11905: 0xF95D,
+ 40289 - 11905: 0xF95E,
+ 40290 - 11905: 0xF95F,
+ 40291 - 11905: 0xF960,
+ 40292 - 11905: 0xF961,
+ 40293 - 11905: 0xF962,
+ 40294 - 11905: 0xF963,
+ 40295 - 11905: 0xF964,
+ 40296 - 11905: 0xF965,
+ 40297 - 11905: 0xF966,
+ 40298 - 11905: 0xF967,
+ 40299 - 11905: 0xF968,
+ 40300 - 11905: 0xF969,
+ 40301 - 11905: 0xF96A,
+ 40302 - 11905: 0xF96B,
+ 40303 - 11905: 0xF96C,
+ 40304 - 11905: 0xF96D,
+ 40305 - 11905: 0xF96E,
+ 40306 - 11905: 0xF96F,
+ 40307 - 11905: 0xF970,
+ 40308 - 11905: 0xF971,
+ 40309 - 11905: 0xF972,
+ 40310 - 11905: 0xF973,
+ 40311 - 11905: 0xF974,
+ 40312 - 11905: 0xF975,
+ 40313 - 11905: 0xF976,
+ 40314 - 11905: 0xF977,
+ 40315 - 11905: 0xF978,
+ 40316 - 11905: 0xF979,
+ 40317 - 11905: 0xF97A,
+ 40318 - 11905: 0xF97B,
+ 40319 - 11905: 0xF97C,
+ 40320 - 11905: 0xF97D,
+ 40321 - 11905: 0xF97E,
+ 40322 - 11905: 0xF980,
+ 40323 - 11905: 0xF981,
+ 40324 - 11905: 0xF982,
+ 40325 - 11905: 0xF983,
+ 40326 - 11905: 0xF984,
+ 40327 - 11905: 0xF985,
+ 40328 - 11905: 0xF986,
+ 40329 - 11905: 0xF987,
+ 40330 - 11905: 0xF988,
+ 40331 - 11905: 0xF989,
+ 40332 - 11905: 0xF98A,
+ 40333 - 11905: 0xF98B,
+ 40334 - 11905: 0xF98C,
+ 40335 - 11905: 0xF98D,
+ 40336 - 11905: 0xF98E,
+ 40337 - 11905: 0xF98F,
+ 40338 - 11905: 0xF990,
+ 40339 - 11905: 0xF991,
+ 40340 - 11905: 0xF992,
+ 40341 - 11905: 0xF993,
+ 40342 - 11905: 0xF994,
+ 40343 - 11905: 0xF995,
+ 40344 - 11905: 0xF996,
+ 40345 - 11905: 0xF997,
+ 40346 - 11905: 0xF998,
+ 40347 - 11905: 0xF999,
+ 40348 - 11905: 0xF99A,
+ 40349 - 11905: 0xF99B,
+ 40350 - 11905: 0xF99C,
+ 40351 - 11905: 0xF99D,
+ 40352 - 11905: 0xF99E,
+ 40353 - 11905: 0xF99F,
+ 40354 - 11905: 0xF9A0,
+ 40355 - 11905: 0xFA40,
+ 40356 - 11905: 0xFA41,
+ 40357 - 11905: 0xFA42,
+ 40358 - 11905: 0xFA43,
+ 40359 - 11905: 0xFA44,
+ 40360 - 11905: 0xFA45,
+ 40361 - 11905: 0xFA46,
+ 40362 - 11905: 0xFA47,
+ 40363 - 11905: 0xFA48,
+ 40364 - 11905: 0xFA49,
+ 40365 - 11905: 0xFA4A,
+ 40366 - 11905: 0xFA4B,
+ 40367 - 11905: 0xFA4C,
+ 40368 - 11905: 0xFA4D,
+ 40369 - 11905: 0xFA4E,
+ 40370 - 11905: 0xFA4F,
+ 40371 - 11905: 0xFA50,
+ 40372 - 11905: 0xFA51,
+ 40373 - 11905: 0xFA52,
+ 40374 - 11905: 0xFA53,
+ 40375 - 11905: 0xFA54,
+ 40376 - 11905: 0xFA55,
+ 40377 - 11905: 0xFA56,
+ 40378 - 11905: 0xFA57,
+ 40379 - 11905: 0xFA58,
+ 40380 - 11905: 0xFA59,
+ 40381 - 11905: 0xFA5A,
+ 40382 - 11905: 0xFA5B,
+ 40383 - 11905: 0xFA5C,
+ 40384 - 11905: 0xFA5D,
+ 40385 - 11905: 0xFA5E,
+ 40386 - 11905: 0xFA5F,
+ 40387 - 11905: 0xFA60,
+ 40388 - 11905: 0xFA61,
+ 40389 - 11905: 0xFA62,
+ 40390 - 11905: 0xFA63,
+ 40391 - 11905: 0xFA64,
+ 40392 - 11905: 0xFA65,
+ 40393 - 11905: 0xFA66,
+ 40394 - 11905: 0xFA67,
+ 40395 - 11905: 0xFA68,
+ 40396 - 11905: 0xFA69,
+ 40397 - 11905: 0xFA6A,
+ 40398 - 11905: 0xFA6B,
+ 40399 - 11905: 0xFA6C,
+ 40400 - 11905: 0xFA6D,
+ 40401 - 11905: 0xFA6E,
+ 40402 - 11905: 0xFA6F,
+ 40403 - 11905: 0xFA70,
+ 40404 - 11905: 0xFA71,
+ 40405 - 11905: 0xFA72,
+ 40406 - 11905: 0xFA73,
+ 40407 - 11905: 0xFA74,
+ 40408 - 11905: 0xFA75,
+ 40409 - 11905: 0xFA76,
+ 40410 - 11905: 0xFA77,
+ 40411 - 11905: 0xFA78,
+ 40412 - 11905: 0xFA79,
+ 40413 - 11905: 0xFA7A,
+ 40414 - 11905: 0xFA7B,
+ 40415 - 11905: 0xFA7C,
+ 40416 - 11905: 0xFA7D,
+ 40417 - 11905: 0xFA7E,
+ 40418 - 11905: 0xFA80,
+ 40419 - 11905: 0xFA81,
+ 40420 - 11905: 0xFA82,
+ 40421 - 11905: 0xFA83,
+ 40422 - 11905: 0xFA84,
+ 40423 - 11905: 0xFA85,
+ 40424 - 11905: 0xFA86,
+ 40425 - 11905: 0xFA87,
+ 40426 - 11905: 0xFA88,
+ 40427 - 11905: 0xFA89,
+ 40428 - 11905: 0xFA8A,
+ 40429 - 11905: 0xFA8B,
+ 40430 - 11905: 0xFA8C,
+ 40431 - 11905: 0xFA8D,
+ 40432 - 11905: 0xFA8E,
+ 40433 - 11905: 0xFA8F,
+ 40434 - 11905: 0xFA90,
+ 40435 - 11905: 0xFA91,
+ 40436 - 11905: 0xFA92,
+ 40437 - 11905: 0xFA93,
+ 40438 - 11905: 0xFA94,
+ 40439 - 11905: 0xFA95,
+ 40440 - 11905: 0xFA96,
+ 40441 - 11905: 0xFA97,
+ 40442 - 11905: 0xFA98,
+ 40443 - 11905: 0xFA99,
+ 40444 - 11905: 0xFA9A,
+ 40445 - 11905: 0xFA9B,
+ 40446 - 11905: 0xFA9C,
+ 40447 - 11905: 0xFA9D,
+ 40448 - 11905: 0xFA9E,
+ 40449 - 11905: 0xFA9F,
+ 40450 - 11905: 0xFAA0,
+ 40451 - 11905: 0xFB40,
+ 40452 - 11905: 0xFB41,
+ 40453 - 11905: 0xFB42,
+ 40454 - 11905: 0xFB43,
+ 40455 - 11905: 0xFB44,
+ 40456 - 11905: 0xFB45,
+ 40457 - 11905: 0xFB46,
+ 40458 - 11905: 0xFB47,
+ 40459 - 11905: 0xFB48,
+ 40460 - 11905: 0xFB49,
+ 40461 - 11905: 0xFB4A,
+ 40462 - 11905: 0xFB4B,
+ 40463 - 11905: 0xFB4C,
+ 40464 - 11905: 0xFB4D,
+ 40465 - 11905: 0xFB4E,
+ 40466 - 11905: 0xFB4F,
+ 40467 - 11905: 0xFB50,
+ 40468 - 11905: 0xFB51,
+ 40469 - 11905: 0xFB52,
+ 40470 - 11905: 0xFB53,
+ 40471 - 11905: 0xFB54,
+ 40472 - 11905: 0xFB55,
+ 40473 - 11905: 0xFB56,
+ 40474 - 11905: 0xFB57,
+ 40475 - 11905: 0xFB58,
+ 40476 - 11905: 0xFB59,
+ 40477 - 11905: 0xFB5A,
+ 40478 - 11905: 0xFB5B,
+ 40479 - 11905: 0xC4F1,
+ 40480 - 11905: 0xF0AF,
+ 40481 - 11905: 0xBCA6,
+ 40482 - 11905: 0xF0B0,
+ 40483 - 11905: 0xC3F9,
+ 40484 - 11905: 0xFB5C,
+ 40485 - 11905: 0xC5B8,
+ 40486 - 11905: 0xD1BB,
+ 40487 - 11905: 0xFB5D,
+ 40488 - 11905: 0xF0B1,
+ 40489 - 11905: 0xF0B2,
+ 40490 - 11905: 0xF0B3,
+ 40491 - 11905: 0xF0B4,
+ 40492 - 11905: 0xF0B5,
+ 40493 - 11905: 0xD1BC,
+ 40494 - 11905: 0xFB5E,
+ 40495 - 11905: 0xD1EC,
+ 40496 - 11905: 0xFB5F,
+ 40497 - 11905: 0xF0B7,
+ 40498 - 11905: 0xF0B6,
+ 40499 - 11905: 0xD4A7,
+ 40500 - 11905: 0xFB60,
+ 40501 - 11905: 0xCDD2,
+ 40502 - 11905: 0xF0B8,
+ 40503 - 11905: 0xF0BA,
+ 40504 - 11905: 0xF0B9,
+ 40505 - 11905: 0xF0BB,
+ 40506 - 11905: 0xF0BC,
+ 40507 - 11905: 0xFB61,
+ 40508 - 11905: 0xFB62,
+ 40509 - 11905: 0xB8EB,
+ 40510 - 11905: 0xF0BD,
+ 40511 - 11905: 0xBAE8,
+ 40512 - 11905: 0xFB63,
+ 40513 - 11905: 0xF0BE,
+ 40514 - 11905: 0xF0BF,
+ 40515 - 11905: 0xBEE9,
+ 40516 - 11905: 0xF0C0,
+ 40517 - 11905: 0xB6EC,
+ 40518 - 11905: 0xF0C1,
+ 40519 - 11905: 0xF0C2,
+ 40520 - 11905: 0xF0C3,
+ 40521 - 11905: 0xF0C4,
+ 40522 - 11905: 0xC8B5,
+ 40523 - 11905: 0xF0C5,
+ 40524 - 11905: 0xF0C6,
+ 40525 - 11905: 0xFB64,
+ 40526 - 11905: 0xF0C7,
+ 40527 - 11905: 0xC5F4,
+ 40528 - 11905: 0xFB65,
+ 40529 - 11905: 0xF0C8,
+ 40530 - 11905: 0xFB66,
+ 40531 - 11905: 0xFB67,
+ 40532 - 11905: 0xFB68,
+ 40533 - 11905: 0xF0C9,
+ 40534 - 11905: 0xFB69,
+ 40535 - 11905: 0xF0CA,
+ 40536 - 11905: 0xF7BD,
+ 40537 - 11905: 0xFB6A,
+ 40538 - 11905: 0xF0CB,
+ 40539 - 11905: 0xF0CC,
+ 40540 - 11905: 0xF0CD,
+ 40541 - 11905: 0xFB6B,
+ 40542 - 11905: 0xF0CE,
+ 40543 - 11905: 0xFB6C,
+ 40544 - 11905: 0xFB6D,
+ 40545 - 11905: 0xFB6E,
+ 40546 - 11905: 0xFB6F,
+ 40547 - 11905: 0xF0CF,
+ 40548 - 11905: 0xBAD7,
+ 40549 - 11905: 0xFB70,
+ 40550 - 11905: 0xF0D0,
+ 40551 - 11905: 0xF0D1,
+ 40552 - 11905: 0xF0D2,
+ 40553 - 11905: 0xF0D3,
+ 40554 - 11905: 0xF0D4,
+ 40555 - 11905: 0xF0D5,
+ 40556 - 11905: 0xF0D6,
+ 40557 - 11905: 0xF0D8,
+ 40558 - 11905: 0xFB71,
+ 40559 - 11905: 0xFB72,
+ 40560 - 11905: 0xD3A5,
+ 40561 - 11905: 0xF0D7,
+ 40562 - 11905: 0xFB73,
+ 40563 - 11905: 0xF0D9,
+ 40564 - 11905: 0xFB74,
+ 40565 - 11905: 0xFB75,
+ 40566 - 11905: 0xFB76,
+ 40567 - 11905: 0xFB77,
+ 40568 - 11905: 0xFB78,
+ 40569 - 11905: 0xFB79,
+ 40570 - 11905: 0xFB7A,
+ 40571 - 11905: 0xFB7B,
+ 40572 - 11905: 0xFB7C,
+ 40573 - 11905: 0xFB7D,
+ 40574 - 11905: 0xF5BA,
+ 40575 - 11905: 0xC2B9,
+ 40576 - 11905: 0xFB7E,
+ 40577 - 11905: 0xFB80,
+ 40578 - 11905: 0xF7E4,
+ 40579 - 11905: 0xFB81,
+ 40580 - 11905: 0xFB82,
+ 40581 - 11905: 0xFB83,
+ 40582 - 11905: 0xFB84,
+ 40583 - 11905: 0xF7E5,
+ 40584 - 11905: 0xF7E6,
+ 40585 - 11905: 0xFB85,
+ 40586 - 11905: 0xFB86,
+ 40587 - 11905: 0xF7E7,
+ 40588 - 11905: 0xFB87,
+ 40589 - 11905: 0xFB88,
+ 40590 - 11905: 0xFB89,
+ 40591 - 11905: 0xFB8A,
+ 40592 - 11905: 0xFB8B,
+ 40593 - 11905: 0xFB8C,
+ 40594 - 11905: 0xF7E8,
+ 40595 - 11905: 0xC2B4,
+ 40596 - 11905: 0xFB8D,
+ 40597 - 11905: 0xFB8E,
+ 40598 - 11905: 0xFB8F,
+ 40599 - 11905: 0xFB90,
+ 40600 - 11905: 0xFB91,
+ 40601 - 11905: 0xFB92,
+ 40602 - 11905: 0xFB93,
+ 40603 - 11905: 0xFB94,
+ 40604 - 11905: 0xFB95,
+ 40605 - 11905: 0xF7EA,
+ 40606 - 11905: 0xFB96,
+ 40607 - 11905: 0xF7EB,
+ 40608 - 11905: 0xFB97,
+ 40609 - 11905: 0xFB98,
+ 40610 - 11905: 0xFB99,
+ 40611 - 11905: 0xFB9A,
+ 40612 - 11905: 0xFB9B,
+ 40613 - 11905: 0xFB9C,
+ 40614 - 11905: 0xC2F3,
+ 40615 - 11905: 0xFB9D,
+ 40616 - 11905: 0xFB9E,
+ 40617 - 11905: 0xFB9F,
+ 40618 - 11905: 0xFBA0,
+ 40619 - 11905: 0xFC40,
+ 40620 - 11905: 0xFC41,
+ 40621 - 11905: 0xFC42,
+ 40622 - 11905: 0xFC43,
+ 40623 - 11905: 0xFC44,
+ 40624 - 11905: 0xFC45,
+ 40625 - 11905: 0xFC46,
+ 40626 - 11905: 0xFC47,
+ 40627 - 11905: 0xFC48,
+ 40628 - 11905: 0xF4F0,
+ 40629 - 11905: 0xFC49,
+ 40630 - 11905: 0xFC4A,
+ 40631 - 11905: 0xFC4B,
+ 40632 - 11905: 0xF4EF,
+ 40633 - 11905: 0xFC4C,
+ 40634 - 11905: 0xFC4D,
+ 40635 - 11905: 0xC2E9,
+ 40636 - 11905: 0xFC4E,
+ 40637 - 11905: 0xF7E1,
+ 40638 - 11905: 0xF7E2,
+ 40639 - 11905: 0xFC4F,
+ 40640 - 11905: 0xFC50,
+ 40641 - 11905: 0xFC51,
+ 40642 - 11905: 0xFC52,
+ 40643 - 11905: 0xFC53,
+ 40644 - 11905: 0xBBC6,
+ 40645 - 11905: 0xFC54,
+ 40646 - 11905: 0xFC55,
+ 40647 - 11905: 0xFC56,
+ 40648 - 11905: 0xFC57,
+ 40649 - 11905: 0xD9E4,
+ 40650 - 11905: 0xFC58,
+ 40651 - 11905: 0xFC59,
+ 40652 - 11905: 0xFC5A,
+ 40653 - 11905: 0xCAF2,
+ 40654 - 11905: 0xC0E8,
+ 40655 - 11905: 0xF0A4,
+ 40656 - 11905: 0xFC5B,
+ 40657 - 11905: 0xBADA,
+ 40658 - 11905: 0xFC5C,
+ 40659 - 11905: 0xFC5D,
+ 40660 - 11905: 0xC7AD,
+ 40661 - 11905: 0xFC5E,
+ 40662 - 11905: 0xFC5F,
+ 40663 - 11905: 0xFC60,
+ 40664 - 11905: 0xC4AC,
+ 40665 - 11905: 0xFC61,
+ 40666 - 11905: 0xFC62,
+ 40667 - 11905: 0xF7EC,
+ 40668 - 11905: 0xF7ED,
+ 40669 - 11905: 0xF7EE,
+ 40670 - 11905: 0xFC63,
+ 40671 - 11905: 0xF7F0,
+ 40672 - 11905: 0xF7EF,
+ 40673 - 11905: 0xFC64,
+ 40674 - 11905: 0xF7F1,
+ 40675 - 11905: 0xFC65,
+ 40676 - 11905: 0xFC66,
+ 40677 - 11905: 0xF7F4,
+ 40678 - 11905: 0xFC67,
+ 40679 - 11905: 0xF7F3,
+ 40680 - 11905: 0xFC68,
+ 40681 - 11905: 0xF7F2,
+ 40682 - 11905: 0xF7F5,
+ 40683 - 11905: 0xFC69,
+ 40684 - 11905: 0xFC6A,
+ 40685 - 11905: 0xFC6B,
+ 40686 - 11905: 0xFC6C,
+ 40687 - 11905: 0xF7F6,
+ 40688 - 11905: 0xFC6D,
+ 40689 - 11905: 0xFC6E,
+ 40690 - 11905: 0xFC6F,
+ 40691 - 11905: 0xFC70,
+ 40692 - 11905: 0xFC71,
+ 40693 - 11905: 0xFC72,
+ 40694 - 11905: 0xFC73,
+ 40695 - 11905: 0xFC74,
+ 40696 - 11905: 0xFC75,
+ 40697 - 11905: 0xEDE9,
+ 40698 - 11905: 0xFC76,
+ 40699 - 11905: 0xEDEA,
+ 40700 - 11905: 0xEDEB,
+ 40701 - 11905: 0xFC77,
+ 40702 - 11905: 0xF6BC,
+ 40703 - 11905: 0xFC78,
+ 40704 - 11905: 0xFC79,
+ 40705 - 11905: 0xFC7A,
+ 40706 - 11905: 0xFC7B,
+ 40707 - 11905: 0xFC7C,
+ 40708 - 11905: 0xFC7D,
+ 40709 - 11905: 0xFC7E,
+ 40710 - 11905: 0xFC80,
+ 40711 - 11905: 0xFC81,
+ 40712 - 11905: 0xFC82,
+ 40713 - 11905: 0xFC83,
+ 40714 - 11905: 0xFC84,
+ 40715 - 11905: 0xF6BD,
+ 40716 - 11905: 0xFC85,
+ 40717 - 11905: 0xF6BE,
+ 40718 - 11905: 0xB6A6,
+ 40719 - 11905: 0xFC86,
+ 40720 - 11905: 0xD8BE,
+ 40721 - 11905: 0xFC87,
+ 40722 - 11905: 0xFC88,
+ 40723 - 11905: 0xB9C4,
+ 40724 - 11905: 0xFC89,
+ 40725 - 11905: 0xFC8A,
+ 40726 - 11905: 0xFC8B,
+ 40727 - 11905: 0xD8BB,
+ 40728 - 11905: 0xFC8C,
+ 40729 - 11905: 0xDCB1,
+ 40730 - 11905: 0xFC8D,
+ 40731 - 11905: 0xFC8E,
+ 40732 - 11905: 0xFC8F,
+ 40733 - 11905: 0xFC90,
+ 40734 - 11905: 0xFC91,
+ 40735 - 11905: 0xFC92,
+ 40736 - 11905: 0xCAF3,
+ 40737 - 11905: 0xFC93,
+ 40738 - 11905: 0xF7F7,
+ 40739 - 11905: 0xFC94,
+ 40740 - 11905: 0xFC95,
+ 40741 - 11905: 0xFC96,
+ 40742 - 11905: 0xFC97,
+ 40743 - 11905: 0xFC98,
+ 40744 - 11905: 0xFC99,
+ 40745 - 11905: 0xFC9A,
+ 40746 - 11905: 0xFC9B,
+ 40747 - 11905: 0xFC9C,
+ 40748 - 11905: 0xF7F8,
+ 40749 - 11905: 0xFC9D,
+ 40750 - 11905: 0xFC9E,
+ 40751 - 11905: 0xF7F9,
+ 40752 - 11905: 0xFC9F,
+ 40753 - 11905: 0xFCA0,
+ 40754 - 11905: 0xFD40,
+ 40755 - 11905: 0xFD41,
+ 40756 - 11905: 0xFD42,
+ 40757 - 11905: 0xFD43,
+ 40758 - 11905: 0xFD44,
+ 40759 - 11905: 0xF7FB,
+ 40760 - 11905: 0xFD45,
+ 40761 - 11905: 0xF7FA,
+ 40762 - 11905: 0xFD46,
+ 40763 - 11905: 0xB1C7,
+ 40764 - 11905: 0xFD47,
+ 40765 - 11905: 0xF7FC,
+ 40766 - 11905: 0xF7FD,
+ 40767 - 11905: 0xFD48,
+ 40768 - 11905: 0xFD49,
+ 40769 - 11905: 0xFD4A,
+ 40770 - 11905: 0xFD4B,
+ 40771 - 11905: 0xFD4C,
+ 40772 - 11905: 0xF7FE,
+ 40773 - 11905: 0xFD4D,
+ 40774 - 11905: 0xFD4E,
+ 40775 - 11905: 0xFD4F,
+ 40776 - 11905: 0xFD50,
+ 40777 - 11905: 0xFD51,
+ 40778 - 11905: 0xFD52,
+ 40779 - 11905: 0xFD53,
+ 40780 - 11905: 0xFD54,
+ 40781 - 11905: 0xFD55,
+ 40782 - 11905: 0xFD56,
+ 40783 - 11905: 0xFD57,
+ 40784 - 11905: 0xC6EB,
+ 40785 - 11905: 0xECB4,
+ 40786 - 11905: 0xFD58,
+ 40787 - 11905: 0xFD59,
+ 40788 - 11905: 0xFD5A,
+ 40789 - 11905: 0xFD5B,
+ 40790 - 11905: 0xFD5C,
+ 40791 - 11905: 0xFD5D,
+ 40792 - 11905: 0xFD5E,
+ 40793 - 11905: 0xFD5F,
+ 40794 - 11905: 0xFD60,
+ 40795 - 11905: 0xFD61,
+ 40796 - 11905: 0xFD62,
+ 40797 - 11905: 0xFD63,
+ 40798 - 11905: 0xFD64,
+ 40799 - 11905: 0xFD65,
+ 40800 - 11905: 0xFD66,
+ 40801 - 11905: 0xFD67,
+ 40802 - 11905: 0xFD68,
+ 40803 - 11905: 0xFD69,
+ 40804 - 11905: 0xFD6A,
+ 40805 - 11905: 0xFD6B,
+ 40806 - 11905: 0xFD6C,
+ 40807 - 11905: 0xFD6D,
+ 40808 - 11905: 0xFD6E,
+ 40809 - 11905: 0xFD6F,
+ 40810 - 11905: 0xFD70,
+ 40811 - 11905: 0xFD71,
+ 40812 - 11905: 0xFD72,
+ 40813 - 11905: 0xFD73,
+ 40814 - 11905: 0xFD74,
+ 40815 - 11905: 0xFD75,
+ 40816 - 11905: 0xFD76,
+ 40817 - 11905: 0xFD77,
+ 40818 - 11905: 0xFD78,
+ 40819 - 11905: 0xFD79,
+ 40820 - 11905: 0xFD7A,
+ 40821 - 11905: 0xFD7B,
+ 40822 - 11905: 0xFD7C,
+ 40823 - 11905: 0xFD7D,
+ 40824 - 11905: 0xFD7E,
+ 40825 - 11905: 0xFD80,
+ 40826 - 11905: 0xFD81,
+ 40827 - 11905: 0xFD82,
+ 40828 - 11905: 0xFD83,
+ 40829 - 11905: 0xFD84,
+ 40830 - 11905: 0xFD85,
+ 40831 - 11905: 0xB3DD,
+ 40832 - 11905: 0xF6B3,
+ 40833 - 11905: 0xFD86,
+ 40834 - 11905: 0xFD87,
+ 40835 - 11905: 0xF6B4,
+ 40836 - 11905: 0xC1E4,
+ 40837 - 11905: 0xF6B5,
+ 40838 - 11905: 0xF6B6,
+ 40839 - 11905: 0xF6B7,
+ 40840 - 11905: 0xF6B8,
+ 40841 - 11905: 0xF6B9,
+ 40842 - 11905: 0xF6BA,
+ 40843 - 11905: 0xC8A3,
+ 40844 - 11905: 0xF6BB,
+ 40845 - 11905: 0xFD88,
+ 40846 - 11905: 0xFD89,
+ 40847 - 11905: 0xFD8A,
+ 40848 - 11905: 0xFD8B,
+ 40849 - 11905: 0xFD8C,
+ 40850 - 11905: 0xFD8D,
+ 40851 - 11905: 0xFD8E,
+ 40852 - 11905: 0xFD8F,
+ 40853 - 11905: 0xFD90,
+ 40854 - 11905: 0xFD91,
+ 40855 - 11905: 0xFD92,
+ 40856 - 11905: 0xFD93,
+ 40857 - 11905: 0xC1FA,
+ 40858 - 11905: 0xB9A8,
+ 40859 - 11905: 0xEDE8,
+ 40860 - 11905: 0xFD94,
+ 40861 - 11905: 0xFD95,
+ 40862 - 11905: 0xFD96,
+ 40863 - 11905: 0xB9EA,
+ 40864 - 11905: 0xD9DF,
+ 40865 - 11905: 0xFD97,
+ 40866 - 11905: 0xFD98,
+ 40867 - 11905: 0xFD99,
+ 40868 - 11905: 0xFD9A,
+ 40869 - 11905: 0xFD9B,
+}
+
+const encode1Low, encode1High = 8208, 9795
+
+var encode1 = [...]uint16{
+ 8208 - 8208: 0xA95C,
+ 8211 - 8208: 0xA843,
+ 8212 - 8208: 0xA1AA,
+ 8213 - 8208: 0xA844,
+ 8214 - 8208: 0xA1AC,
+ 8216 - 8208: 0xA1AE,
+ 8217 - 8208: 0xA1AF,
+ 8220 - 8208: 0xA1B0,
+ 8221 - 8208: 0xA1B1,
+ 8229 - 8208: 0xA845,
+ 8230 - 8208: 0xA1AD,
+ 8240 - 8208: 0xA1EB,
+ 8242 - 8208: 0xA1E4,
+ 8243 - 8208: 0xA1E5,
+ 8245 - 8208: 0xA846,
+ 8251 - 8208: 0xA1F9,
+ 8364 - 8208: 0xA2E3,
+ 8451 - 8208: 0xA1E6,
+ 8453 - 8208: 0xA847,
+ 8457 - 8208: 0xA848,
+ 8470 - 8208: 0xA1ED,
+ 8481 - 8208: 0xA959,
+ 8544 - 8208: 0xA2F1,
+ 8545 - 8208: 0xA2F2,
+ 8546 - 8208: 0xA2F3,
+ 8547 - 8208: 0xA2F4,
+ 8548 - 8208: 0xA2F5,
+ 8549 - 8208: 0xA2F6,
+ 8550 - 8208: 0xA2F7,
+ 8551 - 8208: 0xA2F8,
+ 8552 - 8208: 0xA2F9,
+ 8553 - 8208: 0xA2FA,
+ 8554 - 8208: 0xA2FB,
+ 8555 - 8208: 0xA2FC,
+ 8560 - 8208: 0xA2A1,
+ 8561 - 8208: 0xA2A2,
+ 8562 - 8208: 0xA2A3,
+ 8563 - 8208: 0xA2A4,
+ 8564 - 8208: 0xA2A5,
+ 8565 - 8208: 0xA2A6,
+ 8566 - 8208: 0xA2A7,
+ 8567 - 8208: 0xA2A8,
+ 8568 - 8208: 0xA2A9,
+ 8569 - 8208: 0xA2AA,
+ 8592 - 8208: 0xA1FB,
+ 8593 - 8208: 0xA1FC,
+ 8594 - 8208: 0xA1FA,
+ 8595 - 8208: 0xA1FD,
+ 8598 - 8208: 0xA849,
+ 8599 - 8208: 0xA84A,
+ 8600 - 8208: 0xA84B,
+ 8601 - 8208: 0xA84C,
+ 8712 - 8208: 0xA1CA,
+ 8719 - 8208: 0xA1C7,
+ 8721 - 8208: 0xA1C6,
+ 8725 - 8208: 0xA84D,
+ 8730 - 8208: 0xA1CC,
+ 8733 - 8208: 0xA1D8,
+ 8734 - 8208: 0xA1DE,
+ 8735 - 8208: 0xA84E,
+ 8736 - 8208: 0xA1CF,
+ 8739 - 8208: 0xA84F,
+ 8741 - 8208: 0xA1CE,
+ 8743 - 8208: 0xA1C4,
+ 8744 - 8208: 0xA1C5,
+ 8745 - 8208: 0xA1C9,
+ 8746 - 8208: 0xA1C8,
+ 8747 - 8208: 0xA1D2,
+ 8750 - 8208: 0xA1D3,
+ 8756 - 8208: 0xA1E0,
+ 8757 - 8208: 0xA1DF,
+ 8758 - 8208: 0xA1C3,
+ 8759 - 8208: 0xA1CB,
+ 8765 - 8208: 0xA1D7,
+ 8776 - 8208: 0xA1D6,
+ 8780 - 8208: 0xA1D5,
+ 8786 - 8208: 0xA850,
+ 8800 - 8208: 0xA1D9,
+ 8801 - 8208: 0xA1D4,
+ 8804 - 8208: 0xA1DC,
+ 8805 - 8208: 0xA1DD,
+ 8806 - 8208: 0xA851,
+ 8807 - 8208: 0xA852,
+ 8814 - 8208: 0xA1DA,
+ 8815 - 8208: 0xA1DB,
+ 8853 - 8208: 0xA892,
+ 8857 - 8208: 0xA1D1,
+ 8869 - 8208: 0xA1CD,
+ 8895 - 8208: 0xA853,
+ 8978 - 8208: 0xA1D0,
+ 9312 - 8208: 0xA2D9,
+ 9313 - 8208: 0xA2DA,
+ 9314 - 8208: 0xA2DB,
+ 9315 - 8208: 0xA2DC,
+ 9316 - 8208: 0xA2DD,
+ 9317 - 8208: 0xA2DE,
+ 9318 - 8208: 0xA2DF,
+ 9319 - 8208: 0xA2E0,
+ 9320 - 8208: 0xA2E1,
+ 9321 - 8208: 0xA2E2,
+ 9332 - 8208: 0xA2C5,
+ 9333 - 8208: 0xA2C6,
+ 9334 - 8208: 0xA2C7,
+ 9335 - 8208: 0xA2C8,
+ 9336 - 8208: 0xA2C9,
+ 9337 - 8208: 0xA2CA,
+ 9338 - 8208: 0xA2CB,
+ 9339 - 8208: 0xA2CC,
+ 9340 - 8208: 0xA2CD,
+ 9341 - 8208: 0xA2CE,
+ 9342 - 8208: 0xA2CF,
+ 9343 - 8208: 0xA2D0,
+ 9344 - 8208: 0xA2D1,
+ 9345 - 8208: 0xA2D2,
+ 9346 - 8208: 0xA2D3,
+ 9347 - 8208: 0xA2D4,
+ 9348 - 8208: 0xA2D5,
+ 9349 - 8208: 0xA2D6,
+ 9350 - 8208: 0xA2D7,
+ 9351 - 8208: 0xA2D8,
+ 9352 - 8208: 0xA2B1,
+ 9353 - 8208: 0xA2B2,
+ 9354 - 8208: 0xA2B3,
+ 9355 - 8208: 0xA2B4,
+ 9356 - 8208: 0xA2B5,
+ 9357 - 8208: 0xA2B6,
+ 9358 - 8208: 0xA2B7,
+ 9359 - 8208: 0xA2B8,
+ 9360 - 8208: 0xA2B9,
+ 9361 - 8208: 0xA2BA,
+ 9362 - 8208: 0xA2BB,
+ 9363 - 8208: 0xA2BC,
+ 9364 - 8208: 0xA2BD,
+ 9365 - 8208: 0xA2BE,
+ 9366 - 8208: 0xA2BF,
+ 9367 - 8208: 0xA2C0,
+ 9368 - 8208: 0xA2C1,
+ 9369 - 8208: 0xA2C2,
+ 9370 - 8208: 0xA2C3,
+ 9371 - 8208: 0xA2C4,
+ 9472 - 8208: 0xA9A4,
+ 9473 - 8208: 0xA9A5,
+ 9474 - 8208: 0xA9A6,
+ 9475 - 8208: 0xA9A7,
+ 9476 - 8208: 0xA9A8,
+ 9477 - 8208: 0xA9A9,
+ 9478 - 8208: 0xA9AA,
+ 9479 - 8208: 0xA9AB,
+ 9480 - 8208: 0xA9AC,
+ 9481 - 8208: 0xA9AD,
+ 9482 - 8208: 0xA9AE,
+ 9483 - 8208: 0xA9AF,
+ 9484 - 8208: 0xA9B0,
+ 9485 - 8208: 0xA9B1,
+ 9486 - 8208: 0xA9B2,
+ 9487 - 8208: 0xA9B3,
+ 9488 - 8208: 0xA9B4,
+ 9489 - 8208: 0xA9B5,
+ 9490 - 8208: 0xA9B6,
+ 9491 - 8208: 0xA9B7,
+ 9492 - 8208: 0xA9B8,
+ 9493 - 8208: 0xA9B9,
+ 9494 - 8208: 0xA9BA,
+ 9495 - 8208: 0xA9BB,
+ 9496 - 8208: 0xA9BC,
+ 9497 - 8208: 0xA9BD,
+ 9498 - 8208: 0xA9BE,
+ 9499 - 8208: 0xA9BF,
+ 9500 - 8208: 0xA9C0,
+ 9501 - 8208: 0xA9C1,
+ 9502 - 8208: 0xA9C2,
+ 9503 - 8208: 0xA9C3,
+ 9504 - 8208: 0xA9C4,
+ 9505 - 8208: 0xA9C5,
+ 9506 - 8208: 0xA9C6,
+ 9507 - 8208: 0xA9C7,
+ 9508 - 8208: 0xA9C8,
+ 9509 - 8208: 0xA9C9,
+ 9510 - 8208: 0xA9CA,
+ 9511 - 8208: 0xA9CB,
+ 9512 - 8208: 0xA9CC,
+ 9513 - 8208: 0xA9CD,
+ 9514 - 8208: 0xA9CE,
+ 9515 - 8208: 0xA9CF,
+ 9516 - 8208: 0xA9D0,
+ 9517 - 8208: 0xA9D1,
+ 9518 - 8208: 0xA9D2,
+ 9519 - 8208: 0xA9D3,
+ 9520 - 8208: 0xA9D4,
+ 9521 - 8208: 0xA9D5,
+ 9522 - 8208: 0xA9D6,
+ 9523 - 8208: 0xA9D7,
+ 9524 - 8208: 0xA9D8,
+ 9525 - 8208: 0xA9D9,
+ 9526 - 8208: 0xA9DA,
+ 9527 - 8208: 0xA9DB,
+ 9528 - 8208: 0xA9DC,
+ 9529 - 8208: 0xA9DD,
+ 9530 - 8208: 0xA9DE,
+ 9531 - 8208: 0xA9DF,
+ 9532 - 8208: 0xA9E0,
+ 9533 - 8208: 0xA9E1,
+ 9534 - 8208: 0xA9E2,
+ 9535 - 8208: 0xA9E3,
+ 9536 - 8208: 0xA9E4,
+ 9537 - 8208: 0xA9E5,
+ 9538 - 8208: 0xA9E6,
+ 9539 - 8208: 0xA9E7,
+ 9540 - 8208: 0xA9E8,
+ 9541 - 8208: 0xA9E9,
+ 9542 - 8208: 0xA9EA,
+ 9543 - 8208: 0xA9EB,
+ 9544 - 8208: 0xA9EC,
+ 9545 - 8208: 0xA9ED,
+ 9546 - 8208: 0xA9EE,
+ 9547 - 8208: 0xA9EF,
+ 9552 - 8208: 0xA854,
+ 9553 - 8208: 0xA855,
+ 9554 - 8208: 0xA856,
+ 9555 - 8208: 0xA857,
+ 9556 - 8208: 0xA858,
+ 9557 - 8208: 0xA859,
+ 9558 - 8208: 0xA85A,
+ 9559 - 8208: 0xA85B,
+ 9560 - 8208: 0xA85C,
+ 9561 - 8208: 0xA85D,
+ 9562 - 8208: 0xA85E,
+ 9563 - 8208: 0xA85F,
+ 9564 - 8208: 0xA860,
+ 9565 - 8208: 0xA861,
+ 9566 - 8208: 0xA862,
+ 9567 - 8208: 0xA863,
+ 9568 - 8208: 0xA864,
+ 9569 - 8208: 0xA865,
+ 9570 - 8208: 0xA866,
+ 9571 - 8208: 0xA867,
+ 9572 - 8208: 0xA868,
+ 9573 - 8208: 0xA869,
+ 9574 - 8208: 0xA86A,
+ 9575 - 8208: 0xA86B,
+ 9576 - 8208: 0xA86C,
+ 9577 - 8208: 0xA86D,
+ 9578 - 8208: 0xA86E,
+ 9579 - 8208: 0xA86F,
+ 9580 - 8208: 0xA870,
+ 9581 - 8208: 0xA871,
+ 9582 - 8208: 0xA872,
+ 9583 - 8208: 0xA873,
+ 9584 - 8208: 0xA874,
+ 9585 - 8208: 0xA875,
+ 9586 - 8208: 0xA876,
+ 9587 - 8208: 0xA877,
+ 9601 - 8208: 0xA878,
+ 9602 - 8208: 0xA879,
+ 9603 - 8208: 0xA87A,
+ 9604 - 8208: 0xA87B,
+ 9605 - 8208: 0xA87C,
+ 9606 - 8208: 0xA87D,
+ 9607 - 8208: 0xA87E,
+ 9608 - 8208: 0xA880,
+ 9609 - 8208: 0xA881,
+ 9610 - 8208: 0xA882,
+ 9611 - 8208: 0xA883,
+ 9612 - 8208: 0xA884,
+ 9613 - 8208: 0xA885,
+ 9614 - 8208: 0xA886,
+ 9615 - 8208: 0xA887,
+ 9619 - 8208: 0xA888,
+ 9620 - 8208: 0xA889,
+ 9621 - 8208: 0xA88A,
+ 9632 - 8208: 0xA1F6,
+ 9633 - 8208: 0xA1F5,
+ 9650 - 8208: 0xA1F8,
+ 9651 - 8208: 0xA1F7,
+ 9660 - 8208: 0xA88B,
+ 9661 - 8208: 0xA88C,
+ 9670 - 8208: 0xA1F4,
+ 9671 - 8208: 0xA1F3,
+ 9675 - 8208: 0xA1F0,
+ 9678 - 8208: 0xA1F2,
+ 9679 - 8208: 0xA1F1,
+ 9698 - 8208: 0xA88D,
+ 9699 - 8208: 0xA88E,
+ 9700 - 8208: 0xA88F,
+ 9701 - 8208: 0xA890,
+ 9733 - 8208: 0xA1EF,
+ 9734 - 8208: 0xA1EE,
+ 9737 - 8208: 0xA891,
+ 9792 - 8208: 0xA1E2,
+ 9794 - 8208: 0xA1E1,
+}
+
+const encode2Low, encode2High = 164, 1106
+
+var encode2 = [...]uint16{
+ 164 - 164: 0xA1E8,
+ 167 - 164: 0xA1EC,
+ 168 - 164: 0xA1A7,
+ 176 - 164: 0xA1E3,
+ 177 - 164: 0xA1C0,
+ 183 - 164: 0xA1A4,
+ 215 - 164: 0xA1C1,
+ 224 - 164: 0xA8A4,
+ 225 - 164: 0xA8A2,
+ 232 - 164: 0xA8A8,
+ 233 - 164: 0xA8A6,
+ 234 - 164: 0xA8BA,
+ 236 - 164: 0xA8AC,
+ 237 - 164: 0xA8AA,
+ 242 - 164: 0xA8B0,
+ 243 - 164: 0xA8AE,
+ 247 - 164: 0xA1C2,
+ 249 - 164: 0xA8B4,
+ 250 - 164: 0xA8B2,
+ 252 - 164: 0xA8B9,
+ 257 - 164: 0xA8A1,
+ 275 - 164: 0xA8A5,
+ 283 - 164: 0xA8A7,
+ 299 - 164: 0xA8A9,
+ 324 - 164: 0xA8BD,
+ 328 - 164: 0xA8BE,
+ 333 - 164: 0xA8AD,
+ 363 - 164: 0xA8B1,
+ 462 - 164: 0xA8A3,
+ 464 - 164: 0xA8AB,
+ 466 - 164: 0xA8AF,
+ 468 - 164: 0xA8B3,
+ 470 - 164: 0xA8B5,
+ 472 - 164: 0xA8B6,
+ 474 - 164: 0xA8B7,
+ 476 - 164: 0xA8B8,
+ 505 - 164: 0xA8BF,
+ 593 - 164: 0xA8BB,
+ 609 - 164: 0xA8C0,
+ 711 - 164: 0xA1A6,
+ 713 - 164: 0xA1A5,
+ 714 - 164: 0xA840,
+ 715 - 164: 0xA841,
+ 729 - 164: 0xA842,
+ 913 - 164: 0xA6A1,
+ 914 - 164: 0xA6A2,
+ 915 - 164: 0xA6A3,
+ 916 - 164: 0xA6A4,
+ 917 - 164: 0xA6A5,
+ 918 - 164: 0xA6A6,
+ 919 - 164: 0xA6A7,
+ 920 - 164: 0xA6A8,
+ 921 - 164: 0xA6A9,
+ 922 - 164: 0xA6AA,
+ 923 - 164: 0xA6AB,
+ 924 - 164: 0xA6AC,
+ 925 - 164: 0xA6AD,
+ 926 - 164: 0xA6AE,
+ 927 - 164: 0xA6AF,
+ 928 - 164: 0xA6B0,
+ 929 - 164: 0xA6B1,
+ 931 - 164: 0xA6B2,
+ 932 - 164: 0xA6B3,
+ 933 - 164: 0xA6B4,
+ 934 - 164: 0xA6B5,
+ 935 - 164: 0xA6B6,
+ 936 - 164: 0xA6B7,
+ 937 - 164: 0xA6B8,
+ 945 - 164: 0xA6C1,
+ 946 - 164: 0xA6C2,
+ 947 - 164: 0xA6C3,
+ 948 - 164: 0xA6C4,
+ 949 - 164: 0xA6C5,
+ 950 - 164: 0xA6C6,
+ 951 - 164: 0xA6C7,
+ 952 - 164: 0xA6C8,
+ 953 - 164: 0xA6C9,
+ 954 - 164: 0xA6CA,
+ 955 - 164: 0xA6CB,
+ 956 - 164: 0xA6CC,
+ 957 - 164: 0xA6CD,
+ 958 - 164: 0xA6CE,
+ 959 - 164: 0xA6CF,
+ 960 - 164: 0xA6D0,
+ 961 - 164: 0xA6D1,
+ 963 - 164: 0xA6D2,
+ 964 - 164: 0xA6D3,
+ 965 - 164: 0xA6D4,
+ 966 - 164: 0xA6D5,
+ 967 - 164: 0xA6D6,
+ 968 - 164: 0xA6D7,
+ 969 - 164: 0xA6D8,
+ 1025 - 164: 0xA7A7,
+ 1040 - 164: 0xA7A1,
+ 1041 - 164: 0xA7A2,
+ 1042 - 164: 0xA7A3,
+ 1043 - 164: 0xA7A4,
+ 1044 - 164: 0xA7A5,
+ 1045 - 164: 0xA7A6,
+ 1046 - 164: 0xA7A8,
+ 1047 - 164: 0xA7A9,
+ 1048 - 164: 0xA7AA,
+ 1049 - 164: 0xA7AB,
+ 1050 - 164: 0xA7AC,
+ 1051 - 164: 0xA7AD,
+ 1052 - 164: 0xA7AE,
+ 1053 - 164: 0xA7AF,
+ 1054 - 164: 0xA7B0,
+ 1055 - 164: 0xA7B1,
+ 1056 - 164: 0xA7B2,
+ 1057 - 164: 0xA7B3,
+ 1058 - 164: 0xA7B4,
+ 1059 - 164: 0xA7B5,
+ 1060 - 164: 0xA7B6,
+ 1061 - 164: 0xA7B7,
+ 1062 - 164: 0xA7B8,
+ 1063 - 164: 0xA7B9,
+ 1064 - 164: 0xA7BA,
+ 1065 - 164: 0xA7BB,
+ 1066 - 164: 0xA7BC,
+ 1067 - 164: 0xA7BD,
+ 1068 - 164: 0xA7BE,
+ 1069 - 164: 0xA7BF,
+ 1070 - 164: 0xA7C0,
+ 1071 - 164: 0xA7C1,
+ 1072 - 164: 0xA7D1,
+ 1073 - 164: 0xA7D2,
+ 1074 - 164: 0xA7D3,
+ 1075 - 164: 0xA7D4,
+ 1076 - 164: 0xA7D5,
+ 1077 - 164: 0xA7D6,
+ 1078 - 164: 0xA7D8,
+ 1079 - 164: 0xA7D9,
+ 1080 - 164: 0xA7DA,
+ 1081 - 164: 0xA7DB,
+ 1082 - 164: 0xA7DC,
+ 1083 - 164: 0xA7DD,
+ 1084 - 164: 0xA7DE,
+ 1085 - 164: 0xA7DF,
+ 1086 - 164: 0xA7E0,
+ 1087 - 164: 0xA7E1,
+ 1088 - 164: 0xA7E2,
+ 1089 - 164: 0xA7E3,
+ 1090 - 164: 0xA7E4,
+ 1091 - 164: 0xA7E5,
+ 1092 - 164: 0xA7E6,
+ 1093 - 164: 0xA7E7,
+ 1094 - 164: 0xA7E8,
+ 1095 - 164: 0xA7E9,
+ 1096 - 164: 0xA7EA,
+ 1097 - 164: 0xA7EB,
+ 1098 - 164: 0xA7EC,
+ 1099 - 164: 0xA7ED,
+ 1100 - 164: 0xA7EE,
+ 1101 - 164: 0xA7EF,
+ 1102 - 164: 0xA7F0,
+ 1103 - 164: 0xA7F1,
+ 1105 - 164: 0xA7D7,
+}
+
+const encode3Low, encode3High = 65072, 65510
+
+var encode3 = [...]uint16{
+ 65072 - 65072: 0xA955,
+ 65073 - 65072: 0xA6F2,
+ 65075 - 65072: 0xA6F4,
+ 65076 - 65072: 0xA6F5,
+ 65077 - 65072: 0xA6E0,
+ 65078 - 65072: 0xA6E1,
+ 65079 - 65072: 0xA6F0,
+ 65080 - 65072: 0xA6F1,
+ 65081 - 65072: 0xA6E2,
+ 65082 - 65072: 0xA6E3,
+ 65083 - 65072: 0xA6EE,
+ 65084 - 65072: 0xA6EF,
+ 65085 - 65072: 0xA6E6,
+ 65086 - 65072: 0xA6E7,
+ 65087 - 65072: 0xA6E4,
+ 65088 - 65072: 0xA6E5,
+ 65089 - 65072: 0xA6E8,
+ 65090 - 65072: 0xA6E9,
+ 65091 - 65072: 0xA6EA,
+ 65092 - 65072: 0xA6EB,
+ 65097 - 65072: 0xA968,
+ 65098 - 65072: 0xA969,
+ 65099 - 65072: 0xA96A,
+ 65100 - 65072: 0xA96B,
+ 65101 - 65072: 0xA96C,
+ 65102 - 65072: 0xA96D,
+ 65103 - 65072: 0xA96E,
+ 65104 - 65072: 0xA96F,
+ 65105 - 65072: 0xA970,
+ 65106 - 65072: 0xA971,
+ 65108 - 65072: 0xA972,
+ 65109 - 65072: 0xA973,
+ 65110 - 65072: 0xA974,
+ 65111 - 65072: 0xA975,
+ 65113 - 65072: 0xA976,
+ 65114 - 65072: 0xA977,
+ 65115 - 65072: 0xA978,
+ 65116 - 65072: 0xA979,
+ 65117 - 65072: 0xA97A,
+ 65118 - 65072: 0xA97B,
+ 65119 - 65072: 0xA97C,
+ 65120 - 65072: 0xA97D,
+ 65121 - 65072: 0xA97E,
+ 65122 - 65072: 0xA980,
+ 65123 - 65072: 0xA981,
+ 65124 - 65072: 0xA982,
+ 65125 - 65072: 0xA983,
+ 65126 - 65072: 0xA984,
+ 65128 - 65072: 0xA985,
+ 65129 - 65072: 0xA986,
+ 65130 - 65072: 0xA987,
+ 65131 - 65072: 0xA988,
+ 65281 - 65072: 0xA3A1,
+ 65282 - 65072: 0xA3A2,
+ 65283 - 65072: 0xA3A3,
+ 65284 - 65072: 0xA1E7,
+ 65285 - 65072: 0xA3A5,
+ 65286 - 65072: 0xA3A6,
+ 65287 - 65072: 0xA3A7,
+ 65288 - 65072: 0xA3A8,
+ 65289 - 65072: 0xA3A9,
+ 65290 - 65072: 0xA3AA,
+ 65291 - 65072: 0xA3AB,
+ 65292 - 65072: 0xA3AC,
+ 65293 - 65072: 0xA3AD,
+ 65294 - 65072: 0xA3AE,
+ 65295 - 65072: 0xA3AF,
+ 65296 - 65072: 0xA3B0,
+ 65297 - 65072: 0xA3B1,
+ 65298 - 65072: 0xA3B2,
+ 65299 - 65072: 0xA3B3,
+ 65300 - 65072: 0xA3B4,
+ 65301 - 65072: 0xA3B5,
+ 65302 - 65072: 0xA3B6,
+ 65303 - 65072: 0xA3B7,
+ 65304 - 65072: 0xA3B8,
+ 65305 - 65072: 0xA3B9,
+ 65306 - 65072: 0xA3BA,
+ 65307 - 65072: 0xA3BB,
+ 65308 - 65072: 0xA3BC,
+ 65309 - 65072: 0xA3BD,
+ 65310 - 65072: 0xA3BE,
+ 65311 - 65072: 0xA3BF,
+ 65312 - 65072: 0xA3C0,
+ 65313 - 65072: 0xA3C1,
+ 65314 - 65072: 0xA3C2,
+ 65315 - 65072: 0xA3C3,
+ 65316 - 65072: 0xA3C4,
+ 65317 - 65072: 0xA3C5,
+ 65318 - 65072: 0xA3C6,
+ 65319 - 65072: 0xA3C7,
+ 65320 - 65072: 0xA3C8,
+ 65321 - 65072: 0xA3C9,
+ 65322 - 65072: 0xA3CA,
+ 65323 - 65072: 0xA3CB,
+ 65324 - 65072: 0xA3CC,
+ 65325 - 65072: 0xA3CD,
+ 65326 - 65072: 0xA3CE,
+ 65327 - 65072: 0xA3CF,
+ 65328 - 65072: 0xA3D0,
+ 65329 - 65072: 0xA3D1,
+ 65330 - 65072: 0xA3D2,
+ 65331 - 65072: 0xA3D3,
+ 65332 - 65072: 0xA3D4,
+ 65333 - 65072: 0xA3D5,
+ 65334 - 65072: 0xA3D6,
+ 65335 - 65072: 0xA3D7,
+ 65336 - 65072: 0xA3D8,
+ 65337 - 65072: 0xA3D9,
+ 65338 - 65072: 0xA3DA,
+ 65339 - 65072: 0xA3DB,
+ 65340 - 65072: 0xA3DC,
+ 65341 - 65072: 0xA3DD,
+ 65342 - 65072: 0xA3DE,
+ 65343 - 65072: 0xA3DF,
+ 65344 - 65072: 0xA3E0,
+ 65345 - 65072: 0xA3E1,
+ 65346 - 65072: 0xA3E2,
+ 65347 - 65072: 0xA3E3,
+ 65348 - 65072: 0xA3E4,
+ 65349 - 65072: 0xA3E5,
+ 65350 - 65072: 0xA3E6,
+ 65351 - 65072: 0xA3E7,
+ 65352 - 65072: 0xA3E8,
+ 65353 - 65072: 0xA3E9,
+ 65354 - 65072: 0xA3EA,
+ 65355 - 65072: 0xA3EB,
+ 65356 - 65072: 0xA3EC,
+ 65357 - 65072: 0xA3ED,
+ 65358 - 65072: 0xA3EE,
+ 65359 - 65072: 0xA3EF,
+ 65360 - 65072: 0xA3F0,
+ 65361 - 65072: 0xA3F1,
+ 65362 - 65072: 0xA3F2,
+ 65363 - 65072: 0xA3F3,
+ 65364 - 65072: 0xA3F4,
+ 65365 - 65072: 0xA3F5,
+ 65366 - 65072: 0xA3F6,
+ 65367 - 65072: 0xA3F7,
+ 65368 - 65072: 0xA3F8,
+ 65369 - 65072: 0xA3F9,
+ 65370 - 65072: 0xA3FA,
+ 65371 - 65072: 0xA3FB,
+ 65372 - 65072: 0xA3FC,
+ 65373 - 65072: 0xA3FD,
+ 65374 - 65072: 0xA1AB,
+ 65504 - 65072: 0xA1E9,
+ 65505 - 65072: 0xA1EA,
+ 65506 - 65072: 0xA956,
+ 65507 - 65072: 0xA3FE,
+ 65508 - 65072: 0xA957,
+ 65509 - 65072: 0xA3A4,
+}
+
+const encode4Low, encode4High = 63788, 64042
+
+var encode4 = [...]uint16{
+ 63788 - 63788: 0xFD9C,
+ 63865 - 63788: 0xFD9D,
+ 63893 - 63788: 0xFD9E,
+ 63975 - 63788: 0xFD9F,
+ 63985 - 63788: 0xFDA0,
+ 64012 - 63788: 0xFE40,
+ 64013 - 63788: 0xFE41,
+ 64014 - 63788: 0xFE42,
+ 64015 - 63788: 0xFE43,
+ 64017 - 63788: 0xFE44,
+ 64019 - 63788: 0xFE45,
+ 64020 - 63788: 0xFE46,
+ 64024 - 63788: 0xFE47,
+ 64031 - 63788: 0xFE48,
+ 64032 - 63788: 0xFE49,
+ 64033 - 63788: 0xFE4A,
+ 64035 - 63788: 0xFE4B,
+ 64036 - 63788: 0xFE4C,
+ 64039 - 63788: 0xFE4D,
+ 64040 - 63788: 0xFE4E,
+ 64041 - 63788: 0xFE4F,
+}
diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
new file mode 100644
index 000000000..275821f5d
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go
@@ -0,0 +1,198 @@
+// 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 traditionalchinese
+
+import (
+ "errors"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/transform"
+)
+
+// All is a list of all defined encodings in this package.
+var All = []encoding.Encoding{Big5}
+
+// Big5 is the Big5 encoding, also known as Code Page 950.
+var Big5 encoding.Encoding = &big5
+
+var big5 = internal.Encoding{
+ &internal.SimpleEncoding{big5Decoder{}, big5Encoder{}},
+ "Big5",
+ identifier.Big5,
+}
+
+var errInvalidBig5 = errors.New("traditionalchinese: invalid Big5 encoding")
+
+type big5Decoder struct{ transform.NopResetter }
+
+func (big5Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size, s := rune(0), 0, ""
+loop:
+ for ; nSrc < len(src); nSrc += size {
+ switch c0 := src[nSrc]; {
+ case c0 < utf8.RuneSelf:
+ r, size = rune(c0), 1
+
+ case 0x81 <= c0 && c0 < 0xff:
+ if nSrc+1 >= len(src) {
+ err = transform.ErrShortSrc
+ break loop
+ }
+ c1 := src[nSrc+1]
+ switch {
+ case 0x40 <= c1 && c1 < 0x7f:
+ c1 -= 0x40
+ case 0xa1 <= c1 && c1 < 0xff:
+ c1 -= 0x62
+ default:
+ err = errInvalidBig5
+ break loop
+ }
+ r, size = '\ufffd', 2
+ if i := int(c0-0x81)*157 + int(c1); i < len(decode) {
+ if 1133 <= i && i < 1167 {
+ // The two-rune special cases for LATIN CAPITAL / SMALL E WITH CIRCUMFLEX
+ // AND MACRON / CARON are from http://encoding.spec.whatwg.org/#big5
+ switch i {
+ case 1133:
+ s = "\u00CA\u0304"
+ goto writeStr
+ case 1135:
+ s = "\u00CA\u030C"
+ goto writeStr
+ case 1164:
+ s = "\u00EA\u0304"
+ goto writeStr
+ case 1166:
+ s = "\u00EA\u030C"
+ goto writeStr
+ }
+ }
+ r = rune(decode[i])
+ if r == 0 {
+ r = '\ufffd'
+ }
+ }
+
+ default:
+ err = errInvalidBig5
+ break loop
+ }
+
+ if nDst+utf8.RuneLen(r) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ continue loop
+
+ writeStr:
+ if nDst+len(s) > len(dst) {
+ err = transform.ErrShortDst
+ break loop
+ }
+ nDst += copy(dst[nDst:], s)
+ continue loop
+ }
+ if atEOF && err == transform.ErrShortSrc {
+ err = errInvalidBig5
+ }
+ return nDst, nSrc, err
+}
+
+type big5Encoder struct{ transform.NopResetter }
+
+func (big5Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ r, size := rune(0), 0
+ for ; nSrc < len(src); nSrc += size {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+ if nDst >= len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = uint8(r)
+ nDst++
+ continue
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ }
+
+ if r >= utf8.RuneSelf {
+ // func init checks that the switch covers all tables.
+ switch {
+ case encode0Low <= r && r < encode0High:
+ if r = rune(encode0[r-encode0Low]); r != 0 {
+ goto write2
+ }
+ case encode1Low <= r && r < encode1High:
+ if r = rune(encode1[r-encode1Low]); r != 0 {
+ goto write2
+ }
+ case encode2Low <= r && r < encode2High:
+ if r = rune(encode2[r-encode2Low]); r != 0 {
+ goto write2
+ }
+ case encode3Low <= r && r < encode3High:
+ if r = rune(encode3[r-encode3Low]); r != 0 {
+ goto write2
+ }
+ case encode4Low <= r && r < encode4High:
+ if r = rune(encode4[r-encode4Low]); r != 0 {
+ goto write2
+ }
+ case encode5Low <= r && r < encode5High:
+ if r = rune(encode5[r-encode5Low]); r != 0 {
+ goto write2
+ }
+ case encode6Low <= r && r < encode6High:
+ if r = rune(encode6[r-encode6Low]); r != 0 {
+ goto write2
+ }
+ case encode7Low <= r && r < encode7High:
+ if r = rune(encode7[r-encode7Low]); r != 0 {
+ goto write2
+ }
+ }
+ err = internal.ErrASCIIReplacement
+ break
+ }
+
+ write2:
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = uint8(r >> 8)
+ dst[nDst+1] = uint8(r)
+ nDst += 2
+ continue
+ }
+ return nDst, nSrc, err
+}
+
+func init() {
+ // Check that the hard-coded encode switch covers all tables.
+ if numEncodeTables != 8 {
+ panic("bad numEncodeTables")
+ }
+}
diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go
new file mode 100644
index 000000000..cf7fdb31a
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/traditionalchinese/maketables.go
@@ -0,0 +1,140 @@
+// 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 ignore
+
+package main
+
+// This program generates tables.go:
+// go run maketables.go | gofmt > tables.go
+
+import (
+ "bufio"
+ "fmt"
+ "log"
+ "net/http"
+ "sort"
+ "strings"
+)
+
+func main() {
+ fmt.Printf("// generated by go run maketables.go; DO NOT EDIT\n\n")
+ fmt.Printf("// Package traditionalchinese provides Traditional Chinese encodings such as Big5.\n")
+ fmt.Printf(`package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"` + "\n\n")
+
+ res, err := http.Get("http://encoding.spec.whatwg.org/index-big5.txt")
+ if err != nil {
+ log.Fatalf("Get: %v", err)
+ }
+ defer res.Body.Close()
+
+ mapping := [65536]uint32{}
+ reverse := [65536 * 4]uint16{}
+
+ scanner := bufio.NewScanner(res.Body)
+ for scanner.Scan() {
+ s := strings.TrimSpace(scanner.Text())
+ if s == "" || s[0] == '#' {
+ continue
+ }
+ x, y := uint16(0), uint32(0)
+ if _, err := fmt.Sscanf(s, "%d 0x%x", &x, &y); err != nil {
+ log.Fatalf("could not parse %q", s)
+ }
+ if x < 0 || 126*157 <= x {
+ log.Fatalf("Big5 code %d is out of range", x)
+ }
+ mapping[x] = y
+
+ // The WHATWG spec http://encoding.spec.whatwg.org/#indexes says that
+ // "The index pointer for code point in index is the first pointer
+ // corresponding to code point in index", which would normally mean
+ // that the code below should be guarded by "if reverse[y] == 0", but
+ // last instead of first seems to match the behavior of
+ // "iconv -f UTF-8 -t BIG5". For example, U+8005 者 occurs twice in
+ // http://encoding.spec.whatwg.org/index-big5.txt, as index 2148
+ // (encoded as "\x8e\xcd") and index 6543 (encoded as "\xaa\xcc")
+ // and "echo 者 | iconv -f UTF-8 -t BIG5 | xxd" gives "\xaa\xcc".
+ c0, c1 := x/157, x%157
+ if c1 < 0x3f {
+ c1 += 0x40
+ } else {
+ c1 += 0x62
+ }
+ reverse[y] = (0x81+c0)<<8 | c1
+ }
+ if err := scanner.Err(); err != nil {
+ log.Fatalf("scanner error: %v", err)
+ }
+
+ fmt.Printf("// decode is the decoding table from Big5 code to Unicode.\n")
+ fmt.Printf("// It is defined at http://encoding.spec.whatwg.org/index-big5.txt\n")
+ fmt.Printf("var decode = [...]uint32{\n")
+ for i, v := range mapping {
+ if v != 0 {
+ fmt.Printf("\t%d: 0x%08X,\n", i, v)
+ }
+ }
+ fmt.Printf("}\n\n")
+
+ // Any run of at least separation continuous zero entries in the reverse map will
+ // be a separate encode table.
+ const separation = 1024
+
+ intervals := []interval(nil)
+ low, high := -1, -1
+ for i, v := range reverse {
+ if v == 0 {
+ continue
+ }
+ if low < 0 {
+ low = i
+ } else if i-high >= separation {
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ low = i
+ }
+ high = i + 1
+ }
+ if high >= 0 {
+ intervals = append(intervals, interval{low, high})
+ }
+ sort.Sort(byDecreasingLength(intervals))
+
+ fmt.Printf("const numEncodeTables = %d\n\n", len(intervals))
+ fmt.Printf("// encodeX are the encoding tables from Unicode to Big5 code,\n")
+ fmt.Printf("// sorted by decreasing length.\n")
+ for i, v := range intervals {
+ fmt.Printf("// encode%d: %5d entries for runes in [%6d, %6d).\n", i, v.len(), v.low, v.high)
+ }
+ fmt.Printf("\n")
+
+ for i, v := range intervals {
+ fmt.Printf("const encode%dLow, encode%dHigh = %d, %d\n\n", i, i, v.low, v.high)
+ fmt.Printf("var encode%d = [...]uint16{\n", i)
+ for j := v.low; j < v.high; j++ {
+ x := reverse[j]
+ if x == 0 {
+ continue
+ }
+ fmt.Printf("\t%d-%d: 0x%04X,\n", j, v.low, x)
+ }
+ fmt.Printf("}\n\n")
+ }
+}
+
+// interval is a half-open interval [low, high).
+type interval struct {
+ low, high int
+}
+
+func (i interval) len() int { return i.high - i.low }
+
+// byDecreasingLength sorts intervals by decreasing length.
+type byDecreasingLength []interval
+
+func (b byDecreasingLength) Len() int { return len(b) }
+func (b byDecreasingLength) Less(i, j int) bool { return b[i].len() > b[j].len() }
+func (b byDecreasingLength) Swap(i, j int) { b[i], b[j] = b[j], b[i] }
diff --git a/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go
new file mode 100644
index 000000000..d909e38e5
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go
@@ -0,0 +1,37142 @@
+// generated by go run maketables.go; DO NOT EDIT
+
+// Package traditionalchinese provides Traditional Chinese encodings such as Big5.
+package traditionalchinese // import "golang.org/x/text/encoding/traditionalchinese"
+
+// decode is the decoding table from Big5 code to Unicode.
+// It is defined at http://encoding.spec.whatwg.org/index-big5.txt
+var decode = [...]uint32{
+ 942: 0x000043F0,
+ 943: 0x00004C32,
+ 944: 0x00004603,
+ 945: 0x000045A6,
+ 946: 0x00004578,
+ 947: 0x00027267,
+ 948: 0x00004D77,
+ 949: 0x000045B3,
+ 950: 0x00027CB1,
+ 951: 0x00004CE2,
+ 952: 0x00027CC5,
+ 953: 0x00003B95,
+ 954: 0x00004736,
+ 955: 0x00004744,
+ 956: 0x00004C47,
+ 957: 0x00004C40,
+ 958: 0x000242BF,
+ 959: 0x00023617,
+ 960: 0x00027352,
+ 961: 0x00026E8B,
+ 962: 0x000270D2,
+ 963: 0x00004C57,
+ 964: 0x0002A351,
+ 965: 0x0000474F,
+ 966: 0x000045DA,
+ 967: 0x00004C85,
+ 968: 0x00027C6C,
+ 969: 0x00004D07,
+ 970: 0x00004AA4,
+ 971: 0x000046A1,
+ 972: 0x00026B23,
+ 973: 0x00007225,
+ 974: 0x00025A54,
+ 975: 0x00021A63,
+ 976: 0x00023E06,
+ 977: 0x00023F61,
+ 978: 0x0000664D,
+ 979: 0x000056FB,
+ 981: 0x00007D95,
+ 982: 0x0000591D,
+ 983: 0x00028BB9,
+ 984: 0x00003DF4,
+ 985: 0x00009734,
+ 986: 0x00027BEF,
+ 987: 0x00005BDB,
+ 988: 0x00021D5E,
+ 989: 0x00005AA4,
+ 990: 0x00003625,
+ 991: 0x00029EB0,
+ 992: 0x00005AD1,
+ 993: 0x00005BB7,
+ 994: 0x00005CFC,
+ 995: 0x0000676E,
+ 996: 0x00008593,
+ 997: 0x00029945,
+ 998: 0x00007461,
+ 999: 0x0000749D,
+ 1000: 0x00003875,
+ 1001: 0x00021D53,
+ 1002: 0x0002369E,
+ 1003: 0x00026021,
+ 1004: 0x00003EEC,
+ 1005: 0x000258DE,
+ 1006: 0x00003AF5,
+ 1007: 0x00007AFC,
+ 1008: 0x00009F97,
+ 1009: 0x00024161,
+ 1010: 0x0002890D,
+ 1011: 0x000231EA,
+ 1012: 0x00020A8A,
+ 1013: 0x0002325E,
+ 1014: 0x0000430A,
+ 1015: 0x00008484,
+ 1016: 0x00009F96,
+ 1017: 0x0000942F,
+ 1018: 0x00004930,
+ 1019: 0x00008613,
+ 1020: 0x00005896,
+ 1021: 0x0000974A,
+ 1022: 0x00009218,
+ 1023: 0x000079D0,
+ 1024: 0x00007A32,
+ 1025: 0x00006660,
+ 1026: 0x00006A29,
+ 1027: 0x0000889D,
+ 1028: 0x0000744C,
+ 1029: 0x00007BC5,
+ 1030: 0x00006782,
+ 1031: 0x00007A2C,
+ 1032: 0x0000524F,
+ 1033: 0x00009046,
+ 1034: 0x000034E6,
+ 1035: 0x000073C4,
+ 1036: 0x00025DB9,
+ 1037: 0x000074C6,
+ 1038: 0x00009FC7,
+ 1039: 0x000057B3,
+ 1040: 0x0000492F,
+ 1041: 0x0000544C,
+ 1042: 0x00004131,
+ 1043: 0x0002368E,
+ 1044: 0x00005818,
+ 1045: 0x00007A72,
+ 1046: 0x00027B65,
+ 1047: 0x00008B8F,
+ 1048: 0x000046AE,
+ 1049: 0x00026E88,
+ 1050: 0x00004181,
+ 1051: 0x00025D99,
+ 1052: 0x00007BAE,
+ 1053: 0x000224BC,
+ 1054: 0x00009FC8,
+ 1055: 0x000224C1,
+ 1056: 0x000224C9,
+ 1057: 0x000224CC,
+ 1058: 0x00009FC9,
+ 1059: 0x00008504,
+ 1060: 0x000235BB,
+ 1061: 0x000040B4,
+ 1062: 0x00009FCA,
+ 1063: 0x000044E1,
+ 1064: 0x0002ADFF,
+ 1065: 0x000062C1,
+ 1066: 0x0000706E,
+ 1067: 0x00009FCB,
+ 1099: 0x000031C0,
+ 1100: 0x000031C1,
+ 1101: 0x000031C2,
+ 1102: 0x000031C3,
+ 1103: 0x000031C4,
+ 1104: 0x0002010C,
+ 1105: 0x000031C5,
+ 1106: 0x000200D1,
+ 1107: 0x000200CD,
+ 1108: 0x000031C6,
+ 1109: 0x000031C7,
+ 1110: 0x000200CB,
+ 1111: 0x00021FE8,
+ 1112: 0x000031C8,
+ 1113: 0x000200CA,
+ 1114: 0x000031C9,
+ 1115: 0x000031CA,
+ 1116: 0x000031CB,
+ 1117: 0x000031CC,
+ 1118: 0x0002010E,
+ 1119: 0x000031CD,
+ 1120: 0x000031CE,
+ 1121: 0x00000100,
+ 1122: 0x000000C1,
+ 1123: 0x000001CD,
+ 1124: 0x000000C0,
+ 1125: 0x00000112,
+ 1126: 0x000000C9,
+ 1127: 0x0000011A,
+ 1128: 0x000000C8,
+ 1129: 0x0000014C,
+ 1130: 0x000000D3,
+ 1131: 0x000001D1,
+ 1132: 0x000000D2,
+ 1134: 0x00001EBE,
+ 1136: 0x00001EC0,
+ 1137: 0x000000CA,
+ 1138: 0x00000101,
+ 1139: 0x000000E1,
+ 1140: 0x000001CE,
+ 1141: 0x000000E0,
+ 1142: 0x00000251,
+ 1143: 0x00000113,
+ 1144: 0x000000E9,
+ 1145: 0x0000011B,
+ 1146: 0x000000E8,
+ 1147: 0x0000012B,
+ 1148: 0x000000ED,
+ 1149: 0x000001D0,
+ 1150: 0x000000EC,
+ 1151: 0x0000014D,
+ 1152: 0x000000F3,
+ 1153: 0x000001D2,
+ 1154: 0x000000F2,
+ 1155: 0x0000016B,
+ 1156: 0x000000FA,
+ 1157: 0x000001D4,
+ 1158: 0x000000F9,
+ 1159: 0x000001D6,
+ 1160: 0x000001D8,
+ 1161: 0x000001DA,
+ 1162: 0x000001DC,
+ 1163: 0x000000FC,
+ 1165: 0x00001EBF,
+ 1167: 0x00001EC1,
+ 1168: 0x000000EA,
+ 1169: 0x00000261,
+ 1170: 0x000023DA,
+ 1171: 0x000023DB,
+ 1256: 0x0002A3A9,
+ 1257: 0x00021145,
+ 1259: 0x0000650A,
+ 1262: 0x00004E3D,
+ 1263: 0x00006EDD,
+ 1264: 0x00009D4E,
+ 1265: 0x000091DF,
+ 1268: 0x00027735,
+ 1269: 0x00006491,
+ 1270: 0x00004F1A,
+ 1271: 0x00004F28,
+ 1272: 0x00004FA8,
+ 1273: 0x00005156,
+ 1274: 0x00005174,
+ 1275: 0x0000519C,
+ 1276: 0x000051E4,
+ 1277: 0x000052A1,
+ 1278: 0x000052A8,
+ 1279: 0x0000533B,
+ 1280: 0x0000534E,
+ 1281: 0x000053D1,
+ 1282: 0x000053D8,
+ 1283: 0x000056E2,
+ 1284: 0x000058F0,
+ 1285: 0x00005904,
+ 1286: 0x00005907,
+ 1287: 0x00005932,
+ 1288: 0x00005934,
+ 1289: 0x00005B66,
+ 1290: 0x00005B9E,
+ 1291: 0x00005B9F,
+ 1292: 0x00005C9A,
+ 1293: 0x00005E86,
+ 1294: 0x0000603B,
+ 1295: 0x00006589,
+ 1296: 0x000067FE,
+ 1297: 0x00006804,
+ 1298: 0x00006865,
+ 1299: 0x00006D4E,
+ 1300: 0x000070BC,
+ 1301: 0x00007535,
+ 1302: 0x00007EA4,
+ 1303: 0x00007EAC,
+ 1304: 0x00007EBA,
+ 1305: 0x00007EC7,
+ 1306: 0x00007ECF,
+ 1307: 0x00007EDF,
+ 1308: 0x00007F06,
+ 1309: 0x00007F37,
+ 1310: 0x0000827A,
+ 1311: 0x000082CF,
+ 1312: 0x0000836F,
+ 1313: 0x000089C6,
+ 1314: 0x00008BBE,
+ 1315: 0x00008BE2,
+ 1316: 0x00008F66,
+ 1317: 0x00008F67,
+ 1318: 0x00008F6E,
+ 1319: 0x00007411,
+ 1320: 0x00007CFC,
+ 1321: 0x00007DCD,
+ 1322: 0x00006946,
+ 1323: 0x00007AC9,
+ 1324: 0x00005227,
+ 1329: 0x0000918C,
+ 1330: 0x000078B8,
+ 1331: 0x0000915E,
+ 1332: 0x000080BC,
+ 1334: 0x00008D0B,
+ 1335: 0x000080F6,
+ 1336: 0x000209E7,
+ 1339: 0x0000809F,
+ 1340: 0x00009EC7,
+ 1341: 0x00004CCD,
+ 1342: 0x00009DC9,
+ 1343: 0x00009E0C,
+ 1344: 0x00004C3E,
+ 1345: 0x00029DF6,
+ 1346: 0x0002700E,
+ 1347: 0x00009E0A,
+ 1348: 0x0002A133,
+ 1349: 0x000035C1,
+ 1351: 0x00006E9A,
+ 1352: 0x0000823E,
+ 1353: 0x00007519,
+ 1355: 0x00004911,
+ 1356: 0x00009A6C,
+ 1357: 0x00009A8F,
+ 1358: 0x00009F99,
+ 1359: 0x00007987,
+ 1360: 0x0002846C,
+ 1361: 0x00021DCA,
+ 1362: 0x000205D0,
+ 1363: 0x00022AE6,
+ 1364: 0x00004E24,
+ 1365: 0x00004E81,
+ 1366: 0x00004E80,
+ 1367: 0x00004E87,
+ 1368: 0x00004EBF,
+ 1369: 0x00004EEB,
+ 1370: 0x00004F37,
+ 1371: 0x0000344C,
+ 1372: 0x00004FBD,
+ 1373: 0x00003E48,
+ 1374: 0x00005003,
+ 1375: 0x00005088,
+ 1376: 0x0000347D,
+ 1377: 0x00003493,
+ 1378: 0x000034A5,
+ 1379: 0x00005186,
+ 1380: 0x00005905,
+ 1381: 0x000051DB,
+ 1382: 0x000051FC,
+ 1383: 0x00005205,
+ 1384: 0x00004E89,
+ 1385: 0x00005279,
+ 1386: 0x00005290,
+ 1387: 0x00005327,
+ 1388: 0x000035C7,
+ 1389: 0x000053A9,
+ 1390: 0x00003551,
+ 1391: 0x000053B0,
+ 1392: 0x00003553,
+ 1393: 0x000053C2,
+ 1394: 0x00005423,
+ 1395: 0x0000356D,
+ 1396: 0x00003572,
+ 1397: 0x00003681,
+ 1398: 0x00005493,
+ 1399: 0x000054A3,
+ 1400: 0x000054B4,
+ 1401: 0x000054B9,
+ 1402: 0x000054D0,
+ 1403: 0x000054EF,
+ 1404: 0x00005518,
+ 1405: 0x00005523,
+ 1406: 0x00005528,
+ 1407: 0x00003598,
+ 1408: 0x0000553F,
+ 1409: 0x000035A5,
+ 1410: 0x000035BF,
+ 1411: 0x000055D7,
+ 1412: 0x000035C5,
+ 1413: 0x00027D84,
+ 1414: 0x00005525,
+ 1416: 0x00020C42,
+ 1417: 0x00020D15,
+ 1418: 0x0002512B,
+ 1419: 0x00005590,
+ 1420: 0x00022CC6,
+ 1421: 0x000039EC,
+ 1422: 0x00020341,
+ 1423: 0x00008E46,
+ 1424: 0x00024DB8,
+ 1425: 0x000294E5,
+ 1426: 0x00004053,
+ 1427: 0x000280BE,
+ 1428: 0x0000777A,
+ 1429: 0x00022C38,
+ 1430: 0x00003A34,
+ 1431: 0x000047D5,
+ 1432: 0x0002815D,
+ 1433: 0x000269F2,
+ 1434: 0x00024DEA,
+ 1435: 0x000064DD,
+ 1436: 0x00020D7C,
+ 1437: 0x00020FB4,
+ 1438: 0x00020CD5,
+ 1439: 0x000210F4,
+ 1440: 0x0000648D,
+ 1441: 0x00008E7E,
+ 1442: 0x00020E96,
+ 1443: 0x00020C0B,
+ 1444: 0x00020F64,
+ 1445: 0x00022CA9,
+ 1446: 0x00028256,
+ 1447: 0x000244D3,
+ 1449: 0x00020D46,
+ 1450: 0x00029A4D,
+ 1451: 0x000280E9,
+ 1452: 0x000047F4,
+ 1453: 0x00024EA7,
+ 1454: 0x00022CC2,
+ 1455: 0x00009AB2,
+ 1456: 0x00003A67,
+ 1457: 0x000295F4,
+ 1458: 0x00003FED,
+ 1459: 0x00003506,
+ 1460: 0x000252C7,
+ 1461: 0x000297D4,
+ 1462: 0x000278C8,
+ 1463: 0x00022D44,
+ 1464: 0x00009D6E,
+ 1465: 0x00009815,
+ 1467: 0x000043D9,
+ 1468: 0x000260A5,
+ 1469: 0x000064B4,
+ 1470: 0x000054E3,
+ 1471: 0x00022D4C,
+ 1472: 0x00022BCA,
+ 1473: 0x00021077,
+ 1474: 0x000039FB,
+ 1475: 0x0002106F,
+ 1476: 0x000266DA,
+ 1477: 0x00026716,
+ 1478: 0x000279A0,
+ 1479: 0x000064EA,
+ 1480: 0x00025052,
+ 1481: 0x00020C43,
+ 1482: 0x00008E68,
+ 1483: 0x000221A1,
+ 1484: 0x00028B4C,
+ 1485: 0x00020731,
+ 1487: 0x0000480B,
+ 1488: 0x000201A9,
+ 1489: 0x00003FFA,
+ 1490: 0x00005873,
+ 1491: 0x00022D8D,
+ 1493: 0x000245C8,
+ 1494: 0x000204FC,
+ 1495: 0x00026097,
+ 1496: 0x00020F4C,
+ 1497: 0x00020D96,
+ 1498: 0x00005579,
+ 1499: 0x000040BB,
+ 1500: 0x000043BA,
+ 1502: 0x00004AB4,
+ 1503: 0x00022A66,
+ 1504: 0x0002109D,
+ 1505: 0x000081AA,
+ 1506: 0x000098F5,
+ 1507: 0x00020D9C,
+ 1508: 0x00006379,
+ 1509: 0x000039FE,
+ 1510: 0x00022775,
+ 1511: 0x00008DC0,
+ 1512: 0x000056A1,
+ 1513: 0x0000647C,
+ 1514: 0x00003E43,
+ 1516: 0x0002A601,
+ 1517: 0x00020E09,
+ 1518: 0x00022ACF,
+ 1519: 0x00022CC9,
+ 1521: 0x000210C8,
+ 1522: 0x000239C2,
+ 1523: 0x00003992,
+ 1524: 0x00003A06,
+ 1525: 0x0002829B,
+ 1526: 0x00003578,
+ 1527: 0x00025E49,
+ 1528: 0x000220C7,
+ 1529: 0x00005652,
+ 1530: 0x00020F31,
+ 1531: 0x00022CB2,
+ 1532: 0x00029720,
+ 1533: 0x000034BC,
+ 1534: 0x00006C3D,
+ 1535: 0x00024E3B,
+ 1538: 0x00027574,
+ 1539: 0x00022E8B,
+ 1540: 0x00022208,
+ 1541: 0x0002A65B,
+ 1542: 0x00028CCD,
+ 1543: 0x00020E7A,
+ 1544: 0x00020C34,
+ 1545: 0x0002681C,
+ 1546: 0x00007F93,
+ 1547: 0x000210CF,
+ 1548: 0x00022803,
+ 1549: 0x00022939,
+ 1550: 0x000035FB,
+ 1551: 0x000251E3,
+ 1552: 0x00020E8C,
+ 1553: 0x00020F8D,
+ 1554: 0x00020EAA,
+ 1555: 0x00003F93,
+ 1556: 0x00020F30,
+ 1557: 0x00020D47,
+ 1558: 0x0002114F,
+ 1559: 0x00020E4C,
+ 1561: 0x00020EAB,
+ 1562: 0x00020BA9,
+ 1563: 0x00020D48,
+ 1564: 0x000210C0,
+ 1565: 0x0002113D,
+ 1566: 0x00003FF9,
+ 1567: 0x00022696,
+ 1568: 0x00006432,
+ 1569: 0x00020FAD,
+ 1570: 0x000233F4,
+ 1571: 0x00027639,
+ 1572: 0x00022BCE,
+ 1573: 0x00020D7E,
+ 1574: 0x00020D7F,
+ 1575: 0x00022C51,
+ 1576: 0x00022C55,
+ 1577: 0x00003A18,
+ 1578: 0x00020E98,
+ 1579: 0x000210C7,
+ 1580: 0x00020F2E,
+ 1581: 0x0002A632,
+ 1582: 0x00026B50,
+ 1583: 0x00028CD2,
+ 1584: 0x00028D99,
+ 1585: 0x00028CCA,
+ 1586: 0x000095AA,
+ 1587: 0x000054CC,
+ 1588: 0x000082C4,
+ 1589: 0x000055B9,
+ 1591: 0x00029EC3,
+ 1592: 0x00009C26,
+ 1593: 0x00009AB6,
+ 1594: 0x0002775E,
+ 1595: 0x00022DEE,
+ 1596: 0x00007140,
+ 1597: 0x0000816D,
+ 1598: 0x000080EC,
+ 1599: 0x00005C1C,
+ 1600: 0x00026572,
+ 1601: 0x00008134,
+ 1602: 0x00003797,
+ 1603: 0x0000535F,
+ 1604: 0x000280BD,
+ 1605: 0x000091B6,
+ 1606: 0x00020EFA,
+ 1607: 0x00020E0F,
+ 1608: 0x00020E77,
+ 1609: 0x00020EFB,
+ 1610: 0x000035DD,
+ 1611: 0x00024DEB,
+ 1612: 0x00003609,
+ 1613: 0x00020CD6,
+ 1614: 0x000056AF,
+ 1615: 0x000227B5,
+ 1616: 0x000210C9,
+ 1617: 0x00020E10,
+ 1618: 0x00020E78,
+ 1619: 0x00021078,
+ 1620: 0x00021148,
+ 1621: 0x00028207,
+ 1622: 0x00021455,
+ 1623: 0x00020E79,
+ 1624: 0x00024E50,
+ 1625: 0x00022DA4,
+ 1626: 0x00005A54,
+ 1627: 0x0002101D,
+ 1628: 0x0002101E,
+ 1629: 0x000210F5,
+ 1630: 0x000210F6,
+ 1631: 0x0000579C,
+ 1632: 0x00020E11,
+ 1633: 0x00027694,
+ 1634: 0x000282CD,
+ 1635: 0x00020FB5,
+ 1636: 0x00020E7B,
+ 1637: 0x0002517E,
+ 1638: 0x00003703,
+ 1639: 0x00020FB6,
+ 1640: 0x00021180,
+ 1641: 0x000252D8,
+ 1642: 0x0002A2BD,
+ 1643: 0x000249DA,
+ 1644: 0x0002183A,
+ 1645: 0x00024177,
+ 1646: 0x0002827C,
+ 1647: 0x00005899,
+ 1648: 0x00005268,
+ 1649: 0x0000361A,
+ 1650: 0x0002573D,
+ 1651: 0x00007BB2,
+ 1652: 0x00005B68,
+ 1653: 0x00004800,
+ 1654: 0x00004B2C,
+ 1655: 0x00009F27,
+ 1656: 0x000049E7,
+ 1657: 0x00009C1F,
+ 1658: 0x00009B8D,
+ 1659: 0x00025B74,
+ 1660: 0x0002313D,
+ 1661: 0x000055FB,
+ 1662: 0x000035F2,
+ 1663: 0x00005689,
+ 1664: 0x00004E28,
+ 1665: 0x00005902,
+ 1666: 0x00021BC1,
+ 1667: 0x0002F878,
+ 1668: 0x00009751,
+ 1669: 0x00020086,
+ 1670: 0x00004E5B,
+ 1671: 0x00004EBB,
+ 1672: 0x0000353E,
+ 1673: 0x00005C23,
+ 1674: 0x00005F51,
+ 1675: 0x00005FC4,
+ 1676: 0x000038FA,
+ 1677: 0x0000624C,
+ 1678: 0x00006535,
+ 1679: 0x00006B7A,
+ 1680: 0x00006C35,
+ 1681: 0x00006C3A,
+ 1682: 0x0000706C,
+ 1683: 0x0000722B,
+ 1684: 0x00004E2C,
+ 1685: 0x000072AD,
+ 1686: 0x000248E9,
+ 1687: 0x00007F52,
+ 1688: 0x0000793B,
+ 1689: 0x00007CF9,
+ 1690: 0x00007F53,
+ 1691: 0x0002626A,
+ 1692: 0x000034C1,
+ 1694: 0x0002634B,
+ 1695: 0x00008002,
+ 1696: 0x00008080,
+ 1697: 0x00026612,
+ 1698: 0x00026951,
+ 1699: 0x0000535D,
+ 1700: 0x00008864,
+ 1701: 0x000089C1,
+ 1702: 0x000278B2,
+ 1703: 0x00008BA0,
+ 1704: 0x00008D1D,
+ 1705: 0x00009485,
+ 1706: 0x00009578,
+ 1707: 0x0000957F,
+ 1708: 0x000095E8,
+ 1709: 0x00028E0F,
+ 1710: 0x000097E6,
+ 1711: 0x00009875,
+ 1712: 0x000098CE,
+ 1713: 0x000098DE,
+ 1714: 0x00009963,
+ 1715: 0x00029810,
+ 1716: 0x00009C7C,
+ 1717: 0x00009E1F,
+ 1718: 0x00009EC4,
+ 1719: 0x00006B6F,
+ 1720: 0x0000F907,
+ 1721: 0x00004E37,
+ 1722: 0x00020087,
+ 1723: 0x0000961D,
+ 1724: 0x00006237,
+ 1725: 0x000094A2,
+ 1727: 0x0000503B,
+ 1728: 0x00006DFE,
+ 1729: 0x00029C73,
+ 1730: 0x00009FA6,
+ 1731: 0x00003DC9,
+ 1732: 0x0000888F,
+ 1733: 0x0002414E,
+ 1734: 0x00007077,
+ 1735: 0x00005CF5,
+ 1736: 0x00004B20,
+ 1737: 0x000251CD,
+ 1738: 0x00003559,
+ 1739: 0x00025D30,
+ 1740: 0x00006122,
+ 1741: 0x00028A32,
+ 1742: 0x00008FA7,
+ 1743: 0x000091F6,
+ 1744: 0x00007191,
+ 1745: 0x00006719,
+ 1746: 0x000073BA,
+ 1747: 0x00023281,
+ 1748: 0x0002A107,
+ 1749: 0x00003C8B,
+ 1750: 0x00021980,
+ 1751: 0x00004B10,
+ 1752: 0x000078E4,
+ 1753: 0x00007402,
+ 1754: 0x000051AE,
+ 1755: 0x0002870F,
+ 1756: 0x00004009,
+ 1757: 0x00006A63,
+ 1758: 0x0002A2BA,
+ 1759: 0x00004223,
+ 1760: 0x0000860F,
+ 1761: 0x00020A6F,
+ 1762: 0x00007A2A,
+ 1763: 0x00029947,
+ 1764: 0x00028AEA,
+ 1765: 0x00009755,
+ 1766: 0x0000704D,
+ 1767: 0x00005324,
+ 1768: 0x0002207E,
+ 1769: 0x000093F4,
+ 1770: 0x000076D9,
+ 1771: 0x000289E3,
+ 1772: 0x00009FA7,
+ 1773: 0x000077DD,
+ 1774: 0x00004EA3,
+ 1775: 0x00004FF0,
+ 1776: 0x000050BC,
+ 1777: 0x00004E2F,
+ 1778: 0x00004F17,
+ 1779: 0x00009FA8,
+ 1780: 0x00005434,
+ 1781: 0x00007D8B,
+ 1782: 0x00005892,
+ 1783: 0x000058D0,
+ 1784: 0x00021DB6,
+ 1785: 0x00005E92,
+ 1786: 0x00005E99,
+ 1787: 0x00005FC2,
+ 1788: 0x00022712,
+ 1789: 0x0000658B,
+ 1790: 0x000233F9,
+ 1791: 0x00006919,
+ 1792: 0x00006A43,
+ 1793: 0x00023C63,
+ 1794: 0x00006CFF,
+ 1796: 0x00007200,
+ 1797: 0x00024505,
+ 1798: 0x0000738C,
+ 1799: 0x00003EDB,
+ 1800: 0x00024A13,
+ 1801: 0x00005B15,
+ 1802: 0x000074B9,
+ 1803: 0x00008B83,
+ 1804: 0x00025CA4,
+ 1805: 0x00025695,
+ 1806: 0x00007A93,
+ 1807: 0x00007BEC,
+ 1808: 0x00007CC3,
+ 1809: 0x00007E6C,
+ 1810: 0x000082F8,
+ 1811: 0x00008597,
+ 1812: 0x00009FA9,
+ 1813: 0x00008890,
+ 1814: 0x00009FAA,
+ 1815: 0x00008EB9,
+ 1816: 0x00009FAB,
+ 1817: 0x00008FCF,
+ 1818: 0x0000855F,
+ 1819: 0x000099E0,
+ 1820: 0x00009221,
+ 1821: 0x00009FAC,
+ 1822: 0x00028DB9,
+ 1823: 0x0002143F,
+ 1824: 0x00004071,
+ 1825: 0x000042A2,
+ 1826: 0x00005A1A,
+ 1830: 0x00009868,
+ 1831: 0x0000676B,
+ 1832: 0x00004276,
+ 1833: 0x0000573D,
+ 1835: 0x000085D6,
+ 1836: 0x0002497B,
+ 1837: 0x000082BF,
+ 1838: 0x0002710D,
+ 1839: 0x00004C81,
+ 1840: 0x00026D74,
+ 1841: 0x00005D7B,
+ 1842: 0x00026B15,
+ 1843: 0x00026FBE,
+ 1844: 0x00009FAD,
+ 1845: 0x00009FAE,
+ 1846: 0x00005B96,
+ 1847: 0x00009FAF,
+ 1848: 0x000066E7,
+ 1849: 0x00007E5B,
+ 1850: 0x00006E57,
+ 1851: 0x000079CA,
+ 1852: 0x00003D88,
+ 1853: 0x000044C3,
+ 1854: 0x00023256,
+ 1855: 0x00022796,
+ 1856: 0x0000439A,
+ 1857: 0x00004536,
+ 1859: 0x00005CD5,
+ 1860: 0x00023B1A,
+ 1861: 0x00008AF9,
+ 1862: 0x00005C78,
+ 1863: 0x00003D12,
+ 1864: 0x00023551,
+ 1865: 0x00005D78,
+ 1866: 0x00009FB2,
+ 1867: 0x00007157,
+ 1868: 0x00004558,
+ 1869: 0x000240EC,
+ 1870: 0x00021E23,
+ 1871: 0x00004C77,
+ 1872: 0x00003978,
+ 1873: 0x0000344A,
+ 1874: 0x000201A4,
+ 1875: 0x00026C41,
+ 1876: 0x00008ACC,
+ 1877: 0x00004FB4,
+ 1878: 0x00020239,
+ 1879: 0x000059BF,
+ 1880: 0x0000816C,
+ 1881: 0x00009856,
+ 1882: 0x000298FA,
+ 1883: 0x00005F3B,
+ 1884: 0x00020B9F,
+ 1886: 0x000221C1,
+ 1887: 0x0002896D,
+ 1888: 0x00004102,
+ 1889: 0x000046BB,
+ 1890: 0x00029079,
+ 1891: 0x00003F07,
+ 1892: 0x00009FB3,
+ 1893: 0x0002A1B5,
+ 1894: 0x000040F8,
+ 1895: 0x000037D6,
+ 1896: 0x000046F7,
+ 1897: 0x00026C46,
+ 1898: 0x0000417C,
+ 1899: 0x000286B2,
+ 1900: 0x000273FF,
+ 1901: 0x0000456D,
+ 1902: 0x000038D4,
+ 1903: 0x0002549A,
+ 1904: 0x00004561,
+ 1905: 0x0000451B,
+ 1906: 0x00004D89,
+ 1907: 0x00004C7B,
+ 1908: 0x00004D76,
+ 1909: 0x000045EA,
+ 1910: 0x00003FC8,
+ 1911: 0x00024B0F,
+ 1912: 0x00003661,
+ 1913: 0x000044DE,
+ 1914: 0x000044BD,
+ 1915: 0x000041ED,
+ 1916: 0x00005D3E,
+ 1917: 0x00005D48,
+ 1918: 0x00005D56,
+ 1919: 0x00003DFC,
+ 1920: 0x0000380F,
+ 1921: 0x00005DA4,
+ 1922: 0x00005DB9,
+ 1923: 0x00003820,
+ 1924: 0x00003838,
+ 1925: 0x00005E42,
+ 1926: 0x00005EBD,
+ 1927: 0x00005F25,
+ 1928: 0x00005F83,
+ 1929: 0x00003908,
+ 1930: 0x00003914,
+ 1931: 0x0000393F,
+ 1932: 0x0000394D,
+ 1933: 0x000060D7,
+ 1934: 0x0000613D,
+ 1935: 0x00005CE5,
+ 1936: 0x00003989,
+ 1937: 0x000061B7,
+ 1938: 0x000061B9,
+ 1939: 0x000061CF,
+ 1940: 0x000039B8,
+ 1941: 0x0000622C,
+ 1942: 0x00006290,
+ 1943: 0x000062E5,
+ 1944: 0x00006318,
+ 1945: 0x000039F8,
+ 1946: 0x000056B1,
+ 1947: 0x00003A03,
+ 1948: 0x000063E2,
+ 1949: 0x000063FB,
+ 1950: 0x00006407,
+ 1951: 0x0000645A,
+ 1952: 0x00003A4B,
+ 1953: 0x000064C0,
+ 1954: 0x00005D15,
+ 1955: 0x00005621,
+ 1956: 0x00009F9F,
+ 1957: 0x00003A97,
+ 1958: 0x00006586,
+ 1959: 0x00003ABD,
+ 1960: 0x000065FF,
+ 1961: 0x00006653,
+ 1962: 0x00003AF2,
+ 1963: 0x00006692,
+ 1964: 0x00003B22,
+ 1965: 0x00006716,
+ 1966: 0x00003B42,
+ 1967: 0x000067A4,
+ 1968: 0x00006800,
+ 1969: 0x00003B58,
+ 1970: 0x0000684A,
+ 1971: 0x00006884,
+ 1972: 0x00003B72,
+ 1973: 0x00003B71,
+ 1974: 0x00003B7B,
+ 1975: 0x00006909,
+ 1976: 0x00006943,
+ 1977: 0x0000725C,
+ 1978: 0x00006964,
+ 1979: 0x0000699F,
+ 1980: 0x00006985,
+ 1981: 0x00003BBC,
+ 1982: 0x000069D6,
+ 1983: 0x00003BDD,
+ 1984: 0x00006A65,
+ 1985: 0x00006A74,
+ 1986: 0x00006A71,
+ 1987: 0x00006A82,
+ 1988: 0x00003BEC,
+ 1989: 0x00006A99,
+ 1990: 0x00003BF2,
+ 1991: 0x00006AAB,
+ 1992: 0x00006AB5,
+ 1993: 0x00006AD4,
+ 1994: 0x00006AF6,
+ 1995: 0x00006B81,
+ 1996: 0x00006BC1,
+ 1997: 0x00006BEA,
+ 1998: 0x00006C75,
+ 1999: 0x00006CAA,
+ 2000: 0x00003CCB,
+ 2001: 0x00006D02,
+ 2002: 0x00006D06,
+ 2003: 0x00006D26,
+ 2004: 0x00006D81,
+ 2005: 0x00003CEF,
+ 2006: 0x00006DA4,
+ 2007: 0x00006DB1,
+ 2008: 0x00006E15,
+ 2009: 0x00006E18,
+ 2010: 0x00006E29,
+ 2011: 0x00006E86,
+ 2012: 0x000289C0,
+ 2013: 0x00006EBB,
+ 2014: 0x00006EE2,
+ 2015: 0x00006EDA,
+ 2016: 0x00009F7F,
+ 2017: 0x00006EE8,
+ 2018: 0x00006EE9,
+ 2019: 0x00006F24,
+ 2020: 0x00006F34,
+ 2021: 0x00003D46,
+ 2022: 0x00023F41,
+ 2023: 0x00006F81,
+ 2024: 0x00006FBE,
+ 2025: 0x00003D6A,
+ 2026: 0x00003D75,
+ 2027: 0x000071B7,
+ 2028: 0x00005C99,
+ 2029: 0x00003D8A,
+ 2030: 0x0000702C,
+ 2031: 0x00003D91,
+ 2032: 0x00007050,
+ 2033: 0x00007054,
+ 2034: 0x0000706F,
+ 2035: 0x0000707F,
+ 2036: 0x00007089,
+ 2037: 0x00020325,
+ 2038: 0x000043C1,
+ 2039: 0x000035F1,
+ 2040: 0x00020ED8,
+ 2041: 0x00023ED7,
+ 2042: 0x000057BE,
+ 2043: 0x00026ED3,
+ 2044: 0x0000713E,
+ 2045: 0x000257E0,
+ 2046: 0x0000364E,
+ 2047: 0x000069A2,
+ 2048: 0x00028BE9,
+ 2049: 0x00005B74,
+ 2050: 0x00007A49,
+ 2051: 0x000258E1,
+ 2052: 0x000294D9,
+ 2053: 0x00007A65,
+ 2054: 0x00007A7D,
+ 2055: 0x000259AC,
+ 2056: 0x00007ABB,
+ 2057: 0x00007AB0,
+ 2058: 0x00007AC2,
+ 2059: 0x00007AC3,
+ 2060: 0x000071D1,
+ 2061: 0x0002648D,
+ 2062: 0x000041CA,
+ 2063: 0x00007ADA,
+ 2064: 0x00007ADD,
+ 2065: 0x00007AEA,
+ 2066: 0x000041EF,
+ 2067: 0x000054B2,
+ 2068: 0x00025C01,
+ 2069: 0x00007B0B,
+ 2070: 0x00007B55,
+ 2071: 0x00007B29,
+ 2072: 0x0002530E,
+ 2073: 0x00025CFE,
+ 2074: 0x00007BA2,
+ 2075: 0x00007B6F,
+ 2076: 0x0000839C,
+ 2077: 0x00025BB4,
+ 2078: 0x00026C7F,
+ 2079: 0x00007BD0,
+ 2080: 0x00008421,
+ 2081: 0x00007B92,
+ 2082: 0x00007BB8,
+ 2083: 0x00025D20,
+ 2084: 0x00003DAD,
+ 2085: 0x00025C65,
+ 2086: 0x00008492,
+ 2087: 0x00007BFA,
+ 2088: 0x00007C06,
+ 2089: 0x00007C35,
+ 2090: 0x00025CC1,
+ 2091: 0x00007C44,
+ 2092: 0x00007C83,
+ 2093: 0x00024882,
+ 2094: 0x00007CA6,
+ 2095: 0x0000667D,
+ 2096: 0x00024578,
+ 2097: 0x00007CC9,
+ 2098: 0x00007CC7,
+ 2099: 0x00007CE6,
+ 2100: 0x00007C74,
+ 2101: 0x00007CF3,
+ 2102: 0x00007CF5,
+ 2103: 0x00007CCE,
+ 2104: 0x00007E67,
+ 2105: 0x0000451D,
+ 2106: 0x00026E44,
+ 2107: 0x00007D5D,
+ 2108: 0x00026ED6,
+ 2109: 0x0000748D,
+ 2110: 0x00007D89,
+ 2111: 0x00007DAB,
+ 2112: 0x00007135,
+ 2113: 0x00007DB3,
+ 2114: 0x00007DD2,
+ 2115: 0x00024057,
+ 2116: 0x00026029,
+ 2117: 0x00007DE4,
+ 2118: 0x00003D13,
+ 2119: 0x00007DF5,
+ 2120: 0x000217F9,
+ 2121: 0x00007DE5,
+ 2122: 0x0002836D,
+ 2123: 0x00007E1D,
+ 2124: 0x00026121,
+ 2125: 0x0002615A,
+ 2126: 0x00007E6E,
+ 2127: 0x00007E92,
+ 2128: 0x0000432B,
+ 2129: 0x0000946C,
+ 2130: 0x00007E27,
+ 2131: 0x00007F40,
+ 2132: 0x00007F41,
+ 2133: 0x00007F47,
+ 2134: 0x00007936,
+ 2135: 0x000262D0,
+ 2136: 0x000099E1,
+ 2137: 0x00007F97,
+ 2138: 0x00026351,
+ 2139: 0x00007FA3,
+ 2140: 0x00021661,
+ 2141: 0x00020068,
+ 2142: 0x0000455C,
+ 2143: 0x00023766,
+ 2144: 0x00004503,
+ 2145: 0x0002833A,
+ 2146: 0x00007FFA,
+ 2147: 0x00026489,
+ 2148: 0x00008005,
+ 2149: 0x00008008,
+ 2150: 0x0000801D,
+ 2151: 0x00008028,
+ 2152: 0x0000802F,
+ 2153: 0x0002A087,
+ 2154: 0x00026CC3,
+ 2155: 0x0000803B,
+ 2156: 0x0000803C,
+ 2157: 0x00008061,
+ 2158: 0x00022714,
+ 2159: 0x00004989,
+ 2160: 0x00026626,
+ 2161: 0x00023DE3,
+ 2162: 0x000266E8,
+ 2163: 0x00006725,
+ 2164: 0x000080A7,
+ 2165: 0x00028A48,
+ 2166: 0x00008107,
+ 2167: 0x0000811A,
+ 2168: 0x000058B0,
+ 2169: 0x000226F6,
+ 2170: 0x00006C7F,
+ 2171: 0x00026498,
+ 2172: 0x00024FB8,
+ 2173: 0x000064E7,
+ 2174: 0x0002148A,
+ 2175: 0x00008218,
+ 2176: 0x0002185E,
+ 2177: 0x00006A53,
+ 2178: 0x00024A65,
+ 2179: 0x00024A95,
+ 2180: 0x0000447A,
+ 2181: 0x00008229,
+ 2182: 0x00020B0D,
+ 2183: 0x00026A52,
+ 2184: 0x00023D7E,
+ 2185: 0x00004FF9,
+ 2186: 0x000214FD,
+ 2187: 0x000084E2,
+ 2188: 0x00008362,
+ 2189: 0x00026B0A,
+ 2190: 0x000249A7,
+ 2191: 0x00023530,
+ 2192: 0x00021773,
+ 2193: 0x00023DF8,
+ 2194: 0x000082AA,
+ 2195: 0x0000691B,
+ 2196: 0x0002F994,
+ 2197: 0x000041DB,
+ 2198: 0x0000854B,
+ 2199: 0x000082D0,
+ 2200: 0x0000831A,
+ 2201: 0x00020E16,
+ 2202: 0x000217B4,
+ 2203: 0x000036C1,
+ 2204: 0x0002317D,
+ 2205: 0x0002355A,
+ 2206: 0x0000827B,
+ 2207: 0x000082E2,
+ 2208: 0x00008318,
+ 2209: 0x00023E8B,
+ 2210: 0x00026DA3,
+ 2211: 0x00026B05,
+ 2212: 0x00026B97,
+ 2213: 0x000235CE,
+ 2214: 0x00003DBF,
+ 2215: 0x0000831D,
+ 2216: 0x000055EC,
+ 2217: 0x00008385,
+ 2218: 0x0000450B,
+ 2219: 0x00026DA5,
+ 2220: 0x000083AC,
+ 2221: 0x000083C1,
+ 2222: 0x000083D3,
+ 2223: 0x0000347E,
+ 2224: 0x00026ED4,
+ 2225: 0x00006A57,
+ 2226: 0x0000855A,
+ 2227: 0x00003496,
+ 2228: 0x00026E42,
+ 2229: 0x00022EEF,
+ 2230: 0x00008458,
+ 2231: 0x00025BE4,
+ 2232: 0x00008471,
+ 2233: 0x00003DD3,
+ 2234: 0x000044E4,
+ 2235: 0x00006AA7,
+ 2236: 0x0000844A,
+ 2237: 0x00023CB5,
+ 2238: 0x00007958,
+ 2239: 0x000084A8,
+ 2240: 0x00026B96,
+ 2241: 0x00026E77,
+ 2242: 0x00026E43,
+ 2243: 0x000084DE,
+ 2244: 0x0000840F,
+ 2245: 0x00008391,
+ 2246: 0x000044A0,
+ 2247: 0x00008493,
+ 2248: 0x000084E4,
+ 2249: 0x00025C91,
+ 2250: 0x00004240,
+ 2251: 0x00025CC0,
+ 2252: 0x00004543,
+ 2253: 0x00008534,
+ 2254: 0x00005AF2,
+ 2255: 0x00026E99,
+ 2256: 0x00004527,
+ 2257: 0x00008573,
+ 2258: 0x00004516,
+ 2259: 0x000067BF,
+ 2260: 0x00008616,
+ 2261: 0x00028625,
+ 2262: 0x0002863B,
+ 2263: 0x000085C1,
+ 2264: 0x00027088,
+ 2265: 0x00008602,
+ 2266: 0x00021582,
+ 2267: 0x000270CD,
+ 2268: 0x0002F9B2,
+ 2269: 0x0000456A,
+ 2270: 0x00008628,
+ 2271: 0x00003648,
+ 2272: 0x000218A2,
+ 2273: 0x000053F7,
+ 2274: 0x0002739A,
+ 2275: 0x0000867E,
+ 2276: 0x00008771,
+ 2277: 0x0002A0F8,
+ 2278: 0x000087EE,
+ 2279: 0x00022C27,
+ 2280: 0x000087B1,
+ 2281: 0x000087DA,
+ 2282: 0x0000880F,
+ 2283: 0x00005661,
+ 2284: 0x0000866C,
+ 2285: 0x00006856,
+ 2286: 0x0000460F,
+ 2287: 0x00008845,
+ 2288: 0x00008846,
+ 2289: 0x000275E0,
+ 2290: 0x00023DB9,
+ 2291: 0x000275E4,
+ 2292: 0x0000885E,
+ 2293: 0x0000889C,
+ 2294: 0x0000465B,
+ 2295: 0x000088B4,
+ 2296: 0x000088B5,
+ 2297: 0x000063C1,
+ 2298: 0x000088C5,
+ 2299: 0x00007777,
+ 2300: 0x0002770F,
+ 2301: 0x00008987,
+ 2302: 0x0000898A,
+ 2303: 0x000089A6,
+ 2304: 0x000089A9,
+ 2305: 0x000089A7,
+ 2306: 0x000089BC,
+ 2307: 0x00028A25,
+ 2308: 0x000089E7,
+ 2309: 0x00027924,
+ 2310: 0x00027ABD,
+ 2311: 0x00008A9C,
+ 2312: 0x00007793,
+ 2313: 0x000091FE,
+ 2314: 0x00008A90,
+ 2315: 0x00027A59,
+ 2316: 0x00007AE9,
+ 2317: 0x00027B3A,
+ 2318: 0x00023F8F,
+ 2319: 0x00004713,
+ 2320: 0x00027B38,
+ 2321: 0x0000717C,
+ 2322: 0x00008B0C,
+ 2323: 0x00008B1F,
+ 2324: 0x00025430,
+ 2325: 0x00025565,
+ 2326: 0x00008B3F,
+ 2327: 0x00008B4C,
+ 2328: 0x00008B4D,
+ 2329: 0x00008AA9,
+ 2330: 0x00024A7A,
+ 2331: 0x00008B90,
+ 2332: 0x00008B9B,
+ 2333: 0x00008AAF,
+ 2334: 0x000216DF,
+ 2335: 0x00004615,
+ 2336: 0x0000884F,
+ 2337: 0x00008C9B,
+ 2338: 0x00027D54,
+ 2339: 0x00027D8F,
+ 2340: 0x0002F9D4,
+ 2341: 0x00003725,
+ 2342: 0x00027D53,
+ 2343: 0x00008CD6,
+ 2344: 0x00027D98,
+ 2345: 0x00027DBD,
+ 2346: 0x00008D12,
+ 2347: 0x00008D03,
+ 2348: 0x00021910,
+ 2349: 0x00008CDB,
+ 2350: 0x0000705C,
+ 2351: 0x00008D11,
+ 2352: 0x00024CC9,
+ 2353: 0x00003ED0,
+ 2354: 0x00008D77,
+ 2355: 0x00008DA9,
+ 2356: 0x00028002,
+ 2357: 0x00021014,
+ 2358: 0x0002498A,
+ 2359: 0x00003B7C,
+ 2360: 0x000281BC,
+ 2361: 0x0002710C,
+ 2362: 0x00007AE7,
+ 2363: 0x00008EAD,
+ 2364: 0x00008EB6,
+ 2365: 0x00008EC3,
+ 2366: 0x000092D4,
+ 2367: 0x00008F19,
+ 2368: 0x00008F2D,
+ 2369: 0x00028365,
+ 2370: 0x00028412,
+ 2371: 0x00008FA5,
+ 2372: 0x00009303,
+ 2373: 0x0002A29F,
+ 2374: 0x00020A50,
+ 2375: 0x00008FB3,
+ 2376: 0x0000492A,
+ 2377: 0x000289DE,
+ 2378: 0x0002853D,
+ 2379: 0x00023DBB,
+ 2380: 0x00005EF8,
+ 2381: 0x00023262,
+ 2382: 0x00008FF9,
+ 2383: 0x0002A014,
+ 2384: 0x000286BC,
+ 2385: 0x00028501,
+ 2386: 0x00022325,
+ 2387: 0x00003980,
+ 2388: 0x00026ED7,
+ 2389: 0x00009037,
+ 2390: 0x0002853C,
+ 2391: 0x00027ABE,
+ 2392: 0x00009061,
+ 2393: 0x0002856C,
+ 2394: 0x0002860B,
+ 2395: 0x000090A8,
+ 2396: 0x00028713,
+ 2397: 0x000090C4,
+ 2398: 0x000286E6,
+ 2399: 0x000090AE,
+ 2400: 0x000090FD,
+ 2401: 0x00009167,
+ 2402: 0x00003AF0,
+ 2403: 0x000091A9,
+ 2404: 0x000091C4,
+ 2405: 0x00007CAC,
+ 2406: 0x00028933,
+ 2407: 0x00021E89,
+ 2408: 0x0000920E,
+ 2409: 0x00006C9F,
+ 2410: 0x00009241,
+ 2411: 0x00009262,
+ 2412: 0x000255B9,
+ 2413: 0x000092B9,
+ 2414: 0x00028AC6,
+ 2415: 0x00023C9B,
+ 2416: 0x00028B0C,
+ 2417: 0x000255DB,
+ 2418: 0x00020D31,
+ 2419: 0x0000932C,
+ 2420: 0x0000936B,
+ 2421: 0x00028AE1,
+ 2422: 0x00028BEB,
+ 2423: 0x0000708F,
+ 2424: 0x00005AC3,
+ 2425: 0x00028AE2,
+ 2426: 0x00028AE5,
+ 2427: 0x00004965,
+ 2428: 0x00009244,
+ 2429: 0x00028BEC,
+ 2430: 0x00028C39,
+ 2431: 0x00028BFF,
+ 2432: 0x00009373,
+ 2433: 0x0000945B,
+ 2434: 0x00008EBC,
+ 2435: 0x00009585,
+ 2436: 0x000095A6,
+ 2437: 0x00009426,
+ 2438: 0x000095A0,
+ 2439: 0x00006FF6,
+ 2440: 0x000042B9,
+ 2441: 0x0002267A,
+ 2442: 0x000286D8,
+ 2443: 0x0002127C,
+ 2444: 0x00023E2E,
+ 2445: 0x000049DF,
+ 2446: 0x00006C1C,
+ 2447: 0x0000967B,
+ 2448: 0x00009696,
+ 2449: 0x0000416C,
+ 2450: 0x000096A3,
+ 2451: 0x00026ED5,
+ 2452: 0x000061DA,
+ 2453: 0x000096B6,
+ 2454: 0x000078F5,
+ 2455: 0x00028AE0,
+ 2456: 0x000096BD,
+ 2457: 0x000053CC,
+ 2458: 0x000049A1,
+ 2459: 0x00026CB8,
+ 2460: 0x00020274,
+ 2461: 0x00026410,
+ 2462: 0x000290AF,
+ 2463: 0x000290E5,
+ 2464: 0x00024AD1,
+ 2465: 0x00021915,
+ 2466: 0x0002330A,
+ 2467: 0x00009731,
+ 2468: 0x00008642,
+ 2469: 0x00009736,
+ 2470: 0x00004A0F,
+ 2471: 0x0000453D,
+ 2472: 0x00004585,
+ 2473: 0x00024AE9,
+ 2474: 0x00007075,
+ 2475: 0x00005B41,
+ 2476: 0x0000971B,
+ 2477: 0x0000975C,
+ 2478: 0x000291D5,
+ 2479: 0x00009757,
+ 2480: 0x00005B4A,
+ 2481: 0x000291EB,
+ 2482: 0x0000975F,
+ 2483: 0x00009425,
+ 2484: 0x000050D0,
+ 2485: 0x000230B7,
+ 2486: 0x000230BC,
+ 2487: 0x00009789,
+ 2488: 0x0000979F,
+ 2489: 0x000097B1,
+ 2490: 0x000097BE,
+ 2491: 0x000097C0,
+ 2492: 0x000097D2,
+ 2493: 0x000097E0,
+ 2494: 0x0002546C,
+ 2495: 0x000097EE,
+ 2496: 0x0000741C,
+ 2497: 0x00029433,
+ 2498: 0x000097FF,
+ 2499: 0x000097F5,
+ 2500: 0x0002941D,
+ 2501: 0x0002797A,
+ 2502: 0x00004AD1,
+ 2503: 0x00009834,
+ 2504: 0x00009833,
+ 2505: 0x0000984B,
+ 2506: 0x00009866,
+ 2507: 0x00003B0E,
+ 2508: 0x00027175,
+ 2509: 0x00003D51,
+ 2510: 0x00020630,
+ 2511: 0x0002415C,
+ 2512: 0x00025706,
+ 2513: 0x000098CA,
+ 2514: 0x000098B7,
+ 2515: 0x000098C8,
+ 2516: 0x000098C7,
+ 2517: 0x00004AFF,
+ 2518: 0x00026D27,
+ 2519: 0x000216D3,
+ 2520: 0x000055B0,
+ 2521: 0x000098E1,
+ 2522: 0x000098E6,
+ 2523: 0x000098EC,
+ 2524: 0x00009378,
+ 2525: 0x00009939,
+ 2526: 0x00024A29,
+ 2527: 0x00004B72,
+ 2528: 0x00029857,
+ 2529: 0x00029905,
+ 2530: 0x000099F5,
+ 2531: 0x00009A0C,
+ 2532: 0x00009A3B,
+ 2533: 0x00009A10,
+ 2534: 0x00009A58,
+ 2535: 0x00025725,
+ 2536: 0x000036C4,
+ 2537: 0x000290B1,
+ 2538: 0x00029BD5,
+ 2539: 0x00009AE0,
+ 2540: 0x00009AE2,
+ 2541: 0x00029B05,
+ 2542: 0x00009AF4,
+ 2543: 0x00004C0E,
+ 2544: 0x00009B14,
+ 2545: 0x00009B2D,
+ 2546: 0x00028600,
+ 2547: 0x00005034,
+ 2548: 0x00009B34,
+ 2549: 0x000269A8,
+ 2550: 0x000038C3,
+ 2551: 0x0002307D,
+ 2552: 0x00009B50,
+ 2553: 0x00009B40,
+ 2554: 0x00029D3E,
+ 2555: 0x00005A45,
+ 2556: 0x00021863,
+ 2557: 0x00009B8E,
+ 2558: 0x0002424B,
+ 2559: 0x00009C02,
+ 2560: 0x00009BFF,
+ 2561: 0x00009C0C,
+ 2562: 0x00029E68,
+ 2563: 0x00009DD4,
+ 2564: 0x00029FB7,
+ 2565: 0x0002A192,
+ 2566: 0x0002A1AB,
+ 2567: 0x0002A0E1,
+ 2568: 0x0002A123,
+ 2569: 0x0002A1DF,
+ 2570: 0x00009D7E,
+ 2571: 0x00009D83,
+ 2572: 0x0002A134,
+ 2573: 0x00009E0E,
+ 2574: 0x00006888,
+ 2575: 0x00009DC4,
+ 2576: 0x0002215B,
+ 2577: 0x0002A193,
+ 2578: 0x0002A220,
+ 2579: 0x0002193B,
+ 2580: 0x0002A233,
+ 2581: 0x00009D39,
+ 2582: 0x0002A0B9,
+ 2583: 0x0002A2B4,
+ 2584: 0x00009E90,
+ 2585: 0x00009E95,
+ 2586: 0x00009E9E,
+ 2587: 0x00009EA2,
+ 2588: 0x00004D34,
+ 2589: 0x00009EAA,
+ 2590: 0x00009EAF,
+ 2591: 0x00024364,
+ 2592: 0x00009EC1,
+ 2593: 0x00003B60,
+ 2594: 0x000039E5,
+ 2595: 0x00003D1D,
+ 2596: 0x00004F32,
+ 2597: 0x000037BE,
+ 2598: 0x00028C2B,
+ 2599: 0x00009F02,
+ 2600: 0x00009F08,
+ 2601: 0x00004B96,
+ 2602: 0x00009424,
+ 2603: 0x00026DA2,
+ 2604: 0x00009F17,
+ 2605: 0x00009F16,
+ 2606: 0x00009F39,
+ 2607: 0x0000569F,
+ 2608: 0x0000568A,
+ 2609: 0x00009F45,
+ 2610: 0x000099B8,
+ 2611: 0x0002908B,
+ 2612: 0x000097F2,
+ 2613: 0x0000847F,
+ 2614: 0x00009F62,
+ 2615: 0x00009F69,
+ 2616: 0x00007ADC,
+ 2617: 0x00009F8E,
+ 2618: 0x00007216,
+ 2619: 0x00004BBE,
+ 2620: 0x00024975,
+ 2621: 0x000249BB,
+ 2622: 0x00007177,
+ 2623: 0x000249F8,
+ 2624: 0x00024348,
+ 2625: 0x00024A51,
+ 2626: 0x0000739E,
+ 2627: 0x00028BDA,
+ 2628: 0x000218FA,
+ 2629: 0x0000799F,
+ 2630: 0x0002897E,
+ 2631: 0x00028E36,
+ 2632: 0x00009369,
+ 2633: 0x000093F3,
+ 2634: 0x00028A44,
+ 2635: 0x000092EC,
+ 2636: 0x00009381,
+ 2637: 0x000093CB,
+ 2638: 0x0002896C,
+ 2639: 0x000244B9,
+ 2640: 0x00007217,
+ 2641: 0x00003EEB,
+ 2642: 0x00007772,
+ 2643: 0x00007A43,
+ 2644: 0x000070D0,
+ 2645: 0x00024473,
+ 2646: 0x000243F8,
+ 2647: 0x0000717E,
+ 2648: 0x000217EF,
+ 2649: 0x000070A3,
+ 2650: 0x000218BE,
+ 2651: 0x00023599,
+ 2652: 0x00003EC7,
+ 2653: 0x00021885,
+ 2654: 0x0002542F,
+ 2655: 0x000217F8,
+ 2656: 0x00003722,
+ 2657: 0x000216FB,
+ 2658: 0x00021839,
+ 2659: 0x000036E1,
+ 2660: 0x00021774,
+ 2661: 0x000218D1,
+ 2662: 0x00025F4B,
+ 2663: 0x00003723,
+ 2664: 0x000216C0,
+ 2665: 0x0000575B,
+ 2666: 0x00024A25,
+ 2667: 0x000213FE,
+ 2668: 0x000212A8,
+ 2669: 0x000213C6,
+ 2670: 0x000214B6,
+ 2671: 0x00008503,
+ 2672: 0x000236A6,
+ 2673: 0x00008503,
+ 2674: 0x00008455,
+ 2675: 0x00024994,
+ 2676: 0x00027165,
+ 2677: 0x00023E31,
+ 2678: 0x0002555C,
+ 2679: 0x00023EFB,
+ 2680: 0x00027052,
+ 2681: 0x000044F4,
+ 2682: 0x000236EE,
+ 2683: 0x0002999D,
+ 2684: 0x00026F26,
+ 2685: 0x000067F9,
+ 2686: 0x00003733,
+ 2687: 0x00003C15,
+ 2688: 0x00003DE7,
+ 2689: 0x0000586C,
+ 2690: 0x00021922,
+ 2691: 0x00006810,
+ 2692: 0x00004057,
+ 2693: 0x0002373F,
+ 2694: 0x000240E1,
+ 2695: 0x0002408B,
+ 2696: 0x0002410F,
+ 2697: 0x00026C21,
+ 2698: 0x000054CB,
+ 2699: 0x0000569E,
+ 2700: 0x000266B1,
+ 2701: 0x00005692,
+ 2702: 0x00020FDF,
+ 2703: 0x00020BA8,
+ 2704: 0x00020E0D,
+ 2705: 0x000093C6,
+ 2706: 0x00028B13,
+ 2707: 0x0000939C,
+ 2708: 0x00004EF8,
+ 2709: 0x0000512B,
+ 2710: 0x00003819,
+ 2711: 0x00024436,
+ 2712: 0x00004EBC,
+ 2713: 0x00020465,
+ 2714: 0x0002037F,
+ 2715: 0x00004F4B,
+ 2716: 0x00004F8A,
+ 2717: 0x00025651,
+ 2718: 0x00005A68,
+ 2719: 0x000201AB,
+ 2720: 0x000203CB,
+ 2721: 0x00003999,
+ 2722: 0x0002030A,
+ 2723: 0x00020414,
+ 2724: 0x00003435,
+ 2725: 0x00004F29,
+ 2726: 0x000202C0,
+ 2727: 0x00028EB3,
+ 2728: 0x00020275,
+ 2729: 0x00008ADA,
+ 2730: 0x0002020C,
+ 2731: 0x00004E98,
+ 2732: 0x000050CD,
+ 2733: 0x0000510D,
+ 2734: 0x00004FA2,
+ 2735: 0x00004F03,
+ 2736: 0x00024A0E,
+ 2737: 0x00023E8A,
+ 2738: 0x00004F42,
+ 2739: 0x0000502E,
+ 2740: 0x0000506C,
+ 2741: 0x00005081,
+ 2742: 0x00004FCC,
+ 2743: 0x00004FE5,
+ 2744: 0x00005058,
+ 2745: 0x000050FC,
+ 2746: 0x00005159,
+ 2747: 0x0000515B,
+ 2748: 0x0000515D,
+ 2749: 0x0000515E,
+ 2750: 0x00006E76,
+ 2751: 0x00023595,
+ 2752: 0x00023E39,
+ 2753: 0x00023EBF,
+ 2754: 0x00006D72,
+ 2755: 0x00021884,
+ 2756: 0x00023E89,
+ 2757: 0x000051A8,
+ 2758: 0x000051C3,
+ 2759: 0x000205E0,
+ 2760: 0x000044DD,
+ 2761: 0x000204A3,
+ 2762: 0x00020492,
+ 2763: 0x00020491,
+ 2764: 0x00008D7A,
+ 2765: 0x00028A9C,
+ 2766: 0x0002070E,
+ 2767: 0x00005259,
+ 2768: 0x000052A4,
+ 2769: 0x00020873,
+ 2770: 0x000052E1,
+ 2771: 0x0000936E,
+ 2772: 0x0000467A,
+ 2773: 0x0000718C,
+ 2774: 0x0002438C,
+ 2775: 0x00020C20,
+ 2776: 0x000249AC,
+ 2777: 0x000210E4,
+ 2778: 0x000069D1,
+ 2779: 0x00020E1D,
+ 2780: 0x00007479,
+ 2781: 0x00003EDE,
+ 2782: 0x00007499,
+ 2783: 0x00007414,
+ 2784: 0x00007456,
+ 2785: 0x00007398,
+ 2786: 0x00004B8E,
+ 2787: 0x00024ABC,
+ 2788: 0x0002408D,
+ 2789: 0x000053D0,
+ 2790: 0x00003584,
+ 2791: 0x0000720F,
+ 2792: 0x000240C9,
+ 2793: 0x000055B4,
+ 2794: 0x00020345,
+ 2795: 0x000054CD,
+ 2796: 0x00020BC6,
+ 2797: 0x0000571D,
+ 2798: 0x0000925D,
+ 2799: 0x000096F4,
+ 2800: 0x00009366,
+ 2801: 0x000057DD,
+ 2802: 0x0000578D,
+ 2803: 0x0000577F,
+ 2804: 0x0000363E,
+ 2805: 0x000058CB,
+ 2806: 0x00005A99,
+ 2807: 0x00028A46,
+ 2808: 0x000216FA,
+ 2809: 0x0002176F,
+ 2810: 0x00021710,
+ 2811: 0x00005A2C,
+ 2812: 0x000059B8,
+ 2813: 0x0000928F,
+ 2814: 0x00005A7E,
+ 2815: 0x00005ACF,
+ 2816: 0x00005A12,
+ 2817: 0x00025946,
+ 2818: 0x000219F3,
+ 2819: 0x00021861,
+ 2820: 0x00024295,
+ 2821: 0x000036F5,
+ 2822: 0x00006D05,
+ 2823: 0x00007443,
+ 2824: 0x00005A21,
+ 2825: 0x00025E83,
+ 2826: 0x00005A81,
+ 2827: 0x00028BD7,
+ 2828: 0x00020413,
+ 2829: 0x000093E0,
+ 2830: 0x0000748C,
+ 2831: 0x00021303,
+ 2832: 0x00007105,
+ 2833: 0x00004972,
+ 2834: 0x00009408,
+ 2835: 0x000289FB,
+ 2836: 0x000093BD,
+ 2837: 0x000037A0,
+ 2838: 0x00005C1E,
+ 2839: 0x00005C9E,
+ 2840: 0x00005E5E,
+ 2841: 0x00005E48,
+ 2842: 0x00021996,
+ 2843: 0x0002197C,
+ 2844: 0x00023AEE,
+ 2845: 0x00005ECD,
+ 2846: 0x00005B4F,
+ 2847: 0x00021903,
+ 2848: 0x00021904,
+ 2849: 0x00003701,
+ 2850: 0x000218A0,
+ 2851: 0x000036DD,
+ 2852: 0x000216FE,
+ 2853: 0x000036D3,
+ 2854: 0x0000812A,
+ 2855: 0x00028A47,
+ 2856: 0x00021DBA,
+ 2857: 0x00023472,
+ 2858: 0x000289A8,
+ 2859: 0x00005F0C,
+ 2860: 0x00005F0E,
+ 2861: 0x00021927,
+ 2862: 0x000217AB,
+ 2863: 0x00005A6B,
+ 2864: 0x0002173B,
+ 2865: 0x00005B44,
+ 2866: 0x00008614,
+ 2867: 0x000275FD,
+ 2868: 0x00008860,
+ 2869: 0x0000607E,
+ 2870: 0x00022860,
+ 2871: 0x0002262B,
+ 2872: 0x00005FDB,
+ 2873: 0x00003EB8,
+ 2874: 0x000225AF,
+ 2875: 0x000225BE,
+ 2876: 0x00029088,
+ 2877: 0x00026F73,
+ 2878: 0x000061C0,
+ 2879: 0x0002003E,
+ 2880: 0x00020046,
+ 2881: 0x0002261B,
+ 2882: 0x00006199,
+ 2883: 0x00006198,
+ 2884: 0x00006075,
+ 2885: 0x00022C9B,
+ 2886: 0x00022D07,
+ 2887: 0x000246D4,
+ 2888: 0x0002914D,
+ 2889: 0x00006471,
+ 2890: 0x00024665,
+ 2891: 0x00022B6A,
+ 2892: 0x00003A29,
+ 2893: 0x00022B22,
+ 2894: 0x00023450,
+ 2895: 0x000298EA,
+ 2896: 0x00022E78,
+ 2897: 0x00006337,
+ 2898: 0x0002A45B,
+ 2899: 0x000064B6,
+ 2900: 0x00006331,
+ 2901: 0x000063D1,
+ 2902: 0x000249E3,
+ 2903: 0x00022D67,
+ 2904: 0x000062A4,
+ 2905: 0x00022CA1,
+ 2906: 0x0000643B,
+ 2907: 0x0000656B,
+ 2908: 0x00006972,
+ 2909: 0x00003BF4,
+ 2910: 0x0002308E,
+ 2911: 0x000232AD,
+ 2912: 0x00024989,
+ 2913: 0x000232AB,
+ 2914: 0x0000550D,
+ 2915: 0x000232E0,
+ 2916: 0x000218D9,
+ 2917: 0x0002943F,
+ 2918: 0x000066CE,
+ 2919: 0x00023289,
+ 2920: 0x000231B3,
+ 2921: 0x00003AE0,
+ 2922: 0x00004190,
+ 2923: 0x00025584,
+ 2924: 0x00028B22,
+ 2925: 0x0002558F,
+ 2926: 0x000216FC,
+ 2927: 0x0002555B,
+ 2928: 0x00025425,
+ 2929: 0x000078EE,
+ 2930: 0x00023103,
+ 2931: 0x0002182A,
+ 2932: 0x00023234,
+ 2933: 0x00003464,
+ 2934: 0x0002320F,
+ 2935: 0x00023182,
+ 2936: 0x000242C9,
+ 2937: 0x0000668E,
+ 2938: 0x00026D24,
+ 2939: 0x0000666B,
+ 2940: 0x00004B93,
+ 2941: 0x00006630,
+ 2942: 0x00027870,
+ 2943: 0x00021DEB,
+ 2944: 0x00006663,
+ 2945: 0x000232D2,
+ 2946: 0x000232E1,
+ 2947: 0x0000661E,
+ 2948: 0x00025872,
+ 2949: 0x000038D1,
+ 2950: 0x0002383A,
+ 2951: 0x000237BC,
+ 2952: 0x00003B99,
+ 2953: 0x000237A2,
+ 2954: 0x000233FE,
+ 2955: 0x000074D0,
+ 2956: 0x00003B96,
+ 2957: 0x0000678F,
+ 2958: 0x0002462A,
+ 2959: 0x000068B6,
+ 2960: 0x0000681E,
+ 2961: 0x00003BC4,
+ 2962: 0x00006ABE,
+ 2963: 0x00003863,
+ 2964: 0x000237D5,
+ 2965: 0x00024487,
+ 2966: 0x00006A33,
+ 2967: 0x00006A52,
+ 2968: 0x00006AC9,
+ 2969: 0x00006B05,
+ 2970: 0x00021912,
+ 2971: 0x00006511,
+ 2972: 0x00006898,
+ 2973: 0x00006A4C,
+ 2974: 0x00003BD7,
+ 2975: 0x00006A7A,
+ 2976: 0x00006B57,
+ 2977: 0x00023FC0,
+ 2978: 0x00023C9A,
+ 2979: 0x000093A0,
+ 2980: 0x000092F2,
+ 2981: 0x00028BEA,
+ 2982: 0x00028ACB,
+ 2983: 0x00009289,
+ 2984: 0x0002801E,
+ 2985: 0x000289DC,
+ 2986: 0x00009467,
+ 2987: 0x00006DA5,
+ 2988: 0x00006F0B,
+ 2989: 0x000249EC,
+ 2990: 0x00006D67,
+ 2991: 0x00023F7F,
+ 2992: 0x00003D8F,
+ 2993: 0x00006E04,
+ 2994: 0x0002403C,
+ 2995: 0x00005A3D,
+ 2996: 0x00006E0A,
+ 2997: 0x00005847,
+ 2998: 0x00006D24,
+ 2999: 0x00007842,
+ 3000: 0x0000713B,
+ 3001: 0x0002431A,
+ 3002: 0x00024276,
+ 3003: 0x000070F1,
+ 3004: 0x00007250,
+ 3005: 0x00007287,
+ 3006: 0x00007294,
+ 3007: 0x0002478F,
+ 3008: 0x00024725,
+ 3009: 0x00005179,
+ 3010: 0x00024AA4,
+ 3011: 0x000205EB,
+ 3012: 0x0000747A,
+ 3013: 0x00023EF8,
+ 3014: 0x0002365F,
+ 3015: 0x00024A4A,
+ 3016: 0x00024917,
+ 3017: 0x00025FE1,
+ 3018: 0x00003F06,
+ 3019: 0x00003EB1,
+ 3020: 0x00024ADF,
+ 3021: 0x00028C23,
+ 3022: 0x00023F35,
+ 3023: 0x000060A7,
+ 3024: 0x00003EF3,
+ 3025: 0x000074CC,
+ 3026: 0x0000743C,
+ 3027: 0x00009387,
+ 3028: 0x00007437,
+ 3029: 0x0000449F,
+ 3030: 0x00026DEA,
+ 3031: 0x00004551,
+ 3032: 0x00007583,
+ 3033: 0x00003F63,
+ 3034: 0x00024CD9,
+ 3035: 0x00024D06,
+ 3036: 0x00003F58,
+ 3037: 0x00007555,
+ 3038: 0x00007673,
+ 3039: 0x0002A5C6,
+ 3040: 0x00003B19,
+ 3041: 0x00007468,
+ 3042: 0x00028ACC,
+ 3043: 0x000249AB,
+ 3044: 0x0002498E,
+ 3045: 0x00003AFB,
+ 3046: 0x00003DCD,
+ 3047: 0x00024A4E,
+ 3048: 0x00003EFF,
+ 3049: 0x000249C5,
+ 3050: 0x000248F3,
+ 3051: 0x000091FA,
+ 3052: 0x00005732,
+ 3053: 0x00009342,
+ 3054: 0x00028AE3,
+ 3055: 0x00021864,
+ 3056: 0x000050DF,
+ 3057: 0x00025221,
+ 3058: 0x000251E7,
+ 3059: 0x00007778,
+ 3060: 0x00023232,
+ 3061: 0x0000770E,
+ 3062: 0x0000770F,
+ 3063: 0x0000777B,
+ 3064: 0x00024697,
+ 3065: 0x00023781,
+ 3066: 0x00003A5E,
+ 3067: 0x000248F0,
+ 3068: 0x00007438,
+ 3069: 0x0000749B,
+ 3070: 0x00003EBF,
+ 3071: 0x00024ABA,
+ 3072: 0x00024AC7,
+ 3073: 0x000040C8,
+ 3074: 0x00024A96,
+ 3075: 0x000261AE,
+ 3076: 0x00009307,
+ 3077: 0x00025581,
+ 3078: 0x0000781E,
+ 3079: 0x0000788D,
+ 3080: 0x00007888,
+ 3081: 0x000078D2,
+ 3082: 0x000073D0,
+ 3083: 0x00007959,
+ 3084: 0x00027741,
+ 3085: 0x000256E3,
+ 3086: 0x0000410E,
+ 3087: 0x0000799B,
+ 3088: 0x00008496,
+ 3089: 0x000079A5,
+ 3090: 0x00006A2D,
+ 3091: 0x00023EFA,
+ 3092: 0x00007A3A,
+ 3093: 0x000079F4,
+ 3094: 0x0000416E,
+ 3095: 0x000216E6,
+ 3096: 0x00004132,
+ 3097: 0x00009235,
+ 3098: 0x000079F1,
+ 3099: 0x00020D4C,
+ 3100: 0x0002498C,
+ 3101: 0x00020299,
+ 3102: 0x00023DBA,
+ 3103: 0x0002176E,
+ 3104: 0x00003597,
+ 3105: 0x0000556B,
+ 3106: 0x00003570,
+ 3107: 0x000036AA,
+ 3108: 0x000201D4,
+ 3109: 0x00020C0D,
+ 3110: 0x00007AE2,
+ 3111: 0x00005A59,
+ 3112: 0x000226F5,
+ 3113: 0x00025AAF,
+ 3114: 0x00025A9C,
+ 3115: 0x00005A0D,
+ 3116: 0x0002025B,
+ 3117: 0x000078F0,
+ 3118: 0x00005A2A,
+ 3119: 0x00025BC6,
+ 3120: 0x00007AFE,
+ 3121: 0x000041F9,
+ 3122: 0x00007C5D,
+ 3123: 0x00007C6D,
+ 3124: 0x00004211,
+ 3125: 0x00025BB3,
+ 3126: 0x00025EBC,
+ 3127: 0x00025EA6,
+ 3128: 0x00007CCD,
+ 3129: 0x000249F9,
+ 3130: 0x000217B0,
+ 3131: 0x00007C8E,
+ 3132: 0x00007C7C,
+ 3133: 0x00007CAE,
+ 3134: 0x00006AB2,
+ 3135: 0x00007DDC,
+ 3136: 0x00007E07,
+ 3137: 0x00007DD3,
+ 3138: 0x00007F4E,
+ 3139: 0x00026261,
+ 3140: 0x0002615C,
+ 3141: 0x00027B48,
+ 3142: 0x00007D97,
+ 3143: 0x00025E82,
+ 3144: 0x0000426A,
+ 3145: 0x00026B75,
+ 3146: 0x00020916,
+ 3147: 0x000067D6,
+ 3148: 0x0002004E,
+ 3149: 0x000235CF,
+ 3150: 0x000057C4,
+ 3151: 0x00026412,
+ 3152: 0x000263F8,
+ 3153: 0x00024962,
+ 3154: 0x00007FDD,
+ 3155: 0x00007B27,
+ 3156: 0x0002082C,
+ 3157: 0x00025AE9,
+ 3158: 0x00025D43,
+ 3159: 0x00007B0C,
+ 3160: 0x00025E0E,
+ 3161: 0x000099E6,
+ 3162: 0x00008645,
+ 3163: 0x00009A63,
+ 3164: 0x00006A1C,
+ 3165: 0x0002343F,
+ 3166: 0x000039E2,
+ 3167: 0x000249F7,
+ 3168: 0x000265AD,
+ 3169: 0x00009A1F,
+ 3170: 0x000265A0,
+ 3171: 0x00008480,
+ 3172: 0x00027127,
+ 3173: 0x00026CD1,
+ 3174: 0x000044EA,
+ 3175: 0x00008137,
+ 3176: 0x00004402,
+ 3177: 0x000080C6,
+ 3178: 0x00008109,
+ 3179: 0x00008142,
+ 3180: 0x000267B4,
+ 3181: 0x000098C3,
+ 3182: 0x00026A42,
+ 3183: 0x00008262,
+ 3184: 0x00008265,
+ 3185: 0x00026A51,
+ 3186: 0x00008453,
+ 3187: 0x00026DA7,
+ 3188: 0x00008610,
+ 3189: 0x0002721B,
+ 3190: 0x00005A86,
+ 3191: 0x0000417F,
+ 3192: 0x00021840,
+ 3193: 0x00005B2B,
+ 3194: 0x000218A1,
+ 3195: 0x00005AE4,
+ 3196: 0x000218D8,
+ 3197: 0x000086A0,
+ 3198: 0x0002F9BC,
+ 3199: 0x00023D8F,
+ 3200: 0x0000882D,
+ 3201: 0x00027422,
+ 3202: 0x00005A02,
+ 3203: 0x0000886E,
+ 3204: 0x00004F45,
+ 3205: 0x00008887,
+ 3206: 0x000088BF,
+ 3207: 0x000088E6,
+ 3208: 0x00008965,
+ 3209: 0x0000894D,
+ 3210: 0x00025683,
+ 3211: 0x00008954,
+ 3212: 0x00027785,
+ 3213: 0x00027784,
+ 3214: 0x00028BF5,
+ 3215: 0x00028BD9,
+ 3216: 0x00028B9C,
+ 3217: 0x000289F9,
+ 3218: 0x00003EAD,
+ 3219: 0x000084A3,
+ 3220: 0x000046F5,
+ 3221: 0x000046CF,
+ 3222: 0x000037F2,
+ 3223: 0x00008A3D,
+ 3224: 0x00008A1C,
+ 3225: 0x00029448,
+ 3226: 0x00005F4D,
+ 3227: 0x0000922B,
+ 3228: 0x00024284,
+ 3229: 0x000065D4,
+ 3230: 0x00007129,
+ 3231: 0x000070C4,
+ 3232: 0x00021845,
+ 3233: 0x00009D6D,
+ 3234: 0x00008C9F,
+ 3235: 0x00008CE9,
+ 3236: 0x00027DDC,
+ 3237: 0x0000599A,
+ 3238: 0x000077C3,
+ 3239: 0x000059F0,
+ 3240: 0x0000436E,
+ 3241: 0x000036D4,
+ 3242: 0x00008E2A,
+ 3243: 0x00008EA7,
+ 3244: 0x00024C09,
+ 3245: 0x00008F30,
+ 3246: 0x00008F4A,
+ 3247: 0x000042F4,
+ 3248: 0x00006C58,
+ 3249: 0x00006FBB,
+ 3250: 0x00022321,
+ 3251: 0x0000489B,
+ 3252: 0x00006F79,
+ 3253: 0x00006E8B,
+ 3254: 0x000217DA,
+ 3255: 0x00009BE9,
+ 3256: 0x000036B5,
+ 3257: 0x0002492F,
+ 3258: 0x000090BB,
+ 3259: 0x00009097,
+ 3260: 0x00005571,
+ 3261: 0x00004906,
+ 3262: 0x000091BB,
+ 3263: 0x00009404,
+ 3264: 0x00028A4B,
+ 3265: 0x00004062,
+ 3266: 0x00028AFC,
+ 3267: 0x00009427,
+ 3268: 0x00028C1D,
+ 3269: 0x00028C3B,
+ 3270: 0x000084E5,
+ 3271: 0x00008A2B,
+ 3272: 0x00009599,
+ 3273: 0x000095A7,
+ 3274: 0x00009597,
+ 3275: 0x00009596,
+ 3276: 0x00028D34,
+ 3277: 0x00007445,
+ 3278: 0x00003EC2,
+ 3279: 0x000248FF,
+ 3280: 0x00024A42,
+ 3281: 0x000243EA,
+ 3282: 0x00003EE7,
+ 3283: 0x00023225,
+ 3284: 0x0000968F,
+ 3285: 0x00028EE7,
+ 3286: 0x00028E66,
+ 3287: 0x00028E65,
+ 3288: 0x00003ECC,
+ 3289: 0x000249ED,
+ 3290: 0x00024A78,
+ 3291: 0x00023FEE,
+ 3292: 0x00007412,
+ 3293: 0x0000746B,
+ 3294: 0x00003EFC,
+ 3295: 0x00009741,
+ 3296: 0x000290B0,
+ 3297: 0x00006847,
+ 3298: 0x00004A1D,
+ 3299: 0x00029093,
+ 3300: 0x000257DF,
+ 3301: 0x0000975D,
+ 3302: 0x00009368,
+ 3303: 0x00028989,
+ 3304: 0x00028C26,
+ 3305: 0x00028B2F,
+ 3306: 0x000263BE,
+ 3307: 0x000092BA,
+ 3308: 0x00005B11,
+ 3309: 0x00008B69,
+ 3310: 0x0000493C,
+ 3311: 0x000073F9,
+ 3312: 0x0002421B,
+ 3313: 0x0000979B,
+ 3314: 0x00009771,
+ 3315: 0x00009938,
+ 3316: 0x00020F26,
+ 3317: 0x00005DC1,
+ 3318: 0x00028BC5,
+ 3319: 0x00024AB2,
+ 3320: 0x0000981F,
+ 3321: 0x000294DA,
+ 3322: 0x000092F6,
+ 3323: 0x000295D7,
+ 3324: 0x000091E5,
+ 3325: 0x000044C0,
+ 3326: 0x00028B50,
+ 3327: 0x00024A67,
+ 3328: 0x00028B64,
+ 3329: 0x000098DC,
+ 3330: 0x00028A45,
+ 3331: 0x00003F00,
+ 3332: 0x0000922A,
+ 3333: 0x00004925,
+ 3334: 0x00008414,
+ 3335: 0x0000993B,
+ 3336: 0x0000994D,
+ 3337: 0x00027B06,
+ 3338: 0x00003DFD,
+ 3339: 0x0000999B,
+ 3340: 0x00004B6F,
+ 3341: 0x000099AA,
+ 3342: 0x00009A5C,
+ 3343: 0x00028B65,
+ 3344: 0x000258C8,
+ 3345: 0x00006A8F,
+ 3346: 0x00009A21,
+ 3347: 0x00005AFE,
+ 3348: 0x00009A2F,
+ 3349: 0x000298F1,
+ 3350: 0x00004B90,
+ 3351: 0x00029948,
+ 3352: 0x000099BC,
+ 3353: 0x00004BBD,
+ 3354: 0x00004B97,
+ 3355: 0x0000937D,
+ 3356: 0x00005872,
+ 3357: 0x00021302,
+ 3358: 0x00005822,
+ 3359: 0x000249B8,
+ 3360: 0x000214E8,
+ 3361: 0x00007844,
+ 3362: 0x0002271F,
+ 3363: 0x00023DB8,
+ 3364: 0x000068C5,
+ 3365: 0x00003D7D,
+ 3366: 0x00009458,
+ 3367: 0x00003927,
+ 3368: 0x00006150,
+ 3369: 0x00022781,
+ 3370: 0x0002296B,
+ 3371: 0x00006107,
+ 3372: 0x00009C4F,
+ 3373: 0x00009C53,
+ 3374: 0x00009C7B,
+ 3375: 0x00009C35,
+ 3376: 0x00009C10,
+ 3377: 0x00009B7F,
+ 3378: 0x00009BCF,
+ 3379: 0x00029E2D,
+ 3380: 0x00009B9F,
+ 3381: 0x0002A1F5,
+ 3382: 0x0002A0FE,
+ 3383: 0x00009D21,
+ 3384: 0x00004CAE,
+ 3385: 0x00024104,
+ 3386: 0x00009E18,
+ 3387: 0x00004CB0,
+ 3388: 0x00009D0C,
+ 3389: 0x0002A1B4,
+ 3390: 0x0002A0ED,
+ 3391: 0x0002A0F3,
+ 3392: 0x0002992F,
+ 3393: 0x00009DA5,
+ 3394: 0x000084BD,
+ 3395: 0x00026E12,
+ 3396: 0x00026FDF,
+ 3397: 0x00026B82,
+ 3398: 0x000085FC,
+ 3399: 0x00004533,
+ 3400: 0x00026DA4,
+ 3401: 0x00026E84,
+ 3402: 0x00026DF0,
+ 3403: 0x00008420,
+ 3404: 0x000085EE,
+ 3405: 0x00026E00,
+ 3406: 0x000237D7,
+ 3407: 0x00026064,
+ 3408: 0x000079E2,
+ 3409: 0x0002359C,
+ 3410: 0x00023640,
+ 3411: 0x0000492D,
+ 3412: 0x000249DE,
+ 3413: 0x00003D62,
+ 3414: 0x000093DB,
+ 3415: 0x000092BE,
+ 3416: 0x00009348,
+ 3417: 0x000202BF,
+ 3418: 0x000078B9,
+ 3419: 0x00009277,
+ 3420: 0x0000944D,
+ 3421: 0x00004FE4,
+ 3422: 0x00003440,
+ 3423: 0x00009064,
+ 3424: 0x0002555D,
+ 3425: 0x0000783D,
+ 3426: 0x00007854,
+ 3427: 0x000078B6,
+ 3428: 0x0000784B,
+ 3429: 0x00021757,
+ 3430: 0x000231C9,
+ 3431: 0x00024941,
+ 3432: 0x0000369A,
+ 3433: 0x00004F72,
+ 3434: 0x00006FDA,
+ 3435: 0x00006FD9,
+ 3436: 0x0000701E,
+ 3437: 0x0000701E,
+ 3438: 0x00005414,
+ 3439: 0x000241B5,
+ 3440: 0x000057BB,
+ 3441: 0x000058F3,
+ 3442: 0x0000578A,
+ 3443: 0x00009D16,
+ 3444: 0x000057D7,
+ 3445: 0x00007134,
+ 3446: 0x000034AF,
+ 3447: 0x000241AC,
+ 3448: 0x000071EB,
+ 3449: 0x00026C40,
+ 3450: 0x00024F97,
+ 3451: 0x00005B28,
+ 3452: 0x000217B5,
+ 3453: 0x00028A49,
+ 3454: 0x0000610C,
+ 3455: 0x00005ACE,
+ 3456: 0x00005A0B,
+ 3457: 0x000042BC,
+ 3458: 0x00024488,
+ 3459: 0x0000372C,
+ 3460: 0x00004B7B,
+ 3461: 0x000289FC,
+ 3462: 0x000093BB,
+ 3463: 0x000093B8,
+ 3464: 0x000218D6,
+ 3465: 0x00020F1D,
+ 3466: 0x00008472,
+ 3467: 0x00026CC0,
+ 3468: 0x00021413,
+ 3469: 0x000242FA,
+ 3470: 0x00022C26,
+ 3471: 0x000243C1,
+ 3472: 0x00005994,
+ 3473: 0x00023DB7,
+ 3474: 0x00026741,
+ 3475: 0x00007DA8,
+ 3476: 0x0002615B,
+ 3477: 0x000260A4,
+ 3478: 0x000249B9,
+ 3479: 0x0002498B,
+ 3480: 0x000289FA,
+ 3481: 0x000092E5,
+ 3482: 0x000073E2,
+ 3483: 0x00003EE9,
+ 3484: 0x000074B4,
+ 3485: 0x00028B63,
+ 3486: 0x0002189F,
+ 3487: 0x00003EE1,
+ 3488: 0x00024AB3,
+ 3489: 0x00006AD8,
+ 3490: 0x000073F3,
+ 3491: 0x000073FB,
+ 3492: 0x00003ED6,
+ 3493: 0x00024A3E,
+ 3494: 0x00024A94,
+ 3495: 0x000217D9,
+ 3496: 0x00024A66,
+ 3497: 0x000203A7,
+ 3498: 0x00021424,
+ 3499: 0x000249E5,
+ 3500: 0x00007448,
+ 3501: 0x00024916,
+ 3502: 0x000070A5,
+ 3503: 0x00024976,
+ 3504: 0x00009284,
+ 3505: 0x000073E6,
+ 3506: 0x0000935F,
+ 3507: 0x000204FE,
+ 3508: 0x00009331,
+ 3509: 0x00028ACE,
+ 3510: 0x00028A16,
+ 3511: 0x00009386,
+ 3512: 0x00028BE7,
+ 3513: 0x000255D5,
+ 3514: 0x00004935,
+ 3515: 0x00028A82,
+ 3516: 0x0000716B,
+ 3517: 0x00024943,
+ 3518: 0x00020CFF,
+ 3519: 0x000056A4,
+ 3520: 0x0002061A,
+ 3521: 0x00020BEB,
+ 3522: 0x00020CB8,
+ 3523: 0x00005502,
+ 3524: 0x000079C4,
+ 3525: 0x000217FA,
+ 3526: 0x00007DFE,
+ 3527: 0x000216C2,
+ 3528: 0x00024A50,
+ 3529: 0x00021852,
+ 3530: 0x0000452E,
+ 3531: 0x00009401,
+ 3532: 0x0000370A,
+ 3533: 0x00028AC0,
+ 3534: 0x000249AD,
+ 3535: 0x000059B0,
+ 3536: 0x000218BF,
+ 3537: 0x00021883,
+ 3538: 0x00027484,
+ 3539: 0x00005AA1,
+ 3540: 0x000036E2,
+ 3541: 0x00023D5B,
+ 3542: 0x000036B0,
+ 3543: 0x0000925F,
+ 3544: 0x00005A79,
+ 3545: 0x00028A81,
+ 3546: 0x00021862,
+ 3547: 0x00009374,
+ 3548: 0x00003CCD,
+ 3549: 0x00020AB4,
+ 3550: 0x00004A96,
+ 3551: 0x0000398A,
+ 3552: 0x000050F4,
+ 3553: 0x00003D69,
+ 3554: 0x00003D4C,
+ 3555: 0x0002139C,
+ 3556: 0x00007175,
+ 3557: 0x000042FB,
+ 3558: 0x00028218,
+ 3559: 0x00006E0F,
+ 3560: 0x000290E4,
+ 3561: 0x000044EB,
+ 3562: 0x00006D57,
+ 3563: 0x00027E4F,
+ 3564: 0x00007067,
+ 3565: 0x00006CAF,
+ 3566: 0x00003CD6,
+ 3567: 0x00023FED,
+ 3568: 0x00023E2D,
+ 3569: 0x00006E02,
+ 3570: 0x00006F0C,
+ 3571: 0x00003D6F,
+ 3572: 0x000203F5,
+ 3573: 0x00007551,
+ 3574: 0x000036BC,
+ 3575: 0x000034C8,
+ 3576: 0x00004680,
+ 3577: 0x00003EDA,
+ 3578: 0x00004871,
+ 3579: 0x000059C4,
+ 3580: 0x0000926E,
+ 3581: 0x0000493E,
+ 3582: 0x00008F41,
+ 3583: 0x00028C1C,
+ 3584: 0x00026BC0,
+ 3585: 0x00005812,
+ 3586: 0x000057C8,
+ 3587: 0x000036D6,
+ 3588: 0x00021452,
+ 3589: 0x000070FE,
+ 3590: 0x00024362,
+ 3591: 0x00024A71,
+ 3592: 0x00022FE3,
+ 3593: 0x000212B0,
+ 3594: 0x000223BD,
+ 3595: 0x000068B9,
+ 3596: 0x00006967,
+ 3597: 0x00021398,
+ 3598: 0x000234E5,
+ 3599: 0x00027BF4,
+ 3600: 0x000236DF,
+ 3601: 0x00028A83,
+ 3602: 0x000237D6,
+ 3603: 0x000233FA,
+ 3604: 0x00024C9F,
+ 3605: 0x00006A1A,
+ 3606: 0x000236AD,
+ 3607: 0x00026CB7,
+ 3608: 0x0000843E,
+ 3609: 0x000044DF,
+ 3610: 0x000044CE,
+ 3611: 0x00026D26,
+ 3612: 0x00026D51,
+ 3613: 0x00026C82,
+ 3614: 0x00026FDE,
+ 3615: 0x00006F17,
+ 3616: 0x00027109,
+ 3617: 0x0000833D,
+ 3618: 0x0002173A,
+ 3619: 0x000083ED,
+ 3620: 0x00026C80,
+ 3621: 0x00027053,
+ 3622: 0x000217DB,
+ 3623: 0x00005989,
+ 3624: 0x00005A82,
+ 3625: 0x000217B3,
+ 3626: 0x00005A61,
+ 3627: 0x00005A71,
+ 3628: 0x00021905,
+ 3629: 0x000241FC,
+ 3630: 0x0000372D,
+ 3631: 0x000059EF,
+ 3632: 0x0002173C,
+ 3633: 0x000036C7,
+ 3634: 0x0000718E,
+ 3635: 0x00009390,
+ 3636: 0x0000669A,
+ 3637: 0x000242A5,
+ 3638: 0x00005A6E,
+ 3639: 0x00005A2B,
+ 3640: 0x00024293,
+ 3641: 0x00006A2B,
+ 3642: 0x00023EF9,
+ 3643: 0x00027736,
+ 3644: 0x0002445B,
+ 3645: 0x000242CA,
+ 3646: 0x0000711D,
+ 3647: 0x00024259,
+ 3648: 0x000289E1,
+ 3649: 0x00004FB0,
+ 3650: 0x00026D28,
+ 3651: 0x00005CC2,
+ 3652: 0x000244CE,
+ 3653: 0x00027E4D,
+ 3654: 0x000243BD,
+ 3655: 0x00006A0C,
+ 3656: 0x00024256,
+ 3657: 0x00021304,
+ 3658: 0x000070A6,
+ 3659: 0x00007133,
+ 3660: 0x000243E9,
+ 3661: 0x00003DA5,
+ 3662: 0x00006CDF,
+ 3663: 0x0002F825,
+ 3664: 0x00024A4F,
+ 3665: 0x00007E65,
+ 3666: 0x000059EB,
+ 3667: 0x00005D2F,
+ 3668: 0x00003DF3,
+ 3669: 0x00005F5C,
+ 3670: 0x00024A5D,
+ 3671: 0x000217DF,
+ 3672: 0x00007DA4,
+ 3673: 0x00008426,
+ 3674: 0x00005485,
+ 3675: 0x00023AFA,
+ 3676: 0x00023300,
+ 3677: 0x00020214,
+ 3678: 0x0000577E,
+ 3679: 0x000208D5,
+ 3680: 0x00020619,
+ 3681: 0x00003FE5,
+ 3682: 0x00021F9E,
+ 3683: 0x0002A2B6,
+ 3684: 0x00007003,
+ 3685: 0x0002915B,
+ 3686: 0x00005D70,
+ 3687: 0x0000738F,
+ 3688: 0x00007CD3,
+ 3689: 0x00028A59,
+ 3690: 0x00029420,
+ 3691: 0x00004FC8,
+ 3692: 0x00007FE7,
+ 3693: 0x000072CD,
+ 3694: 0x00007310,
+ 3695: 0x00027AF4,
+ 3696: 0x00007338,
+ 3697: 0x00007339,
+ 3698: 0x000256F6,
+ 3699: 0x00007341,
+ 3700: 0x00007348,
+ 3701: 0x00003EA9,
+ 3702: 0x00027B18,
+ 3703: 0x0000906C,
+ 3704: 0x000071F5,
+ 3705: 0x000248F2,
+ 3706: 0x000073E1,
+ 3707: 0x000081F6,
+ 3708: 0x00003ECA,
+ 3709: 0x0000770C,
+ 3710: 0x00003ED1,
+ 3711: 0x00006CA2,
+ 3712: 0x000056FD,
+ 3713: 0x00007419,
+ 3714: 0x0000741E,
+ 3715: 0x0000741F,
+ 3716: 0x00003EE2,
+ 3717: 0x00003EF0,
+ 3718: 0x00003EF4,
+ 3719: 0x00003EFA,
+ 3720: 0x000074D3,
+ 3721: 0x00003F0E,
+ 3722: 0x00003F53,
+ 3723: 0x00007542,
+ 3724: 0x0000756D,
+ 3725: 0x00007572,
+ 3726: 0x0000758D,
+ 3727: 0x00003F7C,
+ 3728: 0x000075C8,
+ 3729: 0x000075DC,
+ 3730: 0x00003FC0,
+ 3731: 0x0000764D,
+ 3732: 0x00003FD7,
+ 3733: 0x00007674,
+ 3734: 0x00003FDC,
+ 3735: 0x0000767A,
+ 3736: 0x00024F5C,
+ 3737: 0x00007188,
+ 3738: 0x00005623,
+ 3739: 0x00008980,
+ 3740: 0x00005869,
+ 3741: 0x0000401D,
+ 3742: 0x00007743,
+ 3743: 0x00004039,
+ 3744: 0x00006761,
+ 3745: 0x00004045,
+ 3746: 0x000035DB,
+ 3747: 0x00007798,
+ 3748: 0x0000406A,
+ 3749: 0x0000406F,
+ 3750: 0x00005C5E,
+ 3751: 0x000077BE,
+ 3752: 0x000077CB,
+ 3753: 0x000058F2,
+ 3754: 0x00007818,
+ 3755: 0x000070B9,
+ 3756: 0x0000781C,
+ 3757: 0x000040A8,
+ 3758: 0x00007839,
+ 3759: 0x00007847,
+ 3760: 0x00007851,
+ 3761: 0x00007866,
+ 3762: 0x00008448,
+ 3763: 0x00025535,
+ 3764: 0x00007933,
+ 3765: 0x00006803,
+ 3766: 0x00007932,
+ 3767: 0x00004103,
+ 3768: 0x00004109,
+ 3769: 0x00007991,
+ 3770: 0x00007999,
+ 3771: 0x00008FBB,
+ 3772: 0x00007A06,
+ 3773: 0x00008FBC,
+ 3774: 0x00004167,
+ 3775: 0x00007A91,
+ 3776: 0x000041B2,
+ 3777: 0x00007ABC,
+ 3778: 0x00008279,
+ 3779: 0x000041C4,
+ 3780: 0x00007ACF,
+ 3781: 0x00007ADB,
+ 3782: 0x000041CF,
+ 3783: 0x00004E21,
+ 3784: 0x00007B62,
+ 3785: 0x00007B6C,
+ 3786: 0x00007B7B,
+ 3787: 0x00007C12,
+ 3788: 0x00007C1B,
+ 3789: 0x00004260,
+ 3790: 0x0000427A,
+ 3791: 0x00007C7B,
+ 3792: 0x00007C9C,
+ 3793: 0x0000428C,
+ 3794: 0x00007CB8,
+ 3795: 0x00004294,
+ 3796: 0x00007CED,
+ 3797: 0x00008F93,
+ 3798: 0x000070C0,
+ 3799: 0x00020CCF,
+ 3800: 0x00007DCF,
+ 3801: 0x00007DD4,
+ 3802: 0x00007DD0,
+ 3803: 0x00007DFD,
+ 3804: 0x00007FAE,
+ 3805: 0x00007FB4,
+ 3806: 0x0000729F,
+ 3807: 0x00004397,
+ 3808: 0x00008020,
+ 3809: 0x00008025,
+ 3810: 0x00007B39,
+ 3811: 0x0000802E,
+ 3812: 0x00008031,
+ 3813: 0x00008054,
+ 3814: 0x00003DCC,
+ 3815: 0x000057B4,
+ 3816: 0x000070A0,
+ 3817: 0x000080B7,
+ 3818: 0x000080E9,
+ 3819: 0x000043ED,
+ 3820: 0x0000810C,
+ 3821: 0x0000732A,
+ 3822: 0x0000810E,
+ 3823: 0x00008112,
+ 3824: 0x00007560,
+ 3825: 0x00008114,
+ 3826: 0x00004401,
+ 3827: 0x00003B39,
+ 3828: 0x00008156,
+ 3829: 0x00008159,
+ 3830: 0x0000815A,
+ 3831: 0x00004413,
+ 3832: 0x0000583A,
+ 3833: 0x0000817C,
+ 3834: 0x00008184,
+ 3835: 0x00004425,
+ 3836: 0x00008193,
+ 3837: 0x0000442D,
+ 3838: 0x000081A5,
+ 3839: 0x000057EF,
+ 3840: 0x000081C1,
+ 3841: 0x000081E4,
+ 3842: 0x00008254,
+ 3843: 0x0000448F,
+ 3844: 0x000082A6,
+ 3845: 0x00008276,
+ 3846: 0x000082CA,
+ 3847: 0x000082D8,
+ 3848: 0x000082FF,
+ 3849: 0x000044B0,
+ 3850: 0x00008357,
+ 3851: 0x00009669,
+ 3852: 0x0000698A,
+ 3853: 0x00008405,
+ 3854: 0x000070F5,
+ 3855: 0x00008464,
+ 3856: 0x000060E3,
+ 3857: 0x00008488,
+ 3858: 0x00004504,
+ 3859: 0x000084BE,
+ 3860: 0x000084E1,
+ 3861: 0x000084F8,
+ 3862: 0x00008510,
+ 3863: 0x00008538,
+ 3864: 0x00008552,
+ 3865: 0x0000453B,
+ 3866: 0x0000856F,
+ 3867: 0x00008570,
+ 3868: 0x000085E0,
+ 3869: 0x00004577,
+ 3870: 0x00008672,
+ 3871: 0x00008692,
+ 3872: 0x000086B2,
+ 3873: 0x000086EF,
+ 3874: 0x00009645,
+ 3875: 0x0000878B,
+ 3876: 0x00004606,
+ 3877: 0x00004617,
+ 3878: 0x000088AE,
+ 3879: 0x000088FF,
+ 3880: 0x00008924,
+ 3881: 0x00008947,
+ 3882: 0x00008991,
+ 3883: 0x00027967,
+ 3884: 0x00008A29,
+ 3885: 0x00008A38,
+ 3886: 0x00008A94,
+ 3887: 0x00008AB4,
+ 3888: 0x00008C51,
+ 3889: 0x00008CD4,
+ 3890: 0x00008CF2,
+ 3891: 0x00008D1C,
+ 3892: 0x00004798,
+ 3893: 0x0000585F,
+ 3894: 0x00008DC3,
+ 3895: 0x000047ED,
+ 3896: 0x00004EEE,
+ 3897: 0x00008E3A,
+ 3898: 0x000055D8,
+ 3899: 0x00005754,
+ 3900: 0x00008E71,
+ 3901: 0x000055F5,
+ 3902: 0x00008EB0,
+ 3903: 0x00004837,
+ 3904: 0x00008ECE,
+ 3905: 0x00008EE2,
+ 3906: 0x00008EE4,
+ 3907: 0x00008EED,
+ 3908: 0x00008EF2,
+ 3909: 0x00008FB7,
+ 3910: 0x00008FC1,
+ 3911: 0x00008FCA,
+ 3912: 0x00008FCC,
+ 3913: 0x00009033,
+ 3914: 0x000099C4,
+ 3915: 0x000048AD,
+ 3916: 0x000098E0,
+ 3917: 0x00009213,
+ 3918: 0x0000491E,
+ 3919: 0x00009228,
+ 3920: 0x00009258,
+ 3921: 0x0000926B,
+ 3922: 0x000092B1,
+ 3923: 0x000092AE,
+ 3924: 0x000092BF,
+ 3925: 0x000092E3,
+ 3926: 0x000092EB,
+ 3927: 0x000092F3,
+ 3928: 0x000092F4,
+ 3929: 0x000092FD,
+ 3930: 0x00009343,
+ 3931: 0x00009384,
+ 3932: 0x000093AD,
+ 3933: 0x00004945,
+ 3934: 0x00004951,
+ 3935: 0x00009EBF,
+ 3936: 0x00009417,
+ 3937: 0x00005301,
+ 3938: 0x0000941D,
+ 3939: 0x0000942D,
+ 3940: 0x0000943E,
+ 3941: 0x0000496A,
+ 3942: 0x00009454,
+ 3943: 0x00009479,
+ 3944: 0x0000952D,
+ 3945: 0x000095A2,
+ 3946: 0x000049A7,
+ 3947: 0x000095F4,
+ 3948: 0x00009633,
+ 3949: 0x000049E5,
+ 3950: 0x000067A0,
+ 3951: 0x00004A24,
+ 3952: 0x00009740,
+ 3953: 0x00004A35,
+ 3954: 0x000097B2,
+ 3955: 0x000097C2,
+ 3956: 0x00005654,
+ 3957: 0x00004AE4,
+ 3958: 0x000060E8,
+ 3959: 0x000098B9,
+ 3960: 0x00004B19,
+ 3961: 0x000098F1,
+ 3962: 0x00005844,
+ 3963: 0x0000990E,
+ 3964: 0x00009919,
+ 3965: 0x000051B4,
+ 3966: 0x0000991C,
+ 3967: 0x00009937,
+ 3968: 0x00009942,
+ 3969: 0x0000995D,
+ 3970: 0x00009962,
+ 3971: 0x00004B70,
+ 3972: 0x000099C5,
+ 3973: 0x00004B9D,
+ 3974: 0x00009A3C,
+ 3975: 0x00009B0F,
+ 3976: 0x00007A83,
+ 3977: 0x00009B69,
+ 3978: 0x00009B81,
+ 3979: 0x00009BDD,
+ 3980: 0x00009BF1,
+ 3981: 0x00009BF4,
+ 3982: 0x00004C6D,
+ 3983: 0x00009C20,
+ 3984: 0x0000376F,
+ 3985: 0x00021BC2,
+ 3986: 0x00009D49,
+ 3987: 0x00009C3A,
+ 3988: 0x00009EFE,
+ 3989: 0x00005650,
+ 3990: 0x00009D93,
+ 3991: 0x00009DBD,
+ 3992: 0x00009DC0,
+ 3993: 0x00009DFC,
+ 3994: 0x000094F6,
+ 3995: 0x00008FB6,
+ 3996: 0x00009E7B,
+ 3997: 0x00009EAC,
+ 3998: 0x00009EB1,
+ 3999: 0x00009EBD,
+ 4000: 0x00009EC6,
+ 4001: 0x000094DC,
+ 4002: 0x00009EE2,
+ 4003: 0x00009EF1,
+ 4004: 0x00009EF8,
+ 4005: 0x00007AC8,
+ 4006: 0x00009F44,
+ 4007: 0x00020094,
+ 4008: 0x000202B7,
+ 4009: 0x000203A0,
+ 4010: 0x0000691A,
+ 4011: 0x000094C3,
+ 4012: 0x000059AC,
+ 4013: 0x000204D7,
+ 4014: 0x00005840,
+ 4015: 0x000094C1,
+ 4016: 0x000037B9,
+ 4017: 0x000205D5,
+ 4018: 0x00020615,
+ 4019: 0x00020676,
+ 4020: 0x000216BA,
+ 4021: 0x00005757,
+ 4022: 0x00007173,
+ 4023: 0x00020AC2,
+ 4024: 0x00020ACD,
+ 4025: 0x00020BBF,
+ 4026: 0x0000546A,
+ 4027: 0x0002F83B,
+ 4028: 0x00020BCB,
+ 4029: 0x0000549E,
+ 4030: 0x00020BFB,
+ 4031: 0x00020C3B,
+ 4032: 0x00020C53,
+ 4033: 0x00020C65,
+ 4034: 0x00020C7C,
+ 4035: 0x000060E7,
+ 4036: 0x00020C8D,
+ 4037: 0x0000567A,
+ 4038: 0x00020CB5,
+ 4039: 0x00020CDD,
+ 4040: 0x00020CED,
+ 4041: 0x00020D6F,
+ 4042: 0x00020DB2,
+ 4043: 0x00020DC8,
+ 4044: 0x00006955,
+ 4045: 0x00009C2F,
+ 4046: 0x000087A5,
+ 4047: 0x00020E04,
+ 4048: 0x00020E0E,
+ 4049: 0x00020ED7,
+ 4050: 0x00020F90,
+ 4051: 0x00020F2D,
+ 4052: 0x00020E73,
+ 4053: 0x00005C20,
+ 4054: 0x00020FBC,
+ 4055: 0x00005E0B,
+ 4056: 0x0002105C,
+ 4057: 0x0002104F,
+ 4058: 0x00021076,
+ 4059: 0x0000671E,
+ 4060: 0x0002107B,
+ 4061: 0x00021088,
+ 4062: 0x00021096,
+ 4063: 0x00003647,
+ 4064: 0x000210BF,
+ 4065: 0x000210D3,
+ 4066: 0x0002112F,
+ 4067: 0x0002113B,
+ 4068: 0x00005364,
+ 4069: 0x000084AD,
+ 4070: 0x000212E3,
+ 4071: 0x00021375,
+ 4072: 0x00021336,
+ 4073: 0x00008B81,
+ 4074: 0x00021577,
+ 4075: 0x00021619,
+ 4076: 0x000217C3,
+ 4077: 0x000217C7,
+ 4078: 0x00004E78,
+ 4079: 0x000070BB,
+ 4080: 0x0002182D,
+ 4081: 0x0002196A,
+ 4082: 0x00021A2D,
+ 4083: 0x00021A45,
+ 4084: 0x00021C2A,
+ 4085: 0x00021C70,
+ 4086: 0x00021CAC,
+ 4087: 0x00021EC8,
+ 4088: 0x000062C3,
+ 4089: 0x00021ED5,
+ 4090: 0x00021F15,
+ 4091: 0x00007198,
+ 4092: 0x00006855,
+ 4093: 0x00022045,
+ 4094: 0x000069E9,
+ 4095: 0x000036C8,
+ 4096: 0x0002227C,
+ 4097: 0x000223D7,
+ 4098: 0x000223FA,
+ 4099: 0x0002272A,
+ 4100: 0x00022871,
+ 4101: 0x0002294F,
+ 4102: 0x000082FD,
+ 4103: 0x00022967,
+ 4104: 0x00022993,
+ 4105: 0x00022AD5,
+ 4106: 0x000089A5,
+ 4107: 0x00022AE8,
+ 4108: 0x00008FA0,
+ 4109: 0x00022B0E,
+ 4110: 0x000097B8,
+ 4111: 0x00022B3F,
+ 4112: 0x00009847,
+ 4113: 0x00009ABD,
+ 4114: 0x00022C4C,
+ 4116: 0x00022C88,
+ 4117: 0x00022CB7,
+ 4118: 0x00025BE8,
+ 4119: 0x00022D08,
+ 4120: 0x00022D12,
+ 4121: 0x00022DB7,
+ 4122: 0x00022D95,
+ 4123: 0x00022E42,
+ 4124: 0x00022F74,
+ 4125: 0x00022FCC,
+ 4126: 0x00023033,
+ 4127: 0x00023066,
+ 4128: 0x0002331F,
+ 4129: 0x000233DE,
+ 4130: 0x00005FB1,
+ 4131: 0x00006648,
+ 4132: 0x000066BF,
+ 4133: 0x00027A79,
+ 4134: 0x00023567,
+ 4135: 0x000235F3,
+ 4136: 0x00007201,
+ 4137: 0x000249BA,
+ 4138: 0x000077D7,
+ 4139: 0x0002361A,
+ 4140: 0x00023716,
+ 4141: 0x00007E87,
+ 4142: 0x00020346,
+ 4143: 0x000058B5,
+ 4144: 0x0000670E,
+ 4145: 0x00006918,
+ 4146: 0x00023AA7,
+ 4147: 0x00027657,
+ 4148: 0x00025FE2,
+ 4149: 0x00023E11,
+ 4150: 0x00023EB9,
+ 4151: 0x000275FE,
+ 4152: 0x0002209A,
+ 4153: 0x000048D0,
+ 4154: 0x00004AB8,
+ 4155: 0x00024119,
+ 4156: 0x00028A9A,
+ 4157: 0x000242EE,
+ 4158: 0x0002430D,
+ 4159: 0x0002403B,
+ 4160: 0x00024334,
+ 4161: 0x00024396,
+ 4162: 0x00024A45,
+ 4163: 0x000205CA,
+ 4164: 0x000051D2,
+ 4165: 0x00020611,
+ 4166: 0x0000599F,
+ 4167: 0x00021EA8,
+ 4168: 0x00003BBE,
+ 4169: 0x00023CFF,
+ 4170: 0x00024404,
+ 4171: 0x000244D6,
+ 4172: 0x00005788,
+ 4173: 0x00024674,
+ 4174: 0x0000399B,
+ 4175: 0x0002472F,
+ 4176: 0x000285E8,
+ 4177: 0x000299C9,
+ 4178: 0x00003762,
+ 4179: 0x000221C3,
+ 4180: 0x00008B5E,
+ 4181: 0x00028B4E,
+ 4182: 0x000099D6,
+ 4183: 0x00024812,
+ 4184: 0x000248FB,
+ 4185: 0x00024A15,
+ 4186: 0x00007209,
+ 4187: 0x00024AC0,
+ 4188: 0x00020C78,
+ 4189: 0x00005965,
+ 4190: 0x00024EA5,
+ 4191: 0x00024F86,
+ 4192: 0x00020779,
+ 4193: 0x00008EDA,
+ 4194: 0x0002502C,
+ 4195: 0x0000528F,
+ 4196: 0x0000573F,
+ 4197: 0x00007171,
+ 4198: 0x00025299,
+ 4199: 0x00025419,
+ 4200: 0x00023F4A,
+ 4201: 0x00024AA7,
+ 4202: 0x000055BC,
+ 4203: 0x00025446,
+ 4204: 0x0002546E,
+ 4205: 0x00026B52,
+ 4206: 0x000091D4,
+ 4207: 0x00003473,
+ 4208: 0x0002553F,
+ 4209: 0x00027632,
+ 4210: 0x0002555E,
+ 4211: 0x00004718,
+ 4212: 0x00025562,
+ 4213: 0x00025566,
+ 4214: 0x000257C7,
+ 4215: 0x0002493F,
+ 4216: 0x0002585D,
+ 4217: 0x00005066,
+ 4218: 0x000034FB,
+ 4219: 0x000233CC,
+ 4220: 0x000060DE,
+ 4221: 0x00025903,
+ 4222: 0x0000477C,
+ 4223: 0x00028948,
+ 4224: 0x00025AAE,
+ 4225: 0x00025B89,
+ 4226: 0x00025C06,
+ 4227: 0x00021D90,
+ 4228: 0x000057A1,
+ 4229: 0x00007151,
+ 4230: 0x00006FB6,
+ 4231: 0x00026102,
+ 4232: 0x00027C12,
+ 4233: 0x00009056,
+ 4234: 0x000261B2,
+ 4235: 0x00024F9A,
+ 4236: 0x00008B62,
+ 4237: 0x00026402,
+ 4238: 0x0002644A,
+ 4239: 0x00005D5B,
+ 4240: 0x00026BF7,
+ 4241: 0x00008F36,
+ 4242: 0x00026484,
+ 4243: 0x0002191C,
+ 4244: 0x00008AEA,
+ 4245: 0x000249F6,
+ 4246: 0x00026488,
+ 4247: 0x00023FEF,
+ 4248: 0x00026512,
+ 4249: 0x00004BC0,
+ 4250: 0x000265BF,
+ 4251: 0x000266B5,
+ 4252: 0x0002271B,
+ 4253: 0x00009465,
+ 4254: 0x000257E1,
+ 4255: 0x00006195,
+ 4256: 0x00005A27,
+ 4257: 0x0002F8CD,
+ 4258: 0x00004FBB,
+ 4259: 0x000056B9,
+ 4260: 0x00024521,
+ 4261: 0x000266FC,
+ 4262: 0x00004E6A,
+ 4263: 0x00024934,
+ 4264: 0x00009656,
+ 4265: 0x00006D8F,
+ 4266: 0x00026CBD,
+ 4267: 0x00003618,
+ 4268: 0x00008977,
+ 4269: 0x00026799,
+ 4270: 0x0002686E,
+ 4271: 0x00026411,
+ 4272: 0x0002685E,
+ 4273: 0x000071DF,
+ 4274: 0x000268C7,
+ 4275: 0x00007B42,
+ 4276: 0x000290C0,
+ 4277: 0x00020A11,
+ 4278: 0x00026926,
+ 4279: 0x00009104,
+ 4280: 0x00026939,
+ 4281: 0x00007A45,
+ 4282: 0x00009DF0,
+ 4283: 0x000269FA,
+ 4284: 0x00009A26,
+ 4285: 0x00026A2D,
+ 4286: 0x0000365F,
+ 4287: 0x00026469,
+ 4288: 0x00020021,
+ 4289: 0x00007983,
+ 4290: 0x00026A34,
+ 4291: 0x00026B5B,
+ 4292: 0x00005D2C,
+ 4293: 0x00023519,
+ 4294: 0x000083CF,
+ 4295: 0x00026B9D,
+ 4296: 0x000046D0,
+ 4297: 0x00026CA4,
+ 4298: 0x0000753B,
+ 4299: 0x00008865,
+ 4300: 0x00026DAE,
+ 4301: 0x000058B6,
+ 4302: 0x0000371C,
+ 4303: 0x0002258D,
+ 4304: 0x0002704B,
+ 4305: 0x000271CD,
+ 4306: 0x00003C54,
+ 4307: 0x00027280,
+ 4308: 0x00027285,
+ 4309: 0x00009281,
+ 4310: 0x0002217A,
+ 4311: 0x0002728B,
+ 4312: 0x00009330,
+ 4313: 0x000272E6,
+ 4314: 0x000249D0,
+ 4315: 0x00006C39,
+ 4316: 0x0000949F,
+ 4317: 0x00027450,
+ 4318: 0x00020EF8,
+ 4319: 0x00008827,
+ 4320: 0x000088F5,
+ 4321: 0x00022926,
+ 4322: 0x00028473,
+ 4323: 0x000217B1,
+ 4324: 0x00006EB8,
+ 4325: 0x00024A2A,
+ 4326: 0x00021820,
+ 4327: 0x000039A4,
+ 4328: 0x000036B9,
+ 4329: 0x00005C10,
+ 4330: 0x000079E3,
+ 4331: 0x0000453F,
+ 4332: 0x000066B6,
+ 4333: 0x00029CAD,
+ 4334: 0x000298A4,
+ 4335: 0x00008943,
+ 4336: 0x000277CC,
+ 4337: 0x00027858,
+ 4338: 0x000056D6,
+ 4339: 0x000040DF,
+ 4340: 0x0002160A,
+ 4341: 0x000039A1,
+ 4342: 0x0002372F,
+ 4343: 0x000280E8,
+ 4344: 0x000213C5,
+ 4345: 0x000071AD,
+ 4346: 0x00008366,
+ 4347: 0x000279DD,
+ 4348: 0x000291A8,
+ 4349: 0x00005A67,
+ 4350: 0x00004CB7,
+ 4351: 0x000270AF,
+ 4352: 0x000289AB,
+ 4353: 0x000279FD,
+ 4354: 0x00027A0A,
+ 4355: 0x00027B0B,
+ 4356: 0x00027D66,
+ 4357: 0x0002417A,
+ 4358: 0x00007B43,
+ 4359: 0x0000797E,
+ 4360: 0x00028009,
+ 4361: 0x00006FB5,
+ 4362: 0x0002A2DF,
+ 4363: 0x00006A03,
+ 4364: 0x00028318,
+ 4365: 0x000053A2,
+ 4366: 0x00026E07,
+ 4367: 0x000093BF,
+ 4368: 0x00006836,
+ 4369: 0x0000975D,
+ 4370: 0x0002816F,
+ 4371: 0x00028023,
+ 4372: 0x000269B5,
+ 4373: 0x000213ED,
+ 4374: 0x0002322F,
+ 4375: 0x00028048,
+ 4376: 0x00005D85,
+ 4377: 0x00028C30,
+ 4378: 0x00028083,
+ 4379: 0x00005715,
+ 4380: 0x00009823,
+ 4381: 0x00028949,
+ 4382: 0x00005DAB,
+ 4383: 0x00024988,
+ 4384: 0x000065BE,
+ 4385: 0x000069D5,
+ 4386: 0x000053D2,
+ 4387: 0x00024AA5,
+ 4388: 0x00023F81,
+ 4389: 0x00003C11,
+ 4390: 0x00006736,
+ 4391: 0x00028090,
+ 4392: 0x000280F4,
+ 4393: 0x0002812E,
+ 4394: 0x00021FA1,
+ 4395: 0x0002814F,
+ 4396: 0x00028189,
+ 4397: 0x000281AF,
+ 4398: 0x0002821A,
+ 4399: 0x00028306,
+ 4400: 0x0002832F,
+ 4401: 0x0002838A,
+ 4402: 0x000035CA,
+ 4403: 0x00028468,
+ 4404: 0x000286AA,
+ 4405: 0x000048FA,
+ 4406: 0x000063E6,
+ 4407: 0x00028956,
+ 4408: 0x00007808,
+ 4409: 0x00009255,
+ 4410: 0x000289B8,
+ 4411: 0x000043F2,
+ 4412: 0x000289E7,
+ 4413: 0x000043DF,
+ 4414: 0x000289E8,
+ 4415: 0x00028B46,
+ 4416: 0x00028BD4,
+ 4417: 0x000059F8,
+ 4418: 0x00028C09,
+ 4419: 0x00008F0B,
+ 4420: 0x00028FC5,
+ 4421: 0x000290EC,
+ 4422: 0x00007B51,
+ 4423: 0x00029110,
+ 4424: 0x0002913C,
+ 4425: 0x00003DF7,
+ 4426: 0x0002915E,
+ 4427: 0x00024ACA,
+ 4428: 0x00008FD0,
+ 4429: 0x0000728F,
+ 4430: 0x0000568B,
+ 4431: 0x000294E7,
+ 4432: 0x000295E9,
+ 4433: 0x000295B0,
+ 4434: 0x000295B8,
+ 4435: 0x00029732,
+ 4436: 0x000298D1,
+ 4437: 0x00029949,
+ 4438: 0x0002996A,
+ 4439: 0x000299C3,
+ 4440: 0x00029A28,
+ 4441: 0x00029B0E,
+ 4442: 0x00029D5A,
+ 4443: 0x00029D9B,
+ 4444: 0x00007E9F,
+ 4445: 0x00029EF8,
+ 4446: 0x00029F23,
+ 4447: 0x00004CA4,
+ 4448: 0x00009547,
+ 4449: 0x0002A293,
+ 4450: 0x000071A2,
+ 4451: 0x0002A2FF,
+ 4452: 0x00004D91,
+ 4453: 0x00009012,
+ 4454: 0x0002A5CB,
+ 4455: 0x00004D9C,
+ 4456: 0x00020C9C,
+ 4457: 0x00008FBE,
+ 4458: 0x000055C1,
+ 4459: 0x00008FBA,
+ 4460: 0x000224B0,
+ 4461: 0x00008FB9,
+ 4462: 0x00024A93,
+ 4463: 0x00004509,
+ 4464: 0x00007E7F,
+ 4465: 0x00006F56,
+ 4466: 0x00006AB1,
+ 4467: 0x00004EEA,
+ 4468: 0x000034E4,
+ 4469: 0x00028B2C,
+ 4470: 0x0002789D,
+ 4471: 0x0000373A,
+ 4472: 0x00008E80,
+ 4473: 0x000217F5,
+ 4474: 0x00028024,
+ 4475: 0x00028B6C,
+ 4476: 0x00028B99,
+ 4477: 0x00027A3E,
+ 4478: 0x000266AF,
+ 4479: 0x00003DEB,
+ 4480: 0x00027655,
+ 4481: 0x00023CB7,
+ 4482: 0x00025635,
+ 4483: 0x00025956,
+ 4484: 0x00004E9A,
+ 4485: 0x00025E81,
+ 4486: 0x00026258,
+ 4487: 0x000056BF,
+ 4488: 0x00020E6D,
+ 4489: 0x00008E0E,
+ 4490: 0x00005B6D,
+ 4491: 0x00023E88,
+ 4492: 0x00024C9E,
+ 4493: 0x000063DE,
+ 4494: 0x000062D0,
+ 4495: 0x000217F6,
+ 4496: 0x0002187B,
+ 4497: 0x00006530,
+ 4498: 0x0000562D,
+ 4499: 0x00025C4A,
+ 4500: 0x0000541A,
+ 4501: 0x00025311,
+ 4502: 0x00003DC6,
+ 4503: 0x00029D98,
+ 4504: 0x00004C7D,
+ 4505: 0x00005622,
+ 4506: 0x0000561E,
+ 4507: 0x00007F49,
+ 4508: 0x00025ED8,
+ 4509: 0x00005975,
+ 4510: 0x00023D40,
+ 4511: 0x00008770,
+ 4512: 0x00004E1C,
+ 4513: 0x00020FEA,
+ 4514: 0x00020D49,
+ 4515: 0x000236BA,
+ 4516: 0x00008117,
+ 4517: 0x00009D5E,
+ 4518: 0x00008D18,
+ 4519: 0x0000763B,
+ 4520: 0x00009C45,
+ 4521: 0x0000764E,
+ 4522: 0x000077B9,
+ 4523: 0x00009345,
+ 4524: 0x00005432,
+ 4525: 0x00008148,
+ 4526: 0x000082F7,
+ 4527: 0x00005625,
+ 4528: 0x00008132,
+ 4529: 0x00008418,
+ 4530: 0x000080BD,
+ 4531: 0x000055EA,
+ 4532: 0x00007962,
+ 4533: 0x00005643,
+ 4534: 0x00005416,
+ 4535: 0x00020E9D,
+ 4536: 0x000035CE,
+ 4537: 0x00005605,
+ 4538: 0x000055F1,
+ 4539: 0x000066F1,
+ 4540: 0x000282E2,
+ 4541: 0x0000362D,
+ 4542: 0x00007534,
+ 4543: 0x000055F0,
+ 4544: 0x000055BA,
+ 4545: 0x00005497,
+ 4546: 0x00005572,
+ 4547: 0x00020C41,
+ 4548: 0x00020C96,
+ 4549: 0x00005ED0,
+ 4550: 0x00025148,
+ 4551: 0x00020E76,
+ 4552: 0x00022C62,
+ 4553: 0x00020EA2,
+ 4554: 0x00009EAB,
+ 4555: 0x00007D5A,
+ 4556: 0x000055DE,
+ 4557: 0x00021075,
+ 4558: 0x0000629D,
+ 4559: 0x0000976D,
+ 4560: 0x00005494,
+ 4561: 0x00008CCD,
+ 4562: 0x000071F6,
+ 4563: 0x00009176,
+ 4564: 0x000063FC,
+ 4565: 0x000063B9,
+ 4566: 0x000063FE,
+ 4567: 0x00005569,
+ 4568: 0x00022B43,
+ 4569: 0x00009C72,
+ 4570: 0x00022EB3,
+ 4571: 0x0000519A,
+ 4572: 0x000034DF,
+ 4573: 0x00020DA7,
+ 4574: 0x000051A7,
+ 4575: 0x0000544D,
+ 4576: 0x0000551E,
+ 4577: 0x00005513,
+ 4578: 0x00007666,
+ 4579: 0x00008E2D,
+ 4580: 0x0002688A,
+ 4581: 0x000075B1,
+ 4582: 0x000080B6,
+ 4583: 0x00008804,
+ 4584: 0x00008786,
+ 4585: 0x000088C7,
+ 4586: 0x000081B6,
+ 4587: 0x0000841C,
+ 4588: 0x000210C1,
+ 4589: 0x000044EC,
+ 4590: 0x00007304,
+ 4591: 0x00024706,
+ 4592: 0x00005B90,
+ 4593: 0x0000830B,
+ 4594: 0x00026893,
+ 4595: 0x0000567B,
+ 4596: 0x000226F4,
+ 4597: 0x00027D2F,
+ 4598: 0x000241A3,
+ 4599: 0x00027D73,
+ 4600: 0x00026ED0,
+ 4601: 0x000272B6,
+ 4602: 0x00009170,
+ 4603: 0x000211D9,
+ 4604: 0x00009208,
+ 4605: 0x00023CFC,
+ 4606: 0x0002A6A9,
+ 4607: 0x00020EAC,
+ 4608: 0x00020EF9,
+ 4609: 0x00007266,
+ 4610: 0x00021CA2,
+ 4611: 0x0000474E,
+ 4612: 0x00024FC2,
+ 4613: 0x00027FF9,
+ 4614: 0x00020FEB,
+ 4615: 0x000040FA,
+ 4616: 0x00009C5D,
+ 4617: 0x0000651F,
+ 4618: 0x00022DA0,
+ 4619: 0x000048F3,
+ 4620: 0x000247E0,
+ 4621: 0x00029D7C,
+ 4622: 0x00020FEC,
+ 4623: 0x00020E0A,
+ 4624: 0x00006062,
+ 4625: 0x000275A3,
+ 4626: 0x00020FED,
+ 4628: 0x00026048,
+ 4629: 0x00021187,
+ 4630: 0x000071A3,
+ 4631: 0x00007E8E,
+ 4632: 0x00009D50,
+ 4633: 0x00004E1A,
+ 4634: 0x00004E04,
+ 4635: 0x00003577,
+ 4636: 0x00005B0D,
+ 4637: 0x00006CB2,
+ 4638: 0x00005367,
+ 4639: 0x000036AC,
+ 4640: 0x000039DC,
+ 4641: 0x0000537D,
+ 4642: 0x000036A5,
+ 4643: 0x00024618,
+ 4644: 0x0000589A,
+ 4645: 0x00024B6E,
+ 4646: 0x0000822D,
+ 4647: 0x0000544B,
+ 4648: 0x000057AA,
+ 4649: 0x00025A95,
+ 4650: 0x00020979,
+ 4652: 0x00003A52,
+ 4653: 0x00022465,
+ 4654: 0x00007374,
+ 4655: 0x00029EAC,
+ 4656: 0x00004D09,
+ 4657: 0x00009BED,
+ 4658: 0x00023CFE,
+ 4659: 0x00029F30,
+ 4660: 0x00004C5B,
+ 4661: 0x00024FA9,
+ 4662: 0x0002959E,
+ 4663: 0x00029FDE,
+ 4664: 0x0000845C,
+ 4665: 0x00023DB6,
+ 4666: 0x000272B2,
+ 4667: 0x000267B3,
+ 4668: 0x00023720,
+ 4669: 0x0000632E,
+ 4670: 0x00007D25,
+ 4671: 0x00023EF7,
+ 4672: 0x00023E2C,
+ 4673: 0x00003A2A,
+ 4674: 0x00009008,
+ 4675: 0x000052CC,
+ 4676: 0x00003E74,
+ 4677: 0x0000367A,
+ 4678: 0x000045E9,
+ 4679: 0x0002048E,
+ 4680: 0x00007640,
+ 4681: 0x00005AF0,
+ 4682: 0x00020EB6,
+ 4683: 0x0000787A,
+ 4684: 0x00027F2E,
+ 4685: 0x000058A7,
+ 4686: 0x000040BF,
+ 4687: 0x0000567C,
+ 4688: 0x00009B8B,
+ 4689: 0x00005D74,
+ 4690: 0x00007654,
+ 4691: 0x0002A434,
+ 4692: 0x00009E85,
+ 4693: 0x00004CE1,
+ 4694: 0x000075F9,
+ 4695: 0x000037FB,
+ 4696: 0x00006119,
+ 4697: 0x000230DA,
+ 4698: 0x000243F2,
+ 4700: 0x0000565D,
+ 4701: 0x000212A9,
+ 4702: 0x000057A7,
+ 4703: 0x00024963,
+ 4704: 0x00029E06,
+ 4705: 0x00005234,
+ 4706: 0x000270AE,
+ 4707: 0x000035AD,
+ 4708: 0x00006C4A,
+ 4709: 0x00009D7C,
+ 4710: 0x00007C56,
+ 4711: 0x00009B39,
+ 4712: 0x000057DE,
+ 4713: 0x0002176C,
+ 4714: 0x00005C53,
+ 4715: 0x000064D3,
+ 4716: 0x000294D0,
+ 4717: 0x00026335,
+ 4718: 0x00027164,
+ 4719: 0x000086AD,
+ 4720: 0x00020D28,
+ 4721: 0x00026D22,
+ 4722: 0x00024AE2,
+ 4723: 0x00020D71,
+ 4725: 0x000051FE,
+ 4726: 0x00021F0F,
+ 4727: 0x00005D8E,
+ 4728: 0x00009703,
+ 4729: 0x00021DD1,
+ 4730: 0x00009E81,
+ 4731: 0x0000904C,
+ 4732: 0x00007B1F,
+ 4733: 0x00009B02,
+ 4734: 0x00005CD1,
+ 4735: 0x00007BA3,
+ 4736: 0x00006268,
+ 4737: 0x00006335,
+ 4738: 0x00009AFF,
+ 4739: 0x00007BCF,
+ 4740: 0x00009B2A,
+ 4741: 0x00007C7E,
+ 4742: 0x00009B2E,
+ 4743: 0x00007C42,
+ 4744: 0x00007C86,
+ 4745: 0x00009C15,
+ 4746: 0x00007BFC,
+ 4747: 0x00009B09,
+ 4748: 0x00009F17,
+ 4749: 0x00009C1B,
+ 4750: 0x0002493E,
+ 4751: 0x00009F5A,
+ 4752: 0x00005573,
+ 4753: 0x00005BC3,
+ 4754: 0x00004FFD,
+ 4755: 0x00009E98,
+ 4756: 0x00004FF2,
+ 4757: 0x00005260,
+ 4758: 0x00003E06,
+ 4759: 0x000052D1,
+ 4760: 0x00005767,
+ 4761: 0x00005056,
+ 4762: 0x000059B7,
+ 4763: 0x00005E12,
+ 4764: 0x000097C8,
+ 4765: 0x00009DAB,
+ 4766: 0x00008F5C,
+ 4767: 0x00005469,
+ 4768: 0x000097B4,
+ 4769: 0x00009940,
+ 4770: 0x000097BA,
+ 4771: 0x0000532C,
+ 4772: 0x00006130,
+ 4773: 0x0000692C,
+ 4774: 0x000053DA,
+ 4775: 0x00009C0A,
+ 4776: 0x00009D02,
+ 4777: 0x00004C3B,
+ 4778: 0x00009641,
+ 4779: 0x00006980,
+ 4780: 0x000050A6,
+ 4781: 0x00007546,
+ 4782: 0x0002176D,
+ 4783: 0x000099DA,
+ 4784: 0x00005273,
+ 4786: 0x00009159,
+ 4787: 0x00009681,
+ 4788: 0x0000915C,
+ 4790: 0x00009151,
+ 4791: 0x00028E97,
+ 4792: 0x0000637F,
+ 4793: 0x00026D23,
+ 4794: 0x00006ACA,
+ 4795: 0x00005611,
+ 4796: 0x0000918E,
+ 4797: 0x0000757A,
+ 4798: 0x00006285,
+ 4799: 0x000203FC,
+ 4800: 0x0000734F,
+ 4801: 0x00007C70,
+ 4802: 0x00025C21,
+ 4803: 0x00023CFD,
+ 4805: 0x00024919,
+ 4806: 0x000076D6,
+ 4807: 0x00009B9D,
+ 4808: 0x00004E2A,
+ 4809: 0x00020CD4,
+ 4810: 0x000083BE,
+ 4811: 0x00008842,
+ 4813: 0x00005C4A,
+ 4814: 0x000069C0,
+ 4815: 0x000050ED,
+ 4816: 0x0000577A,
+ 4817: 0x0000521F,
+ 4818: 0x00005DF5,
+ 4819: 0x00004ECE,
+ 4820: 0x00006C31,
+ 4821: 0x000201F2,
+ 4822: 0x00004F39,
+ 4823: 0x0000549C,
+ 4824: 0x000054DA,
+ 4825: 0x0000529A,
+ 4826: 0x00008D82,
+ 4827: 0x000035FE,
+ 4828: 0x00005F0C,
+ 4829: 0x000035F3,
+ 4831: 0x00006B52,
+ 4832: 0x0000917C,
+ 4833: 0x00009FA5,
+ 4834: 0x00009B97,
+ 4835: 0x0000982E,
+ 4836: 0x000098B4,
+ 4837: 0x00009ABA,
+ 4838: 0x00009EA8,
+ 4839: 0x00009E84,
+ 4840: 0x0000717A,
+ 4841: 0x00007B14,
+ 4843: 0x00006BFA,
+ 4844: 0x00008818,
+ 4845: 0x00007F78,
+ 4847: 0x00005620,
+ 4848: 0x0002A64A,
+ 4849: 0x00008E77,
+ 4850: 0x00009F53,
+ 4852: 0x00008DD4,
+ 4853: 0x00008E4F,
+ 4854: 0x00009E1C,
+ 4855: 0x00008E01,
+ 4856: 0x00006282,
+ 4857: 0x0002837D,
+ 4858: 0x00008E28,
+ 4859: 0x00008E75,
+ 4860: 0x00007AD3,
+ 4861: 0x00024A77,
+ 4862: 0x00007A3E,
+ 4863: 0x000078D8,
+ 4864: 0x00006CEA,
+ 4865: 0x00008A67,
+ 4866: 0x00007607,
+ 4867: 0x00028A5A,
+ 4868: 0x00009F26,
+ 4869: 0x00006CCE,
+ 4870: 0x000087D6,
+ 4871: 0x000075C3,
+ 4872: 0x0002A2B2,
+ 4873: 0x00007853,
+ 4874: 0x0002F840,
+ 4875: 0x00008D0C,
+ 4876: 0x000072E2,
+ 4877: 0x00007371,
+ 4878: 0x00008B2D,
+ 4879: 0x00007302,
+ 4880: 0x000074F1,
+ 4881: 0x00008CEB,
+ 4882: 0x00024ABB,
+ 4883: 0x0000862F,
+ 4884: 0x00005FBA,
+ 4885: 0x000088A0,
+ 4886: 0x000044B7,
+ 4888: 0x0002183B,
+ 4889: 0x00026E05,
+ 4891: 0x00008A7E,
+ 4892: 0x0002251B,
+ 4894: 0x000060FD,
+ 4895: 0x00007667,
+ 4896: 0x00009AD7,
+ 4897: 0x00009D44,
+ 4898: 0x0000936E,
+ 4899: 0x00009B8F,
+ 4900: 0x000087F5,
+ 4902: 0x0000880F,
+ 4903: 0x00008CF7,
+ 4904: 0x0000732C,
+ 4905: 0x00009721,
+ 4906: 0x00009BB0,
+ 4907: 0x000035D6,
+ 4908: 0x000072B2,
+ 4909: 0x00004C07,
+ 4910: 0x00007C51,
+ 4911: 0x0000994A,
+ 4912: 0x00026159,
+ 4913: 0x00006159,
+ 4914: 0x00004C04,
+ 4915: 0x00009E96,
+ 4916: 0x0000617D,
+ 4918: 0x0000575F,
+ 4919: 0x0000616F,
+ 4920: 0x000062A6,
+ 4921: 0x00006239,
+ 4922: 0x000062CE,
+ 4923: 0x00003A5C,
+ 4924: 0x000061E2,
+ 4925: 0x000053AA,
+ 4926: 0x000233F5,
+ 4927: 0x00006364,
+ 4928: 0x00006802,
+ 4929: 0x000035D2,
+ 4930: 0x00005D57,
+ 4931: 0x00028BC2,
+ 4932: 0x00008FDA,
+ 4933: 0x00028E39,
+ 4935: 0x000050D9,
+ 4936: 0x00021D46,
+ 4937: 0x00007906,
+ 4938: 0x00005332,
+ 4939: 0x00009638,
+ 4940: 0x00020F3B,
+ 4941: 0x00004065,
+ 4943: 0x000077FE,
+ 4945: 0x00007CC2,
+ 4946: 0x00025F1A,
+ 4947: 0x00007CDA,
+ 4948: 0x00007A2D,
+ 4949: 0x00008066,
+ 4950: 0x00008063,
+ 4951: 0x00007D4D,
+ 4952: 0x00007505,
+ 4953: 0x000074F2,
+ 4954: 0x00008994,
+ 4955: 0x0000821A,
+ 4956: 0x0000670C,
+ 4957: 0x00008062,
+ 4958: 0x00027486,
+ 4959: 0x0000805B,
+ 4960: 0x000074F0,
+ 4961: 0x00008103,
+ 4962: 0x00007724,
+ 4963: 0x00008989,
+ 4964: 0x000267CC,
+ 4965: 0x00007553,
+ 4966: 0x00026ED1,
+ 4967: 0x000087A9,
+ 4968: 0x000087CE,
+ 4969: 0x000081C8,
+ 4970: 0x0000878C,
+ 4971: 0x00008A49,
+ 4972: 0x00008CAD,
+ 4973: 0x00008B43,
+ 4974: 0x0000772B,
+ 4975: 0x000074F8,
+ 4976: 0x000084DA,
+ 4977: 0x00003635,
+ 4978: 0x000069B2,
+ 4979: 0x00008DA6,
+ 4981: 0x000089A9,
+ 4982: 0x00007468,
+ 4983: 0x00006DB9,
+ 4984: 0x000087C1,
+ 4985: 0x00024011,
+ 4986: 0x000074E7,
+ 4987: 0x00003DDB,
+ 4988: 0x00007176,
+ 4989: 0x000060A4,
+ 4990: 0x0000619C,
+ 4991: 0x00003CD1,
+ 4992: 0x00007162,
+ 4993: 0x00006077,
+ 4995: 0x00007F71,
+ 4996: 0x00028B2D,
+ 4997: 0x00007250,
+ 4998: 0x000060E9,
+ 4999: 0x00004B7E,
+ 5000: 0x00005220,
+ 5001: 0x00003C18,
+ 5002: 0x00023CC7,
+ 5003: 0x00025ED7,
+ 5004: 0x00027656,
+ 5005: 0x00025531,
+ 5006: 0x00021944,
+ 5007: 0x000212FE,
+ 5008: 0x00029903,
+ 5009: 0x00026DDC,
+ 5010: 0x000270AD,
+ 5011: 0x00005CC1,
+ 5012: 0x000261AD,
+ 5013: 0x00028A0F,
+ 5014: 0x00023677,
+ 5015: 0x000200EE,
+ 5016: 0x00026846,
+ 5017: 0x00024F0E,
+ 5018: 0x00004562,
+ 5019: 0x00005B1F,
+ 5020: 0x0002634C,
+ 5021: 0x00009F50,
+ 5022: 0x00009EA6,
+ 5023: 0x0002626B,
+ 5024: 0x00003000,
+ 5025: 0x0000FF0C,
+ 5026: 0x00003001,
+ 5027: 0x00003002,
+ 5028: 0x0000FF0E,
+ 5029: 0x00002027,
+ 5030: 0x0000FF1B,
+ 5031: 0x0000FF1A,
+ 5032: 0x0000FF1F,
+ 5033: 0x0000FF01,
+ 5034: 0x0000FE30,
+ 5035: 0x00002026,
+ 5036: 0x00002025,
+ 5037: 0x0000FE50,
+ 5038: 0x0000FE51,
+ 5039: 0x0000FE52,
+ 5040: 0x000000B7,
+ 5041: 0x0000FE54,
+ 5042: 0x0000FE55,
+ 5043: 0x0000FE56,
+ 5044: 0x0000FE57,
+ 5045: 0x0000FF5C,
+ 5046: 0x00002013,
+ 5047: 0x0000FE31,
+ 5048: 0x00002014,
+ 5049: 0x0000FE33,
+ 5050: 0x00002574,
+ 5051: 0x0000FE34,
+ 5052: 0x0000FE4F,
+ 5053: 0x0000FF08,
+ 5054: 0x0000FF09,
+ 5055: 0x0000FE35,
+ 5056: 0x0000FE36,
+ 5057: 0x0000FF5B,
+ 5058: 0x0000FF5D,
+ 5059: 0x0000FE37,
+ 5060: 0x0000FE38,
+ 5061: 0x00003014,
+ 5062: 0x00003015,
+ 5063: 0x0000FE39,
+ 5064: 0x0000FE3A,
+ 5065: 0x00003010,
+ 5066: 0x00003011,
+ 5067: 0x0000FE3B,
+ 5068: 0x0000FE3C,
+ 5069: 0x0000300A,
+ 5070: 0x0000300B,
+ 5071: 0x0000FE3D,
+ 5072: 0x0000FE3E,
+ 5073: 0x00003008,
+ 5074: 0x00003009,
+ 5075: 0x0000FE3F,
+ 5076: 0x0000FE40,
+ 5077: 0x0000300C,
+ 5078: 0x0000300D,
+ 5079: 0x0000FE41,
+ 5080: 0x0000FE42,
+ 5081: 0x0000300E,
+ 5082: 0x0000300F,
+ 5083: 0x0000FE43,
+ 5084: 0x0000FE44,
+ 5085: 0x0000FE59,
+ 5086: 0x0000FE5A,
+ 5087: 0x0000FE5B,
+ 5088: 0x0000FE5C,
+ 5089: 0x0000FE5D,
+ 5090: 0x0000FE5E,
+ 5091: 0x00002018,
+ 5092: 0x00002019,
+ 5093: 0x0000201C,
+ 5094: 0x0000201D,
+ 5095: 0x0000301D,
+ 5096: 0x0000301E,
+ 5097: 0x00002035,
+ 5098: 0x00002032,
+ 5099: 0x0000FF03,
+ 5100: 0x0000FF06,
+ 5101: 0x0000FF0A,
+ 5102: 0x0000203B,
+ 5103: 0x000000A7,
+ 5104: 0x00003003,
+ 5105: 0x000025CB,
+ 5106: 0x000025CF,
+ 5107: 0x000025B3,
+ 5108: 0x000025B2,
+ 5109: 0x000025CE,
+ 5110: 0x00002606,
+ 5111: 0x00002605,
+ 5112: 0x000025C7,
+ 5113: 0x000025C6,
+ 5114: 0x000025A1,
+ 5115: 0x000025A0,
+ 5116: 0x000025BD,
+ 5117: 0x000025BC,
+ 5118: 0x000032A3,
+ 5119: 0x00002105,
+ 5120: 0x000000AF,
+ 5121: 0x0000FFE3,
+ 5122: 0x0000FF3F,
+ 5123: 0x000002CD,
+ 5124: 0x0000FE49,
+ 5125: 0x0000FE4A,
+ 5126: 0x0000FE4D,
+ 5127: 0x0000FE4E,
+ 5128: 0x0000FE4B,
+ 5129: 0x0000FE4C,
+ 5130: 0x0000FE5F,
+ 5131: 0x0000FE60,
+ 5132: 0x0000FE61,
+ 5133: 0x0000FF0B,
+ 5134: 0x0000FF0D,
+ 5135: 0x000000D7,
+ 5136: 0x000000F7,
+ 5137: 0x000000B1,
+ 5138: 0x0000221A,
+ 5139: 0x0000FF1C,
+ 5140: 0x0000FF1E,
+ 5141: 0x0000FF1D,
+ 5142: 0x00002266,
+ 5143: 0x00002267,
+ 5144: 0x00002260,
+ 5145: 0x0000221E,
+ 5146: 0x00002252,
+ 5147: 0x00002261,
+ 5148: 0x0000FE62,
+ 5149: 0x0000FE63,
+ 5150: 0x0000FE64,
+ 5151: 0x0000FE65,
+ 5152: 0x0000FE66,
+ 5153: 0x0000FF5E,
+ 5154: 0x00002229,
+ 5155: 0x0000222A,
+ 5156: 0x000022A5,
+ 5157: 0x00002220,
+ 5158: 0x0000221F,
+ 5159: 0x000022BF,
+ 5160: 0x000033D2,
+ 5161: 0x000033D1,
+ 5162: 0x0000222B,
+ 5163: 0x0000222E,
+ 5164: 0x00002235,
+ 5165: 0x00002234,
+ 5166: 0x00002640,
+ 5167: 0x00002642,
+ 5168: 0x00002295,
+ 5169: 0x00002299,
+ 5170: 0x00002191,
+ 5171: 0x00002193,
+ 5172: 0x00002190,
+ 5173: 0x00002192,
+ 5174: 0x00002196,
+ 5175: 0x00002197,
+ 5176: 0x00002199,
+ 5177: 0x00002198,
+ 5178: 0x00002225,
+ 5179: 0x00002223,
+ 5180: 0x0000FF0F,
+ 5181: 0x0000FF3C,
+ 5182: 0x00002215,
+ 5183: 0x0000FE68,
+ 5184: 0x0000FF04,
+ 5185: 0x0000FFE5,
+ 5186: 0x00003012,
+ 5187: 0x0000FFE0,
+ 5188: 0x0000FFE1,
+ 5189: 0x0000FF05,
+ 5190: 0x0000FF20,
+ 5191: 0x00002103,
+ 5192: 0x00002109,
+ 5193: 0x0000FE69,
+ 5194: 0x0000FE6A,
+ 5195: 0x0000FE6B,
+ 5196: 0x000033D5,
+ 5197: 0x0000339C,
+ 5198: 0x0000339D,
+ 5199: 0x0000339E,
+ 5200: 0x000033CE,
+ 5201: 0x000033A1,
+ 5202: 0x0000338E,
+ 5203: 0x0000338F,
+ 5204: 0x000033C4,
+ 5205: 0x000000B0,
+ 5206: 0x00005159,
+ 5207: 0x0000515B,
+ 5208: 0x0000515E,
+ 5209: 0x0000515D,
+ 5210: 0x00005161,
+ 5211: 0x00005163,
+ 5212: 0x000055E7,
+ 5213: 0x000074E9,
+ 5214: 0x00007CCE,
+ 5215: 0x00002581,
+ 5216: 0x00002582,
+ 5217: 0x00002583,
+ 5218: 0x00002584,
+ 5219: 0x00002585,
+ 5220: 0x00002586,
+ 5221: 0x00002587,
+ 5222: 0x00002588,
+ 5223: 0x0000258F,
+ 5224: 0x0000258E,
+ 5225: 0x0000258D,
+ 5226: 0x0000258C,
+ 5227: 0x0000258B,
+ 5228: 0x0000258A,
+ 5229: 0x00002589,
+ 5230: 0x0000253C,
+ 5231: 0x00002534,
+ 5232: 0x0000252C,
+ 5233: 0x00002524,
+ 5234: 0x0000251C,
+ 5235: 0x00002594,
+ 5236: 0x00002500,
+ 5237: 0x00002502,
+ 5238: 0x00002595,
+ 5239: 0x0000250C,
+ 5240: 0x00002510,
+ 5241: 0x00002514,
+ 5242: 0x00002518,
+ 5243: 0x0000256D,
+ 5244: 0x0000256E,
+ 5245: 0x00002570,
+ 5246: 0x0000256F,
+ 5247: 0x00002550,
+ 5248: 0x0000255E,
+ 5249: 0x0000256A,
+ 5250: 0x00002561,
+ 5251: 0x000025E2,
+ 5252: 0x000025E3,
+ 5253: 0x000025E5,
+ 5254: 0x000025E4,
+ 5255: 0x00002571,
+ 5256: 0x00002572,
+ 5257: 0x00002573,
+ 5258: 0x0000FF10,
+ 5259: 0x0000FF11,
+ 5260: 0x0000FF12,
+ 5261: 0x0000FF13,
+ 5262: 0x0000FF14,
+ 5263: 0x0000FF15,
+ 5264: 0x0000FF16,
+ 5265: 0x0000FF17,
+ 5266: 0x0000FF18,
+ 5267: 0x0000FF19,
+ 5268: 0x00002160,
+ 5269: 0x00002161,
+ 5270: 0x00002162,
+ 5271: 0x00002163,
+ 5272: 0x00002164,
+ 5273: 0x00002165,
+ 5274: 0x00002166,
+ 5275: 0x00002167,
+ 5276: 0x00002168,
+ 5277: 0x00002169,
+ 5278: 0x00003021,
+ 5279: 0x00003022,
+ 5280: 0x00003023,
+ 5281: 0x00003024,
+ 5282: 0x00003025,
+ 5283: 0x00003026,
+ 5284: 0x00003027,
+ 5285: 0x00003028,
+ 5286: 0x00003029,
+ 5287: 0x00005341,
+ 5288: 0x00005344,
+ 5289: 0x00005345,
+ 5290: 0x0000FF21,
+ 5291: 0x0000FF22,
+ 5292: 0x0000FF23,
+ 5293: 0x0000FF24,
+ 5294: 0x0000FF25,
+ 5295: 0x0000FF26,
+ 5296: 0x0000FF27,
+ 5297: 0x0000FF28,
+ 5298: 0x0000FF29,
+ 5299: 0x0000FF2A,
+ 5300: 0x0000FF2B,
+ 5301: 0x0000FF2C,
+ 5302: 0x0000FF2D,
+ 5303: 0x0000FF2E,
+ 5304: 0x0000FF2F,
+ 5305: 0x0000FF30,
+ 5306: 0x0000FF31,
+ 5307: 0x0000FF32,
+ 5308: 0x0000FF33,
+ 5309: 0x0000FF34,
+ 5310: 0x0000FF35,
+ 5311: 0x0000FF36,
+ 5312: 0x0000FF37,
+ 5313: 0x0000FF38,
+ 5314: 0x0000FF39,
+ 5315: 0x0000FF3A,
+ 5316: 0x0000FF41,
+ 5317: 0x0000FF42,
+ 5318: 0x0000FF43,
+ 5319: 0x0000FF44,
+ 5320: 0x0000FF45,
+ 5321: 0x0000FF46,
+ 5322: 0x0000FF47,
+ 5323: 0x0000FF48,
+ 5324: 0x0000FF49,
+ 5325: 0x0000FF4A,
+ 5326: 0x0000FF4B,
+ 5327: 0x0000FF4C,
+ 5328: 0x0000FF4D,
+ 5329: 0x0000FF4E,
+ 5330: 0x0000FF4F,
+ 5331: 0x0000FF50,
+ 5332: 0x0000FF51,
+ 5333: 0x0000FF52,
+ 5334: 0x0000FF53,
+ 5335: 0x0000FF54,
+ 5336: 0x0000FF55,
+ 5337: 0x0000FF56,
+ 5338: 0x0000FF57,
+ 5339: 0x0000FF58,
+ 5340: 0x0000FF59,
+ 5341: 0x0000FF5A,
+ 5342: 0x00000391,
+ 5343: 0x00000392,
+ 5344: 0x00000393,
+ 5345: 0x00000394,
+ 5346: 0x00000395,
+ 5347: 0x00000396,
+ 5348: 0x00000397,
+ 5349: 0x00000398,
+ 5350: 0x00000399,
+ 5351: 0x0000039A,
+ 5352: 0x0000039B,
+ 5353: 0x0000039C,
+ 5354: 0x0000039D,
+ 5355: 0x0000039E,
+ 5356: 0x0000039F,
+ 5357: 0x000003A0,
+ 5358: 0x000003A1,
+ 5359: 0x000003A3,
+ 5360: 0x000003A4,
+ 5361: 0x000003A5,
+ 5362: 0x000003A6,
+ 5363: 0x000003A7,
+ 5364: 0x000003A8,
+ 5365: 0x000003A9,
+ 5366: 0x000003B1,
+ 5367: 0x000003B2,
+ 5368: 0x000003B3,
+ 5369: 0x000003B4,
+ 5370: 0x000003B5,
+ 5371: 0x000003B6,
+ 5372: 0x000003B7,
+ 5373: 0x000003B8,
+ 5374: 0x000003B9,
+ 5375: 0x000003BA,
+ 5376: 0x000003BB,
+ 5377: 0x000003BC,
+ 5378: 0x000003BD,
+ 5379: 0x000003BE,
+ 5380: 0x000003BF,
+ 5381: 0x000003C0,
+ 5382: 0x000003C1,
+ 5383: 0x000003C3,
+ 5384: 0x000003C4,
+ 5385: 0x000003C5,
+ 5386: 0x000003C6,
+ 5387: 0x000003C7,
+ 5388: 0x000003C8,
+ 5389: 0x000003C9,
+ 5390: 0x00003105,
+ 5391: 0x00003106,
+ 5392: 0x00003107,
+ 5393: 0x00003108,
+ 5394: 0x00003109,
+ 5395: 0x0000310A,
+ 5396: 0x0000310B,
+ 5397: 0x0000310C,
+ 5398: 0x0000310D,
+ 5399: 0x0000310E,
+ 5400: 0x0000310F,
+ 5401: 0x00003110,
+ 5402: 0x00003111,
+ 5403: 0x00003112,
+ 5404: 0x00003113,
+ 5405: 0x00003114,
+ 5406: 0x00003115,
+ 5407: 0x00003116,
+ 5408: 0x00003117,
+ 5409: 0x00003118,
+ 5410: 0x00003119,
+ 5411: 0x0000311A,
+ 5412: 0x0000311B,
+ 5413: 0x0000311C,
+ 5414: 0x0000311D,
+ 5415: 0x0000311E,
+ 5416: 0x0000311F,
+ 5417: 0x00003120,
+ 5418: 0x00003121,
+ 5419: 0x00003122,
+ 5420: 0x00003123,
+ 5421: 0x00003124,
+ 5422: 0x00003125,
+ 5423: 0x00003126,
+ 5424: 0x00003127,
+ 5425: 0x00003128,
+ 5426: 0x00003129,
+ 5427: 0x000002D9,
+ 5428: 0x000002C9,
+ 5429: 0x000002CA,
+ 5430: 0x000002C7,
+ 5431: 0x000002CB,
+ 5432: 0x00002400,
+ 5433: 0x00002401,
+ 5434: 0x00002402,
+ 5435: 0x00002403,
+ 5436: 0x00002404,
+ 5437: 0x00002405,
+ 5438: 0x00002406,
+ 5439: 0x00002407,
+ 5440: 0x00002408,
+ 5441: 0x00002409,
+ 5442: 0x0000240A,
+ 5443: 0x0000240B,
+ 5444: 0x0000240C,
+ 5445: 0x0000240D,
+ 5446: 0x0000240E,
+ 5447: 0x0000240F,
+ 5448: 0x00002410,
+ 5449: 0x00002411,
+ 5450: 0x00002412,
+ 5451: 0x00002413,
+ 5452: 0x00002414,
+ 5453: 0x00002415,
+ 5454: 0x00002416,
+ 5455: 0x00002417,
+ 5456: 0x00002418,
+ 5457: 0x00002419,
+ 5458: 0x0000241A,
+ 5459: 0x0000241B,
+ 5460: 0x0000241C,
+ 5461: 0x0000241D,
+ 5462: 0x0000241E,
+ 5463: 0x0000241F,
+ 5464: 0x00002421,
+ 5465: 0x000020AC,
+ 5495: 0x00004E00,
+ 5496: 0x00004E59,
+ 5497: 0x00004E01,
+ 5498: 0x00004E03,
+ 5499: 0x00004E43,
+ 5500: 0x00004E5D,
+ 5501: 0x00004E86,
+ 5502: 0x00004E8C,
+ 5503: 0x00004EBA,
+ 5504: 0x0000513F,
+ 5505: 0x00005165,
+ 5506: 0x0000516B,
+ 5507: 0x000051E0,
+ 5508: 0x00005200,
+ 5509: 0x00005201,
+ 5510: 0x0000529B,
+ 5511: 0x00005315,
+ 5512: 0x00005341,
+ 5513: 0x0000535C,
+ 5514: 0x000053C8,
+ 5515: 0x00004E09,
+ 5516: 0x00004E0B,
+ 5517: 0x00004E08,
+ 5518: 0x00004E0A,
+ 5519: 0x00004E2B,
+ 5520: 0x00004E38,
+ 5521: 0x000051E1,
+ 5522: 0x00004E45,
+ 5523: 0x00004E48,
+ 5524: 0x00004E5F,
+ 5525: 0x00004E5E,
+ 5526: 0x00004E8E,
+ 5527: 0x00004EA1,
+ 5528: 0x00005140,
+ 5529: 0x00005203,
+ 5530: 0x000052FA,
+ 5531: 0x00005343,
+ 5532: 0x000053C9,
+ 5533: 0x000053E3,
+ 5534: 0x0000571F,
+ 5535: 0x000058EB,
+ 5536: 0x00005915,
+ 5537: 0x00005927,
+ 5538: 0x00005973,
+ 5539: 0x00005B50,
+ 5540: 0x00005B51,
+ 5541: 0x00005B53,
+ 5542: 0x00005BF8,
+ 5543: 0x00005C0F,
+ 5544: 0x00005C22,
+ 5545: 0x00005C38,
+ 5546: 0x00005C71,
+ 5547: 0x00005DDD,
+ 5548: 0x00005DE5,
+ 5549: 0x00005DF1,
+ 5550: 0x00005DF2,
+ 5551: 0x00005DF3,
+ 5552: 0x00005DFE,
+ 5553: 0x00005E72,
+ 5554: 0x00005EFE,
+ 5555: 0x00005F0B,
+ 5556: 0x00005F13,
+ 5557: 0x0000624D,
+ 5558: 0x00004E11,
+ 5559: 0x00004E10,
+ 5560: 0x00004E0D,
+ 5561: 0x00004E2D,
+ 5562: 0x00004E30,
+ 5563: 0x00004E39,
+ 5564: 0x00004E4B,
+ 5565: 0x00005C39,
+ 5566: 0x00004E88,
+ 5567: 0x00004E91,
+ 5568: 0x00004E95,
+ 5569: 0x00004E92,
+ 5570: 0x00004E94,
+ 5571: 0x00004EA2,
+ 5572: 0x00004EC1,
+ 5573: 0x00004EC0,
+ 5574: 0x00004EC3,
+ 5575: 0x00004EC6,
+ 5576: 0x00004EC7,
+ 5577: 0x00004ECD,
+ 5578: 0x00004ECA,
+ 5579: 0x00004ECB,
+ 5580: 0x00004EC4,
+ 5581: 0x00005143,
+ 5582: 0x00005141,
+ 5583: 0x00005167,
+ 5584: 0x0000516D,
+ 5585: 0x0000516E,
+ 5586: 0x0000516C,
+ 5587: 0x00005197,
+ 5588: 0x000051F6,
+ 5589: 0x00005206,
+ 5590: 0x00005207,
+ 5591: 0x00005208,
+ 5592: 0x000052FB,
+ 5593: 0x000052FE,
+ 5594: 0x000052FF,
+ 5595: 0x00005316,
+ 5596: 0x00005339,
+ 5597: 0x00005348,
+ 5598: 0x00005347,
+ 5599: 0x00005345,
+ 5600: 0x0000535E,
+ 5601: 0x00005384,
+ 5602: 0x000053CB,
+ 5603: 0x000053CA,
+ 5604: 0x000053CD,
+ 5605: 0x000058EC,
+ 5606: 0x00005929,
+ 5607: 0x0000592B,
+ 5608: 0x0000592A,
+ 5609: 0x0000592D,
+ 5610: 0x00005B54,
+ 5611: 0x00005C11,
+ 5612: 0x00005C24,
+ 5613: 0x00005C3A,
+ 5614: 0x00005C6F,
+ 5615: 0x00005DF4,
+ 5616: 0x00005E7B,
+ 5617: 0x00005EFF,
+ 5618: 0x00005F14,
+ 5619: 0x00005F15,
+ 5620: 0x00005FC3,
+ 5621: 0x00006208,
+ 5622: 0x00006236,
+ 5623: 0x0000624B,
+ 5624: 0x0000624E,
+ 5625: 0x0000652F,
+ 5626: 0x00006587,
+ 5627: 0x00006597,
+ 5628: 0x000065A4,
+ 5629: 0x000065B9,
+ 5630: 0x000065E5,
+ 5631: 0x000066F0,
+ 5632: 0x00006708,
+ 5633: 0x00006728,
+ 5634: 0x00006B20,
+ 5635: 0x00006B62,
+ 5636: 0x00006B79,
+ 5637: 0x00006BCB,
+ 5638: 0x00006BD4,
+ 5639: 0x00006BDB,
+ 5640: 0x00006C0F,
+ 5641: 0x00006C34,
+ 5642: 0x0000706B,
+ 5643: 0x0000722A,
+ 5644: 0x00007236,
+ 5645: 0x0000723B,
+ 5646: 0x00007247,
+ 5647: 0x00007259,
+ 5648: 0x0000725B,
+ 5649: 0x000072AC,
+ 5650: 0x0000738B,
+ 5651: 0x00004E19,
+ 5652: 0x00004E16,
+ 5653: 0x00004E15,
+ 5654: 0x00004E14,
+ 5655: 0x00004E18,
+ 5656: 0x00004E3B,
+ 5657: 0x00004E4D,
+ 5658: 0x00004E4F,
+ 5659: 0x00004E4E,
+ 5660: 0x00004EE5,
+ 5661: 0x00004ED8,
+ 5662: 0x00004ED4,
+ 5663: 0x00004ED5,
+ 5664: 0x00004ED6,
+ 5665: 0x00004ED7,
+ 5666: 0x00004EE3,
+ 5667: 0x00004EE4,
+ 5668: 0x00004ED9,
+ 5669: 0x00004EDE,
+ 5670: 0x00005145,
+ 5671: 0x00005144,
+ 5672: 0x00005189,
+ 5673: 0x0000518A,
+ 5674: 0x000051AC,
+ 5675: 0x000051F9,
+ 5676: 0x000051FA,
+ 5677: 0x000051F8,
+ 5678: 0x0000520A,
+ 5679: 0x000052A0,
+ 5680: 0x0000529F,
+ 5681: 0x00005305,
+ 5682: 0x00005306,
+ 5683: 0x00005317,
+ 5684: 0x0000531D,
+ 5685: 0x00004EDF,
+ 5686: 0x0000534A,
+ 5687: 0x00005349,
+ 5688: 0x00005361,
+ 5689: 0x00005360,
+ 5690: 0x0000536F,
+ 5691: 0x0000536E,
+ 5692: 0x000053BB,
+ 5693: 0x000053EF,
+ 5694: 0x000053E4,
+ 5695: 0x000053F3,
+ 5696: 0x000053EC,
+ 5697: 0x000053EE,
+ 5698: 0x000053E9,
+ 5699: 0x000053E8,
+ 5700: 0x000053FC,
+ 5701: 0x000053F8,
+ 5702: 0x000053F5,
+ 5703: 0x000053EB,
+ 5704: 0x000053E6,
+ 5705: 0x000053EA,
+ 5706: 0x000053F2,
+ 5707: 0x000053F1,
+ 5708: 0x000053F0,
+ 5709: 0x000053E5,
+ 5710: 0x000053ED,
+ 5711: 0x000053FB,
+ 5712: 0x000056DB,
+ 5713: 0x000056DA,
+ 5714: 0x00005916,
+ 5715: 0x0000592E,
+ 5716: 0x00005931,
+ 5717: 0x00005974,
+ 5718: 0x00005976,
+ 5719: 0x00005B55,
+ 5720: 0x00005B83,
+ 5721: 0x00005C3C,
+ 5722: 0x00005DE8,
+ 5723: 0x00005DE7,
+ 5724: 0x00005DE6,
+ 5725: 0x00005E02,
+ 5726: 0x00005E03,
+ 5727: 0x00005E73,
+ 5728: 0x00005E7C,
+ 5729: 0x00005F01,
+ 5730: 0x00005F18,
+ 5731: 0x00005F17,
+ 5732: 0x00005FC5,
+ 5733: 0x0000620A,
+ 5734: 0x00006253,
+ 5735: 0x00006254,
+ 5736: 0x00006252,
+ 5737: 0x00006251,
+ 5738: 0x000065A5,
+ 5739: 0x000065E6,
+ 5740: 0x0000672E,
+ 5741: 0x0000672C,
+ 5742: 0x0000672A,
+ 5743: 0x0000672B,
+ 5744: 0x0000672D,
+ 5745: 0x00006B63,
+ 5746: 0x00006BCD,
+ 5747: 0x00006C11,
+ 5748: 0x00006C10,
+ 5749: 0x00006C38,
+ 5750: 0x00006C41,
+ 5751: 0x00006C40,
+ 5752: 0x00006C3E,
+ 5753: 0x000072AF,
+ 5754: 0x00007384,
+ 5755: 0x00007389,
+ 5756: 0x000074DC,
+ 5757: 0x000074E6,
+ 5758: 0x00007518,
+ 5759: 0x0000751F,
+ 5760: 0x00007528,
+ 5761: 0x00007529,
+ 5762: 0x00007530,
+ 5763: 0x00007531,
+ 5764: 0x00007532,
+ 5765: 0x00007533,
+ 5766: 0x0000758B,
+ 5767: 0x0000767D,
+ 5768: 0x000076AE,
+ 5769: 0x000076BF,
+ 5770: 0x000076EE,
+ 5771: 0x000077DB,
+ 5772: 0x000077E2,
+ 5773: 0x000077F3,
+ 5774: 0x0000793A,
+ 5775: 0x000079BE,
+ 5776: 0x00007A74,
+ 5777: 0x00007ACB,
+ 5778: 0x00004E1E,
+ 5779: 0x00004E1F,
+ 5780: 0x00004E52,
+ 5781: 0x00004E53,
+ 5782: 0x00004E69,
+ 5783: 0x00004E99,
+ 5784: 0x00004EA4,
+ 5785: 0x00004EA6,
+ 5786: 0x00004EA5,
+ 5787: 0x00004EFF,
+ 5788: 0x00004F09,
+ 5789: 0x00004F19,
+ 5790: 0x00004F0A,
+ 5791: 0x00004F15,
+ 5792: 0x00004F0D,
+ 5793: 0x00004F10,
+ 5794: 0x00004F11,
+ 5795: 0x00004F0F,
+ 5796: 0x00004EF2,
+ 5797: 0x00004EF6,
+ 5798: 0x00004EFB,
+ 5799: 0x00004EF0,
+ 5800: 0x00004EF3,
+ 5801: 0x00004EFD,
+ 5802: 0x00004F01,
+ 5803: 0x00004F0B,
+ 5804: 0x00005149,
+ 5805: 0x00005147,
+ 5806: 0x00005146,
+ 5807: 0x00005148,
+ 5808: 0x00005168,
+ 5809: 0x00005171,
+ 5810: 0x0000518D,
+ 5811: 0x000051B0,
+ 5812: 0x00005217,
+ 5813: 0x00005211,
+ 5814: 0x00005212,
+ 5815: 0x0000520E,
+ 5816: 0x00005216,
+ 5817: 0x000052A3,
+ 5818: 0x00005308,
+ 5819: 0x00005321,
+ 5820: 0x00005320,
+ 5821: 0x00005370,
+ 5822: 0x00005371,
+ 5823: 0x00005409,
+ 5824: 0x0000540F,
+ 5825: 0x0000540C,
+ 5826: 0x0000540A,
+ 5827: 0x00005410,
+ 5828: 0x00005401,
+ 5829: 0x0000540B,
+ 5830: 0x00005404,
+ 5831: 0x00005411,
+ 5832: 0x0000540D,
+ 5833: 0x00005408,
+ 5834: 0x00005403,
+ 5835: 0x0000540E,
+ 5836: 0x00005406,
+ 5837: 0x00005412,
+ 5838: 0x000056E0,
+ 5839: 0x000056DE,
+ 5840: 0x000056DD,
+ 5841: 0x00005733,
+ 5842: 0x00005730,
+ 5843: 0x00005728,
+ 5844: 0x0000572D,
+ 5845: 0x0000572C,
+ 5846: 0x0000572F,
+ 5847: 0x00005729,
+ 5848: 0x00005919,
+ 5849: 0x0000591A,
+ 5850: 0x00005937,
+ 5851: 0x00005938,
+ 5852: 0x00005984,
+ 5853: 0x00005978,
+ 5854: 0x00005983,
+ 5855: 0x0000597D,
+ 5856: 0x00005979,
+ 5857: 0x00005982,
+ 5858: 0x00005981,
+ 5859: 0x00005B57,
+ 5860: 0x00005B58,
+ 5861: 0x00005B87,
+ 5862: 0x00005B88,
+ 5863: 0x00005B85,
+ 5864: 0x00005B89,
+ 5865: 0x00005BFA,
+ 5866: 0x00005C16,
+ 5867: 0x00005C79,
+ 5868: 0x00005DDE,
+ 5869: 0x00005E06,
+ 5870: 0x00005E76,
+ 5871: 0x00005E74,
+ 5872: 0x00005F0F,
+ 5873: 0x00005F1B,
+ 5874: 0x00005FD9,
+ 5875: 0x00005FD6,
+ 5876: 0x0000620E,
+ 5877: 0x0000620C,
+ 5878: 0x0000620D,
+ 5879: 0x00006210,
+ 5880: 0x00006263,
+ 5881: 0x0000625B,
+ 5882: 0x00006258,
+ 5883: 0x00006536,
+ 5884: 0x000065E9,
+ 5885: 0x000065E8,
+ 5886: 0x000065EC,
+ 5887: 0x000065ED,
+ 5888: 0x000066F2,
+ 5889: 0x000066F3,
+ 5890: 0x00006709,
+ 5891: 0x0000673D,
+ 5892: 0x00006734,
+ 5893: 0x00006731,
+ 5894: 0x00006735,
+ 5895: 0x00006B21,
+ 5896: 0x00006B64,
+ 5897: 0x00006B7B,
+ 5898: 0x00006C16,
+ 5899: 0x00006C5D,
+ 5900: 0x00006C57,
+ 5901: 0x00006C59,
+ 5902: 0x00006C5F,
+ 5903: 0x00006C60,
+ 5904: 0x00006C50,
+ 5905: 0x00006C55,
+ 5906: 0x00006C61,
+ 5907: 0x00006C5B,
+ 5908: 0x00006C4D,
+ 5909: 0x00006C4E,
+ 5910: 0x00007070,
+ 5911: 0x0000725F,
+ 5912: 0x0000725D,
+ 5913: 0x0000767E,
+ 5914: 0x00007AF9,
+ 5915: 0x00007C73,
+ 5916: 0x00007CF8,
+ 5917: 0x00007F36,
+ 5918: 0x00007F8A,
+ 5919: 0x00007FBD,
+ 5920: 0x00008001,
+ 5921: 0x00008003,
+ 5922: 0x0000800C,
+ 5923: 0x00008012,
+ 5924: 0x00008033,
+ 5925: 0x0000807F,
+ 5926: 0x00008089,
+ 5927: 0x0000808B,
+ 5928: 0x0000808C,
+ 5929: 0x000081E3,
+ 5930: 0x000081EA,
+ 5931: 0x000081F3,
+ 5932: 0x000081FC,
+ 5933: 0x0000820C,
+ 5934: 0x0000821B,
+ 5935: 0x0000821F,
+ 5936: 0x0000826E,
+ 5937: 0x00008272,
+ 5938: 0x0000827E,
+ 5939: 0x0000866B,
+ 5940: 0x00008840,
+ 5941: 0x0000884C,
+ 5942: 0x00008863,
+ 5943: 0x0000897F,
+ 5944: 0x00009621,
+ 5945: 0x00004E32,
+ 5946: 0x00004EA8,
+ 5947: 0x00004F4D,
+ 5948: 0x00004F4F,
+ 5949: 0x00004F47,
+ 5950: 0x00004F57,
+ 5951: 0x00004F5E,
+ 5952: 0x00004F34,
+ 5953: 0x00004F5B,
+ 5954: 0x00004F55,
+ 5955: 0x00004F30,
+ 5956: 0x00004F50,
+ 5957: 0x00004F51,
+ 5958: 0x00004F3D,
+ 5959: 0x00004F3A,
+ 5960: 0x00004F38,
+ 5961: 0x00004F43,
+ 5962: 0x00004F54,
+ 5963: 0x00004F3C,
+ 5964: 0x00004F46,
+ 5965: 0x00004F63,
+ 5966: 0x00004F5C,
+ 5967: 0x00004F60,
+ 5968: 0x00004F2F,
+ 5969: 0x00004F4E,
+ 5970: 0x00004F36,
+ 5971: 0x00004F59,
+ 5972: 0x00004F5D,
+ 5973: 0x00004F48,
+ 5974: 0x00004F5A,
+ 5975: 0x0000514C,
+ 5976: 0x0000514B,
+ 5977: 0x0000514D,
+ 5978: 0x00005175,
+ 5979: 0x000051B6,
+ 5980: 0x000051B7,
+ 5981: 0x00005225,
+ 5982: 0x00005224,
+ 5983: 0x00005229,
+ 5984: 0x0000522A,
+ 5985: 0x00005228,
+ 5986: 0x000052AB,
+ 5987: 0x000052A9,
+ 5988: 0x000052AA,
+ 5989: 0x000052AC,
+ 5990: 0x00005323,
+ 5991: 0x00005373,
+ 5992: 0x00005375,
+ 5993: 0x0000541D,
+ 5994: 0x0000542D,
+ 5995: 0x0000541E,
+ 5996: 0x0000543E,
+ 5997: 0x00005426,
+ 5998: 0x0000544E,
+ 5999: 0x00005427,
+ 6000: 0x00005446,
+ 6001: 0x00005443,
+ 6002: 0x00005433,
+ 6003: 0x00005448,
+ 6004: 0x00005442,
+ 6005: 0x0000541B,
+ 6006: 0x00005429,
+ 6007: 0x0000544A,
+ 6008: 0x00005439,
+ 6009: 0x0000543B,
+ 6010: 0x00005438,
+ 6011: 0x0000542E,
+ 6012: 0x00005435,
+ 6013: 0x00005436,
+ 6014: 0x00005420,
+ 6015: 0x0000543C,
+ 6016: 0x00005440,
+ 6017: 0x00005431,
+ 6018: 0x0000542B,
+ 6019: 0x0000541F,
+ 6020: 0x0000542C,
+ 6021: 0x000056EA,
+ 6022: 0x000056F0,
+ 6023: 0x000056E4,
+ 6024: 0x000056EB,
+ 6025: 0x0000574A,
+ 6026: 0x00005751,
+ 6027: 0x00005740,
+ 6028: 0x0000574D,
+ 6029: 0x00005747,
+ 6030: 0x0000574E,
+ 6031: 0x0000573E,
+ 6032: 0x00005750,
+ 6033: 0x0000574F,
+ 6034: 0x0000573B,
+ 6035: 0x000058EF,
+ 6036: 0x0000593E,
+ 6037: 0x0000599D,
+ 6038: 0x00005992,
+ 6039: 0x000059A8,
+ 6040: 0x0000599E,
+ 6041: 0x000059A3,
+ 6042: 0x00005999,
+ 6043: 0x00005996,
+ 6044: 0x0000598D,
+ 6045: 0x000059A4,
+ 6046: 0x00005993,
+ 6047: 0x0000598A,
+ 6048: 0x000059A5,
+ 6049: 0x00005B5D,
+ 6050: 0x00005B5C,
+ 6051: 0x00005B5A,
+ 6052: 0x00005B5B,
+ 6053: 0x00005B8C,
+ 6054: 0x00005B8B,
+ 6055: 0x00005B8F,
+ 6056: 0x00005C2C,
+ 6057: 0x00005C40,
+ 6058: 0x00005C41,
+ 6059: 0x00005C3F,
+ 6060: 0x00005C3E,
+ 6061: 0x00005C90,
+ 6062: 0x00005C91,
+ 6063: 0x00005C94,
+ 6064: 0x00005C8C,
+ 6065: 0x00005DEB,
+ 6066: 0x00005E0C,
+ 6067: 0x00005E8F,
+ 6068: 0x00005E87,
+ 6069: 0x00005E8A,
+ 6070: 0x00005EF7,
+ 6071: 0x00005F04,
+ 6072: 0x00005F1F,
+ 6073: 0x00005F64,
+ 6074: 0x00005F62,
+ 6075: 0x00005F77,
+ 6076: 0x00005F79,
+ 6077: 0x00005FD8,
+ 6078: 0x00005FCC,
+ 6079: 0x00005FD7,
+ 6080: 0x00005FCD,
+ 6081: 0x00005FF1,
+ 6082: 0x00005FEB,
+ 6083: 0x00005FF8,
+ 6084: 0x00005FEA,
+ 6085: 0x00006212,
+ 6086: 0x00006211,
+ 6087: 0x00006284,
+ 6088: 0x00006297,
+ 6089: 0x00006296,
+ 6090: 0x00006280,
+ 6091: 0x00006276,
+ 6092: 0x00006289,
+ 6093: 0x0000626D,
+ 6094: 0x0000628A,
+ 6095: 0x0000627C,
+ 6096: 0x0000627E,
+ 6097: 0x00006279,
+ 6098: 0x00006273,
+ 6099: 0x00006292,
+ 6100: 0x0000626F,
+ 6101: 0x00006298,
+ 6102: 0x0000626E,
+ 6103: 0x00006295,
+ 6104: 0x00006293,
+ 6105: 0x00006291,
+ 6106: 0x00006286,
+ 6107: 0x00006539,
+ 6108: 0x0000653B,
+ 6109: 0x00006538,
+ 6110: 0x000065F1,
+ 6111: 0x000066F4,
+ 6112: 0x0000675F,
+ 6113: 0x0000674E,
+ 6114: 0x0000674F,
+ 6115: 0x00006750,
+ 6116: 0x00006751,
+ 6117: 0x0000675C,
+ 6118: 0x00006756,
+ 6119: 0x0000675E,
+ 6120: 0x00006749,
+ 6121: 0x00006746,
+ 6122: 0x00006760,
+ 6123: 0x00006753,
+ 6124: 0x00006757,
+ 6125: 0x00006B65,
+ 6126: 0x00006BCF,
+ 6127: 0x00006C42,
+ 6128: 0x00006C5E,
+ 6129: 0x00006C99,
+ 6130: 0x00006C81,
+ 6131: 0x00006C88,
+ 6132: 0x00006C89,
+ 6133: 0x00006C85,
+ 6134: 0x00006C9B,
+ 6135: 0x00006C6A,
+ 6136: 0x00006C7A,
+ 6137: 0x00006C90,
+ 6138: 0x00006C70,
+ 6139: 0x00006C8C,
+ 6140: 0x00006C68,
+ 6141: 0x00006C96,
+ 6142: 0x00006C92,
+ 6143: 0x00006C7D,
+ 6144: 0x00006C83,
+ 6145: 0x00006C72,
+ 6146: 0x00006C7E,
+ 6147: 0x00006C74,
+ 6148: 0x00006C86,
+ 6149: 0x00006C76,
+ 6150: 0x00006C8D,
+ 6151: 0x00006C94,
+ 6152: 0x00006C98,
+ 6153: 0x00006C82,
+ 6154: 0x00007076,
+ 6155: 0x0000707C,
+ 6156: 0x0000707D,
+ 6157: 0x00007078,
+ 6158: 0x00007262,
+ 6159: 0x00007261,
+ 6160: 0x00007260,
+ 6161: 0x000072C4,
+ 6162: 0x000072C2,
+ 6163: 0x00007396,
+ 6164: 0x0000752C,
+ 6165: 0x0000752B,
+ 6166: 0x00007537,
+ 6167: 0x00007538,
+ 6168: 0x00007682,
+ 6169: 0x000076EF,
+ 6170: 0x000077E3,
+ 6171: 0x000079C1,
+ 6172: 0x000079C0,
+ 6173: 0x000079BF,
+ 6174: 0x00007A76,
+ 6175: 0x00007CFB,
+ 6176: 0x00007F55,
+ 6177: 0x00008096,
+ 6178: 0x00008093,
+ 6179: 0x0000809D,
+ 6180: 0x00008098,
+ 6181: 0x0000809B,
+ 6182: 0x0000809A,
+ 6183: 0x000080B2,
+ 6184: 0x0000826F,
+ 6185: 0x00008292,
+ 6186: 0x0000828B,
+ 6187: 0x0000828D,
+ 6188: 0x0000898B,
+ 6189: 0x000089D2,
+ 6190: 0x00008A00,
+ 6191: 0x00008C37,
+ 6192: 0x00008C46,
+ 6193: 0x00008C55,
+ 6194: 0x00008C9D,
+ 6195: 0x00008D64,
+ 6196: 0x00008D70,
+ 6197: 0x00008DB3,
+ 6198: 0x00008EAB,
+ 6199: 0x00008ECA,
+ 6200: 0x00008F9B,
+ 6201: 0x00008FB0,
+ 6202: 0x00008FC2,
+ 6203: 0x00008FC6,
+ 6204: 0x00008FC5,
+ 6205: 0x00008FC4,
+ 6206: 0x00005DE1,
+ 6207: 0x00009091,
+ 6208: 0x000090A2,
+ 6209: 0x000090AA,
+ 6210: 0x000090A6,
+ 6211: 0x000090A3,
+ 6212: 0x00009149,
+ 6213: 0x000091C6,
+ 6214: 0x000091CC,
+ 6215: 0x00009632,
+ 6216: 0x0000962E,
+ 6217: 0x00009631,
+ 6218: 0x0000962A,
+ 6219: 0x0000962C,
+ 6220: 0x00004E26,
+ 6221: 0x00004E56,
+ 6222: 0x00004E73,
+ 6223: 0x00004E8B,
+ 6224: 0x00004E9B,
+ 6225: 0x00004E9E,
+ 6226: 0x00004EAB,
+ 6227: 0x00004EAC,
+ 6228: 0x00004F6F,
+ 6229: 0x00004F9D,
+ 6230: 0x00004F8D,
+ 6231: 0x00004F73,
+ 6232: 0x00004F7F,
+ 6233: 0x00004F6C,
+ 6234: 0x00004F9B,
+ 6235: 0x00004F8B,
+ 6236: 0x00004F86,
+ 6237: 0x00004F83,
+ 6238: 0x00004F70,
+ 6239: 0x00004F75,
+ 6240: 0x00004F88,
+ 6241: 0x00004F69,
+ 6242: 0x00004F7B,
+ 6243: 0x00004F96,
+ 6244: 0x00004F7E,
+ 6245: 0x00004F8F,
+ 6246: 0x00004F91,
+ 6247: 0x00004F7A,
+ 6248: 0x00005154,
+ 6249: 0x00005152,
+ 6250: 0x00005155,
+ 6251: 0x00005169,
+ 6252: 0x00005177,
+ 6253: 0x00005176,
+ 6254: 0x00005178,
+ 6255: 0x000051BD,
+ 6256: 0x000051FD,
+ 6257: 0x0000523B,
+ 6258: 0x00005238,
+ 6259: 0x00005237,
+ 6260: 0x0000523A,
+ 6261: 0x00005230,
+ 6262: 0x0000522E,
+ 6263: 0x00005236,
+ 6264: 0x00005241,
+ 6265: 0x000052BE,
+ 6266: 0x000052BB,
+ 6267: 0x00005352,
+ 6268: 0x00005354,
+ 6269: 0x00005353,
+ 6270: 0x00005351,
+ 6271: 0x00005366,
+ 6272: 0x00005377,
+ 6273: 0x00005378,
+ 6274: 0x00005379,
+ 6275: 0x000053D6,
+ 6276: 0x000053D4,
+ 6277: 0x000053D7,
+ 6278: 0x00005473,
+ 6279: 0x00005475,
+ 6280: 0x00005496,
+ 6281: 0x00005478,
+ 6282: 0x00005495,
+ 6283: 0x00005480,
+ 6284: 0x0000547B,
+ 6285: 0x00005477,
+ 6286: 0x00005484,
+ 6287: 0x00005492,
+ 6288: 0x00005486,
+ 6289: 0x0000547C,
+ 6290: 0x00005490,
+ 6291: 0x00005471,
+ 6292: 0x00005476,
+ 6293: 0x0000548C,
+ 6294: 0x0000549A,
+ 6295: 0x00005462,
+ 6296: 0x00005468,
+ 6297: 0x0000548B,
+ 6298: 0x0000547D,
+ 6299: 0x0000548E,
+ 6300: 0x000056FA,
+ 6301: 0x00005783,
+ 6302: 0x00005777,
+ 6303: 0x0000576A,
+ 6304: 0x00005769,
+ 6305: 0x00005761,
+ 6306: 0x00005766,
+ 6307: 0x00005764,
+ 6308: 0x0000577C,
+ 6309: 0x0000591C,
+ 6310: 0x00005949,
+ 6311: 0x00005947,
+ 6312: 0x00005948,
+ 6313: 0x00005944,
+ 6314: 0x00005954,
+ 6315: 0x000059BE,
+ 6316: 0x000059BB,
+ 6317: 0x000059D4,
+ 6318: 0x000059B9,
+ 6319: 0x000059AE,
+ 6320: 0x000059D1,
+ 6321: 0x000059C6,
+ 6322: 0x000059D0,
+ 6323: 0x000059CD,
+ 6324: 0x000059CB,
+ 6325: 0x000059D3,
+ 6326: 0x000059CA,
+ 6327: 0x000059AF,
+ 6328: 0x000059B3,
+ 6329: 0x000059D2,
+ 6330: 0x000059C5,
+ 6331: 0x00005B5F,
+ 6332: 0x00005B64,
+ 6333: 0x00005B63,
+ 6334: 0x00005B97,
+ 6335: 0x00005B9A,
+ 6336: 0x00005B98,
+ 6337: 0x00005B9C,
+ 6338: 0x00005B99,
+ 6339: 0x00005B9B,
+ 6340: 0x00005C1A,
+ 6341: 0x00005C48,
+ 6342: 0x00005C45,
+ 6343: 0x00005C46,
+ 6344: 0x00005CB7,
+ 6345: 0x00005CA1,
+ 6346: 0x00005CB8,
+ 6347: 0x00005CA9,
+ 6348: 0x00005CAB,
+ 6349: 0x00005CB1,
+ 6350: 0x00005CB3,
+ 6351: 0x00005E18,
+ 6352: 0x00005E1A,
+ 6353: 0x00005E16,
+ 6354: 0x00005E15,
+ 6355: 0x00005E1B,
+ 6356: 0x00005E11,
+ 6357: 0x00005E78,
+ 6358: 0x00005E9A,
+ 6359: 0x00005E97,
+ 6360: 0x00005E9C,
+ 6361: 0x00005E95,
+ 6362: 0x00005E96,
+ 6363: 0x00005EF6,
+ 6364: 0x00005F26,
+ 6365: 0x00005F27,
+ 6366: 0x00005F29,
+ 6367: 0x00005F80,
+ 6368: 0x00005F81,
+ 6369: 0x00005F7F,
+ 6370: 0x00005F7C,
+ 6371: 0x00005FDD,
+ 6372: 0x00005FE0,
+ 6373: 0x00005FFD,
+ 6374: 0x00005FF5,
+ 6375: 0x00005FFF,
+ 6376: 0x0000600F,
+ 6377: 0x00006014,
+ 6378: 0x0000602F,
+ 6379: 0x00006035,
+ 6380: 0x00006016,
+ 6381: 0x0000602A,
+ 6382: 0x00006015,
+ 6383: 0x00006021,
+ 6384: 0x00006027,
+ 6385: 0x00006029,
+ 6386: 0x0000602B,
+ 6387: 0x0000601B,
+ 6388: 0x00006216,
+ 6389: 0x00006215,
+ 6390: 0x0000623F,
+ 6391: 0x0000623E,
+ 6392: 0x00006240,
+ 6393: 0x0000627F,
+ 6394: 0x000062C9,
+ 6395: 0x000062CC,
+ 6396: 0x000062C4,
+ 6397: 0x000062BF,
+ 6398: 0x000062C2,
+ 6399: 0x000062B9,
+ 6400: 0x000062D2,
+ 6401: 0x000062DB,
+ 6402: 0x000062AB,
+ 6403: 0x000062D3,
+ 6404: 0x000062D4,
+ 6405: 0x000062CB,
+ 6406: 0x000062C8,
+ 6407: 0x000062A8,
+ 6408: 0x000062BD,
+ 6409: 0x000062BC,
+ 6410: 0x000062D0,
+ 6411: 0x000062D9,
+ 6412: 0x000062C7,
+ 6413: 0x000062CD,
+ 6414: 0x000062B5,
+ 6415: 0x000062DA,
+ 6416: 0x000062B1,
+ 6417: 0x000062D8,
+ 6418: 0x000062D6,
+ 6419: 0x000062D7,
+ 6420: 0x000062C6,
+ 6421: 0x000062AC,
+ 6422: 0x000062CE,
+ 6423: 0x0000653E,
+ 6424: 0x000065A7,
+ 6425: 0x000065BC,
+ 6426: 0x000065FA,
+ 6427: 0x00006614,
+ 6428: 0x00006613,
+ 6429: 0x0000660C,
+ 6430: 0x00006606,
+ 6431: 0x00006602,
+ 6432: 0x0000660E,
+ 6433: 0x00006600,
+ 6434: 0x0000660F,
+ 6435: 0x00006615,
+ 6436: 0x0000660A,
+ 6437: 0x00006607,
+ 6438: 0x0000670D,
+ 6439: 0x0000670B,
+ 6440: 0x0000676D,
+ 6441: 0x0000678B,
+ 6442: 0x00006795,
+ 6443: 0x00006771,
+ 6444: 0x0000679C,
+ 6445: 0x00006773,
+ 6446: 0x00006777,
+ 6447: 0x00006787,
+ 6448: 0x0000679D,
+ 6449: 0x00006797,
+ 6450: 0x0000676F,
+ 6451: 0x00006770,
+ 6452: 0x0000677F,
+ 6453: 0x00006789,
+ 6454: 0x0000677E,
+ 6455: 0x00006790,
+ 6456: 0x00006775,
+ 6457: 0x0000679A,
+ 6458: 0x00006793,
+ 6459: 0x0000677C,
+ 6460: 0x0000676A,
+ 6461: 0x00006772,
+ 6462: 0x00006B23,
+ 6463: 0x00006B66,
+ 6464: 0x00006B67,
+ 6465: 0x00006B7F,
+ 6466: 0x00006C13,
+ 6467: 0x00006C1B,
+ 6468: 0x00006CE3,
+ 6469: 0x00006CE8,
+ 6470: 0x00006CF3,
+ 6471: 0x00006CB1,
+ 6472: 0x00006CCC,
+ 6473: 0x00006CE5,
+ 6474: 0x00006CB3,
+ 6475: 0x00006CBD,
+ 6476: 0x00006CBE,
+ 6477: 0x00006CBC,
+ 6478: 0x00006CE2,
+ 6479: 0x00006CAB,
+ 6480: 0x00006CD5,
+ 6481: 0x00006CD3,
+ 6482: 0x00006CB8,
+ 6483: 0x00006CC4,
+ 6484: 0x00006CB9,
+ 6485: 0x00006CC1,
+ 6486: 0x00006CAE,
+ 6487: 0x00006CD7,
+ 6488: 0x00006CC5,
+ 6489: 0x00006CF1,
+ 6490: 0x00006CBF,
+ 6491: 0x00006CBB,
+ 6492: 0x00006CE1,
+ 6493: 0x00006CDB,
+ 6494: 0x00006CCA,
+ 6495: 0x00006CAC,
+ 6496: 0x00006CEF,
+ 6497: 0x00006CDC,
+ 6498: 0x00006CD6,
+ 6499: 0x00006CE0,
+ 6500: 0x00007095,
+ 6501: 0x0000708E,
+ 6502: 0x00007092,
+ 6503: 0x0000708A,
+ 6504: 0x00007099,
+ 6505: 0x0000722C,
+ 6506: 0x0000722D,
+ 6507: 0x00007238,
+ 6508: 0x00007248,
+ 6509: 0x00007267,
+ 6510: 0x00007269,
+ 6511: 0x000072C0,
+ 6512: 0x000072CE,
+ 6513: 0x000072D9,
+ 6514: 0x000072D7,
+ 6515: 0x000072D0,
+ 6516: 0x000073A9,
+ 6517: 0x000073A8,
+ 6518: 0x0000739F,
+ 6519: 0x000073AB,
+ 6520: 0x000073A5,
+ 6521: 0x0000753D,
+ 6522: 0x0000759D,
+ 6523: 0x00007599,
+ 6524: 0x0000759A,
+ 6525: 0x00007684,
+ 6526: 0x000076C2,
+ 6527: 0x000076F2,
+ 6528: 0x000076F4,
+ 6529: 0x000077E5,
+ 6530: 0x000077FD,
+ 6531: 0x0000793E,
+ 6532: 0x00007940,
+ 6533: 0x00007941,
+ 6534: 0x000079C9,
+ 6535: 0x000079C8,
+ 6536: 0x00007A7A,
+ 6537: 0x00007A79,
+ 6538: 0x00007AFA,
+ 6539: 0x00007CFE,
+ 6540: 0x00007F54,
+ 6541: 0x00007F8C,
+ 6542: 0x00007F8B,
+ 6543: 0x00008005,
+ 6544: 0x000080BA,
+ 6545: 0x000080A5,
+ 6546: 0x000080A2,
+ 6547: 0x000080B1,
+ 6548: 0x000080A1,
+ 6549: 0x000080AB,
+ 6550: 0x000080A9,
+ 6551: 0x000080B4,
+ 6552: 0x000080AA,
+ 6553: 0x000080AF,
+ 6554: 0x000081E5,
+ 6555: 0x000081FE,
+ 6556: 0x0000820D,
+ 6557: 0x000082B3,
+ 6558: 0x0000829D,
+ 6559: 0x00008299,
+ 6560: 0x000082AD,
+ 6561: 0x000082BD,
+ 6562: 0x0000829F,
+ 6563: 0x000082B9,
+ 6564: 0x000082B1,
+ 6565: 0x000082AC,
+ 6566: 0x000082A5,
+ 6567: 0x000082AF,
+ 6568: 0x000082B8,
+ 6569: 0x000082A3,
+ 6570: 0x000082B0,
+ 6571: 0x000082BE,
+ 6572: 0x000082B7,
+ 6573: 0x0000864E,
+ 6574: 0x00008671,
+ 6575: 0x0000521D,
+ 6576: 0x00008868,
+ 6577: 0x00008ECB,
+ 6578: 0x00008FCE,
+ 6579: 0x00008FD4,
+ 6580: 0x00008FD1,
+ 6581: 0x000090B5,
+ 6582: 0x000090B8,
+ 6583: 0x000090B1,
+ 6584: 0x000090B6,
+ 6585: 0x000091C7,
+ 6586: 0x000091D1,
+ 6587: 0x00009577,
+ 6588: 0x00009580,
+ 6589: 0x0000961C,
+ 6590: 0x00009640,
+ 6591: 0x0000963F,
+ 6592: 0x0000963B,
+ 6593: 0x00009644,
+ 6594: 0x00009642,
+ 6595: 0x000096B9,
+ 6596: 0x000096E8,
+ 6597: 0x00009752,
+ 6598: 0x0000975E,
+ 6599: 0x00004E9F,
+ 6600: 0x00004EAD,
+ 6601: 0x00004EAE,
+ 6602: 0x00004FE1,
+ 6603: 0x00004FB5,
+ 6604: 0x00004FAF,
+ 6605: 0x00004FBF,
+ 6606: 0x00004FE0,
+ 6607: 0x00004FD1,
+ 6608: 0x00004FCF,
+ 6609: 0x00004FDD,
+ 6610: 0x00004FC3,
+ 6611: 0x00004FB6,
+ 6612: 0x00004FD8,
+ 6613: 0x00004FDF,
+ 6614: 0x00004FCA,
+ 6615: 0x00004FD7,
+ 6616: 0x00004FAE,
+ 6617: 0x00004FD0,
+ 6618: 0x00004FC4,
+ 6619: 0x00004FC2,
+ 6620: 0x00004FDA,
+ 6621: 0x00004FCE,
+ 6622: 0x00004FDE,
+ 6623: 0x00004FB7,
+ 6624: 0x00005157,
+ 6625: 0x00005192,
+ 6626: 0x00005191,
+ 6627: 0x000051A0,
+ 6628: 0x0000524E,
+ 6629: 0x00005243,
+ 6630: 0x0000524A,
+ 6631: 0x0000524D,
+ 6632: 0x0000524C,
+ 6633: 0x0000524B,
+ 6634: 0x00005247,
+ 6635: 0x000052C7,
+ 6636: 0x000052C9,
+ 6637: 0x000052C3,
+ 6638: 0x000052C1,
+ 6639: 0x0000530D,
+ 6640: 0x00005357,
+ 6641: 0x0000537B,
+ 6642: 0x0000539A,
+ 6643: 0x000053DB,
+ 6644: 0x000054AC,
+ 6645: 0x000054C0,
+ 6646: 0x000054A8,
+ 6647: 0x000054CE,
+ 6648: 0x000054C9,
+ 6649: 0x000054B8,
+ 6650: 0x000054A6,
+ 6651: 0x000054B3,
+ 6652: 0x000054C7,
+ 6653: 0x000054C2,
+ 6654: 0x000054BD,
+ 6655: 0x000054AA,
+ 6656: 0x000054C1,
+ 6657: 0x000054C4,
+ 6658: 0x000054C8,
+ 6659: 0x000054AF,
+ 6660: 0x000054AB,
+ 6661: 0x000054B1,
+ 6662: 0x000054BB,
+ 6663: 0x000054A9,
+ 6664: 0x000054A7,
+ 6665: 0x000054BF,
+ 6666: 0x000056FF,
+ 6667: 0x00005782,
+ 6668: 0x0000578B,
+ 6669: 0x000057A0,
+ 6670: 0x000057A3,
+ 6671: 0x000057A2,
+ 6672: 0x000057CE,
+ 6673: 0x000057AE,
+ 6674: 0x00005793,
+ 6675: 0x00005955,
+ 6676: 0x00005951,
+ 6677: 0x0000594F,
+ 6678: 0x0000594E,
+ 6679: 0x00005950,
+ 6680: 0x000059DC,
+ 6681: 0x000059D8,
+ 6682: 0x000059FF,
+ 6683: 0x000059E3,
+ 6684: 0x000059E8,
+ 6685: 0x00005A03,
+ 6686: 0x000059E5,
+ 6687: 0x000059EA,
+ 6688: 0x000059DA,
+ 6689: 0x000059E6,
+ 6690: 0x00005A01,
+ 6691: 0x000059FB,
+ 6692: 0x00005B69,
+ 6693: 0x00005BA3,
+ 6694: 0x00005BA6,
+ 6695: 0x00005BA4,
+ 6696: 0x00005BA2,
+ 6697: 0x00005BA5,
+ 6698: 0x00005C01,
+ 6699: 0x00005C4E,
+ 6700: 0x00005C4F,
+ 6701: 0x00005C4D,
+ 6702: 0x00005C4B,
+ 6703: 0x00005CD9,
+ 6704: 0x00005CD2,
+ 6705: 0x00005DF7,
+ 6706: 0x00005E1D,
+ 6707: 0x00005E25,
+ 6708: 0x00005E1F,
+ 6709: 0x00005E7D,
+ 6710: 0x00005EA0,
+ 6711: 0x00005EA6,
+ 6712: 0x00005EFA,
+ 6713: 0x00005F08,
+ 6714: 0x00005F2D,
+ 6715: 0x00005F65,
+ 6716: 0x00005F88,
+ 6717: 0x00005F85,
+ 6718: 0x00005F8A,
+ 6719: 0x00005F8B,
+ 6720: 0x00005F87,
+ 6721: 0x00005F8C,
+ 6722: 0x00005F89,
+ 6723: 0x00006012,
+ 6724: 0x0000601D,
+ 6725: 0x00006020,
+ 6726: 0x00006025,
+ 6727: 0x0000600E,
+ 6728: 0x00006028,
+ 6729: 0x0000604D,
+ 6730: 0x00006070,
+ 6731: 0x00006068,
+ 6732: 0x00006062,
+ 6733: 0x00006046,
+ 6734: 0x00006043,
+ 6735: 0x0000606C,
+ 6736: 0x0000606B,
+ 6737: 0x0000606A,
+ 6738: 0x00006064,
+ 6739: 0x00006241,
+ 6740: 0x000062DC,
+ 6741: 0x00006316,
+ 6742: 0x00006309,
+ 6743: 0x000062FC,
+ 6744: 0x000062ED,
+ 6745: 0x00006301,
+ 6746: 0x000062EE,
+ 6747: 0x000062FD,
+ 6748: 0x00006307,
+ 6749: 0x000062F1,
+ 6750: 0x000062F7,
+ 6751: 0x000062EF,
+ 6752: 0x000062EC,
+ 6753: 0x000062FE,
+ 6754: 0x000062F4,
+ 6755: 0x00006311,
+ 6756: 0x00006302,
+ 6757: 0x0000653F,
+ 6758: 0x00006545,
+ 6759: 0x000065AB,
+ 6760: 0x000065BD,
+ 6761: 0x000065E2,
+ 6762: 0x00006625,
+ 6763: 0x0000662D,
+ 6764: 0x00006620,
+ 6765: 0x00006627,
+ 6766: 0x0000662F,
+ 6767: 0x0000661F,
+ 6768: 0x00006628,
+ 6769: 0x00006631,
+ 6770: 0x00006624,
+ 6771: 0x000066F7,
+ 6772: 0x000067FF,
+ 6773: 0x000067D3,
+ 6774: 0x000067F1,
+ 6775: 0x000067D4,
+ 6776: 0x000067D0,
+ 6777: 0x000067EC,
+ 6778: 0x000067B6,
+ 6779: 0x000067AF,
+ 6780: 0x000067F5,
+ 6781: 0x000067E9,
+ 6782: 0x000067EF,
+ 6783: 0x000067C4,
+ 6784: 0x000067D1,
+ 6785: 0x000067B4,
+ 6786: 0x000067DA,
+ 6787: 0x000067E5,
+ 6788: 0x000067B8,
+ 6789: 0x000067CF,
+ 6790: 0x000067DE,
+ 6791: 0x000067F3,
+ 6792: 0x000067B0,
+ 6793: 0x000067D9,
+ 6794: 0x000067E2,
+ 6795: 0x000067DD,
+ 6796: 0x000067D2,
+ 6797: 0x00006B6A,
+ 6798: 0x00006B83,
+ 6799: 0x00006B86,
+ 6800: 0x00006BB5,
+ 6801: 0x00006BD2,
+ 6802: 0x00006BD7,
+ 6803: 0x00006C1F,
+ 6804: 0x00006CC9,
+ 6805: 0x00006D0B,
+ 6806: 0x00006D32,
+ 6807: 0x00006D2A,
+ 6808: 0x00006D41,
+ 6809: 0x00006D25,
+ 6810: 0x00006D0C,
+ 6811: 0x00006D31,
+ 6812: 0x00006D1E,
+ 6813: 0x00006D17,
+ 6814: 0x00006D3B,
+ 6815: 0x00006D3D,
+ 6816: 0x00006D3E,
+ 6817: 0x00006D36,
+ 6818: 0x00006D1B,
+ 6819: 0x00006CF5,
+ 6820: 0x00006D39,
+ 6821: 0x00006D27,
+ 6822: 0x00006D38,
+ 6823: 0x00006D29,
+ 6824: 0x00006D2E,
+ 6825: 0x00006D35,
+ 6826: 0x00006D0E,
+ 6827: 0x00006D2B,
+ 6828: 0x000070AB,
+ 6829: 0x000070BA,
+ 6830: 0x000070B3,
+ 6831: 0x000070AC,
+ 6832: 0x000070AF,
+ 6833: 0x000070AD,
+ 6834: 0x000070B8,
+ 6835: 0x000070AE,
+ 6836: 0x000070A4,
+ 6837: 0x00007230,
+ 6838: 0x00007272,
+ 6839: 0x0000726F,
+ 6840: 0x00007274,
+ 6841: 0x000072E9,
+ 6842: 0x000072E0,
+ 6843: 0x000072E1,
+ 6844: 0x000073B7,
+ 6845: 0x000073CA,
+ 6846: 0x000073BB,
+ 6847: 0x000073B2,
+ 6848: 0x000073CD,
+ 6849: 0x000073C0,
+ 6850: 0x000073B3,
+ 6851: 0x0000751A,
+ 6852: 0x0000752D,
+ 6853: 0x0000754F,
+ 6854: 0x0000754C,
+ 6855: 0x0000754E,
+ 6856: 0x0000754B,
+ 6857: 0x000075AB,
+ 6858: 0x000075A4,
+ 6859: 0x000075A5,
+ 6860: 0x000075A2,
+ 6861: 0x000075A3,
+ 6862: 0x00007678,
+ 6863: 0x00007686,
+ 6864: 0x00007687,
+ 6865: 0x00007688,
+ 6866: 0x000076C8,
+ 6867: 0x000076C6,
+ 6868: 0x000076C3,
+ 6869: 0x000076C5,
+ 6870: 0x00007701,
+ 6871: 0x000076F9,
+ 6872: 0x000076F8,
+ 6873: 0x00007709,
+ 6874: 0x0000770B,
+ 6875: 0x000076FE,
+ 6876: 0x000076FC,
+ 6877: 0x00007707,
+ 6878: 0x000077DC,
+ 6879: 0x00007802,
+ 6880: 0x00007814,
+ 6881: 0x0000780C,
+ 6882: 0x0000780D,
+ 6883: 0x00007946,
+ 6884: 0x00007949,
+ 6885: 0x00007948,
+ 6886: 0x00007947,
+ 6887: 0x000079B9,
+ 6888: 0x000079BA,
+ 6889: 0x000079D1,
+ 6890: 0x000079D2,
+ 6891: 0x000079CB,
+ 6892: 0x00007A7F,
+ 6893: 0x00007A81,
+ 6894: 0x00007AFF,
+ 6895: 0x00007AFD,
+ 6896: 0x00007C7D,
+ 6897: 0x00007D02,
+ 6898: 0x00007D05,
+ 6899: 0x00007D00,
+ 6900: 0x00007D09,
+ 6901: 0x00007D07,
+ 6902: 0x00007D04,
+ 6903: 0x00007D06,
+ 6904: 0x00007F38,
+ 6905: 0x00007F8E,
+ 6906: 0x00007FBF,
+ 6907: 0x00008004,
+ 6908: 0x00008010,
+ 6909: 0x0000800D,
+ 6910: 0x00008011,
+ 6911: 0x00008036,
+ 6912: 0x000080D6,
+ 6913: 0x000080E5,
+ 6914: 0x000080DA,
+ 6915: 0x000080C3,
+ 6916: 0x000080C4,
+ 6917: 0x000080CC,
+ 6918: 0x000080E1,
+ 6919: 0x000080DB,
+ 6920: 0x000080CE,
+ 6921: 0x000080DE,
+ 6922: 0x000080E4,
+ 6923: 0x000080DD,
+ 6924: 0x000081F4,
+ 6925: 0x00008222,
+ 6926: 0x000082E7,
+ 6927: 0x00008303,
+ 6928: 0x00008305,
+ 6929: 0x000082E3,
+ 6930: 0x000082DB,
+ 6931: 0x000082E6,
+ 6932: 0x00008304,
+ 6933: 0x000082E5,
+ 6934: 0x00008302,
+ 6935: 0x00008309,
+ 6936: 0x000082D2,
+ 6937: 0x000082D7,
+ 6938: 0x000082F1,
+ 6939: 0x00008301,
+ 6940: 0x000082DC,
+ 6941: 0x000082D4,
+ 6942: 0x000082D1,
+ 6943: 0x000082DE,
+ 6944: 0x000082D3,
+ 6945: 0x000082DF,
+ 6946: 0x000082EF,
+ 6947: 0x00008306,
+ 6948: 0x00008650,
+ 6949: 0x00008679,
+ 6950: 0x0000867B,
+ 6951: 0x0000867A,
+ 6952: 0x0000884D,
+ 6953: 0x0000886B,
+ 6954: 0x00008981,
+ 6955: 0x000089D4,
+ 6956: 0x00008A08,
+ 6957: 0x00008A02,
+ 6958: 0x00008A03,
+ 6959: 0x00008C9E,
+ 6960: 0x00008CA0,
+ 6961: 0x00008D74,
+ 6962: 0x00008D73,
+ 6963: 0x00008DB4,
+ 6964: 0x00008ECD,
+ 6965: 0x00008ECC,
+ 6966: 0x00008FF0,
+ 6967: 0x00008FE6,
+ 6968: 0x00008FE2,
+ 6969: 0x00008FEA,
+ 6970: 0x00008FE5,
+ 6971: 0x00008FED,
+ 6972: 0x00008FEB,
+ 6973: 0x00008FE4,
+ 6974: 0x00008FE8,
+ 6975: 0x000090CA,
+ 6976: 0x000090CE,
+ 6977: 0x000090C1,
+ 6978: 0x000090C3,
+ 6979: 0x0000914B,
+ 6980: 0x0000914A,
+ 6981: 0x000091CD,
+ 6982: 0x00009582,
+ 6983: 0x00009650,
+ 6984: 0x0000964B,
+ 6985: 0x0000964C,
+ 6986: 0x0000964D,
+ 6987: 0x00009762,
+ 6988: 0x00009769,
+ 6989: 0x000097CB,
+ 6990: 0x000097ED,
+ 6991: 0x000097F3,
+ 6992: 0x00009801,
+ 6993: 0x000098A8,
+ 6994: 0x000098DB,
+ 6995: 0x000098DF,
+ 6996: 0x00009996,
+ 6997: 0x00009999,
+ 6998: 0x00004E58,
+ 6999: 0x00004EB3,
+ 7000: 0x0000500C,
+ 7001: 0x0000500D,
+ 7002: 0x00005023,
+ 7003: 0x00004FEF,
+ 7004: 0x00005026,
+ 7005: 0x00005025,
+ 7006: 0x00004FF8,
+ 7007: 0x00005029,
+ 7008: 0x00005016,
+ 7009: 0x00005006,
+ 7010: 0x0000503C,
+ 7011: 0x0000501F,
+ 7012: 0x0000501A,
+ 7013: 0x00005012,
+ 7014: 0x00005011,
+ 7015: 0x00004FFA,
+ 7016: 0x00005000,
+ 7017: 0x00005014,
+ 7018: 0x00005028,
+ 7019: 0x00004FF1,
+ 7020: 0x00005021,
+ 7021: 0x0000500B,
+ 7022: 0x00005019,
+ 7023: 0x00005018,
+ 7024: 0x00004FF3,
+ 7025: 0x00004FEE,
+ 7026: 0x0000502D,
+ 7027: 0x0000502A,
+ 7028: 0x00004FFE,
+ 7029: 0x0000502B,
+ 7030: 0x00005009,
+ 7031: 0x0000517C,
+ 7032: 0x000051A4,
+ 7033: 0x000051A5,
+ 7034: 0x000051A2,
+ 7035: 0x000051CD,
+ 7036: 0x000051CC,
+ 7037: 0x000051C6,
+ 7038: 0x000051CB,
+ 7039: 0x00005256,
+ 7040: 0x0000525C,
+ 7041: 0x00005254,
+ 7042: 0x0000525B,
+ 7043: 0x0000525D,
+ 7044: 0x0000532A,
+ 7045: 0x0000537F,
+ 7046: 0x0000539F,
+ 7047: 0x0000539D,
+ 7048: 0x000053DF,
+ 7049: 0x000054E8,
+ 7050: 0x00005510,
+ 7051: 0x00005501,
+ 7052: 0x00005537,
+ 7053: 0x000054FC,
+ 7054: 0x000054E5,
+ 7055: 0x000054F2,
+ 7056: 0x00005506,
+ 7057: 0x000054FA,
+ 7058: 0x00005514,
+ 7059: 0x000054E9,
+ 7060: 0x000054ED,
+ 7061: 0x000054E1,
+ 7062: 0x00005509,
+ 7063: 0x000054EE,
+ 7064: 0x000054EA,
+ 7065: 0x000054E6,
+ 7066: 0x00005527,
+ 7067: 0x00005507,
+ 7068: 0x000054FD,
+ 7069: 0x0000550F,
+ 7070: 0x00005703,
+ 7071: 0x00005704,
+ 7072: 0x000057C2,
+ 7073: 0x000057D4,
+ 7074: 0x000057CB,
+ 7075: 0x000057C3,
+ 7076: 0x00005809,
+ 7077: 0x0000590F,
+ 7078: 0x00005957,
+ 7079: 0x00005958,
+ 7080: 0x0000595A,
+ 7081: 0x00005A11,
+ 7082: 0x00005A18,
+ 7083: 0x00005A1C,
+ 7084: 0x00005A1F,
+ 7085: 0x00005A1B,
+ 7086: 0x00005A13,
+ 7087: 0x000059EC,
+ 7088: 0x00005A20,
+ 7089: 0x00005A23,
+ 7090: 0x00005A29,
+ 7091: 0x00005A25,
+ 7092: 0x00005A0C,
+ 7093: 0x00005A09,
+ 7094: 0x00005B6B,
+ 7095: 0x00005C58,
+ 7096: 0x00005BB0,
+ 7097: 0x00005BB3,
+ 7098: 0x00005BB6,
+ 7099: 0x00005BB4,
+ 7100: 0x00005BAE,
+ 7101: 0x00005BB5,
+ 7102: 0x00005BB9,
+ 7103: 0x00005BB8,
+ 7104: 0x00005C04,
+ 7105: 0x00005C51,
+ 7106: 0x00005C55,
+ 7107: 0x00005C50,
+ 7108: 0x00005CED,
+ 7109: 0x00005CFD,
+ 7110: 0x00005CFB,
+ 7111: 0x00005CEA,
+ 7112: 0x00005CE8,
+ 7113: 0x00005CF0,
+ 7114: 0x00005CF6,
+ 7115: 0x00005D01,
+ 7116: 0x00005CF4,
+ 7117: 0x00005DEE,
+ 7118: 0x00005E2D,
+ 7119: 0x00005E2B,
+ 7120: 0x00005EAB,
+ 7121: 0x00005EAD,
+ 7122: 0x00005EA7,
+ 7123: 0x00005F31,
+ 7124: 0x00005F92,
+ 7125: 0x00005F91,
+ 7126: 0x00005F90,
+ 7127: 0x00006059,
+ 7128: 0x00006063,
+ 7129: 0x00006065,
+ 7130: 0x00006050,
+ 7131: 0x00006055,
+ 7132: 0x0000606D,
+ 7133: 0x00006069,
+ 7134: 0x0000606F,
+ 7135: 0x00006084,
+ 7136: 0x0000609F,
+ 7137: 0x0000609A,
+ 7138: 0x0000608D,
+ 7139: 0x00006094,
+ 7140: 0x0000608C,
+ 7141: 0x00006085,
+ 7142: 0x00006096,
+ 7143: 0x00006247,
+ 7144: 0x000062F3,
+ 7145: 0x00006308,
+ 7146: 0x000062FF,
+ 7147: 0x0000634E,
+ 7148: 0x0000633E,
+ 7149: 0x0000632F,
+ 7150: 0x00006355,
+ 7151: 0x00006342,
+ 7152: 0x00006346,
+ 7153: 0x0000634F,
+ 7154: 0x00006349,
+ 7155: 0x0000633A,
+ 7156: 0x00006350,
+ 7157: 0x0000633D,
+ 7158: 0x0000632A,
+ 7159: 0x0000632B,
+ 7160: 0x00006328,
+ 7161: 0x0000634D,
+ 7162: 0x0000634C,
+ 7163: 0x00006548,
+ 7164: 0x00006549,
+ 7165: 0x00006599,
+ 7166: 0x000065C1,
+ 7167: 0x000065C5,
+ 7168: 0x00006642,
+ 7169: 0x00006649,
+ 7170: 0x0000664F,
+ 7171: 0x00006643,
+ 7172: 0x00006652,
+ 7173: 0x0000664C,
+ 7174: 0x00006645,
+ 7175: 0x00006641,
+ 7176: 0x000066F8,
+ 7177: 0x00006714,
+ 7178: 0x00006715,
+ 7179: 0x00006717,
+ 7180: 0x00006821,
+ 7181: 0x00006838,
+ 7182: 0x00006848,
+ 7183: 0x00006846,
+ 7184: 0x00006853,
+ 7185: 0x00006839,
+ 7186: 0x00006842,
+ 7187: 0x00006854,
+ 7188: 0x00006829,
+ 7189: 0x000068B3,
+ 7190: 0x00006817,
+ 7191: 0x0000684C,
+ 7192: 0x00006851,
+ 7193: 0x0000683D,
+ 7194: 0x000067F4,
+ 7195: 0x00006850,
+ 7196: 0x00006840,
+ 7197: 0x0000683C,
+ 7198: 0x00006843,
+ 7199: 0x0000682A,
+ 7200: 0x00006845,
+ 7201: 0x00006813,
+ 7202: 0x00006818,
+ 7203: 0x00006841,
+ 7204: 0x00006B8A,
+ 7205: 0x00006B89,
+ 7206: 0x00006BB7,
+ 7207: 0x00006C23,
+ 7208: 0x00006C27,
+ 7209: 0x00006C28,
+ 7210: 0x00006C26,
+ 7211: 0x00006C24,
+ 7212: 0x00006CF0,
+ 7213: 0x00006D6A,
+ 7214: 0x00006D95,
+ 7215: 0x00006D88,
+ 7216: 0x00006D87,
+ 7217: 0x00006D66,
+ 7218: 0x00006D78,
+ 7219: 0x00006D77,
+ 7220: 0x00006D59,
+ 7221: 0x00006D93,
+ 7222: 0x00006D6C,
+ 7223: 0x00006D89,
+ 7224: 0x00006D6E,
+ 7225: 0x00006D5A,
+ 7226: 0x00006D74,
+ 7227: 0x00006D69,
+ 7228: 0x00006D8C,
+ 7229: 0x00006D8A,
+ 7230: 0x00006D79,
+ 7231: 0x00006D85,
+ 7232: 0x00006D65,
+ 7233: 0x00006D94,
+ 7234: 0x000070CA,
+ 7235: 0x000070D8,
+ 7236: 0x000070E4,
+ 7237: 0x000070D9,
+ 7238: 0x000070C8,
+ 7239: 0x000070CF,
+ 7240: 0x00007239,
+ 7241: 0x00007279,
+ 7242: 0x000072FC,
+ 7243: 0x000072F9,
+ 7244: 0x000072FD,
+ 7245: 0x000072F8,
+ 7246: 0x000072F7,
+ 7247: 0x00007386,
+ 7248: 0x000073ED,
+ 7249: 0x00007409,
+ 7250: 0x000073EE,
+ 7251: 0x000073E0,
+ 7252: 0x000073EA,
+ 7253: 0x000073DE,
+ 7254: 0x00007554,
+ 7255: 0x0000755D,
+ 7256: 0x0000755C,
+ 7257: 0x0000755A,
+ 7258: 0x00007559,
+ 7259: 0x000075BE,
+ 7260: 0x000075C5,
+ 7261: 0x000075C7,
+ 7262: 0x000075B2,
+ 7263: 0x000075B3,
+ 7264: 0x000075BD,
+ 7265: 0x000075BC,
+ 7266: 0x000075B9,
+ 7267: 0x000075C2,
+ 7268: 0x000075B8,
+ 7269: 0x0000768B,
+ 7270: 0x000076B0,
+ 7271: 0x000076CA,
+ 7272: 0x000076CD,
+ 7273: 0x000076CE,
+ 7274: 0x00007729,
+ 7275: 0x0000771F,
+ 7276: 0x00007720,
+ 7277: 0x00007728,
+ 7278: 0x000077E9,
+ 7279: 0x00007830,
+ 7280: 0x00007827,
+ 7281: 0x00007838,
+ 7282: 0x0000781D,
+ 7283: 0x00007834,
+ 7284: 0x00007837,
+ 7285: 0x00007825,
+ 7286: 0x0000782D,
+ 7287: 0x00007820,
+ 7288: 0x0000781F,
+ 7289: 0x00007832,
+ 7290: 0x00007955,
+ 7291: 0x00007950,
+ 7292: 0x00007960,
+ 7293: 0x0000795F,
+ 7294: 0x00007956,
+ 7295: 0x0000795E,
+ 7296: 0x0000795D,
+ 7297: 0x00007957,
+ 7298: 0x0000795A,
+ 7299: 0x000079E4,
+ 7300: 0x000079E3,
+ 7301: 0x000079E7,
+ 7302: 0x000079DF,
+ 7303: 0x000079E6,
+ 7304: 0x000079E9,
+ 7305: 0x000079D8,
+ 7306: 0x00007A84,
+ 7307: 0x00007A88,
+ 7308: 0x00007AD9,
+ 7309: 0x00007B06,
+ 7310: 0x00007B11,
+ 7311: 0x00007C89,
+ 7312: 0x00007D21,
+ 7313: 0x00007D17,
+ 7314: 0x00007D0B,
+ 7315: 0x00007D0A,
+ 7316: 0x00007D20,
+ 7317: 0x00007D22,
+ 7318: 0x00007D14,
+ 7319: 0x00007D10,
+ 7320: 0x00007D15,
+ 7321: 0x00007D1A,
+ 7322: 0x00007D1C,
+ 7323: 0x00007D0D,
+ 7324: 0x00007D19,
+ 7325: 0x00007D1B,
+ 7326: 0x00007F3A,
+ 7327: 0x00007F5F,
+ 7328: 0x00007F94,
+ 7329: 0x00007FC5,
+ 7330: 0x00007FC1,
+ 7331: 0x00008006,
+ 7332: 0x00008018,
+ 7333: 0x00008015,
+ 7334: 0x00008019,
+ 7335: 0x00008017,
+ 7336: 0x0000803D,
+ 7337: 0x0000803F,
+ 7338: 0x000080F1,
+ 7339: 0x00008102,
+ 7340: 0x000080F0,
+ 7341: 0x00008105,
+ 7342: 0x000080ED,
+ 7343: 0x000080F4,
+ 7344: 0x00008106,
+ 7345: 0x000080F8,
+ 7346: 0x000080F3,
+ 7347: 0x00008108,
+ 7348: 0x000080FD,
+ 7349: 0x0000810A,
+ 7350: 0x000080FC,
+ 7351: 0x000080EF,
+ 7352: 0x000081ED,
+ 7353: 0x000081EC,
+ 7354: 0x00008200,
+ 7355: 0x00008210,
+ 7356: 0x0000822A,
+ 7357: 0x0000822B,
+ 7358: 0x00008228,
+ 7359: 0x0000822C,
+ 7360: 0x000082BB,
+ 7361: 0x0000832B,
+ 7362: 0x00008352,
+ 7363: 0x00008354,
+ 7364: 0x0000834A,
+ 7365: 0x00008338,
+ 7366: 0x00008350,
+ 7367: 0x00008349,
+ 7368: 0x00008335,
+ 7369: 0x00008334,
+ 7370: 0x0000834F,
+ 7371: 0x00008332,
+ 7372: 0x00008339,
+ 7373: 0x00008336,
+ 7374: 0x00008317,
+ 7375: 0x00008340,
+ 7376: 0x00008331,
+ 7377: 0x00008328,
+ 7378: 0x00008343,
+ 7379: 0x00008654,
+ 7380: 0x0000868A,
+ 7381: 0x000086AA,
+ 7382: 0x00008693,
+ 7383: 0x000086A4,
+ 7384: 0x000086A9,
+ 7385: 0x0000868C,
+ 7386: 0x000086A3,
+ 7387: 0x0000869C,
+ 7388: 0x00008870,
+ 7389: 0x00008877,
+ 7390: 0x00008881,
+ 7391: 0x00008882,
+ 7392: 0x0000887D,
+ 7393: 0x00008879,
+ 7394: 0x00008A18,
+ 7395: 0x00008A10,
+ 7396: 0x00008A0E,
+ 7397: 0x00008A0C,
+ 7398: 0x00008A15,
+ 7399: 0x00008A0A,
+ 7400: 0x00008A17,
+ 7401: 0x00008A13,
+ 7402: 0x00008A16,
+ 7403: 0x00008A0F,
+ 7404: 0x00008A11,
+ 7405: 0x00008C48,
+ 7406: 0x00008C7A,
+ 7407: 0x00008C79,
+ 7408: 0x00008CA1,
+ 7409: 0x00008CA2,
+ 7410: 0x00008D77,
+ 7411: 0x00008EAC,
+ 7412: 0x00008ED2,
+ 7413: 0x00008ED4,
+ 7414: 0x00008ECF,
+ 7415: 0x00008FB1,
+ 7416: 0x00009001,
+ 7417: 0x00009006,
+ 7418: 0x00008FF7,
+ 7419: 0x00009000,
+ 7420: 0x00008FFA,
+ 7421: 0x00008FF4,
+ 7422: 0x00009003,
+ 7423: 0x00008FFD,
+ 7424: 0x00009005,
+ 7425: 0x00008FF8,
+ 7426: 0x00009095,
+ 7427: 0x000090E1,
+ 7428: 0x000090DD,
+ 7429: 0x000090E2,
+ 7430: 0x00009152,
+ 7431: 0x0000914D,
+ 7432: 0x0000914C,
+ 7433: 0x000091D8,
+ 7434: 0x000091DD,
+ 7435: 0x000091D7,
+ 7436: 0x000091DC,
+ 7437: 0x000091D9,
+ 7438: 0x00009583,
+ 7439: 0x00009662,
+ 7440: 0x00009663,
+ 7441: 0x00009661,
+ 7442: 0x0000965B,
+ 7443: 0x0000965D,
+ 7444: 0x00009664,
+ 7445: 0x00009658,
+ 7446: 0x0000965E,
+ 7447: 0x000096BB,
+ 7448: 0x000098E2,
+ 7449: 0x000099AC,
+ 7450: 0x00009AA8,
+ 7451: 0x00009AD8,
+ 7452: 0x00009B25,
+ 7453: 0x00009B32,
+ 7454: 0x00009B3C,
+ 7455: 0x00004E7E,
+ 7456: 0x0000507A,
+ 7457: 0x0000507D,
+ 7458: 0x0000505C,
+ 7459: 0x00005047,
+ 7460: 0x00005043,
+ 7461: 0x0000504C,
+ 7462: 0x0000505A,
+ 7463: 0x00005049,
+ 7464: 0x00005065,
+ 7465: 0x00005076,
+ 7466: 0x0000504E,
+ 7467: 0x00005055,
+ 7468: 0x00005075,
+ 7469: 0x00005074,
+ 7470: 0x00005077,
+ 7471: 0x0000504F,
+ 7472: 0x0000500F,
+ 7473: 0x0000506F,
+ 7474: 0x0000506D,
+ 7475: 0x0000515C,
+ 7476: 0x00005195,
+ 7477: 0x000051F0,
+ 7478: 0x0000526A,
+ 7479: 0x0000526F,
+ 7480: 0x000052D2,
+ 7481: 0x000052D9,
+ 7482: 0x000052D8,
+ 7483: 0x000052D5,
+ 7484: 0x00005310,
+ 7485: 0x0000530F,
+ 7486: 0x00005319,
+ 7487: 0x0000533F,
+ 7488: 0x00005340,
+ 7489: 0x0000533E,
+ 7490: 0x000053C3,
+ 7491: 0x000066FC,
+ 7492: 0x00005546,
+ 7493: 0x0000556A,
+ 7494: 0x00005566,
+ 7495: 0x00005544,
+ 7496: 0x0000555E,
+ 7497: 0x00005561,
+ 7498: 0x00005543,
+ 7499: 0x0000554A,
+ 7500: 0x00005531,
+ 7501: 0x00005556,
+ 7502: 0x0000554F,
+ 7503: 0x00005555,
+ 7504: 0x0000552F,
+ 7505: 0x00005564,
+ 7506: 0x00005538,
+ 7507: 0x0000552E,
+ 7508: 0x0000555C,
+ 7509: 0x0000552C,
+ 7510: 0x00005563,
+ 7511: 0x00005533,
+ 7512: 0x00005541,
+ 7513: 0x00005557,
+ 7514: 0x00005708,
+ 7515: 0x0000570B,
+ 7516: 0x00005709,
+ 7517: 0x000057DF,
+ 7518: 0x00005805,
+ 7519: 0x0000580A,
+ 7520: 0x00005806,
+ 7521: 0x000057E0,
+ 7522: 0x000057E4,
+ 7523: 0x000057FA,
+ 7524: 0x00005802,
+ 7525: 0x00005835,
+ 7526: 0x000057F7,
+ 7527: 0x000057F9,
+ 7528: 0x00005920,
+ 7529: 0x00005962,
+ 7530: 0x00005A36,
+ 7531: 0x00005A41,
+ 7532: 0x00005A49,
+ 7533: 0x00005A66,
+ 7534: 0x00005A6A,
+ 7535: 0x00005A40,
+ 7536: 0x00005A3C,
+ 7537: 0x00005A62,
+ 7538: 0x00005A5A,
+ 7539: 0x00005A46,
+ 7540: 0x00005A4A,
+ 7541: 0x00005B70,
+ 7542: 0x00005BC7,
+ 7543: 0x00005BC5,
+ 7544: 0x00005BC4,
+ 7545: 0x00005BC2,
+ 7546: 0x00005BBF,
+ 7547: 0x00005BC6,
+ 7548: 0x00005C09,
+ 7549: 0x00005C08,
+ 7550: 0x00005C07,
+ 7551: 0x00005C60,
+ 7552: 0x00005C5C,
+ 7553: 0x00005C5D,
+ 7554: 0x00005D07,
+ 7555: 0x00005D06,
+ 7556: 0x00005D0E,
+ 7557: 0x00005D1B,
+ 7558: 0x00005D16,
+ 7559: 0x00005D22,
+ 7560: 0x00005D11,
+ 7561: 0x00005D29,
+ 7562: 0x00005D14,
+ 7563: 0x00005D19,
+ 7564: 0x00005D24,
+ 7565: 0x00005D27,
+ 7566: 0x00005D17,
+ 7567: 0x00005DE2,
+ 7568: 0x00005E38,
+ 7569: 0x00005E36,
+ 7570: 0x00005E33,
+ 7571: 0x00005E37,
+ 7572: 0x00005EB7,
+ 7573: 0x00005EB8,
+ 7574: 0x00005EB6,
+ 7575: 0x00005EB5,
+ 7576: 0x00005EBE,
+ 7577: 0x00005F35,
+ 7578: 0x00005F37,
+ 7579: 0x00005F57,
+ 7580: 0x00005F6C,
+ 7581: 0x00005F69,
+ 7582: 0x00005F6B,
+ 7583: 0x00005F97,
+ 7584: 0x00005F99,
+ 7585: 0x00005F9E,
+ 7586: 0x00005F98,
+ 7587: 0x00005FA1,
+ 7588: 0x00005FA0,
+ 7589: 0x00005F9C,
+ 7590: 0x0000607F,
+ 7591: 0x000060A3,
+ 7592: 0x00006089,
+ 7593: 0x000060A0,
+ 7594: 0x000060A8,
+ 7595: 0x000060CB,
+ 7596: 0x000060B4,
+ 7597: 0x000060E6,
+ 7598: 0x000060BD,
+ 7599: 0x000060C5,
+ 7600: 0x000060BB,
+ 7601: 0x000060B5,
+ 7602: 0x000060DC,
+ 7603: 0x000060BC,
+ 7604: 0x000060D8,
+ 7605: 0x000060D5,
+ 7606: 0x000060C6,
+ 7607: 0x000060DF,
+ 7608: 0x000060B8,
+ 7609: 0x000060DA,
+ 7610: 0x000060C7,
+ 7611: 0x0000621A,
+ 7612: 0x0000621B,
+ 7613: 0x00006248,
+ 7614: 0x000063A0,
+ 7615: 0x000063A7,
+ 7616: 0x00006372,
+ 7617: 0x00006396,
+ 7618: 0x000063A2,
+ 7619: 0x000063A5,
+ 7620: 0x00006377,
+ 7621: 0x00006367,
+ 7622: 0x00006398,
+ 7623: 0x000063AA,
+ 7624: 0x00006371,
+ 7625: 0x000063A9,
+ 7626: 0x00006389,
+ 7627: 0x00006383,
+ 7628: 0x0000639B,
+ 7629: 0x0000636B,
+ 7630: 0x000063A8,
+ 7631: 0x00006384,
+ 7632: 0x00006388,
+ 7633: 0x00006399,
+ 7634: 0x000063A1,
+ 7635: 0x000063AC,
+ 7636: 0x00006392,
+ 7637: 0x0000638F,
+ 7638: 0x00006380,
+ 7639: 0x0000637B,
+ 7640: 0x00006369,
+ 7641: 0x00006368,
+ 7642: 0x0000637A,
+ 7643: 0x0000655D,
+ 7644: 0x00006556,
+ 7645: 0x00006551,
+ 7646: 0x00006559,
+ 7647: 0x00006557,
+ 7648: 0x0000555F,
+ 7649: 0x0000654F,
+ 7650: 0x00006558,
+ 7651: 0x00006555,
+ 7652: 0x00006554,
+ 7653: 0x0000659C,
+ 7654: 0x0000659B,
+ 7655: 0x000065AC,
+ 7656: 0x000065CF,
+ 7657: 0x000065CB,
+ 7658: 0x000065CC,
+ 7659: 0x000065CE,
+ 7660: 0x0000665D,
+ 7661: 0x0000665A,
+ 7662: 0x00006664,
+ 7663: 0x00006668,
+ 7664: 0x00006666,
+ 7665: 0x0000665E,
+ 7666: 0x000066F9,
+ 7667: 0x000052D7,
+ 7668: 0x0000671B,
+ 7669: 0x00006881,
+ 7670: 0x000068AF,
+ 7671: 0x000068A2,
+ 7672: 0x00006893,
+ 7673: 0x000068B5,
+ 7674: 0x0000687F,
+ 7675: 0x00006876,
+ 7676: 0x000068B1,
+ 7677: 0x000068A7,
+ 7678: 0x00006897,
+ 7679: 0x000068B0,
+ 7680: 0x00006883,
+ 7681: 0x000068C4,
+ 7682: 0x000068AD,
+ 7683: 0x00006886,
+ 7684: 0x00006885,
+ 7685: 0x00006894,
+ 7686: 0x0000689D,
+ 7687: 0x000068A8,
+ 7688: 0x0000689F,
+ 7689: 0x000068A1,
+ 7690: 0x00006882,
+ 7691: 0x00006B32,
+ 7692: 0x00006BBA,
+ 7693: 0x00006BEB,
+ 7694: 0x00006BEC,
+ 7695: 0x00006C2B,
+ 7696: 0x00006D8E,
+ 7697: 0x00006DBC,
+ 7698: 0x00006DF3,
+ 7699: 0x00006DD9,
+ 7700: 0x00006DB2,
+ 7701: 0x00006DE1,
+ 7702: 0x00006DCC,
+ 7703: 0x00006DE4,
+ 7704: 0x00006DFB,
+ 7705: 0x00006DFA,
+ 7706: 0x00006E05,
+ 7707: 0x00006DC7,
+ 7708: 0x00006DCB,
+ 7709: 0x00006DAF,
+ 7710: 0x00006DD1,
+ 7711: 0x00006DAE,
+ 7712: 0x00006DDE,
+ 7713: 0x00006DF9,
+ 7714: 0x00006DB8,
+ 7715: 0x00006DF7,
+ 7716: 0x00006DF5,
+ 7717: 0x00006DC5,
+ 7718: 0x00006DD2,
+ 7719: 0x00006E1A,
+ 7720: 0x00006DB5,
+ 7721: 0x00006DDA,
+ 7722: 0x00006DEB,
+ 7723: 0x00006DD8,
+ 7724: 0x00006DEA,
+ 7725: 0x00006DF1,
+ 7726: 0x00006DEE,
+ 7727: 0x00006DE8,
+ 7728: 0x00006DC6,
+ 7729: 0x00006DC4,
+ 7730: 0x00006DAA,
+ 7731: 0x00006DEC,
+ 7732: 0x00006DBF,
+ 7733: 0x00006DE6,
+ 7734: 0x000070F9,
+ 7735: 0x00007109,
+ 7736: 0x0000710A,
+ 7737: 0x000070FD,
+ 7738: 0x000070EF,
+ 7739: 0x0000723D,
+ 7740: 0x0000727D,
+ 7741: 0x00007281,
+ 7742: 0x0000731C,
+ 7743: 0x0000731B,
+ 7744: 0x00007316,
+ 7745: 0x00007313,
+ 7746: 0x00007319,
+ 7747: 0x00007387,
+ 7748: 0x00007405,
+ 7749: 0x0000740A,
+ 7750: 0x00007403,
+ 7751: 0x00007406,
+ 7752: 0x000073FE,
+ 7753: 0x0000740D,
+ 7754: 0x000074E0,
+ 7755: 0x000074F6,
+ 7756: 0x000074F7,
+ 7757: 0x0000751C,
+ 7758: 0x00007522,
+ 7759: 0x00007565,
+ 7760: 0x00007566,
+ 7761: 0x00007562,
+ 7762: 0x00007570,
+ 7763: 0x0000758F,
+ 7764: 0x000075D4,
+ 7765: 0x000075D5,
+ 7766: 0x000075B5,
+ 7767: 0x000075CA,
+ 7768: 0x000075CD,
+ 7769: 0x0000768E,
+ 7770: 0x000076D4,
+ 7771: 0x000076D2,
+ 7772: 0x000076DB,
+ 7773: 0x00007737,
+ 7774: 0x0000773E,
+ 7775: 0x0000773C,
+ 7776: 0x00007736,
+ 7777: 0x00007738,
+ 7778: 0x0000773A,
+ 7779: 0x0000786B,
+ 7780: 0x00007843,
+ 7781: 0x0000784E,
+ 7782: 0x00007965,
+ 7783: 0x00007968,
+ 7784: 0x0000796D,
+ 7785: 0x000079FB,
+ 7786: 0x00007A92,
+ 7787: 0x00007A95,
+ 7788: 0x00007B20,
+ 7789: 0x00007B28,
+ 7790: 0x00007B1B,
+ 7791: 0x00007B2C,
+ 7792: 0x00007B26,
+ 7793: 0x00007B19,
+ 7794: 0x00007B1E,
+ 7795: 0x00007B2E,
+ 7796: 0x00007C92,
+ 7797: 0x00007C97,
+ 7798: 0x00007C95,
+ 7799: 0x00007D46,
+ 7800: 0x00007D43,
+ 7801: 0x00007D71,
+ 7802: 0x00007D2E,
+ 7803: 0x00007D39,
+ 7804: 0x00007D3C,
+ 7805: 0x00007D40,
+ 7806: 0x00007D30,
+ 7807: 0x00007D33,
+ 7808: 0x00007D44,
+ 7809: 0x00007D2F,
+ 7810: 0x00007D42,
+ 7811: 0x00007D32,
+ 7812: 0x00007D31,
+ 7813: 0x00007F3D,
+ 7814: 0x00007F9E,
+ 7815: 0x00007F9A,
+ 7816: 0x00007FCC,
+ 7817: 0x00007FCE,
+ 7818: 0x00007FD2,
+ 7819: 0x0000801C,
+ 7820: 0x0000804A,
+ 7821: 0x00008046,
+ 7822: 0x0000812F,
+ 7823: 0x00008116,
+ 7824: 0x00008123,
+ 7825: 0x0000812B,
+ 7826: 0x00008129,
+ 7827: 0x00008130,
+ 7828: 0x00008124,
+ 7829: 0x00008202,
+ 7830: 0x00008235,
+ 7831: 0x00008237,
+ 7832: 0x00008236,
+ 7833: 0x00008239,
+ 7834: 0x0000838E,
+ 7835: 0x0000839E,
+ 7836: 0x00008398,
+ 7837: 0x00008378,
+ 7838: 0x000083A2,
+ 7839: 0x00008396,
+ 7840: 0x000083BD,
+ 7841: 0x000083AB,
+ 7842: 0x00008392,
+ 7843: 0x0000838A,
+ 7844: 0x00008393,
+ 7845: 0x00008389,
+ 7846: 0x000083A0,
+ 7847: 0x00008377,
+ 7848: 0x0000837B,
+ 7849: 0x0000837C,
+ 7850: 0x00008386,
+ 7851: 0x000083A7,
+ 7852: 0x00008655,
+ 7853: 0x00005F6A,
+ 7854: 0x000086C7,
+ 7855: 0x000086C0,
+ 7856: 0x000086B6,
+ 7857: 0x000086C4,
+ 7858: 0x000086B5,
+ 7859: 0x000086C6,
+ 7860: 0x000086CB,
+ 7861: 0x000086B1,
+ 7862: 0x000086AF,
+ 7863: 0x000086C9,
+ 7864: 0x00008853,
+ 7865: 0x0000889E,
+ 7866: 0x00008888,
+ 7867: 0x000088AB,
+ 7868: 0x00008892,
+ 7869: 0x00008896,
+ 7870: 0x0000888D,
+ 7871: 0x0000888B,
+ 7872: 0x00008993,
+ 7873: 0x0000898F,
+ 7874: 0x00008A2A,
+ 7875: 0x00008A1D,
+ 7876: 0x00008A23,
+ 7877: 0x00008A25,
+ 7878: 0x00008A31,
+ 7879: 0x00008A2D,
+ 7880: 0x00008A1F,
+ 7881: 0x00008A1B,
+ 7882: 0x00008A22,
+ 7883: 0x00008C49,
+ 7884: 0x00008C5A,
+ 7885: 0x00008CA9,
+ 7886: 0x00008CAC,
+ 7887: 0x00008CAB,
+ 7888: 0x00008CA8,
+ 7889: 0x00008CAA,
+ 7890: 0x00008CA7,
+ 7891: 0x00008D67,
+ 7892: 0x00008D66,
+ 7893: 0x00008DBE,
+ 7894: 0x00008DBA,
+ 7895: 0x00008EDB,
+ 7896: 0x00008EDF,
+ 7897: 0x00009019,
+ 7898: 0x0000900D,
+ 7899: 0x0000901A,
+ 7900: 0x00009017,
+ 7901: 0x00009023,
+ 7902: 0x0000901F,
+ 7903: 0x0000901D,
+ 7904: 0x00009010,
+ 7905: 0x00009015,
+ 7906: 0x0000901E,
+ 7907: 0x00009020,
+ 7908: 0x0000900F,
+ 7909: 0x00009022,
+ 7910: 0x00009016,
+ 7911: 0x0000901B,
+ 7912: 0x00009014,
+ 7913: 0x000090E8,
+ 7914: 0x000090ED,
+ 7915: 0x000090FD,
+ 7916: 0x00009157,
+ 7917: 0x000091CE,
+ 7918: 0x000091F5,
+ 7919: 0x000091E6,
+ 7920: 0x000091E3,
+ 7921: 0x000091E7,
+ 7922: 0x000091ED,
+ 7923: 0x000091E9,
+ 7924: 0x00009589,
+ 7925: 0x0000966A,
+ 7926: 0x00009675,
+ 7927: 0x00009673,
+ 7928: 0x00009678,
+ 7929: 0x00009670,
+ 7930: 0x00009674,
+ 7931: 0x00009676,
+ 7932: 0x00009677,
+ 7933: 0x0000966C,
+ 7934: 0x000096C0,
+ 7935: 0x000096EA,
+ 7936: 0x000096E9,
+ 7937: 0x00007AE0,
+ 7938: 0x00007ADF,
+ 7939: 0x00009802,
+ 7940: 0x00009803,
+ 7941: 0x00009B5A,
+ 7942: 0x00009CE5,
+ 7943: 0x00009E75,
+ 7944: 0x00009E7F,
+ 7945: 0x00009EA5,
+ 7946: 0x00009EBB,
+ 7947: 0x000050A2,
+ 7948: 0x0000508D,
+ 7949: 0x00005085,
+ 7950: 0x00005099,
+ 7951: 0x00005091,
+ 7952: 0x00005080,
+ 7953: 0x00005096,
+ 7954: 0x00005098,
+ 7955: 0x0000509A,
+ 7956: 0x00006700,
+ 7957: 0x000051F1,
+ 7958: 0x00005272,
+ 7959: 0x00005274,
+ 7960: 0x00005275,
+ 7961: 0x00005269,
+ 7962: 0x000052DE,
+ 7963: 0x000052DD,
+ 7964: 0x000052DB,
+ 7965: 0x0000535A,
+ 7966: 0x000053A5,
+ 7967: 0x0000557B,
+ 7968: 0x00005580,
+ 7969: 0x000055A7,
+ 7970: 0x0000557C,
+ 7971: 0x0000558A,
+ 7972: 0x0000559D,
+ 7973: 0x00005598,
+ 7974: 0x00005582,
+ 7975: 0x0000559C,
+ 7976: 0x000055AA,
+ 7977: 0x00005594,
+ 7978: 0x00005587,
+ 7979: 0x0000558B,
+ 7980: 0x00005583,
+ 7981: 0x000055B3,
+ 7982: 0x000055AE,
+ 7983: 0x0000559F,
+ 7984: 0x0000553E,
+ 7985: 0x000055B2,
+ 7986: 0x0000559A,
+ 7987: 0x000055BB,
+ 7988: 0x000055AC,
+ 7989: 0x000055B1,
+ 7990: 0x0000557E,
+ 7991: 0x00005589,
+ 7992: 0x000055AB,
+ 7993: 0x00005599,
+ 7994: 0x0000570D,
+ 7995: 0x0000582F,
+ 7996: 0x0000582A,
+ 7997: 0x00005834,
+ 7998: 0x00005824,
+ 7999: 0x00005830,
+ 8000: 0x00005831,
+ 8001: 0x00005821,
+ 8002: 0x0000581D,
+ 8003: 0x00005820,
+ 8004: 0x000058F9,
+ 8005: 0x000058FA,
+ 8006: 0x00005960,
+ 8007: 0x00005A77,
+ 8008: 0x00005A9A,
+ 8009: 0x00005A7F,
+ 8010: 0x00005A92,
+ 8011: 0x00005A9B,
+ 8012: 0x00005AA7,
+ 8013: 0x00005B73,
+ 8014: 0x00005B71,
+ 8015: 0x00005BD2,
+ 8016: 0x00005BCC,
+ 8017: 0x00005BD3,
+ 8018: 0x00005BD0,
+ 8019: 0x00005C0A,
+ 8020: 0x00005C0B,
+ 8021: 0x00005C31,
+ 8022: 0x00005D4C,
+ 8023: 0x00005D50,
+ 8024: 0x00005D34,
+ 8025: 0x00005D47,
+ 8026: 0x00005DFD,
+ 8027: 0x00005E45,
+ 8028: 0x00005E3D,
+ 8029: 0x00005E40,
+ 8030: 0x00005E43,
+ 8031: 0x00005E7E,
+ 8032: 0x00005ECA,
+ 8033: 0x00005EC1,
+ 8034: 0x00005EC2,
+ 8035: 0x00005EC4,
+ 8036: 0x00005F3C,
+ 8037: 0x00005F6D,
+ 8038: 0x00005FA9,
+ 8039: 0x00005FAA,
+ 8040: 0x00005FA8,
+ 8041: 0x000060D1,
+ 8042: 0x000060E1,
+ 8043: 0x000060B2,
+ 8044: 0x000060B6,
+ 8045: 0x000060E0,
+ 8046: 0x0000611C,
+ 8047: 0x00006123,
+ 8048: 0x000060FA,
+ 8049: 0x00006115,
+ 8050: 0x000060F0,
+ 8051: 0x000060FB,
+ 8052: 0x000060F4,
+ 8053: 0x00006168,
+ 8054: 0x000060F1,
+ 8055: 0x0000610E,
+ 8056: 0x000060F6,
+ 8057: 0x00006109,
+ 8058: 0x00006100,
+ 8059: 0x00006112,
+ 8060: 0x0000621F,
+ 8061: 0x00006249,
+ 8062: 0x000063A3,
+ 8063: 0x0000638C,
+ 8064: 0x000063CF,
+ 8065: 0x000063C0,
+ 8066: 0x000063E9,
+ 8067: 0x000063C9,
+ 8068: 0x000063C6,
+ 8069: 0x000063CD,
+ 8070: 0x000063D2,
+ 8071: 0x000063E3,
+ 8072: 0x000063D0,
+ 8073: 0x000063E1,
+ 8074: 0x000063D6,
+ 8075: 0x000063ED,
+ 8076: 0x000063EE,
+ 8077: 0x00006376,
+ 8078: 0x000063F4,
+ 8079: 0x000063EA,
+ 8080: 0x000063DB,
+ 8081: 0x00006452,
+ 8082: 0x000063DA,
+ 8083: 0x000063F9,
+ 8084: 0x0000655E,
+ 8085: 0x00006566,
+ 8086: 0x00006562,
+ 8087: 0x00006563,
+ 8088: 0x00006591,
+ 8089: 0x00006590,
+ 8090: 0x000065AF,
+ 8091: 0x0000666E,
+ 8092: 0x00006670,
+ 8093: 0x00006674,
+ 8094: 0x00006676,
+ 8095: 0x0000666F,
+ 8096: 0x00006691,
+ 8097: 0x0000667A,
+ 8098: 0x0000667E,
+ 8099: 0x00006677,
+ 8100: 0x000066FE,
+ 8101: 0x000066FF,
+ 8102: 0x0000671F,
+ 8103: 0x0000671D,
+ 8104: 0x000068FA,
+ 8105: 0x000068D5,
+ 8106: 0x000068E0,
+ 8107: 0x000068D8,
+ 8108: 0x000068D7,
+ 8109: 0x00006905,
+ 8110: 0x000068DF,
+ 8111: 0x000068F5,
+ 8112: 0x000068EE,
+ 8113: 0x000068E7,
+ 8114: 0x000068F9,
+ 8115: 0x000068D2,
+ 8116: 0x000068F2,
+ 8117: 0x000068E3,
+ 8118: 0x000068CB,
+ 8119: 0x000068CD,
+ 8120: 0x0000690D,
+ 8121: 0x00006912,
+ 8122: 0x0000690E,
+ 8123: 0x000068C9,
+ 8124: 0x000068DA,
+ 8125: 0x0000696E,
+ 8126: 0x000068FB,
+ 8127: 0x00006B3E,
+ 8128: 0x00006B3A,
+ 8129: 0x00006B3D,
+ 8130: 0x00006B98,
+ 8131: 0x00006B96,
+ 8132: 0x00006BBC,
+ 8133: 0x00006BEF,
+ 8134: 0x00006C2E,
+ 8135: 0x00006C2F,
+ 8136: 0x00006C2C,
+ 8137: 0x00006E2F,
+ 8138: 0x00006E38,
+ 8139: 0x00006E54,
+ 8140: 0x00006E21,
+ 8141: 0x00006E32,
+ 8142: 0x00006E67,
+ 8143: 0x00006E4A,
+ 8144: 0x00006E20,
+ 8145: 0x00006E25,
+ 8146: 0x00006E23,
+ 8147: 0x00006E1B,
+ 8148: 0x00006E5B,
+ 8149: 0x00006E58,
+ 8150: 0x00006E24,
+ 8151: 0x00006E56,
+ 8152: 0x00006E6E,
+ 8153: 0x00006E2D,
+ 8154: 0x00006E26,
+ 8155: 0x00006E6F,
+ 8156: 0x00006E34,
+ 8157: 0x00006E4D,
+ 8158: 0x00006E3A,
+ 8159: 0x00006E2C,
+ 8160: 0x00006E43,
+ 8161: 0x00006E1D,
+ 8162: 0x00006E3E,
+ 8163: 0x00006ECB,
+ 8164: 0x00006E89,
+ 8165: 0x00006E19,
+ 8166: 0x00006E4E,
+ 8167: 0x00006E63,
+ 8168: 0x00006E44,
+ 8169: 0x00006E72,
+ 8170: 0x00006E69,
+ 8171: 0x00006E5F,
+ 8172: 0x00007119,
+ 8173: 0x0000711A,
+ 8174: 0x00007126,
+ 8175: 0x00007130,
+ 8176: 0x00007121,
+ 8177: 0x00007136,
+ 8178: 0x0000716E,
+ 8179: 0x0000711C,
+ 8180: 0x0000724C,
+ 8181: 0x00007284,
+ 8182: 0x00007280,
+ 8183: 0x00007336,
+ 8184: 0x00007325,
+ 8185: 0x00007334,
+ 8186: 0x00007329,
+ 8187: 0x0000743A,
+ 8188: 0x0000742A,
+ 8189: 0x00007433,
+ 8190: 0x00007422,
+ 8191: 0x00007425,
+ 8192: 0x00007435,
+ 8193: 0x00007436,
+ 8194: 0x00007434,
+ 8195: 0x0000742F,
+ 8196: 0x0000741B,
+ 8197: 0x00007426,
+ 8198: 0x00007428,
+ 8199: 0x00007525,
+ 8200: 0x00007526,
+ 8201: 0x0000756B,
+ 8202: 0x0000756A,
+ 8203: 0x000075E2,
+ 8204: 0x000075DB,
+ 8205: 0x000075E3,
+ 8206: 0x000075D9,
+ 8207: 0x000075D8,
+ 8208: 0x000075DE,
+ 8209: 0x000075E0,
+ 8210: 0x0000767B,
+ 8211: 0x0000767C,
+ 8212: 0x00007696,
+ 8213: 0x00007693,
+ 8214: 0x000076B4,
+ 8215: 0x000076DC,
+ 8216: 0x0000774F,
+ 8217: 0x000077ED,
+ 8218: 0x0000785D,
+ 8219: 0x0000786C,
+ 8220: 0x0000786F,
+ 8221: 0x00007A0D,
+ 8222: 0x00007A08,
+ 8223: 0x00007A0B,
+ 8224: 0x00007A05,
+ 8225: 0x00007A00,
+ 8226: 0x00007A98,
+ 8227: 0x00007A97,
+ 8228: 0x00007A96,
+ 8229: 0x00007AE5,
+ 8230: 0x00007AE3,
+ 8231: 0x00007B49,
+ 8232: 0x00007B56,
+ 8233: 0x00007B46,
+ 8234: 0x00007B50,
+ 8235: 0x00007B52,
+ 8236: 0x00007B54,
+ 8237: 0x00007B4D,
+ 8238: 0x00007B4B,
+ 8239: 0x00007B4F,
+ 8240: 0x00007B51,
+ 8241: 0x00007C9F,
+ 8242: 0x00007CA5,
+ 8243: 0x00007D5E,
+ 8244: 0x00007D50,
+ 8245: 0x00007D68,
+ 8246: 0x00007D55,
+ 8247: 0x00007D2B,
+ 8248: 0x00007D6E,
+ 8249: 0x00007D72,
+ 8250: 0x00007D61,
+ 8251: 0x00007D66,
+ 8252: 0x00007D62,
+ 8253: 0x00007D70,
+ 8254: 0x00007D73,
+ 8255: 0x00005584,
+ 8256: 0x00007FD4,
+ 8257: 0x00007FD5,
+ 8258: 0x0000800B,
+ 8259: 0x00008052,
+ 8260: 0x00008085,
+ 8261: 0x00008155,
+ 8262: 0x00008154,
+ 8263: 0x0000814B,
+ 8264: 0x00008151,
+ 8265: 0x0000814E,
+ 8266: 0x00008139,
+ 8267: 0x00008146,
+ 8268: 0x0000813E,
+ 8269: 0x0000814C,
+ 8270: 0x00008153,
+ 8271: 0x00008174,
+ 8272: 0x00008212,
+ 8273: 0x0000821C,
+ 8274: 0x000083E9,
+ 8275: 0x00008403,
+ 8276: 0x000083F8,
+ 8277: 0x0000840D,
+ 8278: 0x000083E0,
+ 8279: 0x000083C5,
+ 8280: 0x0000840B,
+ 8281: 0x000083C1,
+ 8282: 0x000083EF,
+ 8283: 0x000083F1,
+ 8284: 0x000083F4,
+ 8285: 0x00008457,
+ 8286: 0x0000840A,
+ 8287: 0x000083F0,
+ 8288: 0x0000840C,
+ 8289: 0x000083CC,
+ 8290: 0x000083FD,
+ 8291: 0x000083F2,
+ 8292: 0x000083CA,
+ 8293: 0x00008438,
+ 8294: 0x0000840E,
+ 8295: 0x00008404,
+ 8296: 0x000083DC,
+ 8297: 0x00008407,
+ 8298: 0x000083D4,
+ 8299: 0x000083DF,
+ 8300: 0x0000865B,
+ 8301: 0x000086DF,
+ 8302: 0x000086D9,
+ 8303: 0x000086ED,
+ 8304: 0x000086D4,
+ 8305: 0x000086DB,
+ 8306: 0x000086E4,
+ 8307: 0x000086D0,
+ 8308: 0x000086DE,
+ 8309: 0x00008857,
+ 8310: 0x000088C1,
+ 8311: 0x000088C2,
+ 8312: 0x000088B1,
+ 8313: 0x00008983,
+ 8314: 0x00008996,
+ 8315: 0x00008A3B,
+ 8316: 0x00008A60,
+ 8317: 0x00008A55,
+ 8318: 0x00008A5E,
+ 8319: 0x00008A3C,
+ 8320: 0x00008A41,
+ 8321: 0x00008A54,
+ 8322: 0x00008A5B,
+ 8323: 0x00008A50,
+ 8324: 0x00008A46,
+ 8325: 0x00008A34,
+ 8326: 0x00008A3A,
+ 8327: 0x00008A36,
+ 8328: 0x00008A56,
+ 8329: 0x00008C61,
+ 8330: 0x00008C82,
+ 8331: 0x00008CAF,
+ 8332: 0x00008CBC,
+ 8333: 0x00008CB3,
+ 8334: 0x00008CBD,
+ 8335: 0x00008CC1,
+ 8336: 0x00008CBB,
+ 8337: 0x00008CC0,
+ 8338: 0x00008CB4,
+ 8339: 0x00008CB7,
+ 8340: 0x00008CB6,
+ 8341: 0x00008CBF,
+ 8342: 0x00008CB8,
+ 8343: 0x00008D8A,
+ 8344: 0x00008D85,
+ 8345: 0x00008D81,
+ 8346: 0x00008DCE,
+ 8347: 0x00008DDD,
+ 8348: 0x00008DCB,
+ 8349: 0x00008DDA,
+ 8350: 0x00008DD1,
+ 8351: 0x00008DCC,
+ 8352: 0x00008DDB,
+ 8353: 0x00008DC6,
+ 8354: 0x00008EFB,
+ 8355: 0x00008EF8,
+ 8356: 0x00008EFC,
+ 8357: 0x00008F9C,
+ 8358: 0x0000902E,
+ 8359: 0x00009035,
+ 8360: 0x00009031,
+ 8361: 0x00009038,
+ 8362: 0x00009032,
+ 8363: 0x00009036,
+ 8364: 0x00009102,
+ 8365: 0x000090F5,
+ 8366: 0x00009109,
+ 8367: 0x000090FE,
+ 8368: 0x00009163,
+ 8369: 0x00009165,
+ 8370: 0x000091CF,
+ 8371: 0x00009214,
+ 8372: 0x00009215,
+ 8373: 0x00009223,
+ 8374: 0x00009209,
+ 8375: 0x0000921E,
+ 8376: 0x0000920D,
+ 8377: 0x00009210,
+ 8378: 0x00009207,
+ 8379: 0x00009211,
+ 8380: 0x00009594,
+ 8381: 0x0000958F,
+ 8382: 0x0000958B,
+ 8383: 0x00009591,
+ 8384: 0x00009593,
+ 8385: 0x00009592,
+ 8386: 0x0000958E,
+ 8387: 0x0000968A,
+ 8388: 0x0000968E,
+ 8389: 0x0000968B,
+ 8390: 0x0000967D,
+ 8391: 0x00009685,
+ 8392: 0x00009686,
+ 8393: 0x0000968D,
+ 8394: 0x00009672,
+ 8395: 0x00009684,
+ 8396: 0x000096C1,
+ 8397: 0x000096C5,
+ 8398: 0x000096C4,
+ 8399: 0x000096C6,
+ 8400: 0x000096C7,
+ 8401: 0x000096EF,
+ 8402: 0x000096F2,
+ 8403: 0x000097CC,
+ 8404: 0x00009805,
+ 8405: 0x00009806,
+ 8406: 0x00009808,
+ 8407: 0x000098E7,
+ 8408: 0x000098EA,
+ 8409: 0x000098EF,
+ 8410: 0x000098E9,
+ 8411: 0x000098F2,
+ 8412: 0x000098ED,
+ 8413: 0x000099AE,
+ 8414: 0x000099AD,
+ 8415: 0x00009EC3,
+ 8416: 0x00009ECD,
+ 8417: 0x00009ED1,
+ 8418: 0x00004E82,
+ 8419: 0x000050AD,
+ 8420: 0x000050B5,
+ 8421: 0x000050B2,
+ 8422: 0x000050B3,
+ 8423: 0x000050C5,
+ 8424: 0x000050BE,
+ 8425: 0x000050AC,
+ 8426: 0x000050B7,
+ 8427: 0x000050BB,
+ 8428: 0x000050AF,
+ 8429: 0x000050C7,
+ 8430: 0x0000527F,
+ 8431: 0x00005277,
+ 8432: 0x0000527D,
+ 8433: 0x000052DF,
+ 8434: 0x000052E6,
+ 8435: 0x000052E4,
+ 8436: 0x000052E2,
+ 8437: 0x000052E3,
+ 8438: 0x0000532F,
+ 8439: 0x000055DF,
+ 8440: 0x000055E8,
+ 8441: 0x000055D3,
+ 8442: 0x000055E6,
+ 8443: 0x000055CE,
+ 8444: 0x000055DC,
+ 8445: 0x000055C7,
+ 8446: 0x000055D1,
+ 8447: 0x000055E3,
+ 8448: 0x000055E4,
+ 8449: 0x000055EF,
+ 8450: 0x000055DA,
+ 8451: 0x000055E1,
+ 8452: 0x000055C5,
+ 8453: 0x000055C6,
+ 8454: 0x000055E5,
+ 8455: 0x000055C9,
+ 8456: 0x00005712,
+ 8457: 0x00005713,
+ 8458: 0x0000585E,
+ 8459: 0x00005851,
+ 8460: 0x00005858,
+ 8461: 0x00005857,
+ 8462: 0x0000585A,
+ 8463: 0x00005854,
+ 8464: 0x0000586B,
+ 8465: 0x0000584C,
+ 8466: 0x0000586D,
+ 8467: 0x0000584A,
+ 8468: 0x00005862,
+ 8469: 0x00005852,
+ 8470: 0x0000584B,
+ 8471: 0x00005967,
+ 8472: 0x00005AC1,
+ 8473: 0x00005AC9,
+ 8474: 0x00005ACC,
+ 8475: 0x00005ABE,
+ 8476: 0x00005ABD,
+ 8477: 0x00005ABC,
+ 8478: 0x00005AB3,
+ 8479: 0x00005AC2,
+ 8480: 0x00005AB2,
+ 8481: 0x00005D69,
+ 8482: 0x00005D6F,
+ 8483: 0x00005E4C,
+ 8484: 0x00005E79,
+ 8485: 0x00005EC9,
+ 8486: 0x00005EC8,
+ 8487: 0x00005F12,
+ 8488: 0x00005F59,
+ 8489: 0x00005FAC,
+ 8490: 0x00005FAE,
+ 8491: 0x0000611A,
+ 8492: 0x0000610F,
+ 8493: 0x00006148,
+ 8494: 0x0000611F,
+ 8495: 0x000060F3,
+ 8496: 0x0000611B,
+ 8497: 0x000060F9,
+ 8498: 0x00006101,
+ 8499: 0x00006108,
+ 8500: 0x0000614E,
+ 8501: 0x0000614C,
+ 8502: 0x00006144,
+ 8503: 0x0000614D,
+ 8504: 0x0000613E,
+ 8505: 0x00006134,
+ 8506: 0x00006127,
+ 8507: 0x0000610D,
+ 8508: 0x00006106,
+ 8509: 0x00006137,
+ 8510: 0x00006221,
+ 8511: 0x00006222,
+ 8512: 0x00006413,
+ 8513: 0x0000643E,
+ 8514: 0x0000641E,
+ 8515: 0x0000642A,
+ 8516: 0x0000642D,
+ 8517: 0x0000643D,
+ 8518: 0x0000642C,
+ 8519: 0x0000640F,
+ 8520: 0x0000641C,
+ 8521: 0x00006414,
+ 8522: 0x0000640D,
+ 8523: 0x00006436,
+ 8524: 0x00006416,
+ 8525: 0x00006417,
+ 8526: 0x00006406,
+ 8527: 0x0000656C,
+ 8528: 0x0000659F,
+ 8529: 0x000065B0,
+ 8530: 0x00006697,
+ 8531: 0x00006689,
+ 8532: 0x00006687,
+ 8533: 0x00006688,
+ 8534: 0x00006696,
+ 8535: 0x00006684,
+ 8536: 0x00006698,
+ 8537: 0x0000668D,
+ 8538: 0x00006703,
+ 8539: 0x00006994,
+ 8540: 0x0000696D,
+ 8541: 0x0000695A,
+ 8542: 0x00006977,
+ 8543: 0x00006960,
+ 8544: 0x00006954,
+ 8545: 0x00006975,
+ 8546: 0x00006930,
+ 8547: 0x00006982,
+ 8548: 0x0000694A,
+ 8549: 0x00006968,
+ 8550: 0x0000696B,
+ 8551: 0x0000695E,
+ 8552: 0x00006953,
+ 8553: 0x00006979,
+ 8554: 0x00006986,
+ 8555: 0x0000695D,
+ 8556: 0x00006963,
+ 8557: 0x0000695B,
+ 8558: 0x00006B47,
+ 8559: 0x00006B72,
+ 8560: 0x00006BC0,
+ 8561: 0x00006BBF,
+ 8562: 0x00006BD3,
+ 8563: 0x00006BFD,
+ 8564: 0x00006EA2,
+ 8565: 0x00006EAF,
+ 8566: 0x00006ED3,
+ 8567: 0x00006EB6,
+ 8568: 0x00006EC2,
+ 8569: 0x00006E90,
+ 8570: 0x00006E9D,
+ 8571: 0x00006EC7,
+ 8572: 0x00006EC5,
+ 8573: 0x00006EA5,
+ 8574: 0x00006E98,
+ 8575: 0x00006EBC,
+ 8576: 0x00006EBA,
+ 8577: 0x00006EAB,
+ 8578: 0x00006ED1,
+ 8579: 0x00006E96,
+ 8580: 0x00006E9C,
+ 8581: 0x00006EC4,
+ 8582: 0x00006ED4,
+ 8583: 0x00006EAA,
+ 8584: 0x00006EA7,
+ 8585: 0x00006EB4,
+ 8586: 0x0000714E,
+ 8587: 0x00007159,
+ 8588: 0x00007169,
+ 8589: 0x00007164,
+ 8590: 0x00007149,
+ 8591: 0x00007167,
+ 8592: 0x0000715C,
+ 8593: 0x0000716C,
+ 8594: 0x00007166,
+ 8595: 0x0000714C,
+ 8596: 0x00007165,
+ 8597: 0x0000715E,
+ 8598: 0x00007146,
+ 8599: 0x00007168,
+ 8600: 0x00007156,
+ 8601: 0x0000723A,
+ 8602: 0x00007252,
+ 8603: 0x00007337,
+ 8604: 0x00007345,
+ 8605: 0x0000733F,
+ 8606: 0x0000733E,
+ 8607: 0x0000746F,
+ 8608: 0x0000745A,
+ 8609: 0x00007455,
+ 8610: 0x0000745F,
+ 8611: 0x0000745E,
+ 8612: 0x00007441,
+ 8613: 0x0000743F,
+ 8614: 0x00007459,
+ 8615: 0x0000745B,
+ 8616: 0x0000745C,
+ 8617: 0x00007576,
+ 8618: 0x00007578,
+ 8619: 0x00007600,
+ 8620: 0x000075F0,
+ 8621: 0x00007601,
+ 8622: 0x000075F2,
+ 8623: 0x000075F1,
+ 8624: 0x000075FA,
+ 8625: 0x000075FF,
+ 8626: 0x000075F4,
+ 8627: 0x000075F3,
+ 8628: 0x000076DE,
+ 8629: 0x000076DF,
+ 8630: 0x0000775B,
+ 8631: 0x0000776B,
+ 8632: 0x00007766,
+ 8633: 0x0000775E,
+ 8634: 0x00007763,
+ 8635: 0x00007779,
+ 8636: 0x0000776A,
+ 8637: 0x0000776C,
+ 8638: 0x0000775C,
+ 8639: 0x00007765,
+ 8640: 0x00007768,
+ 8641: 0x00007762,
+ 8642: 0x000077EE,
+ 8643: 0x0000788E,
+ 8644: 0x000078B0,
+ 8645: 0x00007897,
+ 8646: 0x00007898,
+ 8647: 0x0000788C,
+ 8648: 0x00007889,
+ 8649: 0x0000787C,
+ 8650: 0x00007891,
+ 8651: 0x00007893,
+ 8652: 0x0000787F,
+ 8653: 0x0000797A,
+ 8654: 0x0000797F,
+ 8655: 0x00007981,
+ 8656: 0x0000842C,
+ 8657: 0x000079BD,
+ 8658: 0x00007A1C,
+ 8659: 0x00007A1A,
+ 8660: 0x00007A20,
+ 8661: 0x00007A14,
+ 8662: 0x00007A1F,
+ 8663: 0x00007A1E,
+ 8664: 0x00007A9F,
+ 8665: 0x00007AA0,
+ 8666: 0x00007B77,
+ 8667: 0x00007BC0,
+ 8668: 0x00007B60,
+ 8669: 0x00007B6E,
+ 8670: 0x00007B67,
+ 8671: 0x00007CB1,
+ 8672: 0x00007CB3,
+ 8673: 0x00007CB5,
+ 8674: 0x00007D93,
+ 8675: 0x00007D79,
+ 8676: 0x00007D91,
+ 8677: 0x00007D81,
+ 8678: 0x00007D8F,
+ 8679: 0x00007D5B,
+ 8680: 0x00007F6E,
+ 8681: 0x00007F69,
+ 8682: 0x00007F6A,
+ 8683: 0x00007F72,
+ 8684: 0x00007FA9,
+ 8685: 0x00007FA8,
+ 8686: 0x00007FA4,
+ 8687: 0x00008056,
+ 8688: 0x00008058,
+ 8689: 0x00008086,
+ 8690: 0x00008084,
+ 8691: 0x00008171,
+ 8692: 0x00008170,
+ 8693: 0x00008178,
+ 8694: 0x00008165,
+ 8695: 0x0000816E,
+ 8696: 0x00008173,
+ 8697: 0x0000816B,
+ 8698: 0x00008179,
+ 8699: 0x0000817A,
+ 8700: 0x00008166,
+ 8701: 0x00008205,
+ 8702: 0x00008247,
+ 8703: 0x00008482,
+ 8704: 0x00008477,
+ 8705: 0x0000843D,
+ 8706: 0x00008431,
+ 8707: 0x00008475,
+ 8708: 0x00008466,
+ 8709: 0x0000846B,
+ 8710: 0x00008449,
+ 8711: 0x0000846C,
+ 8712: 0x0000845B,
+ 8713: 0x0000843C,
+ 8714: 0x00008435,
+ 8715: 0x00008461,
+ 8716: 0x00008463,
+ 8717: 0x00008469,
+ 8718: 0x0000846D,
+ 8719: 0x00008446,
+ 8720: 0x0000865E,
+ 8721: 0x0000865C,
+ 8722: 0x0000865F,
+ 8723: 0x000086F9,
+ 8724: 0x00008713,
+ 8725: 0x00008708,
+ 8726: 0x00008707,
+ 8727: 0x00008700,
+ 8728: 0x000086FE,
+ 8729: 0x000086FB,
+ 8730: 0x00008702,
+ 8731: 0x00008703,
+ 8732: 0x00008706,
+ 8733: 0x0000870A,
+ 8734: 0x00008859,
+ 8735: 0x000088DF,
+ 8736: 0x000088D4,
+ 8737: 0x000088D9,
+ 8738: 0x000088DC,
+ 8739: 0x000088D8,
+ 8740: 0x000088DD,
+ 8741: 0x000088E1,
+ 8742: 0x000088CA,
+ 8743: 0x000088D5,
+ 8744: 0x000088D2,
+ 8745: 0x0000899C,
+ 8746: 0x000089E3,
+ 8747: 0x00008A6B,
+ 8748: 0x00008A72,
+ 8749: 0x00008A73,
+ 8750: 0x00008A66,
+ 8751: 0x00008A69,
+ 8752: 0x00008A70,
+ 8753: 0x00008A87,
+ 8754: 0x00008A7C,
+ 8755: 0x00008A63,
+ 8756: 0x00008AA0,
+ 8757: 0x00008A71,
+ 8758: 0x00008A85,
+ 8759: 0x00008A6D,
+ 8760: 0x00008A62,
+ 8761: 0x00008A6E,
+ 8762: 0x00008A6C,
+ 8763: 0x00008A79,
+ 8764: 0x00008A7B,
+ 8765: 0x00008A3E,
+ 8766: 0x00008A68,
+ 8767: 0x00008C62,
+ 8768: 0x00008C8A,
+ 8769: 0x00008C89,
+ 8770: 0x00008CCA,
+ 8771: 0x00008CC7,
+ 8772: 0x00008CC8,
+ 8773: 0x00008CC4,
+ 8774: 0x00008CB2,
+ 8775: 0x00008CC3,
+ 8776: 0x00008CC2,
+ 8777: 0x00008CC5,
+ 8778: 0x00008DE1,
+ 8779: 0x00008DDF,
+ 8780: 0x00008DE8,
+ 8781: 0x00008DEF,
+ 8782: 0x00008DF3,
+ 8783: 0x00008DFA,
+ 8784: 0x00008DEA,
+ 8785: 0x00008DE4,
+ 8786: 0x00008DE6,
+ 8787: 0x00008EB2,
+ 8788: 0x00008F03,
+ 8789: 0x00008F09,
+ 8790: 0x00008EFE,
+ 8791: 0x00008F0A,
+ 8792: 0x00008F9F,
+ 8793: 0x00008FB2,
+ 8794: 0x0000904B,
+ 8795: 0x0000904A,
+ 8796: 0x00009053,
+ 8797: 0x00009042,
+ 8798: 0x00009054,
+ 8799: 0x0000903C,
+ 8800: 0x00009055,
+ 8801: 0x00009050,
+ 8802: 0x00009047,
+ 8803: 0x0000904F,
+ 8804: 0x0000904E,
+ 8805: 0x0000904D,
+ 8806: 0x00009051,
+ 8807: 0x0000903E,
+ 8808: 0x00009041,
+ 8809: 0x00009112,
+ 8810: 0x00009117,
+ 8811: 0x0000916C,
+ 8812: 0x0000916A,
+ 8813: 0x00009169,
+ 8814: 0x000091C9,
+ 8815: 0x00009237,
+ 8816: 0x00009257,
+ 8817: 0x00009238,
+ 8818: 0x0000923D,
+ 8819: 0x00009240,
+ 8820: 0x0000923E,
+ 8821: 0x0000925B,
+ 8822: 0x0000924B,
+ 8823: 0x00009264,
+ 8824: 0x00009251,
+ 8825: 0x00009234,
+ 8826: 0x00009249,
+ 8827: 0x0000924D,
+ 8828: 0x00009245,
+ 8829: 0x00009239,
+ 8830: 0x0000923F,
+ 8831: 0x0000925A,
+ 8832: 0x00009598,
+ 8833: 0x00009698,
+ 8834: 0x00009694,
+ 8835: 0x00009695,
+ 8836: 0x000096CD,
+ 8837: 0x000096CB,
+ 8838: 0x000096C9,
+ 8839: 0x000096CA,
+ 8840: 0x000096F7,
+ 8841: 0x000096FB,
+ 8842: 0x000096F9,
+ 8843: 0x000096F6,
+ 8844: 0x00009756,
+ 8845: 0x00009774,
+ 8846: 0x00009776,
+ 8847: 0x00009810,
+ 8848: 0x00009811,
+ 8849: 0x00009813,
+ 8850: 0x0000980A,
+ 8851: 0x00009812,
+ 8852: 0x0000980C,
+ 8853: 0x000098FC,
+ 8854: 0x000098F4,
+ 8855: 0x000098FD,
+ 8856: 0x000098FE,
+ 8857: 0x000099B3,
+ 8858: 0x000099B1,
+ 8859: 0x000099B4,
+ 8860: 0x00009AE1,
+ 8861: 0x00009CE9,
+ 8862: 0x00009E82,
+ 8863: 0x00009F0E,
+ 8864: 0x00009F13,
+ 8865: 0x00009F20,
+ 8866: 0x000050E7,
+ 8867: 0x000050EE,
+ 8868: 0x000050E5,
+ 8869: 0x000050D6,
+ 8870: 0x000050ED,
+ 8871: 0x000050DA,
+ 8872: 0x000050D5,
+ 8873: 0x000050CF,
+ 8874: 0x000050D1,
+ 8875: 0x000050F1,
+ 8876: 0x000050CE,
+ 8877: 0x000050E9,
+ 8878: 0x00005162,
+ 8879: 0x000051F3,
+ 8880: 0x00005283,
+ 8881: 0x00005282,
+ 8882: 0x00005331,
+ 8883: 0x000053AD,
+ 8884: 0x000055FE,
+ 8885: 0x00005600,
+ 8886: 0x0000561B,
+ 8887: 0x00005617,
+ 8888: 0x000055FD,
+ 8889: 0x00005614,
+ 8890: 0x00005606,
+ 8891: 0x00005609,
+ 8892: 0x0000560D,
+ 8893: 0x0000560E,
+ 8894: 0x000055F7,
+ 8895: 0x00005616,
+ 8896: 0x0000561F,
+ 8897: 0x00005608,
+ 8898: 0x00005610,
+ 8899: 0x000055F6,
+ 8900: 0x00005718,
+ 8901: 0x00005716,
+ 8902: 0x00005875,
+ 8903: 0x0000587E,
+ 8904: 0x00005883,
+ 8905: 0x00005893,
+ 8906: 0x0000588A,
+ 8907: 0x00005879,
+ 8908: 0x00005885,
+ 8909: 0x0000587D,
+ 8910: 0x000058FD,
+ 8911: 0x00005925,
+ 8912: 0x00005922,
+ 8913: 0x00005924,
+ 8914: 0x0000596A,
+ 8915: 0x00005969,
+ 8916: 0x00005AE1,
+ 8917: 0x00005AE6,
+ 8918: 0x00005AE9,
+ 8919: 0x00005AD7,
+ 8920: 0x00005AD6,
+ 8921: 0x00005AD8,
+ 8922: 0x00005AE3,
+ 8923: 0x00005B75,
+ 8924: 0x00005BDE,
+ 8925: 0x00005BE7,
+ 8926: 0x00005BE1,
+ 8927: 0x00005BE5,
+ 8928: 0x00005BE6,
+ 8929: 0x00005BE8,
+ 8930: 0x00005BE2,
+ 8931: 0x00005BE4,
+ 8932: 0x00005BDF,
+ 8933: 0x00005C0D,
+ 8934: 0x00005C62,
+ 8935: 0x00005D84,
+ 8936: 0x00005D87,
+ 8937: 0x00005E5B,
+ 8938: 0x00005E63,
+ 8939: 0x00005E55,
+ 8940: 0x00005E57,
+ 8941: 0x00005E54,
+ 8942: 0x00005ED3,
+ 8943: 0x00005ED6,
+ 8944: 0x00005F0A,
+ 8945: 0x00005F46,
+ 8946: 0x00005F70,
+ 8947: 0x00005FB9,
+ 8948: 0x00006147,
+ 8949: 0x0000613F,
+ 8950: 0x0000614B,
+ 8951: 0x00006177,
+ 8952: 0x00006162,
+ 8953: 0x00006163,
+ 8954: 0x0000615F,
+ 8955: 0x0000615A,
+ 8956: 0x00006158,
+ 8957: 0x00006175,
+ 8958: 0x0000622A,
+ 8959: 0x00006487,
+ 8960: 0x00006458,
+ 8961: 0x00006454,
+ 8962: 0x000064A4,
+ 8963: 0x00006478,
+ 8964: 0x0000645F,
+ 8965: 0x0000647A,
+ 8966: 0x00006451,
+ 8967: 0x00006467,
+ 8968: 0x00006434,
+ 8969: 0x0000646D,
+ 8970: 0x0000647B,
+ 8971: 0x00006572,
+ 8972: 0x000065A1,
+ 8973: 0x000065D7,
+ 8974: 0x000065D6,
+ 8975: 0x000066A2,
+ 8976: 0x000066A8,
+ 8977: 0x0000669D,
+ 8978: 0x0000699C,
+ 8979: 0x000069A8,
+ 8980: 0x00006995,
+ 8981: 0x000069C1,
+ 8982: 0x000069AE,
+ 8983: 0x000069D3,
+ 8984: 0x000069CB,
+ 8985: 0x0000699B,
+ 8986: 0x000069B7,
+ 8987: 0x000069BB,
+ 8988: 0x000069AB,
+ 8989: 0x000069B4,
+ 8990: 0x000069D0,
+ 8991: 0x000069CD,
+ 8992: 0x000069AD,
+ 8993: 0x000069CC,
+ 8994: 0x000069A6,
+ 8995: 0x000069C3,
+ 8996: 0x000069A3,
+ 8997: 0x00006B49,
+ 8998: 0x00006B4C,
+ 8999: 0x00006C33,
+ 9000: 0x00006F33,
+ 9001: 0x00006F14,
+ 9002: 0x00006EFE,
+ 9003: 0x00006F13,
+ 9004: 0x00006EF4,
+ 9005: 0x00006F29,
+ 9006: 0x00006F3E,
+ 9007: 0x00006F20,
+ 9008: 0x00006F2C,
+ 9009: 0x00006F0F,
+ 9010: 0x00006F02,
+ 9011: 0x00006F22,
+ 9012: 0x00006EFF,
+ 9013: 0x00006EEF,
+ 9014: 0x00006F06,
+ 9015: 0x00006F31,
+ 9016: 0x00006F38,
+ 9017: 0x00006F32,
+ 9018: 0x00006F23,
+ 9019: 0x00006F15,
+ 9020: 0x00006F2B,
+ 9021: 0x00006F2F,
+ 9022: 0x00006F88,
+ 9023: 0x00006F2A,
+ 9024: 0x00006EEC,
+ 9025: 0x00006F01,
+ 9026: 0x00006EF2,
+ 9027: 0x00006ECC,
+ 9028: 0x00006EF7,
+ 9029: 0x00007194,
+ 9030: 0x00007199,
+ 9031: 0x0000717D,
+ 9032: 0x0000718A,
+ 9033: 0x00007184,
+ 9034: 0x00007192,
+ 9035: 0x0000723E,
+ 9036: 0x00007292,
+ 9037: 0x00007296,
+ 9038: 0x00007344,
+ 9039: 0x00007350,
+ 9040: 0x00007464,
+ 9041: 0x00007463,
+ 9042: 0x0000746A,
+ 9043: 0x00007470,
+ 9044: 0x0000746D,
+ 9045: 0x00007504,
+ 9046: 0x00007591,
+ 9047: 0x00007627,
+ 9048: 0x0000760D,
+ 9049: 0x0000760B,
+ 9050: 0x00007609,
+ 9051: 0x00007613,
+ 9052: 0x000076E1,
+ 9053: 0x000076E3,
+ 9054: 0x00007784,
+ 9055: 0x0000777D,
+ 9056: 0x0000777F,
+ 9057: 0x00007761,
+ 9058: 0x000078C1,
+ 9059: 0x0000789F,
+ 9060: 0x000078A7,
+ 9061: 0x000078B3,
+ 9062: 0x000078A9,
+ 9063: 0x000078A3,
+ 9064: 0x0000798E,
+ 9065: 0x0000798F,
+ 9066: 0x0000798D,
+ 9067: 0x00007A2E,
+ 9068: 0x00007A31,
+ 9069: 0x00007AAA,
+ 9070: 0x00007AA9,
+ 9071: 0x00007AED,
+ 9072: 0x00007AEF,
+ 9073: 0x00007BA1,
+ 9074: 0x00007B95,
+ 9075: 0x00007B8B,
+ 9076: 0x00007B75,
+ 9077: 0x00007B97,
+ 9078: 0x00007B9D,
+ 9079: 0x00007B94,
+ 9080: 0x00007B8F,
+ 9081: 0x00007BB8,
+ 9082: 0x00007B87,
+ 9083: 0x00007B84,
+ 9084: 0x00007CB9,
+ 9085: 0x00007CBD,
+ 9086: 0x00007CBE,
+ 9087: 0x00007DBB,
+ 9088: 0x00007DB0,
+ 9089: 0x00007D9C,
+ 9090: 0x00007DBD,
+ 9091: 0x00007DBE,
+ 9092: 0x00007DA0,
+ 9093: 0x00007DCA,
+ 9094: 0x00007DB4,
+ 9095: 0x00007DB2,
+ 9096: 0x00007DB1,
+ 9097: 0x00007DBA,
+ 9098: 0x00007DA2,
+ 9099: 0x00007DBF,
+ 9100: 0x00007DB5,
+ 9101: 0x00007DB8,
+ 9102: 0x00007DAD,
+ 9103: 0x00007DD2,
+ 9104: 0x00007DC7,
+ 9105: 0x00007DAC,
+ 9106: 0x00007F70,
+ 9107: 0x00007FE0,
+ 9108: 0x00007FE1,
+ 9109: 0x00007FDF,
+ 9110: 0x0000805E,
+ 9111: 0x0000805A,
+ 9112: 0x00008087,
+ 9113: 0x00008150,
+ 9114: 0x00008180,
+ 9115: 0x0000818F,
+ 9116: 0x00008188,
+ 9117: 0x0000818A,
+ 9118: 0x0000817F,
+ 9119: 0x00008182,
+ 9120: 0x000081E7,
+ 9121: 0x000081FA,
+ 9122: 0x00008207,
+ 9123: 0x00008214,
+ 9124: 0x0000821E,
+ 9125: 0x0000824B,
+ 9126: 0x000084C9,
+ 9127: 0x000084BF,
+ 9128: 0x000084C6,
+ 9129: 0x000084C4,
+ 9130: 0x00008499,
+ 9131: 0x0000849E,
+ 9132: 0x000084B2,
+ 9133: 0x0000849C,
+ 9134: 0x000084CB,
+ 9135: 0x000084B8,
+ 9136: 0x000084C0,
+ 9137: 0x000084D3,
+ 9138: 0x00008490,
+ 9139: 0x000084BC,
+ 9140: 0x000084D1,
+ 9141: 0x000084CA,
+ 9142: 0x0000873F,
+ 9143: 0x0000871C,
+ 9144: 0x0000873B,
+ 9145: 0x00008722,
+ 9146: 0x00008725,
+ 9147: 0x00008734,
+ 9148: 0x00008718,
+ 9149: 0x00008755,
+ 9150: 0x00008737,
+ 9151: 0x00008729,
+ 9152: 0x000088F3,
+ 9153: 0x00008902,
+ 9154: 0x000088F4,
+ 9155: 0x000088F9,
+ 9156: 0x000088F8,
+ 9157: 0x000088FD,
+ 9158: 0x000088E8,
+ 9159: 0x0000891A,
+ 9160: 0x000088EF,
+ 9161: 0x00008AA6,
+ 9162: 0x00008A8C,
+ 9163: 0x00008A9E,
+ 9164: 0x00008AA3,
+ 9165: 0x00008A8D,
+ 9166: 0x00008AA1,
+ 9167: 0x00008A93,
+ 9168: 0x00008AA4,
+ 9169: 0x00008AAA,
+ 9170: 0x00008AA5,
+ 9171: 0x00008AA8,
+ 9172: 0x00008A98,
+ 9173: 0x00008A91,
+ 9174: 0x00008A9A,
+ 9175: 0x00008AA7,
+ 9176: 0x00008C6A,
+ 9177: 0x00008C8D,
+ 9178: 0x00008C8C,
+ 9179: 0x00008CD3,
+ 9180: 0x00008CD1,
+ 9181: 0x00008CD2,
+ 9182: 0x00008D6B,
+ 9183: 0x00008D99,
+ 9184: 0x00008D95,
+ 9185: 0x00008DFC,
+ 9186: 0x00008F14,
+ 9187: 0x00008F12,
+ 9188: 0x00008F15,
+ 9189: 0x00008F13,
+ 9190: 0x00008FA3,
+ 9191: 0x00009060,
+ 9192: 0x00009058,
+ 9193: 0x0000905C,
+ 9194: 0x00009063,
+ 9195: 0x00009059,
+ 9196: 0x0000905E,
+ 9197: 0x00009062,
+ 9198: 0x0000905D,
+ 9199: 0x0000905B,
+ 9200: 0x00009119,
+ 9201: 0x00009118,
+ 9202: 0x0000911E,
+ 9203: 0x00009175,
+ 9204: 0x00009178,
+ 9205: 0x00009177,
+ 9206: 0x00009174,
+ 9207: 0x00009278,
+ 9208: 0x00009280,
+ 9209: 0x00009285,
+ 9210: 0x00009298,
+ 9211: 0x00009296,
+ 9212: 0x0000927B,
+ 9213: 0x00009293,
+ 9214: 0x0000929C,
+ 9215: 0x000092A8,
+ 9216: 0x0000927C,
+ 9217: 0x00009291,
+ 9218: 0x000095A1,
+ 9219: 0x000095A8,
+ 9220: 0x000095A9,
+ 9221: 0x000095A3,
+ 9222: 0x000095A5,
+ 9223: 0x000095A4,
+ 9224: 0x00009699,
+ 9225: 0x0000969C,
+ 9226: 0x0000969B,
+ 9227: 0x000096CC,
+ 9228: 0x000096D2,
+ 9229: 0x00009700,
+ 9230: 0x0000977C,
+ 9231: 0x00009785,
+ 9232: 0x000097F6,
+ 9233: 0x00009817,
+ 9234: 0x00009818,
+ 9235: 0x000098AF,
+ 9236: 0x000098B1,
+ 9237: 0x00009903,
+ 9238: 0x00009905,
+ 9239: 0x0000990C,
+ 9240: 0x00009909,
+ 9241: 0x000099C1,
+ 9242: 0x00009AAF,
+ 9243: 0x00009AB0,
+ 9244: 0x00009AE6,
+ 9245: 0x00009B41,
+ 9246: 0x00009B42,
+ 9247: 0x00009CF4,
+ 9248: 0x00009CF6,
+ 9249: 0x00009CF3,
+ 9250: 0x00009EBC,
+ 9251: 0x00009F3B,
+ 9252: 0x00009F4A,
+ 9253: 0x00005104,
+ 9254: 0x00005100,
+ 9255: 0x000050FB,
+ 9256: 0x000050F5,
+ 9257: 0x000050F9,
+ 9258: 0x00005102,
+ 9259: 0x00005108,
+ 9260: 0x00005109,
+ 9261: 0x00005105,
+ 9262: 0x000051DC,
+ 9263: 0x00005287,
+ 9264: 0x00005288,
+ 9265: 0x00005289,
+ 9266: 0x0000528D,
+ 9267: 0x0000528A,
+ 9268: 0x000052F0,
+ 9269: 0x000053B2,
+ 9270: 0x0000562E,
+ 9271: 0x0000563B,
+ 9272: 0x00005639,
+ 9273: 0x00005632,
+ 9274: 0x0000563F,
+ 9275: 0x00005634,
+ 9276: 0x00005629,
+ 9277: 0x00005653,
+ 9278: 0x0000564E,
+ 9279: 0x00005657,
+ 9280: 0x00005674,
+ 9281: 0x00005636,
+ 9282: 0x0000562F,
+ 9283: 0x00005630,
+ 9284: 0x00005880,
+ 9285: 0x0000589F,
+ 9286: 0x0000589E,
+ 9287: 0x000058B3,
+ 9288: 0x0000589C,
+ 9289: 0x000058AE,
+ 9290: 0x000058A9,
+ 9291: 0x000058A6,
+ 9292: 0x0000596D,
+ 9293: 0x00005B09,
+ 9294: 0x00005AFB,
+ 9295: 0x00005B0B,
+ 9296: 0x00005AF5,
+ 9297: 0x00005B0C,
+ 9298: 0x00005B08,
+ 9299: 0x00005BEE,
+ 9300: 0x00005BEC,
+ 9301: 0x00005BE9,
+ 9302: 0x00005BEB,
+ 9303: 0x00005C64,
+ 9304: 0x00005C65,
+ 9305: 0x00005D9D,
+ 9306: 0x00005D94,
+ 9307: 0x00005E62,
+ 9308: 0x00005E5F,
+ 9309: 0x00005E61,
+ 9310: 0x00005EE2,
+ 9311: 0x00005EDA,
+ 9312: 0x00005EDF,
+ 9313: 0x00005EDD,
+ 9314: 0x00005EE3,
+ 9315: 0x00005EE0,
+ 9316: 0x00005F48,
+ 9317: 0x00005F71,
+ 9318: 0x00005FB7,
+ 9319: 0x00005FB5,
+ 9320: 0x00006176,
+ 9321: 0x00006167,
+ 9322: 0x0000616E,
+ 9323: 0x0000615D,
+ 9324: 0x00006155,
+ 9325: 0x00006182,
+ 9326: 0x0000617C,
+ 9327: 0x00006170,
+ 9328: 0x0000616B,
+ 9329: 0x0000617E,
+ 9330: 0x000061A7,
+ 9331: 0x00006190,
+ 9332: 0x000061AB,
+ 9333: 0x0000618E,
+ 9334: 0x000061AC,
+ 9335: 0x0000619A,
+ 9336: 0x000061A4,
+ 9337: 0x00006194,
+ 9338: 0x000061AE,
+ 9339: 0x0000622E,
+ 9340: 0x00006469,
+ 9341: 0x0000646F,
+ 9342: 0x00006479,
+ 9343: 0x0000649E,
+ 9344: 0x000064B2,
+ 9345: 0x00006488,
+ 9346: 0x00006490,
+ 9347: 0x000064B0,
+ 9348: 0x000064A5,
+ 9349: 0x00006493,
+ 9350: 0x00006495,
+ 9351: 0x000064A9,
+ 9352: 0x00006492,
+ 9353: 0x000064AE,
+ 9354: 0x000064AD,
+ 9355: 0x000064AB,
+ 9356: 0x0000649A,
+ 9357: 0x000064AC,
+ 9358: 0x00006499,
+ 9359: 0x000064A2,
+ 9360: 0x000064B3,
+ 9361: 0x00006575,
+ 9362: 0x00006577,
+ 9363: 0x00006578,
+ 9364: 0x000066AE,
+ 9365: 0x000066AB,
+ 9366: 0x000066B4,
+ 9367: 0x000066B1,
+ 9368: 0x00006A23,
+ 9369: 0x00006A1F,
+ 9370: 0x000069E8,
+ 9371: 0x00006A01,
+ 9372: 0x00006A1E,
+ 9373: 0x00006A19,
+ 9374: 0x000069FD,
+ 9375: 0x00006A21,
+ 9376: 0x00006A13,
+ 9377: 0x00006A0A,
+ 9378: 0x000069F3,
+ 9379: 0x00006A02,
+ 9380: 0x00006A05,
+ 9381: 0x000069ED,
+ 9382: 0x00006A11,
+ 9383: 0x00006B50,
+ 9384: 0x00006B4E,
+ 9385: 0x00006BA4,
+ 9386: 0x00006BC5,
+ 9387: 0x00006BC6,
+ 9388: 0x00006F3F,
+ 9389: 0x00006F7C,
+ 9390: 0x00006F84,
+ 9391: 0x00006F51,
+ 9392: 0x00006F66,
+ 9393: 0x00006F54,
+ 9394: 0x00006F86,
+ 9395: 0x00006F6D,
+ 9396: 0x00006F5B,
+ 9397: 0x00006F78,
+ 9398: 0x00006F6E,
+ 9399: 0x00006F8E,
+ 9400: 0x00006F7A,
+ 9401: 0x00006F70,
+ 9402: 0x00006F64,
+ 9403: 0x00006F97,
+ 9404: 0x00006F58,
+ 9405: 0x00006ED5,
+ 9406: 0x00006F6F,
+ 9407: 0x00006F60,
+ 9408: 0x00006F5F,
+ 9409: 0x0000719F,
+ 9410: 0x000071AC,
+ 9411: 0x000071B1,
+ 9412: 0x000071A8,
+ 9413: 0x00007256,
+ 9414: 0x0000729B,
+ 9415: 0x0000734E,
+ 9416: 0x00007357,
+ 9417: 0x00007469,
+ 9418: 0x0000748B,
+ 9419: 0x00007483,
+ 9420: 0x0000747E,
+ 9421: 0x00007480,
+ 9422: 0x0000757F,
+ 9423: 0x00007620,
+ 9424: 0x00007629,
+ 9425: 0x0000761F,
+ 9426: 0x00007624,
+ 9427: 0x00007626,
+ 9428: 0x00007621,
+ 9429: 0x00007622,
+ 9430: 0x0000769A,
+ 9431: 0x000076BA,
+ 9432: 0x000076E4,
+ 9433: 0x0000778E,
+ 9434: 0x00007787,
+ 9435: 0x0000778C,
+ 9436: 0x00007791,
+ 9437: 0x0000778B,
+ 9438: 0x000078CB,
+ 9439: 0x000078C5,
+ 9440: 0x000078BA,
+ 9441: 0x000078CA,
+ 9442: 0x000078BE,
+ 9443: 0x000078D5,
+ 9444: 0x000078BC,
+ 9445: 0x000078D0,
+ 9446: 0x00007A3F,
+ 9447: 0x00007A3C,
+ 9448: 0x00007A40,
+ 9449: 0x00007A3D,
+ 9450: 0x00007A37,
+ 9451: 0x00007A3B,
+ 9452: 0x00007AAF,
+ 9453: 0x00007AAE,
+ 9454: 0x00007BAD,
+ 9455: 0x00007BB1,
+ 9456: 0x00007BC4,
+ 9457: 0x00007BB4,
+ 9458: 0x00007BC6,
+ 9459: 0x00007BC7,
+ 9460: 0x00007BC1,
+ 9461: 0x00007BA0,
+ 9462: 0x00007BCC,
+ 9463: 0x00007CCA,
+ 9464: 0x00007DE0,
+ 9465: 0x00007DF4,
+ 9466: 0x00007DEF,
+ 9467: 0x00007DFB,
+ 9468: 0x00007DD8,
+ 9469: 0x00007DEC,
+ 9470: 0x00007DDD,
+ 9471: 0x00007DE8,
+ 9472: 0x00007DE3,
+ 9473: 0x00007DDA,
+ 9474: 0x00007DDE,
+ 9475: 0x00007DE9,
+ 9476: 0x00007D9E,
+ 9477: 0x00007DD9,
+ 9478: 0x00007DF2,
+ 9479: 0x00007DF9,
+ 9480: 0x00007F75,
+ 9481: 0x00007F77,
+ 9482: 0x00007FAF,
+ 9483: 0x00007FE9,
+ 9484: 0x00008026,
+ 9485: 0x0000819B,
+ 9486: 0x0000819C,
+ 9487: 0x0000819D,
+ 9488: 0x000081A0,
+ 9489: 0x0000819A,
+ 9490: 0x00008198,
+ 9491: 0x00008517,
+ 9492: 0x0000853D,
+ 9493: 0x0000851A,
+ 9494: 0x000084EE,
+ 9495: 0x0000852C,
+ 9496: 0x0000852D,
+ 9497: 0x00008513,
+ 9498: 0x00008511,
+ 9499: 0x00008523,
+ 9500: 0x00008521,
+ 9501: 0x00008514,
+ 9502: 0x000084EC,
+ 9503: 0x00008525,
+ 9504: 0x000084FF,
+ 9505: 0x00008506,
+ 9506: 0x00008782,
+ 9507: 0x00008774,
+ 9508: 0x00008776,
+ 9509: 0x00008760,
+ 9510: 0x00008766,
+ 9511: 0x00008778,
+ 9512: 0x00008768,
+ 9513: 0x00008759,
+ 9514: 0x00008757,
+ 9515: 0x0000874C,
+ 9516: 0x00008753,
+ 9517: 0x0000885B,
+ 9518: 0x0000885D,
+ 9519: 0x00008910,
+ 9520: 0x00008907,
+ 9521: 0x00008912,
+ 9522: 0x00008913,
+ 9523: 0x00008915,
+ 9524: 0x0000890A,
+ 9525: 0x00008ABC,
+ 9526: 0x00008AD2,
+ 9527: 0x00008AC7,
+ 9528: 0x00008AC4,
+ 9529: 0x00008A95,
+ 9530: 0x00008ACB,
+ 9531: 0x00008AF8,
+ 9532: 0x00008AB2,
+ 9533: 0x00008AC9,
+ 9534: 0x00008AC2,
+ 9535: 0x00008ABF,
+ 9536: 0x00008AB0,
+ 9537: 0x00008AD6,
+ 9538: 0x00008ACD,
+ 9539: 0x00008AB6,
+ 9540: 0x00008AB9,
+ 9541: 0x00008ADB,
+ 9542: 0x00008C4C,
+ 9543: 0x00008C4E,
+ 9544: 0x00008C6C,
+ 9545: 0x00008CE0,
+ 9546: 0x00008CDE,
+ 9547: 0x00008CE6,
+ 9548: 0x00008CE4,
+ 9549: 0x00008CEC,
+ 9550: 0x00008CED,
+ 9551: 0x00008CE2,
+ 9552: 0x00008CE3,
+ 9553: 0x00008CDC,
+ 9554: 0x00008CEA,
+ 9555: 0x00008CE1,
+ 9556: 0x00008D6D,
+ 9557: 0x00008D9F,
+ 9558: 0x00008DA3,
+ 9559: 0x00008E2B,
+ 9560: 0x00008E10,
+ 9561: 0x00008E1D,
+ 9562: 0x00008E22,
+ 9563: 0x00008E0F,
+ 9564: 0x00008E29,
+ 9565: 0x00008E1F,
+ 9566: 0x00008E21,
+ 9567: 0x00008E1E,
+ 9568: 0x00008EBA,
+ 9569: 0x00008F1D,
+ 9570: 0x00008F1B,
+ 9571: 0x00008F1F,
+ 9572: 0x00008F29,
+ 9573: 0x00008F26,
+ 9574: 0x00008F2A,
+ 9575: 0x00008F1C,
+ 9576: 0x00008F1E,
+ 9577: 0x00008F25,
+ 9578: 0x00009069,
+ 9579: 0x0000906E,
+ 9580: 0x00009068,
+ 9581: 0x0000906D,
+ 9582: 0x00009077,
+ 9583: 0x00009130,
+ 9584: 0x0000912D,
+ 9585: 0x00009127,
+ 9586: 0x00009131,
+ 9587: 0x00009187,
+ 9588: 0x00009189,
+ 9589: 0x0000918B,
+ 9590: 0x00009183,
+ 9591: 0x000092C5,
+ 9592: 0x000092BB,
+ 9593: 0x000092B7,
+ 9594: 0x000092EA,
+ 9595: 0x000092AC,
+ 9596: 0x000092E4,
+ 9597: 0x000092C1,
+ 9598: 0x000092B3,
+ 9599: 0x000092BC,
+ 9600: 0x000092D2,
+ 9601: 0x000092C7,
+ 9602: 0x000092F0,
+ 9603: 0x000092B2,
+ 9604: 0x000095AD,
+ 9605: 0x000095B1,
+ 9606: 0x00009704,
+ 9607: 0x00009706,
+ 9608: 0x00009707,
+ 9609: 0x00009709,
+ 9610: 0x00009760,
+ 9611: 0x0000978D,
+ 9612: 0x0000978B,
+ 9613: 0x0000978F,
+ 9614: 0x00009821,
+ 9615: 0x0000982B,
+ 9616: 0x0000981C,
+ 9617: 0x000098B3,
+ 9618: 0x0000990A,
+ 9619: 0x00009913,
+ 9620: 0x00009912,
+ 9621: 0x00009918,
+ 9622: 0x000099DD,
+ 9623: 0x000099D0,
+ 9624: 0x000099DF,
+ 9625: 0x000099DB,
+ 9626: 0x000099D1,
+ 9627: 0x000099D5,
+ 9628: 0x000099D2,
+ 9629: 0x000099D9,
+ 9630: 0x00009AB7,
+ 9631: 0x00009AEE,
+ 9632: 0x00009AEF,
+ 9633: 0x00009B27,
+ 9634: 0x00009B45,
+ 9635: 0x00009B44,
+ 9636: 0x00009B77,
+ 9637: 0x00009B6F,
+ 9638: 0x00009D06,
+ 9639: 0x00009D09,
+ 9640: 0x00009D03,
+ 9641: 0x00009EA9,
+ 9642: 0x00009EBE,
+ 9643: 0x00009ECE,
+ 9644: 0x000058A8,
+ 9645: 0x00009F52,
+ 9646: 0x00005112,
+ 9647: 0x00005118,
+ 9648: 0x00005114,
+ 9649: 0x00005110,
+ 9650: 0x00005115,
+ 9651: 0x00005180,
+ 9652: 0x000051AA,
+ 9653: 0x000051DD,
+ 9654: 0x00005291,
+ 9655: 0x00005293,
+ 9656: 0x000052F3,
+ 9657: 0x00005659,
+ 9658: 0x0000566B,
+ 9659: 0x00005679,
+ 9660: 0x00005669,
+ 9661: 0x00005664,
+ 9662: 0x00005678,
+ 9663: 0x0000566A,
+ 9664: 0x00005668,
+ 9665: 0x00005665,
+ 9666: 0x00005671,
+ 9667: 0x0000566F,
+ 9668: 0x0000566C,
+ 9669: 0x00005662,
+ 9670: 0x00005676,
+ 9671: 0x000058C1,
+ 9672: 0x000058BE,
+ 9673: 0x000058C7,
+ 9674: 0x000058C5,
+ 9675: 0x0000596E,
+ 9676: 0x00005B1D,
+ 9677: 0x00005B34,
+ 9678: 0x00005B78,
+ 9679: 0x00005BF0,
+ 9680: 0x00005C0E,
+ 9681: 0x00005F4A,
+ 9682: 0x000061B2,
+ 9683: 0x00006191,
+ 9684: 0x000061A9,
+ 9685: 0x0000618A,
+ 9686: 0x000061CD,
+ 9687: 0x000061B6,
+ 9688: 0x000061BE,
+ 9689: 0x000061CA,
+ 9690: 0x000061C8,
+ 9691: 0x00006230,
+ 9692: 0x000064C5,
+ 9693: 0x000064C1,
+ 9694: 0x000064CB,
+ 9695: 0x000064BB,
+ 9696: 0x000064BC,
+ 9697: 0x000064DA,
+ 9698: 0x000064C4,
+ 9699: 0x000064C7,
+ 9700: 0x000064C2,
+ 9701: 0x000064CD,
+ 9702: 0x000064BF,
+ 9703: 0x000064D2,
+ 9704: 0x000064D4,
+ 9705: 0x000064BE,
+ 9706: 0x00006574,
+ 9707: 0x000066C6,
+ 9708: 0x000066C9,
+ 9709: 0x000066B9,
+ 9710: 0x000066C4,
+ 9711: 0x000066C7,
+ 9712: 0x000066B8,
+ 9713: 0x00006A3D,
+ 9714: 0x00006A38,
+ 9715: 0x00006A3A,
+ 9716: 0x00006A59,
+ 9717: 0x00006A6B,
+ 9718: 0x00006A58,
+ 9719: 0x00006A39,
+ 9720: 0x00006A44,
+ 9721: 0x00006A62,
+ 9722: 0x00006A61,
+ 9723: 0x00006A4B,
+ 9724: 0x00006A47,
+ 9725: 0x00006A35,
+ 9726: 0x00006A5F,
+ 9727: 0x00006A48,
+ 9728: 0x00006B59,
+ 9729: 0x00006B77,
+ 9730: 0x00006C05,
+ 9731: 0x00006FC2,
+ 9732: 0x00006FB1,
+ 9733: 0x00006FA1,
+ 9734: 0x00006FC3,
+ 9735: 0x00006FA4,
+ 9736: 0x00006FC1,
+ 9737: 0x00006FA7,
+ 9738: 0x00006FB3,
+ 9739: 0x00006FC0,
+ 9740: 0x00006FB9,
+ 9741: 0x00006FB6,
+ 9742: 0x00006FA6,
+ 9743: 0x00006FA0,
+ 9744: 0x00006FB4,
+ 9745: 0x000071BE,
+ 9746: 0x000071C9,
+ 9747: 0x000071D0,
+ 9748: 0x000071D2,
+ 9749: 0x000071C8,
+ 9750: 0x000071D5,
+ 9751: 0x000071B9,
+ 9752: 0x000071CE,
+ 9753: 0x000071D9,
+ 9754: 0x000071DC,
+ 9755: 0x000071C3,
+ 9756: 0x000071C4,
+ 9757: 0x00007368,
+ 9758: 0x0000749C,
+ 9759: 0x000074A3,
+ 9760: 0x00007498,
+ 9761: 0x0000749F,
+ 9762: 0x0000749E,
+ 9763: 0x000074E2,
+ 9764: 0x0000750C,
+ 9765: 0x0000750D,
+ 9766: 0x00007634,
+ 9767: 0x00007638,
+ 9768: 0x0000763A,
+ 9769: 0x000076E7,
+ 9770: 0x000076E5,
+ 9771: 0x000077A0,
+ 9772: 0x0000779E,
+ 9773: 0x0000779F,
+ 9774: 0x000077A5,
+ 9775: 0x000078E8,
+ 9776: 0x000078DA,
+ 9777: 0x000078EC,
+ 9778: 0x000078E7,
+ 9779: 0x000079A6,
+ 9780: 0x00007A4D,
+ 9781: 0x00007A4E,
+ 9782: 0x00007A46,
+ 9783: 0x00007A4C,
+ 9784: 0x00007A4B,
+ 9785: 0x00007ABA,
+ 9786: 0x00007BD9,
+ 9787: 0x00007C11,
+ 9788: 0x00007BC9,
+ 9789: 0x00007BE4,
+ 9790: 0x00007BDB,
+ 9791: 0x00007BE1,
+ 9792: 0x00007BE9,
+ 9793: 0x00007BE6,
+ 9794: 0x00007CD5,
+ 9795: 0x00007CD6,
+ 9796: 0x00007E0A,
+ 9797: 0x00007E11,
+ 9798: 0x00007E08,
+ 9799: 0x00007E1B,
+ 9800: 0x00007E23,
+ 9801: 0x00007E1E,
+ 9802: 0x00007E1D,
+ 9803: 0x00007E09,
+ 9804: 0x00007E10,
+ 9805: 0x00007F79,
+ 9806: 0x00007FB2,
+ 9807: 0x00007FF0,
+ 9808: 0x00007FF1,
+ 9809: 0x00007FEE,
+ 9810: 0x00008028,
+ 9811: 0x000081B3,
+ 9812: 0x000081A9,
+ 9813: 0x000081A8,
+ 9814: 0x000081FB,
+ 9815: 0x00008208,
+ 9816: 0x00008258,
+ 9817: 0x00008259,
+ 9818: 0x0000854A,
+ 9819: 0x00008559,
+ 9820: 0x00008548,
+ 9821: 0x00008568,
+ 9822: 0x00008569,
+ 9823: 0x00008543,
+ 9824: 0x00008549,
+ 9825: 0x0000856D,
+ 9826: 0x0000856A,
+ 9827: 0x0000855E,
+ 9828: 0x00008783,
+ 9829: 0x0000879F,
+ 9830: 0x0000879E,
+ 9831: 0x000087A2,
+ 9832: 0x0000878D,
+ 9833: 0x00008861,
+ 9834: 0x0000892A,
+ 9835: 0x00008932,
+ 9836: 0x00008925,
+ 9837: 0x0000892B,
+ 9838: 0x00008921,
+ 9839: 0x000089AA,
+ 9840: 0x000089A6,
+ 9841: 0x00008AE6,
+ 9842: 0x00008AFA,
+ 9843: 0x00008AEB,
+ 9844: 0x00008AF1,
+ 9845: 0x00008B00,
+ 9846: 0x00008ADC,
+ 9847: 0x00008AE7,
+ 9848: 0x00008AEE,
+ 9849: 0x00008AFE,
+ 9850: 0x00008B01,
+ 9851: 0x00008B02,
+ 9852: 0x00008AF7,
+ 9853: 0x00008AED,
+ 9854: 0x00008AF3,
+ 9855: 0x00008AF6,
+ 9856: 0x00008AFC,
+ 9857: 0x00008C6B,
+ 9858: 0x00008C6D,
+ 9859: 0x00008C93,
+ 9860: 0x00008CF4,
+ 9861: 0x00008E44,
+ 9862: 0x00008E31,
+ 9863: 0x00008E34,
+ 9864: 0x00008E42,
+ 9865: 0x00008E39,
+ 9866: 0x00008E35,
+ 9867: 0x00008F3B,
+ 9868: 0x00008F2F,
+ 9869: 0x00008F38,
+ 9870: 0x00008F33,
+ 9871: 0x00008FA8,
+ 9872: 0x00008FA6,
+ 9873: 0x00009075,
+ 9874: 0x00009074,
+ 9875: 0x00009078,
+ 9876: 0x00009072,
+ 9877: 0x0000907C,
+ 9878: 0x0000907A,
+ 9879: 0x00009134,
+ 9880: 0x00009192,
+ 9881: 0x00009320,
+ 9882: 0x00009336,
+ 9883: 0x000092F8,
+ 9884: 0x00009333,
+ 9885: 0x0000932F,
+ 9886: 0x00009322,
+ 9887: 0x000092FC,
+ 9888: 0x0000932B,
+ 9889: 0x00009304,
+ 9890: 0x0000931A,
+ 9891: 0x00009310,
+ 9892: 0x00009326,
+ 9893: 0x00009321,
+ 9894: 0x00009315,
+ 9895: 0x0000932E,
+ 9896: 0x00009319,
+ 9897: 0x000095BB,
+ 9898: 0x000096A7,
+ 9899: 0x000096A8,
+ 9900: 0x000096AA,
+ 9901: 0x000096D5,
+ 9902: 0x0000970E,
+ 9903: 0x00009711,
+ 9904: 0x00009716,
+ 9905: 0x0000970D,
+ 9906: 0x00009713,
+ 9907: 0x0000970F,
+ 9908: 0x0000975B,
+ 9909: 0x0000975C,
+ 9910: 0x00009766,
+ 9911: 0x00009798,
+ 9912: 0x00009830,
+ 9913: 0x00009838,
+ 9914: 0x0000983B,
+ 9915: 0x00009837,
+ 9916: 0x0000982D,
+ 9917: 0x00009839,
+ 9918: 0x00009824,
+ 9919: 0x00009910,
+ 9920: 0x00009928,
+ 9921: 0x0000991E,
+ 9922: 0x0000991B,
+ 9923: 0x00009921,
+ 9924: 0x0000991A,
+ 9925: 0x000099ED,
+ 9926: 0x000099E2,
+ 9927: 0x000099F1,
+ 9928: 0x00009AB8,
+ 9929: 0x00009ABC,
+ 9930: 0x00009AFB,
+ 9931: 0x00009AED,
+ 9932: 0x00009B28,
+ 9933: 0x00009B91,
+ 9934: 0x00009D15,
+ 9935: 0x00009D23,
+ 9936: 0x00009D26,
+ 9937: 0x00009D28,
+ 9938: 0x00009D12,
+ 9939: 0x00009D1B,
+ 9940: 0x00009ED8,
+ 9941: 0x00009ED4,
+ 9942: 0x00009F8D,
+ 9943: 0x00009F9C,
+ 9944: 0x0000512A,
+ 9945: 0x0000511F,
+ 9946: 0x00005121,
+ 9947: 0x00005132,
+ 9948: 0x000052F5,
+ 9949: 0x0000568E,
+ 9950: 0x00005680,
+ 9951: 0x00005690,
+ 9952: 0x00005685,
+ 9953: 0x00005687,
+ 9954: 0x0000568F,
+ 9955: 0x000058D5,
+ 9956: 0x000058D3,
+ 9957: 0x000058D1,
+ 9958: 0x000058CE,
+ 9959: 0x00005B30,
+ 9960: 0x00005B2A,
+ 9961: 0x00005B24,
+ 9962: 0x00005B7A,
+ 9963: 0x00005C37,
+ 9964: 0x00005C68,
+ 9965: 0x00005DBC,
+ 9966: 0x00005DBA,
+ 9967: 0x00005DBD,
+ 9968: 0x00005DB8,
+ 9969: 0x00005E6B,
+ 9970: 0x00005F4C,
+ 9971: 0x00005FBD,
+ 9972: 0x000061C9,
+ 9973: 0x000061C2,
+ 9974: 0x000061C7,
+ 9975: 0x000061E6,
+ 9976: 0x000061CB,
+ 9977: 0x00006232,
+ 9978: 0x00006234,
+ 9979: 0x000064CE,
+ 9980: 0x000064CA,
+ 9981: 0x000064D8,
+ 9982: 0x000064E0,
+ 9983: 0x000064F0,
+ 9984: 0x000064E6,
+ 9985: 0x000064EC,
+ 9986: 0x000064F1,
+ 9987: 0x000064E2,
+ 9988: 0x000064ED,
+ 9989: 0x00006582,
+ 9990: 0x00006583,
+ 9991: 0x000066D9,
+ 9992: 0x000066D6,
+ 9993: 0x00006A80,
+ 9994: 0x00006A94,
+ 9995: 0x00006A84,
+ 9996: 0x00006AA2,
+ 9997: 0x00006A9C,
+ 9998: 0x00006ADB,
+ 9999: 0x00006AA3,
+ 10000: 0x00006A7E,
+ 10001: 0x00006A97,
+ 10002: 0x00006A90,
+ 10003: 0x00006AA0,
+ 10004: 0x00006B5C,
+ 10005: 0x00006BAE,
+ 10006: 0x00006BDA,
+ 10007: 0x00006C08,
+ 10008: 0x00006FD8,
+ 10009: 0x00006FF1,
+ 10010: 0x00006FDF,
+ 10011: 0x00006FE0,
+ 10012: 0x00006FDB,
+ 10013: 0x00006FE4,
+ 10014: 0x00006FEB,
+ 10015: 0x00006FEF,
+ 10016: 0x00006F80,
+ 10017: 0x00006FEC,
+ 10018: 0x00006FE1,
+ 10019: 0x00006FE9,
+ 10020: 0x00006FD5,
+ 10021: 0x00006FEE,
+ 10022: 0x00006FF0,
+ 10023: 0x000071E7,
+ 10024: 0x000071DF,
+ 10025: 0x000071EE,
+ 10026: 0x000071E6,
+ 10027: 0x000071E5,
+ 10028: 0x000071ED,
+ 10029: 0x000071EC,
+ 10030: 0x000071F4,
+ 10031: 0x000071E0,
+ 10032: 0x00007235,
+ 10033: 0x00007246,
+ 10034: 0x00007370,
+ 10035: 0x00007372,
+ 10036: 0x000074A9,
+ 10037: 0x000074B0,
+ 10038: 0x000074A6,
+ 10039: 0x000074A8,
+ 10040: 0x00007646,
+ 10041: 0x00007642,
+ 10042: 0x0000764C,
+ 10043: 0x000076EA,
+ 10044: 0x000077B3,
+ 10045: 0x000077AA,
+ 10046: 0x000077B0,
+ 10047: 0x000077AC,
+ 10048: 0x000077A7,
+ 10049: 0x000077AD,
+ 10050: 0x000077EF,
+ 10051: 0x000078F7,
+ 10052: 0x000078FA,
+ 10053: 0x000078F4,
+ 10054: 0x000078EF,
+ 10055: 0x00007901,
+ 10056: 0x000079A7,
+ 10057: 0x000079AA,
+ 10058: 0x00007A57,
+ 10059: 0x00007ABF,
+ 10060: 0x00007C07,
+ 10061: 0x00007C0D,
+ 10062: 0x00007BFE,
+ 10063: 0x00007BF7,
+ 10064: 0x00007C0C,
+ 10065: 0x00007BE0,
+ 10066: 0x00007CE0,
+ 10067: 0x00007CDC,
+ 10068: 0x00007CDE,
+ 10069: 0x00007CE2,
+ 10070: 0x00007CDF,
+ 10071: 0x00007CD9,
+ 10072: 0x00007CDD,
+ 10073: 0x00007E2E,
+ 10074: 0x00007E3E,
+ 10075: 0x00007E46,
+ 10076: 0x00007E37,
+ 10077: 0x00007E32,
+ 10078: 0x00007E43,
+ 10079: 0x00007E2B,
+ 10080: 0x00007E3D,
+ 10081: 0x00007E31,
+ 10082: 0x00007E45,
+ 10083: 0x00007E41,
+ 10084: 0x00007E34,
+ 10085: 0x00007E39,
+ 10086: 0x00007E48,
+ 10087: 0x00007E35,
+ 10088: 0x00007E3F,
+ 10089: 0x00007E2F,
+ 10090: 0x00007F44,
+ 10091: 0x00007FF3,
+ 10092: 0x00007FFC,
+ 10093: 0x00008071,
+ 10094: 0x00008072,
+ 10095: 0x00008070,
+ 10096: 0x0000806F,
+ 10097: 0x00008073,
+ 10098: 0x000081C6,
+ 10099: 0x000081C3,
+ 10100: 0x000081BA,
+ 10101: 0x000081C2,
+ 10102: 0x000081C0,
+ 10103: 0x000081BF,
+ 10104: 0x000081BD,
+ 10105: 0x000081C9,
+ 10106: 0x000081BE,
+ 10107: 0x000081E8,
+ 10108: 0x00008209,
+ 10109: 0x00008271,
+ 10110: 0x000085AA,
+ 10111: 0x00008584,
+ 10112: 0x0000857E,
+ 10113: 0x0000859C,
+ 10114: 0x00008591,
+ 10115: 0x00008594,
+ 10116: 0x000085AF,
+ 10117: 0x0000859B,
+ 10118: 0x00008587,
+ 10119: 0x000085A8,
+ 10120: 0x0000858A,
+ 10121: 0x00008667,
+ 10122: 0x000087C0,
+ 10123: 0x000087D1,
+ 10124: 0x000087B3,
+ 10125: 0x000087D2,
+ 10126: 0x000087C6,
+ 10127: 0x000087AB,
+ 10128: 0x000087BB,
+ 10129: 0x000087BA,
+ 10130: 0x000087C8,
+ 10131: 0x000087CB,
+ 10132: 0x0000893B,
+ 10133: 0x00008936,
+ 10134: 0x00008944,
+ 10135: 0x00008938,
+ 10136: 0x0000893D,
+ 10137: 0x000089AC,
+ 10138: 0x00008B0E,
+ 10139: 0x00008B17,
+ 10140: 0x00008B19,
+ 10141: 0x00008B1B,
+ 10142: 0x00008B0A,
+ 10143: 0x00008B20,
+ 10144: 0x00008B1D,
+ 10145: 0x00008B04,
+ 10146: 0x00008B10,
+ 10147: 0x00008C41,
+ 10148: 0x00008C3F,
+ 10149: 0x00008C73,
+ 10150: 0x00008CFA,
+ 10151: 0x00008CFD,
+ 10152: 0x00008CFC,
+ 10153: 0x00008CF8,
+ 10154: 0x00008CFB,
+ 10155: 0x00008DA8,
+ 10156: 0x00008E49,
+ 10157: 0x00008E4B,
+ 10158: 0x00008E48,
+ 10159: 0x00008E4A,
+ 10160: 0x00008F44,
+ 10161: 0x00008F3E,
+ 10162: 0x00008F42,
+ 10163: 0x00008F45,
+ 10164: 0x00008F3F,
+ 10165: 0x0000907F,
+ 10166: 0x0000907D,
+ 10167: 0x00009084,
+ 10168: 0x00009081,
+ 10169: 0x00009082,
+ 10170: 0x00009080,
+ 10171: 0x00009139,
+ 10172: 0x000091A3,
+ 10173: 0x0000919E,
+ 10174: 0x0000919C,
+ 10175: 0x0000934D,
+ 10176: 0x00009382,
+ 10177: 0x00009328,
+ 10178: 0x00009375,
+ 10179: 0x0000934A,
+ 10180: 0x00009365,
+ 10181: 0x0000934B,
+ 10182: 0x00009318,
+ 10183: 0x0000937E,
+ 10184: 0x0000936C,
+ 10185: 0x0000935B,
+ 10186: 0x00009370,
+ 10187: 0x0000935A,
+ 10188: 0x00009354,
+ 10189: 0x000095CA,
+ 10190: 0x000095CB,
+ 10191: 0x000095CC,
+ 10192: 0x000095C8,
+ 10193: 0x000095C6,
+ 10194: 0x000096B1,
+ 10195: 0x000096B8,
+ 10196: 0x000096D6,
+ 10197: 0x0000971C,
+ 10198: 0x0000971E,
+ 10199: 0x000097A0,
+ 10200: 0x000097D3,
+ 10201: 0x00009846,
+ 10202: 0x000098B6,
+ 10203: 0x00009935,
+ 10204: 0x00009A01,
+ 10205: 0x000099FF,
+ 10206: 0x00009BAE,
+ 10207: 0x00009BAB,
+ 10208: 0x00009BAA,
+ 10209: 0x00009BAD,
+ 10210: 0x00009D3B,
+ 10211: 0x00009D3F,
+ 10212: 0x00009E8B,
+ 10213: 0x00009ECF,
+ 10214: 0x00009EDE,
+ 10215: 0x00009EDC,
+ 10216: 0x00009EDD,
+ 10217: 0x00009EDB,
+ 10218: 0x00009F3E,
+ 10219: 0x00009F4B,
+ 10220: 0x000053E2,
+ 10221: 0x00005695,
+ 10222: 0x000056AE,
+ 10223: 0x000058D9,
+ 10224: 0x000058D8,
+ 10225: 0x00005B38,
+ 10226: 0x00005F5D,
+ 10227: 0x000061E3,
+ 10228: 0x00006233,
+ 10229: 0x000064F4,
+ 10230: 0x000064F2,
+ 10231: 0x000064FE,
+ 10232: 0x00006506,
+ 10233: 0x000064FA,
+ 10234: 0x000064FB,
+ 10235: 0x000064F7,
+ 10236: 0x000065B7,
+ 10237: 0x000066DC,
+ 10238: 0x00006726,
+ 10239: 0x00006AB3,
+ 10240: 0x00006AAC,
+ 10241: 0x00006AC3,
+ 10242: 0x00006ABB,
+ 10243: 0x00006AB8,
+ 10244: 0x00006AC2,
+ 10245: 0x00006AAE,
+ 10246: 0x00006AAF,
+ 10247: 0x00006B5F,
+ 10248: 0x00006B78,
+ 10249: 0x00006BAF,
+ 10250: 0x00007009,
+ 10251: 0x0000700B,
+ 10252: 0x00006FFE,
+ 10253: 0x00007006,
+ 10254: 0x00006FFA,
+ 10255: 0x00007011,
+ 10256: 0x0000700F,
+ 10257: 0x000071FB,
+ 10258: 0x000071FC,
+ 10259: 0x000071FE,
+ 10260: 0x000071F8,
+ 10261: 0x00007377,
+ 10262: 0x00007375,
+ 10263: 0x000074A7,
+ 10264: 0x000074BF,
+ 10265: 0x00007515,
+ 10266: 0x00007656,
+ 10267: 0x00007658,
+ 10268: 0x00007652,
+ 10269: 0x000077BD,
+ 10270: 0x000077BF,
+ 10271: 0x000077BB,
+ 10272: 0x000077BC,
+ 10273: 0x0000790E,
+ 10274: 0x000079AE,
+ 10275: 0x00007A61,
+ 10276: 0x00007A62,
+ 10277: 0x00007A60,
+ 10278: 0x00007AC4,
+ 10279: 0x00007AC5,
+ 10280: 0x00007C2B,
+ 10281: 0x00007C27,
+ 10282: 0x00007C2A,
+ 10283: 0x00007C1E,
+ 10284: 0x00007C23,
+ 10285: 0x00007C21,
+ 10286: 0x00007CE7,
+ 10287: 0x00007E54,
+ 10288: 0x00007E55,
+ 10289: 0x00007E5E,
+ 10290: 0x00007E5A,
+ 10291: 0x00007E61,
+ 10292: 0x00007E52,
+ 10293: 0x00007E59,
+ 10294: 0x00007F48,
+ 10295: 0x00007FF9,
+ 10296: 0x00007FFB,
+ 10297: 0x00008077,
+ 10298: 0x00008076,
+ 10299: 0x000081CD,
+ 10300: 0x000081CF,
+ 10301: 0x0000820A,
+ 10302: 0x000085CF,
+ 10303: 0x000085A9,
+ 10304: 0x000085CD,
+ 10305: 0x000085D0,
+ 10306: 0x000085C9,
+ 10307: 0x000085B0,
+ 10308: 0x000085BA,
+ 10309: 0x000085B9,
+ 10310: 0x000085A6,
+ 10311: 0x000087EF,
+ 10312: 0x000087EC,
+ 10313: 0x000087F2,
+ 10314: 0x000087E0,
+ 10315: 0x00008986,
+ 10316: 0x000089B2,
+ 10317: 0x000089F4,
+ 10318: 0x00008B28,
+ 10319: 0x00008B39,
+ 10320: 0x00008B2C,
+ 10321: 0x00008B2B,
+ 10322: 0x00008C50,
+ 10323: 0x00008D05,
+ 10324: 0x00008E59,
+ 10325: 0x00008E63,
+ 10326: 0x00008E66,
+ 10327: 0x00008E64,
+ 10328: 0x00008E5F,
+ 10329: 0x00008E55,
+ 10330: 0x00008EC0,
+ 10331: 0x00008F49,
+ 10332: 0x00008F4D,
+ 10333: 0x00009087,
+ 10334: 0x00009083,
+ 10335: 0x00009088,
+ 10336: 0x000091AB,
+ 10337: 0x000091AC,
+ 10338: 0x000091D0,
+ 10339: 0x00009394,
+ 10340: 0x0000938A,
+ 10341: 0x00009396,
+ 10342: 0x000093A2,
+ 10343: 0x000093B3,
+ 10344: 0x000093AE,
+ 10345: 0x000093AC,
+ 10346: 0x000093B0,
+ 10347: 0x00009398,
+ 10348: 0x0000939A,
+ 10349: 0x00009397,
+ 10350: 0x000095D4,
+ 10351: 0x000095D6,
+ 10352: 0x000095D0,
+ 10353: 0x000095D5,
+ 10354: 0x000096E2,
+ 10355: 0x000096DC,
+ 10356: 0x000096D9,
+ 10357: 0x000096DB,
+ 10358: 0x000096DE,
+ 10359: 0x00009724,
+ 10360: 0x000097A3,
+ 10361: 0x000097A6,
+ 10362: 0x000097AD,
+ 10363: 0x000097F9,
+ 10364: 0x0000984D,
+ 10365: 0x0000984F,
+ 10366: 0x0000984C,
+ 10367: 0x0000984E,
+ 10368: 0x00009853,
+ 10369: 0x000098BA,
+ 10370: 0x0000993E,
+ 10371: 0x0000993F,
+ 10372: 0x0000993D,
+ 10373: 0x0000992E,
+ 10374: 0x000099A5,
+ 10375: 0x00009A0E,
+ 10376: 0x00009AC1,
+ 10377: 0x00009B03,
+ 10378: 0x00009B06,
+ 10379: 0x00009B4F,
+ 10380: 0x00009B4E,
+ 10381: 0x00009B4D,
+ 10382: 0x00009BCA,
+ 10383: 0x00009BC9,
+ 10384: 0x00009BFD,
+ 10385: 0x00009BC8,
+ 10386: 0x00009BC0,
+ 10387: 0x00009D51,
+ 10388: 0x00009D5D,
+ 10389: 0x00009D60,
+ 10390: 0x00009EE0,
+ 10391: 0x00009F15,
+ 10392: 0x00009F2C,
+ 10393: 0x00005133,
+ 10394: 0x000056A5,
+ 10395: 0x000058DE,
+ 10396: 0x000058DF,
+ 10397: 0x000058E2,
+ 10398: 0x00005BF5,
+ 10399: 0x00009F90,
+ 10400: 0x00005EEC,
+ 10401: 0x000061F2,
+ 10402: 0x000061F7,
+ 10403: 0x000061F6,
+ 10404: 0x000061F5,
+ 10405: 0x00006500,
+ 10406: 0x0000650F,
+ 10407: 0x000066E0,
+ 10408: 0x000066DD,
+ 10409: 0x00006AE5,
+ 10410: 0x00006ADD,
+ 10411: 0x00006ADA,
+ 10412: 0x00006AD3,
+ 10413: 0x0000701B,
+ 10414: 0x0000701F,
+ 10415: 0x00007028,
+ 10416: 0x0000701A,
+ 10417: 0x0000701D,
+ 10418: 0x00007015,
+ 10419: 0x00007018,
+ 10420: 0x00007206,
+ 10421: 0x0000720D,
+ 10422: 0x00007258,
+ 10423: 0x000072A2,
+ 10424: 0x00007378,
+ 10425: 0x0000737A,
+ 10426: 0x000074BD,
+ 10427: 0x000074CA,
+ 10428: 0x000074E3,
+ 10429: 0x00007587,
+ 10430: 0x00007586,
+ 10431: 0x0000765F,
+ 10432: 0x00007661,
+ 10433: 0x000077C7,
+ 10434: 0x00007919,
+ 10435: 0x000079B1,
+ 10436: 0x00007A6B,
+ 10437: 0x00007A69,
+ 10438: 0x00007C3E,
+ 10439: 0x00007C3F,
+ 10440: 0x00007C38,
+ 10441: 0x00007C3D,
+ 10442: 0x00007C37,
+ 10443: 0x00007C40,
+ 10444: 0x00007E6B,
+ 10445: 0x00007E6D,
+ 10446: 0x00007E79,
+ 10447: 0x00007E69,
+ 10448: 0x00007E6A,
+ 10449: 0x00007F85,
+ 10450: 0x00007E73,
+ 10451: 0x00007FB6,
+ 10452: 0x00007FB9,
+ 10453: 0x00007FB8,
+ 10454: 0x000081D8,
+ 10455: 0x000085E9,
+ 10456: 0x000085DD,
+ 10457: 0x000085EA,
+ 10458: 0x000085D5,
+ 10459: 0x000085E4,
+ 10460: 0x000085E5,
+ 10461: 0x000085F7,
+ 10462: 0x000087FB,
+ 10463: 0x00008805,
+ 10464: 0x0000880D,
+ 10465: 0x000087F9,
+ 10466: 0x000087FE,
+ 10467: 0x00008960,
+ 10468: 0x0000895F,
+ 10469: 0x00008956,
+ 10470: 0x0000895E,
+ 10471: 0x00008B41,
+ 10472: 0x00008B5C,
+ 10473: 0x00008B58,
+ 10474: 0x00008B49,
+ 10475: 0x00008B5A,
+ 10476: 0x00008B4E,
+ 10477: 0x00008B4F,
+ 10478: 0x00008B46,
+ 10479: 0x00008B59,
+ 10480: 0x00008D08,
+ 10481: 0x00008D0A,
+ 10482: 0x00008E7C,
+ 10483: 0x00008E72,
+ 10484: 0x00008E87,
+ 10485: 0x00008E76,
+ 10486: 0x00008E6C,
+ 10487: 0x00008E7A,
+ 10488: 0x00008E74,
+ 10489: 0x00008F54,
+ 10490: 0x00008F4E,
+ 10491: 0x00008FAD,
+ 10492: 0x0000908A,
+ 10493: 0x0000908B,
+ 10494: 0x000091B1,
+ 10495: 0x000091AE,
+ 10496: 0x000093E1,
+ 10497: 0x000093D1,
+ 10498: 0x000093DF,
+ 10499: 0x000093C3,
+ 10500: 0x000093C8,
+ 10501: 0x000093DC,
+ 10502: 0x000093DD,
+ 10503: 0x000093D6,
+ 10504: 0x000093E2,
+ 10505: 0x000093CD,
+ 10506: 0x000093D8,
+ 10507: 0x000093E4,
+ 10508: 0x000093D7,
+ 10509: 0x000093E8,
+ 10510: 0x000095DC,
+ 10511: 0x000096B4,
+ 10512: 0x000096E3,
+ 10513: 0x0000972A,
+ 10514: 0x00009727,
+ 10515: 0x00009761,
+ 10516: 0x000097DC,
+ 10517: 0x000097FB,
+ 10518: 0x0000985E,
+ 10519: 0x00009858,
+ 10520: 0x0000985B,
+ 10521: 0x000098BC,
+ 10522: 0x00009945,
+ 10523: 0x00009949,
+ 10524: 0x00009A16,
+ 10525: 0x00009A19,
+ 10526: 0x00009B0D,
+ 10527: 0x00009BE8,
+ 10528: 0x00009BE7,
+ 10529: 0x00009BD6,
+ 10530: 0x00009BDB,
+ 10531: 0x00009D89,
+ 10532: 0x00009D61,
+ 10533: 0x00009D72,
+ 10534: 0x00009D6A,
+ 10535: 0x00009D6C,
+ 10536: 0x00009E92,
+ 10537: 0x00009E97,
+ 10538: 0x00009E93,
+ 10539: 0x00009EB4,
+ 10540: 0x000052F8,
+ 10541: 0x000056A8,
+ 10542: 0x000056B7,
+ 10543: 0x000056B6,
+ 10544: 0x000056B4,
+ 10545: 0x000056BC,
+ 10546: 0x000058E4,
+ 10547: 0x00005B40,
+ 10548: 0x00005B43,
+ 10549: 0x00005B7D,
+ 10550: 0x00005BF6,
+ 10551: 0x00005DC9,
+ 10552: 0x000061F8,
+ 10553: 0x000061FA,
+ 10554: 0x00006518,
+ 10555: 0x00006514,
+ 10556: 0x00006519,
+ 10557: 0x000066E6,
+ 10558: 0x00006727,
+ 10559: 0x00006AEC,
+ 10560: 0x0000703E,
+ 10561: 0x00007030,
+ 10562: 0x00007032,
+ 10563: 0x00007210,
+ 10564: 0x0000737B,
+ 10565: 0x000074CF,
+ 10566: 0x00007662,
+ 10567: 0x00007665,
+ 10568: 0x00007926,
+ 10569: 0x0000792A,
+ 10570: 0x0000792C,
+ 10571: 0x0000792B,
+ 10572: 0x00007AC7,
+ 10573: 0x00007AF6,
+ 10574: 0x00007C4C,
+ 10575: 0x00007C43,
+ 10576: 0x00007C4D,
+ 10577: 0x00007CEF,
+ 10578: 0x00007CF0,
+ 10579: 0x00008FAE,
+ 10580: 0x00007E7D,
+ 10581: 0x00007E7C,
+ 10582: 0x00007E82,
+ 10583: 0x00007F4C,
+ 10584: 0x00008000,
+ 10585: 0x000081DA,
+ 10586: 0x00008266,
+ 10587: 0x000085FB,
+ 10588: 0x000085F9,
+ 10589: 0x00008611,
+ 10590: 0x000085FA,
+ 10591: 0x00008606,
+ 10592: 0x0000860B,
+ 10593: 0x00008607,
+ 10594: 0x0000860A,
+ 10595: 0x00008814,
+ 10596: 0x00008815,
+ 10597: 0x00008964,
+ 10598: 0x000089BA,
+ 10599: 0x000089F8,
+ 10600: 0x00008B70,
+ 10601: 0x00008B6C,
+ 10602: 0x00008B66,
+ 10603: 0x00008B6F,
+ 10604: 0x00008B5F,
+ 10605: 0x00008B6B,
+ 10606: 0x00008D0F,
+ 10607: 0x00008D0D,
+ 10608: 0x00008E89,
+ 10609: 0x00008E81,
+ 10610: 0x00008E85,
+ 10611: 0x00008E82,
+ 10612: 0x000091B4,
+ 10613: 0x000091CB,
+ 10614: 0x00009418,
+ 10615: 0x00009403,
+ 10616: 0x000093FD,
+ 10617: 0x000095E1,
+ 10618: 0x00009730,
+ 10619: 0x000098C4,
+ 10620: 0x00009952,
+ 10621: 0x00009951,
+ 10622: 0x000099A8,
+ 10623: 0x00009A2B,
+ 10624: 0x00009A30,
+ 10625: 0x00009A37,
+ 10626: 0x00009A35,
+ 10627: 0x00009C13,
+ 10628: 0x00009C0D,
+ 10629: 0x00009E79,
+ 10630: 0x00009EB5,
+ 10631: 0x00009EE8,
+ 10632: 0x00009F2F,
+ 10633: 0x00009F5F,
+ 10634: 0x00009F63,
+ 10635: 0x00009F61,
+ 10636: 0x00005137,
+ 10637: 0x00005138,
+ 10638: 0x000056C1,
+ 10639: 0x000056C0,
+ 10640: 0x000056C2,
+ 10641: 0x00005914,
+ 10642: 0x00005C6C,
+ 10643: 0x00005DCD,
+ 10644: 0x000061FC,
+ 10645: 0x000061FE,
+ 10646: 0x0000651D,
+ 10647: 0x0000651C,
+ 10648: 0x00006595,
+ 10649: 0x000066E9,
+ 10650: 0x00006AFB,
+ 10651: 0x00006B04,
+ 10652: 0x00006AFA,
+ 10653: 0x00006BB2,
+ 10654: 0x0000704C,
+ 10655: 0x0000721B,
+ 10656: 0x000072A7,
+ 10657: 0x000074D6,
+ 10658: 0x000074D4,
+ 10659: 0x00007669,
+ 10660: 0x000077D3,
+ 10661: 0x00007C50,
+ 10662: 0x00007E8F,
+ 10663: 0x00007E8C,
+ 10664: 0x00007FBC,
+ 10665: 0x00008617,
+ 10666: 0x0000862D,
+ 10667: 0x0000861A,
+ 10668: 0x00008823,
+ 10669: 0x00008822,
+ 10670: 0x00008821,
+ 10671: 0x0000881F,
+ 10672: 0x0000896A,
+ 10673: 0x0000896C,
+ 10674: 0x000089BD,
+ 10675: 0x00008B74,
+ 10676: 0x00008B77,
+ 10677: 0x00008B7D,
+ 10678: 0x00008D13,
+ 10679: 0x00008E8A,
+ 10680: 0x00008E8D,
+ 10681: 0x00008E8B,
+ 10682: 0x00008F5F,
+ 10683: 0x00008FAF,
+ 10684: 0x000091BA,
+ 10685: 0x0000942E,
+ 10686: 0x00009433,
+ 10687: 0x00009435,
+ 10688: 0x0000943A,
+ 10689: 0x00009438,
+ 10690: 0x00009432,
+ 10691: 0x0000942B,
+ 10692: 0x000095E2,
+ 10693: 0x00009738,
+ 10694: 0x00009739,
+ 10695: 0x00009732,
+ 10696: 0x000097FF,
+ 10697: 0x00009867,
+ 10698: 0x00009865,
+ 10699: 0x00009957,
+ 10700: 0x00009A45,
+ 10701: 0x00009A43,
+ 10702: 0x00009A40,
+ 10703: 0x00009A3E,
+ 10704: 0x00009ACF,
+ 10705: 0x00009B54,
+ 10706: 0x00009B51,
+ 10707: 0x00009C2D,
+ 10708: 0x00009C25,
+ 10709: 0x00009DAF,
+ 10710: 0x00009DB4,
+ 10711: 0x00009DC2,
+ 10712: 0x00009DB8,
+ 10713: 0x00009E9D,
+ 10714: 0x00009EEF,
+ 10715: 0x00009F19,
+ 10716: 0x00009F5C,
+ 10717: 0x00009F66,
+ 10718: 0x00009F67,
+ 10719: 0x0000513C,
+ 10720: 0x0000513B,
+ 10721: 0x000056C8,
+ 10722: 0x000056CA,
+ 10723: 0x000056C9,
+ 10724: 0x00005B7F,
+ 10725: 0x00005DD4,
+ 10726: 0x00005DD2,
+ 10727: 0x00005F4E,
+ 10728: 0x000061FF,
+ 10729: 0x00006524,
+ 10730: 0x00006B0A,
+ 10731: 0x00006B61,
+ 10732: 0x00007051,
+ 10733: 0x00007058,
+ 10734: 0x00007380,
+ 10735: 0x000074E4,
+ 10736: 0x0000758A,
+ 10737: 0x0000766E,
+ 10738: 0x0000766C,
+ 10739: 0x000079B3,
+ 10740: 0x00007C60,
+ 10741: 0x00007C5F,
+ 10742: 0x0000807E,
+ 10743: 0x0000807D,
+ 10744: 0x000081DF,
+ 10745: 0x00008972,
+ 10746: 0x0000896F,
+ 10747: 0x000089FC,
+ 10748: 0x00008B80,
+ 10749: 0x00008D16,
+ 10750: 0x00008D17,
+ 10751: 0x00008E91,
+ 10752: 0x00008E93,
+ 10753: 0x00008F61,
+ 10754: 0x00009148,
+ 10755: 0x00009444,
+ 10756: 0x00009451,
+ 10757: 0x00009452,
+ 10758: 0x0000973D,
+ 10759: 0x0000973E,
+ 10760: 0x000097C3,
+ 10761: 0x000097C1,
+ 10762: 0x0000986B,
+ 10763: 0x00009955,
+ 10764: 0x00009A55,
+ 10765: 0x00009A4D,
+ 10766: 0x00009AD2,
+ 10767: 0x00009B1A,
+ 10768: 0x00009C49,
+ 10769: 0x00009C31,
+ 10770: 0x00009C3E,
+ 10771: 0x00009C3B,
+ 10772: 0x00009DD3,
+ 10773: 0x00009DD7,
+ 10774: 0x00009F34,
+ 10775: 0x00009F6C,
+ 10776: 0x00009F6A,
+ 10777: 0x00009F94,
+ 10778: 0x000056CC,
+ 10779: 0x00005DD6,
+ 10780: 0x00006200,
+ 10781: 0x00006523,
+ 10782: 0x0000652B,
+ 10783: 0x0000652A,
+ 10784: 0x000066EC,
+ 10785: 0x00006B10,
+ 10786: 0x000074DA,
+ 10787: 0x00007ACA,
+ 10788: 0x00007C64,
+ 10789: 0x00007C63,
+ 10790: 0x00007C65,
+ 10791: 0x00007E93,
+ 10792: 0x00007E96,
+ 10793: 0x00007E94,
+ 10794: 0x000081E2,
+ 10795: 0x00008638,
+ 10796: 0x0000863F,
+ 10797: 0x00008831,
+ 10798: 0x00008B8A,
+ 10799: 0x00009090,
+ 10800: 0x0000908F,
+ 10801: 0x00009463,
+ 10802: 0x00009460,
+ 10803: 0x00009464,
+ 10804: 0x00009768,
+ 10805: 0x0000986F,
+ 10806: 0x0000995C,
+ 10807: 0x00009A5A,
+ 10808: 0x00009A5B,
+ 10809: 0x00009A57,
+ 10810: 0x00009AD3,
+ 10811: 0x00009AD4,
+ 10812: 0x00009AD1,
+ 10813: 0x00009C54,
+ 10814: 0x00009C57,
+ 10815: 0x00009C56,
+ 10816: 0x00009DE5,
+ 10817: 0x00009E9F,
+ 10818: 0x00009EF4,
+ 10819: 0x000056D1,
+ 10820: 0x000058E9,
+ 10821: 0x0000652C,
+ 10822: 0x0000705E,
+ 10823: 0x00007671,
+ 10824: 0x00007672,
+ 10825: 0x000077D7,
+ 10826: 0x00007F50,
+ 10827: 0x00007F88,
+ 10828: 0x00008836,
+ 10829: 0x00008839,
+ 10830: 0x00008862,
+ 10831: 0x00008B93,
+ 10832: 0x00008B92,
+ 10833: 0x00008B96,
+ 10834: 0x00008277,
+ 10835: 0x00008D1B,
+ 10836: 0x000091C0,
+ 10837: 0x0000946A,
+ 10838: 0x00009742,
+ 10839: 0x00009748,
+ 10840: 0x00009744,
+ 10841: 0x000097C6,
+ 10842: 0x00009870,
+ 10843: 0x00009A5F,
+ 10844: 0x00009B22,
+ 10845: 0x00009B58,
+ 10846: 0x00009C5F,
+ 10847: 0x00009DF9,
+ 10848: 0x00009DFA,
+ 10849: 0x00009E7C,
+ 10850: 0x00009E7D,
+ 10851: 0x00009F07,
+ 10852: 0x00009F77,
+ 10853: 0x00009F72,
+ 10854: 0x00005EF3,
+ 10855: 0x00006B16,
+ 10856: 0x00007063,
+ 10857: 0x00007C6C,
+ 10858: 0x00007C6E,
+ 10859: 0x0000883B,
+ 10860: 0x000089C0,
+ 10861: 0x00008EA1,
+ 10862: 0x000091C1,
+ 10863: 0x00009472,
+ 10864: 0x00009470,
+ 10865: 0x00009871,
+ 10866: 0x0000995E,
+ 10867: 0x00009AD6,
+ 10868: 0x00009B23,
+ 10869: 0x00009ECC,
+ 10870: 0x00007064,
+ 10871: 0x000077DA,
+ 10872: 0x00008B9A,
+ 10873: 0x00009477,
+ 10874: 0x000097C9,
+ 10875: 0x00009A62,
+ 10876: 0x00009A65,
+ 10877: 0x00007E9C,
+ 10878: 0x00008B9C,
+ 10879: 0x00008EAA,
+ 10880: 0x000091C5,
+ 10881: 0x0000947D,
+ 10882: 0x0000947E,
+ 10883: 0x0000947C,
+ 10884: 0x00009C77,
+ 10885: 0x00009C78,
+ 10886: 0x00009EF7,
+ 10887: 0x00008C54,
+ 10888: 0x0000947F,
+ 10889: 0x00009E1A,
+ 10890: 0x00007228,
+ 10891: 0x00009A6A,
+ 10892: 0x00009B31,
+ 10893: 0x00009E1B,
+ 10894: 0x00009E1E,
+ 10895: 0x00007C72,
+ 10896: 0x00002460,
+ 10897: 0x00002461,
+ 10898: 0x00002462,
+ 10899: 0x00002463,
+ 10900: 0x00002464,
+ 10901: 0x00002465,
+ 10902: 0x00002466,
+ 10903: 0x00002467,
+ 10904: 0x00002468,
+ 10905: 0x00002469,
+ 10906: 0x00002474,
+ 10907: 0x00002475,
+ 10908: 0x00002476,
+ 10909: 0x00002477,
+ 10910: 0x00002478,
+ 10911: 0x00002479,
+ 10912: 0x0000247A,
+ 10913: 0x0000247B,
+ 10914: 0x0000247C,
+ 10915: 0x0000247D,
+ 10916: 0x00002170,
+ 10917: 0x00002171,
+ 10918: 0x00002172,
+ 10919: 0x00002173,
+ 10920: 0x00002174,
+ 10921: 0x00002175,
+ 10922: 0x00002176,
+ 10923: 0x00002177,
+ 10924: 0x00002178,
+ 10925: 0x00002179,
+ 10926: 0x00004E36,
+ 10927: 0x00004E3F,
+ 10928: 0x00004E85,
+ 10929: 0x00004EA0,
+ 10930: 0x00005182,
+ 10931: 0x00005196,
+ 10932: 0x000051AB,
+ 10933: 0x000052F9,
+ 10934: 0x00005338,
+ 10935: 0x00005369,
+ 10936: 0x000053B6,
+ 10937: 0x0000590A,
+ 10938: 0x00005B80,
+ 10939: 0x00005DDB,
+ 10940: 0x00002F33,
+ 10941: 0x00005E7F,
+ 10942: 0x00005EF4,
+ 10943: 0x00005F50,
+ 10944: 0x00005F61,
+ 10945: 0x00006534,
+ 10946: 0x000065E0,
+ 10947: 0x00007592,
+ 10948: 0x00007676,
+ 10949: 0x00008FB5,
+ 10950: 0x000096B6,
+ 10951: 0x000000A8,
+ 10952: 0x000002C6,
+ 10953: 0x000030FD,
+ 10954: 0x000030FE,
+ 10955: 0x0000309D,
+ 10956: 0x0000309E,
+ 10957: 0x00003003,
+ 10958: 0x00004EDD,
+ 10959: 0x00003005,
+ 10960: 0x00003006,
+ 10961: 0x00003007,
+ 10962: 0x000030FC,
+ 10963: 0x0000FF3B,
+ 10964: 0x0000FF3D,
+ 10965: 0x0000273D,
+ 10966: 0x00003041,
+ 10967: 0x00003042,
+ 10968: 0x00003043,
+ 10969: 0x00003044,
+ 10970: 0x00003045,
+ 10971: 0x00003046,
+ 10972: 0x00003047,
+ 10973: 0x00003048,
+ 10974: 0x00003049,
+ 10975: 0x0000304A,
+ 10976: 0x0000304B,
+ 10977: 0x0000304C,
+ 10978: 0x0000304D,
+ 10979: 0x0000304E,
+ 10980: 0x0000304F,
+ 10981: 0x00003050,
+ 10982: 0x00003051,
+ 10983: 0x00003052,
+ 10984: 0x00003053,
+ 10985: 0x00003054,
+ 10986: 0x00003055,
+ 10987: 0x00003056,
+ 10988: 0x00003057,
+ 10989: 0x00003058,
+ 10990: 0x00003059,
+ 10991: 0x0000305A,
+ 10992: 0x0000305B,
+ 10993: 0x0000305C,
+ 10994: 0x0000305D,
+ 10995: 0x0000305E,
+ 10996: 0x0000305F,
+ 10997: 0x00003060,
+ 10998: 0x00003061,
+ 10999: 0x00003062,
+ 11000: 0x00003063,
+ 11001: 0x00003064,
+ 11002: 0x00003065,
+ 11003: 0x00003066,
+ 11004: 0x00003067,
+ 11005: 0x00003068,
+ 11006: 0x00003069,
+ 11007: 0x0000306A,
+ 11008: 0x0000306B,
+ 11009: 0x0000306C,
+ 11010: 0x0000306D,
+ 11011: 0x0000306E,
+ 11012: 0x0000306F,
+ 11013: 0x00003070,
+ 11014: 0x00003071,
+ 11015: 0x00003072,
+ 11016: 0x00003073,
+ 11017: 0x00003074,
+ 11018: 0x00003075,
+ 11019: 0x00003076,
+ 11020: 0x00003077,
+ 11021: 0x00003078,
+ 11022: 0x00003079,
+ 11023: 0x0000307A,
+ 11024: 0x0000307B,
+ 11025: 0x0000307C,
+ 11026: 0x0000307D,
+ 11027: 0x0000307E,
+ 11028: 0x0000307F,
+ 11029: 0x00003080,
+ 11030: 0x00003081,
+ 11031: 0x00003082,
+ 11032: 0x00003083,
+ 11033: 0x00003084,
+ 11034: 0x00003085,
+ 11035: 0x00003086,
+ 11036: 0x00003087,
+ 11037: 0x00003088,
+ 11038: 0x00003089,
+ 11039: 0x0000308A,
+ 11040: 0x0000308B,
+ 11041: 0x0000308C,
+ 11042: 0x0000308D,
+ 11043: 0x0000308E,
+ 11044: 0x0000308F,
+ 11045: 0x00003090,
+ 11046: 0x00003091,
+ 11047: 0x00003092,
+ 11048: 0x00003093,
+ 11049: 0x000030A1,
+ 11050: 0x000030A2,
+ 11051: 0x000030A3,
+ 11052: 0x000030A4,
+ 11053: 0x000030A5,
+ 11054: 0x000030A6,
+ 11055: 0x000030A7,
+ 11056: 0x000030A8,
+ 11057: 0x000030A9,
+ 11058: 0x000030AA,
+ 11059: 0x000030AB,
+ 11060: 0x000030AC,
+ 11061: 0x000030AD,
+ 11062: 0x000030AE,
+ 11063: 0x000030AF,
+ 11064: 0x000030B0,
+ 11065: 0x000030B1,
+ 11066: 0x000030B2,
+ 11067: 0x000030B3,
+ 11068: 0x000030B4,
+ 11069: 0x000030B5,
+ 11070: 0x000030B6,
+ 11071: 0x000030B7,
+ 11072: 0x000030B8,
+ 11073: 0x000030B9,
+ 11074: 0x000030BA,
+ 11075: 0x000030BB,
+ 11076: 0x000030BC,
+ 11077: 0x000030BD,
+ 11078: 0x000030BE,
+ 11079: 0x000030BF,
+ 11080: 0x000030C0,
+ 11081: 0x000030C1,
+ 11082: 0x000030C2,
+ 11083: 0x000030C3,
+ 11084: 0x000030C4,
+ 11085: 0x000030C5,
+ 11086: 0x000030C6,
+ 11087: 0x000030C7,
+ 11088: 0x000030C8,
+ 11089: 0x000030C9,
+ 11090: 0x000030CA,
+ 11091: 0x000030CB,
+ 11092: 0x000030CC,
+ 11093: 0x000030CD,
+ 11094: 0x000030CE,
+ 11095: 0x000030CF,
+ 11096: 0x000030D0,
+ 11097: 0x000030D1,
+ 11098: 0x000030D2,
+ 11099: 0x000030D3,
+ 11100: 0x000030D4,
+ 11101: 0x000030D5,
+ 11102: 0x000030D6,
+ 11103: 0x000030D7,
+ 11104: 0x000030D8,
+ 11105: 0x000030D9,
+ 11106: 0x000030DA,
+ 11107: 0x000030DB,
+ 11108: 0x000030DC,
+ 11109: 0x000030DD,
+ 11110: 0x000030DE,
+ 11111: 0x000030DF,
+ 11112: 0x000030E0,
+ 11113: 0x000030E1,
+ 11114: 0x000030E2,
+ 11115: 0x000030E3,
+ 11116: 0x000030E4,
+ 11117: 0x000030E5,
+ 11118: 0x000030E6,
+ 11119: 0x000030E7,
+ 11120: 0x000030E8,
+ 11121: 0x000030E9,
+ 11122: 0x000030EA,
+ 11123: 0x000030EB,
+ 11124: 0x000030EC,
+ 11125: 0x000030ED,
+ 11126: 0x000030EE,
+ 11127: 0x000030EF,
+ 11128: 0x000030F0,
+ 11129: 0x000030F1,
+ 11130: 0x000030F2,
+ 11131: 0x000030F3,
+ 11132: 0x000030F4,
+ 11133: 0x000030F5,
+ 11134: 0x000030F6,
+ 11135: 0x00000410,
+ 11136: 0x00000411,
+ 11137: 0x00000412,
+ 11138: 0x00000413,
+ 11139: 0x00000414,
+ 11140: 0x00000415,
+ 11141: 0x00000401,
+ 11142: 0x00000416,
+ 11143: 0x00000417,
+ 11144: 0x00000418,
+ 11145: 0x00000419,
+ 11146: 0x0000041A,
+ 11147: 0x0000041B,
+ 11148: 0x0000041C,
+ 11149: 0x0000041D,
+ 11150: 0x0000041E,
+ 11151: 0x0000041F,
+ 11152: 0x00000420,
+ 11153: 0x00000421,
+ 11154: 0x00000422,
+ 11155: 0x00000423,
+ 11156: 0x00000424,
+ 11157: 0x00000425,
+ 11158: 0x00000426,
+ 11159: 0x00000427,
+ 11160: 0x00000428,
+ 11161: 0x00000429,
+ 11162: 0x0000042A,
+ 11163: 0x0000042B,
+ 11164: 0x0000042C,
+ 11165: 0x0000042D,
+ 11166: 0x0000042E,
+ 11167: 0x0000042F,
+ 11168: 0x00000430,
+ 11169: 0x00000431,
+ 11170: 0x00000432,
+ 11171: 0x00000433,
+ 11172: 0x00000434,
+ 11173: 0x00000435,
+ 11174: 0x00000451,
+ 11175: 0x00000436,
+ 11176: 0x00000437,
+ 11177: 0x00000438,
+ 11178: 0x00000439,
+ 11179: 0x0000043A,
+ 11180: 0x0000043B,
+ 11181: 0x0000043C,
+ 11182: 0x0000043D,
+ 11183: 0x0000043E,
+ 11184: 0x0000043F,
+ 11185: 0x00000440,
+ 11186: 0x00000441,
+ 11187: 0x00000442,
+ 11188: 0x00000443,
+ 11189: 0x00000444,
+ 11190: 0x00000445,
+ 11191: 0x00000446,
+ 11192: 0x00000447,
+ 11193: 0x00000448,
+ 11194: 0x00000449,
+ 11195: 0x0000044A,
+ 11196: 0x0000044B,
+ 11197: 0x0000044C,
+ 11198: 0x0000044D,
+ 11199: 0x0000044E,
+ 11200: 0x0000044F,
+ 11201: 0x000021E7,
+ 11202: 0x000021B8,
+ 11203: 0x000021B9,
+ 11204: 0x000031CF,
+ 11205: 0x000200CC,
+ 11206: 0x00004E5A,
+ 11207: 0x0002008A,
+ 11208: 0x00005202,
+ 11209: 0x00004491,
+ 11210: 0x00009FB0,
+ 11211: 0x00005188,
+ 11212: 0x00009FB1,
+ 11213: 0x00027607,
+ 11254: 0x0000FFE2,
+ 11255: 0x0000FFE4,
+ 11256: 0x0000FF07,
+ 11257: 0x0000FF02,
+ 11258: 0x00003231,
+ 11259: 0x00002116,
+ 11260: 0x00002121,
+ 11261: 0x0000309B,
+ 11262: 0x0000309C,
+ 11263: 0x00002E80,
+ 11264: 0x00002E84,
+ 11265: 0x00002E86,
+ 11266: 0x00002E87,
+ 11267: 0x00002E88,
+ 11268: 0x00002E8A,
+ 11269: 0x00002E8C,
+ 11270: 0x00002E8D,
+ 11271: 0x00002E95,
+ 11272: 0x00002E9C,
+ 11273: 0x00002E9D,
+ 11274: 0x00002EA5,
+ 11275: 0x00002EA7,
+ 11276: 0x00002EAA,
+ 11277: 0x00002EAC,
+ 11278: 0x00002EAE,
+ 11279: 0x00002EB6,
+ 11280: 0x00002EBC,
+ 11281: 0x00002EBE,
+ 11282: 0x00002EC6,
+ 11283: 0x00002ECA,
+ 11284: 0x00002ECC,
+ 11285: 0x00002ECD,
+ 11286: 0x00002ECF,
+ 11287: 0x00002ED6,
+ 11288: 0x00002ED7,
+ 11289: 0x00002EDE,
+ 11290: 0x00002EE3,
+ 11294: 0x00000283,
+ 11295: 0x00000250,
+ 11296: 0x0000025B,
+ 11297: 0x00000254,
+ 11298: 0x00000275,
+ 11299: 0x00000153,
+ 11300: 0x000000F8,
+ 11301: 0x0000014B,
+ 11302: 0x0000028A,
+ 11303: 0x0000026A,
+ 11304: 0x00004E42,
+ 11305: 0x00004E5C,
+ 11306: 0x000051F5,
+ 11307: 0x0000531A,
+ 11308: 0x00005382,
+ 11309: 0x00004E07,
+ 11310: 0x00004E0C,
+ 11311: 0x00004E47,
+ 11312: 0x00004E8D,
+ 11313: 0x000056D7,
+ 11314: 0x0000FA0C,
+ 11315: 0x00005C6E,
+ 11316: 0x00005F73,
+ 11317: 0x00004E0F,
+ 11318: 0x00005187,
+ 11319: 0x00004E0E,
+ 11320: 0x00004E2E,
+ 11321: 0x00004E93,
+ 11322: 0x00004EC2,
+ 11323: 0x00004EC9,
+ 11324: 0x00004EC8,
+ 11325: 0x00005198,
+ 11326: 0x000052FC,
+ 11327: 0x0000536C,
+ 11328: 0x000053B9,
+ 11329: 0x00005720,
+ 11330: 0x00005903,
+ 11331: 0x0000592C,
+ 11332: 0x00005C10,
+ 11333: 0x00005DFF,
+ 11334: 0x000065E1,
+ 11335: 0x00006BB3,
+ 11336: 0x00006BCC,
+ 11337: 0x00006C14,
+ 11338: 0x0000723F,
+ 11339: 0x00004E31,
+ 11340: 0x00004E3C,
+ 11341: 0x00004EE8,
+ 11342: 0x00004EDC,
+ 11343: 0x00004EE9,
+ 11344: 0x00004EE1,
+ 11345: 0x00004EDD,
+ 11346: 0x00004EDA,
+ 11347: 0x0000520C,
+ 11348: 0x0000531C,
+ 11349: 0x0000534C,
+ 11350: 0x00005722,
+ 11351: 0x00005723,
+ 11352: 0x00005917,
+ 11353: 0x0000592F,
+ 11354: 0x00005B81,
+ 11355: 0x00005B84,
+ 11356: 0x00005C12,
+ 11357: 0x00005C3B,
+ 11358: 0x00005C74,
+ 11359: 0x00005C73,
+ 11360: 0x00005E04,
+ 11361: 0x00005E80,
+ 11362: 0x00005E82,
+ 11363: 0x00005FC9,
+ 11364: 0x00006209,
+ 11365: 0x00006250,
+ 11366: 0x00006C15,
+ 11367: 0x00006C36,
+ 11368: 0x00006C43,
+ 11369: 0x00006C3F,
+ 11370: 0x00006C3B,
+ 11371: 0x000072AE,
+ 11372: 0x000072B0,
+ 11373: 0x0000738A,
+ 11374: 0x000079B8,
+ 11375: 0x0000808A,
+ 11376: 0x0000961E,
+ 11377: 0x00004F0E,
+ 11378: 0x00004F18,
+ 11379: 0x00004F2C,
+ 11380: 0x00004EF5,
+ 11381: 0x00004F14,
+ 11382: 0x00004EF1,
+ 11383: 0x00004F00,
+ 11384: 0x00004EF7,
+ 11385: 0x00004F08,
+ 11386: 0x00004F1D,
+ 11387: 0x00004F02,
+ 11388: 0x00004F05,
+ 11389: 0x00004F22,
+ 11390: 0x00004F13,
+ 11391: 0x00004F04,
+ 11392: 0x00004EF4,
+ 11393: 0x00004F12,
+ 11394: 0x000051B1,
+ 11395: 0x00005213,
+ 11396: 0x00005209,
+ 11397: 0x00005210,
+ 11398: 0x000052A6,
+ 11399: 0x00005322,
+ 11400: 0x0000531F,
+ 11401: 0x0000534D,
+ 11402: 0x0000538A,
+ 11403: 0x00005407,
+ 11404: 0x000056E1,
+ 11405: 0x000056DF,
+ 11406: 0x0000572E,
+ 11407: 0x0000572A,
+ 11408: 0x00005734,
+ 11409: 0x0000593C,
+ 11410: 0x00005980,
+ 11411: 0x0000597C,
+ 11412: 0x00005985,
+ 11413: 0x0000597B,
+ 11414: 0x0000597E,
+ 11415: 0x00005977,
+ 11416: 0x0000597F,
+ 11417: 0x00005B56,
+ 11418: 0x00005C15,
+ 11419: 0x00005C25,
+ 11420: 0x00005C7C,
+ 11421: 0x00005C7A,
+ 11422: 0x00005C7B,
+ 11423: 0x00005C7E,
+ 11424: 0x00005DDF,
+ 11425: 0x00005E75,
+ 11426: 0x00005E84,
+ 11427: 0x00005F02,
+ 11428: 0x00005F1A,
+ 11429: 0x00005F74,
+ 11430: 0x00005FD5,
+ 11431: 0x00005FD4,
+ 11432: 0x00005FCF,
+ 11433: 0x0000625C,
+ 11434: 0x0000625E,
+ 11435: 0x00006264,
+ 11436: 0x00006261,
+ 11437: 0x00006266,
+ 11438: 0x00006262,
+ 11439: 0x00006259,
+ 11440: 0x00006260,
+ 11441: 0x0000625A,
+ 11442: 0x00006265,
+ 11443: 0x000065EF,
+ 11444: 0x000065EE,
+ 11445: 0x0000673E,
+ 11446: 0x00006739,
+ 11447: 0x00006738,
+ 11448: 0x0000673B,
+ 11449: 0x0000673A,
+ 11450: 0x0000673F,
+ 11451: 0x0000673C,
+ 11452: 0x00006733,
+ 11453: 0x00006C18,
+ 11454: 0x00006C46,
+ 11455: 0x00006C52,
+ 11456: 0x00006C5C,
+ 11457: 0x00006C4F,
+ 11458: 0x00006C4A,
+ 11459: 0x00006C54,
+ 11460: 0x00006C4B,
+ 11461: 0x00006C4C,
+ 11462: 0x00007071,
+ 11463: 0x0000725E,
+ 11464: 0x000072B4,
+ 11465: 0x000072B5,
+ 11466: 0x0000738E,
+ 11467: 0x0000752A,
+ 11468: 0x0000767F,
+ 11469: 0x00007A75,
+ 11470: 0x00007F51,
+ 11471: 0x00008278,
+ 11472: 0x0000827C,
+ 11473: 0x00008280,
+ 11474: 0x0000827D,
+ 11475: 0x0000827F,
+ 11476: 0x0000864D,
+ 11477: 0x0000897E,
+ 11478: 0x00009099,
+ 11479: 0x00009097,
+ 11480: 0x00009098,
+ 11481: 0x0000909B,
+ 11482: 0x00009094,
+ 11483: 0x00009622,
+ 11484: 0x00009624,
+ 11485: 0x00009620,
+ 11486: 0x00009623,
+ 11487: 0x00004F56,
+ 11488: 0x00004F3B,
+ 11489: 0x00004F62,
+ 11490: 0x00004F49,
+ 11491: 0x00004F53,
+ 11492: 0x00004F64,
+ 11493: 0x00004F3E,
+ 11494: 0x00004F67,
+ 11495: 0x00004F52,
+ 11496: 0x00004F5F,
+ 11497: 0x00004F41,
+ 11498: 0x00004F58,
+ 11499: 0x00004F2D,
+ 11500: 0x00004F33,
+ 11501: 0x00004F3F,
+ 11502: 0x00004F61,
+ 11503: 0x0000518F,
+ 11504: 0x000051B9,
+ 11505: 0x0000521C,
+ 11506: 0x0000521E,
+ 11507: 0x00005221,
+ 11508: 0x000052AD,
+ 11509: 0x000052AE,
+ 11510: 0x00005309,
+ 11511: 0x00005363,
+ 11512: 0x00005372,
+ 11513: 0x0000538E,
+ 11514: 0x0000538F,
+ 11515: 0x00005430,
+ 11516: 0x00005437,
+ 11517: 0x0000542A,
+ 11518: 0x00005454,
+ 11519: 0x00005445,
+ 11520: 0x00005419,
+ 11521: 0x0000541C,
+ 11522: 0x00005425,
+ 11523: 0x00005418,
+ 11524: 0x0000543D,
+ 11525: 0x0000544F,
+ 11526: 0x00005441,
+ 11527: 0x00005428,
+ 11528: 0x00005424,
+ 11529: 0x00005447,
+ 11530: 0x000056EE,
+ 11531: 0x000056E7,
+ 11532: 0x000056E5,
+ 11533: 0x00005741,
+ 11534: 0x00005745,
+ 11535: 0x0000574C,
+ 11536: 0x00005749,
+ 11537: 0x0000574B,
+ 11538: 0x00005752,
+ 11539: 0x00005906,
+ 11540: 0x00005940,
+ 11541: 0x000059A6,
+ 11542: 0x00005998,
+ 11543: 0x000059A0,
+ 11544: 0x00005997,
+ 11545: 0x0000598E,
+ 11546: 0x000059A2,
+ 11547: 0x00005990,
+ 11548: 0x0000598F,
+ 11549: 0x000059A7,
+ 11550: 0x000059A1,
+ 11551: 0x00005B8E,
+ 11552: 0x00005B92,
+ 11553: 0x00005C28,
+ 11554: 0x00005C2A,
+ 11555: 0x00005C8D,
+ 11556: 0x00005C8F,
+ 11557: 0x00005C88,
+ 11558: 0x00005C8B,
+ 11559: 0x00005C89,
+ 11560: 0x00005C92,
+ 11561: 0x00005C8A,
+ 11562: 0x00005C86,
+ 11563: 0x00005C93,
+ 11564: 0x00005C95,
+ 11565: 0x00005DE0,
+ 11566: 0x00005E0A,
+ 11567: 0x00005E0E,
+ 11568: 0x00005E8B,
+ 11569: 0x00005E89,
+ 11570: 0x00005E8C,
+ 11571: 0x00005E88,
+ 11572: 0x00005E8D,
+ 11573: 0x00005F05,
+ 11574: 0x00005F1D,
+ 11575: 0x00005F78,
+ 11576: 0x00005F76,
+ 11577: 0x00005FD2,
+ 11578: 0x00005FD1,
+ 11579: 0x00005FD0,
+ 11580: 0x00005FED,
+ 11581: 0x00005FE8,
+ 11582: 0x00005FEE,
+ 11583: 0x00005FF3,
+ 11584: 0x00005FE1,
+ 11585: 0x00005FE4,
+ 11586: 0x00005FE3,
+ 11587: 0x00005FFA,
+ 11588: 0x00005FEF,
+ 11589: 0x00005FF7,
+ 11590: 0x00005FFB,
+ 11591: 0x00006000,
+ 11592: 0x00005FF4,
+ 11593: 0x0000623A,
+ 11594: 0x00006283,
+ 11595: 0x0000628C,
+ 11596: 0x0000628E,
+ 11597: 0x0000628F,
+ 11598: 0x00006294,
+ 11599: 0x00006287,
+ 11600: 0x00006271,
+ 11601: 0x0000627B,
+ 11602: 0x0000627A,
+ 11603: 0x00006270,
+ 11604: 0x00006281,
+ 11605: 0x00006288,
+ 11606: 0x00006277,
+ 11607: 0x0000627D,
+ 11608: 0x00006272,
+ 11609: 0x00006274,
+ 11610: 0x00006537,
+ 11611: 0x000065F0,
+ 11612: 0x000065F4,
+ 11613: 0x000065F3,
+ 11614: 0x000065F2,
+ 11615: 0x000065F5,
+ 11616: 0x00006745,
+ 11617: 0x00006747,
+ 11618: 0x00006759,
+ 11619: 0x00006755,
+ 11620: 0x0000674C,
+ 11621: 0x00006748,
+ 11622: 0x0000675D,
+ 11623: 0x0000674D,
+ 11624: 0x0000675A,
+ 11625: 0x0000674B,
+ 11626: 0x00006BD0,
+ 11627: 0x00006C19,
+ 11628: 0x00006C1A,
+ 11629: 0x00006C78,
+ 11630: 0x00006C67,
+ 11631: 0x00006C6B,
+ 11632: 0x00006C84,
+ 11633: 0x00006C8B,
+ 11634: 0x00006C8F,
+ 11635: 0x00006C71,
+ 11636: 0x00006C6F,
+ 11637: 0x00006C69,
+ 11638: 0x00006C9A,
+ 11639: 0x00006C6D,
+ 11640: 0x00006C87,
+ 11641: 0x00006C95,
+ 11642: 0x00006C9C,
+ 11643: 0x00006C66,
+ 11644: 0x00006C73,
+ 11645: 0x00006C65,
+ 11646: 0x00006C7B,
+ 11647: 0x00006C8E,
+ 11648: 0x00007074,
+ 11649: 0x0000707A,
+ 11650: 0x00007263,
+ 11651: 0x000072BF,
+ 11652: 0x000072BD,
+ 11653: 0x000072C3,
+ 11654: 0x000072C6,
+ 11655: 0x000072C1,
+ 11656: 0x000072BA,
+ 11657: 0x000072C5,
+ 11658: 0x00007395,
+ 11659: 0x00007397,
+ 11660: 0x00007393,
+ 11661: 0x00007394,
+ 11662: 0x00007392,
+ 11663: 0x0000753A,
+ 11664: 0x00007539,
+ 11665: 0x00007594,
+ 11666: 0x00007595,
+ 11667: 0x00007681,
+ 11668: 0x0000793D,
+ 11669: 0x00008034,
+ 11670: 0x00008095,
+ 11671: 0x00008099,
+ 11672: 0x00008090,
+ 11673: 0x00008092,
+ 11674: 0x0000809C,
+ 11675: 0x00008290,
+ 11676: 0x0000828F,
+ 11677: 0x00008285,
+ 11678: 0x0000828E,
+ 11679: 0x00008291,
+ 11680: 0x00008293,
+ 11681: 0x0000828A,
+ 11682: 0x00008283,
+ 11683: 0x00008284,
+ 11684: 0x00008C78,
+ 11685: 0x00008FC9,
+ 11686: 0x00008FBF,
+ 11687: 0x0000909F,
+ 11688: 0x000090A1,
+ 11689: 0x000090A5,
+ 11690: 0x0000909E,
+ 11691: 0x000090A7,
+ 11692: 0x000090A0,
+ 11693: 0x00009630,
+ 11694: 0x00009628,
+ 11695: 0x0000962F,
+ 11696: 0x0000962D,
+ 11697: 0x00004E33,
+ 11698: 0x00004F98,
+ 11699: 0x00004F7C,
+ 11700: 0x00004F85,
+ 11701: 0x00004F7D,
+ 11702: 0x00004F80,
+ 11703: 0x00004F87,
+ 11704: 0x00004F76,
+ 11705: 0x00004F74,
+ 11706: 0x00004F89,
+ 11707: 0x00004F84,
+ 11708: 0x00004F77,
+ 11709: 0x00004F4C,
+ 11710: 0x00004F97,
+ 11711: 0x00004F6A,
+ 11712: 0x00004F9A,
+ 11713: 0x00004F79,
+ 11714: 0x00004F81,
+ 11715: 0x00004F78,
+ 11716: 0x00004F90,
+ 11717: 0x00004F9C,
+ 11718: 0x00004F94,
+ 11719: 0x00004F9E,
+ 11720: 0x00004F92,
+ 11721: 0x00004F82,
+ 11722: 0x00004F95,
+ 11723: 0x00004F6B,
+ 11724: 0x00004F6E,
+ 11725: 0x0000519E,
+ 11726: 0x000051BC,
+ 11727: 0x000051BE,
+ 11728: 0x00005235,
+ 11729: 0x00005232,
+ 11730: 0x00005233,
+ 11731: 0x00005246,
+ 11732: 0x00005231,
+ 11733: 0x000052BC,
+ 11734: 0x0000530A,
+ 11735: 0x0000530B,
+ 11736: 0x0000533C,
+ 11737: 0x00005392,
+ 11738: 0x00005394,
+ 11739: 0x00005487,
+ 11740: 0x0000547F,
+ 11741: 0x00005481,
+ 11742: 0x00005491,
+ 11743: 0x00005482,
+ 11744: 0x00005488,
+ 11745: 0x0000546B,
+ 11746: 0x0000547A,
+ 11747: 0x0000547E,
+ 11748: 0x00005465,
+ 11749: 0x0000546C,
+ 11750: 0x00005474,
+ 11751: 0x00005466,
+ 11752: 0x0000548D,
+ 11753: 0x0000546F,
+ 11754: 0x00005461,
+ 11755: 0x00005460,
+ 11756: 0x00005498,
+ 11757: 0x00005463,
+ 11758: 0x00005467,
+ 11759: 0x00005464,
+ 11760: 0x000056F7,
+ 11761: 0x000056F9,
+ 11762: 0x0000576F,
+ 11763: 0x00005772,
+ 11764: 0x0000576D,
+ 11765: 0x0000576B,
+ 11766: 0x00005771,
+ 11767: 0x00005770,
+ 11768: 0x00005776,
+ 11769: 0x00005780,
+ 11770: 0x00005775,
+ 11771: 0x0000577B,
+ 11772: 0x00005773,
+ 11773: 0x00005774,
+ 11774: 0x00005762,
+ 11775: 0x00005768,
+ 11776: 0x0000577D,
+ 11777: 0x0000590C,
+ 11778: 0x00005945,
+ 11779: 0x000059B5,
+ 11780: 0x000059BA,
+ 11781: 0x000059CF,
+ 11782: 0x000059CE,
+ 11783: 0x000059B2,
+ 11784: 0x000059CC,
+ 11785: 0x000059C1,
+ 11786: 0x000059B6,
+ 11787: 0x000059BC,
+ 11788: 0x000059C3,
+ 11789: 0x000059D6,
+ 11790: 0x000059B1,
+ 11791: 0x000059BD,
+ 11792: 0x000059C0,
+ 11793: 0x000059C8,
+ 11794: 0x000059B4,
+ 11795: 0x000059C7,
+ 11796: 0x00005B62,
+ 11797: 0x00005B65,
+ 11798: 0x00005B93,
+ 11799: 0x00005B95,
+ 11800: 0x00005C44,
+ 11801: 0x00005C47,
+ 11802: 0x00005CAE,
+ 11803: 0x00005CA4,
+ 11804: 0x00005CA0,
+ 11805: 0x00005CB5,
+ 11806: 0x00005CAF,
+ 11807: 0x00005CA8,
+ 11808: 0x00005CAC,
+ 11809: 0x00005C9F,
+ 11810: 0x00005CA3,
+ 11811: 0x00005CAD,
+ 11812: 0x00005CA2,
+ 11813: 0x00005CAA,
+ 11814: 0x00005CA7,
+ 11815: 0x00005C9D,
+ 11816: 0x00005CA5,
+ 11817: 0x00005CB6,
+ 11818: 0x00005CB0,
+ 11819: 0x00005CA6,
+ 11820: 0x00005E17,
+ 11821: 0x00005E14,
+ 11822: 0x00005E19,
+ 11823: 0x00005F28,
+ 11824: 0x00005F22,
+ 11825: 0x00005F23,
+ 11826: 0x00005F24,
+ 11827: 0x00005F54,
+ 11828: 0x00005F82,
+ 11829: 0x00005F7E,
+ 11830: 0x00005F7D,
+ 11831: 0x00005FDE,
+ 11832: 0x00005FE5,
+ 11833: 0x0000602D,
+ 11834: 0x00006026,
+ 11835: 0x00006019,
+ 11836: 0x00006032,
+ 11837: 0x0000600B,
+ 11838: 0x00006034,
+ 11839: 0x0000600A,
+ 11840: 0x00006017,
+ 11841: 0x00006033,
+ 11842: 0x0000601A,
+ 11843: 0x0000601E,
+ 11844: 0x0000602C,
+ 11845: 0x00006022,
+ 11846: 0x0000600D,
+ 11847: 0x00006010,
+ 11848: 0x0000602E,
+ 11849: 0x00006013,
+ 11850: 0x00006011,
+ 11851: 0x0000600C,
+ 11852: 0x00006009,
+ 11853: 0x0000601C,
+ 11854: 0x00006214,
+ 11855: 0x0000623D,
+ 11856: 0x000062AD,
+ 11857: 0x000062B4,
+ 11858: 0x000062D1,
+ 11859: 0x000062BE,
+ 11860: 0x000062AA,
+ 11861: 0x000062B6,
+ 11862: 0x000062CA,
+ 11863: 0x000062AE,
+ 11864: 0x000062B3,
+ 11865: 0x000062AF,
+ 11866: 0x000062BB,
+ 11867: 0x000062A9,
+ 11868: 0x000062B0,
+ 11869: 0x000062B8,
+ 11870: 0x0000653D,
+ 11871: 0x000065A8,
+ 11872: 0x000065BB,
+ 11873: 0x00006609,
+ 11874: 0x000065FC,
+ 11875: 0x00006604,
+ 11876: 0x00006612,
+ 11877: 0x00006608,
+ 11878: 0x000065FB,
+ 11879: 0x00006603,
+ 11880: 0x0000660B,
+ 11881: 0x0000660D,
+ 11882: 0x00006605,
+ 11883: 0x000065FD,
+ 11884: 0x00006611,
+ 11885: 0x00006610,
+ 11886: 0x000066F6,
+ 11887: 0x0000670A,
+ 11888: 0x00006785,
+ 11889: 0x0000676C,
+ 11890: 0x0000678E,
+ 11891: 0x00006792,
+ 11892: 0x00006776,
+ 11893: 0x0000677B,
+ 11894: 0x00006798,
+ 11895: 0x00006786,
+ 11896: 0x00006784,
+ 11897: 0x00006774,
+ 11898: 0x0000678D,
+ 11899: 0x0000678C,
+ 11900: 0x0000677A,
+ 11901: 0x0000679F,
+ 11902: 0x00006791,
+ 11903: 0x00006799,
+ 11904: 0x00006783,
+ 11905: 0x0000677D,
+ 11906: 0x00006781,
+ 11907: 0x00006778,
+ 11908: 0x00006779,
+ 11909: 0x00006794,
+ 11910: 0x00006B25,
+ 11911: 0x00006B80,
+ 11912: 0x00006B7E,
+ 11913: 0x00006BDE,
+ 11914: 0x00006C1D,
+ 11915: 0x00006C93,
+ 11916: 0x00006CEC,
+ 11917: 0x00006CEB,
+ 11918: 0x00006CEE,
+ 11919: 0x00006CD9,
+ 11920: 0x00006CB6,
+ 11921: 0x00006CD4,
+ 11922: 0x00006CAD,
+ 11923: 0x00006CE7,
+ 11924: 0x00006CB7,
+ 11925: 0x00006CD0,
+ 11926: 0x00006CC2,
+ 11927: 0x00006CBA,
+ 11928: 0x00006CC3,
+ 11929: 0x00006CC6,
+ 11930: 0x00006CED,
+ 11931: 0x00006CF2,
+ 11932: 0x00006CD2,
+ 11933: 0x00006CDD,
+ 11934: 0x00006CB4,
+ 11935: 0x00006C8A,
+ 11936: 0x00006C9D,
+ 11937: 0x00006C80,
+ 11938: 0x00006CDE,
+ 11939: 0x00006CC0,
+ 11940: 0x00006D30,
+ 11941: 0x00006CCD,
+ 11942: 0x00006CC7,
+ 11943: 0x00006CB0,
+ 11944: 0x00006CF9,
+ 11945: 0x00006CCF,
+ 11946: 0x00006CE9,
+ 11947: 0x00006CD1,
+ 11948: 0x00007094,
+ 11949: 0x00007098,
+ 11950: 0x00007085,
+ 11951: 0x00007093,
+ 11952: 0x00007086,
+ 11953: 0x00007084,
+ 11954: 0x00007091,
+ 11955: 0x00007096,
+ 11956: 0x00007082,
+ 11957: 0x0000709A,
+ 11958: 0x00007083,
+ 11959: 0x0000726A,
+ 11960: 0x000072D6,
+ 11961: 0x000072CB,
+ 11962: 0x000072D8,
+ 11963: 0x000072C9,
+ 11964: 0x000072DC,
+ 11965: 0x000072D2,
+ 11966: 0x000072D4,
+ 11967: 0x000072DA,
+ 11968: 0x000072CC,
+ 11969: 0x000072D1,
+ 11970: 0x000073A4,
+ 11971: 0x000073A1,
+ 11972: 0x000073AD,
+ 11973: 0x000073A6,
+ 11974: 0x000073A2,
+ 11975: 0x000073A0,
+ 11976: 0x000073AC,
+ 11977: 0x0000739D,
+ 11978: 0x000074DD,
+ 11979: 0x000074E8,
+ 11980: 0x0000753F,
+ 11981: 0x00007540,
+ 11982: 0x0000753E,
+ 11983: 0x0000758C,
+ 11984: 0x00007598,
+ 11985: 0x000076AF,
+ 11986: 0x000076F3,
+ 11987: 0x000076F1,
+ 11988: 0x000076F0,
+ 11989: 0x000076F5,
+ 11990: 0x000077F8,
+ 11991: 0x000077FC,
+ 11992: 0x000077F9,
+ 11993: 0x000077FB,
+ 11994: 0x000077FA,
+ 11995: 0x000077F7,
+ 11996: 0x00007942,
+ 11997: 0x0000793F,
+ 11998: 0x000079C5,
+ 11999: 0x00007A78,
+ 12000: 0x00007A7B,
+ 12001: 0x00007AFB,
+ 12002: 0x00007C75,
+ 12003: 0x00007CFD,
+ 12004: 0x00008035,
+ 12005: 0x0000808F,
+ 12006: 0x000080AE,
+ 12007: 0x000080A3,
+ 12008: 0x000080B8,
+ 12009: 0x000080B5,
+ 12010: 0x000080AD,
+ 12011: 0x00008220,
+ 12012: 0x000082A0,
+ 12013: 0x000082C0,
+ 12014: 0x000082AB,
+ 12015: 0x0000829A,
+ 12016: 0x00008298,
+ 12017: 0x0000829B,
+ 12018: 0x000082B5,
+ 12019: 0x000082A7,
+ 12020: 0x000082AE,
+ 12021: 0x000082BC,
+ 12022: 0x0000829E,
+ 12023: 0x000082BA,
+ 12024: 0x000082B4,
+ 12025: 0x000082A8,
+ 12026: 0x000082A1,
+ 12027: 0x000082A9,
+ 12028: 0x000082C2,
+ 12029: 0x000082A4,
+ 12030: 0x000082C3,
+ 12031: 0x000082B6,
+ 12032: 0x000082A2,
+ 12033: 0x00008670,
+ 12034: 0x0000866F,
+ 12035: 0x0000866D,
+ 12036: 0x0000866E,
+ 12037: 0x00008C56,
+ 12038: 0x00008FD2,
+ 12039: 0x00008FCB,
+ 12040: 0x00008FD3,
+ 12041: 0x00008FCD,
+ 12042: 0x00008FD6,
+ 12043: 0x00008FD5,
+ 12044: 0x00008FD7,
+ 12045: 0x000090B2,
+ 12046: 0x000090B4,
+ 12047: 0x000090AF,
+ 12048: 0x000090B3,
+ 12049: 0x000090B0,
+ 12050: 0x00009639,
+ 12051: 0x0000963D,
+ 12052: 0x0000963C,
+ 12053: 0x0000963A,
+ 12054: 0x00009643,
+ 12055: 0x00004FCD,
+ 12056: 0x00004FC5,
+ 12057: 0x00004FD3,
+ 12058: 0x00004FB2,
+ 12059: 0x00004FC9,
+ 12060: 0x00004FCB,
+ 12061: 0x00004FC1,
+ 12062: 0x00004FD4,
+ 12063: 0x00004FDC,
+ 12064: 0x00004FD9,
+ 12065: 0x00004FBB,
+ 12066: 0x00004FB3,
+ 12067: 0x00004FDB,
+ 12068: 0x00004FC7,
+ 12069: 0x00004FD6,
+ 12070: 0x00004FBA,
+ 12071: 0x00004FC0,
+ 12072: 0x00004FB9,
+ 12073: 0x00004FEC,
+ 12074: 0x00005244,
+ 12075: 0x00005249,
+ 12076: 0x000052C0,
+ 12077: 0x000052C2,
+ 12078: 0x0000533D,
+ 12079: 0x0000537C,
+ 12080: 0x00005397,
+ 12081: 0x00005396,
+ 12082: 0x00005399,
+ 12083: 0x00005398,
+ 12084: 0x000054BA,
+ 12085: 0x000054A1,
+ 12086: 0x000054AD,
+ 12087: 0x000054A5,
+ 12088: 0x000054CF,
+ 12089: 0x000054C3,
+ 12090: 0x0000830D,
+ 12091: 0x000054B7,
+ 12092: 0x000054AE,
+ 12093: 0x000054D6,
+ 12094: 0x000054B6,
+ 12095: 0x000054C5,
+ 12096: 0x000054C6,
+ 12097: 0x000054A0,
+ 12098: 0x00005470,
+ 12099: 0x000054BC,
+ 12100: 0x000054A2,
+ 12101: 0x000054BE,
+ 12102: 0x00005472,
+ 12103: 0x000054DE,
+ 12104: 0x000054B0,
+ 12105: 0x000057B5,
+ 12106: 0x0000579E,
+ 12107: 0x0000579F,
+ 12108: 0x000057A4,
+ 12109: 0x0000578C,
+ 12110: 0x00005797,
+ 12111: 0x0000579D,
+ 12112: 0x0000579B,
+ 12113: 0x00005794,
+ 12114: 0x00005798,
+ 12115: 0x0000578F,
+ 12116: 0x00005799,
+ 12117: 0x000057A5,
+ 12118: 0x0000579A,
+ 12119: 0x00005795,
+ 12120: 0x000058F4,
+ 12121: 0x0000590D,
+ 12122: 0x00005953,
+ 12123: 0x000059E1,
+ 12124: 0x000059DE,
+ 12125: 0x000059EE,
+ 12126: 0x00005A00,
+ 12127: 0x000059F1,
+ 12128: 0x000059DD,
+ 12129: 0x000059FA,
+ 12130: 0x000059FD,
+ 12131: 0x000059FC,
+ 12132: 0x000059F6,
+ 12133: 0x000059E4,
+ 12134: 0x000059F2,
+ 12135: 0x000059F7,
+ 12136: 0x000059DB,
+ 12137: 0x000059E9,
+ 12138: 0x000059F3,
+ 12139: 0x000059F5,
+ 12140: 0x000059E0,
+ 12141: 0x000059FE,
+ 12142: 0x000059F4,
+ 12143: 0x000059ED,
+ 12144: 0x00005BA8,
+ 12145: 0x00005C4C,
+ 12146: 0x00005CD0,
+ 12147: 0x00005CD8,
+ 12148: 0x00005CCC,
+ 12149: 0x00005CD7,
+ 12150: 0x00005CCB,
+ 12151: 0x00005CDB,
+ 12152: 0x00005CDE,
+ 12153: 0x00005CDA,
+ 12154: 0x00005CC9,
+ 12155: 0x00005CC7,
+ 12156: 0x00005CCA,
+ 12157: 0x00005CD6,
+ 12158: 0x00005CD3,
+ 12159: 0x00005CD4,
+ 12160: 0x00005CCF,
+ 12161: 0x00005CC8,
+ 12162: 0x00005CC6,
+ 12163: 0x00005CCE,
+ 12164: 0x00005CDF,
+ 12165: 0x00005CF8,
+ 12166: 0x00005DF9,
+ 12167: 0x00005E21,
+ 12168: 0x00005E22,
+ 12169: 0x00005E23,
+ 12170: 0x00005E20,
+ 12171: 0x00005E24,
+ 12172: 0x00005EB0,
+ 12173: 0x00005EA4,
+ 12174: 0x00005EA2,
+ 12175: 0x00005E9B,
+ 12176: 0x00005EA3,
+ 12177: 0x00005EA5,
+ 12178: 0x00005F07,
+ 12179: 0x00005F2E,
+ 12180: 0x00005F56,
+ 12181: 0x00005F86,
+ 12182: 0x00006037,
+ 12183: 0x00006039,
+ 12184: 0x00006054,
+ 12185: 0x00006072,
+ 12186: 0x0000605E,
+ 12187: 0x00006045,
+ 12188: 0x00006053,
+ 12189: 0x00006047,
+ 12190: 0x00006049,
+ 12191: 0x0000605B,
+ 12192: 0x0000604C,
+ 12193: 0x00006040,
+ 12194: 0x00006042,
+ 12195: 0x0000605F,
+ 12196: 0x00006024,
+ 12197: 0x00006044,
+ 12198: 0x00006058,
+ 12199: 0x00006066,
+ 12200: 0x0000606E,
+ 12201: 0x00006242,
+ 12202: 0x00006243,
+ 12203: 0x000062CF,
+ 12204: 0x0000630D,
+ 12205: 0x0000630B,
+ 12206: 0x000062F5,
+ 12207: 0x0000630E,
+ 12208: 0x00006303,
+ 12209: 0x000062EB,
+ 12210: 0x000062F9,
+ 12211: 0x0000630F,
+ 12212: 0x0000630C,
+ 12213: 0x000062F8,
+ 12214: 0x000062F6,
+ 12215: 0x00006300,
+ 12216: 0x00006313,
+ 12217: 0x00006314,
+ 12218: 0x000062FA,
+ 12219: 0x00006315,
+ 12220: 0x000062FB,
+ 12221: 0x000062F0,
+ 12222: 0x00006541,
+ 12223: 0x00006543,
+ 12224: 0x000065AA,
+ 12225: 0x000065BF,
+ 12226: 0x00006636,
+ 12227: 0x00006621,
+ 12228: 0x00006632,
+ 12229: 0x00006635,
+ 12230: 0x0000661C,
+ 12231: 0x00006626,
+ 12232: 0x00006622,
+ 12233: 0x00006633,
+ 12234: 0x0000662B,
+ 12235: 0x0000663A,
+ 12236: 0x0000661D,
+ 12237: 0x00006634,
+ 12238: 0x00006639,
+ 12239: 0x0000662E,
+ 12240: 0x0000670F,
+ 12241: 0x00006710,
+ 12242: 0x000067C1,
+ 12243: 0x000067F2,
+ 12244: 0x000067C8,
+ 12245: 0x000067BA,
+ 12246: 0x000067DC,
+ 12247: 0x000067BB,
+ 12248: 0x000067F8,
+ 12249: 0x000067D8,
+ 12250: 0x000067C0,
+ 12251: 0x000067B7,
+ 12252: 0x000067C5,
+ 12253: 0x000067EB,
+ 12254: 0x000067E4,
+ 12255: 0x000067DF,
+ 12256: 0x000067B5,
+ 12257: 0x000067CD,
+ 12258: 0x000067B3,
+ 12259: 0x000067F7,
+ 12260: 0x000067F6,
+ 12261: 0x000067EE,
+ 12262: 0x000067E3,
+ 12263: 0x000067C2,
+ 12264: 0x000067B9,
+ 12265: 0x000067CE,
+ 12266: 0x000067E7,
+ 12267: 0x000067F0,
+ 12268: 0x000067B2,
+ 12269: 0x000067FC,
+ 12270: 0x000067C6,
+ 12271: 0x000067ED,
+ 12272: 0x000067CC,
+ 12273: 0x000067AE,
+ 12274: 0x000067E6,
+ 12275: 0x000067DB,
+ 12276: 0x000067FA,
+ 12277: 0x000067C9,
+ 12278: 0x000067CA,
+ 12279: 0x000067C3,
+ 12280: 0x000067EA,
+ 12281: 0x000067CB,
+ 12282: 0x00006B28,
+ 12283: 0x00006B82,
+ 12284: 0x00006B84,
+ 12285: 0x00006BB6,
+ 12286: 0x00006BD6,
+ 12287: 0x00006BD8,
+ 12288: 0x00006BE0,
+ 12289: 0x00006C20,
+ 12290: 0x00006C21,
+ 12291: 0x00006D28,
+ 12292: 0x00006D34,
+ 12293: 0x00006D2D,
+ 12294: 0x00006D1F,
+ 12295: 0x00006D3C,
+ 12296: 0x00006D3F,
+ 12297: 0x00006D12,
+ 12298: 0x00006D0A,
+ 12299: 0x00006CDA,
+ 12300: 0x00006D33,
+ 12301: 0x00006D04,
+ 12302: 0x00006D19,
+ 12303: 0x00006D3A,
+ 12304: 0x00006D1A,
+ 12305: 0x00006D11,
+ 12306: 0x00006D00,
+ 12307: 0x00006D1D,
+ 12308: 0x00006D42,
+ 12309: 0x00006D01,
+ 12310: 0x00006D18,
+ 12311: 0x00006D37,
+ 12312: 0x00006D03,
+ 12313: 0x00006D0F,
+ 12314: 0x00006D40,
+ 12315: 0x00006D07,
+ 12316: 0x00006D20,
+ 12317: 0x00006D2C,
+ 12318: 0x00006D08,
+ 12319: 0x00006D22,
+ 12320: 0x00006D09,
+ 12321: 0x00006D10,
+ 12322: 0x000070B7,
+ 12323: 0x0000709F,
+ 12324: 0x000070BE,
+ 12325: 0x000070B1,
+ 12326: 0x000070B0,
+ 12327: 0x000070A1,
+ 12328: 0x000070B4,
+ 12329: 0x000070B5,
+ 12330: 0x000070A9,
+ 12331: 0x00007241,
+ 12332: 0x00007249,
+ 12333: 0x0000724A,
+ 12334: 0x0000726C,
+ 12335: 0x00007270,
+ 12336: 0x00007273,
+ 12337: 0x0000726E,
+ 12338: 0x000072CA,
+ 12339: 0x000072E4,
+ 12340: 0x000072E8,
+ 12341: 0x000072EB,
+ 12342: 0x000072DF,
+ 12343: 0x000072EA,
+ 12344: 0x000072E6,
+ 12345: 0x000072E3,
+ 12346: 0x00007385,
+ 12347: 0x000073CC,
+ 12348: 0x000073C2,
+ 12349: 0x000073C8,
+ 12350: 0x000073C5,
+ 12351: 0x000073B9,
+ 12352: 0x000073B6,
+ 12353: 0x000073B5,
+ 12354: 0x000073B4,
+ 12355: 0x000073EB,
+ 12356: 0x000073BF,
+ 12357: 0x000073C7,
+ 12358: 0x000073BE,
+ 12359: 0x000073C3,
+ 12360: 0x000073C6,
+ 12361: 0x000073B8,
+ 12362: 0x000073CB,
+ 12363: 0x000074EC,
+ 12364: 0x000074EE,
+ 12365: 0x0000752E,
+ 12366: 0x00007547,
+ 12367: 0x00007548,
+ 12368: 0x000075A7,
+ 12369: 0x000075AA,
+ 12370: 0x00007679,
+ 12371: 0x000076C4,
+ 12372: 0x00007708,
+ 12373: 0x00007703,
+ 12374: 0x00007704,
+ 12375: 0x00007705,
+ 12376: 0x0000770A,
+ 12377: 0x000076F7,
+ 12378: 0x000076FB,
+ 12379: 0x000076FA,
+ 12380: 0x000077E7,
+ 12381: 0x000077E8,
+ 12382: 0x00007806,
+ 12383: 0x00007811,
+ 12384: 0x00007812,
+ 12385: 0x00007805,
+ 12386: 0x00007810,
+ 12387: 0x0000780F,
+ 12388: 0x0000780E,
+ 12389: 0x00007809,
+ 12390: 0x00007803,
+ 12391: 0x00007813,
+ 12392: 0x0000794A,
+ 12393: 0x0000794C,
+ 12394: 0x0000794B,
+ 12395: 0x00007945,
+ 12396: 0x00007944,
+ 12397: 0x000079D5,
+ 12398: 0x000079CD,
+ 12399: 0x000079CF,
+ 12400: 0x000079D6,
+ 12401: 0x000079CE,
+ 12402: 0x00007A80,
+ 12403: 0x00007A7E,
+ 12404: 0x00007AD1,
+ 12405: 0x00007B00,
+ 12406: 0x00007B01,
+ 12407: 0x00007C7A,
+ 12408: 0x00007C78,
+ 12409: 0x00007C79,
+ 12410: 0x00007C7F,
+ 12411: 0x00007C80,
+ 12412: 0x00007C81,
+ 12413: 0x00007D03,
+ 12414: 0x00007D08,
+ 12415: 0x00007D01,
+ 12416: 0x00007F58,
+ 12417: 0x00007F91,
+ 12418: 0x00007F8D,
+ 12419: 0x00007FBE,
+ 12420: 0x00008007,
+ 12421: 0x0000800E,
+ 12422: 0x0000800F,
+ 12423: 0x00008014,
+ 12424: 0x00008037,
+ 12425: 0x000080D8,
+ 12426: 0x000080C7,
+ 12427: 0x000080E0,
+ 12428: 0x000080D1,
+ 12429: 0x000080C8,
+ 12430: 0x000080C2,
+ 12431: 0x000080D0,
+ 12432: 0x000080C5,
+ 12433: 0x000080E3,
+ 12434: 0x000080D9,
+ 12435: 0x000080DC,
+ 12436: 0x000080CA,
+ 12437: 0x000080D5,
+ 12438: 0x000080C9,
+ 12439: 0x000080CF,
+ 12440: 0x000080D7,
+ 12441: 0x000080E6,
+ 12442: 0x000080CD,
+ 12443: 0x000081FF,
+ 12444: 0x00008221,
+ 12445: 0x00008294,
+ 12446: 0x000082D9,
+ 12447: 0x000082FE,
+ 12448: 0x000082F9,
+ 12449: 0x00008307,
+ 12450: 0x000082E8,
+ 12451: 0x00008300,
+ 12452: 0x000082D5,
+ 12453: 0x0000833A,
+ 12454: 0x000082EB,
+ 12455: 0x000082D6,
+ 12456: 0x000082F4,
+ 12457: 0x000082EC,
+ 12458: 0x000082E1,
+ 12459: 0x000082F2,
+ 12460: 0x000082F5,
+ 12461: 0x0000830C,
+ 12462: 0x000082FB,
+ 12463: 0x000082F6,
+ 12464: 0x000082F0,
+ 12465: 0x000082EA,
+ 12466: 0x000082E4,
+ 12467: 0x000082E0,
+ 12468: 0x000082FA,
+ 12469: 0x000082F3,
+ 12470: 0x000082ED,
+ 12471: 0x00008677,
+ 12472: 0x00008674,
+ 12473: 0x0000867C,
+ 12474: 0x00008673,
+ 12475: 0x00008841,
+ 12476: 0x0000884E,
+ 12477: 0x00008867,
+ 12478: 0x0000886A,
+ 12479: 0x00008869,
+ 12480: 0x000089D3,
+ 12481: 0x00008A04,
+ 12482: 0x00008A07,
+ 12483: 0x00008D72,
+ 12484: 0x00008FE3,
+ 12485: 0x00008FE1,
+ 12486: 0x00008FEE,
+ 12487: 0x00008FE0,
+ 12488: 0x000090F1,
+ 12489: 0x000090BD,
+ 12490: 0x000090BF,
+ 12491: 0x000090D5,
+ 12492: 0x000090C5,
+ 12493: 0x000090BE,
+ 12494: 0x000090C7,
+ 12495: 0x000090CB,
+ 12496: 0x000090C8,
+ 12497: 0x000091D4,
+ 12498: 0x000091D3,
+ 12499: 0x00009654,
+ 12500: 0x0000964F,
+ 12501: 0x00009651,
+ 12502: 0x00009653,
+ 12503: 0x0000964A,
+ 12504: 0x0000964E,
+ 12505: 0x0000501E,
+ 12506: 0x00005005,
+ 12507: 0x00005007,
+ 12508: 0x00005013,
+ 12509: 0x00005022,
+ 12510: 0x00005030,
+ 12511: 0x0000501B,
+ 12512: 0x00004FF5,
+ 12513: 0x00004FF4,
+ 12514: 0x00005033,
+ 12515: 0x00005037,
+ 12516: 0x0000502C,
+ 12517: 0x00004FF6,
+ 12518: 0x00004FF7,
+ 12519: 0x00005017,
+ 12520: 0x0000501C,
+ 12521: 0x00005020,
+ 12522: 0x00005027,
+ 12523: 0x00005035,
+ 12524: 0x0000502F,
+ 12525: 0x00005031,
+ 12526: 0x0000500E,
+ 12527: 0x0000515A,
+ 12528: 0x00005194,
+ 12529: 0x00005193,
+ 12530: 0x000051CA,
+ 12531: 0x000051C4,
+ 12532: 0x000051C5,
+ 12533: 0x000051C8,
+ 12534: 0x000051CE,
+ 12535: 0x00005261,
+ 12536: 0x0000525A,
+ 12537: 0x00005252,
+ 12538: 0x0000525E,
+ 12539: 0x0000525F,
+ 12540: 0x00005255,
+ 12541: 0x00005262,
+ 12542: 0x000052CD,
+ 12543: 0x0000530E,
+ 12544: 0x0000539E,
+ 12545: 0x00005526,
+ 12546: 0x000054E2,
+ 12547: 0x00005517,
+ 12548: 0x00005512,
+ 12549: 0x000054E7,
+ 12550: 0x000054F3,
+ 12551: 0x000054E4,
+ 12552: 0x0000551A,
+ 12553: 0x000054FF,
+ 12554: 0x00005504,
+ 12555: 0x00005508,
+ 12556: 0x000054EB,
+ 12557: 0x00005511,
+ 12558: 0x00005505,
+ 12559: 0x000054F1,
+ 12560: 0x0000550A,
+ 12561: 0x000054FB,
+ 12562: 0x000054F7,
+ 12563: 0x000054F8,
+ 12564: 0x000054E0,
+ 12565: 0x0000550E,
+ 12566: 0x00005503,
+ 12567: 0x0000550B,
+ 12568: 0x00005701,
+ 12569: 0x00005702,
+ 12570: 0x000057CC,
+ 12571: 0x00005832,
+ 12572: 0x000057D5,
+ 12573: 0x000057D2,
+ 12574: 0x000057BA,
+ 12575: 0x000057C6,
+ 12576: 0x000057BD,
+ 12577: 0x000057BC,
+ 12578: 0x000057B8,
+ 12579: 0x000057B6,
+ 12580: 0x000057BF,
+ 12581: 0x000057C7,
+ 12582: 0x000057D0,
+ 12583: 0x000057B9,
+ 12584: 0x000057C1,
+ 12585: 0x0000590E,
+ 12586: 0x0000594A,
+ 12587: 0x00005A19,
+ 12588: 0x00005A16,
+ 12589: 0x00005A2D,
+ 12590: 0x00005A2E,
+ 12591: 0x00005A15,
+ 12592: 0x00005A0F,
+ 12593: 0x00005A17,
+ 12594: 0x00005A0A,
+ 12595: 0x00005A1E,
+ 12596: 0x00005A33,
+ 12597: 0x00005B6C,
+ 12598: 0x00005BA7,
+ 12599: 0x00005BAD,
+ 12600: 0x00005BAC,
+ 12601: 0x00005C03,
+ 12602: 0x00005C56,
+ 12603: 0x00005C54,
+ 12604: 0x00005CEC,
+ 12605: 0x00005CFF,
+ 12606: 0x00005CEE,
+ 12607: 0x00005CF1,
+ 12608: 0x00005CF7,
+ 12609: 0x00005D00,
+ 12610: 0x00005CF9,
+ 12611: 0x00005E29,
+ 12612: 0x00005E28,
+ 12613: 0x00005EA8,
+ 12614: 0x00005EAE,
+ 12615: 0x00005EAA,
+ 12616: 0x00005EAC,
+ 12617: 0x00005F33,
+ 12618: 0x00005F30,
+ 12619: 0x00005F67,
+ 12620: 0x0000605D,
+ 12621: 0x0000605A,
+ 12622: 0x00006067,
+ 12623: 0x00006041,
+ 12624: 0x000060A2,
+ 12625: 0x00006088,
+ 12626: 0x00006080,
+ 12627: 0x00006092,
+ 12628: 0x00006081,
+ 12629: 0x0000609D,
+ 12630: 0x00006083,
+ 12631: 0x00006095,
+ 12632: 0x0000609B,
+ 12633: 0x00006097,
+ 12634: 0x00006087,
+ 12635: 0x0000609C,
+ 12636: 0x0000608E,
+ 12637: 0x00006219,
+ 12638: 0x00006246,
+ 12639: 0x000062F2,
+ 12640: 0x00006310,
+ 12641: 0x00006356,
+ 12642: 0x0000632C,
+ 12643: 0x00006344,
+ 12644: 0x00006345,
+ 12645: 0x00006336,
+ 12646: 0x00006343,
+ 12647: 0x000063E4,
+ 12648: 0x00006339,
+ 12649: 0x0000634B,
+ 12650: 0x0000634A,
+ 12651: 0x0000633C,
+ 12652: 0x00006329,
+ 12653: 0x00006341,
+ 12654: 0x00006334,
+ 12655: 0x00006358,
+ 12656: 0x00006354,
+ 12657: 0x00006359,
+ 12658: 0x0000632D,
+ 12659: 0x00006347,
+ 12660: 0x00006333,
+ 12661: 0x0000635A,
+ 12662: 0x00006351,
+ 12663: 0x00006338,
+ 12664: 0x00006357,
+ 12665: 0x00006340,
+ 12666: 0x00006348,
+ 12667: 0x0000654A,
+ 12668: 0x00006546,
+ 12669: 0x000065C6,
+ 12670: 0x000065C3,
+ 12671: 0x000065C4,
+ 12672: 0x000065C2,
+ 12673: 0x0000664A,
+ 12674: 0x0000665F,
+ 12675: 0x00006647,
+ 12676: 0x00006651,
+ 12677: 0x00006712,
+ 12678: 0x00006713,
+ 12679: 0x0000681F,
+ 12680: 0x0000681A,
+ 12681: 0x00006849,
+ 12682: 0x00006832,
+ 12683: 0x00006833,
+ 12684: 0x0000683B,
+ 12685: 0x0000684B,
+ 12686: 0x0000684F,
+ 12687: 0x00006816,
+ 12688: 0x00006831,
+ 12689: 0x0000681C,
+ 12690: 0x00006835,
+ 12691: 0x0000682B,
+ 12692: 0x0000682D,
+ 12693: 0x0000682F,
+ 12694: 0x0000684E,
+ 12695: 0x00006844,
+ 12696: 0x00006834,
+ 12697: 0x0000681D,
+ 12698: 0x00006812,
+ 12699: 0x00006814,
+ 12700: 0x00006826,
+ 12701: 0x00006828,
+ 12702: 0x0000682E,
+ 12703: 0x0000684D,
+ 12704: 0x0000683A,
+ 12705: 0x00006825,
+ 12706: 0x00006820,
+ 12707: 0x00006B2C,
+ 12708: 0x00006B2F,
+ 12709: 0x00006B2D,
+ 12710: 0x00006B31,
+ 12711: 0x00006B34,
+ 12712: 0x00006B6D,
+ 12713: 0x00008082,
+ 12714: 0x00006B88,
+ 12715: 0x00006BE6,
+ 12716: 0x00006BE4,
+ 12717: 0x00006BE8,
+ 12718: 0x00006BE3,
+ 12719: 0x00006BE2,
+ 12720: 0x00006BE7,
+ 12721: 0x00006C25,
+ 12722: 0x00006D7A,
+ 12723: 0x00006D63,
+ 12724: 0x00006D64,
+ 12725: 0x00006D76,
+ 12726: 0x00006D0D,
+ 12727: 0x00006D61,
+ 12728: 0x00006D92,
+ 12729: 0x00006D58,
+ 12730: 0x00006D62,
+ 12731: 0x00006D6D,
+ 12732: 0x00006D6F,
+ 12733: 0x00006D91,
+ 12734: 0x00006D8D,
+ 12735: 0x00006DEF,
+ 12736: 0x00006D7F,
+ 12737: 0x00006D86,
+ 12738: 0x00006D5E,
+ 12739: 0x00006D67,
+ 12740: 0x00006D60,
+ 12741: 0x00006D97,
+ 12742: 0x00006D70,
+ 12743: 0x00006D7C,
+ 12744: 0x00006D5F,
+ 12745: 0x00006D82,
+ 12746: 0x00006D98,
+ 12747: 0x00006D2F,
+ 12748: 0x00006D68,
+ 12749: 0x00006D8B,
+ 12750: 0x00006D7E,
+ 12751: 0x00006D80,
+ 12752: 0x00006D84,
+ 12753: 0x00006D16,
+ 12754: 0x00006D83,
+ 12755: 0x00006D7B,
+ 12756: 0x00006D7D,
+ 12757: 0x00006D75,
+ 12758: 0x00006D90,
+ 12759: 0x000070DC,
+ 12760: 0x000070D3,
+ 12761: 0x000070D1,
+ 12762: 0x000070DD,
+ 12763: 0x000070CB,
+ 12764: 0x00007F39,
+ 12765: 0x000070E2,
+ 12766: 0x000070D7,
+ 12767: 0x000070D2,
+ 12768: 0x000070DE,
+ 12769: 0x000070E0,
+ 12770: 0x000070D4,
+ 12771: 0x000070CD,
+ 12772: 0x000070C5,
+ 12773: 0x000070C6,
+ 12774: 0x000070C7,
+ 12775: 0x000070DA,
+ 12776: 0x000070CE,
+ 12777: 0x000070E1,
+ 12778: 0x00007242,
+ 12779: 0x00007278,
+ 12780: 0x00007277,
+ 12781: 0x00007276,
+ 12782: 0x00007300,
+ 12783: 0x000072FA,
+ 12784: 0x000072F4,
+ 12785: 0x000072FE,
+ 12786: 0x000072F6,
+ 12787: 0x000072F3,
+ 12788: 0x000072FB,
+ 12789: 0x00007301,
+ 12790: 0x000073D3,
+ 12791: 0x000073D9,
+ 12792: 0x000073E5,
+ 12793: 0x000073D6,
+ 12794: 0x000073BC,
+ 12795: 0x000073E7,
+ 12796: 0x000073E3,
+ 12797: 0x000073E9,
+ 12798: 0x000073DC,
+ 12799: 0x000073D2,
+ 12800: 0x000073DB,
+ 12801: 0x000073D4,
+ 12802: 0x000073DD,
+ 12803: 0x000073DA,
+ 12804: 0x000073D7,
+ 12805: 0x000073D8,
+ 12806: 0x000073E8,
+ 12807: 0x000074DE,
+ 12808: 0x000074DF,
+ 12809: 0x000074F4,
+ 12810: 0x000074F5,
+ 12811: 0x00007521,
+ 12812: 0x0000755B,
+ 12813: 0x0000755F,
+ 12814: 0x000075B0,
+ 12815: 0x000075C1,
+ 12816: 0x000075BB,
+ 12817: 0x000075C4,
+ 12818: 0x000075C0,
+ 12819: 0x000075BF,
+ 12820: 0x000075B6,
+ 12821: 0x000075BA,
+ 12822: 0x0000768A,
+ 12823: 0x000076C9,
+ 12824: 0x0000771D,
+ 12825: 0x0000771B,
+ 12826: 0x00007710,
+ 12827: 0x00007713,
+ 12828: 0x00007712,
+ 12829: 0x00007723,
+ 12830: 0x00007711,
+ 12831: 0x00007715,
+ 12832: 0x00007719,
+ 12833: 0x0000771A,
+ 12834: 0x00007722,
+ 12835: 0x00007727,
+ 12836: 0x00007823,
+ 12837: 0x0000782C,
+ 12838: 0x00007822,
+ 12839: 0x00007835,
+ 12840: 0x0000782F,
+ 12841: 0x00007828,
+ 12842: 0x0000782E,
+ 12843: 0x0000782B,
+ 12844: 0x00007821,
+ 12845: 0x00007829,
+ 12846: 0x00007833,
+ 12847: 0x0000782A,
+ 12848: 0x00007831,
+ 12849: 0x00007954,
+ 12850: 0x0000795B,
+ 12851: 0x0000794F,
+ 12852: 0x0000795C,
+ 12853: 0x00007953,
+ 12854: 0x00007952,
+ 12855: 0x00007951,
+ 12856: 0x000079EB,
+ 12857: 0x000079EC,
+ 12858: 0x000079E0,
+ 12859: 0x000079EE,
+ 12860: 0x000079ED,
+ 12861: 0x000079EA,
+ 12862: 0x000079DC,
+ 12863: 0x000079DE,
+ 12864: 0x000079DD,
+ 12865: 0x00007A86,
+ 12866: 0x00007A89,
+ 12867: 0x00007A85,
+ 12868: 0x00007A8B,
+ 12869: 0x00007A8C,
+ 12870: 0x00007A8A,
+ 12871: 0x00007A87,
+ 12872: 0x00007AD8,
+ 12873: 0x00007B10,
+ 12874: 0x00007B04,
+ 12875: 0x00007B13,
+ 12876: 0x00007B05,
+ 12877: 0x00007B0F,
+ 12878: 0x00007B08,
+ 12879: 0x00007B0A,
+ 12880: 0x00007B0E,
+ 12881: 0x00007B09,
+ 12882: 0x00007B12,
+ 12883: 0x00007C84,
+ 12884: 0x00007C91,
+ 12885: 0x00007C8A,
+ 12886: 0x00007C8C,
+ 12887: 0x00007C88,
+ 12888: 0x00007C8D,
+ 12889: 0x00007C85,
+ 12890: 0x00007D1E,
+ 12891: 0x00007D1D,
+ 12892: 0x00007D11,
+ 12893: 0x00007D0E,
+ 12894: 0x00007D18,
+ 12895: 0x00007D16,
+ 12896: 0x00007D13,
+ 12897: 0x00007D1F,
+ 12898: 0x00007D12,
+ 12899: 0x00007D0F,
+ 12900: 0x00007D0C,
+ 12901: 0x00007F5C,
+ 12902: 0x00007F61,
+ 12903: 0x00007F5E,
+ 12904: 0x00007F60,
+ 12905: 0x00007F5D,
+ 12906: 0x00007F5B,
+ 12907: 0x00007F96,
+ 12908: 0x00007F92,
+ 12909: 0x00007FC3,
+ 12910: 0x00007FC2,
+ 12911: 0x00007FC0,
+ 12912: 0x00008016,
+ 12913: 0x0000803E,
+ 12914: 0x00008039,
+ 12915: 0x000080FA,
+ 12916: 0x000080F2,
+ 12917: 0x000080F9,
+ 12918: 0x000080F5,
+ 12919: 0x00008101,
+ 12920: 0x000080FB,
+ 12921: 0x00008100,
+ 12922: 0x00008201,
+ 12923: 0x0000822F,
+ 12924: 0x00008225,
+ 12925: 0x00008333,
+ 12926: 0x0000832D,
+ 12927: 0x00008344,
+ 12928: 0x00008319,
+ 12929: 0x00008351,
+ 12930: 0x00008325,
+ 12931: 0x00008356,
+ 12932: 0x0000833F,
+ 12933: 0x00008341,
+ 12934: 0x00008326,
+ 12935: 0x0000831C,
+ 12936: 0x00008322,
+ 12937: 0x00008342,
+ 12938: 0x0000834E,
+ 12939: 0x0000831B,
+ 12940: 0x0000832A,
+ 12941: 0x00008308,
+ 12942: 0x0000833C,
+ 12943: 0x0000834D,
+ 12944: 0x00008316,
+ 12945: 0x00008324,
+ 12946: 0x00008320,
+ 12947: 0x00008337,
+ 12948: 0x0000832F,
+ 12949: 0x00008329,
+ 12950: 0x00008347,
+ 12951: 0x00008345,
+ 12952: 0x0000834C,
+ 12953: 0x00008353,
+ 12954: 0x0000831E,
+ 12955: 0x0000832C,
+ 12956: 0x0000834B,
+ 12957: 0x00008327,
+ 12958: 0x00008348,
+ 12959: 0x00008653,
+ 12960: 0x00008652,
+ 12961: 0x000086A2,
+ 12962: 0x000086A8,
+ 12963: 0x00008696,
+ 12964: 0x0000868D,
+ 12965: 0x00008691,
+ 12966: 0x0000869E,
+ 12967: 0x00008687,
+ 12968: 0x00008697,
+ 12969: 0x00008686,
+ 12970: 0x0000868B,
+ 12971: 0x0000869A,
+ 12972: 0x00008685,
+ 12973: 0x000086A5,
+ 12974: 0x00008699,
+ 12975: 0x000086A1,
+ 12976: 0x000086A7,
+ 12977: 0x00008695,
+ 12978: 0x00008698,
+ 12979: 0x0000868E,
+ 12980: 0x0000869D,
+ 12981: 0x00008690,
+ 12982: 0x00008694,
+ 12983: 0x00008843,
+ 12984: 0x00008844,
+ 12985: 0x0000886D,
+ 12986: 0x00008875,
+ 12987: 0x00008876,
+ 12988: 0x00008872,
+ 12989: 0x00008880,
+ 12990: 0x00008871,
+ 12991: 0x0000887F,
+ 12992: 0x0000886F,
+ 12993: 0x00008883,
+ 12994: 0x0000887E,
+ 12995: 0x00008874,
+ 12996: 0x0000887C,
+ 12997: 0x00008A12,
+ 12998: 0x00008C47,
+ 12999: 0x00008C57,
+ 13000: 0x00008C7B,
+ 13001: 0x00008CA4,
+ 13002: 0x00008CA3,
+ 13003: 0x00008D76,
+ 13004: 0x00008D78,
+ 13005: 0x00008DB5,
+ 13006: 0x00008DB7,
+ 13007: 0x00008DB6,
+ 13008: 0x00008ED1,
+ 13009: 0x00008ED3,
+ 13010: 0x00008FFE,
+ 13011: 0x00008FF5,
+ 13012: 0x00009002,
+ 13013: 0x00008FFF,
+ 13014: 0x00008FFB,
+ 13015: 0x00009004,
+ 13016: 0x00008FFC,
+ 13017: 0x00008FF6,
+ 13018: 0x000090D6,
+ 13019: 0x000090E0,
+ 13020: 0x000090D9,
+ 13021: 0x000090DA,
+ 13022: 0x000090E3,
+ 13023: 0x000090DF,
+ 13024: 0x000090E5,
+ 13025: 0x000090D8,
+ 13026: 0x000090DB,
+ 13027: 0x000090D7,
+ 13028: 0x000090DC,
+ 13029: 0x000090E4,
+ 13030: 0x00009150,
+ 13031: 0x0000914E,
+ 13032: 0x0000914F,
+ 13033: 0x000091D5,
+ 13034: 0x000091E2,
+ 13035: 0x000091DA,
+ 13036: 0x0000965C,
+ 13037: 0x0000965F,
+ 13038: 0x000096BC,
+ 13039: 0x000098E3,
+ 13040: 0x00009ADF,
+ 13041: 0x00009B2F,
+ 13042: 0x00004E7F,
+ 13043: 0x00005070,
+ 13044: 0x0000506A,
+ 13045: 0x00005061,
+ 13046: 0x0000505E,
+ 13047: 0x00005060,
+ 13048: 0x00005053,
+ 13049: 0x0000504B,
+ 13050: 0x0000505D,
+ 13051: 0x00005072,
+ 13052: 0x00005048,
+ 13053: 0x0000504D,
+ 13054: 0x00005041,
+ 13055: 0x0000505B,
+ 13056: 0x0000504A,
+ 13057: 0x00005062,
+ 13058: 0x00005015,
+ 13059: 0x00005045,
+ 13060: 0x0000505F,
+ 13061: 0x00005069,
+ 13062: 0x0000506B,
+ 13063: 0x00005063,
+ 13064: 0x00005064,
+ 13065: 0x00005046,
+ 13066: 0x00005040,
+ 13067: 0x0000506E,
+ 13068: 0x00005073,
+ 13069: 0x00005057,
+ 13070: 0x00005051,
+ 13071: 0x000051D0,
+ 13072: 0x0000526B,
+ 13073: 0x0000526D,
+ 13074: 0x0000526C,
+ 13075: 0x0000526E,
+ 13076: 0x000052D6,
+ 13077: 0x000052D3,
+ 13078: 0x0000532D,
+ 13079: 0x0000539C,
+ 13080: 0x00005575,
+ 13081: 0x00005576,
+ 13082: 0x0000553C,
+ 13083: 0x0000554D,
+ 13084: 0x00005550,
+ 13085: 0x00005534,
+ 13086: 0x0000552A,
+ 13087: 0x00005551,
+ 13088: 0x00005562,
+ 13089: 0x00005536,
+ 13090: 0x00005535,
+ 13091: 0x00005530,
+ 13092: 0x00005552,
+ 13093: 0x00005545,
+ 13094: 0x0000550C,
+ 13095: 0x00005532,
+ 13096: 0x00005565,
+ 13097: 0x0000554E,
+ 13098: 0x00005539,
+ 13099: 0x00005548,
+ 13100: 0x0000552D,
+ 13101: 0x0000553B,
+ 13102: 0x00005540,
+ 13103: 0x0000554B,
+ 13104: 0x0000570A,
+ 13105: 0x00005707,
+ 13106: 0x000057FB,
+ 13107: 0x00005814,
+ 13108: 0x000057E2,
+ 13109: 0x000057F6,
+ 13110: 0x000057DC,
+ 13111: 0x000057F4,
+ 13112: 0x00005800,
+ 13113: 0x000057ED,
+ 13114: 0x000057FD,
+ 13115: 0x00005808,
+ 13116: 0x000057F8,
+ 13117: 0x0000580B,
+ 13118: 0x000057F3,
+ 13119: 0x000057CF,
+ 13120: 0x00005807,
+ 13121: 0x000057EE,
+ 13122: 0x000057E3,
+ 13123: 0x000057F2,
+ 13124: 0x000057E5,
+ 13125: 0x000057EC,
+ 13126: 0x000057E1,
+ 13127: 0x0000580E,
+ 13128: 0x000057FC,
+ 13129: 0x00005810,
+ 13130: 0x000057E7,
+ 13131: 0x00005801,
+ 13132: 0x0000580C,
+ 13133: 0x000057F1,
+ 13134: 0x000057E9,
+ 13135: 0x000057F0,
+ 13136: 0x0000580D,
+ 13137: 0x00005804,
+ 13138: 0x0000595C,
+ 13139: 0x00005A60,
+ 13140: 0x00005A58,
+ 13141: 0x00005A55,
+ 13142: 0x00005A67,
+ 13143: 0x00005A5E,
+ 13144: 0x00005A38,
+ 13145: 0x00005A35,
+ 13146: 0x00005A6D,
+ 13147: 0x00005A50,
+ 13148: 0x00005A5F,
+ 13149: 0x00005A65,
+ 13150: 0x00005A6C,
+ 13151: 0x00005A53,
+ 13152: 0x00005A64,
+ 13153: 0x00005A57,
+ 13154: 0x00005A43,
+ 13155: 0x00005A5D,
+ 13156: 0x00005A52,
+ 13157: 0x00005A44,
+ 13158: 0x00005A5B,
+ 13159: 0x00005A48,
+ 13160: 0x00005A8E,
+ 13161: 0x00005A3E,
+ 13162: 0x00005A4D,
+ 13163: 0x00005A39,
+ 13164: 0x00005A4C,
+ 13165: 0x00005A70,
+ 13166: 0x00005A69,
+ 13167: 0x00005A47,
+ 13168: 0x00005A51,
+ 13169: 0x00005A56,
+ 13170: 0x00005A42,
+ 13171: 0x00005A5C,
+ 13172: 0x00005B72,
+ 13173: 0x00005B6E,
+ 13174: 0x00005BC1,
+ 13175: 0x00005BC0,
+ 13176: 0x00005C59,
+ 13177: 0x00005D1E,
+ 13178: 0x00005D0B,
+ 13179: 0x00005D1D,
+ 13180: 0x00005D1A,
+ 13181: 0x00005D20,
+ 13182: 0x00005D0C,
+ 13183: 0x00005D28,
+ 13184: 0x00005D0D,
+ 13185: 0x00005D26,
+ 13186: 0x00005D25,
+ 13187: 0x00005D0F,
+ 13188: 0x00005D30,
+ 13189: 0x00005D12,
+ 13190: 0x00005D23,
+ 13191: 0x00005D1F,
+ 13192: 0x00005D2E,
+ 13193: 0x00005E3E,
+ 13194: 0x00005E34,
+ 13195: 0x00005EB1,
+ 13196: 0x00005EB4,
+ 13197: 0x00005EB9,
+ 13198: 0x00005EB2,
+ 13199: 0x00005EB3,
+ 13200: 0x00005F36,
+ 13201: 0x00005F38,
+ 13202: 0x00005F9B,
+ 13203: 0x00005F96,
+ 13204: 0x00005F9F,
+ 13205: 0x0000608A,
+ 13206: 0x00006090,
+ 13207: 0x00006086,
+ 13208: 0x000060BE,
+ 13209: 0x000060B0,
+ 13210: 0x000060BA,
+ 13211: 0x000060D3,
+ 13212: 0x000060D4,
+ 13213: 0x000060CF,
+ 13214: 0x000060E4,
+ 13215: 0x000060D9,
+ 13216: 0x000060DD,
+ 13217: 0x000060C8,
+ 13218: 0x000060B1,
+ 13219: 0x000060DB,
+ 13220: 0x000060B7,
+ 13221: 0x000060CA,
+ 13222: 0x000060BF,
+ 13223: 0x000060C3,
+ 13224: 0x000060CD,
+ 13225: 0x000060C0,
+ 13226: 0x00006332,
+ 13227: 0x00006365,
+ 13228: 0x0000638A,
+ 13229: 0x00006382,
+ 13230: 0x0000637D,
+ 13231: 0x000063BD,
+ 13232: 0x0000639E,
+ 13233: 0x000063AD,
+ 13234: 0x0000639D,
+ 13235: 0x00006397,
+ 13236: 0x000063AB,
+ 13237: 0x0000638E,
+ 13238: 0x0000636F,
+ 13239: 0x00006387,
+ 13240: 0x00006390,
+ 13241: 0x0000636E,
+ 13242: 0x000063AF,
+ 13243: 0x00006375,
+ 13244: 0x0000639C,
+ 13245: 0x0000636D,
+ 13246: 0x000063AE,
+ 13247: 0x0000637C,
+ 13248: 0x000063A4,
+ 13249: 0x0000633B,
+ 13250: 0x0000639F,
+ 13251: 0x00006378,
+ 13252: 0x00006385,
+ 13253: 0x00006381,
+ 13254: 0x00006391,
+ 13255: 0x0000638D,
+ 13256: 0x00006370,
+ 13257: 0x00006553,
+ 13258: 0x000065CD,
+ 13259: 0x00006665,
+ 13260: 0x00006661,
+ 13261: 0x0000665B,
+ 13262: 0x00006659,
+ 13263: 0x0000665C,
+ 13264: 0x00006662,
+ 13265: 0x00006718,
+ 13266: 0x00006879,
+ 13267: 0x00006887,
+ 13268: 0x00006890,
+ 13269: 0x0000689C,
+ 13270: 0x0000686D,
+ 13271: 0x0000686E,
+ 13272: 0x000068AE,
+ 13273: 0x000068AB,
+ 13274: 0x00006956,
+ 13275: 0x0000686F,
+ 13276: 0x000068A3,
+ 13277: 0x000068AC,
+ 13278: 0x000068A9,
+ 13279: 0x00006875,
+ 13280: 0x00006874,
+ 13281: 0x000068B2,
+ 13282: 0x0000688F,
+ 13283: 0x00006877,
+ 13284: 0x00006892,
+ 13285: 0x0000687C,
+ 13286: 0x0000686B,
+ 13287: 0x00006872,
+ 13288: 0x000068AA,
+ 13289: 0x00006880,
+ 13290: 0x00006871,
+ 13291: 0x0000687E,
+ 13292: 0x0000689B,
+ 13293: 0x00006896,
+ 13294: 0x0000688B,
+ 13295: 0x000068A0,
+ 13296: 0x00006889,
+ 13297: 0x000068A4,
+ 13298: 0x00006878,
+ 13299: 0x0000687B,
+ 13300: 0x00006891,
+ 13301: 0x0000688C,
+ 13302: 0x0000688A,
+ 13303: 0x0000687D,
+ 13304: 0x00006B36,
+ 13305: 0x00006B33,
+ 13306: 0x00006B37,
+ 13307: 0x00006B38,
+ 13308: 0x00006B91,
+ 13309: 0x00006B8F,
+ 13310: 0x00006B8D,
+ 13311: 0x00006B8E,
+ 13312: 0x00006B8C,
+ 13313: 0x00006C2A,
+ 13314: 0x00006DC0,
+ 13315: 0x00006DAB,
+ 13316: 0x00006DB4,
+ 13317: 0x00006DB3,
+ 13318: 0x00006E74,
+ 13319: 0x00006DAC,
+ 13320: 0x00006DE9,
+ 13321: 0x00006DE2,
+ 13322: 0x00006DB7,
+ 13323: 0x00006DF6,
+ 13324: 0x00006DD4,
+ 13325: 0x00006E00,
+ 13326: 0x00006DC8,
+ 13327: 0x00006DE0,
+ 13328: 0x00006DDF,
+ 13329: 0x00006DD6,
+ 13330: 0x00006DBE,
+ 13331: 0x00006DE5,
+ 13332: 0x00006DDC,
+ 13333: 0x00006DDD,
+ 13334: 0x00006DDB,
+ 13335: 0x00006DF4,
+ 13336: 0x00006DCA,
+ 13337: 0x00006DBD,
+ 13338: 0x00006DED,
+ 13339: 0x00006DF0,
+ 13340: 0x00006DBA,
+ 13341: 0x00006DD5,
+ 13342: 0x00006DC2,
+ 13343: 0x00006DCF,
+ 13344: 0x00006DC9,
+ 13345: 0x00006DD0,
+ 13346: 0x00006DF2,
+ 13347: 0x00006DD3,
+ 13348: 0x00006DFD,
+ 13349: 0x00006DD7,
+ 13350: 0x00006DCD,
+ 13351: 0x00006DE3,
+ 13352: 0x00006DBB,
+ 13353: 0x000070FA,
+ 13354: 0x0000710D,
+ 13355: 0x000070F7,
+ 13356: 0x00007117,
+ 13357: 0x000070F4,
+ 13358: 0x0000710C,
+ 13359: 0x000070F0,
+ 13360: 0x00007104,
+ 13361: 0x000070F3,
+ 13362: 0x00007110,
+ 13363: 0x000070FC,
+ 13364: 0x000070FF,
+ 13365: 0x00007106,
+ 13366: 0x00007113,
+ 13367: 0x00007100,
+ 13368: 0x000070F8,
+ 13369: 0x000070F6,
+ 13370: 0x0000710B,
+ 13371: 0x00007102,
+ 13372: 0x0000710E,
+ 13373: 0x0000727E,
+ 13374: 0x0000727B,
+ 13375: 0x0000727C,
+ 13376: 0x0000727F,
+ 13377: 0x0000731D,
+ 13378: 0x00007317,
+ 13379: 0x00007307,
+ 13380: 0x00007311,
+ 13381: 0x00007318,
+ 13382: 0x0000730A,
+ 13383: 0x00007308,
+ 13384: 0x000072FF,
+ 13385: 0x0000730F,
+ 13386: 0x0000731E,
+ 13387: 0x00007388,
+ 13388: 0x000073F6,
+ 13389: 0x000073F8,
+ 13390: 0x000073F5,
+ 13391: 0x00007404,
+ 13392: 0x00007401,
+ 13393: 0x000073FD,
+ 13394: 0x00007407,
+ 13395: 0x00007400,
+ 13396: 0x000073FA,
+ 13397: 0x000073FC,
+ 13398: 0x000073FF,
+ 13399: 0x0000740C,
+ 13400: 0x0000740B,
+ 13401: 0x000073F4,
+ 13402: 0x00007408,
+ 13403: 0x00007564,
+ 13404: 0x00007563,
+ 13405: 0x000075CE,
+ 13406: 0x000075D2,
+ 13407: 0x000075CF,
+ 13408: 0x000075CB,
+ 13409: 0x000075CC,
+ 13410: 0x000075D1,
+ 13411: 0x000075D0,
+ 13412: 0x0000768F,
+ 13413: 0x00007689,
+ 13414: 0x000076D3,
+ 13415: 0x00007739,
+ 13416: 0x0000772F,
+ 13417: 0x0000772D,
+ 13418: 0x00007731,
+ 13419: 0x00007732,
+ 13420: 0x00007734,
+ 13421: 0x00007733,
+ 13422: 0x0000773D,
+ 13423: 0x00007725,
+ 13424: 0x0000773B,
+ 13425: 0x00007735,
+ 13426: 0x00007848,
+ 13427: 0x00007852,
+ 13428: 0x00007849,
+ 13429: 0x0000784D,
+ 13430: 0x0000784A,
+ 13431: 0x0000784C,
+ 13432: 0x00007826,
+ 13433: 0x00007845,
+ 13434: 0x00007850,
+ 13435: 0x00007964,
+ 13436: 0x00007967,
+ 13437: 0x00007969,
+ 13438: 0x0000796A,
+ 13439: 0x00007963,
+ 13440: 0x0000796B,
+ 13441: 0x00007961,
+ 13442: 0x000079BB,
+ 13443: 0x000079FA,
+ 13444: 0x000079F8,
+ 13445: 0x000079F6,
+ 13446: 0x000079F7,
+ 13447: 0x00007A8F,
+ 13448: 0x00007A94,
+ 13449: 0x00007A90,
+ 13450: 0x00007B35,
+ 13451: 0x00007B47,
+ 13452: 0x00007B34,
+ 13453: 0x00007B25,
+ 13454: 0x00007B30,
+ 13455: 0x00007B22,
+ 13456: 0x00007B24,
+ 13457: 0x00007B33,
+ 13458: 0x00007B18,
+ 13459: 0x00007B2A,
+ 13460: 0x00007B1D,
+ 13461: 0x00007B31,
+ 13462: 0x00007B2B,
+ 13463: 0x00007B2D,
+ 13464: 0x00007B2F,
+ 13465: 0x00007B32,
+ 13466: 0x00007B38,
+ 13467: 0x00007B1A,
+ 13468: 0x00007B23,
+ 13469: 0x00007C94,
+ 13470: 0x00007C98,
+ 13471: 0x00007C96,
+ 13472: 0x00007CA3,
+ 13473: 0x00007D35,
+ 13474: 0x00007D3D,
+ 13475: 0x00007D38,
+ 13476: 0x00007D36,
+ 13477: 0x00007D3A,
+ 13478: 0x00007D45,
+ 13479: 0x00007D2C,
+ 13480: 0x00007D29,
+ 13481: 0x00007D41,
+ 13482: 0x00007D47,
+ 13483: 0x00007D3E,
+ 13484: 0x00007D3F,
+ 13485: 0x00007D4A,
+ 13486: 0x00007D3B,
+ 13487: 0x00007D28,
+ 13488: 0x00007F63,
+ 13489: 0x00007F95,
+ 13490: 0x00007F9C,
+ 13491: 0x00007F9D,
+ 13492: 0x00007F9B,
+ 13493: 0x00007FCA,
+ 13494: 0x00007FCB,
+ 13495: 0x00007FCD,
+ 13496: 0x00007FD0,
+ 13497: 0x00007FD1,
+ 13498: 0x00007FC7,
+ 13499: 0x00007FCF,
+ 13500: 0x00007FC9,
+ 13501: 0x0000801F,
+ 13502: 0x0000801E,
+ 13503: 0x0000801B,
+ 13504: 0x00008047,
+ 13505: 0x00008043,
+ 13506: 0x00008048,
+ 13507: 0x00008118,
+ 13508: 0x00008125,
+ 13509: 0x00008119,
+ 13510: 0x0000811B,
+ 13511: 0x0000812D,
+ 13512: 0x0000811F,
+ 13513: 0x0000812C,
+ 13514: 0x0000811E,
+ 13515: 0x00008121,
+ 13516: 0x00008115,
+ 13517: 0x00008127,
+ 13518: 0x0000811D,
+ 13519: 0x00008122,
+ 13520: 0x00008211,
+ 13521: 0x00008238,
+ 13522: 0x00008233,
+ 13523: 0x0000823A,
+ 13524: 0x00008234,
+ 13525: 0x00008232,
+ 13526: 0x00008274,
+ 13527: 0x00008390,
+ 13528: 0x000083A3,
+ 13529: 0x000083A8,
+ 13530: 0x0000838D,
+ 13531: 0x0000837A,
+ 13532: 0x00008373,
+ 13533: 0x000083A4,
+ 13534: 0x00008374,
+ 13535: 0x0000838F,
+ 13536: 0x00008381,
+ 13537: 0x00008395,
+ 13538: 0x00008399,
+ 13539: 0x00008375,
+ 13540: 0x00008394,
+ 13541: 0x000083A9,
+ 13542: 0x0000837D,
+ 13543: 0x00008383,
+ 13544: 0x0000838C,
+ 13545: 0x0000839D,
+ 13546: 0x0000839B,
+ 13547: 0x000083AA,
+ 13548: 0x0000838B,
+ 13549: 0x0000837E,
+ 13550: 0x000083A5,
+ 13551: 0x000083AF,
+ 13552: 0x00008388,
+ 13553: 0x00008397,
+ 13554: 0x000083B0,
+ 13555: 0x0000837F,
+ 13556: 0x000083A6,
+ 13557: 0x00008387,
+ 13558: 0x000083AE,
+ 13559: 0x00008376,
+ 13560: 0x0000839A,
+ 13561: 0x00008659,
+ 13562: 0x00008656,
+ 13563: 0x000086BF,
+ 13564: 0x000086B7,
+ 13565: 0x000086C2,
+ 13566: 0x000086C1,
+ 13567: 0x000086C5,
+ 13568: 0x000086BA,
+ 13569: 0x000086B0,
+ 13570: 0x000086C8,
+ 13571: 0x000086B9,
+ 13572: 0x000086B3,
+ 13573: 0x000086B8,
+ 13574: 0x000086CC,
+ 13575: 0x000086B4,
+ 13576: 0x000086BB,
+ 13577: 0x000086BC,
+ 13578: 0x000086C3,
+ 13579: 0x000086BD,
+ 13580: 0x000086BE,
+ 13581: 0x00008852,
+ 13582: 0x00008889,
+ 13583: 0x00008895,
+ 13584: 0x000088A8,
+ 13585: 0x000088A2,
+ 13586: 0x000088AA,
+ 13587: 0x0000889A,
+ 13588: 0x00008891,
+ 13589: 0x000088A1,
+ 13590: 0x0000889F,
+ 13591: 0x00008898,
+ 13592: 0x000088A7,
+ 13593: 0x00008899,
+ 13594: 0x0000889B,
+ 13595: 0x00008897,
+ 13596: 0x000088A4,
+ 13597: 0x000088AC,
+ 13598: 0x0000888C,
+ 13599: 0x00008893,
+ 13600: 0x0000888E,
+ 13601: 0x00008982,
+ 13602: 0x000089D6,
+ 13603: 0x000089D9,
+ 13604: 0x000089D5,
+ 13605: 0x00008A30,
+ 13606: 0x00008A27,
+ 13607: 0x00008A2C,
+ 13608: 0x00008A1E,
+ 13609: 0x00008C39,
+ 13610: 0x00008C3B,
+ 13611: 0x00008C5C,
+ 13612: 0x00008C5D,
+ 13613: 0x00008C7D,
+ 13614: 0x00008CA5,
+ 13615: 0x00008D7D,
+ 13616: 0x00008D7B,
+ 13617: 0x00008D79,
+ 13618: 0x00008DBC,
+ 13619: 0x00008DC2,
+ 13620: 0x00008DB9,
+ 13621: 0x00008DBF,
+ 13622: 0x00008DC1,
+ 13623: 0x00008ED8,
+ 13624: 0x00008EDE,
+ 13625: 0x00008EDD,
+ 13626: 0x00008EDC,
+ 13627: 0x00008ED7,
+ 13628: 0x00008EE0,
+ 13629: 0x00008EE1,
+ 13630: 0x00009024,
+ 13631: 0x0000900B,
+ 13632: 0x00009011,
+ 13633: 0x0000901C,
+ 13634: 0x0000900C,
+ 13635: 0x00009021,
+ 13636: 0x000090EF,
+ 13637: 0x000090EA,
+ 13638: 0x000090F0,
+ 13639: 0x000090F4,
+ 13640: 0x000090F2,
+ 13641: 0x000090F3,
+ 13642: 0x000090D4,
+ 13643: 0x000090EB,
+ 13644: 0x000090EC,
+ 13645: 0x000090E9,
+ 13646: 0x00009156,
+ 13647: 0x00009158,
+ 13648: 0x0000915A,
+ 13649: 0x00009153,
+ 13650: 0x00009155,
+ 13651: 0x000091EC,
+ 13652: 0x000091F4,
+ 13653: 0x000091F1,
+ 13654: 0x000091F3,
+ 13655: 0x000091F8,
+ 13656: 0x000091E4,
+ 13657: 0x000091F9,
+ 13658: 0x000091EA,
+ 13659: 0x000091EB,
+ 13660: 0x000091F7,
+ 13661: 0x000091E8,
+ 13662: 0x000091EE,
+ 13663: 0x0000957A,
+ 13664: 0x00009586,
+ 13665: 0x00009588,
+ 13666: 0x0000967C,
+ 13667: 0x0000966D,
+ 13668: 0x0000966B,
+ 13669: 0x00009671,
+ 13670: 0x0000966F,
+ 13671: 0x000096BF,
+ 13672: 0x0000976A,
+ 13673: 0x00009804,
+ 13674: 0x000098E5,
+ 13675: 0x00009997,
+ 13676: 0x0000509B,
+ 13677: 0x00005095,
+ 13678: 0x00005094,
+ 13679: 0x0000509E,
+ 13680: 0x0000508B,
+ 13681: 0x000050A3,
+ 13682: 0x00005083,
+ 13683: 0x0000508C,
+ 13684: 0x0000508E,
+ 13685: 0x0000509D,
+ 13686: 0x00005068,
+ 13687: 0x0000509C,
+ 13688: 0x00005092,
+ 13689: 0x00005082,
+ 13690: 0x00005087,
+ 13691: 0x0000515F,
+ 13692: 0x000051D4,
+ 13693: 0x00005312,
+ 13694: 0x00005311,
+ 13695: 0x000053A4,
+ 13696: 0x000053A7,
+ 13697: 0x00005591,
+ 13698: 0x000055A8,
+ 13699: 0x000055A5,
+ 13700: 0x000055AD,
+ 13701: 0x00005577,
+ 13702: 0x00005645,
+ 13703: 0x000055A2,
+ 13704: 0x00005593,
+ 13705: 0x00005588,
+ 13706: 0x0000558F,
+ 13707: 0x000055B5,
+ 13708: 0x00005581,
+ 13709: 0x000055A3,
+ 13710: 0x00005592,
+ 13711: 0x000055A4,
+ 13712: 0x0000557D,
+ 13713: 0x0000558C,
+ 13714: 0x000055A6,
+ 13715: 0x0000557F,
+ 13716: 0x00005595,
+ 13717: 0x000055A1,
+ 13718: 0x0000558E,
+ 13719: 0x0000570C,
+ 13720: 0x00005829,
+ 13721: 0x00005837,
+ 13722: 0x00005819,
+ 13723: 0x0000581E,
+ 13724: 0x00005827,
+ 13725: 0x00005823,
+ 13726: 0x00005828,
+ 13727: 0x000057F5,
+ 13728: 0x00005848,
+ 13729: 0x00005825,
+ 13730: 0x0000581C,
+ 13731: 0x0000581B,
+ 13732: 0x00005833,
+ 13733: 0x0000583F,
+ 13734: 0x00005836,
+ 13735: 0x0000582E,
+ 13736: 0x00005839,
+ 13737: 0x00005838,
+ 13738: 0x0000582D,
+ 13739: 0x0000582C,
+ 13740: 0x0000583B,
+ 13741: 0x00005961,
+ 13742: 0x00005AAF,
+ 13743: 0x00005A94,
+ 13744: 0x00005A9F,
+ 13745: 0x00005A7A,
+ 13746: 0x00005AA2,
+ 13747: 0x00005A9E,
+ 13748: 0x00005A78,
+ 13749: 0x00005AA6,
+ 13750: 0x00005A7C,
+ 13751: 0x00005AA5,
+ 13752: 0x00005AAC,
+ 13753: 0x00005A95,
+ 13754: 0x00005AAE,
+ 13755: 0x00005A37,
+ 13756: 0x00005A84,
+ 13757: 0x00005A8A,
+ 13758: 0x00005A97,
+ 13759: 0x00005A83,
+ 13760: 0x00005A8B,
+ 13761: 0x00005AA9,
+ 13762: 0x00005A7B,
+ 13763: 0x00005A7D,
+ 13764: 0x00005A8C,
+ 13765: 0x00005A9C,
+ 13766: 0x00005A8F,
+ 13767: 0x00005A93,
+ 13768: 0x00005A9D,
+ 13769: 0x00005BEA,
+ 13770: 0x00005BCD,
+ 13771: 0x00005BCB,
+ 13772: 0x00005BD4,
+ 13773: 0x00005BD1,
+ 13774: 0x00005BCA,
+ 13775: 0x00005BCE,
+ 13776: 0x00005C0C,
+ 13777: 0x00005C30,
+ 13778: 0x00005D37,
+ 13779: 0x00005D43,
+ 13780: 0x00005D6B,
+ 13781: 0x00005D41,
+ 13782: 0x00005D4B,
+ 13783: 0x00005D3F,
+ 13784: 0x00005D35,
+ 13785: 0x00005D51,
+ 13786: 0x00005D4E,
+ 13787: 0x00005D55,
+ 13788: 0x00005D33,
+ 13789: 0x00005D3A,
+ 13790: 0x00005D52,
+ 13791: 0x00005D3D,
+ 13792: 0x00005D31,
+ 13793: 0x00005D59,
+ 13794: 0x00005D42,
+ 13795: 0x00005D39,
+ 13796: 0x00005D49,
+ 13797: 0x00005D38,
+ 13798: 0x00005D3C,
+ 13799: 0x00005D32,
+ 13800: 0x00005D36,
+ 13801: 0x00005D40,
+ 13802: 0x00005D45,
+ 13803: 0x00005E44,
+ 13804: 0x00005E41,
+ 13805: 0x00005F58,
+ 13806: 0x00005FA6,
+ 13807: 0x00005FA5,
+ 13808: 0x00005FAB,
+ 13809: 0x000060C9,
+ 13810: 0x000060B9,
+ 13811: 0x000060CC,
+ 13812: 0x000060E2,
+ 13813: 0x000060CE,
+ 13814: 0x000060C4,
+ 13815: 0x00006114,
+ 13816: 0x000060F2,
+ 13817: 0x0000610A,
+ 13818: 0x00006116,
+ 13819: 0x00006105,
+ 13820: 0x000060F5,
+ 13821: 0x00006113,
+ 13822: 0x000060F8,
+ 13823: 0x000060FC,
+ 13824: 0x000060FE,
+ 13825: 0x000060C1,
+ 13826: 0x00006103,
+ 13827: 0x00006118,
+ 13828: 0x0000611D,
+ 13829: 0x00006110,
+ 13830: 0x000060FF,
+ 13831: 0x00006104,
+ 13832: 0x0000610B,
+ 13833: 0x0000624A,
+ 13834: 0x00006394,
+ 13835: 0x000063B1,
+ 13836: 0x000063B0,
+ 13837: 0x000063CE,
+ 13838: 0x000063E5,
+ 13839: 0x000063E8,
+ 13840: 0x000063EF,
+ 13841: 0x000063C3,
+ 13842: 0x0000649D,
+ 13843: 0x000063F3,
+ 13844: 0x000063CA,
+ 13845: 0x000063E0,
+ 13846: 0x000063F6,
+ 13847: 0x000063D5,
+ 13848: 0x000063F2,
+ 13849: 0x000063F5,
+ 13850: 0x00006461,
+ 13851: 0x000063DF,
+ 13852: 0x000063BE,
+ 13853: 0x000063DD,
+ 13854: 0x000063DC,
+ 13855: 0x000063C4,
+ 13856: 0x000063D8,
+ 13857: 0x000063D3,
+ 13858: 0x000063C2,
+ 13859: 0x000063C7,
+ 13860: 0x000063CC,
+ 13861: 0x000063CB,
+ 13862: 0x000063C8,
+ 13863: 0x000063F0,
+ 13864: 0x000063D7,
+ 13865: 0x000063D9,
+ 13866: 0x00006532,
+ 13867: 0x00006567,
+ 13868: 0x0000656A,
+ 13869: 0x00006564,
+ 13870: 0x0000655C,
+ 13871: 0x00006568,
+ 13872: 0x00006565,
+ 13873: 0x0000658C,
+ 13874: 0x0000659D,
+ 13875: 0x0000659E,
+ 13876: 0x000065AE,
+ 13877: 0x000065D0,
+ 13878: 0x000065D2,
+ 13879: 0x0000667C,
+ 13880: 0x0000666C,
+ 13881: 0x0000667B,
+ 13882: 0x00006680,
+ 13883: 0x00006671,
+ 13884: 0x00006679,
+ 13885: 0x0000666A,
+ 13886: 0x00006672,
+ 13887: 0x00006701,
+ 13888: 0x0000690C,
+ 13889: 0x000068D3,
+ 13890: 0x00006904,
+ 13891: 0x000068DC,
+ 13892: 0x0000692A,
+ 13893: 0x000068EC,
+ 13894: 0x000068EA,
+ 13895: 0x000068F1,
+ 13896: 0x0000690F,
+ 13897: 0x000068D6,
+ 13898: 0x000068F7,
+ 13899: 0x000068EB,
+ 13900: 0x000068E4,
+ 13901: 0x000068F6,
+ 13902: 0x00006913,
+ 13903: 0x00006910,
+ 13904: 0x000068F3,
+ 13905: 0x000068E1,
+ 13906: 0x00006907,
+ 13907: 0x000068CC,
+ 13908: 0x00006908,
+ 13909: 0x00006970,
+ 13910: 0x000068B4,
+ 13911: 0x00006911,
+ 13912: 0x000068EF,
+ 13913: 0x000068C6,
+ 13914: 0x00006914,
+ 13915: 0x000068F8,
+ 13916: 0x000068D0,
+ 13917: 0x000068FD,
+ 13918: 0x000068FC,
+ 13919: 0x000068E8,
+ 13920: 0x0000690B,
+ 13921: 0x0000690A,
+ 13922: 0x00006917,
+ 13923: 0x000068CE,
+ 13924: 0x000068C8,
+ 13925: 0x000068DD,
+ 13926: 0x000068DE,
+ 13927: 0x000068E6,
+ 13928: 0x000068F4,
+ 13929: 0x000068D1,
+ 13930: 0x00006906,
+ 13931: 0x000068D4,
+ 13932: 0x000068E9,
+ 13933: 0x00006915,
+ 13934: 0x00006925,
+ 13935: 0x000068C7,
+ 13936: 0x00006B39,
+ 13937: 0x00006B3B,
+ 13938: 0x00006B3F,
+ 13939: 0x00006B3C,
+ 13940: 0x00006B94,
+ 13941: 0x00006B97,
+ 13942: 0x00006B99,
+ 13943: 0x00006B95,
+ 13944: 0x00006BBD,
+ 13945: 0x00006BF0,
+ 13946: 0x00006BF2,
+ 13947: 0x00006BF3,
+ 13948: 0x00006C30,
+ 13949: 0x00006DFC,
+ 13950: 0x00006E46,
+ 13951: 0x00006E47,
+ 13952: 0x00006E1F,
+ 13953: 0x00006E49,
+ 13954: 0x00006E88,
+ 13955: 0x00006E3C,
+ 13956: 0x00006E3D,
+ 13957: 0x00006E45,
+ 13958: 0x00006E62,
+ 13959: 0x00006E2B,
+ 13960: 0x00006E3F,
+ 13961: 0x00006E41,
+ 13962: 0x00006E5D,
+ 13963: 0x00006E73,
+ 13964: 0x00006E1C,
+ 13965: 0x00006E33,
+ 13966: 0x00006E4B,
+ 13967: 0x00006E40,
+ 13968: 0x00006E51,
+ 13969: 0x00006E3B,
+ 13970: 0x00006E03,
+ 13971: 0x00006E2E,
+ 13972: 0x00006E5E,
+ 13973: 0x00006E68,
+ 13974: 0x00006E5C,
+ 13975: 0x00006E61,
+ 13976: 0x00006E31,
+ 13977: 0x00006E28,
+ 13978: 0x00006E60,
+ 13979: 0x00006E71,
+ 13980: 0x00006E6B,
+ 13981: 0x00006E39,
+ 13982: 0x00006E22,
+ 13983: 0x00006E30,
+ 13984: 0x00006E53,
+ 13985: 0x00006E65,
+ 13986: 0x00006E27,
+ 13987: 0x00006E78,
+ 13988: 0x00006E64,
+ 13989: 0x00006E77,
+ 13990: 0x00006E55,
+ 13991: 0x00006E79,
+ 13992: 0x00006E52,
+ 13993: 0x00006E66,
+ 13994: 0x00006E35,
+ 13995: 0x00006E36,
+ 13996: 0x00006E5A,
+ 13997: 0x00007120,
+ 13998: 0x0000711E,
+ 13999: 0x0000712F,
+ 14000: 0x000070FB,
+ 14001: 0x0000712E,
+ 14002: 0x00007131,
+ 14003: 0x00007123,
+ 14004: 0x00007125,
+ 14005: 0x00007122,
+ 14006: 0x00007132,
+ 14007: 0x0000711F,
+ 14008: 0x00007128,
+ 14009: 0x0000713A,
+ 14010: 0x0000711B,
+ 14011: 0x0000724B,
+ 14012: 0x0000725A,
+ 14013: 0x00007288,
+ 14014: 0x00007289,
+ 14015: 0x00007286,
+ 14016: 0x00007285,
+ 14017: 0x0000728B,
+ 14018: 0x00007312,
+ 14019: 0x0000730B,
+ 14020: 0x00007330,
+ 14021: 0x00007322,
+ 14022: 0x00007331,
+ 14023: 0x00007333,
+ 14024: 0x00007327,
+ 14025: 0x00007332,
+ 14026: 0x0000732D,
+ 14027: 0x00007326,
+ 14028: 0x00007323,
+ 14029: 0x00007335,
+ 14030: 0x0000730C,
+ 14031: 0x0000742E,
+ 14032: 0x0000742C,
+ 14033: 0x00007430,
+ 14034: 0x0000742B,
+ 14035: 0x00007416,
+ 14036: 0x0000741A,
+ 14037: 0x00007421,
+ 14038: 0x0000742D,
+ 14039: 0x00007431,
+ 14040: 0x00007424,
+ 14041: 0x00007423,
+ 14042: 0x0000741D,
+ 14043: 0x00007429,
+ 14044: 0x00007420,
+ 14045: 0x00007432,
+ 14046: 0x000074FB,
+ 14047: 0x0000752F,
+ 14048: 0x0000756F,
+ 14049: 0x0000756C,
+ 14050: 0x000075E7,
+ 14051: 0x000075DA,
+ 14052: 0x000075E1,
+ 14053: 0x000075E6,
+ 14054: 0x000075DD,
+ 14055: 0x000075DF,
+ 14056: 0x000075E4,
+ 14057: 0x000075D7,
+ 14058: 0x00007695,
+ 14059: 0x00007692,
+ 14060: 0x000076DA,
+ 14061: 0x00007746,
+ 14062: 0x00007747,
+ 14063: 0x00007744,
+ 14064: 0x0000774D,
+ 14065: 0x00007745,
+ 14066: 0x0000774A,
+ 14067: 0x0000774E,
+ 14068: 0x0000774B,
+ 14069: 0x0000774C,
+ 14070: 0x000077DE,
+ 14071: 0x000077EC,
+ 14072: 0x00007860,
+ 14073: 0x00007864,
+ 14074: 0x00007865,
+ 14075: 0x0000785C,
+ 14076: 0x0000786D,
+ 14077: 0x00007871,
+ 14078: 0x0000786A,
+ 14079: 0x0000786E,
+ 14080: 0x00007870,
+ 14081: 0x00007869,
+ 14082: 0x00007868,
+ 14083: 0x0000785E,
+ 14084: 0x00007862,
+ 14085: 0x00007974,
+ 14086: 0x00007973,
+ 14087: 0x00007972,
+ 14088: 0x00007970,
+ 14089: 0x00007A02,
+ 14090: 0x00007A0A,
+ 14091: 0x00007A03,
+ 14092: 0x00007A0C,
+ 14093: 0x00007A04,
+ 14094: 0x00007A99,
+ 14095: 0x00007AE6,
+ 14096: 0x00007AE4,
+ 14097: 0x00007B4A,
+ 14098: 0x00007B3B,
+ 14099: 0x00007B44,
+ 14100: 0x00007B48,
+ 14101: 0x00007B4C,
+ 14102: 0x00007B4E,
+ 14103: 0x00007B40,
+ 14104: 0x00007B58,
+ 14105: 0x00007B45,
+ 14106: 0x00007CA2,
+ 14107: 0x00007C9E,
+ 14108: 0x00007CA8,
+ 14109: 0x00007CA1,
+ 14110: 0x00007D58,
+ 14111: 0x00007D6F,
+ 14112: 0x00007D63,
+ 14113: 0x00007D53,
+ 14114: 0x00007D56,
+ 14115: 0x00007D67,
+ 14116: 0x00007D6A,
+ 14117: 0x00007D4F,
+ 14118: 0x00007D6D,
+ 14119: 0x00007D5C,
+ 14120: 0x00007D6B,
+ 14121: 0x00007D52,
+ 14122: 0x00007D54,
+ 14123: 0x00007D69,
+ 14124: 0x00007D51,
+ 14125: 0x00007D5F,
+ 14126: 0x00007D4E,
+ 14127: 0x00007F3E,
+ 14128: 0x00007F3F,
+ 14129: 0x00007F65,
+ 14130: 0x00007F66,
+ 14131: 0x00007FA2,
+ 14132: 0x00007FA0,
+ 14133: 0x00007FA1,
+ 14134: 0x00007FD7,
+ 14135: 0x00008051,
+ 14136: 0x0000804F,
+ 14137: 0x00008050,
+ 14138: 0x000080FE,
+ 14139: 0x000080D4,
+ 14140: 0x00008143,
+ 14141: 0x0000814A,
+ 14142: 0x00008152,
+ 14143: 0x0000814F,
+ 14144: 0x00008147,
+ 14145: 0x0000813D,
+ 14146: 0x0000814D,
+ 14147: 0x0000813A,
+ 14148: 0x000081E6,
+ 14149: 0x000081EE,
+ 14150: 0x000081F7,
+ 14151: 0x000081F8,
+ 14152: 0x000081F9,
+ 14153: 0x00008204,
+ 14154: 0x0000823C,
+ 14155: 0x0000823D,
+ 14156: 0x0000823F,
+ 14157: 0x00008275,
+ 14158: 0x0000833B,
+ 14159: 0x000083CF,
+ 14160: 0x000083F9,
+ 14161: 0x00008423,
+ 14162: 0x000083C0,
+ 14163: 0x000083E8,
+ 14164: 0x00008412,
+ 14165: 0x000083E7,
+ 14166: 0x000083E4,
+ 14167: 0x000083FC,
+ 14168: 0x000083F6,
+ 14169: 0x00008410,
+ 14170: 0x000083C6,
+ 14171: 0x000083C8,
+ 14172: 0x000083EB,
+ 14173: 0x000083E3,
+ 14174: 0x000083BF,
+ 14175: 0x00008401,
+ 14176: 0x000083DD,
+ 14177: 0x000083E5,
+ 14178: 0x000083D8,
+ 14179: 0x000083FF,
+ 14180: 0x000083E1,
+ 14181: 0x000083CB,
+ 14182: 0x000083CE,
+ 14183: 0x000083D6,
+ 14184: 0x000083F5,
+ 14185: 0x000083C9,
+ 14186: 0x00008409,
+ 14187: 0x0000840F,
+ 14188: 0x000083DE,
+ 14189: 0x00008411,
+ 14190: 0x00008406,
+ 14191: 0x000083C2,
+ 14192: 0x000083F3,
+ 14193: 0x000083D5,
+ 14194: 0x000083FA,
+ 14195: 0x000083C7,
+ 14196: 0x000083D1,
+ 14197: 0x000083EA,
+ 14198: 0x00008413,
+ 14199: 0x000083C3,
+ 14200: 0x000083EC,
+ 14201: 0x000083EE,
+ 14202: 0x000083C4,
+ 14203: 0x000083FB,
+ 14204: 0x000083D7,
+ 14205: 0x000083E2,
+ 14206: 0x0000841B,
+ 14207: 0x000083DB,
+ 14208: 0x000083FE,
+ 14209: 0x000086D8,
+ 14210: 0x000086E2,
+ 14211: 0x000086E6,
+ 14212: 0x000086D3,
+ 14213: 0x000086E3,
+ 14214: 0x000086DA,
+ 14215: 0x000086EA,
+ 14216: 0x000086DD,
+ 14217: 0x000086EB,
+ 14218: 0x000086DC,
+ 14219: 0x000086EC,
+ 14220: 0x000086E9,
+ 14221: 0x000086D7,
+ 14222: 0x000086E8,
+ 14223: 0x000086D1,
+ 14224: 0x00008848,
+ 14225: 0x00008856,
+ 14226: 0x00008855,
+ 14227: 0x000088BA,
+ 14228: 0x000088D7,
+ 14229: 0x000088B9,
+ 14230: 0x000088B8,
+ 14231: 0x000088C0,
+ 14232: 0x000088BE,
+ 14233: 0x000088B6,
+ 14234: 0x000088BC,
+ 14235: 0x000088B7,
+ 14236: 0x000088BD,
+ 14237: 0x000088B2,
+ 14238: 0x00008901,
+ 14239: 0x000088C9,
+ 14240: 0x00008995,
+ 14241: 0x00008998,
+ 14242: 0x00008997,
+ 14243: 0x000089DD,
+ 14244: 0x000089DA,
+ 14245: 0x000089DB,
+ 14246: 0x00008A4E,
+ 14247: 0x00008A4D,
+ 14248: 0x00008A39,
+ 14249: 0x00008A59,
+ 14250: 0x00008A40,
+ 14251: 0x00008A57,
+ 14252: 0x00008A58,
+ 14253: 0x00008A44,
+ 14254: 0x00008A45,
+ 14255: 0x00008A52,
+ 14256: 0x00008A48,
+ 14257: 0x00008A51,
+ 14258: 0x00008A4A,
+ 14259: 0x00008A4C,
+ 14260: 0x00008A4F,
+ 14261: 0x00008C5F,
+ 14262: 0x00008C81,
+ 14263: 0x00008C80,
+ 14264: 0x00008CBA,
+ 14265: 0x00008CBE,
+ 14266: 0x00008CB0,
+ 14267: 0x00008CB9,
+ 14268: 0x00008CB5,
+ 14269: 0x00008D84,
+ 14270: 0x00008D80,
+ 14271: 0x00008D89,
+ 14272: 0x00008DD8,
+ 14273: 0x00008DD3,
+ 14274: 0x00008DCD,
+ 14275: 0x00008DC7,
+ 14276: 0x00008DD6,
+ 14277: 0x00008DDC,
+ 14278: 0x00008DCF,
+ 14279: 0x00008DD5,
+ 14280: 0x00008DD9,
+ 14281: 0x00008DC8,
+ 14282: 0x00008DD7,
+ 14283: 0x00008DC5,
+ 14284: 0x00008EEF,
+ 14285: 0x00008EF7,
+ 14286: 0x00008EFA,
+ 14287: 0x00008EF9,
+ 14288: 0x00008EE6,
+ 14289: 0x00008EEE,
+ 14290: 0x00008EE5,
+ 14291: 0x00008EF5,
+ 14292: 0x00008EE7,
+ 14293: 0x00008EE8,
+ 14294: 0x00008EF6,
+ 14295: 0x00008EEB,
+ 14296: 0x00008EF1,
+ 14297: 0x00008EEC,
+ 14298: 0x00008EF4,
+ 14299: 0x00008EE9,
+ 14300: 0x0000902D,
+ 14301: 0x00009034,
+ 14302: 0x0000902F,
+ 14303: 0x00009106,
+ 14304: 0x0000912C,
+ 14305: 0x00009104,
+ 14306: 0x000090FF,
+ 14307: 0x000090FC,
+ 14308: 0x00009108,
+ 14309: 0x000090F9,
+ 14310: 0x000090FB,
+ 14311: 0x00009101,
+ 14312: 0x00009100,
+ 14313: 0x00009107,
+ 14314: 0x00009105,
+ 14315: 0x00009103,
+ 14316: 0x00009161,
+ 14317: 0x00009164,
+ 14318: 0x0000915F,
+ 14319: 0x00009162,
+ 14320: 0x00009160,
+ 14321: 0x00009201,
+ 14322: 0x0000920A,
+ 14323: 0x00009225,
+ 14324: 0x00009203,
+ 14325: 0x0000921A,
+ 14326: 0x00009226,
+ 14327: 0x0000920F,
+ 14328: 0x0000920C,
+ 14329: 0x00009200,
+ 14330: 0x00009212,
+ 14331: 0x000091FF,
+ 14332: 0x000091FD,
+ 14333: 0x00009206,
+ 14334: 0x00009204,
+ 14335: 0x00009227,
+ 14336: 0x00009202,
+ 14337: 0x0000921C,
+ 14338: 0x00009224,
+ 14339: 0x00009219,
+ 14340: 0x00009217,
+ 14341: 0x00009205,
+ 14342: 0x00009216,
+ 14343: 0x0000957B,
+ 14344: 0x0000958D,
+ 14345: 0x0000958C,
+ 14346: 0x00009590,
+ 14347: 0x00009687,
+ 14348: 0x0000967E,
+ 14349: 0x00009688,
+ 14350: 0x00009689,
+ 14351: 0x00009683,
+ 14352: 0x00009680,
+ 14353: 0x000096C2,
+ 14354: 0x000096C8,
+ 14355: 0x000096C3,
+ 14356: 0x000096F1,
+ 14357: 0x000096F0,
+ 14358: 0x0000976C,
+ 14359: 0x00009770,
+ 14360: 0x0000976E,
+ 14361: 0x00009807,
+ 14362: 0x000098A9,
+ 14363: 0x000098EB,
+ 14364: 0x00009CE6,
+ 14365: 0x00009EF9,
+ 14366: 0x00004E83,
+ 14367: 0x00004E84,
+ 14368: 0x00004EB6,
+ 14369: 0x000050BD,
+ 14370: 0x000050BF,
+ 14371: 0x000050C6,
+ 14372: 0x000050AE,
+ 14373: 0x000050C4,
+ 14374: 0x000050CA,
+ 14375: 0x000050B4,
+ 14376: 0x000050C8,
+ 14377: 0x000050C2,
+ 14378: 0x000050B0,
+ 14379: 0x000050C1,
+ 14380: 0x000050BA,
+ 14381: 0x000050B1,
+ 14382: 0x000050CB,
+ 14383: 0x000050C9,
+ 14384: 0x000050B6,
+ 14385: 0x000050B8,
+ 14386: 0x000051D7,
+ 14387: 0x0000527A,
+ 14388: 0x00005278,
+ 14389: 0x0000527B,
+ 14390: 0x0000527C,
+ 14391: 0x000055C3,
+ 14392: 0x000055DB,
+ 14393: 0x000055CC,
+ 14394: 0x000055D0,
+ 14395: 0x000055CB,
+ 14396: 0x000055CA,
+ 14397: 0x000055DD,
+ 14398: 0x000055C0,
+ 14399: 0x000055D4,
+ 14400: 0x000055C4,
+ 14401: 0x000055E9,
+ 14402: 0x000055BF,
+ 14403: 0x000055D2,
+ 14404: 0x0000558D,
+ 14405: 0x000055CF,
+ 14406: 0x000055D5,
+ 14407: 0x000055E2,
+ 14408: 0x000055D6,
+ 14409: 0x000055C8,
+ 14410: 0x000055F2,
+ 14411: 0x000055CD,
+ 14412: 0x000055D9,
+ 14413: 0x000055C2,
+ 14414: 0x00005714,
+ 14415: 0x00005853,
+ 14416: 0x00005868,
+ 14417: 0x00005864,
+ 14418: 0x0000584F,
+ 14419: 0x0000584D,
+ 14420: 0x00005849,
+ 14421: 0x0000586F,
+ 14422: 0x00005855,
+ 14423: 0x0000584E,
+ 14424: 0x0000585D,
+ 14425: 0x00005859,
+ 14426: 0x00005865,
+ 14427: 0x0000585B,
+ 14428: 0x0000583D,
+ 14429: 0x00005863,
+ 14430: 0x00005871,
+ 14431: 0x000058FC,
+ 14432: 0x00005AC7,
+ 14433: 0x00005AC4,
+ 14434: 0x00005ACB,
+ 14435: 0x00005ABA,
+ 14436: 0x00005AB8,
+ 14437: 0x00005AB1,
+ 14438: 0x00005AB5,
+ 14439: 0x00005AB0,
+ 14440: 0x00005ABF,
+ 14441: 0x00005AC8,
+ 14442: 0x00005ABB,
+ 14443: 0x00005AC6,
+ 14444: 0x00005AB7,
+ 14445: 0x00005AC0,
+ 14446: 0x00005ACA,
+ 14447: 0x00005AB4,
+ 14448: 0x00005AB6,
+ 14449: 0x00005ACD,
+ 14450: 0x00005AB9,
+ 14451: 0x00005A90,
+ 14452: 0x00005BD6,
+ 14453: 0x00005BD8,
+ 14454: 0x00005BD9,
+ 14455: 0x00005C1F,
+ 14456: 0x00005C33,
+ 14457: 0x00005D71,
+ 14458: 0x00005D63,
+ 14459: 0x00005D4A,
+ 14460: 0x00005D65,
+ 14461: 0x00005D72,
+ 14462: 0x00005D6C,
+ 14463: 0x00005D5E,
+ 14464: 0x00005D68,
+ 14465: 0x00005D67,
+ 14466: 0x00005D62,
+ 14467: 0x00005DF0,
+ 14468: 0x00005E4F,
+ 14469: 0x00005E4E,
+ 14470: 0x00005E4A,
+ 14471: 0x00005E4D,
+ 14472: 0x00005E4B,
+ 14473: 0x00005EC5,
+ 14474: 0x00005ECC,
+ 14475: 0x00005EC6,
+ 14476: 0x00005ECB,
+ 14477: 0x00005EC7,
+ 14478: 0x00005F40,
+ 14479: 0x00005FAF,
+ 14480: 0x00005FAD,
+ 14481: 0x000060F7,
+ 14482: 0x00006149,
+ 14483: 0x0000614A,
+ 14484: 0x0000612B,
+ 14485: 0x00006145,
+ 14486: 0x00006136,
+ 14487: 0x00006132,
+ 14488: 0x0000612E,
+ 14489: 0x00006146,
+ 14490: 0x0000612F,
+ 14491: 0x0000614F,
+ 14492: 0x00006129,
+ 14493: 0x00006140,
+ 14494: 0x00006220,
+ 14495: 0x00009168,
+ 14496: 0x00006223,
+ 14497: 0x00006225,
+ 14498: 0x00006224,
+ 14499: 0x000063C5,
+ 14500: 0x000063F1,
+ 14501: 0x000063EB,
+ 14502: 0x00006410,
+ 14503: 0x00006412,
+ 14504: 0x00006409,
+ 14505: 0x00006420,
+ 14506: 0x00006424,
+ 14507: 0x00006433,
+ 14508: 0x00006443,
+ 14509: 0x0000641F,
+ 14510: 0x00006415,
+ 14511: 0x00006418,
+ 14512: 0x00006439,
+ 14513: 0x00006437,
+ 14514: 0x00006422,
+ 14515: 0x00006423,
+ 14516: 0x0000640C,
+ 14517: 0x00006426,
+ 14518: 0x00006430,
+ 14519: 0x00006428,
+ 14520: 0x00006441,
+ 14521: 0x00006435,
+ 14522: 0x0000642F,
+ 14523: 0x0000640A,
+ 14524: 0x0000641A,
+ 14525: 0x00006440,
+ 14526: 0x00006425,
+ 14527: 0x00006427,
+ 14528: 0x0000640B,
+ 14529: 0x000063E7,
+ 14530: 0x0000641B,
+ 14531: 0x0000642E,
+ 14532: 0x00006421,
+ 14533: 0x0000640E,
+ 14534: 0x0000656F,
+ 14535: 0x00006592,
+ 14536: 0x000065D3,
+ 14537: 0x00006686,
+ 14538: 0x0000668C,
+ 14539: 0x00006695,
+ 14540: 0x00006690,
+ 14541: 0x0000668B,
+ 14542: 0x0000668A,
+ 14543: 0x00006699,
+ 14544: 0x00006694,
+ 14545: 0x00006678,
+ 14546: 0x00006720,
+ 14547: 0x00006966,
+ 14548: 0x0000695F,
+ 14549: 0x00006938,
+ 14550: 0x0000694E,
+ 14551: 0x00006962,
+ 14552: 0x00006971,
+ 14553: 0x0000693F,
+ 14554: 0x00006945,
+ 14555: 0x0000696A,
+ 14556: 0x00006939,
+ 14557: 0x00006942,
+ 14558: 0x00006957,
+ 14559: 0x00006959,
+ 14560: 0x0000697A,
+ 14561: 0x00006948,
+ 14562: 0x00006949,
+ 14563: 0x00006935,
+ 14564: 0x0000696C,
+ 14565: 0x00006933,
+ 14566: 0x0000693D,
+ 14567: 0x00006965,
+ 14568: 0x000068F0,
+ 14569: 0x00006978,
+ 14570: 0x00006934,
+ 14571: 0x00006969,
+ 14572: 0x00006940,
+ 14573: 0x0000696F,
+ 14574: 0x00006944,
+ 14575: 0x00006976,
+ 14576: 0x00006958,
+ 14577: 0x00006941,
+ 14578: 0x00006974,
+ 14579: 0x0000694C,
+ 14580: 0x0000693B,
+ 14581: 0x0000694B,
+ 14582: 0x00006937,
+ 14583: 0x0000695C,
+ 14584: 0x0000694F,
+ 14585: 0x00006951,
+ 14586: 0x00006932,
+ 14587: 0x00006952,
+ 14588: 0x0000692F,
+ 14589: 0x0000697B,
+ 14590: 0x0000693C,
+ 14591: 0x00006B46,
+ 14592: 0x00006B45,
+ 14593: 0x00006B43,
+ 14594: 0x00006B42,
+ 14595: 0x00006B48,
+ 14596: 0x00006B41,
+ 14597: 0x00006B9B,
+ 14598: 0x0000FA0D,
+ 14599: 0x00006BFB,
+ 14600: 0x00006BFC,
+ 14601: 0x00006BF9,
+ 14602: 0x00006BF7,
+ 14603: 0x00006BF8,
+ 14604: 0x00006E9B,
+ 14605: 0x00006ED6,
+ 14606: 0x00006EC8,
+ 14607: 0x00006E8F,
+ 14608: 0x00006EC0,
+ 14609: 0x00006E9F,
+ 14610: 0x00006E93,
+ 14611: 0x00006E94,
+ 14612: 0x00006EA0,
+ 14613: 0x00006EB1,
+ 14614: 0x00006EB9,
+ 14615: 0x00006EC6,
+ 14616: 0x00006ED2,
+ 14617: 0x00006EBD,
+ 14618: 0x00006EC1,
+ 14619: 0x00006E9E,
+ 14620: 0x00006EC9,
+ 14621: 0x00006EB7,
+ 14622: 0x00006EB0,
+ 14623: 0x00006ECD,
+ 14624: 0x00006EA6,
+ 14625: 0x00006ECF,
+ 14626: 0x00006EB2,
+ 14627: 0x00006EBE,
+ 14628: 0x00006EC3,
+ 14629: 0x00006EDC,
+ 14630: 0x00006ED8,
+ 14631: 0x00006E99,
+ 14632: 0x00006E92,
+ 14633: 0x00006E8E,
+ 14634: 0x00006E8D,
+ 14635: 0x00006EA4,
+ 14636: 0x00006EA1,
+ 14637: 0x00006EBF,
+ 14638: 0x00006EB3,
+ 14639: 0x00006ED0,
+ 14640: 0x00006ECA,
+ 14641: 0x00006E97,
+ 14642: 0x00006EAE,
+ 14643: 0x00006EA3,
+ 14644: 0x00007147,
+ 14645: 0x00007154,
+ 14646: 0x00007152,
+ 14647: 0x00007163,
+ 14648: 0x00007160,
+ 14649: 0x00007141,
+ 14650: 0x0000715D,
+ 14651: 0x00007162,
+ 14652: 0x00007172,
+ 14653: 0x00007178,
+ 14654: 0x0000716A,
+ 14655: 0x00007161,
+ 14656: 0x00007142,
+ 14657: 0x00007158,
+ 14658: 0x00007143,
+ 14659: 0x0000714B,
+ 14660: 0x00007170,
+ 14661: 0x0000715F,
+ 14662: 0x00007150,
+ 14663: 0x00007153,
+ 14664: 0x00007144,
+ 14665: 0x0000714D,
+ 14666: 0x0000715A,
+ 14667: 0x0000724F,
+ 14668: 0x0000728D,
+ 14669: 0x0000728C,
+ 14670: 0x00007291,
+ 14671: 0x00007290,
+ 14672: 0x0000728E,
+ 14673: 0x0000733C,
+ 14674: 0x00007342,
+ 14675: 0x0000733B,
+ 14676: 0x0000733A,
+ 14677: 0x00007340,
+ 14678: 0x0000734A,
+ 14679: 0x00007349,
+ 14680: 0x00007444,
+ 14681: 0x0000744A,
+ 14682: 0x0000744B,
+ 14683: 0x00007452,
+ 14684: 0x00007451,
+ 14685: 0x00007457,
+ 14686: 0x00007440,
+ 14687: 0x0000744F,
+ 14688: 0x00007450,
+ 14689: 0x0000744E,
+ 14690: 0x00007442,
+ 14691: 0x00007446,
+ 14692: 0x0000744D,
+ 14693: 0x00007454,
+ 14694: 0x000074E1,
+ 14695: 0x000074FF,
+ 14696: 0x000074FE,
+ 14697: 0x000074FD,
+ 14698: 0x0000751D,
+ 14699: 0x00007579,
+ 14700: 0x00007577,
+ 14701: 0x00006983,
+ 14702: 0x000075EF,
+ 14703: 0x0000760F,
+ 14704: 0x00007603,
+ 14705: 0x000075F7,
+ 14706: 0x000075FE,
+ 14707: 0x000075FC,
+ 14708: 0x000075F9,
+ 14709: 0x000075F8,
+ 14710: 0x00007610,
+ 14711: 0x000075FB,
+ 14712: 0x000075F6,
+ 14713: 0x000075ED,
+ 14714: 0x000075F5,
+ 14715: 0x000075FD,
+ 14716: 0x00007699,
+ 14717: 0x000076B5,
+ 14718: 0x000076DD,
+ 14719: 0x00007755,
+ 14720: 0x0000775F,
+ 14721: 0x00007760,
+ 14722: 0x00007752,
+ 14723: 0x00007756,
+ 14724: 0x0000775A,
+ 14725: 0x00007769,
+ 14726: 0x00007767,
+ 14727: 0x00007754,
+ 14728: 0x00007759,
+ 14729: 0x0000776D,
+ 14730: 0x000077E0,
+ 14731: 0x00007887,
+ 14732: 0x0000789A,
+ 14733: 0x00007894,
+ 14734: 0x0000788F,
+ 14735: 0x00007884,
+ 14736: 0x00007895,
+ 14737: 0x00007885,
+ 14738: 0x00007886,
+ 14739: 0x000078A1,
+ 14740: 0x00007883,
+ 14741: 0x00007879,
+ 14742: 0x00007899,
+ 14743: 0x00007880,
+ 14744: 0x00007896,
+ 14745: 0x0000787B,
+ 14746: 0x0000797C,
+ 14747: 0x00007982,
+ 14748: 0x0000797D,
+ 14749: 0x00007979,
+ 14750: 0x00007A11,
+ 14751: 0x00007A18,
+ 14752: 0x00007A19,
+ 14753: 0x00007A12,
+ 14754: 0x00007A17,
+ 14755: 0x00007A15,
+ 14756: 0x00007A22,
+ 14757: 0x00007A13,
+ 14758: 0x00007A1B,
+ 14759: 0x00007A10,
+ 14760: 0x00007AA3,
+ 14761: 0x00007AA2,
+ 14762: 0x00007A9E,
+ 14763: 0x00007AEB,
+ 14764: 0x00007B66,
+ 14765: 0x00007B64,
+ 14766: 0x00007B6D,
+ 14767: 0x00007B74,
+ 14768: 0x00007B69,
+ 14769: 0x00007B72,
+ 14770: 0x00007B65,
+ 14771: 0x00007B73,
+ 14772: 0x00007B71,
+ 14773: 0x00007B70,
+ 14774: 0x00007B61,
+ 14775: 0x00007B78,
+ 14776: 0x00007B76,
+ 14777: 0x00007B63,
+ 14778: 0x00007CB2,
+ 14779: 0x00007CB4,
+ 14780: 0x00007CAF,
+ 14781: 0x00007D88,
+ 14782: 0x00007D86,
+ 14783: 0x00007D80,
+ 14784: 0x00007D8D,
+ 14785: 0x00007D7F,
+ 14786: 0x00007D85,
+ 14787: 0x00007D7A,
+ 14788: 0x00007D8E,
+ 14789: 0x00007D7B,
+ 14790: 0x00007D83,
+ 14791: 0x00007D7C,
+ 14792: 0x00007D8C,
+ 14793: 0x00007D94,
+ 14794: 0x00007D84,
+ 14795: 0x00007D7D,
+ 14796: 0x00007D92,
+ 14797: 0x00007F6D,
+ 14798: 0x00007F6B,
+ 14799: 0x00007F67,
+ 14800: 0x00007F68,
+ 14801: 0x00007F6C,
+ 14802: 0x00007FA6,
+ 14803: 0x00007FA5,
+ 14804: 0x00007FA7,
+ 14805: 0x00007FDB,
+ 14806: 0x00007FDC,
+ 14807: 0x00008021,
+ 14808: 0x00008164,
+ 14809: 0x00008160,
+ 14810: 0x00008177,
+ 14811: 0x0000815C,
+ 14812: 0x00008169,
+ 14813: 0x0000815B,
+ 14814: 0x00008162,
+ 14815: 0x00008172,
+ 14816: 0x00006721,
+ 14817: 0x0000815E,
+ 14818: 0x00008176,
+ 14819: 0x00008167,
+ 14820: 0x0000816F,
+ 14821: 0x00008144,
+ 14822: 0x00008161,
+ 14823: 0x0000821D,
+ 14824: 0x00008249,
+ 14825: 0x00008244,
+ 14826: 0x00008240,
+ 14827: 0x00008242,
+ 14828: 0x00008245,
+ 14829: 0x000084F1,
+ 14830: 0x0000843F,
+ 14831: 0x00008456,
+ 14832: 0x00008476,
+ 14833: 0x00008479,
+ 14834: 0x0000848F,
+ 14835: 0x0000848D,
+ 14836: 0x00008465,
+ 14837: 0x00008451,
+ 14838: 0x00008440,
+ 14839: 0x00008486,
+ 14840: 0x00008467,
+ 14841: 0x00008430,
+ 14842: 0x0000844D,
+ 14843: 0x0000847D,
+ 14844: 0x0000845A,
+ 14845: 0x00008459,
+ 14846: 0x00008474,
+ 14847: 0x00008473,
+ 14848: 0x0000845D,
+ 14849: 0x00008507,
+ 14850: 0x0000845E,
+ 14851: 0x00008437,
+ 14852: 0x0000843A,
+ 14853: 0x00008434,
+ 14854: 0x0000847A,
+ 14855: 0x00008443,
+ 14856: 0x00008478,
+ 14857: 0x00008432,
+ 14858: 0x00008445,
+ 14859: 0x00008429,
+ 14860: 0x000083D9,
+ 14861: 0x0000844B,
+ 14862: 0x0000842F,
+ 14863: 0x00008442,
+ 14864: 0x0000842D,
+ 14865: 0x0000845F,
+ 14866: 0x00008470,
+ 14867: 0x00008439,
+ 14868: 0x0000844E,
+ 14869: 0x0000844C,
+ 14870: 0x00008452,
+ 14871: 0x0000846F,
+ 14872: 0x000084C5,
+ 14873: 0x0000848E,
+ 14874: 0x0000843B,
+ 14875: 0x00008447,
+ 14876: 0x00008436,
+ 14877: 0x00008433,
+ 14878: 0x00008468,
+ 14879: 0x0000847E,
+ 14880: 0x00008444,
+ 14881: 0x0000842B,
+ 14882: 0x00008460,
+ 14883: 0x00008454,
+ 14884: 0x0000846E,
+ 14885: 0x00008450,
+ 14886: 0x0000870B,
+ 14887: 0x00008704,
+ 14888: 0x000086F7,
+ 14889: 0x0000870C,
+ 14890: 0x000086FA,
+ 14891: 0x000086D6,
+ 14892: 0x000086F5,
+ 14893: 0x0000874D,
+ 14894: 0x000086F8,
+ 14895: 0x0000870E,
+ 14896: 0x00008709,
+ 14897: 0x00008701,
+ 14898: 0x000086F6,
+ 14899: 0x0000870D,
+ 14900: 0x00008705,
+ 14901: 0x000088D6,
+ 14902: 0x000088CB,
+ 14903: 0x000088CD,
+ 14904: 0x000088CE,
+ 14905: 0x000088DE,
+ 14906: 0x000088DB,
+ 14907: 0x000088DA,
+ 14908: 0x000088CC,
+ 14909: 0x000088D0,
+ 14910: 0x00008985,
+ 14911: 0x0000899B,
+ 14912: 0x000089DF,
+ 14913: 0x000089E5,
+ 14914: 0x000089E4,
+ 14915: 0x000089E1,
+ 14916: 0x000089E0,
+ 14917: 0x000089E2,
+ 14918: 0x000089DC,
+ 14919: 0x000089E6,
+ 14920: 0x00008A76,
+ 14921: 0x00008A86,
+ 14922: 0x00008A7F,
+ 14923: 0x00008A61,
+ 14924: 0x00008A3F,
+ 14925: 0x00008A77,
+ 14926: 0x00008A82,
+ 14927: 0x00008A84,
+ 14928: 0x00008A75,
+ 14929: 0x00008A83,
+ 14930: 0x00008A81,
+ 14931: 0x00008A74,
+ 14932: 0x00008A7A,
+ 14933: 0x00008C3C,
+ 14934: 0x00008C4B,
+ 14935: 0x00008C4A,
+ 14936: 0x00008C65,
+ 14937: 0x00008C64,
+ 14938: 0x00008C66,
+ 14939: 0x00008C86,
+ 14940: 0x00008C84,
+ 14941: 0x00008C85,
+ 14942: 0x00008CCC,
+ 14943: 0x00008D68,
+ 14944: 0x00008D69,
+ 14945: 0x00008D91,
+ 14946: 0x00008D8C,
+ 14947: 0x00008D8E,
+ 14948: 0x00008D8F,
+ 14949: 0x00008D8D,
+ 14950: 0x00008D93,
+ 14951: 0x00008D94,
+ 14952: 0x00008D90,
+ 14953: 0x00008D92,
+ 14954: 0x00008DF0,
+ 14955: 0x00008DE0,
+ 14956: 0x00008DEC,
+ 14957: 0x00008DF1,
+ 14958: 0x00008DEE,
+ 14959: 0x00008DD0,
+ 14960: 0x00008DE9,
+ 14961: 0x00008DE3,
+ 14962: 0x00008DE2,
+ 14963: 0x00008DE7,
+ 14964: 0x00008DF2,
+ 14965: 0x00008DEB,
+ 14966: 0x00008DF4,
+ 14967: 0x00008F06,
+ 14968: 0x00008EFF,
+ 14969: 0x00008F01,
+ 14970: 0x00008F00,
+ 14971: 0x00008F05,
+ 14972: 0x00008F07,
+ 14973: 0x00008F08,
+ 14974: 0x00008F02,
+ 14975: 0x00008F0B,
+ 14976: 0x00009052,
+ 14977: 0x0000903F,
+ 14978: 0x00009044,
+ 14979: 0x00009049,
+ 14980: 0x0000903D,
+ 14981: 0x00009110,
+ 14982: 0x0000910D,
+ 14983: 0x0000910F,
+ 14984: 0x00009111,
+ 14985: 0x00009116,
+ 14986: 0x00009114,
+ 14987: 0x0000910B,
+ 14988: 0x0000910E,
+ 14989: 0x0000916E,
+ 14990: 0x0000916F,
+ 14991: 0x00009248,
+ 14992: 0x00009252,
+ 14993: 0x00009230,
+ 14994: 0x0000923A,
+ 14995: 0x00009266,
+ 14996: 0x00009233,
+ 14997: 0x00009265,
+ 14998: 0x0000925E,
+ 14999: 0x00009283,
+ 15000: 0x0000922E,
+ 15001: 0x0000924A,
+ 15002: 0x00009246,
+ 15003: 0x0000926D,
+ 15004: 0x0000926C,
+ 15005: 0x0000924F,
+ 15006: 0x00009260,
+ 15007: 0x00009267,
+ 15008: 0x0000926F,
+ 15009: 0x00009236,
+ 15010: 0x00009261,
+ 15011: 0x00009270,
+ 15012: 0x00009231,
+ 15013: 0x00009254,
+ 15014: 0x00009263,
+ 15015: 0x00009250,
+ 15016: 0x00009272,
+ 15017: 0x0000924E,
+ 15018: 0x00009253,
+ 15019: 0x0000924C,
+ 15020: 0x00009256,
+ 15021: 0x00009232,
+ 15022: 0x0000959F,
+ 15023: 0x0000959C,
+ 15024: 0x0000959E,
+ 15025: 0x0000959B,
+ 15026: 0x00009692,
+ 15027: 0x00009693,
+ 15028: 0x00009691,
+ 15029: 0x00009697,
+ 15030: 0x000096CE,
+ 15031: 0x000096FA,
+ 15032: 0x000096FD,
+ 15033: 0x000096F8,
+ 15034: 0x000096F5,
+ 15035: 0x00009773,
+ 15036: 0x00009777,
+ 15037: 0x00009778,
+ 15038: 0x00009772,
+ 15039: 0x0000980F,
+ 15040: 0x0000980D,
+ 15041: 0x0000980E,
+ 15042: 0x000098AC,
+ 15043: 0x000098F6,
+ 15044: 0x000098F9,
+ 15045: 0x000099AF,
+ 15046: 0x000099B2,
+ 15047: 0x000099B0,
+ 15048: 0x000099B5,
+ 15049: 0x00009AAD,
+ 15050: 0x00009AAB,
+ 15051: 0x00009B5B,
+ 15052: 0x00009CEA,
+ 15053: 0x00009CED,
+ 15054: 0x00009CE7,
+ 15055: 0x00009E80,
+ 15056: 0x00009EFD,
+ 15057: 0x000050E6,
+ 15058: 0x000050D4,
+ 15059: 0x000050D7,
+ 15060: 0x000050E8,
+ 15061: 0x000050F3,
+ 15062: 0x000050DB,
+ 15063: 0x000050EA,
+ 15064: 0x000050DD,
+ 15065: 0x000050E4,
+ 15066: 0x000050D3,
+ 15067: 0x000050EC,
+ 15068: 0x000050F0,
+ 15069: 0x000050EF,
+ 15070: 0x000050E3,
+ 15071: 0x000050E0,
+ 15072: 0x000051D8,
+ 15073: 0x00005280,
+ 15074: 0x00005281,
+ 15075: 0x000052E9,
+ 15076: 0x000052EB,
+ 15077: 0x00005330,
+ 15078: 0x000053AC,
+ 15079: 0x00005627,
+ 15080: 0x00005615,
+ 15081: 0x0000560C,
+ 15082: 0x00005612,
+ 15083: 0x000055FC,
+ 15084: 0x0000560F,
+ 15085: 0x0000561C,
+ 15086: 0x00005601,
+ 15087: 0x00005613,
+ 15088: 0x00005602,
+ 15089: 0x000055FA,
+ 15090: 0x0000561D,
+ 15091: 0x00005604,
+ 15092: 0x000055FF,
+ 15093: 0x000055F9,
+ 15094: 0x00005889,
+ 15095: 0x0000587C,
+ 15096: 0x00005890,
+ 15097: 0x00005898,
+ 15098: 0x00005886,
+ 15099: 0x00005881,
+ 15100: 0x0000587F,
+ 15101: 0x00005874,
+ 15102: 0x0000588B,
+ 15103: 0x0000587A,
+ 15104: 0x00005887,
+ 15105: 0x00005891,
+ 15106: 0x0000588E,
+ 15107: 0x00005876,
+ 15108: 0x00005882,
+ 15109: 0x00005888,
+ 15110: 0x0000587B,
+ 15111: 0x00005894,
+ 15112: 0x0000588F,
+ 15113: 0x000058FE,
+ 15114: 0x0000596B,
+ 15115: 0x00005ADC,
+ 15116: 0x00005AEE,
+ 15117: 0x00005AE5,
+ 15118: 0x00005AD5,
+ 15119: 0x00005AEA,
+ 15120: 0x00005ADA,
+ 15121: 0x00005AED,
+ 15122: 0x00005AEB,
+ 15123: 0x00005AF3,
+ 15124: 0x00005AE2,
+ 15125: 0x00005AE0,
+ 15126: 0x00005ADB,
+ 15127: 0x00005AEC,
+ 15128: 0x00005ADE,
+ 15129: 0x00005ADD,
+ 15130: 0x00005AD9,
+ 15131: 0x00005AE8,
+ 15132: 0x00005ADF,
+ 15133: 0x00005B77,
+ 15134: 0x00005BE0,
+ 15135: 0x00005BE3,
+ 15136: 0x00005C63,
+ 15137: 0x00005D82,
+ 15138: 0x00005D80,
+ 15139: 0x00005D7D,
+ 15140: 0x00005D86,
+ 15141: 0x00005D7A,
+ 15142: 0x00005D81,
+ 15143: 0x00005D77,
+ 15144: 0x00005D8A,
+ 15145: 0x00005D89,
+ 15146: 0x00005D88,
+ 15147: 0x00005D7E,
+ 15148: 0x00005D7C,
+ 15149: 0x00005D8D,
+ 15150: 0x00005D79,
+ 15151: 0x00005D7F,
+ 15152: 0x00005E58,
+ 15153: 0x00005E59,
+ 15154: 0x00005E53,
+ 15155: 0x00005ED8,
+ 15156: 0x00005ED1,
+ 15157: 0x00005ED7,
+ 15158: 0x00005ECE,
+ 15159: 0x00005EDC,
+ 15160: 0x00005ED5,
+ 15161: 0x00005ED9,
+ 15162: 0x00005ED2,
+ 15163: 0x00005ED4,
+ 15164: 0x00005F44,
+ 15165: 0x00005F43,
+ 15166: 0x00005F6F,
+ 15167: 0x00005FB6,
+ 15168: 0x0000612C,
+ 15169: 0x00006128,
+ 15170: 0x00006141,
+ 15171: 0x0000615E,
+ 15172: 0x00006171,
+ 15173: 0x00006173,
+ 15174: 0x00006152,
+ 15175: 0x00006153,
+ 15176: 0x00006172,
+ 15177: 0x0000616C,
+ 15178: 0x00006180,
+ 15179: 0x00006174,
+ 15180: 0x00006154,
+ 15181: 0x0000617A,
+ 15182: 0x0000615B,
+ 15183: 0x00006165,
+ 15184: 0x0000613B,
+ 15185: 0x0000616A,
+ 15186: 0x00006161,
+ 15187: 0x00006156,
+ 15188: 0x00006229,
+ 15189: 0x00006227,
+ 15190: 0x0000622B,
+ 15191: 0x0000642B,
+ 15192: 0x0000644D,
+ 15193: 0x0000645B,
+ 15194: 0x0000645D,
+ 15195: 0x00006474,
+ 15196: 0x00006476,
+ 15197: 0x00006472,
+ 15198: 0x00006473,
+ 15199: 0x0000647D,
+ 15200: 0x00006475,
+ 15201: 0x00006466,
+ 15202: 0x000064A6,
+ 15203: 0x0000644E,
+ 15204: 0x00006482,
+ 15205: 0x0000645E,
+ 15206: 0x0000645C,
+ 15207: 0x0000644B,
+ 15208: 0x00006453,
+ 15209: 0x00006460,
+ 15210: 0x00006450,
+ 15211: 0x0000647F,
+ 15212: 0x0000643F,
+ 15213: 0x0000646C,
+ 15214: 0x0000646B,
+ 15215: 0x00006459,
+ 15216: 0x00006465,
+ 15217: 0x00006477,
+ 15218: 0x00006573,
+ 15219: 0x000065A0,
+ 15220: 0x000066A1,
+ 15221: 0x000066A0,
+ 15222: 0x0000669F,
+ 15223: 0x00006705,
+ 15224: 0x00006704,
+ 15225: 0x00006722,
+ 15226: 0x000069B1,
+ 15227: 0x000069B6,
+ 15228: 0x000069C9,
+ 15229: 0x000069A0,
+ 15230: 0x000069CE,
+ 15231: 0x00006996,
+ 15232: 0x000069B0,
+ 15233: 0x000069AC,
+ 15234: 0x000069BC,
+ 15235: 0x00006991,
+ 15236: 0x00006999,
+ 15237: 0x0000698E,
+ 15238: 0x000069A7,
+ 15239: 0x0000698D,
+ 15240: 0x000069A9,
+ 15241: 0x000069BE,
+ 15242: 0x000069AF,
+ 15243: 0x000069BF,
+ 15244: 0x000069C4,
+ 15245: 0x000069BD,
+ 15246: 0x000069A4,
+ 15247: 0x000069D4,
+ 15248: 0x000069B9,
+ 15249: 0x000069CA,
+ 15250: 0x0000699A,
+ 15251: 0x000069CF,
+ 15252: 0x000069B3,
+ 15253: 0x00006993,
+ 15254: 0x000069AA,
+ 15255: 0x000069A1,
+ 15256: 0x0000699E,
+ 15257: 0x000069D9,
+ 15258: 0x00006997,
+ 15259: 0x00006990,
+ 15260: 0x000069C2,
+ 15261: 0x000069B5,
+ 15262: 0x000069A5,
+ 15263: 0x000069C6,
+ 15264: 0x00006B4A,
+ 15265: 0x00006B4D,
+ 15266: 0x00006B4B,
+ 15267: 0x00006B9E,
+ 15268: 0x00006B9F,
+ 15269: 0x00006BA0,
+ 15270: 0x00006BC3,
+ 15271: 0x00006BC4,
+ 15272: 0x00006BFE,
+ 15273: 0x00006ECE,
+ 15274: 0x00006EF5,
+ 15275: 0x00006EF1,
+ 15276: 0x00006F03,
+ 15277: 0x00006F25,
+ 15278: 0x00006EF8,
+ 15279: 0x00006F37,
+ 15280: 0x00006EFB,
+ 15281: 0x00006F2E,
+ 15282: 0x00006F09,
+ 15283: 0x00006F4E,
+ 15284: 0x00006F19,
+ 15285: 0x00006F1A,
+ 15286: 0x00006F27,
+ 15287: 0x00006F18,
+ 15288: 0x00006F3B,
+ 15289: 0x00006F12,
+ 15290: 0x00006EED,
+ 15291: 0x00006F0A,
+ 15292: 0x00006F36,
+ 15293: 0x00006F73,
+ 15294: 0x00006EF9,
+ 15295: 0x00006EEE,
+ 15296: 0x00006F2D,
+ 15297: 0x00006F40,
+ 15298: 0x00006F30,
+ 15299: 0x00006F3C,
+ 15300: 0x00006F35,
+ 15301: 0x00006EEB,
+ 15302: 0x00006F07,
+ 15303: 0x00006F0E,
+ 15304: 0x00006F43,
+ 15305: 0x00006F05,
+ 15306: 0x00006EFD,
+ 15307: 0x00006EF6,
+ 15308: 0x00006F39,
+ 15309: 0x00006F1C,
+ 15310: 0x00006EFC,
+ 15311: 0x00006F3A,
+ 15312: 0x00006F1F,
+ 15313: 0x00006F0D,
+ 15314: 0x00006F1E,
+ 15315: 0x00006F08,
+ 15316: 0x00006F21,
+ 15317: 0x00007187,
+ 15318: 0x00007190,
+ 15319: 0x00007189,
+ 15320: 0x00007180,
+ 15321: 0x00007185,
+ 15322: 0x00007182,
+ 15323: 0x0000718F,
+ 15324: 0x0000717B,
+ 15325: 0x00007186,
+ 15326: 0x00007181,
+ 15327: 0x00007197,
+ 15328: 0x00007244,
+ 15329: 0x00007253,
+ 15330: 0x00007297,
+ 15331: 0x00007295,
+ 15332: 0x00007293,
+ 15333: 0x00007343,
+ 15334: 0x0000734D,
+ 15335: 0x00007351,
+ 15336: 0x0000734C,
+ 15337: 0x00007462,
+ 15338: 0x00007473,
+ 15339: 0x00007471,
+ 15340: 0x00007475,
+ 15341: 0x00007472,
+ 15342: 0x00007467,
+ 15343: 0x0000746E,
+ 15344: 0x00007500,
+ 15345: 0x00007502,
+ 15346: 0x00007503,
+ 15347: 0x0000757D,
+ 15348: 0x00007590,
+ 15349: 0x00007616,
+ 15350: 0x00007608,
+ 15351: 0x0000760C,
+ 15352: 0x00007615,
+ 15353: 0x00007611,
+ 15354: 0x0000760A,
+ 15355: 0x00007614,
+ 15356: 0x000076B8,
+ 15357: 0x00007781,
+ 15358: 0x0000777C,
+ 15359: 0x00007785,
+ 15360: 0x00007782,
+ 15361: 0x0000776E,
+ 15362: 0x00007780,
+ 15363: 0x0000776F,
+ 15364: 0x0000777E,
+ 15365: 0x00007783,
+ 15366: 0x000078B2,
+ 15367: 0x000078AA,
+ 15368: 0x000078B4,
+ 15369: 0x000078AD,
+ 15370: 0x000078A8,
+ 15371: 0x0000787E,
+ 15372: 0x000078AB,
+ 15373: 0x0000789E,
+ 15374: 0x000078A5,
+ 15375: 0x000078A0,
+ 15376: 0x000078AC,
+ 15377: 0x000078A2,
+ 15378: 0x000078A4,
+ 15379: 0x00007998,
+ 15380: 0x0000798A,
+ 15381: 0x0000798B,
+ 15382: 0x00007996,
+ 15383: 0x00007995,
+ 15384: 0x00007994,
+ 15385: 0x00007993,
+ 15386: 0x00007997,
+ 15387: 0x00007988,
+ 15388: 0x00007992,
+ 15389: 0x00007990,
+ 15390: 0x00007A2B,
+ 15391: 0x00007A4A,
+ 15392: 0x00007A30,
+ 15393: 0x00007A2F,
+ 15394: 0x00007A28,
+ 15395: 0x00007A26,
+ 15396: 0x00007AA8,
+ 15397: 0x00007AAB,
+ 15398: 0x00007AAC,
+ 15399: 0x00007AEE,
+ 15400: 0x00007B88,
+ 15401: 0x00007B9C,
+ 15402: 0x00007B8A,
+ 15403: 0x00007B91,
+ 15404: 0x00007B90,
+ 15405: 0x00007B96,
+ 15406: 0x00007B8D,
+ 15407: 0x00007B8C,
+ 15408: 0x00007B9B,
+ 15409: 0x00007B8E,
+ 15410: 0x00007B85,
+ 15411: 0x00007B98,
+ 15412: 0x00005284,
+ 15413: 0x00007B99,
+ 15414: 0x00007BA4,
+ 15415: 0x00007B82,
+ 15416: 0x00007CBB,
+ 15417: 0x00007CBF,
+ 15418: 0x00007CBC,
+ 15419: 0x00007CBA,
+ 15420: 0x00007DA7,
+ 15421: 0x00007DB7,
+ 15422: 0x00007DC2,
+ 15423: 0x00007DA3,
+ 15424: 0x00007DAA,
+ 15425: 0x00007DC1,
+ 15426: 0x00007DC0,
+ 15427: 0x00007DC5,
+ 15428: 0x00007D9D,
+ 15429: 0x00007DCE,
+ 15430: 0x00007DC4,
+ 15431: 0x00007DC6,
+ 15432: 0x00007DCB,
+ 15433: 0x00007DCC,
+ 15434: 0x00007DAF,
+ 15435: 0x00007DB9,
+ 15436: 0x00007D96,
+ 15437: 0x00007DBC,
+ 15438: 0x00007D9F,
+ 15439: 0x00007DA6,
+ 15440: 0x00007DAE,
+ 15441: 0x00007DA9,
+ 15442: 0x00007DA1,
+ 15443: 0x00007DC9,
+ 15444: 0x00007F73,
+ 15445: 0x00007FE2,
+ 15446: 0x00007FE3,
+ 15447: 0x00007FE5,
+ 15448: 0x00007FDE,
+ 15449: 0x00008024,
+ 15450: 0x0000805D,
+ 15451: 0x0000805C,
+ 15452: 0x00008189,
+ 15453: 0x00008186,
+ 15454: 0x00008183,
+ 15455: 0x00008187,
+ 15456: 0x0000818D,
+ 15457: 0x0000818C,
+ 15458: 0x0000818B,
+ 15459: 0x00008215,
+ 15460: 0x00008497,
+ 15461: 0x000084A4,
+ 15462: 0x000084A1,
+ 15463: 0x0000849F,
+ 15464: 0x000084BA,
+ 15465: 0x000084CE,
+ 15466: 0x000084C2,
+ 15467: 0x000084AC,
+ 15468: 0x000084AE,
+ 15469: 0x000084AB,
+ 15470: 0x000084B9,
+ 15471: 0x000084B4,
+ 15472: 0x000084C1,
+ 15473: 0x000084CD,
+ 15474: 0x000084AA,
+ 15475: 0x0000849A,
+ 15476: 0x000084B1,
+ 15477: 0x000084D0,
+ 15478: 0x0000849D,
+ 15479: 0x000084A7,
+ 15480: 0x000084BB,
+ 15481: 0x000084A2,
+ 15482: 0x00008494,
+ 15483: 0x000084C7,
+ 15484: 0x000084CC,
+ 15485: 0x0000849B,
+ 15486: 0x000084A9,
+ 15487: 0x000084AF,
+ 15488: 0x000084A8,
+ 15489: 0x000084D6,
+ 15490: 0x00008498,
+ 15491: 0x000084B6,
+ 15492: 0x000084CF,
+ 15493: 0x000084A0,
+ 15494: 0x000084D7,
+ 15495: 0x000084D4,
+ 15496: 0x000084D2,
+ 15497: 0x000084DB,
+ 15498: 0x000084B0,
+ 15499: 0x00008491,
+ 15500: 0x00008661,
+ 15501: 0x00008733,
+ 15502: 0x00008723,
+ 15503: 0x00008728,
+ 15504: 0x0000876B,
+ 15505: 0x00008740,
+ 15506: 0x0000872E,
+ 15507: 0x0000871E,
+ 15508: 0x00008721,
+ 15509: 0x00008719,
+ 15510: 0x0000871B,
+ 15511: 0x00008743,
+ 15512: 0x0000872C,
+ 15513: 0x00008741,
+ 15514: 0x0000873E,
+ 15515: 0x00008746,
+ 15516: 0x00008720,
+ 15517: 0x00008732,
+ 15518: 0x0000872A,
+ 15519: 0x0000872D,
+ 15520: 0x0000873C,
+ 15521: 0x00008712,
+ 15522: 0x0000873A,
+ 15523: 0x00008731,
+ 15524: 0x00008735,
+ 15525: 0x00008742,
+ 15526: 0x00008726,
+ 15527: 0x00008727,
+ 15528: 0x00008738,
+ 15529: 0x00008724,
+ 15530: 0x0000871A,
+ 15531: 0x00008730,
+ 15532: 0x00008711,
+ 15533: 0x000088F7,
+ 15534: 0x000088E7,
+ 15535: 0x000088F1,
+ 15536: 0x000088F2,
+ 15537: 0x000088FA,
+ 15538: 0x000088FE,
+ 15539: 0x000088EE,
+ 15540: 0x000088FC,
+ 15541: 0x000088F6,
+ 15542: 0x000088FB,
+ 15543: 0x000088F0,
+ 15544: 0x000088EC,
+ 15545: 0x000088EB,
+ 15546: 0x0000899D,
+ 15547: 0x000089A1,
+ 15548: 0x0000899F,
+ 15549: 0x0000899E,
+ 15550: 0x000089E9,
+ 15551: 0x000089EB,
+ 15552: 0x000089E8,
+ 15553: 0x00008AAB,
+ 15554: 0x00008A99,
+ 15555: 0x00008A8B,
+ 15556: 0x00008A92,
+ 15557: 0x00008A8F,
+ 15558: 0x00008A96,
+ 15559: 0x00008C3D,
+ 15560: 0x00008C68,
+ 15561: 0x00008C69,
+ 15562: 0x00008CD5,
+ 15563: 0x00008CCF,
+ 15564: 0x00008CD7,
+ 15565: 0x00008D96,
+ 15566: 0x00008E09,
+ 15567: 0x00008E02,
+ 15568: 0x00008DFF,
+ 15569: 0x00008E0D,
+ 15570: 0x00008DFD,
+ 15571: 0x00008E0A,
+ 15572: 0x00008E03,
+ 15573: 0x00008E07,
+ 15574: 0x00008E06,
+ 15575: 0x00008E05,
+ 15576: 0x00008DFE,
+ 15577: 0x00008E00,
+ 15578: 0x00008E04,
+ 15579: 0x00008F10,
+ 15580: 0x00008F11,
+ 15581: 0x00008F0E,
+ 15582: 0x00008F0D,
+ 15583: 0x00009123,
+ 15584: 0x0000911C,
+ 15585: 0x00009120,
+ 15586: 0x00009122,
+ 15587: 0x0000911F,
+ 15588: 0x0000911D,
+ 15589: 0x0000911A,
+ 15590: 0x00009124,
+ 15591: 0x00009121,
+ 15592: 0x0000911B,
+ 15593: 0x0000917A,
+ 15594: 0x00009172,
+ 15595: 0x00009179,
+ 15596: 0x00009173,
+ 15597: 0x000092A5,
+ 15598: 0x000092A4,
+ 15599: 0x00009276,
+ 15600: 0x0000929B,
+ 15601: 0x0000927A,
+ 15602: 0x000092A0,
+ 15603: 0x00009294,
+ 15604: 0x000092AA,
+ 15605: 0x0000928D,
+ 15606: 0x000092A6,
+ 15607: 0x0000929A,
+ 15608: 0x000092AB,
+ 15609: 0x00009279,
+ 15610: 0x00009297,
+ 15611: 0x0000927F,
+ 15612: 0x000092A3,
+ 15613: 0x000092EE,
+ 15614: 0x0000928E,
+ 15615: 0x00009282,
+ 15616: 0x00009295,
+ 15617: 0x000092A2,
+ 15618: 0x0000927D,
+ 15619: 0x00009288,
+ 15620: 0x000092A1,
+ 15621: 0x0000928A,
+ 15622: 0x00009286,
+ 15623: 0x0000928C,
+ 15624: 0x00009299,
+ 15625: 0x000092A7,
+ 15626: 0x0000927E,
+ 15627: 0x00009287,
+ 15628: 0x000092A9,
+ 15629: 0x0000929D,
+ 15630: 0x0000928B,
+ 15631: 0x0000922D,
+ 15632: 0x0000969E,
+ 15633: 0x000096A1,
+ 15634: 0x000096FF,
+ 15635: 0x00009758,
+ 15636: 0x0000977D,
+ 15637: 0x0000977A,
+ 15638: 0x0000977E,
+ 15639: 0x00009783,
+ 15640: 0x00009780,
+ 15641: 0x00009782,
+ 15642: 0x0000977B,
+ 15643: 0x00009784,
+ 15644: 0x00009781,
+ 15645: 0x0000977F,
+ 15646: 0x000097CE,
+ 15647: 0x000097CD,
+ 15648: 0x00009816,
+ 15649: 0x000098AD,
+ 15650: 0x000098AE,
+ 15651: 0x00009902,
+ 15652: 0x00009900,
+ 15653: 0x00009907,
+ 15654: 0x0000999D,
+ 15655: 0x0000999C,
+ 15656: 0x000099C3,
+ 15657: 0x000099B9,
+ 15658: 0x000099BB,
+ 15659: 0x000099BA,
+ 15660: 0x000099C2,
+ 15661: 0x000099BD,
+ 15662: 0x000099C7,
+ 15663: 0x00009AB1,
+ 15664: 0x00009AE3,
+ 15665: 0x00009AE7,
+ 15666: 0x00009B3E,
+ 15667: 0x00009B3F,
+ 15668: 0x00009B60,
+ 15669: 0x00009B61,
+ 15670: 0x00009B5F,
+ 15671: 0x00009CF1,
+ 15672: 0x00009CF2,
+ 15673: 0x00009CF5,
+ 15674: 0x00009EA7,
+ 15675: 0x000050FF,
+ 15676: 0x00005103,
+ 15677: 0x00005130,
+ 15678: 0x000050F8,
+ 15679: 0x00005106,
+ 15680: 0x00005107,
+ 15681: 0x000050F6,
+ 15682: 0x000050FE,
+ 15683: 0x0000510B,
+ 15684: 0x0000510C,
+ 15685: 0x000050FD,
+ 15686: 0x0000510A,
+ 15687: 0x0000528B,
+ 15688: 0x0000528C,
+ 15689: 0x000052F1,
+ 15690: 0x000052EF,
+ 15691: 0x00005648,
+ 15692: 0x00005642,
+ 15693: 0x0000564C,
+ 15694: 0x00005635,
+ 15695: 0x00005641,
+ 15696: 0x0000564A,
+ 15697: 0x00005649,
+ 15698: 0x00005646,
+ 15699: 0x00005658,
+ 15700: 0x0000565A,
+ 15701: 0x00005640,
+ 15702: 0x00005633,
+ 15703: 0x0000563D,
+ 15704: 0x0000562C,
+ 15705: 0x0000563E,
+ 15706: 0x00005638,
+ 15707: 0x0000562A,
+ 15708: 0x0000563A,
+ 15709: 0x0000571A,
+ 15710: 0x000058AB,
+ 15711: 0x0000589D,
+ 15712: 0x000058B1,
+ 15713: 0x000058A0,
+ 15714: 0x000058A3,
+ 15715: 0x000058AF,
+ 15716: 0x000058AC,
+ 15717: 0x000058A5,
+ 15718: 0x000058A1,
+ 15719: 0x000058FF,
+ 15720: 0x00005AFF,
+ 15721: 0x00005AF4,
+ 15722: 0x00005AFD,
+ 15723: 0x00005AF7,
+ 15724: 0x00005AF6,
+ 15725: 0x00005B03,
+ 15726: 0x00005AF8,
+ 15727: 0x00005B02,
+ 15728: 0x00005AF9,
+ 15729: 0x00005B01,
+ 15730: 0x00005B07,
+ 15731: 0x00005B05,
+ 15732: 0x00005B0F,
+ 15733: 0x00005C67,
+ 15734: 0x00005D99,
+ 15735: 0x00005D97,
+ 15736: 0x00005D9F,
+ 15737: 0x00005D92,
+ 15738: 0x00005DA2,
+ 15739: 0x00005D93,
+ 15740: 0x00005D95,
+ 15741: 0x00005DA0,
+ 15742: 0x00005D9C,
+ 15743: 0x00005DA1,
+ 15744: 0x00005D9A,
+ 15745: 0x00005D9E,
+ 15746: 0x00005E69,
+ 15747: 0x00005E5D,
+ 15748: 0x00005E60,
+ 15749: 0x00005E5C,
+ 15750: 0x00007DF3,
+ 15751: 0x00005EDB,
+ 15752: 0x00005EDE,
+ 15753: 0x00005EE1,
+ 15754: 0x00005F49,
+ 15755: 0x00005FB2,
+ 15756: 0x0000618B,
+ 15757: 0x00006183,
+ 15758: 0x00006179,
+ 15759: 0x000061B1,
+ 15760: 0x000061B0,
+ 15761: 0x000061A2,
+ 15762: 0x00006189,
+ 15763: 0x0000619B,
+ 15764: 0x00006193,
+ 15765: 0x000061AF,
+ 15766: 0x000061AD,
+ 15767: 0x0000619F,
+ 15768: 0x00006192,
+ 15769: 0x000061AA,
+ 15770: 0x000061A1,
+ 15771: 0x0000618D,
+ 15772: 0x00006166,
+ 15773: 0x000061B3,
+ 15774: 0x0000622D,
+ 15775: 0x0000646E,
+ 15776: 0x00006470,
+ 15777: 0x00006496,
+ 15778: 0x000064A0,
+ 15779: 0x00006485,
+ 15780: 0x00006497,
+ 15781: 0x0000649C,
+ 15782: 0x0000648F,
+ 15783: 0x0000648B,
+ 15784: 0x0000648A,
+ 15785: 0x0000648C,
+ 15786: 0x000064A3,
+ 15787: 0x0000649F,
+ 15788: 0x00006468,
+ 15789: 0x000064B1,
+ 15790: 0x00006498,
+ 15791: 0x00006576,
+ 15792: 0x0000657A,
+ 15793: 0x00006579,
+ 15794: 0x0000657B,
+ 15795: 0x000065B2,
+ 15796: 0x000065B3,
+ 15797: 0x000066B5,
+ 15798: 0x000066B0,
+ 15799: 0x000066A9,
+ 15800: 0x000066B2,
+ 15801: 0x000066B7,
+ 15802: 0x000066AA,
+ 15803: 0x000066AF,
+ 15804: 0x00006A00,
+ 15805: 0x00006A06,
+ 15806: 0x00006A17,
+ 15807: 0x000069E5,
+ 15808: 0x000069F8,
+ 15809: 0x00006A15,
+ 15810: 0x000069F1,
+ 15811: 0x000069E4,
+ 15812: 0x00006A20,
+ 15813: 0x000069FF,
+ 15814: 0x000069EC,
+ 15815: 0x000069E2,
+ 15816: 0x00006A1B,
+ 15817: 0x00006A1D,
+ 15818: 0x000069FE,
+ 15819: 0x00006A27,
+ 15820: 0x000069F2,
+ 15821: 0x000069EE,
+ 15822: 0x00006A14,
+ 15823: 0x000069F7,
+ 15824: 0x000069E7,
+ 15825: 0x00006A40,
+ 15826: 0x00006A08,
+ 15827: 0x000069E6,
+ 15828: 0x000069FB,
+ 15829: 0x00006A0D,
+ 15830: 0x000069FC,
+ 15831: 0x000069EB,
+ 15832: 0x00006A09,
+ 15833: 0x00006A04,
+ 15834: 0x00006A18,
+ 15835: 0x00006A25,
+ 15836: 0x00006A0F,
+ 15837: 0x000069F6,
+ 15838: 0x00006A26,
+ 15839: 0x00006A07,
+ 15840: 0x000069F4,
+ 15841: 0x00006A16,
+ 15842: 0x00006B51,
+ 15843: 0x00006BA5,
+ 15844: 0x00006BA3,
+ 15845: 0x00006BA2,
+ 15846: 0x00006BA6,
+ 15847: 0x00006C01,
+ 15848: 0x00006C00,
+ 15849: 0x00006BFF,
+ 15850: 0x00006C02,
+ 15851: 0x00006F41,
+ 15852: 0x00006F26,
+ 15853: 0x00006F7E,
+ 15854: 0x00006F87,
+ 15855: 0x00006FC6,
+ 15856: 0x00006F92,
+ 15857: 0x00006F8D,
+ 15858: 0x00006F89,
+ 15859: 0x00006F8C,
+ 15860: 0x00006F62,
+ 15861: 0x00006F4F,
+ 15862: 0x00006F85,
+ 15863: 0x00006F5A,
+ 15864: 0x00006F96,
+ 15865: 0x00006F76,
+ 15866: 0x00006F6C,
+ 15867: 0x00006F82,
+ 15868: 0x00006F55,
+ 15869: 0x00006F72,
+ 15870: 0x00006F52,
+ 15871: 0x00006F50,
+ 15872: 0x00006F57,
+ 15873: 0x00006F94,
+ 15874: 0x00006F93,
+ 15875: 0x00006F5D,
+ 15876: 0x00006F00,
+ 15877: 0x00006F61,
+ 15878: 0x00006F6B,
+ 15879: 0x00006F7D,
+ 15880: 0x00006F67,
+ 15881: 0x00006F90,
+ 15882: 0x00006F53,
+ 15883: 0x00006F8B,
+ 15884: 0x00006F69,
+ 15885: 0x00006F7F,
+ 15886: 0x00006F95,
+ 15887: 0x00006F63,
+ 15888: 0x00006F77,
+ 15889: 0x00006F6A,
+ 15890: 0x00006F7B,
+ 15891: 0x000071B2,
+ 15892: 0x000071AF,
+ 15893: 0x0000719B,
+ 15894: 0x000071B0,
+ 15895: 0x000071A0,
+ 15896: 0x0000719A,
+ 15897: 0x000071A9,
+ 15898: 0x000071B5,
+ 15899: 0x0000719D,
+ 15900: 0x000071A5,
+ 15901: 0x0000719E,
+ 15902: 0x000071A4,
+ 15903: 0x000071A1,
+ 15904: 0x000071AA,
+ 15905: 0x0000719C,
+ 15906: 0x000071A7,
+ 15907: 0x000071B3,
+ 15908: 0x00007298,
+ 15909: 0x0000729A,
+ 15910: 0x00007358,
+ 15911: 0x00007352,
+ 15912: 0x0000735E,
+ 15913: 0x0000735F,
+ 15914: 0x00007360,
+ 15915: 0x0000735D,
+ 15916: 0x0000735B,
+ 15917: 0x00007361,
+ 15918: 0x0000735A,
+ 15919: 0x00007359,
+ 15920: 0x00007362,
+ 15921: 0x00007487,
+ 15922: 0x00007489,
+ 15923: 0x0000748A,
+ 15924: 0x00007486,
+ 15925: 0x00007481,
+ 15926: 0x0000747D,
+ 15927: 0x00007485,
+ 15928: 0x00007488,
+ 15929: 0x0000747C,
+ 15930: 0x00007479,
+ 15931: 0x00007508,
+ 15932: 0x00007507,
+ 15933: 0x0000757E,
+ 15934: 0x00007625,
+ 15935: 0x0000761E,
+ 15936: 0x00007619,
+ 15937: 0x0000761D,
+ 15938: 0x0000761C,
+ 15939: 0x00007623,
+ 15940: 0x0000761A,
+ 15941: 0x00007628,
+ 15942: 0x0000761B,
+ 15943: 0x0000769C,
+ 15944: 0x0000769D,
+ 15945: 0x0000769E,
+ 15946: 0x0000769B,
+ 15947: 0x0000778D,
+ 15948: 0x0000778F,
+ 15949: 0x00007789,
+ 15950: 0x00007788,
+ 15951: 0x000078CD,
+ 15952: 0x000078BB,
+ 15953: 0x000078CF,
+ 15954: 0x000078CC,
+ 15955: 0x000078D1,
+ 15956: 0x000078CE,
+ 15957: 0x000078D4,
+ 15958: 0x000078C8,
+ 15959: 0x000078C3,
+ 15960: 0x000078C4,
+ 15961: 0x000078C9,
+ 15962: 0x0000799A,
+ 15963: 0x000079A1,
+ 15964: 0x000079A0,
+ 15965: 0x0000799C,
+ 15966: 0x000079A2,
+ 15967: 0x0000799B,
+ 15968: 0x00006B76,
+ 15969: 0x00007A39,
+ 15970: 0x00007AB2,
+ 15971: 0x00007AB4,
+ 15972: 0x00007AB3,
+ 15973: 0x00007BB7,
+ 15974: 0x00007BCB,
+ 15975: 0x00007BBE,
+ 15976: 0x00007BAC,
+ 15977: 0x00007BCE,
+ 15978: 0x00007BAF,
+ 15979: 0x00007BB9,
+ 15980: 0x00007BCA,
+ 15981: 0x00007BB5,
+ 15982: 0x00007CC5,
+ 15983: 0x00007CC8,
+ 15984: 0x00007CCC,
+ 15985: 0x00007CCB,
+ 15986: 0x00007DF7,
+ 15987: 0x00007DDB,
+ 15988: 0x00007DEA,
+ 15989: 0x00007DE7,
+ 15990: 0x00007DD7,
+ 15991: 0x00007DE1,
+ 15992: 0x00007E03,
+ 15993: 0x00007DFA,
+ 15994: 0x00007DE6,
+ 15995: 0x00007DF6,
+ 15996: 0x00007DF1,
+ 15997: 0x00007DF0,
+ 15998: 0x00007DEE,
+ 15999: 0x00007DDF,
+ 16000: 0x00007F76,
+ 16001: 0x00007FAC,
+ 16002: 0x00007FB0,
+ 16003: 0x00007FAD,
+ 16004: 0x00007FED,
+ 16005: 0x00007FEB,
+ 16006: 0x00007FEA,
+ 16007: 0x00007FEC,
+ 16008: 0x00007FE6,
+ 16009: 0x00007FE8,
+ 16010: 0x00008064,
+ 16011: 0x00008067,
+ 16012: 0x000081A3,
+ 16013: 0x0000819F,
+ 16014: 0x0000819E,
+ 16015: 0x00008195,
+ 16016: 0x000081A2,
+ 16017: 0x00008199,
+ 16018: 0x00008197,
+ 16019: 0x00008216,
+ 16020: 0x0000824F,
+ 16021: 0x00008253,
+ 16022: 0x00008252,
+ 16023: 0x00008250,
+ 16024: 0x0000824E,
+ 16025: 0x00008251,
+ 16026: 0x00008524,
+ 16027: 0x0000853B,
+ 16028: 0x0000850F,
+ 16029: 0x00008500,
+ 16030: 0x00008529,
+ 16031: 0x0000850E,
+ 16032: 0x00008509,
+ 16033: 0x0000850D,
+ 16034: 0x0000851F,
+ 16035: 0x0000850A,
+ 16036: 0x00008527,
+ 16037: 0x0000851C,
+ 16038: 0x000084FB,
+ 16039: 0x0000852B,
+ 16040: 0x000084FA,
+ 16041: 0x00008508,
+ 16042: 0x0000850C,
+ 16043: 0x000084F4,
+ 16044: 0x0000852A,
+ 16045: 0x000084F2,
+ 16046: 0x00008515,
+ 16047: 0x000084F7,
+ 16048: 0x000084EB,
+ 16049: 0x000084F3,
+ 16050: 0x000084FC,
+ 16051: 0x00008512,
+ 16052: 0x000084EA,
+ 16053: 0x000084E9,
+ 16054: 0x00008516,
+ 16055: 0x000084FE,
+ 16056: 0x00008528,
+ 16057: 0x0000851D,
+ 16058: 0x0000852E,
+ 16059: 0x00008502,
+ 16060: 0x000084FD,
+ 16061: 0x0000851E,
+ 16062: 0x000084F6,
+ 16063: 0x00008531,
+ 16064: 0x00008526,
+ 16065: 0x000084E7,
+ 16066: 0x000084E8,
+ 16067: 0x000084F0,
+ 16068: 0x000084EF,
+ 16069: 0x000084F9,
+ 16070: 0x00008518,
+ 16071: 0x00008520,
+ 16072: 0x00008530,
+ 16073: 0x0000850B,
+ 16074: 0x00008519,
+ 16075: 0x0000852F,
+ 16076: 0x00008662,
+ 16077: 0x00008756,
+ 16078: 0x00008763,
+ 16079: 0x00008764,
+ 16080: 0x00008777,
+ 16081: 0x000087E1,
+ 16082: 0x00008773,
+ 16083: 0x00008758,
+ 16084: 0x00008754,
+ 16085: 0x0000875B,
+ 16086: 0x00008752,
+ 16087: 0x00008761,
+ 16088: 0x0000875A,
+ 16089: 0x00008751,
+ 16090: 0x0000875E,
+ 16091: 0x0000876D,
+ 16092: 0x0000876A,
+ 16093: 0x00008750,
+ 16094: 0x0000874E,
+ 16095: 0x0000875F,
+ 16096: 0x0000875D,
+ 16097: 0x0000876F,
+ 16098: 0x0000876C,
+ 16099: 0x0000877A,
+ 16100: 0x0000876E,
+ 16101: 0x0000875C,
+ 16102: 0x00008765,
+ 16103: 0x0000874F,
+ 16104: 0x0000877B,
+ 16105: 0x00008775,
+ 16106: 0x00008762,
+ 16107: 0x00008767,
+ 16108: 0x00008769,
+ 16109: 0x0000885A,
+ 16110: 0x00008905,
+ 16111: 0x0000890C,
+ 16112: 0x00008914,
+ 16113: 0x0000890B,
+ 16114: 0x00008917,
+ 16115: 0x00008918,
+ 16116: 0x00008919,
+ 16117: 0x00008906,
+ 16118: 0x00008916,
+ 16119: 0x00008911,
+ 16120: 0x0000890E,
+ 16121: 0x00008909,
+ 16122: 0x000089A2,
+ 16123: 0x000089A4,
+ 16124: 0x000089A3,
+ 16125: 0x000089ED,
+ 16126: 0x000089F0,
+ 16127: 0x000089EC,
+ 16128: 0x00008ACF,
+ 16129: 0x00008AC6,
+ 16130: 0x00008AB8,
+ 16131: 0x00008AD3,
+ 16132: 0x00008AD1,
+ 16133: 0x00008AD4,
+ 16134: 0x00008AD5,
+ 16135: 0x00008ABB,
+ 16136: 0x00008AD7,
+ 16137: 0x00008ABE,
+ 16138: 0x00008AC0,
+ 16139: 0x00008AC5,
+ 16140: 0x00008AD8,
+ 16141: 0x00008AC3,
+ 16142: 0x00008ABA,
+ 16143: 0x00008ABD,
+ 16144: 0x00008AD9,
+ 16145: 0x00008C3E,
+ 16146: 0x00008C4D,
+ 16147: 0x00008C8F,
+ 16148: 0x00008CE5,
+ 16149: 0x00008CDF,
+ 16150: 0x00008CD9,
+ 16151: 0x00008CE8,
+ 16152: 0x00008CDA,
+ 16153: 0x00008CDD,
+ 16154: 0x00008CE7,
+ 16155: 0x00008DA0,
+ 16156: 0x00008D9C,
+ 16157: 0x00008DA1,
+ 16158: 0x00008D9B,
+ 16159: 0x00008E20,
+ 16160: 0x00008E23,
+ 16161: 0x00008E25,
+ 16162: 0x00008E24,
+ 16163: 0x00008E2E,
+ 16164: 0x00008E15,
+ 16165: 0x00008E1B,
+ 16166: 0x00008E16,
+ 16167: 0x00008E11,
+ 16168: 0x00008E19,
+ 16169: 0x00008E26,
+ 16170: 0x00008E27,
+ 16171: 0x00008E14,
+ 16172: 0x00008E12,
+ 16173: 0x00008E18,
+ 16174: 0x00008E13,
+ 16175: 0x00008E1C,
+ 16176: 0x00008E17,
+ 16177: 0x00008E1A,
+ 16178: 0x00008F2C,
+ 16179: 0x00008F24,
+ 16180: 0x00008F18,
+ 16181: 0x00008F1A,
+ 16182: 0x00008F20,
+ 16183: 0x00008F23,
+ 16184: 0x00008F16,
+ 16185: 0x00008F17,
+ 16186: 0x00009073,
+ 16187: 0x00009070,
+ 16188: 0x0000906F,
+ 16189: 0x00009067,
+ 16190: 0x0000906B,
+ 16191: 0x0000912F,
+ 16192: 0x0000912B,
+ 16193: 0x00009129,
+ 16194: 0x0000912A,
+ 16195: 0x00009132,
+ 16196: 0x00009126,
+ 16197: 0x0000912E,
+ 16198: 0x00009185,
+ 16199: 0x00009186,
+ 16200: 0x0000918A,
+ 16201: 0x00009181,
+ 16202: 0x00009182,
+ 16203: 0x00009184,
+ 16204: 0x00009180,
+ 16205: 0x000092D0,
+ 16206: 0x000092C3,
+ 16207: 0x000092C4,
+ 16208: 0x000092C0,
+ 16209: 0x000092D9,
+ 16210: 0x000092B6,
+ 16211: 0x000092CF,
+ 16212: 0x000092F1,
+ 16213: 0x000092DF,
+ 16214: 0x000092D8,
+ 16215: 0x000092E9,
+ 16216: 0x000092D7,
+ 16217: 0x000092DD,
+ 16218: 0x000092CC,
+ 16219: 0x000092EF,
+ 16220: 0x000092C2,
+ 16221: 0x000092E8,
+ 16222: 0x000092CA,
+ 16223: 0x000092C8,
+ 16224: 0x000092CE,
+ 16225: 0x000092E6,
+ 16226: 0x000092CD,
+ 16227: 0x000092D5,
+ 16228: 0x000092C9,
+ 16229: 0x000092E0,
+ 16230: 0x000092DE,
+ 16231: 0x000092E7,
+ 16232: 0x000092D1,
+ 16233: 0x000092D3,
+ 16234: 0x000092B5,
+ 16235: 0x000092E1,
+ 16236: 0x000092C6,
+ 16237: 0x000092B4,
+ 16238: 0x0000957C,
+ 16239: 0x000095AC,
+ 16240: 0x000095AB,
+ 16241: 0x000095AE,
+ 16242: 0x000095B0,
+ 16243: 0x000096A4,
+ 16244: 0x000096A2,
+ 16245: 0x000096D3,
+ 16246: 0x00009705,
+ 16247: 0x00009708,
+ 16248: 0x00009702,
+ 16249: 0x0000975A,
+ 16250: 0x0000978A,
+ 16251: 0x0000978E,
+ 16252: 0x00009788,
+ 16253: 0x000097D0,
+ 16254: 0x000097CF,
+ 16255: 0x0000981E,
+ 16256: 0x0000981D,
+ 16257: 0x00009826,
+ 16258: 0x00009829,
+ 16259: 0x00009828,
+ 16260: 0x00009820,
+ 16261: 0x0000981B,
+ 16262: 0x00009827,
+ 16263: 0x000098B2,
+ 16264: 0x00009908,
+ 16265: 0x000098FA,
+ 16266: 0x00009911,
+ 16267: 0x00009914,
+ 16268: 0x00009916,
+ 16269: 0x00009917,
+ 16270: 0x00009915,
+ 16271: 0x000099DC,
+ 16272: 0x000099CD,
+ 16273: 0x000099CF,
+ 16274: 0x000099D3,
+ 16275: 0x000099D4,
+ 16276: 0x000099CE,
+ 16277: 0x000099C9,
+ 16278: 0x000099D6,
+ 16279: 0x000099D8,
+ 16280: 0x000099CB,
+ 16281: 0x000099D7,
+ 16282: 0x000099CC,
+ 16283: 0x00009AB3,
+ 16284: 0x00009AEC,
+ 16285: 0x00009AEB,
+ 16286: 0x00009AF3,
+ 16287: 0x00009AF2,
+ 16288: 0x00009AF1,
+ 16289: 0x00009B46,
+ 16290: 0x00009B43,
+ 16291: 0x00009B67,
+ 16292: 0x00009B74,
+ 16293: 0x00009B71,
+ 16294: 0x00009B66,
+ 16295: 0x00009B76,
+ 16296: 0x00009B75,
+ 16297: 0x00009B70,
+ 16298: 0x00009B68,
+ 16299: 0x00009B64,
+ 16300: 0x00009B6C,
+ 16301: 0x00009CFC,
+ 16302: 0x00009CFA,
+ 16303: 0x00009CFD,
+ 16304: 0x00009CFF,
+ 16305: 0x00009CF7,
+ 16306: 0x00009D07,
+ 16307: 0x00009D00,
+ 16308: 0x00009CF9,
+ 16309: 0x00009CFB,
+ 16310: 0x00009D08,
+ 16311: 0x00009D05,
+ 16312: 0x00009D04,
+ 16313: 0x00009E83,
+ 16314: 0x00009ED3,
+ 16315: 0x00009F0F,
+ 16316: 0x00009F10,
+ 16317: 0x0000511C,
+ 16318: 0x00005113,
+ 16319: 0x00005117,
+ 16320: 0x0000511A,
+ 16321: 0x00005111,
+ 16322: 0x000051DE,
+ 16323: 0x00005334,
+ 16324: 0x000053E1,
+ 16325: 0x00005670,
+ 16326: 0x00005660,
+ 16327: 0x0000566E,
+ 16328: 0x00005673,
+ 16329: 0x00005666,
+ 16330: 0x00005663,
+ 16331: 0x0000566D,
+ 16332: 0x00005672,
+ 16333: 0x0000565E,
+ 16334: 0x00005677,
+ 16335: 0x0000571C,
+ 16336: 0x0000571B,
+ 16337: 0x000058C8,
+ 16338: 0x000058BD,
+ 16339: 0x000058C9,
+ 16340: 0x000058BF,
+ 16341: 0x000058BA,
+ 16342: 0x000058C2,
+ 16343: 0x000058BC,
+ 16344: 0x000058C6,
+ 16345: 0x00005B17,
+ 16346: 0x00005B19,
+ 16347: 0x00005B1B,
+ 16348: 0x00005B21,
+ 16349: 0x00005B14,
+ 16350: 0x00005B13,
+ 16351: 0x00005B10,
+ 16352: 0x00005B16,
+ 16353: 0x00005B28,
+ 16354: 0x00005B1A,
+ 16355: 0x00005B20,
+ 16356: 0x00005B1E,
+ 16357: 0x00005BEF,
+ 16358: 0x00005DAC,
+ 16359: 0x00005DB1,
+ 16360: 0x00005DA9,
+ 16361: 0x00005DA7,
+ 16362: 0x00005DB5,
+ 16363: 0x00005DB0,
+ 16364: 0x00005DAE,
+ 16365: 0x00005DAA,
+ 16366: 0x00005DA8,
+ 16367: 0x00005DB2,
+ 16368: 0x00005DAD,
+ 16369: 0x00005DAF,
+ 16370: 0x00005DB4,
+ 16371: 0x00005E67,
+ 16372: 0x00005E68,
+ 16373: 0x00005E66,
+ 16374: 0x00005E6F,
+ 16375: 0x00005EE9,
+ 16376: 0x00005EE7,
+ 16377: 0x00005EE6,
+ 16378: 0x00005EE8,
+ 16379: 0x00005EE5,
+ 16380: 0x00005F4B,
+ 16381: 0x00005FBC,
+ 16382: 0x0000619D,
+ 16383: 0x000061A8,
+ 16384: 0x00006196,
+ 16385: 0x000061C5,
+ 16386: 0x000061B4,
+ 16387: 0x000061C6,
+ 16388: 0x000061C1,
+ 16389: 0x000061CC,
+ 16390: 0x000061BA,
+ 16391: 0x000061BF,
+ 16392: 0x000061B8,
+ 16393: 0x0000618C,
+ 16394: 0x000064D7,
+ 16395: 0x000064D6,
+ 16396: 0x000064D0,
+ 16397: 0x000064CF,
+ 16398: 0x000064C9,
+ 16399: 0x000064BD,
+ 16400: 0x00006489,
+ 16401: 0x000064C3,
+ 16402: 0x000064DB,
+ 16403: 0x000064F3,
+ 16404: 0x000064D9,
+ 16405: 0x00006533,
+ 16406: 0x0000657F,
+ 16407: 0x0000657C,
+ 16408: 0x000065A2,
+ 16409: 0x000066C8,
+ 16410: 0x000066BE,
+ 16411: 0x000066C0,
+ 16412: 0x000066CA,
+ 16413: 0x000066CB,
+ 16414: 0x000066CF,
+ 16415: 0x000066BD,
+ 16416: 0x000066BB,
+ 16417: 0x000066BA,
+ 16418: 0x000066CC,
+ 16419: 0x00006723,
+ 16420: 0x00006A34,
+ 16421: 0x00006A66,
+ 16422: 0x00006A49,
+ 16423: 0x00006A67,
+ 16424: 0x00006A32,
+ 16425: 0x00006A68,
+ 16426: 0x00006A3E,
+ 16427: 0x00006A5D,
+ 16428: 0x00006A6D,
+ 16429: 0x00006A76,
+ 16430: 0x00006A5B,
+ 16431: 0x00006A51,
+ 16432: 0x00006A28,
+ 16433: 0x00006A5A,
+ 16434: 0x00006A3B,
+ 16435: 0x00006A3F,
+ 16436: 0x00006A41,
+ 16437: 0x00006A6A,
+ 16438: 0x00006A64,
+ 16439: 0x00006A50,
+ 16440: 0x00006A4F,
+ 16441: 0x00006A54,
+ 16442: 0x00006A6F,
+ 16443: 0x00006A69,
+ 16444: 0x00006A60,
+ 16445: 0x00006A3C,
+ 16446: 0x00006A5E,
+ 16447: 0x00006A56,
+ 16448: 0x00006A55,
+ 16449: 0x00006A4D,
+ 16450: 0x00006A4E,
+ 16451: 0x00006A46,
+ 16452: 0x00006B55,
+ 16453: 0x00006B54,
+ 16454: 0x00006B56,
+ 16455: 0x00006BA7,
+ 16456: 0x00006BAA,
+ 16457: 0x00006BAB,
+ 16458: 0x00006BC8,
+ 16459: 0x00006BC7,
+ 16460: 0x00006C04,
+ 16461: 0x00006C03,
+ 16462: 0x00006C06,
+ 16463: 0x00006FAD,
+ 16464: 0x00006FCB,
+ 16465: 0x00006FA3,
+ 16466: 0x00006FC7,
+ 16467: 0x00006FBC,
+ 16468: 0x00006FCE,
+ 16469: 0x00006FC8,
+ 16470: 0x00006F5E,
+ 16471: 0x00006FC4,
+ 16472: 0x00006FBD,
+ 16473: 0x00006F9E,
+ 16474: 0x00006FCA,
+ 16475: 0x00006FA8,
+ 16476: 0x00007004,
+ 16477: 0x00006FA5,
+ 16478: 0x00006FAE,
+ 16479: 0x00006FBA,
+ 16480: 0x00006FAC,
+ 16481: 0x00006FAA,
+ 16482: 0x00006FCF,
+ 16483: 0x00006FBF,
+ 16484: 0x00006FB8,
+ 16485: 0x00006FA2,
+ 16486: 0x00006FC9,
+ 16487: 0x00006FAB,
+ 16488: 0x00006FCD,
+ 16489: 0x00006FAF,
+ 16490: 0x00006FB2,
+ 16491: 0x00006FB0,
+ 16492: 0x000071C5,
+ 16493: 0x000071C2,
+ 16494: 0x000071BF,
+ 16495: 0x000071B8,
+ 16496: 0x000071D6,
+ 16497: 0x000071C0,
+ 16498: 0x000071C1,
+ 16499: 0x000071CB,
+ 16500: 0x000071D4,
+ 16501: 0x000071CA,
+ 16502: 0x000071C7,
+ 16503: 0x000071CF,
+ 16504: 0x000071BD,
+ 16505: 0x000071D8,
+ 16506: 0x000071BC,
+ 16507: 0x000071C6,
+ 16508: 0x000071DA,
+ 16509: 0x000071DB,
+ 16510: 0x0000729D,
+ 16511: 0x0000729E,
+ 16512: 0x00007369,
+ 16513: 0x00007366,
+ 16514: 0x00007367,
+ 16515: 0x0000736C,
+ 16516: 0x00007365,
+ 16517: 0x0000736B,
+ 16518: 0x0000736A,
+ 16519: 0x0000747F,
+ 16520: 0x0000749A,
+ 16521: 0x000074A0,
+ 16522: 0x00007494,
+ 16523: 0x00007492,
+ 16524: 0x00007495,
+ 16525: 0x000074A1,
+ 16526: 0x0000750B,
+ 16527: 0x00007580,
+ 16528: 0x0000762F,
+ 16529: 0x0000762D,
+ 16530: 0x00007631,
+ 16531: 0x0000763D,
+ 16532: 0x00007633,
+ 16533: 0x0000763C,
+ 16534: 0x00007635,
+ 16535: 0x00007632,
+ 16536: 0x00007630,
+ 16537: 0x000076BB,
+ 16538: 0x000076E6,
+ 16539: 0x0000779A,
+ 16540: 0x0000779D,
+ 16541: 0x000077A1,
+ 16542: 0x0000779C,
+ 16543: 0x0000779B,
+ 16544: 0x000077A2,
+ 16545: 0x000077A3,
+ 16546: 0x00007795,
+ 16547: 0x00007799,
+ 16548: 0x00007797,
+ 16549: 0x000078DD,
+ 16550: 0x000078E9,
+ 16551: 0x000078E5,
+ 16552: 0x000078EA,
+ 16553: 0x000078DE,
+ 16554: 0x000078E3,
+ 16555: 0x000078DB,
+ 16556: 0x000078E1,
+ 16557: 0x000078E2,
+ 16558: 0x000078ED,
+ 16559: 0x000078DF,
+ 16560: 0x000078E0,
+ 16561: 0x000079A4,
+ 16562: 0x00007A44,
+ 16563: 0x00007A48,
+ 16564: 0x00007A47,
+ 16565: 0x00007AB6,
+ 16566: 0x00007AB8,
+ 16567: 0x00007AB5,
+ 16568: 0x00007AB1,
+ 16569: 0x00007AB7,
+ 16570: 0x00007BDE,
+ 16571: 0x00007BE3,
+ 16572: 0x00007BE7,
+ 16573: 0x00007BDD,
+ 16574: 0x00007BD5,
+ 16575: 0x00007BE5,
+ 16576: 0x00007BDA,
+ 16577: 0x00007BE8,
+ 16578: 0x00007BF9,
+ 16579: 0x00007BD4,
+ 16580: 0x00007BEA,
+ 16581: 0x00007BE2,
+ 16582: 0x00007BDC,
+ 16583: 0x00007BEB,
+ 16584: 0x00007BD8,
+ 16585: 0x00007BDF,
+ 16586: 0x00007CD2,
+ 16587: 0x00007CD4,
+ 16588: 0x00007CD7,
+ 16589: 0x00007CD0,
+ 16590: 0x00007CD1,
+ 16591: 0x00007E12,
+ 16592: 0x00007E21,
+ 16593: 0x00007E17,
+ 16594: 0x00007E0C,
+ 16595: 0x00007E1F,
+ 16596: 0x00007E20,
+ 16597: 0x00007E13,
+ 16598: 0x00007E0E,
+ 16599: 0x00007E1C,
+ 16600: 0x00007E15,
+ 16601: 0x00007E1A,
+ 16602: 0x00007E22,
+ 16603: 0x00007E0B,
+ 16604: 0x00007E0F,
+ 16605: 0x00007E16,
+ 16606: 0x00007E0D,
+ 16607: 0x00007E14,
+ 16608: 0x00007E25,
+ 16609: 0x00007E24,
+ 16610: 0x00007F43,
+ 16611: 0x00007F7B,
+ 16612: 0x00007F7C,
+ 16613: 0x00007F7A,
+ 16614: 0x00007FB1,
+ 16615: 0x00007FEF,
+ 16616: 0x0000802A,
+ 16617: 0x00008029,
+ 16618: 0x0000806C,
+ 16619: 0x000081B1,
+ 16620: 0x000081A6,
+ 16621: 0x000081AE,
+ 16622: 0x000081B9,
+ 16623: 0x000081B5,
+ 16624: 0x000081AB,
+ 16625: 0x000081B0,
+ 16626: 0x000081AC,
+ 16627: 0x000081B4,
+ 16628: 0x000081B2,
+ 16629: 0x000081B7,
+ 16630: 0x000081A7,
+ 16631: 0x000081F2,
+ 16632: 0x00008255,
+ 16633: 0x00008256,
+ 16634: 0x00008257,
+ 16635: 0x00008556,
+ 16636: 0x00008545,
+ 16637: 0x0000856B,
+ 16638: 0x0000854D,
+ 16639: 0x00008553,
+ 16640: 0x00008561,
+ 16641: 0x00008558,
+ 16642: 0x00008540,
+ 16643: 0x00008546,
+ 16644: 0x00008564,
+ 16645: 0x00008541,
+ 16646: 0x00008562,
+ 16647: 0x00008544,
+ 16648: 0x00008551,
+ 16649: 0x00008547,
+ 16650: 0x00008563,
+ 16651: 0x0000853E,
+ 16652: 0x0000855B,
+ 16653: 0x00008571,
+ 16654: 0x0000854E,
+ 16655: 0x0000856E,
+ 16656: 0x00008575,
+ 16657: 0x00008555,
+ 16658: 0x00008567,
+ 16659: 0x00008560,
+ 16660: 0x0000858C,
+ 16661: 0x00008566,
+ 16662: 0x0000855D,
+ 16663: 0x00008554,
+ 16664: 0x00008565,
+ 16665: 0x0000856C,
+ 16666: 0x00008663,
+ 16667: 0x00008665,
+ 16668: 0x00008664,
+ 16669: 0x0000879B,
+ 16670: 0x0000878F,
+ 16671: 0x00008797,
+ 16672: 0x00008793,
+ 16673: 0x00008792,
+ 16674: 0x00008788,
+ 16675: 0x00008781,
+ 16676: 0x00008796,
+ 16677: 0x00008798,
+ 16678: 0x00008779,
+ 16679: 0x00008787,
+ 16680: 0x000087A3,
+ 16681: 0x00008785,
+ 16682: 0x00008790,
+ 16683: 0x00008791,
+ 16684: 0x0000879D,
+ 16685: 0x00008784,
+ 16686: 0x00008794,
+ 16687: 0x0000879C,
+ 16688: 0x0000879A,
+ 16689: 0x00008789,
+ 16690: 0x0000891E,
+ 16691: 0x00008926,
+ 16692: 0x00008930,
+ 16693: 0x0000892D,
+ 16694: 0x0000892E,
+ 16695: 0x00008927,
+ 16696: 0x00008931,
+ 16697: 0x00008922,
+ 16698: 0x00008929,
+ 16699: 0x00008923,
+ 16700: 0x0000892F,
+ 16701: 0x0000892C,
+ 16702: 0x0000891F,
+ 16703: 0x000089F1,
+ 16704: 0x00008AE0,
+ 16705: 0x00008AE2,
+ 16706: 0x00008AF2,
+ 16707: 0x00008AF4,
+ 16708: 0x00008AF5,
+ 16709: 0x00008ADD,
+ 16710: 0x00008B14,
+ 16711: 0x00008AE4,
+ 16712: 0x00008ADF,
+ 16713: 0x00008AF0,
+ 16714: 0x00008AC8,
+ 16715: 0x00008ADE,
+ 16716: 0x00008AE1,
+ 16717: 0x00008AE8,
+ 16718: 0x00008AFF,
+ 16719: 0x00008AEF,
+ 16720: 0x00008AFB,
+ 16721: 0x00008C91,
+ 16722: 0x00008C92,
+ 16723: 0x00008C90,
+ 16724: 0x00008CF5,
+ 16725: 0x00008CEE,
+ 16726: 0x00008CF1,
+ 16727: 0x00008CF0,
+ 16728: 0x00008CF3,
+ 16729: 0x00008D6C,
+ 16730: 0x00008D6E,
+ 16731: 0x00008DA5,
+ 16732: 0x00008DA7,
+ 16733: 0x00008E33,
+ 16734: 0x00008E3E,
+ 16735: 0x00008E38,
+ 16736: 0x00008E40,
+ 16737: 0x00008E45,
+ 16738: 0x00008E36,
+ 16739: 0x00008E3C,
+ 16740: 0x00008E3D,
+ 16741: 0x00008E41,
+ 16742: 0x00008E30,
+ 16743: 0x00008E3F,
+ 16744: 0x00008EBD,
+ 16745: 0x00008F36,
+ 16746: 0x00008F2E,
+ 16747: 0x00008F35,
+ 16748: 0x00008F32,
+ 16749: 0x00008F39,
+ 16750: 0x00008F37,
+ 16751: 0x00008F34,
+ 16752: 0x00009076,
+ 16753: 0x00009079,
+ 16754: 0x0000907B,
+ 16755: 0x00009086,
+ 16756: 0x000090FA,
+ 16757: 0x00009133,
+ 16758: 0x00009135,
+ 16759: 0x00009136,
+ 16760: 0x00009193,
+ 16761: 0x00009190,
+ 16762: 0x00009191,
+ 16763: 0x0000918D,
+ 16764: 0x0000918F,
+ 16765: 0x00009327,
+ 16766: 0x0000931E,
+ 16767: 0x00009308,
+ 16768: 0x0000931F,
+ 16769: 0x00009306,
+ 16770: 0x0000930F,
+ 16771: 0x0000937A,
+ 16772: 0x00009338,
+ 16773: 0x0000933C,
+ 16774: 0x0000931B,
+ 16775: 0x00009323,
+ 16776: 0x00009312,
+ 16777: 0x00009301,
+ 16778: 0x00009346,
+ 16779: 0x0000932D,
+ 16780: 0x0000930E,
+ 16781: 0x0000930D,
+ 16782: 0x000092CB,
+ 16783: 0x0000931D,
+ 16784: 0x000092FA,
+ 16785: 0x00009325,
+ 16786: 0x00009313,
+ 16787: 0x000092F9,
+ 16788: 0x000092F7,
+ 16789: 0x00009334,
+ 16790: 0x00009302,
+ 16791: 0x00009324,
+ 16792: 0x000092FF,
+ 16793: 0x00009329,
+ 16794: 0x00009339,
+ 16795: 0x00009335,
+ 16796: 0x0000932A,
+ 16797: 0x00009314,
+ 16798: 0x0000930C,
+ 16799: 0x0000930B,
+ 16800: 0x000092FE,
+ 16801: 0x00009309,
+ 16802: 0x00009300,
+ 16803: 0x000092FB,
+ 16804: 0x00009316,
+ 16805: 0x000095BC,
+ 16806: 0x000095CD,
+ 16807: 0x000095BE,
+ 16808: 0x000095B9,
+ 16809: 0x000095BA,
+ 16810: 0x000095B6,
+ 16811: 0x000095BF,
+ 16812: 0x000095B5,
+ 16813: 0x000095BD,
+ 16814: 0x000096A9,
+ 16815: 0x000096D4,
+ 16816: 0x0000970B,
+ 16817: 0x00009712,
+ 16818: 0x00009710,
+ 16819: 0x00009799,
+ 16820: 0x00009797,
+ 16821: 0x00009794,
+ 16822: 0x000097F0,
+ 16823: 0x000097F8,
+ 16824: 0x00009835,
+ 16825: 0x0000982F,
+ 16826: 0x00009832,
+ 16827: 0x00009924,
+ 16828: 0x0000991F,
+ 16829: 0x00009927,
+ 16830: 0x00009929,
+ 16831: 0x0000999E,
+ 16832: 0x000099EE,
+ 16833: 0x000099EC,
+ 16834: 0x000099E5,
+ 16835: 0x000099E4,
+ 16836: 0x000099F0,
+ 16837: 0x000099E3,
+ 16838: 0x000099EA,
+ 16839: 0x000099E9,
+ 16840: 0x000099E7,
+ 16841: 0x00009AB9,
+ 16842: 0x00009ABF,
+ 16843: 0x00009AB4,
+ 16844: 0x00009ABB,
+ 16845: 0x00009AF6,
+ 16846: 0x00009AFA,
+ 16847: 0x00009AF9,
+ 16848: 0x00009AF7,
+ 16849: 0x00009B33,
+ 16850: 0x00009B80,
+ 16851: 0x00009B85,
+ 16852: 0x00009B87,
+ 16853: 0x00009B7C,
+ 16854: 0x00009B7E,
+ 16855: 0x00009B7B,
+ 16856: 0x00009B82,
+ 16857: 0x00009B93,
+ 16858: 0x00009B92,
+ 16859: 0x00009B90,
+ 16860: 0x00009B7A,
+ 16861: 0x00009B95,
+ 16862: 0x00009B7D,
+ 16863: 0x00009B88,
+ 16864: 0x00009D25,
+ 16865: 0x00009D17,
+ 16866: 0x00009D20,
+ 16867: 0x00009D1E,
+ 16868: 0x00009D14,
+ 16869: 0x00009D29,
+ 16870: 0x00009D1D,
+ 16871: 0x00009D18,
+ 16872: 0x00009D22,
+ 16873: 0x00009D10,
+ 16874: 0x00009D19,
+ 16875: 0x00009D1F,
+ 16876: 0x00009E88,
+ 16877: 0x00009E86,
+ 16878: 0x00009E87,
+ 16879: 0x00009EAE,
+ 16880: 0x00009EAD,
+ 16881: 0x00009ED5,
+ 16882: 0x00009ED6,
+ 16883: 0x00009EFA,
+ 16884: 0x00009F12,
+ 16885: 0x00009F3D,
+ 16886: 0x00005126,
+ 16887: 0x00005125,
+ 16888: 0x00005122,
+ 16889: 0x00005124,
+ 16890: 0x00005120,
+ 16891: 0x00005129,
+ 16892: 0x000052F4,
+ 16893: 0x00005693,
+ 16894: 0x0000568C,
+ 16895: 0x0000568D,
+ 16896: 0x00005686,
+ 16897: 0x00005684,
+ 16898: 0x00005683,
+ 16899: 0x0000567E,
+ 16900: 0x00005682,
+ 16901: 0x0000567F,
+ 16902: 0x00005681,
+ 16903: 0x000058D6,
+ 16904: 0x000058D4,
+ 16905: 0x000058CF,
+ 16906: 0x000058D2,
+ 16907: 0x00005B2D,
+ 16908: 0x00005B25,
+ 16909: 0x00005B32,
+ 16910: 0x00005B23,
+ 16911: 0x00005B2C,
+ 16912: 0x00005B27,
+ 16913: 0x00005B26,
+ 16914: 0x00005B2F,
+ 16915: 0x00005B2E,
+ 16916: 0x00005B7B,
+ 16917: 0x00005BF1,
+ 16918: 0x00005BF2,
+ 16919: 0x00005DB7,
+ 16920: 0x00005E6C,
+ 16921: 0x00005E6A,
+ 16922: 0x00005FBE,
+ 16923: 0x00005FBB,
+ 16924: 0x000061C3,
+ 16925: 0x000061B5,
+ 16926: 0x000061BC,
+ 16927: 0x000061E7,
+ 16928: 0x000061E0,
+ 16929: 0x000061E5,
+ 16930: 0x000061E4,
+ 16931: 0x000061E8,
+ 16932: 0x000061DE,
+ 16933: 0x000064EF,
+ 16934: 0x000064E9,
+ 16935: 0x000064E3,
+ 16936: 0x000064EB,
+ 16937: 0x000064E4,
+ 16938: 0x000064E8,
+ 16939: 0x00006581,
+ 16940: 0x00006580,
+ 16941: 0x000065B6,
+ 16942: 0x000065DA,
+ 16943: 0x000066D2,
+ 16944: 0x00006A8D,
+ 16945: 0x00006A96,
+ 16946: 0x00006A81,
+ 16947: 0x00006AA5,
+ 16948: 0x00006A89,
+ 16949: 0x00006A9F,
+ 16950: 0x00006A9B,
+ 16951: 0x00006AA1,
+ 16952: 0x00006A9E,
+ 16953: 0x00006A87,
+ 16954: 0x00006A93,
+ 16955: 0x00006A8E,
+ 16956: 0x00006A95,
+ 16957: 0x00006A83,
+ 16958: 0x00006AA8,
+ 16959: 0x00006AA4,
+ 16960: 0x00006A91,
+ 16961: 0x00006A7F,
+ 16962: 0x00006AA6,
+ 16963: 0x00006A9A,
+ 16964: 0x00006A85,
+ 16965: 0x00006A8C,
+ 16966: 0x00006A92,
+ 16967: 0x00006B5B,
+ 16968: 0x00006BAD,
+ 16969: 0x00006C09,
+ 16970: 0x00006FCC,
+ 16971: 0x00006FA9,
+ 16972: 0x00006FF4,
+ 16973: 0x00006FD4,
+ 16974: 0x00006FE3,
+ 16975: 0x00006FDC,
+ 16976: 0x00006FED,
+ 16977: 0x00006FE7,
+ 16978: 0x00006FE6,
+ 16979: 0x00006FDE,
+ 16980: 0x00006FF2,
+ 16981: 0x00006FDD,
+ 16982: 0x00006FE2,
+ 16983: 0x00006FE8,
+ 16984: 0x000071E1,
+ 16985: 0x000071F1,
+ 16986: 0x000071E8,
+ 16987: 0x000071F2,
+ 16988: 0x000071E4,
+ 16989: 0x000071F0,
+ 16990: 0x000071E2,
+ 16991: 0x00007373,
+ 16992: 0x0000736E,
+ 16993: 0x0000736F,
+ 16994: 0x00007497,
+ 16995: 0x000074B2,
+ 16996: 0x000074AB,
+ 16997: 0x00007490,
+ 16998: 0x000074AA,
+ 16999: 0x000074AD,
+ 17000: 0x000074B1,
+ 17001: 0x000074A5,
+ 17002: 0x000074AF,
+ 17003: 0x00007510,
+ 17004: 0x00007511,
+ 17005: 0x00007512,
+ 17006: 0x0000750F,
+ 17007: 0x00007584,
+ 17008: 0x00007643,
+ 17009: 0x00007648,
+ 17010: 0x00007649,
+ 17011: 0x00007647,
+ 17012: 0x000076A4,
+ 17013: 0x000076E9,
+ 17014: 0x000077B5,
+ 17015: 0x000077AB,
+ 17016: 0x000077B2,
+ 17017: 0x000077B7,
+ 17018: 0x000077B6,
+ 17019: 0x000077B4,
+ 17020: 0x000077B1,
+ 17021: 0x000077A8,
+ 17022: 0x000077F0,
+ 17023: 0x000078F3,
+ 17024: 0x000078FD,
+ 17025: 0x00007902,
+ 17026: 0x000078FB,
+ 17027: 0x000078FC,
+ 17028: 0x000078F2,
+ 17029: 0x00007905,
+ 17030: 0x000078F9,
+ 17031: 0x000078FE,
+ 17032: 0x00007904,
+ 17033: 0x000079AB,
+ 17034: 0x000079A8,
+ 17035: 0x00007A5C,
+ 17036: 0x00007A5B,
+ 17037: 0x00007A56,
+ 17038: 0x00007A58,
+ 17039: 0x00007A54,
+ 17040: 0x00007A5A,
+ 17041: 0x00007ABE,
+ 17042: 0x00007AC0,
+ 17043: 0x00007AC1,
+ 17044: 0x00007C05,
+ 17045: 0x00007C0F,
+ 17046: 0x00007BF2,
+ 17047: 0x00007C00,
+ 17048: 0x00007BFF,
+ 17049: 0x00007BFB,
+ 17050: 0x00007C0E,
+ 17051: 0x00007BF4,
+ 17052: 0x00007C0B,
+ 17053: 0x00007BF3,
+ 17054: 0x00007C02,
+ 17055: 0x00007C09,
+ 17056: 0x00007C03,
+ 17057: 0x00007C01,
+ 17058: 0x00007BF8,
+ 17059: 0x00007BFD,
+ 17060: 0x00007C06,
+ 17061: 0x00007BF0,
+ 17062: 0x00007BF1,
+ 17063: 0x00007C10,
+ 17064: 0x00007C0A,
+ 17065: 0x00007CE8,
+ 17066: 0x00007E2D,
+ 17067: 0x00007E3C,
+ 17068: 0x00007E42,
+ 17069: 0x00007E33,
+ 17070: 0x00009848,
+ 17071: 0x00007E38,
+ 17072: 0x00007E2A,
+ 17073: 0x00007E49,
+ 17074: 0x00007E40,
+ 17075: 0x00007E47,
+ 17076: 0x00007E29,
+ 17077: 0x00007E4C,
+ 17078: 0x00007E30,
+ 17079: 0x00007E3B,
+ 17080: 0x00007E36,
+ 17081: 0x00007E44,
+ 17082: 0x00007E3A,
+ 17083: 0x00007F45,
+ 17084: 0x00007F7F,
+ 17085: 0x00007F7E,
+ 17086: 0x00007F7D,
+ 17087: 0x00007FF4,
+ 17088: 0x00007FF2,
+ 17089: 0x0000802C,
+ 17090: 0x000081BB,
+ 17091: 0x000081C4,
+ 17092: 0x000081CC,
+ 17093: 0x000081CA,
+ 17094: 0x000081C5,
+ 17095: 0x000081C7,
+ 17096: 0x000081BC,
+ 17097: 0x000081E9,
+ 17098: 0x0000825B,
+ 17099: 0x0000825A,
+ 17100: 0x0000825C,
+ 17101: 0x00008583,
+ 17102: 0x00008580,
+ 17103: 0x0000858F,
+ 17104: 0x000085A7,
+ 17105: 0x00008595,
+ 17106: 0x000085A0,
+ 17107: 0x0000858B,
+ 17108: 0x000085A3,
+ 17109: 0x0000857B,
+ 17110: 0x000085A4,
+ 17111: 0x0000859A,
+ 17112: 0x0000859E,
+ 17113: 0x00008577,
+ 17114: 0x0000857C,
+ 17115: 0x00008589,
+ 17116: 0x000085A1,
+ 17117: 0x0000857A,
+ 17118: 0x00008578,
+ 17119: 0x00008557,
+ 17120: 0x0000858E,
+ 17121: 0x00008596,
+ 17122: 0x00008586,
+ 17123: 0x0000858D,
+ 17124: 0x00008599,
+ 17125: 0x0000859D,
+ 17126: 0x00008581,
+ 17127: 0x000085A2,
+ 17128: 0x00008582,
+ 17129: 0x00008588,
+ 17130: 0x00008585,
+ 17131: 0x00008579,
+ 17132: 0x00008576,
+ 17133: 0x00008598,
+ 17134: 0x00008590,
+ 17135: 0x0000859F,
+ 17136: 0x00008668,
+ 17137: 0x000087BE,
+ 17138: 0x000087AA,
+ 17139: 0x000087AD,
+ 17140: 0x000087C5,
+ 17141: 0x000087B0,
+ 17142: 0x000087AC,
+ 17143: 0x000087B9,
+ 17144: 0x000087B5,
+ 17145: 0x000087BC,
+ 17146: 0x000087AE,
+ 17147: 0x000087C9,
+ 17148: 0x000087C3,
+ 17149: 0x000087C2,
+ 17150: 0x000087CC,
+ 17151: 0x000087B7,
+ 17152: 0x000087AF,
+ 17153: 0x000087C4,
+ 17154: 0x000087CA,
+ 17155: 0x000087B4,
+ 17156: 0x000087B6,
+ 17157: 0x000087BF,
+ 17158: 0x000087B8,
+ 17159: 0x000087BD,
+ 17160: 0x000087DE,
+ 17161: 0x000087B2,
+ 17162: 0x00008935,
+ 17163: 0x00008933,
+ 17164: 0x0000893C,
+ 17165: 0x0000893E,
+ 17166: 0x00008941,
+ 17167: 0x00008952,
+ 17168: 0x00008937,
+ 17169: 0x00008942,
+ 17170: 0x000089AD,
+ 17171: 0x000089AF,
+ 17172: 0x000089AE,
+ 17173: 0x000089F2,
+ 17174: 0x000089F3,
+ 17175: 0x00008B1E,
+ 17176: 0x00008B18,
+ 17177: 0x00008B16,
+ 17178: 0x00008B11,
+ 17179: 0x00008B05,
+ 17180: 0x00008B0B,
+ 17181: 0x00008B22,
+ 17182: 0x00008B0F,
+ 17183: 0x00008B12,
+ 17184: 0x00008B15,
+ 17185: 0x00008B07,
+ 17186: 0x00008B0D,
+ 17187: 0x00008B08,
+ 17188: 0x00008B06,
+ 17189: 0x00008B1C,
+ 17190: 0x00008B13,
+ 17191: 0x00008B1A,
+ 17192: 0x00008C4F,
+ 17193: 0x00008C70,
+ 17194: 0x00008C72,
+ 17195: 0x00008C71,
+ 17196: 0x00008C6F,
+ 17197: 0x00008C95,
+ 17198: 0x00008C94,
+ 17199: 0x00008CF9,
+ 17200: 0x00008D6F,
+ 17201: 0x00008E4E,
+ 17202: 0x00008E4D,
+ 17203: 0x00008E53,
+ 17204: 0x00008E50,
+ 17205: 0x00008E4C,
+ 17206: 0x00008E47,
+ 17207: 0x00008F43,
+ 17208: 0x00008F40,
+ 17209: 0x00009085,
+ 17210: 0x0000907E,
+ 17211: 0x00009138,
+ 17212: 0x0000919A,
+ 17213: 0x000091A2,
+ 17214: 0x0000919B,
+ 17215: 0x00009199,
+ 17216: 0x0000919F,
+ 17217: 0x000091A1,
+ 17218: 0x0000919D,
+ 17219: 0x000091A0,
+ 17220: 0x000093A1,
+ 17221: 0x00009383,
+ 17222: 0x000093AF,
+ 17223: 0x00009364,
+ 17224: 0x00009356,
+ 17225: 0x00009347,
+ 17226: 0x0000937C,
+ 17227: 0x00009358,
+ 17228: 0x0000935C,
+ 17229: 0x00009376,
+ 17230: 0x00009349,
+ 17231: 0x00009350,
+ 17232: 0x00009351,
+ 17233: 0x00009360,
+ 17234: 0x0000936D,
+ 17235: 0x0000938F,
+ 17236: 0x0000934C,
+ 17237: 0x0000936A,
+ 17238: 0x00009379,
+ 17239: 0x00009357,
+ 17240: 0x00009355,
+ 17241: 0x00009352,
+ 17242: 0x0000934F,
+ 17243: 0x00009371,
+ 17244: 0x00009377,
+ 17245: 0x0000937B,
+ 17246: 0x00009361,
+ 17247: 0x0000935E,
+ 17248: 0x00009363,
+ 17249: 0x00009367,
+ 17250: 0x00009380,
+ 17251: 0x0000934E,
+ 17252: 0x00009359,
+ 17253: 0x000095C7,
+ 17254: 0x000095C0,
+ 17255: 0x000095C9,
+ 17256: 0x000095C3,
+ 17257: 0x000095C5,
+ 17258: 0x000095B7,
+ 17259: 0x000096AE,
+ 17260: 0x000096B0,
+ 17261: 0x000096AC,
+ 17262: 0x00009720,
+ 17263: 0x0000971F,
+ 17264: 0x00009718,
+ 17265: 0x0000971D,
+ 17266: 0x00009719,
+ 17267: 0x0000979A,
+ 17268: 0x000097A1,
+ 17269: 0x0000979C,
+ 17270: 0x0000979E,
+ 17271: 0x0000979D,
+ 17272: 0x000097D5,
+ 17273: 0x000097D4,
+ 17274: 0x000097F1,
+ 17275: 0x00009841,
+ 17276: 0x00009844,
+ 17277: 0x0000984A,
+ 17278: 0x00009849,
+ 17279: 0x00009845,
+ 17280: 0x00009843,
+ 17281: 0x00009925,
+ 17282: 0x0000992B,
+ 17283: 0x0000992C,
+ 17284: 0x0000992A,
+ 17285: 0x00009933,
+ 17286: 0x00009932,
+ 17287: 0x0000992F,
+ 17288: 0x0000992D,
+ 17289: 0x00009931,
+ 17290: 0x00009930,
+ 17291: 0x00009998,
+ 17292: 0x000099A3,
+ 17293: 0x000099A1,
+ 17294: 0x00009A02,
+ 17295: 0x000099FA,
+ 17296: 0x000099F4,
+ 17297: 0x000099F7,
+ 17298: 0x000099F9,
+ 17299: 0x000099F8,
+ 17300: 0x000099F6,
+ 17301: 0x000099FB,
+ 17302: 0x000099FD,
+ 17303: 0x000099FE,
+ 17304: 0x000099FC,
+ 17305: 0x00009A03,
+ 17306: 0x00009ABE,
+ 17307: 0x00009AFE,
+ 17308: 0x00009AFD,
+ 17309: 0x00009B01,
+ 17310: 0x00009AFC,
+ 17311: 0x00009B48,
+ 17312: 0x00009B9A,
+ 17313: 0x00009BA8,
+ 17314: 0x00009B9E,
+ 17315: 0x00009B9B,
+ 17316: 0x00009BA6,
+ 17317: 0x00009BA1,
+ 17318: 0x00009BA5,
+ 17319: 0x00009BA4,
+ 17320: 0x00009B86,
+ 17321: 0x00009BA2,
+ 17322: 0x00009BA0,
+ 17323: 0x00009BAF,
+ 17324: 0x00009D33,
+ 17325: 0x00009D41,
+ 17326: 0x00009D67,
+ 17327: 0x00009D36,
+ 17328: 0x00009D2E,
+ 17329: 0x00009D2F,
+ 17330: 0x00009D31,
+ 17331: 0x00009D38,
+ 17332: 0x00009D30,
+ 17333: 0x00009D45,
+ 17334: 0x00009D42,
+ 17335: 0x00009D43,
+ 17336: 0x00009D3E,
+ 17337: 0x00009D37,
+ 17338: 0x00009D40,
+ 17339: 0x00009D3D,
+ 17340: 0x00007FF5,
+ 17341: 0x00009D2D,
+ 17342: 0x00009E8A,
+ 17343: 0x00009E89,
+ 17344: 0x00009E8D,
+ 17345: 0x00009EB0,
+ 17346: 0x00009EC8,
+ 17347: 0x00009EDA,
+ 17348: 0x00009EFB,
+ 17349: 0x00009EFF,
+ 17350: 0x00009F24,
+ 17351: 0x00009F23,
+ 17352: 0x00009F22,
+ 17353: 0x00009F54,
+ 17354: 0x00009FA0,
+ 17355: 0x00005131,
+ 17356: 0x0000512D,
+ 17357: 0x0000512E,
+ 17358: 0x00005698,
+ 17359: 0x0000569C,
+ 17360: 0x00005697,
+ 17361: 0x0000569A,
+ 17362: 0x0000569D,
+ 17363: 0x00005699,
+ 17364: 0x00005970,
+ 17365: 0x00005B3C,
+ 17366: 0x00005C69,
+ 17367: 0x00005C6A,
+ 17368: 0x00005DC0,
+ 17369: 0x00005E6D,
+ 17370: 0x00005E6E,
+ 17371: 0x000061D8,
+ 17372: 0x000061DF,
+ 17373: 0x000061ED,
+ 17374: 0x000061EE,
+ 17375: 0x000061F1,
+ 17376: 0x000061EA,
+ 17377: 0x000061F0,
+ 17378: 0x000061EB,
+ 17379: 0x000061D6,
+ 17380: 0x000061E9,
+ 17381: 0x000064FF,
+ 17382: 0x00006504,
+ 17383: 0x000064FD,
+ 17384: 0x000064F8,
+ 17385: 0x00006501,
+ 17386: 0x00006503,
+ 17387: 0x000064FC,
+ 17388: 0x00006594,
+ 17389: 0x000065DB,
+ 17390: 0x000066DA,
+ 17391: 0x000066DB,
+ 17392: 0x000066D8,
+ 17393: 0x00006AC5,
+ 17394: 0x00006AB9,
+ 17395: 0x00006ABD,
+ 17396: 0x00006AE1,
+ 17397: 0x00006AC6,
+ 17398: 0x00006ABA,
+ 17399: 0x00006AB6,
+ 17400: 0x00006AB7,
+ 17401: 0x00006AC7,
+ 17402: 0x00006AB4,
+ 17403: 0x00006AAD,
+ 17404: 0x00006B5E,
+ 17405: 0x00006BC9,
+ 17406: 0x00006C0B,
+ 17407: 0x00007007,
+ 17408: 0x0000700C,
+ 17409: 0x0000700D,
+ 17410: 0x00007001,
+ 17411: 0x00007005,
+ 17412: 0x00007014,
+ 17413: 0x0000700E,
+ 17414: 0x00006FFF,
+ 17415: 0x00007000,
+ 17416: 0x00006FFB,
+ 17417: 0x00007026,
+ 17418: 0x00006FFC,
+ 17419: 0x00006FF7,
+ 17420: 0x0000700A,
+ 17421: 0x00007201,
+ 17422: 0x000071FF,
+ 17423: 0x000071F9,
+ 17424: 0x00007203,
+ 17425: 0x000071FD,
+ 17426: 0x00007376,
+ 17427: 0x000074B8,
+ 17428: 0x000074C0,
+ 17429: 0x000074B5,
+ 17430: 0x000074C1,
+ 17431: 0x000074BE,
+ 17432: 0x000074B6,
+ 17433: 0x000074BB,
+ 17434: 0x000074C2,
+ 17435: 0x00007514,
+ 17436: 0x00007513,
+ 17437: 0x0000765C,
+ 17438: 0x00007664,
+ 17439: 0x00007659,
+ 17440: 0x00007650,
+ 17441: 0x00007653,
+ 17442: 0x00007657,
+ 17443: 0x0000765A,
+ 17444: 0x000076A6,
+ 17445: 0x000076BD,
+ 17446: 0x000076EC,
+ 17447: 0x000077C2,
+ 17448: 0x000077BA,
+ 17449: 0x000078FF,
+ 17450: 0x0000790C,
+ 17451: 0x00007913,
+ 17452: 0x00007914,
+ 17453: 0x00007909,
+ 17454: 0x00007910,
+ 17455: 0x00007912,
+ 17456: 0x00007911,
+ 17457: 0x000079AD,
+ 17458: 0x000079AC,
+ 17459: 0x00007A5F,
+ 17460: 0x00007C1C,
+ 17461: 0x00007C29,
+ 17462: 0x00007C19,
+ 17463: 0x00007C20,
+ 17464: 0x00007C1F,
+ 17465: 0x00007C2D,
+ 17466: 0x00007C1D,
+ 17467: 0x00007C26,
+ 17468: 0x00007C28,
+ 17469: 0x00007C22,
+ 17470: 0x00007C25,
+ 17471: 0x00007C30,
+ 17472: 0x00007E5C,
+ 17473: 0x00007E50,
+ 17474: 0x00007E56,
+ 17475: 0x00007E63,
+ 17476: 0x00007E58,
+ 17477: 0x00007E62,
+ 17478: 0x00007E5F,
+ 17479: 0x00007E51,
+ 17480: 0x00007E60,
+ 17481: 0x00007E57,
+ 17482: 0x00007E53,
+ 17483: 0x00007FB5,
+ 17484: 0x00007FB3,
+ 17485: 0x00007FF7,
+ 17486: 0x00007FF8,
+ 17487: 0x00008075,
+ 17488: 0x000081D1,
+ 17489: 0x000081D2,
+ 17490: 0x000081D0,
+ 17491: 0x0000825F,
+ 17492: 0x0000825E,
+ 17493: 0x000085B4,
+ 17494: 0x000085C6,
+ 17495: 0x000085C0,
+ 17496: 0x000085C3,
+ 17497: 0x000085C2,
+ 17498: 0x000085B3,
+ 17499: 0x000085B5,
+ 17500: 0x000085BD,
+ 17501: 0x000085C7,
+ 17502: 0x000085C4,
+ 17503: 0x000085BF,
+ 17504: 0x000085CB,
+ 17505: 0x000085CE,
+ 17506: 0x000085C8,
+ 17507: 0x000085C5,
+ 17508: 0x000085B1,
+ 17509: 0x000085B6,
+ 17510: 0x000085D2,
+ 17511: 0x00008624,
+ 17512: 0x000085B8,
+ 17513: 0x000085B7,
+ 17514: 0x000085BE,
+ 17515: 0x00008669,
+ 17516: 0x000087E7,
+ 17517: 0x000087E6,
+ 17518: 0x000087E2,
+ 17519: 0x000087DB,
+ 17520: 0x000087EB,
+ 17521: 0x000087EA,
+ 17522: 0x000087E5,
+ 17523: 0x000087DF,
+ 17524: 0x000087F3,
+ 17525: 0x000087E4,
+ 17526: 0x000087D4,
+ 17527: 0x000087DC,
+ 17528: 0x000087D3,
+ 17529: 0x000087ED,
+ 17530: 0x000087D8,
+ 17531: 0x000087E3,
+ 17532: 0x000087A4,
+ 17533: 0x000087D7,
+ 17534: 0x000087D9,
+ 17535: 0x00008801,
+ 17536: 0x000087F4,
+ 17537: 0x000087E8,
+ 17538: 0x000087DD,
+ 17539: 0x00008953,
+ 17540: 0x0000894B,
+ 17541: 0x0000894F,
+ 17542: 0x0000894C,
+ 17543: 0x00008946,
+ 17544: 0x00008950,
+ 17545: 0x00008951,
+ 17546: 0x00008949,
+ 17547: 0x00008B2A,
+ 17548: 0x00008B27,
+ 17549: 0x00008B23,
+ 17550: 0x00008B33,
+ 17551: 0x00008B30,
+ 17552: 0x00008B35,
+ 17553: 0x00008B47,
+ 17554: 0x00008B2F,
+ 17555: 0x00008B3C,
+ 17556: 0x00008B3E,
+ 17557: 0x00008B31,
+ 17558: 0x00008B25,
+ 17559: 0x00008B37,
+ 17560: 0x00008B26,
+ 17561: 0x00008B36,
+ 17562: 0x00008B2E,
+ 17563: 0x00008B24,
+ 17564: 0x00008B3B,
+ 17565: 0x00008B3D,
+ 17566: 0x00008B3A,
+ 17567: 0x00008C42,
+ 17568: 0x00008C75,
+ 17569: 0x00008C99,
+ 17570: 0x00008C98,
+ 17571: 0x00008C97,
+ 17572: 0x00008CFE,
+ 17573: 0x00008D04,
+ 17574: 0x00008D02,
+ 17575: 0x00008D00,
+ 17576: 0x00008E5C,
+ 17577: 0x00008E62,
+ 17578: 0x00008E60,
+ 17579: 0x00008E57,
+ 17580: 0x00008E56,
+ 17581: 0x00008E5E,
+ 17582: 0x00008E65,
+ 17583: 0x00008E67,
+ 17584: 0x00008E5B,
+ 17585: 0x00008E5A,
+ 17586: 0x00008E61,
+ 17587: 0x00008E5D,
+ 17588: 0x00008E69,
+ 17589: 0x00008E54,
+ 17590: 0x00008F46,
+ 17591: 0x00008F47,
+ 17592: 0x00008F48,
+ 17593: 0x00008F4B,
+ 17594: 0x00009128,
+ 17595: 0x0000913A,
+ 17596: 0x0000913B,
+ 17597: 0x0000913E,
+ 17598: 0x000091A8,
+ 17599: 0x000091A5,
+ 17600: 0x000091A7,
+ 17601: 0x000091AF,
+ 17602: 0x000091AA,
+ 17603: 0x000093B5,
+ 17604: 0x0000938C,
+ 17605: 0x00009392,
+ 17606: 0x000093B7,
+ 17607: 0x0000939B,
+ 17608: 0x0000939D,
+ 17609: 0x00009389,
+ 17610: 0x000093A7,
+ 17611: 0x0000938E,
+ 17612: 0x000093AA,
+ 17613: 0x0000939E,
+ 17614: 0x000093A6,
+ 17615: 0x00009395,
+ 17616: 0x00009388,
+ 17617: 0x00009399,
+ 17618: 0x0000939F,
+ 17619: 0x0000938D,
+ 17620: 0x000093B1,
+ 17621: 0x00009391,
+ 17622: 0x000093B2,
+ 17623: 0x000093A4,
+ 17624: 0x000093A8,
+ 17625: 0x000093B4,
+ 17626: 0x000093A3,
+ 17627: 0x000093A5,
+ 17628: 0x000095D2,
+ 17629: 0x000095D3,
+ 17630: 0x000095D1,
+ 17631: 0x000096B3,
+ 17632: 0x000096D7,
+ 17633: 0x000096DA,
+ 17634: 0x00005DC2,
+ 17635: 0x000096DF,
+ 17636: 0x000096D8,
+ 17637: 0x000096DD,
+ 17638: 0x00009723,
+ 17639: 0x00009722,
+ 17640: 0x00009725,
+ 17641: 0x000097AC,
+ 17642: 0x000097AE,
+ 17643: 0x000097A8,
+ 17644: 0x000097AB,
+ 17645: 0x000097A4,
+ 17646: 0x000097AA,
+ 17647: 0x000097A2,
+ 17648: 0x000097A5,
+ 17649: 0x000097D7,
+ 17650: 0x000097D9,
+ 17651: 0x000097D6,
+ 17652: 0x000097D8,
+ 17653: 0x000097FA,
+ 17654: 0x00009850,
+ 17655: 0x00009851,
+ 17656: 0x00009852,
+ 17657: 0x000098B8,
+ 17658: 0x00009941,
+ 17659: 0x0000993C,
+ 17660: 0x0000993A,
+ 17661: 0x00009A0F,
+ 17662: 0x00009A0B,
+ 17663: 0x00009A09,
+ 17664: 0x00009A0D,
+ 17665: 0x00009A04,
+ 17666: 0x00009A11,
+ 17667: 0x00009A0A,
+ 17668: 0x00009A05,
+ 17669: 0x00009A07,
+ 17670: 0x00009A06,
+ 17671: 0x00009AC0,
+ 17672: 0x00009ADC,
+ 17673: 0x00009B08,
+ 17674: 0x00009B04,
+ 17675: 0x00009B05,
+ 17676: 0x00009B29,
+ 17677: 0x00009B35,
+ 17678: 0x00009B4A,
+ 17679: 0x00009B4C,
+ 17680: 0x00009B4B,
+ 17681: 0x00009BC7,
+ 17682: 0x00009BC6,
+ 17683: 0x00009BC3,
+ 17684: 0x00009BBF,
+ 17685: 0x00009BC1,
+ 17686: 0x00009BB5,
+ 17687: 0x00009BB8,
+ 17688: 0x00009BD3,
+ 17689: 0x00009BB6,
+ 17690: 0x00009BC4,
+ 17691: 0x00009BB9,
+ 17692: 0x00009BBD,
+ 17693: 0x00009D5C,
+ 17694: 0x00009D53,
+ 17695: 0x00009D4F,
+ 17696: 0x00009D4A,
+ 17697: 0x00009D5B,
+ 17698: 0x00009D4B,
+ 17699: 0x00009D59,
+ 17700: 0x00009D56,
+ 17701: 0x00009D4C,
+ 17702: 0x00009D57,
+ 17703: 0x00009D52,
+ 17704: 0x00009D54,
+ 17705: 0x00009D5F,
+ 17706: 0x00009D58,
+ 17707: 0x00009D5A,
+ 17708: 0x00009E8E,
+ 17709: 0x00009E8C,
+ 17710: 0x00009EDF,
+ 17711: 0x00009F01,
+ 17712: 0x00009F00,
+ 17713: 0x00009F16,
+ 17714: 0x00009F25,
+ 17715: 0x00009F2B,
+ 17716: 0x00009F2A,
+ 17717: 0x00009F29,
+ 17718: 0x00009F28,
+ 17719: 0x00009F4C,
+ 17720: 0x00009F55,
+ 17721: 0x00005134,
+ 17722: 0x00005135,
+ 17723: 0x00005296,
+ 17724: 0x000052F7,
+ 17725: 0x000053B4,
+ 17726: 0x000056AB,
+ 17727: 0x000056AD,
+ 17728: 0x000056A6,
+ 17729: 0x000056A7,
+ 17730: 0x000056AA,
+ 17731: 0x000056AC,
+ 17732: 0x000058DA,
+ 17733: 0x000058DD,
+ 17734: 0x000058DB,
+ 17735: 0x00005912,
+ 17736: 0x00005B3D,
+ 17737: 0x00005B3E,
+ 17738: 0x00005B3F,
+ 17739: 0x00005DC3,
+ 17740: 0x00005E70,
+ 17741: 0x00005FBF,
+ 17742: 0x000061FB,
+ 17743: 0x00006507,
+ 17744: 0x00006510,
+ 17745: 0x0000650D,
+ 17746: 0x00006509,
+ 17747: 0x0000650C,
+ 17748: 0x0000650E,
+ 17749: 0x00006584,
+ 17750: 0x000065DE,
+ 17751: 0x000065DD,
+ 17752: 0x000066DE,
+ 17753: 0x00006AE7,
+ 17754: 0x00006AE0,
+ 17755: 0x00006ACC,
+ 17756: 0x00006AD1,
+ 17757: 0x00006AD9,
+ 17758: 0x00006ACB,
+ 17759: 0x00006ADF,
+ 17760: 0x00006ADC,
+ 17761: 0x00006AD0,
+ 17762: 0x00006AEB,
+ 17763: 0x00006ACF,
+ 17764: 0x00006ACD,
+ 17765: 0x00006ADE,
+ 17766: 0x00006B60,
+ 17767: 0x00006BB0,
+ 17768: 0x00006C0C,
+ 17769: 0x00007019,
+ 17770: 0x00007027,
+ 17771: 0x00007020,
+ 17772: 0x00007016,
+ 17773: 0x0000702B,
+ 17774: 0x00007021,
+ 17775: 0x00007022,
+ 17776: 0x00007023,
+ 17777: 0x00007029,
+ 17778: 0x00007017,
+ 17779: 0x00007024,
+ 17780: 0x0000701C,
+ 17781: 0x0000702A,
+ 17782: 0x0000720C,
+ 17783: 0x0000720A,
+ 17784: 0x00007207,
+ 17785: 0x00007202,
+ 17786: 0x00007205,
+ 17787: 0x000072A5,
+ 17788: 0x000072A6,
+ 17789: 0x000072A4,
+ 17790: 0x000072A3,
+ 17791: 0x000072A1,
+ 17792: 0x000074CB,
+ 17793: 0x000074C5,
+ 17794: 0x000074B7,
+ 17795: 0x000074C3,
+ 17796: 0x00007516,
+ 17797: 0x00007660,
+ 17798: 0x000077C9,
+ 17799: 0x000077CA,
+ 17800: 0x000077C4,
+ 17801: 0x000077F1,
+ 17802: 0x0000791D,
+ 17803: 0x0000791B,
+ 17804: 0x00007921,
+ 17805: 0x0000791C,
+ 17806: 0x00007917,
+ 17807: 0x0000791E,
+ 17808: 0x000079B0,
+ 17809: 0x00007A67,
+ 17810: 0x00007A68,
+ 17811: 0x00007C33,
+ 17812: 0x00007C3C,
+ 17813: 0x00007C39,
+ 17814: 0x00007C2C,
+ 17815: 0x00007C3B,
+ 17816: 0x00007CEC,
+ 17817: 0x00007CEA,
+ 17818: 0x00007E76,
+ 17819: 0x00007E75,
+ 17820: 0x00007E78,
+ 17821: 0x00007E70,
+ 17822: 0x00007E77,
+ 17823: 0x00007E6F,
+ 17824: 0x00007E7A,
+ 17825: 0x00007E72,
+ 17826: 0x00007E74,
+ 17827: 0x00007E68,
+ 17828: 0x00007F4B,
+ 17829: 0x00007F4A,
+ 17830: 0x00007F83,
+ 17831: 0x00007F86,
+ 17832: 0x00007FB7,
+ 17833: 0x00007FFD,
+ 17834: 0x00007FFE,
+ 17835: 0x00008078,
+ 17836: 0x000081D7,
+ 17837: 0x000081D5,
+ 17838: 0x00008264,
+ 17839: 0x00008261,
+ 17840: 0x00008263,
+ 17841: 0x000085EB,
+ 17842: 0x000085F1,
+ 17843: 0x000085ED,
+ 17844: 0x000085D9,
+ 17845: 0x000085E1,
+ 17846: 0x000085E8,
+ 17847: 0x000085DA,
+ 17848: 0x000085D7,
+ 17849: 0x000085EC,
+ 17850: 0x000085F2,
+ 17851: 0x000085F8,
+ 17852: 0x000085D8,
+ 17853: 0x000085DF,
+ 17854: 0x000085E3,
+ 17855: 0x000085DC,
+ 17856: 0x000085D1,
+ 17857: 0x000085F0,
+ 17858: 0x000085E6,
+ 17859: 0x000085EF,
+ 17860: 0x000085DE,
+ 17861: 0x000085E2,
+ 17862: 0x00008800,
+ 17863: 0x000087FA,
+ 17864: 0x00008803,
+ 17865: 0x000087F6,
+ 17866: 0x000087F7,
+ 17867: 0x00008809,
+ 17868: 0x0000880C,
+ 17869: 0x0000880B,
+ 17870: 0x00008806,
+ 17871: 0x000087FC,
+ 17872: 0x00008808,
+ 17873: 0x000087FF,
+ 17874: 0x0000880A,
+ 17875: 0x00008802,
+ 17876: 0x00008962,
+ 17877: 0x0000895A,
+ 17878: 0x0000895B,
+ 17879: 0x00008957,
+ 17880: 0x00008961,
+ 17881: 0x0000895C,
+ 17882: 0x00008958,
+ 17883: 0x0000895D,
+ 17884: 0x00008959,
+ 17885: 0x00008988,
+ 17886: 0x000089B7,
+ 17887: 0x000089B6,
+ 17888: 0x000089F6,
+ 17889: 0x00008B50,
+ 17890: 0x00008B48,
+ 17891: 0x00008B4A,
+ 17892: 0x00008B40,
+ 17893: 0x00008B53,
+ 17894: 0x00008B56,
+ 17895: 0x00008B54,
+ 17896: 0x00008B4B,
+ 17897: 0x00008B55,
+ 17898: 0x00008B51,
+ 17899: 0x00008B42,
+ 17900: 0x00008B52,
+ 17901: 0x00008B57,
+ 17902: 0x00008C43,
+ 17903: 0x00008C77,
+ 17904: 0x00008C76,
+ 17905: 0x00008C9A,
+ 17906: 0x00008D06,
+ 17907: 0x00008D07,
+ 17908: 0x00008D09,
+ 17909: 0x00008DAC,
+ 17910: 0x00008DAA,
+ 17911: 0x00008DAD,
+ 17912: 0x00008DAB,
+ 17913: 0x00008E6D,
+ 17914: 0x00008E78,
+ 17915: 0x00008E73,
+ 17916: 0x00008E6A,
+ 17917: 0x00008E6F,
+ 17918: 0x00008E7B,
+ 17919: 0x00008EC2,
+ 17920: 0x00008F52,
+ 17921: 0x00008F51,
+ 17922: 0x00008F4F,
+ 17923: 0x00008F50,
+ 17924: 0x00008F53,
+ 17925: 0x00008FB4,
+ 17926: 0x00009140,
+ 17927: 0x0000913F,
+ 17928: 0x000091B0,
+ 17929: 0x000091AD,
+ 17930: 0x000093DE,
+ 17931: 0x000093C7,
+ 17932: 0x000093CF,
+ 17933: 0x000093C2,
+ 17934: 0x000093DA,
+ 17935: 0x000093D0,
+ 17936: 0x000093F9,
+ 17937: 0x000093EC,
+ 17938: 0x000093CC,
+ 17939: 0x000093D9,
+ 17940: 0x000093A9,
+ 17941: 0x000093E6,
+ 17942: 0x000093CA,
+ 17943: 0x000093D4,
+ 17944: 0x000093EE,
+ 17945: 0x000093E3,
+ 17946: 0x000093D5,
+ 17947: 0x000093C4,
+ 17948: 0x000093CE,
+ 17949: 0x000093C0,
+ 17950: 0x000093D2,
+ 17951: 0x000093E7,
+ 17952: 0x0000957D,
+ 17953: 0x000095DA,
+ 17954: 0x000095DB,
+ 17955: 0x000096E1,
+ 17956: 0x00009729,
+ 17957: 0x0000972B,
+ 17958: 0x0000972C,
+ 17959: 0x00009728,
+ 17960: 0x00009726,
+ 17961: 0x000097B3,
+ 17962: 0x000097B7,
+ 17963: 0x000097B6,
+ 17964: 0x000097DD,
+ 17965: 0x000097DE,
+ 17966: 0x000097DF,
+ 17967: 0x0000985C,
+ 17968: 0x00009859,
+ 17969: 0x0000985D,
+ 17970: 0x00009857,
+ 17971: 0x000098BF,
+ 17972: 0x000098BD,
+ 17973: 0x000098BB,
+ 17974: 0x000098BE,
+ 17975: 0x00009948,
+ 17976: 0x00009947,
+ 17977: 0x00009943,
+ 17978: 0x000099A6,
+ 17979: 0x000099A7,
+ 17980: 0x00009A1A,
+ 17981: 0x00009A15,
+ 17982: 0x00009A25,
+ 17983: 0x00009A1D,
+ 17984: 0x00009A24,
+ 17985: 0x00009A1B,
+ 17986: 0x00009A22,
+ 17987: 0x00009A20,
+ 17988: 0x00009A27,
+ 17989: 0x00009A23,
+ 17990: 0x00009A1E,
+ 17991: 0x00009A1C,
+ 17992: 0x00009A14,
+ 17993: 0x00009AC2,
+ 17994: 0x00009B0B,
+ 17995: 0x00009B0A,
+ 17996: 0x00009B0E,
+ 17997: 0x00009B0C,
+ 17998: 0x00009B37,
+ 17999: 0x00009BEA,
+ 18000: 0x00009BEB,
+ 18001: 0x00009BE0,
+ 18002: 0x00009BDE,
+ 18003: 0x00009BE4,
+ 18004: 0x00009BE6,
+ 18005: 0x00009BE2,
+ 18006: 0x00009BF0,
+ 18007: 0x00009BD4,
+ 18008: 0x00009BD7,
+ 18009: 0x00009BEC,
+ 18010: 0x00009BDC,
+ 18011: 0x00009BD9,
+ 18012: 0x00009BE5,
+ 18013: 0x00009BD5,
+ 18014: 0x00009BE1,
+ 18015: 0x00009BDA,
+ 18016: 0x00009D77,
+ 18017: 0x00009D81,
+ 18018: 0x00009D8A,
+ 18019: 0x00009D84,
+ 18020: 0x00009D88,
+ 18021: 0x00009D71,
+ 18022: 0x00009D80,
+ 18023: 0x00009D78,
+ 18024: 0x00009D86,
+ 18025: 0x00009D8B,
+ 18026: 0x00009D8C,
+ 18027: 0x00009D7D,
+ 18028: 0x00009D6B,
+ 18029: 0x00009D74,
+ 18030: 0x00009D75,
+ 18031: 0x00009D70,
+ 18032: 0x00009D69,
+ 18033: 0x00009D85,
+ 18034: 0x00009D73,
+ 18035: 0x00009D7B,
+ 18036: 0x00009D82,
+ 18037: 0x00009D6F,
+ 18038: 0x00009D79,
+ 18039: 0x00009D7F,
+ 18040: 0x00009D87,
+ 18041: 0x00009D68,
+ 18042: 0x00009E94,
+ 18043: 0x00009E91,
+ 18044: 0x00009EC0,
+ 18045: 0x00009EFC,
+ 18046: 0x00009F2D,
+ 18047: 0x00009F40,
+ 18048: 0x00009F41,
+ 18049: 0x00009F4D,
+ 18050: 0x00009F56,
+ 18051: 0x00009F57,
+ 18052: 0x00009F58,
+ 18053: 0x00005337,
+ 18054: 0x000056B2,
+ 18055: 0x000056B5,
+ 18056: 0x000056B3,
+ 18057: 0x000058E3,
+ 18058: 0x00005B45,
+ 18059: 0x00005DC6,
+ 18060: 0x00005DC7,
+ 18061: 0x00005EEE,
+ 18062: 0x00005EEF,
+ 18063: 0x00005FC0,
+ 18064: 0x00005FC1,
+ 18065: 0x000061F9,
+ 18066: 0x00006517,
+ 18067: 0x00006516,
+ 18068: 0x00006515,
+ 18069: 0x00006513,
+ 18070: 0x000065DF,
+ 18071: 0x000066E8,
+ 18072: 0x000066E3,
+ 18073: 0x000066E4,
+ 18074: 0x00006AF3,
+ 18075: 0x00006AF0,
+ 18076: 0x00006AEA,
+ 18077: 0x00006AE8,
+ 18078: 0x00006AF9,
+ 18079: 0x00006AF1,
+ 18080: 0x00006AEE,
+ 18081: 0x00006AEF,
+ 18082: 0x0000703C,
+ 18083: 0x00007035,
+ 18084: 0x0000702F,
+ 18085: 0x00007037,
+ 18086: 0x00007034,
+ 18087: 0x00007031,
+ 18088: 0x00007042,
+ 18089: 0x00007038,
+ 18090: 0x0000703F,
+ 18091: 0x0000703A,
+ 18092: 0x00007039,
+ 18093: 0x00007040,
+ 18094: 0x0000703B,
+ 18095: 0x00007033,
+ 18096: 0x00007041,
+ 18097: 0x00007213,
+ 18098: 0x00007214,
+ 18099: 0x000072A8,
+ 18100: 0x0000737D,
+ 18101: 0x0000737C,
+ 18102: 0x000074BA,
+ 18103: 0x000076AB,
+ 18104: 0x000076AA,
+ 18105: 0x000076BE,
+ 18106: 0x000076ED,
+ 18107: 0x000077CC,
+ 18108: 0x000077CE,
+ 18109: 0x000077CF,
+ 18110: 0x000077CD,
+ 18111: 0x000077F2,
+ 18112: 0x00007925,
+ 18113: 0x00007923,
+ 18114: 0x00007927,
+ 18115: 0x00007928,
+ 18116: 0x00007924,
+ 18117: 0x00007929,
+ 18118: 0x000079B2,
+ 18119: 0x00007A6E,
+ 18120: 0x00007A6C,
+ 18121: 0x00007A6D,
+ 18122: 0x00007AF7,
+ 18123: 0x00007C49,
+ 18124: 0x00007C48,
+ 18125: 0x00007C4A,
+ 18126: 0x00007C47,
+ 18127: 0x00007C45,
+ 18128: 0x00007CEE,
+ 18129: 0x00007E7B,
+ 18130: 0x00007E7E,
+ 18131: 0x00007E81,
+ 18132: 0x00007E80,
+ 18133: 0x00007FBA,
+ 18134: 0x00007FFF,
+ 18135: 0x00008079,
+ 18136: 0x000081DB,
+ 18137: 0x000081D9,
+ 18138: 0x0000820B,
+ 18139: 0x00008268,
+ 18140: 0x00008269,
+ 18141: 0x00008622,
+ 18142: 0x000085FF,
+ 18143: 0x00008601,
+ 18144: 0x000085FE,
+ 18145: 0x0000861B,
+ 18146: 0x00008600,
+ 18147: 0x000085F6,
+ 18148: 0x00008604,
+ 18149: 0x00008609,
+ 18150: 0x00008605,
+ 18151: 0x0000860C,
+ 18152: 0x000085FD,
+ 18153: 0x00008819,
+ 18154: 0x00008810,
+ 18155: 0x00008811,
+ 18156: 0x00008817,
+ 18157: 0x00008813,
+ 18158: 0x00008816,
+ 18159: 0x00008963,
+ 18160: 0x00008966,
+ 18161: 0x000089B9,
+ 18162: 0x000089F7,
+ 18163: 0x00008B60,
+ 18164: 0x00008B6A,
+ 18165: 0x00008B5D,
+ 18166: 0x00008B68,
+ 18167: 0x00008B63,
+ 18168: 0x00008B65,
+ 18169: 0x00008B67,
+ 18170: 0x00008B6D,
+ 18171: 0x00008DAE,
+ 18172: 0x00008E86,
+ 18173: 0x00008E88,
+ 18174: 0x00008E84,
+ 18175: 0x00008F59,
+ 18176: 0x00008F56,
+ 18177: 0x00008F57,
+ 18178: 0x00008F55,
+ 18179: 0x00008F58,
+ 18180: 0x00008F5A,
+ 18181: 0x0000908D,
+ 18182: 0x00009143,
+ 18183: 0x00009141,
+ 18184: 0x000091B7,
+ 18185: 0x000091B5,
+ 18186: 0x000091B2,
+ 18187: 0x000091B3,
+ 18188: 0x0000940B,
+ 18189: 0x00009413,
+ 18190: 0x000093FB,
+ 18191: 0x00009420,
+ 18192: 0x0000940F,
+ 18193: 0x00009414,
+ 18194: 0x000093FE,
+ 18195: 0x00009415,
+ 18196: 0x00009410,
+ 18197: 0x00009428,
+ 18198: 0x00009419,
+ 18199: 0x0000940D,
+ 18200: 0x000093F5,
+ 18201: 0x00009400,
+ 18202: 0x000093F7,
+ 18203: 0x00009407,
+ 18204: 0x0000940E,
+ 18205: 0x00009416,
+ 18206: 0x00009412,
+ 18207: 0x000093FA,
+ 18208: 0x00009409,
+ 18209: 0x000093F8,
+ 18210: 0x0000940A,
+ 18211: 0x000093FF,
+ 18212: 0x000093FC,
+ 18213: 0x0000940C,
+ 18214: 0x000093F6,
+ 18215: 0x00009411,
+ 18216: 0x00009406,
+ 18217: 0x000095DE,
+ 18218: 0x000095E0,
+ 18219: 0x000095DF,
+ 18220: 0x0000972E,
+ 18221: 0x0000972F,
+ 18222: 0x000097B9,
+ 18223: 0x000097BB,
+ 18224: 0x000097FD,
+ 18225: 0x000097FE,
+ 18226: 0x00009860,
+ 18227: 0x00009862,
+ 18228: 0x00009863,
+ 18229: 0x0000985F,
+ 18230: 0x000098C1,
+ 18231: 0x000098C2,
+ 18232: 0x00009950,
+ 18233: 0x0000994E,
+ 18234: 0x00009959,
+ 18235: 0x0000994C,
+ 18236: 0x0000994B,
+ 18237: 0x00009953,
+ 18238: 0x00009A32,
+ 18239: 0x00009A34,
+ 18240: 0x00009A31,
+ 18241: 0x00009A2C,
+ 18242: 0x00009A2A,
+ 18243: 0x00009A36,
+ 18244: 0x00009A29,
+ 18245: 0x00009A2E,
+ 18246: 0x00009A38,
+ 18247: 0x00009A2D,
+ 18248: 0x00009AC7,
+ 18249: 0x00009ACA,
+ 18250: 0x00009AC6,
+ 18251: 0x00009B10,
+ 18252: 0x00009B12,
+ 18253: 0x00009B11,
+ 18254: 0x00009C0B,
+ 18255: 0x00009C08,
+ 18256: 0x00009BF7,
+ 18257: 0x00009C05,
+ 18258: 0x00009C12,
+ 18259: 0x00009BF8,
+ 18260: 0x00009C40,
+ 18261: 0x00009C07,
+ 18262: 0x00009C0E,
+ 18263: 0x00009C06,
+ 18264: 0x00009C17,
+ 18265: 0x00009C14,
+ 18266: 0x00009C09,
+ 18267: 0x00009D9F,
+ 18268: 0x00009D99,
+ 18269: 0x00009DA4,
+ 18270: 0x00009D9D,
+ 18271: 0x00009D92,
+ 18272: 0x00009D98,
+ 18273: 0x00009D90,
+ 18274: 0x00009D9B,
+ 18275: 0x00009DA0,
+ 18276: 0x00009D94,
+ 18277: 0x00009D9C,
+ 18278: 0x00009DAA,
+ 18279: 0x00009D97,
+ 18280: 0x00009DA1,
+ 18281: 0x00009D9A,
+ 18282: 0x00009DA2,
+ 18283: 0x00009DA8,
+ 18284: 0x00009D9E,
+ 18285: 0x00009DA3,
+ 18286: 0x00009DBF,
+ 18287: 0x00009DA9,
+ 18288: 0x00009D96,
+ 18289: 0x00009DA6,
+ 18290: 0x00009DA7,
+ 18291: 0x00009E99,
+ 18292: 0x00009E9B,
+ 18293: 0x00009E9A,
+ 18294: 0x00009EE5,
+ 18295: 0x00009EE4,
+ 18296: 0x00009EE7,
+ 18297: 0x00009EE6,
+ 18298: 0x00009F30,
+ 18299: 0x00009F2E,
+ 18300: 0x00009F5B,
+ 18301: 0x00009F60,
+ 18302: 0x00009F5E,
+ 18303: 0x00009F5D,
+ 18304: 0x00009F59,
+ 18305: 0x00009F91,
+ 18306: 0x0000513A,
+ 18307: 0x00005139,
+ 18308: 0x00005298,
+ 18309: 0x00005297,
+ 18310: 0x000056C3,
+ 18311: 0x000056BD,
+ 18312: 0x000056BE,
+ 18313: 0x00005B48,
+ 18314: 0x00005B47,
+ 18315: 0x00005DCB,
+ 18316: 0x00005DCF,
+ 18317: 0x00005EF1,
+ 18318: 0x000061FD,
+ 18319: 0x0000651B,
+ 18320: 0x00006B02,
+ 18321: 0x00006AFC,
+ 18322: 0x00006B03,
+ 18323: 0x00006AF8,
+ 18324: 0x00006B00,
+ 18325: 0x00007043,
+ 18326: 0x00007044,
+ 18327: 0x0000704A,
+ 18328: 0x00007048,
+ 18329: 0x00007049,
+ 18330: 0x00007045,
+ 18331: 0x00007046,
+ 18332: 0x0000721D,
+ 18333: 0x0000721A,
+ 18334: 0x00007219,
+ 18335: 0x0000737E,
+ 18336: 0x00007517,
+ 18337: 0x0000766A,
+ 18338: 0x000077D0,
+ 18339: 0x0000792D,
+ 18340: 0x00007931,
+ 18341: 0x0000792F,
+ 18342: 0x00007C54,
+ 18343: 0x00007C53,
+ 18344: 0x00007CF2,
+ 18345: 0x00007E8A,
+ 18346: 0x00007E87,
+ 18347: 0x00007E88,
+ 18348: 0x00007E8B,
+ 18349: 0x00007E86,
+ 18350: 0x00007E8D,
+ 18351: 0x00007F4D,
+ 18352: 0x00007FBB,
+ 18353: 0x00008030,
+ 18354: 0x000081DD,
+ 18355: 0x00008618,
+ 18356: 0x0000862A,
+ 18357: 0x00008626,
+ 18358: 0x0000861F,
+ 18359: 0x00008623,
+ 18360: 0x0000861C,
+ 18361: 0x00008619,
+ 18362: 0x00008627,
+ 18363: 0x0000862E,
+ 18364: 0x00008621,
+ 18365: 0x00008620,
+ 18366: 0x00008629,
+ 18367: 0x0000861E,
+ 18368: 0x00008625,
+ 18369: 0x00008829,
+ 18370: 0x0000881D,
+ 18371: 0x0000881B,
+ 18372: 0x00008820,
+ 18373: 0x00008824,
+ 18374: 0x0000881C,
+ 18375: 0x0000882B,
+ 18376: 0x0000884A,
+ 18377: 0x0000896D,
+ 18378: 0x00008969,
+ 18379: 0x0000896E,
+ 18380: 0x0000896B,
+ 18381: 0x000089FA,
+ 18382: 0x00008B79,
+ 18383: 0x00008B78,
+ 18384: 0x00008B45,
+ 18385: 0x00008B7A,
+ 18386: 0x00008B7B,
+ 18387: 0x00008D10,
+ 18388: 0x00008D14,
+ 18389: 0x00008DAF,
+ 18390: 0x00008E8E,
+ 18391: 0x00008E8C,
+ 18392: 0x00008F5E,
+ 18393: 0x00008F5B,
+ 18394: 0x00008F5D,
+ 18395: 0x00009146,
+ 18396: 0x00009144,
+ 18397: 0x00009145,
+ 18398: 0x000091B9,
+ 18399: 0x0000943F,
+ 18400: 0x0000943B,
+ 18401: 0x00009436,
+ 18402: 0x00009429,
+ 18403: 0x0000943D,
+ 18404: 0x0000943C,
+ 18405: 0x00009430,
+ 18406: 0x00009439,
+ 18407: 0x0000942A,
+ 18408: 0x00009437,
+ 18409: 0x0000942C,
+ 18410: 0x00009440,
+ 18411: 0x00009431,
+ 18412: 0x000095E5,
+ 18413: 0x000095E4,
+ 18414: 0x000095E3,
+ 18415: 0x00009735,
+ 18416: 0x0000973A,
+ 18417: 0x000097BF,
+ 18418: 0x000097E1,
+ 18419: 0x00009864,
+ 18420: 0x000098C9,
+ 18421: 0x000098C6,
+ 18422: 0x000098C0,
+ 18423: 0x00009958,
+ 18424: 0x00009956,
+ 18425: 0x00009A39,
+ 18426: 0x00009A3D,
+ 18427: 0x00009A46,
+ 18428: 0x00009A44,
+ 18429: 0x00009A42,
+ 18430: 0x00009A41,
+ 18431: 0x00009A3A,
+ 18432: 0x00009A3F,
+ 18433: 0x00009ACD,
+ 18434: 0x00009B15,
+ 18435: 0x00009B17,
+ 18436: 0x00009B18,
+ 18437: 0x00009B16,
+ 18438: 0x00009B3A,
+ 18439: 0x00009B52,
+ 18440: 0x00009C2B,
+ 18441: 0x00009C1D,
+ 18442: 0x00009C1C,
+ 18443: 0x00009C2C,
+ 18444: 0x00009C23,
+ 18445: 0x00009C28,
+ 18446: 0x00009C29,
+ 18447: 0x00009C24,
+ 18448: 0x00009C21,
+ 18449: 0x00009DB7,
+ 18450: 0x00009DB6,
+ 18451: 0x00009DBC,
+ 18452: 0x00009DC1,
+ 18453: 0x00009DC7,
+ 18454: 0x00009DCA,
+ 18455: 0x00009DCF,
+ 18456: 0x00009DBE,
+ 18457: 0x00009DC5,
+ 18458: 0x00009DC3,
+ 18459: 0x00009DBB,
+ 18460: 0x00009DB5,
+ 18461: 0x00009DCE,
+ 18462: 0x00009DB9,
+ 18463: 0x00009DBA,
+ 18464: 0x00009DAC,
+ 18465: 0x00009DC8,
+ 18466: 0x00009DB1,
+ 18467: 0x00009DAD,
+ 18468: 0x00009DCC,
+ 18469: 0x00009DB3,
+ 18470: 0x00009DCD,
+ 18471: 0x00009DB2,
+ 18472: 0x00009E7A,
+ 18473: 0x00009E9C,
+ 18474: 0x00009EEB,
+ 18475: 0x00009EEE,
+ 18476: 0x00009EED,
+ 18477: 0x00009F1B,
+ 18478: 0x00009F18,
+ 18479: 0x00009F1A,
+ 18480: 0x00009F31,
+ 18481: 0x00009F4E,
+ 18482: 0x00009F65,
+ 18483: 0x00009F64,
+ 18484: 0x00009F92,
+ 18485: 0x00004EB9,
+ 18486: 0x000056C6,
+ 18487: 0x000056C5,
+ 18488: 0x000056CB,
+ 18489: 0x00005971,
+ 18490: 0x00005B4B,
+ 18491: 0x00005B4C,
+ 18492: 0x00005DD5,
+ 18493: 0x00005DD1,
+ 18494: 0x00005EF2,
+ 18495: 0x00006521,
+ 18496: 0x00006520,
+ 18497: 0x00006526,
+ 18498: 0x00006522,
+ 18499: 0x00006B0B,
+ 18500: 0x00006B08,
+ 18501: 0x00006B09,
+ 18502: 0x00006C0D,
+ 18503: 0x00007055,
+ 18504: 0x00007056,
+ 18505: 0x00007057,
+ 18506: 0x00007052,
+ 18507: 0x0000721E,
+ 18508: 0x0000721F,
+ 18509: 0x000072A9,
+ 18510: 0x0000737F,
+ 18511: 0x000074D8,
+ 18512: 0x000074D5,
+ 18513: 0x000074D9,
+ 18514: 0x000074D7,
+ 18515: 0x0000766D,
+ 18516: 0x000076AD,
+ 18517: 0x00007935,
+ 18518: 0x000079B4,
+ 18519: 0x00007A70,
+ 18520: 0x00007A71,
+ 18521: 0x00007C57,
+ 18522: 0x00007C5C,
+ 18523: 0x00007C59,
+ 18524: 0x00007C5B,
+ 18525: 0x00007C5A,
+ 18526: 0x00007CF4,
+ 18527: 0x00007CF1,
+ 18528: 0x00007E91,
+ 18529: 0x00007F4F,
+ 18530: 0x00007F87,
+ 18531: 0x000081DE,
+ 18532: 0x0000826B,
+ 18533: 0x00008634,
+ 18534: 0x00008635,
+ 18535: 0x00008633,
+ 18536: 0x0000862C,
+ 18537: 0x00008632,
+ 18538: 0x00008636,
+ 18539: 0x0000882C,
+ 18540: 0x00008828,
+ 18541: 0x00008826,
+ 18542: 0x0000882A,
+ 18543: 0x00008825,
+ 18544: 0x00008971,
+ 18545: 0x000089BF,
+ 18546: 0x000089BE,
+ 18547: 0x000089FB,
+ 18548: 0x00008B7E,
+ 18549: 0x00008B84,
+ 18550: 0x00008B82,
+ 18551: 0x00008B86,
+ 18552: 0x00008B85,
+ 18553: 0x00008B7F,
+ 18554: 0x00008D15,
+ 18555: 0x00008E95,
+ 18556: 0x00008E94,
+ 18557: 0x00008E9A,
+ 18558: 0x00008E92,
+ 18559: 0x00008E90,
+ 18560: 0x00008E96,
+ 18561: 0x00008E97,
+ 18562: 0x00008F60,
+ 18563: 0x00008F62,
+ 18564: 0x00009147,
+ 18565: 0x0000944C,
+ 18566: 0x00009450,
+ 18567: 0x0000944A,
+ 18568: 0x0000944B,
+ 18569: 0x0000944F,
+ 18570: 0x00009447,
+ 18571: 0x00009445,
+ 18572: 0x00009448,
+ 18573: 0x00009449,
+ 18574: 0x00009446,
+ 18575: 0x0000973F,
+ 18576: 0x000097E3,
+ 18577: 0x0000986A,
+ 18578: 0x00009869,
+ 18579: 0x000098CB,
+ 18580: 0x00009954,
+ 18581: 0x0000995B,
+ 18582: 0x00009A4E,
+ 18583: 0x00009A53,
+ 18584: 0x00009A54,
+ 18585: 0x00009A4C,
+ 18586: 0x00009A4F,
+ 18587: 0x00009A48,
+ 18588: 0x00009A4A,
+ 18589: 0x00009A49,
+ 18590: 0x00009A52,
+ 18591: 0x00009A50,
+ 18592: 0x00009AD0,
+ 18593: 0x00009B19,
+ 18594: 0x00009B2B,
+ 18595: 0x00009B3B,
+ 18596: 0x00009B56,
+ 18597: 0x00009B55,
+ 18598: 0x00009C46,
+ 18599: 0x00009C48,
+ 18600: 0x00009C3F,
+ 18601: 0x00009C44,
+ 18602: 0x00009C39,
+ 18603: 0x00009C33,
+ 18604: 0x00009C41,
+ 18605: 0x00009C3C,
+ 18606: 0x00009C37,
+ 18607: 0x00009C34,
+ 18608: 0x00009C32,
+ 18609: 0x00009C3D,
+ 18610: 0x00009C36,
+ 18611: 0x00009DDB,
+ 18612: 0x00009DD2,
+ 18613: 0x00009DDE,
+ 18614: 0x00009DDA,
+ 18615: 0x00009DCB,
+ 18616: 0x00009DD0,
+ 18617: 0x00009DDC,
+ 18618: 0x00009DD1,
+ 18619: 0x00009DDF,
+ 18620: 0x00009DE9,
+ 18621: 0x00009DD9,
+ 18622: 0x00009DD8,
+ 18623: 0x00009DD6,
+ 18624: 0x00009DF5,
+ 18625: 0x00009DD5,
+ 18626: 0x00009DDD,
+ 18627: 0x00009EB6,
+ 18628: 0x00009EF0,
+ 18629: 0x00009F35,
+ 18630: 0x00009F33,
+ 18631: 0x00009F32,
+ 18632: 0x00009F42,
+ 18633: 0x00009F6B,
+ 18634: 0x00009F95,
+ 18635: 0x00009FA2,
+ 18636: 0x0000513D,
+ 18637: 0x00005299,
+ 18638: 0x000058E8,
+ 18639: 0x000058E7,
+ 18640: 0x00005972,
+ 18641: 0x00005B4D,
+ 18642: 0x00005DD8,
+ 18643: 0x0000882F,
+ 18644: 0x00005F4F,
+ 18645: 0x00006201,
+ 18646: 0x00006203,
+ 18647: 0x00006204,
+ 18648: 0x00006529,
+ 18649: 0x00006525,
+ 18650: 0x00006596,
+ 18651: 0x000066EB,
+ 18652: 0x00006B11,
+ 18653: 0x00006B12,
+ 18654: 0x00006B0F,
+ 18655: 0x00006BCA,
+ 18656: 0x0000705B,
+ 18657: 0x0000705A,
+ 18658: 0x00007222,
+ 18659: 0x00007382,
+ 18660: 0x00007381,
+ 18661: 0x00007383,
+ 18662: 0x00007670,
+ 18663: 0x000077D4,
+ 18664: 0x00007C67,
+ 18665: 0x00007C66,
+ 18666: 0x00007E95,
+ 18667: 0x0000826C,
+ 18668: 0x0000863A,
+ 18669: 0x00008640,
+ 18670: 0x00008639,
+ 18671: 0x0000863C,
+ 18672: 0x00008631,
+ 18673: 0x0000863B,
+ 18674: 0x0000863E,
+ 18675: 0x00008830,
+ 18676: 0x00008832,
+ 18677: 0x0000882E,
+ 18678: 0x00008833,
+ 18679: 0x00008976,
+ 18680: 0x00008974,
+ 18681: 0x00008973,
+ 18682: 0x000089FE,
+ 18683: 0x00008B8C,
+ 18684: 0x00008B8E,
+ 18685: 0x00008B8B,
+ 18686: 0x00008B88,
+ 18687: 0x00008C45,
+ 18688: 0x00008D19,
+ 18689: 0x00008E98,
+ 18690: 0x00008F64,
+ 18691: 0x00008F63,
+ 18692: 0x000091BC,
+ 18693: 0x00009462,
+ 18694: 0x00009455,
+ 18695: 0x0000945D,
+ 18696: 0x00009457,
+ 18697: 0x0000945E,
+ 18698: 0x000097C4,
+ 18699: 0x000097C5,
+ 18700: 0x00009800,
+ 18701: 0x00009A56,
+ 18702: 0x00009A59,
+ 18703: 0x00009B1E,
+ 18704: 0x00009B1F,
+ 18705: 0x00009B20,
+ 18706: 0x00009C52,
+ 18707: 0x00009C58,
+ 18708: 0x00009C50,
+ 18709: 0x00009C4A,
+ 18710: 0x00009C4D,
+ 18711: 0x00009C4B,
+ 18712: 0x00009C55,
+ 18713: 0x00009C59,
+ 18714: 0x00009C4C,
+ 18715: 0x00009C4E,
+ 18716: 0x00009DFB,
+ 18717: 0x00009DF7,
+ 18718: 0x00009DEF,
+ 18719: 0x00009DE3,
+ 18720: 0x00009DEB,
+ 18721: 0x00009DF8,
+ 18722: 0x00009DE4,
+ 18723: 0x00009DF6,
+ 18724: 0x00009DE1,
+ 18725: 0x00009DEE,
+ 18726: 0x00009DE6,
+ 18727: 0x00009DF2,
+ 18728: 0x00009DF0,
+ 18729: 0x00009DE2,
+ 18730: 0x00009DEC,
+ 18731: 0x00009DF4,
+ 18732: 0x00009DF3,
+ 18733: 0x00009DE8,
+ 18734: 0x00009DED,
+ 18735: 0x00009EC2,
+ 18736: 0x00009ED0,
+ 18737: 0x00009EF2,
+ 18738: 0x00009EF3,
+ 18739: 0x00009F06,
+ 18740: 0x00009F1C,
+ 18741: 0x00009F38,
+ 18742: 0x00009F37,
+ 18743: 0x00009F36,
+ 18744: 0x00009F43,
+ 18745: 0x00009F4F,
+ 18746: 0x00009F71,
+ 18747: 0x00009F70,
+ 18748: 0x00009F6E,
+ 18749: 0x00009F6F,
+ 18750: 0x000056D3,
+ 18751: 0x000056CD,
+ 18752: 0x00005B4E,
+ 18753: 0x00005C6D,
+ 18754: 0x0000652D,
+ 18755: 0x000066ED,
+ 18756: 0x000066EE,
+ 18757: 0x00006B13,
+ 18758: 0x0000705F,
+ 18759: 0x00007061,
+ 18760: 0x0000705D,
+ 18761: 0x00007060,
+ 18762: 0x00007223,
+ 18763: 0x000074DB,
+ 18764: 0x000074E5,
+ 18765: 0x000077D5,
+ 18766: 0x00007938,
+ 18767: 0x000079B7,
+ 18768: 0x000079B6,
+ 18769: 0x00007C6A,
+ 18770: 0x00007E97,
+ 18771: 0x00007F89,
+ 18772: 0x0000826D,
+ 18773: 0x00008643,
+ 18774: 0x00008838,
+ 18775: 0x00008837,
+ 18776: 0x00008835,
+ 18777: 0x0000884B,
+ 18778: 0x00008B94,
+ 18779: 0x00008B95,
+ 18780: 0x00008E9E,
+ 18781: 0x00008E9F,
+ 18782: 0x00008EA0,
+ 18783: 0x00008E9D,
+ 18784: 0x000091BE,
+ 18785: 0x000091BD,
+ 18786: 0x000091C2,
+ 18787: 0x0000946B,
+ 18788: 0x00009468,
+ 18789: 0x00009469,
+ 18790: 0x000096E5,
+ 18791: 0x00009746,
+ 18792: 0x00009743,
+ 18793: 0x00009747,
+ 18794: 0x000097C7,
+ 18795: 0x000097E5,
+ 18796: 0x00009A5E,
+ 18797: 0x00009AD5,
+ 18798: 0x00009B59,
+ 18799: 0x00009C63,
+ 18800: 0x00009C67,
+ 18801: 0x00009C66,
+ 18802: 0x00009C62,
+ 18803: 0x00009C5E,
+ 18804: 0x00009C60,
+ 18805: 0x00009E02,
+ 18806: 0x00009DFE,
+ 18807: 0x00009E07,
+ 18808: 0x00009E03,
+ 18809: 0x00009E06,
+ 18810: 0x00009E05,
+ 18811: 0x00009E00,
+ 18812: 0x00009E01,
+ 18813: 0x00009E09,
+ 18814: 0x00009DFF,
+ 18815: 0x00009DFD,
+ 18816: 0x00009E04,
+ 18817: 0x00009EA0,
+ 18818: 0x00009F1E,
+ 18819: 0x00009F46,
+ 18820: 0x00009F74,
+ 18821: 0x00009F75,
+ 18822: 0x00009F76,
+ 18823: 0x000056D4,
+ 18824: 0x0000652E,
+ 18825: 0x000065B8,
+ 18826: 0x00006B18,
+ 18827: 0x00006B19,
+ 18828: 0x00006B17,
+ 18829: 0x00006B1A,
+ 18830: 0x00007062,
+ 18831: 0x00007226,
+ 18832: 0x000072AA,
+ 18833: 0x000077D8,
+ 18834: 0x000077D9,
+ 18835: 0x00007939,
+ 18836: 0x00007C69,
+ 18837: 0x00007C6B,
+ 18838: 0x00007CF6,
+ 18839: 0x00007E9A,
+ 18840: 0x00007E98,
+ 18841: 0x00007E9B,
+ 18842: 0x00007E99,
+ 18843: 0x000081E0,
+ 18844: 0x000081E1,
+ 18845: 0x00008646,
+ 18846: 0x00008647,
+ 18847: 0x00008648,
+ 18848: 0x00008979,
+ 18849: 0x0000897A,
+ 18850: 0x0000897C,
+ 18851: 0x0000897B,
+ 18852: 0x000089FF,
+ 18853: 0x00008B98,
+ 18854: 0x00008B99,
+ 18855: 0x00008EA5,
+ 18856: 0x00008EA4,
+ 18857: 0x00008EA3,
+ 18858: 0x0000946E,
+ 18859: 0x0000946D,
+ 18860: 0x0000946F,
+ 18861: 0x00009471,
+ 18862: 0x00009473,
+ 18863: 0x00009749,
+ 18864: 0x00009872,
+ 18865: 0x0000995F,
+ 18866: 0x00009C68,
+ 18867: 0x00009C6E,
+ 18868: 0x00009C6D,
+ 18869: 0x00009E0B,
+ 18870: 0x00009E0D,
+ 18871: 0x00009E10,
+ 18872: 0x00009E0F,
+ 18873: 0x00009E12,
+ 18874: 0x00009E11,
+ 18875: 0x00009EA1,
+ 18876: 0x00009EF5,
+ 18877: 0x00009F09,
+ 18878: 0x00009F47,
+ 18879: 0x00009F78,
+ 18880: 0x00009F7B,
+ 18881: 0x00009F7A,
+ 18882: 0x00009F79,
+ 18883: 0x0000571E,
+ 18884: 0x00007066,
+ 18885: 0x00007C6F,
+ 18886: 0x0000883C,
+ 18887: 0x00008DB2,
+ 18888: 0x00008EA6,
+ 18889: 0x000091C3,
+ 18890: 0x00009474,
+ 18891: 0x00009478,
+ 18892: 0x00009476,
+ 18893: 0x00009475,
+ 18894: 0x00009A60,
+ 18895: 0x00009C74,
+ 18896: 0x00009C73,
+ 18897: 0x00009C71,
+ 18898: 0x00009C75,
+ 18899: 0x00009E14,
+ 18900: 0x00009E13,
+ 18901: 0x00009EF6,
+ 18902: 0x00009F0A,
+ 18903: 0x00009FA4,
+ 18904: 0x00007068,
+ 18905: 0x00007065,
+ 18906: 0x00007CF7,
+ 18907: 0x0000866A,
+ 18908: 0x0000883E,
+ 18909: 0x0000883D,
+ 18910: 0x0000883F,
+ 18911: 0x00008B9E,
+ 18912: 0x00008C9C,
+ 18913: 0x00008EA9,
+ 18914: 0x00008EC9,
+ 18915: 0x0000974B,
+ 18916: 0x00009873,
+ 18917: 0x00009874,
+ 18918: 0x000098CC,
+ 18919: 0x00009961,
+ 18920: 0x000099AB,
+ 18921: 0x00009A64,
+ 18922: 0x00009A66,
+ 18923: 0x00009A67,
+ 18924: 0x00009B24,
+ 18925: 0x00009E15,
+ 18926: 0x00009E17,
+ 18927: 0x00009F48,
+ 18928: 0x00006207,
+ 18929: 0x00006B1E,
+ 18930: 0x00007227,
+ 18931: 0x0000864C,
+ 18932: 0x00008EA8,
+ 18933: 0x00009482,
+ 18934: 0x00009480,
+ 18935: 0x00009481,
+ 18936: 0x00009A69,
+ 18937: 0x00009A68,
+ 18938: 0x00009B2E,
+ 18939: 0x00009E19,
+ 18940: 0x00007229,
+ 18941: 0x0000864B,
+ 18942: 0x00008B9F,
+ 18943: 0x00009483,
+ 18944: 0x00009C79,
+ 18945: 0x00009EB7,
+ 18946: 0x00007675,
+ 18947: 0x00009A6B,
+ 18948: 0x00009C7A,
+ 18949: 0x00009E1D,
+ 18950: 0x00007069,
+ 18951: 0x0000706A,
+ 18952: 0x00009EA4,
+ 18953: 0x00009F7E,
+ 18954: 0x00009F49,
+ 18955: 0x00009F98,
+ 18956: 0x00007881,
+ 18957: 0x000092B9,
+ 18958: 0x000088CF,
+ 18959: 0x000058BB,
+ 18960: 0x00006052,
+ 18961: 0x00007CA7,
+ 18962: 0x00005AFA,
+ 18963: 0x00002554,
+ 18964: 0x00002566,
+ 18965: 0x00002557,
+ 18966: 0x00002560,
+ 18967: 0x0000256C,
+ 18968: 0x00002563,
+ 18969: 0x0000255A,
+ 18970: 0x00002569,
+ 18971: 0x0000255D,
+ 18972: 0x00002552,
+ 18973: 0x00002564,
+ 18974: 0x00002555,
+ 18975: 0x0000255E,
+ 18976: 0x0000256A,
+ 18977: 0x00002561,
+ 18978: 0x00002558,
+ 18979: 0x00002567,
+ 18980: 0x0000255B,
+ 18981: 0x00002553,
+ 18982: 0x00002565,
+ 18983: 0x00002556,
+ 18984: 0x0000255F,
+ 18985: 0x0000256B,
+ 18986: 0x00002562,
+ 18987: 0x00002559,
+ 18988: 0x00002568,
+ 18989: 0x0000255C,
+ 18990: 0x00002551,
+ 18991: 0x00002550,
+ 18992: 0x0000256D,
+ 18993: 0x0000256E,
+ 18994: 0x00002570,
+ 18995: 0x0000256F,
+ 18996: 0x0000FFED,
+ 18997: 0x00020547,
+ 18998: 0x000092DB,
+ 18999: 0x000205DF,
+ 19000: 0x00023FC5,
+ 19001: 0x0000854C,
+ 19002: 0x000042B5,
+ 19003: 0x000073EF,
+ 19004: 0x000051B5,
+ 19005: 0x00003649,
+ 19006: 0x00024942,
+ 19007: 0x000289E4,
+ 19008: 0x00009344,
+ 19009: 0x000219DB,
+ 19010: 0x000082EE,
+ 19011: 0x00023CC8,
+ 19012: 0x0000783C,
+ 19013: 0x00006744,
+ 19014: 0x000062DF,
+ 19015: 0x00024933,
+ 19016: 0x000289AA,
+ 19017: 0x000202A0,
+ 19018: 0x00026BB3,
+ 19019: 0x00021305,
+ 19020: 0x00004FAB,
+ 19021: 0x000224ED,
+ 19022: 0x00005008,
+ 19023: 0x00026D29,
+ 19024: 0x00027A84,
+ 19025: 0x00023600,
+ 19026: 0x00024AB1,
+ 19027: 0x00022513,
+ 19028: 0x00005029,
+ 19029: 0x0002037E,
+ 19030: 0x00005FA4,
+ 19031: 0x00020380,
+ 19032: 0x00020347,
+ 19033: 0x00006EDB,
+ 19034: 0x0002041F,
+ 19035: 0x0000507D,
+ 19036: 0x00005101,
+ 19037: 0x0000347A,
+ 19038: 0x0000510E,
+ 19039: 0x0000986C,
+ 19040: 0x00003743,
+ 19041: 0x00008416,
+ 19042: 0x000249A4,
+ 19043: 0x00020487,
+ 19044: 0x00005160,
+ 19045: 0x000233B4,
+ 19046: 0x0000516A,
+ 19047: 0x00020BFF,
+ 19048: 0x000220FC,
+ 19049: 0x000202E5,
+ 19050: 0x00022530,
+ 19051: 0x0002058E,
+ 19052: 0x00023233,
+ 19053: 0x00021983,
+ 19054: 0x00005B82,
+ 19055: 0x0000877D,
+ 19056: 0x000205B3,
+ 19057: 0x00023C99,
+ 19058: 0x000051B2,
+ 19059: 0x000051B8,
+ 19060: 0x00009D34,
+ 19061: 0x000051C9,
+ 19062: 0x000051CF,
+ 19063: 0x000051D1,
+ 19064: 0x00003CDC,
+ 19065: 0x000051D3,
+ 19066: 0x00024AA6,
+ 19067: 0x000051B3,
+ 19068: 0x000051E2,
+ 19069: 0x00005342,
+ 19070: 0x000051ED,
+ 19071: 0x000083CD,
+ 19072: 0x0000693E,
+ 19073: 0x0002372D,
+ 19074: 0x00005F7B,
+ 19075: 0x0000520B,
+ 19076: 0x00005226,
+ 19077: 0x0000523C,
+ 19078: 0x000052B5,
+ 19079: 0x00005257,
+ 19080: 0x00005294,
+ 19081: 0x000052B9,
+ 19082: 0x000052C5,
+ 19083: 0x00007C15,
+ 19084: 0x00008542,
+ 19085: 0x000052E0,
+ 19086: 0x0000860D,
+ 19087: 0x00026B13,
+ 19088: 0x00005305,
+ 19089: 0x00028ADE,
+ 19090: 0x00005549,
+ 19091: 0x00006ED9,
+ 19092: 0x00023F80,
+ 19093: 0x00020954,
+ 19094: 0x00023FEC,
+ 19095: 0x00005333,
+ 19096: 0x00005344,
+ 19097: 0x00020BE2,
+ 19098: 0x00006CCB,
+ 19099: 0x00021726,
+ 19100: 0x0000681B,
+ 19101: 0x000073D5,
+ 19102: 0x0000604A,
+ 19103: 0x00003EAA,
+ 19104: 0x000038CC,
+ 19105: 0x000216E8,
+ 19106: 0x000071DD,
+ 19107: 0x000044A2,
+ 19108: 0x0000536D,
+ 19109: 0x00005374,
+ 19110: 0x000286AB,
+ 19111: 0x0000537E,
+ 19112: 0x0000537F,
+ 19113: 0x00021596,
+ 19114: 0x00021613,
+ 19115: 0x000077E6,
+ 19116: 0x00005393,
+ 19117: 0x00028A9B,
+ 19118: 0x000053A0,
+ 19119: 0x000053AB,
+ 19120: 0x000053AE,
+ 19121: 0x000073A7,
+ 19122: 0x00025772,
+ 19123: 0x00003F59,
+ 19124: 0x0000739C,
+ 19125: 0x000053C1,
+ 19126: 0x000053C5,
+ 19127: 0x00006C49,
+ 19128: 0x00004E49,
+ 19129: 0x000057FE,
+ 19130: 0x000053D9,
+ 19131: 0x00003AAB,
+ 19132: 0x00020B8F,
+ 19133: 0x000053E0,
+ 19134: 0x00023FEB,
+ 19135: 0x00022DA3,
+ 19136: 0x000053F6,
+ 19137: 0x00020C77,
+ 19138: 0x00005413,
+ 19139: 0x00007079,
+ 19140: 0x0000552B,
+ 19141: 0x00006657,
+ 19142: 0x00006D5B,
+ 19143: 0x0000546D,
+ 19144: 0x00026B53,
+ 19145: 0x00020D74,
+ 19146: 0x0000555D,
+ 19147: 0x0000548F,
+ 19148: 0x000054A4,
+ 19149: 0x000047A6,
+ 19150: 0x0002170D,
+ 19151: 0x00020EDD,
+ 19152: 0x00003DB4,
+ 19153: 0x00020D4D,
+ 19154: 0x000289BC,
+ 19155: 0x00022698,
+ 19156: 0x00005547,
+ 19157: 0x00004CED,
+ 19158: 0x0000542F,
+ 19159: 0x00007417,
+ 19160: 0x00005586,
+ 19161: 0x000055A9,
+ 19162: 0x00005605,
+ 19163: 0x000218D7,
+ 19164: 0x0002403A,
+ 19165: 0x00004552,
+ 19166: 0x00024435,
+ 19167: 0x000066B3,
+ 19168: 0x000210B4,
+ 19169: 0x00005637,
+ 19170: 0x000066CD,
+ 19171: 0x0002328A,
+ 19172: 0x000066A4,
+ 19173: 0x000066AD,
+ 19174: 0x0000564D,
+ 19175: 0x0000564F,
+ 19176: 0x000078F1,
+ 19177: 0x000056F1,
+ 19178: 0x00009787,
+ 19179: 0x000053FE,
+ 19180: 0x00005700,
+ 19181: 0x000056EF,
+ 19182: 0x000056ED,
+ 19183: 0x00028B66,
+ 19184: 0x00003623,
+ 19185: 0x0002124F,
+ 19186: 0x00005746,
+ 19187: 0x000241A5,
+ 19188: 0x00006C6E,
+ 19189: 0x0000708B,
+ 19190: 0x00005742,
+ 19191: 0x000036B1,
+ 19192: 0x00026C7E,
+ 19193: 0x000057E6,
+ 19194: 0x00021416,
+ 19195: 0x00005803,
+ 19196: 0x00021454,
+ 19197: 0x00024363,
+ 19198: 0x00005826,
+ 19199: 0x00024BF5,
+ 19200: 0x0000585C,
+ 19201: 0x000058AA,
+ 19202: 0x00003561,
+ 19203: 0x000058E0,
+ 19204: 0x000058DC,
+ 19205: 0x0002123C,
+ 19206: 0x000058FB,
+ 19207: 0x00005BFF,
+ 19208: 0x00005743,
+ 19209: 0x0002A150,
+ 19210: 0x00024278,
+ 19211: 0x000093D3,
+ 19212: 0x000035A1,
+ 19213: 0x0000591F,
+ 19214: 0x000068A6,
+ 19215: 0x000036C3,
+ 19216: 0x00006E59,
+ 19217: 0x0002163E,
+ 19218: 0x00005A24,
+ 19219: 0x00005553,
+ 19220: 0x00021692,
+ 19221: 0x00008505,
+ 19222: 0x000059C9,
+ 19223: 0x00020D4E,
+ 19224: 0x00026C81,
+ 19225: 0x00026D2A,
+ 19226: 0x000217DC,
+ 19227: 0x000059D9,
+ 19228: 0x000217FB,
+ 19229: 0x000217B2,
+ 19230: 0x00026DA6,
+ 19231: 0x00006D71,
+ 19232: 0x00021828,
+ 19233: 0x000216D5,
+ 19234: 0x000059F9,
+ 19235: 0x00026E45,
+ 19236: 0x00005AAB,
+ 19237: 0x00005A63,
+ 19238: 0x000036E6,
+ 19239: 0x000249A9,
+ 19240: 0x00005A77,
+ 19241: 0x00003708,
+ 19242: 0x00005A96,
+ 19243: 0x00007465,
+ 19244: 0x00005AD3,
+ 19245: 0x00026FA1,
+ 19246: 0x00022554,
+ 19247: 0x00003D85,
+ 19248: 0x00021911,
+ 19249: 0x00003732,
+ 19250: 0x000216B8,
+ 19251: 0x00005E83,
+ 19252: 0x000052D0,
+ 19253: 0x00005B76,
+ 19254: 0x00006588,
+ 19255: 0x00005B7C,
+ 19256: 0x00027A0E,
+ 19257: 0x00004004,
+ 19258: 0x0000485D,
+ 19259: 0x00020204,
+ 19260: 0x00005BD5,
+ 19261: 0x00006160,
+ 19262: 0x00021A34,
+ 19263: 0x000259CC,
+ 19264: 0x000205A5,
+ 19265: 0x00005BF3,
+ 19266: 0x00005B9D,
+ 19267: 0x00004D10,
+ 19268: 0x00005C05,
+ 19269: 0x00021B44,
+ 19270: 0x00005C13,
+ 19271: 0x000073CE,
+ 19272: 0x00005C14,
+ 19273: 0x00021CA5,
+ 19274: 0x00026B28,
+ 19275: 0x00005C49,
+ 19276: 0x000048DD,
+ 19277: 0x00005C85,
+ 19278: 0x00005CE9,
+ 19279: 0x00005CEF,
+ 19280: 0x00005D8B,
+ 19281: 0x00021DF9,
+ 19282: 0x00021E37,
+ 19283: 0x00005D10,
+ 19284: 0x00005D18,
+ 19285: 0x00005D46,
+ 19286: 0x00021EA4,
+ 19287: 0x00005CBA,
+ 19288: 0x00005DD7,
+ 19289: 0x000082FC,
+ 19290: 0x0000382D,
+ 19291: 0x00024901,
+ 19292: 0x00022049,
+ 19293: 0x00022173,
+ 19294: 0x00008287,
+ 19295: 0x00003836,
+ 19296: 0x00003BC2,
+ 19297: 0x00005E2E,
+ 19298: 0x00006A8A,
+ 19299: 0x00005E75,
+ 19300: 0x00005E7A,
+ 19301: 0x000244BC,
+ 19302: 0x00020CD3,
+ 19303: 0x000053A6,
+ 19304: 0x00004EB7,
+ 19305: 0x00005ED0,
+ 19306: 0x000053A8,
+ 19307: 0x00021771,
+ 19308: 0x00005E09,
+ 19309: 0x00005EF4,
+ 19310: 0x00028482,
+ 19311: 0x00005EF9,
+ 19312: 0x00005EFB,
+ 19313: 0x000038A0,
+ 19314: 0x00005EFC,
+ 19315: 0x0000683E,
+ 19316: 0x0000941B,
+ 19317: 0x00005F0D,
+ 19318: 0x000201C1,
+ 19319: 0x0002F894,
+ 19320: 0x00003ADE,
+ 19321: 0x000048AE,
+ 19322: 0x0002133A,
+ 19323: 0x00005F3A,
+ 19324: 0x00026888,
+ 19325: 0x000223D0,
+ 19326: 0x00005F58,
+ 19327: 0x00022471,
+ 19328: 0x00005F63,
+ 19329: 0x000097BD,
+ 19330: 0x00026E6E,
+ 19331: 0x00005F72,
+ 19332: 0x00009340,
+ 19333: 0x00028A36,
+ 19334: 0x00005FA7,
+ 19335: 0x00005DB6,
+ 19336: 0x00003D5F,
+ 19337: 0x00025250,
+ 19338: 0x00021F6A,
+ 19339: 0x000270F8,
+ 19340: 0x00022668,
+ 19341: 0x000091D6,
+ 19342: 0x0002029E,
+ 19343: 0x00028A29,
+ 19344: 0x00006031,
+ 19345: 0x00006685,
+ 19346: 0x00021877,
+ 19347: 0x00003963,
+ 19348: 0x00003DC7,
+ 19349: 0x00003639,
+ 19350: 0x00005790,
+ 19351: 0x000227B4,
+ 19352: 0x00007971,
+ 19353: 0x00003E40,
+ 19354: 0x0000609E,
+ 19355: 0x000060A4,
+ 19356: 0x000060B3,
+ 19357: 0x00024982,
+ 19358: 0x0002498F,
+ 19359: 0x00027A53,
+ 19360: 0x000074A4,
+ 19361: 0x000050E1,
+ 19362: 0x00005AA0,
+ 19363: 0x00006164,
+ 19364: 0x00008424,
+ 19365: 0x00006142,
+ 19366: 0x0002F8A6,
+ 19367: 0x00026ED2,
+ 19368: 0x00006181,
+ 19369: 0x000051F4,
+ 19370: 0x00020656,
+ 19371: 0x00006187,
+ 19372: 0x00005BAA,
+ 19373: 0x00023FB7,
+ 19374: 0x0002285F,
+ 19375: 0x000061D3,
+ 19376: 0x00028B9D,
+ 19377: 0x0002995D,
+ 19378: 0x000061D0,
+ 19379: 0x00003932,
+ 19380: 0x00022980,
+ 19381: 0x000228C1,
+ 19382: 0x00006023,
+ 19383: 0x0000615C,
+ 19384: 0x0000651E,
+ 19385: 0x0000638B,
+ 19386: 0x00020118,
+ 19387: 0x000062C5,
+ 19388: 0x00021770,
+ 19389: 0x000062D5,
+ 19390: 0x00022E0D,
+ 19391: 0x0000636C,
+ 19392: 0x000249DF,
+ 19393: 0x00003A17,
+ 19394: 0x00006438,
+ 19395: 0x000063F8,
+ 19396: 0x0002138E,
+ 19397: 0x000217FC,
+ 19398: 0x00006490,
+ 19399: 0x00006F8A,
+ 19400: 0x00022E36,
+ 19401: 0x00009814,
+ 19402: 0x0002408C,
+ 19403: 0x0002571D,
+ 19404: 0x000064E1,
+ 19405: 0x000064E5,
+ 19406: 0x0000947B,
+ 19407: 0x00003A66,
+ 19408: 0x0000643A,
+ 19409: 0x00003A57,
+ 19410: 0x0000654D,
+ 19411: 0x00006F16,
+ 19412: 0x00024A28,
+ 19413: 0x00024A23,
+ 19414: 0x00006585,
+ 19415: 0x0000656D,
+ 19416: 0x0000655F,
+ 19417: 0x0002307E,
+ 19418: 0x000065B5,
+ 19419: 0x00024940,
+ 19420: 0x00004B37,
+ 19421: 0x000065D1,
+ 19422: 0x000040D8,
+ 19423: 0x00021829,
+ 19424: 0x000065E0,
+ 19425: 0x000065E3,
+ 19426: 0x00005FDF,
+ 19427: 0x00023400,
+ 19428: 0x00006618,
+ 19429: 0x000231F7,
+ 19430: 0x000231F8,
+ 19431: 0x00006644,
+ 19432: 0x000231A4,
+ 19433: 0x000231A5,
+ 19434: 0x0000664B,
+ 19435: 0x00020E75,
+ 19436: 0x00006667,
+ 19437: 0x000251E6,
+ 19438: 0x00006673,
+ 19439: 0x00006674,
+ 19440: 0x00021E3D,
+ 19441: 0x00023231,
+ 19442: 0x000285F4,
+ 19443: 0x000231C8,
+ 19444: 0x00025313,
+ 19445: 0x000077C5,
+ 19446: 0x000228F7,
+ 19447: 0x000099A4,
+ 19448: 0x00006702,
+ 19449: 0x0002439C,
+ 19450: 0x00024A21,
+ 19451: 0x00003B2B,
+ 19452: 0x000069FA,
+ 19453: 0x000237C2,
+ 19454: 0x0000675E,
+ 19455: 0x00006767,
+ 19456: 0x00006762,
+ 19457: 0x000241CD,
+ 19458: 0x000290ED,
+ 19459: 0x000067D7,
+ 19460: 0x000044E9,
+ 19461: 0x00006822,
+ 19462: 0x00006E50,
+ 19463: 0x0000923C,
+ 19464: 0x00006801,
+ 19465: 0x000233E6,
+ 19466: 0x00026DA0,
+ 19467: 0x0000685D,
+ 19468: 0x0002346F,
+ 19469: 0x000069E1,
+ 19470: 0x00006A0B,
+ 19471: 0x00028ADF,
+ 19472: 0x00006973,
+ 19473: 0x000068C3,
+ 19474: 0x000235CD,
+ 19475: 0x00006901,
+ 19476: 0x00006900,
+ 19477: 0x00003D32,
+ 19478: 0x00003A01,
+ 19479: 0x0002363C,
+ 19480: 0x00003B80,
+ 19481: 0x000067AC,
+ 19482: 0x00006961,
+ 19483: 0x00028A4A,
+ 19484: 0x000042FC,
+ 19485: 0x00006936,
+ 19486: 0x00006998,
+ 19487: 0x00003BA1,
+ 19488: 0x000203C9,
+ 19489: 0x00008363,
+ 19490: 0x00005090,
+ 19491: 0x000069F9,
+ 19492: 0x00023659,
+ 19493: 0x0002212A,
+ 19494: 0x00006A45,
+ 19495: 0x00023703,
+ 19496: 0x00006A9D,
+ 19497: 0x00003BF3,
+ 19498: 0x000067B1,
+ 19499: 0x00006AC8,
+ 19500: 0x0002919C,
+ 19501: 0x00003C0D,
+ 19502: 0x00006B1D,
+ 19503: 0x00020923,
+ 19504: 0x000060DE,
+ 19505: 0x00006B35,
+ 19506: 0x00006B74,
+ 19507: 0x000227CD,
+ 19508: 0x00006EB5,
+ 19509: 0x00023ADB,
+ 19510: 0x000203B5,
+ 19511: 0x00021958,
+ 19512: 0x00003740,
+ 19513: 0x00005421,
+ 19514: 0x00023B5A,
+ 19515: 0x00006BE1,
+ 19516: 0x00023EFC,
+ 19517: 0x00006BDC,
+ 19518: 0x00006C37,
+ 19519: 0x0002248B,
+ 19520: 0x000248F1,
+ 19521: 0x00026B51,
+ 19522: 0x00006C5A,
+ 19523: 0x00008226,
+ 19524: 0x00006C79,
+ 19525: 0x00023DBC,
+ 19526: 0x000044C5,
+ 19527: 0x00023DBD,
+ 19528: 0x000241A4,
+ 19529: 0x0002490C,
+ 19530: 0x00024900,
+ 19531: 0x00023CC9,
+ 19532: 0x000036E5,
+ 19533: 0x00003CEB,
+ 19534: 0x00020D32,
+ 19535: 0x00009B83,
+ 19536: 0x000231F9,
+ 19537: 0x00022491,
+ 19538: 0x00007F8F,
+ 19539: 0x00006837,
+ 19540: 0x00026D25,
+ 19541: 0x00026DA1,
+ 19542: 0x00026DEB,
+ 19543: 0x00006D96,
+ 19544: 0x00006D5C,
+ 19545: 0x00006E7C,
+ 19546: 0x00006F04,
+ 19547: 0x0002497F,
+ 19548: 0x00024085,
+ 19549: 0x00026E72,
+ 19550: 0x00008533,
+ 19551: 0x00026F74,
+ 19552: 0x000051C7,
+ 19553: 0x00006C9C,
+ 19554: 0x00006E1D,
+ 19555: 0x0000842E,
+ 19556: 0x00028B21,
+ 19557: 0x00006E2F,
+ 19558: 0x00023E2F,
+ 19559: 0x00007453,
+ 19560: 0x00023F82,
+ 19561: 0x000079CC,
+ 19562: 0x00006E4F,
+ 19563: 0x00005A91,
+ 19564: 0x0002304B,
+ 19565: 0x00006FF8,
+ 19566: 0x0000370D,
+ 19567: 0x00006F9D,
+ 19568: 0x00023E30,
+ 19569: 0x00006EFA,
+ 19570: 0x00021497,
+ 19571: 0x0002403D,
+ 19572: 0x00004555,
+ 19573: 0x000093F0,
+ 19574: 0x00006F44,
+ 19575: 0x00006F5C,
+ 19576: 0x00003D4E,
+ 19577: 0x00006F74,
+ 19578: 0x00029170,
+ 19579: 0x00003D3B,
+ 19580: 0x00006F9F,
+ 19581: 0x00024144,
+ 19582: 0x00006FD3,
+ 19583: 0x00024091,
+ 19584: 0x00024155,
+ 19585: 0x00024039,
+ 19586: 0x00023FF0,
+ 19587: 0x00023FB4,
+ 19588: 0x0002413F,
+ 19589: 0x000051DF,
+ 19590: 0x00024156,
+ 19591: 0x00024157,
+ 19592: 0x00024140,
+ 19593: 0x000261DD,
+ 19594: 0x0000704B,
+ 19595: 0x0000707E,
+ 19596: 0x000070A7,
+ 19597: 0x00007081,
+ 19598: 0x000070CC,
+ 19599: 0x000070D5,
+ 19600: 0x000070D6,
+ 19601: 0x000070DF,
+ 19602: 0x00004104,
+ 19603: 0x00003DE8,
+ 19604: 0x000071B4,
+ 19605: 0x00007196,
+ 19606: 0x00024277,
+ 19607: 0x0000712B,
+ 19608: 0x00007145,
+ 19609: 0x00005A88,
+ 19610: 0x0000714A,
+ 19611: 0x0000716E,
+ 19612: 0x00005C9C,
+ 19613: 0x00024365,
+ 19614: 0x0000714F,
+ 19615: 0x00009362,
+ 19616: 0x000242C1,
+ 19617: 0x0000712C,
+ 19618: 0x0002445A,
+ 19619: 0x00024A27,
+ 19620: 0x00024A22,
+ 19621: 0x000071BA,
+ 19622: 0x00028BE8,
+ 19623: 0x000070BD,
+ 19624: 0x0000720E,
+ 19625: 0x00009442,
+ 19626: 0x00007215,
+ 19627: 0x00005911,
+ 19628: 0x00009443,
+ 19629: 0x00007224,
+ 19630: 0x00009341,
+ 19631: 0x00025605,
+ 19632: 0x0000722E,
+ 19633: 0x00007240,
+ 19634: 0x00024974,
+ 19635: 0x000068BD,
+ 19636: 0x00007255,
+ 19637: 0x00007257,
+ 19638: 0x00003E55,
+ 19639: 0x00023044,
+ 19640: 0x0000680D,
+ 19641: 0x00006F3D,
+ 19642: 0x00007282,
+ 19643: 0x0000732A,
+ 19644: 0x0000732B,
+ 19645: 0x00024823,
+ 19646: 0x0002882B,
+ 19647: 0x000048ED,
+ 19648: 0x00028804,
+ 19649: 0x00007328,
+ 19650: 0x0000732E,
+ 19651: 0x000073CF,
+ 19652: 0x000073AA,
+ 19653: 0x00020C3A,
+ 19654: 0x00026A2E,
+ 19655: 0x000073C9,
+ 19656: 0x00007449,
+ 19657: 0x000241E2,
+ 19658: 0x000216E7,
+ 19659: 0x00024A24,
+ 19660: 0x00006623,
+ 19661: 0x000036C5,
+ 19662: 0x000249B7,
+ 19663: 0x0002498D,
+ 19664: 0x000249FB,
+ 19665: 0x000073F7,
+ 19666: 0x00007415,
+ 19667: 0x00006903,
+ 19668: 0x00024A26,
+ 19669: 0x00007439,
+ 19670: 0x000205C3,
+ 19671: 0x00003ED7,
+ 19672: 0x0000745C,
+ 19673: 0x000228AD,
+ 19674: 0x00007460,
+ 19675: 0x00028EB2,
+ 19676: 0x00007447,
+ 19677: 0x000073E4,
+ 19678: 0x00007476,
+ 19679: 0x000083B9,
+ 19680: 0x0000746C,
+ 19681: 0x00003730,
+ 19682: 0x00007474,
+ 19683: 0x000093F1,
+ 19684: 0x00006A2C,
+ 19685: 0x00007482,
+ 19686: 0x00004953,
+ 19687: 0x00024A8C,
+ 19688: 0x0002415F,
+ 19689: 0x00024A79,
+ 19690: 0x00028B8F,
+ 19691: 0x00005B46,
+ 19692: 0x00028C03,
+ 19693: 0x0002189E,
+ 19694: 0x000074C8,
+ 19695: 0x00021988,
+ 19696: 0x0000750E,
+ 19697: 0x000074E9,
+ 19698: 0x0000751E,
+ 19699: 0x00028ED9,
+ 19700: 0x00021A4B,
+ 19701: 0x00005BD7,
+ 19702: 0x00028EAC,
+ 19703: 0x00009385,
+ 19704: 0x0000754D,
+ 19705: 0x0000754A,
+ 19706: 0x00007567,
+ 19707: 0x0000756E,
+ 19708: 0x00024F82,
+ 19709: 0x00003F04,
+ 19710: 0x00024D13,
+ 19711: 0x0000758E,
+ 19712: 0x0000745D,
+ 19713: 0x0000759E,
+ 19714: 0x000075B4,
+ 19715: 0x00007602,
+ 19716: 0x0000762C,
+ 19717: 0x00007651,
+ 19718: 0x0000764F,
+ 19719: 0x0000766F,
+ 19720: 0x00007676,
+ 19721: 0x000263F5,
+ 19722: 0x00007690,
+ 19723: 0x000081EF,
+ 19724: 0x000037F8,
+ 19725: 0x00026911,
+ 19726: 0x0002690E,
+ 19727: 0x000076A1,
+ 19728: 0x000076A5,
+ 19729: 0x000076B7,
+ 19730: 0x000076CC,
+ 19731: 0x00026F9F,
+ 19732: 0x00008462,
+ 19733: 0x0002509D,
+ 19734: 0x0002517D,
+ 19735: 0x00021E1C,
+ 19736: 0x0000771E,
+ 19737: 0x00007726,
+ 19738: 0x00007740,
+ 19739: 0x000064AF,
+ 19740: 0x00025220,
+ 19741: 0x00007758,
+ 19742: 0x000232AC,
+ 19743: 0x000077AF,
+ 19744: 0x00028964,
+ 19745: 0x00028968,
+ 19746: 0x000216C1,
+ 19747: 0x000077F4,
+ 19748: 0x00007809,
+ 19749: 0x00021376,
+ 19750: 0x00024A12,
+ 19751: 0x000068CA,
+ 19752: 0x000078AF,
+ 19753: 0x000078C7,
+ 19754: 0x000078D3,
+ 19755: 0x000096A5,
+ 19756: 0x0000792E,
+ 19757: 0x000255E0,
+ 19758: 0x000078D7,
+ 19759: 0x00007934,
+ 19760: 0x000078B1,
+ 19761: 0x0002760C,
+ 19762: 0x00008FB8,
+ 19763: 0x00008884,
+ 19764: 0x00028B2B,
+ 19765: 0x00026083,
+ 19766: 0x0002261C,
+ 19767: 0x00007986,
+ 19768: 0x00008900,
+ 19769: 0x00006902,
+ 19770: 0x00007980,
+ 19771: 0x00025857,
+ 19772: 0x0000799D,
+ 19773: 0x00027B39,
+ 19774: 0x0000793C,
+ 19775: 0x000079A9,
+ 19776: 0x00006E2A,
+ 19777: 0x00027126,
+ 19778: 0x00003EA8,
+ 19779: 0x000079C6,
+ 19780: 0x0002910D,
+ 19781: 0x000079D4,
+}
+
+const numEncodeTables = 8
+
+// encodeX are the encoding tables from Unicode to Big5 code,
+// sorted by decreasing length.
+// encode0: 42633 entries for runes in [131105, 173738).
+// encode1: 29004 entries for runes in [ 11904, 40908).
+// encode2: 2176 entries for runes in [ 7870, 10046).
+// encode3: 939 entries for runes in [ 167, 1106).
+// encode4: 446 entries for runes in [ 65072, 65518).
+// encode5: 432 entries for runes in [194597, 195029).
+// encode6: 263 entries for runes in [ 63751, 64014).
+// encode7: 1 entries for runes in [175615, 175616).
+
+const encode0Low, encode0High = 131105, 173738
+
+var encode0 = [...]uint16{
+ 131105 - 131105: 0x9C71,
+ 131134 - 131105: 0x9375,
+ 131142 - 131105: 0x9376,
+ 131150 - 131105: 0x9548,
+ 131176 - 131105: 0x8EC6,
+ 131206 - 131105: 0x8BC5,
+ 131207 - 131105: 0x8BFA,
+ 131210 - 131105: 0xC87C,
+ 131220 - 131105: 0x9AB4,
+ 131274 - 131105: 0x884E,
+ 131275 - 131105: 0x884B,
+ 131276 - 131105: 0xC87A,
+ 131277 - 131105: 0x8848,
+ 131281 - 131105: 0x8847,
+ 131310 - 131105: 0xA0F6,
+ 131340 - 131105: 0x8845,
+ 131342 - 131105: 0x8853,
+ 131352 - 131105: 0xFCAD,
+ 131492 - 131105: 0x8CF5,
+ 131497 - 131105: 0x8AAD,
+ 131499 - 131105: 0x9272,
+ 131521 - 131105: 0xFC47,
+ 131540 - 131105: 0x94DF,
+ 131570 - 131105: 0x9FD1,
+ 131588 - 131105: 0xFBCB,
+ 131596 - 131105: 0x927D,
+ 131604 - 131105: 0x98A4,
+ 131641 - 131105: 0x8CF9,
+ 131675 - 131105: 0x94E7,
+ 131700 - 131105: 0x90CB,
+ 131701 - 131105: 0x927B,
+ 131737 - 131105: 0x94D8,
+ 131742 - 131105: 0xFC5F,
+ 131744 - 131105: 0xFA54,
+ 131767 - 131105: 0x9AB5,
+ 131775 - 131105: 0x96DA,
+ 131776 - 131105: 0x9279,
+ 131813 - 131105: 0xFA74,
+ 131850 - 131105: 0x9275,
+ 131877 - 131105: 0x8DFB,
+ 131905 - 131105: 0x8A49,
+ 131909 - 131105: 0x92DF,
+ 131910 - 131105: 0x9B7C,
+ 131911 - 131105: 0xFA63,
+ 131966 - 131105: 0xFA60,
+ 131967 - 131105: 0x926D,
+ 131968 - 131105: 0xFA62,
+ 132000 - 131105: 0x9AB6,
+ 132007 - 131105: 0x976B,
+ 132021 - 131105: 0xFD6A,
+ 132041 - 131105: 0xFD54,
+ 132043 - 131105: 0x9273,
+ 132085 - 131105: 0x97D8,
+ 132092 - 131105: 0x9FBB,
+ 132115 - 131105: 0x9342,
+ 132116 - 131105: 0x9276,
+ 132127 - 131105: 0xFA65,
+ 132197 - 131105: 0x926C,
+ 132231 - 131105: 0xFA6E,
+ 132238 - 131105: 0x9EE0,
+ 132241 - 131105: 0x92C0,
+ 132242 - 131105: 0x92BF,
+ 132259 - 131105: 0x92BE,
+ 132311 - 131105: 0x9ABA,
+ 132348 - 131105: 0x8AB3,
+ 132350 - 131105: 0x9775,
+ 132423 - 131105: 0xFA40,
+ 132494 - 131105: 0xFA76,
+ 132517 - 131105: 0xFBD0,
+ 132531 - 131105: 0xFA7B,
+ 132547 - 131105: 0xFE6D,
+ 132554 - 131105: 0x9BB3,
+ 132560 - 131105: 0x89CC,
+ 132565 - 131105: 0x9ABE,
+ 132575 - 131105: 0xFA42,
+ 132576 - 131105: 0x92BC,
+ 132587 - 131105: 0x945C,
+ 132625 - 131105: 0x9BB5,
+ 132629 - 131105: 0x9ABF,
+ 132633 - 131105: 0x98A7,
+ 132634 - 131105: 0x97A4,
+ 132656 - 131105: 0x90FD,
+ 132694 - 131105: 0xFC7B,
+ 132726 - 131105: 0x9AC0,
+ 132878 - 131105: 0x92C3,
+ 132913 - 131105: 0x8AAA,
+ 132985 - 131105: 0x9BD0,
+ 133164 - 131105: 0x9550,
+ 133235 - 131105: 0x92C6,
+ 133333 - 131105: 0x98A6,
+ 133398 - 131105: 0x9546,
+ 133411 - 131105: 0xFD63,
+ 133460 - 131105: 0xFAC2,
+ 133497 - 131105: 0x9EC3,
+ 133607 - 131105: 0x89B2,
+ 133649 - 131105: 0x9C66,
+ 133712 - 131105: 0x9053,
+ 133743 - 131105: 0x8C62,
+ 133770 - 131105: 0x87A8,
+ 133812 - 131105: 0x97C1,
+ 133826 - 131105: 0x9AC4,
+ 133837 - 131105: 0x9AC5,
+ 133901 - 131105: 0x8EEF,
+ 134031 - 131105: 0xFAE9,
+ 134047 - 131105: 0x8D40,
+ 134056 - 131105: 0x9262,
+ 134057 - 131105: 0x8AF7,
+ 134079 - 131105: 0x9AC6,
+ 134086 - 131105: 0x92E1,
+ 134091 - 131105: 0x9AC9,
+ 134114 - 131105: 0xFAC6,
+ 134123 - 131105: 0x97A5,
+ 134139 - 131105: 0x9ACB,
+ 134143 - 131105: 0xFA72,
+ 134155 - 131105: 0x8A5E,
+ 134157 - 131105: 0x94E0,
+ 134176 - 131105: 0x92CC,
+ 134196 - 131105: 0x8AE5,
+ 134202 - 131105: 0xFE5C,
+ 134203 - 131105: 0x9ACC,
+ 134209 - 131105: 0x9DF9,
+ 134210 - 131105: 0x8A43,
+ 134211 - 131105: 0x8AA6,
+ 134227 - 131105: 0x9ACD,
+ 134245 - 131105: 0x9ACE,
+ 134263 - 131105: 0xFAEE,
+ 134264 - 131105: 0x9BCC,
+ 134268 - 131105: 0x9ACF,
+ 134285 - 131105: 0x9AD1,
+ 134294 - 131105: 0x9DFA,
+ 134300 - 131105: 0x9D7C,
+ 134325 - 131105: 0x9AD3,
+ 134328 - 131105: 0x97A6,
+ 134351 - 131105: 0x995F,
+ 134355 - 131105: 0xFBF6,
+ 134356 - 131105: 0x9FC5,
+ 134357 - 131105: 0x8A59,
+ 134358 - 131105: 0x8B6B,
+ 134365 - 131105: 0x9AD4,
+ 134381 - 131105: 0x9AD5,
+ 134399 - 131105: 0x97A2,
+ 134421 - 131105: 0x8A44,
+ 134440 - 131105: 0x9F4A,
+ 134449 - 131105: 0x90A1,
+ 134450 - 131105: 0xFDA4,
+ 134470 - 131105: 0x8A64,
+ 134471 - 131105: 0x8AF2,
+ 134472 - 131105: 0x8AF8,
+ 134473 - 131105: 0x9DD8,
+ 134476 - 131105: 0x94D6,
+ 134477 - 131105: 0xFAFE,
+ 134478 - 131105: 0xFBA7,
+ 134511 - 131105: 0x9AD6,
+ 134513 - 131105: 0x9F4D,
+ 134516 - 131105: 0xFAF6,
+ 134524 - 131105: 0x8A57,
+ 134526 - 131105: 0x8B43,
+ 134527 - 131105: 0x8B44,
+ 134550 - 131105: 0x8AB6,
+ 134556 - 131105: 0x8AC0,
+ 134567 - 131105: 0x9E54,
+ 134578 - 131105: 0x9AD7,
+ 134600 - 131105: 0x9AD8,
+ 134660 - 131105: 0x9ADC,
+ 134665 - 131105: 0x8ACA,
+ 134666 - 131105: 0x9EA8,
+ 134669 - 131105: 0x9263,
+ 134670 - 131105: 0x9ADD,
+ 134671 - 131105: 0x8B65,
+ 134672 - 131105: 0x8B6F,
+ 134673 - 131105: 0x8B7E,
+ 134678 - 131105: 0x8F43,
+ 134685 - 131105: 0x92D0,
+ 134732 - 131105: 0x8AF4,
+ 134765 - 131105: 0x9DBE,
+ 134771 - 131105: 0x9AE1,
+ 134773 - 131105: 0xFCDE,
+ 134774 - 131105: 0x9DFD,
+ 134775 - 131105: 0x8B66,
+ 134776 - 131105: 0x8B70,
+ 134777 - 131105: 0x8B75,
+ 134778 - 131105: 0x8AE4,
+ 134779 - 131105: 0x8BA4,
+ 134796 - 131105: 0x8AED,
+ 134806 - 131105: 0x8A5D,
+ 134808 - 131105: 0x8B48,
+ 134813 - 131105: 0x9DED,
+ 134818 - 131105: 0x9E40,
+ 134826 - 131105: 0x8AEF,
+ 134827 - 131105: 0x8AF6,
+ 134828 - 131105: 0x9E76,
+ 134838 - 131105: 0x9EE3,
+ 134871 - 131105: 0x9ADE,
+ 134872 - 131105: 0x8DFE,
+ 134877 - 131105: 0xFAFC,
+ 134904 - 131105: 0x9CB1,
+ 134905 - 131105: 0x9E77,
+ 134906 - 131105: 0x8B64,
+ 134907 - 131105: 0x8B67,
+ 134941 - 131105: 0x974B,
+ 134950 - 131105: 0x9653,
+ 134957 - 131105: 0x9AE0,
+ 134958 - 131105: 0x8B4A,
+ 134960 - 131105: 0x8AF1,
+ 134961 - 131105: 0x8AD7,
+ 134971 - 131105: 0xA0AB,
+ 134988 - 131105: 0x8AB5,
+ 135012 - 131105: 0x8A5F,
+ 135053 - 131105: 0x8AEE,
+ 135056 - 131105: 0x9ADF,
+ 135085 - 131105: 0x8AFE,
+ 135092 - 131105: 0x8A58,
+ 135093 - 131105: 0x8BA3,
+ 135094 - 131105: 0x8BA7,
+ 135100 - 131105: 0x9AE3,
+ 135135 - 131105: 0x9261,
+ 135146 - 131105: 0x9DD7,
+ 135147 - 131105: 0x9E7D,
+ 135148 - 131105: 0x9EA7,
+ 135149 - 131105: 0x9EAB,
+ 135188 - 131105: 0x9042,
+ 135197 - 131105: 0x8B79,
+ 135198 - 131105: 0x8B7A,
+ 135247 - 131105: 0x9AE6,
+ 135260 - 131105: 0x9AE5,
+ 135279 - 131105: 0x8A7E,
+ 135285 - 131105: 0x9E44,
+ 135286 - 131105: 0x9AE7,
+ 135287 - 131105: 0x8A7C,
+ 135288 - 131105: 0x8B71,
+ 135291 - 131105: 0x9AE9,
+ 135304 - 131105: 0x9AEA,
+ 135318 - 131105: 0x9AEB,
+ 135325 - 131105: 0x8ABD,
+ 135348 - 131105: 0xFB4E,
+ 135359 - 131105: 0x9AED,
+ 135360 - 131105: 0x8AF9,
+ 135361 - 131105: 0x9E63,
+ 135367 - 131105: 0x8B49,
+ 135368 - 131105: 0x8ACE,
+ 135369 - 131105: 0x8B6E,
+ 135375 - 131105: 0x8AE8,
+ 135379 - 131105: 0x9AEE,
+ 135396 - 131105: 0x92CE,
+ 135412 - 131105: 0x8A5A,
+ 135413 - 131105: 0x8B7B,
+ 135414 - 131105: 0x8B7C,
+ 135471 - 131105: 0x9AEF,
+ 135483 - 131105: 0x9AF0,
+ 135485 - 131105: 0x8AFA,
+ 135493 - 131105: 0x8941,
+ 135496 - 131105: 0x8B72,
+ 135503 - 131105: 0x8AF3,
+ 135552 - 131105: 0x8BA8,
+ 135559 - 131105: 0x9EAE,
+ 135641 - 131105: 0x9E72,
+ 135740 - 131105: 0xFB73,
+ 135759 - 131105: 0xFB5F,
+ 135804 - 131105: 0x90BA,
+ 135848 - 131105: 0x91FE,
+ 135849 - 131105: 0x9EF6,
+ 135856 - 131105: 0x97ED,
+ 135907 - 131105: 0x9AF3,
+ 135934 - 131105: 0xA0EE,
+ 135938 - 131105: 0x967C,
+ 135939 - 131105: 0x9345,
+ 135940 - 131105: 0x986E,
+ 135941 - 131105: 0xFA56,
+ 135990 - 131105: 0x9AF5,
+ 135994 - 131105: 0xFC4B,
+ 136053 - 131105: 0x9AF4,
+ 136054 - 131105: 0xFEDE,
+ 136078 - 131105: 0xFCB7,
+ 136088 - 131105: 0x97F1,
+ 136092 - 131105: 0x97C7,
+ 136133 - 131105: 0x9CCB,
+ 136134 - 131105: 0x9240,
+ 136173 - 131105: 0x9CE8,
+ 136190 - 131105: 0x91FD,
+ 136211 - 131105: 0x974E,
+ 136214 - 131105: 0xFB68,
+ 136228 - 131105: 0x976C,
+ 136255 - 131105: 0x8CC2,
+ 136274 - 131105: 0x97E8,
+ 136276 - 131105: 0xFB6A,
+ 136277 - 131105: 0x8B74,
+ 136330 - 131105: 0x8EE7,
+ 136343 - 131105: 0xFDC8,
+ 136374 - 131105: 0x9241,
+ 136424 - 131105: 0x96A1,
+ 136445 - 131105: 0x8EF3,
+ 136567 - 131105: 0x9AF7,
+ 136578 - 131105: 0x8FA6,
+ 136598 - 131105: 0xFAD6,
+ 136714 - 131105: 0x9CC7,
+ 136723 - 131105: 0xFAD7,
+ 136729 - 131105: 0x9AF8,
+ 136766 - 131105: 0xFBA1,
+ 136801 - 131105: 0x8EC5,
+ 136850 - 131105: 0xFBA4,
+ 136888 - 131105: 0xFBC2,
+ 136890 - 131105: 0x9AC1,
+ 136896 - 131105: 0x91FA,
+ 136897 - 131105: 0xFEDB,
+ 136898 - 131105: 0x97AB,
+ 136915 - 131105: 0x9147,
+ 136917 - 131105: 0xFBB1,
+ 136927 - 131105: 0x8FEA,
+ 136934 - 131105: 0x94D2,
+ 136935 - 131105: 0xFE61,
+ 136936 - 131105: 0xFACE,
+ 136954 - 131105: 0x92ED,
+ 136955 - 131105: 0x91F3,
+ 136956 - 131105: 0x93C6,
+ 136958 - 131105: 0x935A,
+ 136973 - 131105: 0xFAFB,
+ 136976 - 131105: 0x92EF,
+ 136998 - 131105: 0xFAC8,
+ 137018 - 131105: 0x9847,
+ 137019 - 131105: 0x9366,
+ 137020 - 131105: 0x9855,
+ 137047 - 131105: 0x96E6,
+ 137068 - 131105: 0x9F43,
+ 137069 - 131105: 0x9FAA,
+ 137070 - 131105: 0x94DA,
+ 137071 - 131105: 0x92EE,
+ 137072 - 131105: 0xFCAF,
+ 137073 - 131105: 0xFBFB,
+ 137075 - 131105: 0x8EF9,
+ 137076 - 131105: 0x91F6,
+ 137131 - 131105: 0x9364,
+ 137136 - 131105: 0x94F5,
+ 137137 - 131105: 0x9CB6,
+ 137138 - 131105: 0xFBAD,
+ 137139 - 131105: 0x984E,
+ 137140 - 131105: 0x8F44,
+ 137141 - 131105: 0x96FD,
+ 137155 - 131105: 0x9AF9,
+ 137159 - 131105: 0x9AFA,
+ 137177 - 131105: 0x9769,
+ 137178 - 131105: 0x95D4,
+ 137179 - 131105: 0x984B,
+ 137180 - 131105: 0xFBAA,
+ 137183 - 131105: 0x987C,
+ 137199 - 131105: 0x91EA,
+ 137205 - 131105: 0x9DAF,
+ 137206 - 131105: 0x9DC5,
+ 137208 - 131105: 0x91F1,
+ 137209 - 131105: 0x8EB1,
+ 137210 - 131105: 0x97A9,
+ 137211 - 131105: 0xFBAC,
+ 137212 - 131105: 0xFCB8,
+ 137248 - 131105: 0x9CB9,
+ 137256 - 131105: 0xFBB0,
+ 137257 - 131105: 0xFCD2,
+ 137258 - 131105: 0x93CB,
+ 137261 - 131105: 0x9AFD,
+ 137273 - 131105: 0x91F4,
+ 137274 - 131105: 0x8BAC,
+ 137275 - 131105: 0xA055,
+ 137280 - 131105: 0x9574,
+ 137285 - 131105: 0x95BE,
+ 137298 - 131105: 0x97AD,
+ 137310 - 131105: 0x8EE9,
+ 137313 - 131105: 0x92F8,
+ 137314 - 131105: 0x97BE,
+ 137315 - 131105: 0x916C,
+ 137316 - 131105: 0x94AA,
+ 137335 - 131105: 0xFC63,
+ 137339 - 131105: 0x9DC6,
+ 137347 - 131105: 0x97B5,
+ 137348 - 131105: 0x92B8,
+ 137349 - 131105: 0x91EF,
+ 137374 - 131105: 0xFEA6,
+ 137375 - 131105: 0x9760,
+ 137376 - 131105: 0x9358,
+ 137377 - 131105: 0x9576,
+ 137378 - 131105: 0x8FAC,
+ 137406 - 131105: 0x91EC,
+ 137407 - 131105: 0x97B4,
+ 137425 - 131105: 0x91F7,
+ 137430 - 131105: 0x974A,
+ 137431 - 131105: 0xFB49,
+ 137432 - 131105: 0x9578,
+ 137433 - 131105: 0x93BC,
+ 137466 - 131105: 0x91D6,
+ 137475 - 131105: 0x9355,
+ 137476 - 131105: 0x9356,
+ 137477 - 131105: 0x9851,
+ 137488 - 131105: 0x8FF8,
+ 137489 - 131105: 0xFBC0,
+ 137490 - 131105: 0x93F2,
+ 137493 - 131105: 0x90D0,
+ 137500 - 131105: 0x9C44,
+ 137506 - 131105: 0x9255,
+ 137511 - 131105: 0x9363,
+ 137531 - 131105: 0x91A5,
+ 137540 - 131105: 0xA0ED,
+ 137560 - 131105: 0xFD6B,
+ 137578 - 131105: 0x9AFE,
+ 137596 - 131105: 0x9351,
+ 137600 - 131105: 0x8C57,
+ 137603 - 131105: 0xFA78,
+ 137608 - 131105: 0xFEA8,
+ 137622 - 131105: 0x9350,
+ 137691 - 131105: 0xFA4C,
+ 137715 - 131105: 0x92F7,
+ 137773 - 131105: 0x9B40,
+ 137780 - 131105: 0xFBCE,
+ 137797 - 131105: 0x9B41,
+ 137803 - 131105: 0xFEAD,
+ 137827 - 131105: 0x8761,
+ 138052 - 131105: 0xFBD5,
+ 138177 - 131105: 0x8BC2,
+ 138178 - 131105: 0x9A7C,
+ 138282 - 131105: 0x9B42,
+ 138352 - 131105: 0x9B43,
+ 138402 - 131105: 0x9E79,
+ 138405 - 131105: 0xFBD9,
+ 138412 - 131105: 0x9B44,
+ 138566 - 131105: 0xA0A7,
+ 138579 - 131105: 0x877B,
+ 138590 - 131105: 0x876E,
+ 138640 - 131105: 0x9BF3,
+ 138678 - 131105: 0x8C79,
+ 138682 - 131105: 0x935E,
+ 138698 - 131105: 0x89CB,
+ 138705 - 131105: 0x9F53,
+ 138731 - 131105: 0x93D7,
+ 138745 - 131105: 0xFBE1,
+ 138780 - 131105: 0xFED0,
+ 138787 - 131105: 0x8CF1,
+ 138807 - 131105: 0xFBE2,
+ 138813 - 131105: 0xFCE3,
+ 138889 - 131105: 0x9074,
+ 138916 - 131105: 0xFBE6,
+ 138920 - 131105: 0x9BB7,
+ 138952 - 131105: 0x9B45,
+ 138965 - 131105: 0x9B47,
+ 139023 - 131105: 0x9F50,
+ 139029 - 131105: 0x9B48,
+ 139114 - 131105: 0xFC5B,
+ 139166 - 131105: 0x98A9,
+ 139169 - 131105: 0x9CFD,
+ 139240 - 131105: 0x884C,
+ 139333 - 131105: 0x9B4B,
+ 139337 - 131105: 0xFBEC,
+ 139390 - 131105: 0x8C69,
+ 139418 - 131105: 0x9BA8,
+ 139463 - 131105: 0x8AD5,
+ 139516 - 131105: 0xFA73,
+ 139562 - 131105: 0xFD59,
+ 139611 - 131105: 0x91A2,
+ 139635 - 131105: 0xFBED,
+ 139642 - 131105: 0x9CA9,
+ 139681 - 131105: 0x8AA8,
+ 139713 - 131105: 0x8D42,
+ 139715 - 131105: 0x9BC3,
+ 139784 - 131105: 0x8AE1,
+ 139900 - 131105: 0x9B4E,
+ 140065 - 131105: 0x95D0,
+ 140069 - 131105: 0x905F,
+ 140221 - 131105: 0x97EE,
+ 140240 - 131105: 0xFC4E,
+ 140247 - 131105: 0x9B4F,
+ 140282 - 131105: 0x9B50,
+ 140389 - 131105: 0x9EC6,
+ 140401 - 131105: 0xFC50,
+ 140427 - 131105: 0xFD73,
+ 140433 - 131105: 0xFDA7,
+ 140464 - 131105: 0x9DA2,
+ 140476 - 131105: 0x87D1,
+ 140481 - 131105: 0x87D3,
+ 140489 - 131105: 0x87D4,
+ 140492 - 131105: 0x87D5,
+ 140525 - 131105: 0xFA58,
+ 140563 - 131105: 0xFA5E,
+ 140571 - 131105: 0xA059,
+ 140592 - 131105: 0xFA75,
+ 140628 - 131105: 0xFBBE,
+ 140685 - 131105: 0x9CA2,
+ 140719 - 131105: 0x9370,
+ 140734 - 131105: 0x9371,
+ 140827 - 131105: 0x9377,
+ 140828 - 131105: 0xFEEF,
+ 140843 - 131105: 0x936D,
+ 140904 - 131105: 0xFC5D,
+ 140922 - 131105: 0x90B8,
+ 140950 - 131105: 0x8AFC,
+ 140952 - 131105: 0xFB41,
+ 141044 - 131105: 0x9E6B,
+ 141045 - 131105: 0x94E3,
+ 141046 - 131105: 0x8EE2,
+ 141074 - 131105: 0x8C7D,
+ 141076 - 131105: 0x8ED7,
+ 141083 - 131105: 0x9C4D,
+ 141087 - 131105: 0x96A3,
+ 141098 - 131105: 0x9B51,
+ 141173 - 131105: 0x8AC3,
+ 141185 - 131105: 0x96AA,
+ 141206 - 131105: 0x8CE2,
+ 141236 - 131105: 0xFC68,
+ 141237 - 131105: 0x8B6D,
+ 141261 - 131105: 0xFD67,
+ 141315 - 131105: 0x8AE9,
+ 141407 - 131105: 0xFCA1,
+ 141408 - 131105: 0x936C,
+ 141425 - 131105: 0x9B52,
+ 141485 - 131105: 0xFE70,
+ 141505 - 131105: 0xFCA8,
+ 141559 - 131105: 0xFCE9,
+ 141606 - 131105: 0x9CB4,
+ 141625 - 131105: 0x8AEA,
+ 141647 - 131105: 0x9B53,
+ 141671 - 131105: 0x9B55,
+ 141675 - 131105: 0x96AB,
+ 141696 - 131105: 0xFCA7,
+ 141715 - 131105: 0x9B56,
+ 141926 - 131105: 0x8ABC,
+ 142031 - 131105: 0x8ACB,
+ 142037 - 131105: 0x9B57,
+ 142054 - 131105: 0x89CD,
+ 142056 - 131105: 0x9B59,
+ 142094 - 131105: 0x9B5B,
+ 142114 - 131105: 0x93A5,
+ 142143 - 131105: 0x9B5D,
+ 142147 - 131105: 0x9E4F,
+ 142186 - 131105: 0x93A3,
+ 142282 - 131105: 0x8A7B,
+ 142286 - 131105: 0x8B42,
+ 142374 - 131105: 0x9750,
+ 142375 - 131105: 0x8FB3,
+ 142392 - 131105: 0x8A50,
+ 142412 - 131105: 0x9B60,
+ 142417 - 131105: 0x8B45,
+ 142421 - 131105: 0x8B46,
+ 142434 - 131105: 0x9DFE,
+ 142472 - 131105: 0x9B62,
+ 142491 - 131105: 0x937B,
+ 142497 - 131105: 0x93B1,
+ 142505 - 131105: 0x8A60,
+ 142514 - 131105: 0x8AD8,
+ 142519 - 131105: 0x9B63,
+ 142530 - 131105: 0x8A69,
+ 142534 - 131105: 0x8A47,
+ 142537 - 131105: 0x8ACC,
+ 142599 - 131105: 0x937C,
+ 142600 - 131105: 0x9B65,
+ 142610 - 131105: 0x9B66,
+ 142660 - 131105: 0x8A72,
+ 142668 - 131105: 0x8A7A,
+ 142695 - 131105: 0x93AF,
+ 142733 - 131105: 0x8AB0,
+ 142741 - 131105: 0x9B68,
+ 142752 - 131105: 0x9EA3,
+ 142755 - 131105: 0xFAEC,
+ 142756 - 131105: 0x8B77,
+ 142775 - 131105: 0x9B67,
+ 142830 - 131105: 0x8B59,
+ 142861 - 131105: 0xFCB1,
+ 142902 - 131105: 0xFCBB,
+ 142914 - 131105: 0x9B69,
+ 142968 - 131105: 0x93A8,
+ 142987 - 131105: 0x8AE0,
+ 143027 - 131105: 0x9E51,
+ 143087 - 131105: 0x8F5F,
+ 143220 - 131105: 0x9B6A,
+ 143308 - 131105: 0x9B6B,
+ 143331 - 131105: 0x97EC,
+ 143411 - 131105: 0x9B6C,
+ 143428 - 131105: 0xFE4E,
+ 143435 - 131105: 0xFDC2,
+ 143462 - 131105: 0x9B6D,
+ 143485 - 131105: 0x9167,
+ 143486 - 131105: 0xFCCC,
+ 143502 - 131105: 0x93B6,
+ 143543 - 131105: 0x90E4,
+ 143548 - 131105: 0x90E5,
+ 143578 - 131105: 0x9EF2,
+ 143619 - 131105: 0x93CA,
+ 143677 - 131105: 0x8BBC,
+ 143741 - 131105: 0x8F46,
+ 143746 - 131105: 0x93CF,
+ 143780 - 131105: 0xFCDB,
+ 143781 - 131105: 0xFCDC,
+ 143795 - 131105: 0x93C0,
+ 143816 - 131105: 0xFCE6,
+ 143817 - 131105: 0x96E7,
+ 143850 - 131105: 0x87A7,
+ 143863 - 131105: 0xFCD8,
+ 143864 - 131105: 0xFCD9,
+ 143865 - 131105: 0xFDA6,
+ 143887 - 131105: 0x93CE,
+ 143909 - 131105: 0x95F1,
+ 143919 - 131105: 0x9CE9,
+ 143921 - 131105: 0xFCE4,
+ 143922 - 131105: 0x94AF,
+ 143923 - 131105: 0xFA77,
+ 143924 - 131105: 0x93CC,
+ 143958 - 131105: 0x8CE1,
+ 143966 - 131105: 0x87A9,
+ 143970 - 131105: 0x905A,
+ 144001 - 131105: 0x8C54,
+ 144009 - 131105: 0x93BF,
+ 144010 - 131105: 0xFB51,
+ 144043 - 131105: 0x93B9,
+ 144044 - 131105: 0xFED7,
+ 144045 - 131105: 0x93B7,
+ 144082 - 131105: 0x93D9,
+ 144096 - 131105: 0x93BB,
+ 144097 - 131105: 0x93DA,
+ 144128 - 131105: 0x98A3,
+ 144138 - 131105: 0x90D1,
+ 144159 - 131105: 0x9B6E,
+ 144308 - 131105: 0xFA70,
+ 144332 - 131105: 0x9BEB,
+ 144350 - 131105: 0x9B6F,
+ 144358 - 131105: 0xFCFC,
+ 144372 - 131105: 0x8B40,
+ 144373 - 131105: 0xA07B,
+ 144377 - 131105: 0x8CA1,
+ 144378 - 131105: 0x97F7,
+ 144382 - 131105: 0x93E2,
+ 144384 - 131105: 0xFCD6,
+ 144447 - 131105: 0x9559,
+ 144464 - 131105: 0x93A6,
+ 144495 - 131105: 0xFD40,
+ 144498 - 131105: 0x935F,
+ 144613 - 131105: 0x97F2,
+ 144665 - 131105: 0x9C76,
+ 144688 - 131105: 0x8EF8,
+ 144721 - 131105: 0x8CEB,
+ 144730 - 131105: 0x8F47,
+ 144743 - 131105: 0x9B74,
+ 144789 - 131105: 0x92B4,
+ 144793 - 131105: 0x91ED,
+ 144796 - 131105: 0x96D2,
+ 144827 - 131105: 0x87D8,
+ 144845 - 131105: 0xFD46,
+ 144846 - 131105: 0x8F4F,
+ 144847 - 131105: 0x9549,
+ 144883 - 131105: 0x9B75,
+ 144896 - 131105: 0xFA5C,
+ 144919 - 131105: 0x8751,
+ 144922 - 131105: 0x9B79,
+ 144956 - 131105: 0xFD4B,
+ 144960 - 131105: 0x96D3,
+ 144985 - 131105: 0xFD58,
+ 144991 - 131105: 0x945F,
+ 145015 - 131105: 0xA0F5,
+ 145038 - 131105: 0x87C7,
+ 145054 - 131105: 0x877C,
+ 145062 - 131105: 0x9243,
+ 145069 - 131105: 0x97FA,
+ 145082 - 131105: 0x9DD9,
+ 145119 - 131105: 0x97F4,
+ 145134 - 131105: 0x924D,
+ 145155 - 131105: 0xFD5B,
+ 145174 - 131105: 0x9B7A,
+ 145184 - 131105: 0x9ED5,
+ 145197 - 131105: 0xFAAE,
+ 145199 - 131105: 0x9CC9,
+ 145215 - 131105: 0x9258,
+ 145254 - 131105: 0x8EC8,
+ 145281 - 131105: 0x94B4,
+ 145314 - 131105: 0x93E1,
+ 145340 - 131105: 0x93DF,
+ 145346 - 131105: 0xFCF0,
+ 145365 - 131105: 0x93EC,
+ 145366 - 131105: 0x97F6,
+ 145367 - 131105: 0x96CF,
+ 145466 - 131105: 0x93DE,
+ 145858 - 131105: 0x8ACF,
+ 146087 - 131105: 0x9BA2,
+ 146139 - 131105: 0xFD69,
+ 146158 - 131105: 0x9352,
+ 146170 - 131105: 0x98A2,
+ 146202 - 131105: 0x8CE7,
+ 146266 - 131105: 0xFD6E,
+ 146531 - 131105: 0x8CA4,
+ 146585 - 131105: 0xFA7C,
+ 146586 - 131105: 0x93FA,
+ 146587 - 131105: 0x907C,
+ 146613 - 131105: 0x8F67,
+ 146615 - 131105: 0x9DB7,
+ 146631 - 131105: 0xA0E9,
+ 146632 - 131105: 0xFA4E,
+ 146633 - 131105: 0xFDA1,
+ 146684 - 131105: 0x9E74,
+ 146685 - 131105: 0x9FBF,
+ 146686 - 131105: 0x9ECB,
+ 146687 - 131105: 0x9BB9,
+ 146752 - 131105: 0x9DD4,
+ 146779 - 131105: 0x97B9,
+ 146814 - 131105: 0x8EF1,
+ 146831 - 131105: 0x957B,
+ 146870 - 131105: 0x9ED2,
+ 146871 - 131105: 0x9753,
+ 146872 - 131105: 0x96A4,
+ 146873 - 131105: 0x8FBE,
+ 146874 - 131105: 0x94D9,
+ 146875 - 131105: 0x9058,
+ 146876 - 131105: 0xFD79,
+ 146877 - 131105: 0xFD7B,
+ 146915 - 131105: 0x8EDA,
+ 146936 - 131105: 0x8EFA,
+ 146950 - 131105: 0x8762,
+ 146961 - 131105: 0x9BA5,
+ 146988 - 131105: 0x9ED9,
+ 146989 - 131105: 0x97D4,
+ 146990 - 131105: 0x90BB,
+ 146991 - 131105: 0xFDBC,
+ 146992 - 131105: 0xFDC6,
+ 146993 - 131105: 0x9248,
+ 147001 - 131105: 0x92B5,
+ 147080 - 131105: 0x9DC1,
+ 147081 - 131105: 0x92B9,
+ 147082 - 131105: 0x92A6,
+ 147083 - 131105: 0x8F4B,
+ 147129 - 131105: 0x9BA6,
+ 147135 - 131105: 0x92B6,
+ 147159 - 131105: 0x8E40,
+ 147191 - 131105: 0x9ED8,
+ 147192 - 131105: 0x945E,
+ 147193 - 131105: 0x985F,
+ 147194 - 131105: 0x94CE,
+ 147195 - 131105: 0x924A,
+ 147196 - 131105: 0xFD70,
+ 147253 - 131105: 0x9467,
+ 147265 - 131105: 0x8DEC,
+ 147274 - 131105: 0x9BD8,
+ 147297 - 131105: 0x8763,
+ 147327 - 131105: 0x9448,
+ 147328 - 131105: 0xFAC1,
+ 147329 - 131105: 0x9CF7,
+ 147330 - 131105: 0xFDBE,
+ 147343 - 131105: 0x8FDA,
+ 147380 - 131105: 0xFDD9,
+ 147383 - 131105: 0xFC7E,
+ 147392 - 131105: 0x93F9,
+ 147397 - 131105: 0xFA43,
+ 147435 - 131105: 0xFAEB,
+ 147436 - 131105: 0xFAC3,
+ 147437 - 131105: 0x97D3,
+ 147438 - 131105: 0x95F9,
+ 147439 - 131105: 0x9C48,
+ 147440 - 131105: 0xFDD8,
+ 147473 - 131105: 0xA0D8,
+ 147513 - 131105: 0xFDD7,
+ 147514 - 131105: 0xFB4A,
+ 147515 - 131105: 0x9BAF,
+ 147516 - 131105: 0x944B,
+ 147517 - 131105: 0xFDC9,
+ 147543 - 131105: 0x8EAC,
+ 147589 - 131105: 0xFDB2,
+ 147595 - 131105: 0x925A,
+ 147596 - 131105: 0xFCBD,
+ 147597 - 131105: 0x92D9,
+ 147601 - 131105: 0xFDD5,
+ 147657 - 131105: 0x92DD,
+ 147681 - 131105: 0x9259,
+ 147692 - 131105: 0x8CF0,
+ 147716 - 131105: 0x96BA,
+ 147727 - 131105: 0x925B,
+ 147737 - 131105: 0x9BAB,
+ 147775 - 131105: 0xFDDA,
+ 147776 - 131105: 0xFDDE,
+ 147780 - 131105: 0xFDD3,
+ 147790 - 131105: 0x8C46,
+ 147797 - 131105: 0xFDD6,
+ 147798 - 131105: 0xFDDC,
+ 147799 - 131105: 0xFDDD,
+ 147804 - 131105: 0x90FE,
+ 147807 - 131105: 0xFEA1,
+ 147809 - 131105: 0x87A5,
+ 147831 - 131105: 0x8BAD,
+ 147834 - 131105: 0x9CD8,
+ 147875 - 131105: 0x9E6D,
+ 147876 - 131105: 0xFD7C,
+ 147877 - 131105: 0xFB61,
+ 147884 - 131105: 0x96F8,
+ 147893 - 131105: 0x96F0,
+ 147917 - 131105: 0xFCF4,
+ 147938 - 131105: 0xFE60,
+ 147964 - 131105: 0x9852,
+ 147995 - 131105: 0x964F,
+ 148043 - 131105: 0x916E,
+ 148054 - 131105: 0x986D,
+ 148057 - 131105: 0x9864,
+ 148086 - 131105: 0x9453,
+ 148087 - 131105: 0xFDEC,
+ 148088 - 131105: 0xFB78,
+ 148100 - 131105: 0x95BA,
+ 148115 - 131105: 0x985D,
+ 148117 - 131105: 0x92F9,
+ 148133 - 131105: 0x985A,
+ 148159 - 131105: 0x8750,
+ 148161 - 131105: 0xFDF6,
+ 148169 - 131105: 0x93D0,
+ 148170 - 131105: 0x9862,
+ 148206 - 131105: 0x9BAD,
+ 148218 - 131105: 0x974F,
+ 148237 - 131105: 0x9BAE,
+ 148250 - 131105: 0x9452,
+ 148276 - 131105: 0x9BB0,
+ 148296 - 131105: 0x91D2,
+ 148322 - 131105: 0x97EA,
+ 148323 - 131105: 0xFB6B,
+ 148324 - 131105: 0x91B1,
+ 148325 - 131105: 0xFDF3,
+ 148364 - 131105: 0x92CB,
+ 148374 - 131105: 0x9BB1,
+ 148380 - 131105: 0xFCEC,
+ 148413 - 131105: 0x986B,
+ 148417 - 131105: 0x9751,
+ 148457 - 131105: 0x9871,
+ 148458 - 131105: 0x95EF,
+ 148466 - 131105: 0x9EF3,
+ 148472 - 131105: 0x91E8,
+ 148484 - 131105: 0x9BBA,
+ 148533 - 131105: 0xFB4C,
+ 148534 - 131105: 0x926A,
+ 148570 - 131105: 0xFDF8,
+ 148571 - 131105: 0x9861,
+ 148595 - 131105: 0x91E7,
+ 148615 - 131105: 0x93ED,
+ 148616 - 131105: 0x9744,
+ 148665 - 131105: 0x91E1,
+ 148668 - 131105: 0xFBF5,
+ 148686 - 131105: 0x9869,
+ 148691 - 131105: 0x8A62,
+ 148694 - 131105: 0x9BBB,
+ 148741 - 131105: 0x8CA8,
+ 148769 - 131105: 0x9C55,
+ 148856 - 131105: 0x8E77,
+ 148936 - 131105: 0x8AB2,
+ 149016 - 131105: 0x9EBC,
+ 149034 - 131105: 0x93E6,
+ 149093 - 131105: 0x93A2,
+ 149108 - 131105: 0x9BBD,
+ 149143 - 131105: 0x94B3,
+ 149204 - 131105: 0x937D,
+ 149254 - 131105: 0x9E66,
+ 149285 - 131105: 0x9459,
+ 149295 - 131105: 0x9BBF,
+ 149391 - 131105: 0x9458,
+ 149472 - 131105: 0x9EA5,
+ 149522 - 131105: 0x9BC7,
+ 149539 - 131105: 0xFE54,
+ 149634 - 131105: 0x8E74,
+ 149737 - 131105: 0x8BD6,
+ 149744 - 131105: 0x94B6,
+ 149745 - 131105: 0xFD74,
+ 149746 - 131105: 0x98C0,
+ 149747 - 131105: 0x94A5,
+ 149755 - 131105: 0x9BC8,
+ 149759 - 131105: 0x95ED,
+ 149760 - 131105: 0xFD7E,
+ 149761 - 131105: 0xFBEB,
+ 149772 - 131105: 0xFD7D,
+ 149782 - 131105: 0x976F,
+ 149783 - 131105: 0x9461,
+ 149785 - 131105: 0x9FC1,
+ 149807 - 131105: 0x95D7,
+ 149811 - 131105: 0xFA52,
+ 149812 - 131105: 0x9C58,
+ 149822 - 131105: 0x9F68,
+ 149823 - 131105: 0x9BE7,
+ 149824 - 131105: 0xFCCE,
+ 149825 - 131105: 0x96E8,
+ 149826 - 131105: 0xFA49,
+ 149827 - 131105: 0x97A1,
+ 149858 - 131105: 0x954D,
+ 149859 - 131105: 0x9EF8,
+ 149876 - 131105: 0xFE49,
+ 149877 - 131105: 0x91CE,
+ 149878 - 131105: 0x9771,
+ 149883 - 131105: 0x8CCF,
+ 149887 - 131105: 0xFDB1,
+ 149890 - 131105: 0xFC6E,
+ 149896 - 131105: 0x9CF2,
+ 149897 - 131105: 0x93B8,
+ 149898 - 131105: 0x9043,
+ 149899 - 131105: 0x9759,
+ 149900 - 131105: 0x94D7,
+ 149901 - 131105: 0xFE66,
+ 149902 - 131105: 0x947D,
+ 149903 - 131105: 0xFC6F,
+ 149908 - 131105: 0x9246,
+ 149924 - 131105: 0xFA6D,
+ 149927 - 131105: 0x8EF7,
+ 149929 - 131105: 0xFBB7,
+ 149931 - 131105: 0x947C,
+ 149932 - 131105: 0x92CD,
+ 149933 - 131105: 0x97B2,
+ 149943 - 131105: 0xFE65,
+ 149944 - 131105: 0x967E,
+ 149945 - 131105: 0x9758,
+ 149946 - 131105: 0x9B77,
+ 149947 - 131105: 0x91CF,
+ 149957 - 131105: 0x94A4,
+ 149968 - 131105: 0x9CAD,
+ 149978 - 131105: 0x8BAB,
+ 149982 - 131105: 0x96D5,
+ 149983 - 131105: 0xFCB3,
+ 149987 - 131105: 0x93AE,
+ 149989 - 131105: 0x976D,
+ 149996 - 131105: 0x9446,
+ 149997 - 131105: 0x95F7,
+ 150006 - 131105: 0x9C46,
+ 150007 - 131105: 0x955B,
+ 150008 - 131105: 0x91D1,
+ 150009 - 131105: 0x94F4,
+ 150011 - 131105: 0xFE67,
+ 150030 - 131105: 0x92A5,
+ 150034 - 131105: 0xFEDF,
+ 150035 - 131105: 0x8CAB,
+ 150037 - 131105: 0x9BC9,
+ 150049 - 131105: 0xFCED,
+ 150050 - 131105: 0xFDFA,
+ 150051 - 131105: 0xFCC8,
+ 150052 - 131105: 0xFE62,
+ 150053 - 131105: 0x91FC,
+ 150054 - 131105: 0xFE6B,
+ 150055 - 131105: 0xFDF9,
+ 150056 - 131105: 0xFCC7,
+ 150057 - 131105: 0x914E,
+ 150058 - 131105: 0x9CB8,
+ 150078 - 131105: 0x9767,
+ 150082 - 131105: 0x95EE,
+ 150085 - 131105: 0x9BB2,
+ 150090 - 131105: 0x9460,
+ 150094 - 131105: 0x94A2,
+ 150095 - 131105: 0x9875,
+ 150096 - 131105: 0x97AC,
+ 150097 - 131105: 0x91D3,
+ 150109 - 131105: 0x987B,
+ 150117 - 131105: 0x8EEB,
+ 150118 - 131105: 0x976A,
+ 150119 - 131105: 0x965E,
+ 150129 - 131105: 0x97EB,
+ 150135 - 131105: 0x9FF9,
+ 150136 - 131105: 0x95F8,
+ 150137 - 131105: 0xFEA2,
+ 150138 - 131105: 0x8FE6,
+ 150156 - 131105: 0xFE7E,
+ 150163 - 131105: 0x9DA4,
+ 150164 - 131105: 0x9768,
+ 150165 - 131105: 0x8EEC,
+ 150166 - 131105: 0x94BD,
+ 150180 - 131105: 0x945B,
+ 150181 - 131105: 0x9CF6,
+ 150182 - 131105: 0xFAA7,
+ 150183 - 131105: 0x9BD9,
+ 150193 - 131105: 0xFA5D,
+ 150194 - 131105: 0x9656,
+ 150195 - 131105: 0x9762,
+ 150202 - 131105: 0x94BA,
+ 150203 - 131105: 0xA04F,
+ 150204 - 131105: 0x92D8,
+ 150208 - 131105: 0x9BCB,
+ 150215 - 131105: 0x94BB,
+ 150218 - 131105: 0x9D5F,
+ 150225 - 131105: 0x90CF,
+ 150239 - 131105: 0x9465,
+ 150242 - 131105: 0x9F4C,
+ 150249 - 131105: 0x90D8,
+ 150287 - 131105: 0x8D5B,
+ 150382 - 131105: 0x9EBE,
+ 150517 - 131105: 0xFB6D,
+ 150537 - 131105: 0x95CA,
+ 150686 - 131105: 0x9DC2,
+ 150687 - 131105: 0x97F8,
+ 150729 - 131105: 0x8FFC,
+ 150745 - 131105: 0x9473,
+ 150790 - 131105: 0x9474,
+ 150803 - 131105: 0xFEB7,
+ 150968 - 131105: 0x8A4B,
+ 151018 - 131105: 0x8A55,
+ 151019 - 131105: 0x8B69,
+ 151099 - 131105: 0x8ADC,
+ 151120 - 131105: 0x8B76,
+ 151205 - 131105: 0x9BCE,
+ 151207 - 131105: 0x8A68,
+ 151310 - 131105: 0xA0F8,
+ 151388 - 131105: 0x98DF,
+ 151426 - 131105: 0xFEB5,
+ 151430 - 131105: 0x9BCF,
+ 151447 - 131105: 0x96FB,
+ 151450 - 131105: 0x9BFB,
+ 151465 - 131105: 0x9ECE,
+ 151480 - 131105: 0x8EE5,
+ 151490 - 131105: 0x9E7B,
+ 151596 - 131105: 0x9BD2,
+ 151634 - 131105: 0x8AA5,
+ 151709 - 131105: 0xFECE,
+ 151851 - 131105: 0x8A45,
+ 151880 - 131105: 0x9DFC,
+ 151933 - 131105: 0xFECF,
+ 151934 - 131105: 0x8BA5,
+ 152013 - 131105: 0x8C4A,
+ 152035 - 131105: 0x8AEC,
+ 152038 - 131105: 0xFCE0,
+ 152039 - 131105: 0x94AD,
+ 152096 - 131105: 0xFED5,
+ 152097 - 131105: 0x94AC,
+ 152144 - 131105: 0xFC5A,
+ 152217 - 131105: 0x9BD6,
+ 152263 - 131105: 0x8A6F,
+ 152280 - 131105: 0x8BA9,
+ 152334 - 131105: 0x8E5F,
+ 152337 - 131105: 0x9DCB,
+ 152339 - 131105: 0xFCE7,
+ 152601 - 131105: 0x9BD7,
+ 152613 - 131105: 0x93C8,
+ 152623 - 131105: 0x91F0,
+ 152624 - 131105: 0x8FE0,
+ 152646 - 131105: 0x9BDB,
+ 152684 - 131105: 0x90ED,
+ 152686 - 131105: 0x9BDC,
+ 152730 - 131105: 0x8D53,
+ 152881 - 131105: 0xA0EC,
+ 152885 - 131105: 0x98FA,
+ 152895 - 131105: 0x9BE0,
+ 152923 - 131105: 0x93C7,
+ 152924 - 131105: 0x9249,
+ 152925 - 131105: 0x96E1,
+ 152926 - 131105: 0x9BE2,
+ 152930 - 131105: 0x9BE4,
+ 152933 - 131105: 0x8FE1,
+ 152934 - 131105: 0x9BE5,
+ 152961 - 131105: 0x94C0,
+ 152964 - 131105: 0x93C3,
+ 152975 - 131105: 0x93C5,
+ 153017 - 131105: 0x9079,
+ 153045 - 131105: 0x977B,
+ 153051 - 131105: 0x907E,
+ 153056 - 131105: 0xFEE6,
+ 153093 - 131105: 0xFE46,
+ 153141 - 131105: 0x9DB8,
+ 153169 - 131105: 0x9270,
+ 153219 - 131105: 0x95A8,
+ 153237 - 131105: 0x8CB0,
+ 153315 - 131105: 0x94C8,
+ 153334 - 131105: 0x98B9,
+ 153350 - 131105: 0x9140,
+ 153373 - 131105: 0xFCBE,
+ 153381 - 131105: 0x9157,
+ 153405 - 131105: 0x8BB2,
+ 153458 - 131105: 0xFADF,
+ 153543 - 131105: 0x9BE6,
+ 153567 - 131105: 0x9643,
+ 153568 - 131105: 0x8E44,
+ 153569 - 131105: 0x9C4F,
+ 153687 - 131105: 0xFEF4,
+ 153693 - 131105: 0x9BE8,
+ 153714 - 131105: 0x93DC,
+ 153800 - 131105: 0x966F,
+ 153822 - 131105: 0x87A1,
+ 153825 - 131105: 0x8E4A,
+ 153859 - 131105: 0x9BED,
+ 153926 - 131105: 0x92F6,
+ 153942 - 131105: 0x9DB9,
+ 154028 - 131105: 0x8E4E,
+ 154060 - 131105: 0xFBCF,
+ 154196 - 131105: 0x8760,
+ 154261 - 131105: 0x9EC2,
+ 154268 - 131105: 0x94E5,
+ 154286 - 131105: 0x9BF0,
+ 154287 - 131105: 0x94E4,
+ 154345 - 131105: 0x9551,
+ 154484 - 131105: 0x8BBB,
+ 154505 - 131105: 0x9BF1,
+ 154547 - 131105: 0x94F0,
+ 154548 - 131105: 0x8E64,
+ 154566 - 131105: 0x94EA,
+ 154596 - 131105: 0x8F61,
+ 154600 - 131105: 0x9B64,
+ 154625 - 131105: 0x8E5B,
+ 154630 - 131105: 0x9BF2,
+ 154657 - 131105: 0x9FBE,
+ 154698 - 131105: 0x9DC9,
+ 154725 - 131105: 0x8E6C,
+ 154769 - 131105: 0x8F73,
+ 154788 - 131105: 0x8CAF,
+ 154816 - 131105: 0x8F75,
+ 154817 - 131105: 0x8E71,
+ 154878 - 131105: 0x8E60,
+ 154912 - 131105: 0x8E6A,
+ 154928 - 131105: 0x8C4C,
+ 154947 - 131105: 0x9552,
+ 155033 - 131105: 0x87CF,
+ 155065 - 131105: 0x87C0,
+ 155150 - 131105: 0x9554,
+ 155209 - 131105: 0x8AD4,
+ 155265 - 131105: 0x9DBB,
+ 155266 - 131105: 0x9543,
+ 155267 - 131105: 0x92FE,
+ 155302 - 131105: 0x94F2,
+ 155324 - 131105: 0x94F1,
+ 155351 - 131105: 0xA0EA,
+ 155352 - 131105: 0x9DD2,
+ 155418 - 131105: 0xA0B1,
+ 155467 - 131105: 0x91F8,
+ 155617 - 131105: 0x9462,
+ 155618 - 131105: 0x9BA4,
+ 155681 - 131105: 0x877D,
+ 155689 - 131105: 0x8EAD,
+ 155720 - 131105: 0x9EAD,
+ 155748 - 131105: 0x96D0,
+ 155779 - 131105: 0xFEEE,
+ 155799 - 131105: 0x8AB4,
+ 155812 - 131105: 0x9757,
+ 155813 - 131105: 0x8A77,
+ 155906 - 131105: 0x9BF7,
+ 155937 - 131105: 0x8EB5,
+ 155993 - 131105: 0xA06D,
+ 155994 - 131105: 0x8EB6,
+ 155995 - 131105: 0x9756,
+ 155996 - 131105: 0x9540,
+ 156077 - 131105: 0xA0F3,
+ 156078 - 131105: 0x94BE,
+ 156082 - 131105: 0x9BFA,
+ 156125 - 131105: 0xFDDF,
+ 156248 - 131105: 0x9DBC,
+ 156257 - 131105: 0x94FE,
+ 156266 - 131105: 0x8BDB,
+ 156267 - 131105: 0xA0FE,
+ 156368 - 131105: 0x8EC0,
+ 156469 - 131105: 0x9F47,
+ 156491 - 131105: 0x8BDE,
+ 156492 - 131105: 0xA0FB,
+ 156497 - 131105: 0x8EC3,
+ 156606 - 131105: 0x9649,
+ 156661 - 131105: 0xFEC2,
+ 156664 - 131105: 0x954C,
+ 156674 - 131105: 0x9BFD,
+ 156688 - 131105: 0x90CC,
+ 156689 - 131105: 0x9C60,
+ 156690 - 131105: 0x954B,
+ 156746 - 131105: 0x9BFE,
+ 156777 - 131105: 0x9C70,
+ 156804 - 131105: 0x9C43,
+ 156808 - 131105: 0x9C47,
+ 156809 - 131105: 0x8ECC,
+ 156813 - 131105: 0x8E54,
+ 156824 - 131105: 0x8EE4,
+ 156946 - 131105: 0x9C49,
+ 157042 - 131105: 0x8B5E,
+ 157088 - 131105: 0x955E,
+ 157101 - 131105: 0x955C,
+ 157119 - 131105: 0x9C4B,
+ 157202 - 131105: 0x8BE1,
+ 157222 - 131105: 0x8ED9,
+ 157359 - 131105: 0x9DB4,
+ 157361 - 131105: 0x925F,
+ 157365 - 131105: 0x9C4C,
+ 157402 - 131105: 0x8AA1,
+ 157416 - 131105: 0x8EDB,
+ 157436 - 131105: 0x9C56,
+ 157462 - 131105: 0x8AA2,
+ 157505 - 131105: 0x9754,
+ 157593 - 131105: 0x9C5E,
+ 157619 - 131105: 0x9ED4,
+ 157620 - 131105: 0x9568,
+ 157644 - 131105: 0xA0C3,
+ 157724 - 131105: 0x8AE6,
+ 157766 - 131105: 0xA0F7,
+ 157790 - 131105: 0x9C61,
+ 157806 - 131105: 0x9C5F,
+ 157832 - 131105: 0xFC4D,
+ 157834 - 131105: 0x9E5B,
+ 157843 - 131105: 0x9E69,
+ 157895 - 131105: 0x9C63,
+ 157966 - 131105: 0xFEC7,
+ 157969 - 131105: 0xFEC6,
+ 157990 - 131105: 0x9C67,
+ 158009 - 131105: 0x9C69,
+ 158033 - 131105: 0x8BE2,
+ 158120 - 131105: 0x9165,
+ 158133 - 131105: 0x9CE7,
+ 158194 - 131105: 0x8A54,
+ 158202 - 131105: 0x9C6C,
+ 158253 - 131105: 0x9C6E,
+ 158254 - 131105: 0xFE5D,
+ 158260 - 131105: 0x9C73,
+ 158274 - 131105: 0x956A,
+ 158289 - 131105: 0x956D,
+ 158290 - 131105: 0x8EF0,
+ 158469 - 131105: 0x8F4D,
+ 158474 - 131105: 0x8EF6,
+ 158483 - 131105: 0xFABC,
+ 158485 - 131105: 0x8CD5,
+ 158499 - 131105: 0x875E,
+ 158504 - 131105: 0xFBDA,
+ 158544 - 131105: 0x8B4C,
+ 158545 - 131105: 0xFD75,
+ 158546 - 131105: 0x9BDD,
+ 158547 - 131105: 0xFAF5,
+ 158555 - 131105: 0x9C74,
+ 158581 - 131105: 0x9545,
+ 158594 - 131105: 0x96C6,
+ 158614 - 131105: 0x8F6A,
+ 158615 - 131105: 0x8F4E,
+ 158621 - 131105: 0x9C78,
+ 158643 - 131105: 0xFA55,
+ 158656 - 131105: 0x97E4,
+ 158711 - 131105: 0x9C41,
+ 158753 - 131105: 0x925C,
+ 158784 - 131105: 0x96FA,
+ 158785 - 131105: 0x8CF6,
+ 158790 - 131105: 0x8D4D,
+ 158846 - 131105: 0xFB66,
+ 158847 - 131105: 0x8E65,
+ 158848 - 131105: 0x9849,
+ 158849 - 131105: 0xFBA8,
+ 158850 - 131105: 0x9842,
+ 158884 - 131105: 0x9C7A,
+ 158903 - 131105: 0x97FB,
+ 158904 - 131105: 0x90CA,
+ 158909 - 131105: 0x9C5B,
+ 158912 - 131105: 0x974D,
+ 158915 - 131105: 0x8ED3,
+ 158929 - 131105: 0x9561,
+ 159010 - 131105: 0x9F4B,
+ 159011 - 131105: 0x9FB5,
+ 159012 - 131105: 0x93D2,
+ 159013 - 131105: 0xFDAA,
+ 159014 - 131105: 0x9840,
+ 159015 - 131105: 0x9146,
+ 159016 - 131105: 0x9867,
+ 159017 - 131105: 0xFA5A,
+ 159018 - 131105: 0xFBA9,
+ 159057 - 131105: 0x9841,
+ 159092 - 131105: 0x8CD3,
+ 159136 - 131105: 0xFCFD,
+ 159137 - 131105: 0xFDAB,
+ 159138 - 131105: 0x91BD,
+ 159139 - 131105: 0x8F4C,
+ 159140 - 131105: 0x96C9,
+ 159141 - 131105: 0x8F55,
+ 159142 - 131105: 0xFBAE,
+ 159143 - 131105: 0x956F,
+ 159150 - 131105: 0x9C7D,
+ 159196 - 131105: 0xA0F0,
+ 159210 - 131105: 0x946F,
+ 159211 - 131105: 0xFDAC,
+ 159216 - 131105: 0x96CB,
+ 159232 - 131105: 0x96CE,
+ 159237 - 131105: 0xA056,
+ 159239 - 131105: 0x9CE1,
+ 159250 - 131105: 0x96C4,
+ 159298 - 131105: 0x8F5E,
+ 159299 - 131105: 0x8F6C,
+ 159300 - 131105: 0x8EA3,
+ 159301 - 131105: 0xFBB3,
+ 159342 - 131105: 0xFC53,
+ 159346 - 131105: 0xFDB3,
+ 159351 - 131105: 0x8F6B,
+ 159364 - 131105: 0x96CA,
+ 159368 - 131105: 0x87CD,
+ 159371 - 131105: 0x8753,
+ 159385 - 131105: 0x8F79,
+ 159440 - 131105: 0x9E6F,
+ 159441 - 131105: 0xA0C5,
+ 159442 - 131105: 0xFC78,
+ 159443 - 131105: 0x8E42,
+ 159444 - 131105: 0x8F5A,
+ 159445 - 131105: 0x90C2,
+ 159446 - 131105: 0x8EA5,
+ 159447 - 131105: 0x9061,
+ 159526 - 131105: 0x924F,
+ 159603 - 131105: 0x9373,
+ 159604 - 131105: 0xFDB5,
+ 159647 - 131105: 0xFECC,
+ 159649 - 131105: 0xFBBD,
+ 159678 - 131105: 0x8CD6,
+ 159710 - 131105: 0x9843,
+ 159711 - 131105: 0x96C5,
+ 159758 - 131105: 0x89BC,
+ 159819 - 131105: 0x9CA3,
+ 159826 - 131105: 0x924B,
+ 159827 - 131105: 0x984A,
+ 159880 - 131105: 0x8FA4,
+ 159917 - 131105: 0xA0F1,
+ 159918 - 131105: 0x9EFB,
+ 159919 - 131105: 0x9CD2,
+ 159949 - 131105: 0x8FA7,
+ 159954 - 131105: 0x8754,
+ 159992 - 131105: 0xFC5C,
+ 160009 - 131105: 0x9845,
+ 160012 - 131105: 0x9046,
+ 160013 - 131105: 0x8CD1,
+ 160038 - 131105: 0xFEFA,
+ 160039 - 131105: 0x9560,
+ 160100 - 131105: 0x9F48,
+ 160101 - 131105: 0x9247,
+ 160117 - 131105: 0x90FB,
+ 160205 - 131105: 0x9CA4,
+ 160283 - 131105: 0x9571,
+ 160359 - 131105: 0x8745,
+ 160384 - 131105: 0x9CA6,
+ 160389 - 131105: 0x9CA7,
+ 160395 - 131105: 0x9CAA,
+ 160434 - 131105: 0x9ED3,
+ 160438 - 131105: 0x9E70,
+ 160486 - 131105: 0x9CAC,
+ 160594 - 131105: 0x8752,
+ 160666 - 131105: 0x8FAE,
+ 160767 - 131105: 0x8D50,
+ 160802 - 131105: 0x957D,
+ 160848 - 131105: 0x9CB0,
+ 160900 - 131105: 0x97B6,
+ 160902 - 131105: 0xA0BD,
+ 161140 - 131105: 0x8ADF,
+ 161187 - 131105: 0x9EAA,
+ 161248 - 131105: 0x8FBD,
+ 161252 - 131105: 0x8FBF,
+ 161277 - 131105: 0x9369,
+ 161278 - 131105: 0x9BA7,
+ 161287 - 131105: 0xC8A4,
+ 161292 - 131105: 0xFEEA,
+ 161330 - 131105: 0x9BE1,
+ 161337 - 131105: 0x8B41,
+ 161365 - 131105: 0x9DB6,
+ 161366 - 131105: 0xA0EB,
+ 161367 - 131105: 0x9BA3,
+ 161428 - 131105: 0x8BA1,
+ 161551 - 131105: 0x8FC8,
+ 161589 - 131105: 0x894C,
+ 161590 - 131105: 0x9860,
+ 161601 - 131105: 0x94C7,
+ 161630 - 131105: 0x8B58,
+ 161668 - 131105: 0x95AB,
+ 161669 - 131105: 0x95AA,
+ 161740 - 131105: 0x9CC3,
+ 161880 - 131105: 0x9CC4,
+ 161904 - 131105: 0x93D6,
+ 161949 - 131105: 0x9DAC,
+ 161970 - 131105: 0x8BE6,
+ 161992 - 131105: 0x8A71,
+ 162084 - 131105: 0x8FD1,
+ 162151 - 131105: 0x99D5,
+ 162170 - 131105: 0x90F4,
+ 162208 - 131105: 0x8AA3,
+ 162269 - 131105: 0x9CCE,
+ 162301 - 131105: 0x9CD4,
+ 162314 - 131105: 0x9CD5,
+ 162318 - 131105: 0xFBC8,
+ 162366 - 131105: 0x9DB3,
+ 162387 - 131105: 0xFC70,
+ 162393 - 131105: 0x8FD7,
+ 162425 - 131105: 0x9B73,
+ 162436 - 131105: 0xFA5B,
+ 162493 - 131105: 0x8FD2,
+ 162494 - 131105: 0x9064,
+ 162548 - 131105: 0x98B6,
+ 162566 - 131105: 0x9668,
+ 162571 - 131105: 0x9CD6,
+ 162584 - 131105: 0x98BD,
+ 162616 - 131105: 0x8FDC,
+ 162617 - 131105: 0xFEF6,
+ 162618 - 131105: 0x8FD9,
+ 162632 - 131105: 0x9541,
+ 162661 - 131105: 0x87CA,
+ 162799 - 131105: 0x876C,
+ 162804 - 131105: 0x97F3,
+ 162834 - 131105: 0x9BF8,
+ 162924 - 131105: 0x875A,
+ 162993 - 131105: 0x8748,
+ 163013 - 131105: 0x874A,
+ 163119 - 131105: 0x9E6C,
+ 163155 - 131105: 0x8FF2,
+ 163156 - 131105: 0x8FEE,
+ 163174 - 131105: 0x9CD7,
+ 163187 - 131105: 0x9E6E,
+ 163204 - 131105: 0x8A40,
+ 163215 - 131105: 0x8FEF,
+ 163224 - 131105: 0x8FF4,
+ 163261 - 131105: 0x8FF5,
+ 163292 - 131105: 0x95C2,
+ 163405 - 131105: 0x986A,
+ 163407 - 131105: 0x97CF,
+ 163630 - 131105: 0x9EE5,
+ 163833 - 131105: 0x9E7C,
+ 163842 - 131105: 0x9041,
+ 163849 - 131105: 0x9CDB,
+ 163870 - 131105: 0x9441,
+ 163875 - 131105: 0x9CE6,
+ 163876 - 131105: 0x9DB0,
+ 163912 - 131105: 0x9CEA,
+ 163971 - 131105: 0x9CED,
+ 163984 - 131105: 0x9CFA,
+ 164029 - 131105: 0x8B62,
+ 164030 - 131105: 0x8A4E,
+ 164072 - 131105: 0x9CCA,
+ 164073 - 131105: 0x8A66,
+ 164084 - 131105: 0x9CFB,
+ 164142 - 131105: 0x9CFC,
+ 164175 - 131105: 0x9CFE,
+ 164189 - 131105: 0x8A53,
+ 164207 - 131105: 0x9CE5,
+ 164233 - 131105: 0x9D40,
+ 164271 - 131105: 0x9D41,
+ 164284 - 131105: 0x9045,
+ 164359 - 131105: 0x8B73,
+ 164376 - 131105: 0x97CA,
+ 164378 - 131105: 0x9D42,
+ 164438 - 131105: 0x8A61,
+ 164476 - 131105: 0x8BAE,
+ 164507 - 131105: 0x8AD2,
+ 164557 - 131105: 0x8BA2,
+ 164578 - 131105: 0x9DF2,
+ 164614 - 131105: 0x9D43,
+ 164632 - 131105: 0x9CDF,
+ 164655 - 131105: 0x9D44,
+ 164666 - 131105: 0x8ECA,
+ 164709 - 131105: 0x904E,
+ 164717 - 131105: 0x8EB3,
+ 164733 - 131105: 0x9FF5,
+ 164746 - 131105: 0x9D45,
+ 164882 - 131105: 0x904F,
+ 164968 - 131105: 0x9D47,
+ 164972 - 131105: 0x89CA,
+ 164979 - 131105: 0x9CB5,
+ 164994 - 131105: 0xFBFE,
+ 165121 - 131105: 0x905E,
+ 165180 - 131105: 0x9063,
+ 165181 - 131105: 0x9057,
+ 165228 - 131105: 0x9066,
+ 165352 - 131105: 0x9BC0,
+ 165364 - 131105: 0xFCE5,
+ 165376 - 131105: 0x9162,
+ 165387 - 131105: 0x9067,
+ 165413 - 131105: 0x8FA1,
+ 165435 - 131105: 0x8FA2,
+ 165546 - 131105: 0x9D48,
+ 165547 - 131105: 0xFAD3,
+ 165554 - 131105: 0x8D4F,
+ 165564 - 131105: 0x905D,
+ 165592 - 131105: 0x90B9,
+ 165606 - 131105: 0x906B,
+ 165647 - 131105: 0x8C5C,
+ 165651 - 131105: 0x9069,
+ 165892 - 131105: 0xFE57,
+ 165931 - 131105: 0xFE55,
+ 166157 - 131105: 0x87A6,
+ 166195 - 131105: 0x9073,
+ 166216 - 131105: 0x9BEF,
+ 166217 - 131105: 0x9CF0,
+ 166230 - 131105: 0x9D4B,
+ 166244 - 131105: 0xFED9,
+ 166248 - 131105: 0xFEDA,
+ 166252 - 131105: 0x91E0,
+ 166253 - 131105: 0x8D43,
+ 166270 - 131105: 0x91D8,
+ 166281 - 131105: 0x9646,
+ 166312 - 131105: 0x9360,
+ 166314 - 131105: 0xFA53,
+ 166315 - 131105: 0x9CD3,
+ 166328 - 131105: 0x9D4E,
+ 166332 - 131105: 0xFB40,
+ 166336 - 131105: 0x8DE2,
+ 166364 - 131105: 0x9442,
+ 166366 - 131105: 0x9056,
+ 166369 - 131105: 0x9865,
+ 166371 - 131105: 0x8C6C,
+ 166372 - 131105: 0xFA4A,
+ 166375 - 131105: 0x9D50,
+ 166376 - 131105: 0x9D52,
+ 166393 - 131105: 0x95AF,
+ 166394 - 131105: 0x975A,
+ 166395 - 131105: 0x9349,
+ 166396 - 131105: 0x9747,
+ 166415 - 131105: 0xA0F4,
+ 166422 - 131105: 0x9778,
+ 166437 - 131105: 0x8FCF,
+ 166441 - 131105: 0xFC60,
+ 166450 - 131105: 0x8C4E,
+ 166454 - 131105: 0xFC56,
+ 166468 - 131105: 0x91DC,
+ 166469 - 131105: 0x9661,
+ 166470 - 131105: 0x92EC,
+ 166471 - 131105: 0x935D,
+ 166472 - 131105: 0x8EDE,
+ 166473 - 131105: 0x96FE,
+ 166474 - 131105: 0xFD4F,
+ 166475 - 131105: 0x95DE,
+ 166489 - 131105: 0x98B0,
+ 166490 - 131105: 0xA040,
+ 166529 - 131105: 0x97BD,
+ 166530 - 131105: 0x977D,
+ 166531 - 131105: 0x97F5,
+ 166554 - 131105: 0x9BAC,
+ 166555 - 131105: 0xFADA,
+ 166556 - 131105: 0x92C2,
+ 166592 - 131105: 0x97B1,
+ 166598 - 131105: 0x907B,
+ 166603 - 131105: 0x93FE,
+ 166604 - 131105: 0x947B,
+ 166606 - 131105: 0x9777,
+ 166622 - 131105: 0xFABE,
+ 166623 - 131105: 0xFD43,
+ 166624 - 131105: 0x90C6,
+ 166625 - 131105: 0x90A4,
+ 166626 - 131105: 0x90A8,
+ 166627 - 131105: 0x94A9,
+ 166629 - 131105: 0x90A9,
+ 166634 - 131105: 0x8C65,
+ 166652 - 131105: 0x95E0,
+ 166668 - 131105: 0x907D,
+ 166675 - 131105: 0x9265,
+ 166689 - 131105: 0xFDBA,
+ 166690 - 131105: 0x93C4,
+ 166699 - 131105: 0xFEED,
+ 166700 - 131105: 0x9DAB,
+ 166701 - 131105: 0xA0E3,
+ 166703 - 131105: 0x9648,
+ 166726 - 131105: 0x9D53,
+ 166732 - 131105: 0x8AA9,
+ 166734 - 131105: 0x9BC5,
+ 166736 - 131105: 0x965D,
+ 166755 - 131105: 0x975F,
+ 166756 - 131105: 0x965F,
+ 166757 - 131105: 0x966E,
+ 166758 - 131105: 0xFB5D,
+ 166764 - 131105: 0x9DB1,
+ 166799 - 131105: 0xFEA3,
+ 166809 - 131105: 0x9DB2,
+ 166812 - 131105: 0x95AE,
+ 166813 - 131105: 0xFCA3,
+ 166841 - 131105: 0x8769,
+ 166850 - 131105: 0xA0A2,
+ 166853 - 131105: 0x9655,
+ 166868 - 131105: 0x9D54,
+ 166871 - 131105: 0x9341,
+ 166873 - 131105: 0x95AD,
+ 166874 - 131105: 0x91D5,
+ 166887 - 131105: 0x977A,
+ 166888 - 131105: 0xFDFC,
+ 166889 - 131105: 0x8E47,
+ 166890 - 131105: 0x93FD,
+ 166891 - 131105: 0x90A5,
+ 166892 - 131105: 0x90AC,
+ 166901 - 131105: 0x95AC,
+ 166911 - 131105: 0x90AE,
+ 166915 - 131105: 0xFEA5,
+ 166921 - 131105: 0x9D56,
+ 166940 - 131105: 0x97E3,
+ 166941 - 131105: 0x95E2,
+ 166947 - 131105: 0x9466,
+ 166950 - 131105: 0x9647,
+ 166955 - 131105: 0x91B8,
+ 166960 - 131105: 0x9CEC,
+ 166969 - 131105: 0x90AD,
+ 166971 - 131105: 0x95E3,
+ 167114 - 131105: 0x8B4F,
+ 167117 - 131105: 0x8AE3,
+ 167122 - 131105: 0x8B4D,
+ 167220 - 131105: 0x95EA,
+ 167321 - 131105: 0x8B4E,
+ 167353 - 131105: 0x8CC1,
+ 167439 - 131105: 0x8BED,
+ 167478 - 131105: 0x91D9,
+ 167481 - 131105: 0xA0A4,
+ 167525 - 131105: 0x95F5,
+ 167526 - 131105: 0x95F4,
+ 167575 - 131105: 0x9FB3,
+ 167596 - 131105: 0xFEAF,
+ 167602 - 131105: 0xFE72,
+ 167603 - 131105: 0x927A,
+ 167641 - 131105: 0xFEAC,
+ 167655 - 131105: 0x95F3,
+ 167877 - 131105: 0x9D58,
+ 168057 - 131105: 0x8D46,
+ 168072 - 131105: 0x9372,
+ 168075 - 131105: 0x91C5,
+ 168083 - 131105: 0x9642,
+ 168111 - 131105: 0x90CD,
+ 168112 - 131105: 0x95FE,
+ 168113 - 131105: 0x9159,
+ 168128 - 131105: 0x9C65,
+ 168164 - 131105: 0x97CC,
+ 168165 - 131105: 0x90CE,
+ 168172 - 131105: 0x9D59,
+ 168173 - 131105: 0xFCF5,
+ 168205 - 131105: 0xFEFD,
+ 168208 - 131105: 0x9D5B,
+ 168252 - 131105: 0x9D5C,
+ 168269 - 131105: 0x937E,
+ 168283 - 131105: 0x98AC,
+ 168286 - 131105: 0x9D5E,
+ 168304 - 131105: 0xFDD0,
+ 168348 - 131105: 0xFD60,
+ 168360 - 131105: 0x9CCF,
+ 168405 - 131105: 0x90DD,
+ 168427 - 131105: 0x90E0,
+ 168989 - 131105: 0x90F3,
+ 168992 - 131105: 0x98B1,
+ 169011 - 131105: 0x90F0,
+ 169023 - 131105: 0x93BD,
+ 169032 - 131105: 0x95B7,
+ 169168 - 131105: 0x9F46,
+ 169177 - 131105: 0x8E4B,
+ 169178 - 131105: 0x9658,
+ 169189 - 131105: 0x8A4C,
+ 169191 - 131105: 0x9D63,
+ 169374 - 131105: 0x9ECF,
+ 169392 - 131105: 0x9D65,
+ 169400 - 131105: 0x9D66,
+ 169431 - 131105: 0x965A,
+ 169449 - 131105: 0x9D64,
+ 169460 - 131105: 0x8A6C,
+ 169760 - 131105: 0x8AD9,
+ 169778 - 131105: 0x9D67,
+ 169940 - 131105: 0x8A70,
+ 170000 - 131105: 0x8BF3,
+ 170071 - 131105: 0x9150,
+ 170148 - 131105: 0x9CC1,
+ 170193 - 131105: 0x9D68,
+ 170218 - 131105: 0x93A7,
+ 170225 - 131105: 0x9674,
+ 170234 - 131105: 0x8CFD,
+ 170243 - 131105: 0xA0EF,
+ 170245 - 131105: 0x9151,
+ 170287 - 131105: 0x96C1,
+ 170309 - 131105: 0x8777,
+ 170311 - 131105: 0x8C64,
+ 170312 - 131105: 0x9676,
+ 170313 - 131105: 0x9D69,
+ 170333 - 131105: 0xFCA4,
+ 170346 - 131105: 0x9D6A,
+ 170397 - 131105: 0x924E,
+ 170435 - 131105: 0x9D6B,
+ 170441 - 131105: 0x9BC1,
+ 170536 - 131105: 0x9D6C,
+ 170573 - 131105: 0x8A65,
+ 170757 - 131105: 0x915D,
+ 170766 - 131105: 0x9D6D,
+ 170965 - 131105: 0x915A,
+ 171123 - 131105: 0x8C42,
+ 171181 - 131105: 0x9CC0,
+ 171326 - 131105: 0x916A,
+ 171354 - 131105: 0x9D6E,
+ 171388 - 131105: 0x9EA6,
+ 171416 - 131105: 0x9DCD,
+ 171419 - 131105: 0x9D6F,
+ 171510 - 131105: 0x89BB,
+ 171526 - 131105: 0x9EF9,
+ 171565 - 131105: 0x96B4,
+ 171624 - 131105: 0x9172,
+ 171692 - 131105: 0x9EC8,
+ 171696 - 131105: 0x8771,
+ 171715 - 131105: 0x8B55,
+ 171768 - 131105: 0x9D71,
+ 171811 - 131105: 0x9D72,
+ 171824 - 131105: 0x9ECC,
+ 171959 - 131105: 0x9174,
+ 171998 - 131105: 0x9ED0,
+ 172052 - 131105: 0x905C,
+ 172167 - 131105: 0x8ED2,
+ 172217 - 131105: 0x91A8,
+ 172257 - 131105: 0x9177,
+ 172269 - 131105: 0x96BF,
+ 172275 - 131105: 0x96C0,
+ 172280 - 131105: 0x8FB1,
+ 172286 - 131105: 0x96B7,
+ 172295 - 131105: 0x8C55,
+ 172323 - 131105: 0x9178,
+ 172339 - 131105: 0x89BE,
+ 172340 - 131105: 0x917C,
+ 172368 - 131105: 0xFB77,
+ 172434 - 131105: 0x9175,
+ 172435 - 131105: 0x91A3,
+ 172459 - 131105: 0x9176,
+ 172468 - 131105: 0x96BE,
+ 172469 - 131105: 0x8D49,
+ 172511 - 131105: 0x9179,
+ 172533 - 131105: 0x96B6,
+ 172576 - 131105: 0x91A4,
+ 172595 - 131105: 0x91A6,
+ 172691 - 131105: 0x9D75,
+ 172703 - 131105: 0x9052,
+ 172722 - 131105: 0xA045,
+ 172724 - 131105: 0x91A9,
+ 172726 - 131105: 0x98AA,
+ 172730 - 131105: 0x8C5F,
+ 172733 - 131105: 0x8BAA,
+ 172767 - 131105: 0x9CDD,
+ 172799 - 131105: 0x9D77,
+ 172881 - 131105: 0x8756,
+ 172969 - 131105: 0x8940,
+ 173108 - 131105: 0x9EEC,
+ 173147 - 131105: 0x93AA,
+ 173510 - 131105: 0x9478,
+ 173515 - 131105: 0x9D7A,
+ 173569 - 131105: 0x8AC9,
+ 173618 - 131105: 0x8B4B,
+ 173642 - 131105: 0x9FEC,
+ 173659 - 131105: 0x8AE2,
+ 173737 - 131105: 0x9E75,
+}
+
+const encode1Low, encode1High = 11904, 40908
+
+var encode1 = [...]uint16{
+ 11904 - 11904: 0xC8D6,
+ 11908 - 11904: 0xC8D7,
+ 11910 - 11904: 0xC8D8,
+ 11911 - 11904: 0xC8D9,
+ 11912 - 11904: 0xC8DA,
+ 11914 - 11904: 0xC8DB,
+ 11916 - 11904: 0xC8DC,
+ 11917 - 11904: 0xC8DD,
+ 11925 - 11904: 0xC8DE,
+ 11932 - 11904: 0xC8DF,
+ 11933 - 11904: 0xC8E0,
+ 11941 - 11904: 0xC8E1,
+ 11943 - 11904: 0xC8E2,
+ 11946 - 11904: 0xC8E3,
+ 11948 - 11904: 0xC8E4,
+ 11950 - 11904: 0xC8E5,
+ 11958 - 11904: 0xC8E6,
+ 11964 - 11904: 0xC8E7,
+ 11966 - 11904: 0xC8E8,
+ 11974 - 11904: 0xC8E9,
+ 11978 - 11904: 0xC8EA,
+ 11980 - 11904: 0xC8EB,
+ 11981 - 11904: 0xC8EC,
+ 11983 - 11904: 0xC8ED,
+ 11990 - 11904: 0xC8EE,
+ 11991 - 11904: 0xC8EF,
+ 11998 - 11904: 0xC8F0,
+ 12003 - 11904: 0xC8F1,
+ 12083 - 11904: 0xC6CD,
+ 12288 - 11904: 0xA140,
+ 12289 - 11904: 0xA142,
+ 12290 - 11904: 0xA143,
+ 12291 - 11904: 0xC6DE,
+ 12293 - 11904: 0xC6E0,
+ 12294 - 11904: 0xC6E1,
+ 12295 - 11904: 0xC6E2,
+ 12296 - 11904: 0xA171,
+ 12297 - 11904: 0xA172,
+ 12298 - 11904: 0xA16D,
+ 12299 - 11904: 0xA16E,
+ 12300 - 11904: 0xA175,
+ 12301 - 11904: 0xA176,
+ 12302 - 11904: 0xA179,
+ 12303 - 11904: 0xA17A,
+ 12304 - 11904: 0xA169,
+ 12305 - 11904: 0xA16A,
+ 12306 - 11904: 0xA245,
+ 12308 - 11904: 0xA165,
+ 12309 - 11904: 0xA166,
+ 12317 - 11904: 0xA1A9,
+ 12318 - 11904: 0xA1AA,
+ 12321 - 11904: 0xA2C3,
+ 12322 - 11904: 0xA2C4,
+ 12323 - 11904: 0xA2C5,
+ 12324 - 11904: 0xA2C6,
+ 12325 - 11904: 0xA2C7,
+ 12326 - 11904: 0xA2C8,
+ 12327 - 11904: 0xA2C9,
+ 12328 - 11904: 0xA2CA,
+ 12329 - 11904: 0xA2CB,
+ 12353 - 11904: 0xC6E7,
+ 12354 - 11904: 0xC6E8,
+ 12355 - 11904: 0xC6E9,
+ 12356 - 11904: 0xC6EA,
+ 12357 - 11904: 0xC6EB,
+ 12358 - 11904: 0xC6EC,
+ 12359 - 11904: 0xC6ED,
+ 12360 - 11904: 0xC6EE,
+ 12361 - 11904: 0xC6EF,
+ 12362 - 11904: 0xC6F0,
+ 12363 - 11904: 0xC6F1,
+ 12364 - 11904: 0xC6F2,
+ 12365 - 11904: 0xC6F3,
+ 12366 - 11904: 0xC6F4,
+ 12367 - 11904: 0xC6F5,
+ 12368 - 11904: 0xC6F6,
+ 12369 - 11904: 0xC6F7,
+ 12370 - 11904: 0xC6F8,
+ 12371 - 11904: 0xC6F9,
+ 12372 - 11904: 0xC6FA,
+ 12373 - 11904: 0xC6FB,
+ 12374 - 11904: 0xC6FC,
+ 12375 - 11904: 0xC6FD,
+ 12376 - 11904: 0xC6FE,
+ 12377 - 11904: 0xC740,
+ 12378 - 11904: 0xC741,
+ 12379 - 11904: 0xC742,
+ 12380 - 11904: 0xC743,
+ 12381 - 11904: 0xC744,
+ 12382 - 11904: 0xC745,
+ 12383 - 11904: 0xC746,
+ 12384 - 11904: 0xC747,
+ 12385 - 11904: 0xC748,
+ 12386 - 11904: 0xC749,
+ 12387 - 11904: 0xC74A,
+ 12388 - 11904: 0xC74B,
+ 12389 - 11904: 0xC74C,
+ 12390 - 11904: 0xC74D,
+ 12391 - 11904: 0xC74E,
+ 12392 - 11904: 0xC74F,
+ 12393 - 11904: 0xC750,
+ 12394 - 11904: 0xC751,
+ 12395 - 11904: 0xC752,
+ 12396 - 11904: 0xC753,
+ 12397 - 11904: 0xC754,
+ 12398 - 11904: 0xC755,
+ 12399 - 11904: 0xC756,
+ 12400 - 11904: 0xC757,
+ 12401 - 11904: 0xC758,
+ 12402 - 11904: 0xC759,
+ 12403 - 11904: 0xC75A,
+ 12404 - 11904: 0xC75B,
+ 12405 - 11904: 0xC75C,
+ 12406 - 11904: 0xC75D,
+ 12407 - 11904: 0xC75E,
+ 12408 - 11904: 0xC75F,
+ 12409 - 11904: 0xC760,
+ 12410 - 11904: 0xC761,
+ 12411 - 11904: 0xC762,
+ 12412 - 11904: 0xC763,
+ 12413 - 11904: 0xC764,
+ 12414 - 11904: 0xC765,
+ 12415 - 11904: 0xC766,
+ 12416 - 11904: 0xC767,
+ 12417 - 11904: 0xC768,
+ 12418 - 11904: 0xC769,
+ 12419 - 11904: 0xC76A,
+ 12420 - 11904: 0xC76B,
+ 12421 - 11904: 0xC76C,
+ 12422 - 11904: 0xC76D,
+ 12423 - 11904: 0xC76E,
+ 12424 - 11904: 0xC76F,
+ 12425 - 11904: 0xC770,
+ 12426 - 11904: 0xC771,
+ 12427 - 11904: 0xC772,
+ 12428 - 11904: 0xC773,
+ 12429 - 11904: 0xC774,
+ 12430 - 11904: 0xC775,
+ 12431 - 11904: 0xC776,
+ 12432 - 11904: 0xC777,
+ 12433 - 11904: 0xC778,
+ 12434 - 11904: 0xC779,
+ 12435 - 11904: 0xC77A,
+ 12443 - 11904: 0xC8D4,
+ 12444 - 11904: 0xC8D5,
+ 12445 - 11904: 0xC6DC,
+ 12446 - 11904: 0xC6DD,
+ 12449 - 11904: 0xC77B,
+ 12450 - 11904: 0xC77C,
+ 12451 - 11904: 0xC77D,
+ 12452 - 11904: 0xC77E,
+ 12453 - 11904: 0xC7A1,
+ 12454 - 11904: 0xC7A2,
+ 12455 - 11904: 0xC7A3,
+ 12456 - 11904: 0xC7A4,
+ 12457 - 11904: 0xC7A5,
+ 12458 - 11904: 0xC7A6,
+ 12459 - 11904: 0xC7A7,
+ 12460 - 11904: 0xC7A8,
+ 12461 - 11904: 0xC7A9,
+ 12462 - 11904: 0xC7AA,
+ 12463 - 11904: 0xC7AB,
+ 12464 - 11904: 0xC7AC,
+ 12465 - 11904: 0xC7AD,
+ 12466 - 11904: 0xC7AE,
+ 12467 - 11904: 0xC7AF,
+ 12468 - 11904: 0xC7B0,
+ 12469 - 11904: 0xC7B1,
+ 12470 - 11904: 0xC7B2,
+ 12471 - 11904: 0xC7B3,
+ 12472 - 11904: 0xC7B4,
+ 12473 - 11904: 0xC7B5,
+ 12474 - 11904: 0xC7B6,
+ 12475 - 11904: 0xC7B7,
+ 12476 - 11904: 0xC7B8,
+ 12477 - 11904: 0xC7B9,
+ 12478 - 11904: 0xC7BA,
+ 12479 - 11904: 0xC7BB,
+ 12480 - 11904: 0xC7BC,
+ 12481 - 11904: 0xC7BD,
+ 12482 - 11904: 0xC7BE,
+ 12483 - 11904: 0xC7BF,
+ 12484 - 11904: 0xC7C0,
+ 12485 - 11904: 0xC7C1,
+ 12486 - 11904: 0xC7C2,
+ 12487 - 11904: 0xC7C3,
+ 12488 - 11904: 0xC7C4,
+ 12489 - 11904: 0xC7C5,
+ 12490 - 11904: 0xC7C6,
+ 12491 - 11904: 0xC7C7,
+ 12492 - 11904: 0xC7C8,
+ 12493 - 11904: 0xC7C9,
+ 12494 - 11904: 0xC7CA,
+ 12495 - 11904: 0xC7CB,
+ 12496 - 11904: 0xC7CC,
+ 12497 - 11904: 0xC7CD,
+ 12498 - 11904: 0xC7CE,
+ 12499 - 11904: 0xC7CF,
+ 12500 - 11904: 0xC7D0,
+ 12501 - 11904: 0xC7D1,
+ 12502 - 11904: 0xC7D2,
+ 12503 - 11904: 0xC7D3,
+ 12504 - 11904: 0xC7D4,
+ 12505 - 11904: 0xC7D5,
+ 12506 - 11904: 0xC7D6,
+ 12507 - 11904: 0xC7D7,
+ 12508 - 11904: 0xC7D8,
+ 12509 - 11904: 0xC7D9,
+ 12510 - 11904: 0xC7DA,
+ 12511 - 11904: 0xC7DB,
+ 12512 - 11904: 0xC7DC,
+ 12513 - 11904: 0xC7DD,
+ 12514 - 11904: 0xC7DE,
+ 12515 - 11904: 0xC7DF,
+ 12516 - 11904: 0xC7E0,
+ 12517 - 11904: 0xC7E1,
+ 12518 - 11904: 0xC7E2,
+ 12519 - 11904: 0xC7E3,
+ 12520 - 11904: 0xC7E4,
+ 12521 - 11904: 0xC7E5,
+ 12522 - 11904: 0xC7E6,
+ 12523 - 11904: 0xC7E7,
+ 12524 - 11904: 0xC7E8,
+ 12525 - 11904: 0xC7E9,
+ 12526 - 11904: 0xC7EA,
+ 12527 - 11904: 0xC7EB,
+ 12528 - 11904: 0xC7EC,
+ 12529 - 11904: 0xC7ED,
+ 12530 - 11904: 0xC7EE,
+ 12531 - 11904: 0xC7EF,
+ 12532 - 11904: 0xC7F0,
+ 12533 - 11904: 0xC7F1,
+ 12534 - 11904: 0xC7F2,
+ 12540 - 11904: 0xC6E3,
+ 12541 - 11904: 0xC6DA,
+ 12542 - 11904: 0xC6DB,
+ 12549 - 11904: 0xA374,
+ 12550 - 11904: 0xA375,
+ 12551 - 11904: 0xA376,
+ 12552 - 11904: 0xA377,
+ 12553 - 11904: 0xA378,
+ 12554 - 11904: 0xA379,
+ 12555 - 11904: 0xA37A,
+ 12556 - 11904: 0xA37B,
+ 12557 - 11904: 0xA37C,
+ 12558 - 11904: 0xA37D,
+ 12559 - 11904: 0xA37E,
+ 12560 - 11904: 0xA3A1,
+ 12561 - 11904: 0xA3A2,
+ 12562 - 11904: 0xA3A3,
+ 12563 - 11904: 0xA3A4,
+ 12564 - 11904: 0xA3A5,
+ 12565 - 11904: 0xA3A6,
+ 12566 - 11904: 0xA3A7,
+ 12567 - 11904: 0xA3A8,
+ 12568 - 11904: 0xA3A9,
+ 12569 - 11904: 0xA3AA,
+ 12570 - 11904: 0xA3AB,
+ 12571 - 11904: 0xA3AC,
+ 12572 - 11904: 0xA3AD,
+ 12573 - 11904: 0xA3AE,
+ 12574 - 11904: 0xA3AF,
+ 12575 - 11904: 0xA3B0,
+ 12576 - 11904: 0xA3B1,
+ 12577 - 11904: 0xA3B2,
+ 12578 - 11904: 0xA3B3,
+ 12579 - 11904: 0xA3B4,
+ 12580 - 11904: 0xA3B5,
+ 12581 - 11904: 0xA3B6,
+ 12582 - 11904: 0xA3B7,
+ 12583 - 11904: 0xA3B8,
+ 12584 - 11904: 0xA3B9,
+ 12585 - 11904: 0xA3BA,
+ 12736 - 11904: 0x8840,
+ 12737 - 11904: 0x8841,
+ 12738 - 11904: 0x8842,
+ 12739 - 11904: 0x8843,
+ 12740 - 11904: 0x8844,
+ 12741 - 11904: 0x8846,
+ 12742 - 11904: 0x8849,
+ 12743 - 11904: 0x884A,
+ 12744 - 11904: 0x884D,
+ 12745 - 11904: 0x884F,
+ 12746 - 11904: 0x8850,
+ 12747 - 11904: 0x8851,
+ 12748 - 11904: 0x8852,
+ 12749 - 11904: 0x8854,
+ 12750 - 11904: 0x8855,
+ 12751 - 11904: 0xC879,
+ 12849 - 11904: 0xC8D1,
+ 12963 - 11904: 0xA1C0,
+ 13198 - 11904: 0xA255,
+ 13199 - 11904: 0xA256,
+ 13212 - 11904: 0xA250,
+ 13213 - 11904: 0xA251,
+ 13214 - 11904: 0xA252,
+ 13217 - 11904: 0xA254,
+ 13252 - 11904: 0xA257,
+ 13262 - 11904: 0xA253,
+ 13265 - 11904: 0xA1EB,
+ 13266 - 11904: 0xA1EA,
+ 13269 - 11904: 0xA24F,
+ 13365 - 11904: 0x9277,
+ 13376 - 11904: 0x96DF,
+ 13386 - 11904: 0x8CF4,
+ 13388 - 11904: 0x89D5,
+ 13412 - 11904: 0x93CD,
+ 13427 - 11904: 0x9BDF,
+ 13434 - 11904: 0xFA68,
+ 13437 - 11904: 0x89DA,
+ 13438 - 11904: 0x8F59,
+ 13459 - 11904: 0x89DB,
+ 13462 - 11904: 0x8F5D,
+ 13477 - 11904: 0x89DC,
+ 13487 - 11904: 0x96F7,
+ 13500 - 11904: 0x8ADA,
+ 13505 - 11904: 0x8BDC,
+ 13512 - 11904: 0x97DB,
+ 13535 - 11904: 0x9E53,
+ 13540 - 11904: 0x9DAA,
+ 13542 - 11904: 0x87BE,
+ 13563 - 11904: 0x9BEA,
+ 13574 - 11904: 0x8A6E,
+ 13630 - 11904: 0x8BC8,
+ 13649 - 11904: 0x89E8,
+ 13651 - 11904: 0x89EA,
+ 13657 - 11904: 0x8C4B,
+ 13665 - 11904: 0xFB70,
+ 13677 - 11904: 0x89ED,
+ 13680 - 11904: 0x94DD,
+ 13682 - 11904: 0x89EE,
+ 13687 - 11904: 0x9EB4,
+ 13688 - 11904: 0x8AD3,
+ 13700 - 11904: 0x92DB,
+ 13719 - 11904: 0x94DB,
+ 13720 - 11904: 0x89F9,
+ 13729 - 11904: 0xFB7A,
+ 13733 - 11904: 0x89FB,
+ 13741 - 11904: 0x9EFC,
+ 13759 - 11904: 0x89FC,
+ 13761 - 11904: 0x89BF,
+ 13765 - 11904: 0x89FE,
+ 13767 - 11904: 0x89E6,
+ 13770 - 11904: 0x9D46,
+ 13774 - 11904: 0x9DEE,
+ 13778 - 11904: 0xA07E,
+ 13782 - 11904: 0xA068,
+ 13787 - 11904: 0x98E9,
+ 13789 - 11904: 0x8B68,
+ 13809 - 11904: 0x8DFD,
+ 13810 - 11904: 0x8BBE,
+ 13811 - 11904: 0x9FD9,
+ 13819 - 11904: 0x8AEB,
+ 13822 - 11904: 0x9FD7,
+ 13833 - 11904: 0x8B6A,
+ 13848 - 11904: 0x9C5C,
+ 13850 - 11904: 0x8BB1,
+ 13859 - 11904: 0xFB5E,
+ 13861 - 11904: 0x8770,
+ 13869 - 11904: 0x9DF3,
+ 13877 - 11904: 0xA0D0,
+ 13881 - 11904: 0xFC66,
+ 13886 - 11904: 0x92E9,
+ 13895 - 11904: 0x9AEC,
+ 13896 - 11904: 0x8FAB,
+ 13897 - 11904: 0xFA48,
+ 13902 - 11904: 0x8E45,
+ 13919 - 11904: 0x9C6F,
+ 13921 - 11904: 0x8D5C,
+ 13946 - 11904: 0x9EDE,
+ 13953 - 11904: 0x89EF,
+ 13978 - 11904: 0x96E9,
+ 13989 - 11904: 0x9EBB,
+ 13994 - 11904: 0x94DE,
+ 13996 - 11904: 0x9EB8,
+ 14000 - 11904: 0x97BA,
+ 14001 - 11904: 0xFB65,
+ 14005 - 11904: 0x95D6,
+ 14009 - 11904: 0x9CBB,
+ 14012 - 11904: 0x97DA,
+ 14017 - 11904: 0x8F45,
+ 14019 - 11904: 0xFB7D,
+ 14020 - 11904: 0x9158,
+ 14021 - 11904: 0xFE64,
+ 14023 - 11904: 0x9856,
+ 14024 - 11904: 0x9B4D,
+ 14035 - 11904: 0x935B,
+ 14036 - 11904: 0x95C7,
+ 14038 - 11904: 0x97E7,
+ 14045 - 11904: 0x9359,
+ 14049 - 11904: 0x91F5,
+ 14050 - 11904: 0x97B8,
+ 14053 - 11904: 0xFDA2,
+ 14054 - 11904: 0xFBB6,
+ 14069 - 11904: 0x92FA,
+ 14081 - 11904: 0x9357,
+ 14083 - 11904: 0x8BA6,
+ 14088 - 11904: 0xFBB9,
+ 14090 - 11904: 0x97B0,
+ 14093 - 11904: 0xFDC4,
+ 14108 - 11904: 0x9CA1,
+ 14114 - 11904: 0x91F2,
+ 14115 - 11904: 0x91F9,
+ 14117 - 11904: 0x8FF1,
+ 14124 - 11904: 0x9745,
+ 14125 - 11904: 0x9853,
+ 14128 - 11904: 0xFE78,
+ 14130 - 11904: 0xFBC1,
+ 14131 - 11904: 0x9251,
+ 14138 - 11904: 0x9DAD,
+ 14144 - 11904: 0xFD6C,
+ 14147 - 11904: 0xFA6B,
+ 14178 - 11904: 0x9BC2,
+ 14191 - 11904: 0x9A7B,
+ 14231 - 11904: 0x8B60,
+ 14240 - 11904: 0x934B,
+ 14265 - 11904: 0x9ABD,
+ 14270 - 11904: 0x91B7,
+ 14294 - 11904: 0x8D4B,
+ 14322 - 11904: 0x95B4,
+ 14328 - 11904: 0xFEC5,
+ 14331 - 11904: 0x9EF0,
+ 14351 - 11904: 0x8D64,
+ 14361 - 11904: 0x9269,
+ 14368 - 11904: 0x8D67,
+ 14381 - 11904: 0xFBEA,
+ 14390 - 11904: 0xFBEF,
+ 14392 - 11904: 0x8D68,
+ 14435 - 11904: 0x93EB,
+ 14453 - 11904: 0x877A,
+ 14496 - 11904: 0xFC42,
+ 14531 - 11904: 0x9166,
+ 14540 - 11904: 0xFACD,
+ 14545 - 11904: 0x93DD,
+ 14548 - 11904: 0x8D52,
+ 14586 - 11904: 0x8BCC,
+ 14600 - 11904: 0x8D6D,
+ 14612 - 11904: 0x8D6E,
+ 14631 - 11904: 0x96A8,
+ 14642 - 11904: 0xFCA6,
+ 14655 - 11904: 0x8D6F,
+ 14669 - 11904: 0x8D70,
+ 14691 - 11904: 0xFC64,
+ 14712 - 11904: 0x8CF3,
+ 14720 - 11904: 0x9060,
+ 14729 - 11904: 0x8D74,
+ 14730 - 11904: 0x97C3,
+ 14738 - 11904: 0x8AD0,
+ 14745 - 11904: 0x9274,
+ 14747 - 11904: 0x9BBE,
+ 14753 - 11904: 0x9CC8,
+ 14756 - 11904: 0x9CBA,
+ 14776 - 11904: 0x8D78,
+ 14812 - 11904: 0x9EB9,
+ 14818 - 11904: 0x955A,
+ 14821 - 11904: 0x91B4,
+ 14828 - 11904: 0x8A48,
+ 14840 - 11904: 0x8D7D,
+ 14843 - 11904: 0x8A7D,
+ 14846 - 11904: 0x8AC2,
+ 14849 - 11904: 0xFD4A,
+ 14851 - 11904: 0x8DA1,
+ 14854 - 11904: 0x8AD1,
+ 14871 - 11904: 0xFCB4,
+ 14872 - 11904: 0x8B47,
+ 14889 - 11904: 0x93A4,
+ 14890 - 11904: 0x9EDA,
+ 14900 - 11904: 0x8A51,
+ 14923 - 11904: 0x8DA6,
+ 14930 - 11904: 0x9EC5,
+ 14935 - 11904: 0xFCC4,
+ 14940 - 11904: 0xA078,
+ 14942 - 11904: 0x94B5,
+ 14950 - 11904: 0xFCC2,
+ 14951 - 11904: 0x8A6B,
+ 14999 - 11904: 0x8DAB,
+ 15019 - 11904: 0xFAE8,
+ 15037 - 11904: 0x8DAD,
+ 15070 - 11904: 0xFC49,
+ 15072 - 11904: 0x93C1,
+ 15088 - 11904: 0x906F,
+ 15090 - 11904: 0x8DB0,
+ 15093 - 11904: 0x87A2,
+ 15099 - 11904: 0x947E,
+ 15118 - 11904: 0x90FA,
+ 15129 - 11904: 0x9479,
+ 15138 - 11904: 0x8DB2,
+ 15147 - 11904: 0xFCEE,
+ 15161 - 11904: 0x997B,
+ 15170 - 11904: 0x8DB4,
+ 15192 - 11904: 0x8DB7,
+ 15200 - 11904: 0x91B3,
+ 15217 - 11904: 0x8DBB,
+ 15218 - 11904: 0x8DBA,
+ 15227 - 11904: 0x8DBC,
+ 15228 - 11904: 0x9044,
+ 15232 - 11904: 0xFD4C,
+ 15253 - 11904: 0x874B,
+ 15254 - 11904: 0x93E4,
+ 15257 - 11904: 0x93E0,
+ 15265 - 11904: 0xFD53,
+ 15292 - 11904: 0x8DC3,
+ 15294 - 11904: 0x9BB8,
+ 15298 - 11904: 0xFBF0,
+ 15300 - 11904: 0x93E9,
+ 15319 - 11904: 0x93F6,
+ 15325 - 11904: 0x8DC5,
+ 15340 - 11904: 0x8DCA,
+ 15346 - 11904: 0x8DCC,
+ 15347 - 11904: 0xFD5D,
+ 15348 - 11904: 0x93B5,
+ 15373 - 11904: 0xFD61,
+ 15377 - 11904: 0x9CF8,
+ 15381 - 11904: 0x9252,
+ 15384 - 11904: 0xA0E8,
+ 15444 - 11904: 0x9CA5,
+ 15499 - 11904: 0x8C56,
+ 15563 - 11904: 0x8DD6,
+ 15565 - 11904: 0x97C0,
+ 15569 - 11904: 0xA0DE,
+ 15574 - 11904: 0x97D2,
+ 15580 - 11904: 0xFAA5,
+ 15595 - 11904: 0xFDA3,
+ 15599 - 11904: 0x8DDB,
+ 15634 - 11904: 0x8CEA,
+ 15635 - 11904: 0x8EAF,
+ 15645 - 11904: 0x91B5,
+ 15666 - 11904: 0xFD49,
+ 15675 - 11904: 0xFDD1,
+ 15686 - 11904: 0x8DEB,
+ 15692 - 11904: 0x97C6,
+ 15694 - 11904: 0xFDCE,
+ 15697 - 11904: 0x90FC,
+ 15711 - 11904: 0xFC59,
+ 15714 - 11904: 0x96D6,
+ 15721 - 11904: 0x97C5,
+ 15722 - 11904: 0x8DEF,
+ 15727 - 11904: 0x97D7,
+ 15733 - 11904: 0x8DF0,
+ 15741 - 11904: 0x96A6,
+ 15749 - 11904: 0xFBBF,
+ 15752 - 11904: 0x8CDF,
+ 15754 - 11904: 0x8DF3,
+ 15759 - 11904: 0x9449,
+ 15761 - 11904: 0x8DF5,
+ 15781 - 11904: 0x9872,
+ 15789 - 11904: 0x8E6B,
+ 15796 - 11904: 0xFAFD,
+ 15807 - 11904: 0x8F50,
+ 15814 - 11904: 0x9DCC,
+ 15815 - 11904: 0xFC65,
+ 15817 - 11904: 0x8C44,
+ 15820 - 11904: 0x996E,
+ 15821 - 11904: 0x94A1,
+ 15827 - 11904: 0x8F63,
+ 15835 - 11904: 0xA0DA,
+ 15847 - 11904: 0x9253,
+ 15848 - 11904: 0xFDE9,
+ 15851 - 11904: 0x9DB5,
+ 15859 - 11904: 0x9879,
+ 15860 - 11904: 0x876A,
+ 15863 - 11904: 0x9D5D,
+ 15868 - 11904: 0x8D63,
+ 15869 - 11904: 0x9669,
+ 15878 - 11904: 0x9F70,
+ 15936 - 11904: 0xFC6A,
+ 15939 - 11904: 0x8AC7,
+ 15944 - 11904: 0x89D7,
+ 15957 - 11904: 0xFE4D,
+ 15988 - 11904: 0x9EDD,
+ 16040 - 11904: 0xFEFB,
+ 16041 - 11904: 0x98BC,
+ 16042 - 11904: 0xFACC,
+ 16045 - 11904: 0x95B0,
+ 16049 - 11904: 0x9464,
+ 16056 - 11904: 0x936F,
+ 16063 - 11904: 0x94B9,
+ 16066 - 11904: 0x95EC,
+ 16071 - 11904: 0x91EE,
+ 16074 - 11904: 0x98C3,
+ 16076 - 11904: 0x95F6,
+ 16080 - 11904: 0x8FFD,
+ 16081 - 11904: 0x98C5,
+ 16086 - 11904: 0x9766,
+ 16087 - 11904: 0xFE6E,
+ 16090 - 11904: 0x97DD,
+ 16091 - 11904: 0x8CAA,
+ 16094 - 11904: 0x92D2,
+ 16097 - 11904: 0x9761,
+ 16098 - 11904: 0x98CB,
+ 16103 - 11904: 0x95F0,
+ 16105 - 11904: 0x975D,
+ 16107 - 11904: 0x91E3,
+ 16108 - 11904: 0x877E,
+ 16112 - 11904: 0x98CC,
+ 16115 - 11904: 0x9469,
+ 16116 - 11904: 0x98CD,
+ 16122 - 11904: 0x98CE,
+ 16124 - 11904: 0x95FC,
+ 16127 - 11904: 0x94A3,
+ 16128 - 11904: 0x9662,
+ 16132 - 11904: 0xFEB6,
+ 16134 - 11904: 0x9463,
+ 16135 - 11904: 0x8D47,
+ 16142 - 11904: 0x98D0,
+ 16211 - 11904: 0x98D1,
+ 16216 - 11904: 0x9475,
+ 16217 - 11904: 0xFAE0,
+ 16227 - 11904: 0x9472,
+ 16252 - 11904: 0x98D6,
+ 16275 - 11904: 0x8AF0,
+ 16320 - 11904: 0x98D9,
+ 16328 - 11904: 0x8D5A,
+ 16343 - 11904: 0x98DB,
+ 16348 - 11904: 0x98DD,
+ 16357 - 11904: 0x98A8,
+ 16365 - 11904: 0x8A6D,
+ 16377 - 11904: 0x8AFB,
+ 16378 - 11904: 0x8AAE,
+ 16388 - 11904: 0xFBC9,
+ 16393 - 11904: 0x8C5D,
+ 16413 - 11904: 0x98E4,
+ 16441 - 11904: 0x98E6,
+ 16453 - 11904: 0x98E8,
+ 16467 - 11904: 0x8A4D,
+ 16471 - 11904: 0x9257,
+ 16482 - 11904: 0x95DF,
+ 16485 - 11904: 0xA0AC,
+ 16490 - 11904: 0x98EB,
+ 16495 - 11904: 0x98EC,
+ 16497 - 11904: 0x8CC3,
+ 16552 - 11904: 0x98F4,
+ 16564 - 11904: 0x87D9,
+ 16571 - 11904: 0x8AB8,
+ 16575 - 11904: 0x9EE7,
+ 16584 - 11904: 0x94BC,
+ 16600 - 11904: 0xFCD1,
+ 16607 - 11904: 0x9CC6,
+ 16632 - 11904: 0x8D4A,
+ 16634 - 11904: 0x9E7E,
+ 16642 - 11904: 0x8D44,
+ 16643 - 11904: 0x98FE,
+ 16644 - 11904: 0xFDE8,
+ 16649 - 11904: 0x9940,
+ 16654 - 11904: 0x94C9,
+ 16689 - 11904: 0x87C6,
+ 16690 - 11904: 0x94D3,
+ 16743 - 11904: 0x9946,
+ 16748 - 11904: 0x90C0,
+ 16750 - 11904: 0x94D1,
+ 16764 - 11904: 0x8D4E,
+ 16767 - 11904: 0x9573,
+ 16769 - 11904: 0x87CE,
+ 16784 - 11904: 0x93C2,
+ 16818 - 11904: 0x9948,
+ 16836 - 11904: 0x994B,
+ 16842 - 11904: 0x8E55,
+ 16847 - 11904: 0x994E,
+ 16859 - 11904: 0x8EFE,
+ 16877 - 11904: 0x8D5F,
+ 16879 - 11904: 0x8E59,
+ 16889 - 11904: 0x94EC,
+ 16913 - 11904: 0x94EF,
+ 16931 - 11904: 0x8C60,
+ 16960 - 11904: 0x8F74,
+ 16992 - 11904: 0x9955,
+ 17002 - 11904: 0x9544,
+ 17014 - 11904: 0x8CCB,
+ 17018 - 11904: 0x9956,
+ 17036 - 11904: 0x9959,
+ 17044 - 11904: 0x995B,
+ 17058 - 11904: 0x8CC4,
+ 17077 - 11904: 0xFA45,
+ 17081 - 11904: 0x90B7,
+ 17084 - 11904: 0x9743,
+ 17140 - 11904: 0x95CD,
+ 17147 - 11904: 0x97C9,
+ 17148 - 11904: 0xFD50,
+ 17162 - 11904: 0x87AA,
+ 17195 - 11904: 0x8EB9,
+ 17262 - 11904: 0x95C6,
+ 17303 - 11904: 0x9967,
+ 17306 - 11904: 0x8CE3,
+ 17338 - 11904: 0x8AB9,
+ 17345 - 11904: 0x8DFC,
+ 17369 - 11904: 0x8A76,
+ 17375 - 11904: 0x9D51,
+ 17389 - 11904: 0x9973,
+ 17392 - 11904: 0x8740,
+ 17394 - 11904: 0x9D4F,
+ 17409 - 11904: 0x997A,
+ 17410 - 11904: 0x9564,
+ 17427 - 11904: 0x99A1,
+ 17445 - 11904: 0x99A5,
+ 17453 - 11904: 0x99A7,
+ 17530 - 11904: 0x8EED,
+ 17551 - 11904: 0x99AD,
+ 17553 - 11904: 0xC87E,
+ 17567 - 11904: 0x946E,
+ 17568 - 11904: 0x8F70,
+ 17570 - 11904: 0xFAD0,
+ 17584 - 11904: 0x99B3,
+ 17591 - 11904: 0xA053,
+ 17597 - 11904: 0x8D5E,
+ 17600 - 11904: 0x965C,
+ 17603 - 11904: 0x8CE0,
+ 17605 - 11904: 0xFD7A,
+ 17614 - 11904: 0x97FE,
+ 17629 - 11904: 0x92BD,
+ 17630 - 11904: 0x8D5D,
+ 17631 - 11904: 0x97FD,
+ 17633 - 11904: 0x87DB,
+ 17636 - 11904: 0x8F64,
+ 17641 - 11904: 0xFCF7,
+ 17642 - 11904: 0x9562,
+ 17643 - 11904: 0x97CD,
+ 17644 - 11904: 0x9E64,
+ 17652 - 11904: 0x924C,
+ 17667 - 11904: 0x8EC9,
+ 17668 - 11904: 0x99BC,
+ 17673 - 11904: 0x9DA5,
+ 17675 - 11904: 0x8F54,
+ 17686 - 11904: 0x8F7C,
+ 17691 - 11904: 0x8D55,
+ 17693 - 11904: 0x8EA2,
+ 17703 - 11904: 0x8F7A,
+ 17710 - 11904: 0x97AE,
+ 17715 - 11904: 0x96C8,
+ 17718 - 11904: 0x8CE4,
+ 17723 - 11904: 0x99C3,
+ 17725 - 11904: 0x90D6,
+ 17727 - 11904: 0x9CBE,
+ 17731 - 11904: 0x8F76,
+ 17745 - 11904: 0x9470,
+ 17746 - 11904: 0xFB4B,
+ 17749 - 11904: 0xFDCA,
+ 17752 - 11904: 0x8CEF,
+ 17756 - 11904: 0x8EC7,
+ 17761 - 11904: 0x8D54,
+ 17762 - 11904: 0xA0F9,
+ 17770 - 11904: 0x8FA9,
+ 17773 - 11904: 0x8D51,
+ 17783 - 11904: 0x99C7,
+ 17784 - 11904: 0x8744,
+ 17797 - 11904: 0x90D7,
+ 17830 - 11904: 0x8743,
+ 17843 - 11904: 0x8747,
+ 17882 - 11904: 0x8758,
+ 17897 - 11904: 0x9EDF,
+ 17898 - 11904: 0x8D59,
+ 17923 - 11904: 0x8742,
+ 17926 - 11904: 0x99CE,
+ 17935 - 11904: 0x8FBA,
+ 17941 - 11904: 0x8FEB,
+ 17943 - 11904: 0x99CF,
+ 18011 - 11904: 0x8FC2,
+ 18042 - 11904: 0x92C9,
+ 18048 - 11904: 0x97DC,
+ 18081 - 11904: 0x875D,
+ 18094 - 11904: 0x87CC,
+ 18107 - 11904: 0x8D45,
+ 18127 - 11904: 0x95B3,
+ 18128 - 11904: 0x9C79,
+ 18165 - 11904: 0x95B2,
+ 18167 - 11904: 0x8D4C,
+ 18195 - 11904: 0x8FDB,
+ 18200 - 11904: 0x9BE3,
+ 18230 - 11904: 0x874C,
+ 18244 - 11904: 0x874D,
+ 18254 - 11904: 0x9E7A,
+ 18255 - 11904: 0x8757,
+ 18300 - 11904: 0x9BEE,
+ 18328 - 11904: 0x99DE,
+ 18342 - 11904: 0xFAFA,
+ 18389 - 11904: 0x8A52,
+ 18413 - 11904: 0x99E1,
+ 18420 - 11904: 0x8A67,
+ 18432 - 11904: 0x8BB5,
+ 18443 - 11904: 0x8AAC,
+ 18487 - 11904: 0x99E9,
+ 18525 - 11904: 0xFBCA,
+ 18545 - 11904: 0x97DE,
+ 18587 - 11904: 0x95D1,
+ 18605 - 11904: 0x99F5,
+ 18606 - 11904: 0xFC4A,
+ 18640 - 11904: 0x9BA9,
+ 18653 - 11904: 0xFBDC,
+ 18669 - 11904: 0xFE56,
+ 18675 - 11904: 0x9EA4,
+ 18682 - 11904: 0x9D49,
+ 18694 - 11904: 0x95DB,
+ 18705 - 11904: 0x89C5,
+ 18718 - 11904: 0x99F8,
+ 18725 - 11904: 0x9664,
+ 18730 - 11904: 0x9055,
+ 18733 - 11904: 0x96D4,
+ 18735 - 11904: 0x87C4,
+ 18736 - 11904: 0x87AE,
+ 18741 - 11904: 0x977C,
+ 18748 - 11904: 0x964D,
+ 18750 - 11904: 0x97E1,
+ 18757 - 11904: 0x9A48,
+ 18769 - 11904: 0x9A49,
+ 18771 - 11904: 0xFE7D,
+ 18789 - 11904: 0x90AA,
+ 18794 - 11904: 0x9A50,
+ 18802 - 11904: 0x9347,
+ 18825 - 11904: 0x8ED8,
+ 18849 - 11904: 0x90C9,
+ 18855 - 11904: 0x9A55,
+ 18911 - 11904: 0x90BC,
+ 18917 - 11904: 0x9A58,
+ 18919 - 11904: 0x8BB8,
+ 18959 - 11904: 0x90D5,
+ 18973 - 11904: 0x9641,
+ 18980 - 11904: 0x9A5A,
+ 18997 - 11904: 0x9A5C,
+ 19094 - 11904: 0x97C2,
+ 19108 - 11904: 0x875C,
+ 19124 - 11904: 0x8ABB,
+ 19128 - 11904: 0x9BAA,
+ 19153 - 11904: 0x90F5,
+ 19172 - 11904: 0x9A60,
+ 19199 - 11904: 0x9145,
+ 19216 - 11904: 0x8C58,
+ 19225 - 11904: 0x9A63,
+ 19232 - 11904: 0x8C49,
+ 19244 - 11904: 0x8BB6,
+ 19255 - 11904: 0xFCCF,
+ 19311 - 11904: 0x966B,
+ 19312 - 11904: 0x9A6E,
+ 19314 - 11904: 0x914F,
+ 19323 - 11904: 0x9746,
+ 19326 - 11904: 0xA0E6,
+ 19342 - 11904: 0x92D7,
+ 19344 - 11904: 0x9675,
+ 19347 - 11904: 0x93D4,
+ 19350 - 11904: 0x91BB,
+ 19351 - 11904: 0x9679,
+ 19357 - 11904: 0x9A70,
+ 19389 - 11904: 0x9678,
+ 19390 - 11904: 0x91CD,
+ 19392 - 11904: 0x9C4A,
+ 19460 - 11904: 0xA06F,
+ 19463 - 11904: 0xA06A,
+ 19470 - 11904: 0x915F,
+ 19506 - 11904: 0x8741,
+ 19515 - 11904: 0x9FA5,
+ 19518 - 11904: 0x89BA,
+ 19520 - 11904: 0x874F,
+ 19527 - 11904: 0x874E,
+ 19543 - 11904: 0x8755,
+ 19547 - 11904: 0x9ECD,
+ 19565 - 11904: 0x9A79,
+ 19575 - 11904: 0x8CF2,
+ 19579 - 11904: 0x8D57,
+ 19581 - 11904: 0x9DCE,
+ 19585 - 11904: 0x8CD2,
+ 19589 - 11904: 0x8759,
+ 19620 - 11904: 0x9D73,
+ 19630 - 11904: 0x96B9,
+ 19632 - 11904: 0x96BC,
+ 19639 - 11904: 0x9CD1,
+ 19661 - 11904: 0x89B7,
+ 19681 - 11904: 0x9EEE,
+ 19682 - 11904: 0x8749,
+ 19693 - 11904: 0xFB43,
+ 19719 - 11904: 0x875B,
+ 19721 - 11904: 0x9EC9,
+ 19728 - 11904: 0xFBD3,
+ 19764 - 11904: 0x91AE,
+ 19830 - 11904: 0x8D58,
+ 19831 - 11904: 0x8746,
+ 19849 - 11904: 0x8D56,
+ 19857 - 11904: 0x9D78,
+ 19868 - 11904: 0x9D7B,
+ 19968 - 11904: 0xA440,
+ 19969 - 11904: 0xA442,
+ 19971 - 11904: 0xA443,
+ 19972 - 11904: 0x9EB3,
+ 19975 - 11904: 0xC945,
+ 19976 - 11904: 0xA456,
+ 19977 - 11904: 0xA454,
+ 19978 - 11904: 0xA457,
+ 19979 - 11904: 0xA455,
+ 19980 - 11904: 0xC946,
+ 19981 - 11904: 0xA4A3,
+ 19982 - 11904: 0xC94F,
+ 19983 - 11904: 0xC94D,
+ 19984 - 11904: 0xA4A2,
+ 19985 - 11904: 0xA4A1,
+ 19988 - 11904: 0xA542,
+ 19989 - 11904: 0xA541,
+ 19990 - 11904: 0xA540,
+ 19992 - 11904: 0xA543,
+ 19993 - 11904: 0xA4FE,
+ 19994 - 11904: 0x9EB2,
+ 19996 - 11904: 0x9DD6,
+ 19998 - 11904: 0xA5E0,
+ 19999 - 11904: 0xA5E1,
+ 20001 - 11904: 0x994F,
+ 20004 - 11904: 0x89CE,
+ 20006 - 11904: 0xA8C3,
+ 20008 - 11904: 0x8BC0,
+ 20010 - 11904: 0x9FC4,
+ 20011 - 11904: 0xA458,
+ 20012 - 11904: 0x8BD4,
+ 20013 - 11904: 0xA4A4,
+ 20014 - 11904: 0xC950,
+ 20015 - 11904: 0x8C72,
+ 20016 - 11904: 0xA4A5,
+ 20017 - 11904: 0xC963,
+ 20018 - 11904: 0xA6EA,
+ 20019 - 11904: 0xCBB1,
+ 20022 - 11904: 0xC6BF,
+ 20023 - 11904: 0x8BF9,
+ 20024 - 11904: 0xA459,
+ 20025 - 11904: 0xA4A6,
+ 20027 - 11904: 0xA544,
+ 20028 - 11904: 0xC964,
+ 20029 - 11904: 0x8946,
+ 20031 - 11904: 0xC6C0,
+ 20034 - 11904: 0xC940,
+ 20035 - 11904: 0xA444,
+ 20037 - 11904: 0xA45B,
+ 20039 - 11904: 0xC947,
+ 20040 - 11904: 0xA45C,
+ 20041 - 11904: 0xFAE5,
+ 20043 - 11904: 0xA4A7,
+ 20045 - 11904: 0xA545,
+ 20046 - 11904: 0xA547,
+ 20047 - 11904: 0xA546,
+ 20050 - 11904: 0xA5E2,
+ 20051 - 11904: 0xA5E3,
+ 20054 - 11904: 0xA8C4,
+ 20056 - 11904: 0xADBC,
+ 20057 - 11904: 0xA441,
+ 20058 - 11904: 0xC87B,
+ 20059 - 11904: 0x8BC6,
+ 20060 - 11904: 0xC941,
+ 20061 - 11904: 0xA445,
+ 20062 - 11904: 0xA45E,
+ 20063 - 11904: 0xA45D,
+ 20073 - 11904: 0xA5E4,
+ 20074 - 11904: 0x9C57,
+ 20083 - 11904: 0xA8C5,
+ 20088 - 11904: 0x9AFB,
+ 20094 - 11904: 0xB0AE,
+ 20095 - 11904: 0xD44B,
+ 20096 - 11904: 0x89D0,
+ 20097 - 11904: 0x89CF,
+ 20098 - 11904: 0xB6C3,
+ 20099 - 11904: 0xDCB1,
+ 20100 - 11904: 0xDCB2,
+ 20101 - 11904: 0xC6C1,
+ 20102 - 11904: 0xA446,
+ 20103 - 11904: 0x89D1,
+ 20104 - 11904: 0xA4A9,
+ 20105 - 11904: 0x89E2,
+ 20107 - 11904: 0xA8C6,
+ 20108 - 11904: 0xA447,
+ 20109 - 11904: 0xC948,
+ 20110 - 11904: 0xA45F,
+ 20113 - 11904: 0xA4AA,
+ 20114 - 11904: 0xA4AC,
+ 20115 - 11904: 0xC951,
+ 20116 - 11904: 0xA4AD,
+ 20117 - 11904: 0xA4AB,
+ 20120 - 11904: 0x927E,
+ 20121 - 11904: 0xA5E5,
+ 20122 - 11904: 0x9DBA,
+ 20123 - 11904: 0xA8C7,
+ 20126 - 11904: 0xA8C8,
+ 20127 - 11904: 0xAB45,
+ 20128 - 11904: 0xC6C2,
+ 20129 - 11904: 0xA460,
+ 20130 - 11904: 0xA4AE,
+ 20131 - 11904: 0x8C6F,
+ 20132 - 11904: 0xA5E6,
+ 20133 - 11904: 0xA5E8,
+ 20134 - 11904: 0xA5E7,
+ 20136 - 11904: 0xA6EB,
+ 20139 - 11904: 0xA8C9,
+ 20140 - 11904: 0xA8CA,
+ 20141 - 11904: 0xAB46,
+ 20142 - 11904: 0xAB47,
+ 20147 - 11904: 0xADBD,
+ 20150 - 11904: 0xDCB3,
+ 20151 - 11904: 0xFBF8,
+ 20153 - 11904: 0xF6D6,
+ 20154 - 11904: 0xA448,
+ 20155 - 11904: 0x8BC7,
+ 20156 - 11904: 0x926B,
+ 20159 - 11904: 0x89D2,
+ 20160 - 11904: 0xA4B0,
+ 20161 - 11904: 0xA4AF,
+ 20162 - 11904: 0xC952,
+ 20163 - 11904: 0xA4B1,
+ 20164 - 11904: 0xA4B7,
+ 20166 - 11904: 0xA4B2,
+ 20167 - 11904: 0xA4B3,
+ 20168 - 11904: 0xC954,
+ 20169 - 11904: 0xC953,
+ 20170 - 11904: 0xA4B5,
+ 20171 - 11904: 0xA4B6,
+ 20173 - 11904: 0xA4B4,
+ 20174 - 11904: 0x9FCF,
+ 20180 - 11904: 0xA54A,
+ 20181 - 11904: 0xA54B,
+ 20182 - 11904: 0xA54C,
+ 20183 - 11904: 0xA54D,
+ 20184 - 11904: 0xA549,
+ 20185 - 11904: 0xA550,
+ 20186 - 11904: 0xC96A,
+ 20188 - 11904: 0xC966,
+ 20189 - 11904: 0xC969,
+ 20190 - 11904: 0xA551,
+ 20191 - 11904: 0xA561,
+ 20193 - 11904: 0xC968,
+ 20195 - 11904: 0xA54E,
+ 20196 - 11904: 0xA54F,
+ 20197 - 11904: 0xA548,
+ 20200 - 11904: 0xC965,
+ 20201 - 11904: 0xC967,
+ 20202 - 11904: 0x9DA9,
+ 20203 - 11904: 0x89D3,
+ 20206 - 11904: 0x99E2,
+ 20208 - 11904: 0xA5F5,
+ 20209 - 11904: 0xC9B0,
+ 20210 - 11904: 0xA5F2,
+ 20211 - 11904: 0xA5F6,
+ 20212 - 11904: 0xC9BA,
+ 20213 - 11904: 0xC9AE,
+ 20214 - 11904: 0xA5F3,
+ 20215 - 11904: 0xC9B2,
+ 20216 - 11904: 0x9267,
+ 20219 - 11904: 0xA5F4,
+ 20221 - 11904: 0xA5F7,
+ 20223 - 11904: 0xA5E9,
+ 20224 - 11904: 0xC9B1,
+ 20225 - 11904: 0xA5F8,
+ 20226 - 11904: 0xC9B5,
+ 20227 - 11904: 0x92A4,
+ 20228 - 11904: 0xC9B9,
+ 20229 - 11904: 0xC9B6,
+ 20232 - 11904: 0xC9B3,
+ 20233 - 11904: 0xA5EA,
+ 20234 - 11904: 0xA5EC,
+ 20235 - 11904: 0xA5F9,
+ 20237 - 11904: 0xA5EE,
+ 20238 - 11904: 0xC9AB,
+ 20239 - 11904: 0xA5F1,
+ 20240 - 11904: 0xA5EF,
+ 20241 - 11904: 0xA5F0,
+ 20242 - 11904: 0xC9BB,
+ 20243 - 11904: 0xC9B8,
+ 20244 - 11904: 0xC9AF,
+ 20245 - 11904: 0xA5ED,
+ 20247 - 11904: 0x8C73,
+ 20248 - 11904: 0xC9AC,
+ 20249 - 11904: 0xA5EB,
+ 20250 - 11904: 0x894E,
+ 20253 - 11904: 0xC9B4,
+ 20258 - 11904: 0xC9B7,
+ 20264 - 11904: 0x894F,
+ 20265 - 11904: 0x9278,
+ 20268 - 11904: 0xC9AD,
+ 20269 - 11904: 0xCA66,
+ 20271 - 11904: 0xA742,
+ 20272 - 11904: 0xA6F4,
+ 20274 - 11904: 0x91B6,
+ 20275 - 11904: 0xCA67,
+ 20276 - 11904: 0xA6F1,
+ 20278 - 11904: 0xA744,
+ 20279 - 11904: 0x89D4,
+ 20280 - 11904: 0xA6F9,
+ 20281 - 11904: 0x9FD2,
+ 20282 - 11904: 0xA6F8,
+ 20283 - 11904: 0xCA5B,
+ 20284 - 11904: 0xA6FC,
+ 20285 - 11904: 0xA6F7,
+ 20286 - 11904: 0xCA60,
+ 20287 - 11904: 0xCA68,
+ 20289 - 11904: 0xCA64,
+ 20290 - 11904: 0x92A7,
+ 20291 - 11904: 0xA6FA,
+ 20293 - 11904: 0x95A2,
+ 20294 - 11904: 0xA6FD,
+ 20295 - 11904: 0xA6EE,
+ 20296 - 11904: 0xA747,
+ 20297 - 11904: 0xCA5D,
+ 20299 - 11904: 0x926E,
+ 20300 - 11904: 0xCBBD,
+ 20301 - 11904: 0xA6EC,
+ 20302 - 11904: 0xA743,
+ 20303 - 11904: 0xA6ED,
+ 20304 - 11904: 0xA6F5,
+ 20305 - 11904: 0xA6F6,
+ 20306 - 11904: 0xCA62,
+ 20307 - 11904: 0xCA5E,
+ 20308 - 11904: 0xA6FB,
+ 20309 - 11904: 0xA6F3,
+ 20310 - 11904: 0xCA5A,
+ 20311 - 11904: 0xA6EF,
+ 20312 - 11904: 0xCA65,
+ 20313 - 11904: 0xA745,
+ 20314 - 11904: 0xA748,
+ 20315 - 11904: 0xA6F2,
+ 20316 - 11904: 0xA740,
+ 20317 - 11904: 0xA746,
+ 20318 - 11904: 0xA6F0,
+ 20319 - 11904: 0xCA63,
+ 20320 - 11904: 0xA741,
+ 20321 - 11904: 0xCA69,
+ 20322 - 11904: 0xCA5C,
+ 20323 - 11904: 0xA6FE,
+ 20324 - 11904: 0xCA5F,
+ 20327 - 11904: 0xCA61,
+ 20329 - 11904: 0xA8D8,
+ 20330 - 11904: 0xCBBF,
+ 20331 - 11904: 0xCBCB,
+ 20332 - 11904: 0xA8D0,
+ 20334 - 11904: 0xCBCC,
+ 20335 - 11904: 0xA8CB,
+ 20336 - 11904: 0xA8D5,
+ 20338 - 11904: 0x96EA,
+ 20339 - 11904: 0xA8CE,
+ 20340 - 11904: 0xCBB9,
+ 20341 - 11904: 0xA8D6,
+ 20342 - 11904: 0xCBB8,
+ 20343 - 11904: 0xCBBC,
+ 20344 - 11904: 0xCBC3,
+ 20345 - 11904: 0xCBC1,
+ 20346 - 11904: 0xA8DE,
+ 20347 - 11904: 0xA8D9,
+ 20348 - 11904: 0xCBB3,
+ 20349 - 11904: 0xCBB5,
+ 20350 - 11904: 0xA8DB,
+ 20351 - 11904: 0xA8CF,
+ 20352 - 11904: 0xCBB6,
+ 20353 - 11904: 0xCBC2,
+ 20354 - 11904: 0xCBC9,
+ 20355 - 11904: 0xA8D4,
+ 20356 - 11904: 0xCBBB,
+ 20357 - 11904: 0xCBB4,
+ 20358 - 11904: 0xA8D3,
+ 20359 - 11904: 0xCBB7,
+ 20360 - 11904: 0xA8D7,
+ 20361 - 11904: 0xCBBA,
+ 20362 - 11904: 0x926F,
+ 20363 - 11904: 0xA8D2,
+ 20365 - 11904: 0xA8CD,
+ 20367 - 11904: 0xA8DC,
+ 20368 - 11904: 0xCBC4,
+ 20369 - 11904: 0xA8DD,
+ 20370 - 11904: 0xCBC8,
+ 20372 - 11904: 0xCBC6,
+ 20373 - 11904: 0xCBCA,
+ 20374 - 11904: 0xA8DA,
+ 20375 - 11904: 0xCBBE,
+ 20376 - 11904: 0xCBB2,
+ 20378 - 11904: 0xCBC0,
+ 20379 - 11904: 0xA8D1,
+ 20380 - 11904: 0xCBC5,
+ 20381 - 11904: 0xA8CC,
+ 20382 - 11904: 0xCBC7,
+ 20386 - 11904: 0x92A3,
+ 20392 - 11904: 0x8950,
+ 20395 - 11904: 0xFA57,
+ 20398 - 11904: 0xAB56,
+ 20399 - 11904: 0xAB4A,
+ 20400 - 11904: 0x9866,
+ 20402 - 11904: 0xCDE0,
+ 20403 - 11904: 0xCDE8,
+ 20404 - 11904: 0x8CF8,
+ 20405 - 11904: 0xAB49,
+ 20406 - 11904: 0xAB51,
+ 20407 - 11904: 0xAB5D,
+ 20409 - 11904: 0xCDEE,
+ 20410 - 11904: 0xCDEC,
+ 20411 - 11904: 0xCDE7,
+ 20413 - 11904: 0x89D6,
+ 20415 - 11904: 0xAB4B,
+ 20416 - 11904: 0xCDED,
+ 20417 - 11904: 0xCDE3,
+ 20418 - 11904: 0xAB59,
+ 20419 - 11904: 0xAB50,
+ 20420 - 11904: 0xAB58,
+ 20421 - 11904: 0xCDDE,
+ 20423 - 11904: 0xCDEA,
+ 20424 - 11904: 0x98B2,
+ 20425 - 11904: 0xCDE1,
+ 20426 - 11904: 0xAB54,
+ 20427 - 11904: 0xCDE2,
+ 20428 - 11904: 0x92AB,
+ 20429 - 11904: 0xCDDD,
+ 20430 - 11904: 0xAB5B,
+ 20431 - 11904: 0xAB4E,
+ 20432 - 11904: 0xAB57,
+ 20433 - 11904: 0xAB4D,
+ 20435 - 11904: 0xCDDF,
+ 20436 - 11904: 0xCDE4,
+ 20438 - 11904: 0xCDEB,
+ 20439 - 11904: 0xAB55,
+ 20440 - 11904: 0xAB52,
+ 20441 - 11904: 0xCDE6,
+ 20442 - 11904: 0xAB5A,
+ 20443 - 11904: 0xCDE9,
+ 20444 - 11904: 0xCDE5,
+ 20445 - 11904: 0xAB4F,
+ 20446 - 11904: 0xAB5C,
+ 20447 - 11904: 0xAB53,
+ 20448 - 11904: 0xAB4C,
+ 20449 - 11904: 0xAB48,
+ 20452 - 11904: 0x96DE,
+ 20453 - 11904: 0x92AC,
+ 20460 - 11904: 0xCDEF,
+ 20462 - 11904: 0xADD7,
+ 20463 - 11904: 0xADC1,
+ 20464 - 11904: 0x8C70,
+ 20465 - 11904: 0xADD1,
+ 20466 - 11904: 0x9F6E,
+ 20467 - 11904: 0xADD6,
+ 20468 - 11904: 0xD0D0,
+ 20469 - 11904: 0xD0CF,
+ 20470 - 11904: 0xD0D4,
+ 20471 - 11904: 0xD0D5,
+ 20472 - 11904: 0xADC4,
+ 20473 - 11904: 0x8EF2,
+ 20474 - 11904: 0xADCD,
+ 20477 - 11904: 0x9F6C,
+ 20478 - 11904: 0xADDA,
+ 20480 - 11904: 0xADCE,
+ 20483 - 11904: 0x89D8,
+ 20485 - 11904: 0xD0C9,
+ 20486 - 11904: 0xADC7,
+ 20487 - 11904: 0xD0CA,
+ 20488 - 11904: 0xFA59,
+ 20489 - 11904: 0xADDC,
+ 20491 - 11904: 0xADD3,
+ 20492 - 11904: 0xADBE,
+ 20493 - 11904: 0xADBF,
+ 20494 - 11904: 0xD0DD,
+ 20495 - 11904: 0xB0BF,
+ 20497 - 11904: 0xADCC,
+ 20498 - 11904: 0xADCB,
+ 20499 - 11904: 0xD0CB,
+ 20500 - 11904: 0xADCF,
+ 20501 - 11904: 0xD45B,
+ 20502 - 11904: 0xADC6,
+ 20503 - 11904: 0xD0D6,
+ 20504 - 11904: 0xADD5,
+ 20505 - 11904: 0xADD4,
+ 20506 - 11904: 0xADCA,
+ 20507 - 11904: 0xD0CE,
+ 20508 - 11904: 0xD0D7,
+ 20510 - 11904: 0xD0C8,
+ 20511 - 11904: 0xADC9,
+ 20512 - 11904: 0xD0D8,
+ 20513 - 11904: 0xADD2,
+ 20514 - 11904: 0xD0CC,
+ 20515 - 11904: 0xADC0,
+ 20517 - 11904: 0xADC3,
+ 20518 - 11904: 0xADC2,
+ 20519 - 11904: 0xD0D9,
+ 20520 - 11904: 0xADD0,
+ 20521 - 11904: 0xFA5F,
+ 20522 - 11904: 0xADD9,
+ 20523 - 11904: 0xADDB,
+ 20524 - 11904: 0xD0D3,
+ 20525 - 11904: 0xADD8,
+ 20526 - 11904: 0x92A8,
+ 20527 - 11904: 0xD0DB,
+ 20528 - 11904: 0xD0CD,
+ 20529 - 11904: 0xD0DC,
+ 20531 - 11904: 0xD0D1,
+ 20532 - 11904: 0x9163,
+ 20533 - 11904: 0xD0DA,
+ 20535 - 11904: 0xD0D2,
+ 20539 - 11904: 0x8C40,
+ 20540 - 11904: 0xADC8,
+ 20544 - 11904: 0xD463,
+ 20545 - 11904: 0xD457,
+ 20547 - 11904: 0xB0B3,
+ 20549 - 11904: 0xD45C,
+ 20550 - 11904: 0xD462,
+ 20551 - 11904: 0xB0B2,
+ 20552 - 11904: 0xD455,
+ 20553 - 11904: 0xB0B6,
+ 20554 - 11904: 0xD459,
+ 20555 - 11904: 0xD452,
+ 20556 - 11904: 0xB0B4,
+ 20557 - 11904: 0xD456,
+ 20558 - 11904: 0xB0B9,
+ 20559 - 11904: 0xB0BE,
+ 20561 - 11904: 0xD467,
+ 20563 - 11904: 0xD451,
+ 20565 - 11904: 0xB0BA,
+ 20566 - 11904: 0x9F73,
+ 20567 - 11904: 0xD466,
+ 20568 - 11904: 0x92AD,
+ 20570 - 11904: 0xB0B5,
+ 20571 - 11904: 0xD458,
+ 20572 - 11904: 0xB0B1,
+ 20573 - 11904: 0xD453,
+ 20574 - 11904: 0xD44F,
+ 20575 - 11904: 0xD45D,
+ 20576 - 11904: 0xD450,
+ 20577 - 11904: 0xD44E,
+ 20578 - 11904: 0xD45A,
+ 20579 - 11904: 0xD460,
+ 20580 - 11904: 0xD461,
+ 20581 - 11904: 0xB0B7,
+ 20582 - 11904: 0x9BE9,
+ 20584 - 11904: 0xD85B,
+ 20585 - 11904: 0xD45E,
+ 20586 - 11904: 0xD44D,
+ 20587 - 11904: 0xD45F,
+ 20588 - 11904: 0x92A9,
+ 20589 - 11904: 0xB0C1,
+ 20590 - 11904: 0xD464,
+ 20591 - 11904: 0xB0C0,
+ 20592 - 11904: 0xD44C,
+ 20594 - 11904: 0xD454,
+ 20595 - 11904: 0xD465,
+ 20596 - 11904: 0xB0BC,
+ 20597 - 11904: 0xB0BB,
+ 20598 - 11904: 0xB0B8,
+ 20599 - 11904: 0xB0BD,
+ 20602 - 11904: 0xB0AF,
+ 20605 - 11904: 0xFA66,
+ 20608 - 11904: 0xB3C8,
+ 20609 - 11904: 0x92AA,
+ 20610 - 11904: 0xD85E,
+ 20611 - 11904: 0xD857,
+ 20613 - 11904: 0xB3C5,
+ 20615 - 11904: 0xD85F,
+ 20616 - 11904: 0x89D9,
+ 20619 - 11904: 0xD855,
+ 20620 - 11904: 0xD858,
+ 20621 - 11904: 0xB3C4,
+ 20622 - 11904: 0xD859,
+ 20624 - 11904: 0xFD56,
+ 20625 - 11904: 0xB3C7,
+ 20626 - 11904: 0xD85D,
+ 20628 - 11904: 0xD853,
+ 20629 - 11904: 0xD852,
+ 20630 - 11904: 0xB3C9,
+ 20632 - 11904: 0xB3CA,
+ 20633 - 11904: 0xB3C6,
+ 20634 - 11904: 0xB3CB,
+ 20635 - 11904: 0xD851,
+ 20636 - 11904: 0xD85C,
+ 20637 - 11904: 0xD85A,
+ 20638 - 11904: 0xD854,
+ 20642 - 11904: 0xB3C3,
+ 20643 - 11904: 0xD856,
+ 20646 - 11904: 0x9FA8,
+ 20652 - 11904: 0xB6CA,
+ 20653 - 11904: 0xB6C4,
+ 20654 - 11904: 0xDCB7,
+ 20655 - 11904: 0xB6CD,
+ 20656 - 11904: 0xDCBD,
+ 20657 - 11904: 0xDCC0,
+ 20658 - 11904: 0xB6C6,
+ 20659 - 11904: 0xB6C7,
+ 20660 - 11904: 0xDCBA,
+ 20661 - 11904: 0xB6C5,
+ 20662 - 11904: 0xDCC3,
+ 20663 - 11904: 0xB6CB,
+ 20664 - 11904: 0xDCC4,
+ 20666 - 11904: 0xDCBF,
+ 20667 - 11904: 0xB6CC,
+ 20668 - 11904: 0x8C71,
+ 20669 - 11904: 0xDCB4,
+ 20670 - 11904: 0xB6C9,
+ 20671 - 11904: 0xDCB5,
+ 20673 - 11904: 0xDCBE,
+ 20674 - 11904: 0xDCBC,
+ 20676 - 11904: 0xDCB8,
+ 20677 - 11904: 0xB6C8,
+ 20678 - 11904: 0xDCB6,
+ 20679 - 11904: 0xB6CE,
+ 20680 - 11904: 0xDCBB,
+ 20681 - 11904: 0xDCC2,
+ 20682 - 11904: 0xDCB9,
+ 20683 - 11904: 0xDCC1,
+ 20685 - 11904: 0x92A1,
+ 20686 - 11904: 0xB9B6,
+ 20687 - 11904: 0xB9B3,
+ 20688 - 11904: 0x90E3,
+ 20689 - 11904: 0xB9B4,
+ 20691 - 11904: 0xE0F9,
+ 20692 - 11904: 0xE0F1,
+ 20693 - 11904: 0xB9B2,
+ 20694 - 11904: 0xB9AF,
+ 20695 - 11904: 0xE0F2,
+ 20697 - 11904: 0xA0A6,
+ 20698 - 11904: 0xB9B1,
+ 20699 - 11904: 0xE0F5,
+ 20701 - 11904: 0xE0F7,
+ 20703 - 11904: 0x94AB,
+ 20704 - 11904: 0xE0FE,
+ 20705 - 11904: 0xFC72,
+ 20707 - 11904: 0xE0FD,
+ 20708 - 11904: 0xE0F8,
+ 20709 - 11904: 0xB9AE,
+ 20710 - 11904: 0xE0F0,
+ 20711 - 11904: 0xB9AC,
+ 20712 - 11904: 0xE0F3,
+ 20713 - 11904: 0xB9B7,
+ 20714 - 11904: 0xE0F6,
+ 20716 - 11904: 0xE0FA,
+ 20717 - 11904: 0xB9B0,
+ 20718 - 11904: 0xB9AD,
+ 20719 - 11904: 0xE0FC,
+ 20720 - 11904: 0xE0FB,
+ 20721 - 11904: 0xB9B5,
+ 20723 - 11904: 0xE0F4,
+ 20724 - 11904: 0x97C4,
+ 20725 - 11904: 0xBBF8,
+ 20726 - 11904: 0xE4EC,
+ 20728 - 11904: 0xE4E9,
+ 20729 - 11904: 0xBBF9,
+ 20731 - 11904: 0xBBF7,
+ 20732 - 11904: 0x92AE,
+ 20733 - 11904: 0xE4F0,
+ 20734 - 11904: 0xE4ED,
+ 20735 - 11904: 0xE4E6,
+ 20736 - 11904: 0xBBF6,
+ 20737 - 11904: 0xFA67,
+ 20738 - 11904: 0xBBFA,
+ 20739 - 11904: 0xE4E7,
+ 20740 - 11904: 0xBBF5,
+ 20741 - 11904: 0xBBFD,
+ 20742 - 11904: 0xE4EA,
+ 20743 - 11904: 0xE4EB,
+ 20744 - 11904: 0xBBFB,
+ 20745 - 11904: 0xBBFC,
+ 20746 - 11904: 0xE4F1,
+ 20747 - 11904: 0xE4EE,
+ 20748 - 11904: 0xE4EF,
+ 20749 - 11904: 0x92A2,
+ 20750 - 11904: 0xFA69,
+ 20752 - 11904: 0xBEAA,
+ 20753 - 11904: 0xE8F8,
+ 20754 - 11904: 0xBEA7,
+ 20755 - 11904: 0xE8F5,
+ 20756 - 11904: 0xBEA9,
+ 20757 - 11904: 0xBEAB,
+ 20759 - 11904: 0xE8F6,
+ 20760 - 11904: 0xBEA8,
+ 20762 - 11904: 0xE8F7,
+ 20764 - 11904: 0xE8F4,
+ 20767 - 11904: 0xC076,
+ 20768 - 11904: 0xECBD,
+ 20769 - 11904: 0xC077,
+ 20770 - 11904: 0xECBB,
+ 20772 - 11904: 0xECBC,
+ 20773 - 11904: 0xECBA,
+ 20774 - 11904: 0xECB9,
+ 20777 - 11904: 0xECBE,
+ 20778 - 11904: 0xC075,
+ 20779 - 11904: 0x9268,
+ 20781 - 11904: 0xEFB8,
+ 20782 - 11904: 0xEFB9,
+ 20784 - 11904: 0xE4E8,
+ 20785 - 11904: 0xEFB7,
+ 20786 - 11904: 0xC078,
+ 20787 - 11904: 0xC35F,
+ 20788 - 11904: 0xF1EB,
+ 20789 - 11904: 0xF1EC,
+ 20791 - 11904: 0xC4D7,
+ 20792 - 11904: 0xC4D8,
+ 20793 - 11904: 0xF5C1,
+ 20794 - 11904: 0xF5C0,
+ 20795 - 11904: 0xC56C,
+ 20796 - 11904: 0xC56B,
+ 20797 - 11904: 0xF7D0,
+ 20799 - 11904: 0xA449,
+ 20800 - 11904: 0xA461,
+ 20801 - 11904: 0xA4B9,
+ 20803 - 11904: 0xA4B8,
+ 20804 - 11904: 0xA553,
+ 20805 - 11904: 0xA552,
+ 20806 - 11904: 0xA5FC,
+ 20807 - 11904: 0xA5FB,
+ 20808 - 11904: 0xA5FD,
+ 20809 - 11904: 0xA5FA,
+ 20811 - 11904: 0xA74A,
+ 20812 - 11904: 0xA749,
+ 20813 - 11904: 0xA74B,
+ 20818 - 11904: 0xA8E0,
+ 20820 - 11904: 0xA8DF,
+ 20821 - 11904: 0xA8E1,
+ 20822 - 11904: 0x8951,
+ 20823 - 11904: 0xAB5E,
+ 20825 - 11904: 0xA259,
+ 20826 - 11904: 0xD0DE,
+ 20827 - 11904: 0xA25A,
+ 20828 - 11904: 0xB0C2,
+ 20829 - 11904: 0xA25C,
+ 20830 - 11904: 0xA25B,
+ 20831 - 11904: 0xD860,
+ 20832 - 11904: 0xFA6F,
+ 20833 - 11904: 0xA25D,
+ 20834 - 11904: 0xB9B8,
+ 20835 - 11904: 0xA25E,
+ 20837 - 11904: 0xA44A,
+ 20839 - 11904: 0xA4BA,
+ 20840 - 11904: 0xA5FE,
+ 20841 - 11904: 0xA8E2,
+ 20842 - 11904: 0xFA71,
+ 20843 - 11904: 0xA44B,
+ 20844 - 11904: 0xA4BD,
+ 20845 - 11904: 0xA4BB,
+ 20846 - 11904: 0xA4BC,
+ 20849 - 11904: 0xA640,
+ 20852 - 11904: 0x8952,
+ 20853 - 11904: 0xA74C,
+ 20854 - 11904: 0xA8E4,
+ 20855 - 11904: 0xA8E3,
+ 20856 - 11904: 0xA8E5,
+ 20857 - 11904: 0x945A,
+ 20860 - 11904: 0xADDD,
+ 20864 - 11904: 0xBEAC,
+ 20866 - 11904: 0xC6C3,
+ 20870 - 11904: 0x89DD,
+ 20871 - 11904: 0xC94E,
+ 20872 - 11904: 0xC8A2,
+ 20873 - 11904: 0xA554,
+ 20874 - 11904: 0xA555,
+ 20877 - 11904: 0xA641,
+ 20879 - 11904: 0xCA6A,
+ 20881 - 11904: 0xAB60,
+ 20882 - 11904: 0xAB5F,
+ 20883 - 11904: 0xD0E0,
+ 20884 - 11904: 0xD0DF,
+ 20885 - 11904: 0xB0C3,
+ 20886 - 11904: 0xC6C4,
+ 20887 - 11904: 0xA4BE,
+ 20888 - 11904: 0xC955,
+ 20890 - 11904: 0x9E52,
+ 20892 - 11904: 0x8953,
+ 20894 - 11904: 0xCBCD,
+ 20896 - 11904: 0xAB61,
+ 20898 - 11904: 0xADE0,
+ 20900 - 11904: 0xADDE,
+ 20901 - 11904: 0xADDF,
+ 20903 - 11904: 0x9E55,
+ 20904 - 11904: 0x92BA,
+ 20906 - 11904: 0xBEAD,
+ 20907 - 11904: 0xC6C5,
+ 20908 - 11904: 0xA556,
+ 20910 - 11904: 0x8C5B,
+ 20912 - 11904: 0xA642,
+ 20913 - 11904: 0xC9BC,
+ 20914 - 11904: 0xFA7D,
+ 20915 - 11904: 0xFAA8,
+ 20916 - 11904: 0x9A68,
+ 20917 - 11904: 0xFA47,
+ 20918 - 11904: 0xA74D,
+ 20919 - 11904: 0xA74E,
+ 20920 - 11904: 0xFA7E,
+ 20921 - 11904: 0xCA6B,
+ 20924 - 11904: 0xCBCE,
+ 20925 - 11904: 0xA8E6,
+ 20926 - 11904: 0xCBCF,
+ 20931 - 11904: 0x92BB,
+ 20932 - 11904: 0xD0E2,
+ 20933 - 11904: 0xD0E3,
+ 20934 - 11904: 0xADE3,
+ 20935 - 11904: 0xFDB6,
+ 20936 - 11904: 0xD0E4,
+ 20937 - 11904: 0xFAA2,
+ 20938 - 11904: 0xD0E1,
+ 20939 - 11904: 0xADE4,
+ 20940 - 11904: 0xADE2,
+ 20941 - 11904: 0xADE1,
+ 20942 - 11904: 0xD0E5,
+ 20943 - 11904: 0xFAA3,
+ 20944 - 11904: 0xD468,
+ 20945 - 11904: 0xFAA4,
+ 20946 - 11904: 0x9BB4,
+ 20947 - 11904: 0xFAA6,
+ 20948 - 11904: 0xD861,
+ 20951 - 11904: 0xDCC5,
+ 20952 - 11904: 0xE140,
+ 20955 - 11904: 0x89DF,
+ 20956 - 11904: 0xBBFE,
+ 20957 - 11904: 0xBEAE,
+ 20958 - 11904: 0xE8F9,
+ 20959 - 11904: 0xFDDB,
+ 20960 - 11904: 0xA44C,
+ 20961 - 11904: 0xA45A,
+ 20962 - 11904: 0xFAA9,
+ 20964 - 11904: 0x8954,
+ 20973 - 11904: 0xFAAB,
+ 20976 - 11904: 0xB0C4,
+ 20977 - 11904: 0xB3CD,
+ 20979 - 11904: 0xB9B9,
+ 20980 - 11904: 0xFC7A,
+ 20981 - 11904: 0xC942,
+ 20982 - 11904: 0xA4BF,
+ 20984 - 11904: 0xA559,
+ 20985 - 11904: 0xA557,
+ 20986 - 11904: 0xA558,
+ 20988 - 11904: 0x89E0,
+ 20989 - 11904: 0xA8E7,
+ 20990 - 11904: 0x9F4F,
+ 20992 - 11904: 0xA44D,
+ 20993 - 11904: 0xA44E,
+ 20994 - 11904: 0xC87D,
+ 20995 - 11904: 0xA462,
+ 20997 - 11904: 0x89E1,
+ 20998 - 11904: 0xA4C0,
+ 20999 - 11904: 0xA4C1,
+ 21000 - 11904: 0xA4C2,
+ 21001 - 11904: 0xC9BE,
+ 21002 - 11904: 0xA55A,
+ 21003 - 11904: 0xFAB0,
+ 21004 - 11904: 0xC96B,
+ 21006 - 11904: 0xA646,
+ 21008 - 11904: 0xC9BF,
+ 21009 - 11904: 0xA644,
+ 21010 - 11904: 0xA645,
+ 21011 - 11904: 0xC9BD,
+ 21014 - 11904: 0xA647,
+ 21015 - 11904: 0xA643,
+ 21020 - 11904: 0xCA6C,
+ 21021 - 11904: 0xAAEC,
+ 21022 - 11904: 0xCA6D,
+ 21023 - 11904: 0x9FCD,
+ 21024 - 11904: 0xA0E7,
+ 21025 - 11904: 0xCA6E,
+ 21028 - 11904: 0xA750,
+ 21029 - 11904: 0xA74F,
+ 21030 - 11904: 0xFAB1,
+ 21031 - 11904: 0x89A6,
+ 21032 - 11904: 0xA753,
+ 21033 - 11904: 0xA751,
+ 21034 - 11904: 0xA752,
+ 21038 - 11904: 0xA8ED,
+ 21040 - 11904: 0xA8EC,
+ 21041 - 11904: 0xCBD4,
+ 21042 - 11904: 0xCBD1,
+ 21043 - 11904: 0xCBD2,
+ 21044 - 11904: 0x9EFA,
+ 21045 - 11904: 0xCBD0,
+ 21046 - 11904: 0xA8EE,
+ 21047 - 11904: 0xA8EA,
+ 21048 - 11904: 0xA8E9,
+ 21050 - 11904: 0xA8EB,
+ 21051 - 11904: 0xA8E8,
+ 21052 - 11904: 0xFAB2,
+ 21057 - 11904: 0xA8EF,
+ 21059 - 11904: 0xAB63,
+ 21060 - 11904: 0xCDF0,
+ 21062 - 11904: 0xCBD3,
+ 21063 - 11904: 0xAB68,
+ 21065 - 11904: 0xCDF1,
+ 21066 - 11904: 0xAB64,
+ 21067 - 11904: 0xAB67,
+ 21068 - 11904: 0xAB66,
+ 21069 - 11904: 0xAB65,
+ 21070 - 11904: 0xAB62,
+ 21071 - 11904: 0x87BC,
+ 21074 - 11904: 0xD0E8,
+ 21076 - 11904: 0xADE7,
+ 21077 - 11904: 0xD0EB,
+ 21078 - 11904: 0xADE5,
+ 21079 - 11904: 0xFAB4,
+ 21081 - 11904: 0x92C4,
+ 21082 - 11904: 0xD0E7,
+ 21083 - 11904: 0xADE8,
+ 21084 - 11904: 0xADE6,
+ 21085 - 11904: 0xADE9,
+ 21086 - 11904: 0xD0E9,
+ 21087 - 11904: 0xD0EA,
+ 21088 - 11904: 0x9F6F,
+ 21089 - 11904: 0xD0E6,
+ 21090 - 11904: 0xD0EC,
+ 21096 - 11904: 0x8BB0,
+ 21097 - 11904: 0xB3D1,
+ 21098 - 11904: 0xB0C5,
+ 21099 - 11904: 0xD469,
+ 21100 - 11904: 0xD46B,
+ 21101 - 11904: 0xD46A,
+ 21102 - 11904: 0xD46C,
+ 21103 - 11904: 0xB0C6,
+ 21106 - 11904: 0xB3CE,
+ 21107 - 11904: 0x9FAC,
+ 21108 - 11904: 0xB3CF,
+ 21109 - 11904: 0xB3D0,
+ 21111 - 11904: 0xB6D0,
+ 21112 - 11904: 0xDCC7,
+ 21113 - 11904: 0x89E3,
+ 21114 - 11904: 0xDCC6,
+ 21115 - 11904: 0xDCC8,
+ 21116 - 11904: 0xDCC9,
+ 21117 - 11904: 0xB6D1,
+ 21119 - 11904: 0xB6CF,
+ 21120 - 11904: 0xE141,
+ 21121 - 11904: 0xE142,
+ 21122 - 11904: 0xB9BB,
+ 21123 - 11904: 0xB9BA,
+ 21124 - 11904: 0xE35A,
+ 21127 - 11904: 0xBC40,
+ 21128 - 11904: 0xBC41,
+ 21129 - 11904: 0xBC42,
+ 21130 - 11904: 0xBC44,
+ 21131 - 11904: 0xE4F2,
+ 21132 - 11904: 0xE4F3,
+ 21133 - 11904: 0xBC43,
+ 21135 - 11904: 0x9BD3,
+ 21136 - 11904: 0x89E4,
+ 21137 - 11904: 0xBEAF,
+ 21139 - 11904: 0xBEB0,
+ 21140 - 11904: 0xFAB5,
+ 21142 - 11904: 0xF1ED,
+ 21143 - 11904: 0xF5C3,
+ 21144 - 11904: 0xF5C2,
+ 21145 - 11904: 0xF7D1,
+ 21146 - 11904: 0x9FD5,
+ 21147 - 11904: 0xA44F,
+ 21151 - 11904: 0xA55C,
+ 21152 - 11904: 0xA55B,
+ 21153 - 11904: 0x8955,
+ 21155 - 11904: 0xA648,
+ 21156 - 11904: 0x92C5,
+ 21158 - 11904: 0xC9C0,
+ 21160 - 11904: 0x8956,
+ 21161 - 11904: 0xA755,
+ 21162 - 11904: 0xA756,
+ 21163 - 11904: 0xA754,
+ 21164 - 11904: 0xA757,
+ 21165 - 11904: 0xCA6F,
+ 21166 - 11904: 0xCA70,
+ 21173 - 11904: 0xFAB3,
+ 21177 - 11904: 0xFAB6,
+ 21179 - 11904: 0xA8F1,
+ 21180 - 11904: 0xCBD5,
+ 21182 - 11904: 0xA8F0,
+ 21184 - 11904: 0xCDF2,
+ 21185 - 11904: 0xAB6C,
+ 21186 - 11904: 0xCDF3,
+ 21187 - 11904: 0xAB6B,
+ 21189 - 11904: 0xFAB7,
+ 21191 - 11904: 0xAB69,
+ 21193 - 11904: 0xAB6A,
+ 21196 - 11904: 0x9EDC,
+ 21197 - 11904: 0xD0ED,
+ 21200 - 11904: 0xFBC4,
+ 21201 - 11904: 0x9F71,
+ 21202 - 11904: 0xB0C7,
+ 21203 - 11904: 0xD46E,
+ 21205 - 11904: 0xB0CA,
+ 21206 - 11904: 0xD46D,
+ 21207 - 11904: 0xB1E5,
+ 21208 - 11904: 0xB0C9,
+ 21209 - 11904: 0xB0C8,
+ 21211 - 11904: 0xB3D4,
+ 21213 - 11904: 0xB3D3,
+ 21214 - 11904: 0xB3D2,
+ 21215 - 11904: 0xB6D2,
+ 21216 - 11904: 0xFABA,
+ 21217 - 11904: 0x92C7,
+ 21218 - 11904: 0xB6D5,
+ 21219 - 11904: 0xB6D6,
+ 21220 - 11904: 0xB6D4,
+ 21222 - 11904: 0xB6D3,
+ 21225 - 11904: 0xE143,
+ 21227 - 11904: 0xE144,
+ 21231 - 11904: 0xE4F5,
+ 21232 - 11904: 0xBC45,
+ 21233 - 11904: 0xE4F4,
+ 21235 - 11904: 0xBEB1,
+ 21236 - 11904: 0xECBF,
+ 21237 - 11904: 0xC079,
+ 21239 - 11904: 0xF1EE,
+ 21240 - 11904: 0xC455,
+ 21241 - 11904: 0xC6C6,
+ 21242 - 11904: 0xA463,
+ 21243 - 11904: 0xA4C3,
+ 21244 - 11904: 0xC956,
+ 21246 - 11904: 0xA4C4,
+ 21247 - 11904: 0xA4C5,
+ 21249 - 11904: 0x9A4C,
+ 21253 - 11904: 0xFABD,
+ 21254 - 11904: 0xA55E,
+ 21256 - 11904: 0xA649,
+ 21257 - 11904: 0xCA71,
+ 21258 - 11904: 0xCBD6,
+ 21259 - 11904: 0xCBD7,
+ 21261 - 11904: 0xAB6D,
+ 21262 - 11904: 0xD0EE,
+ 21263 - 11904: 0xB0CC,
+ 21264 - 11904: 0xB0CB,
+ 21265 - 11904: 0xD863,
+ 21266 - 11904: 0xD862,
+ 21269 - 11904: 0xA450,
+ 21270 - 11904: 0xA4C6,
+ 21271 - 11904: 0xA55F,
+ 21273 - 11904: 0xB0CD,
+ 21274 - 11904: 0xC943,
+ 21276 - 11904: 0xC96C,
+ 21277 - 11904: 0xA560,
+ 21279 - 11904: 0xC9C2,
+ 21280 - 11904: 0xA64B,
+ 21281 - 11904: 0xA64A,
+ 21282 - 11904: 0xC9C1,
+ 21283 - 11904: 0xA758,
+ 21284 - 11904: 0x8C68,
+ 21287 - 11904: 0x89E5,
+ 21290 - 11904: 0xADEA,
+ 21292 - 11904: 0x9F7D,
+ 21293 - 11904: 0xD46F,
+ 21295 - 11904: 0xB6D7,
+ 21296 - 11904: 0xE145,
+ 21297 - 11904: 0xB9BC,
+ 21298 - 11904: 0xA0A9,
+ 21299 - 11904: 0xFAC4,
+ 21300 - 11904: 0xE8FA,
+ 21303 - 11904: 0xF3FD,
+ 21304 - 11904: 0xC6C7,
+ 21305 - 11904: 0xA4C7,
+ 21307 - 11904: 0x8957,
+ 21308 - 11904: 0xCBD8,
+ 21309 - 11904: 0xCDF4,
+ 21310 - 11904: 0xB0D0,
+ 21311 - 11904: 0xB0CE,
+ 21312 - 11904: 0xB0CF,
+ 21313 - 11904: 0xA451,
+ 21314 - 11904: 0xFAAA,
+ 21315 - 11904: 0xA464,
+ 21316 - 11904: 0xFAC5,
+ 21317 - 11904: 0xA4CA,
+ 21319 - 11904: 0xA4C9,
+ 21320 - 11904: 0xA4C8,
+ 21321 - 11904: 0xA563,
+ 21322 - 11904: 0xA562,
+ 21324 - 11904: 0xC96D,
+ 21325 - 11904: 0xC9C3,
+ 21326 - 11904: 0x8958,
+ 21329 - 11904: 0xA8F5,
+ 21330 - 11904: 0xA8F2,
+ 21331 - 11904: 0xA8F4,
+ 21332 - 11904: 0xA8F3,
+ 21335 - 11904: 0xAB6E,
+ 21338 - 11904: 0xB3D5,
+ 21340 - 11904: 0xA452,
+ 21341 - 11904: 0x8BE3,
+ 21342 - 11904: 0xA4CB,
+ 21343 - 11904: 0x8B61,
+ 21344 - 11904: 0xA565,
+ 21345 - 11904: 0xA564,
+ 21347 - 11904: 0xCA72,
+ 21348 - 11904: 0x9AF1,
+ 21350 - 11904: 0xA8F6,
+ 21351 - 11904: 0x9EB7,
+ 21353 - 11904: 0xC6C8,
+ 21356 - 11904: 0xC957,
+ 21357 - 11904: 0xFAD1,
+ 21358 - 11904: 0xA567,
+ 21359 - 11904: 0xA566,
+ 21360 - 11904: 0xA64C,
+ 21361 - 11904: 0xA64D,
+ 21362 - 11904: 0xCA73,
+ 21363 - 11904: 0xA759,
+ 21364 - 11904: 0xFAD2,
+ 21365 - 11904: 0xA75A,
+ 21367 - 11904: 0xA8F7,
+ 21368 - 11904: 0xA8F8,
+ 21369 - 11904: 0xA8F9,
+ 21371 - 11904: 0xAB6F,
+ 21372 - 11904: 0xCDF5,
+ 21373 - 11904: 0x9EBA,
+ 21374 - 11904: 0xFAD4,
+ 21375 - 11904: 0xFAD5,
+ 21378 - 11904: 0xC944,
+ 21380 - 11904: 0xA4CC,
+ 21386 - 11904: 0xC9C4,
+ 21390 - 11904: 0xCA74,
+ 21391 - 11904: 0xCA75,
+ 21394 - 11904: 0xCBD9,
+ 21395 - 11904: 0xFAD9,
+ 21396 - 11904: 0xCBDA,
+ 21398 - 11904: 0xCDF7,
+ 21399 - 11904: 0xCDF6,
+ 21400 - 11904: 0xCDF9,
+ 21401 - 11904: 0xCDF8,
+ 21402 - 11904: 0xAB70,
+ 21404 - 11904: 0xD470,
+ 21405 - 11904: 0xADED,
+ 21406 - 11904: 0xD0EF,
+ 21407 - 11904: 0xADEC,
+ 21408 - 11904: 0xFADB,
+ 21410 - 11904: 0x9CE0,
+ 21412 - 11904: 0xD864,
+ 21413 - 11904: 0xB3D6,
+ 21414 - 11904: 0xFBF7,
+ 21415 - 11904: 0xD865,
+ 21416 - 11904: 0xFBFA,
+ 21417 - 11904: 0x89E7,
+ 21418 - 11904: 0xA07A,
+ 21419 - 11904: 0xFADC,
+ 21420 - 11904: 0xE146,
+ 21421 - 11904: 0xB9BD,
+ 21422 - 11904: 0xFADD,
+ 21424 - 11904: 0x89E9,
+ 21426 - 11904: 0xBC46,
+ 21428 - 11904: 0xF1EF,
+ 21430 - 11904: 0xC6C9,
+ 21433 - 11904: 0xC958,
+ 21435 - 11904: 0xA568,
+ 21441 - 11904: 0xFAE2,
+ 21442 - 11904: 0x89EB,
+ 21443 - 11904: 0xB0D1,
+ 21445 - 11904: 0xFAE3,
+ 21448 - 11904: 0xA453,
+ 21449 - 11904: 0xA465,
+ 21450 - 11904: 0xA4CE,
+ 21451 - 11904: 0xA4CD,
+ 21452 - 11904: 0x90C8,
+ 21453 - 11904: 0xA4CF,
+ 21456 - 11904: 0x92DA,
+ 21457 - 11904: 0x8959,
+ 21458 - 11904: 0x9CF5,
+ 21460 - 11904: 0xA8FB,
+ 21462 - 11904: 0xA8FA,
+ 21463 - 11904: 0xA8FC,
+ 21464 - 11904: 0x895A,
+ 21465 - 11904: 0xFAE7,
+ 21466 - 11904: 0x9FA2,
+ 21467 - 11904: 0xAB71,
+ 21471 - 11904: 0xADEE,
+ 21472 - 11904: 0xFAEA,
+ 21473 - 11904: 0xE8FB,
+ 21474 - 11904: 0xC24F,
+ 21475 - 11904: 0xA466,
+ 21476 - 11904: 0xA56A,
+ 21477 - 11904: 0xA579,
+ 21478 - 11904: 0xA574,
+ 21480 - 11904: 0xA56F,
+ 21481 - 11904: 0xA56E,
+ 21482 - 11904: 0xA575,
+ 21483 - 11904: 0xA573,
+ 21484 - 11904: 0xA56C,
+ 21485 - 11904: 0xA57A,
+ 21486 - 11904: 0xA56D,
+ 21487 - 11904: 0xA569,
+ 21488 - 11904: 0xA578,
+ 21489 - 11904: 0xA577,
+ 21490 - 11904: 0xA576,
+ 21491 - 11904: 0xA56B,
+ 21493 - 11904: 0xA572,
+ 21494 - 11904: 0xFAED,
+ 21495 - 11904: 0x8FAD,
+ 21496 - 11904: 0xA571,
+ 21499 - 11904: 0xA57B,
+ 21500 - 11904: 0xA570,
+ 21502 - 11904: 0xFB59,
+ 21505 - 11904: 0xA653,
+ 21507 - 11904: 0xA659,
+ 21508 - 11904: 0xA655,
+ 21510 - 11904: 0xA65B,
+ 21511 - 11904: 0xC9C5,
+ 21512 - 11904: 0xA658,
+ 21513 - 11904: 0xA64E,
+ 21514 - 11904: 0xA651,
+ 21515 - 11904: 0xA654,
+ 21516 - 11904: 0xA650,
+ 21517 - 11904: 0xA657,
+ 21518 - 11904: 0xA65A,
+ 21519 - 11904: 0xA64F,
+ 21520 - 11904: 0xA652,
+ 21521 - 11904: 0xA656,
+ 21522 - 11904: 0xA65C,
+ 21523 - 11904: 0xFAEF,
+ 21524 - 11904: 0x96EF,
+ 21526 - 11904: 0x9DEC,
+ 21528 - 11904: 0xCA7E,
+ 21529 - 11904: 0xCA7B,
+ 21530 - 11904: 0x9DCA,
+ 21531 - 11904: 0xA767,
+ 21532 - 11904: 0xCA7C,
+ 21533 - 11904: 0xA75B,
+ 21534 - 11904: 0xA75D,
+ 21535 - 11904: 0xA775,
+ 21536 - 11904: 0xA770,
+ 21537 - 11904: 0xFD6D,
+ 21539 - 11904: 0x89EC,
+ 21540 - 11904: 0xCAA5,
+ 21541 - 11904: 0xCA7D,
+ 21542 - 11904: 0xA75F,
+ 21543 - 11904: 0xA761,
+ 21544 - 11904: 0xCAA4,
+ 21545 - 11904: 0xA768,
+ 21546 - 11904: 0xCA78,
+ 21547 - 11904: 0xA774,
+ 21548 - 11904: 0xA776,
+ 21549 - 11904: 0xA75C,
+ 21550 - 11904: 0xA76D,
+ 21551 - 11904: 0xFB44,
+ 21552 - 11904: 0xCA76,
+ 21553 - 11904: 0xA773,
+ 21554 - 11904: 0x9DE2,
+ 21555 - 11904: 0xA764,
+ 21556 - 11904: 0x8C75,
+ 21557 - 11904: 0xA76E,
+ 21558 - 11904: 0xA76F,
+ 21559 - 11904: 0xCA77,
+ 21560 - 11904: 0xA76C,
+ 21561 - 11904: 0xA76A,
+ 21563 - 11904: 0xA76B,
+ 21564 - 11904: 0xA771,
+ 21565 - 11904: 0xCAA1,
+ 21566 - 11904: 0xA75E,
+ 21568 - 11904: 0xA772,
+ 21569 - 11904: 0xCAA3,
+ 21570 - 11904: 0xA766,
+ 21571 - 11904: 0xA763,
+ 21573 - 11904: 0xCA7A,
+ 21574 - 11904: 0xA762,
+ 21575 - 11904: 0xCAA6,
+ 21576 - 11904: 0xA765,
+ 21578 - 11904: 0xA769,
+ 21579 - 11904: 0x9EC0,
+ 21580 - 11904: 0x87C5,
+ 21581 - 11904: 0x9E56,
+ 21582 - 11904: 0xA760,
+ 21583 - 11904: 0xCAA2,
+ 21588 - 11904: 0xCA79,
+ 21600 - 11904: 0xCBEB,
+ 21601 - 11904: 0xCBEA,
+ 21602 - 11904: 0xA94F,
+ 21603 - 11904: 0xCBED,
+ 21604 - 11904: 0xCBEF,
+ 21605 - 11904: 0xCBE4,
+ 21606 - 11904: 0xCBE7,
+ 21607 - 11904: 0xCBEE,
+ 21608 - 11904: 0xA950,
+ 21609 - 11904: 0x9F79,
+ 21610 - 11904: 0x9AC7,
+ 21611 - 11904: 0xCBE1,
+ 21612 - 11904: 0xCBE5,
+ 21613 - 11904: 0xFAF4,
+ 21615 - 11904: 0xCBE9,
+ 21616 - 11904: 0xCE49,
+ 21617 - 11904: 0xA94B,
+ 21618 - 11904: 0xCE4D,
+ 21619 - 11904: 0xA8FD,
+ 21620 - 11904: 0xCBE6,
+ 21621 - 11904: 0xA8FE,
+ 21622 - 11904: 0xA94C,
+ 21623 - 11904: 0xA945,
+ 21624 - 11904: 0xA941,
+ 21626 - 11904: 0xCBE2,
+ 21627 - 11904: 0xA944,
+ 21628 - 11904: 0xA949,
+ 21629 - 11904: 0xA952,
+ 21630 - 11904: 0xCBE3,
+ 21631 - 11904: 0xCBDC,
+ 21632 - 11904: 0xA943,
+ 21633 - 11904: 0xCBDD,
+ 21634 - 11904: 0xCBDF,
+ 21636 - 11904: 0xA946,
+ 21637 - 11904: 0x98A1,
+ 21638 - 11904: 0xA948,
+ 21639 - 11904: 0xCBDB,
+ 21640 - 11904: 0xCBE0,
+ 21643 - 11904: 0xA951,
+ 21644 - 11904: 0xA94D,
+ 21645 - 11904: 0xCBE8,
+ 21646 - 11904: 0xA953,
+ 21647 - 11904: 0xFAF8,
+ 21648 - 11904: 0xA94A,
+ 21649 - 11904: 0xCBDE,
+ 21650 - 11904: 0xA947,
+ 21651 - 11904: 0x89F0,
+ 21652 - 11904: 0x9E47,
+ 21653 - 11904: 0xA942,
+ 21654 - 11904: 0xA940,
+ 21655 - 11904: 0x9DF7,
+ 21656 - 11904: 0xCBEC,
+ 21658 - 11904: 0xA94E,
+ 21660 - 11904: 0x9FD3,
+ 21662 - 11904: 0x9ACA,
+ 21664 - 11904: 0xCE48,
+ 21665 - 11904: 0xCDFB,
+ 21666 - 11904: 0xCE4B,
+ 21667 - 11904: 0x89F1,
+ 21668 - 11904: 0xFAF9,
+ 21669 - 11904: 0xCDFD,
+ 21670 - 11904: 0xAB78,
+ 21671 - 11904: 0xABA8,
+ 21672 - 11904: 0xAB74,
+ 21673 - 11904: 0xABA7,
+ 21674 - 11904: 0xAB7D,
+ 21675 - 11904: 0xABA4,
+ 21676 - 11904: 0xAB72,
+ 21677 - 11904: 0xCDFC,
+ 21678 - 11904: 0xCE43,
+ 21679 - 11904: 0xABA3,
+ 21680 - 11904: 0xCE4F,
+ 21681 - 11904: 0xABA5,
+ 21682 - 11904: 0x8E5A,
+ 21683 - 11904: 0xAB79,
+ 21684 - 11904: 0x89F2,
+ 21686 - 11904: 0xCE45,
+ 21687 - 11904: 0xCE42,
+ 21688 - 11904: 0xAB77,
+ 21689 - 11904: 0x89F3,
+ 21690 - 11904: 0xCDFA,
+ 21691 - 11904: 0xABA6,
+ 21692 - 11904: 0xCE4A,
+ 21693 - 11904: 0xAB7C,
+ 21694 - 11904: 0xCE4C,
+ 21695 - 11904: 0xABA9,
+ 21696 - 11904: 0xAB73,
+ 21697 - 11904: 0xAB7E,
+ 21698 - 11904: 0xAB7B,
+ 21699 - 11904: 0xCE40,
+ 21700 - 11904: 0xABA1,
+ 21701 - 11904: 0xCE46,
+ 21702 - 11904: 0xCE47,
+ 21703 - 11904: 0xAB7A,
+ 21704 - 11904: 0xABA2,
+ 21705 - 11904: 0xAB76,
+ 21707 - 11904: 0x925D,
+ 21708 - 11904: 0x8B51,
+ 21709 - 11904: 0x92E0,
+ 21710 - 11904: 0xAB75,
+ 21711 - 11904: 0xCDFE,
+ 21712 - 11904: 0x89F4,
+ 21718 - 11904: 0xCE44,
+ 21722 - 11904: 0x9FD4,
+ 21726 - 11904: 0xCE4E,
+ 21728 - 11904: 0xD144,
+ 21729 - 11904: 0xADFB,
+ 21730 - 11904: 0xD0F1,
+ 21731 - 11904: 0x8A79,
+ 21732 - 11904: 0xD0F6,
+ 21733 - 11904: 0xADF4,
+ 21734 - 11904: 0xAE40,
+ 21735 - 11904: 0xD0F4,
+ 21736 - 11904: 0xADEF,
+ 21737 - 11904: 0xADF9,
+ 21738 - 11904: 0xADFE,
+ 21739 - 11904: 0xD0FB,
+ 21741 - 11904: 0xADFA,
+ 21742 - 11904: 0xADFD,
+ 21743 - 11904: 0x89F5,
+ 21745 - 11904: 0xD0FE,
+ 21746 - 11904: 0xADF5,
+ 21747 - 11904: 0xD0F5,
+ 21751 - 11904: 0xD142,
+ 21752 - 11904: 0xD143,
+ 21754 - 11904: 0xADF7,
+ 21755 - 11904: 0xD141,
+ 21756 - 11904: 0xADF3,
+ 21757 - 11904: 0xAE43,
+ 21759 - 11904: 0xD0F8,
+ 21761 - 11904: 0xADF1,
+ 21762 - 11904: 0x97A7,
+ 21763 - 11904: 0xD146,
+ 21764 - 11904: 0xD0F9,
+ 21765 - 11904: 0xD0FD,
+ 21766 - 11904: 0xADF6,
+ 21767 - 11904: 0xAE42,
+ 21768 - 11904: 0xD0FA,
+ 21769 - 11904: 0xADFC,
+ 21770 - 11904: 0xD140,
+ 21771 - 11904: 0xD147,
+ 21772 - 11904: 0xD4A1,
+ 21773 - 11904: 0x93BA,
+ 21774 - 11904: 0xD145,
+ 21775 - 11904: 0xAE44,
+ 21776 - 11904: 0xADF0,
+ 21777 - 11904: 0xD0FC,
+ 21778 - 11904: 0xD0F3,
+ 21779 - 11904: 0x9E58,
+ 21780 - 11904: 0xADF8,
+ 21783 - 11904: 0xD0F2,
+ 21784 - 11904: 0x89F6,
+ 21786 - 11904: 0xD0F7,
+ 21790 - 11904: 0x9E57,
+ 21795 - 11904: 0x89F7,
+ 21797 - 11904: 0x8A41,
+ 21798 - 11904: 0xD0F0,
+ 21799 - 11904: 0xAE41,
+ 21800 - 11904: 0x89F8,
+ 21802 - 11904: 0xD477,
+ 21803 - 11904: 0xFAF1,
+ 21804 - 11904: 0xB0E4,
+ 21805 - 11904: 0xD4A7,
+ 21806 - 11904: 0xB0E2,
+ 21807 - 11904: 0xB0DF,
+ 21808 - 11904: 0xD47C,
+ 21809 - 11904: 0xB0DB,
+ 21810 - 11904: 0xD4A2,
+ 21811 - 11904: 0xB0E6,
+ 21812 - 11904: 0xD476,
+ 21813 - 11904: 0xD47B,
+ 21814 - 11904: 0xD47A,
+ 21815 - 11904: 0xADF2,
+ 21816 - 11904: 0xB0E1,
+ 21817 - 11904: 0xD4A5,
+ 21819 - 11904: 0xD4A8,
+ 21820 - 11904: 0xD473,
+ 21822 - 11904: 0xB3E8,
+ 21823 - 11904: 0x89FA,
+ 21824 - 11904: 0xD4A9,
+ 21825 - 11904: 0xB0E7,
+ 21827 - 11904: 0xB0D9,
+ 21828 - 11904: 0xB0D6,
+ 21829 - 11904: 0xD47E,
+ 21830 - 11904: 0xB0D3,
+ 21831 - 11904: 0xFB42,
+ 21832 - 11904: 0xD4A6,
+ 21833 - 11904: 0xFABF,
+ 21834 - 11904: 0xB0DA,
+ 21835 - 11904: 0xD4AA,
+ 21837 - 11904: 0xD474,
+ 21838 - 11904: 0xD4A4,
+ 21839 - 11904: 0xB0DD,
+ 21840 - 11904: 0xD475,
+ 21841 - 11904: 0xD478,
+ 21842 - 11904: 0xD47D,
+ 21843 - 11904: 0xFBA3,
+ 21845 - 11904: 0xB0DE,
+ 21846 - 11904: 0xB0DC,
+ 21847 - 11904: 0xB0E8,
+ 21852 - 11904: 0xB0E3,
+ 21853 - 11904: 0xFAF7,
+ 21854 - 11904: 0xB0D7,
+ 21855 - 11904: 0xB1D2,
+ 21857 - 11904: 0xB0D8,
+ 21858 - 11904: 0xD479,
+ 21859 - 11904: 0xB0E5,
+ 21860 - 11904: 0xB0E0,
+ 21861 - 11904: 0xD4A3,
+ 21862 - 11904: 0xB0D5,
+ 21865 - 11904: 0x9E4E,
+ 21866 - 11904: 0xB0D4,
+ 21867 - 11904: 0x94DC,
+ 21873 - 11904: 0x95DA,
+ 21874 - 11904: 0x9DF8,
+ 21875 - 11904: 0x9F6A,
+ 21877 - 11904: 0xD471,
+ 21878 - 11904: 0xD472,
+ 21879 - 11904: 0xD86A,
+ 21881 - 11904: 0x8AB7,
+ 21883 - 11904: 0xB3D7,
+ 21884 - 11904: 0xB3DA,
+ 21885 - 11904: 0xD875,
+ 21886 - 11904: 0xB3EE,
+ 21887 - 11904: 0xD878,
+ 21888 - 11904: 0xB3D8,
+ 21889 - 11904: 0xD871,
+ 21890 - 11904: 0xB3DE,
+ 21891 - 11904: 0xB3E4,
+ 21892 - 11904: 0xB5BD,
+ 21894 - 11904: 0xFB46,
+ 21895 - 11904: 0xB3E2,
+ 21896 - 11904: 0xD86E,
+ 21897 - 11904: 0xB3EF,
+ 21898 - 11904: 0xB3DB,
+ 21899 - 11904: 0xB3E3,
+ 21900 - 11904: 0xD876,
+ 21901 - 11904: 0xDCD7,
+ 21902 - 11904: 0xD87B,
+ 21903 - 11904: 0xD86F,
+ 21904 - 11904: 0x8A46,
+ 21905 - 11904: 0xD866,
+ 21906 - 11904: 0xD873,
+ 21907 - 11904: 0xD86D,
+ 21908 - 11904: 0xB3E1,
+ 21909 - 11904: 0xD879,
+ 21912 - 11904: 0xB3DD,
+ 21913 - 11904: 0xB3F1,
+ 21914 - 11904: 0xB3EA,
+ 21916 - 11904: 0xB3DF,
+ 21917 - 11904: 0xB3DC,
+ 21919 - 11904: 0xB3E7,
+ 21921 - 11904: 0xD87A,
+ 21922 - 11904: 0xD86C,
+ 21923 - 11904: 0xD872,
+ 21924 - 11904: 0xD874,
+ 21925 - 11904: 0xD868,
+ 21926 - 11904: 0xD877,
+ 21927 - 11904: 0xB3D9,
+ 21928 - 11904: 0xD867,
+ 21929 - 11904: 0xFB47,
+ 21930 - 11904: 0xB3E0,
+ 21931 - 11904: 0xB3F0,
+ 21932 - 11904: 0xB3EC,
+ 21933 - 11904: 0xD869,
+ 21934 - 11904: 0xB3E6,
+ 21936 - 11904: 0x9148,
+ 21937 - 11904: 0xB3ED,
+ 21938 - 11904: 0xB3E9,
+ 21939 - 11904: 0xB3E5,
+ 21940 - 11904: 0x92DE,
+ 21941 - 11904: 0xD870,
+ 21945 - 11904: 0x8B53,
+ 21946 - 11904: 0x9DF6,
+ 21947 - 11904: 0xB3EB,
+ 21948 - 11904: 0x9BDA,
+ 21951 - 11904: 0xDCD5,
+ 21952 - 11904: 0xDCD1,
+ 21953 - 11904: 0x9D7E,
+ 21954 - 11904: 0xDCE0,
+ 21955 - 11904: 0xDCCA,
+ 21956 - 11904: 0xDCD3,
+ 21957 - 11904: 0xB6E5,
+ 21958 - 11904: 0xB6E6,
+ 21959 - 11904: 0xB6DE,
+ 21960 - 11904: 0xDCDC,
+ 21961 - 11904: 0xB6E8,
+ 21962 - 11904: 0xDCCF,
+ 21963 - 11904: 0xDCCE,
+ 21964 - 11904: 0xDCCC,
+ 21965 - 11904: 0xDCDE,
+ 21966 - 11904: 0xB6DC,
+ 21967 - 11904: 0xDCD8,
+ 21968 - 11904: 0xDCCD,
+ 21969 - 11904: 0xB6DF,
+ 21970 - 11904: 0xDCD6,
+ 21971 - 11904: 0xB6DA,
+ 21972 - 11904: 0xDCD2,
+ 21973 - 11904: 0xDCD9,
+ 21974 - 11904: 0xDCDB,
+ 21975 - 11904: 0x89FD,
+ 21976 - 11904: 0x99E4,
+ 21977 - 11904: 0xDCDF,
+ 21978 - 11904: 0xB6E3,
+ 21979 - 11904: 0xDCCB,
+ 21980 - 11904: 0xB6DD,
+ 21981 - 11904: 0xDCD0,
+ 21982 - 11904: 0x9E43,
+ 21983 - 11904: 0xB6D8,
+ 21985 - 11904: 0xB6E4,
+ 21986 - 11904: 0xDCDA,
+ 21987 - 11904: 0xB6E0,
+ 21988 - 11904: 0xB6E1,
+ 21989 - 11904: 0xB6E7,
+ 21990 - 11904: 0xB6DB,
+ 21991 - 11904: 0xA25F,
+ 21992 - 11904: 0xB6D9,
+ 21993 - 11904: 0xDCD4,
+ 21994 - 11904: 0x9DE9,
+ 21996 - 11904: 0x8F52,
+ 21999 - 11904: 0xB6E2,
+ 22000 - 11904: 0x9DF5,
+ 22001 - 11904: 0x9DF0,
+ 22002 - 11904: 0xDCDD,
+ 22005 - 11904: 0x99E7,
+ 22006 - 11904: 0xB9CD,
+ 22007 - 11904: 0xB9C8,
+ 22009 - 11904: 0xE155,
+ 22010 - 11904: 0xE151,
+ 22011 - 11904: 0x8BBD,
+ 22012 - 11904: 0xE14B,
+ 22013 - 11904: 0xB9C2,
+ 22014 - 11904: 0xB9BE,
+ 22015 - 11904: 0xE154,
+ 22016 - 11904: 0xB9BF,
+ 22017 - 11904: 0xE14E,
+ 22018 - 11904: 0xE150,
+ 22020 - 11904: 0xE153,
+ 22021 - 11904: 0xFB48,
+ 22022 - 11904: 0xB9C4,
+ 22024 - 11904: 0xB9CB,
+ 22025 - 11904: 0xB9C5,
+ 22028 - 11904: 0xE149,
+ 22029 - 11904: 0xB9C6,
+ 22030 - 11904: 0xB9C7,
+ 22031 - 11904: 0xE14C,
+ 22032 - 11904: 0xB9CC,
+ 22033 - 11904: 0x9FB7,
+ 22034 - 11904: 0xE14A,
+ 22035 - 11904: 0xE14F,
+ 22036 - 11904: 0xB9C3,
+ 22037 - 11904: 0xE148,
+ 22038 - 11904: 0xB9C9,
+ 22039 - 11904: 0xB9C1,
+ 22043 - 11904: 0xB9C0,
+ 22044 - 11904: 0xE14D,
+ 22045 - 11904: 0xE152,
+ 22046 - 11904: 0x9DD0,
+ 22047 - 11904: 0xB9CA,
+ 22048 - 11904: 0x9FEB,
+ 22049 - 11904: 0x8DA9,
+ 22050 - 11904: 0x9DCF,
+ 22051 - 11904: 0x98E1,
+ 22053 - 11904: 0x9DE5,
+ 22055 - 11904: 0xE147,
+ 22057 - 11904: 0xBC4D,
+ 22058 - 11904: 0xE547,
+ 22060 - 11904: 0xE544,
+ 22061 - 11904: 0x9DC8,
+ 22062 - 11904: 0xBC47,
+ 22063 - 11904: 0xBC53,
+ 22064 - 11904: 0xBC54,
+ 22066 - 11904: 0xBC4A,
+ 22067 - 11904: 0xE542,
+ 22068 - 11904: 0xBC4C,
+ 22069 - 11904: 0xE4F9,
+ 22070 - 11904: 0xBC52,
+ 22071 - 11904: 0xFB4F,
+ 22072 - 11904: 0xE546,
+ 22073 - 11904: 0xBC49,
+ 22074 - 11904: 0xE548,
+ 22075 - 11904: 0xBC48,
+ 22077 - 11904: 0xE543,
+ 22078 - 11904: 0xE545,
+ 22079 - 11904: 0xBC4B,
+ 22080 - 11904: 0xE541,
+ 22081 - 11904: 0xE4FA,
+ 22082 - 11904: 0xE4F7,
+ 22083 - 11904: 0x9DEB,
+ 22085 - 11904: 0xD86B,
+ 22086 - 11904: 0xE4FD,
+ 22088 - 11904: 0xE4F6,
+ 22089 - 11904: 0xE4FC,
+ 22090 - 11904: 0xE4FB,
+ 22092 - 11904: 0xE4F8,
+ 22093 - 11904: 0xFB54,
+ 22094 - 11904: 0xBC4F,
+ 22095 - 11904: 0xFB55,
+ 22096 - 11904: 0x9AA2,
+ 22098 - 11904: 0x8AD6,
+ 22099 - 11904: 0xBC4E,
+ 22100 - 11904: 0x9A5F,
+ 22103 - 11904: 0xBC50,
+ 22104 - 11904: 0xE4FE,
+ 22105 - 11904: 0xBEB2,
+ 22106 - 11904: 0xE540,
+ 22109 - 11904: 0x9EF5,
+ 22110 - 11904: 0xE945,
+ 22112 - 11904: 0xE8FD,
+ 22113 - 11904: 0x8FB7,
+ 22114 - 11904: 0xBEBE,
+ 22115 - 11904: 0xE942,
+ 22116 - 11904: 0xBEB6,
+ 22117 - 11904: 0xBEBA,
+ 22118 - 11904: 0xE941,
+ 22120 - 11904: 0xBEB9,
+ 22121 - 11904: 0xBEB5,
+ 22122 - 11904: 0xBEB8,
+ 22123 - 11904: 0xBEB3,
+ 22124 - 11904: 0xBEBD,
+ 22125 - 11904: 0xE943,
+ 22126 - 11904: 0xE8FE,
+ 22127 - 11904: 0xBEBC,
+ 22128 - 11904: 0xE8FC,
+ 22129 - 11904: 0xBEBB,
+ 22130 - 11904: 0xE944,
+ 22131 - 11904: 0xE940,
+ 22132 - 11904: 0xBC51,
+ 22134 - 11904: 0xBEBF,
+ 22135 - 11904: 0xE946,
+ 22136 - 11904: 0xBEB7,
+ 22137 - 11904: 0xBEB4,
+ 22138 - 11904: 0x9AD2,
+ 22139 - 11904: 0x9E6A,
+ 22140 - 11904: 0x9EE8,
+ 22142 - 11904: 0xECC6,
+ 22143 - 11904: 0xECC8,
+ 22144 - 11904: 0xC07B,
+ 22145 - 11904: 0xECC9,
+ 22146 - 11904: 0xECC7,
+ 22147 - 11904: 0xECC5,
+ 22148 - 11904: 0xECC4,
+ 22149 - 11904: 0xC07D,
+ 22150 - 11904: 0xECC3,
+ 22151 - 11904: 0xC07E,
+ 22153 - 11904: 0x8BBF,
+ 22154 - 11904: 0x91C2,
+ 22155 - 11904: 0x9D62,
+ 22156 - 11904: 0xECC1,
+ 22157 - 11904: 0xECC2,
+ 22158 - 11904: 0xC07A,
+ 22159 - 11904: 0xC0A1,
+ 22160 - 11904: 0xC07C,
+ 22162 - 11904: 0x9260,
+ 22163 - 11904: 0xECC0,
+ 22165 - 11904: 0xC250,
+ 22167 - 11904: 0xEFBC,
+ 22168 - 11904: 0xEFBA,
+ 22169 - 11904: 0xEFBF,
+ 22170 - 11904: 0xEFBD,
+ 22172 - 11904: 0xEFBB,
+ 22173 - 11904: 0xEFBE,
+ 22174 - 11904: 0x925E,
+ 22175 - 11904: 0x91C1,
+ 22177 - 11904: 0x8AC5,
+ 22180 - 11904: 0x97A3,
+ 22181 - 11904: 0xC360,
+ 22182 - 11904: 0xF1F2,
+ 22183 - 11904: 0xF1F3,
+ 22184 - 11904: 0xC456,
+ 22186 - 11904: 0xF1F4,
+ 22187 - 11904: 0xF1F0,
+ 22188 - 11904: 0xF1F5,
+ 22189 - 11904: 0xF1F1,
+ 22190 - 11904: 0xC251,
+ 22191 - 11904: 0x8B6C,
+ 22193 - 11904: 0x8D7E,
+ 22194 - 11904: 0xF3FE,
+ 22195 - 11904: 0xF441,
+ 22196 - 11904: 0xC459,
+ 22197 - 11904: 0xF440,
+ 22198 - 11904: 0xC458,
+ 22199 - 11904: 0xC457,
+ 22201 - 11904: 0x9C54,
+ 22204 - 11904: 0xC45A,
+ 22205 - 11904: 0xF5C5,
+ 22206 - 11904: 0xF5C6,
+ 22207 - 11904: 0x9DBD,
+ 22208 - 11904: 0xC4DA,
+ 22209 - 11904: 0xC4D9,
+ 22210 - 11904: 0xC4DB,
+ 22211 - 11904: 0xF5C4,
+ 22213 - 11904: 0xF6D8,
+ 22214 - 11904: 0xF6D7,
+ 22216 - 11904: 0xC56D,
+ 22217 - 11904: 0xC56F,
+ 22218 - 11904: 0xC56E,
+ 22219 - 11904: 0xF6D9,
+ 22220 - 11904: 0xC5C8,
+ 22221 - 11904: 0xF8A6,
+ 22225 - 11904: 0xC5F1,
+ 22227 - 11904: 0xF8A5,
+ 22228 - 11904: 0xF8EE,
+ 22230 - 11904: 0x9CC5,
+ 22231 - 11904: 0xC949,
+ 22234 - 11904: 0xA57D,
+ 22235 - 11904: 0xA57C,
+ 22237 - 11904: 0xA65F,
+ 22238 - 11904: 0xA65E,
+ 22239 - 11904: 0xC9C7,
+ 22240 - 11904: 0xA65D,
+ 22241 - 11904: 0xC9C6,
+ 22242 - 11904: 0x895B,
+ 22244 - 11904: 0xA779,
+ 22245 - 11904: 0xCAA9,
+ 22247 - 11904: 0xCAA8,
+ 22250 - 11904: 0xA777,
+ 22251 - 11904: 0xA77A,
+ 22253 - 11904: 0xFB5C,
+ 22254 - 11904: 0xCAA7,
+ 22255 - 11904: 0xFB5B,
+ 22256 - 11904: 0xA778,
+ 22257 - 11904: 0xFB57,
+ 22263 - 11904: 0xCBF0,
+ 22265 - 11904: 0xCBF1,
+ 22266 - 11904: 0xA954,
+ 22267 - 11904: 0x8765,
+ 22269 - 11904: 0x98C7,
+ 22271 - 11904: 0xABAA,
+ 22272 - 11904: 0xFB5A,
+ 22273 - 11904: 0xD148,
+ 22274 - 11904: 0xD149,
+ 22275 - 11904: 0xAE45,
+ 22276 - 11904: 0xAE46,
+ 22279 - 11904: 0xD4AC,
+ 22280 - 11904: 0xB0E9,
+ 22281 - 11904: 0xB0EB,
+ 22282 - 11904: 0xD4AB,
+ 22283 - 11904: 0xB0EA,
+ 22284 - 11904: 0xD87C,
+ 22285 - 11904: 0xB3F2,
+ 22290 - 11904: 0xB6E9,
+ 22291 - 11904: 0xB6EA,
+ 22292 - 11904: 0xDCE1,
+ 22293 - 11904: 0x9CEE,
+ 22294 - 11904: 0xB9CF,
+ 22296 - 11904: 0xB9CE,
+ 22298 - 11904: 0xE549,
+ 22299 - 11904: 0xE948,
+ 22300 - 11904: 0xE947,
+ 22301 - 11904: 0x92E2,
+ 22302 - 11904: 0xF96B,
+ 22303 - 11904: 0xA467,
+ 22304 - 11904: 0xC959,
+ 22306 - 11904: 0xC96E,
+ 22307 - 11904: 0xC96F,
+ 22312 - 11904: 0xA662,
+ 22313 - 11904: 0xA666,
+ 22314 - 11904: 0xC9C9,
+ 22316 - 11904: 0xA664,
+ 22317 - 11904: 0xA663,
+ 22318 - 11904: 0xC9C8,
+ 22319 - 11904: 0xA665,
+ 22320 - 11904: 0xA661,
+ 22322 - 11904: 0x94A7,
+ 22323 - 11904: 0xA660,
+ 22324 - 11904: 0xC9CA,
+ 22331 - 11904: 0xA7A6,
+ 22333 - 11904: 0x8CCC,
+ 22334 - 11904: 0xA7A3,
+ 22335 - 11904: 0x9BD4,
+ 22336 - 11904: 0xA77D,
+ 22337 - 11904: 0xCAAA,
+ 22338 - 11904: 0xFB64,
+ 22339 - 11904: 0xFB76,
+ 22341 - 11904: 0xCAAB,
+ 22342 - 11904: 0xFB60,
+ 22343 - 11904: 0xA7A1,
+ 22345 - 11904: 0xCAAD,
+ 22346 - 11904: 0xA77B,
+ 22347 - 11904: 0xCAAE,
+ 22348 - 11904: 0xCAAC,
+ 22349 - 11904: 0xA77E,
+ 22350 - 11904: 0xA7A2,
+ 22351 - 11904: 0xA7A5,
+ 22352 - 11904: 0xA7A4,
+ 22353 - 11904: 0xA77C,
+ 22354 - 11904: 0xCAAF,
+ 22356 - 11904: 0x99E5,
+ 22359 - 11904: 0x9AC2,
+ 22363 - 11904: 0x91FB,
+ 22367 - 11904: 0xA073,
+ 22369 - 11904: 0xA959,
+ 22370 - 11904: 0xCBFE,
+ 22372 - 11904: 0xA95B,
+ 22374 - 11904: 0xA95A,
+ 22375 - 11904: 0x9F72,
+ 22376 - 11904: 0xCC40,
+ 22377 - 11904: 0xA958,
+ 22378 - 11904: 0xA957,
+ 22379 - 11904: 0xCBF5,
+ 22381 - 11904: 0xCBF4,
+ 22383 - 11904: 0xCBF2,
+ 22384 - 11904: 0xCBF7,
+ 22385 - 11904: 0xCBF6,
+ 22386 - 11904: 0xCBF3,
+ 22387 - 11904: 0xCBFC,
+ 22388 - 11904: 0xCBFD,
+ 22389 - 11904: 0xCBFA,
+ 22390 - 11904: 0xCBF8,
+ 22391 - 11904: 0xA956,
+ 22394 - 11904: 0x9FCC,
+ 22395 - 11904: 0xCBFB,
+ 22396 - 11904: 0xA95C,
+ 22397 - 11904: 0xCC41,
+ 22398 - 11904: 0x98A5,
+ 22399 - 11904: 0x92E8,
+ 22400 - 11904: 0xCBF9,
+ 22402 - 11904: 0xABAB,
+ 22403 - 11904: 0xA955,
+ 22408 - 11904: 0x9BBC,
+ 22410 - 11904: 0x96F3,
+ 22411 - 11904: 0xABAC,
+ 22412 - 11904: 0xCE54,
+ 22413 - 11904: 0x92E7,
+ 22415 - 11904: 0xCE5A,
+ 22416 - 11904: 0xFC67,
+ 22419 - 11904: 0xABB2,
+ 22420 - 11904: 0xCE58,
+ 22421 - 11904: 0xCE5E,
+ 22423 - 11904: 0xCE55,
+ 22424 - 11904: 0xCE59,
+ 22425 - 11904: 0xCE5B,
+ 22426 - 11904: 0xCE5D,
+ 22427 - 11904: 0xCE57,
+ 22428 - 11904: 0x8B7D,
+ 22429 - 11904: 0xCE56,
+ 22430 - 11904: 0xCE51,
+ 22431 - 11904: 0xCE52,
+ 22432 - 11904: 0xABAD,
+ 22433 - 11904: 0x9BF4,
+ 22434 - 11904: 0xABAF,
+ 22435 - 11904: 0xABAE,
+ 22436 - 11904: 0xCE53,
+ 22437 - 11904: 0xCE5C,
+ 22439 - 11904: 0x9EF7,
+ 22442 - 11904: 0x9EC1,
+ 22446 - 11904: 0xABB1,
+ 22451 - 11904: 0x87C3,
+ 22452 - 11904: 0x996F,
+ 22453 - 11904: 0xCE50,
+ 22454 - 11904: 0xD153,
+ 22456 - 11904: 0xD152,
+ 22457 - 11904: 0xD157,
+ 22458 - 11904: 0xD14E,
+ 22459 - 11904: 0x96F1,
+ 22460 - 11904: 0xD151,
+ 22461 - 11904: 0xD150,
+ 22462 - 11904: 0x8E41,
+ 22463 - 11904: 0xD154,
+ 22465 - 11904: 0xD158,
+ 22466 - 11904: 0xAE47,
+ 22467 - 11904: 0xAE4A,
+ 22468 - 11904: 0x954A,
+ 22470 - 11904: 0xD14F,
+ 22471 - 11904: 0xD155,
+ 22472 - 11904: 0x97E6,
+ 22475 - 11904: 0xAE49,
+ 22476 - 11904: 0xD14A,
+ 22478 - 11904: 0xABB0,
+ 22479 - 11904: 0xD4BA,
+ 22480 - 11904: 0xD156,
+ 22482 - 11904: 0xD14D,
+ 22484 - 11904: 0xAE48,
+ 22485 - 11904: 0xD14C,
+ 22487 - 11904: 0x96F5,
+ 22492 - 11904: 0xD4B1,
+ 22493 - 11904: 0x92E6,
+ 22494 - 11904: 0x9F42,
+ 22495 - 11904: 0xB0EC,
+ 22496 - 11904: 0xB0F0,
+ 22497 - 11904: 0xD4C1,
+ 22498 - 11904: 0xD4AF,
+ 22499 - 11904: 0xD4BD,
+ 22500 - 11904: 0xB0F1,
+ 22501 - 11904: 0xD4BF,
+ 22502 - 11904: 0xFB67,
+ 22503 - 11904: 0xD4C5,
+ 22505 - 11904: 0xD4C9,
+ 22508 - 11904: 0xD4C0,
+ 22509 - 11904: 0xD4B4,
+ 22510 - 11904: 0xD4BC,
+ 22511 - 11904: 0x99A9,
+ 22512 - 11904: 0xD4CA,
+ 22513 - 11904: 0xD4C8,
+ 22514 - 11904: 0xD4BE,
+ 22515 - 11904: 0xD4B9,
+ 22516 - 11904: 0xD4B2,
+ 22517 - 11904: 0xD8A6,
+ 22518 - 11904: 0xD4B0,
+ 22519 - 11904: 0xB0F5,
+ 22520 - 11904: 0xD4B7,
+ 22521 - 11904: 0xB0F6,
+ 22522 - 11904: 0xB0F2,
+ 22523 - 11904: 0xD4AD,
+ 22524 - 11904: 0xD4C3,
+ 22525 - 11904: 0xD4B5,
+ 22526 - 11904: 0xFAE6,
+ 22528 - 11904: 0xD4B3,
+ 22529 - 11904: 0xD4C6,
+ 22530 - 11904: 0xB0F3,
+ 22531 - 11904: 0xFB69,
+ 22532 - 11904: 0xD4CC,
+ 22533 - 11904: 0xB0ED,
+ 22534 - 11904: 0xB0EF,
+ 22535 - 11904: 0xD4BB,
+ 22536 - 11904: 0xD4B6,
+ 22537 - 11904: 0xAE4B,
+ 22538 - 11904: 0xB0EE,
+ 22539 - 11904: 0xD4B8,
+ 22540 - 11904: 0xD4C7,
+ 22541 - 11904: 0xD4CB,
+ 22542 - 11904: 0xD4C2,
+ 22544 - 11904: 0xD4C4,
+ 22546 - 11904: 0x97E5,
+ 22548 - 11904: 0xD4AE,
+ 22552 - 11904: 0x87C8,
+ 22553 - 11904: 0xD8A1,
+ 22555 - 11904: 0xD8AA,
+ 22556 - 11904: 0xD8A9,
+ 22557 - 11904: 0xB3FA,
+ 22558 - 11904: 0xD8A2,
+ 22560 - 11904: 0xB3FB,
+ 22561 - 11904: 0xB3F9,
+ 22562 - 11904: 0x967D,
+ 22563 - 11904: 0xD8A4,
+ 22564 - 11904: 0xB3F6,
+ 22565 - 11904: 0xD8A8,
+ 22566 - 11904: 0xFB6C,
+ 22567 - 11904: 0xD8A3,
+ 22568 - 11904: 0xD8A5,
+ 22569 - 11904: 0xD87D,
+ 22570 - 11904: 0xB3F4,
+ 22572 - 11904: 0xD8B2,
+ 22573 - 11904: 0xD8B1,
+ 22574 - 11904: 0xD8AE,
+ 22575 - 11904: 0xB3F3,
+ 22576 - 11904: 0xB3F7,
+ 22577 - 11904: 0xB3F8,
+ 22578 - 11904: 0xD14B,
+ 22579 - 11904: 0xD8AB,
+ 22580 - 11904: 0xB3F5,
+ 22581 - 11904: 0xB0F4,
+ 22582 - 11904: 0xD8AD,
+ 22583 - 11904: 0xD87E,
+ 22584 - 11904: 0xD8B0,
+ 22585 - 11904: 0xD8AF,
+ 22586 - 11904: 0x99A2,
+ 22587 - 11904: 0xD8B3,
+ 22589 - 11904: 0xDCEF,
+ 22591 - 11904: 0xD8AC,
+ 22592 - 11904: 0x9ABB,
+ 22596 - 11904: 0x9A65,
+ 22599 - 11904: 0x944E,
+ 22600 - 11904: 0xD8A7,
+ 22601 - 11904: 0xDCE7,
+ 22602 - 11904: 0xB6F4,
+ 22603 - 11904: 0xB6F7,
+ 22604 - 11904: 0xB6F2,
+ 22605 - 11904: 0xDCE6,
+ 22606 - 11904: 0xDCEA,
+ 22607 - 11904: 0xDCE5,
+ 22609 - 11904: 0xB6EC,
+ 22610 - 11904: 0xB6F6,
+ 22611 - 11904: 0xDCE2,
+ 22612 - 11904: 0xB6F0,
+ 22613 - 11904: 0xDCE9,
+ 22615 - 11904: 0xB6EE,
+ 22616 - 11904: 0xB6ED,
+ 22617 - 11904: 0xDCEC,
+ 22618 - 11904: 0xB6EF,
+ 22619 - 11904: 0xDCEE,
+ 22620 - 11904: 0xFB6E,
+ 22621 - 11904: 0xDCEB,
+ 22622 - 11904: 0xB6EB,
+ 22623 - 11904: 0x99DF,
+ 22626 - 11904: 0xB6F5,
+ 22627 - 11904: 0xDCF0,
+ 22628 - 11904: 0xDCE4,
+ 22629 - 11904: 0xDCED,
+ 22632 - 11904: 0xDCE3,
+ 22633 - 11904: 0x98E3,
+ 22635 - 11904: 0xB6F1,
+ 22636 - 11904: 0x9254,
+ 22637 - 11904: 0xB6F3,
+ 22639 - 11904: 0xDCE8,
+ 22641 - 11904: 0xDCF1,
+ 22642 - 11904: 0x967B,
+ 22643 - 11904: 0x8AAF,
+ 22644 - 11904: 0xE15D,
+ 22645 - 11904: 0xB9D0,
+ 22646 - 11904: 0xE163,
+ 22649 - 11904: 0xB9D5,
+ 22650 - 11904: 0xE15F,
+ 22651 - 11904: 0xE166,
+ 22652 - 11904: 0xE157,
+ 22653 - 11904: 0xB9D7,
+ 22654 - 11904: 0xB9D1,
+ 22655 - 11904: 0xE15C,
+ 22656 - 11904: 0xBC55,
+ 22657 - 11904: 0xE15B,
+ 22658 - 11904: 0xE164,
+ 22659 - 11904: 0xB9D2,
+ 22661 - 11904: 0xB9D6,
+ 22662 - 11904: 0xE15A,
+ 22663 - 11904: 0xE160,
+ 22664 - 11904: 0xE165,
+ 22665 - 11904: 0xE156,
+ 22666 - 11904: 0xB9D4,
+ 22667 - 11904: 0xE15E,
+ 22670 - 11904: 0xE162,
+ 22671 - 11904: 0xE168,
+ 22672 - 11904: 0xE158,
+ 22673 - 11904: 0xE161,
+ 22674 - 11904: 0x8C77,
+ 22675 - 11904: 0xB9D3,
+ 22676 - 11904: 0xE167,
+ 22678 - 11904: 0x87B0,
+ 22680 - 11904: 0xE159,
+ 22681 - 11904: 0x8BAF,
+ 22682 - 11904: 0x9EBD,
+ 22684 - 11904: 0xBC59,
+ 22685 - 11904: 0xE54B,
+ 22686 - 11904: 0xBC57,
+ 22687 - 11904: 0xBC56,
+ 22688 - 11904: 0xE54D,
+ 22689 - 11904: 0xE552,
+ 22691 - 11904: 0xE54E,
+ 22693 - 11904: 0xE551,
+ 22694 - 11904: 0xBC5C,
+ 22695 - 11904: 0x9EE6,
+ 22696 - 11904: 0xBEA5,
+ 22697 - 11904: 0xBC5B,
+ 22698 - 11904: 0xFB6F,
+ 22699 - 11904: 0xE54A,
+ 22700 - 11904: 0xE550,
+ 22702 - 11904: 0xBC5A,
+ 22703 - 11904: 0xE54F,
+ 22704 - 11904: 0x8EE1,
+ 22705 - 11904: 0xE54C,
+ 22707 - 11904: 0xBC58,
+ 22709 - 11904: 0x9B7D,
+ 22710 - 11904: 0x9C7E,
+ 22714 - 11904: 0xE94D,
+ 22715 - 11904: 0xF9D9,
+ 22716 - 11904: 0xE94F,
+ 22717 - 11904: 0xE94A,
+ 22718 - 11904: 0xBEC1,
+ 22719 - 11904: 0xE94C,
+ 22721 - 11904: 0xBEC0,
+ 22722 - 11904: 0xE94E,
+ 22725 - 11904: 0xBEC3,
+ 22726 - 11904: 0xE950,
+ 22727 - 11904: 0xBEC2,
+ 22728 - 11904: 0xE949,
+ 22729 - 11904: 0xE94B,
+ 22731 - 11904: 0x92EA,
+ 22734 - 11904: 0xC0A5,
+ 22735 - 11904: 0xECCC,
+ 22736 - 11904: 0x8C78,
+ 22737 - 11904: 0xC0A4,
+ 22738 - 11904: 0xECCD,
+ 22739 - 11904: 0xC0A3,
+ 22740 - 11904: 0xECCB,
+ 22741 - 11904: 0xC0A2,
+ 22742 - 11904: 0xECCA,
+ 22744 - 11904: 0xC253,
+ 22745 - 11904: 0xC252,
+ 22746 - 11904: 0xF1F6,
+ 22747 - 11904: 0xF1F8,
+ 22748 - 11904: 0xFB72,
+ 22749 - 11904: 0xF1F7,
+ 22750 - 11904: 0xC361,
+ 22751 - 11904: 0xC362,
+ 22752 - 11904: 0xFB71,
+ 22754 - 11904: 0xC363,
+ 22755 - 11904: 0xF442,
+ 22756 - 11904: 0xC45B,
+ 22759 - 11904: 0xF7D3,
+ 22760 - 11904: 0xF7D2,
+ 22761 - 11904: 0xC5F2,
+ 22763 - 11904: 0xA468,
+ 22764 - 11904: 0xA4D0,
+ 22767 - 11904: 0xA7A7,
+ 22768 - 11904: 0x895C,
+ 22770 - 11904: 0x98F0,
+ 22771 - 11904: 0x96F2,
+ 22772 - 11904: 0xCE5F,
+ 22777 - 11904: 0xB3FC,
+ 22778 - 11904: 0xB3FD,
+ 22779 - 11904: 0xFB74,
+ 22780 - 11904: 0xDCF2,
+ 22781 - 11904: 0xB9D8,
+ 22782 - 11904: 0xE169,
+ 22783 - 11904: 0xE553,
+ 22786 - 11904: 0x8BC1,
+ 22787 - 11904: 0xC95A,
+ 22788 - 11904: 0x895D,
+ 22789 - 11904: 0x89DE,
+ 22790 - 11904: 0xCAB0,
+ 22791 - 11904: 0x895E,
+ 22794 - 11904: 0xC6CA,
+ 22796 - 11904: 0xCC42,
+ 22797 - 11904: 0xCE60,
+ 22798 - 11904: 0xD159,
+ 22799 - 11904: 0xAE4C,
+ 22801 - 11904: 0xFE42,
+ 22802 - 11904: 0xF1F9,
+ 22804 - 11904: 0xC4DC,
+ 22805 - 11904: 0xA469,
+ 22806 - 11904: 0xA57E,
+ 22807 - 11904: 0xC970,
+ 22809 - 11904: 0xA667,
+ 22810 - 11904: 0xA668,
+ 22812 - 11904: 0xA95D,
+ 22813 - 11904: 0x8768,
+ 22815 - 11904: 0xFB7B,
+ 22816 - 11904: 0xB0F7,
+ 22818 - 11904: 0xB9DA,
+ 22820 - 11904: 0xB9DB,
+ 22821 - 11904: 0xB9D9,
+ 22823 - 11904: 0xA46A,
+ 22825 - 11904: 0xA4D1,
+ 22826 - 11904: 0xA4D3,
+ 22827 - 11904: 0xA4D2,
+ 22828 - 11904: 0xC95B,
+ 22829 - 11904: 0xA4D4,
+ 22830 - 11904: 0xA5A1,
+ 22831 - 11904: 0xC971,
+ 22833 - 11904: 0xA5A2,
+ 22834 - 11904: 0x895F,
+ 22836 - 11904: 0x8960,
+ 22839 - 11904: 0xA669,
+ 22840 - 11904: 0xA66A,
+ 22844 - 11904: 0xC9CB,
+ 22846 - 11904: 0xA7A8,
+ 22848 - 11904: 0xCAB1,
+ 22852 - 11904: 0xA961,
+ 22853 - 11904: 0xCC43,
+ 22855 - 11904: 0xA95F,
+ 22856 - 11904: 0xA960,
+ 22857 - 11904: 0xA95E,
+ 22858 - 11904: 0xD15A,
+ 22862 - 11904: 0xABB6,
+ 22863 - 11904: 0xABB5,
+ 22864 - 11904: 0xABB7,
+ 22865 - 11904: 0xABB4,
+ 22867 - 11904: 0xCE61,
+ 22868 - 11904: 0xA962,
+ 22869 - 11904: 0xABB3,
+ 22871 - 11904: 0xAE4D,
+ 22872 - 11904: 0xAE4E,
+ 22874 - 11904: 0xAE4F,
+ 22876 - 11904: 0xD4CD,
+ 22880 - 11904: 0xB3FE,
+ 22881 - 11904: 0xD8B4,
+ 22882 - 11904: 0xB0F8,
+ 22885 - 11904: 0x9BCD,
+ 22887 - 11904: 0xB6F8,
+ 22889 - 11904: 0xB9DD,
+ 22890 - 11904: 0xB9DC,
+ 22891 - 11904: 0xE16A,
+ 22893 - 11904: 0xBC5D,
+ 22894 - 11904: 0xBEC4,
+ 22896 - 11904: 0xEFC0,
+ 22897 - 11904: 0xF6DA,
+ 22898 - 11904: 0xF7D4,
+ 22899 - 11904: 0xA46B,
+ 22900 - 11904: 0xA5A3,
+ 22901 - 11904: 0x9DD3,
+ 22902 - 11904: 0xA5A4,
+ 22903 - 11904: 0xC9D1,
+ 22904 - 11904: 0xA66C,
+ 22905 - 11904: 0xA66F,
+ 22907 - 11904: 0xC9CF,
+ 22908 - 11904: 0xC9CD,
+ 22909 - 11904: 0xA66E,
+ 22910 - 11904: 0xC9D0,
+ 22911 - 11904: 0xC9D2,
+ 22912 - 11904: 0xC9CC,
+ 22913 - 11904: 0xA671,
+ 22914 - 11904: 0xA670,
+ 22915 - 11904: 0xA66D,
+ 22916 - 11904: 0xA66B,
+ 22917 - 11904: 0xC9CE,
+ 22921 - 11904: 0x984C,
+ 22922 - 11904: 0xA7B3,
+ 22925 - 11904: 0xA7B0,
+ 22926 - 11904: 0xCAB6,
+ 22927 - 11904: 0xCAB9,
+ 22928 - 11904: 0xCAB8,
+ 22930 - 11904: 0xA7AA,
+ 22931 - 11904: 0xA7B2,
+ 22932 - 11904: 0x9752,
+ 22934 - 11904: 0xA7AF,
+ 22935 - 11904: 0xCAB5,
+ 22936 - 11904: 0xCAB3,
+ 22937 - 11904: 0xA7AE,
+ 22938 - 11904: 0x95C3,
+ 22941 - 11904: 0xA7A9,
+ 22942 - 11904: 0xA7AC,
+ 22943 - 11904: 0x9BB6,
+ 22944 - 11904: 0xCAB4,
+ 22945 - 11904: 0xCABB,
+ 22946 - 11904: 0xCAB7,
+ 22947 - 11904: 0xA7AD,
+ 22948 - 11904: 0xA7B1,
+ 22949 - 11904: 0xA7B4,
+ 22950 - 11904: 0xCAB2,
+ 22951 - 11904: 0xCABA,
+ 22952 - 11904: 0xA7AB,
+ 22956 - 11904: 0x9AB9,
+ 22958 - 11904: 0xA967,
+ 22959 - 11904: 0xA96F,
+ 22960 - 11904: 0x97B3,
+ 22961 - 11904: 0xCC4F,
+ 22962 - 11904: 0xCC48,
+ 22963 - 11904: 0xA970,
+ 22964 - 11904: 0xCC53,
+ 22965 - 11904: 0xCC44,
+ 22966 - 11904: 0xCC4B,
+ 22967 - 11904: 0x9F74,
+ 22968 - 11904: 0x92F1,
+ 22969 - 11904: 0xA966,
+ 22970 - 11904: 0xCC45,
+ 22971 - 11904: 0xA964,
+ 22972 - 11904: 0xCC4C,
+ 22973 - 11904: 0xCC50,
+ 22974 - 11904: 0xA963,
+ 22975 - 11904: 0x8CFA,
+ 22976 - 11904: 0xCC51,
+ 22977 - 11904: 0xCC4A,
+ 22979 - 11904: 0xCC4D,
+ 22980 - 11904: 0x97DF,
+ 22981 - 11904: 0xA972,
+ 22982 - 11904: 0xA969,
+ 22983 - 11904: 0xCC54,
+ 22984 - 11904: 0xCC52,
+ 22985 - 11904: 0xFBA6,
+ 22986 - 11904: 0xA96E,
+ 22987 - 11904: 0xA96C,
+ 22988 - 11904: 0xCC49,
+ 22989 - 11904: 0xA96B,
+ 22990 - 11904: 0xCC47,
+ 22991 - 11904: 0xCC46,
+ 22992 - 11904: 0xA96A,
+ 22993 - 11904: 0xA968,
+ 22994 - 11904: 0xA971,
+ 22995 - 11904: 0xA96D,
+ 22996 - 11904: 0xA965,
+ 22998 - 11904: 0xCC4E,
+ 23000 - 11904: 0xABB9,
+ 23001 - 11904: 0xFBAB,
+ 23002 - 11904: 0xABC0,
+ 23003 - 11904: 0xCE6F,
+ 23004 - 11904: 0xABB8,
+ 23005 - 11904: 0xCE67,
+ 23006 - 11904: 0xCE63,
+ 23008 - 11904: 0xCE73,
+ 23009 - 11904: 0xCE62,
+ 23011 - 11904: 0xABBB,
+ 23012 - 11904: 0xCE6C,
+ 23013 - 11904: 0xABBE,
+ 23014 - 11904: 0xABC1,
+ 23016 - 11904: 0xABBC,
+ 23017 - 11904: 0xCE70,
+ 23018 - 11904: 0xABBF,
+ 23019 - 11904: 0x9877,
+ 23020 - 11904: 0xAE56,
+ 23021 - 11904: 0xCE76,
+ 23022 - 11904: 0xCE64,
+ 23023 - 11904: 0x9854,
+ 23024 - 11904: 0x95C5,
+ 23025 - 11904: 0xCE66,
+ 23026 - 11904: 0xCE6D,
+ 23027 - 11904: 0xCE71,
+ 23028 - 11904: 0xCE75,
+ 23029 - 11904: 0xCE72,
+ 23030 - 11904: 0xCE6B,
+ 23031 - 11904: 0xCE6E,
+ 23032 - 11904: 0x9D55,
+ 23033 - 11904: 0xFBB2,
+ 23034 - 11904: 0xCE68,
+ 23035 - 11904: 0xABC3,
+ 23036 - 11904: 0xCE6A,
+ 23037 - 11904: 0xCE69,
+ 23038 - 11904: 0xCE74,
+ 23039 - 11904: 0xABBA,
+ 23040 - 11904: 0xCE65,
+ 23041 - 11904: 0xABC2,
+ 23042 - 11904: 0x957E,
+ 23043 - 11904: 0xABBD,
+ 23049 - 11904: 0xAE5C,
+ 23050 - 11904: 0xD162,
+ 23051 - 11904: 0x9742,
+ 23052 - 11904: 0xAE5B,
+ 23053 - 11904: 0x94E6,
+ 23055 - 11904: 0xD160,
+ 23057 - 11904: 0xAE50,
+ 23058 - 11904: 0x92F5,
+ 23059 - 11904: 0xAE55,
+ 23061 - 11904: 0xD15F,
+ 23062 - 11904: 0xD15C,
+ 23063 - 11904: 0xD161,
+ 23064 - 11904: 0xAE51,
+ 23065 - 11904: 0xD15B,
+ 23066 - 11904: 0x8CC5,
+ 23067 - 11904: 0xAE54,
+ 23068 - 11904: 0xAE52,
+ 23070 - 11904: 0xD163,
+ 23071 - 11904: 0xAE53,
+ 23072 - 11904: 0xAE57,
+ 23073 - 11904: 0x92FD,
+ 23075 - 11904: 0xAE58,
+ 23076 - 11904: 0xFBA2,
+ 23077 - 11904: 0xAE5A,
+ 23079 - 11904: 0x9C51,
+ 23081 - 11904: 0xAE59,
+ 23082 - 11904: 0x94E9,
+ 23083 - 11904: 0x985C,
+ 23084 - 11904: 0x92F0,
+ 23085 - 11904: 0xD15D,
+ 23086 - 11904: 0xD15E,
+ 23091 - 11904: 0xD164,
+ 23093 - 11904: 0xD4D4,
+ 23094 - 11904: 0xB0F9,
+ 23095 - 11904: 0xD8C2,
+ 23096 - 11904: 0xD4D3,
+ 23097 - 11904: 0xD4E6,
+ 23100 - 11904: 0xB140,
+ 23101 - 11904: 0x944C,
+ 23102 - 11904: 0xD4E4,
+ 23104 - 11904: 0xB0FE,
+ 23105 - 11904: 0xB0FA,
+ 23106 - 11904: 0xD4ED,
+ 23107 - 11904: 0xD4DD,
+ 23108 - 11904: 0xD4E0,
+ 23109 - 11904: 0x916B,
+ 23110 - 11904: 0xB143,
+ 23111 - 11904: 0xD4EA,
+ 23112 - 11904: 0xD4E2,
+ 23113 - 11904: 0xB0FB,
+ 23114 - 11904: 0xB144,
+ 23116 - 11904: 0xD4E7,
+ 23117 - 11904: 0xD4E5,
+ 23120 - 11904: 0xD4D6,
+ 23121 - 11904: 0xD4EB,
+ 23122 - 11904: 0xD4DF,
+ 23123 - 11904: 0xD4DA,
+ 23124 - 11904: 0x8B78,
+ 23125 - 11904: 0xD4D0,
+ 23126 - 11904: 0xD4EC,
+ 23127 - 11904: 0xD4DC,
+ 23128 - 11904: 0xD4CF,
+ 23129 - 11904: 0x94E2,
+ 23130 - 11904: 0xB142,
+ 23131 - 11904: 0xD4E1,
+ 23132 - 11904: 0xD4EE,
+ 23133 - 11904: 0xD4DE,
+ 23134 - 11904: 0xD4D2,
+ 23135 - 11904: 0xD4D7,
+ 23136 - 11904: 0xD4CE,
+ 23137 - 11904: 0x984F,
+ 23138 - 11904: 0xB141,
+ 23139 - 11904: 0xFBB5,
+ 23140 - 11904: 0xD4DB,
+ 23141 - 11904: 0xD4D8,
+ 23142 - 11904: 0xB0FC,
+ 23143 - 11904: 0xD4D1,
+ 23144 - 11904: 0x9271,
+ 23145 - 11904: 0xD4E9,
+ 23146 - 11904: 0xB0FD,
+ 23147 - 11904: 0x9365,
+ 23148 - 11904: 0xD4D9,
+ 23149 - 11904: 0xD4D5,
+ 23150 - 11904: 0x985B,
+ 23152 - 11904: 0xD4E8,
+ 23153 - 11904: 0x9850,
+ 23159 - 11904: 0xFBB8,
+ 23160 - 11904: 0xD8BB,
+ 23161 - 11904: 0x97BC,
+ 23162 - 11904: 0xD8B8,
+ 23163 - 11904: 0xD8C9,
+ 23164 - 11904: 0xD8BD,
+ 23165 - 11904: 0xD8CA,
+ 23166 - 11904: 0x92F3,
+ 23167 - 11904: 0xB442,
+ 23169 - 11904: 0x9340,
+ 23170 - 11904: 0x984D,
+ 23171 - 11904: 0xD8C6,
+ 23172 - 11904: 0xD8C3,
+ 23174 - 11904: 0x9572,
+ 23176 - 11904: 0xFDEF,
+ 23178 - 11904: 0xD8C4,
+ 23179 - 11904: 0xD8C7,
+ 23180 - 11904: 0xD8CB,
+ 23182 - 11904: 0xD4E3,
+ 23183 - 11904: 0xD8CD,
+ 23184 - 11904: 0xDD47,
+ 23185 - 11904: 0xFDC1,
+ 23186 - 11904: 0xB443,
+ 23187 - 11904: 0xD8CE,
+ 23188 - 11904: 0xD8B6,
+ 23189 - 11904: 0xD8C0,
+ 23190 - 11904: 0xFBBA,
+ 23191 - 11904: 0xD8C5,
+ 23193 - 11904: 0x92EB,
+ 23194 - 11904: 0xB441,
+ 23195 - 11904: 0xB444,
+ 23196 - 11904: 0xD8CC,
+ 23197 - 11904: 0xD8CF,
+ 23198 - 11904: 0xD8BA,
+ 23199 - 11904: 0xD8B7,
+ 23200 - 11904: 0xFC73,
+ 23201 - 11904: 0x97B7,
+ 23202 - 11904: 0xD8B9,
+ 23204 - 11904: 0x876F,
+ 23205 - 11904: 0xD8BE,
+ 23206 - 11904: 0xD8BC,
+ 23207 - 11904: 0xB445,
+ 23209 - 11904: 0xD8C8,
+ 23211 - 11904: 0xFBB4,
+ 23212 - 11904: 0xD8BF,
+ 23214 - 11904: 0xD8C1,
+ 23215 - 11904: 0xD8B5,
+ 23216 - 11904: 0xDCFA,
+ 23217 - 11904: 0xDCF8,
+ 23218 - 11904: 0xB742,
+ 23219 - 11904: 0xB740,
+ 23220 - 11904: 0xDD43,
+ 23221 - 11904: 0xDCF9,
+ 23222 - 11904: 0xDD44,
+ 23223 - 11904: 0xDD40,
+ 23224 - 11904: 0xDCF7,
+ 23225 - 11904: 0xDD46,
+ 23226 - 11904: 0xDCF6,
+ 23227 - 11904: 0xDCFD,
+ 23228 - 11904: 0xB6FE,
+ 23229 - 11904: 0xB6FD,
+ 23230 - 11904: 0xB6FC,
+ 23231 - 11904: 0xDCFB,
+ 23232 - 11904: 0xDD41,
+ 23233 - 11904: 0xB6F9,
+ 23234 - 11904: 0xB741,
+ 23235 - 11904: 0x90A7,
+ 23236 - 11904: 0xDCF4,
+ 23238 - 11904: 0xDCFE,
+ 23239 - 11904: 0xDCF3,
+ 23240 - 11904: 0xDCFC,
+ 23241 - 11904: 0xB6FA,
+ 23242 - 11904: 0xDD42,
+ 23243 - 11904: 0xDCF5,
+ 23244 - 11904: 0xB6FB,
+ 23245 - 11904: 0xDD45,
+ 23246 - 11904: 0x9741,
+ 23247 - 11904: 0x92F4,
+ 23249 - 11904: 0x8772,
+ 23251 - 11904: 0xFBBC,
+ 23253 - 11904: 0xE16E,
+ 23254 - 11904: 0xB9E2,
+ 23255 - 11904: 0xB9E1,
+ 23256 - 11904: 0xB9E3,
+ 23257 - 11904: 0xE17A,
+ 23258 - 11904: 0xE170,
+ 23259 - 11904: 0xE176,
+ 23260 - 11904: 0xE16B,
+ 23261 - 11904: 0xE179,
+ 23262 - 11904: 0xE178,
+ 23263 - 11904: 0xE17C,
+ 23264 - 11904: 0xE175,
+ 23265 - 11904: 0xB9DE,
+ 23266 - 11904: 0xE174,
+ 23267 - 11904: 0xB9E4,
+ 23268 - 11904: 0x9577,
+ 23269 - 11904: 0xE16D,
+ 23270 - 11904: 0xB9DF,
+ 23272 - 11904: 0xE17B,
+ 23273 - 11904: 0xB9E0,
+ 23274 - 11904: 0xE16F,
+ 23275 - 11904: 0xE172,
+ 23276 - 11904: 0xE177,
+ 23277 - 11904: 0xE171,
+ 23278 - 11904: 0xE16C,
+ 23280 - 11904: 0x9EE2,
+ 23282 - 11904: 0x8F78,
+ 23283 - 11904: 0xE173,
+ 23284 - 11904: 0xE555,
+ 23285 - 11904: 0xBC61,
+ 23286 - 11904: 0xE558,
+ 23287 - 11904: 0xE557,
+ 23288 - 11904: 0xE55A,
+ 23289 - 11904: 0xE55C,
+ 23290 - 11904: 0xF9DC,
+ 23291 - 11904: 0xBC5F,
+ 23293 - 11904: 0xE556,
+ 23294 - 11904: 0x9672,
+ 23295 - 11904: 0xE554,
+ 23297 - 11904: 0xE55D,
+ 23298 - 11904: 0xE55B,
+ 23299 - 11904: 0xE559,
+ 23301 - 11904: 0xE55F,
+ 23303 - 11904: 0xE55E,
+ 23304 - 11904: 0xBC63,
+ 23305 - 11904: 0xBC5E,
+ 23307 - 11904: 0xBC60,
+ 23308 - 11904: 0xBC62,
+ 23309 - 11904: 0x9EB5,
+ 23311 - 11904: 0xE560,
+ 23312 - 11904: 0xE957,
+ 23313 - 11904: 0x964B,
+ 23315 - 11904: 0xE956,
+ 23316 - 11904: 0xE955,
+ 23317 - 11904: 0x8CAC,
+ 23318 - 11904: 0xE958,
+ 23319 - 11904: 0xE951,
+ 23321 - 11904: 0xE952,
+ 23322 - 11904: 0xE95A,
+ 23323 - 11904: 0xE953,
+ 23325 - 11904: 0xBEC5,
+ 23326 - 11904: 0xE95C,
+ 23327 - 11904: 0xA0FA,
+ 23328 - 11904: 0xE95B,
+ 23329 - 11904: 0xE954,
+ 23331 - 11904: 0xECD1,
+ 23332 - 11904: 0xC0A8,
+ 23333 - 11904: 0xECCF,
+ 23334 - 11904: 0xECD4,
+ 23335 - 11904: 0xECD3,
+ 23336 - 11904: 0xE959,
+ 23338 - 11904: 0xC0A7,
+ 23339 - 11904: 0x9575,
+ 23340 - 11904: 0xECD2,
+ 23341 - 11904: 0xECCE,
+ 23342 - 11904: 0xECD6,
+ 23343 - 11904: 0xECD5,
+ 23344 - 11904: 0xC0A6,
+ 23346 - 11904: 0xECD0,
+ 23348 - 11904: 0xBEC6,
+ 23352 - 11904: 0xC254,
+ 23356 - 11904: 0xEFC1,
+ 23357 - 11904: 0xF1FA,
+ 23358 - 11904: 0xF1FB,
+ 23359 - 11904: 0xF1FC,
+ 23360 - 11904: 0xC45C,
+ 23361 - 11904: 0x90DA,
+ 23363 - 11904: 0xC45D,
+ 23364 - 11904: 0x9367,
+ 23365 - 11904: 0xF443,
+ 23366 - 11904: 0xFEA4,
+ 23367 - 11904: 0xF5C8,
+ 23368 - 11904: 0xF5C7,
+ 23370 - 11904: 0x90DF,
+ 23371 - 11904: 0xF6DB,
+ 23372 - 11904: 0xF6DC,
+ 23373 - 11904: 0xF7D5,
+ 23374 - 11904: 0xF8A7,
+ 23375 - 11904: 0x9354,
+ 23376 - 11904: 0xA46C,
+ 23377 - 11904: 0xA46D,
+ 23379 - 11904: 0xA46E,
+ 23380 - 11904: 0xA4D5,
+ 23381 - 11904: 0xA5A5,
+ 23382 - 11904: 0xC9D3,
+ 23383 - 11904: 0xA672,
+ 23384 - 11904: 0xA673,
+ 23386 - 11904: 0xA7B7,
+ 23387 - 11904: 0xA7B8,
+ 23388 - 11904: 0xA7B6,
+ 23389 - 11904: 0xA7B5,
+ 23391 - 11904: 0xA973,
+ 23394 - 11904: 0xCC55,
+ 23395 - 11904: 0xA975,
+ 23396 - 11904: 0xA974,
+ 23397 - 11904: 0xCC56,
+ 23398 - 11904: 0x8961,
+ 23400 - 11904: 0x8BB4,
+ 23401 - 11904: 0xABC4,
+ 23403 - 11904: 0xAE5D,
+ 23404 - 11904: 0xD165,
+ 23405 - 11904: 0x9DC0,
+ 23406 - 11904: 0xD4F0,
+ 23408 - 11904: 0xB145,
+ 23409 - 11904: 0xB447,
+ 23410 - 11904: 0xD4EF,
+ 23411 - 11904: 0xB446,
+ 23412 - 11904: 0x8E48,
+ 23413 - 11904: 0xB9E5,
+ 23414 - 11904: 0xFBC5,
+ 23415 - 11904: 0xE17D,
+ 23416 - 11904: 0xBEC7,
+ 23418 - 11904: 0xC0A9,
+ 23419 - 11904: 0xECD7,
+ 23420 - 11904: 0xFBC7,
+ 23421 - 11904: 0xC45E,
+ 23423 - 11904: 0xC570,
+ 23424 - 11904: 0xC6CB,
+ 23425 - 11904: 0xC972,
+ 23426 - 11904: 0xFA79,
+ 23427 - 11904: 0xA5A6,
+ 23428 - 11904: 0xC973,
+ 23429 - 11904: 0xA676,
+ 23431 - 11904: 0xA674,
+ 23432 - 11904: 0xA675,
+ 23433 - 11904: 0xA677,
+ 23435 - 11904: 0xA7BA,
+ 23436 - 11904: 0xA7B9,
+ 23438 - 11904: 0xCABC,
+ 23439 - 11904: 0xA7BB,
+ 23440 - 11904: 0x9E67,
+ 23442 - 11904: 0xCABD,
+ 23443 - 11904: 0xCC57,
+ 23445 - 11904: 0xCC58,
+ 23446 - 11904: 0x8CD9,
+ 23447 - 11904: 0xA976,
+ 23448 - 11904: 0xA978,
+ 23449 - 11904: 0xA97A,
+ 23450 - 11904: 0xA977,
+ 23451 - 11904: 0xA97B,
+ 23452 - 11904: 0xA979,
+ 23453 - 11904: 0xFBD2,
+ 23454 - 11904: 0x8962,
+ 23455 - 11904: 0x8963,
+ 23458 - 11904: 0xABC8,
+ 23459 - 11904: 0xABC5,
+ 23460 - 11904: 0xABC7,
+ 23461 - 11904: 0xABC9,
+ 23462 - 11904: 0xABC6,
+ 23463 - 11904: 0xD166,
+ 23464 - 11904: 0xCE77,
+ 23466 - 11904: 0xFC7D,
+ 23468 - 11904: 0xD168,
+ 23469 - 11904: 0xD167,
+ 23470 - 11904: 0xAE63,
+ 23472 - 11904: 0xAE5F,
+ 23475 - 11904: 0xAE60,
+ 23476 - 11904: 0xAE62,
+ 23477 - 11904: 0xAE64,
+ 23478 - 11904: 0xAE61,
+ 23479 - 11904: 0x8773,
+ 23480 - 11904: 0xAE66,
+ 23481 - 11904: 0xAE65,
+ 23487 - 11904: 0xB14A,
+ 23488 - 11904: 0xD4F2,
+ 23489 - 11904: 0xD4F1,
+ 23490 - 11904: 0xB149,
+ 23491 - 11904: 0x9F6B,
+ 23492 - 11904: 0xB148,
+ 23493 - 11904: 0xB147,
+ 23494 - 11904: 0xB14B,
+ 23495 - 11904: 0xB146,
+ 23498 - 11904: 0xD8D5,
+ 23499 - 11904: 0xD8D2,
+ 23500 - 11904: 0xB449,
+ 23501 - 11904: 0xD8D1,
+ 23502 - 11904: 0xD8D6,
+ 23504 - 11904: 0xB44B,
+ 23505 - 11904: 0xD8D4,
+ 23506 - 11904: 0xB448,
+ 23507 - 11904: 0xB44A,
+ 23508 - 11904: 0xD8D3,
+ 23509 - 11904: 0xFBCC,
+ 23510 - 11904: 0xDD48,
+ 23511 - 11904: 0xFEAE,
+ 23512 - 11904: 0xDD49,
+ 23513 - 11904: 0xDD4A,
+ 23515 - 11904: 0x876D,
+ 23518 - 11904: 0xB9E6,
+ 23519 - 11904: 0xB9EE,
+ 23520 - 11904: 0xE17E,
+ 23521 - 11904: 0xB9E8,
+ 23522 - 11904: 0xB9EC,
+ 23523 - 11904: 0xE1A1,
+ 23524 - 11904: 0xB9ED,
+ 23525 - 11904: 0xB9E9,
+ 23526 - 11904: 0xB9EA,
+ 23527 - 11904: 0xB9E7,
+ 23528 - 11904: 0xB9EB,
+ 23529 - 11904: 0xBC66,
+ 23530 - 11904: 0xD8D0,
+ 23531 - 11904: 0xBC67,
+ 23532 - 11904: 0xBC65,
+ 23534 - 11904: 0xBC64,
+ 23535 - 11904: 0xE95D,
+ 23536 - 11904: 0xBEC8,
+ 23537 - 11904: 0xECD8,
+ 23538 - 11904: 0xECD9,
+ 23539 - 11904: 0xFBD1,
+ 23541 - 11904: 0xC364,
+ 23542 - 11904: 0xC45F,
+ 23544 - 11904: 0xA46F,
+ 23546 - 11904: 0xA678,
+ 23551 - 11904: 0xFB75,
+ 23553 - 11904: 0xABCA,
+ 23555 - 11904: 0xD169,
+ 23556 - 11904: 0xAE67,
+ 23557 - 11904: 0xFBD4,
+ 23559 - 11904: 0xB14E,
+ 23560 - 11904: 0xB14D,
+ 23561 - 11904: 0xB14C,
+ 23562 - 11904: 0xB44C,
+ 23563 - 11904: 0xB44D,
+ 23564 - 11904: 0xD8D7,
+ 23565 - 11904: 0xB9EF,
+ 23566 - 11904: 0xBEC9,
+ 23567 - 11904: 0xA470,
+ 23568 - 11904: 0xC95C,
+ 23569 - 11904: 0xA4D6,
+ 23570 - 11904: 0xC974,
+ 23571 - 11904: 0xFBD6,
+ 23572 - 11904: 0xFBD8,
+ 23573 - 11904: 0xC9D4,
+ 23574 - 11904: 0xA679,
+ 23578 - 11904: 0xA97C,
+ 23580 - 11904: 0x8B5D,
+ 23582 - 11904: 0x934C,
+ 23583 - 11904: 0xDD4B,
+ 23584 - 11904: 0x9AE2,
+ 23586 - 11904: 0xA471,
+ 23587 - 11904: 0x8BC9,
+ 23588 - 11904: 0xA4D7,
+ 23589 - 11904: 0xC9D5,
+ 23592 - 11904: 0xCABE,
+ 23594 - 11904: 0xCABF,
+ 23596 - 11904: 0xA7BC,
+ 23600 - 11904: 0xD8D8,
+ 23601 - 11904: 0xB44E,
+ 23603 - 11904: 0xDD4C,
+ 23607 - 11904: 0xC0AA,
+ 23608 - 11904: 0xA472,
+ 23609 - 11904: 0xA4A8,
+ 23610 - 11904: 0xA4D8,
+ 23611 - 11904: 0xC975,
+ 23612 - 11904: 0xA5A7,
+ 23614 - 11904: 0xA7C0,
+ 23615 - 11904: 0xA7BF,
+ 23616 - 11904: 0xA7BD,
+ 23617 - 11904: 0xA7BE,
+ 23620 - 11904: 0xCC59,
+ 23621 - 11904: 0xA97E,
+ 23622 - 11904: 0xA9A1,
+ 23623 - 11904: 0xCC5A,
+ 23624 - 11904: 0xA97D,
+ 23625 - 11904: 0xFBDB,
+ 23626 - 11904: 0x9FC9,
+ 23627 - 11904: 0xABCE,
+ 23628 - 11904: 0xCE78,
+ 23629 - 11904: 0xABCD,
+ 23630 - 11904: 0xABCB,
+ 23631 - 11904: 0xABCC,
+ 23632 - 11904: 0xAE6A,
+ 23633 - 11904: 0xAE68,
+ 23635 - 11904: 0x9F44,
+ 23636 - 11904: 0xD16B,
+ 23637 - 11904: 0xAE69,
+ 23638 - 11904: 0xD16A,
+ 23640 - 11904: 0xAE5E,
+ 23641 - 11904: 0xD4F3,
+ 23644 - 11904: 0xB150,
+ 23645 - 11904: 0xB151,
+ 23646 - 11904: 0x98ED,
+ 23648 - 11904: 0xB14F,
+ 23650 - 11904: 0xB9F0,
+ 23651 - 11904: 0xE1A2,
+ 23652 - 11904: 0xBC68,
+ 23653 - 11904: 0xBC69,
+ 23655 - 11904: 0xE561,
+ 23656 - 11904: 0xC0AB,
+ 23657 - 11904: 0xEFC2,
+ 23658 - 11904: 0xEFC3,
+ 23660 - 11904: 0xC4DD,
+ 23661 - 11904: 0xF8A8,
+ 23662 - 11904: 0xC94B,
+ 23663 - 11904: 0xA4D9,
+ 23665 - 11904: 0xA473,
+ 23667 - 11904: 0xC977,
+ 23668 - 11904: 0xC976,
+ 23672 - 11904: 0x8CE9,
+ 23673 - 11904: 0xA67A,
+ 23674 - 11904: 0xC9D7,
+ 23675 - 11904: 0xC9D8,
+ 23676 - 11904: 0xC9D6,
+ 23678 - 11904: 0xC9D9,
+ 23685 - 11904: 0xFBDD,
+ 23686 - 11904: 0xCAC7,
+ 23688 - 11904: 0xCAC2,
+ 23689 - 11904: 0xCAC4,
+ 23690 - 11904: 0xCAC6,
+ 23691 - 11904: 0xCAC3,
+ 23692 - 11904: 0xA7C4,
+ 23693 - 11904: 0xCAC0,
+ 23695 - 11904: 0xCAC1,
+ 23696 - 11904: 0xA7C1,
+ 23697 - 11904: 0xA7C2,
+ 23698 - 11904: 0xCAC5,
+ 23699 - 11904: 0xCAC8,
+ 23700 - 11904: 0xA7C3,
+ 23701 - 11904: 0xCAC9,
+ 23705 - 11904: 0x8DF2,
+ 23706 - 11904: 0x8964,
+ 23708 - 11904: 0xFDF2,
+ 23709 - 11904: 0xCC68,
+ 23710 - 11904: 0x934D,
+ 23711 - 11904: 0xCC62,
+ 23712 - 11904: 0xCC5D,
+ 23713 - 11904: 0xA9A3,
+ 23714 - 11904: 0xCC65,
+ 23715 - 11904: 0xCC63,
+ 23716 - 11904: 0xCC5C,
+ 23717 - 11904: 0xCC69,
+ 23718 - 11904: 0xCC6C,
+ 23719 - 11904: 0xCC67,
+ 23720 - 11904: 0xCC60,
+ 23721 - 11904: 0xA9A5,
+ 23722 - 11904: 0xCC66,
+ 23723 - 11904: 0xA9A6,
+ 23724 - 11904: 0xCC61,
+ 23725 - 11904: 0xCC64,
+ 23726 - 11904: 0xCC5B,
+ 23727 - 11904: 0xCC5F,
+ 23728 - 11904: 0xCC6B,
+ 23729 - 11904: 0xA9A7,
+ 23731 - 11904: 0xA9A8,
+ 23733 - 11904: 0xCC5E,
+ 23734 - 11904: 0xCC6A,
+ 23735 - 11904: 0xA9A2,
+ 23736 - 11904: 0xA9A4,
+ 23738 - 11904: 0xFBE7,
+ 23745 - 11904: 0xA0F2,
+ 23746 - 11904: 0x9868,
+ 23750 - 11904: 0xCEAB,
+ 23751 - 11904: 0xCEA4,
+ 23752 - 11904: 0xCEAA,
+ 23753 - 11904: 0xCEA3,
+ 23754 - 11904: 0xCEA5,
+ 23755 - 11904: 0xCE7D,
+ 23756 - 11904: 0xCE7B,
+ 23758 - 11904: 0xCEAC,
+ 23759 - 11904: 0xCEA9,
+ 23760 - 11904: 0xCE79,
+ 23761 - 11904: 0x9F58,
+ 23762 - 11904: 0xABD0,
+ 23763 - 11904: 0xCEA7,
+ 23764 - 11904: 0xCEA8,
+ 23765 - 11904: 0x8CE6,
+ 23766 - 11904: 0xCEA6,
+ 23767 - 11904: 0xCE7C,
+ 23768 - 11904: 0xCE7A,
+ 23769 - 11904: 0xABCF,
+ 23770 - 11904: 0xCEA2,
+ 23771 - 11904: 0xCE7E,
+ 23774 - 11904: 0xCEA1,
+ 23775 - 11904: 0xCEAD,
+ 23781 - 11904: 0x8D73,
+ 23784 - 11904: 0xAE6F,
+ 23785 - 11904: 0xFBDE,
+ 23786 - 11904: 0xAE6E,
+ 23788 - 11904: 0xD16C,
+ 23789 - 11904: 0xAE6B,
+ 23790 - 11904: 0xD16E,
+ 23791 - 11904: 0xFBDF,
+ 23792 - 11904: 0xAE70,
+ 23793 - 11904: 0xD16F,
+ 23796 - 11904: 0xAE73,
+ 23797 - 11904: 0x8C48,
+ 23798 - 11904: 0xAE71,
+ 23799 - 11904: 0xD170,
+ 23800 - 11904: 0xCEAE,
+ 23801 - 11904: 0xD172,
+ 23803 - 11904: 0xAE6D,
+ 23804 - 11904: 0x8774,
+ 23805 - 11904: 0xAE6C,
+ 23807 - 11904: 0xD16D,
+ 23808 - 11904: 0xD171,
+ 23809 - 11904: 0xAE72,
+ 23814 - 11904: 0xB153,
+ 23815 - 11904: 0xB152,
+ 23819 - 11904: 0xD4F5,
+ 23820 - 11904: 0xD4F9,
+ 23821 - 11904: 0xD4FB,
+ 23822 - 11904: 0xB154,
+ 23823 - 11904: 0xD4FE,
+ 23824 - 11904: 0xFBE3,
+ 23825 - 11904: 0xB158,
+ 23826 - 11904: 0xD541,
+ 23828 - 11904: 0xB15A,
+ 23829 - 11904: 0x8DA8,
+ 23830 - 11904: 0xB156,
+ 23831 - 11904: 0xB15E,
+ 23832 - 11904: 0xFBE4,
+ 23833 - 11904: 0xB15B,
+ 23834 - 11904: 0xD4F7,
+ 23835 - 11904: 0xB155,
+ 23837 - 11904: 0xD4F6,
+ 23838 - 11904: 0xD4F4,
+ 23839 - 11904: 0xD543,
+ 23840 - 11904: 0xD4F8,
+ 23842 - 11904: 0xB157,
+ 23843 - 11904: 0xD542,
+ 23844 - 11904: 0xB15C,
+ 23845 - 11904: 0xD4FD,
+ 23846 - 11904: 0xD4FC,
+ 23847 - 11904: 0xB15D,
+ 23848 - 11904: 0xD4FA,
+ 23849 - 11904: 0xB159,
+ 23852 - 11904: 0x9C75,
+ 23854 - 11904: 0xD544,
+ 23855 - 11904: 0x9878,
+ 23856 - 11904: 0xD540,
+ 23857 - 11904: 0xD8E7,
+ 23858 - 11904: 0xD8EE,
+ 23859 - 11904: 0xD8E3,
+ 23860 - 11904: 0xB451,
+ 23861 - 11904: 0xD8DF,
+ 23862 - 11904: 0xD8EF,
+ 23863 - 11904: 0xD8D9,
+ 23864 - 11904: 0xD8EC,
+ 23865 - 11904: 0xD8EA,
+ 23866 - 11904: 0xD8E4,
+ 23868 - 11904: 0xD8ED,
+ 23869 - 11904: 0xD8E6,
+ 23870 - 11904: 0x8D60,
+ 23871 - 11904: 0xD8DE,
+ 23872 - 11904: 0xD8F0,
+ 23873 - 11904: 0xD8DC,
+ 23874 - 11904: 0xD8E9,
+ 23875 - 11904: 0xD8DA,
+ 23877 - 11904: 0xD8F1,
+ 23878 - 11904: 0xFBE5,
+ 23879 - 11904: 0xB452,
+ 23880 - 11904: 0x8D61,
+ 23881 - 11904: 0xD8EB,
+ 23882 - 11904: 0xDD4F,
+ 23883 - 11904: 0xD8DD,
+ 23884 - 11904: 0xB44F,
+ 23886 - 11904: 0xD8E1,
+ 23888 - 11904: 0xB450,
+ 23889 - 11904: 0xD8E0,
+ 23890 - 11904: 0xD8E5,
+ 23893 - 11904: 0xD8E2,
+ 23894 - 11904: 0x8D62,
+ 23895 - 11904: 0xA0A1,
+ 23897 - 11904: 0xD8E8,
+ 23899 - 11904: 0x9C40,
+ 23902 - 11904: 0xDD53,
+ 23906 - 11904: 0xDD56,
+ 23907 - 11904: 0xDD4E,
+ 23909 - 11904: 0xDD50,
+ 23911 - 11904: 0xDD55,
+ 23912 - 11904: 0xDD54,
+ 23913 - 11904: 0xB743,
+ 23915 - 11904: 0xD8DB,
+ 23916 - 11904: 0xDD52,
+ 23919 - 11904: 0xB744,
+ 23920 - 11904: 0x98AD,
+ 23921 - 11904: 0xDD4D,
+ 23922 - 11904: 0xDD51,
+ 23924 - 11904: 0x9EEA,
+ 23927 - 11904: 0xE1A9,
+ 23928 - 11904: 0x8CEC,
+ 23929 - 11904: 0xE1B0,
+ 23930 - 11904: 0xE1A7,
+ 23931 - 11904: 0x8CD4,
+ 23932 - 11904: 0xE1AE,
+ 23933 - 11904: 0xE1A5,
+ 23934 - 11904: 0xE1AD,
+ 23935 - 11904: 0xE1B1,
+ 23936 - 11904: 0xE1A4,
+ 23937 - 11904: 0xE1A8,
+ 23938 - 11904: 0xE1A3,
+ 23940 - 11904: 0xB9F1,
+ 23941 - 11904: 0x9CEB,
+ 23942 - 11904: 0xE1A6,
+ 23943 - 11904: 0xB9F2,
+ 23944 - 11904: 0xE1AC,
+ 23945 - 11904: 0xE1AB,
+ 23946 - 11904: 0xE1AA,
+ 23947 - 11904: 0xFBE0,
+ 23949 - 11904: 0xE1AF,
+ 23950 - 11904: 0x9F51,
+ 23954 - 11904: 0xE565,
+ 23955 - 11904: 0xE567,
+ 23956 - 11904: 0xBC6B,
+ 23957 - 11904: 0xE568,
+ 23959 - 11904: 0xE563,
+ 23961 - 11904: 0xE562,
+ 23962 - 11904: 0xE56C,
+ 23964 - 11904: 0xE56A,
+ 23965 - 11904: 0xBC6A,
+ 23966 - 11904: 0xE56D,
+ 23967 - 11904: 0xE564,
+ 23968 - 11904: 0xE569,
+ 23969 - 11904: 0xE56B,
+ 23970 - 11904: 0xE566,
+ 23972 - 11904: 0x8D65,
+ 23975 - 11904: 0xE961,
+ 23976 - 11904: 0xE966,
+ 23977 - 11904: 0xE960,
+ 23978 - 11904: 0xE965,
+ 23979 - 11904: 0x9CF1,
+ 23980 - 11904: 0xE95E,
+ 23981 - 11904: 0xE968,
+ 23982 - 11904: 0xE964,
+ 23983 - 11904: 0xE969,
+ 23984 - 11904: 0xE963,
+ 23985 - 11904: 0xE95F,
+ 23986 - 11904: 0xE967,
+ 23988 - 11904: 0xE96A,
+ 23989 - 11904: 0xE962,
+ 23990 - 11904: 0xFC58,
+ 23991 - 11904: 0xECDA,
+ 23992 - 11904: 0xC0AF,
+ 23993 - 11904: 0x8D66,
+ 23994 - 11904: 0xC0AD,
+ 23996 - 11904: 0xC0AC,
+ 23997 - 11904: 0xC0AE,
+ 24000 - 11904: 0xEFC4,
+ 24001 - 11904: 0x9654,
+ 24002 - 11904: 0xF172,
+ 24003 - 11904: 0xF1FD,
+ 24006 - 11904: 0xF444,
+ 24007 - 11904: 0xF445,
+ 24009 - 11904: 0xC460,
+ 24011 - 11904: 0xF5C9,
+ 24013 - 11904: 0xC4DE,
+ 24015 - 11904: 0xF5CA,
+ 24017 - 11904: 0xF6DE,
+ 24018 - 11904: 0xC572,
+ 24020 - 11904: 0xC571,
+ 24021 - 11904: 0xF6DD,
+ 24022 - 11904: 0xC5C9,
+ 24023 - 11904: 0xFBE8,
+ 24024 - 11904: 0xF7D6,
+ 24027 - 11904: 0xC6CC,
+ 24029 - 11904: 0xA474,
+ 24030 - 11904: 0xA67B,
+ 24031 - 11904: 0xC9DA,
+ 24032 - 11904: 0xCACA,
+ 24033 - 11904: 0xA8B5,
+ 24034 - 11904: 0xB15F,
+ 24037 - 11904: 0xA475,
+ 24038 - 11904: 0xA5AA,
+ 24039 - 11904: 0xA5A9,
+ 24040 - 11904: 0xA5A8,
+ 24043 - 11904: 0xA7C5,
+ 24046 - 11904: 0xAE74,
+ 24048 - 11904: 0xDD57,
+ 24049 - 11904: 0xA476,
+ 24050 - 11904: 0xA477,
+ 24051 - 11904: 0xA478,
+ 24052 - 11904: 0xA4DA,
+ 24053 - 11904: 0x9FCE,
+ 24055 - 11904: 0xABD1,
+ 24057 - 11904: 0xCEAF,
+ 24061 - 11904: 0xB453,
+ 24062 - 11904: 0xA479,
+ 24063 - 11904: 0xC95D,
+ 24066 - 11904: 0xA5AB,
+ 24067 - 11904: 0xA5AC,
+ 24068 - 11904: 0xC978,
+ 24070 - 11904: 0xA67C,
+ 24073 - 11904: 0xFBFC,
+ 24074 - 11904: 0xCACB,
+ 24075 - 11904: 0x9AE4,
+ 24076 - 11904: 0xA7C6,
+ 24078 - 11904: 0xCACC,
+ 24081 - 11904: 0xA9AE,
+ 24082 - 11904: 0x9F75,
+ 24084 - 11904: 0xCC6E,
+ 24085 - 11904: 0xA9AC,
+ 24086 - 11904: 0xA9AB,
+ 24087 - 11904: 0xCC6D,
+ 24088 - 11904: 0xA9A9,
+ 24089 - 11904: 0xCC6F,
+ 24090 - 11904: 0xA9AA,
+ 24091 - 11904: 0xA9AD,
+ 24093 - 11904: 0xABD2,
+ 24095 - 11904: 0xABD4,
+ 24096 - 11904: 0xCEB3,
+ 24097 - 11904: 0xCEB0,
+ 24098 - 11904: 0xCEB1,
+ 24099 - 11904: 0xCEB2,
+ 24100 - 11904: 0xCEB4,
+ 24101 - 11904: 0xABD3,
+ 24104 - 11904: 0xD174,
+ 24105 - 11904: 0xD173,
+ 24107 - 11904: 0xAE76,
+ 24109 - 11904: 0xAE75,
+ 24110 - 11904: 0xFBF1,
+ 24115 - 11904: 0xB162,
+ 24116 - 11904: 0xD546,
+ 24118 - 11904: 0xB161,
+ 24119 - 11904: 0xB163,
+ 24120 - 11904: 0xB160,
+ 24125 - 11904: 0xB455,
+ 24126 - 11904: 0xD545,
+ 24128 - 11904: 0xB456,
+ 24129 - 11904: 0xD8F3,
+ 24130 - 11904: 0x8D69,
+ 24131 - 11904: 0xB457,
+ 24132 - 11904: 0xD8F2,
+ 24133 - 11904: 0xB454,
+ 24136 - 11904: 0x934F,
+ 24138 - 11904: 0xDD5A,
+ 24139 - 11904: 0xDD5C,
+ 24140 - 11904: 0xB745,
+ 24141 - 11904: 0xDD5B,
+ 24142 - 11904: 0xDD59,
+ 24143 - 11904: 0xDD58,
+ 24147 - 11904: 0xE1B4,
+ 24148 - 11904: 0xB9F7,
+ 24149 - 11904: 0xB9F5,
+ 24151 - 11904: 0xB9F6,
+ 24152 - 11904: 0xE1B2,
+ 24153 - 11904: 0xE1B3,
+ 24155 - 11904: 0xB9F3,
+ 24156 - 11904: 0xE571,
+ 24157 - 11904: 0xE56F,
+ 24158 - 11904: 0x934E,
+ 24159 - 11904: 0xBC6D,
+ 24160 - 11904: 0xE570,
+ 24161 - 11904: 0xBC6E,
+ 24162 - 11904: 0xBC6C,
+ 24163 - 11904: 0xB9F4,
+ 24166 - 11904: 0xE96D,
+ 24167 - 11904: 0xE96B,
+ 24168 - 11904: 0xE96C,
+ 24169 - 11904: 0xE56E,
+ 24170 - 11904: 0xECDC,
+ 24171 - 11904: 0xC0B0,
+ 24172 - 11904: 0xECDB,
+ 24173 - 11904: 0xEFC5,
+ 24174 - 11904: 0xEFC6,
+ 24175 - 11904: 0xE96E,
+ 24176 - 11904: 0xF1FE,
+ 24178 - 11904: 0xA47A,
+ 24179 - 11904: 0xA5AD,
+ 24180 - 11904: 0xA67E,
+ 24181 - 11904: 0xFBF3,
+ 24182 - 11904: 0xA67D,
+ 24184 - 11904: 0xA9AF,
+ 24185 - 11904: 0xB746,
+ 24186 - 11904: 0xFBF4,
+ 24187 - 11904: 0xA4DB,
+ 24188 - 11904: 0xA5AE,
+ 24189 - 11904: 0xABD5,
+ 24190 - 11904: 0xB458,
+ 24191 - 11904: 0xC6CE,
+ 24192 - 11904: 0xC979,
+ 24194 - 11904: 0xC97A,
+ 24195 - 11904: 0xFBC3,
+ 24196 - 11904: 0xC9DC,
+ 24198 - 11904: 0x8965,
+ 24199 - 11904: 0xA7C8,
+ 24200 - 11904: 0xCAD0,
+ 24201 - 11904: 0xCACE,
+ 24202 - 11904: 0xA7C9,
+ 24203 - 11904: 0xCACD,
+ 24204 - 11904: 0xCACF,
+ 24205 - 11904: 0xCAD1,
+ 24207 - 11904: 0xA7C7,
+ 24210 - 11904: 0x8C7A,
+ 24213 - 11904: 0xA9B3,
+ 24214 - 11904: 0xA9B4,
+ 24215 - 11904: 0xA9B1,
+ 24217 - 11904: 0x8C7B,
+ 24218 - 11904: 0xA9B0,
+ 24219 - 11904: 0xCEB8,
+ 24220 - 11904: 0xA9B2,
+ 24224 - 11904: 0xABD6,
+ 24226 - 11904: 0xCEB7,
+ 24227 - 11904: 0xCEB9,
+ 24228 - 11904: 0xCEB6,
+ 24229 - 11904: 0xCEBA,
+ 24230 - 11904: 0xABD7,
+ 24231 - 11904: 0xAE79,
+ 24232 - 11904: 0xD175,
+ 24234 - 11904: 0xD177,
+ 24235 - 11904: 0xAE77,
+ 24236 - 11904: 0xD178,
+ 24237 - 11904: 0xAE78,
+ 24238 - 11904: 0xD176,
+ 24240 - 11904: 0xCEB5,
+ 24241 - 11904: 0xD547,
+ 24242 - 11904: 0xD54A,
+ 24243 - 11904: 0xD54B,
+ 24244 - 11904: 0xD548,
+ 24245 - 11904: 0xB167,
+ 24246 - 11904: 0xB166,
+ 24247 - 11904: 0xB164,
+ 24248 - 11904: 0xB165,
+ 24249 - 11904: 0xD549,
+ 24253 - 11904: 0x8D6A,
+ 24254 - 11904: 0xB168,
+ 24257 - 11904: 0xB45A,
+ 24258 - 11904: 0xB45B,
+ 24260 - 11904: 0xB45C,
+ 24261 - 11904: 0xDD5D,
+ 24262 - 11904: 0xDD5F,
+ 24263 - 11904: 0xDD61,
+ 24264 - 11904: 0xB748,
+ 24265 - 11904: 0xB747,
+ 24266 - 11904: 0xB459,
+ 24267 - 11904: 0xDD60,
+ 24268 - 11904: 0xDD5E,
+ 24269 - 11904: 0x9353,
+ 24270 - 11904: 0xE1B8,
+ 24272 - 11904: 0xFBF9,
+ 24273 - 11904: 0xE1B6,
+ 24274 - 11904: 0xE1BC,
+ 24275 - 11904: 0xB9F8,
+ 24276 - 11904: 0xE1BD,
+ 24277 - 11904: 0xE1BA,
+ 24278 - 11904: 0xB9F9,
+ 24279 - 11904: 0xE1B7,
+ 24280 - 11904: 0xE1B5,
+ 24281 - 11904: 0xE1BB,
+ 24282 - 11904: 0xBC70,
+ 24283 - 11904: 0xE573,
+ 24284 - 11904: 0xE1B9,
+ 24285 - 11904: 0xBC72,
+ 24286 - 11904: 0xE574,
+ 24287 - 11904: 0xBC71,
+ 24288 - 11904: 0xBC74,
+ 24289 - 11904: 0xE575,
+ 24290 - 11904: 0xBC6F,
+ 24291 - 11904: 0xBC73,
+ 24293 - 11904: 0xE973,
+ 24294 - 11904: 0xE971,
+ 24295 - 11904: 0xE970,
+ 24296 - 11904: 0xE972,
+ 24297 - 11904: 0xE96F,
+ 24300 - 11904: 0xC366,
+ 24302 - 11904: 0xF446,
+ 24303 - 11904: 0xF447,
+ 24305 - 11904: 0xF5CB,
+ 24306 - 11904: 0xF6DF,
+ 24307 - 11904: 0xC655,
+ 24308 - 11904: 0xFBFD,
+ 24310 - 11904: 0xA9B5,
+ 24311 - 11904: 0xA7CA,
+ 24312 - 11904: 0x9059,
+ 24313 - 11904: 0xFC40,
+ 24314 - 11904: 0xABD8,
+ 24315 - 11904: 0xFC41,
+ 24316 - 11904: 0xFC43,
+ 24318 - 11904: 0xA47B,
+ 24319 - 11904: 0xA4DC,
+ 24321 - 11904: 0xA5AF,
+ 24322 - 11904: 0xC9DD,
+ 24324 - 11904: 0xA7CB,
+ 24325 - 11904: 0xCAD2,
+ 24327 - 11904: 0xCEBB,
+ 24328 - 11904: 0xABD9,
+ 24330 - 11904: 0xB9FA,
+ 24331 - 11904: 0xA47C,
+ 24332 - 11904: 0x9FD8,
+ 24333 - 11904: 0xFC46,
+ 24334 - 11904: 0x9362,
+ 24335 - 11904: 0xA6A1,
+ 24338 - 11904: 0xB749,
+ 24339 - 11904: 0xA47D,
+ 24340 - 11904: 0xA4DD,
+ 24341 - 11904: 0xA4DE,
+ 24343 - 11904: 0xA5B1,
+ 24344 - 11904: 0xA5B0,
+ 24346 - 11904: 0xC9DE,
+ 24347 - 11904: 0xA6A2,
+ 24349 - 11904: 0xCAD3,
+ 24351 - 11904: 0xA7CC,
+ 24354 - 11904: 0xCC71,
+ 24355 - 11904: 0xCC72,
+ 24356 - 11904: 0xCC73,
+ 24357 - 11904: 0x8D6B,
+ 24358 - 11904: 0xA9B6,
+ 24359 - 11904: 0xA9B7,
+ 24360 - 11904: 0xCC70,
+ 24361 - 11904: 0xA9B8,
+ 24365 - 11904: 0xABDA,
+ 24366 - 11904: 0xCEBC,
+ 24368 - 11904: 0xD17A,
+ 24369 - 11904: 0xAE7A,
+ 24371 - 11904: 0xD179,
+ 24373 - 11904: 0xB169,
+ 24374 - 11904: 0xD54C,
+ 24375 - 11904: 0xB16A,
+ 24376 - 11904: 0xD54D,
+ 24378 - 11904: 0xFC4C,
+ 24379 - 11904: 0x8CFE,
+ 24380 - 11904: 0xB45D,
+ 24384 - 11904: 0xDD62,
+ 24387 - 11904: 0xE1BF,
+ 24388 - 11904: 0xE1BE,
+ 24390 - 11904: 0xB9FB,
+ 24392 - 11904: 0xBC75,
+ 24393 - 11904: 0xE576,
+ 24394 - 11904: 0xBECA,
+ 24395 - 11904: 0xE974,
+ 24396 - 11904: 0xC0B1,
+ 24397 - 11904: 0x95B8,
+ 24398 - 11904: 0xC573,
+ 24399 - 11904: 0xF7D8,
+ 24400 - 11904: 0xC6D0,
+ 24401 - 11904: 0x8BCA,
+ 24404 - 11904: 0xCC74,
+ 24406 - 11904: 0xCEBD,
+ 24407 - 11904: 0xB16B,
+ 24408 - 11904: 0xFC4F,
+ 24409 - 11904: 0xB74A,
+ 24412 - 11904: 0x987A,
+ 24413 - 11904: 0xC255,
+ 24417 - 11904: 0xC6D1,
+ 24418 - 11904: 0xA7CE,
+ 24419 - 11904: 0xFC51,
+ 24420 - 11904: 0xA7CD,
+ 24421 - 11904: 0xABDB,
+ 24423 - 11904: 0xD17B,
+ 24425 - 11904: 0xB16D,
+ 24426 - 11904: 0xB343,
+ 24427 - 11904: 0xB16E,
+ 24428 - 11904: 0xB16C,
+ 24429 - 11904: 0xB45E,
+ 24431 - 11904: 0xE1C0,
+ 24432 - 11904: 0xB9FC,
+ 24433 - 11904: 0xBC76,
+ 24434 - 11904: 0xFC54,
+ 24435 - 11904: 0xC94C,
+ 24436 - 11904: 0xC9DF,
+ 24438 - 11904: 0xCAD5,
+ 24439 - 11904: 0xA7CF,
+ 24440 - 11904: 0xCAD4,
+ 24441 - 11904: 0xA7D0,
+ 24443 - 11904: 0xFAAF,
+ 24444 - 11904: 0xA9BC,
+ 24445 - 11904: 0xCC77,
+ 24446 - 11904: 0xCC76,
+ 24447 - 11904: 0xA9BB,
+ 24448 - 11904: 0xA9B9,
+ 24449 - 11904: 0xA9BA,
+ 24450 - 11904: 0xCC75,
+ 24451 - 11904: 0x8D6C,
+ 24453 - 11904: 0xABDD,
+ 24454 - 11904: 0xCEBE,
+ 24455 - 11904: 0xABE0,
+ 24456 - 11904: 0xABDC,
+ 24457 - 11904: 0xABE2,
+ 24458 - 11904: 0xABDE,
+ 24459 - 11904: 0xABDF,
+ 24460 - 11904: 0xABE1,
+ 24464 - 11904: 0xAE7D,
+ 24465 - 11904: 0xAE7C,
+ 24466 - 11904: 0xAE7B,
+ 24470 - 11904: 0xD54F,
+ 24471 - 11904: 0xB16F,
+ 24472 - 11904: 0xB172,
+ 24473 - 11904: 0xB170,
+ 24475 - 11904: 0xD54E,
+ 24476 - 11904: 0xB175,
+ 24478 - 11904: 0xB171,
+ 24479 - 11904: 0xD550,
+ 24480 - 11904: 0xB174,
+ 24481 - 11904: 0xB173,
+ 24484 - 11904: 0xFA61,
+ 24485 - 11904: 0xD8F6,
+ 24486 - 11904: 0xD8F5,
+ 24487 - 11904: 0xFC57,
+ 24488 - 11904: 0xB461,
+ 24489 - 11904: 0xB45F,
+ 24490 - 11904: 0xB460,
+ 24491 - 11904: 0xD8F7,
+ 24492 - 11904: 0xB74B,
+ 24493 - 11904: 0xDD64,
+ 24494 - 11904: 0xB74C,
+ 24495 - 11904: 0xDD63,
+ 24497 - 11904: 0x9B70,
+ 24498 - 11904: 0xE577,
+ 24501 - 11904: 0xBC78,
+ 24502 - 11904: 0xE1C1,
+ 24503 - 11904: 0xBC77,
+ 24505 - 11904: 0xB9FD,
+ 24506 - 11904: 0xA051,
+ 24507 - 11904: 0xECDE,
+ 24508 - 11904: 0xE975,
+ 24509 - 11904: 0xC0B2,
+ 24510 - 11904: 0xECDD,
+ 24511 - 11904: 0xF240,
+ 24512 - 11904: 0xF448,
+ 24513 - 11904: 0xF449,
+ 24514 - 11904: 0x8C7C,
+ 24515 - 11904: 0xA4DF,
+ 24516 - 11904: 0x8BCB,
+ 24517 - 11904: 0xA5B2,
+ 24521 - 11904: 0xC97B,
+ 24524 - 11904: 0xA7D2,
+ 24525 - 11904: 0xA7D4,
+ 24527 - 11904: 0xC9E2,
+ 24528 - 11904: 0xCAD8,
+ 24529 - 11904: 0xCAD7,
+ 24530 - 11904: 0xCAD6,
+ 24532 - 11904: 0xC9E1,
+ 24533 - 11904: 0xC9E0,
+ 24534 - 11904: 0xA6A4,
+ 24535 - 11904: 0xA7D3,
+ 24536 - 11904: 0xA7D1,
+ 24537 - 11904: 0xA6A3,
+ 24539 - 11904: 0x936E,
+ 24541 - 11904: 0xA9BD,
+ 24542 - 11904: 0xCC78,
+ 24543 - 11904: 0xFCD5,
+ 24544 - 11904: 0xA9BE,
+ 24545 - 11904: 0xCADD,
+ 24547 - 11904: 0xCADF,
+ 24548 - 11904: 0xCADE,
+ 24549 - 11904: 0xCC79,
+ 24552 - 11904: 0xCADA,
+ 24554 - 11904: 0xA7D8,
+ 24555 - 11904: 0xA7D6,
+ 24557 - 11904: 0xCAD9,
+ 24558 - 11904: 0xCADB,
+ 24559 - 11904: 0xCAE1,
+ 24561 - 11904: 0xA7D5,
+ 24563 - 11904: 0xCADC,
+ 24564 - 11904: 0xCAE5,
+ 24565 - 11904: 0xA9C0,
+ 24567 - 11904: 0xCAE2,
+ 24568 - 11904: 0xA7D7,
+ 24570 - 11904: 0xCAE0,
+ 24571 - 11904: 0xCAE3,
+ 24573 - 11904: 0xA9BF,
+ 24575 - 11904: 0xA9C1,
+ 24576 - 11904: 0xCAE4,
+ 24585 - 11904: 0xCCAF,
+ 24586 - 11904: 0xCCA2,
+ 24587 - 11904: 0xCC7E,
+ 24588 - 11904: 0xCCAE,
+ 24589 - 11904: 0xCCA9,
+ 24590 - 11904: 0xABE7,
+ 24591 - 11904: 0xA9C2,
+ 24592 - 11904: 0xCCAA,
+ 24593 - 11904: 0xCCAD,
+ 24594 - 11904: 0xABE3,
+ 24595 - 11904: 0xCCAC,
+ 24596 - 11904: 0xA9C3,
+ 24597 - 11904: 0xA9C8,
+ 24598 - 11904: 0xA9C6,
+ 24599 - 11904: 0xCCA3,
+ 24601 - 11904: 0xCC7C,
+ 24602 - 11904: 0xCCA5,
+ 24603 - 11904: 0xA9CD,
+ 24604 - 11904: 0xCCB0,
+ 24605 - 11904: 0xABE4,
+ 24606 - 11904: 0xCCA6,
+ 24608 - 11904: 0xABE5,
+ 24609 - 11904: 0xA9C9,
+ 24610 - 11904: 0xCCA8,
+ 24611 - 11904: 0xFCA9,
+ 24612 - 11904: 0xCECD,
+ 24613 - 11904: 0xABE6,
+ 24614 - 11904: 0xCC7B,
+ 24615 - 11904: 0xA9CA,
+ 24616 - 11904: 0xABE8,
+ 24617 - 11904: 0xA9CB,
+ 24618 - 11904: 0xA9C7,
+ 24619 - 11904: 0xA9CC,
+ 24620 - 11904: 0xCCA7,
+ 24621 - 11904: 0xCC7A,
+ 24622 - 11904: 0xCCAB,
+ 24623 - 11904: 0xA9C4,
+ 24625 - 11904: 0xFC61,
+ 24626 - 11904: 0xCC7D,
+ 24627 - 11904: 0xCCA4,
+ 24628 - 11904: 0xCCA1,
+ 24629 - 11904: 0xA9C5,
+ 24631 - 11904: 0xCEBF,
+ 24633 - 11904: 0xCEC0,
+ 24635 - 11904: 0x8966,
+ 24640 - 11904: 0xCECA,
+ 24641 - 11904: 0xD1A1,
+ 24642 - 11904: 0xCECB,
+ 24643 - 11904: 0xABEE,
+ 24644 - 11904: 0xCECE,
+ 24645 - 11904: 0xCEC4,
+ 24646 - 11904: 0xABED,
+ 24647 - 11904: 0xCEC6,
+ 24649 - 11904: 0xCEC7,
+ 24650 - 11904: 0xFACB,
+ 24652 - 11904: 0xCEC9,
+ 24653 - 11904: 0xABE9,
+ 24656 - 11904: 0xAEA3,
+ 24658 - 11904: 0xF9DA,
+ 24659 - 11904: 0xCEC5,
+ 24660 - 11904: 0xCEC1,
+ 24661 - 11904: 0xAEA4,
+ 24664 - 11904: 0xCECF,
+ 24665 - 11904: 0xAE7E,
+ 24666 - 11904: 0xD17D,
+ 24667 - 11904: 0xCEC8,
+ 24669 - 11904: 0xD17C,
+ 24670 - 11904: 0xCEC3,
+ 24671 - 11904: 0xCECC,
+ 24674 - 11904: 0xABEC,
+ 24675 - 11904: 0xAEA1,
+ 24676 - 11904: 0xABF2,
+ 24677 - 11904: 0xAEA2,
+ 24678 - 11904: 0xCED0,
+ 24679 - 11904: 0xD17E,
+ 24680 - 11904: 0xABEB,
+ 24681 - 11904: 0xAEA6,
+ 24682 - 11904: 0xABF1,
+ 24683 - 11904: 0xABF0,
+ 24684 - 11904: 0xABEF,
+ 24685 - 11904: 0xAEA5,
+ 24686 - 11904: 0xCED1,
+ 24687 - 11904: 0xAEA7,
+ 24688 - 11904: 0xABEA,
+ 24690 - 11904: 0xCEC2,
+ 24693 - 11904: 0x937A,
+ 24695 - 11904: 0xA0E0,
+ 24702 - 11904: 0x936B,
+ 24703 - 11904: 0xB176,
+ 24704 - 11904: 0xD1A4,
+ 24705 - 11904: 0xD1A6,
+ 24707 - 11904: 0xD1A8,
+ 24708 - 11904: 0xAEA8,
+ 24709 - 11904: 0xAEAE,
+ 24710 - 11904: 0xD553,
+ 24711 - 11904: 0xD1AC,
+ 24712 - 11904: 0xD1A3,
+ 24713 - 11904: 0xB178,
+ 24714 - 11904: 0xD551,
+ 24716 - 11904: 0xAEAD,
+ 24717 - 11904: 0xAEAB,
+ 24718 - 11904: 0xD1AE,
+ 24720 - 11904: 0xD552,
+ 24722 - 11904: 0xD1A5,
+ 24724 - 11904: 0xAEAC,
+ 24725 - 11904: 0xD1A9,
+ 24726 - 11904: 0xAEAF,
+ 24727 - 11904: 0xD1AB,
+ 24730 - 11904: 0xAEAA,
+ 24731 - 11904: 0xD1AA,
+ 24732 - 11904: 0xD1AD,
+ 24733 - 11904: 0xD1A7,
+ 24734 - 11904: 0xFC6B,
+ 24735 - 11904: 0xAEA9,
+ 24736 - 11904: 0xB179,
+ 24738 - 11904: 0xD1A2,
+ 24739 - 11904: 0xB177,
+ 24740 - 11904: 0xFC6C,
+ 24743 - 11904: 0x9468,
+ 24744 - 11904: 0xB17A,
+ 24752 - 11904: 0xD555,
+ 24753 - 11904: 0xD55E,
+ 24754 - 11904: 0xB464,
+ 24755 - 11904: 0xFC6D,
+ 24756 - 11904: 0xB17C,
+ 24757 - 11904: 0xB1A3,
+ 24758 - 11904: 0xB465,
+ 24759 - 11904: 0xD560,
+ 24760 - 11904: 0xB1AA,
+ 24761 - 11904: 0xD8F9,
+ 24762 - 11904: 0xD556,
+ 24763 - 11904: 0xB1A2,
+ 24764 - 11904: 0xB1A5,
+ 24765 - 11904: 0xB17E,
+ 24766 - 11904: 0xD554,
+ 24767 - 11904: 0xD562,
+ 24768 - 11904: 0xD565,
+ 24769 - 11904: 0xD949,
+ 24771 - 11904: 0xD563,
+ 24772 - 11904: 0xD8FD,
+ 24773 - 11904: 0xB1A1,
+ 24774 - 11904: 0xB1A8,
+ 24775 - 11904: 0xB1AC,
+ 24776 - 11904: 0xD55D,
+ 24777 - 11904: 0xD8F8,
+ 24778 - 11904: 0xD561,
+ 24779 - 11904: 0xB17B,
+ 24780 - 11904: 0xD8FA,
+ 24781 - 11904: 0xD564,
+ 24782 - 11904: 0xD8FC,
+ 24783 - 11904: 0xD559,
+ 24785 - 11904: 0xB462,
+ 24787 - 11904: 0xD557,
+ 24788 - 11904: 0xD558,
+ 24789 - 11904: 0xB1A7,
+ 24791 - 11904: 0x8D71,
+ 24792 - 11904: 0xB1A6,
+ 24793 - 11904: 0xD55B,
+ 24794 - 11904: 0xB1AB,
+ 24795 - 11904: 0xD55F,
+ 24796 - 11904: 0xB1A4,
+ 24797 - 11904: 0xD55C,
+ 24798 - 11904: 0xFD64,
+ 24799 - 11904: 0xB1A9,
+ 24800 - 11904: 0xB466,
+ 24801 - 11904: 0xB463,
+ 24802 - 11904: 0xD8FB,
+ 24803 - 11904: 0x99BA,
+ 24804 - 11904: 0xD55A,
+ 24806 - 11904: 0xB17D,
+ 24807 - 11904: 0x9AD0,
+ 24808 - 11904: 0x9A61,
+ 24809 - 11904: 0xA0E5,
+ 24816 - 11904: 0xB46B,
+ 24817 - 11904: 0xB46F,
+ 24818 - 11904: 0xD940,
+ 24819 - 11904: 0xB751,
+ 24820 - 11904: 0xB46D,
+ 24821 - 11904: 0xD944,
+ 24822 - 11904: 0xB471,
+ 24823 - 11904: 0xDD65,
+ 24824 - 11904: 0xD946,
+ 24825 - 11904: 0xB753,
+ 24826 - 11904: 0xB469,
+ 24827 - 11904: 0xB46C,
+ 24828 - 11904: 0xD947,
+ 24829 - 11904: 0xA05B,
+ 24830 - 11904: 0xD948,
+ 24831 - 11904: 0xD94E,
+ 24832 - 11904: 0xB473,
+ 24833 - 11904: 0xB754,
+ 24835 - 11904: 0xD94A,
+ 24836 - 11904: 0xD94F,
+ 24837 - 11904: 0xD943,
+ 24838 - 11904: 0xB75E,
+ 24839 - 11904: 0x96AC,
+ 24840 - 11904: 0xB755,
+ 24841 - 11904: 0xB472,
+ 24842 - 11904: 0xD941,
+ 24843 - 11904: 0xD950,
+ 24844 - 11904: 0x9740,
+ 24845 - 11904: 0xB75D,
+ 24846 - 11904: 0xB470,
+ 24847 - 11904: 0xB74E,
+ 24848 - 11904: 0xD94D,
+ 24850 - 11904: 0xB474,
+ 24851 - 11904: 0xD945,
+ 24852 - 11904: 0xD8FE,
+ 24853 - 11904: 0xB46A,
+ 24854 - 11904: 0xD942,
+ 24856 - 11904: 0xD94B,
+ 24857 - 11904: 0x9EF1,
+ 24858 - 11904: 0xB74D,
+ 24859 - 11904: 0xB752,
+ 24860 - 11904: 0xB467,
+ 24861 - 11904: 0xD94C,
+ 24863 - 11904: 0xB750,
+ 24866 - 11904: 0x8C4D,
+ 24867 - 11904: 0xB468,
+ 24871 - 11904: 0xB75C,
+ 24872 - 11904: 0xE1C3,
+ 24873 - 11904: 0xDD70,
+ 24875 - 11904: 0xDD68,
+ 24876 - 11904: 0xE1C2,
+ 24878 - 11904: 0xDD6C,
+ 24879 - 11904: 0xDD6E,
+ 24880 - 11904: 0x9F7E,
+ 24882 - 11904: 0xDD6B,
+ 24884 - 11904: 0xB75B,
+ 24886 - 11904: 0xDD6A,
+ 24887 - 11904: 0xB75F,
+ 24891 - 11904: 0xE1D2,
+ 24893 - 11904: 0x8D72,
+ 24894 - 11904: 0xB75A,
+ 24895 - 11904: 0xBA40,
+ 24896 - 11904: 0xDD71,
+ 24897 - 11904: 0xE1C4,
+ 24898 - 11904: 0xFC76,
+ 24900 - 11904: 0xB758,
+ 24901 - 11904: 0xDD69,
+ 24902 - 11904: 0xDD6D,
+ 24903 - 11904: 0xB9FE,
+ 24904 - 11904: 0xB74F,
+ 24905 - 11904: 0xDD66,
+ 24906 - 11904: 0xDD67,
+ 24907 - 11904: 0xBA41,
+ 24908 - 11904: 0xB757,
+ 24909 - 11904: 0xB759,
+ 24910 - 11904: 0xB756,
+ 24911 - 11904: 0xDD6F,
+ 24912 - 11904: 0x96A9,
+ 24914 - 11904: 0xE1C8,
+ 24915 - 11904: 0xE1C9,
+ 24916 - 11904: 0xE1CE,
+ 24917 - 11904: 0xBC7D,
+ 24918 - 11904: 0xE1D5,
+ 24920 - 11904: 0xBA47,
+ 24921 - 11904: 0xA06E,
+ 24922 - 11904: 0xBA46,
+ 24923 - 11904: 0xE1D0,
+ 24924 - 11904: 0xFCAA,
+ 24925 - 11904: 0xBC7C,
+ 24926 - 11904: 0xE1C5,
+ 24927 - 11904: 0xBA45,
+ 24928 - 11904: 0xFBCD,
+ 24929 - 11904: 0xE1D4,
+ 24930 - 11904: 0xBA43,
+ 24931 - 11904: 0xBA44,
+ 24932 - 11904: 0xFC74,
+ 24933 - 11904: 0xE1D1,
+ 24934 - 11904: 0xE5AA,
+ 24935 - 11904: 0xBC7A,
+ 24936 - 11904: 0xB46E,
+ 24938 - 11904: 0xE1D3,
+ 24939 - 11904: 0xBCA3,
+ 24940 - 11904: 0xE1CB,
+ 24942 - 11904: 0xBC7B,
+ 24943 - 11904: 0xA074,
+ 24944 - 11904: 0xBCA2,
+ 24945 - 11904: 0xE1C6,
+ 24946 - 11904: 0xE1CA,
+ 24947 - 11904: 0xE1C7,
+ 24948 - 11904: 0xE1CD,
+ 24949 - 11904: 0xBA48,
+ 24950 - 11904: 0xBC79,
+ 24951 - 11904: 0xBA42,
+ 24953 - 11904: 0xE57A,
+ 24954 - 11904: 0xE1CF,
+ 24956 - 11904: 0xBCA1,
+ 24957 - 11904: 0xA071,
+ 24958 - 11904: 0xBCA4,
+ 24960 - 11904: 0xE1CC,
+ 24961 - 11904: 0xFC79,
+ 24962 - 11904: 0xBC7E,
+ 24963 - 11904: 0xE579,
+ 24967 - 11904: 0xFC7C,
+ 24969 - 11904: 0xE57E,
+ 24970 - 11904: 0xBECE,
+ 24971 - 11904: 0xE578,
+ 24972 - 11904: 0xE9A3,
+ 24973 - 11904: 0xE5A9,
+ 24974 - 11904: 0xBCA8,
+ 24976 - 11904: 0xBCA6,
+ 24977 - 11904: 0xBECC,
+ 24978 - 11904: 0xE5A6,
+ 24979 - 11904: 0xE5A2,
+ 24980 - 11904: 0xBCAC,
+ 24981 - 11904: 0x9C50,
+ 24982 - 11904: 0xE978,
+ 24984 - 11904: 0x9379,
+ 24985 - 11904: 0x9378,
+ 24986 - 11904: 0xBCAA,
+ 24987 - 11904: 0xE5A1,
+ 24988 - 11904: 0xA0DD,
+ 24989 - 11904: 0xE976,
+ 24991 - 11904: 0xE5A5,
+ 24993 - 11904: 0xE5A8,
+ 24994 - 11904: 0xE57D,
+ 24996 - 11904: 0xBCAB,
+ 24999 - 11904: 0xBCA5,
+ 25000 - 11904: 0xE977,
+ 25001 - 11904: 0xBECD,
+ 25002 - 11904: 0xE5A7,
+ 25003 - 11904: 0xBCA7,
+ 25004 - 11904: 0xBCA9,
+ 25005 - 11904: 0xE5A4,
+ 25006 - 11904: 0xBCAD,
+ 25007 - 11904: 0xE5A3,
+ 25008 - 11904: 0xE57C,
+ 25009 - 11904: 0xE57B,
+ 25010 - 11904: 0xBECB,
+ 25011 - 11904: 0xE5AB,
+ 25012 - 11904: 0xE97A,
+ 25013 - 11904: 0xECE0,
+ 25014 - 11904: 0xBED0,
+ 25015 - 11904: 0x8D75,
+ 25016 - 11904: 0xE9A2,
+ 25017 - 11904: 0x8D76,
+ 25018 - 11904: 0xE97E,
+ 25020 - 11904: 0xECE1,
+ 25022 - 11904: 0xBED1,
+ 25023 - 11904: 0xE9A1,
+ 25024 - 11904: 0x9374,
+ 25025 - 11904: 0xE97C,
+ 25026 - 11904: 0xC0B4,
+ 25027 - 11904: 0xECDF,
+ 25029 - 11904: 0xE979,
+ 25030 - 11904: 0xE97B,
+ 25031 - 11904: 0xC0B5,
+ 25032 - 11904: 0xBED3,
+ 25033 - 11904: 0xC0B3,
+ 25034 - 11904: 0xBED2,
+ 25035 - 11904: 0xC0B7,
+ 25036 - 11904: 0xE97D,
+ 25037 - 11904: 0xBECF,
+ 25039 - 11904: 0x8D77,
+ 25040 - 11904: 0xFCA5,
+ 25043 - 11904: 0xFCA2,
+ 25046 - 11904: 0xEFCF,
+ 25048 - 11904: 0xEFC7,
+ 25050 - 11904: 0x90C3,
+ 25054 - 11904: 0xECE7,
+ 25055 - 11904: 0xEFC8,
+ 25056 - 11904: 0xECE3,
+ 25058 - 11904: 0xA079,
+ 25059 - 11904: 0xC256,
+ 25060 - 11904: 0xECE5,
+ 25061 - 11904: 0xECE4,
+ 25062 - 11904: 0xC0B6,
+ 25063 - 11904: 0xECE2,
+ 25064 - 11904: 0xECE6,
+ 25065 - 11904: 0xEFD0,
+ 25066 - 11904: 0xEFCC,
+ 25067 - 11904: 0xEFCE,
+ 25069 - 11904: 0xEFC9,
+ 25070 - 11904: 0xEFCA,
+ 25072 - 11904: 0xEFCD,
+ 25073 - 11904: 0xEFCB,
+ 25074 - 11904: 0xC367,
+ 25077 - 11904: 0xC36A,
+ 25078 - 11904: 0xC369,
+ 25079 - 11904: 0xC368,
+ 25080 - 11904: 0xC461,
+ 25081 - 11904: 0xF44A,
+ 25082 - 11904: 0xC462,
+ 25083 - 11904: 0xF241,
+ 25084 - 11904: 0xC4DF,
+ 25085 - 11904: 0xF5CC,
+ 25086 - 11904: 0xC4E0,
+ 25087 - 11904: 0xC574,
+ 25088 - 11904: 0xC5CA,
+ 25089 - 11904: 0xF7D9,
+ 25091 - 11904: 0xF7DA,
+ 25092 - 11904: 0xF7DB,
+ 25095 - 11904: 0xF9BA,
+ 25096 - 11904: 0xA4E0,
+ 25097 - 11904: 0xC97C,
+ 25098 - 11904: 0xA5B3,
+ 25100 - 11904: 0xA6A6,
+ 25101 - 11904: 0xA6A7,
+ 25102 - 11904: 0xA6A5,
+ 25104 - 11904: 0xA6A8,
+ 25105 - 11904: 0xA7DA,
+ 25106 - 11904: 0xA7D9,
+ 25108 - 11904: 0xCCB1,
+ 25109 - 11904: 0xA9CF,
+ 25110 - 11904: 0xA9CE,
+ 25113 - 11904: 0xD1AF,
+ 25114 - 11904: 0xB1AD,
+ 25115 - 11904: 0xB1AE,
+ 25119 - 11904: 0xB475,
+ 25120 - 11904: 0xDD72,
+ 25121 - 11904: 0xB760,
+ 25122 - 11904: 0xB761,
+ 25123 - 11904: 0xDD74,
+ 25124 - 11904: 0xDD76,
+ 25125 - 11904: 0xDD75,
+ 25127 - 11904: 0xE1D7,
+ 25129 - 11904: 0xE1D6,
+ 25130 - 11904: 0xBA49,
+ 25131 - 11904: 0xE1D8,
+ 25132 - 11904: 0x8D79,
+ 25133 - 11904: 0xE5AC,
+ 25134 - 11904: 0xBCAE,
+ 25136 - 11904: 0xBED4,
+ 25138 - 11904: 0xC0B8,
+ 25139 - 11904: 0xC257,
+ 25140 - 11904: 0xC0B9,
+ 25142 - 11904: 0xA4E1,
+ 25143 - 11904: 0x8BFC,
+ 25145 - 11904: 0xA076,
+ 25146 - 11904: 0xCAE6,
+ 25149 - 11904: 0xCCB2,
+ 25150 - 11904: 0xA9D1,
+ 25151 - 11904: 0xA9D0,
+ 25152 - 11904: 0xA9D2,
+ 25153 - 11904: 0xABF3,
+ 25154 - 11904: 0xCED2,
+ 25155 - 11904: 0xCED3,
+ 25158 - 11904: 0xD1B0,
+ 25159 - 11904: 0xAEB0,
+ 25160 - 11904: 0xB1AF,
+ 25161 - 11904: 0xB476,
+ 25162 - 11904: 0xD951,
+ 25163 - 11904: 0xA4E2,
+ 25164 - 11904: 0x8BCD,
+ 25165 - 11904: 0xA47E,
+ 25166 - 11904: 0xA4E3,
+ 25168 - 11904: 0xC97D,
+ 25169 - 11904: 0xA5B7,
+ 25170 - 11904: 0xA5B6,
+ 25171 - 11904: 0xA5B4,
+ 25172 - 11904: 0xA5B5,
+ 25176 - 11904: 0xA6AB,
+ 25177 - 11904: 0xC9E9,
+ 25178 - 11904: 0xC9EB,
+ 25179 - 11904: 0xA6AA,
+ 25180 - 11904: 0xC9E3,
+ 25182 - 11904: 0xC9E4,
+ 25184 - 11904: 0xC9EA,
+ 25185 - 11904: 0xC9E6,
+ 25186 - 11904: 0xC9E8,
+ 25187 - 11904: 0xA6A9,
+ 25188 - 11904: 0xC9E5,
+ 25189 - 11904: 0xC9EC,
+ 25190 - 11904: 0xC9E7,
+ 25192 - 11904: 0x9F5A,
+ 25197 - 11904: 0xA7E1,
+ 25198 - 11904: 0xA7EA,
+ 25199 - 11904: 0xA7E8,
+ 25200 - 11904: 0xCAF0,
+ 25201 - 11904: 0xCAED,
+ 25202 - 11904: 0xCAF5,
+ 25203 - 11904: 0xA7E6,
+ 25204 - 11904: 0xCAF6,
+ 25206 - 11904: 0xA7DF,
+ 25207 - 11904: 0xCAF3,
+ 25209 - 11904: 0xA7E5,
+ 25210 - 11904: 0xCAEF,
+ 25211 - 11904: 0xCAEE,
+ 25212 - 11904: 0xA7E3,
+ 25213 - 11904: 0xCAF4,
+ 25214 - 11904: 0xA7E4,
+ 25215 - 11904: 0xA9D3,
+ 25216 - 11904: 0xA7DE,
+ 25217 - 11904: 0xCAF1,
+ 25218 - 11904: 0x9FF4,
+ 25219 - 11904: 0xCAE7,
+ 25220 - 11904: 0xA7DB,
+ 25221 - 11904: 0x9FBA,
+ 25222 - 11904: 0xA7EE,
+ 25223 - 11904: 0xCAEC,
+ 25224 - 11904: 0xCAF2,
+ 25225 - 11904: 0xA7E0,
+ 25226 - 11904: 0xA7E2,
+ 25228 - 11904: 0xCAE8,
+ 25230 - 11904: 0xCAE9,
+ 25231 - 11904: 0xCAEA,
+ 25232 - 11904: 0x8D7A,
+ 25233 - 11904: 0xA7ED,
+ 25234 - 11904: 0xA7E7,
+ 25235 - 11904: 0xA7EC,
+ 25236 - 11904: 0xCAEB,
+ 25237 - 11904: 0xA7EB,
+ 25238 - 11904: 0xA7DD,
+ 25239 - 11904: 0xA7DC,
+ 25240 - 11904: 0xA7E9,
+ 25245 - 11904: 0x9E45,
+ 25252 - 11904: 0x93B0,
+ 25254 - 11904: 0xA075,
+ 25256 - 11904: 0xA9E1,
+ 25257 - 11904: 0xCCBE,
+ 25258 - 11904: 0xCCB7,
+ 25259 - 11904: 0xA9DC,
+ 25260 - 11904: 0xA9EF,
+ 25261 - 11904: 0xCCB3,
+ 25262 - 11904: 0xCCBA,
+ 25263 - 11904: 0xCCBC,
+ 25264 - 11904: 0xCCBF,
+ 25265 - 11904: 0xA9EA,
+ 25267 - 11904: 0xCCBB,
+ 25268 - 11904: 0xCCB4,
+ 25269 - 11904: 0xA9E8,
+ 25270 - 11904: 0xCCB8,
+ 25272 - 11904: 0xCCC0,
+ 25273 - 11904: 0xA9D9,
+ 25275 - 11904: 0xCCBD,
+ 25276 - 11904: 0xA9E3,
+ 25277 - 11904: 0xA9E2,
+ 25278 - 11904: 0xCCB6,
+ 25279 - 11904: 0xA9D7,
+ 25281 - 11904: 0x87DD,
+ 25282 - 11904: 0xA9D8,
+ 25283 - 11904: 0x9B46,
+ 25284 - 11904: 0xA9D6,
+ 25285 - 11904: 0xFCAE,
+ 25286 - 11904: 0xA9EE,
+ 25287 - 11904: 0xA9E6,
+ 25288 - 11904: 0xA9E0,
+ 25289 - 11904: 0xA9D4,
+ 25290 - 11904: 0xCCB9,
+ 25291 - 11904: 0xA9DF,
+ 25292 - 11904: 0xA9D5,
+ 25293 - 11904: 0xA9E7,
+ 25294 - 11904: 0xA9F0,
+ 25295 - 11904: 0xCED4,
+ 25296 - 11904: 0xA9E4,
+ 25297 - 11904: 0xCCB5,
+ 25298 - 11904: 0xA9DA,
+ 25299 - 11904: 0xA9DD,
+ 25300 - 11904: 0xA9DE,
+ 25301 - 11904: 0xFCB0,
+ 25302 - 11904: 0xA9EC,
+ 25303 - 11904: 0xA9ED,
+ 25304 - 11904: 0xA9EB,
+ 25305 - 11904: 0xA9E5,
+ 25306 - 11904: 0xA9E9,
+ 25307 - 11904: 0xA9DB,
+ 25308 - 11904: 0xABF4,
+ 25311 - 11904: 0xFA51,
+ 25317 - 11904: 0x8D7B,
+ 25323 - 11904: 0xCEDA,
+ 25324 - 11904: 0xAC41,
+ 25325 - 11904: 0xABF8,
+ 25326 - 11904: 0xABFA,
+ 25327 - 11904: 0xAC40,
+ 25328 - 11904: 0xCEE6,
+ 25329 - 11904: 0xABFD,
+ 25330 - 11904: 0xD1B1,
+ 25331 - 11904: 0xAEB1,
+ 25332 - 11904: 0xAC43,
+ 25333 - 11904: 0xCED7,
+ 25334 - 11904: 0xCEDF,
+ 25335 - 11904: 0xABFE,
+ 25336 - 11904: 0xCEDE,
+ 25337 - 11904: 0xCEDB,
+ 25338 - 11904: 0xCEE3,
+ 25339 - 11904: 0xCEE5,
+ 25340 - 11904: 0xABF7,
+ 25341 - 11904: 0xABFB,
+ 25342 - 11904: 0xAC42,
+ 25343 - 11904: 0xAEB3,
+ 25344 - 11904: 0xCEE0,
+ 25345 - 11904: 0xABF9,
+ 25346 - 11904: 0xAC45,
+ 25347 - 11904: 0xCED9,
+ 25351 - 11904: 0xABFC,
+ 25352 - 11904: 0xAEB2,
+ 25353 - 11904: 0xABF6,
+ 25355 - 11904: 0xCED6,
+ 25356 - 11904: 0xCEDD,
+ 25357 - 11904: 0xCED5,
+ 25358 - 11904: 0xCED8,
+ 25359 - 11904: 0xCEDC,
+ 25360 - 11904: 0xD1B2,
+ 25361 - 11904: 0xAC44,
+ 25363 - 11904: 0xCEE1,
+ 25364 - 11904: 0xCEE2,
+ 25365 - 11904: 0xCEE4,
+ 25366 - 11904: 0xABF5,
+ 25368 - 11904: 0x8D7C,
+ 25384 - 11904: 0xAEC1,
+ 25385 - 11904: 0xD1BE,
+ 25386 - 11904: 0xAEBF,
+ 25387 - 11904: 0xAEC0,
+ 25388 - 11904: 0xD1B4,
+ 25389 - 11904: 0xD1C4,
+ 25390 - 11904: 0x9ED6,
+ 25391 - 11904: 0xAEB6,
+ 25393 - 11904: 0x93AC,
+ 25394 - 11904: 0xD566,
+ 25395 - 11904: 0xD1C6,
+ 25396 - 11904: 0xD1C0,
+ 25397 - 11904: 0x9F5B,
+ 25398 - 11904: 0xD1B7,
+ 25399 - 11904: 0x93A9,
+ 25400 - 11904: 0xD1C9,
+ 25401 - 11904: 0xD1BA,
+ 25402 - 11904: 0xAEBC,
+ 25403 - 11904: 0xD57D,
+ 25404 - 11904: 0xD1BD,
+ 25405 - 11904: 0xAEBE,
+ 25406 - 11904: 0xAEB5,
+ 25408 - 11904: 0xD1CB,
+ 25409 - 11904: 0xD1BF,
+ 25410 - 11904: 0xAEB8,
+ 25411 - 11904: 0xD1B8,
+ 25412 - 11904: 0xD1B5,
+ 25413 - 11904: 0xD1B6,
+ 25414 - 11904: 0xAEB9,
+ 25415 - 11904: 0xD1C5,
+ 25416 - 11904: 0xD1CC,
+ 25417 - 11904: 0xAEBB,
+ 25418 - 11904: 0xD1BC,
+ 25419 - 11904: 0xD1BB,
+ 25420 - 11904: 0xAEC3,
+ 25421 - 11904: 0xAEC2,
+ 25422 - 11904: 0xAEB4,
+ 25423 - 11904: 0xAEBA,
+ 25424 - 11904: 0xAEBD,
+ 25425 - 11904: 0xD1C8,
+ 25428 - 11904: 0xD1C2,
+ 25429 - 11904: 0xAEB7,
+ 25430 - 11904: 0xD1B3,
+ 25431 - 11904: 0xD1CA,
+ 25432 - 11904: 0xD1C1,
+ 25433 - 11904: 0xD1C3,
+ 25434 - 11904: 0xD1C7,
+ 25444 - 11904: 0xA07C,
+ 25445 - 11904: 0xD567,
+ 25447 - 11904: 0xB1B7,
+ 25448 - 11904: 0xB1CB,
+ 25449 - 11904: 0xB1CA,
+ 25451 - 11904: 0xB1BF,
+ 25452 - 11904: 0xFCB2,
+ 25453 - 11904: 0xD579,
+ 25454 - 11904: 0xD575,
+ 25455 - 11904: 0xD572,
+ 25456 - 11904: 0xD5A6,
+ 25457 - 11904: 0xB1BA,
+ 25458 - 11904: 0xB1B2,
+ 25461 - 11904: 0xD577,
+ 25462 - 11904: 0xB4A8,
+ 25463 - 11904: 0xB1B6,
+ 25464 - 11904: 0xD5A1,
+ 25465 - 11904: 0x8AC1,
+ 25466 - 11904: 0xB1CC,
+ 25467 - 11904: 0xB1C9,
+ 25468 - 11904: 0xD57B,
+ 25469 - 11904: 0xD56A,
+ 25471 - 11904: 0x9FB4,
+ 25472 - 11904: 0xB1C8,
+ 25473 - 11904: 0xD5A3,
+ 25474 - 11904: 0xD569,
+ 25475 - 11904: 0xB1BD,
+ 25476 - 11904: 0xB1C1,
+ 25477 - 11904: 0xD5A2,
+ 25479 - 11904: 0xD573,
+ 25480 - 11904: 0xB1C2,
+ 25481 - 11904: 0xB1BC,
+ 25482 - 11904: 0xD568,
+ 25483 - 11904: 0xFCAC,
+ 25484 - 11904: 0xB478,
+ 25485 - 11904: 0xD5A5,
+ 25486 - 11904: 0xD571,
+ 25487 - 11904: 0xB1C7,
+ 25488 - 11904: 0xD574,
+ 25489 - 11904: 0xD5A4,
+ 25490 - 11904: 0xB1C6,
+ 25492 - 11904: 0xD952,
+ 25494 - 11904: 0xB1B3,
+ 25495 - 11904: 0xD56F,
+ 25496 - 11904: 0xB1B8,
+ 25497 - 11904: 0xB1C3,
+ 25499 - 11904: 0xB1BE,
+ 25500 - 11904: 0xD578,
+ 25501 - 11904: 0xD56E,
+ 25502 - 11904: 0xD56C,
+ 25503 - 11904: 0xD57E,
+ 25504 - 11904: 0xB1B0,
+ 25505 - 11904: 0xB1C4,
+ 25506 - 11904: 0xB1B4,
+ 25507 - 11904: 0xB477,
+ 25508 - 11904: 0xD57C,
+ 25509 - 11904: 0xB1B5,
+ 25511 - 11904: 0xB1B1,
+ 25512 - 11904: 0xB1C0,
+ 25513 - 11904: 0xB1BB,
+ 25514 - 11904: 0xB1B9,
+ 25515 - 11904: 0xD570,
+ 25516 - 11904: 0xB1C5,
+ 25517 - 11904: 0xD56D,
+ 25518 - 11904: 0xD57A,
+ 25519 - 11904: 0xD576,
+ 25520 - 11904: 0xD954,
+ 25521 - 11904: 0xD953,
+ 25529 - 11904: 0x9E4C,
+ 25533 - 11904: 0xD56B,
+ 25534 - 11904: 0xD964,
+ 25536 - 11904: 0xB47A,
+ 25537 - 11904: 0x8FC5,
+ 25538 - 11904: 0xD96A,
+ 25539 - 11904: 0xD959,
+ 25540 - 11904: 0xD967,
+ 25541 - 11904: 0xDD77,
+ 25542 - 11904: 0xB47D,
+ 25543 - 11904: 0xD96B,
+ 25544 - 11904: 0xD96E,
+ 25545 - 11904: 0xB47C,
+ 25546 - 11904: 0xD95C,
+ 25547 - 11904: 0xD96D,
+ 25548 - 11904: 0xD96C,
+ 25549 - 11904: 0xB47E,
+ 25550 - 11904: 0xD955,
+ 25551 - 11904: 0xB479,
+ 25552 - 11904: 0xB4A3,
+ 25553 - 11904: 0x93AD,
+ 25554 - 11904: 0xB4A1,
+ 25555 - 11904: 0xD969,
+ 25557 - 11904: 0xD95F,
+ 25558 - 11904: 0xB4A5,
+ 25559 - 11904: 0xD970,
+ 25560 - 11904: 0xD968,
+ 25561 - 11904: 0xD971,
+ 25562 - 11904: 0xB4AD,
+ 25563 - 11904: 0xB4AB,
+ 25564 - 11904: 0xD966,
+ 25565 - 11904: 0xD965,
+ 25566 - 11904: 0x9DC3,
+ 25567 - 11904: 0xD963,
+ 25568 - 11904: 0xD95D,
+ 25569 - 11904: 0xB4A4,
+ 25570 - 11904: 0x8DA2,
+ 25571 - 11904: 0xB4A2,
+ 25572 - 11904: 0xD1B9,
+ 25573 - 11904: 0xD956,
+ 25574 - 11904: 0x9D4A,
+ 25575 - 11904: 0xDDB7,
+ 25576 - 11904: 0xD957,
+ 25577 - 11904: 0xB47B,
+ 25578 - 11904: 0xB4AA,
+ 25579 - 11904: 0xDD79,
+ 25581 - 11904: 0xB4A6,
+ 25582 - 11904: 0xB4A7,
+ 25583 - 11904: 0xD958,
+ 25584 - 11904: 0xD96F,
+ 25585 - 11904: 0xDD78,
+ 25586 - 11904: 0xD960,
+ 25587 - 11904: 0xD95B,
+ 25588 - 11904: 0xB4A9,
+ 25589 - 11904: 0xD961,
+ 25590 - 11904: 0xD95E,
+ 25592 - 11904: 0xFCB6,
+ 25593 - 11904: 0xB4AE,
+ 25595 - 11904: 0x8DA3,
+ 25596 - 11904: 0x9E4B,
+ 25598 - 11904: 0x9E4D,
+ 25606 - 11904: 0xB770,
+ 25607 - 11904: 0x8DA4,
+ 25609 - 11904: 0xDD7C,
+ 25610 - 11904: 0xDDB1,
+ 25611 - 11904: 0xDDB6,
+ 25612 - 11904: 0xDDAA,
+ 25613 - 11904: 0xB76C,
+ 25614 - 11904: 0xDDBB,
+ 25615 - 11904: 0xB769,
+ 25616 - 11904: 0xDD7A,
+ 25618 - 11904: 0xDD7B,
+ 25619 - 11904: 0xB762,
+ 25620 - 11904: 0xB76B,
+ 25621 - 11904: 0xDDA4,
+ 25622 - 11904: 0xB76E,
+ 25623 - 11904: 0xB76F,
+ 25624 - 11904: 0xDDA5,
+ 25626 - 11904: 0xDDB2,
+ 25627 - 11904: 0xDDB8,
+ 25628 - 11904: 0xB76A,
+ 25630 - 11904: 0xB764,
+ 25631 - 11904: 0xDDA3,
+ 25632 - 11904: 0xDD7D,
+ 25633 - 11904: 0xDDBA,
+ 25634 - 11904: 0xDDA8,
+ 25635 - 11904: 0xDDA9,
+ 25636 - 11904: 0xDD7E,
+ 25637 - 11904: 0xDDB4,
+ 25638 - 11904: 0xDDAB,
+ 25639 - 11904: 0xDDB5,
+ 25640 - 11904: 0xDDAD,
+ 25642 - 11904: 0xB765,
+ 25643 - 11904: 0xE1D9,
+ 25644 - 11904: 0xB768,
+ 25645 - 11904: 0xB766,
+ 25646 - 11904: 0xDDB9,
+ 25647 - 11904: 0xDDB0,
+ 25648 - 11904: 0xDDAC,
+ 25650 - 11904: 0x8AFD,
+ 25651 - 11904: 0xDDA1,
+ 25652 - 11904: 0xBA53,
+ 25653 - 11904: 0xDDAF,
+ 25654 - 11904: 0xB76D,
+ 25655 - 11904: 0xDDA7,
+ 25656 - 11904: 0xFCB5,
+ 25657 - 11904: 0xDDA6,
+ 25658 - 11904: 0xFCC3,
+ 25659 - 11904: 0x93B2,
+ 25661 - 11904: 0xB767,
+ 25662 - 11904: 0xB763,
+ 25663 - 11904: 0xE1EE,
+ 25664 - 11904: 0xDDB3,
+ 25665 - 11904: 0xDDAE,
+ 25667 - 11904: 0xDDA2,
+ 25675 - 11904: 0xE1E9,
+ 25677 - 11904: 0xE1DA,
+ 25678 - 11904: 0xE1E5,
+ 25680 - 11904: 0xE1EC,
+ 25681 - 11904: 0xBA51,
+ 25682 - 11904: 0xB4AC,
+ 25683 - 11904: 0xE1EA,
+ 25684 - 11904: 0xBA4C,
+ 25688 - 11904: 0xBA4B,
+ 25689 - 11904: 0xE1F1,
+ 25690 - 11904: 0x8DA5,
+ 25691 - 11904: 0xE1DB,
+ 25692 - 11904: 0xE1E8,
+ 25693 - 11904: 0xE1DC,
+ 25694 - 11904: 0xE1E7,
+ 25695 - 11904: 0xBA4F,
+ 25696 - 11904: 0xE1EB,
+ 25697 - 11904: 0xD962,
+ 25701 - 11904: 0xE1F2,
+ 25702 - 11904: 0xE1E3,
+ 25703 - 11904: 0xBA52,
+ 25704 - 11904: 0xE5BA,
+ 25705 - 11904: 0xBCAF,
+ 25707 - 11904: 0xE1F0,
+ 25708 - 11904: 0xE1EF,
+ 25709 - 11904: 0xBA54,
+ 25710 - 11904: 0xE5AD,
+ 25711 - 11904: 0xBCB0,
+ 25712 - 11904: 0xE5AE,
+ 25713 - 11904: 0x93A1,
+ 25714 - 11904: 0xE1DF,
+ 25715 - 11904: 0xE1E0,
+ 25716 - 11904: 0xE1DD,
+ 25717 - 11904: 0xE1E2,
+ 25718 - 11904: 0xE1DE,
+ 25719 - 11904: 0xE1F3,
+ 25720 - 11904: 0xBA4E,
+ 25721 - 11904: 0xBCB1,
+ 25722 - 11904: 0xBA50,
+ 25723 - 11904: 0xBA55,
+ 25724 - 11904: 0x8AC6,
+ 25725 - 11904: 0xE1E1,
+ 25727 - 11904: 0xE1ED,
+ 25730 - 11904: 0xE1E6,
+ 25733 - 11904: 0xE5B1,
+ 25735 - 11904: 0xBA4A,
+ 25736 - 11904: 0xBCB4,
+ 25737 - 11904: 0xE9AA,
+ 25738 - 11904: 0xE5B6,
+ 25739 - 11904: 0xE5B5,
+ 25740 - 11904: 0xE5B7,
+ 25741 - 11904: 0x8A5B,
+ 25743 - 11904: 0xE5B4,
+ 25744 - 11904: 0xFCB9,
+ 25745 - 11904: 0x894D,
+ 25746 - 11904: 0xBCBB,
+ 25747 - 11904: 0xBCB8,
+ 25749 - 11904: 0xBCB9,
+ 25750 - 11904: 0xE5AF,
+ 25751 - 11904: 0xE5B2,
+ 25752 - 11904: 0xE5BC,
+ 25753 - 11904: 0xBCC1,
+ 25754 - 11904: 0xBCBF,
+ 25756 - 11904: 0xE5B3,
+ 25757 - 11904: 0xD95A,
+ 25758 - 11904: 0xBCB2,
+ 25759 - 11904: 0xE5B9,
+ 25760 - 11904: 0xE5B0,
+ 25762 - 11904: 0xBCC2,
+ 25763 - 11904: 0xE5B8,
+ 25764 - 11904: 0xBA4D,
+ 25765 - 11904: 0xBCB7,
+ 25766 - 11904: 0xE1E4,
+ 25769 - 11904: 0xBCBA,
+ 25771 - 11904: 0xBCBE,
+ 25772 - 11904: 0xBCC0,
+ 25773 - 11904: 0xBCBD,
+ 25774 - 11904: 0xBCBC,
+ 25775 - 11904: 0xFED4,
+ 25776 - 11904: 0xBCB6,
+ 25777 - 11904: 0xE5BB,
+ 25778 - 11904: 0xBCB3,
+ 25779 - 11904: 0xBCC3,
+ 25780 - 11904: 0x8A78,
+ 25782 - 11904: 0x93AB,
+ 25787 - 11904: 0xBED8,
+ 25788 - 11904: 0xBED9,
+ 25789 - 11904: 0xE9A9,
+ 25790 - 11904: 0xBEE2,
+ 25791 - 11904: 0xBEDF,
+ 25792 - 11904: 0x8DA7,
+ 25793 - 11904: 0xBED6,
+ 25794 - 11904: 0xBEDD,
+ 25795 - 11904: 0xE9AB,
+ 25796 - 11904: 0xBEDB,
+ 25797 - 11904: 0xBED5,
+ 25799 - 11904: 0xBEDC,
+ 25801 - 11904: 0xE9A8,
+ 25802 - 11904: 0xC0BB,
+ 25803 - 11904: 0xBED7,
+ 25805 - 11904: 0xBEDE,
+ 25806 - 11904: 0xC0BA,
+ 25807 - 11904: 0xE9A7,
+ 25808 - 11904: 0xE9A6,
+ 25810 - 11904: 0xBEE0,
+ 25811 - 11904: 0x9F45,
+ 25812 - 11904: 0xBEE1,
+ 25814 - 11904: 0xE9A5,
+ 25815 - 11904: 0xE9A4,
+ 25816 - 11904: 0xC0BC,
+ 25817 - 11904: 0xE9AE,
+ 25818 - 11904: 0xBEDA,
+ 25819 - 11904: 0xE9AC,
+ 25821 - 11904: 0x8A56,
+ 25824 - 11904: 0xC0BD,
+ 25825 - 11904: 0xFCBF,
+ 25826 - 11904: 0xC0C2,
+ 25827 - 11904: 0xECEA,
+ 25828 - 11904: 0xECEC,
+ 25829 - 11904: 0xFCC0,
+ 25830 - 11904: 0xC0BF,
+ 25831 - 11904: 0x8EE6,
+ 25832 - 11904: 0xECED,
+ 25833 - 11904: 0xECE9,
+ 25834 - 11904: 0x8AA4,
+ 25835 - 11904: 0xECEB,
+ 25836 - 11904: 0xC0C0,
+ 25837 - 11904: 0xC0C3,
+ 25839 - 11904: 0xECE8,
+ 25840 - 11904: 0xC0BE,
+ 25841 - 11904: 0xC0C1,
+ 25842 - 11904: 0xC259,
+ 25843 - 11904: 0xE9AD,
+ 25844 - 11904: 0xC258,
+ 25847 - 11904: 0xC25E,
+ 25848 - 11904: 0xEFD4,
+ 25850 - 11904: 0xC25C,
+ 25851 - 11904: 0xC25D,
+ 25852 - 11904: 0xEFD7,
+ 25853 - 11904: 0xEFD3,
+ 25854 - 11904: 0xC25A,
+ 25855 - 11904: 0xEFD1,
+ 25856 - 11904: 0xC36B,
+ 25857 - 11904: 0xEFD5,
+ 25859 - 11904: 0xEFD6,
+ 25860 - 11904: 0xEFD2,
+ 25862 - 11904: 0xC25B,
+ 25863 - 11904: 0xF242,
+ 25865 - 11904: 0xF245,
+ 25866 - 11904: 0x8943,
+ 25868 - 11904: 0xF246,
+ 25869 - 11904: 0xF244,
+ 25870 - 11904: 0xF247,
+ 25871 - 11904: 0xC36C,
+ 25872 - 11904: 0xF243,
+ 25873 - 11904: 0x93F3,
+ 25875 - 11904: 0xF44E,
+ 25876 - 11904: 0xC464,
+ 25877 - 11904: 0xF44D,
+ 25878 - 11904: 0xF44C,
+ 25879 - 11904: 0xF44B,
+ 25880 - 11904: 0xC463,
+ 25881 - 11904: 0xC465,
+ 25883 - 11904: 0xF5CD,
+ 25884 - 11904: 0xC4E2,
+ 25885 - 11904: 0xC4E1,
+ 25886 - 11904: 0xFCAB,
+ 25887 - 11904: 0x9EA2,
+ 25888 - 11904: 0xF6E1,
+ 25889 - 11904: 0xF6E0,
+ 25890 - 11904: 0xF6E3,
+ 25891 - 11904: 0xC5CB,
+ 25892 - 11904: 0xC575,
+ 25893 - 11904: 0xF7DD,
+ 25894 - 11904: 0xF6E2,
+ 25897 - 11904: 0xF7DC,
+ 25898 - 11904: 0xC5CD,
+ 25899 - 11904: 0xC5CC,
+ 25900 - 11904: 0xC5F3,
+ 25901 - 11904: 0xF8A9,
+ 25902 - 11904: 0xF8EF,
+ 25903 - 11904: 0xA4E4,
+ 25904 - 11904: 0x9DC7,
+ 25906 - 11904: 0xD972,
+ 25907 - 11904: 0xE9AF,
+ 25908 - 11904: 0xC6D2,
+ 25909 - 11904: 0x8BCE,
+ 25910 - 11904: 0xA6AC,
+ 25911 - 11904: 0xCAF7,
+ 25912 - 11904: 0xA7F1,
+ 25913 - 11904: 0xA7EF,
+ 25915 - 11904: 0xA7F0,
+ 25917 - 11904: 0xCCC1,
+ 25918 - 11904: 0xA9F1,
+ 25919 - 11904: 0xAC46,
+ 25921 - 11904: 0xCEE7,
+ 25923 - 11904: 0xCEE8,
+ 25925 - 11904: 0xAC47,
+ 25926 - 11904: 0xD1CE,
+ 25928 - 11904: 0xAEC4,
+ 25929 - 11904: 0xAEC5,
+ 25930 - 11904: 0xD1CD,
+ 25933 - 11904: 0xFCC5,
+ 25935 - 11904: 0xB1D3,
+ 25937 - 11904: 0xB1CF,
+ 25939 - 11904: 0xD5A7,
+ 25940 - 11904: 0xB1D6,
+ 25941 - 11904: 0xB1D5,
+ 25942 - 11904: 0xB1CE,
+ 25943 - 11904: 0xB1D1,
+ 25944 - 11904: 0xB1D4,
+ 25945 - 11904: 0xB1D0,
+ 25948 - 11904: 0xD976,
+ 25949 - 11904: 0xB1CD,
+ 25950 - 11904: 0xB4AF,
+ 25951 - 11904: 0xFCCB,
+ 25954 - 11904: 0xB4B1,
+ 25955 - 11904: 0xB4B2,
+ 25956 - 11904: 0xD975,
+ 25957 - 11904: 0xD978,
+ 25958 - 11904: 0xB4B0,
+ 25959 - 11904: 0xD973,
+ 25960 - 11904: 0xD977,
+ 25962 - 11904: 0xD974,
+ 25963 - 11904: 0x93B3,
+ 25964 - 11904: 0xB771,
+ 25965 - 11904: 0xFCCA,
+ 25967 - 11904: 0xDDBC,
+ 25970 - 11904: 0xBA56,
+ 25971 - 11904: 0xE1F4,
+ 25972 - 11904: 0xBEE3,
+ 25973 - 11904: 0xBCC4,
+ 25974 - 11904: 0xE5BD,
+ 25975 - 11904: 0xBCC5,
+ 25976 - 11904: 0xBCC6,
+ 25977 - 11904: 0xE5BF,
+ 25978 - 11904: 0xE5BE,
+ 25979 - 11904: 0xE5C0,
+ 25980 - 11904: 0xE9B1,
+ 25983 - 11904: 0xE9B0,
+ 25984 - 11904: 0xECEF,
+ 25985 - 11904: 0xECEE,
+ 25986 - 11904: 0xC0C4,
+ 25987 - 11904: 0xC0C5,
+ 25988 - 11904: 0xF248,
+ 25989 - 11904: 0xFCC9,
+ 25990 - 11904: 0x8DAC,
+ 25991 - 11904: 0xA4E5,
+ 25992 - 11904: 0xFBC6,
+ 25993 - 11904: 0x8967,
+ 25995 - 11904: 0x8C7E,
+ 25996 - 11904: 0xD979,
+ 26000 - 11904: 0xB4B4,
+ 26001 - 11904: 0xB4B3,
+ 26002 - 11904: 0xDDBD,
+ 26004 - 11904: 0xEFD8,
+ 26005 - 11904: 0xC4E3,
+ 26006 - 11904: 0xF7DE,
+ 26007 - 11904: 0xA4E6,
+ 26009 - 11904: 0xAEC6,
+ 26011 - 11904: 0xB1D8,
+ 26012 - 11904: 0xB1D7,
+ 26013 - 11904: 0xD97A,
+ 26014 - 11904: 0xD97B,
+ 26015 - 11904: 0xB772,
+ 26016 - 11904: 0xE1F5,
+ 26017 - 11904: 0xBA57,
+ 26018 - 11904: 0xE9B2,
+ 26020 - 11904: 0xA4E7,
+ 26021 - 11904: 0xA5B8,
+ 26023 - 11904: 0xA9F2,
+ 26024 - 11904: 0xCCC2,
+ 26026 - 11904: 0xCEE9,
+ 26027 - 11904: 0xAC48,
+ 26028 - 11904: 0xB1D9,
+ 26030 - 11904: 0xD97C,
+ 26031 - 11904: 0xB4B5,
+ 26032 - 11904: 0xB773,
+ 26034 - 11904: 0xE5C1,
+ 26035 - 11904: 0xE5C2,
+ 26037 - 11904: 0xFCCD,
+ 26038 - 11904: 0xECF0,
+ 26039 - 11904: 0xC25F,
+ 26040 - 11904: 0xF8F0,
+ 26041 - 11904: 0xA4E8,
+ 26043 - 11904: 0xCCC3,
+ 26044 - 11904: 0xA9F3,
+ 26045 - 11904: 0xAC49,
+ 26046 - 11904: 0x9CF3,
+ 26047 - 11904: 0xCEEA,
+ 26049 - 11904: 0xAEC7,
+ 26050 - 11904: 0xD1D2,
+ 26051 - 11904: 0xD1D0,
+ 26052 - 11904: 0xD1D1,
+ 26053 - 11904: 0xAEC8,
+ 26054 - 11904: 0xD1CF,
+ 26059 - 11904: 0xB1DB,
+ 26060 - 11904: 0xB1DC,
+ 26061 - 11904: 0xD5A8,
+ 26062 - 11904: 0xB1DD,
+ 26063 - 11904: 0xB1DA,
+ 26064 - 11904: 0xD97D,
+ 26065 - 11904: 0xFCD0,
+ 26066 - 11904: 0xD97E,
+ 26067 - 11904: 0xDDBE,
+ 26068 - 11904: 0x95BB,
+ 26070 - 11904: 0xBA59,
+ 26071 - 11904: 0xBA58,
+ 26074 - 11904: 0xECF1,
+ 26075 - 11904: 0xEFD9,
+ 26077 - 11904: 0xF24A,
+ 26078 - 11904: 0xF249,
+ 26079 - 11904: 0xF44F,
+ 26080 - 11904: 0xFCD3,
+ 26081 - 11904: 0xC95E,
+ 26082 - 11904: 0xAC4A,
+ 26083 - 11904: 0xFCD4,
+ 26085 - 11904: 0xA4E9,
+ 26086 - 11904: 0xA5B9,
+ 26088 - 11904: 0xA6AE,
+ 26089 - 11904: 0xA6AD,
+ 26092 - 11904: 0xA6AF,
+ 26093 - 11904: 0xA6B0,
+ 26094 - 11904: 0xC9EE,
+ 26095 - 11904: 0xC9ED,
+ 26096 - 11904: 0xCAF8,
+ 26097 - 11904: 0xA7F2,
+ 26098 - 11904: 0xCAFB,
+ 26099 - 11904: 0xCAFA,
+ 26100 - 11904: 0xCAF9,
+ 26101 - 11904: 0xCAFC,
+ 26106 - 11904: 0xA9F4,
+ 26107 - 11904: 0xCCC9,
+ 26108 - 11904: 0xCCC5,
+ 26109 - 11904: 0xCCCE,
+ 26111 - 11904: 0x8DAE,
+ 26112 - 11904: 0xA9FB,
+ 26114 - 11904: 0xA9F9,
+ 26115 - 11904: 0xCCCA,
+ 26116 - 11904: 0xCCC6,
+ 26117 - 11904: 0xCCCD,
+ 26118 - 11904: 0xA9F8,
+ 26119 - 11904: 0xAA40,
+ 26120 - 11904: 0xCCC8,
+ 26121 - 11904: 0xCCC4,
+ 26122 - 11904: 0xA9FE,
+ 26123 - 11904: 0xCCCB,
+ 26124 - 11904: 0xA9F7,
+ 26125 - 11904: 0xCCCC,
+ 26126 - 11904: 0xA9FA,
+ 26127 - 11904: 0xA9FC,
+ 26128 - 11904: 0xCCD0,
+ 26129 - 11904: 0xCCCF,
+ 26130 - 11904: 0xCCC7,
+ 26131 - 11904: 0xA9F6,
+ 26132 - 11904: 0xA9F5,
+ 26133 - 11904: 0xA9FD,
+ 26136 - 11904: 0xFCD7,
+ 26140 - 11904: 0xCEEF,
+ 26141 - 11904: 0xCEF5,
+ 26142 - 11904: 0x93DB,
+ 26143 - 11904: 0xAC50,
+ 26144 - 11904: 0xAC4D,
+ 26145 - 11904: 0xCEEC,
+ 26146 - 11904: 0xCEF1,
+ 26147 - 11904: 0xFE63,
+ 26148 - 11904: 0xAC53,
+ 26149 - 11904: 0xAC4B,
+ 26150 - 11904: 0xCEF0,
+ 26151 - 11904: 0xAC4E,
+ 26152 - 11904: 0xAC51,
+ 26155 - 11904: 0xCEF3,
+ 26157 - 11904: 0xAC4C,
+ 26158 - 11904: 0xCEF8,
+ 26159 - 11904: 0xAC4F,
+ 26160 - 11904: 0x93D5,
+ 26161 - 11904: 0xAC52,
+ 26162 - 11904: 0xCEED,
+ 26163 - 11904: 0xCEF2,
+ 26164 - 11904: 0xCEF6,
+ 26165 - 11904: 0xCEEE,
+ 26166 - 11904: 0xCEEB,
+ 26169 - 11904: 0xCEF7,
+ 26170 - 11904: 0xCEF4,
+ 26177 - 11904: 0xAED0,
+ 26178 - 11904: 0xAEC9,
+ 26179 - 11904: 0xAECC,
+ 26180 - 11904: 0xFCDA,
+ 26181 - 11904: 0xAECF,
+ 26183 - 11904: 0xD1D5,
+ 26184 - 11904: 0x9B71,
+ 26185 - 11904: 0xAECA,
+ 26186 - 11904: 0xD1D3,
+ 26187 - 11904: 0xFCDD,
+ 26188 - 11904: 0xAECE,
+ 26189 - 11904: 0x8764,
+ 26191 - 11904: 0xAECB,
+ 26193 - 11904: 0xD1D6,
+ 26194 - 11904: 0xAECD,
+ 26195 - 11904: 0x8DAF,
+ 26199 - 11904: 0xFAF2,
+ 26201 - 11904: 0xD5AC,
+ 26202 - 11904: 0xB1DF,
+ 26203 - 11904: 0xD5AB,
+ 26204 - 11904: 0xD5AD,
+ 26205 - 11904: 0xB1DE,
+ 26206 - 11904: 0xB1E3,
+ 26207 - 11904: 0xD1D4,
+ 26208 - 11904: 0x87B5,
+ 26209 - 11904: 0xD5AA,
+ 26210 - 11904: 0xD5AE,
+ 26211 - 11904: 0x93D8,
+ 26212 - 11904: 0xB1E0,
+ 26213 - 11904: 0xD5A9,
+ 26214 - 11904: 0xB1E2,
+ 26215 - 11904: 0xFCDF,
+ 26216 - 11904: 0xB1E1,
+ 26218 - 11904: 0xD9A7,
+ 26219 - 11904: 0x93D3,
+ 26220 - 11904: 0xD9A2,
+ 26222 - 11904: 0xB4B6,
+ 26223 - 11904: 0xB4BA,
+ 26224 - 11904: 0xB4B7,
+ 26225 - 11904: 0xD9A5,
+ 26226 - 11904: 0xD9A8,
+ 26227 - 11904: 0xFCE1,
+ 26228 - 11904: 0xFCE2,
+ 26230 - 11904: 0xB4B9,
+ 26231 - 11904: 0xB4BE,
+ 26232 - 11904: 0xDDC7,
+ 26233 - 11904: 0xD9A6,
+ 26234 - 11904: 0xB4BC,
+ 26235 - 11904: 0xD9A3,
+ 26236 - 11904: 0xD9A1,
+ 26237 - 11904: 0x8E76,
+ 26238 - 11904: 0xB4BD,
+ 26240 - 11904: 0xD9A4,
+ 26244 - 11904: 0xB779,
+ 26245 - 11904: 0xFC62,
+ 26246 - 11904: 0xDDBF,
+ 26247 - 11904: 0xB776,
+ 26248 - 11904: 0xB777,
+ 26249 - 11904: 0xB775,
+ 26250 - 11904: 0xDDC4,
+ 26251 - 11904: 0xDDC3,
+ 26252 - 11904: 0xDDC0,
+ 26253 - 11904: 0xB77B,
+ 26254 - 11904: 0x93D1,
+ 26256 - 11904: 0xDDC2,
+ 26257 - 11904: 0xB4BB,
+ 26258 - 11904: 0x8DB1,
+ 26260 - 11904: 0xDDC6,
+ 26261 - 11904: 0xDDC1,
+ 26262 - 11904: 0xB778,
+ 26263 - 11904: 0xB774,
+ 26264 - 11904: 0xB77A,
+ 26265 - 11904: 0xDDC5,
+ 26266 - 11904: 0x9859,
+ 26269 - 11904: 0xBA5C,
+ 26271 - 11904: 0xE1F8,
+ 26272 - 11904: 0xE1F7,
+ 26273 - 11904: 0xE1F6,
+ 26274 - 11904: 0xBA5A,
+ 26276 - 11904: 0xFB52,
+ 26280 - 11904: 0xBA5B,
+ 26281 - 11904: 0xE5C5,
+ 26282 - 11904: 0xE5C8,
+ 26283 - 11904: 0xBCC8,
+ 26285 - 11904: 0xFB53,
+ 26286 - 11904: 0xBCC7,
+ 26287 - 11904: 0xE5C9,
+ 26288 - 11904: 0xE5C4,
+ 26289 - 11904: 0xBCCA,
+ 26290 - 11904: 0xE5C6,
+ 26291 - 11904: 0xFB4D,
+ 26292 - 11904: 0xBCC9,
+ 26293 - 11904: 0xE5C3,
+ 26294 - 11904: 0x9CBF,
+ 26295 - 11904: 0xE5C7,
+ 26296 - 11904: 0xBEE9,
+ 26297 - 11904: 0xBEE6,
+ 26298 - 11904: 0xE9BB,
+ 26299 - 11904: 0xE9BA,
+ 26301 - 11904: 0xE9B9,
+ 26302 - 11904: 0xE9B4,
+ 26303 - 11904: 0x9B72,
+ 26304 - 11904: 0xE9B5,
+ 26308 - 11904: 0xBEE7,
+ 26310 - 11904: 0xBEE4,
+ 26311 - 11904: 0xBEE8,
+ 26312 - 11904: 0xE9B3,
+ 26313 - 11904: 0xBEE5,
+ 26314 - 11904: 0xE9B6,
+ 26315 - 11904: 0xE9B7,
+ 26316 - 11904: 0xE9BC,
+ 26317 - 11904: 0xFB50,
+ 26318 - 11904: 0x93BE,
+ 26319 - 11904: 0xE9B8,
+ 26322 - 11904: 0xECF2,
+ 26326 - 11904: 0xC0C7,
+ 26328 - 11904: 0xEFDC,
+ 26329 - 11904: 0xC0C6,
+ 26330 - 11904: 0xEFDA,
+ 26331 - 11904: 0xEFDB,
+ 26332 - 11904: 0xC260,
+ 26333 - 11904: 0xC36E,
+ 26334 - 11904: 0xF24B,
+ 26336 - 11904: 0xC36D,
+ 26339 - 11904: 0xF451,
+ 26340 - 11904: 0xF452,
+ 26342 - 11904: 0xC466,
+ 26343 - 11904: 0x8CDB,
+ 26344 - 11904: 0xF450,
+ 26345 - 11904: 0xC4E4,
+ 26347 - 11904: 0xF7DF,
+ 26348 - 11904: 0xC5CE,
+ 26349 - 11904: 0xF8AA,
+ 26350 - 11904: 0xF8AB,
+ 26352 - 11904: 0xA4EA,
+ 26353 - 11904: 0x9DF1,
+ 26354 - 11904: 0xA6B1,
+ 26355 - 11904: 0xA6B2,
+ 26356 - 11904: 0xA7F3,
+ 26358 - 11904: 0xCCD1,
+ 26359 - 11904: 0xAC54,
+ 26360 - 11904: 0xAED1,
+ 26361 - 11904: 0xB1E4,
+ 26364 - 11904: 0xB0D2,
+ 26366 - 11904: 0xB4BF,
+ 26367 - 11904: 0xB4C0,
+ 26368 - 11904: 0xB3CC,
+ 26369 - 11904: 0xD9A9,
+ 26370 - 11904: 0xFCEB,
+ 26371 - 11904: 0xB77C,
+ 26372 - 11904: 0xE1FA,
+ 26373 - 11904: 0xE1F9,
+ 26376 - 11904: 0xA4EB,
+ 26377 - 11904: 0xA6B3,
+ 26378 - 11904: 0xCCD2,
+ 26379 - 11904: 0xAA42,
+ 26380 - 11904: 0xA0BB,
+ 26381 - 11904: 0xAA41,
+ 26382 - 11904: 0x9B7E,
+ 26383 - 11904: 0xCEF9,
+ 26384 - 11904: 0xCEFA,
+ 26386 - 11904: 0xD1D7,
+ 26387 - 11904: 0xD1D8,
+ 26388 - 11904: 0xAED2,
+ 26389 - 11904: 0xAED3,
+ 26390 - 11904: 0x8DB3,
+ 26391 - 11904: 0xAED4,
+ 26392 - 11904: 0xD5AF,
+ 26393 - 11904: 0x8C52,
+ 26395 - 11904: 0xB1E6,
+ 26397 - 11904: 0xB4C2,
+ 26398 - 11904: 0x9AE8,
+ 26399 - 11904: 0xB4C1,
+ 26400 - 11904: 0xDDC8,
+ 26401 - 11904: 0xDF7A,
+ 26402 - 11904: 0xE1FB,
+ 26403 - 11904: 0xE9BD,
+ 26405 - 11904: 0x8EDC,
+ 26406 - 11904: 0xC261,
+ 26407 - 11904: 0xC467,
+ 26408 - 11904: 0xA4EC,
+ 26410 - 11904: 0xA5BC,
+ 26411 - 11904: 0xA5BD,
+ 26412 - 11904: 0xA5BB,
+ 26413 - 11904: 0xA5BE,
+ 26414 - 11904: 0xA5BA,
+ 26417 - 11904: 0xA6B6,
+ 26419 - 11904: 0xC9F6,
+ 26420 - 11904: 0xA6B5,
+ 26421 - 11904: 0xA6B7,
+ 26422 - 11904: 0x9CF9,
+ 26424 - 11904: 0xC9F1,
+ 26425 - 11904: 0xC9F0,
+ 26426 - 11904: 0xC9F3,
+ 26427 - 11904: 0xC9F2,
+ 26428 - 11904: 0xC9F5,
+ 26429 - 11904: 0xA6B4,
+ 26430 - 11904: 0xC9EF,
+ 26431 - 11904: 0xC9F4,
+ 26436 - 11904: 0xFA50,
+ 26437 - 11904: 0xCAFD,
+ 26438 - 11904: 0xA7FD,
+ 26439 - 11904: 0xCAFE,
+ 26440 - 11904: 0xCB43,
+ 26441 - 11904: 0xA7FC,
+ 26443 - 11904: 0xCB47,
+ 26444 - 11904: 0xCB42,
+ 26445 - 11904: 0xCB45,
+ 26446 - 11904: 0xA7F5,
+ 26447 - 11904: 0xA7F6,
+ 26448 - 11904: 0xA7F7,
+ 26449 - 11904: 0xA7F8,
+ 26451 - 11904: 0xA840,
+ 26453 - 11904: 0xCB41,
+ 26454 - 11904: 0xA7FA,
+ 26455 - 11904: 0xA841,
+ 26457 - 11904: 0xCB40,
+ 26458 - 11904: 0xCB46,
+ 26460 - 11904: 0xA7F9,
+ 26461 - 11904: 0xCB44,
+ 26462 - 11904: 0xFCF1,
+ 26463 - 11904: 0xA7F4,
+ 26464 - 11904: 0xA7FE,
+ 26465 - 11904: 0x98E7,
+ 26466 - 11904: 0xFCF3,
+ 26471 - 11904: 0xFCF2,
+ 26474 - 11904: 0xAA57,
+ 26475 - 11904: 0x8CCA,
+ 26476 - 11904: 0xCCD4,
+ 26477 - 11904: 0xAA43,
+ 26478 - 11904: 0x8775,
+ 26479 - 11904: 0xAA4D,
+ 26480 - 11904: 0xAA4E,
+ 26481 - 11904: 0xAA46,
+ 26482 - 11904: 0xAA58,
+ 26483 - 11904: 0xAA48,
+ 26484 - 11904: 0xCCDC,
+ 26485 - 11904: 0xAA53,
+ 26486 - 11904: 0xCCD7,
+ 26487 - 11904: 0xAA49,
+ 26488 - 11904: 0xCCE6,
+ 26489 - 11904: 0xCCE7,
+ 26490 - 11904: 0xCCDF,
+ 26491 - 11904: 0xCCD8,
+ 26492 - 11904: 0xAA56,
+ 26493 - 11904: 0xCCE4,
+ 26494 - 11904: 0xAA51,
+ 26495 - 11904: 0xAA4F,
+ 26497 - 11904: 0xCCE5,
+ 26498 - 11904: 0x87BA,
+ 26499 - 11904: 0xCCE3,
+ 26500 - 11904: 0xCCDB,
+ 26501 - 11904: 0xCCD3,
+ 26502 - 11904: 0xCCDA,
+ 26503 - 11904: 0xAA4A,
+ 26505 - 11904: 0xAA50,
+ 26507 - 11904: 0xAA44,
+ 26508 - 11904: 0xCCDE,
+ 26509 - 11904: 0xCCDD,
+ 26510 - 11904: 0xCCD5,
+ 26511 - 11904: 0x93E5,
+ 26512 - 11904: 0xAA52,
+ 26513 - 11904: 0xCCE1,
+ 26514 - 11904: 0xCCD6,
+ 26515 - 11904: 0xAA55,
+ 26516 - 11904: 0xCCE8,
+ 26517 - 11904: 0xAA45,
+ 26519 - 11904: 0xAA4C,
+ 26520 - 11904: 0xCCD9,
+ 26521 - 11904: 0xCCE2,
+ 26522 - 11904: 0xAA54,
+ 26524 - 11904: 0xAA47,
+ 26525 - 11904: 0xAA4B,
+ 26527 - 11904: 0xCCE0,
+ 26528 - 11904: 0x9A59,
+ 26532 - 11904: 0x8DB5,
+ 26540 - 11904: 0xFD4D,
+ 26542 - 11904: 0xCF5B,
+ 26543 - 11904: 0xAC5C,
+ 26544 - 11904: 0xAC69,
+ 26545 - 11904: 0xFD5E,
+ 26546 - 11904: 0xCF56,
+ 26547 - 11904: 0xCF4C,
+ 26548 - 11904: 0xAC62,
+ 26549 - 11904: 0xCF4A,
+ 26550 - 11904: 0xAC5B,
+ 26551 - 11904: 0xCF45,
+ 26552 - 11904: 0xAC65,
+ 26553 - 11904: 0xCF52,
+ 26554 - 11904: 0xCEFE,
+ 26555 - 11904: 0xCF41,
+ 26559 - 11904: 0x8F7D,
+ 26560 - 11904: 0xCF44,
+ 26561 - 11904: 0xCEFB,
+ 26562 - 11904: 0xCF51,
+ 26563 - 11904: 0xCF61,
+ 26564 - 11904: 0xAC60,
+ 26565 - 11904: 0xCF46,
+ 26566 - 11904: 0xCF58,
+ 26568 - 11904: 0xCEFD,
+ 26569 - 11904: 0xCF5F,
+ 26570 - 11904: 0xCF60,
+ 26571 - 11904: 0xCF63,
+ 26572 - 11904: 0xCF5A,
+ 26573 - 11904: 0xCF4B,
+ 26574 - 11904: 0xCF53,
+ 26575 - 11904: 0xAC66,
+ 26576 - 11904: 0xAC59,
+ 26577 - 11904: 0xAC61,
+ 26578 - 11904: 0xAC6D,
+ 26579 - 11904: 0xAC56,
+ 26580 - 11904: 0xAC58,
+ 26582 - 11904: 0x9547,
+ 26583 - 11904: 0xFCF6,
+ 26584 - 11904: 0xCF43,
+ 26585 - 11904: 0xAC6A,
+ 26586 - 11904: 0xAC63,
+ 26587 - 11904: 0xCF5D,
+ 26588 - 11904: 0xCF40,
+ 26589 - 11904: 0xAC6C,
+ 26590 - 11904: 0xAC67,
+ 26591 - 11904: 0xCF49,
+ 26594 - 11904: 0xAC6B,
+ 26595 - 11904: 0xCF50,
+ 26596 - 11904: 0xCF48,
+ 26597 - 11904: 0xAC64,
+ 26598 - 11904: 0xCF5C,
+ 26599 - 11904: 0xCF54,
+ 26601 - 11904: 0xAC5E,
+ 26602 - 11904: 0xCF62,
+ 26603 - 11904: 0xCF47,
+ 26604 - 11904: 0xAC5A,
+ 26605 - 11904: 0xCF59,
+ 26606 - 11904: 0xCF4F,
+ 26607 - 11904: 0xAC5F,
+ 26608 - 11904: 0xCF55,
+ 26609 - 11904: 0xAC57,
+ 26610 - 11904: 0xCEFC,
+ 26611 - 11904: 0xAC68,
+ 26612 - 11904: 0xAEE3,
+ 26613 - 11904: 0xAC5D,
+ 26614 - 11904: 0xCF4E,
+ 26615 - 11904: 0xCF4D,
+ 26616 - 11904: 0xCF42,
+ 26617 - 11904: 0x9250,
+ 26618 - 11904: 0xCF5E,
+ 26620 - 11904: 0xCF57,
+ 26622 - 11904: 0x8968,
+ 26623 - 11904: 0xAC55,
+ 26624 - 11904: 0x8DB6,
+ 26625 - 11904: 0xFCFB,
+ 26626 - 11904: 0xA07D,
+ 26627 - 11904: 0x98FC,
+ 26628 - 11904: 0x8969,
+ 26637 - 11904: 0xFE4F,
+ 26640 - 11904: 0x9256,
+ 26642 - 11904: 0xD1EC,
+ 26643 - 11904: 0xAEEA,
+ 26644 - 11904: 0xD1ED,
+ 26646 - 11904: 0xD1E1,
+ 26647 - 11904: 0xAEDF,
+ 26648 - 11904: 0xAEEB,
+ 26650 - 11904: 0xD1DA,
+ 26651 - 11904: 0xFAC9,
+ 26652 - 11904: 0xD1E3,
+ 26653 - 11904: 0xD1EB,
+ 26654 - 11904: 0x93E8,
+ 26655 - 11904: 0xD1D9,
+ 26656 - 11904: 0xD1F4,
+ 26657 - 11904: 0xAED5,
+ 26658 - 11904: 0xFCF8,
+ 26661 - 11904: 0xD1F3,
+ 26662 - 11904: 0xD1EE,
+ 26664 - 11904: 0xD1EF,
+ 26665 - 11904: 0xAEDD,
+ 26666 - 11904: 0xAEE8,
+ 26667 - 11904: 0xD1E5,
+ 26669 - 11904: 0xD1E6,
+ 26670 - 11904: 0xD1F0,
+ 26671 - 11904: 0xD1E7,
+ 26673 - 11904: 0xD1E2,
+ 26674 - 11904: 0xD1DC,
+ 26675 - 11904: 0xD1DD,
+ 26676 - 11904: 0xD1EA,
+ 26677 - 11904: 0xD1E4,
+ 26678 - 11904: 0x9CE3,
+ 26679 - 11904: 0xFDA9,
+ 26680 - 11904: 0xAED6,
+ 26681 - 11904: 0xAEDA,
+ 26682 - 11904: 0xD1F2,
+ 26683 - 11904: 0xD1DE,
+ 26684 - 11904: 0xAEE6,
+ 26685 - 11904: 0xAEE2,
+ 26686 - 11904: 0xFC44,
+ 26688 - 11904: 0xAEE5,
+ 26689 - 11904: 0xAEEC,
+ 26690 - 11904: 0xAEDB,
+ 26691 - 11904: 0xAEE7,
+ 26692 - 11904: 0xD1E9,
+ 26693 - 11904: 0xAEE9,
+ 26694 - 11904: 0xAED8,
+ 26695 - 11904: 0x9640,
+ 26696 - 11904: 0xAED7,
+ 26697 - 11904: 0xD1DB,
+ 26698 - 11904: 0x8DB8,
+ 26699 - 11904: 0xD1DF,
+ 26700 - 11904: 0xAEE0,
+ 26701 - 11904: 0xD1F1,
+ 26702 - 11904: 0xD1E8,
+ 26703 - 11904: 0xD1E0,
+ 26704 - 11904: 0xAEE4,
+ 26705 - 11904: 0xAEE1,
+ 26707 - 11904: 0xAED9,
+ 26708 - 11904: 0xAEDC,
+ 26709 - 11904: 0x9B4A,
+ 26710 - 11904: 0x8FB9,
+ 26717 - 11904: 0xFCFE,
+ 26725 - 11904: 0x896A,
+ 26731 - 11904: 0xD5C4,
+ 26733 - 11904: 0xD5B4,
+ 26734 - 11904: 0xD5B5,
+ 26735 - 11904: 0xD5B9,
+ 26737 - 11904: 0xD5C8,
+ 26738 - 11904: 0xD5C5,
+ 26740 - 11904: 0xD5BE,
+ 26741 - 11904: 0xD5BD,
+ 26742 - 11904: 0xB1ED,
+ 26743 - 11904: 0xD5C1,
+ 26744 - 11904: 0xD5D0,
+ 26745 - 11904: 0xD5B0,
+ 26747 - 11904: 0xD5D1,
+ 26748 - 11904: 0xD5C3,
+ 26749 - 11904: 0xD5D5,
+ 26750 - 11904: 0xD5C9,
+ 26751 - 11904: 0xB1EC,
+ 26752 - 11904: 0xD5C7,
+ 26753 - 11904: 0xB1E7,
+ 26754 - 11904: 0xB1FC,
+ 26755 - 11904: 0xB1F2,
+ 26756 - 11904: 0x8DB9,
+ 26757 - 11904: 0xB1F6,
+ 26758 - 11904: 0xB1F5,
+ 26759 - 11904: 0xD5B1,
+ 26760 - 11904: 0x917E,
+ 26761 - 11904: 0xD5CE,
+ 26762 - 11904: 0xD5D4,
+ 26763 - 11904: 0xD5CC,
+ 26764 - 11904: 0xD5D3,
+ 26767 - 11904: 0xD5C0,
+ 26768 - 11904: 0xD5B2,
+ 26769 - 11904: 0xD5D2,
+ 26770 - 11904: 0xD5C2,
+ 26771 - 11904: 0xB1EA,
+ 26772 - 11904: 0xB1F7,
+ 26774 - 11904: 0xD5CB,
+ 26775 - 11904: 0xB1F0,
+ 26776 - 11904: 0x93F4,
+ 26779 - 11904: 0xD5CA,
+ 26780 - 11904: 0xD5B3,
+ 26781 - 11904: 0xB1F8,
+ 26783 - 11904: 0xB1FA,
+ 26784 - 11904: 0xD5CD,
+ 26785 - 11904: 0xB1FB,
+ 26786 - 11904: 0xB1E9,
+ 26787 - 11904: 0xD5BA,
+ 26788 - 11904: 0xD5CF,
+ 26790 - 11904: 0xFB7C,
+ 26791 - 11904: 0xB1EF,
+ 26792 - 11904: 0xB1F9,
+ 26793 - 11904: 0xD5BC,
+ 26794 - 11904: 0xD5C6,
+ 26795 - 11904: 0xD5B7,
+ 26796 - 11904: 0xD5BB,
+ 26797 - 11904: 0xB1F4,
+ 26798 - 11904: 0xD5B6,
+ 26799 - 11904: 0xB1E8,
+ 26800 - 11904: 0xB1F1,
+ 26801 - 11904: 0xB1EE,
+ 26802 - 11904: 0xD5BF,
+ 26803 - 11904: 0xAEDE,
+ 26804 - 11904: 0xD9C0,
+ 26805 - 11904: 0xB1EB,
+ 26806 - 11904: 0x93E7,
+ 26809 - 11904: 0x97EF,
+ 26813 - 11904: 0xFE4A,
+ 26819 - 11904: 0xFD45,
+ 26820 - 11904: 0xB1F3,
+ 26821 - 11904: 0x96A5,
+ 26822 - 11904: 0xD9C3,
+ 26823 - 11904: 0xD9D9,
+ 26824 - 11904: 0xD9CE,
+ 26825 - 11904: 0xB4D6,
+ 26826 - 11904: 0xFEE0,
+ 26827 - 11904: 0xB4D1,
+ 26828 - 11904: 0xD9BD,
+ 26829 - 11904: 0xB4D2,
+ 26830 - 11904: 0xD9CD,
+ 26832 - 11904: 0xD9C6,
+ 26833 - 11904: 0xD9D3,
+ 26834 - 11904: 0xB4CE,
+ 26835 - 11904: 0xD9AB,
+ 26836 - 11904: 0xD9D5,
+ 26837 - 11904: 0xB4C4,
+ 26838 - 11904: 0xD9B3,
+ 26839 - 11904: 0xB4C7,
+ 26840 - 11904: 0xB4C6,
+ 26842 - 11904: 0xB4D7,
+ 26844 - 11904: 0xD9AD,
+ 26845 - 11904: 0xD9CF,
+ 26846 - 11904: 0xD9D0,
+ 26847 - 11904: 0xB4C9,
+ 26848 - 11904: 0xB4C5,
+ 26849 - 11904: 0xD9BB,
+ 26851 - 11904: 0xB4D0,
+ 26852 - 11904: 0xD9B6,
+ 26854 - 11904: 0xD9D1,
+ 26855 - 11904: 0xB4CC,
+ 26856 - 11904: 0xD9C9,
+ 26857 - 11904: 0xD9D6,
+ 26858 - 11904: 0xD9B0,
+ 26859 - 11904: 0xD9B5,
+ 26860 - 11904: 0xD9AF,
+ 26862 - 11904: 0xB4CB,
+ 26863 - 11904: 0xD9C2,
+ 26864 - 11904: 0xDDDE,
+ 26865 - 11904: 0xD9B1,
+ 26866 - 11904: 0xB4CF,
+ 26867 - 11904: 0xD9BA,
+ 26868 - 11904: 0xD9D2,
+ 26869 - 11904: 0xB4CA,
+ 26870 - 11904: 0xD9B7,
+ 26871 - 11904: 0xD9B4,
+ 26872 - 11904: 0xD9C5,
+ 26873 - 11904: 0xB4CD,
+ 26874 - 11904: 0xB4C3,
+ 26875 - 11904: 0xB4D9,
+ 26876 - 11904: 0xD9C8,
+ 26877 - 11904: 0xD9C7,
+ 26880 - 11904: 0xFD48,
+ 26881 - 11904: 0xFD47,
+ 26882 - 11904: 0xFEF2,
+ 26883 - 11904: 0xFE6A,
+ 26884 - 11904: 0xD9AC,
+ 26885 - 11904: 0xB4C8,
+ 26886 - 11904: 0xD9D4,
+ 26887 - 11904: 0xD9BC,
+ 26888 - 11904: 0xD9BE,
+ 26889 - 11904: 0x8DBD,
+ 26890 - 11904: 0xD9CB,
+ 26891 - 11904: 0xD9CA,
+ 26892 - 11904: 0xD9AA,
+ 26893 - 11904: 0xB4D3,
+ 26894 - 11904: 0xB4D5,
+ 26895 - 11904: 0xD9B2,
+ 26896 - 11904: 0xD9B9,
+ 26897 - 11904: 0xD9C1,
+ 26898 - 11904: 0xB4D4,
+ 26899 - 11904: 0xD9B8,
+ 26900 - 11904: 0xD9C4,
+ 26901 - 11904: 0xD9D7,
+ 26903 - 11904: 0xD9CC,
+ 26904 - 11904: 0x9BA1,
+ 26905 - 11904: 0x8CA2,
+ 26906 - 11904: 0x9AB7,
+ 26907 - 11904: 0x8EFC,
+ 26917 - 11904: 0xD9D8,
+ 26922 - 11904: 0xD9AE,
+ 26924 - 11904: 0x9FA1,
+ 26927 - 11904: 0xDDF2,
+ 26928 - 11904: 0xB7A6,
+ 26930 - 11904: 0xDDF0,
+ 26931 - 11904: 0xDDDB,
+ 26932 - 11904: 0xDDE0,
+ 26933 - 11904: 0xDDD9,
+ 26934 - 11904: 0xFD51,
+ 26935 - 11904: 0xDDEC,
+ 26936 - 11904: 0xDDCB,
+ 26937 - 11904: 0xDDD2,
+ 26939 - 11904: 0xDDEA,
+ 26940 - 11904: 0xDDF4,
+ 26941 - 11904: 0xDDDC,
+ 26942 - 11904: 0xFAAD,
+ 26943 - 11904: 0xDDCF,
+ 26944 - 11904: 0xDDE2,
+ 26945 - 11904: 0xDDE7,
+ 26946 - 11904: 0xDDD3,
+ 26947 - 11904: 0x8DBE,
+ 26948 - 11904: 0xDDE4,
+ 26949 - 11904: 0xDDD0,
+ 26950 - 11904: 0x89A4,
+ 26952 - 11904: 0xDDD7,
+ 26953 - 11904: 0xDDD8,
+ 26954 - 11904: 0xB7A8,
+ 26955 - 11904: 0xDDEB,
+ 26956 - 11904: 0xDDE9,
+ 26958 - 11904: 0xDDCC,
+ 26959 - 11904: 0xDDEE,
+ 26961 - 11904: 0xDDEF,
+ 26962 - 11904: 0xDDF1,
+ 26963 - 11904: 0xB7AC,
+ 26964 - 11904: 0xB7A4,
+ 26965 - 11904: 0x9AD9,
+ 26966 - 11904: 0xD5B8,
+ 26967 - 11904: 0xDDD4,
+ 26968 - 11904: 0xDDE6,
+ 26969 - 11904: 0xDDD5,
+ 26970 - 11904: 0xB7A1,
+ 26971 - 11904: 0xB7B1,
+ 26972 - 11904: 0xDDED,
+ 26973 - 11904: 0xB7AF,
+ 26974 - 11904: 0xB7AB,
+ 26975 - 11904: 0xDDCA,
+ 26976 - 11904: 0xB7A3,
+ 26977 - 11904: 0xFD4E,
+ 26978 - 11904: 0xDDCD,
+ 26979 - 11904: 0xB7B0,
+ 26980 - 11904: 0x8DC0,
+ 26981 - 11904: 0xDDDD,
+ 26982 - 11904: 0xDDC9,
+ 26983 - 11904: 0x97F0,
+ 26984 - 11904: 0xB7A9,
+ 26985 - 11904: 0xDDE1,
+ 26986 - 11904: 0xDDD1,
+ 26987 - 11904: 0xB7AA,
+ 26988 - 11904: 0xDDDA,
+ 26989 - 11904: 0xB77E,
+ 26990 - 11904: 0xB4D8,
+ 26991 - 11904: 0xDDE3,
+ 26992 - 11904: 0xD9BF,
+ 26993 - 11904: 0xDDCE,
+ 26994 - 11904: 0x93B4,
+ 26995 - 11904: 0xFD44,
+ 26996 - 11904: 0xDDE8,
+ 26997 - 11904: 0xB7A5,
+ 26998 - 11904: 0xDDE5,
+ 26999 - 11904: 0xB7A2,
+ 27000 - 11904: 0xDDDF,
+ 27001 - 11904: 0xB7AD,
+ 27002 - 11904: 0xDDD6,
+ 27003 - 11904: 0xDDF3,
+ 27008 - 11904: 0x9FA7,
+ 27010 - 11904: 0xB7A7,
+ 27011 - 11904: 0xDEC6,
+ 27013 - 11904: 0x8DC2,
+ 27014 - 11904: 0xB7AE,
+ 27018 - 11904: 0x99B6,
+ 27021 - 11904: 0xE24A,
+ 27022 - 11904: 0xE248,
+ 27024 - 11904: 0xE25E,
+ 27025 - 11904: 0xE246,
+ 27027 - 11904: 0xE258,
+ 27028 - 11904: 0xB77D,
+ 27029 - 11904: 0xBA5F,
+ 27030 - 11904: 0xE242,
+ 27031 - 11904: 0xE25D,
+ 27032 - 11904: 0xFD52,
+ 27033 - 11904: 0xE247,
+ 27034 - 11904: 0xE255,
+ 27035 - 11904: 0xBA64,
+ 27036 - 11904: 0xBA5D,
+ 27038 - 11904: 0xE25B,
+ 27039 - 11904: 0x8DC1,
+ 27040 - 11904: 0xE240,
+ 27041 - 11904: 0xE25A,
+ 27042 - 11904: 0x8E46,
+ 27043 - 11904: 0xBA6F,
+ 27044 - 11904: 0xE251,
+ 27045 - 11904: 0xE261,
+ 27046 - 11904: 0xBA6D,
+ 27047 - 11904: 0xE249,
+ 27048 - 11904: 0xBA5E,
+ 27049 - 11904: 0xE24B,
+ 27050 - 11904: 0xE259,
+ 27051 - 11904: 0xBA67,
+ 27052 - 11904: 0xE244,
+ 27053 - 11904: 0xBA6B,
+ 27054 - 11904: 0xBA61,
+ 27055 - 11904: 0xE24D,
+ 27056 - 11904: 0xE243,
+ 27057 - 11904: 0xE1FC,
+ 27058 - 11904: 0xA0D1,
+ 27059 - 11904: 0xE257,
+ 27060 - 11904: 0xBA68,
+ 27061 - 11904: 0xE260,
+ 27062 - 11904: 0xE1FD,
+ 27063 - 11904: 0xBA65,
+ 27065 - 11904: 0xE253,
+ 27067 - 11904: 0xBA66,
+ 27068 - 11904: 0xE245,
+ 27069 - 11904: 0xE250,
+ 27070 - 11904: 0xE24C,
+ 27071 - 11904: 0xE24E,
+ 27072 - 11904: 0x9FCA,
+ 27073 - 11904: 0xBA60,
+ 27074 - 11904: 0xE25F,
+ 27075 - 11904: 0xBA6E,
+ 27076 - 11904: 0xE24F,
+ 27078 - 11904: 0xE262,
+ 27081 - 11904: 0xE1FE,
+ 27082 - 11904: 0xE254,
+ 27083 - 11904: 0xBA63,
+ 27084 - 11904: 0xBA6C,
+ 27085 - 11904: 0xBA6A,
+ 27086 - 11904: 0xE241,
+ 27087 - 11904: 0xE256,
+ 27088 - 11904: 0xBA69,
+ 27089 - 11904: 0x92CF,
+ 27091 - 11904: 0xBA62,
+ 27092 - 11904: 0xE252,
+ 27093 - 11904: 0x9CF4,
+ 27094 - 11904: 0x8DC4,
+ 27097 - 11904: 0xE25C,
+ 27105 - 11904: 0xFD41,
+ 27106 - 11904: 0xE5D5,
+ 27108 - 11904: 0xE5D1,
+ 27109 - 11904: 0xE5CD,
+ 27110 - 11904: 0xE5E1,
+ 27111 - 11904: 0xE5DE,
+ 27112 - 11904: 0xBCCD,
+ 27113 - 11904: 0x9B4C,
+ 27115 - 11904: 0xE5E5,
+ 27116 - 11904: 0xE5D4,
+ 27117 - 11904: 0xBCD8,
+ 27118 - 11904: 0xE5DB,
+ 27121 - 11904: 0xE5D0,
+ 27122 - 11904: 0xE5DA,
+ 27123 - 11904: 0xBCD5,
+ 27124 - 11904: 0xE5EE,
+ 27126 - 11904: 0xE5EB,
+ 27127 - 11904: 0xE5DD,
+ 27128 - 11904: 0xE5CE,
+ 27129 - 11904: 0xFD57,
+ 27130 - 11904: 0xFCEF,
+ 27131 - 11904: 0xE5E2,
+ 27132 - 11904: 0xE5E4,
+ 27133 - 11904: 0xBCD1,
+ 27134 - 11904: 0xE5D8,
+ 27135 - 11904: 0xE5D3,
+ 27136 - 11904: 0xE5CA,
+ 27137 - 11904: 0xBCCE,
+ 27138 - 11904: 0xBCD6,
+ 27139 - 11904: 0x9CDE,
+ 27140 - 11904: 0xE5E7,
+ 27141 - 11904: 0xBCD7,
+ 27142 - 11904: 0xE5CB,
+ 27143 - 11904: 0xE5ED,
+ 27144 - 11904: 0xE5E0,
+ 27145 - 11904: 0xE5E6,
+ 27146 - 11904: 0xBCD4,
+ 27147 - 11904: 0xFD42,
+ 27148 - 11904: 0x986C,
+ 27149 - 11904: 0xE5E3,
+ 27151 - 11904: 0xE5EA,
+ 27153 - 11904: 0xBCD9,
+ 27155 - 11904: 0xBCD3,
+ 27156 - 11904: 0xE5DC,
+ 27157 - 11904: 0xE5CF,
+ 27158 - 11904: 0xE5EF,
+ 27159 - 11904: 0xE5CC,
+ 27160 - 11904: 0xE5E8,
+ 27161 - 11904: 0xBCD0,
+ 27162 - 11904: 0x97F9,
+ 27163 - 11904: 0xE5D6,
+ 27164 - 11904: 0x9558,
+ 27165 - 11904: 0xE5D7,
+ 27166 - 11904: 0xBCCF,
+ 27167 - 11904: 0xBCCC,
+ 27168 - 11904: 0xE5D2,
+ 27169 - 11904: 0xBCD2,
+ 27171 - 11904: 0xBCCB,
+ 27173 - 11904: 0xE5E9,
+ 27174 - 11904: 0xE5EC,
+ 27175 - 11904: 0xE5D9,
+ 27176 - 11904: 0xE9CA,
+ 27177 - 11904: 0x87B6,
+ 27179 - 11904: 0x985E,
+ 27180 - 11904: 0xFE7B,
+ 27181 - 11904: 0x94CD,
+ 27186 - 11904: 0xE9C2,
+ 27187 - 11904: 0x93EE,
+ 27188 - 11904: 0xE9BE,
+ 27189 - 11904: 0xBEF6,
+ 27192 - 11904: 0xBEEB,
+ 27193 - 11904: 0xBEF0,
+ 27194 - 11904: 0xBEEC,
+ 27195 - 11904: 0xE9CC,
+ 27196 - 11904: 0xE9D7,
+ 27197 - 11904: 0xBEEA,
+ 27198 - 11904: 0xE9C4,
+ 27199 - 11904: 0xE9CD,
+ 27200 - 11904: 0xE5DF,
+ 27201 - 11904: 0xE9CE,
+ 27203 - 11904: 0x8CA3,
+ 27204 - 11904: 0xBEF1,
+ 27205 - 11904: 0xFD5A,
+ 27206 - 11904: 0xE9DD,
+ 27207 - 11904: 0xBEF5,
+ 27208 - 11904: 0xBEF8,
+ 27209 - 11904: 0xE9C0,
+ 27211 - 11904: 0xBEF4,
+ 27212 - 11904: 0x93F5,
+ 27213 - 11904: 0xE9DB,
+ 27214 - 11904: 0xE9DC,
+ 27215 - 11904: 0xE9D2,
+ 27216 - 11904: 0xE9D1,
+ 27217 - 11904: 0xE9C9,
+ 27218 - 11904: 0x93EF,
+ 27219 - 11904: 0x8EEA,
+ 27220 - 11904: 0xE9D3,
+ 27221 - 11904: 0xE9DA,
+ 27222 - 11904: 0xE9D9,
+ 27223 - 11904: 0x8F5B,
+ 27224 - 11904: 0xBEEF,
+ 27225 - 11904: 0xBEED,
+ 27226 - 11904: 0xE9CB,
+ 27227 - 11904: 0xE9C8,
+ 27229 - 11904: 0xE9C5,
+ 27230 - 11904: 0xE9D8,
+ 27231 - 11904: 0xBEF7,
+ 27232 - 11904: 0xE9D6,
+ 27233 - 11904: 0xBEF3,
+ 27234 - 11904: 0xBEF2,
+ 27235 - 11904: 0x8C5E,
+ 27236 - 11904: 0xE9D0,
+ 27237 - 11904: 0x8DC6,
+ 27238 - 11904: 0xE9BF,
+ 27239 - 11904: 0xE9C1,
+ 27240 - 11904: 0xE9C3,
+ 27241 - 11904: 0xE9D5,
+ 27242 - 11904: 0xE9CF,
+ 27243 - 11904: 0xBEEE,
+ 27245 - 11904: 0xE9C6,
+ 27247 - 11904: 0xE9D4,
+ 27249 - 11904: 0x8DC8,
+ 27252 - 11904: 0x8DC7,
+ 27254 - 11904: 0xE9C7,
+ 27258 - 11904: 0x93F7,
+ 27262 - 11904: 0xC0CF,
+ 27263 - 11904: 0xED45,
+ 27264 - 11904: 0xC0C8,
+ 27265 - 11904: 0xECF5,
+ 27266 - 11904: 0x8DC9,
+ 27267 - 11904: 0xED41,
+ 27268 - 11904: 0xC0CA,
+ 27269 - 11904: 0xED48,
+ 27271 - 11904: 0xECFC,
+ 27273 - 11904: 0xECF7,
+ 27274 - 11904: 0xFBF2,
+ 27276 - 11904: 0xED49,
+ 27277 - 11904: 0xECF3,
+ 27278 - 11904: 0xECFE,
+ 27279 - 11904: 0x9670,
+ 27280 - 11904: 0xC0D1,
+ 27281 - 11904: 0xED44,
+ 27282 - 11904: 0xED4A,
+ 27283 - 11904: 0xECFD,
+ 27284 - 11904: 0xC0C9,
+ 27285 - 11904: 0xED40,
+ 27286 - 11904: 0xECF4,
+ 27287 - 11904: 0xC0D0,
+ 27289 - 11904: 0x8DCB,
+ 27290 - 11904: 0xED47,
+ 27291 - 11904: 0xECF9,
+ 27292 - 11904: 0xC0CC,
+ 27293 - 11904: 0xFD5C,
+ 27294 - 11904: 0xECFB,
+ 27295 - 11904: 0xECF8,
+ 27296 - 11904: 0xC0D2,
+ 27297 - 11904: 0xECFA,
+ 27298 - 11904: 0xC0CB,
+ 27299 - 11904: 0xC0CE,
+ 27300 - 11904: 0xED43,
+ 27301 - 11904: 0xECF6,
+ 27302 - 11904: 0xED46,
+ 27303 - 11904: 0x8F65,
+ 27304 - 11904: 0xED42,
+ 27307 - 11904: 0x8DCD,
+ 27308 - 11904: 0xC263,
+ 27309 - 11904: 0xEFE7,
+ 27310 - 11904: 0xC268,
+ 27311 - 11904: 0xC269,
+ 27313 - 11904: 0x9DA8,
+ 27314 - 11904: 0x94F9,
+ 27315 - 11904: 0xC262,
+ 27316 - 11904: 0xEFE6,
+ 27317 - 11904: 0x8DCE,
+ 27318 - 11904: 0xEFE3,
+ 27319 - 11904: 0xEFE4,
+ 27320 - 11904: 0xC266,
+ 27321 - 11904: 0xEFDE,
+ 27322 - 11904: 0xEFE2,
+ 27323 - 11904: 0xC265,
+ 27325 - 11904: 0xEFDF,
+ 27326 - 11904: 0x93EA,
+ 27330 - 11904: 0xC267,
+ 27331 - 11904: 0xC264,
+ 27333 - 11904: 0xEFDD,
+ 27334 - 11904: 0xEFE1,
+ 27335 - 11904: 0xEFE5,
+ 27336 - 11904: 0xFD5F,
+ 27337 - 11904: 0x93F0,
+ 27338 - 11904: 0x9FB6,
+ 27339 - 11904: 0xF251,
+ 27340 - 11904: 0xF24E,
+ 27341 - 11904: 0xF257,
+ 27343 - 11904: 0xF256,
+ 27344 - 11904: 0xF254,
+ 27345 - 11904: 0xF24F,
+ 27347 - 11904: 0xC372,
+ 27348 - 11904: 0x8DCF,
+ 27352 - 11904: 0x9763,
+ 27353 - 11904: 0xF250,
+ 27354 - 11904: 0xC371,
+ 27355 - 11904: 0xC0CD,
+ 27356 - 11904: 0xF253,
+ 27357 - 11904: 0xC370,
+ 27358 - 11904: 0xF258,
+ 27359 - 11904: 0xF252,
+ 27360 - 11904: 0xF24D,
+ 27361 - 11904: 0xEFE0,
+ 27365 - 11904: 0xC36F,
+ 27367 - 11904: 0xF24C,
+ 27368 - 11904: 0xF456,
+ 27370 - 11904: 0xF455,
+ 27371 - 11904: 0xF255,
+ 27372 - 11904: 0xC468,
+ 27374 - 11904: 0xF459,
+ 27375 - 11904: 0xF45A,
+ 27376 - 11904: 0xF454,
+ 27377 - 11904: 0xF458,
+ 27379 - 11904: 0xF453,
+ 27382 - 11904: 0x8DD0,
+ 27384 - 11904: 0xF5D1,
+ 27385 - 11904: 0xF457,
+ 27386 - 11904: 0xC4E7,
+ 27387 - 11904: 0xC4E5,
+ 27388 - 11904: 0xF5CF,
+ 27392 - 11904: 0xF5D2,
+ 27394 - 11904: 0xF5CE,
+ 27395 - 11904: 0xF5D0,
+ 27396 - 11904: 0xC4E6,
+ 27397 - 11904: 0x93F1,
+ 27400 - 11904: 0xF6E5,
+ 27401 - 11904: 0xF6E6,
+ 27402 - 11904: 0xC576,
+ 27403 - 11904: 0xF6E4,
+ 27407 - 11904: 0xF7E2,
+ 27408 - 11904: 0xC5CF,
+ 27409 - 11904: 0xF7E0,
+ 27410 - 11904: 0xF7E1,
+ 27411 - 11904: 0xF8AC,
+ 27414 - 11904: 0xC656,
+ 27415 - 11904: 0xF8F3,
+ 27416 - 11904: 0xF8F1,
+ 27417 - 11904: 0xF8F2,
+ 27418 - 11904: 0xF8F4,
+ 27421 - 11904: 0xFD62,
+ 27422 - 11904: 0xF9BB,
+ 27424 - 11904: 0xA4ED,
+ 27425 - 11904: 0xA6B8,
+ 27427 - 11904: 0xAA59,
+ 27429 - 11904: 0xCCE9,
+ 27432 - 11904: 0xCF64,
+ 27436 - 11904: 0xD1F5,
+ 27437 - 11904: 0xD1F7,
+ 27439 - 11904: 0xD1F6,
+ 27441 - 11904: 0xD1F8,
+ 27442 - 11904: 0xB1FD,
+ 27443 - 11904: 0xD5D7,
+ 27444 - 11904: 0xD1F9,
+ 27445 - 11904: 0xFD65,
+ 27446 - 11904: 0xD5D6,
+ 27447 - 11904: 0xD5D8,
+ 27448 - 11904: 0xD5D9,
+ 27449 - 11904: 0xD9DA,
+ 27450 - 11904: 0xB4DB,
+ 27451 - 11904: 0xD9DB,
+ 27452 - 11904: 0xD9DD,
+ 27453 - 11904: 0xB4DC,
+ 27454 - 11904: 0xB4DA,
+ 27455 - 11904: 0xD9DC,
+ 27457 - 11904: 0xDDFA,
+ 27458 - 11904: 0xDDF8,
+ 27459 - 11904: 0xDDF7,
+ 27461 - 11904: 0xDDF6,
+ 27462 - 11904: 0xDDF5,
+ 27463 - 11904: 0xB7B2,
+ 27464 - 11904: 0xDDF9,
+ 27465 - 11904: 0xBA70,
+ 27466 - 11904: 0xE263,
+ 27467 - 11904: 0xE265,
+ 27468 - 11904: 0xBA71,
+ 27469 - 11904: 0xE264,
+ 27470 - 11904: 0xBCDB,
+ 27472 - 11904: 0xBCDA,
+ 27473 - 11904: 0xE5F0,
+ 27474 - 11904: 0x9FDB,
+ 27476 - 11904: 0xE9DF,
+ 27477 - 11904: 0xE9DE,
+ 27478 - 11904: 0xE9E0,
+ 27479 - 11904: 0x93F8,
+ 27481 - 11904: 0xBEF9,
+ 27483 - 11904: 0xED4B,
+ 27484 - 11904: 0xC0D3,
+ 27486 - 11904: 0xEFE8,
+ 27487 - 11904: 0xC26A,
+ 27488 - 11904: 0xF259,
+ 27489 - 11904: 0xC577,
+ 27490 - 11904: 0xA4EE,
+ 27491 - 11904: 0xA5BF,
+ 27492 - 11904: 0xA6B9,
+ 27493 - 11904: 0xA842,
+ 27494 - 11904: 0xAA5A,
+ 27495 - 11904: 0xAA5B,
+ 27498 - 11904: 0xAC6E,
+ 27501 - 11904: 0xD1FA,
+ 27503 - 11904: 0x8BF7,
+ 27506 - 11904: 0xB7B3,
+ 27508 - 11904: 0xFD66,
+ 27510 - 11904: 0xE6D1,
+ 27511 - 11904: 0xBEFA,
+ 27512 - 11904: 0xC26B,
+ 27513 - 11904: 0xA4EF,
+ 27514 - 11904: 0x8BCF,
+ 27515 - 11904: 0xA6BA,
+ 27518 - 11904: 0xCCEB,
+ 27519 - 11904: 0xAA5C,
+ 27520 - 11904: 0xCCEA,
+ 27521 - 11904: 0x8DD1,
+ 27522 - 11904: 0xCF65,
+ 27523 - 11904: 0xAC6F,
+ 27524 - 11904: 0xCF66,
+ 27526 - 11904: 0xAC70,
+ 27528 - 11904: 0xD1FC,
+ 27529 - 11904: 0xAEEE,
+ 27530 - 11904: 0xAEED,
+ 27532 - 11904: 0xD5DE,
+ 27533 - 11904: 0xD5DC,
+ 27534 - 11904: 0xD5DD,
+ 27535 - 11904: 0xD5DB,
+ 27537 - 11904: 0xD5DA,
+ 27540 - 11904: 0xD9DE,
+ 27541 - 11904: 0xD9E1,
+ 27542 - 11904: 0xB4DE,
+ 27543 - 11904: 0xD9DF,
+ 27544 - 11904: 0xB4DD,
+ 27545 - 11904: 0xD9E0,
+ 27547 - 11904: 0xDDFB,
+ 27550 - 11904: 0xE266,
+ 27551 - 11904: 0xE267,
+ 27552 - 11904: 0xE268,
+ 27554 - 11904: 0xE5F3,
+ 27555 - 11904: 0xE5F2,
+ 27556 - 11904: 0xBCDC,
+ 27557 - 11904: 0xE5F1,
+ 27558 - 11904: 0xE5F4,
+ 27559 - 11904: 0xE9E1,
+ 27562 - 11904: 0xE9E2,
+ 27563 - 11904: 0xE9E3,
+ 27565 - 11904: 0xED4C,
+ 27566 - 11904: 0xC0D4,
+ 27567 - 11904: 0xC26C,
+ 27568 - 11904: 0xF25A,
+ 27570 - 11904: 0xC4E8,
+ 27571 - 11904: 0xC95F,
+ 27573 - 11904: 0xAC71,
+ 27574 - 11904: 0xCF67,
+ 27575 - 11904: 0xAEEF,
+ 27578 - 11904: 0xB1FE,
+ 27580 - 11904: 0xB4DF,
+ 27581 - 11904: 0xD9E2,
+ 27583 - 11904: 0xB7B5,
+ 27584 - 11904: 0xB7B4,
+ 27585 - 11904: 0x8DD2,
+ 27587 - 11904: 0xE269,
+ 27588 - 11904: 0xE26A,
+ 27589 - 11904: 0xBCDD,
+ 27590 - 11904: 0xBCDE,
+ 27591 - 11904: 0xE9E5,
+ 27592 - 11904: 0xE9E4,
+ 27593 - 11904: 0xEFE9,
+ 27594 - 11904: 0xF7E3,
+ 27595 - 11904: 0xA4F0,
+ 27596 - 11904: 0xC960,
+ 27597 - 11904: 0xA5C0,
+ 27599 - 11904: 0xA843,
+ 27600 - 11904: 0xCB48,
+ 27602 - 11904: 0xAC72,
+ 27603 - 11904: 0xB7B6,
+ 27604 - 11904: 0xA4F1,
+ 27606 - 11904: 0xCF68,
+ 27607 - 11904: 0xAC73,
+ 27608 - 11904: 0xCF69,
+ 27610 - 11904: 0xC0D5,
+ 27611 - 11904: 0xA4F2,
+ 27612 - 11904: 0xFD71,
+ 27614 - 11904: 0xCCEC,
+ 27616 - 11904: 0xCF6A,
+ 27617 - 11904: 0xFD6F,
+ 27618 - 11904: 0xD242,
+ 27619 - 11904: 0xD241,
+ 27620 - 11904: 0xD1FE,
+ 27622 - 11904: 0xD1FD,
+ 27623 - 11904: 0xD243,
+ 27624 - 11904: 0xD240,
+ 27626 - 11904: 0x8DD3,
+ 27627 - 11904: 0xB240,
+ 27628 - 11904: 0xB241,
+ 27631 - 11904: 0xB4E0,
+ 27632 - 11904: 0xD9E3,
+ 27634 - 11904: 0xD9E4,
+ 27635 - 11904: 0xD9E5,
+ 27639 - 11904: 0xDE41,
+ 27640 - 11904: 0xDE42,
+ 27641 - 11904: 0xDE40,
+ 27642 - 11904: 0x9FE7,
+ 27643 - 11904: 0xDDFD,
+ 27644 - 11904: 0xDDFE,
+ 27645 - 11904: 0xB7B7,
+ 27646 - 11904: 0xE26B,
+ 27647 - 11904: 0xE5F7,
+ 27648 - 11904: 0xE5F6,
+ 27649 - 11904: 0xE5F5,
+ 27650 - 11904: 0xE5F8,
+ 27651 - 11904: 0xE9E7,
+ 27652 - 11904: 0xE9E6,
+ 27653 - 11904: 0xBEFB,
+ 27654 - 11904: 0xE9E8,
+ 27656 - 11904: 0xC0D6,
+ 27657 - 11904: 0xED4D,
+ 27659 - 11904: 0xEFEA,
+ 27660 - 11904: 0xF25B,
+ 27661 - 11904: 0xF6E7,
+ 27663 - 11904: 0xA4F3,
+ 27664 - 11904: 0xA5C2,
+ 27665 - 11904: 0xA5C1,
+ 27667 - 11904: 0xAA5D,
+ 27668 - 11904: 0xC961,
+ 27669 - 11904: 0xC97E,
+ 27670 - 11904: 0xA6BB,
+ 27672 - 11904: 0xC9F7,
+ 27673 - 11904: 0xCB49,
+ 27674 - 11904: 0xCB4A,
+ 27675 - 11904: 0xAA5E,
+ 27676 - 11904: 0x90BD,
+ 27677 - 11904: 0xCCED,
+ 27679 - 11904: 0xAC74,
+ 27680 - 11904: 0xCF6B,
+ 27681 - 11904: 0xCF6C,
+ 27683 - 11904: 0xAEF0,
+ 27684 - 11904: 0xAEF4,
+ 27685 - 11904: 0xD244,
+ 27686 - 11904: 0xAEF3,
+ 27687 - 11904: 0xAEF1,
+ 27688 - 11904: 0xAEF2,
+ 27690 - 11904: 0xD5DF,
+ 27691 - 11904: 0xB242,
+ 27692 - 11904: 0xB4E3,
+ 27694 - 11904: 0xB4E1,
+ 27695 - 11904: 0xB4E2,
+ 27696 - 11904: 0xD9E6,
+ 27697 - 11904: 0x9FD0,
+ 27699 - 11904: 0xBA72,
+ 27700 - 11904: 0xA4F4,
+ 27701 - 11904: 0x8BD0,
+ 27702 - 11904: 0xC9A1,
+ 27703 - 11904: 0xFD72,
+ 27704 - 11904: 0xA5C3,
+ 27705 - 11904: 0x9CAE,
+ 27706 - 11904: 0x8BD1,
+ 27707 - 11904: 0xC9A4,
+ 27709 - 11904: 0x8ADB,
+ 27710 - 11904: 0xA5C6,
+ 27711 - 11904: 0xC9A3,
+ 27712 - 11904: 0xA5C5,
+ 27713 - 11904: 0xA5C4,
+ 27714 - 11904: 0xA844,
+ 27715 - 11904: 0xC9A2,
+ 27718 - 11904: 0xC9F8,
+ 27721 - 11904: 0xFAE4,
+ 27722 - 11904: 0xC9FC,
+ 27723 - 11904: 0xC9FE,
+ 27724 - 11904: 0xCA40,
+ 27725 - 11904: 0xA6C5,
+ 27726 - 11904: 0xA6C6,
+ 27727 - 11904: 0xC9FB,
+ 27728 - 11904: 0xA6C1,
+ 27730 - 11904: 0xC9F9,
+ 27732 - 11904: 0xC9FD,
+ 27733 - 11904: 0xA6C2,
+ 27735 - 11904: 0xA6BD,
+ 27736 - 11904: 0x95CE,
+ 27737 - 11904: 0xA6BE,
+ 27738 - 11904: 0xFD76,
+ 27739 - 11904: 0xA6C4,
+ 27740 - 11904: 0xC9FA,
+ 27741 - 11904: 0xA6BC,
+ 27742 - 11904: 0xA845,
+ 27743 - 11904: 0xA6BF,
+ 27744 - 11904: 0xA6C0,
+ 27745 - 11904: 0xA6C3,
+ 27749 - 11904: 0xCB5B,
+ 27750 - 11904: 0xCB59,
+ 27751 - 11904: 0xCB4C,
+ 27752 - 11904: 0xA851,
+ 27753 - 11904: 0xCB53,
+ 27754 - 11904: 0xA84C,
+ 27755 - 11904: 0xCB4D,
+ 27757 - 11904: 0xCB55,
+ 27758 - 11904: 0xFB62,
+ 27759 - 11904: 0xCB52,
+ 27760 - 11904: 0xA84F,
+ 27761 - 11904: 0xCB51,
+ 27762 - 11904: 0xA856,
+ 27763 - 11904: 0xCB5A,
+ 27764 - 11904: 0xA858,
+ 27765 - 11904: 0x8DD4,
+ 27766 - 11904: 0xA85A,
+ 27768 - 11904: 0xCB4B,
+ 27769 - 11904: 0xFD78,
+ 27770 - 11904: 0xA84D,
+ 27771 - 11904: 0xCB5C,
+ 27773 - 11904: 0xA854,
+ 27774 - 11904: 0xA857,
+ 27775 - 11904: 0x8EE3,
+ 27776 - 11904: 0xCD45,
+ 27777 - 11904: 0xA847,
+ 27778 - 11904: 0xA85E,
+ 27779 - 11904: 0xA855,
+ 27780 - 11904: 0xCB4E,
+ 27781 - 11904: 0xA84A,
+ 27782 - 11904: 0xA859,
+ 27783 - 11904: 0xCB56,
+ 27784 - 11904: 0xA848,
+ 27785 - 11904: 0xA849,
+ 27786 - 11904: 0xCD43,
+ 27787 - 11904: 0xCB4F,
+ 27788 - 11904: 0xA850,
+ 27789 - 11904: 0xA85B,
+ 27790 - 11904: 0xCB5D,
+ 27791 - 11904: 0xCB50,
+ 27792 - 11904: 0xA84E,
+ 27794 - 11904: 0xA853,
+ 27795 - 11904: 0xCCEE,
+ 27796 - 11904: 0xA85C,
+ 27797 - 11904: 0xCB57,
+ 27798 - 11904: 0xA852,
+ 27800 - 11904: 0xA85D,
+ 27801 - 11904: 0xA846,
+ 27802 - 11904: 0xCB54,
+ 27803 - 11904: 0xA84B,
+ 27804 - 11904: 0xFDB7,
+ 27805 - 11904: 0xCD44,
+ 27807 - 11904: 0x9076,
+ 27810 - 11904: 0x98C6,
+ 27818 - 11904: 0x8DD5,
+ 27819 - 11904: 0xAA6A,
+ 27820 - 11904: 0xAA7A,
+ 27821 - 11904: 0xCCF5,
+ 27822 - 11904: 0xAA71,
+ 27823 - 11904: 0x97D1,
+ 27824 - 11904: 0xCD4B,
+ 27825 - 11904: 0xAA62,
+ 27826 - 11904: 0x9EB6,
+ 27827 - 11904: 0xAA65,
+ 27828 - 11904: 0xCD42,
+ 27830 - 11904: 0xCCF3,
+ 27831 - 11904: 0xCCF7,
+ 27832 - 11904: 0xAA6D,
+ 27833 - 11904: 0xAA6F,
+ 27834 - 11904: 0xCCFA,
+ 27835 - 11904: 0xAA76,
+ 27836 - 11904: 0xAA68,
+ 27837 - 11904: 0xAA66,
+ 27838 - 11904: 0xAA67,
+ 27839 - 11904: 0xAA75,
+ 27840 - 11904: 0xCD47,
+ 27841 - 11904: 0xAA70,
+ 27842 - 11904: 0xCCF9,
+ 27843 - 11904: 0xCCFB,
+ 27844 - 11904: 0xAA6E,
+ 27845 - 11904: 0xAA73,
+ 27846 - 11904: 0xCCFC,
+ 27847 - 11904: 0xCD4A,
+ 27849 - 11904: 0xAC75,
+ 27850 - 11904: 0xAA79,
+ 27851 - 11904: 0xFAC7,
+ 27852 - 11904: 0xAA63,
+ 27853 - 11904: 0xCD49,
+ 27854 - 11904: 0xA042,
+ 27855 - 11904: 0xCD4D,
+ 27856 - 11904: 0xCCF8,
+ 27857 - 11904: 0xCD4F,
+ 27858 - 11904: 0xCD40,
+ 27859 - 11904: 0xAA6C,
+ 27860 - 11904: 0xCCF4,
+ 27861 - 11904: 0xAA6B,
+ 27862 - 11904: 0xAA7D,
+ 27863 - 11904: 0xAA72,
+ 27865 - 11904: 0xCCF2,
+ 27866 - 11904: 0xCF75,
+ 27867 - 11904: 0xAA78,
+ 27868 - 11904: 0xAA7C,
+ 27869 - 11904: 0xCD41,
+ 27870 - 11904: 0xCD46,
+ 27871 - 11904: 0x9873,
+ 27872 - 11904: 0xAA7E,
+ 27873 - 11904: 0xAA77,
+ 27874 - 11904: 0xAA69,
+ 27875 - 11904: 0xAA5F,
+ 27877 - 11904: 0xAA64,
+ 27879 - 11904: 0xCCF6,
+ 27880 - 11904: 0xAA60,
+ 27881 - 11904: 0xCD4E,
+ 27882 - 11904: 0x9FFC,
+ 27883 - 11904: 0xCCF0,
+ 27884 - 11904: 0xCCEF,
+ 27885 - 11904: 0xCCFD,
+ 27886 - 11904: 0xCCF1,
+ 27887 - 11904: 0xAA7B,
+ 27888 - 11904: 0xAEF5,
+ 27889 - 11904: 0xAA74,
+ 27890 - 11904: 0xCCFE,
+ 27891 - 11904: 0xAA61,
+ 27893 - 11904: 0xACA6,
+ 27897 - 11904: 0xCD4C,
+ 27903 - 11904: 0x8CA5,
+ 27904 - 11904: 0xCF7C,
+ 27905 - 11904: 0xCFA1,
+ 27906 - 11904: 0x8DD7,
+ 27907 - 11904: 0xCFA4,
+ 27908 - 11904: 0xCF77,
+ 27909 - 11904: 0x92FB,
+ 27910 - 11904: 0x8DD8,
+ 27911 - 11904: 0xCFA7,
+ 27912 - 11904: 0xCFAA,
+ 27913 - 11904: 0xCFAC,
+ 27914 - 11904: 0xCF74,
+ 27915 - 11904: 0xAC76,
+ 27916 - 11904: 0xAC7B,
+ 27917 - 11904: 0xD249,
+ 27918 - 11904: 0xACAD,
+ 27919 - 11904: 0xCFA5,
+ 27920 - 11904: 0xCFAD,
+ 27921 - 11904: 0xCF7B,
+ 27922 - 11904: 0xCF73,
+ 27926 - 11904: 0xD264,
+ 27927 - 11904: 0xAC7E,
+ 27928 - 11904: 0xCFA2,
+ 27929 - 11904: 0xCF78,
+ 27930 - 11904: 0xCF7A,
+ 27931 - 11904: 0xACA5,
+ 27933 - 11904: 0xCF7D,
+ 27934 - 11904: 0xAC7D,
+ 27935 - 11904: 0xCF70,
+ 27936 - 11904: 0xCFA8,
+ 27938 - 11904: 0xCFAB,
+ 27940 - 11904: 0x944F,
+ 27941 - 11904: 0xAC7A,
+ 27942 - 11904: 0x8DD9,
+ 27943 - 11904: 0xACA8,
+ 27944 - 11904: 0xCF6D,
+ 27945 - 11904: 0xACAA,
+ 27946 - 11904: 0xAC78,
+ 27947 - 11904: 0xACAE,
+ 27948 - 11904: 0xCFA9,
+ 27949 - 11904: 0xCF6F,
+ 27950 - 11904: 0xACAB,
+ 27951 - 11904: 0xD25E,
+ 27952 - 11904: 0xCD48,
+ 27953 - 11904: 0xAC7C,
+ 27954 - 11904: 0xAC77,
+ 27955 - 11904: 0xCF76,
+ 27956 - 11904: 0xCF6E,
+ 27957 - 11904: 0xACAC,
+ 27958 - 11904: 0xACA4,
+ 27959 - 11904: 0xCFA3,
+ 27960 - 11904: 0xACA9,
+ 27961 - 11904: 0xACA7,
+ 27962 - 11904: 0xCF79,
+ 27963 - 11904: 0xACA1,
+ 27964 - 11904: 0xCF71,
+ 27965 - 11904: 0xACA2,
+ 27966 - 11904: 0xACA3,
+ 27967 - 11904: 0xCF72,
+ 27968 - 11904: 0xCFA6,
+ 27969 - 11904: 0xAC79,
+ 27970 - 11904: 0xCF7E,
+ 27982 - 11904: 0x896B,
+ 27991 - 11904: 0x97CE,
+ 27992 - 11904: 0xD24C,
+ 27993 - 11904: 0xAEFD,
+ 27994 - 11904: 0xAF43,
+ 27995 - 11904: 0xFAF3,
+ 27996 - 11904: 0xFDAE,
+ 27998 - 11904: 0xD255,
+ 27999 - 11904: 0xD25B,
+ 28000 - 11904: 0xD257,
+ 28001 - 11904: 0xD24A,
+ 28002 - 11904: 0xD24D,
+ 28003 - 11904: 0xD246,
+ 28004 - 11904: 0xD247,
+ 28005 - 11904: 0xAF4A,
+ 28006 - 11904: 0xAEFA,
+ 28007 - 11904: 0xD256,
+ 28008 - 11904: 0xD25F,
+ 28009 - 11904: 0xAF45,
+ 28010 - 11904: 0xAEF6,
+ 28012 - 11904: 0xAF40,
+ 28013 - 11904: 0xD24E,
+ 28014 - 11904: 0xAF42,
+ 28015 - 11904: 0xD24F,
+ 28016 - 11904: 0xD259,
+ 28017 - 11904: 0xFBAF,
+ 28018 - 11904: 0x92B7,
+ 28020 - 11904: 0xAF44,
+ 28021 - 11904: 0xD268,
+ 28022 - 11904: 0xD248,
+ 28023 - 11904: 0xAEFC,
+ 28024 - 11904: 0xAEFB,
+ 28025 - 11904: 0xAF48,
+ 28026 - 11904: 0xD245,
+ 28027 - 11904: 0xD266,
+ 28028 - 11904: 0xD25A,
+ 28029 - 11904: 0xD267,
+ 28030 - 11904: 0xD261,
+ 28031 - 11904: 0xD253,
+ 28032 - 11904: 0xD262,
+ 28033 - 11904: 0x8DDA,
+ 28034 - 11904: 0xD25C,
+ 28035 - 11904: 0xD265,
+ 28036 - 11904: 0xD263,
+ 28037 - 11904: 0xAF49,
+ 28038 - 11904: 0xD254,
+ 28039 - 11904: 0xAEF9,
+ 28040 - 11904: 0xAEF8,
+ 28041 - 11904: 0xAF41,
+ 28042 - 11904: 0xAF47,
+ 28043 - 11904: 0xD260,
+ 28044 - 11904: 0xAF46,
+ 28045 - 11904: 0xD251,
+ 28046 - 11904: 0xB243,
+ 28047 - 11904: 0x9C5A,
+ 28048 - 11904: 0xD269,
+ 28049 - 11904: 0xD250,
+ 28050 - 11904: 0xD24B,
+ 28051 - 11904: 0xAEFE,
+ 28052 - 11904: 0xAF4B,
+ 28053 - 11904: 0xAEF7,
+ 28054 - 11904: 0xFDAD,
+ 28055 - 11904: 0xD258,
+ 28056 - 11904: 0xD25D,
+ 28068 - 11904: 0x8DDC,
+ 28069 - 11904: 0x9444,
+ 28074 - 11904: 0xB265,
+ 28075 - 11904: 0xD5E1,
+ 28076 - 11904: 0xD5E5,
+ 28078 - 11904: 0xB252,
+ 28079 - 11904: 0xB250,
+ 28081 - 11904: 0x8DDD,
+ 28082 - 11904: 0xB247,
+ 28083 - 11904: 0xD5E3,
+ 28084 - 11904: 0xD5E2,
+ 28085 - 11904: 0xB25B,
+ 28087 - 11904: 0xD5E8,
+ 28088 - 11904: 0xB255,
+ 28089 - 11904: 0xA0D6,
+ 28090 - 11904: 0xD5FA,
+ 28091 - 11904: 0xD647,
+ 28092 - 11904: 0xB244,
+ 28093 - 11904: 0xD5F7,
+ 28094 - 11904: 0xD5F0,
+ 28095 - 11904: 0xB267,
+ 28096 - 11904: 0xD5E0,
+ 28098 - 11904: 0xD5FC,
+ 28100 - 11904: 0xB264,
+ 28101 - 11904: 0xB258,
+ 28102 - 11904: 0xB263,
+ 28103 - 11904: 0xB24E,
+ 28104 - 11904: 0xD5EC,
+ 28105 - 11904: 0xD5FE,
+ 28106 - 11904: 0xD5F6,
+ 28107 - 11904: 0xB24F,
+ 28108 - 11904: 0xB249,
+ 28109 - 11904: 0xD645,
+ 28111 - 11904: 0xD5FD,
+ 28112 - 11904: 0xD640,
+ 28113 - 11904: 0xB251,
+ 28114 - 11904: 0xB259,
+ 28115 - 11904: 0xD642,
+ 28116 - 11904: 0xD5EA,
+ 28117 - 11904: 0xD5FB,
+ 28118 - 11904: 0xD5EF,
+ 28119 - 11904: 0xD644,
+ 28120 - 11904: 0xB25E,
+ 28121 - 11904: 0xB246,
+ 28122 - 11904: 0xB25C,
+ 28123 - 11904: 0xD5F4,
+ 28124 - 11904: 0xD5F2,
+ 28125 - 11904: 0xD5F3,
+ 28126 - 11904: 0xB253,
+ 28127 - 11904: 0xD5EE,
+ 28128 - 11904: 0xD5ED,
+ 28129 - 11904: 0xB248,
+ 28130 - 11904: 0xD5E7,
+ 28131 - 11904: 0xD646,
+ 28132 - 11904: 0xB24A,
+ 28133 - 11904: 0xD5F1,
+ 28134 - 11904: 0xB268,
+ 28136 - 11904: 0xB262,
+ 28137 - 11904: 0xD5E6,
+ 28138 - 11904: 0xB25F,
+ 28139 - 11904: 0xB25D,
+ 28140 - 11904: 0xB266,
+ 28141 - 11904: 0xD5F8,
+ 28142 - 11904: 0xB261,
+ 28143 - 11904: 0xD252,
+ 28144 - 11904: 0xD5F9,
+ 28145 - 11904: 0xB260,
+ 28146 - 11904: 0xD641,
+ 28147 - 11904: 0xB245,
+ 28148 - 11904: 0xD5F5,
+ 28149 - 11904: 0xB257,
+ 28150 - 11904: 0xD5E9,
+ 28151 - 11904: 0xB256,
+ 28153 - 11904: 0xB254,
+ 28154 - 11904: 0xB24C,
+ 28155 - 11904: 0xB24B,
+ 28156 - 11904: 0xD9E7,
+ 28157 - 11904: 0xD643,
+ 28158 - 11904: 0x8C41,
+ 28160 - 11904: 0xD5EB,
+ 28162 - 11904: 0x97D5,
+ 28163 - 11904: 0xD9FC,
+ 28164 - 11904: 0x944A,
+ 28165 - 11904: 0xB24D,
+ 28170 - 11904: 0x944D,
+ 28175 - 11904: 0x97CB,
+ 28181 - 11904: 0x8DDE,
+ 28184 - 11904: 0x8DDF,
+ 28185 - 11904: 0xB541,
+ 28186 - 11904: 0xB25A,
+ 28187 - 11904: 0xB4EE,
+ 28188 - 11904: 0xD9F6,
+ 28189 - 11904: 0xFDB8,
+ 28191 - 11904: 0xD9EA,
+ 28192 - 11904: 0xB4EB,
+ 28193 - 11904: 0xB4E7,
+ 28194 - 11904: 0xDA49,
+ 28195 - 11904: 0xB4ED,
+ 28196 - 11904: 0xB4F1,
+ 28197 - 11904: 0xB4EC,
+ 28198 - 11904: 0xB4F5,
+ 28199 - 11904: 0xDA4D,
+ 28200 - 11904: 0xDA44,
+ 28201 - 11904: 0x8DE0,
+ 28202 - 11904: 0xFEF9,
+ 28203 - 11904: 0xD9F1,
+ 28204 - 11904: 0xB4FA,
+ 28205 - 11904: 0xB4F4,
+ 28206 - 11904: 0xD9FD,
+ 28207 - 11904: 0xFDBB,
+ 28208 - 11904: 0xDA4A,
+ 28209 - 11904: 0xDA43,
+ 28210 - 11904: 0xB4E8,
+ 28211 - 11904: 0xD9F7,
+ 28212 - 11904: 0xB4F7,
+ 28213 - 11904: 0xDA55,
+ 28214 - 11904: 0xDA56,
+ 28216 - 11904: 0xB4E5,
+ 28217 - 11904: 0xDA48,
+ 28218 - 11904: 0xB4F9,
+ 28219 - 11904: 0xD9FB,
+ 28220 - 11904: 0xD9ED,
+ 28221 - 11904: 0xD9EE,
+ 28222 - 11904: 0xB4FD,
+ 28223 - 11904: 0xD9F2,
+ 28224 - 11904: 0xD9F9,
+ 28225 - 11904: 0xD9F3,
+ 28227 - 11904: 0xB4FB,
+ 28228 - 11904: 0xB544,
+ 28229 - 11904: 0xD9EF,
+ 28230 - 11904: 0xD9E8,
+ 28231 - 11904: 0xD9E9,
+ 28233 - 11904: 0xD9EB,
+ 28234 - 11904: 0xB4EA,
+ 28235 - 11904: 0xD9F8,
+ 28237 - 11904: 0xB4F8,
+ 28238 - 11904: 0xB542,
+ 28239 - 11904: 0xFDC0,
+ 28240 - 11904: 0xFCF9,
+ 28241 - 11904: 0xD9FA,
+ 28242 - 11904: 0xDA53,
+ 28243 - 11904: 0xDA4B,
+ 28244 - 11904: 0xB4E6,
+ 28245 - 11904: 0xDA51,
+ 28246 - 11904: 0xB4F2,
+ 28247 - 11904: 0x8CDD,
+ 28248 - 11904: 0xB4F0,
+ 28249 - 11904: 0xFB7E,
+ 28250 - 11904: 0xDA57,
+ 28251 - 11904: 0xB4EF,
+ 28252 - 11904: 0xDA41,
+ 28253 - 11904: 0xD9F4,
+ 28254 - 11904: 0xD9FE,
+ 28255 - 11904: 0xB547,
+ 28256 - 11904: 0xDA45,
+ 28257 - 11904: 0xDA42,
+ 28258 - 11904: 0xD9F0,
+ 28259 - 11904: 0xB543,
+ 28260 - 11904: 0xDA4F,
+ 28261 - 11904: 0xDA4C,
+ 28262 - 11904: 0xDA54,
+ 28263 - 11904: 0xB4E9,
+ 28264 - 11904: 0xDA40,
+ 28265 - 11904: 0xB546,
+ 28267 - 11904: 0xDA47,
+ 28270 - 11904: 0xB4F3,
+ 28271 - 11904: 0xB4F6,
+ 28273 - 11904: 0xDA46,
+ 28274 - 11904: 0xB545,
+ 28275 - 11904: 0xD9F5,
+ 28276 - 11904: 0xD5E4,
+ 28278 - 11904: 0x92B3,
+ 28279 - 11904: 0xDA50,
+ 28280 - 11904: 0xDA4E,
+ 28281 - 11904: 0xDA52,
+ 28284 - 11904: 0xFDAF,
+ 28294 - 11904: 0x8DE1,
+ 28296 - 11904: 0xD9EC,
+ 28297 - 11904: 0xB540,
+ 28299 - 11904: 0x95D3,
+ 28301 - 11904: 0xDE61,
+ 28302 - 11904: 0xDE60,
+ 28303 - 11904: 0xDE46,
+ 28304 - 11904: 0xB7BD,
+ 28306 - 11904: 0xDE5F,
+ 28307 - 11904: 0xDE49,
+ 28308 - 11904: 0xDE4A,
+ 28310 - 11904: 0xB7C7,
+ 28311 - 11904: 0xDE68,
+ 28312 - 11904: 0xB7C2,
+ 28313 - 11904: 0xDE5E,
+ 28314 - 11904: 0x89C1,
+ 28315 - 11904: 0xDE43,
+ 28316 - 11904: 0xB7C8,
+ 28317 - 11904: 0xB7BE,
+ 28318 - 11904: 0xDE52,
+ 28319 - 11904: 0xDE48,
+ 28320 - 11904: 0xDE4B,
+ 28321 - 11904: 0xDE63,
+ 28322 - 11904: 0xB7B8,
+ 28323 - 11904: 0xDE6A,
+ 28324 - 11904: 0xDE62,
+ 28325 - 11904: 0xB7C1,
+ 28326 - 11904: 0xDE57,
+ 28327 - 11904: 0xB7CC,
+ 28330 - 11904: 0xB7CB,
+ 28331 - 11904: 0xB7C5,
+ 28334 - 11904: 0xDE69,
+ 28335 - 11904: 0xB7B9,
+ 28336 - 11904: 0xDE55,
+ 28337 - 11904: 0xDE4C,
+ 28338 - 11904: 0xDE59,
+ 28339 - 11904: 0xDE65,
+ 28340 - 11904: 0xB7CD,
+ 28341 - 11904: 0xFD68,
+ 28342 - 11904: 0xB7BB,
+ 28343 - 11904: 0xDE54,
+ 28344 - 11904: 0x9CB7,
+ 28345 - 11904: 0xDE4D,
+ 28346 - 11904: 0xB7C4,
+ 28347 - 11904: 0x8DE3,
+ 28348 - 11904: 0xB7C3,
+ 28349 - 11904: 0xDE50,
+ 28350 - 11904: 0xDE5A,
+ 28351 - 11904: 0xDE64,
+ 28352 - 11904: 0xDE47,
+ 28353 - 11904: 0xDE51,
+ 28354 - 11904: 0xB7BC,
+ 28355 - 11904: 0xDE5B,
+ 28356 - 11904: 0xB7C9,
+ 28357 - 11904: 0xB7C0,
+ 28358 - 11904: 0xDE4E,
+ 28359 - 11904: 0xB7BF,
+ 28360 - 11904: 0xDE45,
+ 28361 - 11904: 0xDE53,
+ 28362 - 11904: 0xDE67,
+ 28363 - 11904: 0xB4FE,
+ 28364 - 11904: 0xBAB0,
+ 28365 - 11904: 0xDE56,
+ 28366 - 11904: 0xE26C,
+ 28367 - 11904: 0xDE58,
+ 28368 - 11904: 0xDE66,
+ 28369 - 11904: 0xB7C6,
+ 28370 - 11904: 0xDE4F,
+ 28371 - 11904: 0xB7BA,
+ 28372 - 11904: 0xB7CA,
+ 28373 - 11904: 0xBCF0,
+ 28374 - 11904: 0xDE44,
+ 28376 - 11904: 0xDE5D,
+ 28377 - 11904: 0xFAC0,
+ 28378 - 11904: 0x8DE5,
+ 28379 - 11904: 0xFA64,
+ 28380 - 11904: 0xDE5C,
+ 28381 - 11904: 0x8947,
+ 28386 - 11904: 0x8DE4,
+ 28392 - 11904: 0x8DE7,
+ 28393 - 11904: 0x8DE8,
+ 28395 - 11904: 0xE2AA,
+ 28396 - 11904: 0xBAAD,
+ 28397 - 11904: 0xE27D,
+ 28398 - 11904: 0xE2A4,
+ 28399 - 11904: 0xBAA2,
+ 28401 - 11904: 0xE26E,
+ 28402 - 11904: 0xBAAF,
+ 28404 - 11904: 0xBA77,
+ 28405 - 11904: 0xE26D,
+ 28406 - 11904: 0xE2B0,
+ 28407 - 11904: 0xBAB1,
+ 28408 - 11904: 0xE271,
+ 28409 - 11904: 0xE2A3,
+ 28410 - 11904: 0xFDC7,
+ 28411 - 11904: 0xE273,
+ 28412 - 11904: 0xE2B3,
+ 28413 - 11904: 0xE2AF,
+ 28414 - 11904: 0xBA75,
+ 28415 - 11904: 0xBAA1,
+ 28416 - 11904: 0xE653,
+ 28417 - 11904: 0xBAAE,
+ 28418 - 11904: 0xBA7D,
+ 28419 - 11904: 0xE26F,
+ 28420 - 11904: 0xFDB0,
+ 28421 - 11904: 0xE2AE,
+ 28422 - 11904: 0xBAA3,
+ 28423 - 11904: 0xE2AB,
+ 28424 - 11904: 0xE2B8,
+ 28425 - 11904: 0xE275,
+ 28426 - 11904: 0xE27E,
+ 28427 - 11904: 0x9445,
+ 28428 - 11904: 0x97D6,
+ 28429 - 11904: 0xE2B6,
+ 28430 - 11904: 0xE2AC,
+ 28431 - 11904: 0xBA7C,
+ 28434 - 11904: 0xE27C,
+ 28435 - 11904: 0xBA76,
+ 28436 - 11904: 0xBA74,
+ 28437 - 11904: 0xBAA8,
+ 28438 - 11904: 0xFCC6,
+ 28439 - 11904: 0x9844,
+ 28440 - 11904: 0xE27A,
+ 28441 - 11904: 0xE277,
+ 28442 - 11904: 0xE278,
+ 28444 - 11904: 0xE2B2,
+ 28446 - 11904: 0xE2B7,
+ 28447 - 11904: 0xE2B5,
+ 28448 - 11904: 0xBA7A,
+ 28449 - 11904: 0xE2B9,
+ 28450 - 11904: 0xBA7E,
+ 28451 - 11904: 0xBAA7,
+ 28452 - 11904: 0x8DE9,
+ 28453 - 11904: 0xE270,
+ 28454 - 11904: 0xE5FA,
+ 28455 - 11904: 0xE279,
+ 28457 - 11904: 0xBA78,
+ 28458 - 11904: 0xBAAC,
+ 28459 - 11904: 0xBAA9,
+ 28460 - 11904: 0xBA7B,
+ 28461 - 11904: 0xE2A5,
+ 28462 - 11904: 0xE274,
+ 28463 - 11904: 0xBAAA,
+ 28464 - 11904: 0xE2A7,
+ 28465 - 11904: 0xBAA4,
+ 28466 - 11904: 0xBAA6,
+ 28467 - 11904: 0xBA73,
+ 28468 - 11904: 0x8DEA,
+ 28469 - 11904: 0xE2A9,
+ 28470 - 11904: 0xE2A1,
+ 28471 - 11904: 0xE272,
+ 28472 - 11904: 0xBAA5,
+ 28473 - 11904: 0xE2B1,
+ 28474 - 11904: 0xE2B4,
+ 28475 - 11904: 0xE27B,
+ 28476 - 11904: 0xE2A8,
+ 28477 - 11904: 0xFE50,
+ 28478 - 11904: 0xBA79,
+ 28479 - 11904: 0xBCDF,
+ 28480 - 11904: 0xE2A6,
+ 28481 - 11904: 0xE5F9,
+ 28483 - 11904: 0xE2AD,
+ 28484 - 11904: 0xFDCC,
+ 28494 - 11904: 0xE276,
+ 28495 - 11904: 0xE644,
+ 28496 - 11904: 0xE64E,
+ 28497 - 11904: 0xBCE2,
+ 28498 - 11904: 0xE64D,
+ 28499 - 11904: 0xE659,
+ 28500 - 11904: 0xBCE4,
+ 28501 - 11904: 0xE64B,
+ 28502 - 11904: 0x9DA7,
+ 28503 - 11904: 0xE64F,
+ 28504 - 11904: 0xBCEF,
+ 28506 - 11904: 0xE646,
+ 28507 - 11904: 0xBCE7,
+ 28508 - 11904: 0xFDCD,
+ 28509 - 11904: 0xE652,
+ 28510 - 11904: 0xE9F0,
+ 28511 - 11904: 0xBCF3,
+ 28512 - 11904: 0xBCF2,
+ 28513 - 11904: 0xE654,
+ 28514 - 11904: 0xE643,
+ 28515 - 11904: 0xE65E,
+ 28516 - 11904: 0xBCED,
+ 28518 - 11904: 0xBCE3,
+ 28519 - 11904: 0xE657,
+ 28521 - 11904: 0xE65B,
+ 28522 - 11904: 0xE660,
+ 28523 - 11904: 0xE655,
+ 28524 - 11904: 0xE649,
+ 28525 - 11904: 0xBCE6,
+ 28526 - 11904: 0xBCE9,
+ 28527 - 11904: 0xBCF1,
+ 28528 - 11904: 0xBCEC,
+ 28530 - 11904: 0xE64C,
+ 28531 - 11904: 0xE2A2,
+ 28532 - 11904: 0xFDCF,
+ 28534 - 11904: 0xE648,
+ 28535 - 11904: 0xE65F,
+ 28536 - 11904: 0xBCE8,
+ 28537 - 11904: 0x95D2,
+ 28538 - 11904: 0xBCEB,
+ 28539 - 11904: 0xE661,
+ 28540 - 11904: 0xBCE0,
+ 28541 - 11904: 0xE656,
+ 28542 - 11904: 0xE5FB,
+ 28543 - 11904: 0xE65C,
+ 28544 - 11904: 0xC0DF,
+ 28545 - 11904: 0x8DED,
+ 28546 - 11904: 0xE64A,
+ 28548 - 11904: 0xBCE1,
+ 28549 - 11904: 0xE645,
+ 28550 - 11904: 0xBCE5,
+ 28551 - 11904: 0xE5FC,
+ 28552 - 11904: 0xBAAB,
+ 28553 - 11904: 0xE641,
+ 28554 - 11904: 0xFCBA,
+ 28555 - 11904: 0xE65A,
+ 28556 - 11904: 0xE642,
+ 28557 - 11904: 0xE640,
+ 28558 - 11904: 0xBCEA,
+ 28560 - 11904: 0xE658,
+ 28562 - 11904: 0xE5FE,
+ 28563 - 11904: 0xE651,
+ 28564 - 11904: 0xE650,
+ 28565 - 11904: 0xE65D,
+ 28566 - 11904: 0xE647,
+ 28567 - 11904: 0xBCEE,
+ 28573 - 11904: 0xFDC5,
+ 28574 - 11904: 0xE9F3,
+ 28575 - 11904: 0xFDD2,
+ 28576 - 11904: 0xBF49,
+ 28577 - 11904: 0xBEFE,
+ 28578 - 11904: 0xEA40,
+ 28579 - 11904: 0xE9EB,
+ 28580 - 11904: 0xBF41,
+ 28581 - 11904: 0xE9F7,
+ 28582 - 11904: 0xBF48,
+ 28583 - 11904: 0xBF43,
+ 28584 - 11904: 0xE9F5,
+ 28585 - 11904: 0xED4F,
+ 28586 - 11904: 0xE9FB,
+ 28587 - 11904: 0xEA42,
+ 28588 - 11904: 0xE9FA,
+ 28589 - 11904: 0xE9E9,
+ 28590 - 11904: 0xE9F8,
+ 28591 - 11904: 0xEA44,
+ 28592 - 11904: 0xEA46,
+ 28593 - 11904: 0xBEFD,
+ 28594 - 11904: 0xEA45,
+ 28595 - 11904: 0xBF44,
+ 28596 - 11904: 0xBF4A,
+ 28597 - 11904: 0x9CDC,
+ 28598 - 11904: 0xBF47,
+ 28600 - 11904: 0xE9FE,
+ 28601 - 11904: 0xBF46,
+ 28602 - 11904: 0xE9F9,
+ 28603 - 11904: 0x95CF,
+ 28604 - 11904: 0xE9ED,
+ 28605 - 11904: 0xE9F2,
+ 28606 - 11904: 0x8DEE,
+ 28607 - 11904: 0xE9FD,
+ 28608 - 11904: 0xBF45,
+ 28609 - 11904: 0xBF42,
+ 28610 - 11904: 0xBEFC,
+ 28611 - 11904: 0xBF40,
+ 28612 - 11904: 0xE9F1,
+ 28614 - 11904: 0xE5FD,
+ 28615 - 11904: 0xE9EC,
+ 28616 - 11904: 0xE9EF,
+ 28617 - 11904: 0xEA41,
+ 28618 - 11904: 0xE9F4,
+ 28619 - 11904: 0xE9EA,
+ 28620 - 11904: 0xED4E,
+ 28621 - 11904: 0xEA43,
+ 28622 - 11904: 0xE9EE,
+ 28623 - 11904: 0xE9FC,
+ 28627 - 11904: 0xFDD4,
+ 28628 - 11904: 0xED51,
+ 28629 - 11904: 0xC0E3,
+ 28632 - 11904: 0xC0D7,
+ 28633 - 11904: 0x96EC,
+ 28634 - 11904: 0x96EB,
+ 28635 - 11904: 0xC0DB,
+ 28636 - 11904: 0xED53,
+ 28637 - 11904: 0xED59,
+ 28638 - 11904: 0xED57,
+ 28639 - 11904: 0xC0D9,
+ 28640 - 11904: 0xC0DA,
+ 28641 - 11904: 0xC0E1,
+ 28642 - 11904: 0xED5A,
+ 28643 - 11904: 0xED52,
+ 28644 - 11904: 0xC0DC,
+ 28646 - 11904: 0xED56,
+ 28647 - 11904: 0xED55,
+ 28648 - 11904: 0xED5B,
+ 28649 - 11904: 0xC0E2,
+ 28651 - 11904: 0xC0DD,
+ 28652 - 11904: 0xC0E0,
+ 28653 - 11904: 0xED54,
+ 28654 - 11904: 0xC0E4,
+ 28655 - 11904: 0xC0DE,
+ 28656 - 11904: 0xC0E5,
+ 28657 - 11904: 0xC0D8,
+ 28658 - 11904: 0xED58,
+ 28660 - 11904: 0xED50,
+ 28662 - 11904: 0x90B6,
+ 28663 - 11904: 0xEFF7,
+ 28664 - 11904: 0xFDC3,
+ 28666 - 11904: 0xC271,
+ 28667 - 11904: 0xEFF4,
+ 28668 - 11904: 0xEFF6,
+ 28670 - 11904: 0xC26F,
+ 28671 - 11904: 0xEFF2,
+ 28672 - 11904: 0xEFF3,
+ 28673 - 11904: 0xEFEE,
+ 28675 - 11904: 0x98AB,
+ 28676 - 11904: 0xE9F6,
+ 28677 - 11904: 0xEFEF,
+ 28678 - 11904: 0xC270,
+ 28679 - 11904: 0xEFEB,
+ 28681 - 11904: 0xC26D,
+ 28682 - 11904: 0xEFF8,
+ 28683 - 11904: 0xC26E,
+ 28684 - 11904: 0xEFEC,
+ 28685 - 11904: 0xEFED,
+ 28686 - 11904: 0xEFF1,
+ 28687 - 11904: 0xC273,
+ 28689 - 11904: 0xC272,
+ 28692 - 11904: 0xEFF0,
+ 28693 - 11904: 0xC378,
+ 28694 - 11904: 0xF25F,
+ 28695 - 11904: 0xF265,
+ 28696 - 11904: 0xC379,
+ 28697 - 11904: 0xF25C,
+ 28698 - 11904: 0xC376,
+ 28699 - 11904: 0xC373,
+ 28700 - 11904: 0xF267,
+ 28701 - 11904: 0xC377,
+ 28702 - 11904: 0x96EE,
+ 28703 - 11904: 0xC374,
+ 28704 - 11904: 0xF25E,
+ 28705 - 11904: 0xF261,
+ 28706 - 11904: 0xF262,
+ 28707 - 11904: 0xF263,
+ 28708 - 11904: 0xF266,
+ 28710 - 11904: 0xEFF5,
+ 28711 - 11904: 0xF25D,
+ 28712 - 11904: 0xC375,
+ 28713 - 11904: 0xF264,
+ 28714 - 11904: 0xF268,
+ 28715 - 11904: 0xF260,
+ 28716 - 11904: 0x8DF4,
+ 28719 - 11904: 0xF45D,
+ 28720 - 11904: 0xC46A,
+ 28721 - 11904: 0xF460,
+ 28722 - 11904: 0xC46B,
+ 28723 - 11904: 0xF468,
+ 28724 - 11904: 0xF45F,
+ 28725 - 11904: 0xF45C,
+ 28727 - 11904: 0xF45E,
+ 28728 - 11904: 0xF462,
+ 28729 - 11904: 0xF465,
+ 28730 - 11904: 0xF464,
+ 28731 - 11904: 0xF467,
+ 28732 - 11904: 0xF45B,
+ 28734 - 11904: 0xC469,
+ 28735 - 11904: 0xF463,
+ 28736 - 11904: 0xF466,
+ 28737 - 11904: 0xF469,
+ 28738 - 11904: 0xF461,
+ 28739 - 11904: 0xF5D3,
+ 28740 - 11904: 0xF5D4,
+ 28741 - 11904: 0xF5D8,
+ 28742 - 11904: 0xF5D9,
+ 28744 - 11904: 0xF5D6,
+ 28745 - 11904: 0xF5D7,
+ 28746 - 11904: 0xF5D5,
+ 28747 - 11904: 0xFDE0,
+ 28748 - 11904: 0xC4E9,
+ 28749 - 11904: 0x8C67,
+ 28752 - 11904: 0x8DF6,
+ 28753 - 11904: 0xC578,
+ 28754 - 11904: 0xF6EB,
+ 28756 - 11904: 0x8DF7,
+ 28757 - 11904: 0xF6E8,
+ 28758 - 11904: 0xF6E9,
+ 28759 - 11904: 0xF6EA,
+ 28760 - 11904: 0xC579,
+ 28762 - 11904: 0xF7E5,
+ 28763 - 11904: 0xF7E4,
+ 28764 - 11904: 0x8FFA,
+ 28765 - 11904: 0xF8AF,
+ 28766 - 11904: 0xC5F4,
+ 28767 - 11904: 0xF8AD,
+ 28768 - 11904: 0xF8B0,
+ 28769 - 11904: 0xF8AE,
+ 28770 - 11904: 0xF8F5,
+ 28771 - 11904: 0xC657,
+ 28772 - 11904: 0xC665,
+ 28773 - 11904: 0xF9A3,
+ 28774 - 11904: 0xF96C,
+ 28775 - 11904: 0x97D0,
+ 28776 - 11904: 0xF9A2,
+ 28777 - 11904: 0xF9D0,
+ 28778 - 11904: 0xF9D1,
+ 28779 - 11904: 0xA4F5,
+ 28780 - 11904: 0x8BD2,
+ 28782 - 11904: 0x87DE,
+ 28783 - 11904: 0x8DF8,
+ 28784 - 11904: 0xA6C7,
+ 28785 - 11904: 0xCA41,
+ 28788 - 11904: 0xCB5E,
+ 28789 - 11904: 0x90D9,
+ 28790 - 11904: 0xA85F,
+ 28791 - 11904: 0x8C47,
+ 28792 - 11904: 0xA862,
+ 28793 - 11904: 0xFAF0,
+ 28794 - 11904: 0xCB5F,
+ 28796 - 11904: 0xA860,
+ 28797 - 11904: 0xA861,
+ 28798 - 11904: 0xFDE1,
+ 28799 - 11904: 0x8DF9,
+ 28801 - 11904: 0xFDE3,
+ 28802 - 11904: 0xCD58,
+ 28803 - 11904: 0xCD5A,
+ 28804 - 11904: 0xCD55,
+ 28805 - 11904: 0xCD52,
+ 28806 - 11904: 0xCD54,
+ 28809 - 11904: 0x8DFA,
+ 28810 - 11904: 0xAAA4,
+ 28811 - 11904: 0xFB63,
+ 28814 - 11904: 0xAAA2,
+ 28815 - 11904: 0x90A6,
+ 28817 - 11904: 0xCD56,
+ 28818 - 11904: 0xAAA3,
+ 28819 - 11904: 0xCD53,
+ 28820 - 11904: 0xCD50,
+ 28821 - 11904: 0xAAA1,
+ 28822 - 11904: 0xCD57,
+ 28824 - 11904: 0xCD51,
+ 28825 - 11904: 0xAAA5,
+ 28826 - 11904: 0xCD59,
+ 28831 - 11904: 0xCFAF,
+ 28832 - 11904: 0x9970,
+ 28833 - 11904: 0xCFB3,
+ 28835 - 11904: 0x91EB,
+ 28836 - 11904: 0xACB7,
+ 28837 - 11904: 0x9770,
+ 28838 - 11904: 0x986F,
+ 28839 - 11904: 0xFDE2,
+ 28841 - 11904: 0xCFB6,
+ 28843 - 11904: 0xACAF,
+ 28844 - 11904: 0xACB2,
+ 28845 - 11904: 0xACB4,
+ 28846 - 11904: 0xACB6,
+ 28847 - 11904: 0xACB3,
+ 28848 - 11904: 0xCFB2,
+ 28849 - 11904: 0xCFB1,
+ 28851 - 11904: 0xACB1,
+ 28852 - 11904: 0xCFB4,
+ 28853 - 11904: 0xCFB5,
+ 28855 - 11904: 0xCFAE,
+ 28856 - 11904: 0xACB5,
+ 28857 - 11904: 0x98F2,
+ 28858 - 11904: 0xACB0,
+ 28859 - 11904: 0x9AFC,
+ 28860 - 11904: 0x896C,
+ 28861 - 11904: 0xFDFD,
+ 28862 - 11904: 0xCFB0,
+ 28864 - 11904: 0x995E,
+ 28868 - 11904: 0x95BD,
+ 28869 - 11904: 0xD277,
+ 28870 - 11904: 0xD278,
+ 28871 - 11904: 0xD279,
+ 28872 - 11904: 0xAF50,
+ 28874 - 11904: 0xAF4C,
+ 28875 - 11904: 0xD26E,
+ 28876 - 11904: 0xFDE4,
+ 28877 - 11904: 0xD276,
+ 28878 - 11904: 0xD27B,
+ 28879 - 11904: 0xAF51,
+ 28880 - 11904: 0x91E6,
+ 28881 - 11904: 0xD26C,
+ 28882 - 11904: 0xD272,
+ 28883 - 11904: 0xD26B,
+ 28884 - 11904: 0xD275,
+ 28885 - 11904: 0xFDE5,
+ 28886 - 11904: 0xFDE6,
+ 28887 - 11904: 0xD271,
+ 28888 - 11904: 0xAF4D,
+ 28889 - 11904: 0xAF4F,
+ 28890 - 11904: 0xD27A,
+ 28892 - 11904: 0xD26A,
+ 28893 - 11904: 0xD26D,
+ 28894 - 11904: 0xD273,
+ 28895 - 11904: 0xFDE7,
+ 28896 - 11904: 0xD274,
+ 28897 - 11904: 0xD27C,
+ 28898 - 11904: 0xD270,
+ 28900 - 11904: 0xAF4E,
+ 28911 - 11904: 0xB26D,
+ 28912 - 11904: 0xD64E,
+ 28913 - 11904: 0x9454,
+ 28915 - 11904: 0xD650,
+ 28916 - 11904: 0xD64C,
+ 28917 - 11904: 0x99B8,
+ 28918 - 11904: 0xD658,
+ 28919 - 11904: 0xD64A,
+ 28920 - 11904: 0xD657,
+ 28921 - 11904: 0xB269,
+ 28922 - 11904: 0xD648,
+ 28923 - 11904: 0xDA5B,
+ 28924 - 11904: 0xD652,
+ 28925 - 11904: 0xB26C,
+ 28926 - 11904: 0x97E9,
+ 28927 - 11904: 0xD653,
+ 28928 - 11904: 0xD656,
+ 28930 - 11904: 0xD65A,
+ 28932 - 11904: 0xD64F,
+ 28933 - 11904: 0x9346,
+ 28934 - 11904: 0xD654,
+ 28937 - 11904: 0xB26A,
+ 28938 - 11904: 0xB26B,
+ 28939 - 11904: 0xD659,
+ 28940 - 11904: 0xD64D,
+ 28941 - 11904: 0xD649,
+ 28942 - 11904: 0xD65B,
+ 28944 - 11904: 0xD651,
+ 28947 - 11904: 0xD655,
+ 28951 - 11904: 0xD64B,
+ 28953 - 11904: 0xB548,
+ 28954 - 11904: 0xB549,
+ 28955 - 11904: 0xDA65,
+ 28956 - 11904: 0xB54F,
+ 28957 - 11904: 0x9863,
+ 28958 - 11904: 0xDA59,
+ 28959 - 11904: 0xDA62,
+ 28960 - 11904: 0xDA58,
+ 28961 - 11904: 0xB54C,
+ 28962 - 11904: 0xDA60,
+ 28963 - 11904: 0xDA5E,
+ 28965 - 11904: 0xDA5F,
+ 28966 - 11904: 0xB54A,
+ 28968 - 11904: 0xDA63,
+ 28969 - 11904: 0x95BC,
+ 28971 - 11904: 0xFDED,
+ 28972 - 11904: 0xFDF7,
+ 28974 - 11904: 0xDA5C,
+ 28975 - 11904: 0xDA5A,
+ 28976 - 11904: 0xB54B,
+ 28977 - 11904: 0xDA5D,
+ 28978 - 11904: 0xDA61,
+ 28979 - 11904: 0x9870,
+ 28980 - 11904: 0x96F6,
+ 28981 - 11904: 0x8EA9,
+ 28982 - 11904: 0xB54D,
+ 28986 - 11904: 0xDA64,
+ 28987 - 11904: 0x9451,
+ 28990 - 11904: 0x8E43,
+ 28992 - 11904: 0x8B5A,
+ 28993 - 11904: 0xDE70,
+ 28994 - 11904: 0xDE77,
+ 28995 - 11904: 0xDE79,
+ 28996 - 11904: 0xDEA1,
+ 28997 - 11904: 0xFDEE,
+ 28998 - 11904: 0xB7DA,
+ 28999 - 11904: 0xDE6B,
+ 29001 - 11904: 0xB7D2,
+ 29002 - 11904: 0xFDF0,
+ 29003 - 11904: 0xDE7A,
+ 29004 - 11904: 0xB7D7,
+ 29005 - 11904: 0xDEA2,
+ 29006 - 11904: 0xB7CE,
+ 29007 - 11904: 0xFDF4,
+ 29008 - 11904: 0xDE7D,
+ 29009 - 11904: 0x9BF5,
+ 29010 - 11904: 0xDE6D,
+ 29011 - 11904: 0xDE7E,
+ 29012 - 11904: 0xDE6C,
+ 29014 - 11904: 0xB7DC,
+ 29015 - 11904: 0x8CEE,
+ 29016 - 11904: 0xDE78,
+ 29017 - 11904: 0xB7CF,
+ 29018 - 11904: 0xDEA3,
+ 29020 - 11904: 0xB7D4,
+ 29021 - 11904: 0xDE71,
+ 29022 - 11904: 0xB7D9,
+ 29023 - 11904: 0xDE7C,
+ 29024 - 11904: 0xDE6F,
+ 29025 - 11904: 0xDE76,
+ 29026 - 11904: 0xDE72,
+ 29027 - 11904: 0xDE6E,
+ 29028 - 11904: 0xB7D1,
+ 29029 - 11904: 0xB7D8,
+ 29030 - 11904: 0xB7D6,
+ 29031 - 11904: 0xB7D3,
+ 29032 - 11904: 0xB7DB,
+ 29033 - 11904: 0xB7D0,
+ 29034 - 11904: 0xDE75,
+ 29035 - 11904: 0x977E,
+ 29036 - 11904: 0xB7D5,
+ 29038 - 11904: 0xFDF1,
+ 29040 - 11904: 0xDE7B,
+ 29041 - 11904: 0x9BD5,
+ 29042 - 11904: 0xDE73,
+ 29043 - 11904: 0x9AC3,
+ 29045 - 11904: 0x97C8,
+ 29046 - 11904: 0xA0DB,
+ 29047 - 11904: 0x91D0,
+ 29048 - 11904: 0xDE74,
+ 29050 - 11904: 0x9FE4,
+ 29051 - 11904: 0xE2C1,
+ 29052 - 11904: 0x8FDD,
+ 29053 - 11904: 0xBAB4,
+ 29054 - 11904: 0x91E9,
+ 29056 - 11904: 0xE2BD,
+ 29057 - 11904: 0xE2C3,
+ 29058 - 11904: 0xE2BF,
+ 29060 - 11904: 0xBAB6,
+ 29061 - 11904: 0xE2BE,
+ 29062 - 11904: 0xE2C2,
+ 29063 - 11904: 0xE2BA,
+ 29064 - 11904: 0x98E0,
+ 29065 - 11904: 0xE2BC,
+ 29066 - 11904: 0xBAB5,
+ 29068 - 11904: 0x92CA,
+ 29070 - 11904: 0x9857,
+ 29071 - 11904: 0xE2C0,
+ 29072 - 11904: 0xE2BB,
+ 29073 - 11904: 0x8C51,
+ 29074 - 11904: 0xBAB7,
+ 29076 - 11904: 0xBAB2,
+ 29078 - 11904: 0xFDEB,
+ 29079 - 11904: 0xE2C4,
+ 29080 - 11904: 0x9B49,
+ 29081 - 11904: 0xBAB3,
+ 29082 - 11904: 0xE667,
+ 29083 - 11904: 0xE664,
+ 29084 - 11904: 0xE670,
+ 29085 - 11904: 0xE66A,
+ 29086 - 11904: 0xE66C,
+ 29087 - 11904: 0xBCF4,
+ 29088 - 11904: 0xE666,
+ 29089 - 11904: 0xE66E,
+ 29090 - 11904: 0x9D76,
+ 29091 - 11904: 0x9EAF,
+ 29092 - 11904: 0xE66D,
+ 29093 - 11904: 0xE66B,
+ 29095 - 11904: 0xE671,
+ 29096 - 11904: 0xBCF7,
+ 29097 - 11904: 0xE668,
+ 29098 - 11904: 0xE66F,
+ 29100 - 11904: 0xBCF5,
+ 29101 - 11904: 0x9CCC,
+ 29103 - 11904: 0xE663,
+ 29104 - 11904: 0xE665,
+ 29105 - 11904: 0xBCF6,
+ 29106 - 11904: 0xE662,
+ 29107 - 11904: 0xE672,
+ 29108 - 11904: 0xFDEA,
+ 29109 - 11904: 0xE669,
+ 29111 - 11904: 0x8DF1,
+ 29112 - 11904: 0xEA4A,
+ 29113 - 11904: 0xBF51,
+ 29114 - 11904: 0xFDFB,
+ 29116 - 11904: 0xEA55,
+ 29117 - 11904: 0xEA53,
+ 29118 - 11904: 0xBF4B,
+ 29119 - 11904: 0xEA49,
+ 29120 - 11904: 0xEA4C,
+ 29121 - 11904: 0xEA4D,
+ 29122 - 11904: 0xEA48,
+ 29123 - 11904: 0xBF55,
+ 29124 - 11904: 0xBF56,
+ 29125 - 11904: 0xEA47,
+ 29126 - 11904: 0xEA56,
+ 29127 - 11904: 0xEA51,
+ 29128 - 11904: 0xBF4F,
+ 29129 - 11904: 0xBF4C,
+ 29130 - 11904: 0xEA50,
+ 29131 - 11904: 0xEA4E,
+ 29134 - 11904: 0xBF52,
+ 29135 - 11904: 0xEA52,
+ 29136 - 11904: 0xBF4D,
+ 29137 - 11904: 0x8E53,
+ 29138 - 11904: 0xBF4E,
+ 29140 - 11904: 0xEA4F,
+ 29141 - 11904: 0xBF50,
+ 29142 - 11904: 0xEA4B,
+ 29144 - 11904: 0xEA54,
+ 29145 - 11904: 0xBF53,
+ 29146 - 11904: 0xEA57,
+ 29147 - 11904: 0xEA58,
+ 29148 - 11904: 0xBF54,
+ 29149 - 11904: 0xFACF,
+ 29151 - 11904: 0xC0E7,
+ 29152 - 11904: 0xC0EE,
+ 29153 - 11904: 0xED5C,
+ 29154 - 11904: 0xED62,
+ 29156 - 11904: 0xED60,
+ 29157 - 11904: 0xC0EA,
+ 29158 - 11904: 0xC0E9,
+ 29159 - 11904: 0xC0E6,
+ 29160 - 11904: 0xED5E,
+ 29163 - 11904: 0x96F9,
+ 29164 - 11904: 0xC0EC,
+ 29165 - 11904: 0xC0EB,
+ 29166 - 11904: 0xC0E8,
+ 29168 - 11904: 0xED61,
+ 29169 - 11904: 0xED5D,
+ 29170 - 11904: 0xED5F,
+ 29172 - 11904: 0xC0ED,
+ 29173 - 11904: 0x98BF,
+ 29174 - 11904: 0x9E49,
+ 29176 - 11904: 0xC277,
+ 29177 - 11904: 0xEFFB,
+ 29179 - 11904: 0xC274,
+ 29180 - 11904: 0xC275,
+ 29181 - 11904: 0xEFFD,
+ 29182 - 11904: 0xC276,
+ 29183 - 11904: 0xEFFA,
+ 29184 - 11904: 0x8CA7,
+ 29185 - 11904: 0xEFF9,
+ 29186 - 11904: 0xF26C,
+ 29187 - 11904: 0xEFFC,
+ 29189 - 11904: 0xF26D,
+ 29190 - 11904: 0xC37A,
+ 29191 - 11904: 0xF26B,
+ 29193 - 11904: 0x9BCA,
+ 29194 - 11904: 0xF26A,
+ 29196 - 11904: 0xF269,
+ 29197 - 11904: 0xC37B,
+ 29198 - 11904: 0xFDFE,
+ 29199 - 11904: 0x92DC,
+ 29200 - 11904: 0xC46C,
+ 29203 - 11904: 0xF46A,
+ 29204 - 11904: 0xF46B,
+ 29205 - 11904: 0xFE41,
+ 29206 - 11904: 0x91CC,
+ 29207 - 11904: 0x91E2,
+ 29209 - 11904: 0xF5DC,
+ 29210 - 11904: 0xF5DB,
+ 29211 - 11904: 0xC4EA,
+ 29213 - 11904: 0xF5DA,
+ 29214 - 11904: 0xF6EC,
+ 29215 - 11904: 0xF6ED,
+ 29218 - 11904: 0xF7E6,
+ 29219 - 11904: 0xF8B1,
+ 29220 - 11904: 0xFE44,
+ 29221 - 11904: 0x875F,
+ 29222 - 11904: 0xF8F6,
+ 29223 - 11904: 0xF9BC,
+ 29224 - 11904: 0xC679,
+ 29225 - 11904: 0xF9C6,
+ 29226 - 11904: 0xA4F6,
+ 29227 - 11904: 0x8BD3,
+ 29228 - 11904: 0xAAA6,
+ 29229 - 11904: 0xAAA7,
+ 29230 - 11904: 0xFE47,
+ 29232 - 11904: 0xACB8,
+ 29237 - 11904: 0xC0EF,
+ 29238 - 11904: 0xA4F7,
+ 29240 - 11904: 0xAAA8,
+ 29241 - 11904: 0xAF52,
+ 29242 - 11904: 0xB7DD,
+ 29243 - 11904: 0xA4F8,
+ 29245 - 11904: 0xB26E,
+ 29246 - 11904: 0xBAB8,
+ 29247 - 11904: 0xC962,
+ 29248 - 11904: 0xFE48,
+ 29249 - 11904: 0xCFB7,
+ 29250 - 11904: 0xD27D,
+ 29252 - 11904: 0xE2C5,
+ 29254 - 11904: 0xC0F0,
+ 29255 - 11904: 0xA4F9,
+ 29256 - 11904: 0xAAA9,
+ 29257 - 11904: 0xCFB8,
+ 29258 - 11904: 0xCFB9,
+ 29259 - 11904: 0xDA66,
+ 29260 - 11904: 0xB550,
+ 29263 - 11904: 0xDEA4,
+ 29264 - 11904: 0xA0E4,
+ 29266 - 11904: 0xB7DE,
+ 29267 - 11904: 0xE2C6,
+ 29269 - 11904: 0xFE4B,
+ 29270 - 11904: 0xBCF8,
+ 29271 - 11904: 0xFE4C,
+ 29272 - 11904: 0xC37C,
+ 29273 - 11904: 0xA4FA,
+ 29274 - 11904: 0xDA67,
+ 29275 - 11904: 0xA4FB,
+ 29276 - 11904: 0x8DBF,
+ 29277 - 11904: 0xA6C9,
+ 29278 - 11904: 0xCA42,
+ 29279 - 11904: 0xA6C8,
+ 29280 - 11904: 0xA865,
+ 29281 - 11904: 0xA864,
+ 29282 - 11904: 0xA863,
+ 29283 - 11904: 0xCB60,
+ 29286 - 11904: 0x9E78,
+ 29287 - 11904: 0xAAAA,
+ 29289 - 11904: 0xAAAB,
+ 29290 - 11904: 0xCD5B,
+ 29292 - 11904: 0xCFBA,
+ 29294 - 11904: 0xCFBD,
+ 29295 - 11904: 0xACBA,
+ 29296 - 11904: 0xCFBB,
+ 29298 - 11904: 0xACB9,
+ 29299 - 11904: 0xCFBC,
+ 29300 - 11904: 0xACBB,
+ 29302 - 11904: 0xD2A2,
+ 29303 - 11904: 0xD2A1,
+ 29304 - 11904: 0xD27E,
+ 29305 - 11904: 0xAF53,
+ 29307 - 11904: 0xD65D,
+ 29308 - 11904: 0xD65E,
+ 29309 - 11904: 0xB26F,
+ 29310 - 11904: 0xD65C,
+ 29311 - 11904: 0xD65F,
+ 29312 - 11904: 0xB552,
+ 29313 - 11904: 0xB270,
+ 29314 - 11904: 0xFE51,
+ 29316 - 11904: 0xB551,
+ 29317 - 11904: 0xDA6B,
+ 29318 - 11904: 0xDA6A,
+ 29319 - 11904: 0x9456,
+ 29320 - 11904: 0xDA68,
+ 29321 - 11904: 0xDA69,
+ 29323 - 11904: 0xDA6C,
+ 29324 - 11904: 0xDEA6,
+ 29325 - 11904: 0xDEA5,
+ 29326 - 11904: 0xDEA9,
+ 29327 - 11904: 0x9D61,
+ 29328 - 11904: 0xDEA8,
+ 29329 - 11904: 0xDEA7,
+ 29330 - 11904: 0xBAB9,
+ 29331 - 11904: 0xE2C9,
+ 29332 - 11904: 0x9457,
+ 29333 - 11904: 0xE2C8,
+ 29334 - 11904: 0xBABA,
+ 29335 - 11904: 0xE2C7,
+ 29336 - 11904: 0xE673,
+ 29338 - 11904: 0xE674,
+ 29339 - 11904: 0xBCF9,
+ 29341 - 11904: 0xEA59,
+ 29342 - 11904: 0xEA5A,
+ 29343 - 11904: 0x9966,
+ 29345 - 11904: 0xF272,
+ 29346 - 11904: 0xC37D,
+ 29347 - 11904: 0xF271,
+ 29348 - 11904: 0xF270,
+ 29349 - 11904: 0xF26E,
+ 29350 - 11904: 0xF26F,
+ 29351 - 11904: 0xC4EB,
+ 29352 - 11904: 0xF46C,
+ 29353 - 11904: 0xF6EE,
+ 29354 - 11904: 0xF8F7,
+ 29356 - 11904: 0xA4FC,
+ 29357 - 11904: 0x8BD5,
+ 29358 - 11904: 0xC9A5,
+ 29359 - 11904: 0xA5C7,
+ 29360 - 11904: 0xC9A6,
+ 29362 - 11904: 0xA069,
+ 29364 - 11904: 0xCA43,
+ 29365 - 11904: 0xCA44,
+ 29370 - 11904: 0xCB66,
+ 29373 - 11904: 0xCB62,
+ 29375 - 11904: 0xCB61,
+ 29376 - 11904: 0xAAAC,
+ 29377 - 11904: 0xCB65,
+ 29378 - 11904: 0xA867,
+ 29379 - 11904: 0xCB63,
+ 29380 - 11904: 0xA866,
+ 29381 - 11904: 0xCB67,
+ 29382 - 11904: 0xCB64,
+ 29385 - 11904: 0xCD5F,
+ 29386 - 11904: 0xCFBE,
+ 29387 - 11904: 0xCD5D,
+ 29388 - 11904: 0xCD64,
+ 29389 - 11904: 0x98B4,
+ 29390 - 11904: 0xAAAD,
+ 29392 - 11904: 0xAAB0,
+ 29393 - 11904: 0xCD65,
+ 29394 - 11904: 0xCD61,
+ 29396 - 11904: 0xCD62,
+ 29398 - 11904: 0xCD5C,
+ 29399 - 11904: 0xAAAF,
+ 29400 - 11904: 0xCD5E,
+ 29401 - 11904: 0xAAAE,
+ 29402 - 11904: 0xCD63,
+ 29404 - 11904: 0xCD60,
+ 29407 - 11904: 0xCFC2,
+ 29408 - 11904: 0xACBD,
+ 29409 - 11904: 0xACBE,
+ 29410 - 11904: 0xA049,
+ 29411 - 11904: 0xCFC5,
+ 29412 - 11904: 0xCFBF,
+ 29414 - 11904: 0xCFC4,
+ 29416 - 11904: 0xCFC0,
+ 29417 - 11904: 0xACBC,
+ 29418 - 11904: 0xCFC3,
+ 29419 - 11904: 0xCFC1,
+ 29427 - 11904: 0xD2A8,
+ 29428 - 11904: 0xD2A5,
+ 29430 - 11904: 0xD2A7,
+ 29431 - 11904: 0xAF58,
+ 29432 - 11904: 0xAF57,
+ 29433 - 11904: 0xAF55,
+ 29434 - 11904: 0xD2A4,
+ 29435 - 11904: 0xD2A9,
+ 29436 - 11904: 0xAF54,
+ 29437 - 11904: 0xAF56,
+ 29438 - 11904: 0xD2A6,
+ 29439 - 11904: 0xD667,
+ 29440 - 11904: 0xD2A3,
+ 29441 - 11904: 0xD2AA,
+ 29442 - 11904: 0xA04C,
+ 29444 - 11904: 0x9E65,
+ 29447 - 11904: 0xD662,
+ 29448 - 11904: 0xD666,
+ 29450 - 11904: 0xD665,
+ 29451 - 11904: 0xDA6E,
+ 29452 - 11904: 0xDA79,
+ 29455 - 11904: 0xD668,
+ 29456 - 11904: 0x98B5,
+ 29457 - 11904: 0xD663,
+ 29458 - 11904: 0xDA6D,
+ 29459 - 11904: 0xB274,
+ 29462 - 11904: 0xB273,
+ 29463 - 11904: 0xD661,
+ 29464 - 11904: 0xD664,
+ 29465 - 11904: 0xB275,
+ 29467 - 11904: 0xB272,
+ 29468 - 11904: 0xB271,
+ 29469 - 11904: 0xD660,
+ 29470 - 11904: 0xD669,
+ 29474 - 11904: 0xDA70,
+ 29475 - 11904: 0xDA77,
+ 29477 - 11904: 0xB554,
+ 29478 - 11904: 0xDA76,
+ 29479 - 11904: 0xDA73,
+ 29480 - 11904: 0xFE58,
+ 29481 - 11904: 0xB556,
+ 29482 - 11904: 0xFE52,
+ 29483 - 11904: 0xFE53,
+ 29484 - 11904: 0xA065,
+ 29485 - 11904: 0xDA75,
+ 29486 - 11904: 0xFE59,
+ 29488 - 11904: 0xDA6F,
+ 29489 - 11904: 0xDA71,
+ 29490 - 11904: 0xDA74,
+ 29491 - 11904: 0xDA72,
+ 29492 - 11904: 0xB555,
+ 29493 - 11904: 0xDA78,
+ 29494 - 11904: 0xB553,
+ 29495 - 11904: 0xB7DF,
+ 29496 - 11904: 0x98B7,
+ 29497 - 11904: 0x98B8,
+ 29498 - 11904: 0xDEAD,
+ 29499 - 11904: 0xDEAC,
+ 29500 - 11904: 0xDEAA,
+ 29502 - 11904: 0xB7E2,
+ 29503 - 11904: 0xB7E1,
+ 29504 - 11904: 0xDEAE,
+ 29505 - 11904: 0x98BA,
+ 29506 - 11904: 0xDEAB,
+ 29507 - 11904: 0xE2CA,
+ 29508 - 11904: 0xBABB,
+ 29509 - 11904: 0xB7E0,
+ 29512 - 11904: 0x98BB,
+ 29513 - 11904: 0xDEB0,
+ 29514 - 11904: 0xDEAF,
+ 29516 - 11904: 0xE2CD,
+ 29517 - 11904: 0xE2CB,
+ 29518 - 11904: 0xBCFA,
+ 29519 - 11904: 0x9FBC,
+ 29520 - 11904: 0xBABC,
+ 29521 - 11904: 0xE2CC,
+ 29522 - 11904: 0xE676,
+ 29527 - 11904: 0xBCFB,
+ 29528 - 11904: 0xE675,
+ 29529 - 11904: 0xE67E,
+ 29530 - 11904: 0xE67D,
+ 29531 - 11904: 0xE67B,
+ 29533 - 11904: 0xE67A,
+ 29534 - 11904: 0xE677,
+ 29535 - 11904: 0xE678,
+ 29536 - 11904: 0xE679,
+ 29537 - 11904: 0xE67C,
+ 29538 - 11904: 0xE6A1,
+ 29541 - 11904: 0xEA5F,
+ 29542 - 11904: 0xEA5C,
+ 29543 - 11904: 0xEA5D,
+ 29544 - 11904: 0xBF57,
+ 29545 - 11904: 0xEA5B,
+ 29546 - 11904: 0xEA61,
+ 29547 - 11904: 0xEA60,
+ 29548 - 11904: 0xEA5E,
+ 29550 - 11904: 0xED64,
+ 29551 - 11904: 0xED65,
+ 29552 - 11904: 0xC0F1,
+ 29553 - 11904: 0xA04A,
+ 29554 - 11904: 0xC0F2,
+ 29555 - 11904: 0xED63,
+ 29556 - 11904: 0x9EC7,
+ 29557 - 11904: 0xC279,
+ 29558 - 11904: 0xEFFE,
+ 29559 - 11904: 0xC278,
+ 29560 - 11904: 0xC37E,
+ 29562 - 11904: 0xC3A1,
+ 29563 - 11904: 0xC46D,
+ 29564 - 11904: 0xF46E,
+ 29565 - 11904: 0xF46D,
+ 29566 - 11904: 0xF5DD,
+ 29567 - 11904: 0xF6EF,
+ 29568 - 11904: 0xC57A,
+ 29569 - 11904: 0xF7E8,
+ 29570 - 11904: 0xF7E7,
+ 29571 - 11904: 0xF7E9,
+ 29572 - 11904: 0xA5C8,
+ 29573 - 11904: 0xCFC6,
+ 29574 - 11904: 0xAF59,
+ 29575 - 11904: 0xB276,
+ 29576 - 11904: 0xD66A,
+ 29577 - 11904: 0xA5C9,
+ 29578 - 11904: 0xC9A7,
+ 29579 - 11904: 0xA4FD,
+ 29580 - 11904: 0x8CA9,
+ 29582 - 11904: 0xCA45,
+ 29583 - 11904: 0x98AE,
+ 29586 - 11904: 0xCB6C,
+ 29587 - 11904: 0xCB6A,
+ 29588 - 11904: 0xCB6B,
+ 29589 - 11904: 0xCB68,
+ 29590 - 11904: 0xA868,
+ 29591 - 11904: 0xCB69,
+ 29592 - 11904: 0x92D6,
+ 29596 - 11904: 0xFAE1,
+ 29597 - 11904: 0xCD6D,
+ 29598 - 11904: 0x91D4,
+ 29599 - 11904: 0xAAB3,
+ 29600 - 11904: 0xCD6B,
+ 29601 - 11904: 0xCD67,
+ 29602 - 11904: 0xCD6A,
+ 29604 - 11904: 0xCD66,
+ 29605 - 11904: 0xAAB5,
+ 29606 - 11904: 0xCD69,
+ 29607 - 11904: 0xFADE,
+ 29608 - 11904: 0xAAB2,
+ 29609 - 11904: 0xAAB1,
+ 29610 - 11904: 0xFE5B,
+ 29611 - 11904: 0xAAB4,
+ 29612 - 11904: 0xCD6C,
+ 29613 - 11904: 0xCD68,
+ 29618 - 11904: 0xACC2,
+ 29619 - 11904: 0xACC5,
+ 29620 - 11904: 0xCFCE,
+ 29621 - 11904: 0xCFCD,
+ 29622 - 11904: 0xCFCC,
+ 29623 - 11904: 0xACBF,
+ 29624 - 11904: 0xCFD5,
+ 29625 - 11904: 0xCFCB,
+ 29626 - 11904: 0x8C53,
+ 29627 - 11904: 0xACC1,
+ 29628 - 11904: 0xD2AF,
+ 29630 - 11904: 0xCFD2,
+ 29631 - 11904: 0xCFD0,
+ 29632 - 11904: 0xACC4,
+ 29634 - 11904: 0xCFC8,
+ 29635 - 11904: 0xCFD3,
+ 29636 - 11904: 0x87BF,
+ 29637 - 11904: 0xCFCA,
+ 29638 - 11904: 0xCFD4,
+ 29639 - 11904: 0xCFD1,
+ 29640 - 11904: 0xCFC9,
+ 29641 - 11904: 0xFE5E,
+ 29642 - 11904: 0xACC0,
+ 29643 - 11904: 0xCFD6,
+ 29644 - 11904: 0xCFC7,
+ 29645 - 11904: 0xACC3,
+ 29646 - 11904: 0xFBD7,
+ 29647 - 11904: 0xFE5A,
+ 29648 - 11904: 0x94C5,
+ 29650 - 11904: 0xD2B4,
+ 29651 - 11904: 0xD2AB,
+ 29652 - 11904: 0xD2B6,
+ 29653 - 11904: 0xFACA,
+ 29654 - 11904: 0xD2AE,
+ 29655 - 11904: 0xD2B9,
+ 29656 - 11904: 0xD2BA,
+ 29657 - 11904: 0xD2AC,
+ 29658 - 11904: 0xD2B8,
+ 29659 - 11904: 0xD2B5,
+ 29660 - 11904: 0xD2B3,
+ 29661 - 11904: 0xD2B7,
+ 29662 - 11904: 0xAF5F,
+ 29664 - 11904: 0xAF5D,
+ 29665 - 11904: 0x98C1,
+ 29666 - 11904: 0x975C,
+ 29667 - 11904: 0xD2B1,
+ 29668 - 11904: 0xFE74,
+ 29669 - 11904: 0xD2AD,
+ 29670 - 11904: 0x9773,
+ 29671 - 11904: 0xD2B0,
+ 29672 - 11904: 0xD2BB,
+ 29673 - 11904: 0xD2B2,
+ 29674 - 11904: 0xAF5E,
+ 29675 - 11904: 0xCFCF,
+ 29677 - 11904: 0xAF5A,
+ 29678 - 11904: 0xAF5C,
+ 29679 - 11904: 0xFA46,
+ 29683 - 11904: 0x9764,
+ 29684 - 11904: 0xD678,
+ 29685 - 11904: 0xD66D,
+ 29686 - 11904: 0xD66B,
+ 29687 - 11904: 0xFE68,
+ 29688 - 11904: 0xD66C,
+ 29689 - 11904: 0x964E,
+ 29690 - 11904: 0xD673,
+ 29691 - 11904: 0x9765,
+ 29692 - 11904: 0xD674,
+ 29693 - 11904: 0xD670,
+ 29694 - 11904: 0xB27B,
+ 29695 - 11904: 0xD675,
+ 29696 - 11904: 0xD672,
+ 29697 - 11904: 0xD66F,
+ 29698 - 11904: 0x8C5A,
+ 29699 - 11904: 0xB279,
+ 29700 - 11904: 0xD66E,
+ 29701 - 11904: 0xB277,
+ 29702 - 11904: 0xB27A,
+ 29703 - 11904: 0xD671,
+ 29704 - 11904: 0xD679,
+ 29705 - 11904: 0xAF5B,
+ 29706 - 11904: 0xB278,
+ 29707 - 11904: 0xD677,
+ 29708 - 11904: 0xD676,
+ 29709 - 11904: 0xB27C,
+ 29713 - 11904: 0x89A1,
+ 29714 - 11904: 0x95FA,
+ 29716 - 11904: 0x92D4,
+ 29717 - 11904: 0xFE69,
+ 29718 - 11904: 0xDA7E,
+ 29719 - 11904: 0xFB45,
+ 29721 - 11904: 0x98C8,
+ 29722 - 11904: 0xDAA1,
+ 29723 - 11904: 0xB560,
+ 29724 - 11904: 0x90EF,
+ 29725 - 11904: 0xDAA7,
+ 29726 - 11904: 0x98C9,
+ 29727 - 11904: 0x98CA,
+ 29728 - 11904: 0xDAA9,
+ 29729 - 11904: 0xDAA2,
+ 29730 - 11904: 0xB55A,
+ 29731 - 11904: 0xDAA6,
+ 29732 - 11904: 0xDAA5,
+ 29733 - 11904: 0xB55B,
+ 29734 - 11904: 0xB561,
+ 29736 - 11904: 0xB562,
+ 29737 - 11904: 0xDAA8,
+ 29738 - 11904: 0xB558,
+ 29739 - 11904: 0xDA7D,
+ 29740 - 11904: 0xDA7B,
+ 29741 - 11904: 0xDAA3,
+ 29742 - 11904: 0xDA7A,
+ 29743 - 11904: 0xB55F,
+ 29744 - 11904: 0xDA7C,
+ 29745 - 11904: 0xDAA4,
+ 29746 - 11904: 0xDAAA,
+ 29747 - 11904: 0xB559,
+ 29748 - 11904: 0xB55E,
+ 29749 - 11904: 0xB55C,
+ 29750 - 11904: 0xB55D,
+ 29751 - 11904: 0x946D,
+ 29752 - 11904: 0x94B7,
+ 29753 - 11904: 0xFE6C,
+ 29754 - 11904: 0xB557,
+ 29756 - 11904: 0x946B,
+ 29759 - 11904: 0xB7E9,
+ 29760 - 11904: 0xDEB7,
+ 29761 - 11904: 0xB7E8,
+ 29762 - 11904: 0xDEBB,
+ 29763 - 11904: 0x92FC,
+ 29764 - 11904: 0xDEB1,
+ 29765 - 11904: 0x95EB,
+ 29766 - 11904: 0xDEBC,
+ 29767 - 11904: 0xFE73,
+ 29768 - 11904: 0x976E,
+ 29769 - 11904: 0xFE5F,
+ 29770 - 11904: 0xDEB2,
+ 29771 - 11904: 0xDEB3,
+ 29772 - 11904: 0x87B8,
+ 29773 - 11904: 0xDEBD,
+ 29774 - 11904: 0xDEBA,
+ 29775 - 11904: 0xDEB8,
+ 29776 - 11904: 0xDEB9,
+ 29777 - 11904: 0xDEB5,
+ 29778 - 11904: 0xDEB4,
+ 29779 - 11904: 0xFDBD,
+ 29780 - 11904: 0xDEBE,
+ 29781 - 11904: 0xB7E5,
+ 29782 - 11904: 0x92D5,
+ 29783 - 11904: 0xDEB6,
+ 29785 - 11904: 0xB7EA,
+ 29786 - 11904: 0xB7E4,
+ 29787 - 11904: 0xB7EB,
+ 29788 - 11904: 0xFE6F,
+ 29789 - 11904: 0xFEB9,
+ 29790 - 11904: 0xB7E7,
+ 29791 - 11904: 0xB7E6,
+ 29792 - 11904: 0xFE71,
+ 29793 - 11904: 0x8778,
+ 29794 - 11904: 0xE2CE,
+ 29795 - 11904: 0xBABE,
+ 29796 - 11904: 0xBABD,
+ 29797 - 11904: 0xFBBB,
+ 29799 - 11904: 0xE2D3,
+ 29800 - 11904: 0xA0D5,
+ 29801 - 11904: 0xBCFC,
+ 29802 - 11904: 0xBABF,
+ 29803 - 11904: 0x95FB,
+ 29804 - 11904: 0xFE77,
+ 29805 - 11904: 0xBAC1,
+ 29806 - 11904: 0xE2D4,
+ 29807 - 11904: 0xB7E3,
+ 29808 - 11904: 0xBAC0,
+ 29809 - 11904: 0xE2D0,
+ 29810 - 11904: 0xE2D2,
+ 29811 - 11904: 0xE2CF,
+ 29812 - 11904: 0xFE79,
+ 29813 - 11904: 0xE2D1,
+ 29814 - 11904: 0xFE75,
+ 29817 - 11904: 0xE6AB,
+ 29818 - 11904: 0x945D,
+ 29820 - 11904: 0xE6AA,
+ 29821 - 11904: 0xE6A7,
+ 29822 - 11904: 0xBD40,
+ 29823 - 11904: 0xEA62,
+ 29824 - 11904: 0xBD41,
+ 29825 - 11904: 0xE6A6,
+ 29826 - 11904: 0xFE7C,
+ 29827 - 11904: 0xBCFE,
+ 29829 - 11904: 0xE6A8,
+ 29830 - 11904: 0xE6A5,
+ 29831 - 11904: 0xE6A2,
+ 29832 - 11904: 0xE6A9,
+ 29833 - 11904: 0xE6A3,
+ 29834 - 11904: 0xE6A4,
+ 29835 - 11904: 0xBCFD,
+ 29836 - 11904: 0x9344,
+ 29837 - 11904: 0x8EA6,
+ 29840 - 11904: 0xED69,
+ 29842 - 11904: 0xEA66,
+ 29844 - 11904: 0xEA65,
+ 29845 - 11904: 0xEA67,
+ 29847 - 11904: 0xED66,
+ 29848 - 11904: 0xBF5A,
+ 29849 - 11904: 0x92D3,
+ 29850 - 11904: 0xEA63,
+ 29851 - 11904: 0x94B8,
+ 29852 - 11904: 0xBF58,
+ 29853 - 11904: 0x8779,
+ 29854 - 11904: 0xBF5C,
+ 29855 - 11904: 0xBF5B,
+ 29856 - 11904: 0xEA64,
+ 29857 - 11904: 0xEA68,
+ 29859 - 11904: 0xBF59,
+ 29860 - 11904: 0xFC71,
+ 29861 - 11904: 0xED6D,
+ 29862 - 11904: 0xC0F5,
+ 29863 - 11904: 0xC27A,
+ 29864 - 11904: 0xC0F6,
+ 29865 - 11904: 0xC0F3,
+ 29866 - 11904: 0xED6A,
+ 29867 - 11904: 0xED68,
+ 29869 - 11904: 0xED6B,
+ 29871 - 11904: 0xED6E,
+ 29872 - 11904: 0xC0F4,
+ 29873 - 11904: 0xED6C,
+ 29874 - 11904: 0xED67,
+ 29876 - 11904: 0x975E,
+ 29877 - 11904: 0xF042,
+ 29878 - 11904: 0xF045,
+ 29879 - 11904: 0xF275,
+ 29880 - 11904: 0xF040,
+ 29881 - 11904: 0x8CAD,
+ 29882 - 11904: 0xF46F,
+ 29883 - 11904: 0xF046,
+ 29885 - 11904: 0xC3A2,
+ 29886 - 11904: 0xF044,
+ 29887 - 11904: 0xC27B,
+ 29888 - 11904: 0xF041,
+ 29889 - 11904: 0xF043,
+ 29890 - 11904: 0xF047,
+ 29891 - 11904: 0xF276,
+ 29893 - 11904: 0xF274,
+ 29894 - 11904: 0x87C1,
+ 29896 - 11904: 0xFEA7,
+ 29898 - 11904: 0xC3A3,
+ 29899 - 11904: 0xF273,
+ 29900 - 11904: 0x946A,
+ 29903 - 11904: 0xC46E,
+ 29904 - 11904: 0x93E3,
+ 29907 - 11904: 0x98CF,
+ 29908 - 11904: 0xC4ED,
+ 29909 - 11904: 0xF6F1,
+ 29910 - 11904: 0xC4EC,
+ 29911 - 11904: 0xF6F3,
+ 29912 - 11904: 0xF6F0,
+ 29913 - 11904: 0xF6F2,
+ 29914 - 11904: 0xC5D0,
+ 29915 - 11904: 0xF8B2,
+ 29916 - 11904: 0xA5CA,
+ 29917 - 11904: 0xCD6E,
+ 29918 - 11904: 0xD2BC,
+ 29919 - 11904: 0xD2BD,
+ 29920 - 11904: 0xB27D,
+ 29921 - 11904: 0xDEBF,
+ 29922 - 11904: 0xBF5D,
+ 29923 - 11904: 0xC3A4,
+ 29924 - 11904: 0xC57B,
+ 29925 - 11904: 0xF8B3,
+ 29926 - 11904: 0xA5CB,
+ 29927 - 11904: 0xA0D9,
+ 29928 - 11904: 0xCD6F,
+ 29929 - 11904: 0xFEAA,
+ 29932 - 11904: 0xCFD7,
+ 29934 - 11904: 0xCFD8,
+ 29936 - 11904: 0xA0BF,
+ 29937 - 11904: 0xA04D,
+ 29938 - 11904: 0xA0B8,
+ 29940 - 11904: 0xD2BE,
+ 29941 - 11904: 0xD2BF,
+ 29942 - 11904: 0xB27E,
+ 29943 - 11904: 0xB2A1,
+ 29944 - 11904: 0xA0CE,
+ 29947 - 11904: 0xDAAB,
+ 29949 - 11904: 0xDEC2,
+ 29950 - 11904: 0xDEC1,
+ 29951 - 11904: 0xDEC0,
+ 29952 - 11904: 0xE2D5,
+ 29954 - 11904: 0xE2D6,
+ 29955 - 11904: 0xE2D7,
+ 29956 - 11904: 0xBAC2,
+ 29957 - 11904: 0xA0B7,
+ 29959 - 11904: 0xE6AD,
+ 29960 - 11904: 0xE6AC,
+ 29963 - 11904: 0xEA69,
+ 29964 - 11904: 0xBF5E,
+ 29965 - 11904: 0xBF5F,
+ 29966 - 11904: 0xFEA9,
+ 29967 - 11904: 0xED72,
+ 29968 - 11904: 0xED6F,
+ 29969 - 11904: 0xED70,
+ 29970 - 11904: 0xED71,
+ 29971 - 11904: 0xF049,
+ 29972 - 11904: 0xF048,
+ 29973 - 11904: 0xC27C,
+ 29974 - 11904: 0xF277,
+ 29975 - 11904: 0xF5DE,
+ 29976 - 11904: 0xA5CC,
+ 29977 - 11904: 0x89C3,
+ 29978 - 11904: 0xACC6,
+ 29980 - 11904: 0xB2A2,
+ 29981 - 11904: 0xDEC3,
+ 29982 - 11904: 0xFEAB,
+ 29983 - 11904: 0xA5CD,
+ 29985 - 11904: 0xD2C0,
+ 29986 - 11904: 0xB2A3,
+ 29989 - 11904: 0xB563,
+ 29990 - 11904: 0xB564,
+ 29992 - 11904: 0xA5CE,
+ 29993 - 11904: 0xA5CF,
+ 29994 - 11904: 0xCA46,
+ 29995 - 11904: 0xA86A,
+ 29996 - 11904: 0xA869,
+ 29997 - 11904: 0xACC7,
+ 29998 - 11904: 0xCFD9,
+ 29999 - 11904: 0xDAAC,
+ 30000 - 11904: 0xA5D0,
+ 30001 - 11904: 0xA5D1,
+ 30002 - 11904: 0xA5D2,
+ 30003 - 11904: 0xA5D3,
+ 30004 - 11904: 0x9DF4,
+ 30005 - 11904: 0x896D,
+ 30007 - 11904: 0xA86B,
+ 30008 - 11904: 0xA86C,
+ 30009 - 11904: 0xCB6E,
+ 30010 - 11904: 0xCB6D,
+ 30011 - 11904: 0x9C7B,
+ 30013 - 11904: 0xAAB6,
+ 30014 - 11904: 0xCD72,
+ 30015 - 11904: 0xCD70,
+ 30016 - 11904: 0xCD71,
+ 30018 - 11904: 0x98D2,
+ 30022 - 11904: 0x9FA9,
+ 30023 - 11904: 0xCFDA,
+ 30024 - 11904: 0xCFDB,
+ 30026 - 11904: 0xFEB2,
+ 30027 - 11904: 0xACCB,
+ 30028 - 11904: 0xACC9,
+ 30029 - 11904: 0xFEB1,
+ 30030 - 11904: 0xACCA,
+ 30031 - 11904: 0xACC8,
+ 30033 - 11904: 0x97D9,
+ 30035 - 11904: 0xA0C4,
+ 30036 - 11904: 0xAF60,
+ 30037 - 11904: 0x9476,
+ 30041 - 11904: 0xAF64,
+ 30042 - 11904: 0xAF63,
+ 30043 - 11904: 0xD2C1,
+ 30044 - 11904: 0xAF62,
+ 30045 - 11904: 0xAF61,
+ 30047 - 11904: 0xD2C2,
+ 30048 - 11904: 0x9978,
+ 30050 - 11904: 0xB2A6,
+ 30051 - 11904: 0xD67B,
+ 30052 - 11904: 0xD67A,
+ 30053 - 11904: 0xB2A4,
+ 30054 - 11904: 0xB2A5,
+ 30055 - 11904: 0xFEB3,
+ 30058 - 11904: 0xB566,
+ 30059 - 11904: 0xB565,
+ 30060 - 11904: 0xDAAE,
+ 30061 - 11904: 0x98D3,
+ 30062 - 11904: 0xFEB4,
+ 30063 - 11904: 0xDAAD,
+ 30064 - 11904: 0xB2A7,
+ 30066 - 11904: 0x98D4,
+ 30070 - 11904: 0xB7ED,
+ 30071 - 11904: 0xDEC5,
+ 30072 - 11904: 0xB7EE,
+ 30073 - 11904: 0xDEC4,
+ 30074 - 11904: 0x9FB9,
+ 30077 - 11904: 0xE2D8,
+ 30078 - 11904: 0xE6AE,
+ 30079 - 11904: 0xBD42,
+ 30080 - 11904: 0xEA6A,
+ 30083 - 11904: 0x9471,
+ 30084 - 11904: 0xED73,
+ 30086 - 11904: 0xC3A6,
+ 30087 - 11904: 0xC3A5,
+ 30090 - 11904: 0xC57C,
+ 30091 - 11904: 0xA5D4,
+ 30092 - 11904: 0xCD73,
+ 30093 - 11904: 0x98D5,
+ 30094 - 11904: 0xFEB8,
+ 30095 - 11904: 0xB2A8,
+ 30096 - 11904: 0xE2D9,
+ 30097 - 11904: 0xBAC3,
+ 30098 - 11904: 0xC6D4,
+ 30100 - 11904: 0xCB6F,
+ 30101 - 11904: 0xCB70,
+ 30104 - 11904: 0xCD74,
+ 30105 - 11904: 0xAAB8,
+ 30106 - 11904: 0xAAB9,
+ 30109 - 11904: 0xAAB7,
+ 30110 - 11904: 0xFEBA,
+ 30114 - 11904: 0xACCF,
+ 30115 - 11904: 0xACD0,
+ 30116 - 11904: 0xACCD,
+ 30117 - 11904: 0xACCE,
+ 30119 - 11904: 0xCFDC,
+ 30122 - 11904: 0xCFDD,
+ 30123 - 11904: 0xACCC,
+ 30128 - 11904: 0xD2C3,
+ 30129 - 11904: 0x9E5C,
+ 30130 - 11904: 0xAF68,
+ 30131 - 11904: 0xAF69,
+ 30132 - 11904: 0xFEBB,
+ 30133 - 11904: 0xB2AB,
+ 30134 - 11904: 0xD2C9,
+ 30136 - 11904: 0xAF6E,
+ 30137 - 11904: 0xAF6C,
+ 30138 - 11904: 0xD2CA,
+ 30139 - 11904: 0xD2C5,
+ 30140 - 11904: 0xAF6B,
+ 30141 - 11904: 0xAF6A,
+ 30142 - 11904: 0xAF65,
+ 30143 - 11904: 0xD2C8,
+ 30144 - 11904: 0xD2C7,
+ 30145 - 11904: 0xD2C4,
+ 30146 - 11904: 0xAF6D,
+ 30147 - 11904: 0xA044,
+ 30148 - 11904: 0xD2C6,
+ 30149 - 11904: 0xAF66,
+ 30151 - 11904: 0xAF67,
+ 30152 - 11904: 0x98D7,
+ 30154 - 11904: 0xB2AC,
+ 30155 - 11904: 0xD6A1,
+ 30156 - 11904: 0xD6A2,
+ 30157 - 11904: 0xB2AD,
+ 30158 - 11904: 0xD67C,
+ 30159 - 11904: 0xD67E,
+ 30160 - 11904: 0xD6A4,
+ 30161 - 11904: 0xD6A3,
+ 30162 - 11904: 0xD67D,
+ 30164 - 11904: 0xB2A9,
+ 30165 - 11904: 0xB2AA,
+ 30167 - 11904: 0xDAB6,
+ 30168 - 11904: 0xB56B,
+ 30169 - 11904: 0xB56A,
+ 30170 - 11904: 0xDAB0,
+ 30171 - 11904: 0xB568,
+ 30172 - 11904: 0x98D8,
+ 30173 - 11904: 0xDAB3,
+ 30174 - 11904: 0xB56C,
+ 30175 - 11904: 0xDAB4,
+ 30176 - 11904: 0xB56D,
+ 30177 - 11904: 0xDAB1,
+ 30178 - 11904: 0xB567,
+ 30179 - 11904: 0xB569,
+ 30180 - 11904: 0xDAB5,
+ 30182 - 11904: 0xDAB2,
+ 30183 - 11904: 0xDAAF,
+ 30189 - 11904: 0xDED2,
+ 30191 - 11904: 0xDEC7,
+ 30192 - 11904: 0xB7F0,
+ 30193 - 11904: 0xB7F3,
+ 30194 - 11904: 0xB7F2,
+ 30195 - 11904: 0xB7F7,
+ 30196 - 11904: 0xB7F6,
+ 30197 - 11904: 0xDED3,
+ 30198 - 11904: 0xDED1,
+ 30199 - 11904: 0xDECA,
+ 30200 - 11904: 0xDECE,
+ 30201 - 11904: 0xDECD,
+ 30202 - 11904: 0xB7F4,
+ 30203 - 11904: 0xDED0,
+ 30204 - 11904: 0xDECC,
+ 30205 - 11904: 0xDED4,
+ 30206 - 11904: 0xDECB,
+ 30207 - 11904: 0xB7F5,
+ 30208 - 11904: 0xB7EF,
+ 30209 - 11904: 0xB7F1,
+ 30210 - 11904: 0xFEBC,
+ 30211 - 11904: 0xDEC9,
+ 30215 - 11904: 0x9FFE,
+ 30216 - 11904: 0xE2DB,
+ 30217 - 11904: 0xBAC7,
+ 30218 - 11904: 0xE2DF,
+ 30219 - 11904: 0xBAC6,
+ 30220 - 11904: 0xE2DC,
+ 30221 - 11904: 0xBAC5,
+ 30223 - 11904: 0xDEC8,
+ 30224 - 11904: 0xDECF,
+ 30225 - 11904: 0xE2DE,
+ 30227 - 11904: 0xBAC8,
+ 30228 - 11904: 0xE2E0,
+ 30229 - 11904: 0xE2DD,
+ 30230 - 11904: 0xE2DA,
+ 30233 - 11904: 0xE6B1,
+ 30234 - 11904: 0xE6B5,
+ 30235 - 11904: 0xE6B7,
+ 30236 - 11904: 0xE6B3,
+ 30237 - 11904: 0xE6B2,
+ 30238 - 11904: 0xE6B0,
+ 30239 - 11904: 0xBD45,
+ 30240 - 11904: 0xBD43,
+ 30241 - 11904: 0xBD48,
+ 30242 - 11904: 0xBD49,
+ 30243 - 11904: 0xE6B4,
+ 30244 - 11904: 0xBD46,
+ 30245 - 11904: 0xE6AF,
+ 30246 - 11904: 0xBD47,
+ 30247 - 11904: 0xBAC4,
+ 30248 - 11904: 0xE6B6,
+ 30249 - 11904: 0xBD44,
+ 30252 - 11904: 0xFEBD,
+ 30253 - 11904: 0xEA6C,
+ 30255 - 11904: 0xEA6B,
+ 30256 - 11904: 0xEA73,
+ 30257 - 11904: 0xEA6D,
+ 30258 - 11904: 0xEA72,
+ 30259 - 11904: 0xEA6F,
+ 30260 - 11904: 0xBF60,
+ 30261 - 11904: 0xEA71,
+ 30264 - 11904: 0xBF61,
+ 30266 - 11904: 0xBF62,
+ 30267 - 11904: 0x9DDD,
+ 30268 - 11904: 0xEA70,
+ 30269 - 11904: 0xEA6E,
+ 30272 - 11904: 0x9EE1,
+ 30274 - 11904: 0xC0F8,
+ 30275 - 11904: 0xED74,
+ 30278 - 11904: 0xC0F7,
+ 30279 - 11904: 0xED77,
+ 30280 - 11904: 0xED75,
+ 30281 - 11904: 0xED76,
+ 30284 - 11904: 0xC0F9,
+ 30285 - 11904: 0x98DA,
+ 30286 - 11904: 0x9DDF,
+ 30287 - 11904: 0xFEBF,
+ 30288 - 11904: 0xF04D,
+ 30289 - 11904: 0xFEBE,
+ 30290 - 11904: 0xC2A1,
+ 30291 - 11904: 0xF04E,
+ 30292 - 11904: 0x9EEB,
+ 30294 - 11904: 0xC27D,
+ 30295 - 11904: 0xF04F,
+ 30296 - 11904: 0xC27E,
+ 30297 - 11904: 0xF04C,
+ 30298 - 11904: 0xF050,
+ 30300 - 11904: 0xF04A,
+ 30303 - 11904: 0xC3A7,
+ 30304 - 11904: 0xF278,
+ 30305 - 11904: 0xC3A8,
+ 30306 - 11904: 0xC46F,
+ 30308 - 11904: 0xF04B,
+ 30309 - 11904: 0xC470,
+ 30310 - 11904: 0x9E59,
+ 30311 - 11904: 0xA05C,
+ 30313 - 11904: 0xC4EE,
+ 30314 - 11904: 0xF5DF,
+ 30316 - 11904: 0xC57E,
+ 30317 - 11904: 0xF6F4,
+ 30318 - 11904: 0xC57D,
+ 30319 - 11904: 0xFEC0,
+ 30320 - 11904: 0xF7EA,
+ 30321 - 11904: 0xC5F5,
+ 30322 - 11904: 0xC5F6,
+ 30323 - 11904: 0x9477,
+ 30324 - 11904: 0x98DC,
+ 30325 - 11904: 0xF9CC,
+ 30326 - 11904: 0xFEC1,
+ 30328 - 11904: 0xACD1,
+ 30329 - 11904: 0xCFDE,
+ 30330 - 11904: 0x98DE,
+ 30331 - 11904: 0xB56E,
+ 30332 - 11904: 0xB56F,
+ 30333 - 11904: 0xA5D5,
+ 30334 - 11904: 0xA6CA,
+ 30335 - 11904: 0xCA47,
+ 30337 - 11904: 0xCB71,
+ 30338 - 11904: 0xA86D,
+ 30340 - 11904: 0xAABA,
+ 30342 - 11904: 0xACD2,
+ 30343 - 11904: 0xACD3,
+ 30344 - 11904: 0xACD4,
+ 30345 - 11904: 0xD6A6,
+ 30346 - 11904: 0xD2CB,
+ 30347 - 11904: 0xAF6F,
+ 30350 - 11904: 0xB2AE,
+ 30351 - 11904: 0xD6A5,
+ 30352 - 11904: 0xFEC3,
+ 30354 - 11904: 0xDAB8,
+ 30355 - 11904: 0xB571,
+ 30357 - 11904: 0xDAB7,
+ 30358 - 11904: 0xB570,
+ 30361 - 11904: 0xDED5,
+ 30362 - 11904: 0xBD4A,
+ 30363 - 11904: 0xE6BB,
+ 30364 - 11904: 0xE6B8,
+ 30365 - 11904: 0xE6B9,
+ 30366 - 11904: 0xE6BA,
+ 30369 - 11904: 0xFEC8,
+ 30372 - 11904: 0xED78,
+ 30373 - 11904: 0xFEC9,
+ 30374 - 11904: 0xF051,
+ 30378 - 11904: 0xF471,
+ 30379 - 11904: 0xF470,
+ 30381 - 11904: 0xF6F5,
+ 30382 - 11904: 0xA5D6,
+ 30383 - 11904: 0xCD75,
+ 30384 - 11904: 0xAF70,
+ 30388 - 11904: 0xB572,
+ 30389 - 11904: 0xDED6,
+ 30391 - 11904: 0xFECA,
+ 30392 - 11904: 0xE2E1,
+ 30394 - 11904: 0xBD4B,
+ 30395 - 11904: 0xEA74,
+ 30397 - 11904: 0xF052,
+ 30398 - 11904: 0xF472,
+ 30399 - 11904: 0xA5D7,
+ 30402 - 11904: 0xAABB,
+ 30403 - 11904: 0xACD7,
+ 30404 - 11904: 0xCFDF,
+ 30405 - 11904: 0xACD8,
+ 30406 - 11904: 0xACD6,
+ 30408 - 11904: 0xACD5,
+ 30409 - 11904: 0xD2CC,
+ 30410 - 11904: 0xAF71,
+ 30412 - 11904: 0xFECB,
+ 30413 - 11904: 0xAF72,
+ 30414 - 11904: 0xAF73,
+ 30418 - 11904: 0xB2B0,
+ 30419 - 11904: 0xD6A7,
+ 30420 - 11904: 0xB2AF,
+ 30422 - 11904: 0x9FC2,
+ 30425 - 11904: 0x8C6B,
+ 30426 - 11904: 0xDAB9,
+ 30427 - 11904: 0xB2B1,
+ 30428 - 11904: 0xB573,
+ 30429 - 11904: 0xDED7,
+ 30430 - 11904: 0xB7F8,
+ 30431 - 11904: 0xB7F9,
+ 30433 - 11904: 0xBAC9,
+ 30435 - 11904: 0xBACA,
+ 30436 - 11904: 0xBD4C,
+ 30437 - 11904: 0xBF64,
+ 30438 - 11904: 0xEA75,
+ 30439 - 11904: 0xBF63,
+ 30441 - 11904: 0xED79,
+ 30442 - 11904: 0xC0FA,
+ 30444 - 11904: 0xF053,
+ 30445 - 11904: 0xF473,
+ 30446 - 11904: 0xA5D8,
+ 30447 - 11904: 0xA86E,
+ 30448 - 11904: 0xCD78,
+ 30449 - 11904: 0xCD77,
+ 30450 - 11904: 0xAABC,
+ 30451 - 11904: 0xCD76,
+ 30452 - 11904: 0xAABD,
+ 30453 - 11904: 0xCD79,
+ 30455 - 11904: 0xCFE5,
+ 30456 - 11904: 0xACDB,
+ 30457 - 11904: 0xACDA,
+ 30458 - 11904: 0xCFE7,
+ 30459 - 11904: 0xCFE6,
+ 30460 - 11904: 0xACDF,
+ 30462 - 11904: 0xACDE,
+ 30465 - 11904: 0xACD9,
+ 30467 - 11904: 0xCFE1,
+ 30468 - 11904: 0xCFE2,
+ 30469 - 11904: 0xCFE3,
+ 30471 - 11904: 0xACE0,
+ 30472 - 11904: 0xCFE0,
+ 30473 - 11904: 0xACDC,
+ 30474 - 11904: 0xCFE4,
+ 30475 - 11904: 0xACDD,
+ 30476 - 11904: 0x98C4,
+ 30478 - 11904: 0x94B0,
+ 30479 - 11904: 0x94B1,
+ 30480 - 11904: 0xD2CF,
+ 30481 - 11904: 0xD2D3,
+ 30482 - 11904: 0xD2D1,
+ 30483 - 11904: 0xD2D0,
+ 30485 - 11904: 0xD2D4,
+ 30489 - 11904: 0xD2D5,
+ 30490 - 11904: 0xD2D6,
+ 30491 - 11904: 0xD2CE,
+ 30493 - 11904: 0xD2CD,
+ 30494 - 11904: 0xFED1,
+ 30495 - 11904: 0xAF75,
+ 30496 - 11904: 0xAF76,
+ 30498 - 11904: 0xD2D7,
+ 30499 - 11904: 0xD2D2,
+ 30500 - 11904: 0xA0C1,
+ 30501 - 11904: 0xD6B0,
+ 30502 - 11904: 0xFED2,
+ 30503 - 11904: 0xD2D8,
+ 30504 - 11904: 0xAF77,
+ 30505 - 11904: 0xAF74,
+ 30507 - 11904: 0xA0CD,
+ 30509 - 11904: 0xD6AA,
+ 30511 - 11904: 0xD6A9,
+ 30513 - 11904: 0xD6AB,
+ 30514 - 11904: 0xD6AC,
+ 30515 - 11904: 0xD6AE,
+ 30516 - 11904: 0xD6AD,
+ 30517 - 11904: 0xD6B2,
+ 30518 - 11904: 0xB2B5,
+ 30519 - 11904: 0xB2B2,
+ 30520 - 11904: 0xB2B6,
+ 30521 - 11904: 0xD6A8,
+ 30522 - 11904: 0xB2B7,
+ 30523 - 11904: 0xD6B1,
+ 30524 - 11904: 0xB2B4,
+ 30525 - 11904: 0xD6AF,
+ 30526 - 11904: 0xB2B3,
+ 30528 - 11904: 0xFED3,
+ 30531 - 11904: 0x98E5,
+ 30532 - 11904: 0xDABC,
+ 30533 - 11904: 0xDABE,
+ 30534 - 11904: 0xDABA,
+ 30535 - 11904: 0xDABB,
+ 30538 - 11904: 0xDABF,
+ 30539 - 11904: 0xDAC1,
+ 30540 - 11904: 0xDAC2,
+ 30541 - 11904: 0xDABD,
+ 30542 - 11904: 0xDAC0,
+ 30543 - 11904: 0xB574,
+ 30546 - 11904: 0xDEDB,
+ 30548 - 11904: 0xDEE0,
+ 30549 - 11904: 0xDED8,
+ 30550 - 11904: 0xDEDC,
+ 30552 - 11904: 0xFED6,
+ 30553 - 11904: 0xDEE1,
+ 30554 - 11904: 0xDEDD,
+ 30555 - 11904: 0xB7FA,
+ 30556 - 11904: 0xB843,
+ 30558 - 11904: 0xB7FD,
+ 30559 - 11904: 0xDED9,
+ 30560 - 11904: 0xDEDA,
+ 30561 - 11904: 0xBACE,
+ 30562 - 11904: 0xB846,
+ 30563 - 11904: 0xB7FE,
+ 30565 - 11904: 0xB844,
+ 30566 - 11904: 0xB7FC,
+ 30567 - 11904: 0xDEDF,
+ 30568 - 11904: 0xB845,
+ 30569 - 11904: 0xDEDE,
+ 30570 - 11904: 0xB841,
+ 30571 - 11904: 0xB7FB,
+ 30572 - 11904: 0xB842,
+ 30573 - 11904: 0xDEE2,
+ 30574 - 11904: 0xE2E6,
+ 30575 - 11904: 0xE2E8,
+ 30578 - 11904: 0x91E4,
+ 30583 - 11904: 0x8FC7,
+ 30584 - 11904: 0x94AE,
+ 30585 - 11904: 0xB840,
+ 30586 - 11904: 0x8A4F,
+ 30587 - 11904: 0x94B2,
+ 30588 - 11904: 0xE2E3,
+ 30589 - 11904: 0xBACC,
+ 30590 - 11904: 0xE2E9,
+ 30591 - 11904: 0xBACD,
+ 30592 - 11904: 0xE2E7,
+ 30593 - 11904: 0xE2E2,
+ 30594 - 11904: 0xE2E5,
+ 30595 - 11904: 0xE2EA,
+ 30596 - 11904: 0xBACB,
+ 30597 - 11904: 0xE2E4,
+ 30599 - 11904: 0xBD4E,
+ 30600 - 11904: 0xE6BF,
+ 30601 - 11904: 0xE6BE,
+ 30603 - 11904: 0xBD51,
+ 30604 - 11904: 0xBD4F,
+ 30605 - 11904: 0xE6BC,
+ 30606 - 11904: 0xBD4D,
+ 30607 - 11904: 0xE6BD,
+ 30609 - 11904: 0xBD50,
+ 30611 - 11904: 0x8FD4,
+ 30613 - 11904: 0xEA7D,
+ 30615 - 11904: 0xEAA1,
+ 30616 - 11904: 0x98EA,
+ 30617 - 11904: 0xEA7E,
+ 30618 - 11904: 0xEA76,
+ 30619 - 11904: 0xEA7A,
+ 30620 - 11904: 0xEA79,
+ 30621 - 11904: 0xEA77,
+ 30622 - 11904: 0xBF66,
+ 30623 - 11904: 0xBF67,
+ 30624 - 11904: 0xBF65,
+ 30625 - 11904: 0xEA78,
+ 30626 - 11904: 0xEA7B,
+ 30627 - 11904: 0xEA7C,
+ 30629 - 11904: 0xBF68,
+ 30631 - 11904: 0xC140,
+ 30632 - 11904: 0xEDA3,
+ 30634 - 11904: 0xC0FC,
+ 30635 - 11904: 0xED7B,
+ 30636 - 11904: 0xC0FE,
+ 30637 - 11904: 0xC141,
+ 30639 - 11904: 0xFED8,
+ 30640 - 11904: 0xC0FD,
+ 30641 - 11904: 0xEDA2,
+ 30642 - 11904: 0xED7C,
+ 30643 - 11904: 0xC0FB,
+ 30644 - 11904: 0xEDA1,
+ 30645 - 11904: 0xED7A,
+ 30646 - 11904: 0xED7E,
+ 30647 - 11904: 0xED7D,
+ 30649 - 11904: 0x9DE0,
+ 30650 - 11904: 0xF055,
+ 30651 - 11904: 0xC2A4,
+ 30652 - 11904: 0xC2A5,
+ 30653 - 11904: 0xC2A2,
+ 30654 - 11904: 0x98EE,
+ 30655 - 11904: 0xC2A3,
+ 30658 - 11904: 0xF054,
+ 30659 - 11904: 0x95C4,
+ 30660 - 11904: 0xF27B,
+ 30661 - 11904: 0xFCE8,
+ 30663 - 11904: 0xC3A9,
+ 30665 - 11904: 0xF279,
+ 30666 - 11904: 0xF27A,
+ 30667 - 11904: 0x98EF,
+ 30668 - 11904: 0xF474,
+ 30669 - 11904: 0xF477,
+ 30670 - 11904: 0xF475,
+ 30671 - 11904: 0xF476,
+ 30672 - 11904: 0xF5E0,
+ 30675 - 11904: 0xC4EF,
+ 30676 - 11904: 0xF7EB,
+ 30677 - 11904: 0xF8B4,
+ 30679 - 11904: 0xC5F7,
+ 30680 - 11904: 0xF8F8,
+ 30681 - 11904: 0xF8F9,
+ 30682 - 11904: 0xC666,
+ 30683 - 11904: 0xA5D9,
+ 30684 - 11904: 0xACE1,
+ 30685 - 11904: 0x8C6E,
+ 30686 - 11904: 0xDAC3,
+ 30688 - 11904: 0xDEE3,
+ 30690 - 11904: 0xA5DA,
+ 30691 - 11904: 0xA86F,
+ 30693 - 11904: 0xAABE,
+ 30694 - 11904: 0xFAD8,
+ 30695 - 11904: 0xCFE8,
+ 30696 - 11904: 0xCFE9,
+ 30697 - 11904: 0xAF78,
+ 30700 - 11904: 0xDAC4,
+ 30701 - 11904: 0xB575,
+ 30702 - 11904: 0xB847,
+ 30703 - 11904: 0xC142,
+ 30704 - 11904: 0xEDA4,
+ 30705 - 11904: 0xF27C,
+ 30706 - 11904: 0xF478,
+ 30707 - 11904: 0xA5DB,
+ 30708 - 11904: 0xFEDC,
+ 30711 - 11904: 0xCDA1,
+ 30712 - 11904: 0xCD7A,
+ 30713 - 11904: 0xCD7C,
+ 30714 - 11904: 0xCD7E,
+ 30715 - 11904: 0xCD7D,
+ 30716 - 11904: 0xCD7B,
+ 30717 - 11904: 0xAABF,
+ 30718 - 11904: 0xA0AE,
+ 30722 - 11904: 0xACE2,
+ 30723 - 11904: 0xCFF2,
+ 30725 - 11904: 0xCFED,
+ 30726 - 11904: 0xCFEA,
+ 30728 - 11904: 0x9D4C,
+ 30729 - 11904: 0xFEDD,
+ 30732 - 11904: 0xACE4,
+ 30733 - 11904: 0xACE5,
+ 30734 - 11904: 0xCFF0,
+ 30735 - 11904: 0xCFEF,
+ 30736 - 11904: 0xCFEE,
+ 30737 - 11904: 0xCFEB,
+ 30738 - 11904: 0xCFEC,
+ 30739 - 11904: 0xCFF3,
+ 30740 - 11904: 0xACE3,
+ 30744 - 11904: 0x98F1,
+ 30748 - 11904: 0x98F3,
+ 30749 - 11904: 0xAF7C,
+ 30750 - 11904: 0x94C1,
+ 30751 - 11904: 0xAFA4,
+ 30752 - 11904: 0xAFA3,
+ 30753 - 11904: 0xD2E1,
+ 30754 - 11904: 0xD2DB,
+ 30755 - 11904: 0xD2D9,
+ 30757 - 11904: 0xAFA1,
+ 30758 - 11904: 0xD6B9,
+ 30759 - 11904: 0xAF7A,
+ 30760 - 11904: 0xD2DE,
+ 30761 - 11904: 0xD2E2,
+ 30762 - 11904: 0xD2E4,
+ 30763 - 11904: 0xD2E0,
+ 30764 - 11904: 0xD2DA,
+ 30765 - 11904: 0xAFA2,
+ 30766 - 11904: 0xD2DF,
+ 30767 - 11904: 0xD2DD,
+ 30768 - 11904: 0xAF79,
+ 30769 - 11904: 0xD2E5,
+ 30770 - 11904: 0xAFA5,
+ 30771 - 11904: 0xD2E3,
+ 30772 - 11904: 0xAF7D,
+ 30773 - 11904: 0xD2DC,
+ 30775 - 11904: 0xAF7E,
+ 30776 - 11904: 0xAF7B,
+ 30777 - 11904: 0x98F5,
+ 30780 - 11904: 0xFA4F,
+ 30781 - 11904: 0x96E2,
+ 30786 - 11904: 0x9450,
+ 30787 - 11904: 0xB2B9,
+ 30788 - 11904: 0x96A2,
+ 30789 - 11904: 0xD6BA,
+ 30791 - 11904: 0x98F6,
+ 30792 - 11904: 0xD6B3,
+ 30793 - 11904: 0xD6B5,
+ 30794 - 11904: 0xD6B7,
+ 30795 - 11904: 0x96E5,
+ 30796 - 11904: 0xD6B8,
+ 30797 - 11904: 0xD6B6,
+ 30798 - 11904: 0xB2BA,
+ 30800 - 11904: 0xD6BB,
+ 30801 - 11904: 0x98F7,
+ 30802 - 11904: 0xD6B4,
+ 30803 - 11904: 0xA046,
+ 30804 - 11904: 0x96E3,
+ 30812 - 11904: 0xDAC8,
+ 30813 - 11904: 0xB576,
+ 30814 - 11904: 0xDAD0,
+ 30816 - 11904: 0xDAC5,
+ 30818 - 11904: 0xDAD1,
+ 30820 - 11904: 0xDAC6,
+ 30821 - 11904: 0xDAC7,
+ 30822 - 11904: 0x98F8,
+ 30824 - 11904: 0xDACF,
+ 30825 - 11904: 0xDACE,
+ 30826 - 11904: 0xDACB,
+ 30827 - 11904: 0xB2B8,
+ 30828 - 11904: 0xB577,
+ 30829 - 11904: 0xDAC9,
+ 30830 - 11904: 0xDACC,
+ 30831 - 11904: 0xB578,
+ 30832 - 11904: 0xDACD,
+ 30833 - 11904: 0xDACA,
+ 30841 - 11904: 0xDEEE,
+ 30842 - 11904: 0x9EE4,
+ 30843 - 11904: 0xDEF2,
+ 30844 - 11904: 0xB84E,
+ 30846 - 11904: 0xE2F0,
+ 30847 - 11904: 0xB851,
+ 30848 - 11904: 0xDEF0,
+ 30849 - 11904: 0xF9D6,
+ 30851 - 11904: 0xDEED,
+ 30852 - 11904: 0xDEE8,
+ 30853 - 11904: 0xDEEA,
+ 30854 - 11904: 0xDEEB,
+ 30855 - 11904: 0xDEE4,
+ 30856 - 11904: 0x94C3,
+ 30857 - 11904: 0xB84D,
+ 30860 - 11904: 0xB84C,
+ 30861 - 11904: 0x94C2,
+ 30862 - 11904: 0xB848,
+ 30863 - 11904: 0xDEE7,
+ 30865 - 11904: 0xB84F,
+ 30867 - 11904: 0xB850,
+ 30868 - 11904: 0xDEE6,
+ 30869 - 11904: 0xDEE9,
+ 30870 - 11904: 0xDEF1,
+ 30871 - 11904: 0xB84A,
+ 30872 - 11904: 0xB84B,
+ 30873 - 11904: 0xDEEF,
+ 30874 - 11904: 0xDEE5,
+ 30878 - 11904: 0xE2F2,
+ 30879 - 11904: 0xBAD0,
+ 30880 - 11904: 0xE2F4,
+ 30881 - 11904: 0xDEEC,
+ 30882 - 11904: 0xE2F6,
+ 30883 - 11904: 0xBAD4,
+ 30884 - 11904: 0xE2F7,
+ 30885 - 11904: 0xE2F3,
+ 30887 - 11904: 0xBAD1,
+ 30888 - 11904: 0xE2EF,
+ 30889 - 11904: 0xBAD3,
+ 30890 - 11904: 0xE2EC,
+ 30891 - 11904: 0xE2F1,
+ 30892 - 11904: 0xE2F5,
+ 30893 - 11904: 0xE2EE,
+ 30895 - 11904: 0xFEE1,
+ 30896 - 11904: 0xB849,
+ 30897 - 11904: 0xFEE9,
+ 30898 - 11904: 0xE2EB,
+ 30899 - 11904: 0xBAD2,
+ 30900 - 11904: 0xE2ED,
+ 30902 - 11904: 0x96E4,
+ 30904 - 11904: 0x89AC,
+ 30905 - 11904: 0x96DB,
+ 30906 - 11904: 0xBD54,
+ 30907 - 11904: 0xE6C1,
+ 30908 - 11904: 0xBD58,
+ 30910 - 11904: 0xBD56,
+ 30913 - 11904: 0xBACF,
+ 30915 - 11904: 0xE6C8,
+ 30916 - 11904: 0xE6C9,
+ 30917 - 11904: 0xBD53,
+ 30919 - 11904: 0xFEE2,
+ 30920 - 11904: 0xE6C7,
+ 30921 - 11904: 0xE6CA,
+ 30922 - 11904: 0xBD55,
+ 30923 - 11904: 0xBD52,
+ 30924 - 11904: 0xE6C3,
+ 30925 - 11904: 0xE6C0,
+ 30926 - 11904: 0xE6C5,
+ 30927 - 11904: 0xE6C2,
+ 30928 - 11904: 0xBD59,
+ 30929 - 11904: 0xE6C4,
+ 30930 - 11904: 0x94C4,
+ 30931 - 11904: 0xFEE3,
+ 30932 - 11904: 0xE6C6,
+ 30933 - 11904: 0xBD57,
+ 30935 - 11904: 0xFEE7,
+ 30936 - 11904: 0x9FFB,
+ 30938 - 11904: 0xBF6A,
+ 30939 - 11904: 0xEAA8,
+ 30941 - 11904: 0xEAA2,
+ 30942 - 11904: 0xEAA6,
+ 30943 - 11904: 0xEAAC,
+ 30944 - 11904: 0xEAAD,
+ 30945 - 11904: 0xEAA9,
+ 30946 - 11904: 0xEAAA,
+ 30947 - 11904: 0xEAA7,
+ 30948 - 11904: 0x8C59,
+ 30949 - 11904: 0xEAA4,
+ 30951 - 11904: 0xBF6C,
+ 30952 - 11904: 0xBF69,
+ 30953 - 11904: 0xEAA3,
+ 30954 - 11904: 0xEAA5,
+ 30956 - 11904: 0xBF6B,
+ 30957 - 11904: 0xEAAB,
+ 30958 - 11904: 0x93C9,
+ 30959 - 11904: 0xC146,
+ 30960 - 11904: 0x94E8,
+ 30961 - 11904: 0xFB56,
+ 30962 - 11904: 0xEDAA,
+ 30963 - 11904: 0xEDA5,
+ 30964 - 11904: 0xC145,
+ 30965 - 11904: 0x90C5,
+ 30967 - 11904: 0xC143,
+ 30969 - 11904: 0xEDAC,
+ 30970 - 11904: 0xC144,
+ 30971 - 11904: 0xEDA8,
+ 30972 - 11904: 0xEDA9,
+ 30973 - 11904: 0xEDA6,
+ 30974 - 11904: 0xEDAD,
+ 30975 - 11904: 0xF056,
+ 30977 - 11904: 0xC147,
+ 30978 - 11904: 0xEDA7,
+ 30980 - 11904: 0xEDAE,
+ 30981 - 11904: 0xEDAB,
+ 30982 - 11904: 0xA0A8,
+ 30985 - 11904: 0xF05A,
+ 30988 - 11904: 0xF057,
+ 30990 - 11904: 0xC2A6,
+ 30992 - 11904: 0xF05B,
+ 30993 - 11904: 0xF05D,
+ 30994 - 11904: 0xF05C,
+ 30995 - 11904: 0xF058,
+ 30996 - 11904: 0xF059,
+ 30999 - 11904: 0xF2A3,
+ 31001 - 11904: 0xC3AA,
+ 31003 - 11904: 0xF27E,
+ 31004 - 11904: 0xF2A2,
+ 31005 - 11904: 0xF27D,
+ 31006 - 11904: 0xF2A4,
+ 31009 - 11904: 0xF2A1,
+ 31011 - 11904: 0xF47A,
+ 31012 - 11904: 0xF47D,
+ 31013 - 11904: 0xF479,
+ 31014 - 11904: 0xC471,
+ 31015 - 11904: 0xF47B,
+ 31016 - 11904: 0xF47C,
+ 31017 - 11904: 0xF47E,
+ 31018 - 11904: 0xC472,
+ 31019 - 11904: 0xC474,
+ 31020 - 11904: 0xC473,
+ 31021 - 11904: 0xF5E1,
+ 31022 - 11904: 0xFEE5,
+ 31023 - 11904: 0xF5E3,
+ 31025 - 11904: 0xF5E2,
+ 31026 - 11904: 0x98FD,
+ 31027 - 11904: 0x98FB,
+ 31028 - 11904: 0xFEE8,
+ 31029 - 11904: 0xF6F6,
+ 31030 - 11904: 0x8EBF,
+ 31032 - 11904: 0xF8B5,
+ 31033 - 11904: 0xF8FA,
+ 31034 - 11904: 0xA5DC,
+ 31035 - 11904: 0x8BD8,
+ 31036 - 11904: 0xFEF7,
+ 31037 - 11904: 0xCB72,
+ 31038 - 11904: 0xAAC0,
+ 31039 - 11904: 0xCDA3,
+ 31040 - 11904: 0xAAC1,
+ 31041 - 11904: 0xAAC2,
+ 31042 - 11904: 0xCDA2,
+ 31044 - 11904: 0xCFF8,
+ 31045 - 11904: 0xCFF7,
+ 31046 - 11904: 0xACE6,
+ 31047 - 11904: 0xACE9,
+ 31048 - 11904: 0xACE8,
+ 31049 - 11904: 0xACE7,
+ 31050 - 11904: 0xCFF4,
+ 31051 - 11904: 0xCFF6,
+ 31052 - 11904: 0xCFF5,
+ 31055 - 11904: 0xD2E8,
+ 31056 - 11904: 0xAFA7,
+ 31057 - 11904: 0xD2EC,
+ 31058 - 11904: 0xD2EB,
+ 31059 - 11904: 0xD2EA,
+ 31060 - 11904: 0xD2E6,
+ 31061 - 11904: 0xAFA6,
+ 31062 - 11904: 0xAFAA,
+ 31063 - 11904: 0xAFAD,
+ 31064 - 11904: 0x8F68,
+ 31065 - 11904: 0x94C6,
+ 31066 - 11904: 0xAFAE,
+ 31067 - 11904: 0xD2E7,
+ 31068 - 11904: 0xD2E9,
+ 31069 - 11904: 0xAFAC,
+ 31070 - 11904: 0xAFAB,
+ 31071 - 11904: 0xAFA9,
+ 31072 - 11904: 0xAFA8,
+ 31073 - 11904: 0xD6C2,
+ 31074 - 11904: 0x9DEA,
+ 31075 - 11904: 0xD6C0,
+ 31076 - 11904: 0xD6BC,
+ 31077 - 11904: 0xB2BB,
+ 31079 - 11904: 0xD6BD,
+ 31080 - 11904: 0xB2BC,
+ 31081 - 11904: 0xD6BE,
+ 31082 - 11904: 0xD6BF,
+ 31083 - 11904: 0xD6C1,
+ 31085 - 11904: 0xB2BD,
+ 31088 - 11904: 0xDAD5,
+ 31089 - 11904: 0xFC69,
+ 31090 - 11904: 0xDAD4,
+ 31091 - 11904: 0xDAD3,
+ 31092 - 11904: 0xDAD2,
+ 31097 - 11904: 0xDEF6,
+ 31098 - 11904: 0xB852,
+ 31100 - 11904: 0xDEF3,
+ 31101 - 11904: 0xDEF5,
+ 31102 - 11904: 0x9CDA,
+ 31103 - 11904: 0xB853,
+ 31104 - 11904: 0xFEF3,
+ 31105 - 11904: 0xB854,
+ 31106 - 11904: 0xDEF4,
+ 31107 - 11904: 0x9C72,
+ 31110 - 11904: 0xFEF0,
+ 31111 - 11904: 0x89C9,
+ 31112 - 11904: 0xE341,
+ 31114 - 11904: 0xE2F9,
+ 31115 - 11904: 0xE2FA,
+ 31117 - 11904: 0xBAD7,
+ 31118 - 11904: 0xBAD5,
+ 31119 - 11904: 0xBAD6,
+ 31120 - 11904: 0xE343,
+ 31121 - 11904: 0x9941,
+ 31122 - 11904: 0xE342,
+ 31123 - 11904: 0xE2FE,
+ 31124 - 11904: 0xE2FD,
+ 31125 - 11904: 0xE2FC,
+ 31126 - 11904: 0xE2FB,
+ 31127 - 11904: 0xE340,
+ 31128 - 11904: 0xE2F8,
+ 31129 - 11904: 0x9942,
+ 31130 - 11904: 0xE6CB,
+ 31131 - 11904: 0xE6D0,
+ 31132 - 11904: 0xE6CE,
+ 31133 - 11904: 0xFEF5,
+ 31135 - 11904: 0x91D7,
+ 31136 - 11904: 0xE6CD,
+ 31137 - 11904: 0xE6CC,
+ 31138 - 11904: 0xE6CF,
+ 31140 - 11904: 0xEAAE,
+ 31141 - 11904: 0x94CC,
+ 31142 - 11904: 0xBF6D,
+ 31143 - 11904: 0xC148,
+ 31144 - 11904: 0xEDB0,
+ 31145 - 11904: 0xFEF8,
+ 31146 - 11904: 0xC149,
+ 31147 - 11904: 0xEDAF,
+ 31148 - 11904: 0xF05F,
+ 31149 - 11904: 0xF05E,
+ 31150 - 11904: 0xC2A7,
+ 31152 - 11904: 0xF2A5,
+ 31153 - 11904: 0xC3AB,
+ 31154 - 11904: 0xF4A1,
+ 31155 - 11904: 0xC5A1,
+ 31156 - 11904: 0xF6F7,
+ 31158 - 11904: 0xF8B7,
+ 31159 - 11904: 0xF8B6,
+ 31160 - 11904: 0xC9A8,
+ 31161 - 11904: 0xACEA,
+ 31162 - 11904: 0xACEB,
+ 31163 - 11904: 0xD6C3,
+ 31165 - 11904: 0xB856,
+ 31166 - 11904: 0xA5DD,
+ 31167 - 11904: 0xA872,
+ 31168 - 11904: 0xA871,
+ 31169 - 11904: 0xA870,
+ 31172 - 11904: 0x97A8,
+ 31173 - 11904: 0xCDA4,
+ 31174 - 11904: 0xFEFC,
+ 31176 - 11904: 0xAAC4,
+ 31177 - 11904: 0xAAC3,
+ 31178 - 11904: 0x8CDE,
+ 31179 - 11904: 0xACEE,
+ 31180 - 11904: 0xFDBF,
+ 31181 - 11904: 0xCFFA,
+ 31182 - 11904: 0xCFFD,
+ 31183 - 11904: 0xCFFB,
+ 31184 - 11904: 0x87B3,
+ 31185 - 11904: 0xACEC,
+ 31186 - 11904: 0xACED,
+ 31188 - 11904: 0xFEFE,
+ 31189 - 11904: 0xCFF9,
+ 31190 - 11904: 0xCFFC,
+ 31192 - 11904: 0xAFB5,
+ 31196 - 11904: 0xD2F3,
+ 31197 - 11904: 0xD2F5,
+ 31198 - 11904: 0xD2F4,
+ 31199 - 11904: 0xAFB2,
+ 31200 - 11904: 0xD2EF,
+ 31202 - 11904: 0x96D1,
+ 31203 - 11904: 0xAFB0,
+ 31204 - 11904: 0xAFAF,
+ 31206 - 11904: 0xAFB3,
+ 31207 - 11904: 0xAFB1,
+ 31209 - 11904: 0xAFB4,
+ 31210 - 11904: 0xD2F2,
+ 31211 - 11904: 0xD2ED,
+ 31212 - 11904: 0xD2EE,
+ 31213 - 11904: 0xD2F1,
+ 31214 - 11904: 0xD2F0,
+ 31217 - 11904: 0x94D5,
+ 31220 - 11904: 0x94D0,
+ 31222 - 11904: 0xD6C6,
+ 31223 - 11904: 0xD6C7,
+ 31224 - 11904: 0xD6C5,
+ 31226 - 11904: 0xD6C4,
+ 31227 - 11904: 0xB2BE,
+ 31232 - 11904: 0xB57D,
+ 31234 - 11904: 0xDAD6,
+ 31235 - 11904: 0xDAD8,
+ 31236 - 11904: 0xDADA,
+ 31237 - 11904: 0xB57C,
+ 31238 - 11904: 0x9944,
+ 31240 - 11904: 0xB57A,
+ 31242 - 11904: 0xDAD7,
+ 31243 - 11904: 0xB57B,
+ 31244 - 11904: 0xDAD9,
+ 31245 - 11904: 0xB579,
+ 31248 - 11904: 0xDF41,
+ 31249 - 11904: 0xDEF7,
+ 31250 - 11904: 0xDEFA,
+ 31251 - 11904: 0xDEFE,
+ 31252 - 11904: 0xB85A,
+ 31253 - 11904: 0xDEFC,
+ 31255 - 11904: 0xDEFB,
+ 31256 - 11904: 0xDEF8,
+ 31257 - 11904: 0xDEF9,
+ 31258 - 11904: 0xB858,
+ 31259 - 11904: 0xDF40,
+ 31260 - 11904: 0xB857,
+ 31262 - 11904: 0xB85C,
+ 31263 - 11904: 0xB85B,
+ 31264 - 11904: 0xB859,
+ 31266 - 11904: 0xDEFD,
+ 31270 - 11904: 0xE349,
+ 31272 - 11904: 0xE348,
+ 31274 - 11904: 0x8C63,
+ 31275 - 11904: 0xE344,
+ 31276 - 11904: 0x87BB,
+ 31277 - 11904: 0xA0B3,
+ 31278 - 11904: 0xBAD8,
+ 31279 - 11904: 0xE347,
+ 31280 - 11904: 0xE346,
+ 31281 - 11904: 0xBAD9,
+ 31282 - 11904: 0x87B4,
+ 31287 - 11904: 0xBD5E,
+ 31289 - 11904: 0xE6D2,
+ 31290 - 11904: 0x94CF,
+ 31291 - 11904: 0xBD5F,
+ 31292 - 11904: 0xBD5B,
+ 31293 - 11904: 0xBD5D,
+ 31294 - 11904: 0x9FFA,
+ 31295 - 11904: 0xBD5A,
+ 31296 - 11904: 0xBD5C,
+ 31299 - 11904: 0x91E5,
+ 31300 - 11904: 0xEAAF,
+ 31301 - 11904: 0x9C6A,
+ 31302 - 11904: 0xBF70,
+ 31303 - 11904: 0xEAB1,
+ 31304 - 11904: 0xEAB0,
+ 31305 - 11904: 0x8E49,
+ 31306 - 11904: 0xE345,
+ 31307 - 11904: 0xBF72,
+ 31308 - 11904: 0xBF71,
+ 31309 - 11904: 0xBF6E,
+ 31310 - 11904: 0xBF6F,
+ 31316 - 11904: 0xEDB5,
+ 31318 - 11904: 0xEDB3,
+ 31319 - 11904: 0xC14A,
+ 31320 - 11904: 0xEDB4,
+ 31322 - 11904: 0xEDB6,
+ 31323 - 11904: 0xEDB2,
+ 31324 - 11904: 0xEDB1,
+ 31327 - 11904: 0xF060,
+ 31328 - 11904: 0xC2AA,
+ 31329 - 11904: 0xC2A8,
+ 31330 - 11904: 0xC2A9,
+ 31333 - 11904: 0x8E4C,
+ 31335 - 11904: 0xF2A6,
+ 31336 - 11904: 0xF2A7,
+ 31337 - 11904: 0xC3AD,
+ 31339 - 11904: 0xC3AC,
+ 31340 - 11904: 0xF4A3,
+ 31341 - 11904: 0xF4A4,
+ 31342 - 11904: 0xF4A2,
+ 31344 - 11904: 0xF6F8,
+ 31345 - 11904: 0xF6F9,
+ 31346 - 11904: 0x87C9,
+ 31348 - 11904: 0xA5DE,
+ 31349 - 11904: 0xCA48,
+ 31350 - 11904: 0xA873,
+ 31352 - 11904: 0xCDA5,
+ 31353 - 11904: 0xAAC6,
+ 31354 - 11904: 0xAAC5,
+ 31355 - 11904: 0xCDA6,
+ 31357 - 11904: 0x8E4D,
+ 31358 - 11904: 0xD040,
+ 31359 - 11904: 0xACEF,
+ 31360 - 11904: 0xCFFE,
+ 31361 - 11904: 0xACF0,
+ 31363 - 11904: 0x9A73,
+ 31364 - 11904: 0xAFB6,
+ 31365 - 11904: 0xD2F8,
+ 31366 - 11904: 0xD2F6,
+ 31367 - 11904: 0xD2FC,
+ 31368 - 11904: 0xAFB7,
+ 31369 - 11904: 0xD2F7,
+ 31370 - 11904: 0xD2FB,
+ 31371 - 11904: 0xD2F9,
+ 31372 - 11904: 0xD2FA,
+ 31375 - 11904: 0xD6C8,
+ 31376 - 11904: 0xD6CA,
+ 31377 - 11904: 0x9947,
+ 31378 - 11904: 0xB2BF,
+ 31379 - 11904: 0x8CB1,
+ 31380 - 11904: 0xD6C9,
+ 31381 - 11904: 0xB2C0,
+ 31382 - 11904: 0xB5A2,
+ 31383 - 11904: 0xB5A1,
+ 31384 - 11904: 0xB57E,
+ 31385 - 11904: 0xDADB,
+ 31390 - 11904: 0xDF44,
+ 31391 - 11904: 0xB85D,
+ 31392 - 11904: 0xB85E,
+ 31394 - 11904: 0xDF43,
+ 31395 - 11904: 0xDF42,
+ 31400 - 11904: 0xE34A,
+ 31401 - 11904: 0xBADB,
+ 31402 - 11904: 0xBADA,
+ 31403 - 11904: 0xE34B,
+ 31404 - 11904: 0xE34C,
+ 31406 - 11904: 0xBD61,
+ 31407 - 11904: 0xBD60,
+ 31408 - 11904: 0x8E50,
+ 31409 - 11904: 0xEAB5,
+ 31410 - 11904: 0xE6D3,
+ 31411 - 11904: 0xE6D5,
+ 31412 - 11904: 0xE6D4,
+ 31413 - 11904: 0xEAB4,
+ 31414 - 11904: 0xEAB2,
+ 31415 - 11904: 0xEAB6,
+ 31416 - 11904: 0xEAB3,
+ 31418 - 11904: 0xBF73,
+ 31419 - 11904: 0x8E4F,
+ 31420 - 11904: 0x9949,
+ 31422 - 11904: 0xEDB7,
+ 31423 - 11904: 0xC14B,
+ 31424 - 11904: 0xEDB8,
+ 31425 - 11904: 0xEDB9,
+ 31426 - 11904: 0x8E51,
+ 31427 - 11904: 0x8E52,
+ 31428 - 11904: 0xC2AB,
+ 31429 - 11904: 0xC2AC,
+ 31431 - 11904: 0xC475,
+ 31432 - 11904: 0x9AB2,
+ 31433 - 11904: 0x89A5,
+ 31434 - 11904: 0xC5D1,
+ 31435 - 11904: 0xA5DF,
+ 31439 - 11904: 0x994C,
+ 31441 - 11904: 0xD041,
+ 31443 - 11904: 0x9FF8,
+ 31448 - 11904: 0xD2FD,
+ 31449 - 11904: 0xAFB8,
+ 31450 - 11904: 0x8E56,
+ 31451 - 11904: 0x994D,
+ 31452 - 11904: 0x91CA,
+ 31453 - 11904: 0x8E57,
+ 31455 - 11904: 0xB3BA,
+ 31456 - 11904: 0xB3B9,
+ 31458 - 11904: 0x94E1,
+ 31459 - 11904: 0xB5A4,
+ 31460 - 11904: 0xDADD,
+ 31461 - 11904: 0xB5A3,
+ 31462 - 11904: 0xDADC,
+ 31463 - 11904: 0x9047,
+ 31465 - 11904: 0x8FD8,
+ 31466 - 11904: 0x8E58,
+ 31467 - 11904: 0xDF45,
+ 31469 - 11904: 0xBADC,
+ 31470 - 11904: 0xE34D,
+ 31471 - 11904: 0xBADD,
+ 31478 - 11904: 0xC476,
+ 31479 - 11904: 0xF4A5,
+ 31481 - 11904: 0xA6CB,
+ 31482 - 11904: 0xAAC7,
+ 31483 - 11904: 0xCDA7,
+ 31484 - 11904: 0x87A3,
+ 31485 - 11904: 0xACF2,
+ 31486 - 11904: 0x94EB,
+ 31487 - 11904: 0xACF1,
+ 31488 - 11904: 0xD042,
+ 31489 - 11904: 0xD043,
+ 31492 - 11904: 0xD340,
+ 31493 - 11904: 0xD342,
+ 31494 - 11904: 0xAFB9,
+ 31496 - 11904: 0xD344,
+ 31497 - 11904: 0xD347,
+ 31498 - 11904: 0xD345,
+ 31499 - 11904: 0x8E5C,
+ 31500 - 11904: 0x9553,
+ 31502 - 11904: 0xD346,
+ 31503 - 11904: 0xD343,
+ 31504 - 11904: 0xD2FE,
+ 31505 - 11904: 0xAFBA,
+ 31506 - 11904: 0xD348,
+ 31507 - 11904: 0xD341,
+ 31508 - 11904: 0x9FE5,
+ 31512 - 11904: 0xD6D3,
+ 31513 - 11904: 0xB2C6,
+ 31514 - 11904: 0xD6DC,
+ 31515 - 11904: 0xB2C3,
+ 31517 - 11904: 0xD6D5,
+ 31518 - 11904: 0xB2C7,
+ 31519 - 11904: 0x9F56,
+ 31520 - 11904: 0xB2C1,
+ 31522 - 11904: 0xD6D0,
+ 31523 - 11904: 0xD6DD,
+ 31524 - 11904: 0xD6D1,
+ 31525 - 11904: 0xD6CE,
+ 31526 - 11904: 0xB2C5,
+ 31527 - 11904: 0x954F,
+ 31528 - 11904: 0xB2C2,
+ 31529 - 11904: 0x8E5E,
+ 31530 - 11904: 0xD6D4,
+ 31531 - 11904: 0xD6D7,
+ 31532 - 11904: 0xB2C4,
+ 31533 - 11904: 0xD6D8,
+ 31534 - 11904: 0xB2C8,
+ 31535 - 11904: 0xD6D9,
+ 31536 - 11904: 0xD6CF,
+ 31537 - 11904: 0xD6D6,
+ 31538 - 11904: 0xD6DA,
+ 31539 - 11904: 0xD6D2,
+ 31540 - 11904: 0xD6CD,
+ 31541 - 11904: 0xD6CB,
+ 31544 - 11904: 0xD6DB,
+ 31545 - 11904: 0x996A,
+ 31547 - 11904: 0xDADF,
+ 31552 - 11904: 0xDAE4,
+ 31554 - 11904: 0x9C64,
+ 31555 - 11904: 0x9CD9,
+ 31556 - 11904: 0xDAE0,
+ 31557 - 11904: 0xDAE6,
+ 31558 - 11904: 0xB5A7,
+ 31559 - 11904: 0xD6CC,
+ 31560 - 11904: 0xDAE1,
+ 31561 - 11904: 0xB5A5,
+ 31562 - 11904: 0xDADE,
+ 31563 - 11904: 0xB5AC,
+ 31564 - 11904: 0xDAE2,
+ 31565 - 11904: 0xB5AB,
+ 31566 - 11904: 0xDAE3,
+ 31567 - 11904: 0xB5AD,
+ 31568 - 11904: 0xB5A8,
+ 31569 - 11904: 0xB5AE,
+ 31570 - 11904: 0xB5A9,
+ 31572 - 11904: 0xB5AA,
+ 31573 - 11904: 0x8E5D,
+ 31574 - 11904: 0xB5A6,
+ 31576 - 11904: 0xDAE5,
+ 31584 - 11904: 0xB861,
+ 31585 - 11904: 0xDF50,
+ 31586 - 11904: 0x9950,
+ 31587 - 11904: 0xDF53,
+ 31588 - 11904: 0xDF47,
+ 31589 - 11904: 0xDF4C,
+ 31590 - 11904: 0xDF46,
+ 31591 - 11904: 0xB863,
+ 31593 - 11904: 0xDF4A,
+ 31596 - 11904: 0x9951,
+ 31597 - 11904: 0xDF48,
+ 31598 - 11904: 0xB862,
+ 31599 - 11904: 0x8E62,
+ 31600 - 11904: 0xDF4F,
+ 31601 - 11904: 0xDF4E,
+ 31602 - 11904: 0xDF4B,
+ 31603 - 11904: 0xDF4D,
+ 31604 - 11904: 0xDF49,
+ 31605 - 11904: 0xBAE1,
+ 31606 - 11904: 0xDF52,
+ 31607 - 11904: 0xB85F,
+ 31608 - 11904: 0xDF51,
+ 31611 - 11904: 0x9952,
+ 31618 - 11904: 0xE35D,
+ 31620 - 11904: 0xBAE8,
+ 31621 - 11904: 0xE358,
+ 31623 - 11904: 0xBAE7,
+ 31624 - 11904: 0xE34E,
+ 31626 - 11904: 0xE350,
+ 31627 - 11904: 0xBAE0,
+ 31628 - 11904: 0xE355,
+ 31629 - 11904: 0xE354,
+ 31630 - 11904: 0xE357,
+ 31631 - 11904: 0xBAE5,
+ 31632 - 11904: 0xE352,
+ 31633 - 11904: 0xE351,
+ 31634 - 11904: 0x8E68,
+ 31636 - 11904: 0xBAE4,
+ 31637 - 11904: 0xBADF,
+ 31638 - 11904: 0xE353,
+ 31639 - 11904: 0xBAE2,
+ 31640 - 11904: 0xE359,
+ 31641 - 11904: 0xE35B,
+ 31643 - 11904: 0xE356,
+ 31644 - 11904: 0xE34F,
+ 31645 - 11904: 0xBAE3,
+ 31648 - 11904: 0xBD69,
+ 31649 - 11904: 0xBADE,
+ 31650 - 11904: 0x8E61,
+ 31651 - 11904: 0x9F59,
+ 31652 - 11904: 0xE35C,
+ 31660 - 11904: 0xE6D9,
+ 31661 - 11904: 0xBD62,
+ 31662 - 11904: 0x87D0,
+ 31663 - 11904: 0xE6DB,
+ 31665 - 11904: 0xBD63,
+ 31666 - 11904: 0x8BB3,
+ 31668 - 11904: 0xBD65,
+ 31669 - 11904: 0xE6DE,
+ 31671 - 11904: 0xE6D6,
+ 31672 - 11904: 0xBAE6,
+ 31673 - 11904: 0xE6DC,
+ 31678 - 11904: 0xE6D8,
+ 31680 - 11904: 0xB860,
+ 31681 - 11904: 0xBD68,
+ 31684 - 11904: 0xBD64,
+ 31685 - 11904: 0x87B9,
+ 31686 - 11904: 0xBD66,
+ 31687 - 11904: 0xBD67,
+ 31689 - 11904: 0xBF76,
+ 31690 - 11904: 0xE6DD,
+ 31691 - 11904: 0xE6D7,
+ 31692 - 11904: 0xBD6A,
+ 31694 - 11904: 0xE6DA,
+ 31695 - 11904: 0x9F5D,
+ 31696 - 11904: 0x8E66,
+ 31700 - 11904: 0xEAC0,
+ 31701 - 11904: 0xEABB,
+ 31704 - 11904: 0xEAC5,
+ 31705 - 11904: 0xBF74,
+ 31706 - 11904: 0xEABD,
+ 31707 - 11904: 0xBF78,
+ 31708 - 11904: 0xEAC3,
+ 31709 - 11904: 0xEABA,
+ 31710 - 11904: 0xEAB7,
+ 31711 - 11904: 0xEAC6,
+ 31712 - 11904: 0xC151,
+ 31713 - 11904: 0xBF79,
+ 31714 - 11904: 0xEAC2,
+ 31715 - 11904: 0xEAB8,
+ 31716 - 11904: 0xBF77,
+ 31717 - 11904: 0xEABC,
+ 31718 - 11904: 0xBF7B,
+ 31719 - 11904: 0xEAB9,
+ 31720 - 11904: 0xEABE,
+ 31721 - 11904: 0xBF7A,
+ 31722 - 11904: 0xEAC1,
+ 31723 - 11904: 0xEAC4,
+ 31724 - 11904: 0x8CB2,
+ 31728 - 11904: 0xEDCB,
+ 31729 - 11904: 0xEDCC,
+ 31730 - 11904: 0xEDBC,
+ 31731 - 11904: 0xEDC3,
+ 31732 - 11904: 0xEDC1,
+ 31735 - 11904: 0xC14F,
+ 31736 - 11904: 0xEDC8,
+ 31737 - 11904: 0xEABF,
+ 31738 - 11904: 0x8E6E,
+ 31739 - 11904: 0xEDBF,
+ 31740 - 11904: 0x9F64,
+ 31741 - 11904: 0xEDC9,
+ 31742 - 11904: 0xC14E,
+ 31743 - 11904: 0xEDBE,
+ 31744 - 11904: 0xEDBD,
+ 31745 - 11904: 0xEDC7,
+ 31746 - 11904: 0xEDC4,
+ 31747 - 11904: 0xEDC6,
+ 31749 - 11904: 0xEDBA,
+ 31750 - 11904: 0xEDCA,
+ 31751 - 11904: 0xC14C,
+ 31753 - 11904: 0xEDC5,
+ 31754 - 11904: 0xEDCE,
+ 31755 - 11904: 0xEDC2,
+ 31756 - 11904: 0xC150,
+ 31757 - 11904: 0xC14D,
+ 31758 - 11904: 0xEDC0,
+ 31759 - 11904: 0xEDBB,
+ 31760 - 11904: 0xEDCD,
+ 31761 - 11904: 0xBF75,
+ 31762 - 11904: 0x9953,
+ 31765 - 11904: 0xFAB8,
+ 31769 - 11904: 0xF063,
+ 31771 - 11904: 0x9954,
+ 31772 - 11904: 0xF061,
+ 31773 - 11904: 0xF067,
+ 31774 - 11904: 0xC2B0,
+ 31775 - 11904: 0xF065,
+ 31776 - 11904: 0xF064,
+ 31777 - 11904: 0xC2B2,
+ 31778 - 11904: 0xF06A,
+ 31779 - 11904: 0xC2B1,
+ 31781 - 11904: 0xF06B,
+ 31782 - 11904: 0xF068,
+ 31783 - 11904: 0xC2AE,
+ 31784 - 11904: 0xF069,
+ 31785 - 11904: 0xF062,
+ 31786 - 11904: 0xC2AF,
+ 31787 - 11904: 0xC2AD,
+ 31788 - 11904: 0xF2AB,
+ 31789 - 11904: 0xF066,
+ 31792 - 11904: 0xF06C,
+ 31795 - 11904: 0xF2A8,
+ 31797 - 11904: 0x8E70,
+ 31799 - 11904: 0xC3B2,
+ 31800 - 11904: 0xC3B0,
+ 31801 - 11904: 0xF2AA,
+ 31803 - 11904: 0xF2AC,
+ 31804 - 11904: 0xF2A9,
+ 31805 - 11904: 0xC3B1,
+ 31806 - 11904: 0xC3AE,
+ 31807 - 11904: 0xC3AF,
+ 31808 - 11904: 0xC3B3,
+ 31810 - 11904: 0x9F61,
+ 31811 - 11904: 0xC478,
+ 31812 - 11904: 0x8E72,
+ 31813 - 11904: 0xF4AA,
+ 31815 - 11904: 0xF4A9,
+ 31816 - 11904: 0xF4A7,
+ 31817 - 11904: 0xF4A6,
+ 31818 - 11904: 0xF4A8,
+ 31820 - 11904: 0xC477,
+ 31821 - 11904: 0xC479,
+ 31824 - 11904: 0xC4F0,
+ 31825 - 11904: 0xA06B,
+ 31827 - 11904: 0xF5E5,
+ 31828 - 11904: 0xF5E4,
+ 31830 - 11904: 0x9F40,
+ 31831 - 11904: 0xF6FA,
+ 31833 - 11904: 0xF6FC,
+ 31834 - 11904: 0xF6FE,
+ 31835 - 11904: 0xF6FD,
+ 31836 - 11904: 0xF6FB,
+ 31837 - 11904: 0x94ED,
+ 31839 - 11904: 0xC5A3,
+ 31840 - 11904: 0xC5A2,
+ 31843 - 11904: 0xC5D3,
+ 31844 - 11904: 0xC5D2,
+ 31845 - 11904: 0xC5D4,
+ 31846 - 11904: 0xF7ED,
+ 31847 - 11904: 0xF7EC,
+ 31849 - 11904: 0xF8FB,
+ 31850 - 11904: 0xF8B8,
+ 31851 - 11904: 0xF8FC,
+ 31852 - 11904: 0xC658,
+ 31853 - 11904: 0x94EE,
+ 31854 - 11904: 0xC659,
+ 31855 - 11904: 0xF96D,
+ 31856 - 11904: 0x9FBD,
+ 31858 - 11904: 0xC67E,
+ 31859 - 11904: 0xA6CC,
+ 31860 - 11904: 0x8E7B,
+ 31861 - 11904: 0xCDA8,
+ 31864 - 11904: 0xD045,
+ 31865 - 11904: 0xD046,
+ 31866 - 11904: 0xD044,
+ 31867 - 11904: 0x9957,
+ 31868 - 11904: 0x94F7,
+ 31869 - 11904: 0xACF3,
+ 31870 - 11904: 0x9F5F,
+ 31871 - 11904: 0xD047,
+ 31872 - 11904: 0xD048,
+ 31873 - 11904: 0xD049,
+ 31875 - 11904: 0x8E73,
+ 31876 - 11904: 0xD349,
+ 31877 - 11904: 0xD34F,
+ 31878 - 11904: 0x9F62,
+ 31880 - 11904: 0xD34D,
+ 31881 - 11904: 0xAFBB,
+ 31882 - 11904: 0xD34B,
+ 31884 - 11904: 0xD34C,
+ 31885 - 11904: 0xD34E,
+ 31886 - 11904: 0x94F6,
+ 31889 - 11904: 0xD34A,
+ 31890 - 11904: 0xB2C9,
+ 31892 - 11904: 0xD6DE,
+ 31893 - 11904: 0xB2CB,
+ 31894 - 11904: 0xD6E0,
+ 31895 - 11904: 0xB2CA,
+ 31896 - 11904: 0xD6DF,
+ 31900 - 11904: 0x9958,
+ 31902 - 11904: 0xDAE8,
+ 31903 - 11904: 0xB5AF,
+ 31905 - 11904: 0xDAEA,
+ 31906 - 11904: 0xDAE7,
+ 31907 - 11904: 0xD6E1,
+ 31909 - 11904: 0xB5B0,
+ 31910 - 11904: 0x8E75,
+ 31911 - 11904: 0xF9DB,
+ 31912 - 11904: 0xDAE9,
+ 31916 - 11904: 0x9072,
+ 31918 - 11904: 0x94F8,
+ 31919 - 11904: 0xDF56,
+ 31921 - 11904: 0xB864,
+ 31922 - 11904: 0xDF54,
+ 31923 - 11904: 0xB865,
+ 31924 - 11904: 0xDF55,
+ 31925 - 11904: 0xB866,
+ 31928 - 11904: 0x995A,
+ 31929 - 11904: 0xBAE9,
+ 31930 - 11904: 0xE361,
+ 31931 - 11904: 0xE35E,
+ 31932 - 11904: 0xE360,
+ 31933 - 11904: 0xBAEA,
+ 31934 - 11904: 0xBAEB,
+ 31935 - 11904: 0xE35F,
+ 31938 - 11904: 0xA0B0,
+ 31939 - 11904: 0x8CB3,
+ 31941 - 11904: 0xE6DF,
+ 31943 - 11904: 0x8E79,
+ 31944 - 11904: 0xE6E0,
+ 31945 - 11904: 0x8E78,
+ 31946 - 11904: 0xBD6B,
+ 31947 - 11904: 0xE6E2,
+ 31948 - 11904: 0xE6E1,
+ 31949 - 11904: 0x94F3,
+ 31950 - 11904: 0xA261,
+ 31952 - 11904: 0xEACA,
+ 31953 - 11904: 0xEACB,
+ 31954 - 11904: 0xEAC7,
+ 31955 - 11904: 0x98AF,
+ 31956 - 11904: 0xEAC8,
+ 31957 - 11904: 0xBF7C,
+ 31958 - 11904: 0xBF7D,
+ 31959 - 11904: 0xEAC9,
+ 31961 - 11904: 0xC157,
+ 31962 - 11904: 0xA0B2,
+ 31964 - 11904: 0xC153,
+ 31965 - 11904: 0xC158,
+ 31966 - 11904: 0xC154,
+ 31967 - 11904: 0xC156,
+ 31968 - 11904: 0xC152,
+ 31970 - 11904: 0xC155,
+ 31974 - 11904: 0x8E7A,
+ 31975 - 11904: 0xC2B3,
+ 31976 - 11904: 0xEDCF,
+ 31978 - 11904: 0xF2AE,
+ 31980 - 11904: 0xF2AD,
+ 31981 - 11904: 0x995C,
+ 31982 - 11904: 0xF4AB,
+ 31983 - 11904: 0xC47A,
+ 31984 - 11904: 0xC47B,
+ 31985 - 11904: 0xF741,
+ 31986 - 11904: 0xF5E6,
+ 31987 - 11904: 0x8E7C,
+ 31988 - 11904: 0xF740,
+ 31989 - 11904: 0x8E7D,
+ 31990 - 11904: 0xF8FD,
+ 31991 - 11904: 0xF9A4,
+ 31992 - 11904: 0xA6CD,
+ 31993 - 11904: 0x8BD9,
+ 31995 - 11904: 0xA874,
+ 31996 - 11904: 0x89A2,
+ 31997 - 11904: 0xCDA9,
+ 31998 - 11904: 0xAAC8,
+ 32000 - 11904: 0xACF6,
+ 32001 - 11904: 0xD04C,
+ 32002 - 11904: 0xACF4,
+ 32003 - 11904: 0xD04A,
+ 32004 - 11904: 0xACF9,
+ 32005 - 11904: 0xACF5,
+ 32006 - 11904: 0xACFA,
+ 32007 - 11904: 0xACF8,
+ 32008 - 11904: 0xD04B,
+ 32009 - 11904: 0xACF7,
+ 32010 - 11904: 0xAFBF,
+ 32011 - 11904: 0xAFBE,
+ 32012 - 11904: 0xD35A,
+ 32013 - 11904: 0xAFC7,
+ 32014 - 11904: 0xD353,
+ 32015 - 11904: 0xD359,
+ 32016 - 11904: 0xAFC3,
+ 32017 - 11904: 0xD352,
+ 32018 - 11904: 0xD358,
+ 32019 - 11904: 0xD356,
+ 32020 - 11904: 0xAFC2,
+ 32021 - 11904: 0xAFC4,
+ 32022 - 11904: 0xD355,
+ 32023 - 11904: 0xAFBD,
+ 32024 - 11904: 0xD354,
+ 32025 - 11904: 0xAFC8,
+ 32026 - 11904: 0xAFC5,
+ 32027 - 11904: 0xAFC9,
+ 32028 - 11904: 0xAFC6,
+ 32029 - 11904: 0xD351,
+ 32030 - 11904: 0xD350,
+ 32031 - 11904: 0xD357,
+ 32032 - 11904: 0xAFC0,
+ 32033 - 11904: 0xAFBC,
+ 32034 - 11904: 0xAFC1,
+ 32037 - 11904: 0x9ED7,
+ 32040 - 11904: 0xD6F0,
+ 32041 - 11904: 0xD6E9,
+ 32043 - 11904: 0xB5B5,
+ 32044 - 11904: 0xD6E8,
+ 32046 - 11904: 0xB2CF,
+ 32047 - 11904: 0xB2D6,
+ 32048 - 11904: 0xB2D3,
+ 32049 - 11904: 0xB2D9,
+ 32050 - 11904: 0xB2D8,
+ 32051 - 11904: 0xB2D4,
+ 32053 - 11904: 0xD6E2,
+ 32054 - 11904: 0xD6E5,
+ 32056 - 11904: 0xD6E4,
+ 32057 - 11904: 0xB2D0,
+ 32058 - 11904: 0xD6E6,
+ 32059 - 11904: 0xD6EF,
+ 32060 - 11904: 0xB2D1,
+ 32061 - 11904: 0xD6E3,
+ 32062 - 11904: 0xD6EC,
+ 32063 - 11904: 0xD6ED,
+ 32064 - 11904: 0xB2D2,
+ 32065 - 11904: 0xD6EA,
+ 32066 - 11904: 0xB2D7,
+ 32067 - 11904: 0xB2CD,
+ 32068 - 11904: 0xB2D5,
+ 32069 - 11904: 0xD6E7,
+ 32070 - 11904: 0xB2CC,
+ 32071 - 11904: 0xD6EB,
+ 32074 - 11904: 0xD6EE,
+ 32077 - 11904: 0xA0B6,
+ 32078 - 11904: 0xDAFB,
+ 32079 - 11904: 0xDAF2,
+ 32080 - 11904: 0xB5B2,
+ 32081 - 11904: 0xDAF9,
+ 32082 - 11904: 0xDAF6,
+ 32083 - 11904: 0xDAEE,
+ 32084 - 11904: 0xDAF7,
+ 32085 - 11904: 0xB5B4,
+ 32086 - 11904: 0xDAEF,
+ 32088 - 11904: 0xDAEB,
+ 32090 - 11904: 0x9E42,
+ 32091 - 11904: 0xB86C,
+ 32092 - 11904: 0xDAF4,
+ 32093 - 11904: 0x8EA4,
+ 32094 - 11904: 0xB5B1,
+ 32095 - 11904: 0xDAFA,
+ 32097 - 11904: 0xB5B8,
+ 32098 - 11904: 0xB5BA,
+ 32099 - 11904: 0xDAED,
+ 32102 - 11904: 0xB5B9,
+ 32103 - 11904: 0xDAF0,
+ 32104 - 11904: 0xB5B3,
+ 32105 - 11904: 0xDAF8,
+ 32106 - 11904: 0xDAF1,
+ 32107 - 11904: 0xDAF5,
+ 32109 - 11904: 0xDAF3,
+ 32110 - 11904: 0xB5B6,
+ 32111 - 11904: 0xDAEC,
+ 32112 - 11904: 0xB5BB,
+ 32113 - 11904: 0xB2CE,
+ 32114 - 11904: 0xB5B7,
+ 32115 - 11904: 0xB5BC,
+ 32121 - 11904: 0xB868,
+ 32122 - 11904: 0xDF5D,
+ 32123 - 11904: 0xDF5F,
+ 32124 - 11904: 0xDF61,
+ 32125 - 11904: 0xDF65,
+ 32127 - 11904: 0xDF5B,
+ 32128 - 11904: 0xDF59,
+ 32129 - 11904: 0xB86A,
+ 32131 - 11904: 0xDF60,
+ 32132 - 11904: 0xDF64,
+ 32133 - 11904: 0xDF5C,
+ 32134 - 11904: 0xDF58,
+ 32136 - 11904: 0xDF57,
+ 32137 - 11904: 0x8EA7,
+ 32139 - 11904: 0x8C76,
+ 32140 - 11904: 0xDF62,
+ 32141 - 11904: 0xDF5A,
+ 32142 - 11904: 0xDF5E,
+ 32143 - 11904: 0xB86B,
+ 32145 - 11904: 0xB869,
+ 32146 - 11904: 0xDF66,
+ 32147 - 11904: 0xB867,
+ 32148 - 11904: 0xDF63,
+ 32149 - 11904: 0x8767,
+ 32150 - 11904: 0xE372,
+ 32151 - 11904: 0x9542,
+ 32156 - 11904: 0xBAEE,
+ 32157 - 11904: 0xE36A,
+ 32158 - 11904: 0xBD78,
+ 32159 - 11904: 0xE374,
+ 32160 - 11904: 0xBAF1,
+ 32161 - 11904: 0xE378,
+ 32162 - 11904: 0xBAF7,
+ 32163 - 11904: 0xE365,
+ 32164 - 11904: 0x987D,
+ 32166 - 11904: 0xE375,
+ 32167 - 11904: 0xE362,
+ 32168 - 11904: 0x9755,
+ 32169 - 11904: 0xE377,
+ 32170 - 11904: 0xE366,
+ 32171 - 11904: 0x8EA8,
+ 32172 - 11904: 0xBAFE,
+ 32173 - 11904: 0xBAFB,
+ 32174 - 11904: 0xE376,
+ 32175 - 11904: 0xE370,
+ 32176 - 11904: 0xBAED,
+ 32177 - 11904: 0xBAF5,
+ 32178 - 11904: 0xBAF4,
+ 32179 - 11904: 0x8EAA,
+ 32180 - 11904: 0xBAF3,
+ 32181 - 11904: 0xBAF9,
+ 32183 - 11904: 0xE363,
+ 32184 - 11904: 0xBAFA,
+ 32185 - 11904: 0xE371,
+ 32186 - 11904: 0xBAF6,
+ 32187 - 11904: 0xBAEC,
+ 32188 - 11904: 0xE373,
+ 32189 - 11904: 0xBAEF,
+ 32190 - 11904: 0xBAF0,
+ 32191 - 11904: 0xBAF8,
+ 32192 - 11904: 0xE368,
+ 32193 - 11904: 0xE367,
+ 32194 - 11904: 0xE364,
+ 32196 - 11904: 0xE36C,
+ 32197 - 11904: 0xE369,
+ 32198 - 11904: 0xE36D,
+ 32199 - 11904: 0xBAFD,
+ 32201 - 11904: 0xE379,
+ 32202 - 11904: 0xBAF2,
+ 32203 - 11904: 0xE36E,
+ 32204 - 11904: 0xE36F,
+ 32205 - 11904: 0x89A3,
+ 32206 - 11904: 0xE36B,
+ 32207 - 11904: 0x9960,
+ 32208 - 11904: 0x9962,
+ 32210 - 11904: 0xBAFC,
+ 32211 - 11904: 0x94FC,
+ 32212 - 11904: 0x9961,
+ 32215 - 11904: 0xE6E7,
+ 32216 - 11904: 0xBD70,
+ 32217 - 11904: 0xBD79,
+ 32218 - 11904: 0xBD75,
+ 32219 - 11904: 0xE6E4,
+ 32220 - 11904: 0x94FA,
+ 32221 - 11904: 0xBD72,
+ 32222 - 11904: 0xBD76,
+ 32223 - 11904: 0xE6F0,
+ 32224 - 11904: 0xBD6C,
+ 32225 - 11904: 0xE6E8,
+ 32227 - 11904: 0xBD74,
+ 32228 - 11904: 0x8EAE,
+ 32229 - 11904: 0x8EB2,
+ 32230 - 11904: 0xE6EB,
+ 32231 - 11904: 0xE6E6,
+ 32232 - 11904: 0xBD73,
+ 32233 - 11904: 0xBD77,
+ 32234 - 11904: 0xE6E5,
+ 32236 - 11904: 0xBD71,
+ 32238 - 11904: 0xE6EF,
+ 32239 - 11904: 0xBD6E,
+ 32240 - 11904: 0xE6EE,
+ 32241 - 11904: 0xE6ED,
+ 32242 - 11904: 0xBD7A,
+ 32243 - 11904: 0xE572,
+ 32244 - 11904: 0xBD6D,
+ 32245 - 11904: 0x8EB0,
+ 32246 - 11904: 0xE6EC,
+ 32247 - 11904: 0xE6E3,
+ 32249 - 11904: 0xBD7B,
+ 32250 - 11904: 0xE6EA,
+ 32251 - 11904: 0xBD6F,
+ 32253 - 11904: 0x9963,
+ 32254 - 11904: 0x97AA,
+ 32259 - 11904: 0xE6E9,
+ 32263 - 11904: 0x94FB,
+ 32264 - 11904: 0xBFA2,
+ 32265 - 11904: 0xBFA7,
+ 32266 - 11904: 0xBF7E,
+ 32267 - 11904: 0xEAD8,
+ 32268 - 11904: 0xEACF,
+ 32269 - 11904: 0xEADB,
+ 32270 - 11904: 0xEAD3,
+ 32271 - 11904: 0xEAD9,
+ 32272 - 11904: 0xBFA8,
+ 32273 - 11904: 0xBFA1,
+ 32274 - 11904: 0xEACC,
+ 32275 - 11904: 0xEAD2,
+ 32276 - 11904: 0xEADC,
+ 32277 - 11904: 0xEAD5,
+ 32278 - 11904: 0xEADA,
+ 32279 - 11904: 0xEACE,
+ 32282 - 11904: 0xEAD6,
+ 32283 - 11904: 0xBFA3,
+ 32284 - 11904: 0xEAD4,
+ 32285 - 11904: 0xBFA6,
+ 32286 - 11904: 0xBFA5,
+ 32287 - 11904: 0xEAD0,
+ 32288 - 11904: 0xEAD1,
+ 32289 - 11904: 0xEACD,
+ 32290 - 11904: 0xEAD7,
+ 32291 - 11904: 0xBFA4,
+ 32292 - 11904: 0xEADE,
+ 32293 - 11904: 0xEADD,
+ 32295 - 11904: 0x8EBB,
+ 32297 - 11904: 0xEDDA,
+ 32298 - 11904: 0xEDD6,
+ 32299 - 11904: 0xC15F,
+ 32301 - 11904: 0xEDD0,
+ 32302 - 11904: 0xC159,
+ 32303 - 11904: 0xC169,
+ 32304 - 11904: 0xEDDC,
+ 32305 - 11904: 0xC161,
+ 32306 - 11904: 0xC15D,
+ 32307 - 11904: 0xEDD3,
+ 32308 - 11904: 0xC164,
+ 32309 - 11904: 0xC167,
+ 32310 - 11904: 0xEDDE,
+ 32311 - 11904: 0xC15C,
+ 32312 - 11904: 0xEDD5,
+ 32313 - 11904: 0xC165,
+ 32314 - 11904: 0xEDE0,
+ 32315 - 11904: 0xEDDD,
+ 32316 - 11904: 0xEDD1,
+ 32317 - 11904: 0xC160,
+ 32318 - 11904: 0xC15A,
+ 32319 - 11904: 0xC168,
+ 32320 - 11904: 0xEDD8,
+ 32321 - 11904: 0xC163,
+ 32322 - 11904: 0xEDD2,
+ 32323 - 11904: 0xC15E,
+ 32324 - 11904: 0xEDDF,
+ 32325 - 11904: 0xC162,
+ 32326 - 11904: 0xC15B,
+ 32327 - 11904: 0xEDD9,
+ 32328 - 11904: 0xC166,
+ 32329 - 11904: 0xEDD7,
+ 32332 - 11904: 0xEDDB,
+ 32336 - 11904: 0xF06E,
+ 32337 - 11904: 0xF074,
+ 32338 - 11904: 0xC2B9,
+ 32339 - 11904: 0xF077,
+ 32340 - 11904: 0xC2B4,
+ 32341 - 11904: 0xC2B5,
+ 32342 - 11904: 0xF06F,
+ 32343 - 11904: 0xF076,
+ 32344 - 11904: 0xF071,
+ 32345 - 11904: 0xC2BA,
+ 32346 - 11904: 0xC2B7,
+ 32347 - 11904: 0x8CDC,
+ 32348 - 11904: 0xF06D,
+ 32350 - 11904: 0xC2B6,
+ 32351 - 11904: 0xF073,
+ 32352 - 11904: 0xF075,
+ 32353 - 11904: 0xC2B8,
+ 32354 - 11904: 0xF072,
+ 32355 - 11904: 0xF070,
+ 32357 - 11904: 0x9876,
+ 32359 - 11904: 0x8EA1,
+ 32360 - 11904: 0xF2B8,
+ 32361 - 11904: 0xC3B7,
+ 32362 - 11904: 0xC3B8,
+ 32363 - 11904: 0xC3B4,
+ 32364 - 11904: 0x8CB4,
+ 32365 - 11904: 0xC3B5,
+ 32366 - 11904: 0x8EB7,
+ 32367 - 11904: 0xF2B4,
+ 32368 - 11904: 0xF2B2,
+ 32370 - 11904: 0xF2B6,
+ 32371 - 11904: 0xC3BA,
+ 32372 - 11904: 0xF2B7,
+ 32373 - 11904: 0xF2B0,
+ 32374 - 11904: 0xF2AF,
+ 32375 - 11904: 0xF2B3,
+ 32376 - 11904: 0xF2B1,
+ 32377 - 11904: 0xC3B6,
+ 32378 - 11904: 0xF2B5,
+ 32379 - 11904: 0xF4AC,
+ 32380 - 11904: 0xC47E,
+ 32381 - 11904: 0xC47D,
+ 32382 - 11904: 0xF4AD,
+ 32383 - 11904: 0x9DA6,
+ 32384 - 11904: 0xF4AF,
+ 32385 - 11904: 0xF4AE,
+ 32386 - 11904: 0xC4A1,
+ 32390 - 11904: 0xF5EB,
+ 32391 - 11904: 0xF5E8,
+ 32392 - 11904: 0xF5E9,
+ 32394 - 11904: 0xF5E7,
+ 32395 - 11904: 0xF5EA,
+ 32396 - 11904: 0xC4F2,
+ 32397 - 11904: 0xF5EC,
+ 32398 - 11904: 0x9EB0,
+ 32399 - 11904: 0xC4F1,
+ 32401 - 11904: 0xF742,
+ 32402 - 11904: 0x8EB8,
+ 32403 - 11904: 0xC5D5,
+ 32404 - 11904: 0xC5D7,
+ 32405 - 11904: 0xF7EE,
+ 32406 - 11904: 0xC5D6,
+ 32407 - 11904: 0xF8B9,
+ 32408 - 11904: 0xF940,
+ 32409 - 11904: 0xF942,
+ 32410 - 11904: 0xF8FE,
+ 32411 - 11904: 0xF941,
+ 32412 - 11904: 0xC66C,
+ 32415 - 11904: 0x9D70,
+ 32420 - 11904: 0x896E,
+ 32428 - 11904: 0x896F,
+ 32442 - 11904: 0x8970,
+ 32455 - 11904: 0x8971,
+ 32463 - 11904: 0x8972,
+ 32479 - 11904: 0x8973,
+ 32518 - 11904: 0x8974,
+ 32566 - 11904: 0xA6CE,
+ 32567 - 11904: 0x8975,
+ 32568 - 11904: 0xACFB,
+ 32569 - 11904: 0xD26F,
+ 32570 - 11904: 0xAFCA,
+ 32573 - 11904: 0xB2DA,
+ 32574 - 11904: 0xDAFC,
+ 32575 - 11904: 0xDAFD,
+ 32576 - 11904: 0x8EBC,
+ 32577 - 11904: 0x8EBD,
+ 32579 - 11904: 0xEADF,
+ 32580 - 11904: 0xC16A,
+ 32581 - 11904: 0xEDE1,
+ 32583 - 11904: 0x8EBE,
+ 32584 - 11904: 0xC2BB,
+ 32585 - 11904: 0x9DD1,
+ 32586 - 11904: 0xF2BA,
+ 32587 - 11904: 0xF2B9,
+ 32588 - 11904: 0xC4A2,
+ 32589 - 11904: 0xF5ED,
+ 32590 - 11904: 0x94FD,
+ 32591 - 11904: 0xF743,
+ 32592 - 11904: 0xC5F8,
+ 32593 - 11904: 0xCA49,
+ 32594 - 11904: 0x8BD7,
+ 32595 - 11904: 0x8BDA,
+ 32596 - 11904: 0xAAC9,
+ 32597 - 11904: 0xA875,
+ 32600 - 11904: 0xD04D,
+ 32603 - 11904: 0xD360,
+ 32604 - 11904: 0xD35B,
+ 32605 - 11904: 0xD35F,
+ 32606 - 11904: 0xD35D,
+ 32607 - 11904: 0xAFCB,
+ 32608 - 11904: 0xD35E,
+ 32609 - 11904: 0xD35C,
+ 32611 - 11904: 0xD6F1,
+ 32613 - 11904: 0xDAFE,
+ 32614 - 11904: 0xDB40,
+ 32615 - 11904: 0xDF69,
+ 32616 - 11904: 0xDF6A,
+ 32617 - 11904: 0xB86E,
+ 32618 - 11904: 0xB86F,
+ 32619 - 11904: 0xDF68,
+ 32620 - 11904: 0xDF6B,
+ 32621 - 11904: 0xDF67,
+ 32622 - 11904: 0xB86D,
+ 32624 - 11904: 0xBB40,
+ 32625 - 11904: 0xA0E2,
+ 32626 - 11904: 0xB870,
+ 32627 - 11904: 0xE37A,
+ 32629 - 11904: 0xBD7C,
+ 32630 - 11904: 0xE6F1,
+ 32631 - 11904: 0xBD7D,
+ 32632 - 11904: 0x9FE9,
+ 32633 - 11904: 0xBFA9,
+ 32634 - 11904: 0xEAE2,
+ 32635 - 11904: 0xEAE0,
+ 32636 - 11904: 0xEAE1,
+ 32637 - 11904: 0xEDE4,
+ 32638 - 11904: 0xEDE3,
+ 32639 - 11904: 0xEDE2,
+ 32643 - 11904: 0xF2BB,
+ 32645 - 11904: 0xC3B9,
+ 32646 - 11904: 0xF2BC,
+ 32647 - 11904: 0xF744,
+ 32648 - 11904: 0xC5F9,
+ 32649 - 11904: 0xF8BA,
+ 32650 - 11904: 0xA6CF,
+ 32651 - 11904: 0xAACB,
+ 32652 - 11904: 0xAACA,
+ 32653 - 11904: 0xD04F,
+ 32654 - 11904: 0xACFC,
+ 32655 - 11904: 0xFDA8,
+ 32657 - 11904: 0xD04E,
+ 32658 - 11904: 0xD362,
+ 32659 - 11904: 0x8AE7,
+ 32660 - 11904: 0xAFCC,
+ 32661 - 11904: 0xD6F2,
+ 32662 - 11904: 0xD361,
+ 32663 - 11904: 0x8EC2,
+ 32666 - 11904: 0xB2DC,
+ 32667 - 11904: 0xD6F5,
+ 32668 - 11904: 0xD6F3,
+ 32669 - 11904: 0xD6F4,
+ 32670 - 11904: 0xB2DB,
+ 32672 - 11904: 0xDB42,
+ 32673 - 11904: 0xDB43,
+ 32674 - 11904: 0xDB41,
+ 32675 - 11904: 0x8EC4,
+ 32676 - 11904: 0xB873,
+ 32677 - 11904: 0xDF6D,
+ 32678 - 11904: 0xDF6C,
+ 32679 - 11904: 0xDF6E,
+ 32680 - 11904: 0xB872,
+ 32681 - 11904: 0xB871,
+ 32684 - 11904: 0xE6F2,
+ 32685 - 11904: 0xE6F4,
+ 32686 - 11904: 0x9964,
+ 32687 - 11904: 0xBD7E,
+ 32688 - 11904: 0xE6F3,
+ 32689 - 11904: 0xEAE3,
+ 32690 - 11904: 0xBFAA,
+ 32691 - 11904: 0xF079,
+ 32692 - 11904: 0x9965,
+ 32693 - 11904: 0xF078,
+ 32694 - 11904: 0xC3BB,
+ 32695 - 11904: 0xF2BD,
+ 32696 - 11904: 0xC3BD,
+ 32697 - 11904: 0xC3BC,
+ 32698 - 11904: 0xF4B0,
+ 32699 - 11904: 0xF5EE,
+ 32700 - 11904: 0xC4F3,
+ 32701 - 11904: 0xA6D0,
+ 32702 - 11904: 0xD050,
+ 32703 - 11904: 0xACFD,
+ 32704 - 11904: 0xD365,
+ 32705 - 11904: 0xAFCE,
+ 32706 - 11904: 0xD364,
+ 32707 - 11904: 0xD363,
+ 32709 - 11904: 0xAFCD,
+ 32711 - 11904: 0xD6FB,
+ 32713 - 11904: 0xD6FD,
+ 32714 - 11904: 0xD6F6,
+ 32715 - 11904: 0xD6F7,
+ 32716 - 11904: 0xB2DD,
+ 32717 - 11904: 0xD6F8,
+ 32718 - 11904: 0xB2DE,
+ 32719 - 11904: 0xD6FC,
+ 32720 - 11904: 0xD6F9,
+ 32721 - 11904: 0xD6FA,
+ 32722 - 11904: 0xB2DF,
+ 32724 - 11904: 0xB5BE,
+ 32725 - 11904: 0xB5BF,
+ 32727 - 11904: 0xDB44,
+ 32731 - 11904: 0xDF6F,
+ 32732 - 11904: 0xDF70,
+ 32733 - 11904: 0x954E,
+ 32734 - 11904: 0xE37E,
+ 32735 - 11904: 0xBB43,
+ 32736 - 11904: 0xBB41,
+ 32737 - 11904: 0xBB42,
+ 32738 - 11904: 0xE37B,
+ 32739 - 11904: 0xE37C,
+ 32741 - 11904: 0xE37D,
+ 32742 - 11904: 0xE6F9,
+ 32743 - 11904: 0x98B3,
+ 32744 - 11904: 0xE6FA,
+ 32745 - 11904: 0xBDA1,
+ 32746 - 11904: 0xE6F7,
+ 32747 - 11904: 0xE6F6,
+ 32748 - 11904: 0xE6F8,
+ 32749 - 11904: 0xE6F5,
+ 32750 - 11904: 0xBFAD,
+ 32751 - 11904: 0xEAE4,
+ 32752 - 11904: 0xBFAB,
+ 32753 - 11904: 0xBFAC,
+ 32754 - 11904: 0xEDE6,
+ 32755 - 11904: 0xC16B,
+ 32756 - 11904: 0xEDE5,
+ 32757 - 11904: 0xEFA8,
+ 32759 - 11904: 0xF07A,
+ 32760 - 11904: 0xF07B,
+ 32761 - 11904: 0xC2BC,
+ 32762 - 11904: 0x8ECB,
+ 32763 - 11904: 0xC2BD,
+ 32764 - 11904: 0xC16C,
+ 32765 - 11904: 0xF2BE,
+ 32766 - 11904: 0xF2BF,
+ 32767 - 11904: 0xF4B1,
+ 32768 - 11904: 0xC4A3,
+ 32769 - 11904: 0xA6D1,
+ 32770 - 11904: 0x8BDF,
+ 32771 - 11904: 0xA6D2,
+ 32772 - 11904: 0xACFE,
+ 32773 - 11904: 0xAACC,
+ 32774 - 11904: 0xAFCF,
+ 32775 - 11904: 0xD051,
+ 32776 - 11904: 0x8ECE,
+ 32779 - 11904: 0xB5C0,
+ 32780 - 11904: 0xA6D3,
+ 32781 - 11904: 0xAD41,
+ 32782 - 11904: 0xD052,
+ 32783 - 11904: 0xD053,
+ 32784 - 11904: 0xAD40,
+ 32785 - 11904: 0xAD42,
+ 32786 - 11904: 0xA6D4,
+ 32788 - 11904: 0xD054,
+ 32789 - 11904: 0xAFD1,
+ 32790 - 11904: 0xD366,
+ 32791 - 11904: 0xAFD3,
+ 32792 - 11904: 0xAFD0,
+ 32793 - 11904: 0xAFD2,
+ 32795 - 11904: 0xD741,
+ 32796 - 11904: 0xB2E0,
+ 32797 - 11904: 0x8ECF,
+ 32798 - 11904: 0xD740,
+ 32799 - 11904: 0xD6FE,
+ 32800 - 11904: 0x9968,
+ 32801 - 11904: 0xDF71,
+ 32804 - 11904: 0xE3A1,
+ 32805 - 11904: 0x9969,
+ 32806 - 11904: 0xBDA2,
+ 32808 - 11904: 0xBFAE,
+ 32809 - 11904: 0xEAE6,
+ 32810 - 11904: 0xEAE5,
+ 32812 - 11904: 0xEDE7,
+ 32814 - 11904: 0x996B,
+ 32815 - 11904: 0x8ED1,
+ 32816 - 11904: 0xF5EF,
+ 32817 - 11904: 0x996C,
+ 32819 - 11904: 0xA6D5,
+ 32820 - 11904: 0xCB73,
+ 32821 - 11904: 0xCDAA,
+ 32822 - 11904: 0xAD43,
+ 32823 - 11904: 0xD055,
+ 32825 - 11904: 0xD368,
+ 32827 - 11904: 0x8ED4,
+ 32828 - 11904: 0x8ED5,
+ 32829 - 11904: 0xAFD4,
+ 32830 - 11904: 0xD367,
+ 32831 - 11904: 0xAFD5,
+ 32835 - 11904: 0xD743,
+ 32838 - 11904: 0xB2E2,
+ 32839 - 11904: 0xD742,
+ 32840 - 11904: 0xD744,
+ 32842 - 11904: 0xB2E1,
+ 32847 - 11904: 0xDB46,
+ 32848 - 11904: 0xDB47,
+ 32849 - 11904: 0xDB45,
+ 32850 - 11904: 0xB5C1,
+ 32852 - 11904: 0x996D,
+ 32854 - 11904: 0xB874,
+ 32856 - 11904: 0xB875,
+ 32858 - 11904: 0xBB45,
+ 32859 - 11904: 0xA0BE,
+ 32860 - 11904: 0xE3A3,
+ 32861 - 11904: 0xE3A2,
+ 32862 - 11904: 0xBB44,
+ 32865 - 11904: 0x8ED6,
+ 32866 - 11904: 0xA0BC,
+ 32867 - 11904: 0xA0B5,
+ 32868 - 11904: 0xE6FB,
+ 32870 - 11904: 0xA0B4,
+ 32871 - 11904: 0xE6FC,
+ 32876 - 11904: 0xEAE7,
+ 32879 - 11904: 0xC170,
+ 32880 - 11904: 0xC16F,
+ 32881 - 11904: 0xC16D,
+ 32882 - 11904: 0xC16E,
+ 32883 - 11904: 0xC171,
+ 32885 - 11904: 0xF07C,
+ 32886 - 11904: 0xC2BF,
+ 32887 - 11904: 0xC2BE,
+ 32888 - 11904: 0xF2C0,
+ 32889 - 11904: 0xF4B2,
+ 32893 - 11904: 0xC5A5,
+ 32894 - 11904: 0xC5A4,
+ 32895 - 11904: 0xA6D6,
+ 32896 - 11904: 0x8BE0,
+ 32898 - 11904: 0xD1FB,
+ 32900 - 11904: 0xB877,
+ 32901 - 11904: 0xB5C2,
+ 32902 - 11904: 0xB876,
+ 32903 - 11904: 0xBB46,
+ 32905 - 11904: 0xA6D7,
+ 32906 - 11904: 0xC9A9,
+ 32907 - 11904: 0xA6D8,
+ 32908 - 11904: 0xA6D9,
+ 32911 - 11904: 0xCDAB,
+ 32912 - 11904: 0xCB76,
+ 32914 - 11904: 0xCB77,
+ 32915 - 11904: 0xA877,
+ 32917 - 11904: 0xCB74,
+ 32918 - 11904: 0xA876,
+ 32920 - 11904: 0xA879,
+ 32921 - 11904: 0xCB75,
+ 32922 - 11904: 0xA87B,
+ 32923 - 11904: 0xA87A,
+ 32924 - 11904: 0xCB78,
+ 32925 - 11904: 0xA878,
+ 32927 - 11904: 0x89B5,
+ 32929 - 11904: 0xAAD1,
+ 32930 - 11904: 0xAACF,
+ 32931 - 11904: 0xCDAD,
+ 32933 - 11904: 0xAACE,
+ 32935 - 11904: 0x8EDD,
+ 32937 - 11904: 0xAAD3,
+ 32938 - 11904: 0xAAD5,
+ 32939 - 11904: 0xAAD2,
+ 32941 - 11904: 0xCDB0,
+ 32942 - 11904: 0xCDAC,
+ 32943 - 11904: 0xAAD6,
+ 32945 - 11904: 0xAAD0,
+ 32946 - 11904: 0xA87C,
+ 32948 - 11904: 0xAAD4,
+ 32949 - 11904: 0xCDAF,
+ 32950 - 11904: 0x9E5D,
+ 32951 - 11904: 0x9971,
+ 32952 - 11904: 0xCDAE,
+ 32954 - 11904: 0xAACD,
+ 32956 - 11904: 0x89AE,
+ 32957 - 11904: 0x9DE8,
+ 32962 - 11904: 0xD05B,
+ 32963 - 11904: 0xAD47,
+ 32964 - 11904: 0xAD48,
+ 32965 - 11904: 0xD05D,
+ 32966 - 11904: 0x9565,
+ 32967 - 11904: 0xD057,
+ 32968 - 11904: 0xD05A,
+ 32969 - 11904: 0xD063,
+ 32970 - 11904: 0xD061,
+ 32972 - 11904: 0xAD49,
+ 32973 - 11904: 0xD067,
+ 32974 - 11904: 0xAD4C,
+ 32975 - 11904: 0xD064,
+ 32976 - 11904: 0xD05C,
+ 32977 - 11904: 0xD059,
+ 32980 - 11904: 0xDB49,
+ 32981 - 11904: 0xD062,
+ 32982 - 11904: 0xAD44,
+ 32983 - 11904: 0xD065,
+ 32984 - 11904: 0xD056,
+ 32985 - 11904: 0xD05F,
+ 32986 - 11904: 0xAD46,
+ 32987 - 11904: 0xAD4B,
+ 32988 - 11904: 0xD060,
+ 32989 - 11904: 0xAD4F,
+ 32990 - 11904: 0xAD4D,
+ 32992 - 11904: 0xD058,
+ 32993 - 11904: 0xAD4A,
+ 32995 - 11904: 0xD05E,
+ 32996 - 11904: 0xAD4E,
+ 32997 - 11904: 0xAD45,
+ 32998 - 11904: 0xD066,
+ 33001 - 11904: 0x9972,
+ 33004 - 11904: 0x8B5C,
+ 33005 - 11904: 0xAFDA,
+ 33007 - 11904: 0xAFE3,
+ 33008 - 11904: 0xAFD8,
+ 33009 - 11904: 0xAFD6,
+ 33010 - 11904: 0xD36A,
+ 33011 - 11904: 0xAFDE,
+ 33012 - 11904: 0xAFDB,
+ 33013 - 11904: 0xD36C,
+ 33014 - 11904: 0x89B1,
+ 33016 - 11904: 0xAFDD,
+ 33017 - 11904: 0xD36B,
+ 33018 - 11904: 0xD369,
+ 33019 - 11904: 0xD36E,
+ 33020 - 11904: 0xAFE2,
+ 33021 - 11904: 0xAFE0,
+ 33022 - 11904: 0xDB48,
+ 33024 - 11904: 0xD36F,
+ 33025 - 11904: 0xD36D,
+ 33026 - 11904: 0xAFD7,
+ 33027 - 11904: 0xA0C0,
+ 33029 - 11904: 0xAFD9,
+ 33030 - 11904: 0xAFDC,
+ 33031 - 11904: 0x8EDF,
+ 33032 - 11904: 0xAFDF,
+ 33033 - 11904: 0x9566,
+ 33034 - 11904: 0xAFE1,
+ 33036 - 11904: 0x9974,
+ 33038 - 11904: 0x9976,
+ 33042 - 11904: 0x9977,
+ 33044 - 11904: 0x9979,
+ 33045 - 11904: 0xD74E,
+ 33046 - 11904: 0xB2E4,
+ 33047 - 11904: 0x9DDA,
+ 33048 - 11904: 0xD745,
+ 33049 - 11904: 0xD747,
+ 33050 - 11904: 0x8EE0,
+ 33051 - 11904: 0xD748,
+ 33053 - 11904: 0xD750,
+ 33054 - 11904: 0xD74C,
+ 33055 - 11904: 0xD74A,
+ 33057 - 11904: 0xD74D,
+ 33058 - 11904: 0xD751,
+ 33059 - 11904: 0xB2E5,
+ 33060 - 11904: 0xB2E9,
+ 33061 - 11904: 0xD746,
+ 33063 - 11904: 0xD74F,
+ 33065 - 11904: 0xB2E7,
+ 33066 - 11904: 0x935C,
+ 33067 - 11904: 0xB2E6,
+ 33068 - 11904: 0xD74B,
+ 33069 - 11904: 0xD749,
+ 33071 - 11904: 0xB2E3,
+ 33072 - 11904: 0xB2E8,
+ 33074 - 11904: 0x9DE6,
+ 33076 - 11904: 0x8B5F,
+ 33079 - 11904: 0x9563,
+ 33081 - 11904: 0xB5C8,
+ 33082 - 11904: 0xDB51,
+ 33085 - 11904: 0xDB4F,
+ 33086 - 11904: 0xB5CA,
+ 33090 - 11904: 0x9567,
+ 33091 - 11904: 0xDB4A,
+ 33092 - 11904: 0xDFA1,
+ 33094 - 11904: 0xB5C9,
+ 33095 - 11904: 0xDB4E,
+ 33096 - 11904: 0x9DE3,
+ 33098 - 11904: 0xDB4B,
+ 33099 - 11904: 0xB5C5,
+ 33100 - 11904: 0xB5CB,
+ 33101 - 11904: 0xDB50,
+ 33102 - 11904: 0xB5C7,
+ 33103 - 11904: 0xDB4D,
+ 33104 - 11904: 0xBB47,
+ 33105 - 11904: 0xB5C6,
+ 33106 - 11904: 0xDB4C,
+ 33107 - 11904: 0xB5CC,
+ 33108 - 11904: 0xB5C4,
+ 33109 - 11904: 0xB5C3,
+ 33110 - 11904: 0x997C,
+ 33113 - 11904: 0x997D,
+ 33114 - 11904: 0x997E,
+ 33115 - 11904: 0xDF77,
+ 33116 - 11904: 0xDF75,
+ 33118 - 11904: 0xDF7B,
+ 33120 - 11904: 0xDF73,
+ 33121 - 11904: 0xDFA2,
+ 33122 - 11904: 0xDF78,
+ 33124 - 11904: 0xDF72,
+ 33125 - 11904: 0xB87B,
+ 33126 - 11904: 0xB8A3,
+ 33127 - 11904: 0xDF7D,
+ 33129 - 11904: 0xDF76,
+ 33131 - 11904: 0xB87E,
+ 33132 - 11904: 0x8CFB,
+ 33133 - 11904: 0x8B5B,
+ 33134 - 11904: 0xB87C,
+ 33135 - 11904: 0xDF7E,
+ 33136 - 11904: 0xB879,
+ 33137 - 11904: 0xB878,
+ 33138 - 11904: 0xDF79,
+ 33139 - 11904: 0xB87D,
+ 33140 - 11904: 0xB5CD,
+ 33142 - 11904: 0xDF7C,
+ 33143 - 11904: 0xDF74,
+ 33144 - 11904: 0xB87A,
+ 33145 - 11904: 0xB8A1,
+ 33146 - 11904: 0xB8A2,
+ 33148 - 11904: 0x99A3,
+ 33151 - 11904: 0xBB4C,
+ 33152 - 11904: 0xBB48,
+ 33154 - 11904: 0xBB4D,
+ 33155 - 11904: 0xE3A6,
+ 33156 - 11904: 0x99A4,
+ 33158 - 11904: 0xE3A5,
+ 33159 - 11904: 0xE3A7,
+ 33160 - 11904: 0xBB4A,
+ 33161 - 11904: 0xE3A4,
+ 33162 - 11904: 0xBB4B,
+ 33163 - 11904: 0xE3AA,
+ 33164 - 11904: 0xE3A9,
+ 33165 - 11904: 0xE3A8,
+ 33167 - 11904: 0xBB49,
+ 33171 - 11904: 0x99A6,
+ 33173 - 11904: 0xE741,
+ 33175 - 11904: 0xE744,
+ 33176 - 11904: 0xBDA8,
+ 33177 - 11904: 0xE743,
+ 33178 - 11904: 0xBDA7,
+ 33179 - 11904: 0xBDA3,
+ 33180 - 11904: 0xBDA4,
+ 33181 - 11904: 0xBDA5,
+ 33182 - 11904: 0xE740,
+ 33183 - 11904: 0xE6FE,
+ 33184 - 11904: 0xBDA6,
+ 33186 - 11904: 0xE742,
+ 33187 - 11904: 0xE6FD,
+ 33189 - 11904: 0x99A8,
+ 33190 - 11904: 0xEAE9,
+ 33191 - 11904: 0xEAF3,
+ 33192 - 11904: 0xBFB1,
+ 33193 - 11904: 0xBFB0,
+ 33194 - 11904: 0x8ABE,
+ 33195 - 11904: 0xEAED,
+ 33196 - 11904: 0xEAEF,
+ 33198 - 11904: 0xEAEA,
+ 33200 - 11904: 0xEAEE,
+ 33201 - 11904: 0xEAE8,
+ 33202 - 11904: 0xEAF1,
+ 33203 - 11904: 0xBFAF,
+ 33204 - 11904: 0xEAF0,
+ 33205 - 11904: 0xEAEC,
+ 33206 - 11904: 0x9E61,
+ 33207 - 11904: 0xEAF2,
+ 33209 - 11904: 0xEAEB,
+ 33210 - 11904: 0xC174,
+ 33211 - 11904: 0xEDE8,
+ 33212 - 11904: 0xEDEE,
+ 33213 - 11904: 0xC178,
+ 33214 - 11904: 0xC17A,
+ 33215 - 11904: 0xC177,
+ 33216 - 11904: 0xC176,
+ 33217 - 11904: 0x99AA,
+ 33218 - 11904: 0xC175,
+ 33219 - 11904: 0xC173,
+ 33220 - 11904: 0xEDE9,
+ 33221 - 11904: 0xEDEC,
+ 33222 - 11904: 0xC172,
+ 33223 - 11904: 0xEDED,
+ 33224 - 11904: 0xA0C8,
+ 33225 - 11904: 0xC179,
+ 33226 - 11904: 0xEDEB,
+ 33228 - 11904: 0xEDEA,
+ 33229 - 11904: 0xC2C0,
+ 33231 - 11904: 0xC2C1,
+ 33232 - 11904: 0xF0A1,
+ 33233 - 11904: 0xF07D,
+ 33234 - 11904: 0xF07E,
+ 33237 - 11904: 0xF2C2,
+ 33239 - 11904: 0xF2C1,
+ 33240 - 11904: 0xC3BE,
+ 33241 - 11904: 0xF4B4,
+ 33242 - 11904: 0xC4A4,
+ 33243 - 11904: 0xF4B3,
+ 33245 - 11904: 0xF5F0,
+ 33246 - 11904: 0xF745,
+ 33247 - 11904: 0xC5A6,
+ 33248 - 11904: 0xF943,
+ 33249 - 11904: 0xF944,
+ 33250 - 11904: 0xC5D8,
+ 33251 - 11904: 0xA6DA,
+ 33252 - 11904: 0x99AB,
+ 33253 - 11904: 0xAAD7,
+ 33254 - 11904: 0xDB52,
+ 33255 - 11904: 0xBB4E,
+ 33256 - 11904: 0xC17B,
+ 33257 - 11904: 0xEDEF,
+ 33258 - 11904: 0xA6DB,
+ 33260 - 11904: 0xAFE5,
+ 33261 - 11904: 0xAFE4,
+ 33262 - 11904: 0xDB53,
+ 33263 - 11904: 0xFEC4,
+ 33266 - 11904: 0xEAF4,
+ 33267 - 11904: 0xA6DC,
+ 33268 - 11904: 0xAD50,
+ 33270 - 11904: 0x98C2,
+ 33271 - 11904: 0xDB54,
+ 33272 - 11904: 0xDB55,
+ 33273 - 11904: 0xDB56,
+ 33274 - 11904: 0xBB4F,
+ 33275 - 11904: 0xBFB2,
+ 33276 - 11904: 0xA6DD,
+ 33278 - 11904: 0xAAD8,
+ 33279 - 11904: 0xD068,
+ 33280 - 11904: 0xAFE6,
+ 33281 - 11904: 0xD370,
+ 33282 - 11904: 0xB2EA,
+ 33284 - 11904: 0xDB57,
+ 33285 - 11904: 0xB8A4,
+ 33287 - 11904: 0xBB50,
+ 33288 - 11904: 0xBFB3,
+ 33289 - 11904: 0xC17C,
+ 33290 - 11904: 0xC2C2,
+ 33291 - 11904: 0xF4B5,
+ 33292 - 11904: 0xA6DE,
+ 33293 - 11904: 0xAAD9,
+ 33296 - 11904: 0xAFE7,
+ 33297 - 11904: 0xD752,
+ 33298 - 11904: 0xB5CE,
+ 33300 - 11904: 0xBB51,
+ 33301 - 11904: 0xE3AB,
+ 33302 - 11904: 0xE745,
+ 33304 - 11904: 0x8EE8,
+ 33306 - 11904: 0xA0BA,
+ 33307 - 11904: 0xA6DF,
+ 33308 - 11904: 0xB5CF,
+ 33309 - 11904: 0xDFA3,
+ 33310 - 11904: 0xBB52,
+ 33311 - 11904: 0xA6E0,
+ 33312 - 11904: 0xCDB1,
+ 33313 - 11904: 0xD069,
+ 33314 - 11904: 0xAD51,
+ 33317 - 11904: 0xD372,
+ 33318 - 11904: 0xFD77,
+ 33320 - 11904: 0xAFEA,
+ 33321 - 11904: 0x8EEE,
+ 33322 - 11904: 0xAFE8,
+ 33323 - 11904: 0xAFE9,
+ 33324 - 11904: 0xAFEB,
+ 33325 - 11904: 0x9EBF,
+ 33327 - 11904: 0xD371,
+ 33330 - 11904: 0xD757,
+ 33331 - 11904: 0xD754,
+ 33332 - 11904: 0xD756,
+ 33333 - 11904: 0xB2EB,
+ 33334 - 11904: 0xB2ED,
+ 33335 - 11904: 0xB2EC,
+ 33336 - 11904: 0xD753,
+ 33337 - 11904: 0xB2EE,
+ 33338 - 11904: 0xD755,
+ 33340 - 11904: 0xDB58,
+ 33341 - 11904: 0xDB59,
+ 33342 - 11904: 0x89C2,
+ 33343 - 11904: 0xDB5A,
+ 33344 - 11904: 0xDFA6,
+ 33346 - 11904: 0xDFA7,
+ 33348 - 11904: 0xDFA5,
+ 33349 - 11904: 0xDFA8,
+ 33351 - 11904: 0xB8A5,
+ 33353 - 11904: 0xDFA4,
+ 33355 - 11904: 0xBB53,
+ 33358 - 11904: 0xE74A,
+ 33359 - 11904: 0xE746,
+ 33360 - 11904: 0xE749,
+ 33361 - 11904: 0xE74B,
+ 33362 - 11904: 0xE748,
+ 33363 - 11904: 0xE747,
+ 33364 - 11904: 0x99AC,
+ 33365 - 11904: 0xEAF5,
+ 33366 - 11904: 0xEAF6,
+ 33367 - 11904: 0xEAF7,
+ 33368 - 11904: 0xBFB4,
+ 33369 - 11904: 0xBFB5,
+ 33370 - 11904: 0xEDF1,
+ 33371 - 11904: 0xEDF0,
+ 33372 - 11904: 0xEDF2,
+ 33374 - 11904: 0xF0A3,
+ 33375 - 11904: 0xF0A2,
+ 33377 - 11904: 0xF2C4,
+ 33378 - 11904: 0x956B,
+ 33379 - 11904: 0xF2C5,
+ 33380 - 11904: 0xF2C3,
+ 33381 - 11904: 0x956C,
+ 33382 - 11904: 0xC4A5,
+ 33384 - 11904: 0xF4B6,
+ 33385 - 11904: 0xF4B7,
+ 33387 - 11904: 0xF746,
+ 33388 - 11904: 0xF7EF,
+ 33389 - 11904: 0xF8BB,
+ 33390 - 11904: 0xA6E1,
+ 33391 - 11904: 0xA87D,
+ 33393 - 11904: 0xC17D,
+ 33394 - 11904: 0xA6E2,
+ 33396 - 11904: 0xD758,
+ 33397 - 11904: 0xDB5B,
+ 33398 - 11904: 0x99AF,
+ 33399 - 11904: 0xC641,
+ 33400 - 11904: 0xCA4A,
+ 33401 - 11904: 0x994A,
+ 33402 - 11904: 0x8976,
+ 33403 - 11904: 0x8F48,
+ 33404 - 11904: 0xCA4B,
+ 33405 - 11904: 0xCA4D,
+ 33406 - 11904: 0xA6E3,
+ 33407 - 11904: 0xCA4E,
+ 33408 - 11904: 0xCA4C,
+ 33411 - 11904: 0xCBA2,
+ 33412 - 11904: 0xCBA3,
+ 33413 - 11904: 0xCB7B,
+ 33415 - 11904: 0xFBEE,
+ 33418 - 11904: 0xCBA1,
+ 33419 - 11904: 0xA8A1,
+ 33421 - 11904: 0xA8A2,
+ 33422 - 11904: 0xCB7C,
+ 33423 - 11904: 0xCB7A,
+ 33424 - 11904: 0xCB79,
+ 33425 - 11904: 0xCB7D,
+ 33426 - 11904: 0xA87E,
+ 33427 - 11904: 0xCB7E,
+ 33428 - 11904: 0xD06A,
+ 33432 - 11904: 0xCDB6,
+ 33433 - 11904: 0xAADC,
+ 33434 - 11904: 0xCDB5,
+ 33435 - 11904: 0xCDB7,
+ 33437 - 11904: 0xAADB,
+ 33438 - 11904: 0xCDBC,
+ 33439 - 11904: 0xAADF,
+ 33440 - 11904: 0xCDB2,
+ 33441 - 11904: 0xCDC0,
+ 33442 - 11904: 0xCDC6,
+ 33443 - 11904: 0xAAE6,
+ 33444 - 11904: 0xCDC3,
+ 33445 - 11904: 0xAAE3,
+ 33446 - 11904: 0x99AE,
+ 33447 - 11904: 0xCDB9,
+ 33448 - 11904: 0xCDBF,
+ 33449 - 11904: 0xCDC1,
+ 33450 - 11904: 0x8EFB,
+ 33451 - 11904: 0xCDB4,
+ 33452 - 11904: 0xAAE2,
+ 33453 - 11904: 0xAADD,
+ 33454 - 11904: 0xCDBA,
+ 33455 - 11904: 0xAAE4,
+ 33456 - 11904: 0xAAE7,
+ 33457 - 11904: 0xAAE1,
+ 33459 - 11904: 0xAADA,
+ 33460 - 11904: 0xCDBE,
+ 33461 - 11904: 0xCDB8,
+ 33462 - 11904: 0xCDC5,
+ 33463 - 11904: 0xAAE9,
+ 33464 - 11904: 0xAAE5,
+ 33465 - 11904: 0xAAE0,
+ 33466 - 11904: 0xCDBD,
+ 33467 - 11904: 0xAFEC,
+ 33468 - 11904: 0xCDBB,
+ 33469 - 11904: 0xAADE,
+ 33470 - 11904: 0xAAE8,
+ 33471 - 11904: 0x8CD0,
+ 33472 - 11904: 0xCDB3,
+ 33474 - 11904: 0xCDC2,
+ 33475 - 11904: 0xCDC4,
+ 33476 - 11904: 0x8B52,
+ 33482 - 11904: 0x99B0,
+ 33487 - 11904: 0x8977,
+ 33488 - 11904: 0x8F41,
+ 33489 - 11904: 0xAD62,
+ 33490 - 11904: 0xAD5C,
+ 33491 - 11904: 0xAD64,
+ 33492 - 11904: 0xAD61,
+ 33493 - 11904: 0xD071,
+ 33494 - 11904: 0xD074,
+ 33495 - 11904: 0xAD5D,
+ 33496 - 11904: 0x99B1,
+ 33497 - 11904: 0xD06B,
+ 33499 - 11904: 0xAD56,
+ 33500 - 11904: 0xAD60,
+ 33502 - 11904: 0xAD63,
+ 33503 - 11904: 0xAD65,
+ 33504 - 11904: 0xD0A2,
+ 33505 - 11904: 0xD077,
+ 33506 - 11904: 0x8F49,
+ 33507 - 11904: 0xAD55,
+ 33508 - 11904: 0xD0A1,
+ 33509 - 11904: 0xAD59,
+ 33510 - 11904: 0xAD57,
+ 33511 - 11904: 0xAD52,
+ 33512 - 11904: 0xD06F,
+ 33514 - 11904: 0xD07E,
+ 33515 - 11904: 0xD073,
+ 33516 - 11904: 0xD076,
+ 33517 - 11904: 0xD0A5,
+ 33518 - 11904: 0xFA4D,
+ 33519 - 11904: 0xAD66,
+ 33520 - 11904: 0xD07D,
+ 33521 - 11904: 0xAD5E,
+ 33522 - 11904: 0xD078,
+ 33523 - 11904: 0xD0A4,
+ 33524 - 11904: 0xD075,
+ 33525 - 11904: 0xD079,
+ 33526 - 11904: 0xD07C,
+ 33527 - 11904: 0x9DE4,
+ 33528 - 11904: 0x8CB5,
+ 33529 - 11904: 0xD06D,
+ 33530 - 11904: 0xD0A3,
+ 33531 - 11904: 0xD07B,
+ 33532 - 11904: 0xFBE9,
+ 33533 - 11904: 0x9B54,
+ 33534 - 11904: 0xD06C,
+ 33535 - 11904: 0x99B2,
+ 33536 - 11904: 0xD070,
+ 33537 - 11904: 0xAD5F,
+ 33538 - 11904: 0xAD5A,
+ 33539 - 11904: 0xAD53,
+ 33540 - 11904: 0xAD58,
+ 33541 - 11904: 0xAD54,
+ 33542 - 11904: 0xAD67,
+ 33543 - 11904: 0xD06E,
+ 33544 - 11904: 0xD3A5,
+ 33545 - 11904: 0xAD5B,
+ 33547 - 11904: 0x9E68,
+ 33548 - 11904: 0xD07A,
+ 33549 - 11904: 0xCE41,
+ 33558 - 11904: 0xD3A8,
+ 33559 - 11904: 0xAFFA,
+ 33560 - 11904: 0x8F4A,
+ 33561 - 11904: 0xD376,
+ 33562 - 11904: 0x8F42,
+ 33563 - 11904: 0xD3A3,
+ 33564 - 11904: 0xD37D,
+ 33565 - 11904: 0x8F51,
+ 33566 - 11904: 0xD3B2,
+ 33568 - 11904: 0xD3AA,
+ 33570 - 11904: 0xD37E,
+ 33572 - 11904: 0xD3A9,
+ 33573 - 11904: 0xD378,
+ 33574 - 11904: 0xD37C,
+ 33575 - 11904: 0xD3B5,
+ 33576 - 11904: 0xAFFD,
+ 33577 - 11904: 0xD3AD,
+ 33578 - 11904: 0xD3A4,
+ 33579 - 11904: 0xAFED,
+ 33580 - 11904: 0xD3B3,
+ 33581 - 11904: 0xD374,
+ 33583 - 11904: 0xD3AC,
+ 33585 - 11904: 0xAFFC,
+ 33586 - 11904: 0xAFF7,
+ 33587 - 11904: 0xD373,
+ 33588 - 11904: 0xAFF5,
+ 33589 - 11904: 0xAFF4,
+ 33590 - 11904: 0xAFF9,
+ 33591 - 11904: 0xD3AB,
+ 33592 - 11904: 0xAFF1,
+ 33593 - 11904: 0xAFF8,
+ 33594 - 11904: 0xD072,
+ 33595 - 11904: 0xDB5C,
+ 33596 - 11904: 0xD3A6,
+ 33597 - 11904: 0x9846,
+ 33599 - 11904: 0xD37A,
+ 33600 - 11904: 0xAFFB,
+ 33601 - 11904: 0xD37B,
+ 33602 - 11904: 0xD3A1,
+ 33603 - 11904: 0xAFFE,
+ 33604 - 11904: 0xD375,
+ 33605 - 11904: 0xD3AF,
+ 33607 - 11904: 0xD3AE,
+ 33608 - 11904: 0xD3B6,
+ 33609 - 11904: 0xAFF3,
+ 33610 - 11904: 0xAFF0,
+ 33611 - 11904: 0xD3B4,
+ 33612 - 11904: 0xD3B0,
+ 33613 - 11904: 0xD3A7,
+ 33614 - 11904: 0xD3A2,
+ 33615 - 11904: 0xAFF6,
+ 33616 - 11904: 0xAFF2,
+ 33617 - 11904: 0xD377,
+ 33618 - 11904: 0xAFEE,
+ 33619 - 11904: 0xD3B1,
+ 33620 - 11904: 0xAFEF,
+ 33622 - 11904: 0xD379,
+ 33623 - 11904: 0x99B4,
+ 33634 - 11904: 0x8EF5,
+ 33635 - 11904: 0xFD55,
+ 33638 - 11904: 0x9CCD,
+ 33647 - 11904: 0x8978,
+ 33651 - 11904: 0xD75E,
+ 33652 - 11904: 0xD760,
+ 33653 - 11904: 0xD765,
+ 33654 - 11904: 0xD779,
+ 33655 - 11904: 0xB2FC,
+ 33656 - 11904: 0xB2F2,
+ 33658 - 11904: 0xD75D,
+ 33659 - 11904: 0xB2FD,
+ 33660 - 11904: 0xB2FE,
+ 33661 - 11904: 0xD768,
+ 33662 - 11904: 0xD76F,
+ 33663 - 11904: 0xD775,
+ 33665 - 11904: 0xD762,
+ 33667 - 11904: 0xD769,
+ 33669 - 11904: 0x8F53,
+ 33670 - 11904: 0xB340,
+ 33671 - 11904: 0xD777,
+ 33672 - 11904: 0xD772,
+ 33673 - 11904: 0xB2FA,
+ 33674 - 11904: 0xB2F8,
+ 33675 - 11904: 0xD76E,
+ 33676 - 11904: 0xD76A,
+ 33677 - 11904: 0xD75C,
+ 33678 - 11904: 0xB2EF,
+ 33679 - 11904: 0xD761,
+ 33680 - 11904: 0xD759,
+ 33681 - 11904: 0x8F6F,
+ 33682 - 11904: 0xB2F7,
+ 33683 - 11904: 0xB2F9,
+ 33684 - 11904: 0xD766,
+ 33685 - 11904: 0xD763,
+ 33686 - 11904: 0xB2F4,
+ 33687 - 11904: 0xD773,
+ 33688 - 11904: 0xB2F1,
+ 33689 - 11904: 0xD764,
+ 33690 - 11904: 0xD77A,
+ 33691 - 11904: 0xD76C,
+ 33692 - 11904: 0x8E63,
+ 33693 - 11904: 0xD76B,
+ 33694 - 11904: 0xB2F0,
+ 33696 - 11904: 0xB2FB,
+ 33698 - 11904: 0xB2F3,
+ 33699 - 11904: 0xD75A,
+ 33700 - 11904: 0xD75F,
+ 33701 - 11904: 0xD770,
+ 33702 - 11904: 0xD776,
+ 33703 - 11904: 0xB341,
+ 33704 - 11904: 0xD75B,
+ 33705 - 11904: 0xD767,
+ 33706 - 11904: 0xD76D,
+ 33707 - 11904: 0xB2F6,
+ 33708 - 11904: 0x8F56,
+ 33710 - 11904: 0xD778,
+ 33711 - 11904: 0xD771,
+ 33712 - 11904: 0xD774,
+ 33721 - 11904: 0xFE76,
+ 33725 - 11904: 0xB2F5,
+ 33726 - 11904: 0x9FC6,
+ 33727 - 11904: 0xDB6C,
+ 33728 - 11904: 0xDB60,
+ 33729 - 11904: 0xB5D7,
+ 33730 - 11904: 0xDB7D,
+ 33731 - 11904: 0xDBA7,
+ 33732 - 11904: 0xDBAA,
+ 33733 - 11904: 0xB5D5,
+ 33734 - 11904: 0xDB68,
+ 33735 - 11904: 0xDBA3,
+ 33736 - 11904: 0xDB69,
+ 33737 - 11904: 0xDB77,
+ 33738 - 11904: 0xB5E2,
+ 33739 - 11904: 0xDB73,
+ 33740 - 11904: 0xB5DF,
+ 33741 - 11904: 0xFAAC,
+ 33742 - 11904: 0xDB74,
+ 33743 - 11904: 0xDB5D,
+ 33745 - 11904: 0xDBA4,
+ 33747 - 11904: 0x8F58,
+ 33748 - 11904: 0xB5E8,
+ 33749 - 11904: 0xDBA1,
+ 33750 - 11904: 0xDB75,
+ 33751 - 11904: 0xDBAC,
+ 33752 - 11904: 0xDB70,
+ 33753 - 11904: 0xDFC8,
+ 33755 - 11904: 0xDBAF,
+ 33756 - 11904: 0xB5E6,
+ 33757 - 11904: 0xDB6E,
+ 33758 - 11904: 0xDB7A,
+ 33759 - 11904: 0xB5E9,
+ 33760 - 11904: 0xB5D4,
+ 33761 - 11904: 0xDB72,
+ 33762 - 11904: 0xDBAD,
+ 33763 - 11904: 0xDB6B,
+ 33764 - 11904: 0xDB64,
+ 33765 - 11904: 0xDB6F,
+ 33767 - 11904: 0xDB63,
+ 33768 - 11904: 0xDB61,
+ 33769 - 11904: 0xB5D0,
+ 33770 - 11904: 0xDBA5,
+ 33771 - 11904: 0xDB6A,
+ 33772 - 11904: 0xDBA8,
+ 33773 - 11904: 0x9848,
+ 33774 - 11904: 0xDBA9,
+ 33775 - 11904: 0xB5D8,
+ 33776 - 11904: 0xB5DD,
+ 33777 - 11904: 0xB5D9,
+ 33778 - 11904: 0xB5E1,
+ 33779 - 11904: 0xDB7E,
+ 33780 - 11904: 0xB5DA,
+ 33781 - 11904: 0xDB76,
+ 33782 - 11904: 0xDB66,
+ 33784 - 11904: 0xB5D2,
+ 33785 - 11904: 0xDB5E,
+ 33786 - 11904: 0xDBA2,
+ 33787 - 11904: 0xDBAB,
+ 33788 - 11904: 0xDB65,
+ 33789 - 11904: 0xB5E0,
+ 33790 - 11904: 0xDBB0,
+ 33791 - 11904: 0xDB71,
+ 33793 - 11904: 0xDB6D,
+ 33795 - 11904: 0xB5D1,
+ 33796 - 11904: 0xB5E5,
+ 33797 - 11904: 0x99B7,
+ 33798 - 11904: 0xDB7C,
+ 33799 - 11904: 0xB5E7,
+ 33801 - 11904: 0xDB78,
+ 33802 - 11904: 0xB5DC,
+ 33803 - 11904: 0xB5D6,
+ 33804 - 11904: 0xB5DE,
+ 33805 - 11904: 0xB5D3,
+ 33806 - 11904: 0xB5E4,
+ 33807 - 11904: 0xDB79,
+ 33808 - 11904: 0xDB67,
+ 33809 - 11904: 0xDB7B,
+ 33810 - 11904: 0xDB62,
+ 33811 - 11904: 0xDBA6,
+ 33812 - 11904: 0x9665,
+ 33814 - 11904: 0xFA6C,
+ 33816 - 11904: 0x9DE7,
+ 33819 - 11904: 0xDBAE,
+ 33820 - 11904: 0x9E62,
+ 33824 - 11904: 0x96CC,
+ 33825 - 11904: 0x8E67,
+ 33827 - 11904: 0xDB5F,
+ 33828 - 11904: 0xFC75,
+ 33830 - 11904: 0x987E,
+ 33833 - 11904: 0xDFC7,
+ 33835 - 11904: 0xDFDD,
+ 33836 - 11904: 0xB855,
+ 33837 - 11904: 0xDFCC,
+ 33838 - 11904: 0xFDB9,
+ 33839 - 11904: 0xDFCA,
+ 33840 - 11904: 0xDFB5,
+ 33841 - 11904: 0xB8A9,
+ 33842 - 11904: 0xDFC5,
+ 33843 - 11904: 0xDFD9,
+ 33844 - 11904: 0xDFC1,
+ 33845 - 11904: 0xB8B1,
+ 33846 - 11904: 0xDFD8,
+ 33847 - 11904: 0xDFBF,
+ 33848 - 11904: 0xB5E3,
+ 33849 - 11904: 0xDFCF,
+ 33850 - 11904: 0xDFC0,
+ 33851 - 11904: 0xDFD6,
+ 33852 - 11904: 0xB8B0,
+ 33853 - 11904: 0xB8A8,
+ 33854 - 11904: 0x97FC,
+ 33855 - 11904: 0xDFAA,
+ 33856 - 11904: 0xDFB2,
+ 33858 - 11904: 0xDFCB,
+ 33859 - 11904: 0xDFC3,
+ 33860 - 11904: 0xDFDC,
+ 33861 - 11904: 0xDFC6,
+ 33862 - 11904: 0xB8B6,
+ 33863 - 11904: 0xDFD7,
+ 33864 - 11904: 0x98F9,
+ 33865 - 11904: 0xB8AD,
+ 33866 - 11904: 0x8F66,
+ 33867 - 11904: 0xDFC9,
+ 33868 - 11904: 0xDFD1,
+ 33869 - 11904: 0xDFB6,
+ 33870 - 11904: 0xDFD0,
+ 33872 - 11904: 0xDFE1,
+ 33873 - 11904: 0xDFB1,
+ 33874 - 11904: 0xDFD2,
+ 33875 - 11904: 0x956E,
+ 33876 - 11904: 0xDFDF,
+ 33877 - 11904: 0x9245,
+ 33878 - 11904: 0xDFAB,
+ 33879 - 11904: 0xB5DB,
+ 33880 - 11904: 0x8F60,
+ 33881 - 11904: 0xDFB9,
+ 33882 - 11904: 0xDFB8,
+ 33883 - 11904: 0xB8AF,
+ 33884 - 11904: 0x9ED1,
+ 33885 - 11904: 0xDFBC,
+ 33886 - 11904: 0xDFBE,
+ 33887 - 11904: 0xDFCD,
+ 33888 - 11904: 0xDFDE,
+ 33889 - 11904: 0xB8B2,
+ 33890 - 11904: 0xFECD,
+ 33891 - 11904: 0xB8B3,
+ 33892 - 11904: 0x99B9,
+ 33893 - 11904: 0xDFB0,
+ 33894 - 11904: 0xB8AB,
+ 33895 - 11904: 0xDFB4,
+ 33896 - 11904: 0xDFDA,
+ 33897 - 11904: 0xB8B4,
+ 33899 - 11904: 0xB8AC,
+ 33900 - 11904: 0xB8AE,
+ 33901 - 11904: 0xB8B5,
+ 33902 - 11904: 0xDFE0,
+ 33903 - 11904: 0xDFD3,
+ 33904 - 11904: 0xDFCE,
+ 33905 - 11904: 0x8F62,
+ 33906 - 11904: 0x974C,
+ 33907 - 11904: 0xDFBB,
+ 33908 - 11904: 0xDFBA,
+ 33909 - 11904: 0xB8AA,
+ 33910 - 11904: 0xDFAC,
+ 33911 - 11904: 0xB8A7,
+ 33912 - 11904: 0xDFC4,
+ 33913 - 11904: 0xDFAD,
+ 33914 - 11904: 0xDFC2,
+ 33917 - 11904: 0xDFB7,
+ 33918 - 11904: 0xDFDB,
+ 33919 - 11904: 0x91C7,
+ 33920 - 11904: 0x955F,
+ 33922 - 11904: 0xB8A6,
+ 33924 - 11904: 0x87AB,
+ 33926 - 11904: 0xDFB3,
+ 33928 - 11904: 0x99BB,
+ 33933 - 11904: 0xDFAF,
+ 33934 - 11904: 0xDFD5,
+ 33935 - 11904: 0xDFAE,
+ 33936 - 11904: 0xBB60,
+ 33937 - 11904: 0xE3D3,
+ 33938 - 11904: 0x8E6D,
+ 33939 - 11904: 0x8F71,
+ 33940 - 11904: 0xE3C2,
+ 33942 - 11904: 0x94CB,
+ 33943 - 11904: 0xE3AC,
+ 33944 - 11904: 0xE3CA,
+ 33945 - 11904: 0xBB58,
+ 33946 - 11904: 0xE3BB,
+ 33947 - 11904: 0xE3C5,
+ 33948 - 11904: 0xBB5B,
+ 33949 - 11904: 0xE3BE,
+ 33950 - 11904: 0xBB59,
+ 33951 - 11904: 0xE3AF,
+ 33952 - 11904: 0xE3CD,
+ 33953 - 11904: 0xE3AE,
+ 33954 - 11904: 0xE3C1,
+ 33955 - 11904: 0x95B1,
+ 33956 - 11904: 0xE3AD,
+ 33959 - 11904: 0xE3BF,
+ 33960 - 11904: 0xE3C8,
+ 33961 - 11904: 0xE3C6,
+ 33962 - 11904: 0xE3BA,
+ 33963 - 11904: 0xE3B5,
+ 33964 - 11904: 0xE3B3,
+ 33965 - 11904: 0x9AF2,
+ 33966 - 11904: 0xE3B4,
+ 33967 - 11904: 0xE3C7,
+ 33968 - 11904: 0xE3D2,
+ 33969 - 11904: 0xE3BC,
+ 33970 - 11904: 0xBB5A,
+ 33972 - 11904: 0xE3B7,
+ 33974 - 11904: 0xE3CB,
+ 33976 - 11904: 0xBB5D,
+ 33977 - 11904: 0xE3B6,
+ 33978 - 11904: 0xE3B0,
+ 33979 - 11904: 0xE3C0,
+ 33980 - 11904: 0xBB61,
+ 33981 - 11904: 0x96C3,
+ 33982 - 11904: 0x99BD,
+ 33983 - 11904: 0xBB55,
+ 33984 - 11904: 0xBB5E,
+ 33985 - 11904: 0xE3B8,
+ 33986 - 11904: 0xE3B2,
+ 33988 - 11904: 0xBB57,
+ 33989 - 11904: 0xDFD4,
+ 33990 - 11904: 0xBB56,
+ 33991 - 11904: 0xE3C3,
+ 33993 - 11904: 0xBB54,
+ 33994 - 11904: 0xBB63,
+ 33995 - 11904: 0xBB5C,
+ 33996 - 11904: 0xE3C4,
+ 33997 - 11904: 0xE3B9,
+ 33998 - 11904: 0xE3B1,
+ 33999 - 11904: 0xE3CC,
+ 34000 - 11904: 0xE3BD,
+ 34001 - 11904: 0xBB62,
+ 34002 - 11904: 0xE3D0,
+ 34003 - 11904: 0xBB5F,
+ 34004 - 11904: 0xE3CF,
+ 34006 - 11904: 0xE3C9,
+ 34007 - 11904: 0xE3CE,
+ 34010 - 11904: 0xA0CF,
+ 34011 - 11904: 0xE3D1,
+ 34014 - 11904: 0x8F6D,
+ 34017 - 11904: 0x99BE,
+ 34018 - 11904: 0x8EF4,
+ 34020 - 11904: 0x8F72,
+ 34021 - 11904: 0x95E4,
+ 34023 - 11904: 0xE773,
+ 34024 - 11904: 0xE774,
+ 34025 - 11904: 0xE767,
+ 34026 - 11904: 0xE766,
+ 34027 - 11904: 0xE762,
+ 34028 - 11904: 0xBDB4,
+ 34030 - 11904: 0xBDAC,
+ 34031 - 11904: 0xE776,
+ 34032 - 11904: 0xE775,
+ 34033 - 11904: 0xDFA9,
+ 34034 - 11904: 0xE75F,
+ 34035 - 11904: 0xE763,
+ 34036 - 11904: 0xE75D,
+ 34038 - 11904: 0xE770,
+ 34039 - 11904: 0xE761,
+ 34040 - 11904: 0x99BF,
+ 34041 - 11904: 0xE777,
+ 34042 - 11904: 0xE75A,
+ 34043 - 11904: 0xE758,
+ 34044 - 11904: 0xE764,
+ 34045 - 11904: 0xE76E,
+ 34046 - 11904: 0xE769,
+ 34047 - 11904: 0xBDB6,
+ 34048 - 11904: 0xE74F,
+ 34050 - 11904: 0xE76D,
+ 34051 - 11904: 0x9244,
+ 34052 - 11904: 0x87D7,
+ 34053 - 11904: 0xFBA5,
+ 34054 - 11904: 0xBDB7,
+ 34055 - 11904: 0xDFBD,
+ 34056 - 11904: 0xE75B,
+ 34057 - 11904: 0xE752,
+ 34058 - 11904: 0xE755,
+ 34059 - 11904: 0xE77B,
+ 34060 - 11904: 0xE75C,
+ 34061 - 11904: 0xE753,
+ 34062 - 11904: 0xE751,
+ 34063 - 11904: 0xE74E,
+ 34064 - 11904: 0x99C0,
+ 34065 - 11904: 0xBDB0,
+ 34066 - 11904: 0xE765,
+ 34067 - 11904: 0xBDAF,
+ 34068 - 11904: 0xBDB3,
+ 34069 - 11904: 0xE760,
+ 34070 - 11904: 0xE768,
+ 34071 - 11904: 0xBDA9,
+ 34072 - 11904: 0xE778,
+ 34073 - 11904: 0xE77C,
+ 34074 - 11904: 0xBDAB,
+ 34076 - 11904: 0xE757,
+ 34077 - 11904: 0xE76B,
+ 34078 - 11904: 0xE76F,
+ 34079 - 11904: 0xE754,
+ 34080 - 11904: 0xE779,
+ 34081 - 11904: 0xBDB2,
+ 34083 - 11904: 0xBDB1,
+ 34084 - 11904: 0xE74C,
+ 34085 - 11904: 0xBDB5,
+ 34086 - 11904: 0xE772,
+ 34087 - 11904: 0xE756,
+ 34088 - 11904: 0xE76A,
+ 34089 - 11904: 0xE750,
+ 34090 - 11904: 0xE75E,
+ 34091 - 11904: 0xE759,
+ 34092 - 11904: 0xBDAD,
+ 34093 - 11904: 0xBDAE,
+ 34094 - 11904: 0xE76C,
+ 34095 - 11904: 0xE77D,
+ 34096 - 11904: 0xE77A,
+ 34097 - 11904: 0xE771,
+ 34099 - 11904: 0xFDB4,
+ 34100 - 11904: 0x8F77,
+ 34104 - 11904: 0x99C1,
+ 34107 - 11904: 0xE74D,
+ 34109 - 11904: 0xBDAA,
+ 34110 - 11904: 0xEB49,
+ 34112 - 11904: 0xEB40,
+ 34113 - 11904: 0xEB43,
+ 34114 - 11904: 0xFAB9,
+ 34115 - 11904: 0xBFBB,
+ 34116 - 11904: 0xEB45,
+ 34117 - 11904: 0xEAF9,
+ 34118 - 11904: 0xEB41,
+ 34119 - 11904: 0xEB47,
+ 34120 - 11904: 0xBFB8,
+ 34121 - 11904: 0xBFBC,
+ 34122 - 11904: 0xBFB6,
+ 34123 - 11904: 0x8F40,
+ 34124 - 11904: 0xFA44,
+ 34125 - 11904: 0xEAFB,
+ 34126 - 11904: 0xEB4C,
+ 34129 - 11904: 0xEB46,
+ 34130 - 11904: 0x99C2,
+ 34131 - 11904: 0xEAFC,
+ 34132 - 11904: 0xEB55,
+ 34133 - 11904: 0xEB4F,
+ 34134 - 11904: 0xEAF8,
+ 34135 - 11904: 0xEE46,
+ 34136 - 11904: 0xEAFE,
+ 34137 - 11904: 0xBFB7,
+ 34138 - 11904: 0x8F5C,
+ 34139 - 11904: 0xEB4A,
+ 34141 - 11904: 0xEB54,
+ 34142 - 11904: 0xBFBF,
+ 34143 - 11904: 0x8CBD,
+ 34144 - 11904: 0xEB51,
+ 34145 - 11904: 0xEAFD,
+ 34146 - 11904: 0xEB44,
+ 34147 - 11904: 0xEB48,
+ 34148 - 11904: 0xEB42,
+ 34149 - 11904: 0xEB56,
+ 34150 - 11904: 0xEB53,
+ 34151 - 11904: 0xEB50,
+ 34152 - 11904: 0xBFB9,
+ 34153 - 11904: 0xBFBA,
+ 34154 - 11904: 0xBFBE,
+ 34155 - 11904: 0xEAFA,
+ 34156 - 11904: 0xEB57,
+ 34157 - 11904: 0xBFBD,
+ 34158 - 11904: 0xEB4D,
+ 34159 - 11904: 0x99C4,
+ 34160 - 11904: 0x99C5,
+ 34161 - 11904: 0xEB4B,
+ 34163 - 11904: 0x8F7B,
+ 34165 - 11904: 0xEB4E,
+ 34166 - 11904: 0xEE53,
+ 34167 - 11904: 0xEE40,
+ 34168 - 11904: 0xEE45,
+ 34169 - 11904: 0xEE52,
+ 34170 - 11904: 0xEE44,
+ 34171 - 11904: 0xEDFB,
+ 34172 - 11904: 0xEE41,
+ 34174 - 11904: 0xC1A2,
+ 34176 - 11904: 0xEDF4,
+ 34177 - 11904: 0xEE4D,
+ 34178 - 11904: 0xEE4F,
+ 34179 - 11904: 0xEDF3,
+ 34180 - 11904: 0xC1A1,
+ 34181 - 11904: 0xEE51,
+ 34182 - 11904: 0xEE49,
+ 34183 - 11904: 0xC1A8,
+ 34184 - 11904: 0xEE50,
+ 34185 - 11904: 0xEE42,
+ 34186 - 11904: 0xC1AA,
+ 34187 - 11904: 0xEDF9,
+ 34188 - 11904: 0xEB52,
+ 34189 - 11904: 0xEE4A,
+ 34190 - 11904: 0xEE47,
+ 34191 - 11904: 0xEDF5,
+ 34192 - 11904: 0xEE55,
+ 34193 - 11904: 0xC1A4,
+ 34195 - 11904: 0x8776,
+ 34196 - 11904: 0xC1A5,
+ 34197 - 11904: 0xEDF7,
+ 34198 - 11904: 0xEE48,
+ 34199 - 11904: 0x8CB6,
+ 34200 - 11904: 0xEE54,
+ 34201 - 11904: 0xEE4B,
+ 34202 - 11904: 0xEDFD,
+ 34203 - 11904: 0xC1A7,
+ 34204 - 11904: 0xC1A3,
+ 34205 - 11904: 0xEE4C,
+ 34206 - 11904: 0xEDFE,
+ 34207 - 11904: 0xEE56,
+ 34208 - 11904: 0xEDF8,
+ 34209 - 11904: 0xEE43,
+ 34210 - 11904: 0xEE4E,
+ 34211 - 11904: 0xEDFA,
+ 34212 - 11904: 0xEDFC,
+ 34214 - 11904: 0xC2CB,
+ 34215 - 11904: 0xEDF6,
+ 34216 - 11904: 0xC1A9,
+ 34217 - 11904: 0xC2C4,
+ 34218 - 11904: 0xC17E,
+ 34223 - 11904: 0xC1A6,
+ 34224 - 11904: 0xC2C8,
+ 34225 - 11904: 0xF0B3,
+ 34227 - 11904: 0xF0A9,
+ 34228 - 11904: 0xF0A4,
+ 34229 - 11904: 0xF0AA,
+ 34230 - 11904: 0xF0B4,
+ 34231 - 11904: 0xF0B8,
+ 34232 - 11904: 0xF0B7,
+ 34233 - 11904: 0xC2CA,
+ 34234 - 11904: 0xC2C9,
+ 34237 - 11904: 0xF0AB,
+ 34238 - 11904: 0xF0B9,
+ 34239 - 11904: 0xF0AE,
+ 34240 - 11904: 0xF0A6,
+ 34241 - 11904: 0x8FA3,
+ 34242 - 11904: 0xF0A8,
+ 34243 - 11904: 0xF0A7,
+ 34244 - 11904: 0xF0AD,
+ 34245 - 11904: 0xF0B2,
+ 34246 - 11904: 0xF0A5,
+ 34247 - 11904: 0xF0AC,
+ 34248 - 11904: 0xF0B1,
+ 34249 - 11904: 0xC2C7,
+ 34251 - 11904: 0xF0AF,
+ 34253 - 11904: 0xC2C5,
+ 34254 - 11904: 0xF0B0,
+ 34255 - 11904: 0xC2C3,
+ 34256 - 11904: 0xC2C6,
+ 34257 - 11904: 0xF2D5,
+ 34258 - 11904: 0xF0B5,
+ 34261 - 11904: 0xC3C2,
+ 34262 - 11904: 0x8CCE,
+ 34263 - 11904: 0xF2CD,
+ 34264 - 11904: 0xF2D1,
+ 34265 - 11904: 0xF2C9,
+ 34266 - 11904: 0xF2CC,
+ 34268 - 11904: 0xF2D4,
+ 34269 - 11904: 0xC3C0,
+ 34270 - 11904: 0xF2D9,
+ 34271 - 11904: 0xF2D2,
+ 34272 - 11904: 0x99C6,
+ 34273 - 11904: 0xF2CA,
+ 34274 - 11904: 0xF2DA,
+ 34275 - 11904: 0xF2D3,
+ 34276 - 11904: 0xC3C3,
+ 34277 - 11904: 0xC3C4,
+ 34278 - 11904: 0xF2D7,
+ 34280 - 11904: 0xF2CB,
+ 34281 - 11904: 0xC3BF,
+ 34282 - 11904: 0xC3C1,
+ 34283 - 11904: 0xF2C6,
+ 34284 - 11904: 0xF2CE,
+ 34285 - 11904: 0xF2C8,
+ 34286 - 11904: 0x96CD,
+ 34287 - 11904: 0xF2D8,
+ 34288 - 11904: 0xF2D6,
+ 34289 - 11904: 0xF2C7,
+ 34290 - 11904: 0xF2CF,
+ 34294 - 11904: 0xF4BE,
+ 34295 - 11904: 0xC3C5,
+ 34296 - 11904: 0xF2D0,
+ 34297 - 11904: 0xC4A7,
+ 34298 - 11904: 0xC4A9,
+ 34299 - 11904: 0xC4A6,
+ 34300 - 11904: 0x96C7,
+ 34301 - 11904: 0xF4C3,
+ 34302 - 11904: 0xF4BB,
+ 34303 - 11904: 0xF4B9,
+ 34304 - 11904: 0xF4BD,
+ 34305 - 11904: 0xF4BA,
+ 34306 - 11904: 0x8FA5,
+ 34308 - 11904: 0xF4BF,
+ 34309 - 11904: 0xF4C1,
+ 34310 - 11904: 0xC4AA,
+ 34311 - 11904: 0xC4AC,
+ 34313 - 11904: 0xF4C0,
+ 34314 - 11904: 0xC4AD,
+ 34315 - 11904: 0xC4AB,
+ 34316 - 11904: 0xF4C2,
+ 34317 - 11904: 0xFABB,
+ 34319 - 11904: 0x8C61,
+ 34320 - 11904: 0x9570,
+ 34321 - 11904: 0xC4A8,
+ 34323 - 11904: 0x87AF,
+ 34324 - 11904: 0x9368,
+ 34326 - 11904: 0x8F7E,
+ 34327 - 11904: 0xC4F4,
+ 34328 - 11904: 0xF5F1,
+ 34329 - 11904: 0xF5F7,
+ 34330 - 11904: 0xC4F6,
+ 34331 - 11904: 0xF4BC,
+ 34332 - 11904: 0xF5F6,
+ 34334 - 11904: 0xF5FD,
+ 34335 - 11904: 0xF5F4,
+ 34336 - 11904: 0xF5FB,
+ 34337 - 11904: 0xF5FA,
+ 34338 - 11904: 0xF4B8,
+ 34339 - 11904: 0xF5F5,
+ 34340 - 11904: 0xF0B6,
+ 34341 - 11904: 0xF5FE,
+ 34342 - 11904: 0xF5F3,
+ 34343 - 11904: 0xF5F8,
+ 34344 - 11904: 0x8FAA,
+ 34345 - 11904: 0xF5FC,
+ 34346 - 11904: 0xF5F2,
+ 34348 - 11904: 0xF74A,
+ 34349 - 11904: 0xC4F5,
+ 34350 - 11904: 0xF5F9,
+ 34351 - 11904: 0xA050,
+ 34353 - 11904: 0xF7F4,
+ 34354 - 11904: 0xF74B,
+ 34355 - 11904: 0xF749,
+ 34356 - 11904: 0xF747,
+ 34357 - 11904: 0xF748,
+ 34358 - 11904: 0xF74C,
+ 34360 - 11904: 0xC5D9,
+ 34361 - 11904: 0xF7F2,
+ 34362 - 11904: 0xF7F0,
+ 34363 - 11904: 0xF7F5,
+ 34364 - 11904: 0xF7F3,
+ 34366 - 11904: 0xF7F6,
+ 34367 - 11904: 0xC5DA,
+ 34368 - 11904: 0xF7F1,
+ 34370 - 11904: 0x90D3,
+ 34371 - 11904: 0xF8BC,
+ 34373 - 11904: 0x9556,
+ 34374 - 11904: 0xF945,
+ 34375 - 11904: 0xF946,
+ 34376 - 11904: 0xF947,
+ 34379 - 11904: 0xF9C7,
+ 34380 - 11904: 0xF9BD,
+ 34381 - 11904: 0xCA4F,
+ 34382 - 11904: 0xAAEA,
+ 34384 - 11904: 0xAD68,
+ 34386 - 11904: 0xD3B8,
+ 34387 - 11904: 0xD3B7,
+ 34388 - 11904: 0xB040,
+ 34389 - 11904: 0xB342,
+ 34390 - 11904: 0xD77C,
+ 34393 - 11904: 0xD77B,
+ 34395 - 11904: 0xB5EA,
+ 34396 - 11904: 0xB8B8,
+ 34398 - 11904: 0xB8B7,
+ 34399 - 11904: 0xB8B9,
+ 34401 - 11904: 0xE3D4,
+ 34402 - 11904: 0xE77E,
+ 34403 - 11904: 0xEB58,
+ 34404 - 11904: 0xEB5A,
+ 34405 - 11904: 0xEB59,
+ 34407 - 11904: 0xC1AB,
+ 34408 - 11904: 0xEE57,
+ 34409 - 11904: 0xF0BA,
+ 34410 - 11904: 0xF9A5,
+ 34411 - 11904: 0xA6E4,
+ 34412 - 11904: 0x8FB8,
+ 34413 - 11904: 0xCDC9,
+ 34414 - 11904: 0xCDCA,
+ 34415 - 11904: 0xCDC8,
+ 34416 - 11904: 0xCDC7,
+ 34417 - 11904: 0xAAEB,
+ 34418 - 11904: 0x99C8,
+ 34419 - 11904: 0xD0A9,
+ 34420 - 11904: 0xD0A7,
+ 34423 - 11904: 0xD0A6,
+ 34425 - 11904: 0xAD69,
+ 34426 - 11904: 0xAD6B,
+ 34427 - 11904: 0xAD6A,
+ 34428 - 11904: 0xD0A8,
+ 34430 - 11904: 0x8FAF,
+ 34437 - 11904: 0xD3C4,
+ 34438 - 11904: 0xD3C1,
+ 34439 - 11904: 0xD3BF,
+ 34442 - 11904: 0xB041,
+ 34443 - 11904: 0xD3C2,
+ 34444 - 11904: 0xB046,
+ 34445 - 11904: 0xD3BC,
+ 34446 - 11904: 0xD3CB,
+ 34448 - 11904: 0xD3CD,
+ 34449 - 11904: 0xD3BD,
+ 34450 - 11904: 0x99C9,
+ 34451 - 11904: 0xB043,
+ 34452 - 11904: 0xD3CE,
+ 34453 - 11904: 0xD3C9,
+ 34454 - 11904: 0xD3BB,
+ 34455 - 11904: 0xD3C0,
+ 34456 - 11904: 0xD3CA,
+ 34457 - 11904: 0xD3C6,
+ 34458 - 11904: 0xD3C3,
+ 34460 - 11904: 0xB048,
+ 34461 - 11904: 0xD3CC,
+ 34462 - 11904: 0xD3BE,
+ 34464 - 11904: 0x9579,
+ 34465 - 11904: 0xD3C7,
+ 34466 - 11904: 0xD3B9,
+ 34467 - 11904: 0xB047,
+ 34468 - 11904: 0xB044,
+ 34469 - 11904: 0xD3C5,
+ 34471 - 11904: 0xD3C8,
+ 34472 - 11904: 0xD3BA,
+ 34473 - 11904: 0xB045,
+ 34474 - 11904: 0xB042,
+ 34477 - 11904: 0x9F49,
+ 34479 - 11904: 0xB34C,
+ 34480 - 11904: 0xD7A5,
+ 34481 - 11904: 0xB34B,
+ 34482 - 11904: 0x99CA,
+ 34483 - 11904: 0xD7A8,
+ 34484 - 11904: 0xD7AB,
+ 34485 - 11904: 0xB348,
+ 34486 - 11904: 0xB346,
+ 34487 - 11904: 0xD77E,
+ 34488 - 11904: 0xD7A9,
+ 34489 - 11904: 0xD7A7,
+ 34490 - 11904: 0xD7A4,
+ 34491 - 11904: 0xD7AC,
+ 34492 - 11904: 0xD7AD,
+ 34493 - 11904: 0xD7AF,
+ 34494 - 11904: 0xD7B0,
+ 34495 - 11904: 0xD77D,
+ 34496 - 11904: 0xB345,
+ 34497 - 11904: 0xD7A2,
+ 34498 - 11904: 0xD7A1,
+ 34499 - 11904: 0xD7AE,
+ 34500 - 11904: 0xB347,
+ 34501 - 11904: 0xD7A3,
+ 34502 - 11904: 0xB349,
+ 34503 - 11904: 0xB344,
+ 34504 - 11904: 0xD7A6,
+ 34505 - 11904: 0xB34D,
+ 34507 - 11904: 0xB34A,
+ 34508 - 11904: 0xD7AA,
+ 34512 - 11904: 0xB5F1,
+ 34513 - 11904: 0xDBBF,
+ 34515 - 11904: 0xDBB4,
+ 34516 - 11904: 0xB5EE,
+ 34518 - 11904: 0xDFE7,
+ 34519 - 11904: 0xDBBD,
+ 34520 - 11904: 0xDBB1,
+ 34521 - 11904: 0xB5EC,
+ 34522 - 11904: 0xDBB6,
+ 34523 - 11904: 0xB5EF,
+ 34524 - 11904: 0xDBBA,
+ 34525 - 11904: 0xDBB8,
+ 34526 - 11904: 0xB5F2,
+ 34527 - 11904: 0xB5EB,
+ 34530 - 11904: 0xDBB2,
+ 34531 - 11904: 0xDBB5,
+ 34532 - 11904: 0xB5F0,
+ 34534 - 11904: 0xDBB3,
+ 34536 - 11904: 0xDBBE,
+ 34537 - 11904: 0xDBBC,
+ 34538 - 11904: 0xDBB7,
+ 34539 - 11904: 0xDBB9,
+ 34540 - 11904: 0xDBBB,
+ 34541 - 11904: 0xB5ED,
+ 34543 - 11904: 0x99CB,
+ 34549 - 11904: 0xDFE8,
+ 34550 - 11904: 0xDFEE,
+ 34551 - 11904: 0xDFE4,
+ 34552 - 11904: 0xDFEA,
+ 34553 - 11904: 0xB8BA,
+ 34554 - 11904: 0xDFE6,
+ 34555 - 11904: 0xB8C0,
+ 34558 - 11904: 0xB8BF,
+ 34560 - 11904: 0xB8BE,
+ 34561 - 11904: 0xDFED,
+ 34562 - 11904: 0xB8C1,
+ 34563 - 11904: 0xB8C2,
+ 34564 - 11904: 0xDFE3,
+ 34565 - 11904: 0xDFF0,
+ 34566 - 11904: 0xB8C3,
+ 34567 - 11904: 0xB8BD,
+ 34568 - 11904: 0xB8BC,
+ 34569 - 11904: 0xDFEC,
+ 34570 - 11904: 0xB8C4,
+ 34571 - 11904: 0xDFE2,
+ 34572 - 11904: 0xDFE5,
+ 34573 - 11904: 0xDFEF,
+ 34574 - 11904: 0xDFEB,
+ 34577 - 11904: 0xE3F4,
+ 34578 - 11904: 0xE3E9,
+ 34579 - 11904: 0xB8BB,
+ 34584 - 11904: 0xBB6A,
+ 34585 - 11904: 0xE3DD,
+ 34586 - 11904: 0xE3F2,
+ 34587 - 11904: 0xE3DE,
+ 34588 - 11904: 0xBB65,
+ 34590 - 11904: 0xE3DB,
+ 34592 - 11904: 0xE3E4,
+ 34593 - 11904: 0xE3DC,
+ 34594 - 11904: 0xBB67,
+ 34595 - 11904: 0xE3D6,
+ 34596 - 11904: 0xE3F1,
+ 34597 - 11904: 0xBB68,
+ 34598 - 11904: 0xE3EE,
+ 34599 - 11904: 0xE3EF,
+ 34600 - 11904: 0xE3D7,
+ 34601 - 11904: 0xBB6D,
+ 34602 - 11904: 0xE3E6,
+ 34604 - 11904: 0xE3E0,
+ 34605 - 11904: 0xE3E7,
+ 34606 - 11904: 0xE3DA,
+ 34608 - 11904: 0xE3F3,
+ 34609 - 11904: 0xE3EB,
+ 34610 - 11904: 0xE3E5,
+ 34611 - 11904: 0xE3D5,
+ 34612 - 11904: 0xBB69,
+ 34613 - 11904: 0xE3EC,
+ 34615 - 11904: 0xBB6C,
+ 34616 - 11904: 0xE3F0,
+ 34618 - 11904: 0xE3EA,
+ 34619 - 11904: 0xBB66,
+ 34620 - 11904: 0xE3E8,
+ 34622 - 11904: 0xE3E2,
+ 34623 - 11904: 0xBB64,
+ 34624 - 11904: 0xE3D9,
+ 34625 - 11904: 0xE3E1,
+ 34626 - 11904: 0xE3ED,
+ 34627 - 11904: 0xE3DF,
+ 34630 - 11904: 0xE3E3,
+ 34636 - 11904: 0xBDC1,
+ 34637 - 11904: 0xDFE9,
+ 34638 - 11904: 0xE7B2,
+ 34639 - 11904: 0xE7BB,
+ 34640 - 11904: 0xE7B1,
+ 34641 - 11904: 0xE7AD,
+ 34642 - 11904: 0xE7AA,
+ 34643 - 11904: 0xBDC2,
+ 34644 - 11904: 0xE7A8,
+ 34645 - 11904: 0xBB6B,
+ 34646 - 11904: 0xE7A1,
+ 34647 - 11904: 0xBDC0,
+ 34648 - 11904: 0xE7A7,
+ 34649 - 11904: 0xBDBF,
+ 34650 - 11904: 0xE7AC,
+ 34651 - 11904: 0xE7A9,
+ 34652 - 11904: 0xE7B9,
+ 34653 - 11904: 0xE7B4,
+ 34654 - 11904: 0xE7AE,
+ 34655 - 11904: 0xE7B3,
+ 34656 - 11904: 0xBDBB,
+ 34657 - 11904: 0xE7AB,
+ 34658 - 11904: 0xE7BE,
+ 34659 - 11904: 0xE7A2,
+ 34660 - 11904: 0xE7A3,
+ 34661 - 11904: 0xE7BA,
+ 34662 - 11904: 0xBDBC,
+ 34663 - 11904: 0xE7BF,
+ 34664 - 11904: 0xBDBE,
+ 34665 - 11904: 0xE7C0,
+ 34666 - 11904: 0xE7B0,
+ 34667 - 11904: 0xE3D8,
+ 34668 - 11904: 0xE7B6,
+ 34669 - 11904: 0xE7AF,
+ 34670 - 11904: 0xE7B8,
+ 34671 - 11904: 0xE7B5,
+ 34672 - 11904: 0x9DD5,
+ 34673 - 11904: 0x8FB0,
+ 34675 - 11904: 0xE7A6,
+ 34676 - 11904: 0xBDB9,
+ 34677 - 11904: 0xE7BD,
+ 34678 - 11904: 0xBDBA,
+ 34679 - 11904: 0xE7A4,
+ 34680 - 11904: 0xBDBD,
+ 34681 - 11904: 0xEB64,
+ 34682 - 11904: 0xE7B7,
+ 34683 - 11904: 0xE7BC,
+ 34685 - 11904: 0xFA7A,
+ 34689 - 11904: 0xEB61,
+ 34690 - 11904: 0xBDB8,
+ 34691 - 11904: 0xBFC0,
+ 34692 - 11904: 0xEB6B,
+ 34693 - 11904: 0xEB67,
+ 34694 - 11904: 0x9E5F,
+ 34695 - 11904: 0xEB65,
+ 34696 - 11904: 0xEB60,
+ 34697 - 11904: 0xEB6F,
+ 34699 - 11904: 0x99CD,
+ 34700 - 11904: 0xA0C9,
+ 34701 - 11904: 0xBFC4,
+ 34703 - 11904: 0xEB5C,
+ 34704 - 11904: 0xEB68,
+ 34705 - 11904: 0xEB69,
+ 34706 - 11904: 0xEB5F,
+ 34707 - 11904: 0xEB5E,
+ 34708 - 11904: 0xEB6C,
+ 34710 - 11904: 0xEB62,
+ 34711 - 11904: 0xEB5D,
+ 34712 - 11904: 0xEB63,
+ 34714 - 11904: 0xEB6E,
+ 34715 - 11904: 0xEB5B,
+ 34716 - 11904: 0xEB6D,
+ 34717 - 11904: 0xEB6A,
+ 34718 - 11904: 0xBFC2,
+ 34719 - 11904: 0xBFC1,
+ 34722 - 11904: 0xBFC3,
+ 34723 - 11904: 0xEB66,
+ 34724 - 11904: 0xF0CB,
+ 34725 - 11904: 0x9ADB,
+ 34729 - 11904: 0xA0C6,
+ 34730 - 11904: 0xEE59,
+ 34731 - 11904: 0xC1B1,
+ 34732 - 11904: 0xEE5D,
+ 34733 - 11904: 0xEE5A,
+ 34734 - 11904: 0xEE61,
+ 34735 - 11904: 0xEE67,
+ 34736 - 11904: 0xEE5C,
+ 34737 - 11904: 0x8FB4,
+ 34738 - 11904: 0xEE70,
+ 34739 - 11904: 0xC1AE,
+ 34740 - 11904: 0xEE6A,
+ 34741 - 11904: 0xEE5F,
+ 34742 - 11904: 0xEE6B,
+ 34743 - 11904: 0xEE66,
+ 34744 - 11904: 0xEE6D,
+ 34745 - 11904: 0xEE5E,
+ 34746 - 11904: 0xC1B3,
+ 34747 - 11904: 0xC1B2,
+ 34748 - 11904: 0xEE60,
+ 34749 - 11904: 0xEE6E,
+ 34750 - 11904: 0xEE58,
+ 34751 - 11904: 0xEE6C,
+ 34752 - 11904: 0xC1AC,
+ 34753 - 11904: 0xA0D7,
+ 34754 - 11904: 0xEE64,
+ 34755 - 11904: 0xEE63,
+ 34756 - 11904: 0xEE68,
+ 34757 - 11904: 0xEE5B,
+ 34758 - 11904: 0xC1B0,
+ 34760 - 11904: 0xC1B4,
+ 34761 - 11904: 0xEE62,
+ 34762 - 11904: 0xEE69,
+ 34763 - 11904: 0xC1B5,
+ 34764 - 11904: 0xEE65,
+ 34766 - 11904: 0xA0C7,
+ 34769 - 11904: 0xC1AD,
+ 34770 - 11904: 0xC1AF,
+ 34771 - 11904: 0xF0C7,
+ 34772 - 11904: 0xF0C5,
+ 34774 - 11904: 0xA043,
+ 34775 - 11904: 0xF0CC,
+ 34776 - 11904: 0xF0C9,
+ 34777 - 11904: 0xF0CD,
+ 34778 - 11904: 0x8FB5,
+ 34779 - 11904: 0xF0BE,
+ 34780 - 11904: 0xF0C6,
+ 34781 - 11904: 0xF0D1,
+ 34782 - 11904: 0xEE6F,
+ 34783 - 11904: 0xF0C2,
+ 34784 - 11904: 0xC2CF,
+ 34785 - 11904: 0xE7A5,
+ 34786 - 11904: 0xF0BD,
+ 34787 - 11904: 0xF0CA,
+ 34788 - 11904: 0xF0C4,
+ 34789 - 11904: 0xF0C1,
+ 34790 - 11904: 0xF0BC,
+ 34791 - 11904: 0xF0BB,
+ 34792 - 11904: 0xF0D0,
+ 34794 - 11904: 0xF0C0,
+ 34795 - 11904: 0xF0BF,
+ 34796 - 11904: 0xC2CD,
+ 34797 - 11904: 0xF0C8,
+ 34798 - 11904: 0x8FB2,
+ 34799 - 11904: 0xC2CC,
+ 34802 - 11904: 0xC2CE,
+ 34803 - 11904: 0xF0C3,
+ 34804 - 11904: 0xF0CF,
+ 34805 - 11904: 0xA061,
+ 34806 - 11904: 0xF2DE,
+ 34807 - 11904: 0xF2DF,
+ 34809 - 11904: 0xC3C9,
+ 34810 - 11904: 0xF2DC,
+ 34811 - 11904: 0xC3C6,
+ 34812 - 11904: 0xF2E4,
+ 34814 - 11904: 0xC3CA,
+ 34815 - 11904: 0xF2E6,
+ 34816 - 11904: 0xF2DB,
+ 34817 - 11904: 0xF0CE,
+ 34818 - 11904: 0xF2E8,
+ 34819 - 11904: 0xF2DD,
+ 34820 - 11904: 0x9E5E,
+ 34821 - 11904: 0xC3C7,
+ 34822 - 11904: 0xF2E3,
+ 34824 - 11904: 0xF2E5,
+ 34825 - 11904: 0xF2E0,
+ 34826 - 11904: 0xF2E7,
+ 34827 - 11904: 0xF2E2,
+ 34828 - 11904: 0xF2E1,
+ 34829 - 11904: 0xC3C8,
+ 34831 - 11904: 0xA063,
+ 34832 - 11904: 0xF4C5,
+ 34833 - 11904: 0xF4C6,
+ 34835 - 11904: 0xF4C8,
+ 34836 - 11904: 0xC4AE,
+ 34837 - 11904: 0xC4AF,
+ 34838 - 11904: 0xF4C9,
+ 34839 - 11904: 0xF4C7,
+ 34840 - 11904: 0x9FE8,
+ 34841 - 11904: 0xF4C4,
+ 34843 - 11904: 0xF642,
+ 34844 - 11904: 0xF645,
+ 34845 - 11904: 0xF641,
+ 34847 - 11904: 0xC4FA,
+ 34848 - 11904: 0xF643,
+ 34849 - 11904: 0xC4F9,
+ 34850 - 11904: 0xC4F8,
+ 34851 - 11904: 0xC4F7,
+ 34852 - 11904: 0xF644,
+ 34853 - 11904: 0xF751,
+ 34854 - 11904: 0xF74F,
+ 34855 - 11904: 0x9CB2,
+ 34856 - 11904: 0xF74E,
+ 34857 - 11904: 0xF640,
+ 34858 - 11904: 0xF750,
+ 34859 - 11904: 0xF646,
+ 34860 - 11904: 0xF74D,
+ 34861 - 11904: 0x957C,
+ 34862 - 11904: 0xF7F9,
+ 34863 - 11904: 0xF7D7,
+ 34864 - 11904: 0xF7F7,
+ 34865 - 11904: 0xC5DB,
+ 34866 - 11904: 0xF7F8,
+ 34867 - 11904: 0xF7FA,
+ 34869 - 11904: 0xF8BF,
+ 34870 - 11904: 0xC5FA,
+ 34871 - 11904: 0xF8BE,
+ 34872 - 11904: 0xF8BD,
+ 34873 - 11904: 0xC5FB,
+ 34875 - 11904: 0xC65A,
+ 34876 - 11904: 0xF96E,
+ 34877 - 11904: 0xF9A7,
+ 34878 - 11904: 0xF9A6,
+ 34879 - 11904: 0xF9A8,
+ 34880 - 11904: 0xA6E5,
+ 34881 - 11904: 0xD0AA,
+ 34882 - 11904: 0x9FC7,
+ 34883 - 11904: 0xD3CF,
+ 34884 - 11904: 0xD3D0,
+ 34885 - 11904: 0x8FBB,
+ 34886 - 11904: 0x8FBC,
+ 34888 - 11904: 0xDBC0,
+ 34890 - 11904: 0xF647,
+ 34891 - 11904: 0xF8C0,
+ 34892 - 11904: 0xA6E6,
+ 34893 - 11904: 0xAD6C,
+ 34894 - 11904: 0xD0AB,
+ 34895 - 11904: 0x8FEC,
+ 34898 - 11904: 0xD7B1,
+ 34899 - 11904: 0xB34E,
+ 34901 - 11904: 0xDBC2,
+ 34902 - 11904: 0xDBC1,
+ 34903 - 11904: 0xB5F3,
+ 34905 - 11904: 0xB8C5,
+ 34906 - 11904: 0xE7C1,
+ 34907 - 11904: 0xBDC3,
+ 34909 - 11904: 0xBDC4,
+ 34910 - 11904: 0x8FC0,
+ 34912 - 11904: 0x936A,
+ 34913 - 11904: 0xBFC5,
+ 34914 - 11904: 0xC5FC,
+ 34915 - 11904: 0xA6E7,
+ 34916 - 11904: 0x8BE4,
+ 34917 - 11904: 0x9C7C,
+ 34919 - 11904: 0xD0AC,
+ 34920 - 11904: 0xAAED,
+ 34921 - 11904: 0xD0AE,
+ 34922 - 11904: 0xD0AD,
+ 34923 - 11904: 0xAD6D,
+ 34925 - 11904: 0xD3D1,
+ 34926 - 11904: 0x95A1,
+ 34927 - 11904: 0xD3D8,
+ 34928 - 11904: 0xB049,
+ 34929 - 11904: 0xD3D6,
+ 34930 - 11904: 0xD3D4,
+ 34932 - 11904: 0xD3DB,
+ 34933 - 11904: 0xD3D2,
+ 34934 - 11904: 0xD3D3,
+ 34935 - 11904: 0xB04A,
+ 34937 - 11904: 0xB04E,
+ 34940 - 11904: 0xD3DC,
+ 34941 - 11904: 0xB04D,
+ 34942 - 11904: 0xD3DA,
+ 34943 - 11904: 0xD3D7,
+ 34944 - 11904: 0xD3D5,
+ 34945 - 11904: 0xB04B,
+ 34946 - 11904: 0xB04C,
+ 34947 - 11904: 0xD3D9,
+ 34948 - 11904: 0xFEEC,
+ 34951 - 11904: 0x95A3,
+ 34952 - 11904: 0xB350,
+ 34953 - 11904: 0xD7B2,
+ 34955 - 11904: 0xB355,
+ 34956 - 11904: 0xD7C2,
+ 34957 - 11904: 0xB354,
+ 34958 - 11904: 0xD7C4,
+ 34959 - 11904: 0x8C45,
+ 34960 - 11904: 0x8CB8,
+ 34961 - 11904: 0xD7B8,
+ 34962 - 11904: 0xB352,
+ 34963 - 11904: 0xD7C3,
+ 34965 - 11904: 0xD7B3,
+ 34966 - 11904: 0xB353,
+ 34967 - 11904: 0xD7BF,
+ 34968 - 11904: 0xD7BB,
+ 34969 - 11904: 0xD7BD,
+ 34970 - 11904: 0xD7B7,
+ 34971 - 11904: 0xD7BE,
+ 34972 - 11904: 0x8FC1,
+ 34973 - 11904: 0x87B7,
+ 34974 - 11904: 0xB34F,
+ 34975 - 11904: 0xD7BA,
+ 34976 - 11904: 0xA052,
+ 34977 - 11904: 0xD7B9,
+ 34978 - 11904: 0xD7B5,
+ 34980 - 11904: 0xD7C0,
+ 34983 - 11904: 0xD7BC,
+ 34984 - 11904: 0xD7B4,
+ 34986 - 11904: 0xD7B6,
+ 34987 - 11904: 0xB351,
+ 34988 - 11904: 0xD7C1,
+ 34990 - 11904: 0x99D0,
+ 34993 - 11904: 0xB5F6,
+ 34994 - 11904: 0xDBCD,
+ 34996 - 11904: 0x8FC3,
+ 34997 - 11904: 0x8FC4,
+ 34998 - 11904: 0xDBC9,
+ 34999 - 11904: 0xDBCB,
+ 35000 - 11904: 0xDBC6,
+ 35001 - 11904: 0xDBC5,
+ 35002 - 11904: 0xDBC3,
+ 35004 - 11904: 0xDBCA,
+ 35005 - 11904: 0xDBCC,
+ 35006 - 11904: 0xDBC8,
+ 35007 - 11904: 0x95A4,
+ 35008 - 11904: 0xDBC7,
+ 35009 - 11904: 0xB5F4,
+ 35010 - 11904: 0xB5F5,
+ 35013 - 11904: 0x8FC6,
+ 35015 - 11904: 0x9E60,
+ 35017 - 11904: 0xDBCF,
+ 35018 - 11904: 0xB8CD,
+ 35019 - 11904: 0xDFF2,
+ 35020 - 11904: 0xDFF8,
+ 35021 - 11904: 0xDFF3,
+ 35022 - 11904: 0xDFF4,
+ 35023 - 11904: 0xF9D8,
+ 35024 - 11904: 0xDFF9,
+ 35026 - 11904: 0xB8CF,
+ 35028 - 11904: 0xB8C7,
+ 35029 - 11904: 0xB8CE,
+ 35030 - 11904: 0xDFF1,
+ 35031 - 11904: 0xDBC4,
+ 35032 - 11904: 0xB8CA,
+ 35033 - 11904: 0xB8C8,
+ 35034 - 11904: 0xDFF7,
+ 35035 - 11904: 0xDFF6,
+ 35036 - 11904: 0xB8C9,
+ 35037 - 11904: 0xB8CB,
+ 35038 - 11904: 0xDFF5,
+ 35039 - 11904: 0xB8C6,
+ 35041 - 11904: 0xB8CC,
+ 35046 - 11904: 0x95A5,
+ 35047 - 11904: 0xE3F6,
+ 35048 - 11904: 0xBB74,
+ 35051 - 11904: 0xE442,
+ 35052 - 11904: 0xE441,
+ 35054 - 11904: 0xE3FB,
+ 35055 - 11904: 0xBB76,
+ 35056 - 11904: 0xE440,
+ 35057 - 11904: 0xE3F7,
+ 35058 - 11904: 0xE3F8,
+ 35059 - 11904: 0xBB6E,
+ 35060 - 11904: 0xBB70,
+ 35061 - 11904: 0x9CB3,
+ 35062 - 11904: 0xE3FD,
+ 35063 - 11904: 0xE3F5,
+ 35064 - 11904: 0xBB72,
+ 35065 - 11904: 0xBB71,
+ 35066 - 11904: 0xE3F9,
+ 35067 - 11904: 0xE3FE,
+ 35068 - 11904: 0xE3FC,
+ 35069 - 11904: 0xBB73,
+ 35070 - 11904: 0xE3FA,
+ 35071 - 11904: 0x99D1,
+ 35072 - 11904: 0xFEF1,
+ 35073 - 11904: 0xDBCE,
+ 35074 - 11904: 0xBB6F,
+ 35077 - 11904: 0xE7C2,
+ 35078 - 11904: 0xE7C9,
+ 35079 - 11904: 0xBDC6,
+ 35081 - 11904: 0xE7CD,
+ 35082 - 11904: 0xBDCA,
+ 35083 - 11904: 0xE7C5,
+ 35084 - 11904: 0xE7C3,
+ 35086 - 11904: 0xE7CC,
+ 35088 - 11904: 0xBDC5,
+ 35089 - 11904: 0xE7CB,
+ 35090 - 11904: 0xBDC7,
+ 35091 - 11904: 0xBDC8,
+ 35092 - 11904: 0xE7C4,
+ 35093 - 11904: 0xBDC9,
+ 35094 - 11904: 0xE7CA,
+ 35095 - 11904: 0xE7C6,
+ 35096 - 11904: 0xE7C7,
+ 35097 - 11904: 0xE7C8,
+ 35098 - 11904: 0xBB75,
+ 35102 - 11904: 0xEB70,
+ 35103 - 11904: 0xEB7C,
+ 35105 - 11904: 0xBFCA,
+ 35106 - 11904: 0xEB77,
+ 35107 - 11904: 0xEB79,
+ 35108 - 11904: 0x99D2,
+ 35109 - 11904: 0xBFC8,
+ 35110 - 11904: 0xEB71,
+ 35111 - 11904: 0xEB75,
+ 35113 - 11904: 0xEB78,
+ 35114 - 11904: 0xBFC6,
+ 35115 - 11904: 0xBFC9,
+ 35116 - 11904: 0xEB7B,
+ 35117 - 11904: 0xEB73,
+ 35118 - 11904: 0xEB74,
+ 35119 - 11904: 0xEB7A,
+ 35120 - 11904: 0xEB72,
+ 35121 - 11904: 0xEB76,
+ 35122 - 11904: 0xBFC7,
+ 35123 - 11904: 0xEE72,
+ 35125 - 11904: 0xEE71,
+ 35126 - 11904: 0xC1B7,
+ 35127 - 11904: 0xEE77,
+ 35128 - 11904: 0xC1B9,
+ 35131 - 11904: 0xC1B6,
+ 35132 - 11904: 0xEE73,
+ 35133 - 11904: 0xC1BA,
+ 35134 - 11904: 0xEE74,
+ 35137 - 11904: 0xEE75,
+ 35138 - 11904: 0xEE78,
+ 35139 - 11904: 0x9CC2,
+ 35140 - 11904: 0xC1B8,
+ 35142 - 11904: 0xF0D6,
+ 35143 - 11904: 0x99D3,
+ 35145 - 11904: 0xF0D9,
+ 35147 - 11904: 0xF0D3,
+ 35148 - 11904: 0xF0D5,
+ 35149 - 11904: 0x95A7,
+ 35151 - 11904: 0xF0D4,
+ 35152 - 11904: 0xF0D7,
+ 35153 - 11904: 0xF0D8,
+ 35154 - 11904: 0xEE76,
+ 35155 - 11904: 0xF0D2,
+ 35156 - 11904: 0x95A9,
+ 35158 - 11904: 0xC3CD,
+ 35159 - 11904: 0xF2EC,
+ 35160 - 11904: 0xF2EF,
+ 35161 - 11904: 0xF2F1,
+ 35162 - 11904: 0xF2EA,
+ 35163 - 11904: 0xF2EB,
+ 35164 - 11904: 0xF2EE,
+ 35165 - 11904: 0xF2F0,
+ 35166 - 11904: 0xC3CE,
+ 35167 - 11904: 0xC3CC,
+ 35168 - 11904: 0xC3CB,
+ 35169 - 11904: 0xF2ED,
+ 35170 - 11904: 0xF2E9,
+ 35171 - 11904: 0xF4CA,
+ 35172 - 11904: 0xC4B0,
+ 35173 - 11904: 0x95A6,
+ 35174 - 11904: 0xF4CB,
+ 35177 - 11904: 0xF649,
+ 35178 - 11904: 0xC4FB,
+ 35179 - 11904: 0xF64B,
+ 35180 - 11904: 0xC4FC,
+ 35181 - 11904: 0xF648,
+ 35182 - 11904: 0xF64A,
+ 35183 - 11904: 0xC5A8,
+ 35185 - 11904: 0xF752,
+ 35186 - 11904: 0xC5A7,
+ 35187 - 11904: 0xF7FD,
+ 35188 - 11904: 0xF7FC,
+ 35190 - 11904: 0xF7FB,
+ 35191 - 11904: 0x9C5D,
+ 35193 - 11904: 0xF948,
+ 35194 - 11904: 0xF949,
+ 35195 - 11904: 0xF94B,
+ 35196 - 11904: 0xF94A,
+ 35198 - 11904: 0xCA50,
+ 35199 - 11904: 0xA6E8,
+ 35200 - 11904: 0x98E2,
+ 35201 - 11904: 0xAD6E,
+ 35202 - 11904: 0xD7C5,
+ 35203 - 11904: 0xB5F7,
+ 35205 - 11904: 0xDFFA,
+ 35206 - 11904: 0xC2D0,
+ 35207 - 11904: 0x8FC9,
+ 35208 - 11904: 0xF2F2,
+ 35209 - 11904: 0xA0C2,
+ 35210 - 11904: 0x8FCA,
+ 35211 - 11904: 0xA8A3,
+ 35215 - 11904: 0xB357,
+ 35217 - 11904: 0x99D4,
+ 35219 - 11904: 0xB356,
+ 35220 - 11904: 0xA0B9,
+ 35221 - 11904: 0xDBD0,
+ 35222 - 11904: 0xB5F8,
+ 35223 - 11904: 0xDBD2,
+ 35224 - 11904: 0xDBD1,
+ 35227 - 11904: 0xDFFB,
+ 35228 - 11904: 0xB8D0,
+ 35229 - 11904: 0xE443,
+ 35230 - 11904: 0xE446,
+ 35231 - 11904: 0xE445,
+ 35233 - 11904: 0xE444,
+ 35234 - 11904: 0xE7CE,
+ 35235 - 11904: 0xE7D0,
+ 35236 - 11904: 0xE7CF,
+ 35237 - 11904: 0x9B58,
+ 35238 - 11904: 0xBFCC,
+ 35239 - 11904: 0x8FCD,
+ 35241 - 11904: 0xA0D4,
+ 35242 - 11904: 0xBFCB,
+ 35244 - 11904: 0xC1BB,
+ 35245 - 11904: 0xEE79,
+ 35246 - 11904: 0xEE7B,
+ 35247 - 11904: 0xEE7A,
+ 35250 - 11904: 0xC2D1,
+ 35254 - 11904: 0xF2F4,
+ 35255 - 11904: 0xF2F3,
+ 35257 - 11904: 0xF4CC,
+ 35258 - 11904: 0xC4B1,
+ 35260 - 11904: 0x8FCE,
+ 35261 - 11904: 0xC4FD,
+ 35262 - 11904: 0xF754,
+ 35263 - 11904: 0xF753,
+ 35264 - 11904: 0xC65B,
+ 35265 - 11904: 0x8BE5,
+ 35270 - 11904: 0x8979,
+ 35282 - 11904: 0xA8A4,
+ 35283 - 11904: 0xD0AF,
+ 35284 - 11904: 0xAD6F,
+ 35285 - 11904: 0xD7C8,
+ 35286 - 11904: 0xD7C6,
+ 35289 - 11904: 0xD7C7,
+ 35290 - 11904: 0xDBD4,
+ 35291 - 11904: 0xDBD5,
+ 35292 - 11904: 0xE043,
+ 35293 - 11904: 0xDBD3,
+ 35295 - 11904: 0xDFFC,
+ 35296 - 11904: 0xE041,
+ 35297 - 11904: 0xE040,
+ 35298 - 11904: 0xE042,
+ 35299 - 11904: 0xB8D1,
+ 35300 - 11904: 0xDFFE,
+ 35301 - 11904: 0xDFFD,
+ 35302 - 11904: 0xE044,
+ 35303 - 11904: 0x8FD0,
+ 35304 - 11904: 0xE449,
+ 35305 - 11904: 0xE447,
+ 35307 - 11904: 0xE448,
+ 35308 - 11904: 0xE7D3,
+ 35309 - 11904: 0xE7D1,
+ 35312 - 11904: 0xE7D2,
+ 35313 - 11904: 0xEB7D,
+ 35314 - 11904: 0xEE7C,
+ 35315 - 11904: 0xEE7D,
+ 35316 - 11904: 0xC2D2,
+ 35318 - 11904: 0xF2F5,
+ 35319 - 11904: 0xF4CD,
+ 35320 - 11904: 0xC4B2,
+ 35322 - 11904: 0xF64C,
+ 35323 - 11904: 0xF755,
+ 35324 - 11904: 0xC5A9,
+ 35326 - 11904: 0xF7FE,
+ 35327 - 11904: 0xF94C,
+ 35328 - 11904: 0xA8A5,
+ 35330 - 11904: 0xAD71,
+ 35331 - 11904: 0xAD72,
+ 35332 - 11904: 0xD0B0,
+ 35335 - 11904: 0xD0B1,
+ 35336 - 11904: 0xAD70,
+ 35338 - 11904: 0xB054,
+ 35340 - 11904: 0xB052,
+ 35342 - 11904: 0xB051,
+ 35343 - 11904: 0xB058,
+ 35344 - 11904: 0xB050,
+ 35345 - 11904: 0xB059,
+ 35346 - 11904: 0xD3DD,
+ 35347 - 11904: 0xB056,
+ 35349 - 11904: 0xB053,
+ 35350 - 11904: 0xB057,
+ 35351 - 11904: 0xB055,
+ 35352 - 11904: 0xB04F,
+ 35355 - 11904: 0xB35F,
+ 35356 - 11904: 0x95B6,
+ 35357 - 11904: 0xB359,
+ 35358 - 11904: 0xD7CC,
+ 35359 - 11904: 0xB35E,
+ 35362 - 11904: 0xB360,
+ 35363 - 11904: 0xB35A,
+ 35365 - 11904: 0xB35B,
+ 35367 - 11904: 0xD7CA,
+ 35369 - 11904: 0x99D6,
+ 35370 - 11904: 0xB358,
+ 35371 - 11904: 0x95E5,
+ 35372 - 11904: 0xD7CB,
+ 35373 - 11904: 0xB35D,
+ 35376 - 11904: 0xD7C9,
+ 35377 - 11904: 0xB35C,
+ 35380 - 11904: 0xB644,
+ 35382 - 11904: 0xB646,
+ 35384 - 11904: 0x99D7,
+ 35385 - 11904: 0xDBD8,
+ 35386 - 11904: 0xB645,
+ 35387 - 11904: 0xB5F9,
+ 35388 - 11904: 0xB5FD,
+ 35389 - 11904: 0x95B5,
+ 35390 - 11904: 0xB8E4,
+ 35391 - 11904: 0xE049,
+ 35392 - 11904: 0xDBDA,
+ 35393 - 11904: 0xB5FE,
+ 35396 - 11904: 0xDBDD,
+ 35397 - 11904: 0xDBDE,
+ 35398 - 11904: 0xB643,
+ 35400 - 11904: 0xDBE0,
+ 35401 - 11904: 0xA0CA,
+ 35402 - 11904: 0xDBE2,
+ 35404 - 11904: 0xDBE3,
+ 35405 - 11904: 0xDBD7,
+ 35406 - 11904: 0xDBD6,
+ 35407 - 11904: 0xDBE4,
+ 35408 - 11904: 0xB642,
+ 35409 - 11904: 0xDBE1,
+ 35410 - 11904: 0xDBDF,
+ 35412 - 11904: 0xB640,
+ 35413 - 11904: 0xB5FB,
+ 35414 - 11904: 0xB647,
+ 35415 - 11904: 0xDBDB,
+ 35416 - 11904: 0xDBDC,
+ 35417 - 11904: 0xDBD9,
+ 35419 - 11904: 0xB641,
+ 35422 - 11904: 0xB5FC,
+ 35424 - 11904: 0xB5FA,
+ 35425 - 11904: 0xE048,
+ 35426 - 11904: 0xB8DF,
+ 35427 - 11904: 0xB8DA,
+ 35430 - 11904: 0xB8D5,
+ 35431 - 11904: 0x9FFD,
+ 35432 - 11904: 0xB8E5,
+ 35433 - 11904: 0xB8D6,
+ 35435 - 11904: 0xB8D2,
+ 35436 - 11904: 0xB8E1,
+ 35437 - 11904: 0xB8DE,
+ 35438 - 11904: 0xB8E0,
+ 35440 - 11904: 0xB8D7,
+ 35441 - 11904: 0xB8DC,
+ 35442 - 11904: 0xB8D3,
+ 35443 - 11904: 0xB8D4,
+ 35444 - 11904: 0xE050,
+ 35445 - 11904: 0xE04D,
+ 35446 - 11904: 0xE045,
+ 35447 - 11904: 0xE04A,
+ 35449 - 11904: 0xB8E2,
+ 35450 - 11904: 0xE051,
+ 35451 - 11904: 0xB8E3,
+ 35452 - 11904: 0xB8D9,
+ 35454 - 11904: 0xA058,
+ 35455 - 11904: 0xE047,
+ 35457 - 11904: 0xE04F,
+ 35458 - 11904: 0xE04B,
+ 35459 - 11904: 0xE04E,
+ 35460 - 11904: 0xE04C,
+ 35461 - 11904: 0xB8DD,
+ 35462 - 11904: 0xE046,
+ 35463 - 11904: 0xB8D8,
+ 35467 - 11904: 0xE44C,
+ 35468 - 11904: 0xBB78,
+ 35469 - 11904: 0xBB7B,
+ 35471 - 11904: 0xE44E,
+ 35472 - 11904: 0x8FD6,
+ 35473 - 11904: 0xBBA5,
+ 35474 - 11904: 0xE44D,
+ 35475 - 11904: 0xBB7D,
+ 35476 - 11904: 0x99D8,
+ 35477 - 11904: 0xBDCF,
+ 35478 - 11904: 0xE44F,
+ 35480 - 11904: 0xBBA4,
+ 35481 - 11904: 0xE44B,
+ 35482 - 11904: 0xBBA6,
+ 35484 - 11904: 0x8FD3,
+ 35486 - 11904: 0xBB79,
+ 35488 - 11904: 0xB8DB,
+ 35489 - 11904: 0xBB7C,
+ 35491 - 11904: 0xBB7A,
+ 35492 - 11904: 0xBB7E,
+ 35493 - 11904: 0xBBA2,
+ 35494 - 11904: 0xBB77,
+ 35495 - 11904: 0xBBA7,
+ 35496 - 11904: 0xBBA3,
+ 35497 - 11904: 0x8FE5,
+ 35498 - 11904: 0xBBA1,
+ 35499 - 11904: 0xE44A,
+ 35503 - 11904: 0x8FE9,
+ 35504 - 11904: 0xBDD6,
+ 35506 - 11904: 0xBDD2,
+ 35508 - 11904: 0x99D9,
+ 35510 - 11904: 0xBDD9,
+ 35512 - 11904: 0xE7D6,
+ 35513 - 11904: 0xBDDA,
+ 35514 - 11904: 0xE7E2,
+ 35515 - 11904: 0xE7DB,
+ 35516 - 11904: 0xBDCB,
+ 35517 - 11904: 0xE7E3,
+ 35518 - 11904: 0xE7DD,
+ 35519 - 11904: 0xBDD5,
+ 35520 - 11904: 0xE7DE,
+ 35522 - 11904: 0xBDD4,
+ 35523 - 11904: 0xE7E1,
+ 35524 - 11904: 0xBDCE,
+ 35525 - 11904: 0xE7DF,
+ 35526 - 11904: 0xE7D5,
+ 35527 - 11904: 0xBDCD,
+ 35528 - 11904: 0xEBAA,
+ 35529 - 11904: 0xBDD3,
+ 35531 - 11904: 0xBDD0,
+ 35532 - 11904: 0x8CF7,
+ 35533 - 11904: 0xBDD8,
+ 35535 - 11904: 0xE7D4,
+ 35537 - 11904: 0xE7D8,
+ 35538 - 11904: 0xBDCC,
+ 35539 - 11904: 0xE7D7,
+ 35540 - 11904: 0xE7D9,
+ 35541 - 11904: 0xE7DA,
+ 35542 - 11904: 0xBDD7,
+ 35543 - 11904: 0xE7DC,
+ 35544 - 11904: 0xE7E0,
+ 35545 - 11904: 0xE7E4,
+ 35546 - 11904: 0x927C,
+ 35547 - 11904: 0xBDDB,
+ 35548 - 11904: 0xBFD2,
+ 35549 - 11904: 0xEBA5,
+ 35550 - 11904: 0xEBAB,
+ 35551 - 11904: 0xEBA8,
+ 35552 - 11904: 0xEB7E,
+ 35553 - 11904: 0xEBAC,
+ 35554 - 11904: 0xEBA1,
+ 35556 - 11904: 0xEBA7,
+ 35558 - 11904: 0xBFCD,
+ 35559 - 11904: 0xBFD3,
+ 35560 - 11904: 0xEBAD,
+ 35562 - 11904: 0x9C45,
+ 35563 - 11904: 0xBFCF,
+ 35565 - 11904: 0xBFD9,
+ 35566 - 11904: 0xBFD4,
+ 35567 - 11904: 0xEBAF,
+ 35568 - 11904: 0xEBA9,
+ 35569 - 11904: 0xBFD0,
+ 35570 - 11904: 0xEBA2,
+ 35571 - 11904: 0xBFDA,
+ 35572 - 11904: 0xEBA3,
+ 35573 - 11904: 0xEBA4,
+ 35574 - 11904: 0xBFDB,
+ 35575 - 11904: 0xBFD8,
+ 35576 - 11904: 0xBDD1,
+ 35577 - 11904: 0x8CE8,
+ 35578 - 11904: 0xBFCE,
+ 35579 - 11904: 0xEBB0,
+ 35580 - 11904: 0xBFDC,
+ 35582 - 11904: 0xBFD5,
+ 35583 - 11904: 0xEBAE,
+ 35584 - 11904: 0xBFD1,
+ 35585 - 11904: 0xBFD6,
+ 35586 - 11904: 0xBFD7,
+ 35588 - 11904: 0xC1C3,
+ 35589 - 11904: 0xEEA4,
+ 35590 - 11904: 0xEEAD,
+ 35591 - 11904: 0xEEAA,
+ 35592 - 11904: 0xEEAC,
+ 35594 - 11904: 0xC1C0,
+ 35595 - 11904: 0xEEA5,
+ 35596 - 11904: 0x8FDE,
+ 35597 - 11904: 0xEEAB,
+ 35598 - 11904: 0xC1BC,
+ 35599 - 11904: 0xEEA7,
+ 35600 - 11904: 0xC1C4,
+ 35601 - 11904: 0xEEA3,
+ 35602 - 11904: 0xEEA8,
+ 35603 - 11904: 0xEEAF,
+ 35604 - 11904: 0xEBA6,
+ 35605 - 11904: 0xEEA9,
+ 35606 - 11904: 0xEEA2,
+ 35607 - 11904: 0xC1BD,
+ 35608 - 11904: 0xEEA1,
+ 35609 - 11904: 0xC1BE,
+ 35610 - 11904: 0xEEB0,
+ 35611 - 11904: 0xC1BF,
+ 35612 - 11904: 0xEEAE,
+ 35613 - 11904: 0xC1C2,
+ 35614 - 11904: 0xEE7E,
+ 35615 - 11904: 0x8FDF,
+ 35616 - 11904: 0xC1C1,
+ 35618 - 11904: 0xEEA6,
+ 35619 - 11904: 0xF0DC,
+ 35620 - 11904: 0xF0EA,
+ 35621 - 11904: 0xF0E5,
+ 35622 - 11904: 0xF0E7,
+ 35623 - 11904: 0xF0DB,
+ 35624 - 11904: 0xC2D3,
+ 35626 - 11904: 0xF0DA,
+ 35627 - 11904: 0xC2D6,
+ 35628 - 11904: 0xC2D5,
+ 35629 - 11904: 0xA04B,
+ 35630 - 11904: 0xF0E9,
+ 35631 - 11904: 0xF0E1,
+ 35632 - 11904: 0xF0DE,
+ 35633 - 11904: 0xF0E4,
+ 35635 - 11904: 0xF0DD,
+ 35637 - 11904: 0xF0DF,
+ 35638 - 11904: 0xF0E8,
+ 35639 - 11904: 0xF0E6,
+ 35641 - 11904: 0xC2D4,
+ 35642 - 11904: 0xF0ED,
+ 35643 - 11904: 0xF0EB,
+ 35644 - 11904: 0xF0E2,
+ 35645 - 11904: 0xF0EC,
+ 35646 - 11904: 0xF0E3,
+ 35647 - 11904: 0x8FE2,
+ 35648 - 11904: 0xF2F9,
+ 35649 - 11904: 0xC3CF,
+ 35650 - 11904: 0xF341,
+ 35651 - 11904: 0xA0CC,
+ 35653 - 11904: 0xF64F,
+ 35654 - 11904: 0xC3D6,
+ 35655 - 11904: 0xF0E0,
+ 35656 - 11904: 0xF2F7,
+ 35657 - 11904: 0xC3D2,
+ 35658 - 11904: 0xF2F8,
+ 35659 - 11904: 0xF2FD,
+ 35660 - 11904: 0x8FE3,
+ 35661 - 11904: 0x8FE4,
+ 35662 - 11904: 0xC3D4,
+ 35663 - 11904: 0xC3D5,
+ 35664 - 11904: 0xF2F6,
+ 35665 - 11904: 0xF340,
+ 35666 - 11904: 0xF342,
+ 35667 - 11904: 0xF2FA,
+ 35668 - 11904: 0xF2FC,
+ 35669 - 11904: 0xF2FE,
+ 35670 - 11904: 0xF2FB,
+ 35671 - 11904: 0xF343,
+ 35672 - 11904: 0xC3D1,
+ 35673 - 11904: 0xC3D7,
+ 35674 - 11904: 0xC3D3,
+ 35676 - 11904: 0xC3D0,
+ 35677 - 11904: 0xF4D0,
+ 35678 - 11904: 0x9BC4,
+ 35679 - 11904: 0xC4B7,
+ 35680 - 11904: 0xF4CE,
+ 35682 - 11904: 0x9BFC,
+ 35683 - 11904: 0xF4D2,
+ 35685 - 11904: 0xF4D3,
+ 35686 - 11904: 0xC4B5,
+ 35687 - 11904: 0xF4D4,
+ 35688 - 11904: 0xF4D1,
+ 35689 - 11904: 0x964C,
+ 35690 - 11904: 0xF4CF,
+ 35691 - 11904: 0xC4B8,
+ 35692 - 11904: 0xC4B4,
+ 35693 - 11904: 0xF4D5,
+ 35695 - 11904: 0xC4B6,
+ 35696 - 11904: 0xC4B3,
+ 35700 - 11904: 0xC4FE,
+ 35703 - 11904: 0xC540,
+ 35704 - 11904: 0xF64E,
+ 35705 - 11904: 0xF64D,
+ 35706 - 11904: 0xF650,
+ 35707 - 11904: 0xF651,
+ 35709 - 11904: 0xC541,
+ 35710 - 11904: 0xF756,
+ 35711 - 11904: 0xF75B,
+ 35712 - 11904: 0xC5AA,
+ 35713 - 11904: 0x9AF6,
+ 35714 - 11904: 0xF758,
+ 35715 - 11904: 0x8CAE,
+ 35716 - 11904: 0xF757,
+ 35717 - 11904: 0xF75A,
+ 35718 - 11904: 0xF759,
+ 35720 - 11904: 0xF843,
+ 35722 - 11904: 0xC5DC,
+ 35723 - 11904: 0xF842,
+ 35724 - 11904: 0xF840,
+ 35726 - 11904: 0xF841,
+ 35727 - 11904: 0x87CB,
+ 35728 - 11904: 0x8FE7,
+ 35730 - 11904: 0xC5FE,
+ 35731 - 11904: 0xC5FD,
+ 35732 - 11904: 0xF8C1,
+ 35733 - 11904: 0xF8C2,
+ 35734 - 11904: 0xC640,
+ 35736 - 11904: 0xF94D,
+ 35737 - 11904: 0xF94E,
+ 35738 - 11904: 0xC667,
+ 35739 - 11904: 0x8FE8,
+ 35740 - 11904: 0xC66D,
+ 35742 - 11904: 0xF9A9,
+ 35743 - 11904: 0xF9C8,
+ 35744 - 11904: 0x8BE7,
+ 35774 - 11904: 0x897A,
+ 35810 - 11904: 0x897B,
+ 35895 - 11904: 0xA8A6,
+ 35897 - 11904: 0xD7CD,
+ 35899 - 11904: 0xD7CE,
+ 35900 - 11904: 0xE052,
+ 35901 - 11904: 0xE450,
+ 35902 - 11904: 0xE7E5,
+ 35903 - 11904: 0xC1C6,
+ 35905 - 11904: 0xC1C5,
+ 35906 - 11904: 0xF0EE,
+ 35907 - 11904: 0xF344,
+ 35909 - 11904: 0xF844,
+ 35910 - 11904: 0xA8A7,
+ 35911 - 11904: 0xD3DE,
+ 35912 - 11904: 0xB05A,
+ 35913 - 11904: 0xB361,
+ 35914 - 11904: 0xE054,
+ 35915 - 11904: 0xE053,
+ 35916 - 11904: 0xBDDC,
+ 35917 - 11904: 0xE7E6,
+ 35918 - 11904: 0xBDDD,
+ 35919 - 11904: 0xEEB1,
+ 35920 - 11904: 0xC2D7,
+ 35921 - 11904: 0x99DA,
+ 35924 - 11904: 0xC676,
+ 35925 - 11904: 0xA8A8,
+ 35926 - 11904: 0xCDCB,
+ 35927 - 11904: 0xD3DF,
+ 35930 - 11904: 0xB362,
+ 35932 - 11904: 0xD7CF,
+ 35933 - 11904: 0xD7D0,
+ 35935 - 11904: 0xDBE5,
+ 35937 - 11904: 0xB648,
+ 35938 - 11904: 0xB8E6,
+ 35940 - 11904: 0xE056,
+ 35941 - 11904: 0xE055,
+ 35942 - 11904: 0xE057,
+ 35944 - 11904: 0xE451,
+ 35945 - 11904: 0xE452,
+ 35946 - 11904: 0xBBA8,
+ 35947 - 11904: 0xBFDD,
+ 35948 - 11904: 0xBDDE,
+ 35949 - 11904: 0xBFDE,
+ 35951 - 11904: 0xEEB5,
+ 35952 - 11904: 0xEEB2,
+ 35953 - 11904: 0xEEB4,
+ 35954 - 11904: 0xEEB3,
+ 35955 - 11904: 0xC1C7,
+ 35957 - 11904: 0xF0EF,
+ 35958 - 11904: 0xF346,
+ 35959 - 11904: 0xF345,
+ 35960 - 11904: 0xCBA4,
+ 35961 - 11904: 0xB05C,
+ 35962 - 11904: 0xB05B,
+ 35963 - 11904: 0xD3E0,
+ 35965 - 11904: 0xD7D1,
+ 35968 - 11904: 0xDBE7,
+ 35969 - 11904: 0xDBE6,
+ 35970 - 11904: 0xB649,
+ 35972 - 11904: 0xE059,
+ 35973 - 11904: 0xE05A,
+ 35974 - 11904: 0xE058,
+ 35977 - 11904: 0xB8E8,
+ 35978 - 11904: 0xB8E7,
+ 35980 - 11904: 0xBBAA,
+ 35981 - 11904: 0xBBA9,
+ 35983 - 11904: 0xE7E7,
+ 35984 - 11904: 0xEBB3,
+ 35985 - 11904: 0xEBB1,
+ 35986 - 11904: 0xEBB2,
+ 35987 - 11904: 0xBFDF,
+ 35988 - 11904: 0xEEB7,
+ 35989 - 11904: 0xEEB6,
+ 35991 - 11904: 0xF0F2,
+ 35992 - 11904: 0xF0F1,
+ 35993 - 11904: 0xF0F0,
+ 35994 - 11904: 0xF347,
+ 35995 - 11904: 0x8FED,
+ 35996 - 11904: 0xF9AA,
+ 35997 - 11904: 0xA8A9,
+ 35998 - 11904: 0xAD73,
+ 35999 - 11904: 0x95C0,
+ 36000 - 11904: 0xAD74,
+ 36001 - 11904: 0xB05D,
+ 36002 - 11904: 0xB05E,
+ 36003 - 11904: 0xD3E2,
+ 36004 - 11904: 0xD3E1,
+ 36005 - 11904: 0xD7D2,
+ 36007 - 11904: 0xB368,
+ 36008 - 11904: 0xB366,
+ 36009 - 11904: 0xB363,
+ 36010 - 11904: 0xB367,
+ 36011 - 11904: 0xB365,
+ 36012 - 11904: 0xB364,
+ 36013 - 11904: 0xA0CB,
+ 36015 - 11904: 0xB64A,
+ 36016 - 11904: 0xDBEA,
+ 36018 - 11904: 0xB8ED,
+ 36019 - 11904: 0xB64C,
+ 36020 - 11904: 0xB651,
+ 36021 - 11904: 0xDBEC,
+ 36022 - 11904: 0xB653,
+ 36023 - 11904: 0xB652,
+ 36024 - 11904: 0xB655,
+ 36025 - 11904: 0xDBEB,
+ 36026 - 11904: 0xDBE8,
+ 36027 - 11904: 0xB64F,
+ 36028 - 11904: 0xB64B,
+ 36029 - 11904: 0xB64D,
+ 36030 - 11904: 0xDBE9,
+ 36031 - 11904: 0xB654,
+ 36032 - 11904: 0xB650,
+ 36033 - 11904: 0xB64E,
+ 36034 - 11904: 0xB8EF,
+ 36035 - 11904: 0xB8EE,
+ 36036 - 11904: 0xB8EC,
+ 36037 - 11904: 0xB8F0,
+ 36039 - 11904: 0xB8EA,
+ 36040 - 11904: 0xB8EB,
+ 36042 - 11904: 0xB8E9,
+ 36044 - 11904: 0xE05B,
+ 36045 - 11904: 0x9E48,
+ 36047 - 11904: 0xE454,
+ 36049 - 11904: 0xBBAC,
+ 36050 - 11904: 0xBBAD,
+ 36051 - 11904: 0xBBAB,
+ 36052 - 11904: 0x99DB,
+ 36053 - 11904: 0xE453,
+ 36054 - 11904: 0x8FF3,
+ 36055 - 11904: 0xE455,
+ 36057 - 11904: 0xE7EA,
+ 36058 - 11904: 0xE7EC,
+ 36059 - 11904: 0x8FF9,
+ 36060 - 11904: 0xBDE7,
+ 36061 - 11904: 0xE7ED,
+ 36062 - 11904: 0xBDE0,
+ 36063 - 11904: 0xE7E9,
+ 36064 - 11904: 0xBDDF,
+ 36065 - 11904: 0xBDE9,
+ 36066 - 11904: 0xBDE5,
+ 36067 - 11904: 0xBDE6,
+ 36068 - 11904: 0xBDE2,
+ 36069 - 11904: 0xE7E8,
+ 36070 - 11904: 0xBDE1,
+ 36071 - 11904: 0xE7EE,
+ 36072 - 11904: 0xE7EB,
+ 36073 - 11904: 0x95C1,
+ 36074 - 11904: 0xBDE8,
+ 36075 - 11904: 0xA04E,
+ 36076 - 11904: 0xBDE3,
+ 36077 - 11904: 0xBDE4,
+ 36078 - 11904: 0xEBB5,
+ 36080 - 11904: 0xEBB7,
+ 36081 - 11904: 0xEBB6,
+ 36082 - 11904: 0x99DC,
+ 36083 - 11904: 0xEBB8,
+ 36084 - 11904: 0xBFE0,
+ 36085 - 11904: 0xEBB4,
+ 36087 - 11904: 0xA064,
+ 36088 - 11904: 0xC1CB,
+ 36089 - 11904: 0xEEB8,
+ 36090 - 11904: 0xC1C8,
+ 36091 - 11904: 0xC1CC,
+ 36092 - 11904: 0xC1CA,
+ 36093 - 11904: 0xC1C9,
+ 36094 - 11904: 0xF0F3,
+ 36096 - 11904: 0xF0F6,
+ 36098 - 11904: 0xF0F5,
+ 36099 - 11904: 0x8FF7,
+ 36100 - 11904: 0xF0F4,
+ 36101 - 11904: 0xC2D8,
+ 36102 - 11904: 0xF348,
+ 36103 - 11904: 0xF349,
+ 36104 - 11904: 0xC3D8,
+ 36105 - 11904: 0xF34A,
+ 36106 - 11904: 0xC3D9,
+ 36107 - 11904: 0x89B0,
+ 36108 - 11904: 0xA048,
+ 36109 - 11904: 0xC4BA,
+ 36111 - 11904: 0xC4B9,
+ 36112 - 11904: 0xF652,
+ 36113 - 11904: 0x8FFB,
+ 36114 - 11904: 0x8FF6,
+ 36115 - 11904: 0xC542,
+ 36116 - 11904: 0xF653,
+ 36117 - 11904: 0xF75C,
+ 36118 - 11904: 0xC5AB,
+ 36119 - 11904: 0xC5AC,
+ 36120 - 11904: 0x9DDC,
+ 36121 - 11904: 0xF845,
+ 36123 - 11904: 0xC642,
+ 36124 - 11904: 0x99DD,
+ 36125 - 11904: 0x8BE8,
+ 36196 - 11904: 0xA8AA,
+ 36198 - 11904: 0xB36A,
+ 36199 - 11904: 0xB369,
+ 36200 - 11904: 0xE05C,
+ 36201 - 11904: 0xE05D,
+ 36203 - 11904: 0xBBAE,
+ 36204 - 11904: 0xEBB9,
+ 36205 - 11904: 0xBDEA,
+ 36206 - 11904: 0xEBBA,
+ 36207 - 11904: 0xEEB9,
+ 36208 - 11904: 0xA8AB,
+ 36210 - 11904: 0xD0B2,
+ 36211 - 11904: 0xAD76,
+ 36212 - 11904: 0xAD75,
+ 36214 - 11904: 0xD3E3,
+ 36215 - 11904: 0xB05F,
+ 36216 - 11904: 0xD3E4,
+ 36217 - 11904: 0xD7D5,
+ 36218 - 11904: 0x92C1,
+ 36219 - 11904: 0xD7D4,
+ 36221 - 11904: 0xD7D3,
+ 36224 - 11904: 0xDBEE,
+ 36225 - 11904: 0xB658,
+ 36226 - 11904: 0x9FD6,
+ 36228 - 11904: 0xDBED,
+ 36229 - 11904: 0xB657,
+ 36233 - 11904: 0xDBEF,
+ 36234 - 11904: 0xB656,
+ 36236 - 11904: 0xE05F,
+ 36237 - 11904: 0xE062,
+ 36238 - 11904: 0xE060,
+ 36239 - 11904: 0xE061,
+ 36240 - 11904: 0xE065,
+ 36241 - 11904: 0xE05E,
+ 36242 - 11904: 0xE066,
+ 36243 - 11904: 0xE063,
+ 36244 - 11904: 0xE064,
+ 36245 - 11904: 0xBBB0,
+ 36246 - 11904: 0xE456,
+ 36249 - 11904: 0xBBAF,
+ 36251 - 11904: 0xE7F2,
+ 36252 - 11904: 0xE7F0,
+ 36255 - 11904: 0xBDEB,
+ 36256 - 11904: 0xE7EF,
+ 36257 - 11904: 0xE7F1,
+ 36259 - 11904: 0xBDEC,
+ 36261 - 11904: 0xEBBB,
+ 36262 - 11904: 0xA0D2,
+ 36263 - 11904: 0xEBBC,
+ 36264 - 11904: 0xC1CD,
+ 36265 - 11904: 0x9040,
+ 36266 - 11904: 0xF34C,
+ 36267 - 11904: 0xF34E,
+ 36268 - 11904: 0xF34B,
+ 36269 - 11904: 0xF34D,
+ 36270 - 11904: 0xF4D6,
+ 36271 - 11904: 0xF654,
+ 36274 - 11904: 0xF96F,
+ 36275 - 11904: 0xA8AC,
+ 36276 - 11904: 0xAD77,
+ 36277 - 11904: 0xD3E5,
+ 36278 - 11904: 0xD3E7,
+ 36279 - 11904: 0xD3E6,
+ 36281 - 11904: 0xD7D8,
+ 36282 - 11904: 0xB36C,
+ 36284 - 11904: 0xD7D6,
+ 36286 - 11904: 0xB36B,
+ 36287 - 11904: 0xD7D9,
+ 36288 - 11904: 0x8AC4,
+ 36289 - 11904: 0xD7DA,
+ 36290 - 11904: 0xD7D7,
+ 36291 - 11904: 0x99E0,
+ 36293 - 11904: 0xDBFB,
+ 36294 - 11904: 0xB660,
+ 36295 - 11904: 0xDBF3,
+ 36296 - 11904: 0xDBF9,
+ 36299 - 11904: 0xB65B,
+ 36300 - 11904: 0xB65E,
+ 36301 - 11904: 0xDBF2,
+ 36302 - 11904: 0xB659,
+ 36303 - 11904: 0xDBF6,
+ 36304 - 11904: 0xE06C,
+ 36305 - 11904: 0xB65D,
+ 36307 - 11904: 0xDBF1,
+ 36308 - 11904: 0x9FF0,
+ 36309 - 11904: 0xDBF7,
+ 36310 - 11904: 0xDBF4,
+ 36311 - 11904: 0xDBFA,
+ 36312 - 11904: 0xDBF0,
+ 36313 - 11904: 0xDBF8,
+ 36314 - 11904: 0xB65C,
+ 36315 - 11904: 0xB65F,
+ 36316 - 11904: 0xDBF5,
+ 36317 - 11904: 0xB65A,
+ 36319 - 11904: 0xB8F2,
+ 36320 - 11904: 0xE068,
+ 36321 - 11904: 0xB8F1,
+ 36322 - 11904: 0xE06F,
+ 36323 - 11904: 0xE06E,
+ 36324 - 11904: 0xB8F8,
+ 36326 - 11904: 0xB8F9,
+ 36327 - 11904: 0xE070,
+ 36328 - 11904: 0xB8F3,
+ 36329 - 11904: 0xE06D,
+ 36330 - 11904: 0xB8F7,
+ 36331 - 11904: 0xE072,
+ 36332 - 11904: 0xE069,
+ 36334 - 11904: 0xE06B,
+ 36335 - 11904: 0xB8F4,
+ 36336 - 11904: 0xE067,
+ 36337 - 11904: 0xE06A,
+ 36338 - 11904: 0xE071,
+ 36339 - 11904: 0xB8F5,
+ 36340 - 11904: 0xE073,
+ 36346 - 11904: 0xB8F6,
+ 36348 - 11904: 0xBBB1,
+ 36349 - 11904: 0xE45B,
+ 36350 - 11904: 0xE461,
+ 36351 - 11904: 0xE459,
+ 36352 - 11904: 0xE462,
+ 36353 - 11904: 0x9FF3,
+ 36354 - 11904: 0xE458,
+ 36355 - 11904: 0xE45D,
+ 36356 - 11904: 0xE463,
+ 36357 - 11904: 0xE460,
+ 36358 - 11904: 0xE45F,
+ 36359 - 11904: 0xE45E,
+ 36361 - 11904: 0xE457,
+ 36362 - 11904: 0xE45C,
+ 36365 - 11904: 0xE45A,
+ 36366 - 11904: 0x9DBF,
+ 36367 - 11904: 0xBDF1,
+ 36368 - 11904: 0xBDEE,
+ 36369 - 11904: 0xE7FB,
+ 36370 - 11904: 0xE841,
+ 36371 - 11904: 0xE843,
+ 36372 - 11904: 0xE840,
+ 36373 - 11904: 0xE7F8,
+ 36374 - 11904: 0xE7FA,
+ 36375 - 11904: 0xE845,
+ 36376 - 11904: 0xE842,
+ 36377 - 11904: 0xE7FC,
+ 36378 - 11904: 0xE846,
+ 36379 - 11904: 0xE7F9,
+ 36380 - 11904: 0xE844,
+ 36381 - 11904: 0xBDEF,
+ 36382 - 11904: 0xBDF5,
+ 36383 - 11904: 0xBDF3,
+ 36384 - 11904: 0xE7F3,
+ 36385 - 11904: 0xBDF4,
+ 36386 - 11904: 0xBDF0,
+ 36387 - 11904: 0xE7F4,
+ 36388 - 11904: 0xE7F6,
+ 36389 - 11904: 0xE7F5,
+ 36390 - 11904: 0xE7FD,
+ 36391 - 11904: 0xE7FE,
+ 36392 - 11904: 0x9FF6,
+ 36393 - 11904: 0xBDF2,
+ 36394 - 11904: 0x95C8,
+ 36395 - 11904: 0xBDED,
+ 36397 - 11904: 0x9E5A,
+ 36398 - 11904: 0xE7F7,
+ 36400 - 11904: 0xEBC6,
+ 36401 - 11904: 0xBFE2,
+ 36403 - 11904: 0xEBBD,
+ 36404 - 11904: 0xBFE3,
+ 36405 - 11904: 0xBFE6,
+ 36406 - 11904: 0xEBC2,
+ 36408 - 11904: 0xEBBF,
+ 36409 - 11904: 0xBFE5,
+ 36410 - 11904: 0x99E3,
+ 36412 - 11904: 0xEBC3,
+ 36413 - 11904: 0xEBC4,
+ 36414 - 11904: 0xEBBE,
+ 36415 - 11904: 0xEBC7,
+ 36416 - 11904: 0xEBC0,
+ 36417 - 11904: 0xEBC5,
+ 36418 - 11904: 0xBFE4,
+ 36420 - 11904: 0xBFE1,
+ 36421 - 11904: 0xEBC1,
+ 36422 - 11904: 0x8A4A,
+ 36423 - 11904: 0xEEBF,
+ 36424 - 11904: 0xC1D0,
+ 36425 - 11904: 0xC1CE,
+ 36426 - 11904: 0xC1D1,
+ 36427 - 11904: 0xC1CF,
+ 36428 - 11904: 0xEEBE,
+ 36429 - 11904: 0xEEBB,
+ 36430 - 11904: 0xEEBA,
+ 36431 - 11904: 0x9FF1,
+ 36432 - 11904: 0xEEBD,
+ 36435 - 11904: 0xEEBC,
+ 36436 - 11904: 0xF145,
+ 36437 - 11904: 0xC2DE,
+ 36438 - 11904: 0xF0FB,
+ 36439 - 11904: 0xF0FA,
+ 36441 - 11904: 0xC2D9,
+ 36442 - 11904: 0xF141,
+ 36443 - 11904: 0xF140,
+ 36444 - 11904: 0xF0F7,
+ 36445 - 11904: 0xF143,
+ 36446 - 11904: 0xF0FC,
+ 36447 - 11904: 0xC2DD,
+ 36448 - 11904: 0xF0F9,
+ 36449 - 11904: 0xF142,
+ 36450 - 11904: 0xF0F8,
+ 36451 - 11904: 0xC2DA,
+ 36452 - 11904: 0xC2DC,
+ 36453 - 11904: 0xF0FD,
+ 36454 - 11904: 0xC2DB,
+ 36455 - 11904: 0xF0FE,
+ 36456 - 11904: 0x8AA7,
+ 36457 - 11904: 0xF144,
+ 36458 - 11904: 0xF352,
+ 36460 - 11904: 0xC3DE,
+ 36461 - 11904: 0xF34F,
+ 36463 - 11904: 0xF353,
+ 36465 - 11904: 0x99E6,
+ 36466 - 11904: 0xC3DB,
+ 36467 - 11904: 0xF351,
+ 36468 - 11904: 0xC3E0,
+ 36469 - 11904: 0x9FF7,
+ 36470 - 11904: 0xC3DD,
+ 36471 - 11904: 0x9FED,
+ 36472 - 11904: 0xF350,
+ 36474 - 11904: 0xC3DF,
+ 36475 - 11904: 0xF354,
+ 36476 - 11904: 0xC3DA,
+ 36478 - 11904: 0x8A5C,
+ 36480 - 11904: 0x9DAE,
+ 36481 - 11904: 0xC4BC,
+ 36482 - 11904: 0xC4BE,
+ 36484 - 11904: 0xF4D9,
+ 36485 - 11904: 0xC4BD,
+ 36486 - 11904: 0xF4D7,
+ 36487 - 11904: 0xC3DC,
+ 36488 - 11904: 0xF4D8,
+ 36489 - 11904: 0xC4BB,
+ 36490 - 11904: 0xC543,
+ 36491 - 11904: 0xC545,
+ 36492 - 11904: 0xF656,
+ 36493 - 11904: 0xC544,
+ 36494 - 11904: 0xF655,
+ 36496 - 11904: 0xF761,
+ 36497 - 11904: 0xC5AD,
+ 36498 - 11904: 0xF760,
+ 36499 - 11904: 0xC5AE,
+ 36500 - 11904: 0xF75E,
+ 36501 - 11904: 0xF75D,
+ 36502 - 11904: 0xF762,
+ 36503 - 11904: 0xF763,
+ 36504 - 11904: 0xF846,
+ 36506 - 11904: 0xF75F,
+ 36509 - 11904: 0xF8C6,
+ 36510 - 11904: 0xF8C3,
+ 36511 - 11904: 0xF8C4,
+ 36512 - 11904: 0xF8C5,
+ 36513 - 11904: 0xC65C,
+ 36515 - 11904: 0xF951,
+ 36516 - 11904: 0xF950,
+ 36517 - 11904: 0xF94F,
+ 36518 - 11904: 0xF970,
+ 36519 - 11904: 0x95C9,
+ 36520 - 11904: 0xF9BE,
+ 36521 - 11904: 0xF9AB,
+ 36522 - 11904: 0xC66E,
+ 36523 - 11904: 0xA8AD,
+ 36524 - 11904: 0xB060,
+ 36525 - 11904: 0x9048,
+ 36528 - 11904: 0x99E8,
+ 36530 - 11904: 0xB8FA,
+ 36534 - 11904: 0x9049,
+ 36537 - 11904: 0x8CBA,
+ 36538 - 11904: 0xBDF6,
+ 36540 - 11904: 0x90B1,
+ 36541 - 11904: 0xEBC8,
+ 36544 - 11904: 0xC2DF,
+ 36546 - 11904: 0xF355,
+ 36547 - 11904: 0x904A,
+ 36553 - 11904: 0xF9AC,
+ 36554 - 11904: 0xA8AE,
+ 36555 - 11904: 0xAAEE,
+ 36556 - 11904: 0xAD79,
+ 36557 - 11904: 0xAD78,
+ 36558 - 11904: 0x99EA,
+ 36559 - 11904: 0xB063,
+ 36561 - 11904: 0xD3E8,
+ 36562 - 11904: 0xB061,
+ 36563 - 11904: 0xD3E9,
+ 36564 - 11904: 0xB062,
+ 36567 - 11904: 0xD7DF,
+ 36568 - 11904: 0xD7DB,
+ 36570 - 11904: 0x9BD1,
+ 36571 - 11904: 0xB36D,
+ 36572 - 11904: 0xD7DE,
+ 36573 - 11904: 0xD7DD,
+ 36574 - 11904: 0xD7DC,
+ 36575 - 11904: 0xB36E,
+ 36576 - 11904: 0xD7E0,
+ 36577 - 11904: 0xD7E1,
+ 36578 - 11904: 0x99EB,
+ 36580 - 11904: 0x99EC,
+ 36581 - 11904: 0xDC43,
+ 36582 - 11904: 0xDC41,
+ 36583 - 11904: 0xDC45,
+ 36584 - 11904: 0xDC46,
+ 36585 - 11904: 0xDC4C,
+ 36587 - 11904: 0xDC48,
+ 36588 - 11904: 0xDC4A,
+ 36589 - 11904: 0x99ED,
+ 36590 - 11904: 0xDC42,
+ 36591 - 11904: 0xDBFC,
+ 36593 - 11904: 0xDC49,
+ 36594 - 11904: 0x99EE,
+ 36596 - 11904: 0xDC4B,
+ 36597 - 11904: 0xDC44,
+ 36598 - 11904: 0xDC47,
+ 36599 - 11904: 0xDBFD,
+ 36600 - 11904: 0xB662,
+ 36601 - 11904: 0xDC40,
+ 36602 - 11904: 0xDBFE,
+ 36603 - 11904: 0xB661,
+ 36604 - 11904: 0xB663,
+ 36606 - 11904: 0xB8FD,
+ 36607 - 11904: 0xE075,
+ 36608 - 11904: 0xE077,
+ 36609 - 11904: 0xE076,
+ 36610 - 11904: 0xE07B,
+ 36611 - 11904: 0xB8FB,
+ 36613 - 11904: 0xE078,
+ 36614 - 11904: 0xE074,
+ 36615 - 11904: 0xE079,
+ 36616 - 11904: 0xE07A,
+ 36617 - 11904: 0xB8FC,
+ 36618 - 11904: 0xB8FE,
+ 36619 - 11904: 0xE07C,
+ 36621 - 11904: 0xE467,
+ 36622 - 11904: 0xE466,
+ 36624 - 11904: 0xE464,
+ 36625 - 11904: 0xE465,
+ 36626 - 11904: 0xBBB3,
+ 36627 - 11904: 0xBBB5,
+ 36628 - 11904: 0xBBB2,
+ 36629 - 11904: 0xBBB4,
+ 36630 - 11904: 0xE84D,
+ 36631 - 11904: 0xE84E,
+ 36632 - 11904: 0xE849,
+ 36633 - 11904: 0x904C,
+ 36634 - 11904: 0xE84A,
+ 36635 - 11904: 0xBDF8,
+ 36636 - 11904: 0xBDFD,
+ 36637 - 11904: 0xBDF7,
+ 36638 - 11904: 0xBDFE,
+ 36639 - 11904: 0xBDF9,
+ 36640 - 11904: 0xE84B,
+ 36643 - 11904: 0xE84C,
+ 36644 - 11904: 0xE848,
+ 36645 - 11904: 0xBE40,
+ 36646 - 11904: 0xBDFB,
+ 36649 - 11904: 0xBDFA,
+ 36650 - 11904: 0xBDFC,
+ 36652 - 11904: 0xE847,
+ 36653 - 11904: 0x904D,
+ 36654 - 11904: 0xEBCA,
+ 36655 - 11904: 0xBFE8,
+ 36656 - 11904: 0x95CB,
+ 36658 - 11904: 0xEBCC,
+ 36659 - 11904: 0xBFEA,
+ 36660 - 11904: 0xEBCF,
+ 36661 - 11904: 0xEBCB,
+ 36662 - 11904: 0xEBC9,
+ 36663 - 11904: 0xEBCE,
+ 36664 - 11904: 0xBFE9,
+ 36665 - 11904: 0xEBCD,
+ 36667 - 11904: 0xBFE7,
+ 36670 - 11904: 0xC1D3,
+ 36671 - 11904: 0xC1D6,
+ 36672 - 11904: 0xEEC1,
+ 36673 - 11904: 0x97E2,
+ 36674 - 11904: 0xC1D4,
+ 36675 - 11904: 0xEEC0,
+ 36676 - 11904: 0xC1D2,
+ 36677 - 11904: 0xC1D5,
+ 36678 - 11904: 0xF146,
+ 36679 - 11904: 0xF147,
+ 36680 - 11904: 0xF148,
+ 36681 - 11904: 0xC2E0,
+ 36682 - 11904: 0x95CC,
+ 36683 - 11904: 0xF149,
+ 36685 - 11904: 0xC2E1,
+ 36686 - 11904: 0xC3E2,
+ 36687 - 11904: 0xF358,
+ 36688 - 11904: 0xF359,
+ 36689 - 11904: 0xF357,
+ 36690 - 11904: 0xF356,
+ 36691 - 11904: 0xF35A,
+ 36692 - 11904: 0xC3E1,
+ 36693 - 11904: 0xF4DD,
+ 36694 - 11904: 0xF4DB,
+ 36695 - 11904: 0xF4DC,
+ 36696 - 11904: 0xF4DE,
+ 36697 - 11904: 0xF4DA,
+ 36698 - 11904: 0xF4DF,
+ 36699 - 11904: 0xF658,
+ 36700 - 11904: 0x9F78,
+ 36701 - 11904: 0xF659,
+ 36702 - 11904: 0xF657,
+ 36703 - 11904: 0xC546,
+ 36704 - 11904: 0xF764,
+ 36705 - 11904: 0xC5AF,
+ 36706 - 11904: 0xF765,
+ 36707 - 11904: 0xF848,
+ 36708 - 11904: 0xF847,
+ 36710 - 11904: 0x897C,
+ 36711 - 11904: 0x897D,
+ 36718 - 11904: 0x897E,
+ 36755 - 11904: 0x995D,
+ 36763 - 11904: 0xA8AF,
+ 36764 - 11904: 0xB664,
+ 36767 - 11904: 0xB940,
+ 36768 - 11904: 0x9B5A,
+ 36771 - 11904: 0xBBB6,
+ 36773 - 11904: 0x9050,
+ 36774 - 11904: 0xBFEC,
+ 36775 - 11904: 0x8C4F,
+ 36776 - 11904: 0xBFEB,
+ 36781 - 11904: 0xC3E3,
+ 36782 - 11904: 0xC47C,
+ 36783 - 11904: 0xC547,
+ 36784 - 11904: 0xA8B0,
+ 36785 - 11904: 0xB064,
+ 36786 - 11904: 0xB941,
+ 36787 - 11904: 0x9054,
+ 36788 - 11904: 0xF35B,
+ 36789 - 11904: 0xC6D6,
+ 36790 - 11904: 0x9AA8,
+ 36791 - 11904: 0x99EF,
+ 36792 - 11904: 0xFEEB,
+ 36793 - 11904: 0x9DA3,
+ 36794 - 11904: 0x9DA1,
+ 36795 - 11904: 0x9943,
+ 36796 - 11904: 0x9945,
+ 36798 - 11904: 0x9D7D,
+ 36799 - 11904: 0xCBA6,
+ 36801 - 11904: 0x99F0,
+ 36802 - 11904: 0xA8B1,
+ 36804 - 11904: 0xA8B4,
+ 36805 - 11904: 0xA8B3,
+ 36806 - 11904: 0xA8B2,
+ 36809 - 11904: 0xCBA5,
+ 36810 - 11904: 0x99F1,
+ 36811 - 11904: 0xCDCD,
+ 36812 - 11904: 0x99F2,
+ 36813 - 11904: 0xCDCF,
+ 36814 - 11904: 0xAAEF,
+ 36815 - 11904: 0x8CBC,
+ 36816 - 11904: 0x9D60,
+ 36817 - 11904: 0xAAF1,
+ 36818 - 11904: 0xCDCC,
+ 36819 - 11904: 0xCDCE,
+ 36820 - 11904: 0xAAF0,
+ 36821 - 11904: 0xCDD1,
+ 36822 - 11904: 0xCDD0,
+ 36823 - 11904: 0xCDD2,
+ 36826 - 11904: 0xA0A3,
+ 36832 - 11904: 0xD0B6,
+ 36833 - 11904: 0xD0B4,
+ 36834 - 11904: 0xAD7C,
+ 36835 - 11904: 0xD0B3,
+ 36836 - 11904: 0xADA3,
+ 36837 - 11904: 0xAD7E,
+ 36838 - 11904: 0xAD7B,
+ 36840 - 11904: 0xADA4,
+ 36842 - 11904: 0xAD7D,
+ 36843 - 11904: 0xADA2,
+ 36845 - 11904: 0xADA1,
+ 36846 - 11904: 0xD0B5,
+ 36848 - 11904: 0xAD7A,
+ 36852 - 11904: 0xB06A,
+ 36853 - 11904: 0xD3EB,
+ 36854 - 11904: 0xD3F1,
+ 36855 - 11904: 0xB067,
+ 36856 - 11904: 0xB06E,
+ 36857 - 11904: 0x905B,
+ 36858 - 11904: 0xB069,
+ 36859 - 11904: 0xD3EE,
+ 36860 - 11904: 0xD3F0,
+ 36861 - 11904: 0xB06C,
+ 36862 - 11904: 0xD3EA,
+ 36863 - 11904: 0xD3ED,
+ 36864 - 11904: 0xB068,
+ 36865 - 11904: 0xB065,
+ 36866 - 11904: 0xD3EC,
+ 36867 - 11904: 0xB06B,
+ 36868 - 11904: 0xD3EF,
+ 36869 - 11904: 0xB06D,
+ 36870 - 11904: 0xB066,
+ 36872 - 11904: 0x9EDB,
+ 36875 - 11904: 0xD7E3,
+ 36876 - 11904: 0xD7E6,
+ 36877 - 11904: 0xB370,
+ 36879 - 11904: 0xB37A,
+ 36880 - 11904: 0xB376,
+ 36881 - 11904: 0xD7E4,
+ 36882 - 11904: 0x9D79,
+ 36884 - 11904: 0xB37E,
+ 36885 - 11904: 0xB377,
+ 36886 - 11904: 0xB37C,
+ 36887 - 11904: 0xB372,
+ 36889 - 11904: 0xB36F,
+ 36890 - 11904: 0xB371,
+ 36891 - 11904: 0xB37D,
+ 36892 - 11904: 0xD7E5,
+ 36893 - 11904: 0xB375,
+ 36894 - 11904: 0xB378,
+ 36895 - 11904: 0xB374,
+ 36896 - 11904: 0xB379,
+ 36897 - 11904: 0xD7E7,
+ 36898 - 11904: 0xB37B,
+ 36899 - 11904: 0xB373,
+ 36900 - 11904: 0xD7E2,
+ 36909 - 11904: 0xDC4D,
+ 36910 - 11904: 0xB665,
+ 36911 - 11904: 0xDC4F,
+ 36913 - 11904: 0xB667,
+ 36914 - 11904: 0xB669,
+ 36915 - 11904: 0x99F3,
+ 36916 - 11904: 0xDC4E,
+ 36917 - 11904: 0xB666,
+ 36918 - 11904: 0xB66A,
+ 36919 - 11904: 0x9062,
+ 36920 - 11904: 0xB668,
+ 36924 - 11904: 0xB947,
+ 36925 - 11904: 0xE0A3,
+ 36926 - 11904: 0xB94F,
+ 36927 - 11904: 0xE07E,
+ 36929 - 11904: 0xB950,
+ 36930 - 11904: 0xB945,
+ 36932 - 11904: 0xE0A1,
+ 36934 - 11904: 0x87BD,
+ 36935 - 11904: 0xB94A,
+ 36937 - 11904: 0xE0A2,
+ 36938 - 11904: 0xB943,
+ 36939 - 11904: 0xB942,
+ 36940 - 11904: 0x9F55,
+ 36941 - 11904: 0xB94D,
+ 36942 - 11904: 0xB94C,
+ 36943 - 11904: 0xB94B,
+ 36944 - 11904: 0xB949,
+ 36945 - 11904: 0xB94E,
+ 36946 - 11904: 0xE07D,
+ 36947 - 11904: 0xB944,
+ 36948 - 11904: 0xB946,
+ 36949 - 11904: 0xB948,
+ 36950 - 11904: 0x9BF9,
+ 36952 - 11904: 0xBBB8,
+ 36953 - 11904: 0xBBBB,
+ 36955 - 11904: 0xBBBF,
+ 36956 - 11904: 0xBBB9,
+ 36957 - 11904: 0xBBBE,
+ 36958 - 11904: 0xBBBC,
+ 36960 - 11904: 0xBBB7,
+ 36961 - 11904: 0x9065,
+ 36962 - 11904: 0xBBBD,
+ 36963 - 11904: 0xBBBA,
+ 36964 - 11904: 0x96E0,
+ 36967 - 11904: 0xE852,
+ 36968 - 11904: 0xBE43,
+ 36969 - 11904: 0xBE41,
+ 36971 - 11904: 0xE853,
+ 36972 - 11904: 0x98BE,
+ 36973 - 11904: 0xBE44,
+ 36974 - 11904: 0xBE42,
+ 36975 - 11904: 0xE851,
+ 36976 - 11904: 0xE850,
+ 36978 - 11904: 0xBFF0,
+ 36979 - 11904: 0xE84F,
+ 36980 - 11904: 0xBFEE,
+ 36981 - 11904: 0xBFED,
+ 36982 - 11904: 0xEBD0,
+ 36983 - 11904: 0xBE45,
+ 36984 - 11904: 0xBFEF,
+ 36985 - 11904: 0xEBD1,
+ 36986 - 11904: 0xBFF2,
+ 36987 - 11904: 0xEBD2,
+ 36988 - 11904: 0xBFF1,
+ 36989 - 11904: 0xC1D8,
+ 36990 - 11904: 0xEEC3,
+ 36991 - 11904: 0xC1D7,
+ 36992 - 11904: 0xC1DC,
+ 36993 - 11904: 0xC1DA,
+ 36994 - 11904: 0xC1DB,
+ 36995 - 11904: 0xC2E3,
+ 36996 - 11904: 0xC1D9,
+ 36997 - 11904: 0xEEC2,
+ 36998 - 11904: 0xEBD3,
+ 36999 - 11904: 0xC2E2,
+ 37000 - 11904: 0xC2E4,
+ 37002 - 11904: 0xC3E4,
+ 37003 - 11904: 0xC3E5,
+ 37005 - 11904: 0xF4E0,
+ 37007 - 11904: 0xC5DE,
+ 37008 - 11904: 0xC5DD,
+ 37009 - 11904: 0xA8B6,
+ 37012 - 11904: 0xCA55,
+ 37013 - 11904: 0xB06F,
+ 37015 - 11904: 0xCA52,
+ 37016 - 11904: 0xCA53,
+ 37017 - 11904: 0xCA51,
+ 37019 - 11904: 0xCA54,
+ 37022 - 11904: 0xCBAA,
+ 37023 - 11904: 0xCBA7,
+ 37024 - 11904: 0xCBAC,
+ 37025 - 11904: 0xCBA8,
+ 37026 - 11904: 0xA8B7,
+ 37027 - 11904: 0xA8BA,
+ 37029 - 11904: 0xCBA9,
+ 37030 - 11904: 0xA8B9,
+ 37031 - 11904: 0xCBAB,
+ 37032 - 11904: 0x9068,
+ 37034 - 11904: 0xA8B8,
+ 37038 - 11904: 0x906C,
+ 37039 - 11904: 0xCDD5,
+ 37040 - 11904: 0xCDD7,
+ 37041 - 11904: 0xAAF4,
+ 37042 - 11904: 0xCDD3,
+ 37043 - 11904: 0xCDD6,
+ 37044 - 11904: 0xCDD4,
+ 37045 - 11904: 0xAAF2,
+ 37046 - 11904: 0xAAF5,
+ 37048 - 11904: 0xAAF3,
+ 37051 - 11904: 0x95D8,
+ 37053 - 11904: 0xD0B8,
+ 37054 - 11904: 0xD0BC,
+ 37055 - 11904: 0xD0B9,
+ 37057 - 11904: 0xADA7,
+ 37059 - 11904: 0xADA8,
+ 37060 - 11904: 0x906A,
+ 37061 - 11904: 0xD0BB,
+ 37063 - 11904: 0xD0BD,
+ 37064 - 11904: 0xD0BF,
+ 37066 - 11904: 0xADA5,
+ 37067 - 11904: 0xD0BE,
+ 37070 - 11904: 0xADA6,
+ 37076 - 11904: 0xD7EE,
+ 37077 - 11904: 0xD0BA,
+ 37078 - 11904: 0xD3F2,
+ 37079 - 11904: 0xD3FB,
+ 37080 - 11904: 0xD3F9,
+ 37081 - 11904: 0xD3F4,
+ 37082 - 11904: 0xD3F5,
+ 37083 - 11904: 0xD3FA,
+ 37084 - 11904: 0xD3FC,
+ 37085 - 11904: 0xB071,
+ 37087 - 11904: 0xD3F7,
+ 37088 - 11904: 0xD3F3,
+ 37089 - 11904: 0xB070,
+ 37090 - 11904: 0xB072,
+ 37091 - 11904: 0xD3F6,
+ 37092 - 11904: 0xD3FD,
+ 37093 - 11904: 0xD3F8,
+ 37096 - 11904: 0xB3A1,
+ 37097 - 11904: 0xD7F1,
+ 37098 - 11904: 0xD7E9,
+ 37099 - 11904: 0xD7EF,
+ 37100 - 11904: 0xD7F0,
+ 37101 - 11904: 0xB3A2,
+ 37103 - 11904: 0xD7E8,
+ 37104 - 11904: 0xD7EA,
+ 37105 - 11904: 0xD0B7,
+ 37106 - 11904: 0xD7EC,
+ 37107 - 11904: 0xD7ED,
+ 37108 - 11904: 0xD7EB,
+ 37109 - 11904: 0xB66C,
+ 37113 - 11904: 0xDC56,
+ 37114 - 11904: 0xEBD4,
+ 37115 - 11904: 0xDC57,
+ 37116 - 11904: 0xDC54,
+ 37117 - 11904: 0xB3A3,
+ 37118 - 11904: 0xB66E,
+ 37119 - 11904: 0xDC53,
+ 37120 - 11904: 0xDC59,
+ 37121 - 11904: 0xDC58,
+ 37122 - 11904: 0xB66B,
+ 37123 - 11904: 0xDC5C,
+ 37124 - 11904: 0xDC52,
+ 37125 - 11904: 0xDC5B,
+ 37126 - 11904: 0xDC50,
+ 37127 - 11904: 0xDC5A,
+ 37128 - 11904: 0xDC55,
+ 37129 - 11904: 0xB66D,
+ 37131 - 11904: 0xE0AA,
+ 37133 - 11904: 0xE0A5,
+ 37134 - 11904: 0xE0AB,
+ 37135 - 11904: 0xE0A6,
+ 37136 - 11904: 0xE0A4,
+ 37137 - 11904: 0xE0A7,
+ 37138 - 11904: 0xB951,
+ 37140 - 11904: 0xE0A9,
+ 37142 - 11904: 0xE0A8,
+ 37143 - 11904: 0xB952,
+ 37144 - 11904: 0xBBC1,
+ 37145 - 11904: 0xBBC0,
+ 37146 - 11904: 0xE46E,
+ 37147 - 11904: 0xE471,
+ 37148 - 11904: 0xE469,
+ 37149 - 11904: 0xE46D,
+ 37150 - 11904: 0xBBC2,
+ 37151 - 11904: 0xE46C,
+ 37152 - 11904: 0xE46A,
+ 37153 - 11904: 0xE470,
+ 37154 - 11904: 0xE46B,
+ 37155 - 11904: 0xE468,
+ 37156 - 11904: 0xE46F,
+ 37158 - 11904: 0xE859,
+ 37159 - 11904: 0xBE48,
+ 37160 - 11904: 0xF14A,
+ 37161 - 11904: 0xE856,
+ 37162 - 11904: 0xE857,
+ 37163 - 11904: 0xE855,
+ 37164 - 11904: 0xDC51,
+ 37165 - 11904: 0xBE47,
+ 37166 - 11904: 0xE85A,
+ 37167 - 11904: 0xE854,
+ 37168 - 11904: 0xBE46,
+ 37169 - 11904: 0xBE49,
+ 37170 - 11904: 0xE858,
+ 37171 - 11904: 0xEBD5,
+ 37172 - 11904: 0xBFF3,
+ 37173 - 11904: 0xEBD6,
+ 37174 - 11904: 0xEBD7,
+ 37176 - 11904: 0xEEC4,
+ 37177 - 11904: 0xC1DD,
+ 37178 - 11904: 0xF14B,
+ 37179 - 11904: 0xF14C,
+ 37182 - 11904: 0xF14D,
+ 37183 - 11904: 0xF35D,
+ 37184 - 11904: 0xF35C,
+ 37185 - 11904: 0xF4E2,
+ 37187 - 11904: 0xF4E1,
+ 37188 - 11904: 0xF65B,
+ 37189 - 11904: 0xF65C,
+ 37190 - 11904: 0xF65A,
+ 37191 - 11904: 0xF766,
+ 37192 - 11904: 0xC5B0,
+ 37193 - 11904: 0xA8BB,
+ 37194 - 11904: 0xADAA,
+ 37195 - 11904: 0xADA9,
+ 37196 - 11904: 0xB075,
+ 37197 - 11904: 0xB074,
+ 37198 - 11904: 0xD440,
+ 37199 - 11904: 0xD441,
+ 37200 - 11904: 0xD3FE,
+ 37201 - 11904: 0x9FB2,
+ 37202 - 11904: 0xB073,
+ 37203 - 11904: 0xD7F5,
+ 37205 - 11904: 0xD7F6,
+ 37206 - 11904: 0xD7F2,
+ 37207 - 11904: 0xB3A4,
+ 37208 - 11904: 0xD7F3,
+ 37209 - 11904: 0x9FAE,
+ 37210 - 11904: 0xD7F4,
+ 37212 - 11904: 0x9FB0,
+ 37214 - 11904: 0x89AD,
+ 37215 - 11904: 0xDC5F,
+ 37216 - 11904: 0xDC61,
+ 37217 - 11904: 0xDC5D,
+ 37218 - 11904: 0xDC60,
+ 37219 - 11904: 0xB66F,
+ 37220 - 11904: 0xDC5E,
+ 37221 - 11904: 0xB670,
+ 37223 - 11904: 0x906E,
+ 37224 - 11904: 0xDD73,
+ 37225 - 11904: 0xB955,
+ 37226 - 11904: 0xB954,
+ 37228 - 11904: 0xB953,
+ 37230 - 11904: 0xE0AC,
+ 37231 - 11904: 0xE0AD,
+ 37232 - 11904: 0x9E71,
+ 37234 - 11904: 0xE473,
+ 37235 - 11904: 0xE475,
+ 37236 - 11904: 0xBBC6,
+ 37237 - 11904: 0xBBC3,
+ 37238 - 11904: 0x9E4A,
+ 37239 - 11904: 0xBBC5,
+ 37240 - 11904: 0xBBC4,
+ 37241 - 11904: 0xE474,
+ 37242 - 11904: 0xE472,
+ 37244 - 11904: 0x9FDC,
+ 37248 - 11904: 0xE861,
+ 37249 - 11904: 0xE85E,
+ 37250 - 11904: 0xE85F,
+ 37251 - 11904: 0xBE4D,
+ 37252 - 11904: 0xE860,
+ 37253 - 11904: 0xE85B,
+ 37254 - 11904: 0xE85C,
+ 37255 - 11904: 0xBE4A,
+ 37257 - 11904: 0xBE4B,
+ 37258 - 11904: 0xE85D,
+ 37259 - 11904: 0xBE4C,
+ 37260 - 11904: 0x89AB,
+ 37261 - 11904: 0xEBDB,
+ 37262 - 11904: 0x9FB8,
+ 37263 - 11904: 0xEBDC,
+ 37264 - 11904: 0xEBD9,
+ 37265 - 11904: 0xEBDA,
+ 37266 - 11904: 0xBFF4,
+ 37267 - 11904: 0xEBD8,
+ 37273 - 11904: 0xEEC8,
+ 37274 - 11904: 0xEEC5,
+ 37275 - 11904: 0xEEC7,
+ 37276 - 11904: 0xC1E0,
+ 37277 - 11904: 0xEECB,
+ 37278 - 11904: 0xC1DF,
+ 37279 - 11904: 0xEEC9,
+ 37280 - 11904: 0xEECC,
+ 37281 - 11904: 0xEECA,
+ 37282 - 11904: 0xEEC6,
+ 37283 - 11904: 0xC1DE,
+ 37285 - 11904: 0xF14F,
+ 37287 - 11904: 0xF150,
+ 37288 - 11904: 0xF14E,
+ 37289 - 11904: 0x9070,
+ 37290 - 11904: 0xF152,
+ 37291 - 11904: 0xC2E5,
+ 37292 - 11904: 0xC2E6,
+ 37293 - 11904: 0xF35F,
+ 37294 - 11904: 0xC3E7,
+ 37295 - 11904: 0xF151,
+ 37296 - 11904: 0xF35E,
+ 37297 - 11904: 0xC3E6,
+ 37298 - 11904: 0xF4E5,
+ 37299 - 11904: 0xF4E6,
+ 37300 - 11904: 0xC4BF,
+ 37301 - 11904: 0xF4E4,
+ 37302 - 11904: 0x8B63,
+ 37303 - 11904: 0xF4E3,
+ 37305 - 11904: 0xF65D,
+ 37306 - 11904: 0xC548,
+ 37307 - 11904: 0x95DC,
+ 37308 - 11904: 0xF849,
+ 37309 - 11904: 0xF8C8,
+ 37310 - 11904: 0xF8C7,
+ 37312 - 11904: 0xC643,
+ 37313 - 11904: 0xC65D,
+ 37314 - 11904: 0xF8C9,
+ 37315 - 11904: 0xF971,
+ 37316 - 11904: 0x9071,
+ 37317 - 11904: 0xC66F,
+ 37318 - 11904: 0xA8BC,
+ 37319 - 11904: 0xAAF6,
+ 37321 - 11904: 0xB956,
+ 37323 - 11904: 0xC4C0,
+ 37324 - 11904: 0xA8BD,
+ 37325 - 11904: 0xADAB,
+ 37326 - 11904: 0xB3A5,
+ 37327 - 11904: 0xB671,
+ 37328 - 11904: 0xC2E7,
+ 37329 - 11904: 0xAAF7,
+ 37331 - 11904: 0xD0C1,
+ 37332 - 11904: 0xD0C0,
+ 37333 - 11904: 0xD442,
+ 37334 - 11904: 0xFC5E,
+ 37335 - 11904: 0xB078,
+ 37336 - 11904: 0xB076,
+ 37337 - 11904: 0xB07A,
+ 37338 - 11904: 0xD444,
+ 37340 - 11904: 0xB079,
+ 37341 - 11904: 0xB077,
+ 37343 - 11904: 0x8949,
+ 37346 - 11904: 0xD443,
+ 37347 - 11904: 0xB3A8,
+ 37348 - 11904: 0xD7FC,
+ 37349 - 11904: 0x965B,
+ 37350 - 11904: 0xB3A7,
+ 37351 - 11904: 0xB3A9,
+ 37352 - 11904: 0xD842,
+ 37353 - 11904: 0xB3AB,
+ 37354 - 11904: 0xD7FE,
+ 37355 - 11904: 0xD840,
+ 37356 - 11904: 0xD7F7,
+ 37357 - 11904: 0xB3AA,
+ 37358 - 11904: 0xD843,
+ 37361 - 11904: 0xD7F9,
+ 37363 - 11904: 0xD7FA,
+ 37364 - 11904: 0xD7F8,
+ 37365 - 11904: 0xB3A6,
+ 37366 - 11904: 0x8C50,
+ 37367 - 11904: 0xD841,
+ 37368 - 11904: 0xD7FB,
+ 37369 - 11904: 0xD7FD,
+ 37370 - 11904: 0x94A6,
+ 37373 - 11904: 0xDC6D,
+ 37374 - 11904: 0x8FD5,
+ 37375 - 11904: 0xDC6C,
+ 37376 - 11904: 0xDC6A,
+ 37377 - 11904: 0xDC62,
+ 37378 - 11904: 0xDC71,
+ 37379 - 11904: 0xDC65,
+ 37380 - 11904: 0xDC6F,
+ 37381 - 11904: 0xDC76,
+ 37382 - 11904: 0xDC6E,
+ 37383 - 11904: 0xB679,
+ 37384 - 11904: 0x9E73,
+ 37385 - 11904: 0xB675,
+ 37386 - 11904: 0xDC63,
+ 37388 - 11904: 0xDC69,
+ 37389 - 11904: 0xB677,
+ 37390 - 11904: 0x9075,
+ 37391 - 11904: 0xDC68,
+ 37392 - 11904: 0xB678,
+ 37393 - 11904: 0xB67A,
+ 37394 - 11904: 0xDC6B,
+ 37395 - 11904: 0x99F7,
+ 37396 - 11904: 0xB672,
+ 37397 - 11904: 0xB673,
+ 37398 - 11904: 0xDC77,
+ 37399 - 11904: 0xDC75,
+ 37400 - 11904: 0x87B2,
+ 37401 - 11904: 0xDC74,
+ 37402 - 11904: 0xDC66,
+ 37404 - 11904: 0xDC72,
+ 37406 - 11904: 0xB676,
+ 37409 - 11904: 0x8CBF,
+ 37411 - 11904: 0xB674,
+ 37412 - 11904: 0xDC73,
+ 37413 - 11904: 0xDC64,
+ 37414 - 11904: 0xDC67,
+ 37415 - 11904: 0xDC70,
+ 37416 - 11904: 0x99F9,
+ 37418 - 11904: 0x9663,
+ 37419 - 11904: 0x95B9,
+ 37421 - 11904: 0xE4BA,
+ 37422 - 11904: 0xE0B7,
+ 37424 - 11904: 0xE0B0,
+ 37425 - 11904: 0xE0C3,
+ 37426 - 11904: 0xE0CC,
+ 37427 - 11904: 0xE0B3,
+ 37428 - 11904: 0xB961,
+ 37429 - 11904: 0x94D4,
+ 37430 - 11904: 0xE0C0,
+ 37431 - 11904: 0xB957,
+ 37432 - 11904: 0xB959,
+ 37433 - 11904: 0xB965,
+ 37434 - 11904: 0xE0B1,
+ 37436 - 11904: 0xFCFA,
+ 37437 - 11904: 0xB95A,
+ 37438 - 11904: 0xB95C,
+ 37439 - 11904: 0xB966,
+ 37440 - 11904: 0xB95B,
+ 37441 - 11904: 0x9077,
+ 37444 - 11904: 0x90AB,
+ 37445 - 11904: 0xB964,
+ 37446 - 11904: 0xE0B9,
+ 37448 - 11904: 0xE0AE,
+ 37449 - 11904: 0xB962,
+ 37450 - 11904: 0xE0B8,
+ 37451 - 11904: 0xB95E,
+ 37452 - 11904: 0xE0CA,
+ 37453 - 11904: 0xB963,
+ 37454 - 11904: 0xE0C8,
+ 37455 - 11904: 0xE0BC,
+ 37456 - 11904: 0xE0C6,
+ 37457 - 11904: 0xB960,
+ 37458 - 11904: 0xE0AF,
+ 37459 - 11904: 0xE0C9,
+ 37460 - 11904: 0xE0C4,
+ 37461 - 11904: 0x9D4D,
+ 37462 - 11904: 0xE0CB,
+ 37463 - 11904: 0xB958,
+ 37464 - 11904: 0x99FA,
+ 37466 - 11904: 0xB967,
+ 37467 - 11904: 0xB95D,
+ 37469 - 11904: 0x92E3,
+ 37470 - 11904: 0xE0B5,
+ 37471 - 11904: 0x97BB,
+ 37472 - 11904: 0xE0BD,
+ 37473 - 11904: 0xE0C1,
+ 37474 - 11904: 0x9078,
+ 37475 - 11904: 0xE0C5,
+ 37476 - 11904: 0xB95F,
+ 37477 - 11904: 0xE0B4,
+ 37478 - 11904: 0xE0B2,
+ 37479 - 11904: 0xE0BE,
+ 37483 - 11904: 0x99FB,
+ 37484 - 11904: 0xE0BB,
+ 37485 - 11904: 0xE0BA,
+ 37486 - 11904: 0x97E0,
+ 37487 - 11904: 0xE0BF,
+ 37488 - 11904: 0xE0C2,
+ 37490 - 11904: 0xE0C7,
+ 37494 - 11904: 0xE478,
+ 37495 - 11904: 0x96DC,
+ 37496 - 11904: 0xBBC7,
+ 37497 - 11904: 0xE4A4,
+ 37498 - 11904: 0xE47A,
+ 37499 - 11904: 0xBBCC,
+ 37500 - 11904: 0xBBD0,
+ 37501 - 11904: 0xE4AD,
+ 37502 - 11904: 0xE4B5,
+ 37503 - 11904: 0xE4A6,
+ 37504 - 11904: 0xBBC8,
+ 37505 - 11904: 0x9CA8,
+ 37506 - 11904: 0xE4AA,
+ 37507 - 11904: 0xE0B6,
+ 37508 - 11904: 0x9772,
+ 37509 - 11904: 0xBBC9,
+ 37510 - 11904: 0xE4B1,
+ 37511 - 11904: 0xE4B6,
+ 37512 - 11904: 0xE4AE,
+ 37513 - 11904: 0x9440,
+ 37514 - 11904: 0xE4B0,
+ 37515 - 11904: 0xE4B9,
+ 37516 - 11904: 0xE4B2,
+ 37517 - 11904: 0xE47E,
+ 37518 - 11904: 0xE4A9,
+ 37519 - 11904: 0x92F2,
+ 37521 - 11904: 0xBBD1,
+ 37523 - 11904: 0xBBCD,
+ 37524 - 11904: 0xE47C,
+ 37525 - 11904: 0xE4AB,
+ 37526 - 11904: 0xBBCB,
+ 37527 - 11904: 0xE4A5,
+ 37528 - 11904: 0xBBCA,
+ 37529 - 11904: 0xE4B3,
+ 37530 - 11904: 0xE4A2,
+ 37531 - 11904: 0xE479,
+ 37532 - 11904: 0xBBCE,
+ 37533 - 11904: 0xE4B8,
+ 37536 - 11904: 0xE47B,
+ 37537 - 11904: 0xE4AF,
+ 37538 - 11904: 0xE4AC,
+ 37539 - 11904: 0xE4A7,
+ 37540 - 11904: 0xE477,
+ 37541 - 11904: 0xE476,
+ 37542 - 11904: 0xE4A1,
+ 37543 - 11904: 0xE4B4,
+ 37544 - 11904: 0xBBCF,
+ 37545 - 11904: 0xE4B7,
+ 37546 - 11904: 0xE47D,
+ 37547 - 11904: 0xE4A3,
+ 37548 - 11904: 0xBE52,
+ 37550 - 11904: 0x99FD,
+ 37553 - 11904: 0x99FC,
+ 37554 - 11904: 0xBE5A,
+ 37555 - 11904: 0xBE55,
+ 37556 - 11904: 0xE8A4,
+ 37557 - 11904: 0xE8A1,
+ 37558 - 11904: 0xE867,
+ 37559 - 11904: 0xBE50,
+ 37561 - 11904: 0xF9D7,
+ 37562 - 11904: 0x964A,
+ 37563 - 11904: 0xBE4F,
+ 37564 - 11904: 0xBE56,
+ 37566 - 11904: 0x96D8,
+ 37567 - 11904: 0x99FE,
+ 37568 - 11904: 0xE865,
+ 37569 - 11904: 0xBE54,
+ 37570 - 11904: 0xE871,
+ 37571 - 11904: 0xE863,
+ 37572 - 11904: 0xE864,
+ 37573 - 11904: 0xBE4E,
+ 37574 - 11904: 0xE8A3,
+ 37575 - 11904: 0xBE58,
+ 37576 - 11904: 0xE874,
+ 37577 - 11904: 0xE879,
+ 37578 - 11904: 0xE873,
+ 37579 - 11904: 0xEBEE,
+ 37580 - 11904: 0xE86F,
+ 37581 - 11904: 0xE877,
+ 37582 - 11904: 0xE875,
+ 37583 - 11904: 0xE868,
+ 37584 - 11904: 0xE862,
+ 37585 - 11904: 0xE87D,
+ 37586 - 11904: 0xBE57,
+ 37587 - 11904: 0xE87E,
+ 37588 - 11904: 0x904B,
+ 37589 - 11904: 0xE878,
+ 37591 - 11904: 0xE86D,
+ 37592 - 11904: 0xE86B,
+ 37593 - 11904: 0xE866,
+ 37595 - 11904: 0xFA41,
+ 37597 - 11904: 0xE86E,
+ 37598 - 11904: 0xE87B,
+ 37599 - 11904: 0xE86A,
+ 37600 - 11904: 0xE87A,
+ 37601 - 11904: 0xE8A2,
+ 37603 - 11904: 0x9A40,
+ 37604 - 11904: 0xBE53,
+ 37605 - 11904: 0x975B,
+ 37606 - 11904: 0xE876,
+ 37607 - 11904: 0xE87C,
+ 37608 - 11904: 0xE872,
+ 37609 - 11904: 0xE86C,
+ 37610 - 11904: 0xBE51,
+ 37611 - 11904: 0x9A41,
+ 37612 - 11904: 0x91DD,
+ 37614 - 11904: 0xE4A8,
+ 37615 - 11904: 0xE870,
+ 37616 - 11904: 0xBE59,
+ 37617 - 11904: 0xE869,
+ 37618 - 11904: 0x93FC,
+ 37619 - 11904: 0x9A42,
+ 37620 - 11904: 0x9A43,
+ 37622 - 11904: 0x9659,
+ 37623 - 11904: 0xEBF4,
+ 37624 - 11904: 0xBFF7,
+ 37625 - 11904: 0xEBF3,
+ 37626 - 11904: 0xEBF0,
+ 37627 - 11904: 0xEC44,
+ 37628 - 11904: 0xBFFB,
+ 37629 - 11904: 0x9A44,
+ 37630 - 11904: 0xEC41,
+ 37631 - 11904: 0xEBF8,
+ 37632 - 11904: 0xEC43,
+ 37633 - 11904: 0xEBE9,
+ 37634 - 11904: 0xEBF6,
+ 37635 - 11904: 0x9051,
+ 37636 - 11904: 0xBFFD,
+ 37638 - 11904: 0xEBE1,
+ 37639 - 11904: 0x94BF,
+ 37640 - 11904: 0xEBDF,
+ 37641 - 11904: 0xEC42,
+ 37643 - 11904: 0xEC40,
+ 37644 - 11904: 0xEBFE,
+ 37645 - 11904: 0xEBED,
+ 37646 - 11904: 0xEBEC,
+ 37647 - 11904: 0xEBE2,
+ 37648 - 11904: 0xC040,
+ 37650 - 11904: 0xEBE8,
+ 37651 - 11904: 0xEBF2,
+ 37652 - 11904: 0xEBFD,
+ 37653 - 11904: 0xC043,
+ 37654 - 11904: 0xEC45,
+ 37656 - 11904: 0xC1E8,
+ 37657 - 11904: 0xC045,
+ 37658 - 11904: 0xBFFE,
+ 37659 - 11904: 0xEBE6,
+ 37661 - 11904: 0xEBEF,
+ 37662 - 11904: 0xEBDE,
+ 37663 - 11904: 0xEBE0,
+ 37664 - 11904: 0xBFF5,
+ 37665 - 11904: 0xC042,
+ 37666 - 11904: 0xBFFA,
+ 37667 - 11904: 0xEBE7,
+ 37668 - 11904: 0xEBF7,
+ 37669 - 11904: 0xEBF1,
+ 37670 - 11904: 0xC041,
+ 37671 - 11904: 0xEBDD,
+ 37672 - 11904: 0xC1E3,
+ 37673 - 11904: 0xEBF9,
+ 37674 - 11904: 0xEBFC,
+ 37675 - 11904: 0xBFFC,
+ 37676 - 11904: 0x90A2,
+ 37677 - 11904: 0xEBEB,
+ 37678 - 11904: 0xC044,
+ 37679 - 11904: 0xBFF9,
+ 37680 - 11904: 0x9CAB,
+ 37681 - 11904: 0x9776,
+ 37683 - 11904: 0xBFF8,
+ 37684 - 11904: 0xEBF5,
+ 37685 - 11904: 0xEBFB,
+ 37686 - 11904: 0xBFF6,
+ 37688 - 11904: 0xEBE4,
+ 37689 - 11904: 0xEBFA,
+ 37692 - 11904: 0xEBE5,
+ 37696 - 11904: 0xFC55,
+ 37697 - 11904: 0xFE45,
+ 37698 - 11904: 0x94A8,
+ 37699 - 11904: 0x9A45,
+ 37700 - 11904: 0xFA4B,
+ 37701 - 11904: 0x9DE1,
+ 37702 - 11904: 0xEBEA,
+ 37703 - 11904: 0xEED2,
+ 37704 - 11904: 0x96D9,
+ 37705 - 11904: 0xEED7,
+ 37706 - 11904: 0xC1E5,
+ 37707 - 11904: 0xC1E7,
+ 37708 - 11904: 0xEEDD,
+ 37709 - 11904: 0xC1E1,
+ 37710 - 11904: 0xEEEC,
+ 37711 - 11904: 0xEEE3,
+ 37712 - 11904: 0xEED8,
+ 37713 - 11904: 0xEED9,
+ 37714 - 11904: 0xEEE2,
+ 37716 - 11904: 0xC1EE,
+ 37717 - 11904: 0xEEE1,
+ 37718 - 11904: 0xEED1,
+ 37719 - 11904: 0xEEE0,
+ 37720 - 11904: 0xEED4,
+ 37721 - 11904: 0xEEED,
+ 37722 - 11904: 0xC1ED,
+ 37723 - 11904: 0xC1EB,
+ 37724 - 11904: 0xEED5,
+ 37726 - 11904: 0xEEE8,
+ 37727 - 11904: 0x9774,
+ 37728 - 11904: 0xEEDA,
+ 37729 - 11904: 0xEEE7,
+ 37730 - 11904: 0xFDF5,
+ 37731 - 11904: 0xEEE9,
+ 37732 - 11904: 0xEED0,
+ 37733 - 11904: 0xC1E6,
+ 37734 - 11904: 0x92E5,
+ 37735 - 11904: 0xEEEA,
+ 37736 - 11904: 0x9645,
+ 37737 - 11904: 0x91DA,
+ 37738 - 11904: 0xEEDE,
+ 37739 - 11904: 0x90A3,
+ 37740 - 11904: 0xC1EA,
+ 37741 - 11904: 0xEEDB,
+ 37742 - 11904: 0xA05F,
+ 37744 - 11904: 0xC1EC,
+ 37745 - 11904: 0xEEE4,
+ 37747 - 11904: 0x90AF,
+ 37748 - 11904: 0x97BF,
+ 37749 - 11904: 0xC1E4,
+ 37750 - 11904: 0xEED6,
+ 37751 - 11904: 0xEEE5,
+ 37752 - 11904: 0x914C,
+ 37753 - 11904: 0xEEDF,
+ 37754 - 11904: 0xEBE3,
+ 37755 - 11904: 0xEEE6,
+ 37756 - 11904: 0xEED3,
+ 37757 - 11904: 0x967A,
+ 37758 - 11904: 0xC1E9,
+ 37760 - 11904: 0xEEEB,
+ 37761 - 11904: 0x91DE,
+ 37762 - 11904: 0xC1E2,
+ 37763 - 11904: 0xEECE,
+ 37764 - 11904: 0x9A46,
+ 37765 - 11904: 0xFEB0,
+ 37766 - 11904: 0x9779,
+ 37767 - 11904: 0x946C,
+ 37768 - 11904: 0xF160,
+ 37769 - 11904: 0xF159,
+ 37770 - 11904: 0xC2E9,
+ 37772 - 11904: 0xF154,
+ 37773 - 11904: 0xF163,
+ 37774 - 11904: 0xF15B,
+ 37775 - 11904: 0xEEDC,
+ 37776 - 11904: 0x9858,
+ 37777 - 11904: 0xF165,
+ 37778 - 11904: 0xF155,
+ 37780 - 11904: 0xC2E8,
+ 37781 - 11904: 0xF15F,
+ 37782 - 11904: 0xC2EA,
+ 37783 - 11904: 0xC2F2,
+ 37784 - 11904: 0xC2F0,
+ 37785 - 11904: 0xF161,
+ 37786 - 11904: 0xC2F1,
+ 37787 - 11904: 0xF157,
+ 37788 - 11904: 0x9266,
+ 37789 - 11904: 0xF158,
+ 37790 - 11904: 0xF15D,
+ 37791 - 11904: 0xF162,
+ 37792 - 11904: 0x93FB,
+ 37793 - 11904: 0xEECD,
+ 37794 - 11904: 0xC2EB,
+ 37795 - 11904: 0xF16A,
+ 37796 - 11904: 0xF167,
+ 37797 - 11904: 0xF16B,
+ 37798 - 11904: 0xF15E,
+ 37799 - 11904: 0xF15A,
+ 37800 - 11904: 0xF168,
+ 37801 - 11904: 0xF36A,
+ 37802 - 11904: 0xF15C,
+ 37804 - 11904: 0xC2EE,
+ 37805 - 11904: 0x9A47,
+ 37806 - 11904: 0xC2ED,
+ 37807 - 11904: 0xEECF,
+ 37808 - 11904: 0xC2EF,
+ 37809 - 11904: 0xF164,
+ 37810 - 11904: 0xF166,
+ 37811 - 11904: 0xC2EC,
+ 37812 - 11904: 0xF169,
+ 37813 - 11904: 0xF153,
+ 37815 - 11904: 0xF156,
+ 37816 - 11904: 0x9749,
+ 37819 - 11904: 0x9748,
+ 37821 - 11904: 0x934A,
+ 37823 - 11904: 0x9CE2,
+ 37824 - 11904: 0xF373,
+ 37826 - 11904: 0xF363,
+ 37827 - 11904: 0xC3EB,
+ 37828 - 11904: 0xF371,
+ 37830 - 11904: 0x9264,
+ 37831 - 11904: 0xF361,
+ 37832 - 11904: 0xC3EC,
+ 37834 - 11904: 0xF36C,
+ 37835 - 11904: 0x91DF,
+ 37836 - 11904: 0xF368,
+ 37837 - 11904: 0xC3F1,
+ 37838 - 11904: 0xF372,
+ 37839 - 11904: 0xF362,
+ 37840 - 11904: 0xF365,
+ 37841 - 11904: 0xC3E9,
+ 37842 - 11904: 0xF374,
+ 37843 - 11904: 0xFB79,
+ 37844 - 11904: 0xF36D,
+ 37845 - 11904: 0xF370,
+ 37846 - 11904: 0xC3EF,
+ 37847 - 11904: 0xC3F4,
+ 37848 - 11904: 0xC3F2,
+ 37849 - 11904: 0xF369,
+ 37850 - 11904: 0xF364,
+ 37851 - 11904: 0x96D7,
+ 37852 - 11904: 0xC3ED,
+ 37853 - 11904: 0xC3EE,
+ 37854 - 11904: 0xF360,
+ 37855 - 11904: 0xC3EA,
+ 37856 - 11904: 0x9343,
+ 37857 - 11904: 0xC3E8,
+ 37858 - 11904: 0xC3F0,
+ 37859 - 11904: 0xF36F,
+ 37860 - 11904: 0xC3F3,
+ 37862 - 11904: 0xF36B,
+ 37863 - 11904: 0xF375,
+ 37864 - 11904: 0xC3F5,
+ 37868 - 11904: 0xF367,
+ 37870 - 11904: 0xF36E,
+ 37872 - 11904: 0xFDCB,
+ 37873 - 11904: 0xFE7A,
+ 37875 - 11904: 0x91DB,
+ 37876 - 11904: 0x8C6A,
+ 37877 - 11904: 0xF4F3,
+ 37878 - 11904: 0xF542,
+ 37879 - 11904: 0xF4F5,
+ 37880 - 11904: 0xF4FC,
+ 37881 - 11904: 0xF366,
+ 37882 - 11904: 0xF4FA,
+ 37883 - 11904: 0xF4E9,
+ 37884 - 11904: 0xF540,
+ 37885 - 11904: 0xC4C3,
+ 37886 - 11904: 0xF4ED,
+ 37887 - 11904: 0xF4FE,
+ 37888 - 11904: 0xF4F4,
+ 37889 - 11904: 0x97AF,
+ 37891 - 11904: 0xC4C2,
+ 37892 - 11904: 0x95DD,
+ 37894 - 11904: 0xF544,
+ 37895 - 11904: 0xF4F6,
+ 37896 - 11904: 0x9348,
+ 37897 - 11904: 0xF4FB,
+ 37898 - 11904: 0xF4FD,
+ 37899 - 11904: 0xF4E7,
+ 37900 - 11904: 0xF541,
+ 37901 - 11904: 0xF4F2,
+ 37902 - 11904: 0xF4F7,
+ 37903 - 11904: 0xF4EB,
+ 37904 - 11904: 0xF4EF,
+ 37905 - 11904: 0xF543,
+ 37906 - 11904: 0xF4F9,
+ 37907 - 11904: 0xF4E8,
+ 37908 - 11904: 0xF4EC,
+ 37909 - 11904: 0xF4EE,
+ 37910 - 11904: 0xF4F8,
+ 37911 - 11904: 0x9A4B,
+ 37912 - 11904: 0xC4C1,
+ 37913 - 11904: 0xF4F1,
+ 37915 - 11904: 0xFC45,
+ 37917 - 11904: 0x9A4D,
+ 37920 - 11904: 0xF4EA,
+ 37924 - 11904: 0x91BC,
+ 37925 - 11904: 0x90E2,
+ 37926 - 11904: 0x90B4,
+ 37927 - 11904: 0x95E1,
+ 37928 - 11904: 0xF4F0,
+ 37929 - 11904: 0xF661,
+ 37930 - 11904: 0xF666,
+ 37931 - 11904: 0xC54F,
+ 37932 - 11904: 0xF668,
+ 37933 - 11904: 0x9A4E,
+ 37934 - 11904: 0xC549,
+ 37935 - 11904: 0x87AD,
+ 37936 - 11904: 0xF664,
+ 37937 - 11904: 0xF66A,
+ 37938 - 11904: 0xC54E,
+ 37939 - 11904: 0xC54A,
+ 37941 - 11904: 0xC54B,
+ 37942 - 11904: 0xF660,
+ 37943 - 11904: 0xF667,
+ 37944 - 11904: 0xC54D,
+ 37945 - 11904: 0xF665,
+ 37946 - 11904: 0xC54C,
+ 37947 - 11904: 0xF65F,
+ 37948 - 11904: 0xF663,
+ 37949 - 11904: 0xF662,
+ 37950 - 11904: 0x9A4F,
+ 37951 - 11904: 0xF65E,
+ 37952 - 11904: 0xF669,
+ 37954 - 11904: 0xFE40,
+ 37955 - 11904: 0xFE43,
+ 37956 - 11904: 0xC5B1,
+ 37957 - 11904: 0xF76D,
+ 37958 - 11904: 0xF770,
+ 37959 - 11904: 0xF76C,
+ 37960 - 11904: 0xF76E,
+ 37961 - 11904: 0xF76F,
+ 37962 - 11904: 0xF769,
+ 37963 - 11904: 0xF76A,
+ 37964 - 11904: 0xF767,
+ 37965 - 11904: 0x96DD,
+ 37967 - 11904: 0xF76B,
+ 37968 - 11904: 0xF768,
+ 37969 - 11904: 0xC5B2,
+ 37970 - 11904: 0xC5B3,
+ 37972 - 11904: 0x9A51,
+ 37973 - 11904: 0xF84B,
+ 37975 - 11904: 0xF84D,
+ 37976 - 11904: 0x96A7,
+ 37979 - 11904: 0x90B0,
+ 37981 - 11904: 0xF84C,
+ 37982 - 11904: 0xF84E,
+ 37984 - 11904: 0xC5E0,
+ 37986 - 11904: 0xF84A,
+ 37987 - 11904: 0xC5DF,
+ 37988 - 11904: 0xC5E1,
+ 37989 - 11904: 0x9C4E,
+ 37991 - 11904: 0x9443,
+ 37992 - 11904: 0xF8CB,
+ 37993 - 11904: 0xF8CC,
+ 37994 - 11904: 0xC644,
+ 37995 - 11904: 0xF8CA,
+ 37996 - 11904: 0x8EBA,
+ 37997 - 11904: 0xF953,
+ 37998 - 11904: 0xF952,
+ 37999 - 11904: 0xF954,
+ 38000 - 11904: 0xC65F,
+ 38001 - 11904: 0xF955,
+ 38002 - 11904: 0xC65E,
+ 38003 - 11904: 0xF956,
+ 38004 - 11904: 0xF972,
+ 38005 - 11904: 0xF975,
+ 38006 - 11904: 0xF974,
+ 38007 - 11904: 0xC668,
+ 38008 - 11904: 0xF973,
+ 38009 - 11904: 0x9A52,
+ 38011 - 11904: 0xFCC1,
+ 38012 - 11904: 0xC672,
+ 38013 - 11904: 0xC670,
+ 38014 - 11904: 0xC671,
+ 38015 - 11904: 0xC677,
+ 38016 - 11904: 0xF9C0,
+ 38017 - 11904: 0xF9C1,
+ 38018 - 11904: 0xF9BF,
+ 38019 - 11904: 0xF9C9,
+ 38021 - 11904: 0x8BE9,
+ 38047 - 11904: 0x9CAF,
+ 38050 - 11904: 0x8BFD,
+ 38081 - 11904: 0x9ABC,
+ 38083 - 11904: 0x9AB8,
+ 38108 - 11904: 0x9AAE,
+ 38134 - 11904: 0x9AA7,
+ 38189 - 11904: 0x9A53,
+ 38215 - 11904: 0x9D74,
+ 38263 - 11904: 0xAAF8,
+ 38264 - 11904: 0x8BEA,
+ 38266 - 11904: 0xD844,
+ 38267 - 11904: 0xDC78,
+ 38268 - 11904: 0xE8A5,
+ 38269 - 11904: 0xF376,
+ 38271 - 11904: 0x8BEB,
+ 38272 - 11904: 0xAAF9,
+ 38274 - 11904: 0xADAC,
+ 38275 - 11904: 0xB07B,
+ 38277 - 11904: 0x90B2,
+ 38278 - 11904: 0xD845,
+ 38280 - 11904: 0xD846,
+ 38281 - 11904: 0xB3AC,
+ 38283 - 11904: 0xB67D,
+ 38284 - 11904: 0xDC7A,
+ 38285 - 11904: 0xDC79,
+ 38286 - 11904: 0xB6A3,
+ 38287 - 11904: 0xB67C,
+ 38288 - 11904: 0xDC7B,
+ 38289 - 11904: 0xB67E,
+ 38290 - 11904: 0xB6A2,
+ 38291 - 11904: 0xB6A1,
+ 38292 - 11904: 0xB67B,
+ 38294 - 11904: 0x95E9,
+ 38295 - 11904: 0x95E8,
+ 38296 - 11904: 0xB968,
+ 38297 - 11904: 0x95E6,
+ 38299 - 11904: 0xE0D0,
+ 38300 - 11904: 0xE0CE,
+ 38302 - 11904: 0xE0CF,
+ 38303 - 11904: 0xE0CD,
+ 38304 - 11904: 0x90B5,
+ 38305 - 11904: 0xBBD2,
+ 38306 - 11904: 0x9A54,
+ 38307 - 11904: 0xBBD5,
+ 38308 - 11904: 0xBBD7,
+ 38309 - 11904: 0xBBD6,
+ 38310 - 11904: 0x90B3,
+ 38311 - 11904: 0x95E7,
+ 38312 - 11904: 0xBBD3,
+ 38313 - 11904: 0xBBD4,
+ 38314 - 11904: 0x8B50,
+ 38315 - 11904: 0xE8A7,
+ 38316 - 11904: 0xE8A6,
+ 38317 - 11904: 0xBE5B,
+ 38318 - 11904: 0xE8A8,
+ 38320 - 11904: 0xE8A9,
+ 38321 - 11904: 0xBE5C,
+ 38325 - 11904: 0xEC4D,
+ 38326 - 11904: 0xEC4B,
+ 38327 - 11904: 0xEEF3,
+ 38329 - 11904: 0xEC49,
+ 38330 - 11904: 0xEC4A,
+ 38331 - 11904: 0xC046,
+ 38332 - 11904: 0xEC46,
+ 38333 - 11904: 0xEC4E,
+ 38334 - 11904: 0xEC48,
+ 38335 - 11904: 0xEC4C,
+ 38336 - 11904: 0xEEEF,
+ 38339 - 11904: 0xEEF1,
+ 38341 - 11904: 0xEEF2,
+ 38342 - 11904: 0xC1F3,
+ 38343 - 11904: 0xEEEE,
+ 38344 - 11904: 0xC1F2,
+ 38345 - 11904: 0xEEF0,
+ 38346 - 11904: 0xC1EF,
+ 38347 - 11904: 0xC1F0,
+ 38348 - 11904: 0xC1F1,
+ 38349 - 11904: 0xEC47,
+ 38352 - 11904: 0xC2F5,
+ 38353 - 11904: 0xF16E,
+ 38354 - 11904: 0xF16C,
+ 38355 - 11904: 0xF16D,
+ 38356 - 11904: 0xC2F3,
+ 38357 - 11904: 0xC2F6,
+ 38358 - 11904: 0xC2F4,
+ 38362 - 11904: 0xF377,
+ 38363 - 11904: 0xF378,
+ 38364 - 11904: 0xC3F6,
+ 38366 - 11904: 0xF545,
+ 38367 - 11904: 0xF547,
+ 38368 - 11904: 0xF546,
+ 38369 - 11904: 0xC4C4,
+ 38370 - 11904: 0xC550,
+ 38371 - 11904: 0xF66D,
+ 38372 - 11904: 0xF66C,
+ 38373 - 11904: 0xF66B,
+ 38376 - 11904: 0x8BEC,
+ 38388 - 11904: 0x9A56,
+ 38428 - 11904: 0xAAFA,
+ 38429 - 11904: 0x8BFB,
+ 38430 - 11904: 0xC9AA,
+ 38432 - 11904: 0xCA58,
+ 38433 - 11904: 0xA6E9,
+ 38434 - 11904: 0xCA56,
+ 38435 - 11904: 0xCA59,
+ 38436 - 11904: 0xCA57,
+ 38440 - 11904: 0xCBAE,
+ 38442 - 11904: 0xA8C1,
+ 38444 - 11904: 0xA8C2,
+ 38445 - 11904: 0xCBB0,
+ 38446 - 11904: 0xA8BF,
+ 38447 - 11904: 0xCBAF,
+ 38448 - 11904: 0xCBAD,
+ 38449 - 11904: 0xA8C0,
+ 38450 - 11904: 0xA8BE,
+ 38451 - 11904: 0x9A57,
+ 38456 - 11904: 0xA0AA,
+ 38457 - 11904: 0xCDD8,
+ 38458 - 11904: 0xCDDB,
+ 38459 - 11904: 0xAAFD,
+ 38460 - 11904: 0xCDDA,
+ 38461 - 11904: 0xCDD9,
+ 38463 - 11904: 0xAAFC,
+ 38464 - 11904: 0xAAFB,
+ 38465 - 11904: 0x9FA6,
+ 38466 - 11904: 0xAB40,
+ 38467 - 11904: 0xCDDC,
+ 38468 - 11904: 0xAAFE,
+ 38469 - 11904: 0x99CC,
+ 38474 - 11904: 0xD0C6,
+ 38475 - 11904: 0xADAE,
+ 38476 - 11904: 0xADAF,
+ 38477 - 11904: 0xADB0,
+ 38478 - 11904: 0xD0C7,
+ 38479 - 11904: 0xD0C3,
+ 38480 - 11904: 0xADAD,
+ 38481 - 11904: 0xD0C4,
+ 38483 - 11904: 0xD0C5,
+ 38484 - 11904: 0xD0C2,
+ 38486 - 11904: 0x9C59,
+ 38488 - 11904: 0xB0A4,
+ 38491 - 11904: 0xB0A1,
+ 38492 - 11904: 0xD445,
+ 38493 - 11904: 0xB0A2,
+ 38494 - 11904: 0xB0A5,
+ 38495 - 11904: 0xD446,
+ 38497 - 11904: 0xB07E,
+ 38498 - 11904: 0xB07C,
+ 38499 - 11904: 0xB07D,
+ 38500 - 11904: 0xB0A3,
+ 38505 - 11904: 0x99B5,
+ 38506 - 11904: 0xB3AD,
+ 38507 - 11904: 0xD849,
+ 38508 - 11904: 0xB3B5,
+ 38509 - 11904: 0xD848,
+ 38511 - 11904: 0xD84B,
+ 38512 - 11904: 0xB3B1,
+ 38513 - 11904: 0xD84A,
+ 38514 - 11904: 0xB6AB,
+ 38515 - 11904: 0xB3AF,
+ 38516 - 11904: 0xB3B2,
+ 38517 - 11904: 0xB3AE,
+ 38518 - 11904: 0xB3B3,
+ 38519 - 11904: 0xB3B4,
+ 38520 - 11904: 0xB3B0,
+ 38523 - 11904: 0x90BE,
+ 38524 - 11904: 0xD847,
+ 38525 - 11904: 0xB6A7,
+ 38526 - 11904: 0xDC7D,
+ 38528 - 11904: 0xDCA3,
+ 38529 - 11904: 0x9FAF,
+ 38531 - 11904: 0xDCA2,
+ 38532 - 11904: 0xB6AC,
+ 38533 - 11904: 0xB6A8,
+ 38534 - 11904: 0xB6A9,
+ 38535 - 11904: 0xDC7C,
+ 38536 - 11904: 0xDC7E,
+ 38537 - 11904: 0xDCA1,
+ 38538 - 11904: 0xB6A4,
+ 38539 - 11904: 0xB6A6,
+ 38541 - 11904: 0xB6AA,
+ 38542 - 11904: 0xB6A5,
+ 38543 - 11904: 0x95F2,
+ 38545 - 11904: 0xE0D3,
+ 38546 - 11904: 0xE0D1,
+ 38547 - 11904: 0xE0D2,
+ 38548 - 11904: 0xB96A,
+ 38549 - 11904: 0xB96B,
+ 38550 - 11904: 0x90BF,
+ 38551 - 11904: 0xE0D4,
+ 38552 - 11904: 0xB969,
+ 38553 - 11904: 0xBBD8,
+ 38555 - 11904: 0xBBDA,
+ 38556 - 11904: 0xBBD9,
+ 38558 - 11904: 0xE4BB,
+ 38561 - 11904: 0xE4BC,
+ 38562 - 11904: 0xE8AB,
+ 38563 - 11904: 0x90C1,
+ 38564 - 11904: 0xE8AA,
+ 38565 - 11904: 0xFEE4,
+ 38567 - 11904: 0xC047,
+ 38568 - 11904: 0xC048,
+ 38569 - 11904: 0xEC4F,
+ 38570 - 11904: 0xC049,
+ 38572 - 11904: 0xEEF6,
+ 38574 - 11904: 0xEEF4,
+ 38576 - 11904: 0xEEF5,
+ 38577 - 11904: 0xC1F4,
+ 38579 - 11904: 0xF16F,
+ 38580 - 11904: 0xC3F7,
+ 38582 - 11904: 0xC6D7,
+ 38584 - 11904: 0xC1F5,
+ 38585 - 11904: 0xAB41,
+ 38587 - 11904: 0xB0A6,
+ 38588 - 11904: 0xD447,
+ 38589 - 11904: 0x90C7,
+ 38591 - 11904: 0xD84C,
+ 38592 - 11904: 0xB3B6,
+ 38593 - 11904: 0xB6AD,
+ 38594 - 11904: 0xDCA4,
+ 38595 - 11904: 0xDCA6,
+ 38596 - 11904: 0xB6AF,
+ 38597 - 11904: 0xB6AE,
+ 38598 - 11904: 0xB6B0,
+ 38599 - 11904: 0xB6B1,
+ 38600 - 11904: 0xDCA5,
+ 38601 - 11904: 0xB96E,
+ 38602 - 11904: 0xB96F,
+ 38603 - 11904: 0xB96D,
+ 38604 - 11904: 0xBBDB,
+ 38605 - 11904: 0xB96C,
+ 38606 - 11904: 0xE0D5,
+ 38610 - 11904: 0xBBDC,
+ 38611 - 11904: 0xE8AC,
+ 38612 - 11904: 0xEC50,
+ 38613 - 11904: 0xC04A,
+ 38614 - 11904: 0xC1F6,
+ 38615 - 11904: 0xF170,
+ 38616 - 11904: 0xF174,
+ 38617 - 11904: 0xC2F9,
+ 38618 - 11904: 0xF171,
+ 38619 - 11904: 0xC2FA,
+ 38620 - 11904: 0xC2F8,
+ 38621 - 11904: 0xF175,
+ 38622 - 11904: 0xC2FB,
+ 38623 - 11904: 0xF173,
+ 38625 - 11904: 0xF379,
+ 38626 - 11904: 0xC2F7,
+ 38627 - 11904: 0xC3F8,
+ 38629 - 11904: 0xF8CD,
+ 38632 - 11904: 0xAB42,
+ 38633 - 11904: 0xB3B8,
+ 38634 - 11904: 0xB3B7,
+ 38639 - 11904: 0xB6B2,
+ 38640 - 11904: 0xDCA8,
+ 38641 - 11904: 0xDCA7,
+ 38642 - 11904: 0xB6B3,
+ 38644 - 11904: 0x92E4,
+ 38645 - 11904: 0xE0D9,
+ 38646 - 11904: 0xB973,
+ 38647 - 11904: 0xB970,
+ 38648 - 11904: 0xE0D8,
+ 38649 - 11904: 0xB972,
+ 38650 - 11904: 0xE0D6,
+ 38651 - 11904: 0xB971,
+ 38653 - 11904: 0xE0D7,
+ 38655 - 11904: 0xE4BD,
+ 38656 - 11904: 0xBBDD,
+ 38658 - 11904: 0xE8AF,
+ 38659 - 11904: 0x9F52,
+ 38660 - 11904: 0xBE5D,
+ 38661 - 11904: 0xE8AD,
+ 38662 - 11904: 0xBE5E,
+ 38663 - 11904: 0xBE5F,
+ 38664 - 11904: 0xE8AE,
+ 38665 - 11904: 0xBE60,
+ 38667 - 11904: 0xEC51,
+ 38669 - 11904: 0xC04E,
+ 38670 - 11904: 0xC04B,
+ 38671 - 11904: 0xC050,
+ 38672 - 11904: 0xEC53,
+ 38673 - 11904: 0xC04C,
+ 38674 - 11904: 0xEC52,
+ 38675 - 11904: 0xC04F,
+ 38678 - 11904: 0xC04D,
+ 38680 - 11904: 0xEEF9,
+ 38681 - 11904: 0xEEFB,
+ 38683 - 11904: 0x90DB,
+ 38684 - 11904: 0xC1F7,
+ 38685 - 11904: 0xEEFA,
+ 38686 - 11904: 0xC1F8,
+ 38687 - 11904: 0xEEF8,
+ 38688 - 11904: 0xEEF7,
+ 38689 - 11904: 0xA066,
+ 38690 - 11904: 0xF177,
+ 38691 - 11904: 0xF176,
+ 38692 - 11904: 0xC2FC,
+ 38693 - 11904: 0xF178,
+ 38694 - 11904: 0xF37E,
+ 38695 - 11904: 0xC3FA,
+ 38696 - 11904: 0xF37D,
+ 38697 - 11904: 0xF37A,
+ 38698 - 11904: 0xC3F9,
+ 38699 - 11904: 0xF37B,
+ 38700 - 11904: 0xF37C,
+ 38702 - 11904: 0xF548,
+ 38703 - 11904: 0xF549,
+ 38704 - 11904: 0xC4C5,
+ 38705 - 11904: 0x90D2,
+ 38706 - 11904: 0xC553,
+ 38708 - 11904: 0x876B,
+ 38709 - 11904: 0xF66E,
+ 38710 - 11904: 0x90D4,
+ 38712 - 11904: 0xC551,
+ 38713 - 11904: 0xC552,
+ 38714 - 11904: 0xF66F,
+ 38717 - 11904: 0xC5B4,
+ 38718 - 11904: 0xC5B5,
+ 38719 - 11904: 0xF771,
+ 38720 - 11904: 0x9A5B,
+ 38721 - 11904: 0x95FD,
+ 38722 - 11904: 0xC645,
+ 38723 - 11904: 0xF8CF,
+ 38724 - 11904: 0xC647,
+ 38726 - 11904: 0xF8CE,
+ 38727 - 11904: 0xF8D0,
+ 38728 - 11904: 0xC646,
+ 38729 - 11904: 0xF957,
+ 38730 - 11904: 0x87B1,
+ 38731 - 11904: 0xF9AD,
+ 38737 - 11904: 0x8BC4,
+ 38738 - 11904: 0xAB43,
+ 38741 - 11904: 0x8C66,
+ 38742 - 11904: 0xB974,
+ 38743 - 11904: 0x90DE,
+ 38744 - 11904: 0xE4BE,
+ 38746 - 11904: 0xE8B0,
+ 38747 - 11904: 0xC051,
+ 38748 - 11904: 0xC052,
+ 38749 - 11904: 0x9CE4,
+ 38750 - 11904: 0xAB44,
+ 38751 - 11904: 0x90E1,
+ 38752 - 11904: 0xBE61,
+ 38753 - 11904: 0xC3FB,
+ 38754 - 11904: 0xADB1,
+ 38758 - 11904: 0xC053,
+ 38760 - 11904: 0xC5E2,
+ 38761 - 11904: 0xADB2,
+ 38762 - 11904: 0xD84D,
+ 38764 - 11904: 0xDCA9,
+ 38765 - 11904: 0x9E46,
+ 38766 - 11904: 0xDCAB,
+ 38768 - 11904: 0xDCAA,
+ 38769 - 11904: 0x9651,
+ 38770 - 11904: 0xE0DD,
+ 38771 - 11904: 0xE0DA,
+ 38772 - 11904: 0xB975,
+ 38774 - 11904: 0xB976,
+ 38775 - 11904: 0xE0DB,
+ 38776 - 11904: 0xE0DC,
+ 38778 - 11904: 0xE4C0,
+ 38779 - 11904: 0xE4C5,
+ 38780 - 11904: 0xBBDE,
+ 38781 - 11904: 0xE4BF,
+ 38782 - 11904: 0xE4C1,
+ 38783 - 11904: 0xE4C8,
+ 38784 - 11904: 0xE4C3,
+ 38785 - 11904: 0xE4C7,
+ 38786 - 11904: 0xE4C4,
+ 38787 - 11904: 0xE4C2,
+ 38788 - 11904: 0xE4C6,
+ 38789 - 11904: 0xBBDF,
+ 38791 - 11904: 0xFB58,
+ 38792 - 11904: 0xE8B3,
+ 38793 - 11904: 0x90E6,
+ 38794 - 11904: 0xE8B1,
+ 38795 - 11904: 0xBE63,
+ 38797 - 11904: 0xBE62,
+ 38798 - 11904: 0xE8B2,
+ 38799 - 11904: 0xBE64,
+ 38804 - 11904: 0xEC56,
+ 38807 - 11904: 0xEC55,
+ 38808 - 11904: 0xC054,
+ 38809 - 11904: 0xEC54,
+ 38810 - 11904: 0xEEFC,
+ 38811 - 11904: 0x9650,
+ 38812 - 11904: 0xEEFE,
+ 38813 - 11904: 0xEF41,
+ 38814 - 11904: 0xEF40,
+ 38815 - 11904: 0x90E7,
+ 38816 - 11904: 0xC1F9,
+ 38817 - 11904: 0xEEFD,
+ 38818 - 11904: 0xF1A1,
+ 38819 - 11904: 0xC2FD,
+ 38820 - 11904: 0xF17D,
+ 38821 - 11904: 0xF1A2,
+ 38822 - 11904: 0xC2FE,
+ 38824 - 11904: 0xF17B,
+ 38826 - 11904: 0xF17E,
+ 38827 - 11904: 0xF17C,
+ 38828 - 11904: 0xF179,
+ 38829 - 11904: 0xC340,
+ 38830 - 11904: 0xF17A,
+ 38833 - 11904: 0x90E8,
+ 38834 - 11904: 0x9A5D,
+ 38835 - 11904: 0xF3A1,
+ 38836 - 11904: 0x9F7A,
+ 38838 - 11904: 0xF3A3,
+ 38839 - 11904: 0xF3A2,
+ 38840 - 11904: 0x9B5C,
+ 38841 - 11904: 0xF54A,
+ 38842 - 11904: 0x9F7C,
+ 38843 - 11904: 0xF54B,
+ 38845 - 11904: 0xFC52,
+ 38846 - 11904: 0x90E9,
+ 38847 - 11904: 0xF670,
+ 38848 - 11904: 0x90EA,
+ 38849 - 11904: 0xC5B7,
+ 38850 - 11904: 0x9A5E,
+ 38851 - 11904: 0xC5B6,
+ 38852 - 11904: 0xF84F,
+ 38853 - 11904: 0xF850,
+ 38854 - 11904: 0xC648,
+ 38855 - 11904: 0xF8D1,
+ 38856 - 11904: 0x9F76,
+ 38857 - 11904: 0xC669,
+ 38859 - 11904: 0xADB3,
+ 38860 - 11904: 0xB6B4,
+ 38861 - 11904: 0xE4CA,
+ 38862 - 11904: 0xE4C9,
+ 38863 - 11904: 0xE8B5,
+ 38864 - 11904: 0xE8B4,
+ 38866 - 11904: 0x90EB,
+ 38867 - 11904: 0xC1FA,
+ 38868 - 11904: 0xEF43,
+ 38869 - 11904: 0xEF42,
+ 38870 - 11904: 0xF1A5,
+ 38871 - 11904: 0xF1A3,
+ 38872 - 11904: 0xF1A6,
+ 38873 - 11904: 0xF1A4,
+ 38876 - 11904: 0xC3FC,
+ 38877 - 11904: 0xF3A4,
+ 38878 - 11904: 0xF3A5,
+ 38879 - 11904: 0xF3A6,
+ 38880 - 11904: 0x90EC,
+ 38881 - 11904: 0xF671,
+ 38883 - 11904: 0xF772,
+ 38885 - 11904: 0xF8D2,
+ 38886 - 11904: 0x8BEE,
+ 38893 - 11904: 0xADB4,
+ 38894 - 11904: 0x90EE,
+ 38896 - 11904: 0xEC57,
+ 38897 - 11904: 0xEF44,
+ 38898 - 11904: 0x91C6,
+ 38899 - 11904: 0xADB5,
+ 38901 - 11904: 0x90F2,
+ 38902 - 11904: 0xBBE0,
+ 38904 - 11904: 0xEC58,
+ 38905 - 11904: 0xC341,
+ 38906 - 11904: 0xF1A7,
+ 38907 - 11904: 0xC3FD,
+ 38909 - 11904: 0xF54C,
+ 38910 - 11904: 0xF54D,
+ 38911 - 11904: 0xC554,
+ 38912 - 11904: 0xF851,
+ 38913 - 11904: 0xADB6,
+ 38914 - 11904: 0xB3BB,
+ 38915 - 11904: 0xB3BC,
+ 38916 - 11904: 0xD84E,
+ 38917 - 11904: 0xB6B5,
+ 38918 - 11904: 0xB6B6,
+ 38919 - 11904: 0xDCAC,
+ 38920 - 11904: 0xB6B7,
+ 38922 - 11904: 0xB97A,
+ 38924 - 11904: 0xB97C,
+ 38925 - 11904: 0xE0DF,
+ 38926 - 11904: 0xE0E0,
+ 38927 - 11904: 0xE0DE,
+ 38928 - 11904: 0xB977,
+ 38929 - 11904: 0xB978,
+ 38930 - 11904: 0xB97B,
+ 38931 - 11904: 0xB979,
+ 38932 - 11904: 0xFCBC,
+ 38933 - 11904: 0x8A74,
+ 38934 - 11904: 0xE4CB,
+ 38935 - 11904: 0xBBE1,
+ 38936 - 11904: 0xBBE2,
+ 38939 - 11904: 0xE8BC,
+ 38940 - 11904: 0xBE67,
+ 38941 - 11904: 0xE8B7,
+ 38942 - 11904: 0xE8B6,
+ 38943 - 11904: 0x9657,
+ 38944 - 11904: 0xE8BB,
+ 38945 - 11904: 0xBE65,
+ 38947 - 11904: 0x9CEF,
+ 38948 - 11904: 0xC05B,
+ 38950 - 11904: 0xE8B8,
+ 38951 - 11904: 0xE8BD,
+ 38952 - 11904: 0xE8BA,
+ 38953 - 11904: 0xE8B9,
+ 38955 - 11904: 0xBE66,
+ 38957 - 11904: 0xC059,
+ 38958 - 11904: 0x9FDF,
+ 38959 - 11904: 0xEC5A,
+ 38960 - 11904: 0xC055,
+ 38962 - 11904: 0xEC5B,
+ 38963 - 11904: 0x90F7,
+ 38964 - 11904: 0x90F6,
+ 38965 - 11904: 0xEC59,
+ 38967 - 11904: 0xC058,
+ 38968 - 11904: 0xC056,
+ 38969 - 11904: 0xC05A,
+ 38971 - 11904: 0xC057,
+ 38977 - 11904: 0xEF45,
+ 38979 - 11904: 0xEF4A,
+ 38980 - 11904: 0xEF46,
+ 38981 - 11904: 0xEF49,
+ 38982 - 11904: 0xC1FB,
+ 38983 - 11904: 0x9B5E,
+ 38984 - 11904: 0xEDD4,
+ 38985 - 11904: 0xEF48,
+ 38986 - 11904: 0xEF47,
+ 38987 - 11904: 0x90F8,
+ 38988 - 11904: 0xC344,
+ 38989 - 11904: 0xC342,
+ 38990 - 11904: 0xC345,
+ 38991 - 11904: 0xC343,
+ 38992 - 11904: 0xF1A8,
+ 38993 - 11904: 0xF1A9,
+ 38994 - 11904: 0xF1AA,
+ 38995 - 11904: 0xC346,
+ 38998 - 11904: 0x8CFC,
+ 38999 - 11904: 0xF3AA,
+ 39000 - 11904: 0xC440,
+ 39001 - 11904: 0xF3A8,
+ 39003 - 11904: 0xC441,
+ 39004 - 11904: 0xF3A7,
+ 39005 - 11904: 0xF3A9,
+ 39006 - 11904: 0xC3FE,
+ 39007 - 11904: 0xF551,
+ 39008 - 11904: 0xF54E,
+ 39010 - 11904: 0xF54F,
+ 39011 - 11904: 0xF550,
+ 39012 - 11904: 0xF672,
+ 39013 - 11904: 0xC556,
+ 39014 - 11904: 0x90F9,
+ 39015 - 11904: 0xC555,
+ 39016 - 11904: 0x8CC9,
+ 39017 - 11904: 0xF774,
+ 39018 - 11904: 0xF773,
+ 39019 - 11904: 0xC5B8,
+ 39020 - 11904: 0xFA6A,
+ 39023 - 11904: 0xC5E3,
+ 39024 - 11904: 0xC649,
+ 39025 - 11904: 0xC660,
+ 39026 - 11904: 0xF958,
+ 39027 - 11904: 0xF9AE,
+ 39028 - 11904: 0xF9AF,
+ 39029 - 11904: 0x8BEF,
+ 39080 - 11904: 0xADB7,
+ 39081 - 11904: 0xDCAD,
+ 39084 - 11904: 0xE0E1,
+ 39085 - 11904: 0xE4CC,
+ 39086 - 11904: 0xE4CD,
+ 39087 - 11904: 0xBBE3,
+ 39089 - 11904: 0xBBE4,
+ 39090 - 11904: 0xE8BE,
+ 39091 - 11904: 0xBE68,
+ 39092 - 11904: 0x9FE0,
+ 39094 - 11904: 0xC1FC,
+ 39095 - 11904: 0x9142,
+ 39096 - 11904: 0xF1AB,
+ 39097 - 11904: 0x9A62,
+ 39098 - 11904: 0xC347,
+ 39099 - 11904: 0xF3AD,
+ 39100 - 11904: 0xC442,
+ 39101 - 11904: 0xF3AC,
+ 39102 - 11904: 0xF3AE,
+ 39103 - 11904: 0xF3AB,
+ 39104 - 11904: 0xF675,
+ 39105 - 11904: 0xF552,
+ 39106 - 11904: 0xF553,
+ 39107 - 11904: 0x9569,
+ 39108 - 11904: 0xC4C6,
+ 39110 - 11904: 0xF674,
+ 39111 - 11904: 0x9144,
+ 39112 - 11904: 0x9143,
+ 39113 - 11904: 0xF673,
+ 39114 - 11904: 0x9141,
+ 39115 - 11904: 0xF775,
+ 39116 - 11904: 0xF9B0,
+ 39118 - 11904: 0x8BF0,
+ 39131 - 11904: 0xADB8,
+ 39132 - 11904: 0x9660,
+ 39134 - 11904: 0x8BF1,
+ 39135 - 11904: 0xADB9,
+ 39136 - 11904: 0x99F6,
+ 39137 - 11904: 0x9149,
+ 39138 - 11904: 0xB0A7,
+ 39139 - 11904: 0xD448,
+ 39141 - 11904: 0xD84F,
+ 39142 - 11904: 0x914A,
+ 39143 - 11904: 0xB6B8,
+ 39145 - 11904: 0xB6BB,
+ 39146 - 11904: 0xB6B9,
+ 39147 - 11904: 0xDCAE,
+ 39148 - 11904: 0x914B,
+ 39149 - 11904: 0xB6BD,
+ 39151 - 11904: 0xB6BA,
+ 39153 - 11904: 0x9A64,
+ 39154 - 11904: 0xB6BC,
+ 39156 - 11904: 0xB97E,
+ 39157 - 11904: 0x8ABF,
+ 39158 - 11904: 0xE0E2,
+ 39161 - 11904: 0xE0E3,
+ 39162 - 11904: 0xE8C0,
+ 39164 - 11904: 0xB97D,
+ 39165 - 11904: 0xB9A1,
+ 39166 - 11904: 0xB9A2,
+ 39168 - 11904: 0xE4CF,
+ 39170 - 11904: 0xE4CE,
+ 39171 - 11904: 0xBBE5,
+ 39173 - 11904: 0xBBE6,
+ 39175 - 11904: 0xE4D0,
+ 39176 - 11904: 0xE8BF,
+ 39177 - 11904: 0xBBE8,
+ 39178 - 11904: 0xBE69,
+ 39180 - 11904: 0xBBE7,
+ 39182 - 11904: 0x9A66,
+ 39184 - 11904: 0xC05C,
+ 39185 - 11904: 0xE8C1,
+ 39186 - 11904: 0xBE6B,
+ 39187 - 11904: 0xBE6A,
+ 39188 - 11904: 0xE8C2,
+ 39189 - 11904: 0xE8C5,
+ 39190 - 11904: 0xE8C3,
+ 39191 - 11904: 0xE8C4,
+ 39192 - 11904: 0xBE6C,
+ 39193 - 11904: 0x9A67,
+ 39194 - 11904: 0xC061,
+ 39195 - 11904: 0xC05F,
+ 39196 - 11904: 0x9A69,
+ 39198 - 11904: 0xC05E,
+ 39199 - 11904: 0xEC5D,
+ 39201 - 11904: 0xC060,
+ 39204 - 11904: 0xEC5C,
+ 39205 - 11904: 0xEF4B,
+ 39207 - 11904: 0xEC5E,
+ 39208 - 11904: 0xC05D,
+ 39209 - 11904: 0xEC5F,
+ 39210 - 11904: 0xEF4E,
+ 39211 - 11904: 0xEF4C,
+ 39212 - 11904: 0xEF4D,
+ 39213 - 11904: 0xEF52,
+ 39214 - 11904: 0xC34B,
+ 39215 - 11904: 0xEF51,
+ 39216 - 11904: 0xEF54,
+ 39217 - 11904: 0xEF53,
+ 39218 - 11904: 0xEF50,
+ 39219 - 11904: 0xEF4F,
+ 39221 - 11904: 0xC1FD,
+ 39223 - 11904: 0x9A6A,
+ 39224 - 11904: 0x9652,
+ 39225 - 11904: 0x914D,
+ 39226 - 11904: 0xF1AE,
+ 39227 - 11904: 0x9666,
+ 39228 - 11904: 0xF1AD,
+ 39229 - 11904: 0xC34A,
+ 39230 - 11904: 0xC348,
+ 39231 - 11904: 0xC349,
+ 39232 - 11904: 0x9F7B,
+ 39233 - 11904: 0xF1AC,
+ 39234 - 11904: 0x9A6B,
+ 39235 - 11904: 0xF3B1,
+ 39237 - 11904: 0xC443,
+ 39239 - 11904: 0xF3B0,
+ 39240 - 11904: 0xF3AF,
+ 39241 - 11904: 0xC444,
+ 39242 - 11904: 0xA06C,
+ 39243 - 11904: 0xF558,
+ 39244 - 11904: 0xF557,
+ 39245 - 11904: 0x9667,
+ 39246 - 11904: 0xF555,
+ 39248 - 11904: 0xF554,
+ 39249 - 11904: 0xC4C8,
+ 39250 - 11904: 0xC4C7,
+ 39251 - 11904: 0xF559,
+ 39252 - 11904: 0xF776,
+ 39253 - 11904: 0xC5B9,
+ 39254 - 11904: 0xF677,
+ 39255 - 11904: 0xC557,
+ 39256 - 11904: 0xF676,
+ 39257 - 11904: 0xF556,
+ 39259 - 11904: 0xF777,
+ 39260 - 11904: 0xC5E4,
+ 39261 - 11904: 0x9A6C,
+ 39262 - 11904: 0xC661,
+ 39263 - 11904: 0xF959,
+ 39265 - 11904: 0xF9B1,
+ 39266 - 11904: 0x9A6D,
+ 39267 - 11904: 0x8BF2,
+ 39318 - 11904: 0xADBA,
+ 39319 - 11904: 0xD850,
+ 39320 - 11904: 0xEF55,
+ 39321 - 11904: 0xADBB,
+ 39323 - 11904: 0x966A,
+ 39324 - 11904: 0xE4D2,
+ 39325 - 11904: 0xE4D1,
+ 39326 - 11904: 0xEC60,
+ 39329 - 11904: 0xEF57,
+ 39331 - 11904: 0xEF56,
+ 39332 - 11904: 0xFCEA,
+ 39333 - 11904: 0xC34C,
+ 39334 - 11904: 0xF3B2,
+ 39335 - 11904: 0xF3B3,
+ 39336 - 11904: 0xC4C9,
+ 39338 - 11904: 0x966C,
+ 39339 - 11904: 0xF9B2,
+ 39340 - 11904: 0xB0A8,
+ 39341 - 11904: 0xB6BF,
+ 39342 - 11904: 0xB6BE,
+ 39343 - 11904: 0xE0E4,
+ 39344 - 11904: 0xE0E6,
+ 39345 - 11904: 0xB9A4,
+ 39346 - 11904: 0xE0E5,
+ 39347 - 11904: 0xB9A3,
+ 39348 - 11904: 0xB9A5,
+ 39349 - 11904: 0xE0E7,
+ 39352 - 11904: 0x91C4,
+ 39353 - 11904: 0xE4D4,
+ 39354 - 11904: 0xE4D6,
+ 39355 - 11904: 0xE4D5,
+ 39356 - 11904: 0x9677,
+ 39357 - 11904: 0xE4D8,
+ 39361 - 11904: 0xBBE9,
+ 39362 - 11904: 0xE4D7,
+ 39363 - 11904: 0xE4D3,
+ 39364 - 11904: 0x99F4,
+ 39365 - 11904: 0x9A6F,
+ 39367 - 11904: 0xE4D9,
+ 39369 - 11904: 0xE8CC,
+ 39371 - 11904: 0xE8CF,
+ 39372 - 11904: 0xE8D1,
+ 39373 - 11904: 0xE8C7,
+ 39374 - 11904: 0xE8CB,
+ 39375 - 11904: 0xE8C8,
+ 39376 - 11904: 0xBE6E,
+ 39377 - 11904: 0xBE71,
+ 39378 - 11904: 0xBE73,
+ 39379 - 11904: 0xE8C9,
+ 39380 - 11904: 0xE8CA,
+ 39381 - 11904: 0xBE72,
+ 39382 - 11904: 0xE8CD,
+ 39383 - 11904: 0xE8D0,
+ 39384 - 11904: 0xE8CE,
+ 39385 - 11904: 0xBE74,
+ 39386 - 11904: 0x9FAB,
+ 39387 - 11904: 0xBE70,
+ 39388 - 11904: 0xE8C6,
+ 39389 - 11904: 0xBE6D,
+ 39391 - 11904: 0xBE6F,
+ 39392 - 11904: 0x8CBE,
+ 39393 - 11904: 0x8EC1,
+ 39394 - 11904: 0xC063,
+ 39395 - 11904: 0xEC66,
+ 39396 - 11904: 0xEC64,
+ 39397 - 11904: 0xEC63,
+ 39398 - 11904: 0x9555,
+ 39399 - 11904: 0xEC69,
+ 39401 - 11904: 0xEC68,
+ 39402 - 11904: 0xEC67,
+ 39404 - 11904: 0xEC62,
+ 39405 - 11904: 0xC062,
+ 39406 - 11904: 0xEC61,
+ 39408 - 11904: 0xEC65,
+ 39409 - 11904: 0xC064,
+ 39412 - 11904: 0xEF5A,
+ 39413 - 11904: 0x9152,
+ 39414 - 11904: 0xEF5E,
+ 39415 - 11904: 0xEF5B,
+ 39416 - 11904: 0xEF5D,
+ 39417 - 11904: 0xEF5C,
+ 39418 - 11904: 0xEF59,
+ 39419 - 11904: 0xEF5F,
+ 39420 - 11904: 0xEF62,
+ 39421 - 11904: 0xEF60,
+ 39422 - 11904: 0xEF61,
+ 39423 - 11904: 0xC240,
+ 39425 - 11904: 0xC1FE,
+ 39426 - 11904: 0xEF58,
+ 39427 - 11904: 0xEF63,
+ 39428 - 11904: 0xF1B3,
+ 39429 - 11904: 0xF1B6,
+ 39430 - 11904: 0xF1B8,
+ 39431 - 11904: 0xF1B7,
+ 39433 - 11904: 0xF1B1,
+ 39434 - 11904: 0xF1B5,
+ 39435 - 11904: 0xF1B0,
+ 39436 - 11904: 0x9153,
+ 39437 - 11904: 0xF1B2,
+ 39438 - 11904: 0xC34D,
+ 39439 - 11904: 0xF1AF,
+ 39440 - 11904: 0x9155,
+ 39441 - 11904: 0xF1B4,
+ 39444 - 11904: 0xF3C0,
+ 39445 - 11904: 0xF3B5,
+ 39446 - 11904: 0xC445,
+ 39449 - 11904: 0xC446,
+ 39450 - 11904: 0xF3B4,
+ 39451 - 11904: 0xF3B9,
+ 39452 - 11904: 0xF3BF,
+ 39453 - 11904: 0xF3B7,
+ 39454 - 11904: 0xF3BE,
+ 39455 - 11904: 0x955D,
+ 39456 - 11904: 0xF3BB,
+ 39457 - 11904: 0x9671,
+ 39458 - 11904: 0xF3BA,
+ 39459 - 11904: 0xF3BD,
+ 39460 - 11904: 0xF3B8,
+ 39461 - 11904: 0xF3B6,
+ 39462 - 11904: 0x9C6D,
+ 39463 - 11904: 0xF3BC,
+ 39465 - 11904: 0xF560,
+ 39466 - 11904: 0xF55E,
+ 39467 - 11904: 0xC4CA,
+ 39468 - 11904: 0xF55D,
+ 39469 - 11904: 0xF563,
+ 39470 - 11904: 0xF561,
+ 39471 - 11904: 0x9673,
+ 39472 - 11904: 0xC4CB,
+ 39473 - 11904: 0xF55C,
+ 39474 - 11904: 0xF55A,
+ 39476 - 11904: 0xF55B,
+ 39477 - 11904: 0xC4CD,
+ 39478 - 11904: 0xF55F,
+ 39479 - 11904: 0xC4CC,
+ 39480 - 11904: 0xF562,
+ 39481 - 11904: 0xF678,
+ 39482 - 11904: 0xF67E,
+ 39483 - 11904: 0x9154,
+ 39484 - 11904: 0x9A71,
+ 39485 - 11904: 0xF679,
+ 39486 - 11904: 0xC55B,
+ 39487 - 11904: 0xF6A1,
+ 39488 - 11904: 0xC55A,
+ 39489 - 11904: 0xF67D,
+ 39490 - 11904: 0xF67C,
+ 39491 - 11904: 0xC559,
+ 39492 - 11904: 0xF67B,
+ 39493 - 11904: 0xC558,
+ 39494 - 11904: 0xF67A,
+ 39496 - 11904: 0xF77D,
+ 39497 - 11904: 0xF7A1,
+ 39498 - 11904: 0xF77E,
+ 39500 - 11904: 0xF77B,
+ 39501 - 11904: 0xC5BB,
+ 39502 - 11904: 0xF778,
+ 39503 - 11904: 0xF77C,
+ 39504 - 11904: 0xF7A3,
+ 39506 - 11904: 0xF7A2,
+ 39507 - 11904: 0xF779,
+ 39508 - 11904: 0xF77A,
+ 39509 - 11904: 0xC5BA,
+ 39510 - 11904: 0xF852,
+ 39511 - 11904: 0xC5E7,
+ 39512 - 11904: 0x9156,
+ 39513 - 11904: 0xF853,
+ 39514 - 11904: 0xC5E5,
+ 39515 - 11904: 0xC5E6,
+ 39516 - 11904: 0x966D,
+ 39518 - 11904: 0xF8D3,
+ 39519 - 11904: 0xC64A,
+ 39520 - 11904: 0xF976,
+ 39522 - 11904: 0xC66A,
+ 39523 - 11904: 0x9557,
+ 39524 - 11904: 0xF9B3,
+ 39525 - 11904: 0xC66B,
+ 39526 - 11904: 0xF9B4,
+ 39527 - 11904: 0xF9B5,
+ 39528 - 11904: 0xF9C3,
+ 39529 - 11904: 0xF9C2,
+ 39530 - 11904: 0xC67A,
+ 39531 - 11904: 0xF9CD,
+ 39532 - 11904: 0x89C6,
+ 39567 - 11904: 0x89C7,
+ 39592 - 11904: 0xB0A9,
+ 39595 - 11904: 0xE0E9,
+ 39597 - 11904: 0xE0E8,
+ 39599 - 11904: 0xBBEA,
+ 39600 - 11904: 0xBBEB,
+ 39601 - 11904: 0xE4DA,
+ 39602 - 11904: 0x8A6A,
+ 39603 - 11904: 0xE8D2,
+ 39604 - 11904: 0xEC6C,
+ 39606 - 11904: 0x8B57,
+ 39607 - 11904: 0xBE75,
+ 39608 - 11904: 0xC065,
+ 39609 - 11904: 0xEC6A,
+ 39610 - 11904: 0x9FE1,
+ 39611 - 11904: 0xEC6D,
+ 39612 - 11904: 0xC066,
+ 39613 - 11904: 0x9B5F,
+ 39614 - 11904: 0xEF64,
+ 39615 - 11904: 0xEC6B,
+ 39616 - 11904: 0xF1B9,
+ 39617 - 11904: 0xC34E,
+ 39618 - 11904: 0xF3C1,
+ 39622 - 11904: 0xF566,
+ 39623 - 11904: 0xF564,
+ 39626 - 11904: 0xF565,
+ 39629 - 11904: 0xF6A2,
+ 39631 - 11904: 0xC55C,
+ 39632 - 11904: 0xF7A4,
+ 39633 - 11904: 0xC5EA,
+ 39634 - 11904: 0xC5BC,
+ 39635 - 11904: 0xC5E8,
+ 39636 - 11904: 0xC5E9,
+ 39637 - 11904: 0xF8D4,
+ 39638 - 11904: 0xC662,
+ 39639 - 11904: 0xA05D,
+ 39640 - 11904: 0xB0AA,
+ 39644 - 11904: 0xF1BA,
+ 39647 - 11904: 0xD449,
+ 39648 - 11904: 0x915B,
+ 39649 - 11904: 0xB9A6,
+ 39650 - 11904: 0x915C,
+ 39651 - 11904: 0xE4DB,
+ 39654 - 11904: 0xBBEC,
+ 39655 - 11904: 0xE4DC,
+ 39659 - 11904: 0xE8D4,
+ 39660 - 11904: 0xE8D3,
+ 39661 - 11904: 0xC068,
+ 39662 - 11904: 0xBE76,
+ 39663 - 11904: 0xBE77,
+ 39665 - 11904: 0xE8D7,
+ 39666 - 11904: 0xE8D6,
+ 39667 - 11904: 0xE8D5,
+ 39668 - 11904: 0x915E,
+ 39670 - 11904: 0xEC6E,
+ 39671 - 11904: 0xEC71,
+ 39673 - 11904: 0xEC70,
+ 39674 - 11904: 0xEC6F,
+ 39675 - 11904: 0xC067,
+ 39676 - 11904: 0xEF68,
+ 39677 - 11904: 0xEF66,
+ 39678 - 11904: 0xEF65,
+ 39679 - 11904: 0x9F5C,
+ 39681 - 11904: 0xEF67,
+ 39682 - 11904: 0x9F57,
+ 39683 - 11904: 0xC34F,
+ 39684 - 11904: 0xF1BC,
+ 39685 - 11904: 0xF1BD,
+ 39686 - 11904: 0xC350,
+ 39688 - 11904: 0xF1BB,
+ 39689 - 11904: 0x9F65,
+ 39690 - 11904: 0xF3C3,
+ 39691 - 11904: 0xF3C2,
+ 39692 - 11904: 0xF3C5,
+ 39693 - 11904: 0xC447,
+ 39694 - 11904: 0xF3C4,
+ 39695 - 11904: 0x9A72,
+ 39696 - 11904: 0xF567,
+ 39697 - 11904: 0xF569,
+ 39698 - 11904: 0xF568,
+ 39700 - 11904: 0x9160,
+ 39701 - 11904: 0xF6A3,
+ 39702 - 11904: 0xF6A6,
+ 39703 - 11904: 0xF6A4,
+ 39704 - 11904: 0xF6A5,
+ 39705 - 11904: 0xF7A5,
+ 39706 - 11904: 0xC5BD,
+ 39710 - 11904: 0xF854,
+ 39711 - 11904: 0xF855,
+ 39712 - 11904: 0xF856,
+ 39714 - 11904: 0xC64B,
+ 39715 - 11904: 0xC663,
+ 39716 - 11904: 0xF9B6,
+ 39717 - 11904: 0xB0AB,
+ 39719 - 11904: 0xBE78,
+ 39720 - 11904: 0xC069,
+ 39721 - 11904: 0xF1BE,
+ 39722 - 11904: 0x9F5E,
+ 39723 - 11904: 0xF7A6,
+ 39725 - 11904: 0x9161,
+ 39726 - 11904: 0xF9C4,
+ 39727 - 11904: 0xD44A,
+ 39729 - 11904: 0xC67B,
+ 39730 - 11904: 0xB0AC,
+ 39731 - 11904: 0xEC72,
+ 39732 - 11904: 0x9164,
+ 39733 - 11904: 0xF1BF,
+ 39735 - 11904: 0xF3C6,
+ 39737 - 11904: 0x9F41,
+ 39738 - 11904: 0xF6A7,
+ 39739 - 11904: 0xF7A7,
+ 39740 - 11904: 0xB0AD,
+ 39742 - 11904: 0xE4DD,
+ 39743 - 11904: 0xE4DE,
+ 39744 - 11904: 0x9169,
+ 39745 - 11904: 0xBBED,
+ 39746 - 11904: 0xBBEE,
+ 39747 - 11904: 0xE8D9,
+ 39748 - 11904: 0xBE7A,
+ 39749 - 11904: 0xBE79,
+ 39750 - 11904: 0xE8D8,
+ 39752 - 11904: 0xEF69,
+ 39754 - 11904: 0xF1C0,
+ 39755 - 11904: 0xF1C2,
+ 39756 - 11904: 0xF1C1,
+ 39757 - 11904: 0xC353,
+ 39758 - 11904: 0xC352,
+ 39759 - 11904: 0xC351,
+ 39760 - 11904: 0x9168,
+ 39761 - 11904: 0xC55E,
+ 39762 - 11904: 0xF6A8,
+ 39764 - 11904: 0xC55D,
+ 39765 - 11904: 0xF7A9,
+ 39766 - 11904: 0xF7A8,
+ 39768 - 11904: 0xC64C,
+ 39769 - 11904: 0xF8D5,
+ 39770 - 11904: 0xB3BD,
+ 39771 - 11904: 0xE0EA,
+ 39775 - 11904: 0xE4E1,
+ 39776 - 11904: 0xE4DF,
+ 39777 - 11904: 0xE4E0,
+ 39780 - 11904: 0xE8E2,
+ 39782 - 11904: 0xE8DD,
+ 39783 - 11904: 0xE8DA,
+ 39784 - 11904: 0xE8E1,
+ 39785 - 11904: 0x9A74,
+ 39788 - 11904: 0xE8E3,
+ 39791 - 11904: 0xBE7C,
+ 39792 - 11904: 0xE8E0,
+ 39793 - 11904: 0xE8DC,
+ 39796 - 11904: 0xE8DB,
+ 39797 - 11904: 0xE8DF,
+ 39798 - 11904: 0xE8DE,
+ 39799 - 11904: 0xBE7B,
+ 39802 - 11904: 0xEC7D,
+ 39803 - 11904: 0xEC78,
+ 39804 - 11904: 0xEC76,
+ 39805 - 11904: 0xECA1,
+ 39806 - 11904: 0xEC77,
+ 39807 - 11904: 0x96B2,
+ 39808 - 11904: 0xEC73,
+ 39809 - 11904: 0x9A75,
+ 39810 - 11904: 0xEC79,
+ 39811 - 11904: 0xFDA5,
+ 39813 - 11904: 0xEC74,
+ 39814 - 11904: 0xEF72,
+ 39815 - 11904: 0xEC75,
+ 39816 - 11904: 0xECA2,
+ 39819 - 11904: 0x9EE9,
+ 39821 - 11904: 0x8BBA,
+ 39822 - 11904: 0x916D,
+ 39823 - 11904: 0xA060,
+ 39824 - 11904: 0xEC7C,
+ 39825 - 11904: 0xC06A,
+ 39826 - 11904: 0xEC7B,
+ 39827 - 11904: 0xEC7A,
+ 39829 - 11904: 0xEC7E,
+ 39831 - 11904: 0x9FDE,
+ 39834 - 11904: 0xEF6A,
+ 39835 - 11904: 0xEF6D,
+ 39837 - 11904: 0x9FC3,
+ 39838 - 11904: 0xEF6C,
+ 39839 - 11904: 0x96B5,
+ 39840 - 11904: 0xEF74,
+ 39841 - 11904: 0xEF6F,
+ 39842 - 11904: 0xEF73,
+ 39844 - 11904: 0xEF71,
+ 39845 - 11904: 0xEF70,
+ 39846 - 11904: 0xEF6E,
+ 39848 - 11904: 0xEF6B,
+ 39850 - 11904: 0xC243,
+ 39851 - 11904: 0xC242,
+ 39853 - 11904: 0xC244,
+ 39854 - 11904: 0xC241,
+ 39855 - 11904: 0xEF75,
+ 39856 - 11904: 0xA067,
+ 39861 - 11904: 0xF1C8,
+ 39862 - 11904: 0xF1CB,
+ 39864 - 11904: 0xF1C9,
+ 39865 - 11904: 0xF1CD,
+ 39869 - 11904: 0xF1CE,
+ 39871 - 11904: 0xF1C6,
+ 39872 - 11904: 0xC358,
+ 39873 - 11904: 0xF1C7,
+ 39875 - 11904: 0xF1C5,
+ 39876 - 11904: 0xF1CC,
+ 39878 - 11904: 0xF1C4,
+ 39879 - 11904: 0xF1C3,
+ 39880 - 11904: 0xC357,
+ 39881 - 11904: 0xC355,
+ 39882 - 11904: 0xC354,
+ 39887 - 11904: 0x96B3,
+ 39891 - 11904: 0xF1CA,
+ 39892 - 11904: 0xF3CF,
+ 39893 - 11904: 0xF3D5,
+ 39894 - 11904: 0xC44A,
+ 39895 - 11904: 0xF3D0,
+ 39897 - 11904: 0xF3D3,
+ 39898 - 11904: 0xF3D7,
+ 39899 - 11904: 0xC44B,
+ 39900 - 11904: 0xF3D2,
+ 39901 - 11904: 0x9A76,
+ 39902 - 11904: 0xF3CA,
+ 39904 - 11904: 0xF3C9,
+ 39905 - 11904: 0xF3D6,
+ 39906 - 11904: 0xF3CD,
+ 39908 - 11904: 0xF3CB,
+ 39909 - 11904: 0xF3D4,
+ 39910 - 11904: 0xF3CC,
+ 39911 - 11904: 0xC449,
+ 39912 - 11904: 0xC448,
+ 39913 - 11904: 0x95D5,
+ 39914 - 11904: 0xF3C7,
+ 39915 - 11904: 0xF3C8,
+ 39916 - 11904: 0xF3D1,
+ 39917 - 11904: 0x9ECA,
+ 39920 - 11904: 0xF3CE,
+ 39921 - 11904: 0x9A77,
+ 39924 - 11904: 0x9A78,
+ 39927 - 11904: 0xF56C,
+ 39928 - 11904: 0xF56F,
+ 39933 - 11904: 0xC356,
+ 39935 - 11904: 0x9170,
+ 39938 - 11904: 0x916F,
+ 39941 - 11904: 0xF56D,
+ 39942 - 11904: 0xF573,
+ 39943 - 11904: 0xF571,
+ 39944 - 11904: 0xF56B,
+ 39945 - 11904: 0xF576,
+ 39946 - 11904: 0x9FA3,
+ 39947 - 11904: 0xF56A,
+ 39948 - 11904: 0x9171,
+ 39949 - 11904: 0xC4CF,
+ 39950 - 11904: 0xF572,
+ 39952 - 11904: 0x96B1,
+ 39954 - 11904: 0xF56E,
+ 39955 - 11904: 0xC4CE,
+ 39956 - 11904: 0xF575,
+ 39957 - 11904: 0x9F63,
+ 39959 - 11904: 0xF574,
+ 39963 - 11904: 0x9F67,
+ 39964 - 11904: 0xF6AB,
+ 39965 - 11904: 0xF6AA,
+ 39967 - 11904: 0x8BB9,
+ 39968 - 11904: 0x9A7A,
+ 39969 - 11904: 0xF6B1,
+ 39971 - 11904: 0xF6AD,
+ 39972 - 11904: 0xF6B0,
+ 39973 - 11904: 0xC560,
+ 39974 - 11904: 0x8B56,
+ 39976 - 11904: 0xF6AE,
+ 39977 - 11904: 0xF6AF,
+ 39979 - 11904: 0xF6A9,
+ 39980 - 11904: 0xF6AC,
+ 39981 - 11904: 0xC55F,
+ 39983 - 11904: 0x9ADA,
+ 39985 - 11904: 0xC5BF,
+ 39986 - 11904: 0xF7B4,
+ 39987 - 11904: 0xF7AF,
+ 39988 - 11904: 0xF7B3,
+ 39989 - 11904: 0x96B0,
+ 39990 - 11904: 0xF7B6,
+ 39991 - 11904: 0xF7B2,
+ 39993 - 11904: 0xF7AE,
+ 39994 - 11904: 0x9A7E,
+ 39995 - 11904: 0xC5C1,
+ 39996 - 11904: 0xF7B1,
+ 39997 - 11904: 0xF7B5,
+ 39998 - 11904: 0xC5C0,
+ 39999 - 11904: 0xF7AC,
+ 40000 - 11904: 0xF570,
+ 40001 - 11904: 0xF7B0,
+ 40004 - 11904: 0xF7AD,
+ 40005 - 11904: 0x9DDE,
+ 40006 - 11904: 0xF7AA,
+ 40008 - 11904: 0xF7AB,
+ 40009 - 11904: 0xC5BE,
+ 40010 - 11904: 0xF85A,
+ 40011 - 11904: 0xF85C,
+ 40012 - 11904: 0xF85F,
+ 40013 - 11904: 0xF85B,
+ 40014 - 11904: 0xF860,
+ 40015 - 11904: 0x96AD,
+ 40016 - 11904: 0xF859,
+ 40018 - 11904: 0xF857,
+ 40019 - 11904: 0x96AE,
+ 40020 - 11904: 0xC5EB,
+ 40021 - 11904: 0xF85D,
+ 40022 - 11904: 0xC5ED,
+ 40023 - 11904: 0xC5EC,
+ 40024 - 11904: 0xF858,
+ 40025 - 11904: 0xF85E,
+ 40029 - 11904: 0x9EA1,
+ 40030 - 11904: 0xF8DA,
+ 40031 - 11904: 0xC64D,
+ 40032 - 11904: 0xF8DB,
+ 40034 - 11904: 0xF8D9,
+ 40035 - 11904: 0xF8D6,
+ 40038 - 11904: 0xF8D8,
+ 40039 - 11904: 0xF8D7,
+ 40040 - 11904: 0xF95A,
+ 40045 - 11904: 0xF95C,
+ 40046 - 11904: 0xF95B,
+ 40049 - 11904: 0xF979,
+ 40050 - 11904: 0x9E50,
+ 40051 - 11904: 0xF978,
+ 40052 - 11904: 0xF977,
+ 40053 - 11904: 0xF97A,
+ 40055 - 11904: 0xC673,
+ 40056 - 11904: 0xC674,
+ 40057 - 11904: 0xF9CA,
+ 40058 - 11904: 0xF9CE,
+ 40059 - 11904: 0x96AF,
+ 40060 - 11904: 0x8BF4,
+ 40165 - 11904: 0xB3BE,
+ 40166 - 11904: 0xDCAF,
+ 40167 - 11904: 0xE0ED,
+ 40169 - 11904: 0xB9A7,
+ 40170 - 11904: 0xE0EB,
+ 40173 - 11904: 0xE0EC,
+ 40177 - 11904: 0xE4E2,
+ 40178 - 11904: 0xE4E3,
+ 40179 - 11904: 0xBBF1,
+ 40180 - 11904: 0xBBEF,
+ 40181 - 11904: 0xE4E4,
+ 40182 - 11904: 0xBBF0,
+ 40183 - 11904: 0xE8E8,
+ 40185 - 11904: 0xE8EB,
+ 40186 - 11904: 0xE8E5,
+ 40187 - 11904: 0xE8EC,
+ 40188 - 11904: 0xE8E4,
+ 40189 - 11904: 0xE8E6,
+ 40191 - 11904: 0xE8E7,
+ 40192 - 11904: 0xE8EA,
+ 40194 - 11904: 0x9FA4,
+ 40195 - 11904: 0xBEA1,
+ 40196 - 11904: 0xE8EF,
+ 40197 - 11904: 0xE8EE,
+ 40198 - 11904: 0xBE7D,
+ 40199 - 11904: 0xE8E9,
+ 40200 - 11904: 0xE8ED,
+ 40201 - 11904: 0xBE7E,
+ 40204 - 11904: 0x96BD,
+ 40208 - 11904: 0xECAC,
+ 40210 - 11904: 0xC06F,
+ 40212 - 11904: 0xECA7,
+ 40213 - 11904: 0xC06B,
+ 40214 - 11904: 0x96F4,
+ 40215 - 11904: 0xECA4,
+ 40216 - 11904: 0xECAA,
+ 40217 - 11904: 0xECAD,
+ 40219 - 11904: 0xC070,
+ 40221 - 11904: 0xECA9,
+ 40222 - 11904: 0xECA6,
+ 40223 - 11904: 0xECAE,
+ 40224 - 11904: 0xECA5,
+ 40225 - 11904: 0x96B8,
+ 40226 - 11904: 0xECAB,
+ 40227 - 11904: 0xC06C,
+ 40229 - 11904: 0xECA3,
+ 40230 - 11904: 0xC06D,
+ 40232 - 11904: 0xC06E,
+ 40233 - 11904: 0xECA8,
+ 40237 - 11904: 0xEFA9,
+ 40238 - 11904: 0xEF7A,
+ 40239 - 11904: 0xEF7B,
+ 40240 - 11904: 0xEF7E,
+ 40241 - 11904: 0xEF7C,
+ 40243 - 11904: 0xEF76,
+ 40244 - 11904: 0xFAA1,
+ 40246 - 11904: 0xEF79,
+ 40247 - 11904: 0xEFA5,
+ 40248 - 11904: 0xEF7D,
+ 40249 - 11904: 0x91A7,
+ 40251 - 11904: 0xC245,
+ 40253 - 11904: 0xEFA7,
+ 40254 - 11904: 0xEFA4,
+ 40255 - 11904: 0xC246,
+ 40256 - 11904: 0xEFA6,
+ 40257 - 11904: 0xEF77,
+ 40258 - 11904: 0xEFA2,
+ 40259 - 11904: 0xEFA3,
+ 40260 - 11904: 0xA05E,
+ 40261 - 11904: 0xEFA1,
+ 40265 - 11904: 0x9A7D,
+ 40266 - 11904: 0xF1D2,
+ 40267 - 11904: 0xF1D4,
+ 40268 - 11904: 0xF1D7,
+ 40270 - 11904: 0x8948,
+ 40271 - 11904: 0xF1D1,
+ 40272 - 11904: 0x9EB1,
+ 40273 - 11904: 0xC359,
+ 40274 - 11904: 0xF1D9,
+ 40275 - 11904: 0xF1D0,
+ 40276 - 11904: 0xF1DA,
+ 40278 - 11904: 0xF1D6,
+ 40279 - 11904: 0xF1D8,
+ 40280 - 11904: 0xF1DC,
+ 40281 - 11904: 0xF1D5,
+ 40282 - 11904: 0xF1DD,
+ 40283 - 11904: 0xF1D3,
+ 40284 - 11904: 0xF1CF,
+ 40285 - 11904: 0xC35A,
+ 40286 - 11904: 0x9DDB,
+ 40287 - 11904: 0xF1DB,
+ 40288 - 11904: 0xC35B,
+ 40289 - 11904: 0xC44D,
+ 40295 - 11904: 0xEF78,
+ 40296 - 11904: 0xF3F1,
+ 40297 - 11904: 0xF3E8,
+ 40298 - 11904: 0xC44F,
+ 40299 - 11904: 0xF3E4,
+ 40300 - 11904: 0xC450,
+ 40301 - 11904: 0x95BF,
+ 40302 - 11904: 0x8A73,
+ 40303 - 11904: 0xF3ED,
+ 40304 - 11904: 0xF3E7,
+ 40305 - 11904: 0xF3DD,
+ 40306 - 11904: 0xC44E,
+ 40307 - 11904: 0xF3EA,
+ 40308 - 11904: 0xF3E5,
+ 40309 - 11904: 0xF3E6,
+ 40311 - 11904: 0xF3D8,
+ 40312 - 11904: 0xF3DF,
+ 40313 - 11904: 0xF3EE,
+ 40315 - 11904: 0xF3EB,
+ 40316 - 11904: 0x9EFE,
+ 40317 - 11904: 0xF3E3,
+ 40318 - 11904: 0x917A,
+ 40319 - 11904: 0xF3EF,
+ 40320 - 11904: 0xF3DE,
+ 40321 - 11904: 0xF3D9,
+ 40322 - 11904: 0xF3EC,
+ 40323 - 11904: 0x917B,
+ 40324 - 11904: 0xF3DB,
+ 40325 - 11904: 0xF3E9,
+ 40326 - 11904: 0xF3E0,
+ 40327 - 11904: 0xF3F0,
+ 40328 - 11904: 0xF3DC,
+ 40329 - 11904: 0xC44C,
+ 40330 - 11904: 0xF3DA,
+ 40331 - 11904: 0xF3E1,
+ 40332 - 11904: 0xF3E2,
+ 40336 - 11904: 0xF57D,
+ 40338 - 11904: 0xF57B,
+ 40339 - 11904: 0x9AA3,
+ 40340 - 11904: 0xF5A2,
+ 40342 - 11904: 0xF5AE,
+ 40343 - 11904: 0xF5A5,
+ 40344 - 11904: 0xF57C,
+ 40345 - 11904: 0xF578,
+ 40346 - 11904: 0xF5A7,
+ 40347 - 11904: 0xF57E,
+ 40348 - 11904: 0xF5A3,
+ 40349 - 11904: 0xF57A,
+ 40350 - 11904: 0xF5AA,
+ 40351 - 11904: 0xF577,
+ 40352 - 11904: 0xF5A1,
+ 40353 - 11904: 0xF5A6,
+ 40354 - 11904: 0xF5A8,
+ 40355 - 11904: 0xF5AB,
+ 40356 - 11904: 0xF579,
+ 40357 - 11904: 0x96C2,
+ 40358 - 11904: 0xF5AF,
+ 40359 - 11904: 0xF5B0,
+ 40360 - 11904: 0xF5A9,
+ 40361 - 11904: 0xF5AD,
+ 40362 - 11904: 0xF5A4,
+ 40363 - 11904: 0x9F77,
+ 40364 - 11904: 0xF6C1,
+ 40365 - 11904: 0xF6C4,
+ 40367 - 11904: 0xC561,
+ 40369 - 11904: 0xF6C3,
+ 40370 - 11904: 0xF6C8,
+ 40371 - 11904: 0xF6C6,
+ 40372 - 11904: 0xC562,
+ 40373 - 11904: 0xF6BD,
+ 40374 - 11904: 0xF6B3,
+ 40375 - 11904: 0xF6B2,
+ 40376 - 11904: 0xC564,
+ 40377 - 11904: 0xF6BF,
+ 40378 - 11904: 0xF6C0,
+ 40379 - 11904: 0xF6BC,
+ 40380 - 11904: 0xF6B4,
+ 40381 - 11904: 0x9AA4,
+ 40382 - 11904: 0xF6B9,
+ 40383 - 11904: 0xF5AC,
+ 40384 - 11904: 0x9AA5,
+ 40385 - 11904: 0xF6B5,
+ 40386 - 11904: 0xC563,
+ 40387 - 11904: 0xF6BB,
+ 40388 - 11904: 0x91A1,
+ 40389 - 11904: 0xF6BA,
+ 40391 - 11904: 0xF6B6,
+ 40392 - 11904: 0xF6C2,
+ 40393 - 11904: 0x89B8,
+ 40394 - 11904: 0xF6B7,
+ 40395 - 11904: 0xF7BB,
+ 40396 - 11904: 0xF6C5,
+ 40397 - 11904: 0xF6C7,
+ 40398 - 11904: 0xF6BE,
+ 40399 - 11904: 0xF6B8,
+ 40400 - 11904: 0xF7BC,
+ 40401 - 11904: 0xF7BE,
+ 40402 - 11904: 0xF7B8,
+ 40403 - 11904: 0xC5C2,
+ 40404 - 11904: 0x9173,
+ 40405 - 11904: 0xF7C5,
+ 40406 - 11904: 0xF7C3,
+ 40407 - 11904: 0xC5C3,
+ 40408 - 11904: 0xF7C2,
+ 40409 - 11904: 0xF7C1,
+ 40410 - 11904: 0xF7BA,
+ 40411 - 11904: 0xF7B7,
+ 40412 - 11904: 0xF7BD,
+ 40413 - 11904: 0xF7C6,
+ 40414 - 11904: 0xF7B9,
+ 40415 - 11904: 0xF7BF,
+ 40417 - 11904: 0xF869,
+ 40418 - 11904: 0xF86E,
+ 40419 - 11904: 0xF864,
+ 40420 - 11904: 0xF867,
+ 40421 - 11904: 0xC5EE,
+ 40422 - 11904: 0xF86B,
+ 40424 - 11904: 0xF872,
+ 40425 - 11904: 0xF7C0,
+ 40427 - 11904: 0xF865,
+ 40428 - 11904: 0xF86F,
+ 40429 - 11904: 0xF873,
+ 40430 - 11904: 0xF86A,
+ 40431 - 11904: 0xF863,
+ 40432 - 11904: 0xF86D,
+ 40434 - 11904: 0xF86C,
+ 40435 - 11904: 0xF871,
+ 40436 - 11904: 0xF870,
+ 40437 - 11904: 0xF7C4,
+ 40438 - 11904: 0xF868,
+ 40439 - 11904: 0xF862,
+ 40440 - 11904: 0xF866,
+ 40441 - 11904: 0xC64E,
+ 40442 - 11904: 0xC64F,
+ 40443 - 11904: 0xF861,
+ 40444 - 11904: 0x9AA6,
+ 40445 - 11904: 0xF8E6,
+ 40446 - 11904: 0xF8DD,
+ 40447 - 11904: 0xF8E5,
+ 40448 - 11904: 0xF8E2,
+ 40449 - 11904: 0xF8E3,
+ 40450 - 11904: 0xF8DC,
+ 40451 - 11904: 0xF8DF,
+ 40452 - 11904: 0xF8E7,
+ 40453 - 11904: 0xF8E1,
+ 40454 - 11904: 0xF8E0,
+ 40455 - 11904: 0xF8DE,
+ 40457 - 11904: 0xF8E4,
+ 40458 - 11904: 0x89BD,
+ 40459 - 11904: 0xF95D,
+ 40460 - 11904: 0x89B9,
+ 40461 - 11904: 0xF95E,
+ 40462 - 11904: 0x917D,
+ 40463 - 11904: 0xF960,
+ 40464 - 11904: 0xF95F,
+ 40465 - 11904: 0xF962,
+ 40466 - 11904: 0xF961,
+ 40467 - 11904: 0xF97C,
+ 40468 - 11904: 0xF97B,
+ 40469 - 11904: 0xF9B7,
+ 40471 - 11904: 0xF9B8,
+ 40472 - 11904: 0x96BB,
+ 40473 - 11904: 0xF9C5,
+ 40474 - 11904: 0xC678,
+ 40475 - 11904: 0xC67C,
+ 40476 - 11904: 0x9FF2,
+ 40477 - 11904: 0xF9CF,
+ 40478 - 11904: 0xC67D,
+ 40479 - 11904: 0x8BF5,
+ 40565 - 11904: 0xB3BF,
+ 40569 - 11904: 0xC4D0,
+ 40570 - 11904: 0xF6C9,
+ 40571 - 11904: 0x9AA9,
+ 40572 - 11904: 0xC650,
+ 40573 - 11904: 0xC651,
+ 40575 - 11904: 0xB3C0,
+ 40576 - 11904: 0xE0EE,
+ 40577 - 11904: 0x9F54,
+ 40578 - 11904: 0xB9A8,
+ 40579 - 11904: 0xE8F0,
+ 40580 - 11904: 0x9FE3,
+ 40581 - 11904: 0x9EED,
+ 40582 - 11904: 0xECB0,
+ 40583 - 11904: 0xECB1,
+ 40584 - 11904: 0xECAF,
+ 40585 - 11904: 0xEFAB,
+ 40586 - 11904: 0xEFAA,
+ 40587 - 11904: 0xC247,
+ 40588 - 11904: 0xF1DF,
+ 40589 - 11904: 0xEFAC,
+ 40590 - 11904: 0xF1DE,
+ 40592 - 11904: 0x91AA,
+ 40593 - 11904: 0xF3F3,
+ 40594 - 11904: 0xC451,
+ 40595 - 11904: 0xC453,
+ 40596 - 11904: 0xF3F2,
+ 40597 - 11904: 0x91AB,
+ 40598 - 11904: 0xA070,
+ 40599 - 11904: 0xC452,
+ 40600 - 11904: 0x9F6D,
+ 40601 - 11904: 0xF5B1,
+ 40602 - 11904: 0xF5B3,
+ 40603 - 11904: 0xF5B2,
+ 40604 - 11904: 0xF6CA,
+ 40605 - 11904: 0xC565,
+ 40606 - 11904: 0x91AC,
+ 40607 - 11904: 0xC5EF,
+ 40608 - 11904: 0xF8E8,
+ 40609 - 11904: 0xF963,
+ 40610 - 11904: 0x91AD,
+ 40612 - 11904: 0xF9D2,
+ 40613 - 11904: 0xB3C1,
+ 40614 - 11904: 0xA0FD,
+ 40615 - 11904: 0xE4E5,
+ 40616 - 11904: 0x9FE2,
+ 40617 - 11904: 0xBEA2,
+ 40618 - 11904: 0x91AF,
+ 40619 - 11904: 0x9E41,
+ 40620 - 11904: 0x9AAA,
+ 40621 - 11904: 0xECB3,
+ 40622 - 11904: 0xECB2,
+ 40623 - 11904: 0x91B0,
+ 40624 - 11904: 0xEFAD,
+ 40625 - 11904: 0x9AAB,
+ 40628 - 11904: 0xC454,
+ 40629 - 11904: 0xC4D1,
+ 40630 - 11904: 0xF7C7,
+ 40631 - 11904: 0xF9CB,
+ 40635 - 11904: 0xB3C2,
+ 40636 - 11904: 0xBBF2,
+ 40637 - 11904: 0x9AAC,
+ 40638 - 11904: 0xBEA3,
+ 40639 - 11904: 0x9A4A,
+ 40640 - 11904: 0xF3F4,
+ 40641 - 11904: 0x91B2,
+ 40642 - 11904: 0xF874,
+ 40643 - 11904: 0xB6C0,
+ 40644 - 11904: 0x8BF6,
+ 40646 - 11904: 0x9AAD,
+ 40647 - 11904: 0x89B6,
+ 40648 - 11904: 0xEFAE,
+ 40652 - 11904: 0xC664,
+ 40653 - 11904: 0xB6C1,
+ 40654 - 11904: 0xBEA4,
+ 40655 - 11904: 0xC248,
+ 40656 - 11904: 0xF875,
+ 40657 - 11904: 0xB6C2,
+ 40659 - 11904: 0xE8F1,
+ 40660 - 11904: 0xC072,
+ 40661 - 11904: 0xECB4,
+ 40662 - 11904: 0xECB5,
+ 40664 - 11904: 0xC071,
+ 40666 - 11904: 0xEFAF,
+ 40667 - 11904: 0xC24C,
+ 40668 - 11904: 0xC24A,
+ 40669 - 11904: 0xC24B,
+ 40670 - 11904: 0xC249,
+ 40671 - 11904: 0xF1E0,
+ 40672 - 11904: 0xC35C,
+ 40674 - 11904: 0x9AAF,
+ 40676 - 11904: 0xF5B5,
+ 40677 - 11904: 0xF5B4,
+ 40678 - 11904: 0xF5B7,
+ 40679 - 11904: 0xF5B6,
+ 40680 - 11904: 0xC4D2,
+ 40683 - 11904: 0xF6CB,
+ 40685 - 11904: 0xF6CD,
+ 40686 - 11904: 0xF6CC,
+ 40687 - 11904: 0xC566,
+ 40688 - 11904: 0xF7C8,
+ 40689 - 11904: 0x9AB0,
+ 40690 - 11904: 0xF876,
+ 40691 - 11904: 0xF877,
+ 40692 - 11904: 0xC5F0,
+ 40693 - 11904: 0xF964,
+ 40694 - 11904: 0xF97D,
+ 40695 - 11904: 0xC675,
+ 40696 - 11904: 0x9AB1,
+ 40697 - 11904: 0xDCB0,
+ 40698 - 11904: 0xECB6,
+ 40699 - 11904: 0xEFB0,
+ 40700 - 11904: 0xF3F5,
+ 40701 - 11904: 0xE0EF,
+ 40702 - 11904: 0x9AA1,
+ 40703 - 11904: 0xEFB1,
+ 40704 - 11904: 0xF1E2,
+ 40705 - 11904: 0xF1E1,
+ 40706 - 11904: 0x91B9,
+ 40710 - 11904: 0xF878,
+ 40711 - 11904: 0xC652,
+ 40712 - 11904: 0x91BA,
+ 40713 - 11904: 0xF965,
+ 40714 - 11904: 0xF97E,
+ 40718 - 11904: 0xB9A9,
+ 40719 - 11904: 0xE8F2,
+ 40720 - 11904: 0xE8F3,
+ 40722 - 11904: 0xECB7,
+ 40723 - 11904: 0xB9AA,
+ 40725 - 11904: 0xC35D,
+ 40726 - 11904: 0xF1E3,
+ 40727 - 11904: 0x9F66,
+ 40728 - 11904: 0xF6CF,
+ 40729 - 11904: 0xC567,
+ 40730 - 11904: 0xF6D0,
+ 40731 - 11904: 0xF6CE,
+ 40732 - 11904: 0xF879,
+ 40734 - 11904: 0xF8E9,
+ 40736 - 11904: 0xB9AB,
+ 40738 - 11904: 0xEFB4,
+ 40739 - 11904: 0xEFB3,
+ 40740 - 11904: 0xEFB2,
+ 40741 - 11904: 0xF1E4,
+ 40742 - 11904: 0xA041,
+ 40743 - 11904: 0x8BB7,
+ 40744 - 11904: 0xF1E8,
+ 40745 - 11904: 0xF1E7,
+ 40746 - 11904: 0xF1E6,
+ 40747 - 11904: 0xF1E5,
+ 40748 - 11904: 0xC35E,
+ 40749 - 11904: 0xF3F6,
+ 40750 - 11904: 0xF5B9,
+ 40751 - 11904: 0xC4D3,
+ 40752 - 11904: 0xF5B8,
+ 40753 - 11904: 0xF6D1,
+ 40754 - 11904: 0xF7CB,
+ 40755 - 11904: 0xF7CA,
+ 40756 - 11904: 0xC5C4,
+ 40757 - 11904: 0xF7C9,
+ 40758 - 11904: 0xF87C,
+ 40759 - 11904: 0xF87B,
+ 40760 - 11904: 0xF87A,
+ 40761 - 11904: 0x91C0,
+ 40763 - 11904: 0xBBF3,
+ 40765 - 11904: 0xECB8,
+ 40766 - 11904: 0xC24D,
+ 40768 - 11904: 0xF3F7,
+ 40769 - 11904: 0xF3F8,
+ 40770 - 11904: 0xF7CC,
+ 40771 - 11904: 0xF87D,
+ 40772 - 11904: 0x9AB3,
+ 40773 - 11904: 0x91C3,
+ 40774 - 11904: 0xF8EA,
+ 40775 - 11904: 0xF966,
+ 40776 - 11904: 0xF9B9,
+ 40777 - 11904: 0xF9D4,
+ 40778 - 11904: 0xBBF4,
+ 40779 - 11904: 0xC24E,
+ 40780 - 11904: 0xF1E9,
+ 40781 - 11904: 0xF3F9,
+ 40782 - 11904: 0xF6D2,
+ 40783 - 11904: 0xF87E,
+ 40784 - 11904: 0xA0FC,
+ 40786 - 11904: 0xBEA6,
+ 40787 - 11904: 0x9FEE,
+ 40788 - 11904: 0xEFB5,
+ 40789 - 11904: 0xF1EA,
+ 40790 - 11904: 0xF3FA,
+ 40791 - 11904: 0xF3FB,
+ 40792 - 11904: 0xF3FC,
+ 40793 - 11904: 0xF5BE,
+ 40794 - 11904: 0x9F69,
+ 40795 - 11904: 0xF5BA,
+ 40796 - 11904: 0xC568,
+ 40797 - 11904: 0xF5BD,
+ 40798 - 11904: 0xF5BC,
+ 40799 - 11904: 0xC4D4,
+ 40800 - 11904: 0xF5BB,
+ 40801 - 11904: 0xC4D6,
+ 40802 - 11904: 0x91C8,
+ 40803 - 11904: 0xC4D5,
+ 40804 - 11904: 0xF6D4,
+ 40805 - 11904: 0xF6D3,
+ 40806 - 11904: 0xC569,
+ 40807 - 11904: 0xC56A,
+ 40809 - 11904: 0x91C9,
+ 40810 - 11904: 0xC5C6,
+ 40811 - 11904: 0xF7CD,
+ 40812 - 11904: 0xC5C5,
+ 40814 - 11904: 0xF8A3,
+ 40815 - 11904: 0xF8A4,
+ 40816 - 11904: 0xF8A2,
+ 40817 - 11904: 0xF8A1,
+ 40818 - 11904: 0xC654,
+ 40820 - 11904: 0xF8EB,
+ 40821 - 11904: 0xF8EC,
+ 40822 - 11904: 0xF8ED,
+ 40823 - 11904: 0xC653,
+ 40824 - 11904: 0xF967,
+ 40825 - 11904: 0xF96A,
+ 40826 - 11904: 0xF969,
+ 40827 - 11904: 0xF968,
+ 40830 - 11904: 0xF9D3,
+ 40831 - 11904: 0x8DE6,
+ 40845 - 11904: 0xC073,
+ 40846 - 11904: 0x91CB,
+ 40848 - 11904: 0xC365,
+ 40849 - 11904: 0xF5BF,
+ 40850 - 11904: 0xF6D5,
+ 40852 - 11904: 0xC5C7,
+ 40853 - 11904: 0xF7CE,
+ 40854 - 11904: 0x87AC,
+ 40855 - 11904: 0x87A4,
+ 40856 - 11904: 0xF9D5,
+ 40857 - 11904: 0x89C8,
+ 40860 - 11904: 0xC074,
+ 40863 - 11904: 0x8DAA,
+ 40864 - 11904: 0xEFB6,
+ 40866 - 11904: 0xF7CF,
+ 40868 - 11904: 0xF9A1,
+ 40869 - 11904: 0x9FDD,
+ 40870 - 11904: 0x8C43,
+ 40871 - 11904: 0x8C6D,
+ 40872 - 11904: 0x8C74,
+ 40873 - 11904: 0x8CB7,
+ 40874 - 11904: 0x8CB9,
+ 40875 - 11904: 0x8CBB,
+ 40876 - 11904: 0x8CC0,
+ 40877 - 11904: 0x8CD7,
+ 40878 - 11904: 0x8CD8,
+ 40879 - 11904: 0x8CDA,
+ 40880 - 11904: 0xC8A1,
+ 40881 - 11904: 0xC8A3,
+ 40882 - 11904: 0x8CED,
+ 40883 - 11904: 0x8D48,
+ 40903 - 11904: 0x87C2,
+ 40904 - 11904: 0x87D2,
+ 40905 - 11904: 0x87D6,
+ 40906 - 11904: 0x87DA,
+ 40907 - 11904: 0x87DF,
+}
+
+const encode2Low, encode2High = 7870, 10046
+
+var encode2 = [...]uint16{
+ 7870 - 7870: 0x8863,
+ 7871 - 7870: 0x88A4,
+ 7872 - 7870: 0x8865,
+ 7873 - 7870: 0x88A6,
+ 8211 - 7870: 0xA156,
+ 8212 - 7870: 0xA158,
+ 8216 - 7870: 0xA1A5,
+ 8217 - 7870: 0xA1A6,
+ 8220 - 7870: 0xA1A7,
+ 8221 - 7870: 0xA1A8,
+ 8229 - 7870: 0xA14C,
+ 8230 - 7870: 0xA14B,
+ 8231 - 7870: 0xA145,
+ 8242 - 7870: 0xA1AC,
+ 8245 - 7870: 0xA1AB,
+ 8251 - 7870: 0xA1B0,
+ 8364 - 7870: 0xA3E1,
+ 8451 - 7870: 0xA24A,
+ 8453 - 7870: 0xA1C1,
+ 8457 - 7870: 0xA24B,
+ 8470 - 7870: 0xC8D2,
+ 8481 - 7870: 0xC8D3,
+ 8544 - 7870: 0xA2B9,
+ 8545 - 7870: 0xA2BA,
+ 8546 - 7870: 0xA2BB,
+ 8547 - 7870: 0xA2BC,
+ 8548 - 7870: 0xA2BD,
+ 8549 - 7870: 0xA2BE,
+ 8550 - 7870: 0xA2BF,
+ 8551 - 7870: 0xA2C0,
+ 8552 - 7870: 0xA2C1,
+ 8553 - 7870: 0xA2C2,
+ 8560 - 7870: 0xC6B5,
+ 8561 - 7870: 0xC6B6,
+ 8562 - 7870: 0xC6B7,
+ 8563 - 7870: 0xC6B8,
+ 8564 - 7870: 0xC6B9,
+ 8565 - 7870: 0xC6BA,
+ 8566 - 7870: 0xC6BB,
+ 8567 - 7870: 0xC6BC,
+ 8568 - 7870: 0xC6BD,
+ 8569 - 7870: 0xC6BE,
+ 8592 - 7870: 0xA1F6,
+ 8593 - 7870: 0xA1F4,
+ 8594 - 7870: 0xA1F7,
+ 8595 - 7870: 0xA1F5,
+ 8598 - 7870: 0xA1F8,
+ 8599 - 7870: 0xA1F9,
+ 8600 - 7870: 0xA1FB,
+ 8601 - 7870: 0xA1FA,
+ 8632 - 7870: 0xC877,
+ 8633 - 7870: 0xC878,
+ 8679 - 7870: 0xC876,
+ 8725 - 7870: 0xA241,
+ 8730 - 7870: 0xA1D4,
+ 8734 - 7870: 0xA1DB,
+ 8735 - 7870: 0xA1E8,
+ 8736 - 7870: 0xA1E7,
+ 8739 - 7870: 0xA1FD,
+ 8741 - 7870: 0xA1FC,
+ 8745 - 7870: 0xA1E4,
+ 8746 - 7870: 0xA1E5,
+ 8747 - 7870: 0xA1EC,
+ 8750 - 7870: 0xA1ED,
+ 8756 - 7870: 0xA1EF,
+ 8757 - 7870: 0xA1EE,
+ 8786 - 7870: 0xA1DC,
+ 8800 - 7870: 0xA1DA,
+ 8801 - 7870: 0xA1DD,
+ 8806 - 7870: 0xA1D8,
+ 8807 - 7870: 0xA1D9,
+ 8853 - 7870: 0xA1F2,
+ 8857 - 7870: 0xA1F3,
+ 8869 - 7870: 0xA1E6,
+ 8895 - 7870: 0xA1E9,
+ 9178 - 7870: 0x88A9,
+ 9179 - 7870: 0x88AA,
+ 9216 - 7870: 0xA3C0,
+ 9217 - 7870: 0xA3C1,
+ 9218 - 7870: 0xA3C2,
+ 9219 - 7870: 0xA3C3,
+ 9220 - 7870: 0xA3C4,
+ 9221 - 7870: 0xA3C5,
+ 9222 - 7870: 0xA3C6,
+ 9223 - 7870: 0xA3C7,
+ 9224 - 7870: 0xA3C8,
+ 9225 - 7870: 0xA3C9,
+ 9226 - 7870: 0xA3CA,
+ 9227 - 7870: 0xA3CB,
+ 9228 - 7870: 0xA3CC,
+ 9229 - 7870: 0xA3CD,
+ 9230 - 7870: 0xA3CE,
+ 9231 - 7870: 0xA3CF,
+ 9232 - 7870: 0xA3D0,
+ 9233 - 7870: 0xA3D1,
+ 9234 - 7870: 0xA3D2,
+ 9235 - 7870: 0xA3D3,
+ 9236 - 7870: 0xA3D4,
+ 9237 - 7870: 0xA3D5,
+ 9238 - 7870: 0xA3D6,
+ 9239 - 7870: 0xA3D7,
+ 9240 - 7870: 0xA3D8,
+ 9241 - 7870: 0xA3D9,
+ 9242 - 7870: 0xA3DA,
+ 9243 - 7870: 0xA3DB,
+ 9244 - 7870: 0xA3DC,
+ 9245 - 7870: 0xA3DD,
+ 9246 - 7870: 0xA3DE,
+ 9247 - 7870: 0xA3DF,
+ 9249 - 7870: 0xA3E0,
+ 9312 - 7870: 0xC6A1,
+ 9313 - 7870: 0xC6A2,
+ 9314 - 7870: 0xC6A3,
+ 9315 - 7870: 0xC6A4,
+ 9316 - 7870: 0xC6A5,
+ 9317 - 7870: 0xC6A6,
+ 9318 - 7870: 0xC6A7,
+ 9319 - 7870: 0xC6A8,
+ 9320 - 7870: 0xC6A9,
+ 9321 - 7870: 0xC6AA,
+ 9332 - 7870: 0xC6AB,
+ 9333 - 7870: 0xC6AC,
+ 9334 - 7870: 0xC6AD,
+ 9335 - 7870: 0xC6AE,
+ 9336 - 7870: 0xC6AF,
+ 9337 - 7870: 0xC6B0,
+ 9338 - 7870: 0xC6B1,
+ 9339 - 7870: 0xC6B2,
+ 9340 - 7870: 0xC6B3,
+ 9341 - 7870: 0xC6B4,
+ 9472 - 7870: 0xA277,
+ 9474 - 7870: 0xA278,
+ 9484 - 7870: 0xA27A,
+ 9488 - 7870: 0xA27B,
+ 9492 - 7870: 0xA27C,
+ 9496 - 7870: 0xA27D,
+ 9500 - 7870: 0xA275,
+ 9508 - 7870: 0xA274,
+ 9516 - 7870: 0xA273,
+ 9524 - 7870: 0xA272,
+ 9532 - 7870: 0xA271,
+ 9552 - 7870: 0xF9F9,
+ 9553 - 7870: 0xF9F8,
+ 9554 - 7870: 0xF9E6,
+ 9555 - 7870: 0xF9EF,
+ 9556 - 7870: 0xF9DD,
+ 9557 - 7870: 0xF9E8,
+ 9558 - 7870: 0xF9F1,
+ 9559 - 7870: 0xF9DF,
+ 9560 - 7870: 0xF9EC,
+ 9561 - 7870: 0xF9F5,
+ 9562 - 7870: 0xF9E3,
+ 9563 - 7870: 0xF9EE,
+ 9564 - 7870: 0xF9F7,
+ 9565 - 7870: 0xF9E5,
+ 9566 - 7870: 0xF9E9,
+ 9567 - 7870: 0xF9F2,
+ 9568 - 7870: 0xF9E0,
+ 9569 - 7870: 0xF9EB,
+ 9570 - 7870: 0xF9F4,
+ 9571 - 7870: 0xF9E2,
+ 9572 - 7870: 0xF9E7,
+ 9573 - 7870: 0xF9F0,
+ 9574 - 7870: 0xF9DE,
+ 9575 - 7870: 0xF9ED,
+ 9576 - 7870: 0xF9F6,
+ 9577 - 7870: 0xF9E4,
+ 9578 - 7870: 0xF9EA,
+ 9579 - 7870: 0xF9F3,
+ 9580 - 7870: 0xF9E1,
+ 9581 - 7870: 0xF9FA,
+ 9582 - 7870: 0xF9FB,
+ 9583 - 7870: 0xF9FD,
+ 9584 - 7870: 0xF9FC,
+ 9585 - 7870: 0xA2AC,
+ 9586 - 7870: 0xA2AD,
+ 9587 - 7870: 0xA2AE,
+ 9588 - 7870: 0xA15A,
+ 9601 - 7870: 0xA262,
+ 9602 - 7870: 0xA263,
+ 9603 - 7870: 0xA264,
+ 9604 - 7870: 0xA265,
+ 9605 - 7870: 0xA266,
+ 9606 - 7870: 0xA267,
+ 9607 - 7870: 0xA268,
+ 9608 - 7870: 0xA269,
+ 9609 - 7870: 0xA270,
+ 9610 - 7870: 0xA26F,
+ 9611 - 7870: 0xA26E,
+ 9612 - 7870: 0xA26D,
+ 9613 - 7870: 0xA26C,
+ 9614 - 7870: 0xA26B,
+ 9615 - 7870: 0xA26A,
+ 9620 - 7870: 0xA276,
+ 9621 - 7870: 0xA279,
+ 9632 - 7870: 0xA1BD,
+ 9633 - 7870: 0xA1BC,
+ 9650 - 7870: 0xA1B6,
+ 9651 - 7870: 0xA1B5,
+ 9660 - 7870: 0xA1BF,
+ 9661 - 7870: 0xA1BE,
+ 9670 - 7870: 0xA1BB,
+ 9671 - 7870: 0xA1BA,
+ 9675 - 7870: 0xA1B3,
+ 9678 - 7870: 0xA1B7,
+ 9679 - 7870: 0xA1B4,
+ 9698 - 7870: 0xA2A8,
+ 9699 - 7870: 0xA2A9,
+ 9700 - 7870: 0xA2AB,
+ 9701 - 7870: 0xA2AA,
+ 9733 - 7870: 0xA1B9,
+ 9734 - 7870: 0xA1B8,
+ 9792 - 7870: 0xA1F0,
+ 9794 - 7870: 0xA1F1,
+ 10045 - 7870: 0xC6E6,
+}
+
+const encode3Low, encode3High = 167, 1106
+
+var encode3 = [...]uint16{
+ 167 - 167: 0xA1B1,
+ 168 - 167: 0xC6D8,
+ 175 - 167: 0xA1C2,
+ 176 - 167: 0xA258,
+ 177 - 167: 0xA1D3,
+ 183 - 167: 0xA150,
+ 192 - 167: 0x8859,
+ 193 - 167: 0x8857,
+ 200 - 167: 0x885D,
+ 201 - 167: 0x885B,
+ 202 - 167: 0x8866,
+ 210 - 167: 0x8861,
+ 211 - 167: 0x885F,
+ 215 - 167: 0xA1D1,
+ 224 - 167: 0x886A,
+ 225 - 167: 0x8868,
+ 232 - 167: 0x886F,
+ 233 - 167: 0x886D,
+ 234 - 167: 0x88A7,
+ 236 - 167: 0x8873,
+ 237 - 167: 0x8871,
+ 242 - 167: 0x8877,
+ 243 - 167: 0x8875,
+ 247 - 167: 0xA1D2,
+ 248 - 167: 0xC8FB,
+ 249 - 167: 0x887B,
+ 250 - 167: 0x8879,
+ 252 - 167: 0x88A2,
+ 256 - 167: 0x8856,
+ 257 - 167: 0x8867,
+ 274 - 167: 0x885A,
+ 275 - 167: 0x886C,
+ 282 - 167: 0x885C,
+ 283 - 167: 0x886E,
+ 299 - 167: 0x8870,
+ 331 - 167: 0xC8FC,
+ 332 - 167: 0x885E,
+ 333 - 167: 0x8874,
+ 339 - 167: 0xC8FA,
+ 363 - 167: 0x8878,
+ 461 - 167: 0x8858,
+ 462 - 167: 0x8869,
+ 464 - 167: 0x8872,
+ 465 - 167: 0x8860,
+ 466 - 167: 0x8876,
+ 468 - 167: 0x887A,
+ 470 - 167: 0x887C,
+ 472 - 167: 0x887D,
+ 474 - 167: 0x887E,
+ 476 - 167: 0x88A1,
+ 592 - 167: 0xC8F6,
+ 593 - 167: 0x886B,
+ 596 - 167: 0xC8F8,
+ 603 - 167: 0xC8F7,
+ 609 - 167: 0x88A8,
+ 618 - 167: 0xC8FE,
+ 629 - 167: 0xC8F9,
+ 643 - 167: 0xC8F5,
+ 650 - 167: 0xC8FD,
+ 710 - 167: 0xC6D9,
+ 711 - 167: 0xA3BE,
+ 713 - 167: 0xA3BC,
+ 714 - 167: 0xA3BD,
+ 715 - 167: 0xA3BF,
+ 717 - 167: 0xA1C5,
+ 729 - 167: 0xA3BB,
+ 913 - 167: 0xA344,
+ 914 - 167: 0xA345,
+ 915 - 167: 0xA346,
+ 916 - 167: 0xA347,
+ 917 - 167: 0xA348,
+ 918 - 167: 0xA349,
+ 919 - 167: 0xA34A,
+ 920 - 167: 0xA34B,
+ 921 - 167: 0xA34C,
+ 922 - 167: 0xA34D,
+ 923 - 167: 0xA34E,
+ 924 - 167: 0xA34F,
+ 925 - 167: 0xA350,
+ 926 - 167: 0xA351,
+ 927 - 167: 0xA352,
+ 928 - 167: 0xA353,
+ 929 - 167: 0xA354,
+ 931 - 167: 0xA355,
+ 932 - 167: 0xA356,
+ 933 - 167: 0xA357,
+ 934 - 167: 0xA358,
+ 935 - 167: 0xA359,
+ 936 - 167: 0xA35A,
+ 937 - 167: 0xA35B,
+ 945 - 167: 0xA35C,
+ 946 - 167: 0xA35D,
+ 947 - 167: 0xA35E,
+ 948 - 167: 0xA35F,
+ 949 - 167: 0xA360,
+ 950 - 167: 0xA361,
+ 951 - 167: 0xA362,
+ 952 - 167: 0xA363,
+ 953 - 167: 0xA364,
+ 954 - 167: 0xA365,
+ 955 - 167: 0xA366,
+ 956 - 167: 0xA367,
+ 957 - 167: 0xA368,
+ 958 - 167: 0xA369,
+ 959 - 167: 0xA36A,
+ 960 - 167: 0xA36B,
+ 961 - 167: 0xA36C,
+ 963 - 167: 0xA36D,
+ 964 - 167: 0xA36E,
+ 965 - 167: 0xA36F,
+ 966 - 167: 0xA370,
+ 967 - 167: 0xA371,
+ 968 - 167: 0xA372,
+ 969 - 167: 0xA373,
+ 1025 - 167: 0xC7F9,
+ 1040 - 167: 0xC7F3,
+ 1041 - 167: 0xC7F4,
+ 1042 - 167: 0xC7F5,
+ 1043 - 167: 0xC7F6,
+ 1044 - 167: 0xC7F7,
+ 1045 - 167: 0xC7F8,
+ 1046 - 167: 0xC7FA,
+ 1047 - 167: 0xC7FB,
+ 1048 - 167: 0xC7FC,
+ 1049 - 167: 0xC7FD,
+ 1050 - 167: 0xC7FE,
+ 1051 - 167: 0xC840,
+ 1052 - 167: 0xC841,
+ 1053 - 167: 0xC842,
+ 1054 - 167: 0xC843,
+ 1055 - 167: 0xC844,
+ 1056 - 167: 0xC845,
+ 1057 - 167: 0xC846,
+ 1058 - 167: 0xC847,
+ 1059 - 167: 0xC848,
+ 1060 - 167: 0xC849,
+ 1061 - 167: 0xC84A,
+ 1062 - 167: 0xC84B,
+ 1063 - 167: 0xC84C,
+ 1064 - 167: 0xC84D,
+ 1065 - 167: 0xC84E,
+ 1066 - 167: 0xC84F,
+ 1067 - 167: 0xC850,
+ 1068 - 167: 0xC851,
+ 1069 - 167: 0xC852,
+ 1070 - 167: 0xC853,
+ 1071 - 167: 0xC854,
+ 1072 - 167: 0xC855,
+ 1073 - 167: 0xC856,
+ 1074 - 167: 0xC857,
+ 1075 - 167: 0xC858,
+ 1076 - 167: 0xC859,
+ 1077 - 167: 0xC85A,
+ 1078 - 167: 0xC85C,
+ 1079 - 167: 0xC85D,
+ 1080 - 167: 0xC85E,
+ 1081 - 167: 0xC85F,
+ 1082 - 167: 0xC860,
+ 1083 - 167: 0xC861,
+ 1084 - 167: 0xC862,
+ 1085 - 167: 0xC863,
+ 1086 - 167: 0xC864,
+ 1087 - 167: 0xC865,
+ 1088 - 167: 0xC866,
+ 1089 - 167: 0xC867,
+ 1090 - 167: 0xC868,
+ 1091 - 167: 0xC869,
+ 1092 - 167: 0xC86A,
+ 1093 - 167: 0xC86B,
+ 1094 - 167: 0xC86C,
+ 1095 - 167: 0xC86D,
+ 1096 - 167: 0xC86E,
+ 1097 - 167: 0xC86F,
+ 1098 - 167: 0xC870,
+ 1099 - 167: 0xC871,
+ 1100 - 167: 0xC872,
+ 1101 - 167: 0xC873,
+ 1102 - 167: 0xC874,
+ 1103 - 167: 0xC875,
+ 1105 - 167: 0xC85B,
+}
+
+const encode4Low, encode4High = 65072, 65518
+
+var encode4 = [...]uint16{
+ 65072 - 65072: 0xA14A,
+ 65073 - 65072: 0xA157,
+ 65075 - 65072: 0xA159,
+ 65076 - 65072: 0xA15B,
+ 65077 - 65072: 0xA15F,
+ 65078 - 65072: 0xA160,
+ 65079 - 65072: 0xA163,
+ 65080 - 65072: 0xA164,
+ 65081 - 65072: 0xA167,
+ 65082 - 65072: 0xA168,
+ 65083 - 65072: 0xA16B,
+ 65084 - 65072: 0xA16C,
+ 65085 - 65072: 0xA16F,
+ 65086 - 65072: 0xA170,
+ 65087 - 65072: 0xA173,
+ 65088 - 65072: 0xA174,
+ 65089 - 65072: 0xA177,
+ 65090 - 65072: 0xA178,
+ 65091 - 65072: 0xA17B,
+ 65092 - 65072: 0xA17C,
+ 65097 - 65072: 0xA1C6,
+ 65098 - 65072: 0xA1C7,
+ 65099 - 65072: 0xA1CA,
+ 65100 - 65072: 0xA1CB,
+ 65101 - 65072: 0xA1C8,
+ 65102 - 65072: 0xA1C9,
+ 65103 - 65072: 0xA15C,
+ 65104 - 65072: 0xA14D,
+ 65105 - 65072: 0xA14E,
+ 65106 - 65072: 0xA14F,
+ 65108 - 65072: 0xA151,
+ 65109 - 65072: 0xA152,
+ 65110 - 65072: 0xA153,
+ 65111 - 65072: 0xA154,
+ 65113 - 65072: 0xA17D,
+ 65114 - 65072: 0xA17E,
+ 65115 - 65072: 0xA1A1,
+ 65116 - 65072: 0xA1A2,
+ 65117 - 65072: 0xA1A3,
+ 65118 - 65072: 0xA1A4,
+ 65119 - 65072: 0xA1CC,
+ 65120 - 65072: 0xA1CD,
+ 65121 - 65072: 0xA1CE,
+ 65122 - 65072: 0xA1DE,
+ 65123 - 65072: 0xA1DF,
+ 65124 - 65072: 0xA1E0,
+ 65125 - 65072: 0xA1E1,
+ 65126 - 65072: 0xA1E2,
+ 65128 - 65072: 0xA242,
+ 65129 - 65072: 0xA24C,
+ 65130 - 65072: 0xA24D,
+ 65131 - 65072: 0xA24E,
+ 65281 - 65072: 0xA149,
+ 65282 - 65072: 0xC8D0,
+ 65283 - 65072: 0xA1AD,
+ 65284 - 65072: 0xA243,
+ 65285 - 65072: 0xA248,
+ 65286 - 65072: 0xA1AE,
+ 65287 - 65072: 0xC8CF,
+ 65288 - 65072: 0xA15D,
+ 65289 - 65072: 0xA15E,
+ 65290 - 65072: 0xA1AF,
+ 65291 - 65072: 0xA1CF,
+ 65292 - 65072: 0xA141,
+ 65293 - 65072: 0xA1D0,
+ 65294 - 65072: 0xA144,
+ 65295 - 65072: 0xA1FE,
+ 65296 - 65072: 0xA2AF,
+ 65297 - 65072: 0xA2B0,
+ 65298 - 65072: 0xA2B1,
+ 65299 - 65072: 0xA2B2,
+ 65300 - 65072: 0xA2B3,
+ 65301 - 65072: 0xA2B4,
+ 65302 - 65072: 0xA2B5,
+ 65303 - 65072: 0xA2B6,
+ 65304 - 65072: 0xA2B7,
+ 65305 - 65072: 0xA2B8,
+ 65306 - 65072: 0xA147,
+ 65307 - 65072: 0xA146,
+ 65308 - 65072: 0xA1D5,
+ 65309 - 65072: 0xA1D7,
+ 65310 - 65072: 0xA1D6,
+ 65311 - 65072: 0xA148,
+ 65312 - 65072: 0xA249,
+ 65313 - 65072: 0xA2CF,
+ 65314 - 65072: 0xA2D0,
+ 65315 - 65072: 0xA2D1,
+ 65316 - 65072: 0xA2D2,
+ 65317 - 65072: 0xA2D3,
+ 65318 - 65072: 0xA2D4,
+ 65319 - 65072: 0xA2D5,
+ 65320 - 65072: 0xA2D6,
+ 65321 - 65072: 0xA2D7,
+ 65322 - 65072: 0xA2D8,
+ 65323 - 65072: 0xA2D9,
+ 65324 - 65072: 0xA2DA,
+ 65325 - 65072: 0xA2DB,
+ 65326 - 65072: 0xA2DC,
+ 65327 - 65072: 0xA2DD,
+ 65328 - 65072: 0xA2DE,
+ 65329 - 65072: 0xA2DF,
+ 65330 - 65072: 0xA2E0,
+ 65331 - 65072: 0xA2E1,
+ 65332 - 65072: 0xA2E2,
+ 65333 - 65072: 0xA2E3,
+ 65334 - 65072: 0xA2E4,
+ 65335 - 65072: 0xA2E5,
+ 65336 - 65072: 0xA2E6,
+ 65337 - 65072: 0xA2E7,
+ 65338 - 65072: 0xA2E8,
+ 65339 - 65072: 0xC6E4,
+ 65340 - 65072: 0xA240,
+ 65341 - 65072: 0xC6E5,
+ 65343 - 65072: 0xA1C4,
+ 65345 - 65072: 0xA2E9,
+ 65346 - 65072: 0xA2EA,
+ 65347 - 65072: 0xA2EB,
+ 65348 - 65072: 0xA2EC,
+ 65349 - 65072: 0xA2ED,
+ 65350 - 65072: 0xA2EE,
+ 65351 - 65072: 0xA2EF,
+ 65352 - 65072: 0xA2F0,
+ 65353 - 65072: 0xA2F1,
+ 65354 - 65072: 0xA2F2,
+ 65355 - 65072: 0xA2F3,
+ 65356 - 65072: 0xA2F4,
+ 65357 - 65072: 0xA2F5,
+ 65358 - 65072: 0xA2F6,
+ 65359 - 65072: 0xA2F7,
+ 65360 - 65072: 0xA2F8,
+ 65361 - 65072: 0xA2F9,
+ 65362 - 65072: 0xA2FA,
+ 65363 - 65072: 0xA2FB,
+ 65364 - 65072: 0xA2FC,
+ 65365 - 65072: 0xA2FD,
+ 65366 - 65072: 0xA2FE,
+ 65367 - 65072: 0xA340,
+ 65368 - 65072: 0xA341,
+ 65369 - 65072: 0xA342,
+ 65370 - 65072: 0xA343,
+ 65371 - 65072: 0xA161,
+ 65372 - 65072: 0xA155,
+ 65373 - 65072: 0xA162,
+ 65374 - 65072: 0xA1E3,
+ 65504 - 65072: 0xA246,
+ 65505 - 65072: 0xA247,
+ 65506 - 65072: 0xC8CD,
+ 65507 - 65072: 0xA1C3,
+ 65508 - 65072: 0xC8CE,
+ 65509 - 65072: 0xA244,
+ 65517 - 65072: 0xF9FE,
+}
+
+const encode5Low, encode5High = 194597, 195029
+
+var encode5 = [...]uint16{
+ 194597 - 194597: 0x9874,
+ 194619 - 194597: 0x9AC8,
+ 194624 - 194597: 0xA047,
+ 194680 - 194597: 0x8BC3,
+ 194708 - 194597: 0xFC48,
+ 194726 - 194597: 0xFC77,
+ 194765 - 194597: 0x9C52,
+ 194964 - 194597: 0x8EFD,
+ 194994 - 194597: 0x8FA8,
+ 195004 - 194597: 0x957A,
+ 195028 - 194597: 0x8FF0,
+}
+
+const encode6Low, encode6High = 63751, 64014
+
+var encode6 = [...]uint16{
+ 63751 - 63751: 0x8BF8,
+ 64012 - 63751: 0xC94A,
+ 64013 - 63751: 0xDDFC,
+}
+
+const encode7Low, encode7High = 175615, 175616
+
+var encode7 = [...]uint16{
+ 175615 - 175615: 0x87DC,
+}
diff --git a/vendor/golang.org/x/text/encoding/unicode/override.go b/vendor/golang.org/x/text/encoding/unicode/override.go
new file mode 100644
index 000000000..35d62fcc9
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/unicode/override.go
@@ -0,0 +1,82 @@
+// 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 unicode
+
+import (
+ "golang.org/x/text/transform"
+)
+
+// BOMOverride returns a new decoder transformer that is identical to fallback,
+// except that the presence of a Byte Order Mark at the start of the input
+// causes it to switch to the corresponding Unicode decoding. It will only
+// consider BOMs for UTF-8, UTF-16BE, and UTF-16LE.
+//
+// This differs from using ExpectBOM by allowing a BOM to switch to UTF-8, not
+// just UTF-16 variants, and allowing falling back to any encoding scheme.
+//
+// This technique is recommended by the W3C for use in HTML 5: "For
+// compatibility with deployed content, the byte order mark (also known as BOM)
+// is considered more authoritative than anything else."
+// http://www.w3.org/TR/encoding/#specification-hooks
+//
+// Using BOMOverride is mostly intended for use cases where the first characters
+// of a fallback encoding are known to not be a BOM, for example, for valid HTML
+// and most encodings.
+func BOMOverride(fallback transform.Transformer) transform.Transformer {
+ // TODO: possibly allow a variadic argument of unicode encodings to allow
+ // specifying details of which fallbacks are supported as well as
+ // specifying the details of the implementations. This would also allow for
+ // support for UTF-32, which should not be supported by default.
+ return &bomOverride{fallback: fallback}
+}
+
+type bomOverride struct {
+ fallback transform.Transformer
+ current transform.Transformer
+}
+
+func (d *bomOverride) Reset() {
+ d.current = nil
+ d.fallback.Reset()
+}
+
+var (
+ // TODO: we could use decode functions here, instead of allocating a new
+ // decoder on every NewDecoder as IgnoreBOM decoders can be stateless.
+ utf16le = UTF16(LittleEndian, IgnoreBOM)
+ utf16be = UTF16(BigEndian, IgnoreBOM)
+)
+
+const utf8BOM = "\ufeff"
+
+func (d *bomOverride) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if d.current != nil {
+ return d.current.Transform(dst, src, atEOF)
+ }
+ if len(src) < 3 && !atEOF {
+ return 0, 0, transform.ErrShortSrc
+ }
+ d.current = d.fallback
+ bomSize := 0
+ if len(src) >= 2 {
+ if src[0] == 0xFF && src[1] == 0xFE {
+ d.current = utf16le.NewDecoder()
+ bomSize = 2
+ } else if src[0] == 0xFE && src[1] == 0xFF {
+ d.current = utf16be.NewDecoder()
+ bomSize = 2
+ } else if len(src) >= 3 &&
+ src[0] == utf8BOM[0] &&
+ src[1] == utf8BOM[1] &&
+ src[2] == utf8BOM[2] {
+ d.current = transform.Nop
+ bomSize = 3
+ }
+ }
+ if bomSize < len(src) {
+ nDst, nSrc, err = d.current.Transform(dst, src[bomSize:], atEOF)
+ }
+ return nDst, nSrc + bomSize, err
+}
diff --git a/vendor/golang.org/x/text/encoding/unicode/unicode.go b/vendor/golang.org/x/text/encoding/unicode/unicode.go
new file mode 100644
index 000000000..579cadfb1
--- /dev/null
+++ b/vendor/golang.org/x/text/encoding/unicode/unicode.go
@@ -0,0 +1,434 @@
+// 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 unicode provides Unicode encodings such as UTF-16.
+package unicode // import "golang.org/x/text/encoding/unicode"
+
+import (
+ "errors"
+ "unicode/utf16"
+ "unicode/utf8"
+
+ "golang.org/x/text/encoding"
+ "golang.org/x/text/encoding/internal"
+ "golang.org/x/text/encoding/internal/identifier"
+ "golang.org/x/text/internal/utf8internal"
+ "golang.org/x/text/runes"
+ "golang.org/x/text/transform"
+)
+
+// TODO: I think the Transformers really should return errors on unmatched
+// surrogate pairs and odd numbers of bytes. This is not required by RFC 2781,
+// which leaves it open, but is suggested by WhatWG. It will allow for all error
+// modes as defined by WhatWG: fatal, HTML and Replacement. This would require
+// the introduction of some kind of error type for conveying the erroneous code
+// point.
+
+// UTF8 is the UTF-8 encoding.
+var UTF8 encoding.Encoding = utf8enc
+
+var utf8enc = &internal.Encoding{
+ &internal.SimpleEncoding{utf8Decoder{}, runes.ReplaceIllFormed()},
+ "UTF-8",
+ identifier.UTF8,
+}
+
+type utf8Decoder struct{ transform.NopResetter }
+
+func (utf8Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ var pSrc int // point from which to start copy in src
+ var accept utf8internal.AcceptRange
+
+ // The decoder can only make the input larger, not smaller.
+ n := len(src)
+ if len(dst) < n {
+ err = transform.ErrShortDst
+ n = len(dst)
+ atEOF = false
+ }
+ for nSrc < n {
+ c := src[nSrc]
+ if c < utf8.RuneSelf {
+ nSrc++
+ continue
+ }
+ first := utf8internal.First[c]
+ size := int(first & utf8internal.SizeMask)
+ if first == utf8internal.FirstInvalid {
+ goto handleInvalid // invalid starter byte
+ }
+ accept = utf8internal.AcceptRanges[first>>utf8internal.AcceptShift]
+ if nSrc+size > n {
+ if !atEOF {
+ // We may stop earlier than necessary here if the short sequence
+ // has invalid bytes. Not checking for this simplifies the code
+ // and may avoid duplicate computations in certain conditions.
+ if err == nil {
+ err = transform.ErrShortSrc
+ }
+ break
+ }
+ // Determine the maximal subpart of an ill-formed subsequence.
+ switch {
+ case nSrc+1 >= n || src[nSrc+1] < accept.Lo || accept.Hi < src[nSrc+1]:
+ size = 1
+ case nSrc+2 >= n || src[nSrc+2] < utf8internal.LoCB || utf8internal.HiCB < src[nSrc+2]:
+ size = 2
+ default:
+ size = 3 // As we are short, the maximum is 3.
+ }
+ goto handleInvalid
+ }
+ if c = src[nSrc+1]; c < accept.Lo || accept.Hi < c {
+ size = 1
+ goto handleInvalid // invalid continuation byte
+ } else if size == 2 {
+ } else if c = src[nSrc+2]; c < utf8internal.LoCB || utf8internal.HiCB < c {
+ size = 2
+ goto handleInvalid // invalid continuation byte
+ } else if size == 3 {
+ } else if c = src[nSrc+3]; c < utf8internal.LoCB || utf8internal.HiCB < c {
+ size = 3
+ goto handleInvalid // invalid continuation byte
+ }
+ nSrc += size
+ continue
+
+ handleInvalid:
+ // Copy the scanned input so far.
+ nDst += copy(dst[nDst:], src[pSrc:nSrc])
+
+ // Append RuneError to the destination.
+ const runeError = "\ufffd"
+ if nDst+len(runeError) > len(dst) {
+ return nDst, nSrc, transform.ErrShortDst
+ }
+ nDst += copy(dst[nDst:], runeError)
+
+ // Skip the maximal subpart of an ill-formed subsequence according to
+ // the W3C standard way instead of the Go way. This Transform is
+ // probably the only place in the text repo where it is warranted.
+ nSrc += size
+ pSrc = nSrc
+
+ // Recompute the maximum source length.
+ if sz := len(dst) - nDst; sz < len(src)-nSrc {
+ err = transform.ErrShortDst
+ n = nSrc + sz
+ atEOF = false
+ }
+ }
+ return nDst + copy(dst[nDst:], src[pSrc:nSrc]), nSrc, err
+}
+
+// UTF16 returns a UTF-16 Encoding for the given default endianness and byte
+// order mark (BOM) policy.
+//
+// When decoding from UTF-16 to UTF-8, if the BOMPolicy is IgnoreBOM then
+// neither BOMs U+FEFF nor noncharacters U+FFFE in the input stream will affect
+// the endianness used for decoding, and will instead be output as their
+// standard UTF-8 encodings: "\xef\xbb\xbf" and "\xef\xbf\xbe". If the BOMPolicy
+// is UseBOM or ExpectBOM a staring BOM is not written to the UTF-8 output.
+// Instead, it overrides the default endianness e for the remainder of the
+// transformation. Any subsequent BOMs U+FEFF or noncharacters U+FFFE will not
+// affect the endianness used, and will instead be output as their standard
+// UTF-8 encodings. For UseBOM, if there is no starting BOM, it will proceed
+// with the default Endianness. For ExpectBOM, in that case, the transformation
+// will return early with an ErrMissingBOM error.
+//
+// When encoding from UTF-8 to UTF-16, a BOM will be inserted at the start of
+// the output if the BOMPolicy is UseBOM or ExpectBOM. Otherwise, a BOM will not
+// be inserted. The UTF-8 input does not need to contain a BOM.
+//
+// There is no concept of a 'native' endianness. If the UTF-16 data is produced
+// and consumed in a greater context that implies a certain endianness, use
+// IgnoreBOM. Otherwise, use ExpectBOM and always produce and consume a BOM.
+//
+// In the language of http://www.unicode.org/faq/utf_bom.html#bom10, IgnoreBOM
+// corresponds to "Where the precise type of the data stream is known... the
+// BOM should not be used" and ExpectBOM corresponds to "A particular
+// protocol... may require use of the BOM".
+func UTF16(e Endianness, b BOMPolicy) encoding.Encoding {
+ return utf16Encoding{config{e, b}, mibValue[e][b&bomMask]}
+}
+
+// mibValue maps Endianness and BOMPolicy settings to MIB constants. Note that
+// some configurations map to the same MIB identifier. RFC 2781 has requirements
+// and recommendations. Some of the "configurations" are merely recommendations,
+// so multiple configurations could match.
+var mibValue = map[Endianness][numBOMValues]identifier.MIB{
+ BigEndian: [numBOMValues]identifier.MIB{
+ IgnoreBOM: identifier.UTF16BE,
+ UseBOM: identifier.UTF16, // BigEnding default is preferred by RFC 2781.
+ // TODO: acceptBOM | strictBOM would map to UTF16BE as well.
+ },
+ LittleEndian: [numBOMValues]identifier.MIB{
+ IgnoreBOM: identifier.UTF16LE,
+ UseBOM: identifier.UTF16, // LittleEndian default is allowed and preferred on Windows.
+ // TODO: acceptBOM | strictBOM would map to UTF16LE as well.
+ },
+ // ExpectBOM is not widely used and has no valid MIB identifier.
+}
+
+// All lists a configuration for each IANA-defined UTF-16 variant.
+var All = []encoding.Encoding{
+ UTF8,
+ UTF16(BigEndian, UseBOM),
+ UTF16(BigEndian, IgnoreBOM),
+ UTF16(LittleEndian, IgnoreBOM),
+}
+
+// BOMPolicy is a UTF-16 encoding's byte order mark policy.
+type BOMPolicy uint8
+
+const (
+ writeBOM BOMPolicy = 0x01
+ acceptBOM BOMPolicy = 0x02
+ requireBOM BOMPolicy = 0x04
+ bomMask BOMPolicy = 0x07
+
+ // HACK: numBOMValues == 8 triggers a bug in the 1.4 compiler (cannot have a
+ // map of an array of length 8 of a type that is also used as a key or value
+ // in another map). See golang.org/issue/11354.
+ // TODO: consider changing this value back to 8 if the use of 1.4.* has
+ // been minimized.
+ numBOMValues = 8 + 1
+
+ // IgnoreBOM means to ignore any byte order marks.
+ IgnoreBOM BOMPolicy = 0
+ // Common and RFC 2781-compliant interpretation for UTF-16BE/LE.
+
+ // UseBOM means that the UTF-16 form may start with a byte order mark, which
+ // will be used to override the default encoding.
+ UseBOM BOMPolicy = writeBOM | acceptBOM
+ // Common and RFC 2781-compliant interpretation for UTF-16.
+
+ // ExpectBOM means that the UTF-16 form must start with a byte order mark,
+ // which will be used to override the default encoding.
+ ExpectBOM BOMPolicy = writeBOM | acceptBOM | requireBOM
+ // Used in Java as Unicode (not to be confused with Java's UTF-16) and
+ // ICU's UTF-16,version=1. Not compliant with RFC 2781.
+
+ // TODO (maybe): strictBOM: BOM must match Endianness. This would allow:
+ // - UTF-16(B|L)E,version=1: writeBOM | acceptBOM | requireBOM | strictBOM
+ // (UnicodeBig and UnicodeLittle in Java)
+ // - RFC 2781-compliant, but less common interpretation for UTF-16(B|L)E:
+ // acceptBOM | strictBOM (e.g. assigned to CheckBOM).
+ // This addition would be consistent with supporting ExpectBOM.
+)
+
+// Endianness is a UTF-16 encoding's default endianness.
+type Endianness bool
+
+const (
+ // BigEndian is UTF-16BE.
+ BigEndian Endianness = false
+ // LittleEndian is UTF-16LE.
+ LittleEndian Endianness = true
+)
+
+// ErrMissingBOM means that decoding UTF-16 input with ExpectBOM did not find a
+// starting byte order mark.
+var ErrMissingBOM = errors.New("encoding: missing byte order mark")
+
+type utf16Encoding struct {
+ config
+ mib identifier.MIB
+}
+
+type config struct {
+ endianness Endianness
+ bomPolicy BOMPolicy
+}
+
+func (u utf16Encoding) NewDecoder() *encoding.Decoder {
+ return &encoding.Decoder{Transformer: &utf16Decoder{
+ initial: u.config,
+ current: u.config,
+ }}
+}
+
+func (u utf16Encoding) NewEncoder() *encoding.Encoder {
+ return &encoding.Encoder{Transformer: &utf16Encoder{
+ endianness: u.endianness,
+ initialBOMPolicy: u.bomPolicy,
+ currentBOMPolicy: u.bomPolicy,
+ }}
+}
+
+func (u utf16Encoding) ID() (mib identifier.MIB, other string) {
+ return u.mib, ""
+}
+
+func (u utf16Encoding) String() string {
+ e, b := "B", ""
+ if u.endianness == LittleEndian {
+ e = "L"
+ }
+ switch u.bomPolicy {
+ case ExpectBOM:
+ b = "Expect"
+ case UseBOM:
+ b = "Use"
+ case IgnoreBOM:
+ b = "Ignore"
+ }
+ return "UTF-16" + e + "E (" + b + " BOM)"
+}
+
+type utf16Decoder struct {
+ initial config
+ current config
+}
+
+func (u *utf16Decoder) Reset() {
+ u.current = u.initial
+}
+
+func (u *utf16Decoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if len(src) == 0 {
+ if atEOF && u.current.bomPolicy&requireBOM != 0 {
+ return 0, 0, ErrMissingBOM
+ }
+ return 0, 0, nil
+ }
+ if u.current.bomPolicy&acceptBOM != 0 {
+ if len(src) < 2 {
+ return 0, 0, transform.ErrShortSrc
+ }
+ switch {
+ case src[0] == 0xfe && src[1] == 0xff:
+ u.current.endianness = BigEndian
+ nSrc = 2
+ case src[0] == 0xff && src[1] == 0xfe:
+ u.current.endianness = LittleEndian
+ nSrc = 2
+ default:
+ if u.current.bomPolicy&requireBOM != 0 {
+ return 0, 0, ErrMissingBOM
+ }
+ }
+ u.current.bomPolicy = IgnoreBOM
+ }
+
+ var r rune
+ var dSize, sSize int
+ for nSrc < len(src) {
+ if nSrc+1 < len(src) {
+ x := uint16(src[nSrc+0])<<8 | uint16(src[nSrc+1])
+ if u.current.endianness == LittleEndian {
+ x = x>>8 | x<<8
+ }
+ r, sSize = rune(x), 2
+ if utf16.IsSurrogate(r) {
+ if nSrc+3 < len(src) {
+ x = uint16(src[nSrc+2])<<8 | uint16(src[nSrc+3])
+ if u.current.endianness == LittleEndian {
+ x = x>>8 | x<<8
+ }
+ // Save for next iteration if it is not a high surrogate.
+ if isHighSurrogate(rune(x)) {
+ r, sSize = utf16.DecodeRune(r, rune(x)), 4
+ }
+ } else if !atEOF {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ if dSize = utf8.RuneLen(r); dSize < 0 {
+ r, dSize = utf8.RuneError, 3
+ }
+ } else if atEOF {
+ // Single trailing byte.
+ r, dSize, sSize = utf8.RuneError, 3, 1
+ } else {
+ err = transform.ErrShortSrc
+ break
+ }
+ if nDst+dSize > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ nDst += utf8.EncodeRune(dst[nDst:], r)
+ nSrc += sSize
+ }
+ return nDst, nSrc, err
+}
+
+func isHighSurrogate(r rune) bool {
+ return 0xDC00 <= r && r <= 0xDFFF
+}
+
+type utf16Encoder struct {
+ endianness Endianness
+ initialBOMPolicy BOMPolicy
+ currentBOMPolicy BOMPolicy
+}
+
+func (u *utf16Encoder) Reset() {
+ u.currentBOMPolicy = u.initialBOMPolicy
+}
+
+func (u *utf16Encoder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ if u.currentBOMPolicy&writeBOM != 0 {
+ if len(dst) < 2 {
+ return 0, 0, transform.ErrShortDst
+ }
+ dst[0], dst[1] = 0xfe, 0xff
+ u.currentBOMPolicy = IgnoreBOM
+ nDst = 2
+ }
+
+ r, size := rune(0), 0
+ for nSrc < len(src) {
+ r = rune(src[nSrc])
+
+ // Decode a 1-byte rune.
+ if r < utf8.RuneSelf {
+ size = 1
+
+ } else {
+ // Decode a multi-byte rune.
+ r, size = utf8.DecodeRune(src[nSrc:])
+ if size == 1 {
+ // All valid runes of size 1 (those below utf8.RuneSelf) were
+ // handled above. We have invalid UTF-8 or we haven't seen the
+ // full character yet.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ }
+
+ if r <= 0xffff {
+ if nDst+2 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = uint8(r >> 8)
+ dst[nDst+1] = uint8(r)
+ nDst += 2
+ } else {
+ if nDst+4 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ r1, r2 := utf16.EncodeRune(r)
+ dst[nDst+0] = uint8(r1 >> 8)
+ dst[nDst+1] = uint8(r1)
+ dst[nDst+2] = uint8(r2 >> 8)
+ dst[nDst+3] = uint8(r2)
+ nDst += 4
+ }
+ nSrc += size
+ }
+
+ if u.endianness == LittleEndian {
+ for i := 0; i < nDst; i += 2 {
+ dst[i], dst[i+1] = dst[i+1], dst[i]
+ }
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/internal/gen/code.go b/vendor/golang.org/x/text/internal/gen/code.go
new file mode 100644
index 000000000..2202c9f64
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/gen/code.go
@@ -0,0 +1,339 @@
+// 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 gen
+
+import (
+ "bytes"
+ "encoding/gob"
+ "fmt"
+ "hash"
+ "hash/fnv"
+ "io"
+ "log"
+ "os"
+ "reflect"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+// This file contains utilities for generating code.
+
+// TODO: other write methods like:
+// - slices, maps, types, etc.
+
+// CodeWriter is a utility for writing structured code. It computes the content
+// hash and size of written content. It ensures there are newlines between
+// written code blocks.
+type CodeWriter struct {
+ buf bytes.Buffer
+ Size int
+ Hash hash.Hash32 // content hash
+ gob *gob.Encoder
+ // For comments we skip the usual one-line separator if they are followed by
+ // a code block.
+ skipSep bool
+}
+
+func (w *CodeWriter) Write(p []byte) (n int, err error) {
+ return w.buf.Write(p)
+}
+
+// NewCodeWriter returns a new CodeWriter.
+func NewCodeWriter() *CodeWriter {
+ h := fnv.New32()
+ return &CodeWriter{Hash: h, gob: gob.NewEncoder(h)}
+}
+
+// WriteGoFile appends the buffer with the total size of all created structures
+// and writes it as a Go file to the the given file with the given package name.
+func (w *CodeWriter) WriteGoFile(filename, pkg string) {
+ f, err := os.Create(filename)
+ if err != nil {
+ log.Fatalf("Could not create file %s: %v", filename, err)
+ }
+ defer f.Close()
+ if _, err = w.WriteGo(f, pkg); err != nil {
+ log.Fatalf("Error writing file %s: %v", filename, err)
+ }
+}
+
+// WriteGo appends the buffer with the total size of all created structures and
+// writes it as a Go file to the the given writer with the given package name.
+func (w *CodeWriter) WriteGo(out io.Writer, pkg string) (n int, err error) {
+ sz := w.Size
+ w.WriteComment("Total table size %d bytes (%dKiB); checksum: %X\n", sz, sz/1024, w.Hash.Sum32())
+ defer w.buf.Reset()
+ return WriteGo(out, pkg, w.buf.Bytes())
+}
+
+func (w *CodeWriter) printf(f string, x ...interface{}) {
+ fmt.Fprintf(w, f, x...)
+}
+
+func (w *CodeWriter) insertSep() {
+ if w.skipSep {
+ w.skipSep = false
+ return
+ }
+ // Use at least two newlines to ensure a blank space between the previous
+ // block. WriteGoFile will remove extraneous newlines.
+ w.printf("\n\n")
+}
+
+// WriteComment writes a comment block. All line starts are prefixed with "//".
+// Initial empty lines are gobbled. The indentation for the first line is
+// stripped from consecutive lines.
+func (w *CodeWriter) WriteComment(comment string, args ...interface{}) {
+ s := fmt.Sprintf(comment, args...)
+ s = strings.Trim(s, "\n")
+
+ // Use at least two newlines to ensure a blank space between the previous
+ // block. WriteGoFile will remove extraneous newlines.
+ w.printf("\n\n// ")
+ w.skipSep = true
+
+ // strip first indent level.
+ sep := "\n"
+ for ; len(s) > 0 && (s[0] == '\t' || s[0] == ' '); s = s[1:] {
+ sep += s[:1]
+ }
+
+ strings.NewReplacer(sep, "\n// ", "\n", "\n// ").WriteString(w, s)
+
+ w.printf("\n")
+}
+
+func (w *CodeWriter) writeSizeInfo(size int) {
+ w.printf("// Size: %d bytes\n", size)
+}
+
+// WriteConst writes a constant of the given name and value.
+func (w *CodeWriter) WriteConst(name string, x interface{}) {
+ w.insertSep()
+ v := reflect.ValueOf(x)
+
+ switch v.Type().Kind() {
+ case reflect.String:
+ // See golang.org/issue/13145.
+ const arbitraryCutoff = 16
+ if v.Len() > arbitraryCutoff {
+ w.printf("var %s %s = ", name, typeName(x))
+ } else {
+ w.printf("const %s %s = ", name, typeName(x))
+ }
+ w.WriteString(v.String())
+ w.printf("\n")
+ default:
+ w.printf("const %s = %#v\n", name, x)
+ }
+}
+
+// WriteVar writes a variable of the given name and value.
+func (w *CodeWriter) WriteVar(name string, x interface{}) {
+ w.insertSep()
+ v := reflect.ValueOf(x)
+ oldSize := w.Size
+ sz := int(v.Type().Size())
+ w.Size += sz
+
+ switch v.Type().Kind() {
+ case reflect.String:
+ w.printf("var %s %s = ", name, typeName(x))
+ w.WriteString(v.String())
+ case reflect.Struct:
+ w.gob.Encode(x)
+ fallthrough
+ case reflect.Slice, reflect.Array:
+ w.printf("var %s = ", name)
+ w.writeValue(v)
+ w.writeSizeInfo(w.Size - oldSize)
+ default:
+ w.printf("var %s %s = ", name, typeName(x))
+ w.gob.Encode(x)
+ w.writeValue(v)
+ w.writeSizeInfo(w.Size - oldSize)
+ }
+ w.printf("\n")
+}
+
+func (w *CodeWriter) writeValue(v reflect.Value) {
+ x := v.Interface()
+ switch v.Kind() {
+ case reflect.String:
+ w.WriteString(v.String())
+ case reflect.Array:
+ // Don't double count: callers of WriteArray count on the size being
+ // added, so we need to discount it here.
+ w.Size -= int(v.Type().Size())
+ w.writeSlice(x, true)
+ case reflect.Slice:
+ w.writeSlice(x, false)
+ case reflect.Struct:
+ w.printf("%s{\n", typeName(v.Interface()))
+ t := v.Type()
+ for i := 0; i < v.NumField(); i++ {
+ w.printf("%s: ", t.Field(i).Name)
+ w.writeValue(v.Field(i))
+ w.printf(",\n")
+ }
+ w.printf("}")
+ default:
+ w.printf("%#v", x)
+ }
+}
+
+// WriteString writes a string literal.
+func (w *CodeWriter) WriteString(s string) {
+ s = strings.Replace(s, `\`, `\\`, -1)
+ io.WriteString(w.Hash, s) // content hash
+ w.Size += len(s)
+
+ const maxInline = 40
+ if len(s) <= maxInline {
+ w.printf("%q", s)
+ return
+ }
+
+ // We will render the string as a multi-line string.
+ const maxWidth = 80 - 4 - len(`"`) - len(`" +`)
+
+ // When starting on its own line, go fmt indents line 2+ an extra level.
+ n, max := maxWidth, maxWidth-4
+
+ // Print "" +\n, if a string does not start on its own line.
+ b := w.buf.Bytes()
+ if p := len(bytes.TrimRight(b, " \t")); p > 0 && b[p-1] != '\n' {
+ w.printf("\"\" + // Size: %d bytes\n", len(s))
+ n, max = maxWidth, maxWidth
+ }
+
+ w.printf(`"`)
+
+ for sz, p := 0, 0; p < len(s); {
+ var r rune
+ r, sz = utf8.DecodeRuneInString(s[p:])
+ out := s[p : p+sz]
+ chars := 1
+ if !unicode.IsPrint(r) || r == utf8.RuneError || r == '"' {
+ switch sz {
+ case 1:
+ out = fmt.Sprintf("\\x%02x", s[p])
+ case 2, 3:
+ out = fmt.Sprintf("\\u%04x", r)
+ case 4:
+ out = fmt.Sprintf("\\U%08x", r)
+ }
+ chars = len(out)
+ }
+ if n -= chars; n < 0 {
+ w.printf("\" +\n\"")
+ n = max - len(out)
+ }
+ w.printf("%s", out)
+ p += sz
+ }
+ w.printf(`"`)
+}
+
+// WriteSlice writes a slice value.
+func (w *CodeWriter) WriteSlice(x interface{}) {
+ w.writeSlice(x, false)
+}
+
+// WriteArray writes an array value.
+func (w *CodeWriter) WriteArray(x interface{}) {
+ w.writeSlice(x, true)
+}
+
+func (w *CodeWriter) writeSlice(x interface{}, isArray bool) {
+ v := reflect.ValueOf(x)
+ w.gob.Encode(v.Len())
+ w.Size += v.Len() * int(v.Type().Elem().Size())
+ name := typeName(x)
+ if isArray {
+ name = fmt.Sprintf("[%d]%s", v.Len(), name[strings.Index(name, "]")+1:])
+ }
+ if isArray {
+ w.printf("%s{\n", name)
+ } else {
+ w.printf("%s{ // %d elements\n", name, v.Len())
+ }
+
+ switch kind := v.Type().Elem().Kind(); kind {
+ case reflect.String:
+ for _, s := range x.([]string) {
+ w.WriteString(s)
+ w.printf(",\n")
+ }
+ case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
+ reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
+ // nLine and nBlock are the number of elements per line and block.
+ nLine, nBlock, format := 8, 64, "%d,"
+ switch kind {
+ case reflect.Uint8:
+ format = "%#02x,"
+ case reflect.Uint16:
+ format = "%#04x,"
+ case reflect.Uint32:
+ nLine, nBlock, format = 4, 32, "%#08x,"
+ case reflect.Uint, reflect.Uint64:
+ nLine, nBlock, format = 4, 32, "%#016x,"
+ case reflect.Int8:
+ nLine = 16
+ }
+ n := nLine
+ for i := 0; i < v.Len(); i++ {
+ if i%nBlock == 0 && v.Len() > nBlock {
+ w.printf("// Entry %X - %X\n", i, i+nBlock-1)
+ }
+ x := v.Index(i).Interface()
+ w.gob.Encode(x)
+ w.printf(format, x)
+ if n--; n == 0 {
+ n = nLine
+ w.printf("\n")
+ }
+ }
+ w.printf("\n")
+ case reflect.Struct:
+ zero := reflect.Zero(v.Type().Elem()).Interface()
+ for i := 0; i < v.Len(); i++ {
+ x := v.Index(i).Interface()
+ w.gob.EncodeValue(v)
+ if !reflect.DeepEqual(zero, x) {
+ line := fmt.Sprintf("%#v,\n", x)
+ line = line[strings.IndexByte(line, '{'):]
+ w.printf("%d: ", i)
+ w.printf(line)
+ }
+ }
+ case reflect.Array:
+ for i := 0; i < v.Len(); i++ {
+ w.printf("%d: %#v,\n", i, v.Index(i).Interface())
+ }
+ default:
+ panic("gen: slice elem type not supported")
+ }
+ w.printf("}")
+}
+
+// WriteType writes a definition of the type of the given value and returns the
+// type name.
+func (w *CodeWriter) WriteType(x interface{}) string {
+ t := reflect.TypeOf(x)
+ w.printf("type %s struct {\n", t.Name())
+ for i := 0; i < t.NumField(); i++ {
+ w.printf("\t%s %s\n", t.Field(i).Name, t.Field(i).Type)
+ }
+ w.printf("}\n")
+ return t.Name()
+}
+
+// typeName returns the name of the go type of x.
+func typeName(x interface{}) string {
+ t := reflect.ValueOf(x).Type()
+ return strings.Replace(fmt.Sprint(t), "main.", "", 1)
+}
diff --git a/vendor/golang.org/x/text/internal/gen/gen.go b/vendor/golang.org/x/text/internal/gen/gen.go
new file mode 100644
index 000000000..84c699faa
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/gen/gen.go
@@ -0,0 +1,281 @@
+// 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 gen contains common code for the various code generation tools in the
+// text repository. Its usage ensures consistency between tools.
+//
+// This package defines command line flags that are common to most generation
+// tools. The flags allow for specifying specific Unicode and CLDR versions
+// in the public Unicode data repository (http://www.unicode.org/Public).
+//
+// A local Unicode data mirror can be set through the flag -local or the
+// environment variable UNICODE_DIR. The former takes precedence. The local
+// directory should follow the same structure as the public repository.
+//
+// IANA data can also optionally be mirrored by putting it in the iana directory
+// rooted at the top of the local mirror. Beware, though, that IANA data is not
+// versioned. So it is up to the developer to use the right version.
+package gen // import "golang.org/x/text/internal/gen"
+
+import (
+ "bytes"
+ "flag"
+ "fmt"
+ "go/build"
+ "go/format"
+ "io"
+ "io/ioutil"
+ "log"
+ "net/http"
+ "os"
+ "path"
+ "path/filepath"
+ "sync"
+ "unicode"
+
+ "golang.org/x/text/unicode/cldr"
+)
+
+var (
+ url = flag.String("url",
+ "http://www.unicode.org/Public",
+ "URL of Unicode database directory")
+ iana = flag.String("iana",
+ "http://www.iana.org",
+ "URL of the IANA repository")
+ unicodeVersion = flag.String("unicode",
+ getEnv("UNICODE_VERSION", unicode.Version),
+ "unicode version to use")
+ cldrVersion = flag.String("cldr",
+ getEnv("CLDR_VERSION", cldr.Version),
+ "cldr version to use")
+)
+
+func getEnv(name, def string) string {
+ if v := os.Getenv(name); v != "" {
+ return v
+ }
+ return def
+}
+
+// Init performs common initialization for a gen command. It parses the flags
+// and sets up the standard logging parameters.
+func Init() {
+ log.SetPrefix("")
+ log.SetFlags(log.Lshortfile)
+ flag.Parse()
+}
+
+const header = `// This file was generated by go generate; DO NOT EDIT
+
+package %s
+
+`
+
+// UnicodeVersion reports the requested Unicode version.
+func UnicodeVersion() string {
+ return *unicodeVersion
+}
+
+// UnicodeVersion reports the requested CLDR version.
+func CLDRVersion() string {
+ return *cldrVersion
+}
+
+// IsLocal reports whether data files are available locally.
+func IsLocal() bool {
+ dir, err := localReadmeFile()
+ if err != nil {
+ return false
+ }
+ if _, err = os.Stat(dir); err != nil {
+ return false
+ }
+ return true
+}
+
+// OpenUCDFile opens the requested UCD file. The file is specified relative to
+// the public Unicode root directory. It will call log.Fatal if there are any
+// errors.
+func OpenUCDFile(file string) io.ReadCloser {
+ return openUnicode(path.Join(*unicodeVersion, "ucd", file))
+}
+
+// OpenCLDRCoreZip opens the CLDR core zip file. It will call log.Fatal if there
+// are any errors.
+func OpenCLDRCoreZip() io.ReadCloser {
+ return OpenUnicodeFile("cldr", *cldrVersion, "core.zip")
+}
+
+// OpenUnicodeFile opens the requested file of the requested category from the
+// root of the Unicode data archive. The file is specified relative to the
+// public Unicode root directory. If version is "", it will use the default
+// Unicode version. It will call log.Fatal if there are any errors.
+func OpenUnicodeFile(category, version, file string) io.ReadCloser {
+ if version == "" {
+ version = UnicodeVersion()
+ }
+ return openUnicode(path.Join(category, version, file))
+}
+
+// OpenIANAFile opens the requested IANA file. The file is specified relative
+// to the IANA root, which is typically either http://www.iana.org or the
+// iana directory in the local mirror. It will call log.Fatal if there are any
+// errors.
+func OpenIANAFile(path string) io.ReadCloser {
+ return Open(*iana, "iana", path)
+}
+
+var (
+ dirMutex sync.Mutex
+ localDir string
+)
+
+const permissions = 0755
+
+func localReadmeFile() (string, error) {
+ p, err := build.Import("golang.org/x/text", "", build.FindOnly)
+ if err != nil {
+ return "", fmt.Errorf("Could not locate package: %v", err)
+ }
+ return filepath.Join(p.Dir, "DATA", "README"), nil
+}
+
+func getLocalDir() string {
+ dirMutex.Lock()
+ defer dirMutex.Unlock()
+
+ readme, err := localReadmeFile()
+ if err != nil {
+ log.Fatal(err)
+ }
+ dir := filepath.Dir(readme)
+ if _, err := os.Stat(readme); err != nil {
+ if err := os.MkdirAll(dir, permissions); err != nil {
+ log.Fatalf("Could not create directory: %v", err)
+ }
+ ioutil.WriteFile(readme, []byte(readmeTxt), permissions)
+ }
+ return dir
+}
+
+const readmeTxt = `Generated by golang.org/x/text/internal/gen. DO NOT EDIT.
+
+This directory contains downloaded files used to generate the various tables
+in the golang.org/x/text subrepo.
+
+Note that the language subtag repo (iana/assignments/language-subtag-registry)
+and all other times in the iana subdirectory are not versioned and will need
+to be periodically manually updated. The easiest way to do this is to remove
+the entire iana directory. This is mostly of concern when updating the language
+package.
+`
+
+// Open opens subdir/path if a local directory is specified and the file exists,
+// where subdir is a directory relative to the local root, or fetches it from
+// urlRoot/path otherwise. It will call log.Fatal if there are any errors.
+func Open(urlRoot, subdir, path string) io.ReadCloser {
+ file := filepath.Join(getLocalDir(), subdir, filepath.FromSlash(path))
+ return open(file, urlRoot, path)
+}
+
+func openUnicode(path string) io.ReadCloser {
+ file := filepath.Join(getLocalDir(), filepath.FromSlash(path))
+ return open(file, *url, path)
+}
+
+// TODO: automatically periodically update non-versioned files.
+
+func open(file, urlRoot, path string) io.ReadCloser {
+ if f, err := os.Open(file); err == nil {
+ return f
+ }
+ r := get(urlRoot, path)
+ defer r.Close()
+ b, err := ioutil.ReadAll(r)
+ if err != nil {
+ log.Fatalf("Could not download file: %v", err)
+ }
+ os.MkdirAll(filepath.Dir(file), permissions)
+ if err := ioutil.WriteFile(file, b, permissions); err != nil {
+ log.Fatalf("Could not create file: %v", err)
+ }
+ return ioutil.NopCloser(bytes.NewReader(b))
+}
+
+func get(root, path string) io.ReadCloser {
+ url := root + "/" + path
+ fmt.Printf("Fetching %s...", url)
+ defer fmt.Println(" done.")
+ resp, err := http.Get(url)
+ if err != nil {
+ log.Fatalf("HTTP GET: %v", err)
+ }
+ if resp.StatusCode != 200 {
+ log.Fatalf("Bad GET status for %q: %q", url, resp.Status)
+ }
+ return resp.Body
+}
+
+// TODO: use Write*Version in all applicable packages.
+
+// WriteUnicodeVersion writes a constant for the Unicode version from which the
+// tables are generated.
+func WriteUnicodeVersion(w io.Writer) {
+ fmt.Fprintf(w, "// UnicodeVersion is the Unicode version from which the tables in this package are derived.\n")
+ fmt.Fprintf(w, "const UnicodeVersion = %q\n\n", UnicodeVersion())
+}
+
+// WriteCLDRVersion writes a constant for the CLDR version from which the
+// tables are generated.
+func WriteCLDRVersion(w io.Writer) {
+ fmt.Fprintf(w, "// CLDRVersion is the CLDR version from which the tables in this package are derived.\n")
+ fmt.Fprintf(w, "const CLDRVersion = %q\n\n", CLDRVersion())
+}
+
+// WriteGoFile prepends a standard file comment and package statement to the
+// given bytes, applies gofmt, and writes them to a file with the given name.
+// It will call log.Fatal if there are any errors.
+func WriteGoFile(filename, pkg string, b []byte) {
+ w, err := os.Create(filename)
+ if err != nil {
+ log.Fatalf("Could not create file %s: %v", filename, err)
+ }
+ defer w.Close()
+ if _, err = WriteGo(w, pkg, b); err != nil {
+ log.Fatalf("Error writing file %s: %v", filename, err)
+ }
+}
+
+// WriteGo prepends a standard file comment and package statement to the given
+// bytes, applies gofmt, and writes them to w.
+func WriteGo(w io.Writer, pkg string, b []byte) (n int, err error) {
+ src := []byte(fmt.Sprintf(header, pkg))
+ src = append(src, b...)
+ formatted, err := format.Source(src)
+ if err != nil {
+ // Print the generated code even in case of an error so that the
+ // returned error can be meaningfully interpreted.
+ n, _ = w.Write(src)
+ return n, err
+ }
+ return w.Write(formatted)
+}
+
+// Repackage rewrites a Go file from belonging to package main to belonging to
+// the given package.
+func Repackage(inFile, outFile, pkg string) {
+ src, err := ioutil.ReadFile(inFile)
+ if err != nil {
+ log.Fatalf("reading %s: %v", inFile, err)
+ }
+ const toDelete = "package main\n\n"
+ i := bytes.Index(src, []byte(toDelete))
+ if i < 0 {
+ log.Fatalf("Could not find %q in %s.", toDelete, inFile)
+ }
+ w := &bytes.Buffer{}
+ w.Write(src[i+len(toDelete):])
+ WriteGoFile(outFile, pkg, w.Bytes())
+}
diff --git a/vendor/golang.org/x/text/internal/tag/tag.go b/vendor/golang.org/x/text/internal/tag/tag.go
new file mode 100644
index 000000000..b5d348891
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/tag/tag.go
@@ -0,0 +1,100 @@
+// 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 tag contains functionality handling tags and related data.
+package tag // import "golang.org/x/text/internal/tag"
+
+import "sort"
+
+// An Index converts tags to a compact numeric value.
+//
+// All elements are of size 4. Tags may be up to 4 bytes long. Excess bytes can
+// be used to store additional information about the tag.
+type Index string
+
+// Elem returns the element data at the given index.
+func (s Index) Elem(x int) string {
+ return string(s[x*4 : x*4+4])
+}
+
+// Index reports the index of the given key or -1 if it could not be found.
+// Only the first len(key) bytes from the start of the 4-byte entries will be
+// considered for the search and the first match in Index will be returned.
+func (s Index) Index(key []byte) int {
+ n := len(key)
+ // search the index of the first entry with an equal or higher value than
+ // key in s.
+ index := sort.Search(len(s)/4, func(i int) bool {
+ return cmp(s[i*4:i*4+n], key) != -1
+ })
+ i := index * 4
+ if cmp(s[i:i+len(key)], key) != 0 {
+ return -1
+ }
+ return index
+}
+
+// Next finds the next occurrence of key after index x, which must have been
+// obtained from a call to Index using the same key. It returns x+1 or -1.
+func (s Index) Next(key []byte, x int) int {
+ if x++; x*4 < len(s) && cmp(s[x*4:x*4+len(key)], key) == 0 {
+ return x
+ }
+ return -1
+}
+
+// cmp returns an integer comparing a and b lexicographically.
+func cmp(a Index, b []byte) int {
+ n := len(a)
+ if len(b) < n {
+ n = len(b)
+ }
+ for i, c := range b[:n] {
+ switch {
+ case a[i] > c:
+ return 1
+ case a[i] < c:
+ return -1
+ }
+ }
+ switch {
+ case len(a) < len(b):
+ return -1
+ case len(a) > len(b):
+ return 1
+ }
+ return 0
+}
+
+// Compare returns an integer comparing a and b lexicographically.
+func Compare(a string, b []byte) int {
+ return cmp(Index(a), b)
+}
+
+// FixCase reformats b to the same pattern of cases as form.
+// If returns false if string b is malformed.
+func FixCase(form string, b []byte) bool {
+ if len(form) != len(b) {
+ return false
+ }
+ for i, c := range b {
+ if form[i] <= 'Z' {
+ if c >= 'a' {
+ c -= 'z' - 'Z'
+ }
+ if c < 'A' || 'Z' < c {
+ return false
+ }
+ } else {
+ if c <= 'Z' {
+ c += 'z' - 'Z'
+ }
+ if c < 'a' || 'z' < c {
+ return false
+ }
+ }
+ b[i] = c
+ }
+ return true
+}
diff --git a/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
new file mode 100644
index 000000000..575cea870
--- /dev/null
+++ b/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go
@@ -0,0 +1,87 @@
+// 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 utf8internal contains low-level utf8-related constants, tables, etc.
+// that are used internally by the text package.
+package utf8internal
+
+// The default lowest and highest continuation byte.
+const (
+ LoCB = 0x80 // 1000 0000
+ HiCB = 0xBF // 1011 1111
+)
+
+// Constants related to getting information of first bytes of UTF-8 sequences.
+const (
+ // ASCII identifies a UTF-8 byte as ASCII.
+ ASCII = as
+
+ // FirstInvalid indicates a byte is invalid as a first byte of a UTF-8
+ // sequence.
+ FirstInvalid = xx
+
+ // SizeMask is a mask for the size bits. Use use x&SizeMask to get the size.
+ SizeMask = 7
+
+ // AcceptShift is the right-shift count for the first byte info byte to get
+ // the index into the AcceptRanges table. See AcceptRanges.
+ AcceptShift = 4
+
+ // The names of these constants are chosen to give nice alignment in the
+ // table below. The first nibble is an index into acceptRanges or F for
+ // special one-byte cases. The second nibble is the Rune length or the
+ // Status for the special one-byte case.
+ xx = 0xF1 // invalid: size 1
+ as = 0xF0 // ASCII: size 1
+ s1 = 0x02 // accept 0, size 2
+ s2 = 0x13 // accept 1, size 3
+ s3 = 0x03 // accept 0, size 3
+ s4 = 0x23 // accept 2, size 3
+ s5 = 0x34 // accept 3, size 4
+ s6 = 0x04 // accept 0, size 4
+ s7 = 0x44 // accept 4, size 4
+)
+
+// First is information about the first byte in a UTF-8 sequence.
+var First = [256]uint8{
+ // 1 2 3 4 5 6 7 8 9 A B C D E F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x00-0x0F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x10-0x1F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x20-0x2F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x30-0x3F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x40-0x4F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x50-0x5F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x60-0x6F
+ as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, as, // 0x70-0x7F
+ // 1 2 3 4 5 6 7 8 9 A B C D E F
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x80-0x8F
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0x90-0x9F
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xA0-0xAF
+ xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xB0-0xBF
+ xx, xx, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xC0-0xCF
+ s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, s1, // 0xD0-0xDF
+ s2, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s3, s4, s3, s3, // 0xE0-0xEF
+ s5, s6, s6, s6, s7, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, // 0xF0-0xFF
+}
+
+// AcceptRange gives the range of valid values for the second byte in a UTF-8
+// sequence for any value for First that is not ASCII or FirstInvalid.
+type AcceptRange struct {
+ Lo uint8 // lowest value for second byte.
+ Hi uint8 // highest value for second byte.
+}
+
+// AcceptRanges is a slice of AcceptRange values. For a given byte sequence b
+//
+// AcceptRanges[First[b[0]]>>AcceptShift]
+//
+// will give the value of AcceptRange for the multi-byte UTF-8 sequence starting
+// at b[0].
+var AcceptRanges = [...]AcceptRange{
+ 0: {LoCB, HiCB},
+ 1: {0xA0, HiCB},
+ 2: {LoCB, 0x9F},
+ 3: {0x90, HiCB},
+ 4: {LoCB, 0x8F},
+}
diff --git a/vendor/golang.org/x/text/language/Makefile b/vendor/golang.org/x/text/language/Makefile
new file mode 100644
index 000000000..79f005784
--- /dev/null
+++ b/vendor/golang.org/x/text/language/Makefile
@@ -0,0 +1,16 @@
+# 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.
+
+CLEANFILES+=maketables
+
+maketables: maketables.go
+ go build $^
+
+tables: maketables
+ ./maketables > tables.go
+ gofmt -w -s tables.go
+
+# Build (but do not run) maketables during testing,
+# just to make sure it still compiles.
+testshort: maketables
diff --git a/vendor/golang.org/x/text/language/common.go b/vendor/golang.org/x/text/language/common.go
new file mode 100644
index 000000000..a255bb0a5
--- /dev/null
+++ b/vendor/golang.org/x/text/language/common.go
@@ -0,0 +1,16 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package language
+
+// This file contains code common to the maketables.go and the package code.
+
+// langAliasType is the type of an alias in langAliasMap.
+type langAliasType int8
+
+const (
+ langDeprecated langAliasType = iota
+ langMacro
+ langLegacy
+
+ langAliasTypeUnknown langAliasType = -1
+)
diff --git a/vendor/golang.org/x/text/language/coverage.go b/vendor/golang.org/x/text/language/coverage.go
new file mode 100644
index 000000000..101fd23c1
--- /dev/null
+++ b/vendor/golang.org/x/text/language/coverage.go
@@ -0,0 +1,197 @@
+// 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 language
+
+import (
+ "fmt"
+ "sort"
+)
+
+// The Coverage interface is used to define the level of coverage of an
+// internationalization service. Note that not all types are supported by all
+// services. As lists may be generated on the fly, it is recommended that users
+// of a Coverage cache the results.
+type Coverage interface {
+ // Tags returns the list of supported tags.
+ Tags() []Tag
+
+ // BaseLanguages returns the list of supported base languages.
+ BaseLanguages() []Base
+
+ // Scripts returns the list of supported scripts.
+ Scripts() []Script
+
+ // Regions returns the list of supported regions.
+ Regions() []Region
+}
+
+var (
+ // Supported defines a Coverage that lists all supported subtags. Tags
+ // always returns nil.
+ Supported Coverage = allSubtags{}
+)
+
+// TODO:
+// - Support Variants, numbering systems.
+// - CLDR coverage levels.
+// - Set of common tags defined in this package.
+
+type allSubtags struct{}
+
+// Regions returns the list of supported regions. As all regions are in a
+// consecutive range, it simply returns a slice of numbers in increasing order.
+// The "undefined" region is not returned.
+func (s allSubtags) Regions() []Region {
+ reg := make([]Region, numRegions)
+ for i := range reg {
+ reg[i] = Region{regionID(i + 1)}
+ }
+ return reg
+}
+
+// Scripts returns the list of supported scripts. As all scripts are in a
+// consecutive range, it simply returns a slice of numbers in increasing order.
+// The "undefined" script is not returned.
+func (s allSubtags) Scripts() []Script {
+ scr := make([]Script, numScripts)
+ for i := range scr {
+ scr[i] = Script{scriptID(i + 1)}
+ }
+ return scr
+}
+
+// BaseLanguages returns the list of all supported base languages. It generates
+// the list by traversing the internal structures.
+func (s allSubtags) BaseLanguages() []Base {
+ base := make([]Base, 0, numLanguages)
+ for i := 0; i < langNoIndexOffset; i++ {
+ // We included "und" already for the value 0.
+ if i != nonCanonicalUnd {
+ base = append(base, Base{langID(i)})
+ }
+ }
+ i := langNoIndexOffset
+ for _, v := range langNoIndex {
+ for k := 0; k < 8; k++ {
+ if v&1 == 1 {
+ base = append(base, Base{langID(i)})
+ }
+ v >>= 1
+ i++
+ }
+ }
+ return base
+}
+
+// Tags always returns nil.
+func (s allSubtags) Tags() []Tag {
+ return nil
+}
+
+// coverage is used used by NewCoverage which is used as a convenient way for
+// creating Coverage implementations for partially defined data. Very often a
+// package will only need to define a subset of slices. coverage provides a
+// convenient way to do this. Moreover, packages using NewCoverage, instead of
+// their own implementation, will not break if later new slice types are added.
+type coverage struct {
+ tags func() []Tag
+ bases func() []Base
+ scripts func() []Script
+ regions func() []Region
+}
+
+func (s *coverage) Tags() []Tag {
+ if s.tags == nil {
+ return nil
+ }
+ return s.tags()
+}
+
+// bases implements sort.Interface and is used to sort base languages.
+type bases []Base
+
+func (b bases) Len() int {
+ return len(b)
+}
+
+func (b bases) Swap(i, j int) {
+ b[i], b[j] = b[j], b[i]
+}
+
+func (b bases) Less(i, j int) bool {
+ return b[i].langID < b[j].langID
+}
+
+// BaseLanguages returns the result from calling s.bases if it is specified or
+// otherwise derives the set of supported base languages from tags.
+func (s *coverage) BaseLanguages() []Base {
+ if s.bases == nil {
+ tags := s.Tags()
+ if len(tags) == 0 {
+ return nil
+ }
+ a := make([]Base, len(tags))
+ for i, t := range tags {
+ a[i] = Base{langID(t.lang)}
+ }
+ sort.Sort(bases(a))
+ k := 0
+ for i := 1; i < len(a); i++ {
+ if a[k] != a[i] {
+ k++
+ a[k] = a[i]
+ }
+ }
+ return a[:k+1]
+ }
+ return s.bases()
+}
+
+func (s *coverage) Scripts() []Script {
+ if s.scripts == nil {
+ return nil
+ }
+ return s.scripts()
+}
+
+func (s *coverage) Regions() []Region {
+ if s.regions == nil {
+ return nil
+ }
+ return s.regions()
+}
+
+// NewCoverage returns a Coverage for the given lists. It is typically used by
+// packages providing internationalization services to define their level of
+// coverage. A list may be of type []T or func() []T, where T is either Tag,
+// Base, Script or Region. The returned Coverage derives the value for Bases
+// from Tags if no func or slice for []Base is specified. For other unspecified
+// types the returned Coverage will return nil for the respective methods.
+func NewCoverage(list ...interface{}) Coverage {
+ s := &coverage{}
+ for _, x := range list {
+ switch v := x.(type) {
+ case func() []Base:
+ s.bases = v
+ case func() []Script:
+ s.scripts = v
+ case func() []Region:
+ s.regions = v
+ case func() []Tag:
+ s.tags = v
+ case []Base:
+ s.bases = func() []Base { return v }
+ case []Script:
+ s.scripts = func() []Script { return v }
+ case []Region:
+ s.regions = func() []Region { return v }
+ case []Tag:
+ s.tags = func() []Tag { return v }
+ default:
+ panic(fmt.Sprintf("language: unsupported set type %T", v))
+ }
+ }
+ return s
+}
diff --git a/vendor/golang.org/x/text/language/gen_common.go b/vendor/golang.org/x/text/language/gen_common.go
new file mode 100644
index 000000000..83ce18013
--- /dev/null
+++ b/vendor/golang.org/x/text/language/gen_common.go
@@ -0,0 +1,20 @@
+// 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 ignore
+
+package main
+
+// This file contains code common to the maketables.go and the package code.
+
+// langAliasType is the type of an alias in langAliasMap.
+type langAliasType int8
+
+const (
+ langDeprecated langAliasType = iota
+ langMacro
+ langLegacy
+
+ langAliasTypeUnknown langAliasType = -1
+)
diff --git a/vendor/golang.org/x/text/language/gen_index.go b/vendor/golang.org/x/text/language/gen_index.go
new file mode 100644
index 000000000..eef555cd3
--- /dev/null
+++ b/vendor/golang.org/x/text/language/gen_index.go
@@ -0,0 +1,162 @@
+// 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 ignore
+
+package main
+
+// This file generates derivative tables based on the language package itself.
+
+import (
+ "bytes"
+ "flag"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "reflect"
+ "sort"
+ "strings"
+
+ "golang.org/x/text/internal/gen"
+ "golang.org/x/text/language"
+ "golang.org/x/text/unicode/cldr"
+)
+
+var (
+ test = flag.Bool("test", false,
+ "test existing tables; can be used to compare web data with package data.")
+
+ draft = flag.String("draft",
+ "contributed",
+ `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`)
+)
+
+func main() {
+ gen.Init()
+
+ // Read the CLDR zip file.
+ r := gen.OpenCLDRCoreZip()
+ defer r.Close()
+
+ d := &cldr.Decoder{}
+ data, err := d.DecodeZip(r)
+ if err != nil {
+ log.Fatalf("DecodeZip: %v", err)
+ }
+
+ w := gen.NewCodeWriter()
+ defer func() {
+ buf := &bytes.Buffer{}
+
+ if _, err = w.WriteGo(buf, "language"); err != nil {
+ log.Fatalf("Error formatting file index.go: %v", err)
+ }
+
+ // Since we're generating a table for our own package we need to rewrite
+ // doing the equivalent of go fmt -r 'language.b -> b'. Using
+ // bytes.Replace will do.
+ out := bytes.Replace(buf.Bytes(), []byte("language."), nil, -1)
+ if err := ioutil.WriteFile("index.go", out, 0600); err != nil {
+ log.Fatalf("Could not create file index.go: %v", err)
+ }
+ }()
+
+ m := map[language.Tag]bool{}
+ for _, lang := range data.Locales() {
+ // We include all locales unconditionally to be consistent with en_US.
+ // We want en_US, even though it has no data associated with it.
+
+ // TODO: put any of the languages for which no data exists at the end
+ // of the index. This allows all components based on ICU to use that
+ // as the cutoff point.
+ // if x := data.RawLDML(lang); false ||
+ // x.LocaleDisplayNames != nil ||
+ // x.Characters != nil ||
+ // x.Delimiters != nil ||
+ // x.Measurement != nil ||
+ // x.Dates != nil ||
+ // x.Numbers != nil ||
+ // x.Units != nil ||
+ // x.ListPatterns != nil ||
+ // x.Collations != nil ||
+ // x.Segmentations != nil ||
+ // x.Rbnf != nil ||
+ // x.Annotations != nil ||
+ // x.Metadata != nil {
+
+ // TODO: support POSIX natively, albeit non-standard.
+ tag := language.Make(strings.Replace(lang, "_POSIX", "-u-va-posix", 1))
+ m[tag] = true
+ // }
+ }
+ // Include locales for plural rules, which uses a different structure.
+ for _, plurals := range data.Supplemental().Plurals {
+ for _, rules := range plurals.PluralRules {
+ for _, lang := range strings.Split(rules.Locales, " ") {
+ m[language.Make(lang)] = true
+ }
+ }
+ }
+
+ var core, special []language.Tag
+
+ for t := range m {
+ if x := t.Extensions(); len(x) != 0 && fmt.Sprint(x) != "[u-va-posix]" {
+ log.Fatalf("Unexpected extension %v in %v", x, t)
+ }
+ if len(t.Variants()) == 0 && len(t.Extensions()) == 0 {
+ core = append(core, t)
+ } else {
+ special = append(special, t)
+ }
+ }
+
+ w.WriteComment(`
+ NumCompactTags is the number of common tags. The maximum tag is
+ NumCompactTags-1.`)
+ w.WriteConst("NumCompactTags", len(core)+len(special))
+
+ sort.Sort(byAlpha(special))
+ w.WriteVar("specialTags", special)
+
+ // TODO: order by frequency?
+ sort.Sort(byAlpha(core))
+
+ // Size computations are just an estimate.
+ w.Size += int(reflect.TypeOf(map[uint32]uint16{}).Size())
+ w.Size += len(core) * 6 // size of uint32 and uint16
+
+ fmt.Fprintln(w)
+ fmt.Fprintln(w, "var coreTags = map[uint32]uint16{")
+ fmt.Fprintln(w, "0x0: 0, // und")
+ i := len(special) + 1 // Und and special tags already written.
+ for _, t := range core {
+ if t == language.Und {
+ continue
+ }
+ fmt.Fprint(w.Hash, t, i)
+ b, s, r := t.Raw()
+ fmt.Fprintf(w, "0x%s%s%s: %d, // %s\n",
+ getIndex(b, 3), // 3 is enough as it is guaranteed to be a compact number
+ getIndex(s, 2),
+ getIndex(r, 3),
+ i, t)
+ i++
+ }
+ fmt.Fprintln(w, "}")
+}
+
+// getIndex prints the subtag type and extracts its index of size nibble.
+// If the index is less than n nibbles, the result is prefixed with 0s.
+func getIndex(x interface{}, n int) string {
+ s := fmt.Sprintf("%#v", x) // s is of form Type{typeID: 0x00}
+ s = s[strings.Index(s, "0x")+2 : len(s)-1]
+ return strings.Repeat("0", n-len(s)) + s
+}
+
+type byAlpha []language.Tag
+
+func (a byAlpha) Len() int { return len(a) }
+func (a byAlpha) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
+func (a byAlpha) Less(i, j int) bool { return a[i].String() < a[j].String() }
diff --git a/vendor/golang.org/x/text/language/go1_1.go b/vendor/golang.org/x/text/language/go1_1.go
new file mode 100644
index 000000000..380f4c09f
--- /dev/null
+++ b/vendor/golang.org/x/text/language/go1_1.go
@@ -0,0 +1,38 @@
+// 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 !go1.2
+
+package language
+
+import "sort"
+
+func sortStable(s sort.Interface) {
+ ss := stableSort{
+ s: s,
+ pos: make([]int, s.Len()),
+ }
+ for i := range ss.pos {
+ ss.pos[i] = i
+ }
+ sort.Sort(&ss)
+}
+
+type stableSort struct {
+ s sort.Interface
+ pos []int
+}
+
+func (s *stableSort) Len() int {
+ return len(s.pos)
+}
+
+func (s *stableSort) Less(i, j int) bool {
+ return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j]
+}
+
+func (s *stableSort) Swap(i, j int) {
+ s.s.Swap(i, j)
+ s.pos[i], s.pos[j] = s.pos[j], s.pos[i]
+}
diff --git a/vendor/golang.org/x/text/language/go1_2.go b/vendor/golang.org/x/text/language/go1_2.go
new file mode 100644
index 000000000..38268c57a
--- /dev/null
+++ b/vendor/golang.org/x/text/language/go1_2.go
@@ -0,0 +1,11 @@
+// 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 go1.2
+
+package language
+
+import "sort"
+
+var sortStable = sort.Stable
diff --git a/vendor/golang.org/x/text/language/index.go b/vendor/golang.org/x/text/language/index.go
new file mode 100644
index 000000000..50c752186
--- /dev/null
+++ b/vendor/golang.org/x/text/language/index.go
@@ -0,0 +1,767 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package language
+
+// NumCompactTags is the number of common tags. The maximum tag is
+// NumCompactTags-1.
+const NumCompactTags = 752
+
+var specialTags = []Tag{ // 2 elements
+ 0: {lang: 0xd5, region: 0x6d, script: 0x0, pVariant: 0x5, pExt: 0xe, str: "ca-ES-valencia"},
+ 1: {lang: 0x134, region: 0x134, script: 0x0, pVariant: 0x5, pExt: 0x5, str: "en-US-u-va-posix"},
+} // Size: 72 bytes
+
+var coreTags = map[uint32]uint16{
+ 0x0: 0, // und
+ 0x01500000: 3, // af
+ 0x015000d1: 4, // af-NA
+ 0x01500160: 5, // af-ZA
+ 0x01b00000: 6, // agq
+ 0x01b00051: 7, // agq-CM
+ 0x02000000: 8, // ak
+ 0x0200007f: 9, // ak-GH
+ 0x02600000: 10, // am
+ 0x0260006e: 11, // am-ET
+ 0x03900000: 12, // ar
+ 0x03900001: 13, // ar-001
+ 0x03900022: 14, // ar-AE
+ 0x03900038: 15, // ar-BH
+ 0x03900061: 16, // ar-DJ
+ 0x03900066: 17, // ar-DZ
+ 0x0390006a: 18, // ar-EG
+ 0x0390006b: 19, // ar-EH
+ 0x0390006c: 20, // ar-ER
+ 0x03900096: 21, // ar-IL
+ 0x0390009a: 22, // ar-IQ
+ 0x039000a0: 23, // ar-JO
+ 0x039000a7: 24, // ar-KM
+ 0x039000ab: 25, // ar-KW
+ 0x039000af: 26, // ar-LB
+ 0x039000b8: 27, // ar-LY
+ 0x039000b9: 28, // ar-MA
+ 0x039000c8: 29, // ar-MR
+ 0x039000e0: 30, // ar-OM
+ 0x039000ec: 31, // ar-PS
+ 0x039000f2: 32, // ar-QA
+ 0x03900107: 33, // ar-SA
+ 0x0390010a: 34, // ar-SD
+ 0x03900114: 35, // ar-SO
+ 0x03900116: 36, // ar-SS
+ 0x0390011b: 37, // ar-SY
+ 0x0390011f: 38, // ar-TD
+ 0x03900127: 39, // ar-TN
+ 0x0390015d: 40, // ar-YE
+ 0x03f00000: 41, // ars
+ 0x04200000: 42, // as
+ 0x04200098: 43, // as-IN
+ 0x04300000: 44, // asa
+ 0x0430012e: 45, // asa-TZ
+ 0x04700000: 46, // ast
+ 0x0470006d: 47, // ast-ES
+ 0x05700000: 48, // az
+ 0x0571e000: 49, // az-Cyrl
+ 0x0571e031: 50, // az-Cyrl-AZ
+ 0x05752000: 51, // az-Latn
+ 0x05752031: 52, // az-Latn-AZ
+ 0x05d00000: 53, // bas
+ 0x05d00051: 54, // bas-CM
+ 0x07000000: 55, // be
+ 0x07000046: 56, // be-BY
+ 0x07400000: 57, // bem
+ 0x07400161: 58, // bem-ZM
+ 0x07800000: 59, // bez
+ 0x0780012e: 60, // bez-TZ
+ 0x07d00000: 61, // bg
+ 0x07d00037: 62, // bg-BG
+ 0x08100000: 63, // bh
+ 0x09e00000: 64, // bm
+ 0x09e000c2: 65, // bm-ML
+ 0x0a300000: 66, // bn
+ 0x0a300034: 67, // bn-BD
+ 0x0a300098: 68, // bn-IN
+ 0x0a700000: 69, // bo
+ 0x0a700052: 70, // bo-CN
+ 0x0a700098: 71, // bo-IN
+ 0x0b000000: 72, // br
+ 0x0b000077: 73, // br-FR
+ 0x0b300000: 74, // brx
+ 0x0b300098: 75, // brx-IN
+ 0x0b500000: 76, // bs
+ 0x0b51e000: 77, // bs-Cyrl
+ 0x0b51e032: 78, // bs-Cyrl-BA
+ 0x0b552000: 79, // bs-Latn
+ 0x0b552032: 80, // bs-Latn-BA
+ 0x0d500000: 81, // ca
+ 0x0d500021: 82, // ca-AD
+ 0x0d50006d: 83, // ca-ES
+ 0x0d500077: 84, // ca-FR
+ 0x0d50009d: 85, // ca-IT
+ 0x0da00000: 86, // ce
+ 0x0da00105: 87, // ce-RU
+ 0x0dd00000: 88, // cgg
+ 0x0dd00130: 89, // cgg-UG
+ 0x0e300000: 90, // chr
+ 0x0e300134: 91, // chr-US
+ 0x0e700000: 92, // ckb
+ 0x0e70009a: 93, // ckb-IQ
+ 0x0e70009b: 94, // ckb-IR
+ 0x0f600000: 95, // cs
+ 0x0f60005d: 96, // cs-CZ
+ 0x0fa00000: 97, // cu
+ 0x0fa00105: 98, // cu-RU
+ 0x0fc00000: 99, // cy
+ 0x0fc0007a: 100, // cy-GB
+ 0x0fd00000: 101, // da
+ 0x0fd00062: 102, // da-DK
+ 0x0fd00081: 103, // da-GL
+ 0x10400000: 104, // dav
+ 0x104000a3: 105, // dav-KE
+ 0x10900000: 106, // de
+ 0x1090002d: 107, // de-AT
+ 0x10900035: 108, // de-BE
+ 0x1090004d: 109, // de-CH
+ 0x1090005f: 110, // de-DE
+ 0x1090009d: 111, // de-IT
+ 0x109000b1: 112, // de-LI
+ 0x109000b6: 113, // de-LU
+ 0x11300000: 114, // dje
+ 0x113000d3: 115, // dje-NE
+ 0x11b00000: 116, // dsb
+ 0x11b0005f: 117, // dsb-DE
+ 0x12000000: 118, // dua
+ 0x12000051: 119, // dua-CM
+ 0x12400000: 120, // dv
+ 0x12700000: 121, // dyo
+ 0x12700113: 122, // dyo-SN
+ 0x12900000: 123, // dz
+ 0x12900042: 124, // dz-BT
+ 0x12b00000: 125, // ebu
+ 0x12b000a3: 126, // ebu-KE
+ 0x12c00000: 127, // ee
+ 0x12c0007f: 128, // ee-GH
+ 0x12c00121: 129, // ee-TG
+ 0x13100000: 130, // el
+ 0x1310005c: 131, // el-CY
+ 0x13100086: 132, // el-GR
+ 0x13400000: 133, // en
+ 0x13400001: 134, // en-001
+ 0x1340001a: 135, // en-150
+ 0x13400024: 136, // en-AG
+ 0x13400025: 137, // en-AI
+ 0x1340002c: 138, // en-AS
+ 0x1340002d: 139, // en-AT
+ 0x1340002e: 140, // en-AU
+ 0x13400033: 141, // en-BB
+ 0x13400035: 142, // en-BE
+ 0x13400039: 143, // en-BI
+ 0x1340003c: 144, // en-BM
+ 0x13400041: 145, // en-BS
+ 0x13400045: 146, // en-BW
+ 0x13400047: 147, // en-BZ
+ 0x13400048: 148, // en-CA
+ 0x13400049: 149, // en-CC
+ 0x1340004d: 150, // en-CH
+ 0x1340004f: 151, // en-CK
+ 0x13400051: 152, // en-CM
+ 0x1340005b: 153, // en-CX
+ 0x1340005c: 154, // en-CY
+ 0x1340005f: 155, // en-DE
+ 0x13400060: 156, // en-DG
+ 0x13400062: 157, // en-DK
+ 0x13400063: 158, // en-DM
+ 0x1340006c: 159, // en-ER
+ 0x13400071: 160, // en-FI
+ 0x13400072: 161, // en-FJ
+ 0x13400073: 162, // en-FK
+ 0x13400074: 163, // en-FM
+ 0x1340007a: 164, // en-GB
+ 0x1340007b: 165, // en-GD
+ 0x1340007e: 166, // en-GG
+ 0x1340007f: 167, // en-GH
+ 0x13400080: 168, // en-GI
+ 0x13400082: 169, // en-GM
+ 0x13400089: 170, // en-GU
+ 0x1340008b: 171, // en-GY
+ 0x1340008c: 172, // en-HK
+ 0x13400095: 173, // en-IE
+ 0x13400096: 174, // en-IL
+ 0x13400097: 175, // en-IM
+ 0x13400098: 176, // en-IN
+ 0x13400099: 177, // en-IO
+ 0x1340009e: 178, // en-JE
+ 0x1340009f: 179, // en-JM
+ 0x134000a3: 180, // en-KE
+ 0x134000a6: 181, // en-KI
+ 0x134000a8: 182, // en-KN
+ 0x134000ac: 183, // en-KY
+ 0x134000b0: 184, // en-LC
+ 0x134000b3: 185, // en-LR
+ 0x134000b4: 186, // en-LS
+ 0x134000be: 187, // en-MG
+ 0x134000bf: 188, // en-MH
+ 0x134000c5: 189, // en-MO
+ 0x134000c6: 190, // en-MP
+ 0x134000c9: 191, // en-MS
+ 0x134000ca: 192, // en-MT
+ 0x134000cb: 193, // en-MU
+ 0x134000cd: 194, // en-MW
+ 0x134000cf: 195, // en-MY
+ 0x134000d1: 196, // en-NA
+ 0x134000d4: 197, // en-NF
+ 0x134000d5: 198, // en-NG
+ 0x134000d8: 199, // en-NL
+ 0x134000dc: 200, // en-NR
+ 0x134000de: 201, // en-NU
+ 0x134000df: 202, // en-NZ
+ 0x134000e5: 203, // en-PG
+ 0x134000e6: 204, // en-PH
+ 0x134000e7: 205, // en-PK
+ 0x134000ea: 206, // en-PN
+ 0x134000eb: 207, // en-PR
+ 0x134000ef: 208, // en-PW
+ 0x13400106: 209, // en-RW
+ 0x13400108: 210, // en-SB
+ 0x13400109: 211, // en-SC
+ 0x1340010a: 212, // en-SD
+ 0x1340010b: 213, // en-SE
+ 0x1340010c: 214, // en-SG
+ 0x1340010d: 215, // en-SH
+ 0x1340010e: 216, // en-SI
+ 0x13400111: 217, // en-SL
+ 0x13400116: 218, // en-SS
+ 0x1340011a: 219, // en-SX
+ 0x1340011c: 220, // en-SZ
+ 0x1340011e: 221, // en-TC
+ 0x13400124: 222, // en-TK
+ 0x13400128: 223, // en-TO
+ 0x1340012b: 224, // en-TT
+ 0x1340012c: 225, // en-TV
+ 0x1340012e: 226, // en-TZ
+ 0x13400130: 227, // en-UG
+ 0x13400132: 228, // en-UM
+ 0x13400134: 229, // en-US
+ 0x13400138: 230, // en-VC
+ 0x1340013b: 231, // en-VG
+ 0x1340013c: 232, // en-VI
+ 0x1340013e: 233, // en-VU
+ 0x13400141: 234, // en-WS
+ 0x13400160: 235, // en-ZA
+ 0x13400161: 236, // en-ZM
+ 0x13400163: 237, // en-ZW
+ 0x13700000: 238, // eo
+ 0x13700001: 239, // eo-001
+ 0x13900000: 240, // es
+ 0x1390001e: 241, // es-419
+ 0x1390002b: 242, // es-AR
+ 0x1390003e: 243, // es-BO
+ 0x13900040: 244, // es-BR
+ 0x13900050: 245, // es-CL
+ 0x13900053: 246, // es-CO
+ 0x13900055: 247, // es-CR
+ 0x13900058: 248, // es-CU
+ 0x13900064: 249, // es-DO
+ 0x13900067: 250, // es-EA
+ 0x13900068: 251, // es-EC
+ 0x1390006d: 252, // es-ES
+ 0x13900085: 253, // es-GQ
+ 0x13900088: 254, // es-GT
+ 0x1390008e: 255, // es-HN
+ 0x13900093: 256, // es-IC
+ 0x139000ce: 257, // es-MX
+ 0x139000d7: 258, // es-NI
+ 0x139000e1: 259, // es-PA
+ 0x139000e3: 260, // es-PE
+ 0x139000e6: 261, // es-PH
+ 0x139000eb: 262, // es-PR
+ 0x139000f0: 263, // es-PY
+ 0x13900119: 264, // es-SV
+ 0x13900134: 265, // es-US
+ 0x13900135: 266, // es-UY
+ 0x1390013a: 267, // es-VE
+ 0x13b00000: 268, // et
+ 0x13b00069: 269, // et-EE
+ 0x14000000: 270, // eu
+ 0x1400006d: 271, // eu-ES
+ 0x14100000: 272, // ewo
+ 0x14100051: 273, // ewo-CM
+ 0x14300000: 274, // fa
+ 0x14300023: 275, // fa-AF
+ 0x1430009b: 276, // fa-IR
+ 0x14900000: 277, // ff
+ 0x14900051: 278, // ff-CM
+ 0x14900083: 279, // ff-GN
+ 0x149000c8: 280, // ff-MR
+ 0x14900113: 281, // ff-SN
+ 0x14c00000: 282, // fi
+ 0x14c00071: 283, // fi-FI
+ 0x14e00000: 284, // fil
+ 0x14e000e6: 285, // fil-PH
+ 0x15300000: 286, // fo
+ 0x15300062: 287, // fo-DK
+ 0x15300075: 288, // fo-FO
+ 0x15900000: 289, // fr
+ 0x15900035: 290, // fr-BE
+ 0x15900036: 291, // fr-BF
+ 0x15900039: 292, // fr-BI
+ 0x1590003a: 293, // fr-BJ
+ 0x1590003b: 294, // fr-BL
+ 0x15900048: 295, // fr-CA
+ 0x1590004a: 296, // fr-CD
+ 0x1590004b: 297, // fr-CF
+ 0x1590004c: 298, // fr-CG
+ 0x1590004d: 299, // fr-CH
+ 0x1590004e: 300, // fr-CI
+ 0x15900051: 301, // fr-CM
+ 0x15900061: 302, // fr-DJ
+ 0x15900066: 303, // fr-DZ
+ 0x15900077: 304, // fr-FR
+ 0x15900079: 305, // fr-GA
+ 0x1590007d: 306, // fr-GF
+ 0x15900083: 307, // fr-GN
+ 0x15900084: 308, // fr-GP
+ 0x15900085: 309, // fr-GQ
+ 0x15900090: 310, // fr-HT
+ 0x159000a7: 311, // fr-KM
+ 0x159000b6: 312, // fr-LU
+ 0x159000b9: 313, // fr-MA
+ 0x159000ba: 314, // fr-MC
+ 0x159000bd: 315, // fr-MF
+ 0x159000be: 316, // fr-MG
+ 0x159000c2: 317, // fr-ML
+ 0x159000c7: 318, // fr-MQ
+ 0x159000c8: 319, // fr-MR
+ 0x159000cb: 320, // fr-MU
+ 0x159000d2: 321, // fr-NC
+ 0x159000d3: 322, // fr-NE
+ 0x159000e4: 323, // fr-PF
+ 0x159000e9: 324, // fr-PM
+ 0x15900101: 325, // fr-RE
+ 0x15900106: 326, // fr-RW
+ 0x15900109: 327, // fr-SC
+ 0x15900113: 328, // fr-SN
+ 0x1590011b: 329, // fr-SY
+ 0x1590011f: 330, // fr-TD
+ 0x15900121: 331, // fr-TG
+ 0x15900127: 332, // fr-TN
+ 0x1590013e: 333, // fr-VU
+ 0x1590013f: 334, // fr-WF
+ 0x1590015e: 335, // fr-YT
+ 0x16400000: 336, // fur
+ 0x1640009d: 337, // fur-IT
+ 0x16800000: 338, // fy
+ 0x168000d8: 339, // fy-NL
+ 0x16900000: 340, // ga
+ 0x16900095: 341, // ga-IE
+ 0x17800000: 342, // gd
+ 0x1780007a: 343, // gd-GB
+ 0x18a00000: 344, // gl
+ 0x18a0006d: 345, // gl-ES
+ 0x19c00000: 346, // gsw
+ 0x19c0004d: 347, // gsw-CH
+ 0x19c00077: 348, // gsw-FR
+ 0x19c000b1: 349, // gsw-LI
+ 0x19d00000: 350, // gu
+ 0x19d00098: 351, // gu-IN
+ 0x1a200000: 352, // guw
+ 0x1a400000: 353, // guz
+ 0x1a4000a3: 354, // guz-KE
+ 0x1a500000: 355, // gv
+ 0x1a500097: 356, // gv-IM
+ 0x1ad00000: 357, // ha
+ 0x1ad0007f: 358, // ha-GH
+ 0x1ad000d3: 359, // ha-NE
+ 0x1ad000d5: 360, // ha-NG
+ 0x1b100000: 361, // haw
+ 0x1b100134: 362, // haw-US
+ 0x1b500000: 363, // he
+ 0x1b500096: 364, // he-IL
+ 0x1b700000: 365, // hi
+ 0x1b700098: 366, // hi-IN
+ 0x1ca00000: 367, // hr
+ 0x1ca00032: 368, // hr-BA
+ 0x1ca0008f: 369, // hr-HR
+ 0x1cb00000: 370, // hsb
+ 0x1cb0005f: 371, // hsb-DE
+ 0x1ce00000: 372, // hu
+ 0x1ce00091: 373, // hu-HU
+ 0x1d000000: 374, // hy
+ 0x1d000027: 375, // hy-AM
+ 0x1da00000: 376, // id
+ 0x1da00094: 377, // id-ID
+ 0x1df00000: 378, // ig
+ 0x1df000d5: 379, // ig-NG
+ 0x1e200000: 380, // ii
+ 0x1e200052: 381, // ii-CN
+ 0x1f000000: 382, // is
+ 0x1f00009c: 383, // is-IS
+ 0x1f100000: 384, // it
+ 0x1f10004d: 385, // it-CH
+ 0x1f10009d: 386, // it-IT
+ 0x1f100112: 387, // it-SM
+ 0x1f200000: 388, // iu
+ 0x1f800000: 389, // ja
+ 0x1f8000a1: 390, // ja-JP
+ 0x1fb00000: 391, // jbo
+ 0x1ff00000: 392, // jgo
+ 0x1ff00051: 393, // jgo-CM
+ 0x20200000: 394, // jmc
+ 0x2020012e: 395, // jmc-TZ
+ 0x20600000: 396, // jv
+ 0x20800000: 397, // ka
+ 0x2080007c: 398, // ka-GE
+ 0x20a00000: 399, // kab
+ 0x20a00066: 400, // kab-DZ
+ 0x20e00000: 401, // kaj
+ 0x20f00000: 402, // kam
+ 0x20f000a3: 403, // kam-KE
+ 0x21700000: 404, // kcg
+ 0x21b00000: 405, // kde
+ 0x21b0012e: 406, // kde-TZ
+ 0x21f00000: 407, // kea
+ 0x21f00059: 408, // kea-CV
+ 0x22c00000: 409, // khq
+ 0x22c000c2: 410, // khq-ML
+ 0x23100000: 411, // ki
+ 0x231000a3: 412, // ki-KE
+ 0x23a00000: 413, // kk
+ 0x23a000ad: 414, // kk-KZ
+ 0x23c00000: 415, // kkj
+ 0x23c00051: 416, // kkj-CM
+ 0x23d00000: 417, // kl
+ 0x23d00081: 418, // kl-GL
+ 0x23e00000: 419, // kln
+ 0x23e000a3: 420, // kln-KE
+ 0x24200000: 421, // km
+ 0x242000a5: 422, // km-KH
+ 0x24900000: 423, // kn
+ 0x24900098: 424, // kn-IN
+ 0x24b00000: 425, // ko
+ 0x24b000a9: 426, // ko-KP
+ 0x24b000aa: 427, // ko-KR
+ 0x24d00000: 428, // kok
+ 0x24d00098: 429, // kok-IN
+ 0x26100000: 430, // ks
+ 0x26100098: 431, // ks-IN
+ 0x26200000: 432, // ksb
+ 0x2620012e: 433, // ksb-TZ
+ 0x26400000: 434, // ksf
+ 0x26400051: 435, // ksf-CM
+ 0x26500000: 436, // ksh
+ 0x2650005f: 437, // ksh-DE
+ 0x26b00000: 438, // ku
+ 0x27800000: 439, // kw
+ 0x2780007a: 440, // kw-GB
+ 0x28100000: 441, // ky
+ 0x281000a4: 442, // ky-KG
+ 0x28800000: 443, // lag
+ 0x2880012e: 444, // lag-TZ
+ 0x28c00000: 445, // lb
+ 0x28c000b6: 446, // lb-LU
+ 0x29a00000: 447, // lg
+ 0x29a00130: 448, // lg-UG
+ 0x2a600000: 449, // lkt
+ 0x2a600134: 450, // lkt-US
+ 0x2ac00000: 451, // ln
+ 0x2ac00029: 452, // ln-AO
+ 0x2ac0004a: 453, // ln-CD
+ 0x2ac0004b: 454, // ln-CF
+ 0x2ac0004c: 455, // ln-CG
+ 0x2af00000: 456, // lo
+ 0x2af000ae: 457, // lo-LA
+ 0x2b600000: 458, // lrc
+ 0x2b60009a: 459, // lrc-IQ
+ 0x2b60009b: 460, // lrc-IR
+ 0x2b700000: 461, // lt
+ 0x2b7000b5: 462, // lt-LT
+ 0x2b900000: 463, // lu
+ 0x2b90004a: 464, // lu-CD
+ 0x2bb00000: 465, // luo
+ 0x2bb000a3: 466, // luo-KE
+ 0x2bc00000: 467, // luy
+ 0x2bc000a3: 468, // luy-KE
+ 0x2be00000: 469, // lv
+ 0x2be000b7: 470, // lv-LV
+ 0x2c800000: 471, // mas
+ 0x2c8000a3: 472, // mas-KE
+ 0x2c80012e: 473, // mas-TZ
+ 0x2e000000: 474, // mer
+ 0x2e0000a3: 475, // mer-KE
+ 0x2e400000: 476, // mfe
+ 0x2e4000cb: 477, // mfe-MU
+ 0x2e800000: 478, // mg
+ 0x2e8000be: 479, // mg-MG
+ 0x2e900000: 480, // mgh
+ 0x2e9000d0: 481, // mgh-MZ
+ 0x2eb00000: 482, // mgo
+ 0x2eb00051: 483, // mgo-CM
+ 0x2f600000: 484, // mk
+ 0x2f6000c1: 485, // mk-MK
+ 0x2fb00000: 486, // ml
+ 0x2fb00098: 487, // ml-IN
+ 0x30200000: 488, // mn
+ 0x302000c4: 489, // mn-MN
+ 0x31200000: 490, // mr
+ 0x31200098: 491, // mr-IN
+ 0x31600000: 492, // ms
+ 0x3160003d: 493, // ms-BN
+ 0x316000cf: 494, // ms-MY
+ 0x3160010c: 495, // ms-SG
+ 0x31700000: 496, // mt
+ 0x317000ca: 497, // mt-MT
+ 0x31c00000: 498, // mua
+ 0x31c00051: 499, // mua-CM
+ 0x32800000: 500, // my
+ 0x328000c3: 501, // my-MM
+ 0x33100000: 502, // mzn
+ 0x3310009b: 503, // mzn-IR
+ 0x33800000: 504, // nah
+ 0x33c00000: 505, // naq
+ 0x33c000d1: 506, // naq-NA
+ 0x33e00000: 507, // nb
+ 0x33e000d9: 508, // nb-NO
+ 0x33e0010f: 509, // nb-SJ
+ 0x34500000: 510, // nd
+ 0x34500163: 511, // nd-ZW
+ 0x34700000: 512, // nds
+ 0x3470005f: 513, // nds-DE
+ 0x347000d8: 514, // nds-NL
+ 0x34800000: 515, // ne
+ 0x34800098: 516, // ne-IN
+ 0x348000da: 517, // ne-NP
+ 0x35e00000: 518, // nl
+ 0x35e0002f: 519, // nl-AW
+ 0x35e00035: 520, // nl-BE
+ 0x35e0003f: 521, // nl-BQ
+ 0x35e0005a: 522, // nl-CW
+ 0x35e000d8: 523, // nl-NL
+ 0x35e00115: 524, // nl-SR
+ 0x35e0011a: 525, // nl-SX
+ 0x35f00000: 526, // nmg
+ 0x35f00051: 527, // nmg-CM
+ 0x36100000: 528, // nn
+ 0x361000d9: 529, // nn-NO
+ 0x36300000: 530, // nnh
+ 0x36300051: 531, // nnh-CM
+ 0x36600000: 532, // no
+ 0x36c00000: 533, // nqo
+ 0x36d00000: 534, // nr
+ 0x37100000: 535, // nso
+ 0x37700000: 536, // nus
+ 0x37700116: 537, // nus-SS
+ 0x37e00000: 538, // ny
+ 0x38000000: 539, // nyn
+ 0x38000130: 540, // nyn-UG
+ 0x38700000: 541, // om
+ 0x3870006e: 542, // om-ET
+ 0x387000a3: 543, // om-KE
+ 0x38c00000: 544, // or
+ 0x38c00098: 545, // or-IN
+ 0x38f00000: 546, // os
+ 0x38f0007c: 547, // os-GE
+ 0x38f00105: 548, // os-RU
+ 0x39400000: 549, // pa
+ 0x39405000: 550, // pa-Arab
+ 0x394050e7: 551, // pa-Arab-PK
+ 0x3942f000: 552, // pa-Guru
+ 0x3942f098: 553, // pa-Guru-IN
+ 0x39800000: 554, // pap
+ 0x3aa00000: 555, // pl
+ 0x3aa000e8: 556, // pl-PL
+ 0x3b400000: 557, // prg
+ 0x3b400001: 558, // prg-001
+ 0x3b500000: 559, // ps
+ 0x3b500023: 560, // ps-AF
+ 0x3b700000: 561, // pt
+ 0x3b700029: 562, // pt-AO
+ 0x3b700040: 563, // pt-BR
+ 0x3b70004d: 564, // pt-CH
+ 0x3b700059: 565, // pt-CV
+ 0x3b700085: 566, // pt-GQ
+ 0x3b70008a: 567, // pt-GW
+ 0x3b7000b6: 568, // pt-LU
+ 0x3b7000c5: 569, // pt-MO
+ 0x3b7000d0: 570, // pt-MZ
+ 0x3b7000ed: 571, // pt-PT
+ 0x3b700117: 572, // pt-ST
+ 0x3b700125: 573, // pt-TL
+ 0x3bb00000: 574, // qu
+ 0x3bb0003e: 575, // qu-BO
+ 0x3bb00068: 576, // qu-EC
+ 0x3bb000e3: 577, // qu-PE
+ 0x3cb00000: 578, // rm
+ 0x3cb0004d: 579, // rm-CH
+ 0x3d000000: 580, // rn
+ 0x3d000039: 581, // rn-BI
+ 0x3d300000: 582, // ro
+ 0x3d3000bb: 583, // ro-MD
+ 0x3d300103: 584, // ro-RO
+ 0x3d500000: 585, // rof
+ 0x3d50012e: 586, // rof-TZ
+ 0x3d900000: 587, // ru
+ 0x3d900046: 588, // ru-BY
+ 0x3d9000a4: 589, // ru-KG
+ 0x3d9000ad: 590, // ru-KZ
+ 0x3d9000bb: 591, // ru-MD
+ 0x3d900105: 592, // ru-RU
+ 0x3d90012f: 593, // ru-UA
+ 0x3dc00000: 594, // rw
+ 0x3dc00106: 595, // rw-RW
+ 0x3dd00000: 596, // rwk
+ 0x3dd0012e: 597, // rwk-TZ
+ 0x3e200000: 598, // sah
+ 0x3e200105: 599, // sah-RU
+ 0x3e300000: 600, // saq
+ 0x3e3000a3: 601, // saq-KE
+ 0x3e900000: 602, // sbp
+ 0x3e90012e: 603, // sbp-TZ
+ 0x3f200000: 604, // sdh
+ 0x3f300000: 605, // se
+ 0x3f300071: 606, // se-FI
+ 0x3f3000d9: 607, // se-NO
+ 0x3f30010b: 608, // se-SE
+ 0x3f500000: 609, // seh
+ 0x3f5000d0: 610, // seh-MZ
+ 0x3f700000: 611, // ses
+ 0x3f7000c2: 612, // ses-ML
+ 0x3f800000: 613, // sg
+ 0x3f80004b: 614, // sg-CF
+ 0x3fe00000: 615, // shi
+ 0x3fe52000: 616, // shi-Latn
+ 0x3fe520b9: 617, // shi-Latn-MA
+ 0x3fed2000: 618, // shi-Tfng
+ 0x3fed20b9: 619, // shi-Tfng-MA
+ 0x40200000: 620, // si
+ 0x402000b2: 621, // si-LK
+ 0x40800000: 622, // sk
+ 0x40800110: 623, // sk-SK
+ 0x40c00000: 624, // sl
+ 0x40c0010e: 625, // sl-SI
+ 0x41200000: 626, // sma
+ 0x41300000: 627, // smi
+ 0x41400000: 628, // smj
+ 0x41500000: 629, // smn
+ 0x41500071: 630, // smn-FI
+ 0x41800000: 631, // sms
+ 0x41900000: 632, // sn
+ 0x41900163: 633, // sn-ZW
+ 0x41f00000: 634, // so
+ 0x41f00061: 635, // so-DJ
+ 0x41f0006e: 636, // so-ET
+ 0x41f000a3: 637, // so-KE
+ 0x41f00114: 638, // so-SO
+ 0x42700000: 639, // sq
+ 0x42700026: 640, // sq-AL
+ 0x427000c1: 641, // sq-MK
+ 0x4270014c: 642, // sq-XK
+ 0x42800000: 643, // sr
+ 0x4281e000: 644, // sr-Cyrl
+ 0x4281e032: 645, // sr-Cyrl-BA
+ 0x4281e0bc: 646, // sr-Cyrl-ME
+ 0x4281e104: 647, // sr-Cyrl-RS
+ 0x4281e14c: 648, // sr-Cyrl-XK
+ 0x42852000: 649, // sr-Latn
+ 0x42852032: 650, // sr-Latn-BA
+ 0x428520bc: 651, // sr-Latn-ME
+ 0x42852104: 652, // sr-Latn-RS
+ 0x4285214c: 653, // sr-Latn-XK
+ 0x42d00000: 654, // ss
+ 0x43000000: 655, // ssy
+ 0x43100000: 656, // st
+ 0x43a00000: 657, // sv
+ 0x43a00030: 658, // sv-AX
+ 0x43a00071: 659, // sv-FI
+ 0x43a0010b: 660, // sv-SE
+ 0x43b00000: 661, // sw
+ 0x43b0004a: 662, // sw-CD
+ 0x43b000a3: 663, // sw-KE
+ 0x43b0012e: 664, // sw-TZ
+ 0x43b00130: 665, // sw-UG
+ 0x44400000: 666, // syr
+ 0x44600000: 667, // ta
+ 0x44600098: 668, // ta-IN
+ 0x446000b2: 669, // ta-LK
+ 0x446000cf: 670, // ta-MY
+ 0x4460010c: 671, // ta-SG
+ 0x45700000: 672, // te
+ 0x45700098: 673, // te-IN
+ 0x45a00000: 674, // teo
+ 0x45a000a3: 675, // teo-KE
+ 0x45a00130: 676, // teo-UG
+ 0x46100000: 677, // th
+ 0x46100122: 678, // th-TH
+ 0x46500000: 679, // ti
+ 0x4650006c: 680, // ti-ER
+ 0x4650006e: 681, // ti-ET
+ 0x46700000: 682, // tig
+ 0x46c00000: 683, // tk
+ 0x46c00126: 684, // tk-TM
+ 0x47600000: 685, // tn
+ 0x47800000: 686, // to
+ 0x47800128: 687, // to-TO
+ 0x48000000: 688, // tr
+ 0x4800005c: 689, // tr-CY
+ 0x4800012a: 690, // tr-TR
+ 0x48400000: 691, // ts
+ 0x49a00000: 692, // twq
+ 0x49a000d3: 693, // twq-NE
+ 0x49f00000: 694, // tzm
+ 0x49f000b9: 695, // tzm-MA
+ 0x4a200000: 696, // ug
+ 0x4a200052: 697, // ug-CN
+ 0x4a400000: 698, // uk
+ 0x4a40012f: 699, // uk-UA
+ 0x4aa00000: 700, // ur
+ 0x4aa00098: 701, // ur-IN
+ 0x4aa000e7: 702, // ur-PK
+ 0x4b200000: 703, // uz
+ 0x4b205000: 704, // uz-Arab
+ 0x4b205023: 705, // uz-Arab-AF
+ 0x4b21e000: 706, // uz-Cyrl
+ 0x4b21e136: 707, // uz-Cyrl-UZ
+ 0x4b252000: 708, // uz-Latn
+ 0x4b252136: 709, // uz-Latn-UZ
+ 0x4b400000: 710, // vai
+ 0x4b452000: 711, // vai-Latn
+ 0x4b4520b3: 712, // vai-Latn-LR
+ 0x4b4d9000: 713, // vai-Vaii
+ 0x4b4d90b3: 714, // vai-Vaii-LR
+ 0x4b600000: 715, // ve
+ 0x4b900000: 716, // vi
+ 0x4b90013d: 717, // vi-VN
+ 0x4bf00000: 718, // vo
+ 0x4bf00001: 719, // vo-001
+ 0x4c200000: 720, // vun
+ 0x4c20012e: 721, // vun-TZ
+ 0x4c400000: 722, // wa
+ 0x4c500000: 723, // wae
+ 0x4c50004d: 724, // wae-CH
+ 0x4db00000: 725, // wo
+ 0x4e800000: 726, // xh
+ 0x4f100000: 727, // xog
+ 0x4f100130: 728, // xog-UG
+ 0x4ff00000: 729, // yav
+ 0x4ff00051: 730, // yav-CM
+ 0x50800000: 731, // yi
+ 0x50800001: 732, // yi-001
+ 0x50e00000: 733, // yo
+ 0x50e0003a: 734, // yo-BJ
+ 0x50e000d5: 735, // yo-NG
+ 0x51500000: 736, // yue
+ 0x5150008c: 737, // yue-HK
+ 0x51e00000: 738, // zgh
+ 0x51e000b9: 739, // zgh-MA
+ 0x51f00000: 740, // zh
+ 0x51f34000: 741, // zh-Hans
+ 0x51f34052: 742, // zh-Hans-CN
+ 0x51f3408c: 743, // zh-Hans-HK
+ 0x51f340c5: 744, // zh-Hans-MO
+ 0x51f3410c: 745, // zh-Hans-SG
+ 0x51f35000: 746, // zh-Hant
+ 0x51f3508c: 747, // zh-Hant-HK
+ 0x51f350c5: 748, // zh-Hant-MO
+ 0x51f3512d: 749, // zh-Hant-TW
+ 0x52400000: 750, // zu
+ 0x52400160: 751, // zu-ZA
+}
+
+// Total table size 4580 bytes (4KiB); checksum: A7F72A2A
diff --git a/vendor/golang.org/x/text/language/language.go b/vendor/golang.org/x/text/language/language.go
new file mode 100644
index 000000000..5eecceb61
--- /dev/null
+++ b/vendor/golang.org/x/text/language/language.go
@@ -0,0 +1,975 @@
+// 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.
+
+//go:generate go run maketables.go gen_common.go -output tables.go
+//go:generate go run gen_index.go
+
+// Package language implements BCP 47 language tags and related functionality.
+//
+// The Tag type, which is used to represent languages, is agnostic to the
+// meaning of its subtags. Tags are not fully canonicalized to preserve
+// information that may be valuable in certain contexts. As a consequence, two
+// different tags may represent identical languages.
+//
+// Initializing language- or locale-specific components usually consists of
+// two steps. The first step is to select a display language based on the
+// preferred languages of the user and the languages supported by an application.
+// The second step is to create the language-specific services based on
+// this selection. Each is discussed in more details below.
+//
+// Matching preferred against supported languages
+//
+// An application may support various languages. This list is typically limited
+// by the languages for which there exists translations of the user interface.
+// Similarly, a user may provide a list of preferred languages which is limited
+// by the languages understood by this user.
+// An application should use a Matcher to find the best supported language based
+// on the user's preferred list.
+// Matchers are aware of the intricacies of equivalence between languages.
+// The default Matcher implementation takes into account things such as
+// deprecated subtags, legacy tags, and mutual intelligibility between scripts
+// and languages.
+//
+// A Matcher for English, Australian English, Danish, and standard Mandarin can
+// be defined as follows:
+//
+// var matcher = language.NewMatcher([]language.Tag{
+// language.English, // The first language is used as fallback.
+// language.MustParse("en-AU"),
+// language.Danish,
+// language.Chinese,
+// })
+//
+// The following code selects the best match for someone speaking Spanish and
+// Norwegian:
+//
+// preferred := []language.Tag{ language.Spanish, language.Norwegian }
+// tag, _, _ := matcher.Match(preferred...)
+//
+// In this case, the best match is Danish, as Danish is sufficiently a match to
+// Norwegian to not have to fall back to the default.
+// See ParseAcceptLanguage on how to handle the Accept-Language HTTP header.
+//
+// Selecting language-specific services
+//
+// One should always use the Tag returned by the Matcher to create an instance
+// of any of the language-specific services provided by the text repository.
+// This prevents the mixing of languages, such as having a different language for
+// messages and display names, as well as improper casing or sorting order for
+// the selected language.
+// Using the returned Tag also allows user-defined settings, such as collation
+// order or numbering system to be transparently passed as options.
+//
+// If you have language-specific data in your application, however, it will in
+// most cases suffice to use the index returned by the matcher to identify
+// the user language.
+// The following loop provides an alternative in case this is not sufficient:
+//
+// supported := map[language.Tag]data{
+// language.English: enData,
+// language.MustParse("en-AU"): enAUData,
+// language.Danish: daData,
+// language.Chinese: zhData,
+// }
+// tag, _, _ := matcher.Match(preferred...)
+// for ; tag != language.Und; tag = tag.Parent() {
+// if v, ok := supported[tag]; ok {
+// return v
+// }
+// }
+// return enData // should not reach here
+//
+// Repeatedly taking the Parent of the tag returned by Match will eventually
+// match one of the tags used to initialize the Matcher.
+//
+// Canonicalization
+//
+// By default, only legacy and deprecated tags are converted into their
+// canonical equivalent. All other information is preserved. This approach makes
+// the confidence scores more accurate and allows matchers to distinguish
+// between variants that are otherwise lost.
+//
+// As a consequence, two tags that should be treated as identical according to
+// BCP 47 or CLDR, like "en-Latn" and "en", will be represented differently. The
+// Matchers will handle such distinctions, though, and are aware of the
+// equivalence relations. The CanonType type can be used to alter the
+// canonicalization form.
+//
+// References
+//
+// BCP 47 - Tags for Identifying Languages
+// http://tools.ietf.org/html/bcp47
+package language // import "golang.org/x/text/language"
+
+// TODO: Remove above NOTE after:
+// - verifying that tables are dropped correctly (most notably matcher tables).
+
+import (
+ "errors"
+ "fmt"
+ "strings"
+)
+
+const (
+ // maxCoreSize is the maximum size of a BCP 47 tag without variants and
+ // extensions. Equals max lang (3) + script (4) + max reg (3) + 2 dashes.
+ maxCoreSize = 12
+
+ // max99thPercentileSize is a somewhat arbitrary buffer size that presumably
+ // is large enough to hold at least 99% of the BCP 47 tags.
+ max99thPercentileSize = 32
+
+ // maxSimpleUExtensionSize is the maximum size of a -u extension with one
+ // key-type pair. Equals len("-u-") + key (2) + dash + max value (8).
+ maxSimpleUExtensionSize = 14
+)
+
+// Tag represents a BCP 47 language tag. It is used to specify an instance of a
+// specific language or locale. All language tag values are guaranteed to be
+// well-formed.
+type Tag struct {
+ lang langID
+ region regionID
+ script scriptID
+ pVariant byte // offset in str, includes preceding '-'
+ pExt uint16 // offset of first extension, includes preceding '-'
+
+ // str is the string representation of the Tag. It will only be used if the
+ // tag has variants or extensions.
+ str string
+}
+
+// Make is a convenience wrapper for Parse that omits the error.
+// In case of an error, a sensible default is returned.
+func Make(s string) Tag {
+ return Default.Make(s)
+}
+
+// Make is a convenience wrapper for c.Parse that omits the error.
+// In case of an error, a sensible default is returned.
+func (c CanonType) Make(s string) Tag {
+ t, _ := c.Parse(s)
+ return t
+}
+
+// Raw returns the raw base language, script and region, without making an
+// attempt to infer their values.
+func (t Tag) Raw() (b Base, s Script, r Region) {
+ return Base{t.lang}, Script{t.script}, Region{t.region}
+}
+
+// equalTags compares language, script and region subtags only.
+func (t Tag) equalTags(a Tag) bool {
+ return t.lang == a.lang && t.script == a.script && t.region == a.region
+}
+
+// IsRoot returns true if t is equal to language "und".
+func (t Tag) IsRoot() bool {
+ if int(t.pVariant) < len(t.str) {
+ return false
+ }
+ return t.equalTags(und)
+}
+
+// private reports whether the Tag consists solely of a private use tag.
+func (t Tag) private() bool {
+ return t.str != "" && t.pVariant == 0
+}
+
+// CanonType can be used to enable or disable various types of canonicalization.
+type CanonType int
+
+const (
+ // Replace deprecated base languages with their preferred replacements.
+ DeprecatedBase CanonType = 1 << iota
+ // Replace deprecated scripts with their preferred replacements.
+ DeprecatedScript
+ // Replace deprecated regions with their preferred replacements.
+ DeprecatedRegion
+ // Remove redundant scripts.
+ SuppressScript
+ // Normalize legacy encodings. This includes legacy languages defined in
+ // CLDR as well as bibliographic codes defined in ISO-639.
+ Legacy
+ // Map the dominant language of a macro language group to the macro language
+ // subtag. For example cmn -> zh.
+ Macro
+ // The CLDR flag should be used if full compatibility with CLDR is required.
+ // There are a few cases where language.Tag may differ from CLDR. To follow all
+ // of CLDR's suggestions, use All|CLDR.
+ CLDR
+
+ // Raw can be used to Compose or Parse without Canonicalization.
+ Raw CanonType = 0
+
+ // Replace all deprecated tags with their preferred replacements.
+ Deprecated = DeprecatedBase | DeprecatedScript | DeprecatedRegion
+
+ // All canonicalizations recommended by BCP 47.
+ BCP47 = Deprecated | SuppressScript
+
+ // All canonicalizations.
+ All = BCP47 | Legacy | Macro
+
+ // Default is the canonicalization used by Parse, Make and Compose. To
+ // preserve as much information as possible, canonicalizations that remove
+ // potentially valuable information are not included. The Matcher is
+ // designed to recognize similar tags that would be the same if
+ // they were canonicalized using All.
+ Default = Deprecated | Legacy
+
+ canonLang = DeprecatedBase | Legacy | Macro
+
+ // TODO: LikelyScript, LikelyRegion: suppress similar to ICU.
+)
+
+// canonicalize returns the canonicalized equivalent of the tag and
+// whether there was any change.
+func (t Tag) canonicalize(c CanonType) (Tag, bool) {
+ if c == Raw {
+ return t, false
+ }
+ changed := false
+ if c&SuppressScript != 0 {
+ if t.lang < langNoIndexOffset && uint8(t.script) == suppressScript[t.lang] {
+ t.script = 0
+ changed = true
+ }
+ }
+ if c&canonLang != 0 {
+ for {
+ if l, aliasType := normLang(t.lang); l != t.lang {
+ switch aliasType {
+ case langLegacy:
+ if c&Legacy != 0 {
+ if t.lang == _sh && t.script == 0 {
+ t.script = _Latn
+ }
+ t.lang = l
+ changed = true
+ }
+ case langMacro:
+ if c&Macro != 0 {
+ // We deviate here from CLDR. The mapping "nb" -> "no"
+ // qualifies as a typical Macro language mapping. However,
+ // for legacy reasons, CLDR maps "no", the macro language
+ // code for Norwegian, to the dominant variant "nb". This
+ // change is currently under consideration for CLDR as well.
+ // See http://unicode.org/cldr/trac/ticket/2698 and also
+ // http://unicode.org/cldr/trac/ticket/1790 for some of the
+ // practical implications. TODO: this check could be removed
+ // if CLDR adopts this change.
+ if c&CLDR == 0 || t.lang != _nb {
+ changed = true
+ t.lang = l
+ }
+ }
+ case langDeprecated:
+ if c&DeprecatedBase != 0 {
+ if t.lang == _mo && t.region == 0 {
+ t.region = _MD
+ }
+ t.lang = l
+ changed = true
+ // Other canonicalization types may still apply.
+ continue
+ }
+ }
+ } else if c&Legacy != 0 && t.lang == _no && c&CLDR != 0 {
+ t.lang = _nb
+ changed = true
+ }
+ break
+ }
+ }
+ if c&DeprecatedScript != 0 {
+ if t.script == _Qaai {
+ changed = true
+ t.script = _Zinh
+ }
+ }
+ if c&DeprecatedRegion != 0 {
+ if r := normRegion(t.region); r != 0 {
+ changed = true
+ t.region = r
+ }
+ }
+ return t, changed
+}
+
+// Canonicalize returns the canonicalized equivalent of the tag.
+func (c CanonType) Canonicalize(t Tag) (Tag, error) {
+ t, changed := t.canonicalize(c)
+ if changed {
+ t.remakeString()
+ }
+ return t, nil
+}
+
+// Confidence indicates the level of certainty for a given return value.
+// For example, Serbian may be written in Cyrillic or Latin script.
+// The confidence level indicates whether a value was explicitly specified,
+// whether it is typically the only possible value, or whether there is
+// an ambiguity.
+type Confidence int
+
+const (
+ No Confidence = iota // full confidence that there was no match
+ Low // most likely value picked out of a set of alternatives
+ High // value is generally assumed to be the correct match
+ Exact // exact match or explicitly specified value
+)
+
+var confName = []string{"No", "Low", "High", "Exact"}
+
+func (c Confidence) String() string {
+ return confName[c]
+}
+
+// remakeString is used to update t.str in case lang, script or region changed.
+// It is assumed that pExt and pVariant still point to the start of the
+// respective parts.
+func (t *Tag) remakeString() {
+ if t.str == "" {
+ return
+ }
+ extra := t.str[t.pVariant:]
+ if t.pVariant > 0 {
+ extra = extra[1:]
+ }
+ if t.equalTags(und) && strings.HasPrefix(extra, "x-") {
+ t.str = extra
+ t.pVariant = 0
+ t.pExt = 0
+ return
+ }
+ var buf [max99thPercentileSize]byte // avoid extra memory allocation in most cases.
+ b := buf[:t.genCoreBytes(buf[:])]
+ if extra != "" {
+ diff := len(b) - int(t.pVariant)
+ b = append(b, '-')
+ b = append(b, extra...)
+ t.pVariant = uint8(int(t.pVariant) + diff)
+ t.pExt = uint16(int(t.pExt) + diff)
+ } else {
+ t.pVariant = uint8(len(b))
+ t.pExt = uint16(len(b))
+ }
+ t.str = string(b)
+}
+
+// genCoreBytes writes a string for the base languages, script and region tags
+// to the given buffer and returns the number of bytes written. It will never
+// write more than maxCoreSize bytes.
+func (t *Tag) genCoreBytes(buf []byte) int {
+ n := t.lang.stringToBuf(buf[:])
+ if t.script != 0 {
+ n += copy(buf[n:], "-")
+ n += copy(buf[n:], t.script.String())
+ }
+ if t.region != 0 {
+ n += copy(buf[n:], "-")
+ n += copy(buf[n:], t.region.String())
+ }
+ return n
+}
+
+// String returns the canonical string representation of the language tag.
+func (t Tag) String() string {
+ if t.str != "" {
+ return t.str
+ }
+ if t.script == 0 && t.region == 0 {
+ return t.lang.String()
+ }
+ buf := [maxCoreSize]byte{}
+ return string(buf[:t.genCoreBytes(buf[:])])
+}
+
+// Base returns the base language of the language tag. If the base language is
+// unspecified, an attempt will be made to infer it from the context.
+// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
+func (t Tag) Base() (Base, Confidence) {
+ if t.lang != 0 {
+ return Base{t.lang}, Exact
+ }
+ c := High
+ if t.script == 0 && !(Region{t.region}).IsCountry() {
+ c = Low
+ }
+ if tag, err := addTags(t); err == nil && tag.lang != 0 {
+ return Base{tag.lang}, c
+ }
+ return Base{0}, No
+}
+
+// Script infers the script for the language tag. If it was not explicitly given, it will infer
+// a most likely candidate.
+// If more than one script is commonly used for a language, the most likely one
+// is returned with a low confidence indication. For example, it returns (Cyrl, Low)
+// for Serbian.
+// If a script cannot be inferred (Zzzz, No) is returned. We do not use Zyyy (undetermined)
+// as one would suspect from the IANA registry for BCP 47. In a Unicode context Zyyy marks
+// common characters (like 1, 2, 3, '.', etc.) and is therefore more like multiple scripts.
+// See http://www.unicode.org/reports/tr24/#Values for more details. Zzzz is also used for
+// unknown value in CLDR. (Zzzz, Exact) is returned if Zzzz was explicitly specified.
+// Note that an inferred script is never guaranteed to be the correct one. Latin is
+// almost exclusively used for Afrikaans, but Arabic has been used for some texts
+// in the past. Also, the script that is commonly used may change over time.
+// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
+func (t Tag) Script() (Script, Confidence) {
+ if t.script != 0 {
+ return Script{t.script}, Exact
+ }
+ sc, c := scriptID(_Zzzz), No
+ if t.lang < langNoIndexOffset {
+ if scr := scriptID(suppressScript[t.lang]); scr != 0 {
+ // Note: it is not always the case that a language with a suppress
+ // script value is only written in one script (e.g. kk, ms, pa).
+ if t.region == 0 {
+ return Script{scriptID(scr)}, High
+ }
+ sc, c = scr, High
+ }
+ }
+ if tag, err := addTags(t); err == nil {
+ if tag.script != sc {
+ sc, c = tag.script, Low
+ }
+ } else {
+ t, _ = (Deprecated | Macro).Canonicalize(t)
+ if tag, err := addTags(t); err == nil && tag.script != sc {
+ sc, c = tag.script, Low
+ }
+ }
+ return Script{sc}, c
+}
+
+// Region returns the region for the language tag. If it was not explicitly given, it will
+// infer a most likely candidate from the context.
+// It uses a variant of CLDR's Add Likely Subtags algorithm. This is subject to change.
+func (t Tag) Region() (Region, Confidence) {
+ if t.region != 0 {
+ return Region{t.region}, Exact
+ }
+ if t, err := addTags(t); err == nil {
+ return Region{t.region}, Low // TODO: differentiate between high and low.
+ }
+ t, _ = (Deprecated | Macro).Canonicalize(t)
+ if tag, err := addTags(t); err == nil {
+ return Region{tag.region}, Low
+ }
+ return Region{_ZZ}, No // TODO: return world instead of undetermined?
+}
+
+// Variant returns the variants specified explicitly for this language tag.
+// or nil if no variant was specified.
+func (t Tag) Variants() []Variant {
+ v := []Variant{}
+ if int(t.pVariant) < int(t.pExt) {
+ for x, str := "", t.str[t.pVariant:t.pExt]; str != ""; {
+ x, str = nextToken(str)
+ v = append(v, Variant{x})
+ }
+ }
+ return v
+}
+
+// Parent returns the CLDR parent of t. In CLDR, missing fields in data for a
+// specific language are substituted with fields from the parent language.
+// The parent for a language may change for newer versions of CLDR.
+func (t Tag) Parent() Tag {
+ if t.str != "" {
+ // Strip the variants and extensions.
+ t, _ = Raw.Compose(t.Raw())
+ if t.region == 0 && t.script != 0 && t.lang != 0 {
+ base, _ := addTags(Tag{lang: t.lang})
+ if base.script == t.script {
+ return Tag{lang: t.lang}
+ }
+ }
+ return t
+ }
+ if t.lang != 0 {
+ if t.region != 0 {
+ maxScript := t.script
+ if maxScript == 0 {
+ max, _ := addTags(t)
+ maxScript = max.script
+ }
+
+ for i := range parents {
+ if langID(parents[i].lang) == t.lang && scriptID(parents[i].maxScript) == maxScript {
+ for _, r := range parents[i].fromRegion {
+ if regionID(r) == t.region {
+ return Tag{
+ lang: t.lang,
+ script: scriptID(parents[i].script),
+ region: regionID(parents[i].toRegion),
+ }
+ }
+ }
+ }
+ }
+
+ // Strip the script if it is the default one.
+ base, _ := addTags(Tag{lang: t.lang})
+ if base.script != maxScript {
+ return Tag{lang: t.lang, script: maxScript}
+ }
+ return Tag{lang: t.lang}
+ } else if t.script != 0 {
+ // The parent for an base-script pair with a non-default script is
+ // "und" instead of the base language.
+ base, _ := addTags(Tag{lang: t.lang})
+ if base.script != t.script {
+ return und
+ }
+ return Tag{lang: t.lang}
+ }
+ }
+ return und
+}
+
+// returns token t and the rest of the string.
+func nextToken(s string) (t, tail string) {
+ p := strings.Index(s[1:], "-")
+ if p == -1 {
+ return s[1:], ""
+ }
+ p++
+ return s[1:p], s[p:]
+}
+
+// Extension is a single BCP 47 extension.
+type Extension struct {
+ s string
+}
+
+// String returns the string representation of the extension, including the
+// type tag.
+func (e Extension) String() string {
+ return e.s
+}
+
+// ParseExtension parses s as an extension and returns it on success.
+func ParseExtension(s string) (e Extension, err error) {
+ scan := makeScannerString(s)
+ var end int
+ if n := len(scan.token); n != 1 {
+ return Extension{}, errSyntax
+ }
+ scan.toLower(0, len(scan.b))
+ end = parseExtension(&scan)
+ if end != len(s) {
+ return Extension{}, errSyntax
+ }
+ return Extension{string(scan.b)}, nil
+}
+
+// Type returns the one-byte extension type of e. It returns 0 for the zero
+// exception.
+func (e Extension) Type() byte {
+ if e.s == "" {
+ return 0
+ }
+ return e.s[0]
+}
+
+// Tokens returns the list of tokens of e.
+func (e Extension) Tokens() []string {
+ return strings.Split(e.s, "-")
+}
+
+// Extension returns the extension of type x for tag t. It will return
+// false for ok if t does not have the requested extension. The returned
+// extension will be invalid in this case.
+func (t Tag) Extension(x byte) (ext Extension, ok bool) {
+ for i := int(t.pExt); i < len(t.str)-1; {
+ var ext string
+ i, ext = getExtension(t.str, i)
+ if ext[0] == x {
+ return Extension{ext}, true
+ }
+ }
+ return Extension{}, false
+}
+
+// Extensions returns all extensions of t.
+func (t Tag) Extensions() []Extension {
+ e := []Extension{}
+ for i := int(t.pExt); i < len(t.str)-1; {
+ var ext string
+ i, ext = getExtension(t.str, i)
+ e = append(e, Extension{ext})
+ }
+ return e
+}
+
+// TypeForKey returns the type associated with the given key, where key and type
+// are of the allowed values defined for the Unicode locale extension ('u') in
+// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
+// TypeForKey will traverse the inheritance chain to get the correct value.
+func (t Tag) TypeForKey(key string) string {
+ if start, end, _ := t.findTypeForKey(key); end != start {
+ return t.str[start:end]
+ }
+ return ""
+}
+
+var (
+ errPrivateUse = errors.New("cannot set a key on a private use tag")
+ errInvalidArguments = errors.New("invalid key or type")
+)
+
+// SetTypeForKey returns a new Tag with the key set to type, where key and type
+// are of the allowed values defined for the Unicode locale extension ('u') in
+// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
+// An empty value removes an existing pair with the same key.
+func (t Tag) SetTypeForKey(key, value string) (Tag, error) {
+ if t.private() {
+ return t, errPrivateUse
+ }
+ if len(key) != 2 {
+ return t, errInvalidArguments
+ }
+
+ // Remove the setting if value is "".
+ if value == "" {
+ start, end, _ := t.findTypeForKey(key)
+ if start != end {
+ // Remove key tag and leading '-'.
+ start -= 4
+
+ // Remove a possible empty extension.
+ if (end == len(t.str) || t.str[end+2] == '-') && t.str[start-2] == '-' {
+ start -= 2
+ }
+ if start == int(t.pVariant) && end == len(t.str) {
+ t.str = ""
+ t.pVariant, t.pExt = 0, 0
+ } else {
+ t.str = fmt.Sprintf("%s%s", t.str[:start], t.str[end:])
+ }
+ }
+ return t, nil
+ }
+
+ if len(value) < 3 || len(value) > 8 {
+ return t, errInvalidArguments
+ }
+
+ var (
+ buf [maxCoreSize + maxSimpleUExtensionSize]byte
+ uStart int // start of the -u extension.
+ )
+
+ // Generate the tag string if needed.
+ if t.str == "" {
+ uStart = t.genCoreBytes(buf[:])
+ buf[uStart] = '-'
+ uStart++
+ }
+
+ // Create new key-type pair and parse it to verify.
+ b := buf[uStart:]
+ copy(b, "u-")
+ copy(b[2:], key)
+ b[4] = '-'
+ b = b[:5+copy(b[5:], value)]
+ scan := makeScanner(b)
+ if parseExtensions(&scan); scan.err != nil {
+ return t, scan.err
+ }
+
+ // Assemble the replacement string.
+ if t.str == "" {
+ t.pVariant, t.pExt = byte(uStart-1), uint16(uStart-1)
+ t.str = string(buf[:uStart+len(b)])
+ } else {
+ s := t.str
+ start, end, hasExt := t.findTypeForKey(key)
+ if start == end {
+ if hasExt {
+ b = b[2:]
+ }
+ t.str = fmt.Sprintf("%s-%s%s", s[:start], b, s[end:])
+ } else {
+ t.str = fmt.Sprintf("%s%s%s", s[:start], value, s[end:])
+ }
+ }
+ return t, nil
+}
+
+// findKeyAndType returns the start and end position for the type corresponding
+// to key or the point at which to insert the key-value pair if the type
+// wasn't found. The hasExt return value reports whether an -u extension was present.
+// Note: the extensions are typically very small and are likely to contain
+// only one key-type pair.
+func (t Tag) findTypeForKey(key string) (start, end int, hasExt bool) {
+ p := int(t.pExt)
+ if len(key) != 2 || p == len(t.str) || p == 0 {
+ return p, p, false
+ }
+ s := t.str
+
+ // Find the correct extension.
+ for p++; s[p] != 'u'; p++ {
+ if s[p] > 'u' {
+ p--
+ return p, p, false
+ }
+ if p = nextExtension(s, p); p == len(s) {
+ return len(s), len(s), false
+ }
+ }
+ // Proceed to the hyphen following the extension name.
+ p++
+
+ // curKey is the key currently being processed.
+ curKey := ""
+
+ // Iterate over keys until we get the end of a section.
+ for {
+ // p points to the hyphen preceding the current token.
+ if p3 := p + 3; s[p3] == '-' {
+ // Found a key.
+ // Check whether we just processed the key that was requested.
+ if curKey == key {
+ return start, p, true
+ }
+ // Set to the next key and continue scanning type tokens.
+ curKey = s[p+1 : p3]
+ if curKey > key {
+ return p, p, true
+ }
+ // Start of the type token sequence.
+ start = p + 4
+ // A type is at least 3 characters long.
+ p += 7 // 4 + 3
+ } else {
+ // Attribute or type, which is at least 3 characters long.
+ p += 4
+ }
+ // p points past the third character of a type or attribute.
+ max := p + 5 // maximum length of token plus hyphen.
+ if len(s) < max {
+ max = len(s)
+ }
+ for ; p < max && s[p] != '-'; p++ {
+ }
+ // Bail if we have exhausted all tokens or if the next token starts
+ // a new extension.
+ if p == len(s) || s[p+2] == '-' {
+ if curKey == key {
+ return start, p, true
+ }
+ return p, p, true
+ }
+ }
+}
+
+// CompactIndex returns an index, where 0 <= index < NumCompactTags, for tags
+// for which data exists in the text repository. The index will change over time
+// and should not be stored in persistent storage. Extensions, except for the
+// 'va' type of the 'u' extension, are ignored. It will return 0, false if no
+// compact tag exists, where 0 is the index for the root language (Und).
+func CompactIndex(t Tag) (index int, ok bool) {
+ // TODO: perhaps give more frequent tags a lower index.
+ // TODO: we could make the indexes stable. This will excluded some
+ // possibilities for optimization, so don't do this quite yet.
+ b, s, r := t.Raw()
+ if len(t.str) > 0 {
+ if strings.HasPrefix(t.str, "x-") {
+ // We have no entries for user-defined tags.
+ return 0, false
+ }
+ if uint16(t.pVariant) != t.pExt {
+ // There are no tags with variants and an u-va type.
+ if t.TypeForKey("va") != "" {
+ return 0, false
+ }
+ t, _ = Raw.Compose(b, s, r, t.Variants())
+ } else if _, ok := t.Extension('u'); ok {
+ // Strip all but the 'va' entry.
+ variant := t.TypeForKey("va")
+ t, _ = Raw.Compose(b, s, r)
+ t, _ = t.SetTypeForKey("va", variant)
+ }
+ if len(t.str) > 0 {
+ // We have some variants.
+ for i, s := range specialTags {
+ if s == t {
+ return i + 1, true
+ }
+ }
+ return 0, false
+ }
+ }
+ // No variants specified: just compare core components.
+ // The key has the form lllssrrr, where l, s, and r are nibbles for
+ // respectively the langID, scriptID, and regionID.
+ key := uint32(b.langID) << (8 + 12)
+ key |= uint32(s.scriptID) << 12
+ key |= uint32(r.regionID)
+ x, ok := coreTags[key]
+ return int(x), ok
+}
+
+// Base is an ISO 639 language code, used for encoding the base language
+// of a language tag.
+type Base struct {
+ langID
+}
+
+// ParseBase parses a 2- or 3-letter ISO 639 code.
+// It returns a ValueError if s is a well-formed but unknown language identifier
+// or another error if another error occurred.
+func ParseBase(s string) (Base, error) {
+ if n := len(s); n < 2 || 3 < n {
+ return Base{}, errSyntax
+ }
+ var buf [3]byte
+ l, err := getLangID(buf[:copy(buf[:], s)])
+ return Base{l}, err
+}
+
+// Script is a 4-letter ISO 15924 code for representing scripts.
+// It is idiomatically represented in title case.
+type Script struct {
+ scriptID
+}
+
+// ParseScript parses a 4-letter ISO 15924 code.
+// It returns a ValueError if s is a well-formed but unknown script identifier
+// or another error if another error occurred.
+func ParseScript(s string) (Script, error) {
+ if len(s) != 4 {
+ return Script{}, errSyntax
+ }
+ var buf [4]byte
+ sc, err := getScriptID(script, buf[:copy(buf[:], s)])
+ return Script{sc}, err
+}
+
+// Region is an ISO 3166-1 or UN M.49 code for representing countries and regions.
+type Region struct {
+ regionID
+}
+
+// EncodeM49 returns the Region for the given UN M.49 code.
+// It returns an error if r is not a valid code.
+func EncodeM49(r int) (Region, error) {
+ rid, err := getRegionM49(r)
+ return Region{rid}, err
+}
+
+// ParseRegion parses a 2- or 3-letter ISO 3166-1 or a UN M.49 code.
+// It returns a ValueError if s is a well-formed but unknown region identifier
+// or another error if another error occurred.
+func ParseRegion(s string) (Region, error) {
+ if n := len(s); n < 2 || 3 < n {
+ return Region{}, errSyntax
+ }
+ var buf [3]byte
+ r, err := getRegionID(buf[:copy(buf[:], s)])
+ return Region{r}, err
+}
+
+// IsCountry returns whether this region is a country or autonomous area. This
+// includes non-standard definitions from CLDR.
+func (r Region) IsCountry() bool {
+ if r.regionID == 0 || r.IsGroup() || r.IsPrivateUse() && r.regionID != _XK {
+ return false
+ }
+ return true
+}
+
+// IsGroup returns whether this region defines a collection of regions. This
+// includes non-standard definitions from CLDR.
+func (r Region) IsGroup() bool {
+ if r.regionID == 0 {
+ return false
+ }
+ return int(regionInclusion[r.regionID]) < len(regionContainment)
+}
+
+// Contains returns whether Region c is contained by Region r. It returns true
+// if c == r.
+func (r Region) Contains(c Region) bool {
+ return r.regionID.contains(c.regionID)
+}
+
+func (r regionID) contains(c regionID) bool {
+ if r == c {
+ return true
+ }
+ g := regionInclusion[r]
+ if g >= nRegionGroups {
+ return false
+ }
+ m := regionContainment[g]
+
+ d := regionInclusion[c]
+ b := regionInclusionBits[d]
+
+ // A contained country may belong to multiple disjoint groups. Matching any
+ // of these indicates containment. If the contained region is a group, it
+ // must strictly be a subset.
+ if d >= nRegionGroups {
+ return b&m != 0
+ }
+ return b&^m == 0
+}
+
+var errNoTLD = errors.New("language: region is not a valid ccTLD")
+
+// TLD returns the country code top-level domain (ccTLD). UK is returned for GB.
+// In all other cases it returns either the region itself or an error.
+//
+// This method may return an error for a region for which there exists a
+// canonical form with a ccTLD. To get that ccTLD canonicalize r first. The
+// region will already be canonicalized it was obtained from a Tag that was
+// obtained using any of the default methods.
+func (r Region) TLD() (Region, error) {
+ // See http://en.wikipedia.org/wiki/Country_code_top-level_domain for the
+ // difference between ISO 3166-1 and IANA ccTLD.
+ if r.regionID == _GB {
+ r = Region{_UK}
+ }
+ if (r.typ() & ccTLD) == 0 {
+ return Region{}, errNoTLD
+ }
+ return r, nil
+}
+
+// Canonicalize returns the region or a possible replacement if the region is
+// deprecated. It will not return a replacement for deprecated regions that
+// are split into multiple regions.
+func (r Region) Canonicalize() Region {
+ if cr := normRegion(r.regionID); cr != 0 {
+ return Region{cr}
+ }
+ return r
+}
+
+// Variant represents a registered variant of a language as defined by BCP 47.
+type Variant struct {
+ variant string
+}
+
+// ParseVariant parses and returns a Variant. An error is returned if s is not
+// a valid variant.
+func ParseVariant(s string) (Variant, error) {
+ s = strings.ToLower(s)
+ if _, ok := variantIndex[s]; ok {
+ return Variant{s}, nil
+ }
+ return Variant{}, mkErrInvalid([]byte(s))
+}
+
+// String returns the string representation of the variant.
+func (v Variant) String() string {
+ return v.variant
+}
diff --git a/vendor/golang.org/x/text/language/lookup.go b/vendor/golang.org/x/text/language/lookup.go
new file mode 100644
index 000000000..1d80ac370
--- /dev/null
+++ b/vendor/golang.org/x/text/language/lookup.go
@@ -0,0 +1,396 @@
+// 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 language
+
+import (
+ "bytes"
+ "fmt"
+ "sort"
+ "strconv"
+
+ "golang.org/x/text/internal/tag"
+)
+
+// findIndex tries to find the given tag in idx and returns a standardized error
+// if it could not be found.
+func findIndex(idx tag.Index, key []byte, form string) (index int, err error) {
+ if !tag.FixCase(form, key) {
+ return 0, errSyntax
+ }
+ i := idx.Index(key)
+ if i == -1 {
+ return 0, mkErrInvalid(key)
+ }
+ return i, nil
+}
+
+func searchUint(imap []uint16, key uint16) int {
+ return sort.Search(len(imap), func(i int) bool {
+ return imap[i] >= key
+ })
+}
+
+type langID uint16
+
+// getLangID returns the langID of s if s is a canonical subtag
+// or langUnknown if s is not a canonical subtag.
+func getLangID(s []byte) (langID, error) {
+ if len(s) == 2 {
+ return getLangISO2(s)
+ }
+ return getLangISO3(s)
+}
+
+// mapLang returns the mapped langID of id according to mapping m.
+func normLang(id langID) (langID, langAliasType) {
+ k := sort.Search(len(langAliasMap), func(i int) bool {
+ return langAliasMap[i].from >= uint16(id)
+ })
+ if k < len(langAliasMap) && langAliasMap[k].from == uint16(id) {
+ return langID(langAliasMap[k].to), langAliasTypes[k]
+ }
+ return id, langAliasTypeUnknown
+}
+
+// getLangISO2 returns the langID for the given 2-letter ISO language code
+// or unknownLang if this does not exist.
+func getLangISO2(s []byte) (langID, error) {
+ if !tag.FixCase("zz", s) {
+ return 0, errSyntax
+ }
+ if i := lang.Index(s); i != -1 && lang.Elem(i)[3] != 0 {
+ return langID(i), nil
+ }
+ return 0, mkErrInvalid(s)
+}
+
+const base = 'z' - 'a' + 1
+
+func strToInt(s []byte) uint {
+ v := uint(0)
+ for i := 0; i < len(s); i++ {
+ v *= base
+ v += uint(s[i] - 'a')
+ }
+ return v
+}
+
+// converts the given integer to the original ASCII string passed to strToInt.
+// len(s) must match the number of characters obtained.
+func intToStr(v uint, s []byte) {
+ for i := len(s) - 1; i >= 0; i-- {
+ s[i] = byte(v%base) + 'a'
+ v /= base
+ }
+}
+
+// getLangISO3 returns the langID for the given 3-letter ISO language code
+// or unknownLang if this does not exist.
+func getLangISO3(s []byte) (langID, error) {
+ if tag.FixCase("und", s) {
+ // first try to match canonical 3-letter entries
+ for i := lang.Index(s[:2]); i != -1; i = lang.Next(s[:2], i) {
+ if e := lang.Elem(i); e[3] == 0 && e[2] == s[2] {
+ // We treat "und" as special and always translate it to "unspecified".
+ // Note that ZZ and Zzzz are private use and are not treated as
+ // unspecified by default.
+ id := langID(i)
+ if id == nonCanonicalUnd {
+ return 0, nil
+ }
+ return id, nil
+ }
+ }
+ if i := altLangISO3.Index(s); i != -1 {
+ return langID(altLangIndex[altLangISO3.Elem(i)[3]]), nil
+ }
+ n := strToInt(s)
+ if langNoIndex[n/8]&(1<<(n%8)) != 0 {
+ return langID(n) + langNoIndexOffset, nil
+ }
+ // Check for non-canonical uses of ISO3.
+ for i := lang.Index(s[:1]); i != -1; i = lang.Next(s[:1], i) {
+ if e := lang.Elem(i); e[2] == s[1] && e[3] == s[2] {
+ return langID(i), nil
+ }
+ }
+ return 0, mkErrInvalid(s)
+ }
+ return 0, errSyntax
+}
+
+// stringToBuf writes the string to b and returns the number of bytes
+// written. cap(b) must be >= 3.
+func (id langID) stringToBuf(b []byte) int {
+ if id >= langNoIndexOffset {
+ intToStr(uint(id)-langNoIndexOffset, b[:3])
+ return 3
+ } else if id == 0 {
+ return copy(b, "und")
+ }
+ l := lang[id<<2:]
+ if l[3] == 0 {
+ return copy(b, l[:3])
+ }
+ return copy(b, l[:2])
+}
+
+// String returns the BCP 47 representation of the langID.
+// Use b as variable name, instead of id, to ensure the variable
+// used is consistent with that of Base in which this type is embedded.
+func (b langID) String() string {
+ if b == 0 {
+ return "und"
+ } else if b >= langNoIndexOffset {
+ b -= langNoIndexOffset
+ buf := [3]byte{}
+ intToStr(uint(b), buf[:])
+ return string(buf[:])
+ }
+ l := lang.Elem(int(b))
+ if l[3] == 0 {
+ return l[:3]
+ }
+ return l[:2]
+}
+
+// ISO3 returns the ISO 639-3 language code.
+func (b langID) ISO3() string {
+ if b == 0 || b >= langNoIndexOffset {
+ return b.String()
+ }
+ l := lang.Elem(int(b))
+ if l[3] == 0 {
+ return l[:3]
+ } else if l[2] == 0 {
+ return altLangISO3.Elem(int(l[3]))[:3]
+ }
+ // This allocation will only happen for 3-letter ISO codes
+ // that are non-canonical BCP 47 language identifiers.
+ return l[0:1] + l[2:4]
+}
+
+// IsPrivateUse reports whether this language code is reserved for private use.
+func (b langID) IsPrivateUse() bool {
+ return langPrivateStart <= b && b <= langPrivateEnd
+}
+
+type regionID uint16
+
+// getRegionID returns the region id for s if s is a valid 2-letter region code
+// or unknownRegion.
+func getRegionID(s []byte) (regionID, error) {
+ if len(s) == 3 {
+ if isAlpha(s[0]) {
+ return getRegionISO3(s)
+ }
+ if i, err := strconv.ParseUint(string(s), 10, 10); err == nil {
+ return getRegionM49(int(i))
+ }
+ }
+ return getRegionISO2(s)
+}
+
+// getRegionISO2 returns the regionID for the given 2-letter ISO country code
+// or unknownRegion if this does not exist.
+func getRegionISO2(s []byte) (regionID, error) {
+ i, err := findIndex(regionISO, s, "ZZ")
+ if err != nil {
+ return 0, err
+ }
+ return regionID(i) + isoRegionOffset, nil
+}
+
+// getRegionISO3 returns the regionID for the given 3-letter ISO country code
+// or unknownRegion if this does not exist.
+func getRegionISO3(s []byte) (regionID, error) {
+ if tag.FixCase("ZZZ", s) {
+ for i := regionISO.Index(s[:1]); i != -1; i = regionISO.Next(s[:1], i) {
+ if e := regionISO.Elem(i); e[2] == s[1] && e[3] == s[2] {
+ return regionID(i) + isoRegionOffset, nil
+ }
+ }
+ for i := 0; i < len(altRegionISO3); i += 3 {
+ if tag.Compare(altRegionISO3[i:i+3], s) == 0 {
+ return regionID(altRegionIDs[i/3]), nil
+ }
+ }
+ return 0, mkErrInvalid(s)
+ }
+ return 0, errSyntax
+}
+
+func getRegionM49(n int) (regionID, error) {
+ if 0 < n && n <= 999 {
+ const (
+ searchBits = 7
+ regionBits = 9
+ regionMask = 1<<regionBits - 1
+ )
+ idx := n >> searchBits
+ buf := fromM49[m49Index[idx]:m49Index[idx+1]]
+ val := uint16(n) << regionBits // we rely on bits shifting out
+ i := sort.Search(len(buf), func(i int) bool {
+ return buf[i] >= val
+ })
+ if r := fromM49[int(m49Index[idx])+i]; r&^regionMask == val {
+ return regionID(r & regionMask), nil
+ }
+ }
+ var e ValueError
+ fmt.Fprint(bytes.NewBuffer([]byte(e.v[:])), n)
+ return 0, e
+}
+
+// normRegion returns a region if r is deprecated or 0 otherwise.
+// TODO: consider supporting BYS (-> BLR), CSK (-> 200 or CZ), PHI (-> PHL) and AFI (-> DJ).
+// TODO: consider mapping split up regions to new most populous one (like CLDR).
+func normRegion(r regionID) regionID {
+ m := regionOldMap
+ k := sort.Search(len(m), func(i int) bool {
+ return m[i].from >= uint16(r)
+ })
+ if k < len(m) && m[k].from == uint16(r) {
+ return regionID(m[k].to)
+ }
+ return 0
+}
+
+const (
+ iso3166UserAssigned = 1 << iota
+ ccTLD
+ bcp47Region
+)
+
+func (r regionID) typ() byte {
+ return regionTypes[r]
+}
+
+// String returns the BCP 47 representation for the region.
+// It returns "ZZ" for an unspecified region.
+func (r regionID) String() string {
+ if r < isoRegionOffset {
+ if r == 0 {
+ return "ZZ"
+ }
+ return fmt.Sprintf("%03d", r.M49())
+ }
+ r -= isoRegionOffset
+ return regionISO.Elem(int(r))[:2]
+}
+
+// ISO3 returns the 3-letter ISO code of r.
+// Note that not all regions have a 3-letter ISO code.
+// In such cases this method returns "ZZZ".
+func (r regionID) ISO3() string {
+ if r < isoRegionOffset {
+ return "ZZZ"
+ }
+ r -= isoRegionOffset
+ reg := regionISO.Elem(int(r))
+ switch reg[2] {
+ case 0:
+ return altRegionISO3[reg[3]:][:3]
+ case ' ':
+ return "ZZZ"
+ }
+ return reg[0:1] + reg[2:4]
+}
+
+// M49 returns the UN M.49 encoding of r, or 0 if this encoding
+// is not defined for r.
+func (r regionID) M49() int {
+ return int(m49[r])
+}
+
+// IsPrivateUse reports whether r has the ISO 3166 User-assigned status. This
+// may include private-use tags that are assigned by CLDR and used in this
+// implementation. So IsPrivateUse and IsCountry can be simultaneously true.
+func (r regionID) IsPrivateUse() bool {
+ return r.typ()&iso3166UserAssigned != 0
+}
+
+type scriptID uint8
+
+// getScriptID returns the script id for string s. It assumes that s
+// is of the format [A-Z][a-z]{3}.
+func getScriptID(idx tag.Index, s []byte) (scriptID, error) {
+ i, err := findIndex(idx, s, "Zzzz")
+ return scriptID(i), err
+}
+
+// String returns the script code in title case.
+// It returns "Zzzz" for an unspecified script.
+func (s scriptID) String() string {
+ if s == 0 {
+ return "Zzzz"
+ }
+ return script.Elem(int(s))
+}
+
+// IsPrivateUse reports whether this script code is reserved for private use.
+func (s scriptID) IsPrivateUse() bool {
+ return _Qaaa <= s && s <= _Qabx
+}
+
+const (
+ maxAltTaglen = len("en-US-POSIX")
+ maxLen = maxAltTaglen
+)
+
+var (
+ // grandfatheredMap holds a mapping from legacy and grandfathered tags to
+ // their base language or index to more elaborate tag.
+ grandfatheredMap = map[[maxLen]byte]int16{
+ [maxLen]byte{'a', 'r', 't', '-', 'l', 'o', 'j', 'b', 'a', 'n'}: _jbo, // art-lojban
+ [maxLen]byte{'i', '-', 'a', 'm', 'i'}: _ami, // i-ami
+ [maxLen]byte{'i', '-', 'b', 'n', 'n'}: _bnn, // i-bnn
+ [maxLen]byte{'i', '-', 'h', 'a', 'k'}: _hak, // i-hak
+ [maxLen]byte{'i', '-', 'k', 'l', 'i', 'n', 'g', 'o', 'n'}: _tlh, // i-klingon
+ [maxLen]byte{'i', '-', 'l', 'u', 'x'}: _lb, // i-lux
+ [maxLen]byte{'i', '-', 'n', 'a', 'v', 'a', 'j', 'o'}: _nv, // i-navajo
+ [maxLen]byte{'i', '-', 'p', 'w', 'n'}: _pwn, // i-pwn
+ [maxLen]byte{'i', '-', 't', 'a', 'o'}: _tao, // i-tao
+ [maxLen]byte{'i', '-', 't', 'a', 'y'}: _tay, // i-tay
+ [maxLen]byte{'i', '-', 't', 's', 'u'}: _tsu, // i-tsu
+ [maxLen]byte{'n', 'o', '-', 'b', 'o', 'k'}: _nb, // no-bok
+ [maxLen]byte{'n', 'o', '-', 'n', 'y', 'n'}: _nn, // no-nyn
+ [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'f', 'r'}: _sfb, // sgn-BE-FR
+ [maxLen]byte{'s', 'g', 'n', '-', 'b', 'e', '-', 'n', 'l'}: _vgt, // sgn-BE-NL
+ [maxLen]byte{'s', 'g', 'n', '-', 'c', 'h', '-', 'd', 'e'}: _sgg, // sgn-CH-DE
+ [maxLen]byte{'z', 'h', '-', 'g', 'u', 'o', 'y', 'u'}: _cmn, // zh-guoyu
+ [maxLen]byte{'z', 'h', '-', 'h', 'a', 'k', 'k', 'a'}: _hak, // zh-hakka
+ [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n', '-', 'n', 'a', 'n'}: _nan, // zh-min-nan
+ [maxLen]byte{'z', 'h', '-', 'x', 'i', 'a', 'n', 'g'}: _hsn, // zh-xiang
+
+ // Grandfathered tags with no modern replacement will be converted as
+ // follows:
+ [maxLen]byte{'c', 'e', 'l', '-', 'g', 'a', 'u', 'l', 'i', 's', 'h'}: -1, // cel-gaulish
+ [maxLen]byte{'e', 'n', '-', 'g', 'b', '-', 'o', 'e', 'd'}: -2, // en-GB-oed
+ [maxLen]byte{'i', '-', 'd', 'e', 'f', 'a', 'u', 'l', 't'}: -3, // i-default
+ [maxLen]byte{'i', '-', 'e', 'n', 'o', 'c', 'h', 'i', 'a', 'n'}: -4, // i-enochian
+ [maxLen]byte{'i', '-', 'm', 'i', 'n', 'g', 'o'}: -5, // i-mingo
+ [maxLen]byte{'z', 'h', '-', 'm', 'i', 'n'}: -6, // zh-min
+
+ // CLDR-specific tag.
+ [maxLen]byte{'r', 'o', 'o', 't'}: 0, // root
+ [maxLen]byte{'e', 'n', '-', 'u', 's', '-', 'p', 'o', 's', 'i', 'x'}: -7, // en_US_POSIX"
+ }
+
+ altTagIndex = [...]uint8{0, 17, 31, 45, 61, 74, 86, 102}
+
+ altTags = "xtg-x-cel-gaulishen-GB-oxendicten-x-i-defaultund-x-i-enochiansee-x-i-mingonan-x-zh-minen-US-u-va-posix"
+)
+
+func grandfathered(s [maxAltTaglen]byte) (t Tag, ok bool) {
+ if v, ok := grandfatheredMap[s]; ok {
+ if v < 0 {
+ return Make(altTags[altTagIndex[-v-1]:altTagIndex[-v]]), true
+ }
+ t.lang = langID(v)
+ return t, true
+ }
+ return t, false
+}
diff --git a/vendor/golang.org/x/text/language/maketables.go b/vendor/golang.org/x/text/language/maketables.go
new file mode 100644
index 000000000..107f99254
--- /dev/null
+++ b/vendor/golang.org/x/text/language/maketables.go
@@ -0,0 +1,1648 @@
+// 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 ignore
+
+// Language tag table generator.
+// Data read from the web.
+
+package main
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "log"
+ "math"
+ "reflect"
+ "regexp"
+ "sort"
+ "strconv"
+ "strings"
+
+ "golang.org/x/text/internal/gen"
+ "golang.org/x/text/internal/tag"
+ "golang.org/x/text/unicode/cldr"
+)
+
+var (
+ test = flag.Bool("test",
+ false,
+ "test existing tables; can be used to compare web data with package data.")
+ outputFile = flag.String("output",
+ "tables.go",
+ "output file for generated tables")
+)
+
+var comment = []string{
+ `
+lang holds an alphabetically sorted list of ISO-639 language identifiers.
+All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag.
+For 2-byte language identifiers, the two successive bytes have the following meaning:
+ - if the first letter of the 2- and 3-letter ISO codes are the same:
+ the second and third letter of the 3-letter ISO code.
+ - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.
+For 3-byte language identifiers the 4th byte is 0.`,
+ `
+langNoIndex is a bit vector of all 3-letter language codes that are not used as an index
+in lookup tables. The language ids for these language codes are derived directly
+from the letters and are not consecutive.`,
+ `
+altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives
+to 2-letter language codes that cannot be derived using the method described above.
+Each 3-letter code is followed by its 1-byte langID.`,
+ `
+altLangIndex is used to convert indexes in altLangISO3 to langIDs.`,
+ `
+langAliasMap maps langIDs to their suggested replacements.`,
+ `
+script is an alphabetically sorted list of ISO 15924 codes. The index
+of the script in the string, divided by 4, is the internal scriptID.`,
+ `
+isoRegionOffset needs to be added to the index of regionISO to obtain the regionID
+for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for
+the UN.M49 codes used for groups.)`,
+ `
+regionISO holds a list of alphabetically sorted 2-letter ISO region codes.
+Each 2-letter codes is followed by two bytes with the following meaning:
+ - [A-Z}{2}: the first letter of the 2-letter code plus these two
+ letters form the 3-letter ISO code.
+ - 0, n: index into altRegionISO3.`,
+ `
+regionTypes defines the status of a region for various standards.`,
+ `
+m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are
+codes indicating collections of regions.`,
+ `
+m49Index gives indexes into fromM49 based on the three most significant bits
+of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in
+ fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]
+for an entry where the first 7 bits match the 7 lsb of the UN.M49 code.
+The region code is stored in the 9 lsb of the indexed value.`,
+ `
+fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.`,
+ `
+altRegionISO3 holds a list of 3-letter region codes that cannot be
+mapped to 2-letter codes using the default algorithm. This is a short list.`,
+ `
+altRegionIDs holds a list of regionIDs the positions of which match those
+of the 3-letter ISO codes in altRegionISO3.`,
+ `
+variantNumSpecialized is the number of specialized variants in variants.`,
+ `
+suppressScript is an index from langID to the dominant script for that language,
+if it exists. If a script is given, it should be suppressed from the language tag.`,
+ `
+likelyLang is a lookup table, indexed by langID, for the most likely
+scripts and regions given incomplete information. If more entries exist for a
+given language, region and script are the index and size respectively
+of the list in likelyLangList.`,
+ `
+likelyLangList holds lists info associated with likelyLang.`,
+ `
+likelyRegion is a lookup table, indexed by regionID, for the most likely
+languages and scripts given incomplete information. If more entries exist
+for a given regionID, lang and script are the index and size respectively
+of the list in likelyRegionList.
+TODO: exclude containers and user-definable regions from the list.`,
+ `
+likelyRegionList holds lists info associated with likelyRegion.`,
+ `
+likelyScript is a lookup table, indexed by scriptID, for the most likely
+languages and regions given a script.`,
+ `
+matchLang holds pairs of langIDs of base languages that are typically
+mutually intelligible. Each pair is associated with a confidence and
+whether the intelligibility goes one or both ways.`,
+ `
+matchScript holds pairs of scriptIDs where readers of one script
+can typically also read the other. Each is associated with a confidence.`,
+ `
+nRegionGroups is the number of region groups.`,
+ `
+regionInclusion maps region identifiers to sets of regions in regionInclusionBits,
+where each set holds all groupings that are directly connected in a region
+containment graph.`,
+ `
+regionInclusionBits is an array of bit vectors where every vector represents
+a set of region groupings. These sets are used to compute the distance
+between two regions for the purpose of language matching.`,
+ `
+regionInclusionNext marks, for each entry in regionInclusionBits, the set of
+all groups that are reachable from the groups set in the respective entry.`,
+}
+
+// TODO: consider changing some of these structures to tries. This can reduce
+// memory, but may increase the need for memory allocations. This could be
+// mitigated if we can piggyback on language tags for common cases.
+
+func failOnError(e error) {
+ if e != nil {
+ log.Panic(e)
+ }
+}
+
+type setType int
+
+const (
+ Indexed setType = 1 + iota // all elements must be of same size
+ Linear
+)
+
+type stringSet struct {
+ s []string
+ sorted, frozen bool
+
+ // We often need to update values after the creation of an index is completed.
+ // We include a convenience map for keeping track of this.
+ update map[string]string
+ typ setType // used for checking.
+}
+
+func (ss *stringSet) clone() stringSet {
+ c := *ss
+ c.s = append([]string(nil), c.s...)
+ return c
+}
+
+func (ss *stringSet) setType(t setType) {
+ if ss.typ != t && ss.typ != 0 {
+ log.Panicf("type %d cannot be assigned as it was already %d", t, ss.typ)
+ }
+}
+
+// parse parses a whitespace-separated string and initializes ss with its
+// components.
+func (ss *stringSet) parse(s string) {
+ scan := bufio.NewScanner(strings.NewReader(s))
+ scan.Split(bufio.ScanWords)
+ for scan.Scan() {
+ ss.add(scan.Text())
+ }
+}
+
+func (ss *stringSet) assertChangeable() {
+ if ss.frozen {
+ log.Panic("attempt to modify a frozen stringSet")
+ }
+}
+
+func (ss *stringSet) add(s string) {
+ ss.assertChangeable()
+ ss.s = append(ss.s, s)
+ ss.sorted = ss.frozen
+}
+
+func (ss *stringSet) freeze() {
+ ss.compact()
+ ss.frozen = true
+}
+
+func (ss *stringSet) compact() {
+ if ss.sorted {
+ return
+ }
+ a := ss.s
+ sort.Strings(a)
+ k := 0
+ for i := 1; i < len(a); i++ {
+ if a[k] != a[i] {
+ a[k+1] = a[i]
+ k++
+ }
+ }
+ ss.s = a[:k+1]
+ ss.sorted = ss.frozen
+}
+
+type funcSorter struct {
+ fn func(a, b string) bool
+ sort.StringSlice
+}
+
+func (s funcSorter) Less(i, j int) bool {
+ return s.fn(s.StringSlice[i], s.StringSlice[j])
+}
+
+func (ss *stringSet) sortFunc(f func(a, b string) bool) {
+ ss.compact()
+ sort.Sort(funcSorter{f, sort.StringSlice(ss.s)})
+}
+
+func (ss *stringSet) remove(s string) {
+ ss.assertChangeable()
+ if i, ok := ss.find(s); ok {
+ copy(ss.s[i:], ss.s[i+1:])
+ ss.s = ss.s[:len(ss.s)-1]
+ }
+}
+
+func (ss *stringSet) replace(ol, nu string) {
+ ss.s[ss.index(ol)] = nu
+ ss.sorted = ss.frozen
+}
+
+func (ss *stringSet) index(s string) int {
+ ss.setType(Indexed)
+ i, ok := ss.find(s)
+ if !ok {
+ if i < len(ss.s) {
+ log.Panicf("find: item %q is not in list. Closest match is %q.", s, ss.s[i])
+ }
+ log.Panicf("find: item %q is not in list", s)
+
+ }
+ return i
+}
+
+func (ss *stringSet) find(s string) (int, bool) {
+ ss.compact()
+ i := sort.SearchStrings(ss.s, s)
+ return i, i != len(ss.s) && ss.s[i] == s
+}
+
+func (ss *stringSet) slice() []string {
+ ss.compact()
+ return ss.s
+}
+
+func (ss *stringSet) updateLater(v, key string) {
+ if ss.update == nil {
+ ss.update = map[string]string{}
+ }
+ ss.update[v] = key
+}
+
+// join joins the string and ensures that all entries are of the same length.
+func (ss *stringSet) join() string {
+ ss.setType(Indexed)
+ n := len(ss.s[0])
+ for _, s := range ss.s {
+ if len(s) != n {
+ log.Panicf("join: not all entries are of the same length: %q", s)
+ }
+ }
+ ss.s = append(ss.s, strings.Repeat("\xff", n))
+ return strings.Join(ss.s, "")
+}
+
+// ianaEntry holds information for an entry in the IANA Language Subtag Repository.
+// All types use the same entry.
+// See http://tools.ietf.org/html/bcp47#section-5.1 for a description of the various
+// fields.
+type ianaEntry struct {
+ typ string
+ description []string
+ scope string
+ added string
+ preferred string
+ deprecated string
+ suppressScript string
+ macro string
+ prefix []string
+}
+
+type builder struct {
+ w *gen.CodeWriter
+ hw io.Writer // MultiWriter for w and w.Hash
+ data *cldr.CLDR
+ supp *cldr.SupplementalData
+
+ // indices
+ locale stringSet // common locales
+ lang stringSet // canonical language ids (2 or 3 letter ISO codes) with data
+ langNoIndex stringSet // 3-letter ISO codes with no associated data
+ script stringSet // 4-letter ISO codes
+ region stringSet // 2-letter ISO or 3-digit UN M49 codes
+ variant stringSet // 4-8-alphanumeric variant code.
+
+ // Region codes that are groups with their corresponding group IDs.
+ groups map[int]index
+
+ // langInfo
+ registry map[string]*ianaEntry
+}
+
+type index uint
+
+func newBuilder(w *gen.CodeWriter) *builder {
+ r := gen.OpenCLDRCoreZip()
+ defer r.Close()
+ d := &cldr.Decoder{}
+ data, err := d.DecodeZip(r)
+ failOnError(err)
+ b := builder{
+ w: w,
+ hw: io.MultiWriter(w, w.Hash),
+ data: data,
+ supp: data.Supplemental(),
+ }
+ b.parseRegistry()
+ return &b
+}
+
+func (b *builder) parseRegistry() {
+ r := gen.OpenIANAFile("assignments/language-subtag-registry")
+ defer r.Close()
+ b.registry = make(map[string]*ianaEntry)
+
+ scan := bufio.NewScanner(r)
+ scan.Split(bufio.ScanWords)
+ var record *ianaEntry
+ for more := scan.Scan(); more; {
+ key := scan.Text()
+ more = scan.Scan()
+ value := scan.Text()
+ switch key {
+ case "Type:":
+ record = &ianaEntry{typ: value}
+ case "Subtag:", "Tag:":
+ if s := strings.SplitN(value, "..", 2); len(s) > 1 {
+ for a := s[0]; a <= s[1]; a = inc(a) {
+ b.addToRegistry(a, record)
+ }
+ } else {
+ b.addToRegistry(value, record)
+ }
+ case "Suppress-Script:":
+ record.suppressScript = value
+ case "Added:":
+ record.added = value
+ case "Deprecated:":
+ record.deprecated = value
+ case "Macrolanguage:":
+ record.macro = value
+ case "Preferred-Value:":
+ record.preferred = value
+ case "Prefix:":
+ record.prefix = append(record.prefix, value)
+ case "Scope:":
+ record.scope = value
+ case "Description:":
+ buf := []byte(value)
+ for more = scan.Scan(); more; more = scan.Scan() {
+ b := scan.Bytes()
+ if b[0] == '%' || b[len(b)-1] == ':' {
+ break
+ }
+ buf = append(buf, ' ')
+ buf = append(buf, b...)
+ }
+ record.description = append(record.description, string(buf))
+ continue
+ default:
+ continue
+ }
+ more = scan.Scan()
+ }
+ if scan.Err() != nil {
+ log.Panic(scan.Err())
+ }
+}
+
+func (b *builder) addToRegistry(key string, entry *ianaEntry) {
+ if info, ok := b.registry[key]; ok {
+ if info.typ != "language" || entry.typ != "extlang" {
+ log.Fatalf("parseRegistry: tag %q already exists", key)
+ }
+ } else {
+ b.registry[key] = entry
+ }
+}
+
+var commentIndex = make(map[string]string)
+
+func init() {
+ for _, s := range comment {
+ key := strings.TrimSpace(strings.SplitN(s, " ", 2)[0])
+ commentIndex[key] = s
+ }
+}
+
+func (b *builder) comment(name string) {
+ if s := commentIndex[name]; len(s) > 0 {
+ b.w.WriteComment(s)
+ } else {
+ fmt.Fprintln(b.w)
+ }
+}
+
+func (b *builder) pf(f string, x ...interface{}) {
+ fmt.Fprintf(b.hw, f, x...)
+ fmt.Fprint(b.hw, "\n")
+}
+
+func (b *builder) p(x ...interface{}) {
+ fmt.Fprintln(b.hw, x...)
+}
+
+func (b *builder) addSize(s int) {
+ b.w.Size += s
+ b.pf("// Size: %d bytes", s)
+}
+
+func (b *builder) writeConst(name string, x interface{}) {
+ b.comment(name)
+ b.w.WriteConst(name, x)
+}
+
+// writeConsts computes f(v) for all v in values and writes the results
+// as constants named _v to a single constant block.
+func (b *builder) writeConsts(f func(string) int, values ...string) {
+ b.pf("const (")
+ for _, v := range values {
+ b.pf("\t_%s = %v", v, f(v))
+ }
+ b.pf(")")
+}
+
+// writeType writes the type of the given value, which must be a struct.
+func (b *builder) writeType(value interface{}) {
+ b.comment(reflect.TypeOf(value).Name())
+ b.w.WriteType(value)
+}
+
+func (b *builder) writeSlice(name string, ss interface{}) {
+ b.writeSliceAddSize(name, 0, ss)
+}
+
+func (b *builder) writeSliceAddSize(name string, extraSize int, ss interface{}) {
+ b.comment(name)
+ b.w.Size += extraSize
+ v := reflect.ValueOf(ss)
+ t := v.Type().Elem()
+ b.pf("// Size: %d bytes, %d elements", v.Len()*int(t.Size())+extraSize, v.Len())
+
+ fmt.Fprintf(b.w, "var %s = ", name)
+ b.w.WriteArray(ss)
+ b.p()
+}
+
+type fromTo struct {
+ from, to uint16
+}
+
+func (b *builder) writeSortedMap(name string, ss *stringSet, index func(s string) uint16) {
+ ss.sortFunc(func(a, b string) bool {
+ return index(a) < index(b)
+ })
+ m := []fromTo{}
+ for _, s := range ss.s {
+ m = append(m, fromTo{index(s), index(ss.update[s])})
+ }
+ b.writeSlice(name, m)
+}
+
+const base = 'z' - 'a' + 1
+
+func strToInt(s string) uint {
+ v := uint(0)
+ for i := 0; i < len(s); i++ {
+ v *= base
+ v += uint(s[i] - 'a')
+ }
+ return v
+}
+
+// converts the given integer to the original ASCII string passed to strToInt.
+// len(s) must match the number of characters obtained.
+func intToStr(v uint, s []byte) {
+ for i := len(s) - 1; i >= 0; i-- {
+ s[i] = byte(v%base) + 'a'
+ v /= base
+ }
+}
+
+func (b *builder) writeBitVector(name string, ss []string) {
+ vec := make([]uint8, int(math.Ceil(math.Pow(base, float64(len(ss[0])))/8)))
+ for _, s := range ss {
+ v := strToInt(s)
+ vec[v/8] |= 1 << (v % 8)
+ }
+ b.writeSlice(name, vec)
+}
+
+// TODO: convert this type into a list or two-stage trie.
+func (b *builder) writeMapFunc(name string, m map[string]string, f func(string) uint16) {
+ b.comment(name)
+ v := reflect.ValueOf(m)
+ sz := v.Len() * (2 + int(v.Type().Key().Size()))
+ for _, k := range m {
+ sz += len(k)
+ }
+ b.addSize(sz)
+ keys := []string{}
+ b.pf(`var %s = map[string]uint16{`, name)
+ for k := range m {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ for _, k := range keys {
+ b.pf("\t%q: %v,", k, f(m[k]))
+ }
+ b.p("}")
+}
+
+func (b *builder) writeMap(name string, m interface{}) {
+ b.comment(name)
+ v := reflect.ValueOf(m)
+ sz := v.Len() * (2 + int(v.Type().Key().Size()) + int(v.Type().Elem().Size()))
+ b.addSize(sz)
+ f := strings.FieldsFunc(fmt.Sprintf("%#v", m), func(r rune) bool {
+ return strings.IndexRune("{}, ", r) != -1
+ })
+ sort.Strings(f[1:])
+ b.pf(`var %s = %s{`, name, f[0])
+ for _, kv := range f[1:] {
+ b.pf("\t%s,", kv)
+ }
+ b.p("}")
+}
+
+func (b *builder) langIndex(s string) uint16 {
+ if s == "und" {
+ return 0
+ }
+ if i, ok := b.lang.find(s); ok {
+ return uint16(i)
+ }
+ return uint16(strToInt(s)) + uint16(len(b.lang.s))
+}
+
+// inc advances the string to its lexicographical successor.
+func inc(s string) string {
+ const maxTagLength = 4
+ var buf [maxTagLength]byte
+ intToStr(strToInt(strings.ToLower(s))+1, buf[:len(s)])
+ for i := 0; i < len(s); i++ {
+ if s[i] <= 'Z' {
+ buf[i] -= 'a' - 'A'
+ }
+ }
+ return string(buf[:len(s)])
+}
+
+func (b *builder) parseIndices() {
+ meta := b.supp.Metadata
+
+ for k, v := range b.registry {
+ var ss *stringSet
+ switch v.typ {
+ case "language":
+ if len(k) == 2 || v.suppressScript != "" || v.scope == "special" {
+ b.lang.add(k)
+ continue
+ } else {
+ ss = &b.langNoIndex
+ }
+ case "region":
+ ss = &b.region
+ case "script":
+ ss = &b.script
+ case "variant":
+ ss = &b.variant
+ default:
+ continue
+ }
+ ss.add(k)
+ }
+ // Include any language for which there is data.
+ for _, lang := range b.data.Locales() {
+ if x := b.data.RawLDML(lang); false ||
+ x.LocaleDisplayNames != nil ||
+ x.Characters != nil ||
+ x.Delimiters != nil ||
+ x.Measurement != nil ||
+ x.Dates != nil ||
+ x.Numbers != nil ||
+ x.Units != nil ||
+ x.ListPatterns != nil ||
+ x.Collations != nil ||
+ x.Segmentations != nil ||
+ x.Rbnf != nil ||
+ x.Annotations != nil ||
+ x.Metadata != nil {
+
+ from := strings.Split(lang, "_")
+ if lang := from[0]; lang != "root" {
+ b.lang.add(lang)
+ }
+ }
+ }
+ // Include locales for plural rules, which uses a different structure.
+ for _, plurals := range b.data.Supplemental().Plurals {
+ for _, rules := range plurals.PluralRules {
+ for _, lang := range strings.Split(rules.Locales, " ") {
+ if lang = strings.Split(lang, "_")[0]; lang != "root" {
+ b.lang.add(lang)
+ }
+ }
+ }
+ }
+ // Include languages in likely subtags.
+ for _, m := range b.supp.LikelySubtags.LikelySubtag {
+ from := strings.Split(m.From, "_")
+ b.lang.add(from[0])
+ }
+ // Include ISO-639 alpha-3 bibliographic entries.
+ for _, a := range meta.Alias.LanguageAlias {
+ if a.Reason == "bibliographic" {
+ b.langNoIndex.add(a.Type)
+ }
+ }
+ // Include regions in territoryAlias (not all are in the IANA registry!)
+ for _, reg := range b.supp.Metadata.Alias.TerritoryAlias {
+ if len(reg.Type) == 2 {
+ b.region.add(reg.Type)
+ }
+ }
+
+ for _, s := range b.lang.s {
+ if len(s) == 3 {
+ b.langNoIndex.remove(s)
+ }
+ }
+ b.writeConst("numLanguages", len(b.lang.slice())+len(b.langNoIndex.slice()))
+ b.writeConst("numScripts", len(b.script.slice()))
+ b.writeConst("numRegions", len(b.region.slice()))
+
+ // Add dummy codes at the start of each list to represent "unspecified".
+ b.lang.add("---")
+ b.script.add("----")
+ b.region.add("---")
+
+ // common locales
+ b.locale.parse(meta.DefaultContent.Locales)
+}
+
+// TODO: region inclusion data will probably not be use used in future matchers.
+
+func (b *builder) computeRegionGroups() {
+ b.groups = make(map[int]index)
+
+ // Create group indices.
+ for i := 1; b.region.s[i][0] < 'A'; i++ { // Base M49 indices on regionID.
+ b.groups[i] = index(len(b.groups))
+ }
+ for _, g := range b.supp.TerritoryContainment.Group {
+ // Skip UN and EURO zone as they are flattening the containment
+ // relationship.
+ if g.Type == "EZ" || g.Type == "UN" {
+ continue
+ }
+ group := b.region.index(g.Type)
+ if _, ok := b.groups[group]; !ok {
+ b.groups[group] = index(len(b.groups))
+ }
+ }
+ if len(b.groups) > 32 {
+ log.Fatalf("only 32 groups supported, found %d", len(b.groups))
+ }
+ b.writeConst("nRegionGroups", len(b.groups))
+}
+
+var langConsts = []string{
+ "af", "am", "ar", "az", "bg", "bn", "ca", "cs", "da", "de", "el", "en", "es",
+ "et", "fa", "fi", "fil", "fr", "gu", "he", "hi", "hr", "hu", "hy", "id", "is",
+ "it", "ja", "ka", "kk", "km", "kn", "ko", "ky", "lo", "lt", "lv", "mk", "ml",
+ "mn", "mo", "mr", "ms", "mul", "my", "nb", "ne", "nl", "no", "pa", "pl", "pt",
+ "ro", "ru", "sh", "si", "sk", "sl", "sq", "sr", "sv", "sw", "ta", "te", "th",
+ "tl", "tn", "tr", "uk", "ur", "uz", "vi", "zh", "zu",
+
+ // constants for grandfathered tags (if not already defined)
+ "jbo", "ami", "bnn", "hak", "tlh", "lb", "nv", "pwn", "tao", "tay", "tsu",
+ "nn", "sfb", "vgt", "sgg", "cmn", "nan", "hsn",
+}
+
+// writeLanguage generates all tables needed for language canonicalization.
+func (b *builder) writeLanguage() {
+ meta := b.supp.Metadata
+
+ b.writeConst("nonCanonicalUnd", b.lang.index("und"))
+ b.writeConsts(func(s string) int { return int(b.langIndex(s)) }, langConsts...)
+ b.writeConst("langPrivateStart", b.langIndex("qaa"))
+ b.writeConst("langPrivateEnd", b.langIndex("qtz"))
+
+ // Get language codes that need to be mapped (overlong 3-letter codes,
+ // deprecated 2-letter codes, legacy and grandfathered tags.)
+ langAliasMap := stringSet{}
+ aliasTypeMap := map[string]langAliasType{}
+
+ // altLangISO3 get the alternative ISO3 names that need to be mapped.
+ altLangISO3 := stringSet{}
+ // Add dummy start to avoid the use of index 0.
+ altLangISO3.add("---")
+ altLangISO3.updateLater("---", "aa")
+
+ lang := b.lang.clone()
+ for _, a := range meta.Alias.LanguageAlias {
+ if a.Replacement == "" {
+ a.Replacement = "und"
+ }
+ // TODO: support mapping to tags
+ repl := strings.SplitN(a.Replacement, "_", 2)[0]
+ if a.Reason == "overlong" {
+ if len(a.Replacement) == 2 && len(a.Type) == 3 {
+ lang.updateLater(a.Replacement, a.Type)
+ }
+ } else if len(a.Type) <= 3 {
+ switch a.Reason {
+ case "macrolanguage":
+ aliasTypeMap[a.Type] = langMacro
+ case "deprecated":
+ // handled elsewhere
+ continue
+ case "bibliographic", "legacy":
+ if a.Type == "no" {
+ continue
+ }
+ aliasTypeMap[a.Type] = langLegacy
+ default:
+ log.Fatalf("new %s alias: %s", a.Reason, a.Type)
+ }
+ langAliasMap.add(a.Type)
+ langAliasMap.updateLater(a.Type, repl)
+ }
+ }
+ // Manually add the mapping of "nb" (Norwegian) to its macro language.
+ // This can be removed if CLDR adopts this change.
+ langAliasMap.add("nb")
+ langAliasMap.updateLater("nb", "no")
+ aliasTypeMap["nb"] = langMacro
+
+ for k, v := range b.registry {
+ // Also add deprecated values for 3-letter ISO codes, which CLDR omits.
+ if v.typ == "language" && v.deprecated != "" && v.preferred != "" {
+ langAliasMap.add(k)
+ langAliasMap.updateLater(k, v.preferred)
+ aliasTypeMap[k] = langDeprecated
+ }
+ }
+ // Fix CLDR mappings.
+ lang.updateLater("tl", "tgl")
+ lang.updateLater("sh", "hbs")
+ lang.updateLater("mo", "mol")
+ lang.updateLater("no", "nor")
+ lang.updateLater("tw", "twi")
+ lang.updateLater("nb", "nob")
+ lang.updateLater("ak", "aka")
+ lang.updateLater("bh", "bih")
+
+ // Ensure that each 2-letter code is matched with a 3-letter code.
+ for _, v := range lang.s[1:] {
+ s, ok := lang.update[v]
+ if !ok {
+ if s, ok = lang.update[langAliasMap.update[v]]; !ok {
+ continue
+ }
+ lang.update[v] = s
+ }
+ if v[0] != s[0] {
+ altLangISO3.add(s)
+ altLangISO3.updateLater(s, v)
+ }
+ }
+
+ // Complete canonialized language tags.
+ lang.freeze()
+ for i, v := range lang.s {
+ // We can avoid these manual entries by using the IANI registry directly.
+ // Seems easier to update the list manually, as changes are rare.
+ // The panic in this loop will trigger if we miss an entry.
+ add := ""
+ if s, ok := lang.update[v]; ok {
+ if s[0] == v[0] {
+ add = s[1:]
+ } else {
+ add = string([]byte{0, byte(altLangISO3.index(s))})
+ }
+ } else if len(v) == 3 {
+ add = "\x00"
+ } else {
+ log.Panicf("no data for long form of %q", v)
+ }
+ lang.s[i] += add
+ }
+ b.writeConst("lang", tag.Index(lang.join()))
+
+ b.writeConst("langNoIndexOffset", len(b.lang.s))
+
+ // space of all valid 3-letter language identifiers.
+ b.writeBitVector("langNoIndex", b.langNoIndex.slice())
+
+ altLangIndex := []uint16{}
+ for i, s := range altLangISO3.slice() {
+ altLangISO3.s[i] += string([]byte{byte(len(altLangIndex))})
+ if i > 0 {
+ idx := b.lang.index(altLangISO3.update[s])
+ altLangIndex = append(altLangIndex, uint16(idx))
+ }
+ }
+ b.writeConst("altLangISO3", tag.Index(altLangISO3.join()))
+ b.writeSlice("altLangIndex", altLangIndex)
+
+ b.writeSortedMap("langAliasMap", &langAliasMap, b.langIndex)
+ types := make([]langAliasType, len(langAliasMap.s))
+ for i, s := range langAliasMap.s {
+ types[i] = aliasTypeMap[s]
+ }
+ b.writeSlice("langAliasTypes", types)
+}
+
+var scriptConsts = []string{
+ "Latn", "Hani", "Hans", "Hant", "Qaaa", "Qaai", "Qabx", "Zinh", "Zyyy",
+ "Zzzz",
+}
+
+func (b *builder) writeScript() {
+ b.writeConsts(b.script.index, scriptConsts...)
+ b.writeConst("script", tag.Index(b.script.join()))
+
+ supp := make([]uint8, len(b.lang.slice()))
+ for i, v := range b.lang.slice()[1:] {
+ if sc := b.registry[v].suppressScript; sc != "" {
+ supp[i+1] = uint8(b.script.index(sc))
+ }
+ }
+ b.writeSlice("suppressScript", supp)
+
+ // There is only one deprecated script in CLDR. This value is hard-coded.
+ // We check here if the code must be updated.
+ for _, a := range b.supp.Metadata.Alias.ScriptAlias {
+ if a.Type != "Qaai" {
+ log.Panicf("unexpected deprecated stript %q", a.Type)
+ }
+ }
+}
+
+func parseM49(s string) int16 {
+ if len(s) == 0 {
+ return 0
+ }
+ v, err := strconv.ParseUint(s, 10, 10)
+ failOnError(err)
+ return int16(v)
+}
+
+var regionConsts = []string{
+ "001", "419", "BR", "CA", "ES", "GB", "MD", "PT", "UK", "US",
+ "ZZ", "XA", "XC", "XK", // Unofficial tag for Kosovo.
+}
+
+func (b *builder) writeRegion() {
+ b.writeConsts(b.region.index, regionConsts...)
+
+ isoOffset := b.region.index("AA")
+ m49map := make([]int16, len(b.region.slice()))
+ fromM49map := make(map[int16]int)
+ altRegionISO3 := ""
+ altRegionIDs := []uint16{}
+
+ b.writeConst("isoRegionOffset", isoOffset)
+
+ // 2-letter region lookup and mapping to numeric codes.
+ regionISO := b.region.clone()
+ regionISO.s = regionISO.s[isoOffset:]
+ regionISO.sorted = false
+
+ regionTypes := make([]byte, len(b.region.s))
+
+ // Is the region valid BCP 47?
+ for s, e := range b.registry {
+ if len(s) == 2 && s == strings.ToUpper(s) {
+ i := b.region.index(s)
+ for _, d := range e.description {
+ if strings.Contains(d, "Private use") {
+ regionTypes[i] = iso3166UserAssgined
+ }
+ }
+ regionTypes[i] |= bcp47Region
+ }
+ }
+
+ // Is the region a valid ccTLD?
+ r := gen.OpenIANAFile("domains/root/db")
+ defer r.Close()
+
+ buf, err := ioutil.ReadAll(r)
+ failOnError(err)
+ re := regexp.MustCompile(`"/domains/root/db/([a-z]{2}).html"`)
+ for _, m := range re.FindAllSubmatch(buf, -1) {
+ i := b.region.index(strings.ToUpper(string(m[1])))
+ regionTypes[i] |= ccTLD
+ }
+
+ b.writeSlice("regionTypes", regionTypes)
+
+ iso3Set := make(map[string]int)
+ update := func(iso2, iso3 string) {
+ i := regionISO.index(iso2)
+ if j, ok := iso3Set[iso3]; !ok && iso3[0] == iso2[0] {
+ regionISO.s[i] += iso3[1:]
+ iso3Set[iso3] = -1
+ } else {
+ if ok && j >= 0 {
+ regionISO.s[i] += string([]byte{0, byte(j)})
+ } else {
+ iso3Set[iso3] = len(altRegionISO3)
+ regionISO.s[i] += string([]byte{0, byte(len(altRegionISO3))})
+ altRegionISO3 += iso3
+ altRegionIDs = append(altRegionIDs, uint16(isoOffset+i))
+ }
+ }
+ }
+ for _, tc := range b.supp.CodeMappings.TerritoryCodes {
+ i := regionISO.index(tc.Type) + isoOffset
+ if d := m49map[i]; d != 0 {
+ log.Panicf("%s found as a duplicate UN.M49 code of %03d", tc.Numeric, d)
+ }
+ m49 := parseM49(tc.Numeric)
+ m49map[i] = m49
+ if r := fromM49map[m49]; r == 0 {
+ fromM49map[m49] = i
+ } else if r != i {
+ dep := b.registry[regionISO.s[r-isoOffset]].deprecated
+ if t := b.registry[tc.Type]; t != nil && dep != "" && (t.deprecated == "" || t.deprecated > dep) {
+ fromM49map[m49] = i
+ }
+ }
+ }
+ for _, ta := range b.supp.Metadata.Alias.TerritoryAlias {
+ if len(ta.Type) == 3 && ta.Type[0] <= '9' && len(ta.Replacement) == 2 {
+ from := parseM49(ta.Type)
+ if r := fromM49map[from]; r == 0 {
+ fromM49map[from] = regionISO.index(ta.Replacement) + isoOffset
+ }
+ }
+ }
+ for _, tc := range b.supp.CodeMappings.TerritoryCodes {
+ if len(tc.Alpha3) == 3 {
+ update(tc.Type, tc.Alpha3)
+ }
+ }
+ // This entries are not included in territoryCodes. Mostly 3-letter variants
+ // of deleted codes and an entry for QU.
+ for _, m := range []struct{ iso2, iso3 string }{
+ {"CT", "CTE"},
+ {"DY", "DHY"},
+ {"HV", "HVO"},
+ {"JT", "JTN"},
+ {"MI", "MID"},
+ {"NH", "NHB"},
+ {"NQ", "ATN"},
+ {"PC", "PCI"},
+ {"PU", "PUS"},
+ {"PZ", "PCZ"},
+ {"RH", "RHO"},
+ {"VD", "VDR"},
+ {"WK", "WAK"},
+ // These three-letter codes are used for others as well.
+ {"FQ", "ATF"},
+ } {
+ update(m.iso2, m.iso3)
+ }
+ for i, s := range regionISO.s {
+ if len(s) != 4 {
+ regionISO.s[i] = s + " "
+ }
+ }
+ b.writeConst("regionISO", tag.Index(regionISO.join()))
+ b.writeConst("altRegionISO3", altRegionISO3)
+ b.writeSlice("altRegionIDs", altRegionIDs)
+
+ // Create list of deprecated regions.
+ // TODO: consider inserting SF -> FI. Not included by CLDR, but is the only
+ // Transitionally-reserved mapping not included.
+ regionOldMap := stringSet{}
+ // Include regions in territoryAlias (not all are in the IANA registry!)
+ for _, reg := range b.supp.Metadata.Alias.TerritoryAlias {
+ if len(reg.Type) == 2 && reg.Reason == "deprecated" && len(reg.Replacement) == 2 {
+ regionOldMap.add(reg.Type)
+ regionOldMap.updateLater(reg.Type, reg.Replacement)
+ i, _ := regionISO.find(reg.Type)
+ j, _ := regionISO.find(reg.Replacement)
+ if k := m49map[i+isoOffset]; k == 0 {
+ m49map[i+isoOffset] = m49map[j+isoOffset]
+ }
+ }
+ }
+ b.writeSortedMap("regionOldMap", &regionOldMap, func(s string) uint16 {
+ return uint16(b.region.index(s))
+ })
+ // 3-digit region lookup, groupings.
+ for i := 1; i < isoOffset; i++ {
+ m := parseM49(b.region.s[i])
+ m49map[i] = m
+ fromM49map[m] = i
+ }
+ b.writeSlice("m49", m49map)
+
+ const (
+ searchBits = 7
+ regionBits = 9
+ )
+ if len(m49map) >= 1<<regionBits {
+ log.Fatalf("Maximum number of regions exceeded: %d > %d", len(m49map), 1<<regionBits)
+ }
+ m49Index := [9]int16{}
+ fromM49 := []uint16{}
+ m49 := []int{}
+ for k, _ := range fromM49map {
+ m49 = append(m49, int(k))
+ }
+ sort.Ints(m49)
+ for _, k := range m49[1:] {
+ val := (k & (1<<searchBits - 1)) << regionBits
+ fromM49 = append(fromM49, uint16(val|fromM49map[int16(k)]))
+ m49Index[1:][k>>searchBits] = int16(len(fromM49))
+ }
+ b.writeSlice("m49Index", m49Index)
+ b.writeSlice("fromM49", fromM49)
+}
+
+const (
+ // TODO: put these lists in regionTypes as user data? Could be used for
+ // various optimizations and refinements and could be exposed in the API.
+ iso3166Except = "AC CP DG EA EU FX IC SU TA UK"
+ iso3166Trans = "AN BU CS NT TP YU ZR" // SF is not in our set of Regions.
+ // DY and RH are actually not deleted, but indeterminately reserved.
+ iso3166DelCLDR = "CT DD DY FQ HV JT MI NH NQ PC PU PZ RH VD WK YD"
+)
+
+const (
+ iso3166UserAssgined = 1 << iota
+ ccTLD
+ bcp47Region
+)
+
+func find(list []string, s string) int {
+ for i, t := range list {
+ if t == s {
+ return i
+ }
+ }
+ return -1
+}
+
+// writeVariants generates per-variant information and creates a map from variant
+// name to index value. We assign index values such that sorting multiple
+// variants by index value will result in the correct order.
+// There are two types of variants: specialized and general. Specialized variants
+// are only applicable to certain language or language-script pairs. Generalized
+// variants apply to any language. Generalized variants always sort after
+// specialized variants. We will therefore always assign a higher index value
+// to a generalized variant than any other variant. Generalized variants are
+// sorted alphabetically among themselves.
+// Specialized variants may also sort after other specialized variants. Such
+// variants will be ordered after any of the variants they may follow.
+// We assume that if a variant x is followed by a variant y, then for any prefix
+// p of x, p-x is a prefix of y. This allows us to order tags based on the
+// maximum of the length of any of its prefixes.
+// TODO: it is possible to define a set of Prefix values on variants such that
+// a total order cannot be defined to the point that this algorithm breaks.
+// In other words, we cannot guarantee the same order of variants for the
+// future using the same algorithm or for non-compliant combinations of
+// variants. For this reason, consider using simple alphabetic sorting
+// of variants and ignore Prefix restrictions altogether.
+func (b *builder) writeVariant() {
+ generalized := stringSet{}
+ specialized := stringSet{}
+ specializedExtend := stringSet{}
+ // Collate the variants by type and check assumptions.
+ for _, v := range b.variant.slice() {
+ e := b.registry[v]
+ if len(e.prefix) == 0 {
+ generalized.add(v)
+ continue
+ }
+ c := strings.Split(e.prefix[0], "-")
+ hasScriptOrRegion := false
+ if len(c) > 1 {
+ _, hasScriptOrRegion = b.script.find(c[1])
+ if !hasScriptOrRegion {
+ _, hasScriptOrRegion = b.region.find(c[1])
+
+ }
+ }
+ if len(c) == 1 || len(c) == 2 && hasScriptOrRegion {
+ // Variant is preceded by a language.
+ specialized.add(v)
+ continue
+ }
+ // Variant is preceded by another variant.
+ specializedExtend.add(v)
+ prefix := c[0] + "-"
+ if hasScriptOrRegion {
+ prefix += c[1]
+ }
+ for _, p := range e.prefix {
+ // Verify that the prefix minus the last element is a prefix of the
+ // predecessor element.
+ i := strings.LastIndex(p, "-")
+ pred := b.registry[p[i+1:]]
+ if find(pred.prefix, p[:i]) < 0 {
+ log.Fatalf("prefix %q for variant %q not consistent with predecessor spec", p, v)
+ }
+ // The sorting used below does not work in the general case. It works
+ // if we assume that variants that may be followed by others only have
+ // prefixes of the same length. Verify this.
+ count := strings.Count(p[:i], "-")
+ for _, q := range pred.prefix {
+ if c := strings.Count(q, "-"); c != count {
+ log.Fatalf("variant %q preceding %q has a prefix %q of size %d; want %d", p[i+1:], v, q, c, count)
+ }
+ }
+ if !strings.HasPrefix(p, prefix) {
+ log.Fatalf("prefix %q of variant %q should start with %q", p, v, prefix)
+ }
+ }
+ }
+
+ // Sort extended variants.
+ a := specializedExtend.s
+ less := func(v, w string) bool {
+ // Sort by the maximum number of elements.
+ maxCount := func(s string) (max int) {
+ for _, p := range b.registry[s].prefix {
+ if c := strings.Count(p, "-"); c > max {
+ max = c
+ }
+ }
+ return
+ }
+ if cv, cw := maxCount(v), maxCount(w); cv != cw {
+ return cv < cw
+ }
+ // Sort by name as tie breaker.
+ return v < w
+ }
+ sort.Sort(funcSorter{less, sort.StringSlice(a)})
+ specializedExtend.frozen = true
+
+ // Create index from variant name to index.
+ variantIndex := make(map[string]uint8)
+ add := func(s []string) {
+ for _, v := range s {
+ variantIndex[v] = uint8(len(variantIndex))
+ }
+ }
+ add(specialized.slice())
+ add(specializedExtend.s)
+ numSpecialized := len(variantIndex)
+ add(generalized.slice())
+ if n := len(variantIndex); n > 255 {
+ log.Fatalf("maximum number of variants exceeded: was %d; want <= 255", n)
+ }
+ b.writeMap("variantIndex", variantIndex)
+ b.writeConst("variantNumSpecialized", numSpecialized)
+}
+
+func (b *builder) writeLanguageInfo() {
+}
+
+// writeLikelyData writes tables that are used both for finding parent relations and for
+// language matching. Each entry contains additional bits to indicate the status of the
+// data to know when it cannot be used for parent relations.
+func (b *builder) writeLikelyData() {
+ const (
+ isList = 1 << iota
+ scriptInFrom
+ regionInFrom
+ )
+ type ( // generated types
+ likelyScriptRegion struct {
+ region uint16
+ script uint8
+ flags uint8
+ }
+ likelyLangScript struct {
+ lang uint16
+ script uint8
+ flags uint8
+ }
+ likelyLangRegion struct {
+ lang uint16
+ region uint16
+ }
+ // likelyTag is used for getting likely tags for group regions, where
+ // the likely region might be a region contained in the group.
+ likelyTag struct {
+ lang uint16
+ region uint16
+ script uint8
+ }
+ )
+ var ( // generated variables
+ likelyRegionGroup = make([]likelyTag, len(b.groups))
+ likelyLang = make([]likelyScriptRegion, len(b.lang.s))
+ likelyRegion = make([]likelyLangScript, len(b.region.s))
+ likelyScript = make([]likelyLangRegion, len(b.script.s))
+ likelyLangList = []likelyScriptRegion{}
+ likelyRegionList = []likelyLangScript{}
+ )
+ type fromTo struct {
+ from, to []string
+ }
+ langToOther := map[int][]fromTo{}
+ regionToOther := map[int][]fromTo{}
+ for _, m := range b.supp.LikelySubtags.LikelySubtag {
+ from := strings.Split(m.From, "_")
+ to := strings.Split(m.To, "_")
+ if len(to) != 3 {
+ log.Fatalf("invalid number of subtags in %q: found %d, want 3", m.To, len(to))
+ }
+ if len(from) > 3 {
+ log.Fatalf("invalid number of subtags: found %d, want 1-3", len(from))
+ }
+ if from[0] != to[0] && from[0] != "und" {
+ log.Fatalf("unexpected language change in expansion: %s -> %s", from, to)
+ }
+ if len(from) == 3 {
+ if from[2] != to[2] {
+ log.Fatalf("unexpected region change in expansion: %s -> %s", from, to)
+ }
+ if from[0] != "und" {
+ log.Fatalf("unexpected fully specified from tag: %s -> %s", from, to)
+ }
+ }
+ if len(from) == 1 || from[0] != "und" {
+ id := 0
+ if from[0] != "und" {
+ id = b.lang.index(from[0])
+ }
+ langToOther[id] = append(langToOther[id], fromTo{from, to})
+ } else if len(from) == 2 && len(from[1]) == 4 {
+ sid := b.script.index(from[1])
+ likelyScript[sid].lang = uint16(b.langIndex(to[0]))
+ likelyScript[sid].region = uint16(b.region.index(to[2]))
+ } else {
+ r := b.region.index(from[len(from)-1])
+ if id, ok := b.groups[r]; ok {
+ if from[0] != "und" {
+ log.Fatalf("region changed unexpectedly: %s -> %s", from, to)
+ }
+ likelyRegionGroup[id].lang = uint16(b.langIndex(to[0]))
+ likelyRegionGroup[id].script = uint8(b.script.index(to[1]))
+ likelyRegionGroup[id].region = uint16(b.region.index(to[2]))
+ } else {
+ regionToOther[r] = append(regionToOther[r], fromTo{from, to})
+ }
+ }
+ }
+ b.writeType(likelyLangRegion{})
+ b.writeSlice("likelyScript", likelyScript)
+
+ for id := range b.lang.s {
+ list := langToOther[id]
+ if len(list) == 1 {
+ likelyLang[id].region = uint16(b.region.index(list[0].to[2]))
+ likelyLang[id].script = uint8(b.script.index(list[0].to[1]))
+ } else if len(list) > 1 {
+ likelyLang[id].flags = isList
+ likelyLang[id].region = uint16(len(likelyLangList))
+ likelyLang[id].script = uint8(len(list))
+ for _, x := range list {
+ flags := uint8(0)
+ if len(x.from) > 1 {
+ if x.from[1] == x.to[2] {
+ flags = regionInFrom
+ } else {
+ flags = scriptInFrom
+ }
+ }
+ likelyLangList = append(likelyLangList, likelyScriptRegion{
+ region: uint16(b.region.index(x.to[2])),
+ script: uint8(b.script.index(x.to[1])),
+ flags: flags,
+ })
+ }
+ }
+ }
+ // TODO: merge suppressScript data with this table.
+ b.writeType(likelyScriptRegion{})
+ b.writeSlice("likelyLang", likelyLang)
+ b.writeSlice("likelyLangList", likelyLangList)
+
+ for id := range b.region.s {
+ list := regionToOther[id]
+ if len(list) == 1 {
+ likelyRegion[id].lang = uint16(b.langIndex(list[0].to[0]))
+ likelyRegion[id].script = uint8(b.script.index(list[0].to[1]))
+ if len(list[0].from) > 2 {
+ likelyRegion[id].flags = scriptInFrom
+ }
+ } else if len(list) > 1 {
+ likelyRegion[id].flags = isList
+ likelyRegion[id].lang = uint16(len(likelyRegionList))
+ likelyRegion[id].script = uint8(len(list))
+ for i, x := range list {
+ if len(x.from) == 2 && i != 0 || i > 0 && len(x.from) != 3 {
+ log.Fatalf("unspecified script must be first in list: %v at %d", x.from, i)
+ }
+ x := likelyLangScript{
+ lang: uint16(b.langIndex(x.to[0])),
+ script: uint8(b.script.index(x.to[1])),
+ }
+ if len(list[0].from) > 2 {
+ x.flags = scriptInFrom
+ }
+ likelyRegionList = append(likelyRegionList, x)
+ }
+ }
+ }
+ b.writeType(likelyLangScript{})
+ b.writeSlice("likelyRegion", likelyRegion)
+ b.writeSlice("likelyRegionList", likelyRegionList)
+
+ b.writeType(likelyTag{})
+ b.writeSlice("likelyRegionGroup", likelyRegionGroup)
+}
+
+type mutualIntelligibility struct {
+ want, have uint16
+ conf uint8
+ oneway bool
+}
+
+type scriptIntelligibility struct {
+ lang uint16 // langID or 0 if *
+ want, have uint8
+ conf uint8
+}
+
+type sortByConf []mutualIntelligibility
+
+func (l sortByConf) Less(a, b int) bool {
+ return l[a].conf > l[b].conf
+}
+
+func (l sortByConf) Swap(a, b int) {
+ l[a], l[b] = l[b], l[a]
+}
+
+func (l sortByConf) Len() int {
+ return len(l)
+}
+
+// toConf converts a percentage value [0, 100] to a confidence class.
+func toConf(pct uint8) uint8 {
+ switch {
+ case pct == 100:
+ return 3 // Exact
+ case pct >= 90:
+ return 2 // High
+ case pct > 50:
+ return 1 // Low
+ default:
+ return 0 // No
+ }
+}
+
+// writeMatchData writes tables with languages and scripts for which there is
+// mutual intelligibility. The data is based on CLDR's languageMatching data.
+// Note that we use a different algorithm than the one defined by CLDR and that
+// we slightly modify the data. For example, we convert scores to confidence levels.
+// We also drop all region-related data as we use a different algorithm to
+// determine region equivalence.
+func (b *builder) writeMatchData() {
+ b.writeType(mutualIntelligibility{})
+ b.writeType(scriptIntelligibility{})
+ lm := b.supp.LanguageMatching.LanguageMatches
+ cldr.MakeSlice(&lm).SelectAnyOf("type", "written")
+
+ matchLang := []mutualIntelligibility{}
+ matchScript := []scriptIntelligibility{}
+ // Convert the languageMatch entries in lists keyed by desired language.
+ for _, m := range lm[0].LanguageMatch {
+ // Different versions of CLDR use different separators.
+ desired := strings.Replace(m.Desired, "-", "_", -1)
+ supported := strings.Replace(m.Supported, "-", "_", -1)
+ d := strings.Split(desired, "_")
+ s := strings.Split(supported, "_")
+ if len(d) != len(s) || len(d) > 2 {
+ // Skip all entries with regions and work around CLDR bug.
+ continue
+ }
+ pct, _ := strconv.ParseInt(m.Percent, 10, 8)
+ if len(d) == 2 && d[0] == s[0] && len(d[1]) == 4 {
+ // language-script pair.
+ lang := uint16(0)
+ if d[0] != "*" {
+ lang = uint16(b.langIndex(d[0]))
+ }
+ matchScript = append(matchScript, scriptIntelligibility{
+ lang: lang,
+ want: uint8(b.script.index(d[1])),
+ have: uint8(b.script.index(s[1])),
+ conf: toConf(uint8(pct)),
+ })
+ if m.Oneway != "true" {
+ matchScript = append(matchScript, scriptIntelligibility{
+ lang: lang,
+ want: uint8(b.script.index(s[1])),
+ have: uint8(b.script.index(d[1])),
+ conf: toConf(uint8(pct)),
+ })
+ }
+ } else if len(d) == 1 && d[0] != "*" {
+ if pct == 100 {
+ // nb == no is already handled by macro mapping. Check there
+ // really is only this case.
+ if d[0] != "no" || s[0] != "nb" {
+ log.Fatalf("unhandled equivalence %s == %s", s[0], d[0])
+ }
+ continue
+ }
+ matchLang = append(matchLang, mutualIntelligibility{
+ want: uint16(b.langIndex(d[0])),
+ have: uint16(b.langIndex(s[0])),
+ conf: uint8(pct),
+ oneway: m.Oneway == "true",
+ })
+ } else {
+ // TODO: Handle other mappings.
+ a := []string{"*;*", "*_*;*_*", "es_MX;es_419"}
+ s := strings.Join([]string{desired, supported}, ";")
+ if i := sort.SearchStrings(a, s); i == len(a) || a[i] != s {
+ log.Printf("%q not handled", s)
+ }
+ }
+ }
+ sort.Stable(sortByConf(matchLang))
+ // collapse percentage into confidence classes
+ for i, m := range matchLang {
+ matchLang[i].conf = toConf(m.conf)
+ }
+ b.writeSlice("matchLang", matchLang)
+ b.writeSlice("matchScript", matchScript)
+}
+
+func (b *builder) writeRegionInclusionData() {
+ var (
+ // mm holds for each group the set of groups with a distance of 1.
+ mm = make(map[int][]index)
+
+ // containment holds for each group the transitive closure of
+ // containment of other groups.
+ containment = make(map[index][]index)
+ )
+ for _, g := range b.supp.TerritoryContainment.Group {
+ // Skip UN and EURO zone as they are flattening the containment
+ // relationship.
+ if g.Type == "EZ" || g.Type == "UN" {
+ continue
+ }
+ group := b.region.index(g.Type)
+ groupIdx := b.groups[group]
+ for _, mem := range strings.Split(g.Contains, " ") {
+ r := b.region.index(mem)
+ mm[r] = append(mm[r], groupIdx)
+ if g, ok := b.groups[r]; ok {
+ mm[group] = append(mm[group], g)
+ containment[groupIdx] = append(containment[groupIdx], g)
+ }
+ }
+ }
+
+ regionContainment := make([]uint32, len(b.groups))
+ for _, g := range b.groups {
+ l := containment[g]
+
+ // Compute the transitive closure of containment.
+ for i := 0; i < len(l); i++ {
+ l = append(l, containment[l[i]]...)
+ }
+
+ // Compute the bitmask.
+ regionContainment[g] = 1 << g
+ for _, v := range l {
+ regionContainment[g] |= 1 << v
+ }
+ // log.Printf("%d: %X", g, regionContainment[g])
+ }
+ b.writeSlice("regionContainment", regionContainment)
+
+ regionInclusion := make([]uint8, len(b.region.s))
+ bvs := make(map[uint32]index)
+ // Make the first bitvector positions correspond with the groups.
+ for r, i := range b.groups {
+ bv := uint32(1 << i)
+ for _, g := range mm[r] {
+ bv |= 1 << g
+ }
+ bvs[bv] = i
+ regionInclusion[r] = uint8(bvs[bv])
+ }
+ for r := 1; r < len(b.region.s); r++ {
+ if _, ok := b.groups[r]; !ok {
+ bv := uint32(0)
+ for _, g := range mm[r] {
+ bv |= 1 << g
+ }
+ if bv == 0 {
+ // Pick the world for unspecified regions.
+ bv = 1 << b.groups[b.region.index("001")]
+ }
+ if _, ok := bvs[bv]; !ok {
+ bvs[bv] = index(len(bvs))
+ }
+ regionInclusion[r] = uint8(bvs[bv])
+ }
+ }
+ b.writeSlice("regionInclusion", regionInclusion)
+ regionInclusionBits := make([]uint32, len(bvs))
+ for k, v := range bvs {
+ regionInclusionBits[v] = uint32(k)
+ }
+ // Add bit vectors for increasingly large distances until a fixed point is reached.
+ regionInclusionNext := []uint8{}
+ for i := 0; i < len(regionInclusionBits); i++ {
+ bits := regionInclusionBits[i]
+ next := bits
+ for i := uint(0); i < uint(len(b.groups)); i++ {
+ if bits&(1<<i) != 0 {
+ next |= regionInclusionBits[i]
+ }
+ }
+ if _, ok := bvs[next]; !ok {
+ bvs[next] = index(len(bvs))
+ regionInclusionBits = append(regionInclusionBits, next)
+ }
+ regionInclusionNext = append(regionInclusionNext, uint8(bvs[next]))
+ }
+ b.writeSlice("regionInclusionBits", regionInclusionBits)
+ b.writeSlice("regionInclusionNext", regionInclusionNext)
+}
+
+type parentRel struct {
+ lang uint16
+ script uint8
+ maxScript uint8
+ toRegion uint16
+ fromRegion []uint16
+}
+
+func (b *builder) writeParents() {
+ b.writeType(parentRel{})
+
+ parents := []parentRel{}
+
+ // Construct parent overrides.
+ n := 0
+ for _, p := range b.data.Supplemental().ParentLocales.ParentLocale {
+ // Skipping non-standard scripts to root is implemented using addTags.
+ if p.Parent == "root" {
+ continue
+ }
+
+ sub := strings.Split(p.Parent, "_")
+ parent := parentRel{lang: b.langIndex(sub[0])}
+ if len(sub) == 2 {
+ // TODO: check that all undefined scripts are indeed Latn in these
+ // cases.
+ parent.maxScript = uint8(b.script.index("Latn"))
+ parent.toRegion = uint16(b.region.index(sub[1]))
+ } else {
+ parent.script = uint8(b.script.index(sub[1]))
+ parent.maxScript = parent.script
+ parent.toRegion = uint16(b.region.index(sub[2]))
+ }
+ for _, c := range strings.Split(p.Locales, " ") {
+ region := b.region.index(c[strings.LastIndex(c, "_")+1:])
+ parent.fromRegion = append(parent.fromRegion, uint16(region))
+ }
+ parents = append(parents, parent)
+ n += len(parent.fromRegion)
+ }
+ b.writeSliceAddSize("parents", n*2, parents)
+}
+
+func main() {
+ gen.Init()
+
+ gen.Repackage("gen_common.go", "common.go", "language")
+
+ w := gen.NewCodeWriter()
+ defer w.WriteGoFile("tables.go", "language")
+
+ fmt.Fprintln(w, `import "golang.org/x/text/internal/tag"`)
+
+ b := newBuilder(w)
+ gen.WriteCLDRVersion(w)
+
+ b.parseIndices()
+ b.writeType(fromTo{})
+ b.writeLanguage()
+ b.writeScript()
+ b.writeRegion()
+ b.writeVariant()
+ // TODO: b.writeLocale()
+ b.computeRegionGroups()
+ b.writeLikelyData()
+ b.writeMatchData()
+ b.writeRegionInclusionData()
+ b.writeParents()
+}
diff --git a/vendor/golang.org/x/text/language/match.go b/vendor/golang.org/x/text/language/match.go
new file mode 100644
index 000000000..8ad950533
--- /dev/null
+++ b/vendor/golang.org/x/text/language/match.go
@@ -0,0 +1,841 @@
+// 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 language
+
+import "errors"
+
+// Matcher is the interface that wraps the Match method.
+//
+// Match returns the best match for any of the given tags, along with
+// a unique index associated with the returned tag and a confidence
+// score.
+type Matcher interface {
+ Match(t ...Tag) (tag Tag, index int, c Confidence)
+}
+
+// Comprehends reports the confidence score for a speaker of a given language
+// to being able to comprehend the written form of an alternative language.
+func Comprehends(speaker, alternative Tag) Confidence {
+ _, _, c := NewMatcher([]Tag{alternative}).Match(speaker)
+ return c
+}
+
+// NewMatcher returns a Matcher that matches an ordered list of preferred tags
+// against a list of supported tags based on written intelligibility, closeness
+// of dialect, equivalence of subtags and various other rules. It is initialized
+// with the list of supported tags. The first element is used as the default
+// value in case no match is found.
+//
+// Its Match method matches the first of the given Tags to reach a certain
+// confidence threshold. The tags passed to Match should therefore be specified
+// in order of preference. Extensions are ignored for matching.
+//
+// The index returned by the Match method corresponds to the index of the
+// matched tag in t, but is augmented with the Unicode extension ('u')of the
+// corresponding preferred tag. This allows user locale options to be passed
+// transparently.
+func NewMatcher(t []Tag) Matcher {
+ return newMatcher(t)
+}
+
+func (m *matcher) Match(want ...Tag) (t Tag, index int, c Confidence) {
+ match, w, c := m.getBest(want...)
+ if match == nil {
+ t = m.default_.tag
+ } else {
+ t, index = match.tag, match.index
+ }
+ // Copy options from the user-provided tag into the result tag. This is hard
+ // to do after the fact, so we do it here.
+ // TODO: consider also adding in variants that are compatible with the
+ // matched language.
+ // TODO: Add back region if it is non-ambiguous? Or create another tag to
+ // preserve the region?
+ if u, ok := w.Extension('u'); ok {
+ t, _ = Raw.Compose(t, u)
+ }
+ return t, index, c
+}
+
+type scriptRegionFlags uint8
+
+const (
+ isList = 1 << iota
+ scriptInFrom
+ regionInFrom
+)
+
+func (t *Tag) setUndefinedLang(id langID) {
+ if t.lang == 0 {
+ t.lang = id
+ }
+}
+
+func (t *Tag) setUndefinedScript(id scriptID) {
+ if t.script == 0 {
+ t.script = id
+ }
+}
+
+func (t *Tag) setUndefinedRegion(id regionID) {
+ if t.region == 0 || t.region.contains(id) {
+ t.region = id
+ }
+}
+
+// ErrMissingLikelyTagsData indicates no information was available
+// to compute likely values of missing tags.
+var ErrMissingLikelyTagsData = errors.New("missing likely tags data")
+
+// addLikelySubtags sets subtags to their most likely value, given the locale.
+// In most cases this means setting fields for unknown values, but in some
+// cases it may alter a value. It returns a ErrMissingLikelyTagsData error
+// if the given locale cannot be expanded.
+func (t Tag) addLikelySubtags() (Tag, error) {
+ id, err := addTags(t)
+ if err != nil {
+ return t, err
+ } else if id.equalTags(t) {
+ return t, nil
+ }
+ id.remakeString()
+ return id, nil
+}
+
+// specializeRegion attempts to specialize a group region.
+func specializeRegion(t *Tag) bool {
+ if i := regionInclusion[t.region]; i < nRegionGroups {
+ x := likelyRegionGroup[i]
+ if langID(x.lang) == t.lang && scriptID(x.script) == t.script {
+ t.region = regionID(x.region)
+ }
+ return true
+ }
+ return false
+}
+
+func addTags(t Tag) (Tag, error) {
+ // We leave private use identifiers alone.
+ if t.private() {
+ return t, nil
+ }
+ if t.script != 0 && t.region != 0 {
+ if t.lang != 0 {
+ // already fully specified
+ specializeRegion(&t)
+ return t, nil
+ }
+ // Search matches for und-script-region. Note that for these cases
+ // region will never be a group so there is no need to check for this.
+ list := likelyRegion[t.region : t.region+1]
+ if x := list[0]; x.flags&isList != 0 {
+ list = likelyRegionList[x.lang : x.lang+uint16(x.script)]
+ }
+ for _, x := range list {
+ // Deviating from the spec. See match_test.go for details.
+ if scriptID(x.script) == t.script {
+ t.setUndefinedLang(langID(x.lang))
+ return t, nil
+ }
+ }
+ }
+ if t.lang != 0 {
+ // Search matches for lang-script and lang-region, where lang != und.
+ if t.lang < langNoIndexOffset {
+ x := likelyLang[t.lang]
+ if x.flags&isList != 0 {
+ list := likelyLangList[x.region : x.region+uint16(x.script)]
+ if t.script != 0 {
+ for _, x := range list {
+ if scriptID(x.script) == t.script && x.flags&scriptInFrom != 0 {
+ t.setUndefinedRegion(regionID(x.region))
+ return t, nil
+ }
+ }
+ } else if t.region != 0 {
+ count := 0
+ goodScript := true
+ tt := t
+ for _, x := range list {
+ // We visit all entries for which the script was not
+ // defined, including the ones where the region was not
+ // defined. This allows for proper disambiguation within
+ // regions.
+ if x.flags&scriptInFrom == 0 && t.region.contains(regionID(x.region)) {
+ tt.region = regionID(x.region)
+ tt.setUndefinedScript(scriptID(x.script))
+ goodScript = goodScript && tt.script == scriptID(x.script)
+ count++
+ }
+ }
+ if count == 1 {
+ return tt, nil
+ }
+ // Even if we fail to find a unique Region, we might have
+ // an unambiguous script.
+ if goodScript {
+ t.script = tt.script
+ }
+ }
+ }
+ }
+ } else {
+ // Search matches for und-script.
+ if t.script != 0 {
+ x := likelyScript[t.script]
+ if x.region != 0 {
+ t.setUndefinedRegion(regionID(x.region))
+ t.setUndefinedLang(langID(x.lang))
+ return t, nil
+ }
+ }
+ // Search matches for und-region. If und-script-region exists, it would
+ // have been found earlier.
+ if t.region != 0 {
+ if i := regionInclusion[t.region]; i < nRegionGroups {
+ x := likelyRegionGroup[i]
+ if x.region != 0 {
+ t.setUndefinedLang(langID(x.lang))
+ t.setUndefinedScript(scriptID(x.script))
+ t.region = regionID(x.region)
+ }
+ } else {
+ x := likelyRegion[t.region]
+ if x.flags&isList != 0 {
+ x = likelyRegionList[x.lang]
+ }
+ if x.script != 0 && x.flags != scriptInFrom {
+ t.setUndefinedLang(langID(x.lang))
+ t.setUndefinedScript(scriptID(x.script))
+ return t, nil
+ }
+ }
+ }
+ }
+
+ // Search matches for lang.
+ if t.lang < langNoIndexOffset {
+ x := likelyLang[t.lang]
+ if x.flags&isList != 0 {
+ x = likelyLangList[x.region]
+ }
+ if x.region != 0 {
+ t.setUndefinedScript(scriptID(x.script))
+ t.setUndefinedRegion(regionID(x.region))
+ }
+ specializeRegion(&t)
+ if t.lang == 0 {
+ t.lang = _en // default language
+ }
+ return t, nil
+ }
+ return t, ErrMissingLikelyTagsData
+}
+
+func (t *Tag) setTagsFrom(id Tag) {
+ t.lang = id.lang
+ t.script = id.script
+ t.region = id.region
+}
+
+// minimize removes the region or script subtags from t such that
+// t.addLikelySubtags() == t.minimize().addLikelySubtags().
+func (t Tag) minimize() (Tag, error) {
+ t, err := minimizeTags(t)
+ if err != nil {
+ return t, err
+ }
+ t.remakeString()
+ return t, nil
+}
+
+// minimizeTags mimics the behavior of the ICU 51 C implementation.
+func minimizeTags(t Tag) (Tag, error) {
+ if t.equalTags(und) {
+ return t, nil
+ }
+ max, err := addTags(t)
+ if err != nil {
+ return t, err
+ }
+ for _, id := range [...]Tag{
+ {lang: t.lang},
+ {lang: t.lang, region: t.region},
+ {lang: t.lang, script: t.script},
+ } {
+ if x, err := addTags(id); err == nil && max.equalTags(x) {
+ t.setTagsFrom(id)
+ break
+ }
+ }
+ return t, nil
+}
+
+// Tag Matching
+// CLDR defines an algorithm for finding the best match between two sets of language
+// tags. The basic algorithm defines how to score a possible match and then find
+// the match with the best score
+// (see http://www.unicode.org/reports/tr35/#LanguageMatching).
+// Using scoring has several disadvantages. The scoring obfuscates the importance of
+// the various factors considered, making the algorithm harder to understand. Using
+// scoring also requires the full score to be computed for each pair of tags.
+//
+// We will use a different algorithm which aims to have the following properties:
+// - clarity on the precedence of the various selection factors, and
+// - improved performance by allowing early termination of a comparison.
+//
+// Matching algorithm (overview)
+// Input:
+// - supported: a set of supported tags
+// - default: the default tag to return in case there is no match
+// - desired: list of desired tags, ordered by preference, starting with
+// the most-preferred.
+//
+// Algorithm:
+// 1) Set the best match to the lowest confidence level
+// 2) For each tag in "desired":
+// a) For each tag in "supported":
+// 1) compute the match between the two tags.
+// 2) if the match is better than the previous best match, replace it
+// with the new match. (see next section)
+// b) if the current best match is above a certain threshold, return this
+// match without proceeding to the next tag in "desired". [See Note 1]
+// 3) If the best match so far is below a certain threshold, return "default".
+//
+// Ranking:
+// We use two phases to determine whether one pair of tags are a better match
+// than another pair of tags. First, we determine a rough confidence level. If the
+// levels are different, the one with the highest confidence wins.
+// Second, if the rough confidence levels are identical, we use a set of tie-breaker
+// rules.
+//
+// The confidence level of matching a pair of tags is determined by finding the
+// lowest confidence level of any matches of the corresponding subtags (the
+// result is deemed as good as its weakest link).
+// We define the following levels:
+// Exact - An exact match of a subtag, before adding likely subtags.
+// MaxExact - An exact match of a subtag, after adding likely subtags.
+// [See Note 2].
+// High - High level of mutual intelligibility between different subtag
+// variants.
+// Low - Low level of mutual intelligibility between different subtag
+// variants.
+// No - No mutual intelligibility.
+//
+// The following levels can occur for each type of subtag:
+// Base: Exact, MaxExact, High, Low, No
+// Script: Exact, MaxExact [see Note 3], Low, No
+// Region: Exact, MaxExact, High
+// Variant: Exact, High
+// Private: Exact, No
+//
+// Any result with a confidence level of Low or higher is deemed a possible match.
+// Once a desired tag matches any of the supported tags with a level of MaxExact
+// or higher, the next desired tag is not considered (see Step 2.b).
+// Note that CLDR provides languageMatching data that defines close equivalence
+// classes for base languages, scripts and regions.
+//
+// Tie-breaking
+// If we get the same confidence level for two matches, we apply a sequence of
+// tie-breaking rules. The first that succeeds defines the result. The rules are
+// applied in the following order.
+// 1) Original language was defined and was identical.
+// 2) Original region was defined and was identical.
+// 3) Distance between two maximized regions was the smallest.
+// 4) Original script was defined and was identical.
+// 5) Distance from want tag to have tag using the parent relation [see Note 5.]
+// If there is still no winner after these rules are applied, the first match
+// found wins.
+//
+// Notes:
+// [1] Note that even if we may not have a perfect match, if a match is above a
+// certain threshold, it is considered a better match than any other match
+// to a tag later in the list of preferred language tags.
+// [2] In practice, as matching of Exact is done in a separate phase from
+// matching the other levels, we reuse the Exact level to mean MaxExact in
+// the second phase. As a consequence, we only need the levels defined by
+// the Confidence type. The MaxExact confidence level is mapped to High in
+// the public API.
+// [3] We do not differentiate between maximized script values that were derived
+// from suppressScript versus most likely tag data. We determined that in
+// ranking the two, one ranks just after the other. Moreover, the two cannot
+// occur concurrently. As a consequence, they are identical for practical
+// purposes.
+// [4] In case of deprecated, macro-equivalents and legacy mappings, we assign
+// the MaxExact level to allow iw vs he to still be a closer match than
+// en-AU vs en-US, for example.
+// [5] In CLDR a locale inherits fields that are unspecified for this locale
+// from its parent. Therefore, if a locale is a parent of another locale,
+// it is a strong measure for closeness, especially when no other tie
+// breaker rule applies. One could also argue it is inconsistent, for
+// example, when pt-AO matches pt (which CLDR equates with pt-BR), even
+// though its parent is pt-PT according to the inheritance rules.
+//
+// Implementation Details:
+// There are several performance considerations worth pointing out. Most notably,
+// we preprocess as much as possible (within reason) at the time of creation of a
+// matcher. This includes:
+// - creating a per-language map, which includes data for the raw base language
+// and its canonicalized variant (if applicable),
+// - expanding entries for the equivalence classes defined in CLDR's
+// languageMatch data.
+// The per-language map ensures that typically only a very small number of tags
+// need to be considered. The pre-expansion of canonicalized subtags and
+// equivalence classes reduces the amount of map lookups that need to be done at
+// runtime.
+
+// matcher keeps a set of supported language tags, indexed by language.
+type matcher struct {
+ default_ *haveTag
+ index map[langID]*matchHeader
+ passSettings bool
+}
+
+// matchHeader has the lists of tags for exact matches and matches based on
+// maximized and canonicalized tags for a given language.
+type matchHeader struct {
+ exact []*haveTag
+ max []*haveTag
+}
+
+// haveTag holds a supported Tag and its maximized script and region. The maximized
+// or canonicalized language is not stored as it is not needed during matching.
+type haveTag struct {
+ tag Tag
+
+ // index of this tag in the original list of supported tags.
+ index int
+
+ // conf is the maximum confidence that can result from matching this haveTag.
+ // When conf < Exact this means it was inserted after applying a CLDR equivalence rule.
+ conf Confidence
+
+ // Maximized region and script.
+ maxRegion regionID
+ maxScript scriptID
+
+ // altScript may be checked as an alternative match to maxScript. If altScript
+ // matches, the confidence level for this match is Low. Theoretically there
+ // could be multiple alternative scripts. This does not occur in practice.
+ altScript scriptID
+
+ // nextMax is the index of the next haveTag with the same maximized tags.
+ nextMax uint16
+}
+
+func makeHaveTag(tag Tag, index int) (haveTag, langID) {
+ max := tag
+ if tag.lang != 0 {
+ max, _ = max.canonicalize(All)
+ max, _ = addTags(max)
+ max.remakeString()
+ }
+ return haveTag{tag, index, Exact, max.region, max.script, altScript(max.lang, max.script), 0}, max.lang
+}
+
+// altScript returns an alternative script that may match the given script with
+// a low confidence. At the moment, the langMatch data allows for at most one
+// script to map to another and we rely on this to keep the code simple.
+func altScript(l langID, s scriptID) scriptID {
+ for _, alt := range matchScript {
+ if (alt.lang == 0 || langID(alt.lang) == l) && scriptID(alt.have) == s {
+ return scriptID(alt.want)
+ }
+ }
+ return 0
+}
+
+// addIfNew adds a haveTag to the list of tags only if it is a unique tag.
+// Tags that have the same maximized values are linked by index.
+func (h *matchHeader) addIfNew(n haveTag, exact bool) {
+ // Don't add new exact matches.
+ for _, v := range h.exact {
+ if v.tag.equalsRest(n.tag) {
+ return
+ }
+ }
+ if exact {
+ h.exact = append(h.exact, &n)
+ }
+ // Allow duplicate maximized tags, but create a linked list to allow quickly
+ // comparing the equivalents and bail out.
+ for i, v := range h.max {
+ if v.maxScript == n.maxScript &&
+ v.maxRegion == n.maxRegion &&
+ v.tag.variantOrPrivateTagStr() == n.tag.variantOrPrivateTagStr() {
+ for h.max[i].nextMax != 0 {
+ i = int(h.max[i].nextMax)
+ }
+ h.max[i].nextMax = uint16(len(h.max))
+ break
+ }
+ }
+ h.max = append(h.max, &n)
+}
+
+// header returns the matchHeader for the given language. It creates one if
+// it doesn't already exist.
+func (m *matcher) header(l langID) *matchHeader {
+ if h := m.index[l]; h != nil {
+ return h
+ }
+ h := &matchHeader{}
+ m.index[l] = h
+ return h
+}
+
+// newMatcher builds an index for the given supported tags and returns it as
+// a matcher. It also expands the index by considering various equivalence classes
+// for a given tag.
+func newMatcher(supported []Tag) *matcher {
+ m := &matcher{
+ index: make(map[langID]*matchHeader),
+ }
+ if len(supported) == 0 {
+ m.default_ = &haveTag{}
+ return m
+ }
+ // Add supported languages to the index. Add exact matches first to give
+ // them precedence.
+ for i, tag := range supported {
+ pair, _ := makeHaveTag(tag, i)
+ m.header(tag.lang).addIfNew(pair, true)
+ }
+ m.default_ = m.header(supported[0].lang).exact[0]
+ for i, tag := range supported {
+ pair, max := makeHaveTag(tag, i)
+ if max != tag.lang {
+ m.header(max).addIfNew(pair, false)
+ }
+ }
+
+ // update is used to add indexes in the map for equivalent languages.
+ // If force is true, the update will also apply to derived entries. To
+ // avoid applying a "transitive closure", use false.
+ update := func(want, have uint16, conf Confidence, force bool) {
+ if hh := m.index[langID(have)]; hh != nil {
+ if !force && len(hh.exact) == 0 {
+ return
+ }
+ hw := m.header(langID(want))
+ for _, ht := range hh.max {
+ v := *ht
+ if conf < v.conf {
+ v.conf = conf
+ }
+ v.nextMax = 0 // this value needs to be recomputed
+ if v.altScript != 0 {
+ v.altScript = altScript(langID(want), v.maxScript)
+ }
+ hw.addIfNew(v, conf == Exact && len(hh.exact) > 0)
+ }
+ }
+ }
+
+ // Add entries for languages with mutual intelligibility as defined by CLDR's
+ // languageMatch data.
+ for _, ml := range matchLang {
+ update(ml.want, ml.have, Confidence(ml.conf), false)
+ if !ml.oneway {
+ update(ml.have, ml.want, Confidence(ml.conf), false)
+ }
+ }
+
+ // Add entries for possible canonicalizations. This is an optimization to
+ // ensure that only one map lookup needs to be done at runtime per desired tag.
+ // First we match deprecated equivalents. If they are perfect equivalents
+ // (their canonicalization simply substitutes a different language code, but
+ // nothing else), the match confidence is Exact, otherwise it is High.
+ for i, lm := range langAliasMap {
+ if lm.from == _sh {
+ continue
+ }
+
+ // If deprecated codes match and there is no fiddling with the script or
+ // or region, we consider it an exact match.
+ conf := Exact
+ if langAliasTypes[i] != langMacro {
+ if !isExactEquivalent(langID(lm.from)) {
+ conf = High
+ }
+ update(lm.to, lm.from, conf, true)
+ }
+ update(lm.from, lm.to, conf, true)
+ }
+ return m
+}
+
+// getBest gets the best matching tag in m for any of the given tags, taking into
+// account the order of preference of the given tags.
+func (m *matcher) getBest(want ...Tag) (got *haveTag, orig Tag, c Confidence) {
+ best := bestMatch{}
+ for _, w := range want {
+ var max Tag
+ // Check for exact match first.
+ h := m.index[w.lang]
+ if w.lang != 0 {
+ // Base language is defined.
+ if h == nil {
+ continue
+ }
+ for i := range h.exact {
+ have := h.exact[i]
+ if have.tag.equalsRest(w) {
+ return have, w, Exact
+ }
+ }
+ max, _ = w.canonicalize(Legacy | Deprecated)
+ max, _ = addTags(max)
+ } else {
+ // Base language is not defined.
+ if h != nil {
+ for i := range h.exact {
+ have := h.exact[i]
+ if have.tag.equalsRest(w) {
+ return have, w, Exact
+ }
+ }
+ }
+ if w.script == 0 && w.region == 0 {
+ // We skip all tags matching und for approximate matching, including
+ // private tags.
+ continue
+ }
+ max, _ = addTags(w)
+ if h = m.index[max.lang]; h == nil {
+ continue
+ }
+ }
+ // Check for match based on maximized tag.
+ for i := range h.max {
+ have := h.max[i]
+ best.update(have, w, max.script, max.region)
+ if best.conf == Exact {
+ for have.nextMax != 0 {
+ have = h.max[have.nextMax]
+ best.update(have, w, max.script, max.region)
+ }
+ return best.have, best.want, High
+ }
+ }
+ }
+ if best.conf <= No {
+ if len(want) != 0 {
+ return nil, want[0], No
+ }
+ return nil, Tag{}, No
+ }
+ return best.have, best.want, best.conf
+}
+
+// bestMatch accumulates the best match so far.
+type bestMatch struct {
+ have *haveTag
+ want Tag
+ conf Confidence
+ // Cached results from applying tie-breaking rules.
+ origLang bool
+ origReg bool
+ regDist uint8
+ origScript bool
+ parentDist uint8 // 255 if have is not an ancestor of want tag.
+}
+
+// update updates the existing best match if the new pair is considered to be a
+// better match.
+// To determine if the given pair is a better match, it first computes the rough
+// confidence level. If this surpasses the current match, it will replace it and
+// update the tie-breaker rule cache. If there is a tie, it proceeds with applying
+// a series of tie-breaker rules. If there is no conclusive winner after applying
+// the tie-breaker rules, it leaves the current match as the preferred match.
+func (m *bestMatch) update(have *haveTag, tag Tag, maxScript scriptID, maxRegion regionID) {
+ // Bail if the maximum attainable confidence is below that of the current best match.
+ c := have.conf
+ if c < m.conf {
+ return
+ }
+ if have.maxScript != maxScript {
+ // There is usually very little comprehension between different scripts.
+ // In a few cases there may still be Low comprehension. This possibility is
+ // pre-computed and stored in have.altScript.
+ if Low < m.conf || have.altScript != maxScript {
+ return
+ }
+ c = Low
+ } else if have.maxRegion != maxRegion {
+ // There is usually a small difference between languages across regions.
+ // We use the region distance (below) to disambiguate between equal matches.
+ if High < c {
+ c = High
+ }
+ }
+
+ // We store the results of the computations of the tie-breaker rules along
+ // with the best match. There is no need to do the checks once we determine
+ // we have a winner, but we do still need to do the tie-breaker computations.
+ // We use "beaten" to keep track if we still need to do the checks.
+ beaten := false // true if the new pair defeats the current one.
+ if c != m.conf {
+ if c < m.conf {
+ return
+ }
+ beaten = true
+ }
+
+ // Tie-breaker rules:
+ // We prefer if the pre-maximized language was specified and identical.
+ origLang := have.tag.lang == tag.lang && tag.lang != 0
+ if !beaten && m.origLang != origLang {
+ if m.origLang {
+ return
+ }
+ beaten = true
+ }
+
+ // We prefer if the pre-maximized region was specified and identical.
+ origReg := have.tag.region == tag.region && tag.region != 0
+ if !beaten && m.origReg != origReg {
+ if m.origReg {
+ return
+ }
+ beaten = true
+ }
+
+ // Next we prefer smaller distances between regions, as defined by regionDist.
+ regDist := regionDist(have.maxRegion, maxRegion, tag.lang)
+ if !beaten && m.regDist != regDist {
+ if regDist > m.regDist {
+ return
+ }
+ beaten = true
+ }
+
+ // Next we prefer if the pre-maximized script was specified and identical.
+ origScript := have.tag.script == tag.script && tag.script != 0
+ if !beaten && m.origScript != origScript {
+ if m.origScript {
+ return
+ }
+ beaten = true
+ }
+
+ // Finally we prefer tags which have a closer parent relationship.
+ parentDist := parentDistance(have.tag.region, tag)
+ if !beaten && m.parentDist != parentDist {
+ if parentDist > m.parentDist {
+ return
+ }
+ beaten = true
+ }
+
+ // Update m to the newly found best match.
+ if beaten {
+ m.have = have
+ m.want = tag
+ m.conf = c
+ m.origLang = origLang
+ m.origReg = origReg
+ m.origScript = origScript
+ m.regDist = regDist
+ m.parentDist = parentDist
+ }
+}
+
+// parentDistance returns the number of times Parent must be called before the
+// regions match. It is assumed that it has already been checked that lang and
+// script are identical. If haveRegion does not occur in the ancestor chain of
+// tag, it returns 255.
+func parentDistance(haveRegion regionID, tag Tag) uint8 {
+ p := tag.Parent()
+ d := uint8(1)
+ for haveRegion != p.region {
+ if p.region == 0 {
+ return 255
+ }
+ p = p.Parent()
+ d++
+ }
+ return d
+}
+
+// regionDist wraps regionDistance with some exceptions to the algorithmic distance.
+func regionDist(a, b regionID, lang langID) uint8 {
+ if lang == _en {
+ // Two variants of non-US English are close to each other, regardless of distance.
+ if a != _US && b != _US {
+ return 2
+ }
+ }
+ return uint8(regionDistance(a, b))
+}
+
+// regionDistance computes the distance between two regions based on the
+// distance in the graph of region containments as defined in CLDR. It iterates
+// over increasingly inclusive sets of groups, represented as bit vectors, until
+// the source bit vector has bits in common with the destination vector.
+func regionDistance(a, b regionID) int {
+ if a == b {
+ return 0
+ }
+ p, q := regionInclusion[a], regionInclusion[b]
+ if p < nRegionGroups {
+ p, q = q, p
+ }
+ set := regionInclusionBits
+ if q < nRegionGroups && set[p]&(1<<q) != 0 {
+ return 1
+ }
+ d := 2
+ for goal := set[q]; set[p]&goal == 0; p = regionInclusionNext[p] {
+ d++
+ }
+ return d
+}
+
+func (t Tag) variants() string {
+ if t.pVariant == 0 {
+ return ""
+ }
+ return t.str[t.pVariant:t.pExt]
+}
+
+// variantOrPrivateTagStr returns variants or private use tags.
+func (t Tag) variantOrPrivateTagStr() string {
+ if t.pExt > 0 {
+ return t.str[t.pVariant:t.pExt]
+ }
+ return t.str[t.pVariant:]
+}
+
+// equalsRest compares everything except the language.
+func (a Tag) equalsRest(b Tag) bool {
+ // TODO: don't include extensions in this comparison. To do this efficiently,
+ // though, we should handle private tags separately.
+ return a.script == b.script && a.region == b.region && a.variantOrPrivateTagStr() == b.variantOrPrivateTagStr()
+}
+
+// isExactEquivalent returns true if canonicalizing the language will not alter
+// the script or region of a tag.
+func isExactEquivalent(l langID) bool {
+ for _, o := range notEquivalent {
+ if o == l {
+ return false
+ }
+ }
+ return true
+}
+
+var notEquivalent []langID
+
+func init() {
+ // Create a list of all languages for which canonicalization may alter the
+ // script or region.
+ for _, lm := range langAliasMap {
+ tag := Tag{lang: langID(lm.from)}
+ if tag, _ = tag.canonicalize(All); tag.script != 0 || tag.region != 0 {
+ notEquivalent = append(notEquivalent, langID(lm.from))
+ }
+ }
+}
diff --git a/vendor/golang.org/x/text/language/parse.go b/vendor/golang.org/x/text/language/parse.go
new file mode 100644
index 000000000..cfa28f56e
--- /dev/null
+++ b/vendor/golang.org/x/text/language/parse.go
@@ -0,0 +1,859 @@
+// 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 language
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "sort"
+ "strconv"
+ "strings"
+
+ "golang.org/x/text/internal/tag"
+)
+
+// isAlpha returns true if the byte is not a digit.
+// b must be an ASCII letter or digit.
+func isAlpha(b byte) bool {
+ return b > '9'
+}
+
+// isAlphaNum returns true if the string contains only ASCII letters or digits.
+func isAlphaNum(s []byte) bool {
+ for _, c := range s {
+ if !('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z' || '0' <= c && c <= '9') {
+ return false
+ }
+ }
+ return true
+}
+
+// errSyntax is returned by any of the parsing functions when the
+// input is not well-formed, according to BCP 47.
+// TODO: return the position at which the syntax error occurred?
+var errSyntax = errors.New("language: tag is not well-formed")
+
+// ValueError is returned by any of the parsing functions when the
+// input is well-formed but the respective subtag is not recognized
+// as a valid value.
+type ValueError struct {
+ v [8]byte
+}
+
+func mkErrInvalid(s []byte) error {
+ var e ValueError
+ copy(e.v[:], s)
+ return e
+}
+
+func (e ValueError) tag() []byte {
+ n := bytes.IndexByte(e.v[:], 0)
+ if n == -1 {
+ n = 8
+ }
+ return e.v[:n]
+}
+
+// Error implements the error interface.
+func (e ValueError) Error() string {
+ return fmt.Sprintf("language: subtag %q is well-formed but unknown", e.tag())
+}
+
+// Subtag returns the subtag for which the error occurred.
+func (e ValueError) Subtag() string {
+ return string(e.tag())
+}
+
+// scanner is used to scan BCP 47 tokens, which are separated by _ or -.
+type scanner struct {
+ b []byte
+ bytes [max99thPercentileSize]byte
+ token []byte
+ start int // start position of the current token
+ end int // end position of the current token
+ next int // next point for scan
+ err error
+ done bool
+}
+
+func makeScannerString(s string) scanner {
+ scan := scanner{}
+ if len(s) <= len(scan.bytes) {
+ scan.b = scan.bytes[:copy(scan.bytes[:], s)]
+ } else {
+ scan.b = []byte(s)
+ }
+ scan.init()
+ return scan
+}
+
+// makeScanner returns a scanner using b as the input buffer.
+// b is not copied and may be modified by the scanner routines.
+func makeScanner(b []byte) scanner {
+ scan := scanner{b: b}
+ scan.init()
+ return scan
+}
+
+func (s *scanner) init() {
+ for i, c := range s.b {
+ if c == '_' {
+ s.b[i] = '-'
+ }
+ }
+ s.scan()
+}
+
+// restToLower converts the string between start and end to lower case.
+func (s *scanner) toLower(start, end int) {
+ for i := start; i < end; i++ {
+ c := s.b[i]
+ if 'A' <= c && c <= 'Z' {
+ s.b[i] += 'a' - 'A'
+ }
+ }
+}
+
+func (s *scanner) setError(e error) {
+ if s.err == nil || (e == errSyntax && s.err != errSyntax) {
+ s.err = e
+ }
+}
+
+// resizeRange shrinks or grows the array at position oldStart such that
+// a new string of size newSize can fit between oldStart and oldEnd.
+// Sets the scan point to after the resized range.
+func (s *scanner) resizeRange(oldStart, oldEnd, newSize int) {
+ s.start = oldStart
+ if end := oldStart + newSize; end != oldEnd {
+ diff := end - oldEnd
+ if end < cap(s.b) {
+ b := make([]byte, len(s.b)+diff)
+ copy(b, s.b[:oldStart])
+ copy(b[end:], s.b[oldEnd:])
+ s.b = b
+ } else {
+ s.b = append(s.b[end:], s.b[oldEnd:]...)
+ }
+ s.next = end + (s.next - s.end)
+ s.end = end
+ }
+}
+
+// replace replaces the current token with repl.
+func (s *scanner) replace(repl string) {
+ s.resizeRange(s.start, s.end, len(repl))
+ copy(s.b[s.start:], repl)
+}
+
+// gobble removes the current token from the input.
+// Caller must call scan after calling gobble.
+func (s *scanner) gobble(e error) {
+ s.setError(e)
+ if s.start == 0 {
+ s.b = s.b[:+copy(s.b, s.b[s.next:])]
+ s.end = 0
+ } else {
+ s.b = s.b[:s.start-1+copy(s.b[s.start-1:], s.b[s.end:])]
+ s.end = s.start - 1
+ }
+ s.next = s.start
+}
+
+// deleteRange removes the given range from s.b before the current token.
+func (s *scanner) deleteRange(start, end int) {
+ s.setError(errSyntax)
+ s.b = s.b[:start+copy(s.b[start:], s.b[end:])]
+ diff := end - start
+ s.next -= diff
+ s.start -= diff
+ s.end -= diff
+}
+
+// scan parses the next token of a BCP 47 string. Tokens that are larger
+// than 8 characters or include non-alphanumeric characters result in an error
+// and are gobbled and removed from the output.
+// It returns the end position of the last token consumed.
+func (s *scanner) scan() (end int) {
+ end = s.end
+ s.token = nil
+ for s.start = s.next; s.next < len(s.b); {
+ i := bytes.IndexByte(s.b[s.next:], '-')
+ if i == -1 {
+ s.end = len(s.b)
+ s.next = len(s.b)
+ i = s.end - s.start
+ } else {
+ s.end = s.next + i
+ s.next = s.end + 1
+ }
+ token := s.b[s.start:s.end]
+ if i < 1 || i > 8 || !isAlphaNum(token) {
+ s.gobble(errSyntax)
+ continue
+ }
+ s.token = token
+ return end
+ }
+ if n := len(s.b); n > 0 && s.b[n-1] == '-' {
+ s.setError(errSyntax)
+ s.b = s.b[:len(s.b)-1]
+ }
+ s.done = true
+ return end
+}
+
+// acceptMinSize parses multiple tokens of the given size or greater.
+// It returns the end position of the last token consumed.
+func (s *scanner) acceptMinSize(min int) (end int) {
+ end = s.end
+ s.scan()
+ for ; len(s.token) >= min; s.scan() {
+ end = s.end
+ }
+ return end
+}
+
+// Parse parses the given BCP 47 string and returns a valid Tag. If parsing
+// failed it returns an error and any part of the tag that could be parsed.
+// If parsing succeeded but an unknown value was found, it returns
+// ValueError. The Tag returned in this case is just stripped of the unknown
+// value. All other values are preserved. It accepts tags in the BCP 47 format
+// and extensions to this standard defined in
+// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
+// The resulting tag is canonicalized using the default canonicalization type.
+func Parse(s string) (t Tag, err error) {
+ return Default.Parse(s)
+}
+
+// Parse parses the given BCP 47 string and returns a valid Tag. If parsing
+// failed it returns an error and any part of the tag that could be parsed.
+// If parsing succeeded but an unknown value was found, it returns
+// ValueError. The Tag returned in this case is just stripped of the unknown
+// value. All other values are preserved. It accepts tags in the BCP 47 format
+// and extensions to this standard defined in
+// http://www.unicode.org/reports/tr35/#Unicode_Language_and_Locale_Identifiers.
+// The resulting tag is canonicalized using the the canonicalization type c.
+func (c CanonType) Parse(s string) (t Tag, err error) {
+ // TODO: consider supporting old-style locale key-value pairs.
+ if s == "" {
+ return und, errSyntax
+ }
+ if len(s) <= maxAltTaglen {
+ b := [maxAltTaglen]byte{}
+ for i, c := range s {
+ // Generating invalid UTF-8 is okay as it won't match.
+ if 'A' <= c && c <= 'Z' {
+ c += 'a' - 'A'
+ } else if c == '_' {
+ c = '-'
+ }
+ b[i] = byte(c)
+ }
+ if t, ok := grandfathered(b); ok {
+ return t, nil
+ }
+ }
+ scan := makeScannerString(s)
+ t, err = parse(&scan, s)
+ t, changed := t.canonicalize(c)
+ if changed {
+ t.remakeString()
+ }
+ return t, err
+}
+
+func parse(scan *scanner, s string) (t Tag, err error) {
+ t = und
+ var end int
+ if n := len(scan.token); n <= 1 {
+ scan.toLower(0, len(scan.b))
+ if n == 0 || scan.token[0] != 'x' {
+ return t, errSyntax
+ }
+ end = parseExtensions(scan)
+ } else if n >= 4 {
+ return und, errSyntax
+ } else { // the usual case
+ t, end = parseTag(scan)
+ if n := len(scan.token); n == 1 {
+ t.pExt = uint16(end)
+ end = parseExtensions(scan)
+ } else if end < len(scan.b) {
+ scan.setError(errSyntax)
+ scan.b = scan.b[:end]
+ }
+ }
+ if int(t.pVariant) < len(scan.b) {
+ if end < len(s) {
+ s = s[:end]
+ }
+ if len(s) > 0 && tag.Compare(s, scan.b) == 0 {
+ t.str = s
+ } else {
+ t.str = string(scan.b)
+ }
+ } else {
+ t.pVariant, t.pExt = 0, 0
+ }
+ return t, scan.err
+}
+
+// parseTag parses language, script, region and variants.
+// It returns a Tag and the end position in the input that was parsed.
+func parseTag(scan *scanner) (t Tag, end int) {
+ var e error
+ // TODO: set an error if an unknown lang, script or region is encountered.
+ t.lang, e = getLangID(scan.token)
+ scan.setError(e)
+ scan.replace(t.lang.String())
+ langStart := scan.start
+ end = scan.scan()
+ for len(scan.token) == 3 && isAlpha(scan.token[0]) {
+ // From http://tools.ietf.org/html/bcp47, <lang>-<extlang> tags are equivalent
+ // to a tag of the form <extlang>.
+ lang, e := getLangID(scan.token)
+ if lang != 0 {
+ t.lang = lang
+ copy(scan.b[langStart:], lang.String())
+ scan.b[langStart+3] = '-'
+ scan.start = langStart + 4
+ }
+ scan.gobble(e)
+ end = scan.scan()
+ }
+ if len(scan.token) == 4 && isAlpha(scan.token[0]) {
+ t.script, e = getScriptID(script, scan.token)
+ if t.script == 0 {
+ scan.gobble(e)
+ }
+ end = scan.scan()
+ }
+ if n := len(scan.token); n >= 2 && n <= 3 {
+ t.region, e = getRegionID(scan.token)
+ if t.region == 0 {
+ scan.gobble(e)
+ } else {
+ scan.replace(t.region.String())
+ }
+ end = scan.scan()
+ }
+ scan.toLower(scan.start, len(scan.b))
+ t.pVariant = byte(end)
+ end = parseVariants(scan, end, t)
+ t.pExt = uint16(end)
+ return t, end
+}
+
+var separator = []byte{'-'}
+
+// parseVariants scans tokens as long as each token is a valid variant string.
+// Duplicate variants are removed.
+func parseVariants(scan *scanner, end int, t Tag) int {
+ start := scan.start
+ varIDBuf := [4]uint8{}
+ variantBuf := [4][]byte{}
+ varID := varIDBuf[:0]
+ variant := variantBuf[:0]
+ last := -1
+ needSort := false
+ for ; len(scan.token) >= 4; scan.scan() {
+ // TODO: measure the impact of needing this conversion and redesign
+ // the data structure if there is an issue.
+ v, ok := variantIndex[string(scan.token)]
+ if !ok {
+ // unknown variant
+ // TODO: allow user-defined variants?
+ scan.gobble(mkErrInvalid(scan.token))
+ continue
+ }
+ varID = append(varID, v)
+ variant = append(variant, scan.token)
+ if !needSort {
+ if last < int(v) {
+ last = int(v)
+ } else {
+ needSort = true
+ // There is no legal combinations of more than 7 variants
+ // (and this is by no means a useful sequence).
+ const maxVariants = 8
+ if len(varID) > maxVariants {
+ break
+ }
+ }
+ }
+ end = scan.end
+ }
+ if needSort {
+ sort.Sort(variantsSort{varID, variant})
+ k, l := 0, -1
+ for i, v := range varID {
+ w := int(v)
+ if l == w {
+ // Remove duplicates.
+ continue
+ }
+ varID[k] = varID[i]
+ variant[k] = variant[i]
+ k++
+ l = w
+ }
+ if str := bytes.Join(variant[:k], separator); len(str) == 0 {
+ end = start - 1
+ } else {
+ scan.resizeRange(start, end, len(str))
+ copy(scan.b[scan.start:], str)
+ end = scan.end
+ }
+ }
+ return end
+}
+
+type variantsSort struct {
+ i []uint8
+ v [][]byte
+}
+
+func (s variantsSort) Len() int {
+ return len(s.i)
+}
+
+func (s variantsSort) Swap(i, j int) {
+ s.i[i], s.i[j] = s.i[j], s.i[i]
+ s.v[i], s.v[j] = s.v[j], s.v[i]
+}
+
+func (s variantsSort) Less(i, j int) bool {
+ return s.i[i] < s.i[j]
+}
+
+type bytesSort [][]byte
+
+func (b bytesSort) Len() int {
+ return len(b)
+}
+
+func (b bytesSort) Swap(i, j int) {
+ b[i], b[j] = b[j], b[i]
+}
+
+func (b bytesSort) Less(i, j int) bool {
+ return bytes.Compare(b[i], b[j]) == -1
+}
+
+// parseExtensions parses and normalizes the extensions in the buffer.
+// It returns the last position of scan.b that is part of any extension.
+// It also trims scan.b to remove excess parts accordingly.
+func parseExtensions(scan *scanner) int {
+ start := scan.start
+ exts := [][]byte{}
+ private := []byte{}
+ end := scan.end
+ for len(scan.token) == 1 {
+ extStart := scan.start
+ ext := scan.token[0]
+ end = parseExtension(scan)
+ extension := scan.b[extStart:end]
+ if len(extension) < 3 || (ext != 'x' && len(extension) < 4) {
+ scan.setError(errSyntax)
+ end = extStart
+ continue
+ } else if start == extStart && (ext == 'x' || scan.start == len(scan.b)) {
+ scan.b = scan.b[:end]
+ return end
+ } else if ext == 'x' {
+ private = extension
+ break
+ }
+ exts = append(exts, extension)
+ }
+ sort.Sort(bytesSort(exts))
+ if len(private) > 0 {
+ exts = append(exts, private)
+ }
+ scan.b = scan.b[:start]
+ if len(exts) > 0 {
+ scan.b = append(scan.b, bytes.Join(exts, separator)...)
+ } else if start > 0 {
+ // Strip trailing '-'.
+ scan.b = scan.b[:start-1]
+ }
+ return end
+}
+
+// parseExtension parses a single extension and returns the position of
+// the extension end.
+func parseExtension(scan *scanner) int {
+ start, end := scan.start, scan.end
+ switch scan.token[0] {
+ case 'u':
+ attrStart := end
+ scan.scan()
+ for last := []byte{}; len(scan.token) > 2; scan.scan() {
+ if bytes.Compare(scan.token, last) != -1 {
+ // Attributes are unsorted. Start over from scratch.
+ p := attrStart + 1
+ scan.next = p
+ attrs := [][]byte{}
+ for scan.scan(); len(scan.token) > 2; scan.scan() {
+ attrs = append(attrs, scan.token)
+ end = scan.end
+ }
+ sort.Sort(bytesSort(attrs))
+ copy(scan.b[p:], bytes.Join(attrs, separator))
+ break
+ }
+ last = scan.token
+ end = scan.end
+ }
+ var last, key []byte
+ for attrEnd := end; len(scan.token) == 2; last = key {
+ key = scan.token
+ keyEnd := scan.end
+ end = scan.acceptMinSize(3)
+ // TODO: check key value validity
+ if keyEnd == end || bytes.Compare(key, last) != 1 {
+ // We have an invalid key or the keys are not sorted.
+ // Start scanning keys from scratch and reorder.
+ p := attrEnd + 1
+ scan.next = p
+ keys := [][]byte{}
+ for scan.scan(); len(scan.token) == 2; {
+ keyStart, keyEnd := scan.start, scan.end
+ end = scan.acceptMinSize(3)
+ if keyEnd != end {
+ keys = append(keys, scan.b[keyStart:end])
+ } else {
+ scan.setError(errSyntax)
+ end = keyStart
+ }
+ }
+ sort.Sort(bytesSort(keys))
+ reordered := bytes.Join(keys, separator)
+ if e := p + len(reordered); e < end {
+ scan.deleteRange(e, end)
+ end = e
+ }
+ copy(scan.b[p:], bytes.Join(keys, separator))
+ break
+ }
+ }
+ case 't':
+ scan.scan()
+ if n := len(scan.token); n >= 2 && n <= 3 && isAlpha(scan.token[1]) {
+ _, end = parseTag(scan)
+ scan.toLower(start, end)
+ }
+ for len(scan.token) == 2 && !isAlpha(scan.token[1]) {
+ end = scan.acceptMinSize(3)
+ }
+ case 'x':
+ end = scan.acceptMinSize(1)
+ default:
+ end = scan.acceptMinSize(2)
+ }
+ return end
+}
+
+// Compose creates a Tag from individual parts, which may be of type Tag, Base,
+// Script, Region, Variant, []Variant, Extension, []Extension or error. If a
+// Base, Script or Region or slice of type Variant or Extension is passed more
+// than once, the latter will overwrite the former. Variants and Extensions are
+// accumulated, but if two extensions of the same type are passed, the latter
+// will replace the former. A Tag overwrites all former values and typically
+// only makes sense as the first argument. The resulting tag is returned after
+// canonicalizing using the Default CanonType. If one or more errors are
+// encountered, one of the errors is returned.
+func Compose(part ...interface{}) (t Tag, err error) {
+ return Default.Compose(part...)
+}
+
+// Compose creates a Tag from individual parts, which may be of type Tag, Base,
+// Script, Region, Variant, []Variant, Extension, []Extension or error. If a
+// Base, Script or Region or slice of type Variant or Extension is passed more
+// than once, the latter will overwrite the former. Variants and Extensions are
+// accumulated, but if two extensions of the same type are passed, the latter
+// will replace the former. A Tag overwrites all former values and typically
+// only makes sense as the first argument. The resulting tag is returned after
+// canonicalizing using CanonType c. If one or more errors are encountered,
+// one of the errors is returned.
+func (c CanonType) Compose(part ...interface{}) (t Tag, err error) {
+ var b builder
+ if err = b.update(part...); err != nil {
+ return und, err
+ }
+ t, _ = b.tag.canonicalize(c)
+
+ if len(b.ext) > 0 || len(b.variant) > 0 {
+ sort.Sort(sortVariant(b.variant))
+ sort.Strings(b.ext)
+ if b.private != "" {
+ b.ext = append(b.ext, b.private)
+ }
+ n := maxCoreSize + tokenLen(b.variant...) + tokenLen(b.ext...)
+ buf := make([]byte, n)
+ p := t.genCoreBytes(buf)
+ t.pVariant = byte(p)
+ p += appendTokens(buf[p:], b.variant...)
+ t.pExt = uint16(p)
+ p += appendTokens(buf[p:], b.ext...)
+ t.str = string(buf[:p])
+ } else if b.private != "" {
+ t.str = b.private
+ t.remakeString()
+ }
+ return
+}
+
+type builder struct {
+ tag Tag
+
+ private string // the x extension
+ ext []string
+ variant []string
+
+ err error
+}
+
+func (b *builder) addExt(e string) {
+ if e == "" {
+ } else if e[0] == 'x' {
+ b.private = e
+ } else {
+ b.ext = append(b.ext, e)
+ }
+}
+
+var errInvalidArgument = errors.New("invalid Extension or Variant")
+
+func (b *builder) update(part ...interface{}) (err error) {
+ replace := func(l *[]string, s string, eq func(a, b string) bool) bool {
+ if s == "" {
+ b.err = errInvalidArgument
+ return true
+ }
+ for i, v := range *l {
+ if eq(v, s) {
+ (*l)[i] = s
+ return true
+ }
+ }
+ return false
+ }
+ for _, x := range part {
+ switch v := x.(type) {
+ case Tag:
+ b.tag.lang = v.lang
+ b.tag.region = v.region
+ b.tag.script = v.script
+ if v.str != "" {
+ b.variant = nil
+ for x, s := "", v.str[v.pVariant:v.pExt]; s != ""; {
+ x, s = nextToken(s)
+ b.variant = append(b.variant, x)
+ }
+ b.ext, b.private = nil, ""
+ for i, e := int(v.pExt), ""; i < len(v.str); {
+ i, e = getExtension(v.str, i)
+ b.addExt(e)
+ }
+ }
+ case Base:
+ b.tag.lang = v.langID
+ case Script:
+ b.tag.script = v.scriptID
+ case Region:
+ b.tag.region = v.regionID
+ case Variant:
+ if !replace(&b.variant, v.variant, func(a, b string) bool { return a == b }) {
+ b.variant = append(b.variant, v.variant)
+ }
+ case Extension:
+ if !replace(&b.ext, v.s, func(a, b string) bool { return a[0] == b[0] }) {
+ b.addExt(v.s)
+ }
+ case []Variant:
+ b.variant = nil
+ for _, x := range v {
+ b.update(x)
+ }
+ case []Extension:
+ b.ext, b.private = nil, ""
+ for _, e := range v {
+ b.update(e)
+ }
+ // TODO: support parsing of raw strings based on morphology or just extensions?
+ case error:
+ err = v
+ }
+ }
+ return
+}
+
+func tokenLen(token ...string) (n int) {
+ for _, t := range token {
+ n += len(t) + 1
+ }
+ return
+}
+
+func appendTokens(b []byte, token ...string) int {
+ p := 0
+ for _, t := range token {
+ b[p] = '-'
+ copy(b[p+1:], t)
+ p += 1 + len(t)
+ }
+ return p
+}
+
+type sortVariant []string
+
+func (s sortVariant) Len() int {
+ return len(s)
+}
+
+func (s sortVariant) Swap(i, j int) {
+ s[j], s[i] = s[i], s[j]
+}
+
+func (s sortVariant) Less(i, j int) bool {
+ return variantIndex[s[i]] < variantIndex[s[j]]
+}
+
+func findExt(list []string, x byte) int {
+ for i, e := range list {
+ if e[0] == x {
+ return i
+ }
+ }
+ return -1
+}
+
+// getExtension returns the name, body and end position of the extension.
+func getExtension(s string, p int) (end int, ext string) {
+ if s[p] == '-' {
+ p++
+ }
+ if s[p] == 'x' {
+ return len(s), s[p:]
+ }
+ end = nextExtension(s, p)
+ return end, s[p:end]
+}
+
+// nextExtension finds the next extension within the string, searching
+// for the -<char>- pattern from position p.
+// In the fast majority of cases, language tags will have at most
+// one extension and extensions tend to be small.
+func nextExtension(s string, p int) int {
+ for n := len(s) - 3; p < n; {
+ if s[p] == '-' {
+ if s[p+2] == '-' {
+ return p
+ }
+ p += 3
+ } else {
+ p++
+ }
+ }
+ return len(s)
+}
+
+var errInvalidWeight = errors.New("ParseAcceptLanguage: invalid weight")
+
+// ParseAcceptLanguage parses the contents of a Accept-Language header as
+// defined in http://www.ietf.org/rfc/rfc2616.txt and returns a list of Tags and
+// a list of corresponding quality weights. It is more permissive than RFC 2616
+// and may return non-nil slices even if the input is not valid.
+// The Tags will be sorted by highest weight first and then by first occurrence.
+// Tags with a weight of zero will be dropped. An error will be returned if the
+// input could not be parsed.
+func ParseAcceptLanguage(s string) (tag []Tag, q []float32, err error) {
+ var entry string
+ for s != "" {
+ if entry, s = split(s, ','); entry == "" {
+ continue
+ }
+
+ entry, weight := split(entry, ';')
+
+ // Scan the language.
+ t, err := Parse(entry)
+ if err != nil {
+ id, ok := acceptFallback[entry]
+ if !ok {
+ return nil, nil, err
+ }
+ t = Tag{lang: id}
+ }
+
+ // Scan the optional weight.
+ w := 1.0
+ if weight != "" {
+ weight = consume(weight, 'q')
+ weight = consume(weight, '=')
+ // consume returns the empty string when a token could not be
+ // consumed, resulting in an error for ParseFloat.
+ if w, err = strconv.ParseFloat(weight, 32); err != nil {
+ return nil, nil, errInvalidWeight
+ }
+ // Drop tags with a quality weight of 0.
+ if w <= 0 {
+ continue
+ }
+ }
+
+ tag = append(tag, t)
+ q = append(q, float32(w))
+ }
+ sortStable(&tagSort{tag, q})
+ return tag, q, nil
+}
+
+// consume removes a leading token c from s and returns the result or the empty
+// string if there is no such token.
+func consume(s string, c byte) string {
+ if s == "" || s[0] != c {
+ return ""
+ }
+ return strings.TrimSpace(s[1:])
+}
+
+func split(s string, c byte) (head, tail string) {
+ if i := strings.IndexByte(s, c); i >= 0 {
+ return strings.TrimSpace(s[:i]), strings.TrimSpace(s[i+1:])
+ }
+ return strings.TrimSpace(s), ""
+}
+
+// Add hack mapping to deal with a small number of cases that that occur
+// in Accept-Language (with reasonable frequency).
+var acceptFallback = map[string]langID{
+ "english": _en,
+ "deutsch": _de,
+ "italian": _it,
+ "french": _fr,
+ "*": _mul, // defined in the spec to match all languages.
+}
+
+type tagSort struct {
+ tag []Tag
+ q []float32
+}
+
+func (s *tagSort) Len() int {
+ return len(s.q)
+}
+
+func (s *tagSort) Less(i, j int) bool {
+ return s.q[i] > s.q[j]
+}
+
+func (s *tagSort) Swap(i, j int) {
+ s.tag[i], s.tag[j] = s.tag[j], s.tag[i]
+ s.q[i], s.q[j] = s.q[j], s.q[i]
+}
diff --git a/vendor/golang.org/x/text/language/tables.go b/vendor/golang.org/x/text/language/tables.go
new file mode 100644
index 000000000..1a92e582b
--- /dev/null
+++ b/vendor/golang.org/x/text/language/tables.go
@@ -0,0 +1,3547 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package language
+
+import "golang.org/x/text/internal/tag"
+
+// CLDRVersion is the CLDR version from which the tables in this package are derived.
+const CLDRVersion = "30"
+
+const numLanguages = 8654
+
+const numScripts = 230
+
+const numRegions = 356
+
+type fromTo struct {
+ from uint16
+ to uint16
+}
+
+const nonCanonicalUnd = 1191
+const (
+ _af = 21
+ _am = 38
+ _ar = 57
+ _az = 87
+ _bg = 125
+ _bn = 163
+ _ca = 213
+ _cs = 246
+ _da = 253
+ _de = 265
+ _el = 305
+ _en = 308
+ _es = 313
+ _et = 315
+ _fa = 323
+ _fi = 332
+ _fil = 334
+ _fr = 345
+ _gu = 413
+ _he = 437
+ _hi = 439
+ _hr = 458
+ _hu = 462
+ _hy = 464
+ _id = 474
+ _is = 496
+ _it = 497
+ _ja = 504
+ _ka = 520
+ _kk = 570
+ _km = 578
+ _kn = 585
+ _ko = 587
+ _ky = 641
+ _lo = 687
+ _lt = 695
+ _lv = 702
+ _mk = 758
+ _ml = 763
+ _mn = 770
+ _mo = 775
+ _mr = 786
+ _ms = 790
+ _mul = 797
+ _my = 808
+ _nb = 830
+ _ne = 840
+ _nl = 862
+ _no = 870
+ _pa = 916
+ _pl = 938
+ _pt = 951
+ _ro = 979
+ _ru = 985
+ _sh = 1021
+ _si = 1026
+ _sk = 1032
+ _sl = 1036
+ _sq = 1063
+ _sr = 1064
+ _sv = 1082
+ _sw = 1083
+ _ta = 1094
+ _te = 1111
+ _th = 1121
+ _tl = 1136
+ _tn = 1142
+ _tr = 1152
+ _uk = 1188
+ _ur = 1194
+ _uz = 1202
+ _vi = 1209
+ _zh = 1311
+ _zu = 1316
+ _jbo = 507
+ _ami = 1639
+ _bnn = 2346
+ _hak = 431
+ _tlh = 14456
+ _lb = 652
+ _nv = 890
+ _pwn = 12044
+ _tao = 14177
+ _tay = 14187
+ _tsu = 14651
+ _nn = 865
+ _sfb = 13618
+ _vgt = 15690
+ _sgg = 13649
+ _cmn = 2996
+ _nan = 826
+ _hsn = 460
+)
+
+const langPrivateStart = 0x2f67
+
+const langPrivateEnd = 0x316e
+
+// lang holds an alphabetically sorted list of ISO-639 language identifiers.
+// All entries are 4 bytes. The index of the identifier (divided by 4) is the language tag.
+// For 2-byte language identifiers, the two successive bytes have the following meaning:
+// - if the first letter of the 2- and 3-letter ISO codes are the same:
+// the second and third letter of the 3-letter ISO code.
+// - otherwise: a 0 and a by 2 bits right-shifted index into altLangISO3.
+// For 3-byte language identifiers the 4th byte is 0.
+var lang tag.Index = "" + // Size: 5280 bytes
+ "---\x00aaaraai\x00aak\x00aau\x00abbkabi\x00abr\x00abt\x00aby\x00acd\x00a" +
+ "ce\x00ach\x00ada\x00ade\x00adj\x00ady\x00adz\x00aeveaeb\x00aey\x00affrag" +
+ "c\x00agd\x00agg\x00agm\x00ago\x00agq\x00aha\x00ahl\x00aho\x00ajg\x00akka" +
+ "akk\x00ala\x00ali\x00aln\x00alt\x00ammhamm\x00amn\x00amo\x00amp\x00anrga" +
+ "nc\x00ank\x00ann\x00any\x00aoj\x00aom\x00aoz\x00apc\x00apd\x00ape\x00apr" +
+ "\x00aps\x00apz\x00arraarc\x00arh\x00arn\x00aro\x00arq\x00ars\x00ary\x00a" +
+ "rz\x00assmasa\x00ase\x00asg\x00aso\x00ast\x00ata\x00atg\x00atj\x00auy" +
+ "\x00avvaavl\x00avn\x00avt\x00avu\x00awa\x00awb\x00awo\x00awx\x00ayymayb" +
+ "\x00azzebaakbal\x00ban\x00bap\x00bar\x00bas\x00bav\x00bax\x00bba\x00bbb" +
+ "\x00bbc\x00bbd\x00bbj\x00bbp\x00bbr\x00bcf\x00bch\x00bci\x00bcm\x00bcn" +
+ "\x00bco\x00bcq\x00bcu\x00bdd\x00beelbef\x00beh\x00bej\x00bem\x00bet\x00b" +
+ "ew\x00bex\x00bez\x00bfd\x00bfq\x00bft\x00bfy\x00bgulbgc\x00bgn\x00bgx" +
+ "\x00bhihbhb\x00bhg\x00bhi\x00bhk\x00bhl\x00bho\x00bhy\x00biisbib\x00big" +
+ "\x00bik\x00bim\x00bin\x00bio\x00biq\x00bjh\x00bji\x00bjj\x00bjn\x00bjo" +
+ "\x00bjr\x00bjz\x00bkc\x00bkm\x00bkq\x00bku\x00bkv\x00blt\x00bmambmh\x00b" +
+ "mk\x00bmq\x00bmu\x00bnenbng\x00bnm\x00bnp\x00boodboj\x00bom\x00bon\x00bp" +
+ "y\x00bqc\x00bqi\x00bqp\x00bqv\x00brrebra\x00brh\x00brx\x00brz\x00bsosbsj" +
+ "\x00bsq\x00bss\x00bst\x00bto\x00btt\x00btv\x00bua\x00buc\x00bud\x00bug" +
+ "\x00buk\x00bum\x00buo\x00bus\x00buu\x00bvb\x00bwd\x00bwr\x00bxh\x00bye" +
+ "\x00byn\x00byr\x00bys\x00byv\x00byx\x00bza\x00bze\x00bzf\x00bzh\x00bzw" +
+ "\x00caatcan\x00cbj\x00cch\x00ccp\x00ceheceb\x00cfa\x00cgg\x00chhachk\x00" +
+ "chm\x00cho\x00chp\x00chr\x00cja\x00cjm\x00cjv\x00ckb\x00ckl\x00cko\x00ck" +
+ "y\x00cla\x00cme\x00cooscop\x00cps\x00crrecrj\x00crk\x00crl\x00crm\x00crs" +
+ "\x00csescsb\x00csw\x00ctd\x00cuhucvhvcyymdaandad\x00daf\x00dag\x00dah" +
+ "\x00dak\x00dar\x00dav\x00dbd\x00dbq\x00dcc\x00ddn\x00deeuded\x00den\x00d" +
+ "ga\x00dgh\x00dgi\x00dgl\x00dgr\x00dgz\x00dia\x00dje\x00dnj\x00dob\x00doi" +
+ "\x00dop\x00dow\x00dri\x00drs\x00dsb\x00dtm\x00dtp\x00dts\x00dty\x00dua" +
+ "\x00duc\x00dud\x00dug\x00dvivdva\x00dww\x00dyo\x00dyu\x00dzzodzg\x00ebu" +
+ "\x00eeweefi\x00egl\x00egy\x00eky\x00elllema\x00emi\x00enngenn\x00enq\x00" +
+ "eopoeri\x00es\x00\x05esu\x00etstetr\x00ett\x00etu\x00etx\x00euusewo\x00e" +
+ "xt\x00faasfaa\x00fab\x00fag\x00fai\x00fan\x00ffulffi\x00ffm\x00fiinfia" +
+ "\x00fil\x00fit\x00fjijflr\x00fmp\x00foaofod\x00fon\x00for\x00fpe\x00fqs" +
+ "\x00frrafrc\x00frp\x00frr\x00frs\x00fub\x00fud\x00fue\x00fuf\x00fuh\x00f" +
+ "uq\x00fur\x00fuv\x00fuy\x00fvr\x00fyrygalegaa\x00gaf\x00gag\x00gah\x00ga" +
+ "j\x00gam\x00gan\x00gaw\x00gay\x00gbf\x00gbm\x00gby\x00gbz\x00gcr\x00gdla" +
+ "gde\x00gdn\x00gdr\x00geb\x00gej\x00gel\x00gez\x00gfk\x00ggn\x00ghs\x00gi" +
+ "l\x00gim\x00gjk\x00gjn\x00gju\x00gkn\x00gkp\x00gllgglk\x00gmm\x00gmv\x00" +
+ "gnrngnd\x00gng\x00god\x00gof\x00goi\x00gom\x00gon\x00gor\x00gos\x00got" +
+ "\x00grc\x00grt\x00grw\x00gsw\x00guujgub\x00guc\x00gud\x00gur\x00guw\x00g" +
+ "ux\x00guz\x00gvlvgvf\x00gvr\x00gvs\x00gwc\x00gwi\x00gwt\x00gyi\x00haauha" +
+ "g\x00hak\x00ham\x00haw\x00haz\x00hbb\x00hdy\x00heebhhy\x00hiinhia\x00hif" +
+ "\x00hig\x00hih\x00hil\x00hla\x00hlu\x00hmd\x00hmt\x00hnd\x00hne\x00hnj" +
+ "\x00hnn\x00hno\x00homohoc\x00hoj\x00hot\x00hrrvhsb\x00hsn\x00htathuunhui" +
+ "\x00hyyehzerianaian\x00iar\x00iba\x00ibb\x00iby\x00ica\x00ich\x00idndidd" +
+ "\x00idi\x00idu\x00ieleigboigb\x00ige\x00iiiiijj\x00ikpkikk\x00ikt\x00ikw" +
+ "\x00ikx\x00ilo\x00imo\x00inndinh\x00iodoiou\x00iri\x00isslittaiukuiw\x00" +
+ "\x03iwm\x00iws\x00izh\x00izi\x00japnjab\x00jam\x00jbo\x00jbu\x00jen\x00j" +
+ "gk\x00jgo\x00ji\x00\x06jib\x00jmc\x00jml\x00jra\x00jut\x00jvavjwavkaatka" +
+ "a\x00kab\x00kac\x00kad\x00kai\x00kaj\x00kam\x00kao\x00kbd\x00kbm\x00kbp" +
+ "\x00kbq\x00kbx\x00kby\x00kcg\x00kck\x00kcl\x00kct\x00kde\x00kdh\x00kdl" +
+ "\x00kdt\x00kea\x00ken\x00kez\x00kfo\x00kfr\x00kfy\x00kgonkge\x00kgf\x00k" +
+ "gp\x00kha\x00khb\x00khn\x00khq\x00khs\x00kht\x00khw\x00khz\x00kiikkij" +
+ "\x00kiu\x00kiw\x00kjuakjd\x00kjg\x00kjs\x00kjy\x00kkazkkc\x00kkj\x00klal" +
+ "kln\x00klq\x00klt\x00klx\x00kmhmkmb\x00kmh\x00kmo\x00kms\x00kmu\x00kmw" +
+ "\x00knanknp\x00koorkoi\x00kok\x00kol\x00kos\x00koz\x00kpe\x00kpf\x00kpo" +
+ "\x00kpr\x00kpx\x00kqb\x00kqf\x00kqs\x00kqy\x00kraukrc\x00kri\x00krj\x00k" +
+ "rl\x00krs\x00kru\x00ksasksb\x00ksd\x00ksf\x00ksh\x00ksj\x00ksr\x00ktb" +
+ "\x00ktm\x00kto\x00kuurkub\x00kud\x00kue\x00kuj\x00kum\x00kun\x00kup\x00k" +
+ "us\x00kvomkvg\x00kvr\x00kvx\x00kw\x00\x01kwj\x00kwo\x00kxa\x00kxc\x00kxm" +
+ "\x00kxp\x00kxw\x00kxz\x00kyirkye\x00kyx\x00kzr\x00laatlab\x00lad\x00lag" +
+ "\x00lah\x00laj\x00las\x00lbtzlbe\x00lbu\x00lbw\x00lcm\x00lcp\x00ldb\x00l" +
+ "ed\x00lee\x00lem\x00lep\x00leq\x00leu\x00lez\x00lguglgg\x00liimlia\x00li" +
+ "d\x00lif\x00lig\x00lih\x00lij\x00lis\x00ljp\x00lki\x00lkt\x00lle\x00lln" +
+ "\x00lmn\x00lmo\x00lmp\x00lninlns\x00lnu\x00loaoloj\x00lok\x00lol\x00lor" +
+ "\x00los\x00loz\x00lrc\x00ltitltg\x00luublua\x00luo\x00luy\x00luz\x00lvav" +
+ "lwl\x00lzh\x00lzz\x00mad\x00maf\x00mag\x00mai\x00mak\x00man\x00mas\x00ma" +
+ "w\x00maz\x00mbh\x00mbo\x00mbq\x00mbu\x00mbw\x00mci\x00mcp\x00mcq\x00mcr" +
+ "\x00mcu\x00mda\x00mde\x00mdf\x00mdh\x00mdj\x00mdr\x00mdx\x00med\x00mee" +
+ "\x00mek\x00men\x00mer\x00met\x00meu\x00mfa\x00mfe\x00mfn\x00mfo\x00mfq" +
+ "\x00mglgmgh\x00mgl\x00mgo\x00mgp\x00mgy\x00mhahmhi\x00mhl\x00mirimif\x00" +
+ "min\x00mis\x00miw\x00mkkdmki\x00mkl\x00mkp\x00mkw\x00mlalmle\x00mlp\x00m" +
+ "ls\x00mmo\x00mmu\x00mmx\x00mnonmna\x00mnf\x00mni\x00mnw\x00moolmoa\x00mo" +
+ "e\x00moh\x00mos\x00mox\x00mpp\x00mps\x00mpt\x00mpx\x00mql\x00mrarmrd\x00" +
+ "mrj\x00mro\x00mssamtltmtc\x00mtf\x00mti\x00mtr\x00mua\x00mul\x00mur\x00m" +
+ "us\x00mva\x00mvn\x00mvy\x00mwk\x00mwr\x00mwv\x00mxc\x00mxm\x00myyamyk" +
+ "\x00mym\x00myv\x00myw\x00myx\x00myz\x00mzk\x00mzm\x00mzn\x00mzp\x00mzw" +
+ "\x00mzz\x00naaunac\x00naf\x00nah\x00nak\x00nan\x00nap\x00naq\x00nas\x00n" +
+ "bobnca\x00nce\x00ncf\x00nch\x00nco\x00ncu\x00nddendc\x00nds\x00neepneb" +
+ "\x00new\x00nex\x00nfr\x00ngdonga\x00ngb\x00ngl\x00nhb\x00nhe\x00nhw\x00n" +
+ "if\x00nii\x00nij\x00nin\x00niu\x00niy\x00niz\x00njo\x00nkg\x00nko\x00nll" +
+ "dnmg\x00nmz\x00nnnonnf\x00nnh\x00nnk\x00nnm\x00noornod\x00noe\x00non\x00" +
+ "nop\x00nou\x00nqo\x00nrblnrb\x00nsk\x00nsn\x00nso\x00nss\x00ntm\x00ntr" +
+ "\x00nui\x00nup\x00nus\x00nuv\x00nux\x00nvavnwb\x00nxq\x00nxr\x00nyyanym" +
+ "\x00nyn\x00nzi\x00occiogc\x00ojjiokr\x00okv\x00omrmong\x00onn\x00ons\x00" +
+ "opm\x00orrioro\x00oru\x00osssosa\x00ota\x00otk\x00ozm\x00paanpag\x00pal" +
+ "\x00pam\x00pap\x00pau\x00pbi\x00pcd\x00pcm\x00pdc\x00pdt\x00ped\x00peo" +
+ "\x00pex\x00pfl\x00phl\x00phn\x00pilipil\x00pip\x00pka\x00pko\x00plolpla" +
+ "\x00pms\x00png\x00pnn\x00pnt\x00pon\x00ppo\x00pra\x00prd\x00prg\x00psusp" +
+ "ss\x00ptorptp\x00puu\x00pwa\x00quuequc\x00qug\x00rai\x00raj\x00rao\x00rc" +
+ "f\x00rej\x00rel\x00res\x00rgn\x00rhg\x00ria\x00rif\x00rjs\x00rkt\x00rmoh" +
+ "rmf\x00rmo\x00rmt\x00rmu\x00rnunrna\x00rng\x00roonrob\x00rof\x00roo\x00r" +
+ "ro\x00rtm\x00ruusrue\x00rug\x00rw\x00\x04rwk\x00rwo\x00ryu\x00saansaf" +
+ "\x00sah\x00saq\x00sas\x00sat\x00saz\x00sba\x00sbe\x00sbp\x00scrdsck\x00s" +
+ "cl\x00scn\x00sco\x00scs\x00sdndsdc\x00sdh\x00semesef\x00seh\x00sei\x00se" +
+ "s\x00sgagsga\x00sgs\x00sgw\x00sgz\x00sh\x00\x02shi\x00shk\x00shn\x00shu" +
+ "\x00siinsid\x00sig\x00sil\x00sim\x00sjr\x00sklkskc\x00skr\x00sks\x00sllv" +
+ "sld\x00sli\x00sll\x00sly\x00smmosma\x00smi\x00smj\x00smn\x00smp\x00smq" +
+ "\x00sms\x00snnasnc\x00snk\x00snp\x00snx\x00sny\x00soomsok\x00soq\x00sou" +
+ "\x00soy\x00spd\x00spl\x00sps\x00sqqisrrpsrb\x00srn\x00srr\x00srx\x00sssw" +
+ "ssd\x00ssg\x00ssy\x00stotstk\x00stq\x00suunsua\x00sue\x00suk\x00sur\x00s" +
+ "us\x00svweswwaswb\x00swc\x00swg\x00swp\x00swv\x00sxn\x00sxw\x00syl\x00sy" +
+ "r\x00szl\x00taamtaj\x00tal\x00tan\x00taq\x00tbc\x00tbd\x00tbf\x00tbg\x00" +
+ "tbo\x00tbw\x00tbz\x00tci\x00tcy\x00tdd\x00tdg\x00tdh\x00teelted\x00tem" +
+ "\x00teo\x00tet\x00tfi\x00tggktgc\x00tgo\x00tgu\x00thhathl\x00thq\x00thr" +
+ "\x00tiirtif\x00tig\x00tik\x00tim\x00tio\x00tiv\x00tkuktkl\x00tkr\x00tkt" +
+ "\x00tlgltlf\x00tlx\x00tly\x00tmh\x00tmy\x00tnsntnh\x00toontof\x00tog\x00" +
+ "toq\x00tpi\x00tpm\x00tpz\x00tqo\x00trurtru\x00trv\x00trw\x00tssotsd\x00t" +
+ "sf\x00tsg\x00tsj\x00tsw\x00ttatttd\x00tte\x00ttj\x00ttr\x00tts\x00ttt" +
+ "\x00tuh\x00tul\x00tum\x00tuq\x00tvd\x00tvl\x00tvu\x00twwitwh\x00twq\x00t" +
+ "xg\x00tyahtya\x00tyv\x00tzm\x00ubu\x00udm\x00ugiguga\x00ukkruli\x00umb" +
+ "\x00und\x00unr\x00unx\x00urrduri\x00urt\x00urw\x00usa\x00utr\x00uvh\x00u" +
+ "vl\x00uzzbvag\x00vai\x00van\x00veenvec\x00vep\x00viievic\x00viv\x00vls" +
+ "\x00vmf\x00vmw\x00voolvot\x00vro\x00vun\x00vut\x00walnwae\x00waj\x00wal" +
+ "\x00wan\x00war\x00wbp\x00wbq\x00wbr\x00wci\x00wer\x00wgi\x00whg\x00wib" +
+ "\x00wiu\x00wiv\x00wja\x00wji\x00wls\x00wmo\x00wnc\x00wni\x00wnu\x00woolw" +
+ "ob\x00wos\x00wrs\x00wsk\x00wtm\x00wuu\x00wuv\x00wwa\x00xav\x00xbi\x00xcr" +
+ "\x00xes\x00xhhoxla\x00xlc\x00xld\x00xmf\x00xmn\x00xmr\x00xna\x00xnr\x00x" +
+ "og\x00xon\x00xpr\x00xrb\x00xsa\x00xsi\x00xsm\x00xsr\x00xwe\x00yam\x00yao" +
+ "\x00yap\x00yas\x00yat\x00yav\x00yay\x00yaz\x00yba\x00ybb\x00yby\x00yer" +
+ "\x00ygr\x00ygw\x00yiidyko\x00yle\x00ylg\x00yll\x00yml\x00yooryon\x00yrb" +
+ "\x00yre\x00yrl\x00yss\x00yua\x00yue\x00yuj\x00yut\x00yuw\x00zahazag\x00z" +
+ "bl\x00zdj\x00zea\x00zgh\x00zhhozia\x00zlm\x00zmi\x00zne\x00zuulzxx\x00zz" +
+ "a\x00\xff\xff\xff\xff"
+
+const langNoIndexOffset = 1319
+
+// langNoIndex is a bit vector of all 3-letter language codes that are not used as an index
+// in lookup tables. The language ids for these language codes are derived directly
+// from the letters and are not consecutive.
+// Size: 2197 bytes, 2197 elements
+var langNoIndex = [2197]uint8{
+ // Entry 0 - 3F
+ 0xff, 0xf8, 0xed, 0xfe, 0xeb, 0xd7, 0x3b, 0xd2,
+ 0xfb, 0xbf, 0x7a, 0xfa, 0x37, 0x1d, 0x3c, 0x57,
+ 0x6e, 0x97, 0x73, 0x38, 0xfb, 0xea, 0xbf, 0x70,
+ 0xad, 0x03, 0xff, 0xff, 0xcf, 0x05, 0x84, 0x62,
+ 0xe9, 0xbf, 0xfd, 0xbf, 0xbf, 0xf7, 0xfd, 0x77,
+ 0x0f, 0xff, 0xef, 0x6f, 0xff, 0xfb, 0xdf, 0xe2,
+ 0xc9, 0xf8, 0x7f, 0x7e, 0x4d, 0xb8, 0x0a, 0x6a,
+ 0x7c, 0xea, 0xe3, 0xfa, 0x7a, 0xbf, 0x67, 0xff,
+ // Entry 40 - 7F
+ 0xff, 0xff, 0xff, 0xdf, 0x2a, 0x54, 0x91, 0xc0,
+ 0x5d, 0xe3, 0x97, 0x14, 0x07, 0x20, 0xdd, 0xed,
+ 0x9f, 0x3f, 0xc9, 0x21, 0xf8, 0x3f, 0x94, 0x35,
+ 0x7c, 0x5f, 0xff, 0x5f, 0x8e, 0x6e, 0xdf, 0xff,
+ 0xff, 0xff, 0x55, 0x7c, 0xd3, 0xfd, 0xbf, 0xb5,
+ 0x7b, 0xdf, 0x7f, 0xf7, 0xca, 0xfe, 0xdb, 0xa3,
+ 0xa8, 0xff, 0x1f, 0x67, 0x7f, 0xeb, 0xef, 0xce,
+ 0xff, 0xff, 0x9f, 0xff, 0xb7, 0xef, 0xfe, 0xcf,
+ // Entry 80 - BF
+ 0xdb, 0xff, 0xf3, 0xcd, 0xfb, 0x2f, 0xff, 0xff,
+ 0xbb, 0xee, 0xf7, 0xbd, 0xdb, 0xff, 0x5f, 0xf7,
+ 0xfd, 0xf2, 0xfd, 0xff, 0x5e, 0x2f, 0x3b, 0xba,
+ 0x7e, 0xff, 0xff, 0xfe, 0xf7, 0xff, 0xdd, 0xff,
+ 0xfd, 0xdf, 0xfb, 0xfe, 0x9d, 0xb4, 0xd3, 0xff,
+ 0xef, 0xff, 0xdf, 0xf7, 0x7f, 0xb7, 0xfd, 0xd5,
+ 0xa5, 0x77, 0x40, 0xff, 0x9c, 0xc1, 0x41, 0x2c,
+ 0x08, 0x20, 0x41, 0x00, 0x50, 0x40, 0x00, 0x80,
+ // Entry C0 - FF
+ 0xfb, 0x4a, 0xf2, 0x9f, 0xb4, 0x42, 0x41, 0x96,
+ 0x1b, 0x14, 0x08, 0xf2, 0x2b, 0xe7, 0x17, 0x56,
+ 0x45, 0x7d, 0x0e, 0x1c, 0x37, 0x71, 0xf3, 0xef,
+ 0x97, 0xff, 0x5d, 0x38, 0x64, 0x08, 0x00, 0x10,
+ 0xbc, 0x87, 0xaf, 0xdf, 0xff, 0xf7, 0x73, 0x35,
+ 0x3e, 0x87, 0xc7, 0xdf, 0xff, 0x00, 0x81, 0x00,
+ 0xb0, 0x05, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x40, 0x00, 0x40, 0x92, 0x21, 0x50, 0xb1, 0x5d,
+ // Entry 100 - 13F
+ 0xfd, 0xdc, 0xbe, 0x5e, 0x00, 0x00, 0x02, 0x64,
+ 0x0d, 0x19, 0x41, 0xdf, 0x79, 0x22, 0x00, 0x00,
+ 0x00, 0x5e, 0x64, 0xdc, 0x24, 0xe5, 0xd9, 0xe3,
+ 0xfe, 0xff, 0xfd, 0xcb, 0x9f, 0x14, 0x01, 0x0c,
+ 0x86, 0x00, 0xd1, 0x00, 0xf0, 0xc5, 0x67, 0x5f,
+ 0x56, 0x89, 0x5e, 0xb5, 0x6c, 0xaf, 0x03, 0x00,
+ 0x02, 0x00, 0x00, 0x00, 0xc0, 0x37, 0xda, 0x56,
+ 0x90, 0x69, 0x01, 0x2c, 0x96, 0x69, 0x20, 0xfb,
+ // Entry 140 - 17F
+ 0xff, 0x3f, 0x00, 0x00, 0x00, 0x01, 0x08, 0x16,
+ 0x01, 0x00, 0x00, 0xb0, 0x14, 0x03, 0x50, 0x06,
+ 0x0a, 0x00, 0x01, 0x00, 0x00, 0x00, 0x11, 0x09,
+ 0x00, 0x00, 0x60, 0x10, 0x00, 0x00, 0x00, 0x10,
+ 0x00, 0x00, 0x44, 0x00, 0x00, 0x10, 0x00, 0x04,
+ 0x08, 0x00, 0x00, 0x04, 0x00, 0x80, 0x28, 0x04,
+ 0x00, 0x00, 0x50, 0xd5, 0x2d, 0x00, 0x64, 0x35,
+ 0x24, 0x52, 0xf4, 0xd4, 0xbd, 0x62, 0xc9, 0x03,
+ // Entry 180 - 1BF
+ 0x00, 0x80, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, 0x13, 0x39, 0x01, 0xdd, 0x57, 0x98,
+ 0x21, 0x18, 0x81, 0x00, 0x00, 0x01, 0x40, 0x82,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x40, 0x00, 0x44, 0x00, 0x00, 0x80, 0xea,
+ 0xa9, 0x39, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
+ // Entry 1C0 - 1FF
+ 0x00, 0x01, 0x28, 0x05, 0x00, 0x00, 0x00, 0x00,
+ 0x04, 0x20, 0x04, 0xa6, 0x00, 0x04, 0x00, 0x00,
+ 0x81, 0x50, 0x00, 0x00, 0x00, 0x11, 0x84, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x55,
+ 0x02, 0x10, 0x08, 0x04, 0x00, 0x00, 0x00, 0x40,
+ 0x30, 0x83, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1e, 0xcd, 0xbf, 0x7e, 0xbf,
+ // Entry 200 - 23F
+ 0xdf, 0xc3, 0x83, 0x82, 0xc0, 0xfb, 0x57, 0x27,
+ 0xcd, 0x55, 0xe7, 0x01, 0x00, 0x20, 0xb2, 0xc5,
+ 0xa4, 0x45, 0x25, 0x9b, 0x02, 0xcf, 0xe0, 0xdf,
+ 0x03, 0x44, 0x08, 0x10, 0x01, 0x04, 0x01, 0xe3,
+ 0x92, 0x54, 0xdb, 0x28, 0xd1, 0x5f, 0xf6, 0x6d,
+ 0x79, 0xed, 0x1c, 0x7d, 0x04, 0x08, 0x00, 0x01,
+ 0x21, 0x12, 0x6c, 0x5f, 0xdd, 0x0e, 0x85, 0x4f,
+ 0x40, 0x40, 0x00, 0x04, 0xf1, 0xfd, 0x3d, 0x54,
+ // Entry 240 - 27F
+ 0xe8, 0x03, 0xb4, 0x27, 0x23, 0x0d, 0x00, 0x00,
+ 0x20, 0x7b, 0x38, 0x02, 0x05, 0x84, 0x00, 0xf0,
+ 0xbb, 0x7e, 0x5a, 0x00, 0x18, 0x04, 0x81, 0x00,
+ 0x00, 0x00, 0x80, 0x10, 0x90, 0x1c, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x10, 0x40, 0x00, 0x04,
+ 0x08, 0xa0, 0x70, 0xa5, 0x0c, 0x40, 0x00, 0x00,
+ 0x11, 0x04, 0x04, 0x68, 0x00, 0x20, 0x70, 0xff,
+ 0x7b, 0x7f, 0x60, 0x00, 0x05, 0x9b, 0xdd, 0x66,
+ // Entry 280 - 2BF
+ 0x03, 0x00, 0x11, 0x00, 0x00, 0x00, 0x40, 0x05,
+ 0xb5, 0xb6, 0x80, 0x08, 0x04, 0x00, 0x04, 0x51,
+ 0xe2, 0xef, 0xfd, 0x3f, 0x05, 0x09, 0x08, 0x05,
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x81, 0x00, 0x60,
+ 0xe5, 0x48, 0x00, 0x81, 0x20, 0xc0, 0x05, 0x80,
+ 0x03, 0x00, 0x00, 0x00, 0xcc, 0x50, 0x40, 0x04,
+ 0x84, 0x47, 0x84, 0x40, 0x20, 0x10, 0x00, 0x20,
+ // Entry 2C0 - 2FF
+ 0x02, 0x50, 0x80, 0x11, 0x00, 0x91, 0x6c, 0xe2,
+ 0x50, 0x27, 0x1d, 0x11, 0x29, 0x06, 0x59, 0xe9,
+ 0x33, 0x08, 0x00, 0x20, 0x04, 0x40, 0x10, 0x00,
+ 0x00, 0x00, 0x50, 0x44, 0x92, 0x49, 0xd6, 0x5d,
+ 0xa7, 0x81, 0x47, 0x97, 0xfb, 0x00, 0x10, 0x00,
+ 0x08, 0x00, 0x80, 0x00, 0x40, 0x04, 0x00, 0x01,
+ 0x02, 0x00, 0x01, 0x40, 0x80, 0x00, 0x00, 0x08,
+ 0xd8, 0xeb, 0xf6, 0x39, 0xc4, 0x89, 0x12, 0x00,
+ // Entry 300 - 33F
+ 0x00, 0x0c, 0x04, 0x01, 0x20, 0x20, 0xdd, 0xa0,
+ 0x01, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00,
+ 0x04, 0x10, 0xd0, 0x9d, 0x95, 0x13, 0x04, 0x80,
+ 0x00, 0x01, 0xd0, 0x12, 0x40, 0x00, 0x10, 0xb0,
+ 0x10, 0x62, 0x4c, 0xd2, 0x02, 0x01, 0x4a, 0x00,
+ 0x46, 0x04, 0x00, 0x08, 0x02, 0x00, 0x20, 0x80,
+ 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00,
+ 0x00, 0xf0, 0xd8, 0x6f, 0x15, 0x02, 0x08, 0x00,
+ // Entry 340 - 37F
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x10, 0x01,
+ 0x00, 0x10, 0x00, 0x00, 0x00, 0xf0, 0x84, 0xe3,
+ 0xdd, 0xbf, 0xf9, 0xf9, 0x3b, 0x7f, 0x7f, 0xdb,
+ 0xfd, 0xfc, 0xfe, 0xdf, 0xff, 0xfd, 0xff, 0xf6,
+ 0xfb, 0xfc, 0xf7, 0x1f, 0xff, 0xb3, 0x6c, 0xff,
+ 0xd9, 0xad, 0xdf, 0xfe, 0xef, 0xba, 0xdf, 0xff,
+ 0xff, 0xff, 0xb7, 0xdd, 0x7d, 0xbf, 0xab, 0xff,
+ 0xfd, 0xfd, 0xdf, 0x2f, 0x9c, 0xdf, 0xf3, 0x6f,
+ // Entry 380 - 3BF
+ 0xdf, 0xdd, 0xff, 0xfb, 0xee, 0xd2, 0xab, 0x5f,
+ 0xd5, 0xdf, 0x7f, 0xff, 0xeb, 0xff, 0xe4, 0x4d,
+ 0xf9, 0xff, 0xfe, 0xf7, 0xfd, 0xdf, 0xfb, 0xbf,
+ 0xee, 0xdb, 0x6f, 0xef, 0xff, 0x7f, 0xff, 0xff,
+ 0xf7, 0x5f, 0xd3, 0x3b, 0xfd, 0xd9, 0xdf, 0xeb,
+ 0xbc, 0x08, 0x05, 0x24, 0xff, 0x07, 0x70, 0xfe,
+ 0xe6, 0x5e, 0x00, 0x08, 0x00, 0x83, 0x3d, 0x1b,
+ 0x06, 0xe6, 0x72, 0x60, 0xd1, 0x3c, 0x7f, 0x44,
+ // Entry 3C0 - 3FF
+ 0x02, 0x30, 0x9f, 0x7a, 0x16, 0xbd, 0x7f, 0x57,
+ 0xf2, 0xff, 0x31, 0xff, 0xf2, 0x1e, 0x90, 0xf7,
+ 0xf1, 0xf9, 0x45, 0x80, 0x01, 0x02, 0x00, 0x00,
+ 0x40, 0x54, 0x9f, 0x8a, 0xd9, 0xd9, 0x0e, 0x11,
+ 0x84, 0x51, 0xc0, 0xf3, 0xfb, 0x47, 0x00, 0x01,
+ 0x05, 0xd1, 0x50, 0x58, 0x00, 0x00, 0x00, 0x10,
+ 0x04, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x17, 0xd2,
+ 0xb9, 0xfd, 0xfc, 0xba, 0xfe, 0xef, 0xc7, 0xbe,
+ // Entry 400 - 43F
+ 0x53, 0x6f, 0xdf, 0xe7, 0xdb, 0x65, 0xbb, 0x7f,
+ 0xfa, 0xff, 0x77, 0xf3, 0xef, 0xbf, 0xfd, 0xf7,
+ 0xdf, 0xdf, 0x9b, 0x7f, 0xff, 0xff, 0x7f, 0x6f,
+ 0xf7, 0xfb, 0xeb, 0xdf, 0xbc, 0xff, 0xbf, 0x6b,
+ 0x7b, 0xfb, 0xff, 0xce, 0x76, 0xbd, 0xf7, 0xf7,
+ 0xdf, 0xdc, 0xf7, 0xf7, 0xff, 0xdf, 0xf3, 0xfe,
+ 0xef, 0xff, 0xff, 0xff, 0xb6, 0x7f, 0x7f, 0xde,
+ 0xf7, 0xb9, 0xeb, 0x77, 0xff, 0xfb, 0xbf, 0xdf,
+ // Entry 440 - 47F
+ 0xfd, 0xfe, 0xfb, 0xff, 0xfe, 0xeb, 0x1f, 0x7d,
+ 0x2f, 0xfd, 0xb6, 0xb5, 0xa5, 0xfc, 0xff, 0xfd,
+ 0x7f, 0x4e, 0xbf, 0x8e, 0xae, 0xff, 0xee, 0xdf,
+ 0x7f, 0xf7, 0x73, 0x02, 0x02, 0x04, 0xfc, 0xf7,
+ 0xff, 0xb7, 0xd7, 0xef, 0xfe, 0xcd, 0xf5, 0xce,
+ 0xe2, 0x8e, 0xe7, 0xbf, 0xb7, 0xff, 0x56, 0xbd,
+ 0xcd, 0xff, 0xfb, 0xff, 0xdf, 0xd7, 0xea, 0xff,
+ 0xe5, 0x5f, 0x6d, 0x0f, 0xa7, 0x51, 0x04, 0x44,
+ // Entry 480 - 4BF
+ 0x13, 0x50, 0x5d, 0xaf, 0xa6, 0xfd, 0x99, 0xfb,
+ 0x63, 0x1d, 0x53, 0xff, 0xef, 0xb7, 0x35, 0x20,
+ 0x14, 0x00, 0x55, 0x51, 0x82, 0x65, 0xf5, 0x41,
+ 0xe2, 0xff, 0xfc, 0xdf, 0x00, 0x05, 0xc5, 0x05,
+ 0x00, 0x22, 0x00, 0x74, 0x69, 0x10, 0x08, 0x04,
+ 0x41, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x51, 0x20, 0x05, 0x04, 0x01, 0x00, 0x00,
+ 0x06, 0x01, 0x20, 0x00, 0x18, 0x01, 0x92, 0xb1,
+ // Entry 4C0 - 4FF
+ 0xfd, 0x47, 0x49, 0x06, 0x95, 0x06, 0x57, 0xed,
+ 0xfb, 0x4c, 0x1c, 0x6b, 0x83, 0x04, 0x62, 0x40,
+ 0x00, 0x11, 0x42, 0x00, 0x00, 0x00, 0x54, 0x83,
+ 0xb8, 0x4f, 0x10, 0x8c, 0x89, 0x46, 0xde, 0xf7,
+ 0x13, 0x31, 0x00, 0x20, 0x00, 0x00, 0x00, 0x90,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x10, 0x00,
+ 0x01, 0x00, 0x00, 0xf0, 0x5b, 0xf4, 0xbe, 0x3d,
+ 0xba, 0xcf, 0xf7, 0xaf, 0x42, 0x04, 0x84, 0x41,
+ // Entry 500 - 53F
+ 0x30, 0xff, 0x79, 0x72, 0x04, 0x00, 0x00, 0x49,
+ 0x2d, 0x14, 0x27, 0x57, 0xed, 0xf1, 0x3f, 0xe7,
+ 0x3f, 0x00, 0x00, 0x02, 0xc6, 0xa0, 0x1e, 0xf8,
+ 0xbb, 0xff, 0xfd, 0xfb, 0xb7, 0xfd, 0xe5, 0xf7,
+ 0xfd, 0xfc, 0xd5, 0xed, 0x47, 0xf4, 0x7e, 0x10,
+ 0x01, 0x01, 0x84, 0x6d, 0xff, 0xf7, 0xdd, 0xf9,
+ 0x5b, 0x05, 0x86, 0xed, 0xf5, 0x77, 0xbd, 0x3c,
+ 0x00, 0x00, 0x00, 0x42, 0x71, 0x42, 0x00, 0x40,
+ // Entry 540 - 57F
+ 0x00, 0x00, 0x01, 0x43, 0x19, 0x00, 0x08, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ // Entry 580 - 5BF
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xab, 0xbd, 0xe7, 0x57, 0xee, 0x13, 0x5d,
+ 0x09, 0xc1, 0x40, 0x21, 0xfa, 0x17, 0x01, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0xf0, 0xce, 0xfb, 0xbf,
+ 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
+ 0x00, 0x30, 0x15, 0xa3, 0x10, 0x00, 0x00, 0x00,
+ 0x11, 0x04, 0x16, 0x00, 0x00, 0x02, 0x00, 0x81,
+ 0xa3, 0x01, 0x50, 0x00, 0x00, 0x83, 0x11, 0x40,
+ // Entry 5C0 - 5FF
+ 0x00, 0x00, 0x00, 0xf0, 0xdd, 0x7b, 0x3e, 0x02,
+ 0xaa, 0x10, 0x5d, 0x98, 0x52, 0x00, 0x80, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x02, 0x02,
+ 0x19, 0x00, 0x10, 0x02, 0x10, 0x61, 0x5a, 0x9d,
+ 0x31, 0x00, 0x00, 0x00, 0x01, 0x10, 0x02, 0x20,
+ 0x00, 0x00, 0x01, 0x00, 0x42, 0x00, 0x20, 0x00,
+ 0x00, 0x1f, 0xdf, 0xf2, 0xb9, 0xff, 0xfd, 0x3f,
+ 0x1f, 0x18, 0xcf, 0x9c, 0xbf, 0xaf, 0x5f, 0xfe,
+ // Entry 600 - 63F
+ 0x7b, 0x4b, 0x40, 0x10, 0xe1, 0xfd, 0xaf, 0xd9,
+ 0xb7, 0xf6, 0xfb, 0xb3, 0xc7, 0xff, 0x6f, 0xf1,
+ 0x73, 0xb1, 0x7f, 0x9f, 0x7f, 0xbd, 0xfc, 0xb7,
+ 0xee, 0x1c, 0xfa, 0xcb, 0xef, 0xdd, 0xf9, 0xbd,
+ 0x6e, 0xae, 0x55, 0xfd, 0x6e, 0x81, 0x76, 0x1f,
+ 0xd4, 0x77, 0xf5, 0x7d, 0xfb, 0xff, 0xeb, 0xfe,
+ 0xbe, 0x5f, 0x46, 0x1b, 0xe9, 0x5f, 0x50, 0x18,
+ 0x02, 0xfa, 0xf7, 0x9d, 0x15, 0x97, 0x05, 0x0f,
+ // Entry 640 - 67F
+ 0x75, 0xc4, 0x7d, 0x81, 0x82, 0xf1, 0x57, 0x6c,
+ 0xff, 0xe4, 0xef, 0x6f, 0xff, 0xfc, 0xdd, 0xde,
+ 0xfc, 0xfd, 0x76, 0x5f, 0x7a, 0x1f, 0x00, 0x98,
+ 0x02, 0xfb, 0xa3, 0xef, 0xf3, 0xd6, 0xf2, 0xff,
+ 0xb9, 0xda, 0x7d, 0x50, 0x1e, 0x15, 0x7b, 0xb4,
+ 0xf5, 0x3e, 0xff, 0xff, 0xf1, 0xf7, 0xff, 0xe7,
+ 0x5f, 0xff, 0xff, 0x9e, 0xdb, 0xf6, 0xd7, 0xb9,
+ 0xef, 0x27, 0x80, 0xbb, 0xc5, 0xff, 0xff, 0xe3,
+ // Entry 680 - 6BF
+ 0x97, 0x9d, 0xbf, 0x9f, 0xf7, 0xc7, 0xfd, 0x37,
+ 0xce, 0x7f, 0x04, 0x1d, 0x53, 0x7f, 0xf8, 0xda,
+ 0x5d, 0xce, 0x7d, 0x06, 0xb9, 0xea, 0x69, 0xa0,
+ 0x1a, 0x20, 0x00, 0x30, 0x02, 0x04, 0x24, 0x08,
+ 0x04, 0x00, 0x00, 0x40, 0xd4, 0x02, 0x04, 0x00,
+ 0x00, 0x04, 0x00, 0x04, 0x00, 0x20, 0x01, 0x06,
+ 0x50, 0x00, 0x08, 0x00, 0x00, 0x00, 0x24, 0x00,
+ 0x04, 0x00, 0x10, 0x8c, 0x58, 0xd5, 0x0d, 0x0f,
+ // Entry 6C0 - 6FF
+ 0x14, 0x4d, 0xf1, 0x16, 0x44, 0xd1, 0x42, 0x08,
+ 0x40, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00,
+ 0x00, 0xdc, 0xfb, 0xcb, 0x0e, 0x58, 0x08, 0x41,
+ 0x04, 0x20, 0x04, 0x00, 0x30, 0x12, 0x40, 0x00,
+ 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x80, 0x10, 0x10, 0xab,
+ 0x6d, 0x93, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x25, 0x00, 0x00,
+ // Entry 700 - 73F
+ 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00,
+ 0x80, 0x86, 0xc2, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0xdf, 0x18, 0x00, 0x00, 0x02, 0xf0, 0xfd, 0x79,
+ 0x3b, 0x00, 0x25, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x03, 0x00, 0x09, 0x20, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 740 - 77F
+ 0x00, 0x00, 0x00, 0xef, 0xd5, 0xfd, 0xcf, 0x7e,
+ 0xa0, 0x11, 0x00, 0x00, 0x00, 0x92, 0x01, 0x44,
+ 0xcd, 0xf9, 0x5c, 0x00, 0x01, 0x00, 0x30, 0x04,
+ 0x04, 0x55, 0x00, 0x01, 0x04, 0xf4, 0x3f, 0x4a,
+ 0x01, 0x00, 0x00, 0xb0, 0x80, 0x00, 0x55, 0x55,
+ 0x97, 0x7c, 0x9f, 0x31, 0xcc, 0x68, 0xd1, 0x03,
+ 0xd5, 0x57, 0x27, 0x14, 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x2c, 0xf7, 0xcb, 0x1f, 0x14, 0x60,
+ // Entry 780 - 7BF
+ 0x03, 0x68, 0x01, 0x10, 0x8b, 0x38, 0x8a, 0x01,
+ 0x00, 0x00, 0x20, 0x00, 0x24, 0x44, 0x00, 0x00,
+ 0x10, 0x03, 0x11, 0x02, 0x01, 0x00, 0x00, 0xf0,
+ 0xf5, 0xff, 0xd5, 0x97, 0xbc, 0x70, 0xd6, 0x78,
+ 0x78, 0x15, 0x50, 0x00, 0xa4, 0x84, 0xa9, 0x41,
+ 0x00, 0x00, 0x00, 0x6b, 0x39, 0x52, 0x74, 0x00,
+ 0xe8, 0x30, 0x90, 0x6a, 0x92, 0x00, 0x00, 0x02,
+ 0xff, 0xef, 0xff, 0x4b, 0x85, 0x53, 0xf4, 0xed,
+ // Entry 7C0 - 7FF
+ 0xdd, 0xbf, 0x72, 0x19, 0xc7, 0x0c, 0xd5, 0x42,
+ 0x54, 0xdd, 0x77, 0x14, 0x00, 0x80, 0x40, 0x56,
+ 0xcc, 0x16, 0x9e, 0xea, 0x35, 0x7d, 0xef, 0xff,
+ 0xbd, 0xa4, 0xaf, 0x01, 0x44, 0x18, 0x01, 0x4d,
+ 0x4e, 0x4a, 0x08, 0x50, 0x28, 0x30, 0xe0, 0x80,
+ 0x10, 0x20, 0x24, 0x00, 0xff, 0x2f, 0xd3, 0x60,
+ 0xfe, 0x01, 0x02, 0x88, 0x0a, 0x40, 0x16, 0x01,
+ 0x01, 0x15, 0x2b, 0x3c, 0x01, 0x00, 0x00, 0x10,
+ // Entry 800 - 83F
+ 0x90, 0x49, 0x41, 0x02, 0x02, 0x01, 0xe1, 0xbf,
+ 0xbf, 0x03, 0x00, 0x00, 0x10, 0xd4, 0xa3, 0xd1,
+ 0x40, 0x9c, 0x44, 0xdf, 0xf5, 0x8f, 0x66, 0xb3,
+ 0x55, 0x20, 0xd4, 0xc1, 0xd8, 0x30, 0x3d, 0x80,
+ 0x00, 0x00, 0x00, 0x04, 0xd4, 0x11, 0xc5, 0x84,
+ 0x2e, 0x50, 0x00, 0x22, 0x50, 0x6e, 0xbd, 0x93,
+ 0x07, 0x00, 0x20, 0x10, 0x84, 0xb2, 0x45, 0x10,
+ 0x06, 0x44, 0x00, 0x00, 0x12, 0x02, 0x11, 0x00,
+ // Entry 840 - 87F
+ 0xf0, 0xfb, 0xfd, 0x3f, 0x05, 0x00, 0x12, 0x81,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, 0x02, 0x28,
+ 0x84, 0x00, 0x23, 0xc0, 0x23, 0x24, 0x00, 0x00,
+ 0x00, 0xcb, 0xe4, 0x3a, 0x42, 0x88, 0x14, 0xf1,
+ 0xef, 0xff, 0x7f, 0x12, 0x01, 0x01, 0x84, 0x50,
+ 0x07, 0xfc, 0xff, 0xff, 0x0f, 0x01, 0x00, 0x40,
+ 0x10, 0x38, 0x01, 0x01, 0x1c, 0x12, 0x40, 0xe1,
+ // Entry 880 - 8BF
+ 0x76, 0x16, 0x08, 0x03, 0x10, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x24,
+ 0x0a, 0x00, 0x80, 0x00, 0x00,
+}
+
+// altLangISO3 holds an alphabetically sorted list of 3-letter language code alternatives
+// to 2-letter language codes that cannot be derived using the method described above.
+// Each 3-letter code is followed by its 1-byte langID.
+var altLangISO3 tag.Index = "---\x00cor\x00hbs\x01heb\x02kin\x03spa\x04yid\x05\xff\xff\xff\xff"
+
+// altLangIndex is used to convert indexes in altLangISO3 to langIDs.
+// Size: 12 bytes, 6 elements
+var altLangIndex = [6]uint16{
+ 0x0278, 0x03fd, 0x01f3, 0x03dc, 0x0139, 0x0200,
+}
+
+// langAliasMap maps langIDs to their suggested replacements.
+// Size: 644 bytes, 161 elements
+var langAliasMap = [161]fromTo{
+ 0: {from: 0x81, to: 0x87},
+ 1: {from: 0x181, to: 0x1a7},
+ 2: {from: 0x1eb, to: 0x1da},
+ 3: {from: 0x1f3, to: 0x1b5},
+ 4: {from: 0x200, to: 0x508},
+ 5: {from: 0x207, to: 0x206},
+ 6: {from: 0x307, to: 0x3d3},
+ 7: {from: 0x33e, to: 0x366},
+ 8: {from: 0x3fd, to: 0x428},
+ 9: {from: 0x470, to: 0x14e},
+ 10: {from: 0x486, to: 0x447},
+ 11: {from: 0x498, to: 0x20},
+ 12: {from: 0x533, to: 0x539},
+ 13: {from: 0x584, to: 0x129},
+ 14: {from: 0x625, to: 0x1ea6},
+ 15: {from: 0x646, to: 0x427},
+ 16: {from: 0x657, to: 0x427},
+ 17: {from: 0x6e2, to: 0x39},
+ 18: {from: 0x6ed, to: 0x1d0},
+ 19: {from: 0x733, to: 0x2196},
+ 20: {from: 0x7a8, to: 0x55},
+ 21: {from: 0x7ae, to: 0x2990},
+ 22: {from: 0x7ba, to: 0x57},
+ 23: {from: 0x7db, to: 0x140},
+ 24: {from: 0x801, to: 0x59},
+ 25: {from: 0x80a, to: 0x8c},
+ 26: {from: 0x873, to: 0x805},
+ 27: {from: 0x8b8, to: 0xed8},
+ 28: {from: 0x9e4, to: 0x328},
+ 29: {from: 0xa2b, to: 0x2bc},
+ 30: {from: 0xa32, to: 0xbd},
+ 31: {from: 0xab3, to: 0x3317},
+ 32: {from: 0xb2d, to: 0x51f},
+ 33: {from: 0xb6a, to: 0x264f},
+ 34: {from: 0xb73, to: 0xbb8},
+ 35: {from: 0xb90, to: 0x444},
+ 36: {from: 0xbb1, to: 0x421e},
+ 37: {from: 0xbb4, to: 0x51f},
+ 38: {from: 0xbf3, to: 0x2d9c},
+ 39: {from: 0xc23, to: 0x3176},
+ 40: {from: 0xcae, to: 0xf0},
+ 41: {from: 0xcfd, to: 0xf6},
+ 42: {from: 0xdbd, to: 0x116},
+ 43: {from: 0xdcc, to: 0x324},
+ 44: {from: 0xded, to: 0xdf0},
+ 45: {from: 0xdf3, to: 0x526},
+ 46: {from: 0xed4, to: 0x204f},
+ 47: {from: 0xee3, to: 0x2e8f},
+ 48: {from: 0xf2e, to: 0x35e},
+ 49: {from: 0x10c5, to: 0x13b},
+ 50: {from: 0x10f9, to: 0x2c7},
+ 51: {from: 0x1195, to: 0x1e4},
+ 52: {from: 0x126e, to: 0x20},
+ 53: {from: 0x1419, to: 0x159},
+ 54: {from: 0x1465, to: 0x149},
+ 55: {from: 0x1514, to: 0xd90},
+ 56: {from: 0x1518, to: 0x387},
+ 57: {from: 0x1527, to: 0x16ba},
+ 58: {from: 0x1575, to: 0x208},
+ 59: {from: 0x1578, to: 0x109},
+ 60: {from: 0x1598, to: 0x3ca4},
+ 61: {from: 0x165f, to: 0x195},
+ 62: {from: 0x16bd, to: 0x131},
+ 63: {from: 0x16f5, to: 0x29ed},
+ 64: {from: 0x170d, to: 0x18e},
+ 65: {from: 0x171c, to: 0xf34},
+ 66: {from: 0x176f, to: 0x1519},
+ 67: {from: 0x17fe, to: 0x17ab},
+ 68: {from: 0x180b, to: 0x18e8},
+ 69: {from: 0x187f, to: 0x42c},
+ 70: {from: 0x196e, to: 0x1cf6},
+ 71: {from: 0x1a69, to: 0x2ba5},
+ 72: {from: 0x1a7f, to: 0x1f0},
+ 73: {from: 0x1b4f, to: 0x1f2},
+ 74: {from: 0x1b7b, to: 0x150a},
+ 75: {from: 0x202d, to: 0x37a6},
+ 76: {from: 0x2032, to: 0x20d2},
+ 77: {from: 0x204f, to: 0x302},
+ 78: {from: 0x20d8, to: 0x26b},
+ 79: {from: 0x20e3, to: 0x25a},
+ 80: {from: 0x20e7, to: 0x225},
+ 81: {from: 0x20ee, to: 0x24d},
+ 82: {from: 0x2104, to: 0x21e0},
+ 83: {from: 0x212a, to: 0x274},
+ 84: {from: 0x218e, to: 0x11d},
+ 85: {from: 0x21c3, to: 0x1556},
+ 86: {from: 0x21db, to: 0x4fa},
+ 87: {from: 0x21e9, to: 0x495},
+ 88: {from: 0x2222, to: 0x11d},
+ 89: {from: 0x222c, to: 0x11d},
+ 90: {from: 0x2257, to: 0x91f},
+ 91: {from: 0x230b, to: 0x321b},
+ 92: {from: 0x2377, to: 0x335a},
+ 93: {from: 0x2467, to: 0x2be},
+ 94: {from: 0x24d9, to: 0x2f6},
+ 95: {from: 0x24e5, to: 0x2f1},
+ 96: {from: 0x24ef, to: 0x316},
+ 97: {from: 0x2545, to: 0xb50},
+ 98: {from: 0x259e, to: 0xe0},
+ 99: {from: 0x2633, to: 0x2c7},
+ 100: {from: 0x26be, to: 0x26a9},
+ 101: {from: 0x26ee, to: 0x3bf},
+ 102: {from: 0x271c, to: 0x3ca4},
+ 103: {from: 0x275a, to: 0x26a9},
+ 104: {from: 0x277e, to: 0x434d},
+ 105: {from: 0x28e4, to: 0x282c},
+ 106: {from: 0x2909, to: 0x348},
+ 107: {from: 0x297b, to: 0x2d9c},
+ 108: {from: 0x2b0f, to: 0x384},
+ 109: {from: 0x2bf1, to: 0x38c},
+ 110: {from: 0x2c34, to: 0x3ca4},
+ 111: {from: 0x2cf1, to: 0x3b5},
+ 112: {from: 0x2d08, to: 0x58c},
+ 113: {from: 0x2d3c, to: 0x143},
+ 114: {from: 0x2d3d, to: 0x143},
+ 115: {from: 0x2df4, to: 0x2e8},
+ 116: {from: 0x2dfd, to: 0x19c1},
+ 117: {from: 0x2e0f, to: 0x2d8a},
+ 118: {from: 0x2e16, to: 0x289},
+ 119: {from: 0x2e49, to: 0x7c},
+ 120: {from: 0x2e5a, to: 0x2277},
+ 121: {from: 0x2e95, to: 0x2e90},
+ 122: {from: 0x2ee4, to: 0x2ecc},
+ 123: {from: 0x3188, to: 0x3bb},
+ 124: {from: 0x335b, to: 0x3383},
+ 125: {from: 0x341f, to: 0x3d3},
+ 126: {from: 0x34e3, to: 0x18c5},
+ 127: {from: 0x35db, to: 0x408},
+ 128: {from: 0x364d, to: 0x23e},
+ 129: {from: 0x366b, to: 0x3ea},
+ 130: {from: 0x36f2, to: 0x43b},
+ 131: {from: 0x37b5, to: 0x11d},
+ 132: {from: 0x380b, to: 0x38e7},
+ 133: {from: 0x3820, to: 0x2c90},
+ 134: {from: 0x3824, to: 0xa7},
+ 135: {from: 0x3827, to: 0x321d},
+ 136: {from: 0x3861, to: 0x399b},
+ 137: {from: 0x3887, to: 0x3fb5},
+ 138: {from: 0x389a, to: 0x39cc},
+ 139: {from: 0x38a9, to: 0x1f99},
+ 140: {from: 0x38aa, to: 0x2e8f},
+ 141: {from: 0x3951, to: 0x474},
+ 142: {from: 0x3b43, to: 0xd86},
+ 143: {from: 0x3b6d, to: 0x132},
+ 144: {from: 0x3c8e, to: 0x4b2},
+ 145: {from: 0x3fb2, to: 0xfc},
+ 146: {from: 0x41fd, to: 0xa86},
+ 147: {from: 0x42b3, to: 0x568},
+ 148: {from: 0x42ee, to: 0x3f55},
+ 149: {from: 0x436d, to: 0x251},
+ 150: {from: 0x43c0, to: 0x36c0},
+ 151: {from: 0x43c2, to: 0x10b},
+ 152: {from: 0x44a4, to: 0x3317},
+ 153: {from: 0x44d8, to: 0x508},
+ 154: {from: 0x45bf, to: 0x23fe},
+ 155: {from: 0x45d2, to: 0x26d1},
+ 156: {from: 0x4605, to: 0x48a3},
+ 157: {from: 0x46a3, to: 0x4695},
+ 158: {from: 0x4733, to: 0x473a},
+ 159: {from: 0x490b, to: 0x316},
+ 160: {from: 0x499c, to: 0x519},
+}
+
+// Size: 161 bytes, 161 elements
+var langAliasTypes = [161]langAliasType{
+ // Entry 0 - 3F
+ 1, 0, 0, 0, 0, 0, 0, 1, 2, 2, 0, 1, 0, 0, 1, 2,
+ 1, 1, 2, 0, 1, 0, 1, 2, 1, 1, 0, 0, 2, 1, 1, 0,
+ 2, 0, 0, 1, 0, 1, 0, 0, 1, 2, 1, 1, 1, 1, 0, 0,
+ 2, 1, 1, 1, 1, 2, 1, 0, 1, 1, 2, 2, 0, 1, 2, 0,
+ // Entry 40 - 7F
+ 1, 0, 1, 1, 1, 1, 0, 0, 2, 1, 0, 0, 0, 1, 1, 1,
+ 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 2, 2,
+ 2, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1,
+ 0, 2, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 2,
+ // Entry 80 - BF
+ 1, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 1, 0,
+ 1, 2, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1,
+ 1,
+}
+
+const (
+ _Latn = 82
+ _Hani = 50
+ _Hans = 52
+ _Hant = 53
+ _Qaaa = 131
+ _Qaai = 139
+ _Qabx = 180
+ _Zinh = 224
+ _Zyyy = 229
+ _Zzzz = 230
+)
+
+// script is an alphabetically sorted list of ISO 15924 codes. The index
+// of the script in the string, divided by 4, is the internal scriptID.
+var script tag.Index = "" + // Size: 928 bytes
+ "----AdlmAfakAghbAhomArabAranArmiArmnAvstBaliBamuBassBatkBengBhksBlisBopo" +
+ "BrahBraiBugiBuhdCakmCansCariChamCherCirtCoptCprtCyrlCyrsDevaDsrtDuplEgyd" +
+ "EgyhEgypElbaEthiGeokGeorGlagGothGranGrekGujrGuruHanbHangHaniHanoHansHant" +
+ "HatrHebrHiraHluwHmngHrktHungIndsItalJamoJavaJpanJurcKaliKanaKharKhmrKhoj" +
+ "KitlKitsKndaKoreKpelKthiLanaLaooLatfLatgLatnLekeLepcLimbLinaLinbLisuLoma" +
+ "LyciLydiMahjMandManiMarcMayaMendMercMeroMlymModiMongMoonMrooMteiMultMymr" +
+ "NarbNbatNewaNkgbNkooNshuOgamOlckOrkhOryaOsgeOsmaPalmPaucPermPhagPhliPhlp" +
+ "PhlvPhnxPiqdPlrdPrtiQaaaQaabQaacQaadQaaeQaafQaagQaahQaaiQaajQaakQaalQaam" +
+ "QaanQaaoQaapQaaqQaarQaasQaatQaauQaavQaawQaaxQaayQaazQabaQabbQabcQabdQabe" +
+ "QabfQabgQabhQabiQabjQabkQablQabmQabnQaboQabpQabqQabrQabsQabtQabuQabvQabw" +
+ "QabxRjngRoroRunrSamrSaraSarbSaurSgnwShawShrdSiddSindSinhSoraSundSyloSyrc" +
+ "SyreSyrjSyrnTagbTakrTaleTaluTamlTangTavtTeluTengTfngTglgThaaThaiTibtTirh" +
+ "UgarVaiiVispWaraWoleXpeoXsuxYiiiZinhZmthZsyeZsymZxxxZyyyZzzz\xff\xff\xff" +
+ "\xff"
+
+// suppressScript is an index from langID to the dominant script for that language,
+// if it exists. If a script is given, it should be suppressed from the language tag.
+// Size: 1319 bytes, 1319 elements
+var suppressScript = [1319]uint8{
+ // Entry 0 - 3F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 40 - 7F
+ 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00,
+ // Entry 80 - BF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry C0 - FF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x52, 0x00, 0x00,
+ // Entry 100 - 13F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xd4, 0x00, 0x00, 0x00,
+ 0x00, 0xd6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x2d, 0x00, 0x00, 0x52, 0x00, 0x00, 0x52,
+ 0x00, 0x52, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ // Entry 140 - 17F
+ 0x52, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x52, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 180 - 1BF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x2e, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x00, 0x20,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 1C0 - 1FF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x52, 0x52, 0x00, 0x52, 0x52, 0x00,
+ 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x52, 0x00, 0x37, 0x00, 0x00, 0x00, 0x00,
+ 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 200 - 23F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x1e, 0x00, 0x00, 0x52, 0x00, 0x00,
+ // Entry 240 - 27F
+ 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x4a, 0x00, 0x4b, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 280 - 2BF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x4f,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ // Entry 2C0 - 2FF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00,
+ 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00,
+ // Entry 300 - 33F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x52, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x6b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ // Entry 340 - 37F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52,
+ 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x70, 0x52, 0x00, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ // Entry 380 - 3BF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x75, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ // Entry 3C0 - 3FF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x1e, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 400 - 43F
+ 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x52, 0x52, 0x00, 0x00, 0x00, 0x00,
+ // Entry 440 - 47F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xd5, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ // Entry 480 - 4BF
+ 0x52, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x00,
+ 0x00, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 4C0 - 4FF
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ // Entry 500 - 53F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x00,
+}
+
+const (
+ _001 = 1
+ _419 = 30
+ _BR = 64
+ _CA = 72
+ _ES = 109
+ _GB = 122
+ _MD = 187
+ _PT = 237
+ _UK = 305
+ _US = 308
+ _ZZ = 356
+ _XA = 322
+ _XC = 324
+ _XK = 332
+)
+
+// isoRegionOffset needs to be added to the index of regionISO to obtain the regionID
+// for 2-letter ISO codes. (The first isoRegionOffset regionIDs are reserved for
+// the UN.M49 codes used for groups.)
+const isoRegionOffset = 31
+
+// regionTypes defines the status of a region for various standards.
+// Size: 357 bytes, 357 elements
+var regionTypes = [357]uint8{
+ // Entry 0 - 3F
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ // Entry 40 - 7F
+ 0x06, 0x06, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x04, 0x00,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06,
+ 0x04, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06, 0x04,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06,
+ 0x04, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ // Entry 80 - BF
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x00, 0x04, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ // Entry C0 - FF
+ 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06,
+ 0x06, 0x06, 0x06, 0x00, 0x06, 0x04, 0x06, 0x06,
+ 0x06, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x00, 0x06,
+ 0x06, 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+ // Entry 100 - 13F
+ 0x05, 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x04, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x02, 0x06, 0x04, 0x06, 0x06, 0x06, 0x06,
+ 0x06, 0x00, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
+ // Entry 140 - 17F
+ 0x00, 0x06, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+ 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05, 0x05,
+ 0x05, 0x05, 0x05, 0x05, 0x04, 0x06, 0x06, 0x04,
+ 0x06, 0x06, 0x04, 0x06, 0x05,
+}
+
+// regionISO holds a list of alphabetically sorted 2-letter ISO region codes.
+// Each 2-letter codes is followed by two bytes with the following meaning:
+// - [A-Z}{2}: the first letter of the 2-letter code plus these two
+// letters form the 3-letter ISO code.
+// - 0, n: index into altRegionISO3.
+var regionISO tag.Index = "" + // Size: 1308 bytes
+ "AAAAACSCADNDAEREAFFGAGTGAIIAALLBAMRMANNTAOGOAQTAARRGASSMATUTAUUSAWBWAXLA" +
+ "AZZEBAIHBBRBBDGDBEELBFFABGGRBHHRBIDIBJENBLLMBMMUBNRNBOOLBQESBRRABSHSBTTN" +
+ "BUURBVVTBWWABYLRBZLZCAANCCCKCDODCFAFCGOGCHHECIIVCKOKCLHLCMMRCNHNCOOLCPPT" +
+ "CRRICS\x00\x00CTTECUUBCVPVCWUWCXXRCYYPCZZEDDDRDEEUDGGADJJIDKNKDMMADOOMDY" +
+ "HYDZZAEA ECCUEESTEGGYEHSHERRIESSPETTHEU\x00\x03EZ FIINFJJIFKLKFMSMFORO" +
+ "FQ\x00\x18FRRAFXXXGAABGBBRGDRDGEEOGFUFGGGYGHHAGIIBGLRLGMMBGNINGPLPGQNQGR" +
+ "RCGS\x00\x06GTTMGUUMGWNBGYUYHKKGHMMDHNNDHRRVHTTIHUUNHVVOIC IDDNIERLILSR" +
+ "IMMNINNDIOOTIQRQIRRNISSLITTAJEEYJMAMJOORJPPNJTTNKEENKGGZKHHMKIIRKM\x00" +
+ "\x09KNNAKP\x00\x0cKRORKWWTKY\x00\x0fKZAZLAAOLBBNLCCALIIELKKALRBRLSSOLTTU" +
+ "LUUXLVVALYBYMAARMCCOMDDAMENEMFAFMGDGMHHLMIIDMKKDMLLIMMMRMNNGMOACMPNPMQTQ" +
+ "MRRTMSSRMTLTMUUSMVDVMWWIMXEXMYYSMZOZNAAMNCCLNEERNFFKNGGANHHBNIICNLLDNOOR" +
+ "NPPLNQ\x00\x1eNRRUNTTZNUIUNZZLOMMNPAANPCCIPEERPFYFPGNGPHHLPKAKPLOLPM\x00" +
+ "\x12PNCNPRRIPSSEPTRTPUUSPWLWPYRYPZCZQAATQMMMQNNNQOOOQPPPQQQQQRRRQSSSQTTT" +
+ "QU\x00\x03QVVVQWWWQXXXQYYYQZZZREEURHHOROOURS\x00\x15RUUSRWWASAAUSBLBSCYC" +
+ "SDDNSEWESGGPSHHNSIVNSJJMSKVKSLLESMMRSNENSOOMSRURSSSDSTTPSUUNSVLVSXXMSYYR" +
+ "SZWZTAAATCCATDCDTF\x00\x18TGGOTHHATJJKTKKLTLLSTMKMTNUNTOONTPMPTRURTTTOTV" +
+ "UVTWWNTZZAUAKRUGGAUK UMMIUN USSAUYRYUZZBVAATVCCTVDDRVEENVGGBVIIRVNNMVU" +
+ "UTWFLFWKAKWSSMXAAAXBBBXCCCXDDDXEEEXFFFXGGGXHHHXIIIXJJJXKKKXLLLXMMMXNNNXO" +
+ "OOXPPPXQQQXRRRXSSSXTTTXUUUXVVVXWWWXXXXXYYYXZZZYDMDYEEMYT\x00\x1bYUUGZAAF" +
+ "ZMMBZRARZWWEZZZZ\xff\xff\xff\xff"
+
+// altRegionISO3 holds a list of 3-letter region codes that cannot be
+// mapped to 2-letter codes using the default algorithm. This is a short list.
+var altRegionISO3 string = "SCGQUUSGSCOMPRKCYMSPMSRBATFMYTATN"
+
+// altRegionIDs holds a list of regionIDs the positions of which match those
+// of the 3-letter ISO codes in altRegionISO3.
+// Size: 22 bytes, 11 elements
+var altRegionIDs = [11]uint16{
+ 0x0056, 0x006f, 0x0087, 0x00a7, 0x00a9, 0x00ac, 0x00e9, 0x0104,
+ 0x0120, 0x015e, 0x00db,
+}
+
+// Size: 80 bytes, 20 elements
+var regionOldMap = [20]fromTo{
+ 0: {from: 0x43, to: 0xc3},
+ 1: {from: 0x57, to: 0xa6},
+ 2: {from: 0x5e, to: 0x5f},
+ 3: {from: 0x65, to: 0x3a},
+ 4: {from: 0x78, to: 0x77},
+ 5: {from: 0x92, to: 0x36},
+ 6: {from: 0xa2, to: 0x132},
+ 7: {from: 0xc0, to: 0x132},
+ 8: {from: 0xd6, to: 0x13e},
+ 9: {from: 0xdb, to: 0x2a},
+ 10: {from: 0xee, to: 0x132},
+ 11: {from: 0xf1, to: 0xe1},
+ 12: {from: 0xfb, to: 0x6f},
+ 13: {from: 0x102, to: 0x163},
+ 14: {from: 0x129, to: 0x125},
+ 15: {from: 0x131, to: 0x7a},
+ 16: {from: 0x139, to: 0x13d},
+ 17: {from: 0x140, to: 0x132},
+ 18: {from: 0x15c, to: 0x15d},
+ 19: {from: 0x162, to: 0x4a},
+}
+
+// m49 maps regionIDs to UN.M49 codes. The first isoRegionOffset entries are
+// codes indicating collections of regions.
+// Size: 714 bytes, 357 elements
+var m49 = [357]int16{
+ // Entry 0 - 3F
+ 0, 1, 2, 3, 5, 9, 11, 13,
+ 14, 15, 17, 18, 19, 21, 29, 30,
+ 34, 35, 39, 53, 54, 57, 61, 142,
+ 143, 145, 150, 151, 154, 155, 419, 958,
+ 0, 20, 784, 4, 28, 660, 8, 51,
+ 530, 24, 10, 32, 16, 40, 36, 533,
+ 248, 31, 70, 52, 50, 56, 854, 100,
+ 48, 108, 204, 652, 60, 96, 68, 535,
+ // Entry 40 - 7F
+ 76, 44, 64, 104, 74, 72, 112, 84,
+ 124, 166, 180, 140, 178, 756, 384, 184,
+ 152, 120, 156, 170, 0, 188, 891, 296,
+ 192, 132, 531, 162, 196, 203, 278, 276,
+ 0, 262, 208, 212, 214, 204, 12, 0,
+ 218, 233, 818, 732, 232, 724, 231, 967,
+ 0, 246, 242, 238, 583, 234, 0, 250,
+ 249, 266, 826, 308, 268, 254, 831, 288,
+ // Entry 80 - BF
+ 292, 304, 270, 324, 312, 226, 300, 239,
+ 320, 316, 624, 328, 344, 334, 340, 191,
+ 332, 348, 854, 0, 360, 372, 376, 833,
+ 356, 86, 368, 364, 352, 380, 832, 388,
+ 400, 392, 581, 404, 417, 116, 296, 174,
+ 659, 408, 410, 414, 136, 398, 418, 422,
+ 662, 438, 144, 430, 426, 440, 442, 428,
+ 434, 504, 492, 498, 499, 663, 450, 584,
+ // Entry C0 - FF
+ 581, 807, 466, 104, 496, 446, 580, 474,
+ 478, 500, 470, 480, 462, 454, 484, 458,
+ 508, 516, 540, 562, 574, 566, 548, 558,
+ 528, 578, 524, 10, 520, 536, 570, 554,
+ 512, 591, 0, 604, 258, 598, 608, 586,
+ 616, 666, 612, 630, 275, 620, 581, 585,
+ 600, 591, 634, 959, 960, 961, 962, 963,
+ 964, 965, 966, 967, 968, 969, 970, 971,
+ // Entry 100 - 13F
+ 972, 638, 716, 642, 688, 643, 646, 682,
+ 90, 690, 729, 752, 702, 654, 705, 744,
+ 703, 694, 674, 686, 706, 740, 728, 678,
+ 810, 222, 534, 760, 748, 0, 796, 148,
+ 260, 768, 764, 762, 772, 626, 795, 788,
+ 776, 626, 792, 780, 798, 158, 834, 804,
+ 800, 826, 581, 0, 840, 858, 860, 336,
+ 670, 704, 862, 92, 850, 704, 548, 876,
+ // Entry 140 - 17F
+ 581, 882, 973, 974, 975, 976, 977, 978,
+ 979, 980, 981, 982, 983, 984, 985, 986,
+ 987, 988, 989, 990, 991, 992, 993, 994,
+ 995, 996, 997, 998, 720, 887, 175, 891,
+ 710, 894, 180, 716, 999,
+}
+
+// m49Index gives indexes into fromM49 based on the three most significant bits
+// of a 10-bit UN.M49 code. To search an UN.M49 code in fromM49, search in
+// fromM49[m49Index[msb39(code)]:m49Index[msb3(code)+1]]
+// for an entry where the first 7 bits match the 7 lsb of the UN.M49 code.
+// The region code is stored in the 9 lsb of the indexed value.
+// Size: 18 bytes, 9 elements
+var m49Index = [9]int16{
+ 0, 59, 107, 142, 180, 219, 258, 290,
+ 332,
+}
+
+// fromM49 contains entries to map UN.M49 codes to regions. See m49Index for details.
+// Size: 664 bytes, 332 elements
+var fromM49 = [332]uint16{
+ // Entry 0 - 3F
+ 0x0201, 0x0402, 0x0603, 0x0823, 0x0a04, 0x1026, 0x1205, 0x142a,
+ 0x1606, 0x1866, 0x1a07, 0x1c08, 0x1e09, 0x202c, 0x220a, 0x240b,
+ 0x260c, 0x2821, 0x2a0d, 0x3029, 0x3824, 0x3a0e, 0x3c0f, 0x3e31,
+ 0x402b, 0x4410, 0x4611, 0x482e, 0x4e12, 0x502d, 0x5841, 0x6038,
+ 0x6434, 0x6627, 0x6833, 0x6a13, 0x6c14, 0x7035, 0x7215, 0x783c,
+ 0x7a16, 0x8042, 0x883e, 0x8c32, 0x9045, 0x9444, 0x9840, 0xa847,
+ 0xac99, 0xb508, 0xb93b, 0xc03d, 0xc837, 0xd0c3, 0xd839, 0xe046,
+ 0xe8a5, 0xf051, 0xf848, 0x0859, 0x10ac, 0x184b, 0x1c17, 0x1e18,
+ // Entry 40 - 7F
+ 0x20b2, 0x2219, 0x291f, 0x2c1a, 0x2e1b, 0x3050, 0x341c, 0x361d,
+ 0x3852, 0x3d2d, 0x445b, 0x4c49, 0x5453, 0x5ca7, 0x5f5e, 0x644c,
+ 0x684a, 0x704f, 0x7855, 0x7e8f, 0x8058, 0x885c, 0x965d, 0x983a,
+ 0xa062, 0xa863, 0xac64, 0xb468, 0xbd19, 0xc485, 0xcc6e, 0xce6e,
+ 0xd06c, 0xd269, 0xd475, 0xdc73, 0xde87, 0xe472, 0xec71, 0xf030,
+ 0xf278, 0xf477, 0xfc7d, 0x04e4, 0x0920, 0x0c61, 0x1479, 0x187c,
+ 0x1c82, 0x26ec, 0x285f, 0x2c5e, 0x305f, 0x407f, 0x4880, 0x50a6,
+ 0x5886, 0x6081, 0x687b, 0x7084, 0x7889, 0x8088, 0x8883, 0x908b,
+ // Entry 80 - BF
+ 0x9890, 0x9c8d, 0xa137, 0xa88e, 0xb08c, 0xb891, 0xc09c, 0xc898,
+ 0xd094, 0xd89b, 0xe09a, 0xe895, 0xf096, 0xf89d, 0x004e, 0x089f,
+ 0x10a1, 0x1cad, 0x20a0, 0x28a3, 0x30a9, 0x34aa, 0x3cab, 0x42a4,
+ 0x44ae, 0x461e, 0x4caf, 0x54b4, 0x58b7, 0x5cb3, 0x64b8, 0x6cb1,
+ 0x70b5, 0x74b6, 0x7cc5, 0x84be, 0x8ccd, 0x94cf, 0x9ccc, 0xa4c2,
+ 0xacca, 0xb4c7, 0xbcc8, 0xc0cb, 0xc8ce, 0xd8ba, 0xe0c4, 0xe4bb,
+ 0xe6bc, 0xe8c9, 0xf0b9, 0xf8d0, 0x00e0, 0x08d1, 0x10dc, 0x18da,
+ 0x20d8, 0x2428, 0x265a, 0x2a2f, 0x2d1a, 0x2e3f, 0x30dd, 0x38d2,
+ // Entry C0 - FF
+ 0x493e, 0x54df, 0x5cd7, 0x64d3, 0x6cd5, 0x74de, 0x7cd4, 0x84d9,
+ 0x88c6, 0x8b32, 0x8e74, 0x90bf, 0x92ef, 0x94e7, 0x9ee1, 0xace5,
+ 0xb0f0, 0xb8e3, 0xc0e6, 0xc8ea, 0xd0e8, 0xd8ed, 0xe08a, 0xe525,
+ 0xeceb, 0xf4f2, 0xfd01, 0x0503, 0x0705, 0x0d06, 0x183b, 0x1d0d,
+ 0x26a8, 0x2825, 0x2cb0, 0x2ebd, 0x34e9, 0x3d38, 0x4512, 0x4d17,
+ 0x5507, 0x5d13, 0x6104, 0x6509, 0x6d11, 0x7d0c, 0x7f10, 0x813d,
+ 0x830e, 0x8514, 0x8d60, 0x9963, 0xa15c, 0xa86d, 0xb116, 0xb30a,
+ 0xb86b, 0xc10a, 0xc915, 0xd10f, 0xd91c, 0xe10b, 0xe84d, 0xf11b,
+ // Entry 100 - 13F
+ 0xf523, 0xf922, 0x0121, 0x0924, 0x1128, 0x192b, 0x2022, 0x2927,
+ 0x312a, 0x3726, 0x391e, 0x3d2c, 0x4130, 0x492f, 0x4ec1, 0x5518,
+ 0x646a, 0x747a, 0x7e7e, 0x809e, 0x8297, 0x852e, 0x9134, 0xa53c,
+ 0xac36, 0xb535, 0xb936, 0xbd3a, 0xd93f, 0xe541, 0xed5d, 0xef5d,
+ 0xf656, 0xfd61, 0x7c1f, 0x7ef3, 0x80f4, 0x82f5, 0x84f6, 0x86f7,
+ 0x88f8, 0x8af9, 0x8cfa, 0x8e6f, 0x90fc, 0x92fd, 0x94fe, 0x96ff,
+ 0x9900, 0x9b42, 0x9d43, 0x9f44, 0xa145, 0xa346, 0xa547, 0xa748,
+ 0xa949, 0xab4a, 0xad4b, 0xaf4c, 0xb14d, 0xb34e, 0xb54f, 0xb750,
+ // Entry 140 - 17F
+ 0xb951, 0xbb52, 0xbd53, 0xbf54, 0xc155, 0xc356, 0xc557, 0xc758,
+ 0xc959, 0xcb5a, 0xcd5b, 0xcf64,
+}
+
+// Size: 1463 bytes
+var variantIndex = map[string]uint8{
+ "1606nict": 0x0,
+ "1694acad": 0x1,
+ "1901": 0x2,
+ "1959acad": 0x3,
+ "1994": 0x45,
+ "1996": 0x4,
+ "abl1943": 0x5,
+ "alalc97": 0x47,
+ "aluku": 0x6,
+ "ao1990": 0x7,
+ "arevela": 0x8,
+ "arevmda": 0x9,
+ "baku1926": 0xa,
+ "balanka": 0xb,
+ "barla": 0xc,
+ "basiceng": 0xd,
+ "bauddha": 0xe,
+ "biscayan": 0xf,
+ "biske": 0x40,
+ "bohoric": 0x10,
+ "boont": 0x11,
+ "colb1945": 0x12,
+ "cornu": 0x13,
+ "dajnko": 0x14,
+ "ekavsk": 0x15,
+ "emodeng": 0x16,
+ "fonipa": 0x48,
+ "fonnapa": 0x49,
+ "fonupa": 0x4a,
+ "fonxsamp": 0x4b,
+ "hepburn": 0x17,
+ "heploc": 0x46,
+ "hognorsk": 0x18,
+ "ijekavsk": 0x19,
+ "itihasa": 0x1a,
+ "jauer": 0x1b,
+ "jyutping": 0x1c,
+ "kkcor": 0x1d,
+ "kociewie": 0x1e,
+ "kscor": 0x1f,
+ "laukika": 0x20,
+ "lipaw": 0x41,
+ "luna1918": 0x21,
+ "metelko": 0x22,
+ "monoton": 0x23,
+ "ndyuka": 0x24,
+ "nedis": 0x25,
+ "newfound": 0x26,
+ "njiva": 0x42,
+ "nulik": 0x27,
+ "osojs": 0x43,
+ "oxendict": 0x28,
+ "pamaka": 0x29,
+ "petr1708": 0x2a,
+ "pinyin": 0x2b,
+ "polyton": 0x2c,
+ "puter": 0x2d,
+ "rigik": 0x2e,
+ "rozaj": 0x2f,
+ "rumgr": 0x30,
+ "scotland": 0x31,
+ "scouse": 0x32,
+ "simple": 0x4c,
+ "solba": 0x44,
+ "sotav": 0x33,
+ "surmiran": 0x34,
+ "sursilv": 0x35,
+ "sutsilv": 0x36,
+ "tarask": 0x37,
+ "uccor": 0x38,
+ "ucrcor": 0x39,
+ "ulster": 0x3a,
+ "unifon": 0x3b,
+ "vaidika": 0x3c,
+ "valencia": 0x3d,
+ "vallader": 0x3e,
+ "wadegile": 0x3f,
+}
+
+// variantNumSpecialized is the number of specialized variants in variants.
+const variantNumSpecialized = 71
+
+// nRegionGroups is the number of region groups.
+const nRegionGroups = 32
+
+type likelyLangRegion struct {
+ lang uint16
+ region uint16
+}
+
+// likelyScript is a lookup table, indexed by scriptID, for the most likely
+// languages and regions given a script.
+// Size: 928 bytes, 232 elements
+var likelyScript = [232]likelyLangRegion{
+ 1: {lang: 0x149, region: 0x83},
+ 3: {lang: 0x299, region: 0x105},
+ 4: {lang: 0x1e, region: 0x98},
+ 5: {lang: 0x39, region: 0x6a},
+ 7: {lang: 0x3a, region: 0x9b},
+ 8: {lang: 0x1d0, region: 0x27},
+ 9: {lang: 0x12, region: 0x9b},
+ 10: {lang: 0x5a, region: 0x94},
+ 11: {lang: 0x5f, region: 0x51},
+ 12: {lang: 0xb7, region: 0xb3},
+ 13: {lang: 0x62, region: 0x94},
+ 14: {lang: 0xa3, region: 0x34},
+ 15: {lang: 0x3e0, region: 0x98},
+ 17: {lang: 0x51f, region: 0x12d},
+ 18: {lang: 0x3a8, region: 0x98},
+ 19: {lang: 0x159, region: 0x77},
+ 20: {lang: 0xc0, region: 0x94},
+ 21: {lang: 0x9b, region: 0xe6},
+ 22: {lang: 0xd9, region: 0x34},
+ 23: {lang: 0xf0, region: 0x48},
+ 24: {lang: 0x4e6, region: 0x12a},
+ 25: {lang: 0xe5, region: 0x13d},
+ 26: {lang: 0xe3, region: 0x134},
+ 28: {lang: 0xee, region: 0x6a},
+ 29: {lang: 0x199, region: 0x5c},
+ 30: {lang: 0x3d9, region: 0x105},
+ 32: {lang: 0x1b7, region: 0x98},
+ 34: {lang: 0x159, region: 0x77},
+ 37: {lang: 0x12f, region: 0x6a},
+ 38: {lang: 0x427, region: 0x26},
+ 39: {lang: 0x26, region: 0x6e},
+ 41: {lang: 0x208, region: 0x7c},
+ 42: {lang: 0xfa, region: 0x37},
+ 43: {lang: 0x198, region: 0x12f},
+ 44: {lang: 0x3e0, region: 0x98},
+ 45: {lang: 0x131, region: 0x86},
+ 46: {lang: 0x19d, region: 0x98},
+ 47: {lang: 0x394, region: 0x98},
+ 48: {lang: 0x51f, region: 0x12d},
+ 49: {lang: 0x24b, region: 0xaa},
+ 50: {lang: 0x51f, region: 0x52},
+ 51: {lang: 0x1c4, region: 0xe6},
+ 52: {lang: 0x51f, region: 0x52},
+ 53: {lang: 0x51f, region: 0x12d},
+ 54: {lang: 0x2f4, region: 0x9a},
+ 55: {lang: 0x1b5, region: 0x96},
+ 56: {lang: 0x1f8, region: 0xa1},
+ 57: {lang: 0x1be, region: 0x12a},
+ 58: {lang: 0x1c3, region: 0xae},
+ 60: {lang: 0x1ce, region: 0x91},
+ 62: {lang: 0x13d, region: 0x9d},
+ 63: {lang: 0x24b, region: 0xaa},
+ 64: {lang: 0x206, region: 0x94},
+ 65: {lang: 0x1f8, region: 0xa1},
+ 67: {lang: 0x130, region: 0xc3},
+ 68: {lang: 0x1f8, region: 0xa1},
+ 69: {lang: 0x3b2, region: 0xe7},
+ 70: {lang: 0x242, region: 0xa5},
+ 71: {lang: 0x3f0, region: 0x98},
+ 74: {lang: 0x249, region: 0x98},
+ 75: {lang: 0x24b, region: 0xaa},
+ 77: {lang: 0x87, region: 0x98},
+ 78: {lang: 0x367, region: 0x122},
+ 79: {lang: 0x2af, region: 0xae},
+ 84: {lang: 0x296, region: 0x98},
+ 85: {lang: 0x29f, region: 0x98},
+ 86: {lang: 0x286, region: 0x86},
+ 87: {lang: 0x199, region: 0x86},
+ 88: {lang: 0x2a3, region: 0x52},
+ 90: {lang: 0x4ea, region: 0x12a},
+ 91: {lang: 0x4eb, region: 0x12a},
+ 92: {lang: 0x1b7, region: 0x98},
+ 93: {lang: 0x32e, region: 0x9b},
+ 94: {lang: 0x4ed, region: 0x52},
+ 95: {lang: 0xa7, region: 0x52},
+ 97: {lang: 0x2df, region: 0x111},
+ 98: {lang: 0x4ee, region: 0x10a},
+ 99: {lang: 0x4ee, region: 0x10a},
+ 100: {lang: 0x2fb, region: 0x98},
+ 101: {lang: 0x312, region: 0x98},
+ 102: {lang: 0x302, region: 0x52},
+ 104: {lang: 0x315, region: 0x34},
+ 105: {lang: 0x305, region: 0x98},
+ 106: {lang: 0x40a, region: 0xe7},
+ 107: {lang: 0x328, region: 0xc3},
+ 108: {lang: 0x4ef, region: 0x107},
+ 109: {lang: 0x3a, region: 0xa0},
+ 110: {lang: 0x34a, region: 0xda},
+ 112: {lang: 0x2c7, region: 0x83},
+ 114: {lang: 0x3f9, region: 0x95},
+ 115: {lang: 0x3e5, region: 0x98},
+ 116: {lang: 0x392, region: 0xc4},
+ 117: {lang: 0x38c, region: 0x98},
+ 118: {lang: 0x390, region: 0x134},
+ 119: {lang: 0x41f, region: 0x114},
+ 120: {lang: 0x3a, region: 0x11b},
+ 121: {lang: 0xf9, region: 0xc3},
+ 122: {lang: 0x274, region: 0x105},
+ 123: {lang: 0x2c0, region: 0x52},
+ 124: {lang: 0x396, region: 0x9b},
+ 125: {lang: 0x396, region: 0x52},
+ 127: {lang: 0x3a4, region: 0xaf},
+ 129: {lang: 0x1bf, region: 0x52},
+ 130: {lang: 0x4f3, region: 0x9b},
+ 181: {lang: 0x3c2, region: 0x94},
+ 183: {lang: 0x369, region: 0x10b},
+ 184: {lang: 0x416, region: 0x96},
+ 186: {lang: 0x4f5, region: 0x15d},
+ 187: {lang: 0x3e6, region: 0x98},
+ 188: {lang: 0x44, region: 0x134},
+ 189: {lang: 0x134, region: 0x7a},
+ 190: {lang: 0x3e0, region: 0x98},
+ 191: {lang: 0x3e0, region: 0x98},
+ 192: {lang: 0x3f0, region: 0x98},
+ 193: {lang: 0x402, region: 0xb2},
+ 194: {lang: 0x429, region: 0x98},
+ 195: {lang: 0x434, region: 0x94},
+ 196: {lang: 0x443, region: 0x34},
+ 197: {lang: 0x444, region: 0x9a},
+ 201: {lang: 0x450, region: 0xe6},
+ 202: {lang: 0x116, region: 0x98},
+ 203: {lang: 0x454, region: 0x52},
+ 204: {lang: 0x22a, region: 0x52},
+ 205: {lang: 0x446, region: 0x98},
+ 206: {lang: 0x49b, region: 0x52},
+ 207: {lang: 0x9d, region: 0x13d},
+ 208: {lang: 0x457, region: 0x98},
+ 210: {lang: 0x51e, region: 0xb9},
+ 211: {lang: 0x14e, region: 0xe6},
+ 212: {lang: 0x124, region: 0xcc},
+ 213: {lang: 0x461, region: 0x122},
+ 214: {lang: 0xa7, region: 0x52},
+ 215: {lang: 0x2c5, region: 0x98},
+ 216: {lang: 0x4a3, region: 0x11b},
+ 217: {lang: 0x4b4, region: 0xb3},
+ 219: {lang: 0x1c7, region: 0x98},
+ 221: {lang: 0x3a0, region: 0x9b},
+ 222: {lang: 0x21, region: 0x9a},
+ 223: {lang: 0x1e2, region: 0x52},
+}
+
+type likelyScriptRegion struct {
+ region uint16
+ script uint8
+ flags uint8
+}
+
+// likelyLang is a lookup table, indexed by langID, for the most likely
+// scripts and regions given incomplete information. If more entries exist for a
+// given language, region and script are the index and size respectively
+// of the list in likelyLangList.
+// Size: 5276 bytes, 1319 elements
+var likelyLang = [1319]likelyScriptRegion{
+ 0: {region: 0x134, script: 0x52, flags: 0x0},
+ 1: {region: 0x6e, script: 0x52, flags: 0x0},
+ 2: {region: 0x164, script: 0x52, flags: 0x0},
+ 3: {region: 0x164, script: 0x52, flags: 0x0},
+ 4: {region: 0x164, script: 0x52, flags: 0x0},
+ 5: {region: 0x7c, script: 0x1e, flags: 0x0},
+ 6: {region: 0x164, script: 0x52, flags: 0x0},
+ 7: {region: 0x7f, script: 0x52, flags: 0x0},
+ 8: {region: 0x164, script: 0x52, flags: 0x0},
+ 9: {region: 0x164, script: 0x52, flags: 0x0},
+ 10: {region: 0x164, script: 0x52, flags: 0x0},
+ 11: {region: 0x94, script: 0x52, flags: 0x0},
+ 12: {region: 0x130, script: 0x52, flags: 0x0},
+ 13: {region: 0x7f, script: 0x52, flags: 0x0},
+ 14: {region: 0x164, script: 0x52, flags: 0x0},
+ 15: {region: 0x164, script: 0x52, flags: 0x0},
+ 16: {region: 0x105, script: 0x1e, flags: 0x0},
+ 17: {region: 0x164, script: 0x52, flags: 0x0},
+ 18: {region: 0x9b, script: 0x9, flags: 0x0},
+ 19: {region: 0x127, script: 0x5, flags: 0x0},
+ 20: {region: 0x164, script: 0x52, flags: 0x0},
+ 21: {region: 0x160, script: 0x52, flags: 0x0},
+ 22: {region: 0x164, script: 0x52, flags: 0x0},
+ 23: {region: 0x164, script: 0x52, flags: 0x0},
+ 24: {region: 0x164, script: 0x52, flags: 0x0},
+ 25: {region: 0x164, script: 0x52, flags: 0x0},
+ 26: {region: 0x164, script: 0x52, flags: 0x0},
+ 27: {region: 0x51, script: 0x52, flags: 0x0},
+ 28: {region: 0x164, script: 0x52, flags: 0x0},
+ 29: {region: 0x164, script: 0x52, flags: 0x0},
+ 30: {region: 0x98, script: 0x4, flags: 0x0},
+ 31: {region: 0x164, script: 0x52, flags: 0x0},
+ 32: {region: 0x7f, script: 0x52, flags: 0x0},
+ 33: {region: 0x9a, script: 0xde, flags: 0x0},
+ 34: {region: 0x164, script: 0x52, flags: 0x0},
+ 35: {region: 0x164, script: 0x52, flags: 0x0},
+ 36: {region: 0x14c, script: 0x52, flags: 0x0},
+ 37: {region: 0x105, script: 0x1e, flags: 0x0},
+ 38: {region: 0x6e, script: 0x27, flags: 0x0},
+ 39: {region: 0x164, script: 0x52, flags: 0x0},
+ 40: {region: 0x164, script: 0x52, flags: 0x0},
+ 41: {region: 0xd5, script: 0x52, flags: 0x0},
+ 42: {region: 0x164, script: 0x52, flags: 0x0},
+ 44: {region: 0x164, script: 0x52, flags: 0x0},
+ 45: {region: 0x164, script: 0x52, flags: 0x0},
+ 46: {region: 0x164, script: 0x52, flags: 0x0},
+ 47: {region: 0x164, script: 0x52, flags: 0x0},
+ 48: {region: 0x164, script: 0x52, flags: 0x0},
+ 49: {region: 0x164, script: 0x52, flags: 0x0},
+ 50: {region: 0x94, script: 0x52, flags: 0x0},
+ 51: {region: 0x164, script: 0x5, flags: 0x0},
+ 52: {region: 0x121, script: 0x5, flags: 0x0},
+ 53: {region: 0x164, script: 0x52, flags: 0x0},
+ 54: {region: 0x164, script: 0x52, flags: 0x0},
+ 55: {region: 0x164, script: 0x52, flags: 0x0},
+ 56: {region: 0x164, script: 0x52, flags: 0x0},
+ 57: {region: 0x6a, script: 0x5, flags: 0x0},
+ 58: {region: 0x0, script: 0x3, flags: 0x1},
+ 59: {region: 0x164, script: 0x52, flags: 0x0},
+ 60: {region: 0x50, script: 0x52, flags: 0x0},
+ 61: {region: 0x3e, script: 0x52, flags: 0x0},
+ 62: {region: 0x66, script: 0x5, flags: 0x0},
+ 64: {region: 0xb9, script: 0x5, flags: 0x0},
+ 65: {region: 0x6a, script: 0x5, flags: 0x0},
+ 66: {region: 0x98, script: 0xe, flags: 0x0},
+ 67: {region: 0x12e, script: 0x52, flags: 0x0},
+ 68: {region: 0x134, script: 0xbc, flags: 0x0},
+ 69: {region: 0x164, script: 0x52, flags: 0x0},
+ 70: {region: 0x164, script: 0x52, flags: 0x0},
+ 71: {region: 0x6d, script: 0x52, flags: 0x0},
+ 72: {region: 0x164, script: 0x52, flags: 0x0},
+ 73: {region: 0x164, script: 0x52, flags: 0x0},
+ 74: {region: 0x48, script: 0x52, flags: 0x0},
+ 75: {region: 0x164, script: 0x52, flags: 0x0},
+ 76: {region: 0x105, script: 0x1e, flags: 0x0},
+ 77: {region: 0x164, script: 0x5, flags: 0x0},
+ 78: {region: 0x164, script: 0x52, flags: 0x0},
+ 79: {region: 0x164, script: 0x52, flags: 0x0},
+ 80: {region: 0x164, script: 0x52, flags: 0x0},
+ 81: {region: 0x98, script: 0x20, flags: 0x0},
+ 82: {region: 0x164, script: 0x52, flags: 0x0},
+ 83: {region: 0x164, script: 0x52, flags: 0x0},
+ 84: {region: 0x164, script: 0x52, flags: 0x0},
+ 85: {region: 0x3e, script: 0x52, flags: 0x0},
+ 86: {region: 0x164, script: 0x52, flags: 0x0},
+ 87: {region: 0x3, script: 0x5, flags: 0x1},
+ 88: {region: 0x105, script: 0x1e, flags: 0x0},
+ 89: {region: 0xe7, script: 0x5, flags: 0x0},
+ 90: {region: 0x94, script: 0x52, flags: 0x0},
+ 91: {region: 0xda, script: 0x20, flags: 0x0},
+ 92: {region: 0x2d, script: 0x52, flags: 0x0},
+ 93: {region: 0x51, script: 0x52, flags: 0x0},
+ 94: {region: 0x164, script: 0x52, flags: 0x0},
+ 95: {region: 0x51, script: 0xb, flags: 0x0},
+ 96: {region: 0x164, script: 0x52, flags: 0x0},
+ 97: {region: 0x164, script: 0x52, flags: 0x0},
+ 98: {region: 0x94, script: 0x52, flags: 0x0},
+ 99: {region: 0x164, script: 0x52, flags: 0x0},
+ 100: {region: 0x51, script: 0x52, flags: 0x0},
+ 101: {region: 0x164, script: 0x52, flags: 0x0},
+ 102: {region: 0x164, script: 0x52, flags: 0x0},
+ 103: {region: 0x164, script: 0x52, flags: 0x0},
+ 104: {region: 0x164, script: 0x52, flags: 0x0},
+ 105: {region: 0x4e, script: 0x52, flags: 0x0},
+ 106: {region: 0x164, script: 0x52, flags: 0x0},
+ 107: {region: 0x164, script: 0x52, flags: 0x0},
+ 108: {region: 0x164, script: 0x52, flags: 0x0},
+ 109: {region: 0x164, script: 0x27, flags: 0x0},
+ 110: {region: 0x164, script: 0x52, flags: 0x0},
+ 111: {region: 0x164, script: 0x52, flags: 0x0},
+ 112: {region: 0x46, script: 0x1e, flags: 0x0},
+ 113: {region: 0x164, script: 0x52, flags: 0x0},
+ 114: {region: 0x164, script: 0x52, flags: 0x0},
+ 115: {region: 0x10a, script: 0x5, flags: 0x0},
+ 116: {region: 0x161, script: 0x52, flags: 0x0},
+ 117: {region: 0x164, script: 0x52, flags: 0x0},
+ 118: {region: 0x94, script: 0x52, flags: 0x0},
+ 119: {region: 0x164, script: 0x52, flags: 0x0},
+ 120: {region: 0x12e, script: 0x52, flags: 0x0},
+ 121: {region: 0x51, script: 0x52, flags: 0x0},
+ 122: {region: 0x98, script: 0xcd, flags: 0x0},
+ 123: {region: 0xe7, script: 0x5, flags: 0x0},
+ 124: {region: 0x98, script: 0x20, flags: 0x0},
+ 125: {region: 0x37, script: 0x1e, flags: 0x0},
+ 126: {region: 0x98, script: 0x20, flags: 0x0},
+ 127: {region: 0xe7, script: 0x5, flags: 0x0},
+ 128: {region: 0x12a, script: 0x2d, flags: 0x0},
+ 130: {region: 0x98, script: 0x20, flags: 0x0},
+ 131: {region: 0x164, script: 0x52, flags: 0x0},
+ 132: {region: 0x98, script: 0x20, flags: 0x0},
+ 133: {region: 0xe6, script: 0x52, flags: 0x0},
+ 134: {region: 0x164, script: 0x52, flags: 0x0},
+ 135: {region: 0x98, script: 0x20, flags: 0x0},
+ 136: {region: 0x164, script: 0x52, flags: 0x0},
+ 137: {region: 0x13e, script: 0x52, flags: 0x0},
+ 138: {region: 0x164, script: 0x52, flags: 0x0},
+ 139: {region: 0x164, script: 0x52, flags: 0x0},
+ 140: {region: 0xe6, script: 0x52, flags: 0x0},
+ 141: {region: 0x164, script: 0x52, flags: 0x0},
+ 142: {region: 0xd5, script: 0x52, flags: 0x0},
+ 143: {region: 0x164, script: 0x52, flags: 0x0},
+ 144: {region: 0x164, script: 0x52, flags: 0x0},
+ 145: {region: 0x164, script: 0x52, flags: 0x0},
+ 146: {region: 0x164, script: 0x27, flags: 0x0},
+ 147: {region: 0x98, script: 0x20, flags: 0x0},
+ 148: {region: 0x94, script: 0x52, flags: 0x0},
+ 149: {region: 0x164, script: 0x52, flags: 0x0},
+ 150: {region: 0x164, script: 0x52, flags: 0x0},
+ 151: {region: 0x164, script: 0x52, flags: 0x0},
+ 152: {region: 0x164, script: 0x52, flags: 0x0},
+ 153: {region: 0x51, script: 0x52, flags: 0x0},
+ 154: {region: 0x164, script: 0x52, flags: 0x0},
+ 155: {region: 0xe6, script: 0x52, flags: 0x0},
+ 156: {region: 0x164, script: 0x52, flags: 0x0},
+ 157: {region: 0x13d, script: 0xcf, flags: 0x0},
+ 158: {region: 0xc2, script: 0x52, flags: 0x0},
+ 159: {region: 0x164, script: 0x52, flags: 0x0},
+ 160: {region: 0x164, script: 0x52, flags: 0x0},
+ 161: {region: 0xc2, script: 0x52, flags: 0x0},
+ 162: {region: 0x164, script: 0x52, flags: 0x0},
+ 163: {region: 0x34, script: 0xe, flags: 0x0},
+ 164: {region: 0x164, script: 0x52, flags: 0x0},
+ 165: {region: 0x164, script: 0x52, flags: 0x0},
+ 166: {region: 0x164, script: 0x52, flags: 0x0},
+ 167: {region: 0x52, script: 0xd6, flags: 0x0},
+ 168: {region: 0x164, script: 0x52, flags: 0x0},
+ 169: {region: 0x164, script: 0x52, flags: 0x0},
+ 170: {region: 0x164, script: 0x52, flags: 0x0},
+ 171: {region: 0x98, script: 0xe, flags: 0x0},
+ 172: {region: 0x164, script: 0x52, flags: 0x0},
+ 173: {region: 0x9b, script: 0x5, flags: 0x0},
+ 174: {region: 0x164, script: 0x52, flags: 0x0},
+ 175: {region: 0x4e, script: 0x52, flags: 0x0},
+ 176: {region: 0x77, script: 0x52, flags: 0x0},
+ 177: {region: 0x98, script: 0x20, flags: 0x0},
+ 178: {region: 0xe7, script: 0x5, flags: 0x0},
+ 179: {region: 0x98, script: 0x20, flags: 0x0},
+ 180: {region: 0x164, script: 0x52, flags: 0x0},
+ 181: {region: 0x32, script: 0x52, flags: 0x0},
+ 182: {region: 0x164, script: 0x52, flags: 0x0},
+ 183: {region: 0xb3, script: 0xc, flags: 0x0},
+ 184: {region: 0x51, script: 0x52, flags: 0x0},
+ 185: {region: 0x164, script: 0x27, flags: 0x0},
+ 186: {region: 0xe6, script: 0x52, flags: 0x0},
+ 187: {region: 0x164, script: 0x52, flags: 0x0},
+ 188: {region: 0xe7, script: 0x20, flags: 0x0},
+ 189: {region: 0x105, script: 0x1e, flags: 0x0},
+ 190: {region: 0x15e, script: 0x52, flags: 0x0},
+ 191: {region: 0x164, script: 0x52, flags: 0x0},
+ 192: {region: 0x94, script: 0x52, flags: 0x0},
+ 193: {region: 0x164, script: 0x52, flags: 0x0},
+ 194: {region: 0x51, script: 0x52, flags: 0x0},
+ 195: {region: 0x164, script: 0x52, flags: 0x0},
+ 196: {region: 0x164, script: 0x52, flags: 0x0},
+ 197: {region: 0x164, script: 0x52, flags: 0x0},
+ 198: {region: 0x85, script: 0x52, flags: 0x0},
+ 199: {region: 0x164, script: 0x52, flags: 0x0},
+ 200: {region: 0x164, script: 0x52, flags: 0x0},
+ 201: {region: 0x164, script: 0x52, flags: 0x0},
+ 202: {region: 0x164, script: 0x52, flags: 0x0},
+ 203: {region: 0x6c, script: 0x27, flags: 0x0},
+ 204: {region: 0x164, script: 0x52, flags: 0x0},
+ 205: {region: 0x164, script: 0x52, flags: 0x0},
+ 206: {region: 0x51, script: 0x52, flags: 0x0},
+ 207: {region: 0x164, script: 0x52, flags: 0x0},
+ 208: {region: 0x164, script: 0x52, flags: 0x0},
+ 209: {region: 0xc2, script: 0x52, flags: 0x0},
+ 210: {region: 0x164, script: 0x52, flags: 0x0},
+ 211: {region: 0x164, script: 0x52, flags: 0x0},
+ 212: {region: 0x164, script: 0x52, flags: 0x0},
+ 213: {region: 0x6d, script: 0x52, flags: 0x0},
+ 214: {region: 0x164, script: 0x52, flags: 0x0},
+ 215: {region: 0x164, script: 0x52, flags: 0x0},
+ 216: {region: 0xd5, script: 0x52, flags: 0x0},
+ 217: {region: 0x8, script: 0x2, flags: 0x1},
+ 218: {region: 0x105, script: 0x1e, flags: 0x0},
+ 219: {region: 0xe6, script: 0x52, flags: 0x0},
+ 220: {region: 0x164, script: 0x52, flags: 0x0},
+ 221: {region: 0x130, script: 0x52, flags: 0x0},
+ 222: {region: 0x89, script: 0x52, flags: 0x0},
+ 223: {region: 0x74, script: 0x52, flags: 0x0},
+ 224: {region: 0x105, script: 0x1e, flags: 0x0},
+ 225: {region: 0x134, script: 0x52, flags: 0x0},
+ 226: {region: 0x48, script: 0x52, flags: 0x0},
+ 227: {region: 0x134, script: 0x1a, flags: 0x0},
+ 228: {region: 0xa5, script: 0x5, flags: 0x0},
+ 229: {region: 0x13d, script: 0x19, flags: 0x0},
+ 230: {region: 0x164, script: 0x52, flags: 0x0},
+ 231: {region: 0x9a, script: 0x5, flags: 0x0},
+ 232: {region: 0x164, script: 0x52, flags: 0x0},
+ 233: {region: 0x164, script: 0x52, flags: 0x0},
+ 234: {region: 0x164, script: 0x52, flags: 0x0},
+ 235: {region: 0x164, script: 0x52, flags: 0x0},
+ 236: {region: 0x164, script: 0x52, flags: 0x0},
+ 237: {region: 0x77, script: 0x52, flags: 0x0},
+ 238: {region: 0x6a, script: 0x1c, flags: 0x0},
+ 239: {region: 0xe6, script: 0x52, flags: 0x0},
+ 240: {region: 0x48, script: 0x17, flags: 0x0},
+ 241: {region: 0x48, script: 0x17, flags: 0x0},
+ 242: {region: 0x48, script: 0x17, flags: 0x0},
+ 243: {region: 0x48, script: 0x17, flags: 0x0},
+ 244: {region: 0x48, script: 0x17, flags: 0x0},
+ 245: {region: 0x109, script: 0x52, flags: 0x0},
+ 246: {region: 0x5d, script: 0x52, flags: 0x0},
+ 247: {region: 0xe8, script: 0x52, flags: 0x0},
+ 248: {region: 0x48, script: 0x17, flags: 0x0},
+ 249: {region: 0xc3, script: 0x79, flags: 0x0},
+ 250: {region: 0xa, script: 0x2, flags: 0x1},
+ 251: {region: 0x105, script: 0x1e, flags: 0x0},
+ 252: {region: 0x7a, script: 0x52, flags: 0x0},
+ 253: {region: 0x62, script: 0x52, flags: 0x0},
+ 254: {region: 0x164, script: 0x52, flags: 0x0},
+ 255: {region: 0x164, script: 0x52, flags: 0x0},
+ 256: {region: 0x164, script: 0x52, flags: 0x0},
+ 257: {region: 0x164, script: 0x52, flags: 0x0},
+ 258: {region: 0x134, script: 0x52, flags: 0x0},
+ 259: {region: 0x105, script: 0x1e, flags: 0x0},
+ 260: {region: 0xa3, script: 0x52, flags: 0x0},
+ 261: {region: 0x164, script: 0x52, flags: 0x0},
+ 262: {region: 0x164, script: 0x52, flags: 0x0},
+ 263: {region: 0x98, script: 0x5, flags: 0x0},
+ 264: {region: 0x164, script: 0x52, flags: 0x0},
+ 265: {region: 0x5f, script: 0x52, flags: 0x0},
+ 266: {region: 0x164, script: 0x52, flags: 0x0},
+ 267: {region: 0x48, script: 0x52, flags: 0x0},
+ 268: {region: 0x164, script: 0x52, flags: 0x0},
+ 269: {region: 0x164, script: 0x52, flags: 0x0},
+ 270: {region: 0x164, script: 0x52, flags: 0x0},
+ 271: {region: 0x164, script: 0x5, flags: 0x0},
+ 272: {region: 0x48, script: 0x52, flags: 0x0},
+ 273: {region: 0x164, script: 0x52, flags: 0x0},
+ 274: {region: 0x164, script: 0x52, flags: 0x0},
+ 275: {region: 0xd3, script: 0x52, flags: 0x0},
+ 276: {region: 0x4e, script: 0x52, flags: 0x0},
+ 277: {region: 0x164, script: 0x52, flags: 0x0},
+ 278: {region: 0x98, script: 0x5, flags: 0x0},
+ 279: {region: 0x164, script: 0x52, flags: 0x0},
+ 280: {region: 0x164, script: 0x52, flags: 0x0},
+ 281: {region: 0x164, script: 0x52, flags: 0x0},
+ 282: {region: 0x164, script: 0x27, flags: 0x0},
+ 283: {region: 0x5f, script: 0x52, flags: 0x0},
+ 284: {region: 0xc2, script: 0x52, flags: 0x0},
+ 285: {region: 0xcf, script: 0x52, flags: 0x0},
+ 286: {region: 0x164, script: 0x52, flags: 0x0},
+ 287: {region: 0xda, script: 0x20, flags: 0x0},
+ 288: {region: 0x51, script: 0x52, flags: 0x0},
+ 289: {region: 0x164, script: 0x52, flags: 0x0},
+ 290: {region: 0x164, script: 0x52, flags: 0x0},
+ 291: {region: 0x164, script: 0x52, flags: 0x0},
+ 292: {region: 0xcc, script: 0xd4, flags: 0x0},
+ 293: {region: 0x164, script: 0x52, flags: 0x0},
+ 294: {region: 0x164, script: 0x52, flags: 0x0},
+ 295: {region: 0x113, script: 0x52, flags: 0x0},
+ 296: {region: 0x36, script: 0x52, flags: 0x0},
+ 297: {region: 0x42, script: 0xd6, flags: 0x0},
+ 298: {region: 0x164, script: 0x52, flags: 0x0},
+ 299: {region: 0xa3, script: 0x52, flags: 0x0},
+ 300: {region: 0x7f, script: 0x52, flags: 0x0},
+ 301: {region: 0xd5, script: 0x52, flags: 0x0},
+ 302: {region: 0x9d, script: 0x52, flags: 0x0},
+ 303: {region: 0x6a, script: 0x25, flags: 0x0},
+ 304: {region: 0xc3, script: 0x43, flags: 0x0},
+ 305: {region: 0x86, script: 0x2d, flags: 0x0},
+ 306: {region: 0x164, script: 0x52, flags: 0x0},
+ 307: {region: 0x164, script: 0x52, flags: 0x0},
+ 308: {region: 0xc, script: 0x2, flags: 0x1},
+ 309: {region: 0x164, script: 0x52, flags: 0x0},
+ 310: {region: 0x164, script: 0x52, flags: 0x0},
+ 311: {region: 0x1, script: 0x52, flags: 0x0},
+ 312: {region: 0x164, script: 0x52, flags: 0x0},
+ 313: {region: 0x6d, script: 0x52, flags: 0x0},
+ 314: {region: 0x134, script: 0x52, flags: 0x0},
+ 315: {region: 0x69, script: 0x52, flags: 0x0},
+ 316: {region: 0x164, script: 0x52, flags: 0x0},
+ 317: {region: 0x9d, script: 0x3e, flags: 0x0},
+ 318: {region: 0x164, script: 0x52, flags: 0x0},
+ 319: {region: 0x164, script: 0x52, flags: 0x0},
+ 320: {region: 0x6d, script: 0x52, flags: 0x0},
+ 321: {region: 0x51, script: 0x52, flags: 0x0},
+ 322: {region: 0x6d, script: 0x52, flags: 0x0},
+ 323: {region: 0x9b, script: 0x5, flags: 0x0},
+ 324: {region: 0x164, script: 0x52, flags: 0x0},
+ 325: {region: 0x164, script: 0x52, flags: 0x0},
+ 326: {region: 0x164, script: 0x52, flags: 0x0},
+ 327: {region: 0x164, script: 0x52, flags: 0x0},
+ 328: {region: 0x85, script: 0x52, flags: 0x0},
+ 329: {region: 0xe, script: 0x2, flags: 0x1},
+ 330: {region: 0x164, script: 0x52, flags: 0x0},
+ 331: {region: 0xc2, script: 0x52, flags: 0x0},
+ 332: {region: 0x71, script: 0x52, flags: 0x0},
+ 333: {region: 0x10a, script: 0x5, flags: 0x0},
+ 334: {region: 0xe6, script: 0x52, flags: 0x0},
+ 335: {region: 0x10b, script: 0x52, flags: 0x0},
+ 336: {region: 0x72, script: 0x52, flags: 0x0},
+ 337: {region: 0x164, script: 0x52, flags: 0x0},
+ 338: {region: 0x164, script: 0x52, flags: 0x0},
+ 339: {region: 0x75, script: 0x52, flags: 0x0},
+ 340: {region: 0x164, script: 0x52, flags: 0x0},
+ 341: {region: 0x3a, script: 0x52, flags: 0x0},
+ 342: {region: 0x164, script: 0x52, flags: 0x0},
+ 343: {region: 0x164, script: 0x52, flags: 0x0},
+ 344: {region: 0x164, script: 0x52, flags: 0x0},
+ 345: {region: 0x77, script: 0x52, flags: 0x0},
+ 346: {region: 0x134, script: 0x52, flags: 0x0},
+ 347: {region: 0x77, script: 0x52, flags: 0x0},
+ 348: {region: 0x5f, script: 0x52, flags: 0x0},
+ 349: {region: 0x5f, script: 0x52, flags: 0x0},
+ 350: {region: 0x51, script: 0x5, flags: 0x0},
+ 351: {region: 0x13f, script: 0x52, flags: 0x0},
+ 352: {region: 0x164, script: 0x52, flags: 0x0},
+ 353: {region: 0x83, script: 0x52, flags: 0x0},
+ 354: {region: 0x164, script: 0x52, flags: 0x0},
+ 355: {region: 0xd3, script: 0x52, flags: 0x0},
+ 356: {region: 0x9d, script: 0x52, flags: 0x0},
+ 357: {region: 0xd5, script: 0x52, flags: 0x0},
+ 358: {region: 0x164, script: 0x52, flags: 0x0},
+ 359: {region: 0x10a, script: 0x52, flags: 0x0},
+ 360: {region: 0xd8, script: 0x52, flags: 0x0},
+ 361: {region: 0x95, script: 0x52, flags: 0x0},
+ 362: {region: 0x7f, script: 0x52, flags: 0x0},
+ 363: {region: 0x164, script: 0x52, flags: 0x0},
+ 364: {region: 0xbb, script: 0x52, flags: 0x0},
+ 365: {region: 0x164, script: 0x52, flags: 0x0},
+ 366: {region: 0x164, script: 0x52, flags: 0x0},
+ 367: {region: 0x164, script: 0x52, flags: 0x0},
+ 368: {region: 0x52, script: 0x34, flags: 0x0},
+ 369: {region: 0x164, script: 0x52, flags: 0x0},
+ 370: {region: 0x94, script: 0x52, flags: 0x0},
+ 371: {region: 0x164, script: 0x52, flags: 0x0},
+ 372: {region: 0x98, script: 0x20, flags: 0x0},
+ 373: {region: 0x164, script: 0x52, flags: 0x0},
+ 374: {region: 0x9b, script: 0x5, flags: 0x0},
+ 375: {region: 0x7d, script: 0x52, flags: 0x0},
+ 376: {region: 0x7a, script: 0x52, flags: 0x0},
+ 377: {region: 0x164, script: 0x52, flags: 0x0},
+ 378: {region: 0x164, script: 0x52, flags: 0x0},
+ 379: {region: 0x164, script: 0x52, flags: 0x0},
+ 380: {region: 0x164, script: 0x52, flags: 0x0},
+ 381: {region: 0x164, script: 0x52, flags: 0x0},
+ 382: {region: 0x164, script: 0x52, flags: 0x0},
+ 383: {region: 0x6e, script: 0x27, flags: 0x0},
+ 384: {region: 0x164, script: 0x52, flags: 0x0},
+ 385: {region: 0xda, script: 0x20, flags: 0x0},
+ 386: {region: 0x164, script: 0x52, flags: 0x0},
+ 387: {region: 0xa6, script: 0x52, flags: 0x0},
+ 388: {region: 0x164, script: 0x52, flags: 0x0},
+ 389: {region: 0xe7, script: 0x5, flags: 0x0},
+ 390: {region: 0x164, script: 0x52, flags: 0x0},
+ 391: {region: 0xe7, script: 0x5, flags: 0x0},
+ 392: {region: 0x164, script: 0x52, flags: 0x0},
+ 393: {region: 0x164, script: 0x52, flags: 0x0},
+ 394: {region: 0x6d, script: 0x52, flags: 0x0},
+ 395: {region: 0x9b, script: 0x5, flags: 0x0},
+ 396: {region: 0x164, script: 0x52, flags: 0x0},
+ 397: {region: 0x164, script: 0x27, flags: 0x0},
+ 398: {region: 0xf0, script: 0x52, flags: 0x0},
+ 399: {region: 0x164, script: 0x52, flags: 0x0},
+ 400: {region: 0x164, script: 0x52, flags: 0x0},
+ 401: {region: 0x164, script: 0x52, flags: 0x0},
+ 402: {region: 0x164, script: 0x27, flags: 0x0},
+ 403: {region: 0x164, script: 0x52, flags: 0x0},
+ 404: {region: 0x98, script: 0x20, flags: 0x0},
+ 405: {region: 0x98, script: 0xd0, flags: 0x0},
+ 406: {region: 0x94, script: 0x52, flags: 0x0},
+ 407: {region: 0xd8, script: 0x52, flags: 0x0},
+ 408: {region: 0x12f, script: 0x2b, flags: 0x0},
+ 409: {region: 0x10, script: 0x2, flags: 0x1},
+ 410: {region: 0x98, script: 0xe, flags: 0x0},
+ 411: {region: 0x164, script: 0x52, flags: 0x0},
+ 412: {region: 0x4d, script: 0x52, flags: 0x0},
+ 413: {region: 0x98, script: 0x2e, flags: 0x0},
+ 414: {region: 0x40, script: 0x52, flags: 0x0},
+ 415: {region: 0x53, script: 0x52, flags: 0x0},
+ 416: {region: 0x164, script: 0x52, flags: 0x0},
+ 417: {region: 0x7f, script: 0x52, flags: 0x0},
+ 418: {region: 0x164, script: 0x52, flags: 0x0},
+ 419: {region: 0x164, script: 0x52, flags: 0x0},
+ 420: {region: 0xa3, script: 0x52, flags: 0x0},
+ 421: {region: 0x97, script: 0x52, flags: 0x0},
+ 422: {region: 0x164, script: 0x52, flags: 0x0},
+ 423: {region: 0xda, script: 0x20, flags: 0x0},
+ 424: {region: 0x164, script: 0x52, flags: 0x0},
+ 425: {region: 0x164, script: 0x5, flags: 0x0},
+ 426: {region: 0x48, script: 0x52, flags: 0x0},
+ 427: {region: 0x164, script: 0x5, flags: 0x0},
+ 428: {region: 0x164, script: 0x52, flags: 0x0},
+ 429: {region: 0x12, script: 0x3, flags: 0x1},
+ 430: {region: 0x164, script: 0x52, flags: 0x0},
+ 431: {region: 0x52, script: 0x34, flags: 0x0},
+ 432: {region: 0x164, script: 0x52, flags: 0x0},
+ 433: {region: 0x134, script: 0x52, flags: 0x0},
+ 434: {region: 0x23, script: 0x5, flags: 0x0},
+ 435: {region: 0x164, script: 0x52, flags: 0x0},
+ 436: {region: 0x164, script: 0x27, flags: 0x0},
+ 437: {region: 0x96, script: 0x37, flags: 0x0},
+ 438: {region: 0x164, script: 0x52, flags: 0x0},
+ 439: {region: 0x98, script: 0x20, flags: 0x0},
+ 440: {region: 0x164, script: 0x52, flags: 0x0},
+ 441: {region: 0x72, script: 0x52, flags: 0x0},
+ 442: {region: 0x164, script: 0x52, flags: 0x0},
+ 443: {region: 0x164, script: 0x52, flags: 0x0},
+ 444: {region: 0xe6, script: 0x52, flags: 0x0},
+ 445: {region: 0x164, script: 0x52, flags: 0x0},
+ 446: {region: 0x12a, script: 0x39, flags: 0x0},
+ 447: {region: 0x52, script: 0x81, flags: 0x0},
+ 448: {region: 0x164, script: 0x52, flags: 0x0},
+ 449: {region: 0xe7, script: 0x5, flags: 0x0},
+ 450: {region: 0x98, script: 0x20, flags: 0x0},
+ 451: {region: 0xae, script: 0x3a, flags: 0x0},
+ 452: {region: 0xe6, script: 0x52, flags: 0x0},
+ 453: {region: 0xe7, script: 0x5, flags: 0x0},
+ 454: {region: 0xe5, script: 0x52, flags: 0x0},
+ 455: {region: 0x98, script: 0x20, flags: 0x0},
+ 456: {region: 0x98, script: 0x20, flags: 0x0},
+ 457: {region: 0x164, script: 0x52, flags: 0x0},
+ 458: {region: 0x8f, script: 0x52, flags: 0x0},
+ 459: {region: 0x5f, script: 0x52, flags: 0x0},
+ 460: {region: 0x52, script: 0x34, flags: 0x0},
+ 461: {region: 0x90, script: 0x52, flags: 0x0},
+ 462: {region: 0x91, script: 0x52, flags: 0x0},
+ 463: {region: 0x164, script: 0x52, flags: 0x0},
+ 464: {region: 0x27, script: 0x8, flags: 0x0},
+ 465: {region: 0xd1, script: 0x52, flags: 0x0},
+ 466: {region: 0x77, script: 0x52, flags: 0x0},
+ 467: {region: 0x164, script: 0x52, flags: 0x0},
+ 468: {region: 0x164, script: 0x52, flags: 0x0},
+ 469: {region: 0xcf, script: 0x52, flags: 0x0},
+ 470: {region: 0xd5, script: 0x52, flags: 0x0},
+ 471: {region: 0x164, script: 0x52, flags: 0x0},
+ 472: {region: 0x164, script: 0x52, flags: 0x0},
+ 473: {region: 0x164, script: 0x52, flags: 0x0},
+ 474: {region: 0x94, script: 0x52, flags: 0x0},
+ 475: {region: 0x164, script: 0x52, flags: 0x0},
+ 476: {region: 0x164, script: 0x52, flags: 0x0},
+ 477: {region: 0x164, script: 0x52, flags: 0x0},
+ 479: {region: 0xd5, script: 0x52, flags: 0x0},
+ 480: {region: 0x164, script: 0x52, flags: 0x0},
+ 481: {region: 0x164, script: 0x52, flags: 0x0},
+ 482: {region: 0x52, script: 0xdf, flags: 0x0},
+ 483: {region: 0x164, script: 0x52, flags: 0x0},
+ 484: {region: 0x134, script: 0x52, flags: 0x0},
+ 485: {region: 0x164, script: 0x52, flags: 0x0},
+ 486: {region: 0x48, script: 0x52, flags: 0x0},
+ 487: {region: 0x164, script: 0x52, flags: 0x0},
+ 488: {region: 0x164, script: 0x52, flags: 0x0},
+ 489: {region: 0xe6, script: 0x52, flags: 0x0},
+ 490: {region: 0x164, script: 0x52, flags: 0x0},
+ 491: {region: 0x94, script: 0x52, flags: 0x0},
+ 492: {region: 0x105, script: 0x1e, flags: 0x0},
+ 494: {region: 0x164, script: 0x52, flags: 0x0},
+ 495: {region: 0x164, script: 0x52, flags: 0x0},
+ 496: {region: 0x9c, script: 0x52, flags: 0x0},
+ 497: {region: 0x9d, script: 0x52, flags: 0x0},
+ 498: {region: 0x48, script: 0x17, flags: 0x0},
+ 499: {region: 0x96, script: 0x37, flags: 0x0},
+ 500: {region: 0x164, script: 0x52, flags: 0x0},
+ 501: {region: 0x164, script: 0x52, flags: 0x0},
+ 502: {region: 0x105, script: 0x52, flags: 0x0},
+ 503: {region: 0x164, script: 0x52, flags: 0x0},
+ 504: {region: 0xa1, script: 0x41, flags: 0x0},
+ 505: {region: 0x164, script: 0x52, flags: 0x0},
+ 506: {region: 0x9f, script: 0x52, flags: 0x0},
+ 508: {region: 0x164, script: 0x52, flags: 0x0},
+ 509: {region: 0x164, script: 0x52, flags: 0x0},
+ 510: {region: 0x164, script: 0x52, flags: 0x0},
+ 511: {region: 0x51, script: 0x52, flags: 0x0},
+ 512: {region: 0x12f, script: 0x37, flags: 0x0},
+ 513: {region: 0x164, script: 0x52, flags: 0x0},
+ 514: {region: 0x12e, script: 0x52, flags: 0x0},
+ 515: {region: 0xda, script: 0x20, flags: 0x0},
+ 516: {region: 0x164, script: 0x52, flags: 0x0},
+ 517: {region: 0x62, script: 0x52, flags: 0x0},
+ 518: {region: 0x94, script: 0x52, flags: 0x0},
+ 519: {region: 0x94, script: 0x52, flags: 0x0},
+ 520: {region: 0x7c, script: 0x29, flags: 0x0},
+ 521: {region: 0x136, script: 0x1e, flags: 0x0},
+ 522: {region: 0x66, script: 0x52, flags: 0x0},
+ 523: {region: 0xc3, script: 0x52, flags: 0x0},
+ 524: {region: 0x164, script: 0x52, flags: 0x0},
+ 525: {region: 0x164, script: 0x52, flags: 0x0},
+ 526: {region: 0xd5, script: 0x52, flags: 0x0},
+ 527: {region: 0xa3, script: 0x52, flags: 0x0},
+ 528: {region: 0xc2, script: 0x52, flags: 0x0},
+ 529: {region: 0x105, script: 0x1e, flags: 0x0},
+ 530: {region: 0x164, script: 0x52, flags: 0x0},
+ 531: {region: 0x164, script: 0x52, flags: 0x0},
+ 532: {region: 0x164, script: 0x52, flags: 0x0},
+ 533: {region: 0x164, script: 0x52, flags: 0x0},
+ 534: {region: 0xd3, script: 0x5, flags: 0x0},
+ 535: {region: 0xd5, script: 0x52, flags: 0x0},
+ 536: {region: 0x163, script: 0x52, flags: 0x0},
+ 537: {region: 0x164, script: 0x52, flags: 0x0},
+ 538: {region: 0x164, script: 0x52, flags: 0x0},
+ 539: {region: 0x12e, script: 0x52, flags: 0x0},
+ 540: {region: 0x121, script: 0x5, flags: 0x0},
+ 541: {region: 0x164, script: 0x52, flags: 0x0},
+ 542: {region: 0x122, script: 0xd5, flags: 0x0},
+ 543: {region: 0x59, script: 0x52, flags: 0x0},
+ 544: {region: 0x51, script: 0x52, flags: 0x0},
+ 545: {region: 0x164, script: 0x52, flags: 0x0},
+ 546: {region: 0x4e, script: 0x52, flags: 0x0},
+ 547: {region: 0x98, script: 0x20, flags: 0x0},
+ 548: {region: 0x98, script: 0x20, flags: 0x0},
+ 549: {region: 0x4a, script: 0x52, flags: 0x0},
+ 550: {region: 0x94, script: 0x52, flags: 0x0},
+ 551: {region: 0x164, script: 0x52, flags: 0x0},
+ 552: {region: 0x40, script: 0x52, flags: 0x0},
+ 553: {region: 0x98, script: 0x52, flags: 0x0},
+ 554: {region: 0x52, script: 0xcc, flags: 0x0},
+ 555: {region: 0x98, script: 0x20, flags: 0x0},
+ 556: {region: 0xc2, script: 0x52, flags: 0x0},
+ 557: {region: 0x164, script: 0x52, flags: 0x0},
+ 558: {region: 0x98, script: 0x6b, flags: 0x0},
+ 559: {region: 0xe7, script: 0x5, flags: 0x0},
+ 560: {region: 0x164, script: 0x52, flags: 0x0},
+ 561: {region: 0xa3, script: 0x52, flags: 0x0},
+ 562: {region: 0x164, script: 0x52, flags: 0x0},
+ 563: {region: 0x12a, script: 0x52, flags: 0x0},
+ 564: {region: 0x164, script: 0x52, flags: 0x0},
+ 565: {region: 0xd1, script: 0x52, flags: 0x0},
+ 566: {region: 0x164, script: 0x52, flags: 0x0},
+ 567: {region: 0xae, script: 0x4f, flags: 0x0},
+ 568: {region: 0x164, script: 0x52, flags: 0x0},
+ 569: {region: 0x164, script: 0x52, flags: 0x0},
+ 570: {region: 0x15, script: 0x6, flags: 0x1},
+ 571: {region: 0x164, script: 0x52, flags: 0x0},
+ 572: {region: 0x51, script: 0x52, flags: 0x0},
+ 573: {region: 0x81, script: 0x52, flags: 0x0},
+ 574: {region: 0xa3, script: 0x52, flags: 0x0},
+ 575: {region: 0x164, script: 0x52, flags: 0x0},
+ 576: {region: 0x164, script: 0x52, flags: 0x0},
+ 577: {region: 0x164, script: 0x52, flags: 0x0},
+ 578: {region: 0xa5, script: 0x46, flags: 0x0},
+ 579: {region: 0x29, script: 0x52, flags: 0x0},
+ 580: {region: 0x164, script: 0x52, flags: 0x0},
+ 581: {region: 0x164, script: 0x52, flags: 0x0},
+ 582: {region: 0x164, script: 0x52, flags: 0x0},
+ 583: {region: 0x164, script: 0x52, flags: 0x0},
+ 584: {region: 0x164, script: 0x52, flags: 0x0},
+ 585: {region: 0x98, script: 0x4a, flags: 0x0},
+ 586: {region: 0x164, script: 0x52, flags: 0x0},
+ 587: {region: 0xaa, script: 0x4b, flags: 0x0},
+ 588: {region: 0x105, script: 0x1e, flags: 0x0},
+ 589: {region: 0x98, script: 0x20, flags: 0x0},
+ 590: {region: 0x164, script: 0x52, flags: 0x0},
+ 591: {region: 0x74, script: 0x52, flags: 0x0},
+ 592: {region: 0x164, script: 0x52, flags: 0x0},
+ 593: {region: 0xb3, script: 0x52, flags: 0x0},
+ 594: {region: 0x164, script: 0x52, flags: 0x0},
+ 595: {region: 0x164, script: 0x52, flags: 0x0},
+ 596: {region: 0x164, script: 0x52, flags: 0x0},
+ 597: {region: 0x164, script: 0x52, flags: 0x0},
+ 598: {region: 0x164, script: 0x52, flags: 0x0},
+ 599: {region: 0x164, script: 0x52, flags: 0x0},
+ 600: {region: 0x164, script: 0x52, flags: 0x0},
+ 601: {region: 0x164, script: 0x27, flags: 0x0},
+ 603: {region: 0x105, script: 0x1e, flags: 0x0},
+ 604: {region: 0x111, script: 0x52, flags: 0x0},
+ 605: {region: 0xe6, script: 0x52, flags: 0x0},
+ 606: {region: 0x105, script: 0x52, flags: 0x0},
+ 607: {region: 0x164, script: 0x52, flags: 0x0},
+ 608: {region: 0x98, script: 0x20, flags: 0x0},
+ 609: {region: 0x98, script: 0x5, flags: 0x0},
+ 610: {region: 0x12e, script: 0x52, flags: 0x0},
+ 611: {region: 0x164, script: 0x52, flags: 0x0},
+ 612: {region: 0x51, script: 0x52, flags: 0x0},
+ 613: {region: 0x5f, script: 0x52, flags: 0x0},
+ 614: {region: 0x164, script: 0x52, flags: 0x0},
+ 615: {region: 0x164, script: 0x52, flags: 0x0},
+ 616: {region: 0x164, script: 0x27, flags: 0x0},
+ 617: {region: 0x164, script: 0x52, flags: 0x0},
+ 618: {region: 0x164, script: 0x52, flags: 0x0},
+ 619: {region: 0x1b, script: 0x3, flags: 0x1},
+ 620: {region: 0x164, script: 0x52, flags: 0x0},
+ 621: {region: 0x164, script: 0x52, flags: 0x0},
+ 622: {region: 0x164, script: 0x52, flags: 0x0},
+ 623: {region: 0x164, script: 0x52, flags: 0x0},
+ 624: {region: 0x105, script: 0x1e, flags: 0x0},
+ 625: {region: 0x164, script: 0x52, flags: 0x0},
+ 626: {region: 0x164, script: 0x52, flags: 0x0},
+ 627: {region: 0x164, script: 0x52, flags: 0x0},
+ 628: {region: 0x105, script: 0x1e, flags: 0x0},
+ 629: {region: 0x164, script: 0x52, flags: 0x0},
+ 630: {region: 0x94, script: 0x52, flags: 0x0},
+ 631: {region: 0xe7, script: 0x5, flags: 0x0},
+ 632: {region: 0x7a, script: 0x52, flags: 0x0},
+ 633: {region: 0x164, script: 0x52, flags: 0x0},
+ 634: {region: 0x164, script: 0x52, flags: 0x0},
+ 635: {region: 0x164, script: 0x52, flags: 0x0},
+ 636: {region: 0x164, script: 0x27, flags: 0x0},
+ 637: {region: 0x122, script: 0xd5, flags: 0x0},
+ 638: {region: 0xe7, script: 0x5, flags: 0x0},
+ 639: {region: 0x164, script: 0x52, flags: 0x0},
+ 640: {region: 0x164, script: 0x52, flags: 0x0},
+ 641: {region: 0x1e, script: 0x5, flags: 0x1},
+ 642: {region: 0x164, script: 0x52, flags: 0x0},
+ 643: {region: 0x164, script: 0x52, flags: 0x0},
+ 644: {region: 0x164, script: 0x52, flags: 0x0},
+ 645: {region: 0x137, script: 0x52, flags: 0x0},
+ 646: {region: 0x86, script: 0x56, flags: 0x0},
+ 647: {region: 0x96, script: 0x37, flags: 0x0},
+ 648: {region: 0x12e, script: 0x52, flags: 0x0},
+ 649: {region: 0xe7, script: 0x5, flags: 0x0},
+ 650: {region: 0x130, script: 0x52, flags: 0x0},
+ 651: {region: 0x164, script: 0x52, flags: 0x0},
+ 652: {region: 0xb6, script: 0x52, flags: 0x0},
+ 653: {region: 0x105, script: 0x1e, flags: 0x0},
+ 654: {region: 0x164, script: 0x52, flags: 0x0},
+ 655: {region: 0x94, script: 0x52, flags: 0x0},
+ 656: {region: 0x164, script: 0x52, flags: 0x0},
+ 657: {region: 0x52, script: 0xd5, flags: 0x0},
+ 658: {region: 0x164, script: 0x52, flags: 0x0},
+ 659: {region: 0x164, script: 0x52, flags: 0x0},
+ 660: {region: 0x164, script: 0x52, flags: 0x0},
+ 661: {region: 0x164, script: 0x52, flags: 0x0},
+ 662: {region: 0x98, script: 0x54, flags: 0x0},
+ 663: {region: 0x164, script: 0x52, flags: 0x0},
+ 664: {region: 0x164, script: 0x52, flags: 0x0},
+ 665: {region: 0x105, script: 0x1e, flags: 0x0},
+ 666: {region: 0x130, script: 0x52, flags: 0x0},
+ 667: {region: 0x164, script: 0x52, flags: 0x0},
+ 668: {region: 0xd8, script: 0x52, flags: 0x0},
+ 669: {region: 0x164, script: 0x52, flags: 0x0},
+ 670: {region: 0x164, script: 0x52, flags: 0x0},
+ 671: {region: 0x23, script: 0x2, flags: 0x1},
+ 672: {region: 0x164, script: 0x52, flags: 0x0},
+ 673: {region: 0x164, script: 0x52, flags: 0x0},
+ 674: {region: 0x9d, script: 0x52, flags: 0x0},
+ 675: {region: 0x52, script: 0x58, flags: 0x0},
+ 676: {region: 0x94, script: 0x52, flags: 0x0},
+ 677: {region: 0x9b, script: 0x5, flags: 0x0},
+ 678: {region: 0x134, script: 0x52, flags: 0x0},
+ 679: {region: 0x164, script: 0x52, flags: 0x0},
+ 680: {region: 0x164, script: 0x52, flags: 0x0},
+ 681: {region: 0x98, script: 0xd0, flags: 0x0},
+ 682: {region: 0x9d, script: 0x52, flags: 0x0},
+ 683: {region: 0x164, script: 0x52, flags: 0x0},
+ 684: {region: 0x4a, script: 0x52, flags: 0x0},
+ 685: {region: 0x164, script: 0x52, flags: 0x0},
+ 686: {region: 0x164, script: 0x52, flags: 0x0},
+ 687: {region: 0xae, script: 0x4f, flags: 0x0},
+ 688: {region: 0x164, script: 0x52, flags: 0x0},
+ 689: {region: 0x164, script: 0x52, flags: 0x0},
+ 690: {region: 0x4a, script: 0x52, flags: 0x0},
+ 691: {region: 0x164, script: 0x52, flags: 0x0},
+ 692: {region: 0x164, script: 0x52, flags: 0x0},
+ 693: {region: 0x161, script: 0x52, flags: 0x0},
+ 694: {region: 0x9b, script: 0x5, flags: 0x0},
+ 695: {region: 0xb5, script: 0x52, flags: 0x0},
+ 696: {region: 0xb7, script: 0x52, flags: 0x0},
+ 697: {region: 0x4a, script: 0x52, flags: 0x0},
+ 698: {region: 0x4a, script: 0x52, flags: 0x0},
+ 699: {region: 0xa3, script: 0x52, flags: 0x0},
+ 700: {region: 0xa3, script: 0x52, flags: 0x0},
+ 701: {region: 0x9b, script: 0x5, flags: 0x0},
+ 702: {region: 0xb7, script: 0x52, flags: 0x0},
+ 703: {region: 0x122, script: 0xd5, flags: 0x0},
+ 704: {region: 0x52, script: 0x34, flags: 0x0},
+ 705: {region: 0x12a, script: 0x52, flags: 0x0},
+ 706: {region: 0x94, script: 0x52, flags: 0x0},
+ 707: {region: 0x51, script: 0x52, flags: 0x0},
+ 708: {region: 0x98, script: 0x20, flags: 0x0},
+ 709: {region: 0x98, script: 0x20, flags: 0x0},
+ 710: {region: 0x94, script: 0x52, flags: 0x0},
+ 711: {region: 0x25, script: 0x3, flags: 0x1},
+ 712: {region: 0xa3, script: 0x52, flags: 0x0},
+ 713: {region: 0x164, script: 0x52, flags: 0x0},
+ 714: {region: 0xce, script: 0x52, flags: 0x0},
+ 715: {region: 0x164, script: 0x52, flags: 0x0},
+ 716: {region: 0x164, script: 0x52, flags: 0x0},
+ 717: {region: 0x164, script: 0x52, flags: 0x0},
+ 718: {region: 0x164, script: 0x52, flags: 0x0},
+ 719: {region: 0x164, script: 0x52, flags: 0x0},
+ 720: {region: 0x164, script: 0x52, flags: 0x0},
+ 721: {region: 0x164, script: 0x52, flags: 0x0},
+ 722: {region: 0x164, script: 0x52, flags: 0x0},
+ 723: {region: 0x164, script: 0x52, flags: 0x0},
+ 724: {region: 0x164, script: 0x52, flags: 0x0},
+ 725: {region: 0x164, script: 0x52, flags: 0x0},
+ 726: {region: 0x164, script: 0x5, flags: 0x0},
+ 727: {region: 0x105, script: 0x1e, flags: 0x0},
+ 728: {region: 0xe6, script: 0x52, flags: 0x0},
+ 729: {region: 0x164, script: 0x52, flags: 0x0},
+ 730: {region: 0x94, script: 0x52, flags: 0x0},
+ 731: {region: 0x164, script: 0x27, flags: 0x0},
+ 732: {region: 0x164, script: 0x52, flags: 0x0},
+ 733: {region: 0x164, script: 0x52, flags: 0x0},
+ 734: {region: 0x164, script: 0x52, flags: 0x0},
+ 735: {region: 0x111, script: 0x52, flags: 0x0},
+ 736: {region: 0xa3, script: 0x52, flags: 0x0},
+ 737: {region: 0x164, script: 0x52, flags: 0x0},
+ 738: {region: 0x164, script: 0x52, flags: 0x0},
+ 739: {region: 0x122, script: 0x5, flags: 0x0},
+ 740: {region: 0xcb, script: 0x52, flags: 0x0},
+ 741: {region: 0x164, script: 0x52, flags: 0x0},
+ 742: {region: 0x164, script: 0x52, flags: 0x0},
+ 743: {region: 0x164, script: 0x52, flags: 0x0},
+ 744: {region: 0xbe, script: 0x52, flags: 0x0},
+ 745: {region: 0xd0, script: 0x52, flags: 0x0},
+ 746: {region: 0x164, script: 0x52, flags: 0x0},
+ 747: {region: 0x51, script: 0x52, flags: 0x0},
+ 748: {region: 0xda, script: 0x20, flags: 0x0},
+ 749: {region: 0x12e, script: 0x52, flags: 0x0},
+ 750: {region: 0xbf, script: 0x52, flags: 0x0},
+ 751: {region: 0x164, script: 0x52, flags: 0x0},
+ 752: {region: 0x164, script: 0x52, flags: 0x0},
+ 753: {region: 0xdf, script: 0x52, flags: 0x0},
+ 754: {region: 0x164, script: 0x52, flags: 0x0},
+ 755: {region: 0x94, script: 0x52, flags: 0x0},
+ 756: {region: 0x9a, script: 0x36, flags: 0x0},
+ 757: {region: 0x164, script: 0x52, flags: 0x0},
+ 758: {region: 0xc1, script: 0x1e, flags: 0x0},
+ 759: {region: 0x164, script: 0x5, flags: 0x0},
+ 760: {region: 0x164, script: 0x52, flags: 0x0},
+ 761: {region: 0x164, script: 0x52, flags: 0x0},
+ 762: {region: 0x164, script: 0x52, flags: 0x0},
+ 763: {region: 0x98, script: 0x64, flags: 0x0},
+ 764: {region: 0x164, script: 0x52, flags: 0x0},
+ 765: {region: 0x164, script: 0x52, flags: 0x0},
+ 766: {region: 0x10a, script: 0x52, flags: 0x0},
+ 767: {region: 0x164, script: 0x52, flags: 0x0},
+ 768: {region: 0x164, script: 0x52, flags: 0x0},
+ 769: {region: 0x164, script: 0x52, flags: 0x0},
+ 770: {region: 0x28, script: 0x3, flags: 0x1},
+ 771: {region: 0x164, script: 0x52, flags: 0x0},
+ 772: {region: 0x164, script: 0x52, flags: 0x0},
+ 773: {region: 0x98, script: 0xe, flags: 0x0},
+ 774: {region: 0xc3, script: 0x6b, flags: 0x0},
+ 776: {region: 0x164, script: 0x52, flags: 0x0},
+ 777: {region: 0x48, script: 0x52, flags: 0x0},
+ 778: {region: 0x48, script: 0x52, flags: 0x0},
+ 779: {region: 0x36, script: 0x52, flags: 0x0},
+ 780: {region: 0x164, script: 0x52, flags: 0x0},
+ 781: {region: 0x164, script: 0x52, flags: 0x0},
+ 782: {region: 0x164, script: 0x52, flags: 0x0},
+ 783: {region: 0x164, script: 0x52, flags: 0x0},
+ 784: {region: 0x164, script: 0x52, flags: 0x0},
+ 785: {region: 0x164, script: 0x52, flags: 0x0},
+ 786: {region: 0x98, script: 0x20, flags: 0x0},
+ 787: {region: 0xda, script: 0x20, flags: 0x0},
+ 788: {region: 0x105, script: 0x1e, flags: 0x0},
+ 789: {region: 0x34, script: 0x68, flags: 0x0},
+ 790: {region: 0x2b, script: 0x3, flags: 0x1},
+ 791: {region: 0xca, script: 0x52, flags: 0x0},
+ 792: {region: 0x164, script: 0x52, flags: 0x0},
+ 793: {region: 0x164, script: 0x52, flags: 0x0},
+ 794: {region: 0x164, script: 0x52, flags: 0x0},
+ 795: {region: 0x98, script: 0x20, flags: 0x0},
+ 796: {region: 0x51, script: 0x52, flags: 0x0},
+ 798: {region: 0x164, script: 0x52, flags: 0x0},
+ 799: {region: 0x134, script: 0x52, flags: 0x0},
+ 800: {region: 0x164, script: 0x52, flags: 0x0},
+ 801: {region: 0x164, script: 0x52, flags: 0x0},
+ 802: {region: 0xe7, script: 0x5, flags: 0x0},
+ 803: {region: 0xc2, script: 0x52, flags: 0x0},
+ 804: {region: 0x98, script: 0x20, flags: 0x0},
+ 805: {region: 0x94, script: 0x52, flags: 0x0},
+ 806: {region: 0x163, script: 0x52, flags: 0x0},
+ 807: {region: 0x164, script: 0x52, flags: 0x0},
+ 808: {region: 0xc3, script: 0x6b, flags: 0x0},
+ 809: {region: 0x164, script: 0x52, flags: 0x0},
+ 810: {region: 0x164, script: 0x27, flags: 0x0},
+ 811: {region: 0x105, script: 0x1e, flags: 0x0},
+ 812: {region: 0x164, script: 0x52, flags: 0x0},
+ 813: {region: 0x130, script: 0x52, flags: 0x0},
+ 814: {region: 0x9b, script: 0x5d, flags: 0x0},
+ 815: {region: 0x164, script: 0x52, flags: 0x0},
+ 816: {region: 0x164, script: 0x52, flags: 0x0},
+ 817: {region: 0x9b, script: 0x5, flags: 0x0},
+ 818: {region: 0x164, script: 0x52, flags: 0x0},
+ 819: {region: 0x164, script: 0x52, flags: 0x0},
+ 820: {region: 0x164, script: 0x52, flags: 0x0},
+ 821: {region: 0xdc, script: 0x52, flags: 0x0},
+ 822: {region: 0x164, script: 0x52, flags: 0x0},
+ 823: {region: 0x164, script: 0x52, flags: 0x0},
+ 825: {region: 0x164, script: 0x52, flags: 0x0},
+ 826: {region: 0x52, script: 0x34, flags: 0x0},
+ 827: {region: 0x9d, script: 0x52, flags: 0x0},
+ 828: {region: 0xd1, script: 0x52, flags: 0x0},
+ 829: {region: 0x164, script: 0x52, flags: 0x0},
+ 830: {region: 0xd9, script: 0x52, flags: 0x0},
+ 831: {region: 0x164, script: 0x52, flags: 0x0},
+ 832: {region: 0x164, script: 0x52, flags: 0x0},
+ 833: {region: 0x164, script: 0x52, flags: 0x0},
+ 834: {region: 0xce, script: 0x52, flags: 0x0},
+ 835: {region: 0x164, script: 0x52, flags: 0x0},
+ 836: {region: 0x164, script: 0x52, flags: 0x0},
+ 837: {region: 0x163, script: 0x52, flags: 0x0},
+ 838: {region: 0xd0, script: 0x52, flags: 0x0},
+ 839: {region: 0x5f, script: 0x52, flags: 0x0},
+ 840: {region: 0xda, script: 0x20, flags: 0x0},
+ 841: {region: 0x164, script: 0x52, flags: 0x0},
+ 842: {region: 0xda, script: 0x20, flags: 0x0},
+ 843: {region: 0x164, script: 0x52, flags: 0x0},
+ 844: {region: 0x164, script: 0x52, flags: 0x0},
+ 845: {region: 0xd1, script: 0x52, flags: 0x0},
+ 846: {region: 0x164, script: 0x52, flags: 0x0},
+ 847: {region: 0x164, script: 0x52, flags: 0x0},
+ 848: {region: 0xd0, script: 0x52, flags: 0x0},
+ 849: {region: 0x164, script: 0x52, flags: 0x0},
+ 850: {region: 0xce, script: 0x52, flags: 0x0},
+ 851: {region: 0xce, script: 0x52, flags: 0x0},
+ 852: {region: 0x164, script: 0x52, flags: 0x0},
+ 853: {region: 0x164, script: 0x52, flags: 0x0},
+ 854: {region: 0x94, script: 0x52, flags: 0x0},
+ 855: {region: 0x164, script: 0x52, flags: 0x0},
+ 856: {region: 0xde, script: 0x52, flags: 0x0},
+ 857: {region: 0x164, script: 0x52, flags: 0x0},
+ 858: {region: 0x164, script: 0x52, flags: 0x0},
+ 859: {region: 0x98, script: 0x52, flags: 0x0},
+ 860: {region: 0x164, script: 0x52, flags: 0x0},
+ 861: {region: 0x164, script: 0x52, flags: 0x0},
+ 862: {region: 0xd8, script: 0x52, flags: 0x0},
+ 863: {region: 0x51, script: 0x52, flags: 0x0},
+ 864: {region: 0x164, script: 0x52, flags: 0x0},
+ 865: {region: 0xd9, script: 0x52, flags: 0x0},
+ 866: {region: 0x164, script: 0x52, flags: 0x0},
+ 867: {region: 0x51, script: 0x52, flags: 0x0},
+ 868: {region: 0x164, script: 0x52, flags: 0x0},
+ 869: {region: 0x164, script: 0x52, flags: 0x0},
+ 870: {region: 0xd9, script: 0x52, flags: 0x0},
+ 871: {region: 0x122, script: 0x4e, flags: 0x0},
+ 872: {region: 0x98, script: 0x20, flags: 0x0},
+ 873: {region: 0x10b, script: 0xb7, flags: 0x0},
+ 874: {region: 0x164, script: 0x52, flags: 0x0},
+ 875: {region: 0x164, script: 0x52, flags: 0x0},
+ 876: {region: 0x83, script: 0x70, flags: 0x0},
+ 877: {region: 0x160, script: 0x52, flags: 0x0},
+ 878: {region: 0x164, script: 0x52, flags: 0x0},
+ 879: {region: 0x48, script: 0x17, flags: 0x0},
+ 880: {region: 0x164, script: 0x52, flags: 0x0},
+ 881: {region: 0x160, script: 0x52, flags: 0x0},
+ 882: {region: 0x164, script: 0x52, flags: 0x0},
+ 883: {region: 0x164, script: 0x52, flags: 0x0},
+ 884: {region: 0x164, script: 0x52, flags: 0x0},
+ 885: {region: 0x164, script: 0x52, flags: 0x0},
+ 886: {region: 0x164, script: 0x52, flags: 0x0},
+ 887: {region: 0x116, script: 0x52, flags: 0x0},
+ 888: {region: 0x164, script: 0x52, flags: 0x0},
+ 889: {region: 0x164, script: 0x52, flags: 0x0},
+ 890: {region: 0x134, script: 0x52, flags: 0x0},
+ 891: {region: 0x164, script: 0x52, flags: 0x0},
+ 892: {region: 0x52, script: 0x52, flags: 0x0},
+ 893: {region: 0x164, script: 0x52, flags: 0x0},
+ 894: {region: 0xcd, script: 0x52, flags: 0x0},
+ 895: {region: 0x12e, script: 0x52, flags: 0x0},
+ 896: {region: 0x130, script: 0x52, flags: 0x0},
+ 897: {region: 0x7f, script: 0x52, flags: 0x0},
+ 898: {region: 0x77, script: 0x52, flags: 0x0},
+ 899: {region: 0x164, script: 0x52, flags: 0x0},
+ 901: {region: 0x164, script: 0x52, flags: 0x0},
+ 902: {region: 0x164, script: 0x52, flags: 0x0},
+ 903: {region: 0x6e, script: 0x52, flags: 0x0},
+ 904: {region: 0x164, script: 0x52, flags: 0x0},
+ 905: {region: 0x164, script: 0x52, flags: 0x0},
+ 906: {region: 0x164, script: 0x52, flags: 0x0},
+ 907: {region: 0x164, script: 0x52, flags: 0x0},
+ 908: {region: 0x98, script: 0x75, flags: 0x0},
+ 909: {region: 0x164, script: 0x52, flags: 0x0},
+ 910: {region: 0x164, script: 0x5, flags: 0x0},
+ 911: {region: 0x7c, script: 0x1e, flags: 0x0},
+ 912: {region: 0x134, script: 0x76, flags: 0x0},
+ 913: {region: 0x164, script: 0x5, flags: 0x0},
+ 914: {region: 0xc4, script: 0x74, flags: 0x0},
+ 915: {region: 0x164, script: 0x52, flags: 0x0},
+ 916: {region: 0x2e, script: 0x3, flags: 0x1},
+ 917: {region: 0xe6, script: 0x52, flags: 0x0},
+ 918: {region: 0x31, script: 0x2, flags: 0x1},
+ 919: {region: 0xe6, script: 0x52, flags: 0x0},
+ 920: {region: 0x2f, script: 0x52, flags: 0x0},
+ 921: {region: 0xef, script: 0x52, flags: 0x0},
+ 922: {region: 0x164, script: 0x52, flags: 0x0},
+ 923: {region: 0x77, script: 0x52, flags: 0x0},
+ 924: {region: 0xd5, script: 0x52, flags: 0x0},
+ 925: {region: 0x134, script: 0x52, flags: 0x0},
+ 926: {region: 0x48, script: 0x52, flags: 0x0},
+ 927: {region: 0x164, script: 0x52, flags: 0x0},
+ 928: {region: 0x9b, script: 0xdd, flags: 0x0},
+ 929: {region: 0x164, script: 0x52, flags: 0x0},
+ 930: {region: 0x5f, script: 0x52, flags: 0x0},
+ 931: {region: 0x164, script: 0x5, flags: 0x0},
+ 932: {region: 0xaf, script: 0x7f, flags: 0x0},
+ 934: {region: 0x164, script: 0x52, flags: 0x0},
+ 935: {region: 0x164, script: 0x52, flags: 0x0},
+ 936: {region: 0x98, script: 0x12, flags: 0x0},
+ 937: {region: 0xa3, script: 0x52, flags: 0x0},
+ 938: {region: 0xe8, script: 0x52, flags: 0x0},
+ 939: {region: 0x164, script: 0x52, flags: 0x0},
+ 940: {region: 0x9d, script: 0x52, flags: 0x0},
+ 941: {region: 0x164, script: 0x52, flags: 0x0},
+ 942: {region: 0x164, script: 0x52, flags: 0x0},
+ 943: {region: 0x86, script: 0x2d, flags: 0x0},
+ 944: {region: 0x74, script: 0x52, flags: 0x0},
+ 945: {region: 0x164, script: 0x52, flags: 0x0},
+ 946: {region: 0xe7, script: 0x45, flags: 0x0},
+ 947: {region: 0x9b, script: 0x5, flags: 0x0},
+ 948: {region: 0x1, script: 0x52, flags: 0x0},
+ 949: {region: 0x23, script: 0x5, flags: 0x0},
+ 950: {region: 0x164, script: 0x52, flags: 0x0},
+ 951: {region: 0x40, script: 0x52, flags: 0x0},
+ 952: {region: 0x164, script: 0x52, flags: 0x0},
+ 953: {region: 0x79, script: 0x52, flags: 0x0},
+ 954: {region: 0x164, script: 0x52, flags: 0x0},
+ 955: {region: 0xe3, script: 0x52, flags: 0x0},
+ 956: {region: 0x88, script: 0x52, flags: 0x0},
+ 957: {region: 0x68, script: 0x52, flags: 0x0},
+ 958: {region: 0x164, script: 0x52, flags: 0x0},
+ 959: {region: 0x98, script: 0x20, flags: 0x0},
+ 960: {region: 0x164, script: 0x52, flags: 0x0},
+ 961: {region: 0x101, script: 0x52, flags: 0x0},
+ 962: {region: 0x94, script: 0x52, flags: 0x0},
+ 963: {region: 0x164, script: 0x52, flags: 0x0},
+ 964: {region: 0x164, script: 0x52, flags: 0x0},
+ 965: {region: 0x9d, script: 0x52, flags: 0x0},
+ 966: {region: 0x164, script: 0x5, flags: 0x0},
+ 967: {region: 0x98, script: 0x52, flags: 0x0},
+ 968: {region: 0x33, script: 0x2, flags: 0x1},
+ 969: {region: 0xda, script: 0x20, flags: 0x0},
+ 970: {region: 0x34, script: 0xe, flags: 0x0},
+ 971: {region: 0x4d, script: 0x52, flags: 0x0},
+ 972: {region: 0x71, script: 0x52, flags: 0x0},
+ 973: {region: 0x4d, script: 0x52, flags: 0x0},
+ 974: {region: 0x9b, script: 0x5, flags: 0x0},
+ 975: {region: 0x10b, script: 0x52, flags: 0x0},
+ 976: {region: 0x39, script: 0x52, flags: 0x0},
+ 977: {region: 0x164, script: 0x52, flags: 0x0},
+ 978: {region: 0xd0, script: 0x52, flags: 0x0},
+ 979: {region: 0x103, script: 0x52, flags: 0x0},
+ 980: {region: 0x94, script: 0x52, flags: 0x0},
+ 981: {region: 0x12e, script: 0x52, flags: 0x0},
+ 982: {region: 0x164, script: 0x52, flags: 0x0},
+ 983: {region: 0x164, script: 0x52, flags: 0x0},
+ 984: {region: 0x72, script: 0x52, flags: 0x0},
+ 985: {region: 0x105, script: 0x1e, flags: 0x0},
+ 986: {region: 0x12f, script: 0x1e, flags: 0x0},
+ 987: {region: 0x108, script: 0x52, flags: 0x0},
+ 988: {region: 0x106, script: 0x52, flags: 0x0},
+ 989: {region: 0x12e, script: 0x52, flags: 0x0},
+ 990: {region: 0x164, script: 0x52, flags: 0x0},
+ 991: {region: 0xa1, script: 0x44, flags: 0x0},
+ 992: {region: 0x98, script: 0x20, flags: 0x0},
+ 993: {region: 0x7f, script: 0x52, flags: 0x0},
+ 994: {region: 0x105, script: 0x1e, flags: 0x0},
+ 995: {region: 0xa3, script: 0x52, flags: 0x0},
+ 996: {region: 0x94, script: 0x52, flags: 0x0},
+ 997: {region: 0x98, script: 0x52, flags: 0x0},
+ 998: {region: 0x98, script: 0xbb, flags: 0x0},
+ 999: {region: 0x164, script: 0x52, flags: 0x0},
+ 1000: {region: 0x164, script: 0x52, flags: 0x0},
+ 1001: {region: 0x12e, script: 0x52, flags: 0x0},
+ 1002: {region: 0x9d, script: 0x52, flags: 0x0},
+ 1003: {region: 0x98, script: 0x20, flags: 0x0},
+ 1004: {region: 0x164, script: 0x5, flags: 0x0},
+ 1005: {region: 0x9d, script: 0x52, flags: 0x0},
+ 1006: {region: 0x7a, script: 0x52, flags: 0x0},
+ 1007: {region: 0x48, script: 0x52, flags: 0x0},
+ 1008: {region: 0x35, script: 0x4, flags: 0x1},
+ 1009: {region: 0x9d, script: 0x52, flags: 0x0},
+ 1010: {region: 0x9b, script: 0x5, flags: 0x0},
+ 1011: {region: 0xd9, script: 0x52, flags: 0x0},
+ 1012: {region: 0x4e, script: 0x52, flags: 0x0},
+ 1013: {region: 0xd0, script: 0x52, flags: 0x0},
+ 1014: {region: 0xce, script: 0x52, flags: 0x0},
+ 1015: {region: 0xc2, script: 0x52, flags: 0x0},
+ 1016: {region: 0x4b, script: 0x52, flags: 0x0},
+ 1017: {region: 0x95, script: 0x72, flags: 0x0},
+ 1018: {region: 0xb5, script: 0x52, flags: 0x0},
+ 1019: {region: 0x164, script: 0x27, flags: 0x0},
+ 1020: {region: 0x164, script: 0x52, flags: 0x0},
+ 1022: {region: 0xb9, script: 0xd2, flags: 0x0},
+ 1023: {region: 0x164, script: 0x52, flags: 0x0},
+ 1024: {region: 0xc3, script: 0x6b, flags: 0x0},
+ 1025: {region: 0x164, script: 0x5, flags: 0x0},
+ 1026: {region: 0xb2, script: 0xc1, flags: 0x0},
+ 1027: {region: 0x6e, script: 0x52, flags: 0x0},
+ 1028: {region: 0x164, script: 0x52, flags: 0x0},
+ 1029: {region: 0x164, script: 0x52, flags: 0x0},
+ 1030: {region: 0x164, script: 0x52, flags: 0x0},
+ 1031: {region: 0x164, script: 0x52, flags: 0x0},
+ 1032: {region: 0x110, script: 0x52, flags: 0x0},
+ 1033: {region: 0x164, script: 0x52, flags: 0x0},
+ 1034: {region: 0xe7, script: 0x5, flags: 0x0},
+ 1035: {region: 0x164, script: 0x52, flags: 0x0},
+ 1036: {region: 0x10e, script: 0x52, flags: 0x0},
+ 1037: {region: 0x164, script: 0x52, flags: 0x0},
+ 1038: {region: 0xe8, script: 0x52, flags: 0x0},
+ 1039: {region: 0x164, script: 0x52, flags: 0x0},
+ 1040: {region: 0x94, script: 0x52, flags: 0x0},
+ 1041: {region: 0x141, script: 0x52, flags: 0x0},
+ 1042: {region: 0x10b, script: 0x52, flags: 0x0},
+ 1044: {region: 0x10b, script: 0x52, flags: 0x0},
+ 1045: {region: 0x71, script: 0x52, flags: 0x0},
+ 1046: {region: 0x96, script: 0xb8, flags: 0x0},
+ 1047: {region: 0x164, script: 0x52, flags: 0x0},
+ 1048: {region: 0x71, script: 0x52, flags: 0x0},
+ 1049: {region: 0x163, script: 0x52, flags: 0x0},
+ 1050: {region: 0x164, script: 0x52, flags: 0x0},
+ 1051: {region: 0xc2, script: 0x52, flags: 0x0},
+ 1052: {region: 0x164, script: 0x52, flags: 0x0},
+ 1053: {region: 0x164, script: 0x52, flags: 0x0},
+ 1054: {region: 0x164, script: 0x52, flags: 0x0},
+ 1055: {region: 0x114, script: 0x52, flags: 0x0},
+ 1056: {region: 0x164, script: 0x52, flags: 0x0},
+ 1057: {region: 0x164, script: 0x52, flags: 0x0},
+ 1058: {region: 0x122, script: 0xd5, flags: 0x0},
+ 1059: {region: 0x164, script: 0x52, flags: 0x0},
+ 1060: {region: 0x164, script: 0x52, flags: 0x0},
+ 1061: {region: 0x164, script: 0x52, flags: 0x0},
+ 1062: {region: 0x164, script: 0x52, flags: 0x0},
+ 1063: {region: 0x26, script: 0x52, flags: 0x0},
+ 1064: {region: 0x39, script: 0x5, flags: 0x1},
+ 1065: {region: 0x98, script: 0xc2, flags: 0x0},
+ 1066: {region: 0x115, script: 0x52, flags: 0x0},
+ 1067: {region: 0x113, script: 0x52, flags: 0x0},
+ 1068: {region: 0x98, script: 0x20, flags: 0x0},
+ 1069: {region: 0x160, script: 0x52, flags: 0x0},
+ 1070: {region: 0x164, script: 0x52, flags: 0x0},
+ 1071: {region: 0x164, script: 0x52, flags: 0x0},
+ 1072: {region: 0x6c, script: 0x52, flags: 0x0},
+ 1073: {region: 0x160, script: 0x52, flags: 0x0},
+ 1074: {region: 0x164, script: 0x52, flags: 0x0},
+ 1075: {region: 0x5f, script: 0x52, flags: 0x0},
+ 1076: {region: 0x94, script: 0x52, flags: 0x0},
+ 1077: {region: 0x164, script: 0x52, flags: 0x0},
+ 1078: {region: 0x164, script: 0x52, flags: 0x0},
+ 1079: {region: 0x12e, script: 0x52, flags: 0x0},
+ 1080: {region: 0x164, script: 0x52, flags: 0x0},
+ 1081: {region: 0x83, script: 0x52, flags: 0x0},
+ 1082: {region: 0x10b, script: 0x52, flags: 0x0},
+ 1083: {region: 0x12e, script: 0x52, flags: 0x0},
+ 1084: {region: 0x15e, script: 0x5, flags: 0x0},
+ 1085: {region: 0x4a, script: 0x52, flags: 0x0},
+ 1086: {region: 0x5f, script: 0x52, flags: 0x0},
+ 1087: {region: 0x164, script: 0x52, flags: 0x0},
+ 1088: {region: 0x98, script: 0x20, flags: 0x0},
+ 1089: {region: 0x94, script: 0x52, flags: 0x0},
+ 1090: {region: 0x164, script: 0x52, flags: 0x0},
+ 1091: {region: 0x34, script: 0xe, flags: 0x0},
+ 1092: {region: 0x9a, script: 0xc5, flags: 0x0},
+ 1093: {region: 0xe8, script: 0x52, flags: 0x0},
+ 1094: {region: 0x98, script: 0xcd, flags: 0x0},
+ 1095: {region: 0xda, script: 0x20, flags: 0x0},
+ 1096: {region: 0x164, script: 0x52, flags: 0x0},
+ 1097: {region: 0x164, script: 0x52, flags: 0x0},
+ 1098: {region: 0x164, script: 0x52, flags: 0x0},
+ 1099: {region: 0x164, script: 0x52, flags: 0x0},
+ 1100: {region: 0x164, script: 0x52, flags: 0x0},
+ 1101: {region: 0x164, script: 0x52, flags: 0x0},
+ 1102: {region: 0x164, script: 0x52, flags: 0x0},
+ 1103: {region: 0x164, script: 0x52, flags: 0x0},
+ 1104: {region: 0xe6, script: 0x52, flags: 0x0},
+ 1105: {region: 0x164, script: 0x52, flags: 0x0},
+ 1106: {region: 0x164, script: 0x52, flags: 0x0},
+ 1107: {region: 0x98, script: 0x4a, flags: 0x0},
+ 1108: {region: 0x52, script: 0xcb, flags: 0x0},
+ 1109: {region: 0xda, script: 0x20, flags: 0x0},
+ 1110: {region: 0xda, script: 0x20, flags: 0x0},
+ 1111: {region: 0x98, script: 0xd0, flags: 0x0},
+ 1112: {region: 0x164, script: 0x52, flags: 0x0},
+ 1113: {region: 0x111, script: 0x52, flags: 0x0},
+ 1114: {region: 0x130, script: 0x52, flags: 0x0},
+ 1115: {region: 0x125, script: 0x52, flags: 0x0},
+ 1116: {region: 0x164, script: 0x52, flags: 0x0},
+ 1117: {region: 0x3e, script: 0x3, flags: 0x1},
+ 1118: {region: 0x164, script: 0x52, flags: 0x0},
+ 1119: {region: 0x164, script: 0x52, flags: 0x0},
+ 1120: {region: 0x164, script: 0x52, flags: 0x0},
+ 1121: {region: 0x122, script: 0xd5, flags: 0x0},
+ 1122: {region: 0xda, script: 0x20, flags: 0x0},
+ 1123: {region: 0xda, script: 0x20, flags: 0x0},
+ 1124: {region: 0xda, script: 0x20, flags: 0x0},
+ 1125: {region: 0x6e, script: 0x27, flags: 0x0},
+ 1126: {region: 0x164, script: 0x52, flags: 0x0},
+ 1127: {region: 0x6c, script: 0x27, flags: 0x0},
+ 1128: {region: 0x164, script: 0x52, flags: 0x0},
+ 1129: {region: 0x164, script: 0x52, flags: 0x0},
+ 1130: {region: 0x164, script: 0x52, flags: 0x0},
+ 1131: {region: 0xd5, script: 0x52, flags: 0x0},
+ 1132: {region: 0x126, script: 0x52, flags: 0x0},
+ 1133: {region: 0x124, script: 0x52, flags: 0x0},
+ 1134: {region: 0x31, script: 0x52, flags: 0x0},
+ 1135: {region: 0xda, script: 0x20, flags: 0x0},
+ 1136: {region: 0xe6, script: 0x52, flags: 0x0},
+ 1137: {region: 0x164, script: 0x52, flags: 0x0},
+ 1138: {region: 0x164, script: 0x52, flags: 0x0},
+ 1139: {region: 0x31, script: 0x52, flags: 0x0},
+ 1140: {region: 0xd3, script: 0x52, flags: 0x0},
+ 1141: {region: 0x164, script: 0x52, flags: 0x0},
+ 1142: {region: 0x160, script: 0x52, flags: 0x0},
+ 1143: {region: 0x164, script: 0x52, flags: 0x0},
+ 1144: {region: 0x128, script: 0x52, flags: 0x0},
+ 1145: {region: 0x164, script: 0x52, flags: 0x0},
+ 1146: {region: 0xcd, script: 0x52, flags: 0x0},
+ 1147: {region: 0x164, script: 0x52, flags: 0x0},
+ 1148: {region: 0xe5, script: 0x52, flags: 0x0},
+ 1149: {region: 0x164, script: 0x52, flags: 0x0},
+ 1150: {region: 0x164, script: 0x52, flags: 0x0},
+ 1151: {region: 0x164, script: 0x52, flags: 0x0},
+ 1152: {region: 0x12a, script: 0x52, flags: 0x0},
+ 1153: {region: 0x12a, script: 0x52, flags: 0x0},
+ 1154: {region: 0x12d, script: 0x52, flags: 0x0},
+ 1155: {region: 0x164, script: 0x5, flags: 0x0},
+ 1156: {region: 0x160, script: 0x52, flags: 0x0},
+ 1157: {region: 0x86, script: 0x2d, flags: 0x0},
+ 1158: {region: 0xda, script: 0x20, flags: 0x0},
+ 1159: {region: 0xe6, script: 0x52, flags: 0x0},
+ 1160: {region: 0x42, script: 0xd6, flags: 0x0},
+ 1161: {region: 0x164, script: 0x52, flags: 0x0},
+ 1162: {region: 0x105, script: 0x1e, flags: 0x0},
+ 1163: {region: 0x164, script: 0x52, flags: 0x0},
+ 1164: {region: 0x164, script: 0x52, flags: 0x0},
+ 1165: {region: 0x130, script: 0x52, flags: 0x0},
+ 1166: {region: 0x164, script: 0x52, flags: 0x0},
+ 1167: {region: 0x122, script: 0xd5, flags: 0x0},
+ 1168: {region: 0x31, script: 0x52, flags: 0x0},
+ 1169: {region: 0x164, script: 0x52, flags: 0x0},
+ 1170: {region: 0x164, script: 0x52, flags: 0x0},
+ 1171: {region: 0xcd, script: 0x52, flags: 0x0},
+ 1172: {region: 0x164, script: 0x52, flags: 0x0},
+ 1173: {region: 0x164, script: 0x52, flags: 0x0},
+ 1174: {region: 0x12c, script: 0x52, flags: 0x0},
+ 1175: {region: 0x164, script: 0x52, flags: 0x0},
+ 1177: {region: 0x164, script: 0x52, flags: 0x0},
+ 1178: {region: 0xd3, script: 0x52, flags: 0x0},
+ 1179: {region: 0x52, script: 0xce, flags: 0x0},
+ 1180: {region: 0xe4, script: 0x52, flags: 0x0},
+ 1181: {region: 0x164, script: 0x52, flags: 0x0},
+ 1182: {region: 0x105, script: 0x1e, flags: 0x0},
+ 1183: {region: 0xb9, script: 0x52, flags: 0x0},
+ 1184: {region: 0x164, script: 0x52, flags: 0x0},
+ 1185: {region: 0x105, script: 0x1e, flags: 0x0},
+ 1186: {region: 0x41, script: 0x4, flags: 0x1},
+ 1187: {region: 0x11b, script: 0xd8, flags: 0x0},
+ 1188: {region: 0x12f, script: 0x1e, flags: 0x0},
+ 1189: {region: 0x74, script: 0x52, flags: 0x0},
+ 1190: {region: 0x29, script: 0x52, flags: 0x0},
+ 1192: {region: 0x45, script: 0x3, flags: 0x1},
+ 1193: {region: 0x98, script: 0xe, flags: 0x0},
+ 1194: {region: 0xe7, script: 0x5, flags: 0x0},
+ 1195: {region: 0x164, script: 0x52, flags: 0x0},
+ 1196: {region: 0x164, script: 0x52, flags: 0x0},
+ 1197: {region: 0x164, script: 0x52, flags: 0x0},
+ 1198: {region: 0x164, script: 0x52, flags: 0x0},
+ 1199: {region: 0x164, script: 0x52, flags: 0x0},
+ 1200: {region: 0x164, script: 0x52, flags: 0x0},
+ 1201: {region: 0x164, script: 0x52, flags: 0x0},
+ 1202: {region: 0x48, script: 0x4, flags: 0x1},
+ 1203: {region: 0x164, script: 0x52, flags: 0x0},
+ 1204: {region: 0xb3, script: 0xd9, flags: 0x0},
+ 1205: {region: 0x164, script: 0x52, flags: 0x0},
+ 1206: {region: 0x160, script: 0x52, flags: 0x0},
+ 1207: {region: 0x9d, script: 0x52, flags: 0x0},
+ 1208: {region: 0x105, script: 0x52, flags: 0x0},
+ 1209: {region: 0x13d, script: 0x52, flags: 0x0},
+ 1210: {region: 0x11a, script: 0x52, flags: 0x0},
+ 1211: {region: 0x164, script: 0x52, flags: 0x0},
+ 1212: {region: 0x35, script: 0x52, flags: 0x0},
+ 1213: {region: 0x5f, script: 0x52, flags: 0x0},
+ 1214: {region: 0xd0, script: 0x52, flags: 0x0},
+ 1215: {region: 0x1, script: 0x52, flags: 0x0},
+ 1216: {region: 0x105, script: 0x52, flags: 0x0},
+ 1217: {region: 0x69, script: 0x52, flags: 0x0},
+ 1218: {region: 0x12e, script: 0x52, flags: 0x0},
+ 1219: {region: 0x164, script: 0x52, flags: 0x0},
+ 1220: {region: 0x35, script: 0x52, flags: 0x0},
+ 1221: {region: 0x4d, script: 0x52, flags: 0x0},
+ 1222: {region: 0x164, script: 0x52, flags: 0x0},
+ 1223: {region: 0x6e, script: 0x27, flags: 0x0},
+ 1224: {region: 0x164, script: 0x52, flags: 0x0},
+ 1225: {region: 0xe6, script: 0x52, flags: 0x0},
+ 1226: {region: 0x2e, script: 0x52, flags: 0x0},
+ 1227: {region: 0x98, script: 0xd0, flags: 0x0},
+ 1228: {region: 0x98, script: 0x20, flags: 0x0},
+ 1229: {region: 0x164, script: 0x52, flags: 0x0},
+ 1230: {region: 0x164, script: 0x52, flags: 0x0},
+ 1231: {region: 0x164, script: 0x52, flags: 0x0},
+ 1232: {region: 0x164, script: 0x52, flags: 0x0},
+ 1233: {region: 0x164, script: 0x52, flags: 0x0},
+ 1234: {region: 0x164, script: 0x52, flags: 0x0},
+ 1235: {region: 0x164, script: 0x52, flags: 0x0},
+ 1236: {region: 0x164, script: 0x52, flags: 0x0},
+ 1237: {region: 0x164, script: 0x52, flags: 0x0},
+ 1238: {region: 0x13f, script: 0x52, flags: 0x0},
+ 1239: {region: 0x164, script: 0x52, flags: 0x0},
+ 1240: {region: 0x164, script: 0x52, flags: 0x0},
+ 1241: {region: 0xa7, script: 0x5, flags: 0x0},
+ 1242: {region: 0x164, script: 0x52, flags: 0x0},
+ 1243: {region: 0x113, script: 0x52, flags: 0x0},
+ 1244: {region: 0x164, script: 0x52, flags: 0x0},
+ 1245: {region: 0x164, script: 0x52, flags: 0x0},
+ 1246: {region: 0x164, script: 0x52, flags: 0x0},
+ 1247: {region: 0x164, script: 0x52, flags: 0x0},
+ 1248: {region: 0x98, script: 0x20, flags: 0x0},
+ 1249: {region: 0x52, script: 0x34, flags: 0x0},
+ 1250: {region: 0x164, script: 0x52, flags: 0x0},
+ 1251: {region: 0x164, script: 0x52, flags: 0x0},
+ 1252: {region: 0x40, script: 0x52, flags: 0x0},
+ 1253: {region: 0x164, script: 0x52, flags: 0x0},
+ 1254: {region: 0x12a, script: 0x18, flags: 0x0},
+ 1255: {region: 0x164, script: 0x52, flags: 0x0},
+ 1256: {region: 0x160, script: 0x52, flags: 0x0},
+ 1257: {region: 0x164, script: 0x52, flags: 0x0},
+ 1258: {region: 0x12a, script: 0x5a, flags: 0x0},
+ 1259: {region: 0x12a, script: 0x5b, flags: 0x0},
+ 1260: {region: 0x7c, script: 0x29, flags: 0x0},
+ 1261: {region: 0x52, script: 0x5e, flags: 0x0},
+ 1262: {region: 0x10a, script: 0x62, flags: 0x0},
+ 1263: {region: 0x107, script: 0x6c, flags: 0x0},
+ 1264: {region: 0x98, script: 0x20, flags: 0x0},
+ 1265: {region: 0x130, script: 0x52, flags: 0x0},
+ 1266: {region: 0x164, script: 0x52, flags: 0x0},
+ 1267: {region: 0x9b, script: 0x82, flags: 0x0},
+ 1268: {region: 0x164, script: 0x52, flags: 0x0},
+ 1269: {region: 0x15d, script: 0xba, flags: 0x0},
+ 1270: {region: 0x164, script: 0x52, flags: 0x0},
+ 1271: {region: 0x164, script: 0x52, flags: 0x0},
+ 1272: {region: 0xda, script: 0x20, flags: 0x0},
+ 1273: {region: 0x164, script: 0x52, flags: 0x0},
+ 1274: {region: 0x164, script: 0x52, flags: 0x0},
+ 1275: {region: 0xd0, script: 0x52, flags: 0x0},
+ 1276: {region: 0x74, script: 0x52, flags: 0x0},
+ 1277: {region: 0x164, script: 0x52, flags: 0x0},
+ 1278: {region: 0x164, script: 0x52, flags: 0x0},
+ 1279: {region: 0x51, script: 0x52, flags: 0x0},
+ 1280: {region: 0x164, script: 0x52, flags: 0x0},
+ 1281: {region: 0x164, script: 0x52, flags: 0x0},
+ 1282: {region: 0x164, script: 0x52, flags: 0x0},
+ 1283: {region: 0x51, script: 0x52, flags: 0x0},
+ 1284: {region: 0x164, script: 0x52, flags: 0x0},
+ 1285: {region: 0x164, script: 0x52, flags: 0x0},
+ 1286: {region: 0x164, script: 0x52, flags: 0x0},
+ 1287: {region: 0x164, script: 0x52, flags: 0x0},
+ 1288: {region: 0x1, script: 0x37, flags: 0x0},
+ 1289: {region: 0x164, script: 0x52, flags: 0x0},
+ 1290: {region: 0x164, script: 0x52, flags: 0x0},
+ 1291: {region: 0x164, script: 0x52, flags: 0x0},
+ 1292: {region: 0x164, script: 0x52, flags: 0x0},
+ 1293: {region: 0x164, script: 0x52, flags: 0x0},
+ 1294: {region: 0xd5, script: 0x52, flags: 0x0},
+ 1295: {region: 0x164, script: 0x52, flags: 0x0},
+ 1296: {region: 0x164, script: 0x52, flags: 0x0},
+ 1297: {region: 0x164, script: 0x52, flags: 0x0},
+ 1298: {region: 0x40, script: 0x52, flags: 0x0},
+ 1299: {region: 0x164, script: 0x52, flags: 0x0},
+ 1300: {region: 0xce, script: 0x52, flags: 0x0},
+ 1301: {region: 0x4c, script: 0x3, flags: 0x1},
+ 1302: {region: 0x164, script: 0x52, flags: 0x0},
+ 1303: {region: 0x164, script: 0x52, flags: 0x0},
+ 1304: {region: 0x164, script: 0x52, flags: 0x0},
+ 1305: {region: 0x52, script: 0x52, flags: 0x0},
+ 1306: {region: 0x10a, script: 0x52, flags: 0x0},
+ 1308: {region: 0xa7, script: 0x5, flags: 0x0},
+ 1309: {region: 0xd8, script: 0x52, flags: 0x0},
+ 1310: {region: 0xb9, script: 0xd2, flags: 0x0},
+ 1311: {region: 0x4f, script: 0x14, flags: 0x1},
+ 1312: {region: 0x164, script: 0x52, flags: 0x0},
+ 1313: {region: 0x121, script: 0x52, flags: 0x0},
+ 1314: {region: 0xcf, script: 0x52, flags: 0x0},
+ 1315: {region: 0x164, script: 0x52, flags: 0x0},
+ 1316: {region: 0x160, script: 0x52, flags: 0x0},
+ 1318: {region: 0x12a, script: 0x52, flags: 0x0},
+}
+
+// likelyLangList holds lists info associated with likelyLang.
+// Size: 396 bytes, 99 elements
+var likelyLangList = [99]likelyScriptRegion{
+ 0: {region: 0x9b, script: 0x7, flags: 0x0},
+ 1: {region: 0xa0, script: 0x6d, flags: 0x2},
+ 2: {region: 0x11b, script: 0x78, flags: 0x2},
+ 3: {region: 0x31, script: 0x52, flags: 0x0},
+ 4: {region: 0x9a, script: 0x5, flags: 0x4},
+ 5: {region: 0x9b, script: 0x5, flags: 0x4},
+ 6: {region: 0x105, script: 0x1e, flags: 0x4},
+ 7: {region: 0x9b, script: 0x5, flags: 0x2},
+ 8: {region: 0x98, script: 0xe, flags: 0x0},
+ 9: {region: 0x34, script: 0x16, flags: 0x2},
+ 10: {region: 0x105, script: 0x1e, flags: 0x0},
+ 11: {region: 0x37, script: 0x2a, flags: 0x2},
+ 12: {region: 0x134, script: 0x52, flags: 0x0},
+ 13: {region: 0x7a, script: 0xbd, flags: 0x2},
+ 14: {region: 0x113, script: 0x52, flags: 0x0},
+ 15: {region: 0x83, script: 0x1, flags: 0x2},
+ 16: {region: 0x5c, script: 0x1d, flags: 0x0},
+ 17: {region: 0x86, script: 0x57, flags: 0x2},
+ 18: {region: 0xd5, script: 0x52, flags: 0x0},
+ 19: {region: 0x51, script: 0x5, flags: 0x4},
+ 20: {region: 0x10a, script: 0x5, flags: 0x4},
+ 21: {region: 0xad, script: 0x1e, flags: 0x0},
+ 22: {region: 0x23, script: 0x5, flags: 0x4},
+ 23: {region: 0x52, script: 0x5, flags: 0x4},
+ 24: {region: 0x9b, script: 0x5, flags: 0x4},
+ 25: {region: 0xc4, script: 0x5, flags: 0x4},
+ 26: {region: 0x52, script: 0x5, flags: 0x2},
+ 27: {region: 0x12a, script: 0x52, flags: 0x0},
+ 28: {region: 0xaf, script: 0x5, flags: 0x4},
+ 29: {region: 0x9a, script: 0x5, flags: 0x2},
+ 30: {region: 0xa4, script: 0x1e, flags: 0x0},
+ 31: {region: 0x52, script: 0x5, flags: 0x4},
+ 32: {region: 0x12a, script: 0x52, flags: 0x4},
+ 33: {region: 0x52, script: 0x5, flags: 0x2},
+ 34: {region: 0x12a, script: 0x52, flags: 0x2},
+ 35: {region: 0xda, script: 0x20, flags: 0x0},
+ 36: {region: 0x98, script: 0x55, flags: 0x2},
+ 37: {region: 0x82, script: 0x52, flags: 0x0},
+ 38: {region: 0x83, script: 0x70, flags: 0x4},
+ 39: {region: 0x83, script: 0x70, flags: 0x2},
+ 40: {region: 0xc4, script: 0x1e, flags: 0x0},
+ 41: {region: 0x52, script: 0x66, flags: 0x4},
+ 42: {region: 0x52, script: 0x66, flags: 0x2},
+ 43: {region: 0xcf, script: 0x52, flags: 0x0},
+ 44: {region: 0x49, script: 0x5, flags: 0x4},
+ 45: {region: 0x94, script: 0x5, flags: 0x4},
+ 46: {region: 0x98, script: 0x2f, flags: 0x0},
+ 47: {region: 0xe7, script: 0x5, flags: 0x4},
+ 48: {region: 0xe7, script: 0x5, flags: 0x2},
+ 49: {region: 0x9b, script: 0x7c, flags: 0x0},
+ 50: {region: 0x52, script: 0x7d, flags: 0x2},
+ 51: {region: 0xb9, script: 0xd2, flags: 0x0},
+ 52: {region: 0xd8, script: 0x52, flags: 0x4},
+ 53: {region: 0xe7, script: 0x5, flags: 0x0},
+ 54: {region: 0x98, script: 0x20, flags: 0x2},
+ 55: {region: 0x98, script: 0x47, flags: 0x2},
+ 56: {region: 0x98, script: 0xc0, flags: 0x2},
+ 57: {region: 0x104, script: 0x1e, flags: 0x0},
+ 58: {region: 0xbc, script: 0x52, flags: 0x4},
+ 59: {region: 0x103, script: 0x52, flags: 0x4},
+ 60: {region: 0x105, script: 0x52, flags: 0x4},
+ 61: {region: 0x12a, script: 0x52, flags: 0x4},
+ 62: {region: 0x123, script: 0x1e, flags: 0x0},
+ 63: {region: 0xe7, script: 0x5, flags: 0x4},
+ 64: {region: 0xe7, script: 0x5, flags: 0x2},
+ 65: {region: 0x52, script: 0x5, flags: 0x0},
+ 66: {region: 0xad, script: 0x1e, flags: 0x4},
+ 67: {region: 0xc4, script: 0x1e, flags: 0x4},
+ 68: {region: 0xad, script: 0x1e, flags: 0x2},
+ 69: {region: 0x98, script: 0xe, flags: 0x0},
+ 70: {region: 0xda, script: 0x20, flags: 0x4},
+ 71: {region: 0xda, script: 0x20, flags: 0x2},
+ 72: {region: 0x136, script: 0x52, flags: 0x0},
+ 73: {region: 0x23, script: 0x5, flags: 0x4},
+ 74: {region: 0x52, script: 0x1e, flags: 0x4},
+ 75: {region: 0x23, script: 0x5, flags: 0x2},
+ 76: {region: 0x8c, script: 0x35, flags: 0x0},
+ 77: {region: 0x52, script: 0x34, flags: 0x4},
+ 78: {region: 0x52, script: 0x34, flags: 0x2},
+ 79: {region: 0x52, script: 0x34, flags: 0x0},
+ 80: {region: 0x2e, script: 0x35, flags: 0x4},
+ 81: {region: 0x3d, script: 0x35, flags: 0x4},
+ 82: {region: 0x7a, script: 0x35, flags: 0x4},
+ 83: {region: 0x7d, script: 0x35, flags: 0x4},
+ 84: {region: 0x8c, script: 0x35, flags: 0x4},
+ 85: {region: 0x94, script: 0x35, flags: 0x4},
+ 86: {region: 0xc5, script: 0x35, flags: 0x4},
+ 87: {region: 0xcf, script: 0x35, flags: 0x4},
+ 88: {region: 0xe1, script: 0x35, flags: 0x4},
+ 89: {region: 0xe4, script: 0x35, flags: 0x4},
+ 90: {region: 0xe6, script: 0x35, flags: 0x4},
+ 91: {region: 0x115, script: 0x35, flags: 0x4},
+ 92: {region: 0x122, script: 0x35, flags: 0x4},
+ 93: {region: 0x12d, script: 0x35, flags: 0x4},
+ 94: {region: 0x134, script: 0x35, flags: 0x4},
+ 95: {region: 0x13d, script: 0x35, flags: 0x4},
+ 96: {region: 0x12d, script: 0x11, flags: 0x2},
+ 97: {region: 0x12d, script: 0x30, flags: 0x2},
+ 98: {region: 0x12d, script: 0x35, flags: 0x2},
+}
+
+type likelyLangScript struct {
+ lang uint16
+ script uint8
+ flags uint8
+}
+
+// likelyRegion is a lookup table, indexed by regionID, for the most likely
+// languages and scripts given incomplete information. If more entries exist
+// for a given regionID, lang and script are the index and size respectively
+// of the list in likelyRegionList.
+// TODO: exclude containers and user-definable regions from the list.
+// Size: 1428 bytes, 357 elements
+var likelyRegion = [357]likelyLangScript{
+ 33: {lang: 0xd5, script: 0x52, flags: 0x0},
+ 34: {lang: 0x39, script: 0x5, flags: 0x0},
+ 35: {lang: 0x0, script: 0x2, flags: 0x1},
+ 38: {lang: 0x2, script: 0x2, flags: 0x1},
+ 39: {lang: 0x4, script: 0x2, flags: 0x1},
+ 41: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 42: {lang: 0x0, script: 0x52, flags: 0x0},
+ 43: {lang: 0x139, script: 0x52, flags: 0x0},
+ 44: {lang: 0x411, script: 0x52, flags: 0x0},
+ 45: {lang: 0x109, script: 0x52, flags: 0x0},
+ 47: {lang: 0x35e, script: 0x52, flags: 0x0},
+ 48: {lang: 0x43a, script: 0x52, flags: 0x0},
+ 49: {lang: 0x57, script: 0x52, flags: 0x0},
+ 50: {lang: 0x6, script: 0x2, flags: 0x1},
+ 52: {lang: 0xa3, script: 0xe, flags: 0x0},
+ 53: {lang: 0x35e, script: 0x52, flags: 0x0},
+ 54: {lang: 0x159, script: 0x52, flags: 0x0},
+ 55: {lang: 0x7d, script: 0x1e, flags: 0x0},
+ 56: {lang: 0x39, script: 0x5, flags: 0x0},
+ 57: {lang: 0x3d0, script: 0x52, flags: 0x0},
+ 58: {lang: 0x159, script: 0x52, flags: 0x0},
+ 59: {lang: 0x159, script: 0x52, flags: 0x0},
+ 61: {lang: 0x316, script: 0x52, flags: 0x0},
+ 62: {lang: 0x139, script: 0x52, flags: 0x0},
+ 63: {lang: 0x398, script: 0x52, flags: 0x0},
+ 64: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 66: {lang: 0x8, script: 0x2, flags: 0x1},
+ 68: {lang: 0x0, script: 0x52, flags: 0x0},
+ 70: {lang: 0x70, script: 0x1e, flags: 0x0},
+ 72: {lang: 0x508, script: 0x37, flags: 0x2},
+ 73: {lang: 0x316, script: 0x5, flags: 0x2},
+ 74: {lang: 0x43b, script: 0x52, flags: 0x0},
+ 75: {lang: 0x159, script: 0x52, flags: 0x0},
+ 76: {lang: 0x159, script: 0x52, flags: 0x0},
+ 77: {lang: 0x109, script: 0x52, flags: 0x0},
+ 78: {lang: 0x159, script: 0x52, flags: 0x0},
+ 80: {lang: 0x139, script: 0x52, flags: 0x0},
+ 81: {lang: 0x159, script: 0x52, flags: 0x0},
+ 82: {lang: 0xa, script: 0x5, flags: 0x1},
+ 83: {lang: 0x139, script: 0x52, flags: 0x0},
+ 84: {lang: 0x0, script: 0x52, flags: 0x0},
+ 85: {lang: 0x139, script: 0x52, flags: 0x0},
+ 88: {lang: 0x139, script: 0x52, flags: 0x0},
+ 89: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 90: {lang: 0x398, script: 0x52, flags: 0x0},
+ 92: {lang: 0xf, script: 0x2, flags: 0x1},
+ 93: {lang: 0xf6, script: 0x52, flags: 0x0},
+ 95: {lang: 0x109, script: 0x52, flags: 0x0},
+ 97: {lang: 0x1, script: 0x52, flags: 0x0},
+ 98: {lang: 0xfd, script: 0x52, flags: 0x0},
+ 100: {lang: 0x139, script: 0x52, flags: 0x0},
+ 102: {lang: 0x11, script: 0x2, flags: 0x1},
+ 103: {lang: 0x139, script: 0x52, flags: 0x0},
+ 104: {lang: 0x139, script: 0x52, flags: 0x0},
+ 105: {lang: 0x13b, script: 0x52, flags: 0x0},
+ 106: {lang: 0x39, script: 0x5, flags: 0x0},
+ 107: {lang: 0x39, script: 0x5, flags: 0x0},
+ 108: {lang: 0x465, script: 0x27, flags: 0x0},
+ 109: {lang: 0x139, script: 0x52, flags: 0x0},
+ 110: {lang: 0x13, script: 0x2, flags: 0x1},
+ 112: {lang: 0x109, script: 0x52, flags: 0x0},
+ 113: {lang: 0x14c, script: 0x52, flags: 0x0},
+ 114: {lang: 0x1b9, script: 0x20, flags: 0x2},
+ 117: {lang: 0x153, script: 0x52, flags: 0x0},
+ 119: {lang: 0x159, script: 0x52, flags: 0x0},
+ 121: {lang: 0x159, script: 0x52, flags: 0x0},
+ 122: {lang: 0x15, script: 0x2, flags: 0x1},
+ 124: {lang: 0x17, script: 0x3, flags: 0x1},
+ 125: {lang: 0x159, script: 0x52, flags: 0x0},
+ 127: {lang: 0x20, script: 0x52, flags: 0x0},
+ 129: {lang: 0x23d, script: 0x52, flags: 0x0},
+ 131: {lang: 0x159, script: 0x52, flags: 0x0},
+ 132: {lang: 0x159, script: 0x52, flags: 0x0},
+ 133: {lang: 0x139, script: 0x52, flags: 0x0},
+ 134: {lang: 0x1a, script: 0x2, flags: 0x1},
+ 135: {lang: 0x0, script: 0x52, flags: 0x0},
+ 136: {lang: 0x139, script: 0x52, flags: 0x0},
+ 138: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 140: {lang: 0x51f, script: 0x35, flags: 0x0},
+ 141: {lang: 0x0, script: 0x52, flags: 0x0},
+ 142: {lang: 0x139, script: 0x52, flags: 0x0},
+ 143: {lang: 0x1ca, script: 0x52, flags: 0x0},
+ 144: {lang: 0x1cd, script: 0x52, flags: 0x0},
+ 145: {lang: 0x1ce, script: 0x52, flags: 0x0},
+ 147: {lang: 0x139, script: 0x52, flags: 0x0},
+ 148: {lang: 0x1c, script: 0x2, flags: 0x1},
+ 150: {lang: 0x1b5, script: 0x37, flags: 0x0},
+ 152: {lang: 0x1e, script: 0x3, flags: 0x1},
+ 154: {lang: 0x39, script: 0x5, flags: 0x0},
+ 155: {lang: 0x21, script: 0x2, flags: 0x1},
+ 156: {lang: 0x1f0, script: 0x52, flags: 0x0},
+ 157: {lang: 0x1f1, script: 0x52, flags: 0x0},
+ 160: {lang: 0x39, script: 0x5, flags: 0x0},
+ 161: {lang: 0x1f8, script: 0x41, flags: 0x0},
+ 163: {lang: 0x43b, script: 0x52, flags: 0x0},
+ 164: {lang: 0x281, script: 0x1e, flags: 0x0},
+ 165: {lang: 0x23, script: 0x3, flags: 0x1},
+ 167: {lang: 0x26, script: 0x2, flags: 0x1},
+ 169: {lang: 0x24b, script: 0x4b, flags: 0x0},
+ 170: {lang: 0x24b, script: 0x4b, flags: 0x0},
+ 171: {lang: 0x39, script: 0x5, flags: 0x0},
+ 173: {lang: 0x3d9, script: 0x1e, flags: 0x0},
+ 174: {lang: 0x28, script: 0x2, flags: 0x1},
+ 175: {lang: 0x39, script: 0x5, flags: 0x0},
+ 177: {lang: 0x109, script: 0x52, flags: 0x0},
+ 178: {lang: 0x402, script: 0xc1, flags: 0x0},
+ 180: {lang: 0x431, script: 0x52, flags: 0x0},
+ 181: {lang: 0x2b7, script: 0x52, flags: 0x0},
+ 182: {lang: 0x159, script: 0x52, flags: 0x0},
+ 183: {lang: 0x2be, script: 0x52, flags: 0x0},
+ 184: {lang: 0x39, script: 0x5, flags: 0x0},
+ 185: {lang: 0x2a, script: 0x2, flags: 0x1},
+ 186: {lang: 0x159, script: 0x52, flags: 0x0},
+ 187: {lang: 0x2c, script: 0x2, flags: 0x1},
+ 188: {lang: 0x428, script: 0x52, flags: 0x0},
+ 189: {lang: 0x159, script: 0x52, flags: 0x0},
+ 190: {lang: 0x2e8, script: 0x52, flags: 0x0},
+ 193: {lang: 0x2e, script: 0x2, flags: 0x1},
+ 194: {lang: 0x9e, script: 0x52, flags: 0x0},
+ 195: {lang: 0x30, script: 0x2, flags: 0x1},
+ 196: {lang: 0x32, script: 0x2, flags: 0x1},
+ 197: {lang: 0x34, script: 0x2, flags: 0x1},
+ 199: {lang: 0x159, script: 0x52, flags: 0x0},
+ 200: {lang: 0x36, script: 0x2, flags: 0x1},
+ 202: {lang: 0x317, script: 0x52, flags: 0x0},
+ 203: {lang: 0x38, script: 0x3, flags: 0x1},
+ 204: {lang: 0x124, script: 0xd4, flags: 0x0},
+ 206: {lang: 0x139, script: 0x52, flags: 0x0},
+ 207: {lang: 0x316, script: 0x52, flags: 0x0},
+ 208: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 209: {lang: 0x15, script: 0x52, flags: 0x0},
+ 210: {lang: 0x159, script: 0x52, flags: 0x0},
+ 211: {lang: 0x1ad, script: 0x52, flags: 0x0},
+ 213: {lang: 0x1ad, script: 0x5, flags: 0x2},
+ 215: {lang: 0x139, script: 0x52, flags: 0x0},
+ 216: {lang: 0x35e, script: 0x52, flags: 0x0},
+ 217: {lang: 0x33e, script: 0x52, flags: 0x0},
+ 218: {lang: 0x348, script: 0x20, flags: 0x0},
+ 224: {lang: 0x39, script: 0x5, flags: 0x0},
+ 225: {lang: 0x139, script: 0x52, flags: 0x0},
+ 227: {lang: 0x139, script: 0x52, flags: 0x0},
+ 228: {lang: 0x159, script: 0x52, flags: 0x0},
+ 229: {lang: 0x47c, script: 0x52, flags: 0x0},
+ 230: {lang: 0x14e, script: 0x52, flags: 0x0},
+ 231: {lang: 0x3b, script: 0x3, flags: 0x1},
+ 232: {lang: 0x3e, script: 0x2, flags: 0x1},
+ 233: {lang: 0x159, script: 0x52, flags: 0x0},
+ 235: {lang: 0x139, script: 0x52, flags: 0x0},
+ 236: {lang: 0x39, script: 0x5, flags: 0x0},
+ 237: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 239: {lang: 0x399, script: 0x52, flags: 0x0},
+ 240: {lang: 0x18e, script: 0x52, flags: 0x0},
+ 242: {lang: 0x39, script: 0x5, flags: 0x0},
+ 257: {lang: 0x159, script: 0x52, flags: 0x0},
+ 259: {lang: 0x40, script: 0x2, flags: 0x1},
+ 260: {lang: 0x428, script: 0x1e, flags: 0x0},
+ 261: {lang: 0x42, script: 0x2, flags: 0x1},
+ 262: {lang: 0x3dc, script: 0x52, flags: 0x0},
+ 263: {lang: 0x39, script: 0x5, flags: 0x0},
+ 265: {lang: 0x159, script: 0x52, flags: 0x0},
+ 266: {lang: 0x39, script: 0x5, flags: 0x0},
+ 267: {lang: 0x44, script: 0x2, flags: 0x1},
+ 270: {lang: 0x40c, script: 0x52, flags: 0x0},
+ 271: {lang: 0x33e, script: 0x52, flags: 0x0},
+ 272: {lang: 0x46, script: 0x2, flags: 0x1},
+ 274: {lang: 0x1f1, script: 0x52, flags: 0x0},
+ 275: {lang: 0x159, script: 0x52, flags: 0x0},
+ 276: {lang: 0x41f, script: 0x52, flags: 0x0},
+ 277: {lang: 0x35e, script: 0x52, flags: 0x0},
+ 279: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 281: {lang: 0x139, script: 0x52, flags: 0x0},
+ 283: {lang: 0x48, script: 0x2, flags: 0x1},
+ 287: {lang: 0x159, script: 0x52, flags: 0x0},
+ 288: {lang: 0x159, script: 0x52, flags: 0x0},
+ 289: {lang: 0x4a, script: 0x2, flags: 0x1},
+ 290: {lang: 0x4c, script: 0x3, flags: 0x1},
+ 291: {lang: 0x4f, script: 0x2, flags: 0x1},
+ 292: {lang: 0x46d, script: 0x52, flags: 0x0},
+ 293: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 294: {lang: 0x46c, script: 0x52, flags: 0x0},
+ 295: {lang: 0x51, script: 0x2, flags: 0x1},
+ 296: {lang: 0x478, script: 0x52, flags: 0x0},
+ 298: {lang: 0x53, script: 0x4, flags: 0x1},
+ 300: {lang: 0x496, script: 0x52, flags: 0x0},
+ 301: {lang: 0x57, script: 0x2, flags: 0x1},
+ 302: {lang: 0x43b, script: 0x52, flags: 0x0},
+ 303: {lang: 0x59, script: 0x3, flags: 0x1},
+ 304: {lang: 0x43b, script: 0x52, flags: 0x0},
+ 308: {lang: 0x508, script: 0x37, flags: 0x2},
+ 309: {lang: 0x139, script: 0x52, flags: 0x0},
+ 310: {lang: 0x4b2, script: 0x52, flags: 0x0},
+ 311: {lang: 0x1f1, script: 0x52, flags: 0x0},
+ 314: {lang: 0x139, script: 0x52, flags: 0x0},
+ 317: {lang: 0x4b9, script: 0x52, flags: 0x0},
+ 318: {lang: 0x89, script: 0x52, flags: 0x0},
+ 319: {lang: 0x159, script: 0x52, flags: 0x0},
+ 321: {lang: 0x411, script: 0x52, flags: 0x0},
+ 332: {lang: 0x5c, script: 0x2, flags: 0x1},
+ 349: {lang: 0x39, script: 0x5, flags: 0x0},
+ 350: {lang: 0x5e, script: 0x2, flags: 0x1},
+ 355: {lang: 0x419, script: 0x52, flags: 0x0},
+}
+
+// likelyRegionList holds lists info associated with likelyRegion.
+// Size: 384 bytes, 96 elements
+var likelyRegionList = [96]likelyLangScript{
+ 0: {lang: 0x143, script: 0x5, flags: 0x0},
+ 1: {lang: 0x46c, script: 0x52, flags: 0x0},
+ 2: {lang: 0x427, script: 0x52, flags: 0x0},
+ 3: {lang: 0x2f6, script: 0x1e, flags: 0x0},
+ 4: {lang: 0x1d0, script: 0x8, flags: 0x0},
+ 5: {lang: 0x26b, script: 0x52, flags: 0x0},
+ 6: {lang: 0xb5, script: 0x52, flags: 0x0},
+ 7: {lang: 0x428, script: 0x1e, flags: 0x0},
+ 8: {lang: 0x129, script: 0xd6, flags: 0x0},
+ 9: {lang: 0x348, script: 0x20, flags: 0x0},
+ 10: {lang: 0x51f, script: 0x34, flags: 0x0},
+ 11: {lang: 0x4a2, script: 0x5, flags: 0x0},
+ 12: {lang: 0x515, script: 0x35, flags: 0x0},
+ 13: {lang: 0x519, script: 0x52, flags: 0x0},
+ 14: {lang: 0x291, script: 0xd5, flags: 0x0},
+ 15: {lang: 0x131, script: 0x2d, flags: 0x0},
+ 16: {lang: 0x480, script: 0x52, flags: 0x0},
+ 17: {lang: 0x39, script: 0x5, flags: 0x0},
+ 18: {lang: 0x159, script: 0x52, flags: 0x0},
+ 19: {lang: 0x26, script: 0x27, flags: 0x0},
+ 20: {lang: 0x134, script: 0x52, flags: 0x0},
+ 21: {lang: 0x261, script: 0x5, flags: 0x2},
+ 22: {lang: 0x508, script: 0x37, flags: 0x2},
+ 23: {lang: 0x208, script: 0x29, flags: 0x0},
+ 24: {lang: 0x5, script: 0x1e, flags: 0x0},
+ 25: {lang: 0x26b, script: 0x52, flags: 0x0},
+ 26: {lang: 0x131, script: 0x2d, flags: 0x0},
+ 27: {lang: 0x2f6, script: 0x1e, flags: 0x0},
+ 28: {lang: 0x1da, script: 0x52, flags: 0x0},
+ 29: {lang: 0x316, script: 0x5, flags: 0x0},
+ 30: {lang: 0x1b7, script: 0x20, flags: 0x0},
+ 31: {lang: 0x4aa, script: 0x5, flags: 0x0},
+ 32: {lang: 0x22e, script: 0x6b, flags: 0x0},
+ 33: {lang: 0x143, script: 0x5, flags: 0x0},
+ 34: {lang: 0x46c, script: 0x52, flags: 0x0},
+ 35: {lang: 0x242, script: 0x46, flags: 0x0},
+ 36: {lang: 0xe4, script: 0x5, flags: 0x0},
+ 37: {lang: 0x21e, script: 0xd5, flags: 0x0},
+ 38: {lang: 0x39, script: 0x5, flags: 0x0},
+ 39: {lang: 0x159, script: 0x52, flags: 0x0},
+ 40: {lang: 0x2af, script: 0x4f, flags: 0x0},
+ 41: {lang: 0x21e, script: 0xd5, flags: 0x0},
+ 42: {lang: 0x39, script: 0x5, flags: 0x0},
+ 43: {lang: 0x159, script: 0x52, flags: 0x0},
+ 44: {lang: 0x3d3, script: 0x52, flags: 0x0},
+ 45: {lang: 0x4a4, script: 0x1e, flags: 0x0},
+ 46: {lang: 0x2f6, script: 0x1e, flags: 0x0},
+ 47: {lang: 0x427, script: 0x52, flags: 0x0},
+ 48: {lang: 0x328, script: 0x6b, flags: 0x0},
+ 49: {lang: 0x20b, script: 0x52, flags: 0x0},
+ 50: {lang: 0x302, script: 0x1e, flags: 0x0},
+ 51: {lang: 0x23a, script: 0x5, flags: 0x0},
+ 52: {lang: 0x51f, script: 0x35, flags: 0x0},
+ 53: {lang: 0x3b7, script: 0x52, flags: 0x0},
+ 54: {lang: 0x39, script: 0x5, flags: 0x0},
+ 55: {lang: 0x159, script: 0x52, flags: 0x0},
+ 56: {lang: 0x2e4, script: 0x52, flags: 0x0},
+ 57: {lang: 0x4aa, script: 0x5, flags: 0x0},
+ 58: {lang: 0x87, script: 0x20, flags: 0x0},
+ 59: {lang: 0x4aa, script: 0x5, flags: 0x0},
+ 60: {lang: 0x4aa, script: 0x5, flags: 0x0},
+ 61: {lang: 0xbc, script: 0x20, flags: 0x0},
+ 62: {lang: 0x3aa, script: 0x52, flags: 0x0},
+ 63: {lang: 0x70, script: 0x1e, flags: 0x0},
+ 64: {lang: 0x3d3, script: 0x52, flags: 0x0},
+ 65: {lang: 0x7d, script: 0x1e, flags: 0x0},
+ 66: {lang: 0x3d9, script: 0x1e, flags: 0x0},
+ 67: {lang: 0x25e, script: 0x52, flags: 0x0},
+ 68: {lang: 0x43a, script: 0x52, flags: 0x0},
+ 69: {lang: 0x508, script: 0x37, flags: 0x0},
+ 70: {lang: 0x408, script: 0x52, flags: 0x0},
+ 71: {lang: 0x4a4, script: 0x1e, flags: 0x0},
+ 72: {lang: 0x39, script: 0x5, flags: 0x0},
+ 73: {lang: 0x159, script: 0x52, flags: 0x0},
+ 74: {lang: 0x159, script: 0x52, flags: 0x0},
+ 75: {lang: 0x34, script: 0x5, flags: 0x0},
+ 76: {lang: 0x461, script: 0xd5, flags: 0x0},
+ 77: {lang: 0x2e3, script: 0x5, flags: 0x0},
+ 78: {lang: 0x306, script: 0x6b, flags: 0x0},
+ 79: {lang: 0x45d, script: 0x1e, flags: 0x0},
+ 80: {lang: 0x143, script: 0x5, flags: 0x0},
+ 81: {lang: 0x39, script: 0x5, flags: 0x0},
+ 82: {lang: 0x159, script: 0x52, flags: 0x0},
+ 83: {lang: 0x480, script: 0x52, flags: 0x0},
+ 84: {lang: 0x57, script: 0x5, flags: 0x0},
+ 85: {lang: 0x211, script: 0x1e, flags: 0x0},
+ 86: {lang: 0x80, script: 0x2d, flags: 0x0},
+ 87: {lang: 0x51f, script: 0x35, flags: 0x0},
+ 88: {lang: 0x482, script: 0x52, flags: 0x0},
+ 89: {lang: 0x4a4, script: 0x1e, flags: 0x0},
+ 90: {lang: 0x508, script: 0x37, flags: 0x0},
+ 91: {lang: 0x3aa, script: 0x52, flags: 0x0},
+ 92: {lang: 0x427, script: 0x52, flags: 0x0},
+ 93: {lang: 0x428, script: 0x1e, flags: 0x0},
+ 94: {lang: 0x159, script: 0x52, flags: 0x0},
+ 95: {lang: 0x43c, script: 0x5, flags: 0x0},
+}
+
+type likelyTag struct {
+ lang uint16
+ region uint16
+ script uint8
+}
+
+// Size: 192 bytes, 32 elements
+var likelyRegionGroup = [32]likelyTag{
+ 1: {lang: 0x134, region: 0xd5, script: 0x52},
+ 2: {lang: 0x134, region: 0x134, script: 0x52},
+ 3: {lang: 0x3b7, region: 0x40, script: 0x52},
+ 4: {lang: 0x134, region: 0x2e, script: 0x52},
+ 5: {lang: 0x134, region: 0xd5, script: 0x52},
+ 6: {lang: 0x139, region: 0xce, script: 0x52},
+ 7: {lang: 0x43b, region: 0x12e, script: 0x52},
+ 8: {lang: 0x39, region: 0x6a, script: 0x5},
+ 9: {lang: 0x43b, region: 0x4a, script: 0x52},
+ 10: {lang: 0x134, region: 0x160, script: 0x52},
+ 11: {lang: 0x134, region: 0x134, script: 0x52},
+ 12: {lang: 0x134, region: 0x134, script: 0x52},
+ 13: {lang: 0x139, region: 0x58, script: 0x52},
+ 14: {lang: 0x51f, region: 0x52, script: 0x34},
+ 15: {lang: 0x1b7, region: 0x98, script: 0x20},
+ 16: {lang: 0x1da, region: 0x94, script: 0x52},
+ 17: {lang: 0x1f1, region: 0x9d, script: 0x52},
+ 18: {lang: 0x134, region: 0x2e, script: 0x52},
+ 19: {lang: 0x134, region: 0xe5, script: 0x52},
+ 20: {lang: 0x134, region: 0x89, script: 0x52},
+ 21: {lang: 0x411, region: 0x141, script: 0x52},
+ 22: {lang: 0x51f, region: 0x52, script: 0x34},
+ 23: {lang: 0x4b2, region: 0x136, script: 0x52},
+ 24: {lang: 0x39, region: 0x107, script: 0x5},
+ 25: {lang: 0x3d9, region: 0x105, script: 0x1e},
+ 26: {lang: 0x3d9, region: 0x105, script: 0x1e},
+ 27: {lang: 0x134, region: 0x7a, script: 0x52},
+ 28: {lang: 0x109, region: 0x5f, script: 0x52},
+ 29: {lang: 0x139, region: 0x1e, script: 0x52},
+ 30: {lang: 0x134, region: 0x99, script: 0x52},
+ 31: {lang: 0x134, region: 0x7a, script: 0x52},
+}
+
+type mutualIntelligibility struct {
+ want uint16
+ have uint16
+ conf uint8
+ oneway bool
+}
+
+type scriptIntelligibility struct {
+ lang uint16
+ want uint8
+ have uint8
+ conf uint8
+}
+
+// matchLang holds pairs of langIDs of base languages that are typically
+// mutually intelligible. Each pair is associated with a confidence and
+// whether the intelligibility goes one or both ways.
+// Size: 708 bytes, 118 elements
+var matchLang = [118]mutualIntelligibility{
+ 0: {want: 0x366, have: 0x33e, conf: 0x2, oneway: false},
+ 1: {want: 0x26b, have: 0xe7, conf: 0x2, oneway: false},
+ 2: {want: 0x1ca, have: 0xb5, conf: 0x2, oneway: false},
+ 3: {want: 0x3fd, have: 0xb5, conf: 0x2, oneway: false},
+ 4: {want: 0x428, have: 0xb5, conf: 0x2, oneway: false},
+ 5: {want: 0x3fd, have: 0x1ca, conf: 0x2, oneway: false},
+ 6: {want: 0x428, have: 0x1ca, conf: 0x2, oneway: false},
+ 7: {want: 0x3fd, have: 0x428, conf: 0x2, oneway: false},
+ 8: {want: 0x430, have: 0x1, conf: 0x2, oneway: false},
+ 9: {want: 0x19c, have: 0x109, conf: 0x2, oneway: true},
+ 10: {want: 0x28c, have: 0x109, conf: 0x2, oneway: true},
+ 11: {want: 0xfd, have: 0x366, conf: 0x2, oneway: false},
+ 12: {want: 0xfd, have: 0x33e, conf: 0x2, oneway: false},
+ 13: {want: 0xe7, have: 0x26b, conf: 0x2, oneway: false},
+ 14: {want: 0x5, have: 0x3d9, conf: 0x2, oneway: true},
+ 15: {want: 0xc, have: 0x134, conf: 0x2, oneway: true},
+ 16: {want: 0x15, have: 0x35e, conf: 0x2, oneway: true},
+ 17: {want: 0x20, have: 0x134, conf: 0x2, oneway: true},
+ 18: {want: 0x55, have: 0x139, conf: 0x2, oneway: true},
+ 19: {want: 0x57, have: 0x3d9, conf: 0x2, oneway: true},
+ 20: {want: 0x70, have: 0x3d9, conf: 0x2, oneway: true},
+ 21: {want: 0x74, have: 0x134, conf: 0x2, oneway: true},
+ 22: {want: 0x81, have: 0x1b7, conf: 0x2, oneway: true},
+ 23: {want: 0xa3, have: 0x134, conf: 0x2, oneway: true},
+ 24: {want: 0xb0, have: 0x159, conf: 0x2, oneway: true},
+ 25: {want: 0xdb, have: 0x14e, conf: 0x2, oneway: true},
+ 26: {want: 0xe3, have: 0x134, conf: 0x2, oneway: true},
+ 27: {want: 0xe7, have: 0x39, conf: 0x2, oneway: true},
+ 28: {want: 0xed, have: 0x159, conf: 0x2, oneway: true},
+ 29: {want: 0xf5, have: 0x159, conf: 0x2, oneway: true},
+ 30: {want: 0xfc, have: 0x134, conf: 0x2, oneway: true},
+ 31: {want: 0x12c, have: 0x134, conf: 0x2, oneway: true},
+ 32: {want: 0x137, have: 0x134, conf: 0x2, oneway: true},
+ 33: {want: 0x13b, have: 0x14c, conf: 0x2, oneway: true},
+ 34: {want: 0x140, have: 0x139, conf: 0x2, oneway: true},
+ 35: {want: 0x153, have: 0xfd, conf: 0x2, oneway: true},
+ 36: {want: 0x168, have: 0x35e, conf: 0x2, oneway: true},
+ 37: {want: 0x169, have: 0x134, conf: 0x2, oneway: true},
+ 38: {want: 0x16a, have: 0x134, conf: 0x2, oneway: true},
+ 39: {want: 0x178, have: 0x134, conf: 0x2, oneway: true},
+ 40: {want: 0x18a, have: 0x139, conf: 0x2, oneway: true},
+ 41: {want: 0x18e, have: 0x139, conf: 0x2, oneway: true},
+ 42: {want: 0x19d, have: 0x1b7, conf: 0x2, oneway: true},
+ 43: {want: 0x1ad, have: 0x134, conf: 0x2, oneway: true},
+ 44: {want: 0x1b1, have: 0x134, conf: 0x2, oneway: true},
+ 45: {want: 0x1cd, have: 0x159, conf: 0x2, oneway: true},
+ 46: {want: 0x1d0, have: 0x3d9, conf: 0x2, oneway: true},
+ 47: {want: 0x1d2, have: 0x134, conf: 0x2, oneway: true},
+ 48: {want: 0x1df, have: 0x134, conf: 0x2, oneway: true},
+ 49: {want: 0x1f0, have: 0x134, conf: 0x2, oneway: true},
+ 50: {want: 0x206, have: 0x1da, conf: 0x2, oneway: true},
+ 51: {want: 0x208, have: 0x134, conf: 0x2, oneway: true},
+ 52: {want: 0x225, have: 0x159, conf: 0x2, oneway: true},
+ 53: {want: 0x23a, have: 0x3d9, conf: 0x2, oneway: true},
+ 54: {want: 0x242, have: 0x134, conf: 0x2, oneway: true},
+ 55: {want: 0x249, have: 0x134, conf: 0x2, oneway: true},
+ 56: {want: 0x25c, have: 0x134, conf: 0x2, oneway: true},
+ 57: {want: 0x26b, have: 0x480, conf: 0x2, oneway: true},
+ 58: {want: 0x281, have: 0x3d9, conf: 0x2, oneway: true},
+ 59: {want: 0x285, have: 0x1f1, conf: 0x2, oneway: true},
+ 60: {want: 0x29a, have: 0x134, conf: 0x2, oneway: true},
+ 61: {want: 0x2ac, have: 0x159, conf: 0x2, oneway: true},
+ 62: {want: 0x2af, have: 0x134, conf: 0x2, oneway: true},
+ 63: {want: 0x2b5, have: 0x134, conf: 0x2, oneway: true},
+ 64: {want: 0x2ba, have: 0x159, conf: 0x2, oneway: true},
+ 65: {want: 0x2e4, have: 0x134, conf: 0x2, oneway: true},
+ 66: {want: 0x2e8, have: 0x159, conf: 0x2, oneway: true},
+ 67: {want: 0x2f1, have: 0x134, conf: 0x2, oneway: true},
+ 68: {want: 0x2f6, have: 0x7d, conf: 0x2, oneway: true},
+ 69: {want: 0x2fb, have: 0x134, conf: 0x2, oneway: true},
+ 70: {want: 0x302, have: 0x3d9, conf: 0x2, oneway: true},
+ 71: {want: 0x312, have: 0x1b7, conf: 0x2, oneway: true},
+ 72: {want: 0x316, have: 0x1da, conf: 0x2, oneway: true},
+ 73: {want: 0x317, have: 0x134, conf: 0x2, oneway: true},
+ 74: {want: 0x328, have: 0x134, conf: 0x2, oneway: true},
+ 75: {want: 0x348, have: 0x134, conf: 0x2, oneway: true},
+ 76: {want: 0x361, have: 0x33e, conf: 0x2, oneway: false},
+ 77: {want: 0x361, have: 0x366, conf: 0x2, oneway: true},
+ 78: {want: 0x371, have: 0x134, conf: 0x2, oneway: true},
+ 79: {want: 0x37e, have: 0x134, conf: 0x2, oneway: true},
+ 80: {want: 0x380, have: 0x134, conf: 0x2, oneway: true},
+ 81: {want: 0x382, have: 0x159, conf: 0x2, oneway: true},
+ 82: {want: 0x387, have: 0x134, conf: 0x2, oneway: true},
+ 83: {want: 0x38c, have: 0x134, conf: 0x2, oneway: true},
+ 84: {want: 0x394, have: 0x134, conf: 0x2, oneway: true},
+ 85: {want: 0x39c, have: 0x134, conf: 0x2, oneway: true},
+ 86: {want: 0x3b5, have: 0x134, conf: 0x2, oneway: true},
+ 87: {want: 0x3bb, have: 0x139, conf: 0x2, oneway: true},
+ 88: {want: 0x3cb, have: 0x109, conf: 0x2, oneway: true},
+ 89: {want: 0x3d0, have: 0x134, conf: 0x2, oneway: true},
+ 90: {want: 0x3dc, have: 0x159, conf: 0x2, oneway: true},
+ 91: {want: 0x3e0, have: 0x1b7, conf: 0x2, oneway: true},
+ 92: {want: 0x3f0, have: 0x134, conf: 0x2, oneway: true},
+ 93: {want: 0x402, have: 0x134, conf: 0x2, oneway: true},
+ 94: {want: 0x419, have: 0x134, conf: 0x2, oneway: true},
+ 95: {want: 0x41f, have: 0x134, conf: 0x2, oneway: true},
+ 96: {want: 0x427, have: 0x134, conf: 0x2, oneway: true},
+ 97: {want: 0x431, have: 0x134, conf: 0x2, oneway: true},
+ 98: {want: 0x434, have: 0x1da, conf: 0x2, oneway: true},
+ 99: {want: 0x43b, have: 0x134, conf: 0x2, oneway: true},
+ 100: {want: 0x446, have: 0x134, conf: 0x2, oneway: true},
+ 101: {want: 0x457, have: 0x134, conf: 0x2, oneway: true},
+ 102: {want: 0x45d, have: 0x3d9, conf: 0x2, oneway: true},
+ 103: {want: 0x465, have: 0x134, conf: 0x2, oneway: true},
+ 104: {want: 0x46c, have: 0x3d9, conf: 0x2, oneway: true},
+ 105: {want: 0x3878, have: 0x134, conf: 0x2, oneway: true},
+ 106: {want: 0x476, have: 0x134, conf: 0x2, oneway: true},
+ 107: {want: 0x478, have: 0x134, conf: 0x2, oneway: true},
+ 108: {want: 0x48a, have: 0x3d9, conf: 0x2, oneway: true},
+ 109: {want: 0x493, have: 0x134, conf: 0x2, oneway: true},
+ 110: {want: 0x4a2, have: 0x51f, conf: 0x2, oneway: true},
+ 111: {want: 0x4aa, have: 0x134, conf: 0x2, oneway: true},
+ 112: {want: 0x4b2, have: 0x3d9, conf: 0x2, oneway: true},
+ 113: {want: 0x4db, have: 0x159, conf: 0x2, oneway: true},
+ 114: {want: 0x4e8, have: 0x134, conf: 0x2, oneway: true},
+ 115: {want: 0x508, have: 0x134, conf: 0x2, oneway: true},
+ 116: {want: 0x50e, have: 0x134, conf: 0x2, oneway: true},
+ 117: {want: 0x524, have: 0x134, conf: 0x2, oneway: true},
+}
+
+// matchScript holds pairs of scriptIDs where readers of one script
+// can typically also read the other. Each is associated with a confidence.
+// Size: 24 bytes, 4 elements
+var matchScript = [4]scriptIntelligibility{
+ 0: {lang: 0x428, want: 0x52, have: 0x1e, conf: 0x2},
+ 1: {lang: 0x428, want: 0x1e, have: 0x52, conf: 0x2},
+ 2: {lang: 0x0, want: 0x34, have: 0x35, conf: 0x1},
+ 3: {lang: 0x0, want: 0x35, have: 0x34, conf: 0x1},
+}
+
+// Size: 128 bytes, 32 elements
+var regionContainment = [32]uint32{
+ 0xffffffff, 0x000007a2, 0x00003044, 0x00000008,
+ 0x403c0010, 0x00000020, 0x00000040, 0x00000080,
+ 0x00000100, 0x00000200, 0x00000400, 0x2000384c,
+ 0x00001000, 0x00002000, 0x00004000, 0x00008000,
+ 0x00010000, 0x00020000, 0x00040000, 0x00080000,
+ 0x00100000, 0x00200000, 0x01c1c000, 0x00800000,
+ 0x01000000, 0x1e020000, 0x04000000, 0x08000000,
+ 0x10000000, 0x20002048, 0x40000000, 0x80000000,
+}
+
+// regionInclusion maps region identifiers to sets of regions in regionInclusionBits,
+// where each set holds all groupings that are directly connected in a region
+// containment graph.
+// Size: 357 bytes, 357 elements
+var regionInclusion = [357]uint8{
+ // Entry 0 - 3F
+ 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
+ 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e,
+ 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16,
+ 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x20,
+ 0x21, 0x22, 0x23, 0x24, 0x25, 0x25, 0x22, 0x23,
+ 0x25, 0x26, 0x21, 0x27, 0x28, 0x29, 0x2a, 0x25,
+ 0x2b, 0x23, 0x22, 0x25, 0x24, 0x29, 0x2c, 0x2d,
+ 0x23, 0x2e, 0x2c, 0x25, 0x2f, 0x30, 0x27, 0x25,
+ // Entry 40 - 7F
+ 0x27, 0x25, 0x24, 0x30, 0x21, 0x31, 0x32, 0x33,
+ 0x2f, 0x21, 0x26, 0x26, 0x26, 0x34, 0x2c, 0x28,
+ 0x27, 0x26, 0x35, 0x27, 0x21, 0x33, 0x22, 0x20,
+ 0x25, 0x2c, 0x25, 0x21, 0x36, 0x2d, 0x34, 0x29,
+ 0x21, 0x2e, 0x37, 0x25, 0x25, 0x20, 0x38, 0x38,
+ 0x27, 0x37, 0x38, 0x38, 0x2e, 0x39, 0x2e, 0x1f,
+ 0x20, 0x37, 0x3a, 0x27, 0x3b, 0x2b, 0x20, 0x29,
+ 0x34, 0x26, 0x37, 0x25, 0x23, 0x27, 0x2b, 0x2c,
+ // Entry 80 - BF
+ 0x22, 0x2f, 0x2c, 0x2c, 0x25, 0x26, 0x39, 0x21,
+ 0x33, 0x3b, 0x2c, 0x27, 0x35, 0x21, 0x33, 0x39,
+ 0x25, 0x2d, 0x20, 0x38, 0x30, 0x37, 0x23, 0x2b,
+ 0x24, 0x21, 0x23, 0x24, 0x2b, 0x39, 0x2b, 0x25,
+ 0x23, 0x35, 0x20, 0x2e, 0x3c, 0x30, 0x3b, 0x2e,
+ 0x25, 0x35, 0x35, 0x23, 0x25, 0x3c, 0x30, 0x23,
+ 0x25, 0x34, 0x24, 0x2c, 0x31, 0x37, 0x29, 0x37,
+ 0x38, 0x38, 0x34, 0x32, 0x22, 0x25, 0x2e, 0x3b,
+ // Entry C0 - FF
+ 0x20, 0x22, 0x2c, 0x30, 0x35, 0x35, 0x3b, 0x25,
+ 0x2c, 0x25, 0x39, 0x2e, 0x24, 0x2e, 0x33, 0x30,
+ 0x2e, 0x31, 0x3a, 0x2c, 0x2a, 0x2c, 0x20, 0x33,
+ 0x29, 0x2b, 0x24, 0x20, 0x3b, 0x23, 0x28, 0x2a,
+ 0x23, 0x33, 0x20, 0x27, 0x28, 0x3a, 0x30, 0x24,
+ 0x2d, 0x2f, 0x28, 0x25, 0x23, 0x39, 0x20, 0x3b,
+ 0x27, 0x20, 0x23, 0x20, 0x20, 0x1e, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ // Entry 100 - 13F
+ 0x20, 0x2e, 0x20, 0x2d, 0x22, 0x32, 0x2e, 0x23,
+ 0x3a, 0x2e, 0x38, 0x37, 0x30, 0x2c, 0x39, 0x2b,
+ 0x2d, 0x2c, 0x22, 0x2c, 0x2e, 0x27, 0x2e, 0x26,
+ 0x32, 0x33, 0x25, 0x23, 0x31, 0x21, 0x25, 0x26,
+ 0x21, 0x2c, 0x30, 0x3c, 0x28, 0x30, 0x3c, 0x38,
+ 0x28, 0x30, 0x23, 0x25, 0x28, 0x35, 0x2e, 0x32,
+ 0x2e, 0x20, 0x21, 0x20, 0x2f, 0x27, 0x3c, 0x22,
+ 0x25, 0x20, 0x27, 0x25, 0x25, 0x30, 0x3a, 0x28,
+ // Entry 140 - 17F
+ 0x20, 0x28, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x22, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
+ 0x20, 0x20, 0x20, 0x20, 0x23, 0x23, 0x2e, 0x22,
+ 0x31, 0x2e, 0x26, 0x2e, 0x20,
+}
+
+// regionInclusionBits is an array of bit vectors where every vector represents
+// a set of region groupings. These sets are used to compute the distance
+// between two regions for the purpose of language matching.
+// Size: 288 bytes, 72 elements
+var regionInclusionBits = [72]uint32{
+ // Entry 0 - 1F
+ 0x82400813, 0x000007a3, 0x00003844, 0x20000808,
+ 0x403c0011, 0x00000022, 0x20000844, 0x00000082,
+ 0x00000102, 0x00000202, 0x00000402, 0x2000384d,
+ 0x00001804, 0x20002804, 0x00404000, 0x00408000,
+ 0x00410000, 0x02020000, 0x00040010, 0x00080010,
+ 0x00100010, 0x00200010, 0x01c1c001, 0x00c00000,
+ 0x01400000, 0x1e020001, 0x06000000, 0x0a000000,
+ 0x12000000, 0x20002848, 0x40000010, 0x80000001,
+ // Entry 20 - 3F
+ 0x00000001, 0x40000000, 0x00020000, 0x01000000,
+ 0x00008000, 0x00002000, 0x00000200, 0x00000008,
+ 0x00200000, 0x90000000, 0x00040000, 0x08000000,
+ 0x00000020, 0x84000000, 0x00000080, 0x00001000,
+ 0x00010000, 0x00000400, 0x04000000, 0x00000040,
+ 0x10000000, 0x00004000, 0x81000000, 0x88000000,
+ 0x00000100, 0x80020000, 0x00080000, 0x00100000,
+ 0x00800000, 0xffffffff, 0x82400fb3, 0xc27c0813,
+ // Entry 40 - 5F
+ 0xa240385f, 0x83c1c813, 0x9e420813, 0x92000001,
+ 0x86000001, 0x81400001, 0x8a000001, 0x82020001,
+}
+
+// regionInclusionNext marks, for each entry in regionInclusionBits, the set of
+// all groups that are reachable from the groups set in the respective entry.
+// Size: 72 bytes, 72 elements
+var regionInclusionNext = [72]uint8{
+ // Entry 0 - 3F
+ 0x3d, 0x3e, 0x0b, 0x0b, 0x3f, 0x01, 0x0b, 0x01,
+ 0x01, 0x01, 0x01, 0x40, 0x0b, 0x0b, 0x16, 0x16,
+ 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x41, 0x16,
+ 0x16, 0x42, 0x19, 0x19, 0x19, 0x0b, 0x04, 0x00,
+ 0x00, 0x1e, 0x11, 0x18, 0x0f, 0x0d, 0x09, 0x03,
+ 0x15, 0x43, 0x12, 0x1b, 0x05, 0x44, 0x07, 0x0c,
+ 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x45, 0x46,
+ 0x08, 0x47, 0x13, 0x14, 0x17, 0x3d, 0x3d, 0x3d,
+ // Entry 40 - 7F
+ 0x3d, 0x3d, 0x3d, 0x42, 0x42, 0x41, 0x42, 0x42,
+}
+
+type parentRel struct {
+ lang uint16
+ script uint8
+ maxScript uint8
+ toRegion uint16
+ fromRegion []uint16
+}
+
+// Size: 412 bytes, 5 elements
+var parents = [5]parentRel{
+ 0: {lang: 0x134, script: 0x0, maxScript: 0x52, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x24, 0x25, 0x2e, 0x33, 0x35, 0x3c, 0x41, 0x45, 0x47, 0x48, 0x49, 0x4f, 0x51, 0x5b, 0x5c, 0x60, 0x63, 0x6c, 0x72, 0x73, 0x74, 0x7a, 0x7b, 0x7e, 0x7f, 0x80, 0x82, 0x8b, 0x8c, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9e, 0x9f, 0xa3, 0xa6, 0xa8, 0xac, 0xb0, 0xb3, 0xb4, 0xbe, 0xc5, 0xc9, 0xca, 0xcb, 0xcd, 0xcf, 0xd1, 0xd4, 0xd5, 0xdc, 0xde, 0xdf, 0xe5, 0xe6, 0xe7, 0xea, 0xef, 0x106, 0x108, 0x109, 0x10a, 0x10c, 0x10d, 0x111, 0x116, 0x11a, 0x11c, 0x11e, 0x124, 0x128, 0x12b, 0x12c, 0x12e, 0x130, 0x138, 0x13b, 0x13e, 0x141, 0x160, 0x161, 0x163}},
+ 1: {lang: 0x134, script: 0x0, maxScript: 0x52, toRegion: 0x1a, fromRegion: []uint16{0x2d, 0x4d, 0x5f, 0x62, 0x71, 0xd8, 0x10b, 0x10e}},
+ 2: {lang: 0x139, script: 0x0, maxScript: 0x52, toRegion: 0x1e, fromRegion: []uint16{0x2b, 0x3e, 0x40, 0x50, 0x53, 0x55, 0x58, 0x64, 0x68, 0x88, 0x8e, 0xce, 0xd7, 0xe1, 0xe3, 0xeb, 0xf0, 0x119, 0x134, 0x135, 0x13a}},
+ 3: {lang: 0x3b7, script: 0x0, maxScript: 0x52, toRegion: 0xed, fromRegion: []uint16{0x29, 0x4d, 0x59, 0x85, 0x8a, 0xb6, 0xc5, 0xd0, 0x117, 0x125}},
+ 4: {lang: 0x51f, script: 0x35, maxScript: 0x35, toRegion: 0x8c, fromRegion: []uint16{0xc5}},
+}
+
+// Total table size 25825 bytes (25KiB); checksum: 4E97CC5E
diff --git a/vendor/golang.org/x/text/language/tags.go b/vendor/golang.org/x/text/language/tags.go
new file mode 100644
index 000000000..de30155a2
--- /dev/null
+++ b/vendor/golang.org/x/text/language/tags.go
@@ -0,0 +1,143 @@
+// 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 language
+
+// TODO: Various sets of commonly use tags and regions.
+
+// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.
+// It simplifies safe initialization of Tag values.
+func MustParse(s string) Tag {
+ t, err := Parse(s)
+ if err != nil {
+ panic(err)
+ }
+ return t
+}
+
+// MustParse is like Parse, but panics if the given BCP 47 tag cannot be parsed.
+// It simplifies safe initialization of Tag values.
+func (c CanonType) MustParse(s string) Tag {
+ t, err := c.Parse(s)
+ if err != nil {
+ panic(err)
+ }
+ return t
+}
+
+// MustParseBase is like ParseBase, but panics if the given base cannot be parsed.
+// It simplifies safe initialization of Base values.
+func MustParseBase(s string) Base {
+ b, err := ParseBase(s)
+ if err != nil {
+ panic(err)
+ }
+ return b
+}
+
+// MustParseScript is like ParseScript, but panics if the given script cannot be
+// parsed. It simplifies safe initialization of Script values.
+func MustParseScript(s string) Script {
+ scr, err := ParseScript(s)
+ if err != nil {
+ panic(err)
+ }
+ return scr
+}
+
+// MustParseRegion is like ParseRegion, but panics if the given region cannot be
+// parsed. It simplifies safe initialization of Region values.
+func MustParseRegion(s string) Region {
+ r, err := ParseRegion(s)
+ if err != nil {
+ panic(err)
+ }
+ return r
+}
+
+var (
+ und = Tag{}
+
+ Und Tag = Tag{}
+
+ Afrikaans Tag = Tag{lang: _af} // af
+ Amharic Tag = Tag{lang: _am} // am
+ Arabic Tag = Tag{lang: _ar} // ar
+ ModernStandardArabic Tag = Tag{lang: _ar, region: _001} // ar-001
+ Azerbaijani Tag = Tag{lang: _az} // az
+ Bulgarian Tag = Tag{lang: _bg} // bg
+ Bengali Tag = Tag{lang: _bn} // bn
+ Catalan Tag = Tag{lang: _ca} // ca
+ Czech Tag = Tag{lang: _cs} // cs
+ Danish Tag = Tag{lang: _da} // da
+ German Tag = Tag{lang: _de} // de
+ Greek Tag = Tag{lang: _el} // el
+ English Tag = Tag{lang: _en} // en
+ AmericanEnglish Tag = Tag{lang: _en, region: _US} // en-US
+ BritishEnglish Tag = Tag{lang: _en, region: _GB} // en-GB
+ Spanish Tag = Tag{lang: _es} // es
+ EuropeanSpanish Tag = Tag{lang: _es, region: _ES} // es-ES
+ LatinAmericanSpanish Tag = Tag{lang: _es, region: _419} // es-419
+ Estonian Tag = Tag{lang: _et} // et
+ Persian Tag = Tag{lang: _fa} // fa
+ Finnish Tag = Tag{lang: _fi} // fi
+ Filipino Tag = Tag{lang: _fil} // fil
+ French Tag = Tag{lang: _fr} // fr
+ CanadianFrench Tag = Tag{lang: _fr, region: _CA} // fr-CA
+ Gujarati Tag = Tag{lang: _gu} // gu
+ Hebrew Tag = Tag{lang: _he} // he
+ Hindi Tag = Tag{lang: _hi} // hi
+ Croatian Tag = Tag{lang: _hr} // hr
+ Hungarian Tag = Tag{lang: _hu} // hu
+ Armenian Tag = Tag{lang: _hy} // hy
+ Indonesian Tag = Tag{lang: _id} // id
+ Icelandic Tag = Tag{lang: _is} // is
+ Italian Tag = Tag{lang: _it} // it
+ Japanese Tag = Tag{lang: _ja} // ja
+ Georgian Tag = Tag{lang: _ka} // ka
+ Kazakh Tag = Tag{lang: _kk} // kk
+ Khmer Tag = Tag{lang: _km} // km
+ Kannada Tag = Tag{lang: _kn} // kn
+ Korean Tag = Tag{lang: _ko} // ko
+ Kirghiz Tag = Tag{lang: _ky} // ky
+ Lao Tag = Tag{lang: _lo} // lo
+ Lithuanian Tag = Tag{lang: _lt} // lt
+ Latvian Tag = Tag{lang: _lv} // lv
+ Macedonian Tag = Tag{lang: _mk} // mk
+ Malayalam Tag = Tag{lang: _ml} // ml
+ Mongolian Tag = Tag{lang: _mn} // mn
+ Marathi Tag = Tag{lang: _mr} // mr
+ Malay Tag = Tag{lang: _ms} // ms
+ Burmese Tag = Tag{lang: _my} // my
+ Nepali Tag = Tag{lang: _ne} // ne
+ Dutch Tag = Tag{lang: _nl} // nl
+ Norwegian Tag = Tag{lang: _no} // no
+ Punjabi Tag = Tag{lang: _pa} // pa
+ Polish Tag = Tag{lang: _pl} // pl
+ Portuguese Tag = Tag{lang: _pt} // pt
+ BrazilianPortuguese Tag = Tag{lang: _pt, region: _BR} // pt-BR
+ EuropeanPortuguese Tag = Tag{lang: _pt, region: _PT} // pt-PT
+ Romanian Tag = Tag{lang: _ro} // ro
+ Russian Tag = Tag{lang: _ru} // ru
+ Sinhala Tag = Tag{lang: _si} // si
+ Slovak Tag = Tag{lang: _sk} // sk
+ Slovenian Tag = Tag{lang: _sl} // sl
+ Albanian Tag = Tag{lang: _sq} // sq
+ Serbian Tag = Tag{lang: _sr} // sr
+ SerbianLatin Tag = Tag{lang: _sr, script: _Latn} // sr-Latn
+ Swedish Tag = Tag{lang: _sv} // sv
+ Swahili Tag = Tag{lang: _sw} // sw
+ Tamil Tag = Tag{lang: _ta} // ta
+ Telugu Tag = Tag{lang: _te} // te
+ Thai Tag = Tag{lang: _th} // th
+ Turkish Tag = Tag{lang: _tr} // tr
+ Ukrainian Tag = Tag{lang: _uk} // uk
+ Urdu Tag = Tag{lang: _ur} // ur
+ Uzbek Tag = Tag{lang: _uz} // uz
+ Vietnamese Tag = Tag{lang: _vi} // vi
+ Chinese Tag = Tag{lang: _zh} // zh
+ SimplifiedChinese Tag = Tag{lang: _zh, script: _Hans} // zh-Hans
+ TraditionalChinese Tag = Tag{lang: _zh, script: _Hant} // zh-Hant
+ Zulu Tag = Tag{lang: _zu} // zu
+)
diff --git a/vendor/golang.org/x/text/runes/cond.go b/vendor/golang.org/x/text/runes/cond.go
new file mode 100644
index 000000000..df7aa02db
--- /dev/null
+++ b/vendor/golang.org/x/text/runes/cond.go
@@ -0,0 +1,187 @@
+// 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 runes
+
+import (
+ "unicode/utf8"
+
+ "golang.org/x/text/transform"
+)
+
+// Note: below we pass invalid UTF-8 to the tIn and tNotIn transformers as is.
+// This is done for various reasons:
+// - To retain the semantics of the Nop transformer: if input is passed to a Nop
+// one would expect it to be unchanged.
+// - It would be very expensive to pass a converted RuneError to a transformer:
+// a transformer might need more source bytes after RuneError, meaning that
+// the only way to pass it safely is to create a new buffer and manage the
+// intermingling of RuneErrors and normal input.
+// - Many transformers leave ill-formed UTF-8 as is, so this is not
+// inconsistent. Generally ill-formed UTF-8 is only replaced if it is a
+// logical consequence of the operation (as for Map) or if it otherwise would
+// pose security concerns (as for Remove).
+// - An alternative would be to return an error on ill-formed UTF-8, but this
+// would be inconsistent with other operations.
+
+// If returns a transformer that applies tIn to consecutive runes for which
+// s.Contains(r) and tNotIn to consecutive runes for which !s.Contains(r). Reset
+// is called on tIn and tNotIn at the start of each run. A Nop transformer will
+// substitute a nil value passed to tIn or tNotIn. Invalid UTF-8 is translated
+// to RuneError to determine which transformer to apply, but is passed as is to
+// the respective transformer.
+func If(s Set, tIn, tNotIn transform.Transformer) Transformer {
+ if tIn == nil && tNotIn == nil {
+ return Transformer{transform.Nop}
+ }
+ if tIn == nil {
+ tIn = transform.Nop
+ }
+ if tNotIn == nil {
+ tNotIn = transform.Nop
+ }
+ sIn, ok := tIn.(transform.SpanningTransformer)
+ if !ok {
+ sIn = dummySpan{tIn}
+ }
+ sNotIn, ok := tNotIn.(transform.SpanningTransformer)
+ if !ok {
+ sNotIn = dummySpan{tNotIn}
+ }
+
+ a := &cond{
+ tIn: sIn,
+ tNotIn: sNotIn,
+ f: s.Contains,
+ }
+ a.Reset()
+ return Transformer{a}
+}
+
+type dummySpan struct{ transform.Transformer }
+
+func (d dummySpan) Span(src []byte, atEOF bool) (n int, err error) {
+ return 0, transform.ErrEndOfSpan
+}
+
+type cond struct {
+ tIn, tNotIn transform.SpanningTransformer
+ f func(rune) bool
+ check func(rune) bool // current check to perform
+ t transform.SpanningTransformer // current transformer to use
+}
+
+// Reset implements transform.Transformer.
+func (t *cond) Reset() {
+ t.check = t.is
+ t.t = t.tIn
+ t.t.Reset() // notIn will be reset on first usage.
+}
+
+func (t *cond) is(r rune) bool {
+ if t.f(r) {
+ return true
+ }
+ t.check = t.isNot
+ t.t = t.tNotIn
+ t.tNotIn.Reset()
+ return false
+}
+
+func (t *cond) isNot(r rune) bool {
+ if !t.f(r) {
+ return true
+ }
+ t.check = t.is
+ t.t = t.tIn
+ t.tIn.Reset()
+ return false
+}
+
+// This implementation of Span doesn't help all too much, but it needs to be
+// there to satisfy this package's Transformer interface.
+// TODO: there are certainly room for improvements, though. For example, if
+// t.t == transform.Nop (which will a common occurrence) it will save a bundle
+// to special-case that loop.
+func (t *cond) Span(src []byte, atEOF bool) (n int, err error) {
+ p := 0
+ for n < len(src) && err == nil {
+ // Don't process too much at a time as the Spanner that will be
+ // called on this block may terminate early.
+ const maxChunk = 4096
+ max := len(src)
+ if v := n + maxChunk; v < max {
+ max = v
+ }
+ atEnd := false
+ size := 0
+ current := t.t
+ for ; p < max; p += size {
+ r := rune(src[p])
+ if r < utf8.RuneSelf {
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[p:]); size == 1 {
+ if !atEOF && !utf8.FullRune(src[p:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ if !t.check(r) {
+ // The next rune will be the start of a new run.
+ atEnd = true
+ break
+ }
+ }
+ n2, err2 := current.Span(src[n:p], atEnd || (atEOF && p == len(src)))
+ n += n2
+ if err2 != nil {
+ return n, err2
+ }
+ // At this point either err != nil or t.check will pass for the rune at p.
+ p = n + size
+ }
+ return n, err
+}
+
+func (t *cond) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ p := 0
+ for nSrc < len(src) && err == nil {
+ // Don't process too much at a time, as the work might be wasted if the
+ // destination buffer isn't large enough to hold the result or a
+ // transform returns an error early.
+ const maxChunk = 4096
+ max := len(src)
+ if n := nSrc + maxChunk; n < len(src) {
+ max = n
+ }
+ atEnd := false
+ size := 0
+ current := t.t
+ for ; p < max; p += size {
+ r := rune(src[p])
+ if r < utf8.RuneSelf {
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[p:]); size == 1 {
+ if !atEOF && !utf8.FullRune(src[p:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ }
+ if !t.check(r) {
+ // The next rune will be the start of a new run.
+ atEnd = true
+ break
+ }
+ }
+ nDst2, nSrc2, err2 := current.Transform(dst[nDst:], src[nSrc:p], atEnd || (atEOF && p == len(src)))
+ nDst += nDst2
+ nSrc += nSrc2
+ if err2 != nil {
+ return nDst, nSrc, err2
+ }
+ // At this point either err != nil or t.check will pass for the rune at p.
+ p = nSrc + size
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/runes/runes.go b/vendor/golang.org/x/text/runes/runes.go
new file mode 100644
index 000000000..71933696f
--- /dev/null
+++ b/vendor/golang.org/x/text/runes/runes.go
@@ -0,0 +1,355 @@
+// 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 runes provide transforms for UTF-8 encoded text.
+package runes // import "golang.org/x/text/runes"
+
+import (
+ "unicode"
+ "unicode/utf8"
+
+ "golang.org/x/text/transform"
+)
+
+// A Set is a collection of runes.
+type Set interface {
+ // Contains returns true if r is contained in the set.
+ Contains(r rune) bool
+}
+
+type setFunc func(rune) bool
+
+func (s setFunc) Contains(r rune) bool {
+ return s(r)
+}
+
+// Note: using funcs here instead of wrapping types result in cleaner
+// documentation and a smaller API.
+
+// In creates a Set with a Contains method that returns true for all runes in
+// the given RangeTable.
+func In(rt *unicode.RangeTable) Set {
+ return setFunc(func(r rune) bool { return unicode.Is(rt, r) })
+}
+
+// In creates a Set with a Contains method that returns true for all runes not
+// in the given RangeTable.
+func NotIn(rt *unicode.RangeTable) Set {
+ return setFunc(func(r rune) bool { return !unicode.Is(rt, r) })
+}
+
+// Predicate creates a Set with a Contains method that returns f(r).
+func Predicate(f func(rune) bool) Set {
+ return setFunc(f)
+}
+
+// Transformer implements the transform.Transformer interface.
+type Transformer struct {
+ t transform.SpanningTransformer
+}
+
+func (t Transformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ return t.t.Transform(dst, src, atEOF)
+}
+
+func (t Transformer) Span(b []byte, atEOF bool) (n int, err error) {
+ return t.t.Span(b, atEOF)
+}
+
+func (t Transformer) Reset() { t.t.Reset() }
+
+// Bytes returns a new byte slice with the result of converting b using t. It
+// calls Reset on t. It returns nil if any error was found. This can only happen
+// if an error-producing Transformer is passed to If.
+func (t Transformer) Bytes(b []byte) []byte {
+ b, _, err := transform.Bytes(t, b)
+ if err != nil {
+ return nil
+ }
+ return b
+}
+
+// String returns a string with the result of converting s using t. It calls
+// Reset on t. It returns the empty string if any error was found. This can only
+// happen if an error-producing Transformer is passed to If.
+func (t Transformer) String(s string) string {
+ s, _, err := transform.String(t, s)
+ if err != nil {
+ return ""
+ }
+ return s
+}
+
+// TODO:
+// - Copy: copying strings and bytes in whole-rune units.
+// - Validation (maybe)
+// - Well-formed-ness (maybe)
+
+const runeErrorString = string(utf8.RuneError)
+
+// Remove returns a Transformer that removes runes r for which s.Contains(r).
+// Illegal input bytes are replaced by RuneError before being passed to f.
+func Remove(s Set) Transformer {
+ if f, ok := s.(setFunc); ok {
+ // This little trick cuts the running time of BenchmarkRemove for sets
+ // created by Predicate roughly in half.
+ // TODO: special-case RangeTables as well.
+ return Transformer{remove(f)}
+ }
+ return Transformer{remove(s.Contains)}
+}
+
+// TODO: remove transform.RemoveFunc.
+
+type remove func(r rune) bool
+
+func (remove) Reset() {}
+
+// Span implements transform.Spanner.
+func (t remove) Span(src []byte, atEOF bool) (n int, err error) {
+ for r, size := rune(0), 0; n < len(src); {
+ if r = rune(src[n]); r < utf8.RuneSelf {
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[n:]); size == 1 {
+ // Invalid rune.
+ if !atEOF && !utf8.FullRune(src[n:]) {
+ err = transform.ErrShortSrc
+ } else {
+ err = transform.ErrEndOfSpan
+ }
+ break
+ }
+ if t(r) {
+ err = transform.ErrEndOfSpan
+ break
+ }
+ n += size
+ }
+ return
+}
+
+// Transform implements transform.Transformer.
+func (t remove) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ for r, size := rune(0), 0; nSrc < len(src); {
+ if r = rune(src[nSrc]); r < utf8.RuneSelf {
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 {
+ // Invalid rune.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+ // We replace illegal bytes with RuneError. Not doing so might
+ // otherwise turn a sequence of invalid UTF-8 into valid UTF-8.
+ // The resulting byte sequence may subsequently contain runes
+ // for which t(r) is true that were passed unnoticed.
+ if !t(utf8.RuneError) {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = runeErrorString[0]
+ dst[nDst+1] = runeErrorString[1]
+ dst[nDst+2] = runeErrorString[2]
+ nDst += 3
+ }
+ nSrc++
+ continue
+ }
+ if t(r) {
+ nSrc += size
+ continue
+ }
+ if nDst+size > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ for i := 0; i < size; i++ {
+ dst[nDst] = src[nSrc]
+ nDst++
+ nSrc++
+ }
+ }
+ return
+}
+
+// Map returns a Transformer that maps the runes in the input using the given
+// mapping. Illegal bytes in the input are converted to utf8.RuneError before
+// being passed to the mapping func.
+func Map(mapping func(rune) rune) Transformer {
+ return Transformer{mapper(mapping)}
+}
+
+type mapper func(rune) rune
+
+func (mapper) Reset() {}
+
+// Span implements transform.Spanner.
+func (t mapper) Span(src []byte, atEOF bool) (n int, err error) {
+ for r, size := rune(0), 0; n < len(src); n += size {
+ if r = rune(src[n]); r < utf8.RuneSelf {
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[n:]); size == 1 {
+ // Invalid rune.
+ if !atEOF && !utf8.FullRune(src[n:]) {
+ err = transform.ErrShortSrc
+ } else {
+ err = transform.ErrEndOfSpan
+ }
+ break
+ }
+ if t(r) != r {
+ err = transform.ErrEndOfSpan
+ break
+ }
+ }
+ return n, err
+}
+
+// Transform implements transform.Transformer.
+func (t mapper) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ var replacement rune
+ var b [utf8.UTFMax]byte
+
+ for r, size := rune(0), 0; nSrc < len(src); {
+ if r = rune(src[nSrc]); r < utf8.RuneSelf {
+ if replacement = t(r); replacement < utf8.RuneSelf {
+ if nDst == len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = byte(replacement)
+ nDst++
+ nSrc++
+ continue
+ }
+ size = 1
+ } else if r, size = utf8.DecodeRune(src[nSrc:]); size == 1 {
+ // Invalid rune.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+
+ if replacement = t(utf8.RuneError); replacement == utf8.RuneError {
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = runeErrorString[0]
+ dst[nDst+1] = runeErrorString[1]
+ dst[nDst+2] = runeErrorString[2]
+ nDst += 3
+ nSrc++
+ continue
+ }
+ } else if replacement = t(r); replacement == r {
+ if nDst+size > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ for i := 0; i < size; i++ {
+ dst[nDst] = src[nSrc]
+ nDst++
+ nSrc++
+ }
+ continue
+ }
+
+ n := utf8.EncodeRune(b[:], replacement)
+
+ if nDst+n > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ for i := 0; i < n; i++ {
+ dst[nDst] = b[i]
+ nDst++
+ }
+ nSrc += size
+ }
+ return
+}
+
+// ReplaceIllFormed returns a transformer that replaces all input bytes that are
+// not part of a well-formed UTF-8 code sequence with utf8.RuneError.
+func ReplaceIllFormed() Transformer {
+ return Transformer{&replaceIllFormed{}}
+}
+
+type replaceIllFormed struct{ transform.NopResetter }
+
+func (t replaceIllFormed) Span(src []byte, atEOF bool) (n int, err error) {
+ for n < len(src) {
+ // ASCII fast path.
+ if src[n] < utf8.RuneSelf {
+ n++
+ continue
+ }
+
+ r, size := utf8.DecodeRune(src[n:])
+
+ // Look for a valid non-ASCII rune.
+ if r != utf8.RuneError || size != 1 {
+ n += size
+ continue
+ }
+
+ // Look for short source data.
+ if !atEOF && !utf8.FullRune(src[n:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+
+ // We have an invalid rune.
+ err = transform.ErrEndOfSpan
+ break
+ }
+ return n, err
+}
+
+func (t replaceIllFormed) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ for nSrc < len(src) {
+ // ASCII fast path.
+ if r := src[nSrc]; r < utf8.RuneSelf {
+ if nDst == len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst] = r
+ nDst++
+ nSrc++
+ continue
+ }
+
+ // Look for a valid non-ASCII rune.
+ if _, size := utf8.DecodeRune(src[nSrc:]); size != 1 {
+ if size != copy(dst[nDst:], src[nSrc:nSrc+size]) {
+ err = transform.ErrShortDst
+ break
+ }
+ nDst += size
+ nSrc += size
+ continue
+ }
+
+ // Look for short source data.
+ if !atEOF && !utf8.FullRune(src[nSrc:]) {
+ err = transform.ErrShortSrc
+ break
+ }
+
+ // We have an invalid rune.
+ if nDst+3 > len(dst) {
+ err = transform.ErrShortDst
+ break
+ }
+ dst[nDst+0] = runeErrorString[0]
+ dst[nDst+1] = runeErrorString[1]
+ dst[nDst+2] = runeErrorString[2]
+ nDst += 3
+ nSrc++
+ }
+ return nDst, nSrc, err
+}
diff --git a/vendor/golang.org/x/text/transform/transform.go b/vendor/golang.org/x/text/transform/transform.go
new file mode 100644
index 000000000..fe47b9b35
--- /dev/null
+++ b/vendor/golang.org/x/text/transform/transform.go
@@ -0,0 +1,705 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package transform provides reader and writer wrappers that transform the
+// bytes passing through as well as various transformations. Example
+// transformations provided by other packages include normalization and
+// conversion between character sets.
+package transform // import "golang.org/x/text/transform"
+
+import (
+ "bytes"
+ "errors"
+ "io"
+ "unicode/utf8"
+)
+
+var (
+ // ErrShortDst means that the destination buffer was too short to
+ // receive all of the transformed bytes.
+ ErrShortDst = errors.New("transform: short destination buffer")
+
+ // ErrShortSrc means that the source buffer has insufficient data to
+ // complete the transformation.
+ ErrShortSrc = errors.New("transform: short source buffer")
+
+ // ErrEndOfSpan means that the input and output (the transformed input)
+ // are not identical.
+ ErrEndOfSpan = errors.New("transform: input and output are not identical")
+
+ // errInconsistentByteCount means that Transform returned success (nil
+ // error) but also returned nSrc inconsistent with the src argument.
+ errInconsistentByteCount = errors.New("transform: inconsistent byte count returned")
+
+ // errShortInternal means that an internal buffer is not large enough
+ // to make progress and the Transform operation must be aborted.
+ errShortInternal = errors.New("transform: short internal buffer")
+)
+
+// Transformer transforms bytes.
+type Transformer interface {
+ // Transform writes to dst the transformed bytes read from src, and
+ // returns the number of dst bytes written and src bytes read. The
+ // atEOF argument tells whether src represents the last bytes of the
+ // input.
+ //
+ // Callers should always process the nDst bytes produced and account
+ // for the nSrc bytes consumed before considering the error err.
+ //
+ // A nil error means that all of the transformed bytes (whether freshly
+ // transformed from src or left over from previous Transform calls)
+ // were written to dst. A nil error can be returned regardless of
+ // whether atEOF is true. If err is nil then nSrc must equal len(src);
+ // the converse is not necessarily true.
+ //
+ // ErrShortDst means that dst was too short to receive all of the
+ // transformed bytes. ErrShortSrc means that src had insufficient data
+ // to complete the transformation. If both conditions apply, then
+ // either error may be returned. Other than the error conditions listed
+ // here, implementations are free to report other errors that arise.
+ Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error)
+
+ // Reset resets the state and allows a Transformer to be reused.
+ Reset()
+}
+
+// SpanningTransformer extends the Transformer interface with a Span method
+// that determines how much of the input already conforms to the Transformer.
+type SpanningTransformer interface {
+ Transformer
+
+ // Span returns a position in src such that transforming src[:n] results in
+ // identical output src[:n] for these bytes. It does not necessarily return
+ // the largest such n. The atEOF argument tells whether src represents the
+ // last bytes of the input.
+ //
+ // Callers should always account for the n bytes consumed before
+ // considering the error err.
+ //
+ // A nil error means that all input bytes are known to be identical to the
+ // output produced by the Transformer. A nil error can be be returned
+ // regardless of whether atEOF is true. If err is nil, then then n must
+ // equal len(src); the converse is not necessarily true.
+ //
+ // ErrEndOfSpan means that the Transformer output may differ from the
+ // input after n bytes. Note that n may be len(src), meaning that the output
+ // would contain additional bytes after otherwise identical output.
+ // ErrShortSrc means that src had insufficient data to determine whether the
+ // remaining bytes would change. Other than the error conditions listed
+ // here, implementations are free to report other errors that arise.
+ //
+ // Calling Span can modify the Transformer state as a side effect. In
+ // effect, it does the transformation just as calling Transform would, only
+ // without copying to a destination buffer and only up to a point it can
+ // determine the input and output bytes are the same. This is obviously more
+ // limited than calling Transform, but can be more efficient in terms of
+ // copying and allocating buffers. Calls to Span and Transform may be
+ // interleaved.
+ Span(src []byte, atEOF bool) (n int, err error)
+}
+
+// NopResetter can be embedded by implementations of Transformer to add a nop
+// Reset method.
+type NopResetter struct{}
+
+// Reset implements the Reset method of the Transformer interface.
+func (NopResetter) Reset() {}
+
+// Reader wraps another io.Reader by transforming the bytes read.
+type Reader struct {
+ r io.Reader
+ t Transformer
+ err error
+
+ // dst[dst0:dst1] contains bytes that have been transformed by t but
+ // not yet copied out via Read.
+ dst []byte
+ dst0, dst1 int
+
+ // src[src0:src1] contains bytes that have been read from r but not
+ // yet transformed through t.
+ src []byte
+ src0, src1 int
+
+ // transformComplete is whether the transformation is complete,
+ // regardless of whether or not it was successful.
+ transformComplete bool
+}
+
+const defaultBufSize = 4096
+
+// NewReader returns a new Reader that wraps r by transforming the bytes read
+// via t. It calls Reset on t.
+func NewReader(r io.Reader, t Transformer) *Reader {
+ t.Reset()
+ return &Reader{
+ r: r,
+ t: t,
+ dst: make([]byte, defaultBufSize),
+ src: make([]byte, defaultBufSize),
+ }
+}
+
+// Read implements the io.Reader interface.
+func (r *Reader) Read(p []byte) (int, error) {
+ n, err := 0, error(nil)
+ for {
+ // Copy out any transformed bytes and return the final error if we are done.
+ if r.dst0 != r.dst1 {
+ n = copy(p, r.dst[r.dst0:r.dst1])
+ r.dst0 += n
+ if r.dst0 == r.dst1 && r.transformComplete {
+ return n, r.err
+ }
+ return n, nil
+ } else if r.transformComplete {
+ return 0, r.err
+ }
+
+ // Try to transform some source bytes, or to flush the transformer if we
+ // are out of source bytes. We do this even if r.r.Read returned an error.
+ // As the io.Reader documentation says, "process the n > 0 bytes returned
+ // before considering the error".
+ if r.src0 != r.src1 || r.err != nil {
+ r.dst0 = 0
+ r.dst1, n, err = r.t.Transform(r.dst, r.src[r.src0:r.src1], r.err == io.EOF)
+ r.src0 += n
+
+ switch {
+ case err == nil:
+ if r.src0 != r.src1 {
+ r.err = errInconsistentByteCount
+ }
+ // The Transform call was successful; we are complete if we
+ // cannot read more bytes into src.
+ r.transformComplete = r.err != nil
+ continue
+ case err == ErrShortDst && (r.dst1 != 0 || n != 0):
+ // Make room in dst by copying out, and try again.
+ continue
+ case err == ErrShortSrc && r.src1-r.src0 != len(r.src) && r.err == nil:
+ // Read more bytes into src via the code below, and try again.
+ default:
+ r.transformComplete = true
+ // The reader error (r.err) takes precedence over the
+ // transformer error (err) unless r.err is nil or io.EOF.
+ if r.err == nil || r.err == io.EOF {
+ r.err = err
+ }
+ continue
+ }
+ }
+
+ // Move any untransformed source bytes to the start of the buffer
+ // and read more bytes.
+ if r.src0 != 0 {
+ r.src0, r.src1 = 0, copy(r.src, r.src[r.src0:r.src1])
+ }
+ n, r.err = r.r.Read(r.src[r.src1:])
+ r.src1 += n
+ }
+}
+
+// TODO: implement ReadByte (and ReadRune??).
+
+// Writer wraps another io.Writer by transforming the bytes read.
+// The user needs to call Close to flush unwritten bytes that may
+// be buffered.
+type Writer struct {
+ w io.Writer
+ t Transformer
+ dst []byte
+
+ // src[:n] contains bytes that have not yet passed through t.
+ src []byte
+ n int
+}
+
+// NewWriter returns a new Writer that wraps w by transforming the bytes written
+// via t. It calls Reset on t.
+func NewWriter(w io.Writer, t Transformer) *Writer {
+ t.Reset()
+ return &Writer{
+ w: w,
+ t: t,
+ dst: make([]byte, defaultBufSize),
+ src: make([]byte, defaultBufSize),
+ }
+}
+
+// Write implements the io.Writer interface. If there are not enough
+// bytes available to complete a Transform, the bytes will be buffered
+// for the next write. Call Close to convert the remaining bytes.
+func (w *Writer) Write(data []byte) (n int, err error) {
+ src := data
+ if w.n > 0 {
+ // Append bytes from data to the last remainder.
+ // TODO: limit the amount copied on first try.
+ n = copy(w.src[w.n:], data)
+ w.n += n
+ src = w.src[:w.n]
+ }
+ for {
+ nDst, nSrc, err := w.t.Transform(w.dst, src, false)
+ if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
+ return n, werr
+ }
+ src = src[nSrc:]
+ if w.n == 0 {
+ n += nSrc
+ } else if len(src) <= n {
+ // Enough bytes from w.src have been consumed. We make src point
+ // to data instead to reduce the copying.
+ w.n = 0
+ n -= len(src)
+ src = data[n:]
+ if n < len(data) && (err == nil || err == ErrShortSrc) {
+ continue
+ }
+ }
+ switch err {
+ case ErrShortDst:
+ // This error is okay as long as we are making progress.
+ if nDst > 0 || nSrc > 0 {
+ continue
+ }
+ case ErrShortSrc:
+ if len(src) < len(w.src) {
+ m := copy(w.src, src)
+ // If w.n > 0, bytes from data were already copied to w.src and n
+ // was already set to the number of bytes consumed.
+ if w.n == 0 {
+ n += m
+ }
+ w.n = m
+ err = nil
+ } else if nDst > 0 || nSrc > 0 {
+ // Not enough buffer to store the remainder. Keep processing as
+ // long as there is progress. Without this case, transforms that
+ // require a lookahead larger than the buffer may result in an
+ // error. This is not something one may expect to be common in
+ // practice, but it may occur when buffers are set to small
+ // sizes during testing.
+ continue
+ }
+ case nil:
+ if w.n > 0 {
+ err = errInconsistentByteCount
+ }
+ }
+ return n, err
+ }
+}
+
+// Close implements the io.Closer interface.
+func (w *Writer) Close() error {
+ src := w.src[:w.n]
+ for {
+ nDst, nSrc, err := w.t.Transform(w.dst, src, true)
+ if _, werr := w.w.Write(w.dst[:nDst]); werr != nil {
+ return werr
+ }
+ if err != ErrShortDst {
+ return err
+ }
+ src = src[nSrc:]
+ }
+}
+
+type nop struct{ NopResetter }
+
+func (nop) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ n := copy(dst, src)
+ if n < len(src) {
+ err = ErrShortDst
+ }
+ return n, n, err
+}
+
+func (nop) Span(src []byte, atEOF bool) (n int, err error) {
+ return len(src), nil
+}
+
+type discard struct{ NopResetter }
+
+func (discard) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ return 0, len(src), nil
+}
+
+var (
+ // Discard is a Transformer for which all Transform calls succeed
+ // by consuming all bytes and writing nothing.
+ Discard Transformer = discard{}
+
+ // Nop is a SpanningTransformer that copies src to dst.
+ Nop SpanningTransformer = nop{}
+)
+
+// chain is a sequence of links. A chain with N Transformers has N+1 links and
+// N+1 buffers. Of those N+1 buffers, the first and last are the src and dst
+// buffers given to chain.Transform and the middle N-1 buffers are intermediate
+// buffers owned by the chain. The i'th link transforms bytes from the i'th
+// buffer chain.link[i].b at read offset chain.link[i].p to the i+1'th buffer
+// chain.link[i+1].b at write offset chain.link[i+1].n, for i in [0, N).
+type chain struct {
+ link []link
+ err error
+ // errStart is the index at which the error occurred plus 1. Processing
+ // errStart at this level at the next call to Transform. As long as
+ // errStart > 0, chain will not consume any more source bytes.
+ errStart int
+}
+
+func (c *chain) fatalError(errIndex int, err error) {
+ if i := errIndex + 1; i > c.errStart {
+ c.errStart = i
+ c.err = err
+ }
+}
+
+type link struct {
+ t Transformer
+ // b[p:n] holds the bytes to be transformed by t.
+ b []byte
+ p int
+ n int
+}
+
+func (l *link) src() []byte {
+ return l.b[l.p:l.n]
+}
+
+func (l *link) dst() []byte {
+ return l.b[l.n:]
+}
+
+// Chain returns a Transformer that applies t in sequence.
+func Chain(t ...Transformer) Transformer {
+ if len(t) == 0 {
+ return nop{}
+ }
+ c := &chain{link: make([]link, len(t)+1)}
+ for i, tt := range t {
+ c.link[i].t = tt
+ }
+ // Allocate intermediate buffers.
+ b := make([][defaultBufSize]byte, len(t)-1)
+ for i := range b {
+ c.link[i+1].b = b[i][:]
+ }
+ return c
+}
+
+// Reset resets the state of Chain. It calls Reset on all the Transformers.
+func (c *chain) Reset() {
+ for i, l := range c.link {
+ if l.t != nil {
+ l.t.Reset()
+ }
+ c.link[i].p, c.link[i].n = 0, 0
+ }
+}
+
+// TODO: make chain use Span (is going to be fun to implement!)
+
+// Transform applies the transformers of c in sequence.
+func (c *chain) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ // Set up src and dst in the chain.
+ srcL := &c.link[0]
+ dstL := &c.link[len(c.link)-1]
+ srcL.b, srcL.p, srcL.n = src, 0, len(src)
+ dstL.b, dstL.n = dst, 0
+ var lastFull, needProgress bool // for detecting progress
+
+ // i is the index of the next Transformer to apply, for i in [low, high].
+ // low is the lowest index for which c.link[low] may still produce bytes.
+ // high is the highest index for which c.link[high] has a Transformer.
+ // The error returned by Transform determines whether to increase or
+ // decrease i. We try to completely fill a buffer before converting it.
+ for low, i, high := c.errStart, c.errStart, len(c.link)-2; low <= i && i <= high; {
+ in, out := &c.link[i], &c.link[i+1]
+ nDst, nSrc, err0 := in.t.Transform(out.dst(), in.src(), atEOF && low == i)
+ out.n += nDst
+ in.p += nSrc
+ if i > 0 && in.p == in.n {
+ in.p, in.n = 0, 0
+ }
+ needProgress, lastFull = lastFull, false
+ switch err0 {
+ case ErrShortDst:
+ // Process the destination buffer next. Return if we are already
+ // at the high index.
+ if i == high {
+ return dstL.n, srcL.p, ErrShortDst
+ }
+ if out.n != 0 {
+ i++
+ // If the Transformer at the next index is not able to process any
+ // source bytes there is nothing that can be done to make progress
+ // and the bytes will remain unprocessed. lastFull is used to
+ // detect this and break out of the loop with a fatal error.
+ lastFull = true
+ continue
+ }
+ // The destination buffer was too small, but is completely empty.
+ // Return a fatal error as this transformation can never complete.
+ c.fatalError(i, errShortInternal)
+ case ErrShortSrc:
+ if i == 0 {
+ // Save ErrShortSrc in err. All other errors take precedence.
+ err = ErrShortSrc
+ break
+ }
+ // Source bytes were depleted before filling up the destination buffer.
+ // Verify we made some progress, move the remaining bytes to the errStart
+ // and try to get more source bytes.
+ if needProgress && nSrc == 0 || in.n-in.p == len(in.b) {
+ // There were not enough source bytes to proceed while the source
+ // buffer cannot hold any more bytes. Return a fatal error as this
+ // transformation can never complete.
+ c.fatalError(i, errShortInternal)
+ break
+ }
+ // in.b is an internal buffer and we can make progress.
+ in.p, in.n = 0, copy(in.b, in.src())
+ fallthrough
+ case nil:
+ // if i == low, we have depleted the bytes at index i or any lower levels.
+ // In that case we increase low and i. In all other cases we decrease i to
+ // fetch more bytes before proceeding to the next index.
+ if i > low {
+ i--
+ continue
+ }
+ default:
+ c.fatalError(i, err0)
+ }
+ // Exhausted level low or fatal error: increase low and continue
+ // to process the bytes accepted so far.
+ i++
+ low = i
+ }
+
+ // If c.errStart > 0, this means we found a fatal error. We will clear
+ // all upstream buffers. At this point, no more progress can be made
+ // downstream, as Transform would have bailed while handling ErrShortDst.
+ if c.errStart > 0 {
+ for i := 1; i < c.errStart; i++ {
+ c.link[i].p, c.link[i].n = 0, 0
+ }
+ err, c.errStart, c.err = c.err, 0, nil
+ }
+ return dstL.n, srcL.p, err
+}
+
+// Deprecated: use runes.Remove instead.
+func RemoveFunc(f func(r rune) bool) Transformer {
+ return removeF(f)
+}
+
+type removeF func(r rune) bool
+
+func (removeF) Reset() {}
+
+// Transform implements the Transformer interface.
+func (t removeF) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
+ for r, sz := rune(0), 0; len(src) > 0; src = src[sz:] {
+
+ if r = rune(src[0]); r < utf8.RuneSelf {
+ sz = 1
+ } else {
+ r, sz = utf8.DecodeRune(src)
+
+ if sz == 1 {
+ // Invalid rune.
+ if !atEOF && !utf8.FullRune(src) {
+ err = ErrShortSrc
+ break
+ }
+ // We replace illegal bytes with RuneError. Not doing so might
+ // otherwise turn a sequence of invalid UTF-8 into valid UTF-8.
+ // The resulting byte sequence may subsequently contain runes
+ // for which t(r) is true that were passed unnoticed.
+ if !t(r) {
+ if nDst+3 > len(dst) {
+ err = ErrShortDst
+ break
+ }
+ nDst += copy(dst[nDst:], "\uFFFD")
+ }
+ nSrc++
+ continue
+ }
+ }
+
+ if !t(r) {
+ if nDst+sz > len(dst) {
+ err = ErrShortDst
+ break
+ }
+ nDst += copy(dst[nDst:], src[:sz])
+ }
+ nSrc += sz
+ }
+ return
+}
+
+// grow returns a new []byte that is longer than b, and copies the first n bytes
+// of b to the start of the new slice.
+func grow(b []byte, n int) []byte {
+ m := len(b)
+ if m <= 32 {
+ m = 64
+ } else if m <= 256 {
+ m *= 2
+ } else {
+ m += m >> 1
+ }
+ buf := make([]byte, m)
+ copy(buf, b[:n])
+ return buf
+}
+
+const initialBufSize = 128
+
+// String returns a string with the result of converting s[:n] using t, where
+// n <= len(s). If err == nil, n will be len(s). It calls Reset on t.
+func String(t Transformer, s string) (result string, n int, err error) {
+ t.Reset()
+ if s == "" {
+ // Fast path for the common case for empty input. Results in about a
+ // 86% reduction of running time for BenchmarkStringLowerEmpty.
+ if _, _, err := t.Transform(nil, nil, true); err == nil {
+ return "", 0, nil
+ }
+ }
+
+ // Allocate only once. Note that both dst and src escape when passed to
+ // Transform.
+ buf := [2 * initialBufSize]byte{}
+ dst := buf[:initialBufSize:initialBufSize]
+ src := buf[initialBufSize : 2*initialBufSize]
+
+ // The input string s is transformed in multiple chunks (starting with a
+ // chunk size of initialBufSize). nDst and nSrc are per-chunk (or
+ // per-Transform-call) indexes, pDst and pSrc are overall indexes.
+ nDst, nSrc := 0, 0
+ pDst, pSrc := 0, 0
+
+ // pPrefix is the length of a common prefix: the first pPrefix bytes of the
+ // result will equal the first pPrefix bytes of s. It is not guaranteed to
+ // be the largest such value, but if pPrefix, len(result) and len(s) are
+ // all equal after the final transform (i.e. calling Transform with atEOF
+ // being true returned nil error) then we don't need to allocate a new
+ // result string.
+ pPrefix := 0
+ for {
+ // Invariant: pDst == pPrefix && pSrc == pPrefix.
+
+ n := copy(src, s[pSrc:])
+ nDst, nSrc, err = t.Transform(dst, src[:n], pSrc+n == len(s))
+ pDst += nDst
+ pSrc += nSrc
+
+ // TODO: let transformers implement an optional Spanner interface, akin
+ // to norm's QuickSpan. This would even allow us to avoid any allocation.
+ if !bytes.Equal(dst[:nDst], src[:nSrc]) {
+ break
+ }
+ pPrefix = pSrc
+ if err == ErrShortDst {
+ // A buffer can only be short if a transformer modifies its input.
+ break
+ } else if err == ErrShortSrc {
+ if nSrc == 0 {
+ // No progress was made.
+ break
+ }
+ // Equal so far and !atEOF, so continue checking.
+ } else if err != nil || pPrefix == len(s) {
+ return string(s[:pPrefix]), pPrefix, err
+ }
+ }
+ // Post-condition: pDst == pPrefix + nDst && pSrc == pPrefix + nSrc.
+
+ // We have transformed the first pSrc bytes of the input s to become pDst
+ // transformed bytes. Those transformed bytes are discontiguous: the first
+ // pPrefix of them equal s[:pPrefix] and the last nDst of them equal
+ // dst[:nDst]. We copy them around, into a new dst buffer if necessary, so
+ // that they become one contiguous slice: dst[:pDst].
+ if pPrefix != 0 {
+ newDst := dst
+ if pDst > len(newDst) {
+ newDst = make([]byte, len(s)+nDst-nSrc)
+ }
+ copy(newDst[pPrefix:pDst], dst[:nDst])
+ copy(newDst[:pPrefix], s[:pPrefix])
+ dst = newDst
+ }
+
+ // Prevent duplicate Transform calls with atEOF being true at the end of
+ // the input. Also return if we have an unrecoverable error.
+ if (err == nil && pSrc == len(s)) ||
+ (err != nil && err != ErrShortDst && err != ErrShortSrc) {
+ return string(dst[:pDst]), pSrc, err
+ }
+
+ // Transform the remaining input, growing dst and src buffers as necessary.
+ for {
+ n := copy(src, s[pSrc:])
+ nDst, nSrc, err := t.Transform(dst[pDst:], src[:n], pSrc+n == len(s))
+ pDst += nDst
+ pSrc += nSrc
+
+ // If we got ErrShortDst or ErrShortSrc, do not grow as long as we can
+ // make progress. This may avoid excessive allocations.
+ if err == ErrShortDst {
+ if nDst == 0 {
+ dst = grow(dst, pDst)
+ }
+ } else if err == ErrShortSrc {
+ if nSrc == 0 {
+ src = grow(src, 0)
+ }
+ } else if err != nil || pSrc == len(s) {
+ return string(dst[:pDst]), pSrc, err
+ }
+ }
+}
+
+// Bytes returns a new byte slice with the result of converting b[:n] using t,
+// where n <= len(b). If err == nil, n will be len(b). It calls Reset on t.
+func Bytes(t Transformer, b []byte) (result []byte, n int, err error) {
+ return doAppend(t, 0, make([]byte, len(b)), b)
+}
+
+// Append appends the result of converting src[:n] using t to dst, where
+// n <= len(src), If err == nil, n will be len(src). It calls Reset on t.
+func Append(t Transformer, dst, src []byte) (result []byte, n int, err error) {
+ if len(dst) == cap(dst) {
+ n := len(src) + len(dst) // It is okay for this to be 0.
+ b := make([]byte, n)
+ dst = b[:copy(b, dst)]
+ }
+ return doAppend(t, len(dst), dst[:cap(dst)], src)
+}
+
+func doAppend(t Transformer, pDst int, dst, src []byte) (result []byte, n int, err error) {
+ t.Reset()
+ pSrc := 0
+ for {
+ nDst, nSrc, err := t.Transform(dst[pDst:], src[pSrc:], true)
+ pDst += nDst
+ pSrc += nSrc
+ if err != ErrShortDst {
+ return dst[:pDst], pSrc, err
+ }
+
+ // Grow the destination buffer, but do not grow as long as we can make
+ // progress. This may avoid excessive allocations.
+ if nDst == 0 {
+ dst = grow(dst, pDst)
+ }
+ }
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/base.go b/vendor/golang.org/x/text/unicode/cldr/base.go
new file mode 100644
index 000000000..2382f4d6d
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/base.go
@@ -0,0 +1,100 @@
+// 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 cldr
+
+import (
+ "encoding/xml"
+ "regexp"
+ "strconv"
+)
+
+// Elem is implemented by every XML element.
+type Elem interface {
+ setEnclosing(Elem)
+ setName(string)
+ enclosing() Elem
+
+ GetCommon() *Common
+}
+
+type hidden struct {
+ CharData string `xml:",chardata"`
+ Alias *struct {
+ Common
+ Source string `xml:"source,attr"`
+ Path string `xml:"path,attr"`
+ } `xml:"alias"`
+ Def *struct {
+ Common
+ Choice string `xml:"choice,attr,omitempty"`
+ Type string `xml:"type,attr,omitempty"`
+ } `xml:"default"`
+}
+
+// Common holds several of the most common attributes and sub elements
+// of an XML element.
+type Common struct {
+ XMLName xml.Name
+ name string
+ enclElem Elem
+ Type string `xml:"type,attr,omitempty"`
+ Reference string `xml:"reference,attr,omitempty"`
+ Alt string `xml:"alt,attr,omitempty"`
+ ValidSubLocales string `xml:"validSubLocales,attr,omitempty"`
+ Draft string `xml:"draft,attr,omitempty"`
+ hidden
+}
+
+// Default returns the default type to select from the enclosed list
+// or "" if no default value is specified.
+func (e *Common) Default() string {
+ if e.Def == nil {
+ return ""
+ }
+ if e.Def.Choice != "" {
+ return e.Def.Choice
+ } else if e.Def.Type != "" {
+ // Type is still used by the default element in collation.
+ return e.Def.Type
+ }
+ return ""
+}
+
+// GetCommon returns e. It is provided such that Common implements Elem.
+func (e *Common) GetCommon() *Common {
+ return e
+}
+
+// Data returns the character data accumulated for this element.
+func (e *Common) Data() string {
+ e.CharData = charRe.ReplaceAllStringFunc(e.CharData, replaceUnicode)
+ return e.CharData
+}
+
+func (e *Common) setName(s string) {
+ e.name = s
+}
+
+func (e *Common) enclosing() Elem {
+ return e.enclElem
+}
+
+func (e *Common) setEnclosing(en Elem) {
+ e.enclElem = en
+}
+
+// Escape characters that can be escaped without further escaping the string.
+var charRe = regexp.MustCompile(`&#x[0-9a-fA-F]*;|\\u[0-9a-fA-F]{4}|\\U[0-9a-fA-F]{8}|\\x[0-9a-fA-F]{2}|\\[0-7]{3}|\\[abtnvfr]`)
+
+// replaceUnicode converts hexadecimal Unicode codepoint notations to a one-rune string.
+// It assumes the input string is correctly formatted.
+func replaceUnicode(s string) string {
+ if s[1] == '#' {
+ r, _ := strconv.ParseInt(s[3:len(s)-1], 16, 32)
+ return string(r)
+ }
+ r, _, _, _ := strconv.UnquoteChar(s, 0)
+ return string(r)
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/cldr.go b/vendor/golang.org/x/text/unicode/cldr/cldr.go
new file mode 100644
index 000000000..2197f8ac2
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/cldr.go
@@ -0,0 +1,130 @@
+// 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.
+
+//go:generate go run makexml.go -output xml.go
+
+// Package cldr provides a parser for LDML and related XML formats.
+// This package is intended to be used by the table generation tools
+// for the various internationalization-related packages.
+// As the XML types are generated from the CLDR DTD, and as the CLDR standard
+// is periodically amended, this package may change considerably over time.
+// This mostly means that data may appear and disappear between versions.
+// That is, old code should keep compiling for newer versions, but data
+// may have moved or changed.
+// CLDR version 22 is the first version supported by this package.
+// Older versions may not work.
+package cldr // import "golang.org/x/text/unicode/cldr"
+
+import (
+ "fmt"
+ "sort"
+)
+
+// CLDR provides access to parsed data of the Unicode Common Locale Data Repository.
+type CLDR struct {
+ parent map[string][]string
+ locale map[string]*LDML
+ resolved map[string]*LDML
+ bcp47 *LDMLBCP47
+ supp *SupplementalData
+}
+
+func makeCLDR() *CLDR {
+ return &CLDR{
+ parent: make(map[string][]string),
+ locale: make(map[string]*LDML),
+ resolved: make(map[string]*LDML),
+ bcp47: &LDMLBCP47{},
+ supp: &SupplementalData{},
+ }
+}
+
+// BCP47 returns the parsed BCP47 LDML data. If no such data was parsed, nil is returned.
+func (cldr *CLDR) BCP47() *LDMLBCP47 {
+ return nil
+}
+
+// Draft indicates the draft level of an element.
+type Draft int
+
+const (
+ Approved Draft = iota
+ Contributed
+ Provisional
+ Unconfirmed
+)
+
+var drafts = []string{"unconfirmed", "provisional", "contributed", "approved", ""}
+
+// ParseDraft returns the Draft value corresponding to the given string. The
+// empty string corresponds to Approved.
+func ParseDraft(level string) (Draft, error) {
+ if level == "" {
+ return Approved, nil
+ }
+ for i, s := range drafts {
+ if level == s {
+ return Unconfirmed - Draft(i), nil
+ }
+ }
+ return Approved, fmt.Errorf("cldr: unknown draft level %q", level)
+}
+
+func (d Draft) String() string {
+ return drafts[len(drafts)-1-int(d)]
+}
+
+// SetDraftLevel sets which draft levels to include in the evaluated LDML.
+// Any draft element for which the draft level is higher than lev will be excluded.
+// If multiple draft levels are available for a single element, the one with the
+// lowest draft level will be selected, unless preferDraft is true, in which case
+// the highest draft will be chosen.
+// It is assumed that the underlying LDML is canonicalized.
+func (cldr *CLDR) SetDraftLevel(lev Draft, preferDraft bool) {
+ // TODO: implement
+ cldr.resolved = make(map[string]*LDML)
+}
+
+// RawLDML returns the LDML XML for id in unresolved form.
+// id must be one of the strings returned by Locales.
+func (cldr *CLDR) RawLDML(loc string) *LDML {
+ return cldr.locale[loc]
+}
+
+// LDML returns the fully resolved LDML XML for loc, which must be one of
+// the strings returned by Locales.
+func (cldr *CLDR) LDML(loc string) (*LDML, error) {
+ return cldr.resolve(loc)
+}
+
+// Supplemental returns the parsed supplemental data. If no such data was parsed,
+// nil is returned.
+func (cldr *CLDR) Supplemental() *SupplementalData {
+ return cldr.supp
+}
+
+// Locales returns the locales for which there exist files.
+// Valid sublocales for which there is no file are not included.
+// The root locale is always sorted first.
+func (cldr *CLDR) Locales() []string {
+ loc := []string{"root"}
+ hasRoot := false
+ for l, _ := range cldr.locale {
+ if l == "root" {
+ hasRoot = true
+ continue
+ }
+ loc = append(loc, l)
+ }
+ sort.Strings(loc[1:])
+ if !hasRoot {
+ return loc[1:]
+ }
+ return loc
+}
+
+// Get fills in the fields of x based on the XPath path.
+func Get(e Elem, path string) (res Elem, err error) {
+ return walkXPath(e, path)
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/collate.go b/vendor/golang.org/x/text/unicode/cldr/collate.go
new file mode 100644
index 000000000..80ee28d79
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/collate.go
@@ -0,0 +1,359 @@
+// 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 cldr
+
+import (
+ "bufio"
+ "encoding/xml"
+ "errors"
+ "fmt"
+ "strconv"
+ "strings"
+ "unicode"
+ "unicode/utf8"
+)
+
+// RuleProcessor can be passed to Collator's Process method, which
+// parses the rules and calls the respective method for each rule found.
+type RuleProcessor interface {
+ Reset(anchor string, before int) error
+ Insert(level int, str, context, extend string) error
+ Index(id string)
+}
+
+const (
+ // cldrIndex is a Unicode-reserved sentinel value used to mark the start
+ // of a grouping within an index.
+ // We ignore any rule that starts with this rune.
+ // See http://unicode.org/reports/tr35/#Collation_Elements for details.
+ cldrIndex = "\uFDD0"
+
+ // specialAnchor is the format in which to represent logical reset positions,
+ // such as "first tertiary ignorable".
+ specialAnchor = "<%s/>"
+)
+
+// Process parses the rules for the tailorings of this collation
+// and calls the respective methods of p for each rule found.
+func (c Collation) Process(p RuleProcessor) (err error) {
+ if len(c.Cr) > 0 {
+ if len(c.Cr) > 1 {
+ return fmt.Errorf("multiple cr elements, want 0 or 1")
+ }
+ return processRules(p, c.Cr[0].Data())
+ }
+ if c.Rules.Any != nil {
+ return c.processXML(p)
+ }
+ return errors.New("no tailoring data")
+}
+
+// processRules parses rules in the Collation Rule Syntax defined in
+// http://www.unicode.org/reports/tr35/tr35-collation.html#Collation_Tailorings.
+func processRules(p RuleProcessor, s string) (err error) {
+ chk := func(s string, e error) string {
+ if err == nil {
+ err = e
+ }
+ return s
+ }
+ i := 0 // Save the line number for use after the loop.
+ scanner := bufio.NewScanner(strings.NewReader(s))
+ for ; scanner.Scan() && err == nil; i++ {
+ for s := skipSpace(scanner.Text()); s != "" && s[0] != '#'; s = skipSpace(s) {
+ level := 5
+ var ch byte
+ switch ch, s = s[0], s[1:]; ch {
+ case '&': // followed by <anchor> or '[' <key> ']'
+ if s = skipSpace(s); consume(&s, '[') {
+ s = chk(parseSpecialAnchor(p, s))
+ } else {
+ s = chk(parseAnchor(p, 0, s))
+ }
+ case '<': // sort relation '<'{1,4}, optionally followed by '*'.
+ for level = 1; consume(&s, '<'); level++ {
+ }
+ if level > 4 {
+ err = fmt.Errorf("level %d > 4", level)
+ }
+ fallthrough
+ case '=': // identity relation, optionally followed by *.
+ if consume(&s, '*') {
+ s = chk(parseSequence(p, level, s))
+ } else {
+ s = chk(parseOrder(p, level, s))
+ }
+ default:
+ chk("", fmt.Errorf("illegal operator %q", ch))
+ break
+ }
+ }
+ }
+ if chk("", scanner.Err()); err != nil {
+ return fmt.Errorf("%d: %v", i, err)
+ }
+ return nil
+}
+
+// parseSpecialAnchor parses the anchor syntax which is either of the form
+// ['before' <level>] <anchor>
+// or
+// [<label>]
+// The starting should already be consumed.
+func parseSpecialAnchor(p RuleProcessor, s string) (tail string, err error) {
+ i := strings.IndexByte(s, ']')
+ if i == -1 {
+ return "", errors.New("unmatched bracket")
+ }
+ a := strings.TrimSpace(s[:i])
+ s = s[i+1:]
+ if strings.HasPrefix(a, "before ") {
+ l, err := strconv.ParseUint(skipSpace(a[len("before "):]), 10, 3)
+ if err != nil {
+ return s, err
+ }
+ return parseAnchor(p, int(l), s)
+ }
+ return s, p.Reset(fmt.Sprintf(specialAnchor, a), 0)
+}
+
+func parseAnchor(p RuleProcessor, level int, s string) (tail string, err error) {
+ anchor, s, err := scanString(s)
+ if err != nil {
+ return s, err
+ }
+ return s, p.Reset(anchor, level)
+}
+
+func parseOrder(p RuleProcessor, level int, s string) (tail string, err error) {
+ var value, context, extend string
+ if value, s, err = scanString(s); err != nil {
+ return s, err
+ }
+ if strings.HasPrefix(value, cldrIndex) {
+ p.Index(value[len(cldrIndex):])
+ return
+ }
+ if consume(&s, '|') {
+ if context, s, err = scanString(s); err != nil {
+ return s, errors.New("missing string after context")
+ }
+ }
+ if consume(&s, '/') {
+ if extend, s, err = scanString(s); err != nil {
+ return s, errors.New("missing string after extension")
+ }
+ }
+ return s, p.Insert(level, value, context, extend)
+}
+
+// scanString scans a single input string.
+func scanString(s string) (str, tail string, err error) {
+ if s = skipSpace(s); s == "" {
+ return s, s, errors.New("missing string")
+ }
+ buf := [16]byte{} // small but enough to hold most cases.
+ value := buf[:0]
+ for s != "" {
+ if consume(&s, '\'') {
+ i := strings.IndexByte(s, '\'')
+ if i == -1 {
+ return "", "", errors.New(`unmatched single quote`)
+ }
+ if i == 0 {
+ value = append(value, '\'')
+ } else {
+ value = append(value, s[:i]...)
+ }
+ s = s[i+1:]
+ continue
+ }
+ r, sz := utf8.DecodeRuneInString(s)
+ if unicode.IsSpace(r) || strings.ContainsRune("&<=#", r) {
+ break
+ }
+ value = append(value, s[:sz]...)
+ s = s[sz:]
+ }
+ return string(value), skipSpace(s), nil
+}
+
+func parseSequence(p RuleProcessor, level int, s string) (tail string, err error) {
+ if s = skipSpace(s); s == "" {
+ return s, errors.New("empty sequence")
+ }
+ last := rune(0)
+ for s != "" {
+ r, sz := utf8.DecodeRuneInString(s)
+ s = s[sz:]
+
+ if r == '-' {
+ // We have a range. The first element was already written.
+ if last == 0 {
+ return s, errors.New("range without starter value")
+ }
+ r, sz = utf8.DecodeRuneInString(s)
+ s = s[sz:]
+ if r == utf8.RuneError || r < last {
+ return s, fmt.Errorf("invalid range %q-%q", last, r)
+ }
+ for i := last + 1; i <= r; i++ {
+ if err := p.Insert(level, string(i), "", ""); err != nil {
+ return s, err
+ }
+ }
+ last = 0
+ continue
+ }
+
+ if unicode.IsSpace(r) || unicode.IsPunct(r) {
+ break
+ }
+
+ // normal case
+ if err := p.Insert(level, string(r), "", ""); err != nil {
+ return s, err
+ }
+ last = r
+ }
+ return s, nil
+}
+
+func skipSpace(s string) string {
+ return strings.TrimLeftFunc(s, unicode.IsSpace)
+}
+
+// consumes returns whether the next byte is ch. If so, it gobbles it by
+// updating s.
+func consume(s *string, ch byte) (ok bool) {
+ if *s == "" || (*s)[0] != ch {
+ return false
+ }
+ *s = (*s)[1:]
+ return true
+}
+
+// The following code parses Collation rules of CLDR version 24 and before.
+
+var lmap = map[byte]int{
+ 'p': 1,
+ 's': 2,
+ 't': 3,
+ 'i': 5,
+}
+
+type rulesElem struct {
+ Rules struct {
+ Common
+ Any []*struct {
+ XMLName xml.Name
+ rule
+ } `xml:",any"`
+ } `xml:"rules"`
+}
+
+type rule struct {
+ Value string `xml:",chardata"`
+ Before string `xml:"before,attr"`
+ Any []*struct {
+ XMLName xml.Name
+ rule
+ } `xml:",any"`
+}
+
+var emptyValueError = errors.New("cldr: empty rule value")
+
+func (r *rule) value() (string, error) {
+ // Convert hexadecimal Unicode codepoint notation to a string.
+ s := charRe.ReplaceAllStringFunc(r.Value, replaceUnicode)
+ r.Value = s
+ if s == "" {
+ if len(r.Any) != 1 {
+ return "", emptyValueError
+ }
+ r.Value = fmt.Sprintf(specialAnchor, r.Any[0].XMLName.Local)
+ r.Any = nil
+ } else if len(r.Any) != 0 {
+ return "", fmt.Errorf("cldr: XML elements found in collation rule: %v", r.Any)
+ }
+ return r.Value, nil
+}
+
+func (r rule) process(p RuleProcessor, name, context, extend string) error {
+ v, err := r.value()
+ if err != nil {
+ return err
+ }
+ switch name {
+ case "p", "s", "t", "i":
+ if strings.HasPrefix(v, cldrIndex) {
+ p.Index(v[len(cldrIndex):])
+ return nil
+ }
+ if err := p.Insert(lmap[name[0]], v, context, extend); err != nil {
+ return err
+ }
+ case "pc", "sc", "tc", "ic":
+ level := lmap[name[0]]
+ for _, s := range v {
+ if err := p.Insert(level, string(s), context, extend); err != nil {
+ return err
+ }
+ }
+ default:
+ return fmt.Errorf("cldr: unsupported tag: %q", name)
+ }
+ return nil
+}
+
+// processXML parses the format of CLDR versions 24 and older.
+func (c Collation) processXML(p RuleProcessor) (err error) {
+ // Collation is generated and defined in xml.go.
+ var v string
+ for _, r := range c.Rules.Any {
+ switch r.XMLName.Local {
+ case "reset":
+ level := 0
+ switch r.Before {
+ case "primary", "1":
+ level = 1
+ case "secondary", "2":
+ level = 2
+ case "tertiary", "3":
+ level = 3
+ case "":
+ default:
+ return fmt.Errorf("cldr: unknown level %q", r.Before)
+ }
+ v, err = r.value()
+ if err == nil {
+ err = p.Reset(v, level)
+ }
+ case "x":
+ var context, extend string
+ for _, r1 := range r.Any {
+ v, err = r1.value()
+ switch r1.XMLName.Local {
+ case "context":
+ context = v
+ case "extend":
+ extend = v
+ }
+ }
+ for _, r1 := range r.Any {
+ if t := r1.XMLName.Local; t == "context" || t == "extend" {
+ continue
+ }
+ r1.rule.process(p, r1.XMLName.Local, context, extend)
+ }
+ default:
+ err = r.rule.process(p, r.XMLName.Local, "", "")
+ }
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/decode.go b/vendor/golang.org/x/text/unicode/cldr/decode.go
new file mode 100644
index 000000000..e5ee4aed1
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/decode.go
@@ -0,0 +1,171 @@
+// 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 cldr
+
+import (
+ "archive/zip"
+ "bytes"
+ "encoding/xml"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "path/filepath"
+ "regexp"
+)
+
+// A Decoder loads an archive of CLDR data.
+type Decoder struct {
+ dirFilter []string
+ sectionFilter []string
+ loader Loader
+ cldr *CLDR
+ curLocale string
+}
+
+// SetSectionFilter takes a list top-level LDML element names to which
+// evaluation of LDML should be limited. It automatically calls SetDirFilter.
+func (d *Decoder) SetSectionFilter(filter ...string) {
+ d.sectionFilter = filter
+ // TODO: automatically set dir filter
+}
+
+// SetDirFilter limits the loading of LDML XML files of the specied directories.
+// Note that sections may be split across directories differently for different CLDR versions.
+// For more robust code, use SetSectionFilter.
+func (d *Decoder) SetDirFilter(dir ...string) {
+ d.dirFilter = dir
+}
+
+// A Loader provides access to the files of a CLDR archive.
+type Loader interface {
+ Len() int
+ Path(i int) string
+ Reader(i int) (io.ReadCloser, error)
+}
+
+var fileRe = regexp.MustCompile(".*/(.*)/(.*)\\.xml")
+
+// Decode loads and decodes the files represented by l.
+func (d *Decoder) Decode(l Loader) (cldr *CLDR, err error) {
+ d.cldr = makeCLDR()
+ for i := 0; i < l.Len(); i++ {
+ fname := l.Path(i)
+ if m := fileRe.FindStringSubmatch(fname); m != nil {
+ if len(d.dirFilter) > 0 && !in(d.dirFilter, m[1]) {
+ continue
+ }
+ var r io.Reader
+ if r, err = l.Reader(i); err == nil {
+ err = d.decode(m[1], m[2], r)
+ }
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+ d.cldr.finalize(d.sectionFilter)
+ return d.cldr, nil
+}
+
+func (d *Decoder) decode(dir, id string, r io.Reader) error {
+ var v interface{}
+ var l *LDML
+ cldr := d.cldr
+ switch {
+ case dir == "supplemental":
+ v = cldr.supp
+ case dir == "transforms":
+ return nil
+ case dir == "bcp47":
+ v = cldr.bcp47
+ case dir == "validity":
+ return nil
+ default:
+ ok := false
+ if v, ok = cldr.locale[id]; !ok {
+ l = &LDML{}
+ v, cldr.locale[id] = l, l
+ }
+ }
+ x := xml.NewDecoder(r)
+ if err := x.Decode(v); err != nil {
+ log.Printf("%s/%s: %v", dir, id, err)
+ return err
+ }
+ if l != nil {
+ if l.Identity == nil {
+ return fmt.Errorf("%s/%s: missing identity element", dir, id)
+ }
+ // TODO: verify when CLDR bug http://unicode.org/cldr/trac/ticket/8970
+ // is resolved.
+ // path := strings.Split(id, "_")
+ // if lang := l.Identity.Language.Type; lang != path[0] {
+ // return fmt.Errorf("%s/%s: language was %s; want %s", dir, id, lang, path[0])
+ // }
+ }
+ return nil
+}
+
+type pathLoader []string
+
+func makePathLoader(path string) (pl pathLoader, err error) {
+ err = filepath.Walk(path, func(path string, _ os.FileInfo, err error) error {
+ pl = append(pl, path)
+ return err
+ })
+ return pl, err
+}
+
+func (pl pathLoader) Len() int {
+ return len(pl)
+}
+
+func (pl pathLoader) Path(i int) string {
+ return pl[i]
+}
+
+func (pl pathLoader) Reader(i int) (io.ReadCloser, error) {
+ return os.Open(pl[i])
+}
+
+// DecodePath loads CLDR data from the given path.
+func (d *Decoder) DecodePath(path string) (cldr *CLDR, err error) {
+ loader, err := makePathLoader(path)
+ if err != nil {
+ return nil, err
+ }
+ return d.Decode(loader)
+}
+
+type zipLoader struct {
+ r *zip.Reader
+}
+
+func (zl zipLoader) Len() int {
+ return len(zl.r.File)
+}
+
+func (zl zipLoader) Path(i int) string {
+ return zl.r.File[i].Name
+}
+
+func (zl zipLoader) Reader(i int) (io.ReadCloser, error) {
+ return zl.r.File[i].Open()
+}
+
+// DecodeZip loads CLDR data from the zip archive for which r is the source.
+func (d *Decoder) DecodeZip(r io.Reader) (cldr *CLDR, err error) {
+ buffer, err := ioutil.ReadAll(r)
+ if err != nil {
+ return nil, err
+ }
+ archive, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
+ if err != nil {
+ return nil, err
+ }
+ return d.Decode(zipLoader{archive})
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/makexml.go b/vendor/golang.org/x/text/unicode/cldr/makexml.go
new file mode 100644
index 000000000..6114d01cb
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/makexml.go
@@ -0,0 +1,400 @@
+// 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 ignore
+
+// This tool generates types for the various XML formats of CLDR.
+package main
+
+import (
+ "archive/zip"
+ "bytes"
+ "encoding/xml"
+ "flag"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "regexp"
+ "strings"
+
+ "golang.org/x/text/internal/gen"
+)
+
+var outputFile = flag.String("output", "xml.go", "output file name")
+
+func main() {
+ flag.Parse()
+
+ r := gen.OpenCLDRCoreZip()
+ buffer, err := ioutil.ReadAll(r)
+ if err != nil {
+ log.Fatal("Could not read zip file")
+ }
+ r.Close()
+ z, err := zip.NewReader(bytes.NewReader(buffer), int64(len(buffer)))
+ if err != nil {
+ log.Fatalf("Could not read zip archive: %v", err)
+ }
+
+ var buf bytes.Buffer
+
+ version := gen.CLDRVersion()
+
+ for _, dtd := range files {
+ for _, f := range z.File {
+ if strings.HasSuffix(f.Name, dtd.file+".dtd") {
+ r, err := f.Open()
+ failOnError(err)
+
+ b := makeBuilder(&buf, dtd)
+ b.parseDTD(r)
+ b.resolve(b.index[dtd.top[0]])
+ b.write()
+ if b.version != "" && version != b.version {
+ println(f.Name)
+ log.Fatalf("main: inconsistent versions: found %s; want %s", b.version, version)
+ }
+ break
+ }
+ }
+ }
+ fmt.Fprintln(&buf, "// Version is the version of CLDR from which the XML definitions are generated.")
+ fmt.Fprintf(&buf, "const Version = %q\n", version)
+
+ gen.WriteGoFile(*outputFile, "cldr", buf.Bytes())
+}
+
+func failOnError(err error) {
+ if err != nil {
+ log.New(os.Stderr, "", log.Lshortfile).Output(2, err.Error())
+ os.Exit(1)
+ }
+}
+
+// configuration data per DTD type
+type dtd struct {
+ file string // base file name
+ root string // Go name of the root XML element
+ top []string // create a different type for this section
+
+ skipElem []string // hard-coded or deprecated elements
+ skipAttr []string // attributes to exclude
+ predefined []string // hard-coded elements exist of the form <name>Elem
+ forceRepeat []string // elements to make slices despite DTD
+}
+
+var files = []dtd{
+ {
+ file: "ldmlBCP47",
+ root: "LDMLBCP47",
+ top: []string{"ldmlBCP47"},
+ skipElem: []string{
+ "cldrVersion", // deprecated, not used
+ },
+ },
+ {
+ file: "ldmlSupplemental",
+ root: "SupplementalData",
+ top: []string{"supplementalData"},
+ skipElem: []string{
+ "cldrVersion", // deprecated, not used
+ },
+ forceRepeat: []string{
+ "plurals", // data defined in plurals.xml and ordinals.xml
+ },
+ },
+ {
+ file: "ldml",
+ root: "LDML",
+ top: []string{
+ "ldml", "collation", "calendar", "timeZoneNames", "localeDisplayNames", "numbers",
+ },
+ skipElem: []string{
+ "cp", // not used anywhere
+ "special", // not used anywhere
+ "fallback", // deprecated, not used
+ "alias", // in Common
+ "default", // in Common
+ },
+ skipAttr: []string{
+ "hiraganaQuarternary", // typo in DTD, correct version included as well
+ },
+ predefined: []string{"rules"},
+ },
+}
+
+var comments = map[string]string{
+ "ldmlBCP47": `
+// LDMLBCP47 holds information on allowable values for various variables in LDML.
+`,
+ "supplementalData": `
+// SupplementalData holds information relevant for internationalization
+// and proper use of CLDR, but that is not contained in the locale hierarchy.
+`,
+ "ldml": `
+// LDML is the top-level type for locale-specific data.
+`,
+ "collation": `
+// Collation contains rules that specify a certain sort-order,
+// as a tailoring of the root order.
+// The parsed rules are obtained by passing a RuleProcessor to Collation's
+// Process method.
+`,
+ "calendar": `
+// Calendar specifies the fields used for formatting and parsing dates and times.
+// The month and quarter names are identified numerically, starting at 1.
+// The day (of the week) names are identified with short strings, since there is
+// no universally-accepted numeric designation.
+`,
+ "dates": `
+// Dates contains information regarding the format and parsing of dates and times.
+`,
+ "localeDisplayNames": `
+// LocaleDisplayNames specifies localized display names for for scripts, languages,
+// countries, currencies, and variants.
+`,
+ "numbers": `
+// Numbers supplies information for formatting and parsing numbers and currencies.
+`,
+}
+
+type element struct {
+ name string // XML element name
+ category string // elements contained by this element
+ signature string // category + attrKey*
+
+ attr []*attribute // attributes supported by this element.
+ sub []struct { // parsed and evaluated sub elements of this element.
+ e *element
+ repeat bool // true if the element needs to be a slice
+ }
+
+ resolved bool // prevent multiple resolutions of this element.
+}
+
+type attribute struct {
+ name string
+ key string
+ list []string
+
+ tag string // Go tag
+}
+
+var (
+ reHead = regexp.MustCompile(` *(\w+) +([\w\-]+)`)
+ reAttr = regexp.MustCompile(` *(\w+) *(?:(\w+)|\(([\w\- \|]+)\)) *(?:#([A-Z]*) *(?:\"([\.\d+])\")?)? *("[\w\-:]*")?`)
+ reElem = regexp.MustCompile(`^ *(EMPTY|ANY|\(.*\)[\*\+\?]?) *$`)
+ reToken = regexp.MustCompile(`\w\-`)
+)
+
+// builder is used to read in the DTD files from CLDR and generate Go code
+// to be used with the encoding/xml package.
+type builder struct {
+ w io.Writer
+ index map[string]*element
+ elem []*element
+ info dtd
+ version string
+}
+
+func makeBuilder(w io.Writer, d dtd) builder {
+ return builder{
+ w: w,
+ index: make(map[string]*element),
+ elem: []*element{},
+ info: d,
+ }
+}
+
+// parseDTD parses a DTD file.
+func (b *builder) parseDTD(r io.Reader) {
+ for d := xml.NewDecoder(r); ; {
+ t, err := d.Token()
+ if t == nil {
+ break
+ }
+ failOnError(err)
+ dir, ok := t.(xml.Directive)
+ if !ok {
+ continue
+ }
+ m := reHead.FindSubmatch(dir)
+ dir = dir[len(m[0]):]
+ ename := string(m[2])
+ el, elementFound := b.index[ename]
+ switch string(m[1]) {
+ case "ELEMENT":
+ if elementFound {
+ log.Fatal("parseDTD: duplicate entry for element %q", ename)
+ }
+ m := reElem.FindSubmatch(dir)
+ if m == nil {
+ log.Fatalf("parseDTD: invalid element %q", string(dir))
+ }
+ if len(m[0]) != len(dir) {
+ log.Fatal("parseDTD: invalid element %q", string(dir), len(dir), len(m[0]), string(m[0]))
+ }
+ s := string(m[1])
+ el = &element{
+ name: ename,
+ category: s,
+ }
+ b.index[ename] = el
+ case "ATTLIST":
+ if !elementFound {
+ log.Fatalf("parseDTD: unknown element %q", ename)
+ }
+ s := string(dir)
+ m := reAttr.FindStringSubmatch(s)
+ if m == nil {
+ log.Fatal(fmt.Errorf("parseDTD: invalid attribute %q", string(dir)))
+ }
+ if m[4] == "FIXED" {
+ b.version = m[5]
+ } else {
+ switch m[1] {
+ case "draft", "references", "alt", "validSubLocales", "standard" /* in Common */ :
+ case "type", "choice":
+ default:
+ el.attr = append(el.attr, &attribute{
+ name: m[1],
+ key: s,
+ list: reToken.FindAllString(m[3], -1),
+ })
+ el.signature = fmt.Sprintf("%s=%s+%s", el.signature, m[1], m[2])
+ }
+ }
+ }
+ }
+}
+
+var reCat = regexp.MustCompile(`[ ,\|]*(?:(\(|\)|\#?[\w_-]+)([\*\+\?]?))?`)
+
+// resolve takes a parsed element and converts it into structured data
+// that can be used to generate the XML code.
+func (b *builder) resolve(e *element) {
+ if e.resolved {
+ return
+ }
+ b.elem = append(b.elem, e)
+ e.resolved = true
+ s := e.category
+ found := make(map[string]bool)
+ sequenceStart := []int{}
+ for len(s) > 0 {
+ m := reCat.FindStringSubmatch(s)
+ if m == nil {
+ log.Fatalf("%s: invalid category string %q", e.name, s)
+ }
+ repeat := m[2] == "*" || m[2] == "+" || in(b.info.forceRepeat, m[1])
+ switch m[1] {
+ case "":
+ case "(":
+ sequenceStart = append(sequenceStart, len(e.sub))
+ case ")":
+ if len(sequenceStart) == 0 {
+ log.Fatalf("%s: unmatched closing parenthesis", e.name)
+ }
+ for i := sequenceStart[len(sequenceStart)-1]; i < len(e.sub); i++ {
+ e.sub[i].repeat = e.sub[i].repeat || repeat
+ }
+ sequenceStart = sequenceStart[:len(sequenceStart)-1]
+ default:
+ if in(b.info.skipElem, m[1]) {
+ } else if sub, ok := b.index[m[1]]; ok {
+ if !found[sub.name] {
+ e.sub = append(e.sub, struct {
+ e *element
+ repeat bool
+ }{sub, repeat})
+ found[sub.name] = true
+ b.resolve(sub)
+ }
+ } else if m[1] == "#PCDATA" || m[1] == "ANY" {
+ } else if m[1] != "EMPTY" {
+ log.Fatalf("resolve:%s: element %q not found", e.name, m[1])
+ }
+ }
+ s = s[len(m[0]):]
+ }
+}
+
+// return true if s is contained in set.
+func in(set []string, s string) bool {
+ for _, v := range set {
+ if v == s {
+ return true
+ }
+ }
+ return false
+}
+
+var repl = strings.NewReplacer("-", " ", "_", " ")
+
+// title puts the first character or each character following '_' in title case and
+// removes all occurrences of '_'.
+func title(s string) string {
+ return strings.Replace(strings.Title(repl.Replace(s)), " ", "", -1)
+}
+
+// writeElem generates Go code for a single element, recursively.
+func (b *builder) writeElem(tab int, e *element) {
+ p := func(f string, x ...interface{}) {
+ f = strings.Replace(f, "\n", "\n"+strings.Repeat("\t", tab), -1)
+ fmt.Fprintf(b.w, f, x...)
+ }
+ if len(e.sub) == 0 && len(e.attr) == 0 {
+ p("Common")
+ return
+ }
+ p("struct {")
+ tab++
+ p("\nCommon")
+ for _, attr := range e.attr {
+ if !in(b.info.skipAttr, attr.name) {
+ p("\n%s string `xml:\"%s,attr\"`", title(attr.name), attr.name)
+ }
+ }
+ for _, sub := range e.sub {
+ if in(b.info.predefined, sub.e.name) {
+ p("\n%sElem", sub.e.name)
+ continue
+ }
+ if in(b.info.skipElem, sub.e.name) {
+ continue
+ }
+ p("\n%s ", title(sub.e.name))
+ if sub.repeat {
+ p("[]")
+ }
+ p("*")
+ if in(b.info.top, sub.e.name) {
+ p(title(sub.e.name))
+ } else {
+ b.writeElem(tab, sub.e)
+ }
+ p(" `xml:\"%s\"`", sub.e.name)
+ }
+ tab--
+ p("\n}")
+}
+
+// write generates the Go XML code.
+func (b *builder) write() {
+ for i, name := range b.info.top {
+ e := b.index[name]
+ if e != nil {
+ fmt.Fprintf(b.w, comments[name])
+ name := title(e.name)
+ if i == 0 {
+ name = b.info.root
+ }
+ fmt.Fprintf(b.w, "type %s ", name)
+ b.writeElem(0, e)
+ fmt.Fprint(b.w, "\n")
+ }
+ }
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/resolve.go b/vendor/golang.org/x/text/unicode/cldr/resolve.go
new file mode 100644
index 000000000..691b5903f
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/resolve.go
@@ -0,0 +1,602 @@
+// 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 cldr
+
+// This file implements the various inheritance constructs defined by LDML.
+// See http://www.unicode.org/reports/tr35/#Inheritance_and_Validity
+// for more details.
+
+import (
+ "fmt"
+ "log"
+ "reflect"
+ "regexp"
+ "sort"
+ "strings"
+)
+
+// fieldIter iterates over fields in a struct. It includes
+// fields of embedded structs.
+type fieldIter struct {
+ v reflect.Value
+ index, n []int
+}
+
+func iter(v reflect.Value) fieldIter {
+ if v.Kind() != reflect.Struct {
+ log.Panicf("value %v must be a struct", v)
+ }
+ i := fieldIter{
+ v: v,
+ index: []int{0},
+ n: []int{v.NumField()},
+ }
+ i.descent()
+ return i
+}
+
+func (i *fieldIter) descent() {
+ for f := i.field(); f.Anonymous && f.Type.NumField() > 0; f = i.field() {
+ i.index = append(i.index, 0)
+ i.n = append(i.n, f.Type.NumField())
+ }
+}
+
+func (i *fieldIter) done() bool {
+ return len(i.index) == 1 && i.index[0] >= i.n[0]
+}
+
+func skip(f reflect.StructField) bool {
+ return !f.Anonymous && (f.Name[0] < 'A' || f.Name[0] > 'Z')
+}
+
+func (i *fieldIter) next() {
+ for {
+ k := len(i.index) - 1
+ i.index[k]++
+ if i.index[k] < i.n[k] {
+ if !skip(i.field()) {
+ break
+ }
+ } else {
+ if k == 0 {
+ return
+ }
+ i.index = i.index[:k]
+ i.n = i.n[:k]
+ }
+ }
+ i.descent()
+}
+
+func (i *fieldIter) value() reflect.Value {
+ return i.v.FieldByIndex(i.index)
+}
+
+func (i *fieldIter) field() reflect.StructField {
+ return i.v.Type().FieldByIndex(i.index)
+}
+
+type visitor func(v reflect.Value) error
+
+var stopDescent = fmt.Errorf("do not recurse")
+
+func (f visitor) visit(x interface{}) error {
+ return f.visitRec(reflect.ValueOf(x))
+}
+
+// visit recursively calls f on all nodes in v.
+func (f visitor) visitRec(v reflect.Value) error {
+ if v.Kind() == reflect.Ptr {
+ if v.IsNil() {
+ return nil
+ }
+ return f.visitRec(v.Elem())
+ }
+ if err := f(v); err != nil {
+ if err == stopDescent {
+ return nil
+ }
+ return err
+ }
+ switch v.Kind() {
+ case reflect.Struct:
+ for i := iter(v); !i.done(); i.next() {
+ if err := f.visitRec(i.value()); err != nil {
+ return err
+ }
+ }
+ case reflect.Slice:
+ for i := 0; i < v.Len(); i++ {
+ if err := f.visitRec(v.Index(i)); err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+// getPath is used for error reporting purposes only.
+func getPath(e Elem) string {
+ if e == nil {
+ return "<nil>"
+ }
+ if e.enclosing() == nil {
+ return e.GetCommon().name
+ }
+ if e.GetCommon().Type == "" {
+ return fmt.Sprintf("%s.%s", getPath(e.enclosing()), e.GetCommon().name)
+ }
+ return fmt.Sprintf("%s.%s[type=%s]", getPath(e.enclosing()), e.GetCommon().name, e.GetCommon().Type)
+}
+
+// xmlName returns the xml name of the element or attribute
+func xmlName(f reflect.StructField) (name string, attr bool) {
+ tags := strings.Split(f.Tag.Get("xml"), ",")
+ for _, s := range tags {
+ attr = attr || s == "attr"
+ }
+ return tags[0], attr
+}
+
+func findField(v reflect.Value, key string) (reflect.Value, error) {
+ v = reflect.Indirect(v)
+ for i := iter(v); !i.done(); i.next() {
+ if n, _ := xmlName(i.field()); n == key {
+ return i.value(), nil
+ }
+ }
+ return reflect.Value{}, fmt.Errorf("cldr: no field %q in element %#v", key, v.Interface())
+}
+
+var xpathPart = regexp.MustCompile(`(\pL+)(?:\[@(\pL+)='([\w-]+)'\])?`)
+
+func walkXPath(e Elem, path string) (res Elem, err error) {
+ for _, c := range strings.Split(path, "/") {
+ if c == ".." {
+ if e = e.enclosing(); e == nil {
+ panic("path ..")
+ return nil, fmt.Errorf(`cldr: ".." moves past root in path %q`, path)
+ }
+ continue
+ } else if c == "" {
+ continue
+ }
+ m := xpathPart.FindStringSubmatch(c)
+ if len(m) == 0 || len(m[0]) != len(c) {
+ return nil, fmt.Errorf("cldr: syntax error in path component %q", c)
+ }
+ v, err := findField(reflect.ValueOf(e), m[1])
+ if err != nil {
+ return nil, err
+ }
+ switch v.Kind() {
+ case reflect.Slice:
+ i := 0
+ if m[2] != "" || v.Len() > 1 {
+ if m[2] == "" {
+ m[2] = "type"
+ if m[3] = e.GetCommon().Default(); m[3] == "" {
+ return nil, fmt.Errorf("cldr: type selector or default value needed for element %s", m[1])
+ }
+ }
+ for ; i < v.Len(); i++ {
+ vi := v.Index(i)
+ key, err := findField(vi.Elem(), m[2])
+ if err != nil {
+ return nil, err
+ }
+ key = reflect.Indirect(key)
+ if key.Kind() == reflect.String && key.String() == m[3] {
+ break
+ }
+ }
+ }
+ if i == v.Len() || v.Index(i).IsNil() {
+ return nil, fmt.Errorf("no %s found with %s==%s", m[1], m[2], m[3])
+ }
+ e = v.Index(i).Interface().(Elem)
+ case reflect.Ptr:
+ if v.IsNil() {
+ return nil, fmt.Errorf("cldr: element %q not found within element %q", m[1], e.GetCommon().name)
+ }
+ var ok bool
+ if e, ok = v.Interface().(Elem); !ok {
+ return nil, fmt.Errorf("cldr: %q is not an XML element", m[1])
+ } else if m[2] != "" || m[3] != "" {
+ return nil, fmt.Errorf("cldr: no type selector allowed for element %s", m[1])
+ }
+ default:
+ return nil, fmt.Errorf("cldr: %q is not an XML element", m[1])
+ }
+ }
+ return e, nil
+}
+
+const absPrefix = "//ldml/"
+
+func (cldr *CLDR) resolveAlias(e Elem, src, path string) (res Elem, err error) {
+ if src != "locale" {
+ if !strings.HasPrefix(path, absPrefix) {
+ return nil, fmt.Errorf("cldr: expected absolute path, found %q", path)
+ }
+ path = path[len(absPrefix):]
+ if e, err = cldr.resolve(src); err != nil {
+ return nil, err
+ }
+ }
+ return walkXPath(e, path)
+}
+
+func (cldr *CLDR) resolveAndMergeAlias(e Elem) error {
+ alias := e.GetCommon().Alias
+ if alias == nil {
+ return nil
+ }
+ a, err := cldr.resolveAlias(e, alias.Source, alias.Path)
+ if err != nil {
+ return fmt.Errorf("%v: error evaluating path %q: %v", getPath(e), alias.Path, err)
+ }
+ // Ensure alias node was already evaluated. TODO: avoid double evaluation.
+ err = cldr.resolveAndMergeAlias(a)
+ v := reflect.ValueOf(e).Elem()
+ for i := iter(reflect.ValueOf(a).Elem()); !i.done(); i.next() {
+ if vv := i.value(); vv.Kind() != reflect.Ptr || !vv.IsNil() {
+ if _, attr := xmlName(i.field()); !attr {
+ v.FieldByIndex(i.index).Set(vv)
+ }
+ }
+ }
+ return err
+}
+
+func (cldr *CLDR) aliasResolver() visitor {
+ return func(v reflect.Value) (err error) {
+ if e, ok := v.Addr().Interface().(Elem); ok {
+ err = cldr.resolveAndMergeAlias(e)
+ if err == nil && blocking[e.GetCommon().name] {
+ return stopDescent
+ }
+ }
+ return err
+ }
+}
+
+// elements within blocking elements do not inherit.
+// Taken from CLDR's supplementalMetaData.xml.
+var blocking = map[string]bool{
+ "identity": true,
+ "supplementalData": true,
+ "cldrTest": true,
+ "collation": true,
+ "transform": true,
+}
+
+// Distinguishing attributes affect inheritance; two elements with different
+// distinguishing attributes are treated as different for purposes of inheritance,
+// except when such attributes occur in the indicated elements.
+// Taken from CLDR's supplementalMetaData.xml.
+var distinguishing = map[string][]string{
+ "key": nil,
+ "request_id": nil,
+ "id": nil,
+ "registry": nil,
+ "alt": nil,
+ "iso4217": nil,
+ "iso3166": nil,
+ "mzone": nil,
+ "from": nil,
+ "to": nil,
+ "type": []string{
+ "abbreviationFallback",
+ "default",
+ "mapping",
+ "measurementSystem",
+ "preferenceOrdering",
+ },
+ "numberSystem": nil,
+}
+
+func in(set []string, s string) bool {
+ for _, v := range set {
+ if v == s {
+ return true
+ }
+ }
+ return false
+}
+
+// attrKey computes a key based on the distinguishable attributes of
+// an element and it's values.
+func attrKey(v reflect.Value, exclude ...string) string {
+ parts := []string{}
+ ename := v.Interface().(Elem).GetCommon().name
+ v = v.Elem()
+ for i := iter(v); !i.done(); i.next() {
+ if name, attr := xmlName(i.field()); attr {
+ if except, ok := distinguishing[name]; ok && !in(exclude, name) && !in(except, ename) {
+ v := i.value()
+ if v.Kind() == reflect.Ptr {
+ v = v.Elem()
+ }
+ if v.IsValid() {
+ parts = append(parts, fmt.Sprintf("%s=%s", name, v.String()))
+ }
+ }
+ }
+ }
+ sort.Strings(parts)
+ return strings.Join(parts, ";")
+}
+
+// Key returns a key for e derived from all distinguishing attributes
+// except those specified by exclude.
+func Key(e Elem, exclude ...string) string {
+ return attrKey(reflect.ValueOf(e), exclude...)
+}
+
+// linkEnclosing sets the enclosing element as well as the name
+// for all sub-elements of child, recursively.
+func linkEnclosing(parent, child Elem) {
+ child.setEnclosing(parent)
+ v := reflect.ValueOf(child).Elem()
+ for i := iter(v); !i.done(); i.next() {
+ vf := i.value()
+ if vf.Kind() == reflect.Slice {
+ for j := 0; j < vf.Len(); j++ {
+ linkEnclosing(child, vf.Index(j).Interface().(Elem))
+ }
+ } else if vf.Kind() == reflect.Ptr && !vf.IsNil() && vf.Elem().Kind() == reflect.Struct {
+ linkEnclosing(child, vf.Interface().(Elem))
+ }
+ }
+}
+
+func setNames(e Elem, name string) {
+ e.setName(name)
+ v := reflect.ValueOf(e).Elem()
+ for i := iter(v); !i.done(); i.next() {
+ vf := i.value()
+ name, _ = xmlName(i.field())
+ if vf.Kind() == reflect.Slice {
+ for j := 0; j < vf.Len(); j++ {
+ setNames(vf.Index(j).Interface().(Elem), name)
+ }
+ } else if vf.Kind() == reflect.Ptr && !vf.IsNil() && vf.Elem().Kind() == reflect.Struct {
+ setNames(vf.Interface().(Elem), name)
+ }
+ }
+}
+
+// deepCopy copies elements of v recursively. All elements of v that may
+// be modified by inheritance are explicitly copied.
+func deepCopy(v reflect.Value) reflect.Value {
+ switch v.Kind() {
+ case reflect.Ptr:
+ if v.IsNil() || v.Elem().Kind() != reflect.Struct {
+ return v
+ }
+ nv := reflect.New(v.Elem().Type())
+ nv.Elem().Set(v.Elem())
+ deepCopyRec(nv.Elem(), v.Elem())
+ return nv
+ case reflect.Slice:
+ nv := reflect.MakeSlice(v.Type(), v.Len(), v.Len())
+ for i := 0; i < v.Len(); i++ {
+ deepCopyRec(nv.Index(i), v.Index(i))
+ }
+ return nv
+ }
+ panic("deepCopy: must be called with pointer or slice")
+}
+
+// deepCopyRec is only called by deepCopy.
+func deepCopyRec(nv, v reflect.Value) {
+ if v.Kind() == reflect.Struct {
+ t := v.Type()
+ for i := 0; i < v.NumField(); i++ {
+ if name, attr := xmlName(t.Field(i)); name != "" && !attr {
+ deepCopyRec(nv.Field(i), v.Field(i))
+ }
+ }
+ } else {
+ nv.Set(deepCopy(v))
+ }
+}
+
+// newNode is used to insert a missing node during inheritance.
+func (cldr *CLDR) newNode(v, enc reflect.Value) reflect.Value {
+ n := reflect.New(v.Type())
+ for i := iter(v); !i.done(); i.next() {
+ if name, attr := xmlName(i.field()); name == "" || attr {
+ n.Elem().FieldByIndex(i.index).Set(i.value())
+ }
+ }
+ n.Interface().(Elem).GetCommon().setEnclosing(enc.Addr().Interface().(Elem))
+ return n
+}
+
+// v, parent must be pointers to struct
+func (cldr *CLDR) inheritFields(v, parent reflect.Value) (res reflect.Value, err error) {
+ t := v.Type()
+ nv := reflect.New(t)
+ nv.Elem().Set(v)
+ for i := iter(v); !i.done(); i.next() {
+ vf := i.value()
+ f := i.field()
+ name, attr := xmlName(f)
+ if name == "" || attr {
+ continue
+ }
+ pf := parent.FieldByIndex(i.index)
+ if blocking[name] {
+ if vf.IsNil() {
+ vf = pf
+ }
+ nv.Elem().FieldByIndex(i.index).Set(deepCopy(vf))
+ continue
+ }
+ switch f.Type.Kind() {
+ case reflect.Ptr:
+ if f.Type.Elem().Kind() == reflect.Struct {
+ if !vf.IsNil() {
+ if vf, err = cldr.inheritStructPtr(vf, pf); err != nil {
+ return reflect.Value{}, err
+ }
+ vf.Interface().(Elem).setEnclosing(nv.Interface().(Elem))
+ nv.Elem().FieldByIndex(i.index).Set(vf)
+ } else if !pf.IsNil() {
+ n := cldr.newNode(pf.Elem(), v)
+ if vf, err = cldr.inheritStructPtr(n, pf); err != nil {
+ return reflect.Value{}, err
+ }
+ vf.Interface().(Elem).setEnclosing(nv.Interface().(Elem))
+ nv.Elem().FieldByIndex(i.index).Set(vf)
+ }
+ }
+ case reflect.Slice:
+ vf, err := cldr.inheritSlice(nv.Elem(), vf, pf)
+ if err != nil {
+ return reflect.Zero(t), err
+ }
+ nv.Elem().FieldByIndex(i.index).Set(vf)
+ }
+ }
+ return nv, nil
+}
+
+func root(e Elem) *LDML {
+ for ; e.enclosing() != nil; e = e.enclosing() {
+ }
+ return e.(*LDML)
+}
+
+// inheritStructPtr first merges possible aliases in with v and then inherits
+// any underspecified elements from parent.
+func (cldr *CLDR) inheritStructPtr(v, parent reflect.Value) (r reflect.Value, err error) {
+ if !v.IsNil() {
+ e := v.Interface().(Elem).GetCommon()
+ alias := e.Alias
+ if alias == nil && !parent.IsNil() {
+ alias = parent.Interface().(Elem).GetCommon().Alias
+ }
+ if alias != nil {
+ a, err := cldr.resolveAlias(v.Interface().(Elem), alias.Source, alias.Path)
+ if a != nil {
+ if v, err = cldr.inheritFields(v.Elem(), reflect.ValueOf(a).Elem()); err != nil {
+ return reflect.Value{}, err
+ }
+ }
+ }
+ if !parent.IsNil() {
+ return cldr.inheritFields(v.Elem(), parent.Elem())
+ }
+ } else if parent.IsNil() {
+ panic("should not reach here")
+ }
+ return v, nil
+}
+
+// Must be slice of struct pointers.
+func (cldr *CLDR) inheritSlice(enc, v, parent reflect.Value) (res reflect.Value, err error) {
+ t := v.Type()
+ index := make(map[string]reflect.Value)
+ if !v.IsNil() {
+ for i := 0; i < v.Len(); i++ {
+ vi := v.Index(i)
+ key := attrKey(vi)
+ index[key] = vi
+ }
+ }
+ if !parent.IsNil() {
+ for i := 0; i < parent.Len(); i++ {
+ vi := parent.Index(i)
+ key := attrKey(vi)
+ if w, ok := index[key]; ok {
+ index[key], err = cldr.inheritStructPtr(w, vi)
+ } else {
+ n := cldr.newNode(vi.Elem(), enc)
+ index[key], err = cldr.inheritStructPtr(n, vi)
+ }
+ index[key].Interface().(Elem).setEnclosing(enc.Addr().Interface().(Elem))
+ if err != nil {
+ return v, err
+ }
+ }
+ }
+ keys := make([]string, 0, len(index))
+ for k, _ := range index {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ sl := reflect.MakeSlice(t, len(index), len(index))
+ for i, k := range keys {
+ sl.Index(i).Set(index[k])
+ }
+ return sl, nil
+}
+
+func parentLocale(loc string) string {
+ parts := strings.Split(loc, "_")
+ if len(parts) == 1 {
+ return "root"
+ }
+ parts = parts[:len(parts)-1]
+ key := strings.Join(parts, "_")
+ return key
+}
+
+func (cldr *CLDR) resolve(loc string) (res *LDML, err error) {
+ if r := cldr.resolved[loc]; r != nil {
+ return r, nil
+ }
+ x := cldr.RawLDML(loc)
+ if x == nil {
+ return nil, fmt.Errorf("cldr: unknown locale %q", loc)
+ }
+ var v reflect.Value
+ if loc == "root" {
+ x = deepCopy(reflect.ValueOf(x)).Interface().(*LDML)
+ linkEnclosing(nil, x)
+ err = cldr.aliasResolver().visit(x)
+ } else {
+ key := parentLocale(loc)
+ var parent *LDML
+ for ; cldr.locale[key] == nil; key = parentLocale(key) {
+ }
+ if parent, err = cldr.resolve(key); err != nil {
+ return nil, err
+ }
+ v, err = cldr.inheritFields(reflect.ValueOf(x).Elem(), reflect.ValueOf(parent).Elem())
+ x = v.Interface().(*LDML)
+ linkEnclosing(nil, x)
+ }
+ if err != nil {
+ return nil, err
+ }
+ cldr.resolved[loc] = x
+ return x, err
+}
+
+// finalize finalizes the initialization of the raw LDML structs. It also
+// removed unwanted fields, as specified by filter, so that they will not
+// be unnecessarily evaluated.
+func (cldr *CLDR) finalize(filter []string) {
+ for _, x := range cldr.locale {
+ if filter != nil {
+ v := reflect.ValueOf(x).Elem()
+ t := v.Type()
+ for i := 0; i < v.NumField(); i++ {
+ f := t.Field(i)
+ name, _ := xmlName(f)
+ if name != "" && name != "identity" && !in(filter, name) {
+ v.Field(i).Set(reflect.Zero(f.Type))
+ }
+ }
+ }
+ linkEnclosing(nil, x) // for resolving aliases and paths
+ setNames(x, "ldml")
+ }
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/slice.go b/vendor/golang.org/x/text/unicode/cldr/slice.go
new file mode 100644
index 000000000..388c983ff
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/slice.go
@@ -0,0 +1,144 @@
+// 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 cldr
+
+import (
+ "fmt"
+ "reflect"
+ "sort"
+)
+
+// Slice provides utilities for modifying slices of elements.
+// It can be wrapped around any slice of which the element type implements
+// interface Elem.
+type Slice struct {
+ ptr reflect.Value
+ typ reflect.Type
+}
+
+// Value returns the reflect.Value of the underlying slice.
+func (s *Slice) Value() reflect.Value {
+ return s.ptr.Elem()
+}
+
+// MakeSlice wraps a pointer to a slice of Elems.
+// It replaces the array pointed to by the slice so that subsequent modifications
+// do not alter the data in a CLDR type.
+// It panics if an incorrect type is passed.
+func MakeSlice(slicePtr interface{}) Slice {
+ ptr := reflect.ValueOf(slicePtr)
+ if ptr.Kind() != reflect.Ptr {
+ panic(fmt.Sprintf("MakeSlice: argument must be pointer to slice, found %v", ptr.Type()))
+ }
+ sl := ptr.Elem()
+ if sl.Kind() != reflect.Slice {
+ panic(fmt.Sprintf("MakeSlice: argument must point to a slice, found %v", sl.Type()))
+ }
+ intf := reflect.TypeOf((*Elem)(nil)).Elem()
+ if !sl.Type().Elem().Implements(intf) {
+ panic(fmt.Sprintf("MakeSlice: element type of slice (%v) does not implement Elem", sl.Type().Elem()))
+ }
+ nsl := reflect.MakeSlice(sl.Type(), sl.Len(), sl.Len())
+ reflect.Copy(nsl, sl)
+ sl.Set(nsl)
+ return Slice{
+ ptr: ptr,
+ typ: sl.Type().Elem().Elem(),
+ }
+}
+
+func (s Slice) indexForAttr(a string) []int {
+ for i := iter(reflect.Zero(s.typ)); !i.done(); i.next() {
+ if n, _ := xmlName(i.field()); n == a {
+ return i.index
+ }
+ }
+ panic(fmt.Sprintf("MakeSlice: no attribute %q for type %v", a, s.typ))
+}
+
+// Filter filters s to only include elements for which fn returns true.
+func (s Slice) Filter(fn func(e Elem) bool) {
+ k := 0
+ sl := s.Value()
+ for i := 0; i < sl.Len(); i++ {
+ vi := sl.Index(i)
+ if fn(vi.Interface().(Elem)) {
+ sl.Index(k).Set(vi)
+ k++
+ }
+ }
+ sl.Set(sl.Slice(0, k))
+}
+
+// Group finds elements in s for which fn returns the same value and groups
+// them in a new Slice.
+func (s Slice) Group(fn func(e Elem) string) []Slice {
+ m := make(map[string][]reflect.Value)
+ sl := s.Value()
+ for i := 0; i < sl.Len(); i++ {
+ vi := sl.Index(i)
+ key := fn(vi.Interface().(Elem))
+ m[key] = append(m[key], vi)
+ }
+ keys := []string{}
+ for k, _ := range m {
+ keys = append(keys, k)
+ }
+ sort.Strings(keys)
+ res := []Slice{}
+ for _, k := range keys {
+ nsl := reflect.New(sl.Type())
+ nsl.Elem().Set(reflect.Append(nsl.Elem(), m[k]...))
+ res = append(res, MakeSlice(nsl.Interface()))
+ }
+ return res
+}
+
+// SelectAnyOf filters s to contain only elements for which attr matches
+// any of the values.
+func (s Slice) SelectAnyOf(attr string, values ...string) {
+ index := s.indexForAttr(attr)
+ s.Filter(func(e Elem) bool {
+ vf := reflect.ValueOf(e).Elem().FieldByIndex(index)
+ return in(values, vf.String())
+ })
+}
+
+// SelectOnePerGroup filters s to include at most one element e per group of
+// elements matching Key(attr), where e has an attribute a that matches any
+// the values in v.
+// If more than one element in a group matches a value in v preference
+// is given to the element that matches the first value in v.
+func (s Slice) SelectOnePerGroup(a string, v []string) {
+ index := s.indexForAttr(a)
+ grouped := s.Group(func(e Elem) string { return Key(e, a) })
+ sl := s.Value()
+ sl.Set(sl.Slice(0, 0))
+ for _, g := range grouped {
+ e := reflect.Value{}
+ found := len(v)
+ gsl := g.Value()
+ for i := 0; i < gsl.Len(); i++ {
+ vi := gsl.Index(i).Elem().FieldByIndex(index)
+ j := 0
+ for ; j < len(v) && v[j] != vi.String(); j++ {
+ }
+ if j < found {
+ found = j
+ e = gsl.Index(i)
+ }
+ }
+ if found < len(v) {
+ sl.Set(reflect.Append(sl, e))
+ }
+ }
+}
+
+// SelectDraft drops all elements from the list with a draft level smaller than d
+// and selects the highest draft level of the remaining.
+// This method assumes that the input CLDR is canonicalized.
+func (s Slice) SelectDraft(d Draft) {
+ s.SelectOnePerGroup("draft", drafts[len(drafts)-2-int(d):])
+}
diff --git a/vendor/golang.org/x/text/unicode/cldr/xml.go b/vendor/golang.org/x/text/unicode/cldr/xml.go
new file mode 100644
index 000000000..a1550ed95
--- /dev/null
+++ b/vendor/golang.org/x/text/unicode/cldr/xml.go
@@ -0,0 +1,1456 @@
+// This file was generated by go generate; DO NOT EDIT
+
+package cldr
+
+// LDMLBCP47 holds information on allowable values for various variables in LDML.
+type LDMLBCP47 struct {
+ Common
+ Version *struct {
+ Common
+ Number string `xml:"number,attr"`
+ } `xml:"version"`
+ Generation *struct {
+ Common
+ Date string `xml:"date,attr"`
+ } `xml:"generation"`
+ Keyword []*struct {
+ Common
+ Key []*struct {
+ Common
+ Extension string `xml:"extension,attr"`
+ Name string `xml:"name,attr"`
+ Description string `xml:"description,attr"`
+ Deprecated string `xml:"deprecated,attr"`
+ Preferred string `xml:"preferred,attr"`
+ Alias string `xml:"alias,attr"`
+ ValueType string `xml:"valueType,attr"`
+ Since string `xml:"since,attr"`
+ Type []*struct {
+ Common
+ Name string `xml:"name,attr"`
+ Description string `xml:"description,attr"`
+ Deprecated string `xml:"deprecated,attr"`
+ Preferred string `xml:"preferred,attr"`
+ Alias string `xml:"alias,attr"`
+ Since string `xml:"since,attr"`
+ } `xml:"type"`
+ } `xml:"key"`
+ } `xml:"keyword"`
+ Attribute []*struct {
+ Common
+ Name string `xml:"name,attr"`
+ Description string `xml:"description,attr"`
+ Deprecated string `xml:"deprecated,attr"`
+ Preferred string `xml:"preferred,attr"`
+ Since string `xml:"since,attr"`
+ } `xml:"attribute"`
+}
+
+// SupplementalData holds information relevant for internationalization
+// and proper use of CLDR, but that is not contained in the locale hierarchy.
+type SupplementalData struct {
+ Common
+ Version *struct {
+ Common
+ Number string `xml:"number,attr"`
+ } `xml:"version"`
+ Generation *struct {
+ Common
+ Date string `xml:"date,attr"`
+ } `xml:"generation"`
+ CurrencyData *struct {
+ Common
+ Fractions []*struct {
+ Common
+ Info []*struct {
+ Common
+ Iso4217 string `xml:"iso4217,attr"`
+ Digits string `xml:"digits,attr"`
+ Rounding string `xml:"rounding,attr"`
+ CashDigits string `xml:"cashDigits,attr"`
+ CashRounding string `xml:"cashRounding,attr"`
+ } `xml:"info"`
+ } `xml:"fractions"`
+ Region []*struct {
+ Common
+ Iso3166 string `xml:"iso3166,attr"`
+ Currency []*struct {
+ Common
+ Before string `xml:"before,attr"`
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ Iso4217 string `xml:"iso4217,attr"`
+ Digits string `xml:"digits,attr"`
+ Rounding string `xml:"rounding,attr"`
+ CashRounding string `xml:"cashRounding,attr"`
+ Tender string `xml:"tender,attr"`
+ Alternate []*struct {
+ Common
+ Iso4217 string `xml:"iso4217,attr"`
+ } `xml:"alternate"`
+ } `xml:"currency"`
+ } `xml:"region"`
+ } `xml:"currencyData"`
+ TerritoryContainment *struct {
+ Common
+ Group []*struct {
+ Common
+ Contains string `xml:"contains,attr"`
+ Grouping string `xml:"grouping,attr"`
+ Status string `xml:"status,attr"`
+ } `xml:"group"`
+ } `xml:"territoryContainment"`
+ SubdivisionContainment *struct {
+ Common
+ Subgroup []*struct {
+ Common
+ Subtype string `xml:"subtype,attr"`
+ Contains string `xml:"contains,attr"`
+ } `xml:"subgroup"`
+ } `xml:"subdivisionContainment"`
+ LanguageData *struct {
+ Common
+ Language []*struct {
+ Common
+ Scripts string `xml:"scripts,attr"`
+ Territories string `xml:"territories,attr"`
+ Variants string `xml:"variants,attr"`
+ } `xml:"language"`
+ } `xml:"languageData"`
+ TerritoryInfo *struct {
+ Common
+ Territory []*struct {
+ Common
+ Gdp string `xml:"gdp,attr"`
+ LiteracyPercent string `xml:"literacyPercent,attr"`
+ Population string `xml:"population,attr"`
+ LanguagePopulation []*struct {
+ Common
+ WritingPercent string `xml:"writingPercent,attr"`
+ PopulationPercent string `xml:"populationPercent,attr"`
+ OfficialStatus string `xml:"officialStatus,attr"`
+ } `xml:"languagePopulation"`
+ } `xml:"territory"`
+ } `xml:"territoryInfo"`
+ PostalCodeData *struct {
+ Common
+ PostCodeRegex []*struct {
+ Common
+ TerritoryId string `xml:"territoryId,attr"`
+ } `xml:"postCodeRegex"`
+ } `xml:"postalCodeData"`
+ CalendarData *struct {
+ Common
+ Calendar []*struct {
+ Common
+ Territories string `xml:"territories,attr"`
+ CalendarSystem *Common `xml:"calendarSystem"`
+ Eras *struct {
+ Common
+ Era []*struct {
+ Common
+ Start string `xml:"start,attr"`
+ End string `xml:"end,attr"`
+ } `xml:"era"`
+ } `xml:"eras"`
+ } `xml:"calendar"`
+ } `xml:"calendarData"`
+ CalendarPreferenceData *struct {
+ Common
+ CalendarPreference []*struct {
+ Common
+ Territories string `xml:"territories,attr"`
+ Ordering string `xml:"ordering,attr"`
+ } `xml:"calendarPreference"`
+ } `xml:"calendarPreferenceData"`
+ WeekData *struct {
+ Common
+ MinDays []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ Territories string `xml:"territories,attr"`
+ } `xml:"minDays"`
+ FirstDay []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ Territories string `xml:"territories,attr"`
+ } `xml:"firstDay"`
+ WeekendStart []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ Territories string `xml:"territories,attr"`
+ } `xml:"weekendStart"`
+ WeekendEnd []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ Territories string `xml:"territories,attr"`
+ } `xml:"weekendEnd"`
+ WeekOfPreference []*struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ Ordering string `xml:"ordering,attr"`
+ } `xml:"weekOfPreference"`
+ } `xml:"weekData"`
+ TimeData *struct {
+ Common
+ Hours []*struct {
+ Common
+ Allowed string `xml:"allowed,attr"`
+ Preferred string `xml:"preferred,attr"`
+ Regions string `xml:"regions,attr"`
+ } `xml:"hours"`
+ } `xml:"timeData"`
+ MeasurementData *struct {
+ Common
+ MeasurementSystem []*struct {
+ Common
+ Category string `xml:"category,attr"`
+ Territories string `xml:"territories,attr"`
+ } `xml:"measurementSystem"`
+ PaperSize []*struct {
+ Common
+ Territories string `xml:"territories,attr"`
+ } `xml:"paperSize"`
+ } `xml:"measurementData"`
+ UnitPreferenceData *struct {
+ Common
+ UnitPreferences []*struct {
+ Common
+ Category string `xml:"category,attr"`
+ Usage string `xml:"usage,attr"`
+ Scope string `xml:"scope,attr"`
+ UnitPreference []*struct {
+ Common
+ Regions string `xml:"regions,attr"`
+ } `xml:"unitPreference"`
+ } `xml:"unitPreferences"`
+ } `xml:"unitPreferenceData"`
+ TimezoneData *struct {
+ Common
+ MapTimezones []*struct {
+ Common
+ OtherVersion string `xml:"otherVersion,attr"`
+ TypeVersion string `xml:"typeVersion,attr"`
+ MapZone []*struct {
+ Common
+ Other string `xml:"other,attr"`
+ Territory string `xml:"territory,attr"`
+ } `xml:"mapZone"`
+ } `xml:"mapTimezones"`
+ ZoneFormatting []*struct {
+ Common
+ Multizone string `xml:"multizone,attr"`
+ TzidVersion string `xml:"tzidVersion,attr"`
+ ZoneItem []*struct {
+ Common
+ Territory string `xml:"territory,attr"`
+ Aliases string `xml:"aliases,attr"`
+ } `xml:"zoneItem"`
+ } `xml:"zoneFormatting"`
+ } `xml:"timezoneData"`
+ Characters *struct {
+ Common
+ CharacterFallback []*struct {
+ Common
+ Character []*struct {
+ Common
+ Value string `xml:"value,attr"`
+ Substitute []*Common `xml:"substitute"`
+ } `xml:"character"`
+ } `xml:"character-fallback"`
+ } `xml:"characters"`
+ Transforms *struct {
+ Common
+ Transform []*struct {
+ Common
+ Source string `xml:"source,attr"`
+ Target string `xml:"target,attr"`
+ Variant string `xml:"variant,attr"`
+ Direction string `xml:"direction,attr"`
+ Alias string `xml:"alias,attr"`
+ BackwardAlias string `xml:"backwardAlias,attr"`
+ Visibility string `xml:"visibility,attr"`
+ Comment []*Common `xml:"comment"`
+ TRule []*Common `xml:"tRule"`
+ } `xml:"transform"`
+ } `xml:"transforms"`
+ Metadata *struct {
+ Common
+ AttributeOrder *Common `xml:"attributeOrder"`
+ ElementOrder *Common `xml:"elementOrder"`
+ SerialElements *Common `xml:"serialElements"`
+ Suppress *struct {
+ Common
+ Attributes []*struct {
+ Common
+ Element string `xml:"element,attr"`
+ Attribute string `xml:"attribute,attr"`
+ AttributeValue string `xml:"attributeValue,attr"`
+ } `xml:"attributes"`
+ } `xml:"suppress"`
+ Validity *struct {
+ Common
+ Variable []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ } `xml:"variable"`
+ AttributeValues []*struct {
+ Common
+ Dtds string `xml:"dtds,attr"`
+ Elements string `xml:"elements,attr"`
+ Attributes string `xml:"attributes,attr"`
+ Order string `xml:"order,attr"`
+ } `xml:"attributeValues"`
+ } `xml:"validity"`
+ Alias *struct {
+ Common
+ LanguageAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"languageAlias"`
+ ScriptAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"scriptAlias"`
+ TerritoryAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"territoryAlias"`
+ SubdivisionAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"subdivisionAlias"`
+ VariantAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"variantAlias"`
+ ZoneAlias []*struct {
+ Common
+ Replacement string `xml:"replacement,attr"`
+ Reason string `xml:"reason,attr"`
+ } `xml:"zoneAlias"`
+ } `xml:"alias"`
+ Deprecated *struct {
+ Common
+ DeprecatedItems []*struct {
+ Common
+ Elements string `xml:"elements,attr"`
+ Attributes string `xml:"attributes,attr"`
+ Values string `xml:"values,attr"`
+ } `xml:"deprecatedItems"`
+ } `xml:"deprecated"`
+ Distinguishing *struct {
+ Common
+ DistinguishingItems []*struct {
+ Common
+ Exclude string `xml:"exclude,attr"`
+ Elements string `xml:"elements,attr"`
+ Attributes string `xml:"attributes,attr"`
+ } `xml:"distinguishingItems"`
+ } `xml:"distinguishing"`
+ Blocking *struct {
+ Common
+ BlockingItems []*struct {
+ Common
+ Elements string `xml:"elements,attr"`
+ } `xml:"blockingItems"`
+ } `xml:"blocking"`
+ CoverageAdditions *struct {
+ Common
+ LanguageCoverage []*struct {
+ Common
+ Values string `xml:"values,attr"`
+ } `xml:"languageCoverage"`
+ ScriptCoverage []*struct {
+ Common
+ Values string `xml:"values,attr"`
+ } `xml:"scriptCoverage"`
+ TerritoryCoverage []*struct {
+ Common
+ Values string `xml:"values,attr"`
+ } `xml:"territoryCoverage"`
+ CurrencyCoverage []*struct {
+ Common
+ Values string `xml:"values,attr"`
+ } `xml:"currencyCoverage"`
+ TimezoneCoverage []*struct {
+ Common
+ Values string `xml:"values,attr"`
+ } `xml:"timezoneCoverage"`
+ } `xml:"coverageAdditions"`
+ SkipDefaultLocale *struct {
+ Common
+ Services string `xml:"services,attr"`
+ } `xml:"skipDefaultLocale"`
+ DefaultContent *struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ } `xml:"defaultContent"`
+ } `xml:"metadata"`
+ CodeMappings *struct {
+ Common
+ LanguageCodes []*struct {
+ Common
+ Alpha3 string `xml:"alpha3,attr"`
+ } `xml:"languageCodes"`
+ TerritoryCodes []*struct {
+ Common
+ Numeric string `xml:"numeric,attr"`
+ Alpha3 string `xml:"alpha3,attr"`
+ Fips10 string `xml:"fips10,attr"`
+ Internet string `xml:"internet,attr"`
+ } `xml:"territoryCodes"`
+ CurrencyCodes []*struct {
+ Common
+ Numeric string `xml:"numeric,attr"`
+ } `xml:"currencyCodes"`
+ } `xml:"codeMappings"`
+ ParentLocales *struct {
+ Common
+ ParentLocale []*struct {
+ Common
+ Parent string `xml:"parent,attr"`
+ Locales string `xml:"locales,attr"`
+ } `xml:"parentLocale"`
+ } `xml:"parentLocales"`
+ LikelySubtags *struct {
+ Common
+ LikelySubtag []*struct {
+ Common
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ } `xml:"likelySubtag"`
+ } `xml:"likelySubtags"`
+ MetazoneInfo *struct {
+ Common
+ Timezone []*struct {
+ Common
+ UsesMetazone []*struct {
+ Common
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ Mzone string `xml:"mzone,attr"`
+ } `xml:"usesMetazone"`
+ } `xml:"timezone"`
+ } `xml:"metazoneInfo"`
+ Plurals []*struct {
+ Common
+ PluralRules []*struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ PluralRule []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"pluralRule"`
+ } `xml:"pluralRules"`
+ PluralRanges []*struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ PluralRange []*struct {
+ Common
+ Start string `xml:"start,attr"`
+ End string `xml:"end,attr"`
+ Result string `xml:"result,attr"`
+ } `xml:"pluralRange"`
+ } `xml:"pluralRanges"`
+ } `xml:"plurals"`
+ TelephoneCodeData *struct {
+ Common
+ CodesByTerritory []*struct {
+ Common
+ Territory string `xml:"territory,attr"`
+ TelephoneCountryCode []*struct {
+ Common
+ Code string `xml:"code,attr"`
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ } `xml:"telephoneCountryCode"`
+ } `xml:"codesByTerritory"`
+ } `xml:"telephoneCodeData"`
+ NumberingSystems *struct {
+ Common
+ NumberingSystem []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ Radix string `xml:"radix,attr"`
+ Digits string `xml:"digits,attr"`
+ Rules string `xml:"rules,attr"`
+ } `xml:"numberingSystem"`
+ } `xml:"numberingSystems"`
+ Bcp47KeywordMappings *struct {
+ Common
+ MapKeys *struct {
+ Common
+ KeyMap []*struct {
+ Common
+ Bcp47 string `xml:"bcp47,attr"`
+ } `xml:"keyMap"`
+ } `xml:"mapKeys"`
+ MapTypes []*struct {
+ Common
+ TypeMap []*struct {
+ Common
+ Bcp47 string `xml:"bcp47,attr"`
+ } `xml:"typeMap"`
+ } `xml:"mapTypes"`
+ } `xml:"bcp47KeywordMappings"`
+ Gender *struct {
+ Common
+ PersonList []*struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ } `xml:"personList"`
+ } `xml:"gender"`
+ References *struct {
+ Common
+ Reference []*struct {
+ Common
+ Uri string `xml:"uri,attr"`
+ } `xml:"reference"`
+ } `xml:"references"`
+ LanguageMatching *struct {
+ Common
+ LanguageMatches []*struct {
+ Common
+ LanguageMatch []*struct {
+ Common
+ Desired string `xml:"desired,attr"`
+ Oneway string `xml:"oneway,attr"`
+ Percent string `xml:"percent,attr"`
+ Supported string `xml:"supported,attr"`
+ } `xml:"languageMatch"`
+ } `xml:"languageMatches"`
+ } `xml:"languageMatching"`
+ DayPeriodRuleSet []*struct {
+ Common
+ DayPeriodRules []*struct {
+ Common
+ Locales string `xml:"locales,attr"`
+ DayPeriodRule []*struct {
+ Common
+ At string `xml:"at,attr"`
+ After string `xml:"after,attr"`
+ Before string `xml:"before,attr"`
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ } `xml:"dayPeriodRule"`
+ } `xml:"dayPeriodRules"`
+ } `xml:"dayPeriodRuleSet"`
+ MetaZones *struct {
+ Common
+ MetazoneInfo *struct {
+ Common
+ Timezone []*struct {
+ Common
+ UsesMetazone []*struct {
+ Common
+ From string `xml:"from,attr"`
+ To string `xml:"to,attr"`
+ Mzone string `xml:"mzone,attr"`
+ } `xml:"usesMetazone"`
+ } `xml:"timezone"`
+ } `xml:"metazoneInfo"`
+ MapTimezones *struct {
+ Common
+ OtherVersion string `xml:"otherVersion,attr"`
+ TypeVersion string `xml:"typeVersion,attr"`
+ MapZone []*struct {
+ Common
+ Other string `xml:"other,attr"`
+ Territory string `xml:"territory,attr"`
+ } `xml:"mapZone"`
+ } `xml:"mapTimezones"`
+ } `xml:"metaZones"`
+ PrimaryZones *struct {
+ Common
+ PrimaryZone []*struct {
+ Common
+ Iso3166 string `xml:"iso3166,attr"`
+ } `xml:"primaryZone"`
+ } `xml:"primaryZones"`
+ WindowsZones *struct {
+ Common
+ MapTimezones *struct {
+ Common
+ OtherVersion string `xml:"otherVersion,attr"`
+ TypeVersion string `xml:"typeVersion,attr"`
+ MapZone []*struct {
+ Common
+ Other string `xml:"other,attr"`
+ Territory string `xml:"territory,attr"`
+ } `xml:"mapZone"`
+ } `xml:"mapTimezones"`
+ } `xml:"windowsZones"`
+ CoverageLevels *struct {
+ Common
+ ApprovalRequirements *struct {
+ Common
+ ApprovalRequirement []*struct {
+ Common
+ Votes string `xml:"votes,attr"`
+ Locales string `xml:"locales,attr"`
+ Paths string `xml:"paths,attr"`
+ } `xml:"approvalRequirement"`
+ } `xml:"approvalRequirements"`
+ CoverageVariable []*struct {
+ Common
+ Key string `xml:"key,attr"`
+ Value string `xml:"value,attr"`
+ } `xml:"coverageVariable"`
+ CoverageLevel []*struct {
+ Common
+ InLanguage string `xml:"inLanguage,attr"`
+ InScript string `xml:"inScript,attr"`
+ InTerritory string `xml:"inTerritory,attr"`
+ Value string `xml:"value,attr"`
+ Match string `xml:"match,attr"`
+ } `xml:"coverageLevel"`
+ } `xml:"coverageLevels"`
+ IdValidity *struct {
+ Common
+ Id []*struct {
+ Common
+ IdStatus string `xml:"idStatus,attr"`
+ } `xml:"id"`
+ } `xml:"idValidity"`
+ RgScope *struct {
+ Common
+ RgPath []*struct {
+ Common
+ Path string `xml:"path,attr"`
+ } `xml:"rgPath"`
+ } `xml:"rgScope"`
+}
+
+// LDML is the top-level type for locale-specific data.
+type LDML struct {
+ Common
+ Version string `xml:"version,attr"`
+ Identity *struct {
+ Common
+ Version *struct {
+ Common
+ Number string `xml:"number,attr"`
+ } `xml:"version"`
+ Generation *struct {
+ Common
+ Date string `xml:"date,attr"`
+ } `xml:"generation"`
+ Language *Common `xml:"language"`
+ Script *Common `xml:"script"`
+ Territory *Common `xml:"territory"`
+ Variant *Common `xml:"variant"`
+ } `xml:"identity"`
+ LocaleDisplayNames *LocaleDisplayNames `xml:"localeDisplayNames"`
+ Layout *struct {
+ Common
+ Orientation []*struct {
+ Common
+ Characters string `xml:"characters,attr"`
+ Lines string `xml:"lines,attr"`
+ CharacterOrder []*Common `xml:"characterOrder"`
+ LineOrder []*Common `xml:"lineOrder"`
+ } `xml:"orientation"`
+ InList []*struct {
+ Common
+ Casing string `xml:"casing,attr"`
+ } `xml:"inList"`
+ InText []*Common `xml:"inText"`
+ } `xml:"layout"`
+ ContextTransforms *struct {
+ Common
+ ContextTransformUsage []*struct {
+ Common
+ ContextTransform []*Common `xml:"contextTransform"`
+ } `xml:"contextTransformUsage"`
+ } `xml:"contextTransforms"`
+ Characters *struct {
+ Common
+ ExemplarCharacters []*Common `xml:"exemplarCharacters"`
+ Ellipsis []*Common `xml:"ellipsis"`
+ MoreInformation []*Common `xml:"moreInformation"`
+ Stopwords []*struct {
+ Common
+ StopwordList []*Common `xml:"stopwordList"`
+ } `xml:"stopwords"`
+ IndexLabels []*struct {
+ Common
+ IndexSeparator []*Common `xml:"indexSeparator"`
+ CompressedIndexSeparator []*Common `xml:"compressedIndexSeparator"`
+ IndexRangePattern []*Common `xml:"indexRangePattern"`
+ IndexLabelBefore []*Common `xml:"indexLabelBefore"`
+ IndexLabelAfter []*Common `xml:"indexLabelAfter"`
+ IndexLabel []*struct {
+ Common
+ IndexSource string `xml:"indexSource,attr"`
+ Priority string `xml:"priority,attr"`
+ } `xml:"indexLabel"`
+ } `xml:"indexLabels"`
+ Mapping []*struct {
+ Common
+ Registry string `xml:"registry,attr"`
+ } `xml:"mapping"`
+ } `xml:"characters"`
+ Delimiters *struct {
+ Common
+ QuotationStart []*Common `xml:"quotationStart"`
+ QuotationEnd []*Common `xml:"quotationEnd"`
+ AlternateQuotationStart []*Common `xml:"alternateQuotationStart"`
+ AlternateQuotationEnd []*Common `xml:"alternateQuotationEnd"`
+ } `xml:"delimiters"`
+ Measurement *struct {
+ Common
+ MeasurementSystem []*Common `xml:"measurementSystem"`
+ PaperSize []*struct {
+ Common
+ Height []*Common `xml:"height"`
+ Width []*Common `xml:"width"`
+ } `xml:"paperSize"`
+ } `xml:"measurement"`
+ Dates *struct {
+ Common
+ LocalizedPatternChars []*Common `xml:"localizedPatternChars"`
+ DateRangePattern []*Common `xml:"dateRangePattern"`
+ Calendars *struct {
+ Common
+ Calendar []*Calendar `xml:"calendar"`
+ } `xml:"calendars"`
+ Fields *struct {
+ Common
+ Field []*struct {
+ Common
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ Relative []*Common `xml:"relative"`
+ RelativeTime []*struct {
+ Common
+ RelativeTimePattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"relativeTimePattern"`
+ } `xml:"relativeTime"`
+ RelativePeriod []*Common `xml:"relativePeriod"`
+ } `xml:"field"`
+ } `xml:"fields"`
+ TimeZoneNames *TimeZoneNames `xml:"timeZoneNames"`
+ } `xml:"dates"`
+ Numbers *Numbers `xml:"numbers"`
+ Units *struct {
+ Common
+ Unit []*struct {
+ Common
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ UnitPattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"unitPattern"`
+ PerUnitPattern []*Common `xml:"perUnitPattern"`
+ } `xml:"unit"`
+ UnitLength []*struct {
+ Common
+ CompoundUnit []*struct {
+ Common
+ CompoundUnitPattern []*Common `xml:"compoundUnitPattern"`
+ } `xml:"compoundUnit"`
+ Unit []*struct {
+ Common
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ UnitPattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"unitPattern"`
+ PerUnitPattern []*Common `xml:"perUnitPattern"`
+ } `xml:"unit"`
+ CoordinateUnit []*struct {
+ Common
+ CoordinateUnitPattern []*Common `xml:"coordinateUnitPattern"`
+ } `xml:"coordinateUnit"`
+ } `xml:"unitLength"`
+ DurationUnit []*struct {
+ Common
+ DurationUnitPattern []*Common `xml:"durationUnitPattern"`
+ } `xml:"durationUnit"`
+ } `xml:"units"`
+ ListPatterns *struct {
+ Common
+ ListPattern []*struct {
+ Common
+ ListPatternPart []*Common `xml:"listPatternPart"`
+ } `xml:"listPattern"`
+ } `xml:"listPatterns"`
+ Collations *struct {
+ Common
+ Version string `xml:"version,attr"`
+ DefaultCollation *Common `xml:"defaultCollation"`
+ Collation []*Collation `xml:"collation"`
+ } `xml:"collations"`
+ Posix *struct {
+ Common
+ Messages []*struct {
+ Common
+ Yesstr []*Common `xml:"yesstr"`
+ Nostr []*Common `xml:"nostr"`
+ Yesexpr []*Common `xml:"yesexpr"`
+ Noexpr []*Common `xml:"noexpr"`
+ } `xml:"messages"`
+ } `xml:"posix"`
+ CharacterLabels *struct {
+ Common
+ CharacterLabelPattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"characterLabelPattern"`
+ CharacterLabel []*Common `xml:"characterLabel"`
+ } `xml:"characterLabels"`
+ Segmentations *struct {
+ Common
+ Segmentation []*struct {
+ Common
+ Variables *struct {
+ Common
+ Variable []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ } `xml:"variable"`
+ } `xml:"variables"`
+ SegmentRules *struct {
+ Common
+ Rule []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ } `xml:"rule"`
+ } `xml:"segmentRules"`
+ Exceptions *struct {
+ Common
+ Exception []*Common `xml:"exception"`
+ } `xml:"exceptions"`
+ Suppressions *struct {
+ Common
+ Suppression []*Common `xml:"suppression"`
+ } `xml:"suppressions"`
+ } `xml:"segmentation"`
+ } `xml:"segmentations"`
+ Rbnf *struct {
+ Common
+ RulesetGrouping []*struct {
+ Common
+ Ruleset []*struct {
+ Common
+ Access string `xml:"access,attr"`
+ AllowsParsing string `xml:"allowsParsing,attr"`
+ Rbnfrule []*struct {
+ Common
+ Value string `xml:"value,attr"`
+ Radix string `xml:"radix,attr"`
+ Decexp string `xml:"decexp,attr"`
+ } `xml:"rbnfrule"`
+ } `xml:"ruleset"`
+ } `xml:"rulesetGrouping"`
+ } `xml:"rbnf"`
+ Annotations *struct {
+ Common
+ Annotation []*struct {
+ Common
+ Cp string `xml:"cp,attr"`
+ Tts string `xml:"tts,attr"`
+ } `xml:"annotation"`
+ } `xml:"annotations"`
+ Metadata *struct {
+ Common
+ CasingData *struct {
+ Common
+ CasingItem []*struct {
+ Common
+ Override string `xml:"override,attr"`
+ ForceError string `xml:"forceError,attr"`
+ } `xml:"casingItem"`
+ } `xml:"casingData"`
+ } `xml:"metadata"`
+ References *struct {
+ Common
+ Reference []*struct {
+ Common
+ Uri string `xml:"uri,attr"`
+ } `xml:"reference"`
+ } `xml:"references"`
+}
+
+// Collation contains rules that specify a certain sort-order,
+// as a tailoring of the root order.
+// The parsed rules are obtained by passing a RuleProcessor to Collation's
+// Process method.
+type Collation struct {
+ Common
+ Visibility string `xml:"visibility,attr"`
+ Base *Common `xml:"base"`
+ Import []*struct {
+ Common
+ Source string `xml:"source,attr"`
+ } `xml:"import"`
+ Settings *struct {
+ Common
+ Strength string `xml:"strength,attr"`
+ Alternate string `xml:"alternate,attr"`
+ Backwards string `xml:"backwards,attr"`
+ Normalization string `xml:"normalization,attr"`
+ CaseLevel string `xml:"caseLevel,attr"`
+ CaseFirst string `xml:"caseFirst,attr"`
+ HiraganaQuaternary string `xml:"hiraganaQuaternary,attr"`
+ MaxVariable string `xml:"maxVariable,attr"`
+ Numeric string `xml:"numeric,attr"`
+ Private string `xml:"private,attr"`
+ VariableTop string `xml:"variableTop,attr"`
+ Reorder string `xml:"reorder,attr"`
+ } `xml:"settings"`
+ SuppressContractions *Common `xml:"suppress_contractions"`
+ Optimize *Common `xml:"optimize"`
+ Cr []*Common `xml:"cr"`
+ rulesElem
+}
+
+// Calendar specifies the fields used for formatting and parsing dates and times.
+// The month and quarter names are identified numerically, starting at 1.
+// The day (of the week) names are identified with short strings, since there is
+// no universally-accepted numeric designation.
+type Calendar struct {
+ Common
+ Months *struct {
+ Common
+ MonthContext []*struct {
+ Common
+ MonthWidth []*struct {
+ Common
+ Month []*struct {
+ Common
+ Yeartype string `xml:"yeartype,attr"`
+ } `xml:"month"`
+ } `xml:"monthWidth"`
+ } `xml:"monthContext"`
+ } `xml:"months"`
+ MonthNames *struct {
+ Common
+ Month []*struct {
+ Common
+ Yeartype string `xml:"yeartype,attr"`
+ } `xml:"month"`
+ } `xml:"monthNames"`
+ MonthAbbr *struct {
+ Common
+ Month []*struct {
+ Common
+ Yeartype string `xml:"yeartype,attr"`
+ } `xml:"month"`
+ } `xml:"monthAbbr"`
+ MonthPatterns *struct {
+ Common
+ MonthPatternContext []*struct {
+ Common
+ MonthPatternWidth []*struct {
+ Common
+ MonthPattern []*Common `xml:"monthPattern"`
+ } `xml:"monthPatternWidth"`
+ } `xml:"monthPatternContext"`
+ } `xml:"monthPatterns"`
+ Days *struct {
+ Common
+ DayContext []*struct {
+ Common
+ DayWidth []*struct {
+ Common
+ Day []*Common `xml:"day"`
+ } `xml:"dayWidth"`
+ } `xml:"dayContext"`
+ } `xml:"days"`
+ DayNames *struct {
+ Common
+ Day []*Common `xml:"day"`
+ } `xml:"dayNames"`
+ DayAbbr *struct {
+ Common
+ Day []*Common `xml:"day"`
+ } `xml:"dayAbbr"`
+ Quarters *struct {
+ Common
+ QuarterContext []*struct {
+ Common
+ QuarterWidth []*struct {
+ Common
+ Quarter []*Common `xml:"quarter"`
+ } `xml:"quarterWidth"`
+ } `xml:"quarterContext"`
+ } `xml:"quarters"`
+ Week *struct {
+ Common
+ MinDays []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"minDays"`
+ FirstDay []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ } `xml:"firstDay"`
+ WeekendStart []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ Time string `xml:"time,attr"`
+ } `xml:"weekendStart"`
+ WeekendEnd []*struct {
+ Common
+ Day string `xml:"day,attr"`
+ Time string `xml:"time,attr"`
+ } `xml:"weekendEnd"`
+ } `xml:"week"`
+ Am []*Common `xml:"am"`
+ Pm []*Common `xml:"pm"`
+ DayPeriods *struct {
+ Common
+ DayPeriodContext []*struct {
+ Common
+ DayPeriodWidth []*struct {
+ Common
+ DayPeriod []*Common `xml:"dayPeriod"`
+ } `xml:"dayPeriodWidth"`
+ } `xml:"dayPeriodContext"`
+ } `xml:"dayPeriods"`
+ Eras *struct {
+ Common
+ EraNames *struct {
+ Common
+ Era []*Common `xml:"era"`
+ } `xml:"eraNames"`
+ EraAbbr *struct {
+ Common
+ Era []*Common `xml:"era"`
+ } `xml:"eraAbbr"`
+ EraNarrow *struct {
+ Common
+ Era []*Common `xml:"era"`
+ } `xml:"eraNarrow"`
+ } `xml:"eras"`
+ CyclicNameSets *struct {
+ Common
+ CyclicNameSet []*struct {
+ Common
+ CyclicNameContext []*struct {
+ Common
+ CyclicNameWidth []*struct {
+ Common
+ CyclicName []*Common `xml:"cyclicName"`
+ } `xml:"cyclicNameWidth"`
+ } `xml:"cyclicNameContext"`
+ } `xml:"cyclicNameSet"`
+ } `xml:"cyclicNameSets"`
+ DateFormats *struct {
+ Common
+ DateFormatLength []*struct {
+ Common
+ DateFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ } `xml:"dateFormat"`
+ } `xml:"dateFormatLength"`
+ } `xml:"dateFormats"`
+ TimeFormats *struct {
+ Common
+ TimeFormatLength []*struct {
+ Common
+ TimeFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ } `xml:"timeFormat"`
+ } `xml:"timeFormatLength"`
+ } `xml:"timeFormats"`
+ DateTimeFormats *struct {
+ Common
+ DateTimeFormatLength []*struct {
+ Common
+ DateTimeFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ } `xml:"dateTimeFormat"`
+ } `xml:"dateTimeFormatLength"`
+ AvailableFormats []*struct {
+ Common
+ DateFormatItem []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"dateFormatItem"`
+ } `xml:"availableFormats"`
+ AppendItems []*struct {
+ Common
+ AppendItem []*struct {
+ Common
+ Request string `xml:"request,attr"`
+ } `xml:"appendItem"`
+ } `xml:"appendItems"`
+ IntervalFormats []*struct {
+ Common
+ IntervalFormatFallback []*Common `xml:"intervalFormatFallback"`
+ IntervalFormatItem []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ GreatestDifference []*struct {
+ Common
+ Id string `xml:"id,attr"`
+ } `xml:"greatestDifference"`
+ } `xml:"intervalFormatItem"`
+ } `xml:"intervalFormats"`
+ } `xml:"dateTimeFormats"`
+ Fields []*struct {
+ Common
+ Field []*struct {
+ Common
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ Relative []*Common `xml:"relative"`
+ RelativeTime []*struct {
+ Common
+ RelativeTimePattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"relativeTimePattern"`
+ } `xml:"relativeTime"`
+ RelativePeriod []*Common `xml:"relativePeriod"`
+ } `xml:"field"`
+ } `xml:"fields"`
+}
+type TimeZoneNames struct {
+ Common
+ HourFormat []*Common `xml:"hourFormat"`
+ HoursFormat []*Common `xml:"hoursFormat"`
+ GmtFormat []*Common `xml:"gmtFormat"`
+ GmtZeroFormat []*Common `xml:"gmtZeroFormat"`
+ RegionFormat []*Common `xml:"regionFormat"`
+ FallbackFormat []*Common `xml:"fallbackFormat"`
+ FallbackRegionFormat []*Common `xml:"fallbackRegionFormat"`
+ AbbreviationFallback []*Common `xml:"abbreviationFallback"`
+ PreferenceOrdering []*Common `xml:"preferenceOrdering"`
+ SingleCountries []*struct {
+ Common
+ List string `xml:"list,attr"`
+ } `xml:"singleCountries"`
+ Zone []*struct {
+ Common
+ Long []*struct {
+ Common
+ Generic []*Common `xml:"generic"`
+ Standard []*Common `xml:"standard"`
+ Daylight []*Common `xml:"daylight"`
+ } `xml:"long"`
+ Short []*struct {
+ Common
+ Generic []*Common `xml:"generic"`
+ Standard []*Common `xml:"standard"`
+ Daylight []*Common `xml:"daylight"`
+ } `xml:"short"`
+ CommonlyUsed []*struct {
+ Common
+ Used string `xml:"used,attr"`
+ } `xml:"commonlyUsed"`
+ ExemplarCity []*Common `xml:"exemplarCity"`
+ } `xml:"zone"`
+ Metazone []*struct {
+ Common
+ Long []*struct {
+ Common
+ Generic []*Common `xml:"generic"`
+ Standard []*Common `xml:"standard"`
+ Daylight []*Common `xml:"daylight"`
+ } `xml:"long"`
+ Short []*struct {
+ Common
+ Generic []*Common `xml:"generic"`
+ Standard []*Common `xml:"standard"`
+ Daylight []*Common `xml:"daylight"`
+ } `xml:"short"`
+ CommonlyUsed []*struct {
+ Common
+ Used string `xml:"used,attr"`
+ } `xml:"commonlyUsed"`
+ } `xml:"metazone"`
+}
+
+// LocaleDisplayNames specifies localized display names for for scripts, languages,
+// countries, currencies, and variants.
+type LocaleDisplayNames struct {
+ Common
+ LocaleDisplayPattern *struct {
+ Common
+ LocalePattern []*Common `xml:"localePattern"`
+ LocaleSeparator []*Common `xml:"localeSeparator"`
+ LocaleKeyTypePattern []*Common `xml:"localeKeyTypePattern"`
+ } `xml:"localeDisplayPattern"`
+ Languages *struct {
+ Common
+ Language []*Common `xml:"language"`
+ } `xml:"languages"`
+ Scripts *struct {
+ Common
+ Script []*Common `xml:"script"`
+ } `xml:"scripts"`
+ Territories *struct {
+ Common
+ Territory []*Common `xml:"territory"`
+ } `xml:"territories"`
+ Subdivisions *struct {
+ Common
+ Subdivision []*Common `xml:"subdivision"`
+ } `xml:"subdivisions"`
+ Variants *struct {
+ Common
+ Variant []*Common `xml:"variant"`
+ } `xml:"variants"`
+ Keys *struct {
+ Common
+ Key []*Common `xml:"key"`
+ } `xml:"keys"`
+ Types *struct {
+ Common
+ Type []*struct {
+ Common
+ Key string `xml:"key,attr"`
+ } `xml:"type"`
+ } `xml:"types"`
+ TransformNames *struct {
+ Common
+ TransformName []*Common `xml:"transformName"`
+ } `xml:"transformNames"`
+ MeasurementSystemNames *struct {
+ Common
+ MeasurementSystemName []*Common `xml:"measurementSystemName"`
+ } `xml:"measurementSystemNames"`
+ CodePatterns *struct {
+ Common
+ CodePattern []*Common `xml:"codePattern"`
+ } `xml:"codePatterns"`
+}
+
+// Numbers supplies information for formatting and parsing numbers and currencies.
+type Numbers struct {
+ Common
+ DefaultNumberingSystem []*Common `xml:"defaultNumberingSystem"`
+ OtherNumberingSystems []*struct {
+ Common
+ Native []*Common `xml:"native"`
+ Traditional []*Common `xml:"traditional"`
+ Finance []*Common `xml:"finance"`
+ } `xml:"otherNumberingSystems"`
+ MinimumGroupingDigits []*Common `xml:"minimumGroupingDigits"`
+ Symbols []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ Decimal []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"decimal"`
+ Group []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"group"`
+ List []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"list"`
+ PercentSign []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"percentSign"`
+ NativeZeroDigit []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"nativeZeroDigit"`
+ PatternDigit []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"patternDigit"`
+ PlusSign []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"plusSign"`
+ MinusSign []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"minusSign"`
+ Exponential []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"exponential"`
+ SuperscriptingExponent []*Common `xml:"superscriptingExponent"`
+ PerMille []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"perMille"`
+ Infinity []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"infinity"`
+ Nan []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"nan"`
+ CurrencyDecimal []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"currencyDecimal"`
+ CurrencyGroup []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"currencyGroup"`
+ TimeSeparator []*Common `xml:"timeSeparator"`
+ } `xml:"symbols"`
+ DecimalFormats []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ DecimalFormatLength []*struct {
+ Common
+ DecimalFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ } `xml:"decimalFormat"`
+ } `xml:"decimalFormatLength"`
+ } `xml:"decimalFormats"`
+ ScientificFormats []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ ScientificFormatLength []*struct {
+ Common
+ ScientificFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ } `xml:"scientificFormat"`
+ } `xml:"scientificFormatLength"`
+ } `xml:"scientificFormats"`
+ PercentFormats []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ PercentFormatLength []*struct {
+ Common
+ PercentFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ } `xml:"percentFormat"`
+ } `xml:"percentFormatLength"`
+ } `xml:"percentFormats"`
+ CurrencyFormats []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ CurrencySpacing []*struct {
+ Common
+ BeforeCurrency []*struct {
+ Common
+ CurrencyMatch []*Common `xml:"currencyMatch"`
+ SurroundingMatch []*Common `xml:"surroundingMatch"`
+ InsertBetween []*Common `xml:"insertBetween"`
+ } `xml:"beforeCurrency"`
+ AfterCurrency []*struct {
+ Common
+ CurrencyMatch []*Common `xml:"currencyMatch"`
+ SurroundingMatch []*Common `xml:"surroundingMatch"`
+ InsertBetween []*Common `xml:"insertBetween"`
+ } `xml:"afterCurrency"`
+ } `xml:"currencySpacing"`
+ CurrencyFormatLength []*struct {
+ Common
+ CurrencyFormat []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ } `xml:"currencyFormat"`
+ } `xml:"currencyFormatLength"`
+ UnitPattern []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"unitPattern"`
+ } `xml:"currencyFormats"`
+ Currencies *struct {
+ Common
+ Currency []*struct {
+ Common
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ DisplayName []*struct {
+ Common
+ Count string `xml:"count,attr"`
+ } `xml:"displayName"`
+ Symbol []*Common `xml:"symbol"`
+ Decimal []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"decimal"`
+ Group []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ } `xml:"group"`
+ } `xml:"currency"`
+ } `xml:"currencies"`
+ MiscPatterns []*struct {
+ Common
+ NumberSystem string `xml:"numberSystem,attr"`
+ Pattern []*struct {
+ Common
+ Numbers string `xml:"numbers,attr"`
+ Count string `xml:"count,attr"`
+ } `xml:"pattern"`
+ } `xml:"miscPatterns"`
+}
+
+// Version is the version of CLDR from which the XML definitions are generated.
+const Version = "30"
diff --git a/vendor/golang.org/x/tools/.gitattributes b/vendor/golang.org/x/tools/.gitattributes
new file mode 100644
index 000000000..d2f212e5d
--- /dev/null
+++ b/vendor/golang.org/x/tools/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/vendor/golang.org/x/tools/.gitignore b/vendor/golang.org/x/tools/.gitignore
new file mode 100644
index 000000000..5a9d62efd
--- /dev/null
+++ b/vendor/golang.org/x/tools/.gitignore
@@ -0,0 +1,2 @@
+# Add no patterns to .gitignore except for files generated by the build.
+last-change
diff --git a/vendor/golang.org/x/tools/AUTHORS b/vendor/golang.org/x/tools/AUTHORS
new file mode 100644
index 000000000..15167cd74
--- /dev/null
+++ b/vendor/golang.org/x/tools/AUTHORS
@@ -0,0 +1,3 @@
+# 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/tools/CONTRIBUTING.md b/vendor/golang.org/x/tools/CONTRIBUTING.md
new file mode 100644
index 000000000..88dff59bc
--- /dev/null
+++ b/vendor/golang.org/x/tools/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# 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/tools/CONTRIBUTORS b/vendor/golang.org/x/tools/CONTRIBUTORS
new file mode 100644
index 000000000..1c4577e96
--- /dev/null
+++ b/vendor/golang.org/x/tools/CONTRIBUTORS
@@ -0,0 +1,3 @@
+# 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/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE
new file mode 100644
index 000000000..6a66aea5e
--- /dev/null
+++ b/vendor/golang.org/x/tools/LICENSE
@@ -0,0 +1,27 @@
+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/tools/PATENTS b/vendor/golang.org/x/tools/PATENTS
new file mode 100644
index 000000000..733099041
--- /dev/null
+++ b/vendor/golang.org/x/tools/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/tools/README b/vendor/golang.org/x/tools/README
new file mode 100644
index 000000000..d5944c6db
--- /dev/null
+++ b/vendor/golang.org/x/tools/README
@@ -0,0 +1,10 @@
+This subrepository holds the source for various packages and tools that support
+the Go programming language.
+
+Some of the tools, godoc and vet for example, are included in binary Go distributions.
+Others, including the Go guru and the test coverage tool, can be fetched with "go get".
+
+Packages include a type-checker for Go and an implementation of the
+Static Single Assignment form (SSA) representation for Go programs.
+
+To submit changes to this repository, see http://golang.org/doc/contribute.html.
diff --git a/vendor/golang.org/x/tools/codereview.cfg b/vendor/golang.org/x/tools/codereview.cfg
new file mode 100644
index 000000000..3f8b14b64
--- /dev/null
+++ b/vendor/golang.org/x/tools/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
new file mode 100644
index 000000000..6b7052b89
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
@@ -0,0 +1,627 @@
+// 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 astutil
+
+// This file defines utilities for working with source positions.
+
+import (
+ "fmt"
+ "go/ast"
+ "go/token"
+ "sort"
+)
+
+// PathEnclosingInterval returns the node that encloses the source
+// interval [start, end), and all its ancestors up to the AST root.
+//
+// The definition of "enclosing" used by this function considers
+// additional whitespace abutting a node to be enclosed by it.
+// In this example:
+//
+// z := x + y // add them
+// <-A->
+// <----B----->
+//
+// the ast.BinaryExpr(+) node is considered to enclose interval B
+// even though its [Pos()..End()) is actually only interval A.
+// This behaviour makes user interfaces more tolerant of imperfect
+// input.
+//
+// This function treats tokens as nodes, though they are not included
+// in the result. e.g. PathEnclosingInterval("+") returns the
+// enclosing ast.BinaryExpr("x + y").
+//
+// If start==end, the 1-char interval following start is used instead.
+//
+// The 'exact' result is true if the interval contains only path[0]
+// and perhaps some adjacent whitespace. It is false if the interval
+// overlaps multiple children of path[0], or if it contains only
+// interior whitespace of path[0].
+// In this example:
+//
+// z := x + y // add them
+// <--C--> <---E-->
+// ^
+// D
+//
+// intervals C, D and E are inexact. C is contained by the
+// z-assignment statement, because it spans three of its children (:=,
+// x, +). So too is the 1-char interval D, because it contains only
+// interior whitespace of the assignment. E is considered interior
+// whitespace of the BlockStmt containing the assignment.
+//
+// Precondition: [start, end) both lie within the same file as root.
+// TODO(adonovan): return (nil, false) in this case and remove precond.
+// Requires FileSet; see loader.tokenFileContainsPos.
+//
+// Postcondition: path is never nil; it always contains at least 'root'.
+//
+func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Node, exact bool) {
+ // fmt.Printf("EnclosingInterval %d %d\n", start, end) // debugging
+
+ // Precondition: node.[Pos..End) and adjoining whitespace contain [start, end).
+ var visit func(node ast.Node) bool
+ visit = func(node ast.Node) bool {
+ path = append(path, node)
+
+ nodePos := node.Pos()
+ nodeEnd := node.End()
+
+ // fmt.Printf("visit(%T, %d, %d)\n", node, nodePos, nodeEnd) // debugging
+
+ // Intersect [start, end) with interval of node.
+ if start < nodePos {
+ start = nodePos
+ }
+ if end > nodeEnd {
+ end = nodeEnd
+ }
+
+ // Find sole child that contains [start, end).
+ children := childrenOf(node)
+ l := len(children)
+ for i, child := range children {
+ // [childPos, childEnd) is unaugmented interval of child.
+ childPos := child.Pos()
+ childEnd := child.End()
+
+ // [augPos, augEnd) is whitespace-augmented interval of child.
+ augPos := childPos
+ augEnd := childEnd
+ if i > 0 {
+ augPos = children[i-1].End() // start of preceding whitespace
+ }
+ if i < l-1 {
+ nextChildPos := children[i+1].Pos()
+ // Does [start, end) lie between child and next child?
+ if start >= augEnd && end <= nextChildPos {
+ return false // inexact match
+ }
+ augEnd = nextChildPos // end of following whitespace
+ }
+
+ // fmt.Printf("\tchild %d: [%d..%d)\tcontains interval [%d..%d)?\n",
+ // i, augPos, augEnd, start, end) // debugging
+
+ // Does augmented child strictly contain [start, end)?
+ if augPos <= start && end <= augEnd {
+ _, isToken := child.(tokenNode)
+ return isToken || visit(child)
+ }
+
+ // Does [start, end) overlap multiple children?
+ // i.e. left-augmented child contains start
+ // but LR-augmented child does not contain end.
+ if start < childEnd && end > augEnd {
+ break
+ }
+ }
+
+ // No single child contained [start, end),
+ // so node is the result. Is it exact?
+
+ // (It's tempting to put this condition before the
+ // child loop, but it gives the wrong result in the
+ // case where a node (e.g. ExprStmt) and its sole
+ // child have equal intervals.)
+ if start == nodePos && end == nodeEnd {
+ return true // exact match
+ }
+
+ return false // inexact: overlaps multiple children
+ }
+
+ if start > end {
+ start, end = end, start
+ }
+
+ if start < root.End() && end > root.Pos() {
+ if start == end {
+ end = start + 1 // empty interval => interval of size 1
+ }
+ exact = visit(root)
+
+ // Reverse the path:
+ for i, l := 0, len(path); i < l/2; i++ {
+ path[i], path[l-1-i] = path[l-1-i], path[i]
+ }
+ } else {
+ // Selection lies within whitespace preceding the
+ // first (or following the last) declaration in the file.
+ // The result nonetheless always includes the ast.File.
+ path = append(path, root)
+ }
+
+ return
+}
+
+// tokenNode is a dummy implementation of ast.Node for a single token.
+// They are used transiently by PathEnclosingInterval but never escape
+// this package.
+//
+type tokenNode struct {
+ pos token.Pos
+ end token.Pos
+}
+
+func (n tokenNode) Pos() token.Pos {
+ return n.pos
+}
+
+func (n tokenNode) End() token.Pos {
+ return n.end
+}
+
+func tok(pos token.Pos, len int) ast.Node {
+ return tokenNode{pos, pos + token.Pos(len)}
+}
+
+// childrenOf returns the direct non-nil children of ast.Node n.
+// It may include fake ast.Node implementations for bare tokens.
+// it is not safe to call (e.g.) ast.Walk on such nodes.
+//
+func childrenOf(n ast.Node) []ast.Node {
+ var children []ast.Node
+
+ // First add nodes for all true subtrees.
+ ast.Inspect(n, func(node ast.Node) bool {
+ if node == n { // push n
+ return true // recur
+ }
+ if node != nil { // push child
+ children = append(children, node)
+ }
+ return false // no recursion
+ })
+
+ // Then add fake Nodes for bare tokens.
+ switch n := n.(type) {
+ case *ast.ArrayType:
+ children = append(children,
+ tok(n.Lbrack, len("[")),
+ tok(n.Elt.End(), len("]")))
+
+ case *ast.AssignStmt:
+ children = append(children,
+ tok(n.TokPos, len(n.Tok.String())))
+
+ case *ast.BasicLit:
+ children = append(children,
+ tok(n.ValuePos, len(n.Value)))
+
+ case *ast.BinaryExpr:
+ children = append(children, tok(n.OpPos, len(n.Op.String())))
+
+ case *ast.BlockStmt:
+ children = append(children,
+ tok(n.Lbrace, len("{")),
+ tok(n.Rbrace, len("}")))
+
+ case *ast.BranchStmt:
+ children = append(children,
+ tok(n.TokPos, len(n.Tok.String())))
+
+ case *ast.CallExpr:
+ children = append(children,
+ tok(n.Lparen, len("(")),
+ tok(n.Rparen, len(")")))
+ if n.Ellipsis != 0 {
+ children = append(children, tok(n.Ellipsis, len("...")))
+ }
+
+ case *ast.CaseClause:
+ if n.List == nil {
+ children = append(children,
+ tok(n.Case, len("default")))
+ } else {
+ children = append(children,
+ tok(n.Case, len("case")))
+ }
+ children = append(children, tok(n.Colon, len(":")))
+
+ case *ast.ChanType:
+ switch n.Dir {
+ case ast.RECV:
+ children = append(children, tok(n.Begin, len("<-chan")))
+ case ast.SEND:
+ children = append(children, tok(n.Begin, len("chan<-")))
+ case ast.RECV | ast.SEND:
+ children = append(children, tok(n.Begin, len("chan")))
+ }
+
+ case *ast.CommClause:
+ if n.Comm == nil {
+ children = append(children,
+ tok(n.Case, len("default")))
+ } else {
+ children = append(children,
+ tok(n.Case, len("case")))
+ }
+ children = append(children, tok(n.Colon, len(":")))
+
+ case *ast.Comment:
+ // nop
+
+ case *ast.CommentGroup:
+ // nop
+
+ case *ast.CompositeLit:
+ children = append(children,
+ tok(n.Lbrace, len("{")),
+ tok(n.Rbrace, len("{")))
+
+ case *ast.DeclStmt:
+ // nop
+
+ case *ast.DeferStmt:
+ children = append(children,
+ tok(n.Defer, len("defer")))
+
+ case *ast.Ellipsis:
+ children = append(children,
+ tok(n.Ellipsis, len("...")))
+
+ case *ast.EmptyStmt:
+ // nop
+
+ case *ast.ExprStmt:
+ // nop
+
+ case *ast.Field:
+ // TODO(adonovan): Field.{Doc,Comment,Tag}?
+
+ case *ast.FieldList:
+ children = append(children,
+ tok(n.Opening, len("(")),
+ tok(n.Closing, len(")")))
+
+ case *ast.File:
+ // TODO test: Doc
+ children = append(children,
+ tok(n.Package, len("package")))
+
+ case *ast.ForStmt:
+ children = append(children,
+ tok(n.For, len("for")))
+
+ case *ast.FuncDecl:
+ // TODO(adonovan): FuncDecl.Comment?
+
+ // Uniquely, FuncDecl breaks the invariant that
+ // preorder traversal yields tokens in lexical order:
+ // in fact, FuncDecl.Recv precedes FuncDecl.Type.Func.
+ //
+ // As a workaround, we inline the case for FuncType
+ // here and order things correctly.
+ //
+ children = nil // discard ast.Walk(FuncDecl) info subtrees
+ children = append(children, tok(n.Type.Func, len("func")))
+ if n.Recv != nil {
+ children = append(children, n.Recv)
+ }
+ children = append(children, n.Name)
+ if n.Type.Params != nil {
+ children = append(children, n.Type.Params)
+ }
+ if n.Type.Results != nil {
+ children = append(children, n.Type.Results)
+ }
+ if n.Body != nil {
+ children = append(children, n.Body)
+ }
+
+ case *ast.FuncLit:
+ // nop
+
+ case *ast.FuncType:
+ if n.Func != 0 {
+ children = append(children,
+ tok(n.Func, len("func")))
+ }
+
+ case *ast.GenDecl:
+ children = append(children,
+ tok(n.TokPos, len(n.Tok.String())))
+ if n.Lparen != 0 {
+ children = append(children,
+ tok(n.Lparen, len("(")),
+ tok(n.Rparen, len(")")))
+ }
+
+ case *ast.GoStmt:
+ children = append(children,
+ tok(n.Go, len("go")))
+
+ case *ast.Ident:
+ children = append(children,
+ tok(n.NamePos, len(n.Name)))
+
+ case *ast.IfStmt:
+ children = append(children,
+ tok(n.If, len("if")))
+
+ case *ast.ImportSpec:
+ // TODO(adonovan): ImportSpec.{Doc,EndPos}?
+
+ case *ast.IncDecStmt:
+ children = append(children,
+ tok(n.TokPos, len(n.Tok.String())))
+
+ case *ast.IndexExpr:
+ children = append(children,
+ tok(n.Lbrack, len("{")),
+ tok(n.Rbrack, len("}")))
+
+ case *ast.InterfaceType:
+ children = append(children,
+ tok(n.Interface, len("interface")))
+
+ case *ast.KeyValueExpr:
+ children = append(children,
+ tok(n.Colon, len(":")))
+
+ case *ast.LabeledStmt:
+ children = append(children,
+ tok(n.Colon, len(":")))
+
+ case *ast.MapType:
+ children = append(children,
+ tok(n.Map, len("map")))
+
+ case *ast.ParenExpr:
+ children = append(children,
+ tok(n.Lparen, len("(")),
+ tok(n.Rparen, len(")")))
+
+ case *ast.RangeStmt:
+ children = append(children,
+ tok(n.For, len("for")),
+ tok(n.TokPos, len(n.Tok.String())))
+
+ case *ast.ReturnStmt:
+ children = append(children,
+ tok(n.Return, len("return")))
+
+ case *ast.SelectStmt:
+ children = append(children,
+ tok(n.Select, len("select")))
+
+ case *ast.SelectorExpr:
+ // nop
+
+ case *ast.SendStmt:
+ children = append(children,
+ tok(n.Arrow, len("<-")))
+
+ case *ast.SliceExpr:
+ children = append(children,
+ tok(n.Lbrack, len("[")),
+ tok(n.Rbrack, len("]")))
+
+ case *ast.StarExpr:
+ children = append(children, tok(n.Star, len("*")))
+
+ case *ast.StructType:
+ children = append(children, tok(n.Struct, len("struct")))
+
+ case *ast.SwitchStmt:
+ children = append(children, tok(n.Switch, len("switch")))
+
+ case *ast.TypeAssertExpr:
+ children = append(children,
+ tok(n.Lparen-1, len(".")),
+ tok(n.Lparen, len("(")),
+ tok(n.Rparen, len(")")))
+
+ case *ast.TypeSpec:
+ // TODO(adonovan): TypeSpec.{Doc,Comment}?
+
+ case *ast.TypeSwitchStmt:
+ children = append(children, tok(n.Switch, len("switch")))
+
+ case *ast.UnaryExpr:
+ children = append(children, tok(n.OpPos, len(n.Op.String())))
+
+ case *ast.ValueSpec:
+ // TODO(adonovan): ValueSpec.{Doc,Comment}?
+
+ case *ast.BadDecl, *ast.BadExpr, *ast.BadStmt:
+ // nop
+ }
+
+ // TODO(adonovan): opt: merge the logic of ast.Inspect() into
+ // the switch above so we can make interleaved callbacks for
+ // both Nodes and Tokens in the right order and avoid the need
+ // to sort.
+ sort.Sort(byPos(children))
+
+ return children
+}
+
+type byPos []ast.Node
+
+func (sl byPos) Len() int {
+ return len(sl)
+}
+func (sl byPos) Less(i, j int) bool {
+ return sl[i].Pos() < sl[j].Pos()
+}
+func (sl byPos) Swap(i, j int) {
+ sl[i], sl[j] = sl[j], sl[i]
+}
+
+// NodeDescription returns a description of the concrete type of n suitable
+// for a user interface.
+//
+// TODO(adonovan): in some cases (e.g. Field, FieldList, Ident,
+// StarExpr) we could be much more specific given the path to the AST
+// root. Perhaps we should do that.
+//
+func NodeDescription(n ast.Node) string {
+ switch n := n.(type) {
+ case *ast.ArrayType:
+ return "array type"
+ case *ast.AssignStmt:
+ return "assignment"
+ case *ast.BadDecl:
+ return "bad declaration"
+ case *ast.BadExpr:
+ return "bad expression"
+ case *ast.BadStmt:
+ return "bad statement"
+ case *ast.BasicLit:
+ return "basic literal"
+ case *ast.BinaryExpr:
+ return fmt.Sprintf("binary %s operation", n.Op)
+ case *ast.BlockStmt:
+ return "block"
+ case *ast.BranchStmt:
+ switch n.Tok {
+ case token.BREAK:
+ return "break statement"
+ case token.CONTINUE:
+ return "continue statement"
+ case token.GOTO:
+ return "goto statement"
+ case token.FALLTHROUGH:
+ return "fall-through statement"
+ }
+ case *ast.CallExpr:
+ if len(n.Args) == 1 && !n.Ellipsis.IsValid() {
+ return "function call (or conversion)"
+ }
+ return "function call"
+ case *ast.CaseClause:
+ return "case clause"
+ case *ast.ChanType:
+ return "channel type"
+ case *ast.CommClause:
+ return "communication clause"
+ case *ast.Comment:
+ return "comment"
+ case *ast.CommentGroup:
+ return "comment group"
+ case *ast.CompositeLit:
+ return "composite literal"
+ case *ast.DeclStmt:
+ return NodeDescription(n.Decl) + " statement"
+ case *ast.DeferStmt:
+ return "defer statement"
+ case *ast.Ellipsis:
+ return "ellipsis"
+ case *ast.EmptyStmt:
+ return "empty statement"
+ case *ast.ExprStmt:
+ return "expression statement"
+ case *ast.Field:
+ // Can be any of these:
+ // struct {x, y int} -- struct field(s)
+ // struct {T} -- anon struct field
+ // interface {I} -- interface embedding
+ // interface {f()} -- interface method
+ // func (A) func(B) C -- receiver, param(s), result(s)
+ return "field/method/parameter"
+ case *ast.FieldList:
+ return "field/method/parameter list"
+ case *ast.File:
+ return "source file"
+ case *ast.ForStmt:
+ return "for loop"
+ case *ast.FuncDecl:
+ return "function declaration"
+ case *ast.FuncLit:
+ return "function literal"
+ case *ast.FuncType:
+ return "function type"
+ case *ast.GenDecl:
+ switch n.Tok {
+ case token.IMPORT:
+ return "import declaration"
+ case token.CONST:
+ return "constant declaration"
+ case token.TYPE:
+ return "type declaration"
+ case token.VAR:
+ return "variable declaration"
+ }
+ case *ast.GoStmt:
+ return "go statement"
+ case *ast.Ident:
+ return "identifier"
+ case *ast.IfStmt:
+ return "if statement"
+ case *ast.ImportSpec:
+ return "import specification"
+ case *ast.IncDecStmt:
+ if n.Tok == token.INC {
+ return "increment statement"
+ }
+ return "decrement statement"
+ case *ast.IndexExpr:
+ return "index expression"
+ case *ast.InterfaceType:
+ return "interface type"
+ case *ast.KeyValueExpr:
+ return "key/value association"
+ case *ast.LabeledStmt:
+ return "statement label"
+ case *ast.MapType:
+ return "map type"
+ case *ast.Package:
+ return "package"
+ case *ast.ParenExpr:
+ return "parenthesized " + NodeDescription(n.X)
+ case *ast.RangeStmt:
+ return "range loop"
+ case *ast.ReturnStmt:
+ return "return statement"
+ case *ast.SelectStmt:
+ return "select statement"
+ case *ast.SelectorExpr:
+ return "selector"
+ case *ast.SendStmt:
+ return "channel send"
+ case *ast.SliceExpr:
+ return "slice expression"
+ case *ast.StarExpr:
+ return "*-operation" // load/store expr or pointer type
+ case *ast.StructType:
+ return "struct type"
+ case *ast.SwitchStmt:
+ return "switch statement"
+ case *ast.TypeAssertExpr:
+ return "type assertion"
+ case *ast.TypeSpec:
+ return "type specification"
+ case *ast.TypeSwitchStmt:
+ return "type switch"
+ case *ast.UnaryExpr:
+ return fmt.Sprintf("unary %s operation", n.Op)
+ case *ast.ValueSpec:
+ return "value specification"
+
+ }
+ panic(fmt.Sprintf("unexpected node type: %T", n))
+}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go
new file mode 100644
index 000000000..2e81f4d3a
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go
@@ -0,0 +1,449 @@
+// 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 astutil contains common utilities for working with the Go AST.
+package astutil // import "golang.org/x/tools/go/ast/astutil"
+
+import (
+ "fmt"
+ "go/ast"
+ "go/token"
+ "strconv"
+ "strings"
+)
+
+// AddImport adds the import path to the file f, if absent.
+func AddImport(fset *token.FileSet, f *ast.File, ipath string) (added bool) {
+ return AddNamedImport(fset, f, "", ipath)
+}
+
+// AddNamedImport adds the import path to the file f, if absent.
+// If name is not empty, it is used to rename the import.
+//
+// For example, calling
+// AddNamedImport(fset, f, "pathpkg", "path")
+// adds
+// import pathpkg "path"
+func AddNamedImport(fset *token.FileSet, f *ast.File, name, ipath string) (added bool) {
+ if imports(f, ipath) {
+ return false
+ }
+
+ newImport := &ast.ImportSpec{
+ Path: &ast.BasicLit{
+ Kind: token.STRING,
+ Value: strconv.Quote(ipath),
+ },
+ }
+ if name != "" {
+ newImport.Name = &ast.Ident{Name: name}
+ }
+
+ // Find an import decl to add to.
+ // The goal is to find an existing import
+ // whose import path has the longest shared
+ // prefix with ipath.
+ var (
+ bestMatch = -1 // length of longest shared prefix
+ lastImport = -1 // index in f.Decls of the file's final import decl
+ impDecl *ast.GenDecl // import decl containing the best match
+ impIndex = -1 // spec index in impDecl containing the best match
+ )
+ for i, decl := range f.Decls {
+ gen, ok := decl.(*ast.GenDecl)
+ if ok && gen.Tok == token.IMPORT {
+ lastImport = i
+ // Do not add to import "C", to avoid disrupting the
+ // association with its doc comment, breaking cgo.
+ if declImports(gen, "C") {
+ continue
+ }
+
+ // Match an empty import decl if that's all that is available.
+ if len(gen.Specs) == 0 && bestMatch == -1 {
+ impDecl = gen
+ }
+
+ // Compute longest shared prefix with imports in this group.
+ for j, spec := range gen.Specs {
+ impspec := spec.(*ast.ImportSpec)
+ n := matchLen(importPath(impspec), ipath)
+ if n > bestMatch {
+ bestMatch = n
+ impDecl = gen
+ impIndex = j
+ }
+ }
+ }
+ }
+
+ // If no import decl found, add one after the last import.
+ if impDecl == nil {
+ impDecl = &ast.GenDecl{
+ Tok: token.IMPORT,
+ }
+ if lastImport >= 0 {
+ impDecl.TokPos = f.Decls[lastImport].End()
+ } else {
+ // There are no existing imports.
+ // Our new import goes after the package declaration and after
+ // the comment, if any, that starts on the same line as the
+ // package declaration.
+ impDecl.TokPos = f.Package
+
+ file := fset.File(f.Package)
+ pkgLine := file.Line(f.Package)
+ for _, c := range f.Comments {
+ if file.Line(c.Pos()) > pkgLine {
+ break
+ }
+ impDecl.TokPos = c.End()
+ }
+ }
+ f.Decls = append(f.Decls, nil)
+ copy(f.Decls[lastImport+2:], f.Decls[lastImport+1:])
+ f.Decls[lastImport+1] = impDecl
+ }
+
+ // Insert new import at insertAt.
+ insertAt := 0
+ if impIndex >= 0 {
+ // insert after the found import
+ insertAt = impIndex + 1
+ }
+ impDecl.Specs = append(impDecl.Specs, nil)
+ copy(impDecl.Specs[insertAt+1:], impDecl.Specs[insertAt:])
+ impDecl.Specs[insertAt] = newImport
+ pos := impDecl.Pos()
+ if insertAt > 0 {
+ // If there is a comment after an existing import, preserve the comment
+ // position by adding the new import after the comment.
+ if spec, ok := impDecl.Specs[insertAt-1].(*ast.ImportSpec); ok && spec.Comment != nil {
+ pos = spec.Comment.End()
+ } else {
+ // Assign same position as the previous import,
+ // so that the sorter sees it as being in the same block.
+ pos = impDecl.Specs[insertAt-1].Pos()
+ }
+ }
+ if newImport.Name != nil {
+ newImport.Name.NamePos = pos
+ }
+ newImport.Path.ValuePos = pos
+ newImport.EndPos = pos
+
+ // Clean up parens. impDecl contains at least one spec.
+ if len(impDecl.Specs) == 1 {
+ // Remove unneeded parens.
+ impDecl.Lparen = token.NoPos
+ } else if !impDecl.Lparen.IsValid() {
+ // impDecl needs parens added.
+ impDecl.Lparen = impDecl.Specs[0].Pos()
+ }
+
+ f.Imports = append(f.Imports, newImport)
+
+ if len(f.Decls) <= 1 {
+ return true
+ }
+
+ // Merge all the import declarations into the first one.
+ var first *ast.GenDecl
+ for i := 0; i < len(f.Decls); i++ {
+ decl := f.Decls[i]
+ gen, ok := decl.(*ast.GenDecl)
+ if !ok || gen.Tok != token.IMPORT || declImports(gen, "C") {
+ continue
+ }
+ if first == nil {
+ first = gen
+ continue // Don't touch the first one.
+ }
+ // We now know there is more than one package in this import
+ // declaration. Ensure that it ends up parenthesized.
+ first.Lparen = first.Pos()
+ // Move the imports of the other import declaration to the first one.
+ for _, spec := range gen.Specs {
+ spec.(*ast.ImportSpec).Path.ValuePos = first.Pos()
+ first.Specs = append(first.Specs, spec)
+ }
+ f.Decls = append(f.Decls[:i], f.Decls[i+1:]...)
+ i--
+ }
+
+ return true
+}
+
+// DeleteImport deletes the import path from the file f, if present.
+func DeleteImport(fset *token.FileSet, f *ast.File, path string) (deleted bool) {
+ return DeleteNamedImport(fset, f, "", path)
+}
+
+// DeleteNamedImport deletes the import with the given name and path from the file f, if present.
+func DeleteNamedImport(fset *token.FileSet, f *ast.File, name, path string) (deleted bool) {
+ var delspecs []*ast.ImportSpec
+ var delcomments []*ast.CommentGroup
+
+ // Find the import nodes that import path, if any.
+ for i := 0; i < len(f.Decls); i++ {
+ decl := f.Decls[i]
+ gen, ok := decl.(*ast.GenDecl)
+ if !ok || gen.Tok != token.IMPORT {
+ continue
+ }
+ for j := 0; j < len(gen.Specs); j++ {
+ spec := gen.Specs[j]
+ impspec := spec.(*ast.ImportSpec)
+ if impspec.Name == nil && name != "" {
+ continue
+ }
+ if impspec.Name != nil && impspec.Name.Name != name {
+ continue
+ }
+ if importPath(impspec) != path {
+ continue
+ }
+
+ // We found an import spec that imports path.
+ // Delete it.
+ delspecs = append(delspecs, impspec)
+ deleted = true
+ copy(gen.Specs[j:], gen.Specs[j+1:])
+ gen.Specs = gen.Specs[:len(gen.Specs)-1]
+
+ // If this was the last import spec in this decl,
+ // delete the decl, too.
+ if len(gen.Specs) == 0 {
+ copy(f.Decls[i:], f.Decls[i+1:])
+ f.Decls = f.Decls[:len(f.Decls)-1]
+ i--
+ break
+ } else if len(gen.Specs) == 1 {
+ if impspec.Doc != nil {
+ delcomments = append(delcomments, impspec.Doc)
+ }
+ if impspec.Comment != nil {
+ delcomments = append(delcomments, impspec.Comment)
+ }
+ for _, cg := range f.Comments {
+ // Found comment on the same line as the import spec.
+ if cg.End() < impspec.Pos() && fset.Position(cg.End()).Line == fset.Position(impspec.Pos()).Line {
+ delcomments = append(delcomments, cg)
+ break
+ }
+ }
+
+ gen.Lparen = token.NoPos // drop parens
+ spec := gen.Specs[0].(*ast.ImportSpec)
+ if spec.Doc != nil {
+ // Move the documentation above the import statement.
+ gen.TokPos = spec.Doc.End() + 1
+ }
+
+ for _, cg := range f.Comments {
+ if cg.End() < spec.Pos() && fset.Position(cg.End()).Line == fset.Position(spec.Pos()).Line {
+ for fset.Position(gen.TokPos).Line != fset.Position(spec.Pos()).Line {
+ fset.File(gen.TokPos).MergeLine(fset.Position(gen.TokPos).Line)
+ }
+ break
+ }
+ }
+ }
+ if j > 0 {
+ lastImpspec := gen.Specs[j-1].(*ast.ImportSpec)
+ lastLine := fset.Position(lastImpspec.Path.ValuePos).Line
+ line := fset.Position(impspec.Path.ValuePos).Line
+
+ // We deleted an entry but now there may be
+ // a blank line-sized hole where the import was.
+ if line-lastLine > 1 {
+ // There was a blank line immediately preceding the deleted import,
+ // so there's no need to close the hole.
+ // Do nothing.
+ } else {
+ // There was no blank line. Close the hole.
+ fset.File(gen.Rparen).MergeLine(line)
+ }
+ }
+ j--
+ }
+ }
+
+ // Delete imports from f.Imports.
+ for i := 0; i < len(f.Imports); i++ {
+ imp := f.Imports[i]
+ for j, del := range delspecs {
+ if imp == del {
+ copy(f.Imports[i:], f.Imports[i+1:])
+ f.Imports = f.Imports[:len(f.Imports)-1]
+ copy(delspecs[j:], delspecs[j+1:])
+ delspecs = delspecs[:len(delspecs)-1]
+ i--
+ break
+ }
+ }
+ }
+
+ // Delete comments from f.Comments.
+ for i := 0; i < len(f.Comments); i++ {
+ cg := f.Comments[i]
+ for j, del := range delcomments {
+ if cg == del {
+ copy(f.Comments[i:], f.Comments[i+1:])
+ f.Comments = f.Comments[:len(f.Comments)-1]
+ copy(delcomments[j:], delcomments[j+1:])
+ delcomments = delcomments[:len(delcomments)-1]
+ i--
+ break
+ }
+ }
+ }
+
+ if len(delspecs) > 0 {
+ panic(fmt.Sprintf("deleted specs from Decls but not Imports: %v", delspecs))
+ }
+
+ return
+}
+
+// RewriteImport rewrites any import of path oldPath to path newPath.
+func RewriteImport(fset *token.FileSet, f *ast.File, oldPath, newPath string) (rewrote bool) {
+ for _, imp := range f.Imports {
+ if importPath(imp) == oldPath {
+ rewrote = true
+ // record old End, because the default is to compute
+ // it using the length of imp.Path.Value.
+ imp.EndPos = imp.End()
+ imp.Path.Value = strconv.Quote(newPath)
+ }
+ }
+ return
+}
+
+// UsesImport reports whether a given import is used.
+func UsesImport(f *ast.File, path string) (used bool) {
+ spec := importSpec(f, path)
+ if spec == nil {
+ return
+ }
+
+ name := spec.Name.String()
+ switch name {
+ case "<nil>":
+ // If the package name is not explicitly specified,
+ // make an educated guess. This is not guaranteed to be correct.
+ lastSlash := strings.LastIndex(path, "/")
+ if lastSlash == -1 {
+ name = path
+ } else {
+ name = path[lastSlash+1:]
+ }
+ case "_", ".":
+ // Not sure if this import is used - err on the side of caution.
+ return true
+ }
+
+ ast.Walk(visitFn(func(n ast.Node) {
+ sel, ok := n.(*ast.SelectorExpr)
+ if ok && isTopName(sel.X, name) {
+ used = true
+ }
+ }), f)
+
+ return
+}
+
+type visitFn func(node ast.Node)
+
+func (fn visitFn) Visit(node ast.Node) ast.Visitor {
+ fn(node)
+ return fn
+}
+
+// imports returns true if f imports path.
+func imports(f *ast.File, path string) bool {
+ return importSpec(f, path) != nil
+}
+
+// importSpec returns the import spec if f imports path,
+// or nil otherwise.
+func importSpec(f *ast.File, path string) *ast.ImportSpec {
+ for _, s := range f.Imports {
+ if importPath(s) == path {
+ return s
+ }
+ }
+ return nil
+}
+
+// importPath returns the unquoted import path of s,
+// or "" if the path is not properly quoted.
+func importPath(s *ast.ImportSpec) string {
+ t, err := strconv.Unquote(s.Path.Value)
+ if err == nil {
+ return t
+ }
+ return ""
+}
+
+// declImports reports whether gen contains an import of path.
+func declImports(gen *ast.GenDecl, path string) bool {
+ if gen.Tok != token.IMPORT {
+ return false
+ }
+ for _, spec := range gen.Specs {
+ impspec := spec.(*ast.ImportSpec)
+ if importPath(impspec) == path {
+ return true
+ }
+ }
+ return false
+}
+
+// matchLen returns the length of the longest path segment prefix shared by x and y.
+func matchLen(x, y string) int {
+ n := 0
+ for i := 0; i < len(x) && i < len(y) && x[i] == y[i]; i++ {
+ if x[i] == '/' {
+ n++
+ }
+ }
+ return n
+}
+
+// isTopName returns true if n is a top-level unresolved identifier with the given name.
+func isTopName(n ast.Expr, name string) bool {
+ id, ok := n.(*ast.Ident)
+ return ok && id.Name == name && id.Obj == nil
+}
+
+// Imports returns the file imports grouped by paragraph.
+func Imports(fset *token.FileSet, f *ast.File) [][]*ast.ImportSpec {
+ var groups [][]*ast.ImportSpec
+
+ for _, decl := range f.Decls {
+ genDecl, ok := decl.(*ast.GenDecl)
+ if !ok || genDecl.Tok != token.IMPORT {
+ break
+ }
+
+ group := []*ast.ImportSpec{}
+
+ var lastLine int
+ for _, spec := range genDecl.Specs {
+ importSpec := spec.(*ast.ImportSpec)
+ pos := importSpec.Path.ValuePos
+ line := fset.Position(pos).Line
+ if lastLine > 0 && pos > 0 && line-lastLine > 1 {
+ groups = append(groups, group)
+ group = []*ast.ImportSpec{}
+ }
+ group = append(group, importSpec)
+ lastLine = line
+ }
+ groups = append(groups, group)
+ }
+
+ return groups
+}
diff --git a/vendor/golang.org/x/tools/go/ast/astutil/util.go b/vendor/golang.org/x/tools/go/ast/astutil/util.go
new file mode 100644
index 000000000..763062982
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/ast/astutil/util.go
@@ -0,0 +1,14 @@
+package astutil
+
+import "go/ast"
+
+// Unparen returns e with any enclosing parentheses stripped.
+func Unparen(e ast.Expr) ast.Expr {
+ for {
+ p, ok := e.(*ast.ParenExpr)
+ if !ok {
+ return e
+ }
+ e = p.X
+ }
+}
diff --git a/vendor/golang.org/x/tools/imports/fastwalk.go b/vendor/golang.org/x/tools/imports/fastwalk.go
new file mode 100644
index 000000000..157c79225
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fastwalk.go
@@ -0,0 +1,172 @@
+// 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.
+
+// A faster implementation of filepath.Walk.
+//
+// filepath.Walk's design necessarily calls os.Lstat on each file,
+// even if the caller needs less info. And goimports only need to know
+// the type of each file. The kernel interface provides the type in
+// the Readdir call but the standard library ignored it.
+// fastwalk_unix.go contains a fork of the syscall routines.
+//
+// See golang.org/issue/16399
+
+package imports
+
+import (
+ "errors"
+ "os"
+ "path/filepath"
+ "runtime"
+)
+
+// traverseLink is a sentinel error for fastWalk, similar to filepath.SkipDir.
+var traverseLink = errors.New("traverse symlink, assuming target is a directory")
+
+// fastWalk walks the file tree rooted at root, calling walkFn for
+// each file or directory in the tree, including root.
+//
+// If fastWalk returns filepath.SkipDir, the directory is skipped.
+//
+// Unlike filepath.Walk:
+// * file stat calls must be done by the user.
+// The only provided metadata is the file type, which does not include
+// any permission bits.
+// * multiple goroutines stat the filesystem concurrently. The provided
+// walkFn must be safe for concurrent use.
+// * fastWalk can follow symlinks if walkFn returns the traverseLink
+// sentinel error. It is the walkFn's responsibility to prevent
+// fastWalk from going into symlink cycles.
+func fastWalk(root string, walkFn func(path string, typ os.FileMode) error) error {
+ // TODO(bradfitz): make numWorkers configurable? We used a
+ // minimum of 4 to give the kernel more info about multiple
+ // things we want, in hopes its I/O scheduling can take
+ // advantage of that. Hopefully most are in cache. Maybe 4 is
+ // even too low of a minimum. Profile more.
+ numWorkers := 4
+ if n := runtime.NumCPU(); n > numWorkers {
+ numWorkers = n
+ }
+ w := &walker{
+ fn: walkFn,
+ enqueuec: make(chan walkItem, numWorkers), // buffered for performance
+ workc: make(chan walkItem, numWorkers), // buffered for performance
+ donec: make(chan struct{}),
+
+ // buffered for correctness & not leaking goroutines:
+ resc: make(chan error, numWorkers),
+ }
+ defer close(w.donec)
+ // TODO(bradfitz): start the workers as needed? maybe not worth it.
+ for i := 0; i < numWorkers; i++ {
+ go w.doWork()
+ }
+ todo := []walkItem{{dir: root}}
+ out := 0
+ for {
+ workc := w.workc
+ var workItem walkItem
+ if len(todo) == 0 {
+ workc = nil
+ } else {
+ workItem = todo[len(todo)-1]
+ }
+ select {
+ case workc <- workItem:
+ todo = todo[:len(todo)-1]
+ out++
+ case it := <-w.enqueuec:
+ todo = append(todo, it)
+ case err := <-w.resc:
+ out--
+ if err != nil {
+ return err
+ }
+ if out == 0 && len(todo) == 0 {
+ // It's safe to quit here, as long as the buffered
+ // enqueue channel isn't also readable, which might
+ // happen if the worker sends both another unit of
+ // work and its result before the other select was
+ // scheduled and both w.resc and w.enqueuec were
+ // readable.
+ select {
+ case it := <-w.enqueuec:
+ todo = append(todo, it)
+ default:
+ return nil
+ }
+ }
+ }
+ }
+}
+
+// doWork reads directories as instructed (via workc) and runs the
+// user's callback function.
+func (w *walker) doWork() {
+ for {
+ select {
+ case <-w.donec:
+ return
+ case it := <-w.workc:
+ w.resc <- w.walk(it.dir, !it.callbackDone)
+ }
+ }
+}
+
+type walker struct {
+ fn func(path string, typ os.FileMode) error
+
+ donec chan struct{} // closed on fastWalk's return
+ workc chan walkItem // to workers
+ enqueuec chan walkItem // from workers
+ resc chan error // from workers
+}
+
+type walkItem struct {
+ dir string
+ callbackDone bool // callback already called; don't do it again
+}
+
+func (w *walker) enqueue(it walkItem) {
+ select {
+ case w.enqueuec <- it:
+ case <-w.donec:
+ }
+}
+
+func (w *walker) onDirEnt(dirName, baseName string, typ os.FileMode) error {
+ joined := dirName + string(os.PathSeparator) + baseName
+ if typ == os.ModeDir {
+ w.enqueue(walkItem{dir: joined})
+ return nil
+ }
+
+ err := w.fn(joined, typ)
+ if typ == os.ModeSymlink {
+ if err == traverseLink {
+ // Set callbackDone so we don't call it twice for both the
+ // symlink-as-symlink and the symlink-as-directory later:
+ w.enqueue(walkItem{dir: joined, callbackDone: true})
+ return nil
+ }
+ if err == filepath.SkipDir {
+ // Permit SkipDir on symlinks too.
+ return nil
+ }
+ }
+ return err
+}
+func (w *walker) walk(root string, runUserCallback bool) error {
+ if runUserCallback {
+ err := w.fn(root, os.ModeDir)
+ if err == filepath.SkipDir {
+ return nil
+ }
+ if err != nil {
+ return err
+ }
+ }
+
+ return readDir(root, w.onDirEnt)
+}
diff --git a/vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go b/vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go
new file mode 100644
index 000000000..f1fd64949
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fastwalk_dirent_fileno.go
@@ -0,0 +1,13 @@
+// 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 freebsd openbsd netbsd
+
+package imports
+
+import "syscall"
+
+func direntInode(dirent *syscall.Dirent) uint64 {
+ return uint64(dirent.Fileno)
+}
diff --git a/vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go b/vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go
new file mode 100644
index 000000000..ee85bc4dd
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fastwalk_dirent_ino.go
@@ -0,0 +1,13 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux,!appengine darwin
+
+package imports
+
+import "syscall"
+
+func direntInode(dirent *syscall.Dirent) uint64 {
+ return uint64(dirent.Ino)
+}
diff --git a/vendor/golang.org/x/tools/imports/fastwalk_portable.go b/vendor/golang.org/x/tools/imports/fastwalk_portable.go
new file mode 100644
index 000000000..6c2658347
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fastwalk_portable.go
@@ -0,0 +1,29 @@
+// 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 appengine !linux,!darwin,!freebsd,!openbsd,!netbsd
+
+package imports
+
+import (
+ "io/ioutil"
+ "os"
+)
+
+// readDir calls fn for each directory entry in dirName.
+// It does not descend into directories or follow symlinks.
+// If fn returns a non-nil error, readDir returns with that error
+// immediately.
+func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) error) error {
+ fis, err := ioutil.ReadDir(dirName)
+ if err != nil {
+ return err
+ }
+ for _, fi := range fis {
+ if err := fn(dirName, fi.Name(), fi.Mode()&os.ModeType); err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/golang.org/x/tools/imports/fastwalk_unix.go b/vendor/golang.org/x/tools/imports/fastwalk_unix.go
new file mode 100644
index 000000000..5854233db
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fastwalk_unix.go
@@ -0,0 +1,122 @@
+// Copyright 2016 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build linux,!appengine darwin freebsd openbsd netbsd
+
+package imports
+
+import (
+ "bytes"
+ "fmt"
+ "os"
+ "syscall"
+ "unsafe"
+)
+
+const blockSize = 8 << 10
+
+// unknownFileMode is a sentinel (and bogus) os.FileMode
+// value used to represent a syscall.DT_UNKNOWN Dirent.Type.
+const unknownFileMode os.FileMode = os.ModeNamedPipe | os.ModeSocket | os.ModeDevice
+
+func readDir(dirName string, fn func(dirName, entName string, typ os.FileMode) error) error {
+ fd, err := syscall.Open(dirName, 0, 0)
+ if err != nil {
+ return err
+ }
+ defer syscall.Close(fd)
+
+ // The buffer must be at least a block long.
+ buf := make([]byte, blockSize) // stack-allocated; doesn't escape
+ bufp := 0 // starting read position in buf
+ nbuf := 0 // end valid data in buf
+ for {
+ if bufp >= nbuf {
+ bufp = 0
+ nbuf, err = syscall.ReadDirent(fd, buf)
+ if err != nil {
+ return os.NewSyscallError("readdirent", err)
+ }
+ if nbuf <= 0 {
+ return nil
+ }
+ }
+ consumed, name, typ := parseDirEnt(buf[bufp:nbuf])
+ bufp += consumed
+ if name == "" || name == "." || name == ".." {
+ continue
+ }
+ // Fallback for filesystems (like old XFS) that don't
+ // support Dirent.Type and have DT_UNKNOWN (0) there
+ // instead.
+ if typ == unknownFileMode {
+ fi, err := os.Lstat(dirName + "/" + name)
+ if err != nil {
+ // It got deleted in the meantime.
+ if os.IsNotExist(err) {
+ continue
+ }
+ return err
+ }
+ typ = fi.Mode() & os.ModeType
+ }
+ if err := fn(dirName, name, typ); err != nil {
+ return err
+ }
+ }
+}
+
+func parseDirEnt(buf []byte) (consumed int, name string, typ os.FileMode) {
+ // golang.org/issue/15653
+ dirent := (*syscall.Dirent)(unsafe.Pointer(&buf[0]))
+ if v := unsafe.Offsetof(dirent.Reclen) + unsafe.Sizeof(dirent.Reclen); uintptr(len(buf)) < v {
+ panic(fmt.Sprintf("buf size of %d smaller than dirent header size %d", len(buf), v))
+ }
+ if len(buf) < int(dirent.Reclen) {
+ panic(fmt.Sprintf("buf size %d < record length %d", len(buf), dirent.Reclen))
+ }
+ consumed = int(dirent.Reclen)
+ if direntInode(dirent) == 0 { // File absent in directory.
+ return
+ }
+ switch dirent.Type {
+ case syscall.DT_REG:
+ typ = 0
+ case syscall.DT_DIR:
+ typ = os.ModeDir
+ case syscall.DT_LNK:
+ typ = os.ModeSymlink
+ case syscall.DT_BLK:
+ typ = os.ModeDevice
+ case syscall.DT_FIFO:
+ typ = os.ModeNamedPipe
+ case syscall.DT_SOCK:
+ typ = os.ModeSocket
+ case syscall.DT_UNKNOWN:
+ typ = unknownFileMode
+ default:
+ // Skip weird things.
+ // It's probably a DT_WHT (http://lwn.net/Articles/325369/)
+ // or something. Revisit if/when this package is moved outside
+ // of goimports. goimports only cares about regular files,
+ // symlinks, and directories.
+ return
+ }
+
+ nameBuf := (*[unsafe.Sizeof(dirent.Name)]byte)(unsafe.Pointer(&dirent.Name[0]))
+ nameLen := bytes.IndexByte(nameBuf[:], 0)
+ if nameLen < 0 {
+ panic("failed to find terminating 0 byte in dirent")
+ }
+
+ // Special cases for common things:
+ if nameLen == 1 && nameBuf[0] == '.' {
+ name = "."
+ } else if nameLen == 2 && nameBuf[0] == '.' && nameBuf[1] == '.' {
+ name = ".."
+ } else {
+ name = string(nameBuf[:nameLen])
+ }
+ return
+}
diff --git a/vendor/golang.org/x/tools/imports/fix.go b/vendor/golang.org/x/tools/imports/fix.go
new file mode 100644
index 000000000..a241c2976
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/fix.go
@@ -0,0 +1,975 @@
+// 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 imports
+
+import (
+ "bufio"
+ "bytes"
+ "fmt"
+ "go/ast"
+ "go/build"
+ "go/parser"
+ "go/token"
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "path/filepath"
+ "sort"
+ "strings"
+ "sync"
+
+ "golang.org/x/tools/go/ast/astutil"
+)
+
+// Debug controls verbose logging.
+var Debug = false
+
+var (
+ inTests = false // set true by fix_test.go; if false, no need to use testMu
+ testMu sync.RWMutex // guards globals reset by tests; used only if inTests
+)
+
+// If set, LocalPrefix instructs Process to sort import paths with the given
+// prefix into another group after 3rd-party packages.
+var LocalPrefix string
+
+// importToGroup is a list of functions which map from an import path to
+// a group number.
+var importToGroup = []func(importPath string) (num int, ok bool){
+ func(importPath string) (num int, ok bool) {
+ if LocalPrefix != "" && strings.HasPrefix(importPath, LocalPrefix) {
+ return 3, true
+ }
+ return
+ },
+ func(importPath string) (num int, ok bool) {
+ if strings.HasPrefix(importPath, "appengine") {
+ return 2, true
+ }
+ return
+ },
+ func(importPath string) (num int, ok bool) {
+ if strings.Contains(importPath, ".") {
+ return 1, true
+ }
+ return
+ },
+}
+
+func importGroup(importPath string) int {
+ for _, fn := range importToGroup {
+ if n, ok := fn(importPath); ok {
+ return n
+ }
+ }
+ return 0
+}
+
+// packageInfo is a summary of features found in a package.
+type packageInfo struct {
+ Globals map[string]bool // symbol => true
+}
+
+// dirPackageInfo gets information from other files in the package.
+func dirPackageInfo(srcDir, filename string) (*packageInfo, error) {
+ considerTests := strings.HasSuffix(filename, "_test.go")
+
+ // Handle file from stdin
+ if _, err := os.Stat(filename); err != nil {
+ if os.IsNotExist(err) {
+ return &packageInfo{}, nil
+ }
+ return nil, err
+ }
+
+ fileBase := filepath.Base(filename)
+ packageFileInfos, err := ioutil.ReadDir(srcDir)
+ if err != nil {
+ return nil, err
+ }
+
+ info := &packageInfo{Globals: make(map[string]bool)}
+ for _, fi := range packageFileInfos {
+ if fi.Name() == fileBase || !strings.HasSuffix(fi.Name(), ".go") {
+ continue
+ }
+ if !considerTests && strings.HasSuffix(fi.Name(), "_test.go") {
+ continue
+ }
+
+ fileSet := token.NewFileSet()
+ root, err := parser.ParseFile(fileSet, filepath.Join(srcDir, fi.Name()), nil, 0)
+ if err != nil {
+ continue
+ }
+
+ for _, decl := range root.Decls {
+ genDecl, ok := decl.(*ast.GenDecl)
+ if !ok {
+ continue
+ }
+
+ for _, spec := range genDecl.Specs {
+ valueSpec, ok := spec.(*ast.ValueSpec)
+ if !ok {
+ continue
+ }
+ info.Globals[valueSpec.Names[0].Name] = true
+ }
+ }
+ }
+ return info, nil
+}
+
+func fixImports(fset *token.FileSet, f *ast.File, filename string) (added []string, err error) {
+ // refs are a set of possible package references currently unsatisfied by imports.
+ // first key: either base package (e.g. "fmt") or renamed package
+ // second key: referenced package symbol (e.g. "Println")
+ refs := make(map[string]map[string]bool)
+
+ // decls are the current package imports. key is base package or renamed package.
+ decls := make(map[string]*ast.ImportSpec)
+
+ abs, err := filepath.Abs(filename)
+ if err != nil {
+ return nil, err
+ }
+ srcDir := filepath.Dir(abs)
+ if Debug {
+ log.Printf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
+ }
+
+ var packageInfo *packageInfo
+ var loadedPackageInfo bool
+
+ // collect potential uses of packages.
+ var visitor visitFn
+ visitor = visitFn(func(node ast.Node) ast.Visitor {
+ if node == nil {
+ return visitor
+ }
+ switch v := node.(type) {
+ case *ast.ImportSpec:
+ if v.Name != nil {
+ decls[v.Name.Name] = v
+ break
+ }
+ ipath := strings.Trim(v.Path.Value, `"`)
+ if ipath == "C" {
+ break
+ }
+ local := importPathToName(ipath, srcDir)
+ decls[local] = v
+ case *ast.SelectorExpr:
+ xident, ok := v.X.(*ast.Ident)
+ if !ok {
+ break
+ }
+ if xident.Obj != nil {
+ // if the parser can resolve it, it's not a package ref
+ break
+ }
+ pkgName := xident.Name
+ if refs[pkgName] == nil {
+ refs[pkgName] = make(map[string]bool)
+ }
+ if !loadedPackageInfo {
+ loadedPackageInfo = true
+ packageInfo, _ = dirPackageInfo(srcDir, filename)
+ }
+ if decls[pkgName] == nil && (packageInfo == nil || !packageInfo.Globals[pkgName]) {
+ refs[pkgName][v.Sel.Name] = true
+ }
+ }
+ return visitor
+ })
+ ast.Walk(visitor, f)
+
+ // Nil out any unused ImportSpecs, to be removed in following passes
+ unusedImport := map[string]string{}
+ for pkg, is := range decls {
+ if refs[pkg] == nil && pkg != "_" && pkg != "." {
+ name := ""
+ if is.Name != nil {
+ name = is.Name.Name
+ }
+ unusedImport[strings.Trim(is.Path.Value, `"`)] = name
+ }
+ }
+ for ipath, name := range unusedImport {
+ if ipath == "C" {
+ // Don't remove cgo stuff.
+ continue
+ }
+ astutil.DeleteNamedImport(fset, f, name, ipath)
+ }
+
+ for pkgName, symbols := range refs {
+ if len(symbols) == 0 {
+ // skip over packages already imported
+ delete(refs, pkgName)
+ }
+ }
+
+ // Search for imports matching potential package references.
+ searches := 0
+ type result struct {
+ ipath string // import path (if err == nil)
+ name string // optional name to rename import as
+ err error
+ }
+ results := make(chan result)
+ for pkgName, symbols := range refs {
+ go func(pkgName string, symbols map[string]bool) {
+ ipath, rename, err := findImport(pkgName, symbols, filename)
+ r := result{ipath: ipath, err: err}
+ if rename {
+ r.name = pkgName
+ }
+ results <- r
+ }(pkgName, symbols)
+ searches++
+ }
+ for i := 0; i < searches; i++ {
+ result := <-results
+ if result.err != nil {
+ return nil, result.err
+ }
+ if result.ipath != "" {
+ if result.name != "" {
+ astutil.AddNamedImport(fset, f, result.name, result.ipath)
+ } else {
+ astutil.AddImport(fset, f, result.ipath)
+ }
+ added = append(added, result.ipath)
+ }
+ }
+
+ return added, nil
+}
+
+// importPathToName returns the package name for the given import path.
+var importPathToName func(importPath, srcDir string) (packageName string) = importPathToNameGoPath
+
+// importPathToNameBasic assumes the package name is the base of import path.
+func importPathToNameBasic(importPath, srcDir string) (packageName string) {
+ return path.Base(importPath)
+}
+
+// importPathToNameGoPath finds out the actual package name, as declared in its .go files.
+// If there's a problem, it falls back to using importPathToNameBasic.
+func importPathToNameGoPath(importPath, srcDir string) (packageName string) {
+ // Fast path for standard library without going to disk.
+ if pkg, ok := stdImportPackage[importPath]; ok {
+ return pkg
+ }
+
+ pkgName, err := importPathToNameGoPathParse(importPath, srcDir)
+ if Debug {
+ log.Printf("importPathToNameGoPathParse(%q, srcDir=%q) = %q, %v", importPath, srcDir, pkgName, err)
+ }
+ if err == nil {
+ return pkgName
+ }
+ return importPathToNameBasic(importPath, srcDir)
+}
+
+// importPathToNameGoPathParse is a faster version of build.Import if
+// the only thing desired is the package name. It uses build.FindOnly
+// to find the directory and then only parses one file in the package,
+// trusting that the files in the directory are consistent.
+func importPathToNameGoPathParse(importPath, srcDir string) (packageName string, err error) {
+ buildPkg, err := build.Import(importPath, srcDir, build.FindOnly)
+ if err != nil {
+ return "", err
+ }
+ d, err := os.Open(buildPkg.Dir)
+ if err != nil {
+ return "", err
+ }
+ names, err := d.Readdirnames(-1)
+ d.Close()
+ if err != nil {
+ return "", err
+ }
+ sort.Strings(names) // to have predictable behavior
+ var lastErr error
+ var nfile int
+ for _, name := range names {
+ if !strings.HasSuffix(name, ".go") {
+ continue
+ }
+ if strings.HasSuffix(name, "_test.go") {
+ continue
+ }
+ nfile++
+ fullFile := filepath.Join(buildPkg.Dir, name)
+
+ fset := token.NewFileSet()
+ f, err := parser.ParseFile(fset, fullFile, nil, parser.PackageClauseOnly)
+ if err != nil {
+ lastErr = err
+ continue
+ }
+ pkgName := f.Name.Name
+ if pkgName == "documentation" {
+ // Special case from go/build.ImportDir, not
+ // handled by ctx.MatchFile.
+ continue
+ }
+ if pkgName == "main" {
+ // Also skip package main, assuming it's a +build ignore generator or example.
+ // Since you can't import a package main anyway, there's no harm here.
+ continue
+ }
+ return pkgName, nil
+ }
+ if lastErr != nil {
+ return "", lastErr
+ }
+ return "", fmt.Errorf("no importable package found in %d Go files", nfile)
+}
+
+var stdImportPackage = map[string]string{} // "net/http" => "http"
+
+func init() {
+ // Nothing in the standard library has a package name not
+ // matching its import base name.
+ for _, pkg := range stdlib {
+ if _, ok := stdImportPackage[pkg]; !ok {
+ stdImportPackage[pkg] = path.Base(pkg)
+ }
+ }
+}
+
+// Directory-scanning state.
+var (
+ // scanGoRootOnce guards calling scanGoRoot (for $GOROOT)
+ scanGoRootOnce sync.Once
+ // scanGoPathOnce guards calling scanGoPath (for $GOPATH)
+ scanGoPathOnce sync.Once
+
+ // populateIgnoreOnce guards calling populateIgnore
+ populateIgnoreOnce sync.Once
+ ignoredDirs []os.FileInfo
+
+ dirScanMu sync.RWMutex
+ dirScan map[string]*pkg // abs dir path => *pkg
+)
+
+type pkg struct {
+ dir string // absolute file path to pkg directory ("/usr/lib/go/src/net/http")
+ importPath string // full pkg import path ("net/http", "foo/bar/vendor/a/b")
+ importPathShort string // vendorless import path ("net/http", "a/b")
+}
+
+// byImportPathShortLength sorts by the short import path length, breaking ties on the
+// import string itself.
+type byImportPathShortLength []*pkg
+
+func (s byImportPathShortLength) Len() int { return len(s) }
+func (s byImportPathShortLength) Less(i, j int) bool {
+ vi, vj := s[i].importPathShort, s[j].importPathShort
+ return len(vi) < len(vj) || (len(vi) == len(vj) && vi < vj)
+
+}
+func (s byImportPathShortLength) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
+
+// gate is a semaphore for limiting concurrency.
+type gate chan struct{}
+
+func (g gate) enter() { g <- struct{}{} }
+func (g gate) leave() { <-g }
+
+var visitedSymlinks struct {
+ sync.Mutex
+ m map[string]struct{}
+}
+
+// guarded by populateIgnoreOnce; populates ignoredDirs.
+func populateIgnore() {
+ for _, srcDir := range build.Default.SrcDirs() {
+ if srcDir == filepath.Join(build.Default.GOROOT, "src") {
+ continue
+ }
+ populateIgnoredDirs(srcDir)
+ }
+}
+
+// populateIgnoredDirs reads an optional config file at <path>/.goimportsignore
+// of relative directories to ignore when scanning for go files.
+// The provided path is one of the $GOPATH entries with "src" appended.
+func populateIgnoredDirs(path string) {
+ file := filepath.Join(path, ".goimportsignore")
+ slurp, err := ioutil.ReadFile(file)
+ if Debug {
+ if err != nil {
+ log.Print(err)
+ } else {
+ log.Printf("Read %s", file)
+ }
+ }
+ if err != nil {
+ return
+ }
+ bs := bufio.NewScanner(bytes.NewReader(slurp))
+ for bs.Scan() {
+ line := strings.TrimSpace(bs.Text())
+ if line == "" || strings.HasPrefix(line, "#") {
+ continue
+ }
+ full := filepath.Join(path, line)
+ if fi, err := os.Stat(full); err == nil {
+ ignoredDirs = append(ignoredDirs, fi)
+ if Debug {
+ log.Printf("Directory added to ignore list: %s", full)
+ }
+ } else if Debug {
+ log.Printf("Error statting entry in .goimportsignore: %v", err)
+ }
+ }
+}
+
+func skipDir(fi os.FileInfo) bool {
+ for _, ignoredDir := range ignoredDirs {
+ if os.SameFile(fi, ignoredDir) {
+ return true
+ }
+ }
+ return false
+}
+
+// shouldTraverse reports whether the symlink fi should, found in dir,
+// should be followed. It makes sure symlinks were never visited
+// before to avoid symlink loops.
+func shouldTraverse(dir string, fi os.FileInfo) bool {
+ path := filepath.Join(dir, fi.Name())
+ target, err := filepath.EvalSymlinks(path)
+ if err != nil {
+ if !os.IsNotExist(err) {
+ fmt.Fprintln(os.Stderr, err)
+ }
+ return false
+ }
+ ts, err := os.Stat(target)
+ if err != nil {
+ fmt.Fprintln(os.Stderr, err)
+ return false
+ }
+ if !ts.IsDir() {
+ return false
+ }
+
+ realParent, err := filepath.EvalSymlinks(dir)
+ if err != nil {
+ fmt.Fprint(os.Stderr, err)
+ return false
+ }
+ realPath := filepath.Join(realParent, fi.Name())
+ visitedSymlinks.Lock()
+ defer visitedSymlinks.Unlock()
+ if visitedSymlinks.m == nil {
+ visitedSymlinks.m = make(map[string]struct{})
+ }
+ if _, ok := visitedSymlinks.m[realPath]; ok {
+ return false
+ }
+ visitedSymlinks.m[realPath] = struct{}{}
+ return true
+}
+
+var testHookScanDir = func(dir string) {}
+
+var scanGoRootDone = make(chan struct{}) // closed when scanGoRoot is done
+
+func scanGoRoot() {
+ go func() {
+ scanGoDirs(true)
+ close(scanGoRootDone)
+ }()
+}
+
+func scanGoPath() { scanGoDirs(false) }
+
+func scanGoDirs(goRoot bool) {
+ if Debug {
+ which := "$GOROOT"
+ if !goRoot {
+ which = "$GOPATH"
+ }
+ log.Printf("scanning " + which)
+ defer log.Printf("scanned " + which)
+ }
+ dirScanMu.Lock()
+ if dirScan == nil {
+ dirScan = make(map[string]*pkg)
+ }
+ dirScanMu.Unlock()
+
+ for _, srcDir := range build.Default.SrcDirs() {
+ isGoroot := srcDir == filepath.Join(build.Default.GOROOT, "src")
+ if isGoroot != goRoot {
+ continue
+ }
+ testHookScanDir(srcDir)
+ walkFn := func(path string, typ os.FileMode) error {
+ dir := filepath.Dir(path)
+ if typ.IsRegular() {
+ if dir == srcDir {
+ // Doesn't make sense to have regular files
+ // directly in your $GOPATH/src or $GOROOT/src.
+ return nil
+ }
+ if !strings.HasSuffix(path, ".go") {
+ return nil
+ }
+ dirScanMu.Lock()
+ if _, dup := dirScan[dir]; !dup {
+ importpath := filepath.ToSlash(dir[len(srcDir)+len("/"):])
+ dirScan[dir] = &pkg{
+ importPath: importpath,
+ importPathShort: vendorlessImportPath(importpath),
+ dir: dir,
+ }
+ }
+ dirScanMu.Unlock()
+ return nil
+ }
+ if typ == os.ModeDir {
+ base := filepath.Base(path)
+ if base == "" || base[0] == '.' || base[0] == '_' ||
+ base == "testdata" || base == "node_modules" {
+ return filepath.SkipDir
+ }
+ fi, err := os.Lstat(path)
+ if err == nil && skipDir(fi) {
+ if Debug {
+ log.Printf("skipping directory %q under %s", fi.Name(), dir)
+ }
+ return filepath.SkipDir
+ }
+ return nil
+ }
+ if typ == os.ModeSymlink {
+ base := filepath.Base(path)
+ if strings.HasPrefix(base, ".#") {
+ // Emacs noise.
+ return nil
+ }
+ fi, err := os.Lstat(path)
+ if err != nil {
+ // Just ignore it.
+ return nil
+ }
+ if shouldTraverse(dir, fi) {
+ return traverseLink
+ }
+ }
+ return nil
+ }
+ if err := fastWalk(srcDir, walkFn); err != nil {
+ log.Printf("goimports: scanning directory %v: %v", srcDir, err)
+ }
+ }
+}
+
+// vendorlessImportPath returns the devendorized version of the provided import path.
+// e.g. "foo/bar/vendor/a/b" => "a/b"
+func vendorlessImportPath(ipath string) string {
+ // Devendorize for use in import statement.
+ if i := strings.LastIndex(ipath, "/vendor/"); i >= 0 {
+ return ipath[i+len("/vendor/"):]
+ }
+ if strings.HasPrefix(ipath, "vendor/") {
+ return ipath[len("vendor/"):]
+ }
+ return ipath
+}
+
+// loadExports returns the set of exported symbols in the package at dir.
+// It returns nil on error or if the package name in dir does not match expectPackage.
+var loadExports func(expectPackage, dir string) map[string]bool = loadExportsGoPath
+
+func loadExportsGoPath(expectPackage, dir string) map[string]bool {
+ if Debug {
+ log.Printf("loading exports in dir %s (seeking package %s)", dir, expectPackage)
+ }
+ exports := make(map[string]bool)
+
+ ctx := build.Default
+
+ // ReadDir is like ioutil.ReadDir, but only returns *.go files
+ // and filters out _test.go files since they're not relevant
+ // and only slow things down.
+ ctx.ReadDir = func(dir string) (notTests []os.FileInfo, err error) {
+ all, err := ioutil.ReadDir(dir)
+ if err != nil {
+ return nil, err
+ }
+ notTests = all[:0]
+ for _, fi := range all {
+ name := fi.Name()
+ if strings.HasSuffix(name, ".go") && !strings.HasSuffix(name, "_test.go") {
+ notTests = append(notTests, fi)
+ }
+ }
+ return notTests, nil
+ }
+
+ files, err := ctx.ReadDir(dir)
+ if err != nil {
+ log.Print(err)
+ return nil
+ }
+
+ fset := token.NewFileSet()
+
+ for _, fi := range files {
+ match, err := ctx.MatchFile(dir, fi.Name())
+ if err != nil || !match {
+ continue
+ }
+ fullFile := filepath.Join(dir, fi.Name())
+ f, err := parser.ParseFile(fset, fullFile, nil, 0)
+ if err != nil {
+ if Debug {
+ log.Printf("Parsing %s: %v", fullFile, err)
+ }
+ return nil
+ }
+ pkgName := f.Name.Name
+ if pkgName == "documentation" {
+ // Special case from go/build.ImportDir, not
+ // handled by ctx.MatchFile.
+ continue
+ }
+ if pkgName != expectPackage {
+ if Debug {
+ log.Printf("scan of dir %v is not expected package %v (actually %v)", dir, expectPackage, pkgName)
+ }
+ return nil
+ }
+ for name := range f.Scope.Objects {
+ if ast.IsExported(name) {
+ exports[name] = true
+ }
+ }
+ }
+
+ if Debug {
+ exportList := make([]string, 0, len(exports))
+ for k := range exports {
+ exportList = append(exportList, k)
+ }
+ sort.Strings(exportList)
+ log.Printf("loaded exports in dir %v (package %v): %v", dir, expectPackage, strings.Join(exportList, ", "))
+ }
+ return exports
+}
+
+// findImport searches for a package with the given symbols.
+// If no package is found, findImport returns ("", false, nil)
+//
+// This is declared as a variable rather than a function so goimports
+// can be easily extended by adding a file with an init function.
+//
+// The rename value tells goimports whether to use the package name as
+// a local qualifier in an import. For example, if findImports("pkg",
+// "X") returns ("foo/bar", rename=true), then goimports adds the
+// import line:
+// import pkg "foo/bar"
+// to satisfy uses of pkg.X in the file.
+var findImport func(pkgName string, symbols map[string]bool, filename string) (foundPkg string, rename bool, err error) = findImportGoPath
+
+// findImportGoPath is the normal implementation of findImport.
+// (Some companies have their own internally.)
+func findImportGoPath(pkgName string, symbols map[string]bool, filename string) (foundPkg string, rename bool, err error) {
+ if inTests {
+ testMu.RLock()
+ defer testMu.RUnlock()
+ }
+
+ // Fast path for the standard library.
+ // In the common case we hopefully never have to scan the GOPATH, which can
+ // be slow with moving disks.
+ if pkg, rename, ok := findImportStdlib(pkgName, symbols); ok {
+ return pkg, rename, nil
+ }
+ if pkgName == "rand" && symbols["Read"] {
+ // Special-case rand.Read.
+ //
+ // If findImportStdlib didn't find it above, don't go
+ // searching for it, lest it find and pick math/rand
+ // in GOROOT (new as of Go 1.6)
+ //
+ // crypto/rand is the safer choice.
+ return "", false, nil
+ }
+
+ // TODO(sameer): look at the import lines for other Go files in the
+ // local directory, since the user is likely to import the same packages
+ // in the current Go file. Return rename=true when the other Go files
+ // use a renamed package that's also used in the current file.
+
+ // Read all the $GOPATH/src/.goimportsignore files before scanning directories.
+ populateIgnoreOnce.Do(populateIgnore)
+
+ // Start scanning the $GOROOT asynchronously, then run the
+ // GOPATH scan synchronously if needed, and then wait for the
+ // $GOROOT to finish.
+ //
+ // TODO(bradfitz): run each $GOPATH entry async. But nobody
+ // really has more than one anyway, so low priority.
+ scanGoRootOnce.Do(scanGoRoot) // async
+ if !fileInDir(filename, build.Default.GOROOT) {
+ scanGoPathOnce.Do(scanGoPath) // blocking
+ }
+ <-scanGoRootDone
+
+ // Find candidate packages, looking only at their directory names first.
+ var candidates []*pkg
+ for _, pkg := range dirScan {
+ if pkgIsCandidate(filename, pkgName, pkg) {
+ candidates = append(candidates, pkg)
+ }
+ }
+
+ // Sort the candidates by their import package length,
+ // assuming that shorter package names are better than long
+ // ones. Note that this sorts by the de-vendored name, so
+ // there's no "penalty" for vendoring.
+ sort.Sort(byImportPathShortLength(candidates))
+ if Debug {
+ for i, pkg := range candidates {
+ log.Printf("%s candidate %d/%d: %v", pkgName, i+1, len(candidates), pkg.importPathShort)
+ }
+ }
+
+ // Collect exports for packages with matching names.
+
+ done := make(chan struct{}) // closed when we find the answer
+ defer close(done)
+
+ rescv := make([]chan *pkg, len(candidates))
+ for i := range candidates {
+ rescv[i] = make(chan *pkg)
+ }
+ const maxConcurrentPackageImport = 4
+ loadExportsSem := make(chan struct{}, maxConcurrentPackageImport)
+
+ go func() {
+ for i, pkg := range candidates {
+ select {
+ case loadExportsSem <- struct{}{}:
+ select {
+ case <-done:
+ default:
+ }
+ case <-done:
+ return
+ }
+ pkg := pkg
+ resc := rescv[i]
+ go func() {
+ if inTests {
+ testMu.RLock()
+ defer testMu.RUnlock()
+ }
+ defer func() { <-loadExportsSem }()
+ exports := loadExports(pkgName, pkg.dir)
+
+ // If it doesn't have the right
+ // symbols, send nil to mean no match.
+ for symbol := range symbols {
+ if !exports[symbol] {
+ pkg = nil
+ break
+ }
+ }
+ select {
+ case resc <- pkg:
+ case <-done:
+ }
+ }()
+ }
+ }()
+ for _, resc := range rescv {
+ pkg := <-resc
+ if pkg == nil {
+ continue
+ }
+ // If the package name in the source doesn't match the import path's base,
+ // return true so the rewriter adds a name (import foo "github.com/bar/go-foo")
+ needsRename := path.Base(pkg.importPath) != pkgName
+ return pkg.importPathShort, needsRename, nil
+ }
+ return "", false, nil
+}
+
+// pkgIsCandidate reports whether pkg is a candidate for satisfying the
+// finding which package pkgIdent in the file named by filename is trying
+// to refer to.
+//
+// This check is purely lexical and is meant to be as fast as possible
+// because it's run over all $GOPATH directories to filter out poor
+// candidates in order to limit the CPU and I/O later parsing the
+// exports in candidate packages.
+//
+// filename is the file being formatted.
+// pkgIdent is the package being searched for, like "client" (if
+// searching for "client.New")
+func pkgIsCandidate(filename, pkgIdent string, pkg *pkg) bool {
+ // Check "internal" and "vendor" visibility:
+ if !canUse(filename, pkg.dir) {
+ return false
+ }
+
+ // Speed optimization to minimize disk I/O:
+ // the last two components on disk must contain the
+ // package name somewhere.
+ //
+ // This permits mismatch naming like directory
+ // "go-foo" being package "foo", or "pkg.v3" being "pkg",
+ // or directory "google.golang.org/api/cloudbilling/v1"
+ // being package "cloudbilling", but doesn't
+ // permit a directory "foo" to be package
+ // "bar", which is strongly discouraged
+ // anyway. There's no reason goimports needs
+ // to be slow just to accomodate that.
+ lastTwo := lastTwoComponents(pkg.importPathShort)
+ if strings.Contains(lastTwo, pkgIdent) {
+ return true
+ }
+ if hasHyphenOrUpperASCII(lastTwo) && !hasHyphenOrUpperASCII(pkgIdent) {
+ lastTwo = lowerASCIIAndRemoveHyphen(lastTwo)
+ if strings.Contains(lastTwo, pkgIdent) {
+ return true
+ }
+ }
+
+ return false
+}
+
+func hasHyphenOrUpperASCII(s string) bool {
+ for i := 0; i < len(s); i++ {
+ b := s[i]
+ if b == '-' || ('A' <= b && b <= 'Z') {
+ return true
+ }
+ }
+ return false
+}
+
+func lowerASCIIAndRemoveHyphen(s string) (ret string) {
+ buf := make([]byte, 0, len(s))
+ for i := 0; i < len(s); i++ {
+ b := s[i]
+ switch {
+ case b == '-':
+ continue
+ case 'A' <= b && b <= 'Z':
+ buf = append(buf, b+('a'-'A'))
+ default:
+ buf = append(buf, b)
+ }
+ }
+ return string(buf)
+}
+
+// canUse reports whether the package in dir is usable from filename,
+// respecting the Go "internal" and "vendor" visibility rules.
+func canUse(filename, dir string) bool {
+ // Fast path check, before any allocations. If it doesn't contain vendor
+ // or internal, it's not tricky:
+ // Note that this can false-negative on directories like "notinternal",
+ // but we check it correctly below. This is just a fast path.
+ if !strings.Contains(dir, "vendor") && !strings.Contains(dir, "internal") {
+ return true
+ }
+
+ dirSlash := filepath.ToSlash(dir)
+ if !strings.Contains(dirSlash, "/vendor/") && !strings.Contains(dirSlash, "/internal/") && !strings.HasSuffix(dirSlash, "/internal") {
+ return true
+ }
+ // Vendor or internal directory only visible from children of parent.
+ // That means the path from the current directory to the target directory
+ // can contain ../vendor or ../internal but not ../foo/vendor or ../foo/internal
+ // or bar/vendor or bar/internal.
+ // After stripping all the leading ../, the only okay place to see vendor or internal
+ // is at the very beginning of the path.
+ absfile, err := filepath.Abs(filename)
+ if err != nil {
+ return false
+ }
+ absdir, err := filepath.Abs(dir)
+ if err != nil {
+ return false
+ }
+ rel, err := filepath.Rel(absfile, absdir)
+ if err != nil {
+ return false
+ }
+ relSlash := filepath.ToSlash(rel)
+ if i := strings.LastIndex(relSlash, "../"); i >= 0 {
+ relSlash = relSlash[i+len("../"):]
+ }
+ return !strings.Contains(relSlash, "/vendor/") && !strings.Contains(relSlash, "/internal/") && !strings.HasSuffix(relSlash, "/internal")
+}
+
+// lastTwoComponents returns at most the last two path components
+// of v, using either / or \ as the path separator.
+func lastTwoComponents(v string) string {
+ nslash := 0
+ for i := len(v) - 1; i >= 0; i-- {
+ if v[i] == '/' || v[i] == '\\' {
+ nslash++
+ if nslash == 2 {
+ return v[i:]
+ }
+ }
+ }
+ return v
+}
+
+type visitFn func(node ast.Node) ast.Visitor
+
+func (fn visitFn) Visit(node ast.Node) ast.Visitor {
+ return fn(node)
+}
+
+func findImportStdlib(shortPkg string, symbols map[string]bool) (importPath string, rename, ok bool) {
+ for symbol := range symbols {
+ key := shortPkg + "." + symbol
+ path := stdlib[key]
+ if path == "" {
+ if key == "rand.Read" {
+ continue
+ }
+ return "", false, false
+ }
+ if importPath != "" && importPath != path {
+ // Ambiguous. Symbols pointed to different things.
+ return "", false, false
+ }
+ importPath = path
+ }
+ if importPath == "" && shortPkg == "rand" && symbols["Read"] {
+ return "crypto/rand", false, true
+ }
+ return importPath, false, importPath != ""
+}
+
+// fileInDir reports whether the provided file path looks like
+// it's in dir. (without hitting the filesystem)
+func fileInDir(file, dir string) bool {
+ rest := strings.TrimPrefix(file, dir)
+ if len(rest) == len(file) {
+ // dir is not a prefix of file.
+ return false
+ }
+ // Check for boundary: either nothing (file == dir), or a slash.
+ return len(rest) == 0 || rest[0] == '/' || rest[0] == '\\'
+}
diff --git a/vendor/golang.org/x/tools/imports/imports.go b/vendor/golang.org/x/tools/imports/imports.go
new file mode 100644
index 000000000..c26c1946a
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/imports.go
@@ -0,0 +1,289 @@
+// 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.
+
+//go:generate go run mkstdlib.go
+
+// Package imports implements a Go pretty-printer (like package "go/format")
+// that also adds or removes import statements as necessary.
+package imports // import "golang.org/x/tools/imports"
+
+import (
+ "bufio"
+ "bytes"
+ "fmt"
+ "go/ast"
+ "go/format"
+ "go/parser"
+ "go/printer"
+ "go/token"
+ "io"
+ "regexp"
+ "strconv"
+ "strings"
+
+ "golang.org/x/tools/go/ast/astutil"
+)
+
+// Options specifies options for processing files.
+type Options struct {
+ Fragment bool // Accept fragment of a source file (no package statement)
+ AllErrors bool // Report all errors (not just the first 10 on different lines)
+
+ Comments bool // Print comments (true if nil *Options provided)
+ TabIndent bool // Use tabs for indent (true if nil *Options provided)
+ TabWidth int // Tab width (8 if nil *Options provided)
+
+ FormatOnly bool // Disable the insertion and deletion of imports
+}
+
+// Process formats and adjusts imports for the provided file.
+// If opt is nil the defaults are used.
+//
+// Note that filename's directory influences which imports can be chosen,
+// so it is important that filename be accurate.
+// To process data ``as if'' it were in filename, pass the data as a non-nil src.
+func Process(filename string, src []byte, opt *Options) ([]byte, error) {
+ if opt == nil {
+ opt = &Options{Comments: true, TabIndent: true, TabWidth: 8}
+ }
+
+ fileSet := token.NewFileSet()
+ file, adjust, err := parse(fileSet, filename, src, opt)
+ if err != nil {
+ return nil, err
+ }
+
+ if !opt.FormatOnly {
+ _, err = fixImports(fileSet, file, filename)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ sortImports(fileSet, file)
+ imps := astutil.Imports(fileSet, file)
+
+ var spacesBefore []string // import paths we need spaces before
+ for _, impSection := range imps {
+ // Within each block of contiguous imports, see if any
+ // import lines are in different group numbers. If so,
+ // we'll need to put a space between them so it's
+ // compatible with gofmt.
+ lastGroup := -1
+ for _, importSpec := range impSection {
+ importPath, _ := strconv.Unquote(importSpec.Path.Value)
+ groupNum := importGroup(importPath)
+ if groupNum != lastGroup && lastGroup != -1 {
+ spacesBefore = append(spacesBefore, importPath)
+ }
+ lastGroup = groupNum
+ }
+
+ }
+
+ printerMode := printer.UseSpaces
+ if opt.TabIndent {
+ printerMode |= printer.TabIndent
+ }
+ printConfig := &printer.Config{Mode: printerMode, Tabwidth: opt.TabWidth}
+
+ var buf bytes.Buffer
+ err = printConfig.Fprint(&buf, fileSet, file)
+ if err != nil {
+ return nil, err
+ }
+ out := buf.Bytes()
+ if adjust != nil {
+ out = adjust(src, out)
+ }
+ if len(spacesBefore) > 0 {
+ out = addImportSpaces(bytes.NewReader(out), spacesBefore)
+ }
+
+ out, err = format.Source(out)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// parse parses src, which was read from filename,
+// as a Go source file or statement list.
+func parse(fset *token.FileSet, filename string, src []byte, opt *Options) (*ast.File, func(orig, src []byte) []byte, error) {
+ parserMode := parser.Mode(0)
+ if opt.Comments {
+ parserMode |= parser.ParseComments
+ }
+ if opt.AllErrors {
+ parserMode |= parser.AllErrors
+ }
+
+ // Try as whole source file.
+ file, err := parser.ParseFile(fset, filename, src, parserMode)
+ if err == nil {
+ return file, nil, nil
+ }
+ // If the error is that the source file didn't begin with a
+ // package line and we accept fragmented input, fall through to
+ // try as a source fragment. Stop and return on any other error.
+ if !opt.Fragment || !strings.Contains(err.Error(), "expected 'package'") {
+ return nil, nil, err
+ }
+
+ // If this is a declaration list, make it a source file
+ // by inserting a package clause.
+ // Insert using a ;, not a newline, so that the line numbers
+ // in psrc match the ones in src.
+ psrc := append([]byte("package main;"), src...)
+ file, err = parser.ParseFile(fset, filename, psrc, parserMode)
+ if err == nil {
+ // If a main function exists, we will assume this is a main
+ // package and leave the file.
+ if containsMainFunc(file) {
+ return file, nil, nil
+ }
+
+ adjust := func(orig, src []byte) []byte {
+ // Remove the package clause.
+ // Gofmt has turned the ; into a \n.
+ src = src[len("package main\n"):]
+ return matchSpace(orig, src)
+ }
+ return file, adjust, nil
+ }
+ // If the error is that the source file didn't begin with a
+ // declaration, fall through to try as a statement list.
+ // Stop and return on any other error.
+ if !strings.Contains(err.Error(), "expected declaration") {
+ return nil, nil, err
+ }
+
+ // If this is a statement list, make it a source file
+ // by inserting a package clause and turning the list
+ // into a function body. This handles expressions too.
+ // Insert using a ;, not a newline, so that the line numbers
+ // in fsrc match the ones in src.
+ fsrc := append(append([]byte("package p; func _() {"), src...), '}')
+ file, err = parser.ParseFile(fset, filename, fsrc, parserMode)
+ if err == nil {
+ adjust := func(orig, src []byte) []byte {
+ // Remove the wrapping.
+ // Gofmt has turned the ; into a \n\n.
+ src = src[len("package p\n\nfunc _() {"):]
+ src = src[:len(src)-len("}\n")]
+ // Gofmt has also indented the function body one level.
+ // Remove that indent.
+ src = bytes.Replace(src, []byte("\n\t"), []byte("\n"), -1)
+ return matchSpace(orig, src)
+ }
+ return file, adjust, nil
+ }
+
+ // Failed, and out of options.
+ return nil, nil, err
+}
+
+// containsMainFunc checks if a file contains a function declaration with the
+// function signature 'func main()'
+func containsMainFunc(file *ast.File) bool {
+ for _, decl := range file.Decls {
+ if f, ok := decl.(*ast.FuncDecl); ok {
+ if f.Name.Name != "main" {
+ continue
+ }
+
+ if len(f.Type.Params.List) != 0 {
+ continue
+ }
+
+ if f.Type.Results != nil && len(f.Type.Results.List) != 0 {
+ continue
+ }
+
+ return true
+ }
+ }
+
+ return false
+}
+
+func cutSpace(b []byte) (before, middle, after []byte) {
+ i := 0
+ for i < len(b) && (b[i] == ' ' || b[i] == '\t' || b[i] == '\n') {
+ i++
+ }
+ j := len(b)
+ for j > 0 && (b[j-1] == ' ' || b[j-1] == '\t' || b[j-1] == '\n') {
+ j--
+ }
+ if i <= j {
+ return b[:i], b[i:j], b[j:]
+ }
+ return nil, nil, b[j:]
+}
+
+// matchSpace reformats src to use the same space context as orig.
+// 1) If orig begins with blank lines, matchSpace inserts them at the beginning of src.
+// 2) matchSpace copies the indentation of the first non-blank line in orig
+// to every non-blank line in src.
+// 3) matchSpace copies the trailing space from orig and uses it in place
+// of src's trailing space.
+func matchSpace(orig []byte, src []byte) []byte {
+ before, _, after := cutSpace(orig)
+ i := bytes.LastIndex(before, []byte{'\n'})
+ before, indent := before[:i+1], before[i+1:]
+
+ _, src, _ = cutSpace(src)
+
+ var b bytes.Buffer
+ b.Write(before)
+ for len(src) > 0 {
+ line := src
+ if i := bytes.IndexByte(line, '\n'); i >= 0 {
+ line, src = line[:i+1], line[i+1:]
+ } else {
+ src = nil
+ }
+ if len(line) > 0 && line[0] != '\n' { // not blank
+ b.Write(indent)
+ }
+ b.Write(line)
+ }
+ b.Write(after)
+ return b.Bytes()
+}
+
+var impLine = regexp.MustCompile(`^\s+(?:[\w\.]+\s+)?"(.+)"`)
+
+func addImportSpaces(r io.Reader, breaks []string) []byte {
+ var out bytes.Buffer
+ sc := bufio.NewScanner(r)
+ inImports := false
+ done := false
+ for sc.Scan() {
+ s := sc.Text()
+
+ if !inImports && !done && strings.HasPrefix(s, "import") {
+ inImports = true
+ }
+ if inImports && (strings.HasPrefix(s, "var") ||
+ strings.HasPrefix(s, "func") ||
+ strings.HasPrefix(s, "const") ||
+ strings.HasPrefix(s, "type")) {
+ done = true
+ inImports = false
+ }
+ if inImports && len(breaks) > 0 {
+ if m := impLine.FindStringSubmatch(s); m != nil {
+ if m[1] == string(breaks[0]) {
+ out.WriteByte('\n')
+ breaks = breaks[1:]
+ }
+ }
+ }
+
+ fmt.Fprintln(&out, s)
+ }
+ return out.Bytes()
+}
diff --git a/vendor/golang.org/x/tools/imports/mkindex.go b/vendor/golang.org/x/tools/imports/mkindex.go
new file mode 100644
index 000000000..755e2394f
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/mkindex.go
@@ -0,0 +1,173 @@
+// +build ignore
+
+// 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.
+
+// Command mkindex creates the file "pkgindex.go" containing an index of the Go
+// standard library. The file is intended to be built as part of the imports
+// package, so that the package may be used in environments where a GOROOT is
+// not available (such as App Engine).
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "go/ast"
+ "go/build"
+ "go/format"
+ "go/parser"
+ "go/token"
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "path/filepath"
+ "strings"
+)
+
+var (
+ pkgIndex = make(map[string][]pkg)
+ exports = make(map[string]map[string]bool)
+)
+
+func main() {
+ // Don't use GOPATH.
+ ctx := build.Default
+ ctx.GOPATH = ""
+
+ // Populate pkgIndex global from GOROOT.
+ for _, path := range ctx.SrcDirs() {
+ f, err := os.Open(path)
+ if err != nil {
+ log.Print(err)
+ continue
+ }
+ children, err := f.Readdir(-1)
+ f.Close()
+ if err != nil {
+ log.Print(err)
+ continue
+ }
+ for _, child := range children {
+ if child.IsDir() {
+ loadPkg(path, child.Name())
+ }
+ }
+ }
+ // Populate exports global.
+ for _, ps := range pkgIndex {
+ for _, p := range ps {
+ e := loadExports(p.dir)
+ if e != nil {
+ exports[p.dir] = e
+ }
+ }
+ }
+
+ // Construct source file.
+ var buf bytes.Buffer
+ fmt.Fprint(&buf, pkgIndexHead)
+ fmt.Fprintf(&buf, "var pkgIndexMaster = %#v\n", pkgIndex)
+ fmt.Fprintf(&buf, "var exportsMaster = %#v\n", exports)
+ src := buf.Bytes()
+
+ // Replace main.pkg type name with pkg.
+ src = bytes.Replace(src, []byte("main.pkg"), []byte("pkg"), -1)
+ // Replace actual GOROOT with "/go".
+ src = bytes.Replace(src, []byte(ctx.GOROOT), []byte("/go"), -1)
+ // Add some line wrapping.
+ src = bytes.Replace(src, []byte("}, "), []byte("},\n"), -1)
+ src = bytes.Replace(src, []byte("true, "), []byte("true,\n"), -1)
+
+ var err error
+ src, err = format.Source(src)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Write out source file.
+ err = ioutil.WriteFile("pkgindex.go", src, 0644)
+ if err != nil {
+ log.Fatal(err)
+ }
+}
+
+const pkgIndexHead = `package imports
+
+func init() {
+ pkgIndexOnce.Do(func() {
+ pkgIndex.m = pkgIndexMaster
+ })
+ loadExports = func(dir string) map[string]bool {
+ return exportsMaster[dir]
+ }
+}
+`
+
+type pkg struct {
+ importpath string // full pkg import path, e.g. "net/http"
+ dir string // absolute file path to pkg directory e.g. "/usr/lib/go/src/fmt"
+}
+
+var fset = token.NewFileSet()
+
+func loadPkg(root, importpath string) {
+ shortName := path.Base(importpath)
+ if shortName == "testdata" {
+ return
+ }
+
+ dir := filepath.Join(root, importpath)
+ pkgIndex[shortName] = append(pkgIndex[shortName], pkg{
+ importpath: importpath,
+ dir: dir,
+ })
+
+ pkgDir, err := os.Open(dir)
+ if err != nil {
+ return
+ }
+ children, err := pkgDir.Readdir(-1)
+ pkgDir.Close()
+ if err != nil {
+ return
+ }
+ for _, child := range children {
+ name := child.Name()
+ if name == "" {
+ continue
+ }
+ if c := name[0]; c == '.' || ('0' <= c && c <= '9') {
+ continue
+ }
+ if child.IsDir() {
+ loadPkg(root, filepath.Join(importpath, name))
+ }
+ }
+}
+
+func loadExports(dir string) map[string]bool {
+ exports := make(map[string]bool)
+ buildPkg, err := build.ImportDir(dir, 0)
+ if err != nil {
+ if strings.Contains(err.Error(), "no buildable Go source files in") {
+ return nil
+ }
+ log.Printf("could not import %q: %v", dir, err)
+ return nil
+ }
+ for _, file := range buildPkg.GoFiles {
+ f, err := parser.ParseFile(fset, filepath.Join(dir, file), nil, 0)
+ if err != nil {
+ log.Printf("could not parse %q: %v", file, err)
+ continue
+ }
+ for name := range f.Scope.Objects {
+ if ast.IsExported(name) {
+ exports[name] = true
+ }
+ }
+ }
+ return exports
+}
diff --git a/vendor/golang.org/x/tools/imports/mkstdlib.go b/vendor/golang.org/x/tools/imports/mkstdlib.go
new file mode 100644
index 000000000..1e559e9f5
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/mkstdlib.go
@@ -0,0 +1,103 @@
+// +build ignore
+
+// mkstdlib generates the zstdlib.go file, containing the Go standard
+// library API symbols. It's baked into the binary to avoid scanning
+// GOPATH in the common case.
+package main
+
+import (
+ "bufio"
+ "bytes"
+ "fmt"
+ "go/format"
+ "io"
+ "io/ioutil"
+ "log"
+ "os"
+ "path"
+ "path/filepath"
+ "regexp"
+ "sort"
+ "strings"
+)
+
+func mustOpen(name string) io.Reader {
+ f, err := os.Open(name)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return f
+}
+
+func api(base string) string {
+ return filepath.Join(os.Getenv("GOROOT"), "api", base)
+}
+
+var sym = regexp.MustCompile(`^pkg (\S+).*?, (?:var|func|type|const) ([A-Z]\w*)`)
+
+func main() {
+ var buf bytes.Buffer
+ outf := func(format string, args ...interface{}) {
+ fmt.Fprintf(&buf, format, args...)
+ }
+ outf("// AUTO-GENERATED BY mkstdlib.go\n\n")
+ outf("package imports\n")
+ outf("var stdlib = map[string]string{\n")
+ f := io.MultiReader(
+ mustOpen(api("go1.txt")),
+ mustOpen(api("go1.1.txt")),
+ mustOpen(api("go1.2.txt")),
+ mustOpen(api("go1.3.txt")),
+ mustOpen(api("go1.4.txt")),
+ mustOpen(api("go1.5.txt")),
+ mustOpen(api("go1.6.txt")),
+ mustOpen(api("go1.7.txt")),
+ )
+ sc := bufio.NewScanner(f)
+ fullImport := map[string]string{} // "zip.NewReader" => "archive/zip"
+ ambiguous := map[string]bool{}
+ var keys []string
+ for sc.Scan() {
+ l := sc.Text()
+ has := func(v string) bool { return strings.Contains(l, v) }
+ if has("struct, ") || has("interface, ") || has(", method (") {
+ continue
+ }
+ if m := sym.FindStringSubmatch(l); m != nil {
+ full := m[1]
+ key := path.Base(full) + "." + m[2]
+ if exist, ok := fullImport[key]; ok {
+ if exist != full {
+ ambiguous[key] = true
+ }
+ } else {
+ fullImport[key] = full
+ keys = append(keys, key)
+ }
+ }
+ }
+ if err := sc.Err(); err != nil {
+ log.Fatal(err)
+ }
+ sort.Strings(keys)
+ for _, key := range keys {
+ if ambiguous[key] {
+ outf("\t// %q is ambiguous\n", key)
+ } else {
+ outf("\t%q: %q,\n", key, fullImport[key])
+ }
+ }
+ outf("\n")
+ for _, sym := range [...]string{"Alignof", "ArbitraryType", "Offsetof", "Pointer", "Sizeof"} {
+ outf("\t%q: %q,\n", "unsafe."+sym, "unsafe")
+ }
+ outf("}\n")
+ fmtbuf, err := format.Source(buf.Bytes())
+ if err != nil {
+ log.Fatal(err)
+ }
+ err = ioutil.WriteFile("zstdlib.go", fmtbuf, 0666)
+ if err != nil {
+ log.Fatal(err)
+ }
+}
diff --git a/vendor/golang.org/x/tools/imports/sortimports.go b/vendor/golang.org/x/tools/imports/sortimports.go
new file mode 100644
index 000000000..653afc517
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/sortimports.go
@@ -0,0 +1,212 @@
+// 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.
+
+// Hacked up copy of go/ast/import.go
+
+package imports
+
+import (
+ "go/ast"
+ "go/token"
+ "sort"
+ "strconv"
+)
+
+// sortImports sorts runs of consecutive import lines in import blocks in f.
+// It also removes duplicate imports when it is possible to do so without data loss.
+func sortImports(fset *token.FileSet, f *ast.File) {
+ for i, d := range f.Decls {
+ d, ok := d.(*ast.GenDecl)
+ if !ok || d.Tok != token.IMPORT {
+ // Not an import declaration, so we're done.
+ // Imports are always first.
+ break
+ }
+
+ if len(d.Specs) == 0 {
+ // Empty import block, remove it.
+ f.Decls = append(f.Decls[:i], f.Decls[i+1:]...)
+ }
+
+ if !d.Lparen.IsValid() {
+ // Not a block: sorted by default.
+ continue
+ }
+
+ // Identify and sort runs of specs on successive lines.
+ i := 0
+ specs := d.Specs[:0]
+ for j, s := range d.Specs {
+ if j > i && fset.Position(s.Pos()).Line > 1+fset.Position(d.Specs[j-1].End()).Line {
+ // j begins a new run. End this one.
+ specs = append(specs, sortSpecs(fset, f, d.Specs[i:j])...)
+ i = j
+ }
+ }
+ specs = append(specs, sortSpecs(fset, f, d.Specs[i:])...)
+ d.Specs = specs
+
+ // Deduping can leave a blank line before the rparen; clean that up.
+ if len(d.Specs) > 0 {
+ lastSpec := d.Specs[len(d.Specs)-1]
+ lastLine := fset.Position(lastSpec.Pos()).Line
+ if rParenLine := fset.Position(d.Rparen).Line; rParenLine > lastLine+1 {
+ fset.File(d.Rparen).MergeLine(rParenLine - 1)
+ }
+ }
+ }
+}
+
+func importPath(s ast.Spec) string {
+ t, err := strconv.Unquote(s.(*ast.ImportSpec).Path.Value)
+ if err == nil {
+ return t
+ }
+ return ""
+}
+
+func importName(s ast.Spec) string {
+ n := s.(*ast.ImportSpec).Name
+ if n == nil {
+ return ""
+ }
+ return n.Name
+}
+
+func importComment(s ast.Spec) string {
+ c := s.(*ast.ImportSpec).Comment
+ if c == nil {
+ return ""
+ }
+ return c.Text()
+}
+
+// collapse indicates whether prev may be removed, leaving only next.
+func collapse(prev, next ast.Spec) bool {
+ if importPath(next) != importPath(prev) || importName(next) != importName(prev) {
+ return false
+ }
+ return prev.(*ast.ImportSpec).Comment == nil
+}
+
+type posSpan struct {
+ Start token.Pos
+ End token.Pos
+}
+
+func sortSpecs(fset *token.FileSet, f *ast.File, specs []ast.Spec) []ast.Spec {
+ // Can't short-circuit here even if specs are already sorted,
+ // since they might yet need deduplication.
+ // A lone import, however, may be safely ignored.
+ if len(specs) <= 1 {
+ return specs
+ }
+
+ // Record positions for specs.
+ pos := make([]posSpan, len(specs))
+ for i, s := range specs {
+ pos[i] = posSpan{s.Pos(), s.End()}
+ }
+
+ // Identify comments in this range.
+ // Any comment from pos[0].Start to the final line counts.
+ lastLine := fset.Position(pos[len(pos)-1].End).Line
+ cstart := len(f.Comments)
+ cend := len(f.Comments)
+ for i, g := range f.Comments {
+ if g.Pos() < pos[0].Start {
+ continue
+ }
+ if i < cstart {
+ cstart = i
+ }
+ if fset.Position(g.End()).Line > lastLine {
+ cend = i
+ break
+ }
+ }
+ comments := f.Comments[cstart:cend]
+
+ // Assign each comment to the import spec preceding it.
+ importComment := map[*ast.ImportSpec][]*ast.CommentGroup{}
+ specIndex := 0
+ for _, g := range comments {
+ for specIndex+1 < len(specs) && pos[specIndex+1].Start <= g.Pos() {
+ specIndex++
+ }
+ s := specs[specIndex].(*ast.ImportSpec)
+ importComment[s] = append(importComment[s], g)
+ }
+
+ // Sort the import specs by import path.
+ // Remove duplicates, when possible without data loss.
+ // Reassign the import paths to have the same position sequence.
+ // Reassign each comment to abut the end of its spec.
+ // Sort the comments by new position.
+ sort.Sort(byImportSpec(specs))
+
+ // Dedup. Thanks to our sorting, we can just consider
+ // adjacent pairs of imports.
+ deduped := specs[:0]
+ for i, s := range specs {
+ if i == len(specs)-1 || !collapse(s, specs[i+1]) {
+ deduped = append(deduped, s)
+ } else {
+ p := s.Pos()
+ fset.File(p).MergeLine(fset.Position(p).Line)
+ }
+ }
+ specs = deduped
+
+ // Fix up comment positions
+ for i, s := range specs {
+ s := s.(*ast.ImportSpec)
+ if s.Name != nil {
+ s.Name.NamePos = pos[i].Start
+ }
+ s.Path.ValuePos = pos[i].Start
+ s.EndPos = pos[i].End
+ for _, g := range importComment[s] {
+ for _, c := range g.List {
+ c.Slash = pos[i].End
+ }
+ }
+ }
+
+ sort.Sort(byCommentPos(comments))
+
+ return specs
+}
+
+type byImportSpec []ast.Spec // slice of *ast.ImportSpec
+
+func (x byImportSpec) Len() int { return len(x) }
+func (x byImportSpec) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
+func (x byImportSpec) Less(i, j int) bool {
+ ipath := importPath(x[i])
+ jpath := importPath(x[j])
+
+ igroup := importGroup(ipath)
+ jgroup := importGroup(jpath)
+ if igroup != jgroup {
+ return igroup < jgroup
+ }
+
+ if ipath != jpath {
+ return ipath < jpath
+ }
+ iname := importName(x[i])
+ jname := importName(x[j])
+
+ if iname != jname {
+ return iname < jname
+ }
+ return importComment(x[i]) < importComment(x[j])
+}
+
+type byCommentPos []*ast.CommentGroup
+
+func (x byCommentPos) Len() int { return len(x) }
+func (x byCommentPos) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
+func (x byCommentPos) Less(i, j int) bool { return x[i].Pos() < x[j].Pos() }
diff --git a/vendor/golang.org/x/tools/imports/zstdlib.go b/vendor/golang.org/x/tools/imports/zstdlib.go
new file mode 100644
index 000000000..28835da03
--- /dev/null
+++ b/vendor/golang.org/x/tools/imports/zstdlib.go
@@ -0,0 +1,9289 @@
+// AUTO-GENERATED BY mkstdlib.go
+
+package imports
+
+var stdlib = map[string]string{
+ "adler32.Checksum": "hash/adler32",
+ "adler32.New": "hash/adler32",
+ "adler32.Size": "hash/adler32",
+ "aes.BlockSize": "crypto/aes",
+ "aes.KeySizeError": "crypto/aes",
+ "aes.NewCipher": "crypto/aes",
+ "ascii85.CorruptInputError": "encoding/ascii85",
+ "ascii85.Decode": "encoding/ascii85",
+ "ascii85.Encode": "encoding/ascii85",
+ "ascii85.MaxEncodedLen": "encoding/ascii85",
+ "ascii85.NewDecoder": "encoding/ascii85",
+ "ascii85.NewEncoder": "encoding/ascii85",
+ "asn1.BitString": "encoding/asn1",
+ "asn1.ClassApplication": "encoding/asn1",
+ "asn1.ClassContextSpecific": "encoding/asn1",
+ "asn1.ClassPrivate": "encoding/asn1",
+ "asn1.ClassUniversal": "encoding/asn1",
+ "asn1.Enumerated": "encoding/asn1",
+ "asn1.Flag": "encoding/asn1",
+ "asn1.Marshal": "encoding/asn1",
+ "asn1.ObjectIdentifier": "encoding/asn1",
+ "asn1.RawContent": "encoding/asn1",
+ "asn1.RawValue": "encoding/asn1",
+ "asn1.StructuralError": "encoding/asn1",
+ "asn1.SyntaxError": "encoding/asn1",
+ "asn1.TagBitString": "encoding/asn1",
+ "asn1.TagBoolean": "encoding/asn1",
+ "asn1.TagEnum": "encoding/asn1",
+ "asn1.TagGeneralString": "encoding/asn1",
+ "asn1.TagGeneralizedTime": "encoding/asn1",
+ "asn1.TagIA5String": "encoding/asn1",
+ "asn1.TagInteger": "encoding/asn1",
+ "asn1.TagOID": "encoding/asn1",
+ "asn1.TagOctetString": "encoding/asn1",
+ "asn1.TagPrintableString": "encoding/asn1",
+ "asn1.TagSequence": "encoding/asn1",
+ "asn1.TagSet": "encoding/asn1",
+ "asn1.TagT61String": "encoding/asn1",
+ "asn1.TagUTCTime": "encoding/asn1",
+ "asn1.TagUTF8String": "encoding/asn1",
+ "asn1.Unmarshal": "encoding/asn1",
+ "asn1.UnmarshalWithParams": "encoding/asn1",
+ "ast.ArrayType": "go/ast",
+ "ast.AssignStmt": "go/ast",
+ "ast.Bad": "go/ast",
+ "ast.BadDecl": "go/ast",
+ "ast.BadExpr": "go/ast",
+ "ast.BadStmt": "go/ast",
+ "ast.BasicLit": "go/ast",
+ "ast.BinaryExpr": "go/ast",
+ "ast.BlockStmt": "go/ast",
+ "ast.BranchStmt": "go/ast",
+ "ast.CallExpr": "go/ast",
+ "ast.CaseClause": "go/ast",
+ "ast.ChanDir": "go/ast",
+ "ast.ChanType": "go/ast",
+ "ast.CommClause": "go/ast",
+ "ast.Comment": "go/ast",
+ "ast.CommentGroup": "go/ast",
+ "ast.CommentMap": "go/ast",
+ "ast.CompositeLit": "go/ast",
+ "ast.Con": "go/ast",
+ "ast.DeclStmt": "go/ast",
+ "ast.DeferStmt": "go/ast",
+ "ast.Ellipsis": "go/ast",
+ "ast.EmptyStmt": "go/ast",
+ "ast.ExprStmt": "go/ast",
+ "ast.Field": "go/ast",
+ "ast.FieldFilter": "go/ast",
+ "ast.FieldList": "go/ast",
+ "ast.File": "go/ast",
+ "ast.FileExports": "go/ast",
+ "ast.Filter": "go/ast",
+ "ast.FilterDecl": "go/ast",
+ "ast.FilterFile": "go/ast",
+ "ast.FilterFuncDuplicates": "go/ast",
+ "ast.FilterImportDuplicates": "go/ast",
+ "ast.FilterPackage": "go/ast",
+ "ast.FilterUnassociatedComments": "go/ast",
+ "ast.ForStmt": "go/ast",
+ "ast.Fprint": "go/ast",
+ "ast.Fun": "go/ast",
+ "ast.FuncDecl": "go/ast",
+ "ast.FuncLit": "go/ast",
+ "ast.FuncType": "go/ast",
+ "ast.GenDecl": "go/ast",
+ "ast.GoStmt": "go/ast",
+ "ast.Ident": "go/ast",
+ "ast.IfStmt": "go/ast",
+ "ast.ImportSpec": "go/ast",
+ "ast.Importer": "go/ast",
+ "ast.IncDecStmt": "go/ast",
+ "ast.IndexExpr": "go/ast",
+ "ast.Inspect": "go/ast",
+ "ast.InterfaceType": "go/ast",
+ "ast.IsExported": "go/ast",
+ "ast.KeyValueExpr": "go/ast",
+ "ast.LabeledStmt": "go/ast",
+ "ast.Lbl": "go/ast",
+ "ast.MapType": "go/ast",
+ "ast.MergeMode": "go/ast",
+ "ast.MergePackageFiles": "go/ast",
+ "ast.NewCommentMap": "go/ast",
+ "ast.NewIdent": "go/ast",
+ "ast.NewObj": "go/ast",
+ "ast.NewPackage": "go/ast",
+ "ast.NewScope": "go/ast",
+ "ast.Node": "go/ast",
+ "ast.NotNilFilter": "go/ast",
+ "ast.ObjKind": "go/ast",
+ "ast.Object": "go/ast",
+ "ast.Package": "go/ast",
+ "ast.PackageExports": "go/ast",
+ "ast.ParenExpr": "go/ast",
+ "ast.Pkg": "go/ast",
+ "ast.Print": "go/ast",
+ "ast.RECV": "go/ast",
+ "ast.RangeStmt": "go/ast",
+ "ast.ReturnStmt": "go/ast",
+ "ast.SEND": "go/ast",
+ "ast.Scope": "go/ast",
+ "ast.SelectStmt": "go/ast",
+ "ast.SelectorExpr": "go/ast",
+ "ast.SendStmt": "go/ast",
+ "ast.SliceExpr": "go/ast",
+ "ast.SortImports": "go/ast",
+ "ast.StarExpr": "go/ast",
+ "ast.StructType": "go/ast",
+ "ast.SwitchStmt": "go/ast",
+ "ast.Typ": "go/ast",
+ "ast.TypeAssertExpr": "go/ast",
+ "ast.TypeSpec": "go/ast",
+ "ast.TypeSwitchStmt": "go/ast",
+ "ast.UnaryExpr": "go/ast",
+ "ast.ValueSpec": "go/ast",
+ "ast.Var": "go/ast",
+ "ast.Visitor": "go/ast",
+ "ast.Walk": "go/ast",
+ "atomic.AddInt32": "sync/atomic",
+ "atomic.AddInt64": "sync/atomic",
+ "atomic.AddUint32": "sync/atomic",
+ "atomic.AddUint64": "sync/atomic",
+ "atomic.AddUintptr": "sync/atomic",
+ "atomic.CompareAndSwapInt32": "sync/atomic",
+ "atomic.CompareAndSwapInt64": "sync/atomic",
+ "atomic.CompareAndSwapPointer": "sync/atomic",
+ "atomic.CompareAndSwapUint32": "sync/atomic",
+ "atomic.CompareAndSwapUint64": "sync/atomic",
+ "atomic.CompareAndSwapUintptr": "sync/atomic",
+ "atomic.LoadInt32": "sync/atomic",
+ "atomic.LoadInt64": "sync/atomic",
+ "atomic.LoadPointer": "sync/atomic",
+ "atomic.LoadUint32": "sync/atomic",
+ "atomic.LoadUint64": "sync/atomic",
+ "atomic.LoadUintptr": "sync/atomic",
+ "atomic.StoreInt32": "sync/atomic",
+ "atomic.StoreInt64": "sync/atomic",
+ "atomic.StorePointer": "sync/atomic",
+ "atomic.StoreUint32": "sync/atomic",
+ "atomic.StoreUint64": "sync/atomic",
+ "atomic.StoreUintptr": "sync/atomic",
+ "atomic.SwapInt32": "sync/atomic",
+ "atomic.SwapInt64": "sync/atomic",
+ "atomic.SwapPointer": "sync/atomic",
+ "atomic.SwapUint32": "sync/atomic",
+ "atomic.SwapUint64": "sync/atomic",
+ "atomic.SwapUintptr": "sync/atomic",
+ "atomic.Value": "sync/atomic",
+ "base32.CorruptInputError": "encoding/base32",
+ "base32.Encoding": "encoding/base32",
+ "base32.HexEncoding": "encoding/base32",
+ "base32.NewDecoder": "encoding/base32",
+ "base32.NewEncoder": "encoding/base32",
+ "base32.NewEncoding": "encoding/base32",
+ "base32.StdEncoding": "encoding/base32",
+ "base64.CorruptInputError": "encoding/base64",
+ "base64.Encoding": "encoding/base64",
+ "base64.NewDecoder": "encoding/base64",
+ "base64.NewEncoder": "encoding/base64",
+ "base64.NewEncoding": "encoding/base64",
+ "base64.NoPadding": "encoding/base64",
+ "base64.RawStdEncoding": "encoding/base64",
+ "base64.RawURLEncoding": "encoding/base64",
+ "base64.StdEncoding": "encoding/base64",
+ "base64.StdPadding": "encoding/base64",
+ "base64.URLEncoding": "encoding/base64",
+ "big.Above": "math/big",
+ "big.Accuracy": "math/big",
+ "big.AwayFromZero": "math/big",
+ "big.Below": "math/big",
+ "big.ErrNaN": "math/big",
+ "big.Exact": "math/big",
+ "big.Float": "math/big",
+ "big.Int": "math/big",
+ "big.Jacobi": "math/big",
+ "big.MaxBase": "math/big",
+ "big.MaxExp": "math/big",
+ "big.MaxPrec": "math/big",
+ "big.MinExp": "math/big",
+ "big.NewFloat": "math/big",
+ "big.NewInt": "math/big",
+ "big.NewRat": "math/big",
+ "big.ParseFloat": "math/big",
+ "big.Rat": "math/big",
+ "big.RoundingMode": "math/big",
+ "big.ToNearestAway": "math/big",
+ "big.ToNearestEven": "math/big",
+ "big.ToNegativeInf": "math/big",
+ "big.ToPositiveInf": "math/big",
+ "big.ToZero": "math/big",
+ "big.Word": "math/big",
+ "binary.BigEndian": "encoding/binary",
+ "binary.ByteOrder": "encoding/binary",
+ "binary.LittleEndian": "encoding/binary",
+ "binary.MaxVarintLen16": "encoding/binary",
+ "binary.MaxVarintLen32": "encoding/binary",
+ "binary.MaxVarintLen64": "encoding/binary",
+ "binary.PutUvarint": "encoding/binary",
+ "binary.PutVarint": "encoding/binary",
+ "binary.Read": "encoding/binary",
+ "binary.ReadUvarint": "encoding/binary",
+ "binary.ReadVarint": "encoding/binary",
+ "binary.Size": "encoding/binary",
+ "binary.Uvarint": "encoding/binary",
+ "binary.Varint": "encoding/binary",
+ "binary.Write": "encoding/binary",
+ "bufio.ErrAdvanceTooFar": "bufio",
+ "bufio.ErrBufferFull": "bufio",
+ "bufio.ErrFinalToken": "bufio",
+ "bufio.ErrInvalidUnreadByte": "bufio",
+ "bufio.ErrInvalidUnreadRune": "bufio",
+ "bufio.ErrNegativeAdvance": "bufio",
+ "bufio.ErrNegativeCount": "bufio",
+ "bufio.ErrTooLong": "bufio",
+ "bufio.MaxScanTokenSize": "bufio",
+ "bufio.NewReadWriter": "bufio",
+ "bufio.NewReader": "bufio",
+ "bufio.NewReaderSize": "bufio",
+ "bufio.NewScanner": "bufio",
+ "bufio.NewWriter": "bufio",
+ "bufio.NewWriterSize": "bufio",
+ "bufio.ReadWriter": "bufio",
+ "bufio.Reader": "bufio",
+ "bufio.ScanBytes": "bufio",
+ "bufio.ScanLines": "bufio",
+ "bufio.ScanRunes": "bufio",
+ "bufio.ScanWords": "bufio",
+ "bufio.Scanner": "bufio",
+ "bufio.SplitFunc": "bufio",
+ "bufio.Writer": "bufio",
+ "build.AllowBinary": "go/build",
+ "build.ArchChar": "go/build",
+ "build.Context": "go/build",
+ "build.Default": "go/build",
+ "build.FindOnly": "go/build",
+ "build.IgnoreVendor": "go/build",
+ "build.Import": "go/build",
+ "build.ImportComment": "go/build",
+ "build.ImportDir": "go/build",
+ "build.ImportMode": "go/build",
+ "build.IsLocalImport": "go/build",
+ "build.MultiplePackageError": "go/build",
+ "build.NoGoError": "go/build",
+ "build.Package": "go/build",
+ "build.ToolDir": "go/build",
+ "bytes.Buffer": "bytes",
+ "bytes.Compare": "bytes",
+ "bytes.Contains": "bytes",
+ "bytes.ContainsAny": "bytes",
+ "bytes.ContainsRune": "bytes",
+ "bytes.Count": "bytes",
+ "bytes.Equal": "bytes",
+ "bytes.EqualFold": "bytes",
+ "bytes.ErrTooLarge": "bytes",
+ "bytes.Fields": "bytes",
+ "bytes.FieldsFunc": "bytes",
+ "bytes.HasPrefix": "bytes",
+ "bytes.HasSuffix": "bytes",
+ "bytes.Index": "bytes",
+ "bytes.IndexAny": "bytes",
+ "bytes.IndexByte": "bytes",
+ "bytes.IndexFunc": "bytes",
+ "bytes.IndexRune": "bytes",
+ "bytes.Join": "bytes",
+ "bytes.LastIndex": "bytes",
+ "bytes.LastIndexAny": "bytes",
+ "bytes.LastIndexByte": "bytes",
+ "bytes.LastIndexFunc": "bytes",
+ "bytes.Map": "bytes",
+ "bytes.MinRead": "bytes",
+ "bytes.NewBuffer": "bytes",
+ "bytes.NewBufferString": "bytes",
+ "bytes.NewReader": "bytes",
+ "bytes.Reader": "bytes",
+ "bytes.Repeat": "bytes",
+ "bytes.Replace": "bytes",
+ "bytes.Runes": "bytes",
+ "bytes.Split": "bytes",
+ "bytes.SplitAfter": "bytes",
+ "bytes.SplitAfterN": "bytes",
+ "bytes.SplitN": "bytes",
+ "bytes.Title": "bytes",
+ "bytes.ToLower": "bytes",
+ "bytes.ToLowerSpecial": "bytes",
+ "bytes.ToTitle": "bytes",
+ "bytes.ToTitleSpecial": "bytes",
+ "bytes.ToUpper": "bytes",
+ "bytes.ToUpperSpecial": "bytes",
+ "bytes.Trim": "bytes",
+ "bytes.TrimFunc": "bytes",
+ "bytes.TrimLeft": "bytes",
+ "bytes.TrimLeftFunc": "bytes",
+ "bytes.TrimPrefix": "bytes",
+ "bytes.TrimRight": "bytes",
+ "bytes.TrimRightFunc": "bytes",
+ "bytes.TrimSpace": "bytes",
+ "bytes.TrimSuffix": "bytes",
+ "bzip2.NewReader": "compress/bzip2",
+ "bzip2.StructuralError": "compress/bzip2",
+ "cgi.Handler": "net/http/cgi",
+ "cgi.Request": "net/http/cgi",
+ "cgi.RequestFromMap": "net/http/cgi",
+ "cgi.Serve": "net/http/cgi",
+ "cipher.AEAD": "crypto/cipher",
+ "cipher.Block": "crypto/cipher",
+ "cipher.BlockMode": "crypto/cipher",
+ "cipher.NewCBCDecrypter": "crypto/cipher",
+ "cipher.NewCBCEncrypter": "crypto/cipher",
+ "cipher.NewCFBDecrypter": "crypto/cipher",
+ "cipher.NewCFBEncrypter": "crypto/cipher",
+ "cipher.NewCTR": "crypto/cipher",
+ "cipher.NewGCM": "crypto/cipher",
+ "cipher.NewGCMWithNonceSize": "crypto/cipher",
+ "cipher.NewOFB": "crypto/cipher",
+ "cipher.Stream": "crypto/cipher",
+ "cipher.StreamReader": "crypto/cipher",
+ "cipher.StreamWriter": "crypto/cipher",
+ "cmplx.Abs": "math/cmplx",
+ "cmplx.Acos": "math/cmplx",
+ "cmplx.Acosh": "math/cmplx",
+ "cmplx.Asin": "math/cmplx",
+ "cmplx.Asinh": "math/cmplx",
+ "cmplx.Atan": "math/cmplx",
+ "cmplx.Atanh": "math/cmplx",
+ "cmplx.Conj": "math/cmplx",
+ "cmplx.Cos": "math/cmplx",
+ "cmplx.Cosh": "math/cmplx",
+ "cmplx.Cot": "math/cmplx",
+ "cmplx.Exp": "math/cmplx",
+ "cmplx.Inf": "math/cmplx",
+ "cmplx.IsInf": "math/cmplx",
+ "cmplx.IsNaN": "math/cmplx",
+ "cmplx.Log": "math/cmplx",
+ "cmplx.Log10": "math/cmplx",
+ "cmplx.NaN": "math/cmplx",
+ "cmplx.Phase": "math/cmplx",
+ "cmplx.Polar": "math/cmplx",
+ "cmplx.Pow": "math/cmplx",
+ "cmplx.Rect": "math/cmplx",
+ "cmplx.Sin": "math/cmplx",
+ "cmplx.Sinh": "math/cmplx",
+ "cmplx.Sqrt": "math/cmplx",
+ "cmplx.Tan": "math/cmplx",
+ "cmplx.Tanh": "math/cmplx",
+ "color.Alpha": "image/color",
+ "color.Alpha16": "image/color",
+ "color.Alpha16Model": "image/color",
+ "color.AlphaModel": "image/color",
+ "color.Black": "image/color",
+ "color.CMYK": "image/color",
+ "color.CMYKModel": "image/color",
+ "color.CMYKToRGB": "image/color",
+ "color.Color": "image/color",
+ "color.Gray": "image/color",
+ "color.Gray16": "image/color",
+ "color.Gray16Model": "image/color",
+ "color.GrayModel": "image/color",
+ "color.Model": "image/color",
+ "color.ModelFunc": "image/color",
+ "color.NRGBA": "image/color",
+ "color.NRGBA64": "image/color",
+ "color.NRGBA64Model": "image/color",
+ "color.NRGBAModel": "image/color",
+ "color.NYCbCrA": "image/color",
+ "color.NYCbCrAModel": "image/color",
+ "color.Opaque": "image/color",
+ "color.Palette": "image/color",
+ "color.RGBA": "image/color",
+ "color.RGBA64": "image/color",
+ "color.RGBA64Model": "image/color",
+ "color.RGBAModel": "image/color",
+ "color.RGBToCMYK": "image/color",
+ "color.RGBToYCbCr": "image/color",
+ "color.Transparent": "image/color",
+ "color.White": "image/color",
+ "color.YCbCr": "image/color",
+ "color.YCbCrModel": "image/color",
+ "color.YCbCrToRGB": "image/color",
+ "constant.BinaryOp": "go/constant",
+ "constant.BitLen": "go/constant",
+ "constant.Bool": "go/constant",
+ "constant.BoolVal": "go/constant",
+ "constant.Bytes": "go/constant",
+ "constant.Compare": "go/constant",
+ "constant.Complex": "go/constant",
+ "constant.Denom": "go/constant",
+ "constant.Float": "go/constant",
+ "constant.Float32Val": "go/constant",
+ "constant.Float64Val": "go/constant",
+ "constant.Imag": "go/constant",
+ "constant.Int": "go/constant",
+ "constant.Int64Val": "go/constant",
+ "constant.Kind": "go/constant",
+ "constant.MakeBool": "go/constant",
+ "constant.MakeFloat64": "go/constant",
+ "constant.MakeFromBytes": "go/constant",
+ "constant.MakeFromLiteral": "go/constant",
+ "constant.MakeImag": "go/constant",
+ "constant.MakeInt64": "go/constant",
+ "constant.MakeString": "go/constant",
+ "constant.MakeUint64": "go/constant",
+ "constant.MakeUnknown": "go/constant",
+ "constant.Num": "go/constant",
+ "constant.Real": "go/constant",
+ "constant.Shift": "go/constant",
+ "constant.Sign": "go/constant",
+ "constant.String": "go/constant",
+ "constant.StringVal": "go/constant",
+ "constant.ToComplex": "go/constant",
+ "constant.ToFloat": "go/constant",
+ "constant.ToInt": "go/constant",
+ "constant.Uint64Val": "go/constant",
+ "constant.UnaryOp": "go/constant",
+ "constant.Unknown": "go/constant",
+ "context.Background": "context",
+ "context.CancelFunc": "context",
+ "context.Canceled": "context",
+ "context.Context": "context",
+ "context.DeadlineExceeded": "context",
+ "context.TODO": "context",
+ "context.WithCancel": "context",
+ "context.WithDeadline": "context",
+ "context.WithTimeout": "context",
+ "context.WithValue": "context",
+ "cookiejar.Jar": "net/http/cookiejar",
+ "cookiejar.New": "net/http/cookiejar",
+ "cookiejar.Options": "net/http/cookiejar",
+ "cookiejar.PublicSuffixList": "net/http/cookiejar",
+ "crc32.Castagnoli": "hash/crc32",
+ "crc32.Checksum": "hash/crc32",
+ "crc32.ChecksumIEEE": "hash/crc32",
+ "crc32.IEEE": "hash/crc32",
+ "crc32.IEEETable": "hash/crc32",
+ "crc32.Koopman": "hash/crc32",
+ "crc32.MakeTable": "hash/crc32",
+ "crc32.New": "hash/crc32",
+ "crc32.NewIEEE": "hash/crc32",
+ "crc32.Size": "hash/crc32",
+ "crc32.Table": "hash/crc32",
+ "crc32.Update": "hash/crc32",
+ "crc64.Checksum": "hash/crc64",
+ "crc64.ECMA": "hash/crc64",
+ "crc64.ISO": "hash/crc64",
+ "crc64.MakeTable": "hash/crc64",
+ "crc64.New": "hash/crc64",
+ "crc64.Size": "hash/crc64",
+ "crc64.Table": "hash/crc64",
+ "crc64.Update": "hash/crc64",
+ "crypto.Decrypter": "crypto",
+ "crypto.DecrypterOpts": "crypto",
+ "crypto.Hash": "crypto",
+ "crypto.MD4": "crypto",
+ "crypto.MD5": "crypto",
+ "crypto.MD5SHA1": "crypto",
+ "crypto.PrivateKey": "crypto",
+ "crypto.PublicKey": "crypto",
+ "crypto.RIPEMD160": "crypto",
+ "crypto.RegisterHash": "crypto",
+ "crypto.SHA1": "crypto",
+ "crypto.SHA224": "crypto",
+ "crypto.SHA256": "crypto",
+ "crypto.SHA384": "crypto",
+ "crypto.SHA3_224": "crypto",
+ "crypto.SHA3_256": "crypto",
+ "crypto.SHA3_384": "crypto",
+ "crypto.SHA3_512": "crypto",
+ "crypto.SHA512": "crypto",
+ "crypto.SHA512_224": "crypto",
+ "crypto.SHA512_256": "crypto",
+ "crypto.Signer": "crypto",
+ "crypto.SignerOpts": "crypto",
+ "csv.ErrBareQuote": "encoding/csv",
+ "csv.ErrFieldCount": "encoding/csv",
+ "csv.ErrQuote": "encoding/csv",
+ "csv.ErrTrailingComma": "encoding/csv",
+ "csv.NewReader": "encoding/csv",
+ "csv.NewWriter": "encoding/csv",
+ "csv.ParseError": "encoding/csv",
+ "csv.Reader": "encoding/csv",
+ "csv.Writer": "encoding/csv",
+ "debug.FreeOSMemory": "runtime/debug",
+ "debug.GCStats": "runtime/debug",
+ "debug.PrintStack": "runtime/debug",
+ "debug.ReadGCStats": "runtime/debug",
+ "debug.SetGCPercent": "runtime/debug",
+ "debug.SetMaxStack": "runtime/debug",
+ "debug.SetMaxThreads": "runtime/debug",
+ "debug.SetPanicOnFault": "runtime/debug",
+ "debug.SetTraceback": "runtime/debug",
+ "debug.Stack": "runtime/debug",
+ "debug.WriteHeapDump": "runtime/debug",
+ "des.BlockSize": "crypto/des",
+ "des.KeySizeError": "crypto/des",
+ "des.NewCipher": "crypto/des",
+ "des.NewTripleDESCipher": "crypto/des",
+ "doc.AllDecls": "go/doc",
+ "doc.AllMethods": "go/doc",
+ "doc.Example": "go/doc",
+ "doc.Examples": "go/doc",
+ "doc.Filter": "go/doc",
+ "doc.Func": "go/doc",
+ "doc.IllegalPrefixes": "go/doc",
+ "doc.Mode": "go/doc",
+ "doc.New": "go/doc",
+ "doc.Note": "go/doc",
+ "doc.Package": "go/doc",
+ "doc.Synopsis": "go/doc",
+ "doc.ToHTML": "go/doc",
+ "doc.ToText": "go/doc",
+ "doc.Type": "go/doc",
+ "doc.Value": "go/doc",
+ "draw.Draw": "image/draw",
+ "draw.DrawMask": "image/draw",
+ "draw.Drawer": "image/draw",
+ "draw.FloydSteinberg": "image/draw",
+ "draw.Image": "image/draw",
+ "draw.Op": "image/draw",
+ "draw.Over": "image/draw",
+ "draw.Quantizer": "image/draw",
+ "draw.Src": "image/draw",
+ "driver.Bool": "database/sql/driver",
+ "driver.ColumnConverter": "database/sql/driver",
+ "driver.Conn": "database/sql/driver",
+ "driver.DefaultParameterConverter": "database/sql/driver",
+ "driver.Driver": "database/sql/driver",
+ "driver.ErrBadConn": "database/sql/driver",
+ "driver.ErrSkip": "database/sql/driver",
+ "driver.Execer": "database/sql/driver",
+ "driver.Int32": "database/sql/driver",
+ "driver.IsScanValue": "database/sql/driver",
+ "driver.IsValue": "database/sql/driver",
+ "driver.NotNull": "database/sql/driver",
+ "driver.Null": "database/sql/driver",
+ "driver.Queryer": "database/sql/driver",
+ "driver.Result": "database/sql/driver",
+ "driver.ResultNoRows": "database/sql/driver",
+ "driver.Rows": "database/sql/driver",
+ "driver.RowsAffected": "database/sql/driver",
+ "driver.Stmt": "database/sql/driver",
+ "driver.String": "database/sql/driver",
+ "driver.Tx": "database/sql/driver",
+ "driver.Value": "database/sql/driver",
+ "driver.ValueConverter": "database/sql/driver",
+ "driver.Valuer": "database/sql/driver",
+ "dsa.ErrInvalidPublicKey": "crypto/dsa",
+ "dsa.GenerateKey": "crypto/dsa",
+ "dsa.GenerateParameters": "crypto/dsa",
+ "dsa.L1024N160": "crypto/dsa",
+ "dsa.L2048N224": "crypto/dsa",
+ "dsa.L2048N256": "crypto/dsa",
+ "dsa.L3072N256": "crypto/dsa",
+ "dsa.ParameterSizes": "crypto/dsa",
+ "dsa.Parameters": "crypto/dsa",
+ "dsa.PrivateKey": "crypto/dsa",
+ "dsa.PublicKey": "crypto/dsa",
+ "dsa.Sign": "crypto/dsa",
+ "dsa.Verify": "crypto/dsa",
+ "dwarf.AddrType": "debug/dwarf",
+ "dwarf.ArrayType": "debug/dwarf",
+ "dwarf.Attr": "debug/dwarf",
+ "dwarf.AttrAbstractOrigin": "debug/dwarf",
+ "dwarf.AttrAccessibility": "debug/dwarf",
+ "dwarf.AttrAddrClass": "debug/dwarf",
+ "dwarf.AttrAllocated": "debug/dwarf",
+ "dwarf.AttrArtificial": "debug/dwarf",
+ "dwarf.AttrAssociated": "debug/dwarf",
+ "dwarf.AttrBaseTypes": "debug/dwarf",
+ "dwarf.AttrBitOffset": "debug/dwarf",
+ "dwarf.AttrBitSize": "debug/dwarf",
+ "dwarf.AttrByteSize": "debug/dwarf",
+ "dwarf.AttrCallColumn": "debug/dwarf",
+ "dwarf.AttrCallFile": "debug/dwarf",
+ "dwarf.AttrCallLine": "debug/dwarf",
+ "dwarf.AttrCalling": "debug/dwarf",
+ "dwarf.AttrCommonRef": "debug/dwarf",
+ "dwarf.AttrCompDir": "debug/dwarf",
+ "dwarf.AttrConstValue": "debug/dwarf",
+ "dwarf.AttrContainingType": "debug/dwarf",
+ "dwarf.AttrCount": "debug/dwarf",
+ "dwarf.AttrDataLocation": "debug/dwarf",
+ "dwarf.AttrDataMemberLoc": "debug/dwarf",
+ "dwarf.AttrDeclColumn": "debug/dwarf",
+ "dwarf.AttrDeclFile": "debug/dwarf",
+ "dwarf.AttrDeclLine": "debug/dwarf",
+ "dwarf.AttrDeclaration": "debug/dwarf",
+ "dwarf.AttrDefaultValue": "debug/dwarf",
+ "dwarf.AttrDescription": "debug/dwarf",
+ "dwarf.AttrDiscr": "debug/dwarf",
+ "dwarf.AttrDiscrList": "debug/dwarf",
+ "dwarf.AttrDiscrValue": "debug/dwarf",
+ "dwarf.AttrEncoding": "debug/dwarf",
+ "dwarf.AttrEntrypc": "debug/dwarf",
+ "dwarf.AttrExtension": "debug/dwarf",
+ "dwarf.AttrExternal": "debug/dwarf",
+ "dwarf.AttrFrameBase": "debug/dwarf",
+ "dwarf.AttrFriend": "debug/dwarf",
+ "dwarf.AttrHighpc": "debug/dwarf",
+ "dwarf.AttrIdentifierCase": "debug/dwarf",
+ "dwarf.AttrImport": "debug/dwarf",
+ "dwarf.AttrInline": "debug/dwarf",
+ "dwarf.AttrIsOptional": "debug/dwarf",
+ "dwarf.AttrLanguage": "debug/dwarf",
+ "dwarf.AttrLocation": "debug/dwarf",
+ "dwarf.AttrLowerBound": "debug/dwarf",
+ "dwarf.AttrLowpc": "debug/dwarf",
+ "dwarf.AttrMacroInfo": "debug/dwarf",
+ "dwarf.AttrName": "debug/dwarf",
+ "dwarf.AttrNamelistItem": "debug/dwarf",
+ "dwarf.AttrOrdering": "debug/dwarf",
+ "dwarf.AttrPriority": "debug/dwarf",
+ "dwarf.AttrProducer": "debug/dwarf",
+ "dwarf.AttrPrototyped": "debug/dwarf",
+ "dwarf.AttrRanges": "debug/dwarf",
+ "dwarf.AttrReturnAddr": "debug/dwarf",
+ "dwarf.AttrSegment": "debug/dwarf",
+ "dwarf.AttrSibling": "debug/dwarf",
+ "dwarf.AttrSpecification": "debug/dwarf",
+ "dwarf.AttrStartScope": "debug/dwarf",
+ "dwarf.AttrStaticLink": "debug/dwarf",
+ "dwarf.AttrStmtList": "debug/dwarf",
+ "dwarf.AttrStride": "debug/dwarf",
+ "dwarf.AttrStrideSize": "debug/dwarf",
+ "dwarf.AttrStringLength": "debug/dwarf",
+ "dwarf.AttrTrampoline": "debug/dwarf",
+ "dwarf.AttrType": "debug/dwarf",
+ "dwarf.AttrUpperBound": "debug/dwarf",
+ "dwarf.AttrUseLocation": "debug/dwarf",
+ "dwarf.AttrUseUTF8": "debug/dwarf",
+ "dwarf.AttrVarParam": "debug/dwarf",
+ "dwarf.AttrVirtuality": "debug/dwarf",
+ "dwarf.AttrVisibility": "debug/dwarf",
+ "dwarf.AttrVtableElemLoc": "debug/dwarf",
+ "dwarf.BasicType": "debug/dwarf",
+ "dwarf.BoolType": "debug/dwarf",
+ "dwarf.CharType": "debug/dwarf",
+ "dwarf.Class": "debug/dwarf",
+ "dwarf.ClassAddress": "debug/dwarf",
+ "dwarf.ClassBlock": "debug/dwarf",
+ "dwarf.ClassConstant": "debug/dwarf",
+ "dwarf.ClassExprLoc": "debug/dwarf",
+ "dwarf.ClassFlag": "debug/dwarf",
+ "dwarf.ClassLinePtr": "debug/dwarf",
+ "dwarf.ClassLocListPtr": "debug/dwarf",
+ "dwarf.ClassMacPtr": "debug/dwarf",
+ "dwarf.ClassRangeListPtr": "debug/dwarf",
+ "dwarf.ClassReference": "debug/dwarf",
+ "dwarf.ClassReferenceAlt": "debug/dwarf",
+ "dwarf.ClassReferenceSig": "debug/dwarf",
+ "dwarf.ClassString": "debug/dwarf",
+ "dwarf.ClassStringAlt": "debug/dwarf",
+ "dwarf.ClassUnknown": "debug/dwarf",
+ "dwarf.CommonType": "debug/dwarf",
+ "dwarf.ComplexType": "debug/dwarf",
+ "dwarf.Data": "debug/dwarf",
+ "dwarf.DecodeError": "debug/dwarf",
+ "dwarf.DotDotDotType": "debug/dwarf",
+ "dwarf.Entry": "debug/dwarf",
+ "dwarf.EnumType": "debug/dwarf",
+ "dwarf.EnumValue": "debug/dwarf",
+ "dwarf.ErrUnknownPC": "debug/dwarf",
+ "dwarf.Field": "debug/dwarf",
+ "dwarf.FloatType": "debug/dwarf",
+ "dwarf.FuncType": "debug/dwarf",
+ "dwarf.IntType": "debug/dwarf",
+ "dwarf.LineEntry": "debug/dwarf",
+ "dwarf.LineFile": "debug/dwarf",
+ "dwarf.LineReader": "debug/dwarf",
+ "dwarf.LineReaderPos": "debug/dwarf",
+ "dwarf.New": "debug/dwarf",
+ "dwarf.Offset": "debug/dwarf",
+ "dwarf.PtrType": "debug/dwarf",
+ "dwarf.QualType": "debug/dwarf",
+ "dwarf.Reader": "debug/dwarf",
+ "dwarf.StructField": "debug/dwarf",
+ "dwarf.StructType": "debug/dwarf",
+ "dwarf.Tag": "debug/dwarf",
+ "dwarf.TagAccessDeclaration": "debug/dwarf",
+ "dwarf.TagArrayType": "debug/dwarf",
+ "dwarf.TagBaseType": "debug/dwarf",
+ "dwarf.TagCatchDwarfBlock": "debug/dwarf",
+ "dwarf.TagClassType": "debug/dwarf",
+ "dwarf.TagCommonDwarfBlock": "debug/dwarf",
+ "dwarf.TagCommonInclusion": "debug/dwarf",
+ "dwarf.TagCompileUnit": "debug/dwarf",
+ "dwarf.TagCondition": "debug/dwarf",
+ "dwarf.TagConstType": "debug/dwarf",
+ "dwarf.TagConstant": "debug/dwarf",
+ "dwarf.TagDwarfProcedure": "debug/dwarf",
+ "dwarf.TagEntryPoint": "debug/dwarf",
+ "dwarf.TagEnumerationType": "debug/dwarf",
+ "dwarf.TagEnumerator": "debug/dwarf",
+ "dwarf.TagFileType": "debug/dwarf",
+ "dwarf.TagFormalParameter": "debug/dwarf",
+ "dwarf.TagFriend": "debug/dwarf",
+ "dwarf.TagImportedDeclaration": "debug/dwarf",
+ "dwarf.TagImportedModule": "debug/dwarf",
+ "dwarf.TagImportedUnit": "debug/dwarf",
+ "dwarf.TagInheritance": "debug/dwarf",
+ "dwarf.TagInlinedSubroutine": "debug/dwarf",
+ "dwarf.TagInterfaceType": "debug/dwarf",
+ "dwarf.TagLabel": "debug/dwarf",
+ "dwarf.TagLexDwarfBlock": "debug/dwarf",
+ "dwarf.TagMember": "debug/dwarf",
+ "dwarf.TagModule": "debug/dwarf",
+ "dwarf.TagMutableType": "debug/dwarf",
+ "dwarf.TagNamelist": "debug/dwarf",
+ "dwarf.TagNamelistItem": "debug/dwarf",
+ "dwarf.TagNamespace": "debug/dwarf",
+ "dwarf.TagPackedType": "debug/dwarf",
+ "dwarf.TagPartialUnit": "debug/dwarf",
+ "dwarf.TagPointerType": "debug/dwarf",
+ "dwarf.TagPtrToMemberType": "debug/dwarf",
+ "dwarf.TagReferenceType": "debug/dwarf",
+ "dwarf.TagRestrictType": "debug/dwarf",
+ "dwarf.TagRvalueReferenceType": "debug/dwarf",
+ "dwarf.TagSetType": "debug/dwarf",
+ "dwarf.TagSharedType": "debug/dwarf",
+ "dwarf.TagStringType": "debug/dwarf",
+ "dwarf.TagStructType": "debug/dwarf",
+ "dwarf.TagSubprogram": "debug/dwarf",
+ "dwarf.TagSubrangeType": "debug/dwarf",
+ "dwarf.TagSubroutineType": "debug/dwarf",
+ "dwarf.TagTemplateAlias": "debug/dwarf",
+ "dwarf.TagTemplateTypeParameter": "debug/dwarf",
+ "dwarf.TagTemplateValueParameter": "debug/dwarf",
+ "dwarf.TagThrownType": "debug/dwarf",
+ "dwarf.TagTryDwarfBlock": "debug/dwarf",
+ "dwarf.TagTypeUnit": "debug/dwarf",
+ "dwarf.TagTypedef": "debug/dwarf",
+ "dwarf.TagUnionType": "debug/dwarf",
+ "dwarf.TagUnspecifiedParameters": "debug/dwarf",
+ "dwarf.TagUnspecifiedType": "debug/dwarf",
+ "dwarf.TagVariable": "debug/dwarf",
+ "dwarf.TagVariant": "debug/dwarf",
+ "dwarf.TagVariantPart": "debug/dwarf",
+ "dwarf.TagVolatileType": "debug/dwarf",
+ "dwarf.TagWithStmt": "debug/dwarf",
+ "dwarf.Type": "debug/dwarf",
+ "dwarf.TypedefType": "debug/dwarf",
+ "dwarf.UcharType": "debug/dwarf",
+ "dwarf.UintType": "debug/dwarf",
+ "dwarf.UnspecifiedType": "debug/dwarf",
+ "dwarf.VoidType": "debug/dwarf",
+ "ecdsa.GenerateKey": "crypto/ecdsa",
+ "ecdsa.PrivateKey": "crypto/ecdsa",
+ "ecdsa.PublicKey": "crypto/ecdsa",
+ "ecdsa.Sign": "crypto/ecdsa",
+ "ecdsa.Verify": "crypto/ecdsa",
+ "elf.ARM_MAGIC_TRAMP_NUMBER": "debug/elf",
+ "elf.COMPRESS_HIOS": "debug/elf",
+ "elf.COMPRESS_HIPROC": "debug/elf",
+ "elf.COMPRESS_LOOS": "debug/elf",
+ "elf.COMPRESS_LOPROC": "debug/elf",
+ "elf.COMPRESS_ZLIB": "debug/elf",
+ "elf.Chdr32": "debug/elf",
+ "elf.Chdr64": "debug/elf",
+ "elf.Class": "debug/elf",
+ "elf.CompressionType": "debug/elf",
+ "elf.DF_BIND_NOW": "debug/elf",
+ "elf.DF_ORIGIN": "debug/elf",
+ "elf.DF_STATIC_TLS": "debug/elf",
+ "elf.DF_SYMBOLIC": "debug/elf",
+ "elf.DF_TEXTREL": "debug/elf",
+ "elf.DT_BIND_NOW": "debug/elf",
+ "elf.DT_DEBUG": "debug/elf",
+ "elf.DT_ENCODING": "debug/elf",
+ "elf.DT_FINI": "debug/elf",
+ "elf.DT_FINI_ARRAY": "debug/elf",
+ "elf.DT_FINI_ARRAYSZ": "debug/elf",
+ "elf.DT_FLAGS": "debug/elf",
+ "elf.DT_HASH": "debug/elf",
+ "elf.DT_HIOS": "debug/elf",
+ "elf.DT_HIPROC": "debug/elf",
+ "elf.DT_INIT": "debug/elf",
+ "elf.DT_INIT_ARRAY": "debug/elf",
+ "elf.DT_INIT_ARRAYSZ": "debug/elf",
+ "elf.DT_JMPREL": "debug/elf",
+ "elf.DT_LOOS": "debug/elf",
+ "elf.DT_LOPROC": "debug/elf",
+ "elf.DT_NEEDED": "debug/elf",
+ "elf.DT_NULL": "debug/elf",
+ "elf.DT_PLTGOT": "debug/elf",
+ "elf.DT_PLTREL": "debug/elf",
+ "elf.DT_PLTRELSZ": "debug/elf",
+ "elf.DT_PREINIT_ARRAY": "debug/elf",
+ "elf.DT_PREINIT_ARRAYSZ": "debug/elf",
+ "elf.DT_REL": "debug/elf",
+ "elf.DT_RELA": "debug/elf",
+ "elf.DT_RELAENT": "debug/elf",
+ "elf.DT_RELASZ": "debug/elf",
+ "elf.DT_RELENT": "debug/elf",
+ "elf.DT_RELSZ": "debug/elf",
+ "elf.DT_RPATH": "debug/elf",
+ "elf.DT_RUNPATH": "debug/elf",
+ "elf.DT_SONAME": "debug/elf",
+ "elf.DT_STRSZ": "debug/elf",
+ "elf.DT_STRTAB": "debug/elf",
+ "elf.DT_SYMBOLIC": "debug/elf",
+ "elf.DT_SYMENT": "debug/elf",
+ "elf.DT_SYMTAB": "debug/elf",
+ "elf.DT_TEXTREL": "debug/elf",
+ "elf.DT_VERNEED": "debug/elf",
+ "elf.DT_VERNEEDNUM": "debug/elf",
+ "elf.DT_VERSYM": "debug/elf",
+ "elf.Data": "debug/elf",
+ "elf.Dyn32": "debug/elf",
+ "elf.Dyn64": "debug/elf",
+ "elf.DynFlag": "debug/elf",
+ "elf.DynTag": "debug/elf",
+ "elf.EI_ABIVERSION": "debug/elf",
+ "elf.EI_CLASS": "debug/elf",
+ "elf.EI_DATA": "debug/elf",
+ "elf.EI_NIDENT": "debug/elf",
+ "elf.EI_OSABI": "debug/elf",
+ "elf.EI_PAD": "debug/elf",
+ "elf.EI_VERSION": "debug/elf",
+ "elf.ELFCLASS32": "debug/elf",
+ "elf.ELFCLASS64": "debug/elf",
+ "elf.ELFCLASSNONE": "debug/elf",
+ "elf.ELFDATA2LSB": "debug/elf",
+ "elf.ELFDATA2MSB": "debug/elf",
+ "elf.ELFDATANONE": "debug/elf",
+ "elf.ELFMAG": "debug/elf",
+ "elf.ELFOSABI_86OPEN": "debug/elf",
+ "elf.ELFOSABI_AIX": "debug/elf",
+ "elf.ELFOSABI_ARM": "debug/elf",
+ "elf.ELFOSABI_FREEBSD": "debug/elf",
+ "elf.ELFOSABI_HPUX": "debug/elf",
+ "elf.ELFOSABI_HURD": "debug/elf",
+ "elf.ELFOSABI_IRIX": "debug/elf",
+ "elf.ELFOSABI_LINUX": "debug/elf",
+ "elf.ELFOSABI_MODESTO": "debug/elf",
+ "elf.ELFOSABI_NETBSD": "debug/elf",
+ "elf.ELFOSABI_NONE": "debug/elf",
+ "elf.ELFOSABI_NSK": "debug/elf",
+ "elf.ELFOSABI_OPENBSD": "debug/elf",
+ "elf.ELFOSABI_OPENVMS": "debug/elf",
+ "elf.ELFOSABI_SOLARIS": "debug/elf",
+ "elf.ELFOSABI_STANDALONE": "debug/elf",
+ "elf.ELFOSABI_TRU64": "debug/elf",
+ "elf.EM_386": "debug/elf",
+ "elf.EM_486": "debug/elf",
+ "elf.EM_68HC12": "debug/elf",
+ "elf.EM_68K": "debug/elf",
+ "elf.EM_860": "debug/elf",
+ "elf.EM_88K": "debug/elf",
+ "elf.EM_960": "debug/elf",
+ "elf.EM_AARCH64": "debug/elf",
+ "elf.EM_ALPHA": "debug/elf",
+ "elf.EM_ALPHA_STD": "debug/elf",
+ "elf.EM_ARC": "debug/elf",
+ "elf.EM_ARM": "debug/elf",
+ "elf.EM_COLDFIRE": "debug/elf",
+ "elf.EM_FR20": "debug/elf",
+ "elf.EM_H8S": "debug/elf",
+ "elf.EM_H8_300": "debug/elf",
+ "elf.EM_H8_300H": "debug/elf",
+ "elf.EM_H8_500": "debug/elf",
+ "elf.EM_IA_64": "debug/elf",
+ "elf.EM_M32": "debug/elf",
+ "elf.EM_ME16": "debug/elf",
+ "elf.EM_MIPS": "debug/elf",
+ "elf.EM_MIPS_RS3_LE": "debug/elf",
+ "elf.EM_MIPS_RS4_BE": "debug/elf",
+ "elf.EM_MIPS_X": "debug/elf",
+ "elf.EM_MMA": "debug/elf",
+ "elf.EM_NCPU": "debug/elf",
+ "elf.EM_NDR1": "debug/elf",
+ "elf.EM_NONE": "debug/elf",
+ "elf.EM_PARISC": "debug/elf",
+ "elf.EM_PCP": "debug/elf",
+ "elf.EM_PPC": "debug/elf",
+ "elf.EM_PPC64": "debug/elf",
+ "elf.EM_RCE": "debug/elf",
+ "elf.EM_RH32": "debug/elf",
+ "elf.EM_S370": "debug/elf",
+ "elf.EM_S390": "debug/elf",
+ "elf.EM_SH": "debug/elf",
+ "elf.EM_SPARC": "debug/elf",
+ "elf.EM_SPARC32PLUS": "debug/elf",
+ "elf.EM_SPARCV9": "debug/elf",
+ "elf.EM_ST100": "debug/elf",
+ "elf.EM_STARCORE": "debug/elf",
+ "elf.EM_TINYJ": "debug/elf",
+ "elf.EM_TRICORE": "debug/elf",
+ "elf.EM_V800": "debug/elf",
+ "elf.EM_VPP500": "debug/elf",
+ "elf.EM_X86_64": "debug/elf",
+ "elf.ET_CORE": "debug/elf",
+ "elf.ET_DYN": "debug/elf",
+ "elf.ET_EXEC": "debug/elf",
+ "elf.ET_HIOS": "debug/elf",
+ "elf.ET_HIPROC": "debug/elf",
+ "elf.ET_LOOS": "debug/elf",
+ "elf.ET_LOPROC": "debug/elf",
+ "elf.ET_NONE": "debug/elf",
+ "elf.ET_REL": "debug/elf",
+ "elf.EV_CURRENT": "debug/elf",
+ "elf.EV_NONE": "debug/elf",
+ "elf.ErrNoSymbols": "debug/elf",
+ "elf.File": "debug/elf",
+ "elf.FileHeader": "debug/elf",
+ "elf.FormatError": "debug/elf",
+ "elf.Header32": "debug/elf",
+ "elf.Header64": "debug/elf",
+ "elf.ImportedSymbol": "debug/elf",
+ "elf.Machine": "debug/elf",
+ "elf.NT_FPREGSET": "debug/elf",
+ "elf.NT_PRPSINFO": "debug/elf",
+ "elf.NT_PRSTATUS": "debug/elf",
+ "elf.NType": "debug/elf",
+ "elf.NewFile": "debug/elf",
+ "elf.OSABI": "debug/elf",
+ "elf.Open": "debug/elf",
+ "elf.PF_MASKOS": "debug/elf",
+ "elf.PF_MASKPROC": "debug/elf",
+ "elf.PF_R": "debug/elf",
+ "elf.PF_W": "debug/elf",
+ "elf.PF_X": "debug/elf",
+ "elf.PT_DYNAMIC": "debug/elf",
+ "elf.PT_HIOS": "debug/elf",
+ "elf.PT_HIPROC": "debug/elf",
+ "elf.PT_INTERP": "debug/elf",
+ "elf.PT_LOAD": "debug/elf",
+ "elf.PT_LOOS": "debug/elf",
+ "elf.PT_LOPROC": "debug/elf",
+ "elf.PT_NOTE": "debug/elf",
+ "elf.PT_NULL": "debug/elf",
+ "elf.PT_PHDR": "debug/elf",
+ "elf.PT_SHLIB": "debug/elf",
+ "elf.PT_TLS": "debug/elf",
+ "elf.Prog": "debug/elf",
+ "elf.Prog32": "debug/elf",
+ "elf.Prog64": "debug/elf",
+ "elf.ProgFlag": "debug/elf",
+ "elf.ProgHeader": "debug/elf",
+ "elf.ProgType": "debug/elf",
+ "elf.R_386": "debug/elf",
+ "elf.R_386_32": "debug/elf",
+ "elf.R_386_COPY": "debug/elf",
+ "elf.R_386_GLOB_DAT": "debug/elf",
+ "elf.R_386_GOT32": "debug/elf",
+ "elf.R_386_GOTOFF": "debug/elf",
+ "elf.R_386_GOTPC": "debug/elf",
+ "elf.R_386_JMP_SLOT": "debug/elf",
+ "elf.R_386_NONE": "debug/elf",
+ "elf.R_386_PC32": "debug/elf",
+ "elf.R_386_PLT32": "debug/elf",
+ "elf.R_386_RELATIVE": "debug/elf",
+ "elf.R_386_TLS_DTPMOD32": "debug/elf",
+ "elf.R_386_TLS_DTPOFF32": "debug/elf",
+ "elf.R_386_TLS_GD": "debug/elf",
+ "elf.R_386_TLS_GD_32": "debug/elf",
+ "elf.R_386_TLS_GD_CALL": "debug/elf",
+ "elf.R_386_TLS_GD_POP": "debug/elf",
+ "elf.R_386_TLS_GD_PUSH": "debug/elf",
+ "elf.R_386_TLS_GOTIE": "debug/elf",
+ "elf.R_386_TLS_IE": "debug/elf",
+ "elf.R_386_TLS_IE_32": "debug/elf",
+ "elf.R_386_TLS_LDM": "debug/elf",
+ "elf.R_386_TLS_LDM_32": "debug/elf",
+ "elf.R_386_TLS_LDM_CALL": "debug/elf",
+ "elf.R_386_TLS_LDM_POP": "debug/elf",
+ "elf.R_386_TLS_LDM_PUSH": "debug/elf",
+ "elf.R_386_TLS_LDO_32": "debug/elf",
+ "elf.R_386_TLS_LE": "debug/elf",
+ "elf.R_386_TLS_LE_32": "debug/elf",
+ "elf.R_386_TLS_TPOFF": "debug/elf",
+ "elf.R_386_TLS_TPOFF32": "debug/elf",
+ "elf.R_390": "debug/elf",
+ "elf.R_390_12": "debug/elf",
+ "elf.R_390_16": "debug/elf",
+ "elf.R_390_20": "debug/elf",
+ "elf.R_390_32": "debug/elf",
+ "elf.R_390_64": "debug/elf",
+ "elf.R_390_8": "debug/elf",
+ "elf.R_390_COPY": "debug/elf",
+ "elf.R_390_GLOB_DAT": "debug/elf",
+ "elf.R_390_GOT12": "debug/elf",
+ "elf.R_390_GOT16": "debug/elf",
+ "elf.R_390_GOT20": "debug/elf",
+ "elf.R_390_GOT32": "debug/elf",
+ "elf.R_390_GOT64": "debug/elf",
+ "elf.R_390_GOTENT": "debug/elf",
+ "elf.R_390_GOTOFF": "debug/elf",
+ "elf.R_390_GOTOFF16": "debug/elf",
+ "elf.R_390_GOTOFF64": "debug/elf",
+ "elf.R_390_GOTPC": "debug/elf",
+ "elf.R_390_GOTPCDBL": "debug/elf",
+ "elf.R_390_GOTPLT12": "debug/elf",
+ "elf.R_390_GOTPLT16": "debug/elf",
+ "elf.R_390_GOTPLT20": "debug/elf",
+ "elf.R_390_GOTPLT32": "debug/elf",
+ "elf.R_390_GOTPLT64": "debug/elf",
+ "elf.R_390_GOTPLTENT": "debug/elf",
+ "elf.R_390_GOTPLTOFF16": "debug/elf",
+ "elf.R_390_GOTPLTOFF32": "debug/elf",
+ "elf.R_390_GOTPLTOFF64": "debug/elf",
+ "elf.R_390_JMP_SLOT": "debug/elf",
+ "elf.R_390_NONE": "debug/elf",
+ "elf.R_390_PC16": "debug/elf",
+ "elf.R_390_PC16DBL": "debug/elf",
+ "elf.R_390_PC32": "debug/elf",
+ "elf.R_390_PC32DBL": "debug/elf",
+ "elf.R_390_PC64": "debug/elf",
+ "elf.R_390_PLT16DBL": "debug/elf",
+ "elf.R_390_PLT32": "debug/elf",
+ "elf.R_390_PLT32DBL": "debug/elf",
+ "elf.R_390_PLT64": "debug/elf",
+ "elf.R_390_RELATIVE": "debug/elf",
+ "elf.R_390_TLS_DTPMOD": "debug/elf",
+ "elf.R_390_TLS_DTPOFF": "debug/elf",
+ "elf.R_390_TLS_GD32": "debug/elf",
+ "elf.R_390_TLS_GD64": "debug/elf",
+ "elf.R_390_TLS_GDCALL": "debug/elf",
+ "elf.R_390_TLS_GOTIE12": "debug/elf",
+ "elf.R_390_TLS_GOTIE20": "debug/elf",
+ "elf.R_390_TLS_GOTIE32": "debug/elf",
+ "elf.R_390_TLS_GOTIE64": "debug/elf",
+ "elf.R_390_TLS_IE32": "debug/elf",
+ "elf.R_390_TLS_IE64": "debug/elf",
+ "elf.R_390_TLS_IEENT": "debug/elf",
+ "elf.R_390_TLS_LDCALL": "debug/elf",
+ "elf.R_390_TLS_LDM32": "debug/elf",
+ "elf.R_390_TLS_LDM64": "debug/elf",
+ "elf.R_390_TLS_LDO32": "debug/elf",
+ "elf.R_390_TLS_LDO64": "debug/elf",
+ "elf.R_390_TLS_LE32": "debug/elf",
+ "elf.R_390_TLS_LE64": "debug/elf",
+ "elf.R_390_TLS_LOAD": "debug/elf",
+ "elf.R_390_TLS_TPOFF": "debug/elf",
+ "elf.R_AARCH64": "debug/elf",
+ "elf.R_AARCH64_ABS16": "debug/elf",
+ "elf.R_AARCH64_ABS32": "debug/elf",
+ "elf.R_AARCH64_ABS64": "debug/elf",
+ "elf.R_AARCH64_ADD_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_ADR_GOT_PAGE": "debug/elf",
+ "elf.R_AARCH64_ADR_PREL_LO21": "debug/elf",
+ "elf.R_AARCH64_ADR_PREL_PG_HI21": "debug/elf",
+ "elf.R_AARCH64_ADR_PREL_PG_HI21_NC": "debug/elf",
+ "elf.R_AARCH64_CALL26": "debug/elf",
+ "elf.R_AARCH64_CONDBR19": "debug/elf",
+ "elf.R_AARCH64_COPY": "debug/elf",
+ "elf.R_AARCH64_GLOB_DAT": "debug/elf",
+ "elf.R_AARCH64_GOT_LD_PREL19": "debug/elf",
+ "elf.R_AARCH64_IRELATIVE": "debug/elf",
+ "elf.R_AARCH64_JUMP26": "debug/elf",
+ "elf.R_AARCH64_JUMP_SLOT": "debug/elf",
+ "elf.R_AARCH64_LD64_GOT_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LDST128_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LDST16_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LDST32_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LDST64_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LDST8_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_LD_PREL_LO19": "debug/elf",
+ "elf.R_AARCH64_MOVW_SABS_G0": "debug/elf",
+ "elf.R_AARCH64_MOVW_SABS_G1": "debug/elf",
+ "elf.R_AARCH64_MOVW_SABS_G2": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G0": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G0_NC": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G1": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G1_NC": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G2": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G2_NC": "debug/elf",
+ "elf.R_AARCH64_MOVW_UABS_G3": "debug/elf",
+ "elf.R_AARCH64_NONE": "debug/elf",
+ "elf.R_AARCH64_NULL": "debug/elf",
+ "elf.R_AARCH64_P32_ABS16": "debug/elf",
+ "elf.R_AARCH64_P32_ABS32": "debug/elf",
+ "elf.R_AARCH64_P32_ADD_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_ADR_GOT_PAGE": "debug/elf",
+ "elf.R_AARCH64_P32_ADR_PREL_LO21": "debug/elf",
+ "elf.R_AARCH64_P32_ADR_PREL_PG_HI21": "debug/elf",
+ "elf.R_AARCH64_P32_CALL26": "debug/elf",
+ "elf.R_AARCH64_P32_CONDBR19": "debug/elf",
+ "elf.R_AARCH64_P32_COPY": "debug/elf",
+ "elf.R_AARCH64_P32_GLOB_DAT": "debug/elf",
+ "elf.R_AARCH64_P32_GOT_LD_PREL19": "debug/elf",
+ "elf.R_AARCH64_P32_IRELATIVE": "debug/elf",
+ "elf.R_AARCH64_P32_JUMP26": "debug/elf",
+ "elf.R_AARCH64_P32_JUMP_SLOT": "debug/elf",
+ "elf.R_AARCH64_P32_LD32_GOT_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LDST128_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LDST16_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LDST32_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LDST64_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LDST8_ABS_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_LD_PREL_LO19": "debug/elf",
+ "elf.R_AARCH64_P32_MOVW_SABS_G0": "debug/elf",
+ "elf.R_AARCH64_P32_MOVW_UABS_G0": "debug/elf",
+ "elf.R_AARCH64_P32_MOVW_UABS_G0_NC": "debug/elf",
+ "elf.R_AARCH64_P32_MOVW_UABS_G1": "debug/elf",
+ "elf.R_AARCH64_P32_PREL16": "debug/elf",
+ "elf.R_AARCH64_P32_PREL32": "debug/elf",
+ "elf.R_AARCH64_P32_RELATIVE": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_ADD_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_ADR_PAGE21": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_ADR_PREL21": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_CALL": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_LD32_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSDESC_LD_PREL19": "debug/elf",
+ "elf.R_AARCH64_P32_TLSGD_ADD_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSGD_ADR_PAGE21": "debug/elf",
+ "elf.R_AARCH64_P32_TLSIE_ADR_GOTTPREL_PAGE21": "debug/elf",
+ "elf.R_AARCH64_P32_TLSIE_LD32_GOTTPREL_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSIE_LD_GOTTPREL_PREL19": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_HI12": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_LO12": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_ADD_TPREL_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G0": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G0_NC": "debug/elf",
+ "elf.R_AARCH64_P32_TLSLE_MOVW_TPREL_G1": "debug/elf",
+ "elf.R_AARCH64_P32_TLS_DTPMOD": "debug/elf",
+ "elf.R_AARCH64_P32_TLS_DTPREL": "debug/elf",
+ "elf.R_AARCH64_P32_TLS_TPREL": "debug/elf",
+ "elf.R_AARCH64_P32_TSTBR14": "debug/elf",
+ "elf.R_AARCH64_PREL16": "debug/elf",
+ "elf.R_AARCH64_PREL32": "debug/elf",
+ "elf.R_AARCH64_PREL64": "debug/elf",
+ "elf.R_AARCH64_RELATIVE": "debug/elf",
+ "elf.R_AARCH64_TLSDESC": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_ADD": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_ADD_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_ADR_PAGE21": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_ADR_PREL21": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_CALL": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_LD64_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_LDR": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_LD_PREL19": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_OFF_G0_NC": "debug/elf",
+ "elf.R_AARCH64_TLSDESC_OFF_G1": "debug/elf",
+ "elf.R_AARCH64_TLSGD_ADD_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_TLSGD_ADR_PAGE21": "debug/elf",
+ "elf.R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21": "debug/elf",
+ "elf.R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_TLSIE_LD_GOTTPREL_PREL19": "debug/elf",
+ "elf.R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC": "debug/elf",
+ "elf.R_AARCH64_TLSIE_MOVW_GOTTPREL_G1": "debug/elf",
+ "elf.R_AARCH64_TLSLE_ADD_TPREL_HI12": "debug/elf",
+ "elf.R_AARCH64_TLSLE_ADD_TPREL_LO12": "debug/elf",
+ "elf.R_AARCH64_TLSLE_ADD_TPREL_LO12_NC": "debug/elf",
+ "elf.R_AARCH64_TLSLE_MOVW_TPREL_G0": "debug/elf",
+ "elf.R_AARCH64_TLSLE_MOVW_TPREL_G0_NC": "debug/elf",
+ "elf.R_AARCH64_TLSLE_MOVW_TPREL_G1": "debug/elf",
+ "elf.R_AARCH64_TLSLE_MOVW_TPREL_G1_NC": "debug/elf",
+ "elf.R_AARCH64_TLSLE_MOVW_TPREL_G2": "debug/elf",
+ "elf.R_AARCH64_TLS_DTPMOD64": "debug/elf",
+ "elf.R_AARCH64_TLS_DTPREL64": "debug/elf",
+ "elf.R_AARCH64_TLS_TPREL64": "debug/elf",
+ "elf.R_AARCH64_TSTBR14": "debug/elf",
+ "elf.R_ALPHA": "debug/elf",
+ "elf.R_ALPHA_BRADDR": "debug/elf",
+ "elf.R_ALPHA_COPY": "debug/elf",
+ "elf.R_ALPHA_GLOB_DAT": "debug/elf",
+ "elf.R_ALPHA_GPDISP": "debug/elf",
+ "elf.R_ALPHA_GPREL32": "debug/elf",
+ "elf.R_ALPHA_GPRELHIGH": "debug/elf",
+ "elf.R_ALPHA_GPRELLOW": "debug/elf",
+ "elf.R_ALPHA_GPVALUE": "debug/elf",
+ "elf.R_ALPHA_HINT": "debug/elf",
+ "elf.R_ALPHA_IMMED_BR_HI32": "debug/elf",
+ "elf.R_ALPHA_IMMED_GP_16": "debug/elf",
+ "elf.R_ALPHA_IMMED_GP_HI32": "debug/elf",
+ "elf.R_ALPHA_IMMED_LO32": "debug/elf",
+ "elf.R_ALPHA_IMMED_SCN_HI32": "debug/elf",
+ "elf.R_ALPHA_JMP_SLOT": "debug/elf",
+ "elf.R_ALPHA_LITERAL": "debug/elf",
+ "elf.R_ALPHA_LITUSE": "debug/elf",
+ "elf.R_ALPHA_NONE": "debug/elf",
+ "elf.R_ALPHA_OP_PRSHIFT": "debug/elf",
+ "elf.R_ALPHA_OP_PSUB": "debug/elf",
+ "elf.R_ALPHA_OP_PUSH": "debug/elf",
+ "elf.R_ALPHA_OP_STORE": "debug/elf",
+ "elf.R_ALPHA_REFLONG": "debug/elf",
+ "elf.R_ALPHA_REFQUAD": "debug/elf",
+ "elf.R_ALPHA_RELATIVE": "debug/elf",
+ "elf.R_ALPHA_SREL16": "debug/elf",
+ "elf.R_ALPHA_SREL32": "debug/elf",
+ "elf.R_ALPHA_SREL64": "debug/elf",
+ "elf.R_ARM": "debug/elf",
+ "elf.R_ARM_ABS12": "debug/elf",
+ "elf.R_ARM_ABS16": "debug/elf",
+ "elf.R_ARM_ABS32": "debug/elf",
+ "elf.R_ARM_ABS8": "debug/elf",
+ "elf.R_ARM_AMP_VCALL9": "debug/elf",
+ "elf.R_ARM_COPY": "debug/elf",
+ "elf.R_ARM_GLOB_DAT": "debug/elf",
+ "elf.R_ARM_GNU_VTENTRY": "debug/elf",
+ "elf.R_ARM_GNU_VTINHERIT": "debug/elf",
+ "elf.R_ARM_GOT32": "debug/elf",
+ "elf.R_ARM_GOTOFF": "debug/elf",
+ "elf.R_ARM_GOTPC": "debug/elf",
+ "elf.R_ARM_JUMP_SLOT": "debug/elf",
+ "elf.R_ARM_NONE": "debug/elf",
+ "elf.R_ARM_PC13": "debug/elf",
+ "elf.R_ARM_PC24": "debug/elf",
+ "elf.R_ARM_PLT32": "debug/elf",
+ "elf.R_ARM_RABS32": "debug/elf",
+ "elf.R_ARM_RBASE": "debug/elf",
+ "elf.R_ARM_REL32": "debug/elf",
+ "elf.R_ARM_RELATIVE": "debug/elf",
+ "elf.R_ARM_RPC24": "debug/elf",
+ "elf.R_ARM_RREL32": "debug/elf",
+ "elf.R_ARM_RSBREL32": "debug/elf",
+ "elf.R_ARM_SBREL32": "debug/elf",
+ "elf.R_ARM_SWI24": "debug/elf",
+ "elf.R_ARM_THM_ABS5": "debug/elf",
+ "elf.R_ARM_THM_PC22": "debug/elf",
+ "elf.R_ARM_THM_PC8": "debug/elf",
+ "elf.R_ARM_THM_RPC22": "debug/elf",
+ "elf.R_ARM_THM_SWI8": "debug/elf",
+ "elf.R_ARM_THM_XPC22": "debug/elf",
+ "elf.R_ARM_XPC25": "debug/elf",
+ "elf.R_INFO": "debug/elf",
+ "elf.R_INFO32": "debug/elf",
+ "elf.R_MIPS": "debug/elf",
+ "elf.R_MIPS_16": "debug/elf",
+ "elf.R_MIPS_26": "debug/elf",
+ "elf.R_MIPS_32": "debug/elf",
+ "elf.R_MIPS_64": "debug/elf",
+ "elf.R_MIPS_ADD_IMMEDIATE": "debug/elf",
+ "elf.R_MIPS_CALL16": "debug/elf",
+ "elf.R_MIPS_CALL_HI16": "debug/elf",
+ "elf.R_MIPS_CALL_LO16": "debug/elf",
+ "elf.R_MIPS_DELETE": "debug/elf",
+ "elf.R_MIPS_GOT16": "debug/elf",
+ "elf.R_MIPS_GOT_DISP": "debug/elf",
+ "elf.R_MIPS_GOT_HI16": "debug/elf",
+ "elf.R_MIPS_GOT_LO16": "debug/elf",
+ "elf.R_MIPS_GOT_OFST": "debug/elf",
+ "elf.R_MIPS_GOT_PAGE": "debug/elf",
+ "elf.R_MIPS_GPREL16": "debug/elf",
+ "elf.R_MIPS_GPREL32": "debug/elf",
+ "elf.R_MIPS_HI16": "debug/elf",
+ "elf.R_MIPS_HIGHER": "debug/elf",
+ "elf.R_MIPS_HIGHEST": "debug/elf",
+ "elf.R_MIPS_INSERT_A": "debug/elf",
+ "elf.R_MIPS_INSERT_B": "debug/elf",
+ "elf.R_MIPS_JALR": "debug/elf",
+ "elf.R_MIPS_LITERAL": "debug/elf",
+ "elf.R_MIPS_LO16": "debug/elf",
+ "elf.R_MIPS_NONE": "debug/elf",
+ "elf.R_MIPS_PC16": "debug/elf",
+ "elf.R_MIPS_PJUMP": "debug/elf",
+ "elf.R_MIPS_REL16": "debug/elf",
+ "elf.R_MIPS_REL32": "debug/elf",
+ "elf.R_MIPS_RELGOT": "debug/elf",
+ "elf.R_MIPS_SCN_DISP": "debug/elf",
+ "elf.R_MIPS_SHIFT5": "debug/elf",
+ "elf.R_MIPS_SHIFT6": "debug/elf",
+ "elf.R_MIPS_SUB": "debug/elf",
+ "elf.R_MIPS_TLS_DTPMOD32": "debug/elf",
+ "elf.R_MIPS_TLS_DTPMOD64": "debug/elf",
+ "elf.R_MIPS_TLS_DTPREL32": "debug/elf",
+ "elf.R_MIPS_TLS_DTPREL64": "debug/elf",
+ "elf.R_MIPS_TLS_DTPREL_HI16": "debug/elf",
+ "elf.R_MIPS_TLS_DTPREL_LO16": "debug/elf",
+ "elf.R_MIPS_TLS_GD": "debug/elf",
+ "elf.R_MIPS_TLS_GOTTPREL": "debug/elf",
+ "elf.R_MIPS_TLS_LDM": "debug/elf",
+ "elf.R_MIPS_TLS_TPREL32": "debug/elf",
+ "elf.R_MIPS_TLS_TPREL64": "debug/elf",
+ "elf.R_MIPS_TLS_TPREL_HI16": "debug/elf",
+ "elf.R_MIPS_TLS_TPREL_LO16": "debug/elf",
+ "elf.R_PPC": "debug/elf",
+ "elf.R_PPC64": "debug/elf",
+ "elf.R_PPC64_ADDR14": "debug/elf",
+ "elf.R_PPC64_ADDR14_BRNTAKEN": "debug/elf",
+ "elf.R_PPC64_ADDR14_BRTAKEN": "debug/elf",
+ "elf.R_PPC64_ADDR16": "debug/elf",
+ "elf.R_PPC64_ADDR16_DS": "debug/elf",
+ "elf.R_PPC64_ADDR16_HA": "debug/elf",
+ "elf.R_PPC64_ADDR16_HI": "debug/elf",
+ "elf.R_PPC64_ADDR16_HIGHER": "debug/elf",
+ "elf.R_PPC64_ADDR16_HIGHERA": "debug/elf",
+ "elf.R_PPC64_ADDR16_HIGHEST": "debug/elf",
+ "elf.R_PPC64_ADDR16_HIGHESTA": "debug/elf",
+ "elf.R_PPC64_ADDR16_LO": "debug/elf",
+ "elf.R_PPC64_ADDR16_LO_DS": "debug/elf",
+ "elf.R_PPC64_ADDR24": "debug/elf",
+ "elf.R_PPC64_ADDR32": "debug/elf",
+ "elf.R_PPC64_ADDR64": "debug/elf",
+ "elf.R_PPC64_DTPMOD64": "debug/elf",
+ "elf.R_PPC64_DTPREL16": "debug/elf",
+ "elf.R_PPC64_DTPREL16_DS": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HA": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HI": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HIGHER": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HIGHERA": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HIGHEST": "debug/elf",
+ "elf.R_PPC64_DTPREL16_HIGHESTA": "debug/elf",
+ "elf.R_PPC64_DTPREL16_LO": "debug/elf",
+ "elf.R_PPC64_DTPREL16_LO_DS": "debug/elf",
+ "elf.R_PPC64_DTPREL64": "debug/elf",
+ "elf.R_PPC64_GOT16": "debug/elf",
+ "elf.R_PPC64_GOT16_DS": "debug/elf",
+ "elf.R_PPC64_GOT16_HA": "debug/elf",
+ "elf.R_PPC64_GOT16_HI": "debug/elf",
+ "elf.R_PPC64_GOT16_LO": "debug/elf",
+ "elf.R_PPC64_GOT16_LO_DS": "debug/elf",
+ "elf.R_PPC64_GOT_DTPREL16_DS": "debug/elf",
+ "elf.R_PPC64_GOT_DTPREL16_HA": "debug/elf",
+ "elf.R_PPC64_GOT_DTPREL16_HI": "debug/elf",
+ "elf.R_PPC64_GOT_DTPREL16_LO_DS": "debug/elf",
+ "elf.R_PPC64_GOT_TLSGD16": "debug/elf",
+ "elf.R_PPC64_GOT_TLSGD16_HA": "debug/elf",
+ "elf.R_PPC64_GOT_TLSGD16_HI": "debug/elf",
+ "elf.R_PPC64_GOT_TLSGD16_LO": "debug/elf",
+ "elf.R_PPC64_GOT_TLSLD16": "debug/elf",
+ "elf.R_PPC64_GOT_TLSLD16_HA": "debug/elf",
+ "elf.R_PPC64_GOT_TLSLD16_HI": "debug/elf",
+ "elf.R_PPC64_GOT_TLSLD16_LO": "debug/elf",
+ "elf.R_PPC64_GOT_TPREL16_DS": "debug/elf",
+ "elf.R_PPC64_GOT_TPREL16_HA": "debug/elf",
+ "elf.R_PPC64_GOT_TPREL16_HI": "debug/elf",
+ "elf.R_PPC64_GOT_TPREL16_LO_DS": "debug/elf",
+ "elf.R_PPC64_JMP_SLOT": "debug/elf",
+ "elf.R_PPC64_NONE": "debug/elf",
+ "elf.R_PPC64_REL14": "debug/elf",
+ "elf.R_PPC64_REL14_BRNTAKEN": "debug/elf",
+ "elf.R_PPC64_REL14_BRTAKEN": "debug/elf",
+ "elf.R_PPC64_REL16": "debug/elf",
+ "elf.R_PPC64_REL16_HA": "debug/elf",
+ "elf.R_PPC64_REL16_HI": "debug/elf",
+ "elf.R_PPC64_REL16_LO": "debug/elf",
+ "elf.R_PPC64_REL24": "debug/elf",
+ "elf.R_PPC64_REL32": "debug/elf",
+ "elf.R_PPC64_REL64": "debug/elf",
+ "elf.R_PPC64_TLS": "debug/elf",
+ "elf.R_PPC64_TLSGD": "debug/elf",
+ "elf.R_PPC64_TLSLD": "debug/elf",
+ "elf.R_PPC64_TOC": "debug/elf",
+ "elf.R_PPC64_TOC16": "debug/elf",
+ "elf.R_PPC64_TOC16_DS": "debug/elf",
+ "elf.R_PPC64_TOC16_HA": "debug/elf",
+ "elf.R_PPC64_TOC16_HI": "debug/elf",
+ "elf.R_PPC64_TOC16_LO": "debug/elf",
+ "elf.R_PPC64_TOC16_LO_DS": "debug/elf",
+ "elf.R_PPC64_TPREL16": "debug/elf",
+ "elf.R_PPC64_TPREL16_DS": "debug/elf",
+ "elf.R_PPC64_TPREL16_HA": "debug/elf",
+ "elf.R_PPC64_TPREL16_HI": "debug/elf",
+ "elf.R_PPC64_TPREL16_HIGHER": "debug/elf",
+ "elf.R_PPC64_TPREL16_HIGHERA": "debug/elf",
+ "elf.R_PPC64_TPREL16_HIGHEST": "debug/elf",
+ "elf.R_PPC64_TPREL16_HIGHESTA": "debug/elf",
+ "elf.R_PPC64_TPREL16_LO": "debug/elf",
+ "elf.R_PPC64_TPREL16_LO_DS": "debug/elf",
+ "elf.R_PPC64_TPREL64": "debug/elf",
+ "elf.R_PPC_ADDR14": "debug/elf",
+ "elf.R_PPC_ADDR14_BRNTAKEN": "debug/elf",
+ "elf.R_PPC_ADDR14_BRTAKEN": "debug/elf",
+ "elf.R_PPC_ADDR16": "debug/elf",
+ "elf.R_PPC_ADDR16_HA": "debug/elf",
+ "elf.R_PPC_ADDR16_HI": "debug/elf",
+ "elf.R_PPC_ADDR16_LO": "debug/elf",
+ "elf.R_PPC_ADDR24": "debug/elf",
+ "elf.R_PPC_ADDR32": "debug/elf",
+ "elf.R_PPC_COPY": "debug/elf",
+ "elf.R_PPC_DTPMOD32": "debug/elf",
+ "elf.R_PPC_DTPREL16": "debug/elf",
+ "elf.R_PPC_DTPREL16_HA": "debug/elf",
+ "elf.R_PPC_DTPREL16_HI": "debug/elf",
+ "elf.R_PPC_DTPREL16_LO": "debug/elf",
+ "elf.R_PPC_DTPREL32": "debug/elf",
+ "elf.R_PPC_EMB_BIT_FLD": "debug/elf",
+ "elf.R_PPC_EMB_MRKREF": "debug/elf",
+ "elf.R_PPC_EMB_NADDR16": "debug/elf",
+ "elf.R_PPC_EMB_NADDR16_HA": "debug/elf",
+ "elf.R_PPC_EMB_NADDR16_HI": "debug/elf",
+ "elf.R_PPC_EMB_NADDR16_LO": "debug/elf",
+ "elf.R_PPC_EMB_NADDR32": "debug/elf",
+ "elf.R_PPC_EMB_RELSDA": "debug/elf",
+ "elf.R_PPC_EMB_RELSEC16": "debug/elf",
+ "elf.R_PPC_EMB_RELST_HA": "debug/elf",
+ "elf.R_PPC_EMB_RELST_HI": "debug/elf",
+ "elf.R_PPC_EMB_RELST_LO": "debug/elf",
+ "elf.R_PPC_EMB_SDA21": "debug/elf",
+ "elf.R_PPC_EMB_SDA2I16": "debug/elf",
+ "elf.R_PPC_EMB_SDA2REL": "debug/elf",
+ "elf.R_PPC_EMB_SDAI16": "debug/elf",
+ "elf.R_PPC_GLOB_DAT": "debug/elf",
+ "elf.R_PPC_GOT16": "debug/elf",
+ "elf.R_PPC_GOT16_HA": "debug/elf",
+ "elf.R_PPC_GOT16_HI": "debug/elf",
+ "elf.R_PPC_GOT16_LO": "debug/elf",
+ "elf.R_PPC_GOT_TLSGD16": "debug/elf",
+ "elf.R_PPC_GOT_TLSGD16_HA": "debug/elf",
+ "elf.R_PPC_GOT_TLSGD16_HI": "debug/elf",
+ "elf.R_PPC_GOT_TLSGD16_LO": "debug/elf",
+ "elf.R_PPC_GOT_TLSLD16": "debug/elf",
+ "elf.R_PPC_GOT_TLSLD16_HA": "debug/elf",
+ "elf.R_PPC_GOT_TLSLD16_HI": "debug/elf",
+ "elf.R_PPC_GOT_TLSLD16_LO": "debug/elf",
+ "elf.R_PPC_GOT_TPREL16": "debug/elf",
+ "elf.R_PPC_GOT_TPREL16_HA": "debug/elf",
+ "elf.R_PPC_GOT_TPREL16_HI": "debug/elf",
+ "elf.R_PPC_GOT_TPREL16_LO": "debug/elf",
+ "elf.R_PPC_JMP_SLOT": "debug/elf",
+ "elf.R_PPC_LOCAL24PC": "debug/elf",
+ "elf.R_PPC_NONE": "debug/elf",
+ "elf.R_PPC_PLT16_HA": "debug/elf",
+ "elf.R_PPC_PLT16_HI": "debug/elf",
+ "elf.R_PPC_PLT16_LO": "debug/elf",
+ "elf.R_PPC_PLT32": "debug/elf",
+ "elf.R_PPC_PLTREL24": "debug/elf",
+ "elf.R_PPC_PLTREL32": "debug/elf",
+ "elf.R_PPC_REL14": "debug/elf",
+ "elf.R_PPC_REL14_BRNTAKEN": "debug/elf",
+ "elf.R_PPC_REL14_BRTAKEN": "debug/elf",
+ "elf.R_PPC_REL24": "debug/elf",
+ "elf.R_PPC_REL32": "debug/elf",
+ "elf.R_PPC_RELATIVE": "debug/elf",
+ "elf.R_PPC_SDAREL16": "debug/elf",
+ "elf.R_PPC_SECTOFF": "debug/elf",
+ "elf.R_PPC_SECTOFF_HA": "debug/elf",
+ "elf.R_PPC_SECTOFF_HI": "debug/elf",
+ "elf.R_PPC_SECTOFF_LO": "debug/elf",
+ "elf.R_PPC_TLS": "debug/elf",
+ "elf.R_PPC_TPREL16": "debug/elf",
+ "elf.R_PPC_TPREL16_HA": "debug/elf",
+ "elf.R_PPC_TPREL16_HI": "debug/elf",
+ "elf.R_PPC_TPREL16_LO": "debug/elf",
+ "elf.R_PPC_TPREL32": "debug/elf",
+ "elf.R_PPC_UADDR16": "debug/elf",
+ "elf.R_PPC_UADDR32": "debug/elf",
+ "elf.R_SPARC": "debug/elf",
+ "elf.R_SPARC_10": "debug/elf",
+ "elf.R_SPARC_11": "debug/elf",
+ "elf.R_SPARC_13": "debug/elf",
+ "elf.R_SPARC_16": "debug/elf",
+ "elf.R_SPARC_22": "debug/elf",
+ "elf.R_SPARC_32": "debug/elf",
+ "elf.R_SPARC_5": "debug/elf",
+ "elf.R_SPARC_6": "debug/elf",
+ "elf.R_SPARC_64": "debug/elf",
+ "elf.R_SPARC_7": "debug/elf",
+ "elf.R_SPARC_8": "debug/elf",
+ "elf.R_SPARC_COPY": "debug/elf",
+ "elf.R_SPARC_DISP16": "debug/elf",
+ "elf.R_SPARC_DISP32": "debug/elf",
+ "elf.R_SPARC_DISP64": "debug/elf",
+ "elf.R_SPARC_DISP8": "debug/elf",
+ "elf.R_SPARC_GLOB_DAT": "debug/elf",
+ "elf.R_SPARC_GLOB_JMP": "debug/elf",
+ "elf.R_SPARC_GOT10": "debug/elf",
+ "elf.R_SPARC_GOT13": "debug/elf",
+ "elf.R_SPARC_GOT22": "debug/elf",
+ "elf.R_SPARC_H44": "debug/elf",
+ "elf.R_SPARC_HH22": "debug/elf",
+ "elf.R_SPARC_HI22": "debug/elf",
+ "elf.R_SPARC_HIPLT22": "debug/elf",
+ "elf.R_SPARC_HIX22": "debug/elf",
+ "elf.R_SPARC_HM10": "debug/elf",
+ "elf.R_SPARC_JMP_SLOT": "debug/elf",
+ "elf.R_SPARC_L44": "debug/elf",
+ "elf.R_SPARC_LM22": "debug/elf",
+ "elf.R_SPARC_LO10": "debug/elf",
+ "elf.R_SPARC_LOPLT10": "debug/elf",
+ "elf.R_SPARC_LOX10": "debug/elf",
+ "elf.R_SPARC_M44": "debug/elf",
+ "elf.R_SPARC_NONE": "debug/elf",
+ "elf.R_SPARC_OLO10": "debug/elf",
+ "elf.R_SPARC_PC10": "debug/elf",
+ "elf.R_SPARC_PC22": "debug/elf",
+ "elf.R_SPARC_PCPLT10": "debug/elf",
+ "elf.R_SPARC_PCPLT22": "debug/elf",
+ "elf.R_SPARC_PCPLT32": "debug/elf",
+ "elf.R_SPARC_PC_HH22": "debug/elf",
+ "elf.R_SPARC_PC_HM10": "debug/elf",
+ "elf.R_SPARC_PC_LM22": "debug/elf",
+ "elf.R_SPARC_PLT32": "debug/elf",
+ "elf.R_SPARC_PLT64": "debug/elf",
+ "elf.R_SPARC_REGISTER": "debug/elf",
+ "elf.R_SPARC_RELATIVE": "debug/elf",
+ "elf.R_SPARC_UA16": "debug/elf",
+ "elf.R_SPARC_UA32": "debug/elf",
+ "elf.R_SPARC_UA64": "debug/elf",
+ "elf.R_SPARC_WDISP16": "debug/elf",
+ "elf.R_SPARC_WDISP19": "debug/elf",
+ "elf.R_SPARC_WDISP22": "debug/elf",
+ "elf.R_SPARC_WDISP30": "debug/elf",
+ "elf.R_SPARC_WPLT30": "debug/elf",
+ "elf.R_SYM32": "debug/elf",
+ "elf.R_SYM64": "debug/elf",
+ "elf.R_TYPE32": "debug/elf",
+ "elf.R_TYPE64": "debug/elf",
+ "elf.R_X86_64": "debug/elf",
+ "elf.R_X86_64_16": "debug/elf",
+ "elf.R_X86_64_32": "debug/elf",
+ "elf.R_X86_64_32S": "debug/elf",
+ "elf.R_X86_64_64": "debug/elf",
+ "elf.R_X86_64_8": "debug/elf",
+ "elf.R_X86_64_COPY": "debug/elf",
+ "elf.R_X86_64_DTPMOD64": "debug/elf",
+ "elf.R_X86_64_DTPOFF32": "debug/elf",
+ "elf.R_X86_64_DTPOFF64": "debug/elf",
+ "elf.R_X86_64_GLOB_DAT": "debug/elf",
+ "elf.R_X86_64_GOT32": "debug/elf",
+ "elf.R_X86_64_GOTPCREL": "debug/elf",
+ "elf.R_X86_64_GOTTPOFF": "debug/elf",
+ "elf.R_X86_64_JMP_SLOT": "debug/elf",
+ "elf.R_X86_64_NONE": "debug/elf",
+ "elf.R_X86_64_PC16": "debug/elf",
+ "elf.R_X86_64_PC32": "debug/elf",
+ "elf.R_X86_64_PC8": "debug/elf",
+ "elf.R_X86_64_PLT32": "debug/elf",
+ "elf.R_X86_64_RELATIVE": "debug/elf",
+ "elf.R_X86_64_TLSGD": "debug/elf",
+ "elf.R_X86_64_TLSLD": "debug/elf",
+ "elf.R_X86_64_TPOFF32": "debug/elf",
+ "elf.R_X86_64_TPOFF64": "debug/elf",
+ "elf.Rel32": "debug/elf",
+ "elf.Rel64": "debug/elf",
+ "elf.Rela32": "debug/elf",
+ "elf.Rela64": "debug/elf",
+ "elf.SHF_ALLOC": "debug/elf",
+ "elf.SHF_COMPRESSED": "debug/elf",
+ "elf.SHF_EXECINSTR": "debug/elf",
+ "elf.SHF_GROUP": "debug/elf",
+ "elf.SHF_INFO_LINK": "debug/elf",
+ "elf.SHF_LINK_ORDER": "debug/elf",
+ "elf.SHF_MASKOS": "debug/elf",
+ "elf.SHF_MASKPROC": "debug/elf",
+ "elf.SHF_MERGE": "debug/elf",
+ "elf.SHF_OS_NONCONFORMING": "debug/elf",
+ "elf.SHF_STRINGS": "debug/elf",
+ "elf.SHF_TLS": "debug/elf",
+ "elf.SHF_WRITE": "debug/elf",
+ "elf.SHN_ABS": "debug/elf",
+ "elf.SHN_COMMON": "debug/elf",
+ "elf.SHN_HIOS": "debug/elf",
+ "elf.SHN_HIPROC": "debug/elf",
+ "elf.SHN_HIRESERVE": "debug/elf",
+ "elf.SHN_LOOS": "debug/elf",
+ "elf.SHN_LOPROC": "debug/elf",
+ "elf.SHN_LORESERVE": "debug/elf",
+ "elf.SHN_UNDEF": "debug/elf",
+ "elf.SHN_XINDEX": "debug/elf",
+ "elf.SHT_DYNAMIC": "debug/elf",
+ "elf.SHT_DYNSYM": "debug/elf",
+ "elf.SHT_FINI_ARRAY": "debug/elf",
+ "elf.SHT_GNU_ATTRIBUTES": "debug/elf",
+ "elf.SHT_GNU_HASH": "debug/elf",
+ "elf.SHT_GNU_LIBLIST": "debug/elf",
+ "elf.SHT_GNU_VERDEF": "debug/elf",
+ "elf.SHT_GNU_VERNEED": "debug/elf",
+ "elf.SHT_GNU_VERSYM": "debug/elf",
+ "elf.SHT_GROUP": "debug/elf",
+ "elf.SHT_HASH": "debug/elf",
+ "elf.SHT_HIOS": "debug/elf",
+ "elf.SHT_HIPROC": "debug/elf",
+ "elf.SHT_HIUSER": "debug/elf",
+ "elf.SHT_INIT_ARRAY": "debug/elf",
+ "elf.SHT_LOOS": "debug/elf",
+ "elf.SHT_LOPROC": "debug/elf",
+ "elf.SHT_LOUSER": "debug/elf",
+ "elf.SHT_NOBITS": "debug/elf",
+ "elf.SHT_NOTE": "debug/elf",
+ "elf.SHT_NULL": "debug/elf",
+ "elf.SHT_PREINIT_ARRAY": "debug/elf",
+ "elf.SHT_PROGBITS": "debug/elf",
+ "elf.SHT_REL": "debug/elf",
+ "elf.SHT_RELA": "debug/elf",
+ "elf.SHT_SHLIB": "debug/elf",
+ "elf.SHT_STRTAB": "debug/elf",
+ "elf.SHT_SYMTAB": "debug/elf",
+ "elf.SHT_SYMTAB_SHNDX": "debug/elf",
+ "elf.STB_GLOBAL": "debug/elf",
+ "elf.STB_HIOS": "debug/elf",
+ "elf.STB_HIPROC": "debug/elf",
+ "elf.STB_LOCAL": "debug/elf",
+ "elf.STB_LOOS": "debug/elf",
+ "elf.STB_LOPROC": "debug/elf",
+ "elf.STB_WEAK": "debug/elf",
+ "elf.STT_COMMON": "debug/elf",
+ "elf.STT_FILE": "debug/elf",
+ "elf.STT_FUNC": "debug/elf",
+ "elf.STT_HIOS": "debug/elf",
+ "elf.STT_HIPROC": "debug/elf",
+ "elf.STT_LOOS": "debug/elf",
+ "elf.STT_LOPROC": "debug/elf",
+ "elf.STT_NOTYPE": "debug/elf",
+ "elf.STT_OBJECT": "debug/elf",
+ "elf.STT_SECTION": "debug/elf",
+ "elf.STT_TLS": "debug/elf",
+ "elf.STV_DEFAULT": "debug/elf",
+ "elf.STV_HIDDEN": "debug/elf",
+ "elf.STV_INTERNAL": "debug/elf",
+ "elf.STV_PROTECTED": "debug/elf",
+ "elf.ST_BIND": "debug/elf",
+ "elf.ST_INFO": "debug/elf",
+ "elf.ST_TYPE": "debug/elf",
+ "elf.ST_VISIBILITY": "debug/elf",
+ "elf.Section": "debug/elf",
+ "elf.Section32": "debug/elf",
+ "elf.Section64": "debug/elf",
+ "elf.SectionFlag": "debug/elf",
+ "elf.SectionHeader": "debug/elf",
+ "elf.SectionIndex": "debug/elf",
+ "elf.SectionType": "debug/elf",
+ "elf.Sym32": "debug/elf",
+ "elf.Sym32Size": "debug/elf",
+ "elf.Sym64": "debug/elf",
+ "elf.Sym64Size": "debug/elf",
+ "elf.SymBind": "debug/elf",
+ "elf.SymType": "debug/elf",
+ "elf.SymVis": "debug/elf",
+ "elf.Symbol": "debug/elf",
+ "elf.Type": "debug/elf",
+ "elf.Version": "debug/elf",
+ "elliptic.Curve": "crypto/elliptic",
+ "elliptic.CurveParams": "crypto/elliptic",
+ "elliptic.GenerateKey": "crypto/elliptic",
+ "elliptic.Marshal": "crypto/elliptic",
+ "elliptic.P224": "crypto/elliptic",
+ "elliptic.P256": "crypto/elliptic",
+ "elliptic.P384": "crypto/elliptic",
+ "elliptic.P521": "crypto/elliptic",
+ "elliptic.Unmarshal": "crypto/elliptic",
+ "encoding.BinaryMarshaler": "encoding",
+ "encoding.BinaryUnmarshaler": "encoding",
+ "encoding.TextMarshaler": "encoding",
+ "encoding.TextUnmarshaler": "encoding",
+ "errors.New": "errors",
+ "exec.Cmd": "os/exec",
+ "exec.Command": "os/exec",
+ "exec.CommandContext": "os/exec",
+ "exec.ErrNotFound": "os/exec",
+ "exec.Error": "os/exec",
+ "exec.ExitError": "os/exec",
+ "exec.LookPath": "os/exec",
+ "expvar.Do": "expvar",
+ "expvar.Float": "expvar",
+ "expvar.Func": "expvar",
+ "expvar.Get": "expvar",
+ "expvar.Int": "expvar",
+ "expvar.KeyValue": "expvar",
+ "expvar.Map": "expvar",
+ "expvar.NewFloat": "expvar",
+ "expvar.NewInt": "expvar",
+ "expvar.NewMap": "expvar",
+ "expvar.NewString": "expvar",
+ "expvar.Publish": "expvar",
+ "expvar.String": "expvar",
+ "expvar.Var": "expvar",
+ "fcgi.ErrConnClosed": "net/http/fcgi",
+ "fcgi.ErrRequestAborted": "net/http/fcgi",
+ "fcgi.Serve": "net/http/fcgi",
+ "filepath.Abs": "path/filepath",
+ "filepath.Base": "path/filepath",
+ "filepath.Clean": "path/filepath",
+ "filepath.Dir": "path/filepath",
+ "filepath.ErrBadPattern": "path/filepath",
+ "filepath.EvalSymlinks": "path/filepath",
+ "filepath.Ext": "path/filepath",
+ "filepath.FromSlash": "path/filepath",
+ "filepath.Glob": "path/filepath",
+ "filepath.HasPrefix": "path/filepath",
+ "filepath.IsAbs": "path/filepath",
+ "filepath.Join": "path/filepath",
+ "filepath.ListSeparator": "path/filepath",
+ "filepath.Match": "path/filepath",
+ "filepath.Rel": "path/filepath",
+ "filepath.Separator": "path/filepath",
+ "filepath.SkipDir": "path/filepath",
+ "filepath.Split": "path/filepath",
+ "filepath.SplitList": "path/filepath",
+ "filepath.ToSlash": "path/filepath",
+ "filepath.VolumeName": "path/filepath",
+ "filepath.Walk": "path/filepath",
+ "filepath.WalkFunc": "path/filepath",
+ "flag.Arg": "flag",
+ "flag.Args": "flag",
+ "flag.Bool": "flag",
+ "flag.BoolVar": "flag",
+ "flag.CommandLine": "flag",
+ "flag.ContinueOnError": "flag",
+ "flag.Duration": "flag",
+ "flag.DurationVar": "flag",
+ "flag.ErrHelp": "flag",
+ "flag.ErrorHandling": "flag",
+ "flag.ExitOnError": "flag",
+ "flag.Flag": "flag",
+ "flag.FlagSet": "flag",
+ "flag.Float64": "flag",
+ "flag.Float64Var": "flag",
+ "flag.Getter": "flag",
+ "flag.Int": "flag",
+ "flag.Int64": "flag",
+ "flag.Int64Var": "flag",
+ "flag.IntVar": "flag",
+ "flag.Lookup": "flag",
+ "flag.NArg": "flag",
+ "flag.NFlag": "flag",
+ "flag.NewFlagSet": "flag",
+ "flag.PanicOnError": "flag",
+ "flag.Parse": "flag",
+ "flag.Parsed": "flag",
+ "flag.PrintDefaults": "flag",
+ "flag.Set": "flag",
+ "flag.String": "flag",
+ "flag.StringVar": "flag",
+ "flag.Uint": "flag",
+ "flag.Uint64": "flag",
+ "flag.Uint64Var": "flag",
+ "flag.UintVar": "flag",
+ "flag.UnquoteUsage": "flag",
+ "flag.Usage": "flag",
+ "flag.Value": "flag",
+ "flag.Var": "flag",
+ "flag.Visit": "flag",
+ "flag.VisitAll": "flag",
+ "flate.BestCompression": "compress/flate",
+ "flate.BestSpeed": "compress/flate",
+ "flate.CorruptInputError": "compress/flate",
+ "flate.DefaultCompression": "compress/flate",
+ "flate.HuffmanOnly": "compress/flate",
+ "flate.InternalError": "compress/flate",
+ "flate.NewReader": "compress/flate",
+ "flate.NewReaderDict": "compress/flate",
+ "flate.NewWriter": "compress/flate",
+ "flate.NewWriterDict": "compress/flate",
+ "flate.NoCompression": "compress/flate",
+ "flate.ReadError": "compress/flate",
+ "flate.Reader": "compress/flate",
+ "flate.Resetter": "compress/flate",
+ "flate.WriteError": "compress/flate",
+ "flate.Writer": "compress/flate",
+ "fmt.Errorf": "fmt",
+ "fmt.Formatter": "fmt",
+ "fmt.Fprint": "fmt",
+ "fmt.Fprintf": "fmt",
+ "fmt.Fprintln": "fmt",
+ "fmt.Fscan": "fmt",
+ "fmt.Fscanf": "fmt",
+ "fmt.Fscanln": "fmt",
+ "fmt.GoStringer": "fmt",
+ "fmt.Print": "fmt",
+ "fmt.Printf": "fmt",
+ "fmt.Println": "fmt",
+ "fmt.Scan": "fmt",
+ "fmt.ScanState": "fmt",
+ "fmt.Scanf": "fmt",
+ "fmt.Scanln": "fmt",
+ "fmt.Scanner": "fmt",
+ "fmt.Sprint": "fmt",
+ "fmt.Sprintf": "fmt",
+ "fmt.Sprintln": "fmt",
+ "fmt.Sscan": "fmt",
+ "fmt.Sscanf": "fmt",
+ "fmt.Sscanln": "fmt",
+ "fmt.State": "fmt",
+ "fmt.Stringer": "fmt",
+ "fnv.New32": "hash/fnv",
+ "fnv.New32a": "hash/fnv",
+ "fnv.New64": "hash/fnv",
+ "fnv.New64a": "hash/fnv",
+ "format.Node": "go/format",
+ "format.Source": "go/format",
+ "gif.Decode": "image/gif",
+ "gif.DecodeAll": "image/gif",
+ "gif.DecodeConfig": "image/gif",
+ "gif.DisposalBackground": "image/gif",
+ "gif.DisposalNone": "image/gif",
+ "gif.DisposalPrevious": "image/gif",
+ "gif.Encode": "image/gif",
+ "gif.EncodeAll": "image/gif",
+ "gif.GIF": "image/gif",
+ "gif.Options": "image/gif",
+ "gob.CommonType": "encoding/gob",
+ "gob.Decoder": "encoding/gob",
+ "gob.Encoder": "encoding/gob",
+ "gob.GobDecoder": "encoding/gob",
+ "gob.GobEncoder": "encoding/gob",
+ "gob.NewDecoder": "encoding/gob",
+ "gob.NewEncoder": "encoding/gob",
+ "gob.Register": "encoding/gob",
+ "gob.RegisterName": "encoding/gob",
+ "gosym.DecodingError": "debug/gosym",
+ "gosym.Func": "debug/gosym",
+ "gosym.LineTable": "debug/gosym",
+ "gosym.NewLineTable": "debug/gosym",
+ "gosym.NewTable": "debug/gosym",
+ "gosym.Obj": "debug/gosym",
+ "gosym.Sym": "debug/gosym",
+ "gosym.Table": "debug/gosym",
+ "gosym.UnknownFileError": "debug/gosym",
+ "gosym.UnknownLineError": "debug/gosym",
+ "gzip.BestCompression": "compress/gzip",
+ "gzip.BestSpeed": "compress/gzip",
+ "gzip.DefaultCompression": "compress/gzip",
+ "gzip.ErrChecksum": "compress/gzip",
+ "gzip.ErrHeader": "compress/gzip",
+ "gzip.Header": "compress/gzip",
+ "gzip.NewReader": "compress/gzip",
+ "gzip.NewWriter": "compress/gzip",
+ "gzip.NewWriterLevel": "compress/gzip",
+ "gzip.NoCompression": "compress/gzip",
+ "gzip.Reader": "compress/gzip",
+ "gzip.Writer": "compress/gzip",
+ "hash.Hash": "hash",
+ "hash.Hash32": "hash",
+ "hash.Hash64": "hash",
+ "heap.Fix": "container/heap",
+ "heap.Init": "container/heap",
+ "heap.Interface": "container/heap",
+ "heap.Pop": "container/heap",
+ "heap.Push": "container/heap",
+ "heap.Remove": "container/heap",
+ "hex.Decode": "encoding/hex",
+ "hex.DecodeString": "encoding/hex",
+ "hex.DecodedLen": "encoding/hex",
+ "hex.Dump": "encoding/hex",
+ "hex.Dumper": "encoding/hex",
+ "hex.Encode": "encoding/hex",
+ "hex.EncodeToString": "encoding/hex",
+ "hex.EncodedLen": "encoding/hex",
+ "hex.ErrLength": "encoding/hex",
+ "hex.InvalidByteError": "encoding/hex",
+ "hmac.Equal": "crypto/hmac",
+ "hmac.New": "crypto/hmac",
+ "html.EscapeString": "html",
+ "html.UnescapeString": "html",
+ "http.CanonicalHeaderKey": "net/http",
+ "http.Client": "net/http",
+ "http.CloseNotifier": "net/http",
+ "http.ConnState": "net/http",
+ "http.Cookie": "net/http",
+ "http.CookieJar": "net/http",
+ "http.DefaultClient": "net/http",
+ "http.DefaultMaxHeaderBytes": "net/http",
+ "http.DefaultMaxIdleConnsPerHost": "net/http",
+ "http.DefaultServeMux": "net/http",
+ "http.DefaultTransport": "net/http",
+ "http.DetectContentType": "net/http",
+ "http.Dir": "net/http",
+ "http.ErrBodyNotAllowed": "net/http",
+ "http.ErrBodyReadAfterClose": "net/http",
+ "http.ErrContentLength": "net/http",
+ "http.ErrHandlerTimeout": "net/http",
+ "http.ErrHeaderTooLong": "net/http",
+ "http.ErrHijacked": "net/http",
+ "http.ErrLineTooLong": "net/http",
+ "http.ErrMissingBoundary": "net/http",
+ "http.ErrMissingContentLength": "net/http",
+ "http.ErrMissingFile": "net/http",
+ "http.ErrNoCookie": "net/http",
+ "http.ErrNoLocation": "net/http",
+ "http.ErrNotMultipart": "net/http",
+ "http.ErrNotSupported": "net/http",
+ "http.ErrShortBody": "net/http",
+ "http.ErrSkipAltProtocol": "net/http",
+ "http.ErrUnexpectedTrailer": "net/http",
+ "http.ErrUseLastResponse": "net/http",
+ "http.ErrWriteAfterFlush": "net/http",
+ "http.Error": "net/http",
+ "http.File": "net/http",
+ "http.FileServer": "net/http",
+ "http.FileSystem": "net/http",
+ "http.Flusher": "net/http",
+ "http.Get": "net/http",
+ "http.Handle": "net/http",
+ "http.HandleFunc": "net/http",
+ "http.Handler": "net/http",
+ "http.HandlerFunc": "net/http",
+ "http.Head": "net/http",
+ "http.Header": "net/http",
+ "http.Hijacker": "net/http",
+ "http.ListenAndServe": "net/http",
+ "http.ListenAndServeTLS": "net/http",
+ "http.LocalAddrContextKey": "net/http",
+ "http.MaxBytesReader": "net/http",
+ "http.MethodConnect": "net/http",
+ "http.MethodDelete": "net/http",
+ "http.MethodGet": "net/http",
+ "http.MethodHead": "net/http",
+ "http.MethodOptions": "net/http",
+ "http.MethodPatch": "net/http",
+ "http.MethodPost": "net/http",
+ "http.MethodPut": "net/http",
+ "http.MethodTrace": "net/http",
+ "http.NewFileTransport": "net/http",
+ "http.NewRequest": "net/http",
+ "http.NewServeMux": "net/http",
+ "http.NotFound": "net/http",
+ "http.NotFoundHandler": "net/http",
+ "http.ParseHTTPVersion": "net/http",
+ "http.ParseTime": "net/http",
+ "http.Post": "net/http",
+ "http.PostForm": "net/http",
+ "http.ProtocolError": "net/http",
+ "http.ProxyFromEnvironment": "net/http",
+ "http.ProxyURL": "net/http",
+ "http.ReadRequest": "net/http",
+ "http.ReadResponse": "net/http",
+ "http.Redirect": "net/http",
+ "http.RedirectHandler": "net/http",
+ "http.Request": "net/http",
+ "http.Response": "net/http",
+ "http.ResponseWriter": "net/http",
+ "http.RoundTripper": "net/http",
+ "http.Serve": "net/http",
+ "http.ServeContent": "net/http",
+ "http.ServeFile": "net/http",
+ "http.ServeMux": "net/http",
+ "http.Server": "net/http",
+ "http.ServerContextKey": "net/http",
+ "http.SetCookie": "net/http",
+ "http.StateActive": "net/http",
+ "http.StateClosed": "net/http",
+ "http.StateHijacked": "net/http",
+ "http.StateIdle": "net/http",
+ "http.StateNew": "net/http",
+ "http.StatusAccepted": "net/http",
+ "http.StatusAlreadyReported": "net/http",
+ "http.StatusBadGateway": "net/http",
+ "http.StatusBadRequest": "net/http",
+ "http.StatusConflict": "net/http",
+ "http.StatusContinue": "net/http",
+ "http.StatusCreated": "net/http",
+ "http.StatusExpectationFailed": "net/http",
+ "http.StatusFailedDependency": "net/http",
+ "http.StatusForbidden": "net/http",
+ "http.StatusFound": "net/http",
+ "http.StatusGatewayTimeout": "net/http",
+ "http.StatusGone": "net/http",
+ "http.StatusHTTPVersionNotSupported": "net/http",
+ "http.StatusIMUsed": "net/http",
+ "http.StatusInsufficientStorage": "net/http",
+ "http.StatusInternalServerError": "net/http",
+ "http.StatusLengthRequired": "net/http",
+ "http.StatusLocked": "net/http",
+ "http.StatusLoopDetected": "net/http",
+ "http.StatusMethodNotAllowed": "net/http",
+ "http.StatusMovedPermanently": "net/http",
+ "http.StatusMultiStatus": "net/http",
+ "http.StatusMultipleChoices": "net/http",
+ "http.StatusNetworkAuthenticationRequired": "net/http",
+ "http.StatusNoContent": "net/http",
+ "http.StatusNonAuthoritativeInfo": "net/http",
+ "http.StatusNotAcceptable": "net/http",
+ "http.StatusNotExtended": "net/http",
+ "http.StatusNotFound": "net/http",
+ "http.StatusNotImplemented": "net/http",
+ "http.StatusNotModified": "net/http",
+ "http.StatusOK": "net/http",
+ "http.StatusPartialContent": "net/http",
+ "http.StatusPaymentRequired": "net/http",
+ "http.StatusPermanentRedirect": "net/http",
+ "http.StatusPreconditionFailed": "net/http",
+ "http.StatusPreconditionRequired": "net/http",
+ "http.StatusProcessing": "net/http",
+ "http.StatusProxyAuthRequired": "net/http",
+ "http.StatusRequestEntityTooLarge": "net/http",
+ "http.StatusRequestHeaderFieldsTooLarge": "net/http",
+ "http.StatusRequestTimeout": "net/http",
+ "http.StatusRequestURITooLong": "net/http",
+ "http.StatusRequestedRangeNotSatisfiable": "net/http",
+ "http.StatusResetContent": "net/http",
+ "http.StatusSeeOther": "net/http",
+ "http.StatusServiceUnavailable": "net/http",
+ "http.StatusSwitchingProtocols": "net/http",
+ "http.StatusTeapot": "net/http",
+ "http.StatusTemporaryRedirect": "net/http",
+ "http.StatusText": "net/http",
+ "http.StatusTooManyRequests": "net/http",
+ "http.StatusUnauthorized": "net/http",
+ "http.StatusUnavailableForLegalReasons": "net/http",
+ "http.StatusUnprocessableEntity": "net/http",
+ "http.StatusUnsupportedMediaType": "net/http",
+ "http.StatusUpgradeRequired": "net/http",
+ "http.StatusUseProxy": "net/http",
+ "http.StatusVariantAlsoNegotiates": "net/http",
+ "http.StripPrefix": "net/http",
+ "http.TimeFormat": "net/http",
+ "http.TimeoutHandler": "net/http",
+ "http.Transport": "net/http",
+ "httptest.DefaultRemoteAddr": "net/http/httptest",
+ "httptest.NewRecorder": "net/http/httptest",
+ "httptest.NewRequest": "net/http/httptest",
+ "httptest.NewServer": "net/http/httptest",
+ "httptest.NewTLSServer": "net/http/httptest",
+ "httptest.NewUnstartedServer": "net/http/httptest",
+ "httptest.ResponseRecorder": "net/http/httptest",
+ "httptest.Server": "net/http/httptest",
+ "httptrace.ClientTrace": "net/http/httptrace",
+ "httptrace.ContextClientTrace": "net/http/httptrace",
+ "httptrace.DNSDoneInfo": "net/http/httptrace",
+ "httptrace.DNSStartInfo": "net/http/httptrace",
+ "httptrace.GotConnInfo": "net/http/httptrace",
+ "httptrace.WithClientTrace": "net/http/httptrace",
+ "httptrace.WroteRequestInfo": "net/http/httptrace",
+ "httputil.BufferPool": "net/http/httputil",
+ "httputil.ClientConn": "net/http/httputil",
+ "httputil.DumpRequest": "net/http/httputil",
+ "httputil.DumpRequestOut": "net/http/httputil",
+ "httputil.DumpResponse": "net/http/httputil",
+ "httputil.ErrClosed": "net/http/httputil",
+ "httputil.ErrLineTooLong": "net/http/httputil",
+ "httputil.ErrPersistEOF": "net/http/httputil",
+ "httputil.ErrPipeline": "net/http/httputil",
+ "httputil.NewChunkedReader": "net/http/httputil",
+ "httputil.NewChunkedWriter": "net/http/httputil",
+ "httputil.NewClientConn": "net/http/httputil",
+ "httputil.NewProxyClientConn": "net/http/httputil",
+ "httputil.NewServerConn": "net/http/httputil",
+ "httputil.NewSingleHostReverseProxy": "net/http/httputil",
+ "httputil.ReverseProxy": "net/http/httputil",
+ "httputil.ServerConn": "net/http/httputil",
+ "image.Alpha": "image",
+ "image.Alpha16": "image",
+ "image.Black": "image",
+ "image.CMYK": "image",
+ "image.Config": "image",
+ "image.Decode": "image",
+ "image.DecodeConfig": "image",
+ "image.ErrFormat": "image",
+ "image.Gray": "image",
+ "image.Gray16": "image",
+ "image.Image": "image",
+ "image.NRGBA": "image",
+ "image.NRGBA64": "image",
+ "image.NYCbCrA": "image",
+ "image.NewAlpha": "image",
+ "image.NewAlpha16": "image",
+ "image.NewCMYK": "image",
+ "image.NewGray": "image",
+ "image.NewGray16": "image",
+ "image.NewNRGBA": "image",
+ "image.NewNRGBA64": "image",
+ "image.NewNYCbCrA": "image",
+ "image.NewPaletted": "image",
+ "image.NewRGBA": "image",
+ "image.NewRGBA64": "image",
+ "image.NewUniform": "image",
+ "image.NewYCbCr": "image",
+ "image.Opaque": "image",
+ "image.Paletted": "image",
+ "image.PalettedImage": "image",
+ "image.Point": "image",
+ "image.Pt": "image",
+ "image.RGBA": "image",
+ "image.RGBA64": "image",
+ "image.Rect": "image",
+ "image.Rectangle": "image",
+ "image.RegisterFormat": "image",
+ "image.Transparent": "image",
+ "image.Uniform": "image",
+ "image.White": "image",
+ "image.YCbCr": "image",
+ "image.YCbCrSubsampleRatio": "image",
+ "image.YCbCrSubsampleRatio410": "image",
+ "image.YCbCrSubsampleRatio411": "image",
+ "image.YCbCrSubsampleRatio420": "image",
+ "image.YCbCrSubsampleRatio422": "image",
+ "image.YCbCrSubsampleRatio440": "image",
+ "image.YCbCrSubsampleRatio444": "image",
+ "image.ZP": "image",
+ "image.ZR": "image",
+ "importer.Default": "go/importer",
+ "importer.For": "go/importer",
+ "importer.Lookup": "go/importer",
+ "io.ByteReader": "io",
+ "io.ByteScanner": "io",
+ "io.ByteWriter": "io",
+ "io.Closer": "io",
+ "io.Copy": "io",
+ "io.CopyBuffer": "io",
+ "io.CopyN": "io",
+ "io.EOF": "io",
+ "io.ErrClosedPipe": "io",
+ "io.ErrNoProgress": "io",
+ "io.ErrShortBuffer": "io",
+ "io.ErrShortWrite": "io",
+ "io.ErrUnexpectedEOF": "io",
+ "io.LimitReader": "io",
+ "io.LimitedReader": "io",
+ "io.MultiReader": "io",
+ "io.MultiWriter": "io",
+ "io.NewSectionReader": "io",
+ "io.Pipe": "io",
+ "io.PipeReader": "io",
+ "io.PipeWriter": "io",
+ "io.ReadAtLeast": "io",
+ "io.ReadCloser": "io",
+ "io.ReadFull": "io",
+ "io.ReadSeeker": "io",
+ "io.ReadWriteCloser": "io",
+ "io.ReadWriteSeeker": "io",
+ "io.ReadWriter": "io",
+ "io.Reader": "io",
+ "io.ReaderAt": "io",
+ "io.ReaderFrom": "io",
+ "io.RuneReader": "io",
+ "io.RuneScanner": "io",
+ "io.SectionReader": "io",
+ "io.SeekCurrent": "io",
+ "io.SeekEnd": "io",
+ "io.SeekStart": "io",
+ "io.Seeker": "io",
+ "io.TeeReader": "io",
+ "io.WriteCloser": "io",
+ "io.WriteSeeker": "io",
+ "io.WriteString": "io",
+ "io.Writer": "io",
+ "io.WriterAt": "io",
+ "io.WriterTo": "io",
+ "iotest.DataErrReader": "testing/iotest",
+ "iotest.ErrTimeout": "testing/iotest",
+ "iotest.HalfReader": "testing/iotest",
+ "iotest.NewReadLogger": "testing/iotest",
+ "iotest.NewWriteLogger": "testing/iotest",
+ "iotest.OneByteReader": "testing/iotest",
+ "iotest.TimeoutReader": "testing/iotest",
+ "iotest.TruncateWriter": "testing/iotest",
+ "ioutil.Discard": "io/ioutil",
+ "ioutil.NopCloser": "io/ioutil",
+ "ioutil.ReadAll": "io/ioutil",
+ "ioutil.ReadDir": "io/ioutil",
+ "ioutil.ReadFile": "io/ioutil",
+ "ioutil.TempDir": "io/ioutil",
+ "ioutil.TempFile": "io/ioutil",
+ "ioutil.WriteFile": "io/ioutil",
+ "jpeg.Decode": "image/jpeg",
+ "jpeg.DecodeConfig": "image/jpeg",
+ "jpeg.DefaultQuality": "image/jpeg",
+ "jpeg.Encode": "image/jpeg",
+ "jpeg.FormatError": "image/jpeg",
+ "jpeg.Options": "image/jpeg",
+ "jpeg.Reader": "image/jpeg",
+ "jpeg.UnsupportedError": "image/jpeg",
+ "json.Compact": "encoding/json",
+ "json.Decoder": "encoding/json",
+ "json.Delim": "encoding/json",
+ "json.Encoder": "encoding/json",
+ "json.HTMLEscape": "encoding/json",
+ "json.Indent": "encoding/json",
+ "json.InvalidUTF8Error": "encoding/json",
+ "json.InvalidUnmarshalError": "encoding/json",
+ "json.Marshal": "encoding/json",
+ "json.MarshalIndent": "encoding/json",
+ "json.Marshaler": "encoding/json",
+ "json.MarshalerError": "encoding/json",
+ "json.NewDecoder": "encoding/json",
+ "json.NewEncoder": "encoding/json",
+ "json.Number": "encoding/json",
+ "json.RawMessage": "encoding/json",
+ "json.SyntaxError": "encoding/json",
+ "json.Token": "encoding/json",
+ "json.Unmarshal": "encoding/json",
+ "json.UnmarshalFieldError": "encoding/json",
+ "json.UnmarshalTypeError": "encoding/json",
+ "json.Unmarshaler": "encoding/json",
+ "json.UnsupportedTypeError": "encoding/json",
+ "json.UnsupportedValueError": "encoding/json",
+ "jsonrpc.Dial": "net/rpc/jsonrpc",
+ "jsonrpc.NewClient": "net/rpc/jsonrpc",
+ "jsonrpc.NewClientCodec": "net/rpc/jsonrpc",
+ "jsonrpc.NewServerCodec": "net/rpc/jsonrpc",
+ "jsonrpc.ServeConn": "net/rpc/jsonrpc",
+ "list.Element": "container/list",
+ "list.List": "container/list",
+ "list.New": "container/list",
+ "log.Fatal": "log",
+ "log.Fatalf": "log",
+ "log.Fatalln": "log",
+ "log.Flags": "log",
+ "log.LUTC": "log",
+ "log.Ldate": "log",
+ "log.Llongfile": "log",
+ "log.Lmicroseconds": "log",
+ "log.Logger": "log",
+ "log.Lshortfile": "log",
+ "log.LstdFlags": "log",
+ "log.Ltime": "log",
+ "log.New": "log",
+ "log.Output": "log",
+ "log.Panic": "log",
+ "log.Panicf": "log",
+ "log.Panicln": "log",
+ "log.Prefix": "log",
+ "log.Print": "log",
+ "log.Printf": "log",
+ "log.Println": "log",
+ "log.SetFlags": "log",
+ "log.SetOutput": "log",
+ "log.SetPrefix": "log",
+ "lzw.LSB": "compress/lzw",
+ "lzw.MSB": "compress/lzw",
+ "lzw.NewReader": "compress/lzw",
+ "lzw.NewWriter": "compress/lzw",
+ "lzw.Order": "compress/lzw",
+ "macho.Cpu": "debug/macho",
+ "macho.Cpu386": "debug/macho",
+ "macho.CpuAmd64": "debug/macho",
+ "macho.CpuArm": "debug/macho",
+ "macho.CpuPpc": "debug/macho",
+ "macho.CpuPpc64": "debug/macho",
+ "macho.Dylib": "debug/macho",
+ "macho.DylibCmd": "debug/macho",
+ "macho.Dysymtab": "debug/macho",
+ "macho.DysymtabCmd": "debug/macho",
+ "macho.ErrNotFat": "debug/macho",
+ "macho.FatArch": "debug/macho",
+ "macho.FatArchHeader": "debug/macho",
+ "macho.FatFile": "debug/macho",
+ "macho.File": "debug/macho",
+ "macho.FileHeader": "debug/macho",
+ "macho.FormatError": "debug/macho",
+ "macho.Load": "debug/macho",
+ "macho.LoadBytes": "debug/macho",
+ "macho.LoadCmd": "debug/macho",
+ "macho.LoadCmdDylib": "debug/macho",
+ "macho.LoadCmdDylinker": "debug/macho",
+ "macho.LoadCmdDysymtab": "debug/macho",
+ "macho.LoadCmdSegment": "debug/macho",
+ "macho.LoadCmdSegment64": "debug/macho",
+ "macho.LoadCmdSymtab": "debug/macho",
+ "macho.LoadCmdThread": "debug/macho",
+ "macho.LoadCmdUnixThread": "debug/macho",
+ "macho.Magic32": "debug/macho",
+ "macho.Magic64": "debug/macho",
+ "macho.MagicFat": "debug/macho",
+ "macho.NewFatFile": "debug/macho",
+ "macho.NewFile": "debug/macho",
+ "macho.Nlist32": "debug/macho",
+ "macho.Nlist64": "debug/macho",
+ "macho.Open": "debug/macho",
+ "macho.OpenFat": "debug/macho",
+ "macho.Regs386": "debug/macho",
+ "macho.RegsAMD64": "debug/macho",
+ "macho.Section": "debug/macho",
+ "macho.Section32": "debug/macho",
+ "macho.Section64": "debug/macho",
+ "macho.SectionHeader": "debug/macho",
+ "macho.Segment": "debug/macho",
+ "macho.Segment32": "debug/macho",
+ "macho.Segment64": "debug/macho",
+ "macho.SegmentHeader": "debug/macho",
+ "macho.Symbol": "debug/macho",
+ "macho.Symtab": "debug/macho",
+ "macho.SymtabCmd": "debug/macho",
+ "macho.Thread": "debug/macho",
+ "macho.Type": "debug/macho",
+ "macho.TypeBundle": "debug/macho",
+ "macho.TypeDylib": "debug/macho",
+ "macho.TypeExec": "debug/macho",
+ "macho.TypeObj": "debug/macho",
+ "mail.Address": "net/mail",
+ "mail.AddressParser": "net/mail",
+ "mail.ErrHeaderNotPresent": "net/mail",
+ "mail.Header": "net/mail",
+ "mail.Message": "net/mail",
+ "mail.ParseAddress": "net/mail",
+ "mail.ParseAddressList": "net/mail",
+ "mail.ReadMessage": "net/mail",
+ "math.Abs": "math",
+ "math.Acos": "math",
+ "math.Acosh": "math",
+ "math.Asin": "math",
+ "math.Asinh": "math",
+ "math.Atan": "math",
+ "math.Atan2": "math",
+ "math.Atanh": "math",
+ "math.Cbrt": "math",
+ "math.Ceil": "math",
+ "math.Copysign": "math",
+ "math.Cos": "math",
+ "math.Cosh": "math",
+ "math.Dim": "math",
+ "math.E": "math",
+ "math.Erf": "math",
+ "math.Erfc": "math",
+ "math.Exp": "math",
+ "math.Exp2": "math",
+ "math.Expm1": "math",
+ "math.Float32bits": "math",
+ "math.Float32frombits": "math",
+ "math.Float64bits": "math",
+ "math.Float64frombits": "math",
+ "math.Floor": "math",
+ "math.Frexp": "math",
+ "math.Gamma": "math",
+ "math.Hypot": "math",
+ "math.Ilogb": "math",
+ "math.Inf": "math",
+ "math.IsInf": "math",
+ "math.IsNaN": "math",
+ "math.J0": "math",
+ "math.J1": "math",
+ "math.Jn": "math",
+ "math.Ldexp": "math",
+ "math.Lgamma": "math",
+ "math.Ln10": "math",
+ "math.Ln2": "math",
+ "math.Log": "math",
+ "math.Log10": "math",
+ "math.Log10E": "math",
+ "math.Log1p": "math",
+ "math.Log2": "math",
+ "math.Log2E": "math",
+ "math.Logb": "math",
+ "math.Max": "math",
+ "math.MaxFloat32": "math",
+ "math.MaxFloat64": "math",
+ "math.MaxInt16": "math",
+ "math.MaxInt32": "math",
+ "math.MaxInt64": "math",
+ "math.MaxInt8": "math",
+ "math.MaxUint16": "math",
+ "math.MaxUint32": "math",
+ "math.MaxUint64": "math",
+ "math.MaxUint8": "math",
+ "math.Min": "math",
+ "math.MinInt16": "math",
+ "math.MinInt32": "math",
+ "math.MinInt64": "math",
+ "math.MinInt8": "math",
+ "math.Mod": "math",
+ "math.Modf": "math",
+ "math.NaN": "math",
+ "math.Nextafter": "math",
+ "math.Nextafter32": "math",
+ "math.Phi": "math",
+ "math.Pi": "math",
+ "math.Pow": "math",
+ "math.Pow10": "math",
+ "math.Remainder": "math",
+ "math.Signbit": "math",
+ "math.Sin": "math",
+ "math.Sincos": "math",
+ "math.Sinh": "math",
+ "math.SmallestNonzeroFloat32": "math",
+ "math.SmallestNonzeroFloat64": "math",
+ "math.Sqrt": "math",
+ "math.Sqrt2": "math",
+ "math.SqrtE": "math",
+ "math.SqrtPhi": "math",
+ "math.SqrtPi": "math",
+ "math.Tan": "math",
+ "math.Tanh": "math",
+ "math.Trunc": "math",
+ "math.Y0": "math",
+ "math.Y1": "math",
+ "math.Yn": "math",
+ "md5.BlockSize": "crypto/md5",
+ "md5.New": "crypto/md5",
+ "md5.Size": "crypto/md5",
+ "md5.Sum": "crypto/md5",
+ "mime.AddExtensionType": "mime",
+ "mime.BEncoding": "mime",
+ "mime.ExtensionsByType": "mime",
+ "mime.FormatMediaType": "mime",
+ "mime.ParseMediaType": "mime",
+ "mime.QEncoding": "mime",
+ "mime.TypeByExtension": "mime",
+ "mime.WordDecoder": "mime",
+ "mime.WordEncoder": "mime",
+ "multipart.File": "mime/multipart",
+ "multipart.FileHeader": "mime/multipart",
+ "multipart.Form": "mime/multipart",
+ "multipart.NewReader": "mime/multipart",
+ "multipart.NewWriter": "mime/multipart",
+ "multipart.Part": "mime/multipart",
+ "multipart.Reader": "mime/multipart",
+ "multipart.Writer": "mime/multipart",
+ "net.Addr": "net",
+ "net.AddrError": "net",
+ "net.CIDRMask": "net",
+ "net.Conn": "net",
+ "net.DNSConfigError": "net",
+ "net.DNSError": "net",
+ "net.Dial": "net",
+ "net.DialIP": "net",
+ "net.DialTCP": "net",
+ "net.DialTimeout": "net",
+ "net.DialUDP": "net",
+ "net.DialUnix": "net",
+ "net.Dialer": "net",
+ "net.ErrWriteToConnected": "net",
+ "net.Error": "net",
+ "net.FileConn": "net",
+ "net.FileListener": "net",
+ "net.FilePacketConn": "net",
+ "net.FlagBroadcast": "net",
+ "net.FlagLoopback": "net",
+ "net.FlagMulticast": "net",
+ "net.FlagPointToPoint": "net",
+ "net.FlagUp": "net",
+ "net.Flags": "net",
+ "net.HardwareAddr": "net",
+ "net.IP": "net",
+ "net.IPAddr": "net",
+ "net.IPConn": "net",
+ "net.IPMask": "net",
+ "net.IPNet": "net",
+ "net.IPv4": "net",
+ "net.IPv4Mask": "net",
+ "net.IPv4allrouter": "net",
+ "net.IPv4allsys": "net",
+ "net.IPv4bcast": "net",
+ "net.IPv4len": "net",
+ "net.IPv4zero": "net",
+ "net.IPv6interfacelocalallnodes": "net",
+ "net.IPv6len": "net",
+ "net.IPv6linklocalallnodes": "net",
+ "net.IPv6linklocalallrouters": "net",
+ "net.IPv6loopback": "net",
+ "net.IPv6unspecified": "net",
+ "net.IPv6zero": "net",
+ "net.Interface": "net",
+ "net.InterfaceAddrs": "net",
+ "net.InterfaceByIndex": "net",
+ "net.InterfaceByName": "net",
+ "net.Interfaces": "net",
+ "net.InvalidAddrError": "net",
+ "net.JoinHostPort": "net",
+ "net.Listen": "net",
+ "net.ListenIP": "net",
+ "net.ListenMulticastUDP": "net",
+ "net.ListenPacket": "net",
+ "net.ListenTCP": "net",
+ "net.ListenUDP": "net",
+ "net.ListenUnix": "net",
+ "net.ListenUnixgram": "net",
+ "net.Listener": "net",
+ "net.LookupAddr": "net",
+ "net.LookupCNAME": "net",
+ "net.LookupHost": "net",
+ "net.LookupIP": "net",
+ "net.LookupMX": "net",
+ "net.LookupNS": "net",
+ "net.LookupPort": "net",
+ "net.LookupSRV": "net",
+ "net.LookupTXT": "net",
+ "net.MX": "net",
+ "net.NS": "net",
+ "net.OpError": "net",
+ "net.PacketConn": "net",
+ "net.ParseCIDR": "net",
+ "net.ParseError": "net",
+ "net.ParseIP": "net",
+ "net.ParseMAC": "net",
+ "net.Pipe": "net",
+ "net.ResolveIPAddr": "net",
+ "net.ResolveTCPAddr": "net",
+ "net.ResolveUDPAddr": "net",
+ "net.ResolveUnixAddr": "net",
+ "net.SRV": "net",
+ "net.SplitHostPort": "net",
+ "net.TCPAddr": "net",
+ "net.TCPConn": "net",
+ "net.TCPListener": "net",
+ "net.UDPAddr": "net",
+ "net.UDPConn": "net",
+ "net.UnixAddr": "net",
+ "net.UnixConn": "net",
+ "net.UnixListener": "net",
+ "net.UnknownNetworkError": "net",
+ "os.Args": "os",
+ "os.Chdir": "os",
+ "os.Chmod": "os",
+ "os.Chown": "os",
+ "os.Chtimes": "os",
+ "os.Clearenv": "os",
+ "os.Create": "os",
+ "os.DevNull": "os",
+ "os.Environ": "os",
+ "os.ErrExist": "os",
+ "os.ErrInvalid": "os",
+ "os.ErrNotExist": "os",
+ "os.ErrPermission": "os",
+ "os.Exit": "os",
+ "os.Expand": "os",
+ "os.ExpandEnv": "os",
+ "os.File": "os",
+ "os.FileInfo": "os",
+ "os.FileMode": "os",
+ "os.FindProcess": "os",
+ "os.Getegid": "os",
+ "os.Getenv": "os",
+ "os.Geteuid": "os",
+ "os.Getgid": "os",
+ "os.Getgroups": "os",
+ "os.Getpagesize": "os",
+ "os.Getpid": "os",
+ "os.Getppid": "os",
+ "os.Getuid": "os",
+ "os.Getwd": "os",
+ "os.Hostname": "os",
+ "os.Interrupt": "os",
+ "os.IsExist": "os",
+ "os.IsNotExist": "os",
+ "os.IsPathSeparator": "os",
+ "os.IsPermission": "os",
+ "os.Kill": "os",
+ "os.Lchown": "os",
+ "os.Link": "os",
+ "os.LinkError": "os",
+ "os.LookupEnv": "os",
+ "os.Lstat": "os",
+ "os.Mkdir": "os",
+ "os.MkdirAll": "os",
+ "os.ModeAppend": "os",
+ "os.ModeCharDevice": "os",
+ "os.ModeDevice": "os",
+ "os.ModeDir": "os",
+ "os.ModeExclusive": "os",
+ "os.ModeNamedPipe": "os",
+ "os.ModePerm": "os",
+ "os.ModeSetgid": "os",
+ "os.ModeSetuid": "os",
+ "os.ModeSocket": "os",
+ "os.ModeSticky": "os",
+ "os.ModeSymlink": "os",
+ "os.ModeTemporary": "os",
+ "os.ModeType": "os",
+ "os.NewFile": "os",
+ "os.NewSyscallError": "os",
+ "os.O_APPEND": "os",
+ "os.O_CREATE": "os",
+ "os.O_EXCL": "os",
+ "os.O_RDONLY": "os",
+ "os.O_RDWR": "os",
+ "os.O_SYNC": "os",
+ "os.O_TRUNC": "os",
+ "os.O_WRONLY": "os",
+ "os.Open": "os",
+ "os.OpenFile": "os",
+ "os.PathError": "os",
+ "os.PathListSeparator": "os",
+ "os.PathSeparator": "os",
+ "os.Pipe": "os",
+ "os.ProcAttr": "os",
+ "os.Process": "os",
+ "os.ProcessState": "os",
+ "os.Readlink": "os",
+ "os.Remove": "os",
+ "os.RemoveAll": "os",
+ "os.Rename": "os",
+ "os.SEEK_CUR": "os",
+ "os.SEEK_END": "os",
+ "os.SEEK_SET": "os",
+ "os.SameFile": "os",
+ "os.Setenv": "os",
+ "os.Signal": "os",
+ "os.StartProcess": "os",
+ "os.Stat": "os",
+ "os.Stderr": "os",
+ "os.Stdin": "os",
+ "os.Stdout": "os",
+ "os.Symlink": "os",
+ "os.SyscallError": "os",
+ "os.TempDir": "os",
+ "os.Truncate": "os",
+ "os.Unsetenv": "os",
+ "palette.Plan9": "image/color/palette",
+ "palette.WebSafe": "image/color/palette",
+ "parse.ActionNode": "text/template/parse",
+ "parse.BoolNode": "text/template/parse",
+ "parse.BranchNode": "text/template/parse",
+ "parse.ChainNode": "text/template/parse",
+ "parse.CommandNode": "text/template/parse",
+ "parse.DotNode": "text/template/parse",
+ "parse.FieldNode": "text/template/parse",
+ "parse.IdentifierNode": "text/template/parse",
+ "parse.IfNode": "text/template/parse",
+ "parse.IsEmptyTree": "text/template/parse",
+ "parse.ListNode": "text/template/parse",
+ "parse.New": "text/template/parse",
+ "parse.NewIdentifier": "text/template/parse",
+ "parse.NilNode": "text/template/parse",
+ "parse.Node": "text/template/parse",
+ "parse.NodeAction": "text/template/parse",
+ "parse.NodeBool": "text/template/parse",
+ "parse.NodeChain": "text/template/parse",
+ "parse.NodeCommand": "text/template/parse",
+ "parse.NodeDot": "text/template/parse",
+ "parse.NodeField": "text/template/parse",
+ "parse.NodeIdentifier": "text/template/parse",
+ "parse.NodeIf": "text/template/parse",
+ "parse.NodeList": "text/template/parse",
+ "parse.NodeNil": "text/template/parse",
+ "parse.NodeNumber": "text/template/parse",
+ "parse.NodePipe": "text/template/parse",
+ "parse.NodeRange": "text/template/parse",
+ "parse.NodeString": "text/template/parse",
+ "parse.NodeTemplate": "text/template/parse",
+ "parse.NodeText": "text/template/parse",
+ "parse.NodeType": "text/template/parse",
+ "parse.NodeVariable": "text/template/parse",
+ "parse.NodeWith": "text/template/parse",
+ "parse.NumberNode": "text/template/parse",
+ "parse.Parse": "text/template/parse",
+ "parse.PipeNode": "text/template/parse",
+ "parse.Pos": "text/template/parse",
+ "parse.RangeNode": "text/template/parse",
+ "parse.StringNode": "text/template/parse",
+ "parse.TemplateNode": "text/template/parse",
+ "parse.TextNode": "text/template/parse",
+ "parse.Tree": "text/template/parse",
+ "parse.VariableNode": "text/template/parse",
+ "parse.WithNode": "text/template/parse",
+ "parser.AllErrors": "go/parser",
+ "parser.DeclarationErrors": "go/parser",
+ "parser.ImportsOnly": "go/parser",
+ "parser.Mode": "go/parser",
+ "parser.PackageClauseOnly": "go/parser",
+ "parser.ParseComments": "go/parser",
+ "parser.ParseDir": "go/parser",
+ "parser.ParseExpr": "go/parser",
+ "parser.ParseExprFrom": "go/parser",
+ "parser.ParseFile": "go/parser",
+ "parser.SpuriousErrors": "go/parser",
+ "parser.Trace": "go/parser",
+ "path.Base": "path",
+ "path.Clean": "path",
+ "path.Dir": "path",
+ "path.ErrBadPattern": "path",
+ "path.Ext": "path",
+ "path.IsAbs": "path",
+ "path.Join": "path",
+ "path.Match": "path",
+ "path.Split": "path",
+ "pe.COFFSymbol": "debug/pe",
+ "pe.COFFSymbolSize": "debug/pe",
+ "pe.DataDirectory": "debug/pe",
+ "pe.File": "debug/pe",
+ "pe.FileHeader": "debug/pe",
+ "pe.FormatError": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_AM33": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_AMD64": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_ARM": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_EBC": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_I386": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_IA64": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_M32R": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_MIPS16": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_MIPSFPU": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_MIPSFPU16": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_POWERPC": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_POWERPCFP": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_R4000": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_SH3": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_SH3DSP": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_SH4": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_SH5": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_THUMB": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_UNKNOWN": "debug/pe",
+ "pe.IMAGE_FILE_MACHINE_WCEMIPSV2": "debug/pe",
+ "pe.ImportDirectory": "debug/pe",
+ "pe.NewFile": "debug/pe",
+ "pe.Open": "debug/pe",
+ "pe.OptionalHeader32": "debug/pe",
+ "pe.OptionalHeader64": "debug/pe",
+ "pe.Section": "debug/pe",
+ "pe.SectionHeader": "debug/pe",
+ "pe.SectionHeader32": "debug/pe",
+ "pe.Symbol": "debug/pe",
+ "pem.Block": "encoding/pem",
+ "pem.Decode": "encoding/pem",
+ "pem.Encode": "encoding/pem",
+ "pem.EncodeToMemory": "encoding/pem",
+ "pkix.AlgorithmIdentifier": "crypto/x509/pkix",
+ "pkix.AttributeTypeAndValue": "crypto/x509/pkix",
+ "pkix.AttributeTypeAndValueSET": "crypto/x509/pkix",
+ "pkix.CertificateList": "crypto/x509/pkix",
+ "pkix.Extension": "crypto/x509/pkix",
+ "pkix.Name": "crypto/x509/pkix",
+ "pkix.RDNSequence": "crypto/x509/pkix",
+ "pkix.RelativeDistinguishedNameSET": "crypto/x509/pkix",
+ "pkix.RevokedCertificate": "crypto/x509/pkix",
+ "pkix.TBSCertificateList": "crypto/x509/pkix",
+ "plan9obj.File": "debug/plan9obj",
+ "plan9obj.FileHeader": "debug/plan9obj",
+ "plan9obj.Magic386": "debug/plan9obj",
+ "plan9obj.Magic64": "debug/plan9obj",
+ "plan9obj.MagicAMD64": "debug/plan9obj",
+ "plan9obj.MagicARM": "debug/plan9obj",
+ "plan9obj.NewFile": "debug/plan9obj",
+ "plan9obj.Open": "debug/plan9obj",
+ "plan9obj.Section": "debug/plan9obj",
+ "plan9obj.SectionHeader": "debug/plan9obj",
+ "plan9obj.Sym": "debug/plan9obj",
+ "png.BestCompression": "image/png",
+ "png.BestSpeed": "image/png",
+ "png.CompressionLevel": "image/png",
+ "png.Decode": "image/png",
+ "png.DecodeConfig": "image/png",
+ "png.DefaultCompression": "image/png",
+ "png.Encode": "image/png",
+ "png.Encoder": "image/png",
+ "png.FormatError": "image/png",
+ "png.NoCompression": "image/png",
+ "png.UnsupportedError": "image/png",
+ "pprof.Cmdline": "net/http/pprof",
+ "pprof.Handler": "net/http/pprof",
+ "pprof.Index": "net/http/pprof",
+ "pprof.Lookup": "runtime/pprof",
+ "pprof.NewProfile": "runtime/pprof",
+ // "pprof.Profile" is ambiguous
+ "pprof.Profiles": "runtime/pprof",
+ "pprof.StartCPUProfile": "runtime/pprof",
+ "pprof.StopCPUProfile": "runtime/pprof",
+ "pprof.Symbol": "net/http/pprof",
+ "pprof.Trace": "net/http/pprof",
+ "pprof.WriteHeapProfile": "runtime/pprof",
+ "printer.CommentedNode": "go/printer",
+ "printer.Config": "go/printer",
+ "printer.Fprint": "go/printer",
+ "printer.Mode": "go/printer",
+ "printer.RawFormat": "go/printer",
+ "printer.SourcePos": "go/printer",
+ "printer.TabIndent": "go/printer",
+ "printer.UseSpaces": "go/printer",
+ "quick.Check": "testing/quick",
+ "quick.CheckEqual": "testing/quick",
+ "quick.CheckEqualError": "testing/quick",
+ "quick.CheckError": "testing/quick",
+ "quick.Config": "testing/quick",
+ "quick.Generator": "testing/quick",
+ "quick.SetupError": "testing/quick",
+ "quick.Value": "testing/quick",
+ "quotedprintable.NewReader": "mime/quotedprintable",
+ "quotedprintable.NewWriter": "mime/quotedprintable",
+ "quotedprintable.Reader": "mime/quotedprintable",
+ "quotedprintable.Writer": "mime/quotedprintable",
+ "rand.ExpFloat64": "math/rand",
+ "rand.Float32": "math/rand",
+ "rand.Float64": "math/rand",
+ // "rand.Int" is ambiguous
+ "rand.Int31": "math/rand",
+ "rand.Int31n": "math/rand",
+ "rand.Int63": "math/rand",
+ "rand.Int63n": "math/rand",
+ "rand.Intn": "math/rand",
+ "rand.New": "math/rand",
+ "rand.NewSource": "math/rand",
+ "rand.NewZipf": "math/rand",
+ "rand.NormFloat64": "math/rand",
+ "rand.Perm": "math/rand",
+ "rand.Prime": "crypto/rand",
+ "rand.Rand": "math/rand",
+ // "rand.Read" is ambiguous
+ "rand.Reader": "crypto/rand",
+ "rand.Seed": "math/rand",
+ "rand.Source": "math/rand",
+ "rand.Uint32": "math/rand",
+ "rand.Zipf": "math/rand",
+ "rc4.Cipher": "crypto/rc4",
+ "rc4.KeySizeError": "crypto/rc4",
+ "rc4.NewCipher": "crypto/rc4",
+ "reflect.Append": "reflect",
+ "reflect.AppendSlice": "reflect",
+ "reflect.Array": "reflect",
+ "reflect.ArrayOf": "reflect",
+ "reflect.Bool": "reflect",
+ "reflect.BothDir": "reflect",
+ "reflect.Chan": "reflect",
+ "reflect.ChanDir": "reflect",
+ "reflect.ChanOf": "reflect",
+ "reflect.Complex128": "reflect",
+ "reflect.Complex64": "reflect",
+ "reflect.Copy": "reflect",
+ "reflect.DeepEqual": "reflect",
+ "reflect.Float32": "reflect",
+ "reflect.Float64": "reflect",
+ "reflect.Func": "reflect",
+ "reflect.FuncOf": "reflect",
+ "reflect.Indirect": "reflect",
+ "reflect.Int": "reflect",
+ "reflect.Int16": "reflect",
+ "reflect.Int32": "reflect",
+ "reflect.Int64": "reflect",
+ "reflect.Int8": "reflect",
+ "reflect.Interface": "reflect",
+ "reflect.Invalid": "reflect",
+ "reflect.Kind": "reflect",
+ "reflect.MakeChan": "reflect",
+ "reflect.MakeFunc": "reflect",
+ "reflect.MakeMap": "reflect",
+ "reflect.MakeSlice": "reflect",
+ "reflect.Map": "reflect",
+ "reflect.MapOf": "reflect",
+ "reflect.Method": "reflect",
+ "reflect.New": "reflect",
+ "reflect.NewAt": "reflect",
+ "reflect.Ptr": "reflect",
+ "reflect.PtrTo": "reflect",
+ "reflect.RecvDir": "reflect",
+ "reflect.Select": "reflect",
+ "reflect.SelectCase": "reflect",
+ "reflect.SelectDefault": "reflect",
+ "reflect.SelectDir": "reflect",
+ "reflect.SelectRecv": "reflect",
+ "reflect.SelectSend": "reflect",
+ "reflect.SendDir": "reflect",
+ "reflect.Slice": "reflect",
+ "reflect.SliceHeader": "reflect",
+ "reflect.SliceOf": "reflect",
+ "reflect.String": "reflect",
+ "reflect.StringHeader": "reflect",
+ "reflect.Struct": "reflect",
+ "reflect.StructField": "reflect",
+ "reflect.StructOf": "reflect",
+ "reflect.StructTag": "reflect",
+ "reflect.TypeOf": "reflect",
+ "reflect.Uint": "reflect",
+ "reflect.Uint16": "reflect",
+ "reflect.Uint32": "reflect",
+ "reflect.Uint64": "reflect",
+ "reflect.Uint8": "reflect",
+ "reflect.Uintptr": "reflect",
+ "reflect.UnsafePointer": "reflect",
+ "reflect.Value": "reflect",
+ "reflect.ValueError": "reflect",
+ "reflect.ValueOf": "reflect",
+ "reflect.Zero": "reflect",
+ "regexp.Compile": "regexp",
+ "regexp.CompilePOSIX": "regexp",
+ "regexp.Match": "regexp",
+ "regexp.MatchReader": "regexp",
+ "regexp.MatchString": "regexp",
+ "regexp.MustCompile": "regexp",
+ "regexp.MustCompilePOSIX": "regexp",
+ "regexp.QuoteMeta": "regexp",
+ "regexp.Regexp": "regexp",
+ "ring.New": "container/ring",
+ "ring.Ring": "container/ring",
+ "rpc.Accept": "net/rpc",
+ "rpc.Call": "net/rpc",
+ "rpc.Client": "net/rpc",
+ "rpc.ClientCodec": "net/rpc",
+ "rpc.DefaultDebugPath": "net/rpc",
+ "rpc.DefaultRPCPath": "net/rpc",
+ "rpc.DefaultServer": "net/rpc",
+ "rpc.Dial": "net/rpc",
+ "rpc.DialHTTP": "net/rpc",
+ "rpc.DialHTTPPath": "net/rpc",
+ "rpc.ErrShutdown": "net/rpc",
+ "rpc.HandleHTTP": "net/rpc",
+ "rpc.NewClient": "net/rpc",
+ "rpc.NewClientWithCodec": "net/rpc",
+ "rpc.NewServer": "net/rpc",
+ "rpc.Register": "net/rpc",
+ "rpc.RegisterName": "net/rpc",
+ "rpc.Request": "net/rpc",
+ "rpc.Response": "net/rpc",
+ "rpc.ServeCodec": "net/rpc",
+ "rpc.ServeConn": "net/rpc",
+ "rpc.ServeRequest": "net/rpc",
+ "rpc.Server": "net/rpc",
+ "rpc.ServerCodec": "net/rpc",
+ "rpc.ServerError": "net/rpc",
+ "rsa.CRTValue": "crypto/rsa",
+ "rsa.DecryptOAEP": "crypto/rsa",
+ "rsa.DecryptPKCS1v15": "crypto/rsa",
+ "rsa.DecryptPKCS1v15SessionKey": "crypto/rsa",
+ "rsa.EncryptOAEP": "crypto/rsa",
+ "rsa.EncryptPKCS1v15": "crypto/rsa",
+ "rsa.ErrDecryption": "crypto/rsa",
+ "rsa.ErrMessageTooLong": "crypto/rsa",
+ "rsa.ErrVerification": "crypto/rsa",
+ "rsa.GenerateKey": "crypto/rsa",
+ "rsa.GenerateMultiPrimeKey": "crypto/rsa",
+ "rsa.OAEPOptions": "crypto/rsa",
+ "rsa.PKCS1v15DecryptOptions": "crypto/rsa",
+ "rsa.PSSOptions": "crypto/rsa",
+ "rsa.PSSSaltLengthAuto": "crypto/rsa",
+ "rsa.PSSSaltLengthEqualsHash": "crypto/rsa",
+ "rsa.PrecomputedValues": "crypto/rsa",
+ "rsa.PrivateKey": "crypto/rsa",
+ "rsa.PublicKey": "crypto/rsa",
+ "rsa.SignPKCS1v15": "crypto/rsa",
+ "rsa.SignPSS": "crypto/rsa",
+ "rsa.VerifyPKCS1v15": "crypto/rsa",
+ "rsa.VerifyPSS": "crypto/rsa",
+ "runtime.BlockProfile": "runtime",
+ "runtime.BlockProfileRecord": "runtime",
+ "runtime.Breakpoint": "runtime",
+ "runtime.CPUProfile": "runtime",
+ "runtime.Caller": "runtime",
+ "runtime.Callers": "runtime",
+ "runtime.CallersFrames": "runtime",
+ "runtime.Compiler": "runtime",
+ "runtime.Error": "runtime",
+ "runtime.Frame": "runtime",
+ "runtime.Frames": "runtime",
+ "runtime.Func": "runtime",
+ "runtime.FuncForPC": "runtime",
+ "runtime.GC": "runtime",
+ "runtime.GOARCH": "runtime",
+ "runtime.GOMAXPROCS": "runtime",
+ "runtime.GOOS": "runtime",
+ "runtime.GOROOT": "runtime",
+ "runtime.Goexit": "runtime",
+ "runtime.GoroutineProfile": "runtime",
+ "runtime.Gosched": "runtime",
+ "runtime.KeepAlive": "runtime",
+ "runtime.LockOSThread": "runtime",
+ "runtime.MemProfile": "runtime",
+ "runtime.MemProfileRate": "runtime",
+ "runtime.MemProfileRecord": "runtime",
+ "runtime.MemStats": "runtime",
+ "runtime.NumCPU": "runtime",
+ "runtime.NumCgoCall": "runtime",
+ "runtime.NumGoroutine": "runtime",
+ "runtime.ReadMemStats": "runtime",
+ "runtime.ReadTrace": "runtime",
+ "runtime.SetBlockProfileRate": "runtime",
+ "runtime.SetCPUProfileRate": "runtime",
+ "runtime.SetCgoTraceback": "runtime",
+ "runtime.SetFinalizer": "runtime",
+ "runtime.Stack": "runtime",
+ "runtime.StackRecord": "runtime",
+ "runtime.StartTrace": "runtime",
+ "runtime.StopTrace": "runtime",
+ "runtime.ThreadCreateProfile": "runtime",
+ "runtime.TypeAssertionError": "runtime",
+ "runtime.UnlockOSThread": "runtime",
+ "runtime.Version": "runtime",
+ "scanner.Char": "text/scanner",
+ "scanner.Comment": "text/scanner",
+ "scanner.EOF": "text/scanner",
+ "scanner.Error": "go/scanner",
+ "scanner.ErrorHandler": "go/scanner",
+ "scanner.ErrorList": "go/scanner",
+ "scanner.Float": "text/scanner",
+ "scanner.GoTokens": "text/scanner",
+ "scanner.GoWhitespace": "text/scanner",
+ "scanner.Ident": "text/scanner",
+ "scanner.Int": "text/scanner",
+ "scanner.Mode": "go/scanner",
+ "scanner.Position": "text/scanner",
+ "scanner.PrintError": "go/scanner",
+ "scanner.RawString": "text/scanner",
+ "scanner.ScanChars": "text/scanner",
+ // "scanner.ScanComments" is ambiguous
+ "scanner.ScanFloats": "text/scanner",
+ "scanner.ScanIdents": "text/scanner",
+ "scanner.ScanInts": "text/scanner",
+ "scanner.ScanRawStrings": "text/scanner",
+ "scanner.ScanStrings": "text/scanner",
+ // "scanner.Scanner" is ambiguous
+ "scanner.SkipComments": "text/scanner",
+ "scanner.String": "text/scanner",
+ "scanner.TokenString": "text/scanner",
+ "sha1.BlockSize": "crypto/sha1",
+ "sha1.New": "crypto/sha1",
+ "sha1.Size": "crypto/sha1",
+ "sha1.Sum": "crypto/sha1",
+ "sha256.BlockSize": "crypto/sha256",
+ "sha256.New": "crypto/sha256",
+ "sha256.New224": "crypto/sha256",
+ "sha256.Size": "crypto/sha256",
+ "sha256.Size224": "crypto/sha256",
+ "sha256.Sum224": "crypto/sha256",
+ "sha256.Sum256": "crypto/sha256",
+ "sha512.BlockSize": "crypto/sha512",
+ "sha512.New": "crypto/sha512",
+ "sha512.New384": "crypto/sha512",
+ "sha512.New512_224": "crypto/sha512",
+ "sha512.New512_256": "crypto/sha512",
+ "sha512.Size": "crypto/sha512",
+ "sha512.Size224": "crypto/sha512",
+ "sha512.Size256": "crypto/sha512",
+ "sha512.Size384": "crypto/sha512",
+ "sha512.Sum384": "crypto/sha512",
+ "sha512.Sum512": "crypto/sha512",
+ "sha512.Sum512_224": "crypto/sha512",
+ "sha512.Sum512_256": "crypto/sha512",
+ "signal.Ignore": "os/signal",
+ "signal.Notify": "os/signal",
+ "signal.Reset": "os/signal",
+ "signal.Stop": "os/signal",
+ "smtp.Auth": "net/smtp",
+ "smtp.CRAMMD5Auth": "net/smtp",
+ "smtp.Client": "net/smtp",
+ "smtp.Dial": "net/smtp",
+ "smtp.NewClient": "net/smtp",
+ "smtp.PlainAuth": "net/smtp",
+ "smtp.SendMail": "net/smtp",
+ "smtp.ServerInfo": "net/smtp",
+ "sort.Float64Slice": "sort",
+ "sort.Float64s": "sort",
+ "sort.Float64sAreSorted": "sort",
+ "sort.IntSlice": "sort",
+ "sort.Interface": "sort",
+ "sort.Ints": "sort",
+ "sort.IntsAreSorted": "sort",
+ "sort.IsSorted": "sort",
+ "sort.Reverse": "sort",
+ "sort.Search": "sort",
+ "sort.SearchFloat64s": "sort",
+ "sort.SearchInts": "sort",
+ "sort.SearchStrings": "sort",
+ "sort.Sort": "sort",
+ "sort.Stable": "sort",
+ "sort.StringSlice": "sort",
+ "sort.Strings": "sort",
+ "sort.StringsAreSorted": "sort",
+ "sql.DB": "database/sql",
+ "sql.DBStats": "database/sql",
+ "sql.Drivers": "database/sql",
+ "sql.ErrNoRows": "database/sql",
+ "sql.ErrTxDone": "database/sql",
+ "sql.NullBool": "database/sql",
+ "sql.NullFloat64": "database/sql",
+ "sql.NullInt64": "database/sql",
+ "sql.NullString": "database/sql",
+ "sql.Open": "database/sql",
+ "sql.RawBytes": "database/sql",
+ "sql.Register": "database/sql",
+ "sql.Result": "database/sql",
+ "sql.Row": "database/sql",
+ "sql.Rows": "database/sql",
+ "sql.Scanner": "database/sql",
+ "sql.Stmt": "database/sql",
+ "sql.Tx": "database/sql",
+ "strconv.AppendBool": "strconv",
+ "strconv.AppendFloat": "strconv",
+ "strconv.AppendInt": "strconv",
+ "strconv.AppendQuote": "strconv",
+ "strconv.AppendQuoteRune": "strconv",
+ "strconv.AppendQuoteRuneToASCII": "strconv",
+ "strconv.AppendQuoteRuneToGraphic": "strconv",
+ "strconv.AppendQuoteToASCII": "strconv",
+ "strconv.AppendQuoteToGraphic": "strconv",
+ "strconv.AppendUint": "strconv",
+ "strconv.Atoi": "strconv",
+ "strconv.CanBackquote": "strconv",
+ "strconv.ErrRange": "strconv",
+ "strconv.ErrSyntax": "strconv",
+ "strconv.FormatBool": "strconv",
+ "strconv.FormatFloat": "strconv",
+ "strconv.FormatInt": "strconv",
+ "strconv.FormatUint": "strconv",
+ "strconv.IntSize": "strconv",
+ "strconv.IsGraphic": "strconv",
+ "strconv.IsPrint": "strconv",
+ "strconv.Itoa": "strconv",
+ "strconv.NumError": "strconv",
+ "strconv.ParseBool": "strconv",
+ "strconv.ParseFloat": "strconv",
+ "strconv.ParseInt": "strconv",
+ "strconv.ParseUint": "strconv",
+ "strconv.Quote": "strconv",
+ "strconv.QuoteRune": "strconv",
+ "strconv.QuoteRuneToASCII": "strconv",
+ "strconv.QuoteRuneToGraphic": "strconv",
+ "strconv.QuoteToASCII": "strconv",
+ "strconv.QuoteToGraphic": "strconv",
+ "strconv.Unquote": "strconv",
+ "strconv.UnquoteChar": "strconv",
+ "strings.Compare": "strings",
+ "strings.Contains": "strings",
+ "strings.ContainsAny": "strings",
+ "strings.ContainsRune": "strings",
+ "strings.Count": "strings",
+ "strings.EqualFold": "strings",
+ "strings.Fields": "strings",
+ "strings.FieldsFunc": "strings",
+ "strings.HasPrefix": "strings",
+ "strings.HasSuffix": "strings",
+ "strings.Index": "strings",
+ "strings.IndexAny": "strings",
+ "strings.IndexByte": "strings",
+ "strings.IndexFunc": "strings",
+ "strings.IndexRune": "strings",
+ "strings.Join": "strings",
+ "strings.LastIndex": "strings",
+ "strings.LastIndexAny": "strings",
+ "strings.LastIndexByte": "strings",
+ "strings.LastIndexFunc": "strings",
+ "strings.Map": "strings",
+ "strings.NewReader": "strings",
+ "strings.NewReplacer": "strings",
+ "strings.Reader": "strings",
+ "strings.Repeat": "strings",
+ "strings.Replace": "strings",
+ "strings.Replacer": "strings",
+ "strings.Split": "strings",
+ "strings.SplitAfter": "strings",
+ "strings.SplitAfterN": "strings",
+ "strings.SplitN": "strings",
+ "strings.Title": "strings",
+ "strings.ToLower": "strings",
+ "strings.ToLowerSpecial": "strings",
+ "strings.ToTitle": "strings",
+ "strings.ToTitleSpecial": "strings",
+ "strings.ToUpper": "strings",
+ "strings.ToUpperSpecial": "strings",
+ "strings.Trim": "strings",
+ "strings.TrimFunc": "strings",
+ "strings.TrimLeft": "strings",
+ "strings.TrimLeftFunc": "strings",
+ "strings.TrimPrefix": "strings",
+ "strings.TrimRight": "strings",
+ "strings.TrimRightFunc": "strings",
+ "strings.TrimSpace": "strings",
+ "strings.TrimSuffix": "strings",
+ "subtle.ConstantTimeByteEq": "crypto/subtle",
+ "subtle.ConstantTimeCompare": "crypto/subtle",
+ "subtle.ConstantTimeCopy": "crypto/subtle",
+ "subtle.ConstantTimeEq": "crypto/subtle",
+ "subtle.ConstantTimeLessOrEq": "crypto/subtle",
+ "subtle.ConstantTimeSelect": "crypto/subtle",
+ "suffixarray.Index": "index/suffixarray",
+ "suffixarray.New": "index/suffixarray",
+ "sync.Cond": "sync",
+ "sync.Locker": "sync",
+ "sync.Mutex": "sync",
+ "sync.NewCond": "sync",
+ "sync.Once": "sync",
+ "sync.Pool": "sync",
+ "sync.RWMutex": "sync",
+ "sync.WaitGroup": "sync",
+ "syntax.ClassNL": "regexp/syntax",
+ "syntax.Compile": "regexp/syntax",
+ "syntax.DotNL": "regexp/syntax",
+ "syntax.EmptyBeginLine": "regexp/syntax",
+ "syntax.EmptyBeginText": "regexp/syntax",
+ "syntax.EmptyEndLine": "regexp/syntax",
+ "syntax.EmptyEndText": "regexp/syntax",
+ "syntax.EmptyNoWordBoundary": "regexp/syntax",
+ "syntax.EmptyOp": "regexp/syntax",
+ "syntax.EmptyOpContext": "regexp/syntax",
+ "syntax.EmptyWordBoundary": "regexp/syntax",
+ "syntax.ErrInternalError": "regexp/syntax",
+ "syntax.ErrInvalidCharClass": "regexp/syntax",
+ "syntax.ErrInvalidCharRange": "regexp/syntax",
+ "syntax.ErrInvalidEscape": "regexp/syntax",
+ "syntax.ErrInvalidNamedCapture": "regexp/syntax",
+ "syntax.ErrInvalidPerlOp": "regexp/syntax",
+ "syntax.ErrInvalidRepeatOp": "regexp/syntax",
+ "syntax.ErrInvalidRepeatSize": "regexp/syntax",
+ "syntax.ErrInvalidUTF8": "regexp/syntax",
+ "syntax.ErrMissingBracket": "regexp/syntax",
+ "syntax.ErrMissingParen": "regexp/syntax",
+ "syntax.ErrMissingRepeatArgument": "regexp/syntax",
+ "syntax.ErrTrailingBackslash": "regexp/syntax",
+ "syntax.ErrUnexpectedParen": "regexp/syntax",
+ "syntax.Error": "regexp/syntax",
+ "syntax.ErrorCode": "regexp/syntax",
+ "syntax.Flags": "regexp/syntax",
+ "syntax.FoldCase": "regexp/syntax",
+ "syntax.Inst": "regexp/syntax",
+ "syntax.InstAlt": "regexp/syntax",
+ "syntax.InstAltMatch": "regexp/syntax",
+ "syntax.InstCapture": "regexp/syntax",
+ "syntax.InstEmptyWidth": "regexp/syntax",
+ "syntax.InstFail": "regexp/syntax",
+ "syntax.InstMatch": "regexp/syntax",
+ "syntax.InstNop": "regexp/syntax",
+ "syntax.InstOp": "regexp/syntax",
+ "syntax.InstRune": "regexp/syntax",
+ "syntax.InstRune1": "regexp/syntax",
+ "syntax.InstRuneAny": "regexp/syntax",
+ "syntax.InstRuneAnyNotNL": "regexp/syntax",
+ "syntax.IsWordChar": "regexp/syntax",
+ "syntax.Literal": "regexp/syntax",
+ "syntax.MatchNL": "regexp/syntax",
+ "syntax.NonGreedy": "regexp/syntax",
+ "syntax.OneLine": "regexp/syntax",
+ "syntax.Op": "regexp/syntax",
+ "syntax.OpAlternate": "regexp/syntax",
+ "syntax.OpAnyChar": "regexp/syntax",
+ "syntax.OpAnyCharNotNL": "regexp/syntax",
+ "syntax.OpBeginLine": "regexp/syntax",
+ "syntax.OpBeginText": "regexp/syntax",
+ "syntax.OpCapture": "regexp/syntax",
+ "syntax.OpCharClass": "regexp/syntax",
+ "syntax.OpConcat": "regexp/syntax",
+ "syntax.OpEmptyMatch": "regexp/syntax",
+ "syntax.OpEndLine": "regexp/syntax",
+ "syntax.OpEndText": "regexp/syntax",
+ "syntax.OpLiteral": "regexp/syntax",
+ "syntax.OpNoMatch": "regexp/syntax",
+ "syntax.OpNoWordBoundary": "regexp/syntax",
+ "syntax.OpPlus": "regexp/syntax",
+ "syntax.OpQuest": "regexp/syntax",
+ "syntax.OpRepeat": "regexp/syntax",
+ "syntax.OpStar": "regexp/syntax",
+ "syntax.OpWordBoundary": "regexp/syntax",
+ "syntax.POSIX": "regexp/syntax",
+ "syntax.Parse": "regexp/syntax",
+ "syntax.Perl": "regexp/syntax",
+ "syntax.PerlX": "regexp/syntax",
+ "syntax.Prog": "regexp/syntax",
+ "syntax.Regexp": "regexp/syntax",
+ "syntax.Simple": "regexp/syntax",
+ "syntax.UnicodeGroups": "regexp/syntax",
+ "syntax.WasDollar": "regexp/syntax",
+ "syscall.AF_ALG": "syscall",
+ "syscall.AF_APPLETALK": "syscall",
+ "syscall.AF_ARP": "syscall",
+ "syscall.AF_ASH": "syscall",
+ "syscall.AF_ATM": "syscall",
+ "syscall.AF_ATMPVC": "syscall",
+ "syscall.AF_ATMSVC": "syscall",
+ "syscall.AF_AX25": "syscall",
+ "syscall.AF_BLUETOOTH": "syscall",
+ "syscall.AF_BRIDGE": "syscall",
+ "syscall.AF_CAIF": "syscall",
+ "syscall.AF_CAN": "syscall",
+ "syscall.AF_CCITT": "syscall",
+ "syscall.AF_CHAOS": "syscall",
+ "syscall.AF_CNT": "syscall",
+ "syscall.AF_COIP": "syscall",
+ "syscall.AF_DATAKIT": "syscall",
+ "syscall.AF_DECnet": "syscall",
+ "syscall.AF_DLI": "syscall",
+ "syscall.AF_E164": "syscall",
+ "syscall.AF_ECMA": "syscall",
+ "syscall.AF_ECONET": "syscall",
+ "syscall.AF_ENCAP": "syscall",
+ "syscall.AF_FILE": "syscall",
+ "syscall.AF_HYLINK": "syscall",
+ "syscall.AF_IEEE80211": "syscall",
+ "syscall.AF_IEEE802154": "syscall",
+ "syscall.AF_IMPLINK": "syscall",
+ "syscall.AF_INET": "syscall",
+ "syscall.AF_INET6": "syscall",
+ "syscall.AF_INET6_SDP": "syscall",
+ "syscall.AF_INET_SDP": "syscall",
+ "syscall.AF_IPX": "syscall",
+ "syscall.AF_IRDA": "syscall",
+ "syscall.AF_ISDN": "syscall",
+ "syscall.AF_ISO": "syscall",
+ "syscall.AF_IUCV": "syscall",
+ "syscall.AF_KEY": "syscall",
+ "syscall.AF_LAT": "syscall",
+ "syscall.AF_LINK": "syscall",
+ "syscall.AF_LLC": "syscall",
+ "syscall.AF_LOCAL": "syscall",
+ "syscall.AF_MAX": "syscall",
+ "syscall.AF_MPLS": "syscall",
+ "syscall.AF_NATM": "syscall",
+ "syscall.AF_NDRV": "syscall",
+ "syscall.AF_NETBEUI": "syscall",
+ "syscall.AF_NETBIOS": "syscall",
+ "syscall.AF_NETGRAPH": "syscall",
+ "syscall.AF_NETLINK": "syscall",
+ "syscall.AF_NETROM": "syscall",
+ "syscall.AF_NS": "syscall",
+ "syscall.AF_OROUTE": "syscall",
+ "syscall.AF_OSI": "syscall",
+ "syscall.AF_PACKET": "syscall",
+ "syscall.AF_PHONET": "syscall",
+ "syscall.AF_PPP": "syscall",
+ "syscall.AF_PPPOX": "syscall",
+ "syscall.AF_PUP": "syscall",
+ "syscall.AF_RDS": "syscall",
+ "syscall.AF_RESERVED_36": "syscall",
+ "syscall.AF_ROSE": "syscall",
+ "syscall.AF_ROUTE": "syscall",
+ "syscall.AF_RXRPC": "syscall",
+ "syscall.AF_SCLUSTER": "syscall",
+ "syscall.AF_SECURITY": "syscall",
+ "syscall.AF_SIP": "syscall",
+ "syscall.AF_SLOW": "syscall",
+ "syscall.AF_SNA": "syscall",
+ "syscall.AF_SYSTEM": "syscall",
+ "syscall.AF_TIPC": "syscall",
+ "syscall.AF_UNIX": "syscall",
+ "syscall.AF_UNSPEC": "syscall",
+ "syscall.AF_VENDOR00": "syscall",
+ "syscall.AF_VENDOR01": "syscall",
+ "syscall.AF_VENDOR02": "syscall",
+ "syscall.AF_VENDOR03": "syscall",
+ "syscall.AF_VENDOR04": "syscall",
+ "syscall.AF_VENDOR05": "syscall",
+ "syscall.AF_VENDOR06": "syscall",
+ "syscall.AF_VENDOR07": "syscall",
+ "syscall.AF_VENDOR08": "syscall",
+ "syscall.AF_VENDOR09": "syscall",
+ "syscall.AF_VENDOR10": "syscall",
+ "syscall.AF_VENDOR11": "syscall",
+ "syscall.AF_VENDOR12": "syscall",
+ "syscall.AF_VENDOR13": "syscall",
+ "syscall.AF_VENDOR14": "syscall",
+ "syscall.AF_VENDOR15": "syscall",
+ "syscall.AF_VENDOR16": "syscall",
+ "syscall.AF_VENDOR17": "syscall",
+ "syscall.AF_VENDOR18": "syscall",
+ "syscall.AF_VENDOR19": "syscall",
+ "syscall.AF_VENDOR20": "syscall",
+ "syscall.AF_VENDOR21": "syscall",
+ "syscall.AF_VENDOR22": "syscall",
+ "syscall.AF_VENDOR23": "syscall",
+ "syscall.AF_VENDOR24": "syscall",
+ "syscall.AF_VENDOR25": "syscall",
+ "syscall.AF_VENDOR26": "syscall",
+ "syscall.AF_VENDOR27": "syscall",
+ "syscall.AF_VENDOR28": "syscall",
+ "syscall.AF_VENDOR29": "syscall",
+ "syscall.AF_VENDOR30": "syscall",
+ "syscall.AF_VENDOR31": "syscall",
+ "syscall.AF_VENDOR32": "syscall",
+ "syscall.AF_VENDOR33": "syscall",
+ "syscall.AF_VENDOR34": "syscall",
+ "syscall.AF_VENDOR35": "syscall",
+ "syscall.AF_VENDOR36": "syscall",
+ "syscall.AF_VENDOR37": "syscall",
+ "syscall.AF_VENDOR38": "syscall",
+ "syscall.AF_VENDOR39": "syscall",
+ "syscall.AF_VENDOR40": "syscall",
+ "syscall.AF_VENDOR41": "syscall",
+ "syscall.AF_VENDOR42": "syscall",
+ "syscall.AF_VENDOR43": "syscall",
+ "syscall.AF_VENDOR44": "syscall",
+ "syscall.AF_VENDOR45": "syscall",
+ "syscall.AF_VENDOR46": "syscall",
+ "syscall.AF_VENDOR47": "syscall",
+ "syscall.AF_WANPIPE": "syscall",
+ "syscall.AF_X25": "syscall",
+ "syscall.AI_CANONNAME": "syscall",
+ "syscall.AI_NUMERICHOST": "syscall",
+ "syscall.AI_PASSIVE": "syscall",
+ "syscall.APPLICATION_ERROR": "syscall",
+ "syscall.ARPHRD_ADAPT": "syscall",
+ "syscall.ARPHRD_APPLETLK": "syscall",
+ "syscall.ARPHRD_ARCNET": "syscall",
+ "syscall.ARPHRD_ASH": "syscall",
+ "syscall.ARPHRD_ATM": "syscall",
+ "syscall.ARPHRD_AX25": "syscall",
+ "syscall.ARPHRD_BIF": "syscall",
+ "syscall.ARPHRD_CHAOS": "syscall",
+ "syscall.ARPHRD_CISCO": "syscall",
+ "syscall.ARPHRD_CSLIP": "syscall",
+ "syscall.ARPHRD_CSLIP6": "syscall",
+ "syscall.ARPHRD_DDCMP": "syscall",
+ "syscall.ARPHRD_DLCI": "syscall",
+ "syscall.ARPHRD_ECONET": "syscall",
+ "syscall.ARPHRD_EETHER": "syscall",
+ "syscall.ARPHRD_ETHER": "syscall",
+ "syscall.ARPHRD_EUI64": "syscall",
+ "syscall.ARPHRD_FCAL": "syscall",
+ "syscall.ARPHRD_FCFABRIC": "syscall",
+ "syscall.ARPHRD_FCPL": "syscall",
+ "syscall.ARPHRD_FCPP": "syscall",
+ "syscall.ARPHRD_FDDI": "syscall",
+ "syscall.ARPHRD_FRAD": "syscall",
+ "syscall.ARPHRD_FRELAY": "syscall",
+ "syscall.ARPHRD_HDLC": "syscall",
+ "syscall.ARPHRD_HIPPI": "syscall",
+ "syscall.ARPHRD_HWX25": "syscall",
+ "syscall.ARPHRD_IEEE1394": "syscall",
+ "syscall.ARPHRD_IEEE802": "syscall",
+ "syscall.ARPHRD_IEEE80211": "syscall",
+ "syscall.ARPHRD_IEEE80211_PRISM": "syscall",
+ "syscall.ARPHRD_IEEE80211_RADIOTAP": "syscall",
+ "syscall.ARPHRD_IEEE802154": "syscall",
+ "syscall.ARPHRD_IEEE802154_PHY": "syscall",
+ "syscall.ARPHRD_IEEE802_TR": "syscall",
+ "syscall.ARPHRD_INFINIBAND": "syscall",
+ "syscall.ARPHRD_IPDDP": "syscall",
+ "syscall.ARPHRD_IPGRE": "syscall",
+ "syscall.ARPHRD_IRDA": "syscall",
+ "syscall.ARPHRD_LAPB": "syscall",
+ "syscall.ARPHRD_LOCALTLK": "syscall",
+ "syscall.ARPHRD_LOOPBACK": "syscall",
+ "syscall.ARPHRD_METRICOM": "syscall",
+ "syscall.ARPHRD_NETROM": "syscall",
+ "syscall.ARPHRD_NONE": "syscall",
+ "syscall.ARPHRD_PIMREG": "syscall",
+ "syscall.ARPHRD_PPP": "syscall",
+ "syscall.ARPHRD_PRONET": "syscall",
+ "syscall.ARPHRD_RAWHDLC": "syscall",
+ "syscall.ARPHRD_ROSE": "syscall",
+ "syscall.ARPHRD_RSRVD": "syscall",
+ "syscall.ARPHRD_SIT": "syscall",
+ "syscall.ARPHRD_SKIP": "syscall",
+ "syscall.ARPHRD_SLIP": "syscall",
+ "syscall.ARPHRD_SLIP6": "syscall",
+ "syscall.ARPHRD_STRIP": "syscall",
+ "syscall.ARPHRD_TUNNEL": "syscall",
+ "syscall.ARPHRD_TUNNEL6": "syscall",
+ "syscall.ARPHRD_VOID": "syscall",
+ "syscall.ARPHRD_X25": "syscall",
+ "syscall.AUTHTYPE_CLIENT": "syscall",
+ "syscall.AUTHTYPE_SERVER": "syscall",
+ "syscall.Accept": "syscall",
+ "syscall.Accept4": "syscall",
+ "syscall.AcceptEx": "syscall",
+ "syscall.Access": "syscall",
+ "syscall.Acct": "syscall",
+ "syscall.AddrinfoW": "syscall",
+ "syscall.Adjtime": "syscall",
+ "syscall.Adjtimex": "syscall",
+ "syscall.AttachLsf": "syscall",
+ "syscall.B0": "syscall",
+ "syscall.B1000000": "syscall",
+ "syscall.B110": "syscall",
+ "syscall.B115200": "syscall",
+ "syscall.B1152000": "syscall",
+ "syscall.B1200": "syscall",
+ "syscall.B134": "syscall",
+ "syscall.B14400": "syscall",
+ "syscall.B150": "syscall",
+ "syscall.B1500000": "syscall",
+ "syscall.B1800": "syscall",
+ "syscall.B19200": "syscall",
+ "syscall.B200": "syscall",
+ "syscall.B2000000": "syscall",
+ "syscall.B230400": "syscall",
+ "syscall.B2400": "syscall",
+ "syscall.B2500000": "syscall",
+ "syscall.B28800": "syscall",
+ "syscall.B300": "syscall",
+ "syscall.B3000000": "syscall",
+ "syscall.B3500000": "syscall",
+ "syscall.B38400": "syscall",
+ "syscall.B4000000": "syscall",
+ "syscall.B460800": "syscall",
+ "syscall.B4800": "syscall",
+ "syscall.B50": "syscall",
+ "syscall.B500000": "syscall",
+ "syscall.B57600": "syscall",
+ "syscall.B576000": "syscall",
+ "syscall.B600": "syscall",
+ "syscall.B7200": "syscall",
+ "syscall.B75": "syscall",
+ "syscall.B76800": "syscall",
+ "syscall.B921600": "syscall",
+ "syscall.B9600": "syscall",
+ "syscall.BASE_PROTOCOL": "syscall",
+ "syscall.BIOCFEEDBACK": "syscall",
+ "syscall.BIOCFLUSH": "syscall",
+ "syscall.BIOCGBLEN": "syscall",
+ "syscall.BIOCGDIRECTION": "syscall",
+ "syscall.BIOCGDIRFILT": "syscall",
+ "syscall.BIOCGDLT": "syscall",
+ "syscall.BIOCGDLTLIST": "syscall",
+ "syscall.BIOCGETBUFMODE": "syscall",
+ "syscall.BIOCGETIF": "syscall",
+ "syscall.BIOCGETZMAX": "syscall",
+ "syscall.BIOCGFEEDBACK": "syscall",
+ "syscall.BIOCGFILDROP": "syscall",
+ "syscall.BIOCGHDRCMPLT": "syscall",
+ "syscall.BIOCGRSIG": "syscall",
+ "syscall.BIOCGRTIMEOUT": "syscall",
+ "syscall.BIOCGSEESENT": "syscall",
+ "syscall.BIOCGSTATS": "syscall",
+ "syscall.BIOCGSTATSOLD": "syscall",
+ "syscall.BIOCGTSTAMP": "syscall",
+ "syscall.BIOCIMMEDIATE": "syscall",
+ "syscall.BIOCLOCK": "syscall",
+ "syscall.BIOCPROMISC": "syscall",
+ "syscall.BIOCROTZBUF": "syscall",
+ "syscall.BIOCSBLEN": "syscall",
+ "syscall.BIOCSDIRECTION": "syscall",
+ "syscall.BIOCSDIRFILT": "syscall",
+ "syscall.BIOCSDLT": "syscall",
+ "syscall.BIOCSETBUFMODE": "syscall",
+ "syscall.BIOCSETF": "syscall",
+ "syscall.BIOCSETFNR": "syscall",
+ "syscall.BIOCSETIF": "syscall",
+ "syscall.BIOCSETWF": "syscall",
+ "syscall.BIOCSETZBUF": "syscall",
+ "syscall.BIOCSFEEDBACK": "syscall",
+ "syscall.BIOCSFILDROP": "syscall",
+ "syscall.BIOCSHDRCMPLT": "syscall",
+ "syscall.BIOCSRSIG": "syscall",
+ "syscall.BIOCSRTIMEOUT": "syscall",
+ "syscall.BIOCSSEESENT": "syscall",
+ "syscall.BIOCSTCPF": "syscall",
+ "syscall.BIOCSTSTAMP": "syscall",
+ "syscall.BIOCSUDPF": "syscall",
+ "syscall.BIOCVERSION": "syscall",
+ "syscall.BPF_A": "syscall",
+ "syscall.BPF_ABS": "syscall",
+ "syscall.BPF_ADD": "syscall",
+ "syscall.BPF_ALIGNMENT": "syscall",
+ "syscall.BPF_ALIGNMENT32": "syscall",
+ "syscall.BPF_ALU": "syscall",
+ "syscall.BPF_AND": "syscall",
+ "syscall.BPF_B": "syscall",
+ "syscall.BPF_BUFMODE_BUFFER": "syscall",
+ "syscall.BPF_BUFMODE_ZBUF": "syscall",
+ "syscall.BPF_DFLTBUFSIZE": "syscall",
+ "syscall.BPF_DIRECTION_IN": "syscall",
+ "syscall.BPF_DIRECTION_OUT": "syscall",
+ "syscall.BPF_DIV": "syscall",
+ "syscall.BPF_H": "syscall",
+ "syscall.BPF_IMM": "syscall",
+ "syscall.BPF_IND": "syscall",
+ "syscall.BPF_JA": "syscall",
+ "syscall.BPF_JEQ": "syscall",
+ "syscall.BPF_JGE": "syscall",
+ "syscall.BPF_JGT": "syscall",
+ "syscall.BPF_JMP": "syscall",
+ "syscall.BPF_JSET": "syscall",
+ "syscall.BPF_K": "syscall",
+ "syscall.BPF_LD": "syscall",
+ "syscall.BPF_LDX": "syscall",
+ "syscall.BPF_LEN": "syscall",
+ "syscall.BPF_LSH": "syscall",
+ "syscall.BPF_MAJOR_VERSION": "syscall",
+ "syscall.BPF_MAXBUFSIZE": "syscall",
+ "syscall.BPF_MAXINSNS": "syscall",
+ "syscall.BPF_MEM": "syscall",
+ "syscall.BPF_MEMWORDS": "syscall",
+ "syscall.BPF_MINBUFSIZE": "syscall",
+ "syscall.BPF_MINOR_VERSION": "syscall",
+ "syscall.BPF_MISC": "syscall",
+ "syscall.BPF_MSH": "syscall",
+ "syscall.BPF_MUL": "syscall",
+ "syscall.BPF_NEG": "syscall",
+ "syscall.BPF_OR": "syscall",
+ "syscall.BPF_RELEASE": "syscall",
+ "syscall.BPF_RET": "syscall",
+ "syscall.BPF_RSH": "syscall",
+ "syscall.BPF_ST": "syscall",
+ "syscall.BPF_STX": "syscall",
+ "syscall.BPF_SUB": "syscall",
+ "syscall.BPF_TAX": "syscall",
+ "syscall.BPF_TXA": "syscall",
+ "syscall.BPF_T_BINTIME": "syscall",
+ "syscall.BPF_T_BINTIME_FAST": "syscall",
+ "syscall.BPF_T_BINTIME_MONOTONIC": "syscall",
+ "syscall.BPF_T_BINTIME_MONOTONIC_FAST": "syscall",
+ "syscall.BPF_T_FAST": "syscall",
+ "syscall.BPF_T_FLAG_MASK": "syscall",
+ "syscall.BPF_T_FORMAT_MASK": "syscall",
+ "syscall.BPF_T_MICROTIME": "syscall",
+ "syscall.BPF_T_MICROTIME_FAST": "syscall",
+ "syscall.BPF_T_MICROTIME_MONOTONIC": "syscall",
+ "syscall.BPF_T_MICROTIME_MONOTONIC_FAST": "syscall",
+ "syscall.BPF_T_MONOTONIC": "syscall",
+ "syscall.BPF_T_MONOTONIC_FAST": "syscall",
+ "syscall.BPF_T_NANOTIME": "syscall",
+ "syscall.BPF_T_NANOTIME_FAST": "syscall",
+ "syscall.BPF_T_NANOTIME_MONOTONIC": "syscall",
+ "syscall.BPF_T_NANOTIME_MONOTONIC_FAST": "syscall",
+ "syscall.BPF_T_NONE": "syscall",
+ "syscall.BPF_T_NORMAL": "syscall",
+ "syscall.BPF_W": "syscall",
+ "syscall.BPF_X": "syscall",
+ "syscall.BRKINT": "syscall",
+ "syscall.Bind": "syscall",
+ "syscall.BindToDevice": "syscall",
+ "syscall.BpfBuflen": "syscall",
+ "syscall.BpfDatalink": "syscall",
+ "syscall.BpfHdr": "syscall",
+ "syscall.BpfHeadercmpl": "syscall",
+ "syscall.BpfInsn": "syscall",
+ "syscall.BpfInterface": "syscall",
+ "syscall.BpfJump": "syscall",
+ "syscall.BpfProgram": "syscall",
+ "syscall.BpfStat": "syscall",
+ "syscall.BpfStats": "syscall",
+ "syscall.BpfStmt": "syscall",
+ "syscall.BpfTimeout": "syscall",
+ "syscall.BpfTimeval": "syscall",
+ "syscall.BpfVersion": "syscall",
+ "syscall.BpfZbuf": "syscall",
+ "syscall.BpfZbufHeader": "syscall",
+ "syscall.ByHandleFileInformation": "syscall",
+ "syscall.BytePtrFromString": "syscall",
+ "syscall.ByteSliceFromString": "syscall",
+ "syscall.CCR0_FLUSH": "syscall",
+ "syscall.CERT_CHAIN_POLICY_AUTHENTICODE": "syscall",
+ "syscall.CERT_CHAIN_POLICY_AUTHENTICODE_TS": "syscall",
+ "syscall.CERT_CHAIN_POLICY_BASE": "syscall",
+ "syscall.CERT_CHAIN_POLICY_BASIC_CONSTRAINTS": "syscall",
+ "syscall.CERT_CHAIN_POLICY_EV": "syscall",
+ "syscall.CERT_CHAIN_POLICY_MICROSOFT_ROOT": "syscall",
+ "syscall.CERT_CHAIN_POLICY_NT_AUTH": "syscall",
+ "syscall.CERT_CHAIN_POLICY_SSL": "syscall",
+ "syscall.CERT_E_CN_NO_MATCH": "syscall",
+ "syscall.CERT_E_EXPIRED": "syscall",
+ "syscall.CERT_E_PURPOSE": "syscall",
+ "syscall.CERT_E_ROLE": "syscall",
+ "syscall.CERT_E_UNTRUSTEDROOT": "syscall",
+ "syscall.CERT_STORE_ADD_ALWAYS": "syscall",
+ "syscall.CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG": "syscall",
+ "syscall.CERT_STORE_PROV_MEMORY": "syscall",
+ "syscall.CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT": "syscall",
+ "syscall.CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT": "syscall",
+ "syscall.CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT": "syscall",
+ "syscall.CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT": "syscall",
+ "syscall.CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT": "syscall",
+ "syscall.CERT_TRUST_INVALID_BASIC_CONSTRAINTS": "syscall",
+ "syscall.CERT_TRUST_INVALID_EXTENSION": "syscall",
+ "syscall.CERT_TRUST_INVALID_NAME_CONSTRAINTS": "syscall",
+ "syscall.CERT_TRUST_INVALID_POLICY_CONSTRAINTS": "syscall",
+ "syscall.CERT_TRUST_IS_CYCLIC": "syscall",
+ "syscall.CERT_TRUST_IS_EXPLICIT_DISTRUST": "syscall",
+ "syscall.CERT_TRUST_IS_NOT_SIGNATURE_VALID": "syscall",
+ "syscall.CERT_TRUST_IS_NOT_TIME_VALID": "syscall",
+ "syscall.CERT_TRUST_IS_NOT_VALID_FOR_USAGE": "syscall",
+ "syscall.CERT_TRUST_IS_OFFLINE_REVOCATION": "syscall",
+ "syscall.CERT_TRUST_IS_REVOKED": "syscall",
+ "syscall.CERT_TRUST_IS_UNTRUSTED_ROOT": "syscall",
+ "syscall.CERT_TRUST_NO_ERROR": "syscall",
+ "syscall.CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY": "syscall",
+ "syscall.CERT_TRUST_REVOCATION_STATUS_UNKNOWN": "syscall",
+ "syscall.CFLUSH": "syscall",
+ "syscall.CLOCAL": "syscall",
+ "syscall.CLONE_CHILD_CLEARTID": "syscall",
+ "syscall.CLONE_CHILD_SETTID": "syscall",
+ "syscall.CLONE_CSIGNAL": "syscall",
+ "syscall.CLONE_DETACHED": "syscall",
+ "syscall.CLONE_FILES": "syscall",
+ "syscall.CLONE_FS": "syscall",
+ "syscall.CLONE_IO": "syscall",
+ "syscall.CLONE_NEWIPC": "syscall",
+ "syscall.CLONE_NEWNET": "syscall",
+ "syscall.CLONE_NEWNS": "syscall",
+ "syscall.CLONE_NEWPID": "syscall",
+ "syscall.CLONE_NEWUSER": "syscall",
+ "syscall.CLONE_NEWUTS": "syscall",
+ "syscall.CLONE_PARENT": "syscall",
+ "syscall.CLONE_PARENT_SETTID": "syscall",
+ "syscall.CLONE_PID": "syscall",
+ "syscall.CLONE_PTRACE": "syscall",
+ "syscall.CLONE_SETTLS": "syscall",
+ "syscall.CLONE_SIGHAND": "syscall",
+ "syscall.CLONE_SYSVSEM": "syscall",
+ "syscall.CLONE_THREAD": "syscall",
+ "syscall.CLONE_UNTRACED": "syscall",
+ "syscall.CLONE_VFORK": "syscall",
+ "syscall.CLONE_VM": "syscall",
+ "syscall.CPUID_CFLUSH": "syscall",
+ "syscall.CREAD": "syscall",
+ "syscall.CREATE_ALWAYS": "syscall",
+ "syscall.CREATE_NEW": "syscall",
+ "syscall.CREATE_NEW_PROCESS_GROUP": "syscall",
+ "syscall.CREATE_UNICODE_ENVIRONMENT": "syscall",
+ "syscall.CRYPT_DEFAULT_CONTAINER_OPTIONAL": "syscall",
+ "syscall.CRYPT_DELETEKEYSET": "syscall",
+ "syscall.CRYPT_MACHINE_KEYSET": "syscall",
+ "syscall.CRYPT_NEWKEYSET": "syscall",
+ "syscall.CRYPT_SILENT": "syscall",
+ "syscall.CRYPT_VERIFYCONTEXT": "syscall",
+ "syscall.CS5": "syscall",
+ "syscall.CS6": "syscall",
+ "syscall.CS7": "syscall",
+ "syscall.CS8": "syscall",
+ "syscall.CSIZE": "syscall",
+ "syscall.CSTART": "syscall",
+ "syscall.CSTATUS": "syscall",
+ "syscall.CSTOP": "syscall",
+ "syscall.CSTOPB": "syscall",
+ "syscall.CSUSP": "syscall",
+ "syscall.CTL_MAXNAME": "syscall",
+ "syscall.CTL_NET": "syscall",
+ "syscall.CTL_QUERY": "syscall",
+ "syscall.CTRL_BREAK_EVENT": "syscall",
+ "syscall.CTRL_C_EVENT": "syscall",
+ "syscall.CancelIo": "syscall",
+ "syscall.CancelIoEx": "syscall",
+ "syscall.CertAddCertificateContextToStore": "syscall",
+ "syscall.CertChainContext": "syscall",
+ "syscall.CertChainElement": "syscall",
+ "syscall.CertChainPara": "syscall",
+ "syscall.CertChainPolicyPara": "syscall",
+ "syscall.CertChainPolicyStatus": "syscall",
+ "syscall.CertCloseStore": "syscall",
+ "syscall.CertContext": "syscall",
+ "syscall.CertCreateCertificateContext": "syscall",
+ "syscall.CertEnhKeyUsage": "syscall",
+ "syscall.CertEnumCertificatesInStore": "syscall",
+ "syscall.CertFreeCertificateChain": "syscall",
+ "syscall.CertFreeCertificateContext": "syscall",
+ "syscall.CertGetCertificateChain": "syscall",
+ "syscall.CertOpenStore": "syscall",
+ "syscall.CertOpenSystemStore": "syscall",
+ "syscall.CertRevocationInfo": "syscall",
+ "syscall.CertSimpleChain": "syscall",
+ "syscall.CertTrustStatus": "syscall",
+ "syscall.CertUsageMatch": "syscall",
+ "syscall.CertVerifyCertificateChainPolicy": "syscall",
+ "syscall.Chdir": "syscall",
+ "syscall.CheckBpfVersion": "syscall",
+ "syscall.Chflags": "syscall",
+ "syscall.Chmod": "syscall",
+ "syscall.Chown": "syscall",
+ "syscall.Chroot": "syscall",
+ "syscall.Clearenv": "syscall",
+ "syscall.Close": "syscall",
+ "syscall.CloseHandle": "syscall",
+ "syscall.CloseOnExec": "syscall",
+ "syscall.Closesocket": "syscall",
+ "syscall.CmsgLen": "syscall",
+ "syscall.CmsgSpace": "syscall",
+ "syscall.Cmsghdr": "syscall",
+ "syscall.CommandLineToArgv": "syscall",
+ "syscall.ComputerName": "syscall",
+ "syscall.Connect": "syscall",
+ "syscall.ConnectEx": "syscall",
+ "syscall.ConvertSidToStringSid": "syscall",
+ "syscall.ConvertStringSidToSid": "syscall",
+ "syscall.CopySid": "syscall",
+ "syscall.Creat": "syscall",
+ "syscall.CreateDirectory": "syscall",
+ "syscall.CreateFile": "syscall",
+ "syscall.CreateFileMapping": "syscall",
+ "syscall.CreateHardLink": "syscall",
+ "syscall.CreateIoCompletionPort": "syscall",
+ "syscall.CreatePipe": "syscall",
+ "syscall.CreateProcess": "syscall",
+ "syscall.CreateSymbolicLink": "syscall",
+ "syscall.CreateToolhelp32Snapshot": "syscall",
+ "syscall.Credential": "syscall",
+ "syscall.CryptAcquireContext": "syscall",
+ "syscall.CryptGenRandom": "syscall",
+ "syscall.CryptReleaseContext": "syscall",
+ "syscall.DIOCBSFLUSH": "syscall",
+ "syscall.DIOCOSFPFLUSH": "syscall",
+ "syscall.DLL": "syscall",
+ "syscall.DLLError": "syscall",
+ "syscall.DLT_A429": "syscall",
+ "syscall.DLT_A653_ICM": "syscall",
+ "syscall.DLT_AIRONET_HEADER": "syscall",
+ "syscall.DLT_AOS": "syscall",
+ "syscall.DLT_APPLE_IP_OVER_IEEE1394": "syscall",
+ "syscall.DLT_ARCNET": "syscall",
+ "syscall.DLT_ARCNET_LINUX": "syscall",
+ "syscall.DLT_ATM_CLIP": "syscall",
+ "syscall.DLT_ATM_RFC1483": "syscall",
+ "syscall.DLT_AURORA": "syscall",
+ "syscall.DLT_AX25": "syscall",
+ "syscall.DLT_AX25_KISS": "syscall",
+ "syscall.DLT_BACNET_MS_TP": "syscall",
+ "syscall.DLT_BLUETOOTH_HCI_H4": "syscall",
+ "syscall.DLT_BLUETOOTH_HCI_H4_WITH_PHDR": "syscall",
+ "syscall.DLT_CAN20B": "syscall",
+ "syscall.DLT_CAN_SOCKETCAN": "syscall",
+ "syscall.DLT_CHAOS": "syscall",
+ "syscall.DLT_CHDLC": "syscall",
+ "syscall.DLT_CISCO_IOS": "syscall",
+ "syscall.DLT_C_HDLC": "syscall",
+ "syscall.DLT_C_HDLC_WITH_DIR": "syscall",
+ "syscall.DLT_DBUS": "syscall",
+ "syscall.DLT_DECT": "syscall",
+ "syscall.DLT_DOCSIS": "syscall",
+ "syscall.DLT_DVB_CI": "syscall",
+ "syscall.DLT_ECONET": "syscall",
+ "syscall.DLT_EN10MB": "syscall",
+ "syscall.DLT_EN3MB": "syscall",
+ "syscall.DLT_ENC": "syscall",
+ "syscall.DLT_ERF": "syscall",
+ "syscall.DLT_ERF_ETH": "syscall",
+ "syscall.DLT_ERF_POS": "syscall",
+ "syscall.DLT_FC_2": "syscall",
+ "syscall.DLT_FC_2_WITH_FRAME_DELIMS": "syscall",
+ "syscall.DLT_FDDI": "syscall",
+ "syscall.DLT_FLEXRAY": "syscall",
+ "syscall.DLT_FRELAY": "syscall",
+ "syscall.DLT_FRELAY_WITH_DIR": "syscall",
+ "syscall.DLT_GCOM_SERIAL": "syscall",
+ "syscall.DLT_GCOM_T1E1": "syscall",
+ "syscall.DLT_GPF_F": "syscall",
+ "syscall.DLT_GPF_T": "syscall",
+ "syscall.DLT_GPRS_LLC": "syscall",
+ "syscall.DLT_GSMTAP_ABIS": "syscall",
+ "syscall.DLT_GSMTAP_UM": "syscall",
+ "syscall.DLT_HDLC": "syscall",
+ "syscall.DLT_HHDLC": "syscall",
+ "syscall.DLT_HIPPI": "syscall",
+ "syscall.DLT_IBM_SN": "syscall",
+ "syscall.DLT_IBM_SP": "syscall",
+ "syscall.DLT_IEEE802": "syscall",
+ "syscall.DLT_IEEE802_11": "syscall",
+ "syscall.DLT_IEEE802_11_RADIO": "syscall",
+ "syscall.DLT_IEEE802_11_RADIO_AVS": "syscall",
+ "syscall.DLT_IEEE802_15_4": "syscall",
+ "syscall.DLT_IEEE802_15_4_LINUX": "syscall",
+ "syscall.DLT_IEEE802_15_4_NOFCS": "syscall",
+ "syscall.DLT_IEEE802_15_4_NONASK_PHY": "syscall",
+ "syscall.DLT_IEEE802_16_MAC_CPS": "syscall",
+ "syscall.DLT_IEEE802_16_MAC_CPS_RADIO": "syscall",
+ "syscall.DLT_IPFILTER": "syscall",
+ "syscall.DLT_IPMB": "syscall",
+ "syscall.DLT_IPMB_LINUX": "syscall",
+ "syscall.DLT_IPNET": "syscall",
+ "syscall.DLT_IPOIB": "syscall",
+ "syscall.DLT_IPV4": "syscall",
+ "syscall.DLT_IPV6": "syscall",
+ "syscall.DLT_IP_OVER_FC": "syscall",
+ "syscall.DLT_JUNIPER_ATM1": "syscall",
+ "syscall.DLT_JUNIPER_ATM2": "syscall",
+ "syscall.DLT_JUNIPER_ATM_CEMIC": "syscall",
+ "syscall.DLT_JUNIPER_CHDLC": "syscall",
+ "syscall.DLT_JUNIPER_ES": "syscall",
+ "syscall.DLT_JUNIPER_ETHER": "syscall",
+ "syscall.DLT_JUNIPER_FIBRECHANNEL": "syscall",
+ "syscall.DLT_JUNIPER_FRELAY": "syscall",
+ "syscall.DLT_JUNIPER_GGSN": "syscall",
+ "syscall.DLT_JUNIPER_ISM": "syscall",
+ "syscall.DLT_JUNIPER_MFR": "syscall",
+ "syscall.DLT_JUNIPER_MLFR": "syscall",
+ "syscall.DLT_JUNIPER_MLPPP": "syscall",
+ "syscall.DLT_JUNIPER_MONITOR": "syscall",
+ "syscall.DLT_JUNIPER_PIC_PEER": "syscall",
+ "syscall.DLT_JUNIPER_PPP": "syscall",
+ "syscall.DLT_JUNIPER_PPPOE": "syscall",
+ "syscall.DLT_JUNIPER_PPPOE_ATM": "syscall",
+ "syscall.DLT_JUNIPER_SERVICES": "syscall",
+ "syscall.DLT_JUNIPER_SRX_E2E": "syscall",
+ "syscall.DLT_JUNIPER_ST": "syscall",
+ "syscall.DLT_JUNIPER_VP": "syscall",
+ "syscall.DLT_JUNIPER_VS": "syscall",
+ "syscall.DLT_LAPB_WITH_DIR": "syscall",
+ "syscall.DLT_LAPD": "syscall",
+ "syscall.DLT_LIN": "syscall",
+ "syscall.DLT_LINUX_EVDEV": "syscall",
+ "syscall.DLT_LINUX_IRDA": "syscall",
+ "syscall.DLT_LINUX_LAPD": "syscall",
+ "syscall.DLT_LINUX_PPP_WITHDIRECTION": "syscall",
+ "syscall.DLT_LINUX_SLL": "syscall",
+ "syscall.DLT_LOOP": "syscall",
+ "syscall.DLT_LTALK": "syscall",
+ "syscall.DLT_MATCHING_MAX": "syscall",
+ "syscall.DLT_MATCHING_MIN": "syscall",
+ "syscall.DLT_MFR": "syscall",
+ "syscall.DLT_MOST": "syscall",
+ "syscall.DLT_MPEG_2_TS": "syscall",
+ "syscall.DLT_MPLS": "syscall",
+ "syscall.DLT_MTP2": "syscall",
+ "syscall.DLT_MTP2_WITH_PHDR": "syscall",
+ "syscall.DLT_MTP3": "syscall",
+ "syscall.DLT_MUX27010": "syscall",
+ "syscall.DLT_NETANALYZER": "syscall",
+ "syscall.DLT_NETANALYZER_TRANSPARENT": "syscall",
+ "syscall.DLT_NFC_LLCP": "syscall",
+ "syscall.DLT_NFLOG": "syscall",
+ "syscall.DLT_NG40": "syscall",
+ "syscall.DLT_NULL": "syscall",
+ "syscall.DLT_PCI_EXP": "syscall",
+ "syscall.DLT_PFLOG": "syscall",
+ "syscall.DLT_PFSYNC": "syscall",
+ "syscall.DLT_PPI": "syscall",
+ "syscall.DLT_PPP": "syscall",
+ "syscall.DLT_PPP_BSDOS": "syscall",
+ "syscall.DLT_PPP_ETHER": "syscall",
+ "syscall.DLT_PPP_PPPD": "syscall",
+ "syscall.DLT_PPP_SERIAL": "syscall",
+ "syscall.DLT_PPP_WITH_DIR": "syscall",
+ "syscall.DLT_PPP_WITH_DIRECTION": "syscall",
+ "syscall.DLT_PRISM_HEADER": "syscall",
+ "syscall.DLT_PRONET": "syscall",
+ "syscall.DLT_RAIF1": "syscall",
+ "syscall.DLT_RAW": "syscall",
+ "syscall.DLT_RAWAF_MASK": "syscall",
+ "syscall.DLT_RIO": "syscall",
+ "syscall.DLT_SCCP": "syscall",
+ "syscall.DLT_SITA": "syscall",
+ "syscall.DLT_SLIP": "syscall",
+ "syscall.DLT_SLIP_BSDOS": "syscall",
+ "syscall.DLT_STANAG_5066_D_PDU": "syscall",
+ "syscall.DLT_SUNATM": "syscall",
+ "syscall.DLT_SYMANTEC_FIREWALL": "syscall",
+ "syscall.DLT_TZSP": "syscall",
+ "syscall.DLT_USB": "syscall",
+ "syscall.DLT_USB_LINUX": "syscall",
+ "syscall.DLT_USB_LINUX_MMAPPED": "syscall",
+ "syscall.DLT_USER0": "syscall",
+ "syscall.DLT_USER1": "syscall",
+ "syscall.DLT_USER10": "syscall",
+ "syscall.DLT_USER11": "syscall",
+ "syscall.DLT_USER12": "syscall",
+ "syscall.DLT_USER13": "syscall",
+ "syscall.DLT_USER14": "syscall",
+ "syscall.DLT_USER15": "syscall",
+ "syscall.DLT_USER2": "syscall",
+ "syscall.DLT_USER3": "syscall",
+ "syscall.DLT_USER4": "syscall",
+ "syscall.DLT_USER5": "syscall",
+ "syscall.DLT_USER6": "syscall",
+ "syscall.DLT_USER7": "syscall",
+ "syscall.DLT_USER8": "syscall",
+ "syscall.DLT_USER9": "syscall",
+ "syscall.DLT_WIHART": "syscall",
+ "syscall.DLT_X2E_SERIAL": "syscall",
+ "syscall.DLT_X2E_XORAYA": "syscall",
+ "syscall.DNSMXData": "syscall",
+ "syscall.DNSPTRData": "syscall",
+ "syscall.DNSRecord": "syscall",
+ "syscall.DNSSRVData": "syscall",
+ "syscall.DNSTXTData": "syscall",
+ "syscall.DNS_INFO_NO_RECORDS": "syscall",
+ "syscall.DNS_TYPE_A": "syscall",
+ "syscall.DNS_TYPE_A6": "syscall",
+ "syscall.DNS_TYPE_AAAA": "syscall",
+ "syscall.DNS_TYPE_ADDRS": "syscall",
+ "syscall.DNS_TYPE_AFSDB": "syscall",
+ "syscall.DNS_TYPE_ALL": "syscall",
+ "syscall.DNS_TYPE_ANY": "syscall",
+ "syscall.DNS_TYPE_ATMA": "syscall",
+ "syscall.DNS_TYPE_AXFR": "syscall",
+ "syscall.DNS_TYPE_CERT": "syscall",
+ "syscall.DNS_TYPE_CNAME": "syscall",
+ "syscall.DNS_TYPE_DHCID": "syscall",
+ "syscall.DNS_TYPE_DNAME": "syscall",
+ "syscall.DNS_TYPE_DNSKEY": "syscall",
+ "syscall.DNS_TYPE_DS": "syscall",
+ "syscall.DNS_TYPE_EID": "syscall",
+ "syscall.DNS_TYPE_GID": "syscall",
+ "syscall.DNS_TYPE_GPOS": "syscall",
+ "syscall.DNS_TYPE_HINFO": "syscall",
+ "syscall.DNS_TYPE_ISDN": "syscall",
+ "syscall.DNS_TYPE_IXFR": "syscall",
+ "syscall.DNS_TYPE_KEY": "syscall",
+ "syscall.DNS_TYPE_KX": "syscall",
+ "syscall.DNS_TYPE_LOC": "syscall",
+ "syscall.DNS_TYPE_MAILA": "syscall",
+ "syscall.DNS_TYPE_MAILB": "syscall",
+ "syscall.DNS_TYPE_MB": "syscall",
+ "syscall.DNS_TYPE_MD": "syscall",
+ "syscall.DNS_TYPE_MF": "syscall",
+ "syscall.DNS_TYPE_MG": "syscall",
+ "syscall.DNS_TYPE_MINFO": "syscall",
+ "syscall.DNS_TYPE_MR": "syscall",
+ "syscall.DNS_TYPE_MX": "syscall",
+ "syscall.DNS_TYPE_NAPTR": "syscall",
+ "syscall.DNS_TYPE_NBSTAT": "syscall",
+ "syscall.DNS_TYPE_NIMLOC": "syscall",
+ "syscall.DNS_TYPE_NS": "syscall",
+ "syscall.DNS_TYPE_NSAP": "syscall",
+ "syscall.DNS_TYPE_NSAPPTR": "syscall",
+ "syscall.DNS_TYPE_NSEC": "syscall",
+ "syscall.DNS_TYPE_NULL": "syscall",
+ "syscall.DNS_TYPE_NXT": "syscall",
+ "syscall.DNS_TYPE_OPT": "syscall",
+ "syscall.DNS_TYPE_PTR": "syscall",
+ "syscall.DNS_TYPE_PX": "syscall",
+ "syscall.DNS_TYPE_RP": "syscall",
+ "syscall.DNS_TYPE_RRSIG": "syscall",
+ "syscall.DNS_TYPE_RT": "syscall",
+ "syscall.DNS_TYPE_SIG": "syscall",
+ "syscall.DNS_TYPE_SINK": "syscall",
+ "syscall.DNS_TYPE_SOA": "syscall",
+ "syscall.DNS_TYPE_SRV": "syscall",
+ "syscall.DNS_TYPE_TEXT": "syscall",
+ "syscall.DNS_TYPE_TKEY": "syscall",
+ "syscall.DNS_TYPE_TSIG": "syscall",
+ "syscall.DNS_TYPE_UID": "syscall",
+ "syscall.DNS_TYPE_UINFO": "syscall",
+ "syscall.DNS_TYPE_UNSPEC": "syscall",
+ "syscall.DNS_TYPE_WINS": "syscall",
+ "syscall.DNS_TYPE_WINSR": "syscall",
+ "syscall.DNS_TYPE_WKS": "syscall",
+ "syscall.DNS_TYPE_X25": "syscall",
+ "syscall.DT_BLK": "syscall",
+ "syscall.DT_CHR": "syscall",
+ "syscall.DT_DIR": "syscall",
+ "syscall.DT_FIFO": "syscall",
+ "syscall.DT_LNK": "syscall",
+ "syscall.DT_REG": "syscall",
+ "syscall.DT_SOCK": "syscall",
+ "syscall.DT_UNKNOWN": "syscall",
+ "syscall.DT_WHT": "syscall",
+ "syscall.DUPLICATE_CLOSE_SOURCE": "syscall",
+ "syscall.DUPLICATE_SAME_ACCESS": "syscall",
+ "syscall.DeleteFile": "syscall",
+ "syscall.DetachLsf": "syscall",
+ "syscall.DeviceIoControl": "syscall",
+ "syscall.Dirent": "syscall",
+ "syscall.DnsNameCompare": "syscall",
+ "syscall.DnsQuery": "syscall",
+ "syscall.DnsRecordListFree": "syscall",
+ "syscall.DnsSectionAdditional": "syscall",
+ "syscall.DnsSectionAnswer": "syscall",
+ "syscall.DnsSectionAuthority": "syscall",
+ "syscall.DnsSectionQuestion": "syscall",
+ "syscall.Dup": "syscall",
+ "syscall.Dup2": "syscall",
+ "syscall.Dup3": "syscall",
+ "syscall.DuplicateHandle": "syscall",
+ "syscall.E2BIG": "syscall",
+ "syscall.EACCES": "syscall",
+ "syscall.EADDRINUSE": "syscall",
+ "syscall.EADDRNOTAVAIL": "syscall",
+ "syscall.EADV": "syscall",
+ "syscall.EAFNOSUPPORT": "syscall",
+ "syscall.EAGAIN": "syscall",
+ "syscall.EALREADY": "syscall",
+ "syscall.EAUTH": "syscall",
+ "syscall.EBADARCH": "syscall",
+ "syscall.EBADE": "syscall",
+ "syscall.EBADEXEC": "syscall",
+ "syscall.EBADF": "syscall",
+ "syscall.EBADFD": "syscall",
+ "syscall.EBADMACHO": "syscall",
+ "syscall.EBADMSG": "syscall",
+ "syscall.EBADR": "syscall",
+ "syscall.EBADRPC": "syscall",
+ "syscall.EBADRQC": "syscall",
+ "syscall.EBADSLT": "syscall",
+ "syscall.EBFONT": "syscall",
+ "syscall.EBUSY": "syscall",
+ "syscall.ECANCELED": "syscall",
+ "syscall.ECAPMODE": "syscall",
+ "syscall.ECHILD": "syscall",
+ "syscall.ECHO": "syscall",
+ "syscall.ECHOCTL": "syscall",
+ "syscall.ECHOE": "syscall",
+ "syscall.ECHOK": "syscall",
+ "syscall.ECHOKE": "syscall",
+ "syscall.ECHONL": "syscall",
+ "syscall.ECHOPRT": "syscall",
+ "syscall.ECHRNG": "syscall",
+ "syscall.ECOMM": "syscall",
+ "syscall.ECONNABORTED": "syscall",
+ "syscall.ECONNREFUSED": "syscall",
+ "syscall.ECONNRESET": "syscall",
+ "syscall.EDEADLK": "syscall",
+ "syscall.EDEADLOCK": "syscall",
+ "syscall.EDESTADDRREQ": "syscall",
+ "syscall.EDEVERR": "syscall",
+ "syscall.EDOM": "syscall",
+ "syscall.EDOOFUS": "syscall",
+ "syscall.EDOTDOT": "syscall",
+ "syscall.EDQUOT": "syscall",
+ "syscall.EEXIST": "syscall",
+ "syscall.EFAULT": "syscall",
+ "syscall.EFBIG": "syscall",
+ "syscall.EFER_LMA": "syscall",
+ "syscall.EFER_LME": "syscall",
+ "syscall.EFER_NXE": "syscall",
+ "syscall.EFER_SCE": "syscall",
+ "syscall.EFTYPE": "syscall",
+ "syscall.EHOSTDOWN": "syscall",
+ "syscall.EHOSTUNREACH": "syscall",
+ "syscall.EHWPOISON": "syscall",
+ "syscall.EIDRM": "syscall",
+ "syscall.EILSEQ": "syscall",
+ "syscall.EINPROGRESS": "syscall",
+ "syscall.EINTR": "syscall",
+ "syscall.EINVAL": "syscall",
+ "syscall.EIO": "syscall",
+ "syscall.EIPSEC": "syscall",
+ "syscall.EISCONN": "syscall",
+ "syscall.EISDIR": "syscall",
+ "syscall.EISNAM": "syscall",
+ "syscall.EKEYEXPIRED": "syscall",
+ "syscall.EKEYREJECTED": "syscall",
+ "syscall.EKEYREVOKED": "syscall",
+ "syscall.EL2HLT": "syscall",
+ "syscall.EL2NSYNC": "syscall",
+ "syscall.EL3HLT": "syscall",
+ "syscall.EL3RST": "syscall",
+ "syscall.ELAST": "syscall",
+ "syscall.ELF_NGREG": "syscall",
+ "syscall.ELF_PRARGSZ": "syscall",
+ "syscall.ELIBACC": "syscall",
+ "syscall.ELIBBAD": "syscall",
+ "syscall.ELIBEXEC": "syscall",
+ "syscall.ELIBMAX": "syscall",
+ "syscall.ELIBSCN": "syscall",
+ "syscall.ELNRNG": "syscall",
+ "syscall.ELOOP": "syscall",
+ "syscall.EMEDIUMTYPE": "syscall",
+ "syscall.EMFILE": "syscall",
+ "syscall.EMLINK": "syscall",
+ "syscall.EMSGSIZE": "syscall",
+ "syscall.EMT_TAGOVF": "syscall",
+ "syscall.EMULTIHOP": "syscall",
+ "syscall.EMUL_ENABLED": "syscall",
+ "syscall.EMUL_LINUX": "syscall",
+ "syscall.EMUL_LINUX32": "syscall",
+ "syscall.EMUL_MAXID": "syscall",
+ "syscall.EMUL_NATIVE": "syscall",
+ "syscall.ENAMETOOLONG": "syscall",
+ "syscall.ENAVAIL": "syscall",
+ "syscall.ENDRUNDISC": "syscall",
+ "syscall.ENEEDAUTH": "syscall",
+ "syscall.ENETDOWN": "syscall",
+ "syscall.ENETRESET": "syscall",
+ "syscall.ENETUNREACH": "syscall",
+ "syscall.ENFILE": "syscall",
+ "syscall.ENOANO": "syscall",
+ "syscall.ENOATTR": "syscall",
+ "syscall.ENOBUFS": "syscall",
+ "syscall.ENOCSI": "syscall",
+ "syscall.ENODATA": "syscall",
+ "syscall.ENODEV": "syscall",
+ "syscall.ENOENT": "syscall",
+ "syscall.ENOEXEC": "syscall",
+ "syscall.ENOKEY": "syscall",
+ "syscall.ENOLCK": "syscall",
+ "syscall.ENOLINK": "syscall",
+ "syscall.ENOMEDIUM": "syscall",
+ "syscall.ENOMEM": "syscall",
+ "syscall.ENOMSG": "syscall",
+ "syscall.ENONET": "syscall",
+ "syscall.ENOPKG": "syscall",
+ "syscall.ENOPOLICY": "syscall",
+ "syscall.ENOPROTOOPT": "syscall",
+ "syscall.ENOSPC": "syscall",
+ "syscall.ENOSR": "syscall",
+ "syscall.ENOSTR": "syscall",
+ "syscall.ENOSYS": "syscall",
+ "syscall.ENOTBLK": "syscall",
+ "syscall.ENOTCAPABLE": "syscall",
+ "syscall.ENOTCONN": "syscall",
+ "syscall.ENOTDIR": "syscall",
+ "syscall.ENOTEMPTY": "syscall",
+ "syscall.ENOTNAM": "syscall",
+ "syscall.ENOTRECOVERABLE": "syscall",
+ "syscall.ENOTSOCK": "syscall",
+ "syscall.ENOTSUP": "syscall",
+ "syscall.ENOTTY": "syscall",
+ "syscall.ENOTUNIQ": "syscall",
+ "syscall.ENXIO": "syscall",
+ "syscall.EN_SW_CTL_INF": "syscall",
+ "syscall.EN_SW_CTL_PREC": "syscall",
+ "syscall.EN_SW_CTL_ROUND": "syscall",
+ "syscall.EN_SW_DATACHAIN": "syscall",
+ "syscall.EN_SW_DENORM": "syscall",
+ "syscall.EN_SW_INVOP": "syscall",
+ "syscall.EN_SW_OVERFLOW": "syscall",
+ "syscall.EN_SW_PRECLOSS": "syscall",
+ "syscall.EN_SW_UNDERFLOW": "syscall",
+ "syscall.EN_SW_ZERODIV": "syscall",
+ "syscall.EOPNOTSUPP": "syscall",
+ "syscall.EOVERFLOW": "syscall",
+ "syscall.EOWNERDEAD": "syscall",
+ "syscall.EPERM": "syscall",
+ "syscall.EPFNOSUPPORT": "syscall",
+ "syscall.EPIPE": "syscall",
+ "syscall.EPOLLERR": "syscall",
+ "syscall.EPOLLET": "syscall",
+ "syscall.EPOLLHUP": "syscall",
+ "syscall.EPOLLIN": "syscall",
+ "syscall.EPOLLMSG": "syscall",
+ "syscall.EPOLLONESHOT": "syscall",
+ "syscall.EPOLLOUT": "syscall",
+ "syscall.EPOLLPRI": "syscall",
+ "syscall.EPOLLRDBAND": "syscall",
+ "syscall.EPOLLRDHUP": "syscall",
+ "syscall.EPOLLRDNORM": "syscall",
+ "syscall.EPOLLWRBAND": "syscall",
+ "syscall.EPOLLWRNORM": "syscall",
+ "syscall.EPOLL_CLOEXEC": "syscall",
+ "syscall.EPOLL_CTL_ADD": "syscall",
+ "syscall.EPOLL_CTL_DEL": "syscall",
+ "syscall.EPOLL_CTL_MOD": "syscall",
+ "syscall.EPOLL_NONBLOCK": "syscall",
+ "syscall.EPROCLIM": "syscall",
+ "syscall.EPROCUNAVAIL": "syscall",
+ "syscall.EPROGMISMATCH": "syscall",
+ "syscall.EPROGUNAVAIL": "syscall",
+ "syscall.EPROTO": "syscall",
+ "syscall.EPROTONOSUPPORT": "syscall",
+ "syscall.EPROTOTYPE": "syscall",
+ "syscall.EPWROFF": "syscall",
+ "syscall.ERANGE": "syscall",
+ "syscall.EREMCHG": "syscall",
+ "syscall.EREMOTE": "syscall",
+ "syscall.EREMOTEIO": "syscall",
+ "syscall.ERESTART": "syscall",
+ "syscall.ERFKILL": "syscall",
+ "syscall.EROFS": "syscall",
+ "syscall.ERPCMISMATCH": "syscall",
+ "syscall.ERROR_ACCESS_DENIED": "syscall",
+ "syscall.ERROR_ALREADY_EXISTS": "syscall",
+ "syscall.ERROR_BROKEN_PIPE": "syscall",
+ "syscall.ERROR_BUFFER_OVERFLOW": "syscall",
+ "syscall.ERROR_ENVVAR_NOT_FOUND": "syscall",
+ "syscall.ERROR_FILE_EXISTS": "syscall",
+ "syscall.ERROR_FILE_NOT_FOUND": "syscall",
+ "syscall.ERROR_HANDLE_EOF": "syscall",
+ "syscall.ERROR_INSUFFICIENT_BUFFER": "syscall",
+ "syscall.ERROR_IO_PENDING": "syscall",
+ "syscall.ERROR_MOD_NOT_FOUND": "syscall",
+ "syscall.ERROR_MORE_DATA": "syscall",
+ "syscall.ERROR_NETNAME_DELETED": "syscall",
+ "syscall.ERROR_NOT_FOUND": "syscall",
+ "syscall.ERROR_NO_MORE_FILES": "syscall",
+ "syscall.ERROR_OPERATION_ABORTED": "syscall",
+ "syscall.ERROR_PATH_NOT_FOUND": "syscall",
+ "syscall.ERROR_PRIVILEGE_NOT_HELD": "syscall",
+ "syscall.ERROR_PROC_NOT_FOUND": "syscall",
+ "syscall.ESHLIBVERS": "syscall",
+ "syscall.ESHUTDOWN": "syscall",
+ "syscall.ESOCKTNOSUPPORT": "syscall",
+ "syscall.ESPIPE": "syscall",
+ "syscall.ESRCH": "syscall",
+ "syscall.ESRMNT": "syscall",
+ "syscall.ESTALE": "syscall",
+ "syscall.ESTRPIPE": "syscall",
+ "syscall.ETHERCAP_JUMBO_MTU": "syscall",
+ "syscall.ETHERCAP_VLAN_HWTAGGING": "syscall",
+ "syscall.ETHERCAP_VLAN_MTU": "syscall",
+ "syscall.ETHERMIN": "syscall",
+ "syscall.ETHERMTU": "syscall",
+ "syscall.ETHERMTU_JUMBO": "syscall",
+ "syscall.ETHERTYPE_8023": "syscall",
+ "syscall.ETHERTYPE_AARP": "syscall",
+ "syscall.ETHERTYPE_ACCTON": "syscall",
+ "syscall.ETHERTYPE_AEONIC": "syscall",
+ "syscall.ETHERTYPE_ALPHA": "syscall",
+ "syscall.ETHERTYPE_AMBER": "syscall",
+ "syscall.ETHERTYPE_AMOEBA": "syscall",
+ "syscall.ETHERTYPE_AOE": "syscall",
+ "syscall.ETHERTYPE_APOLLO": "syscall",
+ "syscall.ETHERTYPE_APOLLODOMAIN": "syscall",
+ "syscall.ETHERTYPE_APPLETALK": "syscall",
+ "syscall.ETHERTYPE_APPLITEK": "syscall",
+ "syscall.ETHERTYPE_ARGONAUT": "syscall",
+ "syscall.ETHERTYPE_ARP": "syscall",
+ "syscall.ETHERTYPE_AT": "syscall",
+ "syscall.ETHERTYPE_ATALK": "syscall",
+ "syscall.ETHERTYPE_ATOMIC": "syscall",
+ "syscall.ETHERTYPE_ATT": "syscall",
+ "syscall.ETHERTYPE_ATTSTANFORD": "syscall",
+ "syscall.ETHERTYPE_AUTOPHON": "syscall",
+ "syscall.ETHERTYPE_AXIS": "syscall",
+ "syscall.ETHERTYPE_BCLOOP": "syscall",
+ "syscall.ETHERTYPE_BOFL": "syscall",
+ "syscall.ETHERTYPE_CABLETRON": "syscall",
+ "syscall.ETHERTYPE_CHAOS": "syscall",
+ "syscall.ETHERTYPE_COMDESIGN": "syscall",
+ "syscall.ETHERTYPE_COMPUGRAPHIC": "syscall",
+ "syscall.ETHERTYPE_COUNTERPOINT": "syscall",
+ "syscall.ETHERTYPE_CRONUS": "syscall",
+ "syscall.ETHERTYPE_CRONUSVLN": "syscall",
+ "syscall.ETHERTYPE_DCA": "syscall",
+ "syscall.ETHERTYPE_DDE": "syscall",
+ "syscall.ETHERTYPE_DEBNI": "syscall",
+ "syscall.ETHERTYPE_DECAM": "syscall",
+ "syscall.ETHERTYPE_DECCUST": "syscall",
+ "syscall.ETHERTYPE_DECDIAG": "syscall",
+ "syscall.ETHERTYPE_DECDNS": "syscall",
+ "syscall.ETHERTYPE_DECDTS": "syscall",
+ "syscall.ETHERTYPE_DECEXPER": "syscall",
+ "syscall.ETHERTYPE_DECLAST": "syscall",
+ "syscall.ETHERTYPE_DECLTM": "syscall",
+ "syscall.ETHERTYPE_DECMUMPS": "syscall",
+ "syscall.ETHERTYPE_DECNETBIOS": "syscall",
+ "syscall.ETHERTYPE_DELTACON": "syscall",
+ "syscall.ETHERTYPE_DIDDLE": "syscall",
+ "syscall.ETHERTYPE_DLOG1": "syscall",
+ "syscall.ETHERTYPE_DLOG2": "syscall",
+ "syscall.ETHERTYPE_DN": "syscall",
+ "syscall.ETHERTYPE_DOGFIGHT": "syscall",
+ "syscall.ETHERTYPE_DSMD": "syscall",
+ "syscall.ETHERTYPE_ECMA": "syscall",
+ "syscall.ETHERTYPE_ENCRYPT": "syscall",
+ "syscall.ETHERTYPE_ES": "syscall",
+ "syscall.ETHERTYPE_EXCELAN": "syscall",
+ "syscall.ETHERTYPE_EXPERDATA": "syscall",
+ "syscall.ETHERTYPE_FLIP": "syscall",
+ "syscall.ETHERTYPE_FLOWCONTROL": "syscall",
+ "syscall.ETHERTYPE_FRARP": "syscall",
+ "syscall.ETHERTYPE_GENDYN": "syscall",
+ "syscall.ETHERTYPE_HAYES": "syscall",
+ "syscall.ETHERTYPE_HIPPI_FP": "syscall",
+ "syscall.ETHERTYPE_HITACHI": "syscall",
+ "syscall.ETHERTYPE_HP": "syscall",
+ "syscall.ETHERTYPE_IEEEPUP": "syscall",
+ "syscall.ETHERTYPE_IEEEPUPAT": "syscall",
+ "syscall.ETHERTYPE_IMLBL": "syscall",
+ "syscall.ETHERTYPE_IMLBLDIAG": "syscall",
+ "syscall.ETHERTYPE_IP": "syscall",
+ "syscall.ETHERTYPE_IPAS": "syscall",
+ "syscall.ETHERTYPE_IPV6": "syscall",
+ "syscall.ETHERTYPE_IPX": "syscall",
+ "syscall.ETHERTYPE_IPXNEW": "syscall",
+ "syscall.ETHERTYPE_KALPANA": "syscall",
+ "syscall.ETHERTYPE_LANBRIDGE": "syscall",
+ "syscall.ETHERTYPE_LANPROBE": "syscall",
+ "syscall.ETHERTYPE_LAT": "syscall",
+ "syscall.ETHERTYPE_LBACK": "syscall",
+ "syscall.ETHERTYPE_LITTLE": "syscall",
+ "syscall.ETHERTYPE_LLDP": "syscall",
+ "syscall.ETHERTYPE_LOGICRAFT": "syscall",
+ "syscall.ETHERTYPE_LOOPBACK": "syscall",
+ "syscall.ETHERTYPE_MATRA": "syscall",
+ "syscall.ETHERTYPE_MAX": "syscall",
+ "syscall.ETHERTYPE_MERIT": "syscall",
+ "syscall.ETHERTYPE_MICP": "syscall",
+ "syscall.ETHERTYPE_MOPDL": "syscall",
+ "syscall.ETHERTYPE_MOPRC": "syscall",
+ "syscall.ETHERTYPE_MOTOROLA": "syscall",
+ "syscall.ETHERTYPE_MPLS": "syscall",
+ "syscall.ETHERTYPE_MPLS_MCAST": "syscall",
+ "syscall.ETHERTYPE_MUMPS": "syscall",
+ "syscall.ETHERTYPE_NBPCC": "syscall",
+ "syscall.ETHERTYPE_NBPCLAIM": "syscall",
+ "syscall.ETHERTYPE_NBPCLREQ": "syscall",
+ "syscall.ETHERTYPE_NBPCLRSP": "syscall",
+ "syscall.ETHERTYPE_NBPCREQ": "syscall",
+ "syscall.ETHERTYPE_NBPCRSP": "syscall",
+ "syscall.ETHERTYPE_NBPDG": "syscall",
+ "syscall.ETHERTYPE_NBPDGB": "syscall",
+ "syscall.ETHERTYPE_NBPDLTE": "syscall",
+ "syscall.ETHERTYPE_NBPRAR": "syscall",
+ "syscall.ETHERTYPE_NBPRAS": "syscall",
+ "syscall.ETHERTYPE_NBPRST": "syscall",
+ "syscall.ETHERTYPE_NBPSCD": "syscall",
+ "syscall.ETHERTYPE_NBPVCD": "syscall",
+ "syscall.ETHERTYPE_NBS": "syscall",
+ "syscall.ETHERTYPE_NCD": "syscall",
+ "syscall.ETHERTYPE_NESTAR": "syscall",
+ "syscall.ETHERTYPE_NETBEUI": "syscall",
+ "syscall.ETHERTYPE_NOVELL": "syscall",
+ "syscall.ETHERTYPE_NS": "syscall",
+ "syscall.ETHERTYPE_NSAT": "syscall",
+ "syscall.ETHERTYPE_NSCOMPAT": "syscall",
+ "syscall.ETHERTYPE_NTRAILER": "syscall",
+ "syscall.ETHERTYPE_OS9": "syscall",
+ "syscall.ETHERTYPE_OS9NET": "syscall",
+ "syscall.ETHERTYPE_PACER": "syscall",
+ "syscall.ETHERTYPE_PAE": "syscall",
+ "syscall.ETHERTYPE_PCS": "syscall",
+ "syscall.ETHERTYPE_PLANNING": "syscall",
+ "syscall.ETHERTYPE_PPP": "syscall",
+ "syscall.ETHERTYPE_PPPOE": "syscall",
+ "syscall.ETHERTYPE_PPPOEDISC": "syscall",
+ "syscall.ETHERTYPE_PRIMENTS": "syscall",
+ "syscall.ETHERTYPE_PUP": "syscall",
+ "syscall.ETHERTYPE_PUPAT": "syscall",
+ "syscall.ETHERTYPE_QINQ": "syscall",
+ "syscall.ETHERTYPE_RACAL": "syscall",
+ "syscall.ETHERTYPE_RATIONAL": "syscall",
+ "syscall.ETHERTYPE_RAWFR": "syscall",
+ "syscall.ETHERTYPE_RCL": "syscall",
+ "syscall.ETHERTYPE_RDP": "syscall",
+ "syscall.ETHERTYPE_RETIX": "syscall",
+ "syscall.ETHERTYPE_REVARP": "syscall",
+ "syscall.ETHERTYPE_SCA": "syscall",
+ "syscall.ETHERTYPE_SECTRA": "syscall",
+ "syscall.ETHERTYPE_SECUREDATA": "syscall",
+ "syscall.ETHERTYPE_SGITW": "syscall",
+ "syscall.ETHERTYPE_SG_BOUNCE": "syscall",
+ "syscall.ETHERTYPE_SG_DIAG": "syscall",
+ "syscall.ETHERTYPE_SG_NETGAMES": "syscall",
+ "syscall.ETHERTYPE_SG_RESV": "syscall",
+ "syscall.ETHERTYPE_SIMNET": "syscall",
+ "syscall.ETHERTYPE_SLOW": "syscall",
+ "syscall.ETHERTYPE_SLOWPROTOCOLS": "syscall",
+ "syscall.ETHERTYPE_SNA": "syscall",
+ "syscall.ETHERTYPE_SNMP": "syscall",
+ "syscall.ETHERTYPE_SONIX": "syscall",
+ "syscall.ETHERTYPE_SPIDER": "syscall",
+ "syscall.ETHERTYPE_SPRITE": "syscall",
+ "syscall.ETHERTYPE_STP": "syscall",
+ "syscall.ETHERTYPE_TALARIS": "syscall",
+ "syscall.ETHERTYPE_TALARISMC": "syscall",
+ "syscall.ETHERTYPE_TCPCOMP": "syscall",
+ "syscall.ETHERTYPE_TCPSM": "syscall",
+ "syscall.ETHERTYPE_TEC": "syscall",
+ "syscall.ETHERTYPE_TIGAN": "syscall",
+ "syscall.ETHERTYPE_TRAIL": "syscall",
+ "syscall.ETHERTYPE_TRANSETHER": "syscall",
+ "syscall.ETHERTYPE_TYMSHARE": "syscall",
+ "syscall.ETHERTYPE_UBBST": "syscall",
+ "syscall.ETHERTYPE_UBDEBUG": "syscall",
+ "syscall.ETHERTYPE_UBDIAGLOOP": "syscall",
+ "syscall.ETHERTYPE_UBDL": "syscall",
+ "syscall.ETHERTYPE_UBNIU": "syscall",
+ "syscall.ETHERTYPE_UBNMC": "syscall",
+ "syscall.ETHERTYPE_VALID": "syscall",
+ "syscall.ETHERTYPE_VARIAN": "syscall",
+ "syscall.ETHERTYPE_VAXELN": "syscall",
+ "syscall.ETHERTYPE_VEECO": "syscall",
+ "syscall.ETHERTYPE_VEXP": "syscall",
+ "syscall.ETHERTYPE_VGLAB": "syscall",
+ "syscall.ETHERTYPE_VINES": "syscall",
+ "syscall.ETHERTYPE_VINESECHO": "syscall",
+ "syscall.ETHERTYPE_VINESLOOP": "syscall",
+ "syscall.ETHERTYPE_VITAL": "syscall",
+ "syscall.ETHERTYPE_VLAN": "syscall",
+ "syscall.ETHERTYPE_VLTLMAN": "syscall",
+ "syscall.ETHERTYPE_VPROD": "syscall",
+ "syscall.ETHERTYPE_VURESERVED": "syscall",
+ "syscall.ETHERTYPE_WATERLOO": "syscall",
+ "syscall.ETHERTYPE_WELLFLEET": "syscall",
+ "syscall.ETHERTYPE_X25": "syscall",
+ "syscall.ETHERTYPE_X75": "syscall",
+ "syscall.ETHERTYPE_XNSSM": "syscall",
+ "syscall.ETHERTYPE_XTP": "syscall",
+ "syscall.ETHER_ADDR_LEN": "syscall",
+ "syscall.ETHER_ALIGN": "syscall",
+ "syscall.ETHER_CRC_LEN": "syscall",
+ "syscall.ETHER_CRC_POLY_BE": "syscall",
+ "syscall.ETHER_CRC_POLY_LE": "syscall",
+ "syscall.ETHER_HDR_LEN": "syscall",
+ "syscall.ETHER_MAX_DIX_LEN": "syscall",
+ "syscall.ETHER_MAX_LEN": "syscall",
+ "syscall.ETHER_MAX_LEN_JUMBO": "syscall",
+ "syscall.ETHER_MIN_LEN": "syscall",
+ "syscall.ETHER_PPPOE_ENCAP_LEN": "syscall",
+ "syscall.ETHER_TYPE_LEN": "syscall",
+ "syscall.ETHER_VLAN_ENCAP_LEN": "syscall",
+ "syscall.ETH_P_1588": "syscall",
+ "syscall.ETH_P_8021Q": "syscall",
+ "syscall.ETH_P_802_2": "syscall",
+ "syscall.ETH_P_802_3": "syscall",
+ "syscall.ETH_P_AARP": "syscall",
+ "syscall.ETH_P_ALL": "syscall",
+ "syscall.ETH_P_AOE": "syscall",
+ "syscall.ETH_P_ARCNET": "syscall",
+ "syscall.ETH_P_ARP": "syscall",
+ "syscall.ETH_P_ATALK": "syscall",
+ "syscall.ETH_P_ATMFATE": "syscall",
+ "syscall.ETH_P_ATMMPOA": "syscall",
+ "syscall.ETH_P_AX25": "syscall",
+ "syscall.ETH_P_BPQ": "syscall",
+ "syscall.ETH_P_CAIF": "syscall",
+ "syscall.ETH_P_CAN": "syscall",
+ "syscall.ETH_P_CONTROL": "syscall",
+ "syscall.ETH_P_CUST": "syscall",
+ "syscall.ETH_P_DDCMP": "syscall",
+ "syscall.ETH_P_DEC": "syscall",
+ "syscall.ETH_P_DIAG": "syscall",
+ "syscall.ETH_P_DNA_DL": "syscall",
+ "syscall.ETH_P_DNA_RC": "syscall",
+ "syscall.ETH_P_DNA_RT": "syscall",
+ "syscall.ETH_P_DSA": "syscall",
+ "syscall.ETH_P_ECONET": "syscall",
+ "syscall.ETH_P_EDSA": "syscall",
+ "syscall.ETH_P_FCOE": "syscall",
+ "syscall.ETH_P_FIP": "syscall",
+ "syscall.ETH_P_HDLC": "syscall",
+ "syscall.ETH_P_IEEE802154": "syscall",
+ "syscall.ETH_P_IEEEPUP": "syscall",
+ "syscall.ETH_P_IEEEPUPAT": "syscall",
+ "syscall.ETH_P_IP": "syscall",
+ "syscall.ETH_P_IPV6": "syscall",
+ "syscall.ETH_P_IPX": "syscall",
+ "syscall.ETH_P_IRDA": "syscall",
+ "syscall.ETH_P_LAT": "syscall",
+ "syscall.ETH_P_LINK_CTL": "syscall",
+ "syscall.ETH_P_LOCALTALK": "syscall",
+ "syscall.ETH_P_LOOP": "syscall",
+ "syscall.ETH_P_MOBITEX": "syscall",
+ "syscall.ETH_P_MPLS_MC": "syscall",
+ "syscall.ETH_P_MPLS_UC": "syscall",
+ "syscall.ETH_P_PAE": "syscall",
+ "syscall.ETH_P_PAUSE": "syscall",
+ "syscall.ETH_P_PHONET": "syscall",
+ "syscall.ETH_P_PPPTALK": "syscall",
+ "syscall.ETH_P_PPP_DISC": "syscall",
+ "syscall.ETH_P_PPP_MP": "syscall",
+ "syscall.ETH_P_PPP_SES": "syscall",
+ "syscall.ETH_P_PUP": "syscall",
+ "syscall.ETH_P_PUPAT": "syscall",
+ "syscall.ETH_P_RARP": "syscall",
+ "syscall.ETH_P_SCA": "syscall",
+ "syscall.ETH_P_SLOW": "syscall",
+ "syscall.ETH_P_SNAP": "syscall",
+ "syscall.ETH_P_TEB": "syscall",
+ "syscall.ETH_P_TIPC": "syscall",
+ "syscall.ETH_P_TRAILER": "syscall",
+ "syscall.ETH_P_TR_802_2": "syscall",
+ "syscall.ETH_P_WAN_PPP": "syscall",
+ "syscall.ETH_P_WCCP": "syscall",
+ "syscall.ETH_P_X25": "syscall",
+ "syscall.ETIME": "syscall",
+ "syscall.ETIMEDOUT": "syscall",
+ "syscall.ETOOMANYREFS": "syscall",
+ "syscall.ETXTBSY": "syscall",
+ "syscall.EUCLEAN": "syscall",
+ "syscall.EUNATCH": "syscall",
+ "syscall.EUSERS": "syscall",
+ "syscall.EVFILT_AIO": "syscall",
+ "syscall.EVFILT_FS": "syscall",
+ "syscall.EVFILT_LIO": "syscall",
+ "syscall.EVFILT_MACHPORT": "syscall",
+ "syscall.EVFILT_PROC": "syscall",
+ "syscall.EVFILT_READ": "syscall",
+ "syscall.EVFILT_SIGNAL": "syscall",
+ "syscall.EVFILT_SYSCOUNT": "syscall",
+ "syscall.EVFILT_THREADMARKER": "syscall",
+ "syscall.EVFILT_TIMER": "syscall",
+ "syscall.EVFILT_USER": "syscall",
+ "syscall.EVFILT_VM": "syscall",
+ "syscall.EVFILT_VNODE": "syscall",
+ "syscall.EVFILT_WRITE": "syscall",
+ "syscall.EV_ADD": "syscall",
+ "syscall.EV_CLEAR": "syscall",
+ "syscall.EV_DELETE": "syscall",
+ "syscall.EV_DISABLE": "syscall",
+ "syscall.EV_DISPATCH": "syscall",
+ "syscall.EV_DROP": "syscall",
+ "syscall.EV_ENABLE": "syscall",
+ "syscall.EV_EOF": "syscall",
+ "syscall.EV_ERROR": "syscall",
+ "syscall.EV_FLAG0": "syscall",
+ "syscall.EV_FLAG1": "syscall",
+ "syscall.EV_ONESHOT": "syscall",
+ "syscall.EV_OOBAND": "syscall",
+ "syscall.EV_POLL": "syscall",
+ "syscall.EV_RECEIPT": "syscall",
+ "syscall.EV_SYSFLAGS": "syscall",
+ "syscall.EWINDOWS": "syscall",
+ "syscall.EWOULDBLOCK": "syscall",
+ "syscall.EXDEV": "syscall",
+ "syscall.EXFULL": "syscall",
+ "syscall.EXTA": "syscall",
+ "syscall.EXTB": "syscall",
+ "syscall.EXTPROC": "syscall",
+ "syscall.Environ": "syscall",
+ "syscall.EpollCreate": "syscall",
+ "syscall.EpollCreate1": "syscall",
+ "syscall.EpollCtl": "syscall",
+ "syscall.EpollEvent": "syscall",
+ "syscall.EpollWait": "syscall",
+ "syscall.Errno": "syscall",
+ "syscall.EscapeArg": "syscall",
+ "syscall.Exchangedata": "syscall",
+ "syscall.Exec": "syscall",
+ "syscall.Exit": "syscall",
+ "syscall.ExitProcess": "syscall",
+ "syscall.FD_CLOEXEC": "syscall",
+ "syscall.FD_SETSIZE": "syscall",
+ "syscall.FILE_ACTION_ADDED": "syscall",
+ "syscall.FILE_ACTION_MODIFIED": "syscall",
+ "syscall.FILE_ACTION_REMOVED": "syscall",
+ "syscall.FILE_ACTION_RENAMED_NEW_NAME": "syscall",
+ "syscall.FILE_ACTION_RENAMED_OLD_NAME": "syscall",
+ "syscall.FILE_APPEND_DATA": "syscall",
+ "syscall.FILE_ATTRIBUTE_ARCHIVE": "syscall",
+ "syscall.FILE_ATTRIBUTE_DIRECTORY": "syscall",
+ "syscall.FILE_ATTRIBUTE_HIDDEN": "syscall",
+ "syscall.FILE_ATTRIBUTE_NORMAL": "syscall",
+ "syscall.FILE_ATTRIBUTE_READONLY": "syscall",
+ "syscall.FILE_ATTRIBUTE_REPARSE_POINT": "syscall",
+ "syscall.FILE_ATTRIBUTE_SYSTEM": "syscall",
+ "syscall.FILE_BEGIN": "syscall",
+ "syscall.FILE_CURRENT": "syscall",
+ "syscall.FILE_END": "syscall",
+ "syscall.FILE_FLAG_BACKUP_SEMANTICS": "syscall",
+ "syscall.FILE_FLAG_OPEN_REPARSE_POINT": "syscall",
+ "syscall.FILE_FLAG_OVERLAPPED": "syscall",
+ "syscall.FILE_LIST_DIRECTORY": "syscall",
+ "syscall.FILE_MAP_COPY": "syscall",
+ "syscall.FILE_MAP_EXECUTE": "syscall",
+ "syscall.FILE_MAP_READ": "syscall",
+ "syscall.FILE_MAP_WRITE": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_ATTRIBUTES": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_CREATION": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_DIR_NAME": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_FILE_NAME": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_LAST_ACCESS": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_LAST_WRITE": "syscall",
+ "syscall.FILE_NOTIFY_CHANGE_SIZE": "syscall",
+ "syscall.FILE_SHARE_DELETE": "syscall",
+ "syscall.FILE_SHARE_READ": "syscall",
+ "syscall.FILE_SHARE_WRITE": "syscall",
+ "syscall.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS": "syscall",
+ "syscall.FILE_SKIP_SET_EVENT_ON_HANDLE": "syscall",
+ "syscall.FILE_TYPE_CHAR": "syscall",
+ "syscall.FILE_TYPE_DISK": "syscall",
+ "syscall.FILE_TYPE_PIPE": "syscall",
+ "syscall.FILE_TYPE_REMOTE": "syscall",
+ "syscall.FILE_TYPE_UNKNOWN": "syscall",
+ "syscall.FILE_WRITE_ATTRIBUTES": "syscall",
+ "syscall.FLUSHO": "syscall",
+ "syscall.FORMAT_MESSAGE_ALLOCATE_BUFFER": "syscall",
+ "syscall.FORMAT_MESSAGE_ARGUMENT_ARRAY": "syscall",
+ "syscall.FORMAT_MESSAGE_FROM_HMODULE": "syscall",
+ "syscall.FORMAT_MESSAGE_FROM_STRING": "syscall",
+ "syscall.FORMAT_MESSAGE_FROM_SYSTEM": "syscall",
+ "syscall.FORMAT_MESSAGE_IGNORE_INSERTS": "syscall",
+ "syscall.FORMAT_MESSAGE_MAX_WIDTH_MASK": "syscall",
+ "syscall.FSCTL_GET_REPARSE_POINT": "syscall",
+ "syscall.F_ADDFILESIGS": "syscall",
+ "syscall.F_ADDSIGS": "syscall",
+ "syscall.F_ALLOCATEALL": "syscall",
+ "syscall.F_ALLOCATECONTIG": "syscall",
+ "syscall.F_CANCEL": "syscall",
+ "syscall.F_CHKCLEAN": "syscall",
+ "syscall.F_CLOSEM": "syscall",
+ "syscall.F_DUP2FD": "syscall",
+ "syscall.F_DUP2FD_CLOEXEC": "syscall",
+ "syscall.F_DUPFD": "syscall",
+ "syscall.F_DUPFD_CLOEXEC": "syscall",
+ "syscall.F_EXLCK": "syscall",
+ "syscall.F_FLUSH_DATA": "syscall",
+ "syscall.F_FREEZE_FS": "syscall",
+ "syscall.F_FSCTL": "syscall",
+ "syscall.F_FSDIRMASK": "syscall",
+ "syscall.F_FSIN": "syscall",
+ "syscall.F_FSINOUT": "syscall",
+ "syscall.F_FSOUT": "syscall",
+ "syscall.F_FSPRIV": "syscall",
+ "syscall.F_FSVOID": "syscall",
+ "syscall.F_FULLFSYNC": "syscall",
+ "syscall.F_GETFD": "syscall",
+ "syscall.F_GETFL": "syscall",
+ "syscall.F_GETLEASE": "syscall",
+ "syscall.F_GETLK": "syscall",
+ "syscall.F_GETLK64": "syscall",
+ "syscall.F_GETLKPID": "syscall",
+ "syscall.F_GETNOSIGPIPE": "syscall",
+ "syscall.F_GETOWN": "syscall",
+ "syscall.F_GETOWN_EX": "syscall",
+ "syscall.F_GETPATH": "syscall",
+ "syscall.F_GETPATH_MTMINFO": "syscall",
+ "syscall.F_GETPIPE_SZ": "syscall",
+ "syscall.F_GETPROTECTIONCLASS": "syscall",
+ "syscall.F_GETSIG": "syscall",
+ "syscall.F_GLOBAL_NOCACHE": "syscall",
+ "syscall.F_LOCK": "syscall",
+ "syscall.F_LOG2PHYS": "syscall",
+ "syscall.F_LOG2PHYS_EXT": "syscall",
+ "syscall.F_MARKDEPENDENCY": "syscall",
+ "syscall.F_MAXFD": "syscall",
+ "syscall.F_NOCACHE": "syscall",
+ "syscall.F_NODIRECT": "syscall",
+ "syscall.F_NOTIFY": "syscall",
+ "syscall.F_OGETLK": "syscall",
+ "syscall.F_OK": "syscall",
+ "syscall.F_OSETLK": "syscall",
+ "syscall.F_OSETLKW": "syscall",
+ "syscall.F_PARAM_MASK": "syscall",
+ "syscall.F_PARAM_MAX": "syscall",
+ "syscall.F_PATHPKG_CHECK": "syscall",
+ "syscall.F_PEOFPOSMODE": "syscall",
+ "syscall.F_PREALLOCATE": "syscall",
+ "syscall.F_RDADVISE": "syscall",
+ "syscall.F_RDAHEAD": "syscall",
+ "syscall.F_RDLCK": "syscall",
+ "syscall.F_READAHEAD": "syscall",
+ "syscall.F_READBOOTSTRAP": "syscall",
+ "syscall.F_SETBACKINGSTORE": "syscall",
+ "syscall.F_SETFD": "syscall",
+ "syscall.F_SETFL": "syscall",
+ "syscall.F_SETLEASE": "syscall",
+ "syscall.F_SETLK": "syscall",
+ "syscall.F_SETLK64": "syscall",
+ "syscall.F_SETLKW": "syscall",
+ "syscall.F_SETLKW64": "syscall",
+ "syscall.F_SETLK_REMOTE": "syscall",
+ "syscall.F_SETNOSIGPIPE": "syscall",
+ "syscall.F_SETOWN": "syscall",
+ "syscall.F_SETOWN_EX": "syscall",
+ "syscall.F_SETPIPE_SZ": "syscall",
+ "syscall.F_SETPROTECTIONCLASS": "syscall",
+ "syscall.F_SETSIG": "syscall",
+ "syscall.F_SETSIZE": "syscall",
+ "syscall.F_SHLCK": "syscall",
+ "syscall.F_TEST": "syscall",
+ "syscall.F_THAW_FS": "syscall",
+ "syscall.F_TLOCK": "syscall",
+ "syscall.F_ULOCK": "syscall",
+ "syscall.F_UNLCK": "syscall",
+ "syscall.F_UNLCKSYS": "syscall",
+ "syscall.F_VOLPOSMODE": "syscall",
+ "syscall.F_WRITEBOOTSTRAP": "syscall",
+ "syscall.F_WRLCK": "syscall",
+ "syscall.Faccessat": "syscall",
+ "syscall.Fallocate": "syscall",
+ "syscall.Fbootstraptransfer_t": "syscall",
+ "syscall.Fchdir": "syscall",
+ "syscall.Fchflags": "syscall",
+ "syscall.Fchmod": "syscall",
+ "syscall.Fchmodat": "syscall",
+ "syscall.Fchown": "syscall",
+ "syscall.Fchownat": "syscall",
+ "syscall.FcntlFlock": "syscall",
+ "syscall.FdSet": "syscall",
+ "syscall.Fdatasync": "syscall",
+ "syscall.FileNotifyInformation": "syscall",
+ "syscall.Filetime": "syscall",
+ "syscall.FindClose": "syscall",
+ "syscall.FindFirstFile": "syscall",
+ "syscall.FindNextFile": "syscall",
+ "syscall.Flock": "syscall",
+ "syscall.Flock_t": "syscall",
+ "syscall.FlushBpf": "syscall",
+ "syscall.FlushFileBuffers": "syscall",
+ "syscall.FlushViewOfFile": "syscall",
+ "syscall.ForkExec": "syscall",
+ "syscall.ForkLock": "syscall",
+ "syscall.FormatMessage": "syscall",
+ "syscall.Fpathconf": "syscall",
+ "syscall.FreeAddrInfoW": "syscall",
+ "syscall.FreeEnvironmentStrings": "syscall",
+ "syscall.FreeLibrary": "syscall",
+ "syscall.Fsid": "syscall",
+ "syscall.Fstat": "syscall",
+ "syscall.Fstatfs": "syscall",
+ "syscall.Fstore_t": "syscall",
+ "syscall.Fsync": "syscall",
+ "syscall.Ftruncate": "syscall",
+ "syscall.FullPath": "syscall",
+ "syscall.Futimes": "syscall",
+ "syscall.Futimesat": "syscall",
+ "syscall.GENERIC_ALL": "syscall",
+ "syscall.GENERIC_EXECUTE": "syscall",
+ "syscall.GENERIC_READ": "syscall",
+ "syscall.GENERIC_WRITE": "syscall",
+ "syscall.GUID": "syscall",
+ "syscall.GetAcceptExSockaddrs": "syscall",
+ "syscall.GetAdaptersInfo": "syscall",
+ "syscall.GetAddrInfoW": "syscall",
+ "syscall.GetCommandLine": "syscall",
+ "syscall.GetComputerName": "syscall",
+ "syscall.GetConsoleMode": "syscall",
+ "syscall.GetCurrentDirectory": "syscall",
+ "syscall.GetCurrentProcess": "syscall",
+ "syscall.GetEnvironmentStrings": "syscall",
+ "syscall.GetEnvironmentVariable": "syscall",
+ "syscall.GetExitCodeProcess": "syscall",
+ "syscall.GetFileAttributes": "syscall",
+ "syscall.GetFileAttributesEx": "syscall",
+ "syscall.GetFileExInfoStandard": "syscall",
+ "syscall.GetFileExMaxInfoLevel": "syscall",
+ "syscall.GetFileInformationByHandle": "syscall",
+ "syscall.GetFileType": "syscall",
+ "syscall.GetFullPathName": "syscall",
+ "syscall.GetHostByName": "syscall",
+ "syscall.GetIfEntry": "syscall",
+ "syscall.GetLastError": "syscall",
+ "syscall.GetLengthSid": "syscall",
+ "syscall.GetLongPathName": "syscall",
+ "syscall.GetProcAddress": "syscall",
+ "syscall.GetProcessTimes": "syscall",
+ "syscall.GetProtoByName": "syscall",
+ "syscall.GetQueuedCompletionStatus": "syscall",
+ "syscall.GetServByName": "syscall",
+ "syscall.GetShortPathName": "syscall",
+ "syscall.GetStartupInfo": "syscall",
+ "syscall.GetStdHandle": "syscall",
+ "syscall.GetSystemTimeAsFileTime": "syscall",
+ "syscall.GetTempPath": "syscall",
+ "syscall.GetTimeZoneInformation": "syscall",
+ "syscall.GetTokenInformation": "syscall",
+ "syscall.GetUserNameEx": "syscall",
+ "syscall.GetUserProfileDirectory": "syscall",
+ "syscall.GetVersion": "syscall",
+ "syscall.Getcwd": "syscall",
+ "syscall.Getdents": "syscall",
+ "syscall.Getdirentries": "syscall",
+ "syscall.Getdtablesize": "syscall",
+ "syscall.Getegid": "syscall",
+ "syscall.Getenv": "syscall",
+ "syscall.Geteuid": "syscall",
+ "syscall.Getfsstat": "syscall",
+ "syscall.Getgid": "syscall",
+ "syscall.Getgroups": "syscall",
+ "syscall.Getpagesize": "syscall",
+ "syscall.Getpeername": "syscall",
+ "syscall.Getpgid": "syscall",
+ "syscall.Getpgrp": "syscall",
+ "syscall.Getpid": "syscall",
+ "syscall.Getppid": "syscall",
+ "syscall.Getpriority": "syscall",
+ "syscall.Getrlimit": "syscall",
+ "syscall.Getrusage": "syscall",
+ "syscall.Getsid": "syscall",
+ "syscall.Getsockname": "syscall",
+ "syscall.Getsockopt": "syscall",
+ "syscall.GetsockoptByte": "syscall",
+ "syscall.GetsockoptICMPv6Filter": "syscall",
+ "syscall.GetsockoptIPMreq": "syscall",
+ "syscall.GetsockoptIPMreqn": "syscall",
+ "syscall.GetsockoptIPv6MTUInfo": "syscall",
+ "syscall.GetsockoptIPv6Mreq": "syscall",
+ "syscall.GetsockoptInet4Addr": "syscall",
+ "syscall.GetsockoptInt": "syscall",
+ "syscall.GetsockoptUcred": "syscall",
+ "syscall.Gettid": "syscall",
+ "syscall.Gettimeofday": "syscall",
+ "syscall.Getuid": "syscall",
+ "syscall.Getwd": "syscall",
+ "syscall.Getxattr": "syscall",
+ "syscall.HANDLE_FLAG_INHERIT": "syscall",
+ "syscall.HKEY_CLASSES_ROOT": "syscall",
+ "syscall.HKEY_CURRENT_CONFIG": "syscall",
+ "syscall.HKEY_CURRENT_USER": "syscall",
+ "syscall.HKEY_DYN_DATA": "syscall",
+ "syscall.HKEY_LOCAL_MACHINE": "syscall",
+ "syscall.HKEY_PERFORMANCE_DATA": "syscall",
+ "syscall.HKEY_USERS": "syscall",
+ "syscall.HUPCL": "syscall",
+ "syscall.Handle": "syscall",
+ "syscall.Hostent": "syscall",
+ "syscall.ICANON": "syscall",
+ "syscall.ICMP6_FILTER": "syscall",
+ "syscall.ICMPV6_FILTER": "syscall",
+ "syscall.ICMPv6Filter": "syscall",
+ "syscall.ICRNL": "syscall",
+ "syscall.IEXTEN": "syscall",
+ "syscall.IFAN_ARRIVAL": "syscall",
+ "syscall.IFAN_DEPARTURE": "syscall",
+ "syscall.IFA_ADDRESS": "syscall",
+ "syscall.IFA_ANYCAST": "syscall",
+ "syscall.IFA_BROADCAST": "syscall",
+ "syscall.IFA_CACHEINFO": "syscall",
+ "syscall.IFA_F_DADFAILED": "syscall",
+ "syscall.IFA_F_DEPRECATED": "syscall",
+ "syscall.IFA_F_HOMEADDRESS": "syscall",
+ "syscall.IFA_F_NODAD": "syscall",
+ "syscall.IFA_F_OPTIMISTIC": "syscall",
+ "syscall.IFA_F_PERMANENT": "syscall",
+ "syscall.IFA_F_SECONDARY": "syscall",
+ "syscall.IFA_F_TEMPORARY": "syscall",
+ "syscall.IFA_F_TENTATIVE": "syscall",
+ "syscall.IFA_LABEL": "syscall",
+ "syscall.IFA_LOCAL": "syscall",
+ "syscall.IFA_MAX": "syscall",
+ "syscall.IFA_MULTICAST": "syscall",
+ "syscall.IFA_ROUTE": "syscall",
+ "syscall.IFA_UNSPEC": "syscall",
+ "syscall.IFF_ALLMULTI": "syscall",
+ "syscall.IFF_ALTPHYS": "syscall",
+ "syscall.IFF_AUTOMEDIA": "syscall",
+ "syscall.IFF_BROADCAST": "syscall",
+ "syscall.IFF_CANTCHANGE": "syscall",
+ "syscall.IFF_CANTCONFIG": "syscall",
+ "syscall.IFF_DEBUG": "syscall",
+ "syscall.IFF_DRV_OACTIVE": "syscall",
+ "syscall.IFF_DRV_RUNNING": "syscall",
+ "syscall.IFF_DYING": "syscall",
+ "syscall.IFF_DYNAMIC": "syscall",
+ "syscall.IFF_LINK0": "syscall",
+ "syscall.IFF_LINK1": "syscall",
+ "syscall.IFF_LINK2": "syscall",
+ "syscall.IFF_LOOPBACK": "syscall",
+ "syscall.IFF_MASTER": "syscall",
+ "syscall.IFF_MONITOR": "syscall",
+ "syscall.IFF_MULTICAST": "syscall",
+ "syscall.IFF_NOARP": "syscall",
+ "syscall.IFF_NOTRAILERS": "syscall",
+ "syscall.IFF_NO_PI": "syscall",
+ "syscall.IFF_OACTIVE": "syscall",
+ "syscall.IFF_ONE_QUEUE": "syscall",
+ "syscall.IFF_POINTOPOINT": "syscall",
+ "syscall.IFF_POINTTOPOINT": "syscall",
+ "syscall.IFF_PORTSEL": "syscall",
+ "syscall.IFF_PPROMISC": "syscall",
+ "syscall.IFF_PROMISC": "syscall",
+ "syscall.IFF_RENAMING": "syscall",
+ "syscall.IFF_RUNNING": "syscall",
+ "syscall.IFF_SIMPLEX": "syscall",
+ "syscall.IFF_SLAVE": "syscall",
+ "syscall.IFF_SMART": "syscall",
+ "syscall.IFF_STATICARP": "syscall",
+ "syscall.IFF_TAP": "syscall",
+ "syscall.IFF_TUN": "syscall",
+ "syscall.IFF_TUN_EXCL": "syscall",
+ "syscall.IFF_UP": "syscall",
+ "syscall.IFF_VNET_HDR": "syscall",
+ "syscall.IFLA_ADDRESS": "syscall",
+ "syscall.IFLA_BROADCAST": "syscall",
+ "syscall.IFLA_COST": "syscall",
+ "syscall.IFLA_IFALIAS": "syscall",
+ "syscall.IFLA_IFNAME": "syscall",
+ "syscall.IFLA_LINK": "syscall",
+ "syscall.IFLA_LINKINFO": "syscall",
+ "syscall.IFLA_LINKMODE": "syscall",
+ "syscall.IFLA_MAP": "syscall",
+ "syscall.IFLA_MASTER": "syscall",
+ "syscall.IFLA_MAX": "syscall",
+ "syscall.IFLA_MTU": "syscall",
+ "syscall.IFLA_NET_NS_PID": "syscall",
+ "syscall.IFLA_OPERSTATE": "syscall",
+ "syscall.IFLA_PRIORITY": "syscall",
+ "syscall.IFLA_PROTINFO": "syscall",
+ "syscall.IFLA_QDISC": "syscall",
+ "syscall.IFLA_STATS": "syscall",
+ "syscall.IFLA_TXQLEN": "syscall",
+ "syscall.IFLA_UNSPEC": "syscall",
+ "syscall.IFLA_WEIGHT": "syscall",
+ "syscall.IFLA_WIRELESS": "syscall",
+ "syscall.IFNAMSIZ": "syscall",
+ "syscall.IFT_1822": "syscall",
+ "syscall.IFT_A12MPPSWITCH": "syscall",
+ "syscall.IFT_AAL2": "syscall",
+ "syscall.IFT_AAL5": "syscall",
+ "syscall.IFT_ADSL": "syscall",
+ "syscall.IFT_AFLANE8023": "syscall",
+ "syscall.IFT_AFLANE8025": "syscall",
+ "syscall.IFT_ARAP": "syscall",
+ "syscall.IFT_ARCNET": "syscall",
+ "syscall.IFT_ARCNETPLUS": "syscall",
+ "syscall.IFT_ASYNC": "syscall",
+ "syscall.IFT_ATM": "syscall",
+ "syscall.IFT_ATMDXI": "syscall",
+ "syscall.IFT_ATMFUNI": "syscall",
+ "syscall.IFT_ATMIMA": "syscall",
+ "syscall.IFT_ATMLOGICAL": "syscall",
+ "syscall.IFT_ATMRADIO": "syscall",
+ "syscall.IFT_ATMSUBINTERFACE": "syscall",
+ "syscall.IFT_ATMVCIENDPT": "syscall",
+ "syscall.IFT_ATMVIRTUAL": "syscall",
+ "syscall.IFT_BGPPOLICYACCOUNTING": "syscall",
+ "syscall.IFT_BLUETOOTH": "syscall",
+ "syscall.IFT_BRIDGE": "syscall",
+ "syscall.IFT_BSC": "syscall",
+ "syscall.IFT_CARP": "syscall",
+ "syscall.IFT_CCTEMUL": "syscall",
+ "syscall.IFT_CELLULAR": "syscall",
+ "syscall.IFT_CEPT": "syscall",
+ "syscall.IFT_CES": "syscall",
+ "syscall.IFT_CHANNEL": "syscall",
+ "syscall.IFT_CNR": "syscall",
+ "syscall.IFT_COFFEE": "syscall",
+ "syscall.IFT_COMPOSITELINK": "syscall",
+ "syscall.IFT_DCN": "syscall",
+ "syscall.IFT_DIGITALPOWERLINE": "syscall",
+ "syscall.IFT_DIGITALWRAPPEROVERHEADCHANNEL": "syscall",
+ "syscall.IFT_DLSW": "syscall",
+ "syscall.IFT_DOCSCABLEDOWNSTREAM": "syscall",
+ "syscall.IFT_DOCSCABLEMACLAYER": "syscall",
+ "syscall.IFT_DOCSCABLEUPSTREAM": "syscall",
+ "syscall.IFT_DOCSCABLEUPSTREAMCHANNEL": "syscall",
+ "syscall.IFT_DS0": "syscall",
+ "syscall.IFT_DS0BUNDLE": "syscall",
+ "syscall.IFT_DS1FDL": "syscall",
+ "syscall.IFT_DS3": "syscall",
+ "syscall.IFT_DTM": "syscall",
+ "syscall.IFT_DUMMY": "syscall",
+ "syscall.IFT_DVBASILN": "syscall",
+ "syscall.IFT_DVBASIOUT": "syscall",
+ "syscall.IFT_DVBRCCDOWNSTREAM": "syscall",
+ "syscall.IFT_DVBRCCMACLAYER": "syscall",
+ "syscall.IFT_DVBRCCUPSTREAM": "syscall",
+ "syscall.IFT_ECONET": "syscall",
+ "syscall.IFT_ENC": "syscall",
+ "syscall.IFT_EON": "syscall",
+ "syscall.IFT_EPLRS": "syscall",
+ "syscall.IFT_ESCON": "syscall",
+ "syscall.IFT_ETHER": "syscall",
+ "syscall.IFT_FAITH": "syscall",
+ "syscall.IFT_FAST": "syscall",
+ "syscall.IFT_FASTETHER": "syscall",
+ "syscall.IFT_FASTETHERFX": "syscall",
+ "syscall.IFT_FDDI": "syscall",
+ "syscall.IFT_FIBRECHANNEL": "syscall",
+ "syscall.IFT_FRAMERELAYINTERCONNECT": "syscall",
+ "syscall.IFT_FRAMERELAYMPI": "syscall",
+ "syscall.IFT_FRDLCIENDPT": "syscall",
+ "syscall.IFT_FRELAY": "syscall",
+ "syscall.IFT_FRELAYDCE": "syscall",
+ "syscall.IFT_FRF16MFRBUNDLE": "syscall",
+ "syscall.IFT_FRFORWARD": "syscall",
+ "syscall.IFT_G703AT2MB": "syscall",
+ "syscall.IFT_G703AT64K": "syscall",
+ "syscall.IFT_GIF": "syscall",
+ "syscall.IFT_GIGABITETHERNET": "syscall",
+ "syscall.IFT_GR303IDT": "syscall",
+ "syscall.IFT_GR303RDT": "syscall",
+ "syscall.IFT_H323GATEKEEPER": "syscall",
+ "syscall.IFT_H323PROXY": "syscall",
+ "syscall.IFT_HDH1822": "syscall",
+ "syscall.IFT_HDLC": "syscall",
+ "syscall.IFT_HDSL2": "syscall",
+ "syscall.IFT_HIPERLAN2": "syscall",
+ "syscall.IFT_HIPPI": "syscall",
+ "syscall.IFT_HIPPIINTERFACE": "syscall",
+ "syscall.IFT_HOSTPAD": "syscall",
+ "syscall.IFT_HSSI": "syscall",
+ "syscall.IFT_HY": "syscall",
+ "syscall.IFT_IBM370PARCHAN": "syscall",
+ "syscall.IFT_IDSL": "syscall",
+ "syscall.IFT_IEEE1394": "syscall",
+ "syscall.IFT_IEEE80211": "syscall",
+ "syscall.IFT_IEEE80212": "syscall",
+ "syscall.IFT_IEEE8023ADLAG": "syscall",
+ "syscall.IFT_IFGSN": "syscall",
+ "syscall.IFT_IMT": "syscall",
+ "syscall.IFT_INFINIBAND": "syscall",
+ "syscall.IFT_INTERLEAVE": "syscall",
+ "syscall.IFT_IP": "syscall",
+ "syscall.IFT_IPFORWARD": "syscall",
+ "syscall.IFT_IPOVERATM": "syscall",
+ "syscall.IFT_IPOVERCDLC": "syscall",
+ "syscall.IFT_IPOVERCLAW": "syscall",
+ "syscall.IFT_IPSWITCH": "syscall",
+ "syscall.IFT_IPXIP": "syscall",
+ "syscall.IFT_ISDN": "syscall",
+ "syscall.IFT_ISDNBASIC": "syscall",
+ "syscall.IFT_ISDNPRIMARY": "syscall",
+ "syscall.IFT_ISDNS": "syscall",
+ "syscall.IFT_ISDNU": "syscall",
+ "syscall.IFT_ISO88022LLC": "syscall",
+ "syscall.IFT_ISO88023": "syscall",
+ "syscall.IFT_ISO88024": "syscall",
+ "syscall.IFT_ISO88025": "syscall",
+ "syscall.IFT_ISO88025CRFPINT": "syscall",
+ "syscall.IFT_ISO88025DTR": "syscall",
+ "syscall.IFT_ISO88025FIBER": "syscall",
+ "syscall.IFT_ISO88026": "syscall",
+ "syscall.IFT_ISUP": "syscall",
+ "syscall.IFT_L2VLAN": "syscall",
+ "syscall.IFT_L3IPVLAN": "syscall",
+ "syscall.IFT_L3IPXVLAN": "syscall",
+ "syscall.IFT_LAPB": "syscall",
+ "syscall.IFT_LAPD": "syscall",
+ "syscall.IFT_LAPF": "syscall",
+ "syscall.IFT_LINEGROUP": "syscall",
+ "syscall.IFT_LOCALTALK": "syscall",
+ "syscall.IFT_LOOP": "syscall",
+ "syscall.IFT_MEDIAMAILOVERIP": "syscall",
+ "syscall.IFT_MFSIGLINK": "syscall",
+ "syscall.IFT_MIOX25": "syscall",
+ "syscall.IFT_MODEM": "syscall",
+ "syscall.IFT_MPC": "syscall",
+ "syscall.IFT_MPLS": "syscall",
+ "syscall.IFT_MPLSTUNNEL": "syscall",
+ "syscall.IFT_MSDSL": "syscall",
+ "syscall.IFT_MVL": "syscall",
+ "syscall.IFT_MYRINET": "syscall",
+ "syscall.IFT_NFAS": "syscall",
+ "syscall.IFT_NSIP": "syscall",
+ "syscall.IFT_OPTICALCHANNEL": "syscall",
+ "syscall.IFT_OPTICALTRANSPORT": "syscall",
+ "syscall.IFT_OTHER": "syscall",
+ "syscall.IFT_P10": "syscall",
+ "syscall.IFT_P80": "syscall",
+ "syscall.IFT_PARA": "syscall",
+ "syscall.IFT_PDP": "syscall",
+ "syscall.IFT_PFLOG": "syscall",
+ "syscall.IFT_PFLOW": "syscall",
+ "syscall.IFT_PFSYNC": "syscall",
+ "syscall.IFT_PLC": "syscall",
+ "syscall.IFT_PON155": "syscall",
+ "syscall.IFT_PON622": "syscall",
+ "syscall.IFT_POS": "syscall",
+ "syscall.IFT_PPP": "syscall",
+ "syscall.IFT_PPPMULTILINKBUNDLE": "syscall",
+ "syscall.IFT_PROPATM": "syscall",
+ "syscall.IFT_PROPBWAP2MP": "syscall",
+ "syscall.IFT_PROPCNLS": "syscall",
+ "syscall.IFT_PROPDOCSWIRELESSDOWNSTREAM": "syscall",
+ "syscall.IFT_PROPDOCSWIRELESSMACLAYER": "syscall",
+ "syscall.IFT_PROPDOCSWIRELESSUPSTREAM": "syscall",
+ "syscall.IFT_PROPMUX": "syscall",
+ "syscall.IFT_PROPVIRTUAL": "syscall",
+ "syscall.IFT_PROPWIRELESSP2P": "syscall",
+ "syscall.IFT_PTPSERIAL": "syscall",
+ "syscall.IFT_PVC": "syscall",
+ "syscall.IFT_Q2931": "syscall",
+ "syscall.IFT_QLLC": "syscall",
+ "syscall.IFT_RADIOMAC": "syscall",
+ "syscall.IFT_RADSL": "syscall",
+ "syscall.IFT_REACHDSL": "syscall",
+ "syscall.IFT_RFC1483": "syscall",
+ "syscall.IFT_RS232": "syscall",
+ "syscall.IFT_RSRB": "syscall",
+ "syscall.IFT_SDLC": "syscall",
+ "syscall.IFT_SDSL": "syscall",
+ "syscall.IFT_SHDSL": "syscall",
+ "syscall.IFT_SIP": "syscall",
+ "syscall.IFT_SIPSIG": "syscall",
+ "syscall.IFT_SIPTG": "syscall",
+ "syscall.IFT_SLIP": "syscall",
+ "syscall.IFT_SMDSDXI": "syscall",
+ "syscall.IFT_SMDSICIP": "syscall",
+ "syscall.IFT_SONET": "syscall",
+ "syscall.IFT_SONETOVERHEADCHANNEL": "syscall",
+ "syscall.IFT_SONETPATH": "syscall",
+ "syscall.IFT_SONETVT": "syscall",
+ "syscall.IFT_SRP": "syscall",
+ "syscall.IFT_SS7SIGLINK": "syscall",
+ "syscall.IFT_STACKTOSTACK": "syscall",
+ "syscall.IFT_STARLAN": "syscall",
+ "syscall.IFT_STF": "syscall",
+ "syscall.IFT_T1": "syscall",
+ "syscall.IFT_TDLC": "syscall",
+ "syscall.IFT_TELINK": "syscall",
+ "syscall.IFT_TERMPAD": "syscall",
+ "syscall.IFT_TR008": "syscall",
+ "syscall.IFT_TRANSPHDLC": "syscall",
+ "syscall.IFT_TUNNEL": "syscall",
+ "syscall.IFT_ULTRA": "syscall",
+ "syscall.IFT_USB": "syscall",
+ "syscall.IFT_V11": "syscall",
+ "syscall.IFT_V35": "syscall",
+ "syscall.IFT_V36": "syscall",
+ "syscall.IFT_V37": "syscall",
+ "syscall.IFT_VDSL": "syscall",
+ "syscall.IFT_VIRTUALIPADDRESS": "syscall",
+ "syscall.IFT_VIRTUALTG": "syscall",
+ "syscall.IFT_VOICEDID": "syscall",
+ "syscall.IFT_VOICEEM": "syscall",
+ "syscall.IFT_VOICEEMFGD": "syscall",
+ "syscall.IFT_VOICEENCAP": "syscall",
+ "syscall.IFT_VOICEFGDEANA": "syscall",
+ "syscall.IFT_VOICEFXO": "syscall",
+ "syscall.IFT_VOICEFXS": "syscall",
+ "syscall.IFT_VOICEOVERATM": "syscall",
+ "syscall.IFT_VOICEOVERCABLE": "syscall",
+ "syscall.IFT_VOICEOVERFRAMERELAY": "syscall",
+ "syscall.IFT_VOICEOVERIP": "syscall",
+ "syscall.IFT_X213": "syscall",
+ "syscall.IFT_X25": "syscall",
+ "syscall.IFT_X25DDN": "syscall",
+ "syscall.IFT_X25HUNTGROUP": "syscall",
+ "syscall.IFT_X25MLP": "syscall",
+ "syscall.IFT_X25PLE": "syscall",
+ "syscall.IFT_XETHER": "syscall",
+ "syscall.IGNBRK": "syscall",
+ "syscall.IGNCR": "syscall",
+ "syscall.IGNORE": "syscall",
+ "syscall.IGNPAR": "syscall",
+ "syscall.IMAXBEL": "syscall",
+ "syscall.INFINITE": "syscall",
+ "syscall.INLCR": "syscall",
+ "syscall.INPCK": "syscall",
+ "syscall.INVALID_FILE_ATTRIBUTES": "syscall",
+ "syscall.IN_ACCESS": "syscall",
+ "syscall.IN_ALL_EVENTS": "syscall",
+ "syscall.IN_ATTRIB": "syscall",
+ "syscall.IN_CLASSA_HOST": "syscall",
+ "syscall.IN_CLASSA_MAX": "syscall",
+ "syscall.IN_CLASSA_NET": "syscall",
+ "syscall.IN_CLASSA_NSHIFT": "syscall",
+ "syscall.IN_CLASSB_HOST": "syscall",
+ "syscall.IN_CLASSB_MAX": "syscall",
+ "syscall.IN_CLASSB_NET": "syscall",
+ "syscall.IN_CLASSB_NSHIFT": "syscall",
+ "syscall.IN_CLASSC_HOST": "syscall",
+ "syscall.IN_CLASSC_NET": "syscall",
+ "syscall.IN_CLASSC_NSHIFT": "syscall",
+ "syscall.IN_CLASSD_HOST": "syscall",
+ "syscall.IN_CLASSD_NET": "syscall",
+ "syscall.IN_CLASSD_NSHIFT": "syscall",
+ "syscall.IN_CLOEXEC": "syscall",
+ "syscall.IN_CLOSE": "syscall",
+ "syscall.IN_CLOSE_NOWRITE": "syscall",
+ "syscall.IN_CLOSE_WRITE": "syscall",
+ "syscall.IN_CREATE": "syscall",
+ "syscall.IN_DELETE": "syscall",
+ "syscall.IN_DELETE_SELF": "syscall",
+ "syscall.IN_DONT_FOLLOW": "syscall",
+ "syscall.IN_EXCL_UNLINK": "syscall",
+ "syscall.IN_IGNORED": "syscall",
+ "syscall.IN_ISDIR": "syscall",
+ "syscall.IN_LINKLOCALNETNUM": "syscall",
+ "syscall.IN_LOOPBACKNET": "syscall",
+ "syscall.IN_MASK_ADD": "syscall",
+ "syscall.IN_MODIFY": "syscall",
+ "syscall.IN_MOVE": "syscall",
+ "syscall.IN_MOVED_FROM": "syscall",
+ "syscall.IN_MOVED_TO": "syscall",
+ "syscall.IN_MOVE_SELF": "syscall",
+ "syscall.IN_NONBLOCK": "syscall",
+ "syscall.IN_ONESHOT": "syscall",
+ "syscall.IN_ONLYDIR": "syscall",
+ "syscall.IN_OPEN": "syscall",
+ "syscall.IN_Q_OVERFLOW": "syscall",
+ "syscall.IN_RFC3021_HOST": "syscall",
+ "syscall.IN_RFC3021_MASK": "syscall",
+ "syscall.IN_RFC3021_NET": "syscall",
+ "syscall.IN_RFC3021_NSHIFT": "syscall",
+ "syscall.IN_UNMOUNT": "syscall",
+ "syscall.IOC_IN": "syscall",
+ "syscall.IOC_INOUT": "syscall",
+ "syscall.IOC_OUT": "syscall",
+ "syscall.IOC_VENDOR": "syscall",
+ "syscall.IOC_WS2": "syscall",
+ "syscall.IO_REPARSE_TAG_SYMLINK": "syscall",
+ "syscall.IPMreq": "syscall",
+ "syscall.IPMreqn": "syscall",
+ "syscall.IPPROTO_3PC": "syscall",
+ "syscall.IPPROTO_ADFS": "syscall",
+ "syscall.IPPROTO_AH": "syscall",
+ "syscall.IPPROTO_AHIP": "syscall",
+ "syscall.IPPROTO_APES": "syscall",
+ "syscall.IPPROTO_ARGUS": "syscall",
+ "syscall.IPPROTO_AX25": "syscall",
+ "syscall.IPPROTO_BHA": "syscall",
+ "syscall.IPPROTO_BLT": "syscall",
+ "syscall.IPPROTO_BRSATMON": "syscall",
+ "syscall.IPPROTO_CARP": "syscall",
+ "syscall.IPPROTO_CFTP": "syscall",
+ "syscall.IPPROTO_CHAOS": "syscall",
+ "syscall.IPPROTO_CMTP": "syscall",
+ "syscall.IPPROTO_COMP": "syscall",
+ "syscall.IPPROTO_CPHB": "syscall",
+ "syscall.IPPROTO_CPNX": "syscall",
+ "syscall.IPPROTO_DCCP": "syscall",
+ "syscall.IPPROTO_DDP": "syscall",
+ "syscall.IPPROTO_DGP": "syscall",
+ "syscall.IPPROTO_DIVERT": "syscall",
+ "syscall.IPPROTO_DIVERT_INIT": "syscall",
+ "syscall.IPPROTO_DIVERT_RESP": "syscall",
+ "syscall.IPPROTO_DONE": "syscall",
+ "syscall.IPPROTO_DSTOPTS": "syscall",
+ "syscall.IPPROTO_EGP": "syscall",
+ "syscall.IPPROTO_EMCON": "syscall",
+ "syscall.IPPROTO_ENCAP": "syscall",
+ "syscall.IPPROTO_EON": "syscall",
+ "syscall.IPPROTO_ESP": "syscall",
+ "syscall.IPPROTO_ETHERIP": "syscall",
+ "syscall.IPPROTO_FRAGMENT": "syscall",
+ "syscall.IPPROTO_GGP": "syscall",
+ "syscall.IPPROTO_GMTP": "syscall",
+ "syscall.IPPROTO_GRE": "syscall",
+ "syscall.IPPROTO_HELLO": "syscall",
+ "syscall.IPPROTO_HMP": "syscall",
+ "syscall.IPPROTO_HOPOPTS": "syscall",
+ "syscall.IPPROTO_ICMP": "syscall",
+ "syscall.IPPROTO_ICMPV6": "syscall",
+ "syscall.IPPROTO_IDP": "syscall",
+ "syscall.IPPROTO_IDPR": "syscall",
+ "syscall.IPPROTO_IDRP": "syscall",
+ "syscall.IPPROTO_IGMP": "syscall",
+ "syscall.IPPROTO_IGP": "syscall",
+ "syscall.IPPROTO_IGRP": "syscall",
+ "syscall.IPPROTO_IL": "syscall",
+ "syscall.IPPROTO_INLSP": "syscall",
+ "syscall.IPPROTO_INP": "syscall",
+ "syscall.IPPROTO_IP": "syscall",
+ "syscall.IPPROTO_IPCOMP": "syscall",
+ "syscall.IPPROTO_IPCV": "syscall",
+ "syscall.IPPROTO_IPEIP": "syscall",
+ "syscall.IPPROTO_IPIP": "syscall",
+ "syscall.IPPROTO_IPPC": "syscall",
+ "syscall.IPPROTO_IPV4": "syscall",
+ "syscall.IPPROTO_IPV6": "syscall",
+ "syscall.IPPROTO_IPV6_ICMP": "syscall",
+ "syscall.IPPROTO_IRTP": "syscall",
+ "syscall.IPPROTO_KRYPTOLAN": "syscall",
+ "syscall.IPPROTO_LARP": "syscall",
+ "syscall.IPPROTO_LEAF1": "syscall",
+ "syscall.IPPROTO_LEAF2": "syscall",
+ "syscall.IPPROTO_MAX": "syscall",
+ "syscall.IPPROTO_MAXID": "syscall",
+ "syscall.IPPROTO_MEAS": "syscall",
+ "syscall.IPPROTO_MH": "syscall",
+ "syscall.IPPROTO_MHRP": "syscall",
+ "syscall.IPPROTO_MICP": "syscall",
+ "syscall.IPPROTO_MOBILE": "syscall",
+ "syscall.IPPROTO_MPLS": "syscall",
+ "syscall.IPPROTO_MTP": "syscall",
+ "syscall.IPPROTO_MUX": "syscall",
+ "syscall.IPPROTO_ND": "syscall",
+ "syscall.IPPROTO_NHRP": "syscall",
+ "syscall.IPPROTO_NONE": "syscall",
+ "syscall.IPPROTO_NSP": "syscall",
+ "syscall.IPPROTO_NVPII": "syscall",
+ "syscall.IPPROTO_OLD_DIVERT": "syscall",
+ "syscall.IPPROTO_OSPFIGP": "syscall",
+ "syscall.IPPROTO_PFSYNC": "syscall",
+ "syscall.IPPROTO_PGM": "syscall",
+ "syscall.IPPROTO_PIGP": "syscall",
+ "syscall.IPPROTO_PIM": "syscall",
+ "syscall.IPPROTO_PRM": "syscall",
+ "syscall.IPPROTO_PUP": "syscall",
+ "syscall.IPPROTO_PVP": "syscall",
+ "syscall.IPPROTO_RAW": "syscall",
+ "syscall.IPPROTO_RCCMON": "syscall",
+ "syscall.IPPROTO_RDP": "syscall",
+ "syscall.IPPROTO_ROUTING": "syscall",
+ "syscall.IPPROTO_RSVP": "syscall",
+ "syscall.IPPROTO_RVD": "syscall",
+ "syscall.IPPROTO_SATEXPAK": "syscall",
+ "syscall.IPPROTO_SATMON": "syscall",
+ "syscall.IPPROTO_SCCSP": "syscall",
+ "syscall.IPPROTO_SCTP": "syscall",
+ "syscall.IPPROTO_SDRP": "syscall",
+ "syscall.IPPROTO_SEND": "syscall",
+ "syscall.IPPROTO_SEP": "syscall",
+ "syscall.IPPROTO_SKIP": "syscall",
+ "syscall.IPPROTO_SPACER": "syscall",
+ "syscall.IPPROTO_SRPC": "syscall",
+ "syscall.IPPROTO_ST": "syscall",
+ "syscall.IPPROTO_SVMTP": "syscall",
+ "syscall.IPPROTO_SWIPE": "syscall",
+ "syscall.IPPROTO_TCF": "syscall",
+ "syscall.IPPROTO_TCP": "syscall",
+ "syscall.IPPROTO_TLSP": "syscall",
+ "syscall.IPPROTO_TP": "syscall",
+ "syscall.IPPROTO_TPXX": "syscall",
+ "syscall.IPPROTO_TRUNK1": "syscall",
+ "syscall.IPPROTO_TRUNK2": "syscall",
+ "syscall.IPPROTO_TTP": "syscall",
+ "syscall.IPPROTO_UDP": "syscall",
+ "syscall.IPPROTO_UDPLITE": "syscall",
+ "syscall.IPPROTO_VINES": "syscall",
+ "syscall.IPPROTO_VISA": "syscall",
+ "syscall.IPPROTO_VMTP": "syscall",
+ "syscall.IPPROTO_VRRP": "syscall",
+ "syscall.IPPROTO_WBEXPAK": "syscall",
+ "syscall.IPPROTO_WBMON": "syscall",
+ "syscall.IPPROTO_WSN": "syscall",
+ "syscall.IPPROTO_XNET": "syscall",
+ "syscall.IPPROTO_XTP": "syscall",
+ "syscall.IPV6_2292DSTOPTS": "syscall",
+ "syscall.IPV6_2292HOPLIMIT": "syscall",
+ "syscall.IPV6_2292HOPOPTS": "syscall",
+ "syscall.IPV6_2292NEXTHOP": "syscall",
+ "syscall.IPV6_2292PKTINFO": "syscall",
+ "syscall.IPV6_2292PKTOPTIONS": "syscall",
+ "syscall.IPV6_2292RTHDR": "syscall",
+ "syscall.IPV6_ADDRFORM": "syscall",
+ "syscall.IPV6_ADD_MEMBERSHIP": "syscall",
+ "syscall.IPV6_AUTHHDR": "syscall",
+ "syscall.IPV6_AUTH_LEVEL": "syscall",
+ "syscall.IPV6_AUTOFLOWLABEL": "syscall",
+ "syscall.IPV6_BINDANY": "syscall",
+ "syscall.IPV6_BINDV6ONLY": "syscall",
+ "syscall.IPV6_BOUND_IF": "syscall",
+ "syscall.IPV6_CHECKSUM": "syscall",
+ "syscall.IPV6_DEFAULT_MULTICAST_HOPS": "syscall",
+ "syscall.IPV6_DEFAULT_MULTICAST_LOOP": "syscall",
+ "syscall.IPV6_DEFHLIM": "syscall",
+ "syscall.IPV6_DONTFRAG": "syscall",
+ "syscall.IPV6_DROP_MEMBERSHIP": "syscall",
+ "syscall.IPV6_DSTOPTS": "syscall",
+ "syscall.IPV6_ESP_NETWORK_LEVEL": "syscall",
+ "syscall.IPV6_ESP_TRANS_LEVEL": "syscall",
+ "syscall.IPV6_FAITH": "syscall",
+ "syscall.IPV6_FLOWINFO_MASK": "syscall",
+ "syscall.IPV6_FLOWLABEL_MASK": "syscall",
+ "syscall.IPV6_FRAGTTL": "syscall",
+ "syscall.IPV6_FW_ADD": "syscall",
+ "syscall.IPV6_FW_DEL": "syscall",
+ "syscall.IPV6_FW_FLUSH": "syscall",
+ "syscall.IPV6_FW_GET": "syscall",
+ "syscall.IPV6_FW_ZERO": "syscall",
+ "syscall.IPV6_HLIMDEC": "syscall",
+ "syscall.IPV6_HOPLIMIT": "syscall",
+ "syscall.IPV6_HOPOPTS": "syscall",
+ "syscall.IPV6_IPCOMP_LEVEL": "syscall",
+ "syscall.IPV6_IPSEC_POLICY": "syscall",
+ "syscall.IPV6_JOIN_ANYCAST": "syscall",
+ "syscall.IPV6_JOIN_GROUP": "syscall",
+ "syscall.IPV6_LEAVE_ANYCAST": "syscall",
+ "syscall.IPV6_LEAVE_GROUP": "syscall",
+ "syscall.IPV6_MAXHLIM": "syscall",
+ "syscall.IPV6_MAXOPTHDR": "syscall",
+ "syscall.IPV6_MAXPACKET": "syscall",
+ "syscall.IPV6_MAX_GROUP_SRC_FILTER": "syscall",
+ "syscall.IPV6_MAX_MEMBERSHIPS": "syscall",
+ "syscall.IPV6_MAX_SOCK_SRC_FILTER": "syscall",
+ "syscall.IPV6_MIN_MEMBERSHIPS": "syscall",
+ "syscall.IPV6_MMTU": "syscall",
+ "syscall.IPV6_MSFILTER": "syscall",
+ "syscall.IPV6_MTU": "syscall",
+ "syscall.IPV6_MTU_DISCOVER": "syscall",
+ "syscall.IPV6_MULTICAST_HOPS": "syscall",
+ "syscall.IPV6_MULTICAST_IF": "syscall",
+ "syscall.IPV6_MULTICAST_LOOP": "syscall",
+ "syscall.IPV6_NEXTHOP": "syscall",
+ "syscall.IPV6_OPTIONS": "syscall",
+ "syscall.IPV6_PATHMTU": "syscall",
+ "syscall.IPV6_PIPEX": "syscall",
+ "syscall.IPV6_PKTINFO": "syscall",
+ "syscall.IPV6_PMTUDISC_DO": "syscall",
+ "syscall.IPV6_PMTUDISC_DONT": "syscall",
+ "syscall.IPV6_PMTUDISC_PROBE": "syscall",
+ "syscall.IPV6_PMTUDISC_WANT": "syscall",
+ "syscall.IPV6_PORTRANGE": "syscall",
+ "syscall.IPV6_PORTRANGE_DEFAULT": "syscall",
+ "syscall.IPV6_PORTRANGE_HIGH": "syscall",
+ "syscall.IPV6_PORTRANGE_LOW": "syscall",
+ "syscall.IPV6_PREFER_TEMPADDR": "syscall",
+ "syscall.IPV6_RECVDSTOPTS": "syscall",
+ "syscall.IPV6_RECVDSTPORT": "syscall",
+ "syscall.IPV6_RECVERR": "syscall",
+ "syscall.IPV6_RECVHOPLIMIT": "syscall",
+ "syscall.IPV6_RECVHOPOPTS": "syscall",
+ "syscall.IPV6_RECVPATHMTU": "syscall",
+ "syscall.IPV6_RECVPKTINFO": "syscall",
+ "syscall.IPV6_RECVRTHDR": "syscall",
+ "syscall.IPV6_RECVTCLASS": "syscall",
+ "syscall.IPV6_ROUTER_ALERT": "syscall",
+ "syscall.IPV6_RTABLE": "syscall",
+ "syscall.IPV6_RTHDR": "syscall",
+ "syscall.IPV6_RTHDRDSTOPTS": "syscall",
+ "syscall.IPV6_RTHDR_LOOSE": "syscall",
+ "syscall.IPV6_RTHDR_STRICT": "syscall",
+ "syscall.IPV6_RTHDR_TYPE_0": "syscall",
+ "syscall.IPV6_RXDSTOPTS": "syscall",
+ "syscall.IPV6_RXHOPOPTS": "syscall",
+ "syscall.IPV6_SOCKOPT_RESERVED1": "syscall",
+ "syscall.IPV6_TCLASS": "syscall",
+ "syscall.IPV6_UNICAST_HOPS": "syscall",
+ "syscall.IPV6_USE_MIN_MTU": "syscall",
+ "syscall.IPV6_V6ONLY": "syscall",
+ "syscall.IPV6_VERSION": "syscall",
+ "syscall.IPV6_VERSION_MASK": "syscall",
+ "syscall.IPV6_XFRM_POLICY": "syscall",
+ "syscall.IP_ADD_MEMBERSHIP": "syscall",
+ "syscall.IP_ADD_SOURCE_MEMBERSHIP": "syscall",
+ "syscall.IP_AUTH_LEVEL": "syscall",
+ "syscall.IP_BINDANY": "syscall",
+ "syscall.IP_BLOCK_SOURCE": "syscall",
+ "syscall.IP_BOUND_IF": "syscall",
+ "syscall.IP_DEFAULT_MULTICAST_LOOP": "syscall",
+ "syscall.IP_DEFAULT_MULTICAST_TTL": "syscall",
+ "syscall.IP_DF": "syscall",
+ "syscall.IP_DIVERTFL": "syscall",
+ "syscall.IP_DONTFRAG": "syscall",
+ "syscall.IP_DROP_MEMBERSHIP": "syscall",
+ "syscall.IP_DROP_SOURCE_MEMBERSHIP": "syscall",
+ "syscall.IP_DUMMYNET3": "syscall",
+ "syscall.IP_DUMMYNET_CONFIGURE": "syscall",
+ "syscall.IP_DUMMYNET_DEL": "syscall",
+ "syscall.IP_DUMMYNET_FLUSH": "syscall",
+ "syscall.IP_DUMMYNET_GET": "syscall",
+ "syscall.IP_EF": "syscall",
+ "syscall.IP_ERRORMTU": "syscall",
+ "syscall.IP_ESP_NETWORK_LEVEL": "syscall",
+ "syscall.IP_ESP_TRANS_LEVEL": "syscall",
+ "syscall.IP_FAITH": "syscall",
+ "syscall.IP_FREEBIND": "syscall",
+ "syscall.IP_FW3": "syscall",
+ "syscall.IP_FW_ADD": "syscall",
+ "syscall.IP_FW_DEL": "syscall",
+ "syscall.IP_FW_FLUSH": "syscall",
+ "syscall.IP_FW_GET": "syscall",
+ "syscall.IP_FW_NAT_CFG": "syscall",
+ "syscall.IP_FW_NAT_DEL": "syscall",
+ "syscall.IP_FW_NAT_GET_CONFIG": "syscall",
+ "syscall.IP_FW_NAT_GET_LOG": "syscall",
+ "syscall.IP_FW_RESETLOG": "syscall",
+ "syscall.IP_FW_TABLE_ADD": "syscall",
+ "syscall.IP_FW_TABLE_DEL": "syscall",
+ "syscall.IP_FW_TABLE_FLUSH": "syscall",
+ "syscall.IP_FW_TABLE_GETSIZE": "syscall",
+ "syscall.IP_FW_TABLE_LIST": "syscall",
+ "syscall.IP_FW_ZERO": "syscall",
+ "syscall.IP_HDRINCL": "syscall",
+ "syscall.IP_IPCOMP_LEVEL": "syscall",
+ "syscall.IP_IPSECFLOWINFO": "syscall",
+ "syscall.IP_IPSEC_LOCAL_AUTH": "syscall",
+ "syscall.IP_IPSEC_LOCAL_CRED": "syscall",
+ "syscall.IP_IPSEC_LOCAL_ID": "syscall",
+ "syscall.IP_IPSEC_POLICY": "syscall",
+ "syscall.IP_IPSEC_REMOTE_AUTH": "syscall",
+ "syscall.IP_IPSEC_REMOTE_CRED": "syscall",
+ "syscall.IP_IPSEC_REMOTE_ID": "syscall",
+ "syscall.IP_MAXPACKET": "syscall",
+ "syscall.IP_MAX_GROUP_SRC_FILTER": "syscall",
+ "syscall.IP_MAX_MEMBERSHIPS": "syscall",
+ "syscall.IP_MAX_SOCK_MUTE_FILTER": "syscall",
+ "syscall.IP_MAX_SOCK_SRC_FILTER": "syscall",
+ "syscall.IP_MAX_SOURCE_FILTER": "syscall",
+ "syscall.IP_MF": "syscall",
+ "syscall.IP_MINFRAGSIZE": "syscall",
+ "syscall.IP_MINTTL": "syscall",
+ "syscall.IP_MIN_MEMBERSHIPS": "syscall",
+ "syscall.IP_MSFILTER": "syscall",
+ "syscall.IP_MSS": "syscall",
+ "syscall.IP_MTU": "syscall",
+ "syscall.IP_MTU_DISCOVER": "syscall",
+ "syscall.IP_MULTICAST_IF": "syscall",
+ "syscall.IP_MULTICAST_IFINDEX": "syscall",
+ "syscall.IP_MULTICAST_LOOP": "syscall",
+ "syscall.IP_MULTICAST_TTL": "syscall",
+ "syscall.IP_MULTICAST_VIF": "syscall",
+ "syscall.IP_NAT__XXX": "syscall",
+ "syscall.IP_OFFMASK": "syscall",
+ "syscall.IP_OLD_FW_ADD": "syscall",
+ "syscall.IP_OLD_FW_DEL": "syscall",
+ "syscall.IP_OLD_FW_FLUSH": "syscall",
+ "syscall.IP_OLD_FW_GET": "syscall",
+ "syscall.IP_OLD_FW_RESETLOG": "syscall",
+ "syscall.IP_OLD_FW_ZERO": "syscall",
+ "syscall.IP_ONESBCAST": "syscall",
+ "syscall.IP_OPTIONS": "syscall",
+ "syscall.IP_ORIGDSTADDR": "syscall",
+ "syscall.IP_PASSSEC": "syscall",
+ "syscall.IP_PIPEX": "syscall",
+ "syscall.IP_PKTINFO": "syscall",
+ "syscall.IP_PKTOPTIONS": "syscall",
+ "syscall.IP_PMTUDISC": "syscall",
+ "syscall.IP_PMTUDISC_DO": "syscall",
+ "syscall.IP_PMTUDISC_DONT": "syscall",
+ "syscall.IP_PMTUDISC_PROBE": "syscall",
+ "syscall.IP_PMTUDISC_WANT": "syscall",
+ "syscall.IP_PORTRANGE": "syscall",
+ "syscall.IP_PORTRANGE_DEFAULT": "syscall",
+ "syscall.IP_PORTRANGE_HIGH": "syscall",
+ "syscall.IP_PORTRANGE_LOW": "syscall",
+ "syscall.IP_RECVDSTADDR": "syscall",
+ "syscall.IP_RECVDSTPORT": "syscall",
+ "syscall.IP_RECVERR": "syscall",
+ "syscall.IP_RECVIF": "syscall",
+ "syscall.IP_RECVOPTS": "syscall",
+ "syscall.IP_RECVORIGDSTADDR": "syscall",
+ "syscall.IP_RECVPKTINFO": "syscall",
+ "syscall.IP_RECVRETOPTS": "syscall",
+ "syscall.IP_RECVRTABLE": "syscall",
+ "syscall.IP_RECVTOS": "syscall",
+ "syscall.IP_RECVTTL": "syscall",
+ "syscall.IP_RETOPTS": "syscall",
+ "syscall.IP_RF": "syscall",
+ "syscall.IP_ROUTER_ALERT": "syscall",
+ "syscall.IP_RSVP_OFF": "syscall",
+ "syscall.IP_RSVP_ON": "syscall",
+ "syscall.IP_RSVP_VIF_OFF": "syscall",
+ "syscall.IP_RSVP_VIF_ON": "syscall",
+ "syscall.IP_RTABLE": "syscall",
+ "syscall.IP_SENDSRCADDR": "syscall",
+ "syscall.IP_STRIPHDR": "syscall",
+ "syscall.IP_TOS": "syscall",
+ "syscall.IP_TRAFFIC_MGT_BACKGROUND": "syscall",
+ "syscall.IP_TRANSPARENT": "syscall",
+ "syscall.IP_TTL": "syscall",
+ "syscall.IP_UNBLOCK_SOURCE": "syscall",
+ "syscall.IP_XFRM_POLICY": "syscall",
+ "syscall.IPv6MTUInfo": "syscall",
+ "syscall.IPv6Mreq": "syscall",
+ "syscall.ISIG": "syscall",
+ "syscall.ISTRIP": "syscall",
+ "syscall.IUCLC": "syscall",
+ "syscall.IUTF8": "syscall",
+ "syscall.IXANY": "syscall",
+ "syscall.IXOFF": "syscall",
+ "syscall.IXON": "syscall",
+ "syscall.IfAddrmsg": "syscall",
+ "syscall.IfAnnounceMsghdr": "syscall",
+ "syscall.IfData": "syscall",
+ "syscall.IfInfomsg": "syscall",
+ "syscall.IfMsghdr": "syscall",
+ "syscall.IfaMsghdr": "syscall",
+ "syscall.IfmaMsghdr": "syscall",
+ "syscall.IfmaMsghdr2": "syscall",
+ "syscall.ImplementsGetwd": "syscall",
+ "syscall.Inet4Pktinfo": "syscall",
+ "syscall.Inet6Pktinfo": "syscall",
+ "syscall.InotifyAddWatch": "syscall",
+ "syscall.InotifyEvent": "syscall",
+ "syscall.InotifyInit": "syscall",
+ "syscall.InotifyInit1": "syscall",
+ "syscall.InotifyRmWatch": "syscall",
+ "syscall.InterfaceAddrMessage": "syscall",
+ "syscall.InterfaceAnnounceMessage": "syscall",
+ "syscall.InterfaceInfo": "syscall",
+ "syscall.InterfaceMessage": "syscall",
+ "syscall.InterfaceMulticastAddrMessage": "syscall",
+ "syscall.InvalidHandle": "syscall",
+ "syscall.Ioperm": "syscall",
+ "syscall.Iopl": "syscall",
+ "syscall.Iovec": "syscall",
+ "syscall.IpAdapterInfo": "syscall",
+ "syscall.IpAddrString": "syscall",
+ "syscall.IpAddressString": "syscall",
+ "syscall.IpMaskString": "syscall",
+ "syscall.Issetugid": "syscall",
+ "syscall.KEY_ALL_ACCESS": "syscall",
+ "syscall.KEY_CREATE_LINK": "syscall",
+ "syscall.KEY_CREATE_SUB_KEY": "syscall",
+ "syscall.KEY_ENUMERATE_SUB_KEYS": "syscall",
+ "syscall.KEY_EXECUTE": "syscall",
+ "syscall.KEY_NOTIFY": "syscall",
+ "syscall.KEY_QUERY_VALUE": "syscall",
+ "syscall.KEY_READ": "syscall",
+ "syscall.KEY_SET_VALUE": "syscall",
+ "syscall.KEY_WOW64_32KEY": "syscall",
+ "syscall.KEY_WOW64_64KEY": "syscall",
+ "syscall.KEY_WRITE": "syscall",
+ "syscall.Kevent": "syscall",
+ "syscall.Kevent_t": "syscall",
+ "syscall.Kill": "syscall",
+ "syscall.Klogctl": "syscall",
+ "syscall.Kqueue": "syscall",
+ "syscall.LANG_ENGLISH": "syscall",
+ "syscall.LAYERED_PROTOCOL": "syscall",
+ "syscall.LCNT_OVERLOAD_FLUSH": "syscall",
+ "syscall.LINUX_REBOOT_CMD_CAD_OFF": "syscall",
+ "syscall.LINUX_REBOOT_CMD_CAD_ON": "syscall",
+ "syscall.LINUX_REBOOT_CMD_HALT": "syscall",
+ "syscall.LINUX_REBOOT_CMD_KEXEC": "syscall",
+ "syscall.LINUX_REBOOT_CMD_POWER_OFF": "syscall",
+ "syscall.LINUX_REBOOT_CMD_RESTART": "syscall",
+ "syscall.LINUX_REBOOT_CMD_RESTART2": "syscall",
+ "syscall.LINUX_REBOOT_CMD_SW_SUSPEND": "syscall",
+ "syscall.LINUX_REBOOT_MAGIC1": "syscall",
+ "syscall.LINUX_REBOOT_MAGIC2": "syscall",
+ "syscall.LOCK_EX": "syscall",
+ "syscall.LOCK_NB": "syscall",
+ "syscall.LOCK_SH": "syscall",
+ "syscall.LOCK_UN": "syscall",
+ "syscall.LazyDLL": "syscall",
+ "syscall.LazyProc": "syscall",
+ "syscall.Lchown": "syscall",
+ "syscall.Linger": "syscall",
+ "syscall.Link": "syscall",
+ "syscall.Listen": "syscall",
+ "syscall.Listxattr": "syscall",
+ "syscall.LoadCancelIoEx": "syscall",
+ "syscall.LoadConnectEx": "syscall",
+ "syscall.LoadCreateSymbolicLink": "syscall",
+ "syscall.LoadDLL": "syscall",
+ "syscall.LoadGetAddrInfo": "syscall",
+ "syscall.LoadLibrary": "syscall",
+ "syscall.LoadSetFileCompletionNotificationModes": "syscall",
+ "syscall.LocalFree": "syscall",
+ "syscall.Log2phys_t": "syscall",
+ "syscall.LookupAccountName": "syscall",
+ "syscall.LookupAccountSid": "syscall",
+ "syscall.LookupSID": "syscall",
+ "syscall.LsfJump": "syscall",
+ "syscall.LsfSocket": "syscall",
+ "syscall.LsfStmt": "syscall",
+ "syscall.Lstat": "syscall",
+ "syscall.MADV_AUTOSYNC": "syscall",
+ "syscall.MADV_CAN_REUSE": "syscall",
+ "syscall.MADV_CORE": "syscall",
+ "syscall.MADV_DOFORK": "syscall",
+ "syscall.MADV_DONTFORK": "syscall",
+ "syscall.MADV_DONTNEED": "syscall",
+ "syscall.MADV_FREE": "syscall",
+ "syscall.MADV_FREE_REUSABLE": "syscall",
+ "syscall.MADV_FREE_REUSE": "syscall",
+ "syscall.MADV_HUGEPAGE": "syscall",
+ "syscall.MADV_HWPOISON": "syscall",
+ "syscall.MADV_MERGEABLE": "syscall",
+ "syscall.MADV_NOCORE": "syscall",
+ "syscall.MADV_NOHUGEPAGE": "syscall",
+ "syscall.MADV_NORMAL": "syscall",
+ "syscall.MADV_NOSYNC": "syscall",
+ "syscall.MADV_PROTECT": "syscall",
+ "syscall.MADV_RANDOM": "syscall",
+ "syscall.MADV_REMOVE": "syscall",
+ "syscall.MADV_SEQUENTIAL": "syscall",
+ "syscall.MADV_SPACEAVAIL": "syscall",
+ "syscall.MADV_UNMERGEABLE": "syscall",
+ "syscall.MADV_WILLNEED": "syscall",
+ "syscall.MADV_ZERO_WIRED_PAGES": "syscall",
+ "syscall.MAP_32BIT": "syscall",
+ "syscall.MAP_ALIGNED_SUPER": "syscall",
+ "syscall.MAP_ALIGNMENT_16MB": "syscall",
+ "syscall.MAP_ALIGNMENT_1TB": "syscall",
+ "syscall.MAP_ALIGNMENT_256TB": "syscall",
+ "syscall.MAP_ALIGNMENT_4GB": "syscall",
+ "syscall.MAP_ALIGNMENT_64KB": "syscall",
+ "syscall.MAP_ALIGNMENT_64PB": "syscall",
+ "syscall.MAP_ALIGNMENT_MASK": "syscall",
+ "syscall.MAP_ALIGNMENT_SHIFT": "syscall",
+ "syscall.MAP_ANON": "syscall",
+ "syscall.MAP_ANONYMOUS": "syscall",
+ "syscall.MAP_COPY": "syscall",
+ "syscall.MAP_DENYWRITE": "syscall",
+ "syscall.MAP_EXECUTABLE": "syscall",
+ "syscall.MAP_FILE": "syscall",
+ "syscall.MAP_FIXED": "syscall",
+ "syscall.MAP_FLAGMASK": "syscall",
+ "syscall.MAP_GROWSDOWN": "syscall",
+ "syscall.MAP_HASSEMAPHORE": "syscall",
+ "syscall.MAP_HUGETLB": "syscall",
+ "syscall.MAP_INHERIT": "syscall",
+ "syscall.MAP_INHERIT_COPY": "syscall",
+ "syscall.MAP_INHERIT_DEFAULT": "syscall",
+ "syscall.MAP_INHERIT_DONATE_COPY": "syscall",
+ "syscall.MAP_INHERIT_NONE": "syscall",
+ "syscall.MAP_INHERIT_SHARE": "syscall",
+ "syscall.MAP_JIT": "syscall",
+ "syscall.MAP_LOCKED": "syscall",
+ "syscall.MAP_NOCACHE": "syscall",
+ "syscall.MAP_NOCORE": "syscall",
+ "syscall.MAP_NOEXTEND": "syscall",
+ "syscall.MAP_NONBLOCK": "syscall",
+ "syscall.MAP_NORESERVE": "syscall",
+ "syscall.MAP_NOSYNC": "syscall",
+ "syscall.MAP_POPULATE": "syscall",
+ "syscall.MAP_PREFAULT_READ": "syscall",
+ "syscall.MAP_PRIVATE": "syscall",
+ "syscall.MAP_RENAME": "syscall",
+ "syscall.MAP_RESERVED0080": "syscall",
+ "syscall.MAP_RESERVED0100": "syscall",
+ "syscall.MAP_SHARED": "syscall",
+ "syscall.MAP_STACK": "syscall",
+ "syscall.MAP_TRYFIXED": "syscall",
+ "syscall.MAP_TYPE": "syscall",
+ "syscall.MAP_WIRED": "syscall",
+ "syscall.MAXIMUM_REPARSE_DATA_BUFFER_SIZE": "syscall",
+ "syscall.MAXLEN_IFDESCR": "syscall",
+ "syscall.MAXLEN_PHYSADDR": "syscall",
+ "syscall.MAX_ADAPTER_ADDRESS_LENGTH": "syscall",
+ "syscall.MAX_ADAPTER_DESCRIPTION_LENGTH": "syscall",
+ "syscall.MAX_ADAPTER_NAME_LENGTH": "syscall",
+ "syscall.MAX_COMPUTERNAME_LENGTH": "syscall",
+ "syscall.MAX_INTERFACE_NAME_LEN": "syscall",
+ "syscall.MAX_LONG_PATH": "syscall",
+ "syscall.MAX_PATH": "syscall",
+ "syscall.MAX_PROTOCOL_CHAIN": "syscall",
+ "syscall.MCL_CURRENT": "syscall",
+ "syscall.MCL_FUTURE": "syscall",
+ "syscall.MNT_DETACH": "syscall",
+ "syscall.MNT_EXPIRE": "syscall",
+ "syscall.MNT_FORCE": "syscall",
+ "syscall.MSG_BCAST": "syscall",
+ "syscall.MSG_CMSG_CLOEXEC": "syscall",
+ "syscall.MSG_COMPAT": "syscall",
+ "syscall.MSG_CONFIRM": "syscall",
+ "syscall.MSG_CONTROLMBUF": "syscall",
+ "syscall.MSG_CTRUNC": "syscall",
+ "syscall.MSG_DONTROUTE": "syscall",
+ "syscall.MSG_DONTWAIT": "syscall",
+ "syscall.MSG_EOF": "syscall",
+ "syscall.MSG_EOR": "syscall",
+ "syscall.MSG_ERRQUEUE": "syscall",
+ "syscall.MSG_FASTOPEN": "syscall",
+ "syscall.MSG_FIN": "syscall",
+ "syscall.MSG_FLUSH": "syscall",
+ "syscall.MSG_HAVEMORE": "syscall",
+ "syscall.MSG_HOLD": "syscall",
+ "syscall.MSG_IOVUSRSPACE": "syscall",
+ "syscall.MSG_LENUSRSPACE": "syscall",
+ "syscall.MSG_MCAST": "syscall",
+ "syscall.MSG_MORE": "syscall",
+ "syscall.MSG_NAMEMBUF": "syscall",
+ "syscall.MSG_NBIO": "syscall",
+ "syscall.MSG_NEEDSA": "syscall",
+ "syscall.MSG_NOSIGNAL": "syscall",
+ "syscall.MSG_NOTIFICATION": "syscall",
+ "syscall.MSG_OOB": "syscall",
+ "syscall.MSG_PEEK": "syscall",
+ "syscall.MSG_PROXY": "syscall",
+ "syscall.MSG_RCVMORE": "syscall",
+ "syscall.MSG_RST": "syscall",
+ "syscall.MSG_SEND": "syscall",
+ "syscall.MSG_SYN": "syscall",
+ "syscall.MSG_TRUNC": "syscall",
+ "syscall.MSG_TRYHARD": "syscall",
+ "syscall.MSG_USERFLAGS": "syscall",
+ "syscall.MSG_WAITALL": "syscall",
+ "syscall.MSG_WAITFORONE": "syscall",
+ "syscall.MSG_WAITSTREAM": "syscall",
+ "syscall.MS_ACTIVE": "syscall",
+ "syscall.MS_ASYNC": "syscall",
+ "syscall.MS_BIND": "syscall",
+ "syscall.MS_DEACTIVATE": "syscall",
+ "syscall.MS_DIRSYNC": "syscall",
+ "syscall.MS_INVALIDATE": "syscall",
+ "syscall.MS_I_VERSION": "syscall",
+ "syscall.MS_KERNMOUNT": "syscall",
+ "syscall.MS_KILLPAGES": "syscall",
+ "syscall.MS_MANDLOCK": "syscall",
+ "syscall.MS_MGC_MSK": "syscall",
+ "syscall.MS_MGC_VAL": "syscall",
+ "syscall.MS_MOVE": "syscall",
+ "syscall.MS_NOATIME": "syscall",
+ "syscall.MS_NODEV": "syscall",
+ "syscall.MS_NODIRATIME": "syscall",
+ "syscall.MS_NOEXEC": "syscall",
+ "syscall.MS_NOSUID": "syscall",
+ "syscall.MS_NOUSER": "syscall",
+ "syscall.MS_POSIXACL": "syscall",
+ "syscall.MS_PRIVATE": "syscall",
+ "syscall.MS_RDONLY": "syscall",
+ "syscall.MS_REC": "syscall",
+ "syscall.MS_RELATIME": "syscall",
+ "syscall.MS_REMOUNT": "syscall",
+ "syscall.MS_RMT_MASK": "syscall",
+ "syscall.MS_SHARED": "syscall",
+ "syscall.MS_SILENT": "syscall",
+ "syscall.MS_SLAVE": "syscall",
+ "syscall.MS_STRICTATIME": "syscall",
+ "syscall.MS_SYNC": "syscall",
+ "syscall.MS_SYNCHRONOUS": "syscall",
+ "syscall.MS_UNBINDABLE": "syscall",
+ "syscall.Madvise": "syscall",
+ "syscall.MapViewOfFile": "syscall",
+ "syscall.MaxTokenInfoClass": "syscall",
+ "syscall.Mclpool": "syscall",
+ "syscall.MibIfRow": "syscall",
+ "syscall.Mkdir": "syscall",
+ "syscall.Mkdirat": "syscall",
+ "syscall.Mkfifo": "syscall",
+ "syscall.Mknod": "syscall",
+ "syscall.Mknodat": "syscall",
+ "syscall.Mlock": "syscall",
+ "syscall.Mlockall": "syscall",
+ "syscall.Mmap": "syscall",
+ "syscall.Mount": "syscall",
+ "syscall.MoveFile": "syscall",
+ "syscall.Mprotect": "syscall",
+ "syscall.Msghdr": "syscall",
+ "syscall.Munlock": "syscall",
+ "syscall.Munlockall": "syscall",
+ "syscall.Munmap": "syscall",
+ "syscall.MustLoadDLL": "syscall",
+ "syscall.NAME_MAX": "syscall",
+ "syscall.NETLINK_ADD_MEMBERSHIP": "syscall",
+ "syscall.NETLINK_AUDIT": "syscall",
+ "syscall.NETLINK_BROADCAST_ERROR": "syscall",
+ "syscall.NETLINK_CONNECTOR": "syscall",
+ "syscall.NETLINK_DNRTMSG": "syscall",
+ "syscall.NETLINK_DROP_MEMBERSHIP": "syscall",
+ "syscall.NETLINK_ECRYPTFS": "syscall",
+ "syscall.NETLINK_FIB_LOOKUP": "syscall",
+ "syscall.NETLINK_FIREWALL": "syscall",
+ "syscall.NETLINK_GENERIC": "syscall",
+ "syscall.NETLINK_INET_DIAG": "syscall",
+ "syscall.NETLINK_IP6_FW": "syscall",
+ "syscall.NETLINK_ISCSI": "syscall",
+ "syscall.NETLINK_KOBJECT_UEVENT": "syscall",
+ "syscall.NETLINK_NETFILTER": "syscall",
+ "syscall.NETLINK_NFLOG": "syscall",
+ "syscall.NETLINK_NO_ENOBUFS": "syscall",
+ "syscall.NETLINK_PKTINFO": "syscall",
+ "syscall.NETLINK_RDMA": "syscall",
+ "syscall.NETLINK_ROUTE": "syscall",
+ "syscall.NETLINK_SCSITRANSPORT": "syscall",
+ "syscall.NETLINK_SELINUX": "syscall",
+ "syscall.NETLINK_UNUSED": "syscall",
+ "syscall.NETLINK_USERSOCK": "syscall",
+ "syscall.NETLINK_XFRM": "syscall",
+ "syscall.NET_RT_DUMP": "syscall",
+ "syscall.NET_RT_DUMP2": "syscall",
+ "syscall.NET_RT_FLAGS": "syscall",
+ "syscall.NET_RT_IFLIST": "syscall",
+ "syscall.NET_RT_IFLIST2": "syscall",
+ "syscall.NET_RT_IFLISTL": "syscall",
+ "syscall.NET_RT_IFMALIST": "syscall",
+ "syscall.NET_RT_MAXID": "syscall",
+ "syscall.NET_RT_OIFLIST": "syscall",
+ "syscall.NET_RT_OOIFLIST": "syscall",
+ "syscall.NET_RT_STAT": "syscall",
+ "syscall.NET_RT_STATS": "syscall",
+ "syscall.NET_RT_TABLE": "syscall",
+ "syscall.NET_RT_TRASH": "syscall",
+ "syscall.NLA_ALIGNTO": "syscall",
+ "syscall.NLA_F_NESTED": "syscall",
+ "syscall.NLA_F_NET_BYTEORDER": "syscall",
+ "syscall.NLA_HDRLEN": "syscall",
+ "syscall.NLMSG_ALIGNTO": "syscall",
+ "syscall.NLMSG_DONE": "syscall",
+ "syscall.NLMSG_ERROR": "syscall",
+ "syscall.NLMSG_HDRLEN": "syscall",
+ "syscall.NLMSG_MIN_TYPE": "syscall",
+ "syscall.NLMSG_NOOP": "syscall",
+ "syscall.NLMSG_OVERRUN": "syscall",
+ "syscall.NLM_F_ACK": "syscall",
+ "syscall.NLM_F_APPEND": "syscall",
+ "syscall.NLM_F_ATOMIC": "syscall",
+ "syscall.NLM_F_CREATE": "syscall",
+ "syscall.NLM_F_DUMP": "syscall",
+ "syscall.NLM_F_ECHO": "syscall",
+ "syscall.NLM_F_EXCL": "syscall",
+ "syscall.NLM_F_MATCH": "syscall",
+ "syscall.NLM_F_MULTI": "syscall",
+ "syscall.NLM_F_REPLACE": "syscall",
+ "syscall.NLM_F_REQUEST": "syscall",
+ "syscall.NLM_F_ROOT": "syscall",
+ "syscall.NOFLSH": "syscall",
+ "syscall.NOTE_ABSOLUTE": "syscall",
+ "syscall.NOTE_ATTRIB": "syscall",
+ "syscall.NOTE_CHILD": "syscall",
+ "syscall.NOTE_DELETE": "syscall",
+ "syscall.NOTE_EOF": "syscall",
+ "syscall.NOTE_EXEC": "syscall",
+ "syscall.NOTE_EXIT": "syscall",
+ "syscall.NOTE_EXITSTATUS": "syscall",
+ "syscall.NOTE_EXTEND": "syscall",
+ "syscall.NOTE_FFAND": "syscall",
+ "syscall.NOTE_FFCOPY": "syscall",
+ "syscall.NOTE_FFCTRLMASK": "syscall",
+ "syscall.NOTE_FFLAGSMASK": "syscall",
+ "syscall.NOTE_FFNOP": "syscall",
+ "syscall.NOTE_FFOR": "syscall",
+ "syscall.NOTE_FORK": "syscall",
+ "syscall.NOTE_LINK": "syscall",
+ "syscall.NOTE_LOWAT": "syscall",
+ "syscall.NOTE_NONE": "syscall",
+ "syscall.NOTE_NSECONDS": "syscall",
+ "syscall.NOTE_PCTRLMASK": "syscall",
+ "syscall.NOTE_PDATAMASK": "syscall",
+ "syscall.NOTE_REAP": "syscall",
+ "syscall.NOTE_RENAME": "syscall",
+ "syscall.NOTE_RESOURCEEND": "syscall",
+ "syscall.NOTE_REVOKE": "syscall",
+ "syscall.NOTE_SECONDS": "syscall",
+ "syscall.NOTE_SIGNAL": "syscall",
+ "syscall.NOTE_TRACK": "syscall",
+ "syscall.NOTE_TRACKERR": "syscall",
+ "syscall.NOTE_TRIGGER": "syscall",
+ "syscall.NOTE_TRUNCATE": "syscall",
+ "syscall.NOTE_USECONDS": "syscall",
+ "syscall.NOTE_VM_ERROR": "syscall",
+ "syscall.NOTE_VM_PRESSURE": "syscall",
+ "syscall.NOTE_VM_PRESSURE_SUDDEN_TERMINATE": "syscall",
+ "syscall.NOTE_VM_PRESSURE_TERMINATE": "syscall",
+ "syscall.NOTE_WRITE": "syscall",
+ "syscall.NameCanonical": "syscall",
+ "syscall.NameCanonicalEx": "syscall",
+ "syscall.NameDisplay": "syscall",
+ "syscall.NameDnsDomain": "syscall",
+ "syscall.NameFullyQualifiedDN": "syscall",
+ "syscall.NameSamCompatible": "syscall",
+ "syscall.NameServicePrincipal": "syscall",
+ "syscall.NameUniqueId": "syscall",
+ "syscall.NameUnknown": "syscall",
+ "syscall.NameUserPrincipal": "syscall",
+ "syscall.Nanosleep": "syscall",
+ "syscall.NetApiBufferFree": "syscall",
+ "syscall.NetGetJoinInformation": "syscall",
+ "syscall.NetSetupDomainName": "syscall",
+ "syscall.NetSetupUnjoined": "syscall",
+ "syscall.NetSetupUnknownStatus": "syscall",
+ "syscall.NetSetupWorkgroupName": "syscall",
+ "syscall.NetUserGetInfo": "syscall",
+ "syscall.NetlinkMessage": "syscall",
+ "syscall.NetlinkRIB": "syscall",
+ "syscall.NetlinkRouteAttr": "syscall",
+ "syscall.NetlinkRouteRequest": "syscall",
+ "syscall.NewCallback": "syscall",
+ "syscall.NewCallbackCDecl": "syscall",
+ "syscall.NewLazyDLL": "syscall",
+ "syscall.NlAttr": "syscall",
+ "syscall.NlMsgerr": "syscall",
+ "syscall.NlMsghdr": "syscall",
+ "syscall.NsecToFiletime": "syscall",
+ "syscall.NsecToTimespec": "syscall",
+ "syscall.NsecToTimeval": "syscall",
+ "syscall.Ntohs": "syscall",
+ "syscall.OCRNL": "syscall",
+ "syscall.OFDEL": "syscall",
+ "syscall.OFILL": "syscall",
+ "syscall.OFIOGETBMAP": "syscall",
+ "syscall.OID_PKIX_KP_SERVER_AUTH": "syscall",
+ "syscall.OID_SERVER_GATED_CRYPTO": "syscall",
+ "syscall.OID_SGC_NETSCAPE": "syscall",
+ "syscall.OLCUC": "syscall",
+ "syscall.ONLCR": "syscall",
+ "syscall.ONLRET": "syscall",
+ "syscall.ONOCR": "syscall",
+ "syscall.ONOEOT": "syscall",
+ "syscall.OPEN_ALWAYS": "syscall",
+ "syscall.OPEN_EXISTING": "syscall",
+ "syscall.OPOST": "syscall",
+ "syscall.O_ACCMODE": "syscall",
+ "syscall.O_ALERT": "syscall",
+ "syscall.O_ALT_IO": "syscall",
+ "syscall.O_APPEND": "syscall",
+ "syscall.O_ASYNC": "syscall",
+ "syscall.O_CLOEXEC": "syscall",
+ "syscall.O_CREAT": "syscall",
+ "syscall.O_DIRECT": "syscall",
+ "syscall.O_DIRECTORY": "syscall",
+ "syscall.O_DSYNC": "syscall",
+ "syscall.O_EVTONLY": "syscall",
+ "syscall.O_EXCL": "syscall",
+ "syscall.O_EXEC": "syscall",
+ "syscall.O_EXLOCK": "syscall",
+ "syscall.O_FSYNC": "syscall",
+ "syscall.O_LARGEFILE": "syscall",
+ "syscall.O_NDELAY": "syscall",
+ "syscall.O_NOATIME": "syscall",
+ "syscall.O_NOCTTY": "syscall",
+ "syscall.O_NOFOLLOW": "syscall",
+ "syscall.O_NONBLOCK": "syscall",
+ "syscall.O_NOSIGPIPE": "syscall",
+ "syscall.O_POPUP": "syscall",
+ "syscall.O_RDONLY": "syscall",
+ "syscall.O_RDWR": "syscall",
+ "syscall.O_RSYNC": "syscall",
+ "syscall.O_SHLOCK": "syscall",
+ "syscall.O_SYMLINK": "syscall",
+ "syscall.O_SYNC": "syscall",
+ "syscall.O_TRUNC": "syscall",
+ "syscall.O_TTY_INIT": "syscall",
+ "syscall.O_WRONLY": "syscall",
+ "syscall.Open": "syscall",
+ "syscall.OpenCurrentProcessToken": "syscall",
+ "syscall.OpenProcess": "syscall",
+ "syscall.OpenProcessToken": "syscall",
+ "syscall.Openat": "syscall",
+ "syscall.Overlapped": "syscall",
+ "syscall.PACKET_ADD_MEMBERSHIP": "syscall",
+ "syscall.PACKET_BROADCAST": "syscall",
+ "syscall.PACKET_DROP_MEMBERSHIP": "syscall",
+ "syscall.PACKET_FASTROUTE": "syscall",
+ "syscall.PACKET_HOST": "syscall",
+ "syscall.PACKET_LOOPBACK": "syscall",
+ "syscall.PACKET_MR_ALLMULTI": "syscall",
+ "syscall.PACKET_MR_MULTICAST": "syscall",
+ "syscall.PACKET_MR_PROMISC": "syscall",
+ "syscall.PACKET_MULTICAST": "syscall",
+ "syscall.PACKET_OTHERHOST": "syscall",
+ "syscall.PACKET_OUTGOING": "syscall",
+ "syscall.PACKET_RECV_OUTPUT": "syscall",
+ "syscall.PACKET_RX_RING": "syscall",
+ "syscall.PACKET_STATISTICS": "syscall",
+ "syscall.PAGE_EXECUTE_READ": "syscall",
+ "syscall.PAGE_EXECUTE_READWRITE": "syscall",
+ "syscall.PAGE_EXECUTE_WRITECOPY": "syscall",
+ "syscall.PAGE_READONLY": "syscall",
+ "syscall.PAGE_READWRITE": "syscall",
+ "syscall.PAGE_WRITECOPY": "syscall",
+ "syscall.PARENB": "syscall",
+ "syscall.PARMRK": "syscall",
+ "syscall.PARODD": "syscall",
+ "syscall.PENDIN": "syscall",
+ "syscall.PFL_HIDDEN": "syscall",
+ "syscall.PFL_MATCHES_PROTOCOL_ZERO": "syscall",
+ "syscall.PFL_MULTIPLE_PROTO_ENTRIES": "syscall",
+ "syscall.PFL_NETWORKDIRECT_PROVIDER": "syscall",
+ "syscall.PFL_RECOMMENDED_PROTO_ENTRY": "syscall",
+ "syscall.PF_FLUSH": "syscall",
+ "syscall.PKCS_7_ASN_ENCODING": "syscall",
+ "syscall.PMC5_PIPELINE_FLUSH": "syscall",
+ "syscall.PRIO_PGRP": "syscall",
+ "syscall.PRIO_PROCESS": "syscall",
+ "syscall.PRIO_USER": "syscall",
+ "syscall.PRI_IOFLUSH": "syscall",
+ "syscall.PROCESS_QUERY_INFORMATION": "syscall",
+ "syscall.PROCESS_TERMINATE": "syscall",
+ "syscall.PROT_EXEC": "syscall",
+ "syscall.PROT_GROWSDOWN": "syscall",
+ "syscall.PROT_GROWSUP": "syscall",
+ "syscall.PROT_NONE": "syscall",
+ "syscall.PROT_READ": "syscall",
+ "syscall.PROT_WRITE": "syscall",
+ "syscall.PROV_DH_SCHANNEL": "syscall",
+ "syscall.PROV_DSS": "syscall",
+ "syscall.PROV_DSS_DH": "syscall",
+ "syscall.PROV_EC_ECDSA_FULL": "syscall",
+ "syscall.PROV_EC_ECDSA_SIG": "syscall",
+ "syscall.PROV_EC_ECNRA_FULL": "syscall",
+ "syscall.PROV_EC_ECNRA_SIG": "syscall",
+ "syscall.PROV_FORTEZZA": "syscall",
+ "syscall.PROV_INTEL_SEC": "syscall",
+ "syscall.PROV_MS_EXCHANGE": "syscall",
+ "syscall.PROV_REPLACE_OWF": "syscall",
+ "syscall.PROV_RNG": "syscall",
+ "syscall.PROV_RSA_AES": "syscall",
+ "syscall.PROV_RSA_FULL": "syscall",
+ "syscall.PROV_RSA_SCHANNEL": "syscall",
+ "syscall.PROV_RSA_SIG": "syscall",
+ "syscall.PROV_SPYRUS_LYNKS": "syscall",
+ "syscall.PROV_SSL": "syscall",
+ "syscall.PR_CAPBSET_DROP": "syscall",
+ "syscall.PR_CAPBSET_READ": "syscall",
+ "syscall.PR_CLEAR_SECCOMP_FILTER": "syscall",
+ "syscall.PR_ENDIAN_BIG": "syscall",
+ "syscall.PR_ENDIAN_LITTLE": "syscall",
+ "syscall.PR_ENDIAN_PPC_LITTLE": "syscall",
+ "syscall.PR_FPEMU_NOPRINT": "syscall",
+ "syscall.PR_FPEMU_SIGFPE": "syscall",
+ "syscall.PR_FP_EXC_ASYNC": "syscall",
+ "syscall.PR_FP_EXC_DISABLED": "syscall",
+ "syscall.PR_FP_EXC_DIV": "syscall",
+ "syscall.PR_FP_EXC_INV": "syscall",
+ "syscall.PR_FP_EXC_NONRECOV": "syscall",
+ "syscall.PR_FP_EXC_OVF": "syscall",
+ "syscall.PR_FP_EXC_PRECISE": "syscall",
+ "syscall.PR_FP_EXC_RES": "syscall",
+ "syscall.PR_FP_EXC_SW_ENABLE": "syscall",
+ "syscall.PR_FP_EXC_UND": "syscall",
+ "syscall.PR_GET_DUMPABLE": "syscall",
+ "syscall.PR_GET_ENDIAN": "syscall",
+ "syscall.PR_GET_FPEMU": "syscall",
+ "syscall.PR_GET_FPEXC": "syscall",
+ "syscall.PR_GET_KEEPCAPS": "syscall",
+ "syscall.PR_GET_NAME": "syscall",
+ "syscall.PR_GET_PDEATHSIG": "syscall",
+ "syscall.PR_GET_SECCOMP": "syscall",
+ "syscall.PR_GET_SECCOMP_FILTER": "syscall",
+ "syscall.PR_GET_SECUREBITS": "syscall",
+ "syscall.PR_GET_TIMERSLACK": "syscall",
+ "syscall.PR_GET_TIMING": "syscall",
+ "syscall.PR_GET_TSC": "syscall",
+ "syscall.PR_GET_UNALIGN": "syscall",
+ "syscall.PR_MCE_KILL": "syscall",
+ "syscall.PR_MCE_KILL_CLEAR": "syscall",
+ "syscall.PR_MCE_KILL_DEFAULT": "syscall",
+ "syscall.PR_MCE_KILL_EARLY": "syscall",
+ "syscall.PR_MCE_KILL_GET": "syscall",
+ "syscall.PR_MCE_KILL_LATE": "syscall",
+ "syscall.PR_MCE_KILL_SET": "syscall",
+ "syscall.PR_SECCOMP_FILTER_EVENT": "syscall",
+ "syscall.PR_SECCOMP_FILTER_SYSCALL": "syscall",
+ "syscall.PR_SET_DUMPABLE": "syscall",
+ "syscall.PR_SET_ENDIAN": "syscall",
+ "syscall.PR_SET_FPEMU": "syscall",
+ "syscall.PR_SET_FPEXC": "syscall",
+ "syscall.PR_SET_KEEPCAPS": "syscall",
+ "syscall.PR_SET_NAME": "syscall",
+ "syscall.PR_SET_PDEATHSIG": "syscall",
+ "syscall.PR_SET_PTRACER": "syscall",
+ "syscall.PR_SET_SECCOMP": "syscall",
+ "syscall.PR_SET_SECCOMP_FILTER": "syscall",
+ "syscall.PR_SET_SECUREBITS": "syscall",
+ "syscall.PR_SET_TIMERSLACK": "syscall",
+ "syscall.PR_SET_TIMING": "syscall",
+ "syscall.PR_SET_TSC": "syscall",
+ "syscall.PR_SET_UNALIGN": "syscall",
+ "syscall.PR_TASK_PERF_EVENTS_DISABLE": "syscall",
+ "syscall.PR_TASK_PERF_EVENTS_ENABLE": "syscall",
+ "syscall.PR_TIMING_STATISTICAL": "syscall",
+ "syscall.PR_TIMING_TIMESTAMP": "syscall",
+ "syscall.PR_TSC_ENABLE": "syscall",
+ "syscall.PR_TSC_SIGSEGV": "syscall",
+ "syscall.PR_UNALIGN_NOPRINT": "syscall",
+ "syscall.PR_UNALIGN_SIGBUS": "syscall",
+ "syscall.PTRACE_ARCH_PRCTL": "syscall",
+ "syscall.PTRACE_ATTACH": "syscall",
+ "syscall.PTRACE_CONT": "syscall",
+ "syscall.PTRACE_DETACH": "syscall",
+ "syscall.PTRACE_EVENT_CLONE": "syscall",
+ "syscall.PTRACE_EVENT_EXEC": "syscall",
+ "syscall.PTRACE_EVENT_EXIT": "syscall",
+ "syscall.PTRACE_EVENT_FORK": "syscall",
+ "syscall.PTRACE_EVENT_VFORK": "syscall",
+ "syscall.PTRACE_EVENT_VFORK_DONE": "syscall",
+ "syscall.PTRACE_GETCRUNCHREGS": "syscall",
+ "syscall.PTRACE_GETEVENTMSG": "syscall",
+ "syscall.PTRACE_GETFPREGS": "syscall",
+ "syscall.PTRACE_GETFPXREGS": "syscall",
+ "syscall.PTRACE_GETHBPREGS": "syscall",
+ "syscall.PTRACE_GETREGS": "syscall",
+ "syscall.PTRACE_GETREGSET": "syscall",
+ "syscall.PTRACE_GETSIGINFO": "syscall",
+ "syscall.PTRACE_GETVFPREGS": "syscall",
+ "syscall.PTRACE_GETWMMXREGS": "syscall",
+ "syscall.PTRACE_GET_THREAD_AREA": "syscall",
+ "syscall.PTRACE_KILL": "syscall",
+ "syscall.PTRACE_OLDSETOPTIONS": "syscall",
+ "syscall.PTRACE_O_MASK": "syscall",
+ "syscall.PTRACE_O_TRACECLONE": "syscall",
+ "syscall.PTRACE_O_TRACEEXEC": "syscall",
+ "syscall.PTRACE_O_TRACEEXIT": "syscall",
+ "syscall.PTRACE_O_TRACEFORK": "syscall",
+ "syscall.PTRACE_O_TRACESYSGOOD": "syscall",
+ "syscall.PTRACE_O_TRACEVFORK": "syscall",
+ "syscall.PTRACE_O_TRACEVFORKDONE": "syscall",
+ "syscall.PTRACE_PEEKDATA": "syscall",
+ "syscall.PTRACE_PEEKTEXT": "syscall",
+ "syscall.PTRACE_PEEKUSR": "syscall",
+ "syscall.PTRACE_POKEDATA": "syscall",
+ "syscall.PTRACE_POKETEXT": "syscall",
+ "syscall.PTRACE_POKEUSR": "syscall",
+ "syscall.PTRACE_SETCRUNCHREGS": "syscall",
+ "syscall.PTRACE_SETFPREGS": "syscall",
+ "syscall.PTRACE_SETFPXREGS": "syscall",
+ "syscall.PTRACE_SETHBPREGS": "syscall",
+ "syscall.PTRACE_SETOPTIONS": "syscall",
+ "syscall.PTRACE_SETREGS": "syscall",
+ "syscall.PTRACE_SETREGSET": "syscall",
+ "syscall.PTRACE_SETSIGINFO": "syscall",
+ "syscall.PTRACE_SETVFPREGS": "syscall",
+ "syscall.PTRACE_SETWMMXREGS": "syscall",
+ "syscall.PTRACE_SET_SYSCALL": "syscall",
+ "syscall.PTRACE_SET_THREAD_AREA": "syscall",
+ "syscall.PTRACE_SINGLEBLOCK": "syscall",
+ "syscall.PTRACE_SINGLESTEP": "syscall",
+ "syscall.PTRACE_SYSCALL": "syscall",
+ "syscall.PTRACE_SYSEMU": "syscall",
+ "syscall.PTRACE_SYSEMU_SINGLESTEP": "syscall",
+ "syscall.PTRACE_TRACEME": "syscall",
+ "syscall.PT_ATTACH": "syscall",
+ "syscall.PT_ATTACHEXC": "syscall",
+ "syscall.PT_CONTINUE": "syscall",
+ "syscall.PT_DATA_ADDR": "syscall",
+ "syscall.PT_DENY_ATTACH": "syscall",
+ "syscall.PT_DETACH": "syscall",
+ "syscall.PT_FIRSTMACH": "syscall",
+ "syscall.PT_FORCEQUOTA": "syscall",
+ "syscall.PT_KILL": "syscall",
+ "syscall.PT_MASK": "syscall",
+ "syscall.PT_READ_D": "syscall",
+ "syscall.PT_READ_I": "syscall",
+ "syscall.PT_READ_U": "syscall",
+ "syscall.PT_SIGEXC": "syscall",
+ "syscall.PT_STEP": "syscall",
+ "syscall.PT_TEXT_ADDR": "syscall",
+ "syscall.PT_TEXT_END_ADDR": "syscall",
+ "syscall.PT_THUPDATE": "syscall",
+ "syscall.PT_TRACE_ME": "syscall",
+ "syscall.PT_WRITE_D": "syscall",
+ "syscall.PT_WRITE_I": "syscall",
+ "syscall.PT_WRITE_U": "syscall",
+ "syscall.ParseDirent": "syscall",
+ "syscall.ParseNetlinkMessage": "syscall",
+ "syscall.ParseNetlinkRouteAttr": "syscall",
+ "syscall.ParseRoutingMessage": "syscall",
+ "syscall.ParseRoutingSockaddr": "syscall",
+ "syscall.ParseSocketControlMessage": "syscall",
+ "syscall.ParseUnixCredentials": "syscall",
+ "syscall.ParseUnixRights": "syscall",
+ "syscall.PathMax": "syscall",
+ "syscall.Pathconf": "syscall",
+ "syscall.Pause": "syscall",
+ "syscall.Pipe": "syscall",
+ "syscall.Pipe2": "syscall",
+ "syscall.PivotRoot": "syscall",
+ "syscall.PostQueuedCompletionStatus": "syscall",
+ "syscall.Pread": "syscall",
+ "syscall.Proc": "syscall",
+ "syscall.ProcAttr": "syscall",
+ "syscall.Process32First": "syscall",
+ "syscall.Process32Next": "syscall",
+ "syscall.ProcessEntry32": "syscall",
+ "syscall.ProcessInformation": "syscall",
+ "syscall.Protoent": "syscall",
+ "syscall.PtraceAttach": "syscall",
+ "syscall.PtraceCont": "syscall",
+ "syscall.PtraceDetach": "syscall",
+ "syscall.PtraceGetEventMsg": "syscall",
+ "syscall.PtraceGetRegs": "syscall",
+ "syscall.PtracePeekData": "syscall",
+ "syscall.PtracePeekText": "syscall",
+ "syscall.PtracePokeData": "syscall",
+ "syscall.PtracePokeText": "syscall",
+ "syscall.PtraceRegs": "syscall",
+ "syscall.PtraceSetOptions": "syscall",
+ "syscall.PtraceSetRegs": "syscall",
+ "syscall.PtraceSingleStep": "syscall",
+ "syscall.PtraceSyscall": "syscall",
+ "syscall.Pwrite": "syscall",
+ "syscall.REG_BINARY": "syscall",
+ "syscall.REG_DWORD": "syscall",
+ "syscall.REG_DWORD_BIG_ENDIAN": "syscall",
+ "syscall.REG_DWORD_LITTLE_ENDIAN": "syscall",
+ "syscall.REG_EXPAND_SZ": "syscall",
+ "syscall.REG_FULL_RESOURCE_DESCRIPTOR": "syscall",
+ "syscall.REG_LINK": "syscall",
+ "syscall.REG_MULTI_SZ": "syscall",
+ "syscall.REG_NONE": "syscall",
+ "syscall.REG_QWORD": "syscall",
+ "syscall.REG_QWORD_LITTLE_ENDIAN": "syscall",
+ "syscall.REG_RESOURCE_LIST": "syscall",
+ "syscall.REG_RESOURCE_REQUIREMENTS_LIST": "syscall",
+ "syscall.REG_SZ": "syscall",
+ "syscall.RLIMIT_AS": "syscall",
+ "syscall.RLIMIT_CORE": "syscall",
+ "syscall.RLIMIT_CPU": "syscall",
+ "syscall.RLIMIT_DATA": "syscall",
+ "syscall.RLIMIT_FSIZE": "syscall",
+ "syscall.RLIMIT_NOFILE": "syscall",
+ "syscall.RLIMIT_STACK": "syscall",
+ "syscall.RLIM_INFINITY": "syscall",
+ "syscall.RTAX_ADVMSS": "syscall",
+ "syscall.RTAX_AUTHOR": "syscall",
+ "syscall.RTAX_BRD": "syscall",
+ "syscall.RTAX_CWND": "syscall",
+ "syscall.RTAX_DST": "syscall",
+ "syscall.RTAX_FEATURES": "syscall",
+ "syscall.RTAX_FEATURE_ALLFRAG": "syscall",
+ "syscall.RTAX_FEATURE_ECN": "syscall",
+ "syscall.RTAX_FEATURE_SACK": "syscall",
+ "syscall.RTAX_FEATURE_TIMESTAMP": "syscall",
+ "syscall.RTAX_GATEWAY": "syscall",
+ "syscall.RTAX_GENMASK": "syscall",
+ "syscall.RTAX_HOPLIMIT": "syscall",
+ "syscall.RTAX_IFA": "syscall",
+ "syscall.RTAX_IFP": "syscall",
+ "syscall.RTAX_INITCWND": "syscall",
+ "syscall.RTAX_INITRWND": "syscall",
+ "syscall.RTAX_LABEL": "syscall",
+ "syscall.RTAX_LOCK": "syscall",
+ "syscall.RTAX_MAX": "syscall",
+ "syscall.RTAX_MTU": "syscall",
+ "syscall.RTAX_NETMASK": "syscall",
+ "syscall.RTAX_REORDERING": "syscall",
+ "syscall.RTAX_RTO_MIN": "syscall",
+ "syscall.RTAX_RTT": "syscall",
+ "syscall.RTAX_RTTVAR": "syscall",
+ "syscall.RTAX_SRC": "syscall",
+ "syscall.RTAX_SRCMASK": "syscall",
+ "syscall.RTAX_SSTHRESH": "syscall",
+ "syscall.RTAX_TAG": "syscall",
+ "syscall.RTAX_UNSPEC": "syscall",
+ "syscall.RTAX_WINDOW": "syscall",
+ "syscall.RTA_ALIGNTO": "syscall",
+ "syscall.RTA_AUTHOR": "syscall",
+ "syscall.RTA_BRD": "syscall",
+ "syscall.RTA_CACHEINFO": "syscall",
+ "syscall.RTA_DST": "syscall",
+ "syscall.RTA_FLOW": "syscall",
+ "syscall.RTA_GATEWAY": "syscall",
+ "syscall.RTA_GENMASK": "syscall",
+ "syscall.RTA_IFA": "syscall",
+ "syscall.RTA_IFP": "syscall",
+ "syscall.RTA_IIF": "syscall",
+ "syscall.RTA_LABEL": "syscall",
+ "syscall.RTA_MAX": "syscall",
+ "syscall.RTA_METRICS": "syscall",
+ "syscall.RTA_MULTIPATH": "syscall",
+ "syscall.RTA_NETMASK": "syscall",
+ "syscall.RTA_OIF": "syscall",
+ "syscall.RTA_PREFSRC": "syscall",
+ "syscall.RTA_PRIORITY": "syscall",
+ "syscall.RTA_SRC": "syscall",
+ "syscall.RTA_SRCMASK": "syscall",
+ "syscall.RTA_TABLE": "syscall",
+ "syscall.RTA_TAG": "syscall",
+ "syscall.RTA_UNSPEC": "syscall",
+ "syscall.RTCF_DIRECTSRC": "syscall",
+ "syscall.RTCF_DOREDIRECT": "syscall",
+ "syscall.RTCF_LOG": "syscall",
+ "syscall.RTCF_MASQ": "syscall",
+ "syscall.RTCF_NAT": "syscall",
+ "syscall.RTCF_VALVE": "syscall",
+ "syscall.RTF_ADDRCLASSMASK": "syscall",
+ "syscall.RTF_ADDRCONF": "syscall",
+ "syscall.RTF_ALLONLINK": "syscall",
+ "syscall.RTF_ANNOUNCE": "syscall",
+ "syscall.RTF_BLACKHOLE": "syscall",
+ "syscall.RTF_BROADCAST": "syscall",
+ "syscall.RTF_CACHE": "syscall",
+ "syscall.RTF_CLONED": "syscall",
+ "syscall.RTF_CLONING": "syscall",
+ "syscall.RTF_CONDEMNED": "syscall",
+ "syscall.RTF_DEFAULT": "syscall",
+ "syscall.RTF_DELCLONE": "syscall",
+ "syscall.RTF_DONE": "syscall",
+ "syscall.RTF_DYNAMIC": "syscall",
+ "syscall.RTF_FLOW": "syscall",
+ "syscall.RTF_FMASK": "syscall",
+ "syscall.RTF_GATEWAY": "syscall",
+ "syscall.RTF_GWFLAG_COMPAT": "syscall",
+ "syscall.RTF_HOST": "syscall",
+ "syscall.RTF_IFREF": "syscall",
+ "syscall.RTF_IFSCOPE": "syscall",
+ "syscall.RTF_INTERFACE": "syscall",
+ "syscall.RTF_IRTT": "syscall",
+ "syscall.RTF_LINKRT": "syscall",
+ "syscall.RTF_LLDATA": "syscall",
+ "syscall.RTF_LLINFO": "syscall",
+ "syscall.RTF_LOCAL": "syscall",
+ "syscall.RTF_MASK": "syscall",
+ "syscall.RTF_MODIFIED": "syscall",
+ "syscall.RTF_MPATH": "syscall",
+ "syscall.RTF_MPLS": "syscall",
+ "syscall.RTF_MSS": "syscall",
+ "syscall.RTF_MTU": "syscall",
+ "syscall.RTF_MULTICAST": "syscall",
+ "syscall.RTF_NAT": "syscall",
+ "syscall.RTF_NOFORWARD": "syscall",
+ "syscall.RTF_NONEXTHOP": "syscall",
+ "syscall.RTF_NOPMTUDISC": "syscall",
+ "syscall.RTF_PERMANENT_ARP": "syscall",
+ "syscall.RTF_PINNED": "syscall",
+ "syscall.RTF_POLICY": "syscall",
+ "syscall.RTF_PRCLONING": "syscall",
+ "syscall.RTF_PROTO1": "syscall",
+ "syscall.RTF_PROTO2": "syscall",
+ "syscall.RTF_PROTO3": "syscall",
+ "syscall.RTF_REINSTATE": "syscall",
+ "syscall.RTF_REJECT": "syscall",
+ "syscall.RTF_RNH_LOCKED": "syscall",
+ "syscall.RTF_SOURCE": "syscall",
+ "syscall.RTF_SRC": "syscall",
+ "syscall.RTF_STATIC": "syscall",
+ "syscall.RTF_STICKY": "syscall",
+ "syscall.RTF_THROW": "syscall",
+ "syscall.RTF_TUNNEL": "syscall",
+ "syscall.RTF_UP": "syscall",
+ "syscall.RTF_USETRAILERS": "syscall",
+ "syscall.RTF_WASCLONED": "syscall",
+ "syscall.RTF_WINDOW": "syscall",
+ "syscall.RTF_XRESOLVE": "syscall",
+ "syscall.RTM_ADD": "syscall",
+ "syscall.RTM_BASE": "syscall",
+ "syscall.RTM_CHANGE": "syscall",
+ "syscall.RTM_CHGADDR": "syscall",
+ "syscall.RTM_DELACTION": "syscall",
+ "syscall.RTM_DELADDR": "syscall",
+ "syscall.RTM_DELADDRLABEL": "syscall",
+ "syscall.RTM_DELETE": "syscall",
+ "syscall.RTM_DELLINK": "syscall",
+ "syscall.RTM_DELMADDR": "syscall",
+ "syscall.RTM_DELNEIGH": "syscall",
+ "syscall.RTM_DELQDISC": "syscall",
+ "syscall.RTM_DELROUTE": "syscall",
+ "syscall.RTM_DELRULE": "syscall",
+ "syscall.RTM_DELTCLASS": "syscall",
+ "syscall.RTM_DELTFILTER": "syscall",
+ "syscall.RTM_DESYNC": "syscall",
+ "syscall.RTM_F_CLONED": "syscall",
+ "syscall.RTM_F_EQUALIZE": "syscall",
+ "syscall.RTM_F_NOTIFY": "syscall",
+ "syscall.RTM_F_PREFIX": "syscall",
+ "syscall.RTM_GET": "syscall",
+ "syscall.RTM_GET2": "syscall",
+ "syscall.RTM_GETACTION": "syscall",
+ "syscall.RTM_GETADDR": "syscall",
+ "syscall.RTM_GETADDRLABEL": "syscall",
+ "syscall.RTM_GETANYCAST": "syscall",
+ "syscall.RTM_GETDCB": "syscall",
+ "syscall.RTM_GETLINK": "syscall",
+ "syscall.RTM_GETMULTICAST": "syscall",
+ "syscall.RTM_GETNEIGH": "syscall",
+ "syscall.RTM_GETNEIGHTBL": "syscall",
+ "syscall.RTM_GETQDISC": "syscall",
+ "syscall.RTM_GETROUTE": "syscall",
+ "syscall.RTM_GETRULE": "syscall",
+ "syscall.RTM_GETTCLASS": "syscall",
+ "syscall.RTM_GETTFILTER": "syscall",
+ "syscall.RTM_IEEE80211": "syscall",
+ "syscall.RTM_IFANNOUNCE": "syscall",
+ "syscall.RTM_IFINFO": "syscall",
+ "syscall.RTM_IFINFO2": "syscall",
+ "syscall.RTM_LLINFO_UPD": "syscall",
+ "syscall.RTM_LOCK": "syscall",
+ "syscall.RTM_LOSING": "syscall",
+ "syscall.RTM_MAX": "syscall",
+ "syscall.RTM_MAXSIZE": "syscall",
+ "syscall.RTM_MISS": "syscall",
+ "syscall.RTM_NEWACTION": "syscall",
+ "syscall.RTM_NEWADDR": "syscall",
+ "syscall.RTM_NEWADDRLABEL": "syscall",
+ "syscall.RTM_NEWLINK": "syscall",
+ "syscall.RTM_NEWMADDR": "syscall",
+ "syscall.RTM_NEWMADDR2": "syscall",
+ "syscall.RTM_NEWNDUSEROPT": "syscall",
+ "syscall.RTM_NEWNEIGH": "syscall",
+ "syscall.RTM_NEWNEIGHTBL": "syscall",
+ "syscall.RTM_NEWPREFIX": "syscall",
+ "syscall.RTM_NEWQDISC": "syscall",
+ "syscall.RTM_NEWROUTE": "syscall",
+ "syscall.RTM_NEWRULE": "syscall",
+ "syscall.RTM_NEWTCLASS": "syscall",
+ "syscall.RTM_NEWTFILTER": "syscall",
+ "syscall.RTM_NR_FAMILIES": "syscall",
+ "syscall.RTM_NR_MSGTYPES": "syscall",
+ "syscall.RTM_OIFINFO": "syscall",
+ "syscall.RTM_OLDADD": "syscall",
+ "syscall.RTM_OLDDEL": "syscall",
+ "syscall.RTM_OOIFINFO": "syscall",
+ "syscall.RTM_REDIRECT": "syscall",
+ "syscall.RTM_RESOLVE": "syscall",
+ "syscall.RTM_RTTUNIT": "syscall",
+ "syscall.RTM_SETDCB": "syscall",
+ "syscall.RTM_SETGATE": "syscall",
+ "syscall.RTM_SETLINK": "syscall",
+ "syscall.RTM_SETNEIGHTBL": "syscall",
+ "syscall.RTM_VERSION": "syscall",
+ "syscall.RTNH_ALIGNTO": "syscall",
+ "syscall.RTNH_F_DEAD": "syscall",
+ "syscall.RTNH_F_ONLINK": "syscall",
+ "syscall.RTNH_F_PERVASIVE": "syscall",
+ "syscall.RTNLGRP_IPV4_IFADDR": "syscall",
+ "syscall.RTNLGRP_IPV4_MROUTE": "syscall",
+ "syscall.RTNLGRP_IPV4_ROUTE": "syscall",
+ "syscall.RTNLGRP_IPV4_RULE": "syscall",
+ "syscall.RTNLGRP_IPV6_IFADDR": "syscall",
+ "syscall.RTNLGRP_IPV6_IFINFO": "syscall",
+ "syscall.RTNLGRP_IPV6_MROUTE": "syscall",
+ "syscall.RTNLGRP_IPV6_PREFIX": "syscall",
+ "syscall.RTNLGRP_IPV6_ROUTE": "syscall",
+ "syscall.RTNLGRP_IPV6_RULE": "syscall",
+ "syscall.RTNLGRP_LINK": "syscall",
+ "syscall.RTNLGRP_ND_USEROPT": "syscall",
+ "syscall.RTNLGRP_NEIGH": "syscall",
+ "syscall.RTNLGRP_NONE": "syscall",
+ "syscall.RTNLGRP_NOTIFY": "syscall",
+ "syscall.RTNLGRP_TC": "syscall",
+ "syscall.RTN_ANYCAST": "syscall",
+ "syscall.RTN_BLACKHOLE": "syscall",
+ "syscall.RTN_BROADCAST": "syscall",
+ "syscall.RTN_LOCAL": "syscall",
+ "syscall.RTN_MAX": "syscall",
+ "syscall.RTN_MULTICAST": "syscall",
+ "syscall.RTN_NAT": "syscall",
+ "syscall.RTN_PROHIBIT": "syscall",
+ "syscall.RTN_THROW": "syscall",
+ "syscall.RTN_UNICAST": "syscall",
+ "syscall.RTN_UNREACHABLE": "syscall",
+ "syscall.RTN_UNSPEC": "syscall",
+ "syscall.RTN_XRESOLVE": "syscall",
+ "syscall.RTPROT_BIRD": "syscall",
+ "syscall.RTPROT_BOOT": "syscall",
+ "syscall.RTPROT_DHCP": "syscall",
+ "syscall.RTPROT_DNROUTED": "syscall",
+ "syscall.RTPROT_GATED": "syscall",
+ "syscall.RTPROT_KERNEL": "syscall",
+ "syscall.RTPROT_MRT": "syscall",
+ "syscall.RTPROT_NTK": "syscall",
+ "syscall.RTPROT_RA": "syscall",
+ "syscall.RTPROT_REDIRECT": "syscall",
+ "syscall.RTPROT_STATIC": "syscall",
+ "syscall.RTPROT_UNSPEC": "syscall",
+ "syscall.RTPROT_XORP": "syscall",
+ "syscall.RTPROT_ZEBRA": "syscall",
+ "syscall.RTV_EXPIRE": "syscall",
+ "syscall.RTV_HOPCOUNT": "syscall",
+ "syscall.RTV_MTU": "syscall",
+ "syscall.RTV_RPIPE": "syscall",
+ "syscall.RTV_RTT": "syscall",
+ "syscall.RTV_RTTVAR": "syscall",
+ "syscall.RTV_SPIPE": "syscall",
+ "syscall.RTV_SSTHRESH": "syscall",
+ "syscall.RTV_WEIGHT": "syscall",
+ "syscall.RT_CACHING_CONTEXT": "syscall",
+ "syscall.RT_CLASS_DEFAULT": "syscall",
+ "syscall.RT_CLASS_LOCAL": "syscall",
+ "syscall.RT_CLASS_MAIN": "syscall",
+ "syscall.RT_CLASS_MAX": "syscall",
+ "syscall.RT_CLASS_UNSPEC": "syscall",
+ "syscall.RT_DEFAULT_FIB": "syscall",
+ "syscall.RT_NORTREF": "syscall",
+ "syscall.RT_SCOPE_HOST": "syscall",
+ "syscall.RT_SCOPE_LINK": "syscall",
+ "syscall.RT_SCOPE_NOWHERE": "syscall",
+ "syscall.RT_SCOPE_SITE": "syscall",
+ "syscall.RT_SCOPE_UNIVERSE": "syscall",
+ "syscall.RT_TABLEID_MAX": "syscall",
+ "syscall.RT_TABLE_COMPAT": "syscall",
+ "syscall.RT_TABLE_DEFAULT": "syscall",
+ "syscall.RT_TABLE_LOCAL": "syscall",
+ "syscall.RT_TABLE_MAIN": "syscall",
+ "syscall.RT_TABLE_MAX": "syscall",
+ "syscall.RT_TABLE_UNSPEC": "syscall",
+ "syscall.RUSAGE_CHILDREN": "syscall",
+ "syscall.RUSAGE_SELF": "syscall",
+ "syscall.RUSAGE_THREAD": "syscall",
+ "syscall.Radvisory_t": "syscall",
+ "syscall.RawSockaddr": "syscall",
+ "syscall.RawSockaddrAny": "syscall",
+ "syscall.RawSockaddrDatalink": "syscall",
+ "syscall.RawSockaddrInet4": "syscall",
+ "syscall.RawSockaddrInet6": "syscall",
+ "syscall.RawSockaddrLinklayer": "syscall",
+ "syscall.RawSockaddrNetlink": "syscall",
+ "syscall.RawSockaddrUnix": "syscall",
+ "syscall.RawSyscall": "syscall",
+ "syscall.RawSyscall6": "syscall",
+ "syscall.Read": "syscall",
+ "syscall.ReadConsole": "syscall",
+ "syscall.ReadDirectoryChanges": "syscall",
+ "syscall.ReadDirent": "syscall",
+ "syscall.ReadFile": "syscall",
+ "syscall.Readlink": "syscall",
+ "syscall.Reboot": "syscall",
+ "syscall.Recvfrom": "syscall",
+ "syscall.Recvmsg": "syscall",
+ "syscall.RegCloseKey": "syscall",
+ "syscall.RegEnumKeyEx": "syscall",
+ "syscall.RegOpenKeyEx": "syscall",
+ "syscall.RegQueryInfoKey": "syscall",
+ "syscall.RegQueryValueEx": "syscall",
+ "syscall.RemoveDirectory": "syscall",
+ "syscall.Removexattr": "syscall",
+ "syscall.Rename": "syscall",
+ "syscall.Renameat": "syscall",
+ "syscall.Revoke": "syscall",
+ "syscall.Rlimit": "syscall",
+ "syscall.Rmdir": "syscall",
+ "syscall.RouteMessage": "syscall",
+ "syscall.RouteRIB": "syscall",
+ "syscall.RtAttr": "syscall",
+ "syscall.RtGenmsg": "syscall",
+ "syscall.RtMetrics": "syscall",
+ "syscall.RtMsg": "syscall",
+ "syscall.RtMsghdr": "syscall",
+ "syscall.RtNexthop": "syscall",
+ "syscall.Rusage": "syscall",
+ "syscall.SCM_BINTIME": "syscall",
+ "syscall.SCM_CREDENTIALS": "syscall",
+ "syscall.SCM_CREDS": "syscall",
+ "syscall.SCM_RIGHTS": "syscall",
+ "syscall.SCM_TIMESTAMP": "syscall",
+ "syscall.SCM_TIMESTAMPING": "syscall",
+ "syscall.SCM_TIMESTAMPNS": "syscall",
+ "syscall.SCM_TIMESTAMP_MONOTONIC": "syscall",
+ "syscall.SHUT_RD": "syscall",
+ "syscall.SHUT_RDWR": "syscall",
+ "syscall.SHUT_WR": "syscall",
+ "syscall.SID": "syscall",
+ "syscall.SIDAndAttributes": "syscall",
+ "syscall.SIGABRT": "syscall",
+ "syscall.SIGALRM": "syscall",
+ "syscall.SIGBUS": "syscall",
+ "syscall.SIGCHLD": "syscall",
+ "syscall.SIGCLD": "syscall",
+ "syscall.SIGCONT": "syscall",
+ "syscall.SIGEMT": "syscall",
+ "syscall.SIGFPE": "syscall",
+ "syscall.SIGHUP": "syscall",
+ "syscall.SIGILL": "syscall",
+ "syscall.SIGINFO": "syscall",
+ "syscall.SIGINT": "syscall",
+ "syscall.SIGIO": "syscall",
+ "syscall.SIGIOT": "syscall",
+ "syscall.SIGKILL": "syscall",
+ "syscall.SIGLIBRT": "syscall",
+ "syscall.SIGLWP": "syscall",
+ "syscall.SIGPIPE": "syscall",
+ "syscall.SIGPOLL": "syscall",
+ "syscall.SIGPROF": "syscall",
+ "syscall.SIGPWR": "syscall",
+ "syscall.SIGQUIT": "syscall",
+ "syscall.SIGSEGV": "syscall",
+ "syscall.SIGSTKFLT": "syscall",
+ "syscall.SIGSTOP": "syscall",
+ "syscall.SIGSYS": "syscall",
+ "syscall.SIGTERM": "syscall",
+ "syscall.SIGTHR": "syscall",
+ "syscall.SIGTRAP": "syscall",
+ "syscall.SIGTSTP": "syscall",
+ "syscall.SIGTTIN": "syscall",
+ "syscall.SIGTTOU": "syscall",
+ "syscall.SIGUNUSED": "syscall",
+ "syscall.SIGURG": "syscall",
+ "syscall.SIGUSR1": "syscall",
+ "syscall.SIGUSR2": "syscall",
+ "syscall.SIGVTALRM": "syscall",
+ "syscall.SIGWINCH": "syscall",
+ "syscall.SIGXCPU": "syscall",
+ "syscall.SIGXFSZ": "syscall",
+ "syscall.SIOCADDDLCI": "syscall",
+ "syscall.SIOCADDMULTI": "syscall",
+ "syscall.SIOCADDRT": "syscall",
+ "syscall.SIOCAIFADDR": "syscall",
+ "syscall.SIOCAIFGROUP": "syscall",
+ "syscall.SIOCALIFADDR": "syscall",
+ "syscall.SIOCARPIPLL": "syscall",
+ "syscall.SIOCATMARK": "syscall",
+ "syscall.SIOCAUTOADDR": "syscall",
+ "syscall.SIOCAUTONETMASK": "syscall",
+ "syscall.SIOCBRDGADD": "syscall",
+ "syscall.SIOCBRDGADDS": "syscall",
+ "syscall.SIOCBRDGARL": "syscall",
+ "syscall.SIOCBRDGDADDR": "syscall",
+ "syscall.SIOCBRDGDEL": "syscall",
+ "syscall.SIOCBRDGDELS": "syscall",
+ "syscall.SIOCBRDGFLUSH": "syscall",
+ "syscall.SIOCBRDGFRL": "syscall",
+ "syscall.SIOCBRDGGCACHE": "syscall",
+ "syscall.SIOCBRDGGFD": "syscall",
+ "syscall.SIOCBRDGGHT": "syscall",
+ "syscall.SIOCBRDGGIFFLGS": "syscall",
+ "syscall.SIOCBRDGGMA": "syscall",
+ "syscall.SIOCBRDGGPARAM": "syscall",
+ "syscall.SIOCBRDGGPRI": "syscall",
+ "syscall.SIOCBRDGGRL": "syscall",
+ "syscall.SIOCBRDGGSIFS": "syscall",
+ "syscall.SIOCBRDGGTO": "syscall",
+ "syscall.SIOCBRDGIFS": "syscall",
+ "syscall.SIOCBRDGRTS": "syscall",
+ "syscall.SIOCBRDGSADDR": "syscall",
+ "syscall.SIOCBRDGSCACHE": "syscall",
+ "syscall.SIOCBRDGSFD": "syscall",
+ "syscall.SIOCBRDGSHT": "syscall",
+ "syscall.SIOCBRDGSIFCOST": "syscall",
+ "syscall.SIOCBRDGSIFFLGS": "syscall",
+ "syscall.SIOCBRDGSIFPRIO": "syscall",
+ "syscall.SIOCBRDGSMA": "syscall",
+ "syscall.SIOCBRDGSPRI": "syscall",
+ "syscall.SIOCBRDGSPROTO": "syscall",
+ "syscall.SIOCBRDGSTO": "syscall",
+ "syscall.SIOCBRDGSTXHC": "syscall",
+ "syscall.SIOCDARP": "syscall",
+ "syscall.SIOCDELDLCI": "syscall",
+ "syscall.SIOCDELMULTI": "syscall",
+ "syscall.SIOCDELRT": "syscall",
+ "syscall.SIOCDEVPRIVATE": "syscall",
+ "syscall.SIOCDIFADDR": "syscall",
+ "syscall.SIOCDIFGROUP": "syscall",
+ "syscall.SIOCDIFPHYADDR": "syscall",
+ "syscall.SIOCDLIFADDR": "syscall",
+ "syscall.SIOCDRARP": "syscall",
+ "syscall.SIOCGARP": "syscall",
+ "syscall.SIOCGDRVSPEC": "syscall",
+ "syscall.SIOCGETKALIVE": "syscall",
+ "syscall.SIOCGETLABEL": "syscall",
+ "syscall.SIOCGETPFLOW": "syscall",
+ "syscall.SIOCGETPFSYNC": "syscall",
+ "syscall.SIOCGETSGCNT": "syscall",
+ "syscall.SIOCGETVIFCNT": "syscall",
+ "syscall.SIOCGETVLAN": "syscall",
+ "syscall.SIOCGHIWAT": "syscall",
+ "syscall.SIOCGIFADDR": "syscall",
+ "syscall.SIOCGIFADDRPREF": "syscall",
+ "syscall.SIOCGIFALIAS": "syscall",
+ "syscall.SIOCGIFALTMTU": "syscall",
+ "syscall.SIOCGIFASYNCMAP": "syscall",
+ "syscall.SIOCGIFBOND": "syscall",
+ "syscall.SIOCGIFBR": "syscall",
+ "syscall.SIOCGIFBRDADDR": "syscall",
+ "syscall.SIOCGIFCAP": "syscall",
+ "syscall.SIOCGIFCONF": "syscall",
+ "syscall.SIOCGIFCOUNT": "syscall",
+ "syscall.SIOCGIFDATA": "syscall",
+ "syscall.SIOCGIFDESCR": "syscall",
+ "syscall.SIOCGIFDEVMTU": "syscall",
+ "syscall.SIOCGIFDLT": "syscall",
+ "syscall.SIOCGIFDSTADDR": "syscall",
+ "syscall.SIOCGIFENCAP": "syscall",
+ "syscall.SIOCGIFFIB": "syscall",
+ "syscall.SIOCGIFFLAGS": "syscall",
+ "syscall.SIOCGIFGATTR": "syscall",
+ "syscall.SIOCGIFGENERIC": "syscall",
+ "syscall.SIOCGIFGMEMB": "syscall",
+ "syscall.SIOCGIFGROUP": "syscall",
+ "syscall.SIOCGIFHARDMTU": "syscall",
+ "syscall.SIOCGIFHWADDR": "syscall",
+ "syscall.SIOCGIFINDEX": "syscall",
+ "syscall.SIOCGIFKPI": "syscall",
+ "syscall.SIOCGIFMAC": "syscall",
+ "syscall.SIOCGIFMAP": "syscall",
+ "syscall.SIOCGIFMEDIA": "syscall",
+ "syscall.SIOCGIFMEM": "syscall",
+ "syscall.SIOCGIFMETRIC": "syscall",
+ "syscall.SIOCGIFMTU": "syscall",
+ "syscall.SIOCGIFNAME": "syscall",
+ "syscall.SIOCGIFNETMASK": "syscall",
+ "syscall.SIOCGIFPDSTADDR": "syscall",
+ "syscall.SIOCGIFPFLAGS": "syscall",
+ "syscall.SIOCGIFPHYS": "syscall",
+ "syscall.SIOCGIFPRIORITY": "syscall",
+ "syscall.SIOCGIFPSRCADDR": "syscall",
+ "syscall.SIOCGIFRDOMAIN": "syscall",
+ "syscall.SIOCGIFRTLABEL": "syscall",
+ "syscall.SIOCGIFSLAVE": "syscall",
+ "syscall.SIOCGIFSTATUS": "syscall",
+ "syscall.SIOCGIFTIMESLOT": "syscall",
+ "syscall.SIOCGIFTXQLEN": "syscall",
+ "syscall.SIOCGIFVLAN": "syscall",
+ "syscall.SIOCGIFWAKEFLAGS": "syscall",
+ "syscall.SIOCGIFXFLAGS": "syscall",
+ "syscall.SIOCGLIFADDR": "syscall",
+ "syscall.SIOCGLIFPHYADDR": "syscall",
+ "syscall.SIOCGLIFPHYRTABLE": "syscall",
+ "syscall.SIOCGLIFPHYTTL": "syscall",
+ "syscall.SIOCGLINKSTR": "syscall",
+ "syscall.SIOCGLOWAT": "syscall",
+ "syscall.SIOCGPGRP": "syscall",
+ "syscall.SIOCGPRIVATE_0": "syscall",
+ "syscall.SIOCGPRIVATE_1": "syscall",
+ "syscall.SIOCGRARP": "syscall",
+ "syscall.SIOCGSPPPPARAMS": "syscall",
+ "syscall.SIOCGSTAMP": "syscall",
+ "syscall.SIOCGSTAMPNS": "syscall",
+ "syscall.SIOCGVH": "syscall",
+ "syscall.SIOCGVNETID": "syscall",
+ "syscall.SIOCIFCREATE": "syscall",
+ "syscall.SIOCIFCREATE2": "syscall",
+ "syscall.SIOCIFDESTROY": "syscall",
+ "syscall.SIOCIFGCLONERS": "syscall",
+ "syscall.SIOCINITIFADDR": "syscall",
+ "syscall.SIOCPROTOPRIVATE": "syscall",
+ "syscall.SIOCRSLVMULTI": "syscall",
+ "syscall.SIOCRTMSG": "syscall",
+ "syscall.SIOCSARP": "syscall",
+ "syscall.SIOCSDRVSPEC": "syscall",
+ "syscall.SIOCSETKALIVE": "syscall",
+ "syscall.SIOCSETLABEL": "syscall",
+ "syscall.SIOCSETPFLOW": "syscall",
+ "syscall.SIOCSETPFSYNC": "syscall",
+ "syscall.SIOCSETVLAN": "syscall",
+ "syscall.SIOCSHIWAT": "syscall",
+ "syscall.SIOCSIFADDR": "syscall",
+ "syscall.SIOCSIFADDRPREF": "syscall",
+ "syscall.SIOCSIFALTMTU": "syscall",
+ "syscall.SIOCSIFASYNCMAP": "syscall",
+ "syscall.SIOCSIFBOND": "syscall",
+ "syscall.SIOCSIFBR": "syscall",
+ "syscall.SIOCSIFBRDADDR": "syscall",
+ "syscall.SIOCSIFCAP": "syscall",
+ "syscall.SIOCSIFDESCR": "syscall",
+ "syscall.SIOCSIFDSTADDR": "syscall",
+ "syscall.SIOCSIFENCAP": "syscall",
+ "syscall.SIOCSIFFIB": "syscall",
+ "syscall.SIOCSIFFLAGS": "syscall",
+ "syscall.SIOCSIFGATTR": "syscall",
+ "syscall.SIOCSIFGENERIC": "syscall",
+ "syscall.SIOCSIFHWADDR": "syscall",
+ "syscall.SIOCSIFHWBROADCAST": "syscall",
+ "syscall.SIOCSIFKPI": "syscall",
+ "syscall.SIOCSIFLINK": "syscall",
+ "syscall.SIOCSIFLLADDR": "syscall",
+ "syscall.SIOCSIFMAC": "syscall",
+ "syscall.SIOCSIFMAP": "syscall",
+ "syscall.SIOCSIFMEDIA": "syscall",
+ "syscall.SIOCSIFMEM": "syscall",
+ "syscall.SIOCSIFMETRIC": "syscall",
+ "syscall.SIOCSIFMTU": "syscall",
+ "syscall.SIOCSIFNAME": "syscall",
+ "syscall.SIOCSIFNETMASK": "syscall",
+ "syscall.SIOCSIFPFLAGS": "syscall",
+ "syscall.SIOCSIFPHYADDR": "syscall",
+ "syscall.SIOCSIFPHYS": "syscall",
+ "syscall.SIOCSIFPRIORITY": "syscall",
+ "syscall.SIOCSIFRDOMAIN": "syscall",
+ "syscall.SIOCSIFRTLABEL": "syscall",
+ "syscall.SIOCSIFRVNET": "syscall",
+ "syscall.SIOCSIFSLAVE": "syscall",
+ "syscall.SIOCSIFTIMESLOT": "syscall",
+ "syscall.SIOCSIFTXQLEN": "syscall",
+ "syscall.SIOCSIFVLAN": "syscall",
+ "syscall.SIOCSIFVNET": "syscall",
+ "syscall.SIOCSIFXFLAGS": "syscall",
+ "syscall.SIOCSLIFPHYADDR": "syscall",
+ "syscall.SIOCSLIFPHYRTABLE": "syscall",
+ "syscall.SIOCSLIFPHYTTL": "syscall",
+ "syscall.SIOCSLINKSTR": "syscall",
+ "syscall.SIOCSLOWAT": "syscall",
+ "syscall.SIOCSPGRP": "syscall",
+ "syscall.SIOCSRARP": "syscall",
+ "syscall.SIOCSSPPPPARAMS": "syscall",
+ "syscall.SIOCSVH": "syscall",
+ "syscall.SIOCSVNETID": "syscall",
+ "syscall.SIOCZIFDATA": "syscall",
+ "syscall.SIO_GET_EXTENSION_FUNCTION_POINTER": "syscall",
+ "syscall.SIO_GET_INTERFACE_LIST": "syscall",
+ "syscall.SIO_KEEPALIVE_VALS": "syscall",
+ "syscall.SIO_UDP_CONNRESET": "syscall",
+ "syscall.SOCK_CLOEXEC": "syscall",
+ "syscall.SOCK_DCCP": "syscall",
+ "syscall.SOCK_DGRAM": "syscall",
+ "syscall.SOCK_FLAGS_MASK": "syscall",
+ "syscall.SOCK_MAXADDRLEN": "syscall",
+ "syscall.SOCK_NONBLOCK": "syscall",
+ "syscall.SOCK_NOSIGPIPE": "syscall",
+ "syscall.SOCK_PACKET": "syscall",
+ "syscall.SOCK_RAW": "syscall",
+ "syscall.SOCK_RDM": "syscall",
+ "syscall.SOCK_SEQPACKET": "syscall",
+ "syscall.SOCK_STREAM": "syscall",
+ "syscall.SOL_AAL": "syscall",
+ "syscall.SOL_ATM": "syscall",
+ "syscall.SOL_DECNET": "syscall",
+ "syscall.SOL_ICMPV6": "syscall",
+ "syscall.SOL_IP": "syscall",
+ "syscall.SOL_IPV6": "syscall",
+ "syscall.SOL_IRDA": "syscall",
+ "syscall.SOL_PACKET": "syscall",
+ "syscall.SOL_RAW": "syscall",
+ "syscall.SOL_SOCKET": "syscall",
+ "syscall.SOL_TCP": "syscall",
+ "syscall.SOL_X25": "syscall",
+ "syscall.SOMAXCONN": "syscall",
+ "syscall.SO_ACCEPTCONN": "syscall",
+ "syscall.SO_ACCEPTFILTER": "syscall",
+ "syscall.SO_ATTACH_FILTER": "syscall",
+ "syscall.SO_BINDANY": "syscall",
+ "syscall.SO_BINDTODEVICE": "syscall",
+ "syscall.SO_BINTIME": "syscall",
+ "syscall.SO_BROADCAST": "syscall",
+ "syscall.SO_BSDCOMPAT": "syscall",
+ "syscall.SO_DEBUG": "syscall",
+ "syscall.SO_DETACH_FILTER": "syscall",
+ "syscall.SO_DOMAIN": "syscall",
+ "syscall.SO_DONTROUTE": "syscall",
+ "syscall.SO_DONTTRUNC": "syscall",
+ "syscall.SO_ERROR": "syscall",
+ "syscall.SO_KEEPALIVE": "syscall",
+ "syscall.SO_LABEL": "syscall",
+ "syscall.SO_LINGER": "syscall",
+ "syscall.SO_LINGER_SEC": "syscall",
+ "syscall.SO_LISTENINCQLEN": "syscall",
+ "syscall.SO_LISTENQLEN": "syscall",
+ "syscall.SO_LISTENQLIMIT": "syscall",
+ "syscall.SO_MARK": "syscall",
+ "syscall.SO_NETPROC": "syscall",
+ "syscall.SO_NKE": "syscall",
+ "syscall.SO_NOADDRERR": "syscall",
+ "syscall.SO_NOHEADER": "syscall",
+ "syscall.SO_NOSIGPIPE": "syscall",
+ "syscall.SO_NOTIFYCONFLICT": "syscall",
+ "syscall.SO_NO_CHECK": "syscall",
+ "syscall.SO_NO_DDP": "syscall",
+ "syscall.SO_NO_OFFLOAD": "syscall",
+ "syscall.SO_NP_EXTENSIONS": "syscall",
+ "syscall.SO_NREAD": "syscall",
+ "syscall.SO_NWRITE": "syscall",
+ "syscall.SO_OOBINLINE": "syscall",
+ "syscall.SO_OVERFLOWED": "syscall",
+ "syscall.SO_PASSCRED": "syscall",
+ "syscall.SO_PASSSEC": "syscall",
+ "syscall.SO_PEERCRED": "syscall",
+ "syscall.SO_PEERLABEL": "syscall",
+ "syscall.SO_PEERNAME": "syscall",
+ "syscall.SO_PEERSEC": "syscall",
+ "syscall.SO_PRIORITY": "syscall",
+ "syscall.SO_PROTOCOL": "syscall",
+ "syscall.SO_PROTOTYPE": "syscall",
+ "syscall.SO_RANDOMPORT": "syscall",
+ "syscall.SO_RCVBUF": "syscall",
+ "syscall.SO_RCVBUFFORCE": "syscall",
+ "syscall.SO_RCVLOWAT": "syscall",
+ "syscall.SO_RCVTIMEO": "syscall",
+ "syscall.SO_RESTRICTIONS": "syscall",
+ "syscall.SO_RESTRICT_DENYIN": "syscall",
+ "syscall.SO_RESTRICT_DENYOUT": "syscall",
+ "syscall.SO_RESTRICT_DENYSET": "syscall",
+ "syscall.SO_REUSEADDR": "syscall",
+ "syscall.SO_REUSEPORT": "syscall",
+ "syscall.SO_REUSESHAREUID": "syscall",
+ "syscall.SO_RTABLE": "syscall",
+ "syscall.SO_RXQ_OVFL": "syscall",
+ "syscall.SO_SECURITY_AUTHENTICATION": "syscall",
+ "syscall.SO_SECURITY_ENCRYPTION_NETWORK": "syscall",
+ "syscall.SO_SECURITY_ENCRYPTION_TRANSPORT": "syscall",
+ "syscall.SO_SETFIB": "syscall",
+ "syscall.SO_SNDBUF": "syscall",
+ "syscall.SO_SNDBUFFORCE": "syscall",
+ "syscall.SO_SNDLOWAT": "syscall",
+ "syscall.SO_SNDTIMEO": "syscall",
+ "syscall.SO_SPLICE": "syscall",
+ "syscall.SO_TIMESTAMP": "syscall",
+ "syscall.SO_TIMESTAMPING": "syscall",
+ "syscall.SO_TIMESTAMPNS": "syscall",
+ "syscall.SO_TIMESTAMP_MONOTONIC": "syscall",
+ "syscall.SO_TYPE": "syscall",
+ "syscall.SO_UPCALLCLOSEWAIT": "syscall",
+ "syscall.SO_UPDATE_ACCEPT_CONTEXT": "syscall",
+ "syscall.SO_UPDATE_CONNECT_CONTEXT": "syscall",
+ "syscall.SO_USELOOPBACK": "syscall",
+ "syscall.SO_USER_COOKIE": "syscall",
+ "syscall.SO_VENDOR": "syscall",
+ "syscall.SO_WANTMORE": "syscall",
+ "syscall.SO_WANTOOBFLAG": "syscall",
+ "syscall.SSLExtraCertChainPolicyPara": "syscall",
+ "syscall.STANDARD_RIGHTS_ALL": "syscall",
+ "syscall.STANDARD_RIGHTS_EXECUTE": "syscall",
+ "syscall.STANDARD_RIGHTS_READ": "syscall",
+ "syscall.STANDARD_RIGHTS_REQUIRED": "syscall",
+ "syscall.STANDARD_RIGHTS_WRITE": "syscall",
+ "syscall.STARTF_USESHOWWINDOW": "syscall",
+ "syscall.STARTF_USESTDHANDLES": "syscall",
+ "syscall.STD_ERROR_HANDLE": "syscall",
+ "syscall.STD_INPUT_HANDLE": "syscall",
+ "syscall.STD_OUTPUT_HANDLE": "syscall",
+ "syscall.SUBLANG_ENGLISH_US": "syscall",
+ "syscall.SW_FORCEMINIMIZE": "syscall",
+ "syscall.SW_HIDE": "syscall",
+ "syscall.SW_MAXIMIZE": "syscall",
+ "syscall.SW_MINIMIZE": "syscall",
+ "syscall.SW_NORMAL": "syscall",
+ "syscall.SW_RESTORE": "syscall",
+ "syscall.SW_SHOW": "syscall",
+ "syscall.SW_SHOWDEFAULT": "syscall",
+ "syscall.SW_SHOWMAXIMIZED": "syscall",
+ "syscall.SW_SHOWMINIMIZED": "syscall",
+ "syscall.SW_SHOWMINNOACTIVE": "syscall",
+ "syscall.SW_SHOWNA": "syscall",
+ "syscall.SW_SHOWNOACTIVATE": "syscall",
+ "syscall.SW_SHOWNORMAL": "syscall",
+ "syscall.SYMBOLIC_LINK_FLAG_DIRECTORY": "syscall",
+ "syscall.SYNCHRONIZE": "syscall",
+ "syscall.SYSCTL_VERSION": "syscall",
+ "syscall.SYSCTL_VERS_0": "syscall",
+ "syscall.SYSCTL_VERS_1": "syscall",
+ "syscall.SYSCTL_VERS_MASK": "syscall",
+ "syscall.SYS_ABORT2": "syscall",
+ "syscall.SYS_ACCEPT": "syscall",
+ "syscall.SYS_ACCEPT4": "syscall",
+ "syscall.SYS_ACCEPT_NOCANCEL": "syscall",
+ "syscall.SYS_ACCESS": "syscall",
+ "syscall.SYS_ACCESS_EXTENDED": "syscall",
+ "syscall.SYS_ACCT": "syscall",
+ "syscall.SYS_ADD_KEY": "syscall",
+ "syscall.SYS_ADD_PROFIL": "syscall",
+ "syscall.SYS_ADJFREQ": "syscall",
+ "syscall.SYS_ADJTIME": "syscall",
+ "syscall.SYS_ADJTIMEX": "syscall",
+ "syscall.SYS_AFS_SYSCALL": "syscall",
+ "syscall.SYS_AIO_CANCEL": "syscall",
+ "syscall.SYS_AIO_ERROR": "syscall",
+ "syscall.SYS_AIO_FSYNC": "syscall",
+ "syscall.SYS_AIO_READ": "syscall",
+ "syscall.SYS_AIO_RETURN": "syscall",
+ "syscall.SYS_AIO_SUSPEND": "syscall",
+ "syscall.SYS_AIO_SUSPEND_NOCANCEL": "syscall",
+ "syscall.SYS_AIO_WRITE": "syscall",
+ "syscall.SYS_ALARM": "syscall",
+ "syscall.SYS_ARCH_PRCTL": "syscall",
+ "syscall.SYS_ARM_FADVISE64_64": "syscall",
+ "syscall.SYS_ARM_SYNC_FILE_RANGE": "syscall",
+ "syscall.SYS_ATGETMSG": "syscall",
+ "syscall.SYS_ATPGETREQ": "syscall",
+ "syscall.SYS_ATPGETRSP": "syscall",
+ "syscall.SYS_ATPSNDREQ": "syscall",
+ "syscall.SYS_ATPSNDRSP": "syscall",
+ "syscall.SYS_ATPUTMSG": "syscall",
+ "syscall.SYS_ATSOCKET": "syscall",
+ "syscall.SYS_AUDIT": "syscall",
+ "syscall.SYS_AUDITCTL": "syscall",
+ "syscall.SYS_AUDITON": "syscall",
+ "syscall.SYS_AUDIT_SESSION_JOIN": "syscall",
+ "syscall.SYS_AUDIT_SESSION_PORT": "syscall",
+ "syscall.SYS_AUDIT_SESSION_SELF": "syscall",
+ "syscall.SYS_BDFLUSH": "syscall",
+ "syscall.SYS_BIND": "syscall",
+ "syscall.SYS_BINDAT": "syscall",
+ "syscall.SYS_BREAK": "syscall",
+ "syscall.SYS_BRK": "syscall",
+ "syscall.SYS_BSDTHREAD_CREATE": "syscall",
+ "syscall.SYS_BSDTHREAD_REGISTER": "syscall",
+ "syscall.SYS_BSDTHREAD_TERMINATE": "syscall",
+ "syscall.SYS_CAPGET": "syscall",
+ "syscall.SYS_CAPSET": "syscall",
+ "syscall.SYS_CAP_ENTER": "syscall",
+ "syscall.SYS_CAP_FCNTLS_GET": "syscall",
+ "syscall.SYS_CAP_FCNTLS_LIMIT": "syscall",
+ "syscall.SYS_CAP_GETMODE": "syscall",
+ "syscall.SYS_CAP_GETRIGHTS": "syscall",
+ "syscall.SYS_CAP_IOCTLS_GET": "syscall",
+ "syscall.SYS_CAP_IOCTLS_LIMIT": "syscall",
+ "syscall.SYS_CAP_NEW": "syscall",
+ "syscall.SYS_CAP_RIGHTS_GET": "syscall",
+ "syscall.SYS_CAP_RIGHTS_LIMIT": "syscall",
+ "syscall.SYS_CHDIR": "syscall",
+ "syscall.SYS_CHFLAGS": "syscall",
+ "syscall.SYS_CHFLAGSAT": "syscall",
+ "syscall.SYS_CHMOD": "syscall",
+ "syscall.SYS_CHMOD_EXTENDED": "syscall",
+ "syscall.SYS_CHOWN": "syscall",
+ "syscall.SYS_CHOWN32": "syscall",
+ "syscall.SYS_CHROOT": "syscall",
+ "syscall.SYS_CHUD": "syscall",
+ "syscall.SYS_CLOCK_ADJTIME": "syscall",
+ "syscall.SYS_CLOCK_GETCPUCLOCKID2": "syscall",
+ "syscall.SYS_CLOCK_GETRES": "syscall",
+ "syscall.SYS_CLOCK_GETTIME": "syscall",
+ "syscall.SYS_CLOCK_NANOSLEEP": "syscall",
+ "syscall.SYS_CLOCK_SETTIME": "syscall",
+ "syscall.SYS_CLONE": "syscall",
+ "syscall.SYS_CLOSE": "syscall",
+ "syscall.SYS_CLOSEFROM": "syscall",
+ "syscall.SYS_CLOSE_NOCANCEL": "syscall",
+ "syscall.SYS_CONNECT": "syscall",
+ "syscall.SYS_CONNECTAT": "syscall",
+ "syscall.SYS_CONNECT_NOCANCEL": "syscall",
+ "syscall.SYS_COPYFILE": "syscall",
+ "syscall.SYS_CPUSET": "syscall",
+ "syscall.SYS_CPUSET_GETAFFINITY": "syscall",
+ "syscall.SYS_CPUSET_GETID": "syscall",
+ "syscall.SYS_CPUSET_SETAFFINITY": "syscall",
+ "syscall.SYS_CPUSET_SETID": "syscall",
+ "syscall.SYS_CREAT": "syscall",
+ "syscall.SYS_CREATE_MODULE": "syscall",
+ "syscall.SYS_CSOPS": "syscall",
+ "syscall.SYS_DELETE": "syscall",
+ "syscall.SYS_DELETE_MODULE": "syscall",
+ "syscall.SYS_DUP": "syscall",
+ "syscall.SYS_DUP2": "syscall",
+ "syscall.SYS_DUP3": "syscall",
+ "syscall.SYS_EACCESS": "syscall",
+ "syscall.SYS_EPOLL_CREATE": "syscall",
+ "syscall.SYS_EPOLL_CREATE1": "syscall",
+ "syscall.SYS_EPOLL_CTL": "syscall",
+ "syscall.SYS_EPOLL_CTL_OLD": "syscall",
+ "syscall.SYS_EPOLL_PWAIT": "syscall",
+ "syscall.SYS_EPOLL_WAIT": "syscall",
+ "syscall.SYS_EPOLL_WAIT_OLD": "syscall",
+ "syscall.SYS_EVENTFD": "syscall",
+ "syscall.SYS_EVENTFD2": "syscall",
+ "syscall.SYS_EXCHANGEDATA": "syscall",
+ "syscall.SYS_EXECVE": "syscall",
+ "syscall.SYS_EXIT": "syscall",
+ "syscall.SYS_EXIT_GROUP": "syscall",
+ "syscall.SYS_EXTATTRCTL": "syscall",
+ "syscall.SYS_EXTATTR_DELETE_FD": "syscall",
+ "syscall.SYS_EXTATTR_DELETE_FILE": "syscall",
+ "syscall.SYS_EXTATTR_DELETE_LINK": "syscall",
+ "syscall.SYS_EXTATTR_GET_FD": "syscall",
+ "syscall.SYS_EXTATTR_GET_FILE": "syscall",
+ "syscall.SYS_EXTATTR_GET_LINK": "syscall",
+ "syscall.SYS_EXTATTR_LIST_FD": "syscall",
+ "syscall.SYS_EXTATTR_LIST_FILE": "syscall",
+ "syscall.SYS_EXTATTR_LIST_LINK": "syscall",
+ "syscall.SYS_EXTATTR_SET_FD": "syscall",
+ "syscall.SYS_EXTATTR_SET_FILE": "syscall",
+ "syscall.SYS_EXTATTR_SET_LINK": "syscall",
+ "syscall.SYS_FACCESSAT": "syscall",
+ "syscall.SYS_FADVISE64": "syscall",
+ "syscall.SYS_FADVISE64_64": "syscall",
+ "syscall.SYS_FALLOCATE": "syscall",
+ "syscall.SYS_FANOTIFY_INIT": "syscall",
+ "syscall.SYS_FANOTIFY_MARK": "syscall",
+ "syscall.SYS_FCHDIR": "syscall",
+ "syscall.SYS_FCHFLAGS": "syscall",
+ "syscall.SYS_FCHMOD": "syscall",
+ "syscall.SYS_FCHMODAT": "syscall",
+ "syscall.SYS_FCHMOD_EXTENDED": "syscall",
+ "syscall.SYS_FCHOWN": "syscall",
+ "syscall.SYS_FCHOWN32": "syscall",
+ "syscall.SYS_FCHOWNAT": "syscall",
+ "syscall.SYS_FCHROOT": "syscall",
+ "syscall.SYS_FCNTL": "syscall",
+ "syscall.SYS_FCNTL64": "syscall",
+ "syscall.SYS_FCNTL_NOCANCEL": "syscall",
+ "syscall.SYS_FDATASYNC": "syscall",
+ "syscall.SYS_FEXECVE": "syscall",
+ "syscall.SYS_FFCLOCK_GETCOUNTER": "syscall",
+ "syscall.SYS_FFCLOCK_GETESTIMATE": "syscall",
+ "syscall.SYS_FFCLOCK_SETESTIMATE": "syscall",
+ "syscall.SYS_FFSCTL": "syscall",
+ "syscall.SYS_FGETATTRLIST": "syscall",
+ "syscall.SYS_FGETXATTR": "syscall",
+ "syscall.SYS_FHOPEN": "syscall",
+ "syscall.SYS_FHSTAT": "syscall",
+ "syscall.SYS_FHSTATFS": "syscall",
+ "syscall.SYS_FILEPORT_MAKEFD": "syscall",
+ "syscall.SYS_FILEPORT_MAKEPORT": "syscall",
+ "syscall.SYS_FKTRACE": "syscall",
+ "syscall.SYS_FLISTXATTR": "syscall",
+ "syscall.SYS_FLOCK": "syscall",
+ "syscall.SYS_FORK": "syscall",
+ "syscall.SYS_FPATHCONF": "syscall",
+ "syscall.SYS_FREEBSD6_FTRUNCATE": "syscall",
+ "syscall.SYS_FREEBSD6_LSEEK": "syscall",
+ "syscall.SYS_FREEBSD6_MMAP": "syscall",
+ "syscall.SYS_FREEBSD6_PREAD": "syscall",
+ "syscall.SYS_FREEBSD6_PWRITE": "syscall",
+ "syscall.SYS_FREEBSD6_TRUNCATE": "syscall",
+ "syscall.SYS_FREMOVEXATTR": "syscall",
+ "syscall.SYS_FSCTL": "syscall",
+ "syscall.SYS_FSETATTRLIST": "syscall",
+ "syscall.SYS_FSETXATTR": "syscall",
+ "syscall.SYS_FSGETPATH": "syscall",
+ "syscall.SYS_FSTAT": "syscall",
+ "syscall.SYS_FSTAT64": "syscall",
+ "syscall.SYS_FSTAT64_EXTENDED": "syscall",
+ "syscall.SYS_FSTATAT": "syscall",
+ "syscall.SYS_FSTATAT64": "syscall",
+ "syscall.SYS_FSTATFS": "syscall",
+ "syscall.SYS_FSTATFS64": "syscall",
+ "syscall.SYS_FSTATV": "syscall",
+ "syscall.SYS_FSTATVFS1": "syscall",
+ "syscall.SYS_FSTAT_EXTENDED": "syscall",
+ "syscall.SYS_FSYNC": "syscall",
+ "syscall.SYS_FSYNC_NOCANCEL": "syscall",
+ "syscall.SYS_FSYNC_RANGE": "syscall",
+ "syscall.SYS_FTIME": "syscall",
+ "syscall.SYS_FTRUNCATE": "syscall",
+ "syscall.SYS_FTRUNCATE64": "syscall",
+ "syscall.SYS_FUTEX": "syscall",
+ "syscall.SYS_FUTIMENS": "syscall",
+ "syscall.SYS_FUTIMES": "syscall",
+ "syscall.SYS_FUTIMESAT": "syscall",
+ "syscall.SYS_GETATTRLIST": "syscall",
+ "syscall.SYS_GETAUDIT": "syscall",
+ "syscall.SYS_GETAUDIT_ADDR": "syscall",
+ "syscall.SYS_GETAUID": "syscall",
+ "syscall.SYS_GETCONTEXT": "syscall",
+ "syscall.SYS_GETCPU": "syscall",
+ "syscall.SYS_GETCWD": "syscall",
+ "syscall.SYS_GETDENTS": "syscall",
+ "syscall.SYS_GETDENTS64": "syscall",
+ "syscall.SYS_GETDIRENTRIES": "syscall",
+ "syscall.SYS_GETDIRENTRIES64": "syscall",
+ "syscall.SYS_GETDIRENTRIESATTR": "syscall",
+ "syscall.SYS_GETDTABLECOUNT": "syscall",
+ "syscall.SYS_GETDTABLESIZE": "syscall",
+ "syscall.SYS_GETEGID": "syscall",
+ "syscall.SYS_GETEGID32": "syscall",
+ "syscall.SYS_GETEUID": "syscall",
+ "syscall.SYS_GETEUID32": "syscall",
+ "syscall.SYS_GETFH": "syscall",
+ "syscall.SYS_GETFSSTAT": "syscall",
+ "syscall.SYS_GETFSSTAT64": "syscall",
+ "syscall.SYS_GETGID": "syscall",
+ "syscall.SYS_GETGID32": "syscall",
+ "syscall.SYS_GETGROUPS": "syscall",
+ "syscall.SYS_GETGROUPS32": "syscall",
+ "syscall.SYS_GETHOSTUUID": "syscall",
+ "syscall.SYS_GETITIMER": "syscall",
+ "syscall.SYS_GETLCID": "syscall",
+ "syscall.SYS_GETLOGIN": "syscall",
+ "syscall.SYS_GETLOGINCLASS": "syscall",
+ "syscall.SYS_GETPEERNAME": "syscall",
+ "syscall.SYS_GETPGID": "syscall",
+ "syscall.SYS_GETPGRP": "syscall",
+ "syscall.SYS_GETPID": "syscall",
+ "syscall.SYS_GETPMSG": "syscall",
+ "syscall.SYS_GETPPID": "syscall",
+ "syscall.SYS_GETPRIORITY": "syscall",
+ "syscall.SYS_GETRESGID": "syscall",
+ "syscall.SYS_GETRESGID32": "syscall",
+ "syscall.SYS_GETRESUID": "syscall",
+ "syscall.SYS_GETRESUID32": "syscall",
+ "syscall.SYS_GETRLIMIT": "syscall",
+ "syscall.SYS_GETRTABLE": "syscall",
+ "syscall.SYS_GETRUSAGE": "syscall",
+ "syscall.SYS_GETSGROUPS": "syscall",
+ "syscall.SYS_GETSID": "syscall",
+ "syscall.SYS_GETSOCKNAME": "syscall",
+ "syscall.SYS_GETSOCKOPT": "syscall",
+ "syscall.SYS_GETTHRID": "syscall",
+ "syscall.SYS_GETTID": "syscall",
+ "syscall.SYS_GETTIMEOFDAY": "syscall",
+ "syscall.SYS_GETUID": "syscall",
+ "syscall.SYS_GETUID32": "syscall",
+ "syscall.SYS_GETVFSSTAT": "syscall",
+ "syscall.SYS_GETWGROUPS": "syscall",
+ "syscall.SYS_GETXATTR": "syscall",
+ "syscall.SYS_GET_KERNEL_SYMS": "syscall",
+ "syscall.SYS_GET_MEMPOLICY": "syscall",
+ "syscall.SYS_GET_ROBUST_LIST": "syscall",
+ "syscall.SYS_GET_THREAD_AREA": "syscall",
+ "syscall.SYS_GTTY": "syscall",
+ "syscall.SYS_IDENTITYSVC": "syscall",
+ "syscall.SYS_IDLE": "syscall",
+ "syscall.SYS_INITGROUPS": "syscall",
+ "syscall.SYS_INIT_MODULE": "syscall",
+ "syscall.SYS_INOTIFY_ADD_WATCH": "syscall",
+ "syscall.SYS_INOTIFY_INIT": "syscall",
+ "syscall.SYS_INOTIFY_INIT1": "syscall",
+ "syscall.SYS_INOTIFY_RM_WATCH": "syscall",
+ "syscall.SYS_IOCTL": "syscall",
+ "syscall.SYS_IOPERM": "syscall",
+ "syscall.SYS_IOPL": "syscall",
+ "syscall.SYS_IOPOLICYSYS": "syscall",
+ "syscall.SYS_IOPRIO_GET": "syscall",
+ "syscall.SYS_IOPRIO_SET": "syscall",
+ "syscall.SYS_IO_CANCEL": "syscall",
+ "syscall.SYS_IO_DESTROY": "syscall",
+ "syscall.SYS_IO_GETEVENTS": "syscall",
+ "syscall.SYS_IO_SETUP": "syscall",
+ "syscall.SYS_IO_SUBMIT": "syscall",
+ "syscall.SYS_IPC": "syscall",
+ "syscall.SYS_ISSETUGID": "syscall",
+ "syscall.SYS_JAIL": "syscall",
+ "syscall.SYS_JAIL_ATTACH": "syscall",
+ "syscall.SYS_JAIL_GET": "syscall",
+ "syscall.SYS_JAIL_REMOVE": "syscall",
+ "syscall.SYS_JAIL_SET": "syscall",
+ "syscall.SYS_KDEBUG_TRACE": "syscall",
+ "syscall.SYS_KENV": "syscall",
+ "syscall.SYS_KEVENT": "syscall",
+ "syscall.SYS_KEVENT64": "syscall",
+ "syscall.SYS_KEXEC_LOAD": "syscall",
+ "syscall.SYS_KEYCTL": "syscall",
+ "syscall.SYS_KILL": "syscall",
+ "syscall.SYS_KLDFIND": "syscall",
+ "syscall.SYS_KLDFIRSTMOD": "syscall",
+ "syscall.SYS_KLDLOAD": "syscall",
+ "syscall.SYS_KLDNEXT": "syscall",
+ "syscall.SYS_KLDSTAT": "syscall",
+ "syscall.SYS_KLDSYM": "syscall",
+ "syscall.SYS_KLDUNLOAD": "syscall",
+ "syscall.SYS_KLDUNLOADF": "syscall",
+ "syscall.SYS_KQUEUE": "syscall",
+ "syscall.SYS_KQUEUE1": "syscall",
+ "syscall.SYS_KTIMER_CREATE": "syscall",
+ "syscall.SYS_KTIMER_DELETE": "syscall",
+ "syscall.SYS_KTIMER_GETOVERRUN": "syscall",
+ "syscall.SYS_KTIMER_GETTIME": "syscall",
+ "syscall.SYS_KTIMER_SETTIME": "syscall",
+ "syscall.SYS_KTRACE": "syscall",
+ "syscall.SYS_LCHFLAGS": "syscall",
+ "syscall.SYS_LCHMOD": "syscall",
+ "syscall.SYS_LCHOWN": "syscall",
+ "syscall.SYS_LCHOWN32": "syscall",
+ "syscall.SYS_LGETFH": "syscall",
+ "syscall.SYS_LGETXATTR": "syscall",
+ "syscall.SYS_LINK": "syscall",
+ "syscall.SYS_LINKAT": "syscall",
+ "syscall.SYS_LIO_LISTIO": "syscall",
+ "syscall.SYS_LISTEN": "syscall",
+ "syscall.SYS_LISTXATTR": "syscall",
+ "syscall.SYS_LLISTXATTR": "syscall",
+ "syscall.SYS_LOCK": "syscall",
+ "syscall.SYS_LOOKUP_DCOOKIE": "syscall",
+ "syscall.SYS_LPATHCONF": "syscall",
+ "syscall.SYS_LREMOVEXATTR": "syscall",
+ "syscall.SYS_LSEEK": "syscall",
+ "syscall.SYS_LSETXATTR": "syscall",
+ "syscall.SYS_LSTAT": "syscall",
+ "syscall.SYS_LSTAT64": "syscall",
+ "syscall.SYS_LSTAT64_EXTENDED": "syscall",
+ "syscall.SYS_LSTATV": "syscall",
+ "syscall.SYS_LSTAT_EXTENDED": "syscall",
+ "syscall.SYS_LUTIMES": "syscall",
+ "syscall.SYS_MAC_SYSCALL": "syscall",
+ "syscall.SYS_MADVISE": "syscall",
+ "syscall.SYS_MADVISE1": "syscall",
+ "syscall.SYS_MAXSYSCALL": "syscall",
+ "syscall.SYS_MBIND": "syscall",
+ "syscall.SYS_MIGRATE_PAGES": "syscall",
+ "syscall.SYS_MINCORE": "syscall",
+ "syscall.SYS_MINHERIT": "syscall",
+ "syscall.SYS_MKCOMPLEX": "syscall",
+ "syscall.SYS_MKDIR": "syscall",
+ "syscall.SYS_MKDIRAT": "syscall",
+ "syscall.SYS_MKDIR_EXTENDED": "syscall",
+ "syscall.SYS_MKFIFO": "syscall",
+ "syscall.SYS_MKFIFOAT": "syscall",
+ "syscall.SYS_MKFIFO_EXTENDED": "syscall",
+ "syscall.SYS_MKNOD": "syscall",
+ "syscall.SYS_MKNODAT": "syscall",
+ "syscall.SYS_MLOCK": "syscall",
+ "syscall.SYS_MLOCKALL": "syscall",
+ "syscall.SYS_MMAP": "syscall",
+ "syscall.SYS_MMAP2": "syscall",
+ "syscall.SYS_MODCTL": "syscall",
+ "syscall.SYS_MODFIND": "syscall",
+ "syscall.SYS_MODFNEXT": "syscall",
+ "syscall.SYS_MODIFY_LDT": "syscall",
+ "syscall.SYS_MODNEXT": "syscall",
+ "syscall.SYS_MODSTAT": "syscall",
+ "syscall.SYS_MODWATCH": "syscall",
+ "syscall.SYS_MOUNT": "syscall",
+ "syscall.SYS_MOVE_PAGES": "syscall",
+ "syscall.SYS_MPROTECT": "syscall",
+ "syscall.SYS_MPX": "syscall",
+ "syscall.SYS_MQUERY": "syscall",
+ "syscall.SYS_MQ_GETSETATTR": "syscall",
+ "syscall.SYS_MQ_NOTIFY": "syscall",
+ "syscall.SYS_MQ_OPEN": "syscall",
+ "syscall.SYS_MQ_TIMEDRECEIVE": "syscall",
+ "syscall.SYS_MQ_TIMEDSEND": "syscall",
+ "syscall.SYS_MQ_UNLINK": "syscall",
+ "syscall.SYS_MREMAP": "syscall",
+ "syscall.SYS_MSGCTL": "syscall",
+ "syscall.SYS_MSGGET": "syscall",
+ "syscall.SYS_MSGRCV": "syscall",
+ "syscall.SYS_MSGRCV_NOCANCEL": "syscall",
+ "syscall.SYS_MSGSND": "syscall",
+ "syscall.SYS_MSGSND_NOCANCEL": "syscall",
+ "syscall.SYS_MSGSYS": "syscall",
+ "syscall.SYS_MSYNC": "syscall",
+ "syscall.SYS_MSYNC_NOCANCEL": "syscall",
+ "syscall.SYS_MUNLOCK": "syscall",
+ "syscall.SYS_MUNLOCKALL": "syscall",
+ "syscall.SYS_MUNMAP": "syscall",
+ "syscall.SYS_NAME_TO_HANDLE_AT": "syscall",
+ "syscall.SYS_NANOSLEEP": "syscall",
+ "syscall.SYS_NEWFSTATAT": "syscall",
+ "syscall.SYS_NFSCLNT": "syscall",
+ "syscall.SYS_NFSSERVCTL": "syscall",
+ "syscall.SYS_NFSSVC": "syscall",
+ "syscall.SYS_NFSTAT": "syscall",
+ "syscall.SYS_NICE": "syscall",
+ "syscall.SYS_NLSTAT": "syscall",
+ "syscall.SYS_NMOUNT": "syscall",
+ "syscall.SYS_NSTAT": "syscall",
+ "syscall.SYS_NTP_ADJTIME": "syscall",
+ "syscall.SYS_NTP_GETTIME": "syscall",
+ "syscall.SYS_OABI_SYSCALL_BASE": "syscall",
+ "syscall.SYS_OBREAK": "syscall",
+ "syscall.SYS_OLDFSTAT": "syscall",
+ "syscall.SYS_OLDLSTAT": "syscall",
+ "syscall.SYS_OLDOLDUNAME": "syscall",
+ "syscall.SYS_OLDSTAT": "syscall",
+ "syscall.SYS_OLDUNAME": "syscall",
+ "syscall.SYS_OPEN": "syscall",
+ "syscall.SYS_OPENAT": "syscall",
+ "syscall.SYS_OPENBSD_POLL": "syscall",
+ "syscall.SYS_OPEN_BY_HANDLE_AT": "syscall",
+ "syscall.SYS_OPEN_EXTENDED": "syscall",
+ "syscall.SYS_OPEN_NOCANCEL": "syscall",
+ "syscall.SYS_OVADVISE": "syscall",
+ "syscall.SYS_PACCEPT": "syscall",
+ "syscall.SYS_PATHCONF": "syscall",
+ "syscall.SYS_PAUSE": "syscall",
+ "syscall.SYS_PCICONFIG_IOBASE": "syscall",
+ "syscall.SYS_PCICONFIG_READ": "syscall",
+ "syscall.SYS_PCICONFIG_WRITE": "syscall",
+ "syscall.SYS_PDFORK": "syscall",
+ "syscall.SYS_PDGETPID": "syscall",
+ "syscall.SYS_PDKILL": "syscall",
+ "syscall.SYS_PERF_EVENT_OPEN": "syscall",
+ "syscall.SYS_PERSONALITY": "syscall",
+ "syscall.SYS_PID_HIBERNATE": "syscall",
+ "syscall.SYS_PID_RESUME": "syscall",
+ "syscall.SYS_PID_SHUTDOWN_SOCKETS": "syscall",
+ "syscall.SYS_PID_SUSPEND": "syscall",
+ "syscall.SYS_PIPE": "syscall",
+ "syscall.SYS_PIPE2": "syscall",
+ "syscall.SYS_PIVOT_ROOT": "syscall",
+ "syscall.SYS_PMC_CONTROL": "syscall",
+ "syscall.SYS_PMC_GET_INFO": "syscall",
+ "syscall.SYS_POLL": "syscall",
+ "syscall.SYS_POLLTS": "syscall",
+ "syscall.SYS_POLL_NOCANCEL": "syscall",
+ "syscall.SYS_POSIX_FADVISE": "syscall",
+ "syscall.SYS_POSIX_FALLOCATE": "syscall",
+ "syscall.SYS_POSIX_OPENPT": "syscall",
+ "syscall.SYS_POSIX_SPAWN": "syscall",
+ "syscall.SYS_PPOLL": "syscall",
+ "syscall.SYS_PRCTL": "syscall",
+ "syscall.SYS_PREAD": "syscall",
+ "syscall.SYS_PREAD64": "syscall",
+ "syscall.SYS_PREADV": "syscall",
+ "syscall.SYS_PREAD_NOCANCEL": "syscall",
+ "syscall.SYS_PRLIMIT64": "syscall",
+ "syscall.SYS_PROCCTL": "syscall",
+ "syscall.SYS_PROCESS_POLICY": "syscall",
+ "syscall.SYS_PROCESS_VM_READV": "syscall",
+ "syscall.SYS_PROCESS_VM_WRITEV": "syscall",
+ "syscall.SYS_PROC_INFO": "syscall",
+ "syscall.SYS_PROF": "syscall",
+ "syscall.SYS_PROFIL": "syscall",
+ "syscall.SYS_PSELECT": "syscall",
+ "syscall.SYS_PSELECT6": "syscall",
+ "syscall.SYS_PSET_ASSIGN": "syscall",
+ "syscall.SYS_PSET_CREATE": "syscall",
+ "syscall.SYS_PSET_DESTROY": "syscall",
+ "syscall.SYS_PSYNCH_CVBROAD": "syscall",
+ "syscall.SYS_PSYNCH_CVCLRPREPOST": "syscall",
+ "syscall.SYS_PSYNCH_CVSIGNAL": "syscall",
+ "syscall.SYS_PSYNCH_CVWAIT": "syscall",
+ "syscall.SYS_PSYNCH_MUTEXDROP": "syscall",
+ "syscall.SYS_PSYNCH_MUTEXWAIT": "syscall",
+ "syscall.SYS_PSYNCH_RW_DOWNGRADE": "syscall",
+ "syscall.SYS_PSYNCH_RW_LONGRDLOCK": "syscall",
+ "syscall.SYS_PSYNCH_RW_RDLOCK": "syscall",
+ "syscall.SYS_PSYNCH_RW_UNLOCK": "syscall",
+ "syscall.SYS_PSYNCH_RW_UNLOCK2": "syscall",
+ "syscall.SYS_PSYNCH_RW_UPGRADE": "syscall",
+ "syscall.SYS_PSYNCH_RW_WRLOCK": "syscall",
+ "syscall.SYS_PSYNCH_RW_YIELDWRLOCK": "syscall",
+ "syscall.SYS_PTRACE": "syscall",
+ "syscall.SYS_PUTPMSG": "syscall",
+ "syscall.SYS_PWRITE": "syscall",
+ "syscall.SYS_PWRITE64": "syscall",
+ "syscall.SYS_PWRITEV": "syscall",
+ "syscall.SYS_PWRITE_NOCANCEL": "syscall",
+ "syscall.SYS_QUERY_MODULE": "syscall",
+ "syscall.SYS_QUOTACTL": "syscall",
+ "syscall.SYS_RASCTL": "syscall",
+ "syscall.SYS_RCTL_ADD_RULE": "syscall",
+ "syscall.SYS_RCTL_GET_LIMITS": "syscall",
+ "syscall.SYS_RCTL_GET_RACCT": "syscall",
+ "syscall.SYS_RCTL_GET_RULES": "syscall",
+ "syscall.SYS_RCTL_REMOVE_RULE": "syscall",
+ "syscall.SYS_READ": "syscall",
+ "syscall.SYS_READAHEAD": "syscall",
+ "syscall.SYS_READDIR": "syscall",
+ "syscall.SYS_READLINK": "syscall",
+ "syscall.SYS_READLINKAT": "syscall",
+ "syscall.SYS_READV": "syscall",
+ "syscall.SYS_READV_NOCANCEL": "syscall",
+ "syscall.SYS_READ_NOCANCEL": "syscall",
+ "syscall.SYS_REBOOT": "syscall",
+ "syscall.SYS_RECV": "syscall",
+ "syscall.SYS_RECVFROM": "syscall",
+ "syscall.SYS_RECVFROM_NOCANCEL": "syscall",
+ "syscall.SYS_RECVMMSG": "syscall",
+ "syscall.SYS_RECVMSG": "syscall",
+ "syscall.SYS_RECVMSG_NOCANCEL": "syscall",
+ "syscall.SYS_REMAP_FILE_PAGES": "syscall",
+ "syscall.SYS_REMOVEXATTR": "syscall",
+ "syscall.SYS_RENAME": "syscall",
+ "syscall.SYS_RENAMEAT": "syscall",
+ "syscall.SYS_REQUEST_KEY": "syscall",
+ "syscall.SYS_RESTART_SYSCALL": "syscall",
+ "syscall.SYS_REVOKE": "syscall",
+ "syscall.SYS_RFORK": "syscall",
+ "syscall.SYS_RMDIR": "syscall",
+ "syscall.SYS_RTPRIO": "syscall",
+ "syscall.SYS_RTPRIO_THREAD": "syscall",
+ "syscall.SYS_RT_SIGACTION": "syscall",
+ "syscall.SYS_RT_SIGPENDING": "syscall",
+ "syscall.SYS_RT_SIGPROCMASK": "syscall",
+ "syscall.SYS_RT_SIGQUEUEINFO": "syscall",
+ "syscall.SYS_RT_SIGRETURN": "syscall",
+ "syscall.SYS_RT_SIGSUSPEND": "syscall",
+ "syscall.SYS_RT_SIGTIMEDWAIT": "syscall",
+ "syscall.SYS_RT_TGSIGQUEUEINFO": "syscall",
+ "syscall.SYS_SBRK": "syscall",
+ "syscall.SYS_SCHED_GETAFFINITY": "syscall",
+ "syscall.SYS_SCHED_GETPARAM": "syscall",
+ "syscall.SYS_SCHED_GETSCHEDULER": "syscall",
+ "syscall.SYS_SCHED_GET_PRIORITY_MAX": "syscall",
+ "syscall.SYS_SCHED_GET_PRIORITY_MIN": "syscall",
+ "syscall.SYS_SCHED_RR_GET_INTERVAL": "syscall",
+ "syscall.SYS_SCHED_SETAFFINITY": "syscall",
+ "syscall.SYS_SCHED_SETPARAM": "syscall",
+ "syscall.SYS_SCHED_SETSCHEDULER": "syscall",
+ "syscall.SYS_SCHED_YIELD": "syscall",
+ "syscall.SYS_SCTP_GENERIC_RECVMSG": "syscall",
+ "syscall.SYS_SCTP_GENERIC_SENDMSG": "syscall",
+ "syscall.SYS_SCTP_GENERIC_SENDMSG_IOV": "syscall",
+ "syscall.SYS_SCTP_PEELOFF": "syscall",
+ "syscall.SYS_SEARCHFS": "syscall",
+ "syscall.SYS_SECURITY": "syscall",
+ "syscall.SYS_SELECT": "syscall",
+ "syscall.SYS_SELECT_NOCANCEL": "syscall",
+ "syscall.SYS_SEMCONFIG": "syscall",
+ "syscall.SYS_SEMCTL": "syscall",
+ "syscall.SYS_SEMGET": "syscall",
+ "syscall.SYS_SEMOP": "syscall",
+ "syscall.SYS_SEMSYS": "syscall",
+ "syscall.SYS_SEMTIMEDOP": "syscall",
+ "syscall.SYS_SEM_CLOSE": "syscall",
+ "syscall.SYS_SEM_DESTROY": "syscall",
+ "syscall.SYS_SEM_GETVALUE": "syscall",
+ "syscall.SYS_SEM_INIT": "syscall",
+ "syscall.SYS_SEM_OPEN": "syscall",
+ "syscall.SYS_SEM_POST": "syscall",
+ "syscall.SYS_SEM_TRYWAIT": "syscall",
+ "syscall.SYS_SEM_UNLINK": "syscall",
+ "syscall.SYS_SEM_WAIT": "syscall",
+ "syscall.SYS_SEM_WAIT_NOCANCEL": "syscall",
+ "syscall.SYS_SEND": "syscall",
+ "syscall.SYS_SENDFILE": "syscall",
+ "syscall.SYS_SENDFILE64": "syscall",
+ "syscall.SYS_SENDMMSG": "syscall",
+ "syscall.SYS_SENDMSG": "syscall",
+ "syscall.SYS_SENDMSG_NOCANCEL": "syscall",
+ "syscall.SYS_SENDTO": "syscall",
+ "syscall.SYS_SENDTO_NOCANCEL": "syscall",
+ "syscall.SYS_SETATTRLIST": "syscall",
+ "syscall.SYS_SETAUDIT": "syscall",
+ "syscall.SYS_SETAUDIT_ADDR": "syscall",
+ "syscall.SYS_SETAUID": "syscall",
+ "syscall.SYS_SETCONTEXT": "syscall",
+ "syscall.SYS_SETDOMAINNAME": "syscall",
+ "syscall.SYS_SETEGID": "syscall",
+ "syscall.SYS_SETEUID": "syscall",
+ "syscall.SYS_SETFIB": "syscall",
+ "syscall.SYS_SETFSGID": "syscall",
+ "syscall.SYS_SETFSGID32": "syscall",
+ "syscall.SYS_SETFSUID": "syscall",
+ "syscall.SYS_SETFSUID32": "syscall",
+ "syscall.SYS_SETGID": "syscall",
+ "syscall.SYS_SETGID32": "syscall",
+ "syscall.SYS_SETGROUPS": "syscall",
+ "syscall.SYS_SETGROUPS32": "syscall",
+ "syscall.SYS_SETHOSTNAME": "syscall",
+ "syscall.SYS_SETITIMER": "syscall",
+ "syscall.SYS_SETLCID": "syscall",
+ "syscall.SYS_SETLOGIN": "syscall",
+ "syscall.SYS_SETLOGINCLASS": "syscall",
+ "syscall.SYS_SETNS": "syscall",
+ "syscall.SYS_SETPGID": "syscall",
+ "syscall.SYS_SETPRIORITY": "syscall",
+ "syscall.SYS_SETPRIVEXEC": "syscall",
+ "syscall.SYS_SETREGID": "syscall",
+ "syscall.SYS_SETREGID32": "syscall",
+ "syscall.SYS_SETRESGID": "syscall",
+ "syscall.SYS_SETRESGID32": "syscall",
+ "syscall.SYS_SETRESUID": "syscall",
+ "syscall.SYS_SETRESUID32": "syscall",
+ "syscall.SYS_SETREUID": "syscall",
+ "syscall.SYS_SETREUID32": "syscall",
+ "syscall.SYS_SETRLIMIT": "syscall",
+ "syscall.SYS_SETRTABLE": "syscall",
+ "syscall.SYS_SETSGROUPS": "syscall",
+ "syscall.SYS_SETSID": "syscall",
+ "syscall.SYS_SETSOCKOPT": "syscall",
+ "syscall.SYS_SETTID": "syscall",
+ "syscall.SYS_SETTID_WITH_PID": "syscall",
+ "syscall.SYS_SETTIMEOFDAY": "syscall",
+ "syscall.SYS_SETUID": "syscall",
+ "syscall.SYS_SETUID32": "syscall",
+ "syscall.SYS_SETWGROUPS": "syscall",
+ "syscall.SYS_SETXATTR": "syscall",
+ "syscall.SYS_SET_MEMPOLICY": "syscall",
+ "syscall.SYS_SET_ROBUST_LIST": "syscall",
+ "syscall.SYS_SET_THREAD_AREA": "syscall",
+ "syscall.SYS_SET_TID_ADDRESS": "syscall",
+ "syscall.SYS_SGETMASK": "syscall",
+ "syscall.SYS_SHARED_REGION_CHECK_NP": "syscall",
+ "syscall.SYS_SHARED_REGION_MAP_AND_SLIDE_NP": "syscall",
+ "syscall.SYS_SHMAT": "syscall",
+ "syscall.SYS_SHMCTL": "syscall",
+ "syscall.SYS_SHMDT": "syscall",
+ "syscall.SYS_SHMGET": "syscall",
+ "syscall.SYS_SHMSYS": "syscall",
+ "syscall.SYS_SHM_OPEN": "syscall",
+ "syscall.SYS_SHM_UNLINK": "syscall",
+ "syscall.SYS_SHUTDOWN": "syscall",
+ "syscall.SYS_SIGACTION": "syscall",
+ "syscall.SYS_SIGALTSTACK": "syscall",
+ "syscall.SYS_SIGNAL": "syscall",
+ "syscall.SYS_SIGNALFD": "syscall",
+ "syscall.SYS_SIGNALFD4": "syscall",
+ "syscall.SYS_SIGPENDING": "syscall",
+ "syscall.SYS_SIGPROCMASK": "syscall",
+ "syscall.SYS_SIGQUEUE": "syscall",
+ "syscall.SYS_SIGQUEUEINFO": "syscall",
+ "syscall.SYS_SIGRETURN": "syscall",
+ "syscall.SYS_SIGSUSPEND": "syscall",
+ "syscall.SYS_SIGSUSPEND_NOCANCEL": "syscall",
+ "syscall.SYS_SIGTIMEDWAIT": "syscall",
+ "syscall.SYS_SIGWAIT": "syscall",
+ "syscall.SYS_SIGWAITINFO": "syscall",
+ "syscall.SYS_SOCKET": "syscall",
+ "syscall.SYS_SOCKETCALL": "syscall",
+ "syscall.SYS_SOCKETPAIR": "syscall",
+ "syscall.SYS_SPLICE": "syscall",
+ "syscall.SYS_SSETMASK": "syscall",
+ "syscall.SYS_SSTK": "syscall",
+ "syscall.SYS_STACK_SNAPSHOT": "syscall",
+ "syscall.SYS_STAT": "syscall",
+ "syscall.SYS_STAT64": "syscall",
+ "syscall.SYS_STAT64_EXTENDED": "syscall",
+ "syscall.SYS_STATFS": "syscall",
+ "syscall.SYS_STATFS64": "syscall",
+ "syscall.SYS_STATV": "syscall",
+ "syscall.SYS_STATVFS1": "syscall",
+ "syscall.SYS_STAT_EXTENDED": "syscall",
+ "syscall.SYS_STIME": "syscall",
+ "syscall.SYS_STTY": "syscall",
+ "syscall.SYS_SWAPCONTEXT": "syscall",
+ "syscall.SYS_SWAPCTL": "syscall",
+ "syscall.SYS_SWAPOFF": "syscall",
+ "syscall.SYS_SWAPON": "syscall",
+ "syscall.SYS_SYMLINK": "syscall",
+ "syscall.SYS_SYMLINKAT": "syscall",
+ "syscall.SYS_SYNC": "syscall",
+ "syscall.SYS_SYNCFS": "syscall",
+ "syscall.SYS_SYNC_FILE_RANGE": "syscall",
+ "syscall.SYS_SYSARCH": "syscall",
+ "syscall.SYS_SYSCALL": "syscall",
+ "syscall.SYS_SYSCALL_BASE": "syscall",
+ "syscall.SYS_SYSFS": "syscall",
+ "syscall.SYS_SYSINFO": "syscall",
+ "syscall.SYS_SYSLOG": "syscall",
+ "syscall.SYS_TEE": "syscall",
+ "syscall.SYS_TGKILL": "syscall",
+ "syscall.SYS_THREAD_SELFID": "syscall",
+ "syscall.SYS_THR_CREATE": "syscall",
+ "syscall.SYS_THR_EXIT": "syscall",
+ "syscall.SYS_THR_KILL": "syscall",
+ "syscall.SYS_THR_KILL2": "syscall",
+ "syscall.SYS_THR_NEW": "syscall",
+ "syscall.SYS_THR_SELF": "syscall",
+ "syscall.SYS_THR_SET_NAME": "syscall",
+ "syscall.SYS_THR_SUSPEND": "syscall",
+ "syscall.SYS_THR_WAKE": "syscall",
+ "syscall.SYS_TIME": "syscall",
+ "syscall.SYS_TIMERFD_CREATE": "syscall",
+ "syscall.SYS_TIMERFD_GETTIME": "syscall",
+ "syscall.SYS_TIMERFD_SETTIME": "syscall",
+ "syscall.SYS_TIMER_CREATE": "syscall",
+ "syscall.SYS_TIMER_DELETE": "syscall",
+ "syscall.SYS_TIMER_GETOVERRUN": "syscall",
+ "syscall.SYS_TIMER_GETTIME": "syscall",
+ "syscall.SYS_TIMER_SETTIME": "syscall",
+ "syscall.SYS_TIMES": "syscall",
+ "syscall.SYS_TKILL": "syscall",
+ "syscall.SYS_TRUNCATE": "syscall",
+ "syscall.SYS_TRUNCATE64": "syscall",
+ "syscall.SYS_TUXCALL": "syscall",
+ "syscall.SYS_UGETRLIMIT": "syscall",
+ "syscall.SYS_ULIMIT": "syscall",
+ "syscall.SYS_UMASK": "syscall",
+ "syscall.SYS_UMASK_EXTENDED": "syscall",
+ "syscall.SYS_UMOUNT": "syscall",
+ "syscall.SYS_UMOUNT2": "syscall",
+ "syscall.SYS_UNAME": "syscall",
+ "syscall.SYS_UNDELETE": "syscall",
+ "syscall.SYS_UNLINK": "syscall",
+ "syscall.SYS_UNLINKAT": "syscall",
+ "syscall.SYS_UNMOUNT": "syscall",
+ "syscall.SYS_UNSHARE": "syscall",
+ "syscall.SYS_USELIB": "syscall",
+ "syscall.SYS_USTAT": "syscall",
+ "syscall.SYS_UTIME": "syscall",
+ "syscall.SYS_UTIMENSAT": "syscall",
+ "syscall.SYS_UTIMES": "syscall",
+ "syscall.SYS_UTRACE": "syscall",
+ "syscall.SYS_UUIDGEN": "syscall",
+ "syscall.SYS_VADVISE": "syscall",
+ "syscall.SYS_VFORK": "syscall",
+ "syscall.SYS_VHANGUP": "syscall",
+ "syscall.SYS_VM86": "syscall",
+ "syscall.SYS_VM86OLD": "syscall",
+ "syscall.SYS_VMSPLICE": "syscall",
+ "syscall.SYS_VM_PRESSURE_MONITOR": "syscall",
+ "syscall.SYS_VSERVER": "syscall",
+ "syscall.SYS_WAIT4": "syscall",
+ "syscall.SYS_WAIT4_NOCANCEL": "syscall",
+ "syscall.SYS_WAIT6": "syscall",
+ "syscall.SYS_WAITEVENT": "syscall",
+ "syscall.SYS_WAITID": "syscall",
+ "syscall.SYS_WAITID_NOCANCEL": "syscall",
+ "syscall.SYS_WAITPID": "syscall",
+ "syscall.SYS_WATCHEVENT": "syscall",
+ "syscall.SYS_WORKQ_KERNRETURN": "syscall",
+ "syscall.SYS_WORKQ_OPEN": "syscall",
+ "syscall.SYS_WRITE": "syscall",
+ "syscall.SYS_WRITEV": "syscall",
+ "syscall.SYS_WRITEV_NOCANCEL": "syscall",
+ "syscall.SYS_WRITE_NOCANCEL": "syscall",
+ "syscall.SYS_YIELD": "syscall",
+ "syscall.SYS__LLSEEK": "syscall",
+ "syscall.SYS__LWP_CONTINUE": "syscall",
+ "syscall.SYS__LWP_CREATE": "syscall",
+ "syscall.SYS__LWP_CTL": "syscall",
+ "syscall.SYS__LWP_DETACH": "syscall",
+ "syscall.SYS__LWP_EXIT": "syscall",
+ "syscall.SYS__LWP_GETNAME": "syscall",
+ "syscall.SYS__LWP_GETPRIVATE": "syscall",
+ "syscall.SYS__LWP_KILL": "syscall",
+ "syscall.SYS__LWP_PARK": "syscall",
+ "syscall.SYS__LWP_SELF": "syscall",
+ "syscall.SYS__LWP_SETNAME": "syscall",
+ "syscall.SYS__LWP_SETPRIVATE": "syscall",
+ "syscall.SYS__LWP_SUSPEND": "syscall",
+ "syscall.SYS__LWP_UNPARK": "syscall",
+ "syscall.SYS__LWP_UNPARK_ALL": "syscall",
+ "syscall.SYS__LWP_WAIT": "syscall",
+ "syscall.SYS__LWP_WAKEUP": "syscall",
+ "syscall.SYS__NEWSELECT": "syscall",
+ "syscall.SYS__PSET_BIND": "syscall",
+ "syscall.SYS__SCHED_GETAFFINITY": "syscall",
+ "syscall.SYS__SCHED_GETPARAM": "syscall",
+ "syscall.SYS__SCHED_SETAFFINITY": "syscall",
+ "syscall.SYS__SCHED_SETPARAM": "syscall",
+ "syscall.SYS__SYSCTL": "syscall",
+ "syscall.SYS__UMTX_LOCK": "syscall",
+ "syscall.SYS__UMTX_OP": "syscall",
+ "syscall.SYS__UMTX_UNLOCK": "syscall",
+ "syscall.SYS___ACL_ACLCHECK_FD": "syscall",
+ "syscall.SYS___ACL_ACLCHECK_FILE": "syscall",
+ "syscall.SYS___ACL_ACLCHECK_LINK": "syscall",
+ "syscall.SYS___ACL_DELETE_FD": "syscall",
+ "syscall.SYS___ACL_DELETE_FILE": "syscall",
+ "syscall.SYS___ACL_DELETE_LINK": "syscall",
+ "syscall.SYS___ACL_GET_FD": "syscall",
+ "syscall.SYS___ACL_GET_FILE": "syscall",
+ "syscall.SYS___ACL_GET_LINK": "syscall",
+ "syscall.SYS___ACL_SET_FD": "syscall",
+ "syscall.SYS___ACL_SET_FILE": "syscall",
+ "syscall.SYS___ACL_SET_LINK": "syscall",
+ "syscall.SYS___CLONE": "syscall",
+ "syscall.SYS___DISABLE_THREADSIGNAL": "syscall",
+ "syscall.SYS___GETCWD": "syscall",
+ "syscall.SYS___GETLOGIN": "syscall",
+ "syscall.SYS___GET_TCB": "syscall",
+ "syscall.SYS___MAC_EXECVE": "syscall",
+ "syscall.SYS___MAC_GETFSSTAT": "syscall",
+ "syscall.SYS___MAC_GET_FD": "syscall",
+ "syscall.SYS___MAC_GET_FILE": "syscall",
+ "syscall.SYS___MAC_GET_LCID": "syscall",
+ "syscall.SYS___MAC_GET_LCTX": "syscall",
+ "syscall.SYS___MAC_GET_LINK": "syscall",
+ "syscall.SYS___MAC_GET_MOUNT": "syscall",
+ "syscall.SYS___MAC_GET_PID": "syscall",
+ "syscall.SYS___MAC_GET_PROC": "syscall",
+ "syscall.SYS___MAC_MOUNT": "syscall",
+ "syscall.SYS___MAC_SET_FD": "syscall",
+ "syscall.SYS___MAC_SET_FILE": "syscall",
+ "syscall.SYS___MAC_SET_LCTX": "syscall",
+ "syscall.SYS___MAC_SET_LINK": "syscall",
+ "syscall.SYS___MAC_SET_PROC": "syscall",
+ "syscall.SYS___MAC_SYSCALL": "syscall",
+ "syscall.SYS___OLD_SEMWAIT_SIGNAL": "syscall",
+ "syscall.SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL": "syscall",
+ "syscall.SYS___POSIX_CHOWN": "syscall",
+ "syscall.SYS___POSIX_FCHOWN": "syscall",
+ "syscall.SYS___POSIX_LCHOWN": "syscall",
+ "syscall.SYS___POSIX_RENAME": "syscall",
+ "syscall.SYS___PTHREAD_CANCELED": "syscall",
+ "syscall.SYS___PTHREAD_CHDIR": "syscall",
+ "syscall.SYS___PTHREAD_FCHDIR": "syscall",
+ "syscall.SYS___PTHREAD_KILL": "syscall",
+ "syscall.SYS___PTHREAD_MARKCANCEL": "syscall",
+ "syscall.SYS___PTHREAD_SIGMASK": "syscall",
+ "syscall.SYS___QUOTACTL": "syscall",
+ "syscall.SYS___SEMCTL": "syscall",
+ "syscall.SYS___SEMWAIT_SIGNAL": "syscall",
+ "syscall.SYS___SEMWAIT_SIGNAL_NOCANCEL": "syscall",
+ "syscall.SYS___SETLOGIN": "syscall",
+ "syscall.SYS___SETUGID": "syscall",
+ "syscall.SYS___SET_TCB": "syscall",
+ "syscall.SYS___SIGACTION_SIGTRAMP": "syscall",
+ "syscall.SYS___SIGTIMEDWAIT": "syscall",
+ "syscall.SYS___SIGWAIT": "syscall",
+ "syscall.SYS___SIGWAIT_NOCANCEL": "syscall",
+ "syscall.SYS___SYSCTL": "syscall",
+ "syscall.SYS___TFORK": "syscall",
+ "syscall.SYS___THREXIT": "syscall",
+ "syscall.SYS___THRSIGDIVERT": "syscall",
+ "syscall.SYS___THRSLEEP": "syscall",
+ "syscall.SYS___THRWAKEUP": "syscall",
+ "syscall.S_ARCH1": "syscall",
+ "syscall.S_ARCH2": "syscall",
+ "syscall.S_BLKSIZE": "syscall",
+ "syscall.S_IEXEC": "syscall",
+ "syscall.S_IFBLK": "syscall",
+ "syscall.S_IFCHR": "syscall",
+ "syscall.S_IFDIR": "syscall",
+ "syscall.S_IFIFO": "syscall",
+ "syscall.S_IFLNK": "syscall",
+ "syscall.S_IFMT": "syscall",
+ "syscall.S_IFREG": "syscall",
+ "syscall.S_IFSOCK": "syscall",
+ "syscall.S_IFWHT": "syscall",
+ "syscall.S_IREAD": "syscall",
+ "syscall.S_IRGRP": "syscall",
+ "syscall.S_IROTH": "syscall",
+ "syscall.S_IRUSR": "syscall",
+ "syscall.S_IRWXG": "syscall",
+ "syscall.S_IRWXO": "syscall",
+ "syscall.S_IRWXU": "syscall",
+ "syscall.S_ISGID": "syscall",
+ "syscall.S_ISTXT": "syscall",
+ "syscall.S_ISUID": "syscall",
+ "syscall.S_ISVTX": "syscall",
+ "syscall.S_IWGRP": "syscall",
+ "syscall.S_IWOTH": "syscall",
+ "syscall.S_IWRITE": "syscall",
+ "syscall.S_IWUSR": "syscall",
+ "syscall.S_IXGRP": "syscall",
+ "syscall.S_IXOTH": "syscall",
+ "syscall.S_IXUSR": "syscall",
+ "syscall.S_LOGIN_SET": "syscall",
+ "syscall.SecurityAttributes": "syscall",
+ "syscall.Seek": "syscall",
+ "syscall.Select": "syscall",
+ "syscall.Sendfile": "syscall",
+ "syscall.Sendmsg": "syscall",
+ "syscall.SendmsgN": "syscall",
+ "syscall.Sendto": "syscall",
+ "syscall.Servent": "syscall",
+ "syscall.SetBpf": "syscall",
+ "syscall.SetBpfBuflen": "syscall",
+ "syscall.SetBpfDatalink": "syscall",
+ "syscall.SetBpfHeadercmpl": "syscall",
+ "syscall.SetBpfImmediate": "syscall",
+ "syscall.SetBpfInterface": "syscall",
+ "syscall.SetBpfPromisc": "syscall",
+ "syscall.SetBpfTimeout": "syscall",
+ "syscall.SetCurrentDirectory": "syscall",
+ "syscall.SetEndOfFile": "syscall",
+ "syscall.SetEnvironmentVariable": "syscall",
+ "syscall.SetFileAttributes": "syscall",
+ "syscall.SetFileCompletionNotificationModes": "syscall",
+ "syscall.SetFilePointer": "syscall",
+ "syscall.SetFileTime": "syscall",
+ "syscall.SetHandleInformation": "syscall",
+ "syscall.SetKevent": "syscall",
+ "syscall.SetLsfPromisc": "syscall",
+ "syscall.SetNonblock": "syscall",
+ "syscall.Setdomainname": "syscall",
+ "syscall.Setegid": "syscall",
+ "syscall.Setenv": "syscall",
+ "syscall.Seteuid": "syscall",
+ "syscall.Setfsgid": "syscall",
+ "syscall.Setfsuid": "syscall",
+ "syscall.Setgid": "syscall",
+ "syscall.Setgroups": "syscall",
+ "syscall.Sethostname": "syscall",
+ "syscall.Setlogin": "syscall",
+ "syscall.Setpgid": "syscall",
+ "syscall.Setpriority": "syscall",
+ "syscall.Setprivexec": "syscall",
+ "syscall.Setregid": "syscall",
+ "syscall.Setresgid": "syscall",
+ "syscall.Setresuid": "syscall",
+ "syscall.Setreuid": "syscall",
+ "syscall.Setrlimit": "syscall",
+ "syscall.Setsid": "syscall",
+ "syscall.Setsockopt": "syscall",
+ "syscall.SetsockoptByte": "syscall",
+ "syscall.SetsockoptICMPv6Filter": "syscall",
+ "syscall.SetsockoptIPMreq": "syscall",
+ "syscall.SetsockoptIPMreqn": "syscall",
+ "syscall.SetsockoptIPv6Mreq": "syscall",
+ "syscall.SetsockoptInet4Addr": "syscall",
+ "syscall.SetsockoptInt": "syscall",
+ "syscall.SetsockoptLinger": "syscall",
+ "syscall.SetsockoptString": "syscall",
+ "syscall.SetsockoptTimeval": "syscall",
+ "syscall.Settimeofday": "syscall",
+ "syscall.Setuid": "syscall",
+ "syscall.Setxattr": "syscall",
+ "syscall.Shutdown": "syscall",
+ "syscall.SidTypeAlias": "syscall",
+ "syscall.SidTypeComputer": "syscall",
+ "syscall.SidTypeDeletedAccount": "syscall",
+ "syscall.SidTypeDomain": "syscall",
+ "syscall.SidTypeGroup": "syscall",
+ "syscall.SidTypeInvalid": "syscall",
+ "syscall.SidTypeLabel": "syscall",
+ "syscall.SidTypeUnknown": "syscall",
+ "syscall.SidTypeUser": "syscall",
+ "syscall.SidTypeWellKnownGroup": "syscall",
+ "syscall.Signal": "syscall",
+ "syscall.SizeofBpfHdr": "syscall",
+ "syscall.SizeofBpfInsn": "syscall",
+ "syscall.SizeofBpfProgram": "syscall",
+ "syscall.SizeofBpfStat": "syscall",
+ "syscall.SizeofBpfVersion": "syscall",
+ "syscall.SizeofBpfZbuf": "syscall",
+ "syscall.SizeofBpfZbufHeader": "syscall",
+ "syscall.SizeofCmsghdr": "syscall",
+ "syscall.SizeofICMPv6Filter": "syscall",
+ "syscall.SizeofIPMreq": "syscall",
+ "syscall.SizeofIPMreqn": "syscall",
+ "syscall.SizeofIPv6MTUInfo": "syscall",
+ "syscall.SizeofIPv6Mreq": "syscall",
+ "syscall.SizeofIfAddrmsg": "syscall",
+ "syscall.SizeofIfAnnounceMsghdr": "syscall",
+ "syscall.SizeofIfData": "syscall",
+ "syscall.SizeofIfInfomsg": "syscall",
+ "syscall.SizeofIfMsghdr": "syscall",
+ "syscall.SizeofIfaMsghdr": "syscall",
+ "syscall.SizeofIfmaMsghdr": "syscall",
+ "syscall.SizeofIfmaMsghdr2": "syscall",
+ "syscall.SizeofInet4Pktinfo": "syscall",
+ "syscall.SizeofInet6Pktinfo": "syscall",
+ "syscall.SizeofInotifyEvent": "syscall",
+ "syscall.SizeofLinger": "syscall",
+ "syscall.SizeofMsghdr": "syscall",
+ "syscall.SizeofNlAttr": "syscall",
+ "syscall.SizeofNlMsgerr": "syscall",
+ "syscall.SizeofNlMsghdr": "syscall",
+ "syscall.SizeofRtAttr": "syscall",
+ "syscall.SizeofRtGenmsg": "syscall",
+ "syscall.SizeofRtMetrics": "syscall",
+ "syscall.SizeofRtMsg": "syscall",
+ "syscall.SizeofRtMsghdr": "syscall",
+ "syscall.SizeofRtNexthop": "syscall",
+ "syscall.SizeofSockFilter": "syscall",
+ "syscall.SizeofSockFprog": "syscall",
+ "syscall.SizeofSockaddrAny": "syscall",
+ "syscall.SizeofSockaddrDatalink": "syscall",
+ "syscall.SizeofSockaddrInet4": "syscall",
+ "syscall.SizeofSockaddrInet6": "syscall",
+ "syscall.SizeofSockaddrLinklayer": "syscall",
+ "syscall.SizeofSockaddrNetlink": "syscall",
+ "syscall.SizeofSockaddrUnix": "syscall",
+ "syscall.SizeofTCPInfo": "syscall",
+ "syscall.SizeofUcred": "syscall",
+ "syscall.SlicePtrFromStrings": "syscall",
+ "syscall.SockFilter": "syscall",
+ "syscall.SockFprog": "syscall",
+ "syscall.SockaddrDatalink": "syscall",
+ "syscall.SockaddrGen": "syscall",
+ "syscall.SockaddrInet4": "syscall",
+ "syscall.SockaddrInet6": "syscall",
+ "syscall.SockaddrLinklayer": "syscall",
+ "syscall.SockaddrNetlink": "syscall",
+ "syscall.SockaddrUnix": "syscall",
+ "syscall.Socket": "syscall",
+ "syscall.SocketControlMessage": "syscall",
+ "syscall.SocketDisableIPv6": "syscall",
+ "syscall.Socketpair": "syscall",
+ "syscall.Splice": "syscall",
+ "syscall.StartProcess": "syscall",
+ "syscall.StartupInfo": "syscall",
+ "syscall.Stat": "syscall",
+ "syscall.Stat_t": "syscall",
+ "syscall.Statfs": "syscall",
+ "syscall.Statfs_t": "syscall",
+ "syscall.Stderr": "syscall",
+ "syscall.Stdin": "syscall",
+ "syscall.Stdout": "syscall",
+ "syscall.StringBytePtr": "syscall",
+ "syscall.StringByteSlice": "syscall",
+ "syscall.StringSlicePtr": "syscall",
+ "syscall.StringToSid": "syscall",
+ "syscall.StringToUTF16": "syscall",
+ "syscall.StringToUTF16Ptr": "syscall",
+ "syscall.Symlink": "syscall",
+ "syscall.Sync": "syscall",
+ "syscall.SyncFileRange": "syscall",
+ "syscall.SysProcAttr": "syscall",
+ "syscall.SysProcIDMap": "syscall",
+ "syscall.Syscall": "syscall",
+ "syscall.Syscall12": "syscall",
+ "syscall.Syscall15": "syscall",
+ "syscall.Syscall6": "syscall",
+ "syscall.Syscall9": "syscall",
+ "syscall.Sysctl": "syscall",
+ "syscall.SysctlUint32": "syscall",
+ "syscall.Sysctlnode": "syscall",
+ "syscall.Sysinfo": "syscall",
+ "syscall.Sysinfo_t": "syscall",
+ "syscall.Systemtime": "syscall",
+ "syscall.TCGETS": "syscall",
+ "syscall.TCIFLUSH": "syscall",
+ "syscall.TCIOFLUSH": "syscall",
+ "syscall.TCOFLUSH": "syscall",
+ "syscall.TCPInfo": "syscall",
+ "syscall.TCPKeepalive": "syscall",
+ "syscall.TCP_CA_NAME_MAX": "syscall",
+ "syscall.TCP_CONGCTL": "syscall",
+ "syscall.TCP_CONGESTION": "syscall",
+ "syscall.TCP_CONNECTIONTIMEOUT": "syscall",
+ "syscall.TCP_CORK": "syscall",
+ "syscall.TCP_DEFER_ACCEPT": "syscall",
+ "syscall.TCP_INFO": "syscall",
+ "syscall.TCP_KEEPALIVE": "syscall",
+ "syscall.TCP_KEEPCNT": "syscall",
+ "syscall.TCP_KEEPIDLE": "syscall",
+ "syscall.TCP_KEEPINIT": "syscall",
+ "syscall.TCP_KEEPINTVL": "syscall",
+ "syscall.TCP_LINGER2": "syscall",
+ "syscall.TCP_MAXBURST": "syscall",
+ "syscall.TCP_MAXHLEN": "syscall",
+ "syscall.TCP_MAXOLEN": "syscall",
+ "syscall.TCP_MAXSEG": "syscall",
+ "syscall.TCP_MAXWIN": "syscall",
+ "syscall.TCP_MAX_SACK": "syscall",
+ "syscall.TCP_MAX_WINSHIFT": "syscall",
+ "syscall.TCP_MD5SIG": "syscall",
+ "syscall.TCP_MD5SIG_MAXKEYLEN": "syscall",
+ "syscall.TCP_MINMSS": "syscall",
+ "syscall.TCP_MINMSSOVERLOAD": "syscall",
+ "syscall.TCP_MSS": "syscall",
+ "syscall.TCP_NODELAY": "syscall",
+ "syscall.TCP_NOOPT": "syscall",
+ "syscall.TCP_NOPUSH": "syscall",
+ "syscall.TCP_NSTATES": "syscall",
+ "syscall.TCP_QUICKACK": "syscall",
+ "syscall.TCP_RXT_CONNDROPTIME": "syscall",
+ "syscall.TCP_RXT_FINDROP": "syscall",
+ "syscall.TCP_SACK_ENABLE": "syscall",
+ "syscall.TCP_SYNCNT": "syscall",
+ "syscall.TCP_VENDOR": "syscall",
+ "syscall.TCP_WINDOW_CLAMP": "syscall",
+ "syscall.TCSAFLUSH": "syscall",
+ "syscall.TCSETS": "syscall",
+ "syscall.TF_DISCONNECT": "syscall",
+ "syscall.TF_REUSE_SOCKET": "syscall",
+ "syscall.TF_USE_DEFAULT_WORKER": "syscall",
+ "syscall.TF_USE_KERNEL_APC": "syscall",
+ "syscall.TF_USE_SYSTEM_THREAD": "syscall",
+ "syscall.TF_WRITE_BEHIND": "syscall",
+ "syscall.TH32CS_INHERIT": "syscall",
+ "syscall.TH32CS_SNAPALL": "syscall",
+ "syscall.TH32CS_SNAPHEAPLIST": "syscall",
+ "syscall.TH32CS_SNAPMODULE": "syscall",
+ "syscall.TH32CS_SNAPMODULE32": "syscall",
+ "syscall.TH32CS_SNAPPROCESS": "syscall",
+ "syscall.TH32CS_SNAPTHREAD": "syscall",
+ "syscall.TIME_ZONE_ID_DAYLIGHT": "syscall",
+ "syscall.TIME_ZONE_ID_STANDARD": "syscall",
+ "syscall.TIME_ZONE_ID_UNKNOWN": "syscall",
+ "syscall.TIOCCBRK": "syscall",
+ "syscall.TIOCCDTR": "syscall",
+ "syscall.TIOCCONS": "syscall",
+ "syscall.TIOCDCDTIMESTAMP": "syscall",
+ "syscall.TIOCDRAIN": "syscall",
+ "syscall.TIOCDSIMICROCODE": "syscall",
+ "syscall.TIOCEXCL": "syscall",
+ "syscall.TIOCEXT": "syscall",
+ "syscall.TIOCFLAG_CDTRCTS": "syscall",
+ "syscall.TIOCFLAG_CLOCAL": "syscall",
+ "syscall.TIOCFLAG_CRTSCTS": "syscall",
+ "syscall.TIOCFLAG_MDMBUF": "syscall",
+ "syscall.TIOCFLAG_PPS": "syscall",
+ "syscall.TIOCFLAG_SOFTCAR": "syscall",
+ "syscall.TIOCFLUSH": "syscall",
+ "syscall.TIOCGDEV": "syscall",
+ "syscall.TIOCGDRAINWAIT": "syscall",
+ "syscall.TIOCGETA": "syscall",
+ "syscall.TIOCGETD": "syscall",
+ "syscall.TIOCGFLAGS": "syscall",
+ "syscall.TIOCGICOUNT": "syscall",
+ "syscall.TIOCGLCKTRMIOS": "syscall",
+ "syscall.TIOCGLINED": "syscall",
+ "syscall.TIOCGPGRP": "syscall",
+ "syscall.TIOCGPTN": "syscall",
+ "syscall.TIOCGQSIZE": "syscall",
+ "syscall.TIOCGRANTPT": "syscall",
+ "syscall.TIOCGRS485": "syscall",
+ "syscall.TIOCGSERIAL": "syscall",
+ "syscall.TIOCGSID": "syscall",
+ "syscall.TIOCGSIZE": "syscall",
+ "syscall.TIOCGSOFTCAR": "syscall",
+ "syscall.TIOCGTSTAMP": "syscall",
+ "syscall.TIOCGWINSZ": "syscall",
+ "syscall.TIOCINQ": "syscall",
+ "syscall.TIOCIXOFF": "syscall",
+ "syscall.TIOCIXON": "syscall",
+ "syscall.TIOCLINUX": "syscall",
+ "syscall.TIOCMBIC": "syscall",
+ "syscall.TIOCMBIS": "syscall",
+ "syscall.TIOCMGDTRWAIT": "syscall",
+ "syscall.TIOCMGET": "syscall",
+ "syscall.TIOCMIWAIT": "syscall",
+ "syscall.TIOCMODG": "syscall",
+ "syscall.TIOCMODS": "syscall",
+ "syscall.TIOCMSDTRWAIT": "syscall",
+ "syscall.TIOCMSET": "syscall",
+ "syscall.TIOCM_CAR": "syscall",
+ "syscall.TIOCM_CD": "syscall",
+ "syscall.TIOCM_CTS": "syscall",
+ "syscall.TIOCM_DCD": "syscall",
+ "syscall.TIOCM_DSR": "syscall",
+ "syscall.TIOCM_DTR": "syscall",
+ "syscall.TIOCM_LE": "syscall",
+ "syscall.TIOCM_RI": "syscall",
+ "syscall.TIOCM_RNG": "syscall",
+ "syscall.TIOCM_RTS": "syscall",
+ "syscall.TIOCM_SR": "syscall",
+ "syscall.TIOCM_ST": "syscall",
+ "syscall.TIOCNOTTY": "syscall",
+ "syscall.TIOCNXCL": "syscall",
+ "syscall.TIOCOUTQ": "syscall",
+ "syscall.TIOCPKT": "syscall",
+ "syscall.TIOCPKT_DATA": "syscall",
+ "syscall.TIOCPKT_DOSTOP": "syscall",
+ "syscall.TIOCPKT_FLUSHREAD": "syscall",
+ "syscall.TIOCPKT_FLUSHWRITE": "syscall",
+ "syscall.TIOCPKT_IOCTL": "syscall",
+ "syscall.TIOCPKT_NOSTOP": "syscall",
+ "syscall.TIOCPKT_START": "syscall",
+ "syscall.TIOCPKT_STOP": "syscall",
+ "syscall.TIOCPTMASTER": "syscall",
+ "syscall.TIOCPTMGET": "syscall",
+ "syscall.TIOCPTSNAME": "syscall",
+ "syscall.TIOCPTYGNAME": "syscall",
+ "syscall.TIOCPTYGRANT": "syscall",
+ "syscall.TIOCPTYUNLK": "syscall",
+ "syscall.TIOCRCVFRAME": "syscall",
+ "syscall.TIOCREMOTE": "syscall",
+ "syscall.TIOCSBRK": "syscall",
+ "syscall.TIOCSCONS": "syscall",
+ "syscall.TIOCSCTTY": "syscall",
+ "syscall.TIOCSDRAINWAIT": "syscall",
+ "syscall.TIOCSDTR": "syscall",
+ "syscall.TIOCSERCONFIG": "syscall",
+ "syscall.TIOCSERGETLSR": "syscall",
+ "syscall.TIOCSERGETMULTI": "syscall",
+ "syscall.TIOCSERGSTRUCT": "syscall",
+ "syscall.TIOCSERGWILD": "syscall",
+ "syscall.TIOCSERSETMULTI": "syscall",
+ "syscall.TIOCSERSWILD": "syscall",
+ "syscall.TIOCSER_TEMT": "syscall",
+ "syscall.TIOCSETA": "syscall",
+ "syscall.TIOCSETAF": "syscall",
+ "syscall.TIOCSETAW": "syscall",
+ "syscall.TIOCSETD": "syscall",
+ "syscall.TIOCSFLAGS": "syscall",
+ "syscall.TIOCSIG": "syscall",
+ "syscall.TIOCSLCKTRMIOS": "syscall",
+ "syscall.TIOCSLINED": "syscall",
+ "syscall.TIOCSPGRP": "syscall",
+ "syscall.TIOCSPTLCK": "syscall",
+ "syscall.TIOCSQSIZE": "syscall",
+ "syscall.TIOCSRS485": "syscall",
+ "syscall.TIOCSSERIAL": "syscall",
+ "syscall.TIOCSSIZE": "syscall",
+ "syscall.TIOCSSOFTCAR": "syscall",
+ "syscall.TIOCSTART": "syscall",
+ "syscall.TIOCSTAT": "syscall",
+ "syscall.TIOCSTI": "syscall",
+ "syscall.TIOCSTOP": "syscall",
+ "syscall.TIOCSTSTAMP": "syscall",
+ "syscall.TIOCSWINSZ": "syscall",
+ "syscall.TIOCTIMESTAMP": "syscall",
+ "syscall.TIOCUCNTL": "syscall",
+ "syscall.TIOCVHANGUP": "syscall",
+ "syscall.TIOCXMTFRAME": "syscall",
+ "syscall.TOKEN_ADJUST_DEFAULT": "syscall",
+ "syscall.TOKEN_ADJUST_GROUPS": "syscall",
+ "syscall.TOKEN_ADJUST_PRIVILEGES": "syscall",
+ "syscall.TOKEN_ALL_ACCESS": "syscall",
+ "syscall.TOKEN_ASSIGN_PRIMARY": "syscall",
+ "syscall.TOKEN_DUPLICATE": "syscall",
+ "syscall.TOKEN_EXECUTE": "syscall",
+ "syscall.TOKEN_IMPERSONATE": "syscall",
+ "syscall.TOKEN_QUERY": "syscall",
+ "syscall.TOKEN_QUERY_SOURCE": "syscall",
+ "syscall.TOKEN_READ": "syscall",
+ "syscall.TOKEN_WRITE": "syscall",
+ "syscall.TOSTOP": "syscall",
+ "syscall.TRUNCATE_EXISTING": "syscall",
+ "syscall.TUNATTACHFILTER": "syscall",
+ "syscall.TUNDETACHFILTER": "syscall",
+ "syscall.TUNGETFEATURES": "syscall",
+ "syscall.TUNGETIFF": "syscall",
+ "syscall.TUNGETSNDBUF": "syscall",
+ "syscall.TUNGETVNETHDRSZ": "syscall",
+ "syscall.TUNSETDEBUG": "syscall",
+ "syscall.TUNSETGROUP": "syscall",
+ "syscall.TUNSETIFF": "syscall",
+ "syscall.TUNSETLINK": "syscall",
+ "syscall.TUNSETNOCSUM": "syscall",
+ "syscall.TUNSETOFFLOAD": "syscall",
+ "syscall.TUNSETOWNER": "syscall",
+ "syscall.TUNSETPERSIST": "syscall",
+ "syscall.TUNSETSNDBUF": "syscall",
+ "syscall.TUNSETTXFILTER": "syscall",
+ "syscall.TUNSETVNETHDRSZ": "syscall",
+ "syscall.Tee": "syscall",
+ "syscall.TerminateProcess": "syscall",
+ "syscall.Termios": "syscall",
+ "syscall.Tgkill": "syscall",
+ "syscall.Time": "syscall",
+ "syscall.Time_t": "syscall",
+ "syscall.Times": "syscall",
+ "syscall.Timespec": "syscall",
+ "syscall.TimespecToNsec": "syscall",
+ "syscall.Timeval": "syscall",
+ "syscall.Timeval32": "syscall",
+ "syscall.TimevalToNsec": "syscall",
+ "syscall.Timex": "syscall",
+ "syscall.Timezoneinformation": "syscall",
+ "syscall.Tms": "syscall",
+ "syscall.Token": "syscall",
+ "syscall.TokenAccessInformation": "syscall",
+ "syscall.TokenAuditPolicy": "syscall",
+ "syscall.TokenDefaultDacl": "syscall",
+ "syscall.TokenElevation": "syscall",
+ "syscall.TokenElevationType": "syscall",
+ "syscall.TokenGroups": "syscall",
+ "syscall.TokenGroupsAndPrivileges": "syscall",
+ "syscall.TokenHasRestrictions": "syscall",
+ "syscall.TokenImpersonationLevel": "syscall",
+ "syscall.TokenIntegrityLevel": "syscall",
+ "syscall.TokenLinkedToken": "syscall",
+ "syscall.TokenLogonSid": "syscall",
+ "syscall.TokenMandatoryPolicy": "syscall",
+ "syscall.TokenOrigin": "syscall",
+ "syscall.TokenOwner": "syscall",
+ "syscall.TokenPrimaryGroup": "syscall",
+ "syscall.TokenPrivileges": "syscall",
+ "syscall.TokenRestrictedSids": "syscall",
+ "syscall.TokenSandBoxInert": "syscall",
+ "syscall.TokenSessionId": "syscall",
+ "syscall.TokenSessionReference": "syscall",
+ "syscall.TokenSource": "syscall",
+ "syscall.TokenStatistics": "syscall",
+ "syscall.TokenType": "syscall",
+ "syscall.TokenUIAccess": "syscall",
+ "syscall.TokenUser": "syscall",
+ "syscall.TokenVirtualizationAllowed": "syscall",
+ "syscall.TokenVirtualizationEnabled": "syscall",
+ "syscall.Tokenprimarygroup": "syscall",
+ "syscall.Tokenuser": "syscall",
+ "syscall.TranslateAccountName": "syscall",
+ "syscall.TranslateName": "syscall",
+ "syscall.TransmitFile": "syscall",
+ "syscall.TransmitFileBuffers": "syscall",
+ "syscall.Truncate": "syscall",
+ "syscall.USAGE_MATCH_TYPE_AND": "syscall",
+ "syscall.USAGE_MATCH_TYPE_OR": "syscall",
+ "syscall.UTF16FromString": "syscall",
+ "syscall.UTF16PtrFromString": "syscall",
+ "syscall.UTF16ToString": "syscall",
+ "syscall.Ucred": "syscall",
+ "syscall.Umask": "syscall",
+ "syscall.Uname": "syscall",
+ "syscall.Undelete": "syscall",
+ "syscall.UnixCredentials": "syscall",
+ "syscall.UnixRights": "syscall",
+ "syscall.Unlink": "syscall",
+ "syscall.Unlinkat": "syscall",
+ "syscall.UnmapViewOfFile": "syscall",
+ "syscall.Unmount": "syscall",
+ "syscall.Unsetenv": "syscall",
+ "syscall.Unshare": "syscall",
+ "syscall.UserInfo10": "syscall",
+ "syscall.Ustat": "syscall",
+ "syscall.Ustat_t": "syscall",
+ "syscall.Utimbuf": "syscall",
+ "syscall.Utime": "syscall",
+ "syscall.Utimes": "syscall",
+ "syscall.UtimesNano": "syscall",
+ "syscall.Utsname": "syscall",
+ "syscall.VDISCARD": "syscall",
+ "syscall.VDSUSP": "syscall",
+ "syscall.VEOF": "syscall",
+ "syscall.VEOL": "syscall",
+ "syscall.VEOL2": "syscall",
+ "syscall.VERASE": "syscall",
+ "syscall.VERASE2": "syscall",
+ "syscall.VINTR": "syscall",
+ "syscall.VKILL": "syscall",
+ "syscall.VLNEXT": "syscall",
+ "syscall.VMIN": "syscall",
+ "syscall.VQUIT": "syscall",
+ "syscall.VREPRINT": "syscall",
+ "syscall.VSTART": "syscall",
+ "syscall.VSTATUS": "syscall",
+ "syscall.VSTOP": "syscall",
+ "syscall.VSUSP": "syscall",
+ "syscall.VSWTC": "syscall",
+ "syscall.VT0": "syscall",
+ "syscall.VT1": "syscall",
+ "syscall.VTDLY": "syscall",
+ "syscall.VTIME": "syscall",
+ "syscall.VWERASE": "syscall",
+ "syscall.VirtualLock": "syscall",
+ "syscall.VirtualUnlock": "syscall",
+ "syscall.WAIT_ABANDONED": "syscall",
+ "syscall.WAIT_FAILED": "syscall",
+ "syscall.WAIT_OBJECT_0": "syscall",
+ "syscall.WAIT_TIMEOUT": "syscall",
+ "syscall.WALL": "syscall",
+ "syscall.WALLSIG": "syscall",
+ "syscall.WALTSIG": "syscall",
+ "syscall.WCLONE": "syscall",
+ "syscall.WCONTINUED": "syscall",
+ "syscall.WCOREFLAG": "syscall",
+ "syscall.WEXITED": "syscall",
+ "syscall.WLINUXCLONE": "syscall",
+ "syscall.WNOHANG": "syscall",
+ "syscall.WNOTHREAD": "syscall",
+ "syscall.WNOWAIT": "syscall",
+ "syscall.WNOZOMBIE": "syscall",
+ "syscall.WOPTSCHECKED": "syscall",
+ "syscall.WORDSIZE": "syscall",
+ "syscall.WSABuf": "syscall",
+ "syscall.WSACleanup": "syscall",
+ "syscall.WSADESCRIPTION_LEN": "syscall",
+ "syscall.WSAData": "syscall",
+ "syscall.WSAEACCES": "syscall",
+ "syscall.WSAECONNRESET": "syscall",
+ "syscall.WSAEnumProtocols": "syscall",
+ "syscall.WSAID_CONNECTEX": "syscall",
+ "syscall.WSAIoctl": "syscall",
+ "syscall.WSAPROTOCOL_LEN": "syscall",
+ "syscall.WSAProtocolChain": "syscall",
+ "syscall.WSAProtocolInfo": "syscall",
+ "syscall.WSARecv": "syscall",
+ "syscall.WSARecvFrom": "syscall",
+ "syscall.WSASYS_STATUS_LEN": "syscall",
+ "syscall.WSASend": "syscall",
+ "syscall.WSASendTo": "syscall",
+ "syscall.WSASendto": "syscall",
+ "syscall.WSAStartup": "syscall",
+ "syscall.WSTOPPED": "syscall",
+ "syscall.WTRAPPED": "syscall",
+ "syscall.WUNTRACED": "syscall",
+ "syscall.Wait4": "syscall",
+ "syscall.WaitForSingleObject": "syscall",
+ "syscall.WaitStatus": "syscall",
+ "syscall.Win32FileAttributeData": "syscall",
+ "syscall.Win32finddata": "syscall",
+ "syscall.Write": "syscall",
+ "syscall.WriteConsole": "syscall",
+ "syscall.WriteFile": "syscall",
+ "syscall.X509_ASN_ENCODING": "syscall",
+ "syscall.XCASE": "syscall",
+ "syscall.XP1_CONNECTIONLESS": "syscall",
+ "syscall.XP1_CONNECT_DATA": "syscall",
+ "syscall.XP1_DISCONNECT_DATA": "syscall",
+ "syscall.XP1_EXPEDITED_DATA": "syscall",
+ "syscall.XP1_GRACEFUL_CLOSE": "syscall",
+ "syscall.XP1_GUARANTEED_DELIVERY": "syscall",
+ "syscall.XP1_GUARANTEED_ORDER": "syscall",
+ "syscall.XP1_IFS_HANDLES": "syscall",
+ "syscall.XP1_MESSAGE_ORIENTED": "syscall",
+ "syscall.XP1_MULTIPOINT_CONTROL_PLANE": "syscall",
+ "syscall.XP1_MULTIPOINT_DATA_PLANE": "syscall",
+ "syscall.XP1_PARTIAL_MESSAGE": "syscall",
+ "syscall.XP1_PSEUDO_STREAM": "syscall",
+ "syscall.XP1_QOS_SUPPORTED": "syscall",
+ "syscall.XP1_SAN_SUPPORT_SDP": "syscall",
+ "syscall.XP1_SUPPORT_BROADCAST": "syscall",
+ "syscall.XP1_SUPPORT_MULTIPOINT": "syscall",
+ "syscall.XP1_UNI_RECV": "syscall",
+ "syscall.XP1_UNI_SEND": "syscall",
+ "syslog.Dial": "log/syslog",
+ "syslog.LOG_ALERT": "log/syslog",
+ "syslog.LOG_AUTH": "log/syslog",
+ "syslog.LOG_AUTHPRIV": "log/syslog",
+ "syslog.LOG_CRIT": "log/syslog",
+ "syslog.LOG_CRON": "log/syslog",
+ "syslog.LOG_DAEMON": "log/syslog",
+ "syslog.LOG_DEBUG": "log/syslog",
+ "syslog.LOG_EMERG": "log/syslog",
+ "syslog.LOG_ERR": "log/syslog",
+ "syslog.LOG_FTP": "log/syslog",
+ "syslog.LOG_INFO": "log/syslog",
+ "syslog.LOG_KERN": "log/syslog",
+ "syslog.LOG_LOCAL0": "log/syslog",
+ "syslog.LOG_LOCAL1": "log/syslog",
+ "syslog.LOG_LOCAL2": "log/syslog",
+ "syslog.LOG_LOCAL3": "log/syslog",
+ "syslog.LOG_LOCAL4": "log/syslog",
+ "syslog.LOG_LOCAL5": "log/syslog",
+ "syslog.LOG_LOCAL6": "log/syslog",
+ "syslog.LOG_LOCAL7": "log/syslog",
+ "syslog.LOG_LPR": "log/syslog",
+ "syslog.LOG_MAIL": "log/syslog",
+ "syslog.LOG_NEWS": "log/syslog",
+ "syslog.LOG_NOTICE": "log/syslog",
+ "syslog.LOG_SYSLOG": "log/syslog",
+ "syslog.LOG_USER": "log/syslog",
+ "syslog.LOG_UUCP": "log/syslog",
+ "syslog.LOG_WARNING": "log/syslog",
+ "syslog.New": "log/syslog",
+ "syslog.NewLogger": "log/syslog",
+ "syslog.Priority": "log/syslog",
+ "syslog.Writer": "log/syslog",
+ "tabwriter.AlignRight": "text/tabwriter",
+ "tabwriter.Debug": "text/tabwriter",
+ "tabwriter.DiscardEmptyColumns": "text/tabwriter",
+ "tabwriter.Escape": "text/tabwriter",
+ "tabwriter.FilterHTML": "text/tabwriter",
+ "tabwriter.NewWriter": "text/tabwriter",
+ "tabwriter.StripEscape": "text/tabwriter",
+ "tabwriter.TabIndent": "text/tabwriter",
+ "tabwriter.Writer": "text/tabwriter",
+ "tar.ErrFieldTooLong": "archive/tar",
+ "tar.ErrHeader": "archive/tar",
+ "tar.ErrWriteAfterClose": "archive/tar",
+ "tar.ErrWriteTooLong": "archive/tar",
+ "tar.FileInfoHeader": "archive/tar",
+ "tar.Header": "archive/tar",
+ "tar.NewReader": "archive/tar",
+ "tar.NewWriter": "archive/tar",
+ "tar.Reader": "archive/tar",
+ "tar.TypeBlock": "archive/tar",
+ "tar.TypeChar": "archive/tar",
+ "tar.TypeCont": "archive/tar",
+ "tar.TypeDir": "archive/tar",
+ "tar.TypeFifo": "archive/tar",
+ "tar.TypeGNULongLink": "archive/tar",
+ "tar.TypeGNULongName": "archive/tar",
+ "tar.TypeGNUSparse": "archive/tar",
+ "tar.TypeLink": "archive/tar",
+ "tar.TypeReg": "archive/tar",
+ "tar.TypeRegA": "archive/tar",
+ "tar.TypeSymlink": "archive/tar",
+ "tar.TypeXGlobalHeader": "archive/tar",
+ "tar.TypeXHeader": "archive/tar",
+ "tar.Writer": "archive/tar",
+ "template.CSS": "html/template",
+ "template.ErrAmbigContext": "html/template",
+ "template.ErrBadHTML": "html/template",
+ "template.ErrBranchEnd": "html/template",
+ "template.ErrEndContext": "html/template",
+ "template.ErrNoSuchTemplate": "html/template",
+ "template.ErrOutputContext": "html/template",
+ "template.ErrPartialCharset": "html/template",
+ "template.ErrPartialEscape": "html/template",
+ "template.ErrRangeLoopReentry": "html/template",
+ "template.ErrSlashAmbig": "html/template",
+ "template.Error": "html/template",
+ "template.ErrorCode": "html/template",
+ "template.ExecError": "text/template",
+ // "template.FuncMap" is ambiguous
+ "template.HTML": "html/template",
+ "template.HTMLAttr": "html/template",
+ // "template.HTMLEscape" is ambiguous
+ // "template.HTMLEscapeString" is ambiguous
+ // "template.HTMLEscaper" is ambiguous
+ // "template.IsTrue" is ambiguous
+ "template.JS": "html/template",
+ // "template.JSEscape" is ambiguous
+ // "template.JSEscapeString" is ambiguous
+ // "template.JSEscaper" is ambiguous
+ "template.JSStr": "html/template",
+ // "template.Must" is ambiguous
+ // "template.New" is ambiguous
+ "template.OK": "html/template",
+ // "template.ParseFiles" is ambiguous
+ // "template.ParseGlob" is ambiguous
+ // "template.Template" is ambiguous
+ "template.URL": "html/template",
+ // "template.URLQueryEscaper" is ambiguous
+ "testing.AllocsPerRun": "testing",
+ "testing.B": "testing",
+ "testing.Benchmark": "testing",
+ "testing.BenchmarkResult": "testing",
+ "testing.Cover": "testing",
+ "testing.CoverBlock": "testing",
+ "testing.Coverage": "testing",
+ "testing.InternalBenchmark": "testing",
+ "testing.InternalExample": "testing",
+ "testing.InternalTest": "testing",
+ "testing.M": "testing",
+ "testing.Main": "testing",
+ "testing.MainStart": "testing",
+ "testing.PB": "testing",
+ "testing.RegisterCover": "testing",
+ "testing.RunBenchmarks": "testing",
+ "testing.RunExamples": "testing",
+ "testing.RunTests": "testing",
+ "testing.Short": "testing",
+ "testing.T": "testing",
+ "testing.Verbose": "testing",
+ "textproto.CanonicalMIMEHeaderKey": "net/textproto",
+ "textproto.Conn": "net/textproto",
+ "textproto.Dial": "net/textproto",
+ "textproto.Error": "net/textproto",
+ "textproto.MIMEHeader": "net/textproto",
+ "textproto.NewConn": "net/textproto",
+ "textproto.NewReader": "net/textproto",
+ "textproto.NewWriter": "net/textproto",
+ "textproto.Pipeline": "net/textproto",
+ "textproto.ProtocolError": "net/textproto",
+ "textproto.Reader": "net/textproto",
+ "textproto.TrimBytes": "net/textproto",
+ "textproto.TrimString": "net/textproto",
+ "textproto.Writer": "net/textproto",
+ "time.ANSIC": "time",
+ "time.After": "time",
+ "time.AfterFunc": "time",
+ "time.April": "time",
+ "time.August": "time",
+ "time.Date": "time",
+ "time.December": "time",
+ "time.Duration": "time",
+ "time.February": "time",
+ "time.FixedZone": "time",
+ "time.Friday": "time",
+ "time.Hour": "time",
+ "time.January": "time",
+ "time.July": "time",
+ "time.June": "time",
+ "time.Kitchen": "time",
+ "time.LoadLocation": "time",
+ "time.Local": "time",
+ "time.Location": "time",
+ "time.March": "time",
+ "time.May": "time",
+ "time.Microsecond": "time",
+ "time.Millisecond": "time",
+ "time.Minute": "time",
+ "time.Monday": "time",
+ "time.Month": "time",
+ "time.Nanosecond": "time",
+ "time.NewTicker": "time",
+ "time.NewTimer": "time",
+ "time.November": "time",
+ "time.Now": "time",
+ "time.October": "time",
+ "time.Parse": "time",
+ "time.ParseDuration": "time",
+ "time.ParseError": "time",
+ "time.ParseInLocation": "time",
+ "time.RFC1123": "time",
+ "time.RFC1123Z": "time",
+ "time.RFC3339": "time",
+ "time.RFC3339Nano": "time",
+ "time.RFC822": "time",
+ "time.RFC822Z": "time",
+ "time.RFC850": "time",
+ "time.RubyDate": "time",
+ "time.Saturday": "time",
+ "time.Second": "time",
+ "time.September": "time",
+ "time.Since": "time",
+ "time.Sleep": "time",
+ "time.Stamp": "time",
+ "time.StampMicro": "time",
+ "time.StampMilli": "time",
+ "time.StampNano": "time",
+ "time.Sunday": "time",
+ "time.Thursday": "time",
+ "time.Tick": "time",
+ "time.Ticker": "time",
+ "time.Time": "time",
+ "time.Timer": "time",
+ "time.Tuesday": "time",
+ "time.UTC": "time",
+ "time.Unix": "time",
+ "time.UnixDate": "time",
+ "time.Wednesday": "time",
+ "time.Weekday": "time",
+ "tls.Certificate": "crypto/tls",
+ "tls.Client": "crypto/tls",
+ "tls.ClientAuthType": "crypto/tls",
+ "tls.ClientHelloInfo": "crypto/tls",
+ "tls.ClientSessionCache": "crypto/tls",
+ "tls.ClientSessionState": "crypto/tls",
+ "tls.Config": "crypto/tls",
+ "tls.Conn": "crypto/tls",
+ "tls.ConnectionState": "crypto/tls",
+ "tls.CurveID": "crypto/tls",
+ "tls.CurveP256": "crypto/tls",
+ "tls.CurveP384": "crypto/tls",
+ "tls.CurveP521": "crypto/tls",
+ "tls.Dial": "crypto/tls",
+ "tls.DialWithDialer": "crypto/tls",
+ "tls.Listen": "crypto/tls",
+ "tls.LoadX509KeyPair": "crypto/tls",
+ "tls.NewLRUClientSessionCache": "crypto/tls",
+ "tls.NewListener": "crypto/tls",
+ "tls.NoClientCert": "crypto/tls",
+ "tls.RecordHeaderError": "crypto/tls",
+ "tls.RenegotiateFreelyAsClient": "crypto/tls",
+ "tls.RenegotiateNever": "crypto/tls",
+ "tls.RenegotiateOnceAsClient": "crypto/tls",
+ "tls.RenegotiationSupport": "crypto/tls",
+ "tls.RequestClientCert": "crypto/tls",
+ "tls.RequireAndVerifyClientCert": "crypto/tls",
+ "tls.RequireAnyClientCert": "crypto/tls",
+ "tls.Server": "crypto/tls",
+ "tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256": "crypto/tls",
+ "tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384": "crypto/tls",
+ "tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384": "crypto/tls",
+ "tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA": "crypto/tls",
+ "tls.TLS_FALLBACK_SCSV": "crypto/tls",
+ "tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA": "crypto/tls",
+ "tls.TLS_RSA_WITH_AES_128_CBC_SHA": "crypto/tls",
+ "tls.TLS_RSA_WITH_AES_128_GCM_SHA256": "crypto/tls",
+ "tls.TLS_RSA_WITH_AES_256_CBC_SHA": "crypto/tls",
+ "tls.TLS_RSA_WITH_AES_256_GCM_SHA384": "crypto/tls",
+ "tls.TLS_RSA_WITH_RC4_128_SHA": "crypto/tls",
+ "tls.VerifyClientCertIfGiven": "crypto/tls",
+ "tls.VersionSSL30": "crypto/tls",
+ "tls.VersionTLS10": "crypto/tls",
+ "tls.VersionTLS11": "crypto/tls",
+ "tls.VersionTLS12": "crypto/tls",
+ "tls.X509KeyPair": "crypto/tls",
+ "token.ADD": "go/token",
+ "token.ADD_ASSIGN": "go/token",
+ "token.AND": "go/token",
+ "token.AND_ASSIGN": "go/token",
+ "token.AND_NOT": "go/token",
+ "token.AND_NOT_ASSIGN": "go/token",
+ "token.ARROW": "go/token",
+ "token.ASSIGN": "go/token",
+ "token.BREAK": "go/token",
+ "token.CASE": "go/token",
+ "token.CHAN": "go/token",
+ "token.CHAR": "go/token",
+ "token.COLON": "go/token",
+ "token.COMMA": "go/token",
+ "token.COMMENT": "go/token",
+ "token.CONST": "go/token",
+ "token.CONTINUE": "go/token",
+ "token.DEC": "go/token",
+ "token.DEFAULT": "go/token",
+ "token.DEFER": "go/token",
+ "token.DEFINE": "go/token",
+ "token.ELLIPSIS": "go/token",
+ "token.ELSE": "go/token",
+ "token.EOF": "go/token",
+ "token.EQL": "go/token",
+ "token.FALLTHROUGH": "go/token",
+ "token.FLOAT": "go/token",
+ "token.FOR": "go/token",
+ "token.FUNC": "go/token",
+ "token.File": "go/token",
+ "token.FileSet": "go/token",
+ "token.GEQ": "go/token",
+ "token.GO": "go/token",
+ "token.GOTO": "go/token",
+ "token.GTR": "go/token",
+ "token.HighestPrec": "go/token",
+ "token.IDENT": "go/token",
+ "token.IF": "go/token",
+ "token.ILLEGAL": "go/token",
+ "token.IMAG": "go/token",
+ "token.IMPORT": "go/token",
+ "token.INC": "go/token",
+ "token.INT": "go/token",
+ "token.INTERFACE": "go/token",
+ "token.LAND": "go/token",
+ "token.LBRACE": "go/token",
+ "token.LBRACK": "go/token",
+ "token.LEQ": "go/token",
+ "token.LOR": "go/token",
+ "token.LPAREN": "go/token",
+ "token.LSS": "go/token",
+ "token.Lookup": "go/token",
+ "token.LowestPrec": "go/token",
+ "token.MAP": "go/token",
+ "token.MUL": "go/token",
+ "token.MUL_ASSIGN": "go/token",
+ "token.NEQ": "go/token",
+ "token.NOT": "go/token",
+ "token.NewFileSet": "go/token",
+ "token.NoPos": "go/token",
+ "token.OR": "go/token",
+ "token.OR_ASSIGN": "go/token",
+ "token.PACKAGE": "go/token",
+ "token.PERIOD": "go/token",
+ "token.Pos": "go/token",
+ "token.Position": "go/token",
+ "token.QUO": "go/token",
+ "token.QUO_ASSIGN": "go/token",
+ "token.RANGE": "go/token",
+ "token.RBRACE": "go/token",
+ "token.RBRACK": "go/token",
+ "token.REM": "go/token",
+ "token.REM_ASSIGN": "go/token",
+ "token.RETURN": "go/token",
+ "token.RPAREN": "go/token",
+ "token.SELECT": "go/token",
+ "token.SEMICOLON": "go/token",
+ "token.SHL": "go/token",
+ "token.SHL_ASSIGN": "go/token",
+ "token.SHR": "go/token",
+ "token.SHR_ASSIGN": "go/token",
+ "token.STRING": "go/token",
+ "token.STRUCT": "go/token",
+ "token.SUB": "go/token",
+ "token.SUB_ASSIGN": "go/token",
+ "token.SWITCH": "go/token",
+ "token.TYPE": "go/token",
+ "token.Token": "go/token",
+ "token.UnaryPrec": "go/token",
+ "token.VAR": "go/token",
+ "token.XOR": "go/token",
+ "token.XOR_ASSIGN": "go/token",
+ "trace.Start": "runtime/trace",
+ "trace.Stop": "runtime/trace",
+ "types.Array": "go/types",
+ "types.AssertableTo": "go/types",
+ "types.AssignableTo": "go/types",
+ "types.Basic": "go/types",
+ "types.BasicInfo": "go/types",
+ "types.BasicKind": "go/types",
+ "types.Bool": "go/types",
+ "types.Builtin": "go/types",
+ "types.Byte": "go/types",
+ "types.Chan": "go/types",
+ "types.ChanDir": "go/types",
+ "types.Checker": "go/types",
+ "types.Comparable": "go/types",
+ "types.Complex128": "go/types",
+ "types.Complex64": "go/types",
+ "types.Config": "go/types",
+ "types.Const": "go/types",
+ "types.ConvertibleTo": "go/types",
+ "types.DefPredeclaredTestFuncs": "go/types",
+ "types.Error": "go/types",
+ "types.Eval": "go/types",
+ "types.ExprString": "go/types",
+ "types.FieldVal": "go/types",
+ "types.Float32": "go/types",
+ "types.Float64": "go/types",
+ "types.Func": "go/types",
+ "types.Id": "go/types",
+ "types.Identical": "go/types",
+ "types.Implements": "go/types",
+ "types.ImportMode": "go/types",
+ "types.Importer": "go/types",
+ "types.ImporterFrom": "go/types",
+ "types.Info": "go/types",
+ "types.Initializer": "go/types",
+ "types.Int": "go/types",
+ "types.Int16": "go/types",
+ "types.Int32": "go/types",
+ "types.Int64": "go/types",
+ "types.Int8": "go/types",
+ "types.Interface": "go/types",
+ "types.Invalid": "go/types",
+ "types.IsBoolean": "go/types",
+ "types.IsComplex": "go/types",
+ "types.IsConstType": "go/types",
+ "types.IsFloat": "go/types",
+ "types.IsInteger": "go/types",
+ "types.IsInterface": "go/types",
+ "types.IsNumeric": "go/types",
+ "types.IsOrdered": "go/types",
+ "types.IsString": "go/types",
+ "types.IsUnsigned": "go/types",
+ "types.IsUntyped": "go/types",
+ "types.Label": "go/types",
+ "types.LookupFieldOrMethod": "go/types",
+ "types.Map": "go/types",
+ "types.MethodExpr": "go/types",
+ "types.MethodSet": "go/types",
+ "types.MethodVal": "go/types",
+ "types.MissingMethod": "go/types",
+ "types.Named": "go/types",
+ "types.NewArray": "go/types",
+ "types.NewChan": "go/types",
+ "types.NewChecker": "go/types",
+ "types.NewConst": "go/types",
+ "types.NewField": "go/types",
+ "types.NewFunc": "go/types",
+ "types.NewInterface": "go/types",
+ "types.NewLabel": "go/types",
+ "types.NewMap": "go/types",
+ "types.NewMethodSet": "go/types",
+ "types.NewNamed": "go/types",
+ "types.NewPackage": "go/types",
+ "types.NewParam": "go/types",
+ "types.NewPkgName": "go/types",
+ "types.NewPointer": "go/types",
+ "types.NewScope": "go/types",
+ "types.NewSignature": "go/types",
+ "types.NewSlice": "go/types",
+ "types.NewStruct": "go/types",
+ "types.NewTuple": "go/types",
+ "types.NewTypeName": "go/types",
+ "types.NewVar": "go/types",
+ "types.Nil": "go/types",
+ "types.ObjectString": "go/types",
+ "types.Package": "go/types",
+ "types.PkgName": "go/types",
+ "types.Pointer": "go/types",
+ "types.Qualifier": "go/types",
+ "types.RecvOnly": "go/types",
+ "types.RelativeTo": "go/types",
+ "types.Rune": "go/types",
+ "types.Scope": "go/types",
+ "types.Selection": "go/types",
+ "types.SelectionKind": "go/types",
+ "types.SelectionString": "go/types",
+ "types.SendOnly": "go/types",
+ "types.SendRecv": "go/types",
+ "types.Signature": "go/types",
+ "types.Sizes": "go/types",
+ "types.Slice": "go/types",
+ "types.StdSizes": "go/types",
+ "types.String": "go/types",
+ "types.Struct": "go/types",
+ "types.Tuple": "go/types",
+ "types.Typ": "go/types",
+ "types.Type": "go/types",
+ "types.TypeAndValue": "go/types",
+ "types.TypeName": "go/types",
+ "types.TypeString": "go/types",
+ "types.Uint": "go/types",
+ "types.Uint16": "go/types",
+ "types.Uint32": "go/types",
+ "types.Uint64": "go/types",
+ "types.Uint8": "go/types",
+ "types.Uintptr": "go/types",
+ "types.Universe": "go/types",
+ "types.Unsafe": "go/types",
+ "types.UnsafePointer": "go/types",
+ "types.UntypedBool": "go/types",
+ "types.UntypedComplex": "go/types",
+ "types.UntypedFloat": "go/types",
+ "types.UntypedInt": "go/types",
+ "types.UntypedNil": "go/types",
+ "types.UntypedRune": "go/types",
+ "types.UntypedString": "go/types",
+ "types.Var": "go/types",
+ "types.WriteExpr": "go/types",
+ "types.WriteSignature": "go/types",
+ "types.WriteType": "go/types",
+ "unicode.ASCII_Hex_Digit": "unicode",
+ "unicode.Adlam": "unicode",
+ "unicode.Ahom": "unicode",
+ "unicode.Anatolian_Hieroglyphs": "unicode",
+ "unicode.Arabic": "unicode",
+ "unicode.Armenian": "unicode",
+ "unicode.Avestan": "unicode",
+ "unicode.AzeriCase": "unicode",
+ "unicode.Balinese": "unicode",
+ "unicode.Bamum": "unicode",
+ "unicode.Bassa_Vah": "unicode",
+ "unicode.Batak": "unicode",
+ "unicode.Bengali": "unicode",
+ "unicode.Bhaiksuki": "unicode",
+ "unicode.Bidi_Control": "unicode",
+ "unicode.Bopomofo": "unicode",
+ "unicode.Brahmi": "unicode",
+ "unicode.Braille": "unicode",
+ "unicode.Buginese": "unicode",
+ "unicode.Buhid": "unicode",
+ "unicode.C": "unicode",
+ "unicode.Canadian_Aboriginal": "unicode",
+ "unicode.Carian": "unicode",
+ "unicode.CaseRange": "unicode",
+ "unicode.CaseRanges": "unicode",
+ "unicode.Categories": "unicode",
+ "unicode.Caucasian_Albanian": "unicode",
+ "unicode.Cc": "unicode",
+ "unicode.Cf": "unicode",
+ "unicode.Chakma": "unicode",
+ "unicode.Cham": "unicode",
+ "unicode.Cherokee": "unicode",
+ "unicode.Co": "unicode",
+ "unicode.Common": "unicode",
+ "unicode.Coptic": "unicode",
+ "unicode.Cs": "unicode",
+ "unicode.Cuneiform": "unicode",
+ "unicode.Cypriot": "unicode",
+ "unicode.Cyrillic": "unicode",
+ "unicode.Dash": "unicode",
+ "unicode.Deprecated": "unicode",
+ "unicode.Deseret": "unicode",
+ "unicode.Devanagari": "unicode",
+ "unicode.Diacritic": "unicode",
+ "unicode.Digit": "unicode",
+ "unicode.Duployan": "unicode",
+ "unicode.Egyptian_Hieroglyphs": "unicode",
+ "unicode.Elbasan": "unicode",
+ "unicode.Ethiopic": "unicode",
+ "unicode.Extender": "unicode",
+ "unicode.FoldCategory": "unicode",
+ "unicode.FoldScript": "unicode",
+ "unicode.Georgian": "unicode",
+ "unicode.Glagolitic": "unicode",
+ "unicode.Gothic": "unicode",
+ "unicode.Grantha": "unicode",
+ "unicode.GraphicRanges": "unicode",
+ "unicode.Greek": "unicode",
+ "unicode.Gujarati": "unicode",
+ "unicode.Gurmukhi": "unicode",
+ "unicode.Han": "unicode",
+ "unicode.Hangul": "unicode",
+ "unicode.Hanunoo": "unicode",
+ "unicode.Hatran": "unicode",
+ "unicode.Hebrew": "unicode",
+ "unicode.Hex_Digit": "unicode",
+ "unicode.Hiragana": "unicode",
+ "unicode.Hyphen": "unicode",
+ "unicode.IDS_Binary_Operator": "unicode",
+ "unicode.IDS_Trinary_Operator": "unicode",
+ "unicode.Ideographic": "unicode",
+ "unicode.Imperial_Aramaic": "unicode",
+ "unicode.In": "unicode",
+ "unicode.Inherited": "unicode",
+ "unicode.Inscriptional_Pahlavi": "unicode",
+ "unicode.Inscriptional_Parthian": "unicode",
+ "unicode.Is": "unicode",
+ "unicode.IsControl": "unicode",
+ "unicode.IsDigit": "unicode",
+ "unicode.IsGraphic": "unicode",
+ "unicode.IsLetter": "unicode",
+ "unicode.IsLower": "unicode",
+ "unicode.IsMark": "unicode",
+ "unicode.IsNumber": "unicode",
+ "unicode.IsOneOf": "unicode",
+ "unicode.IsPrint": "unicode",
+ "unicode.IsPunct": "unicode",
+ "unicode.IsSpace": "unicode",
+ "unicode.IsSymbol": "unicode",
+ "unicode.IsTitle": "unicode",
+ "unicode.IsUpper": "unicode",
+ "unicode.Javanese": "unicode",
+ "unicode.Join_Control": "unicode",
+ "unicode.Kaithi": "unicode",
+ "unicode.Kannada": "unicode",
+ "unicode.Katakana": "unicode",
+ "unicode.Kayah_Li": "unicode",
+ "unicode.Kharoshthi": "unicode",
+ "unicode.Khmer": "unicode",
+ "unicode.Khojki": "unicode",
+ "unicode.Khudawadi": "unicode",
+ "unicode.L": "unicode",
+ "unicode.Lao": "unicode",
+ "unicode.Latin": "unicode",
+ "unicode.Lepcha": "unicode",
+ "unicode.Letter": "unicode",
+ "unicode.Limbu": "unicode",
+ "unicode.Linear_A": "unicode",
+ "unicode.Linear_B": "unicode",
+ "unicode.Lisu": "unicode",
+ "unicode.Ll": "unicode",
+ "unicode.Lm": "unicode",
+ "unicode.Lo": "unicode",
+ "unicode.Logical_Order_Exception": "unicode",
+ "unicode.Lower": "unicode",
+ "unicode.LowerCase": "unicode",
+ "unicode.Lt": "unicode",
+ "unicode.Lu": "unicode",
+ "unicode.Lycian": "unicode",
+ "unicode.Lydian": "unicode",
+ "unicode.M": "unicode",
+ "unicode.Mahajani": "unicode",
+ "unicode.Malayalam": "unicode",
+ "unicode.Mandaic": "unicode",
+ "unicode.Manichaean": "unicode",
+ "unicode.Marchen": "unicode",
+ "unicode.Mark": "unicode",
+ "unicode.MaxASCII": "unicode",
+ "unicode.MaxCase": "unicode",
+ "unicode.MaxLatin1": "unicode",
+ "unicode.MaxRune": "unicode",
+ "unicode.Mc": "unicode",
+ "unicode.Me": "unicode",
+ "unicode.Meetei_Mayek": "unicode",
+ "unicode.Mende_Kikakui": "unicode",
+ "unicode.Meroitic_Cursive": "unicode",
+ "unicode.Meroitic_Hieroglyphs": "unicode",
+ "unicode.Miao": "unicode",
+ "unicode.Mn": "unicode",
+ "unicode.Modi": "unicode",
+ "unicode.Mongolian": "unicode",
+ "unicode.Mro": "unicode",
+ "unicode.Multani": "unicode",
+ "unicode.Myanmar": "unicode",
+ "unicode.N": "unicode",
+ "unicode.Nabataean": "unicode",
+ "unicode.Nd": "unicode",
+ "unicode.New_Tai_Lue": "unicode",
+ "unicode.Newa": "unicode",
+ "unicode.Nko": "unicode",
+ "unicode.Nl": "unicode",
+ "unicode.No": "unicode",
+ "unicode.Noncharacter_Code_Point": "unicode",
+ "unicode.Number": "unicode",
+ "unicode.Ogham": "unicode",
+ "unicode.Ol_Chiki": "unicode",
+ "unicode.Old_Hungarian": "unicode",
+ "unicode.Old_Italic": "unicode",
+ "unicode.Old_North_Arabian": "unicode",
+ "unicode.Old_Permic": "unicode",
+ "unicode.Old_Persian": "unicode",
+ "unicode.Old_South_Arabian": "unicode",
+ "unicode.Old_Turkic": "unicode",
+ "unicode.Oriya": "unicode",
+ "unicode.Osage": "unicode",
+ "unicode.Osmanya": "unicode",
+ "unicode.Other": "unicode",
+ "unicode.Other_Alphabetic": "unicode",
+ "unicode.Other_Default_Ignorable_Code_Point": "unicode",
+ "unicode.Other_Grapheme_Extend": "unicode",
+ "unicode.Other_ID_Continue": "unicode",
+ "unicode.Other_ID_Start": "unicode",
+ "unicode.Other_Lowercase": "unicode",
+ "unicode.Other_Math": "unicode",
+ "unicode.Other_Uppercase": "unicode",
+ "unicode.P": "unicode",
+ "unicode.Pahawh_Hmong": "unicode",
+ "unicode.Palmyrene": "unicode",
+ "unicode.Pattern_Syntax": "unicode",
+ "unicode.Pattern_White_Space": "unicode",
+ "unicode.Pau_Cin_Hau": "unicode",
+ "unicode.Pc": "unicode",
+ "unicode.Pd": "unicode",
+ "unicode.Pe": "unicode",
+ "unicode.Pf": "unicode",
+ "unicode.Phags_Pa": "unicode",
+ "unicode.Phoenician": "unicode",
+ "unicode.Pi": "unicode",
+ "unicode.Po": "unicode",
+ "unicode.Prepended_Concatenation_Mark": "unicode",
+ "unicode.PrintRanges": "unicode",
+ "unicode.Properties": "unicode",
+ "unicode.Ps": "unicode",
+ "unicode.Psalter_Pahlavi": "unicode",
+ "unicode.Punct": "unicode",
+ "unicode.Quotation_Mark": "unicode",
+ "unicode.Radical": "unicode",
+ "unicode.Range16": "unicode",
+ "unicode.Range32": "unicode",
+ "unicode.RangeTable": "unicode",
+ "unicode.Rejang": "unicode",
+ "unicode.ReplacementChar": "unicode",
+ "unicode.Runic": "unicode",
+ "unicode.S": "unicode",
+ "unicode.STerm": "unicode",
+ "unicode.Samaritan": "unicode",
+ "unicode.Saurashtra": "unicode",
+ "unicode.Sc": "unicode",
+ "unicode.Scripts": "unicode",
+ "unicode.Sentence_Terminal": "unicode",
+ "unicode.Sharada": "unicode",
+ "unicode.Shavian": "unicode",
+ "unicode.Siddham": "unicode",
+ "unicode.SignWriting": "unicode",
+ "unicode.SimpleFold": "unicode",
+ "unicode.Sinhala": "unicode",
+ "unicode.Sk": "unicode",
+ "unicode.Sm": "unicode",
+ "unicode.So": "unicode",
+ "unicode.Soft_Dotted": "unicode",
+ "unicode.Sora_Sompeng": "unicode",
+ "unicode.Space": "unicode",
+ "unicode.SpecialCase": "unicode",
+ "unicode.Sundanese": "unicode",
+ "unicode.Syloti_Nagri": "unicode",
+ "unicode.Symbol": "unicode",
+ "unicode.Syriac": "unicode",
+ "unicode.Tagalog": "unicode",
+ "unicode.Tagbanwa": "unicode",
+ "unicode.Tai_Le": "unicode",
+ "unicode.Tai_Tham": "unicode",
+ "unicode.Tai_Viet": "unicode",
+ "unicode.Takri": "unicode",
+ "unicode.Tamil": "unicode",
+ "unicode.Tangut": "unicode",
+ "unicode.Telugu": "unicode",
+ "unicode.Terminal_Punctuation": "unicode",
+ "unicode.Thaana": "unicode",
+ "unicode.Thai": "unicode",
+ "unicode.Tibetan": "unicode",
+ "unicode.Tifinagh": "unicode",
+ "unicode.Tirhuta": "unicode",
+ "unicode.Title": "unicode",
+ "unicode.TitleCase": "unicode",
+ "unicode.To": "unicode",
+ "unicode.ToLower": "unicode",
+ "unicode.ToTitle": "unicode",
+ "unicode.ToUpper": "unicode",
+ "unicode.TurkishCase": "unicode",
+ "unicode.Ugaritic": "unicode",
+ "unicode.Unified_Ideograph": "unicode",
+ "unicode.Upper": "unicode",
+ "unicode.UpperCase": "unicode",
+ "unicode.UpperLower": "unicode",
+ "unicode.Vai": "unicode",
+ "unicode.Variation_Selector": "unicode",
+ "unicode.Version": "unicode",
+ "unicode.Warang_Citi": "unicode",
+ "unicode.White_Space": "unicode",
+ "unicode.Yi": "unicode",
+ "unicode.Z": "unicode",
+ "unicode.Zl": "unicode",
+ "unicode.Zp": "unicode",
+ "unicode.Zs": "unicode",
+ "url.Error": "net/url",
+ "url.EscapeError": "net/url",
+ "url.InvalidHostError": "net/url",
+ "url.Parse": "net/url",
+ "url.ParseQuery": "net/url",
+ "url.ParseRequestURI": "net/url",
+ "url.QueryEscape": "net/url",
+ "url.QueryUnescape": "net/url",
+ "url.URL": "net/url",
+ "url.User": "net/url",
+ "url.UserPassword": "net/url",
+ "url.Userinfo": "net/url",
+ "url.Values": "net/url",
+ "user.Current": "os/user",
+ "user.Group": "os/user",
+ "user.Lookup": "os/user",
+ "user.LookupGroup": "os/user",
+ "user.LookupGroupId": "os/user",
+ "user.LookupId": "os/user",
+ "user.UnknownGroupError": "os/user",
+ "user.UnknownGroupIdError": "os/user",
+ "user.UnknownUserError": "os/user",
+ "user.UnknownUserIdError": "os/user",
+ "user.User": "os/user",
+ "utf16.Decode": "unicode/utf16",
+ "utf16.DecodeRune": "unicode/utf16",
+ "utf16.Encode": "unicode/utf16",
+ "utf16.EncodeRune": "unicode/utf16",
+ "utf16.IsSurrogate": "unicode/utf16",
+ "utf8.DecodeLastRune": "unicode/utf8",
+ "utf8.DecodeLastRuneInString": "unicode/utf8",
+ "utf8.DecodeRune": "unicode/utf8",
+ "utf8.DecodeRuneInString": "unicode/utf8",
+ "utf8.EncodeRune": "unicode/utf8",
+ "utf8.FullRune": "unicode/utf8",
+ "utf8.FullRuneInString": "unicode/utf8",
+ "utf8.MaxRune": "unicode/utf8",
+ "utf8.RuneCount": "unicode/utf8",
+ "utf8.RuneCountInString": "unicode/utf8",
+ "utf8.RuneError": "unicode/utf8",
+ "utf8.RuneLen": "unicode/utf8",
+ "utf8.RuneSelf": "unicode/utf8",
+ "utf8.RuneStart": "unicode/utf8",
+ "utf8.UTFMax": "unicode/utf8",
+ "utf8.Valid": "unicode/utf8",
+ "utf8.ValidRune": "unicode/utf8",
+ "utf8.ValidString": "unicode/utf8",
+ "x509.CANotAuthorizedForThisName": "crypto/x509",
+ "x509.CertPool": "crypto/x509",
+ "x509.Certificate": "crypto/x509",
+ "x509.CertificateInvalidError": "crypto/x509",
+ "x509.CertificateRequest": "crypto/x509",
+ "x509.ConstraintViolationError": "crypto/x509",
+ "x509.CreateCertificate": "crypto/x509",
+ "x509.CreateCertificateRequest": "crypto/x509",
+ "x509.DSA": "crypto/x509",
+ "x509.DSAWithSHA1": "crypto/x509",
+ "x509.DSAWithSHA256": "crypto/x509",
+ "x509.DecryptPEMBlock": "crypto/x509",
+ "x509.ECDSA": "crypto/x509",
+ "x509.ECDSAWithSHA1": "crypto/x509",
+ "x509.ECDSAWithSHA256": "crypto/x509",
+ "x509.ECDSAWithSHA384": "crypto/x509",
+ "x509.ECDSAWithSHA512": "crypto/x509",
+ "x509.EncryptPEMBlock": "crypto/x509",
+ "x509.ErrUnsupportedAlgorithm": "crypto/x509",
+ "x509.Expired": "crypto/x509",
+ "x509.ExtKeyUsage": "crypto/x509",
+ "x509.ExtKeyUsageAny": "crypto/x509",
+ "x509.ExtKeyUsageClientAuth": "crypto/x509",
+ "x509.ExtKeyUsageCodeSigning": "crypto/x509",
+ "x509.ExtKeyUsageEmailProtection": "crypto/x509",
+ "x509.ExtKeyUsageIPSECEndSystem": "crypto/x509",
+ "x509.ExtKeyUsageIPSECTunnel": "crypto/x509",
+ "x509.ExtKeyUsageIPSECUser": "crypto/x509",
+ "x509.ExtKeyUsageMicrosoftServerGatedCrypto": "crypto/x509",
+ "x509.ExtKeyUsageNetscapeServerGatedCrypto": "crypto/x509",
+ "x509.ExtKeyUsageOCSPSigning": "crypto/x509",
+ "x509.ExtKeyUsageServerAuth": "crypto/x509",
+ "x509.ExtKeyUsageTimeStamping": "crypto/x509",
+ "x509.HostnameError": "crypto/x509",
+ "x509.IncompatibleUsage": "crypto/x509",
+ "x509.IncorrectPasswordError": "crypto/x509",
+ "x509.InsecureAlgorithmError": "crypto/x509",
+ "x509.InvalidReason": "crypto/x509",
+ "x509.IsEncryptedPEMBlock": "crypto/x509",
+ "x509.KeyUsage": "crypto/x509",
+ "x509.KeyUsageCRLSign": "crypto/x509",
+ "x509.KeyUsageCertSign": "crypto/x509",
+ "x509.KeyUsageContentCommitment": "crypto/x509",
+ "x509.KeyUsageDataEncipherment": "crypto/x509",
+ "x509.KeyUsageDecipherOnly": "crypto/x509",
+ "x509.KeyUsageDigitalSignature": "crypto/x509",
+ "x509.KeyUsageEncipherOnly": "crypto/x509",
+ "x509.KeyUsageKeyAgreement": "crypto/x509",
+ "x509.KeyUsageKeyEncipherment": "crypto/x509",
+ "x509.MD2WithRSA": "crypto/x509",
+ "x509.MD5WithRSA": "crypto/x509",
+ "x509.MarshalECPrivateKey": "crypto/x509",
+ "x509.MarshalPKCS1PrivateKey": "crypto/x509",
+ "x509.MarshalPKIXPublicKey": "crypto/x509",
+ "x509.NewCertPool": "crypto/x509",
+ "x509.NotAuthorizedToSign": "crypto/x509",
+ "x509.PEMCipher": "crypto/x509",
+ "x509.PEMCipher3DES": "crypto/x509",
+ "x509.PEMCipherAES128": "crypto/x509",
+ "x509.PEMCipherAES192": "crypto/x509",
+ "x509.PEMCipherAES256": "crypto/x509",
+ "x509.PEMCipherDES": "crypto/x509",
+ "x509.ParseCRL": "crypto/x509",
+ "x509.ParseCertificate": "crypto/x509",
+ "x509.ParseCertificateRequest": "crypto/x509",
+ "x509.ParseCertificates": "crypto/x509",
+ "x509.ParseDERCRL": "crypto/x509",
+ "x509.ParseECPrivateKey": "crypto/x509",
+ "x509.ParsePKCS1PrivateKey": "crypto/x509",
+ "x509.ParsePKCS8PrivateKey": "crypto/x509",
+ "x509.ParsePKIXPublicKey": "crypto/x509",
+ "x509.PublicKeyAlgorithm": "crypto/x509",
+ "x509.RSA": "crypto/x509",
+ "x509.SHA1WithRSA": "crypto/x509",
+ "x509.SHA256WithRSA": "crypto/x509",
+ "x509.SHA384WithRSA": "crypto/x509",
+ "x509.SHA512WithRSA": "crypto/x509",
+ "x509.SignatureAlgorithm": "crypto/x509",
+ "x509.SystemCertPool": "crypto/x509",
+ "x509.SystemRootsError": "crypto/x509",
+ "x509.TooManyIntermediates": "crypto/x509",
+ "x509.UnhandledCriticalExtension": "crypto/x509",
+ "x509.UnknownAuthorityError": "crypto/x509",
+ "x509.UnknownPublicKeyAlgorithm": "crypto/x509",
+ "x509.UnknownSignatureAlgorithm": "crypto/x509",
+ "x509.VerifyOptions": "crypto/x509",
+ "xml.Attr": "encoding/xml",
+ "xml.CharData": "encoding/xml",
+ "xml.Comment": "encoding/xml",
+ "xml.CopyToken": "encoding/xml",
+ "xml.Decoder": "encoding/xml",
+ "xml.Directive": "encoding/xml",
+ "xml.Encoder": "encoding/xml",
+ "xml.EndElement": "encoding/xml",
+ "xml.Escape": "encoding/xml",
+ "xml.EscapeText": "encoding/xml",
+ "xml.HTMLAutoClose": "encoding/xml",
+ "xml.HTMLEntity": "encoding/xml",
+ "xml.Header": "encoding/xml",
+ "xml.Marshal": "encoding/xml",
+ "xml.MarshalIndent": "encoding/xml",
+ "xml.Marshaler": "encoding/xml",
+ "xml.MarshalerAttr": "encoding/xml",
+ "xml.Name": "encoding/xml",
+ "xml.NewDecoder": "encoding/xml",
+ "xml.NewEncoder": "encoding/xml",
+ "xml.ProcInst": "encoding/xml",
+ "xml.StartElement": "encoding/xml",
+ "xml.SyntaxError": "encoding/xml",
+ "xml.TagPathError": "encoding/xml",
+ "xml.Token": "encoding/xml",
+ "xml.Unmarshal": "encoding/xml",
+ "xml.UnmarshalError": "encoding/xml",
+ "xml.Unmarshaler": "encoding/xml",
+ "xml.UnmarshalerAttr": "encoding/xml",
+ "xml.UnsupportedTypeError": "encoding/xml",
+ "zip.Compressor": "archive/zip",
+ "zip.Decompressor": "archive/zip",
+ "zip.Deflate": "archive/zip",
+ "zip.ErrAlgorithm": "archive/zip",
+ "zip.ErrChecksum": "archive/zip",
+ "zip.ErrFormat": "archive/zip",
+ "zip.File": "archive/zip",
+ "zip.FileHeader": "archive/zip",
+ "zip.FileInfoHeader": "archive/zip",
+ "zip.NewReader": "archive/zip",
+ "zip.NewWriter": "archive/zip",
+ "zip.OpenReader": "archive/zip",
+ "zip.ReadCloser": "archive/zip",
+ "zip.Reader": "archive/zip",
+ "zip.RegisterCompressor": "archive/zip",
+ "zip.RegisterDecompressor": "archive/zip",
+ "zip.Store": "archive/zip",
+ "zip.Writer": "archive/zip",
+ "zlib.BestCompression": "compress/zlib",
+ "zlib.BestSpeed": "compress/zlib",
+ "zlib.DefaultCompression": "compress/zlib",
+ "zlib.ErrChecksum": "compress/zlib",
+ "zlib.ErrDictionary": "compress/zlib",
+ "zlib.ErrHeader": "compress/zlib",
+ "zlib.NewReader": "compress/zlib",
+ "zlib.NewReaderDict": "compress/zlib",
+ "zlib.NewWriter": "compress/zlib",
+ "zlib.NewWriterLevel": "compress/zlib",
+ "zlib.NewWriterLevelDict": "compress/zlib",
+ "zlib.NoCompression": "compress/zlib",
+ "zlib.Resetter": "compress/zlib",
+ "zlib.Writer": "compress/zlib",
+
+ "unsafe.Alignof": "unsafe",
+ "unsafe.ArbitraryType": "unsafe",
+ "unsafe.Offsetof": "unsafe",
+ "unsafe.Pointer": "unsafe",
+ "unsafe.Sizeof": "unsafe",
+}
diff --git a/vendor/gopkg.in/check.v1/.gitignore b/vendor/gopkg.in/check.v1/.gitignore
new file mode 100644
index 000000000..191a5360b
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/.gitignore
@@ -0,0 +1,4 @@
+_*
+*.swp
+*.[568]
+[568].out
diff --git a/vendor/gopkg.in/check.v1/LICENSE b/vendor/gopkg.in/check.v1/LICENSE
new file mode 100644
index 000000000..545cf2d33
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/LICENSE
@@ -0,0 +1,25 @@
+Gocheck - A rich testing framework for Go
+
+Copyright (c) 2010-2013 Gustavo Niemeyer <gustavo@niemeyer.net>
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this
+ list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/gopkg.in/check.v1/README.md b/vendor/gopkg.in/check.v1/README.md
new file mode 100644
index 000000000..0ca9e5726
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/README.md
@@ -0,0 +1,20 @@
+Instructions
+============
+
+Install the package with:
+
+ go get gopkg.in/check.v1
+
+Import it with:
+
+ import "gopkg.in/check.v1"
+
+and use _check_ as the package name inside the code.
+
+For more details, visit the project page:
+
+* http://labix.org/gocheck
+
+and the API documentation:
+
+* https://gopkg.in/check.v1
diff --git a/vendor/gopkg.in/check.v1/TODO b/vendor/gopkg.in/check.v1/TODO
new file mode 100644
index 000000000..33498270e
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/TODO
@@ -0,0 +1,2 @@
+- Assert(slice, Contains, item)
+- Parallel test support
diff --git a/vendor/gopkg.in/check.v1/benchmark.go b/vendor/gopkg.in/check.v1/benchmark.go
new file mode 100644
index 000000000..46ea9dc6d
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/benchmark.go
@@ -0,0 +1,187 @@
+// Copyright (c) 2012 The Go Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+package check
+
+import (
+ "fmt"
+ "runtime"
+ "time"
+)
+
+var memStats runtime.MemStats
+
+// testingB is a type passed to Benchmark functions to manage benchmark
+// timing and to specify the number of iterations to run.
+type timer struct {
+ start time.Time // Time test or benchmark started
+ duration time.Duration
+ N int
+ bytes int64
+ timerOn bool
+ benchTime time.Duration
+ // The initial states of memStats.Mallocs and memStats.TotalAlloc.
+ startAllocs uint64
+ startBytes uint64
+ // The net total of this test after being run.
+ netAllocs uint64
+ netBytes uint64
+}
+
+// StartTimer starts timing a test. This function is called automatically
+// before a benchmark starts, but it can also used to resume timing after
+// a call to StopTimer.
+func (c *C) StartTimer() {
+ if !c.timerOn {
+ c.start = time.Now()
+ c.timerOn = true
+
+ runtime.ReadMemStats(&memStats)
+ c.startAllocs = memStats.Mallocs
+ c.startBytes = memStats.TotalAlloc
+ }
+}
+
+// StopTimer stops timing a test. This can be used to pause the timer
+// while performing complex initialization that you don't
+// want to measure.
+func (c *C) StopTimer() {
+ if c.timerOn {
+ c.duration += time.Now().Sub(c.start)
+ c.timerOn = false
+ runtime.ReadMemStats(&memStats)
+ c.netAllocs += memStats.Mallocs - c.startAllocs
+ c.netBytes += memStats.TotalAlloc - c.startBytes
+ }
+}
+
+// ResetTimer sets the elapsed benchmark time to zero.
+// It does not affect whether the timer is running.
+func (c *C) ResetTimer() {
+ if c.timerOn {
+ c.start = time.Now()
+ runtime.ReadMemStats(&memStats)
+ c.startAllocs = memStats.Mallocs
+ c.startBytes = memStats.TotalAlloc
+ }
+ c.duration = 0
+ c.netAllocs = 0
+ c.netBytes = 0
+}
+
+// SetBytes informs the number of bytes that the benchmark processes
+// on each iteration. If this is called in a benchmark it will also
+// report MB/s.
+func (c *C) SetBytes(n int64) {
+ c.bytes = n
+}
+
+func (c *C) nsPerOp() int64 {
+ if c.N <= 0 {
+ return 0
+ }
+ return c.duration.Nanoseconds() / int64(c.N)
+}
+
+func (c *C) mbPerSec() float64 {
+ if c.bytes <= 0 || c.duration <= 0 || c.N <= 0 {
+ return 0
+ }
+ return (float64(c.bytes) * float64(c.N) / 1e6) / c.duration.Seconds()
+}
+
+func (c *C) timerString() string {
+ if c.N <= 0 {
+ return fmt.Sprintf("%3.3fs", float64(c.duration.Nanoseconds())/1e9)
+ }
+ mbs := c.mbPerSec()
+ mb := ""
+ if mbs != 0 {
+ mb = fmt.Sprintf("\t%7.2f MB/s", mbs)
+ }
+ nsop := c.nsPerOp()
+ ns := fmt.Sprintf("%10d ns/op", nsop)
+ if c.N > 0 && nsop < 100 {
+ // The format specifiers here make sure that
+ // the ones digits line up for all three possible formats.
+ if nsop < 10 {
+ ns = fmt.Sprintf("%13.2f ns/op", float64(c.duration.Nanoseconds())/float64(c.N))
+ } else {
+ ns = fmt.Sprintf("%12.1f ns/op", float64(c.duration.Nanoseconds())/float64(c.N))
+ }
+ }
+ memStats := ""
+ if c.benchMem {
+ allocedBytes := fmt.Sprintf("%8d B/op", int64(c.netBytes)/int64(c.N))
+ allocs := fmt.Sprintf("%8d allocs/op", int64(c.netAllocs)/int64(c.N))
+ memStats = fmt.Sprintf("\t%s\t%s", allocedBytes, allocs)
+ }
+ return fmt.Sprintf("%8d\t%s%s%s", c.N, ns, mb, memStats)
+}
+
+func min(x, y int) int {
+ if x > y {
+ return y
+ }
+ return x
+}
+
+func max(x, y int) int {
+ if x < y {
+ return y
+ }
+ return x
+}
+
+// roundDown10 rounds a number down to the nearest power of 10.
+func roundDown10(n int) int {
+ var tens = 0
+ // tens = floor(log_10(n))
+ for n > 10 {
+ n = n / 10
+ tens++
+ }
+ // result = 10^tens
+ result := 1
+ for i := 0; i < tens; i++ {
+ result *= 10
+ }
+ return result
+}
+
+// roundUp rounds x up to a number of the form [1eX, 2eX, 5eX].
+func roundUp(n int) int {
+ base := roundDown10(n)
+ if n < (2 * base) {
+ return 2 * base
+ }
+ if n < (5 * base) {
+ return 5 * base
+ }
+ return 10 * base
+}
diff --git a/vendor/gopkg.in/check.v1/check.go b/vendor/gopkg.in/check.v1/check.go
new file mode 100644
index 000000000..82c26fa73
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/check.go
@@ -0,0 +1,873 @@
+// Package check is a rich testing extension for Go's testing package.
+//
+// For details about the project, see:
+//
+// http://labix.org/gocheck
+//
+package check
+
+import (
+ "bytes"
+ "errors"
+ "fmt"
+ "io"
+ "math/rand"
+ "os"
+ "path"
+ "path/filepath"
+ "reflect"
+ "regexp"
+ "runtime"
+ "strconv"
+ "strings"
+ "sync"
+ "sync/atomic"
+ "time"
+)
+
+// -----------------------------------------------------------------------
+// Internal type which deals with suite method calling.
+
+const (
+ fixtureKd = iota
+ testKd
+)
+
+type funcKind int
+
+const (
+ succeededSt = iota
+ failedSt
+ skippedSt
+ panickedSt
+ fixturePanickedSt
+ missedSt
+)
+
+type funcStatus uint32
+
+// A method value can't reach its own Method structure.
+type methodType struct {
+ reflect.Value
+ Info reflect.Method
+}
+
+func newMethod(receiver reflect.Value, i int) *methodType {
+ return &methodType{receiver.Method(i), receiver.Type().Method(i)}
+}
+
+func (method *methodType) PC() uintptr {
+ return method.Info.Func.Pointer()
+}
+
+func (method *methodType) suiteName() string {
+ t := method.Info.Type.In(0)
+ if t.Kind() == reflect.Ptr {
+ t = t.Elem()
+ }
+ return t.Name()
+}
+
+func (method *methodType) String() string {
+ return method.suiteName() + "." + method.Info.Name
+}
+
+func (method *methodType) matches(re *regexp.Regexp) bool {
+ return (re.MatchString(method.Info.Name) ||
+ re.MatchString(method.suiteName()) ||
+ re.MatchString(method.String()))
+}
+
+type C struct {
+ method *methodType
+ kind funcKind
+ testName string
+ _status funcStatus
+ logb *logger
+ logw io.Writer
+ done chan *C
+ reason string
+ mustFail bool
+ tempDir *tempDir
+ benchMem bool
+ startTime time.Time
+ timer
+}
+
+func (c *C) status() funcStatus {
+ return funcStatus(atomic.LoadUint32((*uint32)(&c._status)))
+}
+
+func (c *C) setStatus(s funcStatus) {
+ atomic.StoreUint32((*uint32)(&c._status), uint32(s))
+}
+
+func (c *C) stopNow() {
+ runtime.Goexit()
+}
+
+// logger is a concurrency safe byte.Buffer
+type logger struct {
+ sync.Mutex
+ writer bytes.Buffer
+}
+
+func (l *logger) Write(buf []byte) (int, error) {
+ l.Lock()
+ defer l.Unlock()
+ return l.writer.Write(buf)
+}
+
+func (l *logger) WriteTo(w io.Writer) (int64, error) {
+ l.Lock()
+ defer l.Unlock()
+ return l.writer.WriteTo(w)
+}
+
+func (l *logger) String() string {
+ l.Lock()
+ defer l.Unlock()
+ return l.writer.String()
+}
+
+// -----------------------------------------------------------------------
+// Handling of temporary files and directories.
+
+type tempDir struct {
+ sync.Mutex
+ path string
+ counter int
+}
+
+func (td *tempDir) newPath() string {
+ td.Lock()
+ defer td.Unlock()
+ if td.path == "" {
+ var err error
+ for i := 0; i != 100; i++ {
+ path := fmt.Sprintf("%s%ccheck-%d", os.TempDir(), os.PathSeparator, rand.Int())
+ if err = os.Mkdir(path, 0700); err == nil {
+ td.path = path
+ break
+ }
+ }
+ if td.path == "" {
+ panic("Couldn't create temporary directory: " + err.Error())
+ }
+ }
+ result := filepath.Join(td.path, strconv.Itoa(td.counter))
+ td.counter += 1
+ return result
+}
+
+func (td *tempDir) removeAll() {
+ td.Lock()
+ defer td.Unlock()
+ if td.path != "" {
+ err := os.RemoveAll(td.path)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "WARNING: Error cleaning up temporaries: "+err.Error())
+ }
+ }
+}
+
+// Create a new temporary directory which is automatically removed after
+// the suite finishes running.
+func (c *C) MkDir() string {
+ path := c.tempDir.newPath()
+ if err := os.Mkdir(path, 0700); err != nil {
+ panic(fmt.Sprintf("Couldn't create temporary directory %s: %s", path, err.Error()))
+ }
+ return path
+}
+
+// -----------------------------------------------------------------------
+// Low-level logging functions.
+
+func (c *C) log(args ...interface{}) {
+ c.writeLog([]byte(fmt.Sprint(args...) + "\n"))
+}
+
+func (c *C) logf(format string, args ...interface{}) {
+ c.writeLog([]byte(fmt.Sprintf(format+"\n", args...)))
+}
+
+func (c *C) logNewLine() {
+ c.writeLog([]byte{'\n'})
+}
+
+func (c *C) writeLog(buf []byte) {
+ c.logb.Write(buf)
+ if c.logw != nil {
+ c.logw.Write(buf)
+ }
+}
+
+func hasStringOrError(x interface{}) (ok bool) {
+ _, ok = x.(fmt.Stringer)
+ if ok {
+ return
+ }
+ _, ok = x.(error)
+ return
+}
+
+func (c *C) logValue(label string, value interface{}) {
+ if label == "" {
+ if hasStringOrError(value) {
+ c.logf("... %#v (%q)", value, value)
+ } else {
+ c.logf("... %#v", value)
+ }
+ } else if value == nil {
+ c.logf("... %s = nil", label)
+ } else {
+ if hasStringOrError(value) {
+ fv := fmt.Sprintf("%#v", value)
+ qv := fmt.Sprintf("%q", value)
+ if fv != qv {
+ c.logf("... %s %s = %s (%s)", label, reflect.TypeOf(value), fv, qv)
+ return
+ }
+ }
+ if s, ok := value.(string); ok && isMultiLine(s) {
+ c.logf(`... %s %s = "" +`, label, reflect.TypeOf(value))
+ c.logMultiLine(s)
+ } else {
+ c.logf("... %s %s = %#v", label, reflect.TypeOf(value), value)
+ }
+ }
+}
+
+func (c *C) logMultiLine(s string) {
+ b := make([]byte, 0, len(s)*2)
+ i := 0
+ n := len(s)
+ for i < n {
+ j := i + 1
+ for j < n && s[j-1] != '\n' {
+ j++
+ }
+ b = append(b, "... "...)
+ b = strconv.AppendQuote(b, s[i:j])
+ if j < n {
+ b = append(b, " +"...)
+ }
+ b = append(b, '\n')
+ i = j
+ }
+ c.writeLog(b)
+}
+
+func isMultiLine(s string) bool {
+ for i := 0; i+1 < len(s); i++ {
+ if s[i] == '\n' {
+ return true
+ }
+ }
+ return false
+}
+
+func (c *C) logString(issue string) {
+ c.log("... ", issue)
+}
+
+func (c *C) logCaller(skip int) {
+ // This is a bit heavier than it ought to be.
+ skip += 1 // Our own frame.
+ pc, callerFile, callerLine, ok := runtime.Caller(skip)
+ if !ok {
+ return
+ }
+ var testFile string
+ var testLine int
+ testFunc := runtime.FuncForPC(c.method.PC())
+ if runtime.FuncForPC(pc) != testFunc {
+ for {
+ skip += 1
+ if pc, file, line, ok := runtime.Caller(skip); ok {
+ // Note that the test line may be different on
+ // distinct calls for the same test. Showing
+ // the "internal" line is helpful when debugging.
+ if runtime.FuncForPC(pc) == testFunc {
+ testFile, testLine = file, line
+ break
+ }
+ } else {
+ break
+ }
+ }
+ }
+ if testFile != "" && (testFile != callerFile || testLine != callerLine) {
+ c.logCode(testFile, testLine)
+ }
+ c.logCode(callerFile, callerLine)
+}
+
+func (c *C) logCode(path string, line int) {
+ c.logf("%s:%d:", nicePath(path), line)
+ code, err := printLine(path, line)
+ if code == "" {
+ code = "..." // XXX Open the file and take the raw line.
+ if err != nil {
+ code += err.Error()
+ }
+ }
+ c.log(indent(code, " "))
+}
+
+var valueGo = filepath.Join("reflect", "value.go")
+var asmGo = filepath.Join("runtime", "asm_")
+
+func (c *C) logPanic(skip int, value interface{}) {
+ skip++ // Our own frame.
+ initialSkip := skip
+ for ; ; skip++ {
+ if pc, file, line, ok := runtime.Caller(skip); ok {
+ if skip == initialSkip {
+ c.logf("... Panic: %s (PC=0x%X)\n", value, pc)
+ }
+ name := niceFuncName(pc)
+ path := nicePath(file)
+ if strings.Contains(path, "/gopkg.in/check.v") {
+ continue
+ }
+ if name == "Value.call" && strings.HasSuffix(path, valueGo) {
+ continue
+ }
+ if (name == "call16" || name == "call32") && strings.Contains(path, asmGo) {
+ continue
+ }
+ c.logf("%s:%d\n in %s", nicePath(file), line, name)
+ } else {
+ break
+ }
+ }
+}
+
+func (c *C) logSoftPanic(issue string) {
+ c.log("... Panic: ", issue)
+}
+
+func (c *C) logArgPanic(method *methodType, expectedType string) {
+ c.logf("... Panic: %s argument should be %s",
+ niceFuncName(method.PC()), expectedType)
+}
+
+// -----------------------------------------------------------------------
+// Some simple formatting helpers.
+
+var initWD, initWDErr = os.Getwd()
+
+func init() {
+ if initWDErr == nil {
+ initWD = strings.Replace(initWD, "\\", "/", -1) + "/"
+ }
+}
+
+func nicePath(path string) string {
+ if initWDErr == nil {
+ if strings.HasPrefix(path, initWD) {
+ return path[len(initWD):]
+ }
+ }
+ return path
+}
+
+func niceFuncPath(pc uintptr) string {
+ function := runtime.FuncForPC(pc)
+ if function != nil {
+ filename, line := function.FileLine(pc)
+ return fmt.Sprintf("%s:%d", nicePath(filename), line)
+ }
+ return "<unknown path>"
+}
+
+func niceFuncName(pc uintptr) string {
+ function := runtime.FuncForPC(pc)
+ if function != nil {
+ name := path.Base(function.Name())
+ if i := strings.Index(name, "."); i > 0 {
+ name = name[i+1:]
+ }
+ if strings.HasPrefix(name, "(*") {
+ if i := strings.Index(name, ")"); i > 0 {
+ name = name[2:i] + name[i+1:]
+ }
+ }
+ if i := strings.LastIndex(name, ".*"); i != -1 {
+ name = name[:i] + "." + name[i+2:]
+ }
+ if i := strings.LastIndex(name, "·"); i != -1 {
+ name = name[:i] + "." + name[i+2:]
+ }
+ return name
+ }
+ return "<unknown function>"
+}
+
+// -----------------------------------------------------------------------
+// Result tracker to aggregate call results.
+
+type Result struct {
+ Succeeded int
+ Failed int
+ Skipped int
+ Panicked int
+ FixturePanicked int
+ ExpectedFailures int
+ Missed int // Not even tried to run, related to a panic in the fixture.
+ RunError error // Houston, we've got a problem.
+ WorkDir string // If KeepWorkDir is true
+}
+
+type resultTracker struct {
+ result Result
+ _lastWasProblem bool
+ _waiting int
+ _missed int
+ _expectChan chan *C
+ _doneChan chan *C
+ _stopChan chan bool
+}
+
+func newResultTracker() *resultTracker {
+ return &resultTracker{_expectChan: make(chan *C), // Synchronous
+ _doneChan: make(chan *C, 32), // Asynchronous
+ _stopChan: make(chan bool)} // Synchronous
+}
+
+func (tracker *resultTracker) start() {
+ go tracker._loopRoutine()
+}
+
+func (tracker *resultTracker) waitAndStop() {
+ <-tracker._stopChan
+}
+
+func (tracker *resultTracker) expectCall(c *C) {
+ tracker._expectChan <- c
+}
+
+func (tracker *resultTracker) callDone(c *C) {
+ tracker._doneChan <- c
+}
+
+func (tracker *resultTracker) _loopRoutine() {
+ for {
+ var c *C
+ if tracker._waiting > 0 {
+ // Calls still running. Can't stop.
+ select {
+ // XXX Reindent this (not now to make diff clear)
+ case c = <-tracker._expectChan:
+ tracker._waiting += 1
+ case c = <-tracker._doneChan:
+ tracker._waiting -= 1
+ switch c.status() {
+ case succeededSt:
+ if c.kind == testKd {
+ if c.mustFail {
+ tracker.result.ExpectedFailures++
+ } else {
+ tracker.result.Succeeded++
+ }
+ }
+ case failedSt:
+ tracker.result.Failed++
+ case panickedSt:
+ if c.kind == fixtureKd {
+ tracker.result.FixturePanicked++
+ } else {
+ tracker.result.Panicked++
+ }
+ case fixturePanickedSt:
+ // Track it as missed, since the panic
+ // was on the fixture, not on the test.
+ tracker.result.Missed++
+ case missedSt:
+ tracker.result.Missed++
+ case skippedSt:
+ if c.kind == testKd {
+ tracker.result.Skipped++
+ }
+ }
+ }
+ } else {
+ // No calls. Can stop, but no done calls here.
+ select {
+ case tracker._stopChan <- true:
+ return
+ case c = <-tracker._expectChan:
+ tracker._waiting += 1
+ case c = <-tracker._doneChan:
+ panic("Tracker got an unexpected done call.")
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+// The underlying suite runner.
+
+type suiteRunner struct {
+ suite interface{}
+ setUpSuite, tearDownSuite *methodType
+ setUpTest, tearDownTest *methodType
+ tests []*methodType
+ tracker *resultTracker
+ tempDir *tempDir
+ keepDir bool
+ output *outputWriter
+ reportedProblemLast bool
+ benchTime time.Duration
+ benchMem bool
+}
+
+type RunConf struct {
+ Output io.Writer
+ Stream bool
+ Verbose bool
+ Filter string
+ Benchmark bool
+ BenchmarkTime time.Duration // Defaults to 1 second
+ BenchmarkMem bool
+ KeepWorkDir bool
+}
+
+// Create a new suiteRunner able to run all methods in the given suite.
+func newSuiteRunner(suite interface{}, runConf *RunConf) *suiteRunner {
+ var conf RunConf
+ if runConf != nil {
+ conf = *runConf
+ }
+ if conf.Output == nil {
+ conf.Output = os.Stdout
+ }
+ if conf.Benchmark {
+ conf.Verbose = true
+ }
+
+ suiteType := reflect.TypeOf(suite)
+ suiteNumMethods := suiteType.NumMethod()
+ suiteValue := reflect.ValueOf(suite)
+
+ runner := &suiteRunner{
+ suite: suite,
+ output: newOutputWriter(conf.Output, conf.Stream, conf.Verbose),
+ tracker: newResultTracker(),
+ benchTime: conf.BenchmarkTime,
+ benchMem: conf.BenchmarkMem,
+ tempDir: &tempDir{},
+ keepDir: conf.KeepWorkDir,
+ tests: make([]*methodType, 0, suiteNumMethods),
+ }
+ if runner.benchTime == 0 {
+ runner.benchTime = 1 * time.Second
+ }
+
+ var filterRegexp *regexp.Regexp
+ if conf.Filter != "" {
+ if regexp, err := regexp.Compile(conf.Filter); err != nil {
+ msg := "Bad filter expression: " + err.Error()
+ runner.tracker.result.RunError = errors.New(msg)
+ return runner
+ } else {
+ filterRegexp = regexp
+ }
+ }
+
+ for i := 0; i != suiteNumMethods; i++ {
+ method := newMethod(suiteValue, i)
+ switch method.Info.Name {
+ case "SetUpSuite":
+ runner.setUpSuite = method
+ case "TearDownSuite":
+ runner.tearDownSuite = method
+ case "SetUpTest":
+ runner.setUpTest = method
+ case "TearDownTest":
+ runner.tearDownTest = method
+ default:
+ prefix := "Test"
+ if conf.Benchmark {
+ prefix = "Benchmark"
+ }
+ if !strings.HasPrefix(method.Info.Name, prefix) {
+ continue
+ }
+ if filterRegexp == nil || method.matches(filterRegexp) {
+ runner.tests = append(runner.tests, method)
+ }
+ }
+ }
+ return runner
+}
+
+// Run all methods in the given suite.
+func (runner *suiteRunner) run() *Result {
+ if runner.tracker.result.RunError == nil && len(runner.tests) > 0 {
+ runner.tracker.start()
+ if runner.checkFixtureArgs() {
+ c := runner.runFixture(runner.setUpSuite, "", nil)
+ if c == nil || c.status() == succeededSt {
+ for i := 0; i != len(runner.tests); i++ {
+ c := runner.runTest(runner.tests[i])
+ if c.status() == fixturePanickedSt {
+ runner.skipTests(missedSt, runner.tests[i+1:])
+ break
+ }
+ }
+ } else if c != nil && c.status() == skippedSt {
+ runner.skipTests(skippedSt, runner.tests)
+ } else {
+ runner.skipTests(missedSt, runner.tests)
+ }
+ runner.runFixture(runner.tearDownSuite, "", nil)
+ } else {
+ runner.skipTests(missedSt, runner.tests)
+ }
+ runner.tracker.waitAndStop()
+ if runner.keepDir {
+ runner.tracker.result.WorkDir = runner.tempDir.path
+ } else {
+ runner.tempDir.removeAll()
+ }
+ }
+ return &runner.tracker.result
+}
+
+// Create a call object with the given suite method, and fork a
+// goroutine with the provided dispatcher for running it.
+func (runner *suiteRunner) forkCall(method *methodType, kind funcKind, testName string, logb *logger, dispatcher func(c *C)) *C {
+ var logw io.Writer
+ if runner.output.Stream {
+ logw = runner.output
+ }
+ if logb == nil {
+ logb = new(logger)
+ }
+ c := &C{
+ method: method,
+ kind: kind,
+ testName: testName,
+ logb: logb,
+ logw: logw,
+ tempDir: runner.tempDir,
+ done: make(chan *C, 1),
+ timer: timer{benchTime: runner.benchTime},
+ startTime: time.Now(),
+ benchMem: runner.benchMem,
+ }
+ runner.tracker.expectCall(c)
+ go (func() {
+ runner.reportCallStarted(c)
+ defer runner.callDone(c)
+ dispatcher(c)
+ })()
+ return c
+}
+
+// Same as forkCall(), but wait for call to finish before returning.
+func (runner *suiteRunner) runFunc(method *methodType, kind funcKind, testName string, logb *logger, dispatcher func(c *C)) *C {
+ c := runner.forkCall(method, kind, testName, logb, dispatcher)
+ <-c.done
+ return c
+}
+
+// Handle a finished call. If there were any panics, update the call status
+// accordingly. Then, mark the call as done and report to the tracker.
+func (runner *suiteRunner) callDone(c *C) {
+ value := recover()
+ if value != nil {
+ switch v := value.(type) {
+ case *fixturePanic:
+ if v.status == skippedSt {
+ c.setStatus(skippedSt)
+ } else {
+ c.logSoftPanic("Fixture has panicked (see related PANIC)")
+ c.setStatus(fixturePanickedSt)
+ }
+ default:
+ c.logPanic(1, value)
+ c.setStatus(panickedSt)
+ }
+ }
+ if c.mustFail {
+ switch c.status() {
+ case failedSt:
+ c.setStatus(succeededSt)
+ case succeededSt:
+ c.setStatus(failedSt)
+ c.logString("Error: Test succeeded, but was expected to fail")
+ c.logString("Reason: " + c.reason)
+ }
+ }
+
+ runner.reportCallDone(c)
+ c.done <- c
+}
+
+// Runs a fixture call synchronously. The fixture will still be run in a
+// goroutine like all suite methods, but this method will not return
+// while the fixture goroutine is not done, because the fixture must be
+// run in a desired order.
+func (runner *suiteRunner) runFixture(method *methodType, testName string, logb *logger) *C {
+ if method != nil {
+ c := runner.runFunc(method, fixtureKd, testName, logb, func(c *C) {
+ c.ResetTimer()
+ c.StartTimer()
+ defer c.StopTimer()
+ c.method.Call([]reflect.Value{reflect.ValueOf(c)})
+ })
+ return c
+ }
+ return nil
+}
+
+// Run the fixture method with runFixture(), but panic with a fixturePanic{}
+// in case the fixture method panics. This makes it easier to track the
+// fixture panic together with other call panics within forkTest().
+func (runner *suiteRunner) runFixtureWithPanic(method *methodType, testName string, logb *logger, skipped *bool) *C {
+ if skipped != nil && *skipped {
+ return nil
+ }
+ c := runner.runFixture(method, testName, logb)
+ if c != nil && c.status() != succeededSt {
+ if skipped != nil {
+ *skipped = c.status() == skippedSt
+ }
+ panic(&fixturePanic{c.status(), method})
+ }
+ return c
+}
+
+type fixturePanic struct {
+ status funcStatus
+ method *methodType
+}
+
+// Run the suite test method, together with the test-specific fixture,
+// asynchronously.
+func (runner *suiteRunner) forkTest(method *methodType) *C {
+ testName := method.String()
+ return runner.forkCall(method, testKd, testName, nil, func(c *C) {
+ var skipped bool
+ defer runner.runFixtureWithPanic(runner.tearDownTest, testName, nil, &skipped)
+ defer c.StopTimer()
+ benchN := 1
+ for {
+ runner.runFixtureWithPanic(runner.setUpTest, testName, c.logb, &skipped)
+ mt := c.method.Type()
+ if mt.NumIn() != 1 || mt.In(0) != reflect.TypeOf(c) {
+ // Rather than a plain panic, provide a more helpful message when
+ // the argument type is incorrect.
+ c.setStatus(panickedSt)
+ c.logArgPanic(c.method, "*check.C")
+ return
+ }
+ if strings.HasPrefix(c.method.Info.Name, "Test") {
+ c.ResetTimer()
+ c.StartTimer()
+ c.method.Call([]reflect.Value{reflect.ValueOf(c)})
+ return
+ }
+ if !strings.HasPrefix(c.method.Info.Name, "Benchmark") {
+ panic("unexpected method prefix: " + c.method.Info.Name)
+ }
+
+ runtime.GC()
+ c.N = benchN
+ c.ResetTimer()
+ c.StartTimer()
+ c.method.Call([]reflect.Value{reflect.ValueOf(c)})
+ c.StopTimer()
+ if c.status() != succeededSt || c.duration >= c.benchTime || benchN >= 1e9 {
+ return
+ }
+ perOpN := int(1e9)
+ if c.nsPerOp() != 0 {
+ perOpN = int(c.benchTime.Nanoseconds() / c.nsPerOp())
+ }
+
+ // Logic taken from the stock testing package:
+ // - Run more iterations than we think we'll need for a second (1.5x).
+ // - Don't grow too fast in case we had timing errors previously.
+ // - Be sure to run at least one more than last time.
+ benchN = max(min(perOpN+perOpN/2, 100*benchN), benchN+1)
+ benchN = roundUp(benchN)
+
+ skipped = true // Don't run the deferred one if this panics.
+ runner.runFixtureWithPanic(runner.tearDownTest, testName, nil, nil)
+ skipped = false
+ }
+ })
+}
+
+// Same as forkTest(), but wait for the test to finish before returning.
+func (runner *suiteRunner) runTest(method *methodType) *C {
+ c := runner.forkTest(method)
+ <-c.done
+ return c
+}
+
+// Helper to mark tests as skipped or missed. A bit heavy for what
+// it does, but it enables homogeneous handling of tracking, including
+// nice verbose output.
+func (runner *suiteRunner) skipTests(status funcStatus, methods []*methodType) {
+ for _, method := range methods {
+ runner.runFunc(method, testKd, "", nil, func(c *C) {
+ c.setStatus(status)
+ })
+ }
+}
+
+// Verify if the fixture arguments are *check.C. In case of errors,
+// log the error as a panic in the fixture method call, and return false.
+func (runner *suiteRunner) checkFixtureArgs() bool {
+ succeeded := true
+ argType := reflect.TypeOf(&C{})
+ for _, method := range []*methodType{runner.setUpSuite, runner.tearDownSuite, runner.setUpTest, runner.tearDownTest} {
+ if method != nil {
+ mt := method.Type()
+ if mt.NumIn() != 1 || mt.In(0) != argType {
+ succeeded = false
+ runner.runFunc(method, fixtureKd, "", nil, func(c *C) {
+ c.logArgPanic(method, "*check.C")
+ c.setStatus(panickedSt)
+ })
+ }
+ }
+ }
+ return succeeded
+}
+
+func (runner *suiteRunner) reportCallStarted(c *C) {
+ runner.output.WriteCallStarted("START", c)
+}
+
+func (runner *suiteRunner) reportCallDone(c *C) {
+ runner.tracker.callDone(c)
+ switch c.status() {
+ case succeededSt:
+ if c.mustFail {
+ runner.output.WriteCallSuccess("FAIL EXPECTED", c)
+ } else {
+ runner.output.WriteCallSuccess("PASS", c)
+ }
+ case skippedSt:
+ runner.output.WriteCallSuccess("SKIP", c)
+ case failedSt:
+ runner.output.WriteCallProblem("FAIL", c)
+ case panickedSt:
+ runner.output.WriteCallProblem("PANIC", c)
+ case fixturePanickedSt:
+ // That's a testKd call reporting that its fixture
+ // has panicked. The fixture call which caused the
+ // panic itself was tracked above. We'll report to
+ // aid debugging.
+ runner.output.WriteCallProblem("PANIC", c)
+ case missedSt:
+ runner.output.WriteCallSuccess("MISS", c)
+ }
+}
diff --git a/vendor/gopkg.in/check.v1/checkers.go b/vendor/gopkg.in/check.v1/checkers.go
new file mode 100644
index 000000000..bac338729
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/checkers.go
@@ -0,0 +1,458 @@
+package check
+
+import (
+ "fmt"
+ "reflect"
+ "regexp"
+)
+
+// -----------------------------------------------------------------------
+// CommentInterface and Commentf helper, to attach extra information to checks.
+
+type comment struct {
+ format string
+ args []interface{}
+}
+
+// Commentf returns an infomational value to use with Assert or Check calls.
+// If the checker test fails, the provided arguments will be passed to
+// fmt.Sprintf, and will be presented next to the logged failure.
+//
+// For example:
+//
+// c.Assert(v, Equals, 42, Commentf("Iteration #%d failed.", i))
+//
+// Note that if the comment is constant, a better option is to
+// simply use a normal comment right above or next to the line, as
+// it will also get printed with any errors:
+//
+// c.Assert(l, Equals, 8192) // Ensure buffer size is correct (bug #123)
+//
+func Commentf(format string, args ...interface{}) CommentInterface {
+ return &comment{format, args}
+}
+
+// CommentInterface must be implemented by types that attach extra
+// information to failed checks. See the Commentf function for details.
+type CommentInterface interface {
+ CheckCommentString() string
+}
+
+func (c *comment) CheckCommentString() string {
+ return fmt.Sprintf(c.format, c.args...)
+}
+
+// -----------------------------------------------------------------------
+// The Checker interface.
+
+// The Checker interface must be provided by checkers used with
+// the Assert and Check verification methods.
+type Checker interface {
+ Info() *CheckerInfo
+ Check(params []interface{}, names []string) (result bool, error string)
+}
+
+// See the Checker interface.
+type CheckerInfo struct {
+ Name string
+ Params []string
+}
+
+func (info *CheckerInfo) Info() *CheckerInfo {
+ return info
+}
+
+// -----------------------------------------------------------------------
+// Not checker logic inverter.
+
+// The Not checker inverts the logic of the provided checker. The
+// resulting checker will succeed where the original one failed, and
+// vice-versa.
+//
+// For example:
+//
+// c.Assert(a, Not(Equals), b)
+//
+func Not(checker Checker) Checker {
+ return &notChecker{checker}
+}
+
+type notChecker struct {
+ sub Checker
+}
+
+func (checker *notChecker) Info() *CheckerInfo {
+ info := *checker.sub.Info()
+ info.Name = "Not(" + info.Name + ")"
+ return &info
+}
+
+func (checker *notChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ result, error = checker.sub.Check(params, names)
+ result = !result
+ return
+}
+
+// -----------------------------------------------------------------------
+// IsNil checker.
+
+type isNilChecker struct {
+ *CheckerInfo
+}
+
+// The IsNil checker tests whether the obtained value is nil.
+//
+// For example:
+//
+// c.Assert(err, IsNil)
+//
+var IsNil Checker = &isNilChecker{
+ &CheckerInfo{Name: "IsNil", Params: []string{"value"}},
+}
+
+func (checker *isNilChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ return isNil(params[0]), ""
+}
+
+func isNil(obtained interface{}) (result bool) {
+ if obtained == nil {
+ result = true
+ } else {
+ switch v := reflect.ValueOf(obtained); v.Kind() {
+ case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
+ return v.IsNil()
+ }
+ }
+ return
+}
+
+// -----------------------------------------------------------------------
+// NotNil checker. Alias for Not(IsNil), since it's so common.
+
+type notNilChecker struct {
+ *CheckerInfo
+}
+
+// The NotNil checker verifies that the obtained value is not nil.
+//
+// For example:
+//
+// c.Assert(iface, NotNil)
+//
+// This is an alias for Not(IsNil), made available since it's a
+// fairly common check.
+//
+var NotNil Checker = &notNilChecker{
+ &CheckerInfo{Name: "NotNil", Params: []string{"value"}},
+}
+
+func (checker *notNilChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ return !isNil(params[0]), ""
+}
+
+// -----------------------------------------------------------------------
+// Equals checker.
+
+type equalsChecker struct {
+ *CheckerInfo
+}
+
+// The Equals checker verifies that the obtained value is equal to
+// the expected value, according to usual Go semantics for ==.
+//
+// For example:
+//
+// c.Assert(value, Equals, 42)
+//
+var Equals Checker = &equalsChecker{
+ &CheckerInfo{Name: "Equals", Params: []string{"obtained", "expected"}},
+}
+
+func (checker *equalsChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ defer func() {
+ if v := recover(); v != nil {
+ result = false
+ error = fmt.Sprint(v)
+ }
+ }()
+ return params[0] == params[1], ""
+}
+
+// -----------------------------------------------------------------------
+// DeepEquals checker.
+
+type deepEqualsChecker struct {
+ *CheckerInfo
+}
+
+// The DeepEquals checker verifies that the obtained value is deep-equal to
+// the expected value. The check will work correctly even when facing
+// slices, interfaces, and values of different types (which always fail
+// the test).
+//
+// For example:
+//
+// c.Assert(value, DeepEquals, 42)
+// c.Assert(array, DeepEquals, []string{"hi", "there"})
+//
+var DeepEquals Checker = &deepEqualsChecker{
+ &CheckerInfo{Name: "DeepEquals", Params: []string{"obtained", "expected"}},
+}
+
+func (checker *deepEqualsChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ return reflect.DeepEqual(params[0], params[1]), ""
+}
+
+// -----------------------------------------------------------------------
+// HasLen checker.
+
+type hasLenChecker struct {
+ *CheckerInfo
+}
+
+// The HasLen checker verifies that the obtained value has the
+// provided length. In many cases this is superior to using Equals
+// in conjuction with the len function because in case the check
+// fails the value itself will be printed, instead of its length,
+// providing more details for figuring the problem.
+//
+// For example:
+//
+// c.Assert(list, HasLen, 5)
+//
+var HasLen Checker = &hasLenChecker{
+ &CheckerInfo{Name: "HasLen", Params: []string{"obtained", "n"}},
+}
+
+func (checker *hasLenChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ n, ok := params[1].(int)
+ if !ok {
+ return false, "n must be an int"
+ }
+ value := reflect.ValueOf(params[0])
+ switch value.Kind() {
+ case reflect.Map, reflect.Array, reflect.Slice, reflect.Chan, reflect.String:
+ default:
+ return false, "obtained value type has no length"
+ }
+ return value.Len() == n, ""
+}
+
+// -----------------------------------------------------------------------
+// ErrorMatches checker.
+
+type errorMatchesChecker struct {
+ *CheckerInfo
+}
+
+// The ErrorMatches checker verifies that the error value
+// is non nil and matches the regular expression provided.
+//
+// For example:
+//
+// c.Assert(err, ErrorMatches, "perm.*denied")
+//
+var ErrorMatches Checker = errorMatchesChecker{
+ &CheckerInfo{Name: "ErrorMatches", Params: []string{"value", "regex"}},
+}
+
+func (checker errorMatchesChecker) Check(params []interface{}, names []string) (result bool, errStr string) {
+ if params[0] == nil {
+ return false, "Error value is nil"
+ }
+ err, ok := params[0].(error)
+ if !ok {
+ return false, "Value is not an error"
+ }
+ params[0] = err.Error()
+ names[0] = "error"
+ return matches(params[0], params[1])
+}
+
+// -----------------------------------------------------------------------
+// Matches checker.
+
+type matchesChecker struct {
+ *CheckerInfo
+}
+
+// The Matches checker verifies that the string provided as the obtained
+// value (or the string resulting from obtained.String()) matches the
+// regular expression provided.
+//
+// For example:
+//
+// c.Assert(err, Matches, "perm.*denied")
+//
+var Matches Checker = &matchesChecker{
+ &CheckerInfo{Name: "Matches", Params: []string{"value", "regex"}},
+}
+
+func (checker *matchesChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ return matches(params[0], params[1])
+}
+
+func matches(value, regex interface{}) (result bool, error string) {
+ reStr, ok := regex.(string)
+ if !ok {
+ return false, "Regex must be a string"
+ }
+ valueStr, valueIsStr := value.(string)
+ if !valueIsStr {
+ if valueWithStr, valueHasStr := value.(fmt.Stringer); valueHasStr {
+ valueStr, valueIsStr = valueWithStr.String(), true
+ }
+ }
+ if valueIsStr {
+ matches, err := regexp.MatchString("^"+reStr+"$", valueStr)
+ if err != nil {
+ return false, "Can't compile regex: " + err.Error()
+ }
+ return matches, ""
+ }
+ return false, "Obtained value is not a string and has no .String()"
+}
+
+// -----------------------------------------------------------------------
+// Panics checker.
+
+type panicsChecker struct {
+ *CheckerInfo
+}
+
+// The Panics checker verifies that calling the provided zero-argument
+// function will cause a panic which is deep-equal to the provided value.
+//
+// For example:
+//
+// c.Assert(func() { f(1, 2) }, Panics, &SomeErrorType{"BOOM"}).
+//
+//
+var Panics Checker = &panicsChecker{
+ &CheckerInfo{Name: "Panics", Params: []string{"function", "expected"}},
+}
+
+func (checker *panicsChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ f := reflect.ValueOf(params[0])
+ if f.Kind() != reflect.Func || f.Type().NumIn() != 0 {
+ return false, "Function must take zero arguments"
+ }
+ defer func() {
+ // If the function has not panicked, then don't do the check.
+ if error != "" {
+ return
+ }
+ params[0] = recover()
+ names[0] = "panic"
+ result = reflect.DeepEqual(params[0], params[1])
+ }()
+ f.Call(nil)
+ return false, "Function has not panicked"
+}
+
+type panicMatchesChecker struct {
+ *CheckerInfo
+}
+
+// The PanicMatches checker verifies that calling the provided zero-argument
+// function will cause a panic with an error value matching
+// the regular expression provided.
+//
+// For example:
+//
+// c.Assert(func() { f(1, 2) }, PanicMatches, `open.*: no such file or directory`).
+//
+//
+var PanicMatches Checker = &panicMatchesChecker{
+ &CheckerInfo{Name: "PanicMatches", Params: []string{"function", "expected"}},
+}
+
+func (checker *panicMatchesChecker) Check(params []interface{}, names []string) (result bool, errmsg string) {
+ f := reflect.ValueOf(params[0])
+ if f.Kind() != reflect.Func || f.Type().NumIn() != 0 {
+ return false, "Function must take zero arguments"
+ }
+ defer func() {
+ // If the function has not panicked, then don't do the check.
+ if errmsg != "" {
+ return
+ }
+ obtained := recover()
+ names[0] = "panic"
+ if e, ok := obtained.(error); ok {
+ params[0] = e.Error()
+ } else if _, ok := obtained.(string); ok {
+ params[0] = obtained
+ } else {
+ errmsg = "Panic value is not a string or an error"
+ return
+ }
+ result, errmsg = matches(params[0], params[1])
+ }()
+ f.Call(nil)
+ return false, "Function has not panicked"
+}
+
+// -----------------------------------------------------------------------
+// FitsTypeOf checker.
+
+type fitsTypeChecker struct {
+ *CheckerInfo
+}
+
+// The FitsTypeOf checker verifies that the obtained value is
+// assignable to a variable with the same type as the provided
+// sample value.
+//
+// For example:
+//
+// c.Assert(value, FitsTypeOf, int64(0))
+// c.Assert(value, FitsTypeOf, os.Error(nil))
+//
+var FitsTypeOf Checker = &fitsTypeChecker{
+ &CheckerInfo{Name: "FitsTypeOf", Params: []string{"obtained", "sample"}},
+}
+
+func (checker *fitsTypeChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ obtained := reflect.ValueOf(params[0])
+ sample := reflect.ValueOf(params[1])
+ if !obtained.IsValid() {
+ return false, ""
+ }
+ if !sample.IsValid() {
+ return false, "Invalid sample value"
+ }
+ return obtained.Type().AssignableTo(sample.Type()), ""
+}
+
+// -----------------------------------------------------------------------
+// Implements checker.
+
+type implementsChecker struct {
+ *CheckerInfo
+}
+
+// The Implements checker verifies that the obtained value
+// implements the interface specified via a pointer to an interface
+// variable.
+//
+// For example:
+//
+// var e os.Error
+// c.Assert(err, Implements, &e)
+//
+var Implements Checker = &implementsChecker{
+ &CheckerInfo{Name: "Implements", Params: []string{"obtained", "ifaceptr"}},
+}
+
+func (checker *implementsChecker) Check(params []interface{}, names []string) (result bool, error string) {
+ obtained := reflect.ValueOf(params[0])
+ ifaceptr := reflect.ValueOf(params[1])
+ if !obtained.IsValid() {
+ return false, ""
+ }
+ if !ifaceptr.IsValid() || ifaceptr.Kind() != reflect.Ptr || ifaceptr.Elem().Kind() != reflect.Interface {
+ return false, "ifaceptr should be a pointer to an interface variable"
+ }
+ return obtained.Type().Implements(ifaceptr.Elem().Type()), ""
+}
diff --git a/vendor/gopkg.in/check.v1/helpers.go b/vendor/gopkg.in/check.v1/helpers.go
new file mode 100644
index 000000000..58a733b50
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/helpers.go
@@ -0,0 +1,231 @@
+package check
+
+import (
+ "fmt"
+ "strings"
+ "time"
+)
+
+// TestName returns the current test name in the form "SuiteName.TestName"
+func (c *C) TestName() string {
+ return c.testName
+}
+
+// -----------------------------------------------------------------------
+// Basic succeeding/failing logic.
+
+// Failed returns whether the currently running test has already failed.
+func (c *C) Failed() bool {
+ return c.status() == failedSt
+}
+
+// Fail marks the currently running test as failed.
+//
+// Something ought to have been previously logged so the developer can tell
+// what went wrong. The higher level helper functions will fail the test
+// and do the logging properly.
+func (c *C) Fail() {
+ c.setStatus(failedSt)
+}
+
+// FailNow marks the currently running test as failed and stops running it.
+// Something ought to have been previously logged so the developer can tell
+// what went wrong. The higher level helper functions will fail the test
+// and do the logging properly.
+func (c *C) FailNow() {
+ c.Fail()
+ c.stopNow()
+}
+
+// Succeed marks the currently running test as succeeded, undoing any
+// previous failures.
+func (c *C) Succeed() {
+ c.setStatus(succeededSt)
+}
+
+// SucceedNow marks the currently running test as succeeded, undoing any
+// previous failures, and stops running the test.
+func (c *C) SucceedNow() {
+ c.Succeed()
+ c.stopNow()
+}
+
+// ExpectFailure informs that the running test is knowingly broken for
+// the provided reason. If the test does not fail, an error will be reported
+// to raise attention to this fact. This method is useful to temporarily
+// disable tests which cover well known problems until a better time to
+// fix the problem is found, without forgetting about the fact that a
+// failure still exists.
+func (c *C) ExpectFailure(reason string) {
+ if reason == "" {
+ panic("Missing reason why the test is expected to fail")
+ }
+ c.mustFail = true
+ c.reason = reason
+}
+
+// Skip skips the running test for the provided reason. If run from within
+// SetUpTest, the individual test being set up will be skipped, and if run
+// from within SetUpSuite, the whole suite is skipped.
+func (c *C) Skip(reason string) {
+ if reason == "" {
+ panic("Missing reason why the test is being skipped")
+ }
+ c.reason = reason
+ c.setStatus(skippedSt)
+ c.stopNow()
+}
+
+// -----------------------------------------------------------------------
+// Basic logging.
+
+// GetTestLog returns the current test error output.
+func (c *C) GetTestLog() string {
+ return c.logb.String()
+}
+
+// Log logs some information into the test error output.
+// The provided arguments are assembled together into a string with fmt.Sprint.
+func (c *C) Log(args ...interface{}) {
+ c.log(args...)
+}
+
+// Log logs some information into the test error output.
+// The provided arguments are assembled together into a string with fmt.Sprintf.
+func (c *C) Logf(format string, args ...interface{}) {
+ c.logf(format, args...)
+}
+
+// Output enables *C to be used as a logger in functions that require only
+// the minimum interface of *log.Logger.
+func (c *C) Output(calldepth int, s string) error {
+ d := time.Now().Sub(c.startTime)
+ msec := d / time.Millisecond
+ sec := d / time.Second
+ min := d / time.Minute
+
+ c.Logf("[LOG] %d:%02d.%03d %s", min, sec%60, msec%1000, s)
+ return nil
+}
+
+// Error logs an error into the test error output and marks the test as failed.
+// The provided arguments are assembled together into a string with fmt.Sprint.
+func (c *C) Error(args ...interface{}) {
+ c.logCaller(1)
+ c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...)))
+ c.logNewLine()
+ c.Fail()
+}
+
+// Errorf logs an error into the test error output and marks the test as failed.
+// The provided arguments are assembled together into a string with fmt.Sprintf.
+func (c *C) Errorf(format string, args ...interface{}) {
+ c.logCaller(1)
+ c.logString(fmt.Sprintf("Error: "+format, args...))
+ c.logNewLine()
+ c.Fail()
+}
+
+// Fatal logs an error into the test error output, marks the test as failed, and
+// stops the test execution. The provided arguments are assembled together into
+// a string with fmt.Sprint.
+func (c *C) Fatal(args ...interface{}) {
+ c.logCaller(1)
+ c.logString(fmt.Sprint("Error: ", fmt.Sprint(args...)))
+ c.logNewLine()
+ c.FailNow()
+}
+
+// Fatlaf logs an error into the test error output, marks the test as failed, and
+// stops the test execution. The provided arguments are assembled together into
+// a string with fmt.Sprintf.
+func (c *C) Fatalf(format string, args ...interface{}) {
+ c.logCaller(1)
+ c.logString(fmt.Sprint("Error: ", fmt.Sprintf(format, args...)))
+ c.logNewLine()
+ c.FailNow()
+}
+
+// -----------------------------------------------------------------------
+// Generic checks and assertions based on checkers.
+
+// Check verifies if the first value matches the expected value according
+// to the provided checker. If they do not match, an error is logged, the
+// test is marked as failed, and the test execution continues.
+//
+// Some checkers may not need the expected argument (e.g. IsNil).
+//
+// Extra arguments provided to the function are logged next to the reported
+// problem when the matching fails.
+func (c *C) Check(obtained interface{}, checker Checker, args ...interface{}) bool {
+ return c.internalCheck("Check", obtained, checker, args...)
+}
+
+// Assert ensures that the first value matches the expected value according
+// to the provided checker. If they do not match, an error is logged, the
+// test is marked as failed, and the test execution stops.
+//
+// Some checkers may not need the expected argument (e.g. IsNil).
+//
+// Extra arguments provided to the function are logged next to the reported
+// problem when the matching fails.
+func (c *C) Assert(obtained interface{}, checker Checker, args ...interface{}) {
+ if !c.internalCheck("Assert", obtained, checker, args...) {
+ c.stopNow()
+ }
+}
+
+func (c *C) internalCheck(funcName string, obtained interface{}, checker Checker, args ...interface{}) bool {
+ if checker == nil {
+ c.logCaller(2)
+ c.logString(fmt.Sprintf("%s(obtained, nil!?, ...):", funcName))
+ c.logString("Oops.. you've provided a nil checker!")
+ c.logNewLine()
+ c.Fail()
+ return false
+ }
+
+ // If the last argument is a bug info, extract it out.
+ var comment CommentInterface
+ if len(args) > 0 {
+ if c, ok := args[len(args)-1].(CommentInterface); ok {
+ comment = c
+ args = args[:len(args)-1]
+ }
+ }
+
+ params := append([]interface{}{obtained}, args...)
+ info := checker.Info()
+
+ if len(params) != len(info.Params) {
+ names := append([]string{info.Params[0], info.Name}, info.Params[1:]...)
+ c.logCaller(2)
+ c.logString(fmt.Sprintf("%s(%s):", funcName, strings.Join(names, ", ")))
+ c.logString(fmt.Sprintf("Wrong number of parameters for %s: want %d, got %d", info.Name, len(names), len(params)+1))
+ c.logNewLine()
+ c.Fail()
+ return false
+ }
+
+ // Copy since it may be mutated by Check.
+ names := append([]string{}, info.Params...)
+
+ // Do the actual check.
+ result, error := checker.Check(params, names)
+ if !result || error != "" {
+ c.logCaller(2)
+ for i := 0; i != len(params); i++ {
+ c.logValue(names[i], params[i])
+ }
+ if comment != nil {
+ c.logString(comment.CheckCommentString())
+ }
+ if error != "" {
+ c.logString(error)
+ }
+ c.logNewLine()
+ c.Fail()
+ return false
+ }
+ return true
+}
diff --git a/vendor/gopkg.in/check.v1/printer.go b/vendor/gopkg.in/check.v1/printer.go
new file mode 100644
index 000000000..e0f7557b5
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/printer.go
@@ -0,0 +1,168 @@
+package check
+
+import (
+ "bytes"
+ "go/ast"
+ "go/parser"
+ "go/printer"
+ "go/token"
+ "os"
+)
+
+func indent(s, with string) (r string) {
+ eol := true
+ for i := 0; i != len(s); i++ {
+ c := s[i]
+ switch {
+ case eol && c == '\n' || c == '\r':
+ case c == '\n' || c == '\r':
+ eol = true
+ case eol:
+ eol = false
+ s = s[:i] + with + s[i:]
+ i += len(with)
+ }
+ }
+ return s
+}
+
+func printLine(filename string, line int) (string, error) {
+ fset := token.NewFileSet()
+ file, err := os.Open(filename)
+ if err != nil {
+ return "", err
+ }
+ fnode, err := parser.ParseFile(fset, filename, file, parser.ParseComments)
+ if err != nil {
+ return "", err
+ }
+ config := &printer.Config{Mode: printer.UseSpaces, Tabwidth: 4}
+ lp := &linePrinter{fset: fset, fnode: fnode, line: line, config: config}
+ ast.Walk(lp, fnode)
+ result := lp.output.Bytes()
+ // Comments leave \n at the end.
+ n := len(result)
+ for n > 0 && result[n-1] == '\n' {
+ n--
+ }
+ return string(result[:n]), nil
+}
+
+type linePrinter struct {
+ config *printer.Config
+ fset *token.FileSet
+ fnode *ast.File
+ line int
+ output bytes.Buffer
+ stmt ast.Stmt
+}
+
+func (lp *linePrinter) emit() bool {
+ if lp.stmt != nil {
+ lp.trim(lp.stmt)
+ lp.printWithComments(lp.stmt)
+ lp.stmt = nil
+ return true
+ }
+ return false
+}
+
+func (lp *linePrinter) printWithComments(n ast.Node) {
+ nfirst := lp.fset.Position(n.Pos()).Line
+ nlast := lp.fset.Position(n.End()).Line
+ for _, g := range lp.fnode.Comments {
+ cfirst := lp.fset.Position(g.Pos()).Line
+ clast := lp.fset.Position(g.End()).Line
+ if clast == nfirst-1 && lp.fset.Position(n.Pos()).Column == lp.fset.Position(g.Pos()).Column {
+ for _, c := range g.List {
+ lp.output.WriteString(c.Text)
+ lp.output.WriteByte('\n')
+ }
+ }
+ if cfirst >= nfirst && cfirst <= nlast && n.End() <= g.List[0].Slash {
+ // The printer will not include the comment if it starts past
+ // the node itself. Trick it into printing by overlapping the
+ // slash with the end of the statement.
+ g.List[0].Slash = n.End() - 1
+ }
+ }
+ node := &printer.CommentedNode{n, lp.fnode.Comments}
+ lp.config.Fprint(&lp.output, lp.fset, node)
+}
+
+func (lp *linePrinter) Visit(n ast.Node) (w ast.Visitor) {
+ if n == nil {
+ if lp.output.Len() == 0 {
+ lp.emit()
+ }
+ return nil
+ }
+ first := lp.fset.Position(n.Pos()).Line
+ last := lp.fset.Position(n.End()).Line
+ if first <= lp.line && last >= lp.line {
+ // Print the innermost statement containing the line.
+ if stmt, ok := n.(ast.Stmt); ok {
+ if _, ok := n.(*ast.BlockStmt); !ok {
+ lp.stmt = stmt
+ }
+ }
+ if first == lp.line && lp.emit() {
+ return nil
+ }
+ return lp
+ }
+ return nil
+}
+
+func (lp *linePrinter) trim(n ast.Node) bool {
+ stmt, ok := n.(ast.Stmt)
+ if !ok {
+ return true
+ }
+ line := lp.fset.Position(n.Pos()).Line
+ if line != lp.line {
+ return false
+ }
+ switch stmt := stmt.(type) {
+ case *ast.IfStmt:
+ stmt.Body = lp.trimBlock(stmt.Body)
+ case *ast.SwitchStmt:
+ stmt.Body = lp.trimBlock(stmt.Body)
+ case *ast.TypeSwitchStmt:
+ stmt.Body = lp.trimBlock(stmt.Body)
+ case *ast.CaseClause:
+ stmt.Body = lp.trimList(stmt.Body)
+ case *ast.CommClause:
+ stmt.Body = lp.trimList(stmt.Body)
+ case *ast.BlockStmt:
+ stmt.List = lp.trimList(stmt.List)
+ }
+ return true
+}
+
+func (lp *linePrinter) trimBlock(stmt *ast.BlockStmt) *ast.BlockStmt {
+ if !lp.trim(stmt) {
+ return lp.emptyBlock(stmt)
+ }
+ stmt.Rbrace = stmt.Lbrace
+ return stmt
+}
+
+func (lp *linePrinter) trimList(stmts []ast.Stmt) []ast.Stmt {
+ for i := 0; i != len(stmts); i++ {
+ if !lp.trim(stmts[i]) {
+ stmts[i] = lp.emptyStmt(stmts[i])
+ break
+ }
+ }
+ return stmts
+}
+
+func (lp *linePrinter) emptyStmt(n ast.Node) *ast.ExprStmt {
+ return &ast.ExprStmt{&ast.Ellipsis{n.Pos(), nil}}
+}
+
+func (lp *linePrinter) emptyBlock(n ast.Node) *ast.BlockStmt {
+ p := n.Pos()
+ return &ast.BlockStmt{p, []ast.Stmt{lp.emptyStmt(n)}, p}
+}
diff --git a/vendor/gopkg.in/check.v1/reporter.go b/vendor/gopkg.in/check.v1/reporter.go
new file mode 100644
index 000000000..fb04f76f6
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/reporter.go
@@ -0,0 +1,88 @@
+package check
+
+import (
+ "fmt"
+ "io"
+ "sync"
+)
+
+// -----------------------------------------------------------------------
+// Output writer manages atomic output writing according to settings.
+
+type outputWriter struct {
+ m sync.Mutex
+ writer io.Writer
+ wroteCallProblemLast bool
+ Stream bool
+ Verbose bool
+}
+
+func newOutputWriter(writer io.Writer, stream, verbose bool) *outputWriter {
+ return &outputWriter{writer: writer, Stream: stream, Verbose: verbose}
+}
+
+func (ow *outputWriter) Write(content []byte) (n int, err error) {
+ ow.m.Lock()
+ n, err = ow.writer.Write(content)
+ ow.m.Unlock()
+ return
+}
+
+func (ow *outputWriter) WriteCallStarted(label string, c *C) {
+ if ow.Stream {
+ header := renderCallHeader(label, c, "", "\n")
+ ow.m.Lock()
+ ow.writer.Write([]byte(header))
+ ow.m.Unlock()
+ }
+}
+
+func (ow *outputWriter) WriteCallProblem(label string, c *C) {
+ var prefix string
+ if !ow.Stream {
+ prefix = "\n-----------------------------------" +
+ "-----------------------------------\n"
+ }
+ header := renderCallHeader(label, c, prefix, "\n\n")
+ ow.m.Lock()
+ ow.wroteCallProblemLast = true
+ ow.writer.Write([]byte(header))
+ if !ow.Stream {
+ c.logb.WriteTo(ow.writer)
+ }
+ ow.m.Unlock()
+}
+
+func (ow *outputWriter) WriteCallSuccess(label string, c *C) {
+ if ow.Stream || (ow.Verbose && c.kind == testKd) {
+ // TODO Use a buffer here.
+ var suffix string
+ if c.reason != "" {
+ suffix = " (" + c.reason + ")"
+ }
+ if c.status() == succeededSt {
+ suffix += "\t" + c.timerString()
+ }
+ suffix += "\n"
+ if ow.Stream {
+ suffix += "\n"
+ }
+ header := renderCallHeader(label, c, "", suffix)
+ ow.m.Lock()
+ // Resist temptation of using line as prefix above due to race.
+ if !ow.Stream && ow.wroteCallProblemLast {
+ header = "\n-----------------------------------" +
+ "-----------------------------------\n" +
+ header
+ }
+ ow.wroteCallProblemLast = false
+ ow.writer.Write([]byte(header))
+ ow.m.Unlock()
+ }
+}
+
+func renderCallHeader(label string, c *C, prefix, suffix string) string {
+ pc := c.method.PC()
+ return fmt.Sprintf("%s%s: %s: %s%s", prefix, label, niceFuncPath(pc),
+ niceFuncName(pc), suffix)
+}
diff --git a/vendor/gopkg.in/check.v1/run.go b/vendor/gopkg.in/check.v1/run.go
new file mode 100644
index 000000000..da8fd7987
--- /dev/null
+++ b/vendor/gopkg.in/check.v1/run.go
@@ -0,0 +1,175 @@
+package check
+
+import (
+ "bufio"
+ "flag"
+ "fmt"
+ "os"
+ "testing"
+ "time"
+)
+
+// -----------------------------------------------------------------------
+// Test suite registry.
+
+var allSuites []interface{}
+
+// Suite registers the given value as a test suite to be run. Any methods
+// starting with the Test prefix in the given value will be considered as
+// a test method.
+func Suite(suite interface{}) interface{} {
+ allSuites = append(allSuites, suite)
+ return suite
+}
+
+// -----------------------------------------------------------------------
+// Public running interface.
+
+var (
+ oldFilterFlag = flag.String("gocheck.f", "", "Regular expression selecting which tests and/or suites to run")
+ oldVerboseFlag = flag.Bool("gocheck.v", false, "Verbose mode")
+ oldStreamFlag = flag.Bool("gocheck.vv", false, "Super verbose mode (disables output caching)")
+ oldBenchFlag = flag.Bool("gocheck.b", false, "Run benchmarks")
+ oldBenchTime = flag.Duration("gocheck.btime", 1*time.Second, "approximate run time for each benchmark")
+ oldListFlag = flag.Bool("gocheck.list", false, "List the names of all tests that will be run")
+ oldWorkFlag = flag.Bool("gocheck.work", false, "Display and do not remove the test working directory")
+
+ newFilterFlag = flag.String("check.f", "", "Regular expression selecting which tests and/or suites to run")
+ newVerboseFlag = flag.Bool("check.v", false, "Verbose mode")
+ newStreamFlag = flag.Bool("check.vv", false, "Super verbose mode (disables output caching)")
+ newBenchFlag = flag.Bool("check.b", false, "Run benchmarks")
+ newBenchTime = flag.Duration("check.btime", 1*time.Second, "approximate run time for each benchmark")
+ newBenchMem = flag.Bool("check.bmem", false, "Report memory benchmarks")
+ newListFlag = flag.Bool("check.list", false, "List the names of all tests that will be run")
+ newWorkFlag = flag.Bool("check.work", false, "Display and do not remove the test working directory")
+)
+
+// TestingT runs all test suites registered with the Suite function,
+// printing results to stdout, and reporting any failures back to
+// the "testing" package.
+func TestingT(testingT *testing.T) {
+ benchTime := *newBenchTime
+ if benchTime == 1*time.Second {
+ benchTime = *oldBenchTime
+ }
+ conf := &RunConf{
+ Filter: *oldFilterFlag + *newFilterFlag,
+ Verbose: *oldVerboseFlag || *newVerboseFlag,
+ Stream: *oldStreamFlag || *newStreamFlag,
+ Benchmark: *oldBenchFlag || *newBenchFlag,
+ BenchmarkTime: benchTime,
+ BenchmarkMem: *newBenchMem,
+ KeepWorkDir: *oldWorkFlag || *newWorkFlag,
+ }
+ if *oldListFlag || *newListFlag {
+ w := bufio.NewWriter(os.Stdout)
+ for _, name := range ListAll(conf) {
+ fmt.Fprintln(w, name)
+ }
+ w.Flush()
+ return
+ }
+ result := RunAll(conf)
+ println(result.String())
+ if !result.Passed() {
+ testingT.Fail()
+ }
+}
+
+// RunAll runs all test suites registered with the Suite function, using the
+// provided run configuration.
+func RunAll(runConf *RunConf) *Result {
+ result := Result{}
+ for _, suite := range allSuites {
+ result.Add(Run(suite, runConf))
+ }
+ return &result
+}
+
+// Run runs the provided test suite using the provided run configuration.
+func Run(suite interface{}, runConf *RunConf) *Result {
+ runner := newSuiteRunner(suite, runConf)
+ return runner.run()
+}
+
+// ListAll returns the names of all the test functions registered with the
+// Suite function that will be run with the provided run configuration.
+func ListAll(runConf *RunConf) []string {
+ var names []string
+ for _, suite := range allSuites {
+ names = append(names, List(suite, runConf)...)
+ }
+ return names
+}
+
+// List returns the names of the test functions in the given
+// suite that will be run with the provided run configuration.
+func List(suite interface{}, runConf *RunConf) []string {
+ var names []string
+ runner := newSuiteRunner(suite, runConf)
+ for _, t := range runner.tests {
+ names = append(names, t.String())
+ }
+ return names
+}
+
+// -----------------------------------------------------------------------
+// Result methods.
+
+func (r *Result) Add(other *Result) {
+ r.Succeeded += other.Succeeded
+ r.Skipped += other.Skipped
+ r.Failed += other.Failed
+ r.Panicked += other.Panicked
+ r.FixturePanicked += other.FixturePanicked
+ r.ExpectedFailures += other.ExpectedFailures
+ r.Missed += other.Missed
+ if r.WorkDir != "" && other.WorkDir != "" {
+ r.WorkDir += ":" + other.WorkDir
+ } else if other.WorkDir != "" {
+ r.WorkDir = other.WorkDir
+ }
+}
+
+func (r *Result) Passed() bool {
+ return (r.Failed == 0 && r.Panicked == 0 &&
+ r.FixturePanicked == 0 && r.Missed == 0 &&
+ r.RunError == nil)
+}
+
+func (r *Result) String() string {
+ if r.RunError != nil {
+ return "ERROR: " + r.RunError.Error()
+ }
+
+ var value string
+ if r.Failed == 0 && r.Panicked == 0 && r.FixturePanicked == 0 &&
+ r.Missed == 0 {
+ value = "OK: "
+ } else {
+ value = "OOPS: "
+ }
+ value += fmt.Sprintf("%d passed", r.Succeeded)
+ if r.Skipped != 0 {
+ value += fmt.Sprintf(", %d skipped", r.Skipped)
+ }
+ if r.ExpectedFailures != 0 {
+ value += fmt.Sprintf(", %d expected failures", r.ExpectedFailures)
+ }
+ if r.Failed != 0 {
+ value += fmt.Sprintf(", %d FAILED", r.Failed)
+ }
+ if r.Panicked != 0 {
+ value += fmt.Sprintf(", %d PANICKED", r.Panicked)
+ }
+ if r.FixturePanicked != 0 {
+ value += fmt.Sprintf(", %d FIXTURE-PANICKED", r.FixturePanicked)
+ }
+ if r.Missed != 0 {
+ value += fmt.Sprintf(", %d MISSED", r.Missed)
+ }
+ if r.WorkDir != "" {
+ value += "\nWORK=" + r.WorkDir
+ }
+ return value
+}
diff --git a/vendor/gopkg.in/fatih/set.v0/.travis.yml b/vendor/gopkg.in/fatih/set.v0/.travis.yml
new file mode 100644
index 000000000..b05e4c53f
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/.travis.yml
@@ -0,0 +1,3 @@
+language: go
+go: 1.2
+
diff --git a/vendor/gopkg.in/fatih/set.v0/LICENSE.md b/vendor/gopkg.in/fatih/set.v0/LICENSE.md
new file mode 100644
index 000000000..25fdaf639
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/LICENSE.md
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Fatih Arslan
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/vendor/gopkg.in/fatih/set.v0/README.md b/vendor/gopkg.in/fatih/set.v0/README.md
new file mode 100644
index 000000000..23afdd98d
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/README.md
@@ -0,0 +1,245 @@
+# Set [![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](https://godoc.org/gopkg.in/fatih/set.v0) [![Build Status](http://img.shields.io/travis/fatih/set.svg?style=flat-square)](https://travis-ci.org/fatih/set)
+
+Set is a basic and simple, hash-based, **Set** data structure implementation
+in Go (Golang).
+
+Set provides both threadsafe and non-threadsafe implementations of a generic
+set data structure. The thread safety encompasses all operations on one set.
+Operations on multiple sets are consistent in that the elements of each set
+used was valid at exactly one point in time between the start and the end of
+the operation. Because it's thread safe, you can use it concurrently with your
+goroutines.
+
+For usage see examples below or click on the godoc badge.
+
+## Install and Usage
+
+Install the package with:
+
+```bash
+go get gopkg.in/fatih/set.v0
+```
+
+Import it with:
+
+```go
+import "gopkg.in/fatih/set.v0"
+```
+
+and use `set` as the package name inside the code.
+
+## Examples
+
+#### Initialization of a new Set
+
+```go
+
+// create a set with zero items
+s := set.New()
+s := set.NewNonTS() // non thread-safe version
+
+// ... or with some initial values
+s := set.New("istanbul", "frankfurt", 30.123, "san francisco", 1234)
+s := set.NewNonTS("kenya", "ethiopia", "sumatra")
+
+```
+
+#### Basic Operations
+
+```go
+// add items
+s.Add("istanbul")
+s.Add("istanbul") // nothing happens if you add duplicate item
+
+// add multiple items
+s.Add("ankara", "san francisco", 3.14)
+
+// remove item
+s.Remove("frankfurt")
+s.Remove("frankfurt") // nothing happes if you remove a nonexisting item
+
+// remove multiple items
+s.Remove("barcelona", 3.14, "ankara")
+
+// removes an arbitary item and return it
+item := s.Pop()
+
+// create a new copy
+other := s.Copy()
+
+// remove all items
+s.Clear()
+
+// number of items in the set
+len := s.Size()
+
+// return a list of items
+items := s.List()
+
+// string representation of set
+fmt.Printf("set is %s", s.String())
+
+```
+
+#### Check Operations
+
+```go
+// check for set emptiness, returns true if set is empty
+s.IsEmpty()
+
+// check for a single item exist
+s.Has("istanbul")
+
+// ... or for multiple items. This will return true if all of the items exist.
+s.Has("istanbul", "san francisco", 3.14)
+
+// create two sets for the following checks...
+s := s.New("1", "2", "3", "4", "5")
+t := s.New("1", "2", "3")
+
+
+// check if they are the same
+if !s.IsEqual(t) {
+ fmt.Println("s is not equal to t")
+}
+
+// if s contains all elements of t
+if s.IsSubset(t) {
+ fmt.Println("t is a subset of s")
+}
+
+// ... or if s is a superset of t
+if t.IsSuperset(s) {
+ fmt.Println("s is a superset of t")
+}
+
+
+```
+
+#### Set Operations
+
+
+```go
+// let us initialize two sets with some values
+a := set.New("ankara", "berlin", "san francisco")
+b := set.New("frankfurt", "berlin")
+
+// creates a new set with the items in a and b combined.
+// [frankfurt, berlin, ankara, san francisco]
+c := set.Union(a, b)
+
+// contains items which is in both a and b
+// [berlin]
+c := set.Intersection(a, b)
+
+// contains items which are in a but not in b
+// [ankara, san francisco]
+c := set.Difference(a, b)
+
+// contains items which are in one of either, but not in both.
+// [frankfurt, ankara, san francisco]
+c := set.SymmetricDifference(a, b)
+
+```
+
+```go
+// like Union but saves the result back into a.
+a.Merge(b)
+
+// removes the set items which are in b from a and saves the result back into a.
+a.Separate(b)
+
+```
+
+#### Multiple Set Operations
+
+```go
+a := set.New("1", "3", "4", "5")
+b := set.New("2", "3", "4", "5")
+c := set.New("4", "5", "6", "7")
+
+// creates a new set with items in a, b and c
+// [1 2 3 4 5 6 7]
+u := set.Union(a, b, c)
+
+// creates a new set with items in a but not in b and c
+// [1]
+u := set.Difference(a, b, c)
+
+// creates a new set with items that are common to a, b and c
+// [5]
+u := set.Intersection(a, b, c)
+```
+
+#### Helper methods
+
+The Slice functions below are a convenient way to extract or convert your Set data
+into basic data types.
+
+
+```go
+// create a set of mixed types
+s := set.New("ankara", "5", "8", "san francisco", 13, 21)
+
+
+// convert s into a slice of strings (type is []string)
+// [ankara 5 8 san francisco]
+t := set.StringSlice(s)
+
+
+// u contains a slice of ints (type is []int)
+// [13, 21]
+u := set.IntSlice(s)
+
+```
+
+#### Concurrent safe usage
+
+Below is an example of a concurrent way that uses set. We call ten functions
+concurrently and wait until they are finished. It basically creates a new
+string for each goroutine and adds it to our set.
+
+```go
+package main
+
+import (
+ "fmt"
+ "github.com/fatih/set"
+ "strconv"
+ "sync"
+)
+
+func main() {
+ var wg sync.WaitGroup // this is just for waiting until all goroutines finish
+
+ // Initialize our thread safe Set
+ s := set.New()
+
+ // Add items concurrently (item1, item2, and so on)
+ for i := 0; i < 10; i++ {
+ wg.Add(1)
+ go func(i int) {
+ item := "item" + strconv.Itoa(i)
+ fmt.Println("adding", item)
+ s.Add(item)
+ wg.Done()
+ }(i)
+ }
+
+ // Wait until all concurrent calls finished and print our set
+ wg.Wait()
+ fmt.Println(s)
+}
+```
+
+## Credits
+
+ * [Fatih Arslan](https://github.com/fatih)
+ * [Arne Hormann](https://github.com/arnehormann)
+ * [Sam Boyer](https://github.com/sdboyer)
+ * [Ralph Loizzo](https://github.com/friartech)
+
+## License
+
+The MIT License (MIT) - see LICENSE.md for more details
+
diff --git a/vendor/gopkg.in/fatih/set.v0/set.go b/vendor/gopkg.in/fatih/set.v0/set.go
new file mode 100644
index 000000000..ac0240ce7
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/set.go
@@ -0,0 +1,121 @@
+// Package set provides both threadsafe and non-threadsafe implementations of
+// a generic set data structure. In the threadsafe set, safety encompasses all
+// operations on one set. Operations on multiple sets are consistent in that
+// the elements of each set used was valid at exactly one point in time
+// between the start and the end of the operation.
+package set
+
+// Interface is describing a Set. Sets are an unordered, unique list of values.
+type Interface interface {
+ New(items ...interface{}) Interface
+ Add(items ...interface{})
+ Remove(items ...interface{})
+ Pop() interface{}
+ Has(items ...interface{}) bool
+ Size() int
+ Clear()
+ IsEmpty() bool
+ IsEqual(s Interface) bool
+ IsSubset(s Interface) bool
+ IsSuperset(s Interface) bool
+ Each(func(interface{}) bool)
+ String() string
+ List() []interface{}
+ Copy() Interface
+ Merge(s Interface)
+ Separate(s Interface)
+}
+
+// helpful to not write everywhere struct{}{}
+var keyExists = struct{}{}
+
+// Union is the merger of multiple sets. It returns a new set with all the
+// elements present in all the sets that are passed.
+//
+// The dynamic type of the returned set is determined by the first passed set's
+// implementation of the New() method.
+func Union(set1, set2 Interface, sets ...Interface) Interface {
+ u := set1.Copy()
+ set2.Each(func(item interface{}) bool {
+ u.Add(item)
+ return true
+ })
+ for _, set := range sets {
+ set.Each(func(item interface{}) bool {
+ u.Add(item)
+ return true
+ })
+ }
+
+ return u
+}
+
+// Difference returns a new set which contains items which are in in the first
+// set but not in the others. Unlike the Difference() method you can use this
+// function separately with multiple sets.
+func Difference(set1, set2 Interface, sets ...Interface) Interface {
+ s := set1.Copy()
+ s.Separate(set2)
+ for _, set := range sets {
+ s.Separate(set) // seperate is thread safe
+ }
+ return s
+}
+
+// Intersection returns a new set which contains items that only exist in all given sets.
+func Intersection(set1, set2 Interface, sets ...Interface) Interface {
+ all := Union(set1, set2, sets...)
+ result := Union(set1, set2, sets...)
+
+ all.Each(func(item interface{}) bool {
+ if !set1.Has(item) || !set2.Has(item) {
+ result.Remove(item)
+ }
+
+ for _, set := range sets {
+ if !set.Has(item) {
+ result.Remove(item)
+ }
+ }
+ return true
+ })
+ return result
+}
+
+// SymmetricDifference returns a new set which s is the difference of items which are in
+// one of either, but not in both.
+func SymmetricDifference(s Interface, t Interface) Interface {
+ u := Difference(s, t)
+ v := Difference(t, s)
+ return Union(u, v)
+}
+
+// StringSlice is a helper function that returns a slice of strings of s. If
+// the set contains mixed types of items only items of type string are returned.
+func StringSlice(s Interface) []string {
+ slice := make([]string, 0)
+ for _, item := range s.List() {
+ v, ok := item.(string)
+ if !ok {
+ continue
+ }
+
+ slice = append(slice, v)
+ }
+ return slice
+}
+
+// IntSlice is a helper function that returns a slice of ints of s. If
+// the set contains mixed types of items only items of type int are returned.
+func IntSlice(s Interface) []int {
+ slice := make([]int, 0)
+ for _, item := range s.List() {
+ v, ok := item.(int)
+ if !ok {
+ continue
+ }
+
+ slice = append(slice, v)
+ }
+ return slice
+}
diff --git a/vendor/gopkg.in/fatih/set.v0/set_nots.go b/vendor/gopkg.in/fatih/set.v0/set_nots.go
new file mode 100644
index 000000000..ec1ab2285
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/set_nots.go
@@ -0,0 +1,195 @@
+package set
+
+import (
+ "fmt"
+ "strings"
+)
+
+// Provides a common set baseline for both threadsafe and non-ts Sets.
+type set struct {
+ m map[interface{}]struct{} // struct{} doesn't take up space
+}
+
+// SetNonTS defines a non-thread safe set data structure.
+type SetNonTS struct {
+ set
+}
+
+// NewNonTS creates and initialize a new non-threadsafe Set.
+// It accepts a variable number of arguments to populate the initial set.
+// If nothing is passed a SetNonTS with zero size is created.
+func NewNonTS(items ...interface{}) *SetNonTS {
+ s := &SetNonTS{}
+ s.m = make(map[interface{}]struct{})
+
+ // Ensure interface compliance
+ var _ Interface = s
+
+ s.Add(items...)
+ return s
+}
+
+// New creates and initalizes a new Set interface. It accepts a variable
+// number of arguments to populate the initial set. If nothing is passed a
+// zero size Set based on the struct is created.
+func (s *set) New(items ...interface{}) Interface {
+ return NewNonTS(items...)
+}
+
+// Add includes the specified items (one or more) to the set. The underlying
+// Set s is modified. If passed nothing it silently returns.
+func (s *set) Add(items ...interface{}) {
+ if len(items) == 0 {
+ return
+ }
+
+ for _, item := range items {
+ s.m[item] = keyExists
+ }
+}
+
+// Remove deletes the specified items from the set. The underlying Set s is
+// modified. If passed nothing it silently returns.
+func (s *set) Remove(items ...interface{}) {
+ if len(items) == 0 {
+ return
+ }
+
+ for _, item := range items {
+ delete(s.m, item)
+ }
+}
+
+// Pop deletes and return an item from the set. The underlying Set s is
+// modified. If set is empty, nil is returned.
+func (s *set) Pop() interface{} {
+ for item := range s.m {
+ delete(s.m, item)
+ return item
+ }
+ return nil
+}
+
+// Has looks for the existence of items passed. It returns false if nothing is
+// passed. For multiple items it returns true only if all of the items exist.
+func (s *set) Has(items ...interface{}) bool {
+ // assume checked for empty item, which not exist
+ if len(items) == 0 {
+ return false
+ }
+
+ has := true
+ for _, item := range items {
+ if _, has = s.m[item]; !has {
+ break
+ }
+ }
+ return has
+}
+
+// Size returns the number of items in a set.
+func (s *set) Size() int {
+ return len(s.m)
+}
+
+// Clear removes all items from the set.
+func (s *set) Clear() {
+ s.m = make(map[interface{}]struct{})
+}
+
+// IsEmpty reports whether the Set is empty.
+func (s *set) IsEmpty() bool {
+ return s.Size() == 0
+}
+
+// IsEqual test whether s and t are the same in size and have the same items.
+func (s *set) IsEqual(t Interface) bool {
+ // Force locking only if given set is threadsafe.
+ if conv, ok := t.(*Set); ok {
+ conv.l.RLock()
+ defer conv.l.RUnlock()
+ }
+
+ // return false if they are no the same size
+ if sameSize := len(s.m) == t.Size(); !sameSize {
+ return false
+ }
+
+ equal := true
+ t.Each(func(item interface{}) bool {
+ _, equal = s.m[item]
+ return equal // if false, Each() will end
+ })
+
+ return equal
+}
+
+// IsSubset tests whether t is a subset of s.
+func (s *set) IsSubset(t Interface) (subset bool) {
+ subset = true
+
+ t.Each(func(item interface{}) bool {
+ _, subset = s.m[item]
+ return subset
+ })
+
+ return
+}
+
+// IsSuperset tests whether t is a superset of s.
+func (s *set) IsSuperset(t Interface) bool {
+ return t.IsSubset(s)
+}
+
+// Each traverses the items in the Set, calling the provided function for each
+// set member. Traversal will continue until all items in the Set have been
+// visited, or if the closure returns false.
+func (s *set) Each(f func(item interface{}) bool) {
+ for item := range s.m {
+ if !f(item) {
+ break
+ }
+ }
+}
+
+// String returns a string representation of s
+func (s *set) String() string {
+ t := make([]string, 0, len(s.List()))
+ for _, item := range s.List() {
+ t = append(t, fmt.Sprintf("%v", item))
+ }
+
+ return fmt.Sprintf("[%s]", strings.Join(t, ", "))
+}
+
+// List returns a slice of all items. There is also StringSlice() and
+// IntSlice() methods for returning slices of type string or int.
+func (s *set) List() []interface{} {
+ list := make([]interface{}, 0, len(s.m))
+
+ for item := range s.m {
+ list = append(list, item)
+ }
+
+ return list
+}
+
+// Copy returns a new Set with a copy of s.
+func (s *set) Copy() Interface {
+ return NewNonTS(s.List()...)
+}
+
+// Merge is like Union, however it modifies the current set it's applied on
+// with the given t set.
+func (s *set) Merge(t Interface) {
+ t.Each(func(item interface{}) bool {
+ s.m[item] = keyExists
+ return true
+ })
+}
+
+// it's not the opposite of Merge.
+// Separate removes the set items containing in t from set s. Please aware that
+func (s *set) Separate(t Interface) {
+ s.Remove(t.List()...)
+}
diff --git a/vendor/gopkg.in/fatih/set.v0/set_ts.go b/vendor/gopkg.in/fatih/set.v0/set_ts.go
new file mode 100644
index 000000000..50f532565
--- /dev/null
+++ b/vendor/gopkg.in/fatih/set.v0/set_ts.go
@@ -0,0 +1,200 @@
+package set
+
+import (
+ "sync"
+)
+
+// Set defines a thread safe set data structure.
+type Set struct {
+ set
+ l sync.RWMutex // we name it because we don't want to expose it
+}
+
+// New creates and initialize a new Set. It's accept a variable number of
+// arguments to populate the initial set. If nothing passed a Set with zero
+// size is created.
+func New(items ...interface{}) *Set {
+ s := &Set{}
+ s.m = make(map[interface{}]struct{})
+
+ // Ensure interface compliance
+ var _ Interface = s
+
+ s.Add(items...)
+ return s
+}
+
+// New creates and initalizes a new Set interface. It accepts a variable
+// number of arguments to populate the initial set. If nothing is passed a
+// zero size Set based on the struct is created.
+func (s *Set) New(items ...interface{}) Interface {
+ return New(items...)
+}
+
+// Add includes the specified items (one or more) to the set. The underlying
+// Set s is modified. If passed nothing it silently returns.
+func (s *Set) Add(items ...interface{}) {
+ if len(items) == 0 {
+ return
+ }
+
+ s.l.Lock()
+ defer s.l.Unlock()
+
+ for _, item := range items {
+ s.m[item] = keyExists
+ }
+}
+
+// Remove deletes the specified items from the set. The underlying Set s is
+// modified. If passed nothing it silently returns.
+func (s *Set) Remove(items ...interface{}) {
+ if len(items) == 0 {
+ return
+ }
+
+ s.l.Lock()
+ defer s.l.Unlock()
+
+ for _, item := range items {
+ delete(s.m, item)
+ }
+}
+
+// Pop deletes and return an item from the set. The underlying Set s is
+// modified. If set is empty, nil is returned.
+func (s *Set) Pop() interface{} {
+ s.l.RLock()
+ for item := range s.m {
+ s.l.RUnlock()
+ s.l.Lock()
+ delete(s.m, item)
+ s.l.Unlock()
+ return item
+ }
+ s.l.RUnlock()
+ return nil
+}
+
+// Has looks for the existence of items passed. It returns false if nothing is
+// passed. For multiple items it returns true only if all of the items exist.
+func (s *Set) Has(items ...interface{}) bool {
+ // assume checked for empty item, which not exist
+ if len(items) == 0 {
+ return false
+ }
+
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ has := true
+ for _, item := range items {
+ if _, has = s.m[item]; !has {
+ break
+ }
+ }
+ return has
+}
+
+// Size returns the number of items in a set.
+func (s *Set) Size() int {
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ l := len(s.m)
+ return l
+}
+
+// Clear removes all items from the set.
+func (s *Set) Clear() {
+ s.l.Lock()
+ defer s.l.Unlock()
+
+ s.m = make(map[interface{}]struct{})
+}
+
+// IsEqual test whether s and t are the same in size and have the same items.
+func (s *Set) IsEqual(t Interface) bool {
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ // Force locking only if given set is threadsafe.
+ if conv, ok := t.(*Set); ok {
+ conv.l.RLock()
+ defer conv.l.RUnlock()
+ }
+
+ // return false if they are no the same size
+ if sameSize := len(s.m) == t.Size(); !sameSize {
+ return false
+ }
+
+ equal := true
+ t.Each(func(item interface{}) bool {
+ _, equal = s.m[item]
+ return equal // if false, Each() will end
+ })
+
+ return equal
+}
+
+// IsSubset tests whether t is a subset of s.
+func (s *Set) IsSubset(t Interface) (subset bool) {
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ subset = true
+
+ t.Each(func(item interface{}) bool {
+ _, subset = s.m[item]
+ return subset
+ })
+
+ return
+}
+
+// Each traverses the items in the Set, calling the provided function for each
+// set member. Traversal will continue until all items in the Set have been
+// visited, or if the closure returns false.
+func (s *Set) Each(f func(item interface{}) bool) {
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ for item := range s.m {
+ if !f(item) {
+ break
+ }
+ }
+}
+
+// List returns a slice of all items. There is also StringSlice() and
+// IntSlice() methods for returning slices of type string or int.
+func (s *Set) List() []interface{} {
+ s.l.RLock()
+ defer s.l.RUnlock()
+
+ list := make([]interface{}, 0, len(s.m))
+
+ for item := range s.m {
+ list = append(list, item)
+ }
+
+ return list
+}
+
+// Copy returns a new Set with a copy of s.
+func (s *Set) Copy() Interface {
+ return New(s.List()...)
+}
+
+// Merge is like Union, however it modifies the current set it's applied on
+// with the given t set.
+func (s *Set) Merge(t Interface) {
+ s.l.Lock()
+ defer s.l.Unlock()
+
+ t.Each(func(item interface{}) bool {
+ s.m[item] = keyExists
+ return true
+ })
+}
diff --git a/vendor/gopkg.in/karalabe/cookiejar.v2/LICENSE b/vendor/gopkg.in/karalabe/cookiejar.v2/LICENSE
new file mode 100755
index 000000000..467d60878
--- /dev/null
+++ b/vendor/gopkg.in/karalabe/cookiejar.v2/LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2014 Péter Szilágyi. 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.
+
+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 HOLDER 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.
+
+Alternatively, the CookieJar toolbox may be used in accordance with the terms
+and conditions contained in a signed written agreement between you and the
+author(s).
diff --git a/vendor/gopkg.in/karalabe/cookiejar.v2/README.md b/vendor/gopkg.in/karalabe/cookiejar.v2/README.md
new file mode 100755
index 000000000..44c420b60
--- /dev/null
+++ b/vendor/gopkg.in/karalabe/cookiejar.v2/README.md
@@ -0,0 +1,109 @@
+ CookieJar - A contestant's toolbox
+======================================
+
+CookieJar is a small collection of common algorithms, data structures and library extensions that were deemed handy for computing competitions at one point or another.
+
+This toolbox is a work in progress for the time being. It may be lacking, and it may change drastically between commits (although every effort is made not to). You're welcome to use it, but it's your head on the line :)
+
+ Installation
+----------------
+
+To get the package, execute:
+
+ go get gopkg.in/karalabe/cookiejar.v2
+
+To import this package, add the following line to your code:
+
+ import "gopkg.in/karalabe/cookiejar.v2"
+
+For more details, see the [package documentation](http://godoc.org/gopkg.in/karalabe/cookiejar.v2).
+
+ Contents
+------------
+
+Algorithms:
+ - Graph
+ - [Breadth First Search](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/graph/bfs)
+ - [Depth First Search](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/graph/dfs)
+
+Data structures:
+ - [Bag](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/bag)
+ - [Deque](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/deque)
+ - [Graph](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/graph)
+ - [Priority Queue](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/prque)
+ - [Queue](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/queue)
+ - [Set](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/set)
+ - [Stack](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/collections/stack)
+
+Extensions:
+ - [fmt](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/exts/fmtext)
+ - `Scan` and `Fscan` for `int`, `float64`, `string` and lines
+ - [math](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/exts/mathext)
+ - `Abs` for `int`
+ - `Min` and `Max` for `int`, `big.Int` and `big.Rat`
+ - `Sign` for `int` and `float64`
+ - [os](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/exts/osext)
+ - `Open` and `Create` without error codes
+ - [sort](http://godoc.org/gopkg.in/karalabe/cookiejar.v2/exts/sortext)
+ - `Sort` and `Search` for `big.Int` and `big.Rat`
+ - `Unique` for any `sort.Interface`
+
+Below are the performance results for the data structures and the complexity analysis for the algorithms.
+
+ Performance
+---------------
+
+Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz:
+```
+- bag
+ - BenchmarkInsert 309 ns/op
+ - BenchmarkRemove 197 ns/op
+ - BenchmarkDo 28.1 ns/op
+- deque
+ - BenchmarkPush 25.4 ns/op
+ - BenchmarkPop 6.72 ns/op
+- prque
+ - BenchmarkPush 171 ns/op
+ - BenchmarkPop 947 ns/op
+- queue
+ - BenchmarkPush 23.0 ns/op
+ - BenchmarkPop 5.92 ns/op
+- set
+ - BenchmarkInsert 259 ns/op
+ - BenchmarkRemove 115 ns/op
+ - BenchmarkDo 20.9 ns/op
+- stack
+ - BenchmarkPush 16.4 ns/op
+ - BenchmarkPop 6.45 ns/op
+```
+
+ Complexity
+--------------
+
+| Algorithm | Time complexity | Space complexity |
+|:---------:|:---------------:|:----------------:|
+| graph/bfs | O(E) | O(V) |
+| graph/dfs | O(E) | O(E) |
+
+ Here be dragons :)
+----------------------
+
+```
+ . _///_,
+ . / ` ' '>
+ ) o' __/_'>
+ ( / _/ )_\'>
+ ' "__/ /_/\_>
+ ____/_/_/_/
+ /,---, _/ /
+ "" /_/_/_/
+ /_(_(_(_ \
+ ( \_\_\\_ )\
+ \'__\_\_\_\__ ).\
+ //____|___\__) )_/
+ | _ \'___'_( /'
+ \_ (-'\'___'_\ __,'_'
+ __) \ \\___(_ __/.__,'
+ ,((,-,__\ '", __\_/. __,'
+ '"./_._._-'
+```
diff --git a/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque.go b/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque.go
new file mode 100755
index 000000000..5c1967c65
--- /dev/null
+++ b/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/prque.go
@@ -0,0 +1,66 @@
+// CookieJar - A contestant's algorithm toolbox
+// Copyright (c) 2013 Peter Szilagyi. All rights reserved.
+//
+// CookieJar is dual licensed: use of this source code is governed by a BSD
+// license that can be found in the LICENSE file. Alternatively, the CookieJar
+// toolbox may be used in accordance with the terms and conditions contained
+// in a signed written agreement between you and the author(s).
+
+// Package prque implements a priority queue data structure supporting arbitrary
+// value types and float priorities.
+//
+// The reasoning behind using floats for the priorities vs. ints or interfaces
+// was larger flexibility without sacrificing too much performance or code
+// complexity.
+//
+// If you would like to use a min-priority queue, simply negate the priorities.
+//
+// Internally the queue is based on the standard heap package working on a
+// sortable version of the block based stack.
+package prque
+
+import (
+ "container/heap"
+)
+
+// Priority queue data structure.
+type Prque struct {
+ cont *sstack
+}
+
+// Creates a new priority queue.
+func New() *Prque {
+ return &Prque{newSstack()}
+}
+
+// Pushes a value with a given priority into the queue, expanding if necessary.
+func (p *Prque) Push(data interface{}, priority float32) {
+ heap.Push(p.cont, &item{data, priority})
+}
+
+// Pops the value with the greates priority off the stack and returns it.
+// Currently no shrinking is done.
+func (p *Prque) Pop() (interface{}, float32) {
+ item := heap.Pop(p.cont).(*item)
+ return item.value, item.priority
+}
+
+// Pops only the item from the queue, dropping the associated priority value.
+func (p *Prque) PopItem() interface{} {
+ return heap.Pop(p.cont).(*item).value
+}
+
+// Checks whether the priority queue is empty.
+func (p *Prque) Empty() bool {
+ return p.cont.Len() == 0
+}
+
+// Returns the number of element in the priority queue.
+func (p *Prque) Size() int {
+ return p.cont.Len()
+}
+
+// Clears the contents of the priority queue.
+func (p *Prque) Reset() {
+ *p = *New()
+}
diff --git a/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack.go b/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack.go
new file mode 100755
index 000000000..9f393196e
--- /dev/null
+++ b/vendor/gopkg.in/karalabe/cookiejar.v2/collections/prque/sstack.go
@@ -0,0 +1,91 @@
+// CookieJar - A contestant's algorithm toolbox
+// Copyright (c) 2013 Peter Szilagyi. All rights reserved.
+//
+// CookieJar is dual licensed: use of this source code is governed by a BSD
+// license that can be found in the LICENSE file. Alternatively, the CookieJar
+// toolbox may be used in accordance with the terms and conditions contained
+// in a signed written agreement between you and the author(s).
+
+package prque
+
+// The size of a block of data
+const blockSize = 4096
+
+// A prioritized item in the sorted stack.
+type item struct {
+ value interface{}
+ priority float32
+}
+
+// Internal sortable stack data structure. Implements the Push and Pop ops for
+// the stack (heap) functionality and the Len, Less and Swap methods for the
+// sortability requirements of the heaps.
+type sstack struct {
+ size int
+ capacity int
+ offset int
+
+ blocks [][]*item
+ active []*item
+}
+
+// Creates a new, empty stack.
+func newSstack() *sstack {
+ result := new(sstack)
+ result.active = make([]*item, blockSize)
+ result.blocks = [][]*item{result.active}
+ result.capacity = blockSize
+ return result
+}
+
+// Pushes a value onto the stack, expanding it if necessary. Required by
+// heap.Interface.
+func (s *sstack) Push(data interface{}) {
+ if s.size == s.capacity {
+ s.active = make([]*item, blockSize)
+ s.blocks = append(s.blocks, s.active)
+ s.capacity += blockSize
+ s.offset = 0
+ } else if s.offset == blockSize {
+ s.active = s.blocks[s.size/blockSize]
+ s.offset = 0
+ }
+ s.active[s.offset] = data.(*item)
+ s.offset++
+ s.size++
+}
+
+// Pops a value off the stack and returns it. Currently no shrinking is done.
+// Required by heap.Interface.
+func (s *sstack) Pop() (res interface{}) {
+ s.size--
+ s.offset--
+ if s.offset < 0 {
+ s.offset = blockSize - 1
+ s.active = s.blocks[s.size/blockSize]
+ }
+ res, s.active[s.offset] = s.active[s.offset], nil
+ return
+}
+
+// Returns the length of the stack. Required by sort.Interface.
+func (s *sstack) Len() int {
+ return s.size
+}
+
+// Compares the priority of two elements of the stack (higher is first).
+// Required by sort.Interface.
+func (s *sstack) Less(i, j int) bool {
+ return s.blocks[i/blockSize][i%blockSize].priority > s.blocks[j/blockSize][j%blockSize].priority
+}
+
+// Swaps two elements in the stack. Required by sort.Interface.
+func (s *sstack) Swap(i, j int) {
+ ib, io, jb, jo := i/blockSize, i%blockSize, j/blockSize, j%blockSize
+ s.blocks[ib][io], s.blocks[jb][jo] = s.blocks[jb][jo], s.blocks[ib][io]
+}
+
+// Resets the stack, effectively clearing its contents.
+func (s *sstack) Reset() {
+ *s = *newSstack()
+}
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/.gitignore b/vendor/gopkg.in/natefinch/npipe.v2/.gitignore
new file mode 100644
index 000000000..00268614f
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/.gitignore
@@ -0,0 +1,22 @@
+# Compiled Object files, Static and Dynamic libs (Shared Objects)
+*.o
+*.a
+*.so
+
+# Folders
+_obj
+_test
+
+# Architecture specific extensions/prefixes
+*.[568vq]
+[568vq].out
+
+*.cgo1.go
+*.cgo2.c
+_cgo_defun.c
+_cgo_gotypes.go
+_cgo_export.*
+
+_testmain.go
+
+*.exe
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/LICENSE.txt b/vendor/gopkg.in/natefinch/npipe.v2/LICENSE.txt
new file mode 100644
index 000000000..a4a11046c
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/LICENSE.txt
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright (c) 2013 npipe authors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/README.md b/vendor/gopkg.in/natefinch/npipe.v2/README.md
new file mode 100644
index 000000000..420a4d16c
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/README.md
@@ -0,0 +1,308 @@
+npipe [![Build status](https://ci.appveyor.com/api/projects/status/00vuepirsot29qwi)](https://ci.appveyor.com/project/natefinch/npipe) [![GoDoc](https://godoc.org/gopkg.in/natefinch/npipe.v2?status.svg)](https://godoc.org/gopkg.in/natefinch/npipe.v2)
+=====
+Package npipe provides a pure Go wrapper around Windows named pipes.
+
+Windows named pipe documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365780
+
+Note that the code lives at https://github.com/natefinch/npipe (v2 branch)
+but should be imported as gopkg.in/natefinch/npipe.v2 (the package name is
+still npipe).
+
+npipe provides an interface based on stdlib's net package, with Dial, Listen,
+and Accept functions, as well as associated implementations of net.Conn and
+net.Listener. It supports rpc over the connection.
+
+### Notes
+* Deadlines for reading/writing to the connection are only functional in Windows Vista/Server 2008 and above, due to limitations with the Windows API.
+
+* The pipes support byte mode only (no support for message mode)
+
+### Examples
+The Dial function connects a client to a named pipe:
+
+
+ conn, err := npipe.Dial(`\\.\pipe\mypipename`)
+ if err != nil {
+ <handle error>
+ }
+ fmt.Fprintf(conn, "Hi server!\n")
+ msg, err := bufio.NewReader(conn).ReadString('\n')
+ ...
+
+The Listen function creates servers:
+
+
+ ln, err := npipe.Listen(`\\.\pipe\mypipename`)
+ if err != nil {
+ // handle error
+ }
+ for {
+ conn, err := ln.Accept()
+ if err != nil {
+ // handle error
+ continue
+ }
+ go handleConnection(conn)
+ }
+
+
+
+
+
+## Variables
+``` go
+var ErrClosed = PipeError{"Pipe has been closed.", false}
+```
+ErrClosed is the error returned by PipeListener.Accept when Close is called
+on the PipeListener.
+
+
+
+## type PipeAddr
+``` go
+type PipeAddr string
+```
+PipeAddr represents the address of a named pipe.
+
+
+
+
+
+
+
+
+
+
+
+### func (PipeAddr) Network
+``` go
+func (a PipeAddr) Network() string
+```
+Network returns the address's network name, "pipe".
+
+
+
+### func (PipeAddr) String
+``` go
+func (a PipeAddr) String() string
+```
+String returns the address of the pipe
+
+
+
+## type PipeConn
+``` go
+type PipeConn struct {
+ // contains filtered or unexported fields
+}
+```
+PipeConn is the implementation of the net.Conn interface for named pipe connections.
+
+
+
+
+
+
+
+
+
+### func Dial
+``` go
+func Dial(address string) (*PipeConn, error)
+```
+Dial connects to a named pipe with the given address. If the specified pipe is not available,
+it will wait indefinitely for the pipe to become available.
+
+The address must be of the form \\.\\pipe\<name> for local pipes and \\<computer>\pipe\<name>
+for remote pipes.
+
+Dial will return a PipeError if you pass in a badly formatted pipe name.
+
+Examples:
+
+
+ // local pipe
+ conn, err := Dial(`\\.\pipe\mypipename`)
+
+ // remote pipe
+ conn, err := Dial(`\\othercomp\pipe\mypipename`)
+
+
+### func DialTimeout
+``` go
+func DialTimeout(address string, timeout time.Duration) (*PipeConn, error)
+```
+DialTimeout acts like Dial, but will time out after the duration of timeout
+
+
+
+
+### func (\*PipeConn) Close
+``` go
+func (c *PipeConn) Close() error
+```
+Close closes the connection.
+
+
+
+### func (\*PipeConn) LocalAddr
+``` go
+func (c *PipeConn) LocalAddr() net.Addr
+```
+LocalAddr returns the local network address.
+
+
+
+### func (\*PipeConn) Read
+``` go
+func (c *PipeConn) Read(b []byte) (int, error)
+```
+Read implements the net.Conn Read method.
+
+
+
+### func (\*PipeConn) RemoteAddr
+``` go
+func (c *PipeConn) RemoteAddr() net.Addr
+```
+RemoteAddr returns the remote network address.
+
+
+
+### func (\*PipeConn) SetDeadline
+``` go
+func (c *PipeConn) SetDeadline(t time.Time) error
+```
+SetDeadline implements the net.Conn SetDeadline method.
+Note that timeouts are only supported on Windows Vista/Server 2008 and above
+
+
+
+### func (\*PipeConn) SetReadDeadline
+``` go
+func (c *PipeConn) SetReadDeadline(t time.Time) error
+```
+SetReadDeadline implements the net.Conn SetReadDeadline method.
+Note that timeouts are only supported on Windows Vista/Server 2008 and above
+
+
+
+### func (\*PipeConn) SetWriteDeadline
+``` go
+func (c *PipeConn) SetWriteDeadline(t time.Time) error
+```
+SetWriteDeadline implements the net.Conn SetWriteDeadline method.
+Note that timeouts are only supported on Windows Vista/Server 2008 and above
+
+
+
+### func (\*PipeConn) Write
+``` go
+func (c *PipeConn) Write(b []byte) (int, error)
+```
+Write implements the net.Conn Write method.
+
+
+
+## type PipeError
+``` go
+type PipeError struct {
+ // contains filtered or unexported fields
+}
+```
+PipeError is an error related to a call to a pipe
+
+
+
+
+
+
+
+
+
+
+
+### func (PipeError) Error
+``` go
+func (e PipeError) Error() string
+```
+Error implements the error interface
+
+
+
+### func (PipeError) Temporary
+``` go
+func (e PipeError) Temporary() bool
+```
+Temporary implements net.AddrError.Temporary()
+
+
+
+### func (PipeError) Timeout
+``` go
+func (e PipeError) Timeout() bool
+```
+Timeout implements net.AddrError.Timeout()
+
+
+
+## type PipeListener
+``` go
+type PipeListener struct {
+ // contains filtered or unexported fields
+}
+```
+PipeListener is a named pipe listener. Clients should typically
+use variables of type net.Listener instead of assuming named pipe.
+
+
+
+
+
+
+
+
+
+### func Listen
+``` go
+func Listen(address string) (*PipeListener, error)
+```
+Listen returns a new PipeListener that will listen on a pipe with the given
+address. The address must be of the form \\.\pipe\<name>
+
+Listen will return a PipeError for an incorrectly formatted pipe name.
+
+
+
+
+### func (\*PipeListener) Accept
+``` go
+func (l *PipeListener) Accept() (net.Conn, error)
+```
+Accept implements the Accept method in the net.Listener interface; it
+waits for the next call and returns a generic net.Conn.
+
+
+
+### func (\*PipeListener) AcceptPipe
+``` go
+func (l *PipeListener) AcceptPipe() (*PipeConn, error)
+```
+AcceptPipe accepts the next incoming call and returns the new connection.
+
+
+
+### func (\*PipeListener) Addr
+``` go
+func (l *PipeListener) Addr() net.Addr
+```
+Addr returns the listener's network address, a PipeAddr.
+
+
+
+### func (\*PipeListener) Close
+``` go
+func (l *PipeListener) Close() error
+```
+Close stops listening on the address.
+Already Accepted connections are not closed.
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/doc.go b/vendor/gopkg.in/natefinch/npipe.v2/doc.go
new file mode 100644
index 000000000..3445773b4
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/doc.go
@@ -0,0 +1,50 @@
+// Copyright 2013 Nate Finch. All rights reserved.
+// Use of this source code is governed by an MIT-style
+// license that can be found in the LICENSE file.
+
+// Package npipe provides a pure Go wrapper around Windows named pipes.
+//
+// !! Note, this package is Windows-only. There is no code to compile on linux.
+//
+// Windows named pipe documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365780
+//
+// Note that the code lives at https://github.com/natefinch/npipe (v2 branch)
+// but should be imported as gopkg.in/natefinch/npipe.v2 (the package name is
+// still npipe).
+//
+// npipe provides an interface based on stdlib's net package, with Dial, Listen,
+// and Accept functions, as well as associated implementations of net.Conn and
+// net.Listener. It supports rpc over the connection.
+//
+// Notes
+//
+// * Deadlines for reading/writing to the connection are only functional in Windows Vista/Server 2008 and above, due to limitations with the Windows API.
+//
+// * The pipes support byte mode only (no support for message mode)
+//
+// Examples
+//
+// The Dial function connects a client to a named pipe:
+// conn, err := npipe.Dial(`\\.\pipe\mypipename`)
+// if err != nil {
+// <handle error>
+// }
+// fmt.Fprintf(conn, "Hi server!\n")
+// msg, err := bufio.NewReader(conn).ReadString('\n')
+// ...
+//
+// The Listen function creates servers:
+//
+// ln, err := npipe.Listen(`\\.\pipe\mypipename`)
+// if err != nil {
+// // handle error
+// }
+// for {
+// conn, err := ln.Accept()
+// if err != nil {
+// // handle error
+// continue
+// }
+// go handleConnection(conn)
+// }
+package npipe
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/npipe_windows.go b/vendor/gopkg.in/natefinch/npipe.v2/npipe_windows.go
new file mode 100755
index 000000000..5e7cf13ee
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/npipe_windows.go
@@ -0,0 +1,531 @@
+package npipe
+
+//sys createNamedPipe(name *uint16, openMode uint32, pipeMode uint32, maxInstances uint32, outBufSize uint32, inBufSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW
+//sys connectNamedPipe(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) = ConnectNamedPipe
+//sys disconnectNamedPipe(handle syscall.Handle) (err error) = DisconnectNamedPipe
+//sys waitNamedPipe(name *uint16, timeout uint32) (err error) = WaitNamedPipeW
+//sys createEvent(sa *syscall.SecurityAttributes, manualReset bool, initialState bool, name *uint16) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateEventW
+//sys getOverlappedResult(handle syscall.Handle, overlapped *syscall.Overlapped, transferred *uint32, wait bool) (err error) = GetOverlappedResult
+//sys cancelIoEx(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) = CancelIoEx
+
+import (
+ "fmt"
+ "io"
+ "net"
+ "sync"
+ "syscall"
+ "time"
+)
+
+const (
+ // openMode
+ pipe_access_duplex = 0x3
+ pipe_access_inbound = 0x1
+ pipe_access_outbound = 0x2
+
+ // openMode write flags
+ file_flag_first_pipe_instance = 0x00080000
+ file_flag_write_through = 0x80000000
+ file_flag_overlapped = 0x40000000
+
+ // openMode ACL flags
+ write_dac = 0x00040000
+ write_owner = 0x00080000
+ access_system_security = 0x01000000
+
+ // pipeMode
+ pipe_type_byte = 0x0
+ pipe_type_message = 0x4
+
+ // pipeMode read mode flags
+ pipe_readmode_byte = 0x0
+ pipe_readmode_message = 0x2
+
+ // pipeMode wait mode flags
+ pipe_wait = 0x0
+ pipe_nowait = 0x1
+
+ // pipeMode remote-client mode flags
+ pipe_accept_remote_clients = 0x0
+ pipe_reject_remote_clients = 0x8
+
+ pipe_unlimited_instances = 255
+
+ nmpwait_wait_forever = 0xFFFFFFFF
+
+ // the two not-an-errors below occur if a client connects to the pipe between
+ // the server's CreateNamedPipe and ConnectNamedPipe calls.
+ error_no_data syscall.Errno = 0xE8
+ error_pipe_connected syscall.Errno = 0x217
+ error_pipe_busy syscall.Errno = 0xE7
+ error_sem_timeout syscall.Errno = 0x79
+
+ error_bad_pathname syscall.Errno = 0xA1
+ error_invalid_name syscall.Errno = 0x7B
+
+ error_io_incomplete syscall.Errno = 0x3e4
+)
+
+var _ net.Conn = (*PipeConn)(nil)
+var _ net.Listener = (*PipeListener)(nil)
+
+// ErrClosed is the error returned by PipeListener.Accept when Close is called
+// on the PipeListener.
+var ErrClosed = PipeError{"Pipe has been closed.", false}
+
+// PipeError is an error related to a call to a pipe
+type PipeError struct {
+ msg string
+ timeout bool
+}
+
+// Error implements the error interface
+func (e PipeError) Error() string {
+ return e.msg
+}
+
+// Timeout implements net.AddrError.Timeout()
+func (e PipeError) Timeout() bool {
+ return e.timeout
+}
+
+// Temporary implements net.AddrError.Temporary()
+func (e PipeError) Temporary() bool {
+ return false
+}
+
+// Dial connects to a named pipe with the given address. If the specified pipe is not available,
+// it will wait indefinitely for the pipe to become available.
+//
+// The address must be of the form \\.\\pipe\<name> for local pipes and \\<computer>\pipe\<name>
+// for remote pipes.
+//
+// Dial will return a PipeError if you pass in a badly formatted pipe name.
+//
+// Examples:
+// // local pipe
+// conn, err := Dial(`\\.\pipe\mypipename`)
+//
+// // remote pipe
+// conn, err := Dial(`\\othercomp\pipe\mypipename`)
+func Dial(address string) (*PipeConn, error) {
+ for {
+ conn, err := dial(address, nmpwait_wait_forever)
+ if err == nil {
+ return conn, nil
+ }
+ if isPipeNotReady(err) {
+ <-time.After(100 * time.Millisecond)
+ continue
+ }
+ return nil, err
+ }
+}
+
+// DialTimeout acts like Dial, but will time out after the duration of timeout
+func DialTimeout(address string, timeout time.Duration) (*PipeConn, error) {
+ deadline := time.Now().Add(timeout)
+
+ now := time.Now()
+ for now.Before(deadline) {
+ millis := uint32(deadline.Sub(now) / time.Millisecond)
+ conn, err := dial(address, millis)
+ if err == nil {
+ return conn, nil
+ }
+ if err == error_sem_timeout {
+ // This is WaitNamedPipe's timeout error, so we know we're done
+ return nil, PipeError{fmt.Sprintf(
+ "Timed out waiting for pipe '%s' to come available", address), true}
+ }
+ if isPipeNotReady(err) {
+ left := deadline.Sub(time.Now())
+ retry := 100 * time.Millisecond
+ if left > retry {
+ <-time.After(retry)
+ } else {
+ <-time.After(left - time.Millisecond)
+ }
+ now = time.Now()
+ continue
+ }
+ return nil, err
+ }
+ return nil, PipeError{fmt.Sprintf(
+ "Timed out waiting for pipe '%s' to come available", address), true}
+}
+
+// isPipeNotReady checks the error to see if it indicates the pipe is not ready
+func isPipeNotReady(err error) bool {
+ // Pipe Busy means another client just grabbed the open pipe end,
+ // and the server hasn't made a new one yet.
+ // File Not Found means the server hasn't created the pipe yet.
+ // Neither is a fatal error.
+
+ return err == syscall.ERROR_FILE_NOT_FOUND || err == error_pipe_busy
+}
+
+// newOverlapped creates a structure used to track asynchronous
+// I/O requests that have been issued.
+func newOverlapped() (*syscall.Overlapped, error) {
+ event, err := createEvent(nil, true, true, nil)
+ if err != nil {
+ return nil, err
+ }
+ return &syscall.Overlapped{HEvent: event}, nil
+}
+
+// waitForCompletion waits for an asynchronous I/O request referred to by overlapped to complete.
+// This function returns the number of bytes transferred by the operation and an error code if
+// applicable (nil otherwise).
+func waitForCompletion(handle syscall.Handle, overlapped *syscall.Overlapped) (uint32, error) {
+ _, err := syscall.WaitForSingleObject(overlapped.HEvent, syscall.INFINITE)
+ if err != nil {
+ return 0, err
+ }
+ var transferred uint32
+ err = getOverlappedResult(handle, overlapped, &transferred, true)
+ return transferred, err
+}
+
+// dial is a helper to initiate a connection to a named pipe that has been started by a server.
+// The timeout is only enforced if the pipe server has already created the pipe, otherwise
+// this function will return immediately.
+func dial(address string, timeout uint32) (*PipeConn, error) {
+ name, err := syscall.UTF16PtrFromString(string(address))
+ if err != nil {
+ return nil, err
+ }
+ // If at least one instance of the pipe has been created, this function
+ // will wait timeout milliseconds for it to become available.
+ // It will return immediately regardless of timeout, if no instances
+ // of the named pipe have been created yet.
+ // If this returns with no error, there is a pipe available.
+ if err := waitNamedPipe(name, timeout); err != nil {
+ if err == error_bad_pathname {
+ // badly formatted pipe name
+ return nil, badAddr(address)
+ }
+ return nil, err
+ }
+ pathp, err := syscall.UTF16PtrFromString(address)
+ if err != nil {
+ return nil, err
+ }
+ handle, err := syscall.CreateFile(pathp, syscall.GENERIC_READ|syscall.GENERIC_WRITE,
+ uint32(syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE), nil, syscall.OPEN_EXISTING,
+ syscall.FILE_FLAG_OVERLAPPED, 0)
+ if err != nil {
+ return nil, err
+ }
+ return &PipeConn{handle: handle, addr: PipeAddr(address)}, nil
+}
+
+// Listen returns a new PipeListener that will listen on a pipe with the given
+// address. The address must be of the form \\.\pipe\<name>
+//
+// Listen will return a PipeError for an incorrectly formatted pipe name.
+func Listen(address string) (*PipeListener, error) {
+ handle, err := createPipe(address, true)
+ if err == error_invalid_name {
+ return nil, badAddr(address)
+ }
+ if err != nil {
+ return nil, err
+ }
+
+ return &PipeListener{
+ addr: PipeAddr(address),
+ handle: handle,
+ }, nil
+}
+
+// PipeListener is a named pipe listener. Clients should typically
+// use variables of type net.Listener instead of assuming named pipe.
+type PipeListener struct {
+ mu sync.Mutex
+
+ addr PipeAddr
+ handle syscall.Handle
+ closed bool
+
+ // acceptHandle contains the current handle waiting for
+ // an incoming connection or nil.
+ acceptHandle syscall.Handle
+ // acceptOverlapped is set before waiting on a connection.
+ // If not waiting, it is nil.
+ acceptOverlapped *syscall.Overlapped
+}
+
+// Accept implements the Accept method in the net.Listener interface; it
+// waits for the next call and returns a generic net.Conn.
+func (l *PipeListener) Accept() (net.Conn, error) {
+ c, err := l.AcceptPipe()
+ for err == error_no_data {
+ // Ignore clients that connect and immediately disconnect.
+ c, err = l.AcceptPipe()
+ }
+ if err != nil {
+ return nil, err
+ }
+ return c, nil
+}
+
+// AcceptPipe accepts the next incoming call and returns the new connection.
+// It might return an error if a client connected and immediately cancelled
+// the connection.
+func (l *PipeListener) AcceptPipe() (*PipeConn, error) {
+ if l == nil {
+ return nil, syscall.EINVAL
+ }
+
+ l.mu.Lock()
+ defer l.mu.Unlock()
+
+ if l.addr == "" || l.closed {
+ return nil, syscall.EINVAL
+ }
+
+ // the first time we call accept, the handle will have been created by the Listen
+ // call. This is to prevent race conditions where the client thinks the server
+ // isn't listening because it hasn't actually called create yet. After the first time, we'll
+ // have to create a new handle each time
+ handle := l.handle
+ if handle == 0 {
+ var err error
+ handle, err = createPipe(string(l.addr), false)
+ if err != nil {
+ return nil, err
+ }
+ } else {
+ l.handle = 0
+ }
+
+ overlapped, err := newOverlapped()
+ if err != nil {
+ return nil, err
+ }
+ defer syscall.CloseHandle(overlapped.HEvent)
+ err = connectNamedPipe(handle, overlapped)
+ if err == nil || err == error_pipe_connected {
+ return &PipeConn{handle: handle, addr: l.addr}, nil
+ }
+
+ if err == error_io_incomplete || err == syscall.ERROR_IO_PENDING {
+ l.acceptOverlapped = overlapped
+ l.acceptHandle = handle
+ // unlock here so close can function correctly while we wait (we'll
+ // get relocked via the defer below, before the original defer
+ // unlock happens.)
+ l.mu.Unlock()
+ defer func() {
+ l.mu.Lock()
+ l.acceptOverlapped = nil
+ l.acceptHandle = 0
+ // unlock is via defer above.
+ }()
+ _, err = waitForCompletion(handle, overlapped)
+ }
+ if err == syscall.ERROR_OPERATION_ABORTED {
+ // Return error compatible to net.Listener.Accept() in case the
+ // listener was closed.
+ return nil, ErrClosed
+ }
+ if err != nil {
+ return nil, err
+ }
+ return &PipeConn{handle: handle, addr: l.addr}, nil
+}
+
+// Close stops listening on the address.
+// Already Accepted connections are not closed.
+func (l *PipeListener) Close() error {
+ l.mu.Lock()
+ defer l.mu.Unlock()
+
+ if l.closed {
+ return nil
+ }
+ l.closed = true
+ if l.handle != 0 {
+ err := disconnectNamedPipe(l.handle)
+ if err != nil {
+ return err
+ }
+ err = syscall.CloseHandle(l.handle)
+ if err != nil {
+ return err
+ }
+ l.handle = 0
+ }
+ if l.acceptOverlapped != nil && l.acceptHandle != 0 {
+ // Cancel the pending IO. This call does not block, so it is safe
+ // to hold onto the mutex above.
+ if err := cancelIoEx(l.acceptHandle, l.acceptOverlapped); err != nil {
+ return err
+ }
+ err := syscall.CloseHandle(l.acceptOverlapped.HEvent)
+ if err != nil {
+ return err
+ }
+ l.acceptOverlapped.HEvent = 0
+ err = syscall.CloseHandle(l.acceptHandle)
+ if err != nil {
+ return err
+ }
+ l.acceptHandle = 0
+ }
+ return nil
+}
+
+// Addr returns the listener's network address, a PipeAddr.
+func (l *PipeListener) Addr() net.Addr { return l.addr }
+
+// PipeConn is the implementation of the net.Conn interface for named pipe connections.
+type PipeConn struct {
+ handle syscall.Handle
+ addr PipeAddr
+
+ // these aren't actually used yet
+ readDeadline *time.Time
+ writeDeadline *time.Time
+}
+
+type iodata struct {
+ n uint32
+ err error
+}
+
+// completeRequest looks at iodata to see if a request is pending. If so, it waits for it to either complete or to
+// abort due to hitting the specified deadline. Deadline may be set to nil to wait forever. If no request is pending,
+// the content of iodata is returned.
+func (c *PipeConn) completeRequest(data iodata, deadline *time.Time, overlapped *syscall.Overlapped) (int, error) {
+ if data.err == error_io_incomplete || data.err == syscall.ERROR_IO_PENDING {
+ var timer <-chan time.Time
+ if deadline != nil {
+ if timeDiff := deadline.Sub(time.Now()); timeDiff > 0 {
+ timer = time.After(timeDiff)
+ }
+ }
+ done := make(chan iodata)
+ go func() {
+ n, err := waitForCompletion(c.handle, overlapped)
+ done <- iodata{n, err}
+ }()
+ select {
+ case data = <-done:
+ case <-timer:
+ syscall.CancelIoEx(c.handle, overlapped)
+ data = iodata{0, timeout(c.addr.String())}
+ }
+ }
+ // Windows will produce ERROR_BROKEN_PIPE upon closing
+ // a handle on the other end of a connection. Go RPC
+ // expects an io.EOF error in this case.
+ if data.err == syscall.ERROR_BROKEN_PIPE {
+ data.err = io.EOF
+ }
+ return int(data.n), data.err
+}
+
+// Read implements the net.Conn Read method.
+func (c *PipeConn) Read(b []byte) (int, error) {
+ // Use ReadFile() rather than Read() because the latter
+ // contains a workaround that eats ERROR_BROKEN_PIPE.
+ overlapped, err := newOverlapped()
+ if err != nil {
+ return 0, err
+ }
+ defer syscall.CloseHandle(overlapped.HEvent)
+ var n uint32
+ err = syscall.ReadFile(c.handle, b, &n, overlapped)
+ return c.completeRequest(iodata{n, err}, c.readDeadline, overlapped)
+}
+
+// Write implements the net.Conn Write method.
+func (c *PipeConn) Write(b []byte) (int, error) {
+ overlapped, err := newOverlapped()
+ if err != nil {
+ return 0, err
+ }
+ defer syscall.CloseHandle(overlapped.HEvent)
+ var n uint32
+ err = syscall.WriteFile(c.handle, b, &n, overlapped)
+ return c.completeRequest(iodata{n, err}, c.writeDeadline, overlapped)
+}
+
+// Close closes the connection.
+func (c *PipeConn) Close() error {
+ return syscall.CloseHandle(c.handle)
+}
+
+// LocalAddr returns the local network address.
+func (c *PipeConn) LocalAddr() net.Addr {
+ return c.addr
+}
+
+// RemoteAddr returns the remote network address.
+func (c *PipeConn) RemoteAddr() net.Addr {
+ // not sure what to do here, we don't have remote addr....
+ return c.addr
+}
+
+// SetDeadline implements the net.Conn SetDeadline method.
+// Note that timeouts are only supported on Windows Vista/Server 2008 and above
+func (c *PipeConn) SetDeadline(t time.Time) error {
+ c.SetReadDeadline(t)
+ c.SetWriteDeadline(t)
+ return nil
+}
+
+// SetReadDeadline implements the net.Conn SetReadDeadline method.
+// Note that timeouts are only supported on Windows Vista/Server 2008 and above
+func (c *PipeConn) SetReadDeadline(t time.Time) error {
+ c.readDeadline = &t
+ return nil
+}
+
+// SetWriteDeadline implements the net.Conn SetWriteDeadline method.
+// Note that timeouts are only supported on Windows Vista/Server 2008 and above
+func (c *PipeConn) SetWriteDeadline(t time.Time) error {
+ c.writeDeadline = &t
+ return nil
+}
+
+// PipeAddr represents the address of a named pipe.
+type PipeAddr string
+
+// Network returns the address's network name, "pipe".
+func (a PipeAddr) Network() string { return "pipe" }
+
+// String returns the address of the pipe
+func (a PipeAddr) String() string {
+ return string(a)
+}
+
+// createPipe is a helper function to make sure we always create pipes
+// with the same arguments, since subsequent calls to create pipe need
+// to use the same arguments as the first one. If first is set, fail
+// if the pipe already exists.
+func createPipe(address string, first bool) (syscall.Handle, error) {
+ n, err := syscall.UTF16PtrFromString(address)
+ if err != nil {
+ return 0, err
+ }
+ mode := uint32(pipe_access_duplex | syscall.FILE_FLAG_OVERLAPPED)
+ if first {
+ mode |= file_flag_first_pipe_instance
+ }
+ return createNamedPipe(n,
+ mode,
+ pipe_type_byte,
+ pipe_unlimited_instances,
+ 512, 512, 0, nil)
+}
+
+func badAddr(addr string) PipeError {
+ return PipeError{fmt.Sprintf("Invalid pipe address '%s'.", addr), false}
+}
+func timeout(addr string) PipeError {
+ return PipeError{fmt.Sprintf("Pipe IO timed out waiting for '%s'", addr), true}
+}
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_386.go b/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_386.go
new file mode 100644
index 000000000..c283e6cf9
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_386.go
@@ -0,0 +1,124 @@
+// +build windows
+// go build mksyscall_windows.go && ./mksyscall_windows npipe_windows.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+package npipe
+
+import "unsafe"
+import "syscall"
+
+var (
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+
+ procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW")
+ procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe")
+ procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe")
+ procWaitNamedPipeW = modkernel32.NewProc("WaitNamedPipeW")
+ procCreateEventW = modkernel32.NewProc("CreateEventW")
+ procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult")
+ procCancelIoEx = modkernel32.NewProc("CancelIoEx")
+)
+
+func createNamedPipe(name *uint16, openMode uint32, pipeMode uint32, maxInstances uint32, outBufSize uint32, inBufSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(openMode), uintptr(pipeMode), uintptr(maxInstances), uintptr(outBufSize), uintptr(inBufSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0)
+ handle = syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func cancelIoEx(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func connectNamedPipe(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func disconnectNamedPipe(handle syscall.Handle) (err error) {
+ r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(handle), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func waitNamedPipe(name *uint16, timeout uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procWaitNamedPipeW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(timeout), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func createEvent(sa *syscall.SecurityAttributes, manualReset bool, initialState bool, name *uint16) (handle syscall.Handle, err error) {
+ var _p0 uint32
+ if manualReset {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ var _p1 uint32
+ if initialState {
+ _p1 = 1
+ } else {
+ _p1 = 0
+ }
+ r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(sa)), uintptr(_p0), uintptr(_p1), uintptr(unsafe.Pointer(name)), 0, 0)
+ handle = syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func getOverlappedResult(handle syscall.Handle, overlapped *syscall.Overlapped, transferred *uint32, wait bool) (err error) {
+ var _p0 uint32
+ if wait {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transferred)), uintptr(_p0), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
diff --git a/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_amd64.go b/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_amd64.go
new file mode 100644
index 000000000..c283e6cf9
--- /dev/null
+++ b/vendor/gopkg.in/natefinch/npipe.v2/znpipe_windows_amd64.go
@@ -0,0 +1,124 @@
+// +build windows
+// go build mksyscall_windows.go && ./mksyscall_windows npipe_windows.go
+// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
+
+package npipe
+
+import "unsafe"
+import "syscall"
+
+var (
+ modkernel32 = syscall.NewLazyDLL("kernel32.dll")
+
+ procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW")
+ procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe")
+ procDisconnectNamedPipe = modkernel32.NewProc("DisconnectNamedPipe")
+ procWaitNamedPipeW = modkernel32.NewProc("WaitNamedPipeW")
+ procCreateEventW = modkernel32.NewProc("CreateEventW")
+ procGetOverlappedResult = modkernel32.NewProc("GetOverlappedResult")
+ procCancelIoEx = modkernel32.NewProc("CancelIoEx")
+)
+
+func createNamedPipe(name *uint16, openMode uint32, pipeMode uint32, maxInstances uint32, outBufSize uint32, inBufSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) {
+ r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(openMode), uintptr(pipeMode), uintptr(maxInstances), uintptr(outBufSize), uintptr(inBufSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0)
+ handle = syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func cancelIoEx(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func connectNamedPipe(handle syscall.Handle, overlapped *syscall.Overlapped) (err error) {
+ r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func disconnectNamedPipe(handle syscall.Handle) (err error) {
+ r1, _, e1 := syscall.Syscall(procDisconnectNamedPipe.Addr(), 1, uintptr(handle), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func waitNamedPipe(name *uint16, timeout uint32) (err error) {
+ r1, _, e1 := syscall.Syscall(procWaitNamedPipeW.Addr(), 2, uintptr(unsafe.Pointer(name)), uintptr(timeout), 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func createEvent(sa *syscall.SecurityAttributes, manualReset bool, initialState bool, name *uint16) (handle syscall.Handle, err error) {
+ var _p0 uint32
+ if manualReset {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ var _p1 uint32
+ if initialState {
+ _p1 = 1
+ } else {
+ _p1 = 0
+ }
+ r0, _, e1 := syscall.Syscall6(procCreateEventW.Addr(), 4, uintptr(unsafe.Pointer(sa)), uintptr(_p0), uintptr(_p1), uintptr(unsafe.Pointer(name)), 0, 0)
+ handle = syscall.Handle(r0)
+ if handle == syscall.InvalidHandle {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
+
+func getOverlappedResult(handle syscall.Handle, overlapped *syscall.Overlapped, transferred *uint32, wait bool) (err error) {
+ var _p0 uint32
+ if wait {
+ _p0 = 1
+ } else {
+ _p0 = 0
+ }
+ r1, _, e1 := syscall.Syscall6(procGetOverlappedResult.Addr(), 4, uintptr(handle), uintptr(unsafe.Pointer(overlapped)), uintptr(unsafe.Pointer(transferred)), uintptr(_p0), 0, 0)
+ if r1 == 0 {
+ if e1 != 0 {
+ err = error(e1)
+ } else {
+ err = syscall.EINVAL
+ }
+ }
+ return
+}
diff --git a/vendor/gopkg.in/sourcemap.v1/.travis.yml b/vendor/gopkg.in/sourcemap.v1/.travis.yml
new file mode 100644
index 000000000..814f0e51a
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/.travis.yml
@@ -0,0 +1,12 @@
+language: go
+
+go:
+ - 1.2
+ - 1.3
+ - 1.4
+ - 1.5
+
+install:
+ - mkdir -p $HOME/gopath/src/gopkg.in
+ - mv $HOME/gopath/src/github.com/go-sourcemap/sourcemap $HOME/gopath/src/gopkg.in/sourcemap.v1
+ - cd $HOME/gopath/src/gopkg.in/sourcemap.v1
diff --git a/vendor/gopkg.in/sourcemap.v1/LICENSE b/vendor/gopkg.in/sourcemap.v1/LICENSE
new file mode 100644
index 000000000..405d20f9c
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/LICENSE
@@ -0,0 +1,25 @@
+Copyright (c) 2016 The github.com/go-sourcemap/sourcemap Contributors.
+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.
+
+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/gopkg.in/sourcemap.v1/Makefile b/vendor/gopkg.in/sourcemap.v1/Makefile
new file mode 100644
index 000000000..08381f928
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/Makefile
@@ -0,0 +1,3 @@
+all:
+ go test ./... -test.v -test.cpu=1,2,4
+ go test ./... -test.v -test.short -test.race
diff --git a/vendor/gopkg.in/sourcemap.v1/README.md b/vendor/gopkg.in/sourcemap.v1/README.md
new file mode 100644
index 000000000..fb319d20f
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/README.md
@@ -0,0 +1,35 @@
+# Source Maps consumer for Golang [![Build Status](https://travis-ci.org/go-sourcemap/sourcemap.svg?branch=v1)](https://travis-ci.org/go-sourcemap/sourcemap)
+
+## Installation
+
+Install:
+
+ go get gopkg.in/sourcemap.v1
+
+## Quickstart
+
+```go
+func ExampleParse() {
+ mapURL := "http://code.jquery.com/jquery-2.0.3.min.map"
+ resp, err := http.Get(mapURL)
+ if err != nil {
+ panic(err)
+ }
+ defer resp.Body.Close()
+
+ b, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ panic(err)
+ }
+
+ smap, err := sourcemap.Parse(mapURL, b)
+ if err != nil {
+ panic(err)
+ }
+
+ line, column := 5, 6789
+ file, fn, line, col, ok := smap.Source(line, column)
+ fmt.Println(file, fn, line, col, ok)
+ // Output: http://code.jquery.com/jquery-2.0.3.js apply 4360 27 true
+}
+```
diff --git a/vendor/gopkg.in/sourcemap.v1/base64vlq/base64_vlq.go b/vendor/gopkg.in/sourcemap.v1/base64vlq/base64_vlq.go
new file mode 100644
index 000000000..598b40460
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/base64vlq/base64_vlq.go
@@ -0,0 +1,95 @@
+package base64vlq
+
+import (
+ "io"
+)
+
+const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
+
+const (
+ vlqBaseShift = 5
+ vlqBase = 1 << vlqBaseShift
+ vlqBaseMask = vlqBase - 1
+ vlqSignBit = 1
+ vlqContinuationBit = vlqBase
+)
+
+var (
+ decodeMap [256]int
+)
+
+func init() {
+ for i := 0; i < len(encodeStd); i++ {
+ decodeMap[encodeStd[i]] = i
+ }
+}
+
+func toVLQSigned(n int) int {
+ if n < 0 {
+ return -n<<1 + 1
+ } else {
+ return n << 1
+ }
+}
+
+func fromVLQSigned(n int) int {
+ isNeg := n&vlqSignBit != 0
+ n >>= 1
+ if isNeg {
+ return -n
+ }
+ return n
+}
+
+type Encoder struct {
+ w io.ByteWriter
+}
+
+func NewEncoder(w io.ByteWriter) *Encoder {
+ return &Encoder{
+ w: w,
+ }
+}
+
+func (enc *Encoder) Encode(n int) error {
+ n = toVLQSigned(n)
+ for digit := vlqContinuationBit; digit&vlqContinuationBit != 0; {
+ digit = n & vlqBaseMask
+ n >>= vlqBaseShift
+ if n > 0 {
+ digit |= vlqContinuationBit
+ }
+ err := enc.w.WriteByte(encodeStd[digit])
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
+
+type Decoder struct {
+ r io.ByteReader
+}
+
+func NewDecoder(r io.ByteReader) *Decoder {
+ return &Decoder{
+ r: r,
+ }
+}
+
+func (dec *Decoder) Decode() (n int, err error) {
+ shift := uint(0)
+ for continuation := true; continuation; {
+ c, err := dec.r.ReadByte()
+ if err != nil {
+ return 0, err
+ }
+
+ digit := decodeMap[c]
+ continuation = digit&vlqContinuationBit != 0
+ digit &= vlqBaseMask
+ n = n + digit<<shift
+ shift += vlqBaseShift
+ }
+ return fromVLQSigned(n), nil
+}
diff --git a/vendor/gopkg.in/sourcemap.v1/consumer.go b/vendor/gopkg.in/sourcemap.v1/consumer.go
new file mode 100644
index 000000000..b66761a6c
--- /dev/null
+++ b/vendor/gopkg.in/sourcemap.v1/consumer.go
@@ -0,0 +1,312 @@
+package sourcemap // import "gopkg.in/sourcemap.v1"
+
+import (
+ "encoding/json"
+ "errors"
+ "fmt"
+ "io"
+ "net/url"
+ "path"
+ "sort"
+ "strconv"
+ "strings"
+
+ "gopkg.in/sourcemap.v1/base64vlq"
+)
+
+type Consumer struct {
+ sourceRootURL *url.URL
+ smap *sourceMap
+ mappings []mapping
+}
+
+func Parse(mapURL string, b []byte) (*Consumer, error) {
+ smap := new(sourceMap)
+ err := json.Unmarshal(b, smap)
+ if err != nil {
+ return nil, err
+ }
+
+ if smap.Version != 3 {
+ return nil, errors.New("sourcemap: only 3rd version is supported")
+ }
+
+ var sourceRootURL *url.URL
+ if smap.SourceRoot != "" {
+ u, err := url.Parse(smap.SourceRoot)
+ if err != nil {
+ return nil, err
+ }
+ if u.IsAbs() {
+ sourceRootURL = u
+ }
+ } else if mapURL != "" {
+ u, err := url.Parse(mapURL)
+ if err != nil {
+ return nil, err
+ }
+ if u.IsAbs() {
+ u.Path = path.Dir(u.Path)
+ sourceRootURL = u
+ }
+ }
+
+ mappings, err := parseMappings(smap.Mappings)
+ if err != nil {
+ return nil, err
+ }
+ // Free memory.
+ smap.Mappings = ""
+
+ return &Consumer{
+ sourceRootURL: sourceRootURL,
+ smap: smap,
+ mappings: mappings,
+ }, nil
+}
+
+func (c *Consumer) File() string {
+ return c.smap.File
+}
+
+func (c *Consumer) Source(genLine, genCol int) (source, name string, line, col int, ok bool) {
+ i := sort.Search(len(c.mappings), func(i int) bool {
+ m := &c.mappings[i]
+ if m.genLine == genLine {
+ return m.genCol >= genCol
+ }
+ return m.genLine >= genLine
+ })
+
+ // Mapping not found.
+ if i == len(c.mappings) {
+ return
+ }
+
+ match := &c.mappings[i]
+
+ // Fuzzy match.
+ if match.genCol > genCol && i > 0 {
+ match = &c.mappings[i-1]
+ }
+
+ if match.sourcesInd >= 0 {
+ source = c.absSource(c.smap.Sources[match.sourcesInd])
+ }
+ if match.namesInd >= 0 {
+ iv := c.smap.Names[match.namesInd]
+ switch v := iv.(type) {
+ case string:
+ name = v
+ case float64:
+ name = strconv.FormatFloat(v, 'f', -1, 64)
+ default:
+ name = fmt.Sprint(iv)
+ }
+ }
+ line = match.sourceLine
+ col = match.sourceCol
+ ok = true
+ return
+}
+
+func (c *Consumer) absSource(source string) string {
+ if path.IsAbs(source) {
+ return source
+ }
+
+ if u, err := url.Parse(source); err == nil && u.IsAbs() {
+ return source
+ }
+
+ if c.sourceRootURL != nil {
+ u := *c.sourceRootURL
+ u.Path = path.Join(c.sourceRootURL.Path, source)
+ return u.String()
+ }
+
+ if c.smap.SourceRoot != "" {
+ return path.Join(c.smap.SourceRoot, source)
+ }
+
+ return source
+}
+
+func (c *Consumer) SourceName(genLine, genCol int, genName string) (name string, ok bool) {
+ ind := sort.Search(len(c.mappings), func(i int) bool {
+ m := c.mappings[i]
+ if m.genLine == genLine {
+ return m.genCol >= genCol
+ }
+ return m.genLine >= genLine
+ })
+
+ // Mapping not found.
+ if ind == len(c.mappings) {
+ return "", false
+ }
+
+ for i := ind; i >= 0; i-- {
+ m := c.mappings[i]
+ if m.namesInd == -1 {
+ continue
+ }
+ if c.smap.Names[m.namesInd] == "" {
+
+ }
+ }
+
+ return
+}
+
+type fn func() (fn, error)
+
+type sourceMap struct {
+ Version int `json:"version"`
+ File string `json:"file"`
+ SourceRoot string `json:"sourceRoot"`
+ Sources []string `json:"sources"`
+ Names []interface{} `json:"names"`
+ Mappings string `json:"mappings"`
+}
+
+type mapping struct {
+ genLine int
+ genCol int
+ sourcesInd int
+ sourceLine int
+ sourceCol int
+ namesInd int
+}
+
+type mappings struct {
+ rd *strings.Reader
+ dec *base64vlq.Decoder
+
+ genLine int
+ genCol int
+ sourcesInd int
+ sourceLine int
+ sourceCol int
+ namesInd int
+
+ value mapping
+ values []mapping
+}
+
+func parseMappings(s string) ([]mapping, error) {
+ rd := strings.NewReader(s)
+ m := &mappings{
+ rd: rd,
+ dec: base64vlq.NewDecoder(rd),
+
+ genLine: 1,
+ sourceLine: 1,
+ }
+ m.zeroValue()
+ err := m.parse()
+ if err != nil {
+ return nil, err
+ }
+ return m.values, nil
+}
+
+func (m *mappings) parse() error {
+ next := m.parseGenCol
+ for {
+ c, err := m.rd.ReadByte()
+ if err == io.EOF {
+ m.pushValue()
+ return nil
+ } else if err != nil {
+ return err
+ }
+
+ switch c {
+ case ',':
+ m.pushValue()
+ next = m.parseGenCol
+ case ';':
+ m.pushValue()
+
+ m.genLine++
+ m.genCol = 0
+
+ next = m.parseGenCol
+ default:
+ m.rd.UnreadByte()
+
+ var err error
+ next, err = next()
+ if err != nil {
+ return err
+ }
+ }
+ }
+}
+
+func (m *mappings) parseGenCol() (fn, error) {
+ n, err := m.dec.Decode()
+ if err != nil {
+ return nil, err
+ }
+ m.genCol += n
+ m.value.genCol = m.genCol
+ return m.parseSourcesInd, nil
+}
+
+func (m *mappings) parseSourcesInd() (fn, error) {
+ n, err := m.dec.Decode()
+ if err != nil {
+ return nil, err
+ }
+ m.sourcesInd += n
+ m.value.sourcesInd = m.sourcesInd
+ return m.parseSourceLine, nil
+}
+
+func (m *mappings) parseSourceLine() (fn, error) {
+ n, err := m.dec.Decode()
+ if err != nil {
+ return nil, err
+ }
+ m.sourceLine += n
+ m.value.sourceLine = m.sourceLine
+ return m.parseSourceCol, nil
+}
+
+func (m *mappings) parseSourceCol() (fn, error) {
+ n, err := m.dec.Decode()
+ if err != nil {
+ return nil, err
+ }
+ m.sourceCol += n
+ m.value.sourceCol = m.sourceCol
+ return m.parseNamesInd, nil
+}
+
+func (m *mappings) parseNamesInd() (fn, error) {
+ n, err := m.dec.Decode()
+ if err != nil {
+ return nil, err
+ }
+ m.namesInd += n
+ m.value.namesInd = m.namesInd
+ return m.parseGenCol, nil
+}
+
+func (m *mappings) zeroValue() {
+ m.value = mapping{
+ genLine: m.genLine,
+ genCol: 0,
+ sourcesInd: -1,
+ sourceLine: 0,
+ sourceCol: 0,
+ namesInd: -1,
+ }
+}
+
+func (m *mappings) pushValue() {
+ m.values = append(m.values, m.value)
+ m.zeroValue()
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/.gitignore b/vendor/gopkg.in/urfave/cli.v1/.gitignore
new file mode 100644
index 000000000..faf70c4c2
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/.gitignore
@@ -0,0 +1,2 @@
+*.coverprofile
+node_modules/
diff --git a/vendor/gopkg.in/urfave/cli.v1/.travis.yml b/vendor/gopkg.in/urfave/cli.v1/.travis.yml
new file mode 100644
index 000000000..273d017b4
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/.travis.yml
@@ -0,0 +1,40 @@
+language: go
+
+sudo: false
+
+cache:
+ directories:
+ - node_modules
+
+go:
+- 1.2.2
+- 1.3.3
+- 1.4
+- 1.5.4
+- 1.6.2
+- master
+
+matrix:
+ allow_failures:
+ - go: master
+ include:
+ - go: 1.6.2
+ os: osx
+ - go: 1.1.2
+ install: go get -v .
+ before_script: echo skipping gfmxr on $TRAVIS_GO_VERSION
+ script:
+ - ./runtests vet
+ - ./runtests test
+
+before_script:
+- go get github.com/urfave/gfmxr/...
+- if [ ! -f node_modules/.bin/markdown-toc ] ; then
+ npm install markdown-toc ;
+ fi
+
+script:
+- ./runtests vet
+- ./runtests test
+- ./runtests gfmxr
+- ./runtests toc
diff --git a/vendor/gopkg.in/urfave/cli.v1/CHANGELOG.md b/vendor/gopkg.in/urfave/cli.v1/CHANGELOG.md
new file mode 100644
index 000000000..be5b3893f
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/CHANGELOG.md
@@ -0,0 +1,341 @@
+# Change Log
+
+**ATTN**: This project uses [semantic versioning](http://semver.org/).
+
+## [Unreleased]
+
+## [1.18.1] - 2016-08-28
+### Fixed
+- Removed deprecation warnings to STDERR to avoid them leaking to the end-user (backported)
+
+## [1.18.0] - 2016-06-27
+### Added
+- `./runtests` test runner with coverage tracking by default
+- testing on OS X
+- testing on Windows
+- `UintFlag`, `Uint64Flag`, and `Int64Flag` types and supporting code
+
+### Changed
+- Use spaces for alignment in help/usage output instead of tabs, making the
+ output alignment consistent regardless of tab width
+
+### Fixed
+- Printing of command aliases in help text
+- Printing of visible flags for both struct and struct pointer flags
+- Display the `help` subcommand when using `CommandCategories`
+- No longer swallows `panic`s that occur within the `Action`s themselves when
+ detecting the signature of the `Action` field
+
+## [1.17.1] - 2016-08-28
+### Fixed
+- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
+
+## [1.17.0] - 2016-05-09
+### Added
+- Pluggable flag-level help text rendering via `cli.DefaultFlagStringFunc`
+- `context.GlobalBoolT` was added as an analogue to `context.GlobalBool`
+- Support for hiding commands by setting `Hidden: true` -- this will hide the
+ commands in help output
+
+### Changed
+- `Float64Flag`, `IntFlag`, and `DurationFlag` default values are no longer
+ quoted in help text output.
+- All flag types now include `(default: {value})` strings following usage when a
+ default value can be (reasonably) detected.
+- `IntSliceFlag` and `StringSliceFlag` usage strings are now more consistent
+ with non-slice flag types
+- Apps now exit with a code of 3 if an unknown subcommand is specified
+ (previously they printed "No help topic for...", but still exited 0. This
+ makes it easier to script around apps built using `cli` since they can trust
+ that a 0 exit code indicated a successful execution.
+- cleanups based on [Go Report Card
+ feedback](https://goreportcard.com/report/github.com/urfave/cli)
+
+## [1.16.1] - 2016-08-28
+### Fixed
+- Removed deprecation warnings to STDERR to avoid them leaking to the end-user
+
+## [1.16.0] - 2016-05-02
+### Added
+- `Hidden` field on all flag struct types to omit from generated help text
+
+### Changed
+- `BashCompletionFlag` (`--enable-bash-completion`) is now omitted from
+generated help text via the `Hidden` field
+
+### Fixed
+- handling of error values in `HandleAction` and `HandleExitCoder`
+
+## [1.15.0] - 2016-04-30
+### Added
+- This file!
+- Support for placeholders in flag usage strings
+- `App.Metadata` map for arbitrary data/state management
+- `Set` and `GlobalSet` methods on `*cli.Context` for altering values after
+parsing.
+- Support for nested lookup of dot-delimited keys in structures loaded from
+YAML.
+
+### Changed
+- The `App.Action` and `Command.Action` now prefer a return signature of
+`func(*cli.Context) error`, as defined by `cli.ActionFunc`. If a non-nil
+`error` is returned, there may be two outcomes:
+ - If the error fulfills `cli.ExitCoder`, then `os.Exit` will be called
+ automatically
+ - Else the error is bubbled up and returned from `App.Run`
+- Specifying an `Action` with the legacy return signature of
+`func(*cli.Context)` will produce a deprecation message to stderr
+- Specifying an `Action` that is not a `func` type will produce a non-zero exit
+from `App.Run`
+- Specifying an `Action` func that has an invalid (input) signature will
+produce a non-zero exit from `App.Run`
+
+### Deprecated
+- <a name="deprecated-cli-app-runandexitonerror"></a>
+`cli.App.RunAndExitOnError`, which should now be done by returning an error
+that fulfills `cli.ExitCoder` to `cli.App.Run`.
+- <a name="deprecated-cli-app-action-signature"></a> the legacy signature for
+`cli.App.Action` of `func(*cli.Context)`, which should now have a return
+signature of `func(*cli.Context) error`, as defined by `cli.ActionFunc`.
+
+### Fixed
+- Added missing `*cli.Context.GlobalFloat64` method
+
+## [1.14.0] - 2016-04-03 (backfilled 2016-04-25)
+### Added
+- Codebeat badge
+- Support for categorization via `CategorizedHelp` and `Categories` on app.
+
+### Changed
+- Use `filepath.Base` instead of `path.Base` in `Name` and `HelpName`.
+
+### Fixed
+- Ensure version is not shown in help text when `HideVersion` set.
+
+## [1.13.0] - 2016-03-06 (backfilled 2016-04-25)
+### Added
+- YAML file input support.
+- `NArg` method on context.
+
+## [1.12.0] - 2016-02-17 (backfilled 2016-04-25)
+### Added
+- Custom usage error handling.
+- Custom text support in `USAGE` section of help output.
+- Improved help messages for empty strings.
+- AppVeyor CI configuration.
+
+### Changed
+- Removed `panic` from default help printer func.
+- De-duping and optimizations.
+
+### Fixed
+- Correctly handle `Before`/`After` at command level when no subcommands.
+- Case of literal `-` argument causing flag reordering.
+- Environment variable hints on Windows.
+- Docs updates.
+
+## [1.11.1] - 2015-12-21 (backfilled 2016-04-25)
+### Changed
+- Use `path.Base` in `Name` and `HelpName`
+- Export `GetName` on flag types.
+
+### Fixed
+- Flag parsing when skipping is enabled.
+- Test output cleanup.
+- Move completion check to account for empty input case.
+
+## [1.11.0] - 2015-11-15 (backfilled 2016-04-25)
+### Added
+- Destination scan support for flags.
+- Testing against `tip` in Travis CI config.
+
+### Changed
+- Go version in Travis CI config.
+
+### Fixed
+- Removed redundant tests.
+- Use correct example naming in tests.
+
+## [1.10.2] - 2015-10-29 (backfilled 2016-04-25)
+### Fixed
+- Remove unused var in bash completion.
+
+## [1.10.1] - 2015-10-21 (backfilled 2016-04-25)
+### Added
+- Coverage and reference logos in README.
+
+### Fixed
+- Use specified values in help and version parsing.
+- Only display app version and help message once.
+
+## [1.10.0] - 2015-10-06 (backfilled 2016-04-25)
+### Added
+- More tests for existing functionality.
+- `ArgsUsage` at app and command level for help text flexibility.
+
+### Fixed
+- Honor `HideHelp` and `HideVersion` in `App.Run`.
+- Remove juvenile word from README.
+
+## [1.9.0] - 2015-09-08 (backfilled 2016-04-25)
+### Added
+- `FullName` on command with accompanying help output update.
+- Set default `$PROG` in bash completion.
+
+### Changed
+- Docs formatting.
+
+### Fixed
+- Removed self-referential imports in tests.
+
+## [1.8.0] - 2015-06-30 (backfilled 2016-04-25)
+### Added
+- Support for `Copyright` at app level.
+- `Parent` func at context level to walk up context lineage.
+
+### Fixed
+- Global flag processing at top level.
+
+## [1.7.1] - 2015-06-11 (backfilled 2016-04-25)
+### Added
+- Aggregate errors from `Before`/`After` funcs.
+- Doc comments on flag structs.
+- Include non-global flags when checking version and help.
+- Travis CI config updates.
+
+### Fixed
+- Ensure slice type flags have non-nil values.
+- Collect global flags from the full command hierarchy.
+- Docs prose.
+
+## [1.7.0] - 2015-05-03 (backfilled 2016-04-25)
+### Changed
+- `HelpPrinter` signature includes output writer.
+
+### Fixed
+- Specify go 1.1+ in docs.
+- Set `Writer` when running command as app.
+
+## [1.6.0] - 2015-03-23 (backfilled 2016-04-25)
+### Added
+- Multiple author support.
+- `NumFlags` at context level.
+- `Aliases` at command level.
+
+### Deprecated
+- `ShortName` at command level.
+
+### Fixed
+- Subcommand help output.
+- Backward compatible support for deprecated `Author` and `Email` fields.
+- Docs regarding `Names`/`Aliases`.
+
+## [1.5.0] - 2015-02-20 (backfilled 2016-04-25)
+### Added
+- `After` hook func support at app and command level.
+
+### Fixed
+- Use parsed context when running command as subcommand.
+- Docs prose.
+
+## [1.4.1] - 2015-01-09 (backfilled 2016-04-25)
+### Added
+- Support for hiding `-h / --help` flags, but not `help` subcommand.
+- Stop flag parsing after `--`.
+
+### Fixed
+- Help text for generic flags to specify single value.
+- Use double quotes in output for defaults.
+- Use `ParseInt` instead of `ParseUint` for int environment var values.
+- Use `0` as base when parsing int environment var values.
+
+## [1.4.0] - 2014-12-12 (backfilled 2016-04-25)
+### Added
+- Support for environment variable lookup "cascade".
+- Support for `Stdout` on app for output redirection.
+
+### Fixed
+- Print command help instead of app help in `ShowCommandHelp`.
+
+## [1.3.1] - 2014-11-13 (backfilled 2016-04-25)
+### Added
+- Docs and example code updates.
+
+### Changed
+- Default `-v / --version` flag made optional.
+
+## [1.3.0] - 2014-08-10 (backfilled 2016-04-25)
+### Added
+- `FlagNames` at context level.
+- Exposed `VersionPrinter` var for more control over version output.
+- Zsh completion hook.
+- `AUTHOR` section in default app help template.
+- Contribution guidelines.
+- `DurationFlag` type.
+
+## [1.2.0] - 2014-08-02
+### Added
+- Support for environment variable defaults on flags plus tests.
+
+## [1.1.0] - 2014-07-15
+### Added
+- Bash completion.
+- Optional hiding of built-in help command.
+- Optional skipping of flag parsing at command level.
+- `Author`, `Email`, and `Compiled` metadata on app.
+- `Before` hook func support at app and command level.
+- `CommandNotFound` func support at app level.
+- Command reference available on context.
+- `GenericFlag` type.
+- `Float64Flag` type.
+- `BoolTFlag` type.
+- `IsSet` flag helper on context.
+- More flag lookup funcs at context level.
+- More tests &amp; docs.
+
+### Changed
+- Help template updates to account for presence/absence of flags.
+- Separated subcommand help template.
+- Exposed `HelpPrinter` var for more control over help output.
+
+## [1.0.0] - 2013-11-01
+### Added
+- `help` flag in default app flag set and each command flag set.
+- Custom handling of argument parsing errors.
+- Command lookup by name at app level.
+- `StringSliceFlag` type and supporting `StringSlice` type.
+- `IntSliceFlag` type and supporting `IntSlice` type.
+- Slice type flag lookups by name at context level.
+- Export of app and command help functions.
+- More tests &amp; docs.
+
+## 0.1.0 - 2013-07-22
+### Added
+- Initial implementation.
+
+[Unreleased]: https://github.com/urfave/cli/compare/v1.18.0...HEAD
+[1.18.0]: https://github.com/urfave/cli/compare/v1.17.0...v1.18.0
+[1.17.0]: https://github.com/urfave/cli/compare/v1.16.0...v1.17.0
+[1.16.0]: https://github.com/urfave/cli/compare/v1.15.0...v1.16.0
+[1.15.0]: https://github.com/urfave/cli/compare/v1.14.0...v1.15.0
+[1.14.0]: https://github.com/urfave/cli/compare/v1.13.0...v1.14.0
+[1.13.0]: https://github.com/urfave/cli/compare/v1.12.0...v1.13.0
+[1.12.0]: https://github.com/urfave/cli/compare/v1.11.1...v1.12.0
+[1.11.1]: https://github.com/urfave/cli/compare/v1.11.0...v1.11.1
+[1.11.0]: https://github.com/urfave/cli/compare/v1.10.2...v1.11.0
+[1.10.2]: https://github.com/urfave/cli/compare/v1.10.1...v1.10.2
+[1.10.1]: https://github.com/urfave/cli/compare/v1.10.0...v1.10.1
+[1.10.0]: https://github.com/urfave/cli/compare/v1.9.0...v1.10.0
+[1.9.0]: https://github.com/urfave/cli/compare/v1.8.0...v1.9.0
+[1.8.0]: https://github.com/urfave/cli/compare/v1.7.1...v1.8.0
+[1.7.1]: https://github.com/urfave/cli/compare/v1.7.0...v1.7.1
+[1.7.0]: https://github.com/urfave/cli/compare/v1.6.0...v1.7.0
+[1.6.0]: https://github.com/urfave/cli/compare/v1.5.0...v1.6.0
+[1.5.0]: https://github.com/urfave/cli/compare/v1.4.1...v1.5.0
+[1.4.1]: https://github.com/urfave/cli/compare/v1.4.0...v1.4.1
+[1.4.0]: https://github.com/urfave/cli/compare/v1.3.1...v1.4.0
+[1.3.1]: https://github.com/urfave/cli/compare/v1.3.0...v1.3.1
+[1.3.0]: https://github.com/urfave/cli/compare/v1.2.0...v1.3.0
+[1.2.0]: https://github.com/urfave/cli/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/urfave/cli/compare/v1.0.0...v1.1.0
+[1.0.0]: https://github.com/urfave/cli/compare/v0.1.0...v1.0.0
diff --git a/vendor/gopkg.in/urfave/cli.v1/LICENSE b/vendor/gopkg.in/urfave/cli.v1/LICENSE
new file mode 100644
index 000000000..42a597e29
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2016 Jeremy Saenz & Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/vendor/gopkg.in/urfave/cli.v1/README.md b/vendor/gopkg.in/urfave/cli.v1/README.md
new file mode 100644
index 000000000..ebb1d7413
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/README.md
@@ -0,0 +1,1309 @@
+cli
+===
+
+[![Build Status](https://travis-ci.org/urfave/cli.svg?branch=master)](https://travis-ci.org/urfave/cli)
+[![Windows Build Status](https://ci.appveyor.com/api/projects/status/rtgk5xufi932pb2v?svg=true)](https://ci.appveyor.com/project/urfave/cli)
+[![GoDoc](https://godoc.org/github.com/urfave/cli?status.svg)](https://godoc.org/github.com/urfave/cli)
+[![codebeat](https://codebeat.co/badges/0a8f30aa-f975-404b-b878-5fab3ae1cc5f)](https://codebeat.co/projects/github-com-urfave-cli)
+[![Go Report Card](https://goreportcard.com/badge/urfave/cli)](https://goreportcard.com/report/urfave/cli)
+[![top level coverage](https://gocover.io/_badge/github.com/urfave/cli?0 "top level coverage")](http://gocover.io/github.com/urfave/cli) /
+[![altsrc coverage](https://gocover.io/_badge/github.com/urfave/cli/altsrc?0 "altsrc coverage")](http://gocover.io/github.com/urfave/cli/altsrc)
+
+**Notice:** This is the library formerly known as
+`github.com/codegangsta/cli` -- Github will automatically redirect requests
+to this repository, but we recommend updating your references for clarity.
+
+cli is a simple, fast, and fun package for building command line apps in Go. The
+goal is to enable developers to write fast and distributable command line
+applications in an expressive way.
+
+<!-- toc -->
+
+- [Overview](#overview)
+- [Installation](#installation)
+ * [Supported platforms](#supported-platforms)
+ * [Using the `v2` branch](#using-the-v2-branch)
+ * [Pinning to the `v1` branch](#pinning-to-the-v1-branch)
+- [Getting Started](#getting-started)
+- [Examples](#examples)
+ * [Arguments](#arguments)
+ * [Flags](#flags)
+ + [Placeholder Values](#placeholder-values)
+ + [Alternate Names](#alternate-names)
+ + [Values from the Environment](#values-from-the-environment)
+ + [Values from alternate input sources (YAML and others)](#values-from-alternate-input-sources-yaml-and-others)
+ * [Subcommands](#subcommands)
+ * [Subcommands categories](#subcommands-categories)
+ * [Exit code](#exit-code)
+ * [Bash Completion](#bash-completion)
+ + [Enabling](#enabling)
+ + [Distribution](#distribution)
+ + [Customization](#customization)
+ * [Generated Help Text](#generated-help-text)
+ + [Customization](#customization-1)
+ * [Version Flag](#version-flag)
+ + [Customization](#customization-2)
+ + [Full API Example](#full-api-example)
+- [Contribution Guidelines](#contribution-guidelines)
+
+<!-- tocstop -->
+
+## Overview
+
+Command line apps are usually so tiny that there is absolutely no reason why
+your code should *not* be self-documenting. Things like generating help text and
+parsing command flags/options should not hinder productivity when writing a
+command line app.
+
+**This is where cli comes into play.** cli makes command line programming fun,
+organized, and expressive!
+
+## Installation
+
+Make sure you have a working Go environment. Go version 1.1+ is required for
+core cli, whereas use of the [`./altsrc`](./altsrc) input extensions requires Go
+version 1.2+. [See the install
+instructions](http://golang.org/doc/install.html).
+
+To install cli, simply run:
+```
+$ go get github.com/urfave/cli
+```
+
+Make sure your `PATH` includes to the `$GOPATH/bin` directory so your commands
+can be easily used:
+```
+export PATH=$PATH:$GOPATH/bin
+```
+
+### Supported platforms
+
+cli is tested against multiple versions of Go on Linux, and against the latest
+released version of Go on OS X and Windows. For full details, see
+[`./.travis.yml`](./.travis.yml) and [`./appveyor.yml`](./appveyor.yml).
+
+### Using the `v2` branch
+
+**Warning**: The `v2` branch is currently unreleased and considered unstable.
+
+There is currently a long-lived branch named `v2` that is intended to land as
+the new `master` branch once development there has settled down. The current
+`master` branch (mirrored as `v1`) is being manually merged into `v2` on
+an irregular human-based schedule, but generally if one wants to "upgrade" to
+`v2` *now* and accept the volatility (read: "awesomeness") that comes along with
+that, please use whatever version pinning of your preference, such as via
+`gopkg.in`:
+
+```
+$ go get gopkg.in/urfave/cli.v2
+```
+
+``` go
+...
+import (
+ "gopkg.in/urfave/cli.v2" // imports as package "cli"
+)
+...
+```
+
+### Pinning to the `v1` branch
+
+Similarly to the section above describing use of the `v2` branch, if one wants
+to avoid any unexpected compatibility pains once `v2` becomes `master`, then
+pinning to the `v1` branch is an acceptable option, e.g.:
+
+```
+$ go get gopkg.in/urfave/cli.v1
+```
+
+``` go
+...
+import (
+ "gopkg.in/urfave/cli.v1" // imports as package "cli"
+)
+...
+```
+
+## Getting Started
+
+One of the philosophies behind cli is that an API should be playful and full of
+discovery. So a cli app can be as little as one line of code in `main()`.
+
+<!-- {
+ "args": ["&#45;&#45;help"],
+ "output": "A new cli application"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ cli.NewApp().Run(os.Args)
+}
+```
+
+This app will run and show help text, but is not very useful. Let's give an
+action to execute and some help documentation:
+
+<!-- {
+ "output": "boom! I say!"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+ app.Name = "boom"
+ app.Usage = "make an explosive entrance"
+ app.Action = func(c *cli.Context) error {
+ fmt.Println("boom! I say!")
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+Running this already gives you a ton of functionality, plus support for things
+like subcommands and flags, which are covered below.
+
+## Examples
+
+Being a programmer can be a lonely job. Thankfully by the power of automation
+that is not the case! Let's create a greeter app to fend off our demons of
+loneliness!
+
+Start by creating a directory named `greet`, and within it, add a file,
+`greet.go` with the following code in it:
+
+<!-- {
+ "output": "Hello friend!"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+ app.Name = "greet"
+ app.Usage = "fight the loneliness!"
+ app.Action = func(c *cli.Context) error {
+ fmt.Println("Hello friend!")
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+Install our command to the `$GOPATH/bin` directory:
+
+```
+$ go install
+```
+
+Finally run our new command:
+
+```
+$ greet
+Hello friend!
+```
+
+cli also generates neat help text:
+
+```
+$ greet help
+NAME:
+ greet - fight the loneliness!
+
+USAGE:
+ greet [global options] command [command options] [arguments...]
+
+VERSION:
+ 0.0.0
+
+COMMANDS:
+ help, h Shows a list of commands or help for one command
+
+GLOBAL OPTIONS
+ --version Shows version information
+```
+
+### Arguments
+
+You can lookup arguments by calling the `Args` function on `cli.Context`, e.g.:
+
+<!-- {
+ "output": "Hello \""
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Action = func(c *cli.Context) error {
+ fmt.Printf("Hello %q", c.Args().Get(0))
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+### Flags
+
+Setting and querying flags is simple.
+
+<!-- {
+ "output": "Hello Nefertiti"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag {
+ cli.StringFlag{
+ Name: "lang",
+ Value: "english",
+ Usage: "language for the greeting",
+ },
+ }
+
+ app.Action = func(c *cli.Context) error {
+ name := "Nefertiti"
+ if c.NArg() > 0 {
+ name = c.Args().Get(0)
+ }
+ if c.String("lang") == "spanish" {
+ fmt.Println("Hola", name)
+ } else {
+ fmt.Println("Hello", name)
+ }
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+You can also set a destination variable for a flag, to which the content will be
+scanned.
+
+<!-- {
+ "output": "Hello someone"
+} -->
+``` go
+package main
+
+import (
+ "os"
+ "fmt"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ var language string
+
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag {
+ cli.StringFlag{
+ Name: "lang",
+ Value: "english",
+ Usage: "language for the greeting",
+ Destination: &language,
+ },
+ }
+
+ app.Action = func(c *cli.Context) error {
+ name := "someone"
+ if c.NArg() > 0 {
+ name = c.Args()[0]
+ }
+ if language == "spanish" {
+ fmt.Println("Hola", name)
+ } else {
+ fmt.Println("Hello", name)
+ }
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+See full list of flags at http://godoc.org/github.com/urfave/cli
+
+#### Placeholder Values
+
+Sometimes it's useful to specify a flag's value within the usage string itself.
+Such placeholders are indicated with back quotes.
+
+For example this:
+
+<!-- {
+ "args": ["&#45;&#45;help"],
+ "output": "&#45;&#45;config FILE, &#45;c FILE"
+} -->
+```go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag{
+ cli.StringFlag{
+ Name: "config, c",
+ Usage: "Load configuration from `FILE`",
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+Will result in help output like:
+
+```
+--config FILE, -c FILE Load configuration from FILE
+```
+
+Note that only the first placeholder is used. Subsequent back-quoted words will
+be left as-is.
+
+#### Alternate Names
+
+You can set alternate (or short) names for flags by providing a comma-delimited
+list for the `Name`. e.g.
+
+<!-- {
+ "args": ["&#45;&#45;help"],
+ "output": "&#45;&#45;lang value, &#45;l value.*language for the greeting.*default: \"english\""
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag {
+ cli.StringFlag{
+ Name: "lang, l",
+ Value: "english",
+ Usage: "language for the greeting",
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+That flag can then be set with `--lang spanish` or `-l spanish`. Note that
+giving two different forms of the same flag in the same command invocation is an
+error.
+
+#### Values from the Environment
+
+You can also have the default value set from the environment via `EnvVar`. e.g.
+
+<!-- {
+ "args": ["&#45;&#45;help"],
+ "output": "language for the greeting.*APP_LANG"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag {
+ cli.StringFlag{
+ Name: "lang, l",
+ Value: "english",
+ Usage: "language for the greeting",
+ EnvVar: "APP_LANG",
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+The `EnvVar` may also be given as a comma-delimited "cascade", where the first
+environment variable that resolves is used as the default.
+
+<!-- {
+ "args": ["&#45;&#45;help"],
+ "output": "language for the greeting.*LEGACY_COMPAT_LANG.*APP_LANG.*LANG"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Flags = []cli.Flag {
+ cli.StringFlag{
+ Name: "lang, l",
+ Value: "english",
+ Usage: "language for the greeting",
+ EnvVar: "LEGACY_COMPAT_LANG,APP_LANG,LANG",
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+#### Values from alternate input sources (YAML and others)
+
+There is a separate package altsrc that adds support for getting flag values
+from other input sources like YAML.
+
+In order to get values for a flag from an alternate input source the following
+code would be added to wrap an existing cli.Flag like below:
+
+``` go
+ altsrc.NewIntFlag(cli.IntFlag{Name: "test"})
+```
+
+Initialization must also occur for these flags. Below is an example initializing
+getting data from a yaml file below.
+
+``` go
+ command.Before = altsrc.InitInputSourceWithContext(command.Flags, NewYamlSourceFromFlagFunc("load"))
+```
+
+The code above will use the "load" string as a flag name to get the file name of
+a yaml file from the cli.Context. It will then use that file name to initialize
+the yaml input source for any flags that are defined on that command. As a note
+the "load" flag used would also have to be defined on the command flags in order
+for this code snipped to work.
+
+Currently only YAML files are supported but developers can add support for other
+input sources by implementing the altsrc.InputSourceContext for their given
+sources.
+
+Here is a more complete sample of a command using YAML support:
+
+<!-- {
+ "args": ["test-cmd", "&#45;&#45;help"],
+ "output": "&#45&#45;test value.*default: 0"
+} -->
+``` go
+package notmain
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+ "github.com/urfave/cli/altsrc"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ flags := []cli.Flag{
+ altsrc.NewIntFlag(cli.IntFlag{Name: "test"}),
+ cli.StringFlag{Name: "load"},
+ }
+
+ app.Action = func(c *cli.Context) error {
+ fmt.Println("yaml ist rad")
+ return nil
+ }
+
+ app.Before = altsrc.InitInputSourceWithContext(flags, altsrc.NewYamlSourceFromFlagFunc("load"))
+ app.Flags = flags
+
+ app.Run(os.Args)
+}
+```
+
+### Subcommands
+
+Subcommands can be defined for a more git-like command line app.
+
+<!-- {
+ "args": ["template", "add"],
+ "output": "new task template: .+"
+} -->
+```go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Commands = []cli.Command{
+ {
+ Name: "add",
+ Aliases: []string{"a"},
+ Usage: "add a task to the list",
+ Action: func(c *cli.Context) error {
+ fmt.Println("added task: ", c.Args().First())
+ return nil
+ },
+ },
+ {
+ Name: "complete",
+ Aliases: []string{"c"},
+ Usage: "complete a task on the list",
+ Action: func(c *cli.Context) error {
+ fmt.Println("completed task: ", c.Args().First())
+ return nil
+ },
+ },
+ {
+ Name: "template",
+ Aliases: []string{"t"},
+ Usage: "options for task templates",
+ Subcommands: []cli.Command{
+ {
+ Name: "add",
+ Usage: "add a new template",
+ Action: func(c *cli.Context) error {
+ fmt.Println("new task template: ", c.Args().First())
+ return nil
+ },
+ },
+ {
+ Name: "remove",
+ Usage: "remove an existing template",
+ Action: func(c *cli.Context) error {
+ fmt.Println("removed task template: ", c.Args().First())
+ return nil
+ },
+ },
+ },
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+### Subcommands categories
+
+For additional organization in apps that have many subcommands, you can
+associate a category for each command to group them together in the help
+output.
+
+E.g.
+
+```go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+
+ app.Commands = []cli.Command{
+ {
+ Name: "noop",
+ },
+ {
+ Name: "add",
+ Category: "template",
+ },
+ {
+ Name: "remove",
+ Category: "template",
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+Will include:
+
+```
+COMMANDS:
+ noop
+
+ Template actions:
+ add
+ remove
+```
+
+### Exit code
+
+Calling `App.Run` will not automatically call `os.Exit`, which means that by
+default the exit code will "fall through" to being `0`. An explicit exit code
+may be set by returning a non-nil error that fulfills `cli.ExitCoder`, *or* a
+`cli.MultiError` that includes an error that fulfills `cli.ExitCoder`, e.g.:
+
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ app := cli.NewApp()
+ app.Flags = []cli.Flag{
+ cli.BoolTFlag{
+ Name: "ginger-crouton",
+ Usage: "is it in the soup?",
+ },
+ }
+ app.Action = func(ctx *cli.Context) error {
+ if !ctx.Bool("ginger-crouton") {
+ return cli.NewExitError("it is not in the soup", 86)
+ }
+ return nil
+ }
+
+ app.Run(os.Args)
+}
+```
+
+### Bash Completion
+
+You can enable completion commands by setting the `EnableBashCompletion`
+flag on the `App` object. By default, this setting will only auto-complete to
+show an app's subcommands, but you can write your own completion methods for
+the App or its subcommands.
+
+<!-- {
+ "args": ["complete", "&#45;&#45;generate&#45;bash&#45;completion"],
+ "output": "laundry"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ tasks := []string{"cook", "clean", "laundry", "eat", "sleep", "code"}
+
+ app := cli.NewApp()
+ app.EnableBashCompletion = true
+ app.Commands = []cli.Command{
+ {
+ Name: "complete",
+ Aliases: []string{"c"},
+ Usage: "complete a task on the list",
+ Action: func(c *cli.Context) error {
+ fmt.Println("completed task: ", c.Args().First())
+ return nil
+ },
+ BashComplete: func(c *cli.Context) {
+ // This will complete if no args are passed
+ if c.NArg() > 0 {
+ return
+ }
+ for _, t := range tasks {
+ fmt.Println(t)
+ }
+ },
+ },
+ }
+
+ app.Run(os.Args)
+}
+```
+
+#### Enabling
+
+Source the `autocomplete/bash_autocomplete` file in your `.bashrc` file while
+setting the `PROG` variable to the name of your program:
+
+`PROG=myprogram source /.../cli/autocomplete/bash_autocomplete`
+
+#### Distribution
+
+Copy `autocomplete/bash_autocomplete` into `/etc/bash_completion.d/` and rename
+it to the name of the program you wish to add autocomplete support for (or
+automatically install it there if you are distributing a package). Don't forget
+to source the file to make it active in the current shell.
+
+```
+sudo cp src/bash_autocomplete /etc/bash_completion.d/<myprogram>
+source /etc/bash_completion.d/<myprogram>
+```
+
+Alternatively, you can just document that users should source the generic
+`autocomplete/bash_autocomplete` in their bash configuration with `$PROG` set
+to the name of their program (as above).
+
+#### Customization
+
+The default bash completion flag (`--generate-bash-completion`) is defined as
+`cli.BashCompletionFlag`, and may be redefined if desired, e.g.:
+
+<!-- {
+ "args": ["&#45;&#45;compgen"],
+ "output": "wat\nhelp\nh"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ cli.BashCompletionFlag = cli.BoolFlag{
+ Name: "compgen",
+ Hidden: true,
+ }
+
+ app := cli.NewApp()
+ app.EnableBashCompletion = true
+ app.Commands = []cli.Command{
+ {
+ Name: "wat",
+ },
+ }
+ app.Run(os.Args)
+}
+```
+
+### Generated Help Text
+
+The default help flag (`-h/--help`) is defined as `cli.HelpFlag` and is checked
+by the cli internals in order to print generated help text for the app, command,
+or subcommand, and break execution.
+
+#### Customization
+
+All of the help text generation may be customized, and at multiple levels. The
+templates are exposed as variables `AppHelpTemplate`, `CommandHelpTemplate`, and
+`SubcommandHelpTemplate` which may be reassigned or augmented, and full override
+is possible by assigning a compatible func to the `cli.HelpPrinter` variable,
+e.g.:
+
+<!-- {
+ "output": "Ha HA. I pwnd the help!!1"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "io"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ // EXAMPLE: Append to an existing template
+ cli.AppHelpTemplate = fmt.Sprintf(`%s
+
+WEBSITE: http://awesometown.example.com
+
+SUPPORT: support@awesometown.example.com
+
+`, cli.AppHelpTemplate)
+
+ // EXAMPLE: Override a template
+ cli.AppHelpTemplate = `NAME:
+ {{.Name}} - {{.Usage}}
+USAGE:
+ {{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command
+[command options]{{end}} {{if
+.ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}
+ {{if len .Authors}}
+AUTHOR(S):
+ {{range .Authors}}{{ . }}{{end}}
+ {{end}}{{if .Commands}}
+COMMANDS:
+{{range .Commands}}{{if not .HideHelp}} {{join .Names ", "}}{{ "\t"
+}}{{.Usage}}{{ "\n" }}{{end}}{{end}}{{end}}{{if .VisibleFlags}}
+GLOBAL OPTIONS:
+ {{range .VisibleFlags}}{{.}}
+ {{end}}{{end}}{{if .Copyright }}
+COPYRIGHT:
+ {{.Copyright}}
+ {{end}}{{if .Version}}
+VERSION:
+ {{.Version}}
+ {{end}}
+`
+
+ // EXAMPLE: Replace the `HelpPrinter` func
+ cli.HelpPrinter = func(w io.Writer, templ string, data interface{}) {
+ fmt.Println("Ha HA. I pwnd the help!!1")
+ }
+
+ cli.NewApp().Run(os.Args)
+}
+```
+
+The default flag may be customized to something other than `-h/--help` by
+setting `cli.HelpFlag`, e.g.:
+
+<!-- {
+ "args": ["&#45;&#45halp"],
+ "output": "haaaaalp.*HALP"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ cli.HelpFlag = cli.BoolFlag{
+ Name: "halp, haaaaalp",
+ Usage: "HALP",
+ EnvVar: "SHOW_HALP,HALPPLZ",
+ }
+
+ cli.NewApp().Run(os.Args)
+}
+```
+
+### Version Flag
+
+The default version flag (`-v/--version`) is defined as `cli.VersionFlag`, which
+is checked by the cli internals in order to print the `App.Version` via
+`cli.VersionPrinter` and break execution.
+
+#### Customization
+
+The default flag may be cusomized to something other than `-v/--version` by
+setting `cli.VersionFlag`, e.g.:
+
+<!-- {
+ "args": ["&#45;&#45print-version"],
+ "output": "partay version v19\\.99\\.0"
+} -->
+``` go
+package main
+
+import (
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+func main() {
+ cli.VersionFlag = cli.BoolFlag{
+ Name: "print-version, V",
+ Usage: "print only the version",
+ }
+
+ app := cli.NewApp()
+ app.Name = "partay"
+ app.Version = "v19.99.0"
+ app.Run(os.Args)
+}
+```
+
+Alternatively, the version printer at `cli.VersionPrinter` may be overridden, e.g.:
+
+<!-- {
+ "args": ["&#45;&#45version"],
+ "output": "version=v19\\.99\\.0 revision=fafafaf"
+} -->
+``` go
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "github.com/urfave/cli"
+)
+
+var (
+ Revision = "fafafaf"
+)
+
+func main() {
+ cli.VersionPrinter = func(c *cli.Context) {
+ fmt.Printf("version=%s revision=%s\n", c.App.Version, Revision)
+ }
+
+ app := cli.NewApp()
+ app.Name = "partay"
+ app.Version = "v19.99.0"
+ app.Run(os.Args)
+}
+```
+
+#### Full API Example
+
+**Notice**: This is a contrived (functioning) example meant strictly for API
+demonstration purposes. Use of one's imagination is encouraged.
+
+<!-- {
+ "output": "made it!\nPhew!"
+} -->
+``` go
+package main
+
+import (
+ "errors"
+ "flag"
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "time"
+
+ "github.com/urfave/cli"
+)
+
+func init() {
+ cli.AppHelpTemplate += "\nCUSTOMIZED: you bet ur muffins\n"
+ cli.CommandHelpTemplate += "\nYMMV\n"
+ cli.SubcommandHelpTemplate += "\nor something\n"
+
+ cli.HelpFlag = cli.BoolFlag{Name: "halp"}
+ cli.BashCompletionFlag = cli.BoolFlag{Name: "compgen", Hidden: true}
+ cli.VersionFlag = cli.BoolFlag{Name: "print-version, V"}
+
+ cli.HelpPrinter = func(w io.Writer, templ string, data interface{}) {
+ fmt.Fprintf(w, "best of luck to you\n")
+ }
+ cli.VersionPrinter = func(c *cli.Context) {
+ fmt.Fprintf(c.App.Writer, "version=%s\n", c.App.Version)
+ }
+ cli.OsExiter = func(c int) {
+ fmt.Fprintf(cli.ErrWriter, "refusing to exit %d\n", c)
+ }
+ cli.ErrWriter = ioutil.Discard
+ cli.FlagStringer = func(fl cli.Flag) string {
+ return fmt.Sprintf("\t\t%s", fl.GetName())
+ }
+}
+
+type hexWriter struct{}
+
+func (w *hexWriter) Write(p []byte) (int, error) {
+ for _, b := range p {
+ fmt.Printf("%x", b)
+ }
+ fmt.Printf("\n")
+
+ return len(p), nil
+}
+
+type genericType struct{
+ s string
+}
+
+func (g *genericType) Set(value string) error {
+ g.s = value
+ return nil
+}
+
+func (g *genericType) String() string {
+ return g.s
+}
+
+func main() {
+ app := cli.NewApp()
+ app.Name = "kənˈtrīv"
+ app.Version = "v19.99.0"
+ app.Compiled = time.Now()
+ app.Authors = []cli.Author{
+ cli.Author{
+ Name: "Example Human",
+ Email: "human@example.com",
+ },
+ }
+ app.Copyright = "(c) 1999 Serious Enterprise"
+ app.HelpName = "contrive"
+ app.Usage = "demonstrate available API"
+ app.UsageText = "contrive - demonstrating the available API"
+ app.ArgsUsage = "[args and such]"
+ app.Commands = []cli.Command{
+ cli.Command{
+ Name: "doo",
+ Aliases: []string{"do"},
+ Category: "motion",
+ Usage: "do the doo",
+ UsageText: "doo - does the dooing",
+ Description: "no really, there is a lot of dooing to be done",
+ ArgsUsage: "[arrgh]",
+ Flags: []cli.Flag{
+ cli.BoolFlag{Name: "forever, forevvarr"},
+ },
+ Subcommands: cli.Commands{
+ cli.Command{
+ Name: "wop",
+ Action: wopAction,
+ },
+ },
+ SkipFlagParsing: false,
+ HideHelp: false,
+ Hidden: false,
+ HelpName: "doo!",
+ BashComplete: func(c *cli.Context) {
+ fmt.Fprintf(c.App.Writer, "--better\n")
+ },
+ Before: func(c *cli.Context) error {
+ fmt.Fprintf(c.App.Writer, "brace for impact\n")
+ return nil
+ },
+ After: func(c *cli.Context) error {
+ fmt.Fprintf(c.App.Writer, "did we lose anyone?\n")
+ return nil
+ },
+ Action: func(c *cli.Context) error {
+ c.Command.FullName()
+ c.Command.HasName("wop")
+ c.Command.Names()
+ c.Command.VisibleFlags()
+ fmt.Fprintf(c.App.Writer, "dodododododoodododddooooododododooo\n")
+ if c.Bool("forever") {
+ c.Command.Run(c)
+ }
+ return nil
+ },
+ OnUsageError: func(c *cli.Context, err error, isSubcommand bool) error {
+ fmt.Fprintf(c.App.Writer, "for shame\n")
+ return err
+ },
+ },
+ }
+ app.Flags = []cli.Flag{
+ cli.BoolFlag{Name: "fancy"},
+ cli.BoolTFlag{Name: "fancier"},
+ cli.DurationFlag{Name: "howlong, H", Value: time.Second * 3},
+ cli.Float64Flag{Name: "howmuch"},
+ cli.GenericFlag{Name: "wat", Value: &genericType{}},
+ cli.Int64Flag{Name: "longdistance"},
+ cli.Int64SliceFlag{Name: "intervals"},
+ cli.IntFlag{Name: "distance"},
+ cli.IntSliceFlag{Name: "times"},
+ cli.StringFlag{Name: "dance-move, d"},
+ cli.StringSliceFlag{Name: "names, N"},
+ cli.UintFlag{Name: "age"},
+ cli.Uint64Flag{Name: "bigage"},
+ }
+ app.EnableBashCompletion = true
+ app.HideHelp = false
+ app.HideVersion = false
+ app.BashComplete = func(c *cli.Context) {
+ fmt.Fprintf(c.App.Writer, "lipstick\nkiss\nme\nlipstick\nringo\n")
+ }
+ app.Before = func(c *cli.Context) error {
+ fmt.Fprintf(c.App.Writer, "HEEEERE GOES\n")
+ return nil
+ }
+ app.After = func(c *cli.Context) error {
+ fmt.Fprintf(c.App.Writer, "Phew!\n")
+ return nil
+ }
+ app.CommandNotFound = func(c *cli.Context, command string) {
+ fmt.Fprintf(c.App.Writer, "Thar be no %q here.\n", command)
+ }
+ app.OnUsageError = func(c *cli.Context, err error, isSubcommand bool) error {
+ if isSubcommand {
+ return err
+ }
+
+ fmt.Fprintf(c.App.Writer, "WRONG: %#v\n", err)
+ return nil
+ }
+ app.Action = func(c *cli.Context) error {
+ cli.DefaultAppComplete(c)
+ cli.HandleExitCoder(errors.New("not an exit coder, though"))
+ cli.ShowAppHelp(c)
+ cli.ShowCommandCompletions(c, "nope")
+ cli.ShowCommandHelp(c, "also-nope")
+ cli.ShowCompletions(c)
+ cli.ShowSubcommandHelp(c)
+ cli.ShowVersion(c)
+
+ categories := c.App.Categories()
+ categories.AddCommand("sounds", cli.Command{
+ Name: "bloop",
+ })
+
+ for _, category := range c.App.Categories() {
+ fmt.Fprintf(c.App.Writer, "%s\n", category.Name)
+ fmt.Fprintf(c.App.Writer, "%#v\n", category.Commands)
+ fmt.Fprintf(c.App.Writer, "%#v\n", category.VisibleCommands())
+ }
+
+ fmt.Printf("%#v\n", c.App.Command("doo"))
+ if c.Bool("infinite") {
+ c.App.Run([]string{"app", "doo", "wop"})
+ }
+
+ if c.Bool("forevar") {
+ c.App.RunAsSubcommand(c)
+ }
+ c.App.Setup()
+ fmt.Printf("%#v\n", c.App.VisibleCategories())
+ fmt.Printf("%#v\n", c.App.VisibleCommands())
+ fmt.Printf("%#v\n", c.App.VisibleFlags())
+
+ fmt.Printf("%#v\n", c.Args().First())
+ if len(c.Args()) > 0 {
+ fmt.Printf("%#v\n", c.Args()[1])
+ }
+ fmt.Printf("%#v\n", c.Args().Present())
+ fmt.Printf("%#v\n", c.Args().Tail())
+
+ set := flag.NewFlagSet("contrive", 0)
+ nc := cli.NewContext(c.App, set, c)
+
+ fmt.Printf("%#v\n", nc.Args())
+ fmt.Printf("%#v\n", nc.Bool("nope"))
+ fmt.Printf("%#v\n", nc.BoolT("nerp"))
+ fmt.Printf("%#v\n", nc.Duration("howlong"))
+ fmt.Printf("%#v\n", nc.Float64("hay"))
+ fmt.Printf("%#v\n", nc.Generic("bloop"))
+ fmt.Printf("%#v\n", nc.Int64("bonk"))
+ fmt.Printf("%#v\n", nc.Int64Slice("burnks"))
+ fmt.Printf("%#v\n", nc.Int("bips"))
+ fmt.Printf("%#v\n", nc.IntSlice("blups"))
+ fmt.Printf("%#v\n", nc.String("snurt"))
+ fmt.Printf("%#v\n", nc.StringSlice("snurkles"))
+ fmt.Printf("%#v\n", nc.Uint("flub"))
+ fmt.Printf("%#v\n", nc.Uint64("florb"))
+ fmt.Printf("%#v\n", nc.GlobalBool("global-nope"))
+ fmt.Printf("%#v\n", nc.GlobalBoolT("global-nerp"))
+ fmt.Printf("%#v\n", nc.GlobalDuration("global-howlong"))
+ fmt.Printf("%#v\n", nc.GlobalFloat64("global-hay"))
+ fmt.Printf("%#v\n", nc.GlobalGeneric("global-bloop"))
+ fmt.Printf("%#v\n", nc.GlobalInt("global-bips"))
+ fmt.Printf("%#v\n", nc.GlobalIntSlice("global-blups"))
+ fmt.Printf("%#v\n", nc.GlobalString("global-snurt"))
+ fmt.Printf("%#v\n", nc.GlobalStringSlice("global-snurkles"))
+
+ fmt.Printf("%#v\n", nc.FlagNames())
+ fmt.Printf("%#v\n", nc.GlobalFlagNames())
+ fmt.Printf("%#v\n", nc.GlobalIsSet("wat"))
+ fmt.Printf("%#v\n", nc.GlobalSet("wat", "nope"))
+ fmt.Printf("%#v\n", nc.NArg())
+ fmt.Printf("%#v\n", nc.NumFlags())
+ fmt.Printf("%#v\n", nc.Parent())
+
+ nc.Set("wat", "also-nope")
+
+ ec := cli.NewExitError("ohwell", 86)
+ fmt.Fprintf(c.App.Writer, "%d", ec.ExitCode())
+ fmt.Printf("made it!\n")
+ return ec
+ }
+
+ if os.Getenv("HEXY") != "" {
+ app.Writer = &hexWriter{}
+ app.ErrWriter = &hexWriter{}
+ }
+
+ app.Metadata = map[string]interface{}{
+ "layers": "many",
+ "explicable": false,
+ "whatever-values": 19.99,
+ }
+
+ app.Run(os.Args)
+}
+
+func wopAction(c *cli.Context) error {
+ fmt.Fprintf(c.App.Writer, ":wave: over here, eh\n")
+ return nil
+}
+```
+
+## Contribution Guidelines
+
+Feel free to put up a pull request to fix a bug or maybe add a feature. I will
+give it a code review and make sure that it does not break backwards
+compatibility. If I or any other collaborators agree that it is in line with
+the vision of the project, we will work with you to get the code into
+a mergeable state and merge it into the master branch.
+
+If you have contributed something significant to the project, we will most
+likely add you as a collaborator. As a collaborator you are given the ability
+to merge others pull requests. It is very important that new code does not
+break existing code, so be careful about what code you do choose to merge.
+
+If you feel like you have contributed to the project but have not yet been
+added as a collaborator, we probably forgot to add you, please open an issue.
diff --git a/vendor/gopkg.in/urfave/cli.v1/app.go b/vendor/gopkg.in/urfave/cli.v1/app.go
new file mode 100644
index 000000000..2a519528f
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/app.go
@@ -0,0 +1,497 @@
+package cli
+
+import (
+ "fmt"
+ "io"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "reflect"
+ "sort"
+ "strings"
+ "time"
+)
+
+var (
+ changeLogURL = "https://github.com/urfave/cli/blob/master/CHANGELOG.md"
+ appActionDeprecationURL = fmt.Sprintf("%s#deprecated-cli-app-action-signature", changeLogURL)
+ runAndExitOnErrorDeprecationURL = fmt.Sprintf("%s#deprecated-cli-app-runandexitonerror", changeLogURL)
+
+ contactSysadmin = "This is an error in the application. Please contact the distributor of this application if this is not you."
+
+ errNonFuncAction = NewExitError("ERROR invalid Action type. "+
+ fmt.Sprintf("Must be a func of type `cli.ActionFunc`. %s", contactSysadmin)+
+ fmt.Sprintf("See %s", appActionDeprecationURL), 2)
+ errInvalidActionSignature = NewExitError("ERROR invalid Action signature. "+
+ fmt.Sprintf("Must be `cli.ActionFunc`. %s", contactSysadmin)+
+ fmt.Sprintf("See %s", appActionDeprecationURL), 2)
+)
+
+// App is the main structure of a cli application. It is recommended that
+// an app be created with the cli.NewApp() function
+type App struct {
+ // The name of the program. Defaults to path.Base(os.Args[0])
+ Name string
+ // Full name of command for help, defaults to Name
+ HelpName string
+ // Description of the program.
+ Usage string
+ // Text to override the USAGE section of help
+ UsageText string
+ // Description of the program argument format.
+ ArgsUsage string
+ // Version of the program
+ Version string
+ // List of commands to execute
+ Commands []Command
+ // List of flags to parse
+ Flags []Flag
+ // Boolean to enable bash completion commands
+ EnableBashCompletion bool
+ // Boolean to hide built-in help command
+ HideHelp bool
+ // Boolean to hide built-in version flag and the VERSION section of help
+ HideVersion bool
+ // Populate on app startup, only gettable through method Categories()
+ categories CommandCategories
+ // An action to execute when the bash-completion flag is set
+ BashComplete BashCompleteFunc
+ // An action to execute before any subcommands are run, but after the context is ready
+ // If a non-nil error is returned, no subcommands are run
+ Before BeforeFunc
+ // An action to execute after any subcommands are run, but after the subcommand has finished
+ // It is run even if Action() panics
+ After AfterFunc
+ // The action to execute when no subcommands are specified
+ // Expects a `cli.ActionFunc` but will accept the *deprecated* signature of `func(*cli.Context) {}`
+ // *Note*: support for the deprecated `Action` signature will be removed in a future version
+ Action interface{}
+
+ // Execute this function if the proper command cannot be found
+ CommandNotFound CommandNotFoundFunc
+ // Execute this function if an usage error occurs
+ OnUsageError OnUsageErrorFunc
+ // Compilation date
+ Compiled time.Time
+ // List of all authors who contributed
+ Authors []Author
+ // Copyright of the binary if any
+ Copyright string
+ // Name of Author (Note: Use App.Authors, this is deprecated)
+ Author string
+ // Email of Author (Note: Use App.Authors, this is deprecated)
+ Email string
+ // Writer writer to write output to
+ Writer io.Writer
+ // ErrWriter writes error output
+ ErrWriter io.Writer
+ // Other custom info
+ Metadata map[string]interface{}
+
+ didSetup bool
+}
+
+// Tries to find out when this binary was compiled.
+// Returns the current time if it fails to find it.
+func compileTime() time.Time {
+ info, err := os.Stat(os.Args[0])
+ if err != nil {
+ return time.Now()
+ }
+ return info.ModTime()
+}
+
+// NewApp creates a new cli Application with some reasonable defaults for Name,
+// Usage, Version and Action.
+func NewApp() *App {
+ return &App{
+ Name: filepath.Base(os.Args[0]),
+ HelpName: filepath.Base(os.Args[0]),
+ Usage: "A new cli application",
+ UsageText: "",
+ Version: "0.0.0",
+ BashComplete: DefaultAppComplete,
+ Action: helpCommand.Action,
+ Compiled: compileTime(),
+ Writer: os.Stdout,
+ }
+}
+
+// Setup runs initialization code to ensure all data structures are ready for
+// `Run` or inspection prior to `Run`. It is internally called by `Run`, but
+// will return early if setup has already happened.
+func (a *App) Setup() {
+ if a.didSetup {
+ return
+ }
+
+ a.didSetup = true
+
+ if a.Author != "" || a.Email != "" {
+ a.Authors = append(a.Authors, Author{Name: a.Author, Email: a.Email})
+ }
+
+ newCmds := []Command{}
+ for _, c := range a.Commands {
+ if c.HelpName == "" {
+ c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name)
+ }
+ newCmds = append(newCmds, c)
+ }
+ a.Commands = newCmds
+
+ if a.Command(helpCommand.Name) == nil && !a.HideHelp {
+ a.Commands = append(a.Commands, helpCommand)
+ if (HelpFlag != BoolFlag{}) {
+ a.appendFlag(HelpFlag)
+ }
+ }
+
+ if a.EnableBashCompletion {
+ a.appendFlag(BashCompletionFlag)
+ }
+
+ if !a.HideVersion {
+ a.appendFlag(VersionFlag)
+ }
+
+ a.categories = CommandCategories{}
+ for _, command := range a.Commands {
+ a.categories = a.categories.AddCommand(command.Category, command)
+ }
+ sort.Sort(a.categories)
+}
+
+// Run is the entry point to the cli app. Parses the arguments slice and routes
+// to the proper flag/args combination
+func (a *App) Run(arguments []string) (err error) {
+ a.Setup()
+
+ // parse flags
+ set := flagSet(a.Name, a.Flags)
+ set.SetOutput(ioutil.Discard)
+ err = set.Parse(arguments[1:])
+ nerr := normalizeFlags(a.Flags, set)
+ context := NewContext(a, set, nil)
+ if nerr != nil {
+ fmt.Fprintln(a.Writer, nerr)
+ ShowAppHelp(context)
+ return nerr
+ }
+
+ if checkCompletions(context) {
+ return nil
+ }
+
+ if err != nil {
+ if a.OnUsageError != nil {
+ err := a.OnUsageError(context, err, false)
+ HandleExitCoder(err)
+ return err
+ }
+ fmt.Fprintf(a.Writer, "%s\n\n", "Incorrect Usage.")
+ ShowAppHelp(context)
+ return err
+ }
+
+ if !a.HideHelp && checkHelp(context) {
+ ShowAppHelp(context)
+ return nil
+ }
+
+ if !a.HideVersion && checkVersion(context) {
+ ShowVersion(context)
+ return nil
+ }
+
+ if a.After != nil {
+ defer func() {
+ if afterErr := a.After(context); afterErr != nil {
+ if err != nil {
+ err = NewMultiError(err, afterErr)
+ } else {
+ err = afterErr
+ }
+ }
+ }()
+ }
+
+ if a.Before != nil {
+ beforeErr := a.Before(context)
+ if beforeErr != nil {
+ fmt.Fprintf(a.Writer, "%v\n\n", beforeErr)
+ ShowAppHelp(context)
+ HandleExitCoder(beforeErr)
+ err = beforeErr
+ return err
+ }
+ }
+
+ args := context.Args()
+ if args.Present() {
+ name := args.First()
+ c := a.Command(name)
+ if c != nil {
+ return c.Run(context)
+ }
+ }
+
+ // Run default Action
+ err = HandleAction(a.Action, context)
+
+ HandleExitCoder(err)
+ return err
+}
+
+// RunAndExitOnError calls .Run() and exits non-zero if an error was returned
+//
+// Deprecated: instead you should return an error that fulfills cli.ExitCoder
+// to cli.App.Run. This will cause the application to exit with the given eror
+// code in the cli.ExitCoder
+func (a *App) RunAndExitOnError() {
+ if err := a.Run(os.Args); err != nil {
+ fmt.Fprintln(a.errWriter(), err)
+ OsExiter(1)
+ }
+}
+
+// RunAsSubcommand invokes the subcommand given the context, parses ctx.Args() to
+// generate command-specific flags
+func (a *App) RunAsSubcommand(ctx *Context) (err error) {
+ // append help to commands
+ if len(a.Commands) > 0 {
+ if a.Command(helpCommand.Name) == nil && !a.HideHelp {
+ a.Commands = append(a.Commands, helpCommand)
+ if (HelpFlag != BoolFlag{}) {
+ a.appendFlag(HelpFlag)
+ }
+ }
+ }
+
+ newCmds := []Command{}
+ for _, c := range a.Commands {
+ if c.HelpName == "" {
+ c.HelpName = fmt.Sprintf("%s %s", a.HelpName, c.Name)
+ }
+ newCmds = append(newCmds, c)
+ }
+ a.Commands = newCmds
+
+ // append flags
+ if a.EnableBashCompletion {
+ a.appendFlag(BashCompletionFlag)
+ }
+
+ // parse flags
+ set := flagSet(a.Name, a.Flags)
+ set.SetOutput(ioutil.Discard)
+ err = set.Parse(ctx.Args().Tail())
+ nerr := normalizeFlags(a.Flags, set)
+ context := NewContext(a, set, ctx)
+
+ if nerr != nil {
+ fmt.Fprintln(a.Writer, nerr)
+ fmt.Fprintln(a.Writer)
+ if len(a.Commands) > 0 {
+ ShowSubcommandHelp(context)
+ } else {
+ ShowCommandHelp(ctx, context.Args().First())
+ }
+ return nerr
+ }
+
+ if checkCompletions(context) {
+ return nil
+ }
+
+ if err != nil {
+ if a.OnUsageError != nil {
+ err = a.OnUsageError(context, err, true)
+ HandleExitCoder(err)
+ return err
+ }
+ fmt.Fprintf(a.Writer, "%s\n\n", "Incorrect Usage.")
+ ShowSubcommandHelp(context)
+ return err
+ }
+
+ if len(a.Commands) > 0 {
+ if checkSubcommandHelp(context) {
+ return nil
+ }
+ } else {
+ if checkCommandHelp(ctx, context.Args().First()) {
+ return nil
+ }
+ }
+
+ if a.After != nil {
+ defer func() {
+ afterErr := a.After(context)
+ if afterErr != nil {
+ HandleExitCoder(err)
+ if err != nil {
+ err = NewMultiError(err, afterErr)
+ } else {
+ err = afterErr
+ }
+ }
+ }()
+ }
+
+ if a.Before != nil {
+ beforeErr := a.Before(context)
+ if beforeErr != nil {
+ HandleExitCoder(beforeErr)
+ err = beforeErr
+ return err
+ }
+ }
+
+ args := context.Args()
+ if args.Present() {
+ name := args.First()
+ c := a.Command(name)
+ if c != nil {
+ return c.Run(context)
+ }
+ }
+
+ // Run default Action
+ err = HandleAction(a.Action, context)
+
+ HandleExitCoder(err)
+ return err
+}
+
+// Command returns the named command on App. Returns nil if the command does not exist
+func (a *App) Command(name string) *Command {
+ for _, c := range a.Commands {
+ if c.HasName(name) {
+ return &c
+ }
+ }
+
+ return nil
+}
+
+// Categories returns a slice containing all the categories with the commands they contain
+func (a *App) Categories() CommandCategories {
+ return a.categories
+}
+
+// VisibleCategories returns a slice of categories and commands that are
+// Hidden=false
+func (a *App) VisibleCategories() []*CommandCategory {
+ ret := []*CommandCategory{}
+ for _, category := range a.categories {
+ if visible := func() *CommandCategory {
+ for _, command := range category.Commands {
+ if !command.Hidden {
+ return category
+ }
+ }
+ return nil
+ }(); visible != nil {
+ ret = append(ret, visible)
+ }
+ }
+ return ret
+}
+
+// VisibleCommands returns a slice of the Commands with Hidden=false
+func (a *App) VisibleCommands() []Command {
+ ret := []Command{}
+ for _, command := range a.Commands {
+ if !command.Hidden {
+ ret = append(ret, command)
+ }
+ }
+ return ret
+}
+
+// VisibleFlags returns a slice of the Flags with Hidden=false
+func (a *App) VisibleFlags() []Flag {
+ return visibleFlags(a.Flags)
+}
+
+func (a *App) hasFlag(flag Flag) bool {
+ for _, f := range a.Flags {
+ if flag == f {
+ return true
+ }
+ }
+
+ return false
+}
+
+func (a *App) errWriter() io.Writer {
+
+ // When the app ErrWriter is nil use the package level one.
+ if a.ErrWriter == nil {
+ return ErrWriter
+ }
+
+ return a.ErrWriter
+}
+
+func (a *App) appendFlag(flag Flag) {
+ if !a.hasFlag(flag) {
+ a.Flags = append(a.Flags, flag)
+ }
+}
+
+// Author represents someone who has contributed to a cli project.
+type Author struct {
+ Name string // The Authors name
+ Email string // The Authors email
+}
+
+// String makes Author comply to the Stringer interface, to allow an easy print in the templating process
+func (a Author) String() string {
+ e := ""
+ if a.Email != "" {
+ e = "<" + a.Email + "> "
+ }
+
+ return fmt.Sprintf("%v %v", a.Name, e)
+}
+
+// HandleAction uses ✧✧✧reflection✧✧✧ to figure out if the given Action is an
+// ActionFunc, a func with the legacy signature for Action, or some other
+// invalid thing. If it's an ActionFunc or a func with the legacy signature for
+// Action, the func is run!
+func HandleAction(action interface{}, context *Context) (err error) {
+ defer func() {
+ if r := recover(); r != nil {
+ // Try to detect a known reflection error from *this scope*, rather than
+ // swallowing all panics that may happen when calling an Action func.
+ s := fmt.Sprintf("%v", r)
+ if strings.HasPrefix(s, "reflect: ") && strings.Contains(s, "too many input arguments") {
+ err = NewExitError(fmt.Sprintf("ERROR unknown Action error: %v. See %s", r, appActionDeprecationURL), 2)
+ } else {
+ panic(r)
+ }
+ }
+ }()
+
+ if reflect.TypeOf(action).Kind() != reflect.Func {
+ return errNonFuncAction
+ }
+
+ vals := reflect.ValueOf(action).Call([]reflect.Value{reflect.ValueOf(context)})
+
+ if len(vals) == 0 {
+ return nil
+ }
+
+ if len(vals) > 1 {
+ return errInvalidActionSignature
+ }
+
+ if retErr, ok := vals[0].Interface().(error); vals[0].IsValid() && ok {
+ return retErr
+ }
+
+ return err
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/appveyor.yml b/vendor/gopkg.in/urfave/cli.v1/appveyor.yml
new file mode 100644
index 000000000..173086e5f
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/appveyor.yml
@@ -0,0 +1,25 @@
+version: "{build}"
+
+os: Windows Server 2012 R2
+
+clone_folder: c:\gopath\src\github.com\urfave\cli
+
+environment:
+ GOPATH: C:\gopath
+ GOVERSION: 1.6
+ PYTHON: C:\Python27-x64
+ PYTHON_VERSION: 2.7.x
+ PYTHON_ARCH: 64
+ GFMXR_DEBUG: 1
+
+install:
+- set PATH=%GOPATH%\bin;C:\go\bin;%PATH%
+- go version
+- go env
+- go get github.com/urfave/gfmxr/...
+- go get -v -t ./...
+
+build_script:
+- python runtests vet
+- python runtests test
+- python runtests gfmxr
diff --git a/vendor/gopkg.in/urfave/cli.v1/category.go b/vendor/gopkg.in/urfave/cli.v1/category.go
new file mode 100644
index 000000000..1a6055023
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/category.go
@@ -0,0 +1,44 @@
+package cli
+
+// CommandCategories is a slice of *CommandCategory.
+type CommandCategories []*CommandCategory
+
+// CommandCategory is a category containing commands.
+type CommandCategory struct {
+ Name string
+ Commands Commands
+}
+
+func (c CommandCategories) Less(i, j int) bool {
+ return c[i].Name < c[j].Name
+}
+
+func (c CommandCategories) Len() int {
+ return len(c)
+}
+
+func (c CommandCategories) Swap(i, j int) {
+ c[i], c[j] = c[j], c[i]
+}
+
+// AddCommand adds a command to a category.
+func (c CommandCategories) AddCommand(category string, command Command) CommandCategories {
+ for _, commandCategory := range c {
+ if commandCategory.Name == category {
+ commandCategory.Commands = append(commandCategory.Commands, command)
+ return c
+ }
+ }
+ return append(c, &CommandCategory{Name: category, Commands: []Command{command}})
+}
+
+// VisibleCommands returns a slice of the Commands with Hidden=false
+func (c *CommandCategory) VisibleCommands() []Command {
+ ret := []Command{}
+ for _, command := range c.Commands {
+ if !command.Hidden {
+ ret = append(ret, command)
+ }
+ }
+ return ret
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/cli.go b/vendor/gopkg.in/urfave/cli.v1/cli.go
new file mode 100644
index 000000000..f0440c563
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/cli.go
@@ -0,0 +1,19 @@
+// Package cli provides a minimal framework for creating and organizing command line
+// Go applications. cli is designed to be easy to understand and write, the most simple
+// cli application can be written as follows:
+// func main() {
+// cli.NewApp().Run(os.Args)
+// }
+//
+// Of course this application does not do much, so let's make this an actual application:
+// func main() {
+// app := cli.NewApp()
+// app.Name = "greet"
+// app.Usage = "say a greeting"
+// app.Action = func(c *cli.Context) error {
+// println("Greetings")
+// }
+//
+// app.Run(os.Args)
+// }
+package cli
diff --git a/vendor/gopkg.in/urfave/cli.v1/command.go b/vendor/gopkg.in/urfave/cli.v1/command.go
new file mode 100644
index 000000000..8950ccae4
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/command.go
@@ -0,0 +1,279 @@
+package cli
+
+import (
+ "fmt"
+ "io/ioutil"
+ "sort"
+ "strings"
+)
+
+// Command is a subcommand for a cli.App.
+type Command struct {
+ // The name of the command
+ Name string
+ // short name of the command. Typically one character (deprecated, use `Aliases`)
+ ShortName string
+ // A list of aliases for the command
+ Aliases []string
+ // A short description of the usage of this command
+ Usage string
+ // Custom text to show on USAGE section of help
+ UsageText string
+ // A longer explanation of how the command works
+ Description string
+ // A short description of the arguments of this command
+ ArgsUsage string
+ // The category the command is part of
+ Category string
+ // The function to call when checking for bash command completions
+ BashComplete BashCompleteFunc
+ // An action to execute before any sub-subcommands are run, but after the context is ready
+ // If a non-nil error is returned, no sub-subcommands are run
+ Before BeforeFunc
+ // An action to execute after any subcommands are run, but after the subcommand has finished
+ // It is run even if Action() panics
+ After AfterFunc
+ // The function to call when this command is invoked
+ Action interface{}
+ // TODO: replace `Action: interface{}` with `Action: ActionFunc` once some kind
+ // of deprecation period has passed, maybe?
+
+ // Execute this function if a usage error occurs.
+ OnUsageError OnUsageErrorFunc
+ // List of child commands
+ Subcommands Commands
+ // List of flags to parse
+ Flags []Flag
+ // Treat all flags as normal arguments if true
+ SkipFlagParsing bool
+ // Boolean to hide built-in help command
+ HideHelp bool
+ // Boolean to hide this command from help or completion
+ Hidden bool
+
+ // Full name of command for help, defaults to full command name, including parent commands.
+ HelpName string
+ commandNamePath []string
+}
+
+// FullName returns the full name of the command.
+// For subcommands this ensures that parent commands are part of the command path
+func (c Command) FullName() string {
+ if c.commandNamePath == nil {
+ return c.Name
+ }
+ return strings.Join(c.commandNamePath, " ")
+}
+
+// Commands is a slice of Command
+type Commands []Command
+
+// Run invokes the command given the context, parses ctx.Args() to generate command-specific flags
+func (c Command) Run(ctx *Context) (err error) {
+ if len(c.Subcommands) > 0 {
+ return c.startApp(ctx)
+ }
+
+ if !c.HideHelp && (HelpFlag != BoolFlag{}) {
+ // append help to flags
+ c.Flags = append(
+ c.Flags,
+ HelpFlag,
+ )
+ }
+
+ if ctx.App.EnableBashCompletion {
+ c.Flags = append(c.Flags, BashCompletionFlag)
+ }
+
+ set := flagSet(c.Name, c.Flags)
+ set.SetOutput(ioutil.Discard)
+
+ if !c.SkipFlagParsing {
+ firstFlagIndex := -1
+ terminatorIndex := -1
+ for index, arg := range ctx.Args() {
+ if arg == "--" {
+ terminatorIndex = index
+ break
+ } else if arg == "-" {
+ // Do nothing. A dash alone is not really a flag.
+ continue
+ } else if strings.HasPrefix(arg, "-") && firstFlagIndex == -1 {
+ firstFlagIndex = index
+ }
+ }
+
+ if firstFlagIndex > -1 {
+ args := ctx.Args()
+ regularArgs := make([]string, len(args[1:firstFlagIndex]))
+ copy(regularArgs, args[1:firstFlagIndex])
+
+ var flagArgs []string
+ if terminatorIndex > -1 {
+ flagArgs = args[firstFlagIndex:terminatorIndex]
+ regularArgs = append(regularArgs, args[terminatorIndex:]...)
+ } else {
+ flagArgs = args[firstFlagIndex:]
+ }
+
+ err = set.Parse(append(flagArgs, regularArgs...))
+ } else {
+ err = set.Parse(ctx.Args().Tail())
+ }
+ } else {
+ if c.SkipFlagParsing {
+ err = set.Parse(append([]string{"--"}, ctx.Args().Tail()...))
+ }
+ }
+
+ if err != nil {
+ if c.OnUsageError != nil {
+ err := c.OnUsageError(ctx, err, false)
+ HandleExitCoder(err)
+ return err
+ }
+ fmt.Fprintln(ctx.App.Writer, "Incorrect Usage.")
+ fmt.Fprintln(ctx.App.Writer)
+ ShowCommandHelp(ctx, c.Name)
+ return err
+ }
+
+ nerr := normalizeFlags(c.Flags, set)
+ if nerr != nil {
+ fmt.Fprintln(ctx.App.Writer, nerr)
+ fmt.Fprintln(ctx.App.Writer)
+ ShowCommandHelp(ctx, c.Name)
+ return nerr
+ }
+
+ context := NewContext(ctx.App, set, ctx)
+
+ if checkCommandCompletions(context, c.Name) {
+ return nil
+ }
+
+ if checkCommandHelp(context, c.Name) {
+ return nil
+ }
+
+ if c.After != nil {
+ defer func() {
+ afterErr := c.After(context)
+ if afterErr != nil {
+ HandleExitCoder(err)
+ if err != nil {
+ err = NewMultiError(err, afterErr)
+ } else {
+ err = afterErr
+ }
+ }
+ }()
+ }
+
+ if c.Before != nil {
+ err = c.Before(context)
+ if err != nil {
+ fmt.Fprintln(ctx.App.Writer, err)
+ fmt.Fprintln(ctx.App.Writer)
+ ShowCommandHelp(ctx, c.Name)
+ HandleExitCoder(err)
+ return err
+ }
+ }
+
+ context.Command = c
+ err = HandleAction(c.Action, context)
+
+ if err != nil {
+ HandleExitCoder(err)
+ }
+ return err
+}
+
+// Names returns the names including short names and aliases.
+func (c Command) Names() []string {
+ names := []string{c.Name}
+
+ if c.ShortName != "" {
+ names = append(names, c.ShortName)
+ }
+
+ return append(names, c.Aliases...)
+}
+
+// HasName returns true if Command.Name or Command.ShortName matches given name
+func (c Command) HasName(name string) bool {
+ for _, n := range c.Names() {
+ if n == name {
+ return true
+ }
+ }
+ return false
+}
+
+func (c Command) startApp(ctx *Context) error {
+ app := NewApp()
+ app.Metadata = ctx.App.Metadata
+ // set the name and usage
+ app.Name = fmt.Sprintf("%s %s", ctx.App.Name, c.Name)
+ if c.HelpName == "" {
+ app.HelpName = c.HelpName
+ } else {
+ app.HelpName = app.Name
+ }
+
+ if c.Description != "" {
+ app.Usage = c.Description
+ } else {
+ app.Usage = c.Usage
+ }
+
+ // set CommandNotFound
+ app.CommandNotFound = ctx.App.CommandNotFound
+
+ // set the flags and commands
+ app.Commands = c.Subcommands
+ app.Flags = c.Flags
+ app.HideHelp = c.HideHelp
+
+ app.Version = ctx.App.Version
+ app.HideVersion = ctx.App.HideVersion
+ app.Compiled = ctx.App.Compiled
+ app.Author = ctx.App.Author
+ app.Email = ctx.App.Email
+ app.Writer = ctx.App.Writer
+
+ app.categories = CommandCategories{}
+ for _, command := range c.Subcommands {
+ app.categories = app.categories.AddCommand(command.Category, command)
+ }
+
+ sort.Sort(app.categories)
+
+ // bash completion
+ app.EnableBashCompletion = ctx.App.EnableBashCompletion
+ if c.BashComplete != nil {
+ app.BashComplete = c.BashComplete
+ }
+
+ // set the actions
+ app.Before = c.Before
+ app.After = c.After
+ if c.Action != nil {
+ app.Action = c.Action
+ } else {
+ app.Action = helpSubcommand.Action
+ }
+
+ for index, cc := range app.Commands {
+ app.Commands[index].commandNamePath = []string{c.Name, cc.Name}
+ }
+
+ return app.RunAsSubcommand(ctx)
+}
+
+// VisibleFlags returns a slice of the Flags with Hidden=false
+func (c Command) VisibleFlags() []Flag {
+ return visibleFlags(c.Flags)
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/context.go b/vendor/gopkg.in/urfave/cli.v1/context.go
new file mode 100644
index 000000000..879bae5ec
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/context.go
@@ -0,0 +1,549 @@
+package cli
+
+import (
+ "errors"
+ "flag"
+ "strconv"
+ "strings"
+ "time"
+)
+
+// Context is a type that is passed through to
+// each Handler action in a cli application. Context
+// can be used to retrieve context-specific Args and
+// parsed command-line options.
+type Context struct {
+ App *App
+ Command Command
+ flagSet *flag.FlagSet
+ setFlags map[string]bool
+ globalSetFlags map[string]bool
+ parentContext *Context
+}
+
+// NewContext creates a new context. For use in when invoking an App or Command action.
+func NewContext(app *App, set *flag.FlagSet, parentCtx *Context) *Context {
+ return &Context{App: app, flagSet: set, parentContext: parentCtx}
+}
+
+// Int looks up the value of a local int flag, returns 0 if no int flag exists
+func (c *Context) Int(name string) int {
+ return lookupInt(name, c.flagSet)
+}
+
+// Int64 looks up the value of a local int flag, returns 0 if no int flag exists
+func (c *Context) Int64(name string) int64 {
+ return lookupInt64(name, c.flagSet)
+}
+
+// Uint looks up the value of a local int flag, returns 0 if no int flag exists
+func (c *Context) Uint(name string) uint {
+ return lookupUint(name, c.flagSet)
+}
+
+// Uint64 looks up the value of a local int flag, returns 0 if no int flag exists
+func (c *Context) Uint64(name string) uint64 {
+ return lookupUint64(name, c.flagSet)
+}
+
+// Duration looks up the value of a local time.Duration flag, returns 0 if no
+// time.Duration flag exists
+func (c *Context) Duration(name string) time.Duration {
+ return lookupDuration(name, c.flagSet)
+}
+
+// Float64 looks up the value of a local float64 flag, returns 0 if no float64
+// flag exists
+func (c *Context) Float64(name string) float64 {
+ return lookupFloat64(name, c.flagSet)
+}
+
+// Bool looks up the value of a local bool flag, returns false if no bool flag exists
+func (c *Context) Bool(name string) bool {
+ return lookupBool(name, c.flagSet)
+}
+
+// BoolT looks up the value of a local boolT flag, returns false if no bool flag exists
+func (c *Context) BoolT(name string) bool {
+ return lookupBoolT(name, c.flagSet)
+}
+
+// String looks up the value of a local string flag, returns "" if no string flag exists
+func (c *Context) String(name string) string {
+ return lookupString(name, c.flagSet)
+}
+
+// StringSlice looks up the value of a local string slice flag, returns nil if no
+// string slice flag exists
+func (c *Context) StringSlice(name string) []string {
+ return lookupStringSlice(name, c.flagSet)
+}
+
+// IntSlice looks up the value of a local int slice flag, returns nil if no int
+// slice flag exists
+func (c *Context) IntSlice(name string) []int {
+ return lookupIntSlice(name, c.flagSet)
+}
+
+// Int64Slice looks up the value of a local int slice flag, returns nil if no int
+// slice flag exists
+func (c *Context) Int64Slice(name string) []int64 {
+ return lookupInt64Slice(name, c.flagSet)
+}
+
+// Generic looks up the value of a local generic flag, returns nil if no generic
+// flag exists
+func (c *Context) Generic(name string) interface{} {
+ return lookupGeneric(name, c.flagSet)
+}
+
+// GlobalInt looks up the value of a global int flag, returns 0 if no int flag exists
+func (c *Context) GlobalInt(name string) int {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupInt(name, fs)
+ }
+ return 0
+}
+
+// GlobalInt64 looks up the value of a global int flag, returns 0 if no int flag exists
+func (c *Context) GlobalInt64(name string) int64 {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupInt64(name, fs)
+ }
+ return 0
+}
+
+// GlobalUint looks up the value of a global int flag, returns 0 if no int flag exists
+func (c *Context) GlobalUint(name string) uint {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupUint(name, fs)
+ }
+ return 0
+}
+
+// GlobalUint64 looks up the value of a global int flag, returns 0 if no int flag exists
+func (c *Context) GlobalUint64(name string) uint64 {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupUint64(name, fs)
+ }
+ return 0
+}
+
+// GlobalFloat64 looks up the value of a global float64 flag, returns float64(0)
+// if no float64 flag exists
+func (c *Context) GlobalFloat64(name string) float64 {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupFloat64(name, fs)
+ }
+ return float64(0)
+}
+
+// GlobalDuration looks up the value of a global time.Duration flag, returns 0
+// if no time.Duration flag exists
+func (c *Context) GlobalDuration(name string) time.Duration {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupDuration(name, fs)
+ }
+ return 0
+}
+
+// GlobalBool looks up the value of a global bool flag, returns false if no bool
+// flag exists
+func (c *Context) GlobalBool(name string) bool {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupBool(name, fs)
+ }
+ return false
+}
+
+// GlobalBoolT looks up the value of a global bool flag, returns true if no bool
+// flag exists
+func (c *Context) GlobalBoolT(name string) bool {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupBoolT(name, fs)
+ }
+ return false
+}
+
+// GlobalString looks up the value of a global string flag, returns "" if no
+// string flag exists
+func (c *Context) GlobalString(name string) string {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupString(name, fs)
+ }
+ return ""
+}
+
+// GlobalStringSlice looks up the value of a global string slice flag, returns
+// nil if no string slice flag exists
+func (c *Context) GlobalStringSlice(name string) []string {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupStringSlice(name, fs)
+ }
+ return nil
+}
+
+// GlobalIntSlice looks up the value of a global int slice flag, returns nil if
+// no int slice flag exists
+func (c *Context) GlobalIntSlice(name string) []int {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupIntSlice(name, fs)
+ }
+ return nil
+}
+
+// GlobalInt64Slice looks up the value of a global int slice flag, returns nil if
+// no int slice flag exists
+func (c *Context) GlobalInt64Slice(name string) []int64 {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupInt64Slice(name, fs)
+ }
+ return nil
+}
+
+// GlobalGeneric looks up the value of a global generic flag, returns nil if no
+// generic flag exists
+func (c *Context) GlobalGeneric(name string) interface{} {
+ if fs := lookupGlobalFlagSet(name, c); fs != nil {
+ return lookupGeneric(name, fs)
+ }
+ return nil
+}
+
+// NumFlags returns the number of flags set
+func (c *Context) NumFlags() int {
+ return c.flagSet.NFlag()
+}
+
+// Set sets a context flag to a value.
+func (c *Context) Set(name, value string) error {
+ return c.flagSet.Set(name, value)
+}
+
+// GlobalSet sets a context flag to a value on the global flagset
+func (c *Context) GlobalSet(name, value string) error {
+ return globalContext(c).flagSet.Set(name, value)
+}
+
+// IsSet determines if the flag was actually set
+func (c *Context) IsSet(name string) bool {
+ if c.setFlags == nil {
+ c.setFlags = make(map[string]bool)
+ c.flagSet.Visit(func(f *flag.Flag) {
+ c.setFlags[f.Name] = true
+ })
+ }
+ return c.setFlags[name] == true
+}
+
+// GlobalIsSet determines if the global flag was actually set
+func (c *Context) GlobalIsSet(name string) bool {
+ if c.globalSetFlags == nil {
+ c.globalSetFlags = make(map[string]bool)
+ ctx := c
+ if ctx.parentContext != nil {
+ ctx = ctx.parentContext
+ }
+ for ; ctx != nil && c.globalSetFlags[name] == false; ctx = ctx.parentContext {
+ ctx.flagSet.Visit(func(f *flag.Flag) {
+ c.globalSetFlags[f.Name] = true
+ })
+ }
+ }
+ return c.globalSetFlags[name]
+}
+
+// FlagNames returns a slice of flag names used in this context.
+func (c *Context) FlagNames() (names []string) {
+ for _, flag := range c.Command.Flags {
+ name := strings.Split(flag.GetName(), ",")[0]
+ if name == "help" {
+ continue
+ }
+ names = append(names, name)
+ }
+ return
+}
+
+// GlobalFlagNames returns a slice of global flag names used by the app.
+func (c *Context) GlobalFlagNames() (names []string) {
+ for _, flag := range c.App.Flags {
+ name := strings.Split(flag.GetName(), ",")[0]
+ if name == "help" || name == "version" {
+ continue
+ }
+ names = append(names, name)
+ }
+ return
+}
+
+// Parent returns the parent context, if any
+func (c *Context) Parent() *Context {
+ return c.parentContext
+}
+
+// Args contains apps console arguments
+type Args []string
+
+// Args returns the command line arguments associated with the context.
+func (c *Context) Args() Args {
+ args := Args(c.flagSet.Args())
+ return args
+}
+
+// NArg returns the number of the command line arguments.
+func (c *Context) NArg() int {
+ return len(c.Args())
+}
+
+// Get returns the nth argument, or else a blank string
+func (a Args) Get(n int) string {
+ if len(a) > n {
+ return a[n]
+ }
+ return ""
+}
+
+// First returns the first argument, or else a blank string
+func (a Args) First() string {
+ return a.Get(0)
+}
+
+// Tail returns the rest of the arguments (not the first one)
+// or else an empty string slice
+func (a Args) Tail() []string {
+ if len(a) >= 2 {
+ return []string(a)[1:]
+ }
+ return []string{}
+}
+
+// Present checks if there are any arguments present
+func (a Args) Present() bool {
+ return len(a) != 0
+}
+
+// Swap swaps arguments at the given indexes
+func (a Args) Swap(from, to int) error {
+ if from >= len(a) || to >= len(a) {
+ return errors.New("index out of range")
+ }
+ a[from], a[to] = a[to], a[from]
+ return nil
+}
+
+func globalContext(ctx *Context) *Context {
+ if ctx == nil {
+ return nil
+ }
+
+ for {
+ if ctx.parentContext == nil {
+ return ctx
+ }
+ ctx = ctx.parentContext
+ }
+}
+
+func lookupGlobalFlagSet(name string, ctx *Context) *flag.FlagSet {
+ if ctx.parentContext != nil {
+ ctx = ctx.parentContext
+ }
+ for ; ctx != nil; ctx = ctx.parentContext {
+ if f := ctx.flagSet.Lookup(name); f != nil {
+ return ctx.flagSet
+ }
+ }
+ return nil
+}
+
+func lookupInt(name string, set *flag.FlagSet) int {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseInt(f.Value.String(), 0, 64)
+ if err != nil {
+ return 0
+ }
+ return int(val)
+ }
+
+ return 0
+}
+
+func lookupInt64(name string, set *flag.FlagSet) int64 {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseInt(f.Value.String(), 0, 64)
+ if err != nil {
+ return 0
+ }
+ return val
+ }
+
+ return 0
+}
+
+func lookupUint(name string, set *flag.FlagSet) uint {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseUint(f.Value.String(), 0, 64)
+ if err != nil {
+ return 0
+ }
+ return uint(val)
+ }
+
+ return 0
+}
+
+func lookupUint64(name string, set *flag.FlagSet) uint64 {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseUint(f.Value.String(), 0, 64)
+ if err != nil {
+ return 0
+ }
+ return val
+ }
+
+ return 0
+}
+
+func lookupDuration(name string, set *flag.FlagSet) time.Duration {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := time.ParseDuration(f.Value.String())
+ if err == nil {
+ return val
+ }
+ }
+
+ return 0
+}
+
+func lookupFloat64(name string, set *flag.FlagSet) float64 {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseFloat(f.Value.String(), 64)
+ if err != nil {
+ return 0
+ }
+ return val
+ }
+
+ return 0
+}
+
+func lookupString(name string, set *flag.FlagSet) string {
+ f := set.Lookup(name)
+ if f != nil {
+ return f.Value.String()
+ }
+
+ return ""
+}
+
+func lookupStringSlice(name string, set *flag.FlagSet) []string {
+ f := set.Lookup(name)
+ if f != nil {
+ return (f.Value.(*StringSlice)).Value()
+
+ }
+
+ return nil
+}
+
+func lookupIntSlice(name string, set *flag.FlagSet) []int {
+ f := set.Lookup(name)
+ if f != nil {
+ return (f.Value.(*IntSlice)).Value()
+
+ }
+
+ return nil
+}
+
+func lookupInt64Slice(name string, set *flag.FlagSet) []int64 {
+ f := set.Lookup(name)
+ if f != nil {
+ return (f.Value.(*Int64Slice)).Value()
+
+ }
+
+ return nil
+}
+
+func lookupGeneric(name string, set *flag.FlagSet) interface{} {
+ f := set.Lookup(name)
+ if f != nil {
+ return f.Value
+ }
+ return nil
+}
+
+func lookupBool(name string, set *flag.FlagSet) bool {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseBool(f.Value.String())
+ if err != nil {
+ return false
+ }
+ return val
+ }
+
+ return false
+}
+
+func lookupBoolT(name string, set *flag.FlagSet) bool {
+ f := set.Lookup(name)
+ if f != nil {
+ val, err := strconv.ParseBool(f.Value.String())
+ if err != nil {
+ return true
+ }
+ return val
+ }
+
+ return false
+}
+
+func copyFlag(name string, ff *flag.Flag, set *flag.FlagSet) {
+ switch ff.Value.(type) {
+ case *StringSlice:
+ default:
+ set.Set(name, ff.Value.String())
+ }
+}
+
+func normalizeFlags(flags []Flag, set *flag.FlagSet) error {
+ visited := make(map[string]bool)
+ set.Visit(func(f *flag.Flag) {
+ visited[f.Name] = true
+ })
+ for _, f := range flags {
+ parts := strings.Split(f.GetName(), ",")
+ if len(parts) == 1 {
+ continue
+ }
+ var ff *flag.Flag
+ for _, name := range parts {
+ name = strings.Trim(name, " ")
+ if visited[name] {
+ if ff != nil {
+ return errors.New("Cannot use two forms of the same flag: " + name + " " + ff.Name)
+ }
+ ff = set.Lookup(name)
+ }
+ }
+ if ff == nil {
+ continue
+ }
+ for _, name := range parts {
+ name = strings.Trim(name, " ")
+ if !visited[name] {
+ copyFlag(name, ff, set)
+ }
+ }
+ }
+ return nil
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/errors.go b/vendor/gopkg.in/urfave/cli.v1/errors.go
new file mode 100644
index 000000000..ea551be16
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/errors.go
@@ -0,0 +1,92 @@
+package cli
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "strings"
+)
+
+// OsExiter is the function used when the app exits. If not set defaults to os.Exit.
+var OsExiter = os.Exit
+
+// ErrWriter is used to write errors to the user. This can be anything
+// implementing the io.Writer interface and defaults to os.Stderr.
+var ErrWriter io.Writer = os.Stderr
+
+// MultiError is an error that wraps multiple errors.
+type MultiError struct {
+ Errors []error
+}
+
+// NewMultiError creates a new MultiError. Pass in one or more errors.
+func NewMultiError(err ...error) MultiError {
+ return MultiError{Errors: err}
+}
+
+// Error implents the error interface.
+func (m MultiError) Error() string {
+ errs := make([]string, len(m.Errors))
+ for i, err := range m.Errors {
+ errs[i] = err.Error()
+ }
+
+ return strings.Join(errs, "\n")
+}
+
+// ExitCoder is the interface checked by `App` and `Command` for a custom exit
+// code
+type ExitCoder interface {
+ error
+ ExitCode() int
+}
+
+// ExitError fulfills both the builtin `error` interface and `ExitCoder`
+type ExitError struct {
+ exitCode int
+ message string
+}
+
+// NewExitError makes a new *ExitError
+func NewExitError(message string, exitCode int) *ExitError {
+ return &ExitError{
+ exitCode: exitCode,
+ message: message,
+ }
+}
+
+// Error returns the string message, fulfilling the interface required by
+// `error`
+func (ee *ExitError) Error() string {
+ return ee.message
+}
+
+// ExitCode returns the exit code, fulfilling the interface required by
+// `ExitCoder`
+func (ee *ExitError) ExitCode() int {
+ return ee.exitCode
+}
+
+// HandleExitCoder checks if the error fulfills the ExitCoder interface, and if
+// so prints the error to stderr (if it is non-empty) and calls OsExiter with the
+// given exit code. If the given error is a MultiError, then this func is
+// called on all members of the Errors slice.
+func HandleExitCoder(err error) {
+ if err == nil {
+ return
+ }
+
+ if exitErr, ok := err.(ExitCoder); ok {
+ if err.Error() != "" {
+ fmt.Fprintln(ErrWriter, err)
+ }
+ OsExiter(exitErr.ExitCode())
+ return
+ }
+
+ if multiErr, ok := err.(MultiError); ok {
+ for _, merr := range multiErr.Errors {
+ HandleExitCoder(merr)
+ }
+ }
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/flag.go b/vendor/gopkg.in/urfave/cli.v1/flag.go
new file mode 100644
index 000000000..f8a28d119
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/flag.go
@@ -0,0 +1,882 @@
+package cli
+
+import (
+ "flag"
+ "fmt"
+ "os"
+ "reflect"
+ "runtime"
+ "strconv"
+ "strings"
+ "time"
+)
+
+const defaultPlaceholder = "value"
+
+// BashCompletionFlag enables bash-completion for all commands and subcommands
+var BashCompletionFlag = BoolFlag{
+ Name: "generate-bash-completion",
+ Hidden: true,
+}
+
+// VersionFlag prints the version for the application
+var VersionFlag = BoolFlag{
+ Name: "version, v",
+ Usage: "print the version",
+}
+
+// HelpFlag prints the help for all commands and subcommands
+// Set to the zero value (BoolFlag{}) to disable flag -- keeps subcommand
+// unless HideHelp is set to true)
+var HelpFlag = BoolFlag{
+ Name: "help, h",
+ Usage: "show help",
+}
+
+// FlagStringer converts a flag definition to a string. This is used by help
+// to display a flag.
+var FlagStringer FlagStringFunc = stringifyFlag
+
+// Flag is a common interface related to parsing flags in cli.
+// For more advanced flag parsing techniques, it is recommended that
+// this interface be implemented.
+type Flag interface {
+ fmt.Stringer
+ // Apply Flag settings to the given flag set
+ Apply(*flag.FlagSet)
+ GetName() string
+}
+
+func flagSet(name string, flags []Flag) *flag.FlagSet {
+ set := flag.NewFlagSet(name, flag.ContinueOnError)
+
+ for _, f := range flags {
+ f.Apply(set)
+ }
+ return set
+}
+
+func eachName(longName string, fn func(string)) {
+ parts := strings.Split(longName, ",")
+ for _, name := range parts {
+ name = strings.Trim(name, " ")
+ fn(name)
+ }
+}
+
+// Generic is a generic parseable type identified by a specific flag
+type Generic interface {
+ Set(value string) error
+ String() string
+}
+
+// GenericFlag is the flag type for types implementing Generic
+type GenericFlag struct {
+ Name string
+ Value Generic
+ Usage string
+ EnvVar string
+ Hidden bool
+}
+
+// String returns the string representation of the generic flag to display the
+// help text to the user (uses the String() method of the generic flag to show
+// the value)
+func (f GenericFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply takes the flagset and calls Set on the generic flag with the value
+// provided by the user for parsing by the flag
+func (f GenericFlag) Apply(set *flag.FlagSet) {
+ val := f.Value
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ val.Set(envVal)
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ set.Var(f.Value, name, f.Usage)
+ })
+}
+
+// GetName returns the name of a flag.
+func (f GenericFlag) GetName() string {
+ return f.Name
+}
+
+// StringSlice is an opaque type for []string to satisfy flag.Value
+type StringSlice []string
+
+// Set appends the string value to the list of values
+func (f *StringSlice) Set(value string) error {
+ *f = append(*f, value)
+ return nil
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f *StringSlice) String() string {
+ return fmt.Sprintf("%s", *f)
+}
+
+// Value returns the slice of strings set by this flag
+func (f *StringSlice) Value() []string {
+ return *f
+}
+
+// StringSliceFlag is a string flag that can be specified multiple times on the
+// command-line
+type StringSliceFlag struct {
+ Name string
+ Value *StringSlice
+ Usage string
+ EnvVar string
+ Hidden bool
+}
+
+// String returns the usage
+func (f StringSliceFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f StringSliceFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ newVal := &StringSlice{}
+ for _, s := range strings.Split(envVal, ",") {
+ s = strings.TrimSpace(s)
+ newVal.Set(s)
+ }
+ f.Value = newVal
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Value == nil {
+ f.Value = &StringSlice{}
+ }
+ set.Var(f.Value, name, f.Usage)
+ })
+}
+
+// GetName returns the name of a flag.
+func (f StringSliceFlag) GetName() string {
+ return f.Name
+}
+
+// IntSlice is an opaque type for []int to satisfy flag.Value
+type IntSlice []int
+
+// Set parses the value into an integer and appends it to the list of values
+func (f *IntSlice) Set(value string) error {
+ tmp, err := strconv.Atoi(value)
+ if err != nil {
+ return err
+ }
+ *f = append(*f, tmp)
+ return nil
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f *IntSlice) String() string {
+ return fmt.Sprintf("%#v", *f)
+}
+
+// Value returns the slice of ints set by this flag
+func (f *IntSlice) Value() []int {
+ return *f
+}
+
+// IntSliceFlag is an int flag that can be specified multiple times on the
+// command-line
+type IntSliceFlag struct {
+ Name string
+ Value *IntSlice
+ Usage string
+ EnvVar string
+ Hidden bool
+}
+
+// String returns the usage
+func (f IntSliceFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f IntSliceFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ newVal := &IntSlice{}
+ for _, s := range strings.Split(envVal, ",") {
+ s = strings.TrimSpace(s)
+ err := newVal.Set(s)
+ if err != nil {
+ fmt.Fprintf(ErrWriter, err.Error())
+ }
+ }
+ f.Value = newVal
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Value == nil {
+ f.Value = &IntSlice{}
+ }
+ set.Var(f.Value, name, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f IntSliceFlag) GetName() string {
+ return f.Name
+}
+
+// Int64Slice is an opaque type for []int to satisfy flag.Value
+type Int64Slice []int64
+
+// Set parses the value into an integer and appends it to the list of values
+func (f *Int64Slice) Set(value string) error {
+ tmp, err := strconv.ParseInt(value, 10, 64)
+ if err != nil {
+ return err
+ }
+ *f = append(*f, tmp)
+ return nil
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f *Int64Slice) String() string {
+ return fmt.Sprintf("%#v", *f)
+}
+
+// Value returns the slice of ints set by this flag
+func (f *Int64Slice) Value() []int64 {
+ return *f
+}
+
+// Int64SliceFlag is an int flag that can be specified multiple times on the
+// command-line
+type Int64SliceFlag struct {
+ Name string
+ Value *Int64Slice
+ Usage string
+ EnvVar string
+ Hidden bool
+}
+
+// String returns the usage
+func (f Int64SliceFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f Int64SliceFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ newVal := &Int64Slice{}
+ for _, s := range strings.Split(envVal, ",") {
+ s = strings.TrimSpace(s)
+ err := newVal.Set(s)
+ if err != nil {
+ fmt.Fprintf(ErrWriter, err.Error())
+ }
+ }
+ f.Value = newVal
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Value == nil {
+ f.Value = &Int64Slice{}
+ }
+ set.Var(f.Value, name, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f Int64SliceFlag) GetName() string {
+ return f.Name
+}
+
+// BoolFlag is a switch that defaults to false
+type BoolFlag struct {
+ Name string
+ Usage string
+ EnvVar string
+ Destination *bool
+ Hidden bool
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f BoolFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f BoolFlag) Apply(set *flag.FlagSet) {
+ val := false
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValBool, err := strconv.ParseBool(envVal)
+ if err == nil {
+ val = envValBool
+ }
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.BoolVar(f.Destination, name, val, f.Usage)
+ return
+ }
+ set.Bool(name, val, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f BoolFlag) GetName() string {
+ return f.Name
+}
+
+// BoolTFlag this represents a boolean flag that is true by default, but can
+// still be set to false by --some-flag=false
+type BoolTFlag struct {
+ Name string
+ Usage string
+ EnvVar string
+ Destination *bool
+ Hidden bool
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f BoolTFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f BoolTFlag) Apply(set *flag.FlagSet) {
+ val := true
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValBool, err := strconv.ParseBool(envVal)
+ if err == nil {
+ val = envValBool
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.BoolVar(f.Destination, name, val, f.Usage)
+ return
+ }
+ set.Bool(name, val, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f BoolTFlag) GetName() string {
+ return f.Name
+}
+
+// StringFlag represents a flag that takes as string value
+type StringFlag struct {
+ Name string
+ Value string
+ Usage string
+ EnvVar string
+ Destination *string
+ Hidden bool
+}
+
+// String returns the usage
+func (f StringFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f StringFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ f.Value = envVal
+ break
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.StringVar(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.String(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f StringFlag) GetName() string {
+ return f.Name
+}
+
+// IntFlag is a flag that takes an integer
+type IntFlag struct {
+ Name string
+ Value int
+ Usage string
+ EnvVar string
+ Destination *int
+ Hidden bool
+}
+
+// String returns the usage
+func (f IntFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f IntFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValInt, err := strconv.ParseInt(envVal, 0, 64)
+ if err == nil {
+ f.Value = int(envValInt)
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.IntVar(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Int(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f IntFlag) GetName() string {
+ return f.Name
+}
+
+// Int64Flag is a flag that takes a 64-bit integer
+type Int64Flag struct {
+ Name string
+ Value int64
+ Usage string
+ EnvVar string
+ Destination *int64
+ Hidden bool
+}
+
+// String returns the usage
+func (f Int64Flag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f Int64Flag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValInt, err := strconv.ParseInt(envVal, 0, 64)
+ if err == nil {
+ f.Value = envValInt
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.Int64Var(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Int64(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f Int64Flag) GetName() string {
+ return f.Name
+}
+
+// UintFlag is a flag that takes an unsigned integer
+type UintFlag struct {
+ Name string
+ Value uint
+ Usage string
+ EnvVar string
+ Destination *uint
+ Hidden bool
+}
+
+// String returns the usage
+func (f UintFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f UintFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValInt, err := strconv.ParseUint(envVal, 0, 64)
+ if err == nil {
+ f.Value = uint(envValInt)
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.UintVar(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Uint(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f UintFlag) GetName() string {
+ return f.Name
+}
+
+// Uint64Flag is a flag that takes an unsigned 64-bit integer
+type Uint64Flag struct {
+ Name string
+ Value uint64
+ Usage string
+ EnvVar string
+ Destination *uint64
+ Hidden bool
+}
+
+// String returns the usage
+func (f Uint64Flag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f Uint64Flag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValInt, err := strconv.ParseUint(envVal, 0, 64)
+ if err == nil {
+ f.Value = uint64(envValInt)
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.Uint64Var(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Uint64(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f Uint64Flag) GetName() string {
+ return f.Name
+}
+
+// DurationFlag is a flag that takes a duration specified in Go's duration
+// format: https://golang.org/pkg/time/#ParseDuration
+type DurationFlag struct {
+ Name string
+ Value time.Duration
+ Usage string
+ EnvVar string
+ Destination *time.Duration
+ Hidden bool
+}
+
+// String returns a readable representation of this value (for usage defaults)
+func (f DurationFlag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f DurationFlag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValDuration, err := time.ParseDuration(envVal)
+ if err == nil {
+ f.Value = envValDuration
+ break
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.DurationVar(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Duration(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f DurationFlag) GetName() string {
+ return f.Name
+}
+
+// Float64Flag is a flag that takes an float value
+type Float64Flag struct {
+ Name string
+ Value float64
+ Usage string
+ EnvVar string
+ Destination *float64
+ Hidden bool
+}
+
+// String returns the usage
+func (f Float64Flag) String() string {
+ return FlagStringer(f)
+}
+
+// Apply populates the flag given the flag set and environment
+func (f Float64Flag) Apply(set *flag.FlagSet) {
+ if f.EnvVar != "" {
+ for _, envVar := range strings.Split(f.EnvVar, ",") {
+ envVar = strings.TrimSpace(envVar)
+ if envVal := os.Getenv(envVar); envVal != "" {
+ envValFloat, err := strconv.ParseFloat(envVal, 10)
+ if err == nil {
+ f.Value = float64(envValFloat)
+ }
+ }
+ }
+ }
+
+ eachName(f.Name, func(name string) {
+ if f.Destination != nil {
+ set.Float64Var(f.Destination, name, f.Value, f.Usage)
+ return
+ }
+ set.Float64(name, f.Value, f.Usage)
+ })
+}
+
+// GetName returns the name of the flag.
+func (f Float64Flag) GetName() string {
+ return f.Name
+}
+
+func visibleFlags(fl []Flag) []Flag {
+ visible := []Flag{}
+ for _, flag := range fl {
+ if !flagValue(flag).FieldByName("Hidden").Bool() {
+ visible = append(visible, flag)
+ }
+ }
+ return visible
+}
+
+func prefixFor(name string) (prefix string) {
+ if len(name) == 1 {
+ prefix = "-"
+ } else {
+ prefix = "--"
+ }
+
+ return
+}
+
+// Returns the placeholder, if any, and the unquoted usage string.
+func unquoteUsage(usage string) (string, string) {
+ for i := 0; i < len(usage); i++ {
+ if usage[i] == '`' {
+ for j := i + 1; j < len(usage); j++ {
+ if usage[j] == '`' {
+ name := usage[i+1 : j]
+ usage = usage[:i] + name + usage[j+1:]
+ return name, usage
+ }
+ }
+ break
+ }
+ }
+ return "", usage
+}
+
+func prefixedNames(fullName, placeholder string) string {
+ var prefixed string
+ parts := strings.Split(fullName, ",")
+ for i, name := range parts {
+ name = strings.Trim(name, " ")
+ prefixed += prefixFor(name) + name
+ if placeholder != "" {
+ prefixed += " " + placeholder
+ }
+ if i < len(parts)-1 {
+ prefixed += ", "
+ }
+ }
+ return prefixed
+}
+
+func withEnvHint(envVar, str string) string {
+ envText := ""
+ if envVar != "" {
+ prefix := "$"
+ suffix := ""
+ sep := ", $"
+ if runtime.GOOS == "windows" {
+ prefix = "%"
+ suffix = "%"
+ sep = "%, %"
+ }
+ envText = fmt.Sprintf(" [%s%s%s]", prefix, strings.Join(strings.Split(envVar, ","), sep), suffix)
+ }
+ return str + envText
+}
+
+func flagValue(f Flag) reflect.Value {
+ fv := reflect.ValueOf(f)
+ for fv.Kind() == reflect.Ptr {
+ fv = reflect.Indirect(fv)
+ }
+ return fv
+}
+
+func stringifyFlag(f Flag) string {
+ fv := flagValue(f)
+
+ switch f.(type) {
+ case IntSliceFlag:
+ return withEnvHint(fv.FieldByName("EnvVar").String(),
+ stringifyIntSliceFlag(f.(IntSliceFlag)))
+ case Int64SliceFlag:
+ return withEnvHint(fv.FieldByName("EnvVar").String(),
+ stringifyInt64SliceFlag(f.(Int64SliceFlag)))
+ case StringSliceFlag:
+ return withEnvHint(fv.FieldByName("EnvVar").String(),
+ stringifyStringSliceFlag(f.(StringSliceFlag)))
+ }
+
+ placeholder, usage := unquoteUsage(fv.FieldByName("Usage").String())
+
+ needsPlaceholder := false
+ defaultValueString := ""
+ val := fv.FieldByName("Value")
+
+ if val.IsValid() {
+ needsPlaceholder = true
+ defaultValueString = fmt.Sprintf(" (default: %v)", val.Interface())
+
+ if val.Kind() == reflect.String && val.String() != "" {
+ defaultValueString = fmt.Sprintf(" (default: %q)", val.String())
+ }
+ }
+
+ if defaultValueString == " (default: )" {
+ defaultValueString = ""
+ }
+
+ if needsPlaceholder && placeholder == "" {
+ placeholder = defaultPlaceholder
+ }
+
+ usageWithDefault := strings.TrimSpace(fmt.Sprintf("%s%s", usage, defaultValueString))
+
+ return withEnvHint(fv.FieldByName("EnvVar").String(),
+ fmt.Sprintf("%s\t%s", prefixedNames(fv.FieldByName("Name").String(), placeholder), usageWithDefault))
+}
+
+func stringifyIntSliceFlag(f IntSliceFlag) string {
+ defaultVals := []string{}
+ if f.Value != nil && len(f.Value.Value()) > 0 {
+ for _, i := range f.Value.Value() {
+ defaultVals = append(defaultVals, fmt.Sprintf("%d", i))
+ }
+ }
+
+ return stringifySliceFlag(f.Usage, f.Name, defaultVals)
+}
+
+func stringifyInt64SliceFlag(f Int64SliceFlag) string {
+ defaultVals := []string{}
+ if f.Value != nil && len(f.Value.Value()) > 0 {
+ for _, i := range f.Value.Value() {
+ defaultVals = append(defaultVals, fmt.Sprintf("%d", i))
+ }
+ }
+
+ return stringifySliceFlag(f.Usage, f.Name, defaultVals)
+}
+
+func stringifyStringSliceFlag(f StringSliceFlag) string {
+ defaultVals := []string{}
+ if f.Value != nil && len(f.Value.Value()) > 0 {
+ for _, s := range f.Value.Value() {
+ if len(s) > 0 {
+ defaultVals = append(defaultVals, fmt.Sprintf("%q", s))
+ }
+ }
+ }
+
+ return stringifySliceFlag(f.Usage, f.Name, defaultVals)
+}
+
+func stringifySliceFlag(usage, name string, defaultVals []string) string {
+ placeholder, usage := unquoteUsage(usage)
+ if placeholder == "" {
+ placeholder = defaultPlaceholder
+ }
+
+ defaultVal := ""
+ if len(defaultVals) > 0 {
+ defaultVal = fmt.Sprintf(" (default: %s)", strings.Join(defaultVals, ", "))
+ }
+
+ usageWithDefault := strings.TrimSpace(fmt.Sprintf("%s%s", usage, defaultVal))
+ return fmt.Sprintf("%s\t%s", prefixedNames(name, placeholder), usageWithDefault)
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/funcs.go b/vendor/gopkg.in/urfave/cli.v1/funcs.go
new file mode 100644
index 000000000..cba5e6cb0
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/funcs.go
@@ -0,0 +1,28 @@
+package cli
+
+// BashCompleteFunc is an action to execute when the bash-completion flag is set
+type BashCompleteFunc func(*Context)
+
+// BeforeFunc is an action to execute before any subcommands are run, but after
+// the context is ready if a non-nil error is returned, no subcommands are run
+type BeforeFunc func(*Context) error
+
+// AfterFunc is an action to execute after any subcommands are run, but after the
+// subcommand has finished it is run even if Action() panics
+type AfterFunc func(*Context) error
+
+// ActionFunc is the action to execute when no subcommands are specified
+type ActionFunc func(*Context) error
+
+// CommandNotFoundFunc is executed if the proper command cannot be found
+type CommandNotFoundFunc func(*Context, string)
+
+// OnUsageErrorFunc is executed if an usage error occurs. This is useful for displaying
+// customized usage error messages. This function is able to replace the
+// original error messages. If this function is not set, the "Incorrect usage"
+// is displayed and the execution is interrupted.
+type OnUsageErrorFunc func(context *Context, err error, isSubcommand bool) error
+
+// FlagStringFunc is used by the help generation to display a flag, which is
+// expected to be a single line.
+type FlagStringFunc func(Flag) string
diff --git a/vendor/gopkg.in/urfave/cli.v1/help.go b/vendor/gopkg.in/urfave/cli.v1/help.go
new file mode 100644
index 000000000..0f4cf14cd
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/help.go
@@ -0,0 +1,267 @@
+package cli
+
+import (
+ "fmt"
+ "io"
+ "os"
+ "strings"
+ "text/tabwriter"
+ "text/template"
+)
+
+// AppHelpTemplate is the text template for the Default help topic.
+// cli.go uses text/template to render templates. You can
+// render custom help text by setting this variable.
+var AppHelpTemplate = `NAME:
+ {{.Name}} - {{.Usage}}
+
+USAGE:
+ {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}
+ {{if .Version}}{{if not .HideVersion}}
+VERSION:
+ {{.Version}}
+ {{end}}{{end}}{{if len .Authors}}
+AUTHOR(S):
+ {{range .Authors}}{{.}}{{end}}
+ {{end}}{{if .VisibleCommands}}
+COMMANDS:{{range .VisibleCategories}}{{if .Name}}
+ {{.Name}}:{{end}}{{range .VisibleCommands}}
+ {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}
+{{end}}{{end}}{{if .VisibleFlags}}
+GLOBAL OPTIONS:
+ {{range .VisibleFlags}}{{.}}
+ {{end}}{{end}}{{if .Copyright}}
+COPYRIGHT:
+ {{.Copyright}}
+ {{end}}
+`
+
+// CommandHelpTemplate is the text template for the command help topic.
+// cli.go uses text/template to render templates. You can
+// render custom help text by setting this variable.
+var CommandHelpTemplate = `NAME:
+ {{.HelpName}} - {{.Usage}}
+
+USAGE:
+ {{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{if .Category}}
+
+CATEGORY:
+ {{.Category}}{{end}}{{if .Description}}
+
+DESCRIPTION:
+ {{.Description}}{{end}}{{if .VisibleFlags}}
+
+OPTIONS:
+ {{range .VisibleFlags}}{{.}}
+ {{end}}{{end}}
+`
+
+// SubcommandHelpTemplate is the text template for the subcommand help topic.
+// cli.go uses text/template to render templates. You can
+// render custom help text by setting this variable.
+var SubcommandHelpTemplate = `NAME:
+ {{.HelpName}} - {{.Usage}}
+
+USAGE:
+ {{.HelpName}} command{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}
+
+COMMANDS:{{range .VisibleCategories}}{{if .Name}}
+ {{.Name}}:{{end}}{{range .VisibleCommands}}
+ {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}
+{{end}}{{if .VisibleFlags}}
+OPTIONS:
+ {{range .VisibleFlags}}{{.}}
+ {{end}}{{end}}
+`
+
+var helpCommand = Command{
+ Name: "help",
+ Aliases: []string{"h"},
+ Usage: "Shows a list of commands or help for one command",
+ ArgsUsage: "[command]",
+ Action: func(c *Context) error {
+ args := c.Args()
+ if args.Present() {
+ return ShowCommandHelp(c, args.First())
+ }
+
+ ShowAppHelp(c)
+ return nil
+ },
+}
+
+var helpSubcommand = Command{
+ Name: "help",
+ Aliases: []string{"h"},
+ Usage: "Shows a list of commands or help for one command",
+ ArgsUsage: "[command]",
+ Action: func(c *Context) error {
+ args := c.Args()
+ if args.Present() {
+ return ShowCommandHelp(c, args.First())
+ }
+
+ return ShowSubcommandHelp(c)
+ },
+}
+
+// Prints help for the App or Command
+type helpPrinter func(w io.Writer, templ string, data interface{})
+
+// HelpPrinter is a function that writes the help output. If not set a default
+// is used. The function signature is:
+// func(w io.Writer, templ string, data interface{})
+var HelpPrinter helpPrinter = printHelp
+
+// VersionPrinter prints the version for the App
+var VersionPrinter = printVersion
+
+// ShowAppHelp is an action that displays the help.
+func ShowAppHelp(c *Context) error {
+ HelpPrinter(c.App.Writer, AppHelpTemplate, c.App)
+ return nil
+}
+
+// DefaultAppComplete prints the list of subcommands as the default app completion method
+func DefaultAppComplete(c *Context) {
+ for _, command := range c.App.Commands {
+ if command.Hidden {
+ continue
+ }
+ for _, name := range command.Names() {
+ fmt.Fprintln(c.App.Writer, name)
+ }
+ }
+}
+
+// ShowCommandHelp prints help for the given command
+func ShowCommandHelp(ctx *Context, command string) error {
+ // show the subcommand help for a command with subcommands
+ if command == "" {
+ HelpPrinter(ctx.App.Writer, SubcommandHelpTemplate, ctx.App)
+ return nil
+ }
+
+ for _, c := range ctx.App.Commands {
+ if c.HasName(command) {
+ HelpPrinter(ctx.App.Writer, CommandHelpTemplate, c)
+ return nil
+ }
+ }
+
+ if ctx.App.CommandNotFound == nil {
+ return NewExitError(fmt.Sprintf("No help topic for '%v'", command), 3)
+ }
+
+ ctx.App.CommandNotFound(ctx, command)
+ return nil
+}
+
+// ShowSubcommandHelp prints help for the given subcommand
+func ShowSubcommandHelp(c *Context) error {
+ return ShowCommandHelp(c, c.Command.Name)
+}
+
+// ShowVersion prints the version number of the App
+func ShowVersion(c *Context) {
+ VersionPrinter(c)
+}
+
+func printVersion(c *Context) {
+ fmt.Fprintf(c.App.Writer, "%v version %v\n", c.App.Name, c.App.Version)
+}
+
+// ShowCompletions prints the lists of commands within a given context
+func ShowCompletions(c *Context) {
+ a := c.App
+ if a != nil && a.BashComplete != nil {
+ a.BashComplete(c)
+ }
+}
+
+// ShowCommandCompletions prints the custom completions for a given command
+func ShowCommandCompletions(ctx *Context, command string) {
+ c := ctx.App.Command(command)
+ if c != nil && c.BashComplete != nil {
+ c.BashComplete(ctx)
+ }
+}
+
+func printHelp(out io.Writer, templ string, data interface{}) {
+ funcMap := template.FuncMap{
+ "join": strings.Join,
+ }
+
+ w := tabwriter.NewWriter(out, 1, 8, 2, ' ', 0)
+ t := template.Must(template.New("help").Funcs(funcMap).Parse(templ))
+ err := t.Execute(w, data)
+ if err != nil {
+ // If the writer is closed, t.Execute will fail, and there's nothing
+ // we can do to recover.
+ if os.Getenv("CLI_TEMPLATE_ERROR_DEBUG") != "" {
+ fmt.Fprintf(ErrWriter, "CLI TEMPLATE ERROR: %#v\n", err)
+ }
+ return
+ }
+ w.Flush()
+}
+
+func checkVersion(c *Context) bool {
+ found := false
+ if VersionFlag.Name != "" {
+ eachName(VersionFlag.Name, func(name string) {
+ if c.GlobalBool(name) || c.Bool(name) {
+ found = true
+ }
+ })
+ }
+ return found
+}
+
+func checkHelp(c *Context) bool {
+ found := false
+ if HelpFlag.Name != "" {
+ eachName(HelpFlag.Name, func(name string) {
+ if c.GlobalBool(name) || c.Bool(name) {
+ found = true
+ }
+ })
+ }
+ return found
+}
+
+func checkCommandHelp(c *Context, name string) bool {
+ if c.Bool("h") || c.Bool("help") {
+ ShowCommandHelp(c, name)
+ return true
+ }
+
+ return false
+}
+
+func checkSubcommandHelp(c *Context) bool {
+ if c.GlobalBool("h") || c.GlobalBool("help") {
+ ShowSubcommandHelp(c)
+ return true
+ }
+
+ return false
+}
+
+func checkCompletions(c *Context) bool {
+ if (c.GlobalBool(BashCompletionFlag.Name) || c.Bool(BashCompletionFlag.Name)) && c.App.EnableBashCompletion {
+ ShowCompletions(c)
+ return true
+ }
+
+ return false
+}
+
+func checkCommandCompletions(c *Context, name string) bool {
+ if c.Bool(BashCompletionFlag.Name) && c.App.EnableBashCompletion {
+ ShowCommandCompletions(c, name)
+ return true
+ }
+
+ return false
+}
diff --git a/vendor/gopkg.in/urfave/cli.v1/runtests b/vendor/gopkg.in/urfave/cli.v1/runtests
new file mode 100755
index 000000000..0a7b483e3
--- /dev/null
+++ b/vendor/gopkg.in/urfave/cli.v1/runtests
@@ -0,0 +1,105 @@
+#!/usr/bin/env python
+from __future__ import print_function
+
+import argparse
+import os
+import sys
+import tempfile
+
+from subprocess import check_call, check_output
+
+
+PACKAGE_NAME = os.environ.get(
+ 'CLI_PACKAGE_NAME', 'github.com/urfave/cli'
+)
+
+
+def main(sysargs=sys.argv[:]):
+ targets = {
+ 'vet': _vet,
+ 'test': _test,
+ 'gfmxr': _gfmxr,
+ 'toc': _toc,
+ }
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ 'target', nargs='?', choices=tuple(targets.keys()), default='test'
+ )
+ args = parser.parse_args(sysargs[1:])
+
+ targets[args.target]()
+ return 0
+
+
+def _test():
+ if check_output('go version'.split()).split()[2] < 'go1.2':
+ _run('go test -v .'.split())
+ return
+
+ coverprofiles = []
+ for subpackage in ['', 'altsrc']:
+ coverprofile = 'cli.coverprofile'
+ if subpackage != '':
+ coverprofile = '{}.coverprofile'.format(subpackage)
+
+ coverprofiles.append(coverprofile)
+
+ _run('go test -v'.split() + [
+ '-coverprofile={}'.format(coverprofile),
+ ('{}/{}'.format(PACKAGE_NAME, subpackage)).rstrip('/')
+ ])
+
+ combined_name = _combine_coverprofiles(coverprofiles)
+ _run('go tool cover -func={}'.format(combined_name).split())
+ os.remove(combined_name)
+
+
+def _gfmxr():
+ _run(['gfmxr', '-c', str(_gfmxr_count()), '-s', 'README.md'])
+
+
+def _vet():
+ _run('go vet ./...'.split())
+
+
+def _toc():
+ _run(['node_modules/.bin/markdown-toc', '-i', 'README.md'])
+ _run(['git', 'diff', '--quiet'])
+
+
+def _run(command):
+ print('runtests: {}'.format(' '.join(command)), file=sys.stderr)
+ check_call(command)
+
+
+def _gfmxr_count():
+ with open('README.md') as infile:
+ lines = infile.read().splitlines()
+ return len(filter(_is_go_runnable, lines))
+
+
+def _is_go_runnable(line):
+ return line.startswith('package main')
+
+
+def _combine_coverprofiles(coverprofiles):
+ combined = tempfile.NamedTemporaryFile(
+ suffix='.coverprofile', delete=False
+ )
+ combined.write('mode: set\n')
+
+ for coverprofile in coverprofiles:
+ with open(coverprofile, 'r') as infile:
+ for line in infile.readlines():
+ if not line.startswith('mode: '):
+ combined.write(line)
+
+ combined.flush()
+ name = combined.name
+ combined.close()
+ return name
+
+
+if __name__ == '__main__':
+ sys.exit(main())